OverviewFilesCommitsIssuesDocsReleasesPeers

holepunchto-deps commits / 95cce11

keet-core 4.22.28 + siblings (Keet 4.22.5)
From hyper-fleeky/keet-audit-4.22/extracted (extract-bundle.cjs on the AppImage's core-worker.bundle; self-verified 1017 files, 0 bad JSON, 0 truncated JS): keet-core 4.18.3 -> 4.22.28, keet-indexing 6.4.0 -> 6.4.1, keet-registry-client 5.2.0 -> 5.2.1, keet-registry-schema 3.4.0 -> 3.4.1, hyperdiscovery 1.2.0 -> 1.4.0, and NEW call-swarm 1.2.0 (keet-core api/v1/calls removed upstream). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
95cce110bb9202275a1789849cac340fe9877dec
by plankatron <fleeky@gmail.com> · 2026-09-30T15:58:25.000Z

Changed files (87) +757 -96

@holepunchto/call-swarm/index.js +1 -0
……@@ -0,0 +1 @@
1const{EventEmitter:e}=require("events"),t=require("hyperdht"),s=require("b4a"),i=require("./lib/peer"),r=require("./lib/errors"),n={keepAlive:1e3,livenessTick:500,idleTimeout:3e3,establishTimeout:3e3,stableConnection:5e3,relayAfter:8e3,relayAfterAttempts:3,retryBackoffs:[500,1e3,2e3],retryJitter:250},o={fallback:[200,400,800],min:150,max:1e3,jitter:64};function h(){}function a(){return!0}function d(){return null}module.exports=class extends e{constructor(e={}){super();const{dht:s,seed:i,nodes:r,testing:l,firewall:u,bootstrap:c,relayThrough:p,dhtOpts:y={},keyPair:m=t.keyPair(i)}=e;this.dht=s||new t({bootstrap:c,nodes:r,adaptiveTimeout:o,...y}),this.keyPair=m,this.timings={...n,...l},this.firewall=u||a,this.relaying=!!p,this.relayThrough=function(e,t){return e?"function"==typeof e?s=>e(s,t):s=>s||t.dht.randomized?e:null:d}(p,this),this.peers=new Map,this.destroyed=!1,this.suspended=!1,this.connections=new Set,this._ownsDHT=!s,this._timestamp=0,this._onnetworkupdate=this._handleNetworkUpdate.bind(this),this.server=this.dht.createServer({firewall:this._handleFirewall.bind(this),relayThrough:this.relayThrough},this._onincoming.bind(this)),this.listening=this.server.listen(this.keyPair),this.listening.catch(h),this.dht.on("network-update",this._onnetworkupdate)}get publicKey(){return this.keyPair.publicKey}ready(){return this.listening}joinPeer(e){if(this.destroyed)throw r.Destroyed();if(this.suspended)throw r.Suspended();if(s.equals(e,this.publicKey))return null;const t=this._upsertPeer(e);return t.joined=!0,t.internalDial(),t}leavePeer(e){if(this.destroyed)throw r.Destroyed();if(this.suspended)throw r.Suspended();const t=s.toString(e,"hex"),i=this.peers.get(t);i&&(i.internalRelease(),null===i.connection&&this.peers.delete(t))}async destroy(){if(this.destroyed)return;this.destroyed=!0,this.dht.removeListener("network-update",this._onnetworkupdate);const e=[];for(const t of this.peers.values())e.push(t.internalDestroy(null));this.peers.clear(),await this.server.close(),await Promise.all(e),this._ownsDHT&&await this.dht.destroy()}async suspend(){if(this.suspended||this.destroyed)return;this.suspended=!0;const e=[];for(const t of this.peers.values())t.internalClearRetry(),e.push(t.internalCloseConnections(null));this._ownsDHT?await this.dht.suspend():await this.server.suspend(),await Promise.all(e),this.emit("suspend")}async resume(){if(this.suspended&&!this.destroyed){this.suspended=!1,this._ownsDHT?await this.dht.resume():await this.server.resume();for(const e of this.peers.values())e.internalClearRetry(),e.attempts=0,e.disconnectedAt=Date.now(),e.internalDial();this.emit("resume")}}internalNextTimestamp(){const e=Date.now();return e>this._timestamp?this._timestamp=e:this._timestamp++,this._timestamp}internalAddConnection(e,t){this.connections.add(e),this.emit("connection",e,t)}internalRemoveConnection(e,t,s){this.connections.delete(e),this.emit("disconnection",e,t,s)}internalRemovePeer(e){this.peers.get(e.id)===e&&this.peers.delete(e.id)}async _handleFirewall(e,t){if(this.destroyed)return!0;if(s.equals(e,this.publicKey))return!0;const i=this.peers.get(s.toString(e,"hex"));if(i&&i.joined)return!1;try{return await this.firewall(e,t)}catch{return!0}}_onincoming(e){if(this.destroyed||this.suspended)return e.on("error",h),void e.destroy(this.destroyed?r.Destroyed():r.Suspended());const t=this._upsertPeer(e.remotePublicKey);t.joined=!0,t.internalAddConnection(e)}_upsertPeer(e){const t=s.toString(e,"hex");let r=this.peers.get(t);return r||(r=new i(this,e),this.peers.set(t,r)),r}_handleNetworkUpdate(){if(!this.destroyed&&!this.suspended){this.server.refresh();for(const e of this.connections)e.sendKeepAlive();for(const e of this.peers.values())null!==e.retryTimer&&(e.internalClearRetry(),e.internalDial())}}};
@holepunchto/call-swarm/lib/connection.js +1 -0
……@@ -0,0 +1 @@
1const{EventEmitter:e}=require("events"),s=require("./errors"),{encodeHandshake:t,decodeHandshake:i}=require("./messages"),r=new Set(["HOLEPUNCH_ABORTED","HOLEPUNCH_DOUBLE_RANDOMIZED_NATS","CANNOT_HOLEPUNCH","REMOTE_NOT_HOLEPUNCHABLE"]);module.exports=class extends e{constructor(e,s,t){super(),this.peer=s,this.swarm=e,this.stream=t,this.timestamp=0,this.remoteTimestamp=0,this.silentTicks=0,this.remotePacketsReceived=0,this.error=null,this.closed=!1,this.established=!1,this._tickTimer=null,this._establishTimer=null,this.stream.on("error",this._handleError.bind(this)),this.stream.on("close",this._handleClose.bind(this)),this._open()}internalDestroy(e){this.closed||this.stream.destroying||(this.error=e,this.stream.destroy(e))}async _doOpen(){if(this._sendHandshake(),!await this._waitForOpen())return;this._startLiveness();const e=await this._readHandshake();null!==e&&this._establish(e)}async _open(){try{await this._doOpen()}catch(e){this.internalDestroy(e)}}async _waitForOpen(){const e=await this.stream.opened;return!(this.closed||!1===e||(this.swarm.destroyed||this.swarm.suspended)&&(this.internalDestroy(s.Suspended()),1))}_sendHandshake(){this.timestamp=this.swarm.internalNextTimestamp(),this.stream.write(t(this.timestamp))}_startLiveness(){this.stream.setKeepAlive(this.swarm.timings.keepAlive),this.remotePacketsReceived=this.stream.rawStream.packetsReceived,this._tickTimer=setInterval(this._tick.bind(this),this.swarm.timings.livenessTick)}async _readHandshake(){this._establishTimer=setTimeout(()=>this.internalDestroy(s.EstablishTimeout()),this.swarm.timings.establishTimeout);const e=await this._readMessage();if(clearTimeout(this._establishTimer),this._establishTimer=null,null===e)return null;const t=i(e);return null===t&&this.internalDestroy(s.BadHandshake()),t}async _readMessage(){try{const{value:e}=await this.stream[Symbol.asyncIterator]().next();return e}catch{return null}}_establish(e){this.established=!0,this.remoteTimestamp=e.timestamp,this.emit("established")}_tick(){if(this.closed)return;const e=this.stream.rawStream.packetsReceived;if(e!==this.remotePacketsReceived)return this.silentTicks=0,void(this.remotePacketsReceived=e);const t=this.swarm.timings;++this.silentTicks*t.livenessTick<t.idleTimeout||this.internalDestroy(s.IdleTimeout())}_handleError(e){this.swarm.relaying&&r.has(e.code)&&(this.peer.attempts=0,this.peer.forceRelaying=!0)}_handleClose(){this.closed||(this.closed=!0,null!==this._tickTimer&&clearInterval(this._tickTimer),null!==this._establishTimer&&clearTimeout(this._establishTimer),this._tickTimer=null,this._establishTimer=null,this.emit("close"))}};
@holepunchto/call-swarm/lib/errors.js +1 -0
……@@ -0,0 +1 @@
1module.exports=class e extends Error{constructor(e,t){super(t),this.code=e,this.name="ConnectionError"}static Abandoned(){return new e("ABANDONED","Peer was left")}static Destroyed(){return new e("DESTROYED","Swarm has been destroyed")}static Suspended(){return new e("SUSPENDED","Swarm has been suspended")}static Duplicate(){return new e("DUPLICATE","Duplicate connection")}static IdleTimeout(){return new e("IDLE_TIMEOUT","Connection went silent")}static BadHandshake(){return new e("BAD_HANDSHAKE","Invalid handshake")}static EstablishTimeout(){return new e("ESTABLISH_TIMEOUT","Handshake timed out")}};
@holepunchto/call-swarm/lib/messages.js +1 -0
……@@ -0,0 +1 @@
1const e=require("compact-encoding"),n={preencode(n,t){e.uint.preencode(n,t.version),e.uint.preencode(n,t.timestamp)},encode(n,t){e.uint.encode(n,t.version),e.uint.encode(n,t.timestamp)},decode:n=>({version:e.uint.decode(n),timestamp:e.uint.decode(n)})};module.exports={encodeHandshake:function(t){return e.encode(n,{version:1,timestamp:t})},decodeHandshake:function(t){try{const o=e.decode(n,t);return 0===o.timestamp?null:o}catch{return null}}};
@holepunchto/call-swarm/lib/peer.js +1 -0
……@@ -0,0 +1 @@
1const t=require("b4a"),e=require("./errors"),s=require("./connection");function i(t,e){const s=t.peer.lower;return(s?t.timestamp:t.remoteTimestamp)>(s?e.timestamp:e.remoteTimestamp)?t:e}module.exports=class{constructor(e,s){this.id=t.toString(s,"hex"),this.lower=t.compare(e.publicKey,s)<0,this.swarm=e,this.publicKey=s,this.attempts=0,this.connectedAt=0,this.disconnectedAt=Date.now(),this.retryTimer=null,this.forceRelaying=!1,this.joined=!1,this.destroyed=!1,this.connection=null,this.connections=new Set,this._dialing=null}get stream(){return null===this.connection?null:this.connection.stream}get connected(){return null!==this.connection}internalDial(){if(!this.joined||this.destroyed)return;if(this.swarm.destroyed||this.swarm.suspended)return;if(null!==this.connection||null!==this._dialing)return;const t=this.swarm.dht.connect(this.publicKey,{keyPair:this.swarm.keyPair,relayThrough:this.swarm.relayThrough(this._shouldRelay())});this._dialing=this.internalAddConnection(t)}internalAddConnection(t){const e=new s(this.swarm,this,t);return this.connections.add(e),e.on("close",()=>this._onclose(e)),e.on("established",()=>this._update()),e}internalClearRetry(){null!==this.retryTimer&&(clearTimeout(this.retryTimer),this.retryTimer=null)}internalCloseConnections(t){const e=[];for(const s of this.connections)e.push(new Promise(t=>s.once("close",t))),this._close(s,t);return Promise.all(e)}internalDestroy(t){return this.destroyed?Promise.resolve([]):(this.destroyed=!0,this.internalClearRetry(),this.internalCloseConnections(t))}internalRelease(){if(!this.destroyed&&this.joined){this.joined=!1,this.internalClearRetry();for(const t of this.connections)t!==this.connection&&this._close(t,e.Abandoned());null===this.connection&&(this.destroyed=!0)}}_scheduleRetry(){if(!this.joined||this.destroyed)return;if(this.swarm.destroyed||this.swarm.suspended)return;if(null!==this.retryTimer)return;if(null!==this.connection||null!==this._dialing)return;const{retryBackoffs:t,retryJitter:e}=this.swarm.timings,s=t[Math.min(this.attempts,t.length-1)];this.attempts++,this.retryTimer=setTimeout(()=>{this.retryTimer=null,this.internalDial()},s+Math.round(Math.random()*e))}_shouldRelay(){const t=this.swarm.timings;return!!this.forceRelaying||this.attempts>=t.relayAfterAttempts||Date.now()-this.disconnectedAt>=t.relayAfter}_best(){let t=null;for(const e of this.connections)e.established&&(t=null===t?e:i(t,e));return t}_update(){if(this.destroyed||this.swarm.destroyed||this.swarm.suspended)return;const t=this._best();if(null!==t){for(const s of this.connections)s!==t&&s.established&&this._close(s,e.Duplicate());null===this.connection&&this._expose(t)}}_close(t,e){this.connections.delete(t),t.internalDestroy(e)}_expose(t){this.connection=t,this.connectedAt=Date.now(),this.swarm.internalAddConnection(t.stream,this)}_resolve(){this.destroyed||this.swarm.destroyed||this.swarm.suspended||(null===this._best()?this._scheduleRetry():queueMicrotask(()=>this._update()))}_onclose(t){this.connections.delete(t),this._dialing===t&&(this._dialing=null),this.connection===t&&(this.connection=null,this.disconnectedAt=Date.now(),Date.now()-this.connectedAt>=this.swarm.timings.stableConnection&&(this.attempts=0,this.forceRelaying=!1),this.swarm.internalRemoveConnection(t.stream,this,t.error)),this.joined||0!==this.connections.size||(this.destroyed=!0,this.swarm.internalRemovePeer(this)),this._resolve()}};
@holepunchto/call-swarm/package.json +51 -0
……@@ -0,0 +1,51 @@
1{
2 "name": "@holepunchto/call-swarm",
3 "version": "1.2.0",
4 "description": "A minimal, aggressive peer-to-peer swarming module for realtime all-to-all calls",
5 "main": "index.js",
6 "imports": {
7 "events": {
8 "bare": "bare-events",
9 "default": "events"
10 }
11 },
12 "exports": {
13 "./package": "./package.json",
14 ".": {
15 "types": "./index.d.ts",
16 "default": "./index.js"
17 }
18 },
19 "files": [
20 "package.json",
21 "index.js",
22 "index.d.ts",
23 "lib"
24 ],
25 "dependencies": {
26 "b4a": "^1.6.0",
27 "compact-encoding": "^3.3.0",
28 "hyperdht": "^6.21.0"
29 },
30 "devDependencies": {
31 "brittle": "^3.19.0",
32 "lunte": "^1.2.0",
33 "prettier": "^3.6.2",
34 "prettier-config-holepunch": "^2.0.0"
35 },
36 "scripts": {
37 "test": "brittle test/*.js",
38 "format": "prettier . --write",
39 "lint": "prettier . --check && lunte"
40 },
41 "repository": {
42 "type": "git",
43 "url": "https://github.com/holepunchto/call-swarm.git"
44 },
45 "author": "Holepunch Inc",
46 "license": "Apache-2.0",
47 "bugs": {
48 "url": "https://github.com/holepunchto/call-swarm/issues"
49 },
50 "homepage": "https://github.com/holepunchto/call-swarm"
51}
@holepunchto/hyperdiscovery/index.js +1 -1
……@@ -1 +1 @@
1const{getEncoding:e}=require("./spec/hyperschema"),s=require("hypercore-crypto"),n=require("hyperdht"),t=require("ready-resource"),i=require("b4a"),o=require("protomux"),r=require("compact-encoding"),c=require("hyperdb"),[h]=s.namespace("hyperdiscovery",1),u=e("@hyperdiscovery/announce"),a=e("@hyperdiscovery/announce-to-swarm"),l=e("@hyperdiscovery/subscribe-to-swarm"),d=e("@hyperdiscovery/unsubscribe-to-swarm"),y=e("@hyperdiscovery/bump-from-swarm");function m(e){if(o.isProtomux(e))return e;if(e.noiseStream.userData)return e.noiseStream.userData;const s=o.from(e.noiseStream);return e.noiseStream.userData=s,s}function p(e,s){s.userData._onbump(e)}function f(){throw new Error("Method not supported")}function b(){}module.exports={HyperDiscovery:class extends t{constructor(e,{bootstrap:s,dht:t=new n({bootstrap:s})}={}){super(),this.dht=t,this.db=c.rocks(e,require("./spec/hyperdb")),this.subs=new Map,this._flushTimeout=null,this._flushing=null,this._server=null,this._manifest=null,this.ready().catch(b)}get publicKey(){return this._server&&this._server.address().publicKey}async _open(){await this._init(),this._flushBackground().catch(b),this._server=this.dht.createServer(),this._server.on("connection",this.addStream.bind(this)),await this._server.listen(s.keyPair(this._manifest.seed))}async _init(){this._manifest=await this.db.get("@hyperdiscovery/manifest"),this._manifest||(this._manifest={version:0,seed:s.randomBytes(32)},await this.db.insert("@hyperdiscovery/manifest",this._manifest),await this.db.flush())}async _close(){this._flushTimeout&&clearTimeout(this._flushTimeout),this._flushing&&await this._flushing,this._flushTimeout=null,this._server&&await this._server.close(),await this.db.close()}async _flushBackground(){for(;!this.closing;){if(await new Promise(e=>{this._flushTimeout=setTimeout(e,12e4)}),this._flushTimeout=null,this.closing)return;this._flushing=this.db.flush(),await this._flushing,this._flushing=null}}_addSub(e,s,n){let t=this.subs.get(s);t||(t=new Map,this.subs.set(s,t)),t.set(e,n)}_removeSub(e,s){const n=this.subs.get(s);n&&(n.delete(e),n.size||this.subs.delete(s))}addStream(e){const s=m(e),n=this,t=new Set;function o(){const e=s.createChannel({protocol:"hyperdiscovery",messages:[{encoding:l,onmessage:async function(s){const o=i.toString(s.publicKey,"hex");t.add(o),n._addSub(e,o,s.since);const r=await n.lookup(s.publicKey);r&&r.bumped>=s.since&&e.messages[3].send(r)}},{encoding:d,onmessage:function(s){const o=i.toString(s.publicKey,"hex");t.delete(o),n._removeSub(e,o)}},{encoding:a,onmessage:function(s){return n.announce(s,e)}},{encoding:y,onmessage:f}],onclose(){for(const s of t)n._removeSub(e,s)}});e&&e.open()}s.pair({protocol:"hyperdiscovery"},o),o()}async lookup(e){return await this.db.get("@hyperdiscovery/swarms",{publicKey:e})}async announce(e,n){const t={buffer:null,start:0,end:0};if(r.fixed32.preencode(t,h),u.preencode(t,e.announce),t.buffer=i.allocUnsafe(t.end),r.fixed32.encode(t,h),u.encode(t,e.announce),Date.now()+6e4>e.announce.bumped)return!1;if(!s.verify(t.buffer,e.signature,e.publicKey))return!1;const o=await this.db.get("@hyperdiscovery/swarms",e.publicKey);if(o&&o.bumped>=e.announce.bump)return!1;const c={publicKey:e.publicKey,bumped:e.announce.bump,updated:Date.now(),signature:e.signature};await this.db.insert("@hyperdiscovery/swarms",c);const a=this.subs.get(i.toString(e.publicKey,"hex"));if(a)for(const[e,s]of a)e!==n&&(c.bumped<s||e.messages[3].send(c));return!0}},HyperDiscoveryClient:class extends t{constructor(e,{bootstrap:s,dht:t=new n({bootstrap:s})}={}){super(),this.remotePublicKey=e,this.dht=t,this.connection=null,this.muxer=null,this.channel=null,this.suspended=!1,this.connecting=!1,this._retryTimeout=null,this._retryResolve=null,this._shouldReconnect=!1}async suspend(){this.suspended=!0,this._clearRetry(),this.connection&&(this.connection.destroy(),this.connecting=null,this.channel=null,this.muxer=null,this.connection.destroyed||await new Promise(e=>this.connection.on("close",e)))}resume(){this.suspended=!1,this._shouldReconnect&&!this.closing&&this._reconnect()}connect(){this.channel||this._reconnect()}async _reconnect(){if(this.connecting)return this.channel;this.connecting=!0,this._shouldReconnect=!0;let e=0;for(;!this.closing&&!this.suspended;){const s=this.connection=this.dht.connect(this.remotePublicKey);if(this.muxer=m(this.connection),this.channel=this.muxer.createChannel({userData:this,protocol:"hyperdiscovery",messages:[{encoding:l,onmessage:f},{encoding:d,onmessage:f},{encoding:a,onmessage:f},{encoding:y,onmessage:p}]}),!this.channel)break;if(this.channel.open(),await new Promise(e=>{function n(){s.off("connect",n),s.off("error",n),e()}s.on("connect",n),s.on("error",n)}),this.closing||this.suspended){s.on("error",b),s.destroy();break}if(!s.destroyed&&!s.destroying){s.on("close",this._reconnect.bind(this));break}e++,await new Promise(s=>{this._retryResolve=s,this._retryTimeout=setTimeout(s,e<3?5e3:15e3)}),this._retryResolve=null,this._retryTimeout=null}return this.connecting=!1,this.closing||this.suspended||this.emit("connect"),this.channel}_close(){this.connection&&this.connection.destroy(),this._clearRetry()}_clearRetry(){this._retryTimeout&&(clearTimeout(this._retryTimeout),this._retryResolve(),this._retryResolve=null,this._retryTimeout=null)}_onbump(e){this.emit("announce",e)}_getChannel(){return this.channel||this._reconnect(),this.channel}cork(){const e=this._getChannel();e&&e.cork()}uncork(){const e=this._getChannel();e&&e.uncork()}subscribe(e,{since:s=0}={}){const n=this._getChannel();n&&n.messages[0].send({publicKey:e,since:s})}unsubscribe(e){const s=this._getChannel();s&&s.messages[1].send({publicKey:e})}async announce(e,{bump:n=Date.now()}={}){const t=this._getChannel();if(!t)return;const o={bump:n},c={buffer:null,start:0,end:0};r.fixed32.preencode(c,h),u.preencode(c,o),c.buffer=i.allocUnsafe(c.end),r.fixed32.encode(c,h),u.encode(c,o);const a=s.sign(c.buffer,e.secretKey),l={publicKey:e.publicKey,announce:o,signature:a};t.messages[2].send(l)}}};
1const{getEncoding:e}=require("./spec/hyperschema"),s=require("hypercore-crypto"),n=require("hyperdht"),t=require("ready-resource"),i=require("b4a"),o=require("protomux"),r=require("compact-encoding"),c=require("hyperdb"),[u]=s.namespace("hyperdiscovery",1),a=e("@hyperdiscovery/announce"),h=e("@hyperdiscovery/announce-to-swarm"),d=e("@hyperdiscovery/subscribe-to-swarm"),l=e("@hyperdiscovery/unsubscribe-to-swarm"),y=e("@hyperdiscovery/bump-from-swarm");function p(e){if(o.isProtomux(e))return e;if(e.noiseStream.userData)return e.noiseStream.userData;const s=o.from(e.noiseStream);return e.noiseStream.userData=s,s}function m(e,s){s.userData._onbump(e)}function b(){throw new Error("Method not supported")}function _(){}module.exports={HyperDiscovery:class extends t{constructor(e,{bootstrap:s,dht:t=new n({bootstrap:s})}={}){super(),this.dht=t,this.db=c.rocks(e,require("./spec/hyperdb")),this.subs=new Map,this._flushTimeout=null,this._flushing=null,this._server=null,this._manifest=null,this.stats={streamsAdded:0,streamsEnded:0,subscriptionsAdded:0,subscriptionsRemoved:0,announces:0,announcesSent:0,onsubscribeCount:0,onunsubscribeCount:0,onannounceCount:0},this.ready().catch(_)}get publicKey(){return this._server&&this._server.address().publicKey}async _open(){await this._init(),this._flushBackground().catch(_),this._server=this.dht.createServer(),this._server.on("connection",this.addStream.bind(this)),await this._server.listen(s.keyPair(this._manifest.seed))}async _init(){this._manifest=await this.db.get("@hyperdiscovery/manifest"),this._manifest||(this._manifest={version:0,seed:s.randomBytes(32)},await this.db.insert("@hyperdiscovery/manifest",this._manifest),await this.db.flush())}async _close(){this._flushTimeout&&clearTimeout(this._flushTimeout),this._flushing&&await this._flushing,this._flushTimeout=null,this._server&&await this._server.close(),await this.db.close()}async _flushBackground(){for(;!this.closing;){if(await new Promise(e=>{this._flushTimeout=setTimeout(e,12e4)}),this._flushTimeout=null,this.closing)return;this._flushing=this.db.flush(),await this._flushing,this._flushing=null}}_addSub(e,s,n){let t=this.subs.get(s);t||(t=new Map,this.subs.set(s,t)),this.stats.subscriptionsAdded++,t.set(e,n)}_removeSub(e,s){const n=this.subs.get(s);n&&(this.stats.subscriptionsRemoved++,n.delete(e),n.size||this.subs.delete(s))}addStream(e){this.stats.streamsAdded++;const s=p(e),n=this,t=new Set;function o(){const e=s.createChannel({protocol:"hyperdiscovery",messages:[{encoding:d,onmessage:async function(s){n.stats.onsubscribeCount++;const o=i.toString(s.publicKey,"hex");t.add(o),n._addSub(e,o,s.since);const r=await n.lookup(s.publicKey);r&&r.bumped>=s.since&&e.messages[3].send(r)}},{encoding:l,onmessage:function(s){n.stats.onunsubscribeCount++;const o=i.toString(s.publicKey,"hex");t.delete(o),n._removeSub(e,o)}},{encoding:h,onmessage:function(s){return n.stats.onannounceCount++,n.announce(s,e)}},{encoding:y,onmessage:b}],onclose(){n.stats.streamsEnded++;for(const s of t)n._removeSub(e,s)}});e&&e.open()}s.pair({protocol:"hyperdiscovery"},o),o()}async lookup(e){return await this.db.get("@hyperdiscovery/swarms",{publicKey:e})}async announce(e,n){const t={buffer:null,start:0,end:0};if(r.fixed32.preencode(t,u),a.preencode(t,e.announce),t.buffer=i.allocUnsafe(t.end),r.fixed32.encode(t,u),a.encode(t,e.announce),Date.now()+6e4>e.announce.bumped)return!1;if(!s.verify(t.buffer,e.signature,e.publicKey))return!1;const o=await this.db.get("@hyperdiscovery/swarms",{publicKey:e.publicKey});if(o&&o.bumped>=e.announce.bump)return!1;this.stats.announces++;const c={publicKey:e.publicKey,bumped:e.announce.bump,updated:Date.now(),signature:e.signature};await this.db.insert("@hyperdiscovery/swarms",c);const h=this.subs.get(i.toString(e.publicKey,"hex"));if(h)for(const[e,s]of h)e!==n&&(c.bumped<s||(this.stats.announcesSent++,e.messages[3].send(c)));return!0}registerMetrics(e){const s=this;new e.Gauge({name:"hyperdiscovery_streams_added",help:"Hyperdiscovery streams added",collect(){this.set(s.stats.streamsAdded)}}),new e.Gauge({name:"hyperdiscovery_streams_ended",help:"Hyperdiscovery streams ended",collect(){this.set(s.stats.streamsEnded)}}),new e.Gauge({name:"hyperdiscovery_subscriptions_added",help:"Hyperdiscovery subscriptions added",collect(){this.set(s.stats.subscriptionsAdded)}}),new e.Gauge({name:"hyperdiscovery_subscriptions_removed",help:"Hyperdiscovery subscriptions removed",collect(){this.set(s.stats.subscriptionsRemoved)}}),new e.Gauge({name:"hyperdiscovery_announces",help:"Hyperdiscovery announces",collect(){this.set(s.stats.announces)}}),new e.Gauge({name:"hyperdiscovery_announces_sent",help:"Hyperdiscovery announces sent",collect(){this.set(s.stats.announcesSent)}}),new e.Gauge({name:"hyperdiscovery_onsubscribe_count",help:"Hyperdiscovery onsubscribe count",collect(){this.set(s.stats.onsubscribeCount)}}),new e.Gauge({name:"hyperdiscovery_onunsubscribe_count",help:"Hyperdiscovery onunsubscribe count",collect(){this.set(s.stats.onunsubscribeCount)}}),new e.Gauge({name:"hyperdiscovery_onannounce_count",help:"Hyperdiscovery onannounce count",collect(){this.set(s.stats.onannounceCount)}})}},HyperDiscoveryClient:class extends t{constructor(e,{bootstrap:s,dht:t=new n({bootstrap:s})}={}){super(),this.remotePublicKey=e,this.dht=t,this.connection=null,this.muxer=null,this.channel=null,this.suspended=!1,this.connecting=!1,this._retryTimeout=null,this._retryResolve=null,this._shouldReconnect=!1}async suspend(){this.suspended=!0,this._clearRetry(),this.connection&&(this.connection.destroy(),this.connecting=null,this.channel=null,this.muxer=null,this.connection.destroyed||await new Promise(e=>this.connection.on("close",e)))}resume(){this.suspended=!1,this._shouldReconnect&&!this.closing&&this._reconnect()}connect(){this.channel||this._reconnect()}async _reconnect(){if(this.connecting)return this.channel;this.connecting=!0,this._shouldReconnect=!0;let e=0;for(;!this.closing&&!this.suspended;){const s=this.connection=this.dht.connect(this.remotePublicKey);if(this.muxer=p(this.connection),this.channel=this.muxer.createChannel({userData:this,protocol:"hyperdiscovery",messages:[{encoding:d,onmessage:b},{encoding:l,onmessage:b},{encoding:h,onmessage:b},{encoding:y,onmessage:m}]}),!this.channel)break;if(this.channel.open(),await new Promise(e=>{function n(){s.off("connect",n),s.off("error",n),e()}s.on("connect",n),s.on("error",n)}),this.closing||this.suspended){s.on("error",_),s.destroy();break}if(!s.destroyed&&!s.destroying){s.on("close",this._reconnect.bind(this));break}e++,await new Promise(s=>{this._retryResolve=s,this._retryTimeout=setTimeout(s,e<3?5e3:15e3)}),this._retryResolve=null,this._retryTimeout=null}return this.connecting=!1,this.closing||this.suspended||this.emit("connect"),this.channel}_close(){this.connection&&this.connection.destroy(),this._clearRetry()}_clearRetry(){this._retryTimeout&&(clearTimeout(this._retryTimeout),this._retryResolve(),this._retryResolve=null,this._retryTimeout=null)}_onbump(e){this.emit("announce",e)}_getChannel(){return this.channel||this._reconnect(),this.channel}cork(){const e=this._getChannel();e&&e.cork()}uncork(){const e=this._getChannel();e&&e.uncork()}subscribe(e,{since:s=0}={}){const n=this._getChannel();n&&n.messages[0].send({publicKey:e,since:s})}unsubscribe(e){const s=this._getChannel();s&&s.messages[1].send({publicKey:e})}async announce(e,{bump:n=Date.now()}={}){const t=this._getChannel();if(!t)return;const o={bump:n},c={buffer:null,start:0,end:0};r.fixed32.preencode(c,u),a.preencode(c,o),c.buffer=i.allocUnsafe(c.end),r.fixed32.encode(c,u),a.encode(c,o);const h=s.sign(c.buffer,e.secretKey),d={publicKey:e.publicKey,announce:o,signature:h};t.messages[2].send(d)}}};
@holepunchto/hyperdiscovery/package.json +16 -3
……@@ -1,6 +1,6 @@
11{
22 "name": "@holepunchto/hyperdiscovery",
3 "version": "1.2.0",
3 "version": "1.4.0",
44 "description": "Peer discovery powered by HyperDHT",
55 "main": "index.js",
66 "dependencies": {
……@@ -18,7 +18,10 @@
1818 "url": "https://github.com/holepunchto/hyperdiscovery.git"
1919 },
2020 "scripts": {
21 "test": "standard"
21 "lint": "prettier --check . && lunte",
22 "format": "prettier --write . && lunte --fix",
23 "test": "brittle-node -c test.js",
24 "test:bare": "brittle-bare -c test.js"
2225 },
2326 "author": "Holepunch Inc.",
2427 "license": "Apache-2.0",
……@@ -27,6 +30,16 @@
2730 },
2831 "homepage": "https://github.com/holepunchto/hyperdiscovery",
2932 "devDependencies": {
30 "standard": "^17.1.2"
33 "bare-prom-client": "^15.1.9",
34 "brittle": "^4.1.0",
35 "lunte": "^1.8.4",
36 "prettier-config-holepunch": "^2.0.0",
37 "prom-client": "^15.1.3"
38 },
39 "imports": {
40 "prom-client": {
41 "bare": "bare-prom-client",
42 "default": "prom-client"
43 }
3144 }
3245}
@holepunchto/keet-core/env.json +10 -10
……@@ -2,11 +2,11 @@
22 "nightly": {
33 "bundles": {
44 "key": "yssst9xdnypg7dbbkc3a4hrusnyb8n4n7e3a9yw469fuuf4i4tso",
5 "length": 287
5 "length": 314
66 },
77 "config": {
88 "key": "5hdn7otebmiachsu4u5d86rp8ejhhmrrm6sstg198fun6rmf41qo",
9 "length": 19
9 "length": 27
1010 },
1111 "roomRegistry": {
1212 "key": "sfo5tburdibh8qdidi7sk9sz44wdgzweurhnjszk36a76s4zrbcy",
……@@ -16,11 +16,11 @@
1616 "internal": {
1717 "bundles": {
1818 "key": "yssst9xdnypg7dbbkc3a4hrusnyb8n4n7e3a9yw469fuuf4i4tso",
19 "length": 287
19 "length": 314
2020 },
2121 "config": {
2222 "key": "5hdn7otebmiachsu4u5d86rp8ejhhmrrm6sstg198fun6rmf41qo",
23 "length": 19
23 "length": 27
2424 },
2525 "roomRegistry": {
2626 "key": "sfo5tburdibh8qdidi7sk9sz44wdgzweurhnjszk36a76s4zrbcy",
……@@ -30,25 +30,25 @@
3030 "production": {
3131 "bundles": {
3232 "key": "eu5e6dieybhbshpzo6nxy8pwycb341qdywkbwqmtjmww174bfnjo",
33 "length": 287
33 "length": 314
3434 },
3535 "config": {
36 "key": "w94a4mrokgp4hu757rhipc3isrxstiyupnpabat357hh6jutwrro",
37 "length": 17
36 "key": "q9nbmhfe9m4jrdqdxhfojaabhndkguj8wo8czhqhbdzu1nxa6ady",
37 "length": 29
3838 },
3939 "roomRegistry": {
4040 "key": "3jogtatsod7urw7zxuksk7t8qxpscxwosfnnd11qt17mphu63tky",
41 "length": 15
41 "length": 34
4242 }
4343 },
4444 "prerelease": {
4545 "config": {
4646 "key": "3i34itm8zqhweq4oxjw3ebg1kyhywqn9359shn9sr1twmm7jdpuo",
47 "length": 17
47 "length": 29
4848 },
4949 "roomRegistry": {
5050 "key": "zxwyg5387zr1gy6okeyqhpdkhwp3csh167ndze83eyun6za13acy",
51 "length": 15
51 "length": 34
5252 }
5353 }
5454}
@holepunchto/keet-core/index.js +1 -1
……@@ -1 +1 @@
1const e=require("keet-identity-key"),{ProofEncoding:t}=require("keet-identity-key/lib/encoding"),i=require("hypercore-storage"),s=require("hypercore-id-encoding"),o=require("ready-resource"),r=require("ready-guard"),a=require("hyperswarm"),n=require("hyperdht"),l=require("corestore"),c=require("hypercore"),h=require("hyperblobs"),d=require("autobase"),y=require("scope-lock"),u=require("rache"),p=require("protomux-wakeup"),m=require("promaphore"),g=require("safety-catch"),w=require("task-backoff"),b=require("hypercore-crypto"),f=require("compact-encoding"),v=require("z32"),k=require("b4a"),P=require("fs"),K=require("path"),_=require("blind-peering"),T=require("multi-profile-store"),R=require("hyperconf");c.enable(c.SMALL_WANTS),c.setRecoveryPeers&&c.setRecoveryPeers([]);const L=require("@holepunchto/keet-push"),C=require("@holepunchto/keet-unread-anchors"),{generateMnemonic:E}=require("bip39-mnemonic"),{HyperDiscoveryClient:B}=require("@holepunchto/hyperdiscovery"),I=require("@holepunchto/keet-indexing"),x=require("./schema/versions"),{FEATURES:D}=x,A=require("./lib/api/v1"),S=require("./lib/api/v2"),O=require("./lib/core/crypto"),q=require("./lib/core/local"),V=require("./lib/core/files"),M=require("./lib/core/tasks"),U=require("./lib/core/sync"),N=require("./lib/core/migrations/3/apply"),{SwarmWorker:F}=require("./lib/core/swarm"),{getWriterKey:W,getInvitationId:j,createInvitation:$,generateRoomCapabilities:G,generateIdentityPairingName:H,generateRoomPairingName:J}=require("./lib/core/invitations"),{getMemberForDeviceKey:Y}=require("./lib/core/contract/query"),{restoreAvatar:z}=require("./lib/core/contract/avatars"),{RoomStatus:Q}=require("./lib/core/contract/identity/private"),{DEBUG_FLAGS:X,DHT_SETTINGS:Z,SWARM_SETTINGS:ee}=require("./lib/core/debug/debugging"),{KeetContract:te}=require("./lib/core/contract"),{KeetContractError:ie}=require("./lib/core/contract/errors.js"),se=require("./lib/core/log"),{contract:{hyperdispatch:{decode:oe,DispatchError:re},hyperschema:{getEnum:ae,getEncoding:ne,encode:le,decode:ce}},local:{hyperschema:{getEnum:he}},config:{hyperconf:de}}=require("./schema/spec"),ye=ne("@keet-private-id/profile-discovery-record"),ue=ae("@keet/build-type"),pe=require("./lib/core/users"),me=require("./lib/core/rooms/index.js"),ge=require("protomux-rpc-client"),{KeetErrorManager:we,KeetErrorV2:be}=require("./lib/errors"),{Version:fe}=require("bare-semver"),{roomMigrationsStats:ve}=require("./lib/core/contract/stats/local"),ke=require("./lib/bundle"),Pe=he("@local/keet-state"),Ke=2592e6,_e=k.alloc(32),Te=require("./lib/env"),{CallHeartbeatManager:Re}=require("./lib/api/v1/calls");class Le{constructor(e,t){this.keet=e,this.roomId=t,this.batch=null,this.length=0,this.timestamp=0,this.pushLength=0}get key(){return this.room.base.local.key}_open(){this.room=this.keet.internalOpenExistingRoom(this.roomId),this.batch=this.room.base.batch(),this.timestamp=Date.now()}_noop(){return this.close(),this.length}async dispatch(e,t,{dryRun:i=!0}={}){this.room||this._open(),this.room.opened||await this.room.ready();const s=await this.room._internalEncodeOperation(e,t,{view:this.room.view,timestamp:this.timestamp});return i&&!await this.keet.internalDryRun(this.room,this.room.view,[s])?this._noop():(this.length=await this.append(s),!this.pushLength&&xe(e)&&(this.pushLength=this.length),this.length)}async append(e){return this.batch.append(e)}async flush(){try{return await this.batch.flush(),await this.room._postAppend({encoded:this.batch.blocks,pushLength:this.pushLength,timestamp:this.timestamp}),{key:this.key,length:this.length}}finally{this.close()}}close(){this.room&&this.keet.internalReleaseRoom(this.room),this.batch&&this.batch.close(),this.batch=null,this.length=0,this.shouldPush=!1}}class Ce extends o{constructor(e,t,i,o,r){super(),this.keet=e,this.id=t,this.key=i,this.base=r,this.externalBlobs=null,this.discoveryKey=o,this.discoveryId=s.encode(this.discoveryKey),this.view=this.base.view,this.db=this.view.db,this.core=this.view.core,this.blobs=this.view.blobs,this.router=this.view.router,this.push=null,this.keet.push&&(this.push=this.keet.push.room(this.key,this.discoveryKey)),this.refs=0,this.idleTicks=0,this._pushLock=new y({debounce:!0}),this.ready().catch(De)}get deviceId(){return s.encode(this.deviceKey)}get deviceKey(){return this.base.local.key}get encryptionKey(){return this.base.encryptionKey}getQuickStats(){return{view:{peers:this.view.core.peers.length,length:this.view.core.length,signedLength:this.view.core.signedLength,byteLength:this.view.core.byteLength},system:{peers:this.base.core.peers.length,length:this.base.length,signedLength:this.base.signedLength,indexedLength:this.base.indexedLength},base:{opened:this.base.opened,closed:this.base.closed,opening:!!this.base.opening,closing:!!this.base.closing,writable:this.base.writable,indexing:this.base.ackable,interrupted:!!this.base.interrupted,appending:!!this.base.appending,flushing:!!this.base.flushing,advancing:!!this.base._advancing}}}async getStats(){const[e,t,i]=await Promise.all([this.keet.local.get("@local/rooms",{roomKey:this.key}),this.keet.local.get("@local/room-preferences",{roomKey:this.key}),this.keet.local.get("@local/writers-by-room-key",{roomKey:this.key})]),{view:o,system:r,base:a}=this.getQuickStats();return{view:o,system:r,base:a,writer:{key:i.key?s.encode(i.key):null,roomKey:i?.roomKey?s.encode(i.roomKey):null},status:e?.status,preferences:t?.status}}async _createDeviceAttestation(e,t){const i=await this.keet.internalEnterLocalTransaction();try{const s=this.keet.internalAttestData(e,t);return await i.insert("@local/device-attestations",{deviceKey:e,proof:s,createdAt:Date.now()}),await i.flush(),s}finally{await this.keet.internalExitLocalTransaction()}}async _attestedPushNotify(e){const t=this.deviceKey,[i,s]=await Promise.all([this.keet.local.get("@local/identity"),this.keet.local.get("@local/device-attestations",{deviceKey:t})]),o=s?.createdAt||0,r=i.proofShortenedAt||0,a=!s||o<r?await this._createDeviceAttestation(t,i):s.proof;await this.push.send(this.base.local,e,{version:1,attest:a})}async _safePushNotify(e){if(this._pushLengths||(this._pushLengths=[]),this._pushLengths.push(e),!await this._pushLock.lock())return;if(this.closing)return;const t=this._pushLengths;this._pushLengths=null;try{await this._attestedPushNotify(t)}catch(e){this.keet.onerror(e,{roomKey:this.key})}this._pushLock.unlock()}async _safeBumpDiscovery(e){try{const t=await this.keet.local.get("@local/rooms",{roomKey:this.key});this.keet.discovery.announce(t.capabilities.discoveryKeyPair,{bump:e})}catch(e){this.keet.onerror(e,{roomKey:this.key})}}async _open(){await this.base.ready(),this.internalEnsureMirroring(),this.base.on("writer",async e=>{try{if(await this.keet.local.get("@local/devices",{device:{key:e.core.key}}))return;const t=await this.db.get("@keet/devices",{key:e.core.key});t&&await this.db.get("@keet/members",{key:t.memberKey})}catch(e){g(e)}}),this.base.local.on("remote-contiguous-length",this._handleSentLengthChanged.bind(this)),this.base.on("rotate-local-writer",()=>{this.base.local.on("remote-contiguous-length",this._handleSentLengthChanged.bind(this))}),this.db.get("@keet/room-config").then(e=>{this.keet.logger.debug("opened id: "+this.id+" title: "+e?.title)},g),this.externalBlobs=new h(this.keet.store.get({name:this.id+"/blobs",encryptionKey:this.encryptionKey,encrypted:!0,exclusive:!0,active:!1})),await this.externalBlobs.ready(),await this._ensureMetadata(),this.internalEnsureProfileUpdated(),this.internalEnsureUpgraded(),this.internalEnsureRepaired()}async internalCloseBase(){this.keet.internalTime(`internal-close-base-${this.id}`),await this.base.close(),this.keet.internalTimeEnd(`internal-close-base-${this.id}`)}async internalCloseExternalBlobs(){this.keet.internalTime(`internal-close-blobs-${this.id}`),await this.externalBlobs.close(),this.keet.internalTimeEnd(`internal-close-blobs-${this.id}`)}async internalPushDestroy(){this.push&&(this.keet.internalTime(`internal-close-push-${this.id}`),await this.push.destroy(),this.keet.internalTimeEnd(`internal-close-push-${this.id}`))}_close(){return Promise.all([this.internalCloseBase(),this.internalCloseExternalBlobs(),this.internalPushDestroy()])}_handleSentLengthChanged(){if(!this.base.writable)return;const{length:e,remoteContiguousLength:t}=this.base.local;e===t&&this.keet.emit("room-sent-message",this.base.id)}async _ensureMetadata(){const e=await this.keet.internalEnterLocalTransaction();try{const[t,i]=await Promise.all([e.get("@local/room-metadata",{roomKey:this.key}),e.get("@local/rooms",{roomKey:this.key})]);if(t)return;const s=i?0:1;await e.insert("@local/room-metadata",{roomKey:this.key,repairs:s}),await e.flush()}finally{await this.keet.internalExitLocalTransaction()}}async internalEnsureMirroring(){this.refs++;try{const e=this.base.wakeupCapability&&this.base.wakeupCapability.key,t=await this.keet._getMirrorKeys(this.key);if(this.closing)return;this.keet.blindPeering.addAutobaseBackground(this.base,{target:e,keys:t})}finally{this.refs--}}async internalEnsureUpgraded({opening:e=!1}={}){this.refs++;try{e||this.keet.onlineBoot.opened||await this.keet.onlineBoot.ready();const[t,i]=await Promise.all([this.db.get("@keet/system-digest"),Y(this.db,this.deviceKey)]);if(!i?.status.isModerator||t?.abi.version>=this.keet.abi.autoupgrade)return;await this.keet.internalDispatchUpgrade(this.id,this.keet.abi.autoupgrade)}catch(e){this.keet.onerror(e,{roomKey:this.key})}finally{this.refs--}}async internalEnsureProfileUpdated(){this.refs++;try{this.keet.onlineBoot.opened||await this.keet.onlineBoot.ready();const[e,t]=await Promise.all([this.keet.local.get("@local/identity"),Y(this.db,this.deviceKey)]);if(this.closing||!e||!t||k.equals(this.key,e.privateProfileKey))return;const i=await this.keet.local.get("@local/rooms",{roomKey:e.privateProfileKey});if(this.closing)return;if(t.profile.timestamp>=i.selfMember.profile.timestamp)return;const s={profile:i.selfMember.profile,attestation:{memberKey:i.selfMember.key,proof:i.selfMember.proofs.profileAttestation}};await this.dispatch("@keet/update-member",{member:s})}catch(e){this.keet.onerror(e,{roomKey:this.key})}finally{this.refs--}}async internalEnsureRepaired(){this.refs++;try{if(this.keet.onlineBoot.opened||await this.keet.onlineBoot.ready(),this.closing||this.keet.closing)return;if(this===this.keet.privateProfile)return;const e=await this.keet.local.get("@local/room-metadata",{roomKey:this.key});if(this.closing||this.keet.closing||e.repairs>=1)return;if(this.base.linearizer.size>500)return;const t=await this.db.get("@keet-private-id/identity");if(this.closing||this.keet.closing||t)return;if(e.repairs=1,await this.base.repair(),this.closing||this.keet.closing)return;const i=await this.keet.internalEnterLocalTransaction();try{await i.insert("@local/room-metadata",e),await i.flush()}finally{await this.keet.internalExitLocalTransaction()}}finally{this.refs--}}async _internalEncodeOperation(e,t,{view:i=this.view,timestamp:s=Date.now()}={}){const o=await i.db.get("@keet/system-digest");if(!this.keet.isValidBuildType(o))throw be.INVALID_BUILD_TYPE();return(await this.keet.contractBundles.loadBundle(o?o.abi.version:this.keet.abi.autoupgrade)).encodeOperation(e,{header:{timestamp:s},...t})}async _encodeBatch(e,t={}){const i=Array.isArray(e)?e:[e],s=Date.now(),o=[];let r=!1;for(const{type:e,op:a}of i)o.push(this._internalEncodeOperation(e,a,{...t,timestamp:s})),xe(e)&&(r=!0);return{encoded:await Promise.all(o),timestamp:s,shouldPush:r}}async _postAppend({encoded:e=[],pushLength:t=0,timestamp:i=Date.now()}){this.keet.stats.ops+=e.length,this.push&&t>0&&this._safePushNotify(t),this.keet.discovery&&this._safeBumpDiscovery(i),this.db.update()}async dispatchBatch(e,{view:t=this.view,dryRun:i=!0,optimistic:s=!1}={}){this.opened||await this.ready();const{encoded:o,timestamp:r,shouldPush:a}=await this._encodeBatch(e,{view:t});if(i&&!await this.keet.internalDryRun(this,t,o))return null;const n=await this.base.append(o,{optimistic:s}),l=a?n:0;return await this._postAppend({encoded:o,pushLength:l,timestamp:r}),{key:this.base.local.key,length:n}}dispatch(e,t,i){return this.dispatchBatch([{type:e,op:t}],i)}}module.exports=class extends o{constructor(e,t={}){if(super(),this.dir=e,this.opts=t,this.isMobile=!!t.mobile,this.isTesting=!!t.testing,this.appVersion=t.appVersion?fe.parse(t.appVersion):null,this.forceBuildType=!!t.forceBuildType,!t.buildType)throw be.INVALID_BUILD_TYPE();this.buildType=function(e){switch(e){case"nightly":return ue.Nightly;case"internal":return ue.Internal;case"production":return ue.Production;default:throw be.INVALID_BUILD_TYPE()}}(t.buildType),this.logger=new se(t.logger),this.isTesting&&this.logger.mute(),this.callHeartbeatManager=new Re(this,t.callHeartbeat);const s=Te(t.buildType);this.isNightly=this.buildType===ue.Nightly,this.isExperimental=this.isTesting?t.experimental??this.isNightly:this.isNightly,this.offlineBoot=new r,this.onlineBoot=new r,this.debug={},this.versions=x,this.abi=t.testingABI||{max:this.isExperimental?x.EXPERIMENTAL:x.STABLE,autoupgrade:this.isExperimental?x.EXPERIMENTAL:x.AUTOUPGRADE,production:x.STABLE},this.logout=t.logout,this.storage=new i(e,t.storage),this.rootCorestore=new l(this.storage,{globalCache:new u({maxSize:t.maxCacheSize}),manifestVersion:2}),this.store=this.rootCorestore.namespace("keet-core"),this.rootCorestore.watch(this._handleCoreOpen.bind(this)),this.local=q.rocks(this.storage.rocks.columnFamily("keet/local-database")),this.discovery=null,this.gatekeepers=t.gatekeepers||[],this.push=null,this.protomuxWakeup=new p(this._handleWakeup.bind(this)),this.backoff=new w,this.rooms=new Map,this.activeRooms=new Set,this._transactionLock=new y,this._tx=null,this.hyperconf=null,this.config=null,this.configMinVersion=null,this.errorManager=new we(this,this.opts),this.swarmWorker=new F(this,this.opts.swarmWorker),this.files=new V(this,this.opts),this._onerror=t.onerror||g,this.onerror=this.errorManager?(e,t={})=>{const i=this.errorManager.normalize(e,t);this.errorManager.add(i),this.logger.error(i),this._onerror(i)}:this._onerror,this.apiV1=new A(this,t),this.backendAPI=this.apiV1,this.api=this.backendAPI.api.core,this.blindPeeringOpts=t.blindPeeringOpts||{},this.contractBundles=null,this.tasks=null,this.swarm=null,this.swarmId=null,this.blindPeering=null,this.privateProfile=null,this.unreads=null,this.unreadsLoading=null,this.userRegistry=null,this.roomRegistry=null,this.discoveryCore=null,this.discoveryCoreSession=null,this.push=null,this.state=Pe.RESUME,this._bundlesKey=t.bundlesKey||s.bundles.key,this._bundlesLength=t.bundlesLength||s.bundles.length,this._hyperconfKey=t.hyperconfKey||s.config.key,this._hyperconfLength=t.hyperconfLength||s.config.length,this._roomRegistryOpts=t.roomRegistry||s.roomRegistry,this._disabledRooms=this.isTesting?new Set:null,this._verifiedRooms=this.isTesting?new Set:null,this._relayKeys=this.isTesting?t.blindRelays||[]:null,this._blindPeerKeys=this.isTesting?t.blindMirroring||[]:null,this._gatekeeperKeys=this.isTesting?t.gatekeepers||[]:null,this._discoveryBootstrapKeys=this.isTesting?t.discoveryBootstrapKeys||[]:null,this._disableUnreadSync=this.isTesting&&t.disableUnreadSync||!1,this._otaResyncPrivateProfileBump=this.isTesting&&t.otaResyncPrivateProfileBump||0,this._migratedFrom=0,this._unreadsLock=new y({debounce:!0}),this._dhtOpts=t.dht,this._swarmOpts=t.swarm,this._pendingTasks=[],this._swarmTasks=[],this._runningTasks=new Set,this._waitingForCompletion=new Map,this._completedRequests=new Set,this._pendingCandidates=new Map,this._swarming=new Map,this._pendingTraces=[],this._cacheLock=new y({debounce:!0}),this._gcEnabled=!1!==t.gc,this._gcIdleTicks=t.gcIdleTicks||4,this._gcInterval=t.gcInterval||5e3,this._gcTimer=null,this._gcClosingRooms=new Set,this._boundAutobaseTrace=this._autobaseTrace.bind(this),this.internalPairingTimeout=t.pairingTimeout||3e3,this._profileDiscoveryTimeout=t.profileDiscoveryTimeout||1e4,this.migrationStatus=null,this._roomMigrations=new m(5),this._discoveryLock=new y({debounce:!0}),this._discoverySemaphore=new m(10),this._discovering=new Map,this.internalFastJoinSemaphore=new m(4),this.debugRunningFastJoins=0,this.debugMaxRunningFastJoins=0,this._rejectAnonymousProfiles=!1!==t.rejectAnonymousProfiles,this._registryOpts=this.isTesting?t.userRegistry:null,this.rpcClient=null,this.ackThreshold=t.ackThreshold,this.ackInterval=t.ackInterval,this.stats={ops:0,appends:0,bytesAppended:0,uploaded:0,bytesUploaded:0,downloaded:0,bytesDownloaded:0},this.debugForceMigrationFailure=t.debugForceMigrationFailure||null,this.debugJoinPeer=t.debugJoinPeer||this._debugJoinPeer.bind(this),this.debugLeavePeer=t.debugLeavePeer||this._debugLeavePeer.bind(this),this.debugClosing=!1,this.ready().catch(this.onerror)}async backendReady(){this.backendAPI.opened||await this.backendAPI.ready()}get readOnly(){return this.rootCorestore.storage.readOnly||!1}get suspended(){return this.state===Pe.SUSPEND}async _openNetworking(){const e=await this.getDHTSettings(),t=await this.getSwarmSettings();this.swarm=new a({deferRandomPunch:!0,dht:new n({...e,...this._swarmOpts,...this._dhtOpts}),maxPeers:t.maxPeers,...this._swarmOpts,relayThrough:this._relayThrough.bind(this),keyPair:await this.rootCorestore.createKeyPair("keet-swarm-keypair")}),this.swarmId=s.encode(this.swarm.keyPair.publicKey),this.swarm.on("connection",this._handleConnection.bind(this)),this.discovery=this._discoveryBootstrapKeys.length?new B(this._discoveryBootstrapKeys[0],{dht:this.swarm.dht}):null,this.rpcClient=new ge(this.swarm.dht,{suspended:this.state===Pe.SUSPEND,relayThrough:this._relayThrough.bind(this)}),this.blindPeering=new _(this.swarm.dht,this.store,{pick:2,wakeup:this.protomuxWakeup,keys:this.debug.disableMirrors?[]:this._blindPeerKeys,relayThrough:this._relayThrough.bind(this),...this.blindPeeringOpts}),this._gatekeeperKeys.length>0&&(this.push=new L(this._gatekeeperKeys,{dht:this.swarm.dht})),await this.swarmWorker.ready(),await this.files.ready(),this.readOnly&&(this.blindPeering.suspend(),this.swarm.suspend())}async _runBootOffline(){if(!this.offlineBoot.enter())return;await this._ensureDebugState(),await this.store.ready(),this.hyperconf=new R(de,this.store.get(this._hyperconfKey),{minLength:this._hyperconfLength,production:this.buildType===ue.Production}),this.hyperconf.on("update",this._handleConfigUpdated.bind(this)),await this.hyperconf.ready(),await this._handleConfigUpdated(),this.config?.versions.autoupgrade>0&&(this.abi.autoupgrade=this.config.versions.autoupgrade);const e=await this.local.get("@local/environment"),t=!!e&&e.latestOfflineAbi<this.abi.production;this.contractBundles=new ke(this,"keet-bundles",{hydrate:t}),await this.contractBundles.ready(),t&&await this._bumpLocalAbiVersion(),await this._openNetworking(),this.tasks=new M(this),await this.tasks.ready(),this._gcEnabled&&(this._gcTimer=setInterval(this._closeIdleRooms.bind(this),this._gcInterval)),this.offlineBoot.exit()}async _runBootOnline(){if(this.onlineBoot.enter()){await this.offlineBoot.ready(),this.discovery&&(this.discovery.on("announce",({publicKey:e})=>{this.scheduleDiscoverySwarming(e)}),this.discovery.on("connect",this._onDiscoveryConnect.bind(this)),this.discovery.connect()),this._refreshDiscoverySwarming(),this._migratedFrom=await this._ensureMigrated();try{await this._loadIdentity()}catch(e){this.onerror(e)}this._migratedFrom>0&&await this._maybeRunPostMigrations(this._migratedFrom),this._registryOpts&&(this.userRegistry=new pe(this,this._registryOpts),await this.userRegistry.ready()),this._roomRegistryOpts&&(this.roomRegistry=new me(this,this._roomRegistryOpts),await this.roomRegistry.ready()),this.onlineBoot.exit()}}async _open(){!1!==await this._ensureBuildType()&&(this._runBootOffline().catch(this.onerror),this._runBootOnline().catch(this.onerror),await this.offlineBoot.ready())}async _close(){this.internalTime("keet-close"),this.internalVerboseLog("Closing keet core"),this._gcTimer&&clearInterval(this._gcTimer),this.backoff.destroy(),this.callHeartbeatManager.clear(),this.internalTimeLog("keet-close","destroyed backoff"),this.state===Pe.SUSPEND&&await this.store.resume(),this.internalTimeLog("keet-close","resumed from suspend"),this.internalVerboseLog("Closing active calls"),await this.backendAPI.closeActiveCalls(),this.internalTimeLog("keet-close","closed active calls"),this.internalVerboseLog("Closing discovery cores"),this.discoveryCore&&await this.discoveryCore.close(),this.discoveryCoreSession&&this.discoveryCoreSession.destroy(),this.internalTimeLog("keet-close","closed discovery cores"),this.internalVerboseLog("Closing tasks"),this.tasks&&await this.tasks.close(),this.internalFastJoinSemaphore.destroy(),this.internalTimeLog("keet-close","stopped running tasks");for(const e of this._gcClosingRooms)this.internalTime(`gc-room-close-${e.id}`),this.internalTimeLog(`gc-room-close-${e.id}`),this.internalVerboseLog("Closing room in gc list",e.id,e.opened),await e.close(),this.internalTimeEnd(`gc-room-close-${e.id}`,"closed");this.internalTimeLog("keet-close","closed rooms in gc"),this.internalVerboseLog("Closing user registry"),this.userRegistry&&await this.userRegistry.close(),this.internalTimeLog("keet-close","closed user registry"),this.internalVerboseLog("Closing room registry"),this.roomRegistry&&await this.roomRegistry.close(),this.internalTimeLog("keet-close","closed room registry"),this.internalVerboseLog("Closing rpc client"),this.rpcClient&&await this.rpcClient.close(),this.internalTimeLog("keet-close","closed rpc client"),this.internalVerboseLog("Closing swarm worker"),await this.swarmWorker.close(),this.internalTimeLog("keet-close","closed swarm worker"),this.internalVerboseLog("Closing discovery"),this.discovery&&await this.discovery.close(),this.internalTimeLog("keet-close","closed discovery"),this.internalVerboseLog("Closing push"),this.push&&await this.push.destroy(),this.internalTimeLog("keet-close","closed push"),this.internalVerboseLog("Closing blind peering"),this.blindPeering&&await this.blindPeering.close(),this.internalTimeLog("keet-close","closed blind peering"),this.internalVerboseLog("Flushing DHT cache"),this.swarm&&await this._flushDHTCache(),this.internalTimeLog("keet-close","flushed dht"),this.internalVerboseLog("Closing swarm"),this.swarm&&await this.swarm.destroy(),this.internalTimeLog("keet-close","destroyed swarm"),this.internalVerboseLog("Closing files"),await this.files.close(),this.internalTimeLog("keet-close","closed files"),this.internalVerboseLog("Closing all pending rooms and workers"),await Promise.allSettled([...[...this.rooms.values()].map(async e=>{this.internalTime(`pending-room-close-${e.id}`),this.internalTimeLog(`pending-room-close-${e.id}`),await e.close(),this.internalTimeEnd(`pending-room-close-${e.id}`)})]),this.internalTimeLog("keet-close","closed all pending rooms and workers"),this.internalVerboseLog("Closing backend"),await this.apiV1.close(),this.internalTimeLog("keet-close","closed backend"),await this.internalEnterLocalTransaction(),await this.internalExitLocalTransaction(),this.internalVerboseLog("Closing unread anchors"),this.unreadsLoading&&await this.unreadsLoading,this.unreads&&await this.unreads.close(),this.internalTimeLog("keet-close","closed unreads"),this.internalVerboseLog("Closing wakeup"),this.protomuxWakeup.destroy(),this.internalTimeLog("keet-close","protomux"),this.internalVerboseLog("Closing hyperconf"),this.hyperconf&&await this.hyperconf.close(),this.internalVerboseLog("Closing error manager"),this.errorManager&&await this.errorManager.close(),this.internalVerboseLog("Closing local db"),await this.local.close(),this.internalVerboseLog("Closing contract bundles"),this.contractBundles&&await this.contractBundles.close(),this.internalVerboseLog("Closing store"),await this.store.close(),this.internalVerboseLog("Closing root corestore"),await this.rootCorestore.close(),this.internalTimeLog("keet-close","closed cores"),this.internalVerboseLog("Close done"),this.internalTimeEnd("keet-close")}async _ensureDebugState(){const e=await this.internalEnterLocalTransaction();try{const t=await e.get("@local/debug")||{};t.flags||(t.flags=X);const i=new Set,s={};for(const e of t.flags)i.add(e.key),s[e.key]=e.value;for(const{key:e,value:s,description:o}of X)i.has(e)||t.flags.push({key:e,value:s,description:o});await e.insert("@local/debug",t),await e.flush(),this.debug={...s}}finally{await this.internalExitLocalTransaction()}}isValidBuildType(e){if(!e)return!0;if(this.isTesting&&!this.forceBuildType)return!0;const t=ue.Production===this.buildType;return!(!t&&!e.settings.buildType||!t&&e.settings.buildType!==this.buildType)}async _ensureBuildType(){if(this.isTesting&&!this.forceBuildType)return;const e=ue.Production===this.buildType,t=await this.internalEnterLocalTransaction();try{const[i,s]=await Promise.all([t.get("@local/identity"),t.get("@local/environment")]);if(!e&&i&&!s?.buildType)throw be.INVALID_BUILD_TYPE();if(s&&s.buildType!==this.buildType)throw be.INVALID_BUILD_TYPE();if(s)return;await t.insert("@local/environment",{buildType:this.buildType}),await t.flush()}catch(e){return this.onerror(e),!1}finally{await this.internalExitLocalTransaction()}}async _bumpLocalAbiVersion(){const e=await this.internalEnterLocalTransaction();try{const t=await e.get("@local/environment");t.latestOfflineAbi=this.abi.production,await e.insert("@local/environment",t),await e.flush()}finally{await this.internalExitLocalTransaction()}}async _onDiscoveryConnect(){const e=await this.local.find("@local/rooms-by-timestamp",{reverse:!0,limit:256}).toArray();this.discovery.cork();for(const t of e){const e=t.capabilities.discoveryKeyPair.publicKey,i=await this.local.get("@local/background-sync",{discoveryPublicKey:e}),s=Math.max(t.timestamps.latestSync,i?i.lastSynced:0);this.discovery.subscribe(t.capabilities.discoveryKeyPair.publicKey,{since:s})}this.discovery.uncork()}async internalEnterLocalTransaction(){return await this._transactionLock.lock(),this._tx=this.local.transaction(),this._tx}async internalExitLocalTransaction(){await this._tx.close(),this._transactionLock.unlock()}async _handleConfigUpdated(){if(!this.isTesting||this.opts.hyperconfKey){if(this.config=this.hyperconf.current,this.internalVerboseLog("OTA config updated, dkey:",s.encode(this.hyperconf.core.discoveryKey),"length:",this.hyperconf.core.length),this._blindPeerKeys=this.config.services.blindPeers,this._relayKeys=this.config.services.blindRelays,this._gatekeeperKeys=this.config.services.gatekeepers,this._discoveryBootstrapKeys=this.config.services.discovery,c.setRecoveryPeers&&c.setRecoveryPeers(this.config.services.blindPeers),this._disabledRooms=new Set(this.config.rooms.disabled.map(e=>s.encode(e))),this._verifiedRooms=new Set(this.config.rooms.verified?.map(e=>s.encode(e))),this._disableUnreadSync=!0===this.config.profile?.disableUnreadSync,this._otaResyncPrivateProfileBump=this.config.profile?.otaResyncPrivateProfileBump||0,this._maybeOtaResyncPrivateProfile().catch(this.onerror),this._maybeUpgradeOpenRooms().catch(this.onerror),this.config.services.userRegistries?.length&&(this._registryOpts=this.config.services.userRegistries[0]),this.blindPeering&&this.blindPeering.setKeys(this._blindPeerKeys),this.config.versions.minVersion){const{major:e,minor:t,patch:i}=this.config.versions.minVersion;this.configMinVersion=new fe(e,t,i)}this.config.versions.autoupgrade>0&&(this.abi.autoupgrade=this.config.versions.autoupgrade),this.emit("force-update"),this.emit("verified-rooms-changed")}}async _maybeUpgradeOpenRooms({debug:e=!1}={}){this.onlineBoot.opened||await this.onlineBoot.ready();const t=this.abi.autoupgrade,i=this.config?.versions.autoupgrade;if(!(t<i)&&!0!==e)return;const s=[],o=async function(e,t){try{await e.ready();const[i,s]=await Promise.all([e.db.get("@keet/system-digest"),Y(e.db,e.deviceKey)]);if(!s?.status.isModerator||i?.abi.version>=t)return;await this.internalDispatchUpgrade(e.id,t)}catch(e){this.onerror(e)}}.bind(this);for(const[e,t]of this.rooms.entries())s.push(o(t,i));return await Promise.all(s)}async _maybeOtaResyncPrivateProfile(){this.onlineBoot.opened||await this.onlineBoot.ready();const e=this._otaResyncPrivateProfileBump||0,t=await this.internalEnterLocalTransaction();try{if(!(e>((await t.get("@local/ota-actions"))?.otaResyncPrivateProfileBump||0)))return;if(null===await this.internalResyncPrivateProfile())return;await t.insert("@local/ota-actions",{otaResyncPrivateProfileBump:e}),await t.flush()}catch(e){this.onerror(e)}finally{await this.internalExitLocalTransaction()}}shouldForceUpdate(){const e=this.config.versions.forceUpdate>x.FORCE_UPDATE,t=this.configMinVersion&&this.appVersion?this.configMinVersion.compare(this.appVersion):0;return e||1===t}isRoomVerified(e){return this._verifiedRooms.has(e)}async _bumpRoom(e){if(this.closing)return;if(!await this.local.get("@local/writers-by-room-key",{roomKey:e}))return;if(this.closing)return;const t=this.internalOpenExistingRoom(e);try{await t.ready()}finally{this.internalReleaseRoom(t)}}_handleCoreOpen(e){const t=new c({core:e,weak:!0}),i=new y({debounce:!0});t.on("verification-error",e=>{this.onerror(e,{coreKey:t.key,prefix:"CORE_VERIFICATION_ERROR"})}),t.on("conflict",()=>{this.onerror(new Error("Conflict in Hypercore"),{coreKey:t.key,prefix:"CORE_CONFLICT"})}),t.on("invalid-request",e=>{this.onerror(e,{coreKey:t.key,prefix:"CORE_INVALID_REQUEST"})}),t.on("append",async()=>{if(await i.lock())try{const t=e.state.storage.read(),i=[t.getUserData("referrer"),t.getUserData("autobase/view")];t.tryFlush();const[s,o]=await Promise.all(i);if(!s||o)return;await this._bumpRoom(s)}catch(e){this.onerror(e)}finally{i.unlock()}}),t.on("upload",(e,t)=>{this.stats.uploaded++,this.stats.bytesUploaded+=t}),t.on("download",(e,t)=>{this.stats.downloaded++,this.stats.bytesDownloaded+=t}),t.once("ready",()=>{if(t.writable){let e=t.length,i=t.byteLength;t.on("append",()=>{const s=t.length,o=t.byteLength;this.stats.appends+=s-e,this.stats.bytesAppended+=o-i,e=s,i=o})}})}async _handleWakeup(e){if(!this.discovery)try{const[t,i]=await Promise.all([this.local.get("@local/writers-by-wakeup-topic",{wakeupTopic:e}),this.local.get("@local/rooms-by-wakeup-topic",{capabilities:{wakeupTopic:e}})]);if(!t&&!i)return;const s=t?.mailbox||i?.capabilities.mailboxKeyPair.publicKey,o=this.protomuxWakeup.session(s,{active:!1,discoveryKey:e,onpeeractive:e=>{t&&o.announce(e,[{key:t.key,length:1}])}});i&&await this._bumpRoom(i.roomKey)}catch(e){this.onerror(e)}}async _maybeRunMigrations(e,t){3===t&&await require("./lib/core/migrations/3")(this,e),4===t&&await require("./lib/core/migrations/4")(this,e),5===t&&await require("./lib/core/migrations/4")(this,e),t<8&&await require("./lib/core/migrations/7")(e),t<9&&await require("./lib/core/migrations/8")(e)}async _maybeRunPostMigrations(e){4===e&&await require("./lib/core/migrations/4/post")(this),5===e&&await require("./lib/core/migrations/4/post")(this)}async _ensureMigrated(){let e=0;const t=await this.internalEnterLocalTransaction();try{const i=await t.get("@local/migrations"),s=i?i.version:3;s<9&&(e=s,await this._maybeRunMigrations(t,s),await t.insert("@local/migrations",{version:9})),await t.flush()}finally{await this.internalExitLocalTransaction()}const i=await this.local.find("@local/room-migrations-by-priority").toArray(),o=[],r=[],a=[];for(const e of i)this._disabledRooms.has(s.encode(e.roomKey))?a.push(e):e.v3?.privateProfile?o.push(e):r.push(e);if(a.length>0){const e=await this.internalEnterLocalTransaction();try{for(const t of a){const i=await e.get("@local/room-migrations",{roomKey:t.roomKey});await e.delete("@local/room-migrations",t),await ve(e,null,i)}await e.flush()}finally{await this.internalExitLocalTransaction()}}await Promise.all(o.map(e=>this._migrateRoom(e,{migratingRooms:r})));for(const e of r)this._migrateRoom(e).catch(this.onerror);return e}async _migrateRoom(e,{migratingRooms:t}={}){await this._roomMigrations.wait();try{const i=e.errored;if(i||(this.migrationStatus||(this.migrationStatus={remaining:0}),this.migrationStatus.remaining++,this.emit("migration-status",this.migrationStatus)),!e.timestamp){const t=await this.internalEnterLocalTransaction();try{e.timestamp=Date.now();const i=await t.get("@local/room-migrations",e);await t.insert("@local/room-migrations",e),await ve(t,e,i),await t.flush()}finally{await this.internalExitLocalTransaction()}}const s=Date.now()-e.timestamp>1728e5;let o=!1,r=!1;try{e.v3&&!s&&await require("./lib/core/migrations/3/room")(this,e.roomKey,e.v3,{migratingRooms:t})}catch(e){this.onerror(e),r=!0,o=!!this.closing}const a=await this.internalEnterLocalTransaction();try{const t=await a.get("@local/room-migrations",e);r?(i||(e.errored=!o),await a.insert("@local/room-migrations",e),await ve(a,e,t)):(await a.delete("@local/room-migrations",e),await ve(a,null,t)),await a.flush()}finally{await this.internalExitLocalTransaction()}i||(this.migrationStatus.remaining--,this.emit("migration-status",this.migrationStatus))}finally{this._roomMigrations.signal()}}async _closeIdleRooms(){const e=[],t=[];for(const i of this.rooms.values())i.refs>0||this.activeRooms.has(i)||++i.idleTicks<this._gcIdleTicks||this.backendAPI.callsByRoomId.get(i.id)||(this.rooms.delete(i.id),this._gcClosingRooms.add(i),e.push(i.close()),t.push(i));await Promise.allSettled(e);for(const e of t)this._gcClosingRooms.delete(e)}internalCloseRoom(e){this.rooms.delete(e.id),this._gcClosingRooms.add(e)}_debugJoinPeer(e){this.logger.info("Call join:",e)}_debugLeavePeer(e){this.logger.info("Call leave:",e)}debugPauseGC(){this._gcTimer&&(clearInterval(this._gcTimer),this._gcTimer=null)}debugResumeGC(){this._gcTimer||(this._gcTimer=setInterval(this._closeIdleRooms.bind(this),this._gcInterval))}debugMaybeUpgradeOpenRooms(e={}){return this._maybeUpgradeOpenRooms({debug:!0,...e})}async internalDiscoveryCompleted(e,t){try{const e=this._discovering.get(t);if(!e)return;const i=await this.internalEnterLocalTransaction();try{const t=e.roomInfo.capabilities.discoveryKeyPair.publicKey;e.room&&this.internalReleaseRoom(e.room);const s=await i.get("@local/background-sync",{discoveryPublicKey:t});s&&await i.insert("@local/background-sync",{...s,lastSynced:Date.now(),dirty:!1}),await i.flush()}finally{await this.internalExitLocalTransaction()}this._discovering.delete(t),this._discoverySemaphore.signal()}catch(e){this.onerror(e)}}async _startDiscoverySwarming(e,t){if(!await this._discoverySemaphore.wait())return!1;if(this.closing)return!1;const i=this._discovering.get(t);return!!i&&(this.swarmWorker.startDiscoverySwarming(e,{roomId:t}),i.updated&&this.swarmWorker.notifyDiscoveryUpdate(e),!0)}async _refreshDiscoverySwarming(){if(await this._discoveryLock.lock()&&!this.closing)try{const e=await this.internalEnterLocalTransaction();try{for await(const{discoveryPublicKey:t}of e.find("@local/background-sync-by-dirty",{reverse:!0})){const e=await this.local.get("@local/rooms-by-discovery",{capabilities:{discoveryKeyPair:{publicKey:t}}});if(!e)continue;const i=s.encode(e.discoveryKey);if(this._discovering.has(i))continue;const o=this.internalOpenExistingRoom(e.roomKey);this._discovering.set(i,{updated:!1,room:o,roomInfo:e}),this._startDiscoverySwarming(e.capabilities.swarmTopic,i)||this.internalReleaseRoom(o)}await e.flush()}finally{await this.internalExitLocalTransaction()}}catch(e){this.onerror(e)}finally{this._discoveryLock.unlock()}}async scheduleDiscoverySwarmingFromDiscoveryKey(e){const t=await this.local.get("@local/rooms-by-discovery-key",{discoveryKey:e});if(t)return this.scheduleDiscoverySwarming(t.capabilities.discoveryKeyPair.publicKey)}async scheduleDiscoverySwarming(e){const t=await this.internalEnterLocalTransaction();try{const i=await t.get("@local/background-sync",{discoveryPublicKey:e}),s=i?.lastSynced||0;await t.insert("@local/background-sync",{discoveryPublicKey:e,timestamp:Date.now(),lastSynced:s,dirty:!0}),await t.flush()}finally{await this.internalExitLocalTransaction()}this._refreshDiscoverySwarming()}async internalBlobsActiveInRoom(e){const t=s.encode(e),i=this.rooms.get(t);if(!i)return;const o=await this.local.get("@local/rooms",{roomKey:e});if(!o)return;const{capabilities:r}=o;if(!r||!r.mailboxKeyPair)return;try{await i.ready()}catch{return}if(!i.externalBlobs)return;const a=await this._getMirrorKeys(e,o);i.closing||this.blindPeering.addCoreBackground(i.externalBlobs.core,{target:r.mailboxKeyPair.publicKey,keys:a,pick:1})}async _getMirrorKeys(e,t){if(this.debug.disableMirrors)return[];if(!e)return this._blindPeerKeys;const i=t||await this.local.get("@local/rooms",{roomKey:e});return i&&i.config.blindPeers?.length?i.config.blindPeers:this._blindPeerKeys}_relayThrough(e){return e||this.swarm.dht.randomized?this._relayKeys:null}internalVerboseLog(...e){const t=new Date;this.logger.info(t,...e)}internalTime(...e){this.isTesting||console.time(...e)}internalTimeLog(...e){this.isTesting||console.timeLog(...e)}internalTimeEnd(...e){this.isTesting||console.timeEnd(...e)}_handleConnection(e){if(this.closing)return void e.on("error",()=>{});const t=s.encode(e.publicKey),i=s.encode(e.remotePublicKey),o=Date.now();let r=0;this.internalVerboseLog(`got ${e.isInitiator?"client":"server"} connection from ${t} to ${i}`);let a=null;e.once("error",e=>{a=e}),e.once("close",()=>{this.internalVerboseLog(`connection closed to ${i}, with err: ${a} (${Date.now()-o} ms ${r} bytes recv)`)}),e.on("data",e=>{r+=e.byteLength}),this.protomuxWakeup.addStream(e),this.rootCorestore.replicate(e)}async _createInitialIdentity(){const t=e.generateMnemonic(),i=this.tasks.restoreIdentity(_e,{mnemonic:t,recover:!1});await i.run()}async _loadIdentity(){let e=await this.local.get("@local/identity");if(e||await this._createInitialIdentity(),e=await this.local.get("@local/identity"),this.privateProfile)return;const t=await this.local.get("@local/rooms",{roomKey:e.privateProfileKey});this.privateProfile=await this.internalOpenPrivateProfile({opening:!0}),this._shortenDeviceAttestations().catch(this.onerror),this.swarmWorker.startActiveSwarming(t.capabilities.swarmTopic),await this.internalRefreshUnreads()}async internalResyncPrivateProfile(){if(!this.privateProfile)return null;const e=[];for await(const t of this.privateProfile.db.find("@keet-private-id/rooms"))await this.local.get("@local/rooms",{roomKey:t.roomKey})||e.push(t);for(const t of e)this.tasks.joinRoomKeys(t.roomKey,{keys:t}).runBackground()}async _shortenDeviceAttestations(){const e=await this.local.get("@local/identity");if(!e)return;const i=s.encode(e.privateProfileKey);if(!await this.internalFeatureSupported(i,D.SHORTEN_ATTESTATION))return;const o=this.privateProfile.base.local.key,r=f.decode(t,e.deviceProof).chain.length;for await(const i of this.privateProfile.db.find("@keet-private-id/device-identities")){const s=k.equals(i.deviceKey,o),a=f.decode(t,i.deviceProof),n=a.chain.length,l=a.chain[n-1].publicKey;if(!s&&r+1<n){const t=Ie(e,i.deviceKey,l);await this.privateProfile.dispatch("@keet-private-id/shorten-device-attestation",{deviceKey:i.deviceKey,deviceProof:t.deviceProof,writerProof:t.privateProfileIdentity.proof})}if(s&&f.decode(t,i.deviceProof).chain.length<r){const t=await this.internalEnterLocalTransaction();try{const s={...e,deviceProof:i.deviceProof,proofShortenedAt:Date.now()};await t.insert("@local/identity",s),await t.flush()}finally{await this.internalExitLocalTransaction()}}}}async internalDispatchUpgrade(e,t){if(!e||!t)return;const i=this.internalOpenExistingRoom(e);try{const e=this.batch(i.id);if(0===await e.dispatch("@keet/upgrade",{version:t}))return;if(t>=14){const s=await i.db.get("@keet/system-digest"),o="@keet/migrate-abi",r={header:{timestamp:e.timestamp},from:s?.abi.version,to:t,buildType:this.buildType},a=(await this.contractBundles.loadBundle(t)).encodeOperation(o,r);await e.append(a)}await e.flush()}finally{this.internalReleaseRoom(i)}}async _bumpCache(){try{if(!await this._cacheLock.lock())return;try{await this._processCache()}finally{this._cacheLock.unlock()}}catch(e){this.onerror(e)}}async _processCache(){const e=[];for(;this._pendingTraces.length>0;){const t=this._pendingTraces.pop();e.push(this._updateCache(t))}const t=await Promise.all(e),i=await this.internalEnterLocalTransaction();try{for(const e of t)e&&await i.insert(e.collection,e.record);await i.flush()}finally{await this.internalExitLocalTransaction()}}async _updateCache({roomKey:e,collection:t,record:i}){if("@keet/members"===t){if(i?.profile.avatar){const t=this.internalOpenExistingRoom(e);try{await z(t.blobs,i.profile.avatar)}finally{this.internalReleaseRoom(t)}}return{collection:"@local/members",record:i}}return"@keet/devices"===t?{collection:"@local/devices",record:{roomKey:e,device:i}}:null}_cacheRoomReads(e,t,i){this._pendingTraces.push({roomKey:e,collection:t,record:i}),this._bumpCache()}_autobaseOpen(e,t){let i=null;t.internal||(i=(e,i)=>this._cacheRoomReads(t.key,e,i));const s={autoUpdate:!0,extension:!1,trace:i},o=I.autobaseOpen(e,t),r=te.bee(e,{hyperdb:s});return{...r,core:r.cores.db,legacy:o,roomKey:t.key}}_autobaseClose(e){return Promise.all([e.db.close(),e.blobs.close(),e.legacy.close()])}async _autobaseUpdate(e,t){const i=new U(this,e,t.base,t);await i.run();const o=s.encode(t.base.discoveryKey);i.runPostUpdate();const r=this._discovering.get(o);r&&(r.updated=!0,this.swarmWorker.notifyDiscoveryUpdate(o))}async _autobaseApply(e,t,i,{dryRun:s=!1}={}){const{blobs:o,db:r,core:a,legacy:n,roomKey:l}=t,c=s?null:this._boundAutobaseTrace;let h=!1,d=0;if(!(a.length>0)){if(d=await N.autobaseApply(e,n,i),d===e.length)return!0;h=n.core.length>0}const y=r.transaction(),u=o.batch();let p=null,m=!1,g=null;try{if(h){const t=e[d];if(s||t?.optimistic)return!0;i.preferFastForward(),await N.migrate(this.store,i.base,n,y,u,this.contractBundles)}const o=await y.get("@keet/system-digest");if(o){const t=this.isNightly?this.abi.max:this.abi.production;if(o.abi.version>t){if(s)return!1;i.interrupt({unsupportedABI:o.abi.version,digest:o,nodes:e})}}g=o?o.abi.version:this.abi.autoupgrade;let r=await this.contractBundles.loadBundle(g),a=await this.contractBundles.loadRouter(g);y.setDefinition(r.spec.contract.hyperdb);for(let o=d;o<e.length;o++){const n=e[o];if(!(f.decode(f.uint,n.value)<2))try{const o=oe(n.value);this._maybeLogAutobaseApply(o,s,e.length,g,l);const h=Be(y,u,n,i,t,a,{dryRun:s,trace:c,abi:this.abi});await a.dispatch(o,h),o&&"@keet/upgrade"===o.name&&(g=o.value.version,r=await this.contractBundles.loadBundle(g),a=await this.contractBundles.loadRouter(g),y.setDefinition(r.spec.contract.hyperdb))}catch(e){if(ie.isContractError(e))throw e;if(re.isDispatchError(e))throw ie.DISPATCH_ERROR(e.message);throw e}}}catch(t){"BUNDLE_NOT_AVAILABLE"===t.code?i.interrupt({unsupportedABI:t.abi,digest:null,nodes:e}):ie.isContractError(t)?(m=!0,t.abi=g,t.roomKey=l,s&&!this.isTesting||this.onerror(t)):p=t}const w=!p&&!m&&y.updated();if(s||p||m?await Promise.all([u.close(),y.close()]):await Promise.all([u.flush(),y.flush()]),p)throw p;return w}_maybeLogAutobaseApply(e,t,i,o,r){try{const a=s.encode(r),n=this.rooms.get(a),l=n?n.getQuickStats():null;this.logger.verboseDebug("[autobaseApply]",{"op.name":e.name,"op.id":e.id,dryRun:t,"nodes.length":i,abi:o,roomId:a,"roomStats.view":l?.view,"roomStats.system":l?.system,"roomStats.base":l?.base})}catch(e){console.error("Failed to log autobase apply",e)}}_autobaseTrace({type:e,value:t}){if("@keet/add-device"!==e)return;const{request:i,response:s,invitation:o}=t,r=o?.metadata.expiration;if(r>0&&r<Date.now())return;const a=i.member.profile.mailbox,n=i.keyPair;a&&n&&this._processAutobaseTrace(a,n,s).catch(this.onerror)}async _processAutobaseTrace(e,t,i){this.onlineBoot.opened||await this.onlineBoot.ready();const s=await this.local.get("@local/identity"),o=await this.local.get("@local/rooms",{roomKey:s.privateProfileKey});k.equals(e,o.capabilities.mailboxKeyPair.publicKey)||this.tasks.joinRoomResponse(t.publicKey,{mailbox:e,keyPair:t,response:i}).runBackground()}async _backgroundDrain(e){let t=await e.next();try{for(;!t.done&&!this.closing;){const i=await t.value;if(this.closing)return;t=await e.next(i)}}finally{!t.done&&e.return&&await e.return()}}async _safeLoadLegacyUnreads(){try{const e=[];for await(const t of this.local.find("@local/rooms")){const i=await this.local.get("@local/unreads",{roomKey:t.roomKey});i&&e.push(i)}return e}catch{return[]}}async*_migrateUnreadAnchors(){const e=yield this._safeLoadLegacyUnreads(),t=yield this.internalEnterLocalTransaction();try{const i=this.unreads.write(),s=Date.now();for(const{roomKey:o,count:r}of e)i.tryPut(o,{length:r+1,timestamp:s}),yield t.delete("@local/unreads",{roomKey:o});yield i.flush(),yield t.flush()}finally{yield this.internalExitLocalTransaction()}}async*_internalRefreshUnreads(){if(!this.privateProfile)return;let e=yield this.privateProfile.db.get("@keet/system-digest");if(e&&(yield this.privateProfile.internalEnsureUpgraded({opening:!0}),e=yield this.privateProfile.db.get("@keet/system-digest"),x.isFeatureSupported(e.abi.version,x.FEATURES.UNREADS)&&(yield this._unreadsLock.lock())))try{const t=[];let i=!0;const s=x.isFeatureSupported(e.abi.version,x.FEATURES.V2_UNREADS)?"@keet-private-id/unreads-v2":"@keet-private-id/unreads",o=yield this.privateProfile.db.find(s).toArray();for(const{deviceKey:e,key:s}of o)k.equals(e,this.privateProfile.base.local.key)&&(i=!1),t.push(s);if(this.unreads&&function(e,t){if(e.length!==t.length)return!1;for(let i=0;i<e.length;i++)if(!k.equals(e[i],t[i]))return!1;return!0}(t,this.unreads.keys))return;this.unreads&&(yield this.unreads.close(),this.unreads=null);const r=this.privateProfile,a=r.base.encryptionKey,n=this.store.namespace(r.key),l=n.namespace("keet-unreads");yield n.close();const c=yield r.base.wakeupCapability&&r.base.wakeupCapability.key;this.unreads=new C(l,t,{blindPeering:this.blindPeering,encryptionKey:a,target:c}),this.unreads.on("remote-update",()=>this.emit("unread-anchors-changed")),yield this.unreads.ready(),i&&(yield this._backgroundDrain(this._migrateUnreadAnchors()),yield this.privateProfile.dispatch("@keet-private-id/add-unreads-key",{key:this.unreads.local.key}))}finally{this._unreadsLock.unlock()}}internalRefreshUnreads(){return this._disableUnreadSync?Promise.resolve():this._backgroundDrain(this._internalRefreshUnreads())}async internalLoadDiscoveryCore(){try{const e=await this.privateProfile.db.get("@keet-private-id/identity");if(!e||!e.discoveryCoreKey||this.closing)return;if(this.discoveryCore)return;this.discoveryCore=this.store.get({key:e.discoveryCoreKey}),await this.discoveryCore.ready(),this.blindPeering.addCoreBackground(this.discoveryCore,{pick:3})}catch(e){this.onerror(e)}}async internalCreateDiscoveryCore(e){const t=e.getProfileDiscoveryEncryptionKey(),i={version:2,signers:[{publicKey:e.profileDiscoveryKeyPair.publicKey}]};return this.discoveryCore&&await this.discoveryCore.close(),this.discoveryCore=this.store.get({keyPair:e.profileDiscoveryKeyPair,valueEncoding:ye,encryptionKey:t,manifest:i}),await this.discoveryCore.ready(),this.blindPeering.addCoreBackground(this.discoveryCore,{pick:3}),this.discoveryCoreSession=this.swarm.join(this.discoveryCore.discoveryKey,{server:!1,client:!0}),!0}async internalDryRun(e,t,i){const s=i.map((t,i)=>({length:e.base.local.length+1+i,from:e.base.local,value:t,heads:[]}));return!!await this._autobaseApply(s,t,e.base,{dryRun:!0})}internalGetHeads(e,t){const i=[];let s=!1;if(t)for(const o of t.base.heads())e&&k.equals(o.key,e.key)?(s=!0,i.push({key:o.key,length:Math.max(o.length,e.length)})):i.push(o);return e&&!s&&i.push(e),i}async internalGetKeyPair(e){const t=await this.local.get("@local/writers-by-room-key",{roomKey:e});return t?t.keyPair:null}async internalGetMailbox(e){const t=await this.local.get("@local/rooms",{roomKey:e});return t?{key:t.capabilities.mailboxKeyPair.publicKey,discoveryKey:t.capabilities.wakeupTopic}:null}async internalGetEncryptionKey(e){const t=await this.local.get("@local/rooms",{roomKey:e});return!t||t.status.isRemoved?null:t.encryptionKey}internalReleaseRoom(e){if(0===e.refs)throw new Error("Cannot release a room that was not previously opened");e.refs-=1}internalOpenExistingRoom(e,t={}){return this.internalOpenRoom(s.decode(e),null,t)}async internalOpenPrivateProfile({opening:e=!1}={}){e||this.onlineBoot.opened||await this.onlineBoot.ready();const t=await this.local.get("@local/identity"),i=this.internalOpenExistingRoom(t.privateProfileKey,{bigBatches:!0});return await i.ready(),this.privateProfile&&k.equals(i.key,this.privateProfile.key)||(this.privateProfile&&this.internalReleaseRoom(this.privateProfile),this.privateProfile=this.internalOpenExistingRoom(t.privateProfileKey,{bigBatches:!0}),this.unreadsLoading=this.internalRefreshUnreads().catch(()=>null)),this.internalLoadDiscoveryCore(),i}async internalSafeSwapPrivateProfiles(){try{const e=await this.internalOpenPrivateProfile();this.internalReleaseRoom(e)}catch(e){this.onerror(e)}}async internalFeatureSupported(e,t){const i=s.decode(e),o=await this.local.get("@local/rooms",{roomKey:i});return!!o&&this.versions.isFeatureSupported(o.digest.abi.version,t)}internalOpenRoom(e,t,{fastForwardTo:i,mailbox:o,keyPair:r,bigBatches:a}={}){if(this.closing)throw new Error("Keet is closing");const n=s.encode(e),l=this.rooms.get(n);if(l)return l.idleTicks=0,l.refs+=1,l;const c=b.discoveryKey(e),h=this.store.namespace(c);let y=null,u=null,p=null;o||(u=this.internalGetMailbox(e),u.catch(this.onerror)),r||(y=this.internalGetKeyPair(e),y.catch(this.onerror)),t||(p=this.internalGetEncryptionKey(e),p.catch(this.onerror)),o&&(o={key:o,discoveryKey:b.discoveryKey(o)});const m=new d(h,e,{backoff:this.backoff,update:this._autobaseUpdate.bind(this),apply:this._autobaseApply.bind(this),close:this._autobaseClose.bind(this),open:this._autobaseOpen.bind(this),encryptionKey:t||p,wakeupCapability:o||u,keyPair:r||y,fastForward:!this.debug.disableFastForward&&i,ackThreshold:this.ackThreshold,ackInterval:this.ackInterval,wakeup:this.protomuxWakeup,optimistic:!0,encrypted:!0,bigBatches:!!a});m.on("interrupt",e=>{this.logger.warn("room=",m.id,"got interrupted"),this.emit("room-interrupted",n,e)}),m.on("warning",t=>{this.logger.warn("[autobase warning] room=",m.id,"error=",t),this.onerror(t,{roomKey:e,prefix:"AUTOBASE_WARNING"})}),m.on("error",t=>{this.logger.warn("[autobase error] room=",m.id,"error=",t),this.onerror(t,{roomKey:e,prefix:"AUTOBASE_ERROR"})});const g=new Ce(this,n,e,c,m);return this.rooms.set(n,g),g.refs+=1,g}async updateDevice({name:e,deviceId:t}={}){this.onlineBoot.opened||await this.onlineBoot.ready();const i={swarmKey:this.swarm.keyPair.publicKey,name:e,isMobile:this.isMobile},o=await this.internalOpenPrivateProfile();try{if(t&&!k.equals(s.decode(t),o.deviceKey)){if(!await this.internalFeatureSupported(this.privateProfile.id,D.CROSS_DEVICE_RENAME))throw new Error("Renaming other devices not supported");if(!await o.dispatch("@keet/update-device",{key:s.decode(t),profile:{name:e}}))throw be.UPDATE_DEVICE_FAILED("Failed to update device",{deviceId:t})}else await o.dispatch("@keet/update-device",{profile:i})}finally{this.internalReleaseRoom(o)}}async internalUpdateProfile(e,{forceUpdateRegistry:t=!1,opening:i=!1}={}){const s=await this.internalGetIdentityInfo({opening:i});if(this.closing)return;if(this._rejectAnonymousProfiles&&!e.displayName&&!t)throw new Error("A member must have a profile name");const o=this.internalCreateMemberUpdate(s,{profile:e}),r=await this.internalOpenPrivateProfile({opening:i});if(this.closing)return;let a=null;try{a=await r.dispatch("@keet/update-member",{member:o})}finally{this.internalReleaseRoom(r)}(a||t)&&o.profile.username&&this.userRegistry?.internalUpdateRegistryMember(o)}async updateProfile(e={}){return this.onlineBoot.opened||await this.onlineBoot.ready(),this.internalUpdateProfile(e)}async internalVerifyOptimisticCore(e){return!await e.getUserData("referrer")}async internalAppendOptimisticOperation(e,t){const i=this.store.get({key:e,exclusive:!0});await i.ready(),await this.internalVerifyOptimisticCore(i)?(await i.append(t),await i.close()):await i.close()}async internalCreateRoom(e={}){const t=e.seed||b.randomBytes(32),i=e.keyPair||b.keyPair(),s=e.encryptionKey||b.randomBytes(32),o=W(i.publicKey),r=b.discoveryKey(o),a=G(o,t),n=a.mailboxKeyPair.publicKey,l=await this.internalEnterLocalTransaction();try{await l.insert("@local/writers",{mailbox:n,keyPair:i,key:o,roomKey:o}),await l.flush()}finally{await this.internalExitLocalTransaction()}const c={header:{timestamp:Date.now()},digest:{abi:{version:this.isExperimental?this.abi.production:this.abi.autoupgrade},creationTime:Date.now(),settings:{roomType:1,...e.settings,isExperimental:this.isExperimental,buildType:this.buildType}},capabilities:{seed:t},config:e.config,identity:e.identity,initialMembers:e.initialMembers,bootstrapDevice:e.bootstrapDevice},h=this.tasks.createRoom(r,{roomKey:o,encryptionKey:s,mailbox:n,keyPair:i,genesis:c,isPrivateProfile:!!e.isPrivateProfile});return await h.run(),this.discovery&&this.discovery.subscribe(a.discoveryKeyPair.publicKey,{since:Date.now()}),this.swarmWorker.refresh().catch(De),this.internalOpenExistingRoom(o)}async createRoom(e){this.opened||await this.ready();const t=await this.internalCreateRoom(e);return this.internalReleaseRoom(t),t.key}async leaveRoom(e){this.onlineBoot.opened||await this.onlineBoot.ready();const t=await this.local.get("@local/identity"),i=this.internalOpenExistingRoom(e);await i.ready();try{await i.dispatch("@keet/remove-member",{key:t.publicKey})}catch(e){this.onerror(e)}finally{this.internalReleaseRoom(i)}await this.privateProfile.dispatch("@keet-private-id/update-room-status",{roomKey:e,key:Q.IsActive,status:{isActive:!1}})}async activateRoom(e){if(this.closing)return;const t=await this.local.get("@local/rooms",{roomKey:e});if(!t||this.closing)return;const i=this.internalOpenExistingRoom(e);await i.ready(),this.activeRooms.has(i)?this.internalReleaseRoom(i):(this.activeRooms.add(i),this.swarmWorker.startActiveSwarming(t.capabilities.swarmTopic))}async deactivateRoom(e){const t=this.internalOpenExistingRoom(e);if(!this.activeRooms.has(t))return void this.internalReleaseRoom(t);const i=await this.local.get("@local/rooms",{roomKey:e});this.activeRooms.delete(t),this.swarmWorker.stopActiveSwarming(i.capabilities.swarmTopic),this.internalReleaseRoom(t),this.internalReleaseRoom(t)}async internalGetIdentityInfo({opening:e=!1}={}){e||this.onlineBoot.opened||await this.onlineBoot.ready();const t=await this.local.get("@local/identity");if(!t)throw new Error("Identity does not exist");const i=await this.local.get("@local/rooms",{roomKey:t.privateProfileKey});if(!i)throw new Error("Private profile does not exist");return{identity:t,privateProfile:i}}internalGetMemberUpdate(e,{profile:t}={}){const i=e.privateProfile;return i?.selfMember?i.selfMember.proofs?{profile:i.selfMember.profile,attestation:{memberKey:i.selfMember.key,proof:i.selfMember.proofs.profileAttestation}}:this.internalCreateMemberUpdate(e):null}internalAttestData(t,i){return e.attestData(t,i.deviceKeyPair,i.deviceProof)}internalCreateDeviceUpdate(e,t,{isPrivateProfile:i=!1,buildType:s=null}={}){const o=e.identity;let r=null;e.privateProfile?.selfDevice&&i&&(r=e.privateProfile.selfDevice.profile.name);const a=e.privateProfile?.digest.settings.buildType,n=ue.Production===a;return{profile:{swarmKey:this.swarm.keyPair.publicKey,name:r,isMobile:this.isMobile,buildType:n&&null===s?null:a},attestation:{memberKey:o.publicKey,proof:this.internalAttestData(t,o)}}}internalCreateMemberUpdate(t,{profile:i}={}){const s=t.privateProfile?.selfMember?.profile||null,o=t.privateProfile?.capabilities.mailboxKeyPair.publicKey||i.mailbox,r=t.identity,a={...s,...i,mailbox:o,timestamp:Date.now()},n=le("@keet/member-profile",a);return{profile:a,attestation:{memberKey:r.publicKey,proof:e.attestData(n,r.deviceKeyPair,r.deviceProof)}}}internalGetLinkInfo(e){try{return this.internalDecodeInvitation(e)}catch{}try{return this.internalDecodeContactInfo(e)}catch{}return null}internalDecodeInvitation(e){try{const t="string"==typeof e?v.decode(e):e;return ce("@keet/sendable-invitation",t)}catch{throw be.INVALID_INVITE(`Invalid invite: ${e}`)}}internalDecodeContactInfo(e){try{const t=k.isBuffer(e)?e:k.from(e,"base64");return ce("@keet/member-contact-info",t)}catch{throw be.INVALID_CONTACT_INFO(`Invalid contact info: ${e}`)}}internalEncodeContactInfo(e){return le("@keet/member-contact-info",e)}internalCreateContactInfoStruct(t,i,s={}){const o={...i.selfMember.profile,...s},r=le("@keet/member-profile",o),a={profile:o,attestation:{memberKey:i.selfMember.key,proof:e.attestData(r,t.deviceKeyPair,t.deviceProof)}};return this.internalEncodeContactInfo(a)}async wakeup(){this.state=Pe.WAKEUP,this.internalVerboseLog("[Keet Core]","await .ready"),this.opened||await this.ready();const e=[this.resume(),this.swarmWorker.background()];this.internalVerboseLog("[Keet Core]","await all promise"),await Promise.allSettled(e),this.internalVerboseLog("[Keet Core]","promise settled")}async presuspend(){this.state=Pe.PRESUSPEND,this.opened||await this.ready(),this.swarmWorker.setServerMode(!1)}async suspend(){if(this.internalVerboseLog("[Keet Core]","suspend called"),this.state===Pe.SUSPEND)return;this.state=Pe.SUSPEND,this.opened||await this.ready(),this.internalVerboseLog("[Keet Core]","suspend post ready");const e=[this._flushDHTCache()];this.blindPeering&&(this.internalVerboseLog("[Keet Core]","suspend adding blind peering"),e.push(this.blindPeering.suspend())),this.push&&(this.internalVerboseLog("[Keet Core]","suspend push"),e.push(this.push.suspend())),this.discovery&&(this.internalVerboseLog("[Keet Core]","suspend discovery"),e.push(this.discovery.suspend())),await Promise.allSettled(e),this.internalVerboseLog("[Keet Core]","all done"),await this.rpcClient.suspend(),this.internalVerboseLog("[Keet Core]","rpc suspended"),await this.swarm.suspend(),this.internalVerboseLog("[Keet Core]","swarm suspend"),await this.files.server.suspend(),this.internalVerboseLog("[Keet Core]","files suspend"),await this.store.suspend({log:this.internalVerboseLog.bind(this)}),this.internalVerboseLog("[Keet Core]","store suspended, all done")}async resume(){if(this.internalVerboseLog("[Keet Core]","resume called"),this.state===Pe.RESUME)return;this.state=Pe.RESUME,this.internalVerboseLog("[Keet Core]","await this.ready"),this.opened||await this.ready(),this.internalVerboseLog("[Keet Core]","resume store"),await this.store.resume(),this.internalVerboseLog("[Keet Core]","resume file server"),await this.files.server.resume(),this.internalVerboseLog("[Keet Core]","resume swarm"),this.readOnly||await this.swarm.resume(),this.internalVerboseLog("[Keet Core]","resume rpc client"),await this.rpcClient.resume();const e=[];this.blindPeering&&!this.readOnly&&e.push(this.blindPeering.resume()),this.push&&e.push(this.push.resume()),this.discovery&&e.push(this.discovery.resume()),this.swarmWorker.setServerMode(!0),e.push(this.swarmWorker.unbackground()),this.internalVerboseLog("[Keet Core]","await all promises"),await Promise.allSettled(e),this.internalVerboseLog("[Keet Core]","all promises settled")}async _createInvitation(e,t){let{expiration:i=0,canAdmin:s=!1,canModerate:o=!1,identityPublicKey:r=null,requiresConfirmation:a=!1,readOnly:n=!1}=t;if("string"==typeof i)if("2h"===i)i=Date.now()+72e5;else if("2d"===i)i=Date.now()+1728e5;else{if("2w"!==i)throw be.UNKNOWN_EXPIRATION(`Unknown expiration: ${i}`,{roomKey:e.key});i=Date.now()+12096e5}await e.ready();const[{seed:l},c,h]=await Promise.all([e.db.get("@keet/room-capabilities"),Y(e.db,e.deviceKey),e.db.get("@keet/system-digest")]);if((o||s)&&!c.status.isModerator)throw be.MODERATORS_ONLY("Only moderators can create moderator invitations",{roomKey:e.key});const d=G(e.key,l),y=this.swarm.dht.toArray({limit:3});if(n)return le("@keet/sendable-invitation",{readonly:{roomKey:e.key,encryptionKey:e.encryptionKey,fastForwardTo:e.base.getSystemKey(),seed:l},additionalNodes:y});const u={key:e.key,encryptionKey:e.encryptionKey,fastForwardTo:e.base.getSystemKey()},{invitation:p,seed:m}=$(u,{requiresConfirmation:a,expiration:i,canModerate:o,canAdmin:s});await e.dispatch("@keet/add-invitation",{invitation:p});const g=(await e.db.get("@keet/invitations",{id:p.id})).anchor,w=d.mailboxKeyPair.publicKey,b={identity:null,room:null,contact:null,additionalNodes:y,buildType:h.settings.buildType};return r?b.identity={mailbox:w,invitationSeed:m,anchor:g,identityPublicKey:r}:b.room={mailbox:w,invitationSeed:m,anchor:g},le("@keet/sendable-invitation",b)}async createRoomInvitation(e,t={}){this.opened||await this.ready();const i=s.decode(e),o=this.internalOpenExistingRoom(i);try{const e=await this._createInvitation(o,t);return v.encode(e)}finally{this.internalReleaseRoom(o)}}async createIdentityInvitation(){this.onlineBoot.opened||await this.onlineBoot.ready();const e=await this.local.get("@local/identity"),t=this.internalOpenExistingRoom(e.privateProfileKey);this.blindPeering.addAutobaseBackground(t.base);try{const i=await this._createInvitation(t,{expiration:"2h",canAdmin:!0,canModerate:!0,requiresConfirmation:!0,identityPublicKey:e.publicKey});return v.encode(i)}finally{this.internalReleaseRoom(t)}}async _startPairing(e,{deviceKeyPair:t,buildType:i=null}={}){this.onlineBoot.opened||await this.onlineBoot.ready();const o=j(e.invitationSeed),r=e.invitationSeed,a=e.mailbox,n=e.anchor,l={key:null,seedId:s.encode(r)},c=await this.local.get("@local/rooms-by-mailbox",{capabilities:{mailboxKeyPair:{publicKey:a}}});let h=null;if(c){if(c.selfMember?.status.isRemoved)throw new Error("Removed member cannot rejoin");h=await this.local.get("@local/room-preferences",{roomKey:c.roomKey})}if(h&&h.status.isActive&&!h.status.isReadOnly)return l.key=s.encode(c.roomKey),l;const d=b.keyPair(),y=await this.store.createKeyPair(J(d.publicKey)),u=this.store.get({keyPair:y,active:!1});await u.ready();const p={key:u.key,length:1};await u.close();let m=null;t&&(m={writerKey:u.key,publicKey:e.identityPublicKey,devicePublicKey:t.publicKey});const g={id:o,mailbox:a,inviter:n,identity:m,initiator:p,responseKeyPair:d,invitationSeed:r,buildType:i},w=await this.privateProfile.db.find("@keet-private-id/pending-invitations").toArray();for(const e of w)k.equals(e.mailbox,g.mailbox)&&await this.privateProfile.dispatch("@keet-private-id/remove-pending-invitation",e);return await this.privateProfile.dispatch("@keet-private-id/add-pending-invitation",{invitation:g}),l}async _openReadOnlyRoom({roomKey:e,encryptionKey:t,seed:i,fastForwardTo:o}){this.onlineBoot.opened||await this.onlineBoot.ready();const{mailboxKeyPair:r,swarmTopic:a}=G(e,i),n=this.internalOpenRoom(e,t,{mailbox:r.publicKey,fastForwardTo:{key:o}});return await n.ready(),await this.privateProfile.dispatch("@keet-private-id/add-room",{roomKey:e,encryptionKey:t,mailbox:r.publicKey,fastForwardTo:o,isReadOnly:!0}),this.swarmWorker.startDiscoverySwarming(a,{roomId:s.encode(e)}),{key:s.encode(e),seedId:s.encode(i)}}async startPairingRoom(e,t){this.onlineBoot.opened||await this.onlineBoot.ready();const i=this.internalDecodeInvitation(e),s=await this.local.get("@local/rooms",{roomKey:this.privateProfile.key}),o=i.buildType,r=s.digest.settings.buildType||ue.Production;if(o&&o!==r)throw be.INVALID_BUILD_TYPE();if(i.readonly)return this._openReadOnlyRoom(i.readonly);if(!i.room)throw be.INVALID_INVITATION_TYPE("Invalid room invitation");return this._startPairing(i.room,{...t,buildType:o})}async startPairingIdentity(e){this.onlineBoot.opened||await this.onlineBoot.ready();const t=this.internalDecodeInvitation(e),i=await this.local.get("@local/rooms",{roomKey:this.privateProfile.key}),s=t.buildType,o=i.digest.settings.buildType||ue.Production;if(s&&s!==o)throw be.INVALID_BUILD_TYPE();if(!t.identity)throw be.INVALID_INVITATION_TYPE("Invalid device sync invitation");const r=H(t.identity.identityPublicKey),a=await this.store.createKeyPair(r);return this._startPairing(t.identity,{deviceKeyPair:a,buildType:s})}async stopPairing(e){this.opened||await this.ready();const t=await this.internalOpenPrivateProfile();try{if(!await t.db.get("@keet-private-id/pending-invitations",{id:e}))return;await t.dispatch("@keet-private-id/remove-pending-invitation",{id:e})}finally{this.internalReleaseRoom(t)}}async rotateWriter(e){this.onlineBoot.opened||await this.onlineBoot.ready();const[t,i,s]=await Promise.all([this.local.get("@local/writers-by-room-key",{roomKey:e}),this.local.get("@local/rooms",{roomKey:e}),this.privateProfile.db.get("@keet-private-id/rooms",{roomKey:e})]);if(!i||!t||!s)return;const o=await this.internalEnterLocalTransaction();try{await o.delete("@local/writers",t),await o.flush()}finally{await this.internalExitLocalTransaction()}this.tasks.joinRoomKeys(s.mailbox,{keys:s}).runBackground()}async getRecoveryPhrase(){this.onlineBoot.opened||await this.onlineBoot.ready();const e=(await this.local.get("@local/identity")).entropy;return e?E({entropy:e}):null}async getRecoveryEntropy(){return this.onlineBoot.opened||await this.onlineBoot.ready(),(await this.local.get("@local/identity")).entropy||null}async getEncryptedRecoveryPhrase(e){if("string"!=typeof e)throw new Error("Password required");if(0===e.length)throw new Error("Password should not be empty");const t=await this.getRecoveryEntropy();if(!t)throw new Error("Recovery phrase reading failed");if(0===t.length)throw new Error("Recovery phrase reading failed");return O.encryptEntropy(t,e)}decryptEncryptedRecoveryPhrase(e,t){if(!ArrayBuffer.isView(e))throw new Error("Encrypted phrase should be an ArrayBuffer view");if(0===e.byteLength)throw new Error("Encrypted phrase should not be empty");if("string"!=typeof t)throw new Error("Password required");if(0===t.length)throw new Error("Password should not be empty");const i=O.decryptEntropy(e,t),s=E({entropy:i});return O.free(i),s}freeRecoveryPhrase(e){O.free(e)}async storeRecoveryPhrase(t){this.onlineBoot.opened||await this.onlineBoot.ready();const i=await e.from({mnemonic:t}),s=await this.local.get("@local/identity"),o=await this.local.get("@local/rooms",{roomKey:s.privateProfileKey});if(!k.equals(s.publicKey,i.identityPublicKey))throw new Error("Wrong recovery phrase");if(!o.identity.discoveryCoreKey){if(await this.internalCreateDiscoveryCore(i),this.discoveryCore.length>0){const e=Math.floor((Date.now()-1711547109544)/1e3);await this.discoveryCore.truncate(this.discoveryCore.length,e)}await this.discoveryCore.append({version:1,timestamp:Date.now(),key:o.roomKey,mailbox:o.capabilities.mailboxKeyPair.publicKey}),await this.privateProfile.dispatch("@keet-private-id/update-identity",{identity:{publicKey:i.identityPublicKey,discoveryCoreKey:this.discoveryCore.key}})}}async confirmRecoveryPhrase({persist:e=!1}={}){this.onlineBoot.opened||await this.onlineBoot.ready();const t=await this.local.get("@local/identity");e||(t.entropy=null),t.status.isConfirmed=!0;const i=await this.internalEnterLocalTransaction();try{await i.insert("@local/identity",t),await i.flush()}finally{await this.internalExitLocalTransaction()}this.emit("identity-changed")}async restoreIdentity(t,{create:i=!0}={}){this.onlineBoot.opened||await this.onlineBoot.ready();const[s]=await Promise.all([this.local.get("@local/identity"),e.from({mnemonic:t})]),o=b.discoveryKey(s.privateProfileKey),r=this.tasks.restoreIdentity(o,{mnemonic:t,recover:!1===i,profileDiscoveryTimeout:this._profileDiscoveryTimeout,buildType:this.buildType});await r.run();const a=await this.local.get("@local/identity"),n=await this.local.get("@local/rooms",{roomKey:a.privateProfileKey});this.privateProfile=await this.internalOpenPrivateProfile(),this.swarmWorker.startActiveSwarming(n.capabilities.swarmTopic)}async acceptJoinRequest(e,t){this.onlineBoot.opened||await this.onlineBoot.ready();const i=this.internalOpenExistingRoom(e);try{const s=await i.db.get("@keet/join-requests",{deviceKey:t});if(!s)return;const o=s.request;let r=null;if(o.identity){const i=await this.local.get("@local/identity");if(!k.equals(i.privateProfileKey,e))throw new Error("Accepting an identity device join request on a room that is not your private profile");r=Ie(i,t,o.identity.devicePublicKey)}await i.dispatch("@keet/accept-join-request",{deviceKey:t,identity:r})}finally{this.internalReleaseRoom(i)}}async rejectJoinRequest(e,t){this.opened||await this.ready();const i=this.internalOpenExistingRoom(e);try{if(!await i.db.get("@keet/join-requests",{deviceKey:t}))throw new Error("Join request for that device key does not exist");await i.dispatch("@keet/reject-join-request",{deviceKey:t})}finally{this.internalReleaseRoom(i)}}async _sendContactRequest(e){this.onlineBoot.opened||await this.onlineBoot.ready();const t=await this.internalOpenPrivateProfile();try{this.tasks.sendContactRequest(e.memberKey,e).runBackground()}finally{this.internalReleaseRoom(t)}}async sendContactRequestFromContact(e,{message:t}){const i=(e=this.internalDecodeContactInfo(e)).attestation.memberKey,s=e.attestation.memberKey;return this._sendContactRequest({roomKey:i,memberKey:s,message:t,contactInfo:e})}async sendContactRequest(e,t,{message:i}){return this._sendContactRequest({roomKey:e,memberKey:t,message:i})}async addContact(t,i,{alias:s}={}){if(this.onlineBoot.opened||await this.onlineBoot.ready(),!i)throw be.INVALID_CONTACT_INFO();if(!await this.internalFeatureSupported(this.privateProfile.id,D.CONTACT_BOOK))throw new Error("Adding contacts not supported");const o=await this.internalFeatureSupported(this.privateProfile.id,D.CONTACT_ALIAS);if(s&&!o)throw new Error("Adding contact alias not supported");try{const{profile:o,attestation:r}=this.internalDecodeContactInfo(i),a=le("@keet/member-profile",o),n=e.verify(r.proof,a,{expectedIdentity:t});if(!n?.receipt)throw be.INVALID_CONTACT_INFO();const l={memberKey:t,mailbox:o.mailbox,status:{isActive:!0,isBlocked:!1},contactInfo:{profile:o,attestation:r}};s&&(l.alias=s),await this.privateProfile.dispatch("@keet-private-id/add-contact",{contact:l})}catch(e){this.onerror(e)}}async setContactAlias(e,t){if(this.onlineBoot.opened||await this.onlineBoot.ready(),!await this.internalFeatureSupported(this.privateProfile.id,D.CONTACT_ALIAS))throw new Error("Setting contact alias not supported");await this.privateProfile.dispatch("@keet-private-id/update-contact-alias",{memberKey:e,alias:t})}async removeContact(e){if(this.onlineBoot.opened||await this.onlineBoot.ready(),!await this.internalFeatureSupported(this.privateProfile.id,D.CONTACT_BOOK))throw new Error("Removing contacts not supported");const t=await this.privateProfile.db.get("@keet-private-id/contacts",{memberKey:e});t&&await this.privateProfile.dispatch("@keet-private-id/add-contact",{contact:{memberKey:e,mailbox:t.mailbox,status:{...t.status,isActive:!1},contactInfo:t.contactInfo}})}async blockContact(e){this.onlineBoot.opened||await this.onlineBoot.ready();const[t,i,s]=await Promise.all([this.privateProfile.db.findOne("@keet-private-id/contact-requests-by-member",{gte:{memberKey:e},lte:{memberKey:e}}),this.privateProfile.db.get("@keet-private-id/contacts",{memberKey:e}),this.local.get("@local/members",{key:e})]),o=i?.mailbox||s?.profile.mailbox||t?.sender?.mailbox;if(!o)throw new Error("Cannot find contact");const r={memberKey:e,mailbox:o,status:{...i?.status,isBlocked:!0}};await this.internalFeatureSupported(this.privateProfile.id,D.CONTACT_BOOK)&&(r.contactInfo=i?.contactInfo),await this.privateProfile.dispatch("@keet-private-id/add-contact",{contact:r})}async unblockContact(e){this.onlineBoot.opened||await this.onlineBoot.ready();const[t,i,s]=await Promise.all([this.privateProfile.db.findOne("@keet-private-id/contact-requests-by-member",{gte:{memberKey:e},lte:{memberKey:e}}),this.privateProfile.db.get("@keet-private-id/contacts",{memberKey:e}),this.local.get("@local/members",{key:e})]),o=i?.mailbox||s?.profile.mailbox||t?.sender?.mailbox;if(!o)throw new Error("Cannot find contact");const r={memberKey:e,mailbox:o,status:{...i?.status,isBlocked:!1}};await this.internalFeatureSupported(this.privateProfile.id,D.CONTACT_BOOK)&&(r.contactInfo=i?.contactInfo),await this.privateProfile.dispatch("@keet-private-id/add-contact",{contact:r})}async _flushDHTCache(){if(this.readOnly)return;const e=this.swarm.dht.toArray({limit:64});try{await this._setCachedDHTNodes(e)}catch(e){this.onerror(e)}}async getDHTSettings(){const e=await this.local.get("@local/hyperdht")||{};return{nodes:e.nodes||[],concurrency:e.concurrency||Z.concurrency,maxWindow:e.maxWindow||Z.maxWindow,randomPunchInterval:e.randomPunchInterval||Z.randomPunchInterval,connectionKeepAlive:e.connectionKeepAlive||Z.connectionKeepAlive}}async getSwarmSettings(){return{maxPeers:(await this.local.get("@local/hyperswarm")||{}).maxPeers||ee.maxPeers}}async _setCachedDHTNodes(e){const t=await this.internalEnterLocalTransaction();try{const i={...await this.getDHTSettings(),nodes:e};await t.insert("@local/hyperdht",i),await t.flush()}finally{await this.internalExitLocalTransaction()}}batch(e){return new Le(this,e)}async dispatch(e,t,i){this.opened||await this.ready();const s=this.internalOpenExistingRoom(e);try{return await s.dispatch(t,i)}catch(e){this.onerror(e)}finally{this.internalReleaseRoom(s)}}async dispatchBatch(e,t){this.opened||await this.ready();const i=this.internalOpenExistingRoom(e);try{await i.dispatchBatch(t)}finally{this.internalReleaseRoom(i)}}async selfDestruct({confirm:e}={}){if("do not go gentle into that good night"!==e)throw new Error("Must confirm self destruction");await this.ready(),await this.close();const t=Math.random().toString(16).slice(2),i=K.join(this.dir,"gc",t);try{await P.promises.mkdir(i,{recursive:!0})}catch{}for(const e of["cores","db","cache","app-references"])try{await P.promises.rename(K.join(this.dir,e),K.join(i,e))}catch{}await P.promises.rm(i,{recursive:!0})}static from(e,t){const i=T.migrate(e),s=i.active()||i.create({name:"default"});i.gc({delay:Ke});const o=new this(s.storage,{...t,logout:async()=>{i.remove(s),await new Promise(e=>setTimeout(e,1e3)),await o.close(),i.gc({delay:Ke})}});return{profiles:i,keet:o}}static registerRPC(e,t,i){return new S(e,t,i)}};const Ee={interrupt:De,addWriter:De,removeWriter:De,ackWriter:De,preferFastForward:De,removeable:function(){return!0},createAnchor:(e,t)=>({key:e,length:t})};function Be(e,t,i,s,o,r,{abi:a,trace:n,dryRun:l=!1}={}){return new te.OpContext(e,t,{fork:o.core.fork,writer:{key:i.from.key,seq:i.length-1},genesis:0===o.core.length,bootstrap:s.bootstrap,router:r,hostcalls:l?Ee:s,dryRun:l,abi:a,trace:n})}function Ie(t,i,s){const o=e.attestDevice(s,t.deviceKeyPair,t.deviceProof),r=e.attestData(i,t.deviceKeyPair,t.deviceProof);return{privateProfileIdentity:{memberKey:t.publicKey,proof:r},deviceProof:o}}function xe(e){return"@keet/add-chat-message"===e||"@keet/start-call"===e||"@keet/join-call"===e||"@keet/leave-call"===e||"@keet/end-call"===e}function De(){}
1const e=require("keet-identity-key"),{ProofEncoding:t}=require("keet-identity-key/lib/encoding"),i=require("hypercore-storage"),s=require("hypercore-id-encoding"),o=require("ready-resource"),r=require("ready-guard"),a=require("hyperswarm"),n=require("@holepunchto/call-swarm"),l=require("hyperdht"),c=require("corestore"),h=require("hypercore"),d=require("hyperblobs"),y=require("scope-lock"),u=require("rache"),p=require("protomux-wakeup"),m=require("promaphore"),g=require("safety-catch"),w=require("task-backoff"),f=require("hypercore-crypto"),b=require("z32"),v=require("b4a"),k=require("compact-encoding"),P=require("fs"),K=require("path"),_=require("blind-peering"),C=require("multi-profile-store"),R=require("hyperconf");h.enable(h.SMALL_WANTS),h.setRecoveryPeers&&h.setRecoveryPeers([]);const T=require("@holepunchto/keet-push"),L=require("@holepunchto/keet-unread-anchors"),{generateMnemonic:E}=require("bip39-mnemonic"),{HyperDiscoveryClient:I}=require("@holepunchto/hyperdiscovery"),S=require("./schema/versions"),{FEATURES:D}=S,A=require("./lib/api/v1"),x=require("./lib/api/v2"),B=require("./lib/core/crypto"),O=require("./lib/core/local"),V=require("./lib/core/files"),M=require("./lib/core/tasks"),q=require("./lib/core/sync/processor"),U=require("./lib/core/room-engine"),{SwarmWorker:N}=require("./lib/core/swarm"),{getWriterKey:F,getInvitationId:W,createInvitation:H,generateWakeupTopic:$,generateRoomCapabilities:j,generateIdentityPairingName:G,generateRoomPairingName:J}=require("./lib/core/invitations"),{getMemberForDeviceKey:z}=require("./lib/core/contract/query"),{restoreAvatar:Y}=require("./lib/core/contract/avatars"),{RoomStatus:Q}=require("./lib/core/contract/identity/private"),{DEBUG_FLAGS:X,DHT_SETTINGS:Z,SWARM_SETTINGS:ee}=require("./lib/core/debug/debugging"),te=require("./lib/core/log"),{contract:{hyperschema:{getEnum:ie,getEncoding:se,encode:oe,decode:re}},local:{hyperschema:{getEnum:ae}},config:{hyperconf:ne}}=require("./schema/spec"),le=se("@keet-private-id/profile-discovery-record"),ce=ie("@keet/build-type"),he=require("./lib/core/users"),de=require("./lib/core/rooms/index.js"),ye=require("protomux-rpc-client"),{KeetErrorManager:ue,KeetErrorV2:pe,ERRORS:me}=require("./lib/errors"),{Version:ge}=require("bare-semver"),{roomMigrationsStats:we}=require("./lib/core/contract/stats/local"),fe=require("./lib/bundle"),be=require("./lib/core/contract/index.js"),ve=ae("@local/keet-state"),ke=2592e6,Pe=v.alloc(32),Ke=require("./lib/env"),{ActiveCall:_e,KeetCallProxy:Ce}=require("./lib/core/call");class Re{constructor(e,t){this.keet=e,this.roomId=t,this.batch=null,this.length=0,this.timestamp=0,this.pushLength=0}get key(){return this.room.engine.local.key}_open(){this.room=this.keet.internalOpenExistingRoom(this.roomId),this.batch=this.room.engine.batch(),this.timestamp=Date.now()}_noop(){return this.close(),this.length}async dispatch(e,t,{dryRun:i=!0}={}){this.room||this._open(),this.room.opened||await this.room.ready();const s=be.encodeOperation(e,{header:{timestamp:this.timestamp},...t});return i&&!await this.keet.internalDryRun(this.room,this.room.view,[s])?this._noop():(this.length=await this.append(s),!this.pushLength&&Ie(e)&&(this.pushLength=this.length),this.length)}async append(e){return this.batch.append(e)}async flush(){try{return await this.batch.flush(),await this.room._postAppend({encoded:this.batch.blocks,pushLength:this.pushLength,timestamp:this.timestamp}),await this.keet.roomProcessor.process(this.room),{key:this.key,length:this.length}}finally{this.close()}}close(){this.room&&this.keet.internalReleaseRoom(this.room),this.batch&&this.batch.close(),this.batch=null,this.length=0,this.shouldPush=!1}}class Te extends o{constructor(e,t,i,o,r,a){super(),this.keet=e,this.id=t,this.key=i,this.engine=a,this.externalBlobs=null,this.discoveryKey=o,this.discoveryId=s.encode(this.discoveryKey),this.view=this.engine.view,this.db=this.view.db,this.core=this.view.core,this.router=this.view.router,this.priority=r,this.push=null,this.keet.push&&(this.push=this.keet.push.room(this.key,this.discoveryKey)),this.refs=0,this.idleTicks=0,this._pushLock=new y({debounce:!0}),this.ready().catch(Se)}static create(e,t,i,s,o,r={}){const a=new U(e,t,s,r),{priority:n=1}=r;let l=null;return a.auto.on("interrupt",t=>{e.logger.warn("room=",a.auto.id,"got interrupted"),e.emit("room-interrupted",i,t)}),a.auto.on("warning",t=>{e.logger.warn("[autobee warning] room=",a.auto.id,"error=",t),e.onerror(t,{roomKey:s,prefix:"AUTOBEE_WARNING"})}),a.auto.on("error",t=>{e.logger.warn("[autobee error] room=",a.auto.id,"error=",t),e.onerror(t,{roomKey:s,prefix:"AUTOBEE_ERROR"}),t.code===me.ROOM_DISABLED&&null!==l&&(e.internalCloseRoom(l),l.close().catch(e.onerror))}),l=new Te(e,i,s,o,n,a),l}get deviceId(){return s.encode(this.deviceKey)}get deviceKey(){return this.engine.local.key}get encryptionKey(){return this.engine.encryptionKey}get blobs(){return this.engine.blobs}getQuickStats(){return{view:this.engine.viewStats,system:this.engine.systemStats,base:this.engine.stats,writer:this.engine.writerStats}}async getStats(){const[e,t,i]=await Promise.all([this.keet.local.get("@local/rooms",{roomKey:this.key}),this.keet.local.get("@local/room-preferences",{roomKey:this.key}),this.keet.local.get("@local/writers-by-room-key",{roomKey:this.key})]),{view:o,system:r,base:a,writer:n}=this.getQuickStats();return{view:o,system:r,base:a,writer:{...n,key:i?.key?s.encode(i.key):null},status:e?.status,preferences:t?.status}}async _createDeviceAttestation(e,t){const i=await this.keet.internalEnterLocalTransaction();try{const s=this.keet.internalAttestData(e,t);return await i.insert("@local/device-attestations",{deviceKey:e,proof:s,createdAt:Date.now()}),await i.flush(),s}finally{await this.keet.internalExitLocalTransaction()}}async _attestedPushNotify(e){const t=this.deviceKey,[i,s]=await Promise.all([this.keet.local.get("@local/identity"),this.keet.local.get("@local/device-attestations",{deviceKey:t})]),o=s?.createdAt||0,r=i.proofShortenedAt||0,a=!s||o<r?await this._createDeviceAttestation(t,i):s.proof;if(this.push&&this.keet.gatekeeperKeys?.length)return void await this.push.send(this.engine.local,e,{version:1,attest:a});const n=this.engine.wakeupCapability&&this.engine.wakeupCapability.key;if(!n)throw new Error("Wakeup capability key must be defined when sending a notification");for(const t of e)await this.keet.blindPeering.sendNotification(this.engine.local,{roomKey:this.engine.key,index:t-1,extra:a,target:n})}async _safePushNotify(e){if(this._pushLengths||(this._pushLengths=[]),this._pushLengths.push(e),!await this._pushLock.lock())return;const t=this._pushLengths;if(this._pushLengths=null,!this.closing&&t){try{await this._attestedPushNotify(t)}catch(e){this.keet.onerror(e,{roomKey:this.key})}this._pushLock.unlock()}else this._pushLock.unlock()}async _safeBumpDiscovery(e){await new Promise(e=>setTimeout(e,100));try{if(this.keet.closing)return;const t=await this.keet.local.get("@local/rooms",{roomKey:this.key});if(!t)return;this.keet.discovery.announce(t.capabilities.discoveryKeyPair,{bump:e})}catch(e){this.keet.onerror(e,{roomKey:this.key})}}async _open(){await this.engine.auto.ready();const e=this.keet.internalIsRoomDisabled(this.key);e||this.internalEnsureMirroring(),await this.engine.ready(),this.engine.auto.on("writer",async e=>{try{if(await this.keet.local.get("@local/devices",{device:{key:e.core.key}}))return;const t=await this.db.get("@keet/devices",{key:e.core.key});t&&await this.db.get("@keet/members",{key:t.memberKey})}catch(e){g(e)}}),this.engine.local.on("remote-contiguous-length",this._handleSentLengthChanged.bind(this)),this.engine.on("rotate-local-writer",()=>{this.engine.local.on("remote-contiguous-length",this._handleSentLengthChanged.bind(this))}),this.db.get("@keet/room-config").then(e=>{this.keet.logger.debug("opened id: "+this.id+" title: "+e?.title)},g),this.externalBlobs=new d(this.keet.store.get({name:this.id+"/blobs",encryptionKey:this.encryptionKey,encrypted:!0,exclusive:!0,active:!1})),await this.externalBlobs.ready(),await this._ensureMetadata(),e||(this.internalEnsureProfileUpdated(),this.internalEnsureUpgraded(),this.internalEnsureAutobeeMigrationShared(),this.internalEnsureRepaired())}async internalCloseAutobee(){this.keet.internalTime(`internal-close-autobee-${this.id}`),await this.engine.close(),this.keet.internalTimeEnd(`internal-close-autobee-${this.id}`)}async internalCloseExternalBlobs(){this.keet.internalTime(`internal-close-blobs-${this.id}`),await this.externalBlobs.close(),this.keet.internalTimeEnd(`internal-close-blobs-${this.id}`)}async internalPushDestroy(){this.push&&(this.keet.internalTime(`internal-close-push-${this.id}`),await this.push.destroy(),this.keet.internalTimeEnd(`internal-close-push-${this.id}`))}_close(){return Promise.all([this.internalCloseAutobee(),this.internalCloseExternalBlobs(),this.internalPushDestroy()])}_handleSentLengthChanged(){if(!this.engine.writable)return;const{length:e,remoteContiguousLength:t}=this.engine.local;e===t&&this.keet.emit("room-sent-message",this.engine.id)}async _ensureMetadata(){const e=await this.keet.internalEnterLocalTransaction();try{const[t,i]=await Promise.all([e.get("@local/room-metadata",{roomKey:this.key}),e.get("@local/rooms",{roomKey:this.key})]);if(t)return;const s=i?0:1;await e.insert("@local/room-metadata",{roomKey:this.key,repairs:s}),await e.flush()}finally{await this.keet.internalExitLocalTransaction()}}async internalEnsureMirroring(){this.refs++;try{const e=this.engine.wakeupCapability||await this.keet.internalGetMailbox(this.key),t=e&&e.key;if(!t)return;const i=await this.keet._getMirrorKeys(this.key);if(this.closing)return;this.keet.blindPeering.addAutobaseBackground(this.engine.auto,{target:t,keys:i,priority:this.priority});try{await this.engine.ready()}catch{return}if(this.closing)return;for(const e of this.engine.migratedViews)this.keet.blindPeering.addCoreBackground(e,{target:t,keys:i,priority:this.priority})}finally{this.refs--}}async internalIsMirroringView(){const e=this.engine.viewCore;if(!e||e.remoteContiguousLength===e.length)return!1;const t=await this.keet.local.get("@local/rooms",{roomKey:this.key});return!!t?.selfMember?.status.isAdmin&&(await this.keet._getMirrorKeys(this.key,t)).length>0}async internalEnsureUpgraded({opening:e=!1}={}){this.refs++;try{e||this.keet.onlineBoot.opened||await this.keet.onlineBoot.ready();const[t,i]=await Promise.all([this.db.get("@keet/system-digest"),z(this.db,this.deviceKey)]);if(!i?.status.isModerator||t?.abi.version>=this.keet.abi.autoupgrade)return;await this.keet.internalDispatchUpgrade(this.id,this.keet.abi.autoupgrade)}catch(e){this.keet.onerror(e,{roomKey:this.key})}finally{this.refs--}}async internalEnsureProfileUpdated(){this.refs++;try{this.keet.onlineBoot.opened||await this.keet.onlineBoot.ready();const[e,t]=await Promise.all([this.keet.local.get("@local/identity"),z(this.db,this.deviceKey)]);if(this.closing||!e||!t||v.equals(this.key,e.privateProfileKey))return;const i=await this.keet.local.get("@local/rooms",{roomKey:e.privateProfileKey});if(this.closing)return;if(t.profile.timestamp>=i.selfMember.profile.timestamp)return;const s={profile:i.selfMember.profile,attestation:{memberKey:i.selfMember.key,proof:i.selfMember.proofs.profileAttestation}};await this.dispatch("@keet/update-member",{member:s})}catch(e){this.keet.onerror(e,{roomKey:this.key})}finally{this.refs--}}async internalEnsureAutobeeMigrationShared(){this.refs++;try{if(this.keet.onlineBoot.opened||await this.keet.onlineBoot.ready(),this.closing)return;const e=this.key,t=await this.keet.local.get("@local/rooms",{roomKey:e});if(!t||!t.status.isWritable)return;if(!t.selfMember||!t.selfMember.status.isAdmin)return;const i=await this.db.get("@keet/autobee-migration");if(this.closing||i)return;const s=await this.keet.local.get("@local/autobee-migrations",{roomKey:e});if(!s)return;const o={head:s.autobeeMigrationHead};s.legacyViewHead&&(o.legacyViewHead=s.legacyViewHead),s.dbViewHead&&(o.dbViewHead=s.dbViewHead),s.blobsViewHead&&(o.blobsViewHead=s.blobsViewHead),await this.dispatch("@keet/autobee-migration",o)}catch(e){this.keet.onerror(e,{roomKey:this.key})}finally{this.refs--}}async internalGetBootFrom(){const[e,t]=await Promise.all([this.keet.local.get("@local/autobee-migrations",{roomKey:this.key}),this.db.get("@keet-private-id/identity")]);if(e&&!await this.db.get("@keet/autobee-migration")){const t=e.autobeeMigrationHead;return t?{key:t.key,length:0}:null}const i=this.engine.auto.local;return t?{key:i.key,length:i.length+1}:this.engine.getMostRecentAdmin()}async internalEnsureRepaired(){this.refs++;try{if(this.keet.onlineBoot.opened||await this.keet.onlineBoot.ready(),this.closing||this.keet.closing)return;if(this===this.keet.privateProfile)return;const e=await this.keet.local.get("@local/room-metadata",{roomKey:this.key});if(this.closing||this.keet.closing||e.repairs>=1)return;if(!this.engine.shouldRepair())return;const t=await this.db.get("@keet-private-id/identity");if(this.closing||this.keet.closing||t)return;if(e.repairs=1,await this.engine.repair(),this.closing||this.keet.closing)return;const i=await this.keet.internalEnterLocalTransaction();try{await i.insert("@local/room-metadata",e),await i.flush()}finally{await this.keet.internalExitLocalTransaction()}}finally{this.refs--}}_encodeBatch(e){const t=Array.isArray(e)?e:[e],i=Date.now(),s=[];let o=!1;for(const{type:e,op:r}of t)s.push(be.encodeOperation(e,{header:{timestamp:i},...r})),Ie(e)&&(o=!0);return{encoded:s,timestamp:i,shouldPush:o}}async _postAppend({encoded:e=[],pushLength:t=0,timestamp:i=Date.now()}){this.keet.stats.ops+=e.length,(this.push||this.keet.blindPeering?.keys.length)&&t>0&&this._safePushNotify(t),this.keet.discovery&&this._safeBumpDiscovery(i),this.db.update()}async dispatchBatch(e,{view:t=this.view,dryRun:i=!0,optimistic:s=!1}={}){this.opened||await this.ready();const{encoded:o,timestamp:r,shouldPush:a}=await this._encodeBatch(e,{view:t});if(i&&!await this.keet.internalDryRun(this,t,o))return null;await this.engine.append(o,{optimistic:s});const n=this.engine.local.length,l=a?n:0;return await this._postAppend({encoded:o,pushLength:l,timestamp:r}),await this.keet.roomProcessor.process(this),{key:this.engine.local.key,length:n}}dispatch(e,t,i){return this.dispatchBatch([{type:e,op:t}],i)}}function Le(t,i,s){const o=e.attestDevice(s,t.deviceKeyPair,t.deviceProof),r=e.attestData(i,t.deviceKeyPair,t.deviceProof);return{privateProfileIdentity:{memberKey:t.publicKey,proof:r},deviceProof:o}}function Ee(e){return e.map(({mediaStreamId:e,type:t,muted:i})=>({streamKey:f.randomBytes(32),mediaStreamId:e,type:t,muted:i}))}function Ie(e){return"@keet/add-chat-message"===e||"@keet/start-call"===e||"@keet/join-call"===e||"@keet/leave-call"===e||"@keet/end-call"===e}function Se(){}module.exports=class extends o{constructor(e,t={}){if(super(),this.dir=e,this.opts=t,this.isMobile=!!t.mobile,this.isTesting=!!t.testing,this.appVersion=t.appVersion?ge.parse(t.appVersion):null,this.forceBuildType=!!t.forceBuildType,!t.buildType)throw pe.INVALID_BUILD_TYPE();this.buildType=function(e){switch(e){case"nightly":return ce.Nightly;case"internal":return ce.Internal;case"production":return ce.Production;default:throw pe.INVALID_BUILD_TYPE()}}(t.buildType),this.logger=new te(t.logger),this.isTesting&&this.logger.mute(),this.callHeartbeatOpts=t.callHeartbeat||{},this.callProxy=new Ce;const o=Ke(t.buildType);this.isNightly=this.buildType===ce.Nightly,this.isExperimental=this.isTesting?t.experimental??this.isNightly:this.isNightly,this.offlineBoot=new r,this.onlineBoot=new r,this.debug={},this.versions=S,this.abi=t.testingABI||{max:this.isExperimental?S.EXPERIMENTAL:S.STABLE,autoupgrade:this.isExperimental?S.EXPERIMENTAL:S.AUTOUPGRADE,production:S.STABLE},this.abi.min=S.MIN_AUTOBEE_ABI,this.logout=t.logout,this.storage=new i(e,t.storage),this.rootCorestore=new c(this.storage,{globalCache:new u({maxSize:t.maxCacheSize}),manifestVersion:2}),this.store=this.rootCorestore.namespace("keet-core"),this.rootCorestore.watch(this._handleCoreOpen.bind(this)),this.local=O.rocks(this.storage.rocks.columnFamily("keet/local-database")),this.discovery=null,this.gatekeepers=t.gatekeepers||[],this.push=null,this.protomuxWakeup=new p(this._handleWakeup.bind(this)),this.backoff=new w,this.rooms=new Map,this.activeRooms=new Set,this._transactionLock=new y,this._tx=null,this.hyperconf=null,this.config=null,this.configMinVersion=null,this.configDesktopMinVersion=null,this.errorManager=new ue(this,this.opts),this.swarmWorker=new N(this,this.opts.swarmWorker),this.files=new V(this,this.opts),this._onerror=t.onerror||g,this.onerror=this._handleError.bind(this),this.apiV1=new A(this,t),this.backendAPI=this.apiV1,this.api=this.backendAPI.api.core,this.blindPeeringOpts=t.blindPeeringOpts||{},this.contractBundles=null,this.roomProcessor=null,this.tasks=null,this.swarm=null,this.swarmId=null,this.blindPeering=null,this.privateProfile=null,this.unreads=null,this.unreadsLoading=null,this.userRegistry=null,this.roomRegistry=null,this.discoveryCore=null,this.discoveryCoreSession=null,this.push=null,this.state=ve.RESUME,this._bundlesKey=t.bundlesKey||o.bundles.key,this._bundlesLength=t.bundlesLength||o.bundles.length,this._hyperconfKey=t.hyperconfKey||o.config.key,this._hyperconfLength=t.hyperconfLength||o.config.length,this._roomRegistryOpts=t.roomRegistry||o.roomRegistry,this._disabledRooms=this.isTesting?new Set((t.disabledRooms||[]).map(e=>s.normalize(e))):null,this._verifiedRooms=this.isTesting?new Set:null,this._relayKeys=this.isTesting?t.blindRelays||[]:null,this._blindPeerKeys=this.isTesting?t.blindMirroring||[]:null,this._gatekeeperKeys=this.isTesting?t.gatekeepers||[]:null,this._discoveryBootstrapKeys=this.isTesting?t.discoveryBootstrapKeys||[]:null,this._disableUnreadSync=this.isTesting&&t.disableUnreadSync||!1,this._otaResyncPrivateProfileBump=this.isTesting&&t.otaResyncPrivateProfileBump||0,this._migratedFrom=0,this._unreadsLock=new y({debounce:!0}),this._dhtOpts=t.dht,this._swarmOpts=t.swarm,this._pendingTasks=[],this._swarmTasks=[],this._runningTasks=new Set,this._waitingForCompletion=new Map,this._completedRequests=new Set,this._pendingCandidates=new Map,this._swarming=new Map,this._pendingTraces=[],this._cacheLock=new y({debounce:!0}),this._gcEnabled=!1!==t.gc,this._gcIdleTicks=t.gcIdleTicks||4,this._gcInterval=t.gcInterval||5e3,this._gcTimer=null,this._gcClosingRooms=new Set,this._boundAutobeeTrace=this._autobeeTrace.bind(this),this.internalPairingTimeout=t.pairingTimeout||3e3,this._profileDiscoveryTimeout=t.profileDiscoveryTimeout||1e4,this.migrationStatus=null,this._roomMigrations=new m(5),this._discoveryLock=new y({debounce:!0}),this._discoverySemaphore=new m(10),this._discovering=new Map,this.internalFastJoinSemaphore=new m(4),this.debugRunningFastJoins=0,this.debugMaxRunningFastJoins=0,this._rejectAnonymousProfiles=!1!==t.rejectAnonymousProfiles,this._registryOpts=this.isTesting?t.userRegistry:null,this.rpcClient=null,this.ackThreshold=t.ackThreshold,this.ackInterval=t.ackInterval,this.stats={ops:0,appends:0,bytesAppended:0,uploaded:0,bytesUploaded:0,downloaded:0,bytesDownloaded:0},this.debugForceMigrationFailure=t.debugForceMigrationFailure||null,this.debugJoinPeer=t.debugJoinPeer||this._debugJoinPeer.bind(this),this.debugLeavePeer=t.debugLeavePeer||this._debugLeavePeer.bind(this),this.debugDisableCacheBump=!1,this.debugClosing=!1,this.debugFailRoomSync=t.debugFailRoomSync||null,this.debugFailNextRoomSync=t.debugFailNextRoomSync||null,this.ready().catch(this.onerror)}async backendReady(){this.backendAPI.opened||await this.backendAPI.ready()}get readOnly(){return this.rootCorestore.storage.readOnly||!1}get suspended(){return this.state===ve.SUSPEND}get gatekeeperKeys(){return this._gatekeeperKeys}async _openNetworking(){const e=await this.getDHTSettings(),t=await this.getSwarmSettings();this.swarm=new a({deferRandomPunch:!0,dht:new l({...e,...this._swarmOpts,...this._dhtOpts}),maxPeers:t.maxPeers,...this._swarmOpts,relayThrough:this._relayThrough.bind(this),keyPair:await this.rootCorestore.createKeyPair("keet-swarm-keypair")}),this.swarmId=s.encode(this.swarm.keyPair.publicKey),this.swarm.on("connection",this._handleConnection.bind(this)),this.callSwarmKeyPair=await this.rootCorestore.createKeyPair("keet-call-swarm-keypair"),this.activeCall=null,this.discovery=this._discoveryBootstrapKeys.length?new I(this._discoveryBootstrapKeys[0],{dht:this.swarm.dht}):null,this.rpcClient=new ye(this.swarm.dht,{suspended:this.state===ve.SUSPEND,relayThrough:this._relayThrough.bind(this)}),this.blindPeering=new _(this.swarm.dht,this.store,{pick:2,wakeup:this.protomuxWakeup,keys:this.debug.disableMirrors?[]:this._blindPeerKeys,relayThrough:this._relayThrough.bind(this),...this.blindPeeringOpts}),this._gatekeeperKeys.length>0&&(this.push=new T(this._gatekeeperKeys,{dht:this.swarm.dht})),await this.swarmWorker.ready(),await this.files.ready(),this.readOnly&&(this.blindPeering.suspend(),this.swarm.suspend())}async _runBootOffline(){if(!this.offlineBoot.enter())return;await this._ensureDebugState(),await this.store.ready(),this.hyperconf=new R(ne,this.store.get(this._hyperconfKey),{minLength:this._hyperconfLength,production:this.buildType===ce.Production}),this.hyperconf.on("update",this._handleConfigUpdated.bind(this)),await this.hyperconf.ready(),await this._handleConfigUpdated(),this.config?.versions.autoupgrade>0&&(this.abi.autoupgrade=this.config.versions.autoupgrade);const e=await this.local.get("@local/environment"),t=!!e&&e.latestOfflineAbi<this.abi.production;this.contractBundles=new fe(this,"keet-bundles",{hydrate:t}),await this.contractBundles.ready(),t&&await this._bumpLocalAbiVersion(),this.roomProcessor=new q(this),await this.roomProcessor.ready(),await this._openNetworking(),this.tasks=new M(this),await this.tasks.ready(),this.roomProcessor.bump(),this._gcEnabled&&(this._gcTimer=setInterval(this._closeIdleRooms.bind(this),this._gcInterval)),this.offlineBoot.exit()}async _runBootOnline(){if(this.onlineBoot.enter()){await this.offlineBoot.ready(),this.discovery&&(this.discovery.on("announce",({publicKey:e})=>{this.scheduleDiscoverySwarming(e)}),this.discovery.on("connect",this._onDiscoveryConnect.bind(this)),this.discovery.connect()),this._refreshDiscoverySwarming(),this._migratedFrom=await this._ensureMigrated();try{await this._loadIdentity()}catch(e){this.onerror(e)}this._migratedFrom>0&&await this._maybeRunPostMigrations(this._migratedFrom),this._registryOpts&&(this.userRegistry=new he(this,this._registryOpts),await this.userRegistry.ready()),this._roomRegistryOpts&&(this.roomRegistry=new de(this,this._roomRegistryOpts),await this.roomRegistry.ready()),this.onlineBoot.exit()}}async _open(){!1!==await this._ensureBuildType()&&(this._runBootOffline().catch(this.onerror),this._runBootOnline().catch(this.onerror),await this.offlineBoot.ready())}async _close(){this.internalTime("keet-close"),this.internalVerboseLog("Closing keet core"),this._gcTimer&&clearInterval(this._gcTimer),this.backoff.destroy(),this.internalTimeLog("keet-close","destroyed backoff"),this.state===ve.SUSPEND&&await this.store.resume(),this.internalTimeLog("keet-close","resumed from suspend"),this.internalVerboseLog("Closing active calls"),await this.backendAPI.closeActiveCalls(),this.internalTimeLog("keet-close","closed active calls"),this.internalVerboseLog("Closing discovery cores"),this.discoveryCore&&await this.discoveryCore.close(),this.discoveryCoreSession&&this.discoveryCoreSession.destroy(),this.internalTimeLog("keet-close","closed discovery cores"),this.internalVerboseLog("Closing tasks"),this.tasks&&await this.tasks.close(),this.internalFastJoinSemaphore.destroy(),this.internalTimeLog("keet-close","stopped running tasks");for(const e of this._gcClosingRooms)this.internalTime(`gc-room-close-${e.id}`),this.internalTimeLog(`gc-room-close-${e.id}`),this.internalVerboseLog("Closing room in gc list",e.id,e.opened),await e.close(),this.internalTimeEnd(`gc-room-close-${e.id}`,"closed");this.internalTimeLog("keet-close","closed rooms in gc"),this.internalVerboseLog("Closing user registry"),this.userRegistry&&await this.userRegistry.close(),this.internalTimeLog("keet-close","closed user registry"),this.internalVerboseLog("Closing room registry"),this.roomRegistry&&await this.roomRegistry.close(),this.internalTimeLog("keet-close","closed room registry"),this.internalVerboseLog("Closing rpc client"),this.rpcClient&&await this.rpcClient.close(),this.internalTimeLog("keet-close","closed rpc client"),this.internalVerboseLog("Closing swarm worker"),await this.swarmWorker.close(),this.internalTimeLog("keet-close","closed swarm worker"),this.internalVerboseLog("Closing discovery"),this.discovery&&await this.discovery.close(),this.internalTimeLog("keet-close","closed discovery"),this.internalVerboseLog("Closing push"),this.push&&await this.push.destroy(),this.internalTimeLog("keet-close","closed push"),this.internalVerboseLog("Closing blind peering"),this.blindPeering&&await this.blindPeering.close(),this.internalTimeLog("keet-close","closed blind peering"),this.internalVerboseLog("Flushing DHT cache"),this.swarm&&await this._flushDHTCache(),this.internalTimeLog("keet-close","flushed dht"),this.internalVerboseLog("Closing active call"),this.activeCall&&await this.internalEndActiveCall(),this.internalTimeLog("keet-close","closed active call"),this.internalVerboseLog("Closing swarm"),this.swarm&&await this.swarm.destroy(),this.internalTimeLog("keet-close","destroyed swarm"),this.internalVerboseLog("Closing files"),await this.files.close(),this.internalTimeLog("keet-close","closed files"),this.internalVerboseLog("Closing all pending rooms and workers"),await Promise.allSettled([...[...this.rooms.values()].map(async e=>{this.internalTime(`pending-room-close-${e.id}`),this.internalTimeLog(`pending-room-close-${e.id}`),await e.close(),this.internalTimeEnd(`pending-room-close-${e.id}`)})]),this.internalTimeLog("keet-close","closed all pending rooms and workers"),this.internalVerboseLog("Closing room processor"),this.roomProcessor&&await this.roomProcessor.close(),this.internalTimeLog("keet-close","closed room processor"),this.internalVerboseLog("Closing backend"),await this.apiV1.close(),this.internalTimeLog("keet-close","closed backend"),await this.internalEnterLocalTransaction(),await this.internalExitLocalTransaction(),this.internalVerboseLog("Closing unread anchors"),this.unreadsLoading&&await this.unreadsLoading,this.unreads&&await this.unreads.close(),this.internalTimeLog("keet-close","closed unreads"),this.internalVerboseLog("Closing wakeup"),this.protomuxWakeup.destroy(),this.internalTimeLog("keet-close","protomux"),this.internalVerboseLog("Closing hyperconf"),this.hyperconf&&await this.hyperconf.close(),this.internalVerboseLog("Closing error manager"),this.errorManager&&await this.errorManager.close(),this.internalVerboseLog("Closing local db"),await this.local.close(),this.internalVerboseLog("Closing contract bundles"),this.contractBundles&&await this.contractBundles.close(),this.internalVerboseLog("Closing store"),await this.store.close(),this.internalVerboseLog("Closing root corestore"),await this.rootCorestore.close(),this.internalTimeLog("keet-close","closed cores"),this.internalVerboseLog("Close done"),this.internalTimeEnd("keet-close")}async _ensureDebugState(){const e=await this.internalEnterLocalTransaction();try{const t=await e.get("@local/debug")||{};t.flags||(t.flags=X);const i=new Set,s={};for(const e of t.flags)i.add(e.key),s[e.key]=e.value;for(const{key:e,value:s,description:o}of X)i.has(e)||t.flags.push({key:e,value:s,description:o});await e.insert("@local/debug",t),await e.flush(),this.debug={...s}}finally{await this.internalExitLocalTransaction()}}isValidBuildType(e){if(!e)return!0;if(this.isTesting&&!this.forceBuildType)return!0;const t=ce.Production===this.buildType;return!(!t&&!e.settings.buildType||!t&&e.settings.buildType!==this.buildType)}async _ensureBuildType(){if(this.isTesting&&!this.forceBuildType)return;const e=ce.Production===this.buildType,t=await this.internalEnterLocalTransaction();try{const[i,s]=await Promise.all([t.get("@local/identity"),t.get("@local/environment")]);if(!e&&i&&!s?.buildType)throw pe.INVALID_BUILD_TYPE();if(s&&s.buildType!==this.buildType)throw pe.INVALID_BUILD_TYPE();if(s)return;await t.insert("@local/environment",{buildType:this.buildType}),await t.flush()}catch(e){return this.onerror(e),!1}finally{await this.internalExitLocalTransaction()}}async _bumpLocalAbiVersion(){const e=await this.internalEnterLocalTransaction();try{const t=await e.get("@local/environment");t.latestOfflineAbi=this.abi.production,await e.insert("@local/environment",t),await e.flush()}finally{await this.internalExitLocalTransaction()}}async _onDiscoveryConnect(){const e=await this.local.find("@local/rooms-by-timestamp",{reverse:!0,limit:256}).toArray();this.discovery.cork();for(const t of e){const e=t.capabilities.discoveryKeyPair.publicKey,i=await this.local.get("@local/background-sync",{discoveryPublicKey:e}),s=Math.max(t.timestamps.latestSync,i?i.lastSynced:0);this.discovery.subscribe(t.capabilities.discoveryKeyPair.publicKey,{since:s})}this.discovery.uncork()}async internalEnterLocalTransaction(){return await this._transactionLock.lock(),this._tx=this.local.transaction(),this._tx}async internalExitLocalTransaction(){await this._tx.close(),this._transactionLock.unlock()}async _handleConfigUpdated(){if(!this.isTesting||this.opts.hyperconfKey){if(this.config=this.hyperconf.current,this.internalVerboseLog("OTA config updated, dkey:",s.encode(this.hyperconf.core.discoveryKey),"length:",this.hyperconf.core.length),this._blindPeerKeys=this.config.services.blindPeers,this._relayKeys=this.config.services.blindRelays,this._gatekeeperKeys=this.config.services.gatekeepers,this._discoveryBootstrapKeys=this.config.services.discovery,h.setRecoveryPeers&&h.setRecoveryPeers(this.config.services.blindPeers),this._disabledRooms=new Set(this.config.rooms.disabled.map(e=>s.encode(e))),this._verifiedRooms=new Set(this.config.rooms.verified?.map(e=>s.encode(e))),this._disableUnreadSync=!0===this.config.profile?.disableUnreadSync,this._otaResyncPrivateProfileBump=this.config.profile?.otaResyncPrivateProfileBump||0,this._maybeOtaResyncPrivateProfile().catch(this.onerror),this._maybeUpgradeOpenRooms().catch(this.onerror),this._closeDisabledRooms().catch(this.onerror),this.config.services.userRegistries?.length&&(this._registryOpts=this.config.services.userRegistries[0]),this.blindPeering&&this.blindPeering.setKeys(this._blindPeerKeys),this.config.versions.minVersion){const{major:e,minor:t,patch:i}=this.config.versions.minVersion;this.configMinVersion=new ge(e,t,i)}if(this.config.versions.desktopMinVersion){const{major:e,minor:t,patch:i}=this.config.versions.desktopMinVersion;this.configDesktopMinVersion=new ge(e,t,i)}this.config.versions.autoupgrade>0&&(this.abi.autoupgrade=this.config.versions.autoupgrade),this.emit("force-update"),this.emit("verified-rooms-changed")}}async _maybeUpgradeOpenRooms({debug:e=!1}={}){this.onlineBoot.opened||await this.onlineBoot.ready();const t=this.abi.autoupgrade,i=this.config?.versions.autoupgrade;if(!(t<i)&&!0!==e)return;const s=[],o=async function(e,t){try{await e.ready();const[i,s]=await Promise.all([e.db.get("@keet/system-digest"),z(e.db,e.deviceKey)]);if(!s?.status.isModerator||i?.abi.version>=t)return;await this.internalDispatchUpgrade(e.id,t)}catch(e){this.onerror(e)}}.bind(this);for(const[e,t]of this.rooms.entries())s.push(o(t,i));return await Promise.all(s)}async _maybeOtaResyncPrivateProfile(){this.onlineBoot.opened||await this.onlineBoot.ready();const e=this._otaResyncPrivateProfileBump||0,t=await this.internalEnterLocalTransaction();try{if(!(e>((await t.get("@local/ota-actions"))?.otaResyncPrivateProfileBump||0)))return;if(null===await this.internalResyncPrivateProfile())return;await t.insert("@local/ota-actions",{otaResyncPrivateProfileBump:e}),await t.flush()}catch(e){this.onerror(e)}finally{await this.internalExitLocalTransaction()}}shouldForceUpdate(){return this.config.versions.forceUpdate>S.FORCE_UPDATE||(this.isMobile?this._shouldForceUpdateMobile():this._shouldForceUpdateDesktop())}_shouldForceUpdateMobile(){return!(!this.configMinVersion||!this.appVersion)&&1===this.configMinVersion.compare(this.appVersion)}_shouldForceUpdateDesktop(){return!(!this.configDesktopMinVersion||!this.appVersion)&&1===this.configDesktopMinVersion.compare(this.appVersion)}isRoomVerified(e){return this._verifiedRooms.has(e)}internalIsRoomDisabled(e){return!!this._disabledRooms&&this._disabledRooms.has(s.encode(e))}async _bumpRoom(e){if(this.closing)return;if(!await this.local.get("@local/writers-by-room-key",{roomKey:e}))return;const t=await this.local.get("@local/rooms",{roomKey:e});if(!t||t.status.isRemoved)return;if(this.closing)return;const i=this.internalOpenExistingRoom(e);try{await i.ready()}finally{this.internalReleaseRoom(i)}}async _roomCoreReferrer(e){const t=e.state.storage.read(),i=[t.getUserData("referrer"),t.getUserData("autobase/view")];t.tryFlush();const[s,o]=await Promise.all(i);return s&&!o?s:null}async _tagLegacyCore(e){if(await e.ready(),e.core.header.group)return;if(e.writable)return;const t=await this._roomCoreReferrer(e.core);if(!t)return;const i=await this.internalGetMailbox(t);i&&(await e.setGroup(i.discoveryKey),await this._bumpRoom(t))}_handleCoreOpen(e){const t=new h({core:e,weak:!0}),i=new y({debounce:!0});this._tagLegacyCore(t).catch(this.onerror),t.on("verification-error",e=>{this.onerror(e,{coreKey:t.key,prefix:"CORE_VERIFICATION_ERROR"})}),t.on("conflict",()=>{this.onerror(new Error("Conflict in Hypercore"),{coreKey:t.key,prefix:"CORE_CONFLICT"})}),t.on("invalid-request",e=>{this.onerror(e,{coreKey:t.key,prefix:"CORE_INVALID_REQUEST"})}),t.on("append",async()=>{if(await i.lock())try{const t=await this._roomCoreReferrer(e);if(!t)return;await this._bumpRoom(t)}catch(e){this.onerror(e)}finally{i.unlock()}}),t.on("upload",(e,t)=>{this.stats.uploaded++,this.stats.bytesUploaded+=t}),t.on("download",(e,t)=>{this.stats.downloaded++,this.stats.bytesDownloaded+=t}),t.once("ready",()=>{if(t.writable){let e=t.length,i=t.byteLength;t.on("append",()=>{const s=t.length,o=t.byteLength;this.stats.appends+=s-e,this.stats.bytesAppended+=o-i,e=s,i=o})}})}async _handleWakeup(e){if(!this.discovery)try{const[t,i]=await Promise.all([this.local.get("@local/writers-by-wakeup-topic",{wakeupTopic:e}),this.local.get("@local/rooms-by-wakeup-topic",{capabilities:{wakeupTopic:e}})]);if(!t&&!i)return;const s=t?.mailbox||i?.capabilities.mailboxKeyPair.publicKey,o=this.protomuxWakeup.session(s,{active:!1,discoveryKey:e,onpeeractive:e=>{t&&o.announce(e,[{key:t.key,length:1}])}});i&&await this._bumpRoom(i.roomKey)}catch(e){this.onerror(e)}}async _maybeRunMigrations(e,t){3===t&&await require("./lib/core/migrations/3")(this,e),4===t&&await require("./lib/core/migrations/4")(this,e),5===t&&await require("./lib/core/migrations/4")(this,e),t<8&&await require("./lib/core/migrations/7")(e),t<9&&await require("./lib/core/migrations/8")(e)}async _maybeRunPostMigrations(e){4===e&&await require("./lib/core/migrations/4/post")(this),5===e&&await require("./lib/core/migrations/4/post")(this)}async _ensureMigrated(){let e=0;const t=await this.internalEnterLocalTransaction();try{const i=await t.get("@local/migrations"),s=i?i.version:3;s<9&&(e=s,await this._maybeRunMigrations(t,s),await t.insert("@local/migrations",{version:9})),await t.flush()}finally{await this.internalExitLocalTransaction()}const i=await this.local.find("@local/room-migrations-by-priority").toArray(),o=[],r=[],a=[];for(const e of i)this._disabledRooms.has(s.encode(e.roomKey))?a.push(e):e.v3?.privateProfile?o.push(e):r.push(e);if(a.length>0){const e=await this.internalEnterLocalTransaction();try{for(const t of a){const i=await e.get("@local/room-migrations",{roomKey:t.roomKey});await e.delete("@local/room-migrations",t),await we(e,null,i)}await e.flush()}finally{await this.internalExitLocalTransaction()}}await Promise.all(o.map(e=>this._migrateRoom(e,{migratingRooms:r})));for(const e of r)this._migrateRoom(e).catch(this.onerror);return e}async _migrateRoom(e,{migratingRooms:t}={}){await this._roomMigrations.wait();try{const i=e.errored;if(i||(this.migrationStatus||(this.migrationStatus={remaining:0}),this.migrationStatus.remaining++,this.emit("migration-status",this.migrationStatus)),!e.timestamp){const t=await this.internalEnterLocalTransaction();try{e.timestamp=Date.now();const i=await t.get("@local/room-migrations",e);await t.insert("@local/room-migrations",e),await we(t,e,i),await t.flush()}finally{await this.internalExitLocalTransaction()}}const s=Date.now()-e.timestamp>1728e5;let o=!1,r=!1;try{e.v3&&!s&&await require("./lib/core/migrations/3/room")(this,e.roomKey,e.v3,{migratingRooms:t})}catch(e){this.onerror(e),r=!0,o=!!this.closing}const a=await this.internalEnterLocalTransaction();try{const t=await a.get("@local/room-migrations",e);r?(i||(e.errored=!o),await a.insert("@local/room-migrations",e),await we(a,e,t)):(await a.delete("@local/room-migrations",e),await we(a,null,t)),await a.flush()}finally{await this.internalExitLocalTransaction()}i||(this.migrationStatus.remaining--,this.emit("migration-status",this.migrationStatus))}finally{this._roomMigrations.signal()}}async _closeIdleRooms(){const e=[],t=[];for(const i of this.rooms.values())i.refs>0||(i.engine.busy?i.idleTicks=0:this.activeRooms.has(i)||++i.idleTicks<this._gcIdleTicks||i.refs>0||this.rooms.get(i.id)!==i||(this.rooms.delete(i.id),this._gcClosingRooms.add(i),e.push(i.close()),t.push(i)));const i=await Promise.allSettled(e);for(let e=0;e<i.length;e++)"rejected"===i[e].status&&this.onerror(i[e].reason,{roomKey:t[e].key,prefix:"ROOM_GC_CLOSE"});for(const e of t)this._gcClosingRooms.delete(e)}async _closeDisabledRooms(){for(const e of[...this.rooms.values()])this._disabledRooms.has(e.id)&&(this.internalCloseRoom(e),await e.close())}internalCloseRoom(e){this.rooms.delete(e.id),this._gcClosingRooms.add(e)}_debugJoinPeer(e){this.logger.info("Call join:",e)}_debugLeavePeer(e){this.logger.info("Call leave:",e)}async debugPauseCacheBump(){this.debugDisableCacheBump=!0,await this._cacheLock.flush()}debugResumeCacheBump(){this.debugDisableCacheBump=!1}debugPauseGC(){this._gcTimer&&(clearInterval(this._gcTimer),this._gcTimer=null)}debugResumeGC(){this._gcTimer||(this._gcTimer=setInterval(this._closeIdleRooms.bind(this),this._gcInterval))}debugMaybeUpgradeOpenRooms(e={}){return this._maybeUpgradeOpenRooms({debug:!0,...e})}async internalDiscoveryCompleted(e,t){try{const e=this._discovering.get(t);if(!e)return;const i=await this.internalEnterLocalTransaction();try{const t=e.roomInfo.capabilities.discoveryKeyPair.publicKey;e.room&&this.internalReleaseRoom(e.room);const s=await i.get("@local/background-sync",{discoveryPublicKey:t});s&&await i.insert("@local/background-sync",{...s,lastSynced:Date.now(),dirty:!1}),await i.flush()}finally{await this.internalExitLocalTransaction()}this._discovering.delete(t),this._discoverySemaphore.signal()}catch(e){this.onerror(e)}}async _startDiscoverySwarming(e,t){if(!await this._discoverySemaphore.wait())return!1;if(this.closing)return!1;const i=this._discovering.get(t);return!!i&&(this.swarmWorker.startDiscoverySwarming(e,{roomId:t}),i.updated&&this.swarmWorker.notifyDiscoveryUpdate(e),!0)}async _refreshDiscoverySwarming(){if(await this._discoveryLock.lock()&&!this.closing)try{const e=await this.internalEnterLocalTransaction();try{for await(const{discoveryPublicKey:t}of e.find("@local/background-sync-by-dirty",{reverse:!0})){const e=await this.local.get("@local/rooms-by-discovery",{capabilities:{discoveryKeyPair:{publicKey:t}}});if(!e||e.status.isRemoved)continue;const i=s.encode(e.discoveryKey);if(this._discovering.has(i))continue;const o=this.internalOpenExistingRoom(e.roomKey);this._discovering.set(i,{updated:!1,room:o,roomInfo:e}),this._startDiscoverySwarming(e.capabilities.swarmTopic,i)||this.internalReleaseRoom(o)}await e.flush()}finally{await this.internalExitLocalTransaction()}}catch(e){this.onerror(e)}finally{this._discoveryLock.unlock()}}async scheduleDiscoverySwarmingFromDiscoveryKey(e){const t=await this.local.get("@local/rooms-by-discovery-key",{discoveryKey:e});if(t)return this.scheduleDiscoverySwarming(t.capabilities.discoveryKeyPair.publicKey)}async scheduleDiscoverySwarming(e){const t=await this.internalEnterLocalTransaction();try{const i=await t.get("@local/background-sync",{discoveryPublicKey:e}),s=i?.lastSynced||0;await t.insert("@local/background-sync",{discoveryPublicKey:e,timestamp:Date.now(),lastSynced:s,dirty:!0}),await t.flush()}finally{await this.internalExitLocalTransaction()}this._refreshDiscoverySwarming()}async internalMarkRoomUpdated(e,t,i){const s=await this.internalEnterLocalTransaction();try{await s.insert("@local/room-updates",{roomKey:e,head:t,timestamp:Date.now(),incremental:i}),await s.flush()}finally{await this.internalExitLocalTransaction()}}async internalBlobsActiveInRoom(e){const t=s.encode(e),i=this.rooms.get(t);if(!i)return;const o=await this.local.get("@local/rooms",{roomKey:e});if(!o)return;const{capabilities:r}=o;if(!r||!r.mailboxKeyPair)return;try{await i.ready()}catch{return}if(!i.externalBlobs)return;const a=await this._getMirrorKeys(e,o);i.closing||this.blindPeering.addCoreBackground(i.externalBlobs.core,{target:r.mailboxKeyPair.publicKey,keys:a,pick:1})}async _getMirrorKeys(e,t){if(this.debug.disableMirrors)return[];if(!e)return this._blindPeerKeys;const i=t||await this.local.get("@local/rooms",{roomKey:e});return i&&i.config.blindPeers?.length?i.config.blindPeers:this._blindPeerKeys}_relayThrough(e){return e||this.swarm.dht.randomized?this._relayKeys:null}_callSwarmRelayThrough(e,t){return e||this.swarm.dht.randomized||t.dht.randomized?this._relayKeys:null}internalCreateCallSwarm(){return new n({...this._swarmOpts,keyPair:this.callSwarmKeyPair,dht:this.swarm.dht,relayThrough:this._callSwarmRelayThrough.bind(this)})}async internalStartCall(e,t){if(this.activeCall)throw pe.CALL_SWARM_ACTIVE("",{callId:this.activeCall.callId});const i=s.decode(e),o=await this.local.get("@local/rooms",{roomKey:i}),r=f.randomBytes(32),a=await this.dispatch(e,"@keet/start-call",{version:3,callKey:r,encryptionKey:o.encryptionKey,swarmKey:this.callSwarmKeyPair.publicKey,streamInputs:Ee(t)});if(!a)throw pe.CALL_DISPATCH_REJECTED("",{roomId:e,op:"@keet/start-call"});return await this.internalStartActiveCall(e,s.encode(r)),a}async internalJoinCall(e,t,i){if(this.activeCall)throw pe.CALL_SWARM_ACTIVE("",{callId:this.activeCall.callId});const o=s.decode(t),r=this.internalOpenExistingRoom(e);let a=null;try{r.opened||await r.ready(),a=await r.db.get("@keet/call-devices",{callKey:o,deviceKey:r.deviceKey})}finally{await this.internalReleaseRoom(r)}let n=null;if(!a&&(n=await this.dispatch(e,"@keet/join-call",{callKey:o,swarmKey:this.callSwarmKeyPair.publicKey,streamInputs:Ee(i)}),!n))throw pe.CALL_DISPATCH_REJECTED("",{roomId:e,callId:t,op:"@keet/join-call"});return await this.internalStartActiveCall(e,t),n}async internalLeaveCall(e,t){const i=await this.dispatch(e,"@keet/leave-call",{callKey:s.decode(t)});if(!i)throw pe.CALL_DISPATCH_REJECTED("",{roomId:e,callId:t,op:"@keet/leave-call"});return this.activeCall&&this.activeCall.callId===t&&await this.internalEndActiveCall(),i}async internalEndCall(e,t){const i=await this.dispatch(e,"@keet/end-call",{callKey:s.decode(t)});if(!i)throw pe.CALL_DISPATCH_REJECTED("",{roomId:e,callId:t,op:"@keet/end-call"});return this.activeCall&&this.activeCall.callId===t&&await this.internalEndActiveCall(),i}async internalStartActiveCall(e,t){if(this.activeCall)throw pe.CALL_SWARM_ACTIVE("",{callId:this.activeCall.callId});if(this.suspended)throw pe.CALL_SWARM_SUSPENDED("",{callId:t});const i=new _e(this,e,t);this.activeCall=i;try{await i.ready()}catch(e){throw this.activeCall=null,e}return i}internalEndActiveCall(){if(!this.activeCall)throw pe.CALL_NOT_ACTIVE();const e=this.activeCall;this.activeCall=null;const t=e.close();return t.catch(this.onerror),t}internalSyncActiveCall(e){if(this.activeCall&&this.activeCall.roomId===e)return this.activeCall.sync()}internalVerboseLog(...e){const t=new Date;this.logger.info(t,...e)}internalTime(...e){this.isTesting||console.time(...e)}internalTimeLog(...e){this.isTesting||console.timeLog(...e)}internalTimeEnd(...e){this.isTesting||console.timeEnd(...e)}_handleConnection(e){if(this.closing)return void e.on("error",()=>{});const t=s.encode(e.publicKey),i=s.encode(e.remotePublicKey),o=Date.now();let r=0;this.internalVerboseLog(`got ${e.isInitiator?"client":"server"} connection from ${t} to ${i}`);let a=null;e.once("error",e=>{a=e}),e.once("close",()=>{this.internalVerboseLog(`connection closed to ${i}, with err: ${a} (${Date.now()-o} ms ${r} bytes recv)`)}),e.on("data",e=>{r+=e.byteLength}),this.protomuxWakeup.addStream(e),this.rootCorestore.replicate(e)}async _createInitialIdentity(){const t=e.generateMnemonic(),i=this.tasks.restoreIdentity(Pe,{mnemonic:t,recover:!1});await i.run()}async _loadIdentity(){let e=await this.local.get("@local/identity");if(e||await this._createInitialIdentity(),e=await this.local.get("@local/identity"),this.privateProfile)return;const t=await this.local.get("@local/rooms",{roomKey:e.privateProfileKey});t&&this.swarmWorker.startActiveSwarming(t.capabilities.swarmTopic),this.privateProfile=await this.internalOpenPrivateProfile({opening:!0}),this._shortenDeviceAttestations().catch(this.onerror),await this.internalRefreshUnreads()}async internalResyncPrivateProfile(){if(!this.privateProfile)return null;const e=[];for await(const t of this.privateProfile.db.find("@keet-private-id/rooms"))await this.local.get("@local/rooms",{roomKey:t.roomKey})||e.push(t);for(const t of e)this.tasks.joinRoomKeys(t.mailbox,{keys:t,activeClock:t.activeClock,isReadOnly:t.status.isReadOnly}).runBackground()}async _shortenDeviceAttestations(){const e=await this.local.get("@local/identity");if(!e)return;const i=s.encode(e.privateProfileKey);if(!await this.internalFeatureSupported(i,D.SHORTEN_ATTESTATION))return;const o=this.privateProfile.engine.local.key,r=k.decode(t,e.deviceProof).chain.length;for await(const i of this.privateProfile.db.find("@keet-private-id/device-identities")){const s=v.equals(i.deviceKey,o),a=k.decode(t,i.deviceProof),n=a.chain.length,l=a.chain[n-1].publicKey;if(!s&&r+1<n){const t=Le(e,i.deviceKey,l);await this.privateProfile.dispatch("@keet-private-id/shorten-device-attestation",{deviceKey:i.deviceKey,deviceProof:t.deviceProof,writerProof:t.privateProfileIdentity.proof})}if(s&&k.decode(t,i.deviceProof).chain.length<r){const t=await this.internalEnterLocalTransaction();try{const s=await t.get("@local/identity");v.equals(s.publicKey,e.publicKey)&&(s.deviceProof=i.deviceProof,s.proofShortenedAt=Date.now(),await t.insert("@local/identity",s),await t.flush())}finally{await this.internalExitLocalTransaction()}}}}async internalDispatchUpgrade(e,t){if(!e||!t)return;const i=this.internalOpenExistingRoom(e);try{const e=this.batch(i.id);if(0===await e.dispatch("@keet/upgrade",{version:t}))return;if(t>=14){const s=await i.db.get("@keet/system-digest"),o="@keet/migrate-abi",r={header:{timestamp:e.timestamp},from:s?.abi.version,to:t,buildType:this.buildType},a=t<this.abi.min?this.abi.min:t,n=(await this.contractBundles.loadBundle(a)).encodeOperation(o,r);await e.append(n)}await e.flush()}finally{this.internalReleaseRoom(i)}}async _bumpCache(){if(!this.closing&&!0!==this.debugDisableCacheBump)try{if(!await this._cacheLock.lock())return;try{if(this.closing||!0===this.debugDisableCacheBump)return;await this._processCache()}finally{this._cacheLock.unlock()}}catch(e){this.onerror(e)}}async _processCache(){const e=[];for(;this._pendingTraces.length>0;){const t=this._pendingTraces.pop();e.push(this._updateCache(t))}const t=await Promise.all(e),i=await this.internalEnterLocalTransaction();try{for(const e of t)e&&await i.insert(e.collection,e.record);await i.flush()}finally{await this.internalExitLocalTransaction()}}async _updateCache({roomKey:e,collection:t,record:i}){if("@keet/members"===t){if(i?.profile.avatar){const t=this.internalOpenExistingRoom(e);try{await Y(t.db,t.blobs,i.profile.avatar)}catch{return null}finally{this.internalReleaseRoom(t)}}return{collection:"@local/members",record:i}}return"@keet/devices"===t?{collection:"@local/devices",record:{roomKey:e,device:i}}:null}_cacheRoomReads(e,t,i){this._pendingTraces.push({roomKey:e,collection:t,record:i}),this._bumpCache()}_maybeLogAutobeeApply(e,t,i,o,r){try{const a=s.encode(r),n=this.rooms.get(a),l=n?n.getQuickStats():null;this.logger.verboseDebug("[autobeeApply]",{"op.name":e.name,"op.id":e.id,dryRun:t,"nodes.length":i,abi:o,roomId:a,"roomStats.view":l?.view,"roomStats.system":l?.system,"roomStats.base":l?.base})}catch(e){console.error("Failed to log autobee apply",e)}}_autobeeTrace({type:e,value:t}){if("@keet/add-device"!==e)return;const{request:i,response:s,invitation:o}=t,r=o?.metadata.expiration;if(r>0&&r<Date.now())return;const a=i.member.profile.mailbox,n=i.keyPair;a&&n&&this._processAutobeeTrace(a,n,s).catch(this.onerror)}async _processAutobeeTrace(e,t,i){this.onlineBoot.opened||await this.onlineBoot.ready();const s=await this.local.get("@local/identity"),o=await this.local.get("@local/rooms",{roomKey:s.privateProfileKey});v.equals(e,o.capabilities.mailboxKeyPair.publicKey)||this.tasks.joinRoomResponse(t.publicKey,{mailbox:e,keyPair:t,response:i}).runBackground()}async _backgroundDrain(e){let t=await e.next();try{for(;!t.done&&!this.closing;){const i=await t.value;if(this.closing)return;t=await e.next(i)}}finally{!t.done&&e.return&&await e.return()}}async _safeLoadLegacyUnreads(){try{const e=[];for await(const t of this.local.find("@local/rooms")){const i=await this.local.get("@local/unreads",{roomKey:t.roomKey});i&&e.push(i)}return e}catch{return[]}}async*_migrateUnreadAnchors(){const e=yield this._safeLoadLegacyUnreads();try{const t=yield this.internalEnterLocalTransaction(),i=this.unreads.write(),s=Date.now();for(const{roomKey:o,count:r}of e)i.tryPut(o,{length:r+1,timestamp:s}),yield t.delete("@local/unreads",{roomKey:o});yield i.flush(),yield t.flush()}finally{yield this.internalExitLocalTransaction()}}async*_internalRefreshUnreads(){if(!this.privateProfile)return;let e=yield this.privateProfile.db.get("@keet/system-digest");if(e&&(yield this.privateProfile.internalEnsureUpgraded({opening:!0}),e=yield this.privateProfile.db.get("@keet/system-digest"),S.isFeatureSupported(e.abi.version,S.FEATURES.UNREADS)))try{if(!(yield this._unreadsLock.lock()))return;const t=[];let i=!0;const s=S.isFeatureSupported(e.abi.version,S.FEATURES.V2_UNREADS)?"@keet-private-id/unreads-v2":"@keet-private-id/unreads",o=yield this.privateProfile.db.find(s).toArray();for(const{deviceKey:e,key:s}of o)v.equals(e,this.privateProfile.engine.local.key)&&(i=!1),t.push(s);if(this.unreads&&function(e,t){if(e.length!==t.length)return!1;for(let i=0;i<e.length;i++)if(!v.equals(e[i],t[i]))return!1;return!0}(t,this.unreads.keys))return;this.unreads&&(yield this.unreads.close(),this.unreads=null);const r=this.privateProfile,a=r.engine.encryptionKey,n=this.store.namespace(r.key),l=n.namespace("keet-unreads");yield n.close();const c=yield r.engine.wakeupKey;this.unreads=new L(l,t,{blindPeering:this.blindPeering,encryptionKey:a,target:c}),this.unreads.on("remote-update",()=>this.emit("unread-anchors-changed")),yield this.unreads.ready(),i&&(yield this._backgroundDrain(this._migrateUnreadAnchors()),yield this.privateProfile.dispatch("@keet-private-id/add-unreads-key",{key:this.unreads.local.key}))}finally{this._unreadsLock.unlock()}}internalRefreshUnreads(){return this._disableUnreadSync?Promise.resolve():this._backgroundDrain(this._internalRefreshUnreads())}async internalLoadDiscoveryCore(){try{const e=await this.privateProfile.db.get("@keet-private-id/identity");if(!e||!e.discoveryCoreKey||this.closing)return;if(this.discoveryCore)return;this.discoveryCore=this.store.get({key:e.discoveryCoreKey}),await this.discoveryCore.ready(),this.blindPeering.addCoreBackground(this.discoveryCore,{pick:3,priority:2})}catch(e){this.onerror(e)}}async internalCreateDiscoveryCore(e){const t=e.getProfileDiscoveryEncryptionKey(),i={version:2,signers:[{publicKey:e.profileDiscoveryKeyPair.publicKey}]};return this.discoveryCore&&await this.discoveryCore.close(),this.discoveryCore=this.store.get({keyPair:e.profileDiscoveryKeyPair,valueEncoding:le,encryptionKey:t,manifest:i}),await this.discoveryCore.ready(),this.blindPeering.addCoreBackground(this.discoveryCore,{pick:3,priority:2}),this.discoveryCoreSession=this.swarm.join(this.discoveryCore.discoveryKey,{server:!1,client:!0}),!0}async internalDryRun(e,t,i){const s=i.map((t,i)=>({length:e.engine.local.length+1+i,from:e.engine.local,value:t,heads:[],version:0}));return!!await e.engine.dryRun(s,t)}internalGetHeads(e,t){const i=[];let s=!1;if(t)for(const o of t.engine.heads())e&&v.equals(o.key,e.key)?(s=!0,i.push({key:o.key,length:Math.max(o.length,e.length)})):i.push(o);return e&&!s&&i.push(e),i}async internalGetKeyPair(e){const t=await this.local.get("@local/writers-by-room-key",{roomKey:e});return t?t.pending?null:t.keyPair:null}async internalEnsureWriter(e,t,{rotate:i=!1,activeClock:s=0}={}){let o=null;if(!i){const i=await this.local.get("@local/writers",{mailbox:t});if(i&&i.roomKey&&v.equals(i.roomKey,e))return i;o=i}if(o)o.roomKey=e;else{const i=f.keyPair(),r=this.store.get({keyPair:i});await r.ready(),o={keyPair:i,key:r.key,mailbox:t,responseKeyPair:null,roomKey:e,pending:!0,activeClock:s},await r.close()}const r=await this.internalEnterLocalTransaction();try{await r.insert("@local/writers",o),await r.flush()}finally{await this.internalExitLocalTransaction()}return o}async internalGetMailbox(e){const t=await this.local.get("@local/rooms",{roomKey:e});if(t)return{key:t.capabilities.mailboxKeyPair.publicKey,discoveryKey:t.capabilities.wakeupTopic};const i=await this.local.get("@local/writers-by-room-key",{roomKey:e});return i?{key:i.mailbox,discoveryKey:$(i.mailbox)}:null}async internalGetEncryptionKey(e){const t=await this.local.get("@local/rooms",{roomKey:e});return!t||t.status.isRemoved?null:t.encryptionKey}getAutobeeMigrationInfo(e){return this.local.get("@local/autobee-migrations",{roomKey:e})}internalReleaseRoom(e){if(0===e.refs)throw new Error("Cannot release a room that was not previously opened");e.refs-=1}internalOpenExistingRoom(e,t={}){return this.internalOpenRoom(s.decode(e),null,t)}async internalOpenPrivateProfile({opening:e=!1}={}){e||this.onlineBoot.opened||await this.onlineBoot.ready();const t=await this.local.get("@local/identity"),i=this.internalOpenExistingRoom(t.privateProfileKey,{bigBatches:!0,priority:2});return await i.ready(),this.privateProfile&&v.equals(i.key,this.privateProfile.key)||(this.privateProfile&&this.internalReleaseRoom(this.privateProfile),this.privateProfile=this.internalOpenExistingRoom(t.privateProfileKey,{bigBatches:!0,priority:2}),this.unreadsLoading=this.internalRefreshUnreads().catch(()=>null)),this.internalLoadDiscoveryCore(),i}async internalSafeSwapPrivateProfiles(){try{const e=await this.internalOpenPrivateProfile();this.internalReleaseRoom(e)}catch(e){this.onerror(e)}}async internalFeatureSupported(e,t){const i=s.decode(e),o=await this.local.get("@local/rooms",{roomKey:i});return!!o&&this.versions.isFeatureSupported(o.digest.abi.version,t)}internalOpenRoom(e,t,{bootFrom:i,mailbox:o,keyPair:r,bigBatches:a,priority:n=1}={}){if(this.closing)throw new Error("Keet is closing");const l=s.encode(e),c=this.rooms.get(l);if(c)return c.idleTicks=0,c.refs+=1,c;const h=f.discoveryKey(e),d=this.store.namespace(h);let y=null,u=null,p=null;o||(u=this.internalGetMailbox(e),u.catch(this.onerror)),r||(y=this.internalGetKeyPair(e),y.catch(this.onerror)),t||(p=this.internalGetEncryptionKey(e),p.catch(this.onerror)),o&&(o={key:o,discoveryKey:f.discoveryKey(o)});const m={backoff:this.backoff,encryptionKey:t||p,wakeupCapability:o||u,keyPair:r||y,fastForward:!this.debug.disableFastForward&&{boot:i},ackThreshold:this.ackThreshold,ackInterval:this.ackInterval,wakeup:this.protomuxWakeup,optimistic:!0,encrypted:!0,bigBatches:!!a,priority:n},g=Te.create(this,d,l,e,h,m);return this.rooms.set(l,g),g.refs+=1,g}async updateDevice({name:e,deviceId:t}={}){this.onlineBoot.opened||await this.onlineBoot.ready();const i={swarmKey:this.swarm.keyPair.publicKey,name:e,isMobile:this.isMobile},o=await this.internalOpenPrivateProfile();try{if(t&&!v.equals(s.decode(t),o.deviceKey)){if(!await this.internalFeatureSupported(this.privateProfile.id,D.CROSS_DEVICE_RENAME))throw new Error("Renaming other devices not supported");if(!await o.dispatch("@keet/update-device",{key:s.decode(t),profile:{name:e}}))throw pe.UPDATE_DEVICE_FAILED("Failed to update device",{deviceId:t})}else await o.dispatch("@keet/update-device",{profile:i})}finally{this.internalReleaseRoom(o)}}async internalUpdateProfile(e,{forceUpdateRegistry:t=!1,opening:i=!1}={}){const s=await this.internalGetIdentityInfo({opening:i});if(this.closing)return;if(this._rejectAnonymousProfiles&&!e.displayName&&!t)throw new Error("A member must have a profile name");const o=this.internalCreateMemberUpdate(s,{profile:e}),r=await this.internalOpenPrivateProfile({opening:i});if(this.closing)return;let a=null;try{a=await r.dispatch("@keet/update-member",{member:o})}finally{this.internalReleaseRoom(r)}(a||t)&&o.profile.username&&this.userRegistry?.internalUpdateRegistryMember(o)}async updateProfile(e={}){return this.onlineBoot.opened||await this.onlineBoot.ready(),this.internalUpdateProfile(e)}async internalVerifyOptimisticCore(e){return!await e.getUserData("referrer")}async internalAppendOptimisticOperation(e,t){const i=this.store.get({key:e,exclusive:!0});await i.ready();try{if(!await this.internalVerifyOptimisticCore(i))return!1;if(0!==i.length)return!1;const{length:e}=await i.append(t,{maxLength:1});return 1===e}finally{await i.close()}}async internalCreateRoom(e={}){const t=e.seed||f.randomBytes(32),i=e.keyPair||f.keyPair(),s=e.encryptionKey||f.randomBytes(32),o=F(i.publicKey),r=f.discoveryKey(o),a=j(o,t),n=a.mailboxKeyPair.publicKey,l=await this.internalEnterLocalTransaction();try{await l.insert("@local/writers",{mailbox:n,keyPair:i,key:o,roomKey:o}),await l.flush()}finally{await this.internalExitLocalTransaction()}const c={header:{timestamp:Date.now()},digest:{abi:{version:this.isExperimental?this.abi.production:this.abi.autoupgrade},creationTime:Date.now(),settings:{roomType:1,...e.settings,isExperimental:this.isExperimental,buildType:this.buildType}},capabilities:{seed:t},config:e.config,identity:e.identity,initialMembers:e.initialMembers,bootstrapDevice:e.bootstrapDevice},h=this.tasks.createRoom(r,{roomKey:o,encryptionKey:s,mailbox:n,keyPair:i,genesis:c,isPrivateProfile:!!e.isPrivateProfile});return await h.run(),this.discovery&&this.discovery.subscribe(a.discoveryKeyPair.publicKey,{since:Date.now()}),this.swarmWorker.refresh().catch(Se),this.internalOpenExistingRoom(o)}async createRoom(e){this.opened||await this.ready();const t=await this.internalCreateRoom(e);return this.internalReleaseRoom(t),t.key}async leaveRoom(e){this.onlineBoot.opened||await this.onlineBoot.ready();const t=await this.local.get("@local/identity"),i=this.internalOpenExistingRoom(e);await i.ready();try{await i.dispatch("@keet/remove-member",{key:t.publicKey})}catch(e){this.onerror(e)}finally{this.internalReleaseRoom(i)}await this.privateProfile.dispatch("@keet-private-id/update-room-status",{roomKey:e,key:Q.IsActive,status:{isActive:!1}})}async activateRoom(e){if(this.closing)return;const t=await this.local.get("@local/rooms",{roomKey:e});if(!t||this.closing)return;const i=this.internalOpenExistingRoom(e);this.activeRooms.has(i)?this.internalReleaseRoom(i):(this.activeRooms.add(i),this.swarmWorker.startActiveSwarming(t.capabilities.swarmTopic),await i.ready())}async deactivateRoom(e){const t=this.internalOpenExistingRoom(e);if(!this.activeRooms.has(t))return void this.internalReleaseRoom(t);const i=await this.local.get("@local/rooms",{roomKey:e});this.activeRooms.delete(t),this.swarmWorker.stopActiveSwarming(i.capabilities.swarmTopic),this.internalReleaseRoom(t),this.internalReleaseRoom(t)}async internalGetIdentityInfo({opening:e=!1}={}){e||this.onlineBoot.opened||await this.onlineBoot.ready();const t=await this.local.get("@local/identity");if(!t)throw new Error("Identity does not exist");const i=await this.local.get("@local/rooms",{roomKey:t.privateProfileKey});if(!i)throw new Error("Private profile does not exist");return{identity:t,privateProfile:i}}internalGetMemberUpdate(e,{profile:t}={}){const i=e.privateProfile;return i?.selfMember?i.selfMember.proofs?{profile:i.selfMember.profile,attestation:{memberKey:i.selfMember.key,proof:i.selfMember.proofs.profileAttestation}}:this.internalCreateMemberUpdate(e):null}internalAttestData(t,i){return e.attestData(t,i.deviceKeyPair,i.deviceProof)}internalCreateDeviceUpdate(e,t,{isPrivateProfile:i=!1,buildType:s=null}={}){const o=e.identity;let r=null;e.privateProfile?.selfDevice&&i&&(r=e.privateProfile.selfDevice.profile.name);const a=e.privateProfile?.digest.settings.buildType,n=ce.Production===a;return{profile:{swarmKey:this.swarm.keyPair.publicKey,name:r,isMobile:this.isMobile,buildType:n&&null===s?null:a},attestation:{memberKey:o.publicKey,proof:this.internalAttestData(t,o)}}}internalCreateMemberUpdate(t,{profile:i}={}){const s=t.privateProfile?.selfMember?.profile||null,o=t.privateProfile?.capabilities.mailboxKeyPair.publicKey||i.mailbox,r=t.identity,a={...s,...i,mailbox:o,timestamp:Date.now()},n=oe("@keet/member-profile",a);return{profile:a,attestation:{memberKey:r.publicKey,proof:e.attestData(n,r.deviceKeyPair,r.deviceProof)}}}internalGetLinkInfo(e){try{return this.internalDecodeInvitation(e)}catch{}try{return this.internalDecodeContactInfo(e)}catch{}return null}internalDecodeInvitation(e){try{const t="string"==typeof e?b.decode(e):e;return re("@keet/sendable-invitation",t)}catch{throw pe.INVALID_INVITE(`Invalid invite: ${e}`)}}internalDecodeContactInfo(e){try{const t=v.isBuffer(e)?e:v.from(e,"base64");return re("@keet/member-contact-info",t)}catch{throw pe.INVALID_CONTACT_INFO(`Invalid contact info: ${e}`)}}internalEncodeContactInfo(e){return oe("@keet/member-contact-info",e)}internalCreateContactInfoStruct(t,i,s={}){const o={...i.selfMember.profile,...s},r=oe("@keet/member-profile",o),a={profile:o,attestation:{memberKey:i.selfMember.key,proof:e.attestData(r,t.deviceKeyPair,t.deviceProof)}};return this.internalEncodeContactInfo(a)}async wakeup(){this.state=ve.WAKEUP,this.internalVerboseLog("[Keet Core]","await .ready"),this.opened||await this.ready();const e=[this.resume(),this.swarmWorker.background()];this.internalVerboseLog("[Keet Core]","await all promise"),await Promise.allSettled(e),this.internalVerboseLog("[Keet Core]","promise settled")}async presuspend(){this.state=ve.PRESUSPEND;const e=Date.now();this.opened||await this.ready(),this.swarmWorker.setServerMode(!1),this.internalVerboseLog("[Keet Core]",`presuspend done elapsed=${Date.now()-e}ms`)}async suspend(){if(this.internalVerboseLog("[Keet Core]","suspend called"),this.state===ve.SUSPEND)return;this.state=ve.SUSPEND,this.opened||await this.ready(),this.internalVerboseLog("[Keet Core]","suspend post ready");const e=Date.now(),t=(t,i)=>i.finally(()=>{this.internalVerboseLog("[Keet Core]",`suspend settled ${t} elapsed=${Date.now()-e}ms`)}),i=[t("dhtCache",this._flushDHTCache())];this.blindPeering&&(this.internalVerboseLog("[Keet Core]","suspend adding blind peering"),i.push(t("blindPeering",this.blindPeering.suspend()))),this.push&&(this.internalVerboseLog("[Keet Core]","suspend push"),i.push(t("push",this.push.suspend()))),this.discovery&&(this.internalVerboseLog("[Keet Core]","suspend discovery"),i.push(t("discovery",this.discovery.suspend()))),await Promise.allSettled(i),this.internalVerboseLog("[Keet Core]","all done"),await this.rpcClient.suspend(),this.internalVerboseLog("[Keet Core]","rpc suspended"),this.activeCall&&await this.activeCall.suspend(),this.internalVerboseLog("[Keet Core]","active call suspend");const s=this.swarm.connections.size;this.internalVerboseLog("[Keet Core]",`suspending swarm connections=${s}`);const o=Date.now();await this.swarm.suspend(),this.internalVerboseLog("[Keet Core]","swarm suspend"),this.internalVerboseLog("[Keet Core]",`swarm suspended elapsed=${Date.now()-o}ms connections=${this.swarm.connections.size}`),await this.files.server.suspend(),this.internalVerboseLog("[Keet Core]","files suspend"),await this.store.suspend({log:this.internalVerboseLog.bind(this)}),this.internalVerboseLog("[Keet Core]","store suspended, all done")}async resume(){if(this.internalVerboseLog("[Keet Core]","resume called"),this.state===ve.RESUME)return;this.state=ve.RESUME,this.internalVerboseLog("[Keet Core]","await this.ready"),this.opened||await this.ready(),this.internalVerboseLog("[Keet Core]","resume store"),await this.store.resume(),this.internalVerboseLog("[Keet Core]","resume file server"),await this.files.server.resume(),this.internalVerboseLog("[Keet Core]","resume swarm"),this.readOnly||await this.swarm.resume(),this.internalVerboseLog("[Keet Core]","resume active call"),this.activeCall&&!this.readOnly&&await this.activeCall.resume(),this.internalVerboseLog("[Keet Core]","resume rpc client"),await this.rpcClient.resume();const e=[];this.blindPeering&&!this.readOnly&&e.push(this.blindPeering.resume()),this.push&&e.push(this.push.resume()),this.discovery&&e.push(this.discovery.resume()),this.swarmWorker.setServerMode(!0),e.push(this.swarmWorker.unbackground()),this.internalVerboseLog("[Keet Core]","await all promises"),await Promise.allSettled(e),this.internalVerboseLog("[Keet Core]","all promises settled")}async _createInvitation(e,t){let{expiration:i=0,canAdmin:s=!1,canModerate:o=!1,identityPublicKey:r=null,requiresConfirmation:a=!1,readOnly:n=!1}=t;if("string"==typeof i)if("2h"===i)i=Date.now()+72e5;else if("2d"===i)i=Date.now()+1728e5;else{if("2w"!==i)throw pe.UNKNOWN_EXPIRATION(`Unknown expiration: ${i}`,{roomKey:e.key});i=Date.now()+12096e5}await e.ready();const[{seed:l},c,h]=await Promise.all([e.db.get("@keet/room-capabilities"),z(e.db,e.deviceKey),e.db.get("@keet/system-digest")]);if((o||s)&&!c?.status.isModerator)throw pe.MODERATORS_ONLY("Only moderators can create moderator invitations",{roomKey:e.key});const d=j(e.key,l),y=this.swarm.dht.toArray({limit:3}),u=await e.internalGetBootFrom();if(n)return oe("@keet/sendable-invitation",{"readonly-v2":{roomKey:e.key,encryptionKey:e.encryptionKey,seed:l,bootFrom:u},additionalNodes:y});const p={key:e.key,encryptionKey:e.encryptionKey,bootFrom:u},{invitation:m,seed:g}=H(p,{requiresConfirmation:a,expiration:i,canModerate:o,canAdmin:s});await e.dispatch("@keet/add-invitation",{invitation:m});const w=(await e.db.get("@keet/invitations",{id:m.id})).anchor,f=d.mailboxKeyPair.publicKey,b={identity:null,room:null,contact:null,additionalNodes:y,buildType:h.settings.buildType};return r?b.identity={mailbox:f,invitationSeed:g,anchor:w,identityPublicKey:r}:b.room={mailbox:f,invitationSeed:g,anchor:w},oe("@keet/sendable-invitation",b)}async createRoomInvitation(e,t={}){this.opened||await this.ready();const i=s.decode(e),o=this.internalOpenExistingRoom(i);try{const e=await this._createInvitation(o,t);return b.encode(e)}finally{this.internalReleaseRoom(o)}}async createIdentityInvitation(){this.onlineBoot.opened||await this.onlineBoot.ready();const e=await this.local.get("@local/identity"),t=this.internalOpenExistingRoom(e.privateProfileKey);this.blindPeering.addAutobaseBackground(t.engine.auto,{priority:2});try{const i=await this._createInvitation(t,{expiration:"2h",canAdmin:!0,canModerate:!0,requiresConfirmation:!0,identityPublicKey:e.publicKey});return b.encode(i)}finally{this.internalReleaseRoom(t)}}async _startPairing(e,{deviceKeyPair:t,buildType:i=null}={}){this.onlineBoot.opened||await this.onlineBoot.ready();const o=W(e.invitationSeed),r=e.invitationSeed,a=e.mailbox,n=e.anchor,l={key:null,seedId:s.encode(r)},c=await this.local.get("@local/rooms-by-mailbox",{capabilities:{mailboxKeyPair:{publicKey:a}}});let h=null;if(c){if(c.selfMember?.status.isRemoved)throw new Error("Removed member cannot rejoin");h=await this.local.get("@local/room-preferences",{roomKey:c.roomKey})}if(c?.status.isWritable&&h&&h.status.isActive&&!h.status.isReadOnly)return l.key=s.encode(c.roomKey),l;const d=f.keyPair(),y=await this.store.createKeyPair(J(d.publicKey)),u=this.store.get({keyPair:y,active:!1});await u.ready();const p={key:u.key,length:1};await u.close();let m=null;t&&(m={writerKey:u.key,publicKey:e.identityPublicKey,devicePublicKey:t.publicKey});const g={id:o,mailbox:a,inviter:n,identity:m,initiator:p,responseKeyPair:d,invitationSeed:r,buildType:i},w=await this.privateProfile.db.find("@keet-private-id/pending-invitations").toArray();for(const e of w)v.equals(e.mailbox,g.mailbox)&&await this.privateProfile.dispatch("@keet-private-id/remove-pending-invitation",e);return await this.privateProfile.dispatch("@keet-private-id/add-pending-invitation",{invitation:g}),l}async _openReadOnlyRoom({roomKey:e,encryptionKey:t,seed:i,fastForwardTo:o,bootFrom:r}){this.onlineBoot.opened||await this.onlineBoot.ready();const{mailboxKeyPair:a,swarmTopic:n}=j(e,i);!r&&o&&(r={key:o,length:0}),await this.internalEnsureWriter(e,a.publicKey);const l=this.internalOpenRoom(e,t,{mailbox:a.publicKey,bootFrom:U.getBootOption(r,o)});return this.swarmWorker.startDiscoverySwarming(n,{roomId:s.encode(e)}),await l.ready(),await this.privateProfile.dispatch("@keet-private-id/add-room-v2",{roomKey:e,encryptionKey:t,mailbox:a.publicKey,bootFrom:r,isReadOnly:!0}),{key:s.encode(e),seedId:s.encode(i)}}async startPairingRoom(e,t){this.onlineBoot.opened||await this.onlineBoot.ready();const i=this.internalDecodeInvitation(e),s=await this.local.get("@local/rooms",{roomKey:this.privateProfile.key}),o=i.buildType,r=s.digest.settings.buildType||ce.Production;if(o&&o!==r)throw pe.INVALID_BUILD_TYPE();const a=i.readonly||i["readonly-v2"];if(a)return this._openReadOnlyRoom(a);if(!i.room)throw pe.INVALID_INVITATION_TYPE("Invalid room invitation");return this._startPairing(i.room,{...t,buildType:o})}async startPairingIdentity(e){this.onlineBoot.opened||await this.onlineBoot.ready();const t=this.internalDecodeInvitation(e),i=await this.local.get("@local/rooms",{roomKey:this.privateProfile.key}),s=t.buildType,o=i.digest.settings.buildType||ce.Production;if(s&&s!==o)throw pe.INVALID_BUILD_TYPE();if(!t.identity)throw pe.INVALID_INVITATION_TYPE("Invalid device sync invitation");const r=G(t.identity.identityPublicKey),a=await this.store.createKeyPair(r);return this._startPairing(t.identity,{deviceKeyPair:a,buildType:s})}async stopPairing(e){this.opened||await this.ready();const t=await this.internalOpenPrivateProfile();try{if(!await t.db.get("@keet-private-id/pending-invitations",{id:e}))return;await t.dispatch("@keet-private-id/remove-pending-invitation",{id:e})}finally{this.internalReleaseRoom(t)}}async rotateWriter(e){this.onlineBoot.opened||await this.onlineBoot.ready();const[t,i,s]=await Promise.all([this.local.get("@local/writers-by-room-key",{roomKey:e}),this.local.get("@local/rooms",{roomKey:e}),this.privateProfile.db.get("@keet-private-id/rooms",{roomKey:e})]);i&&t&&s&&(await this.internalEnsureWriter(e,s.mailbox,{rotate:!0,activeClock:s.activeClock}),this.tasks.joinRoomKeys(s.mailbox,{keys:s,activeClock:s.activeClock,isReadOnly:s.status.isReadOnly}).runBackground())}async getRecoveryPhrase(){this.onlineBoot.opened||await this.onlineBoot.ready();const e=(await this.local.get("@local/identity")).entropy;return e?E({entropy:e}):null}async getRecoveryEntropy(){return this.onlineBoot.opened||await this.onlineBoot.ready(),(await this.local.get("@local/identity")).entropy||null}async getEncryptedRecoveryPhrase(e){if("string"!=typeof e)throw new Error("Password required");if(0===e.length)throw new Error("Password should not be empty");const t=await this.getRecoveryEntropy();if(!t)throw new Error("Recovery phrase reading failed");if(0===t.length)throw new Error("Recovery phrase reading failed");return B.encryptEntropy(t,e)}decryptEncryptedRecoveryPhrase(e,t){if(!ArrayBuffer.isView(e))throw new Error("Encrypted phrase should be an ArrayBuffer view");if(0===e.byteLength)throw new Error("Encrypted phrase should not be empty");if("string"!=typeof t)throw new Error("Password required");if(0===t.length)throw new Error("Password should not be empty");const i=B.decryptEntropy(e,t),s=E({entropy:i});return B.free(i),s}freeRecoveryPhrase(e){B.free(e)}async storeRecoveryPhrase(t){this.onlineBoot.opened||await this.onlineBoot.ready();const i=await e.from({mnemonic:t}),s=await this.local.get("@local/identity"),o=await this.local.get("@local/rooms",{roomKey:s.privateProfileKey});if(!v.equals(s.publicKey,i.identityPublicKey))throw new Error("Wrong recovery phrase");if(!o.identity.discoveryCoreKey){if(await this.internalCreateDiscoveryCore(i),this.discoveryCore.length>0){const e=Math.floor((Date.now()-1711547109544)/1e3);await this.discoveryCore.truncate(this.discoveryCore.length,e)}await this.discoveryCore.append({version:1,timestamp:Date.now(),key:o.roomKey,mailbox:o.capabilities.mailboxKeyPair.publicKey}),await this.privateProfile.dispatch("@keet-private-id/update-identity",{identity:{publicKey:i.identityPublicKey,discoveryCoreKey:this.discoveryCore.key}})}}async confirmRecoveryPhrase({persist:e=!1}={}){this.onlineBoot.opened||await this.onlineBoot.ready();const t=await this.internalEnterLocalTransaction();try{const i=await t.get("@local/identity");e||(i.entropy=null),i.status.isConfirmed=!0,await t.insert("@local/identity",i),await t.flush()}finally{await this.internalExitLocalTransaction()}this.emit("identity-changed")}async restoreIdentity(t,{create:i=!0}={}){this.onlineBoot.opened||await this.onlineBoot.ready();const[s]=await Promise.all([this.local.get("@local/identity"),e.from({mnemonic:t})]),o=f.discoveryKey(s.privateProfileKey),r=this.tasks.restoreIdentity(o,{mnemonic:t,recover:!1===i,profileDiscoveryTimeout:this._profileDiscoveryTimeout,buildType:this.buildType});await r.run();const a=await this.local.get("@local/identity"),n=await this.local.get("@local/rooms",{roomKey:a.privateProfileKey});this.privateProfile=await this.internalOpenPrivateProfile(),this.swarmWorker.startActiveSwarming(n.capabilities.swarmTopic)}async acceptJoinRequest(e,t){this.onlineBoot.opened||await this.onlineBoot.ready();const i=this.internalOpenExistingRoom(e);try{const s=await i.db.get("@keet/join-requests",{deviceKey:t});if(!s)return;const o=s.request;let r=null;if(o.identity){const i=await this.local.get("@local/identity");if(!v.equals(i.privateProfileKey,e))throw new Error("Accepting an identity device join request on a room that is not your private profile");r=Le(i,t,o.identity.devicePublicKey)}await i.dispatch("@keet/accept-join-request",{deviceKey:t,identity:r})}finally{this.internalReleaseRoom(i)}}async rejectJoinRequest(e,t){this.opened||await this.ready();const i=this.internalOpenExistingRoom(e);try{if(!await i.db.get("@keet/join-requests",{deviceKey:t}))throw new Error("Join request for that device key does not exist");await i.dispatch("@keet/reject-join-request",{deviceKey:t})}finally{this.internalReleaseRoom(i)}}async _sendContactRequest(e){this.onlineBoot.opened||await this.onlineBoot.ready();const t=await this.internalOpenPrivateProfile();try{this.tasks.sendContactRequest(e.memberKey,e).runBackground()}finally{this.internalReleaseRoom(t)}}async sendContactRequestFromContact(e,{message:t}){const i=(e=this.internalDecodeContactInfo(e)).attestation.memberKey,s=e.attestation.memberKey;return this._sendContactRequest({roomKey:i,memberKey:s,message:t,contactInfo:e})}async sendContactRequest(e,t,{message:i}){return this._sendContactRequest({roomKey:e,memberKey:t,message:i})}async addContact(t,i,{alias:s}={}){if(this.onlineBoot.opened||await this.onlineBoot.ready(),!i)throw pe.INVALID_CONTACT_INFO();if(!await this.internalFeatureSupported(this.privateProfile.id,D.CONTACT_BOOK))throw new Error("Adding contacts not supported");const o=await this.internalFeatureSupported(this.privateProfile.id,D.CONTACT_ALIAS);if(s&&!o)throw new Error("Adding contact alias not supported");try{const{profile:o,attestation:r}=this.internalDecodeContactInfo(i),a=oe("@keet/member-profile",o),n=e.verify(r.proof,a,{expectedIdentity:t});if(!n?.receipt)throw pe.INVALID_CONTACT_INFO();const l={memberKey:t,mailbox:o.mailbox,status:{isActive:!0,isBlocked:!1},contactInfo:{profile:o,attestation:r}};s&&(l.alias=s),await this.privateProfile.dispatch("@keet-private-id/add-contact",{contact:l})}catch(e){this.onerror(e)}}async setContactAlias(e,t){if(this.onlineBoot.opened||await this.onlineBoot.ready(),!await this.internalFeatureSupported(this.privateProfile.id,D.CONTACT_ALIAS))throw new Error("Setting contact alias not supported");await this.privateProfile.dispatch("@keet-private-id/update-contact-alias",{memberKey:e,alias:t})}async removeContact(e){if(this.onlineBoot.opened||await this.onlineBoot.ready(),!await this.internalFeatureSupported(this.privateProfile.id,D.CONTACT_BOOK))throw new Error("Removing contacts not supported");const t=await this.privateProfile.db.get("@keet-private-id/contacts",{memberKey:e});t&&await this.privateProfile.dispatch("@keet-private-id/add-contact",{contact:{memberKey:e,mailbox:t.mailbox,status:{...t.status,isActive:!1},contactInfo:t.contactInfo}})}async blockContact(e){this.onlineBoot.opened||await this.onlineBoot.ready();const[t,i,s]=await Promise.all([this.privateProfile.db.findOne("@keet-private-id/contact-requests-by-member",{gte:{memberKey:e},lte:{memberKey:e}}),this.privateProfile.db.get("@keet-private-id/contacts",{memberKey:e}),this.local.get("@local/members",{key:e})]),o=i?.mailbox||s?.profile.mailbox||t?.sender?.mailbox;if(!o)throw new Error("Cannot find contact");const r={memberKey:e,mailbox:o,status:{...i?.status,isBlocked:!0}};await this.internalFeatureSupported(this.privateProfile.id,D.CONTACT_BOOK)&&(r.contactInfo=i?.contactInfo),await this.privateProfile.dispatch("@keet-private-id/add-contact",{contact:r})}async unblockContact(e){this.onlineBoot.opened||await this.onlineBoot.ready();const[t,i,s]=await Promise.all([this.privateProfile.db.findOne("@keet-private-id/contact-requests-by-member",{gte:{memberKey:e},lte:{memberKey:e}}),this.privateProfile.db.get("@keet-private-id/contacts",{memberKey:e}),this.local.get("@local/members",{key:e})]),o=i?.mailbox||s?.profile.mailbox||t?.sender?.mailbox;if(!o)throw new Error("Cannot find contact");const r={memberKey:e,mailbox:o,status:{...i?.status,isBlocked:!1}};await this.internalFeatureSupported(this.privateProfile.id,D.CONTACT_BOOK)&&(r.contactInfo=i?.contactInfo),await this.privateProfile.dispatch("@keet-private-id/add-contact",{contact:r})}async _flushDHTCache(){if(this.readOnly)return;const e=this.swarm.dht.toArray({limit:64});try{await this._setCachedDHTNodes(e)}catch(e){this.onerror(e)}}async getDHTSettings(){const e=await this.local.get("@local/hyperdht")||{};return{nodes:e.nodes||[],concurrency:e.concurrency||Z.concurrency,maxWindow:e.maxWindow||Z.maxWindow,randomPunchInterval:e.randomPunchInterval||Z.randomPunchInterval,connectionKeepAlive:e.connectionKeepAlive||Z.connectionKeepAlive}}async getSwarmSettings(){return{maxPeers:(await this.local.get("@local/hyperswarm")||{}).maxPeers||ee.maxPeers}}async _setCachedDHTNodes(e){const t=await this.internalEnterLocalTransaction();try{const i={...await this.getDHTSettings(),nodes:e};await t.insert("@local/hyperdht",i),await t.flush()}finally{await this.internalExitLocalTransaction()}}batch(e){return new Re(this,e)}async dispatch(e,t,i){this.opened||await this.ready();const s=this.internalOpenExistingRoom(e);try{return await s.dispatch(t,i)}catch(e){this.onerror(e)}finally{this.internalReleaseRoom(s)}}async dispatchBatch(e,t){this.opened||await this.ready();const i=this.internalOpenExistingRoom(e);try{await i.dispatchBatch(t)}finally{this.internalReleaseRoom(i)}}async selfDestruct({confirm:e}={}){if("do not go gentle into that good night"!==e)throw new Error("Must confirm self destruction");await this.ready(),await this.close();const t=Math.random().toString(16).slice(2),i=K.join(this.dir,"gc",t);try{await P.promises.mkdir(i,{recursive:!0})}catch{}for(const e of["cores","db","cache","app-references"])try{await P.promises.rename(K.join(this.dir,e),K.join(i,e))}catch{}await P.promises.rm(i,{recursive:!0})}_handleError(e,t={}){const i=this.errorManager.normalize(e,t);this.errorManager.add(i),this.logger.error(i),this._onerror(i)}static from(e,t){const i=C.migrate(e),s=i.active()||i.create({name:"default"});i.gc({delay:ke});const o=new this(s.storage,{...t,logout:async()=>{i.remove(s),await new Promise(e=>setTimeout(e,1e3)),await o.close(),i.gc({delay:ke})}});return{profiles:i,keet:o}}static registerRPC(e,t,i){return new x(e,t,i)}};
@holepunchto/keet-core/lib/api/v1/calls/active-call.js +0 -1
……@@ -1 +0,0 @@
1const e=require("hypercore-id-encoding");module.exports=class{constructor(i,{call:t,prev:n,deviceKey:o,debug:h}){this.call=t,this.isOldEngine=1===t?.version||1===n?.version,this.connections=this.isOldEngine?new s(i,n,h):null,this.deviceId=o?e.encode(o):null}get joined(){return this.connections?this.connections.joined:new Set}get callId(){return this.call?this.call.callId:null}get version(){return this.call?this.call.version:0}get ended(){return!this.call||!this.deviceId}_close(){this.connections&&this.connections.close()}refresh(){if(this.connections){if(this.ended)return this._close();for(const e of this.call.members)for(const s of e.devices)this.connections.shouldJoin(s.swarmId);this.connections.refresh()}}};class s{constructor(e,s,i){this.swarm=e,this.debug=i,this._prevJoined=s?s.joined:new Set,this.joined=new Set(this._prevJoined),this._shouldJoin=new Set,this._shouldLeave=new Set(this._prevJoined)}get swarmId(){return e.encode(this.swarmKey)}get swarmKey(){return this.swarm.keyPair.publicKey}shouldJoin(e){e!==this.swarmId&&(this._shouldJoin.add(e),this._shouldLeave.delete(e))}refresh(){this._joinPeers(),this._leavePeers()}close(){this._leavePeers()}_joinPeers(){for(const s of this._shouldJoin)this._prevJoined.has(s)||(this.swarm.joinPeer(e.decode(s)),this.joined.add(s),this.debug.joinPeer&&this.debug.joinPeer(s));this._shouldJoin=new Set}_leavePeers(){for(const s of this._shouldLeave)this.swarm.leavePeer(e.decode(s)),this.joined.delete(s),this.debug.leavePeer&&this.debug.leavePeer(s);this._shouldLeave=new Set}}
@holepunchto/keet-core/lib/api/v1/calls/heartbeat-manager.js +0 -1
……@@ -1 +0,0 @@
1const e=require("hypercore-id-encoding"),{FEATURES:t}=require("../../../../schema/versions");module.exports=class{constructor(e,t={}){this.keet=e,this.opts={heartbeatInterval:3e5,ghostThreshold:66e4,ghostCheckInterval:65e3,ghostJitterMax:1e4,paused:!1,...t},this.heartbeats=new Map}clear(){for(const e of this.heartbeats.values())e.stop();this.heartbeats.clear()}start(e,t={}){const{callRecord:i,callDevice:h}=t,a=this.heartbeats.get(e);if(a)return a.refresh(i,h);const r=new s(this.keet,e,{...this.opts,...t});this.heartbeats.set(e,r),r.start()}stop(e){const t=this.heartbeats.get(e);t&&(t.stop(),this.heartbeats.delete(e))}pause(e){const t=this.heartbeats.get(e);t&&t.pause()}resume(e){const t=this.heartbeats.get(e);t&&t.resume()}};class s{constructor(t,s,i={}){this.keet=t,this.roomId=s,this.roomKey=e.decode(s),this._heartbeatInterval=i.heartbeatInterval,this._ghostThreshold=i.ghostThreshold,this._ghostCheckInterval=i.ghostCheckInterval,this._ghostJitterMax=i.ghostJitterMax,this._paused=!0===i.paused,this._heartbeatTimer=null,this._ghostTimer=null,this._heartbeatPromise=null,this._pendingRemovals=new Set,this._ghostRemovalTimers=new Map;const{callRecord:h,callDevice:a}=i;this.refresh(h,a)}pause(){this._paused=!0}resume(){this._paused=!1}refresh(e,t){this.members=new Map,this.devices=new Map,this.deviceId=null,this.selfDevice=null,this.callRecord=e,this.callDevice=t,this._init()}_init(){if(this.callRecord){this.deviceId=this.callDevice?e.encode(this.callDevice.deviceKey):null;for(const e of this.callRecord.members){this.members.set(e.memberId,e);for(const t of e.devices)this.devices.set(t.deviceId,t),this.deviceId===t.deviceId&&(this.selfDevice=t)}}}start(){this._heartbeatTimer=setInterval(()=>this._sendHeartbeat(),this._heartbeatInterval),this._checkGhosts(),this._ghostTimer=setInterval(()=>this._checkGhosts(),this._ghostCheckInterval)}stop(){clearInterval(this._heartbeatTimer),clearInterval(this._ghostTimer);for(const e of this._ghostRemovalTimers.values())clearTimeout(e);this._heartbeatPromise=null,this._heartbeatTimer=null,this._ghostTimer=null,this._pendingRemovals.clear(),this._ghostRemovalTimers.clear()}_sendHeartbeat(){if(this.selfDevice&&this.callRecord&&!this._paused)return this._heartbeatPromise||(this._heartbeatPromise=this._dispatchHeartbeat()),this._heartbeatPromise}async _dispatchHeartbeat(){try{if(this.keet.closing)return;if(!await this._isFeatureSupported())return;if(this.keet.closing)return;await this.keet.dispatch(this.roomId,"@keet/call-device-heartbeat",{callKey:e.decode(this.callRecord.callId)})}finally{this._heartbeatPromise=null}}_checkGhosts(){if(!this.callRecord||this._paused)return;const e=Date.now();for(const t of this.devices.values())t.deviceId!==this.deviceId&&(this._pendingRemovals.has(t.deviceId)||0!==t.lastHeartbeatAt&&e-t.lastHeartbeatAt>this._ghostThreshold&&this._scheduleGhostRemoval(t))}_scheduleGhostRemoval(e){this._pendingRemovals.add(e.deviceId);const t=this._ghostRemovalTimers.get(e.deviceId);t&&clearTimeout(t);const s=Math.floor(Math.random()*this._ghostJitterMax),i=setTimeout(()=>this._attemptGhostRemoval(e),s);this._ghostRemovalTimers.set(e.deviceId,i)}async _attemptGhostRemoval(t){try{if(!this.callRecord)return;const s=this.devices.get(t.deviceId);if(!s||Date.now()-s.lastHeartbeatAt<=this._ghostThreshold)return;if(!await this._isFeatureSupported())return;if(this.keet.closing)return;await this.keet.dispatch(this.roomId,"@keet/remove-call-device",{callKey:e.decode(this.callRecord.callId),deviceKey:e.decode(t.deviceId)})}finally{this._pendingRemovals.delete(t.deviceId),this._ghostRemovalTimers.delete(t.deviceId)}}async _isFeatureSupported(){return await this.keet.internalFeatureSupported(this.roomId,t.CALLS_HEARTBEAT)}}
@holepunchto/keet-core/lib/api/v1/calls/index.js +0 -1
……@@ -1 +0,0 @@
1const e=require("./active-call"),a=require("./heartbeat-manager");module.exports={ActiveCall:e,CallHeartbeatManager:a};
@holepunchto/keet-core/lib/api/v1/decode.js +1 -1
……@@ -1 +1 @@
1const e=require("hypercore-id-encoding"),t=require("b4a");function n({start:e,length:t,content:n,preview:r}){return r?.file&&(r.file=l(r.file)),{range:{start:e,length:t},url:n,preview:r}}function r(t){if(!t)return null;const{id:n,key:r,blob:i}=t;return{id:n,key:n?e.decode(n):r,blob:i}}function i(t){if(!t)return null;const{id:n,key:r,path:i,version:l,size:a}=t;return{id:n,key:n?e.decode(n):r,path:i,version:l,size:a}}function l(e){return e&&(e.pointer||e.preview)?(e.metadata?.userdata&&(e.metadata.userdata=t.from(e.metadata.userdata,"base64")),{...e,pointer:(n=e.pointer,n?{...n,inlined:n.inlined?t.from(n.inlined,"base64"):null,externalBlob:r(n.externalBlob),externalDrive:i(n.externalDrive)}:{}),preview:a(e.preview)}):null;var n}function a(e){return e?{small:l(e.small),medium:l(e.medium),large:l(e.large)}:null}function d(t){return{key:e.decode(t.deviceId),seq:t.seq}}function o(t){return t&&Array.isArray(t)?t.map(t=>({publicKey:e.decode(t.publicKey),blindingKey:e.decode(t.blindingKey)})):[]}module.exports={decodeContactInfo:function({memberId:t,blindWriters:n,displayName:r,avatar:i}){return{memberKey:e.decode(t),blindWriters:o(n),displayName:r,avatar:a(i)}},decodeChatRangeOptions:function(e,t){const n={...t},r=n.prefix||0;return Number.isInteger(n.gt)&&(n.gt={id:{thread:r,index:t.gt}}),Number.isInteger(n.gte)&&(n.gte={id:{thread:r,index:t.gte}}),Number.isInteger(n.lt)&&(n.lt={id:{thread:r,index:t.lt}}),Number.isInteger(n.lte)&&(n.lte={id:{thread:r,index:t.lte}}),n.gt||n.gte||(n.gte={id:{thread:r}}),n.lt||n.lte||(n.lte={id:{thread:r}}),n},decodeKeyRangeOptions:function({gt:t,gte:n,lt:r,lte:i,limit:l,reverse:a}={}){return{limit:l,reverse:a,gt:t?{key:e.decode(t)}:null,gte:n?{key:e.decode(n)}:null,lt:r?{key:e.decode(r)}:null,lte:i?{key:e.decode(i)}:null}},decodeChatMessage:function(t,r){const i=r.mentions?.map(t=>({range:{start:t.start,length:t.length},memberKey:e.decode(t.memberId)}))||null,a=r.translations?.map(e=>({range:{start:e.start,length:e.length},language:e.language,text:e.text}))||null,o={httpLink:r?.httpLinks?.map(n),pearLink:r?.pearLinks?.map(n),mention:i,translation:a,bold:r.bold||[],italic:r.italic||[],code:r.code||[],emoji:r?.emoji?.map(({start:e,length:t,content:n})=>({range:{start:e,length:t},content:n})),codeBlock:r.codeBlock||[],strike:r.strike||[]},s={callStarted:!0===r?.callStarted,callHangup:!0===r?.callHangup,callMissed:!0===r?.callMissed,locationShared:r?.locationShared};let c=null;r.replyTo&&(c=d(r.replyTo));const u=!0===r.forwarded,g=[];for(const e of r?.files||[]){const t=l(e);t&&g.push(t)}return{text:t,replyTo:c,forwarded:u,display:o,files:g,event:s}},decodeImageFile:a,decodeFile:l,decodeMessageId:d,decodeConfig:function(t){return t?{...t,avatar:a(t.avatar),blindPeers:(n=t.blindPeers,n&&Array.isArray(n)?n.map(t=>e.decode(t)):[])}:null;var n},decodeUserSettings:function(e){return e?{disableReadReceipts:!0===e.disableReadReceipts,stripAttachmentMetadata:!0===e.stripAttachmentMetadata,profileSnoozeTime:e.profileSnoozeTime}:null},decodeFileRangeOptions:function({reverse:e=!0,limit:t=50,gt:n,gte:r,lt:i,lte:l,type:a}={reverse:!0,limit:50}){const d={reverse:e,limit:t};return Number.isInteger(n)&&(d.gt=a?{id:n,type:a}:{id:n}),Number.isInteger(r)&&(d.gte=a?{id:r,type:a}:{id:r}),Number.isInteger(i)&&(d.lt=a?{id:i,type:a}:{id:i}),Number.isInteger(l)&&(d.lte=a?{id:l,type:a}:{id:l}),a&&(e&&!d.lte&&(d.lte={type:a}),e||d.gte||(d.gte={type:a}),d.lte&&!d.gte&&(d.gte={type:a}),d.gte&&!d.lte&&(d.lte={type:a})),d}};
1const e=require("hypercore-id-encoding"),t=require("b4a");function n({start:e,length:t,content:n,preview:r}){return r?.file&&(r.file=l(r.file)),{range:{start:e,length:t},url:n,preview:r}}function r(t){if(!t)return null;const{id:n,key:r,blob:i}=t;return{id:n,key:n?e.decode(n):r,blob:i}}function i(t){if(!t)return null;const{id:n,key:r,path:i,version:l,size:a}=t;return{id:n,key:n?e.decode(n):r,path:i,version:l,size:a}}function l(e){return e&&(e.pointer||e.preview)?(e.metadata?.userdata&&(e.metadata.userdata=t.from(e.metadata.userdata,"base64")),{...e,pointer:(n=e.pointer,n?{...n,bee:n.bee?{hash:t.from(n.bee.hash,"base64")}:null,inlined:n.inlined?t.from(n.inlined,"base64"):null,externalBlob:r(n.externalBlob),externalDrive:i(n.externalDrive)}:{}),preview:a(e.preview)}):null;var n}function a(e){return e?{small:l(e.small),medium:l(e.medium),large:l(e.large)}:null}function d(t){return{key:e.decode(t.deviceId),seq:t.seq}}function o(t){return t&&Array.isArray(t)?t.map(t=>({publicKey:e.decode(t.publicKey),blindingKey:e.decode(t.blindingKey)})):[]}module.exports={decodeContactInfo:function({memberId:t,blindWriters:n,displayName:r,avatar:i}){return{memberKey:e.decode(t),blindWriters:o(n),displayName:r,avatar:a(i)}},decodeChatRangeOptions:function(e,t){const n={...t},r=n.prefix||0;return Number.isInteger(n.gt)&&(n.gt={id:{thread:r,index:t.gt}}),Number.isInteger(n.gte)&&(n.gte={id:{thread:r,index:t.gte}}),Number.isInteger(n.lt)&&(n.lt={id:{thread:r,index:t.lt}}),Number.isInteger(n.lte)&&(n.lte={id:{thread:r,index:t.lte}}),n.gt||n.gte||(n.gte={id:{thread:r}}),n.lt||n.lte||(n.lte={id:{thread:r}}),n},decodeKeyRangeOptions:function({gt:t,gte:n,lt:r,lte:i,limit:l,reverse:a}={}){return{limit:l,reverse:a,gt:t?{key:e.decode(t)}:null,gte:n?{key:e.decode(n)}:null,lt:r?{key:e.decode(r)}:null,lte:i?{key:e.decode(i)}:null}},decodeChatMessage:function(t,r){const i=r.mentions?.map(t=>({range:{start:t.start,length:t.length},memberKey:e.decode(t.memberId)}))||null,a=r.translations?.map(e=>({range:{start:e.start,length:e.length},language:e.language,text:e.text}))||null,o={httpLink:r?.httpLinks?.map(n),pearLink:r?.pearLinks?.map(n),mention:i,translation:a,bold:r.bold||[],italic:r.italic||[],code:r.code||[],emoji:r?.emoji?.map(({start:e,length:t,content:n})=>({range:{start:e,length:t},content:n})),codeBlock:r.codeBlock||[],strike:r.strike||[]},s={callStarted:!0===r?.callStarted,callHangup:!0===r?.callHangup,callMissed:!0===r?.callMissed,locationShared:r?.locationShared};let c=null;r.replyTo&&(c=d(r.replyTo));const u=!0===r.forwarded,g=[];for(const e of r?.files||[]){const t=l(e);t&&g.push(t)}return{text:t,replyTo:c,forwarded:u,display:o,files:g,event:s}},decodeImageFile:a,decodeFile:l,decodeMessageId:d,decodeConfig:function(t){return t?{...t,avatar:a(t.avatar),blindPeers:(n=t.blindPeers,n&&Array.isArray(n)?n.map(t=>e.decode(t)):[])}:null;var n},decodeUserSettings:function(e){return e?{disableReadReceipts:!0===e.disableReadReceipts,stripAttachmentMetadata:!0===e.stripAttachmentMetadata,profileSnoozeTime:e.profileSnoozeTime}:null},decodeFileRangeOptions:function({reverse:e=!0,limit:t=50,gt:n,gte:r,lt:i,lte:l,type:a}={reverse:!0,limit:50}){const d={reverse:e,limit:t};return Number.isInteger(n)&&(d.gt=a?{id:n,type:a}:{id:n}),Number.isInteger(r)&&(d.gte=a?{id:r,type:a}:{id:r}),Number.isInteger(i)&&(d.lt=a?{id:i,type:a}:{id:i}),Number.isInteger(l)&&(d.lte=a?{id:l,type:a}:{id:l}),a&&(e&&!d.lte&&(d.lte={type:a}),e||d.gte||(d.gte={type:a}),d.lte&&!d.gte&&(d.gte={type:a}),d.gte&&!d.lte&&(d.lte={type:a})),d}};
@holepunchto/keet-core/lib/api/v1/encode.js +1 -1
……@@ -1 +1 @@
1const e=require("hypercore-id-encoding"),{getCapabilitiesForRole:t,MemberRoles:n,DISPLAY_TYPES:a,GENERIC_EVENTS:r}=require("@holepunchto/keet-core-api"),s=require("b4a"),i=require("z32"),{contract:{hyperschema:{encode:o,getEnum:l}}}=require("../../../schema/spec"),d=l("@keet/room-type"),c=l("@keet/label-type");function m({key:t,seq:n}){return{deviceId:e.encode(t),seq:n}}function u(t){if(!t)return null;const{key:n,blob:a}=t;return{id:e.encode(n),blob:a}}function p(t){if(!t)return null;const{key:n,path:a,version:r,size:s}=t;return{id:e.encode(n),path:a,version:r,size:s}}function y(e){if(!e)return null;const{inlined:t,blob:n,externalBlob:a,externalDrive:r}=e;return{blob:n,inlined:t?s.toString(t,"base64"):null,externalBlob:u(a),externalDrive:p(r)}}function f(e){return e?(e.metadata?.userdata&&(e.metadata.userdata=s.toString(e.metadata.userdata,"base64")),{hash:e.hash,entry:e.entry,metadata:e.metadata,pointer:y(e.pointer),preview:g(e.preview)}):null}function g(e){return e?{small:f(e.small),medium:f(e.medium),large:f(e.large)}:null}function b(t){if(!t?.memberKey)return t;const{memberKey:n,...a}=t;return{...a,memberId:e.encode(n)}}function v({record:t,labels:n,member:s,memberId:i,localRoom:o}){const{event:l,message:d,reactions:c={}}=t,u=function(e){return e?{...e,memberJoined:b(e.memberJoined),memberLeft:b(e.memberLeft),memberRemoved:b(e.memberRemoved)}:null}(l),p=function(e){if(e)return e.memberJoined?{type:r.MEMBER_JOINED,value:e.memberJoined.memberId}:e.memberLeft?{type:r.MEMBER_LEFT,value:e.memberLeft.memberId}:e.titleChanged?{type:r.ROOM_TITLE_CHANGED,value:e.titleChanged}:e.callStarted?{type:r.CALL_STARTED,value:null}:e.callHangup?{type:r.CALL_HANGUP,value:null}:e.callMissed?{type:r.CALL_MISSED,value:null}:void 0}(u),y=function(t){if(!t?.message?.display)return[];let n=[];var r,s;return t.message.display.mention&&(t.message.display.mention=(r=t.message.display.mention,Array.isArray(r)?r.map(t=>({type:a.MENTION,start:t.range.start,length:t.range.length,memberId:e.encode(t.memberKey)})):[]),n=n.concat(t.message.display.mention)),t.message.display.translation&&(t.message.display.translation=(s=t.message.display.translation,Array.isArray(s)?s.map(e=>({type:a.TRANSLATION,start:e.range.start,length:e.range.length,language:e.language,text:e.text})):[]),n=n.concat(t.message.display.translation)),t.message.display.httpLink&&(t.message.display.httpLink=t.message.display.httpLink.map(L),n=n.concat(t.message.display.httpLink)),t.message.display.pearLink&&(t.message.display.pearLink=t.message.display.pearLink.map(E),n=n.concat(t.message.display.pearLink)),t.message.display.bold&&(t.message.display.bold=t.message.display.bold.map(e=>({...e,type:a.BOLD})),n=n.concat(t.message.display.bold)),t.message.display.italic&&(t.message.display.italic=t.message.display.italic.map(e=>({...e,type:a.ITALIC})),n=n.concat(t.message.display.italic)),t.message.display.code&&(t.message.display.code=t.message.display.code.map(e=>({...e,type:a.CODE})),n=n.concat(t.message.display.code)),t.message.display.emoji&&(t.message.display.emoji=t.message.display.emoji.map(e=>({...e.range,content:e.content,type:a.EMOJI})),n=n.concat(t.message.display.emoji)),t.message.display.codeBlock&&(t.message.display.codeBlock=t.message.display.codeBlock.map(e=>({...e,type:a.CODE_BLOCK})),n=n.concat(t.message.display.codeBlock)),t.message.display.strike&&(t.message.display.strike=t.message.display.strike.map(e=>({...e,type:a.STRIKE_THROUGH})),n=n.concat(t.message.display.strike)),n}(t);return d?.replyTo&&(d.replyTo=m(d.replyTo)),d?.files&&(d.files=d.files.map(f)),{timestamp:t.timestamp,editedAt:t.editedAt,memberId:i||e.encode(s?.key||t.oplog.key),member:s?K(s,o?.selfMember?.key):null,id:m(t.oplog),deleted:t.status.isDeleted,thread:t.id.thread,clock:t.id.index,message:{...d,generic:u},reactions:c,labels:I(n),read:t.read,seq:t.id.index,event:p,replyTo:d&&d.replyTo?d.replyTo:null,forwarded:!0===d?.forwarded,chat:{text:d?d.text:null,edited:t.status.isEdited,display:y,mentions:y.filter(e=>e.type===a.MENTION)},files:d&&d.files?d.files:[],file:d&&d.files?d.files[0]:null}}function I(e){return e?{flags:e.digest?.labels?.find(e=>e.label===c.Flag)?.count??0,flagsClock:e.digest?.flagsClock??0,editedAt:e.digest?.editedAt??0,flagged:!!e.mine?.find(e=>e.label===c.Flag)}:{flags:0,flagsClock:0,editedAt:0,flagged:!1}}function k(e){return e?s.toString(o("@keet/member-contact-info",e),"base64"):null}function K(t,n,a=!1){if(!t)return null;const r=t.proofs?{profile:t.profile,attestation:{memberKey:t.proofs.key,proof:t.proofs.profileAttestation}}:null;return{memberId:e.encode(t.key),anonymous:!1,name:t.profile.displayName?t.profile.displayName.toLowerCase():null,status:t.status,displayName:t.profile.displayName,contactInfo:k(r),inactive:!t.status.isActive,capabilities:C(t.status),avatar:g(t.profile.avatar),local:!!n&&s.equals(t.key,n),pushNotifications:!0,username:t.profile.username,canDM:!!t.profile.mailbox,isContact:a}}function A(t){return{id:{memberId:e.encode(t.memberKey),roomId:e.encode(t.keys.key)},roomId:e.encode(t.keys.key),senderContactInfo:{displayName:t.sender.displayName,avatar:t.sender.avatar?g(t.sender.avatar):null,memberId:e.encode(t.memberKey)},clock:t.clock,message:t.message,status:t.status,sentAt:t.sentAt}}function h(e){return{...e}}function M(t,n,a=[]){return t?{...t,avatar:g(t.avatar),roomType:N(n.settings.roomType),experimental:n.settings.isExperimental,locked:n.settings.isJoiningDisabled,frozen:n.settings.isAppendingDisabled,isMembershipEventsDisabled:n.settings.isMembershipEventsDisabled,pinnedMessages:a,canCall:String(!n.settings.isCallingDisabled),blindPeers:(r=t.blindPeers,r?r.map(e.encode):null)}:{};var r}function R(t){return{callId:e.encode(t.callKey),memberId:e.encode(t.memberKey),createdAt:t.createdAt,devices:t.devices?t.devices.map(T):[]}}function T(t){return{callId:e.encode(t.callKey),memberId:e.encode(t.memberKey),deviceId:e.encode(t.deviceKey),swarmId:e.encode(t.swarmKey),createdAt:t.createdAt,lastHeartbeatAt:t.lastHeartbeatAt,isRecording:t.isRecording,streams:t.streams?t.streams.map(D):[]}}function D(t){return{callId:e.encode(t.callKey),streamId:e.encode(t.streamKey),deviceId:e.encode(t.deviceKey),createdAt:t.createdAt}}function E(e){return{...L(e),type:a.PEAR_LINK}}function L(e){return e?.preview?.file&&(e.preview.file=f(e.preview.file)),{content:e.url,start:e.range.start,length:e.range.length,type:a.HTTP_LINK,preview:e.preview}}function C(e){const a=e.isAdmin?n.ADMIN:e.isModerator?n.MODERATOR:n.PEER;return t(a)}function N(e){switch(e){case d.Default:return"0";case d.Broadcast:return"1";case d.DirectMessage:return"2";default:throw new Error("Incompatible legacy room type:",e)}}function w(e){switch(e){case"0":default:return d.Default;case"1":return d.Broadcast;case"2":return d.DirectMessage}}module.exports={encodeReaction:function(t){return{sender:e.encode(t.sender),clock:t.clock,reaction:t.reaction}},encodeIdentityPairingRequest:function(t){if(!t)return null;const n=t.request,a=n.deviceKey,r=n.device.profile.name,s=n.identity.devicePublicKey;return{deviceName:r,deviceId:e.encode(a),identityDeviceId:e.encode(s)}},encodePrivateRoomRecord:function(t){return{roomId:e.encode(t.roomKey),discoveryId:e.encode(t.discoveryKey),dmMemberId:t.dm?e.encode(t.dm):null,recipient:t.dm?e.encode(t.dm):null}},encodeDmRequest:A,encodeRoomRecord:function({roomInfo:t,preferences:n,lastMessageMember:a,storageInfo:r,fileStats:s}){const i=t.dm?.length?e.encode(t.dm[0]):null;let o=null;return t.lastMessage&&(o={chat:v({record:t.lastMessage,labels:t.lastMessageLabels,memberId:a?.memberId}),member:a}),{roomId:e.encode(t.roomKey),discoveryId:e.encode(t.discoveryKey),status:t.status,stats:t.stats,fork:t.fork,self:{sentLength:r?r.hints.remoteContiguousLength:0,deviceId:t.selfDevice?e.encode(t.selfDevice.key):null,member:t.selfMember?K(t.selfMember,t.selfMember.key):null},digest:h(t.digest),config:M(t.config,t.digest),preferences:n,lastMessage:o,dmMemberId:i,fileStats:s?{total:s.total}:null,activeCall:(l=t.activeCall,l?{callId:e.encode(l.callKey),selfDeviceId:l.selfDeviceKey?e.encode(l.selfDeviceKey):null}:null)};var l},encodePublicRoom:function(t,n){return t?{id:e.encode(t.roomKey),title:t.title??null,avatar:g(t.avatar),invitation:t.invitation?i.encode(t.invitation):null,verified:t.verified??!1,joined:n}:null},encodeMemberRecord:K,encodeInvitationRecord:function(t){const n=e.encode(t.id);return{id:n,seedId:e.encode(t.invitationSeed),discoveryId:n,identityDeviceId:t.identity?e.encode(t.identity.devicePublicKey):null,expires:-1}},encodeChatMessage:v,encodeImageFile:g,encodeFile:f,encodeFileEntry:function t(n){return n?n.cleared?{cleared:!0}:{roomId:e.encode(n.roomKey),httpLink:n.httpLink,cleared:!1,preview:n.preview?{small:t(n.preview.small),medium:t(n.preview.medium),large:t(n.preview.large)}:null}:null},encodeReactionsDigest:function(e){return e?{total:e.total,reactions:e.reactions.map(e=>({text:e.text,count:e.count,latest:[]})),editedAt:e.editedAt}:{total:0,reactions:[]}},encodeMyReactions:function(e){return e.map(e=>e.reaction)},encodeDigest:h,encodeConfig:M,encodeUserSettings:function(e){return{disableReadReceipts:e?.disableReadReceipts||!1,stripAttachmentMetadata:e?.stripAttachmentMetadata||!1,profileSnoozeTime:e?.profileSnoozeTime}},encodeMessageId:m,encodeDevice:function(t){return{id:e.encode(t.key),deviceId:e.encode(t.key),swarmId:e.encode(t.profile.swarmKey),isMobile:t.profile.isMobile,name:t.profile.name,status:t.status}},encodeUser:function(t){if(!t)return null;let n=null;return t.contactInfo&&(n=s.toString(t.contactInfo,"base64")),{memberId:e.encode(t.attestation.memberKey),displayName:t.profile.displayName,username:t.profile.username,avatar:g(t.profile.avatar),count:t.count,contactInfo:n}},encodeContactInfo:function(t,n,a,r){let s=null;return a&&(s={id:e.encode(a.roomKey),status:{isAccepted:!!a&&0===a.stats.members.pending,isWritable:!!a&&a.status.isWritable}}),{memberId:t,activeRoom:s,pendingRequest:r?A(r):null,contactStatus:{isBlocked:!!n?.status?.isBlocked,isActive:!!n?.status?.isActive}}},encodeContact:function(t,n){if(!t)return null;const a=n?.profile??t.contactInfo?.profile??null;return{memberId:e.encode(t.memberKey),displayName:a?.displayName,alias:t.alias,username:a?.username,avatar:g(a?.avatar),contactInfo:k(t.contactInfo)}},encodeReservation:function(t){return t?{username:t.username,memberId:t.memberKey?e.encode(t.memberKey):null}:null},encodeErrorRecord:function(t){return{code:t.code,message:t.message,stack:t.stack,timestamp:t.timestamp,isContractError:!0===t.isContractError,isKeetError:!0===t.isKeetError,roomId:t.roomKey?e.encode(t.roomKey):null,details:(n=t.details,n?{roomId:n.roomKey?e.encode(n.roomKey):null,coreId:n.coreKey?e.encode(n.coreKey):null}:{})};var n},encodeNotification:function(e,t,n){const a=n?.displayName||"";return{id:e.messageId,roomId:e.roomId,avatar:e.avatar??"",sender:{name:a},config:{title:t.title,roomType:t.roomType},message:{type:e.messageType,chatText:e.messageText,fileType:e.fileType,location:e.location},userInfo:{roomKey:e.roomId,messageType:e.messageType,isDmRoom:w(t.roomType)===d.DirectMessage,isBroadcast:w(t.roomType)===d.Broadcast,profileName:a}}},encodeHyperDHTSettings:function(e){return{concurrency:e.concurrency,maxWindow:e.maxWindow,randomPunchInterval:e.randomPunchInterval,connectionKeepAlive:e.connectionKeepAlive}},encodeSwarmSettings:function(e){return{maxPeers:e.maxPeers}},encodeCallRecord:function(t){if(!t)return null;const n=1===t.version;return{version:t.version,callId:e.encode(t.callKey),discoveryId:n?e.encode(t.discoveryKey):null,createdAt:t.createdAt,endedAt:t.endedAt,members:t.members?t.members.map(R):[]}}};
1const e=require("hypercore-id-encoding"),{getCapabilitiesForRole:t,MemberRoles:n,DISPLAY_TYPES:a,GENERIC_EVENTS:s}=require("@holepunchto/keet-core-api"),r=require("b4a"),i=require("z32"),o=require("../../core/call/ghost.js"),{contract:{hyperschema:{encode:l,getEnum:d}}}=require("../../../schema/spec"),c=d("@keet/room-type"),m=d("@keet/label-type");function u({key:t,seq:n}){return{deviceId:e.encode(t),seq:n}}function p(t){if(!t)return null;const{key:n,blob:a}=t;return{id:e.encode(n),blob:a}}function y(t){if(!t)return null;const{key:n,path:a,version:s,size:r}=t;return{id:e.encode(n),path:a,version:s,size:r}}function f(e){if(!e)return null;const{inlined:t,blob:n,externalBlob:a,externalDrive:s,bee:i}=e;return{blob:n,bee:i?{hash:r.toString(i.hash,"base64")}:null,inlined:t?r.toString(t,"base64"):null,externalBlob:p(a),externalDrive:y(s)}}function g(e){return e?(e.metadata?.userdata&&(e.metadata.userdata=r.toString(e.metadata.userdata,"base64")),{hash:e.hash,entry:e.entry,metadata:e.metadata,pointer:f(e.pointer),preview:b(e.preview)}):null}function b(e){return e?{small:g(e.small),medium:g(e.medium),large:g(e.large)}:null}function v(t){if(!t?.memberKey)return t;const{memberKey:n,...a}=t;return{...a,memberId:e.encode(n)}}function I({record:t,labels:n,member:r,memberId:i,localRoom:o}){const{event:l,message:d,reactions:c={}}=t,m=function(e){return e?{...e,memberJoined:v(e.memberJoined),memberLeft:v(e.memberLeft),memberRemoved:v(e.memberRemoved)}:null}(l),p=function(e){if(e)return e.memberJoined?{type:s.MEMBER_JOINED,value:e.memberJoined.memberId}:e.memberLeft?{type:s.MEMBER_LEFT,value:e.memberLeft.memberId}:e.titleChanged?{type:s.ROOM_TITLE_CHANGED,value:e.titleChanged}:e.callStarted?{type:s.CALL_STARTED,value:null}:e.callHangup?{type:s.CALL_HANGUP,value:null}:e.callMissed?{type:s.CALL_MISSED,value:null}:void 0}(m),y=function(t){if(!t?.message?.display)return[];let n=[];var s,r;return t.message.display.mention&&(t.message.display.mention=(s=t.message.display.mention,Array.isArray(s)?s.map(t=>({type:a.MENTION,start:t.range.start,length:t.range.length,memberId:e.encode(t.memberKey)})):[]),n=n.concat(t.message.display.mention)),t.message.display.translation&&(t.message.display.translation=(r=t.message.display.translation,Array.isArray(r)?r.map(e=>({type:a.TRANSLATION,start:e.range.start,length:e.range.length,language:e.language,text:e.text})):[]),n=n.concat(t.message.display.translation)),t.message.display.httpLink&&(t.message.display.httpLink=t.message.display.httpLink.map(N),n=n.concat(t.message.display.httpLink)),t.message.display.pearLink&&(t.message.display.pearLink=t.message.display.pearLink.map(C),n=n.concat(t.message.display.pearLink)),t.message.display.bold&&(t.message.display.bold=t.message.display.bold.map(e=>({...e,type:a.BOLD})),n=n.concat(t.message.display.bold)),t.message.display.italic&&(t.message.display.italic=t.message.display.italic.map(e=>({...e,type:a.ITALIC})),n=n.concat(t.message.display.italic)),t.message.display.code&&(t.message.display.code=t.message.display.code.map(e=>({...e,type:a.CODE})),n=n.concat(t.message.display.code)),t.message.display.emoji&&(t.message.display.emoji=t.message.display.emoji.map(e=>({...e.range,content:e.content,type:a.EMOJI})),n=n.concat(t.message.display.emoji)),t.message.display.codeBlock&&(t.message.display.codeBlock=t.message.display.codeBlock.map(e=>({...e,type:a.CODE_BLOCK})),n=n.concat(t.message.display.codeBlock)),t.message.display.strike&&(t.message.display.strike=t.message.display.strike.map(e=>({...e,type:a.STRIKE_THROUGH})),n=n.concat(t.message.display.strike)),n}(t);return d?.replyTo&&(d.replyTo=u(d.replyTo)),d?.files&&(d.files=d.files.map(g)),{timestamp:t.timestamp,editedAt:t.editedAt,memberId:i||e.encode(r?.key||t.oplog.key),member:r?K(r,o?.selfMember?.key):null,id:u(t.oplog),deleted:t.status.isDeleted,thread:t.id.thread,clock:t.id.index,message:{...d,generic:m},reactions:c,labels:h(n),read:t.read,seq:t.id.index,event:p,replyTo:d&&d.replyTo?d.replyTo:null,forwarded:!0===d?.forwarded,chat:{text:d?d.text:null,edited:t.status.isEdited,display:y,mentions:y.filter(e=>e.type===a.MENTION)},files:d&&d.files?d.files:[],file:d&&d.files?d.files[0]:null}}function h(e){return e?{flags:e.digest?.labels?.find(e=>e.label===m.Flag)?.count??0,flagsClock:e.digest?.flagsClock??0,editedAt:e.digest?.editedAt??0,flagged:!!e.mine?.find(e=>e.label===m.Flag)}:{flags:0,flagsClock:0,editedAt:0,flagged:!1}}function k(t){return t?{callId:e.encode(t.callKey),selfDeviceId:t.selfDeviceKey?e.encode(t.selfDeviceKey):null,createdAt:t.createdAt||0}:null}function A(e){return e?r.toString(l("@keet/member-contact-info",e),"base64"):null}function K(t,n,a=!1){if(!t)return null;const s=t.proofs?{profile:t.profile,attestation:{memberKey:t.proofs.key,proof:t.proofs.profileAttestation}}:null;return{memberId:e.encode(t.key),anonymous:!1,name:t.profile.displayName?t.profile.displayName.toLowerCase():null,status:t.status,displayName:t.profile.displayName,contactInfo:A(s),inactive:!t.status.isActive,capabilities:S(t.status),avatar:b(t.profile.avatar),local:!!n&&r.equals(t.key,n),pushNotifications:!0,username:t.profile.username,canDM:!!t.profile.mailbox,isContact:a}}function M(t,n){return{id:{memberId:e.encode(t.memberKey),roomId:e.encode(t.keys.key)},roomId:e.encode(t.keys.key),senderContactInfo:{displayName:t.sender.displayName,avatar:t.sender.avatar?b(t.sender.avatar):null,memberId:e.encode(t.memberKey),isContact:!!n&&n.status.isActive&&!n.status.isBlocked},clock:t.clock,message:t.message,status:t.status,sentAt:t.sentAt}}function R(e){return{...e}}function T(t,n,a=[]){return t?{...t,avatar:b(t.avatar),roomType:w(n.settings.roomType),experimental:n.settings.isExperimental,locked:n.settings.isJoiningDisabled,frozen:n.settings.isAppendingDisabled,isMembershipEventsDisabled:n.settings.isMembershipEventsDisabled,pinnedMessages:a,canCall:String(!n.settings.isCallingDisabled),blindPeers:(s=t.blindPeers,s?s.map(e.encode):null)}:{};var s}function D(t){return{callId:e.encode(t.callKey),memberId:e.encode(t.memberKey),createdAt:t.createdAt,devices:t.devices?t.devices.map(E):[]}}function E(t){return{callId:e.encode(t.callKey),memberId:e.encode(t.memberKey),deviceId:e.encode(t.deviceKey),swarmId:e.encode(t.swarmKey),createdAt:t.createdAt,lastHeartbeatAt:t.lastHeartbeatAt,isRecording:t.isRecording,streams:t.streams?t.streams.map(L):[]}}function L(t){return{callId:e.encode(t.callKey),streamId:e.encode(t.streamKey),deviceId:e.encode(t.deviceKey),createdAt:t.createdAt,mediaStreamId:t.mediaStreamId,type:t.type,muted:t.muted}}function C(e){return{...N(e),type:a.PEAR_LINK}}function N(e){return e?.preview?.file&&(e.preview.file=g(e.preview.file)),{content:e.url,start:e.range.start,length:e.range.length,type:a.HTTP_LINK,preview:e.preview}}function S(e){const a=e.isAdmin?n.ADMIN:e.isModerator?n.MODERATOR:n.PEER;return t(a)}function w(e){switch(e){case c.Default:return"0";case c.Broadcast:return"1";case c.DirectMessage:return"2";default:throw new Error("Incompatible legacy room type:",e)}}function x(e){switch(e){case"0":default:return c.Default;case"1":return c.Broadcast;case"2":return c.DirectMessage}}module.exports={encodeReaction:function(t){return{sender:e.encode(t.sender),clock:t.clock,reaction:t.reaction}},encodeIdentityPairingRequest:function(t){if(!t)return null;const n=t.request,a=n.deviceKey,s=n.device.profile.name,r=n.identity.devicePublicKey;return{deviceName:s,deviceId:e.encode(a),identityDeviceId:e.encode(r)}},encodePrivateRoomRecord:function(t){return{roomId:e.encode(t.roomKey),discoveryId:e.encode(t.discoveryKey),dmMemberId:t.dm?e.encode(t.dm):null,recipient:t.dm?e.encode(t.dm):null}},encodeDmRequest:M,encodeRoomRecord:function({roomInfo:t,preferences:n,lastMessageMember:a,storageInfo:s,fileStats:r}){const i=t.dm?.length?e.encode(t.dm[0]):null;let o=null;return t.lastMessage&&(o={chat:I({record:t.lastMessage,labels:t.lastMessageLabels,memberId:a?.memberId}),member:a}),{roomId:e.encode(t.roomKey),discoveryId:e.encode(t.discoveryKey),status:t.status,stats:t.stats,fork:t.fork,self:{sentLength:s?s.hints.remoteContiguousLength:0,deviceId:t.selfDevice?e.encode(t.selfDevice.key):null,member:t.selfMember?K(t.selfMember,t.selfMember.key):null},digest:R(t.digest),config:T(t.config,t.digest),preferences:n,lastMessage:o,dmMemberId:i,fileStats:r?{total:r.total}:null,activeCall:k(t.activeCall)}},encodePublicRoom:function(t,n){return t?{id:e.encode(t.roomKey),title:t.title??null,avatar:b(t.avatar),invitation:t.invitation?i.encode(t.invitation):null,verified:t.verified??!1,joined:n}:null},encodeMemberRecord:K,encodeInvitationRecord:function(t){const n=e.encode(t.id);return{id:n,seedId:e.encode(t.invitationSeed),discoveryId:n,identityDeviceId:t.identity?e.encode(t.identity.devicePublicKey):null,expires:-1}},encodeChatMessage:I,encodeImageFile:b,encodeFile:g,encodeFileEntry:function t(n){return n?n.cleared?{cleared:!0}:{roomId:e.encode(n.roomKey),httpLink:n.httpLink,cleared:!1,preview:n.preview?{small:t(n.preview.small),medium:t(n.preview.medium),large:t(n.preview.large)}:null}:null},encodeReactionsDigest:function(e){return e?{total:e.total,reactions:e.reactions.map(e=>({text:e.text,count:e.count,latest:[]})),editedAt:e.editedAt}:{total:0,reactions:[]}},encodeMyReactions:function(e){return e.map(e=>e.reaction)},encodeDigest:R,encodeConfig:T,encodeUserSettings:function(e){return{disableReadReceipts:e?.disableReadReceipts||!1,stripAttachmentMetadata:e?.stripAttachmentMetadata||!1,profileSnoozeTime:e?.profileSnoozeTime}},encodeMessageId:u,encodeDevice:function(t){return{id:e.encode(t.key),deviceId:e.encode(t.key),swarmId:e.encode(t.profile.swarmKey),isMobile:t.profile.isMobile,name:t.profile.name,status:t.status}},encodeUser:function(t){if(!t)return null;let n=null;return t.contactInfo&&(n=r.toString(t.contactInfo,"base64")),{memberId:e.encode(t.attestation.memberKey),displayName:t.profile.displayName,username:t.profile.username,avatar:b(t.profile.avatar),count:t.count,contactInfo:n}},encodeContactInfo:function(t,n,a,s){let r=null;return a&&(r={id:e.encode(a.roomKey),status:{isAccepted:!!a&&0===a.stats.members.pending,isWritable:!!a&&a.status.isWritable}}),{memberId:t,activeRoom:r,pendingRequest:s?M(s,n):null,contactStatus:{isBlocked:!!n?.status?.isBlocked,isActive:!!n?.status?.isActive}}},encodeContact:function(t,n){if(!t)return null;const a=n?.profile??t.contactInfo?.profile??null;return{memberId:e.encode(t.memberKey),displayName:a?.displayName,alias:t.alias,username:a?.username,avatar:b(a?.avatar),contactInfo:A(t.contactInfo)}},encodeReservation:function(t){return t?{username:t.username,memberId:t.memberKey?e.encode(t.memberKey):null}:null},encodeErrorRecord:function(t){return{code:t.code,message:t.message,stack:t.stack,timestamp:t.timestamp,isContractError:!0===t.isContractError,isKeetError:!0===t.isKeetError,roomId:t.roomKey?e.encode(t.roomKey):null,details:(n=t.details,n?{roomId:n.roomKey?e.encode(n.roomKey):null,coreId:n.coreKey?e.encode(n.coreKey):null}:{})};var n},encodeNotification:function(e,t,n){const a=n?.displayName||"";return{id:e.messageId,roomId:e.roomId,avatar:e.avatar??"",sender:{name:a},config:{title:t.title,roomType:t.roomType},message:{type:e.messageType,chatText:e.messageText,fileType:e.fileType,location:e.location},userInfo:{roomKey:e.roomId,messageType:e.messageType,isDmRoom:x(t.roomType)===c.DirectMessage,isBroadcast:x(t.roomType)===c.Broadcast,profileName:a}}},encodeHyperDHTSettings:function(e){return{concurrency:e.concurrency,maxWindow:e.maxWindow,randomPunchInterval:e.randomPunchInterval,connectionKeepAlive:e.connectionKeepAlive}},encodeSwarmSettings:function(e){return{maxPeers:e.maxPeers}},encodeCallRecord:function(t,n={}){if(!t)return null;const a=n.deviceKey||null,s=n.ghostThreshold,r=Date.now(),i=[],l=[];for(const n of t.members??[]){const t=D(n),d=[];for(const n of t.devices)n.isSelf=!!a&&e.encode(a)===n.deviceId,o(r,n,s)&&(l.push(n),d.push(n));d.length&&(t.devices=d,i.push(t))}const d=1===t.version;return{version:t.version,callId:e.encode(t.callKey),discoveryId:d?e.encode(t.discoveryKey):null,createdAt:t.createdAt,endedAt:t.endedAt,members:i,activeDevices:l}},encodeLocalActiveCall:k};
@holepunchto/keet-core/lib/api/v1/helpers.js +1 -1
……@@ -1 +1 @@
1const{encodeChatMessage:e,encodeReactionsDigest:t,encodeMyReactions:n,encodeCallRecord:s}=require("./encode"),{getMemberForDeviceKey:o}=require("../../core/contract/query"),i=require("b4a");async function a({roomKey:e,local:s,snapshot:o,room:i,oplog:a,msgId:l}){const[r,c]=await Promise.all([l?{id:l}:o.get("@keet/chat-by-message-id",{oplog:a}),i||s.get("@local/rooms",{roomKey:e})]);if(!r||!c)return null;const{selfMember:m}=c,[d,f]=await Promise.all([o.get("@keet/reaction-digests",{id:r.id}),m?o.find("@keet/reactions",{gte:{id:r.id,sender:m.key},lte:{id:r.id,sender:m.key}}).toArray():[]]);return{digest:t(d),mine:n(f)}}async function l({snapshot:e,msgId:t,localRoom:n}){if(!t||!n)return null;const{selfMember:s}=n,[o,i]=await Promise.all([e.get("@keet/chat-label-digests",{id:t}),s?e.find("@keet/chat-labels",{gte:{id:t,sender:s.key},lte:{id:t,sender:s.key}}).toArray():[]]);return o&&{digest:o,mine:i}}function r({dm:e,readLengths:t,selfMember:n},s){return!!(e?.length&&s&&t?.length&&n)&&!!t.find(e=>!i.equals(e.memberKey,n.key)&&s.index<e.length)}async function c(t,n,s,i,c,d){const f=o(n,d.oplog.key),{filePromises:y,linkFilePromises:u}=function(e,t,n,s,o){const i=[],a=[];if(o.message?.files?.length>0)for(const a of o.message.files)i.push(m(e,s,t,n,a));const l=o.message?.display?.httpLink||[];for(const e of l)c(e);const r=o.message?.display?.pearLink||[];for(const e of r)c(e);return{filePromises:i,linkFilePromises:a};function c(o){if((o?.preview?.files||[]).length){const i=o.preview.files.map(async i=>{o.preview.file=await m(e,s,t,n,i)});a.push(...i)}}}(t,n,s,c,d),[g,h,p,b]=await Promise.all([f,Promise.all(y),a({snapshot:n,room:i,msgId:d.id}),l({snapshot:n,localRoom:i,msgId:d.id}),Promise.all(u)]);return d.reactions=p,h.length&&(d.message.files=h),d.read=r(i,d.id),e({record:d,labels:b,member:g,localRoom:i})}async function m(e,t,n,s,o){const i=await n.get("@keet/files",{id:o});if(!i)return null;const a=await t.getFileEntryWithPreview(e,i.file,{loadBlob:e=>s.get(e)});return{...i.file,entry:a}}function d(e,t){return async function(e){const o={...e,members:await n(e)};return t?s(o):o};async function n({callKey:t}){return f(e.find("@keet/call-members",{gte:{callKey:t},lte:{callKey:t}}),async e=>({...e,devices:await o(e)}))}async function o({callKey:t,memberKey:n}){const s={gte:{callKey:t,memberKey:n},lte:{callKey:t,memberKey:n}};return f(e.find("@keet/call-devices-by-member-key",s),async e=>({...e,streams:await i(e)}))}async function i({callKey:t,deviceKey:n}){const s={gte:{callKey:t,deviceKey:n},lte:{callKey:t,deviceKey:n}},o=e.find("@keet/call-streams-by-device-key",s),i=[];for await(const e of o)i.push(e);return i}}async function f(e,t){const n=[];for await(const s of e)n.push(t(s));return Promise.all(n)}module.exports={getChatMessages:async function(e,t,n,s,o,i){const[a,l]=await Promise.all([n.get("@local/rooms",{roomKey:t}),e()]);if(!l||!a)return[];const r=Array.isArray(l)?l:[l],m=[];for(const e of r)m.push(c(t,s,o,a,i,e));return Promise.all(m)},getReactions:a,getChatLabels:l,getChatMessage:c,getCalls:async function(e,t,n=!0){const s=d(e,n);return f(e.find(t),s)},getCall:async function(e,t){const n=d(e),s=await e.findOne(t);return s?n(s):null},isDMRead:r,parallel:f};
1const{encodeChatMessage:e,encodeReactionsDigest:t,encodeMyReactions:s}=require("./encode"),{getMemberForDeviceKey:n}=require("../../core/contract/query"),a=require("b4a");async function i({roomKey:e,local:n,snapshot:a,room:i,oplog:l,msgId:o}){const[r,c]=await Promise.all([o?{id:o}:a.get("@keet/chat-by-message-id",{oplog:l}),i||n.get("@local/rooms",{roomKey:e})]);if(!r||!c)return null;const{selfMember:m}=c,[u,y]=await Promise.all([a.get("@keet/reaction-digests",{id:r.id}),m?a.find("@keet/reactions",{gte:{id:r.id,sender:m.key},lte:{id:r.id,sender:m.key}}).toArray():[]]);return{digest:t(u),mine:s(y)}}async function l({snapshot:e,msgId:t,localRoom:s}){if(!t||!s)return null;const{selfMember:n}=s,[a,i]=await Promise.all([e.get("@keet/chat-label-digests",{id:t}),n?e.find("@keet/chat-labels",{gte:{id:t,sender:n.key},lte:{id:t,sender:n.key}}).toArray():[]]);return a&&{digest:a,mine:i}}function o({dm:e,readLengths:t,selfMember:s},n){return!!(e?.length&&n&&t?.length&&s)&&!!t.find(e=>!a.equals(e.memberKey,s.key)&&n.index<e.length)}async function r(t,s,a,r,c,u){const y=n(s,u.oplog.key),{filePromises:d,linkFilePromises:f}=function(e,t,s,n,a){const i=[],l=[];if(a.message?.files?.length>0)for(const l of a.message.files)i.push(m(e,n,t,s,l));const o=a.message?.display?.httpLink||[];for(const e of o)c(e);const r=a.message?.display?.pearLink||[];for(const e of r)c(e);return{filePromises:i,linkFilePromises:l};function c(a){if((a?.preview?.files||[]).length){const i=a.preview.files.map(async i=>{a.preview.file=await m(e,n,t,s,i)});l.push(...i)}}}(t,s,a,c,u),[g,b,h,k]=await Promise.all([y,Promise.all(d),i({snapshot:s,room:r,msgId:u.id}),l({snapshot:s,localRoom:r,msgId:u.id}),Promise.all(f)]);return u.reactions=h,b.length&&(u.message.files=b),u.read=o(r,u.id),e({record:u,labels:k,member:g,localRoom:r})}async function c(e,t,s){if(e.bee){const s=await t.get("@keet/blobs",e.bee);return s?s.data:null}return e.blob&&s?s.get(e.blob):null}async function m(e,t,s,n,a){const i=await s.get("@keet/files",{id:a});if(!i)return null;const l=await t.getFileEntryWithPreview(e,i.file,{loadBlob:e=>c(e,s,n)});return{...i.file,entry:l}}function u(e){return async function(e){return{...e,members:await t(e)}};async function t({callKey:t}){return y(e.find("@keet/call-members",{gte:{callKey:t},lte:{callKey:t}}),async e=>({...e,devices:await s(e)}))}async function s({callKey:t,memberKey:s}){const a={gte:{callKey:t,memberKey:s},lte:{callKey:t,memberKey:s}};return y(e.find("@keet/call-devices-by-member-key",a),async e=>({...e,streams:await n(e)}))}async function n({callKey:t,deviceKey:s}){const n={gte:{callKey:t,deviceKey:s},lte:{callKey:t,deviceKey:s}};return y(e.find("@keet/call-streams-by-device-key",n),async t=>{const s=await e.get("@keet/call-stream-statuses",{statusKey:t.statusKey});return{...t,muted:!!s&&s.muted}})}}async function y(e,t){const s=[];for await(const n of e)s.push(t(n));return Promise.all(s)}module.exports={getChatMessages:async function(e,t,s,n,a,i){const[l,o]=await Promise.all([s.get("@local/rooms",{roomKey:t}),e()]);if(!o||!l)return[];const c=Array.isArray(o)?o:[o],m=[];for(const e of c)m.push(r(t,n,a,l,i,e));return Promise.all(m)},getReactions:i,getChatLabels:l,getChatMessage:r,getCalls:async function(e,t){const s=u(e);return y(e.find(t),s)},getCall:async function(e,t){const s=u(e),n=await e.findOne(t);return n?s(n):null},isDMRead:o,loadBlob:c,parallel:y};
@holepunchto/keet-core/lib/api/v1/index.js +1 -1
……@@ -1 +1 @@
1const e=require("path"),t=require("ready-resource"),s=require("hypercore-id-encoding"),i=require("hypercore-crypto"),o=require("debounceify"),r=require("safety-catch"),a=require("b4a"),n=require("uncaughts"),{Readable:c,Transform:h,pipeline:d}=require("streamx"),{Session:l,HeapSnapshot:u}=require("bare-inspector"),m=require("bare-fs"),p=require("process-top")(),g=require("tiny-preferences"),b=require("@holepunchto/keet-call/server"),{contract:{hyperschema:{getEnum:y}},local:{hyperschema:{getEnum:f}}}=require("../../../schema/spec"),{encodeRoomRecord:k,encodeConfig:_,encodeDevice:w,encodeMemberRecord:v,encodeInvitationRecord:R,encodeFile:S,encodeIdentityPairingRequest:I,encodeDmRequest:M,encodeReaction:C,encodeUser:E,encodeContactInfo:K,encodeImageFile:D,encodeReservation:P,encodeFileEntry:q,encodeUserSettings:A,encodeErrorRecord:F,encodeNotification:x,encodeHyperDHTSettings:L,encodeSwarmSettings:T,encodeCallRecord:B,encodeContact:U,encodePublicRoom:N}=require("./encode.js"),{decodeChatRangeOptions:O,decodeChatMessage:j,decodeMessageId:H,decodeKeyRangeOptions:V,decodeFile:G,decodeConfig:z,decodeImageFile:W,decodeFileRangeOptions:J,decodeUserSettings:Y}=require("./decode.js"),$=y("@keet/build-type"),X=y("@keet/room-type"),Z=y("@keet/display-type"),Q=y("@keet/label-type"),ee=y("@keet/member-label-type"),te=y("@keet/system-settings-keys"),se=y("@keet-private-id/user-settings-key"),{ContactRequestStatus:ie,RoomStatus:oe}=require("../../core/contract/identity/private.js"),{Config:re,CONFIG_INDEX_TO_KEY:ae}=require("../../core/contract/config"),{Settings:ne}=require("../../core/contract/internal"),{getChatMessages:ce,getChatMessage:he,getReactions:de,isDMRead:le,getCalls:ue,parallel:me}=require("./helpers.js"),{MemberStatus:pe}=require("../../core/contract/members/index.js"),{MemberRoles:ge,DM_STATUSES:be,isValidPreferenceKey:ye,getPreferenceKeyName:fe,CHAT_MESSAGE_REPORT_COUNT:ke,PREFERENCES:_e,GENERIC_EVENTS:we}=require("@holepunchto/keet-core-api"),{restoreAvatar:ve}=require("../../core/contract/avatars.js"),{getMemberForDeviceKey:Re}=require("../../core/contract/query.js"),Se=require("compact-encoding"),{DEBUG_FLAG_INDEX_BY_KEY:Ie,DHT_SETTINGS:Me,SWARM_SETTINGS:Ce}=require("../../core/debug/debugging.js"),{KeetErrorV2:Ee}=require("../../errors"),Ke=require("./inspector.js"),{FEATURES:De}=require("../../../schema/versions"),{ActiveCall:Pe}=require("./calls/index.js"),{constants:qe}=require("rocksdb-native"),Ae=f("@local/keet-state"),Fe="recent-rooms",xe="favorite-rooms",Le="dm-rooms",Te="chat-changed",Be="identity",Ue="private-profile",Ne="members",Oe="migration-status",je="room-preferences",He="unreads",Ve="errors",Ge="force-updates",ze={"keet-core":require("../../../package.json").version,autobase:require("autobase/package.json").version,hypercore:require("hypercore/package.json").version,hyperbee:require("hyperbee/package.json").version,hyperbee2:require("hyperbee2/package.json").version,"keet-identity-key":require("keet-identity-key/package.json").version,"keet-push":require("@holepunchto/keet-push/package.json").version,corestore:require("corestore/package.json").version};class We{constructor(e,t){this.api=e,this.id=t,this.subscriptions=[]}destroy(){for(const{stream:e}of this.subscriptions)e.destroy()}refresh(e){for(const t of this.subscriptions)e&&e.name&&e.name!==t.name||t.query&&t.query()}push(e,t){for(const s of this.subscriptions)t&&t.name&&t.name!==s.name||s.map&&s.stream.push(s.map(e))}_onDestroy(e,t){const s=this.subscriptions.pop();s!==e&&(this.subscriptions[e.idx]=s,s.idx=e.idx),0===this.subscriptions.length&&this.api._subscriptions.get(this.id)===this&&this.api._subscriptions.delete(this.id),t(null)}_create(e){const t={name:e||null,stream:null,query:null,map:null,idx:0};return t.stream=new c({destroy:e=>this._onDestroy(t,e)}),t.idx=this.subscriptions.push(t)-1,t}add({query:e,map:t,name:s}){if(!e&&!t)throw new Error("Must have either a query or a map");const i=this._create(s);return e&&(i.query=o(async()=>{try{const t=await e();null!==t&&i.stream.push(t)}catch(e){i.stream.destroy(e)}}),i.query()),i.map=t,i.stream}}class Je{constructor(e){this.keet=e}create(e,t){return async(s,...i)=>{if(this.keet.closing)return null;const o=["files","base","drive","db","snapshot","blobs","blobsSnapshot"],r=!!t.find(e=>o.includes(e));if(r&&!s)throw new Error("Room ID is required for methods that require room resources");("object"==typeof s&&null!==s||!r)&&(i=[s,...i],s=null);const a=s?this.keet.internalOpenExistingRoom(s):null;if(a&&(await a.ready(),await a.base.flush()),this.keet.closing)return null;const n={roomId:s,roomKey:a?.key||null,discoveryKey:a?.discoveryKey||null};let c=null;try{for(const e of t)a&&"db"===e&&(n.db=a.db),a&&"snapshot"===e&&(n.snapshot=a.db.snapshot()),a&&"base"===e&&(n.base=a.base),a&&"drive"===e&&(n.drive=a.drive),a&&"blobs"===e&&(n.blobs=a.blobs),a&&"blobsSnapshot"===e&&(n.blobsSnapshot=a.blobs.snapshot()),"local"===e&&(n.local=this.keet.local),"localSnapshot"===e&&(n.localSnapshot=this.keet.local.snapshot()),"files"===e&&(n.files=this.keet.files),"myKey"===e&&(this.keet.onlineBoot.opened||await this.keet.onlineBoot.ready(),n.localSnapshot||(n.localSnapshot=this.keet.local.snapshot()),n.id=await n.localSnapshot.get("@local/identity"),n.profileInfo=await n.localSnapshot.get("@local/rooms",{roomKey:n.id.privateProfileKey}),n.myKey=n.profileInfo?.selfMember?.key||null),"profile"===e&&(this.keet.onlineBoot.opened||await this.keet.onlineBoot.ready(),n.localSnapshot||(n.localSnapshot=this.keet.local.snapshot()),n.id||(n.id=await n.localSnapshot.get("@local/identity")),n.profileInfo||(n.profileInfo=await n.localSnapshot.get("@local/rooms",{roomKey:n.id.privateProfileKey})),n.profile=this.keet.internalOpenExistingRoom(n.id.privateProfileKey),await n.profile.ready()),n.profile&&"profileDb"===e&&(n.profileDb=n.profile.db),n.profile&&"profileSnapshot"===e&&(n.profileSnapshot=n.profile.db.snapshot()),n.profile&&"profileBlobs"===e&&(n.profileBlobs=n.profile.profileBlobs),n.profile&&"profileBlobsSnapshot"===e&&(n.profileBlobsSnapshot=n.profile.blobs.snapshot());const s=Date.now();return c=await e(n,...i),this.keet.logger.debug("[Keet API]",e.name,"duration:",Date.now()-s,"args:",i),c}catch(e){if(this.keet.closing)return null;if(a?.base.getLastError())throw this.keet.onerror(a?.base.getLastError()),a.base.getLastError();throw this.keet.onerror(e),e}finally{n.snapshot&&await n.snapshot.close(),n.blobsSnapshot&&await n.blobsSnapshot.close(),n.localSnapshot&&await n.localSnapshot.close(),n.profileSnapshot&&await n.profileSnapshot.close(),n.profileBlobsSnapshot&&await n.profileBlobsSnapshot.close(),n.profile&&await this.keet.internalReleaseRoom(n.profile),a&&await this.keet.internalReleaseRoom(a)}}}}class Ye{constructor(e,{onerror:t=r}={}){this.keet=e,this.context=new Je(this.keet),this._onerror=t,this._subscriptions=new Map,this._profileSubscriptions=new We(this,null,{isProfileSub:!0}),this.keet.on("room-interrupted",this._handleRoomInterrupted.bind(this)),this.keet.on("room-changed",this._handleRoomChanged.bind(this)),this.keet.on("identity-changed",this._handleIdentityChanged.bind(this)),this.keet.on("recent-rooms-changed",this._handleRecentRoomsChanged.bind(this)),this.keet.on("dm-rooms-changed",this._handleDmRoomsChanged.bind(this)),this.keet.on("chat-changed",this._handleChatChanged.bind(this)),this.keet.on("identity-pairing-request",this._handleIdentityPairingRequest.bind(this)),this.keet.on("migration-status",this._handleMigrationStatus.bind(this)),this.keet.on("room-preferences-changed",this._handleRoomPreferencesChanged.bind(this)),this.keet.on("unread-anchors-changed",this._handleUnreadAnchorsChanged.bind(this)),this.keet.on("room-sent-message",this._handleRoomSentMessageLengthChanged.bind(this)),this.keet.on("caught-error",this._handleKeetError.bind(this)),this.keet.on("force-update",this._handleForceUpdate.bind(this)),this.keet.on("verified-rooms-changed",this._handleVerifiedRoomsChanged.bind(this)),this.keet.on("local-files-changed",this._handleLocalFilesChanged.bind(this)),this.keet.on("favorite-rooms-changed",this._handleFavoriteRoomsChanged.bind(this)),this.keet.on("contacts-changed",this._handleContactsChanged.bind(this)),this.boot=this._timed(this._boot.bind(this)),this.createInvitation=this._timed(this._createInvitation.bind(this)),this.confirmPairingRequest=this._timed(this._confirmPairingRequest.bind(this)),this.startPairingRoom=this._timed(this._startPairingRoom.bind(this)),this.stopPairingRoom=this.context.create(this._stopPairingRoom.bind(this),["profile"]),this.searchRooms=this.context.create(this._searchRooms.bind(this),["local"]),this.getRoomInfo=this.context.create(this._getRoomInfo.bind(this),["localSnapshot"]),this.getRecentRooms=this.context.create(this._getRecentRooms.bind(this),["local"]),this.getPendingRooms=this.context.create(this._getPendingRooms.bind(this),["profile"]),this.getLocalRoomMetadata=this.context.create(this._getLocalRoomMetadata.bind(this),["local"]),this.getConfig=this.context.create(this._getConfig.bind(this),["snapshot","local"]),this.updateRoomSettings=this._updateRoomSettings.bind(this),this.getChatMessage=this.context.create(this._getChatMessage.bind(this),["snapshot","blobsSnapshot","files","local"]),this.getChatMessageById=this.context.create(this._getChatMessageById.bind(this),["snapshot","blobsSnapshot","files","local"]),this.getChatMessages=this.context.create(this._getChatMessages.bind(this),["snapshot","blobsSnapshot","files","local"]),this.getChatLength=this.context.create(this._getChatLength.bind(this),["db"]),this.removeChatMessage=this.context.create(this._removeChatMessage.bind(this),["snapshot","blobsSnapshot","files","local"]),this.searchChatMessages=this.context.create(this._searchChatMessages.bind(this),["local","snapshot","blobsSnapshot","files"]),this.addChatMessage=this._timed(this._addChatMessage.bind(this)),this.updateChatMessage=this._timed(this._updateChatMessage.bind(this)),this.forwardChatMessage=this.context.create(this._forwardChatMessage.bind(this),["snapshot","blobsSnapshot","files","local"]),this.pinChatMessage=this._timed(this._pinChatMessage.bind(this)),this.unpinChatMessage=this._timed(this._unpinChatMessage.bind(this)),this.addCallStartedEvent=this._timed(this._addCallStartedEvent.bind(this)),this.addCallHangupEvent=this._timed(this._addCallHangupEvent.bind(this)),this.addCallMissedEvent=this._timed(this._addCallMissedEvent.bind(this)),this.addLocationSharedEvent=this._timed(this._addLocationSharedEvent.bind(this)),this.getActiveCalls=this.context.create(this._getActiveCalls.bind(this),["snapshot"]),this.getCalls=this.context.create(this._getCalls.bind(this),["snapshot"]),this.getReactions=this.context.create(this._getReactions.bind(this),["snapshot","local"]),this.getLatestReactions=this.context.create(this._getLatestReactions.bind(this),["snapshot"]),this.addReaction=this._timed(this._addReaction.bind(this)),this.removeReaction=this._timed(this._removeReaction.bind(this)),this.getReportedMembers=this.context.create(this._getReportedMembers.bind(this),["snapshot","blobsSnapshot","localSnapshot"]),this.addChatReport=this._timed(this._addChatReport.bind(this)),this.removeChatReport=this._timed(this._removeChatReport.bind(this)),this.dismissChatReports=this._timed(this._dismissChatReports.bind(this)),this.getReportedMessages=this.context.create(this._getReportedMessages.bind(this),["roomKey","local","snapshot","blobsSnapshot","files"]),this.getPinnedChatMessages=this.context.create(this._getPinnedChatMessages.bind(this),["local","snapshot","blobsSnapshot","files"]),this.getActiveMember=this.context.create(this._getActiveMember.bind(this),["snapshot","blobsSnapshot","localSnapshot","myKey"]),this.getActiveMembers=this.context.create(this._getActiveMembers.bind(this),["snapshot","blobsSnapshot","localSnapshot","myKey"]),this.getMembers=this.context.create(this._getMembers.bind(this),["snapshot","blobsSnapshot","localSnapshot","myKey"]),this.getMember=this.context.create(this._getMember.bind(this),["snapshot","blobsSnapshot","localSnapshot","myKey"]),this.getMemberCount=this.context.create(this._getMemberCount.bind(this),["db"]),this.getMemberBySwarmId=this.context.create(this._getMemberBySwarmId.bind(this),["snapshot","blobsSnapshot","localSnapshot","myKey"]),this.getMemberByDeviceId=this.context.create(this._getMemberByDeviceId.bind(this),["snapshot","blobsSnapshot","localSnapshot","myKey"]),this.isMemberMuted=this.context.create(this._isMemberMuted.bind(this),["db"]),this.getSearchMembers=this.context.create(this._getSearchMembers.bind(this),["snapshot","blobsSnapshot","localSnapshot","myKey"]),this.updateMember=this._timed(this._updateMember.bind(this)),this.removeMember=this._timed(this._removeMember.bind(this)),this.changeMemberRole=this._timed(this._changeMemberRole.bind(this)),this.muteMember=this._timed(this._muteMember.bind(this)),this.unmuteMember=this._timed(this._unmuteMember.bind(this)),this.blockMember=this._timed(this._blockMember.bind(this)),this.unblockMember=this._timed(this._unblockMember.bind(this)),this.getDevices=this.context.create(this._getDevices.bind(this),["db"]),this.getDevice=this.context.create(this._getDevice.bind(this),["db"]),this.getDevicesByMemberId=this.context.create(this._getDevicesByMemberId.bind(this),["db"]),this.getModerators=this.context.create(this._getModerators.bind(this),["snapshot","blobsSnapshot","localSnapshot","myKey"]),this.saveFile=this.context.create(this._saveFile.bind(this),["files"]),this.saveFileBlob=this.context.create(this._saveFileBlob.bind(this),["files"]),this.getFileEntry=this.context.create(this._getFileEntry.bind(this),["files"]),this.getFileCleared=this.context.create(this._getFileCleared.bind(this),["files"]),this.clearFile=this.context.create(this._clearFile.bind(this),["files"]),this.unclearFile=this.context.create(this._unclearFile.bind(this),["files"]),this.clearAllFiles=this.context.create(this._clearAllFiles.bind(this),["files"]),this.clearOldFiles=this._timed(this._clearOldFiles.bind(this)),this.getLocalFiles=this.context.create(this._getLocalFiles.bind(this),["files","snapshot","blobsSnapshot"]),this.getFiles=this.context.create(this._getFiles.bind(this),["files","snapshot","blobsSnapshot"]),this.startDownload=this.context.create(this._startDownload.bind(this),["files"]),this.cancelDownload=this.context.create(this._cancelDownload.bind(this),["files"]),this.saveToDisk=this.context.create(this._saveToDisk.bind(this),["files"]),this.sendFile=this._timed(this._sendFile.bind(this)),this.sendFiles=this._timed(this._sendFiles.bind(this)),this.refreshFileLinks=this._timed(this._refreshFileLinks.bind(this)),this.createRoom=this._timed(this._createRoom.bind(this)),this.leaveRoom=this._timed(this._leaveRoom.bind(this)),this.getSystemDigest=this.context.create(this._getSystemDigest.bind(this),["db"]),this.getTipSize=this.context.create(this._getTipSize.bind(this),["base"]),this.getRoomKeys=this._timed(this._getRoomKeys.bind(this)),this.resyncPrivateProfile=this._timed(this._resyncPrivateProfile.bind(this)),this.restoreIdentity=this._timed(this._restoreIdentity.bind(this)),this.getRecoveryPhrase=this._timed(this._getRecoveryPhrase.bind(this)),this.getEncryptedRecoveryPhrase=this._timed(this._getEncryptedRecoveryPhrase.bind(this)),this.decryptEncryptedRecoveryPhrase=this._timed(this._decryptEncryptedRecoveryPhrase.bind(this)),this.freeRecoveryPhrase=this._timed(this._freeRecoveryPhrase.bind(this)),this.confirmRecoveryPhrase=this._timed(this._confirmRecoveryPhrase.bind(this)),this.storeRecoveryPhrase=this._timed(this._storeRecoveryPhrase.bind(this)),this.getIdentity=this.context.create(this._getIdentity.bind(this),["local","profile","profileSnapshot"]),this.getSelfContactInfo=this.context.create(this._getSelfContactInfo.bind(this),["local","profile"]),this.removeIdentityDevice=this.context.create(this._removeIdentityDevice.bind(this),["profile"]),this.createIdentityInvitation=this._timed(this._createIdentityInvitation.bind(this)),this.startPairingIdentity=this._timed(this._startPairingIdentity.bind(this)),this.updateIdentityProfile=this._timed(this._updateIdentityProfile.bind(this)),this.updateIdentityDevice=this._timed(this._updateIdentityDevice.bind(this)),this.getIdentityPairingRequest=this._timed(this._getIdentityPairingRequest.bind(this)),this.updateUserSettings=this._timed(this._updateUserSettings.bind(this)),this.updateDHTSettings=this._timed(this._updateDHTSettings.bind(this)),this.getDHTSettings=this._timed(this._getDHTSettings.bind(this)),this.getSwarmSettings=this._timed(this._getSwarmSettings.bind(this)),this.updateSwarmSettings=this._timed(this._updateSwarmSettings.bind(this)),this.addContact=this._timed(this._addContact.bind(this)),this.setContactAlias=this._timed(this._setContactAlias.bind(this)),this.removeContact=this._timed(this._removeContact.bind(this)),this.getActiveContacts=this.context.create(this._getActiveContacts.bind(this),["localSnapshot"]),this.getContactInfo=this.context.create(this._getContactInfo.bind(this),["local","profile"]),this.getBlockedMembers=this.context.create(this._getBlockedMembers.bind(this),["local"]),this.getDmRequestsByStatus=this.context.create(this._getDmRequestsByStatus.bind(this),["profile","profileDb","profileBlobsSnapshot"]),this.sendDMFromContact=this._timed(this._sendDMFromContact.bind(this)),this.sendDMRequest=this._timed(this._sendDMRequest.bind(this)),this.sendInvitations=this._timed(this._sendInvitations.bind(this)),this.updatePrivateMailboxRecord=this._timed(this._updatePrivateMailboxRecord.bind(this)),this.acceptDmRequest=this._timed(this._acceptDmRequest.bind(this)),this.rejectDmRequest=this._timed(this._rejectDmRequest.bind(this)),this.getRoomPreferences=this.context.create(this._getRoomPreferences.bind(this),["local"]),this.updateRoomPreferences=this.context.create(this._updateRoomPreferences.bind(this),["profile"]),this.updateConfig=this._timed(this._updateConfig.bind(this)),this.disableMembershipEvents=this._timed(this._disableMembershipEvents.bind(this)),this.enableMembershipEvents=this._timed(this._enableMembershipEvents.bind(this)),this.setRoomUnread=this._timed(this._setRoomUnread.bind(this)),this.getLinkInfo=this._timed(this._getLinkInfo.bind(this)),this.lookupUsername=this._timed(this._lookupUsername.bind(this)),this.lookupUserByMemberId=this._timed(this._lookupUserByMemberId.bind(this)),this.registerUsername=this._timed(this._registerUsername.bind(this)),this.updateUsername=this._timed(this._updateUsername.bind(this)),this.searchUsername=this._timed(this._searchUsername.bind(this)),this.getReservationsByKey=this._timed(this._getReservationsByKey.bind(this)),this.checkUsername=this._timed(this._checkUsername.bind(this)),this.repair=this._timed(this._repair.bind(this)),this.rotateWriter=this._timed(this._rotateWriter.bind(this)),this.audit=this._timed(this._audit.bind(this)),this.setUnread=this._setUnread.bind(this),this.getUnread=this._getUnread.bind(this),this.setUnreadAnchor=this._setUnreadAnchor.bind(this),this.getUnreadAnchor=this._getUnreadAnchor.bind(this),this.subscribeUnreadAnchor=this._subscribeUnreadAnchor.bind(this),this.updateTypingIndicator=this.context.create(this._updateTypingIndicator.bind(this),["db"]),this.getTypingIndicator=this.context.create(this._getTypingIndicator.bind(this),["db"]),this.subscribeTypingIndicator=this._subscribeTypingIndicator.bind(this),this.setRoomFavorite=this._setRoomFavorite.bind(this)}_timed(e){return async function(...t){const s=Date.now();try{const i=await e(...t);return this.keet.logger.debug("[Keet API]",e.name,"duration:",Date.now()-s,"args:",t),i}catch(e){throw this.keet.onerror(e),e}}}_boot(){return this.keet.backendReady()}_disableMembershipEvents(e){return this.keet.dispatch(e,"@keet/update-system-settings",{key:ne.IsMembershipEventsDisabled,settings:{isMembershipEventsDisabled:!0}})}_enableMembershipEvents(e){return this.keet.dispatch(e,"@keet/update-system-settings",{key:ne.IsMembershipEventsDisabled,settings:{isMembershipEventsDisabled:!1}})}_addKeetSubscription(e="keet",t){return this._addRoomSubscription(e,t)}_addRoomSubscription(e,t,{isProfileSub:s=!1,_isRoomSub:i=!0}={}){if(null===e&&s)return this._profileSubscriptions.add(t);let o=this._subscriptions.get(e);return o||(o=new We(this,e),this._subscriptions.set(e,o)),o.add(t)}_refreshSubscriptionsById(e){const t=e===this.keet.privateProfile?.id?this._subscriptions.get(Ue):this._subscriptions.get(e);t&&t.refresh()}_handleIdentityPairingRequest(e){this._identityPairingRequestsByDeviceId.set(s.encode(e.deviceKey),e),this._refreshSubscriptionsById("identity-pairing-requests")}_handleRoomInterrupted(e,{unsupportedABI:t,digest:s}){const i=this._subscriptions.get(e);if(i)for(const e of i.subscriptions)"room-version"===e.name&&e.stream.push({version:t,experimental:s&&s.settings.isExperimental})}async _handleRoomChanged(e){try{this.keet.onlineBoot.opened||await this.keet.onlineBoot.ready(),this._refreshSubscriptionsById(e)}catch(e){this.keet.onerror(e)}}_handleRecentRoomsChanged(...e){const t=this._subscriptions.get(Fe);t&&t.push(e)}_handleDmRoomsChanged(){const e=this._subscriptions.get(Le);e&&e.refresh()}_handleRoomPreferencesChanged(...e){const t=this._subscriptions.get(je);t&&t.push(e)}_handleUnreadAnchorsChanged(){const e=this._subscriptions.get(He);e&&e.refresh()}_handleRoomSentMessageLengthChanged(e){const t=this._subscriptions.get(e);t&&t.refresh({name:"room-info"})}_handleIdentityChanged(){this._refreshSubscriptionsById(Be)}async _handleChatChanged(...e){try{this.keet.onlineBoot.opened||await this.keet.onlineBoot.ready();const t=this._subscriptions.get(Te);if(!t)return;const[s,i]=e;if(s===this.keet.privateProfile.id)return;t.push({roomId:s,index:i})}catch(e){this.keet.onerror(e)}}_handleMigrationStatus(e){const t=this._subscriptions.get(Oe);t&&t.push(e)}_handleKeetError(e){const t=this._subscriptions.get(Ve);t&&t.push(e)}_handleForceUpdate(){const e=this._subscriptions.get(Ge);e&&e.refresh()}_handleVerifiedRoomsChanged(){for(const e of this._subscriptions.values())e.refresh({name:"room-info"})}_handleLocalFilesChanged(e){const t=this._subscriptions.get(e);t&&t.refresh({name:"room-info"})}_handleFavoriteRoomsChanged(...e){const t=this._subscriptions.get(xe);t&&t.push(e)}_handleContactsChanged(){for(const e of this._subscriptions.values())e.refresh({name:Ne})}getVersion(){return{buildType:this.keet.buildType,abi:this.keet.abi,modules:ze}}async _getSystemDigest({db:e}){return await e.get("@keet/system-digest")}subscribeSentLength(e){return this._addRoomSubscription(e,{query:async()=>{const t=this.keet.internalOpenExistingRoom(e);await t.ready();const s={deviceId:t.base.local.id,length:t.base.local.remoteContiguousLength};return this.keet.internalReleaseRoom(t),s},name:"room-sent-message"})}subscribeRoomVersion(e){return this._addRoomSubscription(e,{query:async()=>{const t=await this.getSystemDigest(e);return{version:t.abi.version,experimental:t.settings.isExperimental}},name:"room-version"})}subscribeForceUpdates(){return this._addKeetSubscription(Ge,{query:()=>({showBanner:this.keet.shouldForceUpdate()})})}async upgradeRoom(e){this.keet.opened||await this.keet.ready();const t=this.keet.isNightly?this.keet.abi.max:this.keet.abi.production;await this.keet.internalDispatchUpgrade(e,t)}async _getLinkInfo(e){const t=this.keet.internalGetLinkInfo(e);if(!t)return null;if(t.identity)return{isIdentityInvitation:!0,memberId:s.encode(t.identity.identityPublicKey),invitationSeed:s.encode(t.identity.invitationSeed),additionalNodes:t.additionalNodes};if(t.room){const e={capabilities:{mailboxKeyPair:{publicKey:t.room.mailbox}}},i=await this.keet.local.get("@local/rooms-by-mailbox",e);return{isRoomInvitation:!0,roomId:i?s.encode(i.roomKey):null,title:i?i.config.title:null,description:i?i.config.description:null,avatar:i?D(i.config.avatar):null,invitationSeed:s.encode(t.room.invitationSeed),additionalNodes:t.additionalNodes}}return t.profile?{isContactInfo:!0,memberId:s.encode(t.attestation.memberKey),displayName:t.profile.displayName,username:t.profile.username,additionalNodes:t.additionalNodes}:t.readonly?{isReadOnly:!0,additionalNodes:t.additionalNodes}:void 0}async _getSelfContactInfo({id:e,profileInfo:t}){const s=this.keet.internalCreateContactInfoStruct(e,t,{avatar:null,timestamp:0});return a.toString(s,"base64")}async _getIdentity({id:e,profile:t,profileSnapshot:i,profileInfo:o}){const[r,a]=await Promise.all([i.find("@keet/devices").toArray(),i.get("@keet-private-id/settings")]),n=[];for(const e of r)e.status.isActive&&n.push({...w(e),confirmed:!0});const c=v(o.selfMember,o.selfMember.key);return c.hasDiscoveryKey=!!o.identity.discoveryCoreKey,c.anonymous=!1,c.confirmed=e.status.isConfirmed,c.devices=n,c.profileId=t.id,c.profileDiscoveryId=t.discoveryId,c.local={deviceId:s.encode(t.deviceKey)},c.settings=A(a),c.isLoggedOut=o.selfDevice&&!o.selfDevice.status.isActive,c.version=o?.digest.abi.version,c}_removeIdentityDevice({profile:e},t){return e.dispatch("@keet/remove-device",{key:s.decode(t)})}subscribeIdentity(){return this._addKeetSubscription(Be,{query:()=>this.getIdentity()})}async _restoreIdentity(e,t={}){await this.keet.restoreIdentity(e,t)}_getRecoveryPhrase(){return this.keet.getRecoveryPhrase()}_getEncryptedRecoveryPhrase(e){return this.keet.getEncryptedRecoveryPhrase(e)}_decryptEncryptedRecoveryPhrase(e,t){return this.keet.decryptEncryptedRecoveryPhrase(e,t)}_freeRecoveryPhrase(e){return this.keet.freeRecoveryPhrase(e)}_confirmRecoveryPhrase(e){return this.keet.confirmRecoveryPhrase(e)}_storeRecoveryPhrase(e){return this.keet.storeRecoveryPhrase(e)}confirmIdentity(...e){throw console.log("confirmIdentity",...e),new Error("Missing required method: confirmIdentity")}async _confirmPairingRequest({deviceId:e},t=!0){this.keet.onlineBoot.opened||await this.keet.onlineBoot.ready();const i=this.keet.privateProfile.key,o=s.decode(e);return t?this.keet.acceptJoinRequest(i,o):this.keet.rejectJoinRequest(i,o)}async _getIdentityPairingRequest(){const e=await this.keet.internalOpenPrivateProfile(),t=await e.db.find("@keet/join-requests").toArray();return this.keet.internalReleaseRoom(e),0===t.length?null:I(t[0])}subscribeIdentityPairingRequests(...e){return this._addKeetSubscription(Be,{query:()=>this.getIdentityPairingRequest()})}async _updateIdentityProfile({displayName:e,avatar:t}){await this.updateMember(e,t)}_updateIdentityDevice(e){return this.keet.updateDevice(e)}_startPairingIdentity(e){return this.keet.startPairingIdentity(e)}pairIdentity(...e){throw console.log("pairIdentity",...e),new Error("Missing required method: pairIdentity")}async _updateUserSettings(e,t){this.keet.onlineBoot.opened||await this.keet.onlineBoot.ready();const s={[e]:t};if(e===se.stripAttachmentMetadata&&!await this.keet.internalFeatureSupported(this.keet.privateProfile.id,De.STRIP_ATTACHMENT_METADATA))throw new Error("Stripping attachment metadata not supported");if(e===se.profileSnoozeTime&&!await this.keet.internalFeatureSupported(this.keet.privateProfile.id,De.PROFILE_SNOOZE_TIME))throw new Error("Profile snoozing not supported");return this.keet.privateProfile.dispatch("@keet-private-id/update-settings",{key:e,settings:Y(s)})}async _getDHTSettings(){const e=await this.keet.getDHTSettings();return L(e)}async _updateDHTSettings(e,t){if(!(e in Me))throw Ee.INVALID_SETTINGS_KEY(`Invalid DHT settings key: ${e}`);const s=await this.keet.internalEnterLocalTransaction();try{const i=await this.keet.getDHTSettings();i[e]=t,await s.insert("@local/hyperdht",i),await s.flush()}finally{await this.keet.internalExitLocalTransaction()}}async _getSwarmSettings(){const e=await this.keet.getSwarmSettings();return T(e)}async _updateSwarmSettings(e,t){if(!(e in Ce))throw Ee.INVALID_SETTINGS_KEY(`Invalid swarm settings key: ${e}`);const s=await this.keet.internalEnterLocalTransaction();try{const i=await this.keet.getSwarmSettings();i[e]=t,await s.insert("@local/hyperswarm",i),await s.flush()}finally{await this.keet.internalExitLocalTransaction()}}async _createRoom(e={}){const t=await this.keet.createRoom(function(e={}){return{config:{title:e.config?.title,description:e.config?.description},settings:{roomType:it(e.config?.roomType),isCallingDisabled:"false"===e.config?.canCall}}}(e));return s.encode(t)}_pairRoom(...e){throw console.log("pairRoom",...e),new Error("Missing required method: pairRoom")}_leaveRoom(e,t={}){return this.keet.leaveRoom(s.decode(e))}async _startPairingRoom(e,t={}){return await this.keet.startPairingRoom(e,t)}async _stopPairingRoom({profile:e},t){const i=s.decode(t),o=await e.db.find("@keet-private-id/pending-invitations").toArray();for(const e of o)if(a.equals(e.invitationSeed,i)){await this.keet.stopPairing(e.id);break}}subscribePendingRooms(){return this._addKeetSubscription(Be,{query:()=>this.getPendingRooms()})}subscribePushNotificationChanges(){return this._addKeetSubscription(je,{map:function(e){const[t,o,r]=e,a=r||i.discoveryKey(o);return{type:t,roomId:s.encode(o),discoveryId:s.encode(a)}}})}subscribeActivateRoom(e){const t=s.decode(e);return new c({eagerOpen:!0,open:async e=>{let s=null;try{await this.keet.activateRoom(t)}catch(e){s=e}e(s)},destroy:async e=>{let s=null;try{await this.keet.deactivateRoom(t)}catch(e){s=e}e(s)}})}_getRoomKeys(e){try{const t=s.decode(e);return{discoveryKey:a.toString(i.discoveryKey(t),"hex")}}catch{return{discoveryKey:""}}}_getTipSize({base:e}){return e.linearizer.size}async _resyncPrivateProfile(){this.keet.onlineBoot.opened||await this.keet.onlineBoot.ready(),await this.keet.internalResyncPrivateProfile()}bookmark(...e){throw console.log("bookmark",...e),new Error("Missing required method: bookmark")}unbookmark(...e){throw console.log("unbookmark",...e),new Error("Missing required method: unbookmark")}subscribeBookmarks(...e){return console.log("subscribeBookmarks",...e),new c}async _loadRecents(e,t={}){const{index:s,range:i}=function(e){return e.favorites?{index:"@local/rooms-by-favorite-and-timestamp",range:{}}:e.default||e.dms||e.broadcast?{index:"@local/rooms-by-type-and-timestamp",range:{lte:{type:a(e)},gte:{type:a(e)}}}:{index:"@local/rooms-by-timestamp",range:{}}}(t),o=await e.find(s,{...t,...i,reverse:!0}).toArray(),r=await Promise.all(o.map(t=>e.get("@local/room-preferences",{roomKey:t.roomKey})));for(let e=0;e<r.length;e++){const t=r[e];t&&!t.status.isActive&&(o[e]=null)}return o;function a(e){return e.default?X.Default:e.dms?X.DirectMessage:e.broadcast?X.Broadcast:void 0}}async _getRoomInfo({localSnapshot:e},t){const o=s.decode(t),r=await e.get("@local/rooms",{roomKey:o});if(!r)return null;let a=v(r.lastMember);const[n,c,h]=await Promise.all([e.get("@local/room-preferences",{roomKey:r.roomKey}),r.lastMessage&&!a?e.get("@local/devices",{device:{key:r.lastMessage.oplog.key}}):null,e.get("@local/file-stats",{roomKey:r.roomKey})]);if(c){const t=await e.get("@local/members",{key:c.device.memberKey});t&&(a={id:s.encode(t.key),memberId:s.encode(t.key),displayName:t.profile.displayName})}if(r.lastMessage){const e=le(r,r.lastMessage.id);r.lastMessage.read=e}if(r.lastMessage?.event?.memberRemoved){const t=await e.get("@local/members",{key:r.lastMessage.event.memberRemoved.memberKey}),s=t?.profile?.displayName;r.lastMessage.event.memberRemoved.displayName=s}const d=r.selfDevice?i.discoveryKey(r.selfDevice.key):null,l=d?await this.keet.storage.getInfo(d,{hints:!0,auth:!1,head:!1}):null,u=k({roomInfo:r,preferences:n,lastMessageMember:a,storageInfo:l,fileStats:h});return u.isVerified=this.keet.isRoomVerified(t),u}async _searchRooms({local:e}){const t=await this._loadRecents(e),i=[];for(const e of t)e&&i.push({title:e.config.title,roomId:s.encode(e.roomKey)});return i}searchPublicRooms(e,t){return c.from(this._searchPublicRooms(e,t))}async*_searchPublicRooms(e=[],t={}){if(!this.keet.roomRegistry)return;const s=this.keet.local.snapshot();try{for await(const s of this.keet.roomRegistry.search(e)){const e=await i(s.roomKey);t.unjoined&&e||(this.keet.buildType===$.Nightly&&(s.invitation=null),yield N(s,e))}}finally{await s.close()}async function i(e){const t=await s.get("@local/rooms",{roomKey:e});return!!t&&!t.status.isRemoved}}async _getRecentRooms({local:e},t){const[i,o]=await Promise.all([this._loadRecents(e,t),e.get("@local/stats")]),r=[];for(const e of i)e&&r.push({timestamp:e.timestamps.latestChatMessage||e.timestamps.latestSync,roomId:s.encode(e.roomKey)});return{type:"all",total:o?o.activeRooms:0,rooms:r}}async _getPendingRooms({profile:e}){return(await e.db.find("@keet-private-id/pending-invitations").toArray()).map(R)}_getLocalRoomMetadata({local:e},t){return e.get("@local/rooms",{discoveryKey:s.decode(t)})}subscribeRecentRooms(e){return this._addKeetSubscription(Fe,{map:function(e){const[t,s,i]=e;return{type:t,timestamp:s,roomId:i}},query:()=>this.getRecentRooms(e)})}subscribeFavoriteRooms(){return this._addKeetSubscription(xe,{map:function(e){const[t,s,i]=e;return{type:t,timestamp:s,roomId:i}},query:()=>this.getRecentRooms({favorites:!0})})}subscribeRoomInfo(e,t){return this._addRoomSubscription(e,{query:()=>this.getRoomInfo(e,t),name:"room-info"})}subscribeUnreadActivity(e={}){return this._addKeetSubscription(Te,{map:({roomId:t,index:s})=>t?e.includeLength||e.includeIndex?{roomId:t,index:s}:{roomId:t}:null})}subscribeErrors(){return this._addKeetSubscription(Ve,{map:e=>F(e)})}subscribeNotifications(){const e=this.subscribeUnreadActivity({includeIndex:!0}),t=c.from(this._subscribeNotifications(e));return t.once("close",()=>{e.destroy()}),t}setCallRingingId(e){this._callRingingRoomId=e}setProcessingNotifications(e){this._processingNotifications=e}async*_subscribeNotifications(e){for await(const{roomId:i,index:o}of e){if(this.keet.closing)return;if(this._callRingingRoomId){if(i!==this._callRingingRoomId)continue;const e=await this.getChatMessage(i,o);if(this.keet.closing)return;e?.event?.type===we.CALL_HANGUP&&(yield{type:we.CALL_HANGUP})}if(this._processingNotifications)continue;if(this.keet.backendAPI.api.call.callIsActive)continue;const e=await this.getRoomPreferences(i,_e.IS_FULLY_MUTED);if(this.keet.closing)return;if(e||this._processingNotifications)continue;const[r,a,n]=await Promise.all([this.getConfig(i),this.getChatMessage(i,o),this.keet.local.get("@local/identity")]);if(this.keet.closing)return;if(!a||Math.abs(Date.now()-a.timestamp)>6e5)continue;const c=await this.getBlockedMembers();if(this.keet.closing)return;if(c.some(e=>e.memberId===a.memberId)||this._processingNotifications)continue;if(n&&s.encode(n.publicKey)===a.memberId)continue;const{settings:h}=await this.keet.local.get("@local/rooms",{roomKey:n.privateProfileKey});if(this.keet.closing)return;if((h?.profileSnoozeTime||0)>Date.now())continue;const d=`${a.id.deviceId}/b${a.id.seq}`,l=t(a),u=a.files.length>0&&a.files[0].metadata?.mimetype||"",m=await this.getMember(i,a.memberId);if(this.keet.closing)return;const p=a.chat?.text||"",g=it(r.roomType)===X.DirectMessage;if(!this._processingNotifications&&(p||l)){if(g&&"call"===l){if(Math.abs(Date.now()-a.timestamp)>2e4)continue;if(!(await this.getActiveCalls(i)).length)continue;yield{type:we.CALL_STARTED}}const e=await this.getRoomInfo(i);if(this.keet.closing)return;const t=e?.config?.avatar?.small?.pointer?.inlined??"",s=a.message?.generic?.locationShared;yield x({messageId:d,roomId:i,avatar:t,location:s,messageText:p,messageType:l,fileType:u},r,m)}}function t(e){return e.event?.type===we.CALL_STARTED?"call":e.files?.length>0?"file":e.message?.generic?.locationShared?"location":""}}async _setRoomUnread(e,t=!0){this.keet.onlineBoot.opened||await this.keet.onlineBoot.ready();const{privateProfileKey:i}=await this.keet.local.get("@local/identity"),o=await this.keet.local.get("@local/rooms",{roomKey:i});if(!o)return;const{isFeatureSupported:r,FEATURES:a}=this.keet.versions;if(!r(o.digest.abi.version,a.ROOM_MARK_UNREAD))throw new Error("Manual unread is not supported");await this.keet.privateProfile.dispatch("@keet-private-id/update-room-status",{roomKey:s.decode(e),key:oe.IsUnread,status:{isUnread:t}})}bumpRoomPriority(...e){throw console.log("bumpRoomPriority",...e),new Error("Missing required method: bumpRoomPriority")}addDevice(...e){throw console.log("addDevice",...e),new Error("Missing required method: addDevice")}removeDevice(...e){throw console.log("removeDevice",...e),new Error("Missing required method: removeDevice")}async _getDevice({db:e},t){const s=await e.findOne("@keet/devices",V({gte:t,lte:t}));return s?w(s):null}async _getDevices({db:e},t){return(await e.find("@keet/devices",V(t)).toArray()).map(e=>w(e))}async moveIndexer(e,t,i){if(!await this.keet.internalFeatureSupported(e,De.MOVE_INDEXER))throw new Error("Move indexer not supported");const o=s.decode(t),r=s.decode(i);return this.keet.dispatch(e,"@keet/move-indexer",{deviceKey:o,fromDeviceKey:r})}subscribeDevice(e,...t){return this._addRoomSubscription(e,{query:()=>this.getDevice(e,...t)})}subscribeDevices(e,...t){return this._addRoomSubscription(e,{query:()=>this.getDevices(e,...t)})}async _createIdentityInvitation(){return this.keet.createIdentityInvitation()}_createInvitation(e,t={}){return!0===t.canIndex&&(t.canAdmin=!0),this.keet.createRoomInvitation(s.decode(e),t)}async _updateMember(e,t){this.keet.onlineBoot.opened||await this.keet.onlineBoot.ready();const i=await this.keet.local.get("@local/identity");if(i&&s.encode(i.privateProfileKey))return t=W(t),this.keet.updateProfile({displayName:e,avatar:t})}async _muteMember(e,t){const i=s.decode(t);return this.keet.dispatch(e,"@keet/change-member-status",{memberKey:i,key:pe.IsMuted,status:{isMuted:!0}})}async _unmuteMember(e,t){const i=s.decode(t);return this.keet.dispatch(e,"@keet/change-member-status",{memberKey:i,key:pe.IsMuted,status:{isMuted:!1}})}async _isMemberMuted({db:e},t){const i=s.decode(t);return!!await e.get("@keet/muted-members",{key:i})}async _getMemberByDeviceId({myKey:e,snapshot:t,blobsSnapshot:i,localSnapshot:o},r){const a=await Re(t,s.decode(r));if(!a)return null;const n=!!await o.get("@local/active-contacts",{memberKey:a.key});return await ve(i,a.profile.avatar),await at(t,a),v(a,e,n)}async _getMemberBySwarmId({myKey:e,snapshot:t,blobsSnapshot:i,localSnapshot:o},r){const a=s.decode(r),n=await t.get("@keet/devices-by-swarm-key",{profile:{swarmKey:a}});if(!n)return null;const c=await Re(t,n.key);if(!c)return null;const h=!!await o.get("@local/active-contacts",{memberKey:c.key});return await ve(i,c.profile.avatar),await at(t,c),v(c,e,h)}async _getMemberCount({db:e}){const t=await e.get("@keet/threads",{id:0});return t?t.stats.members.active:0}async _getDevicesByMemberId({db:e},t){const i=[],o=s.decode(t),r={gte:{memberKey:o},lte:{memberKey:o}};for await(const t of e.find("@keet/devices-by-member-key",r))i.push(w(t));return i}getCurrentDeviceId(e){const t=this.keet.internalOpenExistingRoom(e);try{return t.deviceId}finally{this.keet.internalReleaseRoom(t)}}async _getMember({roomId:e,myKey:t,base:i,snapshot:o,blobsSnapshot:r,localSnapshot:a},n,c={}){const h=s.decode(n);if(!0===c.swarmId)return this.getMemberBySwarmId(e,n);const d=await o.get("@keet/members",{key:h});if(!d)return null;const l=!!await a.get("@local/active-contacts",{memberKey:d.key});return await ve(r,d.profile.avatar),await at(o,d),v(d,t,l)}async _getActiveMember({myKey:e,snapshot:t,blobsSnapshot:i,localSnapshot:o},r){const a=await t.get("@keet/active-members",{key:s.decode(r)});if(!a)return null;const n=!!await o.get("@local/active-contacts",{memberKey:a.key});return await ve(i,a.profile.avatar),await at(t,a),v(a,e,n)}async _removeMember(e,t){const i=s.decode(e),o=await this.keet.local.get("@local/rooms",{roomKey:i});if(!o)return;const{isFeatureSupported:r,FEATURES:a}=this.keet.versions;return r(o.digest.abi.version,a.REMOVE_MEMBER_V2)?this.keet.dispatch(e,"@keet/remove-member",{key:s.decode(t)}):void 0}async _getMembers({myKey:e,snapshot:t,blobsSnapshot:s,localSnapshot:i},o={}){const r=await t.find("@keet/members",V(o)).toArray();return Promise.all(r.map(async o=>{const r=!!await i.get("@local/active-contacts",{memberKey:o.key});return await ve(s,o.profile.avatar),await at(t,o),v(o,e,r)}))}async _getActiveMembers({myKey:e,snapshot:t,blobsSnapshot:s,localSnapshot:i},o={}){const r=await t.find("@keet/active-members",V(o)).toArray();return Promise.all(r.map(async o=>{const r=!!await i.get("@local/active-contacts",{memberKey:o.key});return await ve(s,o.profile.avatar),await at(t,o),v(o,e,r)}))}async _getModerators({myKey:e,snapshot:t,blobsSnapshot:s,localSnapshot:i},o={}){const r=await t.find("@keet/moderators",V(o)).toArray();return Promise.all(r.map(async o=>{const r=!!await i.get("@local/active-contacts",{memberKey:o.key});return await ve(s,o.profile.avatar),await at(t,o),v(o,e,r)}))}getMemberForDevice(...e){throw console.log("getMemberForDevice",...e),new Error("Missing required method: getMemberForDevice")}subscribeMemberCount(e,...t){return this._addRoomSubscription(e,{query:()=>this.getMemberCount(e,...t),name:Ne})}subscribeMember(e,...t){return this._addRoomSubscription(e,{query:()=>this.getMember(e,...t),name:Ne})}subscribeActiveMember(e,...t){return this._addRoomSubscription(e,{query:()=>this.getActiveMember(e,...t),name:Ne})}subscribeActiveMembers(e,...t){return this._addRoomSubscription(e,{query:()=>this.getActiveMembers(e,...t),name:Ne})}subscribeMembers(e,...t){return this._addRoomSubscription(e,{query:()=>this.getMembers(e,...t),name:Ne})}subscribeModerators(e,...t){return this._addRoomSubscription(e,{query:()=>this.getModerators(e,...t),name:Ne})}subscribeMemberForDevice(e,...t){return this._addRoomSubscription(e,{query:()=>this.getMemberByDeviceId(e,...t),name:Ne})}_changeMemberRole(e,{memberId:t,role:i}){return this.keet.dispatch(e,"@keet/change-member-role",{key:s.decode(t),isAdmin:i===ge.ADMIN,isModerator:i===ge.ADMIN||i===ge.MODERATOR})}async _getSearchMembers({myKey:e,snapshot:t,blobsSnapshot:s,localSnapshot:i},o,{limit:r=50}={}){o=o.toLowerCase();const a=await t.find("@keet/members-by-member-name",{gte:{name:o},limit:r}).toArray();return(await Promise.all(a.map(async o=>{const r=!!await i.get("@local/active-contacts",{memberKey:o.key});return await ve(s,o.profile.avatar),await at(t,o),v(o,e,r)}))).filter(e=>e.name.startsWith(o))}getPushNotificationMembers(...e){throw console.log("getPushNotificationMembers",...e),new Error("Missing required method: getPushNotificationMembers")}subscribeSearchMembers(...e){return console.log("subscribeSearchMembers",...e),new c}subscribePushNotificationMembers(...e){return console.log("subscribePushNotificationMembers",...e),new c}async _addContact(e,t,i){const o=s.decode(e);await this.keet.addContact(o,t,i)}async _setContactAlias(e,t){const i=s.decode(e);await this.keet.setContactAlias(i,t)}async _removeContact(e){const t=s.decode(e);await this.keet.removeContact(t)}async _getActiveContacts({localSnapshot:e}){return me(e.find("@local/active-contacts"),async t=>{const s=await e.get("@local/members",{key:t.memberKey});return U(t,s)})}subscribeActiveContacts(){return this._addRoomSubscription(Ue,{query:()=>this.getActiveContacts()})}async _getContactInfo({local:e,profile:t},i){const o=s.decode(i),[r,a,n]=await Promise.all([e.get("@local/contacts",{memberKey:o}),e.findOne("@local/rooms-by-contact",{gte:{contact:o},lte:{contact:o}}),t.db.findOne("@keet-private-id/pending-contact-requests-by-member",{gte:{memberKey:o},lte:{memberKey:o}})]);return K(i,r,a,n)}subscribeContactInfo(e){return this._addRoomSubscription(Le,{query:async()=>{const t=this.keet.local.snapshot();try{const i=s.decode(e),[o,r]=await Promise.all([t.get("@local/contacts",{memberKey:i}),t.findOne("@local/rooms-by-contact",{gte:{contact:i},lte:{contact:i}})]);return K(e,o,r,null)}finally{await t.close()}}})}async _blockMember(e,t){const i=s.decode(t);return this.keet.blockContact(i)}async _unblockMember(e,t){const i=s.decode(t);return this.keet.unblockContact(i)}async _getBlockedMembers({local:e}){return(await e.find("@local/blocked-contacts").toArray()).map(({memberKey:e})=>({memberId:s.encode(e)}))}subscribeBlockedMembers(){return this._addRoomSubscription(Ue,{query:()=>this.getBlockedMembers()})}getConnectedMembers(...e){throw console.log("getConnectedMembers",...e),new Error("Missing required method: getConnectedMembers")}subscribeConnectedMembers(...e){return console.log("subscribeConnectedMembers",...e),new c}async _updateConfig(e,t,s){const i=function(e){switch(e){case"title":return re.Title;case"avatar":return re.Avatar;case"description":return re.Description;case"supportedLanguages":return re.SupportedLanguages;case"blindPeers":return re.BlindPeers;default:return 0}}(t);if(0!==i){const t={[ae[i-1]]:s};await this.keet.dispatch(e,"@keet/update-room-config",{key:i,config:z(t)})}else if("roomType"===t){const t=it(s);if(0===t)throw new Error("Invalid room type");await this.keet.dispatch(e,"@keet/update-system-settings",{key:ne.RoomType,settings:{roomType:t}})}else{if("canCall"!==t)throw new Error("Invalid config key");await this.keet.dispatch(e,"@keet/update-system-settings",{key:ne.IsCallingDisabled,settings:{isCallingDisabled:"false"===s}})}}async _updateRoomPreferences({profile:e},t,i,o){if(!ye(i))throw new Error(`invalid preference key: ${i}`);const r=s.decode(t);await this.keet.dispatch(e.id,"@keet-private-id/update-room-status",{roomKey:r,key:st(i),status:{[fe(i)]:o}})}async _updateRoomSettings(e,t,i){if(t===te.IsAttachmentsDisabled&&!await this.keet.internalFeatureSupported(e,De.DISABLE_FILE_ATTACHMENTS))throw new Error("Disabling file attachments not supported");if(t===te.IsLinksDisabled&&!await this.keet.internalFeatureSupported(e,De.DISABLE_LINKS))throw new Error("Disabling links not supported");if(t===te.IsRoomInviteHidden&&!await this.keet.internalFeatureSupported(e,De.HIDE_ROOM_INVITE))throw new Error("Hiding room invite not supported");const o=s.decode(e);return this.keet.dispatch(o,"@keet/update-system-settings",{key:t,settings:i})}async _getRoomSettings(e){const t=s.decode(e),i=this.keet.internalOpenExistingRoom(t);try{return(await i.db.get("@keet/system-digest")).settings}finally{this.keet.internalReleaseRoom(i)}}async _getRoomPreferences({local:e},t,i){const o=s.decode(t),r=await e.get("@local/room-preferences",{roomKey:o});if(!r)return null;const{status:a}=r;return ye(i)?i?a[fe(i)]:a:null}async _getConfig({roomKey:e,local:t},s){const i=await t.get("@local/rooms",{roomKey:e});if(!i)return null;const{config:o,digest:r}=i,a=_(o,r)||{};return s?a[s]:a}subscribeConfig(e){return this._addRoomSubscription(e,{query:()=>this.getConfig(e)})}async _addChatMessage(e,t,i={}){const o=s.decode(e),r=await this.keet.local.get("@local/rooms",{roomKey:o});if(!r)return;const a=j(t,i),n=ot(a),{isFeatureSupported:c,FEATURES:h}=this.keet.versions,d=c(r.digest.abi.version,h.MULTI_FILES);if(a.files.length&&!d)throw new Error("multi files not supported");const l=this.keet.batch(e);return 0!==await l.dispatch("@keet/add-chat-message",{timestamp:Date.now(),message:a})?((n.files.length||n.pearLink.length||n.httpLink.length)&&await rt(l,n),await l.flush()):void 0}async _updateChatMessage(e,t,i,o={}){const r=s.decode(e),a=await this.keet.local.get("@local/rooms",{roomKey:r});if(!a)return;const n=H(t),c=j(i,o),h=ot(c),{isFeatureSupported:d,FEATURES:l}=this.keet.versions,u=d(a.digest.abi.version,l.MULTI_FILES);if(c.files.length&&!u)throw new Error("multi files not supported");const m=this.keet.batch(e);0!==await m.dispatch("@keet/update-chat-message",{oplog:n,message:c})&&((h.files.length||h.pearLink.length||h.httpLink.length)&&await rt(m,h,n),await m.flush())}async _removeChatMessage({roomKey:e,local:t,roomId:s,snapshot:i,blobsSnapshot:o,files:r},a){const n=await this._getChatMessageById({roomKey:e,local:t,snapshot:i,blobsSnapshot:o,files:r},a);if(!n)return null;if(n.files.length){const t=[];for(const s of n.files)t.push(this._clearFile({roomKey:e,files:r},s));await Promise.all(t)}return this.keet.dispatch(s,"@keet/remove-chat-message",{oplog:H(a)})}async _forwardChatMessage({roomKey:e,local:t,roomId:i,snapshot:o,blobsSnapshot:r,files:a},n,c){const[h,d]=await Promise.all([this.keet.local.get("@local/rooms",{roomKey:e}),this.keet.local.get("@local/rooms",{roomKey:s.decode(c)})]);if(!h||!d)return;const{isFeatureSupported:l,FEATURES:u}=this.keet.versions;if(!l(h.digest.abi.version,u.FORWARDED_MESSAGE))throw new Error("Message forwarding not supported");if(!l(d.digest.abi.version,u.FORWARDED_MESSAGE))throw new Error("Message forwarding not supported");const m=await o.get("@keet/chat-by-message-id",{oplog:H(n)});if(!m)throw new Error("Source message not found");if(!m.message.text)throw new Error("Source message has no text");const p=m.message.display||{};for(const e of p.httpLink||[])e.preview=null;for(const e of p.pearLink||[])e.preview=null;const g={text:m.message.text,forwarded:!0,files:[],display:p,replyTo:null,event:null};return this.keet.dispatch(c,"@keet/add-chat-message",{timestamp:Date.now(),message:g})}_pinChatMessage(e,t){return this.keet.dispatch(e,"@keet/pin-chat-message",{oplog:H(t),isPinned:!0})}_unpinChatMessage(e,t){return this.keet.dispatch(e,"@keet/pin-chat-message",{oplog:H(t),isPinned:!1})}async startCall(e,t={}){const o=await this.keet.internalFeatureSupported(e,De.CALLS_V2);if(this.keet.backendAPI.call.setSkipJoinLeave(o),!o)return this.addCallStartedEvent(e);const r=s.decode(e),{version:a,callId:n,encryptionId:c}=t;if(!a)throw new Error("Call version required");if(2===a&&!n)throw new Error("Calls v2 requires callId");if((await this._getRoomSettings(e)).isCallingDisabled)throw Ee.CALL_DISABLED();const h=await this.keet.local.get("@local/rooms",{roomKey:r}),d=2===a?s.decode(n):i.randomBytes(32),l=c?s.decode(c):h.encryptionKey,u=1===a?h.discoveryKey:null,m=Array.isArray(t?.streams)?t.streams:[];return this.keet.dispatch(e,"@keet/start-call",{version:a,callKey:d,encryptionKey:l,discoveryKey:u,streams:m.map(e=>s.decode(e))})}async joinCall(e,t,i=[]){const o=await this.keet.internalFeatureSupported(e,De.CALLS_V2);if(this.keet.backendAPI.call.setSkipJoinLeave(o),o)return this.keet.dispatch(e,"@keet/join-call",{callKey:s.decode(t),streams:i.map(e=>s.decode(e))})}async leaveCall(e,t){if(await this.keet.internalFeatureSupported(e,De.CALLS_V2))return this.keet.dispatch(e,"@keet/leave-call",{callKey:s.decode(t)})}async endCall(e,t){if(!await this.keet.internalFeatureSupported(e,De.CALLS_V2)){const t=s.decode(e);if(!(await this.keet.local.get("@local/rooms",{roomKey:t})).dm)return;return this.addCallHangupEvent(e)}return this.keet.dispatch(e,"@keet/end-call",{callKey:s.decode(t)})}async addCallStream(e,t,i){if(!await this.keet.internalFeatureSupported(e,De.CALLS_V2))throw new Error("Calls v2 is not supported");return this.keet.dispatch(e,"@keet/add-call-stream",{callKey:s.decode(t),streamKey:s.decode(i)})}async removeCallStream(e,t,i){if(!await this.keet.internalFeatureSupported(e,De.CALLS_V2))throw new Error("Calls v2 is not supported");return this.keet.dispatch(e,"@keet/remove-call-stream",{callKey:s.decode(t),streamKey:s.decode(i)})}async startCallRecording(e,t){if(!await this.keet.internalFeatureSupported(e,De.CALL_RECORDING))throw new Error("Call recording is not supported");return this.keet.dispatch(e,"@keet/start-call-recording",{callKey:s.decode(t)})}async stopCallRecording(e,t){if(!await this.keet.internalFeatureSupported(e,De.CALL_RECORDING))throw new Error("Call recording is not supported");return this.keet.dispatch(e,"@keet/stop-call-recording",{callKey:s.decode(t)})}async _getActiveCalls({snapshot:e}){return ue(e,"@keet/active-calls-by-timestamp")}async _getCalls({snapshot:e}){return ue(e,"@keet/calls-by-timestamp")}subscribeActiveCalls(e,...t){return this._addRoomSubscription(e,{query:()=>this.getActiveCalls(e,...t)})}subscribeCalls(e,...t){return this._addRoomSubscription(e,{query:()=>this.getCalls(e,...t)})}_addCallStartedEvent(e){return this.addChatMessage(e,null,{callStarted:!0})}_addCallHangupEvent(e){return this.addChatMessage(e,null,{callHangup:!0})}_addCallMissedEvent(e){return this.addChatMessage(e,null,{callMissed:!0})}async _addLocationSharedEvent(e,t,{locationShared:{latitude:i,longitude:o}}){const r=s.decode(e),a=await this.keet.local.get("@local/rooms",{roomKey:r});if(!a)return;const{isFeatureSupported:n,FEATURES:c}=this.keet.versions;if(!n(a.digest.abi.version,c.LOCATION_SHARED_EVENT))throw new Error("Location sharing not supported");return this.addChatMessage(e,t,{locationShared:{latitude:i,longitude:o}})}addRoomAvatarChangedEvent(...e){console.log("addRoomAvatarChangedEvent",...e),console.warn("Missing required method: addRoomAvatarChangedEvent")}addEvent(...e){console.log("addEvent",...e),console.warn("Missing required method: addEvent")}removeEvent(...e){console.log("removeEvent",...e),console.warn("Missing required method: removeEvent")}async _getChatMessage({roomKey:e,local:t,snapshot:s,blobsSnapshot:i,files:o},r){return(await ce(async function(){const t=O(e,{gte:r,lte:r});return await s.findOne("@keet/chat",t)},e,t,s,i,o))[0]}async _getChatMessageById({roomKey:e,local:t,snapshot:s,blobsSnapshot:i,files:o},r){return(await ce(async function(){return await s.get("@keet/chat-by-message-id",{oplog:H(r)})},e,t,s,i,o))[0]}async _getChatMessages({roomKey:e,local:t,snapshot:s,blobsSnapshot:i,files:o},r){return await ce(async function(){const t=O(e,r);return await s.find("@keet/chat",t).toArray()},e,t,s,i,o)}async _getPinnedChatMessages({roomKey:e,local:t,snapshot:s,blobsSnapshot:i,files:o},r){return await ce(async function(){return await s.find("@keet/pinned-chat-messages",r).toArray()},e,t,s,i,o)}async _getChatLength({db:e}){const t=await e.get("@keet/threads",{id:0});return{length:t?t.count:0}}subscribeChatMessages(e,...t){return this._addRoomSubscription(e,{query:()=>this.getChatMessages(e,...t)})}subscribeChatLength(e,t){let s=0;return this._addRoomSubscription(e,{query:async()=>{if(!t||!t.reorders)return this.getChatLength(e);if(this.keet.closing)return null;const i=this.keet.internalOpenExistingRoom(e);try{const{length:t}=await this.getChatLength(e),o=i.base.view.core.fork!==s;return s=i.base.view.core.fork,{length:t,reordered:o}}finally{this.keet.internalReleaseRoom(i)}}})}async _searchChatMessages({snapshot:e,roomKey:t,local:s,blobsSnapshot:i,files:o},a,{limit:n=1e3,reverse:c=!0}={}){if(!a||!a.length)return[];const h=await s.get("@local/rooms",{roomKey:t});if(!h)return[];if(!(a=a.map(e=>e.replace(/\s/g,"").toLowerCase()).filter(e=>e)).length)return[];const d=[];for await(const s of e.find("@keet/chat",{limit:n,reverse:c})){if(!s.message?.text)continue;const n=s.message.text.replace(/\s/g,"").toLowerCase();if(a.every(e=>n.indexOf(e)>-1)){const a=he(t,e,i,h,o,s);a.catch(r),d.push(a)}}return Promise.all(d)}createChatSearchStream(e,t,s){return c.from(this._createChatSearchGenerator(e,t,s))}async*_createChatSearchGenerator(e,t,{limit:i=1e3,reverse:o=!0}={}){if(!t||!t.length)return;if(!(t=t.map(e=>e.replace(/\s/g,"").toLowerCase()).filter(e=>e)).length)return;const r=s.decode(e),a=await this.keet.local.get("@local/rooms",{roomKey:r});if(!a)return;const n=this.keet.internalOpenExistingRoom(r);await n.ready();const c=n.db.snapshot(),h=n.blobs.snapshot(),d=this.keet.local.snapshot(),l=this.keet.files,u=c.find("@keet/chat",{limit:i,reverse:o});try{for await(const e of u){const t=await m(e);t&&(yield t)}}catch(e){this.keet.onerror(e)}finally{await d.close(),await c.close(),await h.close(),this.keet.internalReleaseRoom(n)}async function m(e){const t=p(e.message?.text);let i=!1;if(e&&e.message&&e.message.files&&(i=!!e.message.files.length),!i&&!g(t))return;const o=await he(r,c,h,a,l,e);if(i&&!g(t)&&!function(e){return e.files.some(e=>g(p(e.metadata?.name)))}(o))return;if(o.labels.flagged||o.labels.flags>=ke)return;const n=s.decode(o.memberId);return await d.get("@local/blocked-contacts",{memberKey:n})||await c.get("@keet/muted-members",{key:n})||o.reactions.digest.reactions.find(e=>"⚠️"===e.text)?void 0:o}function p(e){return e?e.replace(/\s/g,"").toLowerCase():""}function g(e){return!!e&&t.every(t=>e.indexOf(t)>-1)}}_sendDMFromContact(e,{message:t=null}={}){return this.keet.sendContactRequestFromContact(e,{message:t})}_sendDMRequest(e,t,{message:s=null}={}){return this.sendInvitations(e,{receivers:[t],message:s})}async _sendInvitations(e,{receivers:t,message:i}){const o=s.decode(e),r=Array.isArray(t)?t[0]:t,a=s.decode(r);await this.keet.sendContactRequest(o,a,{message:i})}async _updatePrivateMailboxRecord({memberId:e,roomId:t},i={}){this.keet.onlineBoot.opened||await this.keet.onlineBoot.ready();const o=i.isSeen||1===i.seen;return this.keet.privateProfile.dispatch("@keet-private-id/update-contact-request-status",{memberKey:s.decode(e),roomKey:s.decode(t),key:ie.IsSeen,status:{isSeen:o}})}async _getDmRequestsByStatus({profileDb:e},t,{reverse:s=!0}={}){if(!e)return[];const i={[be.ACCEPTED]:"@keet-private-id/accepted-contact-requests-v2",[be.REJECTED]:"@keet-private-id/rejected-contact-requests-v2",[be.PENDING]:"@keet-private-id/pending-contact-requests-v2",[be.DISCARDED]:"@keet-private-id/discarded-contact-requests-v2"}[t]||"@keet-private-id/pending-contact-requests-v2";return(await e.find(i,{reverse:s}).toArray()).map(M)}subscribeDmRequestsByStatus(e,t={}){return this._addRoomSubscription(Ue,{query:()=>this.getDmRequestsByStatus(e,t)})}async _getPrivateMailboxRecords({profile:e},t={}){console.warn("Deprecated: getPrivateMailboxRecords")}subscribePrivateMailbox(){return console.warn("Deprecated: subscribePrivateMailbox"),new c}getSentPrivateMailboxRecords(...e){console.warn("Deprecated: getSentPrivateMailboxRecords")}subscribeSentPrivateMailbox(...e){return console.warn("Deprecated: subscribeSentPrivateMailbox"),new c}async _getDmByMemberId({profileSnapshot:e},t){const o=s.decode(t),[r,a]=await Promise.all([e.get("@keet-private-id/contacts",{memberKey:o}),e.get("@keet-private-id/contact-requests",{memberKey:o})]);let n=null;return r&&r.roomKey?n=r.roomKey:a&&(n=a.keys.key),{roomId:n?s.encode(n):null,discoveryId:n?s.encode(i.discoveryKey(n)):null,dmMemberId:t,recipient:t}}async updateRoomInvitationSeenStatus({discoveryId:e,invitationId:t},i){return this.keet.updateRoomInvitationSeenStatus(s.decode(e),s.decode(t),i)}async _acceptDmRequest({memberId:e,roomId:t}){return this.keet.onlineBoot.opened||await this.keet.onlineBoot.ready(),this.keet.privateProfile.dispatch("@keet-private-id/update-contact-request-status",{memberKey:s.decode(e),roomKey:s.decode(t),key:ie.IsAccepted,status:{isAccepted:!0}})}async _rejectDmRequest({memberId:e,roomId:t}){return this.keet.onlineBoot.opened||await this.keet.onlineBoot.ready(),this.keet.privateProfile.dispatch("@keet-private-id/update-contact-request-status",{memberKey:s.decode(e),roomKey:s.decode(t),key:ie.IsRejected,status:{isRejected:!0}})}async discardDmRequest({memberId:e,roomId:t}){return this.keet.onlineBoot.opened||await this.keet.onlineBoot.ready(),this.keet.privateProfile.dispatch("@keet-private-id/update-contact-request-status",{memberKey:s.decode(e),roomKey:s.decode(t),key:ie.IsDiscarded,status:{isDiscarded:!0}})}_addReaction(e,t,i){return this.keet.dispatch(e,"@keet/add-reaction",{oplog:{key:s.decode(t.deviceId),seq:t.seq},reaction:i})}_removeReaction(e,t,i){return this.keet.dispatch(e,"@keet/remove-reaction",{oplog:{key:s.decode(t.deviceId),seq:t.seq},reaction:i})}async _getLatestReactions({snapshot:e},t,s,{limit:i}={}){const{id:o}=await e.get("@keet/chat-by-message-id",{oplog:H(t)});return(await e.find("@keet/reactions-by-clock",{gte:{id:o,reaction:s},lte:{id:o,reaction:s},limit:i,reverse:!0}).toArray()).map(e=>C(e))}async _getReactions({roomKey:e,snapshot:t,local:s},i){const o=H(i);return de({roomKey:e,snapshot:t,local:s,oplog:o})}subscribeReactions(e,t){return this._addRoomSubscription(e,{query:()=>this.getReactions(e,t)})}subscribeReportedMessages(e,...t){return this._addRoomSubscription(e,{query:()=>this.getReportedMessages(e,...t)})}subscribeReportedMembers(e,...t){return this._addRoomSubscription(e,{query:()=>this.getReportedMembers(e,...t),name:Ne})}async _getReportedMembers({snapshot:e,blobsSnapshot:t,localSnapshot:i},{clock:o,limit:r=50}={}){const a=await e.find("@keet/member-label-digests-by-clock",{gte:{label:ee.Flag},lte:{label:ee.Flag,clock:o},limit:r<=50?r:50,reverse:!0}),n=[];for await(const e of a){const t=c.bind(this);n.push(t(e))}return await Promise.all(n);async function c(o){const{key:r,total:a,flagsClock:n}=o,c=await this._getMember({snapshot:e,blobsSnapshot:t,localSnapshot:i},s.encode(r));return c.labels={total:a,flagsClock:n},c}}reportMember(e,t){return this.keet.dispatch(e,"@keet/add-member-label",{key:s.decode(t),label:ee.Flag})}async _getReportedMessages({roomKey:e,local:t,snapshot:s,blobsSnapshot:i,files:o},{clock:r,limit:a=50}={}){const n=await t.get("@local/rooms",{roomKey:e});if(!n)return;const c=await s.find("@keet/chat-label-digests-by-clock",{gte:{label:Q.Flag},lte:{label:Q.Flag,clock:r},limit:a<=50?a:50,reverse:!0}),h=[];for await(const{id:e}of c)h.push(d(e));return await Promise.all(h);async function d(t){const r=await s.findOne("@keet/chat",{gte:{id:t},lte:{id:t}});return he(e,s,i,n,o,r)}}_addChatReport(e,t){const s=H(t);return this.keet.dispatch(e,"@keet/add-chat-label",{oplog:s,label:Q.Flag})}_removeChatReport(e,t){const s=H(t);return this.keet.dispatch(e,"@keet/remove-chat-label",{oplog:s,label:Q.Flag})}async _dismissChatReports(e,t){if(!await this.keet.internalFeatureSupported(e,De.DISMISS_CHAT_REPORTS))throw new Error("Dismissing chat reports is not supported");const s=H(t);return this.keet.dispatch(e,"@keet/dismiss-chat-reports",{oplog:s})}addFileBlob(...e){throw console.log("addFileBlob",...e),new Error("Missing required method: addFileBlob")}addFile(...e){throw console.log("addFile",...e),new Error("Missing required method: addFile")}async _saveFileBlob({roomKey:e,files:t},s,i){const o=await t.saveFileBlob(e,s,i);return S(o)}async _saveFile({roomKey:e,files:t},s,i){const o=await t.saveFile(e,s,i);return S(o)}subscribeAddFile(e,t,i){const o=s.decode(e);return d(this.keet.files.subscribeAddFile(o,t,i),new h({transform(e,t){t(null,{...e,result:S(e.result)})}}))}async _sendFile(e,t){const s=t.preview;t.preview=null;const i=this.keet.batch(e),o=await i.dispatch("@keet/add-chat-message",{timestamp:Date.now(),message:j(null,{files:[t]})});0!==o&&(s&&await i.dispatch("@keet/add-file-preview",{oplog:{key:i.key,seq:o-1},index:0,preview:W(s)},{dryRun:!1}),await i.flush())}async _sendFiles(e,t=[]){const s=[];for(const e of t)s.push(e.preview),e.preview=null;const i=this.keet.batch(e),o=await i.dispatch("@keet/add-chat-message",{timestamp:Date.now(),message:j(null,{files:t})});if(0===o)return;const r={key:i.key,seq:o-1};for(let e=0;e<s.length;e++){const t=s[e];t&&await i.dispatch("@keet/add-file-preview",{oplog:r,index:e,preview:W(t)},{dryRun:!1})}await i.flush()}removeFile(...e){throw console.log("removeFile",...e),new Error("Missing required method: removeFile")}subscribeFileInfo(e,t){const i=s.decode(e),o=this;let r=null;return new c({async open(e){let s=null;try{r=await o.keet.files.monitor(i,G(t)),r.on("update",e=>{this.push(r.stats)})}catch(e){s=e}e(s)},async destroy(e){r&&r.close(),e(null)}})}async _clearAllFiles({roomId:e,roomKey:t,files:s},i){const o=await s.clearAllFiles(t,i);return this.keet.emit("local-files-changed",e),o}async _clearOldFiles(){return this.keet.files.clearOldFiles()}async _getFileEntry({roomKey:e,files:t},s){const i=await t.getFileEntry(e,G(s));return q(i)}async _getLocalFiles({roomKey:e,files:t,blobsSnapshot:s}){const i=await t.getLocalFiles(e);return Promise.all(i.map(async i=>{const o=await t.getFileEntryWithPreview(e,i.file,{loadBlob:e=>s.get(e)});return{...S(o.file),entry:q(o)}}))}async _getFiles({roomKey:e,files:t,snapshot:i,blobsSnapshot:o},r={}){const a=J(r),n=await i.find(r.type?"@keet/files-by-major-type":"@keet/active-files",a).toArray();return Promise.all(n.map(async i=>{const r=await t.getFileEntryWithPreview(e,i.file,{loadBlob:e=>o.get(e)});return{...S(r.file),id:i.id,messageId:{deviceId:s.encode(i.oplog.key),seq:i.oplog.seq},entry:q(r)}}))}_startDownload({roomKey:e,files:t},s){return t.startDownload(e,G(s))}_cancelDownload({roomKey:e,files:t},s){return t.cancelDownload(e,s)}readFileStream(e,t,i){const o=s.decode(e);return this.keet.files.readFileStream(o,G(t),i)}subscribeSaveToDisk(e,t,i,o={}){const r=s.decode(e);return this.keet.files.subscribeSaveToDisk(r,G(t),i,o)}_saveToDisk({roomKey:e,files:t},s,i){return t.saveToDisk(e,G(s),i)}async _clearFile({roomId:e,roomKey:t,files:s},i){i.preview?.large?.pointer?.externalBlob&&await s.clearFile(t,G(i.preview.large)),await s.clearFile(t,G(i)),this.keet.emit("local-files-changed",e)}async _unclearFile({roomId:e,roomKey:t,files:s},i){i.preview?.large?.pointer?.externalBlob&&await s.unclearFile(t,G(i.preview.large)),await s.unclearFile(t,G(i)),this.keet.emit("local-files-changed",e)}_getFileCleared({roomKey:e,files:t},s){return t.getFileCleared(e,G(s))}_refreshFileLinks(e){return this.keet.files.refreshLinks(e)}subscribeFileCleared(e,t){return this._addRoomSubscription(e,{query:()=>this.getFileCleared(e,t)})}subscribeFiles(e,...t){return this._addRoomSubscription(e,{query:async()=>this.getFiles(e,...t)})}getStats(){return{suspended:this.keet.state===Ae.SUSPEND,connections:this.keet.swarm.connections.size,openRooms:this.keet.rooms.size,openCores:this.keet.store.cores.size,activeRooms:this.keet.activeRooms.size,roomSubscriptions:[...this._subscriptions.values()].filter(e=>e.isRoomSub).size,backgroundSwarmingRooms:[...this.keet.swarmWorker.sessions.keys()],dht:this.keet.swarm.dht.stats,swarm:this.keet.swarm.stats,ops:this.keet.stats.ops,uploaded:this.keet.stats.uploaded,bytesUploaded:this.keet.stats.bytesUploaded,downloaded:this.keet.stats.downloaded,bytesDownloaded:this.keet.stats.bytesDownloaded,appends:this.keet.stats.appends,bytesAppended:this.keet.stats.bytesAppended,ipc:{sent:0,recv:0},threads:[]}}async getRoomStats(e){const t=this.keet.internalOpenExistingRoom(s.decode(e));try{return await t.getStats()}finally{this.keet.internalReleaseRoom(t)}}async _lookupUsername(e){if(!e)return;const t=await this.keet.userRegistry.lookup(e);return E(t)}async _lookupUserByMemberId(e){if(!e)return;const t=s.decode(e),i=await this.keet.userRegistry.lookupByKey(t);return E(i)}async _searchUsername(e,{limit:t=20}={}){return(await this.keet.userRegistry.search(e,{limit:t})).map(E)}_registerUsername(e){return this.keet.userRegistry.update(e)}_updateUsername(e){return this.keet.userRegistry.update(e)}async _getReservationsByKey(e){if(!e)return;const t=s.decode(e),i=await this.keet.userRegistry.getReservationsByKey(t);if(!i||!i.length)return null;const o=i[0];return P(o)}subscribeUsername(){const e=this.keet.userRegistry.subscribeUsername();return d(e,new h({transform(e,t){if(!e)return t(null);t(null,{status:e.status,reservation:P(e.reservation),record:E(e.record),error:e.error})}}))}_checkUsername(e){return this.keet.userRegistry.isAvailable(e)}subscribeSystemUpdateRequest(){return this._addKeetSubscription(Oe,{query:()=>this.keet.migrationStatus||{remaining:0}})}close(){return this.keet.close()}suspend(){return this.keet.suspend()}resume(){return this.keet.resume()}async getDebugFlags(){const e=await this.keet.local.get("@local/debug");return e?.flags||[]}async updateDebugFlag(e,t){const s=Ie.get(e);if(!(s>=0))return;const i=await this.keet.internalEnterLocalTransaction();try{const e=await i.get("@local/debug");e.flags[s].value=!0===t,await i.insert("@local/debug",e),await i.flush()}finally{await this.keet.internalExitLocalTransaction()}}createErrorStream(){return d(this.keet.local.find("@local/errors"),new h({transform(e,t){t(null,F(e))}}))}async _repair(e){const t=this.keet.internalOpenExistingRoom(s.decode(e));try{await t.ready(),await t.base.repair()}finally{this.keet.internalReleaseRoom(t)}}async _audit(e){const t=this.keet.rootCorestore.audit(e),s=[];for await(const e of t)s.push(e);return s}async _rotateWriter(e){return this.keet.rotateWriter(s.decode(e))}compact(e=!1){return e?this.keet.storage.compact({blobGarbageCollectionPolicy:qe.garbageCollectionPolicy.FORCE,blobGarbageCollectionAgeCutoff:1,bottommostLevelCompaction:qe.bottommostLevelCompaction.FORCE}):this.keet.storage.compact()}async _setUnread(e,t){const i=s.decode(e),o=await this.keet.internalEnterLocalTransaction();try{await o.insert("@local/unreads",{roomKey:i,count:t}),await o.flush()}finally{await this.keet.internalExitLocalTransaction()}}async _getUnread(e){const t=s.decode(e),i=await this.keet.local.get("@local/unreads",{roomKey:t});return i?i.count:0}async _setUnreadAnchor(e,t){const i=s.decode(e);this.keet.onlineBoot.opened||await this.keet.onlineBoot.ready(),this.keet.unreads&&await this.keet.unreads.put(i,{timestamp:Date.now(),length:t});const o=await this.keet.local.get("@local/rooms",{roomKey:i});if(!o?.dm?.length)return;const{isFeatureSupported:r,FEATURES:a}=this.keet.versions;if(!r(o.digest.abi.version,a.READ_LENGTH))return;const n=await this.keet.internalOpenPrivateProfile();try{const s=await n.db.get("@keet-private-id/settings");if(s?.disableReadReceipts)return;await this.keet.dispatch(e,"@keet/update-read-length",{length:t})}finally{this.keet.internalReleaseRoom(n)}}async _getUnreadAnchor(e){if(this.keet.onlineBoot.opened||await this.keet.onlineBoot.ready(),!this.keet.unreads)return null;const t=s.decode(e);return this.keet.unreads.get(t)}_subscribeUnreadAnchor(e){return this._addKeetSubscription(He,{query:()=>this.getUnreadAnchor(e)})}async _updateTypingIndicator({roomId:e,db:t}){this.keet.onlineBoot.opened||await this.keet.onlineBoot.ready();const s=await t.get("@keet/system-digest");if(s.settings.roomType!==X.DirectMessage)return;const{isFeatureSupported:i,FEATURES:o}=this.keet.versions;if(!i(s.abi.version,o.TYPING_INDICATOR))throw new Error("Typing indicator is not supported");await this.keet.dispatch(e,"@keet/update-typing-indicator",{})}async _getTypingIndicator({db:e},t){const i=s.decode(t),o=await e.get("@keet/typing-indicators",{memberKey:i});return o?{memberId:t,timestamp:o.timestamp}:null}_subscribeTypingIndicator(e,t){return this._addRoomSubscription(e,{query:()=>this.getTypingIndicator(e,t),name:"typing-indicator"})}async _setRoomFavorite(e,t=!0){this.keet.onlineBoot.opened||await this.keet.onlineBoot.ready();const{privateProfileKey:i}=await this.keet.local.get("@local/identity"),o=await this.keet.local.get("@local/rooms",{roomKey:i});if(!o)return;const{isFeatureSupported:r,FEATURES:a}=this.keet.versions;if(!r(o.digest.abi.version,a.FAVORITE_ROOMS))throw new Error("Favorite rooms is not supported");await this.keet.privateProfile.dispatch("@keet-private-id/update-room-status",{roomKey:s.decode(e),key:oe.IsFavorite,status:{isFavorite:t}})}}class $e{constructor(e){this.keet=e}async ready(){return await this.keet.ready(),s.encode(this.keet.swarm.keyPair.publicKey)}}class Xe{constructor(t){this.keet=t,this.preferences=new g(e.join(t.dir,"preferences_v1.json")),this._subs=[]}async _bump(){const e=await this.preferences.list();for(const t of this._subs)t.push(e)}async update(e,t){await this.preferences.set(e,t),await this._bump()}query(){return this.preferences.list()}subscribe(){const e=this,t=new c({async open(e){let t=null;try{await this._bump()}catch(e){t=e}e(t)},destroy(t){const s=e._subs.indexOf(this);-1!==s&&e._subs.splice(s,1),t(null)}});return this._subs.push(t),t}}class Ze{constructor(e,{onerror:t=r}={}){this.keet=e,this._status=null,this._subs=[],this.keet.swarm.on("update",this._handleUpdate.bind(this)),this.keet.swarm.dht.on("network-update",this._handleUpdate.bind(this))}_handleUpdate(){this._status=this.query();for(const e of this._subs)e.push(this._status)}query(){const e=[];for(const[t,i]of this.keet.swarm.peers)e.push(s.encode(i.publicKey));return{host:this.keet.swarm.dht.host,port:this.keet.swarm.dht.port,online:this.keet.swarm.dht.online,degraded:this.keet.swarm.dht.degraded,connections:this.keet.swarm.connections.size,peers:e}}subscribe(){const e=this,t=new c({open(t){e._status&&this.push(e._status),t(null)},destroy(t){const s=e._subs.indexOf(this);-1!==s&&e._subs.splice(s,1),t(null)}});return this._subs.push(t),t}subscribeDebug(e=5e3,t=0){const s=this;let i=null,o=0;const r=new c({open(t){a(),i=setInterval(()=>{a()},e),t(null)},destroy(e){i&&(clearInterval(i),i=null),e(null)}});return r;async function a(){const e=await s.debug();r.push(e),o+=1,t&&o>=t&&r.push(null)}}async debug(){return{tick:this.keet.swarm.dht._tick,localAddress:this.keet.swarm.dht.localAddress(),remoteAddress:this.keet.swarm.dht.remoteAddress(),connection:this.query(),stats:this.keet.swarm.dht.stats,health:this.keet.swarm.dht.health.stats,nodes:this.keet.swarm.dht.nodes.length,config:this.keet.swarm.dht.config,rttStats:await this.keet.swarm.dht.rttStats()}}}class Qe{constructor(){this.subscriptions=[],this._handleError=this._handleError.bind(this),this._listenersAttached=!1}_handleError(e){console.error("uncaught on worker",e);for(const t of this.subscriptions)t.push({message:e.message,stack:e.stack+""})}subscribe(e){const t=this;this._listenersAttached||(n.on(this._handleError),this._listenersAttached=!0);const s=new c({...e,destroy(e){const s=t.subscriptions.indexOf(this);-1!==s&&t.subscriptions.splice(s,1),e(null)}});return this.subscriptions.push(s),s}}class et{constructor(e){this.keet=e,this.inspector=new Ke}_getCurrentRoom(){let e=null;for(const t of this.keet.rooms.values())(!e||t.refs>e.refs)&&(e=t);return e}async getCurrentRoomStats(){const e=this._getCurrentRoom();return{hash:(await(e?.base.core.treeHash())).toString("hex"),length:e?.base.length}}enableInspector(){return this.inspector?.enable()}disableInspector(){return this.inspector?.disable()}getInspectorKey(){return this.inspector?.key}processTop(){return p.toJSON()}hash(e){return i.hash(e)}generateSyntheticError(e,t={}){const s=new Error(t.message??t.code??"KEET_SYNTHETIC_ERROR");if(s.code=t.code??s.message,Object.assign(s,t),!e)throw s;this.keet.onerror(s)}async getAccumulatedBytes(){let e=0;for await(const{value:t}of this.keet.rootCorestore.storage.db.iterator()){if(this.keet.closing)return e;e+=t.byteLength}return e}async heapSnapshot(e="/tmp/keet-heapsnapshot-"+Bare.pid+"."+Date.now()+".heapsnapshot"){const t=new l;t.connect();const s=new u(t),i=m.createWriteStream(e);return s.pipe(i),await new Promise(e=>i.once("close",e)),t.destroy(),e}async resetUnreads(){if(this.keet.onlineBoot.opened||await this.keet.onlineBoot.ready(),!this.keet.unreads)return null;await this.keet.unreads.reset()}}class tt{constructor(e){this._rpcClient=e.rpcClient,this.keet=e}send(e){if(this.keet.buildType===$.Production)return this._rpcClient.makeRequest(this.keet.config.services.feedback,"send",e,{requestEncoding:Se.json})}}function st(e){switch(e){case 1:return oe.IsFullyMuted;case 2:return oe.IsMentionsOnlyMuted;default:return 0}}function it(e){switch(e){case"0":default:return X.Default;case"1":return X.Broadcast;case"2":return X.DirectMessage}}function ot(e){const t={files:[],httpLink:[],pearLink:[]},s=e.files||[];for(let e=0;e<s.length;e++){const i=s[e].preview;i&&(s[e].preview=null,t.files.push({index:e,preview:i}))}const i=e.display?.httpLink||[];for(let e=0;e<i.length;e++){const s=r(i[e]);s&&t.httpLink.push({index:e,preview:s})}const o=e.display?.pearLink||[];for(let e=0;e<o.length;e++){const s=r(o[e]);s&&t.pearLink.push({index:e,preview:s})}return t;function r(e){if(!e.preview?.file?.preview)return null;const t=e.preview.file.preview;return e.preview.file.preview=null,t}}async function rt(e,{files:t,httpLink:s,pearLink:i},o=null){const r=o||{key:e.key,seq:e.length-1};if(t.length)for(const{index:s,preview:i}of t)await e.dispatch("@keet/add-file-preview",{oplog:r,index:s,preview:W(i)},{dryRun:!1});if(s.length)for(const{index:t,preview:i}of s)await e.dispatch("@keet/add-file-preview",{oplog:r,index:t,preview:W(i),displayType:Z.HttpLink},{dryRun:!1});if(i.length)for(const{index:t,preview:s}of i)await e.dispatch("@keet/add-file-preview",{oplog:r,index:t,preview:W(s),displayType:Z.PearLink},{dryRun:!1})}async function at(e,t){t.proofs=await e.get("@keet/member-proofs",{key:t.key})}module.exports=class extends t{constructor(e,t){super(),this.keet=e,this.opts=t,this.api={core:new Ye(e,t),swarm:null,preferences:null,network:null,error:null,debug:null,console:null,call:null,pear:{teardown:()=>{console.log("[api] teardown initiated");const t=this.keet.close();return t.catch(e.onerror),t},selfDestruct:e=>this.keet.selfDestruct(e)}},this._callBootstraps=null,this.callsByRoomId=new Map,this.ready().catch(t?.onerror||r)}async _open(){await this.keet.ready(),this.api.swarm=new $e(this.keet,this.opts),this.api.preferences=new Xe(this.keet,this.opts),this.api.network=new Ze(this.keet,this.opts),this.api.error=new Qe(this.keet,this.opts),this.api.debug=new et(this.keet,this.opts),this.api.feedback=new tt(this.keet);const{isFeatureSupported:e,FEATURES:t}=this.keet.versions;this.call=this.api.call=new b(this.keet.swarm,{skipJoinLeave:e(this.keet.abi.autoupgrade,t.CALLS_V2)}),this.keet.on("call-changed",this._handleCallChanged.bind(this))}async _close(){this.call&&this.call.close(),await this.api.debug.disableInspector()}async closeActiveCalls(){if(this.callsByRoomId.size)for(const[e,t]of this.callsByRoomId){const i=s.decode(e),o=await this.keet.local.get("@local/rooms",{roomKey:i});if(!o)continue;const r=this.keet.rooms.get(e);if(!r)continue;const{isFeatureSupported:a,FEATURES:n}=this.keet.versions;if(!a(o.digest.abi.version,n.CALLS_V2))return;const c=o.dm?"@keet/end-call":"@keet/leave-call";await r.dispatch(c,{callKey:s.decode(t.callId)},{dryRun:!1})}}_handleCallChanged(e,t,s){const i=B(t),o=this.callsByRoomId.get(e),r=s?.deviceKey||null;if(this.keet.isTesting&&(i?this.keet.callHeartbeatManager.start(e,{callRecord:i,callDevice:s}):this.keet.callHeartbeatManager.stop(e)),!s&&!o)return;const a={joinPeer:this.keet.debugJoinPeer,leavePeer:this.keet.debugLeavePeer},n=new Pe(this.keet.swarm,{call:i,prev:o,deviceKey:r,debug:a});if(n.refresh(),n.ended)return this.callsByRoomId.delete(e);this.callsByRoomId.set(e,n)}async suspend(){await this.keet.suspend()}async resume(){await this.keet.resume()}};
1const e=require("path"),t=require("ready-resource"),s=require("hypercore-id-encoding"),i=require("hypercore-crypto"),o=require("debounceify"),r=require("safety-catch"),a=require("b4a"),n=require("uncaughts"),{Readable:c,Transform:l,pipeline:h}=require("streamx"),{Session:d,HeapSnapshot:u}=require("bare-inspector"),m=require("bare-fs"),p=require("process-top")(),g=require("tiny-preferences"),b=require("@holepunchto/keet-call/server"),{contract:{hyperschema:{getEnum:y}},local:{hyperschema:{getEnum:f}}}=require("../../../schema/spec"),{encodeRoomRecord:k,encodeConfig:_,encodeDevice:w,encodeMemberRecord:v,encodeInvitationRecord:R,encodeFile:S,encodeIdentityPairingRequest:C,encodeDmRequest:I,encodeReaction:M,encodeUser:E,encodeContactInfo:K,encodeImageFile:D,encodeReservation:P,encodeFileEntry:A,encodeUserSettings:q,encodeErrorRecord:F,encodeNotification:x,encodeHyperDHTSettings:T,encodeSwarmSettings:L,encodeCallRecord:B,encodeLocalActiveCall:U,encodeContact:N,encodePublicRoom:O}=require("./encode.js"),{decodeChatRangeOptions:j,decodeChatMessage:H,decodeMessageId:V,decodeKeyRangeOptions:G,decodeFile:z,decodeConfig:W,decodeImageFile:Y,decodeFileRangeOptions:J,decodeUserSettings:$}=require("./decode.js"),X=y("@keet/build-type"),Z=y("@keet/room-type"),Q=y("@keet/display-type"),ee=y("@keet/label-type"),te=y("@keet/member-label-type"),se=y("@keet/system-settings-keys"),ie=y("@keet-private-id/user-settings-key"),{ContactRequestStatus:oe,RoomStatus:re}=require("../../core/contract/identity/private.js"),{Config:ae,CONFIG_INDEX_TO_KEY:ne}=require("../../core/contract/config"),{Settings:ce}=require("../../core/contract/internal"),{getChatMessages:le,getChatMessage:he,getReactions:de,isDMRead:ue,getCalls:me,loadBlob:pe,parallel:ge}=require("./helpers.js"),{MemberStatus:be}=require("../../core/contract/members/index.js"),{MemberRoles:ye,DM_STATUSES:fe,isValidPreferenceKey:ke,getPreferenceKeyName:_e,CHAT_MESSAGE_REPORT_COUNT:we,GENERIC_EVENTS:ve}=require("@holepunchto/keet-core-api"),{restoreAvatar:Re}=require("../../core/contract/avatars.js"),{getMemberForDeviceKey:Se}=require("../../core/contract/query.js"),Ce=require("compact-encoding"),{DEBUG_FLAG_INDEX_BY_KEY:Ie,DHT_SETTINGS:Me,SWARM_SETTINGS:Ee}=require("../../core/debug/debugging.js"),{KeetErrorV2:Ke}=require("../../errors"),De=require("./inspector.js"),{FEATURES:Pe}=require("../../../schema/versions"),{constants:Ae}=require("rocksdb-native"),qe=f("@local/keet-state"),Fe="recent-rooms",xe="favorite-rooms",Te="dm-rooms",Le="chat-changed",Be="identity",Ue="private-profile",Ne="members",Oe="migration-status",je="room-preferences",He="unreads",Ve="errors",Ge="force-updates",ze="all-active-calls",We={"keet-core":require("../../../package.json").version,autobee:require("autobee/package.json").version,hypercore:require("hypercore/package.json").version,hyperbee:require("hyperbee/package.json").version,hyperbee2:require("hyperbee2/package.json").version,"keet-identity-key":require("keet-identity-key/package.json").version,"keet-push":require("@holepunchto/keet-push/package.json").version,corestore:require("corestore/package.json").version};class Ye{constructor(e,t){this.api=e,this.id=t,this.subscriptions=[]}destroy(){for(const{stream:e}of this.subscriptions)e.destroy()}refresh(e){for(const t of this.subscriptions)e&&e.name&&e.name!==t.name||t.query&&t.query()}push(e,t){for(const s of this.subscriptions)t&&t.name&&t.name!==s.name||s.map&&s.stream.push(s.map(e))}_onDestroy(e,t){const s=this.subscriptions.pop();s!==e&&(this.subscriptions[e.idx]=s,s.idx=e.idx),0===this.subscriptions.length&&this.api._subscriptions.get(this.id)===this&&this.api._subscriptions.delete(this.id),t(null)}_create(e){const t={name:e||null,stream:null,query:null,map:null,idx:0};return t.stream=new c({destroy:e=>this._onDestroy(t,e)}),t.idx=this.subscriptions.push(t)-1,t}add({query:e,map:t,name:s}){if(!e&&!t)throw new Error("Must have either a query or a map");const i=this._create(s);return e&&(i.query=o(async()=>{try{const t=await e();null!==t&&i.stream.push(t)}catch(e){i.stream.destroy(e)}}),i.query()),i.map=t,i.stream}}class Je{constructor(e){this.keet=e}create(e,t){return async(s,...i)=>{if(this.keet.closing)return null;const o=["files","engine","drive","db","snapshot","blobs","blobsSnapshot"],r=!!t.find(e=>o.includes(e));if(r&&!s)throw new Error("Room ID is required for methods that require room resources");("object"==typeof s&&null!==s||!r)&&(i=[s,...i],s=null);const a=s?this.keet.internalOpenExistingRoom(s):null;if(a&&(await a.ready(),await a.engine.flush()),this.keet.closing)return null;const n={roomId:s,roomKey:a?.key||null,discoveryKey:a?.discoveryKey||null};let c=null;try{for(const e of t)a&&"db"===e&&(n.db=a.db),a&&"snapshot"===e&&(n.snapshot=a.db.snapshot()),a&&"blobsSnapshot"===e&&(n.blobsSnapshot=a.blobs?a.blobs.snapshot():null),a&&"engine"===e&&(n.engine=a.engine),a&&"drive"===e&&(n.drive=a.drive),"local"===e&&(n.local=this.keet.local),"localSnapshot"===e&&(n.localSnapshot=this.keet.local.snapshot()),"files"===e&&(n.files=this.keet.files),"myKey"===e&&(this.keet.onlineBoot.opened||await this.keet.onlineBoot.ready(),n.localSnapshot||(n.localSnapshot=this.keet.local.snapshot()),n.id=await n.localSnapshot.get("@local/identity"),n.profileInfo=await n.localSnapshot.get("@local/rooms",{roomKey:n.id.privateProfileKey}),n.myKey=n.profileInfo?.selfMember?.key||null),"profile"===e&&(this.keet.onlineBoot.opened||await this.keet.onlineBoot.ready(),n.localSnapshot||(n.localSnapshot=this.keet.local.snapshot()),n.id||(n.id=await n.localSnapshot.get("@local/identity")),n.profileInfo||(n.profileInfo=await n.localSnapshot.get("@local/rooms",{roomKey:n.id.privateProfileKey})),n.profile=this.keet.internalOpenExistingRoom(n.id.privateProfileKey),await n.profile.ready()),n.profile&&"profileDb"===e&&(n.profileDb=n.profile.db),n.profile&&"profileSnapshot"===e&&(n.profileSnapshot=n.profile.db.snapshot()),n.profile&&"profileBlobs"===e&&(n.profileBlobs=n.profile.profileBlobs);const s=Date.now();return c=await e(n,...i),this.keet.logger.debug("[Keet API]",e.name,"duration:",Date.now()-s,"args:",i),c}catch(e){if(this.keet.closing)return null;const t=a?.engine.getLastError();if(t)throw t;throw this.keet.onerror(e),e}finally{n.snapshot&&await n.snapshot.close(),n.blobsSnapshot&&await n.blobsSnapshot.close(),n.localSnapshot&&await n.localSnapshot.close(),n.profileSnapshot&&await n.profileSnapshot.close(),n.profile&&await this.keet.internalReleaseRoom(n.profile),a&&await this.keet.internalReleaseRoom(a)}}}}class $e{constructor(e,{onerror:t=r}={}){this.keet=e,this.context=new Je(this.keet),this._onerror=t,this._subscriptions=new Map,this._profileSubscriptions=new Ye(this,null,{isProfileSub:!0}),this._activeCallStates=new Map,this.keet.on("room-interrupted",this._handleRoomInterrupted.bind(this)),this.keet.on("room-changed",this._handleRoomChanged.bind(this)),this.keet.on("identity-changed",this._handleIdentityChanged.bind(this)),this.keet.on("recent-rooms-changed",this._handleRecentRoomsChanged.bind(this)),this.keet.on("dm-rooms-changed",this._handleDmRoomsChanged.bind(this)),this.keet.on("chat-changed",this._handleChatChanged.bind(this)),this.keet.on("identity-pairing-request",this._handleIdentityPairingRequest.bind(this)),this.keet.on("migration-status",this._handleMigrationStatus.bind(this)),this.keet.on("room-preferences-changed",this._handleRoomPreferencesChanged.bind(this)),this.keet.on("unread-anchors-changed",this._handleUnreadAnchorsChanged.bind(this)),this.keet.on("room-sent-message",this._handleRoomSentMessageLengthChanged.bind(this)),this.keet.on("caught-error",this._handleKeetError.bind(this)),this.keet.on("force-update",this._handleForceUpdate.bind(this)),this.keet.on("verified-rooms-changed",this._handleVerifiedRoomsChanged.bind(this)),this.keet.on("local-files-changed",this._handleLocalFilesChanged.bind(this)),this.keet.on("favorite-rooms-changed",this._handleFavoriteRoomsChanged.bind(this)),this.keet.on("contacts-changed",this._handleContactsChanged.bind(this)),this.keet.on("call-changed",this._handleAllActiveCallsChanged.bind(this)),this.keet.on("call-changed-v3",this._handleAllActiveCallsChanged.bind(this)),this.boot=this._timed(this._boot.bind(this)),this.createInvitation=this._timed(this._createInvitation.bind(this)),this.confirmPairingRequest=this._timed(this._confirmPairingRequest.bind(this)),this.startPairingRoom=this._timed(this._startPairingRoom.bind(this)),this.stopPairingRoom=this.context.create(this._stopPairingRoom.bind(this),["profile"]),this.searchRooms=this.context.create(this._searchRooms.bind(this),["local"]),this.getRoomInfo=this.context.create(this._getRoomInfo.bind(this),["localSnapshot"]),this.getRecentRooms=this.context.create(this._getRecentRooms.bind(this),["local"]),this.getPendingRooms=this.context.create(this._getPendingRooms.bind(this),["profile"]),this.getLocalRoomMetadata=this.context.create(this._getLocalRoomMetadata.bind(this),["local"]),this.getConfig=this.context.create(this._getConfig.bind(this),["snapshot","local"]),this.updateRoomSettings=this._updateRoomSettings.bind(this),this.getChatMessage=this.context.create(this._getChatMessage.bind(this),["snapshot","blobsSnapshot","files","local"]),this.getChatMessageById=this.context.create(this._getChatMessageById.bind(this),["snapshot","blobsSnapshot","files","local"]),this.getChatMessages=this.context.create(this._getChatMessages.bind(this),["snapshot","blobsSnapshot","files","local"]),this.getChatLength=this.context.create(this._getChatLength.bind(this),["db"]),this.removeChatMessage=this.context.create(this._removeChatMessage.bind(this),["snapshot","blobsSnapshot","files","local"]),this.searchChatMessages=this.context.create(this._searchChatMessages.bind(this),["local","snapshot","blobsSnapshot","files"]),this.addChatMessage=this._timed(this._addChatMessage.bind(this)),this.updateChatMessage=this._timed(this._updateChatMessage.bind(this)),this.forwardChatMessage=this.context.create(this._forwardChatMessage.bind(this),["snapshot","blobsSnapshot","files","local"]),this.pinChatMessage=this._timed(this._pinChatMessage.bind(this)),this.unpinChatMessage=this._timed(this._unpinChatMessage.bind(this)),this.addCallStartedEvent=this._timed(this._addCallStartedEvent.bind(this)),this.addCallHangupEvent=this._timed(this._addCallHangupEvent.bind(this)),this.addCallMissedEvent=this._timed(this._addCallMissedEvent.bind(this)),this.addLocationSharedEvent=this._timed(this._addLocationSharedEvent.bind(this)),this.getActiveCalls=this.context.create(this._getActiveCalls.bind(this),["engine","snapshot"]),this.getAllActiveCalls=this.context.create(this._getAllActiveCalls.bind(this),["localSnapshot"]),this.getCalls=this.context.create(this._getCalls.bind(this),["snapshot"]),this.getReactions=this.context.create(this._getReactions.bind(this),["snapshot","local"]),this.getLatestReactions=this.context.create(this._getLatestReactions.bind(this),["snapshot"]),this.addReaction=this._timed(this._addReaction.bind(this)),this.removeReaction=this._timed(this._removeReaction.bind(this)),this.getReportedMembers=this.context.create(this._getReportedMembers.bind(this),["snapshot","blobsSnapshot","localSnapshot"]),this.addChatReport=this._timed(this._addChatReport.bind(this)),this.removeChatReport=this._timed(this._removeChatReport.bind(this)),this.dismissChatReports=this._timed(this._dismissChatReports.bind(this)),this.getReportedMessages=this.context.create(this._getReportedMessages.bind(this),["roomKey","local","snapshot","blobsSnapshot","files"]),this.getPinnedChatMessages=this.context.create(this._getPinnedChatMessages.bind(this),["local","snapshot","blobsSnapshot","files"]),this.getActiveMember=this.context.create(this._getActiveMember.bind(this),["snapshot","blobsSnapshot","localSnapshot","myKey"]),this.getActiveMembers=this.context.create(this._getActiveMembers.bind(this),["snapshot","blobsSnapshot","localSnapshot","myKey"]),this.getMembers=this.context.create(this._getMembers.bind(this),["snapshot","blobsSnapshot","localSnapshot","myKey"]),this.getMember=this.context.create(this._getMember.bind(this),["snapshot","blobsSnapshot","localSnapshot","myKey"]),this.getMemberCount=this.context.create(this._getMemberCount.bind(this),["db"]),this.getMemberBySwarmId=this.context.create(this._getMemberBySwarmId.bind(this),["snapshot","blobsSnapshot","localSnapshot","myKey"]),this.getMemberByDeviceId=this.context.create(this._getMemberByDeviceId.bind(this),["snapshot","blobsSnapshot","localSnapshot","myKey"]),this.isMemberMuted=this.context.create(this._isMemberMuted.bind(this),["db"]),this.getSearchMembers=this.context.create(this._getSearchMembers.bind(this),["snapshot","blobsSnapshot","localSnapshot","myKey"]),this.updateMember=this._timed(this._updateMember.bind(this)),this.removeMember=this._timed(this._removeMember.bind(this)),this.changeMemberRole=this._timed(this._changeMemberRole.bind(this)),this.muteMember=this._timed(this._muteMember.bind(this)),this.unmuteMember=this._timed(this._unmuteMember.bind(this)),this.blockMember=this._timed(this._blockMember.bind(this)),this.unblockMember=this._timed(this._unblockMember.bind(this)),this.getDevices=this.context.create(this._getDevices.bind(this),["db"]),this.getDevice=this.context.create(this._getDevice.bind(this),["db"]),this.getDevicesByMemberId=this.context.create(this._getDevicesByMemberId.bind(this),["db"]),this.getModerators=this.context.create(this._getModerators.bind(this),["snapshot","blobsSnapshot","localSnapshot","myKey"]),this.saveFile=this.context.create(this._saveFile.bind(this),["files"]),this.saveFileBlob=this.context.create(this._saveFileBlob.bind(this),["files"]),this.getFileEntry=this.context.create(this._getFileEntry.bind(this),["files"]),this.getFileCleared=this.context.create(this._getFileCleared.bind(this),["files"]),this.clearFile=this.context.create(this._clearFile.bind(this),["files"]),this.unclearFile=this.context.create(this._unclearFile.bind(this),["files"]),this.clearAllFiles=this.context.create(this._clearAllFiles.bind(this),["files"]),this.clearOldFiles=this._timed(this._clearOldFiles.bind(this)),this.getLocalFiles=this.context.create(this._getLocalFiles.bind(this),["files","snapshot","blobsSnapshot"]),this.getFiles=this.context.create(this._getFiles.bind(this),["files","snapshot","blobsSnapshot"]),this.startDownload=this.context.create(this._startDownload.bind(this),["files"]),this.cancelDownload=this.context.create(this._cancelDownload.bind(this),["files"]),this.saveToDisk=this.context.create(this._saveToDisk.bind(this),["files"]),this.sendFile=this._timed(this._sendFile.bind(this)),this.sendFiles=this._timed(this._sendFiles.bind(this)),this.refreshFileLinks=this._timed(this._refreshFileLinks.bind(this)),this.createRoom=this._timed(this._createRoom.bind(this)),this.leaveRoom=this._timed(this._leaveRoom.bind(this)),this.getSystemDigest=this.context.create(this._getSystemDigest.bind(this),["db"]),this.getTipSize=this.context.create(this._getTipSize.bind(this),["engine"]),this.getRoomKeys=this._timed(this._getRoomKeys.bind(this)),this.resyncPrivateProfile=this._timed(this._resyncPrivateProfile.bind(this)),this.restoreIdentity=this._timed(this._restoreIdentity.bind(this)),this.getRecoveryPhrase=this._timed(this._getRecoveryPhrase.bind(this)),this.getEncryptedRecoveryPhrase=this._timed(this._getEncryptedRecoveryPhrase.bind(this)),this.decryptEncryptedRecoveryPhrase=this._timed(this._decryptEncryptedRecoveryPhrase.bind(this)),this.freeRecoveryPhrase=this._timed(this._freeRecoveryPhrase.bind(this)),this.confirmRecoveryPhrase=this._timed(this._confirmRecoveryPhrase.bind(this)),this.storeRecoveryPhrase=this._timed(this._storeRecoveryPhrase.bind(this)),this.getIdentity=this.context.create(this._getIdentity.bind(this),["local","profile","profileSnapshot"]),this.getSelfContactInfo=this.context.create(this._getSelfContactInfo.bind(this),["local","profile"]),this.removeIdentityDevice=this.context.create(this._removeIdentityDevice.bind(this),["profile"]),this.createIdentityInvitation=this._timed(this._createIdentityInvitation.bind(this)),this.startPairingIdentity=this._timed(this._startPairingIdentity.bind(this)),this.updateIdentityProfile=this._timed(this._updateIdentityProfile.bind(this)),this.updateIdentityDevice=this._timed(this._updateIdentityDevice.bind(this)),this.getIdentityPairingRequest=this._timed(this._getIdentityPairingRequest.bind(this)),this.updateUserSettings=this._timed(this._updateUserSettings.bind(this)),this.updateDHTSettings=this._timed(this._updateDHTSettings.bind(this)),this.getDHTSettings=this._timed(this._getDHTSettings.bind(this)),this.getSwarmSettings=this._timed(this._getSwarmSettings.bind(this)),this.updateSwarmSettings=this._timed(this._updateSwarmSettings.bind(this)),this.addContact=this._timed(this._addContact.bind(this)),this.setContactAlias=this._timed(this._setContactAlias.bind(this)),this.removeContact=this._timed(this._removeContact.bind(this)),this.getActiveContacts=this.context.create(this._getActiveContacts.bind(this),["localSnapshot"]),this.getContactInfo=this.context.create(this._getContactInfo.bind(this),["local","profile"]),this.getBlockedMembers=this.context.create(this._getBlockedMembers.bind(this),["localSnapshot"]),this.getDmRequestsByStatus=this.context.create(this._getDmRequestsByStatus.bind(this),["localSnapshot","profile","profileDb"]),this.sendDMFromContact=this._timed(this._sendDMFromContact.bind(this)),this.sendDMRequest=this._timed(this._sendDMRequest.bind(this)),this.sendInvitations=this._timed(this._sendInvitations.bind(this)),this.updatePrivateMailboxRecord=this._timed(this._updatePrivateMailboxRecord.bind(this)),this.acceptDmRequest=this._timed(this._acceptDmRequest.bind(this)),this.rejectDmRequest=this._timed(this._rejectDmRequest.bind(this)),this.getRoomPreferences=this.context.create(this._getRoomPreferences.bind(this),["local"]),this.updateRoomPreferences=this.context.create(this._updateRoomPreferences.bind(this),["profile"]),this.snoozeRoom=this.context.create(this._snoozeRoom.bind(this),["profile"]),this.updateConfig=this._timed(this._updateConfig.bind(this)),this.disableMembershipEvents=this._timed(this._disableMembershipEvents.bind(this)),this.enableMembershipEvents=this._timed(this._enableMembershipEvents.bind(this)),this.setRoomUnread=this._timed(this._setRoomUnread.bind(this)),this.getLinkInfo=this._timed(this._getLinkInfo.bind(this)),this.lookupUsername=this._timed(this._lookupUsername.bind(this)),this.lookupUserByMemberId=this._timed(this._lookupUserByMemberId.bind(this)),this.registerUsername=this._timed(this._registerUsername.bind(this)),this.updateUsername=this._timed(this._updateUsername.bind(this)),this.searchUsername=this._timed(this._searchUsername.bind(this)),this.getReservationsByKey=this._timed(this._getReservationsByKey.bind(this)),this.checkUsername=this._timed(this._checkUsername.bind(this)),this.repair=this._timed(this._repair.bind(this)),this.rotateWriter=this._timed(this._rotateWriter.bind(this)),this.audit=this._timed(this._audit.bind(this)),this.setUnread=this._setUnread.bind(this),this.getUnread=this._getUnread.bind(this),this.setUnreadAnchor=this._setUnreadAnchor.bind(this),this.getUnreadAnchor=this._getUnreadAnchor.bind(this),this.subscribeUnreadAnchor=this._subscribeUnreadAnchor.bind(this),this.updateTypingIndicator=this.context.create(this._updateTypingIndicator.bind(this),["db"]),this.getTypingIndicator=this.context.create(this._getTypingIndicator.bind(this),["db"]),this.subscribeTypingIndicator=this._subscribeTypingIndicator.bind(this),this.setRoomFavorite=this._setRoomFavorite.bind(this)}_timed(e){return async function(...t){const s=Date.now();try{const i=await e(...t);return this.keet.logger.debug("[Keet API]",e.name,"duration:",Date.now()-s,"args:",t),i}catch(e){throw this.keet.onerror(e),e}}}_boot(){return this.keet.backendReady()}_disableMembershipEvents(e){return this.keet.dispatch(e,"@keet/update-system-settings",{key:ce.IsMembershipEventsDisabled,settings:{isMembershipEventsDisabled:!0}})}_enableMembershipEvents(e){return this.keet.dispatch(e,"@keet/update-system-settings",{key:ce.IsMembershipEventsDisabled,settings:{isMembershipEventsDisabled:!1}})}_addKeetSubscription(e="keet",t){return this._addRoomSubscription(e,t)}_addRoomSubscription(e,t,{isProfileSub:s=!1,_isRoomSub:i=!0}={}){if(null===e&&s)return this._profileSubscriptions.add(t);let o=this._subscriptions.get(e);return o||(o=new Ye(this,e),this._subscriptions.set(e,o)),o.add(t)}_refreshSubscriptionsById(e){const t=e===this.keet.privateProfile?.id?this._subscriptions.get(Ue):this._subscriptions.get(e);t&&t.refresh()}_handleIdentityPairingRequest(e){this._identityPairingRequestsByDeviceId.set(s.encode(e.deviceKey),e),this._refreshSubscriptionsById("identity-pairing-requests")}_handleRoomInterrupted(e,{unsupportedABI:t,digest:s}){const i=this._subscriptions.get(e);if(i)for(const e of i.subscriptions)"room-version"===e.name&&e.stream.push({version:t,experimental:s&&s.settings.isExperimental})}async _handleRoomChanged(e){try{this.keet.onlineBoot.opened||await this.keet.onlineBoot.ready(),this._refreshSubscriptionsById(e)}catch(e){this.keet.onerror(e)}}_handleRecentRoomsChanged(...e){const t=this._subscriptions.get(Fe);t&&t.push(e)}_handleDmRoomsChanged(){const e=this._subscriptions.get(Te);e&&e.refresh()}_handleRoomPreferencesChanged(...e){const t=this._subscriptions.get(je);t&&t.push(e)}_handleUnreadAnchorsChanged(){const e=this._subscriptions.get(He);e&&e.refresh()}_handleAllActiveCallsChanged(e,t,i){let o=null;t&&(o={callId:s.encode(t.callKey),joined:!!i});if(a=o,(r=this._activeCallStates.get(e)||null)&&a?r.callId===a.callId&&r.joined===a.joined:r===a)return;var r,a;o?this._activeCallStates.set(e,o):this._activeCallStates.delete(e);const n=this._subscriptions.get(ze);n&&n.refresh()}_handleRoomSentMessageLengthChanged(e){const t=this._subscriptions.get(e);t&&t.refresh({name:"room-info"})}_handleIdentityChanged(){this._refreshSubscriptionsById(Be)}async _handleChatChanged(...e){try{this.keet.onlineBoot.opened||await this.keet.onlineBoot.ready();const t=this._subscriptions.get(Le);if(!t)return;const[s,i]=e;if(s===this.keet.privateProfile.id)return;t.push({roomId:s,index:i})}catch(e){this.keet.onerror(e)}}_handleMigrationStatus(e){const t=this._subscriptions.get(Oe);t&&t.push(e)}_handleKeetError(e){const t=this._subscriptions.get(Ve);t&&t.push(e)}_handleForceUpdate(){const e=this._subscriptions.get(Ge);e&&e.refresh()}_handleVerifiedRoomsChanged(){for(const e of this._subscriptions.values())e.refresh({name:"room-info"})}_handleLocalFilesChanged(e){const t=this._subscriptions.get(e);t&&t.refresh({name:"room-info"})}_handleFavoriteRoomsChanged(...e){const t=this._subscriptions.get(xe);t&&t.push(e)}_handleContactsChanged(){for(const e of this._subscriptions.values())e.refresh({name:Ne})}getVersion(){return{buildType:this.keet.buildType,abi:this.keet.abi,modules:We}}async _getSystemDigest({db:e}){return await e.get("@keet/system-digest")}subscribeSentLength(e){return this._addRoomSubscription(e,{query:async()=>{const t=this.keet.internalOpenExistingRoom(e);await t.ready();const s={deviceId:t.engine.local.id,length:t.engine.local.remoteContiguousLength};return this.keet.internalReleaseRoom(t),s},name:"room-sent-message"})}subscribeRoomVersion(e){return this._addRoomSubscription(e,{query:async()=>{const t=await this.getSystemDigest(e);return{version:t.abi.version,experimental:t.settings.isExperimental}},name:"room-version"})}subscribeForceUpdates(){return this._addKeetSubscription(Ge,{query:()=>({showBanner:this.keet.shouldForceUpdate()})})}async upgradeRoom(e){this.keet.opened||await this.keet.ready();const t=this.keet.isNightly?this.keet.abi.max:this.keet.abi.production;await this.keet.internalDispatchUpgrade(e,t)}async _getLinkInfo(e){const t=this.keet.internalGetLinkInfo(e);if(!t)return null;if(t.identity)return{isIdentityInvitation:!0,memberId:s.encode(t.identity.identityPublicKey),invitationSeed:s.encode(t.identity.invitationSeed),additionalNodes:t.additionalNodes};if(t.room){const e={capabilities:{mailboxKeyPair:{publicKey:t.room.mailbox}}},i=await this.keet.local.get("@local/rooms-by-mailbox",e);return{isRoomInvitation:!0,roomId:i?s.encode(i.roomKey):null,title:i?i.config.title:null,description:i?i.config.description:null,avatar:i?D(i.config.avatar):null,invitationSeed:s.encode(t.room.invitationSeed),additionalNodes:t.additionalNodes}}return t.profile?{isContactInfo:!0,memberId:s.encode(t.attestation.memberKey),displayName:t.profile.displayName,username:t.profile.username,additionalNodes:t.additionalNodes}:t.readonly||t["readonly-v2"]?{isReadOnly:!0,additionalNodes:t.additionalNodes}:void 0}async _getSelfContactInfo({id:e,profileInfo:t}){const s=this.keet.internalCreateContactInfoStruct(e,t,{avatar:null,timestamp:0});return a.toString(s,"base64")}async _getIdentity({id:e,profile:t,profileSnapshot:i,profileInfo:o}){const[r,a]=await Promise.all([i.find("@keet/devices").toArray(),i.get("@keet-private-id/settings")]),n=[];for(const e of r)e.status.isActive&&n.push({...w(e),confirmed:!0});const c=v(o.selfMember,o.selfMember.key);return c.hasDiscoveryKey=!!o.identity.discoveryCoreKey,c.anonymous=!1,c.confirmed=e.status.isConfirmed,c.devices=n,c.profileId=t.id,c.profileDiscoveryId=t.discoveryId,c.local={deviceId:s.encode(t.deviceKey)},c.settings=q(a),c.isLoggedOut=o.selfDevice&&!o.selfDevice.status.isActive,c.version=o?.digest.abi.version,c}_removeIdentityDevice({profile:e},t){return e.dispatch("@keet/remove-device",{key:s.decode(t)})}subscribeIdentity(){return this._addKeetSubscription(Be,{query:()=>this.getIdentity()})}async _restoreIdentity(e,t={}){await this.keet.restoreIdentity(e,t)}_getRecoveryPhrase(){return this.keet.getRecoveryPhrase()}_getEncryptedRecoveryPhrase(e){return this.keet.getEncryptedRecoveryPhrase(e)}_decryptEncryptedRecoveryPhrase(e,t){return this.keet.decryptEncryptedRecoveryPhrase(e,t)}_freeRecoveryPhrase(e){return this.keet.freeRecoveryPhrase(e)}_confirmRecoveryPhrase(e){return this.keet.confirmRecoveryPhrase(e)}_storeRecoveryPhrase(e){return this.keet.storeRecoveryPhrase(e)}confirmIdentity(...e){throw console.log("confirmIdentity",...e),new Error("Missing required method: confirmIdentity")}async _confirmPairingRequest({deviceId:e},t=!0){this.keet.onlineBoot.opened||await this.keet.onlineBoot.ready();const i=this.keet.privateProfile.key,o=s.decode(e);return t?this.keet.acceptJoinRequest(i,o):this.keet.rejectJoinRequest(i,o)}async _getIdentityPairingRequest(){const e=await this.keet.internalOpenPrivateProfile(),t=await e.db.find("@keet/join-requests").toArray();return this.keet.internalReleaseRoom(e),0===t.length?null:C(t[0])}subscribeIdentityPairingRequests(...e){return this._addKeetSubscription(Be,{query:()=>this.getIdentityPairingRequest()})}async _updateIdentityProfile({displayName:e,avatar:t}){await this.updateMember(e,t)}_updateIdentityDevice(e){return this.keet.updateDevice(e)}_startPairingIdentity(e){return this.keet.startPairingIdentity(e)}pairIdentity(...e){throw console.log("pairIdentity",...e),new Error("Missing required method: pairIdentity")}async _updateUserSettings(e,t){this.keet.onlineBoot.opened||await this.keet.onlineBoot.ready();const s={[e]:t};if(e===ie.stripAttachmentMetadata&&!await this.keet.internalFeatureSupported(this.keet.privateProfile.id,Pe.STRIP_ATTACHMENT_METADATA))throw new Error("Stripping attachment metadata not supported");if(e===ie.profileSnoozeTime&&!await this.keet.internalFeatureSupported(this.keet.privateProfile.id,Pe.PROFILE_SNOOZE_TIME))throw new Error("Profile snoozing not supported");return this.keet.privateProfile.dispatch("@keet-private-id/update-settings",{key:e,settings:$(s)})}async _getDHTSettings(){const e=await this.keet.getDHTSettings();return T(e)}async _updateDHTSettings(e,t){if(!(e in Me))throw Ke.INVALID_SETTINGS_KEY(`Invalid DHT settings key: ${e}`);const s=await this.keet.internalEnterLocalTransaction();try{const i=await this.keet.getDHTSettings();i[e]=t,await s.insert("@local/hyperdht",i),await s.flush()}finally{await this.keet.internalExitLocalTransaction()}}async _getSwarmSettings(){const e=await this.keet.getSwarmSettings();return L(e)}async _updateSwarmSettings(e,t){if(!(e in Ee))throw Ke.INVALID_SETTINGS_KEY(`Invalid swarm settings key: ${e}`);const s=await this.keet.internalEnterLocalTransaction();try{const i=await this.keet.getSwarmSettings();i[e]=t,await s.insert("@local/hyperswarm",i),await s.flush()}finally{await this.keet.internalExitLocalTransaction()}}async _createRoom(e={}){const t=await this.keet.createRoom(function(e={}){return{config:{title:e.config?.title,description:e.config?.description},settings:{roomType:rt(e.config?.roomType),isCallingDisabled:"false"===e.config?.canCall}}}(e));return s.encode(t)}_pairRoom(...e){throw console.log("pairRoom",...e),new Error("Missing required method: pairRoom")}_leaveRoom(e,t={}){return this.keet.leaveRoom(s.decode(e))}async _startPairingRoom(e,t={}){return await this.keet.startPairingRoom(e,t)}async _stopPairingRoom({profile:e},t){const i=s.decode(t),o=await e.db.find("@keet-private-id/pending-invitations").toArray();for(const e of o)if(a.equals(e.invitationSeed,i)){await this.keet.stopPairing(e.id);break}}subscribePendingRooms(){return this._addKeetSubscription(Be,{query:()=>this.getPendingRooms()})}subscribePushNotificationChanges(){return this._addKeetSubscription(je,{map:function(e){const[t,o,r]=e,a=r||i.discoveryKey(o);return{type:t,roomId:s.encode(o),discoveryId:s.encode(a)}}})}subscribeActivateRoom(e){const t=s.decode(e);return new c({eagerOpen:!0,open:async e=>{let s=null;try{await this.keet.activateRoom(t)}catch(e){s=e}e(s)},destroy:async e=>{let s=null;try{await this.keet.deactivateRoom(t)}catch(e){s=e}e(s)}})}_getRoomKeys(e){try{const t=s.decode(e);return{discoveryKey:a.toString(i.discoveryKey(t),"hex")}}catch{return{discoveryKey:""}}}_getTipSize({engine:e}){return e.tipSize}async _resyncPrivateProfile(){this.keet.onlineBoot.opened||await this.keet.onlineBoot.ready(),await this.keet.internalResyncPrivateProfile()}bookmark(...e){throw console.log("bookmark",...e),new Error("Missing required method: bookmark")}unbookmark(...e){throw console.log("unbookmark",...e),new Error("Missing required method: unbookmark")}subscribeBookmarks(...e){return console.log("subscribeBookmarks",...e),new c}async _loadRecents(e,t={}){const{index:s,range:i}=function(e){return e.favorites?{index:"@local/rooms-by-favorite-and-timestamp",range:{}}:e.default||e.dms||e.broadcast?{index:"@local/rooms-by-type-and-timestamp",range:{lte:{type:a(e)},gte:{type:a(e)}}}:{index:"@local/rooms-by-timestamp",range:{}}}(t),o=await e.find(s,{...t,...i,reverse:!0}).toArray(),r=await Promise.all(o.map(t=>e.get("@local/room-preferences",{roomKey:t.roomKey})));for(let e=0;e<r.length;e++){const t=r[e];t&&!t.status.isActive&&(o[e]=null)}return o;function a(e){return e.default?Z.Default:e.dms?Z.DirectMessage:e.broadcast?Z.Broadcast:void 0}}async _getRoomInfo({localSnapshot:e},t){const o=s.decode(t),r=await e.get("@local/rooms",{roomKey:o});if(!r)return null;let a=v(r.lastMember);const[n,c,l]=await Promise.all([e.get("@local/room-preferences",{roomKey:r.roomKey}),r.lastMessage&&!a?e.get("@local/devices",{device:{key:r.lastMessage.oplog.key}}):null,e.get("@local/file-stats",{roomKey:r.roomKey})]);if(c){const t=await e.get("@local/members",{key:c.device.memberKey});t&&(a={id:s.encode(t.key),memberId:s.encode(t.key),displayName:t.profile.displayName})}if(r.lastMessage){const e=ue(r,r.lastMessage.id);r.lastMessage.read=e}if(r.lastMessage?.event?.memberRemoved){const t=await e.get("@local/members",{key:r.lastMessage.event.memberRemoved.memberKey}),s=t?.profile?.displayName;r.lastMessage.event.memberRemoved.displayName=s}const h=r.selfDevice?i.discoveryKey(r.selfDevice.key):null,d=h?await this.keet.storage.getInfo(h,{hints:!0,auth:!1,head:!1}):null,u=k({roomInfo:r,preferences:n,lastMessageMember:a,storageInfo:d,fileStats:l});return u.isVerified=this.keet.isRoomVerified(t),u}async _searchRooms({local:e}){const t=await this._loadRecents(e),i=[];for(const e of t)e&&i.push({title:e.config.title,roomId:s.encode(e.roomKey)});return i}searchPublicRooms(e,t){return c.from(this._searchPublicRooms(e,t))}async*_searchPublicRooms(e=[],t={}){if(!this.keet.roomRegistry)return;const s=this.keet.local.snapshot();try{for await(const s of this.keet.roomRegistry.search(e)){const e=await i(s.roomKey);t.unjoined&&e||(this.keet.buildType===X.Nightly&&(s.invitation=null),yield O(s,e))}}finally{await s.close()}async function i(e){const t=await s.get("@local/rooms",{roomKey:e});return!!t&&!t.status.isRemoved}}async _getRecentRooms({local:e},t){const[i,o]=await Promise.all([this._loadRecents(e,t),e.get("@local/stats")]),r=[];for(const e of i)e&&r.push({timestamp:e.timestamps.latestChatMessage||e.timestamps.latestSync,roomId:s.encode(e.roomKey)});return{type:"all",total:o?o.activeRooms:0,rooms:r}}async _getPendingRooms({profile:e}){return(await e.db.find("@keet-private-id/pending-invitations").toArray()).map(R)}_getLocalRoomMetadata({local:e},t){return e.get("@local/rooms",{discoveryKey:s.decode(t)})}subscribeRecentRooms(e){return this._addKeetSubscription(Fe,{map:function(e){const[t,s,i]=e;return{type:t,timestamp:s,roomId:i}},query:()=>this.getRecentRooms(e)})}subscribeFavoriteRooms(){return this._addKeetSubscription(xe,{map:function(e){const[t,s,i]=e;return{type:t,timestamp:s,roomId:i}},query:()=>this.getRecentRooms({favorites:!0})})}subscribeRoomInfo(e,t){return this._addRoomSubscription(e,{query:()=>this.getRoomInfo(e,t),name:"room-info"})}subscribeUnreadActivity(e={}){return this._addKeetSubscription(Le,{map:({roomId:t,index:s})=>t?e.includeLength||e.includeIndex?{roomId:t,index:s}:{roomId:t}:null})}subscribeErrors(){return this._addKeetSubscription(Ve,{map:e=>F(e)})}subscribeNotifications(){const e=this.subscribeUnreadActivity({includeIndex:!0}),t=c.from(this._subscribeNotifications(e));return t.once("close",()=>{e.destroy()}),t}setCallRingingId(e){this._callRingingRoomId=e}setProcessingNotifications(e){this._processingNotifications=e}async*_subscribeNotifications(e){for await(const{roomId:i,index:o}of e){if(this.keet.closing)return;if(this._callRingingRoomId){if(i!==this._callRingingRoomId)continue;const e=await this.getChatMessage(i,o);if(this.keet.closing)return;e?.event?.type===ve.CALL_HANGUP&&(yield{type:ve.CALL_HANGUP})}if(this._processingNotifications)continue;const e=await this.keet.local.get("@local/room-preferences",{roomKey:s.decode(i)});if(this.keet.closing)return;const r=e?.status.isFullyMuted||!1,a=(e?.status.roomSnoozeTime||0)>Date.now();if(r||a||this._processingNotifications)continue;const[n,c,l]=await Promise.all([this.getConfig(i),this.getChatMessage(i,o),this.keet.local.get("@local/identity")]);if(this.keet.closing)return;if(!c||Math.abs(Date.now()-c.timestamp)>6e5)continue;const h=await this.getBlockedMembers();if(this.keet.closing)return;if(h.some(e=>e.memberId===c.memberId)||this._processingNotifications)continue;if(l&&s.encode(l.publicKey)===c.memberId)continue;const{settings:d}=await this.keet.local.get("@local/rooms",{roomKey:l.privateProfileKey});if(this.keet.closing)return;if((d?.profileSnoozeTime||0)>Date.now())continue;const u=`${c.id.deviceId}/b${c.id.seq}`,m=t(c),p=c.files.length>0&&c.files[0].metadata?.mimetype||"",g=await this.getMember(i,c.memberId);if(this.keet.closing)return;const b=c.chat?.text||"",y=rt(n.roomType)===Z.DirectMessage;if(!this._processingNotifications&&(b||m)){if(y&&"call"===m){if(Math.abs(Date.now()-c.timestamp)>2e4)continue;if(!(await this.getActiveCalls(i)).length)continue;yield{type:ve.CALL_STARTED}}const e=await this.getRoomInfo(i);if(this.keet.closing)return;const t=e?.config?.avatar?.small?.pointer?.inlined??"",s=c.message?.generic?.locationShared;yield x({messageId:u,roomId:i,avatar:t,location:s,messageText:b,messageType:m,fileType:p},n,g)}}function t(e){return e.event?.type===ve.CALL_STARTED?"call":e.files?.length>0?"file":e.message?.generic?.locationShared?"location":""}}async _setRoomUnread(e,t=!0){this.keet.onlineBoot.opened||await this.keet.onlineBoot.ready();const{privateProfileKey:i}=await this.keet.local.get("@local/identity"),o=await this.keet.local.get("@local/rooms",{roomKey:i});if(!o)return;const{isFeatureSupported:r,FEATURES:a}=this.keet.versions;if(!r(o.digest.abi.version,a.ROOM_MARK_UNREAD))throw new Error("Manual unread is not supported");await this.keet.privateProfile.dispatch("@keet-private-id/update-room-status",{roomKey:s.decode(e),key:re.IsUnread,status:{isUnread:t}})}async _snoozeRoom({profile:e},t,i=0){if(!await this.keet.internalFeatureSupported(e.id,Pe.ROOM_SNOOZE_TIME))throw new Error("Room snoozing not supported");await e.dispatch("@keet-private-id/update-room-status",{roomKey:s.decode(t),key:re.RoomSnoozeTime,status:{roomSnoozeTime:i}})}bumpRoomPriority(...e){throw console.log("bumpRoomPriority",...e),new Error("Missing required method: bumpRoomPriority")}addDevice(...e){throw console.log("addDevice",...e),new Error("Missing required method: addDevice")}removeDevice(...e){throw console.log("removeDevice",...e),new Error("Missing required method: removeDevice")}async _getDevice({db:e},t){const s=await e.findOne("@keet/devices",G({gte:t,lte:t}));return s?w(s):null}async _getDevices({db:e},t){return(await e.find("@keet/devices",G(t)).toArray()).map(e=>w(e))}async moveIndexer(e,t,i){if(!await this.keet.internalFeatureSupported(e,Pe.MOVE_INDEXER))throw new Error("Move indexer not supported");const o=s.decode(t),r=s.decode(i);return this.keet.dispatch(e,"@keet/move-indexer",{deviceKey:o,fromDeviceKey:r})}subscribeDevice(e,...t){return this._addRoomSubscription(e,{query:()=>this.getDevice(e,...t)})}subscribeDevices(e,...t){return this._addRoomSubscription(e,{query:()=>this.getDevices(e,...t)})}async _createIdentityInvitation(){return this.keet.createIdentityInvitation()}_createInvitation(e,t={}){return!0===t.canIndex&&(t.canAdmin=!0),this.keet.createRoomInvitation(s.decode(e),t)}async _updateMember(e,t){this.keet.onlineBoot.opened||await this.keet.onlineBoot.ready();const i=await this.keet.local.get("@local/identity");if(i&&s.encode(i.privateProfileKey))return t=Y(t),this.keet.updateProfile({displayName:e,avatar:t})}async _muteMember(e,t){const i=s.decode(t);return this.keet.dispatch(e,"@keet/change-member-status",{memberKey:i,key:be.IsMuted,status:{isMuted:!0}})}async _unmuteMember(e,t){const i=s.decode(t);return this.keet.dispatch(e,"@keet/change-member-status",{memberKey:i,key:be.IsMuted,status:{isMuted:!1}})}async _isMemberMuted({db:e},t){const i=s.decode(t);return!!await e.get("@keet/muted-members",{key:i})}async _getMemberByDeviceId({myKey:e,snapshot:t,blobsSnapshot:i,localSnapshot:o},r){const a=await Se(t,s.decode(r));if(!a)return null;const n=!!await o.get("@local/active-contacts",{memberKey:a.key});return await Re(t,i,a.profile.avatar),await ct(t,a),v(a,e,n)}async _getMemberBySwarmId({myKey:e,snapshot:t,blobsSnapshot:i,localSnapshot:o},r){const a=s.decode(r),n=await t.get("@keet/devices-by-swarm-key",{profile:{swarmKey:a}});if(!n)return null;const c=await Se(t,n.key);if(!c)return null;const l=!!await o.get("@local/active-contacts",{memberKey:c.key});return await Re(t,i,c.profile.avatar),await ct(t,c),v(c,e,l)}async _getMemberCount({db:e}){const t=await e.get("@keet/threads",{id:0});return t?t.stats.members.active:0}async _getDevicesByMemberId({db:e},t){const i=[],o=s.decode(t),r={gte:{memberKey:o},lte:{memberKey:o}};for await(const t of e.find("@keet/devices-by-member-key",r))i.push(w(t));return i}getCurrentDeviceId(e){const t=this.keet.internalOpenExistingRoom(e);try{return t.deviceId}finally{this.keet.internalReleaseRoom(t)}}async _getMember({roomId:e,myKey:t,snapshot:i,blobsSnapshot:o,localSnapshot:r},a,n={}){const c=s.decode(a);if(!0===n.swarmId)return this.getMemberBySwarmId(e,a);const l=await i.get("@keet/members",{key:c});if(!l)return null;const h=!!await r.get("@local/active-contacts",{memberKey:l.key});return await Re(i,o,l.profile.avatar),await ct(i,l),v(l,t,h)}async _getActiveMember({myKey:e,snapshot:t,blobsSnapshot:i,localSnapshot:o},r){const a=await t.get("@keet/active-members",{key:s.decode(r)});if(!a)return null;const n=!!await o.get("@local/active-contacts",{memberKey:a.key});return await Re(t,i,a.profile.avatar),await ct(t,a),v(a,e,n)}async _removeMember(e,t){const i=s.decode(e),o=await this.keet.local.get("@local/rooms",{roomKey:i});if(!o)return;const{isFeatureSupported:r,FEATURES:a}=this.keet.versions;return r(o.digest.abi.version,a.REMOVE_MEMBER_V2)?this.keet.dispatch(e,"@keet/remove-member",{key:s.decode(t)}):void 0}async _getMembers({myKey:e,snapshot:t,blobsSnapshot:s,localSnapshot:i},o={}){const r=await t.find("@keet/members",G(o)).toArray();return Promise.all(r.map(async o=>{const r=!!await i.get("@local/active-contacts",{memberKey:o.key});return await Re(t,s,o.profile.avatar),await ct(t,o),v(o,e,r)}))}async _getActiveMembers({myKey:e,snapshot:t,blobsSnapshot:s,localSnapshot:i},o={}){const r=await t.find("@keet/active-members",G(o)).toArray();return Promise.all(r.map(async o=>{const r=!!await i.get("@local/active-contacts",{memberKey:o.key});return await Re(t,s,o.profile.avatar),await ct(t,o),v(o,e,r)}))}async _getModerators({myKey:e,snapshot:t,blobsSnapshot:s,localSnapshot:i},o={}){const r=await t.find("@keet/moderators",G(o)).toArray();return Promise.all(r.map(async o=>{const r=!!await i.get("@local/active-contacts",{memberKey:o.key});return await Re(t,s,o.profile.avatar),await ct(t,o),v(o,e,r)}))}getMemberForDevice(...e){throw console.log("getMemberForDevice",...e),new Error("Missing required method: getMemberForDevice")}subscribeMemberCount(e,...t){return this._addRoomSubscription(e,{query:()=>this.getMemberCount(e,...t),name:Ne})}subscribeMember(e,...t){return this._addRoomSubscription(e,{query:()=>this.getMember(e,...t),name:Ne})}subscribeActiveMember(e,...t){return this._addRoomSubscription(e,{query:()=>this.getActiveMember(e,...t),name:Ne})}subscribeActiveMembers(e,...t){return this._addRoomSubscription(e,{query:()=>this.getActiveMembers(e,...t),name:Ne})}subscribeMembers(e,...t){return this._addRoomSubscription(e,{query:()=>this.getMembers(e,...t),name:Ne})}subscribeModerators(e,...t){return this._addRoomSubscription(e,{query:()=>this.getModerators(e,...t),name:Ne})}subscribeMemberForDevice(e,...t){return this._addRoomSubscription(e,{query:()=>this.getMemberByDeviceId(e,...t),name:Ne})}_changeMemberRole(e,{memberId:t,role:i}){return this.keet.dispatch(e,"@keet/change-member-role",{key:s.decode(t),isAdmin:i===ye.ADMIN,isModerator:i===ye.ADMIN||i===ye.MODERATOR})}async _getSearchMembers({myKey:e,snapshot:t,blobsSnapshot:s,localSnapshot:i},o,{limit:r=50}={}){o=o.toLowerCase();const a=await t.find("@keet/members-by-member-name",{gte:{name:o},limit:r}).toArray();return(await Promise.all(a.map(async o=>{const r=!!await i.get("@local/active-contacts",{memberKey:o.key});return await Re(t,s,o.profile.avatar),await ct(t,o),v(o,e,r)}))).filter(e=>e.name.startsWith(o))}getPushNotificationMembers(...e){throw console.log("getPushNotificationMembers",...e),new Error("Missing required method: getPushNotificationMembers")}subscribeSearchMembers(...e){return console.log("subscribeSearchMembers",...e),new c}subscribePushNotificationMembers(...e){return console.log("subscribePushNotificationMembers",...e),new c}async _addContact(e,t,i){const o=s.decode(e);await this.keet.addContact(o,t,i)}async _setContactAlias(e,t){const i=s.decode(e);await this.keet.setContactAlias(i,t)}async _removeContact(e){const t=s.decode(e);await this.keet.removeContact(t)}async _getActiveContacts({localSnapshot:e}){return ge(e.find("@local/active-contacts"),async t=>{const s=await e.get("@local/members",{key:t.memberKey});return N(t,s)})}subscribeActiveContacts(){return this._addRoomSubscription(Ue,{query:()=>this.getActiveContacts()})}async _getContactInfo({local:e,profile:t},i){const o=s.decode(i),[r,a,n]=await Promise.all([e.get("@local/contacts",{memberKey:o}),e.findOne("@local/rooms-by-contact",{gte:{contact:o},lte:{contact:o}}),t.db.findOne("@keet-private-id/pending-contact-requests-by-member",{gte:{memberKey:o},lte:{memberKey:o}})]);return K(i,r,a,n)}subscribeContactInfo(e){return this._addRoomSubscription(Te,{query:async()=>{const t=this.keet.local.snapshot();try{const i=s.decode(e),[o,r]=await Promise.all([t.get("@local/contacts",{memberKey:i}),t.findOne("@local/rooms-by-contact",{gte:{contact:i},lte:{contact:i}})]);return K(e,o,r,null)}finally{await t.close()}}})}async _blockMember(e,t){const i=s.decode(t);return this.keet.blockContact(i)}async _unblockMember(e,t){const i=s.decode(t);return this.keet.unblockContact(i)}async _getBlockedMembers({localSnapshot:e}){return ge(e.find("@local/blocked-contacts"),async e=>N(e))}subscribeBlockedMembers(){return this._addRoomSubscription(Ue,{query:()=>this.getBlockedMembers()})}getConnectedMembers(...e){throw console.log("getConnectedMembers",...e),new Error("Missing required method: getConnectedMembers")}subscribeConnectedMembers(...e){return console.log("subscribeConnectedMembers",...e),new c}async _updateConfig(e,t,s){const i=function(e){switch(e){case"title":return ae.Title;case"avatar":return ae.Avatar;case"description":return ae.Description;case"supportedLanguages":return ae.SupportedLanguages;case"blindPeers":return ae.BlindPeers;default:return 0}}(t);if(0!==i){const t={[ne[i-1]]:s};await this.keet.dispatch(e,"@keet/update-room-config",{key:i,config:W(t)})}else if("roomType"===t){const t=rt(s);if(0===t)throw new Error("Invalid room type");await this.keet.dispatch(e,"@keet/update-system-settings",{key:ce.RoomType,settings:{roomType:t}})}else{if("canCall"!==t)throw new Error("Invalid config key");await this.keet.dispatch(e,"@keet/update-system-settings",{key:ce.IsCallingDisabled,settings:{isCallingDisabled:"false"===s}})}}async _updateRoomPreferences({profile:e},t,i,o){if(!ke(i))throw new Error(`invalid preference key: ${i}`);const r=s.decode(t);await this.keet.dispatch(e.id,"@keet-private-id/update-room-status",{roomKey:r,key:ot(i),status:{[_e(i)]:o}})}async _updateRoomSettings(e,t,i){if(t===se.IsAttachmentsDisabled&&!await this.keet.internalFeatureSupported(e,Pe.DISABLE_FILE_ATTACHMENTS))throw new Error("Disabling file attachments not supported");if(t===se.IsLinksDisabled&&!await this.keet.internalFeatureSupported(e,Pe.DISABLE_LINKS))throw new Error("Disabling links not supported");if(t===se.IsRoomInviteHidden&&!await this.keet.internalFeatureSupported(e,Pe.HIDE_ROOM_INVITE))throw new Error("Hiding room invite not supported");const o=s.decode(e);return this.keet.dispatch(o,"@keet/update-system-settings",{key:t,settings:i})}async _getRoomSettings(e){const t=s.decode(e),i=this.keet.internalOpenExistingRoom(t);try{return(await i.db.get("@keet/system-digest")).settings}finally{this.keet.internalReleaseRoom(i)}}async _getRoomPreferences({local:e},t,i){const o=s.decode(t),r=await e.get("@local/room-preferences",{roomKey:o});if(!r)return null;const{status:a}=r;return ke(i)?i?a[_e(i)]:a:null}async _getConfig({roomKey:e,local:t},s){const i=await t.get("@local/rooms",{roomKey:e});if(!i)return null;const{config:o,digest:r}=i,a=_(o,r)||{};return s?a[s]:a}subscribeConfig(e){return this._addRoomSubscription(e,{query:()=>this.getConfig(e)})}async _addChatMessage(e,t,i={}){const o=s.decode(e),r=await this.keet.local.get("@local/rooms",{roomKey:o});if(!r)return;const a=H(t,i),n=at(a),{isFeatureSupported:c,FEATURES:l}=this.keet.versions,h=c(r.digest.abi.version,l.MULTI_FILES);if(a.files.length&&!h)throw new Error("multi files not supported");const d=this.keet.batch(e);return 0!==await d.dispatch("@keet/add-chat-message",{timestamp:Date.now(),message:a})?((n.files.length||n.pearLink.length||n.httpLink.length)&&await nt(d,n),await d.flush()):void 0}async _updateChatMessage(e,t,i,o={}){const r=s.decode(e),a=await this.keet.local.get("@local/rooms",{roomKey:r});if(!a)return;const n=V(t),c=H(i,o),l=at(c),{isFeatureSupported:h,FEATURES:d}=this.keet.versions,u=h(a.digest.abi.version,d.MULTI_FILES);if(c.files.length&&!u)throw new Error("multi files not supported");const m=this.keet.batch(e);0!==await m.dispatch("@keet/update-chat-message",{oplog:n,message:c})&&((l.files.length||l.pearLink.length||l.httpLink.length)&&await nt(m,l,n),await m.flush())}async _removeChatMessage({roomKey:e,local:t,roomId:s,snapshot:i,blobsSnapshot:o,files:r},a){const n=await this._getChatMessageById({roomKey:e,local:t,snapshot:i,blobsSnapshot:o,files:r},a);if(!n)return null;if(n.files.length){const t=[];for(const s of n.files)t.push(this._clearFile({roomKey:e,files:r},s));await Promise.all(t)}return this.keet.dispatch(s,"@keet/remove-chat-message",{oplog:V(a)})}async _forwardChatMessage({roomKey:e,local:t,roomId:i,snapshot:o,blobsSnapshot:r,files:a},n,c){const[l,h]=await Promise.all([this.keet.local.get("@local/rooms",{roomKey:e}),this.keet.local.get("@local/rooms",{roomKey:s.decode(c)})]);if(!l||!h)return;const{isFeatureSupported:d,FEATURES:u}=this.keet.versions;if(!d(l.digest.abi.version,u.FORWARDED_MESSAGE))throw new Error("Message forwarding not supported");if(!d(h.digest.abi.version,u.FORWARDED_MESSAGE))throw new Error("Message forwarding not supported");const m=await o.get("@keet/chat-by-message-id",{oplog:V(n)});if(!m)throw new Error("Source message not found");if(!m.message.text)throw new Error("Source message has no text");const p=m.message.display||{};for(const e of p.httpLink||[])e.preview=null;for(const e of p.pearLink||[])e.preview=null;const g={text:m.message.text,forwarded:!0,files:[],display:p,replyTo:null,event:null};return this.keet.dispatch(c,"@keet/add-chat-message",{timestamp:Date.now(),message:g})}_pinChatMessage(e,t){return this.keet.dispatch(e,"@keet/pin-chat-message",{oplog:V(t),isPinned:!0})}_unpinChatMessage(e,t){return this.keet.dispatch(e,"@keet/pin-chat-message",{oplog:V(t),isPinned:!1})}async startCall(e,t={}){if(!await this.keet.internalFeatureSupported(e,Pe.CALLS_V2))return this.addCallStartedEvent(e);if(3!==t.version)throw new Error("Only calls v3 is supported");if(!t.streams)throw new Error("Streams are required");if((await this._getRoomSettings(e)).isCallingDisabled)throw Ke.CALL_DISABLED();if(!await this.keet.internalFeatureSupported(e,Pe.CALLS_V3))throw new Error("Calls v3 is not supported");return this.keet.internalStartCall(e,t.streams)}async joinCall(e,t,{version:s,streams:i=[]}={}){if(await this.keet.internalFeatureSupported(e,Pe.CALLS_V2)){if(3!==s)throw new Error("Only calls v3 is supported");if(!i.length)throw new Error("Streams are required");if(!await this.keet.internalFeatureSupported(e,Pe.CALLS_V3))throw new Error("Calls v3 is not supported");return this.keet.internalJoinCall(e,t,i)}}async leaveCall(e,t){if(await this.keet.internalFeatureSupported(e,Pe.CALLS_V2))return this.keet.internalLeaveCall(e,t)}async endCall(e,t){if(!await this.keet.internalFeatureSupported(e,Pe.CALLS_V2)){const t=s.decode(e);if(!(await this.keet.local.get("@local/rooms",{roomKey:t})).dm)return;return this.addCallHangupEvent(e)}return this.keet.internalEndCall(e,t)}async addCallStream(e,t,o){if(!await this.keet.internalFeatureSupported(e,Pe.CALLS_V2))throw new Error("Calls v2 is not supported");return this.keet.dispatch(e,"@keet/add-call-stream",{callKey:s.decode(t),streamKey:o.id?s.decode(o.id):i.randomBytes(32),mediaStreamId:o.mediaStreamId,type:o.type,muted:o.muted??!1})}async updateCallStream(e,t,i,{muted:o}){if(!await this.keet.internalFeatureSupported(e,Pe.CALL_STREAM_STATUS))throw new Error("Call stream status is not supported");return this.keet.dispatch(e,"@keet/update-call-stream",{callKey:s.decode(t),streamKey:s.decode(i),muted:o})}async removeCallStream(e,t,i){if(!await this.keet.internalFeatureSupported(e,Pe.CALLS_V2))throw new Error("Calls v2 is not supported");return this.keet.dispatch(e,"@keet/remove-call-stream",{callKey:s.decode(t),streamKey:s.decode(i)})}async startCallRecording(e,t){if(!await this.keet.internalFeatureSupported(e,Pe.CALL_RECORDING))throw new Error("Call recording is not supported");return this.keet.dispatch(e,"@keet/start-call-recording",{callKey:s.decode(t)})}async stopCallRecording(e,t){if(!await this.keet.internalFeatureSupported(e,Pe.CALL_RECORDING))throw new Error("Call recording is not supported");return this.keet.dispatch(e,"@keet/stop-call-recording",{callKey:s.decode(t)})}async _getActiveCalls({engine:e,snapshot:t},s={}){return(await me(t,"@keet/active-calls-by-timestamp")).map(t=>B(t,{...s,deviceKey:e.local.key}))}async _getCalls({snapshot:e},t={}){return(await me(e,"@keet/calls-by-timestamp")).map(e=>B(e,t))}async _getAllActiveCalls({localSnapshot:e},t={}){if(!0===t.rejoin){const t=e.find("@local/rooms-by-active-call",{reverse:!0});for await(const e of t)if(e.activeCall.selfDeviceKey)return lt(e);return null}const s=[];for await(const t of e.find("@local/rooms-by-active-call"))s.push(lt(t));return s}subscribeAllActiveCalls(e){return this._addKeetSubscription(ze,{query:()=>this.getAllActiveCalls(e)})}subscribeActiveCalls(e,...t){return this._addRoomSubscription(e,{query:()=>this.getActiveCalls(e,...t)})}subscribeCalls(e,...t){return this._addRoomSubscription(e,{query:()=>this.getCalls(e,...t)})}subscribeCallProxy(e){const t=this.keet.callProxy.getCallById(e);if(!t)throw Ke.CALL_NOT_ACTIVE("",{callId:e});const s=new c,i=({swarmId:e,proxyPort:t})=>s.push({type:"peer",swarmId:e,proxyPort:t}),o=({swarmId:e,data:t})=>s.push({type:"signal",swarmId:e,data:t}),r=({swarmId:e})=>s.push({type:"peer-close",swarmId:e});t.on("peer",i),t.on("signal",o),t.on("peer-close",r);for(const[e,i]of t.openPeers())s.push({type:"peer",swarmId:e,proxyPort:i});return s.once("close",()=>{t.off("peer",i),t.off("signal",o),t.off("peer-close",r)}),s}signalCallPeer(e,t,s){const i=this.keet.callProxy.getCallById(e);if(!i)throw Ke.CALL_NOT_ACTIVE("",{callId:e});i.signal(t,s)}_addCallStartedEvent(e){return this.addChatMessage(e,null,{callStarted:!0})}_addCallHangupEvent(e){return this.addChatMessage(e,null,{callHangup:!0})}_addCallMissedEvent(e){return this.addChatMessage(e,null,{callMissed:!0})}async _addLocationSharedEvent(e,t,{locationShared:{latitude:i,longitude:o}}){const r=s.decode(e),a=await this.keet.local.get("@local/rooms",{roomKey:r});if(!a)return;const{isFeatureSupported:n,FEATURES:c}=this.keet.versions;if(!n(a.digest.abi.version,c.LOCATION_SHARED_EVENT))throw new Error("Location sharing not supported");return this.addChatMessage(e,t,{locationShared:{latitude:i,longitude:o}})}addRoomAvatarChangedEvent(...e){console.log("addRoomAvatarChangedEvent",...e),console.warn("Missing required method: addRoomAvatarChangedEvent")}addEvent(...e){console.log("addEvent",...e),console.warn("Missing required method: addEvent")}removeEvent(...e){console.log("removeEvent",...e),console.warn("Missing required method: removeEvent")}async _getChatMessage({roomKey:e,local:t,snapshot:s,blobsSnapshot:i,files:o},r){return(await le(async function(){const t=j(e,{gte:r,lte:r});return await s.findOne("@keet/chat",t)},e,t,s,i,o))[0]}async _getChatMessageById({roomKey:e,local:t,snapshot:s,blobsSnapshot:i,files:o},r){return(await le(async function(){return await s.get("@keet/chat-by-message-id",{oplog:V(r)})},e,t,s,i,o))[0]}async _getChatMessages({roomKey:e,local:t,snapshot:s,blobsSnapshot:i,files:o},r){return await le(async function(){const t=j(e,r);return await s.find("@keet/chat",t).toArray()},e,t,s,i,o)}async _getPinnedChatMessages({roomKey:e,local:t,snapshot:s,blobsSnapshot:i,files:o},r){return await le(async function(){return await s.find("@keet/pinned-chat-messages",r).toArray()},e,t,s,i,o)}async _getChatLength({db:e}){const t=await e.get("@keet/threads",{id:0});return{length:t?t.count:0}}subscribeChatMessages(e,...t){return this._addRoomSubscription(e,{query:()=>this.getChatMessages(e,...t)})}subscribeChatLength(e,t){let s=null;return this._addRoomSubscription(e,{query:async()=>{if(!t||!t.reorders)return this.getChatLength(e);if(this.keet.closing)return null;const i=this.keet.internalOpenExistingRoom(e);try{const{length:t}=await this.getChatLength(e),{undos:o,fastForwards:r}=i.engine.stats,a=null!==s&&(o!==s.undos||r!==s.fastForwards);return s={undos:o,fastForwards:r},{length:t,reordered:a}}finally{this.keet.internalReleaseRoom(i)}}})}async _searchChatMessages({snapshot:e,roomKey:t,local:s,blobsSnapshot:i,files:o},a,{limit:n=1e3,reverse:c=!0}={}){if(!a||!a.length)return[];const l=await s.get("@local/rooms",{roomKey:t});if(!l)return[];if(!(a=a.map(e=>e.replace(/\s/g,"").toLowerCase()).filter(e=>e)).length)return[];const h=[];for await(const s of e.find("@keet/chat",{limit:n,reverse:c})){if(!s.message?.text)continue;const n=s.message.text.replace(/\s/g,"").toLowerCase();if(a.every(e=>n.indexOf(e)>-1)){const a=he(t,e,i,l,o,s);a.catch(r),h.push(a)}}return Promise.all(h)}createChatSearchStream(e,t,s){return c.from(this._createChatSearchGenerator(e,t,s))}async*_createChatSearchGenerator(e,t,{limit:i=1e3,reverse:o=!0}={}){if(!t||!t.length)return;if(!(t=t.map(e=>e.replace(/\s/g,"").toLowerCase()).filter(e=>e)).length)return;const r=s.decode(e),a=await this.keet.local.get("@local/rooms",{roomKey:r});if(!a)return;const n=this.keet.internalOpenExistingRoom(r);await n.ready();const c=n.db.snapshot(),l=n.blobs?n.blobs.snapshot():null,h=this.keet.local.snapshot(),d=this.keet.files,u=c.find("@keet/chat",{limit:i,reverse:o});try{for await(const e of u){const t=await m(e);t&&(yield t)}}catch(e){this.keet.onerror(e)}finally{await h.close(),await c.close(),l&&await l.close(),this.keet.internalReleaseRoom(n)}async function m(e){const t=p(e.message?.text);let i=!1;if(e&&e.message&&e.message.files&&(i=!!e.message.files.length),!i&&!g(t))return;const o=await he(r,c,l,a,d,e);if(i&&!g(t)&&!function(e){return e.files.some(e=>g(p(e.metadata?.name)))}(o))return;if(o.labels.flagged||o.labels.flags>=we)return;const n=s.decode(o.memberId);return await h.get("@local/blocked-contacts",{memberKey:n})||await c.get("@keet/muted-members",{key:n})||o.reactions.digest.reactions.find(e=>"⚠️"===e.text)?void 0:o}function p(e){return e?e.replace(/\s/g,"").toLowerCase():""}function g(e){return!!e&&t.every(t=>e.indexOf(t)>-1)}}_sendDMFromContact(e,{message:t=null}={}){return this.keet.sendContactRequestFromContact(e,{message:t})}_sendDMRequest(e,t,{message:s=null}={}){return this.sendInvitations(e,{receivers:[t],message:s})}async _sendInvitations(e,{receivers:t,message:i}){const o=s.decode(e),r=Array.isArray(t)?t[0]:t,a=s.decode(r);await this.keet.sendContactRequest(o,a,{message:i})}async _updatePrivateMailboxRecord({memberId:e,roomId:t},i={}){this.keet.onlineBoot.opened||await this.keet.onlineBoot.ready();const o=i.isSeen||1===i.seen;return this.keet.privateProfile.dispatch("@keet-private-id/update-contact-request-status",{memberKey:s.decode(e),roomKey:s.decode(t),key:oe.IsSeen,status:{isSeen:o}})}async _getDmRequestsByStatus({localSnapshot:e,profileDb:t},s,{reverse:i=!0,limit:o=50}={}){if(!t)return[];const r={[fe.ACCEPTED]:"@keet-private-id/accepted-contact-requests-v2",[fe.REJECTED]:"@keet-private-id/rejected-contact-requests-v2",[fe.PENDING]:"@keet-private-id/pending-contact-requests-v2",[fe.DISCARDED]:"@keet-private-id/discarded-contact-requests-v2"}[s]||"@keet-private-id/pending-contact-requests-v2",a=t.find(r,{reverse:i,limit:o});return ge(a,async t=>{const s=await e.get("@local/active-contacts",{memberKey:t.memberKey});return I(t,s)})}subscribeDmRequestsByStatus(e,t={}){return this._addRoomSubscription(Ue,{query:()=>this.getDmRequestsByStatus(e,t)})}async _getPrivateMailboxRecords({profile:e},t={}){console.warn("Deprecated: getPrivateMailboxRecords")}subscribePrivateMailbox(){return console.warn("Deprecated: subscribePrivateMailbox"),new c}getSentPrivateMailboxRecords(...e){console.warn("Deprecated: getSentPrivateMailboxRecords")}subscribeSentPrivateMailbox(...e){return console.warn("Deprecated: subscribeSentPrivateMailbox"),new c}async _getDmByMemberId({profileSnapshot:e},t){const o=s.decode(t),[r,a]=await Promise.all([e.get("@keet-private-id/contacts",{memberKey:o}),e.get("@keet-private-id/contact-requests",{memberKey:o})]);let n=null;return r&&r.roomKey?n=r.roomKey:a&&(n=a.keys.key),{roomId:n?s.encode(n):null,discoveryId:n?s.encode(i.discoveryKey(n)):null,dmMemberId:t,recipient:t}}async updateRoomInvitationSeenStatus({discoveryId:e,invitationId:t},i){return this.keet.updateRoomInvitationSeenStatus(s.decode(e),s.decode(t),i)}async _acceptDmRequest({memberId:e,roomId:t}){return this.keet.onlineBoot.opened||await this.keet.onlineBoot.ready(),this.keet.privateProfile.dispatch("@keet-private-id/update-contact-request-status",{memberKey:s.decode(e),roomKey:s.decode(t),key:oe.IsAccepted,status:{isAccepted:!0}})}async _rejectDmRequest({memberId:e,roomId:t}){return this.keet.onlineBoot.opened||await this.keet.onlineBoot.ready(),this.keet.privateProfile.dispatch("@keet-private-id/update-contact-request-status",{memberKey:s.decode(e),roomKey:s.decode(t),key:oe.IsRejected,status:{isRejected:!0}})}async discardDmRequest({memberId:e,roomId:t}){return this.keet.onlineBoot.opened||await this.keet.onlineBoot.ready(),this.keet.privateProfile.dispatch("@keet-private-id/update-contact-request-status",{memberKey:s.decode(e),roomKey:s.decode(t),key:oe.IsDiscarded,status:{isDiscarded:!0}})}_addReaction(e,t,i){return this.keet.dispatch(e,"@keet/add-reaction",{oplog:{key:s.decode(t.deviceId),seq:t.seq},reaction:i})}_removeReaction(e,t,i){return this.keet.dispatch(e,"@keet/remove-reaction",{oplog:{key:s.decode(t.deviceId),seq:t.seq},reaction:i})}async _getLatestReactions({snapshot:e},t,s,{limit:i}={}){const{id:o}=await e.get("@keet/chat-by-message-id",{oplog:V(t)});return(await e.find("@keet/reactions-by-clock",{gte:{id:o,reaction:s},lte:{id:o,reaction:s},limit:i,reverse:!0}).toArray()).map(e=>M(e))}async _getReactions({roomKey:e,snapshot:t,local:s},i){const o=V(i);return de({roomKey:e,snapshot:t,local:s,oplog:o})}subscribeReactions(e,t){return this._addRoomSubscription(e,{query:()=>this.getReactions(e,t)})}subscribeReportedMessages(e,...t){return this._addRoomSubscription(e,{query:()=>this.getReportedMessages(e,...t)})}subscribeReportedMembers(e,...t){return this._addRoomSubscription(e,{query:()=>this.getReportedMembers(e,...t),name:Ne})}async _getReportedMembers({snapshot:e,blobsSnapshot:t,localSnapshot:i},{clock:o,limit:r=50}={}){const a=await e.find("@keet/member-label-digests-by-clock",{gte:{label:te.Flag},lte:{label:te.Flag,clock:o},limit:r<=50?r:50,reverse:!0}),n=[];for await(const e of a){const t=c.bind(this);n.push(t(e))}return await Promise.all(n);async function c(o){const{key:r,total:a,flagsClock:n}=o,c=await this._getMember({snapshot:e,blobsSnapshot:t,localSnapshot:i},s.encode(r));return c.labels={total:a,flagsClock:n},c}}reportMember(e,t){return this.keet.dispatch(e,"@keet/add-member-label",{key:s.decode(t),label:te.Flag})}async _getReportedMessages({roomKey:e,local:t,snapshot:s,blobsSnapshot:i,files:o},{clock:r,limit:a=50}={}){const n=await t.get("@local/rooms",{roomKey:e});if(!n)return;const c=await s.find("@keet/chat-label-digests-by-clock",{gte:{label:ee.Flag},lte:{label:ee.Flag,clock:r},limit:a<=50?a:50,reverse:!0}),l=[];for await(const{id:e}of c)l.push(h(e));return await Promise.all(l);async function h(t){const r=await s.findOne("@keet/chat",{gte:{id:t},lte:{id:t}});return he(e,s,i,n,o,r)}}_addChatReport(e,t){const s=V(t);return this.keet.dispatch(e,"@keet/add-chat-label",{oplog:s,label:ee.Flag})}_removeChatReport(e,t){const s=V(t);return this.keet.dispatch(e,"@keet/remove-chat-label",{oplog:s,label:ee.Flag})}async _dismissChatReports(e,t){if(!await this.keet.internalFeatureSupported(e,Pe.DISMISS_CHAT_REPORTS))throw new Error("Dismissing chat reports is not supported");const s=V(t);return this.keet.dispatch(e,"@keet/dismiss-chat-reports",{oplog:s})}addFileBlob(...e){throw console.log("addFileBlob",...e),new Error("Missing required method: addFileBlob")}addFile(...e){throw console.log("addFile",...e),new Error("Missing required method: addFile")}async _saveFileBlob({roomKey:e,files:t},s,i){const o=await t.saveFileBlob(e,s,i);return S(o)}async _saveFile({roomKey:e,files:t},s,i){const o=await t.saveFile(e,s,i);return S(o)}subscribeAddFile(e,t,i){const o=s.decode(e);return h(this.keet.files.subscribeAddFile(o,t,i),new l({transform(e,t){t(null,{...e,result:S(e.result)})}}))}async _sendFile(e,t){const s=t.preview;t.preview=null;const i=this.keet.batch(e),o=await i.dispatch("@keet/add-chat-message",{timestamp:Date.now(),message:H(null,{files:[t]})});0!==o&&(s&&await i.dispatch("@keet/add-file-preview",{oplog:{key:i.key,seq:o-1},index:0,preview:Y(s)},{dryRun:!1}),await i.flush())}async _sendFiles(e,t=[]){const s=[];for(const e of t)s.push(e.preview),e.preview=null;const i=this.keet.batch(e),o=await i.dispatch("@keet/add-chat-message",{timestamp:Date.now(),message:H(null,{files:t})});if(0===o)return;const r={key:i.key,seq:o-1};for(let e=0;e<s.length;e++){const t=s[e];t&&await i.dispatch("@keet/add-file-preview",{oplog:r,index:e,preview:Y(t)},{dryRun:!1})}await i.flush()}removeFile(...e){throw console.log("removeFile",...e),new Error("Missing required method: removeFile")}subscribeFileInfo(e,t){const i=s.decode(e),o=this;let r=null;return new c({async open(e){let s=null;try{r=await o.keet.files.monitor(i,z(t)),r.on("update",e=>{this.push(r.stats)})}catch(e){s=e}e(s)},async destroy(e){r&&r.close(),e(null)}})}async _clearAllFiles({roomId:e,roomKey:t,files:s},i){const o=await s.clearAllFiles(t,i);return this.keet.emit("local-files-changed",e),o}async _clearOldFiles(){return this.keet.files.clearOldFiles()}async _getFileEntry({roomKey:e,files:t},s){const i=await t.getFileEntry(e,z(s));return A(i)}async _getLocalFiles({roomKey:e,files:t,snapshot:s,blobsSnapshot:i}){const o=await t.getLocalFiles(e);return Promise.all(o.map(async o=>{const r=await t.getFileEntryWithPreview(e,o.file,{loadBlob:e=>pe(e,s,i)});return{...S(r.file),entry:A(r)}}))}async _getFiles({roomKey:e,files:t,snapshot:i,blobsSnapshot:o},r={}){const a=J(r),n=await i.find(r.type?"@keet/files-by-major-type":"@keet/active-files",a).toArray();return Promise.all(n.map(async r=>{const a=await t.getFileEntryWithPreview(e,r.file,{loadBlob:e=>pe(e,i,o)});return{...S(a.file),id:r.id,messageId:{deviceId:s.encode(r.oplog.key),seq:r.oplog.seq},entry:A(a)}}))}_startDownload({roomKey:e,files:t},s){return t.startDownload(e,z(s))}_cancelDownload({roomKey:e,files:t},s){return t.cancelDownload(e,s)}readFileStream(e,t,i){const o=s.decode(e);return this.keet.files.readFileStream(o,z(t),i)}subscribeSaveToDisk(e,t,i,o={}){const r=s.decode(e);return this.keet.files.subscribeSaveToDisk(r,z(t),i,o)}_saveToDisk({roomKey:e,files:t},s,i){return t.saveToDisk(e,z(s),i)}async _clearFile({roomId:e,roomKey:t,files:s},i){i.preview?.large?.pointer?.externalBlob&&await s.clearFile(t,z(i.preview.large)),await s.clearFile(t,z(i)),this.keet.emit("local-files-changed",e)}async _unclearFile({roomId:e,roomKey:t,files:s},i){i.preview?.large?.pointer?.externalBlob&&await s.unclearFile(t,z(i.preview.large)),await s.unclearFile(t,z(i)),this.keet.emit("local-files-changed",e)}_getFileCleared({roomKey:e,files:t},s){return t.getFileCleared(e,z(s))}_refreshFileLinks(e){return this.keet.files.refreshLinks(e)}subscribeFileCleared(e,t){return this._addRoomSubscription(e,{query:()=>this.getFileCleared(e,t)})}subscribeFiles(e,...t){return this._addRoomSubscription(e,{query:async()=>this.getFiles(e,...t)})}getStats(){return{suspended:this.keet.state===qe.SUSPEND,onlineBoot:this.keet.onlineBoot.opened,connections:this.keet.swarm.connections.size,openRooms:this.keet.rooms.size,openRoomIds:[...this.keet.rooms.keys()],openCores:this.keet.store.cores.size,blindPeering:this.keet.blindPeering?.stats??null,activeRooms:this.keet.activeRooms.size,roomSubscriptions:[...this._subscriptions.values()].filter(e=>e.isRoomSub).size,backgroundSwarmingRooms:[...this.keet.swarmWorker.sessions.keys()],dht:this.keet.swarm.dht.stats,swarm:this.keet.swarm.stats,ops:this.keet.stats.ops,uploaded:this.keet.stats.uploaded,bytesUploaded:this.keet.stats.bytesUploaded,downloaded:this.keet.stats.downloaded,bytesDownloaded:this.keet.stats.bytesDownloaded,appends:this.keet.stats.appends,bytesAppended:this.keet.stats.bytesAppended,ipc:{sent:0,recv:0},threads:[]}}async getRoomStats(e){const t=this.keet.internalOpenExistingRoom(s.decode(e));try{return await t.getStats()}finally{this.keet.internalReleaseRoom(t)}}async _lookupUsername(e){if(!e)return;const t=await this.keet.userRegistry.lookup(e);return E(t)}async _lookupUserByMemberId(e){if(!e)return;const t=s.decode(e),i=await this.keet.userRegistry.lookupByKey(t);return E(i)}async _searchUsername(e,{limit:t=20}={}){return(await this.keet.userRegistry.search(e,{limit:t})).map(E)}_registerUsername(e){return this.keet.userRegistry.update(e)}_updateUsername(e){return this.keet.userRegistry.update(e)}async _getReservationsByKey(e){if(!e)return;const t=s.decode(e),i=await this.keet.userRegistry.getReservationsByKey(t);if(!i||!i.length)return null;const o=i[0];return P(o)}subscribeUsername(){const e=this.keet.userRegistry.subscribeUsername();return h(e,new l({transform(e,t){if(!e)return t(null);t(null,{status:e.status,reservation:P(e.reservation),record:E(e.record),error:e.error})}}))}_checkUsername(e){return this.keet.userRegistry.isAvailable(e)}subscribeSystemUpdateRequest(){return this._addKeetSubscription(Oe,{query:()=>this.keet.migrationStatus||{remaining:0}})}async autobeeLogs(e){const t=this.keet.internalOpenExistingRoom(s.decode(e));try{await t.ready(),await t.engine.logs()}finally{this.keet.internalReleaseRoom(t)}}close(){return this.keet.close()}suspend(){return this.keet.suspend()}resume(){return this.keet.resume()}async getDebugFlags(){const e=await this.keet.local.get("@local/debug");return e?.flags||[]}async updateDebugFlag(e,t){const s=Ie.get(e);if(!(s>=0))return;const i=await this.keet.internalEnterLocalTransaction();try{const e=await i.get("@local/debug");e.flags[s].value=!0===t,await i.insert("@local/debug",e),await i.flush()}finally{await this.keet.internalExitLocalTransaction()}}createErrorStream(){return h(this.keet.local.find("@local/errors"),new l({transform(e,t){t(null,F(e))}}))}async _repair(e){const t=this.keet.internalOpenExistingRoom(s.decode(e));try{await t.ready(),await t.engine.repair()}finally{this.keet.internalReleaseRoom(t)}}async _audit(e){const t=this.keet.rootCorestore.audit(e),s=[];for await(const e of t)s.push(e);return s}async _rotateWriter(e){return this.keet.rotateWriter(s.decode(e))}compact(e=!1){return e?this.keet.storage.compact({blobGarbageCollectionPolicy:Ae.garbageCollectionPolicy.FORCE,blobGarbageCollectionAgeCutoff:1,bottommostLevelCompaction:Ae.bottommostLevelCompaction.FORCE}):this.keet.storage.compact()}async _setUnread(e,t){const i=s.decode(e),o=await this.keet.internalEnterLocalTransaction();try{await o.insert("@local/unreads",{roomKey:i,count:t}),await o.flush()}finally{await this.keet.internalExitLocalTransaction()}}async _getUnread(e){const t=s.decode(e),i=await this.keet.local.get("@local/unreads",{roomKey:t});return i?i.count:0}async _setUnreadAnchor(e,t){const i=s.decode(e);this.keet.onlineBoot.opened||await this.keet.onlineBoot.ready(),this.keet.unreads&&await this.keet.unreads.put(i,{timestamp:Date.now(),length:t});const o=await this.keet.local.get("@local/rooms",{roomKey:i});if(!o?.dm?.length)return;const{isFeatureSupported:r,FEATURES:a}=this.keet.versions;if(!r(o.digest.abi.version,a.READ_LENGTH))return;const n=await this.keet.internalOpenPrivateProfile();try{const s=await n.db.get("@keet-private-id/settings");if(s?.disableReadReceipts)return;await this.keet.dispatch(e,"@keet/update-read-length",{length:t})}finally{this.keet.internalReleaseRoom(n)}}async _getUnreadAnchor(e){if(this.keet.onlineBoot.opened||await this.keet.onlineBoot.ready(),!this.keet.unreads)return null;const t=s.decode(e);return this.keet.unreads.get(t)}_subscribeUnreadAnchor(e){return this._addKeetSubscription(He,{query:()=>this.getUnreadAnchor(e)})}async _updateTypingIndicator({roomId:e,db:t}){this.keet.onlineBoot.opened||await this.keet.onlineBoot.ready();const s=await t.get("@keet/system-digest");if(s.settings.roomType!==Z.DirectMessage)return;const{isFeatureSupported:i,FEATURES:o}=this.keet.versions;if(!i(s.abi.version,o.TYPING_INDICATOR))throw new Error("Typing indicator is not supported");await this.keet.dispatch(e,"@keet/update-typing-indicator",{})}async _getTypingIndicator({db:e},t){const i=s.decode(t),o=await e.get("@keet/typing-indicators",{memberKey:i});return o?{memberId:t,timestamp:o.timestamp}:null}_subscribeTypingIndicator(e,t){return this._addRoomSubscription(e,{query:()=>this.getTypingIndicator(e,t),name:"typing-indicator"})}async _setRoomFavorite(e,t=!0){this.keet.onlineBoot.opened||await this.keet.onlineBoot.ready();const{privateProfileKey:i}=await this.keet.local.get("@local/identity"),o=await this.keet.local.get("@local/rooms",{roomKey:i});if(!o)return;const{isFeatureSupported:r,FEATURES:a}=this.keet.versions;if(!r(o.digest.abi.version,a.FAVORITE_ROOMS))throw new Error("Favorite rooms is not supported");await this.keet.privateProfile.dispatch("@keet-private-id/update-room-status",{roomKey:s.decode(e),key:re.IsFavorite,status:{isFavorite:t}})}}class Xe{constructor(e){this.keet=e}async ready(){return await this.keet.ready(),s.encode(this.keet.swarm.keyPair.publicKey)}}class Ze{constructor(t){this.keet=t,this.preferences=new g(e.join(t.dir,"preferences_v1.json")),this._subs=[]}async _bump(){const e=await this.preferences.list();for(const t of this._subs)t.push(e)}async update(e,t){await this.preferences.set(e,t),await this._bump()}query(){return this.preferences.list()}subscribe(){const e=this,t=new c({async open(e){let t=null;try{await this._bump()}catch(e){t=e}e(t)},destroy(t){const s=e._subs.indexOf(this);-1!==s&&e._subs.splice(s,1),t(null)}});return this._subs.push(t),t}}class Qe{constructor(e,{onerror:t=r}={}){this.keet=e,this._status=null,this._subs=[],this.keet.swarm.on("update",this._handleUpdate.bind(this)),this.keet.swarm.dht.on("network-update",this._handleUpdate.bind(this))}_handleUpdate(){this._status=this.query();for(const e of this._subs)e.push(this._status)}query(){const e=[];for(const[t,i]of this.keet.swarm.peers)e.push(s.encode(i.publicKey));return{host:this.keet.swarm.dht.host,port:this.keet.swarm.dht.port,online:this.keet.swarm.dht.online,degraded:this.keet.swarm.dht.degraded,connections:this.keet.swarm.connections.size,dhtPublicKey:s.encode(this.keet.swarm.dht.defaultKeyPair.publicKey),swarmPublicKey:s.encode(this.keet.swarm.keyPair.publicKey),peers:e}}subscribe(){const e=this,t=new c({open(t){e._status&&this.push(e._status),t(null)},destroy(t){const s=e._subs.indexOf(this);-1!==s&&e._subs.splice(s,1),t(null)}});return this._subs.push(t),t}subscribeDebug(e=5e3,t=0){const s=this;let i=null,o=0;const r=new c({open(t){a(),i=setInterval(()=>{a()},e),t(null)},destroy(e){i&&(clearInterval(i),i=null),e(null)}});return r;async function a(){const e=await s.debug();r.push(e),o+=1,t&&o>=t&&r.push(null)}}async debug(){return{tick:this.keet.swarm.dht._tick,localAddress:this.keet.swarm.dht.localAddress(),remoteAddress:this.keet.swarm.dht.remoteAddress(),connection:this.query(),stats:this.keet.swarm.dht.stats,health:this.keet.swarm.dht.health.stats,nodes:this.keet.swarm.dht.nodes.length,config:this.keet.swarm.dht.config,rttStats:await this.keet.swarm.dht.rttStats()}}}class et{constructor(e,{onerror:t=r}={}){this.keet=e,this._status=null,this._subs=[],this.swarm=null,this._onupdate=this._handleUpdate.bind(this),this.keet.on("call-swarm-changed",this._handleCallSwarmChanged.bind(this))}_handleCallSwarmChanged(e,t){this.swarm&&this.swarm.dht.removeListener("network-update",this._onupdate),this.swarm=t,this.swarm&&this.swarm.dht.on("network-update",this._onupdate),this._handleUpdate()}_handleUpdate(){this._status=this.query();for(const e of this._subs)e.push(this._status)}query(){if(!this.swarm)return{active:!1,host:null,port:0,online:!1,degraded:!1,connections:0,peers:[]};const e=[];for(const t of this.swarm.peers.values())e.push(s.encode(t.publicKey));return{active:!0,host:this.swarm.dht.host,port:this.swarm.dht.port,online:this.swarm.dht.online,degraded:this.swarm.dht.degraded,connections:this.swarm.connections.size,peers:e}}subscribe(){const e=this,t=new c({open(t){e._status&&this.push(e._status),t(null)},destroy(t){const s=e._subs.indexOf(this);-1!==s&&e._subs.splice(s,1),t(null)}});return this._subs.push(t),t}subscribeDebug(e=5e3,t=0){const s=this;let i=null,o=0;const r=new c({open(t){a(),i=setInterval(()=>{a()},e),t(null)},destroy(e){i&&(clearInterval(i),i=null),e(null)}});return r;async function a(){const e=await s.debug();r.push(e),o+=1,t&&o>=t&&r.push(null)}}async debug(){return this.swarm?{active:!0,tick:this.swarm.dht._tick,localAddress:this.swarm.dht.localAddress(),remoteAddress:this.swarm.dht.remoteAddress(),connection:this.query(),stats:this.swarm.dht.stats,health:this.swarm.dht.health.stats,nodes:this.swarm.dht.nodes.length,config:this.swarm.dht.config,rttStats:await this.swarm.dht.rttStats()}:{active:!1}}}class tt{constructor(){this.subscriptions=[],this._handleError=this._handleError.bind(this),this._listenersAttached=!1}_handleError(e){console.error("uncaught on worker",e);for(const t of this.subscriptions)t.push({message:e.message,stack:e.stack+""})}subscribe(e){const t=this;this._listenersAttached||(n.on(this._handleError),this._listenersAttached=!0);const s=new c({...e,destroy(e){const s=t.subscriptions.indexOf(this);-1!==s&&t.subscriptions.splice(s,1),e(null)}});return this.subscriptions.push(s),s}}class st{constructor(e){this.keet=e,this.inspector=new De}_getCurrentRoom(){let e=null;for(const t of this.keet.rooms.values())(!e||t.refs>e.refs)&&(e=t);return e}async getCurrentRoomStats(){const e=this._getCurrentRoom();return{hash:(await(e?.engine.core.treeHash())).toString("hex"),length:e?.engine.length}}enableInspector(){return this.inspector?.enable()}disableInspector(){return this.inspector?.disable()}getInspectorKey(){return this.inspector?.key}processTop(){return p.toJSON()}hash(e){return i.hash(e)}generateSyntheticError(e,t={}){const s=new Error(t.message??t.code??"KEET_SYNTHETIC_ERROR");if(s.code=t.code??s.message,Object.assign(s,t),!e)throw s;this.keet.onerror(s)}async getAccumulatedBytes(){let e=0;for await(const{value:t}of this.keet.rootCorestore.storage.db.iterator()){if(this.keet.closing)return e;e+=t.byteLength}return e}async heapSnapshot(e="/tmp/keet-heapsnapshot-"+Bare.pid+"."+Date.now()+".heapsnapshot"){const t=new d;t.connect();const s=new u(t),i=m.createWriteStream(e);return s.pipe(i),await new Promise(e=>i.once("close",e)),t.destroy(),e}async resetUnreads(){if(this.keet.onlineBoot.opened||await this.keet.onlineBoot.ready(),!this.keet.unreads)return null;await this.keet.unreads.reset()}}class it{constructor(e){this._rpcClient=e.rpcClient,this.keet=e}send(e){if(this.keet.buildType===X.Production)return this._rpcClient.makeRequest(this.keet.config.services.feedback,"send",e,{requestEncoding:Ce.json})}}function ot(e){switch(e){case 1:return re.IsFullyMuted;case 2:return re.IsMentionsOnlyMuted;default:return 0}}function rt(e){switch(e){case"0":default:return Z.Default;case"1":return Z.Broadcast;case"2":return Z.DirectMessage}}function at(e){const t={files:[],httpLink:[],pearLink:[]},s=e.files||[];for(let e=0;e<s.length;e++){const i=s[e].preview;i&&(s[e].preview=null,t.files.push({index:e,preview:i}))}const i=e.display?.httpLink||[];for(let e=0;e<i.length;e++){const s=r(i[e]);s&&t.httpLink.push({index:e,preview:s})}const o=e.display?.pearLink||[];for(let e=0;e<o.length;e++){const s=r(o[e]);s&&t.pearLink.push({index:e,preview:s})}return t;function r(e){if(!e.preview?.file?.preview)return null;const t=e.preview.file.preview;return e.preview.file.preview=null,t}}async function nt(e,{files:t,httpLink:s,pearLink:i},o=null){const r=o||{key:e.key,seq:e.length-1};if(t.length)for(const{index:s,preview:i}of t)await e.dispatch("@keet/add-file-preview",{oplog:r,index:s,preview:Y(i)},{dryRun:!1});if(s.length)for(const{index:t,preview:i}of s)await e.dispatch("@keet/add-file-preview",{oplog:r,index:t,preview:Y(i),displayType:Q.HttpLink},{dryRun:!1});if(i.length)for(const{index:t,preview:s}of i)await e.dispatch("@keet/add-file-preview",{oplog:r,index:t,preview:Y(s),displayType:Q.PearLink},{dryRun:!1})}async function ct(e,t){t.proofs=await e.get("@keet/member-proofs",{key:t.key})}function lt(e){const t=U(e.activeCall);return{roomId:s.encode(e.roomKey),callId:t.callId,selfDeviceId:t.selfDeviceId,createdAt:t.createdAt}}module.exports=class extends t{constructor(e,t){super(),this.keet=e,this.opts=t,this.api={core:new $e(e,t),swarm:null,preferences:null,network:null,error:null,debug:null,console:null,call:null,pear:{teardown:()=>{console.log("[api] teardown initiated");const t=this.keet.close();return t.catch(e.onerror),t},selfDestruct:e=>this.keet.selfDestruct(e)}},this._callBootstraps=null,this.ready().catch(t?.onerror||r)}async _open(){await this.keet.ready(),this.api.swarm=new Xe(this.keet,this.opts),this.api.preferences=new Ze(this.keet,this.opts),this.api.network=new Qe(this.keet,this.opts),this.api.callNetwork=new et(this.keet,this.opts),this.api.error=new tt(this.keet,this.opts),this.api.debug=new st(this.keet,this.opts),this.api.feedback=new it(this.keet),this.call=this.api.call=new b(this.keet.swarm,{skipJoinLeave:!0}),this.keet.on("call-changed-v3",this._handleCallChangedV3.bind(this))}async _close(){this.call&&this.call.close(),await this.api.debug.disableInspector()}async closeActiveCalls(){if(!this.keet.activeCall)return;const{roomId:e,callKey:t}=this.keet.activeCall,i=await this.keet.local.get("@local/rooms",{roomKey:s.decode(e)});if(!i)return;const o=this.keet.rooms.get(e);if(!o)return;const r=i.dm?"@keet/end-call":"@keet/leave-call";await o.dispatch(r,{callKey:t},{dryRun:!1}),await new Promise(e=>setTimeout(e,1500))}_handleCallChangedV3(e){this.keet.internalSyncActiveCall(e)}async suspend(){await this.keet.suspend()}async resume(){await this.keet.resume()}};
@holepunchto/keet-core/lib/api/v1/inspector.js +1 -1
……@@ -1 +1 @@
1const{Console:e,Server:s}=require("bare-inspector"),{once:o}=require("bare-events");module.exports=class{constructor({port:e=0,host:s="127.0.0.1"}={}){this.port=e,this.host=s,this._server=null,this._url=null,this._bareConsole=null,this._oldConsole=global.console}get key(){return this._url}_overrideConsole(){this._bareConsole||(this._bareConsole=new e);const s={};for(const e of Object.keys(this._bareConsole))s[e]=(...s)=>{this._bareConsole[e](...s),this._oldConsole[e](...s)};global.console=s}_resetConsole(){global.console=this._oldConsole}async enable(){this._server=new s(this.port,this.host),this._server.on("close",()=>{this._resetConsole()}),await o(this._server,"listening"),this._overrideConsole();const{port:e}=this._server.address();return this._url=`devtools://devtools/bundled/js_app.html?ws=127.0.0.1:${e}`,console.log(`Keet core inspector url: ${this._url}`),this._url}async disable(){this._server&&(await new Promise(e=>{this._server.close(e)}),this._server=null,this._resetConsole(),this._bareConsole=null,this._url=null)}};
1const{Console:e,Server:s}=require("bare-inspector"),{once:o}=require("bare-events"),r=require("safety-catch");module.exports=class{constructor({port:e=0,host:s="127.0.0.1"}={}){this.port=e,this.host=s,this._server=null,this._url=null,this._bareConsole=null,this._oldConsole=global.console}get key(){return this._url}_overrideConsole(){this._bareConsole||(this._bareConsole=new e);const s={};for(const e of Object.keys(this._bareConsole))s[e]=(...s)=>{this._bareConsole[e](...s),this._oldConsole[e](...s)};global.console=s}_resetConsole(){global.console=this._oldConsole}async enable(){this._server=new s(this.port,this.host),this._server._server.on("connection",e=>{e.on("error",r)}),this._server.on("close",()=>{this._resetConsole()}),await o(this._server,"listening"),this._overrideConsole();const{port:e}=this._server.address();return this._url=`devtools://devtools/bundled/js_app.html?ws=127.0.0.1:${e}`,console.log(`Keet core inspector url: ${this._url}`),this._url}async disable(){this._server&&(await new Promise(e=>{this._server.close(e)}),this._server=null,this._resetConsole(),this._bareConsole=null,this._url=null)}};
@holepunchto/keet-core/lib/api/v2/debug/index.js +1 -1
……@@ -1 +1 @@
1const e=require("hypercore-id-encoding"),s=require("ready-resource"),o=require("bare-inspector"),t=require("safety-catch"),r=require("b4a"),{hashDebugPassword:i}=require("../../../core/debug"),n=global.console;class c extends s{constructor(){super(),this.url=null,this._server=null,this._console=null,this.ready().catch(t)}async _open(){console.log(0),this._server=new o.Server(0,"127.0.0.1"),console.log(1),await new Promise(e=>this._server.once("listening",e)),console.log(2);const{port:e}=this._server.address();console.log(5),this.url=`devtools://devtools/bundled/js_app.html?ws=127.0.0.1:${e}`,console.log(`Keet core inspector url: ${this.url}`),console.log(6)}async _close(){global.console=n,await new Promise((e,s)=>this._server.close(o=>{o?s(o):e(o)}))}}module.exports=class extends s{constructor(e){super(),this.backend=e,this.keet=this.backend.keet,this.rpc=this.backend.rpc,this._inspector=null,this._onupdate=this._onConfigUpdated.bind(this),this.keet.on("force-update",this._onupdate),this.rpc.onDebugEnable(this.onEnable.bind(this)),this.rpc.onDebugDisable(this.onDisable.bind(this))}_close(){this.keet.removeListener("force-update",this._onupdate)}async _onConfigUpdated(){try{await this.onDisable()}catch(e){t(e)}}_respond(e){return{header:{duration:0},...e}}async onEnable({password:s}){if(this.keet.opened||await this.keet.ready(),this.keet.isProduction){const o=this.keet.config.debug.unlockHash,t=i(e.decode(s));if(!r.equals(o,t))throw new Error("Invalid password")}return this._inspector||(this._inspector=new c),console.log("pre inspector ready"),await this._inspector.ready(),console.log("post inspector ready"),this._respond({inspector:this._inspector.url})}async onDisable(){if(this.inspector)return await this.inspector.close(),this._respond(null)}};
1const e=require("hypercore-id-encoding"),s=require("ready-resource"),o=require("bare-inspector"),t=require("safety-catch"),r=require("b4a"),{hashDebugPassword:n}=require("../../../core/debug"),i=global.console;class c extends s{constructor(){super(),this.url=null,this._server=null,this._console=null,this.ready().catch(t)}async _open(){console.log(0),this._server=new o.Server(0,"127.0.0.1"),this._server._server.on("connection",e=>{e.on("error",t)}),console.log(1),await new Promise(e=>this._server.once("listening",e)),console.log(2);const{port:e}=this._server.address();console.log(5),this.url=`devtools://devtools/bundled/js_app.html?ws=127.0.0.1:${e}`,console.log(`Keet core inspector url: ${this.url}`),console.log(6)}async _close(){global.console=i,await new Promise((e,s)=>this._server.close(o=>{o?s(o):e(o)}))}}module.exports=class extends s{constructor(e){super(),this.backend=e,this.keet=this.backend.keet,this.rpc=this.backend.rpc,this._inspector=null,this._onupdate=this._onConfigUpdated.bind(this),this.keet.on("force-update",this._onupdate),this.rpc.onDebugEnable(this.onEnable.bind(this)),this.rpc.onDebugDisable(this.onDisable.bind(this))}_close(){this.keet.removeListener("force-update",this._onupdate)}async _onConfigUpdated(){try{await this.onDisable()}catch(e){t(e)}}_respond(e){return{header:{duration:0},...e}}async onEnable({password:s}){if(this.keet.opened||await this.keet.ready(),this.keet.isProduction){const o=this.keet.config.debug.unlockHash,t=n(e.decode(s));if(!r.equals(o,t))throw new Error("Invalid password")}return this._inspector||(this._inspector=new c),console.log("pre inspector ready"),await this._inspector.ready(),console.log("post inspector ready"),this._respond({inspector:this._inspector.url})}async onDisable(){if(this.inspector)return await this.inspector.close(),this._respond(null)}},module.exports.Inspector=c;
@holepunchto/keet-core/lib/bundle/index.js +1 -1
……@@ -1 +1 @@
1const e=require("ready-resource"),r=require("bundlebee"),t=require("hypercore"),s=require("b4a"),i=require("hypercore/messages"),o=require("bare-zlib"),{EXPERIMENTAL:n}=require("../../schema/versions"),{KeetContractError:a}=require("../core/contract/errors"),u=require("./patch"),c=require("../core/contract/index.js"),h=require("compact-encoding"),l=h.array(i.wire.data);module.exports=class extends e{constructor(e,t,{hydrate:s=!1}={}){if(super(),this.keet=e,this._ownsBee=!e.opts.bundlebee,e.opts.bundlebee)this._bee=e.opts.bundlebee;else{const s=e.opts.bundlesStore||e.rootCorestore.namespace(t);this._bee=new r(s,{key:e._bundlesKey,length:e._bundlesLength})}this._bundles={},this._routers={},this._hydrate=s}get core(){return this._bee.core}async _open(){if(!this._hydrate)return this._bee.ready();let e=[];try{const t=require("./latest-bundle.trace.js");e=h.decode(l,await(r=t,new Promise((e,t)=>{o.gunzip(r,(r,s)=>{if(r)return t(r);e(s)})})))}catch(e){this.keet.onerror(e,{prefix:"TRACE_LOAD_ERROR"})}var r;for(const r of e)try{await this._bee.core.applyProof(r)}catch(e){if(r.manifest){const e=t.key(r.manifest);if(!s.equals(e,this._bee.core.key))continue}this.keet.onerror(e,{prefix:"TRACE_APPLY_ERROR"})}await this._bee.ready()}_close(){if(this._ownsBee)return this._bee.close()}async loadBundle(e){if(this._bundles[e])return this._bundles[e];if(e>=n)return this._bundles[e]=c,c;const r=e<12?12:e,t=r>=25?"/lib/core/contract/index.js":"/lib/contract/index.js",s=await this._bee.findABI(r);if(!s)throw a.BUNDLE_NOT_AVAILABLE(r);const i=await this._bee.load(new URL("../..",module.url),t,s,{map:(r,t)=>"/lib/core/contract/helpers.js"!==r||28!==e&&29!==e?t:u.helpers});return this._bundles[e]=i.exports,this._bundles[e]}async loadRouter(e){return this._routers[e]||(await this.loadBundle(e),this._routers[e]=this._bundles[e].createRouter()),this._routers[e]}};
1const e=require("ready-resource"),r=require("bundlebee"),t=require("hypercore"),s=require("b4a"),i=require("hypercore/messages"),o=require("bare-zlib"),{EXPERIMENTAL:n}=require("../../schema/versions"),{KeetContractError:a}=require("../core/contract/errors"),u=require("./patch"),c=require("../core/contract/index.js"),h=require("compact-encoding"),l=h.array(i.wire.data);module.exports=class extends e{constructor(e,t,{hydrate:s=!1}={}){if(super(),this.keet=e,this._ownsBee=!e.opts.bundlebee,e.opts.bundlebee)this._bee=e.opts.bundlebee;else{const s=e.opts.bundlesStore||e.rootCorestore.namespace(t);this._bee=new r(s,{key:e._bundlesKey,length:e._bundlesLength})}this._bundles={},this._routers={},this._hydrate=s}get core(){return this._bee.core}async _open(){if(!this._hydrate)return this._bee.ready();let e=[];try{const t=require("./latest-bundle.trace.js");e=h.decode(l,await(r=t,new Promise((e,t)=>{o.gunzip(r,(r,s)=>{if(r)return t(r);e(s)})})))}catch(e){this.keet.onerror(e,{prefix:"TRACE_LOAD_ERROR"})}var r;for(const r of e)try{await this._bee.core.applyProof(r)}catch(e){if(r.manifest){const e=t.key(r.manifest);if(!s.equals(e,this._bee.core.key))continue}this.keet.onerror(e,{prefix:"TRACE_APPLY_ERROR"})}await this._bee.ready()}_close(){if(this._ownsBee)return this._bee.close()}async loadBundle(e){if(this._bundles[e])return this._bundles[e];if(e>=n)return this._bundles[e]=c,c;const r=e<12?12:e,t=r>=25?"/lib/core/contract/index.js":"/lib/contract/index.js",s=await this._bee.findABI(r);if(!s)throw a.BUNDLE_NOT_AVAILABLE(r);require("autobase");try{const r=await this._bee.load(new URL("../..",module.url),t,s,{map:(r,t)=>"/lib/core/contract/helpers.js"!==r||28!==e&&29!==e?t:u.helpers});this._bundles[e]=r.exports}catch(e){throw a.BUNDLE_NOT_AVAILABLE(r,e)}return this._bundles[e]}async loadRouter(e){return this._routers[e]||(await this.loadBundle(e),this._routers[e]=this._bundles[e].createRouter()),this._routers[e]}};
@holepunchto/keet-core/lib/bundle/latest-bundle.trace.js +1 -1
……@@ -1 +1 @@
1const z=require("b4a");module.exports=z.from("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","base64");
1const m=require("b4a");module.exports=m.from("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","base64");
@holepunchto/keet-core/lib/core/call/active-call.js +1 -0
……@@ -0,0 +1 @@
1const e=require("ready-guard"),t=require("hypercore-id-encoding"),s=require("scope-lock"),a=require("b4a"),i=require("../sync/loader.js"),r=require("./ghost.js"),{KeetErrorV2:l}=require("../../errors");module.exports=class{constructor(a,i,r){this.keet=a,this.roomId=i,this.callId=r,this.callKey=t.decode(r),this.swarmId=t.encode(a.callSwarmKeyPair.publicKey),this.guard=new e,this.closing=null,this.room=null,this.callRecord=null,this.callDevice=null,this.swarm=null,this.joinedPeers=new Set,this.heartbeatPaused=!0===a.callHeartbeatOpts.paused,this.suspended=!1,this._opening=null,this._ghostThreshold=a.callHeartbeatOpts.ghostThreshold,this._heartbeatInterval=a.callHeartbeatOpts.heartbeatInterval||3e5,this._heartbeatTimer=null,this._heartbeatPromise=null,this._syncLock=new s({debounce:!0})}ready(){return this.guard.enter()&&(this._opening=this._open()),this.guard.ready()}close(){return this.closing||(this.closing=this._close()),this.closing}async _open(){try{this.room=this.keet.internalOpenExistingRoom(this.roomId),this.room.opened||await this.room.ready();const{call:e,callDevice:t}=await this._loadCallState();if(!e||!t)throw l.CALL_NOT_ACTIVE("",{callId:this.callId});this.callRecord=e,this.callDevice=t,this.swarm=this.keet.internalCreateCallSwarm(),this.keet.callProxy.open(this.callId,this.swarm),this._heartbeatTimer=setInterval(this._sendHeartbeat.bind(this),this._heartbeatInterval),this._syncPeers(),this.keet.emit("call-swarm-changed",this.callId,this.swarm),t.lastHeartbeatAt>0&&Date.now()-t.lastHeartbeatAt>=this._heartbeatInterval&&this._sendHeartbeat(),this.guard.exit()}catch(e){await this._teardown(),this.guard.destroy(e)}}async _close(){this.guard.destroy(),this._opening&&await this._opening,this._syncLock.destroy(),await this._syncLock.flush(),await this._teardown()}async _teardown(){clearInterval(this._heartbeatTimer),this._heartbeatTimer=null;for(const e of this.joinedPeers)this.keet.debugLeavePeer(e);this.joinedPeers.clear(),this.swarm&&(this.keet.callProxy.close(this.callId),this.keet.emit("call-swarm-changed",null,null),await this.swarm.destroy(),this.swarm=null),this.room&&(await this.keet.internalReleaseRoom(this.room),this.room=null)}async sync(){if(this.guard.opened&&await this._syncLock.lock())try{const{call:e,callDevice:t}=await this._loadCallState();if(this.keet.activeCall!==this)return;if(!e||!t)return void this.keet.internalEndActiveCall();this.callRecord=e,this.callDevice=t,this._syncPeers()}catch(e){this.keet.onerror(e)}finally{this._syncLock.unlock()}}pauseHeartbeat(){this.heartbeatPaused=!0}resumeHeartbeat(){this.heartbeatPaused=!1,this._sendHeartbeat()}async suspend(){this.suspended||(this.suspended=!0,this.swarm&&await this.swarm.suspend())}async resume(){this.suspended&&(this.suspended=!1,this.swarm&&await this.swarm.resume(),this._sendHeartbeat())}async _loadCallState(){await this.room.engine.flush();const e=new i(this.keet.local,this.room.view,this.room.engine);await e.ready();try{const t=await e.loadActiveCall();return t&&a.equals(t.callKey,this.callKey)?{call:t,callDevice:await e.loadActiveCallDevice(t.callKey,this.room.deviceKey)}:{call:null,callDevice:null}}finally{await e.close()}}_sendHeartbeat(){if(this.callRecord&&!this.closing&&!this.suspended&&!this.heartbeatPaused)return this._heartbeatPromise||(this._heartbeatPromise=this._dispatchHeartbeat()),this._heartbeatPromise}async _dispatchHeartbeat(){try{if(this.keet.closing||this.closing)return;await this.keet.dispatch(this.roomId,"@keet/call-device-heartbeat",{callKey:this.callKey})}finally{this._heartbeatPromise=null}}_syncPeers(){const e=Date.now(),s=new Set;for(const a of this.callRecord.members)for(const i of a.devices){if(!r(e,i,this._ghostThreshold))continue;const a=t.encode(i.swarmKey);a!==this.swarmId&&s.add(a)}for(const e of s)this.joinedPeers.has(e)||(this.swarm.joinPeer(t.decode(e)),this.joinedPeers.add(e),this.keet.debugJoinPeer(e));for(const e of this.joinedPeers)s.has(e)||(this.swarm.leavePeer(t.decode(e)),this.joinedPeers.delete(e),this.keet.debugLeavePeer(e))}};
@holepunchto/keet-core/lib/core/call/ghost.js +1 -0
……@@ -0,0 +1 @@
1module.exports=function(t,e,a=66e4){return 0===e.lastHeartbeatAt||t-e.lastHeartbeatAt<=a};
@holepunchto/keet-core/lib/core/call/index.js +1 -0
……@@ -0,0 +1 @@
1const e=require("./active-call.js"),l=require("./proxy.js");module.exports={ActiveCall:e,KeetCallProxy:l};
@holepunchto/keet-core/lib/core/call/proxy.js +1 -0
……@@ -0,0 +1 @@
1const s=require("ready-resource"),e=require("protomux"),t=require("hypercore-id-encoding"),i=require("safety-catch"),o=require("b4a"),n=require("compact-encoding"),r="127.0.0.1",a="keet-webrtc/v1",h={preencode(s,e){n.uint.preencode(s,e.alias)},encode(s,e){n.uint.encode(s,e.alias)},decode:s=>({alias:n.uint.decode(s)})};class l{constructor(s){this.connection=s,this.closed=!1,this._localAlias=0,this._proxiesByRemoteAlias=new Array(256),this._prefixesByLocalAlias=new Array(256),this._onmessage=s=>{if(this.closed)return;const e=this._proxiesByRemoteAlias[s[0]];e&&e._onRawData(s.subarray(2))},s.rawStream.on("message",this._onmessage)}createLocalAlias(){this._localAlias=(this._localAlias+1)%256;const s=o.allocUnsafe(2);return s[0]=this._localAlias,s[1]=225,this._prefixesByLocalAlias[this._localAlias]=s,this._localAlias}send(s,e){if(this.closed)return;const t=o.allocUnsafe(e.byteLength+2);this._prefixesByLocalAlias[s].copy(t,0),e.copy(t,2),this.connection.rawStream.trySend(t)}register(s,e){this._proxiesByRemoteAlias[s]=e}unregister(s){this._proxiesByRemoteAlias[s]=null}close(){this.closed=!0,this.connection.rawStream.removeListener("message",this._onmessage)}}class c{constructor(s,e,o,n,{onopen:h=null,onclose:l=null,onsignal:c=null}={}){this.proxyPort=0,this.closed=!1,this._muxer=e,this._rawMuxer=o,this._socket=n,this._channel=null,this._sendSignal=null,this._localAlias=o.createLocalAlias(),this._remoteAlias=-1,this._rinfo=null,this._sendBuf=[],this._recvBuf=[],this.onopen=h,this.onclose=l,this.onsignal=c,n.bind(0,r),n.on("message",(s,e)=>this._onUdp(s,e)),n.on("error",i),this.proxyPort=n.address().port,this._muxerInfo={protocol:a,id:t.decode(s)},e.pair(this._muxerInfo,()=>this._createChannel()),this._createChannel()}_createChannel(){const s=this._muxer.createChannel({protocol:a,id:this._muxerInfo.id,handshake:h,onopen:({alias:s})=>{for(this._remoteAlias=s,this._rawMuxer.register(s,this);this._sendBuf.length;)this._rawMuxer.send(this._localAlias,this._sendBuf.pop());this.onopen&&this.onopen(this.proxyPort)},onclose:()=>{-1!==this._remoteAlias&&(this._rawMuxer.unregister(this._remoteAlias),this._remoteAlias=-1),this._rinfo=null,this.onclose&&this.onclose()},messages:[{encoding:n.json,onmessage:s=>{this.onsignal&&this.onsignal(s)}}]});s&&(this._channel=s,this._sendSignal=s.messages[0],s.open({alias:this._localAlias}))}_onUdp(s,e){if(!this.closed&&e.host===r){if(!this._rinfo||this._rinfo.port!==e.port)for(this._rinfo=e;this._recvBuf.length;)this._socket.trySend(this._recvBuf.pop(),e.port,r);-1===this._remoteAlias?this._sendBuf.unshift(s):this._rawMuxer.send(this._localAlias,s)}}_onRawData(s){this.closed||(this._rinfo?this._socket.trySend(s,this._rinfo.port,r):this._recvBuf.unshift(s))}signal(s){!this.closed&&this._sendSignal&&this._sendSignal.send(s)}close(){this.closed||(this.closed=!0,this._muxer.unpair(this._muxerInfo),this._channel&&this._channel.close(),this._socket.close().catch(i))}}class _ extends s{constructor(s,e,t){super(),this._server=s,this._callId=e,this._swarm=t,this._entries=new Map,this._open=new Map,this._muxersByConn=new Map,this._onconnection=this._attach.bind(this),t.on("connection",this._onconnection);for(const s of t.connections)this._attach(s)}_attach(s){if(this._muxersByConn.has(s))return;s.on("error",i);const e=new l(s);this._muxersByConn.set(s,e),this._add(s,e),s.on("close",()=>{this._remove(s),e.close(),this._muxersByConn.delete(s)})}_add(s,i){if(this._entries.has(s))return;const o=t.encode(s.remotePublicKey),n=e.from(s),r=this._swarm.dht.udx.createSocket(),a={proxy:null,swarmId:o,port:0};this._entries.set(s,a),a.proxy=new c(this._callId,n,i,r,{onopen:s=>{a.port=s,this._announce(o)},onclose:()=>{a.port=0,this._announce(o)},onsignal:s=>this.emit("signal",{swarmId:o,data:s})})}_current(s){let e=null;for(const t of this._entries.values())t.swarmId===s&&t.port&&(e=t);return e}_announce(s){const e=this._current(s),t=e?e.port:0;t!==(this._open.get(s)||0)&&(t?(this._open.set(s,t),this.emit("peer",{swarmId:s,proxyPort:t})):(this._open.delete(s),this.emit("peer-close",{swarmId:s})))}openPeers(){return[...this._open]}_remove(s){const e=this._entries.get(s);e&&(this._entries.delete(s),e.proxy.close(),this._announce(e.swarmId))}signal(s,e){const t=this._current(s);t&&t.proxy.signal(e)}_close(){this._swarm.removeListener("connection",this._onconnection);for(const s of this._entries.keys())this._remove(s);for(const s of this._muxersByConn.values())s.close();this._muxersByConn.clear(),this._server._calls.delete(this._callId)}}module.exports=class{constructor(){this._calls=new Map}getCallById(s){return this._calls.get(s)}open(s,e){if(this._calls.has(s))return this._calls.get(s);const t=new _(this,s,e);return this._calls.set(s,t),t}close(s){const e=this._calls.get(s);e&&e.close()}};
@holepunchto/keet-core/lib/core/contract/avatars.js +1 -1
……@@ -1 +1 @@
1const e=require("b4a"),{KeetContractError:i}=require("./errors"),{fileStats:r}=require("./stats"),n=524288;async function t(r,t,l){if(!t&&!l)return;if(!u(l))return;if(l.preview&&(l.preview=null),!l.pointer.inlined&&l.pointer.blob&&(l.pointer.blob=null),!l||!l.pointer.inlined)return t||l;if(t&&t.hash&&l.hash&&e.equals(t.hash,l.hash))return{...l,pointer:t.pointer};if(l.pointer.inlined.byteLength>n)throw i.INLINED_FILESIZE_TOO_LARGE("Cannot inline a blob that is larger than 512 KB");const a=await r.put(l.pointer.inlined);return{...l,pointer:{blob:a}}}async function l(e,i,r){return{small:await t(e,i?.small,r?.small),medium:await t(e,i?.medium,r?.medium),large:await t(e,i?.large,r?.large)}}async function a(e,i){i&&await Promise.all([s(e,i.small),s(e,i.medium),s(e,i.large)])}async function s(e,i){if(!i)return;if(!i.pointer.blob)return;const r=await e.get(i.pointer.blob);i.pointer={inlined:r}}async function o({primaryThread:e,id:i,blobs:n,db:t,oplog:a,file:s}){s.preview&&(s.preview=await l(n,null,s.preview)),s.pointer.inlined&&(s.pointer.inlined=null),s.pointer.blob&&(s.pointer.blob=null);const o={id:i,oplog:a,status:{isDeleted:!1},file:s};return await t.insert("@keet/files",o),await r(t,e,o),i}async function p({primaryThread:e,files:r,id:n,blobs:t,db:l,oplog:a}){if(!r||r.length<1)return[];if(!function(e){const i=Array.isArray(e)?e:[e];for(const e of i)if(!u(e))return!1;return!0}(r))throw i.FILE_RECORD_INVALID();const s=[];for(const i of r)s.push(await o({primaryThread:e,id:n++,blobs:t,db:l,oplog:a,file:i}));return s}function f(i,r){return!i&&!r||!(!i&&r)&&!(i&&!r)&&(i.hash&&r.hash?e.equals(i.hash,r.hash):e.equals(i.pointer.inlined,r.pointer.inlined))}function u(e){return e.preview&&(e.preview?.small?.preview&&(e.preview.small.preview=null),e.preview?.medium?.preview&&(e.preview.medium.preview=null),e.preview?.large?.preview&&(e.preview.large.preview=null)),!(e.pointer.externalDrive&&!e.pointer.externalDrive.path||e.pointer.externalDrive&&e.pointer.externalBlob)}module.exports={isSameAvatar:function(e,i){const r=f(e?.small,i?.small),n=f(e?.medium,i?.medium),t=f(e?.large,i?.large);return r&&n&&t},updateAvatar:async function(e,i,r){return await l(e,i,r)},updateImageFile:l,restoreAvatar:async function(e,i){return a(e,i)},restoreFile:a,insertMessageFiles:async function({primaryThread:e,clock:i,message:r,blobs:n,db:t,oplog:l}){const a=r.files||[],s=await p({primaryThread:e,files:a,id:i,blobs:n,db:t,oplog:l});return await async function({primaryThread:e,clock:i,message:r,blobs:n,db:t,oplog:l}){let a=0;const s=r?.display?.httpLink||[];for(const r of s)r.preview?.files&&(r.preview.files=[]),r.preview?.file&&(r.preview.files=await p({primaryThread:e,id:i+a,files:[r.preview.file],blobs:n,db:t,oplog:l}),a+=r.preview.files.length);const o=r?.display?.pearLink||[];for(const r of o)r.preview?.files&&(r.preview.files=[]),r.preview?.file&&(r.preview.files=await p({primaryThread:e,id:i+a,files:[r.preview.file],blobs:n,db:t,oplog:l}),a+=r.preview.files.length)}({primaryThread:e,clock:i+a.length,message:r,blobs:n,db:t,oplog:l}),s},deleteMessageFiles:async function({primaryThread:e,message:i,db:n,blobs:t}){const l=i.message?.files||[],a=i.message?.display?.httpLink||[];for(const{preview:e}of a)e&&e.files&&e.files.length&&l.push(...e.files);const s=i.message?.display?.pearLink||[];for(const{preview:e}of s)e&&e.files&&e.files.length&&l.push(...e.files);await async function({primaryThread:e,files:i,db:n,blobs:t}){if(!i||!i.length)return;const l=await Promise.all(i.map(e=>n.get("@keet/files",{id:e}))),a=[];for(const i of l)i.status.isDeleted=!0,a.push(n.insert("@keet/files",i)),a.push(r(n,e,i,i));await Promise.all(a)}({primaryThread:e,files:l,db:n,blobs:t})},MAX_INLINED_FILE_SIZE:n};
1const e=require("b4a"),i=require("hypercore-crypto"),{KeetContractError:r}=require("./errors"),{fileStats:n}=require("./stats"),t=524288;async function a(n,a,l){if(!a&&!l)return;if(!d(l))return;if(l.preview&&(l.preview=null),!l.pointer.inlined&&l.pointer.blob&&(l.pointer.blob=null),!l||!l.pointer.inlined)return a||l;if(a&&a.hash&&l.hash&&e.equals(a.hash,l.hash))return{...l,pointer:a.pointer};if(l.pointer.inlined.byteLength>t)throw r.INLINED_FILESIZE_TOO_LARGE("Cannot inline a blob that is larger than 512 KB");const s=i.hash(l.pointer.inlined);return await n.insert("@keet/blobs",{hash:s,data:l.pointer.inlined}),{...l,pointer:{bee:{hash:s}}}}async function l(e,i,r){return{small:await a(e,i?.small,r?.small),medium:await a(e,i?.medium,r?.medium),large:await a(e,i?.large,r?.large)}}async function s(e,i,r){r&&await Promise.all([o(e,i,r.small),o(e,i,r.medium),o(e,i,r.large)])}async function o(e,i,r){if(r)if(r.pointer.bee){const i=await e.get("@keet/blobs",r.pointer.bee);r.pointer={inlined:i.data}}else if(r.pointer.blob&&i){const e=await i.get(r.pointer.blob);r.pointer={inlined:e}}}async function p({primaryThread:e,id:i,db:r,oplog:t,file:a}){a.preview&&(a.preview=await l(r,null,a.preview)),a.pointer.inlined&&(a.pointer.inlined=null),a.pointer.blob&&(a.pointer.blob=null);const s={id:i,oplog:t,status:{isDeleted:!1},file:a};return await r.insert("@keet/files",s),await n(r,e,s),i}async function f({primaryThread:e,files:i,id:n,blobs:t,db:a,oplog:l}){if(!i||i.length<1)return[];if(!function(e){const i=Array.isArray(e)?e:[e];for(const e of i)if(!d(e))return!1;return!0}(i))throw r.FILE_RECORD_INVALID();const s=[];for(const r of i)s.push(await p({primaryThread:e,id:n++,blobs:t,db:a,oplog:l,file:r}));return s}function u(i,r){return!i&&!r||!(!i&&r)&&!(i&&!r)&&(i.hash&&r.hash?e.equals(i.hash,r.hash):e.equals(i.pointer.inlined,r.pointer.inlined))}function d(e){return e.preview&&(e.preview?.small?.preview&&(e.preview.small.preview=null),e.preview?.medium?.preview&&(e.preview.medium.preview=null),e.preview?.large?.preview&&(e.preview.large.preview=null)),!(e.pointer.externalDrive&&!e.pointer.externalDrive.path||e.pointer.externalDrive&&e.pointer.externalBlob)}module.exports={isSameAvatar:function(e,i){const r=u(e?.small,i?.small),n=u(e?.medium,i?.medium),t=u(e?.large,i?.large);return r&&n&&t},updateAvatar:async function(e,i,r){return await l(e,i,r)},updateImageFile:l,restoreAvatar:async function(e,i,r){return s(e,i,r)},restoreFile:s,insertMessageFiles:async function({primaryThread:e,clock:i,message:r,blobs:n,db:t,oplog:a}){const l=r.files||[],s=await f({primaryThread:e,files:l,id:i,blobs:n,db:t,oplog:a});return await async function({primaryThread:e,clock:i,message:r,blobs:n,db:t,oplog:a}){let l=0;const s=r?.display?.httpLink||[];for(const r of s)r.preview?.files&&(r.preview.files=[]),r.preview?.file&&(r.preview.files=await f({primaryThread:e,id:i+l,files:[r.preview.file],blobs:n,db:t,oplog:a}),l+=r.preview.files.length);const o=r?.display?.pearLink||[];for(const r of o)r.preview?.files&&(r.preview.files=[]),r.preview?.file&&(r.preview.files=await f({primaryThread:e,id:i+l,files:[r.preview.file],blobs:n,db:t,oplog:a}),l+=r.preview.files.length)}({primaryThread:e,clock:i+l.length,message:r,blobs:n,db:t,oplog:a}),s},deleteMessageFiles:async function({primaryThread:e,message:i,db:r,blobs:t}){const a=i.message?.files||[],l=i.message?.display?.httpLink||[];for(const{preview:e}of l)e&&e.files&&e.files.length&&a.push(...e.files);const s=i.message?.display?.pearLink||[];for(const{preview:e}of s)e&&e.files&&e.files.length&&a.push(...e.files);await async function({primaryThread:e,files:i,db:r,blobs:t}){if(!i||!i.length)return;const a=await Promise.all(i.map(e=>r.get("@keet/files",{id:e}))),l=[];for(const i of a)i.status.isDeleted=!0,l.push(r.insert("@keet/files",i)),l.push(n(r,e,i,i));await Promise.all(l)}({primaryThread:e,files:a,db:r,blobs:t})},MAX_INLINED_FILE_SIZE:t};
@holepunchto/keet-core/lib/core/contract/calls.js +1 -1
……@@ -1 +1 @@
1const e=require("./registration"),{isMemberActive:t,getMemberForDeviceKey:a}=require("./query"),{KeetContractError:l}=require("./errors"),{addEvent:r}=require("./chat"),{contract:{hyperschema:{getEnum:c}}}=require("../../../schema/spec"),i=c("@keet/room-type");async function s(e,{db:c,writer:i}){const s=i.key,[y,d,o,m,n]=await Promise.all([a(c,s),c.get("@keet/calls",{callKey:e.callKey}),c.get("@keet/devices",{key:s}),c.findOne("@keet/active-calls-by-timestamp"),c.get("@keet/system-digest")]);if(!t(y))throw l.INACTIVE_MEMBER();if(d)throw l.CALL_KEY_EXISTS();if(m)throw l.ACTIVE_CALL_EXISTS();if(n.settings.isCallingDisabled)throw l.CALL_DISABLED();if(!o)throw l.ABORT();if(await c.insert("@keet/calls",{version:e.version,callKey:e.callKey,encryptionKey:e.encryptionKey,discoveryKey:e.discoveryKey,createdAt:e.header.timestamp}),await c.insert("@keet/call-members",{callKey:e.callKey,memberKey:y.key,createdAt:e.header.timestamp}),await c.insert("@keet/call-devices",{callKey:e.callKey,deviceKey:o.key,swarmKey:o.profile.swarmKey,memberKey:y.key,createdAt:e.header.timestamp,lastHeartbeatAt:e.header.timestamp}),e.streams?.length)for await(const t of e.streams)await c.insert("@keet/call-streams",{callKey:e.callKey,deviceKey:o.key,streamKey:t,createdAt:e.header.timestamp});await r(c,i,{callStarted:!0},e.header.timestamp)}async function y(e,{db:r,writer:c}){const i=e.callKey,s=c.key,[y,d,o]=await Promise.all([a(r,s),r.get("@keet/calls",{callKey:i}),r.get("@keet/devices",{key:s})]);if(!t(y))throw l.INACTIVE_MEMBER();if(!d)throw l.CALL_NOT_FOUND();if(d.endedAt)throw l.CALL_ENDED();if(!o)throw l.ABORT();const[m,n]=await Promise.all([r.get("@keet/call-members",{callKey:e.callKey,memberKey:y.key}),r.get("@keet/call-devices",{callKey:e.callKey,deviceKey:s})]);if(n)throw l.CALL_DEVICE_EXISTS();if(await r.insert("@keet/call-devices",{callKey:e.callKey,deviceKey:o.key,swarmKey:o.profile.swarmKey,memberKey:y.key,createdAt:e.header.timestamp,lastHeartbeatAt:e.header.timestamp}),e.streams?.length)for await(const t of e.streams)await r.insert("@keet/call-streams",{callKey:e.callKey,deviceKey:o.key,streamKey:t,createdAt:e.header.timestamp});m||await r.insert("@keet/call-members",{callKey:e.callKey,memberKey:y.key,createdAt:e.header.timestamp})}async function d({header:e,callKey:r},{db:c,writer:s}){const y=s.key,d={gte:{callKey:r},lte:{callKey:r}},[o,m,n,K]=await Promise.all([a(c,y),c.get("@keet/calls",{callKey:r}),c.find("@keet/call-members",d).toArray(),c.get("@keet/system-digest")]);if(K.settings.roomType===i.DirectMessage)throw l.CALL_LEAVE_NOT_ALLOWED();if(!t(o))throw l.INACTIVE_MEMBER();if(!m)throw l.CALL_NOT_FOUND();const k=o.key,w={gte:{callKey:r,memberKey:k},lte:{callKey:r,memberKey:k}},A={gte:{callKey:r,deviceKey:y},lte:{callKey:r,deviceKey:y}},[f,h,E,_]=await Promise.all([c.get("@keet/call-members",{callKey:r,memberKey:k}),c.get("@keet/call-devices",{callKey:r,deviceKey:y}),c.find("@keet/call-devices-by-member-key",w).toArray(),c.find("@keet/call-streams-by-device-key",A).toArray()]);if(!f)throw l.CALL_MEMBER_NOT_FOUND();if(!h)throw l.CALL_DEVICE_NOT_FOUND();const L=[];L.push(c.delete("@keet/call-devices",h));for(const e of _)L.push(c.delete("@keet/call-streams",e));return E.length>1||(L.push(c.delete("@keet/call-members",f)),1===n.length&&(m.endedAt=e.timestamp,L.push(c.insert("@keet/calls",m)))),Promise.all(L)}async function o({header:e,callKey:c},{db:s,writer:y}){const d=y.key,[o,m,n,K]=await Promise.all([a(s,d),s.get("@keet/calls",{callKey:c}),s.get("@keet/call-devices",{callKey:c,deviceKey:d}),s.get("@keet/system-digest")]);if(!t(o))throw l.INACTIVE_MEMBER();if(!m)throw l.CALL_NOT_FOUND();if(m.endedAt)throw l.CALL_ENDED();const k=K.settings.roomType===i.DirectMessage;if(!k&&!n)throw l.CALL_DEVICE_NOT_FOUND();m.endedAt=e.timestamp,await s.insert("@keet/calls",m);const w={gte:{callKey:c},lte:{callKey:c}},[A,f,h,E]=await Promise.all([s.get("@keet/call-members",{callKey:c,memberKey:o.key}),s.find("@keet/call-members",w).toArray(),s.find("@keet/call-devices",w).toArray(),s.find("@keet/call-streams",w).toArray()]),_=[];for(const e of f)_.push(s.delete("@keet/call-members",e));for(const e of h)_.push(s.delete("@keet/call-devices",e));for(const e of E)_.push(s.delete("@keet/call-streams",e));if(await Promise.all(_),k)return f.length>1||!A?await r(s,y,{callHangup:!0},e.timestamp):void await r(s,y,{callMissed:!0},e.timestamp)}async function m({header:e,callKey:r,streamKey:c},{db:i,writer:s}){const y=s.key,[d,o,m,n]=await Promise.all([a(i,y),i.get("@keet/calls",{callKey:r}),i.get("@keet/call-devices",{callKey:r,deviceKey:y}),i.get("@keet/call-streams",{callKey:r,streamKey:c})]);if(!t(d))throw l.INACTIVE_MEMBER();if(!o)throw l.CALL_NOT_FOUND();if(o.endedAt)throw l.CALL_ENDED();if(!m)throw l.CALL_DEVICE_NOT_FOUND();if(n)throw l.CALL_STREAM_EXISTS();await i.insert("@keet/call-streams",{callKey:r,deviceKey:m.deviceKey,streamKey:c,createdAt:e.timestamp})}async function n({callKey:e,streamKey:r},{db:c,writer:i}){const s=i.key,[y,d,o,m]=await Promise.all([a(c,s),c.get("@keet/calls",{callKey:e}),c.get("@keet/call-devices",{callKey:e,deviceKey:s}),c.get("@keet/call-streams",{callKey:e,streamKey:r})]);if(!t(y))throw l.INACTIVE_MEMBER();if(!d)throw l.CALL_NOT_FOUND();if(d.endedAt)throw l.CALL_ENDED();if(!o)throw l.CALL_DEVICE_NOT_FOUND();if(!m)throw l.CALL_STREAM_NOT_FOUND();await c.delete("@keet/call-streams",m)}async function K({header:e,callKey:r,deviceKey:c},{db:i,writer:s}){const y=s.key,d={gte:{callKey:r},lte:{callKey:r}},[o,m,n,K]=await Promise.all([a(i,y),i.get("@keet/calls",{callKey:r}),i.get("@keet/call-devices",{callKey:r,deviceKey:c}),i.find("@keet/call-members",d).toArray()]);if(!t(o))throw l.INACTIVE_MEMBER();if(!m)throw l.CALL_NOT_FOUND();if(m.endedAt)throw l.CALL_ENDED();if(!n)throw l.CALL_DEVICE_NOT_FOUND();const k=n.memberKey,w={gte:{callKey:r,memberKey:k},lte:{callKey:r,memberKey:k}},A={gte:{callKey:r,deviceKey:c},lte:{callKey:r,deviceKey:c}},[f,h,E]=await Promise.all([i.get("@keet/call-members",{callKey:r,memberKey:k}),i.find("@keet/call-devices-by-member-key",w).toArray(),i.find("@keet/call-streams-by-device-key",A).toArray()]),_=[];_.push(i.delete("@keet/call-devices",n));for(const e of E)_.push(i.delete("@keet/call-streams",e));return h.length>1||(f&&_.push(i.delete("@keet/call-members",f)),1===K.length&&(m.endedAt=e.timestamp,_.push(i.insert("@keet/calls",m)))),Promise.all(_)}async function k({header:e,callKey:r},{db:c,writer:i}){const s=i.key,[y,d,o]=await Promise.all([a(c,s),c.get("@keet/calls",{callKey:r}),c.get("@keet/call-devices",{callKey:r,deviceKey:s})]);if(!t(y))throw l.INACTIVE_MEMBER();if(!d)throw l.CALL_NOT_FOUND();if(d.endedAt)throw l.CALL_ENDED();if(!o)throw l.CALL_DEVICE_NOT_FOUND();await c.insert("@keet/call-devices",{...o,lastHeartbeatAt:e.timestamp})}async function w({callKey:e},{db:r,writer:c}){const i=c.key,[s,y,d]=await Promise.all([a(r,i),r.get("@keet/calls",{callKey:e}),r.get("@keet/call-devices",{callKey:e,deviceKey:i})]);if(!t(s))throw l.INACTIVE_MEMBER();if(!y)throw l.CALL_NOT_FOUND();if(y.endedAt)throw l.CALL_ENDED();if(!d)throw l.CALL_DEVICE_NOT_FOUND();if(d.isRecording)throw l.CALL_RECORDING_ALREADY_ACTIVE();await r.insert("@keet/call-devices",{...d,isRecording:!0})}async function A({callKey:e},{db:r,writer:c}){const i=c.key,[s,y,d]=await Promise.all([a(r,i),r.get("@keet/calls",{callKey:e}),r.get("@keet/call-devices",{callKey:e,deviceKey:i})]);if(!t(s))throw l.INACTIVE_MEMBER();if(!y)throw l.CALL_NOT_FOUND();if(y.endedAt)throw l.CALL_ENDED();if(!d)throw l.CALL_DEVICE_NOT_FOUND();if(!d.isRecording)throw l.CALL_NOT_RECORDING();await r.insert("@keet/call-devices",{...d,isRecording:!1})}module.exports={[e]:function(e){e.add("@keet/start-call",s),e.add("@keet/join-call",y),e.add("@keet/leave-call",d),e.add("@keet/end-call",o),e.add("@keet/add-call-stream",m),e.add("@keet/remove-call-stream",n),e.add("@keet/call-device-heartbeat",k),e.add("@keet/remove-call-device",K),e.add("@keet/start-call-recording",w),e.add("@keet/stop-call-recording",A)}};
1const e=require("./registration"),t=require("b4a"),{isMemberActive:a,getMemberForDeviceKey:l}=require("./query"),{KeetContractError:r}=require("./errors"),{addEvent:s}=require("./chat"),{contract:{hyperschema:{getEnum:i}}}=require("../../../schema/spec"),{trackActivity:c}=require("./hooks"),y=i("@keet/room-type");function d(e){return e.stats.calls||(e.stats.calls={streams:0}),e.stats.calls.streams+=1,e.stats.calls.streams}async function m(e,{db:t,writer:i}){const c=i.key,[y,m,o,n,K,w]=await Promise.all([l(t,c),t.get("@keet/calls",{callKey:e.callKey}),t.get("@keet/devices",{key:c}),t.findOne("@keet/active-calls-by-timestamp"),t.get("@keet/system-digest"),t.get("@keet/threads",{id:0})]);if(!a(y))throw r.INACTIVE_MEMBER();if(m)throw r.CALL_KEY_EXISTS();if(n)throw r.ACTIVE_CALL_EXISTS();if(K.settings.isCallingDisabled)throw r.CALL_DISABLED();if(!o)throw r.ABORT();if(await t.insert("@keet/calls",{version:e.version,callKey:e.callKey,encryptionKey:e.encryptionKey,discoveryKey:e.discoveryKey,createdAt:e.header.timestamp}),await t.insert("@keet/call-members",{callKey:e.callKey,memberKey:y.key,createdAt:e.header.timestamp}),await t.insert("@keet/call-devices",{callKey:e.callKey,deviceKey:o.key,swarmKey:3===e.version?e.swarmKey:o.profile.swarmKey,memberKey:y.key,createdAt:e.header.timestamp,lastHeartbeatAt:e.header.timestamp}),3===e.version&&e.streamInputs?.length){for(const{streamKey:a,mediaStreamId:l,type:r,muted:s}of e.streamInputs){const i=d(w);await t.insert("@keet/call-streams",{callKey:e.callKey,deviceKey:o.key,streamKey:a,statusKey:i,mediaStreamId:l,type:r,createdAt:e.header.timestamp}),await t.insert("@keet/call-stream-statuses",{statusKey:i,muted:s})}await t.insert("@keet/threads",w)}return await s(t,i,{callStarted:!0},e.header.timestamp),{writer:i,writerMember:y}}async function o(e,{db:t,writer:s}){const i=e.callKey,c=s.key,[y,m,o,n]=await Promise.all([l(t,c),t.get("@keet/calls",{callKey:i}),t.get("@keet/devices",{key:c}),t.get("@keet/threads",{id:0})]);if(!a(y))throw r.INACTIVE_MEMBER();if(!m)throw r.CALL_NOT_FOUND();if(m.endedAt)throw r.CALL_ENDED();if(!o)throw r.ABORT();const[K,w]=await Promise.all([t.get("@keet/call-members",{callKey:e.callKey,memberKey:y.key}),t.get("@keet/call-devices",{callKey:e.callKey,deviceKey:c})]);if(w)throw r.CALL_DEVICE_EXISTS();if(await t.insert("@keet/call-devices",{callKey:e.callKey,deviceKey:o.key,swarmKey:3===m.version?e.swarmKey:o.profile.swarmKey,memberKey:y.key,createdAt:e.header.timestamp,lastHeartbeatAt:e.header.timestamp}),3===m.version&&e.streamInputs?.length){for(const{streamKey:a,mediaStreamId:l,type:r,muted:s}of e.streamInputs){const i=d(n);await t.insert("@keet/call-streams",{callKey:e.callKey,deviceKey:o.key,streamKey:a,statusKey:i,mediaStreamId:l,type:r,createdAt:e.header.timestamp}),await t.insert("@keet/call-stream-statuses",{statusKey:i,muted:s})}await t.insert("@keet/threads",n)}return K||await t.insert("@keet/call-members",{callKey:e.callKey,memberKey:y.key,createdAt:e.header.timestamp}),{writer:s,writerMember:y}}async function n({header:e,callKey:t},{db:s,writer:i}){const c=i.key,d={gte:{callKey:t},lte:{callKey:t}},[m,o,n,K]=await Promise.all([l(s,c),s.get("@keet/calls",{callKey:t}),s.find("@keet/call-members",d).toArray(),s.get("@keet/system-digest")]);if(K.settings.roomType===y.DirectMessage)throw r.CALL_LEAVE_NOT_ALLOWED();if(!a(m))throw r.INACTIVE_MEMBER();if(!o)throw r.CALL_NOT_FOUND();const w=m.key,k={gte:{callKey:t,memberKey:w},lte:{callKey:t,memberKey:w}},h={gte:{callKey:t,deviceKey:c},lte:{callKey:t,deviceKey:c}},[A,_,E,f]=await Promise.all([s.get("@keet/call-members",{callKey:t,memberKey:w}),s.get("@keet/call-devices",{callKey:t,deviceKey:c}),s.find("@keet/call-devices-by-member-key",k).toArray(),s.find("@keet/call-streams-by-device-key",h).toArray()]);if(!A)throw r.CALL_MEMBER_NOT_FOUND();if(!_)throw r.CALL_DEVICE_NOT_FOUND();const L=[];L.push(s.delete("@keet/call-devices",_));for(const e of f)L.push(s.delete("@keet/call-streams",e)),L.push(s.delete("@keet/call-stream-statuses",{statusKey:e.statusKey}));return E.length>1?(await Promise.all(L),{writer:i,writerMember:m}):(L.push(s.delete("@keet/call-members",A)),1===n.length&&(o.endedAt=e.timestamp,L.push(s.insert("@keet/calls",o))),await Promise.all(L),{writer:i,writerMember:m})}async function K({header:e,callKey:t},{db:i,writer:c}){const d=c.key,[m,o,n,K]=await Promise.all([l(i,d),i.get("@keet/calls",{callKey:t}),i.get("@keet/call-devices",{callKey:t,deviceKey:d}),i.get("@keet/system-digest")]);if(!a(m))throw r.INACTIVE_MEMBER();if(!o)throw r.CALL_NOT_FOUND();if(o.endedAt)throw r.CALL_ENDED();const w=K.settings.roomType===y.DirectMessage;if(!w&&!n)throw r.CALL_DEVICE_NOT_FOUND();o.endedAt=e.timestamp,await i.insert("@keet/calls",o);const k={gte:{callKey:t},lte:{callKey:t}},[h,A,_,E]=await Promise.all([i.get("@keet/call-members",{callKey:t,memberKey:m.key}),i.find("@keet/call-members",k).toArray(),i.find("@keet/call-devices",k).toArray(),i.find("@keet/call-streams",k).toArray()]),f=[];for(const e of A)f.push(i.delete("@keet/call-members",e));for(const e of _)f.push(i.delete("@keet/call-devices",e));for(const e of E)f.push(i.delete("@keet/call-streams",e)),f.push(i.delete("@keet/call-stream-statuses",{statusKey:e.statusKey}));return await Promise.all(f),w&&(A.length>1||!h?await s(i,c,{callHangup:!0},e.timestamp):await s(i,c,{callMissed:!0},e.timestamp)),{writer:c,writerMember:m}}async function w({header:e,callKey:t,streamKey:s,mediaStreamId:i,type:c,muted:y},{db:m,writer:o}){const n=o.key,K={gte:{callKey:t,mediaStreamId:i},lte:{callKey:t,mediaStreamId:i}},[w,k,h,A,_,E]=await Promise.all([l(m,n),m.get("@keet/calls",{callKey:t}),m.get("@keet/call-devices",{callKey:t,deviceKey:n}),m.get("@keet/call-streams",{callKey:t,streamKey:s}),i?m.findOne("@keet/call-streams-by-media-id",K):null,m.get("@keet/threads",{id:0})]);if(!a(w))throw r.INACTIVE_MEMBER();if(!k)throw r.CALL_NOT_FOUND();if(k.endedAt)throw r.CALL_ENDED();if(!h)throw r.CALL_DEVICE_NOT_FOUND();if(A)throw r.CALL_STREAM_EXISTS();if(_)throw r.CALL_MEDIA_STREAM_ID_EXISTS();const f=d(E),L={callKey:t,deviceKey:h.deviceKey,streamKey:s,mediaStreamId:i,type:c,statusKey:f,createdAt:e.timestamp};return await Promise.all([m.insert("@keet/call-streams",L),m.insert("@keet/call-stream-statuses",{statusKey:f,muted:y}),m.insert("@keet/threads",E)]),{writer:o,writerMember:w}}async function k({callKey:e,streamKey:s,muted:i},{db:c,writer:y}){const d=y.key,[m,o,n,K]=await Promise.all([l(c,d),c.get("@keet/calls",{callKey:e}),c.get("@keet/call-devices",{callKey:e,deviceKey:d}),c.get("@keet/call-streams",{callKey:e,streamKey:s})]);if(!a(m))throw r.INACTIVE_MEMBER();if(!o)throw r.CALL_NOT_FOUND();if(o.endedAt)throw r.CALL_ENDED();if(!n)throw r.CALL_DEVICE_NOT_FOUND();if(!K)throw r.CALL_STREAM_NOT_FOUND();if(!t.equals(K.deviceKey,d))throw r.CALL_STREAM_NOT_OWNED();return await c.insert("@keet/call-stream-statuses",{statusKey:K.statusKey,muted:i}),{writer:y,writerMember:m}}async function h({callKey:e,streamKey:t},{db:s,writer:i}){const c=i.key,[y,d,m,o]=await Promise.all([l(s,c),s.get("@keet/calls",{callKey:e}),s.get("@keet/call-devices",{callKey:e,deviceKey:c}),s.get("@keet/call-streams",{callKey:e,streamKey:t})]);if(!a(y))throw r.INACTIVE_MEMBER();if(!d)throw r.CALL_NOT_FOUND();if(d.endedAt)throw r.CALL_ENDED();if(!m)throw r.CALL_DEVICE_NOT_FOUND();if(!o)throw r.CALL_STREAM_NOT_FOUND();return await Promise.all([s.delete("@keet/call-streams",o),s.delete("@keet/call-stream-statuses",{statusKey:o.statusKey})]),{writer:i,writerMember:y}}async function A({header:e,callKey:t,deviceKey:s},{db:i,writer:c}){const y=c.key,d={gte:{callKey:t},lte:{callKey:t}},[m,o,n,K]=await Promise.all([l(i,y),i.get("@keet/calls",{callKey:t}),i.get("@keet/call-devices",{callKey:t,deviceKey:s}),i.find("@keet/call-members",d).toArray()]);if(!a(m))throw r.INACTIVE_MEMBER();if(!o)throw r.CALL_NOT_FOUND();if(o.endedAt)throw r.CALL_ENDED();if(!n)throw r.CALL_DEVICE_NOT_FOUND();const w=n.memberKey,k={gte:{callKey:t,memberKey:w},lte:{callKey:t,memberKey:w}},h={gte:{callKey:t,deviceKey:s},lte:{callKey:t,deviceKey:s}},[A,_,E]=await Promise.all([i.get("@keet/call-members",{callKey:t,memberKey:w}),i.find("@keet/call-devices-by-member-key",k).toArray(),i.find("@keet/call-streams-by-device-key",h).toArray()]),f=[];f.push(i.delete("@keet/call-devices",n));for(const e of E)f.push(i.delete("@keet/call-streams",e)),f.push(i.delete("@keet/call-stream-statuses",{statusKey:e.statusKey}));return _.length>1||(A&&f.push(i.delete("@keet/call-members",A)),1===K.length&&(o.endedAt=e.timestamp,f.push(i.insert("@keet/calls",o)))),Promise.all(f)}async function _({header:e,callKey:t},{db:s,writer:i}){const c=i.key,[y,d,m]=await Promise.all([l(s,c),s.get("@keet/calls",{callKey:t}),s.get("@keet/call-devices",{callKey:t,deviceKey:c})]);if(!a(y))throw r.INACTIVE_MEMBER();if(!d)throw r.CALL_NOT_FOUND();if(d.endedAt)throw r.CALL_ENDED();if(!m)throw r.CALL_DEVICE_NOT_FOUND();await s.insert("@keet/call-devices",{...m,lastHeartbeatAt:e.timestamp})}async function E({callKey:e},{db:t,writer:s}){const i=s.key,[c,y,d]=await Promise.all([l(t,i),t.get("@keet/calls",{callKey:e}),t.get("@keet/call-devices",{callKey:e,deviceKey:i})]);if(!a(c))throw r.INACTIVE_MEMBER();if(!y)throw r.CALL_NOT_FOUND();if(y.endedAt)throw r.CALL_ENDED();if(!d)throw r.CALL_DEVICE_NOT_FOUND();if(d.isRecording)throw r.CALL_RECORDING_ALREADY_ACTIVE();await t.insert("@keet/call-devices",{...d,isRecording:!0})}async function f({callKey:e},{db:t,writer:s}){const i=s.key,[c,y,d]=await Promise.all([l(t,i),t.get("@keet/calls",{callKey:e}),t.get("@keet/call-devices",{callKey:e,deviceKey:i})]);if(!a(c))throw r.INACTIVE_MEMBER();if(!y)throw r.CALL_NOT_FOUND();if(y.endedAt)throw r.CALL_ENDED();if(!d)throw r.CALL_DEVICE_NOT_FOUND();if(!d.isRecording)throw r.CALL_NOT_RECORDING();await t.insert("@keet/call-devices",{...d,isRecording:!1})}module.exports={[e]:function(e){e.add("@keet/start-call",c(m)),e.add("@keet/join-call",c(o)),e.add("@keet/leave-call",c(n)),e.add("@keet/end-call",c(K)),e.add("@keet/add-call-stream",c(w)),e.add("@keet/remove-call-stream",c(h)),e.add("@keet/update-call-stream",c(k)),e.add("@keet/call-device-heartbeat",c(_)),e.add("@keet/remove-call-device",c(A)),e.add("@keet/start-call-recording",c(E)),e.add("@keet/stop-call-recording",c(f))}};
@holepunchto/keet-core/lib/core/contract/chat.js +1 -1
……@@ -1 +1 @@
1const e=require("b4a"),t=require("./registration"),{getMemberForDeviceKey:s,isMemberActive:i}=require("./query"),{KeetContractError:a}=require("./errors"),{insertMessageFiles:r,deleteMessageFiles:o,updateImageFile:n}=require("./avatars"),{contract:{hyperschema:{getEnum:d}}}=require("../../../schema/spec"),{chatStats:l,fileStats:c}=require("./stats"),g=d("@keet/room-type");async function h({message:e,header:t},{db:o,blobs:n,writer:d}){let[c,h,p,w,m,k]=await Promise.all([s(o,d.key),o.get("@keet/threads",{id:0}),e.parent?o.get("@keet/threads-by-parent",{oplog:e.parent}):null,e.parent?o.get("@keet/chat-by-message-id",{oplog:e.parent}):null,e.replyTo?o.get("@keet/chat-by-message-id",{oplog:e.replyTo}):null,o.get("@keet/system-digest")]);if(!i(c))throw a.INACTIVE_MEMBER();if(c.status.isMuted)throw a.WRITER_IS_MUTED();const y=k.settings.roomType===g.Broadcast||k.settings.isAppendingDisabled;if(!c.status.isModerator&&y)throw a.MODERATORS_ONLY();if(e.parent&&!w)throw a.PARENT_MSG_INVALID();if(e.replyTo&&!m)throw a.REPLYTO_MSG_INVALID();if(e.parent||(p=h),e.event?.callMissed){const e=await o.get("@keet/chat",{id:{thread:p.id,index:p.count-1}});if(e&&e.event.callMissed)throw a.NO_DUPLICATE_CALL_EVENTS()}if(k.settings.isAttachmentsDisabled&&f(e))throw a.FILE_ATTACHMENTS_DISABLED();if(k.settings.isLinksDisabled&&u(e))throw a.LINKS_DISABLED();const E=h.stats.files.clock;e.files=await r({primaryThread:h,clock:E,message:e,blobs:n,db:o,oplog:d});const T={id:{thread:p.id,index:p.count},oplog:d,clock:h.stats.chat.clock,timestamp:t.timestamp,message:e,status:{isEdited:!1,isPinned:!1,isDeleted:!1},event:e.event};await o.insert("@keet/chat",T),await l(o,h,T)}async function p({header:t,oplog:n,message:d},{db:c,blobs:g,writer:h}){const[p,w,m,k,y,E]=await Promise.all([s(c,h.key),s(c,n.key),c.get("@keet/chat-by-message-id",{oplog:n}),c.get("@keet/threads",{id:0}),d.replyTo?c.get("@keet/chat-by-message-id",{oplog:d.replyTo}):null,c.get("@keet/system-digest")]);if(!i(p))throw a.INACTIVE_MEMBER();if(!m)throw a.TARGET_MSG_INVALID();if(!w)throw a.TARGET_MEMBER_NOT_FOUND();if(!e.equals(p.key,w.key))throw a.SELF_ONLY();if(m.status.isDeleted)throw a.TARGET_MSG_IS_DELETED();if(d.replyTo&&!y)throw a.REPLYTO_MSG_INVALID();if(E.settings.isAttachmentsDisabled&&f(d))throw a.FILE_ATTACHMENTS_DISABLED();if(E.settings.isLinksDisabled&&u(d))throw a.LINKS_DISABLED();const T=[];m.message?.files?.length&&(T.push(...m.message.files),m.message.files=[]),d.files=[],await o({primaryThread:k,message:m,db:c,blobs:g});const _=k.stats.files.clock;await r({primaryThread:k,clock:_,message:d,blobs:g,db:c,oplog:h});const b={...m,message:{...m.message,text:d.text,files:T,display:d.display},status:{...m.status,isEdited:!0},editedAt:t.timestamp};await c.insert("@keet/chat",b),await l(c,k,b,m)}async function w({oplog:t},{db:r,blobs:n,writer:d}){const[c,g,h,p]=await Promise.all([s(r,d.key),s(r,t.key),r.get("@keet/chat-by-message-id",{oplog:t}),r.get("@keet/threads",{id:0})]);if(!i(c))throw a.INACTIVE_MEMBER();if(!h)throw a.TARGET_MSG_INVALID();if(!c.status.isModerator&&!e.equals(c.key,g.key))throw a.MODERATORS_OR_SELF_ONLY();await o({primaryThread:p,message:h,db:r,blobs:n});const w={...h,message:null,status:{...h.status,isDeleted:!0,isPinned:!1}};await r.insert("@keet/chat",w),await l(r,p,w,h);const m=await r.get("@keet/chat-label-digests",{id:h.id});m&&await r.insert("@keet/chat-label-digests",{...m,isDeleted:!0})}async function m({oplog:e,isPinned:t},{db:r,writer:o}){const[n,d,c]=await Promise.all([s(r,o.key),r.get("@keet/chat-by-message-id",{oplog:e}),r.get("@keet/threads",{id:0})]);if(!i(n))throw a.INACTIVE_MEMBER();if(!d)throw a.TARGET_MSG_INVALID();if(!n.status.isModerator)throw a.MODERATORS_ONLY();const g={...d,status:{...d.status,isPinned:t}};await r.insert("@keet/chat",g),await l(r,c,g,d)}async function k({oplog:t,index:r,preview:o,displayType:d},{db:l,blobs:g,writer:h}){const[p,w,m,k]=await Promise.all([s(l,h.key),s(l,t.key),l.get("@keet/chat-by-message-id",{oplog:t}),l.get("@keet/threads",{id:0})]);if(!i(p))throw a.INACTIVE_MEMBER();if(!m)throw a.TARGET_MSG_INVALID();if(!e.equals(p.key,w.key))throw a.SELF_ONLY();const y=d?function(e,t,s){switch(t){case 1:return e.message.display.httpLink[s].preview.files;case 2:return e.message.display.pearLink[s].preview.files}}(m,d,r):m.message?.files,E=d?0:r;if(!y||y.length<=E)throw a.FILE_REFERENCE_INVALID("files is falsy or invalid index");const f=await l.get("@keet/files",{id:y[E]});if(!f)throw a.FILE_RECORD_INVALID("record is falsy");f.file.preview=await n(g,null,o),await l.insert("@keet/files",f),await c(l,k,f,f)}async function y({length:e},{db:t,writer:a}){const[r,o]=await Promise.all([t.get("@keet/system-digest"),s(t,a.key)]);i(o)&&!o.status.isMuted&&r.settings.roomType===g.DirectMessage&&await t.insert("@keet/read-lengths",{memberKey:o.key,length:e})}async function E({header:e},{db:t,writer:r}){const[o,n]=await Promise.all([t.get("@keet/system-digest"),s(t,r.key)]);if(!i(n))throw a.INACTIVE_MEMBER();if(o.settings.roomType!==g.DirectMessage)throw a.INVALID_ROOM_TYPE();await t.insert("@keet/typing-indicators",{memberKey:n.key,timestamp:e.timestamp})}function f(e){return e?.files?.length>0||e?.display?.httpLink?.some(e=>e.preview)||e?.display?.pearLink?.some(e=>e.preview)}function u(e){return e.display?.httpLink?.length>0||e?.display?.pearLink?.length>0}module.exports={addEvent:async function(e,t,s,i){const a=await e.get("@keet/threads",{id:0}),r={id:{thread:0,index:a.count},oplog:t,clock:a.stats.chat.clock,timestamp:i,event:s,status:{isEdited:!1,isPinned:!1,isDeleted:!1}};await e.insert("@keet/chat",r),await l(e,a,r)},[t]:function(e){e.add("@keet/add-chat-message",h),e.add("@keet/update-chat-message",p),e.add("@keet/remove-chat-message",w),e.add("@keet/pin-chat-message",m),e.add("@keet/add-file-preview",k),e.add("@keet/update-read-length",y),e.add("@keet/update-typing-indicator",E)}};
1const e=require("b4a"),t=require("./registration"),{getMemberForDeviceKey:s,isMemberActive:i}=require("./query"),{KeetContractError:a}=require("./errors"),{insertMessageFiles:r,deleteMessageFiles:o,updateImageFile:n}=require("./avatars"),{contract:{hyperschema:{getEnum:d}}}=require("../../../schema/spec"),{chatStats:l,fileStats:c}=require("./stats"),{trackActivity:g}=require("./hooks"),w=d("@keet/room-type");async function h({message:e,header:t},{db:o,blobs:n,writer:d}){let[c,g,h,m,p,k]=await Promise.all([s(o,d.key),o.get("@keet/threads",{id:0}),e.parent?o.get("@keet/threads-by-parent",{oplog:e.parent}):null,e.parent?o.get("@keet/chat-by-message-id",{oplog:e.parent}):null,e.replyTo?o.get("@keet/chat-by-message-id",{oplog:e.replyTo}):null,o.get("@keet/system-digest")]);if(!i(c))throw a.INACTIVE_MEMBER();if(c.status.isMuted)throw a.WRITER_IS_MUTED();const y=k.settings.roomType===w.Broadcast||k.settings.isAppendingDisabled;if(!c.status.isModerator&&y)throw a.MODERATORS_ONLY();if(e.parent&&!m)throw a.PARENT_MSG_INVALID();if(e.replyTo&&!p)throw a.REPLYTO_MSG_INVALID();if(e.parent||(h=g),e.event?.callMissed){const e=await o.get("@keet/chat",{id:{thread:h.id,index:h.count-1}});if(e&&e.event.callMissed)throw a.NO_DUPLICATE_CALL_EVENTS()}if(k.settings.isAttachmentsDisabled&&f(e))throw a.FILE_ATTACHMENTS_DISABLED();if(k.settings.isLinksDisabled&&T(e))throw a.LINKS_DISABLED();const E=g.stats.files.clock;e.files=await r({primaryThread:g,clock:E,message:e,blobs:n,db:o,oplog:d});const u={id:{thread:h.id,index:h.count},oplog:d,clock:g.stats.chat.clock,timestamp:t.timestamp,message:e,status:{isEdited:!1,isPinned:!1,isDeleted:!1},event:e.event};return await o.insert("@keet/chat",u),await l(o,g,u),{writer:d,writerMember:c}}async function m({header:t,oplog:n,message:d},{db:c,blobs:g,writer:w}){const[h,m,p,k,y,E]=await Promise.all([s(c,w.key),s(c,n.key),c.get("@keet/chat-by-message-id",{oplog:n}),c.get("@keet/threads",{id:0}),d.replyTo?c.get("@keet/chat-by-message-id",{oplog:d.replyTo}):null,c.get("@keet/system-digest")]);if(!i(h))throw a.INACTIVE_MEMBER();if(!p)throw a.TARGET_MSG_INVALID();if(!m)throw a.TARGET_MEMBER_NOT_FOUND();if(!e.equals(h.key,m.key))throw a.SELF_ONLY();if(p.status.isDeleted)throw a.TARGET_MSG_IS_DELETED();if(d.replyTo&&!y)throw a.REPLYTO_MSG_INVALID();if(E.settings.isAttachmentsDisabled&&f(d))throw a.FILE_ATTACHMENTS_DISABLED();if(E.settings.isLinksDisabled&&T(d))throw a.LINKS_DISABLED();const u=[];p.message?.files?.length&&(u.push(...p.message.files),p.message.files=[]),d.files=[],await o({primaryThread:k,message:p,db:c,blobs:g});const _=k.stats.files.clock;await r({primaryThread:k,clock:_,message:d,blobs:g,db:c,oplog:w});const b={...p,message:{...p.message,text:d.text,files:u,display:d.display},status:{...p.status,isEdited:!0},editedAt:t.timestamp};return await c.insert("@keet/chat",b),await l(c,k,b,p),{writer:w,writerMember:h}}async function p({oplog:t},{db:r,blobs:n,writer:d}){const[c,g,w,h]=await Promise.all([s(r,d.key),s(r,t.key),r.get("@keet/chat-by-message-id",{oplog:t}),r.get("@keet/threads",{id:0})]);if(!i(c))throw a.INACTIVE_MEMBER();if(!w)throw a.TARGET_MSG_INVALID();if(!c.status.isModerator&&!e.equals(c.key,g.key))throw a.MODERATORS_OR_SELF_ONLY();await o({primaryThread:h,message:w,db:r,blobs:n});const m={...w,message:null,status:{...w.status,isDeleted:!0,isPinned:!1}};await r.insert("@keet/chat",m),await l(r,h,m,w);const p=await r.get("@keet/chat-label-digests",{id:w.id});return p?(await r.insert("@keet/chat-label-digests",{...p,isDeleted:!0}),{writer:d,writerMember:c}):{writer:d,writerMember:c}}async function k({oplog:e,isPinned:t},{db:r,writer:o}){const[n,d,c]=await Promise.all([s(r,o.key),r.get("@keet/chat-by-message-id",{oplog:e}),r.get("@keet/threads",{id:0})]);if(!i(n))throw a.INACTIVE_MEMBER();if(!d)throw a.TARGET_MSG_INVALID();if(!n.status.isModerator)throw a.MODERATORS_ONLY();const g={...d,status:{...d.status,isPinned:t}};return await r.insert("@keet/chat",g),await l(r,c,g,d),{writer:o,writerMember:n}}async function y({oplog:t,index:r,preview:o,displayType:d},{db:l,writer:g}){const[w,h,m,p]=await Promise.all([s(l,g.key),s(l,t.key),l.get("@keet/chat-by-message-id",{oplog:t}),l.get("@keet/threads",{id:0})]);if(!i(w))throw a.INACTIVE_MEMBER();if(!m)throw a.TARGET_MSG_INVALID();if(!h)throw a.TARGET_MEMBER_NOT_FOUND();if(!e.equals(w.key,h.key))throw a.SELF_ONLY();const k=d?function(e,t,s){const i=e.message?.display;switch(t){case 1:return i?.httpLink?.[s]?.preview?.files;case 2:return i?.pearLink?.[s]?.preview?.files}}(m,d,r):m.message?.files,y=d?0:r;if(!k||k.length<=y)throw a.FILE_REFERENCE_INVALID("files is falsy or invalid index");const E=await l.get("@keet/files",{id:k[y]});if(!E)throw a.FILE_RECORD_INVALID("record is falsy");return E.file.preview=await n(l,null,o),await l.insert("@keet/files",E),await c(l,p,E,E),{writer:g,writerMember:w}}async function E({length:e},{db:t,writer:a}){const[r,o]=await Promise.all([t.get("@keet/system-digest"),s(t,a.key)]);if(i(o)&&!o.status.isMuted&&r.settings.roomType===w.DirectMessage)return await t.insert("@keet/read-lengths",{memberKey:o.key,length:e}),{writer:a,writerMember:o}}async function u({header:e},{db:t,writer:r}){const[o,n]=await Promise.all([t.get("@keet/system-digest"),s(t,r.key)]);if(!i(n))throw a.INACTIVE_MEMBER();if(o.settings.roomType!==w.DirectMessage)throw a.INVALID_ROOM_TYPE();await t.insert("@keet/typing-indicators",{memberKey:n.key,timestamp:e.timestamp})}function f(e){return e?.files?.length>0||e?.display?.httpLink?.some(e=>e.preview)||e?.display?.pearLink?.some(e=>e.preview)}function T(e){return e.display?.httpLink?.length>0||e?.display?.pearLink?.length>0}module.exports={addEvent:async function(e,t,s,i,a){const r=await e.get("@keet/threads",{id:0}),o={id:{thread:0,index:r.count},oplog:t,clock:r.stats.chat.clock,timestamp:i,event:s,status:{isEdited:!1,isPinned:!1,isDeleted:!1}};await e.insert("@keet/chat",o),await l(e,r,o)},[t]:function(e){e.add("@keet/add-chat-message",g(h)),e.add("@keet/update-chat-message",g(m)),e.add("@keet/remove-chat-message",g(p)),e.add("@keet/pin-chat-message",g(k)),e.add("@keet/add-file-preview",g(y)),e.add("@keet/update-read-length",g(E)),e.add("@keet/update-typing-indicator",u)}};
@holepunchto/keet-core/lib/core/contract/config.js +1 -1
……@@ -1 +1 @@
1const e=require("./registration"),{addEvent:t}=require("./chat"),{isMemberActive:r,getMemberForDeviceKey:i}=require("./query"),{updateAvatar:a}=require("./avatars"),{KeetContractError:o}=require("./errors"),n=["title","description","avatar","supportedLanguages","blindPeers"],s={Title:1,Description:2,Avatar:3,SupportedLanguages:4,BlindPeers:5};async function l({header:e,key:l,config:u},{db:c,writer:d,blobs:g}){const[f,m]=await Promise.all([i(c,d.key),c.get("@keet/room-config")]);if(!r(f)||!f.status.isModerator)return;if(0===l||l>n.length)return;const p=n[l-1],v={...m,[p]:u[p]};if(l===s.Avatar){const e=m&&m[p],t=u[p];if(null!==t.small&&!t.small?.pointer?.inlined)throw o.ABORT();const r=null!==t.small?await a(g,e,t):null;v[p]=r}if(l===s.Title){const r=m&&m[p],i=u[p];r&&r!==i&&await t(c,d,{titleChanged:{from:r,to:i}},e.timestamp)}l===s.BlindPeers&&(v[p]=u[p].slice(0,10)),await c.insert("@keet/room-config",v)}module.exports={[e]:function(e){e.add("@keet/update-room-config",l)},CONFIG_INDEX_TO_KEY:n,Config:s};
1const e=require("./registration"),{addEvent:r}=require("./chat"),{isMemberActive:t,getMemberForDeviceKey:i}=require("./query"),{updateAvatar:a}=require("./avatars"),{KeetContractError:o}=require("./errors"),{trackActivity:n}=require("./hooks"),s=["title","description","avatar","supportedLanguages","blindPeers"],l={Title:1,Description:2,Avatar:3,SupportedLanguages:4,BlindPeers:5};async function u({header:e,key:n,config:u},{db:c,writer:d}){const[g,m]=await Promise.all([i(c,d.key),c.get("@keet/room-config")]);if(!t(g)||!g.status.isModerator)return;if(0===n||n>s.length)return;const f=s[n-1],p={...m,[f]:u[f]};if(n===l.Avatar){const e=m&&m[f],r=u[f];if(null!==r.small&&!r.small?.pointer?.inlined)throw o.ABORT();const t=null!==r.small?await a(c,e,r):null;p[f]=t}if(n===l.Title){const t=m&&m[f],i=u[f];t&&t!==i&&await r(c,d,{titleChanged:{from:t,to:i}},e.timestamp)}return n===l.BlindPeers&&(p[f]=u[f].slice(0,10)),await c.insert("@keet/room-config",p),{writer:d,writerMember:g}}module.exports={[e]:function(e){e.add("@keet/update-room-config",n(u))},CONFIG_INDEX_TO_KEY:s,Config:l};
@holepunchto/keet-core/lib/core/contract/errors.js +1 -1
……@@ -1 +1 @@
1const _={CORRUPT:"KEET_CONTRACT_CORRUPT",ABORT:"KEET_CONTRACT_ABORT",BUNDLE_NOT_AVAILABLE:"BUNDLE_NOT_AVAILABLE",ADMINS_ONLY:"ADMINS_ONLY",MODERATORS_ONLY:"MODERATORS_ONLY",SELF_ONLY:"SELF_ONLY",MODERATORS_OR_SELF_ONLY:"MODERATORS_OR_SELF_ONLY",INVALID_ROOM_TYPE:"INVALID_ROOM_TYPE",WRITER_IS_MUTED:"WRITER_IS_MUTED",PARENT_MSG_INVALID:"PARENT_MSG_INVALID",REPLYTO_MSG_INVALID:"REPLYTO_MSG_INVALID",TARGET_MSG_INVALID:"TARGET_MSG_INVALID",TARGET_MSG_IS_DELETED:"TARGET_MSG_IS_DELETED",TARGET_MSG_IS_OWN:"TARGET_MSG_IS_OWN",CHAT_LABEL_EXISTS:"CHAT_LABEL_EXISTS",CHAT_LABEL_NOT_FOUND:"CHAT_LABEL_NOT_FOUND",CHAT_FLAG_LIMIT_EXCEEDED:"CHAT_FLAG_LIMIT_EXCEEDED",FILE_REFERENCE_INVALID:"FILE_REFERENCE_INVALID",FILE_RECORD_INVALID:"FILE_RECORD_INVALID",INLINED_FILESIZE_TOO_LARGE:"INLINED_FILESIZE_TOO_LARGE",FILE_ATTACHMENTS_DISABLED:"FILE_ATTACHMENTS_DISABLED",LINKS_DISABLED:"LINKS_DISABLED",INACTIVE_MEMBER:"INACTIVE_MEMBER",MUTED_MEMBER:"MUTED_MEMBER",TARGET_MEMBER_NOT_FOUND:"TARGET_MEMBER_NOT_FOUND",INVALID_MEMBER_STATUS:"INVALID_MEMBER_STATUS",CONTACT_NOT_FOUND:"CONTACT_NOT_FOUND",NO_DUPLICATE_CALL_EVENTS:"NO_DUPLICATE_CALL_EVENTS",GENESIS_NOT_FIRST:"GENESIS_NOT_FIRST",INVALID_SYSTEM_SETTING:"INVALID_SYSTEM_SETTING",ACTIVE_CALL_EXISTS:"ACTIVE_CALL_EXISTS",CALL_KEY_EXISTS:"CALL_KEY_EXISTS",CALL_NOT_FOUND:"CALL_NOT_FOUND",CALL_ENDED:"CALL_ENDED",CALL_DEVICE_EXISTS:"CALL_DEVICE_EXISTS",CALL_DEVICE_NOT_FOUND:"CALL_DEVICE_NOT_FOUND",CALL_MEMBER_NOT_FOUND:"CALL_MEMBER_NOT_FOUND",CALL_STREAM_EXISTS:"CALL_STREAM_EXISTS",CALL_STREAM_NOT_FOUND:"CALL_STREAM_NOT_FOUND",CALL_LEAVE_NOT_ALLOWED:"CALL_LEAVE_NOT_ALLOWED",CALL_RECORDING_ALREADY_ACTIVE:"CALL_RECORDING_ALREADY_ACTIVE",CALL_NOT_RECORDING:"CALL_NOT_RECORDING",CALL_DISABLED:"CALL_DISABLED",INVALID_BUILD_TYPE:"INVALID_BUILD_TYPE",DISPATCH_ERROR:"DISPATCH_ERROR",INVALID_TARGET_DEVICE:"INVALID_TARGET_DEVICE"};class E extends Error{constructor(_,L,T=E){super(_?`${L}: ${_}`:L),this.code=L,this.isContractError=!0,this.abi=null,this.roomKey=null,Error.captureStackTrace&&Error.captureStackTrace(this,T)}static isContractError(_){return!!_.isContractError||"KEET_CONTRACT_ABORT"===_.code}static CORRUPT(L=""){return new E(L,_.CORRUPT,E.CORRUPT)}static ABORT(L=""){return new E(L,_.ABORT,E.ABORT)}static BUNDLE_NOT_AVAILABLE(L){const T=new E("ABI "+L,_.BUNDLE_NOT_AVAILABLE,E.BUNDLE_NOT_AVAILABLE);return T.abi=L,T}static ADMINS_ONLY(L=""){return new E(L,_.ADMINS_ONLY,E.ADMINS_ONLY)}static MODERATORS_ONLY(L=""){return new E(L,_.MODERATORS_ONLY,E.MODERATORS_ONLY)}static SELF_ONLY(L=""){return new E(L,_.SELF_ONLY,E.SELF_ONLY)}static MODERATORS_OR_SELF_ONLY(L=""){return new E(L,_.MODERATORS_OR_SELF_ONLY,E.MODERATORS_OR_SELF_ONLY)}static INVALID_ROOM_TYPE(L=""){return new E(L,_.INVALID_ROOM_TYPE,E.INVALID_ROOM_TYPE)}static WRITER_IS_MUTED(L=""){return new E(L,_.WRITER_IS_MUTED,E.WRITER_IS_MUTED)}static PARENT_MSG_INVALID(L=""){return new E(L,_.PARENT_MSG_INVALID,E.PARENT_MSG_INVALID)}static REPLYTO_MSG_INVALID(L=""){return new E(L,_.REPLYTO_MSG_INVALID,E.REPLYTO_MSG_INVALID)}static TARGET_MSG_INVALID(L=""){return new E(L,_.TARGET_MSG_INVALID,E.TARGET_MSG_INVALID)}static TARGET_MSG_IS_DELETED(L=""){return new E(L,_.TARGET_MSG_IS_DELETED,E.TARGET_MSG_IS_DELETED)}static TARGET_MSG_IS_OWN(L=""){return new E(L,_.TARGET_MSG_IS_OWN,E.TARGET_MSG_IS_OWN)}static CHAT_LABEL_EXISTS(L=""){return new E(L,_.CHAT_LABEL_EXISTS,E.CHAT_LABEL_EXISTS)}static CHAT_LABEL_NOT_FOUND(L=""){return new E(L,_.CHAT_LABEL_NOT_FOUND,E.CHAT_LABEL_NOT_FOUND)}static CHAT_FLAG_LIMIT_EXCEEDED(L=""){return new E(L,_.CHAT_FLAG_LIMIT_EXCEEDED,E.CHAT_FLAG_LIMIT_EXCEEDED)}static FILE_REFERENCE_INVALID(L=""){return new E(L,_.FILE_REFERENCE_INVALID,E.FILE_REFERENCE_INVALID)}static FILE_RECORD_INVALID(L=""){return new E(L,_.FILE_RECORD_INVALID,E.FILE_RECORD_INVALID)}static INLINED_FILESIZE_TOO_LARGE(L=""){return new E(L,_.INLINED_FILESIZE_TOO_LARGE,E.INLINED_FILESIZE_TOO_LARGE)}static FILE_ATTACHMENTS_DISABLED(L=""){return new E(L,_.FILE_ATTACHMENTS_DISABLED,E.FILE_ATTACHMENTS_DISABLED)}static LINKS_DISABLED(L=""){return new E(L,_.LINKS_DISABLED,E.LINKS_DISABLED)}static INACTIVE_MEMBER(L=""){return new E(L,_.INACTIVE_MEMBER,E.INACTIVE_MEMBER)}static MUTED_MEMBER(L=""){return new E(L,_.MUTED_MEMBER,E.MUTED_MEMBER)}static TARGET_MEMBER_NOT_FOUND(L=""){return new E(L,_.TARGET_MEMBER_NOT_FOUND,E.TARGET_MEMBER_NOT_FOUND)}static INVALID_MEMBER_STATUS(L=""){return new E(L,_.INVALID_MEMBER_STATUS,E.INVALID_MEMBER_STATUS)}static CONTACT_NOT_FOUND(L=""){return new E(L,_.CONTACT_NOT_FOUND,E.CONTACT_NOT_FOUND)}static NO_DUPLICATE_CALL_EVENTS(L=""){return new E(L,_.NO_DUPLICATE_CALL_EVENTS,E.NO_DUPLICATE_CALL_EVENTS)}static GENESIS_NOT_FIRST(L=""){return new E(L,_.GENESIS_NOT_FIRST,E.GENESIS_NOT_FIRST)}static INVALID_SYSTEM_SETTING(L=""){return new E(L,_.INVALID_SYSTEM_SETTING,E.INVALID_SYSTEM_SETTING)}static ACTIVE_CALL_EXISTS(L=""){return new E(L,_.ACTIVE_CALL_EXISTS,E.ACTIVE_CALL_EXISTS)}static CALL_KEY_EXISTS(L=""){return new E(L,_.CALL_KEY_EXISTS,E.CALL_KEY_EXISTS)}static CALL_NOT_FOUND(L=""){return new E(L,_.CALL_NOT_FOUND,E.CALL_NOT_FOUND)}static CALL_ENDED(L=""){return new E(L,_.CALL_ENDED,E.CALL_ENDED)}static CALL_DEVICE_EXISTS(L=""){return new E(L,_.CALL_DEVICE_EXISTS,E.CALL_DEVICE_EXISTS)}static CALL_DEVICE_NOT_FOUND(L=""){return new E(L,_.CALL_DEVICE_NOT_FOUND,E.CALL_DEVICE_NOT_FOUND)}static CALL_MEMBER_NOT_FOUND(L=""){return new E(L,_.CALL_MEMBER_NOT_FOUND,E.CALL_MEMBER_NOT_FOUND)}static CALL_STREAM_EXISTS(L=""){return new E(L,_.CALL_STREAM_EXISTS,E.CALL_STREAM_EXISTS)}static CALL_STREAM_NOT_FOUND(L=""){return new E(L,_.CALL_STREAM_NOT_FOUND,E.CALL_STREAM_NOT_FOUND)}static CALL_LEAVE_NOT_ALLOWED(L=""){return new E(L,_.CALL_LEAVE_NOT_ALLOWED,E.CALL_LEAVE_NOT_ALLOWED)}static CALL_RECORDING_ALREADY_ACTIVE(L=""){return new E(L,_.CALL_RECORDING_ALREADY_ACTIVE,E.CALL_RECORDING_ALREADY_ACTIVE)}static CALL_NOT_RECORDING(L=""){return new E(L,_.CALL_NOT_RECORDING,E.CALL_NOT_RECORDING)}static CALL_DISABLED(L=""){return new E(L,_.CALL_DISABLED,E.CALL_DISABLED)}static INVALID_BUILD_TYPE(L=""){return new E(L,_.INVALID_BUILD_TYPE,E.INVALID_BUILD_TYPE)}static DISPATCH_ERROR(L=""){return new E(L,_.DISPATCH_ERROR,E.DISPATCH_ERROR)}static INVALID_TARGET_DEVICE(L=""){return new E(L,_.INVALID_TARGET_DEVICE,E.INVALID_TARGET_DEVICE)}}module.exports={CONTRACT_ERRORS:_,KeetContractError:E};
1const _={CORRUPT:"KEET_CONTRACT_CORRUPT",ABORT:"KEET_CONTRACT_ABORT",BUNDLE_NOT_AVAILABLE:"BUNDLE_NOT_AVAILABLE",ADMINS_ONLY:"ADMINS_ONLY",MODERATORS_ONLY:"MODERATORS_ONLY",SELF_ONLY:"SELF_ONLY",MODERATORS_OR_SELF_ONLY:"MODERATORS_OR_SELF_ONLY",INVALID_ROOM_TYPE:"INVALID_ROOM_TYPE",WRITER_IS_MUTED:"WRITER_IS_MUTED",PARENT_MSG_INVALID:"PARENT_MSG_INVALID",REPLYTO_MSG_INVALID:"REPLYTO_MSG_INVALID",TARGET_MSG_INVALID:"TARGET_MSG_INVALID",TARGET_MSG_IS_DELETED:"TARGET_MSG_IS_DELETED",TARGET_MSG_IS_OWN:"TARGET_MSG_IS_OWN",CHAT_LABEL_EXISTS:"CHAT_LABEL_EXISTS",CHAT_LABEL_NOT_FOUND:"CHAT_LABEL_NOT_FOUND",CHAT_FLAG_LIMIT_EXCEEDED:"CHAT_FLAG_LIMIT_EXCEEDED",FILE_REFERENCE_INVALID:"FILE_REFERENCE_INVALID",FILE_RECORD_INVALID:"FILE_RECORD_INVALID",INLINED_FILESIZE_TOO_LARGE:"INLINED_FILESIZE_TOO_LARGE",FILE_ATTACHMENTS_DISABLED:"FILE_ATTACHMENTS_DISABLED",LINKS_DISABLED:"LINKS_DISABLED",INACTIVE_MEMBER:"INACTIVE_MEMBER",MUTED_MEMBER:"MUTED_MEMBER",TARGET_MEMBER_NOT_FOUND:"TARGET_MEMBER_NOT_FOUND",INVALID_MEMBER_STATUS:"INVALID_MEMBER_STATUS",CONTACT_NOT_FOUND:"CONTACT_NOT_FOUND",NO_DUPLICATE_CALL_EVENTS:"NO_DUPLICATE_CALL_EVENTS",GENESIS_NOT_FIRST:"GENESIS_NOT_FIRST",INVALID_SYSTEM_SETTING:"INVALID_SYSTEM_SETTING",ACTIVE_CALL_EXISTS:"ACTIVE_CALL_EXISTS",CALL_KEY_EXISTS:"CALL_KEY_EXISTS",CALL_NOT_FOUND:"CALL_NOT_FOUND",CALL_ENDED:"CALL_ENDED",CALL_DEVICE_EXISTS:"CALL_DEVICE_EXISTS",CALL_DEVICE_NOT_FOUND:"CALL_DEVICE_NOT_FOUND",CALL_MEMBER_NOT_FOUND:"CALL_MEMBER_NOT_FOUND",CALL_STREAM_EXISTS:"CALL_STREAM_EXISTS",CALL_STREAM_NOT_FOUND:"CALL_STREAM_NOT_FOUND",CALL_MEDIA_STREAM_ID_EXISTS:"CALL_MEDIA_STREAM_ID_EXISTS",CALL_STREAM_NOT_OWNED:"CALL_STREAM_NOT_OWNED",CALL_LEAVE_NOT_ALLOWED:"CALL_LEAVE_NOT_ALLOWED",CALL_RECORDING_ALREADY_ACTIVE:"CALL_RECORDING_ALREADY_ACTIVE",CALL_NOT_RECORDING:"CALL_NOT_RECORDING",CALL_DISABLED:"CALL_DISABLED",INVALID_BUILD_TYPE:"INVALID_BUILD_TYPE",DISPATCH_ERROR:"DISPATCH_ERROR",INVALID_TARGET_DEVICE:"INVALID_TARGET_DEVICE"};class E extends Error{constructor(_,L,T=E){super(_?`${L}: ${_}`:L),this.code=L,this.isContractError=!0,this.abi=null,this.roomKey=null,Error.captureStackTrace&&Error.captureStackTrace(this,T)}static isContractError(_){return!!_.isContractError||"KEET_CONTRACT_ABORT"===_.code}static CORRUPT(L=""){return new E(L,_.CORRUPT,E.CORRUPT)}static ABORT(L=""){return new E(L,_.ABORT,E.ABORT)}static BUNDLE_NOT_AVAILABLE(L,T=null){const A=new E(T?`ABI ${L}: ${T.message}`:"ABI "+L,_.BUNDLE_NOT_AVAILABLE,E.BUNDLE_NOT_AVAILABLE);return A.abi=L,A.cause=T,A}static ADMINS_ONLY(L=""){return new E(L,_.ADMINS_ONLY,E.ADMINS_ONLY)}static MODERATORS_ONLY(L=""){return new E(L,_.MODERATORS_ONLY,E.MODERATORS_ONLY)}static SELF_ONLY(L=""){return new E(L,_.SELF_ONLY,E.SELF_ONLY)}static MODERATORS_OR_SELF_ONLY(L=""){return new E(L,_.MODERATORS_OR_SELF_ONLY,E.MODERATORS_OR_SELF_ONLY)}static INVALID_ROOM_TYPE(L=""){return new E(L,_.INVALID_ROOM_TYPE,E.INVALID_ROOM_TYPE)}static WRITER_IS_MUTED(L=""){return new E(L,_.WRITER_IS_MUTED,E.WRITER_IS_MUTED)}static PARENT_MSG_INVALID(L=""){return new E(L,_.PARENT_MSG_INVALID,E.PARENT_MSG_INVALID)}static REPLYTO_MSG_INVALID(L=""){return new E(L,_.REPLYTO_MSG_INVALID,E.REPLYTO_MSG_INVALID)}static TARGET_MSG_INVALID(L=""){return new E(L,_.TARGET_MSG_INVALID,E.TARGET_MSG_INVALID)}static TARGET_MSG_IS_DELETED(L=""){return new E(L,_.TARGET_MSG_IS_DELETED,E.TARGET_MSG_IS_DELETED)}static TARGET_MSG_IS_OWN(L=""){return new E(L,_.TARGET_MSG_IS_OWN,E.TARGET_MSG_IS_OWN)}static CHAT_LABEL_EXISTS(L=""){return new E(L,_.CHAT_LABEL_EXISTS,E.CHAT_LABEL_EXISTS)}static CHAT_LABEL_NOT_FOUND(L=""){return new E(L,_.CHAT_LABEL_NOT_FOUND,E.CHAT_LABEL_NOT_FOUND)}static CHAT_FLAG_LIMIT_EXCEEDED(L=""){return new E(L,_.CHAT_FLAG_LIMIT_EXCEEDED,E.CHAT_FLAG_LIMIT_EXCEEDED)}static FILE_REFERENCE_INVALID(L=""){return new E(L,_.FILE_REFERENCE_INVALID,E.FILE_REFERENCE_INVALID)}static FILE_RECORD_INVALID(L=""){return new E(L,_.FILE_RECORD_INVALID,E.FILE_RECORD_INVALID)}static INLINED_FILESIZE_TOO_LARGE(L=""){return new E(L,_.INLINED_FILESIZE_TOO_LARGE,E.INLINED_FILESIZE_TOO_LARGE)}static FILE_ATTACHMENTS_DISABLED(L=""){return new E(L,_.FILE_ATTACHMENTS_DISABLED,E.FILE_ATTACHMENTS_DISABLED)}static LINKS_DISABLED(L=""){return new E(L,_.LINKS_DISABLED,E.LINKS_DISABLED)}static INACTIVE_MEMBER(L=""){return new E(L,_.INACTIVE_MEMBER,E.INACTIVE_MEMBER)}static MUTED_MEMBER(L=""){return new E(L,_.MUTED_MEMBER,E.MUTED_MEMBER)}static TARGET_MEMBER_NOT_FOUND(L=""){return new E(L,_.TARGET_MEMBER_NOT_FOUND,E.TARGET_MEMBER_NOT_FOUND)}static INVALID_MEMBER_STATUS(L=""){return new E(L,_.INVALID_MEMBER_STATUS,E.INVALID_MEMBER_STATUS)}static CONTACT_NOT_FOUND(L=""){return new E(L,_.CONTACT_NOT_FOUND,E.CONTACT_NOT_FOUND)}static NO_DUPLICATE_CALL_EVENTS(L=""){return new E(L,_.NO_DUPLICATE_CALL_EVENTS,E.NO_DUPLICATE_CALL_EVENTS)}static GENESIS_NOT_FIRST(L=""){return new E(L,_.GENESIS_NOT_FIRST,E.GENESIS_NOT_FIRST)}static INVALID_SYSTEM_SETTING(L=""){return new E(L,_.INVALID_SYSTEM_SETTING,E.INVALID_SYSTEM_SETTING)}static ACTIVE_CALL_EXISTS(L=""){return new E(L,_.ACTIVE_CALL_EXISTS,E.ACTIVE_CALL_EXISTS)}static CALL_KEY_EXISTS(L=""){return new E(L,_.CALL_KEY_EXISTS,E.CALL_KEY_EXISTS)}static CALL_NOT_FOUND(L=""){return new E(L,_.CALL_NOT_FOUND,E.CALL_NOT_FOUND)}static CALL_ENDED(L=""){return new E(L,_.CALL_ENDED,E.CALL_ENDED)}static CALL_DEVICE_EXISTS(L=""){return new E(L,_.CALL_DEVICE_EXISTS,E.CALL_DEVICE_EXISTS)}static CALL_DEVICE_NOT_FOUND(L=""){return new E(L,_.CALL_DEVICE_NOT_FOUND,E.CALL_DEVICE_NOT_FOUND)}static CALL_MEMBER_NOT_FOUND(L=""){return new E(L,_.CALL_MEMBER_NOT_FOUND,E.CALL_MEMBER_NOT_FOUND)}static CALL_STREAM_EXISTS(L=""){return new E(L,_.CALL_STREAM_EXISTS,E.CALL_STREAM_EXISTS)}static CALL_STREAM_NOT_FOUND(L=""){return new E(L,_.CALL_STREAM_NOT_FOUND,E.CALL_STREAM_NOT_FOUND)}static CALL_MEDIA_STREAM_ID_EXISTS(L=""){return new E(L,_.CALL_MEDIA_STREAM_ID_EXISTS,E.CALL_MEDIA_STREAM_ID_EXISTS)}static CALL_STREAM_NOT_OWNED(L=""){return new E(L,_.CALL_STREAM_NOT_OWNED,E.CALL_STREAM_NOT_OWNED)}static CALL_LEAVE_NOT_ALLOWED(L=""){return new E(L,_.CALL_LEAVE_NOT_ALLOWED,E.CALL_LEAVE_NOT_ALLOWED)}static CALL_RECORDING_ALREADY_ACTIVE(L=""){return new E(L,_.CALL_RECORDING_ALREADY_ACTIVE,E.CALL_RECORDING_ALREADY_ACTIVE)}static CALL_NOT_RECORDING(L=""){return new E(L,_.CALL_NOT_RECORDING,E.CALL_NOT_RECORDING)}static CALL_DISABLED(L=""){return new E(L,_.CALL_DISABLED,E.CALL_DISABLED)}static INVALID_BUILD_TYPE(L=""){return new E(L,_.INVALID_BUILD_TYPE,E.INVALID_BUILD_TYPE)}static DISPATCH_ERROR(L=""){return new E(L,_.DISPATCH_ERROR,E.DISPATCH_ERROR)}static INVALID_TARGET_DEVICE(L=""){return new E(L,_.INVALID_TARGET_DEVICE,E.INVALID_TARGET_DEVICE)}}module.exports={CONTRACT_ERRORS:_,KeetContractError:E};
@holepunchto/keet-core/lib/core/contract/hooks/index.js +1 -0
……@@ -0,0 +1 @@
1const t=require("./track-activity.js");module.exports={trackActivity:t};
@holepunchto/keet-core/lib/core/contract/hooks/track-activity.js +1 -0
……@@ -0,0 +1 @@
1module.exports=function(e){return async function(r,t){const{db:i,hostcalls:s}=t,n=await e(r,t);if(!(n&&n.writer&&n.writerMember&&n.writerMember.status.isAdmin))return;if(n.writer.version<3)return;const c={deviceKey:n.writer.key,deviceLength:n.writer.seq+1,memberKey:n.writerMember.key,clock:s.clock,status:n.writerMember.status};await i.insert("@keet/admin-last-seen",c)}};
@holepunchto/keet-core/lib/core/contract/identity/private.js +1 -1
……@@ -1 +1 @@
1const e=require("b4a"),t=require("compact-encoding"),{ProofEncoding:i}=require("keet-identity-key/lib/encoding"),{contract:{hyperschema:{encode:a}}}=require("../../../../schema/spec"),{verifyAttestation:s,verifyDeviceResponse:r,decryptContactRequest:o,generateMailboxKeyPair:n,generateRoomCapabilities:c,verifyIdentityProofs:d}=require("../../invitations"),l=require("../registration"),{KeetContractError:y}=require("../errors"),{isMemberActive:u,getMemberForDeviceKey:v}=require("../query"),{profileRoomStats:p,profileContactStats:k,profileContactRequestStats:m}=require("../stats/profile"),{isValidBuildType:w}=require("../helpers"),{updateAvatar:f}=require("../avatars"),b=["isActive","isFullyMuted","isMentionsOnlyMuted","isFavorite","isUnread"],g=["isBlocked","isActive"],K=["isPending","isAccepted","isRejected","isDiscarded","isSeen"],A={IsPending:1,IsAccepted:2,IsRejected:3,IsDiscarded:4,IsSeen:5};async function h({sharedRooms:e,blockedContacts:t},{db:i,writer:a}){const[s,r]=await Promise.all([v(i,a.key),i.get("@keet-private-id/counters")]);if(!u(s))throw y.ABORT();for(let t=0;t<e.length;t++){const{roomKey:a,initiator:s,fastForwardTo:r,encryptionKey:o,seed:n}=e[t],d={roomKey:a,encryptionKey:o,mailbox:c(a,n).mailboxKeyPair.publicKey,clock:t+1,status:{isActive:!0,isFullyMuted:!1,isMentionsOnlyMuted:!1},initiator:s,fastForwardTo:r,identitySwap:null};await i.insert("@keet-private-id/rooms",d)}for(let e=0;e<t.length;e++){const a=r?r.contacts+1:0,s={memberKey:t[e],clock:a,status:{isBlocked:!0},mailbox:null,roomKey:null};await i.insert("@keet-private-id/contacts",s)}}async function R({deviceKey:a,deviceProof:s,writerProof:r},{db:o,writer:n}){const[c,l]=await Promise.all([v(o,n.key),o.get("@keet-private-id/device-identities",{deviceKey:a})]);if(!u(c))throw y.ABORT();if(!l)throw y.ABORT();const p=t.decode(i,l.deviceProof),k=t.decode(i,s);if(!e.equals(p.identity,k.identity))throw y.ABORT();if(k.chain.length>=p.chain.length)throw y.ABORT();const m=p.chain[p.chain.length-1].publicKey,w={...l.privateProfileIdentity,proof:r},f={publicKey:p.identity,writerKey:l.deviceKey,devicePublicKey:m};if(!d(f,{deviceProof:s,privateProfileIdentity:w}))throw y.ABORT();await o.insert("@keet-private-id/device-identities",{deviceKey:l.deviceKey,privateProfileIdentity:w,deviceProof:s})}async function T({identity:t},{db:i,writer:a}){const[s,r]=await Promise.all([v(i,a.key),i.get("@keet-private-id/identity")]);if(!u(s)||!r||!e.equals(t.publicKey,r.publicKey))throw y.ABORT();t.discoveryCoreKey&&(r.discoveryCoreKey=t.discoveryCoreKey),await i.insert("@keet-private-id/identity",r)}async function O({key:e,settings:t},{db:i,writer:a}){const[s,r]=await Promise.all([v(i,a.key),i.get("@keet-private-id/settings")]);if(!u(s))throw y.ABORT();const o={...r,[e]:t[e]};await i.insert("@keet-private-id/settings",o)}async function B({invitation:e},{db:t,writer:i}){const[a,s]=await Promise.all([v(t,i.key),t.get("@keet/system-digest")]);if(!u(a))throw y.ABORT();const r=s.settings.buildType,o=e.buildType;if(!w(r,o))throw y.INVALID_BUILD_TYPE();await t.insert("@keet-private-id/pending-invitations",e)}async function P({id:e},{db:t,writer:i}){const a=await v(t,i.key);if(!u(a))throw y.ABORT();await t.delete("@keet-private-id/pending-invitations",{id:e})}async function I({blindResponse:t},{db:i,writer:a,hostcalls:s}){const o=await i.get("@keet/room-capabilities");if(!o)throw y.ABORT();let c=null;try{const e=n(s.key,o.seed);c=r(e,t)}catch(e){throw y.ABORT()}if(!c)throw y.ABORT();const{id:d,response:l}=c,{roomKeys:u}=l;if(!u.key||!u.encryptionKey)throw y.ABORT();const[v,k,m,w]=await Promise.all([i.get("@keet-private-id/pending-invitations",{id:d}),i.get("@keet-private-id/rooms",{roomKey:u.key}),i.get("@keet-private-id/counters"),i.get("@keet/system-digest")]);if(!v)throw y.ABORT();const f=m?m.rooms+1:0,b=k;let g=k;if(g?(!g.status.isActive||w.abi.version>=12)&&(g.clock=f,g.status.isActive=!0,g.status.isReadOnly=!1):g={clock:f,roomKey:u.key,encryptionKey:u.encryptionKey,fastForwardTo:u.fastForwardTo,status:{isActive:!0,isReadOnly:!1},initiator:v.initiator,mailbox:v.mailbox,identitySwapV2:v.identity},await i.insert("@keet-private-id/rooms",g),await p(i,g,b),w.abi.version<11)await i.delete("@keet-private-id/pending-invitations",{id:d});else for await(const t of i.find("@keet-private-id/pending-invitations"))e.equals(t.mailbox,g.mailbox)&&await i.delete("@keet-private-id/pending-invitations",t);await s.ackWriter(a.key)}async function q({header:e,...t},{db:i,writer:a}){const[s,r,o,n,c]=await Promise.all([v(i,a.key),i.get("@keet-private-id/rooms",{roomKey:t.roomKey}),i.get("@keet-private-id/stats"),i.get("@keet-private-id/counters"),i.get("@keet/system-digest")]);if(!c||!u(s))throw y.ABORT();const d=r;let l=0;c.abi.version<10?r?l=r.clock:o&&(l=o.rooms+1):n&&(l=n.rooms+1);let k=r?.status.isReadOnly;!k&&t.isReadOnly&&(k=!0);const m={...t,clock:l,status:{isActive:!0,isReadOnly:k},contact:t.dm};await i.insert("@keet-private-id/rooms",m),await p(i,m,d)}async function x({roomKey:e},{db:t,writer:i}){const a=await v(t,i.key);if(u(a))return t.delete("@keet-private-id/rooms",{roomKey:e})}async function M({header:t,roomKey:i,key:a,status:s},{db:r,writer:o}){const[n,c,d,l]=await Promise.all([v(r,o.key),r.get("@keet-private-id/rooms",{roomKey:i}),r.get("@keet-private-id/counters"),r.get("@keet/system-digest")]);if(!u(n)||!c)throw y.ABORT();if(!function(e){return e>=1&&e<=b.length}(a))throw y.ABORT();const k=c,m=function(e){return b[e-1]}(a),w=d.rooms+1;if(c.status={...c.status,[m]:s[m]},c.clock=w,!c.status.isActive&&l.abi.version>=12)for await(const t of r.find("@keet-private-id/pending-invitations"))e.equals(t.mailbox,c.mailbox)&&await r.delete("@keet-private-id/pending-invitations",t);await r.insert("@keet-private-id/rooms",c),await p(r,c,k)}async function C({contact:{memberKey:e,mailbox:t,contactInfo:i,roomKey:a,status:s,alias:r}},{db:o,blobs:n,writer:c}){const[d,l,p]=await Promise.all([v(o,c.key),o.get("@keet-private-id/contacts",{memberKey:e}),o.get("@keet-private-id/counters")]);if(!u(d))throw y.INACTIVE_MEMBER();const m=l,w=p?p.contacts+1:0;i?.profile.avatar&&(i.profile.avatar=await f(n,null,i.profile.avatar));let b=l;b?(b.mailbox=t,b.contactInfo=i,b.status=s,b.clock=w):b={memberKey:e,mailbox:t,contactInfo:i,status:s,clock:w},r&&(b.alias=r),s.isActive||(b.alias=null),await o.insert("@keet-private-id/contacts",b),await k(o,b,m)}async function S({memberKey:e,key:t,status:i},{db:a,writer:s}){const[r,o,n]=await Promise.all([v(a,s.key),a.get("@keet-private-id/contacts",{memberKey:e}),a.get("@keet-private-id/counters")]);if(!u(r)||!o)throw y.ABORT();if(!function(e){return e>=1&&e<=g.length}(t))throw y.ABORT();const c=o,d=function(e){return g[e-1]}(t);o.status={...o.status,[d]:i[d]},o.clock=n?n.contacts+1:0,i.isActive||(o.alias=null),await a.insert("@keet-private-id/contacts",o),await k(a,o,c)}async function F({memberKey:e,alias:t},{db:i,writer:a}){const[s,r,o]=await Promise.all([v(i,a.key),i.get("@keet-private-id/contacts",{memberKey:e}),i.get("@keet-private-id/counters")]);if(!u(s))throw y.INACTIVE_MEMBER();if(!r||!r.status.isActive)throw y.CONTACT_NOT_FOUND();r.alias=t,r.clock=o?o.contacts+1:0,await i.insert("@keet-private-id/contacts",r),await k(i,r)}async function D({memberKey:e},{db:t,writer:i}){const[a,s]=await Promise.all([v(t,i.key),t.get("@keet-private-id/contacts",{memberKey:e})]);if(!u(a)||!s)throw y.ABORT;await t.delete("@keet-private-id/contacts",s)}async function E({blindRequest:e,header:t},{db:i,blobs:r,hostcalls:c,writer:d}){const l=await i.get("@keet/room-capabilities");if(!l)throw y.ABORT();let u=null;try{const t=n(c.key,l.seed);u=o(t,e)}catch(e){throw y.ABORT()}if(!u)throw y.ABORT();const{body:v,attestation:p}=u,{sender:k,keys:w,mailbox:b,message:g}=v,[K,A,h]=await Promise.all([i.get("@keet-private-id/contacts",{memberKey:k.attestation.memberKey}),i.get("@keet-private-id/stats"),i.get("@keet/system-digest")]);if(K&&K.status.isBlocked)throw y.ABORT();if(K&&K.roomKey&&h.abi.version<12)throw y.ABORT();const R=a("@keet-private-id/contact-request-body",v),T=a("@keet/member-profile",k.profile);if(!s(p,R))throw y.ABORT();if(!s(k.attestation,T))throw y.ABORT();let O=!0;const B=t.timestamp,P=i.find("@keet-private-id/pending-contact-requests-by-member",{gte:{memberKey:k.attestation.memberKey},lte:{memberKey:k.attestation.memberKey}});for await(const e of P)e.sentAt>B?O=!1:(e.status.isPending=!1,e.status.isDiscarded=!0,await i.insert("@keet-private-id/contact-requests-v2",e));if(!O)return;const I=k.profile.avatar?{...k.profile,avatar:await f(r,null,k.profile.avatar)}:k.profile,q=A?.contactRequests||0,x={memberKey:k.attestation.memberKey,sender:k.profile,contactInfo:{profile:I,attestation:k.attestation},status:{isPending:!0},clock:q,keys:w,mailbox:b,message:g,sentAt:B};await i.insert("@keet-private-id/contact-requests-v2",x),await m(i,x,null),await c.ackWriter(d.key)}async function N({memberKey:e,roomKey:t,key:i,status:a},{db:s,writer:r}){if(!t)throw y.ABORT();const[o,n,c]=await Promise.all([v(s,r.key),s.get("@keet-private-id/contact-requests-v2",{memberKey:e,keys:{key:t}}),s.get("@keet-private-id/counters")]);if(!u(o)||!n)throw y.ABORT();if(!function(e){return e>=1&&e<=K.length}(i))throw y.ABORT();const d=function(e){return K[e-1]}(i),l=n.sender,m=!n.status.isAccepted&&i===A.IsAccepted,w=i===A.IsSeen;if(!w&&n.status.isAccepted)throw y.ABORT();const f={isPending:!1,isAccepted:!1,isRejected:!1,isDiscarded:!1,isSeen:n.status.isSeen},b=w?n.status:f;if(n.status={...b,[d]:a[d]},(n.status.isAccepted||n.status.isRejected||n.status.isDiscarded)&&(n.status.isPending=!1),await s.insert("@keet-private-id/contact-requests-v2",n),!m)return;const g=(c?.rooms||0)+1,h=(c?.contacts||0)+1,R={clock:g,roomKey:n.keys.key,encryptionKey:n.keys.encryptionKey,mailbox:n.mailbox,status:{isActive:!0}},T={memberKey:n.memberKey,mailbox:l.mailbox,contactInfo:n.contactInfo,clock:h,status:{isBlocked:!1,isActive:!0}};await s.insert("@keet-private-id/rooms",R),await p(s,R,null),await s.insert("@keet-private-id/contacts",T),await k(s,T,null)}async function _({memberKey:e},{db:t,writer:i}){}async function V({key:e},{db:t,writer:i}){const a=await v(t,i.key);if(!u(a))throw y.ABORT();await t.insert("@keet-private-id/unreads-v2",{deviceKey:i.key,key:e})}async function j({key:e},{db:t,writer:i}){const a=await v(t,i.key);if(!u(a))throw y.ABORT();await t.delete("@keet-private-id/unreads-v2",{deviceKey:i.key,key:e})}module.exports={[l]:function(e){e.add("@keet-private-id/run-v3-migration",h),e.add("@keet-private-id/shorten-device-attestation",R),e.add("@keet-private-id/update-identity",T),e.add("@keet-private-id/update-settings",O),e.add("@keet-private-id/add-room",q),e.add("@keet-private-id/remove-room",x),e.add("@keet-private-id/update-room-status",M),e.add("@keet-private-id/add-pending-invitation",B),e.add("@keet-private-id/remove-pending-invitation",P),e.add("@keet-private-id/resolve-pending-invitation",I),e.add("@keet-private-id/add-contact",C),e.add("@keet-private-id/update-contact-status",S),e.add("@keet-private-id/update-contact-alias",F),e.add("@keet-private-id/remove-contact",D),e.add("@keet-private-id/add-contact-request",E),e.add("@keet-private-id/update-contact-request-status",N),e.add("@keet-private-id/activate-contact-room",_),e.add("@keet-private-id/add-unreads-key",V),e.add("@keet-private-id/remove-unreads-key",j)},RoomStatus:{IsActive:1,IsFullyMuted:2,IsMentionsOnlyMuted:3,IsFavorite:4,IsUnread:5},ContactStatus:{IsBlocked:1,IsActive:2},ContactRequestStatus:A};
1const e=require("b4a"),t=require("compact-encoding"),{ProofEncoding:i}=require("keet-identity-key/lib/encoding"),{contract:{hyperschema:{encode:a}}}=require("../../../../schema/spec"),{verifyAttestation:o,verifyDeviceResponse:s,decryptContactRequest:r,generateMailboxKeyPair:n,generateRoomCapabilities:c,getWriterKey:d,getResponseCoreKey:l,verifyIdentityProofs:y}=require("../../invitations"),u=require("../registration"),{KeetContractError:v}=require("../errors"),{isMemberActive:k,getMemberForDeviceKey:p}=require("../query"),{profileRoomStats:m,profileContactStats:w,profileContactRequestStats:f}=require("../stats/profile"),{MIN_AUTOBEE_ABI:b}=require("../../../../schema/versions"),{isValidBuildType:g}=require("../helpers"),{updateAvatar:K}=require("../avatars"),A=["isActive","isFullyMuted","isMentionsOnlyMuted","isFavorite","isUnread","roomSnoozeTime"],h=["isBlocked","isActive"],R=["isPending","isAccepted","isRejected","isDiscarded","isSeen"],T={IsPending:1,IsAccepted:2,IsRejected:3,IsDiscarded:4,IsSeen:5};async function O({sharedRooms:e,blockedContacts:t},{db:i,writer:a}){const[o,s]=await Promise.all([p(i,a.key),i.get("@keet-private-id/counters")]);if(!k(o))throw v.ABORT();for(let t=0;t<e.length;t++){const{roomKey:a,initiator:o,fastForwardTo:s,bootFrom:r,encryptionKey:n,seed:d}=e[t],l={roomKey:a,encryptionKey:n,mailbox:c(a,d).mailboxKeyPair.publicKey,clock:t+1,activeClock:1,status:{isActive:!0,isFullyMuted:!1,isMentionsOnlyMuted:!1,snoozedUntil:0},initiator:o,bootFrom:r||(s?{key:s,length:0}:null),identitySwap:null};await i.insert("@keet-private-id/rooms",l),await m(i,l,null)}for(let e=0;e<t.length;e++){const a=s?s.contacts+1:0,o={memberKey:t[e],clock:a,status:{isBlocked:!0},mailbox:null,roomKey:null};await i.insert("@keet-private-id/contacts",o)}}async function B({deviceKey:a,deviceProof:o,writerProof:s},{db:r,writer:n}){const[c,d]=await Promise.all([p(r,n.key),r.get("@keet-private-id/device-identities",{deviceKey:a})]);if(!k(c))throw v.ABORT();if(!d)throw v.ABORT();const l=t.decode(i,d.deviceProof),u=t.decode(i,o);if(!e.equals(l.identity,u.identity))throw v.ABORT();if(u.chain.length>=l.chain.length)throw v.ABORT();const m=l.chain[l.chain.length-1].publicKey,w={...d.privateProfileIdentity,proof:s},f={publicKey:l.identity,writerKey:d.deviceKey,devicePublicKey:m};if(!y(f,{deviceProof:o,privateProfileIdentity:w}))throw v.ABORT();await r.insert("@keet-private-id/device-identities",{deviceKey:d.deviceKey,privateProfileIdentity:w,deviceProof:o})}async function q({identity:t},{db:i,writer:a}){const[o,s]=await Promise.all([p(i,a.key),i.get("@keet-private-id/identity")]);if(!k(o)||!s||!e.equals(t.publicKey,s.publicKey))throw v.ABORT();t.discoveryCoreKey&&(s.discoveryCoreKey=t.discoveryCoreKey),await i.insert("@keet-private-id/identity",s)}async function P({key:e,settings:t},{db:i,writer:a}){const[o,s]=await Promise.all([p(i,a.key),i.get("@keet-private-id/settings")]);if(!k(o))throw v.ABORT();const r={...s,[e]:t[e]};await i.insert("@keet-private-id/settings",r)}async function I({invitation:e},t){const{db:i,writer:a,hostcalls:o}=t,[s,r]=await Promise.all([p(i,a.key),i.get("@keet/system-digest")]);if(!k(s))throw v.ABORT();const n=r.settings.buildType,c=e.buildType;if(!g(n,c))throw v.INVALID_BUILD_TYPE();const d=await async function(e,t){const{db:i}=t,a=await i.get("@keet-private-id/pending-invitation-responses",{id:e.id});if(!a)return!1;if(await i.delete("@keet-private-id/pending-invitation-responses",a),!S(a.writerKey,e))return!1;const o=await M(a.blindResponse,t);return!!o&&(await D(e,o.response,t),!0)}(e,t);d||(e.link=await o.createAnchor(a.key,a.seq+1),await i.insert("@keet-private-id/pending-invitations",e))}async function C({id:e},{db:t,writer:i}){const a=await p(t,i.key);if(!k(a))throw v.ABORT();await t.delete("@keet-private-id/pending-invitations",{id:e}),await t.delete("@keet-private-id/pending-invitation-responses",{id:e})}async function x({blindResponse:e},t){const{db:i}=t,a=await M(e,t);if(!a)throw v.ABORT();const o=await i.get("@keet-private-id/pending-invitations",{id:a.id});if(!o)return async function(e,t,{db:i,writer:a,hostcalls:o}){if((await i.get("@keet/system-digest")).abi.version>=b)throw v.ABORT();await i.insert("@keet-private-id/pending-invitation-responses",{id:e,writerKey:a.key,blindResponse:t}),await o.ackWriter(a.key)}(a.id,e,t);await E(o,a,t)}async function F({blindResponse:e},t){const{db:i}=t,a=await M(e,t);if(!a)throw v.ABORT();const o=await i.get("@keet-private-id/pending-invitations",{id:a.id});if(!o)throw v.ABORT();await E(o,a,t)}async function M(e,{db:t,hostcalls:i}){const a=await t.get("@keet/room-capabilities");if(!a)return null;let o=null;try{const t=n(i.key,a.seed);o=s(t,e)}catch(e){return null}if(!o)return null;const{roomKeys:r}=o.response;return r.key&&r.encryptionKey?o:null}function S(t,i){const{publicKey:a}=i.responseKeyPair;return e.equals(t,l(a))||e.equals(t,d(a))}async function E(e,t,i){const{writer:a,hostcalls:o}=i;if(!S(a.key,e))throw v.ABORT();await D(e,t.response,i),await o.ackWriter(a.key)}async function D(t,i,{db:a}){const{roomKeys:o}=i,{id:s}=t,[r,n,c]=await Promise.all([a.get("@keet-private-id/rooms",{roomKey:o.key}),a.get("@keet-private-id/counters"),a.get("@keet/system-digest")]),d=n?n.rooms+1:0,l=r,y=!!r?.status.isActive;let u=r;if(u?(!u.status.isActive||c.abi.version>=12)&&(u.clock=d,u.status.isActive=!0,y||(u.activeClock=X(u),u.initiator=t.initiator),u.status.isReadOnly=!1):u={clock:d,roomKey:o.key,encryptionKey:o.encryptionKey,fastForwardTo:o.bootFrom?.key||o.fastForwardTo,bootFrom:o.bootFrom,activeClock:1,status:{isActive:!0,isReadOnly:!1},initiator:t.initiator,mailbox:t.mailbox,identitySwapV2:t.identity},await a.insert("@keet-private-id/rooms",u),await m(a,u,l),c.abi.version<11)await a.delete("@keet-private-id/pending-invitations",{id:s});else for await(const t of a.find("@keet-private-id/pending-invitations"))e.equals(t.mailbox,u.mailbox)&&await a.delete("@keet-private-id/pending-invitations",t)}async function _({header:e,...t},{db:i,writer:a}){const[o,s,r,n,c]=await Promise.all([p(i,a.key),i.get("@keet-private-id/rooms",{roomKey:t.roomKey}),i.get("@keet-private-id/stats"),i.get("@keet-private-id/counters"),i.get("@keet/system-digest")]);if(!c||!k(o))throw v.ABORT();const d=s;let l=0;c.abi.version<10?s?l=s.clock:r&&(l=r.rooms+1):n&&(l=n.rooms+1);let y=s?.status.isReadOnly;!y&&t.isReadOnly&&(y=!0),t.bootFrom&&t.bootFrom.key&&(t.bootFrom=t.bootFrom,t.fastForwardTo=void 0);const u={...t,clock:l,activeClock:s?.status.isActive?s.activeClock:X(s),status:{isActive:!0,isReadOnly:y},contact:t.dm};await i.insert("@keet-private-id/rooms",u),await m(i,u,d)}async function N({roomKey:e},{db:t,writer:i}){const a=await p(t,i.key);if(k(a))return t.delete("@keet-private-id/rooms",{roomKey:e})}async function U({header:t,roomKey:i,key:a,status:o},{db:s,writer:r}){const[n,c,d,l]=await Promise.all([p(s,r.key),s.get("@keet-private-id/rooms",{roomKey:i}),s.get("@keet-private-id/counters"),s.get("@keet/system-digest")]);if(!k(n)||!c)throw v.ABORT();if(!function(e){return e>=1&&e<=A.length}(a))throw v.ABORT();const y=c,u=c.status.isActive,w=function(e){return A[e-1]}(a),f=d.rooms+1;if(c.status={...c.status,[w]:o[w]},c.status.isActive!==u&&(c.activeClock=X(c)),c.clock=f,!c.status.isActive&&l.abi.version>=12)for await(const t of s.find("@keet-private-id/pending-invitations"))e.equals(t.mailbox,c.mailbox)&&await s.delete("@keet-private-id/pending-invitations",t);await s.insert("@keet-private-id/rooms",c),await m(s,c,y)}async function V({contact:{memberKey:e,mailbox:t,contactInfo:i,roomKey:a,status:o,alias:s}},{db:r,writer:n}){const[c,d,l]=await Promise.all([p(r,n.key),r.get("@keet-private-id/contacts",{memberKey:e}),r.get("@keet-private-id/counters")]);if(!k(c))throw v.INACTIVE_MEMBER();const y=d,u=l?l.contacts+1:0;i?.profile.avatar&&(i.profile.avatar=await K(r,null,i.profile.avatar));let m=d;m?(m.mailbox=t,m.contactInfo=i,m.status=o,m.clock=u):m={memberKey:e,mailbox:t,contactInfo:i,status:o,clock:u},s&&(m.alias=s),o.isActive||(m.alias=null),await r.insert("@keet-private-id/contacts",m),await w(r,m,y)}async function j({memberKey:e,key:t,status:i},{db:a,writer:o}){const[s,r,n]=await Promise.all([p(a,o.key),a.get("@keet-private-id/contacts",{memberKey:e}),a.get("@keet-private-id/counters")]);if(!k(s)||!r)throw v.ABORT();if(!function(e){return e>=1&&e<=h.length}(t))throw v.ABORT();const c=r,d=function(e){return h[e-1]}(t);r.status={...r.status,[d]:i[d]},r.clock=n?n.contacts+1:0,i.isActive||(r.alias=null),await a.insert("@keet-private-id/contacts",r),await w(a,r,c)}async function W({memberKey:e,alias:t},{db:i,writer:a}){const[o,s,r]=await Promise.all([p(i,a.key),i.get("@keet-private-id/contacts",{memberKey:e}),i.get("@keet-private-id/counters")]);if(!k(o))throw v.INACTIVE_MEMBER();if(!s||!s.status.isActive)throw v.CONTACT_NOT_FOUND();s.alias=t,s.clock=r?r.contacts+1:0,await i.insert("@keet-private-id/contacts",s),await w(i,s)}async function z({memberKey:e},{db:t,writer:i}){const[a,o]=await Promise.all([p(t,i.key),t.get("@keet-private-id/contacts",{memberKey:e})]);if(!k(a)||!o)throw v.ABORT();await t.delete("@keet-private-id/contacts",o)}async function L({blindRequest:t,header:i},{db:s,hostcalls:c,writer:d}){const l=await s.get("@keet/room-capabilities");if(!l)throw v.ABORT();let y=null;try{const e=n(c.key,l.seed);y=r(e,t)}catch(e){throw v.ABORT()}if(!y)throw v.ABORT();const{body:u,attestation:k}=y,{sender:p,keys:m,mailbox:w,message:b}=u,[g,A,h]=await Promise.all([s.get("@keet-private-id/contacts",{memberKey:p.attestation.memberKey}),s.get("@keet-private-id/stats"),s.get("@keet/system-digest")]);if(g&&g.status.isBlocked)throw v.ABORT();if(g&&g.roomKey&&h.abi.version<12)throw v.ABORT();const R=a("@keet-private-id/contact-request-body",u),T=a("@keet/member-profile",p.profile);if(!o(k,R))throw v.ABORT();if(!o(p.attestation,T))throw v.ABORT();if(!e.equals(k.memberKey,p.attestation.memberKey))throw v.ABORT();let O=!0;const B=i.timestamp,q=s.find("@keet-private-id/pending-contact-requests-by-member",{gte:{memberKey:p.attestation.memberKey},lte:{memberKey:p.attestation.memberKey}});for await(const e of q)e.sentAt>B?O=!1:(e.status.isPending=!1,e.status.isDiscarded=!0,await s.insert("@keet-private-id/contact-requests-v2",e));if(!O)return;const P=p.profile.avatar?{...p.profile,avatar:await K(s,null,p.profile.avatar)}:p.profile,I=A?.contactRequests||0,C={memberKey:p.attestation.memberKey,sender:p.profile,contactInfo:{profile:P,attestation:p.attestation},status:{isPending:!0},clock:I,keys:m,mailbox:w,message:b,sentAt:B};await s.insert("@keet-private-id/contact-requests-v2",C),await f(s,C,null),await c.ackWriter(d.key)}async function Y({memberKey:e,roomKey:t,key:i,status:a},{db:o,writer:s}){const[r,n,c]=await Promise.all([p(o,s.key),o.get("@keet-private-id/counters"),t?o.get("@keet-private-id/contact-requests-v2",{memberKey:e,keys:{key:t}}):G(o,e)]);if(!k(r)||!c)throw v.ABORT();if(!function(e){return e>=1&&e<=R.length}(i))throw v.ABORT();const d=function(e){return R[e-1]}(i),l=c.sender,y=!c.status.isAccepted&&i===T.IsAccepted,u=i===T.IsSeen;if(!u&&c.status.isAccepted)throw v.ABORT();const f={isPending:!1,isAccepted:!1,isRejected:!1,isDiscarded:!1,isSeen:c.status.isSeen},b=u?c.status:f;if(c.status={...b,[d]:a[d]},(c.status.isAccepted||c.status.isRejected||c.status.isDiscarded)&&(c.status.isPending=!1),await o.insert("@keet-private-id/contact-requests-v2",c),!y)return;const g=await o.get("@keet-private-id/rooms",{roomKey:c.keys.key}),K=g?.status.isActive?g.activeClock:X(g),A=(n?.rooms||0)+1,h=(n?.contacts||0)+1,O={clock:A,activeClock:K,roomKey:c.keys.key,encryptionKey:c.keys.encryptionKey,mailbox:c.mailbox,status:{isActive:!0}},B={memberKey:c.memberKey,mailbox:l.mailbox,contactInfo:c.contactInfo,clock:h,status:{isBlocked:!1,isActive:!0}};await o.insert("@keet-private-id/rooms",O),await m(o,O,null),await o.insert("@keet-private-id/contacts",B),await w(o,B,null)}async function G(e,t){const i=await e.get("@keet/system-digest");return!i||i.abi.version>=b?null:e.findOne("@keet-private-id/pending-contact-requests-by-member",{gte:{memberKey:t},lte:{memberKey:t}})}async function H({memberKey:e},{db:t,writer:i}){}async function J({key:e},{db:t,writer:i}){const a=await p(t,i.key);if(!k(a))throw v.ABORT();await t.insert("@keet-private-id/unreads-v2",{deviceKey:i.key,key:e})}async function Q({key:e},{db:t,writer:i}){const a=await p(t,i.key);if(!k(a))throw v.ABORT();await t.delete("@keet-private-id/unreads-v2",{deviceKey:i.key,key:e})}function X(e){return(e?.activeClock||0)+1}module.exports={[u]:function(e){e.add("@keet-private-id/run-v3-migration",O),e.add("@keet-private-id/shorten-device-attestation",B),e.add("@keet-private-id/update-identity",q),e.add("@keet-private-id/update-settings",P),e.add("@keet-private-id/add-room",_),e.add("@keet-private-id/add-room-v2",_),e.add("@keet-private-id/remove-room",N),e.add("@keet-private-id/update-room-status",U),e.add("@keet-private-id/add-pending-invitation",I),e.add("@keet-private-id/remove-pending-invitation",C),e.add("@keet-private-id/resolve-pending-invitation",x),e.add("@keet-private-id/resolve-pending-invitation-v2",F),e.add("@keet-private-id/add-contact",V),e.add("@keet-private-id/update-contact-status",j),e.add("@keet-private-id/update-contact-alias",W),e.add("@keet-private-id/remove-contact",z),e.add("@keet-private-id/add-contact-request",L),e.add("@keet-private-id/update-contact-request-status",Y),e.add("@keet-private-id/activate-contact-room",H),e.add("@keet-private-id/add-unreads-key",J),e.add("@keet-private-id/remove-unreads-key",Q)},RoomStatus:{IsActive:1,IsFullyMuted:2,IsMentionsOnlyMuted:3,IsFavorite:4,IsUnread:5,RoomSnoozeTime:6},ContactStatus:{IsBlocked:1,IsActive:2},ContactRequestStatus:T};
@holepunchto/keet-core/lib/core/contract/index.js +1 -1
……@@ -1 +1 @@
1const e=require("path"),r=require("rocksdb-blobs"),t=require("hyperblobs"),o=require("hyperdb"),s=require("../../../schema/spec"),{contract:{hyperdispatch:{Router:i,encode:c},hyperdb:n}}=s,a=require("./identity"),b=require("./internal"),h=require("./members"),u=require("./members/labels"),l=require("./chat"),d=require("./reactions"),p=require("./config"),q=require("./labels"),m=require("./calls"),w=require("./testing"),E=require("./registration");class v{constructor(e,r,{abi:t,bootstrap:o,router:s,hostcalls:i,writer:c,genesis:n,dryRun:a,trace:b,fork:h}){if(this.db=e,this.blobs=r,this.writer=c,this.genesis=!!n,this.bootstrap=o,this.router=s,this.hostcalls=i,this.dryRun=a,this.trace=b,this.fork=h,this.abi=t,!i.addWriter)throw new Error("An addWriter hostcall must be provided as context");if(!i.removeWriter)throw new Error("A removeWriter hostcall must be provided as context");if(!i.removeable)throw new Error("A removeable hostcall must be provided as context");if(!i.interrupt)throw new Error("An interrupt hostcall must be provided as context");if(!i.createAnchor)throw new Error("A createAnchor hostcall must be provided as context")}}class A{static OpContext=v;static bee(e,r={}){const s=e.get(A.DB_VIEW_NAME),i=e.get(A.BLOB_VIEW_NAME),c=o.bee(s,n,r.hyperdb);return{blobs:new t(i),db:c,cores:{db:s,blobs:i}}}static rocks(t,s={}){const i=e.join(t,"db"),c=e.join(t,"blobs"),a=o.rocks(i,n,s.hyperdb);return{blobs:new r(c),db:a}}static DB_VIEW_NAME="keet/v3/db";static BLOB_VIEW_NAME="keet/v3/blobs"}module.exports={KeetContract:A,createRouter:function(){const e=new i;return a[E](e),b[E](e),h[E](e),u[E](e),l[E](e),d[E](e),p[E](e),q[E](e),m[E](e),w[E](e),e},encodeOperation:c,spec:s};
1const e=require("path"),r=require("rocksdb-blobs"),t=require("hyperblobs"),o=require("hyperdb"),s=require("../../../schema/spec"),{contract:{hyperdispatch:{Router:i,encode:c},hyperdb:b}}=s,n=require("./identity"),a=require("./internal"),l=require("./members"),u=require("./members/labels"),d=require("./chat"),h=require("./reactions"),p=require("./config"),E=require("./labels"),q=require("./calls"),w=require("./testing"),m=require("./registration");class A{constructor(e,{abi:r,bootstrap:t,router:o,hostcalls:s,writer:i,genesis:c,dryRun:b,trace:n,fork:a}){if(this.db=e,this.writer=i,this.genesis=!!c,this.bootstrap=t,this.router=o,this.hostcalls=s,this.dryRun=b,this.trace=n,this.fork=a,this.abi=r,!s.addWriter)throw new Error("An addWriter hostcall must be provided as context");if(!s.removeWriter)throw new Error("A removeWriter hostcall must be provided as context");if(!s.removeable)throw new Error("A removeable hostcall must be provided as context");if(!s.interrupt)throw new Error("An interrupt hostcall must be provided as context");if(!s.createAnchor)throw new Error("A createAnchor hostcall must be provided as context")}}class v{static OpContext=A;static bee(e,r={}){const s=e.get(v.DB_VIEW_NAME),i=e.get(v.BLOB_VIEW_NAME),c=o.bee(s,b,r.hyperdb);return{blobs:new t(i),db:c,cores:{db:s,blobs:i}}}static bee2(e,r={}){return{blobs:null,db:o.bee2(e,b,r.hyperdb),cores:{db:e.core,blobs:e.core}}}static rocks(t,s={}){const i=e.join(t,"db"),c=e.join(t,"blobs"),n=o.rocks(i,b,s.hyperdb);return{blobs:new r(c),db:n}}static DB_VIEW_NAME="keet/v3/db";static DB_VIEW_NAME_AUTOBEE="view";static BLOB_VIEW_NAME="keet/v3/blobs"}module.exports={KeetContract:v,createRouter:function(){const e=new i;return n[m](e),a[m](e),l[m](e),u[m](e),d[m](e),h[m](e),p[m](e),E[m](e),q[m](e),w[m](e),e},encodeOperation:c,spec:s};
@holepunchto/keet-core/lib/core/contract/internal.js +1 -1
……@@ -1 +1 @@
1const e=require("b4a"),t=require("./registration"),{KeetContractError:i}=require("./errors"),{isMemberActive:s,getMemberForDeviceKey:a}=require("./query"),{addDevice:n,addMember:r}=require("./members"),{contract:{hyperschema:{getEnum:o}}}=require("../../../schema/spec"),d=o("@keet/room-type"),c=o("@keet/build-type"),m=["roomType","isExperimental","isJoiningDisabled","isAppendingDisabled","isCallingDisabled","isMembershipEventsDisabled","isAttachmentsDisabled","isLinksDisabled","isRoomInviteHidden"];async function l({header:t,digest:s,config:o,capabilities:c,identity:m,bootstrapDevice:l,initialMembers:p},u){const{genesis:y,db:g,writer:b}=u;if(!y)throw i.GENESIS_NOT_FIRST();if(await g.insert("@keet/threads",{id:0,count:0,parent:null,stats:{devices:{total:0,active:0},members:{total:0,active:0,pending:0},chat:{clock:0,pinned:0,threads:0,timestamp:0},files:{clock:0}}}),s.settings.roomType===d.Broadcast&&(s.settings.isCallingDisabled=!0),await g.insert("@keet/system-digest",s),c&&await g.insert("@keet/room-capabilities",c),m&&await g.insert("@keet-private-id/identity",m),o&&await g.insert("@keet/room-config",o),p)for(const i of p){const s=e.equals(i.attestation.memberKey,l.attestation.memberKey)?{isAdmin:!0,isModerator:!0}:{isAdmin:!1,isModerator:!0};await r(t,i.profile,i.attestation,s,u)}await n(t,b.key,l.profile,l.attestation,{isActive:!0,isIndexing:!0},u);const k=await a(g,b.key);if(!l||!k)throw i.ABORT()}async function p({version:e},{db:t,writer:n,abi:r,hostcalls:o}){const[d,c]=await Promise.all([a(t,n.key),t.get("@keet/system-digest")]);if(9!==e||s(d)&&d.status.isModerator){if(!s(d)||!d.status.isModerator)throw i.ABORT();c.abi.version>=e||(e>(c.settings.isExperimental?r.max:r.production)&&o.interrupt({unsupportedABI:e,digest:c}),c.abi.version,c.abi.version=e,await Promise.resolve(),await t.insert("@keet/system-digest",c))}}async function u({key:e,settings:t},{db:n,writer:r}){const[o,d]=await Promise.all([a(n,r.key),n.get("@keet/system-digest")]);if(!s(o))throw i.INACTIVE_MEMBER();if(!o.status.isModerator)throw i.MODERATORS_ONLY();if(0===e||e>m.length)throw i.INVALID_SYSTEM_SETTING();const c=d?.settings,l=m[e-1],p={...c,[l]:t[l]};await n.insert("@keet/system-digest",{...d,settings:p})}async function y({peer:e},{db:t,writer:i}){const n=await a(t,i.key);s(n)&&n.status.isModerator&&await t.insert("@keet/blind-peers",e)}async function g({key:e},{db:t,writer:i}){const n=await a(t,i.key);s(n)&&n.status.isModerator&&await t.delete("@keet/blind-peers",{key:e})}async function b({from:e,to:t,buildType:i},{db:n,writer:r}){const o=await a(n,r.key);s(o)&&o.status.isModerator&&(e<14&&t>=14&&(await async function(e){if(!await e.get("@keet-private-id/identity"))return;const t=[];for(const{memberKey:i,roomKey:s}of await e.find("@keet-private-id/contacts").toArray()){if(!s||!i)continue;const a=await e.get("@keet-private-id/rooms",{roomKey:s});a&&(a.contact=i,t.push(e.insert("@keet-private-id/rooms",a)))}await Promise.all(t)}(n),await async function(e){if(!await e.get("@keet-private-id/identity"))return;const t={isPending:!1,isAccepted:!1,isRejected:!1,isDiscarded:!1,isSeen:!1},i=[];for(const s of await e.find("@keet-private-id/contact-requests").toArray()){const{isSeen:a,isAccepted:n,isRejected:r,isDiscarded:o}=s.status;s.status.isAccepted&&(s.status={...t,isAccepted:n,isSeen:a}),s.status.isRejected&&(s.status={...t,isRejected:r,isSeen:a}),s.status.isDiscarded&&(s.status={...t,isDiscarded:o,isSeen:a}),i.push(e.insert("@keet-private-id/contact-requests-v2",s))}await Promise.all(i)}(n)),e<20&&t>=20&&await async function(e){const[t,i,s]=await Promise.all([e.get("@keet-private-id/identity"),e.get("@keet/threads",{id:0}),e.find("@keet/pinned-chat-messages").toArray()]);!t&&i&&(i.stats.chat.pinned=s.length,await e.insert("@keet/threads",i))}(n),e<24&&t>=24&&await async function(e){if((await e.get("@keet/system-digest")).settings.roomType===d.DirectMessage)for await(const t of e.find("@keet/members"))t.status.isModerator||(t.status.isModerator=!0,await e.insert("@keet/members",t))}(n),e<25&&t>=25&&await async function(e,t){const i=await e.get("@keet/system-digest");c[i.settings.buildType]||c[t]&&(i.settings.buildType=c[t],await e.insert("@keet/system-digest",i))}(n,i))}module.exports={[t]:function(e){e.add("@keet/genesis",l),e.add("@keet/upgrade",p),e.add("@keet/add-blind-peer",y),e.add("@keet/remove-blind-peer",g),e.add("@keet/update-system-settings",u),e.add("@keet/migrate-abi",b)},Settings:{RoomType:1,IsExperimental:2,IsJoiningDisabled:3,IsAppendingDisabled:4,IsCallingDisabled:5,IsMembershipEventsDisabled:6,IsAttachmentsDisabled:7,IsLinksDisabled:8,IsRoomInviteHidden:9}};
1const e=require("b4a"),t=require("./registration"),{KeetContractError:i}=require("./errors"),{isMemberActive:s,getMemberForDeviceKey:a}=require("./query"),{trackActivity:r}=require("./hooks"),{addDevice:n,addMember:o}=require("./members"),{contract:{hyperschema:{getEnum:d}}}=require("../../../schema/spec"),c=d("@keet/room-type"),m=d("@keet/build-type"),l=["roomType","isExperimental","isJoiningDisabled","isAppendingDisabled","isCallingDisabled","isMembershipEventsDisabled","isAttachmentsDisabled","isLinksDisabled","isRoomInviteHidden"];async function u({header:t,digest:s,config:r,capabilities:d,identity:m,bootstrapDevice:l,initialMembers:u},b){const{db:y,writer:g,hostcalls:w,dryRun:p}=b;if(!w.genesis&&!p)throw i.GENESIS_NOT_FIRST();if(await y.insert("@keet/threads",{id:0,count:0,parent:null,stats:{devices:{total:0,active:0},members:{total:0,active:0,pending:0},chat:{clock:0,pinned:0,threads:0,timestamp:0},files:{clock:0},calls:{streams:0}}}),s.settings.roomType===c.Broadcast&&(s.settings.isCallingDisabled=!0),await y.insert("@keet/system-digest",s),d&&await y.insert("@keet/room-capabilities",d),m&&await y.insert("@keet-private-id/identity",m),r&&await y.insert("@keet/room-config",r),u)for(const i of u){const s=e.equals(i.attestation.memberKey,l.attestation.memberKey)?{isAdmin:!0,isModerator:!0}:{isAdmin:!1,isModerator:!0};await o(t,i.profile,i.attestation,s,b)}await n(t,g.key,l.profile,l.attestation,{isActive:!0,isIndexing:!0,isGenesis:!0},b);const k=await a(y,g.key);if(!l||!k)throw i.ABORT()}async function b({version:e},{db:t,writer:r,abi:n,hostcalls:o}){const[d,c]=await Promise.all([a(t,r.key),t.get("@keet/system-digest")]);if(9!==e||s(d)&&d.status.isModerator){if(!s(d)||!d.status.isModerator)throw i.ABORT();c.abi.version>=e||(e>(c.settings.isExperimental?n.max:n.production)&&o.interrupt({unsupportedABI:e,digest:c}),c.abi.version,c.abi.version=e,await Promise.resolve(),await t.insert("@keet/system-digest",c))}}async function y({key:e,settings:t},{db:r,writer:n}){const[o,d]=await Promise.all([a(r,n.key),r.get("@keet/system-digest")]);if(!s(o))throw i.INACTIVE_MEMBER();if(!o.status.isModerator)throw i.MODERATORS_ONLY();if(0===e||e>l.length)throw i.INVALID_SYSTEM_SETTING();const c=d?.settings,m=l[e-1],u={...c,[m]:t[m]};await r.insert("@keet/system-digest",{...d,settings:u})}async function g({header:e,head:t,legacyViewHead:i,dbViewHead:r,blobsViewHead:n},{db:o,writer:d}){const[c,m]=await Promise.all([a(o,d.key),o.get("@keet/autobee-migration")]);if(s(c)&&c.status.isAdmin)return m||await o.insert("@keet/autobee-migration",{autobeeMigrationHead:t,legacyViewHead:i,dbViewHead:r,blobsViewHead:n,createdAt:e.timestamp}),{writer:d,writerMember:c}}async function w({peer:e},{db:t,writer:i}){const r=await a(t,i.key);s(r)&&r.status.isModerator&&await t.insert("@keet/blind-peers",e)}async function p({key:e},{db:t,writer:i}){const r=await a(t,i.key);s(r)&&r.status.isModerator&&await t.delete("@keet/blind-peers",{key:e})}async function k({from:e,to:t,buildType:i},{db:r,writer:n}){const o=await a(r,n.key);s(o)&&o.status.isModerator&&(e<14&&t>=14&&(await async function(e){if(!await e.get("@keet-private-id/identity"))return;const t=[];for(const{memberKey:i,roomKey:s}of await e.find("@keet-private-id/contacts").toArray()){if(!s||!i)continue;const a=await e.get("@keet-private-id/rooms",{roomKey:s});a&&(a.contact=i,t.push(e.insert("@keet-private-id/rooms",a)))}await Promise.all(t)}(r),await async function(e){if(!await e.get("@keet-private-id/identity"))return;const t={isPending:!1,isAccepted:!1,isRejected:!1,isDiscarded:!1,isSeen:!1},i=[];for(const s of await e.find("@keet-private-id/contact-requests").toArray()){const{isSeen:a,isAccepted:r,isRejected:n,isDiscarded:o}=s.status;s.status.isAccepted&&(s.status={...t,isAccepted:r,isSeen:a}),s.status.isRejected&&(s.status={...t,isRejected:n,isSeen:a}),s.status.isDiscarded&&(s.status={...t,isDiscarded:o,isSeen:a}),i.push(e.insert("@keet-private-id/contact-requests-v2",s))}await Promise.all(i)}(r)),e<20&&t>=20&&await async function(e){const[t,i,s]=await Promise.all([e.get("@keet-private-id/identity"),e.get("@keet/threads",{id:0}),e.find("@keet/pinned-chat-messages").toArray()]);!t&&i&&(i.stats.chat.pinned=s.length,await e.insert("@keet/threads",i))}(r),e<24&&t>=24&&await async function(e){if((await e.get("@keet/system-digest")).settings.roomType===c.DirectMessage)for await(const t of e.find("@keet/members"))t.status.isModerator||(t.status.isModerator=!0,await e.insert("@keet/members",t))}(r),e<25&&t>=25&&await async function(e,t){const i=await e.get("@keet/system-digest");m[i.settings.buildType]||m[t]&&(i.settings.buildType=m[t],await e.insert("@keet/system-digest",i))}(r,i))}module.exports={[t]:function(e){e.add("@keet/genesis",u),e.add("@keet/upgrade",b),e.add("@keet/add-blind-peer",w),e.add("@keet/remove-blind-peer",p),e.add("@keet/autobee-migration",r(g)),e.add("@keet/update-system-settings",y),e.add("@keet/migrate-abi",k)},Settings:{RoomType:1,IsExperimental:2,IsJoiningDisabled:3,IsAppendingDisabled:4,IsCallingDisabled:5,IsMembershipEventsDisabled:6,IsAttachmentsDisabled:7,IsLinksDisabled:8,IsRoomInviteHidden:9}};
@holepunchto/keet-core/lib/core/contract/labels.js +1 -1
……@@ -1 +1 @@
1const e=require("./registration"),{isMemberActive:t,getMemberForDeviceKey:a}=require("./query"),i=require("b4a"),{KeetContractError:s}=require("./errors"),{chatLabelStats:r}=require("./stats"),{contract:{hyperschema:{getEnum:l}}}=require("../../../schema/spec"),o=l("@keet/label-type");async function d({header:e,oplog:l,label:d},{db:c,writer:E}){const[h,n,_,w]=await Promise.all([a(c,E.key),a(c,l.key),c.get("@keet/chat-by-message-id",{oplog:l}),c.get("@keet/threads",{id:0})]);if(!t(h))throw s.INACTIVE_MEMBER();if(!_)throw s.TARGET_MSG_INVALID();if(_.status.isDeleted)throw s.TARGET_MSG_IS_DELETED();if(h.status.isMuted)throw s.MUTED_MEMBER();if(i.equals(h.key,n.key))throw s.TARGET_MSG_IS_OWN();if(await c.get("@keet/chat-labels",{id:_.id,sender:h.key,label:d}))throw s.CHAT_LABEL_EXISTS();if(d===o.Flag&&await async function(){const e=await c.get("@keet/chat-label-digests",{id:_.id});if(!e)return!1;const t=e.labels.find(({label:e})=>e===o.Flag);return!!t&&t.count>=20}())throw s.CHAT_FLAG_LIMIT_EXCEEDED();const T={id:_.id,sender:h.key,clock:w.stats.chat.clock,label:d};await c.insert("@keet/chat-labels",T),await r(c,w,T,null,e.timestamp)}async function c({header:e,oplog:i,label:l},{db:o,writer:d}){const[c,E,h]=await Promise.all([a(o,d.key),o.get("@keet/chat-by-message-id",{oplog:i}),o.get("@keet/threads",{id:0})]);if(!t(c))throw s.INACTIVE_MEMBER();if(!E)throw s.TARGET_MSG_INVALID();if(E.status.isDeleted)throw s.TARGET_MSG_IS_DELETED();if(c.status.isMuted)throw s.MUTED_MEMBER();const n=await o.get("@keet/chat-labels",{id:E.id,sender:c.key,label:l});if(!n)throw s.CHAT_LABEL_NOT_FOUND();await o.delete("@keet/chat-labels",n),await r(o,h,null,n,e.timestamp)}async function E({header:e,oplog:i},{db:l,writer:d}){const[c,E,h]=await Promise.all([a(l,d.key),l.get("@keet/chat-by-message-id",{oplog:i}),l.get("@keet/threads",{id:0})]);if(!t(c))throw s.INACTIVE_MEMBER();if(!E)throw s.TARGET_MSG_INVALID();if(E.status.isDeleted)throw s.TARGET_MSG_IS_DELETED();if(!c.status.isModerator)throw s.MODERATORS_ONLY();const n=l.find("@keet/chat-labels",{gte:{id:E.id,label:o.Flag},lte:{id:E.id,label:o.Flag}});for await(const t of n)await l.delete("@keet/chat-labels",t),await r(l,h,null,t,e.timestamp)}module.exports={[e]:function(e){e.add("@keet/add-chat-label",d),e.add("@keet/remove-chat-label",c),e.add("@keet/dismiss-chat-reports",E)},CHAT_FLAG_LIMIT:20};
1const e=require("./registration"),{isMemberActive:t,getMemberForDeviceKey:a}=require("./query"),i=require("b4a"),{KeetContractError:r}=require("./errors"),{chatLabelStats:s}=require("./stats"),{trackActivity:l}=require("./hooks"),{contract:{hyperschema:{getEnum:o}}}=require("../../../schema/spec"),d=o("@keet/label-type");async function c({header:e,oplog:l,label:o},{db:c,writer:n}){const[h,E,w,_]=await Promise.all([a(c,n.key),a(c,l.key),c.get("@keet/chat-by-message-id",{oplog:l}),c.get("@keet/threads",{id:0})]);if(!t(h))throw r.INACTIVE_MEMBER();if(!w)throw r.TARGET_MSG_INVALID();if(w.status.isDeleted)throw r.TARGET_MSG_IS_DELETED();if(h.status.isMuted)throw r.MUTED_MEMBER();if(i.equals(h.key,E.key))throw r.TARGET_MSG_IS_OWN();if(await c.get("@keet/chat-labels",{id:w.id,sender:h.key,label:o}))throw r.CHAT_LABEL_EXISTS();if(o===d.Flag&&await async function(){const e=await c.get("@keet/chat-label-digests",{id:w.id});if(!e)return!1;const t=e.labels.find(({label:e})=>e===d.Flag);return!!t&&t.count>=20}())throw r.CHAT_FLAG_LIMIT_EXCEEDED();const u={id:w.id,sender:h.key,clock:_.stats.chat.clock,label:o};return await c.insert("@keet/chat-labels",u),await s(c,_,u,null,e.timestamp),{writer:n,writerMember:h}}async function n({header:e,oplog:i,label:l},{db:o,writer:d}){const[c,n,h]=await Promise.all([a(o,d.key),o.get("@keet/chat-by-message-id",{oplog:i}),o.get("@keet/threads",{id:0})]);if(!t(c))throw r.INACTIVE_MEMBER();if(!n)throw r.TARGET_MSG_INVALID();if(n.status.isDeleted)throw r.TARGET_MSG_IS_DELETED();if(c.status.isMuted)throw r.MUTED_MEMBER();const E=await o.get("@keet/chat-labels",{id:n.id,sender:c.key,label:l});if(!E)throw r.CHAT_LABEL_NOT_FOUND();return await o.delete("@keet/chat-labels",E),await s(o,h,null,E,e.timestamp),{writer:d,writerMember:c}}async function h({header:e,oplog:i},{db:l,writer:o}){const[c,n,h]=await Promise.all([a(l,o.key),l.get("@keet/chat-by-message-id",{oplog:i}),l.get("@keet/threads",{id:0})]);if(!t(c))throw r.INACTIVE_MEMBER();if(!n)throw r.TARGET_MSG_INVALID();if(n.status.isDeleted)throw r.TARGET_MSG_IS_DELETED();if(!c.status.isModerator)throw r.MODERATORS_ONLY();const E=l.find("@keet/chat-labels",{gte:{id:n.id,label:d.Flag},lte:{id:n.id,label:d.Flag}});for await(const t of E)await l.delete("@keet/chat-labels",t),await s(l,h,null,t,e.timestamp)}module.exports={[e]:function(e){e.add("@keet/add-chat-label",l(c)),e.add("@keet/remove-chat-label",l(n)),e.add("@keet/dismiss-chat-reports",h)},CHAT_FLAG_LIMIT:20};
@holepunchto/keet-core/lib/core/contract/members/index.js +1 -1
……@@ -1 +1 @@
1const e=require("autobase"),t=require("b4a"),{contract:{hyperschema:{getEnum:i,encode:s},hyperdispatch:{encode:a}}}=require("../../../../schema/spec"),{createDeviceResponse:r,decryptDeviceRequest:n,verifyAttestation:o,verifyInvitationDeviceRequest:d,generateMailboxKeyPair:c}=require("../../invitations"),m=i("@keet/room-type"),{deviceStats:y,memberStats:k}=require("../stats"),{isMemberActive:l,getMemberForDeviceKey:u}=require("../query"),{addEvent:w}=require("../chat"),{updateAvatar:v}=require("../avatars"),{KeetContractError:f}=require("../errors"),b=require("../registration"),{isValidBuildType:p}=require("../helpers"),A=["isMuted","isBanned","isShadowBanned"];async function h(e,t,i,s,a,{db:r,writer:n,hostcalls:d,genesis:c}){const[l,u,v,b,p]=await Promise.all([r.get("@keet/devices",{key:t}),r.get("@keet/members",{key:s.memberKey}),r.get("@keet/member-proofs",{key:s.memberKey}),r.get("@keet/system-digest"),r.get("@keet/threads",{id:0})]);if(!u||!v)throw f.ABORT();if(l)return{added:!1,device:l};const A={...u,status:{...u.status}},h=u.status.isPending,g=o(s,t,v.latestReceipt);v.latestReceipt=g;const R={isActive:!0,isIndexing:!!a?.isIndexing};u.status.isActive=!0,u.status.isPending=!1,h&&!u.status.isModerator&&a?.isModerator&&(u.status.isModerator=!0),R.isIndexing&&!u.status.isAdmin&&(u.status.isAdmin=!0);const T={key:t,memberKey:u.key,status:R,profile:i};if(await r.insert("@keet/members",u),await k(r,p,u,A),await r.insert("@keet/devices",T),await y(r,p,T,null),await r.insert("@keet/member-proofs",v),c||await d.addWriter(t,{indexer:R.isIndexing}),!h||b.settings.roomType===m.Broadcast)return{added:!0,device:T};if(b.abi.version>=11&&b.settings.isMembershipEventsDisabled)return{added:!0,device:T};const M={memberJoined:{memberKey:u.key}};return await w(r,n,M,e.timestamp),{added:!0,device:T}}async function g(e,t,i,a,{db:r,blobs:n,writer:d,genesis:c}){const[m,y,l]=await Promise.all([r.get("@keet/members",{key:i.memberKey}),r.get("@keet/member-proofs",{key:i.memberKey}),r.get("@keet/threads",{id:0})]);if(m)throw f.ABORT();const u=s("@keet/member-profile",t),w=o(i,u,y?.latestReceipt);let b=y;b?(b.latestReceipt=w,b.profileAttestation=i.proof):b={key:i.memberKey,latestReceipt:w,profileAttestation:i.proof},t.avatar?t.avatar=await v(n,m?.profile.avatar,t.avatar):t.avatar=null;const p={isAdmin:!!a.isAdmin,isModerator:!!a.isModerator,isPending:!0,isActive:!0,isMuted:!1,isBanned:!1,isShadowBanned:!1},A={key:i.memberKey,devices:[],status:p,profile:t};return await r.insert("@keet/members",A),await k(r,l,A),await r.insert("@keet/member-proofs",b),A}async function R(e,t,i,{db:a,blobs:r}){const[n,d]=await Promise.all([a.get("@keet/members",{key:i.memberKey}),a.get("@keet/member-proofs",{key:i.memberKey})]);if(!n)throw f.ABORT();const c=s("@keet/member-profile",t),m=o(i,c,d?.latestReceipt);let y=d;y?(y.latestReceipt=m,y.profileAttestation=i.proof):y={key:i.memberKey,latestReceipt:m,profileAttestation:i.proof},n.profile.timestamp>=t.timestamp||(n.profile=t,t.avatar?n.profile.avatar=await v(r,n.profile.avatar,t.avatar):n.profile.avatar=null,await a.insert("@keet/members",n),await a.insert("@keet/member-proofs",y))}async function T(t,i,s,n,o,d){const{db:c,trace:m,hostcalls:l,dryRun:u}=d,w=await c.get("@keet/room-capabilities"),v=l.discoveryKey,b=l.key,p=n.metadata,A={isAdmin:p.canAdmin,isModerator:p.canModerate||p.canAdmin},T={isIndexing:p.canAdmin,isModerator:p.canModerate};let M=null;if(o)M=await async function(e,t,i){const{db:s,hostcalls:a}=i,[r,n]=await Promise.all([s.get("@keet-private-id/identity"),s.get("@keet/threads",{id:0})]),o=await s.get("@keet/members",{key:r.publicKey}),d={...o,status:{...o.status}},c={key:e,memberKey:r.publicKey,profile:t,status:{isActive:!0,isIndexing:!0}};return o.status.isPending=!1,await a.addWriter(e,{indexer:!0}),await s.insert("@keet/members",o),await k(s,n,o,d),await s.insert("@keet/devices",c),await y(s,n,c,null),{added:!0,device:c}}(i,s.device.profile,d),await c.insert("@keet-private-id/device-identities",{deviceKey:i,privateProfileIdentity:o.privateProfileIdentity,deviceProof:o.deviceProof});else{const e=await c.get("@keet/members",{key:s.device.attestation.memberKey});if(e){if(e.status.isRemoved)throw new f.ABORT;await R(0,s.member.profile,s.member.attestation,d)}else await g(0,s.member.profile,s.member.attestation,A,d);M=await h(t,i,s.device.profile,s.device.attestation,T,d)}const{device:O,added:B}=M,K=s.member.profile.mailbox,I=w.seed,{blindResponse:q}=r(K,I,n),E=a("@keet-private-id/resolve-pending-invitation",{header:{timestamp:0},blindResponse:q}),P=e.encodeValue(E,{optimistic:!0,encrypted:!0});if(B&&(n.metadata.canAdmin=!1,n.metadata.canModerate=!1,O.invitation={id:n.id,response:P},await c.insert("@keet/devices",O),await c.insert("@keet/invitations",n)),m&&!u){const e={roomKey:b,discoveryKey:v,request:s,response:P,invitation:n};await m({type:"@keet/add-device",value:e})}}async function M({header:e,deviceKey:t,identity:i},s){const{db:a,writer:r}=s,[n,o]=await Promise.all([u(a,r.key),a.get("@keet/join-requests",{deviceKey:t})]);if(!l(n)||!o)throw f.ABORT();const{id:d,request:c}=o,m=await a.get("@keet/invitations",{id:d});if(!m)throw f.ABORT();await T(e,t,c,m,i,s),await a.delete("@keet/join-requests",{deviceKey:t})}async function O({header:e,deviceKey:t},i){const{db:s,writer:a}=i,[r,n]=await Promise.all([u(s,a.key),s.get("@keet/join-requests",{deviceKey:t})]);if(!l(r)||!n)throw f.ABORT();await s.delete("@keet/join-requests",{deviceKey:t})}async function B({invitation:e},{db:t,writer:i,hostcalls:s}){const[a,r,n]=await Promise.all([u(t,i.key),t.get("@keet/invitations",{id:e.id}),t.get("@keet/system-digest")]);if(!l(a))throw f.ABORT();if(a.status.isMuted)return;const o=e.metadata;if(r||n.settings.roomType===m.DirectMessage)throw f.ABORT();if(o.buildType=n.settings.buildType,n.settings.isRoomInviteHidden&&!a.status.isModerator)throw f.MODERATORS_ONLY();return o.canModerate&&!a.status.isModerator&&(o.canModerate=!1),o.canAdmin&&!a.status.isAdmin&&(o.canAdmin=!1),e.isActive=!0,e.anchor=await s.createAnchor(i.key,i.seq+1),t.insert("@keet/invitations",e)}async function K({id:e},{db:t,writer:i}){const[s,a]=await Promise.all([u(t,i.key),t.get("@keet/invitations",{id:e})]);if(!l(s)||!s.status.isModerator||!a)throw f.ABORT();a.isActive=!1,await t.insert("@keet/invitations",a)}async function I({deviceKey:e,fromDeviceKey:i},{db:s,writer:a,hostcalls:r}){const[n,o,d]=await Promise.all([u(s,a.key),u(s,e),u(s,i)]);if(!l(n))throw f.ABORT();if(!t.equals(n.key,o.key))throw f.ABORT();if(!t.equals(n.key,d.key))throw f.ABORT();const[c,m]=await Promise.all([s.get("@keet/devices",{key:i}),s.get("@keet/devices",{key:e})]);if(!c||!m)throw f.ABORT();if(!c.status.isActive)throw f.ABORT();if(!m.status.isActive)throw f.ABORT();if(!c.status.isIndexing)throw f.ABORT();if(m.status.isIndexing)throw f.ABORT();if(t.equals(c.key,m.key))throw f.ABORT();await r.addWriter(m.key,{isIndexer:!0}),await r.addWriter(c.key,{isIndexer:!1}),m.status.isIndexing=!0,c.status.isIndexing=!1,await s.insert("@keet/devices",c),await s.insert("@keet/devices",m)}async function q(e,{db:t,writer:i,hostcalls:s}){const[a,r]=await Promise.all([t.get("@keet/devices",{key:i.key}),u(t,i.key)]);if(!a.status.isActive||!l(r)||!r.status.canAdmin)throw f.ABORT();await s.addWriter(i.key,{indexer:!0}),a.status.isIndexing=!0,await t.insert("@keet/devices",a)}async function E(e,{db:t,writer:i,hostcalls:s}){const[a,r]=await Promise.all([t.get("@keet/devices",{key:i.key}),u(t,i.key)]);if(!a.status.isActive||!l(r)||!r.status.canAdmin)throw f.ABORT();await s.addWriter(i.key,{indexer:!1}),a.status.isIndexing=!1,await t.insert("@keet/devices",a)}async function P({header:e,blindRequest:i},s){const{db:a}=s,r=await a.get("@keet/room-capabilities");if(!r)throw f.ABORT();let o=null;try{const e=c(s.hostcalls.key,r.seed);o=n(e,i)}catch(e){throw f.ABORT()}if(!o)throw f.ABORT();const{withInvitation:y,withMemberProof:k}=o;return y?async function(e,i,s){const{db:a,hostcalls:r,writer:n}=s;let o=null;try{o=d(e)}catch(e){throw f.ABORT()}if(!o)throw f.ABORT();const{id:c,request:m}=o;if(!t.equals(m.deviceKey,n.key))throw f.ABORT();const[y,k,l]=await Promise.all([a.get("@keet/join-requests",{deviceKey:n.key}),a.get("@keet/invitations",{id:c}),a.get("@keet-private-id/identity")]);if(!k||y)throw f.ABORT();const u=k.metadata.buildType,w=m.device.profile.buildType;if(!p(w,u))throw f.INVALID_BUILD_TYPE();await r.ackWriter(n.key),k.requiresConfirmation||l?await a.insert("@keet/join-requests",{deviceKey:n.key,id:c,request:m}):await T(i,n.key,m,k,null,s)}(y,e,s):k?async function({device:e,member:t},i,s){const{db:a,hostcalls:r,writer:n}=s,[o,d,c]=await Promise.all([a.get("@keet/members",{key:e.attestation.memberKey}),a.get("@keet/member-proofs",{key:e.attestation.memberKey}),a.get("@keet/system-digest")]);if(!o||!d)throw f.ABORT();const y=c.settings.roomType===m.DirectMessage;if(c.abi.version>=12&&!o.status.isActive&&!y)throw f.ABORT();await h(i,n.key,e.profile,e.attestation,{isActive:!0,isIndexing:!1},s),await r.ackWriter(n.key),t&&await R(0,t.profile,t.attestation,s)}(k,e,s):void 0}async function x({header:e,member:{profile:t,attestation:i}},s){return R(0,t,i,s)}async function _({key:e,profile:i},{db:s,writer:a}){const[r,n]=await Promise.all([u(s,a.key),s.get("@keet/devices",{key:e||a.key})]);if(!n||!n.status.isActive||!l(r))throw f.ABORT();if(!t.equals(n.memberKey,r.key))throw f.INVALID_TARGET_DEVICE();t.equals(n.key,a.key)?n.profile=i:n.profile={...n.profile,name:i.name},await s.insert("@keet/devices",n)}async function D({key:e},{db:i,writer:s,hostcalls:a}){const[r,n,o]=await Promise.all([u(i,s.key),i.get("@keet/devices",{key:e}),i.get("@keet/threads",{id:0})]);if(!n||!l(r)||!t.equals(n.memberKey,r.key))throw f.ABORT();const d={...n,status:{...n.status}};n.status.isActive=!1,n.status.isIndexing=!1,a.removeable(n.key)&&await a.removeWriter(n.key),await i.insert("@keet/devices",n),await y(i,o,n,d)}async function N({memberKey:e,key:t,status:i},{db:s,writer:a}){const[r,n]=await Promise.all([u(s,a.key),s.get("@keet/members",{key:e})]);if(!l(r))throw f.INACTIVE_MEMBER();if(!n)throw f.TARGET_MEMBER_NOT_FOUND();if(!r.status.isModerator)throw f.MODERATORS_ONLY();if(0===t||t>A.length)throw f.INVALID_MEMBER_STATUS();const o=A[t-1];n.status[o]=i[o],await s.insert("@keet/members",n)}async function S({key:e,isModerator:t,isAdmin:i},{db:s,writer:a,hostcalls:r}){const[n,o,d]=await Promise.all([u(s,a.key),s.get("@keet/members",{key:e}),s.find("@keet/active-devices-by-member-key",{gte:{memberKey:e},lte:{memberKey:e}}).toArray()]);if(!l(n))throw f.INACTIVE_MEMBER();if(!o)throw f.TARGET_MEMBER_NOT_FOUND();const c=n.status.isAdmin,m=n.status.isModerator,y=o.status.isAdmin;if(!c&&(y||i))throw f.ADMINS_ONLY();if(!m)throw f.MODERATORS_ONLY();let k=!1;if(y&&!i)for(const e of d)r.removeable(e.key)?await r.addWriter(e.key,{indexer:!1}):k=!0;k||(o.status.isAdmin=i),o.status.isModerator=t||i,await s.insert("@keet/members",o)}async function L({header:e,key:i},{db:s,writer:a,hostcalls:r}){const[n,o,d,c,v]=await Promise.all([u(s,a.key),s.get("@keet/members",{key:i}),s.get("@keet/system-digest"),s.find("@keet/active-devices-by-member-key",{gte:{memberKey:i},lte:{memberKey:i}}).toArray(),s.get("@keet/threads",{id:0})]);if(!l(n))throw f.INACTIVE_MEMBER();if(!o)throw f.TARGET_MEMBER_NOT_FOUND();const b={...o,status:{...o.status}},p=t.equals(n.key,o.key),A=n.status.isModerator;if(o.status.isAdmin&&!p)throw f.SELF_ONLY();if(!p&&!A)throw f.MODERATORS_ONLY();o.status.isActive=!1,o.status.isModerator=!1,o.status.isAdmin=!1,o.status.isPending=!!p,p||(o.status.isRemoved=!0,await s.insert("@keet/tmp-removed-members",{key:o.key}));for(const e of c){const t={...e,status:{...e.status}};r.removeable(e.key)&&(await r.removeWriter(e.key,{indexer:!1}),e.status.isIndexing=!1),e.status.isActive=!1,await s.insert("@keet/devices",e),await y(s,v,e,t)}if(await s.insert("@keet/members",o),await k(s,v,o,b),d.settings.roomType===m.Broadcast)return;if(d.abi.version>=11&&d.settings.isMembershipEventsDisabled)return;const h=p?{memberLeft:{memberKey:o.key}}:{memberRemoved:{memberKey:o.key}};await w(s,a,h,e.timestamp)}module.exports={[b]:function(e){e.add("@keet/add-device",P),e.add("@keet/update-device",_),e.add("@keet/remove-device",D),e.add("@keet/start-indexing",q),e.add("@keet/stop-indexing",E),e.add("@keet/accept-join-request",M),e.add("@keet/reject-join-request",O),e.add("@keet/update-member",x),e.add("@keet/change-member-role",S),e.add("@keet/change-member-status",N),e.add("@keet/remove-member",L),e.add("@keet/add-invitation",B),e.add("@keet/remove-invitation",K),e.add("@keet/move-indexer",I)},MemberStatus:{IsMuted:1,IsBanned:2,IsShadowBanned:3},addDevice:h,addMember:g};
1const e=require("autobee"),t=require("b4a"),{contract:{hyperschema:{getEnum:i,encode:a},hyperdispatch:{encode:r}}}=require("../../../../schema/spec"),{createDeviceResponse:s,decryptDeviceRequest:n,verifyAttestation:o,verifyInvitationDeviceRequest:d,generateMailboxKeyPair:m}=require("../../invitations"),c=i("@keet/room-type"),{deviceStats:y,memberStats:w}=require("../stats"),{isMemberActive:k,getMemberForDeviceKey:l}=require("../query"),{addEvent:u}=require("../chat"),{updateAvatar:b}=require("../avatars"),{KeetContractError:v}=require("../errors"),f=require("../registration"),{isValidBuildType:A}=require("../helpers"),{trackActivity:p}=require("../hooks"),h=require("../roles"),g=["isMuted","isBanned","isShadowBanned"];async function R(e,t,i,a,r,{db:s,writer:n,hostcalls:d}){const[m,k,l,b,f]=await Promise.all([s.get("@keet/devices",{key:t}),s.get("@keet/members",{key:a.memberKey}),s.get("@keet/member-proofs",{key:a.memberKey}),s.get("@keet/system-digest"),s.get("@keet/threads",{id:0})]);if(!k||!l)throw v.ABORT();if(m)return{added:!1,device:m};const A={...k,status:{...k.status}},p=k.status.isPending,g=o(a,t,l.latestReceipt);l.latestReceipt=g;const R={isActive:!0,isIndexing:!!r?.isIndexing};k.status.isActive=!0,k.status.isPending=!1,p&&!k.status.isModerator&&r?.isModerator&&(k.status.isModerator=!0),R.isIndexing&&!k.status.isAdmin&&(k.status.isAdmin=!0);const M={key:t,memberKey:k.key,status:R,profile:i};if(await s.insert("@keet/members",k),await w(s,f,k,A),await s.insert("@keet/devices",M),await y(s,f,M,null),await s.insert("@keet/member-proofs",l),r?.isGenesis||await d.addWriter(t,R.isIndexing?h.ADMIN:h.WRITER),!p||b.settings.roomType===c.Broadcast)return{added:!0,device:M};if(b.abi.version>=11&&b.settings.isMembershipEventsDisabled)return{added:!0,device:M};const T={memberJoined:{memberKey:k.key}};return await u(s,n,T,e.timestamp),{added:!0,device:M}}async function M(e,t,i,r,{db:s,writer:n}){const[d,m,c]=await Promise.all([s.get("@keet/members",{key:i.memberKey}),s.get("@keet/member-proofs",{key:i.memberKey}),s.get("@keet/threads",{id:0})]);if(d)throw v.ABORT();const y=a("@keet/member-profile",t),k=o(i,y,m?.latestReceipt);let l=m;l?(l.latestReceipt=k,l.profileAttestation=i.proof):l={key:i.memberKey,latestReceipt:k,profileAttestation:i.proof},t.avatar?t.avatar=await b(s,d?.profile.avatar,t.avatar):t.avatar=null;const u={isAdmin:!!r.isAdmin,isModerator:!!r.isModerator,isPending:!0,isActive:!0,isMuted:!1,isBanned:!1,isShadowBanned:!1},f={key:i.memberKey,devices:[],status:u,profile:t};return await s.insert("@keet/members",f),await w(s,c,f),await s.insert("@keet/member-proofs",l),f}async function T(e,t,i,{db:r}){const[s,n]=await Promise.all([r.get("@keet/members",{key:i.memberKey}),r.get("@keet/member-proofs",{key:i.memberKey})]);if(!s)throw v.ABORT();const d=a("@keet/member-profile",t),m=o(i,d,n?.latestReceipt);let c=n;c?(c.latestReceipt=m,c.profileAttestation=i.proof):c={key:i.memberKey,latestReceipt:m,profileAttestation:i.proof},s.profile.timestamp>=t.timestamp||(s.profile=t,t.avatar?s.profile.avatar=await b(r,s.profile.avatar,t.avatar):s.profile.avatar=null,await r.insert("@keet/members",s),await r.insert("@keet/member-proofs",c))}async function O(t,i,a,n,o,d){const{db:m,trace:c,hostcalls:k,dryRun:l}=d,u=await m.get("@keet/room-capabilities"),b=k.discoveryKey,f=k.key,A=n.metadata,p={isAdmin:A.canAdmin,isModerator:A.canModerate||A.canAdmin},g={isIndexing:A.canAdmin,isModerator:A.canModerate};let O=null;if(o)O=await async function(e,t,i){const{db:a,hostcalls:r}=i,[s,n]=await Promise.all([a.get("@keet-private-id/identity"),a.get("@keet/threads",{id:0})]),o=await a.get("@keet/members",{key:s.publicKey}),d={...o,status:{...o.status}},m={key:e,memberKey:s.publicKey,profile:t,status:{isActive:!0,isIndexing:!0}};return o.status.isPending=!1,await r.addWriter(e,h.ADMIN),await a.insert("@keet/members",o),await w(a,n,o,d),await a.insert("@keet/devices",m),await y(a,n,m,null),{added:!0,device:m}}(i,a.device.profile,d),await m.insert("@keet-private-id/device-identities",{deviceKey:i,privateProfileIdentity:o.privateProfileIdentity,deviceProof:o.deviceProof});else{const e=await m.get("@keet/members",{key:a.device.attestation.memberKey});if(e){if(e.status.isRemoved)throw v.ABORT();await T(0,a.member.profile,a.member.attestation,d)}else await M(0,a.member.profile,a.member.attestation,p,d);O=await R(t,i,a.device.profile,a.device.attestation,g,d)}const{device:K,added:B}=O,I=a.member.profile.mailbox,q=u.seed,{blindResponse:E}=s(I,q,n),P=r("@keet-private-id/resolve-pending-invitation-v2",{header:{timestamp:0},blindResponse:E}),D=e.encodeValue(P,{optimistic:!0,encrypted:!0,timestamp:0,links:a.link?[a.link]:[]});if(B&&(n.metadata.canAdmin=!1,n.metadata.canModerate=!1,K.invitation={id:n.id,response:D},await m.insert("@keet/devices",K),await m.insert("@keet/invitations",n)),c&&!l){const e={roomKey:f,discoveryKey:b,request:a,response:D,invitation:n};await c({type:"@keet/add-device",value:e})}}async function K({header:e,deviceKey:t,identity:i},a){const{db:r,writer:s}=a,[n,o]=await Promise.all([l(r,s.key),r.get("@keet/join-requests",{deviceKey:t})]);if(!k(n)||!o)throw v.ABORT();const{id:d,request:m}=o,c=await r.get("@keet/invitations",{id:d});if(!c)throw v.ABORT();return await O(e,t,m,c,i,a),await r.delete("@keet/join-requests",{deviceKey:t}),{writer:s,writerMember:n}}async function B({header:e,deviceKey:t},i){const{db:a,writer:r}=i,[s,n]=await Promise.all([l(a,r.key),a.get("@keet/join-requests",{deviceKey:t})]);if(!k(s)||!n)throw v.ABORT();return await a.delete("@keet/join-requests",{deviceKey:t}),{writer:r,writerMember:s}}async function I({invitation:e},{db:t,writer:i,hostcalls:a}){const[r,s,n]=await Promise.all([l(t,i.key),t.get("@keet/invitations",{id:e.id}),t.get("@keet/system-digest")]);if(!k(r))throw v.ABORT();if(r.status.isMuted)return;const o=e.metadata;if(s||n.settings.roomType===c.DirectMessage)throw v.ABORT();if(o.buildType=n.settings.buildType,n.settings.isRoomInviteHidden&&!r.status.isModerator)throw v.MODERATORS_ONLY();return o.canModerate&&!r.status.isModerator&&(o.canModerate=!1),o.canAdmin&&!r.status.isAdmin&&(o.canAdmin=!1),e.isActive=!0,e.anchor=await a.createAnchor(i.key,i.seq+1),await t.insert("@keet/invitations",e),{writer:i,writerMember:r}}async function q({id:e},{db:t,writer:i}){const[a,r]=await Promise.all([l(t,i.key),t.get("@keet/invitations",{id:e})]);if(!k(a)||!a.status.isModerator||!r)throw v.ABORT();return r.isActive=!1,await t.insert("@keet/invitations",r),{writer:i,writerMember:a}}async function E({deviceKey:e,fromDeviceKey:i},{db:a,writer:r,hostcalls:s}){const[n,o,d]=await Promise.all([l(a,r.key),l(a,e),l(a,i)]);if(!k(n))throw v.ABORT();if(!t.equals(n.key,o.key))throw v.ABORT();if(!t.equals(n.key,d.key))throw v.ABORT();const[m,c]=await Promise.all([a.get("@keet/devices",{key:i}),a.get("@keet/devices",{key:e})]);if(!m||!c)throw v.ABORT();if(!m.status.isActive)throw v.ABORT();if(!c.status.isActive)throw v.ABORT();if(!m.status.isIndexing)throw v.ABORT();if(c.status.isIndexing)throw v.ABORT();if(t.equals(m.key,c.key))throw v.ABORT();return await s.addWriter(c.key,h.ADMIN),await s.addWriter(m.key,h.WRITER),c.status.isIndexing=!0,m.status.isIndexing=!1,await a.insert("@keet/devices",m),await a.insert("@keet/devices",c),{writer:r,writerMember:n}}async function P(e,{db:t,writer:i,hostcalls:a}){const[r,s]=await Promise.all([t.get("@keet/devices",{key:i.key}),l(t,i.key)]);if(!r.status.isActive||!k(s)||!s.status.canAdmin)throw v.ABORT();return await a.addWriter(i.key,h.ADMIN),r.status.isIndexing=!0,await t.insert("@keet/devices",r),{writer:i,writerMember:s}}async function D(e,{db:t,writer:i,hostcalls:a}){const[r,s]=await Promise.all([t.get("@keet/devices",{key:i.key}),l(t,i.key)]);if(!r.status.isActive||!k(s)||!s.status.canAdmin)throw v.ABORT();return await a.addWriter(i.key,h.WRITER),r.status.isIndexing=!1,await t.insert("@keet/devices",r),{writer:i,writerMember:s}}async function _({header:e,blindRequest:i},a){const{db:r}=a,s=await r.get("@keet/room-capabilities");if(!s)throw v.ABORT();let o=null;try{const e=m(a.hostcalls.key,s.seed);o=n(e,i)}catch(e){throw v.ABORT()}if(!o)throw v.ABORT();const{withInvitation:y,withMemberProof:w}=o;return y?async function(e,i,a){const{db:r,hostcalls:s,writer:n}=a;let o=null;try{o=d(e)}catch(e){throw v.ABORT()}if(!o)throw v.ABORT();const{id:m,request:c}=o;if(!t.equals(c.deviceKey,n.key))throw v.ABORT();const[y,w,k]=await Promise.all([r.get("@keet/join-requests",{deviceKey:n.key}),r.get("@keet/invitations",{id:m}),r.get("@keet-private-id/identity")]);if(!w||y)throw v.ABORT();const l=w.metadata.buildType,u=c.device.profile.buildType;if(!A(u,l))throw v.INVALID_BUILD_TYPE();await s.ackWriter(n.key),w.requiresConfirmation||k?await r.insert("@keet/join-requests",{deviceKey:n.key,id:m,request:c}):await O(i,n.key,c,w,null,a)}(y,e,a):w?async function({device:e,member:t},i,a){const{db:r,hostcalls:s,writer:n}=a,[o,d,m,y]=await Promise.all([r.get("@keet/members",{key:e.attestation.memberKey}),r.get("@keet/member-proofs",{key:e.attestation.memberKey}),r.get("@keet/system-digest"),r.get("@keet-private-id/identity")]);if(!o||!d)throw v.ABORT();const w=m.settings.roomType===c.DirectMessage;if(m.abi.version>=12&&!o.status.isActive&&!w)throw v.ABORT();const k={isActive:!0,isIndexing:!!y};await R(i,n.key,e.profile,e.attestation,k,a),await s.ackWriter(n.key),t&&await T(0,t.profile,t.attestation,a)}(w,e,a):void 0}async function N({header:e,member:{profile:t,attestation:i}},a){const{db:r,writer:s}=a;return await T(0,t,i,a),{writer:s,writerMember:await l(r,s.key)}}async function x({key:e,profile:i},{db:a,writer:r}){const[s,n]=await Promise.all([l(a,r.key),a.get("@keet/devices",{key:e||r.key})]);if(!n||!n.status.isActive||!k(s))throw v.ABORT();if(!t.equals(n.memberKey,s.key))throw v.INVALID_TARGET_DEVICE();return t.equals(n.key,r.key)?n.profile=i:n.profile={...n.profile,name:i.name},await a.insert("@keet/devices",n),{writer:r,writerMember:s}}async function W({key:e},{db:i,writer:a,hostcalls:r}){const[s,n,o]=await Promise.all([l(i,a.key),i.get("@keet/devices",{key:e}),i.get("@keet/threads",{id:0})]);if(!n||!k(s)||!t.equals(n.memberKey,s.key))throw v.ABORT();const d={...n,status:{...n.status}};n.status.isActive=!1,n.status.isIndexing=!1,r.removeable(n.key)&&await r.removeWriter(n.key),await i.insert("@keet/devices",n),await y(i,o,n,d);const m=await i.get("@keet/admin-last-seen",{memberKey:n.memberKey});return m&&t.equals(m.deviceKey,e)&&await i.delete("@keet/admin-last-seen",{memberKey:n.memberKey}),{writer:a,writerMember:s}}async function S({memberKey:e,key:t,status:i},{db:a,writer:r}){const[s,n]=await Promise.all([l(a,r.key),a.get("@keet/members",{key:e})]);if(!k(s))throw v.INACTIVE_MEMBER();if(!n)throw v.TARGET_MEMBER_NOT_FOUND();if(!s.status.isModerator)throw v.MODERATORS_ONLY();if(0===t||t>g.length)throw v.INVALID_MEMBER_STATUS();const o=g[t-1];return n.status[o]=i[o],await a.insert("@keet/members",n),{writer:r,writerMember:s}}async function L({key:e,isModerator:i,isAdmin:a},{db:r,writer:s,hostcalls:n}){const[o,d,m]=await Promise.all([l(r,s.key),r.get("@keet/members",{key:e}),r.find("@keet/active-devices-by-member-key",{gte:{memberKey:e},lte:{memberKey:e}}).toArray()]);if(!k(o))throw v.INACTIVE_MEMBER();if(!d)throw v.TARGET_MEMBER_NOT_FOUND();const c=o.status.isAdmin,y=o.status.isModerator,w=d.status.isAdmin;if(!c&&(w||a))throw v.ADMINS_ONLY();if(!y)throw v.MODERATORS_ONLY();let u=!1;if(w&&!a){const i=await r.find("@keet/admins",{limit:2}).toArray();if(1===i.length&&t.equals(i[0].key,e))u=!0;else for(const e of m)n.removeable(e.key)?await n.addWriter(e.key,h.WRITER):u=!0}return u||(d.status.isAdmin=a),d.status.isModerator=i||a,await r.insert("@keet/members",d),w&&!d.status.isAdmin&&await r.delete("@keet/admin-last-seen",{memberKey:e}),{writer:s,writerMember:o}}async function j({header:e,key:i},{db:a,writer:r,hostcalls:s}){const[n,o,d,m,b]=await Promise.all([l(a,r.key),a.get("@keet/members",{key:i}),a.get("@keet/system-digest"),a.find("@keet/active-devices-by-member-key",{gte:{memberKey:i},lte:{memberKey:i}}).toArray(),a.get("@keet/threads",{id:0})]);if(!k(n))throw v.INACTIVE_MEMBER();if(!o)throw v.TARGET_MEMBER_NOT_FOUND();const f={...o,status:{...o.status}},A=t.equals(n.key,o.key),p=n.status.isModerator;if(o.status.isAdmin&&!A)throw v.SELF_ONLY();if(!A&&!p)throw v.MODERATORS_ONLY();o.status.isActive=!1,o.status.isModerator=!1,o.status.isAdmin=!1,o.status.isPending=!!A,A||(o.status.isRemoved=!0,await a.insert("@keet/tmp-removed-members",{key:o.key}));for(const e of m){const t={...e,status:{...e.status}};s.removeable(e.key)&&(await s.removeWriter(e.key,{indexer:!1}),e.status.isIndexing=!1),e.status.isActive=!1,await a.insert("@keet/devices",e),await y(a,b,e,t)}if(await a.insert("@keet/members",o),await w(a,b,o,f),f.status.isAdmin&&await a.delete("@keet/admin-last-seen",{memberKey:i}),d.settings.roomType===c.Broadcast)return{writer:r,writerMember:n};if(d.abi.version>=11&&d.settings.isMembershipEventsDisabled)return{writer:r,writerMember:n};const h=A?{memberLeft:{memberKey:o.key}}:{memberRemoved:{memberKey:o.key}};return await u(a,r,h,e.timestamp),{writer:r,writerMember:n}}module.exports={[f]:function(e){e.add("@keet/add-device",_),e.add("@keet/update-device",p(x)),e.add("@keet/remove-device",p(W)),e.add("@keet/start-indexing",p(P)),e.add("@keet/stop-indexing",p(D)),e.add("@keet/accept-join-request",p(K)),e.add("@keet/reject-join-request",p(B)),e.add("@keet/update-member",p(N)),e.add("@keet/change-member-role",p(L)),e.add("@keet/change-member-status",p(S)),e.add("@keet/remove-member",p(j)),e.add("@keet/add-invitation",p(I)),e.add("@keet/remove-invitation",p(q)),e.add("@keet/move-indexer",p(E))},MemberStatus:{IsMuted:1,IsBanned:2,IsShadowBanned:3},addDevice:R,addMember:M};
@holepunchto/keet-core/lib/core/contract/members/labels.js +1 -1
……@@ -1 +1 @@
1const e=require("../registration"),{isMemberActive:t,getMemberForDeviceKey:l}=require("../query"),a=require("b4a"),{KeetContractError:s}=require("../errors");async function r({header:e,key:r,label:c},{db:i,writer:o}){const[n,b,k]=await Promise.all([l(i,o.key),i.get("@keet/members",{key:r}),i.get("@keet/threads",{id:0})]);if(!t(n)||!b||a.equals(n.key,b.key))throw s.ABORT();if(await i.get("@keet/member-labels",{key:b.key,sender:n.key,label:c}))throw s.ABORT();const d={key:b.key,sender:n.key,clock:k.stats.chat.clock,label:c};await i.insert("@keet/member-labels",d),await async function(e,t,l,a,s){if(!l)return;const r=l?l.key:a.key,c=await e.get("@keet/member-label-digests",{key:r})||{key:r,total:0,labels:[],editedAt:0,flagsClock:0};1!==(l||a).label||(t.stats.chat.flagsClock+=1,c.flagsClock=t.stats.chat.flagsClock),c.editedAt=s,l?(function(e,t){const l=e.labels.findIndex(e=>e.label===t);-1===l?e.labels.push({label:t,count:1}):e.labels[l].count+=1}(c,l.label),t.stats.chat.clock+=1,c.total+=1):(function(e,t){const l=e.labels.findIndex(e=>e.label===t);if(-1===l)return;const a=e.labels[l];a.count-=1,a.count>0||e.labels.splice(l,1)}(c,a.label),t.stats.chat.clock-=1,c.total-=1),await Promise.all([e.insert("@keet/threads",t),e.insert("@keet/member-label-digests",c)])}(i,k,d,null,e.timestamp)}module.exports={[e]:function(e){e.add("@keet/add-member-label",r)}};
1const e=require("../registration"),{isMemberActive:t,getMemberForDeviceKey:l}=require("../query"),a=require("b4a"),{KeetContractError:r}=require("../errors"),{trackActivity:s}=require("../hooks");async function i({header:e,key:s,label:i},{db:c,writer:o}){const[n,k,b]=await Promise.all([l(c,o.key),c.get("@keet/members",{key:s}),c.get("@keet/threads",{id:0})]);if(!t(n)||!k||a.equals(n.key,k.key))throw r.ABORT();if(await c.get("@keet/member-labels",{key:k.key,sender:n.key,label:i}))throw r.ABORT();const d={key:k.key,sender:n.key,clock:b.stats.chat.clock,label:i};return await c.insert("@keet/member-labels",d),await async function(e,t,l,a,r){if(!l)return;const s=l?l.key:a.key,i=await e.get("@keet/member-label-digests",{key:s})||{key:s,total:0,labels:[],editedAt:0,flagsClock:0};1!==(l||a).label||(t.stats.chat.flagsClock+=1,i.flagsClock=t.stats.chat.flagsClock),i.editedAt=r,l?(function(e,t){const l=e.labels.findIndex(e=>e.label===t);-1===l?e.labels.push({label:t,count:1}):e.labels[l].count+=1}(i,l.label),t.stats.chat.clock+=1,i.total+=1):(function(e,t){const l=e.labels.findIndex(e=>e.label===t);if(-1===l)return;const a=e.labels[l];a.count-=1,a.count>0||e.labels.splice(l,1)}(i,a.label),t.stats.chat.clock-=1,i.total-=1),await Promise.all([e.insert("@keet/threads",t),e.insert("@keet/member-label-digests",i)])}(c,b,d,null,e.timestamp),{writer:o,writerMember:n}}module.exports={[e]:function(e){e.add("@keet/add-member-label",s(i))}};
@holepunchto/keet-core/lib/core/contract/reactions.js +1 -1
……@@ -1 +1 @@
1const e=require("./registration"),{isMemberActive:t,getMemberForDeviceKey:i}=require("./query"),{reactionStats:r}=require("./stats"),{KeetContractError:a}=require("./errors");async function o({header:e,oplog:o,reaction:s},{db:n,writer:c}){const[d,k,u]=await Promise.all([i(n,c.key),n.get("@keet/chat-by-message-id",{oplog:o}),n.get("@keet/threads",{id:0})]);if(!t(d)||!k||d.status.isMuted||!s)return;if(await n.get("@keet/reactions",{id:k.id,sender:d.key,reaction:s}))throw a.ABORT();const l={id:k.id,sender:d.key,clock:u.stats.chat.clock,reaction:s};await n.insert("@keet/reactions",l),await r(n,u,l,null,e.timestamp)}async function s({header:e,oplog:o,reaction:s},{db:n,writer:c}){const[d,k,u]=await Promise.all([i(n,c.key),n.get("@keet/chat-by-message-id",{oplog:o}),n.get("@keet/threads",{id:0})]);if(!t(d)||!k||d.status.isMuted)return;const l=await n.get("@keet/reactions",{id:k.id,sender:d.key,reaction:s});if(!l)throw a.ABORT();await n.delete("@keet/reactions",l),await r(n,u,null,l,e.timestamp)}module.exports={[e]:function(e){e.add("@keet/add-reaction",o),e.add("@keet/remove-reaction",s)}};
1const e=require("./registration"),{isMemberActive:t,getMemberForDeviceKey:r}=require("./query"),{reactionStats:i}=require("./stats"),{KeetContractError:a}=require("./errors"),{trackActivity:o}=require("./hooks");async function s({header:e,oplog:o,reaction:s},{db:n,writer:c}){const[d,u,k]=await Promise.all([r(n,c.key),n.get("@keet/chat-by-message-id",{oplog:o}),n.get("@keet/threads",{id:0})]);if(!t(d)||!u||d.status.isMuted||!s)return;if(await n.get("@keet/reactions",{id:u.id,sender:d.key,reaction:s}))throw a.ABORT();const l={id:u.id,sender:d.key,clock:k.stats.chat.clock,reaction:s};return await n.insert("@keet/reactions",l),await i(n,k,l,null,e.timestamp),{writer:c,writerMember:d}}async function n({header:e,oplog:o,reaction:s},{db:n,writer:c}){const[d,u,k]=await Promise.all([r(n,c.key),n.get("@keet/chat-by-message-id",{oplog:o}),n.get("@keet/threads",{id:0})]);if(!t(d)||!u||d.status.isMuted)return;const l=await n.get("@keet/reactions",{id:u.id,sender:d.key,reaction:s});if(!l)throw a.ABORT();return await n.delete("@keet/reactions",l),await i(n,k,null,l,e.timestamp),{writer:c,writerMember:d}}module.exports={[e]:function(e){e.add("@keet/add-reaction",o(s)),e.add("@keet/remove-reaction",o(n))}};
@holepunchto/keet-core/lib/core/contract/roles.js +1 -0
……@@ -0,0 +1 @@
1module.exports={ADMIN:{weight:2},WRITER:{weight:1},READER:{weight:0}};
@holepunchto/keet-core/lib/core/files/index.js +1 -1
……@@ -1 +1 @@
1const e=require("path"),t=require("fs"),a=require("hypercore-blob-server"),i=require("hyperblobs"),r=require("ready-resource"),n=require("safety-catch"),o=require("hypercore-id-encoding"),s=require("speedometer"),{pipelinePromise:l,Readable:c,Transform:d,pipeline:y}=require("streamx"),h=require("b4a");module.exports=class extends r{constructor(e,t={}){super(),this.keet=e,this.local=e.local,this.store=e.store,this.server=new a(this.store.session(),{resolve:this._resolveEncryptionKey.bind(this)}),this._activeDownloads=new Map,this._onerror=t.onerror||n,this.ready().catch(this._onerror)}_open(){return this.server.listen()}_close(){return this.server.close()}async _resolveEncryptionKey(e,{blob:t,filename:a,drive:i,version:r}){const n=i?"@local/drive-files":"@local/blob-files",o={pointer:{externalDrive:{key:i,path:a&&a.startsWith("/")?a.slice(1):a,version:r},externalBlob:{key:e,blob:t}}},s=await this.local.get(n,{file:o});return s&&await this.keet.internalBlobsActiveInRoom(s.roomKey),s?{key:e,encryptionKey:s.encryptionKey}:null}_getLinkOptions(e){if(!e.pointer?.externalBlob&&!e.pointer?.externalDrive)throw new Error("Invalid file pointer");return e.pointer.externalBlob?{collection:"@local/blob-files",key:e.pointer.externalBlob.key,opts:{blob:e.pointer.externalBlob.blob,type:e.metadata?.mimetype}}:{collection:"@local/drive-files",key:e.pointer.externalDrive.key,opts:{filename:e.pointer.externalDrive.path,version:e.pointer.externalDrive.version}}}async _clearAllFiles(e,t,a,{leaving:i=!1}={}){const r=t?"@local/blob-files":"@local/drive-files",o=t?"@local/blob-files-by-room":"@local/drive-files-by-room",s=[];for await(const t of e.find(o,{gte:{roomKey:a},lte:{roomKey:a}})){if(t.cleared)continue;const{key:a,opts:o}=this._getLinkOptions(t.file),l=this.server.clear(a,o);l.catch(n),s.push(l),i?await e.delete(r,t):await e.insert(r,{...t,cleared:!0})}return(await Promise.allSettled(s)).filter(e=>"fulfilled"===e.status).reduce((e,t)=>e+t.value,0)}async _findAndClearOldFiles(e,t){const a=[];for await(const i of this.local.find(e,{lte:{lastAccessed:t}}))i.cleared||a.push(i);const i=[];for(const e of a){const{key:t,opts:a}=this._getLinkOptions(e.file),r=this.server.clear(t,a);r.catch(n),i.push(r)}return{recordsToClear:a,bytesCleared:(await Promise.allSettled(i)).filter(e=>"fulfilled"===e.status).reduce((e,t)=>e+t.value,0)}}async _createFile(e,t,a){const i={metadata:a,pointer:{externalBlob:{key:e.externalBlobs.key,blob:t}}};i.metadata?.userdata&&(i.metadata.userdata=h.from(i.metadata.userdata,"base64"));const r=await this.keet.internalEnterLocalTransaction();try{const t={file:i,roomKey:e.key,encryptionKey:e.encryptionKey,cleared:!1,own:!0,lastAccessed:Date.now()};await r.insert("@local/blob-files",t),await this._updateFileStats(r,t),await r.flush()}finally{await this.keet.internalExitLocalTransaction()}return i}async saveFile(a,i,r){this.opened||await this.ready();const n=e.basename(i),o=this.keet.internalOpenExistingRoom(a);try{await this.keet.internalBlobsActiveInRoom(a);const e=t.createReadStream(i),s=o.externalBlobs.createWriteStream(r);return await l(e,s),this._createFile(o,s.id,{name:n,...r})}finally{this.keet.internalReleaseRoom(o)}}subscribeAddFile(a,i,r={}){const o=e.basename(i),s=this,l=new c;return t.stat(i,(e,c)=>{if(l.destroyed)return;if(e)return l.destroy(e);let d=0;const y=c.size,h=t.createReadStream(i),p=s.keet.internalOpenExistingRoom(a),u=p.externalBlobs.createWriteStream(r);this.keet.internalBlobsActiveInRoom(a).catch(n);let w=setInterval(()=>{l.destroyed||d<y&&l.push({bytesAdded:d,byteLength:y,result:null})},r?.debounceTime??500);h.pipe(u),h.on("data",e=>{d+=e.byteLength}),h.on("error",e=>l.destroy(e)),u.on("close",async()=>{if(w&&clearInterval(w),w=null,!l.destroyed)try{const e=await s._createFile(p,u.id,{name:o,...r});l.push({bytesAdded:d,byteLength:y,result:e}),l.push(null)}catch(e){l.destroy(e)}}),l.on("error",e=>{h.destroy(e)}),l.on("close",()=>{w&&clearInterval(w),w=null,h.destroy(),u.destroy(),s.keet.internalReleaseRoom(p)}),r.onFileStat&&r.onFileStat()}),l}async saveFileBlob(e,t,a){this.opened||await this.ready();const i=this.keet.internalOpenExistingRoom(e);try{await this.keet.internalBlobsActiveInRoom(e);const r=await i.externalBlobs.put(t);return this._createFile(i,r,a)}finally{this.keet.internalReleaseRoom(i)}}async clearAllFiles(e,t){let a=0,i=0;const r=await this.keet.internalEnterLocalTransaction();try{a=await this._clearAllFiles(r,!0,e,t),i=await this._clearAllFiles(r,!1,e,t),await r.insert("@local/file-stats",{roomKey:e,total:0}),await r.flush()}finally{await this.keet.internalExitLocalTransaction()}return{bytesCleared:a+i}}async clearOldFiles(){const e=Date.now()-6048e5,t=new Set,a=await this._findAndClearOldFiles("@local/blob-files-by-last-accessed",e),i=await this._findAndClearOldFiles("@local/drive-files-by-last-accessed",e),r=await this.keet.internalEnterLocalTransaction();try{for(const e of a.recordsToClear)await r.insert("@local/blob-files",{...e,cleared:!0}),await this._updateFileStats(r,{...e,cleared:!0}),t.add(o.encode(e.roomKey));for(const e of i.recordsToClear)await r.insert("@local/drive-files",{...e,cleared:!0}),await this._updateFileStats(r,{...e,cleared:!0}),t.add(o.encode(e.roomKey));await r.insert("@local/file-gc-info",{lastCleared:Date.now()}),await r.flush()}finally{await this.keet.internalExitLocalTransaction()}for(const e of t)this.keet.emit("local-files-changed",e);return{bytesCleared:a.bytesCleared+i.bytesCleared}}async _ensureLocalFile(e,t,a){const i=await this.keet.internalEnterLocalTransaction();try{await this.keet.internalBlobsActiveInRoom(t);const r=await i.get(e,{roomKey:t,file:a});let n=r?.encryptionKey;if(!n){const e=await i.get("@local/rooms",{roomKey:t});n=e?.encryptionKey}const s={...r,cleared:r?.cleared??!1,roomKey:t,encryptionKey:n,file:a,lastAccessed:Date.now()};return await i.insert(e,s),r||await this._updateFileStats(i,s),await i.flush(),r||this.keet.emit("local-files-changed",o.encode(t)),s}finally{await this.keet.internalExitLocalTransaction()}}async _loadBlob(e,t){const a=this.keet.internalOpenExistingRoom(e);try{return await a.ready(),await a.blobs.get(t)}finally{this.keet.internalReleaseRoom(a)}}async getFileLink(e,t){if(this.opened||await this.ready(),t.pointer.blob){const a=await this._loadBlob(e,t.pointer.blob);return this.server.getBlobLink(a,{type:t.metadata?.mimetype})}const{collection:a,key:i,opts:r}=this._getLinkOptions(t);return await this._ensureLocalFile(a,e,t),this.server.getLink(i,r)}async getFileEntry(e,t,a={}){if(!t)return null;this.opened||await this.ready();const i={roomKey:e,encryptionKey:null,cleared:!1,httpLink:null};if(!t.pointer.externalBlob&&!t.pointer.externalDrive&&!t.pointer.blob)return i;if(t.pointer.blob){const r=a.loadBlob?await a.loadBlob(t.pointer.blob):await this._loadBlob(e,t.pointer.blob);return i.httpLink=this.server.getBlobLink(r,{type:t.metadata?.mimetype}),i}const{collection:r,key:n,opts:o}=this._getLinkOptions(t);return{...await this._ensureLocalFile(r,e,t),httpLink:this.server.getLink(n,o)}}async getFileEntryWithPreview(e,t,a={}){this.opened||await this.ready();const i=await this.getFileEntry(e,t,a);if(!t.preview)return i;const[r,n,o]=await Promise.all([this.getFileEntry(e,t.preview.small,a),this.getFileEntry(e,t.preview.medium,a),this.getFileEntry(e,t.preview.large,a)]);return i.preview={small:r,medium:n,large:o},i}async getFileCleared(e,t){const{collection:a}=this._getLinkOptions(t),i=await this.local.get(a,{file:t});return!!i&&i.cleared}async getLocalFiles(e){return(await Promise.all([this.local.find("@local/blob-files-by-room",{gte:{roomKey:e},lte:{roomKey:e}}).toArray(),this.local.find("@local/drive-files-by-room",{gte:{roomKey:e},lte:{roomKey:e}}).toArray()])).flat()}async clearFile(e,t){if(!t?.pointer?.externalBlob&&!t?.pointer?.externalDrive)return;const{collection:a,key:i,opts:r}=this._getLinkOptions(t),n=await this.keet.internalEnterLocalTransaction();try{const o=await n.get(a,{roomKey:e,file:t});if(!o||o.cleared)return;await this.server.clear(i,r);const s={roomKey:e,file:t,lastAccessed:o.lastAccessed??Date.now(),cleared:!0};await n.insert(a,s),await this._updateFileStats(n,s),await n.flush()}finally{await this.keet.internalExitLocalTransaction()}}async unclearFile(e,t){const{collection:a}=this._getLinkOptions(t),i=await this.keet.internalEnterLocalTransaction();try{const r=await i.get(a,{roomKey:e,file:t});if(!r||!r.cleared)return;const n={roomKey:e,file:t,lastAccessed:Date.now(),cleared:!1};await i.insert(a,n),await this._updateFileStats(i,n),await i.flush()}finally{await this.keet.internalExitLocalTransaction()}}async startDownload(e,t){this.opened||await this.ready();const{key:a,opts:i}=this._getLinkOptions(t),r=this.server.getLink(a,{...i,url:!1}),n=this.server.download(a,i);return this._activeDownloads.set(r,n),n.done().then(()=>{this._activeDownloads.get(r)===n&&this._activeDownloads.delete(r)}),r}async cancelDownload(e,t){this.opened||await this.ready();const a=this._activeDownloads.get(t);t&&a&&await a.close().finally(()=>{this._activeDownloads.get(t)===a&&this._activeDownloads.delete(t)})}readFileStream(e,t,{includeProgress:a=!1}={}){if(!t.pointer.externalBlob)throw new Error("Only external blob files support streaming");const i=this,r=new c({open(n){i._openReadStream(e,t,r,a).then(n,n)}});return r}async _openReadStream(e,t,a,r){this.opened||await this.ready();const o=t.pointer.externalBlob.blob,l=t.pointer.externalBlob.key,{collection:c}=this._getLinkOptions(t),d=await this._ensureLocalFile(c,e,t),y=r?s():null,h=this.store.get({key:l,encryptionKey:d.encryptionKey,encrypted:!0,active:!1});await h.ready();const p=new i(h).createReadStream(o);let u=0;p.on("data",e=>{if(!r)return void a.push(e);u+=e.length;const t=y(e.length);a.push({data:e,speed:t,progress:{bytesRead:u,byteLength:o.byteLength,percentage:Math.round(u/o.byteLength*100)}})}),p.on("end",()=>{a.push(null)}),p.on("error",e=>a.destroy(e)),a.once("close",()=>{p.destroy(),h.close().catch(n)})}subscribeSaveToDisk(e,a,i,{progressInterval:r=50}={}){this.opened||this.ready();const n=this.readFileStream(e,a,{includeProgress:!0}),o=t.createWriteStream(i),s=new c;s.once("close",()=>o.destroy()),s.once("error",e=>o.destroy(e));let l=0;return y(n,new d({transform(e,t){if(s.destroyed)return t(null);const{data:a,...i}=e,n=Date.now();i.done=i.progress.bytesRead===i.progress.byteLength,(i.done||n-l>r)&&(l=n,s.push(i)),this.push(a),t(null)}}),o,e=>{s.destroyed||(s.push(null),e&&s.destroy(e))}),s}async saveToDisk(e,a,i){this.opened||await this.ready();const r=this.readFileStream(e,a),n=t.createWriteStream(i);await l(r,n)}async refreshLinks(e){this.opened||await this.ready();const t=[];for(const a of e)t.push(this.server.refreshLink(a));return t}async monitor(e,t){this.opened||await this.ready();const{key:a,opts:i}=this._getLinkOptions(t);return this.server.monitor(a,i)}async _updateFileStats(e,{roomKey:t,file:a,cleared:i}){const r=a.pointer.externalBlob?.blob.byteLength;if(!r)return;let n=await e.get("@local/file-stats",{roomKey:t});n||(n={roomKey:t,total:0});const o=i?-r:r;n.total=Math.max(n.total+o,0),await e.insert("@local/file-stats",n)}};
1const e=require("path"),t=require("fs"),a=require("hypercore-blob-server"),i=require("hyperblobs"),r=require("ready-resource"),n=require("safety-catch"),o=require("hypercore-id-encoding"),s=require("speedometer"),{pipelinePromise:l,Readable:c,Transform:d,pipeline:y}=require("streamx"),h=require("b4a"),{KeetErrorV2:p}=require("../../errors");function u(e){return"string"==typeof e&&!e.includes("\0")&&!e.split(/[/\\]/).includes("..")}module.exports=class extends r{constructor(e,t={}){super(),this.keet=e,this.local=e.local,this.store=e.store,this.server=new a(this.store.session(),{resolve:this._resolveEncryptionKey.bind(this)}),this._activeDownloads=new Map,this._onerror=t.onerror||n,this.ready().catch(this._onerror)}_open(){return this.server.listen()}_close(){return this.server.close()}async _resolveEncryptionKey(e,{blob:t,filename:a,drive:i,version:r}){const n=i?"@local/drive-files":"@local/blob-files",o={pointer:{externalDrive:{key:i,path:a&&a.startsWith("/")?a.slice(1):a,version:r},externalBlob:{key:e,blob:t}}},s=await this.local.get(n,{file:o});return s&&await this.keet.internalBlobsActiveInRoom(s.roomKey),s?{key:e,encryptionKey:s.encryptionKey}:null}_getLinkOptions(e){if(!e.pointer?.externalBlob&&!e.pointer?.externalDrive)throw new Error("Invalid file pointer");return e.pointer.externalBlob?{collection:"@local/blob-files",key:e.pointer.externalBlob.key,opts:{blob:e.pointer.externalBlob.blob,type:e.metadata?.mimetype}}:{collection:"@local/drive-files",key:e.pointer.externalDrive.key,opts:{filename:e.pointer.externalDrive.path,version:e.pointer.externalDrive.version}}}async _clearAllFiles(e,t,a,{leaving:i=!1}={}){const r=t?"@local/blob-files":"@local/drive-files",o=t?"@local/blob-files-by-room":"@local/drive-files-by-room",s=[];for await(const t of e.find(o,{gte:{roomKey:a},lte:{roomKey:a}})){if(t.cleared)continue;const{key:a,opts:o}=this._getLinkOptions(t.file),l=this.server.clear(a,o);l.catch(n),s.push(l),i?await e.delete(r,t):await e.insert(r,{...t,cleared:!0})}return(await Promise.allSettled(s)).filter(e=>"fulfilled"===e.status).reduce((e,t)=>e+t.value,0)}async _findAndClearOldFiles(e,t){const a=[];for await(const i of this.local.find(e,{lte:{lastAccessed:t}}))i.cleared||a.push(i);const i=[];for(const e of a){const{key:t,opts:a}=this._getLinkOptions(e.file),r=this.server.clear(t,a);r.catch(n),i.push(r)}return{recordsToClear:a,bytesCleared:(await Promise.allSettled(i)).filter(e=>"fulfilled"===e.status).reduce((e,t)=>e+t.value,0)}}async _createFile(e,t,a){const i={metadata:a,pointer:{externalBlob:{key:e.externalBlobs.key,blob:t}}};i.metadata?.userdata&&(i.metadata.userdata=h.from(i.metadata.userdata,"base64"));const r=await this.keet.internalEnterLocalTransaction();try{const t={file:i,roomKey:e.key,encryptionKey:e.encryptionKey,cleared:!1,own:!0,lastAccessed:Date.now()};await r.insert("@local/blob-files",t),await this._updateFileStats(r,t),await r.flush()}finally{await this.keet.internalExitLocalTransaction()}return i}async saveFile(a,i,r){if(this.opened||await this.ready(),!u(i))throw p.INVALID_FILE_PATH();const n=e.basename(i),o=this.keet.internalOpenExistingRoom(a);try{await this.keet.internalBlobsActiveInRoom(a);const e=t.createReadStream(i),s=o.externalBlobs.createWriteStream(r);return await l(e,s),this._createFile(o,s.id,{name:n,...r})}finally{this.keet.internalReleaseRoom(o)}}subscribeAddFile(a,i,r={}){if(!u(i))throw p.INVALID_FILE_PATH();const o=e.basename(i),s=this,l=new c;return t.stat(i,(e,c)=>{if(l.destroyed)return;if(e)return l.destroy(e);let d=0;const y=c.size,h=t.createReadStream(i),p=s.keet.internalOpenExistingRoom(a),u=p.externalBlobs.createWriteStream(r);this.keet.internalBlobsActiveInRoom(a).catch(n);let w=setInterval(()=>{l.destroyed||d<y&&l.push({bytesAdded:d,byteLength:y,result:null})},r?.debounceTime??500);h.pipe(u),h.on("data",e=>{d+=e.byteLength}),h.on("error",e=>l.destroy(e)),u.on("close",async()=>{if(w&&clearInterval(w),w=null,!l.destroyed)try{const e=await s._createFile(p,u.id,{name:o,...r});l.push({bytesAdded:d,byteLength:y,result:e}),l.push(null)}catch(e){l.destroy(e)}}),l.on("error",e=>{h.destroy(e)}),l.on("close",()=>{w&&clearInterval(w),w=null,h.destroy(),u.destroy(),s.keet.internalReleaseRoom(p)}),r.onFileStat&&r.onFileStat()}),l}async saveFileBlob(e,t,a){this.opened||await this.ready();const i=this.keet.internalOpenExistingRoom(e);try{await this.keet.internalBlobsActiveInRoom(e);const r=await i.externalBlobs.put(t);return this._createFile(i,r,a)}finally{this.keet.internalReleaseRoom(i)}}async clearAllFiles(e,t){let a=0,i=0;const r=await this.keet.internalEnterLocalTransaction();try{a=await this._clearAllFiles(r,!0,e,t),i=await this._clearAllFiles(r,!1,e,t),await r.insert("@local/file-stats",{roomKey:e,total:0}),await r.flush()}finally{await this.keet.internalExitLocalTransaction()}return{bytesCleared:a+i}}async clearOldFiles(){const e=Date.now()-6048e5,t=new Set,a=await this._findAndClearOldFiles("@local/blob-files-by-last-accessed",e),i=await this._findAndClearOldFiles("@local/drive-files-by-last-accessed",e),r=await this.keet.internalEnterLocalTransaction();try{for(const e of a.recordsToClear)await r.insert("@local/blob-files",{...e,cleared:!0}),await this._updateFileStats(r,{...e,cleared:!0}),t.add(o.encode(e.roomKey));for(const e of i.recordsToClear)await r.insert("@local/drive-files",{...e,cleared:!0}),await this._updateFileStats(r,{...e,cleared:!0}),t.add(o.encode(e.roomKey));await r.insert("@local/file-gc-info",{lastCleared:Date.now()}),await r.flush()}finally{await this.keet.internalExitLocalTransaction()}for(const e of t)this.keet.emit("local-files-changed",e);return{bytesCleared:a.bytesCleared+i.bytesCleared}}async _ensureLocalFile(e,t,a){const i=await this.keet.internalEnterLocalTransaction();try{await this.keet.internalBlobsActiveInRoom(t);const r=await i.get(e,{roomKey:t,file:a});let n=r?.encryptionKey;if(!n){const e=await i.get("@local/rooms",{roomKey:t});n=e?.encryptionKey}const s={...r,cleared:r?.cleared??!1,roomKey:t,encryptionKey:n,file:a,lastAccessed:Date.now()};return await i.insert(e,s),r||await this._updateFileStats(i,s),await i.flush(),r||this.keet.emit("local-files-changed",o.encode(t)),s}finally{await this.keet.internalExitLocalTransaction()}}async _loadBlob(e,t){const a=this.keet.internalOpenExistingRoom(e);try{return await a.ready(),await a.engine.getBlob(t)}finally{this.keet.internalReleaseRoom(a)}}async getFileLink(e,t){if(this.opened||await this.ready(),t.pointer.blob){const a=await this._loadBlob(e,t.pointer);return this.server.getBlobLink(a,{type:t.metadata?.mimetype})}const{collection:a,key:i,opts:r}=this._getLinkOptions(t);return await this._ensureLocalFile(a,e,t),this.server.getLink(i,r)}async getFileEntry(e,t,a={}){if(!t)return null;this.opened||await this.ready();const i={roomKey:e,encryptionKey:null,cleared:!1,httpLink:null};if(!(t.pointer.externalBlob||t.pointer.externalDrive||t.pointer.blob||t.pointer.bee))return i;if(t.pointer.blob||t.pointer.bee){const r=a.loadBlob?await a.loadBlob(t.pointer):await this._loadBlob(e,t.pointer);return i.httpLink=this.server.getBlobLink(r,{type:t.metadata?.mimetype}),i}const{collection:r,key:n,opts:o}=this._getLinkOptions(t);return{...await this._ensureLocalFile(r,e,t),httpLink:this.server.getLink(n,o)}}async getFileEntryWithPreview(e,t,a={}){this.opened||await this.ready();const i=await this.getFileEntry(e,t,a);if(!t.preview)return i;const[r,n,o]=await Promise.all([this.getFileEntry(e,t.preview.small,a),this.getFileEntry(e,t.preview.medium,a),this.getFileEntry(e,t.preview.large,a)]);return i.preview={small:r,medium:n,large:o},i}async getFileCleared(e,t){const{collection:a}=this._getLinkOptions(t),i=await this.local.get(a,{file:t});return!!i&&i.cleared}async getLocalFiles(e){return(await Promise.all([this.local.find("@local/blob-files-by-room",{gte:{roomKey:e},lte:{roomKey:e}}).toArray(),this.local.find("@local/drive-files-by-room",{gte:{roomKey:e},lte:{roomKey:e}}).toArray()])).flat()}async clearFile(e,t){if(!t?.pointer?.externalBlob&&!t?.pointer?.externalDrive)return;const{collection:a,key:i,opts:r}=this._getLinkOptions(t),n=await this.keet.internalEnterLocalTransaction();try{const o=await n.get(a,{roomKey:e,file:t});if(!o||o.cleared)return;await this.server.clear(i,r);const s={roomKey:e,file:t,lastAccessed:o.lastAccessed??Date.now(),cleared:!0};await n.insert(a,s),await this._updateFileStats(n,s),await n.flush()}finally{await this.keet.internalExitLocalTransaction()}}async unclearFile(e,t){const{collection:a}=this._getLinkOptions(t),i=await this.keet.internalEnterLocalTransaction();try{const r=await i.get(a,{roomKey:e,file:t});if(!r||!r.cleared)return;const n={roomKey:e,file:t,lastAccessed:Date.now(),cleared:!1};await i.insert(a,n),await this._updateFileStats(i,n),await i.flush()}finally{await this.keet.internalExitLocalTransaction()}}async startDownload(e,t){this.opened||await this.ready();const{key:a,opts:i}=this._getLinkOptions(t),r=this.server.getLink(a,{...i,url:!1}),n=this.server.download(a,i);return this._activeDownloads.set(r,n),n.done().then(()=>{this._activeDownloads.get(r)===n&&this._activeDownloads.delete(r)}),r}async cancelDownload(e,t){this.opened||await this.ready();const a=this._activeDownloads.get(t);t&&a&&await a.close().finally(()=>{this._activeDownloads.get(t)===a&&this._activeDownloads.delete(t)})}readFileStream(e,t,{includeProgress:a=!1}={}){if(!t.pointer.externalBlob)throw new Error("Only external blob files support streaming");const i=this,r=new c({open(n){i._openReadStream(e,t,r,a).then(n,n)}});return r}async _openReadStream(e,t,a,r){this.opened||await this.ready();const o=t.pointer.externalBlob.blob,l=t.pointer.externalBlob.key,{collection:c}=this._getLinkOptions(t),d=await this._ensureLocalFile(c,e,t),y=r?s():null,h=this.store.get({key:l,encryptionKey:d.encryptionKey,encrypted:!0,active:!1});await h.ready();const p=new i(h).createReadStream(o);let u=0;p.on("data",e=>{if(!r)return void a.push(e);u+=e.length;const t=y(e.length);a.push({data:e,speed:t,progress:{bytesRead:u,byteLength:o.byteLength,percentage:Math.round(u/o.byteLength*100)}})}),p.on("end",()=>{a.push(null)}),p.on("error",e=>a.destroy(e)),a.once("close",()=>{p.destroy(),h.close().catch(n)})}subscribeSaveToDisk(e,a,i,{progressInterval:r=50}={}){if(this.opened||this.ready(),!u(i))throw p.INVALID_FILE_PATH();const n=this.readFileStream(e,a,{includeProgress:!0}),o=t.createWriteStream(i),s=new c;s.once("close",()=>o.destroy()),s.once("error",e=>o.destroy(e));let l=0;return y(n,new d({transform(e,t){if(s.destroyed)return t(null);const{data:a,...i}=e,n=Date.now();i.done=i.progress.bytesRead===i.progress.byteLength,(i.done||n-l>r)&&(l=n,s.push(i)),this.push(a),t(null)}}),o,e=>{s.destroyed||(s.push(null),e&&s.destroy(e))}),s}async saveToDisk(e,a,i){if(this.opened||await this.ready(),!u(i))throw p.INVALID_FILE_PATH();const r=this.readFileStream(e,a),n=t.createWriteStream(i);await l(r,n)}async refreshLinks(e){this.opened||await this.ready();const t=[];for(const a of e)t.push(this.server.refreshLink(a));return t}async monitor(e,t){this.opened||await this.ready();const{key:a,opts:i}=this._getLinkOptions(t);return this.server.monitor(a,i)}async _updateFileStats(e,{roomKey:t,file:a,cleared:i}){const r=a.pointer.externalBlob?.blob.byteLength;if(!r)return;let n=await e.get("@local/file-stats",{roomKey:t});n||(n={roomKey:t,total:0});const o=i?-r:r;n.total=Math.max(n.total+o,0),await e.insert("@local/file-stats",n)}};
@holepunchto/keet-core/lib/core/hyperdb/contract/keet.js +1 -1
……@@ -1 +1 @@
1module.exports.devicesTrigger=async function(e,t,s){},module.exports.membersTrigger=async function(e,t,s){},module.exports.moderatorsMap=function(e){return e.status.isModerator&&e.status.isActive?[{key:e.key}]:[]},module.exports.adminsMap=function(e){return e.status.isAdmin&&e.status.isActive?[{key:e.key}]:[]},module.exports.activeMembersMap=function(e){return e.status.isActive?[{key:e.key}]:[]},module.exports.activeDevicesMap=function(e){return e.status.isActive?[{key:e.key}]:[]},module.exports.activeDevicesByMemberKeyMap=function(e){return e.status.isActive?[{memberKey:e.memberKey}]:[]},module.exports.mutedMembersMap=function(e){return e.status.isMuted&&e.status.isActive?[{key:e.key}]:[]},module.exports.membersByMemberNameMap=function(e){return e.profile.displayName&&e.status.isActive?[{name:e.profile.displayName.toLowerCase()}]:[]},module.exports.threadsByParentMap=function(e){return e.parent?[{thread:e.parent.key,index:e.parent.seq}]:[]},module.exports.chatTrigger=async function(e,t,s){},module.exports.chatByMessageIdMap=function(e){return[{key:e.id.key,seq:e.id.seq}]},module.exports.chatMentionsByMemberIdMap=function(e){const t=e.message?.display?.mention;if(!t)return[];const s=[];for(const i of t)s.push({key:i.memberKey,clock:e.clock});return s},module.exports.pinnedChatMessagesMap=function(e){return!e.status.isPinned||e.status.isDeleted?[]:[{thread:e.id.thread,index:e.id.index}]},module.exports.filesTrigger=async function(e,t,s){},module.exports.filesByTypeMap=function(e){const{file:t}=e;return t.metadata&&t.metadata.mimetype&&!t.metadata.isPreview?[{type:t.metadata.mimetype.split("/")[0],id:e.id}]:[]},module.exports.filesByMajorTypeMap=function(e){const{file:t,status:s}=e;if(t.metadata?.isPreview)return[];if(s.isDeleted)return[];const i=t.metadata?.mimetype&&t.metadata.mimetype.split("/")[0];return"image"===i||"video"===i||"audio"===i?[{type:i,id:e.id}]:[{type:"other",id:e.id}]},module.exports.deletedFilesMap=function(e){return e.status.isDeleted?[{id:e.id}]:[]},module.exports.activeFilesMap=function(e){return e.status.isDeleted?[]:[{id:e.id}]},module.exports.reactionsTrigger=async function(e,t,s){},module.exports.chatLabelTrigger=async function(e,t,s){},module.exports.chatLabelDigestFlagMap=function(e){const t=e.labels.find(({label:e})=>1===e);return!t||e.isDeleted?[]:[{label:t.label,clock:e.flagsClock}]},module.exports.memberLabelDigestFlagMap=function(e){const t=e.labels.find(({label:e})=>1===e);return t?[{label:t.label,clock:e.flagsClock}]:[]},module.exports.activeCallsMap=function(e){return e.endedAt?[]:[{createdAt:e.createdAt}]};
1module.exports.devicesTrigger=async function(e,t,s){},module.exports.membersTrigger=async function(e,t,s){},module.exports.moderatorsMap=function(e){return e.status.isModerator&&e.status.isActive?[{key:e.key}]:[]},module.exports.adminsMap=function(e){return e.status.isAdmin&&e.status.isActive?[{key:e.key}]:[]},module.exports.adminsByMostRecentMap=function(e){return e.status.isAdmin&&e.status.isActive?[{clock:e.clock}]:[]},module.exports.activeMembersMap=function(e){return e.status.isActive?[{key:e.key}]:[]},module.exports.activeDevicesMap=function(e){return e.status.isActive?[{key:e.key}]:[]},module.exports.activeDevicesByMemberKeyMap=function(e){return e.status.isActive?[{memberKey:e.memberKey}]:[]},module.exports.mutedMembersMap=function(e){return e.status.isMuted&&e.status.isActive?[{key:e.key}]:[]},module.exports.membersByMemberNameMap=function(e){return e.profile.displayName&&e.status.isActive?[{name:e.profile.displayName.toLowerCase()}]:[]},module.exports.threadsByParentMap=function(e){return e.parent?[{thread:e.parent.key,index:e.parent.seq}]:[]},module.exports.chatTrigger=async function(e,t,s){},module.exports.chatByMessageIdMap=function(e){return[{key:e.id.key,seq:e.id.seq}]},module.exports.chatMentionsByMemberIdMap=function(e){const t=e.message?.display?.mention;if(!t)return[];const s=[];for(const i of t)s.push({key:i.memberKey,clock:e.clock});return s},module.exports.pinnedChatMessagesMap=function(e){return!e.status.isPinned||e.status.isDeleted?[]:[{thread:e.id.thread,index:e.id.index}]},module.exports.filesTrigger=async function(e,t,s){},module.exports.filesByTypeMap=function(e){const{file:t}=e;return t.metadata&&t.metadata.mimetype&&!t.metadata.isPreview?[{type:t.metadata.mimetype.split("/")[0],id:e.id}]:[]},module.exports.filesByMajorTypeMap=function(e){const{file:t,status:s}=e;if(t.metadata?.isPreview)return[];if(s.isDeleted)return[];const i=t.metadata?.mimetype&&t.metadata.mimetype.split("/")[0];return"image"===i||"video"===i||"audio"===i?[{type:i,id:e.id}]:[{type:"other",id:e.id}]},module.exports.deletedFilesMap=function(e){return e.status.isDeleted?[{id:e.id}]:[]},module.exports.activeFilesMap=function(e){return e.status.isDeleted?[]:[{id:e.id}]},module.exports.reactionsTrigger=async function(e,t,s){},module.exports.chatLabelTrigger=async function(e,t,s){},module.exports.chatLabelDigestFlagMap=function(e){const t=e.labels.find(({label:e})=>1===e);return!t||e.isDeleted?[]:[{label:t.label,clock:e.flagsClock}]},module.exports.memberLabelDigestFlagMap=function(e){const t=e.labels.find(({label:e})=>1===e);return t?[{label:t.label,clock:e.flagsClock}]:[]},module.exports.activeCallsMap=function(e){return e.endedAt?[]:[{createdAt:e.createdAt}]};
@holepunchto/keet-core/lib/core/hyperdb/local/local.js +1 -1
……@@ -1 +1 @@
1const e=require("hypercore-crypto");function t(e){return e.status.isRemoved||e.identity||e.dm&&!e.config.title?0:e.timestamps.latestChatMessage||e.timestamps.latestSync}module.exports.roomMigrationsTrigger=async function(e,t,o){},module.exports.roomsTrigger=async function(e,t,o){},module.exports.writersByRoomKeyMap=function(e){return e.roomKey?[{roomKey:e.roomKey}]:[]},module.exports.writersByWakeupTopicMap=function(t){return[{wakeupTopic:(o=t.mailbox,e.discoveryKey(o))}];var o},module.exports.roomsByTimestampMap=function(e){const o=t(e);return 0===o?[]:[{timestamp:o}]},module.exports.roomsByTypeAndTimestampMap=function(e){const o=t(e);return 0===o?[]:[{type:e.digest.settings.roomType,timestamp:o}]},module.exports.roomsByMailboxMap=function(e){return e.mailbox?[{mailbox:e.mailbox}]:[]},module.exports.roomsByWakeupMap=function(t){return[{discoveryKey:e.discoveryKey(t.mailbox)}]},module.exports.membersByDeviceKeyMap=function(e){return e.devices.map(e=>({key:e}))},module.exports.activeContactsMap=function(e){return!e.status.isActive||e.status.isBlocked?[]:[{memberKey:e.memberKey}]},module.exports.blockedContactsMap=function(e){return e.status.isBlocked?[{memberKey:e.memberKey}]:[]},module.exports.dirtyByTimestampMap=function(e){return e.dirty?[{timestamp:e.timestamp}]:[]},module.exports.roomsByContactMap=function(e){return t(e)?!e.dm||e.dm.length>1?[]:[{contact:e.dm[0]}]:[]},module.exports.roomsByFavoriteAndTimestampMap=function(e){const o=t(e);return 0===o?[]:e.preferences?.isFavorite?[{timestamp:o}]:[]};
1const e=require("hypercore-crypto"),t=require("b4a");function o(e){return e.status.isRemoved||e.identity||e.dm&&!e.config.title?0:e.timestamps.latestChatMessage||e.timestamps.latestSync}module.exports.roomMigrationsTrigger=async function(e,t,o){},module.exports.roomsTrigger=async function(e,t,o){},module.exports.sameHead=function(e,o){return!(!e||!o||e.length!==o.length)&&(e.key&&o.key?t.equals(e.key,o.key):!e.key&&!o.key)},module.exports.writersByRoomKeyMap=function(e){return e.roomKey?[{roomKey:e.roomKey}]:[]},module.exports.writersByWakeupTopicMap=function(t){return[{wakeupTopic:(o=t.mailbox,e.discoveryKey(o))}];var o},module.exports.roomsByTimestampMap=function(e){const t=o(e);return 0===t?[]:[{timestamp:t}]},module.exports.roomsByTypeAndTimestampMap=function(e){const t=o(e);return 0===t?[]:[{type:e.digest.settings.roomType,timestamp:t}]},module.exports.roomsByMailboxMap=function(e){return e.mailbox?[{mailbox:e.mailbox}]:[]},module.exports.roomsByWakeupMap=function(t){return[{discoveryKey:e.discoveryKey(t.mailbox)}]},module.exports.membersByDeviceKeyMap=function(e){return e.devices.map(e=>({key:e}))},module.exports.activeContactsMap=function(e){return!e.status.isActive||e.status.isBlocked?[]:[{memberKey:e.memberKey}]},module.exports.blockedContactsMap=function(e){return e.status.isBlocked?[{memberKey:e.memberKey}]:[]},module.exports.dirtyByTimestampMap=function(e){return e.dirty?[{timestamp:e.timestamp}]:[]},module.exports.roomsByContactMap=function(e){return o(e)?!e.dm||e.dm.length>1?[]:[{contact:e.dm[0]}]:[]},module.exports.roomsByActiveCallMap=function(e){return e.activeCall?e.status.isRemoved?[]:[{timestamp:e.activeCall.createdAt||0}]:[]},module.exports.roomsByFavoriteAndTimestampMap=function(e){const t=o(e);return 0===t?[]:e.preferences?.isFavorite?[{timestamp:t}]:[]};
@holepunchto/keet-core/lib/core/invitations/index.js +1 -1
……@@ -1 +1 @@
1const e=require("autobase"),t=require("hypercore"),r=require("deterministic-sealed-box"),n=require("keet-identity-key"),i=require("hypercore-crypto"),{contract:{hyperschema:{encode:o,decode:c},hyperdispatch:{encode:a}}}=require("../../../schema/spec"),{KeetContractError:u}=require("./../contract/errors"),s=require("@holepunchto/keet-registry"),[d,y,p,v,f,l,m]=i.namespace("@holepunchto/keet-core/invitations",7);function h(e,t,r){const c=o("@keet-private-id/contact-request-body",r),a=n.attestData(c,t.deviceKeyPair,t.deviceProof),u={memberKey:t.publicKey,proof:a},s=o("@keet-private-id/contact-request",{body:r,attestation:u});return i.encrypt(s,e)}function K(t,{heads:r}={}){const n=a("@keet/add-device",{header:{timestamp:Date.now()},blindRequest:t});return e.encodeValue(n,{optimistic:!0,encrypted:!0,heads:r})}function b(e,{device:t,member:r}){const n=o("@keet/device-request",{withMemberProof:{device:t,member:r}});return{blindRequest:i.encrypt(n,e)}}function q(e,t,r,n,{device:c,member:a},u){const s=k(n),d=s.publicKey,p={deviceKey:e,identity:u?.identity,keyPair:r,device:c,member:a},v=o("@keet/device-request-with-invitation",p),f=i.sign(i.hash([y,v]),s.secretKey),l=o("@keet/device-request",{withInvitation:{id:d,request:p,signature:f}});return{blindRequest:i.encrypt(l,t)}}function k(e){return i.keyPair(i.hash([d,e]))}function P(e,t){return i.encryptionKeyPair(i.hash([v,e,t]))}function g(e){return i.keyPair(e)}function R(e){return i.discoveryKey(e)}function w(e){return i.discoveryKey(e)}module.exports={generateIdentityPairingName:function(e){return i.hash([l,e])},generateRoomPairingName:function(e){return i.hash([m,e])},generateSwarmTopic:w,generateWakeupTopic:R,generateMailboxKeyPair:P,generateDiscoveryKeyPair:g,generateRoomCapabilities:function(e,t){const r=P(e,t),n=g(r.publicKey),i=R(r.publicKey);return{mailboxKeyPair:r,discoveryKeyPair:n,swarmTopic:w(n.publicKey),wakeupTopic:i}},generatePairingCapabilities:function(e){const t=g(e),r=R(e);return{discoveryKeyPair:t,swarmTopic:w(t.publicKey),wakeupTopic:r}},getWakeup:function(e){return{key:e,discoveryKey:i.discoveryKey(e)}},getWriterKey:function(e){return t.key({version:2,signers:[{publicKey:e}]})},getInvitationId:function(e){return k(e).publicKey},createInvitation:function(e,t={}){const{canModerate:r=!1,canAdmin:n=!1,expiration:c=0}=t,a=i.randomBytes(32),u=k(a),s=u.publicKey,d=o("@keet/room-keys",e);return{invitation:{id:s,metadata:{canModerate:r,canAdmin:n,expiration:c},anchor:null,response:{id:s,data:d,signature:i.sign(i.hash([p,d]),u.secretKey)}},seed:a}},createDeviceResponse:function(e,t,n){const c=o("@keet/device-response",{signedKeys:n.response}),a=i.hash([f,t]);return{blindResponse:r.encrypt(c,e,a)}},decryptDeviceRequest:function(e,t){const n=r.decrypt(t,e);return n?c("@keet/device-request",n):null},decryptContactRequest:function(e,t){const r=i.decrypt(t,e);return r?c("@keet-private-id/contact-request",r):null},verifyAttestation:function(e,t,r){let i=null;try{i=n.verify(e.proof,t,{expectedIdentity:e.memberKey})}catch{throw u.ABORT()}if(!i)throw u.ABORT();return i.receipt},verifyDeviceResponse:function(e,t){const r=i.decrypt(t,e);if(!r)return null;const n=c("@keet/device-response",r),{signedKeys:{id:o,data:a,signature:u},identity:s}=n;return i.verify(i.hash([p,a]),u,o)?{id:o,response:{roomKeys:c("@keet/room-keys",a),identity:s}}:null},verifyIdentityProofs:function(e,t){const r=t?.deviceProof,i=t?.privateProfileIdentity,o=e.writerKey,c=e.publicKey,a=e.devicePublicKey;if(!r||!i)return null;if(!i.memberKey||!i.proof)return null;const u=n.verify(r,null,{expectedIdentity:c,expectedDevice:a}),s=n.verify(i.proof,o,{expectedIdentity:c});return u&&s},verifyInvitationDeviceRequest:function({id:e,request:t,signature:r}){const n=o("@keet/device-request-with-invitation",t);return i.verify(i.hash([y,n]),r,e)?{id:e,request:t}:null},createMailboxKeyPair:function(){return i.encryptionKeyPair()},createDiscoveryKeyPair:function(){return i.keyPair()},createInvitationJoinRequest:q,createInvitationJoinOperation:function(e,t,r,n,i,o){const{blindRequest:c}=q(e,t,r,n,i,o);return K(c,o)},createMemberProofJoinRequest:b,createMemberProofJoinOperation:function(e,t,r){const{blindRequest:n}=b(e,t);return K(n,r)},createBlindContactRequest:h,createContactRequestOperation:function(t,r,n){const i=h(t,r,n),o=a("@keet-private-id/add-contact-request",{header:{timestamp:Date.now()},blindRequest:i});return e.encodeValue(o,{optimistic:!0,encrypted:!0})},createUsernameReservationRequest:function(e,{publicKey:t,deviceKeyPair:r,deviceProof:i}){const o=s.encodeReservation({username:e});return{username:e,attestation:{memberKey:t,proof:n.attestData(o,r,i)}}}};
1const e=require("autobee"),t=require("hypercore"),n=require("deterministic-sealed-box"),r=require("keet-identity-key"),i=require("hypercore-crypto"),{contract:{hyperschema:{encode:o,decode:c},hyperdispatch:{encode:a}}}=require("../../../schema/spec"),{KeetContractError:s}=require("./../contract/errors"),u=require("@holepunchto/keet-registry"),[y,d,p,v,f,l,m,K]=i.namespace("@holepunchto/keet-core/invitations",8);function b(e,t,n){const c=o("@keet-private-id/contact-request-body",n),a=r.attestData(c,t.deviceKeyPair,t.deviceProof),s={memberKey:t.publicKey,proof:a},u=o("@keet-private-id/contact-request",{body:n,attestation:s});return i.encrypt(u,e)}function h(t,{heads:n}={}){const r=a("@keet/add-device",{header:{timestamp:Date.now()},blindRequest:t});return e.encodeValue(r,{optimistic:!0,encrypted:!0,links:n})}function k(e,{device:t,member:n}){const r=o("@keet/device-request",{withMemberProof:{device:t,member:n}});return{blindRequest:i.encrypt(r,e)}}function q(e,t,n,r,{device:c,member:a},s){const u=g(r),y=u.publicKey,p={deviceKey:e,identity:s?.identity,keyPair:n,device:c,member:a,link:s?.link},v=o("@keet/device-request-with-invitation",p),f=i.sign(i.hash([d,v]),u.secretKey),l=o("@keet/device-request",{withInvitation:{id:y,request:p,signature:f}});return{blindRequest:i.encrypt(l,t)}}function g(e){return i.keyPair(i.hash([y,e]))}function P(e){return{version:2,signers:[{publicKey:e,namespace:K}]}}function R(e,t){return i.encryptionKeyPair(i.hash([v,e,t]))}function w(e){return i.keyPair(e)}function I(e){return i.discoveryKey(e)}function x(e){return i.discoveryKey(e)}module.exports={generateIdentityPairingName:function(e){return i.hash([l,e])},generateRoomPairingName:function(e){return i.hash([m,e])},generateSwarmTopic:x,generateWakeupTopic:I,generateMailboxKeyPair:R,generateDiscoveryKeyPair:w,generateRoomCapabilities:function(e,t){const n=R(e,t),r=w(n.publicKey),i=I(n.publicKey);return{mailboxKeyPair:n,discoveryKeyPair:r,swarmTopic:x(r.publicKey),wakeupTopic:i}},generatePairingCapabilities:function(e){const t=w(e),n=I(e);return{discoveryKeyPair:t,swarmTopic:x(t.publicKey),wakeupTopic:n}},getWakeup:function(e){return{key:e,discoveryKey:i.discoveryKey(e)}},getWriterKey:function(e){return t.key({version:2,signers:[{publicKey:e}]})},getResponseCoreManifest:P,getResponseCoreKey:function(e){return t.key(P(e))},getInvitationId:function(e){return g(e).publicKey},createInvitation:function(e,t={}){const{canModerate:n=!1,canAdmin:r=!1,expiration:c=0}=t,a=i.randomBytes(32),s=g(a),u=s.publicKey,y=o("@keet/room-keys",e);return{invitation:{id:u,metadata:{canModerate:n,canAdmin:r,expiration:c},anchor:null,response:{id:u,data:y,signature:i.sign(i.hash([p,y]),s.secretKey)}},seed:a}},createDeviceResponse:function(e,t,r){const c=o("@keet/device-response",{signedKeys:r.response}),a=i.hash([f,t]);return{blindResponse:n.encrypt(c,e,a)}},decryptDeviceRequest:function(e,t){const r=n.decrypt(t,e);return r?c("@keet/device-request",r):null},decryptContactRequest:function(e,t){const n=i.decrypt(t,e);return n?c("@keet-private-id/contact-request",n):null},verifyAttestation:function(e,t,n){let i=null;try{i=r.verify(e.proof,t,{expectedIdentity:e.memberKey})}catch{throw s.ABORT()}if(!i)throw s.ABORT();return i.receipt},verifyDeviceResponse:function(e,t){const n=i.decrypt(t,e);if(!n)return null;const r=c("@keet/device-response",n),{signedKeys:{id:o,data:a,signature:s},identity:u}=r;return i.verify(i.hash([p,a]),s,o)?{id:o,response:{roomKeys:c("@keet/room-keys",a),identity:u}}:null},verifyIdentityProofs:function(e,t){const n=t?.deviceProof,i=t?.privateProfileIdentity,o=e.writerKey,c=e.publicKey,a=e.devicePublicKey;if(!n||!i)return null;if(!i.memberKey||!i.proof)return null;const s=r.verify(n,null,{expectedIdentity:c,expectedDevice:a}),u=r.verify(i.proof,o,{expectedIdentity:c});return s&&u},verifyInvitationDeviceRequest:function({id:e,request:t,signature:n}){const r=o("@keet/device-request-with-invitation",t);return i.verify(i.hash([d,r]),n,e)?{id:e,request:t}:null},createMailboxKeyPair:function(){return i.encryptionKeyPair()},createDiscoveryKeyPair:function(){return i.keyPair()},createInvitationJoinRequest:q,createInvitationJoinOperation:function(e,t,n,r,i,o){const{blindRequest:c}=q(e,t,n,r,i,o);return h(c,o)},createMemberProofJoinRequest:k,createMemberProofJoinOperation:function(e,t,n){const{blindRequest:r}=k(e,t);return h(r,n)},createBlindContactRequest:b,createContactRequestOperation:function(t,n,r){const i=b(t,n,r),o=a("@keet-private-id/add-contact-request",{header:{timestamp:Date.now()},blindRequest:i});return e.encodeValue(o,{optimistic:!0,encrypted:!0})},createUsernameReservationRequest:function(e,{publicKey:t,deviceKeyPair:n,deviceProof:i}){const o=u.encodeReservation({username:e});return{username:e,attestation:{memberKey:t,proof:r.attestData(o,n,i)}}}};
@holepunchto/keet-core/lib/core/migrations/3/apply.js +1 -1
……@@ -1 +1 @@
1const e=require("hypercore-id-encoding"),t=require("hypercore-crypto"),i=require("compact-encoding"),a=require("@holepunchto/keet-indexing"),{InternalSchema:n,KeetSchema:s,ConfigSchema:r}=require("@holepunchto/legacy-keet-core-schemas"),{CONFIG:o}=require("@holepunchto/keet-core-api"),{InternalOperation:c,UpgradeOperation:l}=n.Operations,{contract:{hyperschema:{getEnum:u}}}=require("../../../../schema/spec"),m=u("@keet/room-type"),[d]=t.namespace("@holepunchto/keet-core/v3-migrations",1);function p(e){if(!e)throw new Error("Encryption key is required");return t.hash([d,e])}async function f(e,t,i){const a=e.get({key:t,active:!1}),n=await a.getUserData(i);return await a.close(),n}async function v(t){const i={abi:{version:9},settings:{roomType:m.Default,isExperimental:!1,isJoiningDisabled:!1,isAppendingDisabled:!1,isCallingDisabled:!1,isMembershipEventsDisabled:!1}},a={title:null,avatar:null,description:null},s={publicKey:null,discoveryCoreKey:null,userRegistry:null};let c=null;const l=await t.bee.get(n.ExperimentalModeKey,n.UpgraderEncoding);i.settings.isExperimental=!!l;for await(const n of t.bee.createReadStream(r.Encoding)){const t=r.getValue(n);switch(n.key){case o.ROOM_TITLE:a.title=t;break;case o.ROOM_DESCRIPTION:a.description=t;break;case o.ROOM_CAN_CALL:i.settings.isCallingDisabled="false"===t;break;case o.ID_PUBLIC_KEY:s.publicKey=e.decode(t);break;case o.PINNED_MESSAGES:c=t.map(t=>e.encode(t.key)+":"+t.seq);break;case o.ROOM_TYPE:i.settings.roomType=x(Number.parseInt(t));break;case o.DISABLE_MEMBERSHIP_EVENTS:i.settings.isMembershipEventsDisabled=!0;break;default:continue}}return{isPrivateProfile:!!s.publicKey,digest:i,config:a,identity:s,primaryThread:{id:0,count:0,parent:null,stats:{devices:{total:0,active:0},members:{total:0,active:0,pending:0},chat:{clock:0,pinned:0,threads:0,timestamp:0},files:{clock:0}}},pinnedMessages:c}}async function y(t){const i=new Map;for await(const{value:a}of t.devices.devices.createReadStream()){const t={key:a.key,memberKey:null,profile:{swarmKey:a.noisePublicKey,name:a.name,isMobile:a.isMobile},status:T(a)};i.set(e.encode(t.key),t)}return i}async function h(t){const i=new Map;for await(const{value:a}of t.members.members.createReadStream()){const{member:t,activeDevices:n,inactiveDevices:s}=D(a);i.set(e.encode(t.key),{member:t,activeDevices:n,inactiveDevices:s,hasAvatar:a.hasAvatar})}for await(const{value:a}of t.members.inactiveMembers.createReadStream()){const{member:t,activeDevices:n,inactiveDevices:s}=D(a);i.set(e.encode(t.key),{member:t,activeDevices:n,inactiveDevices:s,hasAvatar:a.hasAvatar})}for await(const{_id:a}of t.members.mutedMembers.createReadStream()){const t=e.encode(a),n=i.get(t);n&&(n.member.status.isMuted=!0)}return i}async function g(e,t,i){return[t,(await e.members.avatars.get(i)).value]}async function b(t){const i=new Map,a=[],n=[];let s=0,r=0;for await(const{value:o}of t.chat.chat.createReadStream()){const t=s++,c=e.encode(o.id.key)+":"+o.id.seq,l={id:{thread:0,index:t},oplog:o.id,clock:t,timestamp:o.timestamp,status:{isEdited:!!o.chat?.edited,isDeleted:!!o.deleted,isPinned:!1},message:null,event:null};if(o.chat)l.message={text:o.chat.text,files:null,display:o.display?E(o.display):null,replyTo:o.replyTo,parent:null};else if(o.file){const e=M(o.file),t=r++;n.push({id:t,oplog:o.id,status:{isDeleted:!1},file:e}),l.message={text:null,files:[t],display:null,replyTo:null,parent:null}}else o.event&&(l.event=K(o.event));i.set(c,l),a.push(l)}return{files:n,messages:a,messagesByOplogId:i}}async function k(e){const t=[];let i=0;for await(const{_id:[a,n,s,r]}of e.reactions.reactions.createReadStream())t.push({id:{thread:a,index:n},sender:s,clock:i++,reaction:r});return t}async function w(e){const t=[];for await(const{key:i,value:{roomKey:a}}of e.indexes.dmByMember.createReadStream())t.push({memberKey:i,roomKey:a});return t}function D(e){const t=e.devices,i=e.inactive;return{member:{key:e.key,profile:{timestamp:0,mailbox:null,displayName:e.displayName,avatar:null},status:S(e)},activeDevices:t,inactiveDevices:i}}function M(e){return{pointer:{externalDrive:{key:e.key,path:e.path,version:e.version,size:0}},metadata:{name:e.path,mimetype:e.type,dimensions:e.dimensions},preview:e.previewPointer?{medium:{metadata:{isPreview:!0},pointer:{externalDrive:{key:e.previewPointer.key,path:e.previewPointer.path,version:e.previewPointer.version,size:0}}}}:null}}function K(e){switch(e.type){case 1:return{memberJoined:{memberKey:null}};case 2:return{callStarted:!0};case 3:return{roomAvatarChanged:!0};case 4:return{invitationCreated:!0};case 5:return{memberLeft:{memberKey:null}};case 6:return{titleChanged:{from:e.value.from,to:e.value.to}};case 7:return{memberRemoved:{memberKey:null}};case 8:return{callHangup:!0};case 9:return{callMissed:!0};default:return null}}function E(e){const t={mention:null,httpLink:null,pearLink:null,bold:null,italic:null,strikeThrough:null,code:null,codeBlock:null,emoji:null};for(const{type:i,value:a}of e)switch(i){case 1:t.mention||(t.mention=[]),t.mention.push({range:{start:a.start,length:a.length},memberKey:a.memberId});break;case 2:t.httpLink||(t.httpLink=[]),t.httpLink.push(P(a));break;case 3:t.pearLink||(t.pearLink=[]),t.pearLink.push(P(a));break;case 4:t.bold||(t.bold=[]),t.bold.push({start:a.start,length:a.length});break;case 5:t.italic||(t.italic=[]),t.italic.push({start:a.start,length:a.length});break;case 6:t.code||(t.code=[]),t.code.push({start:a.start,length:a.length});break;case 7:t.emoji||(t.emoji=[]),t.emoji.push({range:{start:a.start,length:a.length},content:a.content});break;case 8:t.codeBlock||(t.codeBlock=[]),t.codeBlock.push({start:a.start,length:a.length});break;case 9:t.strikeThrough||(t.strikeThrough=[]),t.strikeThrough.push({start:a.start,length:a.length});break;default:continue}return t}function P(e){return{range:{start:e.start,length:e.length},url:e.content,preview:e.preview?{title:e.preview.title,description:e.preview.description,file:e.preview.file?{pointer:{externalDrive:{key:e.preview.file.key,path:e.preview.file.path,version:e.preview.file.version,size:0}},metadata:{mimetype:e.preview.file.type,dimensions:e.preview.file.dimensions}}:null}:null}}function S(e){return{isAdmin:!!(2&e.capabilities),isModerator:!!(4&e.capabilities),isPending:!1,isActive:!e.inactive||0===e.inactive.length,isMuted:!1,isBanned:!1,isShadowBanned:!1}}function T(e){return{isIndexing:!!(2&e.capabilities),isActive:!0}}function x(e){switch(e){case 0:return m.Default;case 1:return m.Broadcast;case 2:return m.DirectMessage;default:return 0}}module.exports={generateCompatSeed:p,getLegacyUserData:f,getLegacyLocalKey:async function(e,t){return await f(e,t,"autobase/local")||t},autobaseApply:async function(e,t,r){const o=[];for(const t of e){if(i.decode(i.uint,t.value)>1)break;t.value=i.decode(s.Messages.KeetOplogMessage,t.value),o.push(t)}let u=await async function(e){const t=await e.get(n.CodeVersionKey,n.UpgraderEncoding);return t?t.value:0}(t.bee);for(const e of o){u=Math.max(u,e.value.abi);for(const t of e.value.ops)t.type===c.TYPE&&t.value.subtype===l.SUBTYPE&&(u=Math.max(u,t.value.value.version))}return u>7?r.interrupt({unsupportedABI:u,digest:null}):(o.length&&await a.autobaseApply(o,t),o.length)},migrate:async function(t,i,a,n,s,r){const{isPrivateProfile:o,digest:c,config:l,capabilities:u,identity:m,primaryThread:d,devices:f,members:D,avatars:M,files:K,messages:E,reactions:P,dmRooms:S}=await async function(t,i){const a=i.core.download(),[{isPrivateProfile:n,digest:s,config:r,identity:o,primaryThread:c,pinnedMessages:l},{files:u,messages:m,messagesByOplogId:d},f,D,M,K]=await Promise.all([v(i),b(i),y(i),h(i),k(i),w(i)]);a.destroy();const E={seed:p(t.encryptionKey)},P=await async function(e,t){const i=[];for(const[a,{member:n,hasAvatar:s}]of t)s&&i.push(g(e,a,n.key));const a=await Promise.all(i);return new Map(a)}(i,D);if(l)for(const e of l)d.get(e).status.isPinned=!0;for(const{member:t,activeDevices:i,inactiveDevices:a}of D.values()){if(i)for(const a of i){const i=e.encode(a),n=f.get(i);n?n.memberKey=t.key:f.delete(i)}if(a)for(const i of a){const a={key:i,memberKey:t.key,profile:{swarmKey:null,name:null,isMobile:!1},status:{isIndexing:!1,isActive:!1}};f.set(e.encode(i),a)}}return s.creationTime=m.length>0?m[0].timestamp:0,{isPrivateProfile:n,digest:s,config:r,capabilities:E,identity:o,primaryThread:c,devices:f,members:D,avatars:P,files:u,messages:m,reactions:M,dmRooms:K}}(i,a),T=Math.min(c.abi.version,19);n.setDefinition((await r.loadBundle(T)).spec.contract.hyperdb),await n.insert("@keet/system-digest",c),await n.insert("@keet/room-config",l),await n.insert("@keet/threads",d),await n.insert("@keet/room-capabilities",u),o&&await n.insert("@keet-private-id/identity",m);for(const e of f.values())e.memberKey&&await n.insert("@keet/devices",e);for(const[e,t]of M){if(!D.has(e))continue;const i=await s.put(t),{member:a}=D.get(e);a.profile.avatar={small:{pointer:{blob:i}}}}for(const{member:e}of D.values())await n.insert("@keet/members",e);for(const e of K)await n.insert("@keet/files",e);for(const e of E)await n.insert("@keet/chat",e);for(const e of P)await n.insert("@keet/reactions",e);if(o){await n.insert("@keet-private-id/identity",m);for(let e=0;e<S.length;e++){const{memberKey:t,roomKey:i}=S[e],a={memberKey:t,clock:e+1,status:{isBlocked:!1},mailbox:null,roomKey:i};await n.insert("@keet-private-id/contacts",a)}}}};
1const e=require("hypercore-id-encoding"),t=require("hypercore-crypto"),a=require("compact-encoding"),i=require("@holepunchto/keet-indexing"),{InternalSchema:n,KeetSchema:s,ConfigSchema:r}=require("@holepunchto/legacy-keet-core-schemas"),{CONFIG:o}=require("@holepunchto/keet-core-api"),{InternalOperation:c,UpgradeOperation:l}=n.Operations,{contract:{hyperschema:{getEnum:u}}}=require("../../../../schema/spec"),{chatStats:m,fileStats:d,reactionStats:p,deviceStats:f,memberStats:v}=require("../../contract/stats"),{profileContactStats:h}=require("../../contract/stats/profile"),y=u("@keet/room-type"),[g]=t.namespace("@holepunchto/keet-core/v3-migrations",1);function b(e){if(!e)throw new Error("Encryption key is required");return t.hash([g,e])}async function k(e,t,a){const i=e.get({key:t,active:!1}),n=await i.getUserData(a);return await i.close(),n}async function w(t){const a={abi:{version:9},settings:{roomType:y.Default,isExperimental:!1,isJoiningDisabled:!1,isAppendingDisabled:!1,isCallingDisabled:!1,isMembershipEventsDisabled:!1}},i={title:null,avatar:null,description:null},s={publicKey:null,discoveryCoreKey:null,userRegistry:null};let c=null;const l=await t.bee.get(n.ExperimentalModeKey,n.UpgraderEncoding);a.settings.isExperimental=!!l;for await(const n of t.bee.createReadStream(r.Encoding)){const t=r.getValue(n);switch(n.key){case o.ROOM_TITLE:i.title=t;break;case o.ROOM_DESCRIPTION:i.description=t;break;case o.ROOM_CAN_CALL:a.settings.isCallingDisabled="false"===t;break;case o.ID_PUBLIC_KEY:s.publicKey=e.decode(t);break;case o.PINNED_MESSAGES:c=t.map(t=>e.encode(t.key)+":"+t.seq);break;case o.ROOM_TYPE:a.settings.roomType=O(Number.parseInt(t));break;case o.DISABLE_MEMBERSHIP_EVENTS:a.settings.isMembershipEventsDisabled=!0;break;default:continue}}return{isPrivateProfile:!!s.publicKey,digest:a,config:i,identity:s,primaryThread:{id:0,count:0,parent:null,stats:{devices:{total:0,active:0},members:{total:0,active:0,pending:0},chat:{clock:0,pinned:0,threads:0,timestamp:0},files:{clock:0}}},pinnedMessages:c}}async function D(t){const a=new Map;for await(const{value:i}of t.devices.devices.createReadStream()){const t={key:i.key,memberKey:null,profile:{swarmKey:i.noisePublicKey,name:i.name,isMobile:i.isMobile},status:B(i)};a.set(e.encode(t.key),t)}return a}async function M(t){const a=new Map;for await(const{value:i}of t.members.members.createReadStream()){const{member:t,activeDevices:n,inactiveDevices:s}=T(i);a.set(e.encode(t.key),{member:t,activeDevices:n,inactiveDevices:s,hasAvatar:i.hasAvatar})}for await(const{value:i}of t.members.inactiveMembers.createReadStream()){const{member:t,activeDevices:n,inactiveDevices:s}=T(i);a.set(e.encode(t.key),{member:t,activeDevices:n,inactiveDevices:s,hasAvatar:i.hasAvatar})}for await(const{_id:i}of t.members.mutedMembers.createReadStream()){const t=e.encode(i),n=a.get(t);n&&(n.member.status.isMuted=!0)}return a}async function K(e,t,a){return[t,(await e.members.avatars.get(a)).value]}async function S(t){const a=new Map,i=[],n=[];let s=0,r=0;for await(const{value:o}of t.chat.chat.createReadStream()){const t=s++,c=e.encode(o.id.key)+":"+o.id.seq,l={id:{thread:0,index:t},oplog:o.id,clock:t,timestamp:o.timestamp,status:{isEdited:!!o.chat?.edited,isDeleted:!!o.deleted,isPinned:!1},message:null,event:null};if(o.chat)l.message={text:o.chat.text,files:null,display:o.display?I(o.display):null,replyTo:o.replyTo,parent:null};else if(o.file){const e=x(o.file),t=r++;n.push({id:t,oplog:o.id,status:{isDeleted:!1},file:e}),l.message={text:null,files:[t],display:null,replyTo:null,parent:null}}else o.event&&(l.event=A(o.event));a.set(c,l),i.push(l)}return{files:n,messages:i,messagesByOplogId:a}}async function E(e){const t=[];let a=0;for await(const{_id:[i,n,s,r]}of e.reactions.reactions.createReadStream())t.push({id:{thread:i,index:n},sender:s,clock:a++,reaction:r});return t}async function P(e){const t=[];for await(const{key:a,value:{roomKey:i}}of e.indexes.dmByMember.createReadStream())t.push({memberKey:a,roomKey:i});return t}function T(e){const t=e.devices,a=e.inactive;return{member:{key:e.key,profile:{timestamp:0,mailbox:null,displayName:e.displayName,avatar:null},status:L(e)},activeDevices:t,inactiveDevices:a}}function x(e){return{pointer:{externalDrive:{key:e.key,path:e.path,version:e.version,size:0}},metadata:{name:e.path,mimetype:e.type,dimensions:e.dimensions},preview:e.previewPointer?{medium:{metadata:{isPreview:!0},pointer:{externalDrive:{key:e.previewPointer.key,path:e.previewPointer.path,version:e.previewPointer.version,size:0}}}}:null}}function A(e){switch(e.type){case 1:return{memberJoined:{memberKey:null}};case 2:return{callStarted:!0};case 3:return{roomAvatarChanged:!0};case 4:return{invitationCreated:!0};case 5:return{memberLeft:{memberKey:null}};case 6:return{titleChanged:{from:e.value.from,to:e.value.to}};case 7:return{memberRemoved:{memberKey:null}};case 8:return{callHangup:!0};case 9:return{callMissed:!0};default:return null}}function I(e){const t={mention:null,httpLink:null,pearLink:null,bold:null,italic:null,strikeThrough:null,code:null,codeBlock:null,emoji:null};for(const{type:a,value:i}of e)switch(a){case 1:t.mention||(t.mention=[]),t.mention.push({range:{start:i.start,length:i.length},memberKey:i.memberId});break;case 2:t.httpLink||(t.httpLink=[]),t.httpLink.push(R(i));break;case 3:t.pearLink||(t.pearLink=[]),t.pearLink.push(R(i));break;case 4:t.bold||(t.bold=[]),t.bold.push({start:i.start,length:i.length});break;case 5:t.italic||(t.italic=[]),t.italic.push({start:i.start,length:i.length});break;case 6:t.code||(t.code=[]),t.code.push({start:i.start,length:i.length});break;case 7:t.emoji||(t.emoji=[]),t.emoji.push({range:{start:i.start,length:i.length},content:i.content});break;case 8:t.codeBlock||(t.codeBlock=[]),t.codeBlock.push({start:i.start,length:i.length});break;case 9:t.strikeThrough||(t.strikeThrough=[]),t.strikeThrough.push({start:i.start,length:i.length});break;default:continue}return t}function R(e){return{range:{start:e.start,length:e.length},url:e.content,preview:e.preview?{title:e.preview.title,description:e.preview.description,file:e.preview.file?{pointer:{externalDrive:{key:e.preview.file.key,path:e.preview.file.path,version:e.preview.file.version,size:0}},metadata:{mimetype:e.preview.file.type,dimensions:e.preview.file.dimensions}}:null}:null}}function L(e){return{isAdmin:!!(2&e.capabilities),isModerator:!!(4&e.capabilities),isPending:!1,isActive:!e.inactive||0===e.inactive.length,isMuted:!1,isBanned:!1,isShadowBanned:!1}}function B(e){return{isIndexing:!!(2&e.capabilities),isActive:!0}}function O(e){switch(e){case 0:return y.Default;case 1:return y.Broadcast;case 2:return y.DirectMessage;default:return 0}}module.exports={generateCompatSeed:b,getLegacyUserData:k,getLegacyLocalKey:async function(e,t){return await k(e,t,"autobase/local")||t},autobaseApply:async function(e,t,r){const o=[];for(const t of e){if(a.decode(a.uint,t.value)>1)break;t.value=a.decode(s.Messages.KeetOplogMessage,t.value),o.push(t)}let u=await async function(e){const t=await e.get(n.CodeVersionKey,n.UpgraderEncoding);return t?t.value:0}(t.bee);for(const e of o){u=Math.max(u,e.value.abi);for(const t of e.value.ops)t.type===c.TYPE&&t.value.subtype===l.SUBTYPE&&(u=Math.max(u,t.value.value.version))}return u>7?r.interrupt({unsupportedABI:u,digest:null}):(o.length&&await i.autobaseApply(o,t),o.length)},migrate:async function(a,i,n,s){const{isPrivateProfile:r,digest:o,config:c,capabilities:l,identity:u,primaryThread:y,devices:g,members:k,avatars:T,files:x,messages:A,reactions:I,dmRooms:R}=await async function(t,a){const i=a.core.download(),[{isPrivateProfile:n,digest:s,config:r,identity:o,primaryThread:c,pinnedMessages:l},{files:u,messages:m,messagesByOplogId:d},p,f,v,h]=await Promise.all([w(a),S(a),D(a),M(a),E(a),P(a)]);i.destroy();const y={seed:b(t.encryptionKey)},g=await async function(e,t){const a=[];for(const[i,{member:n,hasAvatar:s}]of t)s&&a.push(K(e,i,n.key));const i=await Promise.all(a);return new Map(i)}(a,f);if(l)for(const e of l)d.get(e).status.isPinned=!0;for(const{member:t,activeDevices:a,inactiveDevices:i}of f.values()){if(a)for(const i of a){const a=e.encode(i),n=p.get(a);n?n.memberKey=t.key:p.delete(a)}if(i)for(const a of i){const i={key:a,memberKey:t.key,profile:{swarmKey:null,name:null,isMobile:!1},status:{isIndexing:!1,isActive:!1}};p.set(e.encode(a),i)}}return s.creationTime=m.length>0?m[0].timestamp:0,{isPrivateProfile:n,digest:s,config:r,capabilities:y,identity:o,primaryThread:c,devices:p,members:f,avatars:g,files:u,messages:m,reactions:v,dmRooms:h}}(i,n);await s.insert("@keet/system-digest",o),await s.insert("@keet/room-config",c),await s.insert("@keet/threads",y),await s.insert("@keet/room-capabilities",l),r&&await s.insert("@keet-private-id/identity",u);for(const e of g.values())e.memberKey&&(await s.insert("@keet/devices",e),await f(s,y,e,null));for(const[e,a]of T){if(!k.has(e))continue;const i=t.hash(a);await s.insert("@keet/blobs",{hash:i,data:a});const{member:n}=k.get(e);n.profile.avatar={small:{pointer:{bee:{hash:i}}}}}for(const{member:e}of k.values())await s.insert("@keet/members",e),await v(s,y,e,null);for(const e of x)await s.insert("@keet/files",e),await d(s,y,e,null);for(const e of A)await s.insert("@keet/chat",e),await m(s,y,e,null);for(const e of I)await s.insert("@keet/reactions",e),await p(s,y,e,null,0);if(r){await s.insert("@keet-private-id/identity",u);for(let e=0;e<R.length;e++){const{memberKey:t,roomKey:a}=R[e],i={memberKey:t,clock:e+1,status:{isBlocked:!1},mailbox:null,roomKey:a};await s.insert("@keet-private-id/contacts",i),await h(s,i,null)}}}};
@holepunchto/keet-core/lib/core/migrations/3/room.js +1 -1
……@@ -1 +1 @@
1const e=require("b4a"),i=require("keet-identity-key"),{mnemonicToEntropy:t}=require("bip39-mnemonic"),a=require("compact-encoding"),{ConfigSchema:o}=require("@holepunchto/legacy-keet-core-schemas"),{CONFIG:r}=require("@holepunchto/keet-core-api");function n(e){for(const i of e.peers)if(!(i.remoteLength<=e.signedLength))return!0;return!1}module.exports=async function(c,s,{capabilities:l,encryptionKey:y,privateProfile:d},{migratingRooms:f}){const m=await c.local.find("@local/drive-files-by-room",{gte:{roomKey:s},lte:{roomKey:s}}).toArray();for(const e of m)e.encryptionKey=y;const u=await c.internalEnterLocalTransaction();try{for(const e of m)await u.insert("@local/drive-files",e);await u.flush()}finally{await c.internalExitLocalTransaction()}const p=c.internalOpenRoom(s,y,{mailbox:l.mailboxKeyPair.publicKey,isPrivateProfile:!!d});try{await async function(c,s,l,y,d){if(c.debugForceMigrationFailure&&e.equals(c.debugForceMigrationFailure,s.key))throw new Error("Migration failed");await async function(e,i){await i.core.ready();const t=i.core.findingPeers(),a=setTimeout(t,e.isTesting?75:7500);try{await i.core.update();for(let t=0;t<5&&n(i.core);t++)t>0&&await new Promise(i=>setTimeout(i,e.isTesting?10:1e3)),await i.update()}finally{clearTimeout(a),t()}}(c,s.base);if(!await s.db.get("@keet/system-digest")){let e=null;if(d){const i=[];for(const e of d.blockedMembers)i.push(e);const t=[];for(const{roomKey:e,v3:i}of y){const{seed:a,encryptionKey:o,initiator:r,fastForwardTo:n}=i,c={roomKey:e,encryptionKey:o,seed:a,initiator:r,fastForwardTo:n};t.push(c)}e={sharedRooms:t,blockedContacts:i}}await s.dispatch("@keet/upgrade",{version:9},{dryRun:!1,optimistic:!0}),e&&await s.dispatch("@keet-private-id/run-v3-migration",e,{dryRun:!1})}const f=await c.local.get("@local/rooms",{roomKey:s.key});if(f.digest&&f.dm&&f.dm.length&&(f.config.title||await c.privateProfile.dispatch("@keet-private-id/remove-contact",{memberKey:f.dm[0]})),!d)return void await s.internalEnsureProfileUpdated();const[m,u,p]=await Promise.all([s.db.findOne("@keet/members"),s.base.view.legacy.bee.get(r.ID_RECOVERY_PHRASE,o.Encoding),s.base.getUserData("keet-seed-phrase")]),w=u?a.decode(a.string,u.value):p&&e.toString(p,"utf-8");if(m){const e={...m.profile,mailbox:l.mailboxKeyPair.publicKey};await c.internalUpdateProfile({profile:e},{opening:!0})}if(w){const e=await c.internalEnterLocalTransaction();try{const i=await e.get("@local/identity");i.entropy=t(w),await e.insert("@local/identity",i),await e.flush()}finally{await c.internalExitLocalTransaction()}await async function(e,t,a,o){const r=await i.from({mnemonic:a});if(await e.internalCreateDiscoveryCore(r),e.discoveryCore.length>0){const i=Math.floor((Date.now()-1711547109544)/1e3);await e.discoveryCore.truncate(e.discoveryCore.length,i)}const n=o.mailboxKeyPair.publicKey;await e.discoveryCore.append({version:1,timestamp:Date.now(),key:t.key,mailbox:n}),await t.dispatch("@keet-private-id/update-identity",{identity:{publicKey:r.identityPublicKey,discoveryCoreKey:e.discoveryCore.key}})}(c,s,w,l)}}(c,p,l,f,d),await c.blindPeering.addAutobase(p.base)}finally{c.internalReleaseRoom(p)}};
1const e=require("b4a"),i=require("keet-identity-key"),{mnemonicToEntropy:t}=require("bip39-mnemonic"),a=require("compact-encoding"),{ConfigSchema:o}=require("@holepunchto/legacy-keet-core-schemas"),{CONFIG:n}=require("@holepunchto/keet-core-api");module.exports=async function(r,c,{capabilities:l,encryptionKey:s,privateProfile:y},{migratingRooms:d}){const m=await r.local.find("@local/drive-files-by-room",{gte:{roomKey:c},lte:{roomKey:c}}).toArray();for(const e of m)e.encryptionKey=s;const f=await r.internalEnterLocalTransaction();try{for(const e of m)await f.insert("@local/drive-files",e);await f.flush()}finally{await r.internalExitLocalTransaction()}const p=r.internalOpenRoom(c,s,{mailbox:l.mailboxKeyPair.publicKey,isPrivateProfile:!!y});try{await async function(r,c,l,s,y){if(r.debugForceMigrationFailure&&e.equals(r.debugForceMigrationFailure,c.key))throw new Error("Migration failed");if(!await c.db.get("@keet/system-digest")){let e=null;if(y){const i=[];for(const e of y.blockedMembers)i.push(e);const t=[];for(const{roomKey:e,v3:i}of s){const{seed:a,encryptionKey:o,initiator:n,fastForwardTo:r}=i,c={roomKey:e,encryptionKey:o,seed:a,initiator:n,fastForwardTo:r};t.push(c)}e={sharedRooms:t,blockedContacts:i}}await c.dispatch("@keet/upgrade",{version:9},{dryRun:!1,optimistic:!0}),e&&await c.dispatch("@keet-private-id/run-v3-migration",e,{dryRun:!1})}const d=await r.local.get("@local/rooms",{roomKey:c.key});if(d&&d.digest&&d.dm&&d.dm.length&&(d.config.title||await r.privateProfile.dispatch("@keet-private-id/remove-contact",{memberKey:d.dm[0]})),!y)return void await c.internalEnsureProfileUpdated();const[m,f,p]=await Promise.all([c.db.findOne("@keet/members"),c.engine.legacy.bee.get(n.ID_RECOVERY_PHRASE,o.Encoding),c.engine.auto.bootstrap.getUserData("keet-seed-phrase")]),u=f?a.decode(a.string,f.value):p&&e.toString(p,"utf-8");if(m){const e={...m.profile,mailbox:l.mailboxKeyPair.publicKey};await r.internalUpdateProfile({profile:e},{opening:!0})}if(u){const e=await r.internalEnterLocalTransaction();try{const i=await e.get("@local/identity");i.entropy=t(u),await e.insert("@local/identity",i),await e.flush()}finally{await r.internalExitLocalTransaction()}await async function(e,t,a,o){const n=await i.from({mnemonic:a});if(await e.internalCreateDiscoveryCore(n),e.discoveryCore.length>0){const i=Math.floor((Date.now()-1711547109544)/1e3);await e.discoveryCore.truncate(e.discoveryCore.length,i)}const r=o.mailboxKeyPair.publicKey;await e.discoveryCore.append({version:1,timestamp:Date.now(),key:t.key,mailbox:r}),await t.dispatch("@keet-private-id/update-identity",{identity:{publicKey:n.identityPublicKey,discoveryCoreKey:e.discoveryCore.key}})}(r,c,u,l)}}(r,p,l,d,y),await r.blindPeering.addAutobase(p.engine.auto)}finally{r.internalReleaseRoom(p)}};
@holepunchto/keet-core/lib/core/migrations/4/post.js +1 -1
……@@ -1 +1 @@
1module.exports=async function(o){(async function(o){const r=[];for await(const e of o.privateProfile.db.find("@keet-private-id/rooms"))await o.local.get("@local/rooms",{roomKey:e.roomKey})||r.push(e);for(const e of r)o.tasks.joinRoomKeys(e.roomKey,{keys:e}).runBackground()})(o).catch(o.onerror)};
1module.exports=async function(o){(async function(o){const a=[];for await(const e of o.privateProfile.db.find("@keet-private-id/rooms"))await o.local.get("@local/rooms",{roomKey:e.roomKey})||a.push(e);for(const e of a)o.tasks.joinRoomKeys(e.roomKey,{keys:e,activeClock:e.activeClock,isReadOnly:e.status.isReadOnly}).runBackground()})(o).catch(o.onerror)};
@holepunchto/keet-core/lib/core/room-engine/index.js +1 -0
……@@ -0,0 +1 @@
1const e=require("hypercore-id-encoding"),t=require("autobee"),i=require("b4a"),s=require("hyperblobs"),r=require("hyperbee2"),a=require("compact-encoding"),{KeetView:n}=require("@holepunchto/keet-indexing"),o=require("hyperbee-compat"),{KeetSchema:u}=require("@holepunchto/legacy-keet-core-schemas"),l=require("../migrations/3/apply"),{KeetContract:h}=require("../contract"),{KeetErrorV2:c}=require("../../errors"),{KeetContractError:g}=require("../contract/errors.js"),d=require("../sync/warmup"),{contract:{hyperdispatch:{decode:y,DispatchError:p}}}=require("../../../schema/spec"),b=require("../log.js"),w="keet",m=[h.DB_VIEW_NAME,w,h.BLOB_VIEW_NAME],f="keet/view/"+h.BLOB_VIEW_NAME;function _(){}function k(e,t){return e&&t?e.length===t.length&&i.equals(e.key,t.key):!e==!t}module.exports=class{constructor(e,i,s,r){this._keet=e,this.auto=new t(i,s,{viewName:"keet/v3/db",update:this._autobeeUpdate.bind(e,this),apply:this._autobeeApply.bind(e,this),warmup:t=>(this.warmup=new d(e,t,this),this.warmup.run()),close:this._autobeeClose.bind(e),open:this._autobeeOpen.bind(e),isTrusted:this._autobeeIsTrusted.bind(e),mostRecentTrusted:this._autobeeMostRecentTrusted.bind(e),migrate:this._autobeeMigrate.bind(this),preapply:e=>this._runPreApply(e),legacyViews:m,...r}),this.blobs=null,this.warmup=null,this._migratedViews=new Map,this._openingLegacyState=null,this._migrationRecord=null,this._closing=null}async ready(){await this.auto.ready(),await this.auto.view.bee.ready()}_runPreApply(e){if(this._keet.internalIsRoomDisabled(this.key))throw c.ROOM_DISABLED("Room is disabled",{roomKey:this.key});return this.loadMigratedViews(e)}loadMigratedViews(e){return this._openingLegacyState||(this._openingLegacyState=this._openLegacyState(e).finally(()=>{this._openingLegacyState=null})),this._openingLegacyState}async ensureMigratedViews(){const e=await this.view.db.get("@keet/autobee-migration");var t,i;if(e&&(t=e,!((i=this._migrationRecord)&&k(t.legacyViewHead,i.legacyViewHead)&&k(t.blobsViewHead,i.blobsViewHead))))return await this._closeLegacyState(),this.loadMigratedViews()}async _openLegacyState(e=this.view){if(this.blobs||this.legacy)return;let t=await e.db.get("@keet/autobee-migration");t||(t=await this._keet.getAutobeeMigrationInfo(this.key)),this._migrationRecord=t,t?.legacyViewHead&&!this.legacy&&await this._openLegacyView(t.legacyViewHead);const i=t?.blobsViewHead?.key||await this.auto.bootstrap.getUserData(f);i&&(this.blobs=L(this._keet.store,this.key,i,this.encryptionKey),await this.blobs.ready())}async _closeLegacyState(){const e=this.legacy,t=this.blobs;this.legacy=null,this.blobs=null,this._migrationRecord=null,e&&await e.close(),t&&await t.close()}async _openLegacyView(i,s){const a=w+"/"+e.encode(this.key),u=this._keet.store.namespace(a),l=()=>t.getViewEncryption(this.key,this.encryptionKey,w),h=u.get({name:"legacy-bee",manifestVersion:3,encryption:l(),inflightRange:[256,512]}),c=new r(u,{core:h,getEncryptionProvider:l});await c.ready(),c.move(i),this.legacy=new n(s,new o(c))}close(){if(this._closing)return this._closing;const e=[this.auto.close()];this.blobs&&e.push(this.blobs.close());for(const t of this._migratedViews.values())e.push(t.close());return this._closing=Promise.all(e),this._closing}get opened(){return this.auto.opened}on(...e){return this.auto.on(...e)}append(...e){return this.auto.append(...e)}getUserData(...e){return this.auto.getUserData(...e)}hintWakeup(...e){return this.auto.hintWakeup(...e)}setLocal(...e){return this.auto.setLocal(...e)}views(){return this.auto.views()}repair(){return this.auto.repair()}update(){return this.auto.update()}advance(){return this.auto.updated()}flush(){return this.auto.flush()}get id(){return this.auto.id}get bootstrap(){return this.auto.bootstrap}get view(){return this.auto.view}get system(){return this.auto.system}get writable(){return this.auto.writable}get busy(){return this.auto.busy}get isIndexer(){return this.auto.isIndexer}get local(){return this.auto.local}get core(){return this.auto.core}get viewCore(){return this.auto.bee.core}get length(){return this.auto.length}get signedLength(){return this.auto.signedLength}get key(){return this.auto.key}get discoveryKey(){return this.auto.discoveryKey}get encryptionKey(){return this.auto.encryptionKey}get wakeupCapability(){return this.auto.wakeupCapability}get peers(){return this.auto.peers}get activeWriters(){return this.auto.activeWriters}get migratedViews(){return[...this._migratedViews.values()]}get stats(){return{opened:this.auto.opened,closed:this.auto.closed,opening:!!this.auto.opening,closing:!!this.auto.closing,writable:this.auto.writable,interrupted:!!this.auto.interrupted,advancing:this.auto.busy,undos:this.auto.stats.undos,fastForwards:this.auto.stats.fastForwards,drains:this.auto.stats.drains,applies:this.auto.stats.applies,appends:this.auto.stats.appends}}get systemStats(){const{hash:e}=this.auto.system;return{...R(this.auto.system.bee),flushes:this.auto.system.flushes,hash:e?i.toString(e,"hex"):null}}get viewStats(){return R(this.auto.bee)}get writerStats(){return K(this.auto.local)}get tipSize(){return 0}get wakeupKey(){return this.key}shouldRepair(){return!1}getLastError(){return this.auto.getLastError()}async getBlob(e){if(e.blob){if(!this.blobs)throw new Error("Expected legacy blobs, but none found");return this.blobs.get(e.blob)}if(e.bee){const t=await this.view.db.get("@keet/blobs",e.bee);return t?t.data:null}return null}getSystemKey(){return this.auto.system.bee.head().key}batch(){return new V(this)}getMostRecentAdmin(){return A(this.view)}heads(){return this.auto.system.heads.slice()}dryRun(e,t){return this._autobeeApply.call(this._keet,this,e,t,v,{dryRun:!0})}_autobeeOpen(e,t){let i=null;const s=t.key;e.internal||(i=(e,t)=>this._cacheRoomReads(s,e,t));const r={autoUpdate:!0,extension:!1,trace:i},a=h.bee2(e,{hyperdb:r});return{...a,bee:e,core:a.cores.db,roomKey:s,blobs:null}}async _autobeeIsTrusted(e,t){try{const i=await t.db.get("@keet/devices",{key:e});if(!i||!i.status.isActive)return!1;const s=await t.db.get("@keet/members",{key:i.memberKey});return!!s&&s.status.isActive&&s.status.isAdmin}catch(e){return this.isTesting&&this.onerror(e),!1}}async _autobeeMostRecentTrusted(e,t){try{if(!t)return await A(e);const s=[],r=[];for await(const i of e.db.find("@keet/admins-by-most-recent",{reverse:!0}))s.push(i),r.push(t.db.get("@keet/admin-last-seen",{memberKey:i.memberKey}));const a=await Promise.all(r);for(let e=0;e<s.length;e++)if(a[e]&&i.equals(a[e].deviceKey,s[e].deviceKey))return{key:s[e].deviceKey,length:s[e].deviceLength};return null}catch(e){return this.isTesting&&this.onerror(e),null}}_autobeeClose(e){return Promise.all([e.db.close()])}async _autobeeMigrate(e,t,s){const r=e.get(w),a=e.get(h.DB_VIEW_NAME),n=e.get(h.BLOB_VIEW_NAME);for(const t of e.values()){if(!t)continue;const e=i.toString(t.key,"hex");this._migratedViews.set(e,this._keet.store.get(t.key))}if(t){const e=i.toString(t.key,"hex");this._migratedViews.set(e,this._keet.store.get(t.key))}r&&await this._openLegacyView(r,s),n&&(await this.auto.bootstrap.setUserData(f,n.key),this.blobs=L(this._keet.store,this.key,n.key,this.encryptionKey)),this._migrationRecord={legacyViewHead:r,blobsViewHead:n};const o=await this._keet.internalEnterLocalTransaction();try{await o.insert("@local/autobee-migrations",{roomKey:this.key,autobeeMigrationHead:t,legacyViewHead:r,dbViewHead:a,blobsViewHead:n}),await o.flush()}finally{await this._keet.internalExitLocalTransaction()}return a}async _autobeeUpdate(t,i,s){const r=s.get(h.DB_VIEW_NAME_AUTOBEE);await this.internalMarkRoomUpdated(t.key,r.to,r.incremental),this.roomProcessor.enqueue(t.key);const a=e.encode(t.discoveryKey),n=this._discovering.get(a);n&&(n.updated=!0,this.swarmWorker.notifyDiscoveryUpdate(a))}async _autobeeApply(e,t,i,s,{dryRun:r=!1}={}){const{db:n,roomKey:o}=i,u=r?null:this._boundAutobeeTrace,h=i.bee.head().length>0;let c=!1,d=0;if(e.legacy&&!h){if(e.legacy.base=s,d=await l.autobaseApply(t,e.legacy,s),d===t.length)return!0;c=e.legacy.core.length>0}const b=n.transaction();let w=null,m=!1,f=null;try{if(c){const i=t[d];if(r||i?.optimistic)return!0;s.preferFastForward(),await l.migrate(this.store,s.auto,e.legacy,b)}const n=await b.get("@keet/system-digest");if(n){const e=n.settings.isExperimental?this.abi.max:this.abi.production;if(n.abi.version>e){if(r)return!1;s.interrupt({unsupportedABI:n.abi.version,digest:n,nodes:t})}}f=n?n.abi.version:this.abi.max,f<this.abi.min&&(f=this.abi.min);let o=await this.contractBundles.loadBundle(f),h=await this.contractBundles.loadRouter(f);b.setDefinition(o.spec.contract.hyperdb);for(let e=0;e<t.length;e++){const n=t[e];if(!(a.decode(a.uint,n.value)<2))try{const e=y(n.value),t=E(b,n,s,i,h,{dryRun:r,trace:u,abi:this.abi});await h.dispatch(e,t),e&&"@keet/upgrade"===e.name&&(f=e.value.version,f<this.abi.min&&(f=this.abi.min),o=await this.contractBundles.loadBundle(f),h=await this.contractBundles.loadRouter(f),b.setDefinition(o.spec.contract.hyperdb))}catch(e){if(g.isContractError(e))throw e;if(p.isDispatchError(e))throw g.DISPATCH_ERROR(e.message);throw e}}}catch(e){"BUNDLE_NOT_AVAILABLE"===e.code?s.interrupt({unsupportedABI:e.abi,digest:null,nodes:t}):g.isContractError(e)?(m=!0,e.abi=f,e.roomKey=o,r&&!this.isTesting||this.onerror(e)):w=e}const _=!w&&!m&&b.updated();if(r||w||m?await Promise.all([b.close()]):await Promise.all([b.flush()]),w)throw w;return _}async logs(){const t=this.auto,i=t.system.bee.head(),s=t.system.view,r=t._workingBee.head(),n=await t.replay(),o=await Promise.all(n.map(async function(e){if(null===e)return{unavailable:!0};const i=await t._getOplog(e.key,e.length,{wait:!1});if(null===i)return{key:e.key,length:e.length,weight:e.weight,op:null};const{key:s,length:r,op:a}=i;return{key:s,length:r,weight:e.weight,op:w(a)}})),l=Date.now(),h={logFile:`/tmp/autobee-${e.encode(t.key)}-logs-${l}`},c=new b(h),g={system:i,view:s,viewHead:r,ops:o},{ops:d,...p}=function t(i){return Buffer.isBuffer(i)&&32===i.length?e.encode(i):Buffer.isBuffer(i)&&32!==i.length?i.toString("hex"):Array.isArray(i)?i.map(t):i&&"object"==typeof i?Object.fromEntries(Object.entries(i).map(([e,i])=>[e,t(i)])):i}(g);c.info(p);for(const e of d)e.unavailable||null===e.op?c.info(e):c.info({...e,op:{...e.op,value:JSON.stringify(e.op.value)}});function w(e){if(!e.value||!e.value.byteLength)return null;try{return y(e.value)}catch{}try{return a.decode(u.Messages.KeetOplogMessage,e.value)}catch(t){return{type:"undecodable",value:{error:t.message,raw:e.value}}}}}},module.exports.USER_DATA_BLOBS=f,module.exports.getBootOption=function(e,t){if(e&&e.length)return{head:e};const i=e?e.key:t;return i?{legacy:{key:i,length:0}}:null};const v={interrupt:_,addWriter:_,removeWriter:_,ackWriter:_,preferFastForward:_,removeable:function(){return!0},createAnchor:(e,t)=>({key:e,length:t})};function E(e,t,i,s,r,{abi:a,trace:n,dryRun:o=!1}={}){return new h.OpContext(e,{fork:s.core.fork,writer:{key:t.from?.key||t.key,seq:t.length-1,version:t.version},bootstrap:i.bootstrap,router:r,hostcalls:i,dryRun:o,abi:a,trace:n})}class V{constructor(e){this.auto=e,this.value=[],this.closed=!1}append(e){return this.value.push(e),this.auto.local.length+this.value.length}async flush(){if(this.closed)throw new Error("Batch is closed");const e=this.value;this.value=[],await this.auto.append(e)}close(){this.value=[],this.closed=!0}}function L(e,i,r,a){const n=t.getViewEncryption(i,a,h.BLOB_VIEW_NAME);return o=new s(e.get({key:r,encryption:n,writable:!1})),new Proxy(o,{get(e,t){return"put"===t?B:Reflect.get(...arguments)}});var o}function B(){return{start:0,length:0}}async function A(e){const t=await e.db.findOne("@keet/admins-by-most-recent",{reverse:!0});return t?{key:t.deviceKey,length:t.deviceLength}:null}function R(e){return{core:K(e.core),local:K(e.context&&e.context.local)}}function K(e){return e?{id:e.id,writable:e.writable,length:e.length,remoteContiguousLength:e.remoteContiguousLength,byteLength:e.byteLength,peers:e.peers.length}:{id:null,writable:!1,length:0,remoteContiguousLength:0,byteLength:0,peers:0}}
@holepunchto/keet-core/lib/core/swarm/worker.js +1 -1
……@@ -1 +1 @@
1const s=require("ready-resource"),e=require("hypercore-id-encoding"),t=require("scope-lock"),{local:{hyperschema:{getEnum:i}}}=require("../../../schema/spec"),r=i("@local/keet-state"),a=8,o=1e3,n=3e4,c=6e4,l=1e4,h=5e3,m=5e3;async function d(s){await s.swarm.flushed(),await s.swarm.destroy(),s.swarmStatus.isClient=!1,s.swarmStatus.isServer=!1,s.swarm=null}module.exports=class extends s{constructor(s,e={}){super();const{gcDefaultDiscoveryTimeout:i=c,gcUpdatedDiscoveryTimeout:r=l,gcStartDiscoverySwarmingDelay:d=h,gcStartFallbackSwarmingDelay:u=m,refreshInterval:w=o,fallbackSwarmingLimit:S=a,gcIdleTime:g=n}=e;this.keet=s,this.swarm=null,this.sessions=new Map,this.sessionsByRoomId=new Map,this._refreshLock=new t({debounce:!0}),this._refreshTimer=null,this._gcEnabled=!1!==e.gc,this._deferSwarming=!1!==e.deferSwarming,this._fallbackSwarmingEnabled=!1!==e.fallbackSwarming,this._fallbackSwarmingLimit=S,this._gcIdleTime=g,this._refreshInterval=w,this._gcDefaultDiscoveryTimeout=i,this._gcUpdatedDiscoveryTimeout=r,this._gcStartDiscoverySwarmingDelay=d,this._gcStartFallbackSwarmingDelay=u,this._serverModeAllowed=!0,this._backgrounded=!1}_runOpen(){this._refreshTimer||(this._refreshTimer=setInterval(this.refresh.bind(this),this._refreshInterval)),this.refresh().catch(this.keet.onerror)}async _runClose(){this._refreshTimer&&(clearInterval(this._refreshTimer),this._refreshTimer=null);const s=[];for(const e of this.sessions.values())e.swarm&&s.push(e.swarm.destroy());this.sessions.clear(),await Promise.allSettled(s)}_open(){this.swarm=this.keet.swarm,this._runOpen()}_close(){return this._runClose()}async _refreshFallbackSwarming(){if(!this._fallbackSwarmingEnabled)return;const s=await this.keet.local.find("@local/rooms-by-timestamp",{limit:this._fallbackSwarmingLimit,reverse:!0}).toArray(),t=new Set;for(const i of s){const s=e.encode(i.capabilities.swarmTopic),r=this._createSession(s,i.capabilities.swarmTopic);if(!r.status.isFallback){r.status.isFallback=!0;const s=Math.floor(.5*Math.random()*this._gcStartFallbackSwarmingDelay),e=this._gcStartFallbackSwarmingDelay+s;r.fallbackSwarmingStartTime=Date.now()+e}t.add(s)}for(const s of this.sessions.values())t.has(s.id)||(s.status.isFallback=!1)}async _refreshSessions(){const s=[],e=[];for(const t of this.sessions.values())this._checkInactivity(t)?s.push(t):e.push(this._refreshSession(t));await Promise.allSettled(e);const t=[];for(const e of s)this.sessions.delete(e.id),e.roomId&&this.sessionsByRoomId.delete(e.roomId),e.swarm&&t.push(e.swarm.destroy());await Promise.allSettled(t)}_checkInactivity(s){if(!this._gcEnabled)return!1;let e=!1;s.status.isDiscovering&&(e=Date.now()-s.discoveryStartTime>s.discoveryTimeout);const t=s.status.isFallback||s.status.isActive;let i=s.status.isDiscovering&&!e;return s.status.isDiscovering&&e&&(this.keet.internalDiscoveryCompleted(s.discoveryKey,s.roomId),s.status.isDiscovering=!1,i=!1),!(t||i||(0===s.idleStartTime&&(s.idleStartTime=Date.now()),s.idleDuration=Date.now()-s.idleStartTime,s.idleDuration<this._gcIdleTime))}async _refreshSession(s){let e=!1,t=!1;s.status.isFallback&&(t=Date.now()>=s.fallbackSwarmingStartTime||s.swarmStatus.isServer),s.status.isDiscovering&&(e=Date.now()>=s.discoverySwarmingStartTime||s.swarmStatus.isClient),s.status.isActive&&(e=!0,t=!0);const i=e===s.swarmStatus.isClient,a=t===s.swarmStatus.isServer;if(i&&a)return;const o=s.swarm;this._serverModeAllowed||(t=!1),s.swarmStatus.isClient=e,s.swarmStatus.isServer=t,this.keet.debug.disableSwarming||this.keet.state===r.WAKEUP||(s.swarm=this.swarm.join(s.discoveryKey,{client:e,server:t,limit:s.limit}),o&&await o.destroy())}async refresh(){if(!this.keet.closing&&await this._refreshLock.lock())try{await this._refreshFallbackSwarming(),await this._refreshSessions()}catch(s){this.keet.onerror(s)}finally{this._refreshLock.unlock()}}_createSession(s,e,{roomId:t,limit:i}={}){let r=this.sessions.get(s);return r?(t&&!this.sessionsByRoomId.has(t)&&(r.roomId=t,this.sessionsByRoomId.set(t,r)),r):(r={id:s,roomId:t,discoveryKey:e,swarm:null,lastActiveTime:0,discoveryStartTime:0,discoveryTimeout:0,discoverySwarmingStartTime:0,fallbackSwarmingStartTime:0,idleStartTime:0,idleDuration:0,status:{isActive:!1,isFallback:!1,isDiscovering:!1},limit:i,swarmStatus:{isClient:!1,isServer:!1}},this.sessions.set(s,r),t&&this.sessionsByRoomId.set(t,r),r)}setServerMode(s){this._serverModeAllowed=s}startActiveSwarming(s){const t=e.encode(s),i=this._createSession(t,s);i.status.isActive=!0,i.lastActiveTime=Date.now(),this.refresh()}stopActiveSwarming(s){const t=e.encode(s),i=this.sessions.get(t);i&&(i.status.isActive=!1,this.refresh())}startDiscoverySwarming(s,t){const i=e.encode(s),r=this._createSession(i,s,t);if(r.status.isDiscovering=!0,r.discoveryStartTime=Date.now(),r.discoveryTimeout=this._gcDefaultDiscoveryTimeout,!1!==t.deferSwarming&&this._deferSwarming){const s=Math.floor(.5*Math.random()*this._gcStartDiscoverySwarmingDelay),e=this._gcStartDiscoverySwarmingDelay+s;r.discoverySwarmingStartTime=Date.now()+e}else r.discoverySwarmingStartTime=r.discoveryStartTime;this.refresh()}notifyDiscoveryUpdate(s){const e=this.sessionsByRoomId.get(s);e&&e.status.isDiscovering&&(e.discoveryStartTime=Date.now(),e.discoveryTimeout=this._gcUpdatedDiscoveryTimeout,this.refresh())}async background(){if(this._backgrounded)return;this._backgrounded=!0;const s=[];for(const e of this.sessions.values())e.swarm&&s.push(d(e));await Promise.allSettled(s)}async unbackground(){this._backgrounded&&(this._backgrounded=!1,await this._runOpen())}async suspend(){await this._runClose()}async resume(){await this._runOpen()}async flush(){await this.refresh(),await this.swarm.flush()}};
1const s=require("ready-resource"),e=require("hypercore-id-encoding"),t=require("scope-lock"),{local:{hyperschema:{getEnum:i}}}=require("../../../schema/spec"),r=i("@local/keet-state"),a=8,o=1e3,n=3e4,c=6e4,l=1e4,h=5e3,m=5e3;async function d(s){await s.swarm.flushed(),await s.swarm.destroy(),s.swarmStatus.isClient=!1,s.swarmStatus.isServer=!1,s.swarm=null}module.exports=class extends s{constructor(s,e={}){super();const{gcDefaultDiscoveryTimeout:i=c,gcUpdatedDiscoveryTimeout:r=l,gcStartDiscoverySwarmingDelay:d=h,gcStartFallbackSwarmingDelay:u=m,refreshInterval:w=o,fallbackSwarmingLimit:S=a,gcIdleTime:f=n}=e;this.keet=s,this.swarm=null,this.sessions=new Map,this.sessionsByRoomId=new Map,this._refreshLock=new t({debounce:!0}),this._refreshTimer=null,this._gcEnabled=!1!==e.gc,this._deferSwarming=!1!==e.deferSwarming,this._fallbackSwarmingEnabled=!1!==e.fallbackSwarming,this._fallbackSwarmingLimit=S,this._gcIdleTime=f,this._refreshInterval=w,this._gcDefaultDiscoveryTimeout=i,this._gcUpdatedDiscoveryTimeout=r,this._gcStartDiscoverySwarmingDelay=d,this._gcStartFallbackSwarmingDelay=u,this._serverModeAllowed=!0,this._backgrounded=!1}_runOpen(){this._refreshTimer||(this._refreshTimer=setInterval(this.refresh.bind(this),this._refreshInterval)),this.refresh().catch(this.keet.onerror)}async _runClose(){this._refreshTimer&&(clearInterval(this._refreshTimer),this._refreshTimer=null);const s=[];for(const e of this.sessions.values())e.swarm&&s.push(e.swarm.destroy());this.sessions.clear(),await Promise.allSettled(s)}_open(){this.swarm=this.keet.swarm,this._runOpen()}_close(){return this._runClose()}async _refreshFallbackSwarming(){if(!this._fallbackSwarmingEnabled)return;const s=await this.keet.local.find("@local/rooms-by-timestamp",{limit:this._fallbackSwarmingLimit,reverse:!0}).toArray(),t=new Set;for(const i of s){const s=e.encode(i.capabilities.swarmTopic),r=this._createSession(s,i.capabilities.swarmTopic);if(!r.status.isFallback){r.status.isFallback=!0;const s=Math.floor(.5*Math.random()*this._gcStartFallbackSwarmingDelay),e=this._gcStartFallbackSwarmingDelay+s;r.fallbackSwarmingStartTime=Date.now()+e}t.add(s)}for(const s of this.sessions.values())t.has(s.id)||(s.status.isFallback=!1)}async _refreshSessions(){const s=[],e=[];for(const t of this.sessions.values())this._checkInactivity(t)?s.push(t):e.push(this._refreshSession(t));await Promise.allSettled(e);const t=[];for(const e of s)this.sessions.delete(e.id),e.roomId&&this.sessionsByRoomId.delete(e.roomId),e.swarm&&t.push(e.swarm.destroy());await Promise.allSettled(t)}_checkInactivity(s){if(!this._gcEnabled)return!1;let e=!1;s.status.isDiscovering&&(e=Date.now()-s.discoveryStartTime>s.discoveryTimeout);const t=s.status.isFallback||s.status.isActive;let i=s.status.isDiscovering&&!e;return s.status.isDiscovering&&e&&(this.keet.internalDiscoveryCompleted(s.discoveryKey,s.roomId),s.status.isDiscovering=!1,i=!1),!(t||i||(0===s.idleStartTime&&(s.idleStartTime=Date.now()),s.idleDuration=Date.now()-s.idleStartTime,s.idleDuration<this._gcIdleTime))}async _refreshSession(s){let e=!1,t=!1;s.status.isFallback&&(t=Date.now()>=s.fallbackSwarmingStartTime||s.swarmStatus.isServer),s.status.isDiscovering&&(e=Date.now()>=s.discoverySwarmingStartTime||s.swarmStatus.isClient),s.status.isActive&&(e=!0,t=!0);const i=e===s.swarmStatus.isClient,a=t===s.swarmStatus.isServer;if(i&&a)return;const o=s.swarm;this._serverModeAllowed||(t=!1),s.swarmStatus.isClient=e,s.swarmStatus.isServer=t,this.keet.debug.disableSwarming||this.keet.state===r.WAKEUP||(s.swarm=this.swarm.join(s.discoveryKey,{client:e,server:t,limit:s.limit}),o&&await o.destroy())}async refresh(){if(!this.keet.closing&&await this._refreshLock.lock())try{await this._refreshFallbackSwarming(),await this._refreshSessions()}catch(s){this.keet.onerror(s)}finally{this._refreshLock.unlock()}}_createSession(s,e,{roomId:t,limit:i}={}){let r=this.sessions.get(s);return r?(t&&!this.sessionsByRoomId.has(t)&&(r.roomId=t,this.sessionsByRoomId.set(t,r)),r):(r={id:s,roomId:t,discoveryKey:e,swarm:null,lastActiveTime:0,discoveryStartTime:0,discoveryTimeout:0,discoverySwarmingStartTime:0,fallbackSwarmingStartTime:0,idleStartTime:0,idleDuration:0,activeRefs:0,status:{isActive:!1,isFallback:!1,isDiscovering:!1},limit:i,swarmStatus:{isClient:!1,isServer:!1}},this.sessions.set(s,r),t&&this.sessionsByRoomId.set(t,r),r)}setServerMode(s){this._serverModeAllowed=s}startActiveSwarming(s){const t=e.encode(s),i=this._createSession(t,s);i.activeRefs++,i.status.isActive=!0,i.lastActiveTime=Date.now(),this.refresh()}stopActiveSwarming(s){const t=e.encode(s),i=this.sessions.get(t);i&&(i.activeRefs>0&&i.activeRefs--,i.activeRefs>0||(i.status.isActive=!1,this.refresh()))}startDiscoverySwarming(s,t){const i=e.encode(s),r=this._createSession(i,s,t);if(r.status.isDiscovering=!0,r.discoveryStartTime=Date.now(),r.discoveryTimeout=this._gcDefaultDiscoveryTimeout,!1!==t.deferSwarming&&this._deferSwarming){const s=Math.floor(.5*Math.random()*this._gcStartDiscoverySwarmingDelay),e=this._gcStartDiscoverySwarmingDelay+s;r.discoverySwarmingStartTime=Date.now()+e}else r.discoverySwarmingStartTime=r.discoveryStartTime;this.refresh()}notifyDiscoveryUpdate(s){const e=this.sessionsByRoomId.get(s);e&&e.status.isDiscovering&&(e.discoveryStartTime=Date.now(),e.discoveryTimeout=this._gcUpdatedDiscoveryTimeout,this.refresh())}async background(){if(this._backgrounded)return;this._backgrounded=!0;const s=[];for(const e of this.sessions.values())e.swarm&&s.push(d(e));await Promise.allSettled(s)}async unbackground(){this._backgrounded&&(this._backgrounded=!1,await this._runOpen())}async suspend(){await this._runClose()}async resume(){await this._runOpen()}async flush(){await this.refresh(),await this.swarm.flush()}};
@holepunchto/keet-core/lib/core/sync/index.js +1 -1
……@@ -1 +1 @@
1const e=require("hypercore-id-encoding"),t=require("ready-resource"),s=require("./updater"),{roomsStats:a}=require("../contract/stats/local"),{KeetErrorV2:r}=require("../../errors");module.exports=class extends t{constructor(e,t,s,a){super(),this.keet=e,this.view=t,this.base=s,this.changes=a,this._events=[],this._swappedId=!1,this._updater=null}async _close(){this._updater&&await this._updater.close()}async _save(){const t=await this.keet.internalEnterLocalTransaction();try{const s=this._updater.updates.startIdentitySwap,r=this._updater.updates.finishIdentitySwap;if(s){const e=this._updater.currentIdentityInfo;e.swapV2=s,await t.insert("@local/identity",e)}if(r&&(await t.insert("@local/identity",r),this._swappedId=!0),this._updater.updates.contacts){for(const e of this._updater.updates.contacts)await t.insert("@local/contacts",e);this._events.push({type:"contacts-changed",args:[]})}if(this._updater.updates.sharedPreferences)for(const s of this._updater.updates.sharedPreferences){const a=await t.get("@local/room-preferences",s);await t.insert("@local/room-preferences",s);const r=await t.get("@local/rooms",s);r&&(r.preferences=s.status,await t.insert("@local/rooms",r)),s.status.isActive&&this._events.push({type:"recent-rooms-changed",args:["changed",0,e.encode(s.roomKey)]});const i=!1===a?.status.isFavorite&&s.status.isFavorite,o=!0===a?.status.isFavorite&&!s.status.isFavorite;i||o?this._events.push({type:"favorite-rooms-changed",args:[o?"removed":"added",0,e.encode(s.roomKey)]}):s.status.isFavorite&&s.status.isActive&&this._events.push({type:"favorite-rooms-changed",args:["changed",0,e.encode(s.roomKey)]})}if(this._updater.updates.cache){const e=this._updater.updates.cache;if(e.device&&await t.insert("@local/devices",{roomKey:this.base.key,device:e.device}),e.member&&await t.insert("@local/members",e.member),e.otherMembers)for(const s of e.otherMembers)await t.insert("@local/members",s)}const i=await t.get("@local/rooms",this._updater.roomInfo);if(!i){const e=await t.get("@local/room-preferences",this._updater.roomInfo);e&&(this._updater.roomInfo.preferences=e.status)}await t.insert("@local/rooms",this._updater.roomInfo),await a(t,this._updater.roomInfo,i),await t.flush()}finally{await this.keet.internalExitLocalTransaction()}}async _dispatch(){const e=this._updater.updates.dispatches;if(e&&0!==e.length)try{await this.keet.dispatchBatch(this.base.id,e)}catch(e){this.keet.onerror(e)}}async _profileDispatch(){if(!this._updater.currentIdentityInfo)return;const t=this._updater.updates.profileDispatches;if(t&&0!==t.length)try{const s=e.encode(this._updater.currentIdentityInfo.privateProfileKey);await this.keet.dispatchBatch(s,t)}catch(e){this.keet.onerror(e)}}_generateEvents(){this._events.push({type:"room-changed",args:[this.base.id]});const{roomKey:t,discoveryKey:s,timestamps:a}=this._updater.roomInfo,r=a.latestChatMessage||a.latestSync,i=this._updater.roomInfo&&!this._updater.currentRoomInfo,o=!this._updater.roomInfo.status.isRemoved&&this._updater.currentRoomInfo?.status.isRemoved,n=this._updater.roomInfo.status.isRemoved&&!this._updater.currentRoomInfo?.status.isRemoved,h=this._updater.roomInfo.status.isRemoved,d=!!this._updater.roomInfo.dm,c=!(h||n||i||o);if((i||o||n)&&(this._events.push({type:"recent-rooms-changed",args:[n?"removed":"added",r,this.base.id]}),this._updater.roomInfo.preferences?.isFavorite&&this._events.push({type:"favorite-rooms-changed",args:[n?"removed":"added",r,this.base.id]}),(i||o)&&this._events.push({type:"room-preferences-changed",args:["join",t,s]}),n&&this._events.push({type:"room-preferences-changed",args:["leave",t,s]}),i&&d&&this._events.push({type:"dm-rooms-changed",args:[]})),(this._updater.updates.chat||this._updater.updates.labels)&&(c&&(this._events.push({type:"recent-rooms-changed",args:["changed",r,this.base.id]}),this._updater.roomInfo.preferences?.isFavorite&&this._events.push({type:"favorite-rooms-changed",args:["changed",r,this.base.id]})),this._updater.updates.chat&&!h&&this._events.push({type:"chat-changed",args:[this.base.id,this._updater.updates.chat.id.index]})),this._updater.isCurrentPrivateProfile&&this._events.push({type:"identity-changed",args:[]}),this._updater.updates.sharedPreferences)for(const{roomKey:t,status:s}of this._updater.updates.sharedPreferences)s.isFullyMuted&&this._events.push({type:"room-preferences-changed",args:["mute",t]}),s.isFullyMuted||this._events.push({type:"room-preferences-changed",args:["unmute",t]}),this._events.push({type:"room-changed",args:[e.encode(t)]});if(this._updater.updates.activeCallSynced){const e=this._updater.updates.activeCall,t=this._updater.updates.activeCallDevice;this._events.push({type:"call-changed",args:[this.base.id,e,t]})}}async _runPostUpdate(){try{if(await this.base.update(),this.keet.closing)return;if(await this._dispatch(),this.keet.closing)return;if(await this._profileDispatch(),this.keet.closing)return;if(this._updater.updates.shouldUpgrade){const t=e.encode(this._updater.roomInfo.roomKey);await this.keet.internalDispatchUpgrade(t,this.keet.abi.autoupgrade)}if(this._updater.updates.tasks)for(const e of this._updater.updates.tasks)e.runBackground();for(const{type:e,args:t}of this._events)this.keet.emit(e,...t);this._updater.changes.logout&&await this.keet.logout(),this._updater.updates.unreadKeys&&await this.keet.internalRefreshUnreads();for(const{type:e,value:t}of this._updater.events){const s={roomKey:this.base.key,roomId:this.base.id,roomInfo:this._updater.roomInfo,value:t};this.keet.emit(e,s)}}catch(e){this.keet.onerror(e)}}async run(){try{this._updater=new s(this.keet,this.view,this.base,this.changes);const e=await this._updater.run();if(this.closing||this.keet.debugClosing)throw r.KEET_IS_CLOSING();if(!e)return;if(await this._save(),this.closing)throw r.KEET_IS_CLOSING();this._swappedId&&this.keet.internalSafeSwapPrivateProfiles(),this._generateEvents()}finally{await this.close()}}runPostUpdate(){queueMicrotask(this._runPostUpdate.bind(this))}};
1const e=require("hypercore-id-encoding"),t=require("ready-resource"),s=require("b4a"),a=require("./updater"),{sameHead:i}=require("../hyperdb/local/local"),r=require("./rooms"),{KeetErrorV2:o}=require("../../errors");module.exports=class extends t{constructor(e,t,s){super(),this.keet=e,this.view=t,this.roomEngine=s,this._events=[],this._swappedId=!1,this._updater=null}get loggingOut(){return!!this._updater?.updates.logout}async _close(){this._updater&&await this._updater.close()}async _save(){const t=await this.keet.internalEnterLocalTransaction();try{const a=this._updater.updates.startIdentitySwap,i=this._updater.updates.finishIdentitySwap;if(a){const e=this._updater.currentIdentityInfo;e.swapV2=a;const i=await t.get("@local/identity");s.equals(i.publicKey,e.publicKey)&&await t.insert("@local/identity",{...i,swapV2:a})}if(i&&(await t.insert("@local/identity",i),this._updater.updates.attemptRecovery&&await t.delete("@local/pending-recovery"),this._swappedId=!0),this._updater.updates.contacts){for(const e of this._updater.updates.contacts)await t.insert("@local/contacts",e);this._events.push({type:"contacts-changed",args:[]})}if(this._updater.updates.sharedPreferences)for(const s of this._updater.updates.sharedPreferences){const a=await t.get("@local/room-preferences",s);await t.insert("@local/room-preferences",s);const i=await t.get("@local/rooms",s);i&&(i.preferences=s.status,await t.insert("@local/rooms",i)),s.status.isActive&&this._events.push({type:"recent-rooms-changed",args:["changed",0,e.encode(s.roomKey)]});const r=!1===a?.status.isFavorite&&s.status.isFavorite,o=!0===a?.status.isFavorite&&!s.status.isFavorite;r||o?this._events.push({type:"favorite-rooms-changed",args:[o?"removed":"added",0,e.encode(s.roomKey)]}):s.status.isFavorite&&s.status.isActive&&this._events.push({type:"favorite-rooms-changed",args:["changed",0,e.encode(s.roomKey)]})}if(this._updater.updates.cache&&!this.keet.debugDisableCacheBump){const e=this._updater.updates.cache;if(e.device&&await t.insert("@local/devices",{roomKey:this.roomEngine.key,device:e.device}),e.member&&await t.insert("@local/members",e.member),e.otherMembers)for(const s of e.otherMembers)await t.insert("@local/members",s)}if(await this.keet.tasks.internalPersistTasks(t,this._updater.updates.tasks),this._updater.processed&&(this._updater.roomInfo.processed=this._updater.processed,await this._clearUpdate(t)),this.keet.debugFailRoomSync&&s.equals(this.keet.debugFailRoomSync,this.roomEngine.key))throw new TypeError("debugFailRoomSync");if(this.keet.debugFailNextRoomSync&&s.equals(this.keet.debugFailNextRoomSync,this.roomEngine.key))throw this.keet.debugFailNextRoomSync=null,new TypeError("debugFailNextRoomSync");await r(t,this._updater.roomInfo),await t.flush()}finally{await this.keet.internalExitLocalTransaction()}}async _clearUpdate(e){const t=this._updater.currentUpdate;if(!t)return;const s=await e.get("@local/room-updates",t);i(s?.head,this._updater.processed)&&await e.delete("@local/room-updates",t)}async _dispatch(){const e=this._updater.updates.dispatches;if(e&&0!==e.length)try{await this.keet.dispatchBatch(this.roomEngine.id,e)}catch(e){this.keet.onerror(e)}}async _profileDispatch(){if(!this._updater.currentIdentityInfo)return;const t=this._updater.updates.profileDispatches;if(t&&0!==t.length)try{const s=e.encode(this._updater.currentIdentityInfo.privateProfileKey);await this.keet.dispatchBatch(s,t)}catch(e){this.keet.onerror(e)}}_generateEvents(){this._events.push({type:"room-changed",args:[this.roomEngine.id]});const{roomKey:t,discoveryKey:s,timestamps:a}=this._updater.roomInfo,i=a.latestChatMessage||a.latestSync,r=this._updater.roomInfo&&!this._updater.currentRoomInfo,o=!this._updater.roomInfo.status.isRemoved&&this._updater.currentRoomInfo?.status.isRemoved,n=this._updater.roomInfo.status.isRemoved&&!this._updater.currentRoomInfo?.status.isRemoved,h=this._updater.roomInfo.status.isRemoved,d=!!this._updater.roomInfo.dm,c=!(h||n||r||o);if((r||o||n)&&(this._events.push({type:"recent-rooms-changed",args:[n?"removed":"added",i,this.roomEngine.id]}),this._updater.roomInfo.preferences?.isFavorite&&this._events.push({type:"favorite-rooms-changed",args:[n?"removed":"added",i,this.roomEngine.id]}),(r||o)&&this._events.push({type:"room-preferences-changed",args:["join",t,s]}),n&&this._events.push({type:"room-preferences-changed",args:["leave",t,s]}),r&&d&&this._events.push({type:"dm-rooms-changed",args:[]})),(this._updater.updates.chat||this._updater.updates.labels)&&(c&&(this._events.push({type:"recent-rooms-changed",args:["changed",i,this.roomEngine.id]}),this._updater.roomInfo.preferences?.isFavorite&&this._events.push({type:"favorite-rooms-changed",args:["changed",i,this.roomEngine.id]})),this._updater.updates.chat&&!h&&this._events.push({type:"chat-changed",args:[this.roomEngine.id,this._updater.updates.chat.id.index]})),this._updater.isCurrentPrivateProfile&&this._events.push({type:"identity-changed",args:[]}),this._updater.updates.sharedPreferences)for(const{roomKey:t,status:s}of this._updater.updates.sharedPreferences)s.isFullyMuted&&this._events.push({type:"room-preferences-changed",args:["mute",t]}),s.isFullyMuted||this._events.push({type:"room-preferences-changed",args:["unmute",t]}),s.roomSnoozeTime&&this._events.push({type:"room-preferences-changed",args:["roomSnoozeTime",t]}),this._events.push({type:"room-changed",args:[e.encode(t)]});if(this._updater.updates.activeCallSynced){const e=this._updater.updates.activeCall,t=this._updater.updates.activeCallDevice;(!e||e&&1===e.version)&&this._events.push({type:"call-changed",args:[this.roomEngine.id,e,t]}),(!e||e&&3===e.version)&&this._events.push({type:"call-changed-v3",args:[this.roomEngine.id,e,t]})}}async postUpdate(){try{if(await this.roomEngine.update(),this.keet.closing)return;if(await this._dispatch(),this.keet.closing)return;if(await this._profileDispatch(),this.keet.closing)return;if(this._updater.updates.shouldUpgrade){const t=e.encode(this._updater.roomInfo.roomKey);await this.keet.internalDispatchUpgrade(t,this.keet.abi.autoupgrade)}if(this._updater.updates.tasks)for(const e of this._updater.updates.tasks)e.runBackground();for(const{type:e,args:t}of this._events)this.keet.emit(e,...t);this._updater.updates.logout&&await this.keet.logout(),this._updater.updates.unreadKeys&&await this.keet.internalRefreshUnreads();for(const{type:e,value:t}of this._updater.events){const s={roomKey:this.roomEngine.key,roomId:this.roomEngine.id,roomInfo:this._updater.roomInfo,value:t};this.keet.emit(e,s)}}catch(e){this.keet.onerror(e)}}async run(){let e=null;try{await this._run()}catch(t){e=t}finally{await this.close()}if(this.keet.closing||this.keet.debugClosing){if(e)throw e;return!0}if(!e)return!0;const t=await this.keet.internalEnterLocalTransaction();try{await t.delete("@local/room-updates",{roomKey:this.roomEngine.key}),await t.flush()}finally{await this.keet.internalExitLocalTransaction()}return this.keet.onerror(e,{roomKey:this.roomEngine.key}),!1}async _run(){if(await this.roomEngine.ensureMigratedViews(),this.closing||this.keet.debugClosing)throw o.KEET_IS_CLOSING();this._updater=new a(this.keet,this.view,this.roomEngine);const e=await this._updater.run();if(this.closing||this.keet.debugClosing)throw o.KEET_IS_CLOSING();if(e){if(await this._save(),this.closing)throw o.KEET_IS_CLOSING();this._swappedId&&this.keet.internalSafeSwapPrivateProfiles(),this._generateEvents()}}};
@holepunchto/keet-core/lib/core/sync/loader.js +1 -1
……@@ -1 +1 @@
1const t=require("ready-resource"),e=require("hypercore-id-encoding"),i=require("safety-catch"),a=require("b4a"),{KeetContractError:s}=require("../contract/errors"),{contract:{hyperschema:{getEnum:n}}}=require("../../../schema/spec"),o=n("@keet/room-type"),{restoreAvatar:l,restoreFile:r}=require("../contract/avatars"),{getMemberForDeviceKey:h}=require("../contract/query"),{getCall:d}=require("../../api/v1/helpers");module.exports=class extends t{constructor(t,e,a){super(),this.local=t,this.view=e,this.base=a,this.shared=0,this.syncTime=null,this.output=null,this.input=null,this.inputBlobs=null,this.core=null,this._loadingLocalPrivateProfileInfo=null,this._loadingLocalIdentityInfo=null,this._loadingLocalRoomInfo=null,this._loadingLatestMessages=null,this._loadingLatestMembers=null,this._loadingDigest=null,this._loadingConfig=null,this._loadingCapabilities=null,this._loadingIdentity=null,this._loadingPrimaryThread=null,this._loadingLastMessage=null,this._loadingDMMembers=null,this._loadingReadLengths=null,this._loadingChatChanges=null,this._loadingContactChanges=null,this._loadingSharedRoomChanges=null,this._loadingPendingInvitations=null,this.ready().catch(i)}_close(){return Promise.all([this.input.close(),this.output.close(),this.inputBlobs.close()])}async _open(){this.view.db.update(),this.output=this.local.snapshot(),this.input=this.view.db.snapshot(),this.inputBlobs=this.view.blobs.snapshot(),this.core=this.input.engine.db.core,this.syncTime=Date.now()}async _getChangeRange(t){const e=await this.input.findOne(t,{reverse:!0,checkout:this.shared});return e?{gt:{clock:e.clock}}:{}}async _runLoadConfig(){const[t,e,i,s]=await Promise.all([this.loadLocalRoomInfo(),this.loadDigest(),this.loadSelfMember(),this.input.get("@keet/room-config")]);let n=s?.title||null,r=s?.avatar||null;if(i&&e?.settings.roomType===o.DirectMessage){const t=await this.input.find("@keet/members").toArray();for(const e of t)if(!a.equals(i.key,e.key)){n=e.profile.displayName,r=e.profile.avatar;break}}if(r){const e=t?.config?.avatar?.small?.hash,i=r?.small?.hash;e&&i&&a.equals(e,i)?s.avatar=t.config.avatar:await l(this.inputBlobs,r)}return{...s,title:n,avatar:r}}async _runLoadSelfMember(){const t=await h(this.input,this.base.local.key);if(!t)return null;const e=await this.input.get("@keet/member-proofs",{key:t.key}),i={...t,proofs:e};return i?.profile.avatar?(await l(this.inputBlobs,i.profile.avatar),i):i}async _runLoadLastMessage(){const t=await this.loadPrimaryThread();if(!t||0===t.count)return null;const e={thread:0,index:t.count-1};return this.loadMessage(e)}async _runLoadDMMembers(){const[t,e]=await Promise.all([this.loadDigest(),this.loadSelfMember()]);if(!t||!e||t.settings.roomType!==o.DirectMessage)return[];const i=await this.input.find("@keet/members").toArray(),s=[];for(const t of i)a.equals(t.key,e.key)||s.push(t.key);return s}async _runLoadChatChanges(){const[t,e]=await Promise.all([this.loadLocalRoomInfo(),this.loadLastMessage()]),i=t?.lastMessage?.oplog.key,s=t?.lastMessage?.oplog.seq,n=e?.oplog.key,o=e?.oplog.seq;let l=!1;return l=!i||!(a.equals(i,n)&&s===o),{lastMessage:e,changed:l}}async _runLoadLatestMessages(){const t=await this.loadLocalIdentityInfo();return t&&a.equals(this.base.key,t.privateProfileKey)?[]:this.input.find("@keet/chat",{gte:{id:{thread:0}},lte:{id:{thread:0}},limit:20,reverse:!0}).toArray()}async _loadFiles(t){const e=await Promise.all(t.map(t=>this.input.get("@keet/files",{id:t})));return await Promise.all(e.map(async t=>(await r(this.inputBlobs,t.file.preview),t.file)))}async _loadMemberForDeviceKey(t,i,a){const s=await h(this.input,a);if(!s)return null;const n=e.encode(s.key);t.has(n)||(t.add(n),s.avatar&&await l(this.inputBlobs,s.avatar),i.push(s))}async _runLoadLatestMembers(){const t=await this.loadLatestMessages();if(this.closing||!t.length)return[];const i=[],a=[],s=new Set,n=new Set;for(const o of t){const t=e.encode(o.oplog.key);s.has(t)||(s.add(t),a.push(this._loadMemberForDeviceKey(n,i,o.oplog.key)))}return await Promise.all(a),i}async _runLoadSharedRoomChanges(){const t=await this._getChangeRange("@keet-private-id/rooms-by-clock"),e=[];for await(const i of this.input.find("@keet-private-id/rooms-by-clock",t))e.push(i);return e}async _runLoadContactChanges(){const t=await this._getChangeRange("@keet-private-id/contacts-by-clock"),e=[];for await(const i of this.input.find("@keet-private-id/contacts-by-clock",t))i.contactInfo?.profile.avatar&&await l(this.inputBlobs,i.contactInfo.profile.avatar),e.push(i);return e}_runLoadPendingInvitations(){return this.input.find("@keet-private-id/pending-invitations").toArray()}async _runLoadLocalPrivateProfileInfo(){const t=await this.loadLocalIdentityInfo();return this.closing||!t?null:this.output.get("@local/rooms",{roomKey:t.privateProfileKey})}_runLoadReadLengths(){return this.input.find("@keet/read-lengths").toArray()}_runLoadActiveCall(){return d(this.input,"@keet/active-calls-by-timestamp")}_runLoadActiveCallDevice(t,e){return this.input.get("@keet/call-devices",{callKey:t,deviceKey:e})}loadLocalRoomInfo(){return this._loadingLocalRoomInfo||(this._loadingLocalRoomInfo=this.output.get("@local/rooms",{roomKey:this.base.key}),this._loadingLocalRoomInfo.catch(i)),this._loadingLocalRoomInfo}loadLocalPrivateProfileInfo(){return this._loadingLocalPrivateProfileInfo||(this._loadingLocalPrivateProfileInfo=this._runLoadLocalPrivateProfileInfo(),this._loadingLocalPrivateProfileInfo.catch(i)),this._loadingLocalPrivateProfileInfo}loadLocalIdentityInfo(){return this._loadingLocalIdentityInfo||(this._loadingLocalIdentityInfo=this.output.get("@local/identity"),this._loadingLocalIdentityInfo.catch(i)),this._loadingLocalIdentityInfo}loadDigest(){return this._loadingDigest||(this._loadingDigest=this.input.get("@keet/system-digest"),this._loadingDigest.catch(i)),this._loadingDigest}loadConfig(){return this._loadingConfig||(this._loadingConfig=this._runLoadConfig(),this._loadingConfig.catch(i)),this._loadingConfig}loadCapabilities(){return this._loadingCapabilities||(this._loadingCapabilities=this.input.get("@keet/room-capabilities"),this._loadingCapabilities.catch(i)),this._loadingCapabilities}loadPrimaryThread(){return this._loadingPrimaryThread||(this._loadingPrimaryThread=this.input.get("@keet/threads",{id:0}),this._loadingPrimaryThread.catch(i)),this._loadingPrimaryThread}loadSelfDevice(){return this._loadingSelfDevice||(this._loadingSelfDevice=this.input.get("@keet/devices",{key:this.base.local.key}),this._loadingSelfDevice.catch(i)),this._loadingSelfDevice}loadSelfMember(){return this._loadingSelfMember||(this._loadingSelfMember=this._runLoadSelfMember(),this._loadingSelfMember.catch(i)),this._loadingSelfMember}loadLastMessage(){return this._loadingLastMessage||(this._loadingLastMessage=this._runLoadLastMessage(),this._loadingLastMessage.catch(i)),this._loadingLastMessage}loadDMMembers(){return this._loadingDMMembers||(this._loadingDMMembers=this._runLoadDMMembers(),this._loadingDMMembers.catch(i)),this._loadingDMMembers}loadIdentity(){return this._loadingIdentity||(this._loadingIdentity=this.input.get("@keet-private-id/identity"),this._loadingIdentity.catch(i)),this._loadingIdentity}loadSettings(){return this._loadSettings||(this._loadSettings=this.input.get("@keet-private-id/settings"),this._loadSettings.catch(i)),this._loadSettings}loadChatChanges(){return this._loadingChatChanges||(this._loadingChatChanges=this._runLoadChatChanges(),this._loadingChatChanges.catch(i)),this._loadingChatChanges}loadContactChanges(){return this._loadingContactChanges||(this._loadingContactChanges=this._runLoadContactChanges(),this._loadingContactChanges.catch(i)),this._loadingContactChanges}loadSharedRoomChanges(){return this._loadingSharedRoomChanges||(this._loadingSharedRoomChanges=this._runLoadSharedRoomChanges(),this._loadingSharedRoomChanges.catch(i)),this._loadingSharedRoomChanges}loadPendingInvitations(){return this._loadingPendingInvitations||(this._loadingPendingInvitations=this._runLoadPendingInvitations(),this._loadingPendingInvitations.catch(i)),this._loadingPendingInvitations}loadLatestMessages(){return this._loadingLatestMessages||(this._loadingLatestMessages=this._runLoadLatestMessages(),this._loadingLatestMessages.catch(i)),this._loadingLatestMessages}loadLatestMembers(){return this._loadingLatestMembers||(this._loadingLatestMembers=this._runLoadLatestMembers(),this._loadingLatestMembers.catch(i)),this._loadingLatestMembers}loadReadLengths(){return this._loadingReadLengths||(this._loadingReadLengths=this._runLoadReadLengths(),this._loadingReadLengths.catch(i)),this._loadingReadLengths}loadActiveCall(){return this._loadingActiveCall||(this._loadingActiveCall=this._runLoadActiveCall(),this._loadingActiveCall.catch(i)),this._loadingActiveCall}loadActiveCallDevice(t,e){return this._loadingActiveCallDevice||(this._loadingActiveCallDevice=this._runLoadActiveCallDevice(t,e),this._loadingActiveCallDevice.catch(i)),this._loadingActiveCallDevice}loadPreferences(){return this._loadingPreferences||(this._loadingPreferences=this.local.get("@local/room-preferences",{roomKey:this.base.key}),this._loadingPreferences.catch(i)),this._loadingPreferences}async loadLabels(t){const e=await this.loadSelfMember(),[i,a]=await Promise.all([this.input.get("@keet/chat-label-digests",{id:t}),e?this.input.find("@keet/chat-labels",{gte:{id:t,sender:e.key},lte:{id:t,sender:e.key}}).toArray():[]]);return i&&{digest:i,mine:a}}async loadMessage(t){const[e,i,a]=await Promise.all([this.input.get("@keet/chat",{id:t}),this.input.get("@keet/reaction-digests",{id:t}),this.loadLabels(t)]);if(!e)return null;const n=e.message?.files,o=!!n&&n.length>0,[r,d,g]=await Promise.all([this.input.get("@keet/devices",{key:e.oplog.key}),h(this.input,e.oplog.key),o?this._loadFiles(n):null]);if(!d)throw s.CORRUPT("Last chat message does not have a member");d.profile.avatar&&await l(this.inputBlobs,d.profile.avatar),g&&(e.message.files=g);const c=[];if(e.event?.memberRemoved?.memberKey){const t=await this.input.get("@keet/members",{key:e.event.memberRemoved.memberKey});t&&(t.profile.avatar&&await l(this.inputBlobs,t.profile.avatar),c.push(t))}return{message:e,reactions:i,labels:a,device:r,member:d,otherMembers:c}}};
1const t=require("ready-resource"),e=require("safety-catch"),i=require("b4a"),{KeetContractError:a}=require("../contract/errors"),{contract:{hyperschema:{getEnum:s}}}=require("../../../schema/spec"),o=s("@keet/room-type"),{restoreAvatar:n,restoreFile:l}=require("../contract/avatars"),{getMemberForDeviceKey:r}=require("../contract/query"),{getCall:h}=require("../../api/v1/helpers"),d=require("hypercore-id-encoding");function g(t,e){return t.clock-e.clock}module.exports=class extends t{constructor(t,i,a,{latestMessagesLimit:s=16,latestRoomsLimit:o=3}={}){super(),this.local=t,this.view=i,this.engine=a,this.latestMessagesLimit=s,this.latestRoomsLimit=o,this.syncTime=null,this.head=null,this.systemHead=null,this.output=null,this.input=null,this.system=null,this.core=null,this.legacyBlobs=null,this._loadingLocalPrivateProfileInfo=null,this._loadingLocalIdentityInfo=null,this._loadingLocalRoomInfo=null,this._loadingRoomUpdate=null,this._loadingLatestMessages=null,this._loadingLatestRooms=null,this._loadingLatestMembers=null,this._loadingLatestMessageDetails=null,this._loadingDigest=null,this._loadingConfig=null,this._loadingCapabilities=null,this._loadingIdentity=null,this._loadingPrimaryThread=null,this._loadingLastMessage=null,this._loadingDMMembers=null,this._loadingReadLengths=null,this._loadingWriterInfo=null,this._loadingChatChanges=null,this._loadingContactChanges=null,this._loadingSharedRoomChanges=null,this._loadingPendingInvitations=null,this.ready().catch(e)}_close(){return Promise.all([this.input.close(),this.output.close(),this.system.close()])}async _open(){await this.engine.loadMigratedViews(),this.view.db.update(),this.head=this.view.bee.head(),this.systemHead=this.engine.system.bee.head(),this.output=this.local.snapshot(),this.input=this.view.db.snapshot(),this.system=this.engine.system.snapshot(),this.legacyBlobs=this.engine.blobs,this.core=this.input.engine.db.core,this.syncTime=Date.now()}async _runLoadConfig(){const[t,e,a,s]=await Promise.all([this.loadLocalRoomInfo(),this.loadDigest(),this.loadSelfMember(),this.input.get("@keet/room-config")]);let l=s?.title||null,r=s?.avatar||null;if(a&&e?.settings.roomType===o.DirectMessage){const t=await this.input.find("@keet/members").toArray();for(const e of t)if(!i.equals(a.key,e.key)){l=e.profile.displayName,r=e.profile.avatar;break}}if(r){const e=t?.config?.avatar?.small?.hash,a=r?.small?.hash;e&&a&&i.equals(e,a)?s.avatar=t.config.avatar:await n(this.input,this.legacyBlobs,r)}return{...s,title:l,avatar:r}}async _runLoadSelfMember(){const t=await r(this.input,this.engine.local.key);if(!t)return null;const e=await this.input.get("@keet/member-proofs",{key:t.key}),i={...t,proofs:e};return i?.profile.avatar?(await n(this.input,this.legacyBlobs,i.profile.avatar),i):i}async _runLoadLastMessage(){const t=await this.loadPrimaryThread();if(!t||0===t.count)return null;const e={thread:0,index:t.count-1};return this.loadMessage(e)}async _runLoadDMMembers(){const[t,e]=await Promise.all([this.loadDigest(),this.loadSelfMember()]);if(!t||!e||t.settings.roomType!==o.DirectMessage)return[];const a=await this.input.find("@keet/members").toArray(),s=[];for(const t of a)i.equals(t.key,e.key)||s.push(t.key);return s}async _runLoadChatChanges(){const[t,e]=await Promise.all([this.loadLocalRoomInfo(),this.loadLastMessage()]),a=t?.lastMessage?.oplog.key,s=t?.lastMessage?.oplog.seq,o=e?.oplog.key,n=e?.oplog.seq;let l=!1;return l=!a||!(i.equals(a,o)&&s===n),{lastMessage:e,changed:l}}async _runLoadLatestMessages(){const t=await this.loadLocalIdentityInfo();return t&&i.equals(this.engine.key,t.privateProfileKey)?[]:this.input.find("@keet/chat",{gte:{id:{thread:0}},lte:{id:{thread:0}},limit:this.latestMessagesLimit,reverse:!0}).toArray()}_runLoadLatestRooms(){return this.input.find("@keet-private-id/rooms-by-clock",{limit:this.latestRoomsLimit,reverse:!0}).toArray()}async _runLoadLatestMessageDetails(){const[t,e]=await Promise.all([this.loadLatestMessages(),this.loadSelfMember()]);return this.closing||!t.length?[]:Promise.all(t.map(t=>this._loadMessageRecord(t,e)))}async _runLoadLatestMembers(){const t=await this.loadLatestMessages();if(this.closing||!t.length)return[];const e=[],i=[],a=new Set,s=new Set;for(const o of t){const t=d.encode(o.oplog.key);a.has(t)||(a.add(t),i.push(this._loadMemberForDeviceKey(s,e,o.oplog.key)))}return await Promise.all(i),e}async _loadMemberForDeviceKey(t,e,i){const a=await r(this.input,i);if(!a)return null;const s=d.encode(a.key);t.has(s)||(t.add(s),a.avatar&&await n(this.input,this.legacyBlobs,a.avatar),e.push(a))}async _loadFiles(t){const e=await Promise.all(t.map(t=>this.input.get("@keet/files",{id:t})));return await Promise.all(e.map(async t=>(await l(this.input,this.legacyBlobs,t.file.preview),t.file)))}async _loadMessageAnnotations(t,e){const[i,a,s]=await Promise.all([this.input.get("@keet/reaction-digests",{id:t}),this.input.get("@keet/chat-label-digests",{id:t}),e?this.input.find("@keet/chat-labels",{gte:{id:t,sender:e.key},lte:{id:t,sender:e.key}}).toArray():[]]);return{reactions:i,labels:a&&{digest:a,mine:s}}}async _loadMessageRefs(t){const e=t.message?.files,i=!!e&&e.length>0,[a,s,o]=await Promise.all([this.input.get("@keet/devices",{key:t.oplog.key}),r(this.input,t.oplog.key),i?this._loadFiles(e):null]),l=[];return await Promise.all([s?.profile.avatar?n(this.input,this.legacyBlobs,s.profile.avatar):null,this._loadRemovedMember(t,l)]),o&&(t.message.files=o),{device:a,member:s,otherMembers:l}}async _loadRemovedMember(t,e){if(!t.event?.memberRemoved?.memberKey)return;const i=await this.input.get("@keet/members",{key:t.event.memberRemoved.memberKey});i&&(i.profile.avatar&&await n(this.input,this.legacyBlobs,i.profile.avatar),e.push(i))}async _loadMessageRecord(t,e){const[i,a]=await Promise.all([this._loadMessageAnnotations(t.id,e),this._loadMessageRefs(t)]);return{message:t,...i,...a}}async _runLoadSharedRoomChanges(t){const e=[];for await(const{right:i}of this.input.diff("@keet-private-id/rooms",{from:t}))i&&e.push(i);return e.sort(g)}async _runLoadContactChanges(t){const e=[];for await(const{right:i}of this.input.diff("@keet-private-id/contacts",{from:t}))i&&(i.contactInfo?.profile.avatar&&await n(this.input,this.legacyBlobs,i.contactInfo.profile.avatar),e.push(i));return e.sort(g)}_runLoadPendingInvitations(){return this.input.find("@keet-private-id/pending-invitations").toArray()}async _runLoadLocalPrivateProfileInfo(){const t=await this.loadLocalIdentityInfo();return this.closing||!t?null:this.output.get("@local/rooms",{roomKey:t.privateProfileKey})}_runLoadReadLengths(){return this.input.find("@keet/read-lengths").toArray()}_runLoadActiveCall(){return h(this.input,"@keet/active-calls-by-timestamp")}_runLoadActiveCallDevice(t,e){return this.input.get("@keet/call-devices",{callKey:t,deviceKey:e})}loadRoomUpdate(){return this._loadingRoomUpdate||(this._loadingRoomUpdate=this.output.get("@local/room-updates",{roomKey:this.engine.key}),this._loadingRoomUpdate.catch(e)),this._loadingRoomUpdate}loadLocalRoomInfo(){return this._loadingLocalRoomInfo||(this._loadingLocalRoomInfo=this.output.get("@local/rooms",{roomKey:this.engine.key}),this._loadingLocalRoomInfo.catch(e)),this._loadingLocalRoomInfo}loadLocalPrivateProfileInfo(){return this._loadingLocalPrivateProfileInfo||(this._loadingLocalPrivateProfileInfo=this._runLoadLocalPrivateProfileInfo(),this._loadingLocalPrivateProfileInfo.catch(e)),this._loadingLocalPrivateProfileInfo}loadLocalIdentityInfo(){return this._loadingLocalIdentityInfo||(this._loadingLocalIdentityInfo=this.output.get("@local/identity"),this._loadingLocalIdentityInfo.catch(e)),this._loadingLocalIdentityInfo}loadDigest(){return this._loadingDigest||(this._loadingDigest=this.input.get("@keet/system-digest"),this._loadingDigest.catch(e)),this._loadingDigest}loadConfig(){return this._loadingConfig||(this._loadingConfig=this._runLoadConfig(),this._loadingConfig.catch(e)),this._loadingConfig}loadCapabilities(){return this._loadingCapabilities||(this._loadingCapabilities=this.input.get("@keet/room-capabilities"),this._loadingCapabilities.catch(e)),this._loadingCapabilities}loadPrimaryThread(){return this._loadingPrimaryThread||(this._loadingPrimaryThread=this.input.get("@keet/threads",{id:0}),this._loadingPrimaryThread.catch(e)),this._loadingPrimaryThread}loadSelfDevice(){return this._loadingSelfDevice||(this._loadingSelfDevice=this.input.get("@keet/devices",{key:this.engine.local.key}),this._loadingSelfDevice.catch(e)),this._loadingSelfDevice}loadWriterInfo(){return this._loadingWriterInfo||(this._loadingWriterInfo=this.system.get(this.engine.local.key),this._loadingWriterInfo.catch(e)),this._loadingWriterInfo}loadSelfMember(){return this._loadingSelfMember||(this._loadingSelfMember=this._runLoadSelfMember(),this._loadingSelfMember.catch(e)),this._loadingSelfMember}loadLastMessage(){return this._loadingLastMessage||(this._loadingLastMessage=this._runLoadLastMessage(),this._loadingLastMessage.catch(e)),this._loadingLastMessage}loadDMMembers(){return this._loadingDMMembers||(this._loadingDMMembers=this._runLoadDMMembers(),this._loadingDMMembers.catch(e)),this._loadingDMMembers}loadIdentity(){return this._loadingIdentity||(this._loadingIdentity=this.input.get("@keet-private-id/identity"),this._loadingIdentity.catch(e)),this._loadingIdentity}loadSettings(){return this._loadSettings||(this._loadSettings=this.input.get("@keet-private-id/settings"),this._loadSettings.catch(e)),this._loadSettings}loadChatChanges(){return this._loadingChatChanges||(this._loadingChatChanges=this._runLoadChatChanges(),this._loadingChatChanges.catch(e)),this._loadingChatChanges}loadContactChanges(t){return this._loadingContactChanges||(this._loadingContactChanges=this._runLoadContactChanges(t),this._loadingContactChanges.catch(e)),this._loadingContactChanges}loadSharedRoomChanges(t){return this._loadingSharedRoomChanges||(this._loadingSharedRoomChanges=this._runLoadSharedRoomChanges(t),this._loadingSharedRoomChanges.catch(e)),this._loadingSharedRoomChanges}loadPendingInvitations(){return this._loadingPendingInvitations||(this._loadingPendingInvitations=this._runLoadPendingInvitations(),this._loadingPendingInvitations.catch(e)),this._loadingPendingInvitations}loadLatestMessages(){return this._loadingLatestMessages||(this._loadingLatestMessages=this._runLoadLatestMessages(),this._loadingLatestMessages.catch(e)),this._loadingLatestMessages}loadLatestRooms(){return this._loadingLatestRooms||(this._loadingLatestRooms=this._runLoadLatestRooms(),this._loadingLatestRooms.catch(e)),this._loadingLatestRooms}loadLatestMessageDetails(){return this._loadingLatestMessageDetails||(this._loadingLatestMessageDetails=this._runLoadLatestMessageDetails(),this._loadingLatestMessageDetails.catch(e)),this._loadingLatestMessageDetails}loadLatestMembers(){return this._loadingLatestMembers||(this._loadingLatestMembers=this._runLoadLatestMembers(),this._loadingLatestMembers.catch(e)),this._loadingLatestMembers}loadReadLengths(){return this._loadingReadLengths||(this._loadingReadLengths=this._runLoadReadLengths(),this._loadingReadLengths.catch(e)),this._loadingReadLengths}loadActiveCall(){return this._loadingActiveCall||(this._loadingActiveCall=this._runLoadActiveCall(),this._loadingActiveCall.catch(e)),this._loadingActiveCall}loadActiveCallDevice(t,i){return this._loadingActiveCallDevice||(this._loadingActiveCallDevice=this._runLoadActiveCallDevice(t,i),this._loadingActiveCallDevice.catch(e)),this._loadingActiveCallDevice}loadPreferences(){return this._loadingPreferences||(this._loadingPreferences=this.local.get("@local/room-preferences",{roomKey:this.engine.key}),this._loadingPreferences.catch(e)),this._loadingPreferences}async loadLabels(t){const e=await this.loadSelfMember(),{labels:i}=await this._loadMessageAnnotations(t,e);return i}async loadMessage(t){const e=await this.loadSelfMember(),[i,s]=await Promise.all([this.input.get("@keet/chat",{id:t}),this._loadMessageAnnotations(t,e)]);if(!i)return null;const o=await this._loadMessageRefs(i);if(!o.member)throw a.CORRUPT("Last chat message does not have a member");return{message:i,...s,...o}}};
@holepunchto/keet-core/lib/core/sync/processor.js +1 -0
……@@ -0,0 +1 @@
1const e=require("ready-resource"),t=require("hypercore-id-encoding"),s=require("scope-lock"),i=require("safety-catch"),n=require("./index");module.exports=class extends e{constructor(e){super(),this.keet=e,this._draining=new s({debounce:!0}),this._locks=new Map,this._queued=new Map,this._settling=new Set}async _close(){for(this._draining.destroy(),await this._draining.flush(),this._queued.clear();this._settling.size>0;)await Promise.allSettled(this._settling)}bump(){this._drain().catch(i)}enqueue(e){this._queued.set(t.encode(e),e),this.bump()}async flush(){for(this.bump(),await this._draining.flush();this._settling.size>0;)await Promise.allSettled(this._settling)}async process(e){if(this.closing||this.keet.closing)return!1;const t=this._lock(e.id);if(!await t.lock())return!1;let s=null;try{if(await this._processed(e))return!1;if(s=new n(this.keet,e.view,e.engine),!await s.run())return!1}finally{this._unlock(e.id)}return this._settle(s),!0}_settle(e){const t=e.postUpdate();e.loggingOut||(this._settling.add(t),t.then(()=>this._settling.delete(t)))}async _processed(e){const[t,s]=await Promise.all([this.keet.local.get("@local/room-updates",{roomKey:e.key}),this.keet.local.get("@local/rooms",{roomKey:e.key})]);return!t&&!!s?.processed}async _drain(){if(await this._draining.lock())try{for(;!this.closing&&!this.keet.closing;){const e=this._takeQueued();for(const t of await this._pending(e))e.push(t);if(0===e.length)return;if(!(await Promise.allSettled(e.map(e=>this._processKey(e)))).some(e=>e.value))return}}catch(e){this.keet.onerror(e)}finally{this._draining.unlock()}}async _pending(e){const s=new Set(e.map(e=>t.encode(e))),i=[];for await(const{roomKey:e}of this.keet.local.find("@local/unprocessed-rooms",{reverse:!0}))s.has(t.encode(e))||i.push(e);return i}_takeQueued(){const e=[];for(const t of this._queued.values())e.push(t);return this._queued.clear(),e}async _processKey(e){let t=null;try{return t=this.keet.internalOpenExistingRoom(e),await t.ready(),await this.process(t),await this._processed(t)}catch(t){return this.keet.onerror(t,{roomKey:e}),!1}finally{t&&this.keet.internalReleaseRoom(t)}}_lock(e){let t=this._locks.get(e);return t||(t=new s,this._locks.set(e,t)),t}_unlock(e){const t=this._locks.get(e);t.unlock(),t.locked||0!==t.waiting.length||this._locks.delete(e)}};
@holepunchto/keet-core/lib/core/sync/rooms.js +1 -0
……@@ -0,0 +1 @@
1const{roomsStats:t}=require("../contract/stats/local");module.exports=async function(o,a){const s=await o.get("@local/room-preferences",a);a.preferences=s?s.status:null;const e=await o.get("@local/rooms",a);await o.insert("@local/rooms",a),await t(o,a,e)};
@holepunchto/keet-core/lib/core/sync/updater.js +1 -1
……@@ -1 +1 @@
1const e=require("ready-resource"),t=require("safety-catch"),s=require("b4a"),i=require("./loader"),{KeetContract:a}=require("../contract"),{contract:{hyperschema:{getEnum:o}}}=require("../../../schema/spec"),{verifyIdentityProofs:n,generateRoomCapabilities:r,generateIdentityPairingName:l}=require("../invitations"),{RoomStatus:h}=require("../contract/identity/private"),{KeetErrorV2:c}=require("../../errors"),d=o("@keet/room-type");module.exports=class extends e{constructor(e,t,s,i){super(),this.keet=e,this.swarm=e.swarm,this.local=e.local,this.view=t,this.base=s,this.changes=i,this.isCurrentPrivateProfile=!1,this.currentPrivateProfileInfo=null,this.currentIdentityInfo=null,this.currentWriterInfo=null,this.currentRoomInfo=null,this.roomInfo=null,this.updated=!1,this.updates={cache:null,tasks:null,contacts:null,dispatches:null,shouldUpgrade:!1,profileDispatches:null,unreadKeys:!1,activeCall:null,activeCallDevice:null,activeCallSynced:!1,sharedRooms:null,sharedPreferences:null,pendingInvitations:null,startIdentitySwap:null,attemptIdentitySwap:null,finishIdentitySwap:null,logout:!1,settings:null},this.events=[],this._loader=null,this._running=null}_open(){return this._loader=new i(this.local,this.view,this.base),this._loader.ready()}async _close(){this._loader&&await this._loader.close()}async _syncDigest(e){if(e||(e=await this._loader.loadDigest()),e){if(!this.keet.isValidBuildType(e))throw c.INVALID_BUILD_TYPE();this.events.push({type:"v2:room-digest-changed",value:e}),this.roomInfo.digest=e}}async _syncConfig(){const e=await this._loader.loadConfig();e&&(this.events.push({type:"v2:room-config-changed",value:e}),this.roomInfo.config=e)}async _syncRoomCapabilities(e){e||(e=await this._loader.loadCapabilities()),e&&(this.roomInfo.seed&&s.equals(this.roomInfo.seed,e.seed)||(this.events.push({type:"v2:room-capabilities-changed",value:e}),this.roomInfo.seed=e.seed,this.roomInfo.capabilities=r(this.base.key,e.seed)))}async _syncSelf(){const[e,t,s]=await Promise.all([this._loader.loadDigest(),this._loader.loadSelfDevice(),this._loader.loadSelfMember()]);if(this.roomInfo.selfDevice=t,this.roomInfo.selfMember=s,!e||e.settings.roomType!==d.DirectMessage)return;const[i,a]=await Promise.all([this._loader.loadConfig(),this._loader.loadDMMembers()]);this.roomInfo.config=i,this.roomInfo.dm=a}async _syncSelfMember(e){if(this.events.push({type:"v2:room-member-changed",value:e}),!e||s.equals(e.key,this.currentIdentityInfo.publicKey))return this._syncSelf()}async _syncDevice(e){if(this.events.push({type:"v2:room-device-changed",value:e}),!e||s.equals(e.key,this.base.local.key))return this._syncSelf()}_setLastMessage(e){this.events.push({type:"v2:room-last-message-changed",value:e}),this.roomInfo.lastMessage=e.message,this.roomInfo.lastMember=e.member,this.roomInfo.lastMessageReactions=e.reactions,this.roomInfo.lastMessageLabels=e.labels,this.updates.cache={member:e.member,otherMembers:e.otherMembers,device:e.device};const t=this.currentRoomInfo?.lastMessage;var i,a;t&&(i=t,a=e.message,s.equals(i.oplog.key,a.oplog.key)&&i.oplog.seq===a.oplog.seq)||(this.updates.chat=e.message)}async _syncLastMessage(){const e=await this._loader.loadLastMessage();e&&this._setLastMessage(e)}async _syncMessage(e){if(!e)return;const[t,s]=await Promise.all([this._loader.loadPrimaryThread(),this._loader.loadMessage(e.id)]);0===e.id.thread&&e.id.index===t.count-1&&this._setLastMessage(s),this.events.push({type:"v2:room-chat-changed",value:s})}async _syncReactions(e){const t=await this._loader.input.get("@keet/chat",{id:e.id});this.events.push({type:"v2:room-reactions-changed",value:{id:t.oplog,reactions:e}})}async _syncChatLabels(e){const t=await this._loader.loadPrimaryThread();if(0!==e.id.thread||e.id.index!==t.count-1)return;const s=await this._loader.loadLabels(e.id);this.roomInfo.lastMessageLabels=s,this.updates.labels=s}_syncJoinRequests(e){this.events.push({type:"v2:room-join-requests-changed",value:e})}async _syncReadLengths(){const e=await this._loader.loadReadLengths();e?.length&&(this.events.push({type:"v2:read-lengths-changed",value:e}),this.roomInfo.readLengths=e)}async _syncActiveCall(){this.updates.activeCallSynced=!0,this.roomInfo.activeCall=null;const e=await this._loader.loadActiveCall();if(e){const t=e.callKey,s=this.base.local.key,i=await this._loader.loadActiveCallDevice(t,s),a=i?i.deviceKey:null;this.updates.activeCallDevice=i,this.roomInfo.activeCall={callKey:t,selfDeviceKey:a}}this.updates.activeCall=e}async _syncPreferences(){const e=await this._loader.loadPreferences();e&&(this.roomInfo.preferences=e.status)}async _syncStats(e){e||(e=await this._loader.loadPrimaryThread()),e&&(this.events.push({type:"v2:room-stats-changed",value:e}),this.roomInfo.stats=e.stats)}async _syncRoomIdentity(e){e||(e=await this._loader.loadIdentity()),e&&(this.events.push({type:"v2:room-identity-changed",value:e}),this.roomInfo.identity=e)}async _syncRoomSettings(e){e||(e=await this._loader.loadSettings()),e&&(this.roomInfo.settings=e)}async _syncUnreadAnchors(){this.updates.unreadKeys=!0}async _syncMember(e){const i=[this._syncSelfMember(e)];this.roomInfo.dm?.length&&i.push(this._syncConfig().catch(t));const{lastMember:a}=this.roomInfo;a&&s.equals(a.key,e.key)&&i.push(this._syncLastMessage().catch(t)),await Promise.all(i)}async _incrementalRoomInfoLoad(e,s){const i=[],a=["@keet/calls","@keet/call-devices","@keet/call-members"];for await(const{type:o,collection:n,value:r}of this._loader.input.changes({gte:e,lt:s})){if(!a.includes(n)&&"insert"!==o)continue;let e=null;switch(n){case"@keet/system-digest":e=this._syncDigest(r);break;case"@keet/room-config":e=this._syncConfig();break;case"@keet/room-capabilities":e=this._syncRoomCapabilities(r);break;case"@keet/members":e=this._syncMember(r);break;case"@keet/devices":e=this._syncDevice(r);break;case"@keet/chat":e=this._syncMessage(r);break;case"@keet/reaction-digests":e=this._syncReactions(r);break;case"@keet/chat-label-digests":e=this._syncChatLabels(r);break;case"@keet/threads":e=this._syncStats(r);break;case"@keet-private-id/identity":e=this._syncRoomIdentity(r);break;case"@keet-private-id/settings":e=this._syncRoomSettings(r);break;case"@keet/join-requests":e=this._syncJoinRequests(r);break;case"@keet-private-id/unreads-v2":case"@keet-private-id/unreads":e=this._syncUnreadAnchors();break;case"@keet/read-lengths":e=this._syncReadLengths();break;case"@keet/calls":case"@keet/call-devices":case"@keet/call-members":e=this._syncActiveCall();break;default:continue}e&&(e.catch(t),i.push(e))}return await Promise.all(i),!!this.roomInfo.digest}async _fullRoomInfoLoad(){return this.events.push({type:"v2:room-fast-forward"}),this.roomInfo={roomKey:this.base.key,discoveryKey:this.base.discoveryKey,encryptionKey:this.base.encryptionKey,digest:null,stats:null,fork:0,length:0,timestamps:{creation:0,latestActivity:0,latestChatMessage:0},status:null,mailbox:null,selfDevice:null,selfMember:null,config:null,capabilities:null,identity:null,lastMessage:null,lastMember:null,lastMessageReactions:null,lastMessageLabels:null,dm:null,activeCall:null,preferences:null,settings:null},await Promise.all([this._syncDigest(null),this._syncRoomCapabilities(null),this._syncDevice(null),this._syncMember(null),this._syncStats(null),this._syncRoomIdentity(null),this._syncUnreadAnchors(),this._syncConfig(),this._syncReadLengths(),this._syncLastMessage(),this._syncActiveCall(),this._syncPreferences(),this._syncRoomSettings()]),!!this.roomInfo.digest}async _loadPrivateProfileChanges(){if(!0===this.keet.debugDisableSynching)return;let e=null;if(this.isCurrentPrivateProfile&&this.roomInfo.selfDevice){const t=this.changes.get(a.DB_VIEW_NAME);this._loader.shared=this.currentRoomInfo?.selfDevice?t.shared:1,e=await Promise.all([this._loader.loadContactChanges(),this._loader.loadSharedRoomChanges(),this._loader.loadPendingInvitations()])}e&&(this.updates.contacts=e[0],this.updates.sharedRooms=e[1],this.updates.pendingInvitations=e[2])}async _loadLocalInfo(){const[e,t,i]=await Promise.all([this._loader.loadLocalRoomInfo(),this._loader.loadLocalIdentityInfo(),this._loader.loadLocalPrivateProfileInfo()]);this.currentRoomInfo=e,this.roomInfo={...this.currentRoomInfo},this.currentIdentityInfo=t,this.currentPrivateProfileInfo=i,this.isCurrentPrivateProfile=!!t&&s.equals(t.privateProfileKey,this.base.key);const a=this.currentIdentityInfo?.swapV2;return!a||!s.equals(a.privateProfileKey,this.base.key)||(this.updates.attemptIdentitySwap=a,!0)}async _load(){let[e,t]=await Promise.all([this._loadLocalInfo(),this.base.system.get(this.base.local.key)]);if(this.closing||!e)return!1;if(this.updates.attemptIdentitySwap){const e=this.updates.attemptIdentitySwap,t=e.writerKey,[i,a,o]=await Promise.all([this._loader.input.get("@keet-private-id/device-identities",{deviceKey:t}),this._loader.input.get("@keet/devices",{key:t}),this.local.get("@local/rooms",{roomKey:this.base.key})]);if(!i||!a||!n(e,i))return!1;const r=i.deviceProof,h=l(e.publicKey),c=await this.keet.store.createKeyPair(h);if(!s.equals(c.publicKey,e.devicePublicKey))return!1;this.isCurrentPrivateProfile=!0,this.currentPrivateProfileInfo=o,this.currentIdentityInfo=this.currentIdentityInfo.swapV2,this.updates.finishIdentitySwap={publicKey:this.updates.attemptIdentitySwap.publicKey,privateProfileKey:this.base.key,deviceKeyPair:c,deviceProof:r,status:{isConfirmed:!0}}}this.currentWriterInfo=t;let i=null;if(this.changes&&this.currentRoomInfo){const e=this.changes.get("_system");if(e.to-e.shared<16){const e=this.changes.get("keet/v3/db");i={from:e.shared,to:e.to}}}if(e=!1,e=i?await this._incrementalRoomInfoLoad(i.from,i.to):await this._fullRoomInfoLoad(),!e)return!1;this.events.push({type:"v2:room-changed"}),this.roomInfo.length=this._loader.core.length,this.roomInfo.fork=this._loader.core.fork,this.isCurrentPrivateProfile&&await this._loadPrivateProfileChanges();const a=!!this.roomInfo.selfMember?.status.isRemoved,o=!!this.roomInfo.selfMember?.status.isActive,r=!!this.roomInfo.selfDevice?.status.isActive,h=a||!r&&!!this.currentWriterInfo,c=this.base.writable&&r&&o,d=!!this.roomInfo.identity;return this.roomInfo.status={isWritable:c,isReadable:!0,isPrivateProfile:d,isRemoved:h},this.roomInfo.timestamps.latestSync=Date.now(),this.roomInfo.timestamps.creation=this.roomInfo.digest.creationTime,this.roomInfo.lastMessage&&(this.roomInfo.timestamps.latestChatMessage=this.roomInfo.lastMessage.timestamp),!0}_shouldUpgrade(){return this.roomInfo.selfMember.status.isModerator&&!(this.roomInfo.digest.abi.version>=this.keet.abi.autoupgrade)||null}_generateMemberUpdate(){const e=this.currentPrivateProfileInfo.selfMember,t=this.roomInfo.selfMember,s=t.profile.timestamp>0,i=e.profile.timestamp<=t.profile.timestamp;if(!e?.profile||s&&i)return null;const a={identity:this.currentIdentityInfo,privateProfile:this.currentPrivateProfileInfo};return{type:"@keet/update-member",op:{member:this.keet.internalGetMemberUpdate(a)}}}_generatePrivateProfileDispatches(){this.updates.profileDispatches=[],this.updates.profileDispatches.push({type:"@keet-private-id/update-room-status",op:{roomKey:this.roomInfo.roomKey,key:h.IsActive,status:{isActive:!1}}})}_generateDispatches(){if(this.updates.dispatches=[],this.updates.shouldUpgrade=this._shouldUpgrade(),!this.currentPrivateProfileInfo?.selfMember)return;const e=this._generateMemberUpdate();e&&this.updates.dispatches.push(e)}_generateTasks(){if(this.updates.sharedRooms){this.updates.tasks=[],this.updates.sharedPreferences=[];for(const e of this.updates.sharedRooms){const t=e.mailbox;if(e.identitySwapV2){this.updates.startIdentitySwap={...e.identitySwapV2,privateProfileKey:e.roomKey},this.updates.tasks=[this.keet.tasks.joinRoomKeys(t,{keys:e})];break}e.status.isActive?this.updates.tasks.push(this.keet.tasks.joinRoomKeys(t,{keys:e})):this.updates.tasks.push(this.keet.tasks.leaveRoom(t,{roomKey:e.roomKey})),this.updates.sharedPreferences.push({roomKey:e.roomKey,status:e.status})}if(!this.updates.startIdentitySwap&&this.updates.pendingInvitations)for(const e of this.updates.pendingInvitations)this.updates.tasks.push(this.keet.tasks.joinRoomInvitation(e.mailbox,{invitation:e}))}}async _maybeUpdateOpenRooms(e){try{const t=this.currentRoomInfo?.selfMember?.profile.timestamp||0;if(!this.roomInfo?.selfMember||t>=this.roomInfo.selfMember.profile.timestamp)return;const i={profile:this.roomInfo.selfMember.profile,attestation:{memberKey:this.roomInfo.selfMember.key,proof:this.roomInfo.selfMember.proofs.profileAttestation}},a=[];for(const t of this.keet.rooms.values())s.equals(t.key,e)||a.push(t.dispatch("@keet/update-member",{member:i}));await Promise.allSettled(a)}catch(e){this.keet.onerror(e)}}async _run(){if(this.opened||await this.ready(),!await this._load()||this.closing)return!1;this.roomInfo.status.isWritable&&this._generateDispatches(),this.isCurrentPrivateProfile&&(this.roomInfo.selfDevice?.status.isActive?(this._generateTasks(),this._maybeUpdateOpenRooms(this.base.key)):this.changes.logout=!0);const e=this.roomInfo.selfMember,t=this.currentRoomInfo?.selfMember;return e?.status.isRemoved&&!t?.status.isRemoved&&this._generatePrivateProfileDispatches(),!0}run(){return this._running||(this._running=this._run(),this._running.catch(t)),this._running}};
1const e=require("ready-resource"),t=require("safety-catch"),s=require("b4a"),i=require("autobee"),a=require("./loader"),{contract:{hyperschema:{getEnum:o}}}=require("../../../schema/spec"),{verifyIdentityProofs:n,generateRoomCapabilities:r,generateIdentityPairingName:l}=require("../invitations"),{RoomStatus:h}=require("../contract/identity/private"),{KeetErrorV2:c}=require("../../errors"),d=o("@keet/room-type");module.exports=class extends e{constructor(e,t,s){super(),this.keet=e,this.swarm=e.swarm,this.local=e.local,this.view=t,this.engine=s,this.isCurrentPrivateProfile=!1,this.currentPrivateProfileInfo=null,this.currentIdentityInfo=null,this.currentWriterInfo=null,this.currentRoomInfo=null,this.currentUpdate=null,this.roomInfo=null,this.migratedFromAutobase=!1,this.updated=!1,this.processed=null,this.updates={cache:null,tasks:null,contacts:null,dispatches:null,shouldUpgrade:!1,profileDispatches:null,unreadKeys:!1,activeCall:null,activeCallDevice:null,activeCallSynced:!1,sharedRooms:null,sharedPreferences:null,pendingInvitations:null,startIdentitySwap:null,attemptIdentitySwap:null,attemptRecovery:null,finishIdentitySwap:null,logout:!1,settings:null},this.events=[],this._loader=null,this._running=null}_open(){return this._loader=new a(this.local,this.view,this.engine),this._loader.ready()}async _close(){this._running&&await this._running.catch(t),this._loader&&await this._loader.close()}async _syncDigest(e){if(e||(e=await this._loader.loadDigest()),e){if(!this.keet.isValidBuildType(e))throw c.INVALID_BUILD_TYPE();this.events.push({type:"v2:room-digest-changed",value:e}),this.roomInfo.digest=e}}async _syncConfig(){const e=await this._loader.loadConfig();e&&(this.events.push({type:"v2:room-config-changed",value:e}),this.roomInfo.config=e)}async _syncRoomCapabilities(e){e||(e=await this._loader.loadCapabilities()),e&&(this.roomInfo.seed&&s.equals(this.roomInfo.seed,e.seed)||(this.events.push({type:"v2:room-capabilities-changed",value:e}),this.roomInfo.seed=e.seed,this.roomInfo.capabilities=r(this.engine.key,e.seed)))}async _syncSelf(){const[e,t,s]=await Promise.all([this._loader.loadDigest(),this._loader.loadSelfDevice(),this._loader.loadSelfMember()]);if(this.roomInfo.selfDevice=t,this.roomInfo.selfMember=s,!e||e.settings.roomType!==d.DirectMessage)return;const[i,a]=await Promise.all([this._loader.loadConfig(),this._loader.loadDMMembers()]);this.roomInfo.config=i,this.roomInfo.dm=a}async _syncSelfMember(e){if(this.events.push({type:"v2:room-member-changed",value:e}),!e||s.equals(e.key,this.currentIdentityInfo.publicKey))return this._syncSelf()}async _syncDevice(e){if(this.events.push({type:"v2:room-device-changed",value:e}),!e||s.equals(e.key,this.engine.local.key))return this._syncSelf()}_setLastMessage(e){this.events.push({type:"v2:room-last-message-changed",value:e}),this.roomInfo.lastMessage=e.message,this.roomInfo.lastMember=e.member,this.roomInfo.lastMessageReactions=e.reactions,this.roomInfo.lastMessageLabels=e.labels,this.updates.cache={member:e.member,otherMembers:e.otherMembers,device:e.device};const t=this.currentRoomInfo?.lastMessageLabels;var i,a;i=t,a=e.labels,(i&&a?i.mine.length===a.mine.length&&i.digest.total===a.digest.total&&i.digest.editedAt===a.digest.editedAt:!i&&!a)||(this.updates.labels=e.labels);const o=this.currentRoomInfo?.lastMessage;var n,r;o&&(n=o,r=e.message,s.equals(n.oplog.key,r.oplog.key)&&n.oplog.seq===r.oplog.seq)||(this.updates.chat=e.message)}async _syncLastMessage(){const e=await this._loader.loadLastMessage();e&&this._setLastMessage(e)}async _syncMessage(e){if(!e)return;const[t,s]=await Promise.all([this._loader.loadPrimaryThread(),this._loader.loadMessage(e.id)]);0===e.id.thread&&e.id.index===t.count-1&&this._setLastMessage(s),this.events.push({type:"v2:room-chat-changed",value:s})}async _syncReactions(e){const t=await this._loader.input.get("@keet/chat",{id:e.id});this.events.push({type:"v2:room-reactions-changed",value:{id:t.oplog,reactions:e}})}async _syncChatLabels(e){const t=await this._loader.loadPrimaryThread();if(0!==e.id.thread||e.id.index!==t.count-1)return;const s=await this._loader.loadLabels(e.id);this.roomInfo.lastMessageLabels=s,this.updates.labels=s}_syncJoinRequests(e){this.events.push({type:"v2:room-join-requests-changed",value:e})}async _syncReadLengths(){const e=await this._loader.loadReadLengths();e?.length&&(this.events.push({type:"v2:read-lengths-changed",value:e}),this.roomInfo.readLengths=e)}async _syncActiveCall(){this.updates.activeCallSynced=!0;const e=await this._loader.loadActiveCall();let t=null;e&&(t=await this._loader.loadActiveCallDevice(e.callKey,this.engine.local.key),this.updates.activeCallDevice=t),this.updates.activeCall=e;let s=null;e&&(s={callKey:e.callKey,createdAt:e.createdAt,selfDeviceKey:null},t&&(s.selfDeviceKey=t.deviceKey)),this.roomInfo.activeCall=s}async _syncPreferences(){const e=await this._loader.loadPreferences();e&&(this.roomInfo.preferences=e.status)}async _syncStats(e){e||(e=await this._loader.loadPrimaryThread()),e&&(this.events.push({type:"v2:room-stats-changed",value:e}),this.roomInfo.stats=e.stats)}async _syncRoomIdentity(e){e||(e=await this._loader.loadIdentity()),e&&(this.events.push({type:"v2:room-identity-changed",value:e}),this.roomInfo.identity=e)}async _syncRoomSettings(e){e||(e=await this._loader.loadSettings()),e&&(this.roomInfo.settings=e)}async _syncUnreadAnchors(){this.updates.unreadKeys=!0}async _syncMember(e){const i=[this._syncSelfMember(e)];this.roomInfo.dm?.length&&i.push(this._syncConfig().catch(t));const{lastMember:a}=this.roomInfo;a&&s.equals(a.key,e.key)&&i.push(this._syncLastMessage().catch(t)),await Promise.all(i)}async _incrementalRoomInfoLoad(e){const s=[],i=["@keet/calls","@keet/call-devices","@keet/call-members","@keet/call-streams"];for await(const{type:a,collection:o,value:n}of this._loader.input.changes({from:e})){if(this.closing||this.keet.closing)return!1;if(!i.includes(o)&&"insert"!==a)continue;let e=null;switch(o){case"@keet/system-digest":e=this._syncDigest(n);break;case"@keet/room-config":e=this._syncConfig();break;case"@keet/room-capabilities":e=this._syncRoomCapabilities(n);break;case"@keet/members":e=this._syncMember(n);break;case"@keet/devices":e=this._syncDevice(n);break;case"@keet/chat":e=this._syncMessage(n);break;case"@keet/reaction-digests":e=this._syncReactions(n);break;case"@keet/chat-label-digests":e=this._syncChatLabels(n);break;case"@keet/threads":e=this._syncStats(n);break;case"@keet-private-id/identity":e=this._syncRoomIdentity(n);break;case"@keet-private-id/settings":e=this._syncRoomSettings(n);break;case"@keet/join-requests":e=this._syncJoinRequests(n);break;case"@keet-private-id/unreads-v2":case"@keet-private-id/unreads":e=this._syncUnreadAnchors();break;case"@keet/read-lengths":e=this._syncReadLengths();break;case"@keet/calls":case"@keet/call-devices":case"@keet/call-members":case"@keet/call-streams":e=this._syncActiveCall();break;default:continue}e&&(e.catch(t),s.push(e))}return await Promise.all(s),!!this.roomInfo.digest}async _fullRoomInfoLoad(){return this.events.push({type:"v2:room-fast-forward"}),this.roomInfo={roomKey:this.engine.key,discoveryKey:this.engine.discoveryKey,encryptionKey:this.engine.encryptionKey,digest:null,stats:null,fork:0,length:0,system:null,timestamps:{creation:0,latestActivity:0,latestChatMessage:0},status:null,mailbox:null,selfDevice:null,selfMember:null,config:null,capabilities:null,identity:null,lastMessage:null,lastMember:null,lastMessageReactions:null,lastMessageLabels:null,dm:null,activeCall:null,preferences:null,settings:null},await Promise.all([this._syncDigest(null),this._syncRoomCapabilities(null),this._syncDevice(null),this._syncMember(null),this._syncStats(null),this._syncRoomIdentity(null),this._syncUnreadAnchors(),this._syncConfig(),this._syncReadLengths(),this._syncLastMessage(),this._syncActiveCall(),this._syncPreferences(),this._syncRoomSettings()]),!!this.roomInfo.digest}async _loadPrivateProfileChanges(e){if(!0===this.keet.debugDisableSynching)return;let t=null;if(this.isCurrentPrivateProfile&&this.roomInfo.selfDevice){const[s,i,a,o]=await Promise.all([this._loader.loadContactChanges(e),this._loader.loadSharedRoomChanges(e),this._loader.loadPendingInvitations(),this.keet.getAutobeeMigrationInfo(this.engine.key)]);t=[s,i,a],this.migratedFromAutobase=!!o}t&&(this.updates.contacts=t[0],this.updates.sharedRooms=t[1],this.updates.pendingInvitations=t[2])}async _loadLocalInfo(){const[e,t,i,a]=await Promise.all([this._loader.loadLocalRoomInfo(),this._loader.loadRoomUpdate(),this._loader.loadLocalIdentityInfo(),this._loader.loadLocalPrivateProfileInfo()]);this.currentRoomInfo=e,this.currentUpdate=t,this.roomInfo={...this.currentRoomInfo},this.currentIdentityInfo=i,this.currentPrivateProfileInfo=a,this.isCurrentPrivateProfile=!!i&&s.equals(i.privateProfileKey,this.engine.key);const o=await this.local.get("@local/pending-recovery");if(o?.identity&&o.privateProfileKey&&s.equals(o.privateProfileKey,this.engine.key))return this.isCurrentPrivateProfile=!0,this.currentIdentityInfo=o.identity,this.currentPrivateProfileInfo=e,this.updates.attemptRecovery=o.identity,!0;const n=this.currentIdentityInfo?.swapV2;return!n||!s.equals(n.privateProfileKey,this.engine.key)||(this.updates.attemptIdentitySwap=n,!0)}async _load(){let[e,t]=await Promise.all([this._loadLocalInfo(),this._loader.loadWriterInfo()]);if(this.closing||!e)return!1;if(this.updates.attemptRecovery){const e=await this._loader.loadSelfDevice();e?.status.isActive&&(this.updates.finishIdentitySwap=this.updates.attemptRecovery)}if(this.updates.attemptIdentitySwap){const e=this.updates.attemptIdentitySwap,t=e.writerKey,[i,a,o]=await Promise.all([this._loader.input.get("@keet-private-id/device-identities",{deviceKey:t}),this._loader.input.get("@keet/devices",{key:t}),this.local.get("@local/rooms",{roomKey:this.engine.key})]);if(!i||!a||!n(e,i))return!1;const r=i.deviceProof,h=l(e.publicKey),c=await this.keet.store.createKeyPair(h);if(!s.equals(c.publicKey,e.devicePublicKey))return!1;this.isCurrentPrivateProfile=!0,this.currentPrivateProfileInfo=o,this.currentIdentityInfo=this.currentIdentityInfo.swapV2,this.updates.finishIdentitySwap={publicKey:this.updates.attemptIdentitySwap.publicKey,privateProfileKey:this.engine.key,deviceKeyPair:c,deviceProof:r,status:{isConfirmed:!0}}}this.currentWriterInfo=t;const a=this.currentRoomInfo?.processed||i.GENESIS;if(e=await this._fullRoomInfoLoad(),!e)return!1;this.events.push({type:"v2:room-changed"}),this.roomInfo.length=this._loader.core.length,this.roomInfo.fork=this._loader.core.fork,this.roomInfo.system=this._loader.systemHead,this.isCurrentPrivateProfile&&await this._loadPrivateProfileChanges(a);const o=!!this.roomInfo.selfMember?.status.isRemoved,r=!!this.roomInfo.selfMember?.status.isActive,h=!!this.roomInfo.selfDevice?.status.isActive,c=!!this.roomInfo.selfDevice&&!h,d=o||c&&!!this.currentWriterInfo,u=this.engine.writable&&h&&r,m=!!this.roomInfo.identity;return this.roomInfo.status={isWritable:u,isReadable:!0,isPrivateProfile:m,isRemoved:d},this.roomInfo.timestamps.latestSync=Date.now(),this.roomInfo.timestamps.creation=this.roomInfo.digest.creationTime,this.roomInfo.lastMessage&&(this.roomInfo.timestamps.latestChatMessage=this.roomInfo.lastMessage.timestamp),!0}_shouldUpgrade(){return this.roomInfo.selfMember.status.isModerator&&!(this.roomInfo.digest.abi.version>=this.keet.abi.autoupgrade)||null}_generateMemberUpdate(){const e=this.currentPrivateProfileInfo.selfMember,t=this.roomInfo.selfMember,s=t.profile.timestamp>0,i=e.profile.timestamp<=t.profile.timestamp;if(!e?.profile||s&&i)return null;const a={identity:this.currentIdentityInfo,privateProfile:this.currentPrivateProfileInfo};return{type:"@keet/update-member",op:{member:this.keet.internalGetMemberUpdate(a)}}}_generatePrivateProfileDispatches(){this.updates.profileDispatches=[],this.updates.profileDispatches.push({type:"@keet-private-id/update-room-status",op:{roomKey:this.roomInfo.roomKey,key:h.IsActive,status:{isActive:!1}}})}_generateDispatches(){if(this.updates.dispatches=[],this.updates.shouldUpgrade=this._shouldUpgrade(),!this.currentPrivateProfileInfo?.selfMember)return;const e=this._generateMemberUpdate();e&&this.updates.dispatches.push(e)}_generateTasks(){if(!this.updates.sharedRooms)return;this.updates.tasks=[],this.updates.sharedPreferences=[];const e=this.migratedFromAutobase&&!this.currentRoomInfo?.processed&&!this.updates.attemptRecovery&&!this.updates.attemptIdentitySwap;for(const t of this.updates.sharedRooms){const s=t.mailbox;if(t.identitySwapV2){this.updates.startIdentitySwap={...t.identitySwapV2,privateProfileKey:t.roomKey},this.updates.tasks=[this.keet.tasks.joinRoomKeys(s,{keys:t})];break}e||(t.status.isActive?this.updates.tasks.push(this.keet.tasks.joinRoomKeys(s,{keys:t,activeClock:t.activeClock,isReadOnly:t.status.isReadOnly})):this.updates.tasks.push(this.keet.tasks.leaveRoom(s,{roomKey:t.roomKey})),this.updates.sharedPreferences.push({roomKey:t.roomKey,status:t.status}))}if(!this.updates.startIdentitySwap&&this.updates.pendingInvitations)for(const e of this.updates.pendingInvitations)this.updates.tasks.push(this.keet.tasks.joinRoomInvitation(e.mailbox,{invitation:e}))}async _updateOpenRoomMember(e,t){await e.db.get("@keet/members",{key:t.attestation.memberKey})&&await e.dispatch("@keet/update-member",{member:t})}async _maybeUpdateOpenRooms(e){try{const t=this.currentRoomInfo?.selfMember?.profile.timestamp||0;if(!this.roomInfo?.selfMember||t>=this.roomInfo.selfMember.profile.timestamp)return;const i={profile:this.roomInfo.selfMember.profile,attestation:{memberKey:this.roomInfo.selfMember.key,proof:this.roomInfo.selfMember.proofs.profileAttestation}},a=[];for(const t of this.keet.rooms.values())s.equals(t.key,e)||a.push(this._updateOpenRoomMember(t,i));await Promise.allSettled(a)}catch(e){this.keet.onerror(e)}}async _run(){if(this.closing||this.keet.closing)return Promise.resolve(!1);if(this.opened||await this.ready(),!await this._load()||this.closing)return!1;if(this.roomInfo.status.isWritable&&this._generateDispatches(),this.isCurrentPrivateProfile){const e=this.roomInfo.selfDevice;e&&!e.status.isActive?this.updates.logout=!0:(this._generateTasks(),this._maybeUpdateOpenRooms(this.engine.key))}const e=this.roomInfo.selfMember,t=this.currentRoomInfo?.selfMember;return e?.status.isRemoved&&!t?.status.isRemoved&&this._generatePrivateProfileDispatches(),this._fullyProcessed()&&(this.processed=this._loader.head),!0}_fullyProcessed(){return!this.roomInfo.identity||!!this.roomInfo.selfDevice&&(!this.isCurrentPrivateProfile||!!this.updates.sharedRooms&&!this.updates.startIdentitySwap)}run(){return this._running||(this._running=this._run(),this._running.catch(t)),this._running}};
@holepunchto/keet-core/lib/core/sync/warmup.js +1 -0
……@@ -0,0 +1 @@
1const e=require("b4a"),s=require("safety-catch"),t=require("./loader");module.exports=class{constructor(e,s,a){this.keet=e,this.view=s,this.engine=a,this.loader=new t(e.local,s,a,{latestMessagesLimit:16,latestRoomsLimit:3}),this.messages=0,this.members=0,this.rooms=0,this.last=null}async run(){try{await this._run()}catch(e){s(e)}}async _run(){try{if(this._failing())throw new Error("debug: room warmup failed");await this.loader.ready();const[e,s,t,a,i,o,l,r,d]=await Promise.all([this.loader.loadIdentity(),this.loader.loadLatestRooms(),this.loader.loadLatestMessages(),this.loader.loadLatestMembers(),this.loader.loadLatestMessageDetails(),this.loader.loadDigest(),this.loader.loadConfig(),this.loader.loadSelfMember(),this.loader.loadSelfDevice()]);this.messages=t.length,this.members=a.length,this.rooms=s.length,this.last={digest:o,config:l,selfMember:r,selfDevice:d,identity:e,messages:t,members:a,details:i,rooms:s}}finally{await this.loader.close()}}_failing(){const s=this.keet.debugFailRoomWarmup;return!!s&&e.equals(s,this.engine.key)}},module.exports.CHAT_MESSAGES_LIMIT=16,module.exports.ROOMS_LIMIT=3;
@holepunchto/keet-core/lib/core/tasks/contacts/request.js +1 -1
……@@ -1 +1 @@
1const e=require("hypercore-crypto"),t=require("signal-promise"),i=require("safety-catch"),{Task:o}=require("../task"),{restoreAvatar:s}=require("../../contract/avatars"),{contract:{hyperschema:{getEnum:r}}}=require("../../../../schema/spec"),{getWriterKey:a,createContactRequestOperation:n,generateRoomCapabilities:m,generatePairingCapabilities:h}=require("../../invitations"),{FEATURES:l}=require("../../../../schema/versions"),c=r("@keet/room-type");module.exports=class extends o{constructor(e){super(e);const t=this.description.sendContactRequest;this._roomKey=t.roomKey,this._memberKey=t.memberKey,this._message=t.message,this._contactInfo=t.contactInfo,this._member=null,this._contact=null,this._writerInfo=null,this._contactRoomInfo=null,this._privateContactRoom=null,this._selfMember=null,this._targetMember=null,this._roomMailbox=null,this._memberMailbox=null,this._memberMailboxDiscoveryKey=null,this._core=null,this._dmRoom=null,this._memberRoom=null,this._privateProfile=null,this._wakeupSession=null,this._watcher=null,this._privateProfileWatcher=null}async _close(){this._dmRoom&&(this._watcher&&this._dmRoom.db.unwatch(this._watcher),this.keet.internalReleaseRoom(this._dmRoom)),this._memberRoom&&this.keet.internalReleaseRoom(this._memberRoom),this._privateProfile&&(this._privateProfileWatcher&&this._privateProfile.db.unwatch(this._privateProfileWatcher),this.keet.internalReleaseRoom(this._privateProfile)),this._wakeupSession&&this._wakeupSession.destroy()}async _createRoom(){const t=e.keyPair(),i=e.randomBytes(32),o=a(t.publicKey),s=m(o,i),r={identity:this._identityInfo,privateProfile:this._privateProfileInfo},n=this.keet.internalCreateDeviceUpdate(r,o);return this._roomMailbox=s.mailboxKeyPair.publicKey,this._dmRoom=await this.keet.internalCreateRoom({settings:{roomType:c.DirectMessage},initialMembers:[this._selfMember,this._targetMember],bootstrapDevice:n,keyPair:t,seed:i}),this._message&&await this._dmRoom.dispatch("@keet/add-chat-message",{message:{text:this._message}}),!0}async _appendContactRequest(){if(!await this.keet.internalVerifyOptimisticCore(this._core)||this.closing)return;const e={message:this._message,sender:this._selfMember,mailbox:this._roomMailbox,keys:{key:this._dmRoom.key,encryptionKey:this._dmRoom.encryptionKey}},t=n(this._memberMailbox,this._identityInfo,e),i=await this.keet.internalFeatureSupported(this._privateProfile.id,l.CONTACT_BOOK),o={memberKey:this._memberKey,mailbox:this._memberMailbox,roomKey:this._dmRoom.key,status:{isBlocked:!1}};return i&&(o.status.isActive=!0,o.contactInfo={profile:this._targetMember.profile,attestation:this._targetMember.attestation}),await Promise.all([this._core.append(t),this._privateProfile.dispatch("@keet-private-id/add-contact",{contact:o})]),!0}async _loadRequestWriter(){if(this._writerInfo=await this.local.get("@local/writers",{mailbox:this._memberMailbox}),this._writerInfo)return;const t=e.keyPair(),i=a(t.publicKey);this._writerInfo={mailbox:this._memberMailbox,keyPair:t,key:i};const o=await this.keet.internalEnterLocalTransaction();try{await o.insert("@local/writers",this._writerInfo),await o.flush()}finally{await this.keet.internalExitLocalTransaction()}}_getQueryRange(){return{gte:{contact:this._targetMember.attestation.memberKey},lte:{contact:this._targetMember.attestation.memberKey}}}async _load(){if(this.keet.onlineBoot.opened||await this.keet.onlineBoot.ready(),this._identityInfo=await this.local.get("@local/identity"),this.closing)return!1;const e=this._identityInfo.privateProfileKey;if(this._privateProfileInfo=await this.local.get("@local/rooms",{roomKey:e}),this.closing)return!1;if(this._privateProfile=this.keet.internalOpenExistingRoom(e),await this._privateProfile.ready(),this.closing)return!1;let t=!1;return t=this._contactInfo?await this._useContactInfo():await this._useRoomKey(),!(!this._targetMember?.profile?.displayName||(await this._loadRequestWriter(),this.closing||(this._core=this.store.get({keyPair:this._writerInfo.keyPair}),await this._core.ready(),this.closing||(this._privateContactRoom=await this._privateProfile.db.findOne("@keet-private-id/rooms-by-contact",this._getQueryRange()),(!t||this._privateContactRoom)&&(await this._waitForMember(),1)))))}async _useContactInfo(){const e=await this._privateProfile.db.get("@keet-private-id/contacts",{memberKey:this._memberKey});if(this._contact=e,this._memberMailbox=this._contactInfo.profile.mailbox,this._member=null,this._memberProofs=null,this._memberPairingCapabilities=h(this._memberMailbox),this._targetMember={profile:this._contactInfo.profile,attestation:this._contactInfo.attestation},e?.roomKey&&(this._contactRoomInfo=await this._privateProfile.db.get("@keet-private-id/rooms",{roomKey:this._contact.roomKey})),this.closing||this._contactRoomInfo?.status.isActive)return!1;const t=this._privateProfileInfo.selfMember;return this._selfMember={profile:t.profile,attestation:{memberKey:t.key,proof:t.proofs.profileAttestation}},!0}async _useRoomKey(){if(this._memberRoom=this.keet.internalOpenExistingRoom(this._roomKey),await this._memberRoom.ready(),this.closing)return!1;const[e,t,i]=await Promise.all([this._privateProfile.db.get("@keet-private-id/contacts",{memberKey:this._memberKey}),this._memberRoom.db.get("@keet/members",{key:this._memberKey}),this._memberRoom.db.get("@keet/member-proofs",{key:this._memberKey})]);if(this._contact=e,this._member=t,this._memberProofs=i,this._memberMailbox=this._member.profile.mailbox,this._memberPairingCapabilities=h(this._memberMailbox),this.closing||!t||!i)return!1;if(this._targetMember={profile:this._member.profile,attestation:{memberKey:this._member.key,proof:this._memberProofs.profileAttestation}},e?.roomKey&&(this._contactRoomInfo=await this._privateProfile.db.get("@keet-private-id/rooms",{roomKey:this._contact.roomKey})),this.closing||this._contactRoomInfo?.status.isActive)return!1;const o=this._privateProfileInfo.selfMember;return this._selfMember={profile:o.profile,attestation:{memberKey:o.key,proof:o.proofs.profileAttestation}},this._targetMember.profile.avatar&&await s(this._memberRoom.blobs,this._targetMember.profile.avatar),!0}async _waitForMember(){if(!this._dmRoom){const e=this._privateContactRoom?.roomKey||this._contact.roomKey;this._dmRoom=this.keet.internalOpenExistingRoom(e)}this.swarmWorker.startActiveSwarming(this._memberPairingCapabilities.swarmTopic);const e=e=>{this._wakeupSession.announce(e,[{key:this._core.key,length:this._core.length}])};this._wakeupSession=this.keet.protomuxWakeup.session(this._memberMailbox,{discoveryKey:this._memberPairingCapabilities.wakeupTopic,onpeeractive:e});for(const t of this._wakeupSession.peers)t.active&&e(t);this.keet.blindPeering.addCoreBackground(this._core,{target:this._memberMailbox,referrer:this._memberMailbox,priority:1}),this._signal=new t,this._watcher=async()=>{try{const e=this._targetMember.attestation.memberKey;await this._dmRoom.db.findOne("@keet/devices-by-member-key",{gte:{memberKey:e},lte:{memberKey:e}})&&this._signal.notify()}catch(e){i(e)}},this._dmRoom.db.watch(this._watcher),this._watcher(),this._privateProfileWatcher=async()=>{try{const e=await await this._privateProfile.db.get("@keet-private-id/rooms",{roomKey:this._dmRoom.key});e&&!1===e.status.isActive&&this._signal.notify()}catch(e){i(e)}},this._privateProfile.db.watch(this._privateProfileWatcher),this._privateProfileWatcher(),await this._signal.wait(),this.swarmWorker.stopActiveSwarming(this._memberPairingCapabilities.swarmTopic)}async _run(){const e=await this._load();if(this.closing||!e)return;const t=await this._createRoom();if(this.closing||!t)return;const i=await this._appendContactRequest();!this.closing&&i&&await this._waitForMember()}};
1const e=require("hypercore-crypto"),t=require("signal-promise"),i=require("safety-catch"),{Task:o}=require("../task"),{restoreAvatar:s}=require("../../contract/avatars"),{contract:{hyperschema:{getEnum:r}}}=require("../../../../schema/spec"),{getWriterKey:a,createContactRequestOperation:n,generateRoomCapabilities:m,generatePairingCapabilities:h}=require("../../invitations"),{FEATURES:l}=require("../../../../schema/versions"),c=r("@keet/room-type");module.exports=class extends o{constructor(e){super(e);const t=this.description.sendContactRequest;this._roomKey=t.roomKey,this._memberKey=t.memberKey,this._message=t.message,this._contactInfo=t.contactInfo,this._member=null,this._contact=null,this._writerInfo=null,this._contactRoomInfo=null,this._privateContactRoom=null,this._selfMember=null,this._targetMember=null,this._roomMailbox=null,this._memberMailbox=null,this._memberMailboxDiscoveryKey=null,this._core=null,this._dmRoom=null,this._memberRoom=null,this._privateProfile=null,this._wakeupSession=null,this._watcher=null,this._privateProfileWatcher=null}async _close(){this._dmRoom&&(this._watcher&&this._dmRoom.db.unwatch(this._watcher),this.keet.internalReleaseRoom(this._dmRoom)),this._memberRoom&&this.keet.internalReleaseRoom(this._memberRoom),this._privateProfile&&(this._privateProfileWatcher&&this._privateProfile.db.unwatch(this._privateProfileWatcher),this.keet.internalReleaseRoom(this._privateProfile)),this._wakeupSession&&this._wakeupSession.destroy()}async _createRoom(){const t=e.keyPair(),i=e.randomBytes(32),o=a(t.publicKey),s=m(o,i),r={identity:this._identityInfo,privateProfile:this._privateProfileInfo},n=this.keet.internalCreateDeviceUpdate(r,o);return this._roomMailbox=s.mailboxKeyPair.publicKey,this._dmRoom=await this.keet.internalCreateRoom({settings:{roomType:c.DirectMessage},initialMembers:[this._selfMember,this._targetMember],bootstrapDevice:n,keyPair:t,seed:i}),this._message&&await this._dmRoom.dispatch("@keet/add-chat-message",{message:{text:this._message}}),!0}async _appendContactRequest(){if(!await this.keet.internalVerifyOptimisticCore(this._core)||this.closing)return;const e={message:this._message,sender:this._selfMember,mailbox:this._roomMailbox,keys:{key:this._dmRoom.key,encryptionKey:this._dmRoom.encryptionKey}},t=n(this._memberMailbox,this._identityInfo,e),i=await this.keet.internalFeatureSupported(this._privateProfile.id,l.CONTACT_BOOK),o={memberKey:this._memberKey,mailbox:this._memberMailbox,roomKey:this._dmRoom.key,status:{isBlocked:!1}};return i&&(o.status.isActive=!0,o.contactInfo={profile:this._targetMember.profile,attestation:this._targetMember.attestation}),await Promise.all([this._core.append(t),this._privateProfile.dispatch("@keet-private-id/add-contact",{contact:o})]),!0}async _loadRequestWriter(){if(this._writerInfo=await this.local.get("@local/writers",{mailbox:this._memberMailbox}),this._writerInfo)return;const t=e.keyPair(),i=a(t.publicKey);this._writerInfo={mailbox:this._memberMailbox,keyPair:t,key:i};const o=await this.keet.internalEnterLocalTransaction();try{await o.insert("@local/writers",this._writerInfo),await o.flush()}finally{await this.keet.internalExitLocalTransaction()}}_getQueryRange(){return{gte:{contact:this._targetMember.attestation.memberKey},lte:{contact:this._targetMember.attestation.memberKey}}}async _load(){if(this.keet.onlineBoot.opened||await this.keet.onlineBoot.ready(),this._identityInfo=await this.local.get("@local/identity"),this.closing)return!1;const e=this._identityInfo.privateProfileKey;if(this._privateProfileInfo=await this.local.get("@local/rooms",{roomKey:e}),this.closing)return!1;if(this._privateProfile=this.keet.internalOpenExistingRoom(e),await this._privateProfile.ready(),this.closing)return!1;let t=!1;return t=this._contactInfo?await this._useContactInfo():await this._useRoomKey(),!(!this._targetMember?.profile?.displayName||(await this._loadRequestWriter(),this.closing||(this._core=this.store.get({keyPair:this._writerInfo.keyPair}),await this._core.ready(),this.closing||(this._privateContactRoom=await this._privateProfile.db.findOne("@keet-private-id/rooms-by-contact",this._getQueryRange()),(!t||this._privateContactRoom)&&(await this._waitForMember(),1)))))}async _useContactInfo(){const e=await this._privateProfile.db.get("@keet-private-id/contacts",{memberKey:this._memberKey});if(this._contact=e,this._memberMailbox=this._contactInfo.profile.mailbox,this._member=null,this._memberProofs=null,this._memberPairingCapabilities=h(this._memberMailbox),this._targetMember={profile:this._contactInfo.profile,attestation:this._contactInfo.attestation},e?.roomKey&&(this._contactRoomInfo=await this._privateProfile.db.get("@keet-private-id/rooms",{roomKey:this._contact.roomKey})),this.closing||this._contactRoomInfo?.status.isActive)return!1;const t=this._privateProfileInfo.selfMember;return this._selfMember={profile:t.profile,attestation:{memberKey:t.key,proof:t.proofs.profileAttestation}},!0}async _useRoomKey(){if(this._memberRoom=this.keet.internalOpenExistingRoom(this._roomKey),await this._memberRoom.ready(),this.closing)return!1;const e=this._memberRoom.db.snapshot();try{return await this._loadTargetMember(e)}finally{await e.close()}}async _loadTargetMember(e){const[t,i,o]=await Promise.all([this._privateProfile.db.get("@keet-private-id/contacts",{memberKey:this._memberKey}),e.get("@keet/members",{key:this._memberKey}),e.get("@keet/member-proofs",{key:this._memberKey})]);if(this._contact=t,this._member=i,this._memberProofs=o,this.closing||!i||!o)return!1;if(this._memberMailbox=this._member.profile.mailbox,this._memberPairingCapabilities=h(this._memberMailbox),this._targetMember={profile:this._member.profile,attestation:{memberKey:this._member.key,proof:this._memberProofs.profileAttestation}},t?.roomKey&&(this._contactRoomInfo=await this._privateProfile.db.get("@keet-private-id/rooms",{roomKey:this._contact.roomKey})),this.closing||this._contactRoomInfo?.status.isActive)return!1;const r=this._privateProfileInfo.selfMember;return this._selfMember={profile:r.profile,attestation:{memberKey:r.key,proof:r.proofs.profileAttestation}},this._targetMember.profile.avatar&&await s(e,this._memberRoom.blobs,this._targetMember.profile.avatar),!0}async _waitForMember(){if(!this._dmRoom){const e=this._privateContactRoom?.roomKey||this._contact.roomKey;this._dmRoom=this.keet.internalOpenExistingRoom(e)}this.swarmWorker.startActiveSwarming(this._memberPairingCapabilities.swarmTopic);const e=e=>{this._wakeupSession.announce(e,[{key:this._core.key,length:this._core.length}])};this._wakeupSession=this.keet.protomuxWakeup.session(this._memberMailbox,{discoveryKey:this._memberPairingCapabilities.wakeupTopic,onpeeractive:e});for(const t of this._wakeupSession.peers)t.active&&e(t);this.keet.blindPeering.addCoreBackground(this._core,{target:this._memberMailbox,referrer:this._memberMailbox,priority:1}),this._signal=new t,this._watcher=async()=>{try{const e=this._targetMember.attestation.memberKey;await this._dmRoom.db.findOne("@keet/devices-by-member-key",{gte:{memberKey:e},lte:{memberKey:e}})&&this._signal.notify()}catch(e){i(e)}},this._dmRoom.db.watch(this._watcher),this._watcher(),this._privateProfileWatcher=async()=>{try{const e=await await this._privateProfile.db.get("@keet-private-id/rooms",{roomKey:this._dmRoom.key});e&&!1===e.status.isActive&&this._signal.notify()}catch(e){i(e)}},this._privateProfile.db.watch(this._privateProfileWatcher),this._privateProfileWatcher(),await this._signal.wait(),this.swarmWorker.stopActiveSwarming(this._memberPairingCapabilities.swarmTopic)}async _run(){const e=await this._load();if(this.closing||!e)return;const t=await this._createRoom();if(this.closing||!t)return;const i=await this._appendContactRequest();!this.closing&&i&&await this._waitForMember()}};
@holepunchto/keet-core/lib/core/tasks/identity/restore.js +1 -1
……@@ -1 +1 @@
1const e=require("keet-identity-key"),i=require("hypercore-crypto"),t=require("b4a"),{mnemonicToEntropy:r}=require("bip39-mnemonic"),{Task:s}=require("../task"),{getWriterKey:o,generateRoomCapabilities:a}=require("../../invitations");module.exports=class extends s{constructor(e){super(e);const i=this.description.restoreIdentity;this.swarmWorker=this.keet.swarmWorker,this.store=this.keet.store,this._mnemonic=i.mnemonic,this._recover=i.recover,this._profileDiscoveryTimeout=i.profileDiscoveryTimeout,this._discoveredProfileInfo=null,this._currentIdentityInfo=null,this._currentPrivateProfileInfo=null,this._newIdentityInfo=null,this._newPrivateProfile=null,this._newMailbox=null,this._identity=null,this._deviceProof=null,this._deviceKeyPair=null,this._privateProfileKey=null,this._mailboxKey=null,this._joinTask=null}async _close(){this._newPrivateProfile&&this.keet.internalReleaseRoom(this._newPrivateProfile)}_maybeEmitEvents(){this.keet.emit("identity-changed")}async _refreshSwarming(){this._currentPrivateProfileInfo&&this.swarmWorker.stopActiveSwarming(this._currentPrivateProfileInfo.capabilities.swarmTopic),this.swarmWorker.startActiveSwarming(this._newCapabilities.swarmTopic)}async _recoverPrivateProfile(){if(await this.keet.swarm.flush(),await new Promise(e=>setTimeout(e,this._profileDiscoveryTimeout)),!this.keet.discoveryCore.length)return!1;const e=await this.keet.discoveryCore.get(this.keet.discoveryCore.length-1);return!!e&&(this._newIdentityInfo.privateProfileKey=e.key,this._privateProfileKey=e.key,this._mailboxKey=e.mailbox,!0)}async _createInitialKeyPairs(){return this._deviceKeyPair=await this.store.createKeyPair(this._identity.identityPublicKey),!this.closing&&(this._deviceProof=await this._identity.bootstrap(this._deviceKeyPair.publicKey),!this.closing&&(this._newIdentityInfo={publicKey:this._identity.identityPublicKey,privateProfileKey:null,deviceKeyPair:this._deviceKeyPair,deviceProof:this._deviceProof,entropy:r(this._mnemonic),status:{isConfirmed:!1}},!0))}async _createNewPrivateProfile(){const e=i.randomBytes(32),t=i.keyPair(),r=o(t.publicKey),s=a(r,e);this._newCapabilities=s,this._newMailbox=s.mailboxKeyPair.publicKey,this._newIdentityInfo.privateProfileKey=r,this._privateProfileKey=r;const n={identity:this._newIdentityInfo,privateProfile:this._currentPrivateProfileInfo},l=this.keet.internalCreateDeviceUpdate(n,r,{isPrivateProfile:!0}),h=[this.keet.internalCreateMemberUpdate(n,{profile:{mailbox:this._newMailbox}})],y={publicKey:this._identity.identityPublicKey,discoveryCoreKey:this.keet.discoveryCore.key},c=this._identity.getEncryptionKey(r);this._newPrivateProfile=await this.keet.internalCreateRoom({identity:y,isPrivateProfile:!0,bootstrapDevice:l,initialMembers:h,encryptionKey:c,keyPair:t,seed:e});const _=Math.floor((Date.now()-1711547109544)/1e3);await this.keet.discoveryCore.truncate(this.keet.discoveryCore.length,_),await this.keet.discoveryCore.append({version:1,timestamp:Date.now(),key:r,mailbox:this._newMailbox})}async _joinExistingPrivateProfile(){const e=this._identity.getEncryptionKey(this._privateProfileKey);this._newPrivateProfile=this.keet.internalOpenRoom(this._privateProfileKey,e,{mailbox:this._mailboxKey}),await this._newPrivateProfile.ready(),await new Promise(e=>setTimeout(e,this._profileDiscoveryTimeout));const[i,r]=await Promise.all([this._newPrivateProfile.db.get("@keet-private-id/identity"),this._newPrivateProfile.db.get("@keet/room-capabilities")]);if(!i||!r||!t.equals(i.publicKey,this._identity.identityPublicKey))return!1;this._newCapabilities=a(this._privateProfileKey,r.seed);const s=this._newCapabilities.mailboxKeyPair;return!!s&&(this._newMailbox=s.publicKey,this._joinTask=await this.keet.tasks.joinRoomKeys(this._privateProfileKey,{keys:{roomKey:this._privateProfileKey,encryptionKey:e,initiator:{key:this._privateProfileKey,length:1},mailbox:this._newCapabilities.mailboxKeyPair.publicKey,status:{isReadOnly:!1}}}),this._newIdentityInfo.status.isConfirmed=!0,!0)}async _load(){const[i,r]=await Promise.all([this.local.get("@local/identity"),e.from({mnemonic:this._mnemonic})]);this._identity=r,this._currentIdentityInfo=i,this._currentPrivateProfileInfo=null,this._currentIdentityInfo&&(this._currentPrivateProfileInfo=await this.local.get("@local/rooms",{roomKey:i.privateProfileKey}));const s=i?.publicKey;return s&&t.equals(s,r.identityPublicKey)}async _save(){const e=await this.keet.internalEnterLocalTransaction();try{await e.insert("@local/identity",this._newIdentityInfo),await e.flush()}finally{await this.keet.internalExitLocalTransaction()}}async _run(){if(await this._load()||this.closing)return;if(!await this._createInitialKeyPairs())return;await this.keet.internalCreateDiscoveryCore(this._identity);let e=!1;if(this._recover&&(e=await this._recoverPrivateProfile(),this.closing))return;let i=!1;if(!e||(i=await this._joinExistingPrivateProfile(),!this.closing)){if(!e||!i){if(this._recover)throw new Error("Could not recover identity from seed phrase");await this._createNewPrivateProfile()}await this._save(),this._joinTask&&await this._joinTask.run(),this._refreshSwarming(),this._maybeEmitEvents()}}};
1const e=require("keet-identity-key"),i=require("hypercore-crypto"),t=require("b4a"),{mnemonicToEntropy:r}=require("bip39-mnemonic"),{Task:n}=require("../task"),{getWriterKey:a,generateRoomCapabilities:s}=require("../../invitations");module.exports=class extends n{constructor(e){super(e);const i=this.description.restoreIdentity;this.swarmWorker=this.keet.swarmWorker,this.store=this.keet.store,this._mnemonic=i.mnemonic,this._recover=i.recover,this._profileDiscoveryTimeout=i.profileDiscoveryTimeout,this._discoveredProfileInfo=null,this._currentIdentityInfo=null,this._currentPrivateProfileInfo=null,this._newIdentityInfo=null,this._newPrivateProfile=null,this._newMailbox=null,this._identity=null,this._deviceProof=null,this._deviceKeyPair=null,this._privateProfileKey=null,this._mailboxKey=null}async _close(){this._newPrivateProfile&&this.keet.internalReleaseRoom(this._newPrivateProfile)}_maybeEmitEvents(){this.keet.emit("identity-changed")}async _refreshSwarming(){this._currentPrivateProfileInfo&&this.swarmWorker.stopActiveSwarming(this._currentPrivateProfileInfo.capabilities.swarmTopic),this.swarmWorker.startActiveSwarming(this._newCapabilities.swarmTopic)}async _recoverPrivateProfile(){if(await this.keet.swarm.flush(),await new Promise(e=>setTimeout(e,this._profileDiscoveryTimeout)),!this.keet.discoveryCore.length)return!1;const e=await this.keet.discoveryCore.get(this.keet.discoveryCore.length-1);return!!e&&(this._newIdentityInfo.privateProfileKey=e.key,this._privateProfileKey=e.key,this._mailboxKey=e.mailbox,!0)}async _createInitialKeyPairs(){return this._deviceKeyPair=await this.store.createKeyPair(this._identity.identityPublicKey),!this.closing&&(this._deviceProof=await this._identity.bootstrap(this._deviceKeyPair.publicKey),!this.closing&&(this._newIdentityInfo={publicKey:this._identity.identityPublicKey,privateProfileKey:null,deviceKeyPair:this._deviceKeyPair,deviceProof:this._deviceProof,entropy:r(this._mnemonic),status:{isConfirmed:!1}},!0))}async _createNewPrivateProfile(){const e=i.randomBytes(32),t=i.keyPair(),r=a(t.publicKey),n=s(r,e);this._newCapabilities=n,this._newMailbox=n.mailboxKeyPair.publicKey,this._newIdentityInfo.privateProfileKey=r,this._privateProfileKey=r;const o={identity:this._newIdentityInfo,privateProfile:this._currentPrivateProfileInfo},l=this.keet.internalCreateDeviceUpdate(o,r,{isPrivateProfile:!0}),c=[this.keet.internalCreateMemberUpdate(o,{profile:{mailbox:this._newMailbox}})],y={publicKey:this._identity.identityPublicKey,discoveryCoreKey:this.keet.discoveryCore.key},h=this._identity.getEncryptionKey(r);this._newPrivateProfile=await this.keet.internalCreateRoom({identity:y,isPrivateProfile:!0,bootstrapDevice:l,initialMembers:c,encryptionKey:h,keyPair:t,seed:e});const _=Math.floor((Date.now()-1711547109544)/1e3);await this.keet.discoveryCore.truncate(this.keet.discoveryCore.length,_),await this.keet.discoveryCore.append({version:1,timestamp:Date.now(),key:r,mailbox:this._newMailbox})}async _joinExistingPrivateProfile(){const e=this._identity.getEncryptionKey(this._privateProfileKey);if(this._newPrivateProfile=this.keet.internalOpenRoom(this._privateProfileKey,e,{mailbox:this._mailboxKey}),await this._newPrivateProfile.ready(),await new Promise(e=>setTimeout(e,this._profileDiscoveryTimeout)),await this._bootFromProfileWriter(),this.closing)return!1;await this._newPrivateProfile.engine.update();const[i,r]=await Promise.all([this._newPrivateProfile.db.get("@keet-private-id/identity"),this._newPrivateProfile.db.get("@keet/room-capabilities")]);if(!i||!r||!t.equals(i.publicKey,this._identity.identityPublicKey))return!1;this._newCapabilities=s(this._privateProfileKey,r.seed);const n=this._newCapabilities.mailboxKeyPair;if(!n)return!1;this._newMailbox=n.publicKey;const a=await this.keet.tasks.joinRoomKeys(this._privateProfileKey,{keys:{roomKey:this._privateProfileKey,encryptionKey:e,initiator:{key:this._privateProfileKey,length:1},mailbox:this._newCapabilities.mailboxKeyPair.publicKey},isReadOnly:!1});if(await a.run(),this.closing)return!1;const o=await this.local.get("@local/identity");return!!o&&t.equals(o.publicKey,this._newIdentityInfo.publicKey)}_bootFromProfileWriter(){const e={key:this._privateProfileKey};return this._newPrivateProfile.engine.auto.moveTo(e,{timeout:5e3})}async _load(){const[i,r]=await Promise.all([this.local.get("@local/identity"),e.from({mnemonic:this._mnemonic})]);this._identity=r,this._currentIdentityInfo=i,this._currentPrivateProfileInfo=null,this._currentIdentityInfo&&(this._currentPrivateProfileInfo=await this.local.get("@local/rooms",{roomKey:i.privateProfileKey}));const n=i?.publicKey;return n&&t.equals(n,r.identityPublicKey)}async _save(){const e=await this.keet.internalEnterLocalTransaction();try{await e.insert("@local/identity",this._newIdentityInfo),await e.flush()}finally{await this.keet.internalExitLocalTransaction()}}async _savePendingRecovery(){const e=await this.keet.internalEnterLocalTransaction();try{await e.insert("@local/pending-recovery",{mnemonic:this._mnemonic,profileDiscoveryTimeout:this._profileDiscoveryTimeout,privateProfileKey:this._privateProfileKey,identity:this._newIdentityInfo}),await e.flush()}finally{await this.keet.internalExitLocalTransaction()}}async _clearPendingRecovery(){const e=await this.keet.internalEnterLocalTransaction();try{await e.delete("@local/pending-recovery"),await e.flush()}finally{await this.keet.internalExitLocalTransaction()}}async _createIdentity(){await this._createNewPrivateProfile(),this.closing||await this._save()}async _recoverIdentity(){const e=await this._recoverPrivateProfile();if(!this.closing){if(e){if(this._newIdentityInfo.status.isConfirmed=!0,await this._savePendingRecovery(),this.closing)return;if(await this._joinExistingPrivateProfile()||this.closing)return}throw await this._clearPendingRecovery(),new Error("Could not recover identity from seed phrase")}}async _run(){await this._load()||this.closing||await this._createInitialKeyPairs()&&(await this.keet.internalCreateDiscoveryCore(this._identity),this.closing||(this._recover?await this._recoverIdentity():await this._createIdentity(),this.closing||(this._refreshSwarming(),this._maybeEmitEvents())))}};
@holepunchto/keet-core/lib/core/tasks/index.js +1 -1
……@@ -1 +1 @@
1const e=require("ready-resource"),t=require("hypercore-id-encoding"),s=require("scope-lock"),r=require("resolve-reject-promise"),i=require("safety-catch"),{local:{hyperschema:{getEnum:n}}}=require("../../../schema/spec"),{Task:a}=require("./task"),o=n("@local/tasks"),c=require("./rooms/leave"),l=require("./rooms/clear"),h=require("./rooms/create"),u=require("./identity/restore"),d=require("./pairing/invitation"),k=require("./pairing/response"),p=require("./pairing/keys"),y=require("./contacts/request"),m=require("./testing/fast"),_=require("./testing/slow"),w=require("./testing/error");class g extends e{constructor(e,s,n){super(),this.description=n,this.manager=e,this.idx=0,this.id=s,this.keet=this.manager.keet,this.scope=this.description.discoveryKey,this.scopeId=t.encode(this.scope),this.running=null,this.waiting=!0,this.completed=!1,this._task=null;const{resolve:a,reject:o,promise:c}=r();this._resolve=a,this._reject=o,this._promise=c,this._promise.catch(i)}get taskClosing(){return this._task&&this._task.closing}async _close(){this._task&&await this._task.close(),this._reject(new Error("Task was cancelled"))}async _run(){if(this.manager.closing)return;if(await this.manager.internalFlushTasks(),this._task=this._createTask(),await this.manager.internalHandleTaskStarted(this),this.manager.closing)return;this.waiting=!1;let e=null,t=null;try{e=await this._task.run()}catch(e){if(this.manager.closing)return;t=e}finally{this.completed=!0,await this.manager.internalHandleTaskCompleted(this),t?this._reject(t):this._resolve(e)}}_createTask(){switch(this.description.type){case o.RestoreIdentity:return new u(this);case o.CreateRoom:return new h(this);case o.LeaveRoom:return new c(this);case o.ClearRoom:return new l(this);case o.JoinRoomInvitation:return new d(this);case o.JoinRoomKeys:return new p(this);case o.JoinRoomResponse:return new k(this);case o.SendContactRequest:return new y(this);case o.TestFastTask:return new m(this);case o.TestSlowTask:return new _(this);case o.TestErrorTask:return new w(this);default:throw new Error("Unknown task type: "+this.description.type)}}run(){return this.running||(this.running=this._run(),this.running.catch(this.keet.onerror)),this._promise}runBackground(){this.run().catch(this.keet.onerror)}}module.exports=class extends e{constructor(e){super(),this.keet=e,this.local=this.keet.local,this._flushLock=new s({debounce:!0}),this._scopeLocks=new Map,this._handles=[],this.ready().catch(e.onerror)}async _open(){if(!this.keet.readOnly)for await(const e of this.local.find("@local/tasks")){const t=e.type,s=e.discoveryKey;this._createHandle(t,s,e).runBackground()}}_close(){const e=[];for(const t of this._handles)e.push(t.close());return Promise.allSettled(e)}async flush(){await this.internalFlushTasks();const e=[];for(const t of this._handles)e.push(t.running);await Promise.allSettled(e)}async internalFlushTasks(){if(await this._flushLock.lock()&&!this.closing)try{const e=await this.keet.internalEnterLocalTransaction();try{let t=!1;for(const s of this._handles)s.running&&!s.completed&&(await e.get("@local/tasks-by-type",s.description)||(await e.insert("@local/tasks",s.description),t=!0));t&&await e.flush()}finally{await this.keet.internalExitLocalTransaction()}}catch(e){this.keet.onerror(e)}finally{this._flushLock.unlock()}}_createHandle(e,t,s,r={}){const i={...s,type:e,discoveryKey:t,timestamp:Date.now(),priority:r.priority||10},n=a.getId(i),o=new g(this,n,i);return o.idx=this._handles.push(o)-1,o}async internalHandleTaskStarted(e){let t=this._scopeLocks.get(e.scopeId);t||(t=new s,this._scopeLocks.set(e.scopeId,t)),await t.lock()}async internalHandleTaskCompleted(e){if(this.closing)return;const t=this._handles.pop();t!==e&&(t.idx=e.idx,this._handles[e.idx]=t);const s=await this.keet.internalEnterLocalTransaction();try{for await(const t of s.find("@local/tasks-by-type",function(e){const t={type:e.type,discoveryKey:e.discoveryKey};return{gte:t,lte:t}}(e.description)))await s.delete("@local/tasks",t);await s.flush()}catch(e){this.keet.onerror(e)}finally{await this.keet.internalExitLocalTransaction()}const r=this._scopeLocks.get(e.scopeId),i=r.waiting.length;r.unlock(),0===i&&this._scopeLocks.delete(e.scopeId)}restoreIdentity(e,t){return this._createHandle(o.RestoreIdentity,e,{restoreIdentity:t})}createRoom(e,t){return this._createHandle(o.CreateRoom,e,{createRoom:t})}leaveRoom(e,t){return this._createHandle(o.LeaveRoom,e,{leaveRoom:t})}clearRoom(e,t){return this._createHandle(o.ClearRoom,e,{clearRoom:t})}joinRoomInvitation(e,t){return this._createHandle(o.JoinRoomInvitation,e,{joinRoomInvitation:t})}joinRoomKeys(e,t){return this._createHandle(o.JoinRoomKeys,e,{joinRoomKeys:t})}joinRoomResponse(e,t){return this._createHandle(o.JoinRoomResponse,e,{joinRoomResponse:t})}sendContactRequest(e,t){return this._createHandle(o.SendContactRequest,e,{sendContactRequest:t})}testFastTask(e){return this._createHandle(o.TestFastTask,e)}testSlowTask(e){return this._createHandle(o.TestSlowTask,e)}testErrorTask(e){return this._createHandle(o.TestErrorTask,e)}};
1const e=require("ready-resource"),t=require("hypercore-id-encoding"),s=require("scope-lock"),i=require("resolve-reject-promise"),r=require("safety-catch"),{local:{hyperschema:{getEnum:n}}}=require("../../../schema/spec"),{Task:a}=require("./task"),o=n("@local/tasks"),c=require("./rooms/leave"),l=require("./rooms/clear"),h=require("./rooms/create"),u=require("./identity/restore"),d=require("./pairing/invitation"),k=require("./pairing/response"),p=require("./pairing/keys"),y=require("./contacts/request"),m=require("./testing/fast"),w=require("./testing/slow"),_=require("./testing/error");class g extends e{constructor(e,s,n){super(),this.description=n,this.manager=e,this.idx=0,this.id=s,this.keet=this.manager.keet,this.scope=this.description.discoveryKey,this.scopeId=t.encode(this.scope),this.running=null,this.waiting=!0,this.completed=!1,this._task=null;const{resolve:a,reject:o,promise:c}=i();this._resolve=a,this._reject=o,this._promise=c,this._promise.catch(r)}get taskClosing(){return this._task&&this._task.closing}async _close(){this._task&&await this._task.close(),this._reject(new Error("Task was cancelled"))}async _run(){if(this.manager.closing)return;if(await this.manager.internalFlushTasks(),this._task=this._createTask(),await this.manager.internalHandleTaskStarted(this),this.manager.closing)return;this.waiting=!1;let e=null,t=null;try{e=await this._task.run()}catch(e){if(this.manager.closing)return;t=e}finally{this.completed=!0,await this.manager.internalHandleTaskCompleted(this),t?this._reject(t):this._resolve(e)}}_createTask(){switch(this.description.type){case o.RestoreIdentity:return new u(this);case o.CreateRoom:return new h(this);case o.LeaveRoom:return new c(this);case o.ClearRoom:return new l(this);case o.JoinRoomInvitation:return new d(this);case o.JoinRoomKeys:return new p(this);case o.JoinRoomResponse:return new k(this);case o.SendContactRequest:return new y(this);case o.TestFastTask:return new m(this);case o.TestSlowTask:return new w(this);case o.TestErrorTask:return new _(this);default:throw new Error("Unknown task type: "+this.description.type)}}run(){return this.running||(this.running=this._run(),this.running.catch(this.keet.onerror)),this._promise}runBackground(){this.run().catch(this.keet.onerror)}}module.exports=class extends e{constructor(e){super(),this.keet=e,this.local=this.keet.local,this._flushLock=new s({debounce:!0}),this._scopeLocks=new Map,this._handles=[],this.ready().catch(e.onerror)}async _open(){if(!this.keet.readOnly)for await(const e of this.local.find("@local/tasks")){const t=e.type,s=e.discoveryKey;this._createHandle(t,s,e).runBackground()}}_close(){const e=[];for(const t of this._handles)e.push(t.close());return Promise.allSettled(e)}async flush(){await this.internalFlushTasks();const e=[];for(const t of this._handles)e.push(t.running);await Promise.allSettled(e)}async internalFlushTasks(){if(await this._flushLock.lock()&&!this.closing)try{const e=await this.keet.internalEnterLocalTransaction();try{let t=!1;for(const s of this._handles)s.running&&!s.completed&&(await e.get("@local/tasks-by-type",s.description)||(await e.insert("@local/tasks",s.description),t=!0));t&&await e.flush()}finally{await this.keet.internalExitLocalTransaction()}}catch(e){this.keet.onerror(e)}finally{this._flushLock.unlock()}}async internalPersistTasks(e,t){if(t&&0!==t.length&&!this.closing)for(const s of t)s.completed||await e.get("@local/tasks-by-type",s.description)||await e.insert("@local/tasks",s.description)}_createHandle(e,t,s,i={}){const r={...s,type:e,discoveryKey:t,timestamp:Date.now(),priority:i.priority||10},n=a.getId(r),o=new g(this,n,r);return o.idx=this._handles.push(o)-1,o}async internalHandleTaskStarted(e){let t=this._scopeLocks.get(e.scopeId);t||(t=new s,this._scopeLocks.set(e.scopeId,t)),await t.lock()}async internalHandleTaskCompleted(e){if(this.closing)return;const t=this._handles.pop();t!==e&&(t.idx=e.idx,this._handles[e.idx]=t);const s=await this.keet.internalEnterLocalTransaction();try{for await(const t of s.find("@local/tasks-by-type",function(e){const t={type:e.type,discoveryKey:e.discoveryKey};return{gte:t,lte:t}}(e.description)))await s.delete("@local/tasks",t);await s.flush()}catch(e){this.keet.onerror(e)}finally{await this.keet.internalExitLocalTransaction()}const i=this._scopeLocks.get(e.scopeId),r=i.waiting.length;i.unlock(),0===r&&this._scopeLocks.delete(e.scopeId)}restoreIdentity(e,t){return this._createHandle(o.RestoreIdentity,e,{restoreIdentity:t})}createRoom(e,t){return this._createHandle(o.CreateRoom,e,{createRoom:t})}leaveRoom(e,t){return this._createHandle(o.LeaveRoom,e,{leaveRoom:t})}clearRoom(e,t){return this._createHandle(o.ClearRoom,e,{clearRoom:t})}joinRoomInvitation(e,t){return this._createHandle(o.JoinRoomInvitation,e,{joinRoomInvitation:t})}joinRoomKeys(e,t){return this._createHandle(o.JoinRoomKeys,e,{joinRoomKeys:t})}joinRoomResponse(e,t){return this._createHandle(o.JoinRoomResponse,e,{joinRoomResponse:t})}sendContactRequest(e,t){return this._createHandle(o.SendContactRequest,e,{sendContactRequest:t})}testFastTask(e){return this._createHandle(o.TestFastTask,e)}testSlowTask(e){return this._createHandle(o.TestSlowTask,e)}testErrorTask(e){return this._createHandle(o.TestErrorTask,e)}};
@holepunchto/keet-core/lib/core/tasks/pairing/invitation.js +1 -1
……@@ -1 +1 @@
1const i=require("b4a"),t=require("safety-catch"),e=require("signal-promise"),{Task:s}=require("../task"),{getInvitationId:a,generatePairingCapabilities:o,generateRoomPairingName:n,createInvitationJoinOperation:r}=require("../../invitations");module.exports=class extends s{constructor(i){super(i);const t=this.description.joinRoomInvitation;this._invitation=t.invitation,this._initiator=t.invitation.initiator,this._inviter=t.invitation.inviter,this._identity=t.invitation.identity,this._mailboxPublicKey=t.invitation.mailbox,this._responseKeyPair=t.invitation.responseKeyPair,this._invitationSeed=this._invitation.invitationSeed,this._capabilities=o(this._mailboxPublicKey),this._invitationId=a(this._invitationSeed),this._roomInfo=null,this._sharedRoomInfo=null,this._writerInfo=null,this._identityInfo=null,this._privateProfileInfo=null,this._room=null,this._core=null,this._responseCore=null,this._wakeupSession=null,this._privateProfile=null,this._signal=null,this._watcher=null}async _close(){this._signal&&this._signal.notify(new Error("Invitation join task closed before resolving")),this._watcher&&this._privateProfile.db.unwatch(this._watcher),this._wakeupSession&&(this.swarmWorker.stopActiveSwarming(this._capabilities.swarmTopic),this._wakeupSession.destroy()),this._core&&await this._core.close(),this._responseCore&&await this._responseCore.close(),this._room&&this.keet.internalReleaseRoom(this._room),this._privateProfile&&this.keet.internalReleaseRoom(this._privateProfile)}_samePendingInvitation(t){return i.equals(t.id,this._invitationId)&&i.equals(t.responseKeyPair.publicKey,this._responseKeyPair.publicKey)}async _appendJoinRequest(){const i={key:this._core.key,responsePublicKey:this._responseKeyPair.publicKey};if(await this.local.get("@local/writer-appends",i))return;const t={identity:this._identityInfo,privateProfile:this._privateProfileInfo},e={device:this.keet.internalCreateDeviceUpdate(t,this._core.key,{isPrivateProfile:!!this._identity,buildType:this._invitation.buildType}),member:this.keet.internalGetMemberUpdate(t)};let s=null;this._identity&&(s={devicePublicKey:this._identity.devicePublicKey});const a=this.keet.internalGetHeads(this._inviter,this._room),o=r(this._core.key,this._mailboxPublicKey,this._responseKeyPair,this._invitationSeed,e,{identity:s,heads:a});if(await this.keet.internalAppendOptimisticOperation(this._core.key,o),this.closing)return;const n=await this.keet.internalEnterLocalTransaction();try{await n.insert("@local/writer-appends",i),await n.flush()}finally{await this.keet.internalExitLocalTransaction()}}async _waitForResponse(){this._responseCore=this.store.get({keyPair:this._responseKeyPair,writable:!1}),await this._responseCore.ready();const i=this._privateProfileInfo.capabilities.mailboxKeyPair.publicKey;if(this.keet.blindPeering.addCoreBackground(this._responseCore,{target:i,referrer:i,priority:1}),this.closing)return;const t=i=>{this._wakeupSession.announce(i,[{key:this._core.key,length:this._core.length}])};this._wakeupSession=this.keet.protomuxWakeup.session(this._mailboxPublicKey,{discoveryKey:this._capabilities.wakeupTopic,onpeeractive:t});for(const i of this._wakeupSession.peers)i.active&&t(i);this.swarmWorker.startActiveSwarming(this._capabilities.swarmTopic),this.keet.discovery&&this.keet.discovery.announce(this._capabilities.discoveryKeyPair);try{await this._responseCore.get(0)}catch(i){if(this.closing)return;throw i}this.closing||(this.swarmWorker.stopActiveSwarming(this._capabilities.swarmTopic),this.keet.discovery&&this.keet.discovery.subscribe(this._capabilities.discoveryKeyPair.publicKey,{since:Date.now()}),await this._responseCore.close(),this.closing||this._privateProfile.base.hintWakeup([{key:this._responseCore.key,length:1}]))}async _append(){const i=await this.keet.store.createKeyPair(n(this._responseKeyPair.publicKey)),t=await this.keet.internalEnterLocalTransaction();try{this._writerInfo={keyPair:i,key:this._core.key,mailbox:this._mailboxPublicKey,responseKeyPair:this._responseKeyPair},await t.insert("@local/writers",this._writerInfo),await t.flush()}finally{await this.keet.internalExitLocalTransaction()}await this._appendJoinRequest()}async _run(){if(this.closing)return;this.keet.onlineBoot.opened||await this.keet.onlineBoot.ready();const[i,s]=await Promise.all([this.local.get("@local/writers",{mailbox:this._mailboxPublicKey}),this.local.get("@local/identity")]),[a,o]=await Promise.all([this.local.get("@local/rooms",{roomKey:s.privateProfileKey}),this.local.get("@local/rooms-by-mailbox",{capabilities:{mailboxKeyPair:{publicKey:this._mailboxPublicKey}}})]);if(this.closing)return;if(this._roomInfo=o,this._writerInfo=i,this._identityInfo=s,this._privateProfileInfo=a,this._privateProfile=this.keet.internalOpenExistingRoom(this._identityInfo.privateProfileKey),await this._privateProfile.ready(),this.closing)return;if(this._room=this._roomInfo?this.keet.internalOpenExistingRoom(this._roomInfo.roomKey):null,this._room&&(await this._room.ready(),this.closing))return;const n=await this._privateProfile.db.get("@keet-private-id/pending-invitations",{id:this._invitationId});!this.closing&&n&&this._samePendingInvitation(n)&&(this._core=this.store.get({key:this._initiator.key}),await this._core.ready(),this.closing||this._core.writable&&(await this._append(),this._room&&(await this._room.base.setLocal(this._core.key),this.closing))||(this.keet.emit("pending-rooms-changed"),this.keet.blindPeering.addCoreBackground(this._core,{target:this._mailboxPublicKey,referrer:this._mailboxPublicKey,priority:1}),this._waitForResponse().catch(this.keet.onerror),this._signal=new e,this._watcher=async()=>{try{const i=await this._privateProfile.db.get("@keet-private-id/pending-invitations",{id:this._invitationId});i&&this._samePendingInvitation(i)||this._signal.notify()}catch(i){t(i)}},this._privateProfile.db.watch(this._watcher),this._watcher(),await this._signal.wait()))}};
1const i=require("b4a"),t=require("safety-catch"),e=require("signal-promise"),{Task:s}=require("../task"),{getInvitationId:o,generatePairingCapabilities:n,generateRoomPairingName:a,createInvitationJoinOperation:r,getResponseCoreManifest:h}=require("../../invitations");module.exports=class extends s{constructor(i){super(i);const t=this.description.joinRoomInvitation;this._invitation=t.invitation,this._initiator=t.invitation.initiator,this._inviter=t.invitation.inviter,this._identity=t.invitation.identity,this._mailboxPublicKey=t.invitation.mailbox,this._responseKeyPair=t.invitation.responseKeyPair,this._invitationSeed=this._invitation.invitationSeed,this._capabilities=n(this._mailboxPublicKey),this._invitationId=o(this._invitationSeed),this._roomInfo=null,this._sharedRoomInfo=null,this._writerInfo=null,this._identityInfo=null,this._privateProfileInfo=null,this._room=null,this._core=null,this._responseCore=null,this._wakeupSession=null,this._privateProfile=null,this._signal=null,this._watcher=null}async _close(){this._signal&&this._signal.notify(new Error("Invitation join task closed before resolving")),this._watcher&&this._privateProfile.db.unwatch(this._watcher),this._wakeupSession&&(this.swarmWorker.stopActiveSwarming(this._capabilities.swarmTopic),this._wakeupSession.destroy()),this._core&&await this._core.close(),this._responseCore&&await this._responseCore.close(),this._room&&this.keet.internalReleaseRoom(this._room),this._privateProfile&&this.keet.internalReleaseRoom(this._privateProfile)}_samePendingInvitation(t){return i.equals(t.id,this._invitationId)&&i.equals(t.responseKeyPair.publicKey,this._responseKeyPair.publicKey)}async _appendJoinRequest(){const i={key:this._core.key,responsePublicKey:this._responseKeyPair.publicKey};if(await this.local.get("@local/writer-appends",i))return;const t={identity:this._identityInfo,privateProfile:this._privateProfileInfo},e={device:this.keet.internalCreateDeviceUpdate(t,this._core.key,{isPrivateProfile:!!this._identity,buildType:this._invitation.buildType}),member:this.keet.internalGetMemberUpdate(t)};let s=null;this._identity&&(s={devicePublicKey:this._identity.devicePublicKey});const o=this.keet.internalGetHeads(this._inviter,this._room),n=r(this._core.key,this._mailboxPublicKey,this._responseKeyPair,this._invitationSeed,e,{identity:s,heads:o,link:this._invitation.link}),a=await this.keet.internalAppendOptimisticOperation(this._core.key,n);if(this.closing)return;if(!a&&0===this._core.length)return;const h=await this.keet.internalEnterLocalTransaction();try{await h.insert("@local/writer-appends",i),await h.flush()}finally{await this.keet.internalExitLocalTransaction()}}async _waitForResponse(){this._responseCore=this.store.get({keyPair:this._responseKeyPair,manifest:h(this._responseKeyPair.publicKey),writable:!1}),await this._responseCore.ready();const i=this._privateProfileInfo.capabilities.mailboxKeyPair.publicKey;if(this.keet.blindPeering.addCoreBackground(this._responseCore,{target:i,referrer:i,priority:1}),this.closing)return;const t=i=>{this._wakeupSession.announce(i,[{key:this._core.key,length:this._core.length}])};this._wakeupSession=this.keet.protomuxWakeup.session(this._mailboxPublicKey,{discoveryKey:this._capabilities.wakeupTopic,onpeeractive:t});for(const i of this._wakeupSession.peers)i.active&&t(i);this.swarmWorker.startActiveSwarming(this._capabilities.swarmTopic),this.keet.discovery&&this.keet.discovery.announce(this._capabilities.discoveryKeyPair);try{await this._responseCore.get(0)}catch(i){if(this.closing)return;throw i}this.closing||(this.swarmWorker.stopActiveSwarming(this._capabilities.swarmTopic),this.keet.discovery&&this.keet.discovery.subscribe(this._capabilities.discoveryKeyPair.publicKey,{since:Date.now()}),await this._responseCore.close(),this.closing||this._privateProfile.engine.hintWakeup([{key:this._responseCore.key,length:1}]))}async _saveWriter(){const i=await this.keet.internalEnterLocalTransaction();try{await i.insert("@local/writers",this._writerInfo),await i.flush()}finally{await this.keet.internalExitLocalTransaction()}}async _append(){const i=await this.keet.store.createKeyPair(a(this._responseKeyPair.publicKey));this._writerInfo={keyPair:i,key:this._core.key,mailbox:this._mailboxPublicKey,responseKeyPair:this._responseKeyPair,pending:!0},this._roomInfo&&(this._writerInfo.roomKey=this._roomInfo.roomKey),await this._saveWriter(),await this._appendJoinRequest(),this.closing||0===this._core.length||(this._writerInfo.pending=!1,await this._saveWriter())}async _run(){if(this.closing)return;this.keet.onlineBoot.opened||await this.keet.onlineBoot.ready();const[i,s]=await Promise.all([this.local.get("@local/writers",{mailbox:this._mailboxPublicKey}),this.local.get("@local/identity")]),[o,n]=await Promise.all([this.local.get("@local/rooms",{roomKey:s.privateProfileKey}),this.local.get("@local/rooms-by-mailbox",{capabilities:{mailboxKeyPair:{publicKey:this._mailboxPublicKey}}})]);if(this.closing)return;if(this._roomInfo=n,this._writerInfo=i,this._identityInfo=s,this._privateProfileInfo=o,this._privateProfile=this.keet.internalOpenExistingRoom(this._identityInfo.privateProfileKey),await this._privateProfile.ready(),this.closing)return;if(this._room=this._roomInfo?this.keet.internalOpenExistingRoom(this._roomInfo.roomKey):null,this._room&&(await this._room.ready(),this.closing))return;const a=await this._privateProfile.db.get("@keet-private-id/pending-invitations",{id:this._invitationId});!this.closing&&a&&this._samePendingInvitation(a)&&(this._core=this.store.get({key:this._initiator.key}),await this._core.ready(),this.closing||this._core.writable&&(await this._append(),this._room&&this._core.length>0&&(await this._room.engine.setLocal(this._core.key),this.closing))||(this.keet.emit("pending-rooms-changed"),this.keet.blindPeering.addCoreBackground(this._core,{target:this._mailboxPublicKey,referrer:this._mailboxPublicKey,priority:1}),this._waitForResponse().catch(this.keet.onerror),this._signal=new e,this._watcher=async()=>{try{const i=await this._privateProfile.db.get("@keet-private-id/pending-invitations",{id:this._invitationId});i&&this._samePendingInvitation(i)||this._signal.notify()}catch(i){t(i)}},this._privateProfile.db.watch(this._watcher),this._watcher(),await this._signal.wait()))}};
@holepunchto/keet-core/lib/core/tasks/pairing/keys.js +1 -1
……@@ -1 +1 @@
1const t=require("hypercore-crypto"),i=require("safety-catch"),e=require("signal-promise"),{createMemberProofJoinOperation:s}=require("../../invitations"),{Task:o}=require("../task");module.exports=class extends o{constructor(t){super(t);const i=this.description.joinRoomKeys;this._keys=i.keys,this._isReadOnly=this._keys.status?.isReadOnly,this._identityInfo=null,this._writerInfo=null,this._roomInfo=null,this._roomPreferences=null,this._room=null,this._timer=null,this._signal=null,this._watcher=null,this._localWatcher=null}_close(){this._signal&&this._signal.notify(new Error("Fast join closed before resolving digest")),this._localWatcher&&this.local.unwatch(this._localWatcher),this._room&&this.keet.internalReleaseRoom(this._room),this._timer&&clearTimeout(this._timer)}async _save(){const t=await this.keet.internalEnterLocalTransaction();try{await t.insert("@local/writers",this._writerInfo),await t.flush()}finally{await this.keet.internalExitLocalTransaction()}}async _appendJoinRequest(){if(!await this.keet.internalVerifyOptimisticCore(this._core)||this.closing)return;const t={device:this.keet.internalCreateDeviceUpdate(this._identityInfo,this._core.key),member:this.keet.internalGetMemberUpdate(this._identityInfo)};let i=null;i=this._keys.initiator?this.keet.internalGetHeads(this._keys.initiator,this._room):[{key:this._keys.roomKey,length:1}];const e=s(this._keys.mailbox,t,{heads:i});await this.keet.internalAppendOptimisticOperation(this._core.key,e)}async _openRoom(){this._room=this.keet.internalOpenRoom(this._keys.roomKey,this._keys.encryptionKey,{fastForwardTo:this._keys.fastForwardTo?{key:this._keys.fastForwardTo}:null,mailbox:this._keys.mailbox,bigBatches:!!this._keys.identitySwap}),await this._room.ready()}async _doRun(){if(this._identityInfo=await this.keet.internalGetIdentityInfo(),this.closing)return;const[s,o,a]=await Promise.all([this.local.get("@local/writers",{mailbox:this._keys.mailbox}),this.local.get("@local/rooms",{roomKey:this._keys.roomKey}),this.local.get("@local/room-preferences",{roomKey:this._keys.roomKey})]);this._writerInfo=s,this._roomInfo=o,this._roomPreferences=a;let n=null;this._writerInfo?this._core=this.store.get(this._writerInfo.key):(n=t.keyPair(),this._core=this.store.get({keyPair:n})),await this._core.ready(),this.closing||(this._roomInfo&&await this._openRoom(),this.closing||(this._writerInfo||(this._writerInfo={keyPair:n,key:this._core.key,mailbox:this._keys.mailbox,responseKeyPair:null,roomKey:null}),this._writerInfo.roomKey=this._keys.roomKey,0!==this._core.length||this._isReadOnly||await this._appendJoinRequest(),this.closing||(await this._save(),this.closing||(this._room||await this._openRoom(),this._isReadOnly||await this._room.base.setLocal(this._core.key),this._signal=new e,this._localWatcher=async()=>{try{await this.local.get("@local/rooms",{roomKey:this._keys.roomKey})&&this._signal.notify()}catch(t){i(t)}},this.local.watch(this._localWatcher),this._localWatcher(),await this._signal.wait()))))}_release(){this.keet.debugRunningFastJoins--,this.keet.internalFastJoinSemaphore.signal()}async _run(){await this.keet.internalFastJoinSemaphore.wait(),this.keet.debugRunningFastJoins++,this.keet.debugMaxRunningFastJoins=Math.max(this.keet.debugMaxRunningFastJoins,this.keet.debugRunningFastJoins);try{if(this.closing)return;this._timer=setTimeout(()=>this._release(),12e4),await this._doRun()}finally{this._release()}}};
1const t=require("b4a"),i=require("safety-catch"),e=require("signal-promise"),{createMemberProofJoinOperation:s}=require("../../invitations"),{getBootOption:o}=require("../../room-engine"),{Task:n}=require("../task"),a=12e4;module.exports=class extends n{constructor(t){super(t);const i=this.description.joinRoomKeys;this._keys=i.keys,this._activeClock=i.activeClock||0,this._isReadOnly=i.isReadOnly,this._identityInfo=null,this._writerInfo=null,this._roomInfo=null,this._room=null,this._timer=null,this._signal=null,this._watcher=null,this._localWatcher=null,this._released=!1}async _close(){this._signal&&this._signal.notify(new Error("Fast join closed before resolving digest")),this._localWatcher&&this.local.unwatch(this._localWatcher),this._core&&await this._core.close(),this._room&&this.keet.internalReleaseRoom(this._room),this._timer&&clearTimeout(this._timer)}async _appendJoinRequest(){if(!await this.keet.internalVerifyOptimisticCore(this._core)||this.closing)return;const t={device:this.keet.internalCreateDeviceUpdate(this._identityInfo,this._core.key),member:this.keet.internalGetMemberUpdate(this._identityInfo)};let i=null;i=this._keys.initiator?this.keet.internalGetHeads(this._keys.initiator,this._room):[{key:this._keys.roomKey,length:1}];const e=s(this._keys.mailbox,t,{heads:i});await this.keet.internalAppendOptimisticOperation(this._core.key,e)}async _saveWriter(){this._writerInfo.pending=!1,this._activeClock&&(this._writerInfo.activeClock=this._activeClock);const t=await this.keet.internalEnterLocalTransaction();try{await t.insert("@local/writers",this._writerInfo),await t.flush()}finally{await this.keet.internalExitLocalTransaction()}}async _openRoom(){let t=o(this._keys.bootFrom,this._keys.fastForwardTo);this._roomInfo&&t?.head&&(t=null),this._room=this.keet.internalOpenRoom(this._keys.roomKey,this._keys.encryptionKey,{bootFrom:t,mailbox:this._keys.mailbox,bigBatches:!!this._keys.identitySwap}),await this._room.ready()}_isInitiator(i){const e=this._keys.initiator;return!!e&&t.equals(i.key,e.key)}_shouldRotate(t){return!(!t||this._isInitiator(t))&&(t.activeClock||0)<this._activeClock}async _doRun(){const s=await this.local.get("@local/pending-recovery");if(s?.identity&&s.privateProfileKey&&t.equals(s.privateProfileKey,this._keys.roomKey)?this._identityInfo={identity:s.identity,privateProfile:null}:this._identityInfo=await this.keet.internalGetIdentityInfo(),this.closing)return;const[o,n]=await Promise.all([this.local.get("@local/writers",{mailbox:this._keys.mailbox}),this.local.get("@local/rooms",{roomKey:this._keys.roomKey})]);this._roomInfo=n;const r=this._shouldRotate(o);if(this._writerInfo=await this.keet.internalEnsureWriter(this._keys.roomKey,this._keys.mailbox,{rotate:r,activeClock:this._activeClock}),this._core=this.store.get(this._writerInfo.key),await this._core.ready(),this.closing)return;if(this._roomInfo&&await this._openRoom(),this.closing)return;if(0!==this._core.length||this._isReadOnly||await this._appendJoinRequest(),this.closing)return;const h=this._isInitiator(this._writerInfo)&&this._writerInfo.activeClock!==this._activeClock;if(this._core.length>0&&(this._writerInfo.pending||h)&&await this._saveWriter(),this.closing)return;this._room||await this._openRoom(),this._isReadOnly||await this._room.engine.setLocal(this._core.key),this._signal=new e;const l=this._core.key;this._localWatcher=async()=>{try{const i=await this.local.get("@local/rooms",{roomKey:this._keys.roomKey});if(!i)return;if(this._isReadOnly)return void this._signal.notify();const e=i.selfDevice&&t.equals(i.selfDevice.key,l);i.status.isWritable&&e&&this._signal.notify()}catch(t){i(t)}},this.local.watch(this._localWatcher),this._localWatcher(),await this._signal.wait(a)}_release(){this._released||(this._released=!0,this.keet.debugRunningFastJoins--,this.keet.internalFastJoinSemaphore.signal())}async _run(){await this.keet.internalFastJoinSemaphore.wait(),this.keet.debugRunningFastJoins++,this.keet.debugMaxRunningFastJoins=Math.max(this.keet.debugMaxRunningFastJoins,this.keet.debugRunningFastJoins);try{if(this.closing)return;this._timer=setTimeout(()=>this._release(),a),await this._doRun()}finally{this._release()}}};
@holepunchto/keet-core/lib/core/tasks/pairing/response.js +1 -1
……@@ -1 +1 @@
1const{Task:e}=require("../task");module.exports=class extends e{constructor(e){super(e);const i=this.description.joinRoomResponse;this._keyPair=i.keyPair,this._response=i.response,this._mailbox=i.mailbox,this._core=null}async _close(){this._core&&await this._core.close()}async _run(){if(this._core=this.store.get({keyPair:this._keyPair}),await this._core.ready(),0===this._core.length){if(await this.keet.internalVerifyOptimisticCore(this._core),this.closing)return;0===this._core.length&&await this._core.append(this._response,{maxLength:1})}await this.keet.blindPeering.addCore(this._core,{target:this._mailbox,referrer:this._mailbox,priority:1}),await new Promise(e=>setTimeout(e,this.keet.internalPairingTimeout))}};
1const{Task:e}=require("../task"),{getResponseCoreManifest:i}=require("../../invitations");module.exports=class extends e{constructor(e){super(e);const i=this.description.joinRoomResponse;this._keyPair=i.keyPair,this._response=i.response,this._mailbox=i.mailbox,this._core=null}async _close(){this._core&&await this._core.close()}async _run(){if(this._core=this.store.get({keyPair:this._keyPair,manifest:i(this._keyPair.publicKey)}),await this._core.ready(),0===this._core.length){if(await this.keet.internalVerifyOptimisticCore(this._core),this.closing)return;0===this._core.length&&await this._core.append(this._response,{maxLength:1})}await this.keet.blindPeering.addCore(this._core,{target:this._mailbox,referrer:this._mailbox,priority:1}),await new Promise(e=>setTimeout(e,this.keet.internalPairingTimeout))}};
@holepunchto/keet-core/lib/core/tasks/rooms/create.js +1 -1
……@@ -1 +1 @@
1const{contract:{hyperschema:{getEnum:e}}}=require("../../../../schema/spec"),{Task:t}=require("../task"),i=require("b4a"),s=e("@keet/room-type"),o=require("../../sync/updater"),{roomsStats:a}=require("../../contract/stats/local");module.exports=class extends t{constructor(e){super(e);const t=this.description.createRoom;this._key=t.roomKey,this._mailbox=t.mailbox,this._keyPair=t.keyPair,this._genesis=t.genesis,this._fastForwardTo=t.fastForwardTo,this._encryptionKey=t.encryptionKey,this._isPrivateProfile=t.isPrivateProfile,this._room=null,this._updater=null,this._privateProfile=null}async _close(){this._updater&&await this._updater.close(),this._room&&this.keet.internalReleaseRoom(this._room),this._privateProfile&&this.keet.internalReleaseRoom(this._privateProfile)}async _save(){const e=await this.keet.internalEnterLocalTransaction();try{const t=await e.get("@local/rooms",this._updater.roomInfo);await e.insert("@local/rooms",this._updater.roomInfo),await a(e,this._updater.roomInfo,t),await e.flush()}finally{await this.keet.internalExitLocalTransaction()}}_getDmMemberKey(){if(this._genesis.digest.settings.roomType!==s.DirectMessage)return null;for(const{attestation:e}of this._genesis.initialMembers)if(!i.equals(e.memberKey,this._genesis.bootstrapDevice.attestation.memberKey))return e.memberKey}_maybeEmitEvents(){this.keet.emit("room-changed",this._room.id)}async _create(){if(await this._room.ready(),this.closing)return;let e=this._genesis.bootstrapDevice,t=this._genesis.initialMembers;if(!e){const i=await this.keet.internalGetIdentityInfo();if(this.closing)return;e=this.keet.internalCreateDeviceUpdate(i,this._room.deviceKey),t=[this.keet.internalGetMemberUpdate(i)]}await this._room.dispatch("@keet/genesis",{...this._genesis,bootstrapDevice:e,initialMembers:t}),this._updater=new o(this.keet,this._room.base.view,this._room.base,null);const i=await this._updater.run();if(!this.closing&&i&&(await this._save(),!this.closing)){if(this._privateProfile){const e=this._room.base.getSystemKey(),t={key:this._room.base.local.key,length:this._room.base.local.length};await this._privateProfile.dispatch("@keet-private-id/add-room",{roomKey:this._room.key,encryptionKey:this._room.encryptionKey,mailbox:this._mailbox,fastForwardTo:e,initiator:t,dm:this._getDmMemberKey()})}this._maybeEmitEvents()}}async _run(){if(this._room=this.keet.internalOpenRoom(this._key,this._encryptionKey,{fastForwardTo:this._fastForwardTo,keyPair:this._keyPair,mailbox:this._mailbox}),!this._isPrivateProfile){this.keet.onlineBoot.opened||await this.keet.onlineBoot.ready();const e=await this.local.get("@local/identity");this._privateProfile=this.keet.internalOpenExistingRoom(e.privateProfileKey)}await this._create()}};
1const{contract:{hyperschema:{getEnum:e}}}=require("../../../../schema/spec"),{Task:t}=require("../task"),i=require("b4a"),s=e("@keet/room-type"),o=require("../../sync/updater"),r=require("../../sync/rooms");module.exports=class extends t{constructor(e){super(e);const t=this.description.createRoom;this._key=t.roomKey,this._mailbox=t.mailbox,this._keyPair=t.keyPair,this._genesis=t.genesis,this._bootFrom=t.bootFrom,this._encryptionKey=t.encryptionKey,this._isPrivateProfile=t.isPrivateProfile,this._room=null,this._updater=null,this._privateProfile=null}async _close(){this._updater&&await this._updater.close(),this._room&&this.keet.internalReleaseRoom(this._room),this._privateProfile&&this.keet.internalReleaseRoom(this._privateProfile)}async _save(){const e=await this.keet.internalEnterLocalTransaction();try{await r(e,this._updater.roomInfo),await e.flush()}finally{await this.keet.internalExitLocalTransaction()}}_getDmMemberKey(){if(this._genesis.digest.settings.roomType!==s.DirectMessage)return null;for(const{attestation:e}of this._genesis.initialMembers)if(!i.equals(e.memberKey,this._genesis.bootstrapDevice.attestation.memberKey))return e.memberKey}_maybeEmitEvents(){this.keet.emit("room-changed",this._room.id)}async _create(){if(await this._room.ready(),this.closing)return;let e=this._genesis.bootstrapDevice,t=this._genesis.initialMembers;if(!e){const i=await this.keet.internalGetIdentityInfo();if(this.closing)return;e=this.keet.internalCreateDeviceUpdate(i,this._room.deviceKey),t=[this.keet.internalGetMemberUpdate(i)]}await this._room.dispatch("@keet/genesis",{...this._genesis,bootstrapDevice:e,initialMembers:t}),this._updater=new o(this.keet,this._room.engine.view,this._room.engine);const i=await this._updater.run();if(!this.closing&&i&&(await this._save(),!this.closing)){if(this._privateProfile){const e=await this._room.internalGetBootFrom(),t={key:this._room.engine.local.key,length:this._room.engine.local.length};await this._privateProfile.dispatch("@keet-private-id/add-room-v2",{roomKey:this._room.key,encryptionKey:this._room.encryptionKey,mailbox:this._mailbox,bootFrom:e,initiator:t,dm:this._getDmMemberKey()})}this._maybeEmitEvents()}}async _run(){if(this._room=this.keet.internalOpenRoom(this._key,this._encryptionKey,{bootFrom:this._bootFrom?{head:this._bootFrom}:null,keyPair:this._keyPair,mailbox:this._mailbox}),!this._isPrivateProfile){this.keet.onlineBoot.opened||await this.keet.onlineBoot.ready();const e=await this.local.get("@local/identity");this._privateProfile=this.keet.internalOpenExistingRoom(e.privateProfileKey)}await this._create()}};
@holepunchto/keet-core/lib/core/tasks/rooms/leave.js +1 -1
……@@ -1 +1 @@
1const{Task:i}=require("../task"),t=require("b4a");module.exports=class extends i{constructor(i){super(i);const t=this.description.leaveRoom;this._roomKey=t.roomKey,this._isGossiped=t.isGossiped,this._roomInfo=null,this._identityInfo=null,this._room=null,this._privateProfile=null}async _close(){this._room&&this.keet.internalReleaseRoom(this._room),this._privateProfile&&this.keet.internalReleaseRoom(this._privateProfile)}async _load(){this.keet.onlineBoot.opened||await this.keet.onlineBoot.ready();const[i,e]=await Promise.all([this.local.get("@local/rooms",{roomKey:this._roomKey}),this.local.get("@local/identity")]);if(this.closing||!i||!e)return!1;if(this._roomInfo=i,this._identityInfo=e,this._privateProfile=this.keet.internalOpenExistingRoom(this._identityInfo.privateProfileKey),await this._privateProfile.ready(),this.closing)return!1;if(this.discovery&&this._roomInfo){const i=this._roomInfo.capabilities.discoveryKeyPair.publicKey;this.discovery.unsubscribe(i)}if(this._room=this.keet.internalOpenExistingRoom(this._roomKey),await this._room.ready(),this.closing)return!1;let o=!1;const s=await this._privateProfile.db.find("@keet-private-id/pending-invitations").toArray();for(const i of s)t.equals(i.mailbox,this._roomInfo.capabilities.mailboxKeyPair.publicKey)&&(o=!0);return!this.closing&&!o}async _save(){const i=await this.keet.internalEnterLocalTransaction();try{await i.delete("@local/writers",{mailbox:this._roomInfo.capabilities.mailboxKeyPair.publicKey}),await i.flush()}finally{await this.keet.internalExitLocalTransaction()}await this.files.clearAllFiles(this._roomKey,{leaving:!0})}async _run(){const i=await this._load();!this.closing&&i&&await this._save()}};
1const{Task:i}=require("../task"),t=require("b4a");module.exports=class extends i{constructor(i){super(i);const t=this.description.leaveRoom;this._roomKey=t.roomKey,this._isGossiped=t.isGossiped,this._roomInfo=null,this._identityInfo=null,this._privateProfile=null}async _close(){this._privateProfile&&this.keet.internalReleaseRoom(this._privateProfile)}async _load(){this.keet.onlineBoot.opened||await this.keet.onlineBoot.ready();const[i,e]=await Promise.all([this.local.get("@local/rooms",{roomKey:this._roomKey}),this.local.get("@local/identity")]);if(this.closing||!i||!e)return!1;if(this._roomInfo=i,this._identityInfo=e,this._privateProfile=this.keet.internalOpenExistingRoom(this._identityInfo.privateProfileKey),await this._privateProfile.ready(),this.closing)return!1;let o=!1;const s=await this._privateProfile.db.find("@keet-private-id/pending-invitations").toArray();for(const i of s)t.equals(i.mailbox,this._roomInfo.capabilities.mailboxKeyPair.publicKey)&&(o=!0);return!this.closing&&!o}async _run(){const i=await this._load();if(!this.closing&&i){if(this.keet.discovery&&this._roomInfo){const i=this._roomInfo.capabilities.discoveryKeyPair.publicKey;this.keet.discovery.unsubscribe(i)}await this.files.clearAllFiles(this._roomKey,{leaving:!0})}}};
@holepunchto/keet-core/lib/core/tasks/task.js +1 -1
……@@ -1 +1 @@
1const t=require("ready-resource"),i=require("hypercore-id-encoding");class e extends t{constructor(t){super(),this.handle=t,this.description=t.description,this.type=this.description.type,this.scope=this.description.discoveryKey,this.priority=this.description.priority,this.keet=this.handle.manager.keet,this.store=this.keet.store,this.local=this.keet.local,this.swarm=this.keet.swarm,this.swarmWorker=this.keet.swarmWorker,this.files=this.keet.files,this._running=null}_open(){this._running=this._run(),this._running.catch(this.keet.onerror)}get id(){return this._id||(this._id=e.getId(this.description)),this._id}async run(){this.opened||await this.ready(),await this._running,await this.close()}async _run(){}async _close(){}static getId(t){return`${t.timestamp}:${i.encode(t.discoveryKey)}:${t.type}`}}module.exports={Task:e};
1const t=require("ready-resource"),e=require("hypercore-id-encoding");class i extends t{constructor(t){super(),this.handle=t,this.description=t.description,this.type=this.description.type,this.scope=this.description.discoveryKey,this.priority=this.description.priority,this.keet=this.handle.manager.keet,this.store=this.keet.store,this.local=this.keet.local,this.swarm=this.keet.swarm,this.swarmWorker=this.keet.swarmWorker,this.files=this.keet.files,this._running=null}_open(){this._running=this._run(),this._running.catch(this.keet.onerror).finally(()=>this.close().catch(this.keet.onerror))}get id(){return this._id||(this._id=i.getId(this.description)),this._id}async run(){this.opened||await this.ready(),await this._running}async _run(){}async _close(){}static getId(t){return`${t.timestamp}:${e.encode(t.discoveryKey)}:${t.type}`}}module.exports={Task:i};
@holepunchto/keet-core/lib/errors/index.js +1 -1
……@@ -1 +1 @@
1const t=require("ready-resource"),e=require("scope-lock"),{KeetContractError:r}=require("../core/contract/errors"),s={INVALID_INVITATION_TYPE:"INVALID_INVITATION_TYPE",UNKNOWN_EXPIRATION:"UNKNOWN_EXPIRATION",INVALID_INVITE:"INVALID_INVITE",INVALID_CONTACT_INFO:"INVALID_CONTACT_INFO",MODERATORS_ONLY:"MODERATORS_ONLY",UNEXPECTED_ERROR:"UNEXPECTED_ERROR",INVALID_BUILD_TYPE:"INVALID_BUILD_TYPE",KEET_IS_CLOSING:"KEET_IS_CLOSING",INVALID_SETTINGS_KEY:"INVALID_SETTINGS_KEY",INVALID_ROOM_TYPE:"INVALID_ROOM_TYPE",UPDATE_DEVICE_FAILED:"UPDATE_DEVICE_FAILED",CALL_DISABLED:"CALL_DISABLED"};class i extends Error{constructor(t,e,r={},s=this.constructor){super(e?`${t}: ${e}`:t),this.isKeetError=!0,this.code=t,this.details=r,this.timestamp=Date.now(),Error.captureStackTrace&&Error.captureStackTrace(this,s)}static isKeetError(t){return t?.isKeetError}static fromError(t,e={}){const r=function(t,e){return t.cause?.code?t.cause.code:e.prefix?e.prefix:e.roomKey?"UNEXPECTED_ROOM_ERROR":"UNEXPECTED_ERROR"}(t,e);return t.code=r,t.message=`${r}: ${t.message}`,t.timestamp=Date.now(),t.stack||(t.stack=""),t.details={},e.roomKey&&(t.details.roomKey=e.roomKey),e.coreKey&&(t.details.coreKey=e.coreKey),t}static INVALID_INVITATION_TYPE(t="Attempting to use a device sync invitation as a room invitation",e={}){return new i(s.INVALID_INVITATION_TYPE,t,e,i.INVALID_INVITATION_TYPE)}static UNKNOWN_EXPIRATION(t="Unknown expiration",e={}){return new i(s.UNKNOWN_EXPIRATION,t,e,i.UNKNOWN_EXPIRATION)}static INVALID_INVITE(t="Invalid invite",e={}){return new i(s.INVALID_INVITE,t,e,i.INVALID_INVITE)}static INVALID_CONTACT_INFO(t="Invalid contact info",e={}){return new i(s.INVALID_CONTACT_INFO,t,e,i.INVALID_CONTACT_INFO)}static MODERATORS_ONLY(t="",e={}){return new i(s.MODERATORS_ONLY,t,e,i.MODERATORS_ONLY)}static UNEXPECTED_ERROR(t="",e={}){return new i(s.UNEXPECTED_ERROR,t,e,i.UNEXPECTED_ERROR)}static INVALID_BUILD_TYPE(t="",e={}){return new i(s.INVALID_BUILD_TYPE,t,e,i.INVALID_BUILD_TYPE)}static KEET_IS_CLOSING(t="",e={}){return new i(s.KEET_IS_CLOSING,t,e,i.KEET_IS_CLOSING)}static INVALID_SETTINGS_KEY(t="Invalid settings key",e={}){return new i(s.INVALID_SETTINGS_KEY,t,e,i.INVALID_SETTINGS_KEY)}static INVALID_ROOM_TYPE(t="Invalid room type",e={}){return new i(s.INVALID_ROOM_TYPE,t,e,i.INVALID_ROOM_TYPE)}static UPDATE_DEVICE_FAILED(t="Failed to update device",e={}){return new i(s.UPDATE_DEVICE_FAILED,t,e,i.UPDATE_DEVICE_FAILED)}static CALL_DISABLED(t="",e={}){return new i(s.CALL_DISABLED,t,e,i.CALL_DISABLED)}}module.exports={ERRORS:s,KeetErrorV2:i,KeetErrorManager:class extends t{constructor(t,r){super(),this.keet=t,this.errors=[],this._flushLock=new e({debounce:!0}),this._flushInterval=r.errorFlushInterval||1e4,this._flushTimerDisabled=null===r.errorFlushTimer,this._flushTimer=null,this._gcMaxAge=r.errorGcMaxAge||12096e5,this.ready().catch(t.onerror)}async _open(){await this.keet.ready(),await this._gc()}async _close(){this._flushTimerDisabled=!0,this._resetTimeout(),await this._flush()}add(t){this.errors.push(t),this.keet.emit("caught-error",t),this._flushTimerDisabled||this._scheduleFlush()}normalize(t,e={}){return i.isKeetError(t)?t:r.isContractError(t)?(t.timestamp=Date.now(),t):i.fromError(t,e)}_scheduleFlush(){this._flushTimer||(this._flushTimer=setTimeout(this._flush.bind(this),this._flushInterval))}_resetTimeout(){this._flushTimer&&(clearTimeout(this._flushTimer),this._flushTimer=null)}debugPauseFlush(){this._resetTimeout()}debugResumeFlush(){this._scheduleFlush()}async _flush(){if(!this.keet.readOnly&&await this._flushLock.lock())try{const t=await this.keet.internalEnterLocalTransaction();try{const e=[...this.errors];this.errors=[];for(const r of e)await t.insert("@local/errors",{code:r.code,message:r.message,stack:r.stack,details:r.details,timestamp:r.timestamp});await t.flush()}finally{await this.keet.internalExitLocalTransaction()}}finally{this._flushLock.unlock(),this._resetTimeout()}}async _gc(){if(this.closing)return;const t=Date.now()-this._gcMaxAge,e=await this.keet.local.find("@local/errors",{lte:{timestamp:t}}).toArray(),r=await this.keet.internalEnterLocalTransaction();try{for(const t of e)await r.delete("@local/errors",t);await r.flush()}finally{await this.keet.internalExitLocalTransaction()}}}};
1const t=require("ready-resource"),e=require("scope-lock"),{KeetContractError:r}=require("../core/contract/errors"),_={INVALID_INVITATION_TYPE:"INVALID_INVITATION_TYPE",UNKNOWN_EXPIRATION:"UNKNOWN_EXPIRATION",INVALID_INVITE:"INVALID_INVITE",INVALID_CONTACT_INFO:"INVALID_CONTACT_INFO",MODERATORS_ONLY:"MODERATORS_ONLY",UNEXPECTED_ERROR:"UNEXPECTED_ERROR",INVALID_BUILD_TYPE:"INVALID_BUILD_TYPE",KEET_IS_CLOSING:"KEET_IS_CLOSING",INVALID_SETTINGS_KEY:"INVALID_SETTINGS_KEY",INVALID_ROOM_TYPE:"INVALID_ROOM_TYPE",INVALID_FILE_PATH:"INVALID_FILE_PATH",ROOM_DISABLED:"ROOM_DISABLED",UPDATE_DEVICE_FAILED:"UPDATE_DEVICE_FAILED",CALL_DISABLED:"CALL_DISABLED",CALL_SWARM_ACTIVE:"CALL_SWARM_ACTIVE",CALL_SWARM_SUSPENDED:"CALL_SWARM_SUSPENDED",CALL_NOT_ACTIVE:"CALL_NOT_ACTIVE",CALL_DISPATCH_REJECTED:"CALL_DISPATCH_REJECTED"};class s extends Error{constructor(t,e,r={},_){super(e?`${t}: ${e}`:t),this.isKeetError=!0,this.code=t,this.details=r,this.timestamp=Date.now(),Error.captureStackTrace&&Error.captureStackTrace(this,_??this.constructor)}static isKeetError(t){return t?.isKeetError}static fromError(t,e={}){if(s.isKeetError(t))return t;const r=function(t,e){return t.cause?.code?t.cause.code:e.prefix?e.prefix:e.roomKey?"UNEXPECTED_ROOM_ERROR":"UNEXPECTED_ERROR"}(t,e),_={};e.roomKey&&(_.roomKey=e.roomKey),e.coreKey&&(_.coreKey=e.coreKey);const I=new s(r,t.message,_);return I.cause=t,I.stack=t.stack,I}static INVALID_INVITATION_TYPE(t="Attempting to use a device sync invitation as a room invitation",e={}){return new s(_.INVALID_INVITATION_TYPE,t,e,s.INVALID_INVITATION_TYPE)}static UNKNOWN_EXPIRATION(t="Unknown expiration",e={}){return new s(_.UNKNOWN_EXPIRATION,t,e,s.UNKNOWN_EXPIRATION)}static INVALID_INVITE(t="Invalid invite",e={}){return new s(_.INVALID_INVITE,t,e,s.INVALID_INVITE)}static INVALID_CONTACT_INFO(t="Invalid contact info",e={}){return new s(_.INVALID_CONTACT_INFO,t,e,s.INVALID_CONTACT_INFO)}static MODERATORS_ONLY(t="",e={}){return new s(_.MODERATORS_ONLY,t,e,s.MODERATORS_ONLY)}static UNEXPECTED_ERROR(t="",e={}){return new s(_.UNEXPECTED_ERROR,t,e,s.UNEXPECTED_ERROR)}static INVALID_BUILD_TYPE(t="",e={}){return new s(_.INVALID_BUILD_TYPE,t,e,s.INVALID_BUILD_TYPE)}static KEET_IS_CLOSING(t="",e={}){return new s(_.KEET_IS_CLOSING,t,e,s.KEET_IS_CLOSING)}static INVALID_SETTINGS_KEY(t="Invalid settings key",e={}){return new s(_.INVALID_SETTINGS_KEY,t,e,s.INVALID_SETTINGS_KEY)}static INVALID_ROOM_TYPE(t="Invalid room type",e={}){return new s(_.INVALID_ROOM_TYPE,t,e,s.INVALID_ROOM_TYPE)}static INVALID_FILE_PATH(t="Invalid file path",e={}){return new s(_.INVALID_FILE_PATH,t,e,s.INVALID_FILE_PATH)}static ROOM_DISABLED(t="Room is disabled",e={}){return new s(_.ROOM_DISABLED,t,e,s.ROOM_DISABLED)}static UPDATE_DEVICE_FAILED(t="Failed to update device",e={}){return new s(_.UPDATE_DEVICE_FAILED,t,e,s.UPDATE_DEVICE_FAILED)}static CALL_DISABLED(t="",e={}){return new s(_.CALL_DISABLED,t,e,s.CALL_DISABLED)}static CALL_SWARM_ACTIVE(t="",e={}){return new s(_.CALL_SWARM_ACTIVE,t,e,s.CALL_SWARM_ACTIVE)}static CALL_SWARM_SUSPENDED(t="",e={}){return new s(_.CALL_SWARM_SUSPENDED,t,e,s.CALL_SWARM_SUSPENDED)}static CALL_NOT_ACTIVE(t="",e={}){return new s(_.CALL_NOT_ACTIVE,t,e,s.CALL_NOT_ACTIVE)}static CALL_DISPATCH_REJECTED(t="",e={}){return new s(_.CALL_DISPATCH_REJECTED,t,e,s.CALL_DISPATCH_REJECTED)}}module.exports={ERRORS:_,KeetErrorV2:s,KeetErrorManager:class extends t{constructor(t,r){super(),this.keet=t,this.errors=[],this._flushLock=new e({debounce:!0}),this._flushInterval=r.errorFlushInterval||1e4,this._flushTimerDisabled=null===r.errorFlushTimer,this._flushTimer=null,this._gcMaxAge=r.errorGcMaxAge||12096e5,this.ready().catch(t.onerror)}async _open(){await this.keet.ready(),await this._gc()}async _close(){this._flushTimerDisabled=!0,this._resetTimeout(),await this._flush()}add(t){this.errors.push(t),this.keet.emit("caught-error",t),this._flushTimerDisabled||this._scheduleFlush()}normalize(t,e={}){return s.isKeetError(t)?t:r.isContractError(t)?(t.timestamp=Date.now(),t):s.fromError(t,e)}_scheduleFlush(){this._flushTimer||(this._flushTimer=setTimeout(this._flush.bind(this),this._flushInterval))}_resetTimeout(){this._flushTimer&&(clearTimeout(this._flushTimer),this._flushTimer=null)}debugPauseFlush(){this._resetTimeout()}debugResumeFlush(){this._scheduleFlush()}async _flush(){if(!this.keet.readOnly&&await this._flushLock.lock())try{const t=await this.keet.internalEnterLocalTransaction();try{const e=[...this.errors];this.errors=[];for(const r of e)await t.insert("@local/errors",{code:r.code,message:r.message,stack:r.stack,details:r.details,timestamp:r.timestamp});await t.flush()}finally{await this.keet.internalExitLocalTransaction()}}finally{this._flushLock.unlock(),this._resetTimeout()}}async _gc(){if(this.closing)return;const t=Date.now()-this._gcMaxAge,e=await this.keet.local.find("@local/errors",{lte:{timestamp:t}}).toArray(),r=await this.keet.internalEnterLocalTransaction();try{for(const t of e)await r.delete("@local/errors",t);await r.flush()}finally{await this.keet.internalExitLocalTransaction()}}}};
@holepunchto/keet-core/lib/rpc/server.js +1 -1
……@@ -1 +1 @@
1const e=require("tiny-buffer-rpc/any"),{pipeline:r}=require("streamx");function s(){}module.exports=function(t,o){o.register(0,{request:e,response:e,onrequest:e=>t.api.swarm.ready(...e)}),o.register(1,{request:e,response:e,onrequest:e=>t.api.core.getVersion(...e)}),o.register(2,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeRoomVersion(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(3,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeForceUpdates(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(4,{request:e,response:e,onrequest:e=>t.api.core.upgradeRoom(...e)}),o.register(5,{request:e,response:e,onrequest:e=>t.api.core.updateUserSettings(...e)}),o.register(6,{request:e,response:e,onrequest:e=>t.api.core.getIdentity(...e)}),o.register(7,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeIdentity(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(8,{request:e,response:e,onrequest:e=>t.api.core.generateIdentity(...e)}),o.register(9,{request:e,response:e,onrequest:e=>t.api.core.restoreIdentity(...e)}),o.register(10,{request:e,response:e,onrequest:e=>t.api.core.getRecoveryPhrase(...e)}),o.register(11,{request:e,response:e,onrequest:e=>t.api.core.getEncryptedRecoveryPhrase(...e)}),o.register(12,{request:e,response:e,onrequest:e=>t.api.core.decryptEncryptedRecoveryPhrase(...e)}),o.register(13,{request:e,response:e,onrequest:e=>t.api.core.freeRecoveryPhrase(...e)}),o.register(14,{request:e,response:e,onrequest:e=>t.api.core.confirmRecoveryPhrase(...e)}),o.register(15,{request:e,response:e,onrequest:e=>t.api.core.storeRecoveryPhrase(...e)}),o.register(16,{request:e,response:e,onrequest:e=>t.api.core.confirmIdentity(...e)}),o.register(17,{request:e,response:e,onrequest:e=>t.api.core.confirmPairingRequest(...e)}),o.register(18,{request:e,response:e,dedup:!1,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeIdentityPairingRequests(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(19,{request:e,response:e,onrequest:e=>t.api.core.updateIdentityProfile(...e)}),o.register(20,{request:e,response:e,onrequest:e=>t.api.core.updateIdentityDevice(...e)}),o.register(21,{request:e,response:e,onrequest:e=>t.api.core.removeIdentityDevice(...e)}),o.register(22,{request:e,response:e,onrequest:e=>t.api.core.getLinkInfo(...e)}),o.register(23,{request:e,response:e,onrequest:e=>t.api.core.startPairingIdentity(...e)}),o.register(24,{request:e,response:e,onrequest:e=>t.api.core.pairIdentity(...e)}),o.register(25,{request:e,response:e,onrequest:e=>t.api.core.createRoom(...e)}),o.register(26,{request:e,response:e,onrequest:e=>t.api.core.pairRoom(...e)}),o.register(27,{request:e,response:e,onrequest:e=>t.api.core.leaveRoom(...e)}),o.register(28,{request:e,response:e,onrequest:e=>t.api.core.startPairingRoom(...e)}),o.register(29,{request:e,response:e,onrequest:e=>t.api.core.stopPairingRoom(...e)}),o.register(30,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribePendingRooms(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(31,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribePushNotificationChanges(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(32,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeActivateRoom(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(33,{request:e,response:e,onrequest:e=>t.api.core.getRoomKeys(...e)}),o.register(34,{request:e,response:e,onrequest:e=>t.api.core.resyncPrivateProfile(...e)}),o.register(35,{request:e,response:e,onrequest:e=>t.api.core.getTipSize(...e)}),o.register(36,{request:e,response:e,onrequest:e=>t.api.core.bookmark(...e)}),o.register(37,{request:e,response:e,onrequest:e=>t.api.core.unbookmark(...e)}),o.register(38,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeBookmarks(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(39,{request:e,response:e,onrequest:e=>t.api.core.getRoomInfo(...e)}),o.register(40,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeRoomInfo(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(41,{request:e,response:e,onrequest:e=>t.api.core.searchRooms(...e)}),o.register(42,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.searchPublicRooms(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(43,{request:e,response:e,onrequest:e=>t.api.core.getRecentRooms(...e)}),o.register(44,{request:e,response:e,onrequest:e=>t.api.core.getLocalRoomMetadata(...e)}),o.register(45,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeRecentRooms(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(46,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeFavoriteRooms(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(47,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeUnreadActivity(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(48,{request:e,response:e,onrequest:e=>t.api.core.setRoomUnread(...e)}),o.register(49,{request:e,response:e,onrequest:e=>t.api.core.bumpRoomPriority(...e)}),o.register(50,{request:e,response:e,onrequest:e=>t.api.core.addDevice(...e)}),o.register(51,{request:e,response:e,onrequest:e=>t.api.core.removeDevice(...e)}),o.register(52,{request:e,response:e,onrequest:e=>t.api.core.getDevice(...e)}),o.register(53,{request:e,response:e,onrequest:e=>t.api.core.getDevices(...e)}),o.register(54,{request:e,response:e,onrequest:e=>t.api.core.getDevicesByMemberId(...e)}),o.register(55,{request:e,response:e,onrequest:e=>t.api.core.getCurrentDeviceId(...e)}),o.register(56,{request:e,response:e,onrequest:e=>t.api.core.moveIndexer(...e)}),o.register(57,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeDevice(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(58,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeDevices(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(59,{request:e,response:e,onrequest:e=>t.api.core.createIdentityInvitation(...e)}),o.register(60,{request:e,response:e,onrequest:e=>t.api.core.createInvitation(...e)}),o.register(61,{request:e,response:e,onrequest:e=>t.api.core.updateMember(...e)}),o.register(62,{request:e,response:e,onrequest:e=>t.api.core.isMemberMuted(...e)}),o.register(63,{request:e,response:e,onrequest:e=>t.api.core.getMember(...e)}),o.register(64,{request:e,response:e,onrequest:e=>t.api.core.removeMember(...e)}),o.register(65,{request:e,response:e,onrequest:e=>t.api.core.getMembers(...e)}),o.register(66,{request:e,response:e,onrequest:e=>t.api.core.getActiveMembers(...e)}),o.register(67,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeActiveMembers(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(68,{request:e,response:e,onrequest:e=>t.api.core.getModerators(...e)}),o.register(69,{request:e,response:e,onrequest:e=>t.api.core.getMemberCount(...e)}),o.register(70,{request:e,response:e,onrequest:e=>t.api.core.getMemberForDevice(...e)}),o.register(71,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeMemberCount(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(72,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeMember(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(73,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeMembers(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(74,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeModerators(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(75,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeMemberForDevice(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(76,{request:e,response:e,onrequest:e=>t.api.core.changeMemberRole(...e)}),o.register(77,{request:e,response:e,onrequest:e=>t.api.core.muteMember(...e)}),o.register(78,{request:e,response:e,onrequest:e=>t.api.core.unmuteMember(...e)}),o.register(79,{request:e,response:e,onrequest:e=>t.api.core.getSearchMembers(...e)}),o.register(80,{request:e,response:e,onrequest:e=>t.api.core.getPushNotificationMembers(...e)}),o.register(81,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeSearchMembers(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(82,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribePushNotificationMembers(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(83,{request:e,response:e,onrequest:e=>t.api.core.addContact(...e)}),o.register(84,{request:e,response:e,onrequest:e=>t.api.core.setContactAlias(...e)}),o.register(85,{request:e,response:e,onrequest:e=>t.api.core.removeContact(...e)}),o.register(86,{request:e,response:e,onrequest:e=>t.api.core.getActiveContacts(...e)}),o.register(87,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeActiveContacts(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(88,{request:e,response:e,onrequest:e=>t.api.core.getContactInfo(...e)}),o.register(89,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeContactInfo(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(90,{request:e,response:e,onrequest:e=>t.api.core.getSelfContactInfo(...e)}),o.register(91,{request:e,response:e,onrequest:e=>t.api.core.blockMember(...e)}),o.register(92,{request:e,response:e,onrequest:e=>t.api.core.unblockMember(...e)}),o.register(93,{request:e,response:e,onrequest:e=>t.api.core.getBlockedMembers(...e)}),o.register(94,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeBlockedMembers(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(95,{request:e,response:e,onrequest:e=>t.api.core.getConnectedMembers(...e)}),o.register(96,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeConnectedMembers(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(97,{request:e,response:e,onrequest:e=>t.api.core.updateConfig(...e)}),o.register(98,{request:e,response:e,onrequest:e=>t.api.core.getConfig(...e)}),o.register(99,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeConfig(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(100,{request:e,response:e,onrequest:e=>t.api.core.updateRoomSettings(...e)}),o.register(101,{request:e,response:e,onrequest:e=>t.api.core.disableMembershipEvents(...e)}),o.register(102,{request:e,response:e,onrequest:e=>t.api.core.enableMembershipEvents(...e)}),o.register(103,{request:e,response:e,onrequest:e=>t.api.core.addChatMessage(...e)}),o.register(104,{request:e,response:e,onrequest:e=>t.api.core.updateChatMessage(...e)}),o.register(105,{request:e,response:e,onrequest:e=>t.api.core.removeChatMessage(...e)}),o.register(106,{request:e,response:e,onrequest:e=>t.api.core.forwardChatMessage(...e)}),o.register(107,{request:e,response:e,onrequest:e=>t.api.core.pinChatMessage(...e)}),o.register(108,{request:e,response:e,onrequest:e=>t.api.core.unpinChatMessage(...e)}),o.register(109,{request:e,response:e,onrequest:e=>t.api.core.startCall(...e)}),o.register(110,{request:e,response:e,onrequest:e=>t.api.core.joinCall(...e)}),o.register(111,{request:e,response:e,onrequest:e=>t.api.core.leaveCall(...e)}),o.register(112,{request:e,response:e,onrequest:e=>t.api.core.endCall(...e)}),o.register(113,{request:e,response:e,onrequest:e=>t.api.core.addCallStream(...e)}),o.register(114,{request:e,response:e,onrequest:e=>t.api.core.removeCallStream(...e)}),o.register(115,{request:e,response:e,onrequest:e=>t.api.core.startCallRecording(...e)}),o.register(116,{request:e,response:e,onrequest:e=>t.api.core.stopCallRecording(...e)}),o.register(117,{request:e,response:e,onrequest:e=>t.api.core.getActiveCalls(...e)}),o.register(118,{request:e,response:e,onrequest:e=>t.api.core.getCalls(...e)}),o.register(119,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeActiveCalls(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(120,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeCalls(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(121,{request:e,response:e,onrequest:e=>t.api.core.addCallStartedEvent(...e)}),o.register(122,{request:e,response:e,onrequest:e=>t.api.core.addCallHangupEvent(...e)}),o.register(123,{request:e,response:e,onrequest:e=>t.api.core.addCallMissedEvent(...e)}),o.register(124,{request:e,response:e,onrequest:e=>t.api.core.addLocationSharedEvent(...e)}),o.register(125,{request:e,response:e,onrequest:e=>t.api.core.addRoomAvatarChangedEvent(...e)}),o.register(126,{request:e,response:e,onrequest:e=>t.api.core.addEvent(...e)}),o.register(127,{request:e,response:e,onrequest:e=>t.api.core.removeEvent(...e)}),o.register(128,{request:e,response:e,onrequest:e=>t.api.core.getChatMessage(...e)}),o.register(129,{request:e,response:e,onrequest:e=>t.api.core.getChatMessageById(...e)}),o.register(130,{request:e,response:e,onrequest:e=>t.api.core.getChatMessages(...e)}),o.register(131,{request:e,response:e,onrequest:e=>t.api.core.getPinnedChatMessages(...e)}),o.register(132,{request:e,response:e,onrequest:e=>t.api.core.getChatLength(...e)}),o.register(133,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeChatMessages(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(134,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeChatLength(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(135,{request:e,response:e,onrequest:e=>t.api.core.searchChatMessages(...e)}),o.register(136,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.createChatSearchStream(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(137,{request:e,response:e,onrequest:e=>t.api.core.sendDMFromContact(...e)}),o.register(138,{request:e,response:e,onrequest:e=>t.api.core.sendDMRequest(...e)}),o.register(139,{request:e,response:e,onrequest:e=>t.api.core.sendInvitations(...e)}),o.register(140,{request:e,response:e,onrequest:e=>t.api.core.updatePrivateMailboxRecord(...e)}),o.register(141,{request:e,response:e,onrequest:e=>t.api.core.getPrivateMailboxRecords(...e)}),o.register(142,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribePrivateMailbox(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(143,{request:e,response:e,onrequest:e=>t.api.core.getSentPrivateMailboxRecords(...e)}),o.register(144,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeSentPrivateMailbox(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(145,{request:e,response:e,onrequest:e=>t.api.core.getDmByMemberId(...e)}),o.register(146,{request:e,response:e,onrequest:e=>t.api.core.getDmRequestsByStatus(...e)}),o.register(147,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeDmRequestsByStatus(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(148,{request:e,response:e,onrequest:e=>t.api.core.acceptDmRequest(...e)}),o.register(149,{request:e,response:e,onrequest:e=>t.api.core.rejectDmRequest(...e)}),o.register(150,{request:e,response:e,onrequest:e=>t.api.core.addReaction(...e)}),o.register(151,{request:e,response:e,onrequest:e=>t.api.core.removeReaction(...e)}),o.register(152,{request:e,response:e,onrequest:e=>t.api.core.getLatestReactions(...e)}),o.register(153,{request:e,response:e,onrequest:e=>t.api.core.getReactions(...e)}),o.register(154,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeReactions(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(155,{request:e,response:e,onrequest:e=>t.api.core.addChatReport(...e)}),o.register(156,{request:e,response:e,onrequest:e=>t.api.core.removeChatReport(...e)}),o.register(157,{request:e,response:e,onrequest:e=>t.api.core.dismissChatReports(...e)}),o.register(158,{request:e,response:e,onrequest:e=>t.api.core.reportMember(...e)}),o.register(159,{request:e,response:e,onrequest:e=>t.api.core.getReportedMembers(...e)}),o.register(160,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeReportedMembers(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(161,{request:e,response:e,onrequest:e=>t.api.core.getReportedMessages(...e)}),o.register(162,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeReportedMessages(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(163,{request:e,response:e,onrequest:e=>t.api.core.addFileBlob(...e)}),o.register(164,{request:e,response:e,onrequest:e=>t.api.core.addFile(...e)}),o.register(165,{request:e,response:e,onrequest:e=>t.api.core.saveFileBlob(...e)}),o.register(166,{request:e,response:e,onrequest:e=>t.api.core.saveFile(...e)}),o.register(167,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeAddFile(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(168,{request:e,response:e,onrequest:e=>t.api.core.sendFile(...e)}),o.register(169,{request:e,response:e,onrequest:e=>t.api.core.removeFile(...e)}),o.register(170,{request:e,response:e,onrequest:e=>t.api.core.refreshFileLinks(...e)}),o.register(171,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeFileInfo(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(172,{request:e,response:e,onrequest:e=>t.api.core.clearAllFiles(...e)}),o.register(173,{request:e,response:e,onrequest:e=>t.api.core.getFileEntry(...e)}),o.register(174,{request:e,response:e,onrequest:e=>t.api.core.getLocalFiles(...e)}),o.register(175,{request:e,response:e,onrequest:e=>t.api.core.getFiles(...e)}),o.register(176,{request:e,response:e,onrequest:e=>t.api.core.startDownload(...e)}),o.register(177,{request:e,response:e,onrequest:e=>t.api.core.cancelDownload(...e)}),o.register(178,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.readFileStream(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(179,{request:e,response:e,onrequest:e=>t.api.core.saveToDisk(...e)}),o.register(180,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeSaveToDisk(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(181,{request:e,response:e,onrequest:e=>t.api.core.clearFile(...e)}),o.register(182,{request:e,response:e,onrequest:e=>t.api.core.unclearFile(...e)}),o.register(183,{request:e,response:e,onrequest:e=>t.api.core.getFileCleared(...e)}),o.register(184,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeFileCleared(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(185,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeFiles(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(186,{request:e,response:e,onrequest:e=>t.api.core.getStats(...e)}),o.register(187,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeProgress(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(188,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeSystemUpdateRequest(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(189,{request:e,response:e,onrequest:e=>t.api.core.lookupUsername(...e)}),o.register(190,{request:e,response:e,onrequest:e=>t.api.core.lookupUserByMemberId(...e)}),o.register(191,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeUsername(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(192,{request:e,response:e,onrequest:e=>t.api.core.registerUsername(...e)}),o.register(193,{request:e,response:e,onrequest:e=>t.api.core.updateUsername(...e)}),o.register(194,{request:e,response:e,onrequest:e=>t.api.core.searchUsername(...e)}),o.register(195,{request:e,response:e,onrequest:e=>t.api.core.getReservationsByKey(...e)}),o.register(196,{request:e,response:e,onrequest:e=>t.api.core.checkUsername(...e)}),o.register(197,{request:e,response:e,onrequest:e=>t.api.core.updateRoomPreferences(...e)}),o.register(198,{request:e,response:e,onrequest:e=>t.api.core.getRoomPreferences(...e)}),o.register(199,{request:e,response:e,onrequest:e=>t.api.core.audit(...e)}),o.register(200,{request:e,response:e,onrequest:e=>t.api.core.close(...e)}),o.register(201,{request:e,response:e,onrequest:e=>t.api.core.suspend(...e)}),o.register(202,{request:e,response:e,onrequest:e=>t.api.core.resume(...e)}),o.register(203,{request:e,response:e,onrequest:e=>t.api.core.getDebugFlags(...e)}),o.register(204,{request:e,response:e,onrequest:e=>t.api.core.updateDebugFlag(...e)}),o.register(205,{request:e,response:e,onrequest:e=>t.api.core.repair(...e)}),o.register(206,{request:e,response:e,onrequest:e=>t.api.core.rotateWriter(...e)}),o.register(207,{request:e,response:e,onrequest:e=>t.api.core.getRoomStats(...e)}),o.register(208,{request:e,response:e,onrequest:e=>t.api.core.compact(...e)}),o.register(209,{request:e,response:e,onrequest:e=>t.api.core.setUnread(...e)}),o.register(210,{request:e,response:e,onrequest:e=>t.api.core.getUnread(...e)}),o.register(211,{request:e,response:e,onrequest:e=>t.api.core.getUnreadAnchor(...e)}),o.register(212,{request:e,response:e,onrequest:e=>t.api.core.setUnreadAnchor(...e)}),o.register(213,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeUnreadAnchor(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(214,{request:e,response:e,onrequest:e=>t.api.core.updateTypingIndicator(...e)}),o.register(215,{request:e,response:e,onrequest:e=>t.api.core.getTypingIndicator(...e)}),o.register(216,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeTypingIndicator(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(217,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeSentLength(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(218,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.createErrorStream(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(219,{request:e,response:e,onrequest:e=>t.api.core.boot(...e)}),o.register(220,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeErrors(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(221,{request:e,response:e,onrequest:e=>t.api.core.setCallRingingId(...e)}),o.register(222,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeNotifications(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(223,{request:e,response:e,onrequest:e=>t.api.core.getDHTSettings(...e)}),o.register(224,{request:e,response:e,onrequest:e=>t.api.core.updateDHTSettings(...e)}),o.register(225,{request:e,response:e,onrequest:e=>t.api.core.getSwarmSettings(...e)}),o.register(226,{request:e,response:e,onrequest:e=>t.api.core.updateSwarmSettings(...e)}),o.register(227,{request:e,response:e,onrequest:e=>t.api.core.setRoomFavorite(...e)}),o.register(228,{request:e,response:e,onrequest:e=>t.api.core.clearOldFiles(...e)}),o.register(229,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.preferences.subscribe(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(230,{request:e,response:e,onrequest:e=>t.api.preferences.update(...e)}),o.register(231,{request:e,response:e,onrequest:e=>t.api.preferences.query(...e)}),o.register(232,{request:e,response:e,onrequest:e=>t.api.call.authorize(...e)}),o.register(233,{request:e,response:e,onrequest:e=>t.api.call.deauthorize(...e)}),o.register(234,{request:e,response:e,onrequest:e=>t.api.call.joinPeer(...e)}),o.register(235,{request:e,response:e,onrequest:e=>t.api.call.leavePeer(...e)}),o.register(236,{request:e,response:e,onrequest:e=>t.api.call.requestTrack(...e)}),o.register(237,{request:e,response:e,onrequest:e=>t.api.call.unrequestTrack(...e)}),o.register(238,{request:e,response:e,onrequest:e=>t.api.call.signalMedia(...e)}),o.register(239,{request:e,response:e,onrequest:e=>t.api.call.getRequestedTracks(...e)}),o.register(240,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.call.subscribeRequestedTracks(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(241,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.call.subscribeMediaSignals(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(242,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.call.subscribeProxyUpdates(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(243,{request:e,response:e,onrequest:e=>t.api.call.shareTrack(...e)}),o.register(244,{request:e,response:e,onrequest:e=>t.api.call.unshareTrack(...e)}),o.register(245,{request:e,response:e,onrequest:e=>t.api.call.relayTrack(...e)}),o.register(246,{request:e,response:e,onrequest:e=>t.api.call.unrelayTrack(...e)}),o.register(247,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.call.subscribeAvailableTracks(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(248,{request:e,response:e,onrequest:e=>t.api.call.getAvailableTracks(...e)}),o.register(249,{request:e,response:e,onrequest:e=>t.api.call.setPresent(...e)}),o.register(250,{request:e,response:e,onrequest:e=>t.api.call.setNotPresent(...e)}),o.register(251,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.call.subscribePresence(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(252,{request:e,response:e,onrequest:e=>t.api.call.getPresence(...e)}),o.register(253,{request:e,response:e,onrequest:e=>t.api.tracing.start(...e)}),o.register(254,{request:e,response:e,onrequest:e=>t.api.tracing.addFrontendTrace(...e)}),o.register(255,{request:e,response:e,onrequest:e=>t.api.console.log(...e)}),o.register(256,{request:e,response:e,onrequest:e=>t.api.console.warn(...e)}),o.register(257,{request:e,response:e,onrequest:e=>t.api.console.error(...e)}),o.register(258,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.network.subscribe(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(259,{request:e,response:e,onrequest:e=>t.api.network.query(...e)}),o.register(260,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.network.subscribeDebug(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(261,{request:e,response:e,onrequest:e=>t.api.network.debug(...e)}),o.register(262,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.error.subscribe(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(263,{request:e,response:e,onrequest:e=>t.api.debug.getCurrentRoomStats(...e)}),o.register(264,{request:e,response:e,onrequest:e=>t.api.debug.enableInspector(...e)}),o.register(265,{request:e,response:e,onrequest:e=>t.api.debug.disableInspector(...e)}),o.register(266,{request:e,response:e,onrequest:e=>t.api.debug.getInspectorKey(...e)}),o.register(267,{request:e,response:e,onrequest:e=>t.api.debug.processTop(...e)}),o.register(268,{request:e,response:e,onrequest:e=>t.api.debug.heapSnapshot(...e)}),o.register(269,{request:e,response:e,onrequest:e=>t.api.debug.hash(...e)}),o.register(270,{request:e,response:e,onrequest:e=>t.api.debug.generateSyntheticError(...e)}),o.register(271,{request:e,response:e,onrequest:e=>t.api.debug.resetUnreads(...e)}),o.register(272,{request:e,response:e,onrequest:e=>t.api.debug.getAccumulatedBytes(...e)}),o.register(273,{request:e,response:e,onrequest:e=>t.api.pear.teardown(...e)}),o.register(274,{request:e,response:e,onrequest:e=>t.api.pear.selfDestruct(...e)}),o.register(275,{request:e,response:e,onrequest:e=>t.api.feedback.send(...e)})};
1const e=require("tiny-buffer-rpc/any"),{pipeline:r}=require("streamx");function s(){}module.exports=function(t,o){o.register(0,{request:e,response:e,onrequest:e=>t.api.swarm.ready(...e)}),o.register(1,{request:e,response:e,onrequest:e=>t.api.core.getVersion(...e)}),o.register(2,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeRoomVersion(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(3,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeForceUpdates(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(4,{request:e,response:e,onrequest:e=>t.api.core.upgradeRoom(...e)}),o.register(5,{request:e,response:e,onrequest:e=>t.api.core.updateUserSettings(...e)}),o.register(6,{request:e,response:e,onrequest:e=>t.api.core.getIdentity(...e)}),o.register(7,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeIdentity(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(8,{request:e,response:e,onrequest:e=>t.api.core.generateIdentity(...e)}),o.register(9,{request:e,response:e,onrequest:e=>t.api.core.restoreIdentity(...e)}),o.register(10,{request:e,response:e,onrequest:e=>t.api.core.getRecoveryPhrase(...e)}),o.register(11,{request:e,response:e,onrequest:e=>t.api.core.getEncryptedRecoveryPhrase(...e)}),o.register(12,{request:e,response:e,onrequest:e=>t.api.core.decryptEncryptedRecoveryPhrase(...e)}),o.register(13,{request:e,response:e,onrequest:e=>t.api.core.freeRecoveryPhrase(...e)}),o.register(14,{request:e,response:e,onrequest:e=>t.api.core.confirmRecoveryPhrase(...e)}),o.register(15,{request:e,response:e,onrequest:e=>t.api.core.storeRecoveryPhrase(...e)}),o.register(16,{request:e,response:e,onrequest:e=>t.api.core.confirmIdentity(...e)}),o.register(17,{request:e,response:e,onrequest:e=>t.api.core.confirmPairingRequest(...e)}),o.register(18,{request:e,response:e,dedup:!1,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeIdentityPairingRequests(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(19,{request:e,response:e,onrequest:e=>t.api.core.updateIdentityProfile(...e)}),o.register(20,{request:e,response:e,onrequest:e=>t.api.core.updateIdentityDevice(...e)}),o.register(21,{request:e,response:e,onrequest:e=>t.api.core.removeIdentityDevice(...e)}),o.register(22,{request:e,response:e,onrequest:e=>t.api.core.getLinkInfo(...e)}),o.register(23,{request:e,response:e,onrequest:e=>t.api.core.startPairingIdentity(...e)}),o.register(24,{request:e,response:e,onrequest:e=>t.api.core.pairIdentity(...e)}),o.register(25,{request:e,response:e,onrequest:e=>t.api.core.createRoom(...e)}),o.register(26,{request:e,response:e,onrequest:e=>t.api.core.pairRoom(...e)}),o.register(27,{request:e,response:e,onrequest:e=>t.api.core.leaveRoom(...e)}),o.register(28,{request:e,response:e,onrequest:e=>t.api.core.startPairingRoom(...e)}),o.register(29,{request:e,response:e,onrequest:e=>t.api.core.stopPairingRoom(...e)}),o.register(30,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribePendingRooms(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(31,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribePushNotificationChanges(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(32,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeActivateRoom(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(33,{request:e,response:e,onrequest:e=>t.api.core.getRoomKeys(...e)}),o.register(34,{request:e,response:e,onrequest:e=>t.api.core.resyncPrivateProfile(...e)}),o.register(35,{request:e,response:e,onrequest:e=>t.api.core.getTipSize(...e)}),o.register(36,{request:e,response:e,onrequest:e=>t.api.core.bookmark(...e)}),o.register(37,{request:e,response:e,onrequest:e=>t.api.core.unbookmark(...e)}),o.register(38,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeBookmarks(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(39,{request:e,response:e,onrequest:e=>t.api.core.getRoomInfo(...e)}),o.register(40,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeRoomInfo(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(41,{request:e,response:e,onrequest:e=>t.api.core.searchRooms(...e)}),o.register(42,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.searchPublicRooms(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(43,{request:e,response:e,onrequest:e=>t.api.core.getRecentRooms(...e)}),o.register(44,{request:e,response:e,onrequest:e=>t.api.core.getLocalRoomMetadata(...e)}),o.register(45,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeRecentRooms(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(46,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeFavoriteRooms(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(47,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeUnreadActivity(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(48,{request:e,response:e,onrequest:e=>t.api.core.setRoomUnread(...e)}),o.register(49,{request:e,response:e,onrequest:e=>t.api.core.bumpRoomPriority(...e)}),o.register(50,{request:e,response:e,onrequest:e=>t.api.core.snoozeRoom(...e)}),o.register(51,{request:e,response:e,onrequest:e=>t.api.core.addDevice(...e)}),o.register(52,{request:e,response:e,onrequest:e=>t.api.core.removeDevice(...e)}),o.register(53,{request:e,response:e,onrequest:e=>t.api.core.getDevice(...e)}),o.register(54,{request:e,response:e,onrequest:e=>t.api.core.getDevices(...e)}),o.register(55,{request:e,response:e,onrequest:e=>t.api.core.getDevicesByMemberId(...e)}),o.register(56,{request:e,response:e,onrequest:e=>t.api.core.getCurrentDeviceId(...e)}),o.register(57,{request:e,response:e,onrequest:e=>t.api.core.moveIndexer(...e)}),o.register(58,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeDevice(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(59,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeDevices(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(60,{request:e,response:e,onrequest:e=>t.api.core.createIdentityInvitation(...e)}),o.register(61,{request:e,response:e,onrequest:e=>t.api.core.createInvitation(...e)}),o.register(62,{request:e,response:e,onrequest:e=>t.api.core.updateMember(...e)}),o.register(63,{request:e,response:e,onrequest:e=>t.api.core.isMemberMuted(...e)}),o.register(64,{request:e,response:e,onrequest:e=>t.api.core.getMember(...e)}),o.register(65,{request:e,response:e,onrequest:e=>t.api.core.removeMember(...e)}),o.register(66,{request:e,response:e,onrequest:e=>t.api.core.getMembers(...e)}),o.register(67,{request:e,response:e,onrequest:e=>t.api.core.getActiveMembers(...e)}),o.register(68,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeActiveMembers(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(69,{request:e,response:e,onrequest:e=>t.api.core.getModerators(...e)}),o.register(70,{request:e,response:e,onrequest:e=>t.api.core.getMemberCount(...e)}),o.register(71,{request:e,response:e,onrequest:e=>t.api.core.getMemberForDevice(...e)}),o.register(72,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeMemberCount(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(73,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeMember(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(74,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeMembers(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(75,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeModerators(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(76,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeMemberForDevice(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(77,{request:e,response:e,onrequest:e=>t.api.core.changeMemberRole(...e)}),o.register(78,{request:e,response:e,onrequest:e=>t.api.core.muteMember(...e)}),o.register(79,{request:e,response:e,onrequest:e=>t.api.core.unmuteMember(...e)}),o.register(80,{request:e,response:e,onrequest:e=>t.api.core.getSearchMembers(...e)}),o.register(81,{request:e,response:e,onrequest:e=>t.api.core.getPushNotificationMembers(...e)}),o.register(82,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeSearchMembers(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(83,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribePushNotificationMembers(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(84,{request:e,response:e,onrequest:e=>t.api.core.addContact(...e)}),o.register(85,{request:e,response:e,onrequest:e=>t.api.core.setContactAlias(...e)}),o.register(86,{request:e,response:e,onrequest:e=>t.api.core.removeContact(...e)}),o.register(87,{request:e,response:e,onrequest:e=>t.api.core.getActiveContacts(...e)}),o.register(88,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeActiveContacts(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(89,{request:e,response:e,onrequest:e=>t.api.core.getContactInfo(...e)}),o.register(90,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeContactInfo(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(91,{request:e,response:e,onrequest:e=>t.api.core.getSelfContactInfo(...e)}),o.register(92,{request:e,response:e,onrequest:e=>t.api.core.blockMember(...e)}),o.register(93,{request:e,response:e,onrequest:e=>t.api.core.unblockMember(...e)}),o.register(94,{request:e,response:e,onrequest:e=>t.api.core.getBlockedMembers(...e)}),o.register(95,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeBlockedMembers(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(96,{request:e,response:e,onrequest:e=>t.api.core.getConnectedMembers(...e)}),o.register(97,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeConnectedMembers(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(98,{request:e,response:e,onrequest:e=>t.api.core.updateConfig(...e)}),o.register(99,{request:e,response:e,onrequest:e=>t.api.core.getConfig(...e)}),o.register(100,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeConfig(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(101,{request:e,response:e,onrequest:e=>t.api.core.updateRoomSettings(...e)}),o.register(102,{request:e,response:e,onrequest:e=>t.api.core.disableMembershipEvents(...e)}),o.register(103,{request:e,response:e,onrequest:e=>t.api.core.enableMembershipEvents(...e)}),o.register(104,{request:e,response:e,onrequest:e=>t.api.core.addChatMessage(...e)}),o.register(105,{request:e,response:e,onrequest:e=>t.api.core.updateChatMessage(...e)}),o.register(106,{request:e,response:e,onrequest:e=>t.api.core.removeChatMessage(...e)}),o.register(107,{request:e,response:e,onrequest:e=>t.api.core.forwardChatMessage(...e)}),o.register(108,{request:e,response:e,onrequest:e=>t.api.core.pinChatMessage(...e)}),o.register(109,{request:e,response:e,onrequest:e=>t.api.core.unpinChatMessage(...e)}),o.register(110,{request:e,response:e,onrequest:e=>t.api.core.startCall(...e)}),o.register(111,{request:e,response:e,onrequest:e=>t.api.core.joinCall(...e)}),o.register(112,{request:e,response:e,onrequest:e=>t.api.core.leaveCall(...e)}),o.register(113,{request:e,response:e,onrequest:e=>t.api.core.endCall(...e)}),o.register(114,{request:e,response:e,onrequest:e=>t.api.core.addCallStream(...e)}),o.register(115,{request:e,response:e,onrequest:e=>t.api.core.removeCallStream(...e)}),o.register(116,{request:e,response:e,onrequest:e=>t.api.core.updateCallStream(...e)}),o.register(117,{request:e,response:e,onrequest:e=>t.api.core.startCallRecording(...e)}),o.register(118,{request:e,response:e,onrequest:e=>t.api.core.stopCallRecording(...e)}),o.register(119,{request:e,response:e,onrequest:e=>t.api.core.getActiveCalls(...e)}),o.register(120,{request:e,response:e,onrequest:e=>t.api.core.getAllActiveCalls(...e)}),o.register(121,{request:e,response:e,onrequest:e=>t.api.core.getCalls(...e)}),o.register(122,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeActiveCalls(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(123,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeAllActiveCalls(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(124,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeCalls(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(125,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeCallProxy(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(126,{request:e,response:e,onrequest:e=>t.api.core.signalCallPeer(...e)}),o.register(127,{request:e,response:e,onrequest:e=>t.api.core.addCallStartedEvent(...e)}),o.register(128,{request:e,response:e,onrequest:e=>t.api.core.addCallHangupEvent(...e)}),o.register(129,{request:e,response:e,onrequest:e=>t.api.core.addCallMissedEvent(...e)}),o.register(130,{request:e,response:e,onrequest:e=>t.api.core.addLocationSharedEvent(...e)}),o.register(131,{request:e,response:e,onrequest:e=>t.api.core.addRoomAvatarChangedEvent(...e)}),o.register(132,{request:e,response:e,onrequest:e=>t.api.core.addEvent(...e)}),o.register(133,{request:e,response:e,onrequest:e=>t.api.core.removeEvent(...e)}),o.register(134,{request:e,response:e,onrequest:e=>t.api.core.getChatMessage(...e)}),o.register(135,{request:e,response:e,onrequest:e=>t.api.core.getChatMessageById(...e)}),o.register(136,{request:e,response:e,onrequest:e=>t.api.core.getChatMessages(...e)}),o.register(137,{request:e,response:e,onrequest:e=>t.api.core.getPinnedChatMessages(...e)}),o.register(138,{request:e,response:e,onrequest:e=>t.api.core.getChatLength(...e)}),o.register(139,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeChatMessages(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(140,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeChatLength(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(141,{request:e,response:e,onrequest:e=>t.api.core.searchChatMessages(...e)}),o.register(142,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.createChatSearchStream(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(143,{request:e,response:e,onrequest:e=>t.api.core.sendDMFromContact(...e)}),o.register(144,{request:e,response:e,onrequest:e=>t.api.core.sendDMRequest(...e)}),o.register(145,{request:e,response:e,onrequest:e=>t.api.core.sendInvitations(...e)}),o.register(146,{request:e,response:e,onrequest:e=>t.api.core.updatePrivateMailboxRecord(...e)}),o.register(147,{request:e,response:e,onrequest:e=>t.api.core.getPrivateMailboxRecords(...e)}),o.register(148,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribePrivateMailbox(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(149,{request:e,response:e,onrequest:e=>t.api.core.getSentPrivateMailboxRecords(...e)}),o.register(150,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeSentPrivateMailbox(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(151,{request:e,response:e,onrequest:e=>t.api.core.getDmByMemberId(...e)}),o.register(152,{request:e,response:e,onrequest:e=>t.api.core.getDmRequestsByStatus(...e)}),o.register(153,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeDmRequestsByStatus(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(154,{request:e,response:e,onrequest:e=>t.api.core.acceptDmRequest(...e)}),o.register(155,{request:e,response:e,onrequest:e=>t.api.core.rejectDmRequest(...e)}),o.register(156,{request:e,response:e,onrequest:e=>t.api.core.addReaction(...e)}),o.register(157,{request:e,response:e,onrequest:e=>t.api.core.removeReaction(...e)}),o.register(158,{request:e,response:e,onrequest:e=>t.api.core.getLatestReactions(...e)}),o.register(159,{request:e,response:e,onrequest:e=>t.api.core.getReactions(...e)}),o.register(160,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeReactions(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(161,{request:e,response:e,onrequest:e=>t.api.core.addChatReport(...e)}),o.register(162,{request:e,response:e,onrequest:e=>t.api.core.removeChatReport(...e)}),o.register(163,{request:e,response:e,onrequest:e=>t.api.core.dismissChatReports(...e)}),o.register(164,{request:e,response:e,onrequest:e=>t.api.core.reportMember(...e)}),o.register(165,{request:e,response:e,onrequest:e=>t.api.core.getReportedMembers(...e)}),o.register(166,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeReportedMembers(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(167,{request:e,response:e,onrequest:e=>t.api.core.getReportedMessages(...e)}),o.register(168,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeReportedMessages(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(169,{request:e,response:e,onrequest:e=>t.api.core.addFileBlob(...e)}),o.register(170,{request:e,response:e,onrequest:e=>t.api.core.addFile(...e)}),o.register(171,{request:e,response:e,onrequest:e=>t.api.core.saveFileBlob(...e)}),o.register(172,{request:e,response:e,onrequest:e=>t.api.core.saveFile(...e)}),o.register(173,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeAddFile(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(174,{request:e,response:e,onrequest:e=>t.api.core.sendFile(...e)}),o.register(175,{request:e,response:e,onrequest:e=>t.api.core.removeFile(...e)}),o.register(176,{request:e,response:e,onrequest:e=>t.api.core.refreshFileLinks(...e)}),o.register(177,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeFileInfo(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(178,{request:e,response:e,onrequest:e=>t.api.core.clearAllFiles(...e)}),o.register(179,{request:e,response:e,onrequest:e=>t.api.core.getFileEntry(...e)}),o.register(180,{request:e,response:e,onrequest:e=>t.api.core.getLocalFiles(...e)}),o.register(181,{request:e,response:e,onrequest:e=>t.api.core.getFiles(...e)}),o.register(182,{request:e,response:e,onrequest:e=>t.api.core.startDownload(...e)}),o.register(183,{request:e,response:e,onrequest:e=>t.api.core.cancelDownload(...e)}),o.register(184,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.readFileStream(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(185,{request:e,response:e,onrequest:e=>t.api.core.saveToDisk(...e)}),o.register(186,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeSaveToDisk(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(187,{request:e,response:e,onrequest:e=>t.api.core.clearFile(...e)}),o.register(188,{request:e,response:e,onrequest:e=>t.api.core.unclearFile(...e)}),o.register(189,{request:e,response:e,onrequest:e=>t.api.core.getFileCleared(...e)}),o.register(190,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeFileCleared(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(191,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeFiles(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(192,{request:e,response:e,onrequest:e=>t.api.core.getStats(...e)}),o.register(193,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeProgress(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(194,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeSystemUpdateRequest(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(195,{request:e,response:e,onrequest:e=>t.api.core.lookupUsername(...e)}),o.register(196,{request:e,response:e,onrequest:e=>t.api.core.lookupUserByMemberId(...e)}),o.register(197,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeUsername(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(198,{request:e,response:e,onrequest:e=>t.api.core.registerUsername(...e)}),o.register(199,{request:e,response:e,onrequest:e=>t.api.core.updateUsername(...e)}),o.register(200,{request:e,response:e,onrequest:e=>t.api.core.searchUsername(...e)}),o.register(201,{request:e,response:e,onrequest:e=>t.api.core.getReservationsByKey(...e)}),o.register(202,{request:e,response:e,onrequest:e=>t.api.core.checkUsername(...e)}),o.register(203,{request:e,response:e,onrequest:e=>t.api.core.updateRoomPreferences(...e)}),o.register(204,{request:e,response:e,onrequest:e=>t.api.core.getRoomPreferences(...e)}),o.register(205,{request:e,response:e,onrequest:e=>t.api.core.audit(...e)}),o.register(206,{request:e,response:e,onrequest:e=>t.api.core.autobeeLogs(...e)}),o.register(207,{request:e,response:e,onrequest:e=>t.api.core.close(...e)}),o.register(208,{request:e,response:e,onrequest:e=>t.api.core.suspend(...e)}),o.register(209,{request:e,response:e,onrequest:e=>t.api.core.resume(...e)}),o.register(210,{request:e,response:e,onrequest:e=>t.api.core.getDebugFlags(...e)}),o.register(211,{request:e,response:e,onrequest:e=>t.api.core.updateDebugFlag(...e)}),o.register(212,{request:e,response:e,onrequest:e=>t.api.core.repair(...e)}),o.register(213,{request:e,response:e,onrequest:e=>t.api.core.rotateWriter(...e)}),o.register(214,{request:e,response:e,onrequest:e=>t.api.core.getRoomStats(...e)}),o.register(215,{request:e,response:e,onrequest:e=>t.api.core.compact(...e)}),o.register(216,{request:e,response:e,onrequest:e=>t.api.core.setUnread(...e)}),o.register(217,{request:e,response:e,onrequest:e=>t.api.core.getUnread(...e)}),o.register(218,{request:e,response:e,onrequest:e=>t.api.core.getUnreadAnchor(...e)}),o.register(219,{request:e,response:e,onrequest:e=>t.api.core.setUnreadAnchor(...e)}),o.register(220,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeUnreadAnchor(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(221,{request:e,response:e,onrequest:e=>t.api.core.updateTypingIndicator(...e)}),o.register(222,{request:e,response:e,onrequest:e=>t.api.core.getTypingIndicator(...e)}),o.register(223,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeTypingIndicator(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(224,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeSentLength(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(225,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.createErrorStream(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(226,{request:e,response:e,onrequest:e=>t.api.core.boot(...e)}),o.register(227,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeErrors(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(228,{request:e,response:e,onrequest:e=>t.api.core.setCallRingingId(...e)}),o.register(229,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.core.subscribeNotifications(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(230,{request:e,response:e,onrequest:e=>t.api.core.getDHTSettings(...e)}),o.register(231,{request:e,response:e,onrequest:e=>t.api.core.updateDHTSettings(...e)}),o.register(232,{request:e,response:e,onrequest:e=>t.api.core.getSwarmSettings(...e)}),o.register(233,{request:e,response:e,onrequest:e=>t.api.core.updateSwarmSettings(...e)}),o.register(234,{request:e,response:e,onrequest:e=>t.api.core.setRoomFavorite(...e)}),o.register(235,{request:e,response:e,onrequest:e=>t.api.core.clearOldFiles(...e)}),o.register(236,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.preferences.subscribe(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(237,{request:e,response:e,onrequest:e=>t.api.preferences.update(...e)}),o.register(238,{request:e,response:e,onrequest:e=>t.api.preferences.query(...e)}),o.register(239,{request:e,response:e,onrequest:e=>t.api.call.authorize(...e)}),o.register(240,{request:e,response:e,onrequest:e=>t.api.call.deauthorize(...e)}),o.register(241,{request:e,response:e,onrequest:e=>t.api.call.joinPeer(...e)}),o.register(242,{request:e,response:e,onrequest:e=>t.api.call.leavePeer(...e)}),o.register(243,{request:e,response:e,onrequest:e=>t.api.call.requestTrack(...e)}),o.register(244,{request:e,response:e,onrequest:e=>t.api.call.unrequestTrack(...e)}),o.register(245,{request:e,response:e,onrequest:e=>t.api.call.signalMedia(...e)}),o.register(246,{request:e,response:e,onrequest:e=>t.api.call.getRequestedTracks(...e)}),o.register(247,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.call.subscribeRequestedTracks(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(248,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.call.subscribeMediaSignals(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(249,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.call.subscribeProxyUpdates(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(250,{request:e,response:e,onrequest:e=>t.api.call.shareTrack(...e)}),o.register(251,{request:e,response:e,onrequest:e=>t.api.call.unshareTrack(...e)}),o.register(252,{request:e,response:e,onrequest:e=>t.api.call.relayTrack(...e)}),o.register(253,{request:e,response:e,onrequest:e=>t.api.call.unrelayTrack(...e)}),o.register(254,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.call.subscribeAvailableTracks(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(255,{request:e,response:e,onrequest:e=>t.api.call.getAvailableTracks(...e)}),o.register(256,{request:e,response:e,onrequest:e=>t.api.call.setPresent(...e)}),o.register(257,{request:e,response:e,onrequest:e=>t.api.call.setNotPresent(...e)}),o.register(258,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.call.subscribePresence(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(259,{request:e,response:e,onrequest:e=>t.api.call.getPresence(...e)}),o.register(260,{request:e,response:e,onrequest:e=>t.api.tracing.start(...e)}),o.register(261,{request:e,response:e,onrequest:e=>t.api.tracing.addFrontendTrace(...e)}),o.register(262,{request:e,response:e,onrequest:e=>t.api.console.log(...e)}),o.register(263,{request:e,response:e,onrequest:e=>t.api.console.warn(...e)}),o.register(264,{request:e,response:e,onrequest:e=>t.api.console.error(...e)}),o.register(265,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.network.subscribe(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(266,{request:e,response:e,onrequest:e=>t.api.network.query(...e)}),o.register(267,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.network.subscribeDebug(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(268,{request:e,response:e,onrequest:e=>t.api.network.debug(...e)}),o.register(269,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.error.subscribe(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(270,{request:e,response:e,onrequest:e=>t.api.debug.getCurrentRoomStats(...e)}),o.register(271,{request:e,response:e,onrequest:e=>t.api.debug.enableInspector(...e)}),o.register(272,{request:e,response:e,onrequest:e=>t.api.debug.disableInspector(...e)}),o.register(273,{request:e,response:e,onrequest:e=>t.api.debug.getInspectorKey(...e)}),o.register(274,{request:e,response:e,onrequest:e=>t.api.debug.processTop(...e)}),o.register(275,{request:e,response:e,onrequest:e=>t.api.debug.heapSnapshot(...e)}),o.register(276,{request:e,response:e,onrequest:e=>t.api.debug.hash(...e)}),o.register(277,{request:e,response:e,onrequest:e=>t.api.debug.generateSyntheticError(...e)}),o.register(278,{request:e,response:e,onrequest:e=>t.api.debug.resetUnreads(...e)}),o.register(279,{request:e,response:e,onrequest:e=>t.api.debug.getAccumulatedBytes(...e)}),o.register(280,{request:e,response:e,onrequest:e=>t.api.pear.teardown(...e)}),o.register(281,{request:e,response:e,onrequest:e=>t.api.pear.selfDestruct(...e)}),o.register(282,{request:e,response:e,onrequest:e=>t.api.feedback.send(...e)}),o.register(283,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.callNetwork.subscribe(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(284,{request:e,response:e,onrequest:e=>t.api.callNetwork.query(...e)}),o.register(285,{request:e,response:e,dedup:!0,onstream:async e=>{try{for await(const o of e){const n=t.api.callNetwork.subscribeDebug(...o);r(n,e).on("error",s)}}catch(r){e.destroy(r)}}}),o.register(286,{request:e,response:e,onrequest:e=>t.api.callNetwork.debug(...e)})};
@holepunchto/keet-core/package.json +16 -9
……@@ -1,6 +1,6 @@
11{
22 "name": "@holepunchto/keet-core",
3 "version": "4.18.3",
3 "version": "4.22.28",
44 "description": "A version of keet-core built with rocksdb and hyperdb",
55 "main": "index.js",
66 "imports": {
……@@ -91,13 +91,14 @@
9191 },
9292 "homepage": "https://github.com/holepunchto/keet-core#readme",
9393 "dependencies": {
94 "@holepunchto/call-swarm": "^1.1.0",
9495 "@holepunchto/hyperdiscovery": "^1.1.0",
9596 "@holepunchto/hyperindex": "2.4.0",
9697 "@holepunchto/keet-call": "^10.3.3",
9798 "@holepunchto/keet-core-api": "^2.0.0",
9899 "@holepunchto/keet-debug-helper": "^2.0.3",
99100 "@holepunchto/keet-default-config": "^3.0.0",
100 "@holepunchto/keet-indexing": "6.4.0",
101 "@holepunchto/keet-indexing": "6.4.1",
101102 "@holepunchto/keet-push": "^4.0.0",
102103 "@holepunchto/keet-registry": "^3.3.1",
103104 "@holepunchto/keet-registry-client": "^5.0.0",
……@@ -105,6 +106,8 @@
105106 "@holepunchto/keet-unread-anchors": "^2.0.0",
106107 "@holepunchto/legacy-keet-core-schemas": "^2.17.0",
107108 "autobase": "^7.13.2",
109 "autobee-encryption": "^0.1.2",
110 "autobee": "^2.10.0",
108111 "b4a": "^1.6.7",
109112 "bare-addon-resolve": "^1.9.4",
110113 "bare-bundle": "^1.8.4",
……@@ -112,29 +115,31 @@
112115 "bare-events": "^2.8.2",
113116 "bare-file-logger": "^1.2.1",
114117 "bare-fs": "^4.4.4",
118 "bare-hrtime": "^2.1.1",
115119 "bare-inspector": "^6.0.1",
116120 "bare-logger": "^2.0.2",
117121 "bare-performance": "^2.0.0",
118122 "bare-semver": "^1.0.2",
119123 "bare-zlib": "^1.3.1",
120124 "bip39-mnemonic": "^2.4.0",
121 "blind-peering": "^2.0.1",
125 "blind-peering": "^2.5.0",
122126 "blind-push": "^1.0.0",
123127 "bundlebee": "^1.2.0",
124128 "compact-encoding": "^3.0.0",
125 "corestore": "^7.10.0",
129 "corestore": "^7.12.6",
126130 "db-lock": "^1.2.0",
127131 "deterministic-sealed-box": "^1.0.0",
128132 "framed-stream": "^1.0.1",
129133 "fs-native-lock": "^1.2.0",
130134 "hrpc": "^4.1.0",
135 "hyperbee-compat": "^1.0.0",
131136 "hyperblobs": "^2.8.0",
132137 "hyperconf": "^1.0.1",
133138 "hypercore-blob-server": "^1.9.0",
134139 "hypercore-crypto": "^3.4.2",
135140 "hypercore-id-encoding": "^1.3.0",
136141 "hypercore-proof-queue": "^2.0.2",
137 "hypercore-storage": "^3.0.2",
142 "hypercore-storage": "^3.3.0",
138143 "hyperdb": "^6.6.3",
139144 "hyperdht": "^6.28.0",
140145 "hyperdispatch": "^1.1.0",
……@@ -166,7 +171,6 @@
166171 "z32": "^1.1.0"
167172 },
168173 "devDependencies": {
169 "hyperschema-regen": "^3.0.0",
170174 "@holepunchto/keet-package": "^3.0.0",
171175 "@holepunchto/keet-registry-service": "^6.0.0",
172176 "@hyperswarm/rpc": "^3.4.1",
……@@ -175,15 +179,18 @@
175179 "bare-fetch": "^3.0.0",
176180 "bare-path": "^3.0.0",
177181 "bare-process": "^4.2.1",
182 "bare-runtime": "1.31.0",
178183 "bare-subprocess": "^6.0.0",
179 "blind-peer": "^3.2.0",
180 "brittle": "^3.7.0",
184 "blind-peer": "^3.10.2",
185 "blind-push-gateway": "^0.2.0",
186 "brittle": "^4.1.0",
181187 "graceful-goodbye": "^1.3.3",
182188 "hyperbee": "^2.20.4",
183189 "hyperbee2": "^2.9.1",
184 "hypercore": "^11.33.0",
190 "hypercore": "^11.37.0",
185191 "hyperdrive": "^13.3.2",
186192 "hypermininet": "^1.4.0",
193 "hyperschema-regen": "^3.0.0",
187194 "lunte": "^1.3.0",
188195 "math-random-seed": "^2.0.0",
189196 "passthrough-pair": "^1.0.0",
@holepunchto/keet-core/schema/spec/api/hrpc/index.js +1 -1
……@@ -1 +1 @@
1const{c:e,RPC:a,RPCStream:o,RPCRequestStream:r}=require("hrpc/runtime"),{getEncoding:i}=require("./messages.js"),t=new Map([["@api/self-destruct",0],[0,"@api/self-destruct"],["@api/boot",1],[1,"@api/boot"],["@api/core-create-room",2],[2,"@api/core-create-room"],["@api/core-activate-room",3],[3,"@api/core-activate-room"],["@api/core-deactivate-room",4],[4,"@api/core-deactivate-room"],["@api/core-leave-room",5],[5,"@api/core-leave-room"],["@api/core-update-room-config",6],[6,"@api/core-update-room-config"],["@api/core-update-room-settings",7],[7,"@api/core-update-room-settings"],["@api/core-update-room-status",8],[8,"@api/core-update-room-status"],["@api/core-update-profile",9],[9,"@api/core-update-profile"],["@api/core-create-room-invitation",10],[10,"@api/core-create-room-invitation"],["@api/core-create-identity-invitation",11],[11,"@api/core-create-identity-invitation"],["@api/core-start-pairing",12],[12,"@api/core-start-pairing"],["@api/core-accept-join-request",13],[13,"@api/core-accept-join-request"],["@api/core-reject-join-request",14],[14,"@api/core-reject-join-request"],["@api/core-stop-pairing",15],[15,"@api/core-stop-pairing"],["@api/core-add-chat-message",16],[16,"@api/core-add-chat-message"],["@api/core-edit-chat-message",17],[17,"@api/core-edit-chat-message"],["@api/core-remove-chat-message",18],[18,"@api/core-remove-chat-message"],["@api/core-add-chat-reaction",19],[19,"@api/core-add-chat-reaction"],["@api/core-remove-chat-reaction",20],[20,"@api/core-remove-chat-reaction"],["@api/core-want-identity",21],[21,"@api/core-want-identity"],["@api/core-unwant-identity",22],[22,"@api/core-unwant-identity"],["@api/core-have-identity",23],[23,"@api/core-have-identity"],["@api/core-identity-reset",24],[24,"@api/core-identity-reset"],["@api/core-identity-member",25],[25,"@api/core-identity-member"],["@api/core-identity-device",26],[26,"@api/core-identity-device"],["@api/core-want-pairing",27],[27,"@api/core-want-pairing"],["@api/core-unwant-pairing",28],[28,"@api/core-unwant-pairing"],["@api/core-have-pairing",29],[29,"@api/core-have-pairing"],["@api/core-pairing-reset",30],[30,"@api/core-pairing-reset"],["@api/core-want-lobby",31],[31,"@api/core-want-lobby"],["@api/core-unwant-lobby",32],[32,"@api/core-unwant-lobby"],["@api/core-have-lobby",33],[33,"@api/core-have-lobby"],["@api/core-lobby-reset",34],[34,"@api/core-lobby-reset"],["@api/core-lobby-room",35],[35,"@api/core-lobby-room"],["@api/core-want-room-info",36],[36,"@api/core-want-room-info"],["@api/core-have-room-info",37],[37,"@api/core-have-room-info"],["@api/core-room-info",38],[38,"@api/core-room-info"],["@api/core-room-info-digest",39],[39,"@api/core-room-info-digest"],["@api/core-room-info-config",40],[40,"@api/core-room-info-config"],["@api/core-room-info-role",41],[41,"@api/core-room-info-role"],["@api/core-room-info-last-message",42],[42,"@api/core-room-info-last-message"],["@api/core-want-chat",43],[43,"@api/core-want-chat"],["@api/core-unwant-chat",44],[44,"@api/core-unwant-chat"],["@api/core-have-chat",45],[45,"@api/core-have-chat"],["@api/core-chat-reset",46],[46,"@api/core-chat-reset"],["@api/core-message-info",47],[47,"@api/core-message-info"],["@api/core-message-info-chat",48],[48,"@api/core-message-info-chat"],["@api/core-message-info-member",49],[49,"@api/core-message-info-member"],["@api/core-message-info-role",50],[50,"@api/core-message-info-role"],["@api/core-message-info-reactions",51],[51,"@api/core-message-info-reactions"],["@api/core-want-members",52],[52,"@api/core-want-members"],["@api/core-unwant-members",53],[53,"@api/core-unwant-members"],["@api/core-have-members",54],[54,"@api/core-have-members"],["@api/core-member-list-add",55],[55,"@api/core-member-list-add"],["@api/core-member-list-remove",56],[56,"@api/core-member-list-remove"],["@api/core-member",57],[57,"@api/core-member"],["@api/core-device",58],[58,"@api/core-device"],["@api/debug-enable",59],[59,"@api/debug-enable"],["@api/debug-disable",60],[60,"@api/debug-disable"],["@api/send-legacy",61],[61,"@api/send-legacy"]]);module.exports=class{constructor(c){this._stream=c,this._handlers=[],this._requestEncodings=new Map([["@api/self-destruct",i("@api/self-destruct-request")],["@api/boot",i("@api/boot-request")],["@api/core-create-room",i("@api/core/create-room-request")],["@api/core-activate-room",i("@api/core/activate-room-request")],["@api/core-deactivate-room",i("@api/core/deactivate-room-request")],["@api/core-leave-room",i("@api/core/leave-room-request")],["@api/core-update-room-config",i("@api/core/update-room-config-request")],["@api/core-update-room-settings",i("@api/core/update-room-settings-request")],["@api/core-update-room-status",i("@api/core/update-room-status-request")],["@api/core-update-profile",i("@api/core/update-profile-request")],["@api/core-create-room-invitation",i("@api/core/create-room-invitation-request")],["@api/core-create-identity-invitation",i("@api/core/create-identity-invitation-request")],["@api/core-start-pairing",i("@api/core/start-pairing-request")],["@api/core-accept-join-request",i("@api/core/accept-join-request-request")],["@api/core-reject-join-request",i("@api/core/reject-join-request-request")],["@api/core-stop-pairing",i("@api/core/stop-pairing-request")],["@api/core-add-chat-message",i("@api/core/add-chat-message-request")],["@api/core-edit-chat-message",i("@api/core/edit-chat-message-request")],["@api/core-remove-chat-message",i("@api/core/remove-chat-message-request")],["@api/core-add-chat-reaction",i("@api/core/add-chat-reaction-request")],["@api/core-remove-chat-reaction",i("@api/core/remove-chat-reaction-request")],["@api/core-want-identity",i("@api/core/want-identity")],["@api/core-unwant-identity",i("@api/core/unwant-identity")],["@api/core-have-identity",i("@api/core/have")],["@api/core-identity-reset",i("@api/core/identity")],["@api/core-identity-member",i("@api/core/identity-member")],["@api/core-identity-device",i("@api/core/identity-device")],["@api/core-want-pairing",i("@api/core/want-pairing")],["@api/core-unwant-pairing",i("@api/core/unwant-pairing")],["@api/core-have-pairing",i("@api/core/have")],["@api/core-pairing-reset",i("@api/core/pairing")],["@api/core-want-lobby",i("@api/core/want-lobby")],["@api/core-unwant-lobby",i("@api/core/unwant-lobby")],["@api/core-have-lobby",i("@api/core/have")],["@api/core-lobby-reset",i("@api/core/lobby")],["@api/core-lobby-room",i("@api/core/lobby-room")],["@api/core-want-room-info",i("@api/core/want-room-info")],["@api/core-have-room-info",i("@api/core/have")],["@api/core-room-info",i("@api/core/room-info")],["@api/core-room-info-digest",i("@api/core/room-info-digest")],["@api/core-room-info-config",i("@api/core/room-info-config")],["@api/core-room-info-role",i("@api/core/room-info-role")],["@api/core-room-info-last-message",i("@api/core/room-info-last-message")],["@api/core-want-chat",i("@api/core/want-chat")],["@api/core-unwant-chat",i("@api/core/unwant-chat")],["@api/core-have-chat",i("@api/core/have")],["@api/core-chat-reset",i("@api/core/chat-reset")],["@api/core-message-info",i("@api/core/message-info")],["@api/core-message-info-chat",i("@api/core/message-info-chat")],["@api/core-message-info-member",i("@api/core/message-info-member")],["@api/core-message-info-role",i("@api/core/message-info-role")],["@api/core-message-info-reactions",i("@api/core/message-info-reactions")],["@api/core-want-members",i("@api/core/want-members")],["@api/core-unwant-members",i("@api/core/unwant-members")],["@api/core-have-members",i("@api/core/have")],["@api/core-member-list-add",i("@api/core/member-list-add")],["@api/core-member-list-remove",i("@api/core/member-list-remove")],["@api/core-member",i("@api/core/member")],["@api/core-device",i("@api/core/device")],["@api/debug-enable",i("@api/debug/enable-request")],["@api/debug-disable",i("@api/debug/disable-request")],["@api/send-legacy",e.buffer]]),this._responseEncodings=new Map([["@api/boot",i("@api/boot-response")],["@api/core-create-room",i("@api/core/create-room-response")],["@api/core-leave-room",i("@api/core/leave-room-response")],["@api/core-create-room-invitation",i("@api/core/create-room-invitation-response")],["@api/core-create-identity-invitation",i("@api/core/create-identity-invitation-response")],["@api/core-start-pairing",i("@api/core/start-pairing-response")],["@api/core-accept-join-request",i("@api/core/accept-join-request-response")],["@api/core-reject-join-request",i("@api/core/reject-join-request-response")],["@api/core-stop-pairing",i("@api/core/stop-pairing-response")],["@api/core-add-chat-message",i("@api/core/add-chat-message-response")],["@api/core-edit-chat-message",i("@api/core/edit-chat-message-response")],["@api/core-remove-chat-message",i("@api/core/remove-chat-message-response")],["@api/core-add-chat-reaction",i("@api/core/add-chat-reaction-response")],["@api/core-remove-chat-reaction",i("@api/core/remove-chat-reaction-response")],["@api/debug-enable",i("@api/debug/enable-response")],["@api/debug-disable",i("@api/debug/disable-response")]]),this._rpc=new a(c,async a=>{const i=t.get(a.command),c=this._responseEncodings.get(i),n=this._requestEncodings.get(i);if(this._requestIsSend(i)){const o=a.data?e.decode(n,a.data):null;return void await this._handlers[i](o)}if(!this._requestIsStream(i)&&!this._responseIsStream(i)){const o=a.data?e.decode(n,a.data):null,r=await this._handlers[i](o);a.reply(e.encode(c,r))}if(!this._requestIsStream(i)&&this._responseIsStream(i)){const r=a.data?e.decode(n,a.data):null,t=new o(null,null,a.createResponseStream(),c);t.data=r,await this._handlers[i](t)}if(this._requestIsStream(i)&&!this._responseIsStream(i)){const o=new r(a,c,a.createRequestStream(),n),t=await this._handlers[i](o);a.reply(e.encode(c,t))}if(this._requestIsStream(i)&&this._responseIsStream(i)){const e=new r(a,c,a.createRequestStream(),n,a.createResponseStream(),c);await this._handlers[i](e)}})}async _call(a,o){const r=this._requestEncodings.get(a),i=this._responseEncodings.get(a),c=this._rpc.request(t.get(a)),n=e.encode(r,o);return c.send(n),e.decode(i,await c.reply())}_callSync(a,i){const c=this._requestEncodings.get(a),n=this._responseEncodings.get(a);if(this._requestIsSend(a)){const o=e.encode(c,i);this._rpc.event(t.get(a)).send(o)}const s=this._rpc.request(t.get(a));if(!this._requestIsStream(a)&&this._responseIsStream(a)){const a=e.encode(c,i);return s.send(a),new o(s.createResponseStream(),n)}return this._requestIsStream(a)&&!this._responseIsStream(a)?new r(s,n,null,null,s.createRequestStream(),c):this._requestIsStream(a)&&this._responseIsStream(a)?new r(s,n,s.createResponseStream(),n,s.createRequestStream(),c):void 0}async selfDestruct(e){return this._call("@api/self-destruct",e)}async boot(e){return this._call("@api/boot",e)}async coreCreateRoom(e){return this._call("@api/core-create-room",e)}coreActivateRoom(e){return this._callSync("@api/core-activate-room",e)}coreDeactivateRoom(e){return this._callSync("@api/core-deactivate-room",e)}async coreLeaveRoom(e){return this._call("@api/core-leave-room",e)}coreUpdateRoomConfig(e){return this._callSync("@api/core-update-room-config",e)}coreUpdateRoomSettings(e){return this._callSync("@api/core-update-room-settings",e)}coreUpdateRoomStatus(e){return this._callSync("@api/core-update-room-status",e)}coreUpdateProfile(e){return this._callSync("@api/core-update-profile",e)}async coreCreateRoomInvitation(e){return this._call("@api/core-create-room-invitation",e)}async coreCreateIdentityInvitation(e){return this._call("@api/core-create-identity-invitation",e)}async coreStartPairing(e){return this._call("@api/core-start-pairing",e)}async coreAcceptJoinRequest(e){return this._call("@api/core-accept-join-request",e)}async coreRejectJoinRequest(e){return this._call("@api/core-reject-join-request",e)}async coreStopPairing(e){return this._call("@api/core-stop-pairing",e)}async coreAddChatMessage(e){return this._call("@api/core-add-chat-message",e)}async coreEditChatMessage(e){return this._call("@api/core-edit-chat-message",e)}async coreRemoveChatMessage(e){return this._call("@api/core-remove-chat-message",e)}async coreAddChatReaction(e){return this._call("@api/core-add-chat-reaction",e)}async coreRemoveChatReaction(e){return this._call("@api/core-remove-chat-reaction",e)}coreWantIdentity(e){return this._callSync("@api/core-want-identity",e)}coreUnwantIdentity(e){return this._callSync("@api/core-unwant-identity",e)}coreHaveIdentity(e){return this._callSync("@api/core-have-identity",e)}coreIdentityReset(e){return this._callSync("@api/core-identity-reset",e)}coreIdentityMember(e){return this._callSync("@api/core-identity-member",e)}coreIdentityDevice(e){return this._callSync("@api/core-identity-device",e)}coreWantPairing(e){return this._callSync("@api/core-want-pairing",e)}coreUnwantPairing(e){return this._callSync("@api/core-unwant-pairing",e)}coreHavePairing(e){return this._callSync("@api/core-have-pairing",e)}corePairingReset(e){return this._callSync("@api/core-pairing-reset",e)}coreWantLobby(e){return this._callSync("@api/core-want-lobby",e)}coreUnwantLobby(e){return this._callSync("@api/core-unwant-lobby",e)}coreHaveLobby(e){return this._callSync("@api/core-have-lobby",e)}coreLobbyReset(e){return this._callSync("@api/core-lobby-reset",e)}coreLobbyRoom(e){return this._callSync("@api/core-lobby-room",e)}coreWantRoomInfo(e){return this._callSync("@api/core-want-room-info",e)}coreHaveRoomInfo(e){return this._callSync("@api/core-have-room-info",e)}coreRoomInfo(e){return this._callSync("@api/core-room-info",e)}coreRoomInfoDigest(e){return this._callSync("@api/core-room-info-digest",e)}coreRoomInfoConfig(e){return this._callSync("@api/core-room-info-config",e)}coreRoomInfoRole(e){return this._callSync("@api/core-room-info-role",e)}coreRoomInfoLastMessage(e){return this._callSync("@api/core-room-info-last-message",e)}coreWantChat(e){return this._callSync("@api/core-want-chat",e)}coreUnwantChat(e){return this._callSync("@api/core-unwant-chat",e)}coreHaveChat(e){return this._callSync("@api/core-have-chat",e)}coreChatReset(e){return this._callSync("@api/core-chat-reset",e)}coreMessageInfo(e){return this._callSync("@api/core-message-info",e)}coreMessageInfoChat(e){return this._callSync("@api/core-message-info-chat",e)}coreMessageInfoMember(e){return this._callSync("@api/core-message-info-member",e)}coreMessageInfoRole(e){return this._callSync("@api/core-message-info-role",e)}coreMessageInfoReactions(e){return this._callSync("@api/core-message-info-reactions",e)}coreWantMembers(e){return this._callSync("@api/core-want-members",e)}coreUnwantMembers(e){return this._callSync("@api/core-unwant-members",e)}coreHaveMembers(e){return this._callSync("@api/core-have-members",e)}coreMemberListAdd(e){return this._callSync("@api/core-member-list-add",e)}coreMemberListRemove(e){return this._callSync("@api/core-member-list-remove",e)}coreMember(e){return this._callSync("@api/core-member",e)}coreDevice(e){return this._callSync("@api/core-device",e)}async debugEnable(e){return this._call("@api/debug-enable",e)}async debugDisable(e){return this._call("@api/debug-disable",e)}sendLegacy(e){return this._callSync("@api/send-legacy",e)}onSelfDestruct(e){this._handlers["@api/self-destruct"]=e}onBoot(e){this._handlers["@api/boot"]=e}onCoreCreateRoom(e){this._handlers["@api/core-create-room"]=e}onCoreActivateRoom(e){this._handlers["@api/core-activate-room"]=e}onCoreDeactivateRoom(e){this._handlers["@api/core-deactivate-room"]=e}onCoreLeaveRoom(e){this._handlers["@api/core-leave-room"]=e}onCoreUpdateRoomConfig(e){this._handlers["@api/core-update-room-config"]=e}onCoreUpdateRoomSettings(e){this._handlers["@api/core-update-room-settings"]=e}onCoreUpdateRoomStatus(e){this._handlers["@api/core-update-room-status"]=e}onCoreUpdateProfile(e){this._handlers["@api/core-update-profile"]=e}onCoreCreateRoomInvitation(e){this._handlers["@api/core-create-room-invitation"]=e}onCoreCreateIdentityInvitation(e){this._handlers["@api/core-create-identity-invitation"]=e}onCoreStartPairing(e){this._handlers["@api/core-start-pairing"]=e}onCoreAcceptJoinRequest(e){this._handlers["@api/core-accept-join-request"]=e}onCoreRejectJoinRequest(e){this._handlers["@api/core-reject-join-request"]=e}onCoreStopPairing(e){this._handlers["@api/core-stop-pairing"]=e}onCoreAddChatMessage(e){this._handlers["@api/core-add-chat-message"]=e}onCoreEditChatMessage(e){this._handlers["@api/core-edit-chat-message"]=e}onCoreRemoveChatMessage(e){this._handlers["@api/core-remove-chat-message"]=e}onCoreAddChatReaction(e){this._handlers["@api/core-add-chat-reaction"]=e}onCoreRemoveChatReaction(e){this._handlers["@api/core-remove-chat-reaction"]=e}onCoreWantIdentity(e){this._handlers["@api/core-want-identity"]=e}onCoreUnwantIdentity(e){this._handlers["@api/core-unwant-identity"]=e}onCoreHaveIdentity(e){this._handlers["@api/core-have-identity"]=e}onCoreIdentityReset(e){this._handlers["@api/core-identity-reset"]=e}onCoreIdentityMember(e){this._handlers["@api/core-identity-member"]=e}onCoreIdentityDevice(e){this._handlers["@api/core-identity-device"]=e}onCoreWantPairing(e){this._handlers["@api/core-want-pairing"]=e}onCoreUnwantPairing(e){this._handlers["@api/core-unwant-pairing"]=e}onCoreHavePairing(e){this._handlers["@api/core-have-pairing"]=e}onCorePairingReset(e){this._handlers["@api/core-pairing-reset"]=e}onCoreWantLobby(e){this._handlers["@api/core-want-lobby"]=e}onCoreUnwantLobby(e){this._handlers["@api/core-unwant-lobby"]=e}onCoreHaveLobby(e){this._handlers["@api/core-have-lobby"]=e}onCoreLobbyReset(e){this._handlers["@api/core-lobby-reset"]=e}onCoreLobbyRoom(e){this._handlers["@api/core-lobby-room"]=e}onCoreWantRoomInfo(e){this._handlers["@api/core-want-room-info"]=e}onCoreHaveRoomInfo(e){this._handlers["@api/core-have-room-info"]=e}onCoreRoomInfo(e){this._handlers["@api/core-room-info"]=e}onCoreRoomInfoDigest(e){this._handlers["@api/core-room-info-digest"]=e}onCoreRoomInfoConfig(e){this._handlers["@api/core-room-info-config"]=e}onCoreRoomInfoRole(e){this._handlers["@api/core-room-info-role"]=e}onCoreRoomInfoLastMessage(e){this._handlers["@api/core-room-info-last-message"]=e}onCoreWantChat(e){this._handlers["@api/core-want-chat"]=e}onCoreUnwantChat(e){this._handlers["@api/core-unwant-chat"]=e}onCoreHaveChat(e){this._handlers["@api/core-have-chat"]=e}onCoreChatReset(e){this._handlers["@api/core-chat-reset"]=e}onCoreMessageInfo(e){this._handlers["@api/core-message-info"]=e}onCoreMessageInfoChat(e){this._handlers["@api/core-message-info-chat"]=e}onCoreMessageInfoMember(e){this._handlers["@api/core-message-info-member"]=e}onCoreMessageInfoRole(e){this._handlers["@api/core-message-info-role"]=e}onCoreMessageInfoReactions(e){this._handlers["@api/core-message-info-reactions"]=e}onCoreWantMembers(e){this._handlers["@api/core-want-members"]=e}onCoreUnwantMembers(e){this._handlers["@api/core-unwant-members"]=e}onCoreHaveMembers(e){this._handlers["@api/core-have-members"]=e}onCoreMemberListAdd(e){this._handlers["@api/core-member-list-add"]=e}onCoreMemberListRemove(e){this._handlers["@api/core-member-list-remove"]=e}onCoreMember(e){this._handlers["@api/core-member"]=e}onCoreDevice(e){this._handlers["@api/core-device"]=e}onDebugEnable(e){this._handlers["@api/debug-enable"]=e}onDebugDisable(e){this._handlers["@api/debug-disable"]=e}onSendLegacy(e){this._handlers["@api/send-legacy"]=e}_requestIsStream(e){return[].includes(e)}_responseIsStream(e){return[].includes(e)}_requestIsSend(e){return["@api/core-activate-room","@api/core-deactivate-room","@api/core-update-room-config","@api/core-update-room-settings","@api/core-update-room-status","@api/core-update-profile","@api/core-want-identity","@api/core-unwant-identity","@api/core-have-identity","@api/core-identity-reset","@api/core-identity-member","@api/core-identity-device","@api/core-want-pairing","@api/core-unwant-pairing","@api/core-have-pairing","@api/core-pairing-reset","@api/core-want-lobby","@api/core-unwant-lobby","@api/core-have-lobby","@api/core-lobby-reset","@api/core-lobby-room","@api/core-want-room-info","@api/core-have-room-info","@api/core-room-info","@api/core-room-info-digest","@api/core-room-info-config","@api/core-room-info-role","@api/core-room-info-last-message","@api/core-want-chat","@api/core-unwant-chat","@api/core-have-chat","@api/core-chat-reset","@api/core-message-info","@api/core-message-info-chat","@api/core-message-info-member","@api/core-message-info-role","@api/core-message-info-reactions","@api/core-want-members","@api/core-unwant-members","@api/core-have-members","@api/core-member-list-add","@api/core-member-list-remove","@api/core-member","@api/core-device","@api/send-legacy"].includes(e)}};
1const{c:e,RPC:a,RPCStream:o,RPCRequestStream:r}=require("hrpc/runtime"),{getEncoding:i}=require("./messages.js"),t=new Map([["@api/self-destruct",0],[0,"@api/self-destruct"],["@api/boot",1],[1,"@api/boot"],["@api/core-create-room",2],[2,"@api/core-create-room"],["@api/core-activate-room",3],[3,"@api/core-activate-room"],["@api/core-deactivate-room",4],[4,"@api/core-deactivate-room"],["@api/core-leave-room",5],[5,"@api/core-leave-room"],["@api/core-update-room-config",6],[6,"@api/core-update-room-config"],["@api/core-update-room-settings",7],[7,"@api/core-update-room-settings"],["@api/core-update-room-status",8],[8,"@api/core-update-room-status"],["@api/core-update-profile",9],[9,"@api/core-update-profile"],["@api/core-create-room-invitation",10],[10,"@api/core-create-room-invitation"],["@api/core-create-identity-invitation",11],[11,"@api/core-create-identity-invitation"],["@api/core-start-pairing",12],[12,"@api/core-start-pairing"],["@api/core-accept-join-request",13],[13,"@api/core-accept-join-request"],["@api/core-reject-join-request",14],[14,"@api/core-reject-join-request"],["@api/core-stop-pairing",15],[15,"@api/core-stop-pairing"],["@api/core-add-chat-message",16],[16,"@api/core-add-chat-message"],["@api/core-edit-chat-message",17],[17,"@api/core-edit-chat-message"],["@api/core-remove-chat-message",18],[18,"@api/core-remove-chat-message"],["@api/core-add-chat-reaction",19],[19,"@api/core-add-chat-reaction"],["@api/core-remove-chat-reaction",20],[20,"@api/core-remove-chat-reaction"],["@api/core-want-identity",21],[21,"@api/core-want-identity"],["@api/core-unwant-identity",22],[22,"@api/core-unwant-identity"],["@api/core-have-identity",23],[23,"@api/core-have-identity"],["@api/core-identity-reset",24],[24,"@api/core-identity-reset"],["@api/core-identity-member",25],[25,"@api/core-identity-member"],["@api/core-identity-device",26],[26,"@api/core-identity-device"],["@api/core-want-pairing",27],[27,"@api/core-want-pairing"],["@api/core-unwant-pairing",28],[28,"@api/core-unwant-pairing"],["@api/core-have-pairing",29],[29,"@api/core-have-pairing"],["@api/core-pairing-reset",30],[30,"@api/core-pairing-reset"],["@api/core-want-lobby",31],[31,"@api/core-want-lobby"],["@api/core-unwant-lobby",32],[32,"@api/core-unwant-lobby"],["@api/core-have-lobby",33],[33,"@api/core-have-lobby"],["@api/core-lobby-reset",34],[34,"@api/core-lobby-reset"],["@api/core-lobby-room",35],[35,"@api/core-lobby-room"],["@api/core-want-room-info",36],[36,"@api/core-want-room-info"],["@api/core-have-room-info",37],[37,"@api/core-have-room-info"],["@api/core-room-info",38],[38,"@api/core-room-info"],["@api/core-room-info-digest",39],[39,"@api/core-room-info-digest"],["@api/core-room-info-config",40],[40,"@api/core-room-info-config"],["@api/core-room-info-role",41],[41,"@api/core-room-info-role"],["@api/core-room-info-last-message",42],[42,"@api/core-room-info-last-message"],["@api/core-want-chat",43],[43,"@api/core-want-chat"],["@api/core-unwant-chat",44],[44,"@api/core-unwant-chat"],["@api/core-have-chat",45],[45,"@api/core-have-chat"],["@api/core-chat-reset",46],[46,"@api/core-chat-reset"],["@api/core-message-info",47],[47,"@api/core-message-info"],["@api/core-message-info-chat",48],[48,"@api/core-message-info-chat"],["@api/core-message-info-member",49],[49,"@api/core-message-info-member"],["@api/core-message-info-role",50],[50,"@api/core-message-info-role"],["@api/core-message-info-reactions",51],[51,"@api/core-message-info-reactions"],["@api/core-want-members",52],[52,"@api/core-want-members"],["@api/core-unwant-members",53],[53,"@api/core-unwant-members"],["@api/core-have-members",54],[54,"@api/core-have-members"],["@api/core-member-list-add",55],[55,"@api/core-member-list-add"],["@api/core-member-list-remove",56],[56,"@api/core-member-list-remove"],["@api/core-member",57],[57,"@api/core-member"],["@api/core-device",58],[58,"@api/core-device"],["@api/debug-enable",59],[59,"@api/debug-enable"],["@api/debug-disable",60],[60,"@api/debug-disable"],["@api/send-legacy",61],[61,"@api/send-legacy"]]);module.exports=class{constructor(c){this._stream=c,this._handlers=[],this._requestEncodings=new Map([["@api/self-destruct",i("@api/self-destruct-request")],["@api/boot",i("@api/boot-request")],["@api/core-create-room",i("@api/core/create-room-request")],["@api/core-activate-room",i("@api/core/activate-room-request")],["@api/core-deactivate-room",i("@api/core/deactivate-room-request")],["@api/core-leave-room",i("@api/core/leave-room-request")],["@api/core-update-room-config",i("@api/core/update-room-config-request")],["@api/core-update-room-settings",i("@api/core/update-room-settings-request")],["@api/core-update-room-status",i("@api/core/update-room-status-request")],["@api/core-update-profile",i("@api/core/update-profile-request")],["@api/core-create-room-invitation",i("@api/core/create-room-invitation-request")],["@api/core-create-identity-invitation",i("@api/core/create-identity-invitation-request")],["@api/core-start-pairing",i("@api/core/start-pairing-request")],["@api/core-accept-join-request",i("@api/core/accept-join-request-request")],["@api/core-reject-join-request",i("@api/core/reject-join-request-request")],["@api/core-stop-pairing",i("@api/core/stop-pairing-request")],["@api/core-add-chat-message",i("@api/core/add-chat-message-request")],["@api/core-edit-chat-message",i("@api/core/edit-chat-message-request")],["@api/core-remove-chat-message",i("@api/core/remove-chat-message-request")],["@api/core-add-chat-reaction",i("@api/core/add-chat-reaction-request")],["@api/core-remove-chat-reaction",i("@api/core/remove-chat-reaction-request")],["@api/core-want-identity",i("@api/core/want-identity")],["@api/core-unwant-identity",i("@api/core/unwant-identity")],["@api/core-have-identity",i("@api/core/have")],["@api/core-identity-reset",i("@api/core/identity")],["@api/core-identity-member",i("@api/core/identity-member")],["@api/core-identity-device",i("@api/core/identity-device")],["@api/core-want-pairing",i("@api/core/want-pairing")],["@api/core-unwant-pairing",i("@api/core/unwant-pairing")],["@api/core-have-pairing",i("@api/core/have")],["@api/core-pairing-reset",i("@api/core/pairing")],["@api/core-want-lobby",i("@api/core/want-lobby")],["@api/core-unwant-lobby",i("@api/core/unwant-lobby")],["@api/core-have-lobby",i("@api/core/have")],["@api/core-lobby-reset",i("@api/core/lobby")],["@api/core-lobby-room",i("@api/core/lobby-room")],["@api/core-want-room-info",i("@api/core/want-room-info")],["@api/core-have-room-info",i("@api/core/have")],["@api/core-room-info",i("@api/core/room-info")],["@api/core-room-info-digest",i("@api/core/room-info-digest")],["@api/core-room-info-config",i("@api/core/room-info-config")],["@api/core-room-info-role",i("@api/core/room-info-role")],["@api/core-room-info-last-message",i("@api/core/room-info-last-message")],["@api/core-want-chat",i("@api/core/want-chat")],["@api/core-unwant-chat",i("@api/core/unwant-chat")],["@api/core-have-chat",i("@api/core/have")],["@api/core-chat-reset",i("@api/core/chat-reset")],["@api/core-message-info",i("@api/core/message-info")],["@api/core-message-info-chat",i("@api/core/message-info-chat")],["@api/core-message-info-member",i("@api/core/message-info-member")],["@api/core-message-info-role",i("@api/core/message-info-role")],["@api/core-message-info-reactions",i("@api/core/message-info-reactions")],["@api/core-want-members",i("@api/core/want-members")],["@api/core-unwant-members",i("@api/core/unwant-members")],["@api/core-have-members",i("@api/core/have")],["@api/core-member-list-add",i("@api/core/member-list-add")],["@api/core-member-list-remove",i("@api/core/member-list-remove")],["@api/core-member",i("@api/core/member")],["@api/core-device",i("@api/core/device")],["@api/debug-enable",i("@api/debug/enable-request")],["@api/debug-disable",i("@api/debug/disable-request")],["@api/send-legacy",e.buffer]]),this._responseEncodings=new Map([["@api/boot",i("@api/boot-response")],["@api/core-create-room",i("@api/core/create-room-response")],["@api/core-leave-room",i("@api/core/leave-room-response")],["@api/core-create-room-invitation",i("@api/core/create-room-invitation-response")],["@api/core-create-identity-invitation",i("@api/core/create-identity-invitation-response")],["@api/core-start-pairing",i("@api/core/start-pairing-response")],["@api/core-accept-join-request",i("@api/core/accept-join-request-response")],["@api/core-reject-join-request",i("@api/core/reject-join-request-response")],["@api/core-stop-pairing",i("@api/core/stop-pairing-response")],["@api/core-add-chat-message",i("@api/core/add-chat-message-response")],["@api/core-edit-chat-message",i("@api/core/edit-chat-message-response")],["@api/core-remove-chat-message",i("@api/core/remove-chat-message-response")],["@api/core-add-chat-reaction",i("@api/core/add-chat-reaction-response")],["@api/core-remove-chat-reaction",i("@api/core/remove-chat-reaction-response")],["@api/debug-enable",i("@api/debug/enable-response")],["@api/debug-disable",i("@api/debug/disable-response")]]),this._rpc=new a(c,async a=>{const i=t.get(a.command),c=this._responseEncodings.get(i),n=this._requestEncodings.get(i);if(this._requestIsSend(i)){const o=a.data&&a.data.byteLength>0?e.decode(n,a.data):null;return void await this._handlers[i](o)}if(!this._requestIsStream(i)&&!this._responseIsStream(i)){const o=a.data&&a.data.byteLength>0?e.decode(n,a.data):null,r=await this._handlers[i](o);a.reply(e.encode(c,r))}if(!this._requestIsStream(i)&&this._responseIsStream(i)){const r=a.data&&a.data.byteLength>0?e.decode(n,a.data):null,t=new o(null,null,a.createResponseStream(),c);t.data=r,await this._handlers[i](t)}if(this._requestIsStream(i)&&!this._responseIsStream(i)){const o=new r(a,c,a.createRequestStream(),n),t=await this._handlers[i](o);a.reply(e.encode(c,t))}if(this._requestIsStream(i)&&this._responseIsStream(i)){const e=new r(a,c,a.createRequestStream(),n,a.createResponseStream(),c);await this._handlers[i](e)}})}async _call(a,o){const r=this._requestEncodings.get(a),i=this._responseEncodings.get(a),c=this._rpc.request(t.get(a)),n=e.encode(r,o);return c.send(n),e.decode(i,await c.reply())}_callSync(a,i){const c=this._requestEncodings.get(a),n=this._responseEncodings.get(a);if(this._requestIsSend(a)){const o=e.encode(c,i);this._rpc.event(t.get(a)).send(o)}const s=this._rpc.request(t.get(a));if(!this._requestIsStream(a)&&this._responseIsStream(a)){const a=e.encode(c,i);return s.send(a),new o(s.createResponseStream(),n)}return this._requestIsStream(a)&&!this._responseIsStream(a)?new r(s,n,null,null,s.createRequestStream(),c):this._requestIsStream(a)&&this._responseIsStream(a)?new r(s,n,s.createResponseStream(),n,s.createRequestStream(),c):void 0}async selfDestruct(e){return this._call("@api/self-destruct",e)}async boot(e){return this._call("@api/boot",e)}async coreCreateRoom(e){return this._call("@api/core-create-room",e)}coreActivateRoom(e){return this._callSync("@api/core-activate-room",e)}coreDeactivateRoom(e){return this._callSync("@api/core-deactivate-room",e)}async coreLeaveRoom(e){return this._call("@api/core-leave-room",e)}coreUpdateRoomConfig(e){return this._callSync("@api/core-update-room-config",e)}coreUpdateRoomSettings(e){return this._callSync("@api/core-update-room-settings",e)}coreUpdateRoomStatus(e){return this._callSync("@api/core-update-room-status",e)}coreUpdateProfile(e){return this._callSync("@api/core-update-profile",e)}async coreCreateRoomInvitation(e){return this._call("@api/core-create-room-invitation",e)}async coreCreateIdentityInvitation(e){return this._call("@api/core-create-identity-invitation",e)}async coreStartPairing(e){return this._call("@api/core-start-pairing",e)}async coreAcceptJoinRequest(e){return this._call("@api/core-accept-join-request",e)}async coreRejectJoinRequest(e){return this._call("@api/core-reject-join-request",e)}async coreStopPairing(e){return this._call("@api/core-stop-pairing",e)}async coreAddChatMessage(e){return this._call("@api/core-add-chat-message",e)}async coreEditChatMessage(e){return this._call("@api/core-edit-chat-message",e)}async coreRemoveChatMessage(e){return this._call("@api/core-remove-chat-message",e)}async coreAddChatReaction(e){return this._call("@api/core-add-chat-reaction",e)}async coreRemoveChatReaction(e){return this._call("@api/core-remove-chat-reaction",e)}coreWantIdentity(e){return this._callSync("@api/core-want-identity",e)}coreUnwantIdentity(e){return this._callSync("@api/core-unwant-identity",e)}coreHaveIdentity(e){return this._callSync("@api/core-have-identity",e)}coreIdentityReset(e){return this._callSync("@api/core-identity-reset",e)}coreIdentityMember(e){return this._callSync("@api/core-identity-member",e)}coreIdentityDevice(e){return this._callSync("@api/core-identity-device",e)}coreWantPairing(e){return this._callSync("@api/core-want-pairing",e)}coreUnwantPairing(e){return this._callSync("@api/core-unwant-pairing",e)}coreHavePairing(e){return this._callSync("@api/core-have-pairing",e)}corePairingReset(e){return this._callSync("@api/core-pairing-reset",e)}coreWantLobby(e){return this._callSync("@api/core-want-lobby",e)}coreUnwantLobby(e){return this._callSync("@api/core-unwant-lobby",e)}coreHaveLobby(e){return this._callSync("@api/core-have-lobby",e)}coreLobbyReset(e){return this._callSync("@api/core-lobby-reset",e)}coreLobbyRoom(e){return this._callSync("@api/core-lobby-room",e)}coreWantRoomInfo(e){return this._callSync("@api/core-want-room-info",e)}coreHaveRoomInfo(e){return this._callSync("@api/core-have-room-info",e)}coreRoomInfo(e){return this._callSync("@api/core-room-info",e)}coreRoomInfoDigest(e){return this._callSync("@api/core-room-info-digest",e)}coreRoomInfoConfig(e){return this._callSync("@api/core-room-info-config",e)}coreRoomInfoRole(e){return this._callSync("@api/core-room-info-role",e)}coreRoomInfoLastMessage(e){return this._callSync("@api/core-room-info-last-message",e)}coreWantChat(e){return this._callSync("@api/core-want-chat",e)}coreUnwantChat(e){return this._callSync("@api/core-unwant-chat",e)}coreHaveChat(e){return this._callSync("@api/core-have-chat",e)}coreChatReset(e){return this._callSync("@api/core-chat-reset",e)}coreMessageInfo(e){return this._callSync("@api/core-message-info",e)}coreMessageInfoChat(e){return this._callSync("@api/core-message-info-chat",e)}coreMessageInfoMember(e){return this._callSync("@api/core-message-info-member",e)}coreMessageInfoRole(e){return this._callSync("@api/core-message-info-role",e)}coreMessageInfoReactions(e){return this._callSync("@api/core-message-info-reactions",e)}coreWantMembers(e){return this._callSync("@api/core-want-members",e)}coreUnwantMembers(e){return this._callSync("@api/core-unwant-members",e)}coreHaveMembers(e){return this._callSync("@api/core-have-members",e)}coreMemberListAdd(e){return this._callSync("@api/core-member-list-add",e)}coreMemberListRemove(e){return this._callSync("@api/core-member-list-remove",e)}coreMember(e){return this._callSync("@api/core-member",e)}coreDevice(e){return this._callSync("@api/core-device",e)}async debugEnable(e){return this._call("@api/debug-enable",e)}async debugDisable(e){return this._call("@api/debug-disable",e)}sendLegacy(e){return this._callSync("@api/send-legacy",e)}onSelfDestruct(e){this._handlers["@api/self-destruct"]=e}onBoot(e){this._handlers["@api/boot"]=e}onCoreCreateRoom(e){this._handlers["@api/core-create-room"]=e}onCoreActivateRoom(e){this._handlers["@api/core-activate-room"]=e}onCoreDeactivateRoom(e){this._handlers["@api/core-deactivate-room"]=e}onCoreLeaveRoom(e){this._handlers["@api/core-leave-room"]=e}onCoreUpdateRoomConfig(e){this._handlers["@api/core-update-room-config"]=e}onCoreUpdateRoomSettings(e){this._handlers["@api/core-update-room-settings"]=e}onCoreUpdateRoomStatus(e){this._handlers["@api/core-update-room-status"]=e}onCoreUpdateProfile(e){this._handlers["@api/core-update-profile"]=e}onCoreCreateRoomInvitation(e){this._handlers["@api/core-create-room-invitation"]=e}onCoreCreateIdentityInvitation(e){this._handlers["@api/core-create-identity-invitation"]=e}onCoreStartPairing(e){this._handlers["@api/core-start-pairing"]=e}onCoreAcceptJoinRequest(e){this._handlers["@api/core-accept-join-request"]=e}onCoreRejectJoinRequest(e){this._handlers["@api/core-reject-join-request"]=e}onCoreStopPairing(e){this._handlers["@api/core-stop-pairing"]=e}onCoreAddChatMessage(e){this._handlers["@api/core-add-chat-message"]=e}onCoreEditChatMessage(e){this._handlers["@api/core-edit-chat-message"]=e}onCoreRemoveChatMessage(e){this._handlers["@api/core-remove-chat-message"]=e}onCoreAddChatReaction(e){this._handlers["@api/core-add-chat-reaction"]=e}onCoreRemoveChatReaction(e){this._handlers["@api/core-remove-chat-reaction"]=e}onCoreWantIdentity(e){this._handlers["@api/core-want-identity"]=e}onCoreUnwantIdentity(e){this._handlers["@api/core-unwant-identity"]=e}onCoreHaveIdentity(e){this._handlers["@api/core-have-identity"]=e}onCoreIdentityReset(e){this._handlers["@api/core-identity-reset"]=e}onCoreIdentityMember(e){this._handlers["@api/core-identity-member"]=e}onCoreIdentityDevice(e){this._handlers["@api/core-identity-device"]=e}onCoreWantPairing(e){this._handlers["@api/core-want-pairing"]=e}onCoreUnwantPairing(e){this._handlers["@api/core-unwant-pairing"]=e}onCoreHavePairing(e){this._handlers["@api/core-have-pairing"]=e}onCorePairingReset(e){this._handlers["@api/core-pairing-reset"]=e}onCoreWantLobby(e){this._handlers["@api/core-want-lobby"]=e}onCoreUnwantLobby(e){this._handlers["@api/core-unwant-lobby"]=e}onCoreHaveLobby(e){this._handlers["@api/core-have-lobby"]=e}onCoreLobbyReset(e){this._handlers["@api/core-lobby-reset"]=e}onCoreLobbyRoom(e){this._handlers["@api/core-lobby-room"]=e}onCoreWantRoomInfo(e){this._handlers["@api/core-want-room-info"]=e}onCoreHaveRoomInfo(e){this._handlers["@api/core-have-room-info"]=e}onCoreRoomInfo(e){this._handlers["@api/core-room-info"]=e}onCoreRoomInfoDigest(e){this._handlers["@api/core-room-info-digest"]=e}onCoreRoomInfoConfig(e){this._handlers["@api/core-room-info-config"]=e}onCoreRoomInfoRole(e){this._handlers["@api/core-room-info-role"]=e}onCoreRoomInfoLastMessage(e){this._handlers["@api/core-room-info-last-message"]=e}onCoreWantChat(e){this._handlers["@api/core-want-chat"]=e}onCoreUnwantChat(e){this._handlers["@api/core-unwant-chat"]=e}onCoreHaveChat(e){this._handlers["@api/core-have-chat"]=e}onCoreChatReset(e){this._handlers["@api/core-chat-reset"]=e}onCoreMessageInfo(e){this._handlers["@api/core-message-info"]=e}onCoreMessageInfoChat(e){this._handlers["@api/core-message-info-chat"]=e}onCoreMessageInfoMember(e){this._handlers["@api/core-message-info-member"]=e}onCoreMessageInfoRole(e){this._handlers["@api/core-message-info-role"]=e}onCoreMessageInfoReactions(e){this._handlers["@api/core-message-info-reactions"]=e}onCoreWantMembers(e){this._handlers["@api/core-want-members"]=e}onCoreUnwantMembers(e){this._handlers["@api/core-unwant-members"]=e}onCoreHaveMembers(e){this._handlers["@api/core-have-members"]=e}onCoreMemberListAdd(e){this._handlers["@api/core-member-list-add"]=e}onCoreMemberListRemove(e){this._handlers["@api/core-member-list-remove"]=e}onCoreMember(e){this._handlers["@api/core-member"]=e}onCoreDevice(e){this._handlers["@api/core-device"]=e}onDebugEnable(e){this._handlers["@api/debug-enable"]=e}onDebugDisable(e){this._handlers["@api/debug-disable"]=e}onSendLegacy(e){this._handlers["@api/send-legacy"]=e}_requestIsStream(e){return[].includes(e)}_responseIsStream(e){return[].includes(e)}_requestIsSend(e){return["@api/core-activate-room","@api/core-deactivate-room","@api/core-update-room-config","@api/core-update-room-settings","@api/core-update-room-status","@api/core-update-profile","@api/core-want-identity","@api/core-unwant-identity","@api/core-have-identity","@api/core-identity-reset","@api/core-identity-member","@api/core-identity-device","@api/core-want-pairing","@api/core-unwant-pairing","@api/core-have-pairing","@api/core-pairing-reset","@api/core-want-lobby","@api/core-unwant-lobby","@api/core-have-lobby","@api/core-lobby-reset","@api/core-lobby-room","@api/core-want-room-info","@api/core-have-room-info","@api/core-room-info","@api/core-room-info-digest","@api/core-room-info-config","@api/core-room-info-role","@api/core-room-info-last-message","@api/core-want-chat","@api/core-unwant-chat","@api/core-have-chat","@api/core-chat-reset","@api/core-message-info","@api/core-message-info-chat","@api/core-message-info-member","@api/core-message-info-role","@api/core-message-info-reactions","@api/core-want-members","@api/core-unwant-members","@api/core-have-members","@api/core-member-list-add","@api/core-member-list-remove","@api/core-member","@api/core-device","@api/send-legacy"].includes(e)}};
@holepunchto/keet-core/schema/spec/api/hrpc/messages.js +1 -1
……@@ -1 +1 @@
1const{c:e}=require("hyperschema/runtime");let d=10;const o={preencode(d,o){e.fixed32.preencode(d,o.key),e.uint.preencode(d,o.length)},encode(d,o){e.fixed32.encode(d,o.key),e.uint.encode(d,o.length)},decode:d=>({key:e.fixed32.decode(d),length:e.uint.decode(d)})},n={preencode(d,o){e.fixed32.preencode(d,o.key),e.uint.preencode(d,o.seq)},encode(d,o){e.fixed32.encode(d,o.key),e.uint.encode(d,o.seq)},decode:d=>({key:e.fixed32.decode(d),seq:e.uint.decode(d)})},c={preencode(d,o){e.fixed32.preencode(d,o.publicKey),e.fixed32.preencode(d,o.secretKey)},encode(d,o){e.fixed32.encode(d,o.publicKey),e.fixed32.encode(d,o.secretKey)},decode:d=>({publicKey:e.fixed32.decode(d),secretKey:e.fixed32.decode(d)})},r={preencode(d,o){e.fixed32.preencode(d,o.publicKey),e.fixed64.preencode(d,o.secretKey)},encode(d,o){e.fixed32.encode(d,o.publicKey),e.fixed64.encode(d,o.secretKey)},decode:d=>({publicKey:e.fixed32.decode(d),secretKey:e.fixed64.decode(d)})},t={preencode(d,o){e.fixed32.preencode(d,o.key),d.end++,o.encryptionKey&&e.buffer.preencode(d,o.encryptionKey),o.fastForwardTo&&e.fixed32.preencode(d,o.fastForwardTo)},encode(d,o){const n=(o.encryptionKey?1:0)|(o.fastForwardTo?2:0);e.fixed32.encode(d,o.key),e.uint.encode(d,n),o.encryptionKey&&e.buffer.encode(d,o.encryptionKey),o.fastForwardTo&&e.fixed32.encode(d,o.fastForwardTo)},decode(d){const o=e.fixed32.decode(d),n=e.uint.decode(d);return{key:o,encryptionKey:1&n?e.buffer.decode(d):null,fastForwardTo:2&n?e.fixed32.decode(d):null}}},i={preencode(d,o){e.uint.preencode(d,o.timestamp)},encode(d,o){e.uint.encode(d,o.timestamp)},decode:d=>({timestamp:e.uint.decode(d)})},a={preencode(d,o){e.uint.preencode(d,o.blockOffset),e.uint.preencode(d,o.blockLength),e.uint.preencode(d,o.byteOffset),e.uint.preencode(d,o.byteLength)},encode(d,o){e.uint.encode(d,o.blockOffset),e.uint.encode(d,o.blockLength),e.uint.encode(d,o.byteOffset),e.uint.encode(d,o.byteLength)},decode:d=>({blockOffset:e.uint.decode(d),blockLength:e.uint.decode(d),byteOffset:e.uint.decode(d),byteLength:e.uint.decode(d)})},s={preencode(d,o){e.uint.preencode(d,o.width),e.uint.preencode(d,o.height)},encode(d,o){e.uint.encode(d,o.width),e.uint.encode(d,o.height)},decode:d=>({width:e.uint.decode(d),height:e.uint.decode(d)})},p=e.frame(s),u={preencode(d,o){d.end++,o.name&&e.string.preencode(d,o.name),o.mimetype&&e.string.preencode(d,o.mimetype),o.dimensions&&p.preencode(d,o.dimensions),o.userdata&&e.buffer.preencode(d,o.userdata),o.duration&&e.uint.preencode(d,o.duration)},encode(d,o){const n=(o.name?1:0)|(o.mimetype?2:0)|(o.dimensions?4:0)|(o.userdata?8:0)|(o.duration?16:0)|(o.isPreview?32:0);e.uint.encode(d,n),o.name&&e.string.encode(d,o.name),o.mimetype&&e.string.encode(d,o.mimetype),o.dimensions&&p.encode(d,o.dimensions),o.userdata&&e.buffer.encode(d,o.userdata),o.duration&&e.uint.encode(d,o.duration)},decode(d){const o=e.uint.decode(d);return{name:1&o?e.string.decode(d):null,mimetype:2&o?e.string.decode(d):null,dimensions:4&o?p.decode(d):null,userdata:8&o?e.buffer.decode(d):null,duration:16&o?e.uint.decode(d):0,isPreview:!!(32&o)}}},l={preencode(d,o){e.fixed32.preencode(d,o.key),e.string.preencode(d,o.path),e.uint.preencode(d,o.version),e.uint.preencode(d,o.size)},encode(d,o){e.fixed32.encode(d,o.key),e.string.encode(d,o.path),e.uint.encode(d,o.version),e.uint.encode(d,o.size)},decode:d=>({key:e.fixed32.decode(d),path:e.string.decode(d),version:e.uint.decode(d),size:e.uint.decode(d)})},f={preencode(d,o){e.fixed32.preencode(d,o.key),a.preencode(d,o.blob)},encode(d,o){e.fixed32.encode(d,o.key),a.encode(d,o.blob)},decode:d=>({key:e.fixed32.decode(d),blob:a.decode(d)})},m=e.frame(f),y=e.frame(l),x={preencode(d,o){d.end++,o.inlined&&e.buffer.preencode(d,o.inlined),o.blob&&a.preencode(d,o.blob),o.externalBlob&&m.preencode(d,o.externalBlob),o.externalDrive&&y.preencode(d,o.externalDrive)},encode(d,o){const n=(o.inlined?1:0)|(o.blob?2:0)|(o.externalBlob?4:0)|(o.externalDrive?8:0);e.uint.encode(d,n),o.inlined&&e.buffer.encode(d,o.inlined),o.blob&&a.encode(d,o.blob),o.externalBlob&&m.encode(d,o.externalBlob),o.externalDrive&&y.encode(d,o.externalDrive)},decode(d){const o=e.uint.decode(d);return{inlined:1&o?e.buffer.decode(d):null,blob:2&o?a.decode(d):null,externalBlob:4&o?m.decode(d):null,externalDrive:8&o?y.decode(d):null}}},b=e.frame(x),v=e.frame(u),g={preencode(d,o){b.preencode(d,o.pointer),d.end++,o.metadata&&v.preencode(d,o.metadata),o.preview&&lu.preencode(d,o.preview),o.hash&&e.fixed32.preencode(d,o.hash)},encode(d,o){const n=(o.metadata?1:0)|(o.preview?2:0)|(o.hash?4:0);b.encode(d,o.pointer),e.uint.encode(d,n),o.metadata&&v.encode(d,o.metadata),o.preview&&lu.encode(d,o.preview),o.hash&&e.fixed32.encode(d,o.hash)},decode(d){const o=b.decode(d),n=e.uint.decode(d);return{pointer:o,metadata:1&n?v.decode(d):null,preview:2&n?lu.decode(d):null,hash:4&n?e.fixed32.decode(d):null}}},h=e.frame(g),k=h,K=h,w={preencode(e,d){e.end++,d.small&&h.preencode(e,d.small),d.medium&&k.preencode(e,d.medium),d.large&&K.preencode(e,d.large)},encode(d,o){const n=(o.small?1:0)|(o.medium?2:0)|(o.large?4:0);e.uint.encode(d,n),o.small&&h.encode(d,o.small),o.medium&&k.encode(d,o.medium),o.large&&K.encode(d,o.large)},decode(d){const o=e.uint.decode(d);return{small:1&o?h.decode(d):null,medium:2&o?k.decode(d):null,large:4&o?K.decode(d):null}}},P={preencode(e,d){e.end++},encode(d,o){const n=o.isDeleted?1:0;e.uint.encode(d,n)},decode:d=>({isDeleted:!!(1&e.uint.decode(d))})},R=e.frame(P),T=h,A={preencode(d,o){e.uint.preencode(d,o.id),n.preencode(d,o.oplog),R.preencode(d,o.status),T.preencode(d,o.file),d.end++,o.version&&e.uint.preencode(d,o.version)},encode(d,o){const c=o.version?1:0;e.uint.encode(d,o.id),n.encode(d,o.oplog),R.encode(d,o.status),T.encode(d,o.file),e.uint.encode(d,c),o.version&&e.uint.encode(d,o.version)},decode:d=>({id:e.uint.decode(d),oplog:n.decode(d),status:R.decode(d),file:T.decode(d),version:1&e.uint.decode(d)?e.uint.decode(d):0})},M={preencode(e,d){e.end++},encode(d,o){const n=(o.isActive?1:0)|(o.isIndexing?2:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isActive:!!(1&o),isIndexing:!!(2&o)}}},q={preencode(d,o){const n=(o.isAdmin?1:0)|(o.isModerator?2:0)|(o.isPending?4:0)|(o.isActive?8:0)|(o.isMuted?16:0)|(o.isBanned?32:0)|(o.isShadowBanned?64:0)|(o.isRemoved?128:0);e.uint.preencode(d,n)},encode(d,o){const n=(o.isAdmin?1:0)|(o.isModerator?2:0)|(o.isPending?4:0)|(o.isActive?8:0)|(o.isMuted?16:0)|(o.isBanned?32:0)|(o.isShadowBanned?64:0)|(o.isRemoved?128:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isAdmin:!!(1&o),isModerator:!!(2&o),isPending:!!(4&o),isActive:!!(8&o),isMuted:!!(16&o),isBanned:!!(32&o),isShadowBanned:!!(64&o),isRemoved:!!(128&o)}}},I={preencode(e,d){e.end++},encode(d,o){const n=(o.isMuted?1:0)|(o.isBanned?2:0)|(o.isShadowBanned?4:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isMuted:!!(1&o),isBanned:!!(2&o),isShadowBanned:!!(4&o)}}},S={preencode(d,o){e.uint.preencode(d,o.version)},encode(d,o){e.uint.encode(d,o.version)},decode:d=>({version:e.uint.decode(d)})},C={preencode(d,o){e.uint.preencode(d,o.total),e.uint.preencode(d,o.active)},encode(d,o){e.uint.encode(d,o.total),e.uint.encode(d,o.active)},decode:d=>({total:e.uint.decode(d),active:e.uint.decode(d)})},D={preencode(d,o){e.uint.preencode(d,o.total),e.uint.preencode(d,o.active),e.uint.preencode(d,o.pending)},encode(d,o){e.uint.encode(d,o.total),e.uint.encode(d,o.active),e.uint.encode(d,o.pending)},decode:d=>({total:e.uint.decode(d),active:e.uint.decode(d),pending:e.uint.decode(d)})},L={preencode(d,o){e.uint.preencode(d,o.clock),e.uint.preencode(d,o.pinned),e.uint.preencode(d,o.threads),e.uint.preencode(d,o.timestamp),d.end++,o.flagsClock&&e.uint.preencode(d,o.flagsClock)},encode(d,o){const n=o.flagsClock?1:0;e.uint.encode(d,o.clock),e.uint.encode(d,o.pinned),e.uint.encode(d,o.threads),e.uint.encode(d,o.timestamp),e.uint.encode(d,n),o.flagsClock&&e.uint.encode(d,o.flagsClock)},decode:d=>({clock:e.uint.decode(d),pinned:e.uint.decode(d),threads:e.uint.decode(d),timestamp:e.uint.decode(d),flagsClock:1&e.uint.decode(d)?e.uint.decode(d):0})},F={preencode(d,o){e.uint.preencode(d,o.clock)},encode(d,o){e.uint.encode(d,o.clock)},decode:d=>({clock:e.uint.decode(d)})},j=e.frame(C),E=e.frame(D),B=e.frame(L),z=e.frame(F),N={preencode(e,d){j.preencode(e,d.devices),E.preencode(e,d.members),B.preencode(e,d.chat),z.preencode(e,d.files)},encode(e,d){j.encode(e,d.devices),E.encode(e,d.members),B.encode(e,d.chat),z.encode(e,d.files)},decode:e=>({devices:j.decode(e),members:E.decode(e),chat:B.decode(e),files:z.decode(e)})},O={Default:1,Broadcast:2,DirectMessage:3},U={preencode(e,d){e.end++},encode(d,o){if(o>3)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},V={preencode(o,n){const c=(n.roomType?1:0)|(n.isExperimental?2:0)|(n.isJoiningDisabled?4:0)|(n.isAppendingDisabled?8:0)|(n.isCallingDisabled?16:0)|(n.isMembershipEventsDisabled?32:0)|(d>=4&&n.isAttachmentsDisabled?64:0)|(d>=4&&n.isLinksDisabled?128:0)|(d>=5&&n.buildType?256:0)|(d>=9&&n.isRoomInviteHidden?512:0);e.uint.preencode(o,c),n.roomType&&U.preencode(o,n.roomType),d>=5&&n.buildType&&jp.preencode(o,n.buildType)},encode(o,n){const c=(n.roomType?1:0)|(n.isExperimental?2:0)|(n.isJoiningDisabled?4:0)|(n.isAppendingDisabled?8:0)|(n.isCallingDisabled?16:0)|(n.isMembershipEventsDisabled?32:0)|(d>=4&&n.isAttachmentsDisabled?64:0)|(d>=4&&n.isLinksDisabled?128:0)|(d>=5&&n.buildType?256:0)|(d>=9&&n.isRoomInviteHidden?512:0);e.uint.encode(o,c),n.roomType&&U.encode(o,n.roomType),d>=5&&n.buildType&&jp.encode(o,n.buildType)},decode(o){const n=e.uint.decode(o);return{roomType:1&n?U.decode(o):0,isExperimental:!!(2&n),isJoiningDisabled:!!(4&n),isAppendingDisabled:!!(8&n),isCallingDisabled:!!(16&n),isMembershipEventsDisabled:!!(32&n),isAttachmentsDisabled:d>=4&&!!(64&n),isLinksDisabled:d>=4&&!!(128&n),buildType:d>=5&&256&n?jp.decode(o):null,isRoomInviteHidden:d>=9&&!!(512&n)}}},J=e.frame(S),H=e.frame(V),W={preencode(d,o){J.preencode(d,o.abi),H.preencode(d,o.settings),e.uint.preencode(d,o.creationTime)},encode(d,o){J.encode(d,o.abi),H.encode(d,o.settings),e.uint.encode(d,o.creationTime)},decode:d=>({abi:J.decode(d),settings:H.decode(d),creationTime:e.uint.decode(d)})},G={preencode(d,o){e.fixed32.preencode(d,o.seed)},encode(d,o){e.fixed32.encode(d,o.seed)},decode:d=>({seed:e.fixed32.decode(d)})},Q={preencode(d,o){c.preencode(d,o.mailboxKeyPair),r.preencode(d,o.discoveryKeyPair),e.fixed32.preencode(d,o.wakeupTopic),e.fixed32.preencode(d,o.swarmTopic)},encode(d,o){c.encode(d,o.mailboxKeyPair),r.encode(d,o.discoveryKeyPair),e.fixed32.encode(d,o.wakeupTopic),e.fixed32.encode(d,o.swarmTopic)},decode:d=>({mailboxKeyPair:c.decode(d),discoveryKeyPair:r.decode(d),wakeupTopic:e.fixed32.decode(d),swarmTopic:e.fixed32.decode(d)})},X={en:"en",it:"it",ru:"ru",es:"es",de:"de"},Y={preencode(e,d){e.end++},encode(d,o){switch(o){case"en":e.uint.encode(d,1);break;case"it":e.uint.encode(d,2);break;case"ru":e.uint.encode(d,3);break;case"es":e.uint.encode(d,4);break;case"de":e.uint.encode(d,5);break;default:throw new Error("Unknown enum")}},decode(d){switch(e.uint.decode(d)){case 1:return"en";case 2:return"it";case 3:return"ru";case 4:return"es";case 5:return"de";default:return null}}},Z=e.array(Y),$=e.array(e.fixed32),_={preencode(d,o){d.end++,o.title&&e.string.preencode(d,o.title),o.avatar&&fu.preencode(d,o.avatar),o.description&&e.string.preencode(d,o.description),o.supportedLanguages&&Z.preencode(d,o.supportedLanguages),o.blindPeers&&$.preencode(d,o.blindPeers)},encode(d,o){const n=(o.title?1:0)|(o.avatar?2:0)|(o.description?4:0)|(o.supportedLanguages?8:0)|(o.blindPeers?16:0);e.uint.encode(d,n),o.title&&e.string.encode(d,o.title),o.avatar&&fu.encode(d,o.avatar),o.description&&e.string.encode(d,o.description),o.supportedLanguages&&Z.encode(d,o.supportedLanguages),o.blindPeers&&$.encode(d,o.blindPeers)},decode(d){const o=e.uint.decode(d);return{title:1&o?e.string.decode(d):null,avatar:2&o?fu.decode(d):null,description:4&o?e.string.decode(d):null,supportedLanguages:8&o?Z.decode(d):null,blindPeers:16&o?$.decode(d):null}}},ee={preencode(d,o){e.fixed32.preencode(d,o.key)},encode(d,o){e.fixed32.encode(d,o.key)},decode:d=>({key:e.fixed32.decode(d)})},de=e.frame(i),oe=e.frame(ee),ne={preencode(e,d){de.preencode(e,d.header),oe.preencode(e,d.peer)},encode(e,d){de.encode(e,d.header),oe.encode(e,d.peer)},decode:e=>({header:de.decode(e),peer:oe.decode(e)})},ce=de,re={preencode(d,o){ce.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){ce.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:ce.decode(d),key:e.fixed32.decode(d)})},te={preencode(d,o){e.fixed32.preencode(d,o.memberKey),e.buffer.preencode(d,o.proof)},encode(d,o){e.fixed32.encode(d,o.memberKey),e.buffer.encode(d,o.proof)},decode:d=>({memberKey:e.fixed32.decode(d),proof:e.buffer.decode(d)})},ie={preencode(d,o){e.fixed32.preencode(d,o.id),e.buffer.preencode(d,o.response)},encode(d,o){e.fixed32.encode(d,o.id),e.buffer.encode(d,o.response)},decode:d=>({id:e.fixed32.decode(d),response:e.buffer.decode(d)})},ae=e.frame(M),se=e.frame(ie),pe={preencode(d,o){e.fixed32.preencode(d,o.key),e.fixed32.preencode(d,o.memberKey),ae.preencode(d,o.status),mu.preencode(d,o.profile),d.end++,o.invitation&&se.preencode(d,o.invitation)},encode(d,o){const n=o.invitation?1:0;e.fixed32.encode(d,o.key),e.fixed32.encode(d,o.memberKey),ae.encode(d,o.status),mu.encode(d,o.profile),e.uint.encode(d,n),o.invitation&&se.encode(d,o.invitation)},decode:d=>({key:e.fixed32.decode(d),memberKey:e.fixed32.decode(d),status:ae.decode(d),profile:mu.decode(d),invitation:1&e.uint.decode(d)?se.decode(d):null})},ue={preencode(d,o){e.uint.preencode(d,o.timestamp),d.end++,o.mailbox&&e.fixed32.preencode(d,o.mailbox),o.displayName&&e.string.preencode(d,o.displayName),o.avatar&&yu.preencode(d,o.avatar),o.username&&e.string.preencode(d,o.username)},encode(d,o){const n=(o.mailbox?1:0)|(o.displayName?2:0)|(o.avatar?4:0)|(o.username?8:0);e.uint.encode(d,o.timestamp),e.uint.encode(d,n),o.mailbox&&e.fixed32.encode(d,o.mailbox),o.displayName&&e.string.encode(d,o.displayName),o.avatar&&yu.encode(d,o.avatar),o.username&&e.string.encode(d,o.username)},decode(d){const o=e.uint.decode(d),n=e.uint.decode(d);return{timestamp:o,mailbox:1&n?e.fixed32.decode(d):null,displayName:2&n?e.string.decode(d):null,avatar:4&n?yu.decode(d):null,username:8&n?e.string.decode(d):null}}},le={preencode(o,n){o.end++,n.swarmKey&&e.fixed32.preencode(o,n.swarmKey),n.name&&e.string.preencode(o,n.name),d>=5&&n.buildType&&jp.preencode(o,n.buildType)},encode(o,n){const c=(n.swarmKey?1:0)|(n.name?2:0)|(n.isMobile?4:0)|(d>=5&&n.buildType?8:0);e.uint.encode(o,c),n.swarmKey&&e.fixed32.encode(o,n.swarmKey),n.name&&e.string.encode(o,n.name),d>=5&&n.buildType&&jp.encode(o,n.buildType)},decode(o){const n=e.uint.decode(o);return{swarmKey:1&n?e.fixed32.decode(o):null,name:2&n?e.string.decode(o):null,isMobile:!!(4&n),buildType:d>=5&&8&n?jp.decode(o):null}}},fe=e.frame(ue),me={preencode(e,d){fe.preencode(e,d.profile),te.preencode(e,d.attestation)},encode(e,d){fe.encode(e,d.profile),te.encode(e,d.attestation)},decode:e=>({profile:fe.decode(e),attestation:te.decode(e)})},ye={preencode(e,d){xu.preencode(e,d.profile),te.preencode(e,d.attestation)},encode(e,d){xu.encode(e,d.profile),te.encode(e,d.attestation)},decode:e=>({profile:xu.decode(e),attestation:te.decode(e)})},xe=fe,be={preencode(e,d){xe.preencode(e,d.profile),te.preencode(e,d.attestation)},encode(e,d){xe.encode(e,d.profile),te.encode(e,d.attestation)},decode:e=>({profile:xe.decode(e),attestation:te.decode(e)})},ve={preencode(d,o){e.fixed32.preencode(d,o.id),e.buffer.preencode(d,o.data),e.buffer.preencode(d,o.signature)},encode(d,o){e.fixed32.encode(d,o.id),e.buffer.encode(d,o.data),e.buffer.encode(d,o.signature)},decode:d=>({id:e.fixed32.decode(d),data:e.buffer.decode(d),signature:e.buffer.decode(d)})},ge={preencode(d,o){e.fixed32.preencode(d,o.devicePublicKey)},encode(d,o){e.fixed32.encode(d,o.devicePublicKey)},decode:d=>({devicePublicKey:e.fixed32.decode(d)})},he={preencode(d,o){te.preencode(d,o.privateProfileIdentity),e.buffer.preencode(d,o.deviceProof)},encode(d,o){te.encode(d,o.privateProfileIdentity),e.buffer.encode(d,o.deviceProof)},decode:d=>({privateProfileIdentity:te.decode(d),deviceProof:e.buffer.decode(d)})},ke={preencode(d,o){e.fixed32.preencode(d,o.deviceKey),te.preencode(d,o.privateProfileIdentity),e.buffer.preencode(d,o.deviceProof)},encode(d,o){e.fixed32.encode(d,o.deviceKey),te.encode(d,o.privateProfileIdentity),e.buffer.encode(d,o.deviceProof)},decode:d=>({deviceKey:e.fixed32.decode(d),privateProfileIdentity:te.decode(d),deviceProof:e.buffer.decode(d)})},Ke=e.frame(ye),we=e.frame(me),Pe=e.frame(ge),Re={preencode(d,o){e.fixed32.preencode(d,o.deviceKey),r.preencode(d,o.keyPair),Ke.preencode(d,o.device),we.preencode(d,o.member),d.end++,o.identity&&Pe.preencode(d,o.identity)},encode(d,o){const n=o.identity?1:0;e.fixed32.encode(d,o.deviceKey),r.encode(d,o.keyPair),Ke.encode(d,o.device),we.encode(d,o.member),e.uint.encode(d,n),o.identity&&Pe.encode(d,o.identity)},decode:d=>({deviceKey:e.fixed32.decode(d),keyPair:r.decode(d),device:Ke.decode(d),member:we.decode(d),identity:1&e.uint.decode(d)?Pe.decode(d):null})},Te=e.frame(Re),Ae={preencode(d,o){e.fixed32.preencode(d,o.id),Te.preencode(d,o.request),e.buffer.preencode(d,o.signature)},encode(d,o){e.fixed32.encode(d,o.id),Te.encode(d,o.request),e.buffer.encode(d,o.signature)},decode:d=>({id:e.fixed32.decode(d),request:Te.decode(d),signature:e.buffer.decode(d)})},Me=Ke,qe=we,Ie={preencode(e,d){Me.preencode(e,d.device),e.end++,d.member&&qe.preencode(e,d.member)},encode(d,o){const n=o.member?1:0;Me.encode(d,o.device),e.uint.encode(d,n),o.member&&qe.encode(d,o.member)},decode:d=>({device:Me.decode(d),member:1&e.uint.decode(d)?qe.decode(d):null})},Se=e.frame(Ae),Ce=e.frame(Ie),De={preencode(e,d){e.end++,d.withInvitation&&Se.preencode(e,d.withInvitation),d.withMemberProof&&Ce.preencode(e,d.withMemberProof)},encode(d,o){const n=(o.withInvitation?1:0)|(o.withMemberProof?2:0);e.uint.encode(d,n),o.withInvitation&&Se.encode(d,o.withInvitation),o.withMemberProof&&Ce.encode(d,o.withMemberProof)},decode(d){const o=e.uint.decode(d);return{withInvitation:1&o?Se.decode(d):null,withMemberProof:2&o?Ce.decode(d):null}}},Le=e.frame(ve),Fe=e.frame(he),je={preencode(e,d){Le.preencode(e,d.signedKeys),e.end++,d.identity&&Fe.preencode(e,d.identity)},encode(d,o){const n=o.identity?1:0;Le.encode(d,o.signedKeys),e.uint.encode(d,n),o.identity&&Fe.encode(d,o.identity)},decode:d=>({signedKeys:Le.decode(d),identity:1&e.uint.decode(d)?Fe.decode(d):null})},Ee={preencode(o,n){o.end++,n.expiration&&e.uint.preencode(o,n.expiration),d>=5&&n.buildType&&jp.preencode(o,n.buildType)},encode(o,n){const c=(n.expiration?1:0)|(n.requiresConfirmation?2:0)|(n.canModerate?4:0)|(n.canAdmin?8:0)|(d>=5&&n.buildType?16:0);e.uint.encode(o,c),n.expiration&&e.uint.encode(o,n.expiration),d>=5&&n.buildType&&jp.encode(o,n.buildType)},decode(o){const n=e.uint.decode(o);return{expiration:1&n?e.uint.decode(o):0,requiresConfirmation:!!(2&n),canModerate:!!(4&n),canAdmin:!!(8&n),buildType:d>=5&&16&n?jp.decode(o):null}}},Be=Le,ze=e.frame(Ee),Ne={preencode(d,n){e.fixed32.preencode(d,n.id),Be.preencode(d,n.response),ze.preencode(d,n.metadata),d.end++,n.anchor&&o.preencode(d,n.anchor)},encode(d,n){const c=(n.anchor?1:0)|(n.isActive?2:0);e.fixed32.encode(d,n.id),Be.encode(d,n.response),ze.encode(d,n.metadata),e.uint.encode(d,c),n.anchor&&o.encode(d,n.anchor)},decode(d){const n=e.fixed32.decode(d),c=Be.decode(d),r=ze.decode(d),t=e.uint.decode(d);return{id:n,response:c,metadata:r,anchor:1&t?o.decode(d):null,isActive:!!(2&t)}}},Oe=de,Ue=e.frame(Ne),Ve={preencode(e,d){Oe.preencode(e,d.header),Ue.preencode(e,d.invitation)},encode(e,d){Oe.encode(e,d.header),Ue.encode(e,d.invitation)},decode:e=>({header:Oe.decode(e),invitation:Ue.decode(e)})},Je=de,He={preencode(d,o){Je.preencode(d,o.header),e.fixed32.preencode(d,o.id)},encode(d,o){Je.encode(d,o.header),e.fixed32.encode(d,o.id)},decode:d=>({header:Je.decode(d),id:e.fixed32.decode(d)})},We={preencode(d,n){e.fixed32.preencode(d,n.mailbox),e.fixed32.preencode(d,n.invitationSeed),o.preencode(d,n.anchor)},encode(d,n){e.fixed32.encode(d,n.mailbox),e.fixed32.encode(d,n.invitationSeed),o.encode(d,n.anchor)},decode:d=>({mailbox:e.fixed32.decode(d),invitationSeed:e.fixed32.decode(d),anchor:o.decode(d)})},Ge={preencode(d,o){e.fixed32.preencode(d,o.roomKey),e.fixed32.preencode(d,o.encryptionKey),e.fixed32.preencode(d,o.seed),d.end++,o.fastForwardTo&&e.fixed32.preencode(d,o.fastForwardTo)},encode(d,o){const n=o.fastForwardTo?1:0;e.fixed32.encode(d,o.roomKey),e.fixed32.encode(d,o.encryptionKey),e.fixed32.encode(d,o.seed),e.uint.encode(d,n),o.fastForwardTo&&e.fixed32.encode(d,o.fastForwardTo)},decode:d=>({roomKey:e.fixed32.decode(d),encryptionKey:e.fixed32.decode(d),seed:e.fixed32.decode(d),fastForwardTo:1&e.uint.decode(d)?e.fixed32.decode(d):null})},Qe={preencode(d,n){e.fixed32.preencode(d,n.mailbox),e.fixed32.preencode(d,n.invitationSeed),o.preencode(d,n.anchor),e.fixed32.preencode(d,n.identityPublicKey)},encode(d,n){e.fixed32.encode(d,n.mailbox),e.fixed32.encode(d,n.invitationSeed),o.encode(d,n.anchor),e.fixed32.encode(d,n.identityPublicKey)},decode:d=>({mailbox:e.fixed32.decode(d),invitationSeed:e.fixed32.decode(d),anchor:o.decode(d),identityPublicKey:e.fixed32.decode(d)})},Xe={preencode(d,o){e.fixed32.preencode(d,o.mailbox)},encode(d,o){e.fixed32.encode(d,o.mailbox)},decode:d=>({mailbox:e.fixed32.decode(d)})},Ye=e.frame(We),Ze=e.frame(Qe),$e=e.frame(Xe),_e=e.frame(Ge),ed=e.array(e.ipv4Address),dd={preencode(e,o){e.end++,o.room&&Ye.preencode(e,o.room),o.identity&&Ze.preencode(e,o.identity),o.contact&&$e.preencode(e,o.contact),o.readonly&&_e.preencode(e,o.readonly),o.additionalNodes&&ed.preencode(e,o.additionalNodes),d>=5&&o.buildType&&jp.preencode(e,o.buildType)},encode(o,n){const c=(n.room?1:0)|(n.identity?2:0)|(n.contact?4:0)|(n.readonly?8:0)|(n.additionalNodes?16:0)|(d>=5&&n.buildType?32:0);e.uint.encode(o,c),n.room&&Ye.encode(o,n.room),n.identity&&Ze.encode(o,n.identity),n.contact&&$e.encode(o,n.contact),n.readonly&&_e.encode(o,n.readonly),n.additionalNodes&&ed.encode(o,n.additionalNodes),d>=5&&n.buildType&&jp.encode(o,n.buildType)},decode(o){const n=e.uint.decode(o);return{room:1&n?Ye.decode(o):null,identity:2&n?Ze.decode(o):null,contact:4&n?$e.decode(o):null,readonly:8&n?_e.decode(o):null,additionalNodes:16&n?ed.decode(o):null,buildType:d>=5&&32&n?jp.decode(o):null}}},od=de,nd={preencode(d,o){od.preencode(d,o.header),e.buffer.preencode(d,o.blindRequest)},encode(d,o){od.encode(d,o.header),e.buffer.encode(d,o.blindRequest)},decode:d=>({header:od.decode(d),blindRequest:e.buffer.decode(d)})},cd=de,rd={preencode(o,n){cd.preencode(o,n.header),o.end++,n.profile&&bu.preencode(o,n.profile),d>=10&&n.key&&e.fixed32.preencode(o,n.key)},encode(o,n){const c=(n.profile?1:0)|(d>=10&&n.key?2:0);cd.encode(o,n.header),e.uint.encode(o,c),n.profile&&bu.encode(o,n.profile),d>=10&&n.key&&e.fixed32.encode(o,n.key)},decode(o){const n=cd.decode(o),c=e.uint.decode(o);return{header:n,profile:1&c?bu.decode(o):null,key:d>=10&&2&c?e.fixed32.decode(o):null}}},td=de,id={preencode(d,o){td.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){td.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:td.decode(d),key:e.fixed32.decode(d)})},ad={preencode(e,d){},encode(e,d){},decode:e=>({})},sd=ad,pd=Te,ud={preencode(d,o){e.fixed32.preencode(d,o.deviceKey),e.fixed32.preencode(d,o.id),pd.preencode(d,o.request)},encode(d,o){e.fixed32.encode(d,o.deviceKey),e.fixed32.encode(d,o.id),pd.encode(d,o.request)},decode:d=>({deviceKey:e.fixed32.decode(d),id:e.fixed32.decode(d),request:pd.decode(d)})},ld=de,fd=Fe,md={preencode(d,o){ld.preencode(d,o.header),e.fixed32.preencode(d,o.deviceKey),d.end++,o.identity&&fd.preencode(d,o.identity)},encode(d,o){const n=o.identity?1:0;ld.encode(d,o.header),e.fixed32.encode(d,o.deviceKey),e.uint.encode(d,n),o.identity&&fd.encode(d,o.identity)},decode:d=>({header:ld.decode(d),deviceKey:e.fixed32.decode(d),identity:1&e.uint.decode(d)?fd.decode(d):null})},yd=de,xd={preencode(d,o){yd.preencode(d,o.header),e.fixed32.preencode(d,o.deviceKey)},encode(d,o){yd.encode(d,o.header),e.fixed32.encode(d,o.deviceKey)},decode:d=>({header:yd.decode(d),deviceKey:e.fixed32.decode(d)})},bd=e.frame(q),vd=fe,gd={preencode(d,o){e.fixed32.preencode(d,o.key),bd.preencode(d,o.status),vd.preencode(d,o.profile)},encode(d,o){e.fixed32.encode(d,o.key),bd.encode(d,o.status),vd.encode(d,o.profile)},decode:d=>({key:e.fixed32.decode(d),status:bd.decode(d),profile:vd.decode(d)})},hd=bd,kd=fe,Kd={preencode(d,o){e.fixed32.preencode(d,o.key),hd.preencode(d,o.status),kd.preencode(d,o.profile),d.end++,o.proofs&&vu.preencode(d,o.proofs)},encode(d,o){const n=o.proofs?1:0;e.fixed32.encode(d,o.key),hd.encode(d,o.status),kd.encode(d,o.profile),e.uint.encode(d,n),o.proofs&&vu.encode(d,o.proofs)},decode:d=>({key:e.fixed32.decode(d),status:hd.decode(d),profile:kd.decode(d),proofs:1&e.uint.decode(d)?vu.decode(d):null})},wd={preencode(d,o){e.fixed32.preencode(d,o.key),d.end++,o.profileAttestation&&e.buffer.preencode(d,o.profileAttestation),o.latestReceipt&&e.buffer.preencode(d,o.latestReceipt)},encode(d,o){const n=(o.profileAttestation?1:0)|(o.latestReceipt?2:0);e.fixed32.encode(d,o.key),e.uint.encode(d,n),o.profileAttestation&&e.buffer.encode(d,o.profileAttestation),o.latestReceipt&&e.buffer.encode(d,o.latestReceipt)},decode(d){const o=e.fixed32.decode(d),n=e.uint.decode(d);return{key:o,profileAttestation:1&n?e.buffer.decode(d):null,latestReceipt:2&n?e.buffer.decode(d):null}}},Pd=de,Rd=we,Td={preencode(e,d){Pd.preencode(e,d.header),Rd.preencode(e,d.member)},encode(e,d){Pd.encode(e,d.header),Rd.encode(e,d.member)},decode:e=>({header:Pd.decode(e),member:Rd.decode(e)})},Ad=de,Md=e.frame(I),qd={preencode(d,o){Ad.preencode(d,o.header),e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.key),Md.preencode(d,o.status)},encode(d,o){Ad.encode(d,o.header),e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.key),Md.encode(d,o.status)},decode:d=>({header:Ad.decode(d),memberKey:e.fixed32.decode(d),key:e.uint.decode(d),status:Md.decode(d)})},Id=de,Sd={preencode(d,o){Id.preencode(d,o.header),e.fixed32.preencode(d,o.key),d.end++},encode(d,o){const n=(o.isModerator?1:0)|(o.isAdmin?2:0);Id.encode(d,o.header),e.fixed32.encode(d,o.key),e.uint.encode(d,n)},decode(d){const o=Id.decode(d),n=e.fixed32.decode(d),c=e.uint.decode(d);return{header:o,key:n,isModerator:!!(1&c),isAdmin:!!(2&c)}}},Cd=de,Dd={preencode(d,o){Cd.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){Cd.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:Cd.decode(d),key:e.fixed32.decode(d)})},Ld={preencode(d,o){e.fixed32.preencode(d,o.key),e.uint.preencode(d,o.mentions)},encode(d,o){e.fixed32.encode(d,o.key),e.uint.encode(d,o.mentions)},decode:d=>({key:e.fixed32.decode(d),mentions:e.uint.decode(d)})},Fd={preencode(d,o){d.end++,o.memberKey&&e.fixed32.preencode(d,o.memberKey)},encode(d,o){const n=o.memberKey?1:0;e.uint.encode(d,n),o.memberKey&&e.fixed32.encode(d,o.memberKey)},decode:d=>({memberKey:1&e.uint.decode(d)?e.fixed32.decode(d):null})},jd=Fd,Ed=Fd,Bd={preencode(d,o){d.end++,o.from&&e.string.preencode(d,o.from),o.to&&e.string.preencode(d,o.to)},encode(d,o){const n=(o.from?1:0)|(o.to?2:0);e.uint.encode(d,n),o.from&&e.string.encode(d,o.from),o.to&&e.string.encode(d,o.to)},decode(d){const o=e.uint.decode(d);return{from:1&o?e.string.decode(d):null,to:2&o?e.string.decode(d):null}}},zd=e.frame(Fd),Nd=e.frame(jd),Od=e.frame(Bd),Ud=e.frame(Ed),Vd={preencode(o,n){const c=(n.memberJoined?1:0)|(n.memberLeft?2:0)|(n.titleChanged?4:0)|(n.callStarted?8:0)|(n.callHangup?16:0)|(n.callMissed?32:0)|(n.roomAvatarChanged?64:0)|(n.invitationCreated?128:0)|(n.memberRemoved?256:0)|(d>=3&&n.locationShared?512:0);e.uint.preencode(o,c),n.memberJoined&&zd.preencode(o,n.memberJoined),n.memberLeft&&Nd.preencode(o,n.memberLeft),n.titleChanged&&Od.preencode(o,n.titleChanged),n.memberRemoved&&Ud.preencode(o,n.memberRemoved),d>=3&&n.locationShared&&gu.preencode(o,n.locationShared)},encode(o,n){const c=(n.memberJoined?1:0)|(n.memberLeft?2:0)|(n.titleChanged?4:0)|(n.callStarted?8:0)|(n.callHangup?16:0)|(n.callMissed?32:0)|(n.roomAvatarChanged?64:0)|(n.invitationCreated?128:0)|(n.memberRemoved?256:0)|(d>=3&&n.locationShared?512:0);e.uint.encode(o,c),n.memberJoined&&zd.encode(o,n.memberJoined),n.memberLeft&&Nd.encode(o,n.memberLeft),n.titleChanged&&Od.encode(o,n.titleChanged),n.memberRemoved&&Ud.encode(o,n.memberRemoved),d>=3&&n.locationShared&&gu.encode(o,n.locationShared)},decode(o){const n=e.uint.decode(o);return{memberJoined:1&n?zd.decode(o):null,memberLeft:2&n?Nd.decode(o):null,titleChanged:4&n?Od.decode(o):null,callStarted:!!(8&n),callHangup:!!(16&n),callMissed:!!(32&n),roomAvatarChanged:!!(64&n),invitationCreated:!!(128&n),memberRemoved:256&n?Ud.decode(o):null,locationShared:d>=3&&512&n?gu.decode(o):null}}},Jd={preencode(e,o){e.end++,d>=3&&o.locationShared&&hu.preencode(e,o.locationShared)},encode(o,n){const c=(n.callStarted?1:0)|(n.callHangup?2:0)|(n.callMissed?4:0)|(d>=3&&n.locationShared?8:0);e.uint.encode(o,c),d>=3&&n.locationShared&&hu.encode(o,n.locationShared)},decode(o){const n=e.uint.decode(o);return{callStarted:!!(1&n),callHangup:!!(2&n),callMissed:!!(4&n),locationShared:d>=3&&8&n?hu.decode(o):null}}},Hd={preencode(d,o){e.uint.preencode(d,o.start),e.uint.preencode(d,o.length)},encode(d,o){e.uint.encode(d,o.start),e.uint.encode(d,o.length)},decode:d=>({start:e.uint.decode(d),length:e.uint.decode(d)})},Wd=e.frame(Hd),Gd={preencode(d,o){Wd.preencode(d,o.range),e.string.preencode(d,o.content)},encode(d,o){Wd.encode(d,o.range),e.string.encode(d,o.content)},decode:d=>({range:Wd.decode(d),content:e.string.decode(d)})},Qd=Wd,Xd={preencode(d,o){Qd.preencode(d,o.range),e.fixed32.preencode(d,o.memberKey)},encode(d,o){Qd.encode(d,o.range),e.fixed32.encode(d,o.memberKey)},decode:d=>({range:Qd.decode(d),memberKey:e.fixed32.decode(d)})},Yd=Wd,Zd={preencode(d,o){Yd.preencode(d,o.range),Y.preencode(d,o.language),e.string.preencode(d,o.text)},encode(d,o){Yd.encode(d,o.range),Y.encode(d,o.language),e.string.encode(d,o.text)},decode:d=>({range:Yd.decode(d),language:Y.decode(d),text:e.string.decode(d)})},$d=h,_d=e.array(e.uint),eo={preencode(d,o){d.end++,o.title&&e.string.preencode(d,o.title),o.description&&e.string.preencode(d,o.description),o.file&&$d.preencode(d,o.file),o.files&&_d.preencode(d,o.files)},encode(d,o){const n=(o.title?1:0)|(o.description?2:0)|(o.file?4:0)|(o.files?8:0);e.uint.encode(d,n),o.title&&e.string.encode(d,o.title),o.description&&e.string.encode(d,o.description),o.file&&$d.encode(d,o.file),o.files&&_d.encode(d,o.files)},decode(d){const o=e.uint.decode(d);return{title:1&o?e.string.decode(d):null,description:2&o?e.string.decode(d):null,file:4&o?$d.decode(d):null,files:8&o?_d.decode(d):null}}},oo=Wd,no=e.frame(eo),co={preencode(d,o){oo.preencode(d,o.range),e.string.preencode(d,o.url),d.end++,o.preview&&no.preencode(d,o.preview)},encode(d,o){const n=o.preview?1:0;oo.encode(d,o.range),e.string.encode(d,o.url),e.uint.encode(d,n),o.preview&&no.encode(d,o.preview)},decode:d=>({range:oo.decode(d),url:e.string.decode(d),preview:1&e.uint.decode(d)?no.decode(d):null})},ro=e.array(e.frame(Xd)),to=e.array(e.frame(co)),io=to,ao=e.array(e.frame(Hd)),so=ao,po=ao,uo=e.array(e.frame(Gd)),lo=ao,fo=ao,mo=e.array(e.frame(Zd)),yo={preencode(d,o){const n=(o.mention?1:0)|(o.httpLink?2:0)|(o.pearLink?4:0)|(o.bold?8:0)|(o.italic?16:0)|(o.code?32:0)|(o.emoji?64:0)|(o.codeBlock?128:0)|(o.strike?256:0)|(o.translation?512:0);e.uint.preencode(d,n),o.mention&&ro.preencode(d,o.mention),o.httpLink&&to.preencode(d,o.httpLink),o.pearLink&&io.preencode(d,o.pearLink),o.bold&&ao.preencode(d,o.bold),o.italic&&so.preencode(d,o.italic),o.code&&po.preencode(d,o.code),o.emoji&&uo.preencode(d,o.emoji),o.codeBlock&&lo.preencode(d,o.codeBlock),o.strike&&fo.preencode(d,o.strike),o.translation&&mo.preencode(d,o.translation)},encode(d,o){const n=(o.mention?1:0)|(o.httpLink?2:0)|(o.pearLink?4:0)|(o.bold?8:0)|(o.italic?16:0)|(o.code?32:0)|(o.emoji?64:0)|(o.codeBlock?128:0)|(o.strike?256:0)|(o.translation?512:0);e.uint.encode(d,n),o.mention&&ro.encode(d,o.mention),o.httpLink&&to.encode(d,o.httpLink),o.pearLink&&io.encode(d,o.pearLink),o.bold&&ao.encode(d,o.bold),o.italic&&so.encode(d,o.italic),o.code&&po.encode(d,o.code),o.emoji&&uo.encode(d,o.emoji),o.codeBlock&&lo.encode(d,o.codeBlock),o.strike&&fo.encode(d,o.strike),o.translation&&mo.encode(d,o.translation)},decode(d){const o=e.uint.decode(d);return{mention:1&o?ro.decode(d):null,httpLink:2&o?to.decode(d):null,pearLink:4&o?io.decode(d):null,bold:8&o?ao.decode(d):null,italic:16&o?so.decode(d):null,code:32&o?po.decode(d):null,emoji:64&o?uo.decode(d):null,codeBlock:128&o?lo.decode(d):null,strike:256&o?fo.decode(d):null,translation:512&o?mo.decode(d):null}}},xo=e.array(e.frame(g)),bo=e.frame(yo),vo=e.frame(Jd),go={preencode(d,o){d.end++,o.text&&e.string.preencode(d,o.text),o.files&&xo.preencode(d,o.files),o.display&&bo.preencode(d,o.display),o.replyTo&&n.preencode(d,o.replyTo),o.parent&&n.preencode(d,o.parent),o.event&&vo.preencode(d,o.event)},encode(o,c){const r=(c.text?1:0)|(c.files?2:0)|(c.display?4:0)|(c.replyTo?8:0)|(c.parent?16:0)|(c.event?32:0)|(d>=3&&c.forwarded?64:0);e.uint.encode(o,r),c.text&&e.string.encode(o,c.text),c.files&&xo.encode(o,c.files),c.display&&bo.encode(o,c.display),c.replyTo&&n.encode(o,c.replyTo),c.parent&&n.encode(o,c.parent),c.event&&vo.encode(o,c.event)},decode(o){const c=e.uint.decode(o);return{text:1&c?e.string.decode(o):null,files:2&c?xo.decode(o):null,display:4&c?bo.decode(o):null,replyTo:8&c?n.decode(o):null,parent:16&c?n.decode(o):null,event:32&c?vo.decode(o):null,forwarded:d>=3&&!!(64&c)}}},ho=_d,ko=bo,Ko={preencode(d,o){d.end++,o.text&&e.string.preencode(d,o.text),o.files&&ho.preencode(d,o.files),o.display&&ko.preencode(d,o.display),o.replyTo&&n.preencode(d,o.replyTo),o.parent&&n.preencode(d,o.parent)},encode(o,c){const r=(c.text?1:0)|(c.files?2:0)|(c.display?4:0)|(c.replyTo?8:0)|(c.parent?16:0)|(d>=3&&c.forwarded?32:0);e.uint.encode(o,r),c.text&&e.string.encode(o,c.text),c.files&&ho.encode(o,c.files),c.display&&ko.encode(o,c.display),c.replyTo&&n.encode(o,c.replyTo),c.parent&&n.encode(o,c.parent)},decode(o){const c=e.uint.decode(o);return{text:1&c?e.string.decode(o):null,files:2&c?ho.decode(o):null,display:4&c?ko.decode(o):null,replyTo:8&c?n.decode(o):null,parent:16&c?n.decode(o):null,forwarded:d>=3&&!!(32&c)}}},wo=xo,Po=bo,Ro={preencode(d,o){d.end++,o.text&&e.string.preencode(d,o.text),o.files&&wo.preencode(d,o.files),o.display&&Po.preencode(d,o.display),o.replyTo&&n.preencode(d,o.replyTo),o.parent&&n.preencode(d,o.parent)},encode(o,c){const r=(c.text?1:0)|(c.files?2:0)|(c.display?4:0)|(c.replyTo?8:0)|(c.parent?16:0)|(d>=3&&c.forwarded?32:0);e.uint.encode(o,r),c.text&&e.string.encode(o,c.text),c.files&&wo.encode(o,c.files),c.display&&Po.encode(o,c.display),c.replyTo&&n.encode(o,c.replyTo),c.parent&&n.encode(o,c.parent)},decode(o){const c=e.uint.decode(o);return{text:1&c?e.string.decode(o):null,files:2&c?wo.decode(o):null,display:4&c?Po.decode(o):null,replyTo:8&c?n.decode(o):null,parent:16&c?n.decode(o):null,forwarded:d>=3&&!!(32&c)}}},To={preencode(e,d){e.end++},encode(d,o){const n=(o.isEdited?1:0)|(o.isDeleted?2:0)|(o.isPinned?4:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isEdited:!!(1&o),isDeleted:!!(2&o),isPinned:!!(4&o)}}},Ao={preencode(d,o){e.uint.preencode(d,o.thread),e.uint.preencode(d,o.index)},encode(d,o){e.uint.encode(d,o.thread),e.uint.encode(d,o.index)},decode:d=>({thread:e.uint.decode(d),index:e.uint.decode(d)})},Mo=e.frame(N),qo={preencode(d,o){e.uint.preencode(d,o.id),e.uint.preencode(d,o.count),d.end++,o.parent&&n.preencode(d,o.parent),o.stats&&Mo.preencode(d,o.stats)},encode(d,o){const c=(o.parent?1:0)|(o.stats?2:0);e.uint.encode(d,o.id),e.uint.encode(d,o.count),e.uint.encode(d,c),o.parent&&n.encode(d,o.parent),o.stats&&Mo.encode(d,o.stats)},decode(d){const o=e.uint.decode(d),c=e.uint.decode(d),r=e.uint.decode(d);return{id:o,count:c,parent:1&r?n.decode(d):null,stats:2&r?Mo.decode(d):null}}},Io=e.frame(To),So=e.frame(Ko),Co=e.frame(Vd),Do={preencode(d,o){Ao.preencode(d,o.id),n.preencode(d,o.oplog),e.uint.preencode(d,o.clock),e.uint.preencode(d,o.timestamp),d.end++,o.editedAt&&e.uint.preencode(d,o.editedAt),Io.preencode(d,o.status),o.message&&So.preencode(d,o.message),o.event&&Co.preencode(d,o.event)},encode(d,o){const c=(o.editedAt?1:0)|(o.message?2:0)|(o.event?4:0);Ao.encode(d,o.id),n.encode(d,o.oplog),e.uint.encode(d,o.clock),e.uint.encode(d,o.timestamp),e.uint.encode(d,c),o.editedAt&&e.uint.encode(d,o.editedAt),Io.encode(d,o.status),o.message&&So.encode(d,o.message),o.event&&Co.encode(d,o.event)},decode(d){const o=Ao.decode(d),c=n.decode(d),r=e.uint.decode(d),t=e.uint.decode(d),i=e.uint.decode(d);return{id:o,oplog:c,clock:r,timestamp:t,editedAt:1&i?e.uint.decode(d):0,status:Io.decode(d),message:2&i?So.decode(d):null,event:4&i?Co.decode(d):null}}},Lo=Io,Fo=e.frame(Ro),jo=Co,Eo={preencode(d,o){Ao.preencode(d,o.id),n.preencode(d,o.oplog),e.uint.preencode(d,o.clock),e.uint.preencode(d,o.timestamp),d.end++,o.editedAt&&e.uint.preencode(d,o.editedAt),Lo.preencode(d,o.status),o.message&&Fo.preencode(d,o.message),o.event&&jo.preencode(d,o.event)},encode(d,o){const c=(o.editedAt?1:0)|(o.message?2:0)|(o.event?4:0);Ao.encode(d,o.id),n.encode(d,o.oplog),e.uint.encode(d,o.clock),e.uint.encode(d,o.timestamp),e.uint.encode(d,c),o.editedAt&&e.uint.encode(d,o.editedAt),Lo.encode(d,o.status),o.message&&Fo.encode(d,o.message),o.event&&jo.encode(d,o.event)},decode(d){const o=Ao.decode(d),c=n.decode(d),r=e.uint.decode(d),t=e.uint.decode(d),i=e.uint.decode(d);return{id:o,oplog:c,clock:r,timestamp:t,editedAt:1&i?e.uint.decode(d):0,status:Lo.decode(d),message:2&i?Fo.decode(d):null,event:4&i?jo.decode(d):null}}},Bo=de,zo=e.frame(go),No={preencode(e,d){Bo.preencode(e,d.header),zo.preencode(e,d.message)},encode(e,d){Bo.encode(e,d.header),zo.encode(e,d.message)},decode:e=>({header:Bo.decode(e),message:zo.decode(e)})},Oo=de,Uo={preencode(e,d){Oo.preencode(e,d.header),n.preencode(e,d.oplog)},encode(e,d){Oo.encode(e,d.header),n.encode(e,d.oplog)},decode:e=>({header:Oo.decode(e),oplog:n.decode(e)})},Vo=de,Jo=zo,Ho={preencode(e,d){Vo.preencode(e,d.header),n.preencode(e,d.oplog),Jo.preencode(e,d.message)},encode(e,d){Vo.encode(e,d.header),n.encode(e,d.oplog),Jo.encode(e,d.message)},decode:e=>({header:Vo.decode(e),oplog:n.decode(e),message:Jo.decode(e)})},Wo=de,Go={preencode(e,d){Wo.preencode(e,d.header),n.preencode(e,d.oplog),e.end++},encode(d,o){const c=o.isPinned?1:0;Wo.encode(d,o.header),n.encode(d,o.oplog),e.uint.encode(d,c)},decode:d=>({header:Wo.decode(d),oplog:n.decode(d),isPinned:!!(1&e.uint.decode(d))})},Qo={HttpLink:1,PearLink:2},Xo={preencode(e,d){e.end++},encode(d,o){if(o>2)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},Yo=de,Zo={preencode(d,o){Yo.preencode(d,o.header),n.preencode(d,o.oplog),e.uint.preencode(d,o.index),ku.preencode(d,o.preview),d.end++,o.displayType&&Xo.preencode(d,o.displayType)},encode(d,o){const c=o.displayType?1:0;Yo.encode(d,o.header),n.encode(d,o.oplog),e.uint.encode(d,o.index),ku.encode(d,o.preview),e.uint.encode(d,c),o.displayType&&Xo.encode(d,o.displayType)},decode:d=>({header:Yo.decode(d),oplog:n.decode(d),index:e.uint.decode(d),preview:ku.decode(d),displayType:1&e.uint.decode(d)?Xo.decode(d):0})},$o={preencode(d,o){Ao.preencode(d,o.id),e.fixed32.preencode(d,o.sender),e.uint.preencode(d,o.clock),e.string.preencode(d,o.reaction)},encode(d,o){Ao.encode(d,o.id),e.fixed32.encode(d,o.sender),e.uint.encode(d,o.clock),e.string.encode(d,o.reaction)},decode:d=>({id:Ao.decode(d),sender:e.fixed32.decode(d),clock:e.uint.decode(d),reaction:e.string.decode(d)})},_o={preencode(d,o){e.string.preencode(d,o.text),e.uint.preencode(d,o.count)},encode(d,o){e.string.encode(d,o.text),e.uint.encode(d,o.count)},decode:d=>({text:e.string.decode(d),count:e.uint.decode(d)})},en=e.array(e.frame(_o)),dn={preencode(d,o){Ao.preencode(d,o.id),e.uint.preencode(d,o.total),en.preencode(d,o.reactions),d.end++,o.editedAt&&e.uint.preencode(d,o.editedAt)},encode(d,o){const n=o.editedAt?1:0;Ao.encode(d,o.id),e.uint.encode(d,o.total),en.encode(d,o.reactions),e.uint.encode(d,n),o.editedAt&&e.uint.encode(d,o.editedAt)},decode:d=>({id:Ao.decode(d),total:e.uint.decode(d),reactions:en.decode(d),editedAt:1&e.uint.decode(d)?e.uint.decode(d):0})},on=de,nn={preencode(d,o){on.preencode(d,o.header),n.preencode(d,o.oplog),e.string.preencode(d,o.reaction)},encode(d,o){on.encode(d,o.header),n.encode(d,o.oplog),e.string.encode(d,o.reaction)},decode:d=>({header:on.decode(d),oplog:n.decode(d),reaction:e.string.decode(d)})},cn=de,rn={preencode(d,o){cn.preencode(d,o.header),n.preencode(d,o.oplog),e.string.preencode(d,o.reaction)},encode(d,o){cn.encode(d,o.header),n.encode(d,o.oplog),e.string.encode(d,o.reaction)},decode:d=>({header:cn.decode(d),oplog:n.decode(d),reaction:e.string.decode(d)})},tn=de,an=e.frame(_),sn={preencode(d,o){tn.preencode(d,o.header),e.uint.preencode(d,o.key),an.preencode(d,o.config)},encode(d,o){tn.encode(d,o.header),e.uint.encode(d,o.key),an.encode(d,o.config)},decode:d=>({header:tn.decode(d),key:e.uint.decode(d),config:an.decode(d)})},pn={preencode(d,o){e.fixed32.preencode(d,o.memberKey),e.string.preencode(d,o.displayName),d.end++,o.avatar&&Ku.preencode(d,o.avatar)},encode(d,o){const n=o.avatar?1:0;e.fixed32.encode(d,o.memberKey),e.string.encode(d,o.displayName),e.uint.encode(d,n),o.avatar&&Ku.encode(d,o.avatar)},decode:d=>({memberKey:e.fixed32.decode(d),displayName:e.string.decode(d),avatar:1&e.uint.decode(d)?Ku.decode(d):null})},un={preencode(d,o){e.fixed32.preencode(d,o.key),d.end++,o.username&&e.string.preencode(d,o.username)},encode(d,o){const n=o.username?1:0;e.fixed32.encode(d,o.key),e.uint.encode(d,n),o.username&&e.string.encode(d,o.username)},decode:d=>({key:e.fixed32.decode(d),username:1&e.uint.decode(d)?e.string.decode(d):null})},ln=e.frame(un),fn={preencode(d,o){e.fixed32.preencode(d,o.publicKey),d.end++,o.discoveryCoreKey&&e.fixed32.preencode(d,o.discoveryCoreKey),o.userRegistry&&ln.preencode(d,o.userRegistry)},encode(d,o){const n=(o.discoveryCoreKey?1:0)|(o.userRegistry?2:0);e.fixed32.encode(d,o.publicKey),e.uint.encode(d,n),o.discoveryCoreKey&&e.fixed32.encode(d,o.discoveryCoreKey),o.userRegistry&&ln.encode(d,o.userRegistry)},decode(d){const o=e.fixed32.decode(d),n=e.uint.decode(d);return{publicKey:o,discoveryCoreKey:1&n?e.fixed32.decode(d):null,userRegistry:2&n?ln.decode(d):null}}},mn=de,yn=e.frame(W),xn=e.frame(G),bn=an,vn=e.frame(fn),gn=Ke,hn=e.array(e.frame(me)),kn={preencode(e,d){mn.preencode(e,d.header),yn.preencode(e,d.digest),xn.preencode(e,d.capabilities),e.end++,d.config&&bn.preencode(e,d.config),d.identity&&vn.preencode(e,d.identity),d.bootstrapDevice&&gn.preencode(e,d.bootstrapDevice),d.initialMembers&&hn.preencode(e,d.initialMembers)},encode(d,o){const n=(o.config?1:0)|(o.identity?2:0)|(o.bootstrapDevice?4:0)|(o.initialMembers?8:0);mn.encode(d,o.header),yn.encode(d,o.digest),xn.encode(d,o.capabilities),e.uint.encode(d,n),o.config&&bn.encode(d,o.config),o.identity&&vn.encode(d,o.identity),o.bootstrapDevice&&gn.encode(d,o.bootstrapDevice),o.initialMembers&&hn.encode(d,o.initialMembers)},decode(d){const o=mn.decode(d),n=yn.decode(d),c=xn.decode(d),r=e.uint.decode(d);return{header:o,digest:n,capabilities:c,config:1&r?bn.decode(d):null,identity:2&r?vn.decode(d):null,bootstrapDevice:4&r?gn.decode(d):null,initialMembers:8&r?hn.decode(d):null}}},Kn=de,wn={preencode(d,o){Kn.preencode(d,o.header),e.uint.preencode(d,o.version)},encode(d,o){Kn.encode(d,o.header),e.uint.encode(d,o.version)},decode:d=>({header:Kn.decode(d),version:e.uint.decode(d)})},Pn=de,Rn={preencode(o,n){Pn.preencode(o,n.header),e.uint.preencode(o,n.from),e.uint.preencode(o,n.to),o.end++,d>=5&&n.buildType&&jp.preencode(o,n.buildType)},encode(o,n){const c=d>=5&&n.buildType?1:0;Pn.encode(o,n.header),e.uint.encode(o,n.from),e.uint.encode(o,n.to),e.uint.encode(o,c),d>=5&&n.buildType&&jp.encode(o,n.buildType)},decode(o){const n=Pn.decode(o),c=e.uint.decode(o),r=e.uint.decode(o),t=o.start<o.end?e.uint.decode(o):0;return{header:n,from:c,to:r,buildType:d>=5&&1&t?jp.decode(o):null}}},Tn={RoomType:1,IsExperimental:2,IsJoiningDisabled:3,IsAppendingDisabled:4,IsCallingDisabled:5,IsMembershipEventsDisabled:6,IsAttachmentsDisabled:7,IsLinksDisabled:8,IsRoomInviteHidden:9},An={preencode(e,d){e.end++},encode(d,o){if(o>9)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},Mn=de,qn=H,In={preencode(d,o){Mn.preencode(d,o.header),e.uint.preencode(d,o.key),qn.preencode(d,o.settings)},encode(d,o){Mn.encode(d,o.header),e.uint.encode(d,o.key),qn.encode(d,o.settings)},decode:d=>({header:Mn.decode(d),key:e.uint.decode(d),settings:qn.decode(d)})},Sn=de,Cn={preencode(d,o){Sn.preencode(d,o.header),e.uint.preencode(d,o.value)},encode(d,o){Sn.encode(d,o.header),e.uint.encode(d,o.value)},decode:d=>({header:Sn.decode(d),value:e.uint.decode(d)})},Dn={preencode(d,o){e.uint.preencode(d,o.key),e.uint.preencode(d,o.value)},encode(d,o){e.uint.encode(d,o.key),e.uint.encode(d,o.value)},decode:d=>({key:e.uint.decode(d),value:e.uint.decode(d)})},Ln={Flag:1},Fn={preencode(e,d){e.end++},encode(d,o){if(o>1)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},jn={preencode(d,o){Ao.preencode(d,o.id),e.fixed32.preencode(d,o.sender),e.uint.preencode(d,o.clock),Fn.preencode(d,o.label)},encode(d,o){Ao.encode(d,o.id),e.fixed32.encode(d,o.sender),e.uint.encode(d,o.clock),Fn.encode(d,o.label)},decode:d=>({id:Ao.decode(d),sender:e.fixed32.decode(d),clock:e.uint.decode(d),label:Fn.decode(d)})},En=de,Bn={preencode(e,d){En.preencode(e,d.header),n.preencode(e,d.oplog),Fn.preencode(e,d.label)},encode(e,d){En.encode(e,d.header),n.encode(e,d.oplog),Fn.encode(e,d.label)},decode:e=>({header:En.decode(e),oplog:n.decode(e),label:Fn.decode(e)})},zn=de,Nn={preencode(e,d){zn.preencode(e,d.header),n.preencode(e,d.oplog),Fn.preencode(e,d.label)},encode(e,d){zn.encode(e,d.header),n.encode(e,d.oplog),Fn.encode(e,d.label)},decode:e=>({header:zn.decode(e),oplog:n.decode(e),label:Fn.decode(e)})},On={preencode(d,o){Fn.preencode(d,o.label),e.uint.preencode(d,o.count)},encode(d,o){Fn.encode(d,o.label),e.uint.encode(d,o.count)},decode:d=>({label:Fn.decode(d),count:e.uint.decode(d)})},Un=e.array(e.frame(On)),Vn={preencode(d,o){Ao.preencode(d,o.id),e.uint.preencode(d,o.total),Un.preencode(d,o.labels),e.uint.preencode(d,o.editedAt),d.end++,o.flagsClock&&e.uint.preencode(d,o.flagsClock),o.version&&e.uint.preencode(d,o.version)},encode(d,o){const n=(o.flagsClock?1:0)|(o.version?2:0)|(o.isDeleted?4:0);Ao.encode(d,o.id),e.uint.encode(d,o.total),Un.encode(d,o.labels),e.uint.encode(d,o.editedAt),e.uint.encode(d,n),o.flagsClock&&e.uint.encode(d,o.flagsClock),o.version&&e.uint.encode(d,o.version)},decode(d){const o=Ao.decode(d),n=e.uint.decode(d),c=Un.decode(d),r=e.uint.decode(d),t=e.uint.decode(d);return{id:o,total:n,labels:c,editedAt:r,flagsClock:1&t?e.uint.decode(d):0,version:2&t?e.uint.decode(d):0,isDeleted:!!(4&t)}}},Jn=de,Hn={preencode(d,o){Jn.preencode(d,o.header),e.uint.preencode(d,o.length)},encode(d,o){Jn.encode(d,o.header),e.uint.encode(d,o.length)},decode:d=>({header:Jn.decode(d),length:e.uint.decode(d)})},Wn={preencode(d,o){e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.length)},encode(d,o){e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.length)},decode:d=>({memberKey:e.fixed32.decode(d),length:e.uint.decode(d)})},Gn=ee,Qn=e.frame(be),Xn={preencode(o,n){e.fixed32.preencode(o,n.memberKey),wu.preencode(o,n.status),o.end++,n.mailbox&&e.fixed32.preencode(o,n.mailbox),n.roomKey&&e.fixed32.preencode(o,n.roomKey),d>=8&&n.contactInfo&&Qn.preencode(o,n.contactInfo),d>=8&&n.version&&e.uint.preencode(o,n.version),d>=10&&n.alias&&e.string.preencode(o,n.alias)},encode(o,n){const c=(n.mailbox?1:0)|(n.roomKey?2:0)|(d>=8&&n.contactInfo?4:0)|(d>=8&&n.version?8:0)|(d>=10&&n.alias?16:0);e.fixed32.encode(o,n.memberKey),wu.encode(o,n.status),e.uint.encode(o,c),n.mailbox&&e.fixed32.encode(o,n.mailbox),n.roomKey&&e.fixed32.encode(o,n.roomKey),d>=8&&n.contactInfo&&Qn.encode(o,n.contactInfo),d>=8&&n.version&&e.uint.encode(o,n.version),d>=10&&n.alias&&e.string.encode(o,n.alias)},decode(o){const n=e.fixed32.decode(o),c=wu.decode(o),r=e.uint.decode(o);return{memberKey:n,status:c,mailbox:1&r?e.fixed32.decode(o):null,roomKey:2&r?e.fixed32.decode(o):null,contactInfo:d>=8&&4&r?Qn.decode(o):null,version:d>=8&&8&r?e.uint.decode(o):0,alias:d>=10&&16&r?e.string.decode(o):null}}},Yn={preencode(d,n){e.fixed32.preencode(d,n.roomKey),e.buffer.preencode(d,n.encryptionKey),e.fixed32.preencode(d,n.seed),o.preencode(d,n.initiator),e.fixed32.preencode(d,n.fastForwardTo)},encode(d,n){e.fixed32.encode(d,n.roomKey),e.buffer.encode(d,n.encryptionKey),e.fixed32.encode(d,n.seed),o.encode(d,n.initiator),e.fixed32.encode(d,n.fastForwardTo)},decode:d=>({roomKey:e.fixed32.decode(d),encryptionKey:e.buffer.decode(d),seed:e.fixed32.decode(d),initiator:o.decode(d),fastForwardTo:e.fixed32.decode(d)})},Zn=e.array(e.frame(Yn)),$n=$,_n={preencode(e,d){Zn.preencode(e,d.sharedRooms),$n.preencode(e,d.blockedContacts)},encode(e,d){Zn.encode(e,d.sharedRooms),$n.encode(e,d.blockedContacts)},decode:e=>({sharedRooms:Zn.decode(e),blockedContacts:$n.decode(e)})},ec=vn,dc={preencode(e,d){ec.preencode(e,d.identity)},encode(e,d){ec.encode(e,d.identity)},decode:e=>({identity:ec.decode(e)})},oc={preencode(d,o){e.uint.preencode(d,o.rooms),e.uint.preencode(d,o.contacts)},encode(d,o){e.uint.encode(d,o.rooms),e.uint.encode(d,o.contacts)},decode:d=>({rooms:e.uint.decode(d),contacts:e.uint.decode(d)})},nc={preencode(d,o){e.uint.preencode(d,o.rooms),e.uint.preencode(d,o.contactRequests)},encode(d,o){e.uint.encode(d,o.rooms),e.uint.encode(d,o.contactRequests)},decode:d=>({rooms:e.uint.decode(d),contactRequests:e.uint.decode(d)})},cc={preencode(d,o){e.buffer.preencode(d,o.entropy)},encode(d,o){e.buffer.encode(d,o.entropy)},decode:d=>({entropy:e.buffer.decode(d)})},rc={preencode(d,o){e.fixed32.preencode(d,o.publicKey),e.fixed32.preencode(d,o.devicePublicKey),e.fixed32.preencode(d,o.writerKey)},encode(d,o){e.fixed32.encode(d,o.publicKey),e.fixed32.encode(d,o.devicePublicKey),e.fixed32.encode(d,o.writerKey)},decode:d=>({publicKey:e.fixed32.decode(d),devicePublicKey:e.fixed32.decode(d),writerKey:e.fixed32.decode(d)})},tc=e.frame(rc),ic={preencode(n,c){e.fixed32.preencode(n,c.id),e.fixed32.preencode(n,c.invitationSeed),e.fixed32.preencode(n,c.mailbox),r.preencode(n,c.responseKeyPair),o.preencode(n,c.initiator),o.preencode(n,c.inviter),n.end++,c.identity&&tc.preencode(n,c.identity),d>=5&&c.buildType&&jp.preencode(n,c.buildType)},encode(n,c){const t=(c.identity?1:0)|(d>=5&&c.buildType?2:0);e.fixed32.encode(n,c.id),e.fixed32.encode(n,c.invitationSeed),e.fixed32.encode(n,c.mailbox),r.encode(n,c.responseKeyPair),o.encode(n,c.initiator),o.encode(n,c.inviter),e.uint.encode(n,t),c.identity&&tc.encode(n,c.identity),d>=5&&c.buildType&&jp.encode(n,c.buildType)},decode(n){const c=e.fixed32.decode(n),t=e.fixed32.decode(n),i=e.fixed32.decode(n),a=r.decode(n),s=o.decode(n),p=o.decode(n),u=e.uint.decode(n);return{id:c,invitationSeed:t,mailbox:i,responseKeyPair:a,initiator:s,inviter:p,identity:1&u?tc.decode(n):null,buildType:d>=5&&2&u?jp.decode(n):null}}},ac=de,sc={preencode(d,o){ac.preencode(d,o.header),e.buffer.preencode(d,o.blindResponse)},encode(d,o){ac.encode(d,o.header),e.buffer.encode(d,o.blindResponse)},decode:d=>({header:ac.decode(d),blindResponse:e.buffer.decode(d)})},pc=de,uc=e.frame(ic),lc={preencode(e,d){pc.preencode(e,d.header),uc.preencode(e,d.invitation)},encode(e,d){pc.encode(e,d.header),uc.encode(e,d.invitation)},decode:e=>({header:pc.decode(e),invitation:uc.decode(e)})},fc=de,mc={preencode(d,o){fc.preencode(d,o.header),e.fixed32.preencode(d,o.id)},encode(d,o){fc.encode(d,o.header),e.fixed32.encode(d,o.id)},decode:d=>({header:fc.decode(d),id:e.fixed32.decode(d)})},yc={preencode(d,o){e.fixed32.preencode(d,o.publicKey),e.fixed32.preencode(d,o.devicePublicKey),d.end++,o.privateProfileKey&&e.fixed32.preencode(d,o.privateProfileKey),o.deviceKeyPair&&r.preencode(d,o.deviceKeyPair),e.buffer.preencode(d,o.deviceProof)},encode(d,o){const n=(o.privateProfileKey?1:0)|(o.deviceKeyPair?2:0);e.fixed32.encode(d,o.publicKey),e.fixed32.encode(d,o.devicePublicKey),e.uint.encode(d,n),o.privateProfileKey&&e.fixed32.encode(d,o.privateProfileKey),o.deviceKeyPair&&r.encode(d,o.deviceKeyPair),e.buffer.encode(d,o.deviceProof)},decode(d){const o=e.fixed32.decode(d),n=e.fixed32.decode(d),c=e.uint.decode(d);return{publicKey:o,devicePublicKey:n,privateProfileKey:1&c?e.fixed32.decode(d):null,deviceKeyPair:2&c?r.decode(d):null,deviceProof:e.buffer.decode(d)}}},xc={preencode(d,o){e.fixed32.preencode(d,o.publicKey),e.fixed32.preencode(d,o.writerKey),e.fixed32.preencode(d,o.devicePublicKey),d.end++,o.privateProfileKey&&e.fixed32.preencode(d,o.privateProfileKey)},encode(d,o){const n=o.privateProfileKey?1:0;e.fixed32.encode(d,o.publicKey),e.fixed32.encode(d,o.writerKey),e.fixed32.encode(d,o.devicePublicKey),e.uint.encode(d,n),o.privateProfileKey&&e.fixed32.encode(d,o.privateProfileKey)},decode:d=>({publicKey:e.fixed32.decode(d),writerKey:e.fixed32.decode(d),devicePublicKey:e.fixed32.decode(d),privateProfileKey:1&e.uint.decode(d)?e.fixed32.decode(d):null})},bc={preencode(e,d){e.end++},encode(o,n){const c=(n.isActive?1:0)|(n.isFullyMuted?2:0)|(n.isMentionsOnlyMuted?4:0)|(n.isReadOnly?8:0)|(d>=3&&n.isFavorite?16:0)|(d>=7&&n.isUnread?32:0);e.uint.encode(o,c)},decode(o){const n=e.uint.decode(o);return{isActive:!!(1&n),isFullyMuted:!!(2&n),isMentionsOnlyMuted:!!(4&n),isReadOnly:!!(8&n),isFavorite:d>=3&&!!(16&n),isUnread:d>=7&&!!(32&n)}}},vc=e.frame(bc),gc=e.frame(yc),hc=tc,kc={preencode(d,n){e.fixed32.preencode(d,n.roomKey),e.buffer.preencode(d,n.encryptionKey),e.fixed32.preencode(d,n.mailbox),vc.preencode(d,n.status),e.uint.preencode(d,n.clock),d.end++,n.initiator&&o.preencode(d,n.initiator),n.fastForwardTo&&e.fixed32.preencode(d,n.fastForwardTo),n.identitySwap&&gc.preencode(d,n.identitySwap),n.identitySwapV2&&hc.preencode(d,n.identitySwapV2),n.contact&&e.fixed32.preencode(d,n.contact)},encode(d,n){const c=(n.initiator?1:0)|(n.fastForwardTo?2:0)|(n.identitySwap?4:0)|(n.identitySwapV2?8:0)|(n.contact?16:0);e.fixed32.encode(d,n.roomKey),e.buffer.encode(d,n.encryptionKey),e.fixed32.encode(d,n.mailbox),vc.encode(d,n.status),e.uint.encode(d,n.clock),e.uint.encode(d,c),n.initiator&&o.encode(d,n.initiator),n.fastForwardTo&&e.fixed32.encode(d,n.fastForwardTo),n.identitySwap&&gc.encode(d,n.identitySwap),n.identitySwapV2&&hc.encode(d,n.identitySwapV2),n.contact&&e.fixed32.encode(d,n.contact)},decode(d){const n=e.fixed32.decode(d),c=e.buffer.decode(d),r=e.fixed32.decode(d),t=vc.decode(d),i=e.uint.decode(d),a=e.uint.decode(d);return{roomKey:n,encryptionKey:c,mailbox:r,status:t,clock:i,initiator:1&a?o.decode(d):null,fastForwardTo:2&a?e.fixed32.decode(d):null,identitySwap:4&a?gc.decode(d):null,identitySwapV2:8&a?hc.decode(d):null,contact:16&a?e.fixed32.decode(d):null}}},Kc=de,wc={preencode(d,n){Kc.preencode(d,n.header),e.fixed32.preencode(d,n.roomKey),e.buffer.preencode(d,n.encryptionKey),e.fixed32.preencode(d,n.mailbox),d.end++,n.fastForwardTo&&e.fixed32.preencode(d,n.fastForwardTo),n.initiator&&o.preencode(d,n.initiator),n.dm&&e.fixed32.preencode(d,n.dm)},encode(d,n){const c=(n.fastForwardTo?1:0)|(n.initiator?2:0)|(n.dm?4:0)|(n.isReadOnly?8:0);Kc.encode(d,n.header),e.fixed32.encode(d,n.roomKey),e.buffer.encode(d,n.encryptionKey),e.fixed32.encode(d,n.mailbox),e.uint.encode(d,c),n.fastForwardTo&&e.fixed32.encode(d,n.fastForwardTo),n.initiator&&o.encode(d,n.initiator),n.dm&&e.fixed32.encode(d,n.dm)},decode(d){const n=Kc.decode(d),c=e.fixed32.decode(d),r=e.buffer.decode(d),t=e.fixed32.decode(d),i=e.uint.decode(d);return{header:n,roomKey:c,encryptionKey:r,mailbox:t,fastForwardTo:1&i?e.fixed32.decode(d):null,initiator:2&i?o.decode(d):null,dm:4&i?e.fixed32.decode(d):null,isReadOnly:!!(8&i)}}},Pc=de,Rc={preencode(d,o){Pc.preencode(d,o.header),e.fixed32.preencode(d,o.discoveryKey)},encode(d,o){Pc.encode(d,o.header),e.fixed32.encode(d,o.discoveryKey)},decode:d=>({header:Pc.decode(d),discoveryKey:e.fixed32.decode(d)})},Tc=de,Ac=vc,Mc={preencode(d,o){Tc.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey),e.uint.preencode(d,o.key),Ac.preencode(d,o.status)},encode(d,o){Tc.encode(d,o.header),e.fixed32.encode(d,o.roomKey),e.uint.encode(d,o.key),Ac.encode(d,o.status)},decode:d=>({header:Tc.decode(d),roomKey:e.fixed32.decode(d),key:e.uint.decode(d),status:Ac.decode(d)})},qc={preencode(e,d){e.end++},encode(o,n){const c=(n.isBlocked?1:0)|(d>=8&&n.isActive?2:0);e.uint.encode(o,c)},decode(o){const n=e.uint.decode(o);return{isBlocked:!!(1&n),isActive:d>=8&&!!(2&n)}}},Ic=Qn,Sc={preencode(o,n){e.fixed32.preencode(o,n.memberKey),e.uint.preencode(o,n.clock),Pu.preencode(o,n.status),o.end++,n.mailbox&&e.fixed32.preencode(o,n.mailbox),n.roomKey&&e.fixed32.preencode(o,n.roomKey),d>=8&&n.contactInfo&&Ic.preencode(o,n.contactInfo),d>=10&&n.alias&&e.string.preencode(o,n.alias)},encode(o,n){const c=(n.mailbox?1:0)|(n.roomKey?2:0)|(d>=8&&n.contactInfo?4:0)|(d>=10&&n.alias?8:0);e.fixed32.encode(o,n.memberKey),e.uint.encode(o,n.clock),Pu.encode(o,n.status),e.uint.encode(o,c),n.mailbox&&e.fixed32.encode(o,n.mailbox),n.roomKey&&e.fixed32.encode(o,n.roomKey),d>=8&&n.contactInfo&&Ic.encode(o,n.contactInfo),d>=10&&n.alias&&e.string.encode(o,n.alias)},decode(o){const n=e.fixed32.decode(o),c=e.uint.decode(o),r=Pu.decode(o),t=e.uint.decode(o);return{memberKey:n,clock:c,status:r,mailbox:1&t?e.fixed32.decode(o):null,roomKey:2&t?e.fixed32.decode(o):null,contactInfo:d>=8&&4&t?Ic.decode(o):null,alias:d>=10&&8&t?e.string.decode(o):null}}},Cc=de,Dc=e.frame(Xn),Lc={preencode(e,d){Cc.preencode(e,d.header),Dc.preencode(e,d.contact)},encode(e,d){Cc.encode(e,d.header),Dc.encode(e,d.contact)},decode:e=>({header:Cc.decode(e),contact:Dc.decode(e)})},Fc=de,jc={preencode(d,o){Fc.preencode(d,o.header),e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.key),Ru.preencode(d,o.status)},encode(d,o){Fc.encode(d,o.header),e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.key),Ru.encode(d,o.status)},decode:d=>({header:Fc.decode(d),memberKey:e.fixed32.decode(d),key:e.uint.decode(d),status:Ru.decode(d)})},Ec=de,Bc={preencode(d,o){Ec.preencode(d,o.header),e.fixed32.preencode(d,o.memberKey)},encode(d,o){Ec.encode(d,o.header),e.fixed32.encode(d,o.memberKey)},decode:d=>({header:Ec.decode(d),memberKey:e.fixed32.decode(d)})},zc=de,Nc={preencode(d,o){zc.preencode(d,o.header),e.fixed32.preencode(d,o.memberKey)},encode(d,o){zc.encode(d,o.header),e.fixed32.encode(d,o.memberKey)},decode:d=>({header:zc.decode(d),memberKey:e.fixed32.decode(d)})},Oc={preencode(e,d){e.end++},encode(d,o){const n=(o.isPending?1:0)|(o.isAccepted?2:0)|(o.isRejected?4:0)|(o.isDiscarded?8:0)|(o.isSeen?16:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isPending:!!(1&o),isAccepted:!!(2&o),isRejected:!!(4&o),isDiscarded:!!(8&o),isSeen:!!(16&o)}}},Uc=we,Vc=e.frame(t),Jc={preencode(d,o){Uc.preencode(d,o.sender),Vc.preencode(d,o.keys),e.fixed32.preencode(d,o.mailbox),d.end++,o.message&&e.string.preencode(d,o.message)},encode(d,o){const n=o.message?1:0;Uc.encode(d,o.sender),Vc.encode(d,o.keys),e.fixed32.encode(d,o.mailbox),e.uint.encode(d,n),o.message&&e.string.encode(d,o.message)},decode:d=>({sender:Uc.decode(d),keys:Vc.decode(d),mailbox:e.fixed32.decode(d),message:1&e.uint.decode(d)?e.string.decode(d):null})},Hc=e.frame(Jc),Wc={preencode(e,d){Hc.preencode(e,d.body),te.preencode(e,d.attestation)},encode(e,d){Hc.encode(e,d.body),te.encode(e,d.attestation)},decode:e=>({body:Hc.decode(e),attestation:te.decode(e)})},Gc=fe,Qc=e.frame(Oc),Xc=Vc,Yc=Qn,Zc={preencode(o,n){e.fixed32.preencode(o,n.memberKey),e.uint.preencode(o,n.clock),Gc.preencode(o,n.sender),Qc.preencode(o,n.status),Xc.preencode(o,n.keys),e.fixed32.preencode(o,n.mailbox),o.end++,n.message&&e.string.preencode(o,n.message),n.sentAt&&e.uint.preencode(o,n.sentAt),d>=8&&n.contactInfo&&Yc.preencode(o,n.contactInfo)},encode(o,n){const c=(n.message?1:0)|(n.sentAt?2:0)|(d>=8&&n.contactInfo?4:0);e.fixed32.encode(o,n.memberKey),e.uint.encode(o,n.clock),Gc.encode(o,n.sender),Qc.encode(o,n.status),Xc.encode(o,n.keys),e.fixed32.encode(o,n.mailbox),e.uint.encode(o,c),n.message&&e.string.encode(o,n.message),n.sentAt&&e.uint.encode(o,n.sentAt),d>=8&&n.contactInfo&&Yc.encode(o,n.contactInfo)},decode(o){const n=e.fixed32.decode(o),c=e.uint.decode(o),r=Gc.decode(o),t=Qc.decode(o),i=Xc.decode(o),a=e.fixed32.decode(o),s=e.uint.decode(o);return{memberKey:n,clock:c,sender:r,status:t,keys:i,mailbox:a,message:1&s?e.string.decode(o):null,sentAt:2&s?e.uint.decode(o):0,contactInfo:d>=8&&4&s?Yc.decode(o):null}}},$c=de,_c={preencode(d,o){$c.preencode(d,o.header),e.buffer.preencode(d,o.blindRequest)},encode(d,o){$c.encode(d,o.header),e.buffer.encode(d,o.blindRequest)},decode:d=>({header:$c.decode(d),blindRequest:e.buffer.decode(d)})},er=de,dr=Qc,or={preencode(d,o){er.preencode(d,o.header),e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.key),dr.preencode(d,o.status),d.end++,o.roomKey&&e.fixed32.preencode(d,o.roomKey)},encode(d,o){const n=o.roomKey?1:0;er.encode(d,o.header),e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.key),dr.encode(d,o.status),e.uint.encode(d,n),o.roomKey&&e.fixed32.encode(d,o.roomKey)},decode:d=>({header:er.decode(d),memberKey:e.fixed32.decode(d),key:e.uint.decode(d),status:dr.decode(d),roomKey:1&e.uint.decode(d)?e.fixed32.decode(d):null})},nr={preencode(d,o){e.uint.preencode(d,o.timestamp),e.fixed32.preencode(d,o.key),e.fixed32.preencode(d,o.mailbox)},encode(d,o){e.uint.encode(d,o.timestamp),e.fixed32.encode(d,o.key),e.fixed32.encode(d,o.mailbox)},decode:d=>({version:e.uint.decode(d),timestamp:e.uint.decode(d),key:e.fixed32.decode(d),mailbox:e.fixed32.decode(d)})},cr={preencode(d,o){switch(e.uint.preencode(d,o.version),o.version){case 0:case 1:nr.preencode(d,o);break;default:throw new Error("Unsupported version")}},encode(d,o){switch(e.uint.encode(d,o.version),o.version){case 0:case 1:nr.encode(d,o);break;default:throw new Error("Unsupported version")}},decode(d){const o=d.start,n=e.uint.decode(d);switch(d.start=o,n){case 0:case 1:return nr.decode(d);default:throw new Error("Unsupported version")}}},rr={preencode(d,o){e.fixed32.preencode(d,o.deviceKey),e.fixed32.preencode(d,o.key)},encode(d,o){e.fixed32.encode(d,o.deviceKey),e.fixed32.encode(d,o.key)},decode:d=>({deviceKey:e.fixed32.decode(d),key:e.fixed32.decode(d)})},tr=de,ir={preencode(d,o){tr.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){tr.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:tr.decode(d),key:e.fixed32.decode(d)})},ar=de,sr={preencode(d,o){ar.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){ar.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:ar.decode(d),key:e.fixed32.decode(d)})},pr={preencode(o,n){o.end++,d>=9&&n.profileSnoozeTime&&e.uint.preencode(o,n.profileSnoozeTime)},encode(o,n){const c=(n.disableReadReceipts?1:0)|(d>=7&&n.stripAttachmentMetadata?2:0)|(d>=9&&n.profileSnoozeTime?4:0);e.uint.encode(o,c),d>=9&&n.profileSnoozeTime&&e.uint.encode(o,n.profileSnoozeTime)},decode(o){const n=e.uint.decode(o);return{disableReadReceipts:!!(1&n),stripAttachmentMetadata:d>=7&&!!(2&n),profileSnoozeTime:d>=9&&4&n?e.uint.decode(o):0}}},ur={disableReadReceipts:"disableReadReceipts",stripAttachmentMetadata:"stripAttachmentMetadata",profileSnoozeTime:"profileSnoozeTime"},lr={preencode(e,d){e.end++},encode(d,o){switch(o){case"disableReadReceipts":e.uint.encode(d,1);break;case"stripAttachmentMetadata":e.uint.encode(d,2);break;case"profileSnoozeTime":e.uint.encode(d,3);break;default:throw new Error("Unknown enum")}},decode(d){switch(e.uint.decode(d)){case 1:return"disableReadReceipts";case 2:return"stripAttachmentMetadata";case 3:return"profileSnoozeTime";default:return null}}},fr=de,mr=e.frame(pr),yr={preencode(e,d){fr.preencode(e,d.header),lr.preencode(e,d.key),mr.preencode(e,d.settings)},encode(e,d){fr.encode(e,d.header),lr.encode(e,d.key),mr.encode(e,d.settings)},decode:e=>({header:fr.decode(e),key:lr.decode(e),settings:mr.decode(e)})},xr={preencode(d,o){e.fixed32.preencode(d,o.discoveryPublicKey),e.uint.preencode(d,o.timestamp),d.end++,o.lastSynced&&e.uint.preencode(d,o.lastSynced)},encode(d,o){const n=(o.lastSynced?1:0)|(o.dirty?2:0);e.fixed32.encode(d,o.discoveryPublicKey),e.uint.encode(d,o.timestamp),e.uint.encode(d,n),o.lastSynced&&e.uint.encode(d,o.lastSynced)},decode(d){const o=e.fixed32.decode(d),n=e.uint.decode(d),c=e.uint.decode(d);return{discoveryPublicKey:o,timestamp:n,lastSynced:1&c?e.uint.decode(d):0,dirty:!!(2&c)}}},br={preencode(d,o){e.uint.preencode(d,o.rooms),e.uint.preencode(d,o.activeRooms)},encode(d,o){e.uint.encode(d,o.rooms),e.uint.encode(d,o.activeRooms)},decode:d=>({rooms:e.uint.decode(d),activeRooms:e.uint.decode(d)})},vr=S,gr=$,hr={preencode(e,d){e.end++,d.blockedMembers&&gr.preencode(e,d.blockedMembers)},encode(d,o){const n=o.blockedMembers?1:0;e.uint.encode(d,n),o.blockedMembers&&gr.encode(d,o.blockedMembers)},decode:d=>({blockedMembers:1&e.uint.decode(d)?gr.decode(d):null})},kr=e.frame(Q),Kr=e.frame(hr),wr={preencode(d,n){e.buffer.preencode(d,n.encryptionKey),e.fixed32.preencode(d,n.seed),kr.preencode(d,n.capabilities),o.preencode(d,n.initiator),e.fixed32.preencode(d,n.fastForwardTo),d.end++,n.privateProfile&&Kr.preencode(d,n.privateProfile)},encode(d,n){const c=n.privateProfile?1:0;e.buffer.encode(d,n.encryptionKey),e.fixed32.encode(d,n.seed),kr.encode(d,n.capabilities),o.encode(d,n.initiator),e.fixed32.encode(d,n.fastForwardTo),e.uint.encode(d,c),n.privateProfile&&Kr.encode(d,n.privateProfile)},decode:d=>({encryptionKey:e.buffer.decode(d),seed:e.fixed32.decode(d),capabilities:kr.decode(d),initiator:o.decode(d),fastForwardTo:e.fixed32.decode(d),privateProfile:1&e.uint.decode(d)?Kr.decode(d):null})},Pr={preencode(d,o){d.end++,o.count&&e.uint.preencode(d,o.count)},encode(d,o){const n=o.count?1:0;e.uint.encode(d,n),o.count&&e.uint.encode(d,o.count)},decode:d=>({count:1&e.uint.decode(d)?e.uint.decode(d):0})},Rr=e.frame(wr),Tr={preencode(d,o){e.fixed32.preencode(d,o.roomKey),e.uint.preencode(d,o.priority),d.end++,o.v3&&Rr.preencode(d,o.v3),o.timestamp&&e.uint.preencode(d,o.timestamp)},encode(d,o){const n=(o.v3?1:0)|(o.errored?2:0)|(o.timestamp?4:0);e.fixed32.encode(d,o.roomKey),e.uint.encode(d,o.priority),e.uint.encode(d,n),o.v3&&Rr.encode(d,o.v3),o.timestamp&&e.uint.encode(d,o.timestamp)},decode(d){const o=e.fixed32.decode(d),n=e.uint.decode(d),c=e.uint.decode(d);return{roomKey:o,priority:n,v3:1&c?Rr.decode(d):null,errored:!!(2&c),timestamp:4&c?e.uint.decode(d):0}}},Ar={preencode(e,d){e.end++},encode(d,o){const n=o.isConfirmed?1:0;e.uint.encode(d,n)},decode:d=>({isConfirmed:!!(1&e.uint.decode(d))})},Mr={preencode(d,o){e.fixed32.preencode(d,o.privateProfileKey)},encode(d,o){e.fixed32.encode(d,o.privateProfileKey)},decode:d=>({privateProfileKey:e.fixed32.decode(d)})},qr=e.frame(Ar),Ir=gc,Sr=e.frame(xc),Cr={preencode(o,n){e.fixed32.preencode(o,n.publicKey),e.fixed32.preencode(o,n.privateProfileKey),r.preencode(o,n.deviceKeyPair),e.buffer.preencode(o,n.deviceProof),qr.preencode(o,n.status),o.end++,n.entropy&&e.buffer.preencode(o,n.entropy),n.swap&&Ir.preencode(o,n.swap),n.swapV2&&Sr.preencode(o,n.swapV2),d>=7&&n.proofShortenedAt&&e.uint.preencode(o,n.proofShortenedAt)},encode(o,n){const c=(n.entropy?1:0)|(n.swap?2:0)|(n.swapV2?4:0)|(d>=7&&n.proofShortenedAt?8:0);e.fixed32.encode(o,n.publicKey),e.fixed32.encode(o,n.privateProfileKey),r.encode(o,n.deviceKeyPair),e.buffer.encode(o,n.deviceProof),qr.encode(o,n.status),e.uint.encode(o,c),n.entropy&&e.buffer.encode(o,n.entropy),n.swap&&Ir.encode(o,n.swap),n.swapV2&&Sr.encode(o,n.swapV2),d>=7&&n.proofShortenedAt&&e.uint.encode(o,n.proofShortenedAt)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),t=r.decode(o),i=e.buffer.decode(o),a=qr.decode(o),s=e.uint.decode(o);return{publicKey:n,privateProfileKey:c,deviceKeyPair:t,deviceProof:i,status:a,entropy:1&s?e.buffer.decode(o):null,swap:2&s?Ir.decode(o):null,swapV2:4&s?Sr.decode(o):null,proofShortenedAt:d>=7&&8&s?e.uint.decode(o):0}}},Dr={RestoreIdentity:1,CreateRoom:2,LeaveRoom:3,ClearRoom:4,JoinRoomInvitation:5,JoinRoomKeys:6,JoinRoomResponse:7,SendContactRequest:8,TestFastTask:9,TestSlowTask:10,TestErrorTask:11},Lr={preencode(e,d){e.end++},encode(d,o){if(o>11)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},Fr={preencode(d,n){e.fixed32.preencode(d,n.roomKey),e.buffer.preencode(d,n.encryptionKey),d.end++,n.fastForwardTo&&e.fixed32.preencode(d,n.fastForwardTo),n.initiator&&o.preencode(d,n.initiator)},encode(d,n){const c=(n.fastForwardTo?1:0)|(n.initiator?2:0);e.fixed32.encode(d,n.roomKey),e.buffer.encode(d,n.encryptionKey),e.uint.encode(d,c),n.fastForwardTo&&e.fixed32.encode(d,n.fastForwardTo),n.initiator&&o.encode(d,n.initiator)},decode(d){const n=e.fixed32.decode(d),c=e.buffer.decode(d),r=e.uint.decode(d);return{roomKey:n,encryptionKey:c,fastForwardTo:1&r?e.fixed32.decode(d):null,initiator:2&r?o.decode(d):null}}},jr=uc,Er={preencode(e,d){jr.preencode(e,d.invitation)},encode(e,d){jr.encode(e,d.invitation)},decode:e=>({invitation:jr.decode(e)})},Br={preencode(d,o){e.fixed32.preencode(d,o.mailbox),r.preencode(d,o.keyPair),e.buffer.preencode(d,o.response)},encode(d,o){e.fixed32.encode(d,o.mailbox),r.encode(d,o.keyPair),e.buffer.encode(d,o.response)},decode:d=>({mailbox:e.fixed32.decode(d),keyPair:r.decode(d),response:e.buffer.decode(d)})},zr=ee,Nr={preencode(d,n){e.fixed32.preencode(d,n.roomKey),e.buffer.preencode(d,n.encryptionKey),d.end++,n.fastForwardTo&&e.fixed32.preencode(d,n.fastForwardTo),n.initiator&&o.preencode(d,n.initiator),n.mailbox&&e.fixed32.preencode(d,n.mailbox)},encode(d,n){const c=(n.fastForwardTo?1:0)|(n.initiator?2:0)|(n.mailbox?4:0);e.fixed32.encode(d,n.roomKey),e.buffer.encode(d,n.encryptionKey),e.uint.encode(d,c),n.fastForwardTo&&e.fixed32.encode(d,n.fastForwardTo),n.initiator&&o.encode(d,n.initiator),n.mailbox&&e.fixed32.encode(d,n.mailbox)},decode(d){const n=e.fixed32.decode(d),c=e.buffer.decode(d),r=e.uint.decode(d);return{roomKey:n,encryptionKey:c,fastForwardTo:1&r?e.fixed32.decode(d):null,initiator:2&r?o.decode(d):null,mailbox:4&r?e.fixed32.decode(d):null}}},Or=e.frame(Nr),Ur={preencode(e,d){Or.preencode(e,d.keys)},encode(e,d){Or.encode(e,d.keys)},decode:e=>({keys:Or.decode(e)})},Vr=e.frame(kn),Jr={preencode(d,n){e.fixed32.preencode(d,n.roomKey),e.buffer.preencode(d,n.encryptionKey),d.end++,n.fastForwardTo&&e.fixed32.preencode(d,n.fastForwardTo),n.initiator&&o.preencode(d,n.initiator),n.mailbox&&e.fixed32.preencode(d,n.mailbox),n.keyPair&&r.preencode(d,n.keyPair),n.genesis&&Vr.preencode(d,n.genesis)},encode(d,n){const c=(n.fastForwardTo?1:0)|(n.initiator?2:0)|(n.mailbox?4:0)|(n.keyPair?8:0)|(n.genesis?16:0)|(n.isPrivateProfile?32:0);e.fixed32.encode(d,n.roomKey),e.buffer.encode(d,n.encryptionKey),e.uint.encode(d,c),n.fastForwardTo&&e.fixed32.encode(d,n.fastForwardTo),n.initiator&&o.encode(d,n.initiator),n.mailbox&&e.fixed32.encode(d,n.mailbox),n.keyPair&&r.encode(d,n.keyPair),n.genesis&&Vr.encode(d,n.genesis)},decode(d){const n=e.fixed32.decode(d),c=e.buffer.decode(d),t=e.uint.decode(d);return{roomKey:n,encryptionKey:c,fastForwardTo:1&t?e.fixed32.decode(d):null,initiator:2&t?o.decode(d):null,mailbox:4&t?e.fixed32.decode(d):null,keyPair:8&t?r.decode(d):null,genesis:16&t?Vr.decode(d):null,isPrivateProfile:!!(32&t)}}},Hr={preencode(d,o){e.fixed32.preencode(d,o.roomKey),d.end++},encode(d,o){const n=o.isGossiped?1:0;e.fixed32.encode(d,o.roomKey),e.uint.encode(d,n)},decode:d=>({roomKey:e.fixed32.decode(d),isGossiped:!!(1&e.uint.decode(d))})},Wr={preencode(d,o){e.fixed32.preencode(d,o.roomKey)},encode(d,o){e.fixed32.encode(d,o.roomKey)},decode:d=>({roomKey:e.fixed32.decode(d)})},Gr={preencode(d,o){e.string.preencode(d,o.mnemonic),d.end++,o.profileDiscoveryTimeout&&e.uint.preencode(d,o.profileDiscoveryTimeout)},encode(d,o){const n=(o.profileDiscoveryTimeout?1:0)|(o.recover?2:0);e.string.encode(d,o.mnemonic),e.uint.encode(d,n),o.profileDiscoveryTimeout&&e.uint.encode(d,o.profileDiscoveryTimeout)},decode(d){const o=e.string.decode(d),n=e.uint.decode(d);return{mnemonic:o,profileDiscoveryTimeout:1&n?e.uint.decode(d):0,recover:!!(2&n)}}},Qr=Qn,Xr={preencode(d,o){e.fixed32.preencode(d,o.roomKey),e.fixed32.preencode(d,o.memberKey),d.end++,o.message&&e.string.preencode(d,o.message),o.contactInfo&&Qr.preencode(d,o.contactInfo)},encode(d,o){const n=(o.message?1:0)|(o.contactInfo?2:0);e.fixed32.encode(d,o.roomKey),e.fixed32.encode(d,o.memberKey),e.uint.encode(d,n),o.message&&e.string.encode(d,o.message),o.contactInfo&&Qr.encode(d,o.contactInfo)},decode(d){const o=e.fixed32.decode(d),n=e.fixed32.decode(d),c=e.uint.decode(d);return{roomKey:o,memberKey:n,message:1&c?e.string.decode(d):null,contactInfo:2&c?Qr.decode(d):null}}},Yr={preencode(d,o){e.fixed32.preencode(d,o.key),d.end++},encode(d,o){const n=o.isPrivateProfile?1:0;e.fixed32.encode(d,o.key),e.uint.encode(d,n)},decode:d=>({key:e.fixed32.decode(d),isPrivateProfile:!!(1&e.uint.decode(d))})},Zr=e.frame(Gr),$r=e.frame(Jr),_r=e.frame(Hr),et=e.frame(Wr),dt=e.frame(Er),ot=e.frame(Ur),nt=e.frame(Br),ct=e.frame(Xr),rt=e.frame(Yr),tt={preencode(d,o){const n=(o.restoreIdentity?1:0)|(o.createRoom?2:0)|(o.leaveRoom?4:0)|(o.clearRoom?8:0)|(o.joinRoomInvitation?16:0)|(o.joinRoomKeys?32:0)|(o.joinRoomResponse?64:0)|(o.sendContactRequest?128:0)|(o.migrateV2Room?256:0);e.fixed32.preencode(d,o.discoveryKey),e.uint.preencode(d,o.priority),e.uint.preencode(d,o.timestamp),e.uint.preencode(d,o.type),e.uint.preencode(d,n),o.restoreIdentity&&Zr.preencode(d,o.restoreIdentity),o.createRoom&&$r.preencode(d,o.createRoom),o.leaveRoom&&_r.preencode(d,o.leaveRoom),o.clearRoom&&et.preencode(d,o.clearRoom),o.joinRoomInvitation&&dt.preencode(d,o.joinRoomInvitation),o.joinRoomKeys&&ot.preencode(d,o.joinRoomKeys),o.joinRoomResponse&&nt.preencode(d,o.joinRoomResponse),o.sendContactRequest&&ct.preencode(d,o.sendContactRequest),o.migrateV2Room&&rt.preencode(d,o.migrateV2Room)},encode(d,o){const n=(o.restoreIdentity?1:0)|(o.createRoom?2:0)|(o.leaveRoom?4:0)|(o.clearRoom?8:0)|(o.joinRoomInvitation?16:0)|(o.joinRoomKeys?32:0)|(o.joinRoomResponse?64:0)|(o.sendContactRequest?128:0)|(o.migrateV2Room?256:0);e.fixed32.encode(d,o.discoveryKey),e.uint.encode(d,o.priority),e.uint.encode(d,o.timestamp),e.uint.encode(d,o.type),e.uint.encode(d,n),o.restoreIdentity&&Zr.encode(d,o.restoreIdentity),o.createRoom&&$r.encode(d,o.createRoom),o.leaveRoom&&_r.encode(d,o.leaveRoom),o.clearRoom&&et.encode(d,o.clearRoom),o.joinRoomInvitation&&dt.encode(d,o.joinRoomInvitation),o.joinRoomKeys&&ot.encode(d,o.joinRoomKeys),o.joinRoomResponse&&nt.encode(d,o.joinRoomResponse),o.sendContactRequest&&ct.encode(d,o.sendContactRequest),o.migrateV2Room&&rt.encode(d,o.migrateV2Room)},decode(d){const o=e.fixed32.decode(d),n=e.uint.decode(d),c=e.uint.decode(d),r=e.uint.decode(d),t=e.uint.decode(d);return{discoveryKey:o,priority:n,timestamp:c,type:r,restoreIdentity:1&t?Zr.decode(d):null,createRoom:2&t?$r.decode(d):null,leaveRoom:4&t?_r.decode(d):null,clearRoom:8&t?et.decode(d):null,joinRoomInvitation:16&t?dt.decode(d):null,joinRoomKeys:32&t?ot.decode(d):null,joinRoomResponse:64&t?nt.decode(d):null,sendContactRequest:128&t?ct.decode(d):null,migrateV2Room:256&t?rt.decode(d):null}}},it=Ue,at={preencode(d,o){e.buffer.preencode(d,o.seed),it.preencode(d,o.invitation)},encode(d,o){e.buffer.encode(d,o.seed),it.encode(d,o.invitation)},decode:d=>({seed:e.buffer.decode(d),invitation:it.decode(d)})},st={preencode(e,d){e.end++},encode(d,o){const n=(o.isWritable?1:0)|(o.isReadable?2:0)|(o.isPrivateProfile?4:0)|(o.isRemoved?8:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isWritable:!!(1&o),isReadable:!!(2&o),isPrivateProfile:!!(4&o),isRemoved:!!(8&o)}}},pt={preencode(d,o){e.uint.preencode(d,o.creation),e.uint.preencode(d,o.latestSync),e.uint.preencode(d,o.latestChatMessage)},encode(d,o){e.uint.encode(d,o.creation),e.uint.encode(d,o.latestSync),e.uint.encode(d,o.latestChatMessage)},decode:d=>({creation:e.uint.decode(d),latestSync:e.uint.decode(d),latestChatMessage:e.uint.decode(d)})},ut=yn,lt=Mo,ft=e.frame(pt),mt=kr,yt=e.frame(st),xt=e.frame(pe),bt=e.frame(Kd),vt=an,gt=vn,ht=e.frame(Eo),kt=$,Kt=e.array(e.frame(Wn)),wt=e.frame(gd),Pt=vc,Rt={preencode(o,n){const c=(n.selfDevice?1:0)|(n.selfMember?2:0)|(n.config?4:0)|(n.identity?8:0)|(n.lastMessage?16:0)|(n.dm?32:0)|(n.readLengths?64:0)|(n.lastMember?128:0)|(n.version?256:0)|(d>=3&&n.preferences?512:0)|(d>=4&&n.activeCall?1024:0)|(d>=8&&n.lastMessageLabels?2048:0)|(d>=9&&n.settings?4096:0);e.fixed32.preencode(o,n.roomKey),e.fixed32.preencode(o,n.discoveryKey),e.buffer.preencode(o,n.encryptionKey),ut.preencode(o,n.digest),lt.preencode(o,n.stats),ft.preencode(o,n.timestamps),e.uint.preencode(o,n.fork),e.uint.preencode(o,n.length),e.fixed32.preencode(o,n.seed),mt.preencode(o,n.capabilities),yt.preencode(o,n.status),e.uint.preencode(o,c),n.selfDevice&&xt.preencode(o,n.selfDevice),n.selfMember&&bt.preencode(o,n.selfMember),n.config&&vt.preencode(o,n.config),n.identity&&gt.preencode(o,n.identity),n.lastMessage&&ht.preencode(o,n.lastMessage),n.dm&&kt.preencode(o,n.dm),n.readLengths&&Kt.preencode(o,n.readLengths),n.lastMember&&wt.preencode(o,n.lastMember),n.version&&e.uint.preencode(o,n.version),d>=3&&n.preferences&&Pt.preencode(o,n.preferences),d>=4&&n.activeCall&&Tu.preencode(o,n.activeCall),d>=8&&n.lastMessageLabels&&Au.preencode(o,n.lastMessageLabels),d>=9&&n.settings&&Mu.preencode(o,n.settings)},encode(o,n){const c=(n.selfDevice?1:0)|(n.selfMember?2:0)|(n.config?4:0)|(n.identity?8:0)|(n.lastMessage?16:0)|(n.dm?32:0)|(n.readLengths?64:0)|(n.lastMember?128:0)|(n.version?256:0)|(d>=3&&n.preferences?512:0)|(d>=4&&n.activeCall?1024:0)|(d>=8&&n.lastMessageLabels?2048:0)|(d>=9&&n.settings?4096:0);e.fixed32.encode(o,n.roomKey),e.fixed32.encode(o,n.discoveryKey),e.buffer.encode(o,n.encryptionKey),ut.encode(o,n.digest),lt.encode(o,n.stats),ft.encode(o,n.timestamps),e.uint.encode(o,n.fork),e.uint.encode(o,n.length),e.fixed32.encode(o,n.seed),mt.encode(o,n.capabilities),yt.encode(o,n.status),e.uint.encode(o,c),n.selfDevice&&xt.encode(o,n.selfDevice),n.selfMember&&bt.encode(o,n.selfMember),n.config&&vt.encode(o,n.config),n.identity&&gt.encode(o,n.identity),n.lastMessage&&ht.encode(o,n.lastMessage),n.dm&&kt.encode(o,n.dm),n.readLengths&&Kt.encode(o,n.readLengths),n.lastMember&&wt.encode(o,n.lastMember),n.version&&e.uint.encode(o,n.version),d>=3&&n.preferences&&Pt.encode(o,n.preferences),d>=4&&n.activeCall&&Tu.encode(o,n.activeCall),d>=8&&n.lastMessageLabels&&Au.encode(o,n.lastMessageLabels),d>=9&&n.settings&&Mu.encode(o,n.settings)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),r=e.buffer.decode(o),t=ut.decode(o),i=lt.decode(o),a=ft.decode(o),s=e.uint.decode(o),p=e.uint.decode(o),u=e.fixed32.decode(o),l=mt.decode(o),f=yt.decode(o),m=e.uint.decode(o);return{roomKey:n,discoveryKey:c,encryptionKey:r,digest:t,stats:i,timestamps:a,fork:s,length:p,seed:u,capabilities:l,status:f,selfDevice:1&m?xt.decode(o):null,selfMember:2&m?bt.decode(o):null,config:4&m?vt.decode(o):null,identity:8&m?gt.decode(o):null,lastMessage:16&m?ht.decode(o):null,dm:32&m?kt.decode(o):null,readLengths:64&m?Kt.decode(o):null,lastMember:128&m?wt.decode(o):null,version:256&m?e.uint.decode(o):0,preferences:d>=3&&512&m?Pt.decode(o):null,activeCall:d>=4&&1024&m?Tu.decode(o):null,lastMessageLabels:d>=8&&2048&m?Au.decode(o):null,settings:d>=9&&4096&m?Mu.decode(o):null}}},Tt=vc,At={preencode(d,o){e.fixed32.preencode(d,o.roomKey),Tt.preencode(d,o.status)},encode(d,o){e.fixed32.encode(d,o.roomKey),Tt.encode(d,o.status)},decode:d=>({roomKey:e.fixed32.decode(d),status:Tt.decode(d)})},Mt={preencode(d,o){e.fixed32.preencode(d,o.roomKey),d.end++,o.repairs&&e.uint.preencode(d,o.repairs)},encode(d,o){const n=o.repairs?1:0;e.fixed32.encode(d,o.roomKey),e.uint.encode(d,n),o.repairs&&e.uint.encode(d,o.repairs)},decode:d=>({roomKey:e.fixed32.decode(d),repairs:1&e.uint.decode(d)?e.uint.decode(d):0})},qt={preencode(d,o){e.fixed32.preencode(d,o.mailbox),e.fixed32.preencode(d,o.key),d.end++,o.roomKey&&e.fixed32.preencode(d,o.roomKey),o.keyPair&&r.preencode(d,o.keyPair),o.responseKeyPair&&r.preencode(d,o.responseKeyPair)},encode(d,o){const n=(o.roomKey?1:0)|(o.keyPair?2:0)|(o.responseKeyPair?4:0);e.fixed32.encode(d,o.mailbox),e.fixed32.encode(d,o.key),e.uint.encode(d,n),o.roomKey&&e.fixed32.encode(d,o.roomKey),o.keyPair&&r.encode(d,o.keyPair),o.responseKeyPair&&r.encode(d,o.responseKeyPair)},decode(d){const o=e.fixed32.decode(d),n=e.fixed32.decode(d),c=e.uint.decode(d);return{mailbox:o,key:n,roomKey:1&c?e.fixed32.decode(d):null,keyPair:2&c?r.decode(d):null,responseKeyPair:4&c?r.decode(d):null}}},It={preencode(d,o){e.fixed32.preencode(d,o.key),e.fixed32.preencode(d,o.responsePublicKey)},encode(d,o){e.fixed32.encode(d,o.key),e.fixed32.encode(d,o.responsePublicKey)},decode:d=>({key:e.fixed32.decode(d),responsePublicKey:e.fixed32.decode(d)})},St=fe,Ct={preencode(d,o){e.fixed32.preencode(d,o.key),St.preencode(d,o.profile)},encode(d,o){e.fixed32.encode(d,o.key),St.encode(d,o.profile)},decode:d=>({key:e.fixed32.decode(d),profile:St.decode(d)})},Dt=xt,Lt={preencode(d,o){e.fixed32.preencode(d,o.roomKey),Dt.preencode(d,o.device)},encode(d,o){e.fixed32.encode(d,o.roomKey),Dt.encode(d,o.device)},decode:d=>({roomKey:e.fixed32.decode(d),device:Dt.decode(d)})},Ft=h,jt={preencode(o,n){Ft.preencode(o,n.file),e.fixed32.preencode(o,n.roomKey),o.end++,n.encryptionKey&&e.buffer.preencode(o,n.encryptionKey),d>=4&&n.lastAccessed&&e.uint.preencode(o,n.lastAccessed),d>=4&&n.version&&e.uint.preencode(o,n.version)},encode(o,n){const c=(n.encryptionKey?1:0)|(n.cleared?2:0)|(n.own?4:0)|(d>=4&&n.lastAccessed?8:0)|(d>=4&&n.version?16:0);Ft.encode(o,n.file),e.fixed32.encode(o,n.roomKey),e.uint.encode(o,c),n.encryptionKey&&e.buffer.encode(o,n.encryptionKey),d>=4&&n.lastAccessed&&e.uint.encode(o,n.lastAccessed),d>=4&&n.version&&e.uint.encode(o,n.version)},decode(o){const n=Ft.decode(o),c=e.fixed32.decode(o),r=e.uint.decode(o);return{file:n,roomKey:c,encryptionKey:1&r?e.buffer.decode(o):null,cleared:!!(2&r),own:!!(4&r),lastAccessed:d>=4&&8&r?e.uint.decode(o):0,version:d>=4&&16&r?e.uint.decode(o):0}}},Et={preencode(d,o){d.end++,o.key&&e.string.preencode(d,o.key),o.description&&e.string.preencode(d,o.description)},encode(d,o){const n=(o.key?1:0)|(o.value?2:0)|(o.description?4:0);e.uint.encode(d,n),o.key&&e.string.encode(d,o.key),o.description&&e.string.encode(d,o.description)},decode(d){const o=e.uint.decode(d);return{key:1&o?e.string.decode(d):null,value:!!(2&o),description:4&o?e.string.decode(d):null}}},Bt=e.array(e.frame(Et)),zt={preencode(e,d){e.end++,d.flags&&Bt.preencode(e,d.flags)},encode(d,o){const n=o.flags?1:0;e.uint.encode(d,n),o.flags&&Bt.encode(d,o.flags)},decode:d=>({flags:1&e.uint.decode(d)?Bt.decode(d):null})},Nt=ed,Ot={preencode(d,o){d.end++,o.nodes&&Nt.preencode(d,o.nodes),o.concurrency&&e.uint.preencode(d,o.concurrency),o.maxWindow&&e.uint.preencode(d,o.maxWindow),o.randomPunchInterval&&e.uint.preencode(d,o.randomPunchInterval),o.connectionKeepAlive&&e.uint.preencode(d,o.connectionKeepAlive)},encode(d,o){const n=(o.nodes?1:0)|(o.concurrency?2:0)|(o.maxWindow?4:0)|(o.randomPunchInterval?8:0)|(o.connectionKeepAlive?16:0);e.uint.encode(d,n),o.nodes&&Nt.encode(d,o.nodes),o.concurrency&&e.uint.encode(d,o.concurrency),o.maxWindow&&e.uint.encode(d,o.maxWindow),o.randomPunchInterval&&e.uint.encode(d,o.randomPunchInterval),o.connectionKeepAlive&&e.uint.encode(d,o.connectionKeepAlive)},decode(d){const o=e.uint.decode(d);return{nodes:1&o?Nt.decode(d):null,concurrency:2&o?e.uint.decode(d):0,maxWindow:4&o?e.uint.decode(d):0,randomPunchInterval:8&o?e.uint.decode(d):0,connectionKeepAlive:16&o?e.uint.decode(d):0}}},Ut={preencode(d,o){e.fixed32.preencode(d,o.roomKey),e.uint.preencode(d,o.count)},encode(d,o){e.fixed32.encode(d,o.roomKey),e.uint.encode(d,o.count)},decode:d=>({roomKey:e.fixed32.decode(d),count:e.uint.decode(d)})},Vt={preencode(d,o){d.end++,o.roomKey&&e.fixed32.preencode(d,o.roomKey),o.coreKey&&e.fixed32.preencode(d,o.coreKey)},encode(d,o){const n=(o.roomKey?1:0)|(o.coreKey?2:0);e.uint.encode(d,n),o.roomKey&&e.fixed32.encode(d,o.roomKey),o.coreKey&&e.fixed32.encode(d,o.coreKey)},decode(d){const o=e.uint.decode(d);return{roomKey:1&o?e.fixed32.decode(d):null,coreKey:2&o?e.fixed32.decode(d):null}}},Jt=e.frame(Vt),Ht={preencode(d,o){e.string.preencode(d,o.code),e.string.preencode(d,o.message),e.string.preencode(d,o.stack),e.uint.preencode(d,o.timestamp),d.end++,o.details&&Jt.preencode(d,o.details)},encode(d,o){const n=o.details?1:0;e.string.encode(d,o.code),e.string.encode(d,o.message),e.string.encode(d,o.stack),e.uint.encode(d,o.timestamp),e.uint.encode(d,n),o.details&&Jt.encode(d,o.details)},decode:d=>({code:e.string.decode(d),message:e.string.decode(d),stack:e.string.decode(d),timestamp:e.uint.decode(d),details:1&e.uint.decode(d)?Jt.decode(d):null})},Wt={RESUME:1,WAKEUP:2,PRESUSPEND:3,SUSPEND:4},Gt={preencode(e,d){e.end++},encode(d,o){if(o>4)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},Qt={preencode(d,o){e.fixed32.preencode(d,o.roomKey),e.uint.preencode(d,o.total)},encode(d,o){e.fixed32.encode(d,o.roomKey),e.uint.encode(d,o.total)},decode:d=>({roomKey:e.fixed32.decode(d),total:e.uint.decode(d)})},Xt=i,Yt={preencode(d,o){e.uint.preencode(d,o.duration)},encode(d,o){e.uint.encode(d,o.duration)},decode:d=>({duration:e.uint.decode(d)})},Zt=F,$t=F,_t=e.frame(Xt),ei={preencode(e,d){_t.preencode(e,d.header)},encode(e,d){_t.encode(e,d.header)},decode:e=>({header:_t.decode(e)})},di=e.frame(Yt),oi={preencode(e,d){di.preencode(e,d.header)},encode(e,d){di.encode(e,d.header)},decode:e=>({header:di.decode(e)})},ni=_t,ci={preencode(e,d){ni.preencode(e,d.header)},encode(e,d){ni.encode(e,d.header)},decode:e=>({header:ni.decode(e)})},ri=F,ti=_t,ii=an,ai=H,si={preencode(e,d){ti.preencode(e,d.header),e.end++,d.config&&ii.preencode(e,d.config),d.settings&&ai.preencode(e,d.settings)},encode(d,o){const n=(o.config?1:0)|(o.settings?2:0);ti.encode(d,o.header),e.uint.encode(d,n),o.config&&ii.encode(d,o.config),o.settings&&ai.encode(d,o.settings)},decode(d){const o=ti.decode(d),n=e.uint.decode(d);return{header:o,config:1&n?ii.decode(d):null,settings:2&n?ai.decode(d):null}}},pi=di,ui={preencode(d,o){pi.preencode(d,o.header),d.end++,o.roomKey&&e.fixed32.preencode(d,o.roomKey)},encode(d,o){const n=o.roomKey?1:0;pi.encode(d,o.header),e.uint.encode(d,n),o.roomKey&&e.fixed32.encode(d,o.roomKey)},decode:d=>({header:pi.decode(d),roomKey:1&e.uint.decode(d)?e.fixed32.decode(d):null})},li=_t,fi={preencode(d,o){li.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey)},encode(d,o){li.encode(d,o.header),e.fixed32.encode(d,o.roomKey)},decode:d=>({header:li.decode(d),roomKey:e.fixed32.decode(d)})},mi=_t,yi={preencode(d,o){mi.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey)},encode(d,o){mi.encode(d,o.header),e.fixed32.encode(d,o.roomKey)},decode:d=>({header:mi.decode(d),roomKey:e.fixed32.decode(d)})},xi=_t,bi={preencode(d,o){xi.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey)},encode(d,o){xi.encode(d,o.header),e.fixed32.encode(d,o.roomKey)},decode:d=>({header:xi.decode(d),roomKey:e.fixed32.decode(d)})},vi=di,gi={preencode(e,d){vi.preencode(e,d.header)},encode(e,d){vi.encode(e,d.header)},decode:e=>({header:vi.decode(e)})},hi=_t,ki=an,Ki={preencode(d,o){hi.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey),e.uint.preencode(d,o.key),ki.preencode(d,o.config)},encode(d,o){hi.encode(d,o.header),e.fixed32.encode(d,o.roomKey),e.uint.encode(d,o.key),ki.encode(d,o.config)},decode:d=>({header:hi.decode(d),roomKey:e.fixed32.decode(d),key:e.uint.decode(d),config:ki.decode(d)})},wi=_t,Pi=H,Ri={preencode(d,o){wi.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey),e.uint.preencode(d,o.key),Pi.preencode(d,o.settings)},encode(d,o){wi.encode(d,o.header),e.fixed32.encode(d,o.roomKey),e.uint.encode(d,o.key),Pi.encode(d,o.settings)},decode:d=>({header:wi.decode(d),roomKey:e.fixed32.decode(d),key:e.uint.decode(d),settings:Pi.decode(d)})},Ti=_t,Ai=vc,Mi={preencode(d,o){Ti.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey),e.uint.preencode(d,o.key),Ai.preencode(d,o.status)},encode(d,o){Ti.encode(d,o.header),e.fixed32.encode(d,o.roomKey),e.uint.encode(d,o.key),Ai.encode(d,o.status)},decode:d=>({header:Ti.decode(d),roomKey:e.fixed32.decode(d),key:e.uint.decode(d),status:Ai.decode(d)})},qi=_t,Ii=zo,Si={preencode(d,o){qi.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey),Ii.preencode(d,o.message)},encode(d,o){qi.encode(d,o.header),e.fixed32.encode(d,o.roomKey),Ii.encode(d,o.message)},decode:d=>({header:qi.decode(d),roomKey:e.fixed32.decode(d),message:Ii.decode(d)})},Ci=di,Di={preencode(e,d){Ci.preencode(e,d.header)},encode(e,d){Ci.encode(e,d.header)},decode:e=>({header:Ci.decode(e)})},Li=_t,Fi=zo,ji={preencode(d,o){Li.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey),n.preencode(d,o.id),Fi.preencode(d,o.message)},encode(d,o){Li.encode(d,o.header),e.fixed32.encode(d,o.roomKey),n.encode(d,o.id),Fi.encode(d,o.message)},decode:d=>({header:Li.decode(d),roomKey:e.fixed32.decode(d),id:n.decode(d),message:Fi.decode(d)})},Ei=di,Bi={preencode(e,d){Ei.preencode(e,d.header)},encode(e,d){Ei.encode(e,d.header)},decode:e=>({header:Ei.decode(e)})},zi=_t,Ni={preencode(d,o){zi.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey),n.preencode(d,o.id)},encode(d,o){zi.encode(d,o.header),e.fixed32.encode(d,o.roomKey),n.encode(d,o.id)},decode:d=>({header:zi.decode(d),roomKey:e.fixed32.decode(d),id:n.decode(d)})},Oi=di,Ui={preencode(e,d){Oi.preencode(e,d.header)},encode(e,d){Oi.encode(e,d.header)},decode:e=>({header:Oi.decode(e)})},Vi=_t,Ji={preencode(d,o){Vi.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey),n.preencode(d,o.id),e.string.preencode(d,o.reaction)},encode(d,o){Vi.encode(d,o.header),e.fixed32.encode(d,o.roomKey),n.encode(d,o.id),e.string.encode(d,o.reaction)},decode:d=>({header:Vi.decode(d),roomKey:e.fixed32.decode(d),id:n.decode(d),reaction:e.string.decode(d)})},Hi=di,Wi={preencode(e,d){Hi.preencode(e,d.header)},encode(e,d){Hi.encode(e,d.header)},decode:e=>({header:Hi.decode(e)})},Gi=_t,Qi={preencode(d,o){Gi.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey),n.preencode(d,o.id),e.string.preencode(d,o.reaction)},encode(d,o){Gi.encode(d,o.header),e.fixed32.encode(d,o.roomKey),n.encode(d,o.id),e.string.encode(d,o.reaction)},decode:d=>({header:Gi.decode(d),roomKey:e.fixed32.decode(d),id:n.decode(d),reaction:e.string.decode(d)})},Xi=di,Yi={preencode(e,d){Xi.preencode(e,d.header)},encode(e,d){Xi.encode(e,d.header)},decode:e=>({header:Xi.decode(e)})},Zi={preencode(d,o){e.uint.preencode(d,o.clock),e.uint.preencode(d,o.start),e.uint.preencode(d,o.end)},encode(d,o){e.uint.encode(d,o.clock),e.uint.encode(d,o.start),e.uint.encode(d,o.end)},decode:d=>({clock:e.uint.decode(d),start:e.uint.decode(d),end:e.uint.decode(d)})},$i=F,_i=$,ea={preencode(d,o){e.uint.preencode(d,o.clock),_i.preencode(d,o.keys)},encode(d,o){e.uint.encode(d,o.clock),_i.encode(d,o.keys)},decode:d=>({clock:e.uint.decode(d),keys:_i.decode(d)})},da={preencode(d,o){e.uint.preencode(d,o.clock),e.fixed32.preencode(d,o.roomKey),d.end++,o.start&&e.uint.preencode(d,o.start),o.size&&e.uint.preencode(d,o.size)},encode(d,o){const n=(o.start?1:0)|(o.size?2:0)|(o.isBottom?4:0);e.uint.encode(d,o.clock),e.fixed32.encode(d,o.roomKey),e.uint.encode(d,n),o.start&&e.uint.encode(d,o.start),o.size&&e.uint.encode(d,o.size)},decode(d){const o=e.uint.decode(d),n=e.fixed32.decode(d),c=e.uint.decode(d);return{clock:o,roomKey:n,start:1&c?e.uint.decode(d):0,size:2&c?e.uint.decode(d):0,isBottom:!!(4&c)}}},oa=F,na={preencode(d,o){e.uint.preencode(d,o.clock),e.fixed32.preencode(d,o.roomKey),d.end++,o.offset&&e.fixed32.preencode(d,o.offset),o.count&&e.uint.preencode(d,o.count)},encode(d,o){const n=(o.offset?1:0)|(o.count?2:0);e.uint.encode(d,o.clock),e.fixed32.encode(d,o.roomKey),e.uint.encode(d,n),o.offset&&e.fixed32.encode(d,o.offset),o.count&&e.uint.encode(d,o.count)},decode(d){const o=e.uint.decode(d),n=e.fixed32.decode(d),c=e.uint.decode(d);return{clock:o,roomKey:n,offset:1&c?e.fixed32.decode(d):null,count:2&c?e.uint.decode(d):0}}},ca=F,ra={preencode(d,o){e.uint.preencode(d,o.timestamp),e.fixed32.preencode(d,o.id)},encode(d,o){e.uint.encode(d,o.timestamp),e.fixed32.encode(d,o.id)},decode:d=>({timestamp:e.uint.decode(d),id:e.fixed32.decode(d)})},ta={Changed:1,Removed:2},ia={preencode(e,d){e.end++},encode(d,o){if(o>2)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},aa=$,sa={preencode(d,o){aa.preencode(d,o.keys),e.uint.preencode(d,o.start),e.uint.preencode(d,o.end),e.uint.preencode(d,o.total)},encode(d,o){aa.encode(d,o.keys),e.uint.encode(d,o.start),e.uint.encode(d,o.end),e.uint.encode(d,o.total)},decode:d=>({keys:aa.decode(d),start:e.uint.decode(d),end:e.uint.decode(d),total:e.uint.decode(d)})},pa={preencode(e,d){ia.preencode(e,d.type),ra.preencode(e,d.room)},encode(e,d){ia.encode(e,d.type),ra.encode(e,d.room)},decode:e=>({type:ia.decode(e),room:ra.decode(e)})},ua=yt,la=bd,fa={preencode(e,d){ua.preencode(e,d.device),e.end++,d.member&&la.preencode(e,d.member)},encode(d,o){const n=o.member?1:0;ua.encode(d,o.device),e.uint.encode(d,n),o.member&&la.encode(d,o.member)},decode:d=>({device:ua.decode(d),member:1&e.uint.decode(d)?la.decode(d):null})},ma=e.frame(fa),ya=yn,xa=an,ba={preencode(d,o){e.fixed32.preencode(d,o.id),ma.preencode(d,o.role),ya.preencode(d,o.digest),xa.preencode(d,o.config),d.end++,o.messageId&&n.preencode(d,o.messageId)},encode(d,o){const c=o.messageId?1:0;e.fixed32.encode(d,o.id),ma.encode(d,o.role),ya.encode(d,o.digest),xa.encode(d,o.config),e.uint.encode(d,c),o.messageId&&n.encode(d,o.messageId)},decode:d=>({id:e.fixed32.decode(d),role:ma.decode(d),digest:ya.decode(d),config:xa.decode(d),messageId:1&e.uint.decode(d)?n.decode(d):null})},va=yt,ga={preencode(d,o){e.fixed32.preencode(d,o.id),va.preencode(d,o.status)},encode(d,o){e.fixed32.encode(d,o.id),va.encode(d,o.status)},decode:d=>({id:e.fixed32.decode(d),status:va.decode(d)})},ha=yn,ka={preencode(d,o){e.fixed32.preencode(d,o.id),ha.preencode(d,o.digest)},encode(d,o){e.fixed32.encode(d,o.id),ha.encode(d,o.digest)},decode:d=>({id:e.fixed32.decode(d),digest:ha.decode(d)})},Ka=an,wa={preencode(d,o){e.fixed32.preencode(d,o.id),Ka.preencode(d,o.config)},encode(d,o){e.fixed32.encode(d,o.id),Ka.encode(d,o.config)},decode:d=>({id:e.fixed32.decode(d),config:Ka.decode(d)})},Pa=ma,Ra={preencode(d,o){e.fixed32.preencode(d,o.id),d.end++,o.role&&Pa.preencode(d,o.role)},encode(d,o){const n=o.role?1:0;e.fixed32.encode(d,o.id),e.uint.encode(d,n),o.role&&Pa.encode(d,o.role)},decode:d=>({id:e.fixed32.decode(d),role:1&e.uint.decode(d)?Pa.decode(d):null})},Ta={preencode(d,o){e.fixed32.preencode(d,o.id),n.preencode(d,o.lastMessage)},encode(d,o){e.fixed32.encode(d,o.id),n.encode(d,o.lastMessage)},decode:d=>({id:e.fixed32.decode(d),lastMessage:n.decode(d)})},Aa=fe,Ma={preencode(d,o){e.fixed32.preencode(d,o.key),Aa.preencode(d,o.profile)},encode(d,o){e.fixed32.encode(d,o.key),Aa.encode(d,o.profile)},decode:d=>({key:e.fixed32.decode(d),profile:Aa.decode(d)})},qa=ae,Ia={preencode(d,o){e.fixed32.preencode(d,o.key),qa.preencode(d,o.status),qu.preencode(d,o.profile)},encode(d,o){e.fixed32.encode(d,o.key),qa.encode(d,o.status),qu.encode(d,o.profile)},decode:d=>({key:e.fixed32.decode(d),status:qa.decode(d),profile:qu.decode(d)})},Sa={preencode(d,o){e.fixed32.preencode(d,o.roomKey),e.fixed32.preencode(d,o.key)},encode(d,o){e.fixed32.encode(d,o.roomKey),e.fixed32.encode(d,o.key)},decode:d=>({roomKey:e.fixed32.decode(d),key:e.fixed32.decode(d)})},Ca=Sa,Da=e.array(n),La={preencode(d,o){e.fixed32.preencode(d,o.roomKey),e.uint.preencode(d,o.start),e.uint.preencode(d,o.size),e.uint.preencode(d,o.total),Da.preencode(d,o.ids),d.end++},encode(d,o){const n=o.isBottom?1:0;e.fixed32.encode(d,o.roomKey),e.uint.encode(d,o.start),e.uint.encode(d,o.size),e.uint.encode(d,o.total),Da.encode(d,o.ids),e.uint.encode(d,n)},decode:d=>({roomKey:e.fixed32.decode(d),start:e.uint.decode(d),size:e.uint.decode(d),total:e.uint.decode(d),ids:Da.decode(d),isBottom:!!(1&e.uint.decode(d))})},Fa={preencode(d,o){e.uint.preencode(d,o.sent),d.end++,o.edited&&e.uint.preencode(d,o.edited)},encode(d,o){const n=o.edited?1:0;e.uint.encode(d,o.sent),e.uint.encode(d,n),o.edited&&e.uint.encode(d,o.edited)},decode:d=>({sent:e.uint.decode(d),edited:1&e.uint.decode(d)?e.uint.decode(d):0})},ja=e.frame(Fa),Ea=Io,Ba=So,za=Co,Na={preencode(d,o){n.preencode(d,o.id),e.uint.preencode(d,o.clock),ja.preencode(d,o.timestamps),Ea.preencode(d,o.status),d.end++,o.message&&Ba.preencode(d,o.message),o.event&&za.preencode(d,o.event)},encode(d,o){const c=(o.message?1:0)|(o.event?2:0);n.encode(d,o.id),e.uint.encode(d,o.clock),ja.encode(d,o.timestamps),Ea.encode(d,o.status),e.uint.encode(d,c),o.message&&Ba.encode(d,o.message),o.event&&za.encode(d,o.event)},decode(d){const o=n.decode(d),c=e.uint.decode(d),r=ja.decode(d),t=Ea.decode(d),i=e.uint.decode(d);return{id:o,clock:c,timestamps:r,status:t,message:1&i?Ba.decode(d):null,event:2&i?za.decode(d):null}}},Oa=e.frame(Na),Ua=bd,Va={preencode(d,o){Oa.preencode(d,o.chat),e.fixed32.preencode(d,o.memberKey),Ua.preencode(d,o.role)},encode(d,o){Oa.encode(d,o.chat),e.fixed32.encode(d,o.memberKey),Ua.encode(d,o.role)},decode:d=>({chat:Oa.decode(d),memberKey:e.fixed32.decode(d),role:Ua.decode(d)})},Ja=Oa,Ha={preencode(e,d){Ja.preencode(e,d.chat)},encode(e,d){Ja.encode(e,d.chat)},decode:e=>({chat:Ja.decode(e)})},Wa=Da,Ga={preencode(d,o){Wa.preencode(d,o.ids),e.fixed32.preencode(d,o.memberKey)},encode(d,o){Wa.encode(d,o.ids),e.fixed32.encode(d,o.memberKey)},decode:d=>({ids:Wa.decode(d),memberKey:e.fixed32.decode(d)})},Qa=Da,Xa=bd,Ya={preencode(e,d){Qa.preencode(e,d.ids),Xa.preencode(e,d.role)},encode(e,d){Qa.encode(e,d.ids),Xa.encode(e,d.role)},decode:e=>({ids:Qa.decode(e),role:Xa.decode(e)})},Za=e.frame(dn),$a={preencode(e,d){n.preencode(e,d.id),Za.preencode(e,d.reactions)},encode(e,d){n.encode(e,d.id),Za.encode(e,d.reactions)},decode:e=>({id:n.decode(e),reactions:Za.decode(e)})},_a=Za,es={preencode(e,d){n.preencode(e,d.id),_a.preencode(e,d.digest)},encode(e,d){n.encode(e,d.id),_a.encode(e,d.digest)},decode:e=>({id:n.decode(e),digest:_a.decode(e)})},ds=F,os=F,ns=e.array(e.frame(ic)),cs={preencode(e,d){ns.preencode(e,d.invitations)},encode(e,d){ns.encode(e,d.invitations)},decode:e=>({invitations:ns.decode(e)})},rs=e.frame(ud),ts={preencode(d,o){e.fixed32.preencode(d,o.roomKey),rs.preencode(d,o.request)},encode(d,o){e.fixed32.encode(d,o.roomKey),rs.encode(d,o.request)},decode:d=>({roomKey:e.fixed32.decode(d),request:rs.decode(d)})},is=e.array(e.frame(ts)),as={preencode(e,d){is.preencode(e,d.requests)},encode(e,d){is.encode(e,d.requests)},decode:e=>({requests:is.decode(e)})},ss=ns,ps=e.array(e.frame(ud)),us={preencode(e,d){ss.preencode(e,d.pendingInvitations),ps.preencode(e,d.identityJoinRequests)},encode(e,d){ss.encode(e,d.pendingInvitations),ps.encode(e,d.identityJoinRequests)},decode:e=>({pendingInvitations:ss.decode(e),identityJoinRequests:ps.decode(e)})},ls=_t,fs={preencode(d,o){ls.preencode(d,o.header),e.string.preencode(d,o.invitation),d.end++},encode(d,o){const n=o.isIdentity?1:0;ls.encode(d,o.header),e.string.encode(d,o.invitation),e.uint.encode(d,n)},decode:d=>({header:ls.decode(d),invitation:e.string.decode(d),isIdentity:!!(1&e.uint.decode(d))})},ms=di,ys={preencode(e,d){ms.preencode(e,d.header)},encode(e,d){ms.encode(e,d.header)},decode:e=>({header:ms.decode(e)})},xs={preencode(e,d){e.end++},encode(d,o){const n=(o.canModerate?1:0)|(o.canAdmin?2:0)|(o.requiresConfirmation?4:0)|(o.isReadOnly?8:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{canModerate:!!(1&o),canAdmin:!!(2&o),requiresConfirmation:!!(4&o),isReadOnly:!!(8&o)}}},bs=_t,vs=e.frame(xs),gs={preencode(d,o){bs.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey),d.end++,o.permissions&&vs.preencode(d,o.permissions),o.expiration&&e.uint.preencode(d,o.expiration)},encode(d,o){const n=(o.permissions?1:0)|(o.expiration?2:0);bs.encode(d,o.header),e.fixed32.encode(d,o.roomKey),e.uint.encode(d,n),o.permissions&&vs.encode(d,o.permissions),o.expiration&&e.uint.encode(d,o.expiration)},decode(d){const o=bs.decode(d),n=e.fixed32.decode(d),c=e.uint.decode(d);return{header:o,roomKey:n,permissions:1&c?vs.decode(d):null,expiration:2&c?e.uint.decode(d):0}}},hs=di,ks={preencode(d,o){hs.preencode(d,o.header),e.string.preencode(d,o.invitation)},encode(d,o){hs.encode(d,o.header),e.string.encode(d,o.invitation)},decode:d=>({header:hs.decode(d),invitation:e.string.decode(d)})},Ks=_t,ws={preencode(e,d){Ks.preencode(e,d.header)},encode(e,d){Ks.encode(e,d.header)},decode:e=>({header:Ks.decode(e)})},Ps=di,Rs={preencode(d,o){Ps.preencode(d,o.header),e.string.preencode(d,o.invitation)},encode(d,o){Ps.encode(d,o.header),e.string.encode(d,o.invitation)},decode:d=>({header:Ps.decode(d),invitation:e.string.decode(d)})},Ts=_t,As=rs,Ms={preencode(d,o){Ts.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey),As.preencode(d,o.request)},encode(d,o){Ts.encode(d,o.header),e.fixed32.encode(d,o.roomKey),As.encode(d,o.request)},decode:d=>({header:Ts.decode(d),roomKey:e.fixed32.decode(d),request:As.decode(d)})},qs=di,Is={preencode(e,d){qs.preencode(e,d.header)},encode(e,d){qs.encode(e,d.header)},decode:e=>({header:qs.decode(e)})},Ss=_t,Cs=rs,Ds={preencode(d,o){Ss.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey),Cs.preencode(d,o.request)},encode(d,o){Ss.encode(d,o.header),e.fixed32.encode(d,o.roomKey),Cs.encode(d,o.request)},decode:d=>({header:Ss.decode(d),roomKey:e.fixed32.decode(d),request:Cs.decode(d)})},Ls=di,Fs={preencode(e,d){Ls.preencode(e,d.header)},encode(e,d){Ls.encode(e,d.header)},decode:e=>({header:Ls.decode(e)})},js=_t,Es={preencode(d,o){js.preencode(d,o.header),e.fixed32.preencode(d,o.id)},encode(d,o){js.encode(d,o.header),e.fixed32.encode(d,o.id)},decode:d=>({header:js.decode(d),id:e.fixed32.decode(d)})},Bs=di,zs={preencode(e,d){Bs.preencode(e,d.header)},encode(e,d){Bs.encode(e,d.header)},decode:e=>({header:Bs.decode(e)})},Ns=_t,Os={preencode(d,o){Ns.preencode(d,o.header),e.string.preencode(d,o.displayName),d.end++,o.avatar&&e.buffer.preencode(d,o.avatar)},encode(d,o){const n=o.avatar?1:0;Ns.encode(d,o.header),e.string.encode(d,o.displayName),e.uint.encode(d,n),o.avatar&&e.buffer.encode(d,o.avatar)},decode:d=>({header:Ns.decode(d),displayName:e.string.decode(d),avatar:1&e.uint.decode(d)?e.buffer.decode(d):null})},Us=F,Vs=F,Js={preencode(e,d){e.end++},encode(d,o){const n=(o.isConfirmed?1:0)|(o.isLoggedOut?2:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isConfirmed:!!(1&o),isLoggedOut:!!(2&o)}}},Hs=e.frame(Js),Ws=$,Gs={preencode(d,o){e.fixed32.preencode(d,o.memberKey),Hs.preencode(d,o.status),Ws.preencode(d,o.deviceKeys)},encode(d,o){e.fixed32.encode(d,o.memberKey),Hs.encode(d,o.status),Ws.encode(d,o.deviceKeys)},decode:d=>({memberKey:e.fixed32.decode(d),status:Hs.decode(d),deviceKeys:Ws.decode(d)})},Qs={preencode(d,o){e.fixed32.preencode(d,o.memberKey)},encode(d,o){e.fixed32.encode(d,o.memberKey)},decode:d=>({memberKey:e.fixed32.decode(d)})},Xs={preencode(d,o){e.fixed32.preencode(d,o.deviceKey)},encode(d,o){e.fixed32.encode(d,o.deviceKey)},decode:d=>({deviceKey:e.fixed32.decode(d)})},Ys=_t,Zs={preencode(d,o){Ys.preencode(d,o.header),e.string.preencode(d,o.password)},encode(d,o){Ys.encode(d,o.header),e.string.encode(d,o.password)},decode:d=>({header:Ys.decode(d),password:e.string.decode(d)})},$s=di,_s={preencode(d,o){$s.preencode(d,o.header),e.string.preencode(d,o.inspector)},encode(d,o){$s.encode(d,o.header),e.string.encode(d,o.inspector)},decode:d=>({header:$s.decode(d),inspector:e.string.decode(d)})},ep=di,dp={preencode(e,d){ep.preencode(e,d.header)},encode(e,d){ep.encode(e,d.header)},decode:e=>({header:ep.decode(e)})},op=di,np={preencode(e,d){op.preencode(e,d.header)},encode(e,d){op.encode(e,d.header)},decode:e=>({header:op.decode(e)})},cp={Flag:1},rp={preencode(e,d){e.end++},encode(d,o){if(o>1)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},tp={preencode(d,o){e.fixed32.preencode(d,o.key),e.fixed32.preencode(d,o.sender),e.uint.preencode(d,o.clock),rp.preencode(d,o.label)},encode(d,o){e.fixed32.encode(d,o.key),e.fixed32.encode(d,o.sender),e.uint.encode(d,o.clock),rp.encode(d,o.label)},decode:d=>({key:e.fixed32.decode(d),sender:e.fixed32.decode(d),clock:e.uint.decode(d),label:rp.decode(d)})},ip=de,ap={preencode(d,o){ip.preencode(d,o.header),e.fixed32.preencode(d,o.key),rp.preencode(d,o.label)},encode(d,o){ip.encode(d,o.header),e.fixed32.encode(d,o.key),rp.encode(d,o.label)},decode:d=>({header:ip.decode(d),key:e.fixed32.decode(d),label:rp.decode(d)})},sp={preencode(d,o){rp.preencode(d,o.label),e.uint.preencode(d,o.count)},encode(d,o){rp.encode(d,o.label),e.uint.encode(d,o.count)},decode:d=>({label:rp.decode(d),count:e.uint.decode(d)})},pp=e.array(e.frame(sp)),up={preencode(d,o){e.fixed32.preencode(d,o.key),e.uint.preencode(d,o.total),pp.preencode(d,o.labels),e.uint.preencode(d,o.editedAt),e.uint.preencode(d,o.flagsClock)},encode(d,o){e.fixed32.encode(d,o.key),e.uint.encode(d,o.total),pp.encode(d,o.labels),e.uint.encode(d,o.editedAt),e.uint.encode(d,o.flagsClock)},decode:d=>({key:e.fixed32.decode(d),total:e.uint.decode(d),labels:pp.decode(d),editedAt:e.uint.decode(d),flagsClock:e.uint.decode(d)})},lp=de,fp={preencode(d,o){lp.preencode(d,o.header),e.fixed32.preencode(d,o.deviceKey),e.fixed32.preencode(d,o.fromDeviceKey)},encode(d,o){lp.encode(d,o.header),e.fixed32.encode(d,o.deviceKey),e.fixed32.encode(d,o.fromDeviceKey)},decode:d=>({header:lp.decode(d),deviceKey:e.fixed32.decode(d),fromDeviceKey:e.fixed32.decode(d)})},mp={preencode(d,o){e.float64.preencode(d,o.latitude),e.float64.preencode(d,o.longitude)},encode(d,o){e.float64.encode(d,o.latitude),e.float64.encode(d,o.longitude)},decode:d=>({latitude:e.float64.decode(d),longitude:e.float64.decode(d)})},yp=de,xp=$,bp={preencode(o,n){yp.preencode(o,n.header),e.fixed32.preencode(o,n.callKey),e.buffer.preencode(o,n.encryptionKey),o.end++,d>=4&&n.streams&&xp.preencode(o,n.streams),d>=4&&n.discoveryKey&&e.fixed32.preencode(o,n.discoveryKey),d>=4&&n.version&&e.uint.preencode(o,n.version)},encode(o,n){const c=(d>=4&&n.streams?1:0)|(d>=4&&n.discoveryKey?2:0)|(d>=4&&n.version?4:0);yp.encode(o,n.header),e.fixed32.encode(o,n.callKey),e.buffer.encode(o,n.encryptionKey),e.uint.encode(o,c),d>=4&&n.streams&&xp.encode(o,n.streams),d>=4&&n.discoveryKey&&e.fixed32.encode(o,n.discoveryKey),d>=4&&n.version&&e.uint.encode(o,n.version)},decode(o){const n=yp.decode(o),c=e.fixed32.decode(o),r=e.buffer.decode(o),t=e.uint.decode(o);return{header:n,callKey:c,encryptionKey:r,streams:d>=4&&1&t?xp.decode(o):null,discoveryKey:d>=4&&2&t?e.fixed32.decode(o):null,version:d>=4&&4&t?e.uint.decode(o):0}}},vp=de,gp=$,hp={preencode(o,n){vp.preencode(o,n.header),e.fixed32.preencode(o,n.callKey),o.end++,d>=4&&n.streams&&gp.preencode(o,n.streams)},encode(o,n){const c=d>=4&&n.streams?1:0;vp.encode(o,n.header),e.fixed32.encode(o,n.callKey),e.uint.encode(o,c),d>=4&&n.streams&&gp.encode(o,n.streams)},decode(o){const n=vp.decode(o),c=e.fixed32.decode(o),r=e.uint.decode(o);return{header:n,callKey:c,streams:d>=4&&1&r?gp.decode(o):null}}},kp=de,Kp={preencode(d,o){kp.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){kp.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:kp.decode(d),callKey:e.fixed32.decode(d)})},wp=de,Pp={preencode(d,o){wp.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){wp.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:wp.decode(d),callKey:e.fixed32.decode(d)})},Rp=de,Tp={preencode(d,o){Rp.preencode(d,o.header),e.fixed32.preencode(d,o.callKey),e.fixed32.preencode(d,o.streamKey)},encode(d,o){Rp.encode(d,o.header),e.fixed32.encode(d,o.callKey),e.fixed32.encode(d,o.streamKey)},decode:d=>({header:Rp.decode(d),callKey:e.fixed32.decode(d),streamKey:e.fixed32.decode(d)})},Ap=de,Mp={preencode(d,o){Ap.preencode(d,o.header),e.fixed32.preencode(d,o.callKey),e.fixed32.preencode(d,o.streamKey)},encode(d,o){Ap.encode(d,o.header),e.fixed32.encode(d,o.callKey),e.fixed32.encode(d,o.streamKey)},decode:d=>({header:Ap.decode(d),callKey:e.fixed32.decode(d),streamKey:e.fixed32.decode(d)})},qp={preencode(o,n){e.fixed32.preencode(o,n.callKey),e.buffer.preencode(o,n.encryptionKey),e.uint.preencode(o,n.createdAt),o.end++,d>=4&&n.endedAt&&e.uint.preencode(o,n.endedAt),d>=4&&n.discoveryKey&&e.fixed32.preencode(o,n.discoveryKey),d>=4&&n.version&&e.uint.preencode(o,n.version)},encode(o,n){const c=(d>=4&&n.endedAt?1:0)|(d>=4&&n.discoveryKey?2:0)|(d>=4&&n.version?4:0);e.fixed32.encode(o,n.callKey),e.buffer.encode(o,n.encryptionKey),e.uint.encode(o,n.createdAt),e.uint.encode(o,c),d>=4&&n.endedAt&&e.uint.encode(o,n.endedAt),d>=4&&n.discoveryKey&&e.fixed32.encode(o,n.discoveryKey),d>=4&&n.version&&e.uint.encode(o,n.version)},decode(o){const n=e.fixed32.decode(o),c=e.buffer.decode(o),r=e.uint.decode(o),t=e.uint.decode(o);return{callKey:n,encryptionKey:c,createdAt:r,endedAt:d>=4&&1&t?e.uint.decode(o):0,discoveryKey:d>=4&&2&t?e.fixed32.decode(o):null,version:d>=4&&4&t?e.uint.decode(o):0}}},Ip={preencode(d,o){e.fixed32.preencode(d,o.callKey),e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.createdAt)},encode(d,o){e.fixed32.encode(d,o.callKey),e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.createdAt)},decode:d=>({callKey:e.fixed32.decode(d),memberKey:e.fixed32.decode(d),createdAt:e.uint.decode(d)})},Sp={preencode(o,n){e.fixed32.preencode(o,n.callKey),e.fixed32.preencode(o,n.deviceKey),e.fixed32.preencode(o,n.memberKey),e.uint.preencode(o,n.createdAt),o.end++,d>=4&&n.swarmKey&&e.fixed32.preencode(o,n.swarmKey),d>=8&&n.lastHeartbeatAt&&e.uint.preencode(o,n.lastHeartbeatAt)},encode(o,n){const c=(d>=4&&n.swarmKey?1:0)|(d>=8&&n.lastHeartbeatAt?2:0)|(d>=9&&n.isRecording?4:0);e.fixed32.encode(o,n.callKey),e.fixed32.encode(o,n.deviceKey),e.fixed32.encode(o,n.memberKey),e.uint.encode(o,n.createdAt),e.uint.encode(o,c),d>=4&&n.swarmKey&&e.fixed32.encode(o,n.swarmKey),d>=8&&n.lastHeartbeatAt&&e.uint.encode(o,n.lastHeartbeatAt)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),r=e.fixed32.decode(o),t=e.uint.decode(o),i=e.uint.decode(o);return{callKey:n,deviceKey:c,memberKey:r,createdAt:t,swarmKey:d>=4&&1&i?e.fixed32.decode(o):null,lastHeartbeatAt:d>=8&&2&i?e.uint.decode(o):0,isRecording:d>=9&&!!(4&i)}}},Cp={preencode(d,o){e.fixed32.preencode(d,o.callKey),e.fixed32.preencode(d,o.deviceKey),e.buffer.preencode(d,o.streamKey),e.uint.preencode(d,o.createdAt)},encode(d,o){e.fixed32.encode(d,o.callKey),e.fixed32.encode(d,o.deviceKey),e.buffer.encode(d,o.streamKey),e.uint.encode(d,o.createdAt)},decode:d=>({callKey:e.fixed32.decode(d),deviceKey:e.fixed32.decode(d),streamKey:e.buffer.decode(d),createdAt:e.uint.decode(d)})},Dp={preencode(o,n){e.fixed32.preencode(o,n.callKey),o.end++,d>=4&&n.selfDeviceKey&&e.fixed32.preencode(o,n.selfDeviceKey)},encode(o,n){const c=d>=4&&n.selfDeviceKey?1:0;e.fixed32.encode(o,n.callKey),e.uint.encode(o,c),d>=4&&n.selfDeviceKey&&e.fixed32.encode(o,n.selfDeviceKey)},decode(o){const n=e.fixed32.decode(o),c=e.uint.decode(o);return{callKey:n,selfDeviceKey:d>=4&&1&c?e.fixed32.decode(o):null}}},Lp={preencode(d,o){e.uint.preencode(d,o.lastCleared)},encode(d,o){e.uint.encode(d,o.lastCleared)},decode:d=>({lastCleared:e.uint.decode(d)})},Fp={Nightly:"Nightly",Internal:"Internal",Production:"Production"},jp={preencode(e,d){e.end++},encode(d,o){switch(o){case"Nightly":e.uint.encode(d,1);break;case"Internal":e.uint.encode(d,2);break;case"Production":e.uint.encode(d,3);break;default:throw new Error("Unknown enum")}},decode(d){switch(e.uint.decode(d)){case 1:return"Nightly";case 2:return"Internal";case 3:return"Production";default:return null}}},Ep=de,Bp={preencode(e,d){Ep.preencode(e,d.header)},encode(e,d){Ep.encode(e,d.header)},decode:e=>({header:Ep.decode(e)})},zp=de,Np={preencode(e,d){zp.preencode(e,d.header)},encode(e,d){zp.encode(e,d.header)},decode:e=>({header:zp.decode(e)})},Op={preencode(o,n){jp.preencode(o,n.buildType),o.end++,d>=6&&n.latestOfflineAbi&&e.uint.preencode(o,n.latestOfflineAbi)},encode(o,n){const c=d>=6&&n.latestOfflineAbi?1:0;jp.encode(o,n.buildType),e.uint.encode(o,c),d>=6&&n.latestOfflineAbi&&e.uint.encode(o,n.latestOfflineAbi)},decode(o){const n=jp.decode(o),c=o.start<o.end?e.uint.decode(o):0;return{buildType:n,latestOfflineAbi:d>=6&&1&c?e.uint.decode(o):0}}},Up=de,Vp={preencode(d,o){Up.preencode(d,o.header),e.fixed32.preencode(d,o.deviceKey),e.buffer.preencode(d,o.deviceProof),e.buffer.preencode(d,o.writerProof)},encode(d,o){Up.encode(d,o.header),e.fixed32.encode(d,o.deviceKey),e.buffer.encode(d,o.deviceProof),e.buffer.encode(d,o.writerProof)},decode:d=>({header:Up.decode(d),deviceKey:e.fixed32.decode(d),deviceProof:e.buffer.decode(d),writerProof:e.buffer.decode(d)})},Jp={preencode(o,n){o.end++,d>=7&&n.otaResyncPrivateProfileBump&&e.uint.preencode(o,n.otaResyncPrivateProfileBump)},encode(o,n){const c=d>=7&&n.otaResyncPrivateProfileBump?1:0;e.uint.encode(o,c),d>=7&&n.otaResyncPrivateProfileBump&&e.uint.encode(o,n.otaResyncPrivateProfileBump)},decode(o){const n=e.uint.decode(o);return{otaResyncPrivateProfileBump:d>=7&&1&n?e.uint.decode(o):0}}},Hp={preencode(d,o){e.fixed32.preencode(d,o.deviceKey),e.buffer.preencode(d,o.proof),e.uint.preencode(d,o.createdAt)},encode(d,o){e.fixed32.encode(d,o.deviceKey),e.buffer.encode(d,o.proof),e.uint.encode(d,o.createdAt)},decode:d=>({deviceKey:e.fixed32.decode(d),proof:e.buffer.decode(d),createdAt:e.uint.decode(d)})},Wp=de,Gp={preencode(d,o){Wp.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){Wp.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:Wp.decode(d),callKey:e.fixed32.decode(d)})},Qp=de,Xp={preencode(d,o){Qp.preencode(d,o.header),e.fixed32.preencode(d,o.callKey),e.fixed32.preencode(d,o.deviceKey)},encode(d,o){Qp.encode(d,o.header),e.fixed32.encode(d,o.callKey),e.fixed32.encode(d,o.deviceKey)},decode:d=>({header:Qp.decode(d),callKey:e.fixed32.decode(d),deviceKey:e.fixed32.decode(d)})},Yp=e.frame(Vn),Zp=e.array(e.frame(jn)),$p={preencode(e,d){Yp.preencode(e,d.digest),Zp.preencode(e,d.mine)},encode(e,d){Yp.encode(e,d.digest),Zp.encode(e,d.mine)},decode:e=>({digest:Yp.decode(e),mine:Zp.decode(e)})},_p=de,eu={preencode(d,o){_p.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){_p.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:_p.decode(d),callKey:e.fixed32.decode(d)})},du=de,ou={preencode(d,o){du.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){du.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:du.decode(d),callKey:e.fixed32.decode(d)})},nu={preencode(o,n){o.end++,d>=9&&n.profileSnoozeTime&&e.uint.preencode(o,n.profileSnoozeTime)},encode(o,n){const c=(d>=9&&n.disableReadReceipts?1:0)|(d>=9&&n.stripAttachmentMetadata?2:0)|(d>=9&&n.profileSnoozeTime?4:0);e.uint.encode(o,c),d>=9&&n.profileSnoozeTime&&e.uint.encode(o,n.profileSnoozeTime)},decode(o){const n=e.uint.decode(o);return{disableReadReceipts:d>=9&&!!(1&n),stripAttachmentMetadata:d>=9&&!!(2&n),profileSnoozeTime:d>=9&&4&n?e.uint.decode(o):0}}},cu={preencode(o,n){o.end++,d>=9&&n.maxPeers&&e.uint.preencode(o,n.maxPeers)},encode(o,n){const c=d>=9&&n.maxPeers?1:0;e.uint.encode(o,c),d>=9&&n.maxPeers&&e.uint.encode(o,n.maxPeers)},decode(o){const n=e.uint.decode(o);return{maxPeers:d>=9&&1&n?e.uint.decode(o):0}}},ru=de,tu={preencode(e,d){ru.preencode(e,d.header),n.preencode(e,d.oplog)},encode(e,d){ru.encode(e,d.header),n.encode(e,d.oplog)},decode:e=>({header:ru.decode(e),oplog:n.decode(e)})},iu=de,au={preencode(e,d){iu.preencode(e,d.header)},encode(e,d){iu.encode(e,d.header)},decode:e=>({header:iu.decode(e)})},su={preencode(d,o){e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.timestamp)},encode(d,o){e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.timestamp)},decode:d=>({memberKey:e.fixed32.decode(d),timestamp:e.uint.decode(d)})},pu=de,uu={preencode(o,n){pu.preencode(o,n.header),e.fixed32.preencode(o,n.memberKey),o.end++,d>=10&&n.alias&&e.string.preencode(o,n.alias)},encode(o,n){const c=d>=10&&n.alias?1:0;pu.encode(o,n.header),e.fixed32.encode(o,n.memberKey),e.uint.encode(o,c),d>=10&&n.alias&&e.string.encode(o,n.alias)},decode(o){const n=pu.decode(o),c=e.fixed32.decode(o),r=e.uint.decode(o);return{header:n,memberKey:c,alias:d>=10&&1&r?e.string.decode(o):null}}},lu=e.frame(w),fu=lu,mu=e.frame(le),yu=lu,xu=mu,bu=mu,vu=e.frame(wd),gu=e.frame(mp),hu=gu,ku=lu,Ku=lu,wu=e.frame(qc),Pu=wu,Ru=wu,Tu=e.frame(Dp),Au=e.frame($p),Mu=e.frame(nu),qu=mu;function Iu(e){switch(e){case"@keet/head":return o;case"@keet/oplog-id":return n;case"@keet/encryption-keypair":return c;case"@keet/signing-keypair":return r;case"@keet/room-keys":return t;case"@keet/operation-header":return i;case"@keet/blob-pointer":return a;case"@keet/file-dimensions":return s;case"@keet/file-metadata":return u;case"@keet/external-drive-pointer":return l;case"@keet/external-blob-pointer":return f;case"@keet/file-pointer":return x;case"@keet/file":return g;case"@keet/image-file":return w;case"@keet/file-status":return P;case"@keet/file-record":return A;case"@keet/device-status":return M;case"@keet/member-status":return q;case"@keet/member-moderation-status":return I;case"@keet/abi":return S;case"@keet/device-stats":return C;case"@keet/member-stats":return D;case"@keet/chat-stats":return L;case"@keet/file-stats":return F;case"@keet/stats":return N;case"@keet/room-type":return U;case"@keet/system-settings":return V;case"@keet/system-digest":return W;case"@keet/room-seed":return G;case"@keet/room-capabilities":return Q;case"@keet/room-supported-language":return Y;case"@keet/room-config":return _;case"@keet/blind-peer":return ee;case"@keet/add-blind-peer-operation":return ne;case"@keet/remove-blind-peer-operation":return re;case"@keet/identity-attestation":return te;case"@keet/device-invitation":return ie;case"@keet/device":return pe;case"@keet/member-profile":return ue;case"@keet/device-profile":return le;case"@keet/member-update":return me;case"@keet/device-update":return ye;case"@keet/member-contact-info":return be;case"@keet/signed-pairing-data":return ve;case"@keet/device-request-identity":return ge;case"@keet/device-response-identity":return he;case"@keet/device-identity":return ke;case"@keet/device-request-with-invitation":return Re;case"@keet/device-request-with-invitation-and-proof":return Ae;case"@keet/device-request-with-member-proof":return Ie;case"@keet/device-request":return De;case"@keet/device-response":return je;case"@keet/invitation-metadata":return Ee;case"@keet/invitation":return Ne;case"@keet/add-invitation-operation":return Ve;case"@keet/remove-invitation-operation":return He;case"@keet/sendable-room-invitation":return We;case"@keet/readonly-room-invitation":return Ge;case"@keet/sendable-identity-invitation":return Qe;case"@keet/sendable-contact-invitation":return Xe;case"@keet/sendable-invitation":return dd;case"@keet/add-device-operation":return nd;case"@keet/update-device-operation":return rd;case"@keet/remove-device-operation":return id;case"@keet/start-indexing-operation":return ad;case"@keet/stop-indexing-operation":return sd;case"@keet/join-request":return ud;case"@keet/accept-join-request-operation":return md;case"@keet/reject-join-request-operation":return xd;case"@keet/member":return gd;case"@keet/full-member":return Kd;case"@keet/member-proofs":return wd;case"@keet/update-member-operation":return Td;case"@keet/change-member-status-operation":return qd;case"@keet/change-member-role-operation":return Sd;case"@keet/remove-member-operation":return Dd;case"@keet/member-activity":return Ld;case"@keet/member-joined-event":return Fd;case"@keet/member-left-event":return jd;case"@keet/member-removed-event":return Ed;case"@keet/title-changed-chat-event":return Bd;case"@keet/chat-event":return Vd;case"@keet/sendable-event":return Jd;case"@keet/display-range":return Hd;case"@keet/display-content-range":return Gd;case"@keet/mention-display-item":return Xd;case"@keet/translation-display-item":return Zd;case"@keet/link-preview":return eo;case"@keet/display-link-item":return co;case"@keet/display":return yo;case"@keet/oplog-message":return go;case"@keet/index-message":return Ko;case"@keet/full-index-message":return Ro;case"@keet/message-status":return To;case"@keet/message-index-id":return Ao;case"@keet/thread":return qo;case"@keet/chat-message-record":return Do;case"@keet/full-chat-message-record":return Eo;case"@keet/add-chat-message-operation":return No;case"@keet/remove-chat-message-operation":return Uo;case"@keet/update-chat-message-operation":return Ho;case"@keet/pin-chat-message-operation":return Go;case"@keet/display-type":return Xo;case"@keet/add-file-preview-operation":return Zo;case"@keet/reaction":return $o;case"@keet/reactions-summary":return _o;case"@keet/reactions-digest":return dn;case"@keet/add-reaction-operation":return nn;case"@keet/remove-reaction-operation":return rn;case"@keet/update-room-config-operation":return sn;case"@keet/group-member":return pn;case"@keet/user-registry-info":return un;case"@keet/room-identity":return fn;case"@keet/genesis-operation":return kn;case"@keet/upgrade-operation":return wn;case"@keet/migrate-abi-operation":return Rn;case"@keet/system-settings-keys":return An;case"@keet/update-system-settings-operation":return In;case"@keet/test-increment-operation":return Cn;case"@keet/test-collection-record-1":return Dn;case"@keet/label-type":return Fn;case"@keet/chat-label":return jn;case"@keet/add-chat-label-operation":return Bn;case"@keet/remove-chat-label-operation":return Nn;case"@keet/chat-label-summary":return On;case"@keet/chat-label-digest":return Vn;case"@keet/update-read-length-operation":return Hn;case"@keet/read-length":return Wn;case"@keet/tmp-removed-member":return Gn;case"@keet-private-id/contact":return Xn;case"@keet-private-id/v3-room-migration-info":return Yn;case"@keet-private-id/run-v3-migration-operation":return _n;case"@keet-private-id/update-identity-operation":return dc;case"@keet-private-id/counters":return oc;case"@keet-private-id/stats":return nc;case"@keet-private-id/add-entropy-operation":return cc;case"@keet-private-id/pending-invitation-identity":return rc;case"@keet-private-id/pending-invitation":return ic;case"@keet-private-id/resolve-pending-invitation-operation":return sc;case"@keet-private-id/add-pending-invitation-operation":return lc;case"@keet-private-id/remove-pending-invitation-operation":return mc;case"@keet-private-id/identity-swap":return yc;case"@keet-private-id/identity-swap-v2":return xc;case"@keet-private-id/room-status":return bc;case"@keet-private-id/room":return kc;case"@keet-private-id/add-room-operation":return wc;case"@keet-private-id/remove-room-operation":return Rc;case"@keet-private-id/update-room-status-operation":return Mc;case"@keet-private-id/contact-status":return qc;case"@keet-private-id/contact-record":return Sc;case"@keet-private-id/add-contact-operation":return Lc;case"@keet-private-id/update-contact-status-operation":return jc;case"@keet-private-id/remove-contact-operation":return Bc;case"@keet-private-id/activate-contact-room-operation":return Nc;case"@keet-private-id/contact-request-status":return Oc;case"@keet-private-id/contact-request-body":return Jc;case"@keet-private-id/contact-request":return Wc;case"@keet-private-id/contact-request-record":return Zc;case"@keet-private-id/add-contact-request-operation":return _c;case"@keet-private-id/update-contact-request-status-operation":return or;case"@keet-private-id/profile-discovery-record-v1":return nr;case"@keet-private-id/profile-discovery-record":return cr;case"@keet-private-id/unreads":return rr;case"@keet-private-id/add-unreads-key-operation":return ir;case"@keet-private-id/remove-unreads-key-operation":return sr;case"@keet-private-id/settings":return pr;case"@keet-private-id/user-settings-key":return lr;case"@keet-private-id/update-settings-operation":return yr;case"@local/background-sync-room":return xr;case"@local/stats":return br;case"@local/migration-status":return vr;case"@local/v3-private-profile-migration":return hr;case"@local/v3-room-migration":return wr;case"@local/room-migration-stats":return Pr;case"@local/room-migration":return Tr;case"@local/identity-status":return Ar;case"@local/identity-swap":return Mr;case"@local/identity-record":return Cr;case"@local/tasks":return Lr;case"@local/room-keys":return Fr;case"@local/join-room-invitation-task":return Er;case"@local/join-room-response-task":return Br;case"@local/fast-forward-to":return zr;case"@local/add-room-fields":return Nr;case"@local/join-room-keys-task":return Ur;case"@local/create-room-task":return Jr;case"@local/leave-room-task":return Hr;case"@local/clear-room-task":return Wr;case"@local/restore-identity-task":return Gr;case"@local/send-contact-request-task":return Xr;case"@local/migrate-v2-room-task":return Yr;case"@local/task":return tt;case"@local/shared-invitation":return at;case"@local/room-status":return st;case"@local/room-timestamps":return pt;case"@local/room":return Rt;case"@local/room-preferences":return At;case"@local/room-metadata":return Mt;case"@local/writer":return qt;case"@local/writer-append":return It;case"@local/member":return Ct;case"@local/device":return Lt;case"@local/file":return jt;case"@local/debug-flag":return Et;case"@local/debug":return zt;case"@local/hyperdht-record":return Ot;case"@local/unread":return Ut;case"@local/error-record-details":return Vt;case"@local/error-record":return Ht;case"@local/keet-state":return Gt;case"@local/file-stats":return Qt;case"@api/request-header":return Xt;case"@api/response-header":return Yt;case"@api/subscription-request-header":return Zt;case"@api/subscription-response-header":return $t;case"@api/boot-request":return ei;case"@api/boot-response":return oi;case"@api/self-destruct-request":return ci;case"@api/core/have":return ri;case"@api/core/create-room-request":return si;case"@api/core/create-room-response":return ui;case"@api/core/activate-room-request":return fi;case"@api/core/deactivate-room-request":return yi;case"@api/core/leave-room-request":return bi;case"@api/core/leave-room-response":return gi;case"@api/core/update-room-config-request":return Ki;case"@api/core/update-room-settings-request":return Ri;case"@api/core/update-room-status-request":return Mi;case"@api/core/add-chat-message-request":return Si;case"@api/core/add-chat-message-response":return Di;case"@api/core/edit-chat-message-request":return ji;case"@api/core/edit-chat-message-response":return Bi;case"@api/core/remove-chat-message-request":return Ni;case"@api/core/remove-chat-message-response":return Ui;case"@api/core/add-chat-reaction-request":return Ji;case"@api/core/add-chat-reaction-response":return Wi;case"@api/core/remove-chat-reaction-request":return Qi;case"@api/core/remove-chat-reaction-response":return Yi;case"@api/core/want-lobby":return Zi;case"@api/core/unwant-lobby":return $i;case"@api/core/want-room-info":return ea;case"@api/core/want-chat":return da;case"@api/core/unwant-chat":return oa;case"@api/core/want-members":return na;case"@api/core/unwant-members":return ca;case"@api/core/lobby-record":return ra;case"@api/core/lobby-record-change-type":return ia;case"@api/core/lobby":return sa;case"@api/core/lobby-room":return pa;case"@api/core/room-role":return fa;case"@api/core/room-info":return ba;case"@api/core/room-info-status":return ga;case"@api/core/room-info-digest":return ka;case"@api/core/room-info-config":return wa;case"@api/core/room-info-role":return Ra;case"@api/core/room-info-last-message":return Ta;case"@api/core/member":return Ma;case"@api/core/device":return Ia;case"@api/core/member-list-add":return Sa;case"@api/core/member-list-remove":return Ca;case"@api/core/chat-reset":return La;case"@api/core/message-timestamps":return Fa;case"@api/core/message":return Na;case"@api/core/message-info":return Va;case"@api/core/message-info-chat":return Ha;case"@api/core/message-info-member":return Ga;case"@api/core/message-info-role":return Ya;case"@api/core/message-info-reactions":return $a;case"@api/core/reactions":return es;case"@api/core/want-pairing":return ds;case"@api/core/unwant-pairing":return os;case"@api/core/pending-invitations":return cs;case"@api/core/join-request":return ts;case"@api/core/join-requests":return as;case"@api/core/pairing":return us;case"@api/core/start-pairing-request":return fs;case"@api/core/start-pairing-response":return ys;case"@api/core/invitation-permissions":return xs;case"@api/core/create-room-invitation-request":return gs;case"@api/core/create-room-invitation-response":return ks;case"@api/core/create-identity-invitation-request":return ws;case"@api/core/create-identity-invitation-response":return Rs;case"@api/core/accept-join-request-request":return Ms;case"@api/core/accept-join-request-response":return Is;case"@api/core/reject-join-request-request":return Ds;case"@api/core/reject-join-request-response":return Fs;case"@api/core/stop-pairing-request":return Es;case"@api/core/stop-pairing-response":return zs;case"@api/core/update-profile-request":return Os;case"@api/core/want-identity":return Us;case"@api/core/unwant-identity":return Vs;case"@api/core/identity-status":return Js;case"@api/core/identity":return Gs;case"@api/core/identity-member":return Qs;case"@api/core/identity-device":return Xs;case"@api/debug/enable-request":return Zs;case"@api/debug/enable-response":return _s;case"@api/debug/disable-request":return dp;case"@api/debug/disable-response":return np;case"@keet/member-label-type":return rp;case"@keet/member-label":return tp;case"@keet/add-member-label-operation":return ap;case"@keet/member-label-summary":return sp;case"@keet/member-label-digest":return up;case"@keet/move-indexer-operation":return fp;case"@keet/location-shared-event":return mp;case"@keet/start-call":return bp;case"@keet/join-call":return hp;case"@keet/leave-call":return Kp;case"@keet/end-call":return Pp;case"@keet/add-call-stream":return Tp;case"@keet/remove-call-stream":return Mp;case"@keet/call-record":return qp;case"@keet/call-member-record":return Ip;case"@keet/call-device-record":return Sp;case"@keet/call-stream-record":return Cp;case"@local/active-call":return Dp;case"@local/file-gc-info":return Lp;case"@keet/build-type":return jp;case"@keet/test-crash-operation":return Bp;case"@keet/test-dispatch-error-operation":return Np;case"@local/environment-record":return Op;case"@keet-private-id/shorten-device-attestation-operation":return Vp;case"@local/ota-actions":return Jp;case"@local/device-attestation":return Hp;case"@keet/call-device-heartbeat":return Gp;case"@keet/remove-call-device":return Xp;case"@local/chat-labels":return $p;case"@keet/start-call-recording":return eu;case"@keet/stop-call-recording":return ou;case"@local/settings":return nu;case"@local/hyperswarm-record":return cu;case"@keet/dismiss-chat-reports-operation":return tu;case"@keet/update-typing-indicator-operation":return au;case"@keet/typing-indicator":return su;case"@keet-private-id/update-contact-alias-operation":return uu;default:throw new Error("Encoder not found "+e)}}function Su(e,o=10){const n=Iu(e);return{preencode(e,c){d=o,n.preencode(e,c)},encode(e,c){d=o,n.encode(e,c)},decode:e=>(d=o,n.decode(e))}}const Cu=Su;module.exports={resolveStruct:Cu,getStruct:Su,getEnum:function(e){switch(e){case"@keet/room-type":return O;case"@keet/room-supported-language":return X;case"@keet/display-type":return Qo;case"@keet/system-settings-keys":return Tn;case"@keet/label-type":return Ln;case"@keet-private-id/user-settings-key":return ur;case"@local/tasks":return Dr;case"@local/keet-state":return Wt;case"@api/core/lobby-record-change-type":return ta;case"@keet/member-label-type":return cp;case"@keet/build-type":return Fp;default:throw new Error("Enum not found "+e)}},getEncoding:Iu,encode:function(o,n,c=10){return d=c,e.encode(Iu(o),n)},decode:function(o,n,c=10){return d=c,e.decode(Iu(o),n)},setVersion:function(e){d=e},version:d};
1const{c:e}=require("hyperschema/runtime");let d=15;const o={preencode(d,o){e.fixed32.preencode(d,o.key),e.uint.preencode(d,o.length)},encode(d,o){e.fixed32.encode(d,o.key),e.uint.encode(d,o.length)},decode:d=>({key:e.fixed32.decode(d),length:e.uint.decode(d)})},n={preencode(d,o){e.fixed32.preencode(d,o.key),e.uint.preencode(d,o.seq)},encode(d,o){e.fixed32.encode(d,o.key),e.uint.encode(d,o.seq)},decode:d=>({key:e.fixed32.decode(d),seq:e.uint.decode(d)})},c={preencode(d,o){e.fixed32.preencode(d,o.publicKey),e.fixed32.preencode(d,o.secretKey)},encode(d,o){e.fixed32.encode(d,o.publicKey),e.fixed32.encode(d,o.secretKey)},decode:d=>({publicKey:e.fixed32.decode(d),secretKey:e.fixed32.decode(d)})},r={preencode(d,o){e.fixed32.preencode(d,o.publicKey),e.fixed64.preencode(d,o.secretKey)},encode(d,o){e.fixed32.encode(d,o.publicKey),e.fixed64.encode(d,o.secretKey)},decode:d=>({publicKey:e.fixed32.decode(d),secretKey:e.fixed64.decode(d)})},t={preencode(n,c){e.fixed32.preencode(n,c.key),n.end++,c.encryptionKey&&e.buffer.preencode(n,c.encryptionKey),c.fastForwardTo&&e.fixed32.preencode(n,c.fastForwardTo),d>=13&&c.bootFrom&&o.preencode(n,c.bootFrom)},encode(n,c){const r=(c.encryptionKey?1:0)|(c.fastForwardTo?2:0)|(d>=13&&c.bootFrom?4:0);e.fixed32.encode(n,c.key),e.uint.encode(n,r),c.encryptionKey&&e.buffer.encode(n,c.encryptionKey),c.fastForwardTo&&e.fixed32.encode(n,c.fastForwardTo),d>=13&&c.bootFrom&&o.encode(n,c.bootFrom)},decode(n){const c=e.fixed32.decode(n),r=e.uint.decode(n);return{key:c,encryptionKey:1&r?e.buffer.decode(n):null,fastForwardTo:2&r?e.fixed32.decode(n):null,bootFrom:d>=13&&4&r?o.decode(n):null}}},i={preencode(d,o){e.uint.preencode(d,o.timestamp)},encode(d,o){e.uint.encode(d,o.timestamp)},decode:d=>({timestamp:e.uint.decode(d)})},a={preencode(d,o){e.uint.preencode(d,o.blockOffset),e.uint.preencode(d,o.blockLength),e.uint.preencode(d,o.byteOffset),e.uint.preencode(d,o.byteLength)},encode(d,o){e.uint.encode(d,o.blockOffset),e.uint.encode(d,o.blockLength),e.uint.encode(d,o.byteOffset),e.uint.encode(d,o.byteLength)},decode:d=>({blockOffset:e.uint.decode(d),blockLength:e.uint.decode(d),byteOffset:e.uint.decode(d),byteLength:e.uint.decode(d)})},s={preencode(d,o){e.uint.preencode(d,o.width),e.uint.preencode(d,o.height)},encode(d,o){e.uint.encode(d,o.width),e.uint.encode(d,o.height)},decode:d=>({width:e.uint.decode(d),height:e.uint.decode(d)})},p=e.frame(s),u={preencode(d,o){d.end++,o.name&&e.string.preencode(d,o.name),o.mimetype&&e.string.preencode(d,o.mimetype),o.dimensions&&p.preencode(d,o.dimensions),o.userdata&&e.buffer.preencode(d,o.userdata),o.duration&&e.uint.preencode(d,o.duration)},encode(d,o){const n=(o.name?1:0)|(o.mimetype?2:0)|(o.dimensions?4:0)|(o.userdata?8:0)|(o.duration?16:0)|(o.isPreview?32:0);e.uint.encode(d,n),o.name&&e.string.encode(d,o.name),o.mimetype&&e.string.encode(d,o.mimetype),o.dimensions&&p.encode(d,o.dimensions),o.userdata&&e.buffer.encode(d,o.userdata),o.duration&&e.uint.encode(d,o.duration)},decode(d){const o=e.uint.decode(d);return{name:1&o?e.string.decode(d):null,mimetype:2&o?e.string.decode(d):null,dimensions:4&o?p.decode(d):null,userdata:8&o?e.buffer.decode(d):null,duration:16&o?e.uint.decode(d):0,isPreview:!!(32&o)}}},l={preencode(d,o){e.fixed32.preencode(d,o.key),e.string.preencode(d,o.path),e.uint.preencode(d,o.version),e.uint.preencode(d,o.size)},encode(d,o){e.fixed32.encode(d,o.key),e.string.encode(d,o.path),e.uint.encode(d,o.version),e.uint.encode(d,o.size)},decode:d=>({key:e.fixed32.decode(d),path:e.string.decode(d),version:e.uint.decode(d),size:e.uint.decode(d)})},f={preencode(d,o){e.fixed32.preencode(d,o.key),a.preencode(d,o.blob)},encode(d,o){e.fixed32.encode(d,o.key),a.encode(d,o.blob)},decode:d=>({key:e.fixed32.decode(d),blob:a.decode(d)})},m=e.frame(f),y=e.frame(l),x={preencode(o,n){o.end++,n.inlined&&e.buffer.preencode(o,n.inlined),n.blob&&a.preencode(o,n.blob),n.externalBlob&&m.preencode(o,n.externalBlob),n.externalDrive&&y.preencode(o,n.externalDrive),d>=13&&n.bee&&vu.preencode(o,n.bee)},encode(o,n){const c=(n.inlined?1:0)|(n.blob?2:0)|(n.externalBlob?4:0)|(n.externalDrive?8:0)|(d>=13&&n.bee?16:0);e.uint.encode(o,c),n.inlined&&e.buffer.encode(o,n.inlined),n.blob&&a.encode(o,n.blob),n.externalBlob&&m.encode(o,n.externalBlob),n.externalDrive&&y.encode(o,n.externalDrive),d>=13&&n.bee&&vu.encode(o,n.bee)},decode(o){const n=e.uint.decode(o);return{inlined:1&n?e.buffer.decode(o):null,blob:2&n?a.decode(o):null,externalBlob:4&n?m.decode(o):null,externalDrive:8&n?y.decode(o):null,bee:d>=13&&16&n?vu.decode(o):null}}},b=e.frame(x),v=e.frame(u),g={preencode(d,o){b.preencode(d,o.pointer),d.end++,o.metadata&&v.preencode(d,o.metadata),o.preview&&Ou.preencode(d,o.preview),o.hash&&e.fixed32.preencode(d,o.hash)},encode(d,o){const n=(o.metadata?1:0)|(o.preview?2:0)|(o.hash?4:0);b.encode(d,o.pointer),e.uint.encode(d,n),o.metadata&&v.encode(d,o.metadata),o.preview&&Ou.encode(d,o.preview),o.hash&&e.fixed32.encode(d,o.hash)},decode(d){const o=b.decode(d),n=e.uint.decode(d);return{pointer:o,metadata:1&n?v.decode(d):null,preview:2&n?Ou.decode(d):null,hash:4&n?e.fixed32.decode(d):null}}},K=e.frame(g),k=K,h=K,w={preencode(e,d){e.end++,d.small&&K.preencode(e,d.small),d.medium&&k.preencode(e,d.medium),d.large&&h.preencode(e,d.large)},encode(d,o){const n=(o.small?1:0)|(o.medium?2:0)|(o.large?4:0);e.uint.encode(d,n),o.small&&K.encode(d,o.small),o.medium&&k.encode(d,o.medium),o.large&&h.encode(d,o.large)},decode(d){const o=e.uint.decode(d);return{small:1&o?K.decode(d):null,medium:2&o?k.decode(d):null,large:4&o?h.decode(d):null}}},P={preencode(e,d){e.end++},encode(d,o){const n=o.isDeleted?1:0;e.uint.encode(d,n)},decode:d=>({isDeleted:!!(1&e.uint.decode(d))})},R=e.frame(P),T=K,A={preencode(d,o){e.uint.preencode(d,o.id),n.preencode(d,o.oplog),R.preencode(d,o.status),T.preencode(d,o.file),d.end++,o.version&&e.uint.preencode(d,o.version)},encode(d,o){const c=o.version?1:0;e.uint.encode(d,o.id),n.encode(d,o.oplog),R.encode(d,o.status),T.encode(d,o.file),e.uint.encode(d,c),o.version&&e.uint.encode(d,o.version)},decode:d=>({id:e.uint.decode(d),oplog:n.decode(d),status:R.decode(d),file:T.decode(d),version:1&e.uint.decode(d)?e.uint.decode(d):0})},S={preencode(e,d){e.end++},encode(d,o){const n=(o.isActive?1:0)|(o.isIndexing?2:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isActive:!!(1&o),isIndexing:!!(2&o)}}},I={preencode(d,o){const n=(o.isAdmin?1:0)|(o.isModerator?2:0)|(o.isPending?4:0)|(o.isActive?8:0)|(o.isMuted?16:0)|(o.isBanned?32:0)|(o.isShadowBanned?64:0)|(o.isRemoved?128:0);e.uint.preencode(d,n)},encode(d,o){const n=(o.isAdmin?1:0)|(o.isModerator?2:0)|(o.isPending?4:0)|(o.isActive?8:0)|(o.isMuted?16:0)|(o.isBanned?32:0)|(o.isShadowBanned?64:0)|(o.isRemoved?128:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isAdmin:!!(1&o),isModerator:!!(2&o),isPending:!!(4&o),isActive:!!(8&o),isMuted:!!(16&o),isBanned:!!(32&o),isShadowBanned:!!(64&o),isRemoved:!!(128&o)}}},M={preencode(e,d){e.end++},encode(d,o){const n=(o.isMuted?1:0)|(o.isBanned?2:0)|(o.isShadowBanned?4:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isMuted:!!(1&o),isBanned:!!(2&o),isShadowBanned:!!(4&o)}}},F={preencode(d,o){e.uint.preencode(d,o.version)},encode(d,o){e.uint.encode(d,o.version)},decode:d=>({version:e.uint.decode(d)})},q={preencode(d,o){e.uint.preencode(d,o.total),e.uint.preencode(d,o.active)},encode(d,o){e.uint.encode(d,o.total),e.uint.encode(d,o.active)},decode:d=>({total:e.uint.decode(d),active:e.uint.decode(d)})},C={preencode(d,o){e.uint.preencode(d,o.total),e.uint.preencode(d,o.active),e.uint.preencode(d,o.pending)},encode(d,o){e.uint.encode(d,o.total),e.uint.encode(d,o.active),e.uint.encode(d,o.pending)},decode:d=>({total:e.uint.decode(d),active:e.uint.decode(d),pending:e.uint.decode(d)})},V={preencode(d,o){e.uint.preencode(d,o.clock),e.uint.preencode(d,o.pinned),e.uint.preencode(d,o.threads),e.uint.preencode(d,o.timestamp),d.end++,o.flagsClock&&e.uint.preencode(d,o.flagsClock)},encode(d,o){const n=o.flagsClock?1:0;e.uint.encode(d,o.clock),e.uint.encode(d,o.pinned),e.uint.encode(d,o.threads),e.uint.encode(d,o.timestamp),e.uint.encode(d,n),o.flagsClock&&e.uint.encode(d,o.flagsClock)},decode:d=>({clock:e.uint.decode(d),pinned:e.uint.decode(d),threads:e.uint.decode(d),timestamp:e.uint.decode(d),flagsClock:1&e.uint.decode(d)?e.uint.decode(d):0})},H={preencode(d,o){e.uint.preencode(d,o.clock)},encode(d,o){e.uint.encode(d,o.clock)},decode:d=>({clock:e.uint.decode(d)})},D=e.frame(q),L=e.frame(C),j=e.frame(V),E=e.frame(H),B={preencode(e,o){D.preencode(e,o.devices),L.preencode(e,o.members),j.preencode(e,o.chat),E.preencode(e,o.files),e.end++,d>=12&&o.calls&&Nu.preencode(e,o.calls)},encode(o,n){const c=d>=12&&n.calls?1:0;D.encode(o,n.devices),L.encode(o,n.members),j.encode(o,n.chat),E.encode(o,n.files),e.uint.encode(o,c),d>=12&&n.calls&&Nu.encode(o,n.calls)},decode(o){const n=D.decode(o),c=L.decode(o),r=j.decode(o),t=E.decode(o),i=o.start<o.end?e.uint.decode(o):0;return{devices:n,members:c,chat:r,files:t,calls:d>=12&&1&i?Nu.decode(o):null}}},z={Default:1,Broadcast:2,DirectMessage:3},O={preencode(e,d){e.end++},encode(d,o){if(o>3)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},N={preencode(o,n){const c=(n.roomType?1:0)|(n.isExperimental?2:0)|(n.isJoiningDisabled?4:0)|(n.isAppendingDisabled?8:0)|(n.isCallingDisabled?16:0)|(n.isMembershipEventsDisabled?32:0)|(d>=4&&n.isAttachmentsDisabled?64:0)|(d>=4&&n.isLinksDisabled?128:0)|(d>=5&&n.buildType?256:0)|(d>=9&&n.isRoomInviteHidden?512:0);e.uint.preencode(o,c),n.roomType&&O.preencode(o,n.roomType),d>=5&&n.buildType&&Dp.preencode(o,n.buildType)},encode(o,n){const c=(n.roomType?1:0)|(n.isExperimental?2:0)|(n.isJoiningDisabled?4:0)|(n.isAppendingDisabled?8:0)|(n.isCallingDisabled?16:0)|(n.isMembershipEventsDisabled?32:0)|(d>=4&&n.isAttachmentsDisabled?64:0)|(d>=4&&n.isLinksDisabled?128:0)|(d>=5&&n.buildType?256:0)|(d>=9&&n.isRoomInviteHidden?512:0);e.uint.encode(o,c),n.roomType&&O.encode(o,n.roomType),d>=5&&n.buildType&&Dp.encode(o,n.buildType)},decode(o){const n=e.uint.decode(o);return{roomType:1&n?O.decode(o):0,isExperimental:!!(2&n),isJoiningDisabled:!!(4&n),isAppendingDisabled:!!(8&n),isCallingDisabled:!!(16&n),isMembershipEventsDisabled:!!(32&n),isAttachmentsDisabled:d>=4&&!!(64&n),isLinksDisabled:d>=4&&!!(128&n),buildType:d>=5&&256&n?Dp.decode(o):null,isRoomInviteHidden:d>=9&&!!(512&n)}}},U=e.frame(F),J=e.frame(N),W={preencode(d,o){U.preencode(d,o.abi),J.preencode(d,o.settings),e.uint.preencode(d,o.creationTime)},encode(d,o){U.encode(d,o.abi),J.encode(d,o.settings),e.uint.encode(d,o.creationTime)},decode:d=>({abi:U.decode(d),settings:J.decode(d),creationTime:e.uint.decode(d)})},G={preencode(d,o){e.fixed32.preencode(d,o.seed)},encode(d,o){e.fixed32.encode(d,o.seed)},decode:d=>({seed:e.fixed32.decode(d)})},Q={preencode(d,o){c.preencode(d,o.mailboxKeyPair),r.preencode(d,o.discoveryKeyPair),e.fixed32.preencode(d,o.wakeupTopic),e.fixed32.preencode(d,o.swarmTopic)},encode(d,o){c.encode(d,o.mailboxKeyPair),r.encode(d,o.discoveryKeyPair),e.fixed32.encode(d,o.wakeupTopic),e.fixed32.encode(d,o.swarmTopic)},decode:d=>({mailboxKeyPair:c.decode(d),discoveryKeyPair:r.decode(d),wakeupTopic:e.fixed32.decode(d),swarmTopic:e.fixed32.decode(d)})},X={en:"en",it:"it",ru:"ru",es:"es",de:"de"},Y={preencode(e,d){e.end++},encode(d,o){switch(o){case"en":e.uint.encode(d,1);break;case"it":e.uint.encode(d,2);break;case"ru":e.uint.encode(d,3);break;case"es":e.uint.encode(d,4);break;case"de":e.uint.encode(d,5);break;default:throw new Error("Unknown enum")}},decode(d){switch(e.uint.decode(d)){case 1:return"en";case 2:return"it";case 3:return"ru";case 4:return"es";case 5:return"de";default:return null}}},Z=e.array(Y),$=e.array(e.fixed32),_={preencode(d,o){d.end++,o.title&&e.string.preencode(d,o.title),o.avatar&&Uu.preencode(d,o.avatar),o.description&&e.string.preencode(d,o.description),o.supportedLanguages&&Z.preencode(d,o.supportedLanguages),o.blindPeers&&$.preencode(d,o.blindPeers)},encode(d,o){const n=(o.title?1:0)|(o.avatar?2:0)|(o.description?4:0)|(o.supportedLanguages?8:0)|(o.blindPeers?16:0);e.uint.encode(d,n),o.title&&e.string.encode(d,o.title),o.avatar&&Uu.encode(d,o.avatar),o.description&&e.string.encode(d,o.description),o.supportedLanguages&&Z.encode(d,o.supportedLanguages),o.blindPeers&&$.encode(d,o.blindPeers)},decode(d){const o=e.uint.decode(d);return{title:1&o?e.string.decode(d):null,avatar:2&o?Uu.decode(d):null,description:4&o?e.string.decode(d):null,supportedLanguages:8&o?Z.decode(d):null,blindPeers:16&o?$.decode(d):null}}},ee={preencode(d,o){e.fixed32.preencode(d,o.key)},encode(d,o){e.fixed32.encode(d,o.key)},decode:d=>({key:e.fixed32.decode(d)})},de=e.frame(i),oe=e.frame(ee),ne={preencode(e,d){de.preencode(e,d.header),oe.preencode(e,d.peer)},encode(e,d){de.encode(e,d.header),oe.encode(e,d.peer)},decode:e=>({header:de.decode(e),peer:oe.decode(e)})},ce=de,re={preencode(d,o){ce.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){ce.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:ce.decode(d),key:e.fixed32.decode(d)})},te={preencode(d,o){e.fixed32.preencode(d,o.memberKey),e.buffer.preencode(d,o.proof)},encode(d,o){e.fixed32.encode(d,o.memberKey),e.buffer.encode(d,o.proof)},decode:d=>({memberKey:e.fixed32.decode(d),proof:e.buffer.decode(d)})},ie={preencode(d,o){e.fixed32.preencode(d,o.id),e.buffer.preencode(d,o.response)},encode(d,o){e.fixed32.encode(d,o.id),e.buffer.encode(d,o.response)},decode:d=>({id:e.fixed32.decode(d),response:e.buffer.decode(d)})},ae=e.frame(S),se=e.frame(ie),pe={preencode(d,o){e.fixed32.preencode(d,o.key),e.fixed32.preencode(d,o.memberKey),ae.preencode(d,o.status),Ju.preencode(d,o.profile),d.end++,o.invitation&&se.preencode(d,o.invitation)},encode(d,o){const n=o.invitation?1:0;e.fixed32.encode(d,o.key),e.fixed32.encode(d,o.memberKey),ae.encode(d,o.status),Ju.encode(d,o.profile),e.uint.encode(d,n),o.invitation&&se.encode(d,o.invitation)},decode:d=>({key:e.fixed32.decode(d),memberKey:e.fixed32.decode(d),status:ae.decode(d),profile:Ju.decode(d),invitation:1&e.uint.decode(d)?se.decode(d):null})},ue={preencode(d,o){e.uint.preencode(d,o.timestamp),d.end++,o.mailbox&&e.fixed32.preencode(d,o.mailbox),o.displayName&&e.string.preencode(d,o.displayName),o.avatar&&Wu.preencode(d,o.avatar),o.username&&e.string.preencode(d,o.username)},encode(d,o){const n=(o.mailbox?1:0)|(o.displayName?2:0)|(o.avatar?4:0)|(o.username?8:0);e.uint.encode(d,o.timestamp),e.uint.encode(d,n),o.mailbox&&e.fixed32.encode(d,o.mailbox),o.displayName&&e.string.encode(d,o.displayName),o.avatar&&Wu.encode(d,o.avatar),o.username&&e.string.encode(d,o.username)},decode(d){const o=e.uint.decode(d),n=e.uint.decode(d);return{timestamp:o,mailbox:1&n?e.fixed32.decode(d):null,displayName:2&n?e.string.decode(d):null,avatar:4&n?Wu.decode(d):null,username:8&n?e.string.decode(d):null}}},le={preencode(o,n){o.end++,n.swarmKey&&e.fixed32.preencode(o,n.swarmKey),n.name&&e.string.preencode(o,n.name),d>=5&&n.buildType&&Dp.preencode(o,n.buildType)},encode(o,n){const c=(n.swarmKey?1:0)|(n.name?2:0)|(n.isMobile?4:0)|(d>=5&&n.buildType?8:0);e.uint.encode(o,c),n.swarmKey&&e.fixed32.encode(o,n.swarmKey),n.name&&e.string.encode(o,n.name),d>=5&&n.buildType&&Dp.encode(o,n.buildType)},decode(o){const n=e.uint.decode(o);return{swarmKey:1&n?e.fixed32.decode(o):null,name:2&n?e.string.decode(o):null,isMobile:!!(4&n),buildType:d>=5&&8&n?Dp.decode(o):null}}},fe=e.frame(ue),me={preencode(e,d){fe.preencode(e,d.profile),te.preencode(e,d.attestation)},encode(e,d){fe.encode(e,d.profile),te.encode(e,d.attestation)},decode:e=>({profile:fe.decode(e),attestation:te.decode(e)})},ye={preencode(e,d){Gu.preencode(e,d.profile),te.preencode(e,d.attestation)},encode(e,d){Gu.encode(e,d.profile),te.encode(e,d.attestation)},decode:e=>({profile:Gu.decode(e),attestation:te.decode(e)})},xe=fe,be={preencode(e,d){xe.preencode(e,d.profile),te.preencode(e,d.attestation)},encode(e,d){xe.encode(e,d.profile),te.encode(e,d.attestation)},decode:e=>({profile:xe.decode(e),attestation:te.decode(e)})},ve={preencode(d,o){e.fixed32.preencode(d,o.id),e.buffer.preencode(d,o.data),e.buffer.preencode(d,o.signature)},encode(d,o){e.fixed32.encode(d,o.id),e.buffer.encode(d,o.data),e.buffer.encode(d,o.signature)},decode:d=>({id:e.fixed32.decode(d),data:e.buffer.decode(d),signature:e.buffer.decode(d)})},ge={preencode(d,o){e.fixed32.preencode(d,o.devicePublicKey)},encode(d,o){e.fixed32.encode(d,o.devicePublicKey)},decode:d=>({devicePublicKey:e.fixed32.decode(d)})},Ke={preencode(d,o){te.preencode(d,o.privateProfileIdentity),e.buffer.preencode(d,o.deviceProof)},encode(d,o){te.encode(d,o.privateProfileIdentity),e.buffer.encode(d,o.deviceProof)},decode:d=>({privateProfileIdentity:te.decode(d),deviceProof:e.buffer.decode(d)})},ke={preencode(d,o){e.fixed32.preencode(d,o.deviceKey),te.preencode(d,o.privateProfileIdentity),e.buffer.preencode(d,o.deviceProof)},encode(d,o){e.fixed32.encode(d,o.deviceKey),te.encode(d,o.privateProfileIdentity),e.buffer.encode(d,o.deviceProof)},decode:d=>({deviceKey:e.fixed32.decode(d),privateProfileIdentity:te.decode(d),deviceProof:e.buffer.decode(d)})},he=e.frame(ye),we=e.frame(me),Pe=e.frame(ge),Re={preencode(n,c){e.fixed32.preencode(n,c.deviceKey),r.preencode(n,c.keyPair),he.preencode(n,c.device),we.preencode(n,c.member),n.end++,c.identity&&Pe.preencode(n,c.identity),d>=13&&c.link&&o.preencode(n,c.link)},encode(n,c){const t=(c.identity?1:0)|(d>=13&&c.link?2:0);e.fixed32.encode(n,c.deviceKey),r.encode(n,c.keyPair),he.encode(n,c.device),we.encode(n,c.member),e.uint.encode(n,t),c.identity&&Pe.encode(n,c.identity),d>=13&&c.link&&o.encode(n,c.link)},decode(n){const c=e.fixed32.decode(n),t=r.decode(n),i=he.decode(n),a=we.decode(n),s=e.uint.decode(n);return{deviceKey:c,keyPair:t,device:i,member:a,identity:1&s?Pe.decode(n):null,link:d>=13&&2&s?o.decode(n):null}}},Te=e.frame(Re),Ae={preencode(d,o){e.fixed32.preencode(d,o.id),Te.preencode(d,o.request),e.buffer.preencode(d,o.signature)},encode(d,o){e.fixed32.encode(d,o.id),Te.encode(d,o.request),e.buffer.encode(d,o.signature)},decode:d=>({id:e.fixed32.decode(d),request:Te.decode(d),signature:e.buffer.decode(d)})},Se=he,Ie=we,Me={preencode(e,d){Se.preencode(e,d.device),e.end++,d.member&&Ie.preencode(e,d.member)},encode(d,o){const n=o.member?1:0;Se.encode(d,o.device),e.uint.encode(d,n),o.member&&Ie.encode(d,o.member)},decode:d=>({device:Se.decode(d),member:1&e.uint.decode(d)?Ie.decode(d):null})},Fe=e.frame(Ae),qe=e.frame(Me),Ce={preencode(e,d){e.end++,d.withInvitation&&Fe.preencode(e,d.withInvitation),d.withMemberProof&&qe.preencode(e,d.withMemberProof)},encode(d,o){const n=(o.withInvitation?1:0)|(o.withMemberProof?2:0);e.uint.encode(d,n),o.withInvitation&&Fe.encode(d,o.withInvitation),o.withMemberProof&&qe.encode(d,o.withMemberProof)},decode(d){const o=e.uint.decode(d);return{withInvitation:1&o?Fe.decode(d):null,withMemberProof:2&o?qe.decode(d):null}}},Ve=e.frame(ve),He=e.frame(Ke),De={preencode(e,d){Ve.preencode(e,d.signedKeys),e.end++,d.identity&&He.preencode(e,d.identity)},encode(d,o){const n=o.identity?1:0;Ve.encode(d,o.signedKeys),e.uint.encode(d,n),o.identity&&He.encode(d,o.identity)},decode:d=>({signedKeys:Ve.decode(d),identity:1&e.uint.decode(d)?He.decode(d):null})},Le={preencode(o,n){o.end++,n.expiration&&e.uint.preencode(o,n.expiration),d>=5&&n.buildType&&Dp.preencode(o,n.buildType)},encode(o,n){const c=(n.expiration?1:0)|(n.requiresConfirmation?2:0)|(n.canModerate?4:0)|(n.canAdmin?8:0)|(d>=5&&n.buildType?16:0);e.uint.encode(o,c),n.expiration&&e.uint.encode(o,n.expiration),d>=5&&n.buildType&&Dp.encode(o,n.buildType)},decode(o){const n=e.uint.decode(o);return{expiration:1&n?e.uint.decode(o):0,requiresConfirmation:!!(2&n),canModerate:!!(4&n),canAdmin:!!(8&n),buildType:d>=5&&16&n?Dp.decode(o):null}}},je=Ve,Ee=e.frame(Le),Be={preencode(d,n){e.fixed32.preencode(d,n.id),je.preencode(d,n.response),Ee.preencode(d,n.metadata),d.end++,n.anchor&&o.preencode(d,n.anchor)},encode(d,n){const c=(n.anchor?1:0)|(n.isActive?2:0);e.fixed32.encode(d,n.id),je.encode(d,n.response),Ee.encode(d,n.metadata),e.uint.encode(d,c),n.anchor&&o.encode(d,n.anchor)},decode(d){const n=e.fixed32.decode(d),c=je.decode(d),r=Ee.decode(d),t=e.uint.decode(d);return{id:n,response:c,metadata:r,anchor:1&t?o.decode(d):null,isActive:!!(2&t)}}},ze=de,Oe=e.frame(Be),Ne={preencode(e,d){ze.preencode(e,d.header),Oe.preencode(e,d.invitation)},encode(e,d){ze.encode(e,d.header),Oe.encode(e,d.invitation)},decode:e=>({header:ze.decode(e),invitation:Oe.decode(e)})},Ue=de,Je={preencode(d,o){Ue.preencode(d,o.header),e.fixed32.preencode(d,o.id)},encode(d,o){Ue.encode(d,o.header),e.fixed32.encode(d,o.id)},decode:d=>({header:Ue.decode(d),id:e.fixed32.decode(d)})},We={preencode(d,n){e.fixed32.preencode(d,n.mailbox),e.fixed32.preencode(d,n.invitationSeed),o.preencode(d,n.anchor)},encode(d,n){e.fixed32.encode(d,n.mailbox),e.fixed32.encode(d,n.invitationSeed),o.encode(d,n.anchor)},decode:d=>({mailbox:e.fixed32.decode(d),invitationSeed:e.fixed32.decode(d),anchor:o.decode(d)})},Ge={preencode(d,o){e.fixed32.preencode(d,o.roomKey),e.fixed32.preencode(d,o.encryptionKey),e.fixed32.preencode(d,o.seed),d.end++,o.fastForwardTo&&e.fixed32.preencode(d,o.fastForwardTo)},encode(d,o){const n=o.fastForwardTo?1:0;e.fixed32.encode(d,o.roomKey),e.fixed32.encode(d,o.encryptionKey),e.fixed32.encode(d,o.seed),e.uint.encode(d,n),o.fastForwardTo&&e.fixed32.encode(d,o.fastForwardTo)},decode:d=>({roomKey:e.fixed32.decode(d),encryptionKey:e.fixed32.decode(d),seed:e.fixed32.decode(d),fastForwardTo:1&e.uint.decode(d)?e.fixed32.decode(d):null})},Qe={preencode(d,n){e.fixed32.preencode(d,n.mailbox),e.fixed32.preencode(d,n.invitationSeed),o.preencode(d,n.anchor),e.fixed32.preencode(d,n.identityPublicKey)},encode(d,n){e.fixed32.encode(d,n.mailbox),e.fixed32.encode(d,n.invitationSeed),o.encode(d,n.anchor),e.fixed32.encode(d,n.identityPublicKey)},decode:d=>({mailbox:e.fixed32.decode(d),invitationSeed:e.fixed32.decode(d),anchor:o.decode(d),identityPublicKey:e.fixed32.decode(d)})},Xe={preencode(d,o){e.fixed32.preencode(d,o.mailbox)},encode(d,o){e.fixed32.encode(d,o.mailbox)},decode:d=>({mailbox:e.fixed32.decode(d)})},Ye=e.frame(We),Ze=e.frame(Qe),$e=e.frame(Xe),_e=e.frame(Ge),ed=e.array(e.ipv4Address),dd={preencode(e,o){e.end++,o.room&&Ye.preencode(e,o.room),o.identity&&Ze.preencode(e,o.identity),o.contact&&$e.preencode(e,o.contact),o.readonly&&_e.preencode(e,o.readonly),o.additionalNodes&&ed.preencode(e,o.additionalNodes),d>=5&&o.buildType&&Dp.preencode(e,o.buildType),d>=13&&o["readonly-v2"]&&Qu.preencode(e,o["readonly-v2"])},encode(o,n){const c=(n.room?1:0)|(n.identity?2:0)|(n.contact?4:0)|(n.readonly?8:0)|(n.additionalNodes?16:0)|(d>=5&&n.buildType?32:0)|(d>=13&&n["readonly-v2"]?64:0);e.uint.encode(o,c),n.room&&Ye.encode(o,n.room),n.identity&&Ze.encode(o,n.identity),n.contact&&$e.encode(o,n.contact),n.readonly&&_e.encode(o,n.readonly),n.additionalNodes&&ed.encode(o,n.additionalNodes),d>=5&&n.buildType&&Dp.encode(o,n.buildType),d>=13&&n["readonly-v2"]&&Qu.encode(o,n["readonly-v2"])},decode(o){const n=e.uint.decode(o);return{room:1&n?Ye.decode(o):null,identity:2&n?Ze.decode(o):null,contact:4&n?$e.decode(o):null,readonly:8&n?_e.decode(o):null,additionalNodes:16&n?ed.decode(o):null,buildType:d>=5&&32&n?Dp.decode(o):null,"readonly-v2":d>=13&&64&n?Qu.decode(o):null}}},od=de,nd={preencode(d,o){od.preencode(d,o.header),e.buffer.preencode(d,o.blindRequest)},encode(d,o){od.encode(d,o.header),e.buffer.encode(d,o.blindRequest)},decode:d=>({header:od.decode(d),blindRequest:e.buffer.decode(d)})},cd=de,rd={preencode(o,n){cd.preencode(o,n.header),o.end++,n.profile&&Xu.preencode(o,n.profile),d>=10&&n.key&&e.fixed32.preencode(o,n.key)},encode(o,n){const c=(n.profile?1:0)|(d>=10&&n.key?2:0);cd.encode(o,n.header),e.uint.encode(o,c),n.profile&&Xu.encode(o,n.profile),d>=10&&n.key&&e.fixed32.encode(o,n.key)},decode(o){const n=cd.decode(o),c=e.uint.decode(o);return{header:n,profile:1&c?Xu.decode(o):null,key:d>=10&&2&c?e.fixed32.decode(o):null}}},td=de,id={preencode(d,o){td.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){td.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:td.decode(d),key:e.fixed32.decode(d)})},ad={preencode(e,d){},encode(e,d){},decode:e=>({})},sd=ad,pd=Te,ud={preencode(d,o){e.fixed32.preencode(d,o.deviceKey),e.fixed32.preencode(d,o.id),pd.preencode(d,o.request)},encode(d,o){e.fixed32.encode(d,o.deviceKey),e.fixed32.encode(d,o.id),pd.encode(d,o.request)},decode:d=>({deviceKey:e.fixed32.decode(d),id:e.fixed32.decode(d),request:pd.decode(d)})},ld=de,fd=He,md={preencode(d,o){ld.preencode(d,o.header),e.fixed32.preencode(d,o.deviceKey),d.end++,o.identity&&fd.preencode(d,o.identity)},encode(d,o){const n=o.identity?1:0;ld.encode(d,o.header),e.fixed32.encode(d,o.deviceKey),e.uint.encode(d,n),o.identity&&fd.encode(d,o.identity)},decode:d=>({header:ld.decode(d),deviceKey:e.fixed32.decode(d),identity:1&e.uint.decode(d)?fd.decode(d):null})},yd=de,xd={preencode(d,o){yd.preencode(d,o.header),e.fixed32.preencode(d,o.deviceKey)},encode(d,o){yd.encode(d,o.header),e.fixed32.encode(d,o.deviceKey)},decode:d=>({header:yd.decode(d),deviceKey:e.fixed32.decode(d)})},bd=e.frame(I),vd=fe,gd={preencode(d,o){e.fixed32.preencode(d,o.key),bd.preencode(d,o.status),vd.preencode(d,o.profile)},encode(d,o){e.fixed32.encode(d,o.key),bd.encode(d,o.status),vd.encode(d,o.profile)},decode:d=>({key:e.fixed32.decode(d),status:bd.decode(d),profile:vd.decode(d)})},Kd=bd,kd=fe,hd={preencode(d,o){e.fixed32.preencode(d,o.key),Kd.preencode(d,o.status),kd.preencode(d,o.profile),d.end++,o.proofs&&Yu.preencode(d,o.proofs)},encode(d,o){const n=o.proofs?1:0;e.fixed32.encode(d,o.key),Kd.encode(d,o.status),kd.encode(d,o.profile),e.uint.encode(d,n),o.proofs&&Yu.encode(d,o.proofs)},decode:d=>({key:e.fixed32.decode(d),status:Kd.decode(d),profile:kd.decode(d),proofs:1&e.uint.decode(d)?Yu.decode(d):null})},wd={preencode(d,o){e.fixed32.preencode(d,o.key),d.end++,o.profileAttestation&&e.buffer.preencode(d,o.profileAttestation),o.latestReceipt&&e.buffer.preencode(d,o.latestReceipt)},encode(d,o){const n=(o.profileAttestation?1:0)|(o.latestReceipt?2:0);e.fixed32.encode(d,o.key),e.uint.encode(d,n),o.profileAttestation&&e.buffer.encode(d,o.profileAttestation),o.latestReceipt&&e.buffer.encode(d,o.latestReceipt)},decode(d){const o=e.fixed32.decode(d),n=e.uint.decode(d);return{key:o,profileAttestation:1&n?e.buffer.decode(d):null,latestReceipt:2&n?e.buffer.decode(d):null}}},Pd=de,Rd=we,Td={preencode(e,d){Pd.preencode(e,d.header),Rd.preencode(e,d.member)},encode(e,d){Pd.encode(e,d.header),Rd.encode(e,d.member)},decode:e=>({header:Pd.decode(e),member:Rd.decode(e)})},Ad=de,Sd=e.frame(M),Id={preencode(d,o){Ad.preencode(d,o.header),e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.key),Sd.preencode(d,o.status)},encode(d,o){Ad.encode(d,o.header),e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.key),Sd.encode(d,o.status)},decode:d=>({header:Ad.decode(d),memberKey:e.fixed32.decode(d),key:e.uint.decode(d),status:Sd.decode(d)})},Md=de,Fd={preencode(d,o){Md.preencode(d,o.header),e.fixed32.preencode(d,o.key),d.end++},encode(d,o){const n=(o.isModerator?1:0)|(o.isAdmin?2:0);Md.encode(d,o.header),e.fixed32.encode(d,o.key),e.uint.encode(d,n)},decode(d){const o=Md.decode(d),n=e.fixed32.decode(d),c=e.uint.decode(d);return{header:o,key:n,isModerator:!!(1&c),isAdmin:!!(2&c)}}},qd=de,Cd={preencode(d,o){qd.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){qd.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:qd.decode(d),key:e.fixed32.decode(d)})},Vd={preencode(d,o){e.fixed32.preencode(d,o.key),e.uint.preencode(d,o.mentions)},encode(d,o){e.fixed32.encode(d,o.key),e.uint.encode(d,o.mentions)},decode:d=>({key:e.fixed32.decode(d),mentions:e.uint.decode(d)})},Hd={preencode(d,o){d.end++,o.memberKey&&e.fixed32.preencode(d,o.memberKey)},encode(d,o){const n=o.memberKey?1:0;e.uint.encode(d,n),o.memberKey&&e.fixed32.encode(d,o.memberKey)},decode:d=>({memberKey:1&e.uint.decode(d)?e.fixed32.decode(d):null})},Dd=Hd,Ld=Hd,jd={preencode(d,o){d.end++,o.from&&e.string.preencode(d,o.from),o.to&&e.string.preencode(d,o.to)},encode(d,o){const n=(o.from?1:0)|(o.to?2:0);e.uint.encode(d,n),o.from&&e.string.encode(d,o.from),o.to&&e.string.encode(d,o.to)},decode(d){const o=e.uint.decode(d);return{from:1&o?e.string.decode(d):null,to:2&o?e.string.decode(d):null}}},Ed=e.frame(Hd),Bd=e.frame(Dd),zd=e.frame(jd),Od=e.frame(Ld),Nd={preencode(o,n){const c=(n.memberJoined?1:0)|(n.memberLeft?2:0)|(n.titleChanged?4:0)|(n.callStarted?8:0)|(n.callHangup?16:0)|(n.callMissed?32:0)|(n.roomAvatarChanged?64:0)|(n.invitationCreated?128:0)|(n.memberRemoved?256:0)|(d>=3&&n.locationShared?512:0);e.uint.preencode(o,c),n.memberJoined&&Ed.preencode(o,n.memberJoined),n.memberLeft&&Bd.preencode(o,n.memberLeft),n.titleChanged&&zd.preencode(o,n.titleChanged),n.memberRemoved&&Od.preencode(o,n.memberRemoved),d>=3&&n.locationShared&&Zu.preencode(o,n.locationShared)},encode(o,n){const c=(n.memberJoined?1:0)|(n.memberLeft?2:0)|(n.titleChanged?4:0)|(n.callStarted?8:0)|(n.callHangup?16:0)|(n.callMissed?32:0)|(n.roomAvatarChanged?64:0)|(n.invitationCreated?128:0)|(n.memberRemoved?256:0)|(d>=3&&n.locationShared?512:0);e.uint.encode(o,c),n.memberJoined&&Ed.encode(o,n.memberJoined),n.memberLeft&&Bd.encode(o,n.memberLeft),n.titleChanged&&zd.encode(o,n.titleChanged),n.memberRemoved&&Od.encode(o,n.memberRemoved),d>=3&&n.locationShared&&Zu.encode(o,n.locationShared)},decode(o){const n=e.uint.decode(o);return{memberJoined:1&n?Ed.decode(o):null,memberLeft:2&n?Bd.decode(o):null,titleChanged:4&n?zd.decode(o):null,callStarted:!!(8&n),callHangup:!!(16&n),callMissed:!!(32&n),roomAvatarChanged:!!(64&n),invitationCreated:!!(128&n),memberRemoved:256&n?Od.decode(o):null,locationShared:d>=3&&512&n?Zu.decode(o):null}}},Ud={preencode(e,o){e.end++,d>=3&&o.locationShared&&$u.preencode(e,o.locationShared)},encode(o,n){const c=(n.callStarted?1:0)|(n.callHangup?2:0)|(n.callMissed?4:0)|(d>=3&&n.locationShared?8:0);e.uint.encode(o,c),d>=3&&n.locationShared&&$u.encode(o,n.locationShared)},decode(o){const n=e.uint.decode(o);return{callStarted:!!(1&n),callHangup:!!(2&n),callMissed:!!(4&n),locationShared:d>=3&&8&n?$u.decode(o):null}}},Jd={preencode(d,o){e.uint.preencode(d,o.start),e.uint.preencode(d,o.length)},encode(d,o){e.uint.encode(d,o.start),e.uint.encode(d,o.length)},decode:d=>({start:e.uint.decode(d),length:e.uint.decode(d)})},Wd=e.frame(Jd),Gd={preencode(d,o){Wd.preencode(d,o.range),e.string.preencode(d,o.content)},encode(d,o){Wd.encode(d,o.range),e.string.encode(d,o.content)},decode:d=>({range:Wd.decode(d),content:e.string.decode(d)})},Qd=Wd,Xd={preencode(d,o){Qd.preencode(d,o.range),e.fixed32.preencode(d,o.memberKey)},encode(d,o){Qd.encode(d,o.range),e.fixed32.encode(d,o.memberKey)},decode:d=>({range:Qd.decode(d),memberKey:e.fixed32.decode(d)})},Yd=Wd,Zd={preencode(d,o){Yd.preencode(d,o.range),Y.preencode(d,o.language),e.string.preencode(d,o.text)},encode(d,o){Yd.encode(d,o.range),Y.encode(d,o.language),e.string.encode(d,o.text)},decode:d=>({range:Yd.decode(d),language:Y.decode(d),text:e.string.decode(d)})},$d=K,_d=e.array(e.uint),eo={preencode(d,o){d.end++,o.title&&e.string.preencode(d,o.title),o.description&&e.string.preencode(d,o.description),o.file&&$d.preencode(d,o.file),o.files&&_d.preencode(d,o.files)},encode(d,o){const n=(o.title?1:0)|(o.description?2:0)|(o.file?4:0)|(o.files?8:0);e.uint.encode(d,n),o.title&&e.string.encode(d,o.title),o.description&&e.string.encode(d,o.description),o.file&&$d.encode(d,o.file),o.files&&_d.encode(d,o.files)},decode(d){const o=e.uint.decode(d);return{title:1&o?e.string.decode(d):null,description:2&o?e.string.decode(d):null,file:4&o?$d.decode(d):null,files:8&o?_d.decode(d):null}}},oo=Wd,no=e.frame(eo),co={preencode(d,o){oo.preencode(d,o.range),e.string.preencode(d,o.url),d.end++,o.preview&&no.preencode(d,o.preview)},encode(d,o){const n=o.preview?1:0;oo.encode(d,o.range),e.string.encode(d,o.url),e.uint.encode(d,n),o.preview&&no.encode(d,o.preview)},decode:d=>({range:oo.decode(d),url:e.string.decode(d),preview:1&e.uint.decode(d)?no.decode(d):null})},ro=e.array(e.frame(Xd)),to=e.array(e.frame(co)),io=to,ao=e.array(e.frame(Jd)),so=ao,po=ao,uo=e.array(e.frame(Gd)),lo=ao,fo=ao,mo=e.array(e.frame(Zd)),yo={preencode(d,o){const n=(o.mention?1:0)|(o.httpLink?2:0)|(o.pearLink?4:0)|(o.bold?8:0)|(o.italic?16:0)|(o.code?32:0)|(o.emoji?64:0)|(o.codeBlock?128:0)|(o.strike?256:0)|(o.translation?512:0);e.uint.preencode(d,n),o.mention&&ro.preencode(d,o.mention),o.httpLink&&to.preencode(d,o.httpLink),o.pearLink&&io.preencode(d,o.pearLink),o.bold&&ao.preencode(d,o.bold),o.italic&&so.preencode(d,o.italic),o.code&&po.preencode(d,o.code),o.emoji&&uo.preencode(d,o.emoji),o.codeBlock&&lo.preencode(d,o.codeBlock),o.strike&&fo.preencode(d,o.strike),o.translation&&mo.preencode(d,o.translation)},encode(d,o){const n=(o.mention?1:0)|(o.httpLink?2:0)|(o.pearLink?4:0)|(o.bold?8:0)|(o.italic?16:0)|(o.code?32:0)|(o.emoji?64:0)|(o.codeBlock?128:0)|(o.strike?256:0)|(o.translation?512:0);e.uint.encode(d,n),o.mention&&ro.encode(d,o.mention),o.httpLink&&to.encode(d,o.httpLink),o.pearLink&&io.encode(d,o.pearLink),o.bold&&ao.encode(d,o.bold),o.italic&&so.encode(d,o.italic),o.code&&po.encode(d,o.code),o.emoji&&uo.encode(d,o.emoji),o.codeBlock&&lo.encode(d,o.codeBlock),o.strike&&fo.encode(d,o.strike),o.translation&&mo.encode(d,o.translation)},decode(d){const o=e.uint.decode(d);return{mention:1&o?ro.decode(d):null,httpLink:2&o?to.decode(d):null,pearLink:4&o?io.decode(d):null,bold:8&o?ao.decode(d):null,italic:16&o?so.decode(d):null,code:32&o?po.decode(d):null,emoji:64&o?uo.decode(d):null,codeBlock:128&o?lo.decode(d):null,strike:256&o?fo.decode(d):null,translation:512&o?mo.decode(d):null}}},xo=e.array(e.frame(g)),bo=e.frame(yo),vo=e.frame(Ud),go={preencode(d,o){d.end++,o.text&&e.string.preencode(d,o.text),o.files&&xo.preencode(d,o.files),o.display&&bo.preencode(d,o.display),o.replyTo&&n.preencode(d,o.replyTo),o.parent&&n.preencode(d,o.parent),o.event&&vo.preencode(d,o.event)},encode(o,c){const r=(c.text?1:0)|(c.files?2:0)|(c.display?4:0)|(c.replyTo?8:0)|(c.parent?16:0)|(c.event?32:0)|(d>=3&&c.forwarded?64:0);e.uint.encode(o,r),c.text&&e.string.encode(o,c.text),c.files&&xo.encode(o,c.files),c.display&&bo.encode(o,c.display),c.replyTo&&n.encode(o,c.replyTo),c.parent&&n.encode(o,c.parent),c.event&&vo.encode(o,c.event)},decode(o){const c=e.uint.decode(o);return{text:1&c?e.string.decode(o):null,files:2&c?xo.decode(o):null,display:4&c?bo.decode(o):null,replyTo:8&c?n.decode(o):null,parent:16&c?n.decode(o):null,event:32&c?vo.decode(o):null,forwarded:d>=3&&!!(64&c)}}},Ko=_d,ko=bo,ho={preencode(d,o){d.end++,o.text&&e.string.preencode(d,o.text),o.files&&Ko.preencode(d,o.files),o.display&&ko.preencode(d,o.display),o.replyTo&&n.preencode(d,o.replyTo),o.parent&&n.preencode(d,o.parent)},encode(o,c){const r=(c.text?1:0)|(c.files?2:0)|(c.display?4:0)|(c.replyTo?8:0)|(c.parent?16:0)|(d>=3&&c.forwarded?32:0);e.uint.encode(o,r),c.text&&e.string.encode(o,c.text),c.files&&Ko.encode(o,c.files),c.display&&ko.encode(o,c.display),c.replyTo&&n.encode(o,c.replyTo),c.parent&&n.encode(o,c.parent)},decode(o){const c=e.uint.decode(o);return{text:1&c?e.string.decode(o):null,files:2&c?Ko.decode(o):null,display:4&c?ko.decode(o):null,replyTo:8&c?n.decode(o):null,parent:16&c?n.decode(o):null,forwarded:d>=3&&!!(32&c)}}},wo=xo,Po=bo,Ro={preencode(d,o){d.end++,o.text&&e.string.preencode(d,o.text),o.files&&wo.preencode(d,o.files),o.display&&Po.preencode(d,o.display),o.replyTo&&n.preencode(d,o.replyTo),o.parent&&n.preencode(d,o.parent)},encode(o,c){const r=(c.text?1:0)|(c.files?2:0)|(c.display?4:0)|(c.replyTo?8:0)|(c.parent?16:0)|(d>=3&&c.forwarded?32:0);e.uint.encode(o,r),c.text&&e.string.encode(o,c.text),c.files&&wo.encode(o,c.files),c.display&&Po.encode(o,c.display),c.replyTo&&n.encode(o,c.replyTo),c.parent&&n.encode(o,c.parent)},decode(o){const c=e.uint.decode(o);return{text:1&c?e.string.decode(o):null,files:2&c?wo.decode(o):null,display:4&c?Po.decode(o):null,replyTo:8&c?n.decode(o):null,parent:16&c?n.decode(o):null,forwarded:d>=3&&!!(32&c)}}},To={preencode(e,d){e.end++},encode(d,o){const n=(o.isEdited?1:0)|(o.isDeleted?2:0)|(o.isPinned?4:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isEdited:!!(1&o),isDeleted:!!(2&o),isPinned:!!(4&o)}}},Ao={preencode(d,o){e.uint.preencode(d,o.thread),e.uint.preencode(d,o.index)},encode(d,o){e.uint.encode(d,o.thread),e.uint.encode(d,o.index)},decode:d=>({thread:e.uint.decode(d),index:e.uint.decode(d)})},So=e.frame(B),Io={preencode(d,o){e.uint.preencode(d,o.id),e.uint.preencode(d,o.count),d.end++,o.parent&&n.preencode(d,o.parent),o.stats&&So.preencode(d,o.stats)},encode(d,o){const c=(o.parent?1:0)|(o.stats?2:0);e.uint.encode(d,o.id),e.uint.encode(d,o.count),e.uint.encode(d,c),o.parent&&n.encode(d,o.parent),o.stats&&So.encode(d,o.stats)},decode(d){const o=e.uint.decode(d),c=e.uint.decode(d),r=e.uint.decode(d);return{id:o,count:c,parent:1&r?n.decode(d):null,stats:2&r?So.decode(d):null}}},Mo=e.frame(To),Fo=e.frame(ho),qo=e.frame(Nd),Co={preencode(d,o){Ao.preencode(d,o.id),n.preencode(d,o.oplog),e.uint.preencode(d,o.clock),e.uint.preencode(d,o.timestamp),d.end++,o.editedAt&&e.uint.preencode(d,o.editedAt),Mo.preencode(d,o.status),o.message&&Fo.preencode(d,o.message),o.event&&qo.preencode(d,o.event)},encode(d,o){const c=(o.editedAt?1:0)|(o.message?2:0)|(o.event?4:0);Ao.encode(d,o.id),n.encode(d,o.oplog),e.uint.encode(d,o.clock),e.uint.encode(d,o.timestamp),e.uint.encode(d,c),o.editedAt&&e.uint.encode(d,o.editedAt),Mo.encode(d,o.status),o.message&&Fo.encode(d,o.message),o.event&&qo.encode(d,o.event)},decode(d){const o=Ao.decode(d),c=n.decode(d),r=e.uint.decode(d),t=e.uint.decode(d),i=e.uint.decode(d);return{id:o,oplog:c,clock:r,timestamp:t,editedAt:1&i?e.uint.decode(d):0,status:Mo.decode(d),message:2&i?Fo.decode(d):null,event:4&i?qo.decode(d):null}}},Vo=Mo,Ho=e.frame(Ro),Do=qo,Lo={preencode(d,o){Ao.preencode(d,o.id),n.preencode(d,o.oplog),e.uint.preencode(d,o.clock),e.uint.preencode(d,o.timestamp),d.end++,o.editedAt&&e.uint.preencode(d,o.editedAt),Vo.preencode(d,o.status),o.message&&Ho.preencode(d,o.message),o.event&&Do.preencode(d,o.event)},encode(d,o){const c=(o.editedAt?1:0)|(o.message?2:0)|(o.event?4:0);Ao.encode(d,o.id),n.encode(d,o.oplog),e.uint.encode(d,o.clock),e.uint.encode(d,o.timestamp),e.uint.encode(d,c),o.editedAt&&e.uint.encode(d,o.editedAt),Vo.encode(d,o.status),o.message&&Ho.encode(d,o.message),o.event&&Do.encode(d,o.event)},decode(d){const o=Ao.decode(d),c=n.decode(d),r=e.uint.decode(d),t=e.uint.decode(d),i=e.uint.decode(d);return{id:o,oplog:c,clock:r,timestamp:t,editedAt:1&i?e.uint.decode(d):0,status:Vo.decode(d),message:2&i?Ho.decode(d):null,event:4&i?Do.decode(d):null}}},jo=de,Eo=e.frame(go),Bo={preencode(e,d){jo.preencode(e,d.header),Eo.preencode(e,d.message)},encode(e,d){jo.encode(e,d.header),Eo.encode(e,d.message)},decode:e=>({header:jo.decode(e),message:Eo.decode(e)})},zo=de,Oo={preencode(e,d){zo.preencode(e,d.header),n.preencode(e,d.oplog)},encode(e,d){zo.encode(e,d.header),n.encode(e,d.oplog)},decode:e=>({header:zo.decode(e),oplog:n.decode(e)})},No=de,Uo=Eo,Jo={preencode(e,d){No.preencode(e,d.header),n.preencode(e,d.oplog),Uo.preencode(e,d.message)},encode(e,d){No.encode(e,d.header),n.encode(e,d.oplog),Uo.encode(e,d.message)},decode:e=>({header:No.decode(e),oplog:n.decode(e),message:Uo.decode(e)})},Wo=de,Go={preencode(e,d){Wo.preencode(e,d.header),n.preencode(e,d.oplog),e.end++},encode(d,o){const c=o.isPinned?1:0;Wo.encode(d,o.header),n.encode(d,o.oplog),e.uint.encode(d,c)},decode:d=>({header:Wo.decode(d),oplog:n.decode(d),isPinned:!!(1&e.uint.decode(d))})},Qo={HttpLink:1,PearLink:2},Xo={preencode(e,d){e.end++},encode(d,o){if(o>2)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},Yo=de,Zo={preencode(d,o){Yo.preencode(d,o.header),n.preencode(d,o.oplog),e.uint.preencode(d,o.index),_u.preencode(d,o.preview),d.end++,o.displayType&&Xo.preencode(d,o.displayType)},encode(d,o){const c=o.displayType?1:0;Yo.encode(d,o.header),n.encode(d,o.oplog),e.uint.encode(d,o.index),_u.encode(d,o.preview),e.uint.encode(d,c),o.displayType&&Xo.encode(d,o.displayType)},decode:d=>({header:Yo.decode(d),oplog:n.decode(d),index:e.uint.decode(d),preview:_u.decode(d),displayType:1&e.uint.decode(d)?Xo.decode(d):0})},$o={preencode(d,o){Ao.preencode(d,o.id),e.fixed32.preencode(d,o.sender),e.uint.preencode(d,o.clock),e.string.preencode(d,o.reaction)},encode(d,o){Ao.encode(d,o.id),e.fixed32.encode(d,o.sender),e.uint.encode(d,o.clock),e.string.encode(d,o.reaction)},decode:d=>({id:Ao.decode(d),sender:e.fixed32.decode(d),clock:e.uint.decode(d),reaction:e.string.decode(d)})},_o={preencode(d,o){e.string.preencode(d,o.text),e.uint.preencode(d,o.count)},encode(d,o){e.string.encode(d,o.text),e.uint.encode(d,o.count)},decode:d=>({text:e.string.decode(d),count:e.uint.decode(d)})},en=e.array(e.frame(_o)),dn={preencode(d,o){Ao.preencode(d,o.id),e.uint.preencode(d,o.total),en.preencode(d,o.reactions),d.end++,o.editedAt&&e.uint.preencode(d,o.editedAt)},encode(d,o){const n=o.editedAt?1:0;Ao.encode(d,o.id),e.uint.encode(d,o.total),en.encode(d,o.reactions),e.uint.encode(d,n),o.editedAt&&e.uint.encode(d,o.editedAt)},decode:d=>({id:Ao.decode(d),total:e.uint.decode(d),reactions:en.decode(d),editedAt:1&e.uint.decode(d)?e.uint.decode(d):0})},on=de,nn={preencode(d,o){on.preencode(d,o.header),n.preencode(d,o.oplog),e.string.preencode(d,o.reaction)},encode(d,o){on.encode(d,o.header),n.encode(d,o.oplog),e.string.encode(d,o.reaction)},decode:d=>({header:on.decode(d),oplog:n.decode(d),reaction:e.string.decode(d)})},cn=de,rn={preencode(d,o){cn.preencode(d,o.header),n.preencode(d,o.oplog),e.string.preencode(d,o.reaction)},encode(d,o){cn.encode(d,o.header),n.encode(d,o.oplog),e.string.encode(d,o.reaction)},decode:d=>({header:cn.decode(d),oplog:n.decode(d),reaction:e.string.decode(d)})},tn=de,an=e.frame(_),sn={preencode(d,o){tn.preencode(d,o.header),e.uint.preencode(d,o.key),an.preencode(d,o.config)},encode(d,o){tn.encode(d,o.header),e.uint.encode(d,o.key),an.encode(d,o.config)},decode:d=>({header:tn.decode(d),key:e.uint.decode(d),config:an.decode(d)})},pn={preencode(d,o){e.fixed32.preencode(d,o.memberKey),e.string.preencode(d,o.displayName),d.end++,o.avatar&&el.preencode(d,o.avatar)},encode(d,o){const n=o.avatar?1:0;e.fixed32.encode(d,o.memberKey),e.string.encode(d,o.displayName),e.uint.encode(d,n),o.avatar&&el.encode(d,o.avatar)},decode:d=>({memberKey:e.fixed32.decode(d),displayName:e.string.decode(d),avatar:1&e.uint.decode(d)?el.decode(d):null})},un={preencode(d,o){e.fixed32.preencode(d,o.key),d.end++,o.username&&e.string.preencode(d,o.username)},encode(d,o){const n=o.username?1:0;e.fixed32.encode(d,o.key),e.uint.encode(d,n),o.username&&e.string.encode(d,o.username)},decode:d=>({key:e.fixed32.decode(d),username:1&e.uint.decode(d)?e.string.decode(d):null})},ln=e.frame(un),fn={preencode(d,o){e.fixed32.preencode(d,o.publicKey),d.end++,o.discoveryCoreKey&&e.fixed32.preencode(d,o.discoveryCoreKey),o.userRegistry&&ln.preencode(d,o.userRegistry)},encode(d,o){const n=(o.discoveryCoreKey?1:0)|(o.userRegistry?2:0);e.fixed32.encode(d,o.publicKey),e.uint.encode(d,n),o.discoveryCoreKey&&e.fixed32.encode(d,o.discoveryCoreKey),o.userRegistry&&ln.encode(d,o.userRegistry)},decode(d){const o=e.fixed32.decode(d),n=e.uint.decode(d);return{publicKey:o,discoveryCoreKey:1&n?e.fixed32.decode(d):null,userRegistry:2&n?ln.decode(d):null}}},mn=de,yn=e.frame(W),xn=e.frame(G),bn=an,vn=e.frame(fn),gn=he,Kn=e.array(e.frame(me)),kn={preencode(e,d){mn.preencode(e,d.header),yn.preencode(e,d.digest),xn.preencode(e,d.capabilities),e.end++,d.config&&bn.preencode(e,d.config),d.identity&&vn.preencode(e,d.identity),d.bootstrapDevice&&gn.preencode(e,d.bootstrapDevice),d.initialMembers&&Kn.preencode(e,d.initialMembers)},encode(d,o){const n=(o.config?1:0)|(o.identity?2:0)|(o.bootstrapDevice?4:0)|(o.initialMembers?8:0);mn.encode(d,o.header),yn.encode(d,o.digest),xn.encode(d,o.capabilities),e.uint.encode(d,n),o.config&&bn.encode(d,o.config),o.identity&&vn.encode(d,o.identity),o.bootstrapDevice&&gn.encode(d,o.bootstrapDevice),o.initialMembers&&Kn.encode(d,o.initialMembers)},decode(d){const o=mn.decode(d),n=yn.decode(d),c=xn.decode(d),r=e.uint.decode(d);return{header:o,digest:n,capabilities:c,config:1&r?bn.decode(d):null,identity:2&r?vn.decode(d):null,bootstrapDevice:4&r?gn.decode(d):null,initialMembers:8&r?Kn.decode(d):null}}},hn=de,wn={preencode(d,o){hn.preencode(d,o.header),e.uint.preencode(d,o.version)},encode(d,o){hn.encode(d,o.header),e.uint.encode(d,o.version)},decode:d=>({header:hn.decode(d),version:e.uint.decode(d)})},Pn=de,Rn={preencode(o,n){Pn.preencode(o,n.header),e.uint.preencode(o,n.from),e.uint.preencode(o,n.to),o.end++,d>=5&&n.buildType&&Dp.preencode(o,n.buildType)},encode(o,n){const c=d>=5&&n.buildType?1:0;Pn.encode(o,n.header),e.uint.encode(o,n.from),e.uint.encode(o,n.to),e.uint.encode(o,c),d>=5&&n.buildType&&Dp.encode(o,n.buildType)},decode(o){const n=Pn.decode(o),c=e.uint.decode(o),r=e.uint.decode(o),t=o.start<o.end?e.uint.decode(o):0;return{header:n,from:c,to:r,buildType:d>=5&&1&t?Dp.decode(o):null}}},Tn={RoomType:1,IsExperimental:2,IsJoiningDisabled:3,IsAppendingDisabled:4,IsCallingDisabled:5,IsMembershipEventsDisabled:6,IsAttachmentsDisabled:7,IsLinksDisabled:8,IsRoomInviteHidden:9},An={preencode(e,d){e.end++},encode(d,o){if(o>9)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},Sn=de,In=J,Mn={preencode(d,o){Sn.preencode(d,o.header),e.uint.preencode(d,o.key),In.preencode(d,o.settings)},encode(d,o){Sn.encode(d,o.header),e.uint.encode(d,o.key),In.encode(d,o.settings)},decode:d=>({header:Sn.decode(d),key:e.uint.decode(d),settings:In.decode(d)})},Fn=de,qn={preencode(d,o){Fn.preencode(d,o.header),e.uint.preencode(d,o.value)},encode(d,o){Fn.encode(d,o.header),e.uint.encode(d,o.value)},decode:d=>({header:Fn.decode(d),value:e.uint.decode(d)})},Cn={preencode(d,o){e.uint.preencode(d,o.key),e.uint.preencode(d,o.value)},encode(d,o){e.uint.encode(d,o.key),e.uint.encode(d,o.value)},decode:d=>({key:e.uint.decode(d),value:e.uint.decode(d)})},Vn={Flag:1},Hn={preencode(e,d){e.end++},encode(d,o){if(o>1)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},Dn={preencode(d,o){Ao.preencode(d,o.id),e.fixed32.preencode(d,o.sender),e.uint.preencode(d,o.clock),Hn.preencode(d,o.label)},encode(d,o){Ao.encode(d,o.id),e.fixed32.encode(d,o.sender),e.uint.encode(d,o.clock),Hn.encode(d,o.label)},decode:d=>({id:Ao.decode(d),sender:e.fixed32.decode(d),clock:e.uint.decode(d),label:Hn.decode(d)})},Ln=de,jn={preencode(e,d){Ln.preencode(e,d.header),n.preencode(e,d.oplog),Hn.preencode(e,d.label)},encode(e,d){Ln.encode(e,d.header),n.encode(e,d.oplog),Hn.encode(e,d.label)},decode:e=>({header:Ln.decode(e),oplog:n.decode(e),label:Hn.decode(e)})},En=de,Bn={preencode(e,d){En.preencode(e,d.header),n.preencode(e,d.oplog),Hn.preencode(e,d.label)},encode(e,d){En.encode(e,d.header),n.encode(e,d.oplog),Hn.encode(e,d.label)},decode:e=>({header:En.decode(e),oplog:n.decode(e),label:Hn.decode(e)})},zn={preencode(d,o){Hn.preencode(d,o.label),e.uint.preencode(d,o.count)},encode(d,o){Hn.encode(d,o.label),e.uint.encode(d,o.count)},decode:d=>({label:Hn.decode(d),count:e.uint.decode(d)})},On=e.array(e.frame(zn)),Nn={preencode(d,o){Ao.preencode(d,o.id),e.uint.preencode(d,o.total),On.preencode(d,o.labels),e.uint.preencode(d,o.editedAt),d.end++,o.flagsClock&&e.uint.preencode(d,o.flagsClock),o.version&&e.uint.preencode(d,o.version)},encode(d,o){const n=(o.flagsClock?1:0)|(o.version?2:0)|(o.isDeleted?4:0);Ao.encode(d,o.id),e.uint.encode(d,o.total),On.encode(d,o.labels),e.uint.encode(d,o.editedAt),e.uint.encode(d,n),o.flagsClock&&e.uint.encode(d,o.flagsClock),o.version&&e.uint.encode(d,o.version)},decode(d){const o=Ao.decode(d),n=e.uint.decode(d),c=On.decode(d),r=e.uint.decode(d),t=e.uint.decode(d);return{id:o,total:n,labels:c,editedAt:r,flagsClock:1&t?e.uint.decode(d):0,version:2&t?e.uint.decode(d):0,isDeleted:!!(4&t)}}},Un=de,Jn={preencode(d,o){Un.preencode(d,o.header),e.uint.preencode(d,o.length)},encode(d,o){Un.encode(d,o.header),e.uint.encode(d,o.length)},decode:d=>({header:Un.decode(d),length:e.uint.decode(d)})},Wn={preencode(d,o){e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.length)},encode(d,o){e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.length)},decode:d=>({memberKey:e.fixed32.decode(d),length:e.uint.decode(d)})},Gn=ee,Qn=e.frame(be),Xn={preencode(o,n){e.fixed32.preencode(o,n.memberKey),dl.preencode(o,n.status),o.end++,n.mailbox&&e.fixed32.preencode(o,n.mailbox),n.roomKey&&e.fixed32.preencode(o,n.roomKey),d>=8&&n.contactInfo&&Qn.preencode(o,n.contactInfo),d>=8&&n.version&&e.uint.preencode(o,n.version),d>=10&&n.alias&&e.string.preencode(o,n.alias)},encode(o,n){const c=(n.mailbox?1:0)|(n.roomKey?2:0)|(d>=8&&n.contactInfo?4:0)|(d>=8&&n.version?8:0)|(d>=10&&n.alias?16:0);e.fixed32.encode(o,n.memberKey),dl.encode(o,n.status),e.uint.encode(o,c),n.mailbox&&e.fixed32.encode(o,n.mailbox),n.roomKey&&e.fixed32.encode(o,n.roomKey),d>=8&&n.contactInfo&&Qn.encode(o,n.contactInfo),d>=8&&n.version&&e.uint.encode(o,n.version),d>=10&&n.alias&&e.string.encode(o,n.alias)},decode(o){const n=e.fixed32.decode(o),c=dl.decode(o),r=e.uint.decode(o);return{memberKey:n,status:c,mailbox:1&r?e.fixed32.decode(o):null,roomKey:2&r?e.fixed32.decode(o):null,contactInfo:d>=8&&4&r?Qn.decode(o):null,version:d>=8&&8&r?e.uint.decode(o):0,alias:d>=10&&16&r?e.string.decode(o):null}}},Yn={preencode(d,n){e.fixed32.preencode(d,n.roomKey),e.buffer.preencode(d,n.encryptionKey),e.fixed32.preencode(d,n.seed),o.preencode(d,n.initiator),e.fixed32.preencode(d,n.fastForwardTo)},encode(d,n){e.fixed32.encode(d,n.roomKey),e.buffer.encode(d,n.encryptionKey),e.fixed32.encode(d,n.seed),o.encode(d,n.initiator),e.fixed32.encode(d,n.fastForwardTo)},decode:d=>({roomKey:e.fixed32.decode(d),encryptionKey:e.buffer.decode(d),seed:e.fixed32.decode(d),initiator:o.decode(d),fastForwardTo:e.fixed32.decode(d)})},Zn=e.array(e.frame(Yn)),$n=$,_n={preencode(e,d){Zn.preencode(e,d.sharedRooms),$n.preencode(e,d.blockedContacts)},encode(e,d){Zn.encode(e,d.sharedRooms),$n.encode(e,d.blockedContacts)},decode:e=>({sharedRooms:Zn.decode(e),blockedContacts:$n.decode(e)})},ec=vn,dc={preencode(e,d){ec.preencode(e,d.identity)},encode(e,d){ec.encode(e,d.identity)},decode:e=>({identity:ec.decode(e)})},oc={preencode(d,o){e.uint.preencode(d,o.rooms),e.uint.preencode(d,o.contacts)},encode(d,o){e.uint.encode(d,o.rooms),e.uint.encode(d,o.contacts)},decode:d=>({rooms:e.uint.decode(d),contacts:e.uint.decode(d)})},nc={preencode(d,o){e.uint.preencode(d,o.rooms),e.uint.preencode(d,o.contactRequests)},encode(d,o){e.uint.encode(d,o.rooms),e.uint.encode(d,o.contactRequests)},decode:d=>({rooms:e.uint.decode(d),contactRequests:e.uint.decode(d)})},cc={preencode(d,o){e.buffer.preencode(d,o.entropy)},encode(d,o){e.buffer.encode(d,o.entropy)},decode:d=>({entropy:e.buffer.decode(d)})},rc={preencode(d,o){e.fixed32.preencode(d,o.publicKey),e.fixed32.preencode(d,o.devicePublicKey),e.fixed32.preencode(d,o.writerKey)},encode(d,o){e.fixed32.encode(d,o.publicKey),e.fixed32.encode(d,o.devicePublicKey),e.fixed32.encode(d,o.writerKey)},decode:d=>({publicKey:e.fixed32.decode(d),devicePublicKey:e.fixed32.decode(d),writerKey:e.fixed32.decode(d)})},tc=e.frame(rc),ic={preencode(n,c){e.fixed32.preencode(n,c.id),e.fixed32.preencode(n,c.invitationSeed),e.fixed32.preencode(n,c.mailbox),r.preencode(n,c.responseKeyPair),o.preencode(n,c.initiator),o.preencode(n,c.inviter),n.end++,c.identity&&tc.preencode(n,c.identity),d>=5&&c.buildType&&Dp.preencode(n,c.buildType),d>=13&&c.link&&o.preencode(n,c.link)},encode(n,c){const t=(c.identity?1:0)|(d>=5&&c.buildType?2:0)|(d>=13&&c.link?4:0);e.fixed32.encode(n,c.id),e.fixed32.encode(n,c.invitationSeed),e.fixed32.encode(n,c.mailbox),r.encode(n,c.responseKeyPair),o.encode(n,c.initiator),o.encode(n,c.inviter),e.uint.encode(n,t),c.identity&&tc.encode(n,c.identity),d>=5&&c.buildType&&Dp.encode(n,c.buildType),d>=13&&c.link&&o.encode(n,c.link)},decode(n){const c=e.fixed32.decode(n),t=e.fixed32.decode(n),i=e.fixed32.decode(n),a=r.decode(n),s=o.decode(n),p=o.decode(n),u=e.uint.decode(n);return{id:c,invitationSeed:t,mailbox:i,responseKeyPair:a,initiator:s,inviter:p,identity:1&u?tc.decode(n):null,buildType:d>=5&&2&u?Dp.decode(n):null,link:d>=13&&4&u?o.decode(n):null}}},ac=de,sc={preencode(d,o){ac.preencode(d,o.header),e.buffer.preencode(d,o.blindResponse)},encode(d,o){ac.encode(d,o.header),e.buffer.encode(d,o.blindResponse)},decode:d=>({header:ac.decode(d),blindResponse:e.buffer.decode(d)})},pc=de,uc=e.frame(ic),lc={preencode(e,d){pc.preencode(e,d.header),uc.preencode(e,d.invitation)},encode(e,d){pc.encode(e,d.header),uc.encode(e,d.invitation)},decode:e=>({header:pc.decode(e),invitation:uc.decode(e)})},fc=de,mc={preencode(d,o){fc.preencode(d,o.header),e.fixed32.preencode(d,o.id)},encode(d,o){fc.encode(d,o.header),e.fixed32.encode(d,o.id)},decode:d=>({header:fc.decode(d),id:e.fixed32.decode(d)})},yc={preencode(d,o){e.fixed32.preencode(d,o.publicKey),e.fixed32.preencode(d,o.devicePublicKey),d.end++,o.privateProfileKey&&e.fixed32.preencode(d,o.privateProfileKey),o.deviceKeyPair&&r.preencode(d,o.deviceKeyPair),e.buffer.preencode(d,o.deviceProof)},encode(d,o){const n=(o.privateProfileKey?1:0)|(o.deviceKeyPair?2:0);e.fixed32.encode(d,o.publicKey),e.fixed32.encode(d,o.devicePublicKey),e.uint.encode(d,n),o.privateProfileKey&&e.fixed32.encode(d,o.privateProfileKey),o.deviceKeyPair&&r.encode(d,o.deviceKeyPair),e.buffer.encode(d,o.deviceProof)},decode(d){const o=e.fixed32.decode(d),n=e.fixed32.decode(d),c=e.uint.decode(d);return{publicKey:o,devicePublicKey:n,privateProfileKey:1&c?e.fixed32.decode(d):null,deviceKeyPair:2&c?r.decode(d):null,deviceProof:e.buffer.decode(d)}}},xc={preencode(d,o){e.fixed32.preencode(d,o.publicKey),e.fixed32.preencode(d,o.writerKey),e.fixed32.preencode(d,o.devicePublicKey),d.end++,o.privateProfileKey&&e.fixed32.preencode(d,o.privateProfileKey)},encode(d,o){const n=o.privateProfileKey?1:0;e.fixed32.encode(d,o.publicKey),e.fixed32.encode(d,o.writerKey),e.fixed32.encode(d,o.devicePublicKey),e.uint.encode(d,n),o.privateProfileKey&&e.fixed32.encode(d,o.privateProfileKey)},decode:d=>({publicKey:e.fixed32.decode(d),writerKey:e.fixed32.decode(d),devicePublicKey:e.fixed32.decode(d),privateProfileKey:1&e.uint.decode(d)?e.fixed32.decode(d):null})},bc={preencode(o,n){o.end++,d>=11&&n.roomSnoozeTime&&e.uint.preencode(o,n.roomSnoozeTime)},encode(o,n){const c=(n.isActive?1:0)|(n.isFullyMuted?2:0)|(n.isMentionsOnlyMuted?4:0)|(n.isReadOnly?8:0)|(d>=3&&n.isFavorite?16:0)|(d>=7&&n.isUnread?32:0)|(d>=11&&n.roomSnoozeTime?64:0);e.uint.encode(o,c),d>=11&&n.roomSnoozeTime&&e.uint.encode(o,n.roomSnoozeTime)},decode(o){const n=e.uint.decode(o);return{isActive:!!(1&n),isFullyMuted:!!(2&n),isMentionsOnlyMuted:!!(4&n),isReadOnly:!!(8&n),isFavorite:d>=3&&!!(16&n),isUnread:d>=7&&!!(32&n),roomSnoozeTime:d>=11&&64&n?e.uint.decode(o):0}}},vc=e.frame(bc),gc=e.frame(yc),Kc=tc,kc={preencode(n,c){e.fixed32.preencode(n,c.roomKey),e.buffer.preencode(n,c.encryptionKey),e.fixed32.preencode(n,c.mailbox),vc.preencode(n,c.status),e.uint.preencode(n,c.clock),n.end++,c.initiator&&o.preencode(n,c.initiator),c.fastForwardTo&&e.fixed32.preencode(n,c.fastForwardTo),c.identitySwap&&gc.preencode(n,c.identitySwap),c.identitySwapV2&&Kc.preencode(n,c.identitySwapV2),c.contact&&e.fixed32.preencode(n,c.contact),d>=13&&c.bootFrom&&o.preencode(n,c.bootFrom),d>=15&&c.activeClock&&e.uint.preencode(n,c.activeClock)},encode(n,c){const r=(c.initiator?1:0)|(c.fastForwardTo?2:0)|(c.identitySwap?4:0)|(c.identitySwapV2?8:0)|(c.contact?16:0)|(d>=13&&c.bootFrom?32:0)|(d>=15&&c.activeClock?64:0);e.fixed32.encode(n,c.roomKey),e.buffer.encode(n,c.encryptionKey),e.fixed32.encode(n,c.mailbox),vc.encode(n,c.status),e.uint.encode(n,c.clock),e.uint.encode(n,r),c.initiator&&o.encode(n,c.initiator),c.fastForwardTo&&e.fixed32.encode(n,c.fastForwardTo),c.identitySwap&&gc.encode(n,c.identitySwap),c.identitySwapV2&&Kc.encode(n,c.identitySwapV2),c.contact&&e.fixed32.encode(n,c.contact),d>=13&&c.bootFrom&&o.encode(n,c.bootFrom),d>=15&&c.activeClock&&e.uint.encode(n,c.activeClock)},decode(n){const c=e.fixed32.decode(n),r=e.buffer.decode(n),t=e.fixed32.decode(n),i=vc.decode(n),a=e.uint.decode(n),s=e.uint.decode(n);return{roomKey:c,encryptionKey:r,mailbox:t,status:i,clock:a,initiator:1&s?o.decode(n):null,fastForwardTo:2&s?e.fixed32.decode(n):null,identitySwap:4&s?gc.decode(n):null,identitySwapV2:8&s?Kc.decode(n):null,contact:16&s?e.fixed32.decode(n):null,bootFrom:d>=13&&32&s?o.decode(n):null,activeClock:d>=15&&64&s?e.uint.decode(n):0}}},hc=de,wc={preencode(d,n){hc.preencode(d,n.header),e.fixed32.preencode(d,n.roomKey),e.buffer.preencode(d,n.encryptionKey),e.fixed32.preencode(d,n.mailbox),d.end++,n.fastForwardTo&&e.fixed32.preencode(d,n.fastForwardTo),n.initiator&&o.preencode(d,n.initiator),n.dm&&e.fixed32.preencode(d,n.dm)},encode(d,n){const c=(n.fastForwardTo?1:0)|(n.initiator?2:0)|(n.dm?4:0)|(n.isReadOnly?8:0);hc.encode(d,n.header),e.fixed32.encode(d,n.roomKey),e.buffer.encode(d,n.encryptionKey),e.fixed32.encode(d,n.mailbox),e.uint.encode(d,c),n.fastForwardTo&&e.fixed32.encode(d,n.fastForwardTo),n.initiator&&o.encode(d,n.initiator),n.dm&&e.fixed32.encode(d,n.dm)},decode(d){const n=hc.decode(d),c=e.fixed32.decode(d),r=e.buffer.decode(d),t=e.fixed32.decode(d),i=e.uint.decode(d);return{header:n,roomKey:c,encryptionKey:r,mailbox:t,fastForwardTo:1&i?e.fixed32.decode(d):null,initiator:2&i?o.decode(d):null,dm:4&i?e.fixed32.decode(d):null,isReadOnly:!!(8&i)}}},Pc=de,Rc={preencode(d,o){Pc.preencode(d,o.header),e.fixed32.preencode(d,o.discoveryKey)},encode(d,o){Pc.encode(d,o.header),e.fixed32.encode(d,o.discoveryKey)},decode:d=>({header:Pc.decode(d),discoveryKey:e.fixed32.decode(d)})},Tc=de,Ac=vc,Sc={preencode(d,o){Tc.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey),e.uint.preencode(d,o.key),Ac.preencode(d,o.status)},encode(d,o){Tc.encode(d,o.header),e.fixed32.encode(d,o.roomKey),e.uint.encode(d,o.key),Ac.encode(d,o.status)},decode:d=>({header:Tc.decode(d),roomKey:e.fixed32.decode(d),key:e.uint.decode(d),status:Ac.decode(d)})},Ic={preencode(e,d){e.end++},encode(o,n){const c=(n.isBlocked?1:0)|(d>=8&&n.isActive?2:0);e.uint.encode(o,c)},decode(o){const n=e.uint.decode(o);return{isBlocked:!!(1&n),isActive:d>=8&&!!(2&n)}}},Mc=Qn,Fc={preencode(o,n){e.fixed32.preencode(o,n.memberKey),e.uint.preencode(o,n.clock),ol.preencode(o,n.status),o.end++,n.mailbox&&e.fixed32.preencode(o,n.mailbox),n.roomKey&&e.fixed32.preencode(o,n.roomKey),d>=8&&n.contactInfo&&Mc.preencode(o,n.contactInfo),d>=10&&n.alias&&e.string.preencode(o,n.alias)},encode(o,n){const c=(n.mailbox?1:0)|(n.roomKey?2:0)|(d>=8&&n.contactInfo?4:0)|(d>=10&&n.alias?8:0);e.fixed32.encode(o,n.memberKey),e.uint.encode(o,n.clock),ol.encode(o,n.status),e.uint.encode(o,c),n.mailbox&&e.fixed32.encode(o,n.mailbox),n.roomKey&&e.fixed32.encode(o,n.roomKey),d>=8&&n.contactInfo&&Mc.encode(o,n.contactInfo),d>=10&&n.alias&&e.string.encode(o,n.alias)},decode(o){const n=e.fixed32.decode(o),c=e.uint.decode(o),r=ol.decode(o),t=e.uint.decode(o);return{memberKey:n,clock:c,status:r,mailbox:1&t?e.fixed32.decode(o):null,roomKey:2&t?e.fixed32.decode(o):null,contactInfo:d>=8&&4&t?Mc.decode(o):null,alias:d>=10&&8&t?e.string.decode(o):null}}},qc=de,Cc=e.frame(Xn),Vc={preencode(e,d){qc.preencode(e,d.header),Cc.preencode(e,d.contact)},encode(e,d){qc.encode(e,d.header),Cc.encode(e,d.contact)},decode:e=>({header:qc.decode(e),contact:Cc.decode(e)})},Hc=de,Dc={preencode(d,o){Hc.preencode(d,o.header),e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.key),nl.preencode(d,o.status)},encode(d,o){Hc.encode(d,o.header),e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.key),nl.encode(d,o.status)},decode:d=>({header:Hc.decode(d),memberKey:e.fixed32.decode(d),key:e.uint.decode(d),status:nl.decode(d)})},Lc=de,jc={preencode(d,o){Lc.preencode(d,o.header),e.fixed32.preencode(d,o.memberKey)},encode(d,o){Lc.encode(d,o.header),e.fixed32.encode(d,o.memberKey)},decode:d=>({header:Lc.decode(d),memberKey:e.fixed32.decode(d)})},Ec=de,Bc={preencode(d,o){Ec.preencode(d,o.header),e.fixed32.preencode(d,o.memberKey)},encode(d,o){Ec.encode(d,o.header),e.fixed32.encode(d,o.memberKey)},decode:d=>({header:Ec.decode(d),memberKey:e.fixed32.decode(d)})},zc={preencode(e,d){e.end++},encode(d,o){const n=(o.isPending?1:0)|(o.isAccepted?2:0)|(o.isRejected?4:0)|(o.isDiscarded?8:0)|(o.isSeen?16:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isPending:!!(1&o),isAccepted:!!(2&o),isRejected:!!(4&o),isDiscarded:!!(8&o),isSeen:!!(16&o)}}},Oc=we,Nc=e.frame(t),Uc={preencode(d,o){Oc.preencode(d,o.sender),Nc.preencode(d,o.keys),e.fixed32.preencode(d,o.mailbox),d.end++,o.message&&e.string.preencode(d,o.message)},encode(d,o){const n=o.message?1:0;Oc.encode(d,o.sender),Nc.encode(d,o.keys),e.fixed32.encode(d,o.mailbox),e.uint.encode(d,n),o.message&&e.string.encode(d,o.message)},decode:d=>({sender:Oc.decode(d),keys:Nc.decode(d),mailbox:e.fixed32.decode(d),message:1&e.uint.decode(d)?e.string.decode(d):null})},Jc=e.frame(Uc),Wc={preencode(e,d){Jc.preencode(e,d.body),te.preencode(e,d.attestation)},encode(e,d){Jc.encode(e,d.body),te.encode(e,d.attestation)},decode:e=>({body:Jc.decode(e),attestation:te.decode(e)})},Gc=fe,Qc=e.frame(zc),Xc=Nc,Yc=Qn,Zc={preencode(o,n){e.fixed32.preencode(o,n.memberKey),e.uint.preencode(o,n.clock),Gc.preencode(o,n.sender),Qc.preencode(o,n.status),Xc.preencode(o,n.keys),e.fixed32.preencode(o,n.mailbox),o.end++,n.message&&e.string.preencode(o,n.message),n.sentAt&&e.uint.preencode(o,n.sentAt),d>=8&&n.contactInfo&&Yc.preencode(o,n.contactInfo)},encode(o,n){const c=(n.message?1:0)|(n.sentAt?2:0)|(d>=8&&n.contactInfo?4:0);e.fixed32.encode(o,n.memberKey),e.uint.encode(o,n.clock),Gc.encode(o,n.sender),Qc.encode(o,n.status),Xc.encode(o,n.keys),e.fixed32.encode(o,n.mailbox),e.uint.encode(o,c),n.message&&e.string.encode(o,n.message),n.sentAt&&e.uint.encode(o,n.sentAt),d>=8&&n.contactInfo&&Yc.encode(o,n.contactInfo)},decode(o){const n=e.fixed32.decode(o),c=e.uint.decode(o),r=Gc.decode(o),t=Qc.decode(o),i=Xc.decode(o),a=e.fixed32.decode(o),s=e.uint.decode(o);return{memberKey:n,clock:c,sender:r,status:t,keys:i,mailbox:a,message:1&s?e.string.decode(o):null,sentAt:2&s?e.uint.decode(o):0,contactInfo:d>=8&&4&s?Yc.decode(o):null}}},$c=de,_c={preencode(d,o){$c.preencode(d,o.header),e.buffer.preencode(d,o.blindRequest)},encode(d,o){$c.encode(d,o.header),e.buffer.encode(d,o.blindRequest)},decode:d=>({header:$c.decode(d),blindRequest:e.buffer.decode(d)})},er=de,dr=Qc,or={preencode(d,o){er.preencode(d,o.header),e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.key),dr.preencode(d,o.status),d.end++,o.roomKey&&e.fixed32.preencode(d,o.roomKey)},encode(d,o){const n=o.roomKey?1:0;er.encode(d,o.header),e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.key),dr.encode(d,o.status),e.uint.encode(d,n),o.roomKey&&e.fixed32.encode(d,o.roomKey)},decode:d=>({header:er.decode(d),memberKey:e.fixed32.decode(d),key:e.uint.decode(d),status:dr.decode(d),roomKey:1&e.uint.decode(d)?e.fixed32.decode(d):null})},nr={preencode(d,o){e.uint.preencode(d,o.timestamp),e.fixed32.preencode(d,o.key),e.fixed32.preencode(d,o.mailbox)},encode(d,o){e.uint.encode(d,o.timestamp),e.fixed32.encode(d,o.key),e.fixed32.encode(d,o.mailbox)},decode:d=>({version:e.uint.decode(d),timestamp:e.uint.decode(d),key:e.fixed32.decode(d),mailbox:e.fixed32.decode(d)})},cr={preencode(d,o){const n=o.version??1;switch(e.uint.preencode(d,n),n){case 0:case 1:nr.preencode(d,o);break;default:throw new Error("Unsupported version")}},encode(d,o){const n=o.version??1;switch(e.uint.encode(d,n),n){case 0:case 1:nr.encode(d,o);break;default:throw new Error("Unsupported version")}},decode(d){const o=d.start,n=e.uint.decode(d);switch(d.start=o,n){case 0:case 1:return nr.decode(d);default:throw new Error("Unsupported version")}}},rr={preencode(d,o){e.fixed32.preencode(d,o.deviceKey),e.fixed32.preencode(d,o.key)},encode(d,o){e.fixed32.encode(d,o.deviceKey),e.fixed32.encode(d,o.key)},decode:d=>({deviceKey:e.fixed32.decode(d),key:e.fixed32.decode(d)})},tr=de,ir={preencode(d,o){tr.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){tr.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:tr.decode(d),key:e.fixed32.decode(d)})},ar=de,sr={preencode(d,o){ar.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){ar.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:ar.decode(d),key:e.fixed32.decode(d)})},pr={preencode(o,n){o.end++,d>=9&&n.profileSnoozeTime&&e.uint.preencode(o,n.profileSnoozeTime)},encode(o,n){const c=(n.disableReadReceipts?1:0)|(d>=7&&n.stripAttachmentMetadata?2:0)|(d>=9&&n.profileSnoozeTime?4:0);e.uint.encode(o,c),d>=9&&n.profileSnoozeTime&&e.uint.encode(o,n.profileSnoozeTime)},decode(o){const n=e.uint.decode(o);return{disableReadReceipts:!!(1&n),stripAttachmentMetadata:d>=7&&!!(2&n),profileSnoozeTime:d>=9&&4&n?e.uint.decode(o):0}}},ur={disableReadReceipts:"disableReadReceipts",stripAttachmentMetadata:"stripAttachmentMetadata",profileSnoozeTime:"profileSnoozeTime"},lr={preencode(e,d){e.end++},encode(d,o){switch(o){case"disableReadReceipts":e.uint.encode(d,1);break;case"stripAttachmentMetadata":e.uint.encode(d,2);break;case"profileSnoozeTime":e.uint.encode(d,3);break;default:throw new Error("Unknown enum")}},decode(d){switch(e.uint.decode(d)){case 1:return"disableReadReceipts";case 2:return"stripAttachmentMetadata";case 3:return"profileSnoozeTime";default:return null}}},fr=de,mr=e.frame(pr),yr={preencode(e,d){fr.preencode(e,d.header),lr.preencode(e,d.key),mr.preencode(e,d.settings)},encode(e,d){fr.encode(e,d.header),lr.encode(e,d.key),mr.encode(e,d.settings)},decode:e=>({header:fr.decode(e),key:lr.decode(e),settings:mr.decode(e)})},xr={preencode(d,o){e.fixed32.preencode(d,o.discoveryPublicKey),e.uint.preencode(d,o.timestamp),d.end++,o.lastSynced&&e.uint.preencode(d,o.lastSynced)},encode(d,o){const n=(o.lastSynced?1:0)|(o.dirty?2:0);e.fixed32.encode(d,o.discoveryPublicKey),e.uint.encode(d,o.timestamp),e.uint.encode(d,n),o.lastSynced&&e.uint.encode(d,o.lastSynced)},decode(d){const o=e.fixed32.decode(d),n=e.uint.decode(d),c=e.uint.decode(d);return{discoveryPublicKey:o,timestamp:n,lastSynced:1&c?e.uint.decode(d):0,dirty:!!(2&c)}}},br={preencode(d,o){e.uint.preencode(d,o.rooms),e.uint.preencode(d,o.activeRooms)},encode(d,o){e.uint.encode(d,o.rooms),e.uint.encode(d,o.activeRooms)},decode:d=>({rooms:e.uint.decode(d),activeRooms:e.uint.decode(d)})},vr=F,gr=$,Kr={preencode(e,d){e.end++,d.blockedMembers&&gr.preencode(e,d.blockedMembers)},encode(d,o){const n=o.blockedMembers?1:0;e.uint.encode(d,n),o.blockedMembers&&gr.encode(d,o.blockedMembers)},decode:d=>({blockedMembers:1&e.uint.decode(d)?gr.decode(d):null})},kr=e.frame(Q),hr=e.frame(Kr),wr={preencode(d,n){e.buffer.preencode(d,n.encryptionKey),e.fixed32.preencode(d,n.seed),kr.preencode(d,n.capabilities),o.preencode(d,n.initiator),e.fixed32.preencode(d,n.fastForwardTo),d.end++,n.privateProfile&&hr.preencode(d,n.privateProfile)},encode(d,n){const c=n.privateProfile?1:0;e.buffer.encode(d,n.encryptionKey),e.fixed32.encode(d,n.seed),kr.encode(d,n.capabilities),o.encode(d,n.initiator),e.fixed32.encode(d,n.fastForwardTo),e.uint.encode(d,c),n.privateProfile&&hr.encode(d,n.privateProfile)},decode:d=>({encryptionKey:e.buffer.decode(d),seed:e.fixed32.decode(d),capabilities:kr.decode(d),initiator:o.decode(d),fastForwardTo:e.fixed32.decode(d),privateProfile:1&e.uint.decode(d)?hr.decode(d):null})},Pr={preencode(d,o){d.end++,o.count&&e.uint.preencode(d,o.count)},encode(d,o){const n=o.count?1:0;e.uint.encode(d,n),o.count&&e.uint.encode(d,o.count)},decode:d=>({count:1&e.uint.decode(d)?e.uint.decode(d):0})},Rr=e.frame(wr),Tr={preencode(d,o){e.fixed32.preencode(d,o.roomKey),e.uint.preencode(d,o.priority),d.end++,o.v3&&Rr.preencode(d,o.v3),o.timestamp&&e.uint.preencode(d,o.timestamp)},encode(d,o){const n=(o.v3?1:0)|(o.errored?2:0)|(o.timestamp?4:0);e.fixed32.encode(d,o.roomKey),e.uint.encode(d,o.priority),e.uint.encode(d,n),o.v3&&Rr.encode(d,o.v3),o.timestamp&&e.uint.encode(d,o.timestamp)},decode(d){const o=e.fixed32.decode(d),n=e.uint.decode(d),c=e.uint.decode(d);return{roomKey:o,priority:n,v3:1&c?Rr.decode(d):null,errored:!!(2&c),timestamp:4&c?e.uint.decode(d):0}}},Ar={preencode(e,d){e.end++},encode(d,o){const n=o.isConfirmed?1:0;e.uint.encode(d,n)},decode:d=>({isConfirmed:!!(1&e.uint.decode(d))})},Sr={preencode(d,o){e.fixed32.preencode(d,o.privateProfileKey)},encode(d,o){e.fixed32.encode(d,o.privateProfileKey)},decode:d=>({privateProfileKey:e.fixed32.decode(d)})},Ir=e.frame(Ar),Mr=gc,Fr=e.frame(xc),qr={preencode(o,n){e.fixed32.preencode(o,n.publicKey),e.fixed32.preencode(o,n.privateProfileKey),r.preencode(o,n.deviceKeyPair),e.buffer.preencode(o,n.deviceProof),Ir.preencode(o,n.status),o.end++,n.entropy&&e.buffer.preencode(o,n.entropy),n.swap&&Mr.preencode(o,n.swap),n.swapV2&&Fr.preencode(o,n.swapV2),d>=7&&n.proofShortenedAt&&e.uint.preencode(o,n.proofShortenedAt)},encode(o,n){const c=(n.entropy?1:0)|(n.swap?2:0)|(n.swapV2?4:0)|(d>=7&&n.proofShortenedAt?8:0);e.fixed32.encode(o,n.publicKey),e.fixed32.encode(o,n.privateProfileKey),r.encode(o,n.deviceKeyPair),e.buffer.encode(o,n.deviceProof),Ir.encode(o,n.status),e.uint.encode(o,c),n.entropy&&e.buffer.encode(o,n.entropy),n.swap&&Mr.encode(o,n.swap),n.swapV2&&Fr.encode(o,n.swapV2),d>=7&&n.proofShortenedAt&&e.uint.encode(o,n.proofShortenedAt)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),t=r.decode(o),i=e.buffer.decode(o),a=Ir.decode(o),s=e.uint.decode(o);return{publicKey:n,privateProfileKey:c,deviceKeyPair:t,deviceProof:i,status:a,entropy:1&s?e.buffer.decode(o):null,swap:2&s?Mr.decode(o):null,swapV2:4&s?Fr.decode(o):null,proofShortenedAt:d>=7&&8&s?e.uint.decode(o):0}}},Cr={RestoreIdentity:1,CreateRoom:2,LeaveRoom:3,ClearRoom:4,JoinRoomInvitation:5,JoinRoomKeys:6,JoinRoomResponse:7,SendContactRequest:8,TestFastTask:9,TestSlowTask:10,TestErrorTask:11},Vr={preencode(e,d){e.end++},encode(d,o){if(o>11)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},Hr={preencode(d,n){e.fixed32.preencode(d,n.roomKey),e.buffer.preencode(d,n.encryptionKey),d.end++,n.fastForwardTo&&e.fixed32.preencode(d,n.fastForwardTo),n.initiator&&o.preencode(d,n.initiator)},encode(d,n){const c=(n.fastForwardTo?1:0)|(n.initiator?2:0);e.fixed32.encode(d,n.roomKey),e.buffer.encode(d,n.encryptionKey),e.uint.encode(d,c),n.fastForwardTo&&e.fixed32.encode(d,n.fastForwardTo),n.initiator&&o.encode(d,n.initiator)},decode(d){const n=e.fixed32.decode(d),c=e.buffer.decode(d),r=e.uint.decode(d);return{roomKey:n,encryptionKey:c,fastForwardTo:1&r?e.fixed32.decode(d):null,initiator:2&r?o.decode(d):null}}},Dr=uc,Lr={preencode(e,d){Dr.preencode(e,d.invitation)},encode(e,d){Dr.encode(e,d.invitation)},decode:e=>({invitation:Dr.decode(e)})},jr={preencode(d,o){e.fixed32.preencode(d,o.mailbox),r.preencode(d,o.keyPair),e.buffer.preencode(d,o.response)},encode(d,o){e.fixed32.encode(d,o.mailbox),r.encode(d,o.keyPair),e.buffer.encode(d,o.response)},decode:d=>({mailbox:e.fixed32.decode(d),keyPair:r.decode(d),response:e.buffer.decode(d)})},Er=ee,Br={preencode(d,n){e.fixed32.preencode(d,n.roomKey),e.buffer.preencode(d,n.encryptionKey),d.end++,n.fastForwardTo&&e.fixed32.preencode(d,n.fastForwardTo),n.initiator&&o.preencode(d,n.initiator),n.mailbox&&e.fixed32.preencode(d,n.mailbox)},encode(d,n){const c=(n.fastForwardTo?1:0)|(n.initiator?2:0)|(n.mailbox?4:0);e.fixed32.encode(d,n.roomKey),e.buffer.encode(d,n.encryptionKey),e.uint.encode(d,c),n.fastForwardTo&&e.fixed32.encode(d,n.fastForwardTo),n.initiator&&o.encode(d,n.initiator),n.mailbox&&e.fixed32.encode(d,n.mailbox)},decode(d){const n=e.fixed32.decode(d),c=e.buffer.decode(d),r=e.uint.decode(d);return{roomKey:n,encryptionKey:c,fastForwardTo:1&r?e.fixed32.decode(d):null,initiator:2&r?o.decode(d):null,mailbox:4&r?e.fixed32.decode(d):null}}},zr=e.frame(Br),Or={preencode(o,n){zr.preencode(o,n.keys),o.end++,d>=15&&n.activeClock&&e.uint.preencode(o,n.activeClock)},encode(o,n){const c=(d>=15&&n.activeClock?1:0)|(d>=15&&n.isReadOnly?2:0);zr.encode(o,n.keys),e.uint.encode(o,c),d>=15&&n.activeClock&&e.uint.encode(o,n.activeClock)},decode(o){const n=zr.decode(o),c=o.start<o.end?e.uint.decode(o):0;return{keys:n,activeClock:d>=15&&1&c?e.uint.decode(o):0,isReadOnly:d>=15&&!!(2&c)}}},Nr=e.frame(kn),Ur={preencode(d,n){e.fixed32.preencode(d,n.roomKey),e.buffer.preencode(d,n.encryptionKey),d.end++,n.fastForwardTo&&e.fixed32.preencode(d,n.fastForwardTo),n.initiator&&o.preencode(d,n.initiator),n.mailbox&&e.fixed32.preencode(d,n.mailbox),n.keyPair&&r.preencode(d,n.keyPair),n.genesis&&Nr.preencode(d,n.genesis)},encode(d,n){const c=(n.fastForwardTo?1:0)|(n.initiator?2:0)|(n.mailbox?4:0)|(n.keyPair?8:0)|(n.genesis?16:0)|(n.isPrivateProfile?32:0);e.fixed32.encode(d,n.roomKey),e.buffer.encode(d,n.encryptionKey),e.uint.encode(d,c),n.fastForwardTo&&e.fixed32.encode(d,n.fastForwardTo),n.initiator&&o.encode(d,n.initiator),n.mailbox&&e.fixed32.encode(d,n.mailbox),n.keyPair&&r.encode(d,n.keyPair),n.genesis&&Nr.encode(d,n.genesis)},decode(d){const n=e.fixed32.decode(d),c=e.buffer.decode(d),t=e.uint.decode(d);return{roomKey:n,encryptionKey:c,fastForwardTo:1&t?e.fixed32.decode(d):null,initiator:2&t?o.decode(d):null,mailbox:4&t?e.fixed32.decode(d):null,keyPair:8&t?r.decode(d):null,genesis:16&t?Nr.decode(d):null,isPrivateProfile:!!(32&t)}}},Jr={preencode(d,o){e.fixed32.preencode(d,o.roomKey),d.end++},encode(d,o){const n=o.isGossiped?1:0;e.fixed32.encode(d,o.roomKey),e.uint.encode(d,n)},decode:d=>({roomKey:e.fixed32.decode(d),isGossiped:!!(1&e.uint.decode(d))})},Wr={preencode(d,o){e.fixed32.preencode(d,o.roomKey)},encode(d,o){e.fixed32.encode(d,o.roomKey)},decode:d=>({roomKey:e.fixed32.decode(d)})},Gr={preencode(d,o){e.string.preencode(d,o.mnemonic),d.end++,o.profileDiscoveryTimeout&&e.uint.preencode(d,o.profileDiscoveryTimeout)},encode(d,o){const n=(o.profileDiscoveryTimeout?1:0)|(o.recover?2:0);e.string.encode(d,o.mnemonic),e.uint.encode(d,n),o.profileDiscoveryTimeout&&e.uint.encode(d,o.profileDiscoveryTimeout)},decode(d){const o=e.string.decode(d),n=e.uint.decode(d);return{mnemonic:o,profileDiscoveryTimeout:1&n?e.uint.decode(d):0,recover:!!(2&n)}}},Qr=Qn,Xr={preencode(d,o){e.fixed32.preencode(d,o.roomKey),e.fixed32.preencode(d,o.memberKey),d.end++,o.message&&e.string.preencode(d,o.message),o.contactInfo&&Qr.preencode(d,o.contactInfo)},encode(d,o){const n=(o.message?1:0)|(o.contactInfo?2:0);e.fixed32.encode(d,o.roomKey),e.fixed32.encode(d,o.memberKey),e.uint.encode(d,n),o.message&&e.string.encode(d,o.message),o.contactInfo&&Qr.encode(d,o.contactInfo)},decode(d){const o=e.fixed32.decode(d),n=e.fixed32.decode(d),c=e.uint.decode(d);return{roomKey:o,memberKey:n,message:1&c?e.string.decode(d):null,contactInfo:2&c?Qr.decode(d):null}}},Yr={preencode(d,o){e.fixed32.preencode(d,o.key),d.end++},encode(d,o){const n=o.isPrivateProfile?1:0;e.fixed32.encode(d,o.key),e.uint.encode(d,n)},decode:d=>({key:e.fixed32.decode(d),isPrivateProfile:!!(1&e.uint.decode(d))})},Zr=e.frame(Gr),$r=e.frame(Ur),_r=e.frame(Jr),et=e.frame(Wr),dt=e.frame(Lr),ot=e.frame(Or),nt=e.frame(jr),ct=e.frame(Xr),rt=e.frame(Yr),tt={preencode(d,o){const n=(o.restoreIdentity?1:0)|(o.createRoom?2:0)|(o.leaveRoom?4:0)|(o.clearRoom?8:0)|(o.joinRoomInvitation?16:0)|(o.joinRoomKeys?32:0)|(o.joinRoomResponse?64:0)|(o.sendContactRequest?128:0)|(o.migrateV2Room?256:0);e.fixed32.preencode(d,o.discoveryKey),e.uint.preencode(d,o.priority),e.uint.preencode(d,o.timestamp),e.uint.preencode(d,o.type),e.uint.preencode(d,n),o.restoreIdentity&&Zr.preencode(d,o.restoreIdentity),o.createRoom&&$r.preencode(d,o.createRoom),o.leaveRoom&&_r.preencode(d,o.leaveRoom),o.clearRoom&&et.preencode(d,o.clearRoom),o.joinRoomInvitation&&dt.preencode(d,o.joinRoomInvitation),o.joinRoomKeys&&ot.preencode(d,o.joinRoomKeys),o.joinRoomResponse&&nt.preencode(d,o.joinRoomResponse),o.sendContactRequest&&ct.preencode(d,o.sendContactRequest),o.migrateV2Room&&rt.preencode(d,o.migrateV2Room)},encode(d,o){const n=(o.restoreIdentity?1:0)|(o.createRoom?2:0)|(o.leaveRoom?4:0)|(o.clearRoom?8:0)|(o.joinRoomInvitation?16:0)|(o.joinRoomKeys?32:0)|(o.joinRoomResponse?64:0)|(o.sendContactRequest?128:0)|(o.migrateV2Room?256:0);e.fixed32.encode(d,o.discoveryKey),e.uint.encode(d,o.priority),e.uint.encode(d,o.timestamp),e.uint.encode(d,o.type),e.uint.encode(d,n),o.restoreIdentity&&Zr.encode(d,o.restoreIdentity),o.createRoom&&$r.encode(d,o.createRoom),o.leaveRoom&&_r.encode(d,o.leaveRoom),o.clearRoom&&et.encode(d,o.clearRoom),o.joinRoomInvitation&&dt.encode(d,o.joinRoomInvitation),o.joinRoomKeys&&ot.encode(d,o.joinRoomKeys),o.joinRoomResponse&&nt.encode(d,o.joinRoomResponse),o.sendContactRequest&&ct.encode(d,o.sendContactRequest),o.migrateV2Room&&rt.encode(d,o.migrateV2Room)},decode(d){const o=e.fixed32.decode(d),n=e.uint.decode(d),c=e.uint.decode(d),r=e.uint.decode(d),t=e.uint.decode(d);return{discoveryKey:o,priority:n,timestamp:c,type:r,restoreIdentity:1&t?Zr.decode(d):null,createRoom:2&t?$r.decode(d):null,leaveRoom:4&t?_r.decode(d):null,clearRoom:8&t?et.decode(d):null,joinRoomInvitation:16&t?dt.decode(d):null,joinRoomKeys:32&t?ot.decode(d):null,joinRoomResponse:64&t?nt.decode(d):null,sendContactRequest:128&t?ct.decode(d):null,migrateV2Room:256&t?rt.decode(d):null}}},it=Oe,at={preencode(d,o){e.buffer.preencode(d,o.seed),it.preencode(d,o.invitation)},encode(d,o){e.buffer.encode(d,o.seed),it.encode(d,o.invitation)},decode:d=>({seed:e.buffer.decode(d),invitation:it.decode(d)})},st={preencode(e,d){e.end++},encode(d,o){const n=(o.isWritable?1:0)|(o.isReadable?2:0)|(o.isPrivateProfile?4:0)|(o.isRemoved?8:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isWritable:!!(1&o),isReadable:!!(2&o),isPrivateProfile:!!(4&o),isRemoved:!!(8&o)}}},pt={preencode(d,o){e.uint.preencode(d,o.creation),e.uint.preencode(d,o.latestSync),e.uint.preencode(d,o.latestChatMessage)},encode(d,o){e.uint.encode(d,o.creation),e.uint.encode(d,o.latestSync),e.uint.encode(d,o.latestChatMessage)},decode:d=>({creation:e.uint.decode(d),latestSync:e.uint.decode(d),latestChatMessage:e.uint.decode(d)})},ut=yn,lt=So,ft=e.frame(pt),mt=kr,yt=e.frame(st),xt=e.frame(pe),bt=e.frame(hd),vt=an,gt=vn,Kt=e.frame(Lo),kt=$,ht=e.array(e.frame(Wn)),wt=e.frame(gd),Pt=vc,Rt={preencode(o,n){const c=(n.selfDevice?1:0)|(n.selfMember?2:0)|(n.config?4:0)|(n.identity?8:0)|(n.lastMessage?16:0)|(n.dm?32:0)|(n.readLengths?64:0)|(n.lastMember?128:0)|(n.version?256:0)|(d>=3&&n.preferences?512:0)|(d>=4&&n.activeCall?1024:0)|(d>=8&&n.lastMessageLabels?2048:0)|(d>=9&&n.settings?4096:0)|(d>=13&&n.system?8192:0)|(d>=13&&n.processed?16384:0);e.fixed32.preencode(o,n.roomKey),e.fixed32.preencode(o,n.discoveryKey),e.buffer.preencode(o,n.encryptionKey),ut.preencode(o,n.digest),lt.preencode(o,n.stats),ft.preencode(o,n.timestamps),e.uint.preencode(o,n.fork),e.uint.preencode(o,n.length),e.fixed32.preencode(o,n.seed),mt.preencode(o,n.capabilities),yt.preencode(o,n.status),e.uint.preencode(o,c),n.selfDevice&&xt.preencode(o,n.selfDevice),n.selfMember&&bt.preencode(o,n.selfMember),n.config&&vt.preencode(o,n.config),n.identity&&gt.preencode(o,n.identity),n.lastMessage&&Kt.preencode(o,n.lastMessage),n.dm&&kt.preencode(o,n.dm),n.readLengths&&ht.preencode(o,n.readLengths),n.lastMember&&wt.preencode(o,n.lastMember),n.version&&e.uint.preencode(o,n.version),d>=3&&n.preferences&&Pt.preencode(o,n.preferences),d>=4&&n.activeCall&&cl.preencode(o,n.activeCall),d>=8&&n.lastMessageLabels&&rl.preencode(o,n.lastMessageLabels),d>=9&&n.settings&&tl.preencode(o,n.settings),d>=13&&n.system&&il.preencode(o,n.system),d>=13&&n.processed&&al.preencode(o,n.processed)},encode(o,n){const c=(n.selfDevice?1:0)|(n.selfMember?2:0)|(n.config?4:0)|(n.identity?8:0)|(n.lastMessage?16:0)|(n.dm?32:0)|(n.readLengths?64:0)|(n.lastMember?128:0)|(n.version?256:0)|(d>=3&&n.preferences?512:0)|(d>=4&&n.activeCall?1024:0)|(d>=8&&n.lastMessageLabels?2048:0)|(d>=9&&n.settings?4096:0)|(d>=13&&n.system?8192:0)|(d>=13&&n.processed?16384:0);e.fixed32.encode(o,n.roomKey),e.fixed32.encode(o,n.discoveryKey),e.buffer.encode(o,n.encryptionKey),ut.encode(o,n.digest),lt.encode(o,n.stats),ft.encode(o,n.timestamps),e.uint.encode(o,n.fork),e.uint.encode(o,n.length),e.fixed32.encode(o,n.seed),mt.encode(o,n.capabilities),yt.encode(o,n.status),e.uint.encode(o,c),n.selfDevice&&xt.encode(o,n.selfDevice),n.selfMember&&bt.encode(o,n.selfMember),n.config&&vt.encode(o,n.config),n.identity&&gt.encode(o,n.identity),n.lastMessage&&Kt.encode(o,n.lastMessage),n.dm&&kt.encode(o,n.dm),n.readLengths&&ht.encode(o,n.readLengths),n.lastMember&&wt.encode(o,n.lastMember),n.version&&e.uint.encode(o,n.version),d>=3&&n.preferences&&Pt.encode(o,n.preferences),d>=4&&n.activeCall&&cl.encode(o,n.activeCall),d>=8&&n.lastMessageLabels&&rl.encode(o,n.lastMessageLabels),d>=9&&n.settings&&tl.encode(o,n.settings),d>=13&&n.system&&il.encode(o,n.system),d>=13&&n.processed&&al.encode(o,n.processed)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),r=e.buffer.decode(o),t=ut.decode(o),i=lt.decode(o),a=ft.decode(o),s=e.uint.decode(o),p=e.uint.decode(o),u=e.fixed32.decode(o),l=mt.decode(o),f=yt.decode(o),m=e.uint.decode(o);return{roomKey:n,discoveryKey:c,encryptionKey:r,digest:t,stats:i,timestamps:a,fork:s,length:p,seed:u,capabilities:l,status:f,selfDevice:1&m?xt.decode(o):null,selfMember:2&m?bt.decode(o):null,config:4&m?vt.decode(o):null,identity:8&m?gt.decode(o):null,lastMessage:16&m?Kt.decode(o):null,dm:32&m?kt.decode(o):null,readLengths:64&m?ht.decode(o):null,lastMember:128&m?wt.decode(o):null,version:256&m?e.uint.decode(o):0,preferences:d>=3&&512&m?Pt.decode(o):null,activeCall:d>=4&&1024&m?cl.decode(o):null,lastMessageLabels:d>=8&&2048&m?rl.decode(o):null,settings:d>=9&&4096&m?tl.decode(o):null,system:d>=13&&8192&m?il.decode(o):null,processed:d>=13&&16384&m?al.decode(o):null}}},Tt=vc,At={preencode(d,o){e.fixed32.preencode(d,o.roomKey),Tt.preencode(d,o.status)},encode(d,o){e.fixed32.encode(d,o.roomKey),Tt.encode(d,o.status)},decode:d=>({roomKey:e.fixed32.decode(d),status:Tt.decode(d)})},St={preencode(d,o){e.fixed32.preencode(d,o.roomKey),d.end++,o.repairs&&e.uint.preencode(d,o.repairs)},encode(d,o){const n=o.repairs?1:0;e.fixed32.encode(d,o.roomKey),e.uint.encode(d,n),o.repairs&&e.uint.encode(d,o.repairs)},decode:d=>({roomKey:e.fixed32.decode(d),repairs:1&e.uint.decode(d)?e.uint.decode(d):0})},It={preencode(o,n){e.fixed32.preencode(o,n.mailbox),e.fixed32.preencode(o,n.key),o.end++,n.roomKey&&e.fixed32.preencode(o,n.roomKey),n.keyPair&&r.preencode(o,n.keyPair),n.responseKeyPair&&r.preencode(o,n.responseKeyPair),d>=15&&n.activeClock&&e.uint.preencode(o,n.activeClock)},encode(o,n){const c=(n.roomKey?1:0)|(n.keyPair?2:0)|(n.responseKeyPair?4:0)|(d>=14&&n.pending?8:0)|(d>=15&&n.activeClock?16:0);e.fixed32.encode(o,n.mailbox),e.fixed32.encode(o,n.key),e.uint.encode(o,c),n.roomKey&&e.fixed32.encode(o,n.roomKey),n.keyPair&&r.encode(o,n.keyPair),n.responseKeyPair&&r.encode(o,n.responseKeyPair),d>=15&&n.activeClock&&e.uint.encode(o,n.activeClock)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),t=e.uint.decode(o);return{mailbox:n,key:c,roomKey:1&t?e.fixed32.decode(o):null,keyPair:2&t?r.decode(o):null,responseKeyPair:4&t?r.decode(o):null,pending:d>=14&&!!(8&t),activeClock:d>=15&&16&t?e.uint.decode(o):0}}},Mt={preencode(d,o){e.fixed32.preencode(d,o.key),e.fixed32.preencode(d,o.responsePublicKey)},encode(d,o){e.fixed32.encode(d,o.key),e.fixed32.encode(d,o.responsePublicKey)},decode:d=>({key:e.fixed32.decode(d),responsePublicKey:e.fixed32.decode(d)})},Ft=fe,qt={preencode(d,o){e.fixed32.preencode(d,o.key),Ft.preencode(d,o.profile)},encode(d,o){e.fixed32.encode(d,o.key),Ft.encode(d,o.profile)},decode:d=>({key:e.fixed32.decode(d),profile:Ft.decode(d)})},Ct=xt,Vt={preencode(d,o){e.fixed32.preencode(d,o.roomKey),Ct.preencode(d,o.device)},encode(d,o){e.fixed32.encode(d,o.roomKey),Ct.encode(d,o.device)},decode:d=>({roomKey:e.fixed32.decode(d),device:Ct.decode(d)})},Ht=K,Dt={preencode(o,n){Ht.preencode(o,n.file),e.fixed32.preencode(o,n.roomKey),o.end++,n.encryptionKey&&e.buffer.preencode(o,n.encryptionKey),d>=4&&n.lastAccessed&&e.uint.preencode(o,n.lastAccessed),d>=4&&n.version&&e.uint.preencode(o,n.version)},encode(o,n){const c=(n.encryptionKey?1:0)|(n.cleared?2:0)|(n.own?4:0)|(d>=4&&n.lastAccessed?8:0)|(d>=4&&n.version?16:0);Ht.encode(o,n.file),e.fixed32.encode(o,n.roomKey),e.uint.encode(o,c),n.encryptionKey&&e.buffer.encode(o,n.encryptionKey),d>=4&&n.lastAccessed&&e.uint.encode(o,n.lastAccessed),d>=4&&n.version&&e.uint.encode(o,n.version)},decode(o){const n=Ht.decode(o),c=e.fixed32.decode(o),r=e.uint.decode(o);return{file:n,roomKey:c,encryptionKey:1&r?e.buffer.decode(o):null,cleared:!!(2&r),own:!!(4&r),lastAccessed:d>=4&&8&r?e.uint.decode(o):0,version:d>=4&&16&r?e.uint.decode(o):0}}},Lt={preencode(d,o){d.end++,o.key&&e.string.preencode(d,o.key),o.description&&e.string.preencode(d,o.description)},encode(d,o){const n=(o.key?1:0)|(o.value?2:0)|(o.description?4:0);e.uint.encode(d,n),o.key&&e.string.encode(d,o.key),o.description&&e.string.encode(d,o.description)},decode(d){const o=e.uint.decode(d);return{key:1&o?e.string.decode(d):null,value:!!(2&o),description:4&o?e.string.decode(d):null}}},jt=e.array(e.frame(Lt)),Et={preencode(e,d){e.end++,d.flags&&jt.preencode(e,d.flags)},encode(d,o){const n=o.flags?1:0;e.uint.encode(d,n),o.flags&&jt.encode(d,o.flags)},decode:d=>({flags:1&e.uint.decode(d)?jt.decode(d):null})},Bt=ed,zt={preencode(d,o){d.end++,o.nodes&&Bt.preencode(d,o.nodes),o.concurrency&&e.uint.preencode(d,o.concurrency),o.maxWindow&&e.uint.preencode(d,o.maxWindow),o.randomPunchInterval&&e.uint.preencode(d,o.randomPunchInterval),o.connectionKeepAlive&&e.uint.preencode(d,o.connectionKeepAlive)},encode(d,o){const n=(o.nodes?1:0)|(o.concurrency?2:0)|(o.maxWindow?4:0)|(o.randomPunchInterval?8:0)|(o.connectionKeepAlive?16:0);e.uint.encode(d,n),o.nodes&&Bt.encode(d,o.nodes),o.concurrency&&e.uint.encode(d,o.concurrency),o.maxWindow&&e.uint.encode(d,o.maxWindow),o.randomPunchInterval&&e.uint.encode(d,o.randomPunchInterval),o.connectionKeepAlive&&e.uint.encode(d,o.connectionKeepAlive)},decode(d){const o=e.uint.decode(d);return{nodes:1&o?Bt.decode(d):null,concurrency:2&o?e.uint.decode(d):0,maxWindow:4&o?e.uint.decode(d):0,randomPunchInterval:8&o?e.uint.decode(d):0,connectionKeepAlive:16&o?e.uint.decode(d):0}}},Ot={preencode(d,o){e.fixed32.preencode(d,o.roomKey),e.uint.preencode(d,o.count)},encode(d,o){e.fixed32.encode(d,o.roomKey),e.uint.encode(d,o.count)},decode:d=>({roomKey:e.fixed32.decode(d),count:e.uint.decode(d)})},Nt={preencode(d,o){d.end++,o.roomKey&&e.fixed32.preencode(d,o.roomKey),o.coreKey&&e.fixed32.preencode(d,o.coreKey)},encode(d,o){const n=(o.roomKey?1:0)|(o.coreKey?2:0);e.uint.encode(d,n),o.roomKey&&e.fixed32.encode(d,o.roomKey),o.coreKey&&e.fixed32.encode(d,o.coreKey)},decode(d){const o=e.uint.decode(d);return{roomKey:1&o?e.fixed32.decode(d):null,coreKey:2&o?e.fixed32.decode(d):null}}},Ut=e.frame(Nt),Jt={preencode(d,o){e.string.preencode(d,o.code),e.string.preencode(d,o.message),e.string.preencode(d,o.stack),e.uint.preencode(d,o.timestamp),d.end++,o.details&&Ut.preencode(d,o.details)},encode(d,o){const n=o.details?1:0;e.string.encode(d,o.code),e.string.encode(d,o.message),e.string.encode(d,o.stack),e.uint.encode(d,o.timestamp),e.uint.encode(d,n),o.details&&Ut.encode(d,o.details)},decode:d=>({code:e.string.decode(d),message:e.string.decode(d),stack:e.string.decode(d),timestamp:e.uint.decode(d),details:1&e.uint.decode(d)?Ut.decode(d):null})},Wt={RESUME:1,WAKEUP:2,PRESUSPEND:3,SUSPEND:4},Gt={preencode(e,d){e.end++},encode(d,o){if(o>4)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},Qt={preencode(d,o){e.fixed32.preencode(d,o.roomKey),e.uint.preencode(d,o.total)},encode(d,o){e.fixed32.encode(d,o.roomKey),e.uint.encode(d,o.total)},decode:d=>({roomKey:e.fixed32.decode(d),total:e.uint.decode(d)})},Xt=i,Yt={preencode(d,o){e.uint.preencode(d,o.duration)},encode(d,o){e.uint.encode(d,o.duration)},decode:d=>({duration:e.uint.decode(d)})},Zt=H,$t=H,_t=e.frame(Xt),ei={preencode(e,d){_t.preencode(e,d.header)},encode(e,d){_t.encode(e,d.header)},decode:e=>({header:_t.decode(e)})},di=e.frame(Yt),oi={preencode(e,d){di.preencode(e,d.header)},encode(e,d){di.encode(e,d.header)},decode:e=>({header:di.decode(e)})},ni=_t,ci={preencode(e,d){ni.preencode(e,d.header)},encode(e,d){ni.encode(e,d.header)},decode:e=>({header:ni.decode(e)})},ri=H,ti=_t,ii=an,ai=J,si={preencode(e,d){ti.preencode(e,d.header),e.end++,d.config&&ii.preencode(e,d.config),d.settings&&ai.preencode(e,d.settings)},encode(d,o){const n=(o.config?1:0)|(o.settings?2:0);ti.encode(d,o.header),e.uint.encode(d,n),o.config&&ii.encode(d,o.config),o.settings&&ai.encode(d,o.settings)},decode(d){const o=ti.decode(d),n=e.uint.decode(d);return{header:o,config:1&n?ii.decode(d):null,settings:2&n?ai.decode(d):null}}},pi=di,ui={preencode(d,o){pi.preencode(d,o.header),d.end++,o.roomKey&&e.fixed32.preencode(d,o.roomKey)},encode(d,o){const n=o.roomKey?1:0;pi.encode(d,o.header),e.uint.encode(d,n),o.roomKey&&e.fixed32.encode(d,o.roomKey)},decode:d=>({header:pi.decode(d),roomKey:1&e.uint.decode(d)?e.fixed32.decode(d):null})},li=_t,fi={preencode(d,o){li.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey)},encode(d,o){li.encode(d,o.header),e.fixed32.encode(d,o.roomKey)},decode:d=>({header:li.decode(d),roomKey:e.fixed32.decode(d)})},mi=_t,yi={preencode(d,o){mi.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey)},encode(d,o){mi.encode(d,o.header),e.fixed32.encode(d,o.roomKey)},decode:d=>({header:mi.decode(d),roomKey:e.fixed32.decode(d)})},xi=_t,bi={preencode(d,o){xi.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey)},encode(d,o){xi.encode(d,o.header),e.fixed32.encode(d,o.roomKey)},decode:d=>({header:xi.decode(d),roomKey:e.fixed32.decode(d)})},vi=di,gi={preencode(e,d){vi.preencode(e,d.header)},encode(e,d){vi.encode(e,d.header)},decode:e=>({header:vi.decode(e)})},Ki=_t,ki=an,hi={preencode(d,o){Ki.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey),e.uint.preencode(d,o.key),ki.preencode(d,o.config)},encode(d,o){Ki.encode(d,o.header),e.fixed32.encode(d,o.roomKey),e.uint.encode(d,o.key),ki.encode(d,o.config)},decode:d=>({header:Ki.decode(d),roomKey:e.fixed32.decode(d),key:e.uint.decode(d),config:ki.decode(d)})},wi=_t,Pi=J,Ri={preencode(d,o){wi.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey),e.uint.preencode(d,o.key),Pi.preencode(d,o.settings)},encode(d,o){wi.encode(d,o.header),e.fixed32.encode(d,o.roomKey),e.uint.encode(d,o.key),Pi.encode(d,o.settings)},decode:d=>({header:wi.decode(d),roomKey:e.fixed32.decode(d),key:e.uint.decode(d),settings:Pi.decode(d)})},Ti=_t,Ai=vc,Si={preencode(d,o){Ti.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey),e.uint.preencode(d,o.key),Ai.preencode(d,o.status)},encode(d,o){Ti.encode(d,o.header),e.fixed32.encode(d,o.roomKey),e.uint.encode(d,o.key),Ai.encode(d,o.status)},decode:d=>({header:Ti.decode(d),roomKey:e.fixed32.decode(d),key:e.uint.decode(d),status:Ai.decode(d)})},Ii=_t,Mi=Eo,Fi={preencode(d,o){Ii.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey),Mi.preencode(d,o.message)},encode(d,o){Ii.encode(d,o.header),e.fixed32.encode(d,o.roomKey),Mi.encode(d,o.message)},decode:d=>({header:Ii.decode(d),roomKey:e.fixed32.decode(d),message:Mi.decode(d)})},qi=di,Ci={preencode(e,d){qi.preencode(e,d.header)},encode(e,d){qi.encode(e,d.header)},decode:e=>({header:qi.decode(e)})},Vi=_t,Hi=Eo,Di={preencode(d,o){Vi.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey),n.preencode(d,o.id),Hi.preencode(d,o.message)},encode(d,o){Vi.encode(d,o.header),e.fixed32.encode(d,o.roomKey),n.encode(d,o.id),Hi.encode(d,o.message)},decode:d=>({header:Vi.decode(d),roomKey:e.fixed32.decode(d),id:n.decode(d),message:Hi.decode(d)})},Li=di,ji={preencode(e,d){Li.preencode(e,d.header)},encode(e,d){Li.encode(e,d.header)},decode:e=>({header:Li.decode(e)})},Ei=_t,Bi={preencode(d,o){Ei.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey),n.preencode(d,o.id)},encode(d,o){Ei.encode(d,o.header),e.fixed32.encode(d,o.roomKey),n.encode(d,o.id)},decode:d=>({header:Ei.decode(d),roomKey:e.fixed32.decode(d),id:n.decode(d)})},zi=di,Oi={preencode(e,d){zi.preencode(e,d.header)},encode(e,d){zi.encode(e,d.header)},decode:e=>({header:zi.decode(e)})},Ni=_t,Ui={preencode(d,o){Ni.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey),n.preencode(d,o.id),e.string.preencode(d,o.reaction)},encode(d,o){Ni.encode(d,o.header),e.fixed32.encode(d,o.roomKey),n.encode(d,o.id),e.string.encode(d,o.reaction)},decode:d=>({header:Ni.decode(d),roomKey:e.fixed32.decode(d),id:n.decode(d),reaction:e.string.decode(d)})},Ji=di,Wi={preencode(e,d){Ji.preencode(e,d.header)},encode(e,d){Ji.encode(e,d.header)},decode:e=>({header:Ji.decode(e)})},Gi=_t,Qi={preencode(d,o){Gi.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey),n.preencode(d,o.id),e.string.preencode(d,o.reaction)},encode(d,o){Gi.encode(d,o.header),e.fixed32.encode(d,o.roomKey),n.encode(d,o.id),e.string.encode(d,o.reaction)},decode:d=>({header:Gi.decode(d),roomKey:e.fixed32.decode(d),id:n.decode(d),reaction:e.string.decode(d)})},Xi=di,Yi={preencode(e,d){Xi.preencode(e,d.header)},encode(e,d){Xi.encode(e,d.header)},decode:e=>({header:Xi.decode(e)})},Zi={preencode(d,o){e.uint.preencode(d,o.clock),e.uint.preencode(d,o.start),e.uint.preencode(d,o.end)},encode(d,o){e.uint.encode(d,o.clock),e.uint.encode(d,o.start),e.uint.encode(d,o.end)},decode:d=>({clock:e.uint.decode(d),start:e.uint.decode(d),end:e.uint.decode(d)})},$i=H,_i=$,ea={preencode(d,o){e.uint.preencode(d,o.clock),_i.preencode(d,o.keys)},encode(d,o){e.uint.encode(d,o.clock),_i.encode(d,o.keys)},decode:d=>({clock:e.uint.decode(d),keys:_i.decode(d)})},da={preencode(d,o){e.uint.preencode(d,o.clock),e.fixed32.preencode(d,o.roomKey),d.end++,o.start&&e.uint.preencode(d,o.start),o.size&&e.uint.preencode(d,o.size)},encode(d,o){const n=(o.start?1:0)|(o.size?2:0)|(o.isBottom?4:0);e.uint.encode(d,o.clock),e.fixed32.encode(d,o.roomKey),e.uint.encode(d,n),o.start&&e.uint.encode(d,o.start),o.size&&e.uint.encode(d,o.size)},decode(d){const o=e.uint.decode(d),n=e.fixed32.decode(d),c=e.uint.decode(d);return{clock:o,roomKey:n,start:1&c?e.uint.decode(d):0,size:2&c?e.uint.decode(d):0,isBottom:!!(4&c)}}},oa=H,na={preencode(d,o){e.uint.preencode(d,o.clock),e.fixed32.preencode(d,o.roomKey),d.end++,o.offset&&e.fixed32.preencode(d,o.offset),o.count&&e.uint.preencode(d,o.count)},encode(d,o){const n=(o.offset?1:0)|(o.count?2:0);e.uint.encode(d,o.clock),e.fixed32.encode(d,o.roomKey),e.uint.encode(d,n),o.offset&&e.fixed32.encode(d,o.offset),o.count&&e.uint.encode(d,o.count)},decode(d){const o=e.uint.decode(d),n=e.fixed32.decode(d),c=e.uint.decode(d);return{clock:o,roomKey:n,offset:1&c?e.fixed32.decode(d):null,count:2&c?e.uint.decode(d):0}}},ca=H,ra={preencode(d,o){e.uint.preencode(d,o.timestamp),e.fixed32.preencode(d,o.id)},encode(d,o){e.uint.encode(d,o.timestamp),e.fixed32.encode(d,o.id)},decode:d=>({timestamp:e.uint.decode(d),id:e.fixed32.decode(d)})},ta={Changed:1,Removed:2},ia={preencode(e,d){e.end++},encode(d,o){if(o>2)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},aa=$,sa={preencode(d,o){aa.preencode(d,o.keys),e.uint.preencode(d,o.start),e.uint.preencode(d,o.end),e.uint.preencode(d,o.total)},encode(d,o){aa.encode(d,o.keys),e.uint.encode(d,o.start),e.uint.encode(d,o.end),e.uint.encode(d,o.total)},decode:d=>({keys:aa.decode(d),start:e.uint.decode(d),end:e.uint.decode(d),total:e.uint.decode(d)})},pa={preencode(e,d){ia.preencode(e,d.type),ra.preencode(e,d.room)},encode(e,d){ia.encode(e,d.type),ra.encode(e,d.room)},decode:e=>({type:ia.decode(e),room:ra.decode(e)})},ua=yt,la=bd,fa={preencode(e,d){ua.preencode(e,d.device),e.end++,d.member&&la.preencode(e,d.member)},encode(d,o){const n=o.member?1:0;ua.encode(d,o.device),e.uint.encode(d,n),o.member&&la.encode(d,o.member)},decode:d=>({device:ua.decode(d),member:1&e.uint.decode(d)?la.decode(d):null})},ma=e.frame(fa),ya=yn,xa=an,ba={preencode(d,o){e.fixed32.preencode(d,o.id),ma.preencode(d,o.role),ya.preencode(d,o.digest),xa.preencode(d,o.config),d.end++,o.messageId&&n.preencode(d,o.messageId)},encode(d,o){const c=o.messageId?1:0;e.fixed32.encode(d,o.id),ma.encode(d,o.role),ya.encode(d,o.digest),xa.encode(d,o.config),e.uint.encode(d,c),o.messageId&&n.encode(d,o.messageId)},decode:d=>({id:e.fixed32.decode(d),role:ma.decode(d),digest:ya.decode(d),config:xa.decode(d),messageId:1&e.uint.decode(d)?n.decode(d):null})},va=yt,ga={preencode(d,o){e.fixed32.preencode(d,o.id),va.preencode(d,o.status)},encode(d,o){e.fixed32.encode(d,o.id),va.encode(d,o.status)},decode:d=>({id:e.fixed32.decode(d),status:va.decode(d)})},Ka=yn,ka={preencode(d,o){e.fixed32.preencode(d,o.id),Ka.preencode(d,o.digest)},encode(d,o){e.fixed32.encode(d,o.id),Ka.encode(d,o.digest)},decode:d=>({id:e.fixed32.decode(d),digest:Ka.decode(d)})},ha=an,wa={preencode(d,o){e.fixed32.preencode(d,o.id),ha.preencode(d,o.config)},encode(d,o){e.fixed32.encode(d,o.id),ha.encode(d,o.config)},decode:d=>({id:e.fixed32.decode(d),config:ha.decode(d)})},Pa=ma,Ra={preencode(d,o){e.fixed32.preencode(d,o.id),d.end++,o.role&&Pa.preencode(d,o.role)},encode(d,o){const n=o.role?1:0;e.fixed32.encode(d,o.id),e.uint.encode(d,n),o.role&&Pa.encode(d,o.role)},decode:d=>({id:e.fixed32.decode(d),role:1&e.uint.decode(d)?Pa.decode(d):null})},Ta={preencode(d,o){e.fixed32.preencode(d,o.id),n.preencode(d,o.lastMessage)},encode(d,o){e.fixed32.encode(d,o.id),n.encode(d,o.lastMessage)},decode:d=>({id:e.fixed32.decode(d),lastMessage:n.decode(d)})},Aa=fe,Sa={preencode(d,o){e.fixed32.preencode(d,o.key),Aa.preencode(d,o.profile)},encode(d,o){e.fixed32.encode(d,o.key),Aa.encode(d,o.profile)},decode:d=>({key:e.fixed32.decode(d),profile:Aa.decode(d)})},Ia=ae,Ma={preencode(d,o){e.fixed32.preencode(d,o.key),Ia.preencode(d,o.status),sl.preencode(d,o.profile)},encode(d,o){e.fixed32.encode(d,o.key),Ia.encode(d,o.status),sl.encode(d,o.profile)},decode:d=>({key:e.fixed32.decode(d),status:Ia.decode(d),profile:sl.decode(d)})},Fa={preencode(d,o){e.fixed32.preencode(d,o.roomKey),e.fixed32.preencode(d,o.key)},encode(d,o){e.fixed32.encode(d,o.roomKey),e.fixed32.encode(d,o.key)},decode:d=>({roomKey:e.fixed32.decode(d),key:e.fixed32.decode(d)})},qa=Fa,Ca=e.array(n),Va={preencode(d,o){e.fixed32.preencode(d,o.roomKey),e.uint.preencode(d,o.start),e.uint.preencode(d,o.size),e.uint.preencode(d,o.total),Ca.preencode(d,o.ids),d.end++},encode(d,o){const n=o.isBottom?1:0;e.fixed32.encode(d,o.roomKey),e.uint.encode(d,o.start),e.uint.encode(d,o.size),e.uint.encode(d,o.total),Ca.encode(d,o.ids),e.uint.encode(d,n)},decode:d=>({roomKey:e.fixed32.decode(d),start:e.uint.decode(d),size:e.uint.decode(d),total:e.uint.decode(d),ids:Ca.decode(d),isBottom:!!(1&e.uint.decode(d))})},Ha={preencode(d,o){e.uint.preencode(d,o.sent),d.end++,o.edited&&e.uint.preencode(d,o.edited)},encode(d,o){const n=o.edited?1:0;e.uint.encode(d,o.sent),e.uint.encode(d,n),o.edited&&e.uint.encode(d,o.edited)},decode:d=>({sent:e.uint.decode(d),edited:1&e.uint.decode(d)?e.uint.decode(d):0})},Da=e.frame(Ha),La=Mo,ja=Fo,Ea=qo,Ba={preencode(d,o){n.preencode(d,o.id),e.uint.preencode(d,o.clock),Da.preencode(d,o.timestamps),La.preencode(d,o.status),d.end++,o.message&&ja.preencode(d,o.message),o.event&&Ea.preencode(d,o.event)},encode(d,o){const c=(o.message?1:0)|(o.event?2:0);n.encode(d,o.id),e.uint.encode(d,o.clock),Da.encode(d,o.timestamps),La.encode(d,o.status),e.uint.encode(d,c),o.message&&ja.encode(d,o.message),o.event&&Ea.encode(d,o.event)},decode(d){const o=n.decode(d),c=e.uint.decode(d),r=Da.decode(d),t=La.decode(d),i=e.uint.decode(d);return{id:o,clock:c,timestamps:r,status:t,message:1&i?ja.decode(d):null,event:2&i?Ea.decode(d):null}}},za=e.frame(Ba),Oa=bd,Na={preencode(d,o){za.preencode(d,o.chat),e.fixed32.preencode(d,o.memberKey),Oa.preencode(d,o.role)},encode(d,o){za.encode(d,o.chat),e.fixed32.encode(d,o.memberKey),Oa.encode(d,o.role)},decode:d=>({chat:za.decode(d),memberKey:e.fixed32.decode(d),role:Oa.decode(d)})},Ua=za,Ja={preencode(e,d){Ua.preencode(e,d.chat)},encode(e,d){Ua.encode(e,d.chat)},decode:e=>({chat:Ua.decode(e)})},Wa=Ca,Ga={preencode(d,o){Wa.preencode(d,o.ids),e.fixed32.preencode(d,o.memberKey)},encode(d,o){Wa.encode(d,o.ids),e.fixed32.encode(d,o.memberKey)},decode:d=>({ids:Wa.decode(d),memberKey:e.fixed32.decode(d)})},Qa=Ca,Xa=bd,Ya={preencode(e,d){Qa.preencode(e,d.ids),Xa.preencode(e,d.role)},encode(e,d){Qa.encode(e,d.ids),Xa.encode(e,d.role)},decode:e=>({ids:Qa.decode(e),role:Xa.decode(e)})},Za=e.frame(dn),$a={preencode(e,d){n.preencode(e,d.id),Za.preencode(e,d.reactions)},encode(e,d){n.encode(e,d.id),Za.encode(e,d.reactions)},decode:e=>({id:n.decode(e),reactions:Za.decode(e)})},_a=Za,es={preencode(e,d){n.preencode(e,d.id),_a.preencode(e,d.digest)},encode(e,d){n.encode(e,d.id),_a.encode(e,d.digest)},decode:e=>({id:n.decode(e),digest:_a.decode(e)})},ds=H,os=H,ns=e.array(e.frame(ic)),cs={preencode(e,d){ns.preencode(e,d.invitations)},encode(e,d){ns.encode(e,d.invitations)},decode:e=>({invitations:ns.decode(e)})},rs=e.frame(ud),ts={preencode(d,o){e.fixed32.preencode(d,o.roomKey),rs.preencode(d,o.request)},encode(d,o){e.fixed32.encode(d,o.roomKey),rs.encode(d,o.request)},decode:d=>({roomKey:e.fixed32.decode(d),request:rs.decode(d)})},is=e.array(e.frame(ts)),as={preencode(e,d){is.preencode(e,d.requests)},encode(e,d){is.encode(e,d.requests)},decode:e=>({requests:is.decode(e)})},ss=ns,ps=e.array(e.frame(ud)),us={preencode(e,d){ss.preencode(e,d.pendingInvitations),ps.preencode(e,d.identityJoinRequests)},encode(e,d){ss.encode(e,d.pendingInvitations),ps.encode(e,d.identityJoinRequests)},decode:e=>({pendingInvitations:ss.decode(e),identityJoinRequests:ps.decode(e)})},ls=_t,fs={preencode(d,o){ls.preencode(d,o.header),e.string.preencode(d,o.invitation),d.end++},encode(d,o){const n=o.isIdentity?1:0;ls.encode(d,o.header),e.string.encode(d,o.invitation),e.uint.encode(d,n)},decode:d=>({header:ls.decode(d),invitation:e.string.decode(d),isIdentity:!!(1&e.uint.decode(d))})},ms=di,ys={preencode(e,d){ms.preencode(e,d.header)},encode(e,d){ms.encode(e,d.header)},decode:e=>({header:ms.decode(e)})},xs={preencode(e,d){e.end++},encode(d,o){const n=(o.canModerate?1:0)|(o.canAdmin?2:0)|(o.requiresConfirmation?4:0)|(o.isReadOnly?8:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{canModerate:!!(1&o),canAdmin:!!(2&o),requiresConfirmation:!!(4&o),isReadOnly:!!(8&o)}}},bs=_t,vs=e.frame(xs),gs={preencode(d,o){bs.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey),d.end++,o.permissions&&vs.preencode(d,o.permissions),o.expiration&&e.uint.preencode(d,o.expiration)},encode(d,o){const n=(o.permissions?1:0)|(o.expiration?2:0);bs.encode(d,o.header),e.fixed32.encode(d,o.roomKey),e.uint.encode(d,n),o.permissions&&vs.encode(d,o.permissions),o.expiration&&e.uint.encode(d,o.expiration)},decode(d){const o=bs.decode(d),n=e.fixed32.decode(d),c=e.uint.decode(d);return{header:o,roomKey:n,permissions:1&c?vs.decode(d):null,expiration:2&c?e.uint.decode(d):0}}},Ks=di,ks={preencode(d,o){Ks.preencode(d,o.header),e.string.preencode(d,o.invitation)},encode(d,o){Ks.encode(d,o.header),e.string.encode(d,o.invitation)},decode:d=>({header:Ks.decode(d),invitation:e.string.decode(d)})},hs=_t,ws={preencode(e,d){hs.preencode(e,d.header)},encode(e,d){hs.encode(e,d.header)},decode:e=>({header:hs.decode(e)})},Ps=di,Rs={preencode(d,o){Ps.preencode(d,o.header),e.string.preencode(d,o.invitation)},encode(d,o){Ps.encode(d,o.header),e.string.encode(d,o.invitation)},decode:d=>({header:Ps.decode(d),invitation:e.string.decode(d)})},Ts=_t,As=rs,Ss={preencode(d,o){Ts.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey),As.preencode(d,o.request)},encode(d,o){Ts.encode(d,o.header),e.fixed32.encode(d,o.roomKey),As.encode(d,o.request)},decode:d=>({header:Ts.decode(d),roomKey:e.fixed32.decode(d),request:As.decode(d)})},Is=di,Ms={preencode(e,d){Is.preencode(e,d.header)},encode(e,d){Is.encode(e,d.header)},decode:e=>({header:Is.decode(e)})},Fs=_t,qs=rs,Cs={preencode(d,o){Fs.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey),qs.preencode(d,o.request)},encode(d,o){Fs.encode(d,o.header),e.fixed32.encode(d,o.roomKey),qs.encode(d,o.request)},decode:d=>({header:Fs.decode(d),roomKey:e.fixed32.decode(d),request:qs.decode(d)})},Vs=di,Hs={preencode(e,d){Vs.preencode(e,d.header)},encode(e,d){Vs.encode(e,d.header)},decode:e=>({header:Vs.decode(e)})},Ds=_t,Ls={preencode(d,o){Ds.preencode(d,o.header),e.fixed32.preencode(d,o.id)},encode(d,o){Ds.encode(d,o.header),e.fixed32.encode(d,o.id)},decode:d=>({header:Ds.decode(d),id:e.fixed32.decode(d)})},js=di,Es={preencode(e,d){js.preencode(e,d.header)},encode(e,d){js.encode(e,d.header)},decode:e=>({header:js.decode(e)})},Bs=_t,zs={preencode(d,o){Bs.preencode(d,o.header),e.string.preencode(d,o.displayName),d.end++,o.avatar&&e.buffer.preencode(d,o.avatar)},encode(d,o){const n=o.avatar?1:0;Bs.encode(d,o.header),e.string.encode(d,o.displayName),e.uint.encode(d,n),o.avatar&&e.buffer.encode(d,o.avatar)},decode:d=>({header:Bs.decode(d),displayName:e.string.decode(d),avatar:1&e.uint.decode(d)?e.buffer.decode(d):null})},Os=H,Ns=H,Us={preencode(e,d){e.end++},encode(d,o){const n=(o.isConfirmed?1:0)|(o.isLoggedOut?2:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isConfirmed:!!(1&o),isLoggedOut:!!(2&o)}}},Js=e.frame(Us),Ws=$,Gs={preencode(d,o){e.fixed32.preencode(d,o.memberKey),Js.preencode(d,o.status),Ws.preencode(d,o.deviceKeys)},encode(d,o){e.fixed32.encode(d,o.memberKey),Js.encode(d,o.status),Ws.encode(d,o.deviceKeys)},decode:d=>({memberKey:e.fixed32.decode(d),status:Js.decode(d),deviceKeys:Ws.decode(d)})},Qs={preencode(d,o){e.fixed32.preencode(d,o.memberKey)},encode(d,o){e.fixed32.encode(d,o.memberKey)},decode:d=>({memberKey:e.fixed32.decode(d)})},Xs={preencode(d,o){e.fixed32.preencode(d,o.deviceKey)},encode(d,o){e.fixed32.encode(d,o.deviceKey)},decode:d=>({deviceKey:e.fixed32.decode(d)})},Ys=_t,Zs={preencode(d,o){Ys.preencode(d,o.header),e.string.preencode(d,o.password)},encode(d,o){Ys.encode(d,o.header),e.string.encode(d,o.password)},decode:d=>({header:Ys.decode(d),password:e.string.decode(d)})},$s=di,_s={preencode(d,o){$s.preencode(d,o.header),e.string.preencode(d,o.inspector)},encode(d,o){$s.encode(d,o.header),e.string.encode(d,o.inspector)},decode:d=>({header:$s.decode(d),inspector:e.string.decode(d)})},ep=di,dp={preencode(e,d){ep.preencode(e,d.header)},encode(e,d){ep.encode(e,d.header)},decode:e=>({header:ep.decode(e)})},op=di,np={preencode(e,d){op.preencode(e,d.header)},encode(e,d){op.encode(e,d.header)},decode:e=>({header:op.decode(e)})},cp={Flag:1},rp={preencode(e,d){e.end++},encode(d,o){if(o>1)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},tp={preencode(d,o){e.fixed32.preencode(d,o.key),e.fixed32.preencode(d,o.sender),e.uint.preencode(d,o.clock),rp.preencode(d,o.label)},encode(d,o){e.fixed32.encode(d,o.key),e.fixed32.encode(d,o.sender),e.uint.encode(d,o.clock),rp.encode(d,o.label)},decode:d=>({key:e.fixed32.decode(d),sender:e.fixed32.decode(d),clock:e.uint.decode(d),label:rp.decode(d)})},ip=de,ap={preencode(d,o){ip.preencode(d,o.header),e.fixed32.preencode(d,o.key),rp.preencode(d,o.label)},encode(d,o){ip.encode(d,o.header),e.fixed32.encode(d,o.key),rp.encode(d,o.label)},decode:d=>({header:ip.decode(d),key:e.fixed32.decode(d),label:rp.decode(d)})},sp={preencode(d,o){rp.preencode(d,o.label),e.uint.preencode(d,o.count)},encode(d,o){rp.encode(d,o.label),e.uint.encode(d,o.count)},decode:d=>({label:rp.decode(d),count:e.uint.decode(d)})},pp=e.array(e.frame(sp)),up={preencode(d,o){e.fixed32.preencode(d,o.key),e.uint.preencode(d,o.total),pp.preencode(d,o.labels),e.uint.preencode(d,o.editedAt),e.uint.preencode(d,o.flagsClock)},encode(d,o){e.fixed32.encode(d,o.key),e.uint.encode(d,o.total),pp.encode(d,o.labels),e.uint.encode(d,o.editedAt),e.uint.encode(d,o.flagsClock)},decode:d=>({key:e.fixed32.decode(d),total:e.uint.decode(d),labels:pp.decode(d),editedAt:e.uint.decode(d),flagsClock:e.uint.decode(d)})},lp=de,fp={preencode(d,o){lp.preencode(d,o.header),e.fixed32.preencode(d,o.deviceKey),e.fixed32.preencode(d,o.fromDeviceKey)},encode(d,o){lp.encode(d,o.header),e.fixed32.encode(d,o.deviceKey),e.fixed32.encode(d,o.fromDeviceKey)},decode:d=>({header:lp.decode(d),deviceKey:e.fixed32.decode(d),fromDeviceKey:e.fixed32.decode(d)})},mp={preencode(d,o){e.float64.preencode(d,o.latitude),e.float64.preencode(d,o.longitude)},encode(d,o){e.float64.encode(d,o.latitude),e.float64.encode(d,o.longitude)},decode:d=>({latitude:e.float64.decode(d),longitude:e.float64.decode(d)})},yp=de,xp=$,bp={preencode(o,n){yp.preencode(o,n.header),e.fixed32.preencode(o,n.callKey),e.buffer.preencode(o,n.encryptionKey),o.end++,d>=4&&n.streams&&xp.preencode(o,n.streams),d>=4&&n.discoveryKey&&e.fixed32.preencode(o,n.discoveryKey),d>=4&&n.version&&e.uint.preencode(o,n.version),d>=12&&n.streamInputs&&pl.preencode(o,n.streamInputs),d>=12&&n.swarmKey&&e.fixed32.preencode(o,n.swarmKey)},encode(o,n){const c=(d>=4&&n.streams?1:0)|(d>=4&&n.discoveryKey?2:0)|(d>=4&&n.version?4:0)|(d>=12&&n.streamInputs?8:0)|(d>=12&&n.swarmKey?16:0);yp.encode(o,n.header),e.fixed32.encode(o,n.callKey),e.buffer.encode(o,n.encryptionKey),e.uint.encode(o,c),d>=4&&n.streams&&xp.encode(o,n.streams),d>=4&&n.discoveryKey&&e.fixed32.encode(o,n.discoveryKey),d>=4&&n.version&&e.uint.encode(o,n.version),d>=12&&n.streamInputs&&pl.encode(o,n.streamInputs),d>=12&&n.swarmKey&&e.fixed32.encode(o,n.swarmKey)},decode(o){const n=yp.decode(o),c=e.fixed32.decode(o),r=e.buffer.decode(o),t=e.uint.decode(o);return{header:n,callKey:c,encryptionKey:r,streams:d>=4&&1&t?xp.decode(o):null,discoveryKey:d>=4&&2&t?e.fixed32.decode(o):null,version:d>=4&&4&t?e.uint.decode(o):0,streamInputs:d>=12&&8&t?pl.decode(o):null,swarmKey:d>=12&&16&t?e.fixed32.decode(o):null}}},vp=de,gp=$,Kp={preencode(o,n){vp.preencode(o,n.header),e.fixed32.preencode(o,n.callKey),o.end++,d>=4&&n.streams&&gp.preencode(o,n.streams),d>=12&&n.streamInputs&&ul.preencode(o,n.streamInputs),d>=12&&n.swarmKey&&e.fixed32.preencode(o,n.swarmKey)},encode(o,n){const c=(d>=4&&n.streams?1:0)|(d>=12&&n.streamInputs?2:0)|(d>=12&&n.swarmKey?4:0);vp.encode(o,n.header),e.fixed32.encode(o,n.callKey),e.uint.encode(o,c),d>=4&&n.streams&&gp.encode(o,n.streams),d>=12&&n.streamInputs&&ul.encode(o,n.streamInputs),d>=12&&n.swarmKey&&e.fixed32.encode(o,n.swarmKey)},decode(o){const n=vp.decode(o),c=e.fixed32.decode(o),r=e.uint.decode(o);return{header:n,callKey:c,streams:d>=4&&1&r?gp.decode(o):null,streamInputs:d>=12&&2&r?ul.decode(o):null,swarmKey:d>=12&&4&r?e.fixed32.decode(o):null}}},kp=de,hp={preencode(d,o){kp.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){kp.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:kp.decode(d),callKey:e.fixed32.decode(d)})},wp=de,Pp={preencode(d,o){wp.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){wp.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:wp.decode(d),callKey:e.fixed32.decode(d)})},Rp=de,Tp={preencode(o,n){Rp.preencode(o,n.header),e.fixed32.preencode(o,n.callKey),e.fixed32.preencode(o,n.streamKey),o.end++,d>=12&&n.mediaStreamId&&e.string.preencode(o,n.mediaStreamId),d>=12&&n.type&&e.string.preencode(o,n.type)},encode(o,n){const c=(d>=12&&n.mediaStreamId?1:0)|(d>=12&&n.type?2:0)|(d>=12&&n.muted?4:0);Rp.encode(o,n.header),e.fixed32.encode(o,n.callKey),e.fixed32.encode(o,n.streamKey),e.uint.encode(o,c),d>=12&&n.mediaStreamId&&e.string.encode(o,n.mediaStreamId),d>=12&&n.type&&e.string.encode(o,n.type)},decode(o){const n=Rp.decode(o),c=e.fixed32.decode(o),r=e.fixed32.decode(o),t=o.start<o.end?e.uint.decode(o):0;return{header:n,callKey:c,streamKey:r,mediaStreamId:d>=12&&1&t?e.string.decode(o):null,type:d>=12&&2&t?e.string.decode(o):null,muted:d>=12&&!!(4&t)}}},Ap=de,Sp={preencode(d,o){Ap.preencode(d,o.header),e.fixed32.preencode(d,o.callKey),e.fixed32.preencode(d,o.streamKey)},encode(d,o){Ap.encode(d,o.header),e.fixed32.encode(d,o.callKey),e.fixed32.encode(d,o.streamKey)},decode:d=>({header:Ap.decode(d),callKey:e.fixed32.decode(d),streamKey:e.fixed32.decode(d)})},Ip={preencode(o,n){e.fixed32.preencode(o,n.callKey),e.buffer.preencode(o,n.encryptionKey),e.uint.preencode(o,n.createdAt),o.end++,d>=4&&n.endedAt&&e.uint.preencode(o,n.endedAt),d>=4&&n.discoveryKey&&e.fixed32.preencode(o,n.discoveryKey),d>=4&&n.version&&e.uint.preencode(o,n.version)},encode(o,n){const c=(d>=4&&n.endedAt?1:0)|(d>=4&&n.discoveryKey?2:0)|(d>=4&&n.version?4:0);e.fixed32.encode(o,n.callKey),e.buffer.encode(o,n.encryptionKey),e.uint.encode(o,n.createdAt),e.uint.encode(o,c),d>=4&&n.endedAt&&e.uint.encode(o,n.endedAt),d>=4&&n.discoveryKey&&e.fixed32.encode(o,n.discoveryKey),d>=4&&n.version&&e.uint.encode(o,n.version)},decode(o){const n=e.fixed32.decode(o),c=e.buffer.decode(o),r=e.uint.decode(o),t=e.uint.decode(o);return{callKey:n,encryptionKey:c,createdAt:r,endedAt:d>=4&&1&t?e.uint.decode(o):0,discoveryKey:d>=4&&2&t?e.fixed32.decode(o):null,version:d>=4&&4&t?e.uint.decode(o):0}}},Mp={preencode(d,o){e.fixed32.preencode(d,o.callKey),e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.createdAt)},encode(d,o){e.fixed32.encode(d,o.callKey),e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.createdAt)},decode:d=>({callKey:e.fixed32.decode(d),memberKey:e.fixed32.decode(d),createdAt:e.uint.decode(d)})},Fp={preencode(o,n){e.fixed32.preencode(o,n.callKey),e.fixed32.preencode(o,n.deviceKey),e.fixed32.preencode(o,n.memberKey),e.uint.preencode(o,n.createdAt),o.end++,d>=4&&n.swarmKey&&e.fixed32.preencode(o,n.swarmKey),d>=8&&n.lastHeartbeatAt&&e.uint.preencode(o,n.lastHeartbeatAt)},encode(o,n){const c=(d>=4&&n.swarmKey?1:0)|(d>=8&&n.lastHeartbeatAt?2:0)|(d>=9&&n.isRecording?4:0);e.fixed32.encode(o,n.callKey),e.fixed32.encode(o,n.deviceKey),e.fixed32.encode(o,n.memberKey),e.uint.encode(o,n.createdAt),e.uint.encode(o,c),d>=4&&n.swarmKey&&e.fixed32.encode(o,n.swarmKey),d>=8&&n.lastHeartbeatAt&&e.uint.encode(o,n.lastHeartbeatAt)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),r=e.fixed32.decode(o),t=e.uint.decode(o),i=e.uint.decode(o);return{callKey:n,deviceKey:c,memberKey:r,createdAt:t,swarmKey:d>=4&&1&i?e.fixed32.decode(o):null,lastHeartbeatAt:d>=8&&2&i?e.uint.decode(o):0,isRecording:d>=9&&!!(4&i)}}},qp={preencode(o,n){e.fixed32.preencode(o,n.callKey),e.fixed32.preencode(o,n.deviceKey),e.buffer.preencode(o,n.streamKey),e.uint.preencode(o,n.createdAt),o.end++,d>=12&&n.mediaStreamId&&e.string.preencode(o,n.mediaStreamId),d>=12&&n.type&&e.string.preencode(o,n.type),d>=12&&n.statusKey&&e.uint.preencode(o,n.statusKey)},encode(o,n){const c=(d>=12&&n.mediaStreamId?1:0)|(d>=12&&n.type?2:0)|(d>=12&&n.statusKey?4:0);e.fixed32.encode(o,n.callKey),e.fixed32.encode(o,n.deviceKey),e.buffer.encode(o,n.streamKey),e.uint.encode(o,n.createdAt),e.uint.encode(o,c),d>=12&&n.mediaStreamId&&e.string.encode(o,n.mediaStreamId),d>=12&&n.type&&e.string.encode(o,n.type),d>=12&&n.statusKey&&e.uint.encode(o,n.statusKey)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),r=e.buffer.decode(o),t=e.uint.decode(o),i=o.start<o.end?e.uint.decode(o):0;return{callKey:n,deviceKey:c,streamKey:r,createdAt:t,mediaStreamId:d>=12&&1&i?e.string.decode(o):null,type:d>=12&&2&i?e.string.decode(o):null,statusKey:d>=12&&4&i?e.uint.decode(o):0}}},Cp={preencode(o,n){e.fixed32.preencode(o,n.callKey),o.end++,d>=4&&n.selfDeviceKey&&e.fixed32.preencode(o,n.selfDeviceKey),d>=12&&n.createdAt&&e.uint.preencode(o,n.createdAt)},encode(o,n){const c=(d>=4&&n.selfDeviceKey?1:0)|(d>=12&&n.createdAt?2:0);e.fixed32.encode(o,n.callKey),e.uint.encode(o,c),d>=4&&n.selfDeviceKey&&e.fixed32.encode(o,n.selfDeviceKey),d>=12&&n.createdAt&&e.uint.encode(o,n.createdAt)},decode(o){const n=e.fixed32.decode(o),c=e.uint.decode(o);return{callKey:n,selfDeviceKey:d>=4&&1&c?e.fixed32.decode(o):null,createdAt:d>=12&&2&c?e.uint.decode(o):0}}},Vp={preencode(d,o){e.uint.preencode(d,o.lastCleared)},encode(d,o){e.uint.encode(d,o.lastCleared)},decode:d=>({lastCleared:e.uint.decode(d)})},Hp={Nightly:"Nightly",Internal:"Internal",Production:"Production"},Dp={preencode(e,d){e.end++},encode(d,o){switch(o){case"Nightly":e.uint.encode(d,1);break;case"Internal":e.uint.encode(d,2);break;case"Production":e.uint.encode(d,3);break;default:throw new Error("Unknown enum")}},decode(d){switch(e.uint.decode(d)){case 1:return"Nightly";case 2:return"Internal";case 3:return"Production";default:return null}}},Lp=de,jp={preencode(e,d){Lp.preencode(e,d.header)},encode(e,d){Lp.encode(e,d.header)},decode:e=>({header:Lp.decode(e)})},Ep=de,Bp={preencode(e,d){Ep.preencode(e,d.header)},encode(e,d){Ep.encode(e,d.header)},decode:e=>({header:Ep.decode(e)})},zp={preencode(o,n){Dp.preencode(o,n.buildType),o.end++,d>=6&&n.latestOfflineAbi&&e.uint.preencode(o,n.latestOfflineAbi)},encode(o,n){const c=d>=6&&n.latestOfflineAbi?1:0;Dp.encode(o,n.buildType),e.uint.encode(o,c),d>=6&&n.latestOfflineAbi&&e.uint.encode(o,n.latestOfflineAbi)},decode(o){const n=Dp.decode(o),c=o.start<o.end?e.uint.decode(o):0;return{buildType:n,latestOfflineAbi:d>=6&&1&c?e.uint.decode(o):0}}},Op=de,Np={preencode(d,o){Op.preencode(d,o.header),e.fixed32.preencode(d,o.deviceKey),e.buffer.preencode(d,o.deviceProof),e.buffer.preencode(d,o.writerProof)},encode(d,o){Op.encode(d,o.header),e.fixed32.encode(d,o.deviceKey),e.buffer.encode(d,o.deviceProof),e.buffer.encode(d,o.writerProof)},decode:d=>({header:Op.decode(d),deviceKey:e.fixed32.decode(d),deviceProof:e.buffer.decode(d),writerProof:e.buffer.decode(d)})},Up={preencode(o,n){o.end++,d>=7&&n.otaResyncPrivateProfileBump&&e.uint.preencode(o,n.otaResyncPrivateProfileBump)},encode(o,n){const c=d>=7&&n.otaResyncPrivateProfileBump?1:0;e.uint.encode(o,c),d>=7&&n.otaResyncPrivateProfileBump&&e.uint.encode(o,n.otaResyncPrivateProfileBump)},decode(o){const n=e.uint.decode(o);return{otaResyncPrivateProfileBump:d>=7&&1&n?e.uint.decode(o):0}}},Jp={preencode(d,o){e.fixed32.preencode(d,o.deviceKey),e.buffer.preencode(d,o.proof),e.uint.preencode(d,o.createdAt)},encode(d,o){e.fixed32.encode(d,o.deviceKey),e.buffer.encode(d,o.proof),e.uint.encode(d,o.createdAt)},decode:d=>({deviceKey:e.fixed32.decode(d),proof:e.buffer.decode(d),createdAt:e.uint.decode(d)})},Wp=de,Gp={preencode(d,o){Wp.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){Wp.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:Wp.decode(d),callKey:e.fixed32.decode(d)})},Qp=de,Xp={preencode(d,o){Qp.preencode(d,o.header),e.fixed32.preencode(d,o.callKey),e.fixed32.preencode(d,o.deviceKey)},encode(d,o){Qp.encode(d,o.header),e.fixed32.encode(d,o.callKey),e.fixed32.encode(d,o.deviceKey)},decode:d=>({header:Qp.decode(d),callKey:e.fixed32.decode(d),deviceKey:e.fixed32.decode(d)})},Yp=e.frame(Nn),Zp=e.array(e.frame(Dn)),$p={preencode(e,d){Yp.preencode(e,d.digest),Zp.preencode(e,d.mine)},encode(e,d){Yp.encode(e,d.digest),Zp.encode(e,d.mine)},decode:e=>({digest:Yp.decode(e),mine:Zp.decode(e)})},_p=de,eu={preencode(d,o){_p.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){_p.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:_p.decode(d),callKey:e.fixed32.decode(d)})},du=de,ou={preencode(d,o){du.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){du.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:du.decode(d),callKey:e.fixed32.decode(d)})},nu={preencode(o,n){o.end++,d>=9&&n.profileSnoozeTime&&e.uint.preencode(o,n.profileSnoozeTime)},encode(o,n){const c=(d>=9&&n.disableReadReceipts?1:0)|(d>=9&&n.stripAttachmentMetadata?2:0)|(d>=9&&n.profileSnoozeTime?4:0);e.uint.encode(o,c),d>=9&&n.profileSnoozeTime&&e.uint.encode(o,n.profileSnoozeTime)},decode(o){const n=e.uint.decode(o);return{disableReadReceipts:d>=9&&!!(1&n),stripAttachmentMetadata:d>=9&&!!(2&n),profileSnoozeTime:d>=9&&4&n?e.uint.decode(o):0}}},cu={preencode(o,n){o.end++,d>=9&&n.maxPeers&&e.uint.preencode(o,n.maxPeers)},encode(o,n){const c=d>=9&&n.maxPeers?1:0;e.uint.encode(o,c),d>=9&&n.maxPeers&&e.uint.encode(o,n.maxPeers)},decode(o){const n=e.uint.decode(o);return{maxPeers:d>=9&&1&n?e.uint.decode(o):0}}},ru=de,tu={preencode(e,d){ru.preencode(e,d.header),n.preencode(e,d.oplog)},encode(e,d){ru.encode(e,d.header),n.encode(e,d.oplog)},decode:e=>({header:ru.decode(e),oplog:n.decode(e)})},iu=de,au={preencode(e,d){iu.preencode(e,d.header)},encode(e,d){iu.encode(e,d.header)},decode:e=>({header:iu.decode(e)})},su={preencode(d,o){e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.timestamp)},encode(d,o){e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.timestamp)},decode:d=>({memberKey:e.fixed32.decode(d),timestamp:e.uint.decode(d)})},pu=de,uu={preencode(o,n){pu.preencode(o,n.header),e.fixed32.preencode(o,n.memberKey),o.end++,d>=10&&n.alias&&e.string.preencode(o,n.alias)},encode(o,n){const c=d>=10&&n.alias?1:0;pu.encode(o,n.header),e.fixed32.encode(o,n.memberKey),e.uint.encode(o,c),d>=10&&n.alias&&e.string.encode(o,n.alias)},decode(o){const n=pu.decode(o),c=e.fixed32.decode(o),r=e.uint.decode(o);return{header:n,memberKey:c,alias:d>=10&&1&r?e.string.decode(o):null}}},lu={preencode(d,o){e.uint.preencode(d,o.streams)},encode(d,o){e.uint.encode(d,o.streams)},decode:d=>({streams:e.uint.decode(d)})},fu={preencode(d,o){e.fixed32.preencode(d,o.streamKey),e.string.preencode(d,o.mediaStreamId),e.string.preencode(d,o.type),d.end++},encode(o,n){const c=d>=12&&n.muted?1:0;e.fixed32.encode(o,n.streamKey),e.string.encode(o,n.mediaStreamId),e.string.encode(o,n.type),e.uint.encode(o,c)},decode(o){const n=e.fixed32.decode(o),c=e.string.decode(o),r=e.string.decode(o),t=e.uint.decode(o);return{streamKey:n,mediaStreamId:c,type:r,muted:d>=12&&!!(1&t)}}},mu=de,yu={preencode(d,o){mu.preencode(d,o.header),e.fixed32.preencode(d,o.callKey),e.fixed32.preencode(d,o.streamKey),d.end++},encode(o,n){const c=d>=12&&n.muted?1:0;mu.encode(o,n.header),e.fixed32.encode(o,n.callKey),e.fixed32.encode(o,n.streamKey),e.uint.encode(o,c)},decode(o){const n=mu.decode(o),c=e.fixed32.decode(o),r=e.fixed32.decode(o),t=e.uint.decode(o);return{header:n,callKey:c,streamKey:r,muted:d>=12&&!!(1&t)}}},xu={preencode(d,o){e.uint.preencode(d,o.statusKey),d.end++},encode(o,n){const c=d>=12&&n.muted?1:0;e.uint.encode(o,n.statusKey),e.uint.encode(o,c)},decode(o){const n=e.uint.decode(o),c=e.uint.decode(o);return{statusKey:n,muted:d>=12&&!!(1&c)}}},bu={preencode(n,c){e.fixed32.preencode(n,c.key),n.end++,d>=13&&c.encryptionKey&&e.buffer.preencode(n,c.encryptionKey),d>=13&&c.bootFrom&&o.preencode(n,c.bootFrom)},encode(n,c){const r=(d>=13&&c.encryptionKey?1:0)|(d>=13&&c.bootFrom?2:0);e.fixed32.encode(n,c.key),e.uint.encode(n,r),d>=13&&c.encryptionKey&&e.buffer.encode(n,c.encryptionKey),d>=13&&c.bootFrom&&o.encode(n,c.bootFrom)},decode(n){const c=e.fixed32.decode(n),r=e.uint.decode(n);return{key:c,encryptionKey:d>=13&&1&r?e.buffer.decode(n):null,bootFrom:d>=13&&2&r?o.decode(n):null}}},vu={preencode(d,o){e.fixed32.preencode(d,o.hash)},encode(d,o){e.fixed32.encode(d,o.hash)},decode:d=>({hash:e.fixed32.decode(d)})},gu={preencode(d,o){e.fixed32.preencode(d,o.hash),e.buffer.preencode(d,o.data)},encode(d,o){e.fixed32.encode(d,o.hash),e.buffer.encode(d,o.data)},decode:d=>({hash:e.fixed32.decode(d),data:e.buffer.decode(d)})},Ku={preencode(n,c){o.preencode(n,c.autobeeMigrationHead),n.end++,d>=13&&c.legacyViewHead&&o.preencode(n,c.legacyViewHead),d>=13&&c.dbViewHead&&o.preencode(n,c.dbViewHead),d>=13&&c.blobsViewHead&&o.preencode(n,c.blobsViewHead),e.uint.preencode(n,c.createdAt)},encode(n,c){const r=(d>=13&&c.legacyViewHead?1:0)|(d>=13&&c.dbViewHead?2:0)|(d>=13&&c.blobsViewHead?4:0);o.encode(n,c.autobeeMigrationHead),e.uint.encode(n,r),d>=13&&c.legacyViewHead&&o.encode(n,c.legacyViewHead),d>=13&&c.dbViewHead&&o.encode(n,c.dbViewHead),d>=13&&c.blobsViewHead&&o.encode(n,c.blobsViewHead),e.uint.encode(n,c.createdAt)},decode(n){const c=o.decode(n),r=e.uint.decode(n);return{autobeeMigrationHead:c,legacyViewHead:d>=13&&1&r?o.decode(n):null,dbViewHead:d>=13&&2&r?o.decode(n):null,blobsViewHead:d>=13&&4&r?o.decode(n):null,createdAt:e.uint.decode(n)}}},ku=de,hu={preencode(e,n){ku.preencode(e,n.header),o.preencode(e,n.head),e.end++,d>=13&&n.legacyViewHead&&o.preencode(e,n.legacyViewHead),d>=13&&n.dbViewHead&&o.preencode(e,n.dbViewHead),d>=13&&n.blobsViewHead&&o.preencode(e,n.blobsViewHead)},encode(n,c){const r=(d>=13&&c.legacyViewHead?1:0)|(d>=13&&c.dbViewHead?2:0)|(d>=13&&c.blobsViewHead?4:0);ku.encode(n,c.header),o.encode(n,c.head),e.uint.encode(n,r),d>=13&&c.legacyViewHead&&o.encode(n,c.legacyViewHead),d>=13&&c.dbViewHead&&o.encode(n,c.dbViewHead),d>=13&&c.blobsViewHead&&o.encode(n,c.blobsViewHead)},decode(n){const c=ku.decode(n),r=o.decode(n),t=e.uint.decode(n);return{header:c,head:r,legacyViewHead:d>=13&&1&t?o.decode(n):null,dbViewHead:d>=13&&2&t?o.decode(n):null,blobsViewHead:d>=13&&4&t?o.decode(n):null}}},wu={preencode(n,c){e.fixed32.preencode(n,c.roomKey),e.fixed32.preencode(n,c.encryptionKey),e.fixed32.preencode(n,c.seed),n.end++,d>=13&&c.bootFrom&&o.preencode(n,c.bootFrom)},encode(n,c){const r=d>=13&&c.bootFrom?1:0;e.fixed32.encode(n,c.roomKey),e.fixed32.encode(n,c.encryptionKey),e.fixed32.encode(n,c.seed),e.uint.encode(n,r),d>=13&&c.bootFrom&&o.encode(n,c.bootFrom)},decode(n){const c=e.fixed32.decode(n),r=e.fixed32.decode(n),t=e.fixed32.decode(n),i=e.uint.decode(n);return{roomKey:c,encryptionKey:r,seed:t,bootFrom:d>=13&&1&i?o.decode(n):null}}},Pu=bd,Ru={preencode(d,o){e.fixed32.preencode(d,o.memberKey),e.fixed32.preencode(d,o.deviceKey),e.uint.preencode(d,o.deviceLength),e.uint.preencode(d,o.clock),Pu.preencode(d,o.status)},encode(d,o){e.fixed32.encode(d,o.memberKey),e.fixed32.encode(d,o.deviceKey),e.uint.encode(d,o.deviceLength),e.uint.encode(d,o.clock),Pu.encode(d,o.status)},decode:d=>({memberKey:e.fixed32.decode(d),deviceKey:e.fixed32.decode(d),deviceLength:e.uint.decode(d),clock:e.uint.decode(d),status:Pu.decode(d)})},Tu={preencode(d,o){e.fixed32.preencode(d,o.hash),e.buffer.preencode(d,o.blob)},encode(d,o){e.fixed32.encode(d,o.hash),e.buffer.encode(d,o.blob)},decode:d=>({hash:e.fixed32.decode(d),blob:e.buffer.decode(d)})},Au=vc,Su=gc,Iu=tc,Mu={preencode(n,c){e.fixed32.preencode(n,c.roomKey),e.buffer.preencode(n,c.encryptionKey),e.fixed32.preencode(n,c.mailbox),Au.preencode(n,c.status),e.uint.preencode(n,c.clock),n.end++,d>=13&&c.initiator&&o.preencode(n,c.initiator),d>=13&&c.bootFrom&&o.preencode(n,c.bootFrom),d>=13&&c.identitySwap&&Su.preencode(n,c.identitySwap),d>=13&&c.identitySwapV2&&Iu.preencode(n,c.identitySwapV2),d>=13&&c.contact&&e.fixed32.preencode(n,c.contact)},encode(n,c){const r=(d>=13&&c.initiator?1:0)|(d>=13&&c.bootFrom?2:0)|(d>=13&&c.identitySwap?4:0)|(d>=13&&c.identitySwapV2?8:0)|(d>=13&&c.contact?16:0);e.fixed32.encode(n,c.roomKey),e.buffer.encode(n,c.encryptionKey),e.fixed32.encode(n,c.mailbox),Au.encode(n,c.status),e.uint.encode(n,c.clock),e.uint.encode(n,r),d>=13&&c.initiator&&o.encode(n,c.initiator),d>=13&&c.bootFrom&&o.encode(n,c.bootFrom),d>=13&&c.identitySwap&&Su.encode(n,c.identitySwap),d>=13&&c.identitySwapV2&&Iu.encode(n,c.identitySwapV2),d>=13&&c.contact&&e.fixed32.encode(n,c.contact)},decode(n){const c=e.fixed32.decode(n),r=e.buffer.decode(n),t=e.fixed32.decode(n),i=Au.decode(n),a=e.uint.decode(n),s=e.uint.decode(n);return{roomKey:c,encryptionKey:r,mailbox:t,status:i,clock:a,initiator:d>=13&&1&s?o.decode(n):null,bootFrom:d>=13&&2&s?o.decode(n):null,identitySwap:d>=13&&4&s?Su.decode(n):null,identitySwapV2:d>=13&&8&s?Iu.decode(n):null,contact:d>=13&&16&s?e.fixed32.decode(n):null}}},Fu=de,qu={preencode(n,c){Fu.preencode(n,c.header),e.fixed32.preencode(n,c.roomKey),e.buffer.preencode(n,c.encryptionKey),e.fixed32.preencode(n,c.mailbox),n.end++,d>=13&&c.bootFrom&&o.preencode(n,c.bootFrom),d>=13&&c.initiator&&o.preencode(n,c.initiator),d>=13&&c.dm&&e.fixed32.preencode(n,c.dm)},encode(n,c){const r=(d>=13&&c.bootFrom?1:0)|(d>=13&&c.initiator?2:0)|(d>=13&&c.dm?4:0)|(d>=13&&c.isReadOnly?8:0);Fu.encode(n,c.header),e.fixed32.encode(n,c.roomKey),e.buffer.encode(n,c.encryptionKey),e.fixed32.encode(n,c.mailbox),e.uint.encode(n,r),d>=13&&c.bootFrom&&o.encode(n,c.bootFrom),d>=13&&c.initiator&&o.encode(n,c.initiator),d>=13&&c.dm&&e.fixed32.encode(n,c.dm)},decode(n){const c=Fu.decode(n),r=e.fixed32.decode(n),t=e.buffer.decode(n),i=e.fixed32.decode(n),a=e.uint.decode(n);return{header:c,roomKey:r,encryptionKey:t,mailbox:i,bootFrom:d>=13&&1&a?o.decode(n):null,initiator:d>=13&&2&a?o.decode(n):null,dm:d>=13&&4&a?e.fixed32.decode(n):null,isReadOnly:d>=13&&!!(8&a)}}},Cu={preencode(n,c){e.fixed32.preencode(n,c.roomKey),e.buffer.preencode(n,c.encryptionKey),n.end++,d>=13&&c.bootFrom&&o.preencode(n,c.bootFrom),d>=13&&c.initiator&&o.preencode(n,c.initiator)},encode(n,c){const r=(d>=13&&c.bootFrom?1:0)|(d>=13&&c.initiator?2:0);e.fixed32.encode(n,c.roomKey),e.buffer.encode(n,c.encryptionKey),e.uint.encode(n,r),d>=13&&c.bootFrom&&o.encode(n,c.bootFrom),d>=13&&c.initiator&&o.encode(n,c.initiator)},decode(n){const c=e.fixed32.decode(n),r=e.buffer.decode(n),t=e.uint.decode(n);return{roomKey:c,encryptionKey:r,bootFrom:d>=13&&1&t?o.decode(n):null,initiator:d>=13&&2&t?o.decode(n):null}}},Vu={preencode(d,o){e.fixed32.preencode(d,o.roomKey),ll.preencode(d,o.head),e.uint.preencode(d,o.timestamp),d.end++},encode(o,n){const c=d>=13&&n.incremental?1:0;e.fixed32.encode(o,n.roomKey),ll.encode(o,n.head),e.uint.encode(o,n.timestamp),e.uint.encode(o,c)},decode(o){const n=e.fixed32.decode(o),c=ll.decode(o),r=e.uint.decode(o),t=e.uint.decode(o);return{roomKey:n,head:c,timestamp:r,incremental:d>=13&&!!(1&t)}}},Hu={preencode(o,n){o.end++,d>=13&&n.key&&e.fixed32.preencode(o,n.key),e.uint.preencode(o,n.length)},encode(o,n){const c=d>=13&&n.key?1:0;e.uint.encode(o,c),d>=13&&n.key&&e.fixed32.encode(o,n.key),e.uint.encode(o,n.length)},decode(o){const n=e.uint.decode(o);return{key:d>=13&&1&n?e.fixed32.decode(o):null,length:e.uint.decode(o)}}},Du={preencode(n,c){e.fixed32.preencode(n,c.roomKey),n.end++,d>=13&&c.legacyViewHead&&o.preencode(n,c.legacyViewHead),d>=13&&c.dbViewHead&&o.preencode(n,c.dbViewHead),d>=13&&c.blobsViewHead&&o.preencode(n,c.blobsViewHead),d>=13&&c.autobeeMigrationHead&&o.preencode(n,c.autobeeMigrationHead)},encode(n,c){const r=(d>=13&&c.legacyViewHead?1:0)|(d>=13&&c.dbViewHead?2:0)|(d>=13&&c.blobsViewHead?4:0)|(d>=13&&c.autobeeMigrationHead?8:0);e.fixed32.encode(n,c.roomKey),e.uint.encode(n,r),d>=13&&c.legacyViewHead&&o.encode(n,c.legacyViewHead),d>=13&&c.dbViewHead&&o.encode(n,c.dbViewHead),d>=13&&c.blobsViewHead&&o.encode(n,c.blobsViewHead),d>=13&&c.autobeeMigrationHead&&o.encode(n,c.autobeeMigrationHead)},decode(n){const c=e.fixed32.decode(n),r=e.uint.decode(n);return{roomKey:c,legacyViewHead:d>=13&&1&r?o.decode(n):null,dbViewHead:d>=13&&2&r?o.decode(n):null,blobsViewHead:d>=13&&4&r?o.decode(n):null,autobeeMigrationHead:d>=13&&8&r?o.decode(n):null}}},Lu={preencode(d,o){e.fixed32.preencode(d,o.id),e.fixed32.preencode(d,o.writerKey),e.buffer.preencode(d,o.blindResponse)},encode(d,o){e.fixed32.encode(d,o.id),e.fixed32.encode(d,o.writerKey),e.buffer.encode(d,o.blindResponse)},decode:d=>({id:e.fixed32.decode(d),writerKey:e.fixed32.decode(d),blindResponse:e.buffer.decode(d)})},ju=de,Eu={preencode(d,o){ju.preencode(d,o.header),e.buffer.preencode(d,o.blindResponse)},encode(d,o){ju.encode(d,o.header),e.buffer.encode(d,o.blindResponse)},decode:d=>({header:ju.decode(d),blindResponse:e.buffer.decode(d)})},Bu=e.frame(qr),zu={preencode(o,n){e.string.preencode(o,n.mnemonic),o.end++,d>=15&&n.profileDiscoveryTimeout&&e.uint.preencode(o,n.profileDiscoveryTimeout),d>=15&&n.privateProfileKey&&e.fixed32.preencode(o,n.privateProfileKey),d>=15&&n.identity&&Bu.preencode(o,n.identity)},encode(o,n){const c=(d>=15&&n.profileDiscoveryTimeout?1:0)|(d>=15&&n.privateProfileKey?2:0)|(d>=15&&n.identity?4:0);e.string.encode(o,n.mnemonic),e.uint.encode(o,c),d>=15&&n.profileDiscoveryTimeout&&e.uint.encode(o,n.profileDiscoveryTimeout),d>=15&&n.privateProfileKey&&e.fixed32.encode(o,n.privateProfileKey),d>=15&&n.identity&&Bu.encode(o,n.identity)},decode(o){const n=e.string.decode(o),c=e.uint.decode(o);return{mnemonic:n,profileDiscoveryTimeout:d>=15&&1&c?e.uint.decode(o):0,privateProfileKey:d>=15&&2&c?e.fixed32.decode(o):null,identity:d>=15&&4&c?Bu.decode(o):null}}},Ou=e.frame(w),Nu=e.frame(lu),Uu=Ou,Ju=e.frame(le),Wu=Ou,Gu=Ju,Qu=e.frame(wu),Xu=Ju,Yu=e.frame(wd),Zu=e.frame(mp),$u=Zu,_u=Ou,el=Ou,dl=e.frame(Ic),ol=dl,nl=dl,cl=e.frame(Cp),rl=e.frame($p),tl=e.frame(nu),il=e.frame(Hu),al=il,sl=Ju,pl=e.array(e.frame(fu)),ul=pl,ll=il;function fl(e){switch(e){case"@keet/head":return o;case"@keet/oplog-id":return n;case"@keet/encryption-keypair":return c;case"@keet/signing-keypair":return r;case"@keet/room-keys":return t;case"@keet/operation-header":return i;case"@keet/blob-pointer":return a;case"@keet/file-dimensions":return s;case"@keet/file-metadata":return u;case"@keet/external-drive-pointer":return l;case"@keet/external-blob-pointer":return f;case"@keet/file-pointer":return x;case"@keet/file":return g;case"@keet/image-file":return w;case"@keet/file-status":return P;case"@keet/file-record":return A;case"@keet/device-status":return S;case"@keet/member-status":return I;case"@keet/member-moderation-status":return M;case"@keet/abi":return F;case"@keet/device-stats":return q;case"@keet/member-stats":return C;case"@keet/chat-stats":return V;case"@keet/file-stats":return H;case"@keet/stats":return B;case"@keet/room-type":return O;case"@keet/system-settings":return N;case"@keet/system-digest":return W;case"@keet/room-seed":return G;case"@keet/room-capabilities":return Q;case"@keet/room-supported-language":return Y;case"@keet/room-config":return _;case"@keet/blind-peer":return ee;case"@keet/add-blind-peer-operation":return ne;case"@keet/remove-blind-peer-operation":return re;case"@keet/identity-attestation":return te;case"@keet/device-invitation":return ie;case"@keet/device":return pe;case"@keet/member-profile":return ue;case"@keet/device-profile":return le;case"@keet/member-update":return me;case"@keet/device-update":return ye;case"@keet/member-contact-info":return be;case"@keet/signed-pairing-data":return ve;case"@keet/device-request-identity":return ge;case"@keet/device-response-identity":return Ke;case"@keet/device-identity":return ke;case"@keet/device-request-with-invitation":return Re;case"@keet/device-request-with-invitation-and-proof":return Ae;case"@keet/device-request-with-member-proof":return Me;case"@keet/device-request":return Ce;case"@keet/device-response":return De;case"@keet/invitation-metadata":return Le;case"@keet/invitation":return Be;case"@keet/add-invitation-operation":return Ne;case"@keet/remove-invitation-operation":return Je;case"@keet/sendable-room-invitation":return We;case"@keet/readonly-room-invitation":return Ge;case"@keet/sendable-identity-invitation":return Qe;case"@keet/sendable-contact-invitation":return Xe;case"@keet/sendable-invitation":return dd;case"@keet/add-device-operation":return nd;case"@keet/update-device-operation":return rd;case"@keet/remove-device-operation":return id;case"@keet/start-indexing-operation":return ad;case"@keet/stop-indexing-operation":return sd;case"@keet/join-request":return ud;case"@keet/accept-join-request-operation":return md;case"@keet/reject-join-request-operation":return xd;case"@keet/member":return gd;case"@keet/full-member":return hd;case"@keet/member-proofs":return wd;case"@keet/update-member-operation":return Td;case"@keet/change-member-status-operation":return Id;case"@keet/change-member-role-operation":return Fd;case"@keet/remove-member-operation":return Cd;case"@keet/member-activity":return Vd;case"@keet/member-joined-event":return Hd;case"@keet/member-left-event":return Dd;case"@keet/member-removed-event":return Ld;case"@keet/title-changed-chat-event":return jd;case"@keet/chat-event":return Nd;case"@keet/sendable-event":return Ud;case"@keet/display-range":return Jd;case"@keet/display-content-range":return Gd;case"@keet/mention-display-item":return Xd;case"@keet/translation-display-item":return Zd;case"@keet/link-preview":return eo;case"@keet/display-link-item":return co;case"@keet/display":return yo;case"@keet/oplog-message":return go;case"@keet/index-message":return ho;case"@keet/full-index-message":return Ro;case"@keet/message-status":return To;case"@keet/message-index-id":return Ao;case"@keet/thread":return Io;case"@keet/chat-message-record":return Co;case"@keet/full-chat-message-record":return Lo;case"@keet/add-chat-message-operation":return Bo;case"@keet/remove-chat-message-operation":return Oo;case"@keet/update-chat-message-operation":return Jo;case"@keet/pin-chat-message-operation":return Go;case"@keet/display-type":return Xo;case"@keet/add-file-preview-operation":return Zo;case"@keet/reaction":return $o;case"@keet/reactions-summary":return _o;case"@keet/reactions-digest":return dn;case"@keet/add-reaction-operation":return nn;case"@keet/remove-reaction-operation":return rn;case"@keet/update-room-config-operation":return sn;case"@keet/group-member":return pn;case"@keet/user-registry-info":return un;case"@keet/room-identity":return fn;case"@keet/genesis-operation":return kn;case"@keet/upgrade-operation":return wn;case"@keet/migrate-abi-operation":return Rn;case"@keet/system-settings-keys":return An;case"@keet/update-system-settings-operation":return Mn;case"@keet/test-increment-operation":return qn;case"@keet/test-collection-record-1":return Cn;case"@keet/label-type":return Hn;case"@keet/chat-label":return Dn;case"@keet/add-chat-label-operation":return jn;case"@keet/remove-chat-label-operation":return Bn;case"@keet/chat-label-summary":return zn;case"@keet/chat-label-digest":return Nn;case"@keet/update-read-length-operation":return Jn;case"@keet/read-length":return Wn;case"@keet/tmp-removed-member":return Gn;case"@keet-private-id/contact":return Xn;case"@keet-private-id/v3-room-migration-info":return Yn;case"@keet-private-id/run-v3-migration-operation":return _n;case"@keet-private-id/update-identity-operation":return dc;case"@keet-private-id/counters":return oc;case"@keet-private-id/stats":return nc;case"@keet-private-id/add-entropy-operation":return cc;case"@keet-private-id/pending-invitation-identity":return rc;case"@keet-private-id/pending-invitation":return ic;case"@keet-private-id/resolve-pending-invitation-operation":return sc;case"@keet-private-id/add-pending-invitation-operation":return lc;case"@keet-private-id/remove-pending-invitation-operation":return mc;case"@keet-private-id/identity-swap":return yc;case"@keet-private-id/identity-swap-v2":return xc;case"@keet-private-id/room-status":return bc;case"@keet-private-id/room":return kc;case"@keet-private-id/add-room-operation":return wc;case"@keet-private-id/remove-room-operation":return Rc;case"@keet-private-id/update-room-status-operation":return Sc;case"@keet-private-id/contact-status":return Ic;case"@keet-private-id/contact-record":return Fc;case"@keet-private-id/add-contact-operation":return Vc;case"@keet-private-id/update-contact-status-operation":return Dc;case"@keet-private-id/remove-contact-operation":return jc;case"@keet-private-id/activate-contact-room-operation":return Bc;case"@keet-private-id/contact-request-status":return zc;case"@keet-private-id/contact-request-body":return Uc;case"@keet-private-id/contact-request":return Wc;case"@keet-private-id/contact-request-record":return Zc;case"@keet-private-id/add-contact-request-operation":return _c;case"@keet-private-id/update-contact-request-status-operation":return or;case"@keet-private-id/profile-discovery-record-v1":return nr;case"@keet-private-id/profile-discovery-record":return cr;case"@keet-private-id/unreads":return rr;case"@keet-private-id/add-unreads-key-operation":return ir;case"@keet-private-id/remove-unreads-key-operation":return sr;case"@keet-private-id/settings":return pr;case"@keet-private-id/user-settings-key":return lr;case"@keet-private-id/update-settings-operation":return yr;case"@local/background-sync-room":return xr;case"@local/stats":return br;case"@local/migration-status":return vr;case"@local/v3-private-profile-migration":return Kr;case"@local/v3-room-migration":return wr;case"@local/room-migration-stats":return Pr;case"@local/room-migration":return Tr;case"@local/identity-status":return Ar;case"@local/identity-swap":return Sr;case"@local/identity-record":return qr;case"@local/tasks":return Vr;case"@local/room-keys":return Hr;case"@local/join-room-invitation-task":return Lr;case"@local/join-room-response-task":return jr;case"@local/fast-forward-to":return Er;case"@local/add-room-fields":return Br;case"@local/join-room-keys-task":return Or;case"@local/create-room-task":return Ur;case"@local/leave-room-task":return Jr;case"@local/clear-room-task":return Wr;case"@local/restore-identity-task":return Gr;case"@local/send-contact-request-task":return Xr;case"@local/migrate-v2-room-task":return Yr;case"@local/task":return tt;case"@local/shared-invitation":return at;case"@local/room-status":return st;case"@local/room-timestamps":return pt;case"@local/room":return Rt;case"@local/room-preferences":return At;case"@local/room-metadata":return St;case"@local/writer":return It;case"@local/writer-append":return Mt;case"@local/member":return qt;case"@local/device":return Vt;case"@local/file":return Dt;case"@local/debug-flag":return Lt;case"@local/debug":return Et;case"@local/hyperdht-record":return zt;case"@local/unread":return Ot;case"@local/error-record-details":return Nt;case"@local/error-record":return Jt;case"@local/keet-state":return Gt;case"@local/file-stats":return Qt;case"@api/request-header":return Xt;case"@api/response-header":return Yt;case"@api/subscription-request-header":return Zt;case"@api/subscription-response-header":return $t;case"@api/boot-request":return ei;case"@api/boot-response":return oi;case"@api/self-destruct-request":return ci;case"@api/core/have":return ri;case"@api/core/create-room-request":return si;case"@api/core/create-room-response":return ui;case"@api/core/activate-room-request":return fi;case"@api/core/deactivate-room-request":return yi;case"@api/core/leave-room-request":return bi;case"@api/core/leave-room-response":return gi;case"@api/core/update-room-config-request":return hi;case"@api/core/update-room-settings-request":return Ri;case"@api/core/update-room-status-request":return Si;case"@api/core/add-chat-message-request":return Fi;case"@api/core/add-chat-message-response":return Ci;case"@api/core/edit-chat-message-request":return Di;case"@api/core/edit-chat-message-response":return ji;case"@api/core/remove-chat-message-request":return Bi;case"@api/core/remove-chat-message-response":return Oi;case"@api/core/add-chat-reaction-request":return Ui;case"@api/core/add-chat-reaction-response":return Wi;case"@api/core/remove-chat-reaction-request":return Qi;case"@api/core/remove-chat-reaction-response":return Yi;case"@api/core/want-lobby":return Zi;case"@api/core/unwant-lobby":return $i;case"@api/core/want-room-info":return ea;case"@api/core/want-chat":return da;case"@api/core/unwant-chat":return oa;case"@api/core/want-members":return na;case"@api/core/unwant-members":return ca;case"@api/core/lobby-record":return ra;case"@api/core/lobby-record-change-type":return ia;case"@api/core/lobby":return sa;case"@api/core/lobby-room":return pa;case"@api/core/room-role":return fa;case"@api/core/room-info":return ba;case"@api/core/room-info-status":return ga;case"@api/core/room-info-digest":return ka;case"@api/core/room-info-config":return wa;case"@api/core/room-info-role":return Ra;case"@api/core/room-info-last-message":return Ta;case"@api/core/member":return Sa;case"@api/core/device":return Ma;case"@api/core/member-list-add":return Fa;case"@api/core/member-list-remove":return qa;case"@api/core/chat-reset":return Va;case"@api/core/message-timestamps":return Ha;case"@api/core/message":return Ba;case"@api/core/message-info":return Na;case"@api/core/message-info-chat":return Ja;case"@api/core/message-info-member":return Ga;case"@api/core/message-info-role":return Ya;case"@api/core/message-info-reactions":return $a;case"@api/core/reactions":return es;case"@api/core/want-pairing":return ds;case"@api/core/unwant-pairing":return os;case"@api/core/pending-invitations":return cs;case"@api/core/join-request":return ts;case"@api/core/join-requests":return as;case"@api/core/pairing":return us;case"@api/core/start-pairing-request":return fs;case"@api/core/start-pairing-response":return ys;case"@api/core/invitation-permissions":return xs;case"@api/core/create-room-invitation-request":return gs;case"@api/core/create-room-invitation-response":return ks;case"@api/core/create-identity-invitation-request":return ws;case"@api/core/create-identity-invitation-response":return Rs;case"@api/core/accept-join-request-request":return Ss;case"@api/core/accept-join-request-response":return Ms;case"@api/core/reject-join-request-request":return Cs;case"@api/core/reject-join-request-response":return Hs;case"@api/core/stop-pairing-request":return Ls;case"@api/core/stop-pairing-response":return Es;case"@api/core/update-profile-request":return zs;case"@api/core/want-identity":return Os;case"@api/core/unwant-identity":return Ns;case"@api/core/identity-status":return Us;case"@api/core/identity":return Gs;case"@api/core/identity-member":return Qs;case"@api/core/identity-device":return Xs;case"@api/debug/enable-request":return Zs;case"@api/debug/enable-response":return _s;case"@api/debug/disable-request":return dp;case"@api/debug/disable-response":return np;case"@keet/member-label-type":return rp;case"@keet/member-label":return tp;case"@keet/add-member-label-operation":return ap;case"@keet/member-label-summary":return sp;case"@keet/member-label-digest":return up;case"@keet/move-indexer-operation":return fp;case"@keet/location-shared-event":return mp;case"@keet/start-call":return bp;case"@keet/join-call":return Kp;case"@keet/leave-call":return hp;case"@keet/end-call":return Pp;case"@keet/add-call-stream":return Tp;case"@keet/remove-call-stream":return Sp;case"@keet/call-record":return Ip;case"@keet/call-member-record":return Mp;case"@keet/call-device-record":return Fp;case"@keet/call-stream-record":return qp;case"@local/active-call":return Cp;case"@local/file-gc-info":return Vp;case"@keet/build-type":return Dp;case"@keet/test-crash-operation":return jp;case"@keet/test-dispatch-error-operation":return Bp;case"@local/environment-record":return zp;case"@keet-private-id/shorten-device-attestation-operation":return Np;case"@local/ota-actions":return Up;case"@local/device-attestation":return Jp;case"@keet/call-device-heartbeat":return Gp;case"@keet/remove-call-device":return Xp;case"@local/chat-labels":return $p;case"@keet/start-call-recording":return eu;case"@keet/stop-call-recording":return ou;case"@local/settings":return nu;case"@local/hyperswarm-record":return cu;case"@keet/dismiss-chat-reports-operation":return tu;case"@keet/update-typing-indicator-operation":return au;case"@keet/typing-indicator":return su;case"@keet-private-id/update-contact-alias-operation":return uu;case"@keet/call-stats":return lu;case"@keet/call-stream-input":return fu;case"@keet/update-call-stream":return yu;case"@keet/call-stream-status-record":return xu;case"@keet/room-keys-v2":return bu;case"@keet/blob-pointer-v2":return vu;case"@keet/blob":return gu;case"@keet/autobee-migration":return Ku;case"@keet/autobee-migration-operation":return hu;case"@keet/readonly-room-invitation-v2":return wu;case"@keet/admin-last-seen":return Ru;case"@keet/blob-record":return Tu;case"@keet-private-id/room-v2":return Mu;case"@keet-private-id/add-room-operation-v2":return qu;case"@local/room-keys/v2":return Cu;case"@local/room-update":return Vu;case"@local/view-head":return Hu;case"@local/autobee-migration":return Du;case"@keet-private-id/pending-invitation-response":return Lu;case"@keet-private-id/resolve-pending-invitation-operation-v2":return Eu;case"@local/pending-recovery":return zu;default:throw new Error("Encoder not found "+e)}}function ml(e,o=15){const n=fl(e);return{preencode(e,c){d=o,n.preencode(e,c)},encode(e,c){d=o,n.encode(e,c)},decode:e=>(d=o,n.decode(e))}}const yl=ml;module.exports={resolveStruct:yl,getStruct:ml,getEnum:function(e){switch(e){case"@keet/room-type":return z;case"@keet/room-supported-language":return X;case"@keet/display-type":return Qo;case"@keet/system-settings-keys":return Tn;case"@keet/label-type":return Vn;case"@keet-private-id/user-settings-key":return ur;case"@local/tasks":return Cr;case"@local/keet-state":return Wt;case"@api/core/lobby-record-change-type":return ta;case"@keet/member-label-type":return cp;case"@keet/build-type":return Hp;default:throw new Error("Enum not found "+e)}},getEncoding:fl,encode:function(o,n,c=15){return d=c,e.encode(fl(o),n)},decode:function(o,n,c=15){return d=c,e.decode(fl(o),n)},setVersion:function(e){d=e},version:d};
@holepunchto/keet-core/schema/spec/api/hyperschema/index.js +1 -1
……@@ -1 +1 @@
1const{c:e}=require("hyperschema/runtime");let d=10;const o={preencode(d,o){e.fixed32.preencode(d,o.key),e.uint.preencode(d,o.length)},encode(d,o){e.fixed32.encode(d,o.key),e.uint.encode(d,o.length)},decode:d=>({key:e.fixed32.decode(d),length:e.uint.decode(d)})},n={preencode(d,o){e.fixed32.preencode(d,o.key),e.uint.preencode(d,o.seq)},encode(d,o){e.fixed32.encode(d,o.key),e.uint.encode(d,o.seq)},decode:d=>({key:e.fixed32.decode(d),seq:e.uint.decode(d)})},c={preencode(d,o){e.fixed32.preencode(d,o.publicKey),e.fixed32.preencode(d,o.secretKey)},encode(d,o){e.fixed32.encode(d,o.publicKey),e.fixed32.encode(d,o.secretKey)},decode:d=>({publicKey:e.fixed32.decode(d),secretKey:e.fixed32.decode(d)})},r={preencode(d,o){e.fixed32.preencode(d,o.publicKey),e.fixed64.preencode(d,o.secretKey)},encode(d,o){e.fixed32.encode(d,o.publicKey),e.fixed64.encode(d,o.secretKey)},decode:d=>({publicKey:e.fixed32.decode(d),secretKey:e.fixed64.decode(d)})},t={preencode(d,o){e.fixed32.preencode(d,o.key),d.end++,o.encryptionKey&&e.buffer.preencode(d,o.encryptionKey),o.fastForwardTo&&e.fixed32.preencode(d,o.fastForwardTo)},encode(d,o){const n=(o.encryptionKey?1:0)|(o.fastForwardTo?2:0);e.fixed32.encode(d,o.key),e.uint.encode(d,n),o.encryptionKey&&e.buffer.encode(d,o.encryptionKey),o.fastForwardTo&&e.fixed32.encode(d,o.fastForwardTo)},decode(d){const o=e.fixed32.decode(d),n=e.uint.decode(d);return{key:o,encryptionKey:1&n?e.buffer.decode(d):null,fastForwardTo:2&n?e.fixed32.decode(d):null}}},i={preencode(d,o){e.uint.preencode(d,o.timestamp)},encode(d,o){e.uint.encode(d,o.timestamp)},decode:d=>({timestamp:e.uint.decode(d)})},a={preencode(d,o){e.uint.preencode(d,o.blockOffset),e.uint.preencode(d,o.blockLength),e.uint.preencode(d,o.byteOffset),e.uint.preencode(d,o.byteLength)},encode(d,o){e.uint.encode(d,o.blockOffset),e.uint.encode(d,o.blockLength),e.uint.encode(d,o.byteOffset),e.uint.encode(d,o.byteLength)},decode:d=>({blockOffset:e.uint.decode(d),blockLength:e.uint.decode(d),byteOffset:e.uint.decode(d),byteLength:e.uint.decode(d)})},s={preencode(d,o){e.uint.preencode(d,o.width),e.uint.preencode(d,o.height)},encode(d,o){e.uint.encode(d,o.width),e.uint.encode(d,o.height)},decode:d=>({width:e.uint.decode(d),height:e.uint.decode(d)})},p=e.frame(s),u={preencode(d,o){d.end++,o.name&&e.string.preencode(d,o.name),o.mimetype&&e.string.preencode(d,o.mimetype),o.dimensions&&p.preencode(d,o.dimensions),o.userdata&&e.buffer.preencode(d,o.userdata),o.duration&&e.uint.preencode(d,o.duration)},encode(d,o){const n=(o.name?1:0)|(o.mimetype?2:0)|(o.dimensions?4:0)|(o.userdata?8:0)|(o.duration?16:0)|(o.isPreview?32:0);e.uint.encode(d,n),o.name&&e.string.encode(d,o.name),o.mimetype&&e.string.encode(d,o.mimetype),o.dimensions&&p.encode(d,o.dimensions),o.userdata&&e.buffer.encode(d,o.userdata),o.duration&&e.uint.encode(d,o.duration)},decode(d){const o=e.uint.decode(d);return{name:1&o?e.string.decode(d):null,mimetype:2&o?e.string.decode(d):null,dimensions:4&o?p.decode(d):null,userdata:8&o?e.buffer.decode(d):null,duration:16&o?e.uint.decode(d):0,isPreview:!!(32&o)}}},l={preencode(d,o){e.fixed32.preencode(d,o.key),e.string.preencode(d,o.path),e.uint.preencode(d,o.version),e.uint.preencode(d,o.size)},encode(d,o){e.fixed32.encode(d,o.key),e.string.encode(d,o.path),e.uint.encode(d,o.version),e.uint.encode(d,o.size)},decode:d=>({key:e.fixed32.decode(d),path:e.string.decode(d),version:e.uint.decode(d),size:e.uint.decode(d)})},f={preencode(d,o){e.fixed32.preencode(d,o.key),a.preencode(d,o.blob)},encode(d,o){e.fixed32.encode(d,o.key),a.encode(d,o.blob)},decode:d=>({key:e.fixed32.decode(d),blob:a.decode(d)})},m=e.frame(f),y=e.frame(l),x={preencode(d,o){d.end++,o.inlined&&e.buffer.preencode(d,o.inlined),o.blob&&a.preencode(d,o.blob),o.externalBlob&&m.preencode(d,o.externalBlob),o.externalDrive&&y.preencode(d,o.externalDrive)},encode(d,o){const n=(o.inlined?1:0)|(o.blob?2:0)|(o.externalBlob?4:0)|(o.externalDrive?8:0);e.uint.encode(d,n),o.inlined&&e.buffer.encode(d,o.inlined),o.blob&&a.encode(d,o.blob),o.externalBlob&&m.encode(d,o.externalBlob),o.externalDrive&&y.encode(d,o.externalDrive)},decode(d){const o=e.uint.decode(d);return{inlined:1&o?e.buffer.decode(d):null,blob:2&o?a.decode(d):null,externalBlob:4&o?m.decode(d):null,externalDrive:8&o?y.decode(d):null}}},b=e.frame(x),v=e.frame(u),g={preencode(d,o){b.preencode(d,o.pointer),d.end++,o.metadata&&v.preencode(d,o.metadata),o.preview&&lu.preencode(d,o.preview),o.hash&&e.fixed32.preencode(d,o.hash)},encode(d,o){const n=(o.metadata?1:0)|(o.preview?2:0)|(o.hash?4:0);b.encode(d,o.pointer),e.uint.encode(d,n),o.metadata&&v.encode(d,o.metadata),o.preview&&lu.encode(d,o.preview),o.hash&&e.fixed32.encode(d,o.hash)},decode(d){const o=b.decode(d),n=e.uint.decode(d);return{pointer:o,metadata:1&n?v.decode(d):null,preview:2&n?lu.decode(d):null,hash:4&n?e.fixed32.decode(d):null}}},h=e.frame(g),k=h,K=h,w={preencode(e,d){e.end++,d.small&&h.preencode(e,d.small),d.medium&&k.preencode(e,d.medium),d.large&&K.preencode(e,d.large)},encode(d,o){const n=(o.small?1:0)|(o.medium?2:0)|(o.large?4:0);e.uint.encode(d,n),o.small&&h.encode(d,o.small),o.medium&&k.encode(d,o.medium),o.large&&K.encode(d,o.large)},decode(d){const o=e.uint.decode(d);return{small:1&o?h.decode(d):null,medium:2&o?k.decode(d):null,large:4&o?K.decode(d):null}}},P={preencode(e,d){e.end++},encode(d,o){const n=o.isDeleted?1:0;e.uint.encode(d,n)},decode:d=>({isDeleted:!!(1&e.uint.decode(d))})},R=e.frame(P),T=h,A={preencode(d,o){e.uint.preencode(d,o.id),n.preencode(d,o.oplog),R.preencode(d,o.status),T.preencode(d,o.file),d.end++,o.version&&e.uint.preencode(d,o.version)},encode(d,o){const c=o.version?1:0;e.uint.encode(d,o.id),n.encode(d,o.oplog),R.encode(d,o.status),T.encode(d,o.file),e.uint.encode(d,c),o.version&&e.uint.encode(d,o.version)},decode:d=>({id:e.uint.decode(d),oplog:n.decode(d),status:R.decode(d),file:T.decode(d),version:1&e.uint.decode(d)?e.uint.decode(d):0})},M={preencode(e,d){e.end++},encode(d,o){const n=(o.isActive?1:0)|(o.isIndexing?2:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isActive:!!(1&o),isIndexing:!!(2&o)}}},q={preencode(d,o){const n=(o.isAdmin?1:0)|(o.isModerator?2:0)|(o.isPending?4:0)|(o.isActive?8:0)|(o.isMuted?16:0)|(o.isBanned?32:0)|(o.isShadowBanned?64:0)|(o.isRemoved?128:0);e.uint.preencode(d,n)},encode(d,o){const n=(o.isAdmin?1:0)|(o.isModerator?2:0)|(o.isPending?4:0)|(o.isActive?8:0)|(o.isMuted?16:0)|(o.isBanned?32:0)|(o.isShadowBanned?64:0)|(o.isRemoved?128:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isAdmin:!!(1&o),isModerator:!!(2&o),isPending:!!(4&o),isActive:!!(8&o),isMuted:!!(16&o),isBanned:!!(32&o),isShadowBanned:!!(64&o),isRemoved:!!(128&o)}}},I={preencode(e,d){e.end++},encode(d,o){const n=(o.isMuted?1:0)|(o.isBanned?2:0)|(o.isShadowBanned?4:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isMuted:!!(1&o),isBanned:!!(2&o),isShadowBanned:!!(4&o)}}},S={preencode(d,o){e.uint.preencode(d,o.version)},encode(d,o){e.uint.encode(d,o.version)},decode:d=>({version:e.uint.decode(d)})},C={preencode(d,o){e.uint.preencode(d,o.total),e.uint.preencode(d,o.active)},encode(d,o){e.uint.encode(d,o.total),e.uint.encode(d,o.active)},decode:d=>({total:e.uint.decode(d),active:e.uint.decode(d)})},D={preencode(d,o){e.uint.preencode(d,o.total),e.uint.preencode(d,o.active),e.uint.preencode(d,o.pending)},encode(d,o){e.uint.encode(d,o.total),e.uint.encode(d,o.active),e.uint.encode(d,o.pending)},decode:d=>({total:e.uint.decode(d),active:e.uint.decode(d),pending:e.uint.decode(d)})},L={preencode(d,o){e.uint.preencode(d,o.clock),e.uint.preencode(d,o.pinned),e.uint.preencode(d,o.threads),e.uint.preencode(d,o.timestamp),d.end++,o.flagsClock&&e.uint.preencode(d,o.flagsClock)},encode(d,o){const n=o.flagsClock?1:0;e.uint.encode(d,o.clock),e.uint.encode(d,o.pinned),e.uint.encode(d,o.threads),e.uint.encode(d,o.timestamp),e.uint.encode(d,n),o.flagsClock&&e.uint.encode(d,o.flagsClock)},decode:d=>({clock:e.uint.decode(d),pinned:e.uint.decode(d),threads:e.uint.decode(d),timestamp:e.uint.decode(d),flagsClock:1&e.uint.decode(d)?e.uint.decode(d):0})},F={preencode(d,o){e.uint.preencode(d,o.clock)},encode(d,o){e.uint.encode(d,o.clock)},decode:d=>({clock:e.uint.decode(d)})},j=e.frame(C),E=e.frame(D),B=e.frame(L),z=e.frame(F),N={preencode(e,d){j.preencode(e,d.devices),E.preencode(e,d.members),B.preencode(e,d.chat),z.preencode(e,d.files)},encode(e,d){j.encode(e,d.devices),E.encode(e,d.members),B.encode(e,d.chat),z.encode(e,d.files)},decode:e=>({devices:j.decode(e),members:E.decode(e),chat:B.decode(e),files:z.decode(e)})},O={Default:1,Broadcast:2,DirectMessage:3},U={preencode(e,d){e.end++},encode(d,o){if(o>3)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},V={preencode(o,n){const c=(n.roomType?1:0)|(n.isExperimental?2:0)|(n.isJoiningDisabled?4:0)|(n.isAppendingDisabled?8:0)|(n.isCallingDisabled?16:0)|(n.isMembershipEventsDisabled?32:0)|(d>=4&&n.isAttachmentsDisabled?64:0)|(d>=4&&n.isLinksDisabled?128:0)|(d>=5&&n.buildType?256:0)|(d>=9&&n.isRoomInviteHidden?512:0);e.uint.preencode(o,c),n.roomType&&U.preencode(o,n.roomType),d>=5&&n.buildType&&jp.preencode(o,n.buildType)},encode(o,n){const c=(n.roomType?1:0)|(n.isExperimental?2:0)|(n.isJoiningDisabled?4:0)|(n.isAppendingDisabled?8:0)|(n.isCallingDisabled?16:0)|(n.isMembershipEventsDisabled?32:0)|(d>=4&&n.isAttachmentsDisabled?64:0)|(d>=4&&n.isLinksDisabled?128:0)|(d>=5&&n.buildType?256:0)|(d>=9&&n.isRoomInviteHidden?512:0);e.uint.encode(o,c),n.roomType&&U.encode(o,n.roomType),d>=5&&n.buildType&&jp.encode(o,n.buildType)},decode(o){const n=e.uint.decode(o);return{roomType:1&n?U.decode(o):0,isExperimental:!!(2&n),isJoiningDisabled:!!(4&n),isAppendingDisabled:!!(8&n),isCallingDisabled:!!(16&n),isMembershipEventsDisabled:!!(32&n),isAttachmentsDisabled:d>=4&&!!(64&n),isLinksDisabled:d>=4&&!!(128&n),buildType:d>=5&&256&n?jp.decode(o):null,isRoomInviteHidden:d>=9&&!!(512&n)}}},J=e.frame(S),H=e.frame(V),W={preencode(d,o){J.preencode(d,o.abi),H.preencode(d,o.settings),e.uint.preencode(d,o.creationTime)},encode(d,o){J.encode(d,o.abi),H.encode(d,o.settings),e.uint.encode(d,o.creationTime)},decode:d=>({abi:J.decode(d),settings:H.decode(d),creationTime:e.uint.decode(d)})},G={preencode(d,o){e.fixed32.preencode(d,o.seed)},encode(d,o){e.fixed32.encode(d,o.seed)},decode:d=>({seed:e.fixed32.decode(d)})},Q={preencode(d,o){c.preencode(d,o.mailboxKeyPair),r.preencode(d,o.discoveryKeyPair),e.fixed32.preencode(d,o.wakeupTopic),e.fixed32.preencode(d,o.swarmTopic)},encode(d,o){c.encode(d,o.mailboxKeyPair),r.encode(d,o.discoveryKeyPair),e.fixed32.encode(d,o.wakeupTopic),e.fixed32.encode(d,o.swarmTopic)},decode:d=>({mailboxKeyPair:c.decode(d),discoveryKeyPair:r.decode(d),wakeupTopic:e.fixed32.decode(d),swarmTopic:e.fixed32.decode(d)})},X={en:"en",it:"it",ru:"ru",es:"es",de:"de"},Y={preencode(e,d){e.end++},encode(d,o){switch(o){case"en":e.uint.encode(d,1);break;case"it":e.uint.encode(d,2);break;case"ru":e.uint.encode(d,3);break;case"es":e.uint.encode(d,4);break;case"de":e.uint.encode(d,5);break;default:throw new Error("Unknown enum")}},decode(d){switch(e.uint.decode(d)){case 1:return"en";case 2:return"it";case 3:return"ru";case 4:return"es";case 5:return"de";default:return null}}},Z=e.array(Y),$=e.array(e.fixed32),_={preencode(d,o){d.end++,o.title&&e.string.preencode(d,o.title),o.avatar&&fu.preencode(d,o.avatar),o.description&&e.string.preencode(d,o.description),o.supportedLanguages&&Z.preencode(d,o.supportedLanguages),o.blindPeers&&$.preencode(d,o.blindPeers)},encode(d,o){const n=(o.title?1:0)|(o.avatar?2:0)|(o.description?4:0)|(o.supportedLanguages?8:0)|(o.blindPeers?16:0);e.uint.encode(d,n),o.title&&e.string.encode(d,o.title),o.avatar&&fu.encode(d,o.avatar),o.description&&e.string.encode(d,o.description),o.supportedLanguages&&Z.encode(d,o.supportedLanguages),o.blindPeers&&$.encode(d,o.blindPeers)},decode(d){const o=e.uint.decode(d);return{title:1&o?e.string.decode(d):null,avatar:2&o?fu.decode(d):null,description:4&o?e.string.decode(d):null,supportedLanguages:8&o?Z.decode(d):null,blindPeers:16&o?$.decode(d):null}}},ee={preencode(d,o){e.fixed32.preencode(d,o.key)},encode(d,o){e.fixed32.encode(d,o.key)},decode:d=>({key:e.fixed32.decode(d)})},de=e.frame(i),oe=e.frame(ee),ne={preencode(e,d){de.preencode(e,d.header),oe.preencode(e,d.peer)},encode(e,d){de.encode(e,d.header),oe.encode(e,d.peer)},decode:e=>({header:de.decode(e),peer:oe.decode(e)})},ce=de,re={preencode(d,o){ce.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){ce.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:ce.decode(d),key:e.fixed32.decode(d)})},te={preencode(d,o){e.fixed32.preencode(d,o.memberKey),e.buffer.preencode(d,o.proof)},encode(d,o){e.fixed32.encode(d,o.memberKey),e.buffer.encode(d,o.proof)},decode:d=>({memberKey:e.fixed32.decode(d),proof:e.buffer.decode(d)})},ie={preencode(d,o){e.fixed32.preencode(d,o.id),e.buffer.preencode(d,o.response)},encode(d,o){e.fixed32.encode(d,o.id),e.buffer.encode(d,o.response)},decode:d=>({id:e.fixed32.decode(d),response:e.buffer.decode(d)})},ae=e.frame(M),se=e.frame(ie),pe={preencode(d,o){e.fixed32.preencode(d,o.key),e.fixed32.preencode(d,o.memberKey),ae.preencode(d,o.status),mu.preencode(d,o.profile),d.end++,o.invitation&&se.preencode(d,o.invitation)},encode(d,o){const n=o.invitation?1:0;e.fixed32.encode(d,o.key),e.fixed32.encode(d,o.memberKey),ae.encode(d,o.status),mu.encode(d,o.profile),e.uint.encode(d,n),o.invitation&&se.encode(d,o.invitation)},decode:d=>({key:e.fixed32.decode(d),memberKey:e.fixed32.decode(d),status:ae.decode(d),profile:mu.decode(d),invitation:1&e.uint.decode(d)?se.decode(d):null})},ue={preencode(d,o){e.uint.preencode(d,o.timestamp),d.end++,o.mailbox&&e.fixed32.preencode(d,o.mailbox),o.displayName&&e.string.preencode(d,o.displayName),o.avatar&&yu.preencode(d,o.avatar),o.username&&e.string.preencode(d,o.username)},encode(d,o){const n=(o.mailbox?1:0)|(o.displayName?2:0)|(o.avatar?4:0)|(o.username?8:0);e.uint.encode(d,o.timestamp),e.uint.encode(d,n),o.mailbox&&e.fixed32.encode(d,o.mailbox),o.displayName&&e.string.encode(d,o.displayName),o.avatar&&yu.encode(d,o.avatar),o.username&&e.string.encode(d,o.username)},decode(d){const o=e.uint.decode(d),n=e.uint.decode(d);return{timestamp:o,mailbox:1&n?e.fixed32.decode(d):null,displayName:2&n?e.string.decode(d):null,avatar:4&n?yu.decode(d):null,username:8&n?e.string.decode(d):null}}},le={preencode(o,n){o.end++,n.swarmKey&&e.fixed32.preencode(o,n.swarmKey),n.name&&e.string.preencode(o,n.name),d>=5&&n.buildType&&jp.preencode(o,n.buildType)},encode(o,n){const c=(n.swarmKey?1:0)|(n.name?2:0)|(n.isMobile?4:0)|(d>=5&&n.buildType?8:0);e.uint.encode(o,c),n.swarmKey&&e.fixed32.encode(o,n.swarmKey),n.name&&e.string.encode(o,n.name),d>=5&&n.buildType&&jp.encode(o,n.buildType)},decode(o){const n=e.uint.decode(o);return{swarmKey:1&n?e.fixed32.decode(o):null,name:2&n?e.string.decode(o):null,isMobile:!!(4&n),buildType:d>=5&&8&n?jp.decode(o):null}}},fe=e.frame(ue),me={preencode(e,d){fe.preencode(e,d.profile),te.preencode(e,d.attestation)},encode(e,d){fe.encode(e,d.profile),te.encode(e,d.attestation)},decode:e=>({profile:fe.decode(e),attestation:te.decode(e)})},ye={preencode(e,d){xu.preencode(e,d.profile),te.preencode(e,d.attestation)},encode(e,d){xu.encode(e,d.profile),te.encode(e,d.attestation)},decode:e=>({profile:xu.decode(e),attestation:te.decode(e)})},xe=fe,be={preencode(e,d){xe.preencode(e,d.profile),te.preencode(e,d.attestation)},encode(e,d){xe.encode(e,d.profile),te.encode(e,d.attestation)},decode:e=>({profile:xe.decode(e),attestation:te.decode(e)})},ve={preencode(d,o){e.fixed32.preencode(d,o.id),e.buffer.preencode(d,o.data),e.buffer.preencode(d,o.signature)},encode(d,o){e.fixed32.encode(d,o.id),e.buffer.encode(d,o.data),e.buffer.encode(d,o.signature)},decode:d=>({id:e.fixed32.decode(d),data:e.buffer.decode(d),signature:e.buffer.decode(d)})},ge={preencode(d,o){e.fixed32.preencode(d,o.devicePublicKey)},encode(d,o){e.fixed32.encode(d,o.devicePublicKey)},decode:d=>({devicePublicKey:e.fixed32.decode(d)})},he={preencode(d,o){te.preencode(d,o.privateProfileIdentity),e.buffer.preencode(d,o.deviceProof)},encode(d,o){te.encode(d,o.privateProfileIdentity),e.buffer.encode(d,o.deviceProof)},decode:d=>({privateProfileIdentity:te.decode(d),deviceProof:e.buffer.decode(d)})},ke={preencode(d,o){e.fixed32.preencode(d,o.deviceKey),te.preencode(d,o.privateProfileIdentity),e.buffer.preencode(d,o.deviceProof)},encode(d,o){e.fixed32.encode(d,o.deviceKey),te.encode(d,o.privateProfileIdentity),e.buffer.encode(d,o.deviceProof)},decode:d=>({deviceKey:e.fixed32.decode(d),privateProfileIdentity:te.decode(d),deviceProof:e.buffer.decode(d)})},Ke=e.frame(ye),we=e.frame(me),Pe=e.frame(ge),Re={preencode(d,o){e.fixed32.preencode(d,o.deviceKey),r.preencode(d,o.keyPair),Ke.preencode(d,o.device),we.preencode(d,o.member),d.end++,o.identity&&Pe.preencode(d,o.identity)},encode(d,o){const n=o.identity?1:0;e.fixed32.encode(d,o.deviceKey),r.encode(d,o.keyPair),Ke.encode(d,o.device),we.encode(d,o.member),e.uint.encode(d,n),o.identity&&Pe.encode(d,o.identity)},decode:d=>({deviceKey:e.fixed32.decode(d),keyPair:r.decode(d),device:Ke.decode(d),member:we.decode(d),identity:1&e.uint.decode(d)?Pe.decode(d):null})},Te=e.frame(Re),Ae={preencode(d,o){e.fixed32.preencode(d,o.id),Te.preencode(d,o.request),e.buffer.preencode(d,o.signature)},encode(d,o){e.fixed32.encode(d,o.id),Te.encode(d,o.request),e.buffer.encode(d,o.signature)},decode:d=>({id:e.fixed32.decode(d),request:Te.decode(d),signature:e.buffer.decode(d)})},Me=Ke,qe=we,Ie={preencode(e,d){Me.preencode(e,d.device),e.end++,d.member&&qe.preencode(e,d.member)},encode(d,o){const n=o.member?1:0;Me.encode(d,o.device),e.uint.encode(d,n),o.member&&qe.encode(d,o.member)},decode:d=>({device:Me.decode(d),member:1&e.uint.decode(d)?qe.decode(d):null})},Se=e.frame(Ae),Ce=e.frame(Ie),De={preencode(e,d){e.end++,d.withInvitation&&Se.preencode(e,d.withInvitation),d.withMemberProof&&Ce.preencode(e,d.withMemberProof)},encode(d,o){const n=(o.withInvitation?1:0)|(o.withMemberProof?2:0);e.uint.encode(d,n),o.withInvitation&&Se.encode(d,o.withInvitation),o.withMemberProof&&Ce.encode(d,o.withMemberProof)},decode(d){const o=e.uint.decode(d);return{withInvitation:1&o?Se.decode(d):null,withMemberProof:2&o?Ce.decode(d):null}}},Le=e.frame(ve),Fe=e.frame(he),je={preencode(e,d){Le.preencode(e,d.signedKeys),e.end++,d.identity&&Fe.preencode(e,d.identity)},encode(d,o){const n=o.identity?1:0;Le.encode(d,o.signedKeys),e.uint.encode(d,n),o.identity&&Fe.encode(d,o.identity)},decode:d=>({signedKeys:Le.decode(d),identity:1&e.uint.decode(d)?Fe.decode(d):null})},Ee={preencode(o,n){o.end++,n.expiration&&e.uint.preencode(o,n.expiration),d>=5&&n.buildType&&jp.preencode(o,n.buildType)},encode(o,n){const c=(n.expiration?1:0)|(n.requiresConfirmation?2:0)|(n.canModerate?4:0)|(n.canAdmin?8:0)|(d>=5&&n.buildType?16:0);e.uint.encode(o,c),n.expiration&&e.uint.encode(o,n.expiration),d>=5&&n.buildType&&jp.encode(o,n.buildType)},decode(o){const n=e.uint.decode(o);return{expiration:1&n?e.uint.decode(o):0,requiresConfirmation:!!(2&n),canModerate:!!(4&n),canAdmin:!!(8&n),buildType:d>=5&&16&n?jp.decode(o):null}}},Be=Le,ze=e.frame(Ee),Ne={preencode(d,n){e.fixed32.preencode(d,n.id),Be.preencode(d,n.response),ze.preencode(d,n.metadata),d.end++,n.anchor&&o.preencode(d,n.anchor)},encode(d,n){const c=(n.anchor?1:0)|(n.isActive?2:0);e.fixed32.encode(d,n.id),Be.encode(d,n.response),ze.encode(d,n.metadata),e.uint.encode(d,c),n.anchor&&o.encode(d,n.anchor)},decode(d){const n=e.fixed32.decode(d),c=Be.decode(d),r=ze.decode(d),t=e.uint.decode(d);return{id:n,response:c,metadata:r,anchor:1&t?o.decode(d):null,isActive:!!(2&t)}}},Oe=de,Ue=e.frame(Ne),Ve={preencode(e,d){Oe.preencode(e,d.header),Ue.preencode(e,d.invitation)},encode(e,d){Oe.encode(e,d.header),Ue.encode(e,d.invitation)},decode:e=>({header:Oe.decode(e),invitation:Ue.decode(e)})},Je=de,He={preencode(d,o){Je.preencode(d,o.header),e.fixed32.preencode(d,o.id)},encode(d,o){Je.encode(d,o.header),e.fixed32.encode(d,o.id)},decode:d=>({header:Je.decode(d),id:e.fixed32.decode(d)})},We={preencode(d,n){e.fixed32.preencode(d,n.mailbox),e.fixed32.preencode(d,n.invitationSeed),o.preencode(d,n.anchor)},encode(d,n){e.fixed32.encode(d,n.mailbox),e.fixed32.encode(d,n.invitationSeed),o.encode(d,n.anchor)},decode:d=>({mailbox:e.fixed32.decode(d),invitationSeed:e.fixed32.decode(d),anchor:o.decode(d)})},Ge={preencode(d,o){e.fixed32.preencode(d,o.roomKey),e.fixed32.preencode(d,o.encryptionKey),e.fixed32.preencode(d,o.seed),d.end++,o.fastForwardTo&&e.fixed32.preencode(d,o.fastForwardTo)},encode(d,o){const n=o.fastForwardTo?1:0;e.fixed32.encode(d,o.roomKey),e.fixed32.encode(d,o.encryptionKey),e.fixed32.encode(d,o.seed),e.uint.encode(d,n),o.fastForwardTo&&e.fixed32.encode(d,o.fastForwardTo)},decode:d=>({roomKey:e.fixed32.decode(d),encryptionKey:e.fixed32.decode(d),seed:e.fixed32.decode(d),fastForwardTo:1&e.uint.decode(d)?e.fixed32.decode(d):null})},Qe={preencode(d,n){e.fixed32.preencode(d,n.mailbox),e.fixed32.preencode(d,n.invitationSeed),o.preencode(d,n.anchor),e.fixed32.preencode(d,n.identityPublicKey)},encode(d,n){e.fixed32.encode(d,n.mailbox),e.fixed32.encode(d,n.invitationSeed),o.encode(d,n.anchor),e.fixed32.encode(d,n.identityPublicKey)},decode:d=>({mailbox:e.fixed32.decode(d),invitationSeed:e.fixed32.decode(d),anchor:o.decode(d),identityPublicKey:e.fixed32.decode(d)})},Xe={preencode(d,o){e.fixed32.preencode(d,o.mailbox)},encode(d,o){e.fixed32.encode(d,o.mailbox)},decode:d=>({mailbox:e.fixed32.decode(d)})},Ye=e.frame(We),Ze=e.frame(Qe),$e=e.frame(Xe),_e=e.frame(Ge),ed=e.array(e.ipv4Address),dd={preencode(e,o){e.end++,o.room&&Ye.preencode(e,o.room),o.identity&&Ze.preencode(e,o.identity),o.contact&&$e.preencode(e,o.contact),o.readonly&&_e.preencode(e,o.readonly),o.additionalNodes&&ed.preencode(e,o.additionalNodes),d>=5&&o.buildType&&jp.preencode(e,o.buildType)},encode(o,n){const c=(n.room?1:0)|(n.identity?2:0)|(n.contact?4:0)|(n.readonly?8:0)|(n.additionalNodes?16:0)|(d>=5&&n.buildType?32:0);e.uint.encode(o,c),n.room&&Ye.encode(o,n.room),n.identity&&Ze.encode(o,n.identity),n.contact&&$e.encode(o,n.contact),n.readonly&&_e.encode(o,n.readonly),n.additionalNodes&&ed.encode(o,n.additionalNodes),d>=5&&n.buildType&&jp.encode(o,n.buildType)},decode(o){const n=e.uint.decode(o);return{room:1&n?Ye.decode(o):null,identity:2&n?Ze.decode(o):null,contact:4&n?$e.decode(o):null,readonly:8&n?_e.decode(o):null,additionalNodes:16&n?ed.decode(o):null,buildType:d>=5&&32&n?jp.decode(o):null}}},od=de,nd={preencode(d,o){od.preencode(d,o.header),e.buffer.preencode(d,o.blindRequest)},encode(d,o){od.encode(d,o.header),e.buffer.encode(d,o.blindRequest)},decode:d=>({header:od.decode(d),blindRequest:e.buffer.decode(d)})},cd=de,rd={preencode(o,n){cd.preencode(o,n.header),o.end++,n.profile&&bu.preencode(o,n.profile),d>=10&&n.key&&e.fixed32.preencode(o,n.key)},encode(o,n){const c=(n.profile?1:0)|(d>=10&&n.key?2:0);cd.encode(o,n.header),e.uint.encode(o,c),n.profile&&bu.encode(o,n.profile),d>=10&&n.key&&e.fixed32.encode(o,n.key)},decode(o){const n=cd.decode(o),c=e.uint.decode(o);return{header:n,profile:1&c?bu.decode(o):null,key:d>=10&&2&c?e.fixed32.decode(o):null}}},td=de,id={preencode(d,o){td.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){td.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:td.decode(d),key:e.fixed32.decode(d)})},ad={preencode(e,d){},encode(e,d){},decode:e=>({})},sd=ad,pd=Te,ud={preencode(d,o){e.fixed32.preencode(d,o.deviceKey),e.fixed32.preencode(d,o.id),pd.preencode(d,o.request)},encode(d,o){e.fixed32.encode(d,o.deviceKey),e.fixed32.encode(d,o.id),pd.encode(d,o.request)},decode:d=>({deviceKey:e.fixed32.decode(d),id:e.fixed32.decode(d),request:pd.decode(d)})},ld=de,fd=Fe,md={preencode(d,o){ld.preencode(d,o.header),e.fixed32.preencode(d,o.deviceKey),d.end++,o.identity&&fd.preencode(d,o.identity)},encode(d,o){const n=o.identity?1:0;ld.encode(d,o.header),e.fixed32.encode(d,o.deviceKey),e.uint.encode(d,n),o.identity&&fd.encode(d,o.identity)},decode:d=>({header:ld.decode(d),deviceKey:e.fixed32.decode(d),identity:1&e.uint.decode(d)?fd.decode(d):null})},yd=de,xd={preencode(d,o){yd.preencode(d,o.header),e.fixed32.preencode(d,o.deviceKey)},encode(d,o){yd.encode(d,o.header),e.fixed32.encode(d,o.deviceKey)},decode:d=>({header:yd.decode(d),deviceKey:e.fixed32.decode(d)})},bd=e.frame(q),vd=fe,gd={preencode(d,o){e.fixed32.preencode(d,o.key),bd.preencode(d,o.status),vd.preencode(d,o.profile)},encode(d,o){e.fixed32.encode(d,o.key),bd.encode(d,o.status),vd.encode(d,o.profile)},decode:d=>({key:e.fixed32.decode(d),status:bd.decode(d),profile:vd.decode(d)})},hd=bd,kd=fe,Kd={preencode(d,o){e.fixed32.preencode(d,o.key),hd.preencode(d,o.status),kd.preencode(d,o.profile),d.end++,o.proofs&&vu.preencode(d,o.proofs)},encode(d,o){const n=o.proofs?1:0;e.fixed32.encode(d,o.key),hd.encode(d,o.status),kd.encode(d,o.profile),e.uint.encode(d,n),o.proofs&&vu.encode(d,o.proofs)},decode:d=>({key:e.fixed32.decode(d),status:hd.decode(d),profile:kd.decode(d),proofs:1&e.uint.decode(d)?vu.decode(d):null})},wd={preencode(d,o){e.fixed32.preencode(d,o.key),d.end++,o.profileAttestation&&e.buffer.preencode(d,o.profileAttestation),o.latestReceipt&&e.buffer.preencode(d,o.latestReceipt)},encode(d,o){const n=(o.profileAttestation?1:0)|(o.latestReceipt?2:0);e.fixed32.encode(d,o.key),e.uint.encode(d,n),o.profileAttestation&&e.buffer.encode(d,o.profileAttestation),o.latestReceipt&&e.buffer.encode(d,o.latestReceipt)},decode(d){const o=e.fixed32.decode(d),n=e.uint.decode(d);return{key:o,profileAttestation:1&n?e.buffer.decode(d):null,latestReceipt:2&n?e.buffer.decode(d):null}}},Pd=de,Rd=we,Td={preencode(e,d){Pd.preencode(e,d.header),Rd.preencode(e,d.member)},encode(e,d){Pd.encode(e,d.header),Rd.encode(e,d.member)},decode:e=>({header:Pd.decode(e),member:Rd.decode(e)})},Ad=de,Md=e.frame(I),qd={preencode(d,o){Ad.preencode(d,o.header),e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.key),Md.preencode(d,o.status)},encode(d,o){Ad.encode(d,o.header),e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.key),Md.encode(d,o.status)},decode:d=>({header:Ad.decode(d),memberKey:e.fixed32.decode(d),key:e.uint.decode(d),status:Md.decode(d)})},Id=de,Sd={preencode(d,o){Id.preencode(d,o.header),e.fixed32.preencode(d,o.key),d.end++},encode(d,o){const n=(o.isModerator?1:0)|(o.isAdmin?2:0);Id.encode(d,o.header),e.fixed32.encode(d,o.key),e.uint.encode(d,n)},decode(d){const o=Id.decode(d),n=e.fixed32.decode(d),c=e.uint.decode(d);return{header:o,key:n,isModerator:!!(1&c),isAdmin:!!(2&c)}}},Cd=de,Dd={preencode(d,o){Cd.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){Cd.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:Cd.decode(d),key:e.fixed32.decode(d)})},Ld={preencode(d,o){e.fixed32.preencode(d,o.key),e.uint.preencode(d,o.mentions)},encode(d,o){e.fixed32.encode(d,o.key),e.uint.encode(d,o.mentions)},decode:d=>({key:e.fixed32.decode(d),mentions:e.uint.decode(d)})},Fd={preencode(d,o){d.end++,o.memberKey&&e.fixed32.preencode(d,o.memberKey)},encode(d,o){const n=o.memberKey?1:0;e.uint.encode(d,n),o.memberKey&&e.fixed32.encode(d,o.memberKey)},decode:d=>({memberKey:1&e.uint.decode(d)?e.fixed32.decode(d):null})},jd=Fd,Ed=Fd,Bd={preencode(d,o){d.end++,o.from&&e.string.preencode(d,o.from),o.to&&e.string.preencode(d,o.to)},encode(d,o){const n=(o.from?1:0)|(o.to?2:0);e.uint.encode(d,n),o.from&&e.string.encode(d,o.from),o.to&&e.string.encode(d,o.to)},decode(d){const o=e.uint.decode(d);return{from:1&o?e.string.decode(d):null,to:2&o?e.string.decode(d):null}}},zd=e.frame(Fd),Nd=e.frame(jd),Od=e.frame(Bd),Ud=e.frame(Ed),Vd={preencode(o,n){const c=(n.memberJoined?1:0)|(n.memberLeft?2:0)|(n.titleChanged?4:0)|(n.callStarted?8:0)|(n.callHangup?16:0)|(n.callMissed?32:0)|(n.roomAvatarChanged?64:0)|(n.invitationCreated?128:0)|(n.memberRemoved?256:0)|(d>=3&&n.locationShared?512:0);e.uint.preencode(o,c),n.memberJoined&&zd.preencode(o,n.memberJoined),n.memberLeft&&Nd.preencode(o,n.memberLeft),n.titleChanged&&Od.preencode(o,n.titleChanged),n.memberRemoved&&Ud.preencode(o,n.memberRemoved),d>=3&&n.locationShared&&gu.preencode(o,n.locationShared)},encode(o,n){const c=(n.memberJoined?1:0)|(n.memberLeft?2:0)|(n.titleChanged?4:0)|(n.callStarted?8:0)|(n.callHangup?16:0)|(n.callMissed?32:0)|(n.roomAvatarChanged?64:0)|(n.invitationCreated?128:0)|(n.memberRemoved?256:0)|(d>=3&&n.locationShared?512:0);e.uint.encode(o,c),n.memberJoined&&zd.encode(o,n.memberJoined),n.memberLeft&&Nd.encode(o,n.memberLeft),n.titleChanged&&Od.encode(o,n.titleChanged),n.memberRemoved&&Ud.encode(o,n.memberRemoved),d>=3&&n.locationShared&&gu.encode(o,n.locationShared)},decode(o){const n=e.uint.decode(o);return{memberJoined:1&n?zd.decode(o):null,memberLeft:2&n?Nd.decode(o):null,titleChanged:4&n?Od.decode(o):null,callStarted:!!(8&n),callHangup:!!(16&n),callMissed:!!(32&n),roomAvatarChanged:!!(64&n),invitationCreated:!!(128&n),memberRemoved:256&n?Ud.decode(o):null,locationShared:d>=3&&512&n?gu.decode(o):null}}},Jd={preencode(e,o){e.end++,d>=3&&o.locationShared&&hu.preencode(e,o.locationShared)},encode(o,n){const c=(n.callStarted?1:0)|(n.callHangup?2:0)|(n.callMissed?4:0)|(d>=3&&n.locationShared?8:0);e.uint.encode(o,c),d>=3&&n.locationShared&&hu.encode(o,n.locationShared)},decode(o){const n=e.uint.decode(o);return{callStarted:!!(1&n),callHangup:!!(2&n),callMissed:!!(4&n),locationShared:d>=3&&8&n?hu.decode(o):null}}},Hd={preencode(d,o){e.uint.preencode(d,o.start),e.uint.preencode(d,o.length)},encode(d,o){e.uint.encode(d,o.start),e.uint.encode(d,o.length)},decode:d=>({start:e.uint.decode(d),length:e.uint.decode(d)})},Wd=e.frame(Hd),Gd={preencode(d,o){Wd.preencode(d,o.range),e.string.preencode(d,o.content)},encode(d,o){Wd.encode(d,o.range),e.string.encode(d,o.content)},decode:d=>({range:Wd.decode(d),content:e.string.decode(d)})},Qd=Wd,Xd={preencode(d,o){Qd.preencode(d,o.range),e.fixed32.preencode(d,o.memberKey)},encode(d,o){Qd.encode(d,o.range),e.fixed32.encode(d,o.memberKey)},decode:d=>({range:Qd.decode(d),memberKey:e.fixed32.decode(d)})},Yd=Wd,Zd={preencode(d,o){Yd.preencode(d,o.range),Y.preencode(d,o.language),e.string.preencode(d,o.text)},encode(d,o){Yd.encode(d,o.range),Y.encode(d,o.language),e.string.encode(d,o.text)},decode:d=>({range:Yd.decode(d),language:Y.decode(d),text:e.string.decode(d)})},$d=h,_d=e.array(e.uint),eo={preencode(d,o){d.end++,o.title&&e.string.preencode(d,o.title),o.description&&e.string.preencode(d,o.description),o.file&&$d.preencode(d,o.file),o.files&&_d.preencode(d,o.files)},encode(d,o){const n=(o.title?1:0)|(o.description?2:0)|(o.file?4:0)|(o.files?8:0);e.uint.encode(d,n),o.title&&e.string.encode(d,o.title),o.description&&e.string.encode(d,o.description),o.file&&$d.encode(d,o.file),o.files&&_d.encode(d,o.files)},decode(d){const o=e.uint.decode(d);return{title:1&o?e.string.decode(d):null,description:2&o?e.string.decode(d):null,file:4&o?$d.decode(d):null,files:8&o?_d.decode(d):null}}},oo=Wd,no=e.frame(eo),co={preencode(d,o){oo.preencode(d,o.range),e.string.preencode(d,o.url),d.end++,o.preview&&no.preencode(d,o.preview)},encode(d,o){const n=o.preview?1:0;oo.encode(d,o.range),e.string.encode(d,o.url),e.uint.encode(d,n),o.preview&&no.encode(d,o.preview)},decode:d=>({range:oo.decode(d),url:e.string.decode(d),preview:1&e.uint.decode(d)?no.decode(d):null})},ro=e.array(e.frame(Xd)),to=e.array(e.frame(co)),io=to,ao=e.array(e.frame(Hd)),so=ao,po=ao,uo=e.array(e.frame(Gd)),lo=ao,fo=ao,mo=e.array(e.frame(Zd)),yo={preencode(d,o){const n=(o.mention?1:0)|(o.httpLink?2:0)|(o.pearLink?4:0)|(o.bold?8:0)|(o.italic?16:0)|(o.code?32:0)|(o.emoji?64:0)|(o.codeBlock?128:0)|(o.strike?256:0)|(o.translation?512:0);e.uint.preencode(d,n),o.mention&&ro.preencode(d,o.mention),o.httpLink&&to.preencode(d,o.httpLink),o.pearLink&&io.preencode(d,o.pearLink),o.bold&&ao.preencode(d,o.bold),o.italic&&so.preencode(d,o.italic),o.code&&po.preencode(d,o.code),o.emoji&&uo.preencode(d,o.emoji),o.codeBlock&&lo.preencode(d,o.codeBlock),o.strike&&fo.preencode(d,o.strike),o.translation&&mo.preencode(d,o.translation)},encode(d,o){const n=(o.mention?1:0)|(o.httpLink?2:0)|(o.pearLink?4:0)|(o.bold?8:0)|(o.italic?16:0)|(o.code?32:0)|(o.emoji?64:0)|(o.codeBlock?128:0)|(o.strike?256:0)|(o.translation?512:0);e.uint.encode(d,n),o.mention&&ro.encode(d,o.mention),o.httpLink&&to.encode(d,o.httpLink),o.pearLink&&io.encode(d,o.pearLink),o.bold&&ao.encode(d,o.bold),o.italic&&so.encode(d,o.italic),o.code&&po.encode(d,o.code),o.emoji&&uo.encode(d,o.emoji),o.codeBlock&&lo.encode(d,o.codeBlock),o.strike&&fo.encode(d,o.strike),o.translation&&mo.encode(d,o.translation)},decode(d){const o=e.uint.decode(d);return{mention:1&o?ro.decode(d):null,httpLink:2&o?to.decode(d):null,pearLink:4&o?io.decode(d):null,bold:8&o?ao.decode(d):null,italic:16&o?so.decode(d):null,code:32&o?po.decode(d):null,emoji:64&o?uo.decode(d):null,codeBlock:128&o?lo.decode(d):null,strike:256&o?fo.decode(d):null,translation:512&o?mo.decode(d):null}}},xo=e.array(e.frame(g)),bo=e.frame(yo),vo=e.frame(Jd),go={preencode(d,o){d.end++,o.text&&e.string.preencode(d,o.text),o.files&&xo.preencode(d,o.files),o.display&&bo.preencode(d,o.display),o.replyTo&&n.preencode(d,o.replyTo),o.parent&&n.preencode(d,o.parent),o.event&&vo.preencode(d,o.event)},encode(o,c){const r=(c.text?1:0)|(c.files?2:0)|(c.display?4:0)|(c.replyTo?8:0)|(c.parent?16:0)|(c.event?32:0)|(d>=3&&c.forwarded?64:0);e.uint.encode(o,r),c.text&&e.string.encode(o,c.text),c.files&&xo.encode(o,c.files),c.display&&bo.encode(o,c.display),c.replyTo&&n.encode(o,c.replyTo),c.parent&&n.encode(o,c.parent),c.event&&vo.encode(o,c.event)},decode(o){const c=e.uint.decode(o);return{text:1&c?e.string.decode(o):null,files:2&c?xo.decode(o):null,display:4&c?bo.decode(o):null,replyTo:8&c?n.decode(o):null,parent:16&c?n.decode(o):null,event:32&c?vo.decode(o):null,forwarded:d>=3&&!!(64&c)}}},ho=_d,ko=bo,Ko={preencode(d,o){d.end++,o.text&&e.string.preencode(d,o.text),o.files&&ho.preencode(d,o.files),o.display&&ko.preencode(d,o.display),o.replyTo&&n.preencode(d,o.replyTo),o.parent&&n.preencode(d,o.parent)},encode(o,c){const r=(c.text?1:0)|(c.files?2:0)|(c.display?4:0)|(c.replyTo?8:0)|(c.parent?16:0)|(d>=3&&c.forwarded?32:0);e.uint.encode(o,r),c.text&&e.string.encode(o,c.text),c.files&&ho.encode(o,c.files),c.display&&ko.encode(o,c.display),c.replyTo&&n.encode(o,c.replyTo),c.parent&&n.encode(o,c.parent)},decode(o){const c=e.uint.decode(o);return{text:1&c?e.string.decode(o):null,files:2&c?ho.decode(o):null,display:4&c?ko.decode(o):null,replyTo:8&c?n.decode(o):null,parent:16&c?n.decode(o):null,forwarded:d>=3&&!!(32&c)}}},wo=xo,Po=bo,Ro={preencode(d,o){d.end++,o.text&&e.string.preencode(d,o.text),o.files&&wo.preencode(d,o.files),o.display&&Po.preencode(d,o.display),o.replyTo&&n.preencode(d,o.replyTo),o.parent&&n.preencode(d,o.parent)},encode(o,c){const r=(c.text?1:0)|(c.files?2:0)|(c.display?4:0)|(c.replyTo?8:0)|(c.parent?16:0)|(d>=3&&c.forwarded?32:0);e.uint.encode(o,r),c.text&&e.string.encode(o,c.text),c.files&&wo.encode(o,c.files),c.display&&Po.encode(o,c.display),c.replyTo&&n.encode(o,c.replyTo),c.parent&&n.encode(o,c.parent)},decode(o){const c=e.uint.decode(o);return{text:1&c?e.string.decode(o):null,files:2&c?wo.decode(o):null,display:4&c?Po.decode(o):null,replyTo:8&c?n.decode(o):null,parent:16&c?n.decode(o):null,forwarded:d>=3&&!!(32&c)}}},To={preencode(e,d){e.end++},encode(d,o){const n=(o.isEdited?1:0)|(o.isDeleted?2:0)|(o.isPinned?4:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isEdited:!!(1&o),isDeleted:!!(2&o),isPinned:!!(4&o)}}},Ao={preencode(d,o){e.uint.preencode(d,o.thread),e.uint.preencode(d,o.index)},encode(d,o){e.uint.encode(d,o.thread),e.uint.encode(d,o.index)},decode:d=>({thread:e.uint.decode(d),index:e.uint.decode(d)})},Mo=e.frame(N),qo={preencode(d,o){e.uint.preencode(d,o.id),e.uint.preencode(d,o.count),d.end++,o.parent&&n.preencode(d,o.parent),o.stats&&Mo.preencode(d,o.stats)},encode(d,o){const c=(o.parent?1:0)|(o.stats?2:0);e.uint.encode(d,o.id),e.uint.encode(d,o.count),e.uint.encode(d,c),o.parent&&n.encode(d,o.parent),o.stats&&Mo.encode(d,o.stats)},decode(d){const o=e.uint.decode(d),c=e.uint.decode(d),r=e.uint.decode(d);return{id:o,count:c,parent:1&r?n.decode(d):null,stats:2&r?Mo.decode(d):null}}},Io=e.frame(To),So=e.frame(Ko),Co=e.frame(Vd),Do={preencode(d,o){Ao.preencode(d,o.id),n.preencode(d,o.oplog),e.uint.preencode(d,o.clock),e.uint.preencode(d,o.timestamp),d.end++,o.editedAt&&e.uint.preencode(d,o.editedAt),Io.preencode(d,o.status),o.message&&So.preencode(d,o.message),o.event&&Co.preencode(d,o.event)},encode(d,o){const c=(o.editedAt?1:0)|(o.message?2:0)|(o.event?4:0);Ao.encode(d,o.id),n.encode(d,o.oplog),e.uint.encode(d,o.clock),e.uint.encode(d,o.timestamp),e.uint.encode(d,c),o.editedAt&&e.uint.encode(d,o.editedAt),Io.encode(d,o.status),o.message&&So.encode(d,o.message),o.event&&Co.encode(d,o.event)},decode(d){const o=Ao.decode(d),c=n.decode(d),r=e.uint.decode(d),t=e.uint.decode(d),i=e.uint.decode(d);return{id:o,oplog:c,clock:r,timestamp:t,editedAt:1&i?e.uint.decode(d):0,status:Io.decode(d),message:2&i?So.decode(d):null,event:4&i?Co.decode(d):null}}},Lo=Io,Fo=e.frame(Ro),jo=Co,Eo={preencode(d,o){Ao.preencode(d,o.id),n.preencode(d,o.oplog),e.uint.preencode(d,o.clock),e.uint.preencode(d,o.timestamp),d.end++,o.editedAt&&e.uint.preencode(d,o.editedAt),Lo.preencode(d,o.status),o.message&&Fo.preencode(d,o.message),o.event&&jo.preencode(d,o.event)},encode(d,o){const c=(o.editedAt?1:0)|(o.message?2:0)|(o.event?4:0);Ao.encode(d,o.id),n.encode(d,o.oplog),e.uint.encode(d,o.clock),e.uint.encode(d,o.timestamp),e.uint.encode(d,c),o.editedAt&&e.uint.encode(d,o.editedAt),Lo.encode(d,o.status),o.message&&Fo.encode(d,o.message),o.event&&jo.encode(d,o.event)},decode(d){const o=Ao.decode(d),c=n.decode(d),r=e.uint.decode(d),t=e.uint.decode(d),i=e.uint.decode(d);return{id:o,oplog:c,clock:r,timestamp:t,editedAt:1&i?e.uint.decode(d):0,status:Lo.decode(d),message:2&i?Fo.decode(d):null,event:4&i?jo.decode(d):null}}},Bo=de,zo=e.frame(go),No={preencode(e,d){Bo.preencode(e,d.header),zo.preencode(e,d.message)},encode(e,d){Bo.encode(e,d.header),zo.encode(e,d.message)},decode:e=>({header:Bo.decode(e),message:zo.decode(e)})},Oo=de,Uo={preencode(e,d){Oo.preencode(e,d.header),n.preencode(e,d.oplog)},encode(e,d){Oo.encode(e,d.header),n.encode(e,d.oplog)},decode:e=>({header:Oo.decode(e),oplog:n.decode(e)})},Vo=de,Jo=zo,Ho={preencode(e,d){Vo.preencode(e,d.header),n.preencode(e,d.oplog),Jo.preencode(e,d.message)},encode(e,d){Vo.encode(e,d.header),n.encode(e,d.oplog),Jo.encode(e,d.message)},decode:e=>({header:Vo.decode(e),oplog:n.decode(e),message:Jo.decode(e)})},Wo=de,Go={preencode(e,d){Wo.preencode(e,d.header),n.preencode(e,d.oplog),e.end++},encode(d,o){const c=o.isPinned?1:0;Wo.encode(d,o.header),n.encode(d,o.oplog),e.uint.encode(d,c)},decode:d=>({header:Wo.decode(d),oplog:n.decode(d),isPinned:!!(1&e.uint.decode(d))})},Qo={HttpLink:1,PearLink:2},Xo={preencode(e,d){e.end++},encode(d,o){if(o>2)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},Yo=de,Zo={preencode(d,o){Yo.preencode(d,o.header),n.preencode(d,o.oplog),e.uint.preencode(d,o.index),ku.preencode(d,o.preview),d.end++,o.displayType&&Xo.preencode(d,o.displayType)},encode(d,o){const c=o.displayType?1:0;Yo.encode(d,o.header),n.encode(d,o.oplog),e.uint.encode(d,o.index),ku.encode(d,o.preview),e.uint.encode(d,c),o.displayType&&Xo.encode(d,o.displayType)},decode:d=>({header:Yo.decode(d),oplog:n.decode(d),index:e.uint.decode(d),preview:ku.decode(d),displayType:1&e.uint.decode(d)?Xo.decode(d):0})},$o={preencode(d,o){Ao.preencode(d,o.id),e.fixed32.preencode(d,o.sender),e.uint.preencode(d,o.clock),e.string.preencode(d,o.reaction)},encode(d,o){Ao.encode(d,o.id),e.fixed32.encode(d,o.sender),e.uint.encode(d,o.clock),e.string.encode(d,o.reaction)},decode:d=>({id:Ao.decode(d),sender:e.fixed32.decode(d),clock:e.uint.decode(d),reaction:e.string.decode(d)})},_o={preencode(d,o){e.string.preencode(d,o.text),e.uint.preencode(d,o.count)},encode(d,o){e.string.encode(d,o.text),e.uint.encode(d,o.count)},decode:d=>({text:e.string.decode(d),count:e.uint.decode(d)})},en=e.array(e.frame(_o)),dn={preencode(d,o){Ao.preencode(d,o.id),e.uint.preencode(d,o.total),en.preencode(d,o.reactions),d.end++,o.editedAt&&e.uint.preencode(d,o.editedAt)},encode(d,o){const n=o.editedAt?1:0;Ao.encode(d,o.id),e.uint.encode(d,o.total),en.encode(d,o.reactions),e.uint.encode(d,n),o.editedAt&&e.uint.encode(d,o.editedAt)},decode:d=>({id:Ao.decode(d),total:e.uint.decode(d),reactions:en.decode(d),editedAt:1&e.uint.decode(d)?e.uint.decode(d):0})},on=de,nn={preencode(d,o){on.preencode(d,o.header),n.preencode(d,o.oplog),e.string.preencode(d,o.reaction)},encode(d,o){on.encode(d,o.header),n.encode(d,o.oplog),e.string.encode(d,o.reaction)},decode:d=>({header:on.decode(d),oplog:n.decode(d),reaction:e.string.decode(d)})},cn=de,rn={preencode(d,o){cn.preencode(d,o.header),n.preencode(d,o.oplog),e.string.preencode(d,o.reaction)},encode(d,o){cn.encode(d,o.header),n.encode(d,o.oplog),e.string.encode(d,o.reaction)},decode:d=>({header:cn.decode(d),oplog:n.decode(d),reaction:e.string.decode(d)})},tn=de,an=e.frame(_),sn={preencode(d,o){tn.preencode(d,o.header),e.uint.preencode(d,o.key),an.preencode(d,o.config)},encode(d,o){tn.encode(d,o.header),e.uint.encode(d,o.key),an.encode(d,o.config)},decode:d=>({header:tn.decode(d),key:e.uint.decode(d),config:an.decode(d)})},pn={preencode(d,o){e.fixed32.preencode(d,o.memberKey),e.string.preencode(d,o.displayName),d.end++,o.avatar&&Ku.preencode(d,o.avatar)},encode(d,o){const n=o.avatar?1:0;e.fixed32.encode(d,o.memberKey),e.string.encode(d,o.displayName),e.uint.encode(d,n),o.avatar&&Ku.encode(d,o.avatar)},decode:d=>({memberKey:e.fixed32.decode(d),displayName:e.string.decode(d),avatar:1&e.uint.decode(d)?Ku.decode(d):null})},un={preencode(d,o){e.fixed32.preencode(d,o.key),d.end++,o.username&&e.string.preencode(d,o.username)},encode(d,o){const n=o.username?1:0;e.fixed32.encode(d,o.key),e.uint.encode(d,n),o.username&&e.string.encode(d,o.username)},decode:d=>({key:e.fixed32.decode(d),username:1&e.uint.decode(d)?e.string.decode(d):null})},ln=e.frame(un),fn={preencode(d,o){e.fixed32.preencode(d,o.publicKey),d.end++,o.discoveryCoreKey&&e.fixed32.preencode(d,o.discoveryCoreKey),o.userRegistry&&ln.preencode(d,o.userRegistry)},encode(d,o){const n=(o.discoveryCoreKey?1:0)|(o.userRegistry?2:0);e.fixed32.encode(d,o.publicKey),e.uint.encode(d,n),o.discoveryCoreKey&&e.fixed32.encode(d,o.discoveryCoreKey),o.userRegistry&&ln.encode(d,o.userRegistry)},decode(d){const o=e.fixed32.decode(d),n=e.uint.decode(d);return{publicKey:o,discoveryCoreKey:1&n?e.fixed32.decode(d):null,userRegistry:2&n?ln.decode(d):null}}},mn=de,yn=e.frame(W),xn=e.frame(G),bn=an,vn=e.frame(fn),gn=Ke,hn=e.array(e.frame(me)),kn={preencode(e,d){mn.preencode(e,d.header),yn.preencode(e,d.digest),xn.preencode(e,d.capabilities),e.end++,d.config&&bn.preencode(e,d.config),d.identity&&vn.preencode(e,d.identity),d.bootstrapDevice&&gn.preencode(e,d.bootstrapDevice),d.initialMembers&&hn.preencode(e,d.initialMembers)},encode(d,o){const n=(o.config?1:0)|(o.identity?2:0)|(o.bootstrapDevice?4:0)|(o.initialMembers?8:0);mn.encode(d,o.header),yn.encode(d,o.digest),xn.encode(d,o.capabilities),e.uint.encode(d,n),o.config&&bn.encode(d,o.config),o.identity&&vn.encode(d,o.identity),o.bootstrapDevice&&gn.encode(d,o.bootstrapDevice),o.initialMembers&&hn.encode(d,o.initialMembers)},decode(d){const o=mn.decode(d),n=yn.decode(d),c=xn.decode(d),r=e.uint.decode(d);return{header:o,digest:n,capabilities:c,config:1&r?bn.decode(d):null,identity:2&r?vn.decode(d):null,bootstrapDevice:4&r?gn.decode(d):null,initialMembers:8&r?hn.decode(d):null}}},Kn=de,wn={preencode(d,o){Kn.preencode(d,o.header),e.uint.preencode(d,o.version)},encode(d,o){Kn.encode(d,o.header),e.uint.encode(d,o.version)},decode:d=>({header:Kn.decode(d),version:e.uint.decode(d)})},Pn=de,Rn={preencode(o,n){Pn.preencode(o,n.header),e.uint.preencode(o,n.from),e.uint.preencode(o,n.to),o.end++,d>=5&&n.buildType&&jp.preencode(o,n.buildType)},encode(o,n){const c=d>=5&&n.buildType?1:0;Pn.encode(o,n.header),e.uint.encode(o,n.from),e.uint.encode(o,n.to),e.uint.encode(o,c),d>=5&&n.buildType&&jp.encode(o,n.buildType)},decode(o){const n=Pn.decode(o),c=e.uint.decode(o),r=e.uint.decode(o),t=o.start<o.end?e.uint.decode(o):0;return{header:n,from:c,to:r,buildType:d>=5&&1&t?jp.decode(o):null}}},Tn={RoomType:1,IsExperimental:2,IsJoiningDisabled:3,IsAppendingDisabled:4,IsCallingDisabled:5,IsMembershipEventsDisabled:6,IsAttachmentsDisabled:7,IsLinksDisabled:8,IsRoomInviteHidden:9},An={preencode(e,d){e.end++},encode(d,o){if(o>9)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},Mn=de,qn=H,In={preencode(d,o){Mn.preencode(d,o.header),e.uint.preencode(d,o.key),qn.preencode(d,o.settings)},encode(d,o){Mn.encode(d,o.header),e.uint.encode(d,o.key),qn.encode(d,o.settings)},decode:d=>({header:Mn.decode(d),key:e.uint.decode(d),settings:qn.decode(d)})},Sn=de,Cn={preencode(d,o){Sn.preencode(d,o.header),e.uint.preencode(d,o.value)},encode(d,o){Sn.encode(d,o.header),e.uint.encode(d,o.value)},decode:d=>({header:Sn.decode(d),value:e.uint.decode(d)})},Dn={preencode(d,o){e.uint.preencode(d,o.key),e.uint.preencode(d,o.value)},encode(d,o){e.uint.encode(d,o.key),e.uint.encode(d,o.value)},decode:d=>({key:e.uint.decode(d),value:e.uint.decode(d)})},Ln={Flag:1},Fn={preencode(e,d){e.end++},encode(d,o){if(o>1)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},jn={preencode(d,o){Ao.preencode(d,o.id),e.fixed32.preencode(d,o.sender),e.uint.preencode(d,o.clock),Fn.preencode(d,o.label)},encode(d,o){Ao.encode(d,o.id),e.fixed32.encode(d,o.sender),e.uint.encode(d,o.clock),Fn.encode(d,o.label)},decode:d=>({id:Ao.decode(d),sender:e.fixed32.decode(d),clock:e.uint.decode(d),label:Fn.decode(d)})},En=de,Bn={preencode(e,d){En.preencode(e,d.header),n.preencode(e,d.oplog),Fn.preencode(e,d.label)},encode(e,d){En.encode(e,d.header),n.encode(e,d.oplog),Fn.encode(e,d.label)},decode:e=>({header:En.decode(e),oplog:n.decode(e),label:Fn.decode(e)})},zn=de,Nn={preencode(e,d){zn.preencode(e,d.header),n.preencode(e,d.oplog),Fn.preencode(e,d.label)},encode(e,d){zn.encode(e,d.header),n.encode(e,d.oplog),Fn.encode(e,d.label)},decode:e=>({header:zn.decode(e),oplog:n.decode(e),label:Fn.decode(e)})},On={preencode(d,o){Fn.preencode(d,o.label),e.uint.preencode(d,o.count)},encode(d,o){Fn.encode(d,o.label),e.uint.encode(d,o.count)},decode:d=>({label:Fn.decode(d),count:e.uint.decode(d)})},Un=e.array(e.frame(On)),Vn={preencode(d,o){Ao.preencode(d,o.id),e.uint.preencode(d,o.total),Un.preencode(d,o.labels),e.uint.preencode(d,o.editedAt),d.end++,o.flagsClock&&e.uint.preencode(d,o.flagsClock),o.version&&e.uint.preencode(d,o.version)},encode(d,o){const n=(o.flagsClock?1:0)|(o.version?2:0)|(o.isDeleted?4:0);Ao.encode(d,o.id),e.uint.encode(d,o.total),Un.encode(d,o.labels),e.uint.encode(d,o.editedAt),e.uint.encode(d,n),o.flagsClock&&e.uint.encode(d,o.flagsClock),o.version&&e.uint.encode(d,o.version)},decode(d){const o=Ao.decode(d),n=e.uint.decode(d),c=Un.decode(d),r=e.uint.decode(d),t=e.uint.decode(d);return{id:o,total:n,labels:c,editedAt:r,flagsClock:1&t?e.uint.decode(d):0,version:2&t?e.uint.decode(d):0,isDeleted:!!(4&t)}}},Jn=de,Hn={preencode(d,o){Jn.preencode(d,o.header),e.uint.preencode(d,o.length)},encode(d,o){Jn.encode(d,o.header),e.uint.encode(d,o.length)},decode:d=>({header:Jn.decode(d),length:e.uint.decode(d)})},Wn={preencode(d,o){e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.length)},encode(d,o){e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.length)},decode:d=>({memberKey:e.fixed32.decode(d),length:e.uint.decode(d)})},Gn=ee,Qn=e.frame(be),Xn={preencode(o,n){e.fixed32.preencode(o,n.memberKey),wu.preencode(o,n.status),o.end++,n.mailbox&&e.fixed32.preencode(o,n.mailbox),n.roomKey&&e.fixed32.preencode(o,n.roomKey),d>=8&&n.contactInfo&&Qn.preencode(o,n.contactInfo),d>=8&&n.version&&e.uint.preencode(o,n.version),d>=10&&n.alias&&e.string.preencode(o,n.alias)},encode(o,n){const c=(n.mailbox?1:0)|(n.roomKey?2:0)|(d>=8&&n.contactInfo?4:0)|(d>=8&&n.version?8:0)|(d>=10&&n.alias?16:0);e.fixed32.encode(o,n.memberKey),wu.encode(o,n.status),e.uint.encode(o,c),n.mailbox&&e.fixed32.encode(o,n.mailbox),n.roomKey&&e.fixed32.encode(o,n.roomKey),d>=8&&n.contactInfo&&Qn.encode(o,n.contactInfo),d>=8&&n.version&&e.uint.encode(o,n.version),d>=10&&n.alias&&e.string.encode(o,n.alias)},decode(o){const n=e.fixed32.decode(o),c=wu.decode(o),r=e.uint.decode(o);return{memberKey:n,status:c,mailbox:1&r?e.fixed32.decode(o):null,roomKey:2&r?e.fixed32.decode(o):null,contactInfo:d>=8&&4&r?Qn.decode(o):null,version:d>=8&&8&r?e.uint.decode(o):0,alias:d>=10&&16&r?e.string.decode(o):null}}},Yn={preencode(d,n){e.fixed32.preencode(d,n.roomKey),e.buffer.preencode(d,n.encryptionKey),e.fixed32.preencode(d,n.seed),o.preencode(d,n.initiator),e.fixed32.preencode(d,n.fastForwardTo)},encode(d,n){e.fixed32.encode(d,n.roomKey),e.buffer.encode(d,n.encryptionKey),e.fixed32.encode(d,n.seed),o.encode(d,n.initiator),e.fixed32.encode(d,n.fastForwardTo)},decode:d=>({roomKey:e.fixed32.decode(d),encryptionKey:e.buffer.decode(d),seed:e.fixed32.decode(d),initiator:o.decode(d),fastForwardTo:e.fixed32.decode(d)})},Zn=e.array(e.frame(Yn)),$n=$,_n={preencode(e,d){Zn.preencode(e,d.sharedRooms),$n.preencode(e,d.blockedContacts)},encode(e,d){Zn.encode(e,d.sharedRooms),$n.encode(e,d.blockedContacts)},decode:e=>({sharedRooms:Zn.decode(e),blockedContacts:$n.decode(e)})},ec=vn,dc={preencode(e,d){ec.preencode(e,d.identity)},encode(e,d){ec.encode(e,d.identity)},decode:e=>({identity:ec.decode(e)})},oc={preencode(d,o){e.uint.preencode(d,o.rooms),e.uint.preencode(d,o.contacts)},encode(d,o){e.uint.encode(d,o.rooms),e.uint.encode(d,o.contacts)},decode:d=>({rooms:e.uint.decode(d),contacts:e.uint.decode(d)})},nc={preencode(d,o){e.uint.preencode(d,o.rooms),e.uint.preencode(d,o.contactRequests)},encode(d,o){e.uint.encode(d,o.rooms),e.uint.encode(d,o.contactRequests)},decode:d=>({rooms:e.uint.decode(d),contactRequests:e.uint.decode(d)})},cc={preencode(d,o){e.buffer.preencode(d,o.entropy)},encode(d,o){e.buffer.encode(d,o.entropy)},decode:d=>({entropy:e.buffer.decode(d)})},rc={preencode(d,o){e.fixed32.preencode(d,o.publicKey),e.fixed32.preencode(d,o.devicePublicKey),e.fixed32.preencode(d,o.writerKey)},encode(d,o){e.fixed32.encode(d,o.publicKey),e.fixed32.encode(d,o.devicePublicKey),e.fixed32.encode(d,o.writerKey)},decode:d=>({publicKey:e.fixed32.decode(d),devicePublicKey:e.fixed32.decode(d),writerKey:e.fixed32.decode(d)})},tc=e.frame(rc),ic={preencode(n,c){e.fixed32.preencode(n,c.id),e.fixed32.preencode(n,c.invitationSeed),e.fixed32.preencode(n,c.mailbox),r.preencode(n,c.responseKeyPair),o.preencode(n,c.initiator),o.preencode(n,c.inviter),n.end++,c.identity&&tc.preencode(n,c.identity),d>=5&&c.buildType&&jp.preencode(n,c.buildType)},encode(n,c){const t=(c.identity?1:0)|(d>=5&&c.buildType?2:0);e.fixed32.encode(n,c.id),e.fixed32.encode(n,c.invitationSeed),e.fixed32.encode(n,c.mailbox),r.encode(n,c.responseKeyPair),o.encode(n,c.initiator),o.encode(n,c.inviter),e.uint.encode(n,t),c.identity&&tc.encode(n,c.identity),d>=5&&c.buildType&&jp.encode(n,c.buildType)},decode(n){const c=e.fixed32.decode(n),t=e.fixed32.decode(n),i=e.fixed32.decode(n),a=r.decode(n),s=o.decode(n),p=o.decode(n),u=e.uint.decode(n);return{id:c,invitationSeed:t,mailbox:i,responseKeyPair:a,initiator:s,inviter:p,identity:1&u?tc.decode(n):null,buildType:d>=5&&2&u?jp.decode(n):null}}},ac=de,sc={preencode(d,o){ac.preencode(d,o.header),e.buffer.preencode(d,o.blindResponse)},encode(d,o){ac.encode(d,o.header),e.buffer.encode(d,o.blindResponse)},decode:d=>({header:ac.decode(d),blindResponse:e.buffer.decode(d)})},pc=de,uc=e.frame(ic),lc={preencode(e,d){pc.preencode(e,d.header),uc.preencode(e,d.invitation)},encode(e,d){pc.encode(e,d.header),uc.encode(e,d.invitation)},decode:e=>({header:pc.decode(e),invitation:uc.decode(e)})},fc=de,mc={preencode(d,o){fc.preencode(d,o.header),e.fixed32.preencode(d,o.id)},encode(d,o){fc.encode(d,o.header),e.fixed32.encode(d,o.id)},decode:d=>({header:fc.decode(d),id:e.fixed32.decode(d)})},yc={preencode(d,o){e.fixed32.preencode(d,o.publicKey),e.fixed32.preencode(d,o.devicePublicKey),d.end++,o.privateProfileKey&&e.fixed32.preencode(d,o.privateProfileKey),o.deviceKeyPair&&r.preencode(d,o.deviceKeyPair),e.buffer.preencode(d,o.deviceProof)},encode(d,o){const n=(o.privateProfileKey?1:0)|(o.deviceKeyPair?2:0);e.fixed32.encode(d,o.publicKey),e.fixed32.encode(d,o.devicePublicKey),e.uint.encode(d,n),o.privateProfileKey&&e.fixed32.encode(d,o.privateProfileKey),o.deviceKeyPair&&r.encode(d,o.deviceKeyPair),e.buffer.encode(d,o.deviceProof)},decode(d){const o=e.fixed32.decode(d),n=e.fixed32.decode(d),c=e.uint.decode(d);return{publicKey:o,devicePublicKey:n,privateProfileKey:1&c?e.fixed32.decode(d):null,deviceKeyPair:2&c?r.decode(d):null,deviceProof:e.buffer.decode(d)}}},xc={preencode(d,o){e.fixed32.preencode(d,o.publicKey),e.fixed32.preencode(d,o.writerKey),e.fixed32.preencode(d,o.devicePublicKey),d.end++,o.privateProfileKey&&e.fixed32.preencode(d,o.privateProfileKey)},encode(d,o){const n=o.privateProfileKey?1:0;e.fixed32.encode(d,o.publicKey),e.fixed32.encode(d,o.writerKey),e.fixed32.encode(d,o.devicePublicKey),e.uint.encode(d,n),o.privateProfileKey&&e.fixed32.encode(d,o.privateProfileKey)},decode:d=>({publicKey:e.fixed32.decode(d),writerKey:e.fixed32.decode(d),devicePublicKey:e.fixed32.decode(d),privateProfileKey:1&e.uint.decode(d)?e.fixed32.decode(d):null})},bc={preencode(e,d){e.end++},encode(o,n){const c=(n.isActive?1:0)|(n.isFullyMuted?2:0)|(n.isMentionsOnlyMuted?4:0)|(n.isReadOnly?8:0)|(d>=3&&n.isFavorite?16:0)|(d>=7&&n.isUnread?32:0);e.uint.encode(o,c)},decode(o){const n=e.uint.decode(o);return{isActive:!!(1&n),isFullyMuted:!!(2&n),isMentionsOnlyMuted:!!(4&n),isReadOnly:!!(8&n),isFavorite:d>=3&&!!(16&n),isUnread:d>=7&&!!(32&n)}}},vc=e.frame(bc),gc=e.frame(yc),hc=tc,kc={preencode(d,n){e.fixed32.preencode(d,n.roomKey),e.buffer.preencode(d,n.encryptionKey),e.fixed32.preencode(d,n.mailbox),vc.preencode(d,n.status),e.uint.preencode(d,n.clock),d.end++,n.initiator&&o.preencode(d,n.initiator),n.fastForwardTo&&e.fixed32.preencode(d,n.fastForwardTo),n.identitySwap&&gc.preencode(d,n.identitySwap),n.identitySwapV2&&hc.preencode(d,n.identitySwapV2),n.contact&&e.fixed32.preencode(d,n.contact)},encode(d,n){const c=(n.initiator?1:0)|(n.fastForwardTo?2:0)|(n.identitySwap?4:0)|(n.identitySwapV2?8:0)|(n.contact?16:0);e.fixed32.encode(d,n.roomKey),e.buffer.encode(d,n.encryptionKey),e.fixed32.encode(d,n.mailbox),vc.encode(d,n.status),e.uint.encode(d,n.clock),e.uint.encode(d,c),n.initiator&&o.encode(d,n.initiator),n.fastForwardTo&&e.fixed32.encode(d,n.fastForwardTo),n.identitySwap&&gc.encode(d,n.identitySwap),n.identitySwapV2&&hc.encode(d,n.identitySwapV2),n.contact&&e.fixed32.encode(d,n.contact)},decode(d){const n=e.fixed32.decode(d),c=e.buffer.decode(d),r=e.fixed32.decode(d),t=vc.decode(d),i=e.uint.decode(d),a=e.uint.decode(d);return{roomKey:n,encryptionKey:c,mailbox:r,status:t,clock:i,initiator:1&a?o.decode(d):null,fastForwardTo:2&a?e.fixed32.decode(d):null,identitySwap:4&a?gc.decode(d):null,identitySwapV2:8&a?hc.decode(d):null,contact:16&a?e.fixed32.decode(d):null}}},Kc=de,wc={preencode(d,n){Kc.preencode(d,n.header),e.fixed32.preencode(d,n.roomKey),e.buffer.preencode(d,n.encryptionKey),e.fixed32.preencode(d,n.mailbox),d.end++,n.fastForwardTo&&e.fixed32.preencode(d,n.fastForwardTo),n.initiator&&o.preencode(d,n.initiator),n.dm&&e.fixed32.preencode(d,n.dm)},encode(d,n){const c=(n.fastForwardTo?1:0)|(n.initiator?2:0)|(n.dm?4:0)|(n.isReadOnly?8:0);Kc.encode(d,n.header),e.fixed32.encode(d,n.roomKey),e.buffer.encode(d,n.encryptionKey),e.fixed32.encode(d,n.mailbox),e.uint.encode(d,c),n.fastForwardTo&&e.fixed32.encode(d,n.fastForwardTo),n.initiator&&o.encode(d,n.initiator),n.dm&&e.fixed32.encode(d,n.dm)},decode(d){const n=Kc.decode(d),c=e.fixed32.decode(d),r=e.buffer.decode(d),t=e.fixed32.decode(d),i=e.uint.decode(d);return{header:n,roomKey:c,encryptionKey:r,mailbox:t,fastForwardTo:1&i?e.fixed32.decode(d):null,initiator:2&i?o.decode(d):null,dm:4&i?e.fixed32.decode(d):null,isReadOnly:!!(8&i)}}},Pc=de,Rc={preencode(d,o){Pc.preencode(d,o.header),e.fixed32.preencode(d,o.discoveryKey)},encode(d,o){Pc.encode(d,o.header),e.fixed32.encode(d,o.discoveryKey)},decode:d=>({header:Pc.decode(d),discoveryKey:e.fixed32.decode(d)})},Tc=de,Ac=vc,Mc={preencode(d,o){Tc.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey),e.uint.preencode(d,o.key),Ac.preencode(d,o.status)},encode(d,o){Tc.encode(d,o.header),e.fixed32.encode(d,o.roomKey),e.uint.encode(d,o.key),Ac.encode(d,o.status)},decode:d=>({header:Tc.decode(d),roomKey:e.fixed32.decode(d),key:e.uint.decode(d),status:Ac.decode(d)})},qc={preencode(e,d){e.end++},encode(o,n){const c=(n.isBlocked?1:0)|(d>=8&&n.isActive?2:0);e.uint.encode(o,c)},decode(o){const n=e.uint.decode(o);return{isBlocked:!!(1&n),isActive:d>=8&&!!(2&n)}}},Ic=Qn,Sc={preencode(o,n){e.fixed32.preencode(o,n.memberKey),e.uint.preencode(o,n.clock),Pu.preencode(o,n.status),o.end++,n.mailbox&&e.fixed32.preencode(o,n.mailbox),n.roomKey&&e.fixed32.preencode(o,n.roomKey),d>=8&&n.contactInfo&&Ic.preencode(o,n.contactInfo),d>=10&&n.alias&&e.string.preencode(o,n.alias)},encode(o,n){const c=(n.mailbox?1:0)|(n.roomKey?2:0)|(d>=8&&n.contactInfo?4:0)|(d>=10&&n.alias?8:0);e.fixed32.encode(o,n.memberKey),e.uint.encode(o,n.clock),Pu.encode(o,n.status),e.uint.encode(o,c),n.mailbox&&e.fixed32.encode(o,n.mailbox),n.roomKey&&e.fixed32.encode(o,n.roomKey),d>=8&&n.contactInfo&&Ic.encode(o,n.contactInfo),d>=10&&n.alias&&e.string.encode(o,n.alias)},decode(o){const n=e.fixed32.decode(o),c=e.uint.decode(o),r=Pu.decode(o),t=e.uint.decode(o);return{memberKey:n,clock:c,status:r,mailbox:1&t?e.fixed32.decode(o):null,roomKey:2&t?e.fixed32.decode(o):null,contactInfo:d>=8&&4&t?Ic.decode(o):null,alias:d>=10&&8&t?e.string.decode(o):null}}},Cc=de,Dc=e.frame(Xn),Lc={preencode(e,d){Cc.preencode(e,d.header),Dc.preencode(e,d.contact)},encode(e,d){Cc.encode(e,d.header),Dc.encode(e,d.contact)},decode:e=>({header:Cc.decode(e),contact:Dc.decode(e)})},Fc=de,jc={preencode(d,o){Fc.preencode(d,o.header),e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.key),Ru.preencode(d,o.status)},encode(d,o){Fc.encode(d,o.header),e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.key),Ru.encode(d,o.status)},decode:d=>({header:Fc.decode(d),memberKey:e.fixed32.decode(d),key:e.uint.decode(d),status:Ru.decode(d)})},Ec=de,Bc={preencode(d,o){Ec.preencode(d,o.header),e.fixed32.preencode(d,o.memberKey)},encode(d,o){Ec.encode(d,o.header),e.fixed32.encode(d,o.memberKey)},decode:d=>({header:Ec.decode(d),memberKey:e.fixed32.decode(d)})},zc=de,Nc={preencode(d,o){zc.preencode(d,o.header),e.fixed32.preencode(d,o.memberKey)},encode(d,o){zc.encode(d,o.header),e.fixed32.encode(d,o.memberKey)},decode:d=>({header:zc.decode(d),memberKey:e.fixed32.decode(d)})},Oc={preencode(e,d){e.end++},encode(d,o){const n=(o.isPending?1:0)|(o.isAccepted?2:0)|(o.isRejected?4:0)|(o.isDiscarded?8:0)|(o.isSeen?16:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isPending:!!(1&o),isAccepted:!!(2&o),isRejected:!!(4&o),isDiscarded:!!(8&o),isSeen:!!(16&o)}}},Uc=we,Vc=e.frame(t),Jc={preencode(d,o){Uc.preencode(d,o.sender),Vc.preencode(d,o.keys),e.fixed32.preencode(d,o.mailbox),d.end++,o.message&&e.string.preencode(d,o.message)},encode(d,o){const n=o.message?1:0;Uc.encode(d,o.sender),Vc.encode(d,o.keys),e.fixed32.encode(d,o.mailbox),e.uint.encode(d,n),o.message&&e.string.encode(d,o.message)},decode:d=>({sender:Uc.decode(d),keys:Vc.decode(d),mailbox:e.fixed32.decode(d),message:1&e.uint.decode(d)?e.string.decode(d):null})},Hc=e.frame(Jc),Wc={preencode(e,d){Hc.preencode(e,d.body),te.preencode(e,d.attestation)},encode(e,d){Hc.encode(e,d.body),te.encode(e,d.attestation)},decode:e=>({body:Hc.decode(e),attestation:te.decode(e)})},Gc=fe,Qc=e.frame(Oc),Xc=Vc,Yc=Qn,Zc={preencode(o,n){e.fixed32.preencode(o,n.memberKey),e.uint.preencode(o,n.clock),Gc.preencode(o,n.sender),Qc.preencode(o,n.status),Xc.preencode(o,n.keys),e.fixed32.preencode(o,n.mailbox),o.end++,n.message&&e.string.preencode(o,n.message),n.sentAt&&e.uint.preencode(o,n.sentAt),d>=8&&n.contactInfo&&Yc.preencode(o,n.contactInfo)},encode(o,n){const c=(n.message?1:0)|(n.sentAt?2:0)|(d>=8&&n.contactInfo?4:0);e.fixed32.encode(o,n.memberKey),e.uint.encode(o,n.clock),Gc.encode(o,n.sender),Qc.encode(o,n.status),Xc.encode(o,n.keys),e.fixed32.encode(o,n.mailbox),e.uint.encode(o,c),n.message&&e.string.encode(o,n.message),n.sentAt&&e.uint.encode(o,n.sentAt),d>=8&&n.contactInfo&&Yc.encode(o,n.contactInfo)},decode(o){const n=e.fixed32.decode(o),c=e.uint.decode(o),r=Gc.decode(o),t=Qc.decode(o),i=Xc.decode(o),a=e.fixed32.decode(o),s=e.uint.decode(o);return{memberKey:n,clock:c,sender:r,status:t,keys:i,mailbox:a,message:1&s?e.string.decode(o):null,sentAt:2&s?e.uint.decode(o):0,contactInfo:d>=8&&4&s?Yc.decode(o):null}}},$c=de,_c={preencode(d,o){$c.preencode(d,o.header),e.buffer.preencode(d,o.blindRequest)},encode(d,o){$c.encode(d,o.header),e.buffer.encode(d,o.blindRequest)},decode:d=>({header:$c.decode(d),blindRequest:e.buffer.decode(d)})},er=de,dr=Qc,or={preencode(d,o){er.preencode(d,o.header),e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.key),dr.preencode(d,o.status),d.end++,o.roomKey&&e.fixed32.preencode(d,o.roomKey)},encode(d,o){const n=o.roomKey?1:0;er.encode(d,o.header),e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.key),dr.encode(d,o.status),e.uint.encode(d,n),o.roomKey&&e.fixed32.encode(d,o.roomKey)},decode:d=>({header:er.decode(d),memberKey:e.fixed32.decode(d),key:e.uint.decode(d),status:dr.decode(d),roomKey:1&e.uint.decode(d)?e.fixed32.decode(d):null})},nr={preencode(d,o){e.uint.preencode(d,o.timestamp),e.fixed32.preencode(d,o.key),e.fixed32.preencode(d,o.mailbox)},encode(d,o){e.uint.encode(d,o.timestamp),e.fixed32.encode(d,o.key),e.fixed32.encode(d,o.mailbox)},decode:d=>({version:e.uint.decode(d),timestamp:e.uint.decode(d),key:e.fixed32.decode(d),mailbox:e.fixed32.decode(d)})},cr={preencode(d,o){switch(e.uint.preencode(d,o.version),o.version){case 0:case 1:nr.preencode(d,o);break;default:throw new Error("Unsupported version")}},encode(d,o){switch(e.uint.encode(d,o.version),o.version){case 0:case 1:nr.encode(d,o);break;default:throw new Error("Unsupported version")}},decode(d){const o=d.start,n=e.uint.decode(d);switch(d.start=o,n){case 0:case 1:return nr.decode(d);default:throw new Error("Unsupported version")}}},rr={preencode(d,o){e.fixed32.preencode(d,o.deviceKey),e.fixed32.preencode(d,o.key)},encode(d,o){e.fixed32.encode(d,o.deviceKey),e.fixed32.encode(d,o.key)},decode:d=>({deviceKey:e.fixed32.decode(d),key:e.fixed32.decode(d)})},tr=de,ir={preencode(d,o){tr.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){tr.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:tr.decode(d),key:e.fixed32.decode(d)})},ar=de,sr={preencode(d,o){ar.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){ar.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:ar.decode(d),key:e.fixed32.decode(d)})},pr={preencode(o,n){o.end++,d>=9&&n.profileSnoozeTime&&e.uint.preencode(o,n.profileSnoozeTime)},encode(o,n){const c=(n.disableReadReceipts?1:0)|(d>=7&&n.stripAttachmentMetadata?2:0)|(d>=9&&n.profileSnoozeTime?4:0);e.uint.encode(o,c),d>=9&&n.profileSnoozeTime&&e.uint.encode(o,n.profileSnoozeTime)},decode(o){const n=e.uint.decode(o);return{disableReadReceipts:!!(1&n),stripAttachmentMetadata:d>=7&&!!(2&n),profileSnoozeTime:d>=9&&4&n?e.uint.decode(o):0}}},ur={disableReadReceipts:"disableReadReceipts",stripAttachmentMetadata:"stripAttachmentMetadata",profileSnoozeTime:"profileSnoozeTime"},lr={preencode(e,d){e.end++},encode(d,o){switch(o){case"disableReadReceipts":e.uint.encode(d,1);break;case"stripAttachmentMetadata":e.uint.encode(d,2);break;case"profileSnoozeTime":e.uint.encode(d,3);break;default:throw new Error("Unknown enum")}},decode(d){switch(e.uint.decode(d)){case 1:return"disableReadReceipts";case 2:return"stripAttachmentMetadata";case 3:return"profileSnoozeTime";default:return null}}},fr=de,mr=e.frame(pr),yr={preencode(e,d){fr.preencode(e,d.header),lr.preencode(e,d.key),mr.preencode(e,d.settings)},encode(e,d){fr.encode(e,d.header),lr.encode(e,d.key),mr.encode(e,d.settings)},decode:e=>({header:fr.decode(e),key:lr.decode(e),settings:mr.decode(e)})},xr={preencode(d,o){e.fixed32.preencode(d,o.discoveryPublicKey),e.uint.preencode(d,o.timestamp),d.end++,o.lastSynced&&e.uint.preencode(d,o.lastSynced)},encode(d,o){const n=(o.lastSynced?1:0)|(o.dirty?2:0);e.fixed32.encode(d,o.discoveryPublicKey),e.uint.encode(d,o.timestamp),e.uint.encode(d,n),o.lastSynced&&e.uint.encode(d,o.lastSynced)},decode(d){const o=e.fixed32.decode(d),n=e.uint.decode(d),c=e.uint.decode(d);return{discoveryPublicKey:o,timestamp:n,lastSynced:1&c?e.uint.decode(d):0,dirty:!!(2&c)}}},br={preencode(d,o){e.uint.preencode(d,o.rooms),e.uint.preencode(d,o.activeRooms)},encode(d,o){e.uint.encode(d,o.rooms),e.uint.encode(d,o.activeRooms)},decode:d=>({rooms:e.uint.decode(d),activeRooms:e.uint.decode(d)})},vr=S,gr=$,hr={preencode(e,d){e.end++,d.blockedMembers&&gr.preencode(e,d.blockedMembers)},encode(d,o){const n=o.blockedMembers?1:0;e.uint.encode(d,n),o.blockedMembers&&gr.encode(d,o.blockedMembers)},decode:d=>({blockedMembers:1&e.uint.decode(d)?gr.decode(d):null})},kr=e.frame(Q),Kr=e.frame(hr),wr={preencode(d,n){e.buffer.preencode(d,n.encryptionKey),e.fixed32.preencode(d,n.seed),kr.preencode(d,n.capabilities),o.preencode(d,n.initiator),e.fixed32.preencode(d,n.fastForwardTo),d.end++,n.privateProfile&&Kr.preencode(d,n.privateProfile)},encode(d,n){const c=n.privateProfile?1:0;e.buffer.encode(d,n.encryptionKey),e.fixed32.encode(d,n.seed),kr.encode(d,n.capabilities),o.encode(d,n.initiator),e.fixed32.encode(d,n.fastForwardTo),e.uint.encode(d,c),n.privateProfile&&Kr.encode(d,n.privateProfile)},decode:d=>({encryptionKey:e.buffer.decode(d),seed:e.fixed32.decode(d),capabilities:kr.decode(d),initiator:o.decode(d),fastForwardTo:e.fixed32.decode(d),privateProfile:1&e.uint.decode(d)?Kr.decode(d):null})},Pr={preencode(d,o){d.end++,o.count&&e.uint.preencode(d,o.count)},encode(d,o){const n=o.count?1:0;e.uint.encode(d,n),o.count&&e.uint.encode(d,o.count)},decode:d=>({count:1&e.uint.decode(d)?e.uint.decode(d):0})},Rr=e.frame(wr),Tr={preencode(d,o){e.fixed32.preencode(d,o.roomKey),e.uint.preencode(d,o.priority),d.end++,o.v3&&Rr.preencode(d,o.v3),o.timestamp&&e.uint.preencode(d,o.timestamp)},encode(d,o){const n=(o.v3?1:0)|(o.errored?2:0)|(o.timestamp?4:0);e.fixed32.encode(d,o.roomKey),e.uint.encode(d,o.priority),e.uint.encode(d,n),o.v3&&Rr.encode(d,o.v3),o.timestamp&&e.uint.encode(d,o.timestamp)},decode(d){const o=e.fixed32.decode(d),n=e.uint.decode(d),c=e.uint.decode(d);return{roomKey:o,priority:n,v3:1&c?Rr.decode(d):null,errored:!!(2&c),timestamp:4&c?e.uint.decode(d):0}}},Ar={preencode(e,d){e.end++},encode(d,o){const n=o.isConfirmed?1:0;e.uint.encode(d,n)},decode:d=>({isConfirmed:!!(1&e.uint.decode(d))})},Mr={preencode(d,o){e.fixed32.preencode(d,o.privateProfileKey)},encode(d,o){e.fixed32.encode(d,o.privateProfileKey)},decode:d=>({privateProfileKey:e.fixed32.decode(d)})},qr=e.frame(Ar),Ir=gc,Sr=e.frame(xc),Cr={preencode(o,n){e.fixed32.preencode(o,n.publicKey),e.fixed32.preencode(o,n.privateProfileKey),r.preencode(o,n.deviceKeyPair),e.buffer.preencode(o,n.deviceProof),qr.preencode(o,n.status),o.end++,n.entropy&&e.buffer.preencode(o,n.entropy),n.swap&&Ir.preencode(o,n.swap),n.swapV2&&Sr.preencode(o,n.swapV2),d>=7&&n.proofShortenedAt&&e.uint.preencode(o,n.proofShortenedAt)},encode(o,n){const c=(n.entropy?1:0)|(n.swap?2:0)|(n.swapV2?4:0)|(d>=7&&n.proofShortenedAt?8:0);e.fixed32.encode(o,n.publicKey),e.fixed32.encode(o,n.privateProfileKey),r.encode(o,n.deviceKeyPair),e.buffer.encode(o,n.deviceProof),qr.encode(o,n.status),e.uint.encode(o,c),n.entropy&&e.buffer.encode(o,n.entropy),n.swap&&Ir.encode(o,n.swap),n.swapV2&&Sr.encode(o,n.swapV2),d>=7&&n.proofShortenedAt&&e.uint.encode(o,n.proofShortenedAt)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),t=r.decode(o),i=e.buffer.decode(o),a=qr.decode(o),s=e.uint.decode(o);return{publicKey:n,privateProfileKey:c,deviceKeyPair:t,deviceProof:i,status:a,entropy:1&s?e.buffer.decode(o):null,swap:2&s?Ir.decode(o):null,swapV2:4&s?Sr.decode(o):null,proofShortenedAt:d>=7&&8&s?e.uint.decode(o):0}}},Dr={RestoreIdentity:1,CreateRoom:2,LeaveRoom:3,ClearRoom:4,JoinRoomInvitation:5,JoinRoomKeys:6,JoinRoomResponse:7,SendContactRequest:8,TestFastTask:9,TestSlowTask:10,TestErrorTask:11},Lr={preencode(e,d){e.end++},encode(d,o){if(o>11)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},Fr={preencode(d,n){e.fixed32.preencode(d,n.roomKey),e.buffer.preencode(d,n.encryptionKey),d.end++,n.fastForwardTo&&e.fixed32.preencode(d,n.fastForwardTo),n.initiator&&o.preencode(d,n.initiator)},encode(d,n){const c=(n.fastForwardTo?1:0)|(n.initiator?2:0);e.fixed32.encode(d,n.roomKey),e.buffer.encode(d,n.encryptionKey),e.uint.encode(d,c),n.fastForwardTo&&e.fixed32.encode(d,n.fastForwardTo),n.initiator&&o.encode(d,n.initiator)},decode(d){const n=e.fixed32.decode(d),c=e.buffer.decode(d),r=e.uint.decode(d);return{roomKey:n,encryptionKey:c,fastForwardTo:1&r?e.fixed32.decode(d):null,initiator:2&r?o.decode(d):null}}},jr=uc,Er={preencode(e,d){jr.preencode(e,d.invitation)},encode(e,d){jr.encode(e,d.invitation)},decode:e=>({invitation:jr.decode(e)})},Br={preencode(d,o){e.fixed32.preencode(d,o.mailbox),r.preencode(d,o.keyPair),e.buffer.preencode(d,o.response)},encode(d,o){e.fixed32.encode(d,o.mailbox),r.encode(d,o.keyPair),e.buffer.encode(d,o.response)},decode:d=>({mailbox:e.fixed32.decode(d),keyPair:r.decode(d),response:e.buffer.decode(d)})},zr=ee,Nr={preencode(d,n){e.fixed32.preencode(d,n.roomKey),e.buffer.preencode(d,n.encryptionKey),d.end++,n.fastForwardTo&&e.fixed32.preencode(d,n.fastForwardTo),n.initiator&&o.preencode(d,n.initiator),n.mailbox&&e.fixed32.preencode(d,n.mailbox)},encode(d,n){const c=(n.fastForwardTo?1:0)|(n.initiator?2:0)|(n.mailbox?4:0);e.fixed32.encode(d,n.roomKey),e.buffer.encode(d,n.encryptionKey),e.uint.encode(d,c),n.fastForwardTo&&e.fixed32.encode(d,n.fastForwardTo),n.initiator&&o.encode(d,n.initiator),n.mailbox&&e.fixed32.encode(d,n.mailbox)},decode(d){const n=e.fixed32.decode(d),c=e.buffer.decode(d),r=e.uint.decode(d);return{roomKey:n,encryptionKey:c,fastForwardTo:1&r?e.fixed32.decode(d):null,initiator:2&r?o.decode(d):null,mailbox:4&r?e.fixed32.decode(d):null}}},Or=e.frame(Nr),Ur={preencode(e,d){Or.preencode(e,d.keys)},encode(e,d){Or.encode(e,d.keys)},decode:e=>({keys:Or.decode(e)})},Vr=e.frame(kn),Jr={preencode(d,n){e.fixed32.preencode(d,n.roomKey),e.buffer.preencode(d,n.encryptionKey),d.end++,n.fastForwardTo&&e.fixed32.preencode(d,n.fastForwardTo),n.initiator&&o.preencode(d,n.initiator),n.mailbox&&e.fixed32.preencode(d,n.mailbox),n.keyPair&&r.preencode(d,n.keyPair),n.genesis&&Vr.preencode(d,n.genesis)},encode(d,n){const c=(n.fastForwardTo?1:0)|(n.initiator?2:0)|(n.mailbox?4:0)|(n.keyPair?8:0)|(n.genesis?16:0)|(n.isPrivateProfile?32:0);e.fixed32.encode(d,n.roomKey),e.buffer.encode(d,n.encryptionKey),e.uint.encode(d,c),n.fastForwardTo&&e.fixed32.encode(d,n.fastForwardTo),n.initiator&&o.encode(d,n.initiator),n.mailbox&&e.fixed32.encode(d,n.mailbox),n.keyPair&&r.encode(d,n.keyPair),n.genesis&&Vr.encode(d,n.genesis)},decode(d){const n=e.fixed32.decode(d),c=e.buffer.decode(d),t=e.uint.decode(d);return{roomKey:n,encryptionKey:c,fastForwardTo:1&t?e.fixed32.decode(d):null,initiator:2&t?o.decode(d):null,mailbox:4&t?e.fixed32.decode(d):null,keyPair:8&t?r.decode(d):null,genesis:16&t?Vr.decode(d):null,isPrivateProfile:!!(32&t)}}},Hr={preencode(d,o){e.fixed32.preencode(d,o.roomKey),d.end++},encode(d,o){const n=o.isGossiped?1:0;e.fixed32.encode(d,o.roomKey),e.uint.encode(d,n)},decode:d=>({roomKey:e.fixed32.decode(d),isGossiped:!!(1&e.uint.decode(d))})},Wr={preencode(d,o){e.fixed32.preencode(d,o.roomKey)},encode(d,o){e.fixed32.encode(d,o.roomKey)},decode:d=>({roomKey:e.fixed32.decode(d)})},Gr={preencode(d,o){e.string.preencode(d,o.mnemonic),d.end++,o.profileDiscoveryTimeout&&e.uint.preencode(d,o.profileDiscoveryTimeout)},encode(d,o){const n=(o.profileDiscoveryTimeout?1:0)|(o.recover?2:0);e.string.encode(d,o.mnemonic),e.uint.encode(d,n),o.profileDiscoveryTimeout&&e.uint.encode(d,o.profileDiscoveryTimeout)},decode(d){const o=e.string.decode(d),n=e.uint.decode(d);return{mnemonic:o,profileDiscoveryTimeout:1&n?e.uint.decode(d):0,recover:!!(2&n)}}},Qr=Qn,Xr={preencode(d,o){e.fixed32.preencode(d,o.roomKey),e.fixed32.preencode(d,o.memberKey),d.end++,o.message&&e.string.preencode(d,o.message),o.contactInfo&&Qr.preencode(d,o.contactInfo)},encode(d,o){const n=(o.message?1:0)|(o.contactInfo?2:0);e.fixed32.encode(d,o.roomKey),e.fixed32.encode(d,o.memberKey),e.uint.encode(d,n),o.message&&e.string.encode(d,o.message),o.contactInfo&&Qr.encode(d,o.contactInfo)},decode(d){const o=e.fixed32.decode(d),n=e.fixed32.decode(d),c=e.uint.decode(d);return{roomKey:o,memberKey:n,message:1&c?e.string.decode(d):null,contactInfo:2&c?Qr.decode(d):null}}},Yr={preencode(d,o){e.fixed32.preencode(d,o.key),d.end++},encode(d,o){const n=o.isPrivateProfile?1:0;e.fixed32.encode(d,o.key),e.uint.encode(d,n)},decode:d=>({key:e.fixed32.decode(d),isPrivateProfile:!!(1&e.uint.decode(d))})},Zr=e.frame(Gr),$r=e.frame(Jr),_r=e.frame(Hr),et=e.frame(Wr),dt=e.frame(Er),ot=e.frame(Ur),nt=e.frame(Br),ct=e.frame(Xr),rt=e.frame(Yr),tt={preencode(d,o){const n=(o.restoreIdentity?1:0)|(o.createRoom?2:0)|(o.leaveRoom?4:0)|(o.clearRoom?8:0)|(o.joinRoomInvitation?16:0)|(o.joinRoomKeys?32:0)|(o.joinRoomResponse?64:0)|(o.sendContactRequest?128:0)|(o.migrateV2Room?256:0);e.fixed32.preencode(d,o.discoveryKey),e.uint.preencode(d,o.priority),e.uint.preencode(d,o.timestamp),e.uint.preencode(d,o.type),e.uint.preencode(d,n),o.restoreIdentity&&Zr.preencode(d,o.restoreIdentity),o.createRoom&&$r.preencode(d,o.createRoom),o.leaveRoom&&_r.preencode(d,o.leaveRoom),o.clearRoom&&et.preencode(d,o.clearRoom),o.joinRoomInvitation&&dt.preencode(d,o.joinRoomInvitation),o.joinRoomKeys&&ot.preencode(d,o.joinRoomKeys),o.joinRoomResponse&&nt.preencode(d,o.joinRoomResponse),o.sendContactRequest&&ct.preencode(d,o.sendContactRequest),o.migrateV2Room&&rt.preencode(d,o.migrateV2Room)},encode(d,o){const n=(o.restoreIdentity?1:0)|(o.createRoom?2:0)|(o.leaveRoom?4:0)|(o.clearRoom?8:0)|(o.joinRoomInvitation?16:0)|(o.joinRoomKeys?32:0)|(o.joinRoomResponse?64:0)|(o.sendContactRequest?128:0)|(o.migrateV2Room?256:0);e.fixed32.encode(d,o.discoveryKey),e.uint.encode(d,o.priority),e.uint.encode(d,o.timestamp),e.uint.encode(d,o.type),e.uint.encode(d,n),o.restoreIdentity&&Zr.encode(d,o.restoreIdentity),o.createRoom&&$r.encode(d,o.createRoom),o.leaveRoom&&_r.encode(d,o.leaveRoom),o.clearRoom&&et.encode(d,o.clearRoom),o.joinRoomInvitation&&dt.encode(d,o.joinRoomInvitation),o.joinRoomKeys&&ot.encode(d,o.joinRoomKeys),o.joinRoomResponse&&nt.encode(d,o.joinRoomResponse),o.sendContactRequest&&ct.encode(d,o.sendContactRequest),o.migrateV2Room&&rt.encode(d,o.migrateV2Room)},decode(d){const o=e.fixed32.decode(d),n=e.uint.decode(d),c=e.uint.decode(d),r=e.uint.decode(d),t=e.uint.decode(d);return{discoveryKey:o,priority:n,timestamp:c,type:r,restoreIdentity:1&t?Zr.decode(d):null,createRoom:2&t?$r.decode(d):null,leaveRoom:4&t?_r.decode(d):null,clearRoom:8&t?et.decode(d):null,joinRoomInvitation:16&t?dt.decode(d):null,joinRoomKeys:32&t?ot.decode(d):null,joinRoomResponse:64&t?nt.decode(d):null,sendContactRequest:128&t?ct.decode(d):null,migrateV2Room:256&t?rt.decode(d):null}}},it=Ue,at={preencode(d,o){e.buffer.preencode(d,o.seed),it.preencode(d,o.invitation)},encode(d,o){e.buffer.encode(d,o.seed),it.encode(d,o.invitation)},decode:d=>({seed:e.buffer.decode(d),invitation:it.decode(d)})},st={preencode(e,d){e.end++},encode(d,o){const n=(o.isWritable?1:0)|(o.isReadable?2:0)|(o.isPrivateProfile?4:0)|(o.isRemoved?8:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isWritable:!!(1&o),isReadable:!!(2&o),isPrivateProfile:!!(4&o),isRemoved:!!(8&o)}}},pt={preencode(d,o){e.uint.preencode(d,o.creation),e.uint.preencode(d,o.latestSync),e.uint.preencode(d,o.latestChatMessage)},encode(d,o){e.uint.encode(d,o.creation),e.uint.encode(d,o.latestSync),e.uint.encode(d,o.latestChatMessage)},decode:d=>({creation:e.uint.decode(d),latestSync:e.uint.decode(d),latestChatMessage:e.uint.decode(d)})},ut=yn,lt=Mo,ft=e.frame(pt),mt=kr,yt=e.frame(st),xt=e.frame(pe),bt=e.frame(Kd),vt=an,gt=vn,ht=e.frame(Eo),kt=$,Kt=e.array(e.frame(Wn)),wt=e.frame(gd),Pt=vc,Rt={preencode(o,n){const c=(n.selfDevice?1:0)|(n.selfMember?2:0)|(n.config?4:0)|(n.identity?8:0)|(n.lastMessage?16:0)|(n.dm?32:0)|(n.readLengths?64:0)|(n.lastMember?128:0)|(n.version?256:0)|(d>=3&&n.preferences?512:0)|(d>=4&&n.activeCall?1024:0)|(d>=8&&n.lastMessageLabels?2048:0)|(d>=9&&n.settings?4096:0);e.fixed32.preencode(o,n.roomKey),e.fixed32.preencode(o,n.discoveryKey),e.buffer.preencode(o,n.encryptionKey),ut.preencode(o,n.digest),lt.preencode(o,n.stats),ft.preencode(o,n.timestamps),e.uint.preencode(o,n.fork),e.uint.preencode(o,n.length),e.fixed32.preencode(o,n.seed),mt.preencode(o,n.capabilities),yt.preencode(o,n.status),e.uint.preencode(o,c),n.selfDevice&&xt.preencode(o,n.selfDevice),n.selfMember&&bt.preencode(o,n.selfMember),n.config&&vt.preencode(o,n.config),n.identity&&gt.preencode(o,n.identity),n.lastMessage&&ht.preencode(o,n.lastMessage),n.dm&&kt.preencode(o,n.dm),n.readLengths&&Kt.preencode(o,n.readLengths),n.lastMember&&wt.preencode(o,n.lastMember),n.version&&e.uint.preencode(o,n.version),d>=3&&n.preferences&&Pt.preencode(o,n.preferences),d>=4&&n.activeCall&&Tu.preencode(o,n.activeCall),d>=8&&n.lastMessageLabels&&Au.preencode(o,n.lastMessageLabels),d>=9&&n.settings&&Mu.preencode(o,n.settings)},encode(o,n){const c=(n.selfDevice?1:0)|(n.selfMember?2:0)|(n.config?4:0)|(n.identity?8:0)|(n.lastMessage?16:0)|(n.dm?32:0)|(n.readLengths?64:0)|(n.lastMember?128:0)|(n.version?256:0)|(d>=3&&n.preferences?512:0)|(d>=4&&n.activeCall?1024:0)|(d>=8&&n.lastMessageLabels?2048:0)|(d>=9&&n.settings?4096:0);e.fixed32.encode(o,n.roomKey),e.fixed32.encode(o,n.discoveryKey),e.buffer.encode(o,n.encryptionKey),ut.encode(o,n.digest),lt.encode(o,n.stats),ft.encode(o,n.timestamps),e.uint.encode(o,n.fork),e.uint.encode(o,n.length),e.fixed32.encode(o,n.seed),mt.encode(o,n.capabilities),yt.encode(o,n.status),e.uint.encode(o,c),n.selfDevice&&xt.encode(o,n.selfDevice),n.selfMember&&bt.encode(o,n.selfMember),n.config&&vt.encode(o,n.config),n.identity&&gt.encode(o,n.identity),n.lastMessage&&ht.encode(o,n.lastMessage),n.dm&&kt.encode(o,n.dm),n.readLengths&&Kt.encode(o,n.readLengths),n.lastMember&&wt.encode(o,n.lastMember),n.version&&e.uint.encode(o,n.version),d>=3&&n.preferences&&Pt.encode(o,n.preferences),d>=4&&n.activeCall&&Tu.encode(o,n.activeCall),d>=8&&n.lastMessageLabels&&Au.encode(o,n.lastMessageLabels),d>=9&&n.settings&&Mu.encode(o,n.settings)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),r=e.buffer.decode(o),t=ut.decode(o),i=lt.decode(o),a=ft.decode(o),s=e.uint.decode(o),p=e.uint.decode(o),u=e.fixed32.decode(o),l=mt.decode(o),f=yt.decode(o),m=e.uint.decode(o);return{roomKey:n,discoveryKey:c,encryptionKey:r,digest:t,stats:i,timestamps:a,fork:s,length:p,seed:u,capabilities:l,status:f,selfDevice:1&m?xt.decode(o):null,selfMember:2&m?bt.decode(o):null,config:4&m?vt.decode(o):null,identity:8&m?gt.decode(o):null,lastMessage:16&m?ht.decode(o):null,dm:32&m?kt.decode(o):null,readLengths:64&m?Kt.decode(o):null,lastMember:128&m?wt.decode(o):null,version:256&m?e.uint.decode(o):0,preferences:d>=3&&512&m?Pt.decode(o):null,activeCall:d>=4&&1024&m?Tu.decode(o):null,lastMessageLabels:d>=8&&2048&m?Au.decode(o):null,settings:d>=9&&4096&m?Mu.decode(o):null}}},Tt=vc,At={preencode(d,o){e.fixed32.preencode(d,o.roomKey),Tt.preencode(d,o.status)},encode(d,o){e.fixed32.encode(d,o.roomKey),Tt.encode(d,o.status)},decode:d=>({roomKey:e.fixed32.decode(d),status:Tt.decode(d)})},Mt={preencode(d,o){e.fixed32.preencode(d,o.roomKey),d.end++,o.repairs&&e.uint.preencode(d,o.repairs)},encode(d,o){const n=o.repairs?1:0;e.fixed32.encode(d,o.roomKey),e.uint.encode(d,n),o.repairs&&e.uint.encode(d,o.repairs)},decode:d=>({roomKey:e.fixed32.decode(d),repairs:1&e.uint.decode(d)?e.uint.decode(d):0})},qt={preencode(d,o){e.fixed32.preencode(d,o.mailbox),e.fixed32.preencode(d,o.key),d.end++,o.roomKey&&e.fixed32.preencode(d,o.roomKey),o.keyPair&&r.preencode(d,o.keyPair),o.responseKeyPair&&r.preencode(d,o.responseKeyPair)},encode(d,o){const n=(o.roomKey?1:0)|(o.keyPair?2:0)|(o.responseKeyPair?4:0);e.fixed32.encode(d,o.mailbox),e.fixed32.encode(d,o.key),e.uint.encode(d,n),o.roomKey&&e.fixed32.encode(d,o.roomKey),o.keyPair&&r.encode(d,o.keyPair),o.responseKeyPair&&r.encode(d,o.responseKeyPair)},decode(d){const o=e.fixed32.decode(d),n=e.fixed32.decode(d),c=e.uint.decode(d);return{mailbox:o,key:n,roomKey:1&c?e.fixed32.decode(d):null,keyPair:2&c?r.decode(d):null,responseKeyPair:4&c?r.decode(d):null}}},It={preencode(d,o){e.fixed32.preencode(d,o.key),e.fixed32.preencode(d,o.responsePublicKey)},encode(d,o){e.fixed32.encode(d,o.key),e.fixed32.encode(d,o.responsePublicKey)},decode:d=>({key:e.fixed32.decode(d),responsePublicKey:e.fixed32.decode(d)})},St=fe,Ct={preencode(d,o){e.fixed32.preencode(d,o.key),St.preencode(d,o.profile)},encode(d,o){e.fixed32.encode(d,o.key),St.encode(d,o.profile)},decode:d=>({key:e.fixed32.decode(d),profile:St.decode(d)})},Dt=xt,Lt={preencode(d,o){e.fixed32.preencode(d,o.roomKey),Dt.preencode(d,o.device)},encode(d,o){e.fixed32.encode(d,o.roomKey),Dt.encode(d,o.device)},decode:d=>({roomKey:e.fixed32.decode(d),device:Dt.decode(d)})},Ft=h,jt={preencode(o,n){Ft.preencode(o,n.file),e.fixed32.preencode(o,n.roomKey),o.end++,n.encryptionKey&&e.buffer.preencode(o,n.encryptionKey),d>=4&&n.lastAccessed&&e.uint.preencode(o,n.lastAccessed),d>=4&&n.version&&e.uint.preencode(o,n.version)},encode(o,n){const c=(n.encryptionKey?1:0)|(n.cleared?2:0)|(n.own?4:0)|(d>=4&&n.lastAccessed?8:0)|(d>=4&&n.version?16:0);Ft.encode(o,n.file),e.fixed32.encode(o,n.roomKey),e.uint.encode(o,c),n.encryptionKey&&e.buffer.encode(o,n.encryptionKey),d>=4&&n.lastAccessed&&e.uint.encode(o,n.lastAccessed),d>=4&&n.version&&e.uint.encode(o,n.version)},decode(o){const n=Ft.decode(o),c=e.fixed32.decode(o),r=e.uint.decode(o);return{file:n,roomKey:c,encryptionKey:1&r?e.buffer.decode(o):null,cleared:!!(2&r),own:!!(4&r),lastAccessed:d>=4&&8&r?e.uint.decode(o):0,version:d>=4&&16&r?e.uint.decode(o):0}}},Et={preencode(d,o){d.end++,o.key&&e.string.preencode(d,o.key),o.description&&e.string.preencode(d,o.description)},encode(d,o){const n=(o.key?1:0)|(o.value?2:0)|(o.description?4:0);e.uint.encode(d,n),o.key&&e.string.encode(d,o.key),o.description&&e.string.encode(d,o.description)},decode(d){const o=e.uint.decode(d);return{key:1&o?e.string.decode(d):null,value:!!(2&o),description:4&o?e.string.decode(d):null}}},Bt=e.array(e.frame(Et)),zt={preencode(e,d){e.end++,d.flags&&Bt.preencode(e,d.flags)},encode(d,o){const n=o.flags?1:0;e.uint.encode(d,n),o.flags&&Bt.encode(d,o.flags)},decode:d=>({flags:1&e.uint.decode(d)?Bt.decode(d):null})},Nt=ed,Ot={preencode(d,o){d.end++,o.nodes&&Nt.preencode(d,o.nodes),o.concurrency&&e.uint.preencode(d,o.concurrency),o.maxWindow&&e.uint.preencode(d,o.maxWindow),o.randomPunchInterval&&e.uint.preencode(d,o.randomPunchInterval),o.connectionKeepAlive&&e.uint.preencode(d,o.connectionKeepAlive)},encode(d,o){const n=(o.nodes?1:0)|(o.concurrency?2:0)|(o.maxWindow?4:0)|(o.randomPunchInterval?8:0)|(o.connectionKeepAlive?16:0);e.uint.encode(d,n),o.nodes&&Nt.encode(d,o.nodes),o.concurrency&&e.uint.encode(d,o.concurrency),o.maxWindow&&e.uint.encode(d,o.maxWindow),o.randomPunchInterval&&e.uint.encode(d,o.randomPunchInterval),o.connectionKeepAlive&&e.uint.encode(d,o.connectionKeepAlive)},decode(d){const o=e.uint.decode(d);return{nodes:1&o?Nt.decode(d):null,concurrency:2&o?e.uint.decode(d):0,maxWindow:4&o?e.uint.decode(d):0,randomPunchInterval:8&o?e.uint.decode(d):0,connectionKeepAlive:16&o?e.uint.decode(d):0}}},Ut={preencode(d,o){e.fixed32.preencode(d,o.roomKey),e.uint.preencode(d,o.count)},encode(d,o){e.fixed32.encode(d,o.roomKey),e.uint.encode(d,o.count)},decode:d=>({roomKey:e.fixed32.decode(d),count:e.uint.decode(d)})},Vt={preencode(d,o){d.end++,o.roomKey&&e.fixed32.preencode(d,o.roomKey),o.coreKey&&e.fixed32.preencode(d,o.coreKey)},encode(d,o){const n=(o.roomKey?1:0)|(o.coreKey?2:0);e.uint.encode(d,n),o.roomKey&&e.fixed32.encode(d,o.roomKey),o.coreKey&&e.fixed32.encode(d,o.coreKey)},decode(d){const o=e.uint.decode(d);return{roomKey:1&o?e.fixed32.decode(d):null,coreKey:2&o?e.fixed32.decode(d):null}}},Jt=e.frame(Vt),Ht={preencode(d,o){e.string.preencode(d,o.code),e.string.preencode(d,o.message),e.string.preencode(d,o.stack),e.uint.preencode(d,o.timestamp),d.end++,o.details&&Jt.preencode(d,o.details)},encode(d,o){const n=o.details?1:0;e.string.encode(d,o.code),e.string.encode(d,o.message),e.string.encode(d,o.stack),e.uint.encode(d,o.timestamp),e.uint.encode(d,n),o.details&&Jt.encode(d,o.details)},decode:d=>({code:e.string.decode(d),message:e.string.decode(d),stack:e.string.decode(d),timestamp:e.uint.decode(d),details:1&e.uint.decode(d)?Jt.decode(d):null})},Wt={RESUME:1,WAKEUP:2,PRESUSPEND:3,SUSPEND:4},Gt={preencode(e,d){e.end++},encode(d,o){if(o>4)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},Qt={preencode(d,o){e.fixed32.preencode(d,o.roomKey),e.uint.preencode(d,o.total)},encode(d,o){e.fixed32.encode(d,o.roomKey),e.uint.encode(d,o.total)},decode:d=>({roomKey:e.fixed32.decode(d),total:e.uint.decode(d)})},Xt=i,Yt={preencode(d,o){e.uint.preencode(d,o.duration)},encode(d,o){e.uint.encode(d,o.duration)},decode:d=>({duration:e.uint.decode(d)})},Zt=F,$t=F,_t=e.frame(Xt),ei={preencode(e,d){_t.preencode(e,d.header)},encode(e,d){_t.encode(e,d.header)},decode:e=>({header:_t.decode(e)})},di=e.frame(Yt),oi={preencode(e,d){di.preencode(e,d.header)},encode(e,d){di.encode(e,d.header)},decode:e=>({header:di.decode(e)})},ni=_t,ci={preencode(e,d){ni.preencode(e,d.header)},encode(e,d){ni.encode(e,d.header)},decode:e=>({header:ni.decode(e)})},ri=F,ti=_t,ii=an,ai=H,si={preencode(e,d){ti.preencode(e,d.header),e.end++,d.config&&ii.preencode(e,d.config),d.settings&&ai.preencode(e,d.settings)},encode(d,o){const n=(o.config?1:0)|(o.settings?2:0);ti.encode(d,o.header),e.uint.encode(d,n),o.config&&ii.encode(d,o.config),o.settings&&ai.encode(d,o.settings)},decode(d){const o=ti.decode(d),n=e.uint.decode(d);return{header:o,config:1&n?ii.decode(d):null,settings:2&n?ai.decode(d):null}}},pi=di,ui={preencode(d,o){pi.preencode(d,o.header),d.end++,o.roomKey&&e.fixed32.preencode(d,o.roomKey)},encode(d,o){const n=o.roomKey?1:0;pi.encode(d,o.header),e.uint.encode(d,n),o.roomKey&&e.fixed32.encode(d,o.roomKey)},decode:d=>({header:pi.decode(d),roomKey:1&e.uint.decode(d)?e.fixed32.decode(d):null})},li=_t,fi={preencode(d,o){li.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey)},encode(d,o){li.encode(d,o.header),e.fixed32.encode(d,o.roomKey)},decode:d=>({header:li.decode(d),roomKey:e.fixed32.decode(d)})},mi=_t,yi={preencode(d,o){mi.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey)},encode(d,o){mi.encode(d,o.header),e.fixed32.encode(d,o.roomKey)},decode:d=>({header:mi.decode(d),roomKey:e.fixed32.decode(d)})},xi=_t,bi={preencode(d,o){xi.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey)},encode(d,o){xi.encode(d,o.header),e.fixed32.encode(d,o.roomKey)},decode:d=>({header:xi.decode(d),roomKey:e.fixed32.decode(d)})},vi=di,gi={preencode(e,d){vi.preencode(e,d.header)},encode(e,d){vi.encode(e,d.header)},decode:e=>({header:vi.decode(e)})},hi=_t,ki=an,Ki={preencode(d,o){hi.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey),e.uint.preencode(d,o.key),ki.preencode(d,o.config)},encode(d,o){hi.encode(d,o.header),e.fixed32.encode(d,o.roomKey),e.uint.encode(d,o.key),ki.encode(d,o.config)},decode:d=>({header:hi.decode(d),roomKey:e.fixed32.decode(d),key:e.uint.decode(d),config:ki.decode(d)})},wi=_t,Pi=H,Ri={preencode(d,o){wi.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey),e.uint.preencode(d,o.key),Pi.preencode(d,o.settings)},encode(d,o){wi.encode(d,o.header),e.fixed32.encode(d,o.roomKey),e.uint.encode(d,o.key),Pi.encode(d,o.settings)},decode:d=>({header:wi.decode(d),roomKey:e.fixed32.decode(d),key:e.uint.decode(d),settings:Pi.decode(d)})},Ti=_t,Ai=vc,Mi={preencode(d,o){Ti.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey),e.uint.preencode(d,o.key),Ai.preencode(d,o.status)},encode(d,o){Ti.encode(d,o.header),e.fixed32.encode(d,o.roomKey),e.uint.encode(d,o.key),Ai.encode(d,o.status)},decode:d=>({header:Ti.decode(d),roomKey:e.fixed32.decode(d),key:e.uint.decode(d),status:Ai.decode(d)})},qi=_t,Ii=zo,Si={preencode(d,o){qi.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey),Ii.preencode(d,o.message)},encode(d,o){qi.encode(d,o.header),e.fixed32.encode(d,o.roomKey),Ii.encode(d,o.message)},decode:d=>({header:qi.decode(d),roomKey:e.fixed32.decode(d),message:Ii.decode(d)})},Ci=di,Di={preencode(e,d){Ci.preencode(e,d.header)},encode(e,d){Ci.encode(e,d.header)},decode:e=>({header:Ci.decode(e)})},Li=_t,Fi=zo,ji={preencode(d,o){Li.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey),n.preencode(d,o.id),Fi.preencode(d,o.message)},encode(d,o){Li.encode(d,o.header),e.fixed32.encode(d,o.roomKey),n.encode(d,o.id),Fi.encode(d,o.message)},decode:d=>({header:Li.decode(d),roomKey:e.fixed32.decode(d),id:n.decode(d),message:Fi.decode(d)})},Ei=di,Bi={preencode(e,d){Ei.preencode(e,d.header)},encode(e,d){Ei.encode(e,d.header)},decode:e=>({header:Ei.decode(e)})},zi=_t,Ni={preencode(d,o){zi.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey),n.preencode(d,o.id)},encode(d,o){zi.encode(d,o.header),e.fixed32.encode(d,o.roomKey),n.encode(d,o.id)},decode:d=>({header:zi.decode(d),roomKey:e.fixed32.decode(d),id:n.decode(d)})},Oi=di,Ui={preencode(e,d){Oi.preencode(e,d.header)},encode(e,d){Oi.encode(e,d.header)},decode:e=>({header:Oi.decode(e)})},Vi=_t,Ji={preencode(d,o){Vi.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey),n.preencode(d,o.id),e.string.preencode(d,o.reaction)},encode(d,o){Vi.encode(d,o.header),e.fixed32.encode(d,o.roomKey),n.encode(d,o.id),e.string.encode(d,o.reaction)},decode:d=>({header:Vi.decode(d),roomKey:e.fixed32.decode(d),id:n.decode(d),reaction:e.string.decode(d)})},Hi=di,Wi={preencode(e,d){Hi.preencode(e,d.header)},encode(e,d){Hi.encode(e,d.header)},decode:e=>({header:Hi.decode(e)})},Gi=_t,Qi={preencode(d,o){Gi.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey),n.preencode(d,o.id),e.string.preencode(d,o.reaction)},encode(d,o){Gi.encode(d,o.header),e.fixed32.encode(d,o.roomKey),n.encode(d,o.id),e.string.encode(d,o.reaction)},decode:d=>({header:Gi.decode(d),roomKey:e.fixed32.decode(d),id:n.decode(d),reaction:e.string.decode(d)})},Xi=di,Yi={preencode(e,d){Xi.preencode(e,d.header)},encode(e,d){Xi.encode(e,d.header)},decode:e=>({header:Xi.decode(e)})},Zi={preencode(d,o){e.uint.preencode(d,o.clock),e.uint.preencode(d,o.start),e.uint.preencode(d,o.end)},encode(d,o){e.uint.encode(d,o.clock),e.uint.encode(d,o.start),e.uint.encode(d,o.end)},decode:d=>({clock:e.uint.decode(d),start:e.uint.decode(d),end:e.uint.decode(d)})},$i=F,_i=$,ea={preencode(d,o){e.uint.preencode(d,o.clock),_i.preencode(d,o.keys)},encode(d,o){e.uint.encode(d,o.clock),_i.encode(d,o.keys)},decode:d=>({clock:e.uint.decode(d),keys:_i.decode(d)})},da={preencode(d,o){e.uint.preencode(d,o.clock),e.fixed32.preencode(d,o.roomKey),d.end++,o.start&&e.uint.preencode(d,o.start),o.size&&e.uint.preencode(d,o.size)},encode(d,o){const n=(o.start?1:0)|(o.size?2:0)|(o.isBottom?4:0);e.uint.encode(d,o.clock),e.fixed32.encode(d,o.roomKey),e.uint.encode(d,n),o.start&&e.uint.encode(d,o.start),o.size&&e.uint.encode(d,o.size)},decode(d){const o=e.uint.decode(d),n=e.fixed32.decode(d),c=e.uint.decode(d);return{clock:o,roomKey:n,start:1&c?e.uint.decode(d):0,size:2&c?e.uint.decode(d):0,isBottom:!!(4&c)}}},oa=F,na={preencode(d,o){e.uint.preencode(d,o.clock),e.fixed32.preencode(d,o.roomKey),d.end++,o.offset&&e.fixed32.preencode(d,o.offset),o.count&&e.uint.preencode(d,o.count)},encode(d,o){const n=(o.offset?1:0)|(o.count?2:0);e.uint.encode(d,o.clock),e.fixed32.encode(d,o.roomKey),e.uint.encode(d,n),o.offset&&e.fixed32.encode(d,o.offset),o.count&&e.uint.encode(d,o.count)},decode(d){const o=e.uint.decode(d),n=e.fixed32.decode(d),c=e.uint.decode(d);return{clock:o,roomKey:n,offset:1&c?e.fixed32.decode(d):null,count:2&c?e.uint.decode(d):0}}},ca=F,ra={preencode(d,o){e.uint.preencode(d,o.timestamp),e.fixed32.preencode(d,o.id)},encode(d,o){e.uint.encode(d,o.timestamp),e.fixed32.encode(d,o.id)},decode:d=>({timestamp:e.uint.decode(d),id:e.fixed32.decode(d)})},ta={Changed:1,Removed:2},ia={preencode(e,d){e.end++},encode(d,o){if(o>2)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},aa=$,sa={preencode(d,o){aa.preencode(d,o.keys),e.uint.preencode(d,o.start),e.uint.preencode(d,o.end),e.uint.preencode(d,o.total)},encode(d,o){aa.encode(d,o.keys),e.uint.encode(d,o.start),e.uint.encode(d,o.end),e.uint.encode(d,o.total)},decode:d=>({keys:aa.decode(d),start:e.uint.decode(d),end:e.uint.decode(d),total:e.uint.decode(d)})},pa={preencode(e,d){ia.preencode(e,d.type),ra.preencode(e,d.room)},encode(e,d){ia.encode(e,d.type),ra.encode(e,d.room)},decode:e=>({type:ia.decode(e),room:ra.decode(e)})},ua=yt,la=bd,fa={preencode(e,d){ua.preencode(e,d.device),e.end++,d.member&&la.preencode(e,d.member)},encode(d,o){const n=o.member?1:0;ua.encode(d,o.device),e.uint.encode(d,n),o.member&&la.encode(d,o.member)},decode:d=>({device:ua.decode(d),member:1&e.uint.decode(d)?la.decode(d):null})},ma=e.frame(fa),ya=yn,xa=an,ba={preencode(d,o){e.fixed32.preencode(d,o.id),ma.preencode(d,o.role),ya.preencode(d,o.digest),xa.preencode(d,o.config),d.end++,o.messageId&&n.preencode(d,o.messageId)},encode(d,o){const c=o.messageId?1:0;e.fixed32.encode(d,o.id),ma.encode(d,o.role),ya.encode(d,o.digest),xa.encode(d,o.config),e.uint.encode(d,c),o.messageId&&n.encode(d,o.messageId)},decode:d=>({id:e.fixed32.decode(d),role:ma.decode(d),digest:ya.decode(d),config:xa.decode(d),messageId:1&e.uint.decode(d)?n.decode(d):null})},va=yt,ga={preencode(d,o){e.fixed32.preencode(d,o.id),va.preencode(d,o.status)},encode(d,o){e.fixed32.encode(d,o.id),va.encode(d,o.status)},decode:d=>({id:e.fixed32.decode(d),status:va.decode(d)})},ha=yn,ka={preencode(d,o){e.fixed32.preencode(d,o.id),ha.preencode(d,o.digest)},encode(d,o){e.fixed32.encode(d,o.id),ha.encode(d,o.digest)},decode:d=>({id:e.fixed32.decode(d),digest:ha.decode(d)})},Ka=an,wa={preencode(d,o){e.fixed32.preencode(d,o.id),Ka.preencode(d,o.config)},encode(d,o){e.fixed32.encode(d,o.id),Ka.encode(d,o.config)},decode:d=>({id:e.fixed32.decode(d),config:Ka.decode(d)})},Pa=ma,Ra={preencode(d,o){e.fixed32.preencode(d,o.id),d.end++,o.role&&Pa.preencode(d,o.role)},encode(d,o){const n=o.role?1:0;e.fixed32.encode(d,o.id),e.uint.encode(d,n),o.role&&Pa.encode(d,o.role)},decode:d=>({id:e.fixed32.decode(d),role:1&e.uint.decode(d)?Pa.decode(d):null})},Ta={preencode(d,o){e.fixed32.preencode(d,o.id),n.preencode(d,o.lastMessage)},encode(d,o){e.fixed32.encode(d,o.id),n.encode(d,o.lastMessage)},decode:d=>({id:e.fixed32.decode(d),lastMessage:n.decode(d)})},Aa=fe,Ma={preencode(d,o){e.fixed32.preencode(d,o.key),Aa.preencode(d,o.profile)},encode(d,o){e.fixed32.encode(d,o.key),Aa.encode(d,o.profile)},decode:d=>({key:e.fixed32.decode(d),profile:Aa.decode(d)})},qa=ae,Ia={preencode(d,o){e.fixed32.preencode(d,o.key),qa.preencode(d,o.status),qu.preencode(d,o.profile)},encode(d,o){e.fixed32.encode(d,o.key),qa.encode(d,o.status),qu.encode(d,o.profile)},decode:d=>({key:e.fixed32.decode(d),status:qa.decode(d),profile:qu.decode(d)})},Sa={preencode(d,o){e.fixed32.preencode(d,o.roomKey),e.fixed32.preencode(d,o.key)},encode(d,o){e.fixed32.encode(d,o.roomKey),e.fixed32.encode(d,o.key)},decode:d=>({roomKey:e.fixed32.decode(d),key:e.fixed32.decode(d)})},Ca=Sa,Da=e.array(n),La={preencode(d,o){e.fixed32.preencode(d,o.roomKey),e.uint.preencode(d,o.start),e.uint.preencode(d,o.size),e.uint.preencode(d,o.total),Da.preencode(d,o.ids),d.end++},encode(d,o){const n=o.isBottom?1:0;e.fixed32.encode(d,o.roomKey),e.uint.encode(d,o.start),e.uint.encode(d,o.size),e.uint.encode(d,o.total),Da.encode(d,o.ids),e.uint.encode(d,n)},decode:d=>({roomKey:e.fixed32.decode(d),start:e.uint.decode(d),size:e.uint.decode(d),total:e.uint.decode(d),ids:Da.decode(d),isBottom:!!(1&e.uint.decode(d))})},Fa={preencode(d,o){e.uint.preencode(d,o.sent),d.end++,o.edited&&e.uint.preencode(d,o.edited)},encode(d,o){const n=o.edited?1:0;e.uint.encode(d,o.sent),e.uint.encode(d,n),o.edited&&e.uint.encode(d,o.edited)},decode:d=>({sent:e.uint.decode(d),edited:1&e.uint.decode(d)?e.uint.decode(d):0})},ja=e.frame(Fa),Ea=Io,Ba=So,za=Co,Na={preencode(d,o){n.preencode(d,o.id),e.uint.preencode(d,o.clock),ja.preencode(d,o.timestamps),Ea.preencode(d,o.status),d.end++,o.message&&Ba.preencode(d,o.message),o.event&&za.preencode(d,o.event)},encode(d,o){const c=(o.message?1:0)|(o.event?2:0);n.encode(d,o.id),e.uint.encode(d,o.clock),ja.encode(d,o.timestamps),Ea.encode(d,o.status),e.uint.encode(d,c),o.message&&Ba.encode(d,o.message),o.event&&za.encode(d,o.event)},decode(d){const o=n.decode(d),c=e.uint.decode(d),r=ja.decode(d),t=Ea.decode(d),i=e.uint.decode(d);return{id:o,clock:c,timestamps:r,status:t,message:1&i?Ba.decode(d):null,event:2&i?za.decode(d):null}}},Oa=e.frame(Na),Ua=bd,Va={preencode(d,o){Oa.preencode(d,o.chat),e.fixed32.preencode(d,o.memberKey),Ua.preencode(d,o.role)},encode(d,o){Oa.encode(d,o.chat),e.fixed32.encode(d,o.memberKey),Ua.encode(d,o.role)},decode:d=>({chat:Oa.decode(d),memberKey:e.fixed32.decode(d),role:Ua.decode(d)})},Ja=Oa,Ha={preencode(e,d){Ja.preencode(e,d.chat)},encode(e,d){Ja.encode(e,d.chat)},decode:e=>({chat:Ja.decode(e)})},Wa=Da,Ga={preencode(d,o){Wa.preencode(d,o.ids),e.fixed32.preencode(d,o.memberKey)},encode(d,o){Wa.encode(d,o.ids),e.fixed32.encode(d,o.memberKey)},decode:d=>({ids:Wa.decode(d),memberKey:e.fixed32.decode(d)})},Qa=Da,Xa=bd,Ya={preencode(e,d){Qa.preencode(e,d.ids),Xa.preencode(e,d.role)},encode(e,d){Qa.encode(e,d.ids),Xa.encode(e,d.role)},decode:e=>({ids:Qa.decode(e),role:Xa.decode(e)})},Za=e.frame(dn),$a={preencode(e,d){n.preencode(e,d.id),Za.preencode(e,d.reactions)},encode(e,d){n.encode(e,d.id),Za.encode(e,d.reactions)},decode:e=>({id:n.decode(e),reactions:Za.decode(e)})},_a=Za,es={preencode(e,d){n.preencode(e,d.id),_a.preencode(e,d.digest)},encode(e,d){n.encode(e,d.id),_a.encode(e,d.digest)},decode:e=>({id:n.decode(e),digest:_a.decode(e)})},ds=F,os=F,ns=e.array(e.frame(ic)),cs={preencode(e,d){ns.preencode(e,d.invitations)},encode(e,d){ns.encode(e,d.invitations)},decode:e=>({invitations:ns.decode(e)})},rs=e.frame(ud),ts={preencode(d,o){e.fixed32.preencode(d,o.roomKey),rs.preencode(d,o.request)},encode(d,o){e.fixed32.encode(d,o.roomKey),rs.encode(d,o.request)},decode:d=>({roomKey:e.fixed32.decode(d),request:rs.decode(d)})},is=e.array(e.frame(ts)),as={preencode(e,d){is.preencode(e,d.requests)},encode(e,d){is.encode(e,d.requests)},decode:e=>({requests:is.decode(e)})},ss=ns,ps=e.array(e.frame(ud)),us={preencode(e,d){ss.preencode(e,d.pendingInvitations),ps.preencode(e,d.identityJoinRequests)},encode(e,d){ss.encode(e,d.pendingInvitations),ps.encode(e,d.identityJoinRequests)},decode:e=>({pendingInvitations:ss.decode(e),identityJoinRequests:ps.decode(e)})},ls=_t,fs={preencode(d,o){ls.preencode(d,o.header),e.string.preencode(d,o.invitation),d.end++},encode(d,o){const n=o.isIdentity?1:0;ls.encode(d,o.header),e.string.encode(d,o.invitation),e.uint.encode(d,n)},decode:d=>({header:ls.decode(d),invitation:e.string.decode(d),isIdentity:!!(1&e.uint.decode(d))})},ms=di,ys={preencode(e,d){ms.preencode(e,d.header)},encode(e,d){ms.encode(e,d.header)},decode:e=>({header:ms.decode(e)})},xs={preencode(e,d){e.end++},encode(d,o){const n=(o.canModerate?1:0)|(o.canAdmin?2:0)|(o.requiresConfirmation?4:0)|(o.isReadOnly?8:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{canModerate:!!(1&o),canAdmin:!!(2&o),requiresConfirmation:!!(4&o),isReadOnly:!!(8&o)}}},bs=_t,vs=e.frame(xs),gs={preencode(d,o){bs.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey),d.end++,o.permissions&&vs.preencode(d,o.permissions),o.expiration&&e.uint.preencode(d,o.expiration)},encode(d,o){const n=(o.permissions?1:0)|(o.expiration?2:0);bs.encode(d,o.header),e.fixed32.encode(d,o.roomKey),e.uint.encode(d,n),o.permissions&&vs.encode(d,o.permissions),o.expiration&&e.uint.encode(d,o.expiration)},decode(d){const o=bs.decode(d),n=e.fixed32.decode(d),c=e.uint.decode(d);return{header:o,roomKey:n,permissions:1&c?vs.decode(d):null,expiration:2&c?e.uint.decode(d):0}}},hs=di,ks={preencode(d,o){hs.preencode(d,o.header),e.string.preencode(d,o.invitation)},encode(d,o){hs.encode(d,o.header),e.string.encode(d,o.invitation)},decode:d=>({header:hs.decode(d),invitation:e.string.decode(d)})},Ks=_t,ws={preencode(e,d){Ks.preencode(e,d.header)},encode(e,d){Ks.encode(e,d.header)},decode:e=>({header:Ks.decode(e)})},Ps=di,Rs={preencode(d,o){Ps.preencode(d,o.header),e.string.preencode(d,o.invitation)},encode(d,o){Ps.encode(d,o.header),e.string.encode(d,o.invitation)},decode:d=>({header:Ps.decode(d),invitation:e.string.decode(d)})},Ts=_t,As=rs,Ms={preencode(d,o){Ts.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey),As.preencode(d,o.request)},encode(d,o){Ts.encode(d,o.header),e.fixed32.encode(d,o.roomKey),As.encode(d,o.request)},decode:d=>({header:Ts.decode(d),roomKey:e.fixed32.decode(d),request:As.decode(d)})},qs=di,Is={preencode(e,d){qs.preencode(e,d.header)},encode(e,d){qs.encode(e,d.header)},decode:e=>({header:qs.decode(e)})},Ss=_t,Cs=rs,Ds={preencode(d,o){Ss.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey),Cs.preencode(d,o.request)},encode(d,o){Ss.encode(d,o.header),e.fixed32.encode(d,o.roomKey),Cs.encode(d,o.request)},decode:d=>({header:Ss.decode(d),roomKey:e.fixed32.decode(d),request:Cs.decode(d)})},Ls=di,Fs={preencode(e,d){Ls.preencode(e,d.header)},encode(e,d){Ls.encode(e,d.header)},decode:e=>({header:Ls.decode(e)})},js=_t,Es={preencode(d,o){js.preencode(d,o.header),e.fixed32.preencode(d,o.id)},encode(d,o){js.encode(d,o.header),e.fixed32.encode(d,o.id)},decode:d=>({header:js.decode(d),id:e.fixed32.decode(d)})},Bs=di,zs={preencode(e,d){Bs.preencode(e,d.header)},encode(e,d){Bs.encode(e,d.header)},decode:e=>({header:Bs.decode(e)})},Ns=_t,Os={preencode(d,o){Ns.preencode(d,o.header),e.string.preencode(d,o.displayName),d.end++,o.avatar&&e.buffer.preencode(d,o.avatar)},encode(d,o){const n=o.avatar?1:0;Ns.encode(d,o.header),e.string.encode(d,o.displayName),e.uint.encode(d,n),o.avatar&&e.buffer.encode(d,o.avatar)},decode:d=>({header:Ns.decode(d),displayName:e.string.decode(d),avatar:1&e.uint.decode(d)?e.buffer.decode(d):null})},Us=F,Vs=F,Js={preencode(e,d){e.end++},encode(d,o){const n=(o.isConfirmed?1:0)|(o.isLoggedOut?2:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isConfirmed:!!(1&o),isLoggedOut:!!(2&o)}}},Hs=e.frame(Js),Ws=$,Gs={preencode(d,o){e.fixed32.preencode(d,o.memberKey),Hs.preencode(d,o.status),Ws.preencode(d,o.deviceKeys)},encode(d,o){e.fixed32.encode(d,o.memberKey),Hs.encode(d,o.status),Ws.encode(d,o.deviceKeys)},decode:d=>({memberKey:e.fixed32.decode(d),status:Hs.decode(d),deviceKeys:Ws.decode(d)})},Qs={preencode(d,o){e.fixed32.preencode(d,o.memberKey)},encode(d,o){e.fixed32.encode(d,o.memberKey)},decode:d=>({memberKey:e.fixed32.decode(d)})},Xs={preencode(d,o){e.fixed32.preencode(d,o.deviceKey)},encode(d,o){e.fixed32.encode(d,o.deviceKey)},decode:d=>({deviceKey:e.fixed32.decode(d)})},Ys=_t,Zs={preencode(d,o){Ys.preencode(d,o.header),e.string.preencode(d,o.password)},encode(d,o){Ys.encode(d,o.header),e.string.encode(d,o.password)},decode:d=>({header:Ys.decode(d),password:e.string.decode(d)})},$s=di,_s={preencode(d,o){$s.preencode(d,o.header),e.string.preencode(d,o.inspector)},encode(d,o){$s.encode(d,o.header),e.string.encode(d,o.inspector)},decode:d=>({header:$s.decode(d),inspector:e.string.decode(d)})},ep=di,dp={preencode(e,d){ep.preencode(e,d.header)},encode(e,d){ep.encode(e,d.header)},decode:e=>({header:ep.decode(e)})},op=di,np={preencode(e,d){op.preencode(e,d.header)},encode(e,d){op.encode(e,d.header)},decode:e=>({header:op.decode(e)})},cp={Flag:1},rp={preencode(e,d){e.end++},encode(d,o){if(o>1)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},tp={preencode(d,o){e.fixed32.preencode(d,o.key),e.fixed32.preencode(d,o.sender),e.uint.preencode(d,o.clock),rp.preencode(d,o.label)},encode(d,o){e.fixed32.encode(d,o.key),e.fixed32.encode(d,o.sender),e.uint.encode(d,o.clock),rp.encode(d,o.label)},decode:d=>({key:e.fixed32.decode(d),sender:e.fixed32.decode(d),clock:e.uint.decode(d),label:rp.decode(d)})},ip=de,ap={preencode(d,o){ip.preencode(d,o.header),e.fixed32.preencode(d,o.key),rp.preencode(d,o.label)},encode(d,o){ip.encode(d,o.header),e.fixed32.encode(d,o.key),rp.encode(d,o.label)},decode:d=>({header:ip.decode(d),key:e.fixed32.decode(d),label:rp.decode(d)})},sp={preencode(d,o){rp.preencode(d,o.label),e.uint.preencode(d,o.count)},encode(d,o){rp.encode(d,o.label),e.uint.encode(d,o.count)},decode:d=>({label:rp.decode(d),count:e.uint.decode(d)})},pp=e.array(e.frame(sp)),up={preencode(d,o){e.fixed32.preencode(d,o.key),e.uint.preencode(d,o.total),pp.preencode(d,o.labels),e.uint.preencode(d,o.editedAt),e.uint.preencode(d,o.flagsClock)},encode(d,o){e.fixed32.encode(d,o.key),e.uint.encode(d,o.total),pp.encode(d,o.labels),e.uint.encode(d,o.editedAt),e.uint.encode(d,o.flagsClock)},decode:d=>({key:e.fixed32.decode(d),total:e.uint.decode(d),labels:pp.decode(d),editedAt:e.uint.decode(d),flagsClock:e.uint.decode(d)})},lp=de,fp={preencode(d,o){lp.preencode(d,o.header),e.fixed32.preencode(d,o.deviceKey),e.fixed32.preencode(d,o.fromDeviceKey)},encode(d,o){lp.encode(d,o.header),e.fixed32.encode(d,o.deviceKey),e.fixed32.encode(d,o.fromDeviceKey)},decode:d=>({header:lp.decode(d),deviceKey:e.fixed32.decode(d),fromDeviceKey:e.fixed32.decode(d)})},mp={preencode(d,o){e.float64.preencode(d,o.latitude),e.float64.preencode(d,o.longitude)},encode(d,o){e.float64.encode(d,o.latitude),e.float64.encode(d,o.longitude)},decode:d=>({latitude:e.float64.decode(d),longitude:e.float64.decode(d)})},yp=de,xp=$,bp={preencode(o,n){yp.preencode(o,n.header),e.fixed32.preencode(o,n.callKey),e.buffer.preencode(o,n.encryptionKey),o.end++,d>=4&&n.streams&&xp.preencode(o,n.streams),d>=4&&n.discoveryKey&&e.fixed32.preencode(o,n.discoveryKey),d>=4&&n.version&&e.uint.preencode(o,n.version)},encode(o,n){const c=(d>=4&&n.streams?1:0)|(d>=4&&n.discoveryKey?2:0)|(d>=4&&n.version?4:0);yp.encode(o,n.header),e.fixed32.encode(o,n.callKey),e.buffer.encode(o,n.encryptionKey),e.uint.encode(o,c),d>=4&&n.streams&&xp.encode(o,n.streams),d>=4&&n.discoveryKey&&e.fixed32.encode(o,n.discoveryKey),d>=4&&n.version&&e.uint.encode(o,n.version)},decode(o){const n=yp.decode(o),c=e.fixed32.decode(o),r=e.buffer.decode(o),t=e.uint.decode(o);return{header:n,callKey:c,encryptionKey:r,streams:d>=4&&1&t?xp.decode(o):null,discoveryKey:d>=4&&2&t?e.fixed32.decode(o):null,version:d>=4&&4&t?e.uint.decode(o):0}}},vp=de,gp=$,hp={preencode(o,n){vp.preencode(o,n.header),e.fixed32.preencode(o,n.callKey),o.end++,d>=4&&n.streams&&gp.preencode(o,n.streams)},encode(o,n){const c=d>=4&&n.streams?1:0;vp.encode(o,n.header),e.fixed32.encode(o,n.callKey),e.uint.encode(o,c),d>=4&&n.streams&&gp.encode(o,n.streams)},decode(o){const n=vp.decode(o),c=e.fixed32.decode(o),r=e.uint.decode(o);return{header:n,callKey:c,streams:d>=4&&1&r?gp.decode(o):null}}},kp=de,Kp={preencode(d,o){kp.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){kp.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:kp.decode(d),callKey:e.fixed32.decode(d)})},wp=de,Pp={preencode(d,o){wp.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){wp.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:wp.decode(d),callKey:e.fixed32.decode(d)})},Rp=de,Tp={preencode(d,o){Rp.preencode(d,o.header),e.fixed32.preencode(d,o.callKey),e.fixed32.preencode(d,o.streamKey)},encode(d,o){Rp.encode(d,o.header),e.fixed32.encode(d,o.callKey),e.fixed32.encode(d,o.streamKey)},decode:d=>({header:Rp.decode(d),callKey:e.fixed32.decode(d),streamKey:e.fixed32.decode(d)})},Ap=de,Mp={preencode(d,o){Ap.preencode(d,o.header),e.fixed32.preencode(d,o.callKey),e.fixed32.preencode(d,o.streamKey)},encode(d,o){Ap.encode(d,o.header),e.fixed32.encode(d,o.callKey),e.fixed32.encode(d,o.streamKey)},decode:d=>({header:Ap.decode(d),callKey:e.fixed32.decode(d),streamKey:e.fixed32.decode(d)})},qp={preencode(o,n){e.fixed32.preencode(o,n.callKey),e.buffer.preencode(o,n.encryptionKey),e.uint.preencode(o,n.createdAt),o.end++,d>=4&&n.endedAt&&e.uint.preencode(o,n.endedAt),d>=4&&n.discoveryKey&&e.fixed32.preencode(o,n.discoveryKey),d>=4&&n.version&&e.uint.preencode(o,n.version)},encode(o,n){const c=(d>=4&&n.endedAt?1:0)|(d>=4&&n.discoveryKey?2:0)|(d>=4&&n.version?4:0);e.fixed32.encode(o,n.callKey),e.buffer.encode(o,n.encryptionKey),e.uint.encode(o,n.createdAt),e.uint.encode(o,c),d>=4&&n.endedAt&&e.uint.encode(o,n.endedAt),d>=4&&n.discoveryKey&&e.fixed32.encode(o,n.discoveryKey),d>=4&&n.version&&e.uint.encode(o,n.version)},decode(o){const n=e.fixed32.decode(o),c=e.buffer.decode(o),r=e.uint.decode(o),t=e.uint.decode(o);return{callKey:n,encryptionKey:c,createdAt:r,endedAt:d>=4&&1&t?e.uint.decode(o):0,discoveryKey:d>=4&&2&t?e.fixed32.decode(o):null,version:d>=4&&4&t?e.uint.decode(o):0}}},Ip={preencode(d,o){e.fixed32.preencode(d,o.callKey),e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.createdAt)},encode(d,o){e.fixed32.encode(d,o.callKey),e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.createdAt)},decode:d=>({callKey:e.fixed32.decode(d),memberKey:e.fixed32.decode(d),createdAt:e.uint.decode(d)})},Sp={preencode(o,n){e.fixed32.preencode(o,n.callKey),e.fixed32.preencode(o,n.deviceKey),e.fixed32.preencode(o,n.memberKey),e.uint.preencode(o,n.createdAt),o.end++,d>=4&&n.swarmKey&&e.fixed32.preencode(o,n.swarmKey),d>=8&&n.lastHeartbeatAt&&e.uint.preencode(o,n.lastHeartbeatAt)},encode(o,n){const c=(d>=4&&n.swarmKey?1:0)|(d>=8&&n.lastHeartbeatAt?2:0)|(d>=9&&n.isRecording?4:0);e.fixed32.encode(o,n.callKey),e.fixed32.encode(o,n.deviceKey),e.fixed32.encode(o,n.memberKey),e.uint.encode(o,n.createdAt),e.uint.encode(o,c),d>=4&&n.swarmKey&&e.fixed32.encode(o,n.swarmKey),d>=8&&n.lastHeartbeatAt&&e.uint.encode(o,n.lastHeartbeatAt)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),r=e.fixed32.decode(o),t=e.uint.decode(o),i=e.uint.decode(o);return{callKey:n,deviceKey:c,memberKey:r,createdAt:t,swarmKey:d>=4&&1&i?e.fixed32.decode(o):null,lastHeartbeatAt:d>=8&&2&i?e.uint.decode(o):0,isRecording:d>=9&&!!(4&i)}}},Cp={preencode(d,o){e.fixed32.preencode(d,o.callKey),e.fixed32.preencode(d,o.deviceKey),e.buffer.preencode(d,o.streamKey),e.uint.preencode(d,o.createdAt)},encode(d,o){e.fixed32.encode(d,o.callKey),e.fixed32.encode(d,o.deviceKey),e.buffer.encode(d,o.streamKey),e.uint.encode(d,o.createdAt)},decode:d=>({callKey:e.fixed32.decode(d),deviceKey:e.fixed32.decode(d),streamKey:e.buffer.decode(d),createdAt:e.uint.decode(d)})},Dp={preencode(o,n){e.fixed32.preencode(o,n.callKey),o.end++,d>=4&&n.selfDeviceKey&&e.fixed32.preencode(o,n.selfDeviceKey)},encode(o,n){const c=d>=4&&n.selfDeviceKey?1:0;e.fixed32.encode(o,n.callKey),e.uint.encode(o,c),d>=4&&n.selfDeviceKey&&e.fixed32.encode(o,n.selfDeviceKey)},decode(o){const n=e.fixed32.decode(o),c=e.uint.decode(o);return{callKey:n,selfDeviceKey:d>=4&&1&c?e.fixed32.decode(o):null}}},Lp={preencode(d,o){e.uint.preencode(d,o.lastCleared)},encode(d,o){e.uint.encode(d,o.lastCleared)},decode:d=>({lastCleared:e.uint.decode(d)})},Fp={Nightly:"Nightly",Internal:"Internal",Production:"Production"},jp={preencode(e,d){e.end++},encode(d,o){switch(o){case"Nightly":e.uint.encode(d,1);break;case"Internal":e.uint.encode(d,2);break;case"Production":e.uint.encode(d,3);break;default:throw new Error("Unknown enum")}},decode(d){switch(e.uint.decode(d)){case 1:return"Nightly";case 2:return"Internal";case 3:return"Production";default:return null}}},Ep=de,Bp={preencode(e,d){Ep.preencode(e,d.header)},encode(e,d){Ep.encode(e,d.header)},decode:e=>({header:Ep.decode(e)})},zp=de,Np={preencode(e,d){zp.preencode(e,d.header)},encode(e,d){zp.encode(e,d.header)},decode:e=>({header:zp.decode(e)})},Op={preencode(o,n){jp.preencode(o,n.buildType),o.end++,d>=6&&n.latestOfflineAbi&&e.uint.preencode(o,n.latestOfflineAbi)},encode(o,n){const c=d>=6&&n.latestOfflineAbi?1:0;jp.encode(o,n.buildType),e.uint.encode(o,c),d>=6&&n.latestOfflineAbi&&e.uint.encode(o,n.latestOfflineAbi)},decode(o){const n=jp.decode(o),c=o.start<o.end?e.uint.decode(o):0;return{buildType:n,latestOfflineAbi:d>=6&&1&c?e.uint.decode(o):0}}},Up=de,Vp={preencode(d,o){Up.preencode(d,o.header),e.fixed32.preencode(d,o.deviceKey),e.buffer.preencode(d,o.deviceProof),e.buffer.preencode(d,o.writerProof)},encode(d,o){Up.encode(d,o.header),e.fixed32.encode(d,o.deviceKey),e.buffer.encode(d,o.deviceProof),e.buffer.encode(d,o.writerProof)},decode:d=>({header:Up.decode(d),deviceKey:e.fixed32.decode(d),deviceProof:e.buffer.decode(d),writerProof:e.buffer.decode(d)})},Jp={preencode(o,n){o.end++,d>=7&&n.otaResyncPrivateProfileBump&&e.uint.preencode(o,n.otaResyncPrivateProfileBump)},encode(o,n){const c=d>=7&&n.otaResyncPrivateProfileBump?1:0;e.uint.encode(o,c),d>=7&&n.otaResyncPrivateProfileBump&&e.uint.encode(o,n.otaResyncPrivateProfileBump)},decode(o){const n=e.uint.decode(o);return{otaResyncPrivateProfileBump:d>=7&&1&n?e.uint.decode(o):0}}},Hp={preencode(d,o){e.fixed32.preencode(d,o.deviceKey),e.buffer.preencode(d,o.proof),e.uint.preencode(d,o.createdAt)},encode(d,o){e.fixed32.encode(d,o.deviceKey),e.buffer.encode(d,o.proof),e.uint.encode(d,o.createdAt)},decode:d=>({deviceKey:e.fixed32.decode(d),proof:e.buffer.decode(d),createdAt:e.uint.decode(d)})},Wp=de,Gp={preencode(d,o){Wp.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){Wp.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:Wp.decode(d),callKey:e.fixed32.decode(d)})},Qp=de,Xp={preencode(d,o){Qp.preencode(d,o.header),e.fixed32.preencode(d,o.callKey),e.fixed32.preencode(d,o.deviceKey)},encode(d,o){Qp.encode(d,o.header),e.fixed32.encode(d,o.callKey),e.fixed32.encode(d,o.deviceKey)},decode:d=>({header:Qp.decode(d),callKey:e.fixed32.decode(d),deviceKey:e.fixed32.decode(d)})},Yp=e.frame(Vn),Zp=e.array(e.frame(jn)),$p={preencode(e,d){Yp.preencode(e,d.digest),Zp.preencode(e,d.mine)},encode(e,d){Yp.encode(e,d.digest),Zp.encode(e,d.mine)},decode:e=>({digest:Yp.decode(e),mine:Zp.decode(e)})},_p=de,eu={preencode(d,o){_p.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){_p.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:_p.decode(d),callKey:e.fixed32.decode(d)})},du=de,ou={preencode(d,o){du.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){du.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:du.decode(d),callKey:e.fixed32.decode(d)})},nu={preencode(o,n){o.end++,d>=9&&n.profileSnoozeTime&&e.uint.preencode(o,n.profileSnoozeTime)},encode(o,n){const c=(d>=9&&n.disableReadReceipts?1:0)|(d>=9&&n.stripAttachmentMetadata?2:0)|(d>=9&&n.profileSnoozeTime?4:0);e.uint.encode(o,c),d>=9&&n.profileSnoozeTime&&e.uint.encode(o,n.profileSnoozeTime)},decode(o){const n=e.uint.decode(o);return{disableReadReceipts:d>=9&&!!(1&n),stripAttachmentMetadata:d>=9&&!!(2&n),profileSnoozeTime:d>=9&&4&n?e.uint.decode(o):0}}},cu={preencode(o,n){o.end++,d>=9&&n.maxPeers&&e.uint.preencode(o,n.maxPeers)},encode(o,n){const c=d>=9&&n.maxPeers?1:0;e.uint.encode(o,c),d>=9&&n.maxPeers&&e.uint.encode(o,n.maxPeers)},decode(o){const n=e.uint.decode(o);return{maxPeers:d>=9&&1&n?e.uint.decode(o):0}}},ru=de,tu={preencode(e,d){ru.preencode(e,d.header),n.preencode(e,d.oplog)},encode(e,d){ru.encode(e,d.header),n.encode(e,d.oplog)},decode:e=>({header:ru.decode(e),oplog:n.decode(e)})},iu=de,au={preencode(e,d){iu.preencode(e,d.header)},encode(e,d){iu.encode(e,d.header)},decode:e=>({header:iu.decode(e)})},su={preencode(d,o){e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.timestamp)},encode(d,o){e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.timestamp)},decode:d=>({memberKey:e.fixed32.decode(d),timestamp:e.uint.decode(d)})},pu=de,uu={preencode(o,n){pu.preencode(o,n.header),e.fixed32.preencode(o,n.memberKey),o.end++,d>=10&&n.alias&&e.string.preencode(o,n.alias)},encode(o,n){const c=d>=10&&n.alias?1:0;pu.encode(o,n.header),e.fixed32.encode(o,n.memberKey),e.uint.encode(o,c),d>=10&&n.alias&&e.string.encode(o,n.alias)},decode(o){const n=pu.decode(o),c=e.fixed32.decode(o),r=e.uint.decode(o);return{header:n,memberKey:c,alias:d>=10&&1&r?e.string.decode(o):null}}},lu=e.frame(w),fu=lu,mu=e.frame(le),yu=lu,xu=mu,bu=mu,vu=e.frame(wd),gu=e.frame(mp),hu=gu,ku=lu,Ku=lu,wu=e.frame(qc),Pu=wu,Ru=wu,Tu=e.frame(Dp),Au=e.frame($p),Mu=e.frame(nu),qu=mu;function Iu(e){switch(e){case"@keet/head":return o;case"@keet/oplog-id":return n;case"@keet/encryption-keypair":return c;case"@keet/signing-keypair":return r;case"@keet/room-keys":return t;case"@keet/operation-header":return i;case"@keet/blob-pointer":return a;case"@keet/file-dimensions":return s;case"@keet/file-metadata":return u;case"@keet/external-drive-pointer":return l;case"@keet/external-blob-pointer":return f;case"@keet/file-pointer":return x;case"@keet/file":return g;case"@keet/image-file":return w;case"@keet/file-status":return P;case"@keet/file-record":return A;case"@keet/device-status":return M;case"@keet/member-status":return q;case"@keet/member-moderation-status":return I;case"@keet/abi":return S;case"@keet/device-stats":return C;case"@keet/member-stats":return D;case"@keet/chat-stats":return L;case"@keet/file-stats":return F;case"@keet/stats":return N;case"@keet/room-type":return U;case"@keet/system-settings":return V;case"@keet/system-digest":return W;case"@keet/room-seed":return G;case"@keet/room-capabilities":return Q;case"@keet/room-supported-language":return Y;case"@keet/room-config":return _;case"@keet/blind-peer":return ee;case"@keet/add-blind-peer-operation":return ne;case"@keet/remove-blind-peer-operation":return re;case"@keet/identity-attestation":return te;case"@keet/device-invitation":return ie;case"@keet/device":return pe;case"@keet/member-profile":return ue;case"@keet/device-profile":return le;case"@keet/member-update":return me;case"@keet/device-update":return ye;case"@keet/member-contact-info":return be;case"@keet/signed-pairing-data":return ve;case"@keet/device-request-identity":return ge;case"@keet/device-response-identity":return he;case"@keet/device-identity":return ke;case"@keet/device-request-with-invitation":return Re;case"@keet/device-request-with-invitation-and-proof":return Ae;case"@keet/device-request-with-member-proof":return Ie;case"@keet/device-request":return De;case"@keet/device-response":return je;case"@keet/invitation-metadata":return Ee;case"@keet/invitation":return Ne;case"@keet/add-invitation-operation":return Ve;case"@keet/remove-invitation-operation":return He;case"@keet/sendable-room-invitation":return We;case"@keet/readonly-room-invitation":return Ge;case"@keet/sendable-identity-invitation":return Qe;case"@keet/sendable-contact-invitation":return Xe;case"@keet/sendable-invitation":return dd;case"@keet/add-device-operation":return nd;case"@keet/update-device-operation":return rd;case"@keet/remove-device-operation":return id;case"@keet/start-indexing-operation":return ad;case"@keet/stop-indexing-operation":return sd;case"@keet/join-request":return ud;case"@keet/accept-join-request-operation":return md;case"@keet/reject-join-request-operation":return xd;case"@keet/member":return gd;case"@keet/full-member":return Kd;case"@keet/member-proofs":return wd;case"@keet/update-member-operation":return Td;case"@keet/change-member-status-operation":return qd;case"@keet/change-member-role-operation":return Sd;case"@keet/remove-member-operation":return Dd;case"@keet/member-activity":return Ld;case"@keet/member-joined-event":return Fd;case"@keet/member-left-event":return jd;case"@keet/member-removed-event":return Ed;case"@keet/title-changed-chat-event":return Bd;case"@keet/chat-event":return Vd;case"@keet/sendable-event":return Jd;case"@keet/display-range":return Hd;case"@keet/display-content-range":return Gd;case"@keet/mention-display-item":return Xd;case"@keet/translation-display-item":return Zd;case"@keet/link-preview":return eo;case"@keet/display-link-item":return co;case"@keet/display":return yo;case"@keet/oplog-message":return go;case"@keet/index-message":return Ko;case"@keet/full-index-message":return Ro;case"@keet/message-status":return To;case"@keet/message-index-id":return Ao;case"@keet/thread":return qo;case"@keet/chat-message-record":return Do;case"@keet/full-chat-message-record":return Eo;case"@keet/add-chat-message-operation":return No;case"@keet/remove-chat-message-operation":return Uo;case"@keet/update-chat-message-operation":return Ho;case"@keet/pin-chat-message-operation":return Go;case"@keet/display-type":return Xo;case"@keet/add-file-preview-operation":return Zo;case"@keet/reaction":return $o;case"@keet/reactions-summary":return _o;case"@keet/reactions-digest":return dn;case"@keet/add-reaction-operation":return nn;case"@keet/remove-reaction-operation":return rn;case"@keet/update-room-config-operation":return sn;case"@keet/group-member":return pn;case"@keet/user-registry-info":return un;case"@keet/room-identity":return fn;case"@keet/genesis-operation":return kn;case"@keet/upgrade-operation":return wn;case"@keet/migrate-abi-operation":return Rn;case"@keet/system-settings-keys":return An;case"@keet/update-system-settings-operation":return In;case"@keet/test-increment-operation":return Cn;case"@keet/test-collection-record-1":return Dn;case"@keet/label-type":return Fn;case"@keet/chat-label":return jn;case"@keet/add-chat-label-operation":return Bn;case"@keet/remove-chat-label-operation":return Nn;case"@keet/chat-label-summary":return On;case"@keet/chat-label-digest":return Vn;case"@keet/update-read-length-operation":return Hn;case"@keet/read-length":return Wn;case"@keet/tmp-removed-member":return Gn;case"@keet-private-id/contact":return Xn;case"@keet-private-id/v3-room-migration-info":return Yn;case"@keet-private-id/run-v3-migration-operation":return _n;case"@keet-private-id/update-identity-operation":return dc;case"@keet-private-id/counters":return oc;case"@keet-private-id/stats":return nc;case"@keet-private-id/add-entropy-operation":return cc;case"@keet-private-id/pending-invitation-identity":return rc;case"@keet-private-id/pending-invitation":return ic;case"@keet-private-id/resolve-pending-invitation-operation":return sc;case"@keet-private-id/add-pending-invitation-operation":return lc;case"@keet-private-id/remove-pending-invitation-operation":return mc;case"@keet-private-id/identity-swap":return yc;case"@keet-private-id/identity-swap-v2":return xc;case"@keet-private-id/room-status":return bc;case"@keet-private-id/room":return kc;case"@keet-private-id/add-room-operation":return wc;case"@keet-private-id/remove-room-operation":return Rc;case"@keet-private-id/update-room-status-operation":return Mc;case"@keet-private-id/contact-status":return qc;case"@keet-private-id/contact-record":return Sc;case"@keet-private-id/add-contact-operation":return Lc;case"@keet-private-id/update-contact-status-operation":return jc;case"@keet-private-id/remove-contact-operation":return Bc;case"@keet-private-id/activate-contact-room-operation":return Nc;case"@keet-private-id/contact-request-status":return Oc;case"@keet-private-id/contact-request-body":return Jc;case"@keet-private-id/contact-request":return Wc;case"@keet-private-id/contact-request-record":return Zc;case"@keet-private-id/add-contact-request-operation":return _c;case"@keet-private-id/update-contact-request-status-operation":return or;case"@keet-private-id/profile-discovery-record-v1":return nr;case"@keet-private-id/profile-discovery-record":return cr;case"@keet-private-id/unreads":return rr;case"@keet-private-id/add-unreads-key-operation":return ir;case"@keet-private-id/remove-unreads-key-operation":return sr;case"@keet-private-id/settings":return pr;case"@keet-private-id/user-settings-key":return lr;case"@keet-private-id/update-settings-operation":return yr;case"@local/background-sync-room":return xr;case"@local/stats":return br;case"@local/migration-status":return vr;case"@local/v3-private-profile-migration":return hr;case"@local/v3-room-migration":return wr;case"@local/room-migration-stats":return Pr;case"@local/room-migration":return Tr;case"@local/identity-status":return Ar;case"@local/identity-swap":return Mr;case"@local/identity-record":return Cr;case"@local/tasks":return Lr;case"@local/room-keys":return Fr;case"@local/join-room-invitation-task":return Er;case"@local/join-room-response-task":return Br;case"@local/fast-forward-to":return zr;case"@local/add-room-fields":return Nr;case"@local/join-room-keys-task":return Ur;case"@local/create-room-task":return Jr;case"@local/leave-room-task":return Hr;case"@local/clear-room-task":return Wr;case"@local/restore-identity-task":return Gr;case"@local/send-contact-request-task":return Xr;case"@local/migrate-v2-room-task":return Yr;case"@local/task":return tt;case"@local/shared-invitation":return at;case"@local/room-status":return st;case"@local/room-timestamps":return pt;case"@local/room":return Rt;case"@local/room-preferences":return At;case"@local/room-metadata":return Mt;case"@local/writer":return qt;case"@local/writer-append":return It;case"@local/member":return Ct;case"@local/device":return Lt;case"@local/file":return jt;case"@local/debug-flag":return Et;case"@local/debug":return zt;case"@local/hyperdht-record":return Ot;case"@local/unread":return Ut;case"@local/error-record-details":return Vt;case"@local/error-record":return Ht;case"@local/keet-state":return Gt;case"@local/file-stats":return Qt;case"@api/request-header":return Xt;case"@api/response-header":return Yt;case"@api/subscription-request-header":return Zt;case"@api/subscription-response-header":return $t;case"@api/boot-request":return ei;case"@api/boot-response":return oi;case"@api/self-destruct-request":return ci;case"@api/core/have":return ri;case"@api/core/create-room-request":return si;case"@api/core/create-room-response":return ui;case"@api/core/activate-room-request":return fi;case"@api/core/deactivate-room-request":return yi;case"@api/core/leave-room-request":return bi;case"@api/core/leave-room-response":return gi;case"@api/core/update-room-config-request":return Ki;case"@api/core/update-room-settings-request":return Ri;case"@api/core/update-room-status-request":return Mi;case"@api/core/add-chat-message-request":return Si;case"@api/core/add-chat-message-response":return Di;case"@api/core/edit-chat-message-request":return ji;case"@api/core/edit-chat-message-response":return Bi;case"@api/core/remove-chat-message-request":return Ni;case"@api/core/remove-chat-message-response":return Ui;case"@api/core/add-chat-reaction-request":return Ji;case"@api/core/add-chat-reaction-response":return Wi;case"@api/core/remove-chat-reaction-request":return Qi;case"@api/core/remove-chat-reaction-response":return Yi;case"@api/core/want-lobby":return Zi;case"@api/core/unwant-lobby":return $i;case"@api/core/want-room-info":return ea;case"@api/core/want-chat":return da;case"@api/core/unwant-chat":return oa;case"@api/core/want-members":return na;case"@api/core/unwant-members":return ca;case"@api/core/lobby-record":return ra;case"@api/core/lobby-record-change-type":return ia;case"@api/core/lobby":return sa;case"@api/core/lobby-room":return pa;case"@api/core/room-role":return fa;case"@api/core/room-info":return ba;case"@api/core/room-info-status":return ga;case"@api/core/room-info-digest":return ka;case"@api/core/room-info-config":return wa;case"@api/core/room-info-role":return Ra;case"@api/core/room-info-last-message":return Ta;case"@api/core/member":return Ma;case"@api/core/device":return Ia;case"@api/core/member-list-add":return Sa;case"@api/core/member-list-remove":return Ca;case"@api/core/chat-reset":return La;case"@api/core/message-timestamps":return Fa;case"@api/core/message":return Na;case"@api/core/message-info":return Va;case"@api/core/message-info-chat":return Ha;case"@api/core/message-info-member":return Ga;case"@api/core/message-info-role":return Ya;case"@api/core/message-info-reactions":return $a;case"@api/core/reactions":return es;case"@api/core/want-pairing":return ds;case"@api/core/unwant-pairing":return os;case"@api/core/pending-invitations":return cs;case"@api/core/join-request":return ts;case"@api/core/join-requests":return as;case"@api/core/pairing":return us;case"@api/core/start-pairing-request":return fs;case"@api/core/start-pairing-response":return ys;case"@api/core/invitation-permissions":return xs;case"@api/core/create-room-invitation-request":return gs;case"@api/core/create-room-invitation-response":return ks;case"@api/core/create-identity-invitation-request":return ws;case"@api/core/create-identity-invitation-response":return Rs;case"@api/core/accept-join-request-request":return Ms;case"@api/core/accept-join-request-response":return Is;case"@api/core/reject-join-request-request":return Ds;case"@api/core/reject-join-request-response":return Fs;case"@api/core/stop-pairing-request":return Es;case"@api/core/stop-pairing-response":return zs;case"@api/core/update-profile-request":return Os;case"@api/core/want-identity":return Us;case"@api/core/unwant-identity":return Vs;case"@api/core/identity-status":return Js;case"@api/core/identity":return Gs;case"@api/core/identity-member":return Qs;case"@api/core/identity-device":return Xs;case"@api/debug/enable-request":return Zs;case"@api/debug/enable-response":return _s;case"@api/debug/disable-request":return dp;case"@api/debug/disable-response":return np;case"@keet/member-label-type":return rp;case"@keet/member-label":return tp;case"@keet/add-member-label-operation":return ap;case"@keet/member-label-summary":return sp;case"@keet/member-label-digest":return up;case"@keet/move-indexer-operation":return fp;case"@keet/location-shared-event":return mp;case"@keet/start-call":return bp;case"@keet/join-call":return hp;case"@keet/leave-call":return Kp;case"@keet/end-call":return Pp;case"@keet/add-call-stream":return Tp;case"@keet/remove-call-stream":return Mp;case"@keet/call-record":return qp;case"@keet/call-member-record":return Ip;case"@keet/call-device-record":return Sp;case"@keet/call-stream-record":return Cp;case"@local/active-call":return Dp;case"@local/file-gc-info":return Lp;case"@keet/build-type":return jp;case"@keet/test-crash-operation":return Bp;case"@keet/test-dispatch-error-operation":return Np;case"@local/environment-record":return Op;case"@keet-private-id/shorten-device-attestation-operation":return Vp;case"@local/ota-actions":return Jp;case"@local/device-attestation":return Hp;case"@keet/call-device-heartbeat":return Gp;case"@keet/remove-call-device":return Xp;case"@local/chat-labels":return $p;case"@keet/start-call-recording":return eu;case"@keet/stop-call-recording":return ou;case"@local/settings":return nu;case"@local/hyperswarm-record":return cu;case"@keet/dismiss-chat-reports-operation":return tu;case"@keet/update-typing-indicator-operation":return au;case"@keet/typing-indicator":return su;case"@keet-private-id/update-contact-alias-operation":return uu;default:throw new Error("Encoder not found "+e)}}function Su(e,o=10){const n=Iu(e);return{preencode(e,c){d=o,n.preencode(e,c)},encode(e,c){d=o,n.encode(e,c)},decode:e=>(d=o,n.decode(e))}}const Cu=Su;module.exports={resolveStruct:Cu,getStruct:Su,getEnum:function(e){switch(e){case"@keet/room-type":return O;case"@keet/room-supported-language":return X;case"@keet/display-type":return Qo;case"@keet/system-settings-keys":return Tn;case"@keet/label-type":return Ln;case"@keet-private-id/user-settings-key":return ur;case"@local/tasks":return Dr;case"@local/keet-state":return Wt;case"@api/core/lobby-record-change-type":return ta;case"@keet/member-label-type":return cp;case"@keet/build-type":return Fp;default:throw new Error("Enum not found "+e)}},getEncoding:Iu,encode:function(o,n,c=10){return d=c,e.encode(Iu(o),n)},decode:function(o,n,c=10){return d=c,e.decode(Iu(o),n)},setVersion:function(e){d=e},version:d};
1const{c:e}=require("hyperschema/runtime");let d=15;const o={preencode(d,o){e.fixed32.preencode(d,o.key),e.uint.preencode(d,o.length)},encode(d,o){e.fixed32.encode(d,o.key),e.uint.encode(d,o.length)},decode:d=>({key:e.fixed32.decode(d),length:e.uint.decode(d)})},n={preencode(d,o){e.fixed32.preencode(d,o.key),e.uint.preencode(d,o.seq)},encode(d,o){e.fixed32.encode(d,o.key),e.uint.encode(d,o.seq)},decode:d=>({key:e.fixed32.decode(d),seq:e.uint.decode(d)})},c={preencode(d,o){e.fixed32.preencode(d,o.publicKey),e.fixed32.preencode(d,o.secretKey)},encode(d,o){e.fixed32.encode(d,o.publicKey),e.fixed32.encode(d,o.secretKey)},decode:d=>({publicKey:e.fixed32.decode(d),secretKey:e.fixed32.decode(d)})},r={preencode(d,o){e.fixed32.preencode(d,o.publicKey),e.fixed64.preencode(d,o.secretKey)},encode(d,o){e.fixed32.encode(d,o.publicKey),e.fixed64.encode(d,o.secretKey)},decode:d=>({publicKey:e.fixed32.decode(d),secretKey:e.fixed64.decode(d)})},t={preencode(n,c){e.fixed32.preencode(n,c.key),n.end++,c.encryptionKey&&e.buffer.preencode(n,c.encryptionKey),c.fastForwardTo&&e.fixed32.preencode(n,c.fastForwardTo),d>=13&&c.bootFrom&&o.preencode(n,c.bootFrom)},encode(n,c){const r=(c.encryptionKey?1:0)|(c.fastForwardTo?2:0)|(d>=13&&c.bootFrom?4:0);e.fixed32.encode(n,c.key),e.uint.encode(n,r),c.encryptionKey&&e.buffer.encode(n,c.encryptionKey),c.fastForwardTo&&e.fixed32.encode(n,c.fastForwardTo),d>=13&&c.bootFrom&&o.encode(n,c.bootFrom)},decode(n){const c=e.fixed32.decode(n),r=e.uint.decode(n);return{key:c,encryptionKey:1&r?e.buffer.decode(n):null,fastForwardTo:2&r?e.fixed32.decode(n):null,bootFrom:d>=13&&4&r?o.decode(n):null}}},i={preencode(d,o){e.uint.preencode(d,o.timestamp)},encode(d,o){e.uint.encode(d,o.timestamp)},decode:d=>({timestamp:e.uint.decode(d)})},a={preencode(d,o){e.uint.preencode(d,o.blockOffset),e.uint.preencode(d,o.blockLength),e.uint.preencode(d,o.byteOffset),e.uint.preencode(d,o.byteLength)},encode(d,o){e.uint.encode(d,o.blockOffset),e.uint.encode(d,o.blockLength),e.uint.encode(d,o.byteOffset),e.uint.encode(d,o.byteLength)},decode:d=>({blockOffset:e.uint.decode(d),blockLength:e.uint.decode(d),byteOffset:e.uint.decode(d),byteLength:e.uint.decode(d)})},s={preencode(d,o){e.uint.preencode(d,o.width),e.uint.preencode(d,o.height)},encode(d,o){e.uint.encode(d,o.width),e.uint.encode(d,o.height)},decode:d=>({width:e.uint.decode(d),height:e.uint.decode(d)})},p=e.frame(s),u={preencode(d,o){d.end++,o.name&&e.string.preencode(d,o.name),o.mimetype&&e.string.preencode(d,o.mimetype),o.dimensions&&p.preencode(d,o.dimensions),o.userdata&&e.buffer.preencode(d,o.userdata),o.duration&&e.uint.preencode(d,o.duration)},encode(d,o){const n=(o.name?1:0)|(o.mimetype?2:0)|(o.dimensions?4:0)|(o.userdata?8:0)|(o.duration?16:0)|(o.isPreview?32:0);e.uint.encode(d,n),o.name&&e.string.encode(d,o.name),o.mimetype&&e.string.encode(d,o.mimetype),o.dimensions&&p.encode(d,o.dimensions),o.userdata&&e.buffer.encode(d,o.userdata),o.duration&&e.uint.encode(d,o.duration)},decode(d){const o=e.uint.decode(d);return{name:1&o?e.string.decode(d):null,mimetype:2&o?e.string.decode(d):null,dimensions:4&o?p.decode(d):null,userdata:8&o?e.buffer.decode(d):null,duration:16&o?e.uint.decode(d):0,isPreview:!!(32&o)}}},l={preencode(d,o){e.fixed32.preencode(d,o.key),e.string.preencode(d,o.path),e.uint.preencode(d,o.version),e.uint.preencode(d,o.size)},encode(d,o){e.fixed32.encode(d,o.key),e.string.encode(d,o.path),e.uint.encode(d,o.version),e.uint.encode(d,o.size)},decode:d=>({key:e.fixed32.decode(d),path:e.string.decode(d),version:e.uint.decode(d),size:e.uint.decode(d)})},f={preencode(d,o){e.fixed32.preencode(d,o.key),a.preencode(d,o.blob)},encode(d,o){e.fixed32.encode(d,o.key),a.encode(d,o.blob)},decode:d=>({key:e.fixed32.decode(d),blob:a.decode(d)})},m=e.frame(f),y=e.frame(l),x={preencode(o,n){o.end++,n.inlined&&e.buffer.preencode(o,n.inlined),n.blob&&a.preencode(o,n.blob),n.externalBlob&&m.preencode(o,n.externalBlob),n.externalDrive&&y.preencode(o,n.externalDrive),d>=13&&n.bee&&vu.preencode(o,n.bee)},encode(o,n){const c=(n.inlined?1:0)|(n.blob?2:0)|(n.externalBlob?4:0)|(n.externalDrive?8:0)|(d>=13&&n.bee?16:0);e.uint.encode(o,c),n.inlined&&e.buffer.encode(o,n.inlined),n.blob&&a.encode(o,n.blob),n.externalBlob&&m.encode(o,n.externalBlob),n.externalDrive&&y.encode(o,n.externalDrive),d>=13&&n.bee&&vu.encode(o,n.bee)},decode(o){const n=e.uint.decode(o);return{inlined:1&n?e.buffer.decode(o):null,blob:2&n?a.decode(o):null,externalBlob:4&n?m.decode(o):null,externalDrive:8&n?y.decode(o):null,bee:d>=13&&16&n?vu.decode(o):null}}},b=e.frame(x),v=e.frame(u),g={preencode(d,o){b.preencode(d,o.pointer),d.end++,o.metadata&&v.preencode(d,o.metadata),o.preview&&Ou.preencode(d,o.preview),o.hash&&e.fixed32.preencode(d,o.hash)},encode(d,o){const n=(o.metadata?1:0)|(o.preview?2:0)|(o.hash?4:0);b.encode(d,o.pointer),e.uint.encode(d,n),o.metadata&&v.encode(d,o.metadata),o.preview&&Ou.encode(d,o.preview),o.hash&&e.fixed32.encode(d,o.hash)},decode(d){const o=b.decode(d),n=e.uint.decode(d);return{pointer:o,metadata:1&n?v.decode(d):null,preview:2&n?Ou.decode(d):null,hash:4&n?e.fixed32.decode(d):null}}},K=e.frame(g),k=K,h=K,w={preencode(e,d){e.end++,d.small&&K.preencode(e,d.small),d.medium&&k.preencode(e,d.medium),d.large&&h.preencode(e,d.large)},encode(d,o){const n=(o.small?1:0)|(o.medium?2:0)|(o.large?4:0);e.uint.encode(d,n),o.small&&K.encode(d,o.small),o.medium&&k.encode(d,o.medium),o.large&&h.encode(d,o.large)},decode(d){const o=e.uint.decode(d);return{small:1&o?K.decode(d):null,medium:2&o?k.decode(d):null,large:4&o?h.decode(d):null}}},P={preencode(e,d){e.end++},encode(d,o){const n=o.isDeleted?1:0;e.uint.encode(d,n)},decode:d=>({isDeleted:!!(1&e.uint.decode(d))})},R=e.frame(P),T=K,A={preencode(d,o){e.uint.preencode(d,o.id),n.preencode(d,o.oplog),R.preencode(d,o.status),T.preencode(d,o.file),d.end++,o.version&&e.uint.preencode(d,o.version)},encode(d,o){const c=o.version?1:0;e.uint.encode(d,o.id),n.encode(d,o.oplog),R.encode(d,o.status),T.encode(d,o.file),e.uint.encode(d,c),o.version&&e.uint.encode(d,o.version)},decode:d=>({id:e.uint.decode(d),oplog:n.decode(d),status:R.decode(d),file:T.decode(d),version:1&e.uint.decode(d)?e.uint.decode(d):0})},S={preencode(e,d){e.end++},encode(d,o){const n=(o.isActive?1:0)|(o.isIndexing?2:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isActive:!!(1&o),isIndexing:!!(2&o)}}},I={preencode(d,o){const n=(o.isAdmin?1:0)|(o.isModerator?2:0)|(o.isPending?4:0)|(o.isActive?8:0)|(o.isMuted?16:0)|(o.isBanned?32:0)|(o.isShadowBanned?64:0)|(o.isRemoved?128:0);e.uint.preencode(d,n)},encode(d,o){const n=(o.isAdmin?1:0)|(o.isModerator?2:0)|(o.isPending?4:0)|(o.isActive?8:0)|(o.isMuted?16:0)|(o.isBanned?32:0)|(o.isShadowBanned?64:0)|(o.isRemoved?128:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isAdmin:!!(1&o),isModerator:!!(2&o),isPending:!!(4&o),isActive:!!(8&o),isMuted:!!(16&o),isBanned:!!(32&o),isShadowBanned:!!(64&o),isRemoved:!!(128&o)}}},M={preencode(e,d){e.end++},encode(d,o){const n=(o.isMuted?1:0)|(o.isBanned?2:0)|(o.isShadowBanned?4:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isMuted:!!(1&o),isBanned:!!(2&o),isShadowBanned:!!(4&o)}}},F={preencode(d,o){e.uint.preencode(d,o.version)},encode(d,o){e.uint.encode(d,o.version)},decode:d=>({version:e.uint.decode(d)})},q={preencode(d,o){e.uint.preencode(d,o.total),e.uint.preencode(d,o.active)},encode(d,o){e.uint.encode(d,o.total),e.uint.encode(d,o.active)},decode:d=>({total:e.uint.decode(d),active:e.uint.decode(d)})},C={preencode(d,o){e.uint.preencode(d,o.total),e.uint.preencode(d,o.active),e.uint.preencode(d,o.pending)},encode(d,o){e.uint.encode(d,o.total),e.uint.encode(d,o.active),e.uint.encode(d,o.pending)},decode:d=>({total:e.uint.decode(d),active:e.uint.decode(d),pending:e.uint.decode(d)})},V={preencode(d,o){e.uint.preencode(d,o.clock),e.uint.preencode(d,o.pinned),e.uint.preencode(d,o.threads),e.uint.preencode(d,o.timestamp),d.end++,o.flagsClock&&e.uint.preencode(d,o.flagsClock)},encode(d,o){const n=o.flagsClock?1:0;e.uint.encode(d,o.clock),e.uint.encode(d,o.pinned),e.uint.encode(d,o.threads),e.uint.encode(d,o.timestamp),e.uint.encode(d,n),o.flagsClock&&e.uint.encode(d,o.flagsClock)},decode:d=>({clock:e.uint.decode(d),pinned:e.uint.decode(d),threads:e.uint.decode(d),timestamp:e.uint.decode(d),flagsClock:1&e.uint.decode(d)?e.uint.decode(d):0})},H={preencode(d,o){e.uint.preencode(d,o.clock)},encode(d,o){e.uint.encode(d,o.clock)},decode:d=>({clock:e.uint.decode(d)})},D=e.frame(q),L=e.frame(C),j=e.frame(V),E=e.frame(H),B={preencode(e,o){D.preencode(e,o.devices),L.preencode(e,o.members),j.preencode(e,o.chat),E.preencode(e,o.files),e.end++,d>=12&&o.calls&&Nu.preencode(e,o.calls)},encode(o,n){const c=d>=12&&n.calls?1:0;D.encode(o,n.devices),L.encode(o,n.members),j.encode(o,n.chat),E.encode(o,n.files),e.uint.encode(o,c),d>=12&&n.calls&&Nu.encode(o,n.calls)},decode(o){const n=D.decode(o),c=L.decode(o),r=j.decode(o),t=E.decode(o),i=o.start<o.end?e.uint.decode(o):0;return{devices:n,members:c,chat:r,files:t,calls:d>=12&&1&i?Nu.decode(o):null}}},z={Default:1,Broadcast:2,DirectMessage:3},O={preencode(e,d){e.end++},encode(d,o){if(o>3)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},N={preencode(o,n){const c=(n.roomType?1:0)|(n.isExperimental?2:0)|(n.isJoiningDisabled?4:0)|(n.isAppendingDisabled?8:0)|(n.isCallingDisabled?16:0)|(n.isMembershipEventsDisabled?32:0)|(d>=4&&n.isAttachmentsDisabled?64:0)|(d>=4&&n.isLinksDisabled?128:0)|(d>=5&&n.buildType?256:0)|(d>=9&&n.isRoomInviteHidden?512:0);e.uint.preencode(o,c),n.roomType&&O.preencode(o,n.roomType),d>=5&&n.buildType&&Dp.preencode(o,n.buildType)},encode(o,n){const c=(n.roomType?1:0)|(n.isExperimental?2:0)|(n.isJoiningDisabled?4:0)|(n.isAppendingDisabled?8:0)|(n.isCallingDisabled?16:0)|(n.isMembershipEventsDisabled?32:0)|(d>=4&&n.isAttachmentsDisabled?64:0)|(d>=4&&n.isLinksDisabled?128:0)|(d>=5&&n.buildType?256:0)|(d>=9&&n.isRoomInviteHidden?512:0);e.uint.encode(o,c),n.roomType&&O.encode(o,n.roomType),d>=5&&n.buildType&&Dp.encode(o,n.buildType)},decode(o){const n=e.uint.decode(o);return{roomType:1&n?O.decode(o):0,isExperimental:!!(2&n),isJoiningDisabled:!!(4&n),isAppendingDisabled:!!(8&n),isCallingDisabled:!!(16&n),isMembershipEventsDisabled:!!(32&n),isAttachmentsDisabled:d>=4&&!!(64&n),isLinksDisabled:d>=4&&!!(128&n),buildType:d>=5&&256&n?Dp.decode(o):null,isRoomInviteHidden:d>=9&&!!(512&n)}}},U=e.frame(F),J=e.frame(N),W={preencode(d,o){U.preencode(d,o.abi),J.preencode(d,o.settings),e.uint.preencode(d,o.creationTime)},encode(d,o){U.encode(d,o.abi),J.encode(d,o.settings),e.uint.encode(d,o.creationTime)},decode:d=>({abi:U.decode(d),settings:J.decode(d),creationTime:e.uint.decode(d)})},G={preencode(d,o){e.fixed32.preencode(d,o.seed)},encode(d,o){e.fixed32.encode(d,o.seed)},decode:d=>({seed:e.fixed32.decode(d)})},Q={preencode(d,o){c.preencode(d,o.mailboxKeyPair),r.preencode(d,o.discoveryKeyPair),e.fixed32.preencode(d,o.wakeupTopic),e.fixed32.preencode(d,o.swarmTopic)},encode(d,o){c.encode(d,o.mailboxKeyPair),r.encode(d,o.discoveryKeyPair),e.fixed32.encode(d,o.wakeupTopic),e.fixed32.encode(d,o.swarmTopic)},decode:d=>({mailboxKeyPair:c.decode(d),discoveryKeyPair:r.decode(d),wakeupTopic:e.fixed32.decode(d),swarmTopic:e.fixed32.decode(d)})},X={en:"en",it:"it",ru:"ru",es:"es",de:"de"},Y={preencode(e,d){e.end++},encode(d,o){switch(o){case"en":e.uint.encode(d,1);break;case"it":e.uint.encode(d,2);break;case"ru":e.uint.encode(d,3);break;case"es":e.uint.encode(d,4);break;case"de":e.uint.encode(d,5);break;default:throw new Error("Unknown enum")}},decode(d){switch(e.uint.decode(d)){case 1:return"en";case 2:return"it";case 3:return"ru";case 4:return"es";case 5:return"de";default:return null}}},Z=e.array(Y),$=e.array(e.fixed32),_={preencode(d,o){d.end++,o.title&&e.string.preencode(d,o.title),o.avatar&&Uu.preencode(d,o.avatar),o.description&&e.string.preencode(d,o.description),o.supportedLanguages&&Z.preencode(d,o.supportedLanguages),o.blindPeers&&$.preencode(d,o.blindPeers)},encode(d,o){const n=(o.title?1:0)|(o.avatar?2:0)|(o.description?4:0)|(o.supportedLanguages?8:0)|(o.blindPeers?16:0);e.uint.encode(d,n),o.title&&e.string.encode(d,o.title),o.avatar&&Uu.encode(d,o.avatar),o.description&&e.string.encode(d,o.description),o.supportedLanguages&&Z.encode(d,o.supportedLanguages),o.blindPeers&&$.encode(d,o.blindPeers)},decode(d){const o=e.uint.decode(d);return{title:1&o?e.string.decode(d):null,avatar:2&o?Uu.decode(d):null,description:4&o?e.string.decode(d):null,supportedLanguages:8&o?Z.decode(d):null,blindPeers:16&o?$.decode(d):null}}},ee={preencode(d,o){e.fixed32.preencode(d,o.key)},encode(d,o){e.fixed32.encode(d,o.key)},decode:d=>({key:e.fixed32.decode(d)})},de=e.frame(i),oe=e.frame(ee),ne={preencode(e,d){de.preencode(e,d.header),oe.preencode(e,d.peer)},encode(e,d){de.encode(e,d.header),oe.encode(e,d.peer)},decode:e=>({header:de.decode(e),peer:oe.decode(e)})},ce=de,re={preencode(d,o){ce.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){ce.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:ce.decode(d),key:e.fixed32.decode(d)})},te={preencode(d,o){e.fixed32.preencode(d,o.memberKey),e.buffer.preencode(d,o.proof)},encode(d,o){e.fixed32.encode(d,o.memberKey),e.buffer.encode(d,o.proof)},decode:d=>({memberKey:e.fixed32.decode(d),proof:e.buffer.decode(d)})},ie={preencode(d,o){e.fixed32.preencode(d,o.id),e.buffer.preencode(d,o.response)},encode(d,o){e.fixed32.encode(d,o.id),e.buffer.encode(d,o.response)},decode:d=>({id:e.fixed32.decode(d),response:e.buffer.decode(d)})},ae=e.frame(S),se=e.frame(ie),pe={preencode(d,o){e.fixed32.preencode(d,o.key),e.fixed32.preencode(d,o.memberKey),ae.preencode(d,o.status),Ju.preencode(d,o.profile),d.end++,o.invitation&&se.preencode(d,o.invitation)},encode(d,o){const n=o.invitation?1:0;e.fixed32.encode(d,o.key),e.fixed32.encode(d,o.memberKey),ae.encode(d,o.status),Ju.encode(d,o.profile),e.uint.encode(d,n),o.invitation&&se.encode(d,o.invitation)},decode:d=>({key:e.fixed32.decode(d),memberKey:e.fixed32.decode(d),status:ae.decode(d),profile:Ju.decode(d),invitation:1&e.uint.decode(d)?se.decode(d):null})},ue={preencode(d,o){e.uint.preencode(d,o.timestamp),d.end++,o.mailbox&&e.fixed32.preencode(d,o.mailbox),o.displayName&&e.string.preencode(d,o.displayName),o.avatar&&Wu.preencode(d,o.avatar),o.username&&e.string.preencode(d,o.username)},encode(d,o){const n=(o.mailbox?1:0)|(o.displayName?2:0)|(o.avatar?4:0)|(o.username?8:0);e.uint.encode(d,o.timestamp),e.uint.encode(d,n),o.mailbox&&e.fixed32.encode(d,o.mailbox),o.displayName&&e.string.encode(d,o.displayName),o.avatar&&Wu.encode(d,o.avatar),o.username&&e.string.encode(d,o.username)},decode(d){const o=e.uint.decode(d),n=e.uint.decode(d);return{timestamp:o,mailbox:1&n?e.fixed32.decode(d):null,displayName:2&n?e.string.decode(d):null,avatar:4&n?Wu.decode(d):null,username:8&n?e.string.decode(d):null}}},le={preencode(o,n){o.end++,n.swarmKey&&e.fixed32.preencode(o,n.swarmKey),n.name&&e.string.preencode(o,n.name),d>=5&&n.buildType&&Dp.preencode(o,n.buildType)},encode(o,n){const c=(n.swarmKey?1:0)|(n.name?2:0)|(n.isMobile?4:0)|(d>=5&&n.buildType?8:0);e.uint.encode(o,c),n.swarmKey&&e.fixed32.encode(o,n.swarmKey),n.name&&e.string.encode(o,n.name),d>=5&&n.buildType&&Dp.encode(o,n.buildType)},decode(o){const n=e.uint.decode(o);return{swarmKey:1&n?e.fixed32.decode(o):null,name:2&n?e.string.decode(o):null,isMobile:!!(4&n),buildType:d>=5&&8&n?Dp.decode(o):null}}},fe=e.frame(ue),me={preencode(e,d){fe.preencode(e,d.profile),te.preencode(e,d.attestation)},encode(e,d){fe.encode(e,d.profile),te.encode(e,d.attestation)},decode:e=>({profile:fe.decode(e),attestation:te.decode(e)})},ye={preencode(e,d){Gu.preencode(e,d.profile),te.preencode(e,d.attestation)},encode(e,d){Gu.encode(e,d.profile),te.encode(e,d.attestation)},decode:e=>({profile:Gu.decode(e),attestation:te.decode(e)})},xe=fe,be={preencode(e,d){xe.preencode(e,d.profile),te.preencode(e,d.attestation)},encode(e,d){xe.encode(e,d.profile),te.encode(e,d.attestation)},decode:e=>({profile:xe.decode(e),attestation:te.decode(e)})},ve={preencode(d,o){e.fixed32.preencode(d,o.id),e.buffer.preencode(d,o.data),e.buffer.preencode(d,o.signature)},encode(d,o){e.fixed32.encode(d,o.id),e.buffer.encode(d,o.data),e.buffer.encode(d,o.signature)},decode:d=>({id:e.fixed32.decode(d),data:e.buffer.decode(d),signature:e.buffer.decode(d)})},ge={preencode(d,o){e.fixed32.preencode(d,o.devicePublicKey)},encode(d,o){e.fixed32.encode(d,o.devicePublicKey)},decode:d=>({devicePublicKey:e.fixed32.decode(d)})},Ke={preencode(d,o){te.preencode(d,o.privateProfileIdentity),e.buffer.preencode(d,o.deviceProof)},encode(d,o){te.encode(d,o.privateProfileIdentity),e.buffer.encode(d,o.deviceProof)},decode:d=>({privateProfileIdentity:te.decode(d),deviceProof:e.buffer.decode(d)})},ke={preencode(d,o){e.fixed32.preencode(d,o.deviceKey),te.preencode(d,o.privateProfileIdentity),e.buffer.preencode(d,o.deviceProof)},encode(d,o){e.fixed32.encode(d,o.deviceKey),te.encode(d,o.privateProfileIdentity),e.buffer.encode(d,o.deviceProof)},decode:d=>({deviceKey:e.fixed32.decode(d),privateProfileIdentity:te.decode(d),deviceProof:e.buffer.decode(d)})},he=e.frame(ye),we=e.frame(me),Pe=e.frame(ge),Re={preencode(n,c){e.fixed32.preencode(n,c.deviceKey),r.preencode(n,c.keyPair),he.preencode(n,c.device),we.preencode(n,c.member),n.end++,c.identity&&Pe.preencode(n,c.identity),d>=13&&c.link&&o.preencode(n,c.link)},encode(n,c){const t=(c.identity?1:0)|(d>=13&&c.link?2:0);e.fixed32.encode(n,c.deviceKey),r.encode(n,c.keyPair),he.encode(n,c.device),we.encode(n,c.member),e.uint.encode(n,t),c.identity&&Pe.encode(n,c.identity),d>=13&&c.link&&o.encode(n,c.link)},decode(n){const c=e.fixed32.decode(n),t=r.decode(n),i=he.decode(n),a=we.decode(n),s=e.uint.decode(n);return{deviceKey:c,keyPair:t,device:i,member:a,identity:1&s?Pe.decode(n):null,link:d>=13&&2&s?o.decode(n):null}}},Te=e.frame(Re),Ae={preencode(d,o){e.fixed32.preencode(d,o.id),Te.preencode(d,o.request),e.buffer.preencode(d,o.signature)},encode(d,o){e.fixed32.encode(d,o.id),Te.encode(d,o.request),e.buffer.encode(d,o.signature)},decode:d=>({id:e.fixed32.decode(d),request:Te.decode(d),signature:e.buffer.decode(d)})},Se=he,Ie=we,Me={preencode(e,d){Se.preencode(e,d.device),e.end++,d.member&&Ie.preencode(e,d.member)},encode(d,o){const n=o.member?1:0;Se.encode(d,o.device),e.uint.encode(d,n),o.member&&Ie.encode(d,o.member)},decode:d=>({device:Se.decode(d),member:1&e.uint.decode(d)?Ie.decode(d):null})},Fe=e.frame(Ae),qe=e.frame(Me),Ce={preencode(e,d){e.end++,d.withInvitation&&Fe.preencode(e,d.withInvitation),d.withMemberProof&&qe.preencode(e,d.withMemberProof)},encode(d,o){const n=(o.withInvitation?1:0)|(o.withMemberProof?2:0);e.uint.encode(d,n),o.withInvitation&&Fe.encode(d,o.withInvitation),o.withMemberProof&&qe.encode(d,o.withMemberProof)},decode(d){const o=e.uint.decode(d);return{withInvitation:1&o?Fe.decode(d):null,withMemberProof:2&o?qe.decode(d):null}}},Ve=e.frame(ve),He=e.frame(Ke),De={preencode(e,d){Ve.preencode(e,d.signedKeys),e.end++,d.identity&&He.preencode(e,d.identity)},encode(d,o){const n=o.identity?1:0;Ve.encode(d,o.signedKeys),e.uint.encode(d,n),o.identity&&He.encode(d,o.identity)},decode:d=>({signedKeys:Ve.decode(d),identity:1&e.uint.decode(d)?He.decode(d):null})},Le={preencode(o,n){o.end++,n.expiration&&e.uint.preencode(o,n.expiration),d>=5&&n.buildType&&Dp.preencode(o,n.buildType)},encode(o,n){const c=(n.expiration?1:0)|(n.requiresConfirmation?2:0)|(n.canModerate?4:0)|(n.canAdmin?8:0)|(d>=5&&n.buildType?16:0);e.uint.encode(o,c),n.expiration&&e.uint.encode(o,n.expiration),d>=5&&n.buildType&&Dp.encode(o,n.buildType)},decode(o){const n=e.uint.decode(o);return{expiration:1&n?e.uint.decode(o):0,requiresConfirmation:!!(2&n),canModerate:!!(4&n),canAdmin:!!(8&n),buildType:d>=5&&16&n?Dp.decode(o):null}}},je=Ve,Ee=e.frame(Le),Be={preencode(d,n){e.fixed32.preencode(d,n.id),je.preencode(d,n.response),Ee.preencode(d,n.metadata),d.end++,n.anchor&&o.preencode(d,n.anchor)},encode(d,n){const c=(n.anchor?1:0)|(n.isActive?2:0);e.fixed32.encode(d,n.id),je.encode(d,n.response),Ee.encode(d,n.metadata),e.uint.encode(d,c),n.anchor&&o.encode(d,n.anchor)},decode(d){const n=e.fixed32.decode(d),c=je.decode(d),r=Ee.decode(d),t=e.uint.decode(d);return{id:n,response:c,metadata:r,anchor:1&t?o.decode(d):null,isActive:!!(2&t)}}},ze=de,Oe=e.frame(Be),Ne={preencode(e,d){ze.preencode(e,d.header),Oe.preencode(e,d.invitation)},encode(e,d){ze.encode(e,d.header),Oe.encode(e,d.invitation)},decode:e=>({header:ze.decode(e),invitation:Oe.decode(e)})},Ue=de,Je={preencode(d,o){Ue.preencode(d,o.header),e.fixed32.preencode(d,o.id)},encode(d,o){Ue.encode(d,o.header),e.fixed32.encode(d,o.id)},decode:d=>({header:Ue.decode(d),id:e.fixed32.decode(d)})},We={preencode(d,n){e.fixed32.preencode(d,n.mailbox),e.fixed32.preencode(d,n.invitationSeed),o.preencode(d,n.anchor)},encode(d,n){e.fixed32.encode(d,n.mailbox),e.fixed32.encode(d,n.invitationSeed),o.encode(d,n.anchor)},decode:d=>({mailbox:e.fixed32.decode(d),invitationSeed:e.fixed32.decode(d),anchor:o.decode(d)})},Ge={preencode(d,o){e.fixed32.preencode(d,o.roomKey),e.fixed32.preencode(d,o.encryptionKey),e.fixed32.preencode(d,o.seed),d.end++,o.fastForwardTo&&e.fixed32.preencode(d,o.fastForwardTo)},encode(d,o){const n=o.fastForwardTo?1:0;e.fixed32.encode(d,o.roomKey),e.fixed32.encode(d,o.encryptionKey),e.fixed32.encode(d,o.seed),e.uint.encode(d,n),o.fastForwardTo&&e.fixed32.encode(d,o.fastForwardTo)},decode:d=>({roomKey:e.fixed32.decode(d),encryptionKey:e.fixed32.decode(d),seed:e.fixed32.decode(d),fastForwardTo:1&e.uint.decode(d)?e.fixed32.decode(d):null})},Qe={preencode(d,n){e.fixed32.preencode(d,n.mailbox),e.fixed32.preencode(d,n.invitationSeed),o.preencode(d,n.anchor),e.fixed32.preencode(d,n.identityPublicKey)},encode(d,n){e.fixed32.encode(d,n.mailbox),e.fixed32.encode(d,n.invitationSeed),o.encode(d,n.anchor),e.fixed32.encode(d,n.identityPublicKey)},decode:d=>({mailbox:e.fixed32.decode(d),invitationSeed:e.fixed32.decode(d),anchor:o.decode(d),identityPublicKey:e.fixed32.decode(d)})},Xe={preencode(d,o){e.fixed32.preencode(d,o.mailbox)},encode(d,o){e.fixed32.encode(d,o.mailbox)},decode:d=>({mailbox:e.fixed32.decode(d)})},Ye=e.frame(We),Ze=e.frame(Qe),$e=e.frame(Xe),_e=e.frame(Ge),ed=e.array(e.ipv4Address),dd={preencode(e,o){e.end++,o.room&&Ye.preencode(e,o.room),o.identity&&Ze.preencode(e,o.identity),o.contact&&$e.preencode(e,o.contact),o.readonly&&_e.preencode(e,o.readonly),o.additionalNodes&&ed.preencode(e,o.additionalNodes),d>=5&&o.buildType&&Dp.preencode(e,o.buildType),d>=13&&o["readonly-v2"]&&Qu.preencode(e,o["readonly-v2"])},encode(o,n){const c=(n.room?1:0)|(n.identity?2:0)|(n.contact?4:0)|(n.readonly?8:0)|(n.additionalNodes?16:0)|(d>=5&&n.buildType?32:0)|(d>=13&&n["readonly-v2"]?64:0);e.uint.encode(o,c),n.room&&Ye.encode(o,n.room),n.identity&&Ze.encode(o,n.identity),n.contact&&$e.encode(o,n.contact),n.readonly&&_e.encode(o,n.readonly),n.additionalNodes&&ed.encode(o,n.additionalNodes),d>=5&&n.buildType&&Dp.encode(o,n.buildType),d>=13&&n["readonly-v2"]&&Qu.encode(o,n["readonly-v2"])},decode(o){const n=e.uint.decode(o);return{room:1&n?Ye.decode(o):null,identity:2&n?Ze.decode(o):null,contact:4&n?$e.decode(o):null,readonly:8&n?_e.decode(o):null,additionalNodes:16&n?ed.decode(o):null,buildType:d>=5&&32&n?Dp.decode(o):null,"readonly-v2":d>=13&&64&n?Qu.decode(o):null}}},od=de,nd={preencode(d,o){od.preencode(d,o.header),e.buffer.preencode(d,o.blindRequest)},encode(d,o){od.encode(d,o.header),e.buffer.encode(d,o.blindRequest)},decode:d=>({header:od.decode(d),blindRequest:e.buffer.decode(d)})},cd=de,rd={preencode(o,n){cd.preencode(o,n.header),o.end++,n.profile&&Xu.preencode(o,n.profile),d>=10&&n.key&&e.fixed32.preencode(o,n.key)},encode(o,n){const c=(n.profile?1:0)|(d>=10&&n.key?2:0);cd.encode(o,n.header),e.uint.encode(o,c),n.profile&&Xu.encode(o,n.profile),d>=10&&n.key&&e.fixed32.encode(o,n.key)},decode(o){const n=cd.decode(o),c=e.uint.decode(o);return{header:n,profile:1&c?Xu.decode(o):null,key:d>=10&&2&c?e.fixed32.decode(o):null}}},td=de,id={preencode(d,o){td.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){td.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:td.decode(d),key:e.fixed32.decode(d)})},ad={preencode(e,d){},encode(e,d){},decode:e=>({})},sd=ad,pd=Te,ud={preencode(d,o){e.fixed32.preencode(d,o.deviceKey),e.fixed32.preencode(d,o.id),pd.preencode(d,o.request)},encode(d,o){e.fixed32.encode(d,o.deviceKey),e.fixed32.encode(d,o.id),pd.encode(d,o.request)},decode:d=>({deviceKey:e.fixed32.decode(d),id:e.fixed32.decode(d),request:pd.decode(d)})},ld=de,fd=He,md={preencode(d,o){ld.preencode(d,o.header),e.fixed32.preencode(d,o.deviceKey),d.end++,o.identity&&fd.preencode(d,o.identity)},encode(d,o){const n=o.identity?1:0;ld.encode(d,o.header),e.fixed32.encode(d,o.deviceKey),e.uint.encode(d,n),o.identity&&fd.encode(d,o.identity)},decode:d=>({header:ld.decode(d),deviceKey:e.fixed32.decode(d),identity:1&e.uint.decode(d)?fd.decode(d):null})},yd=de,xd={preencode(d,o){yd.preencode(d,o.header),e.fixed32.preencode(d,o.deviceKey)},encode(d,o){yd.encode(d,o.header),e.fixed32.encode(d,o.deviceKey)},decode:d=>({header:yd.decode(d),deviceKey:e.fixed32.decode(d)})},bd=e.frame(I),vd=fe,gd={preencode(d,o){e.fixed32.preencode(d,o.key),bd.preencode(d,o.status),vd.preencode(d,o.profile)},encode(d,o){e.fixed32.encode(d,o.key),bd.encode(d,o.status),vd.encode(d,o.profile)},decode:d=>({key:e.fixed32.decode(d),status:bd.decode(d),profile:vd.decode(d)})},Kd=bd,kd=fe,hd={preencode(d,o){e.fixed32.preencode(d,o.key),Kd.preencode(d,o.status),kd.preencode(d,o.profile),d.end++,o.proofs&&Yu.preencode(d,o.proofs)},encode(d,o){const n=o.proofs?1:0;e.fixed32.encode(d,o.key),Kd.encode(d,o.status),kd.encode(d,o.profile),e.uint.encode(d,n),o.proofs&&Yu.encode(d,o.proofs)},decode:d=>({key:e.fixed32.decode(d),status:Kd.decode(d),profile:kd.decode(d),proofs:1&e.uint.decode(d)?Yu.decode(d):null})},wd={preencode(d,o){e.fixed32.preencode(d,o.key),d.end++,o.profileAttestation&&e.buffer.preencode(d,o.profileAttestation),o.latestReceipt&&e.buffer.preencode(d,o.latestReceipt)},encode(d,o){const n=(o.profileAttestation?1:0)|(o.latestReceipt?2:0);e.fixed32.encode(d,o.key),e.uint.encode(d,n),o.profileAttestation&&e.buffer.encode(d,o.profileAttestation),o.latestReceipt&&e.buffer.encode(d,o.latestReceipt)},decode(d){const o=e.fixed32.decode(d),n=e.uint.decode(d);return{key:o,profileAttestation:1&n?e.buffer.decode(d):null,latestReceipt:2&n?e.buffer.decode(d):null}}},Pd=de,Rd=we,Td={preencode(e,d){Pd.preencode(e,d.header),Rd.preencode(e,d.member)},encode(e,d){Pd.encode(e,d.header),Rd.encode(e,d.member)},decode:e=>({header:Pd.decode(e),member:Rd.decode(e)})},Ad=de,Sd=e.frame(M),Id={preencode(d,o){Ad.preencode(d,o.header),e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.key),Sd.preencode(d,o.status)},encode(d,o){Ad.encode(d,o.header),e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.key),Sd.encode(d,o.status)},decode:d=>({header:Ad.decode(d),memberKey:e.fixed32.decode(d),key:e.uint.decode(d),status:Sd.decode(d)})},Md=de,Fd={preencode(d,o){Md.preencode(d,o.header),e.fixed32.preencode(d,o.key),d.end++},encode(d,o){const n=(o.isModerator?1:0)|(o.isAdmin?2:0);Md.encode(d,o.header),e.fixed32.encode(d,o.key),e.uint.encode(d,n)},decode(d){const o=Md.decode(d),n=e.fixed32.decode(d),c=e.uint.decode(d);return{header:o,key:n,isModerator:!!(1&c),isAdmin:!!(2&c)}}},qd=de,Cd={preencode(d,o){qd.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){qd.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:qd.decode(d),key:e.fixed32.decode(d)})},Vd={preencode(d,o){e.fixed32.preencode(d,o.key),e.uint.preencode(d,o.mentions)},encode(d,o){e.fixed32.encode(d,o.key),e.uint.encode(d,o.mentions)},decode:d=>({key:e.fixed32.decode(d),mentions:e.uint.decode(d)})},Hd={preencode(d,o){d.end++,o.memberKey&&e.fixed32.preencode(d,o.memberKey)},encode(d,o){const n=o.memberKey?1:0;e.uint.encode(d,n),o.memberKey&&e.fixed32.encode(d,o.memberKey)},decode:d=>({memberKey:1&e.uint.decode(d)?e.fixed32.decode(d):null})},Dd=Hd,Ld=Hd,jd={preencode(d,o){d.end++,o.from&&e.string.preencode(d,o.from),o.to&&e.string.preencode(d,o.to)},encode(d,o){const n=(o.from?1:0)|(o.to?2:0);e.uint.encode(d,n),o.from&&e.string.encode(d,o.from),o.to&&e.string.encode(d,o.to)},decode(d){const o=e.uint.decode(d);return{from:1&o?e.string.decode(d):null,to:2&o?e.string.decode(d):null}}},Ed=e.frame(Hd),Bd=e.frame(Dd),zd=e.frame(jd),Od=e.frame(Ld),Nd={preencode(o,n){const c=(n.memberJoined?1:0)|(n.memberLeft?2:0)|(n.titleChanged?4:0)|(n.callStarted?8:0)|(n.callHangup?16:0)|(n.callMissed?32:0)|(n.roomAvatarChanged?64:0)|(n.invitationCreated?128:0)|(n.memberRemoved?256:0)|(d>=3&&n.locationShared?512:0);e.uint.preencode(o,c),n.memberJoined&&Ed.preencode(o,n.memberJoined),n.memberLeft&&Bd.preencode(o,n.memberLeft),n.titleChanged&&zd.preencode(o,n.titleChanged),n.memberRemoved&&Od.preencode(o,n.memberRemoved),d>=3&&n.locationShared&&Zu.preencode(o,n.locationShared)},encode(o,n){const c=(n.memberJoined?1:0)|(n.memberLeft?2:0)|(n.titleChanged?4:0)|(n.callStarted?8:0)|(n.callHangup?16:0)|(n.callMissed?32:0)|(n.roomAvatarChanged?64:0)|(n.invitationCreated?128:0)|(n.memberRemoved?256:0)|(d>=3&&n.locationShared?512:0);e.uint.encode(o,c),n.memberJoined&&Ed.encode(o,n.memberJoined),n.memberLeft&&Bd.encode(o,n.memberLeft),n.titleChanged&&zd.encode(o,n.titleChanged),n.memberRemoved&&Od.encode(o,n.memberRemoved),d>=3&&n.locationShared&&Zu.encode(o,n.locationShared)},decode(o){const n=e.uint.decode(o);return{memberJoined:1&n?Ed.decode(o):null,memberLeft:2&n?Bd.decode(o):null,titleChanged:4&n?zd.decode(o):null,callStarted:!!(8&n),callHangup:!!(16&n),callMissed:!!(32&n),roomAvatarChanged:!!(64&n),invitationCreated:!!(128&n),memberRemoved:256&n?Od.decode(o):null,locationShared:d>=3&&512&n?Zu.decode(o):null}}},Ud={preencode(e,o){e.end++,d>=3&&o.locationShared&&$u.preencode(e,o.locationShared)},encode(o,n){const c=(n.callStarted?1:0)|(n.callHangup?2:0)|(n.callMissed?4:0)|(d>=3&&n.locationShared?8:0);e.uint.encode(o,c),d>=3&&n.locationShared&&$u.encode(o,n.locationShared)},decode(o){const n=e.uint.decode(o);return{callStarted:!!(1&n),callHangup:!!(2&n),callMissed:!!(4&n),locationShared:d>=3&&8&n?$u.decode(o):null}}},Jd={preencode(d,o){e.uint.preencode(d,o.start),e.uint.preencode(d,o.length)},encode(d,o){e.uint.encode(d,o.start),e.uint.encode(d,o.length)},decode:d=>({start:e.uint.decode(d),length:e.uint.decode(d)})},Wd=e.frame(Jd),Gd={preencode(d,o){Wd.preencode(d,o.range),e.string.preencode(d,o.content)},encode(d,o){Wd.encode(d,o.range),e.string.encode(d,o.content)},decode:d=>({range:Wd.decode(d),content:e.string.decode(d)})},Qd=Wd,Xd={preencode(d,o){Qd.preencode(d,o.range),e.fixed32.preencode(d,o.memberKey)},encode(d,o){Qd.encode(d,o.range),e.fixed32.encode(d,o.memberKey)},decode:d=>({range:Qd.decode(d),memberKey:e.fixed32.decode(d)})},Yd=Wd,Zd={preencode(d,o){Yd.preencode(d,o.range),Y.preencode(d,o.language),e.string.preencode(d,o.text)},encode(d,o){Yd.encode(d,o.range),Y.encode(d,o.language),e.string.encode(d,o.text)},decode:d=>({range:Yd.decode(d),language:Y.decode(d),text:e.string.decode(d)})},$d=K,_d=e.array(e.uint),eo={preencode(d,o){d.end++,o.title&&e.string.preencode(d,o.title),o.description&&e.string.preencode(d,o.description),o.file&&$d.preencode(d,o.file),o.files&&_d.preencode(d,o.files)},encode(d,o){const n=(o.title?1:0)|(o.description?2:0)|(o.file?4:0)|(o.files?8:0);e.uint.encode(d,n),o.title&&e.string.encode(d,o.title),o.description&&e.string.encode(d,o.description),o.file&&$d.encode(d,o.file),o.files&&_d.encode(d,o.files)},decode(d){const o=e.uint.decode(d);return{title:1&o?e.string.decode(d):null,description:2&o?e.string.decode(d):null,file:4&o?$d.decode(d):null,files:8&o?_d.decode(d):null}}},oo=Wd,no=e.frame(eo),co={preencode(d,o){oo.preencode(d,o.range),e.string.preencode(d,o.url),d.end++,o.preview&&no.preencode(d,o.preview)},encode(d,o){const n=o.preview?1:0;oo.encode(d,o.range),e.string.encode(d,o.url),e.uint.encode(d,n),o.preview&&no.encode(d,o.preview)},decode:d=>({range:oo.decode(d),url:e.string.decode(d),preview:1&e.uint.decode(d)?no.decode(d):null})},ro=e.array(e.frame(Xd)),to=e.array(e.frame(co)),io=to,ao=e.array(e.frame(Jd)),so=ao,po=ao,uo=e.array(e.frame(Gd)),lo=ao,fo=ao,mo=e.array(e.frame(Zd)),yo={preencode(d,o){const n=(o.mention?1:0)|(o.httpLink?2:0)|(o.pearLink?4:0)|(o.bold?8:0)|(o.italic?16:0)|(o.code?32:0)|(o.emoji?64:0)|(o.codeBlock?128:0)|(o.strike?256:0)|(o.translation?512:0);e.uint.preencode(d,n),o.mention&&ro.preencode(d,o.mention),o.httpLink&&to.preencode(d,o.httpLink),o.pearLink&&io.preencode(d,o.pearLink),o.bold&&ao.preencode(d,o.bold),o.italic&&so.preencode(d,o.italic),o.code&&po.preencode(d,o.code),o.emoji&&uo.preencode(d,o.emoji),o.codeBlock&&lo.preencode(d,o.codeBlock),o.strike&&fo.preencode(d,o.strike),o.translation&&mo.preencode(d,o.translation)},encode(d,o){const n=(o.mention?1:0)|(o.httpLink?2:0)|(o.pearLink?4:0)|(o.bold?8:0)|(o.italic?16:0)|(o.code?32:0)|(o.emoji?64:0)|(o.codeBlock?128:0)|(o.strike?256:0)|(o.translation?512:0);e.uint.encode(d,n),o.mention&&ro.encode(d,o.mention),o.httpLink&&to.encode(d,o.httpLink),o.pearLink&&io.encode(d,o.pearLink),o.bold&&ao.encode(d,o.bold),o.italic&&so.encode(d,o.italic),o.code&&po.encode(d,o.code),o.emoji&&uo.encode(d,o.emoji),o.codeBlock&&lo.encode(d,o.codeBlock),o.strike&&fo.encode(d,o.strike),o.translation&&mo.encode(d,o.translation)},decode(d){const o=e.uint.decode(d);return{mention:1&o?ro.decode(d):null,httpLink:2&o?to.decode(d):null,pearLink:4&o?io.decode(d):null,bold:8&o?ao.decode(d):null,italic:16&o?so.decode(d):null,code:32&o?po.decode(d):null,emoji:64&o?uo.decode(d):null,codeBlock:128&o?lo.decode(d):null,strike:256&o?fo.decode(d):null,translation:512&o?mo.decode(d):null}}},xo=e.array(e.frame(g)),bo=e.frame(yo),vo=e.frame(Ud),go={preencode(d,o){d.end++,o.text&&e.string.preencode(d,o.text),o.files&&xo.preencode(d,o.files),o.display&&bo.preencode(d,o.display),o.replyTo&&n.preencode(d,o.replyTo),o.parent&&n.preencode(d,o.parent),o.event&&vo.preencode(d,o.event)},encode(o,c){const r=(c.text?1:0)|(c.files?2:0)|(c.display?4:0)|(c.replyTo?8:0)|(c.parent?16:0)|(c.event?32:0)|(d>=3&&c.forwarded?64:0);e.uint.encode(o,r),c.text&&e.string.encode(o,c.text),c.files&&xo.encode(o,c.files),c.display&&bo.encode(o,c.display),c.replyTo&&n.encode(o,c.replyTo),c.parent&&n.encode(o,c.parent),c.event&&vo.encode(o,c.event)},decode(o){const c=e.uint.decode(o);return{text:1&c?e.string.decode(o):null,files:2&c?xo.decode(o):null,display:4&c?bo.decode(o):null,replyTo:8&c?n.decode(o):null,parent:16&c?n.decode(o):null,event:32&c?vo.decode(o):null,forwarded:d>=3&&!!(64&c)}}},Ko=_d,ko=bo,ho={preencode(d,o){d.end++,o.text&&e.string.preencode(d,o.text),o.files&&Ko.preencode(d,o.files),o.display&&ko.preencode(d,o.display),o.replyTo&&n.preencode(d,o.replyTo),o.parent&&n.preencode(d,o.parent)},encode(o,c){const r=(c.text?1:0)|(c.files?2:0)|(c.display?4:0)|(c.replyTo?8:0)|(c.parent?16:0)|(d>=3&&c.forwarded?32:0);e.uint.encode(o,r),c.text&&e.string.encode(o,c.text),c.files&&Ko.encode(o,c.files),c.display&&ko.encode(o,c.display),c.replyTo&&n.encode(o,c.replyTo),c.parent&&n.encode(o,c.parent)},decode(o){const c=e.uint.decode(o);return{text:1&c?e.string.decode(o):null,files:2&c?Ko.decode(o):null,display:4&c?ko.decode(o):null,replyTo:8&c?n.decode(o):null,parent:16&c?n.decode(o):null,forwarded:d>=3&&!!(32&c)}}},wo=xo,Po=bo,Ro={preencode(d,o){d.end++,o.text&&e.string.preencode(d,o.text),o.files&&wo.preencode(d,o.files),o.display&&Po.preencode(d,o.display),o.replyTo&&n.preencode(d,o.replyTo),o.parent&&n.preencode(d,o.parent)},encode(o,c){const r=(c.text?1:0)|(c.files?2:0)|(c.display?4:0)|(c.replyTo?8:0)|(c.parent?16:0)|(d>=3&&c.forwarded?32:0);e.uint.encode(o,r),c.text&&e.string.encode(o,c.text),c.files&&wo.encode(o,c.files),c.display&&Po.encode(o,c.display),c.replyTo&&n.encode(o,c.replyTo),c.parent&&n.encode(o,c.parent)},decode(o){const c=e.uint.decode(o);return{text:1&c?e.string.decode(o):null,files:2&c?wo.decode(o):null,display:4&c?Po.decode(o):null,replyTo:8&c?n.decode(o):null,parent:16&c?n.decode(o):null,forwarded:d>=3&&!!(32&c)}}},To={preencode(e,d){e.end++},encode(d,o){const n=(o.isEdited?1:0)|(o.isDeleted?2:0)|(o.isPinned?4:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isEdited:!!(1&o),isDeleted:!!(2&o),isPinned:!!(4&o)}}},Ao={preencode(d,o){e.uint.preencode(d,o.thread),e.uint.preencode(d,o.index)},encode(d,o){e.uint.encode(d,o.thread),e.uint.encode(d,o.index)},decode:d=>({thread:e.uint.decode(d),index:e.uint.decode(d)})},So=e.frame(B),Io={preencode(d,o){e.uint.preencode(d,o.id),e.uint.preencode(d,o.count),d.end++,o.parent&&n.preencode(d,o.parent),o.stats&&So.preencode(d,o.stats)},encode(d,o){const c=(o.parent?1:0)|(o.stats?2:0);e.uint.encode(d,o.id),e.uint.encode(d,o.count),e.uint.encode(d,c),o.parent&&n.encode(d,o.parent),o.stats&&So.encode(d,o.stats)},decode(d){const o=e.uint.decode(d),c=e.uint.decode(d),r=e.uint.decode(d);return{id:o,count:c,parent:1&r?n.decode(d):null,stats:2&r?So.decode(d):null}}},Mo=e.frame(To),Fo=e.frame(ho),qo=e.frame(Nd),Co={preencode(d,o){Ao.preencode(d,o.id),n.preencode(d,o.oplog),e.uint.preencode(d,o.clock),e.uint.preencode(d,o.timestamp),d.end++,o.editedAt&&e.uint.preencode(d,o.editedAt),Mo.preencode(d,o.status),o.message&&Fo.preencode(d,o.message),o.event&&qo.preencode(d,o.event)},encode(d,o){const c=(o.editedAt?1:0)|(o.message?2:0)|(o.event?4:0);Ao.encode(d,o.id),n.encode(d,o.oplog),e.uint.encode(d,o.clock),e.uint.encode(d,o.timestamp),e.uint.encode(d,c),o.editedAt&&e.uint.encode(d,o.editedAt),Mo.encode(d,o.status),o.message&&Fo.encode(d,o.message),o.event&&qo.encode(d,o.event)},decode(d){const o=Ao.decode(d),c=n.decode(d),r=e.uint.decode(d),t=e.uint.decode(d),i=e.uint.decode(d);return{id:o,oplog:c,clock:r,timestamp:t,editedAt:1&i?e.uint.decode(d):0,status:Mo.decode(d),message:2&i?Fo.decode(d):null,event:4&i?qo.decode(d):null}}},Vo=Mo,Ho=e.frame(Ro),Do=qo,Lo={preencode(d,o){Ao.preencode(d,o.id),n.preencode(d,o.oplog),e.uint.preencode(d,o.clock),e.uint.preencode(d,o.timestamp),d.end++,o.editedAt&&e.uint.preencode(d,o.editedAt),Vo.preencode(d,o.status),o.message&&Ho.preencode(d,o.message),o.event&&Do.preencode(d,o.event)},encode(d,o){const c=(o.editedAt?1:0)|(o.message?2:0)|(o.event?4:0);Ao.encode(d,o.id),n.encode(d,o.oplog),e.uint.encode(d,o.clock),e.uint.encode(d,o.timestamp),e.uint.encode(d,c),o.editedAt&&e.uint.encode(d,o.editedAt),Vo.encode(d,o.status),o.message&&Ho.encode(d,o.message),o.event&&Do.encode(d,o.event)},decode(d){const o=Ao.decode(d),c=n.decode(d),r=e.uint.decode(d),t=e.uint.decode(d),i=e.uint.decode(d);return{id:o,oplog:c,clock:r,timestamp:t,editedAt:1&i?e.uint.decode(d):0,status:Vo.decode(d),message:2&i?Ho.decode(d):null,event:4&i?Do.decode(d):null}}},jo=de,Eo=e.frame(go),Bo={preencode(e,d){jo.preencode(e,d.header),Eo.preencode(e,d.message)},encode(e,d){jo.encode(e,d.header),Eo.encode(e,d.message)},decode:e=>({header:jo.decode(e),message:Eo.decode(e)})},zo=de,Oo={preencode(e,d){zo.preencode(e,d.header),n.preencode(e,d.oplog)},encode(e,d){zo.encode(e,d.header),n.encode(e,d.oplog)},decode:e=>({header:zo.decode(e),oplog:n.decode(e)})},No=de,Uo=Eo,Jo={preencode(e,d){No.preencode(e,d.header),n.preencode(e,d.oplog),Uo.preencode(e,d.message)},encode(e,d){No.encode(e,d.header),n.encode(e,d.oplog),Uo.encode(e,d.message)},decode:e=>({header:No.decode(e),oplog:n.decode(e),message:Uo.decode(e)})},Wo=de,Go={preencode(e,d){Wo.preencode(e,d.header),n.preencode(e,d.oplog),e.end++},encode(d,o){const c=o.isPinned?1:0;Wo.encode(d,o.header),n.encode(d,o.oplog),e.uint.encode(d,c)},decode:d=>({header:Wo.decode(d),oplog:n.decode(d),isPinned:!!(1&e.uint.decode(d))})},Qo={HttpLink:1,PearLink:2},Xo={preencode(e,d){e.end++},encode(d,o){if(o>2)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},Yo=de,Zo={preencode(d,o){Yo.preencode(d,o.header),n.preencode(d,o.oplog),e.uint.preencode(d,o.index),_u.preencode(d,o.preview),d.end++,o.displayType&&Xo.preencode(d,o.displayType)},encode(d,o){const c=o.displayType?1:0;Yo.encode(d,o.header),n.encode(d,o.oplog),e.uint.encode(d,o.index),_u.encode(d,o.preview),e.uint.encode(d,c),o.displayType&&Xo.encode(d,o.displayType)},decode:d=>({header:Yo.decode(d),oplog:n.decode(d),index:e.uint.decode(d),preview:_u.decode(d),displayType:1&e.uint.decode(d)?Xo.decode(d):0})},$o={preencode(d,o){Ao.preencode(d,o.id),e.fixed32.preencode(d,o.sender),e.uint.preencode(d,o.clock),e.string.preencode(d,o.reaction)},encode(d,o){Ao.encode(d,o.id),e.fixed32.encode(d,o.sender),e.uint.encode(d,o.clock),e.string.encode(d,o.reaction)},decode:d=>({id:Ao.decode(d),sender:e.fixed32.decode(d),clock:e.uint.decode(d),reaction:e.string.decode(d)})},_o={preencode(d,o){e.string.preencode(d,o.text),e.uint.preencode(d,o.count)},encode(d,o){e.string.encode(d,o.text),e.uint.encode(d,o.count)},decode:d=>({text:e.string.decode(d),count:e.uint.decode(d)})},en=e.array(e.frame(_o)),dn={preencode(d,o){Ao.preencode(d,o.id),e.uint.preencode(d,o.total),en.preencode(d,o.reactions),d.end++,o.editedAt&&e.uint.preencode(d,o.editedAt)},encode(d,o){const n=o.editedAt?1:0;Ao.encode(d,o.id),e.uint.encode(d,o.total),en.encode(d,o.reactions),e.uint.encode(d,n),o.editedAt&&e.uint.encode(d,o.editedAt)},decode:d=>({id:Ao.decode(d),total:e.uint.decode(d),reactions:en.decode(d),editedAt:1&e.uint.decode(d)?e.uint.decode(d):0})},on=de,nn={preencode(d,o){on.preencode(d,o.header),n.preencode(d,o.oplog),e.string.preencode(d,o.reaction)},encode(d,o){on.encode(d,o.header),n.encode(d,o.oplog),e.string.encode(d,o.reaction)},decode:d=>({header:on.decode(d),oplog:n.decode(d),reaction:e.string.decode(d)})},cn=de,rn={preencode(d,o){cn.preencode(d,o.header),n.preencode(d,o.oplog),e.string.preencode(d,o.reaction)},encode(d,o){cn.encode(d,o.header),n.encode(d,o.oplog),e.string.encode(d,o.reaction)},decode:d=>({header:cn.decode(d),oplog:n.decode(d),reaction:e.string.decode(d)})},tn=de,an=e.frame(_),sn={preencode(d,o){tn.preencode(d,o.header),e.uint.preencode(d,o.key),an.preencode(d,o.config)},encode(d,o){tn.encode(d,o.header),e.uint.encode(d,o.key),an.encode(d,o.config)},decode:d=>({header:tn.decode(d),key:e.uint.decode(d),config:an.decode(d)})},pn={preencode(d,o){e.fixed32.preencode(d,o.memberKey),e.string.preencode(d,o.displayName),d.end++,o.avatar&&el.preencode(d,o.avatar)},encode(d,o){const n=o.avatar?1:0;e.fixed32.encode(d,o.memberKey),e.string.encode(d,o.displayName),e.uint.encode(d,n),o.avatar&&el.encode(d,o.avatar)},decode:d=>({memberKey:e.fixed32.decode(d),displayName:e.string.decode(d),avatar:1&e.uint.decode(d)?el.decode(d):null})},un={preencode(d,o){e.fixed32.preencode(d,o.key),d.end++,o.username&&e.string.preencode(d,o.username)},encode(d,o){const n=o.username?1:0;e.fixed32.encode(d,o.key),e.uint.encode(d,n),o.username&&e.string.encode(d,o.username)},decode:d=>({key:e.fixed32.decode(d),username:1&e.uint.decode(d)?e.string.decode(d):null})},ln=e.frame(un),fn={preencode(d,o){e.fixed32.preencode(d,o.publicKey),d.end++,o.discoveryCoreKey&&e.fixed32.preencode(d,o.discoveryCoreKey),o.userRegistry&&ln.preencode(d,o.userRegistry)},encode(d,o){const n=(o.discoveryCoreKey?1:0)|(o.userRegistry?2:0);e.fixed32.encode(d,o.publicKey),e.uint.encode(d,n),o.discoveryCoreKey&&e.fixed32.encode(d,o.discoveryCoreKey),o.userRegistry&&ln.encode(d,o.userRegistry)},decode(d){const o=e.fixed32.decode(d),n=e.uint.decode(d);return{publicKey:o,discoveryCoreKey:1&n?e.fixed32.decode(d):null,userRegistry:2&n?ln.decode(d):null}}},mn=de,yn=e.frame(W),xn=e.frame(G),bn=an,vn=e.frame(fn),gn=he,Kn=e.array(e.frame(me)),kn={preencode(e,d){mn.preencode(e,d.header),yn.preencode(e,d.digest),xn.preencode(e,d.capabilities),e.end++,d.config&&bn.preencode(e,d.config),d.identity&&vn.preencode(e,d.identity),d.bootstrapDevice&&gn.preencode(e,d.bootstrapDevice),d.initialMembers&&Kn.preencode(e,d.initialMembers)},encode(d,o){const n=(o.config?1:0)|(o.identity?2:0)|(o.bootstrapDevice?4:0)|(o.initialMembers?8:0);mn.encode(d,o.header),yn.encode(d,o.digest),xn.encode(d,o.capabilities),e.uint.encode(d,n),o.config&&bn.encode(d,o.config),o.identity&&vn.encode(d,o.identity),o.bootstrapDevice&&gn.encode(d,o.bootstrapDevice),o.initialMembers&&Kn.encode(d,o.initialMembers)},decode(d){const o=mn.decode(d),n=yn.decode(d),c=xn.decode(d),r=e.uint.decode(d);return{header:o,digest:n,capabilities:c,config:1&r?bn.decode(d):null,identity:2&r?vn.decode(d):null,bootstrapDevice:4&r?gn.decode(d):null,initialMembers:8&r?Kn.decode(d):null}}},hn=de,wn={preencode(d,o){hn.preencode(d,o.header),e.uint.preencode(d,o.version)},encode(d,o){hn.encode(d,o.header),e.uint.encode(d,o.version)},decode:d=>({header:hn.decode(d),version:e.uint.decode(d)})},Pn=de,Rn={preencode(o,n){Pn.preencode(o,n.header),e.uint.preencode(o,n.from),e.uint.preencode(o,n.to),o.end++,d>=5&&n.buildType&&Dp.preencode(o,n.buildType)},encode(o,n){const c=d>=5&&n.buildType?1:0;Pn.encode(o,n.header),e.uint.encode(o,n.from),e.uint.encode(o,n.to),e.uint.encode(o,c),d>=5&&n.buildType&&Dp.encode(o,n.buildType)},decode(o){const n=Pn.decode(o),c=e.uint.decode(o),r=e.uint.decode(o),t=o.start<o.end?e.uint.decode(o):0;return{header:n,from:c,to:r,buildType:d>=5&&1&t?Dp.decode(o):null}}},Tn={RoomType:1,IsExperimental:2,IsJoiningDisabled:3,IsAppendingDisabled:4,IsCallingDisabled:5,IsMembershipEventsDisabled:6,IsAttachmentsDisabled:7,IsLinksDisabled:8,IsRoomInviteHidden:9},An={preencode(e,d){e.end++},encode(d,o){if(o>9)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},Sn=de,In=J,Mn={preencode(d,o){Sn.preencode(d,o.header),e.uint.preencode(d,o.key),In.preencode(d,o.settings)},encode(d,o){Sn.encode(d,o.header),e.uint.encode(d,o.key),In.encode(d,o.settings)},decode:d=>({header:Sn.decode(d),key:e.uint.decode(d),settings:In.decode(d)})},Fn=de,qn={preencode(d,o){Fn.preencode(d,o.header),e.uint.preencode(d,o.value)},encode(d,o){Fn.encode(d,o.header),e.uint.encode(d,o.value)},decode:d=>({header:Fn.decode(d),value:e.uint.decode(d)})},Cn={preencode(d,o){e.uint.preencode(d,o.key),e.uint.preencode(d,o.value)},encode(d,o){e.uint.encode(d,o.key),e.uint.encode(d,o.value)},decode:d=>({key:e.uint.decode(d),value:e.uint.decode(d)})},Vn={Flag:1},Hn={preencode(e,d){e.end++},encode(d,o){if(o>1)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},Dn={preencode(d,o){Ao.preencode(d,o.id),e.fixed32.preencode(d,o.sender),e.uint.preencode(d,o.clock),Hn.preencode(d,o.label)},encode(d,o){Ao.encode(d,o.id),e.fixed32.encode(d,o.sender),e.uint.encode(d,o.clock),Hn.encode(d,o.label)},decode:d=>({id:Ao.decode(d),sender:e.fixed32.decode(d),clock:e.uint.decode(d),label:Hn.decode(d)})},Ln=de,jn={preencode(e,d){Ln.preencode(e,d.header),n.preencode(e,d.oplog),Hn.preencode(e,d.label)},encode(e,d){Ln.encode(e,d.header),n.encode(e,d.oplog),Hn.encode(e,d.label)},decode:e=>({header:Ln.decode(e),oplog:n.decode(e),label:Hn.decode(e)})},En=de,Bn={preencode(e,d){En.preencode(e,d.header),n.preencode(e,d.oplog),Hn.preencode(e,d.label)},encode(e,d){En.encode(e,d.header),n.encode(e,d.oplog),Hn.encode(e,d.label)},decode:e=>({header:En.decode(e),oplog:n.decode(e),label:Hn.decode(e)})},zn={preencode(d,o){Hn.preencode(d,o.label),e.uint.preencode(d,o.count)},encode(d,o){Hn.encode(d,o.label),e.uint.encode(d,o.count)},decode:d=>({label:Hn.decode(d),count:e.uint.decode(d)})},On=e.array(e.frame(zn)),Nn={preencode(d,o){Ao.preencode(d,o.id),e.uint.preencode(d,o.total),On.preencode(d,o.labels),e.uint.preencode(d,o.editedAt),d.end++,o.flagsClock&&e.uint.preencode(d,o.flagsClock),o.version&&e.uint.preencode(d,o.version)},encode(d,o){const n=(o.flagsClock?1:0)|(o.version?2:0)|(o.isDeleted?4:0);Ao.encode(d,o.id),e.uint.encode(d,o.total),On.encode(d,o.labels),e.uint.encode(d,o.editedAt),e.uint.encode(d,n),o.flagsClock&&e.uint.encode(d,o.flagsClock),o.version&&e.uint.encode(d,o.version)},decode(d){const o=Ao.decode(d),n=e.uint.decode(d),c=On.decode(d),r=e.uint.decode(d),t=e.uint.decode(d);return{id:o,total:n,labels:c,editedAt:r,flagsClock:1&t?e.uint.decode(d):0,version:2&t?e.uint.decode(d):0,isDeleted:!!(4&t)}}},Un=de,Jn={preencode(d,o){Un.preencode(d,o.header),e.uint.preencode(d,o.length)},encode(d,o){Un.encode(d,o.header),e.uint.encode(d,o.length)},decode:d=>({header:Un.decode(d),length:e.uint.decode(d)})},Wn={preencode(d,o){e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.length)},encode(d,o){e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.length)},decode:d=>({memberKey:e.fixed32.decode(d),length:e.uint.decode(d)})},Gn=ee,Qn=e.frame(be),Xn={preencode(o,n){e.fixed32.preencode(o,n.memberKey),dl.preencode(o,n.status),o.end++,n.mailbox&&e.fixed32.preencode(o,n.mailbox),n.roomKey&&e.fixed32.preencode(o,n.roomKey),d>=8&&n.contactInfo&&Qn.preencode(o,n.contactInfo),d>=8&&n.version&&e.uint.preencode(o,n.version),d>=10&&n.alias&&e.string.preencode(o,n.alias)},encode(o,n){const c=(n.mailbox?1:0)|(n.roomKey?2:0)|(d>=8&&n.contactInfo?4:0)|(d>=8&&n.version?8:0)|(d>=10&&n.alias?16:0);e.fixed32.encode(o,n.memberKey),dl.encode(o,n.status),e.uint.encode(o,c),n.mailbox&&e.fixed32.encode(o,n.mailbox),n.roomKey&&e.fixed32.encode(o,n.roomKey),d>=8&&n.contactInfo&&Qn.encode(o,n.contactInfo),d>=8&&n.version&&e.uint.encode(o,n.version),d>=10&&n.alias&&e.string.encode(o,n.alias)},decode(o){const n=e.fixed32.decode(o),c=dl.decode(o),r=e.uint.decode(o);return{memberKey:n,status:c,mailbox:1&r?e.fixed32.decode(o):null,roomKey:2&r?e.fixed32.decode(o):null,contactInfo:d>=8&&4&r?Qn.decode(o):null,version:d>=8&&8&r?e.uint.decode(o):0,alias:d>=10&&16&r?e.string.decode(o):null}}},Yn={preencode(d,n){e.fixed32.preencode(d,n.roomKey),e.buffer.preencode(d,n.encryptionKey),e.fixed32.preencode(d,n.seed),o.preencode(d,n.initiator),e.fixed32.preencode(d,n.fastForwardTo)},encode(d,n){e.fixed32.encode(d,n.roomKey),e.buffer.encode(d,n.encryptionKey),e.fixed32.encode(d,n.seed),o.encode(d,n.initiator),e.fixed32.encode(d,n.fastForwardTo)},decode:d=>({roomKey:e.fixed32.decode(d),encryptionKey:e.buffer.decode(d),seed:e.fixed32.decode(d),initiator:o.decode(d),fastForwardTo:e.fixed32.decode(d)})},Zn=e.array(e.frame(Yn)),$n=$,_n={preencode(e,d){Zn.preencode(e,d.sharedRooms),$n.preencode(e,d.blockedContacts)},encode(e,d){Zn.encode(e,d.sharedRooms),$n.encode(e,d.blockedContacts)},decode:e=>({sharedRooms:Zn.decode(e),blockedContacts:$n.decode(e)})},ec=vn,dc={preencode(e,d){ec.preencode(e,d.identity)},encode(e,d){ec.encode(e,d.identity)},decode:e=>({identity:ec.decode(e)})},oc={preencode(d,o){e.uint.preencode(d,o.rooms),e.uint.preencode(d,o.contacts)},encode(d,o){e.uint.encode(d,o.rooms),e.uint.encode(d,o.contacts)},decode:d=>({rooms:e.uint.decode(d),contacts:e.uint.decode(d)})},nc={preencode(d,o){e.uint.preencode(d,o.rooms),e.uint.preencode(d,o.contactRequests)},encode(d,o){e.uint.encode(d,o.rooms),e.uint.encode(d,o.contactRequests)},decode:d=>({rooms:e.uint.decode(d),contactRequests:e.uint.decode(d)})},cc={preencode(d,o){e.buffer.preencode(d,o.entropy)},encode(d,o){e.buffer.encode(d,o.entropy)},decode:d=>({entropy:e.buffer.decode(d)})},rc={preencode(d,o){e.fixed32.preencode(d,o.publicKey),e.fixed32.preencode(d,o.devicePublicKey),e.fixed32.preencode(d,o.writerKey)},encode(d,o){e.fixed32.encode(d,o.publicKey),e.fixed32.encode(d,o.devicePublicKey),e.fixed32.encode(d,o.writerKey)},decode:d=>({publicKey:e.fixed32.decode(d),devicePublicKey:e.fixed32.decode(d),writerKey:e.fixed32.decode(d)})},tc=e.frame(rc),ic={preencode(n,c){e.fixed32.preencode(n,c.id),e.fixed32.preencode(n,c.invitationSeed),e.fixed32.preencode(n,c.mailbox),r.preencode(n,c.responseKeyPair),o.preencode(n,c.initiator),o.preencode(n,c.inviter),n.end++,c.identity&&tc.preencode(n,c.identity),d>=5&&c.buildType&&Dp.preencode(n,c.buildType),d>=13&&c.link&&o.preencode(n,c.link)},encode(n,c){const t=(c.identity?1:0)|(d>=5&&c.buildType?2:0)|(d>=13&&c.link?4:0);e.fixed32.encode(n,c.id),e.fixed32.encode(n,c.invitationSeed),e.fixed32.encode(n,c.mailbox),r.encode(n,c.responseKeyPair),o.encode(n,c.initiator),o.encode(n,c.inviter),e.uint.encode(n,t),c.identity&&tc.encode(n,c.identity),d>=5&&c.buildType&&Dp.encode(n,c.buildType),d>=13&&c.link&&o.encode(n,c.link)},decode(n){const c=e.fixed32.decode(n),t=e.fixed32.decode(n),i=e.fixed32.decode(n),a=r.decode(n),s=o.decode(n),p=o.decode(n),u=e.uint.decode(n);return{id:c,invitationSeed:t,mailbox:i,responseKeyPair:a,initiator:s,inviter:p,identity:1&u?tc.decode(n):null,buildType:d>=5&&2&u?Dp.decode(n):null,link:d>=13&&4&u?o.decode(n):null}}},ac=de,sc={preencode(d,o){ac.preencode(d,o.header),e.buffer.preencode(d,o.blindResponse)},encode(d,o){ac.encode(d,o.header),e.buffer.encode(d,o.blindResponse)},decode:d=>({header:ac.decode(d),blindResponse:e.buffer.decode(d)})},pc=de,uc=e.frame(ic),lc={preencode(e,d){pc.preencode(e,d.header),uc.preencode(e,d.invitation)},encode(e,d){pc.encode(e,d.header),uc.encode(e,d.invitation)},decode:e=>({header:pc.decode(e),invitation:uc.decode(e)})},fc=de,mc={preencode(d,o){fc.preencode(d,o.header),e.fixed32.preencode(d,o.id)},encode(d,o){fc.encode(d,o.header),e.fixed32.encode(d,o.id)},decode:d=>({header:fc.decode(d),id:e.fixed32.decode(d)})},yc={preencode(d,o){e.fixed32.preencode(d,o.publicKey),e.fixed32.preencode(d,o.devicePublicKey),d.end++,o.privateProfileKey&&e.fixed32.preencode(d,o.privateProfileKey),o.deviceKeyPair&&r.preencode(d,o.deviceKeyPair),e.buffer.preencode(d,o.deviceProof)},encode(d,o){const n=(o.privateProfileKey?1:0)|(o.deviceKeyPair?2:0);e.fixed32.encode(d,o.publicKey),e.fixed32.encode(d,o.devicePublicKey),e.uint.encode(d,n),o.privateProfileKey&&e.fixed32.encode(d,o.privateProfileKey),o.deviceKeyPair&&r.encode(d,o.deviceKeyPair),e.buffer.encode(d,o.deviceProof)},decode(d){const o=e.fixed32.decode(d),n=e.fixed32.decode(d),c=e.uint.decode(d);return{publicKey:o,devicePublicKey:n,privateProfileKey:1&c?e.fixed32.decode(d):null,deviceKeyPair:2&c?r.decode(d):null,deviceProof:e.buffer.decode(d)}}},xc={preencode(d,o){e.fixed32.preencode(d,o.publicKey),e.fixed32.preencode(d,o.writerKey),e.fixed32.preencode(d,o.devicePublicKey),d.end++,o.privateProfileKey&&e.fixed32.preencode(d,o.privateProfileKey)},encode(d,o){const n=o.privateProfileKey?1:0;e.fixed32.encode(d,o.publicKey),e.fixed32.encode(d,o.writerKey),e.fixed32.encode(d,o.devicePublicKey),e.uint.encode(d,n),o.privateProfileKey&&e.fixed32.encode(d,o.privateProfileKey)},decode:d=>({publicKey:e.fixed32.decode(d),writerKey:e.fixed32.decode(d),devicePublicKey:e.fixed32.decode(d),privateProfileKey:1&e.uint.decode(d)?e.fixed32.decode(d):null})},bc={preencode(o,n){o.end++,d>=11&&n.roomSnoozeTime&&e.uint.preencode(o,n.roomSnoozeTime)},encode(o,n){const c=(n.isActive?1:0)|(n.isFullyMuted?2:0)|(n.isMentionsOnlyMuted?4:0)|(n.isReadOnly?8:0)|(d>=3&&n.isFavorite?16:0)|(d>=7&&n.isUnread?32:0)|(d>=11&&n.roomSnoozeTime?64:0);e.uint.encode(o,c),d>=11&&n.roomSnoozeTime&&e.uint.encode(o,n.roomSnoozeTime)},decode(o){const n=e.uint.decode(o);return{isActive:!!(1&n),isFullyMuted:!!(2&n),isMentionsOnlyMuted:!!(4&n),isReadOnly:!!(8&n),isFavorite:d>=3&&!!(16&n),isUnread:d>=7&&!!(32&n),roomSnoozeTime:d>=11&&64&n?e.uint.decode(o):0}}},vc=e.frame(bc),gc=e.frame(yc),Kc=tc,kc={preencode(n,c){e.fixed32.preencode(n,c.roomKey),e.buffer.preencode(n,c.encryptionKey),e.fixed32.preencode(n,c.mailbox),vc.preencode(n,c.status),e.uint.preencode(n,c.clock),n.end++,c.initiator&&o.preencode(n,c.initiator),c.fastForwardTo&&e.fixed32.preencode(n,c.fastForwardTo),c.identitySwap&&gc.preencode(n,c.identitySwap),c.identitySwapV2&&Kc.preencode(n,c.identitySwapV2),c.contact&&e.fixed32.preencode(n,c.contact),d>=13&&c.bootFrom&&o.preencode(n,c.bootFrom),d>=15&&c.activeClock&&e.uint.preencode(n,c.activeClock)},encode(n,c){const r=(c.initiator?1:0)|(c.fastForwardTo?2:0)|(c.identitySwap?4:0)|(c.identitySwapV2?8:0)|(c.contact?16:0)|(d>=13&&c.bootFrom?32:0)|(d>=15&&c.activeClock?64:0);e.fixed32.encode(n,c.roomKey),e.buffer.encode(n,c.encryptionKey),e.fixed32.encode(n,c.mailbox),vc.encode(n,c.status),e.uint.encode(n,c.clock),e.uint.encode(n,r),c.initiator&&o.encode(n,c.initiator),c.fastForwardTo&&e.fixed32.encode(n,c.fastForwardTo),c.identitySwap&&gc.encode(n,c.identitySwap),c.identitySwapV2&&Kc.encode(n,c.identitySwapV2),c.contact&&e.fixed32.encode(n,c.contact),d>=13&&c.bootFrom&&o.encode(n,c.bootFrom),d>=15&&c.activeClock&&e.uint.encode(n,c.activeClock)},decode(n){const c=e.fixed32.decode(n),r=e.buffer.decode(n),t=e.fixed32.decode(n),i=vc.decode(n),a=e.uint.decode(n),s=e.uint.decode(n);return{roomKey:c,encryptionKey:r,mailbox:t,status:i,clock:a,initiator:1&s?o.decode(n):null,fastForwardTo:2&s?e.fixed32.decode(n):null,identitySwap:4&s?gc.decode(n):null,identitySwapV2:8&s?Kc.decode(n):null,contact:16&s?e.fixed32.decode(n):null,bootFrom:d>=13&&32&s?o.decode(n):null,activeClock:d>=15&&64&s?e.uint.decode(n):0}}},hc=de,wc={preencode(d,n){hc.preencode(d,n.header),e.fixed32.preencode(d,n.roomKey),e.buffer.preencode(d,n.encryptionKey),e.fixed32.preencode(d,n.mailbox),d.end++,n.fastForwardTo&&e.fixed32.preencode(d,n.fastForwardTo),n.initiator&&o.preencode(d,n.initiator),n.dm&&e.fixed32.preencode(d,n.dm)},encode(d,n){const c=(n.fastForwardTo?1:0)|(n.initiator?2:0)|(n.dm?4:0)|(n.isReadOnly?8:0);hc.encode(d,n.header),e.fixed32.encode(d,n.roomKey),e.buffer.encode(d,n.encryptionKey),e.fixed32.encode(d,n.mailbox),e.uint.encode(d,c),n.fastForwardTo&&e.fixed32.encode(d,n.fastForwardTo),n.initiator&&o.encode(d,n.initiator),n.dm&&e.fixed32.encode(d,n.dm)},decode(d){const n=hc.decode(d),c=e.fixed32.decode(d),r=e.buffer.decode(d),t=e.fixed32.decode(d),i=e.uint.decode(d);return{header:n,roomKey:c,encryptionKey:r,mailbox:t,fastForwardTo:1&i?e.fixed32.decode(d):null,initiator:2&i?o.decode(d):null,dm:4&i?e.fixed32.decode(d):null,isReadOnly:!!(8&i)}}},Pc=de,Rc={preencode(d,o){Pc.preencode(d,o.header),e.fixed32.preencode(d,o.discoveryKey)},encode(d,o){Pc.encode(d,o.header),e.fixed32.encode(d,o.discoveryKey)},decode:d=>({header:Pc.decode(d),discoveryKey:e.fixed32.decode(d)})},Tc=de,Ac=vc,Sc={preencode(d,o){Tc.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey),e.uint.preencode(d,o.key),Ac.preencode(d,o.status)},encode(d,o){Tc.encode(d,o.header),e.fixed32.encode(d,o.roomKey),e.uint.encode(d,o.key),Ac.encode(d,o.status)},decode:d=>({header:Tc.decode(d),roomKey:e.fixed32.decode(d),key:e.uint.decode(d),status:Ac.decode(d)})},Ic={preencode(e,d){e.end++},encode(o,n){const c=(n.isBlocked?1:0)|(d>=8&&n.isActive?2:0);e.uint.encode(o,c)},decode(o){const n=e.uint.decode(o);return{isBlocked:!!(1&n),isActive:d>=8&&!!(2&n)}}},Mc=Qn,Fc={preencode(o,n){e.fixed32.preencode(o,n.memberKey),e.uint.preencode(o,n.clock),ol.preencode(o,n.status),o.end++,n.mailbox&&e.fixed32.preencode(o,n.mailbox),n.roomKey&&e.fixed32.preencode(o,n.roomKey),d>=8&&n.contactInfo&&Mc.preencode(o,n.contactInfo),d>=10&&n.alias&&e.string.preencode(o,n.alias)},encode(o,n){const c=(n.mailbox?1:0)|(n.roomKey?2:0)|(d>=8&&n.contactInfo?4:0)|(d>=10&&n.alias?8:0);e.fixed32.encode(o,n.memberKey),e.uint.encode(o,n.clock),ol.encode(o,n.status),e.uint.encode(o,c),n.mailbox&&e.fixed32.encode(o,n.mailbox),n.roomKey&&e.fixed32.encode(o,n.roomKey),d>=8&&n.contactInfo&&Mc.encode(o,n.contactInfo),d>=10&&n.alias&&e.string.encode(o,n.alias)},decode(o){const n=e.fixed32.decode(o),c=e.uint.decode(o),r=ol.decode(o),t=e.uint.decode(o);return{memberKey:n,clock:c,status:r,mailbox:1&t?e.fixed32.decode(o):null,roomKey:2&t?e.fixed32.decode(o):null,contactInfo:d>=8&&4&t?Mc.decode(o):null,alias:d>=10&&8&t?e.string.decode(o):null}}},qc=de,Cc=e.frame(Xn),Vc={preencode(e,d){qc.preencode(e,d.header),Cc.preencode(e,d.contact)},encode(e,d){qc.encode(e,d.header),Cc.encode(e,d.contact)},decode:e=>({header:qc.decode(e),contact:Cc.decode(e)})},Hc=de,Dc={preencode(d,o){Hc.preencode(d,o.header),e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.key),nl.preencode(d,o.status)},encode(d,o){Hc.encode(d,o.header),e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.key),nl.encode(d,o.status)},decode:d=>({header:Hc.decode(d),memberKey:e.fixed32.decode(d),key:e.uint.decode(d),status:nl.decode(d)})},Lc=de,jc={preencode(d,o){Lc.preencode(d,o.header),e.fixed32.preencode(d,o.memberKey)},encode(d,o){Lc.encode(d,o.header),e.fixed32.encode(d,o.memberKey)},decode:d=>({header:Lc.decode(d),memberKey:e.fixed32.decode(d)})},Ec=de,Bc={preencode(d,o){Ec.preencode(d,o.header),e.fixed32.preencode(d,o.memberKey)},encode(d,o){Ec.encode(d,o.header),e.fixed32.encode(d,o.memberKey)},decode:d=>({header:Ec.decode(d),memberKey:e.fixed32.decode(d)})},zc={preencode(e,d){e.end++},encode(d,o){const n=(o.isPending?1:0)|(o.isAccepted?2:0)|(o.isRejected?4:0)|(o.isDiscarded?8:0)|(o.isSeen?16:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isPending:!!(1&o),isAccepted:!!(2&o),isRejected:!!(4&o),isDiscarded:!!(8&o),isSeen:!!(16&o)}}},Oc=we,Nc=e.frame(t),Uc={preencode(d,o){Oc.preencode(d,o.sender),Nc.preencode(d,o.keys),e.fixed32.preencode(d,o.mailbox),d.end++,o.message&&e.string.preencode(d,o.message)},encode(d,o){const n=o.message?1:0;Oc.encode(d,o.sender),Nc.encode(d,o.keys),e.fixed32.encode(d,o.mailbox),e.uint.encode(d,n),o.message&&e.string.encode(d,o.message)},decode:d=>({sender:Oc.decode(d),keys:Nc.decode(d),mailbox:e.fixed32.decode(d),message:1&e.uint.decode(d)?e.string.decode(d):null})},Jc=e.frame(Uc),Wc={preencode(e,d){Jc.preencode(e,d.body),te.preencode(e,d.attestation)},encode(e,d){Jc.encode(e,d.body),te.encode(e,d.attestation)},decode:e=>({body:Jc.decode(e),attestation:te.decode(e)})},Gc=fe,Qc=e.frame(zc),Xc=Nc,Yc=Qn,Zc={preencode(o,n){e.fixed32.preencode(o,n.memberKey),e.uint.preencode(o,n.clock),Gc.preencode(o,n.sender),Qc.preencode(o,n.status),Xc.preencode(o,n.keys),e.fixed32.preencode(o,n.mailbox),o.end++,n.message&&e.string.preencode(o,n.message),n.sentAt&&e.uint.preencode(o,n.sentAt),d>=8&&n.contactInfo&&Yc.preencode(o,n.contactInfo)},encode(o,n){const c=(n.message?1:0)|(n.sentAt?2:0)|(d>=8&&n.contactInfo?4:0);e.fixed32.encode(o,n.memberKey),e.uint.encode(o,n.clock),Gc.encode(o,n.sender),Qc.encode(o,n.status),Xc.encode(o,n.keys),e.fixed32.encode(o,n.mailbox),e.uint.encode(o,c),n.message&&e.string.encode(o,n.message),n.sentAt&&e.uint.encode(o,n.sentAt),d>=8&&n.contactInfo&&Yc.encode(o,n.contactInfo)},decode(o){const n=e.fixed32.decode(o),c=e.uint.decode(o),r=Gc.decode(o),t=Qc.decode(o),i=Xc.decode(o),a=e.fixed32.decode(o),s=e.uint.decode(o);return{memberKey:n,clock:c,sender:r,status:t,keys:i,mailbox:a,message:1&s?e.string.decode(o):null,sentAt:2&s?e.uint.decode(o):0,contactInfo:d>=8&&4&s?Yc.decode(o):null}}},$c=de,_c={preencode(d,o){$c.preencode(d,o.header),e.buffer.preencode(d,o.blindRequest)},encode(d,o){$c.encode(d,o.header),e.buffer.encode(d,o.blindRequest)},decode:d=>({header:$c.decode(d),blindRequest:e.buffer.decode(d)})},er=de,dr=Qc,or={preencode(d,o){er.preencode(d,o.header),e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.key),dr.preencode(d,o.status),d.end++,o.roomKey&&e.fixed32.preencode(d,o.roomKey)},encode(d,o){const n=o.roomKey?1:0;er.encode(d,o.header),e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.key),dr.encode(d,o.status),e.uint.encode(d,n),o.roomKey&&e.fixed32.encode(d,o.roomKey)},decode:d=>({header:er.decode(d),memberKey:e.fixed32.decode(d),key:e.uint.decode(d),status:dr.decode(d),roomKey:1&e.uint.decode(d)?e.fixed32.decode(d):null})},nr={preencode(d,o){e.uint.preencode(d,o.timestamp),e.fixed32.preencode(d,o.key),e.fixed32.preencode(d,o.mailbox)},encode(d,o){e.uint.encode(d,o.timestamp),e.fixed32.encode(d,o.key),e.fixed32.encode(d,o.mailbox)},decode:d=>({version:e.uint.decode(d),timestamp:e.uint.decode(d),key:e.fixed32.decode(d),mailbox:e.fixed32.decode(d)})},cr={preencode(d,o){const n=o.version??1;switch(e.uint.preencode(d,n),n){case 0:case 1:nr.preencode(d,o);break;default:throw new Error("Unsupported version")}},encode(d,o){const n=o.version??1;switch(e.uint.encode(d,n),n){case 0:case 1:nr.encode(d,o);break;default:throw new Error("Unsupported version")}},decode(d){const o=d.start,n=e.uint.decode(d);switch(d.start=o,n){case 0:case 1:return nr.decode(d);default:throw new Error("Unsupported version")}}},rr={preencode(d,o){e.fixed32.preencode(d,o.deviceKey),e.fixed32.preencode(d,o.key)},encode(d,o){e.fixed32.encode(d,o.deviceKey),e.fixed32.encode(d,o.key)},decode:d=>({deviceKey:e.fixed32.decode(d),key:e.fixed32.decode(d)})},tr=de,ir={preencode(d,o){tr.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){tr.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:tr.decode(d),key:e.fixed32.decode(d)})},ar=de,sr={preencode(d,o){ar.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){ar.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:ar.decode(d),key:e.fixed32.decode(d)})},pr={preencode(o,n){o.end++,d>=9&&n.profileSnoozeTime&&e.uint.preencode(o,n.profileSnoozeTime)},encode(o,n){const c=(n.disableReadReceipts?1:0)|(d>=7&&n.stripAttachmentMetadata?2:0)|(d>=9&&n.profileSnoozeTime?4:0);e.uint.encode(o,c),d>=9&&n.profileSnoozeTime&&e.uint.encode(o,n.profileSnoozeTime)},decode(o){const n=e.uint.decode(o);return{disableReadReceipts:!!(1&n),stripAttachmentMetadata:d>=7&&!!(2&n),profileSnoozeTime:d>=9&&4&n?e.uint.decode(o):0}}},ur={disableReadReceipts:"disableReadReceipts",stripAttachmentMetadata:"stripAttachmentMetadata",profileSnoozeTime:"profileSnoozeTime"},lr={preencode(e,d){e.end++},encode(d,o){switch(o){case"disableReadReceipts":e.uint.encode(d,1);break;case"stripAttachmentMetadata":e.uint.encode(d,2);break;case"profileSnoozeTime":e.uint.encode(d,3);break;default:throw new Error("Unknown enum")}},decode(d){switch(e.uint.decode(d)){case 1:return"disableReadReceipts";case 2:return"stripAttachmentMetadata";case 3:return"profileSnoozeTime";default:return null}}},fr=de,mr=e.frame(pr),yr={preencode(e,d){fr.preencode(e,d.header),lr.preencode(e,d.key),mr.preencode(e,d.settings)},encode(e,d){fr.encode(e,d.header),lr.encode(e,d.key),mr.encode(e,d.settings)},decode:e=>({header:fr.decode(e),key:lr.decode(e),settings:mr.decode(e)})},xr={preencode(d,o){e.fixed32.preencode(d,o.discoveryPublicKey),e.uint.preencode(d,o.timestamp),d.end++,o.lastSynced&&e.uint.preencode(d,o.lastSynced)},encode(d,o){const n=(o.lastSynced?1:0)|(o.dirty?2:0);e.fixed32.encode(d,o.discoveryPublicKey),e.uint.encode(d,o.timestamp),e.uint.encode(d,n),o.lastSynced&&e.uint.encode(d,o.lastSynced)},decode(d){const o=e.fixed32.decode(d),n=e.uint.decode(d),c=e.uint.decode(d);return{discoveryPublicKey:o,timestamp:n,lastSynced:1&c?e.uint.decode(d):0,dirty:!!(2&c)}}},br={preencode(d,o){e.uint.preencode(d,o.rooms),e.uint.preencode(d,o.activeRooms)},encode(d,o){e.uint.encode(d,o.rooms),e.uint.encode(d,o.activeRooms)},decode:d=>({rooms:e.uint.decode(d),activeRooms:e.uint.decode(d)})},vr=F,gr=$,Kr={preencode(e,d){e.end++,d.blockedMembers&&gr.preencode(e,d.blockedMembers)},encode(d,o){const n=o.blockedMembers?1:0;e.uint.encode(d,n),o.blockedMembers&&gr.encode(d,o.blockedMembers)},decode:d=>({blockedMembers:1&e.uint.decode(d)?gr.decode(d):null})},kr=e.frame(Q),hr=e.frame(Kr),wr={preencode(d,n){e.buffer.preencode(d,n.encryptionKey),e.fixed32.preencode(d,n.seed),kr.preencode(d,n.capabilities),o.preencode(d,n.initiator),e.fixed32.preencode(d,n.fastForwardTo),d.end++,n.privateProfile&&hr.preencode(d,n.privateProfile)},encode(d,n){const c=n.privateProfile?1:0;e.buffer.encode(d,n.encryptionKey),e.fixed32.encode(d,n.seed),kr.encode(d,n.capabilities),o.encode(d,n.initiator),e.fixed32.encode(d,n.fastForwardTo),e.uint.encode(d,c),n.privateProfile&&hr.encode(d,n.privateProfile)},decode:d=>({encryptionKey:e.buffer.decode(d),seed:e.fixed32.decode(d),capabilities:kr.decode(d),initiator:o.decode(d),fastForwardTo:e.fixed32.decode(d),privateProfile:1&e.uint.decode(d)?hr.decode(d):null})},Pr={preencode(d,o){d.end++,o.count&&e.uint.preencode(d,o.count)},encode(d,o){const n=o.count?1:0;e.uint.encode(d,n),o.count&&e.uint.encode(d,o.count)},decode:d=>({count:1&e.uint.decode(d)?e.uint.decode(d):0})},Rr=e.frame(wr),Tr={preencode(d,o){e.fixed32.preencode(d,o.roomKey),e.uint.preencode(d,o.priority),d.end++,o.v3&&Rr.preencode(d,o.v3),o.timestamp&&e.uint.preencode(d,o.timestamp)},encode(d,o){const n=(o.v3?1:0)|(o.errored?2:0)|(o.timestamp?4:0);e.fixed32.encode(d,o.roomKey),e.uint.encode(d,o.priority),e.uint.encode(d,n),o.v3&&Rr.encode(d,o.v3),o.timestamp&&e.uint.encode(d,o.timestamp)},decode(d){const o=e.fixed32.decode(d),n=e.uint.decode(d),c=e.uint.decode(d);return{roomKey:o,priority:n,v3:1&c?Rr.decode(d):null,errored:!!(2&c),timestamp:4&c?e.uint.decode(d):0}}},Ar={preencode(e,d){e.end++},encode(d,o){const n=o.isConfirmed?1:0;e.uint.encode(d,n)},decode:d=>({isConfirmed:!!(1&e.uint.decode(d))})},Sr={preencode(d,o){e.fixed32.preencode(d,o.privateProfileKey)},encode(d,o){e.fixed32.encode(d,o.privateProfileKey)},decode:d=>({privateProfileKey:e.fixed32.decode(d)})},Ir=e.frame(Ar),Mr=gc,Fr=e.frame(xc),qr={preencode(o,n){e.fixed32.preencode(o,n.publicKey),e.fixed32.preencode(o,n.privateProfileKey),r.preencode(o,n.deviceKeyPair),e.buffer.preencode(o,n.deviceProof),Ir.preencode(o,n.status),o.end++,n.entropy&&e.buffer.preencode(o,n.entropy),n.swap&&Mr.preencode(o,n.swap),n.swapV2&&Fr.preencode(o,n.swapV2),d>=7&&n.proofShortenedAt&&e.uint.preencode(o,n.proofShortenedAt)},encode(o,n){const c=(n.entropy?1:0)|(n.swap?2:0)|(n.swapV2?4:0)|(d>=7&&n.proofShortenedAt?8:0);e.fixed32.encode(o,n.publicKey),e.fixed32.encode(o,n.privateProfileKey),r.encode(o,n.deviceKeyPair),e.buffer.encode(o,n.deviceProof),Ir.encode(o,n.status),e.uint.encode(o,c),n.entropy&&e.buffer.encode(o,n.entropy),n.swap&&Mr.encode(o,n.swap),n.swapV2&&Fr.encode(o,n.swapV2),d>=7&&n.proofShortenedAt&&e.uint.encode(o,n.proofShortenedAt)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),t=r.decode(o),i=e.buffer.decode(o),a=Ir.decode(o),s=e.uint.decode(o);return{publicKey:n,privateProfileKey:c,deviceKeyPair:t,deviceProof:i,status:a,entropy:1&s?e.buffer.decode(o):null,swap:2&s?Mr.decode(o):null,swapV2:4&s?Fr.decode(o):null,proofShortenedAt:d>=7&&8&s?e.uint.decode(o):0}}},Cr={RestoreIdentity:1,CreateRoom:2,LeaveRoom:3,ClearRoom:4,JoinRoomInvitation:5,JoinRoomKeys:6,JoinRoomResponse:7,SendContactRequest:8,TestFastTask:9,TestSlowTask:10,TestErrorTask:11},Vr={preencode(e,d){e.end++},encode(d,o){if(o>11)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},Hr={preencode(d,n){e.fixed32.preencode(d,n.roomKey),e.buffer.preencode(d,n.encryptionKey),d.end++,n.fastForwardTo&&e.fixed32.preencode(d,n.fastForwardTo),n.initiator&&o.preencode(d,n.initiator)},encode(d,n){const c=(n.fastForwardTo?1:0)|(n.initiator?2:0);e.fixed32.encode(d,n.roomKey),e.buffer.encode(d,n.encryptionKey),e.uint.encode(d,c),n.fastForwardTo&&e.fixed32.encode(d,n.fastForwardTo),n.initiator&&o.encode(d,n.initiator)},decode(d){const n=e.fixed32.decode(d),c=e.buffer.decode(d),r=e.uint.decode(d);return{roomKey:n,encryptionKey:c,fastForwardTo:1&r?e.fixed32.decode(d):null,initiator:2&r?o.decode(d):null}}},Dr=uc,Lr={preencode(e,d){Dr.preencode(e,d.invitation)},encode(e,d){Dr.encode(e,d.invitation)},decode:e=>({invitation:Dr.decode(e)})},jr={preencode(d,o){e.fixed32.preencode(d,o.mailbox),r.preencode(d,o.keyPair),e.buffer.preencode(d,o.response)},encode(d,o){e.fixed32.encode(d,o.mailbox),r.encode(d,o.keyPair),e.buffer.encode(d,o.response)},decode:d=>({mailbox:e.fixed32.decode(d),keyPair:r.decode(d),response:e.buffer.decode(d)})},Er=ee,Br={preencode(d,n){e.fixed32.preencode(d,n.roomKey),e.buffer.preencode(d,n.encryptionKey),d.end++,n.fastForwardTo&&e.fixed32.preencode(d,n.fastForwardTo),n.initiator&&o.preencode(d,n.initiator),n.mailbox&&e.fixed32.preencode(d,n.mailbox)},encode(d,n){const c=(n.fastForwardTo?1:0)|(n.initiator?2:0)|(n.mailbox?4:0);e.fixed32.encode(d,n.roomKey),e.buffer.encode(d,n.encryptionKey),e.uint.encode(d,c),n.fastForwardTo&&e.fixed32.encode(d,n.fastForwardTo),n.initiator&&o.encode(d,n.initiator),n.mailbox&&e.fixed32.encode(d,n.mailbox)},decode(d){const n=e.fixed32.decode(d),c=e.buffer.decode(d),r=e.uint.decode(d);return{roomKey:n,encryptionKey:c,fastForwardTo:1&r?e.fixed32.decode(d):null,initiator:2&r?o.decode(d):null,mailbox:4&r?e.fixed32.decode(d):null}}},zr=e.frame(Br),Or={preencode(o,n){zr.preencode(o,n.keys),o.end++,d>=15&&n.activeClock&&e.uint.preencode(o,n.activeClock)},encode(o,n){const c=(d>=15&&n.activeClock?1:0)|(d>=15&&n.isReadOnly?2:0);zr.encode(o,n.keys),e.uint.encode(o,c),d>=15&&n.activeClock&&e.uint.encode(o,n.activeClock)},decode(o){const n=zr.decode(o),c=o.start<o.end?e.uint.decode(o):0;return{keys:n,activeClock:d>=15&&1&c?e.uint.decode(o):0,isReadOnly:d>=15&&!!(2&c)}}},Nr=e.frame(kn),Ur={preencode(d,n){e.fixed32.preencode(d,n.roomKey),e.buffer.preencode(d,n.encryptionKey),d.end++,n.fastForwardTo&&e.fixed32.preencode(d,n.fastForwardTo),n.initiator&&o.preencode(d,n.initiator),n.mailbox&&e.fixed32.preencode(d,n.mailbox),n.keyPair&&r.preencode(d,n.keyPair),n.genesis&&Nr.preencode(d,n.genesis)},encode(d,n){const c=(n.fastForwardTo?1:0)|(n.initiator?2:0)|(n.mailbox?4:0)|(n.keyPair?8:0)|(n.genesis?16:0)|(n.isPrivateProfile?32:0);e.fixed32.encode(d,n.roomKey),e.buffer.encode(d,n.encryptionKey),e.uint.encode(d,c),n.fastForwardTo&&e.fixed32.encode(d,n.fastForwardTo),n.initiator&&o.encode(d,n.initiator),n.mailbox&&e.fixed32.encode(d,n.mailbox),n.keyPair&&r.encode(d,n.keyPair),n.genesis&&Nr.encode(d,n.genesis)},decode(d){const n=e.fixed32.decode(d),c=e.buffer.decode(d),t=e.uint.decode(d);return{roomKey:n,encryptionKey:c,fastForwardTo:1&t?e.fixed32.decode(d):null,initiator:2&t?o.decode(d):null,mailbox:4&t?e.fixed32.decode(d):null,keyPair:8&t?r.decode(d):null,genesis:16&t?Nr.decode(d):null,isPrivateProfile:!!(32&t)}}},Jr={preencode(d,o){e.fixed32.preencode(d,o.roomKey),d.end++},encode(d,o){const n=o.isGossiped?1:0;e.fixed32.encode(d,o.roomKey),e.uint.encode(d,n)},decode:d=>({roomKey:e.fixed32.decode(d),isGossiped:!!(1&e.uint.decode(d))})},Wr={preencode(d,o){e.fixed32.preencode(d,o.roomKey)},encode(d,o){e.fixed32.encode(d,o.roomKey)},decode:d=>({roomKey:e.fixed32.decode(d)})},Gr={preencode(d,o){e.string.preencode(d,o.mnemonic),d.end++,o.profileDiscoveryTimeout&&e.uint.preencode(d,o.profileDiscoveryTimeout)},encode(d,o){const n=(o.profileDiscoveryTimeout?1:0)|(o.recover?2:0);e.string.encode(d,o.mnemonic),e.uint.encode(d,n),o.profileDiscoveryTimeout&&e.uint.encode(d,o.profileDiscoveryTimeout)},decode(d){const o=e.string.decode(d),n=e.uint.decode(d);return{mnemonic:o,profileDiscoveryTimeout:1&n?e.uint.decode(d):0,recover:!!(2&n)}}},Qr=Qn,Xr={preencode(d,o){e.fixed32.preencode(d,o.roomKey),e.fixed32.preencode(d,o.memberKey),d.end++,o.message&&e.string.preencode(d,o.message),o.contactInfo&&Qr.preencode(d,o.contactInfo)},encode(d,o){const n=(o.message?1:0)|(o.contactInfo?2:0);e.fixed32.encode(d,o.roomKey),e.fixed32.encode(d,o.memberKey),e.uint.encode(d,n),o.message&&e.string.encode(d,o.message),o.contactInfo&&Qr.encode(d,o.contactInfo)},decode(d){const o=e.fixed32.decode(d),n=e.fixed32.decode(d),c=e.uint.decode(d);return{roomKey:o,memberKey:n,message:1&c?e.string.decode(d):null,contactInfo:2&c?Qr.decode(d):null}}},Yr={preencode(d,o){e.fixed32.preencode(d,o.key),d.end++},encode(d,o){const n=o.isPrivateProfile?1:0;e.fixed32.encode(d,o.key),e.uint.encode(d,n)},decode:d=>({key:e.fixed32.decode(d),isPrivateProfile:!!(1&e.uint.decode(d))})},Zr=e.frame(Gr),$r=e.frame(Ur),_r=e.frame(Jr),et=e.frame(Wr),dt=e.frame(Lr),ot=e.frame(Or),nt=e.frame(jr),ct=e.frame(Xr),rt=e.frame(Yr),tt={preencode(d,o){const n=(o.restoreIdentity?1:0)|(o.createRoom?2:0)|(o.leaveRoom?4:0)|(o.clearRoom?8:0)|(o.joinRoomInvitation?16:0)|(o.joinRoomKeys?32:0)|(o.joinRoomResponse?64:0)|(o.sendContactRequest?128:0)|(o.migrateV2Room?256:0);e.fixed32.preencode(d,o.discoveryKey),e.uint.preencode(d,o.priority),e.uint.preencode(d,o.timestamp),e.uint.preencode(d,o.type),e.uint.preencode(d,n),o.restoreIdentity&&Zr.preencode(d,o.restoreIdentity),o.createRoom&&$r.preencode(d,o.createRoom),o.leaveRoom&&_r.preencode(d,o.leaveRoom),o.clearRoom&&et.preencode(d,o.clearRoom),o.joinRoomInvitation&&dt.preencode(d,o.joinRoomInvitation),o.joinRoomKeys&&ot.preencode(d,o.joinRoomKeys),o.joinRoomResponse&&nt.preencode(d,o.joinRoomResponse),o.sendContactRequest&&ct.preencode(d,o.sendContactRequest),o.migrateV2Room&&rt.preencode(d,o.migrateV2Room)},encode(d,o){const n=(o.restoreIdentity?1:0)|(o.createRoom?2:0)|(o.leaveRoom?4:0)|(o.clearRoom?8:0)|(o.joinRoomInvitation?16:0)|(o.joinRoomKeys?32:0)|(o.joinRoomResponse?64:0)|(o.sendContactRequest?128:0)|(o.migrateV2Room?256:0);e.fixed32.encode(d,o.discoveryKey),e.uint.encode(d,o.priority),e.uint.encode(d,o.timestamp),e.uint.encode(d,o.type),e.uint.encode(d,n),o.restoreIdentity&&Zr.encode(d,o.restoreIdentity),o.createRoom&&$r.encode(d,o.createRoom),o.leaveRoom&&_r.encode(d,o.leaveRoom),o.clearRoom&&et.encode(d,o.clearRoom),o.joinRoomInvitation&&dt.encode(d,o.joinRoomInvitation),o.joinRoomKeys&&ot.encode(d,o.joinRoomKeys),o.joinRoomResponse&&nt.encode(d,o.joinRoomResponse),o.sendContactRequest&&ct.encode(d,o.sendContactRequest),o.migrateV2Room&&rt.encode(d,o.migrateV2Room)},decode(d){const o=e.fixed32.decode(d),n=e.uint.decode(d),c=e.uint.decode(d),r=e.uint.decode(d),t=e.uint.decode(d);return{discoveryKey:o,priority:n,timestamp:c,type:r,restoreIdentity:1&t?Zr.decode(d):null,createRoom:2&t?$r.decode(d):null,leaveRoom:4&t?_r.decode(d):null,clearRoom:8&t?et.decode(d):null,joinRoomInvitation:16&t?dt.decode(d):null,joinRoomKeys:32&t?ot.decode(d):null,joinRoomResponse:64&t?nt.decode(d):null,sendContactRequest:128&t?ct.decode(d):null,migrateV2Room:256&t?rt.decode(d):null}}},it=Oe,at={preencode(d,o){e.buffer.preencode(d,o.seed),it.preencode(d,o.invitation)},encode(d,o){e.buffer.encode(d,o.seed),it.encode(d,o.invitation)},decode:d=>({seed:e.buffer.decode(d),invitation:it.decode(d)})},st={preencode(e,d){e.end++},encode(d,o){const n=(o.isWritable?1:0)|(o.isReadable?2:0)|(o.isPrivateProfile?4:0)|(o.isRemoved?8:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isWritable:!!(1&o),isReadable:!!(2&o),isPrivateProfile:!!(4&o),isRemoved:!!(8&o)}}},pt={preencode(d,o){e.uint.preencode(d,o.creation),e.uint.preencode(d,o.latestSync),e.uint.preencode(d,o.latestChatMessage)},encode(d,o){e.uint.encode(d,o.creation),e.uint.encode(d,o.latestSync),e.uint.encode(d,o.latestChatMessage)},decode:d=>({creation:e.uint.decode(d),latestSync:e.uint.decode(d),latestChatMessage:e.uint.decode(d)})},ut=yn,lt=So,ft=e.frame(pt),mt=kr,yt=e.frame(st),xt=e.frame(pe),bt=e.frame(hd),vt=an,gt=vn,Kt=e.frame(Lo),kt=$,ht=e.array(e.frame(Wn)),wt=e.frame(gd),Pt=vc,Rt={preencode(o,n){const c=(n.selfDevice?1:0)|(n.selfMember?2:0)|(n.config?4:0)|(n.identity?8:0)|(n.lastMessage?16:0)|(n.dm?32:0)|(n.readLengths?64:0)|(n.lastMember?128:0)|(n.version?256:0)|(d>=3&&n.preferences?512:0)|(d>=4&&n.activeCall?1024:0)|(d>=8&&n.lastMessageLabels?2048:0)|(d>=9&&n.settings?4096:0)|(d>=13&&n.system?8192:0)|(d>=13&&n.processed?16384:0);e.fixed32.preencode(o,n.roomKey),e.fixed32.preencode(o,n.discoveryKey),e.buffer.preencode(o,n.encryptionKey),ut.preencode(o,n.digest),lt.preencode(o,n.stats),ft.preencode(o,n.timestamps),e.uint.preencode(o,n.fork),e.uint.preencode(o,n.length),e.fixed32.preencode(o,n.seed),mt.preencode(o,n.capabilities),yt.preencode(o,n.status),e.uint.preencode(o,c),n.selfDevice&&xt.preencode(o,n.selfDevice),n.selfMember&&bt.preencode(o,n.selfMember),n.config&&vt.preencode(o,n.config),n.identity&&gt.preencode(o,n.identity),n.lastMessage&&Kt.preencode(o,n.lastMessage),n.dm&&kt.preencode(o,n.dm),n.readLengths&&ht.preencode(o,n.readLengths),n.lastMember&&wt.preencode(o,n.lastMember),n.version&&e.uint.preencode(o,n.version),d>=3&&n.preferences&&Pt.preencode(o,n.preferences),d>=4&&n.activeCall&&cl.preencode(o,n.activeCall),d>=8&&n.lastMessageLabels&&rl.preencode(o,n.lastMessageLabels),d>=9&&n.settings&&tl.preencode(o,n.settings),d>=13&&n.system&&il.preencode(o,n.system),d>=13&&n.processed&&al.preencode(o,n.processed)},encode(o,n){const c=(n.selfDevice?1:0)|(n.selfMember?2:0)|(n.config?4:0)|(n.identity?8:0)|(n.lastMessage?16:0)|(n.dm?32:0)|(n.readLengths?64:0)|(n.lastMember?128:0)|(n.version?256:0)|(d>=3&&n.preferences?512:0)|(d>=4&&n.activeCall?1024:0)|(d>=8&&n.lastMessageLabels?2048:0)|(d>=9&&n.settings?4096:0)|(d>=13&&n.system?8192:0)|(d>=13&&n.processed?16384:0);e.fixed32.encode(o,n.roomKey),e.fixed32.encode(o,n.discoveryKey),e.buffer.encode(o,n.encryptionKey),ut.encode(o,n.digest),lt.encode(o,n.stats),ft.encode(o,n.timestamps),e.uint.encode(o,n.fork),e.uint.encode(o,n.length),e.fixed32.encode(o,n.seed),mt.encode(o,n.capabilities),yt.encode(o,n.status),e.uint.encode(o,c),n.selfDevice&&xt.encode(o,n.selfDevice),n.selfMember&&bt.encode(o,n.selfMember),n.config&&vt.encode(o,n.config),n.identity&&gt.encode(o,n.identity),n.lastMessage&&Kt.encode(o,n.lastMessage),n.dm&&kt.encode(o,n.dm),n.readLengths&&ht.encode(o,n.readLengths),n.lastMember&&wt.encode(o,n.lastMember),n.version&&e.uint.encode(o,n.version),d>=3&&n.preferences&&Pt.encode(o,n.preferences),d>=4&&n.activeCall&&cl.encode(o,n.activeCall),d>=8&&n.lastMessageLabels&&rl.encode(o,n.lastMessageLabels),d>=9&&n.settings&&tl.encode(o,n.settings),d>=13&&n.system&&il.encode(o,n.system),d>=13&&n.processed&&al.encode(o,n.processed)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),r=e.buffer.decode(o),t=ut.decode(o),i=lt.decode(o),a=ft.decode(o),s=e.uint.decode(o),p=e.uint.decode(o),u=e.fixed32.decode(o),l=mt.decode(o),f=yt.decode(o),m=e.uint.decode(o);return{roomKey:n,discoveryKey:c,encryptionKey:r,digest:t,stats:i,timestamps:a,fork:s,length:p,seed:u,capabilities:l,status:f,selfDevice:1&m?xt.decode(o):null,selfMember:2&m?bt.decode(o):null,config:4&m?vt.decode(o):null,identity:8&m?gt.decode(o):null,lastMessage:16&m?Kt.decode(o):null,dm:32&m?kt.decode(o):null,readLengths:64&m?ht.decode(o):null,lastMember:128&m?wt.decode(o):null,version:256&m?e.uint.decode(o):0,preferences:d>=3&&512&m?Pt.decode(o):null,activeCall:d>=4&&1024&m?cl.decode(o):null,lastMessageLabels:d>=8&&2048&m?rl.decode(o):null,settings:d>=9&&4096&m?tl.decode(o):null,system:d>=13&&8192&m?il.decode(o):null,processed:d>=13&&16384&m?al.decode(o):null}}},Tt=vc,At={preencode(d,o){e.fixed32.preencode(d,o.roomKey),Tt.preencode(d,o.status)},encode(d,o){e.fixed32.encode(d,o.roomKey),Tt.encode(d,o.status)},decode:d=>({roomKey:e.fixed32.decode(d),status:Tt.decode(d)})},St={preencode(d,o){e.fixed32.preencode(d,o.roomKey),d.end++,o.repairs&&e.uint.preencode(d,o.repairs)},encode(d,o){const n=o.repairs?1:0;e.fixed32.encode(d,o.roomKey),e.uint.encode(d,n),o.repairs&&e.uint.encode(d,o.repairs)},decode:d=>({roomKey:e.fixed32.decode(d),repairs:1&e.uint.decode(d)?e.uint.decode(d):0})},It={preencode(o,n){e.fixed32.preencode(o,n.mailbox),e.fixed32.preencode(o,n.key),o.end++,n.roomKey&&e.fixed32.preencode(o,n.roomKey),n.keyPair&&r.preencode(o,n.keyPair),n.responseKeyPair&&r.preencode(o,n.responseKeyPair),d>=15&&n.activeClock&&e.uint.preencode(o,n.activeClock)},encode(o,n){const c=(n.roomKey?1:0)|(n.keyPair?2:0)|(n.responseKeyPair?4:0)|(d>=14&&n.pending?8:0)|(d>=15&&n.activeClock?16:0);e.fixed32.encode(o,n.mailbox),e.fixed32.encode(o,n.key),e.uint.encode(o,c),n.roomKey&&e.fixed32.encode(o,n.roomKey),n.keyPair&&r.encode(o,n.keyPair),n.responseKeyPair&&r.encode(o,n.responseKeyPair),d>=15&&n.activeClock&&e.uint.encode(o,n.activeClock)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),t=e.uint.decode(o);return{mailbox:n,key:c,roomKey:1&t?e.fixed32.decode(o):null,keyPair:2&t?r.decode(o):null,responseKeyPair:4&t?r.decode(o):null,pending:d>=14&&!!(8&t),activeClock:d>=15&&16&t?e.uint.decode(o):0}}},Mt={preencode(d,o){e.fixed32.preencode(d,o.key),e.fixed32.preencode(d,o.responsePublicKey)},encode(d,o){e.fixed32.encode(d,o.key),e.fixed32.encode(d,o.responsePublicKey)},decode:d=>({key:e.fixed32.decode(d),responsePublicKey:e.fixed32.decode(d)})},Ft=fe,qt={preencode(d,o){e.fixed32.preencode(d,o.key),Ft.preencode(d,o.profile)},encode(d,o){e.fixed32.encode(d,o.key),Ft.encode(d,o.profile)},decode:d=>({key:e.fixed32.decode(d),profile:Ft.decode(d)})},Ct=xt,Vt={preencode(d,o){e.fixed32.preencode(d,o.roomKey),Ct.preencode(d,o.device)},encode(d,o){e.fixed32.encode(d,o.roomKey),Ct.encode(d,o.device)},decode:d=>({roomKey:e.fixed32.decode(d),device:Ct.decode(d)})},Ht=K,Dt={preencode(o,n){Ht.preencode(o,n.file),e.fixed32.preencode(o,n.roomKey),o.end++,n.encryptionKey&&e.buffer.preencode(o,n.encryptionKey),d>=4&&n.lastAccessed&&e.uint.preencode(o,n.lastAccessed),d>=4&&n.version&&e.uint.preencode(o,n.version)},encode(o,n){const c=(n.encryptionKey?1:0)|(n.cleared?2:0)|(n.own?4:0)|(d>=4&&n.lastAccessed?8:0)|(d>=4&&n.version?16:0);Ht.encode(o,n.file),e.fixed32.encode(o,n.roomKey),e.uint.encode(o,c),n.encryptionKey&&e.buffer.encode(o,n.encryptionKey),d>=4&&n.lastAccessed&&e.uint.encode(o,n.lastAccessed),d>=4&&n.version&&e.uint.encode(o,n.version)},decode(o){const n=Ht.decode(o),c=e.fixed32.decode(o),r=e.uint.decode(o);return{file:n,roomKey:c,encryptionKey:1&r?e.buffer.decode(o):null,cleared:!!(2&r),own:!!(4&r),lastAccessed:d>=4&&8&r?e.uint.decode(o):0,version:d>=4&&16&r?e.uint.decode(o):0}}},Lt={preencode(d,o){d.end++,o.key&&e.string.preencode(d,o.key),o.description&&e.string.preencode(d,o.description)},encode(d,o){const n=(o.key?1:0)|(o.value?2:0)|(o.description?4:0);e.uint.encode(d,n),o.key&&e.string.encode(d,o.key),o.description&&e.string.encode(d,o.description)},decode(d){const o=e.uint.decode(d);return{key:1&o?e.string.decode(d):null,value:!!(2&o),description:4&o?e.string.decode(d):null}}},jt=e.array(e.frame(Lt)),Et={preencode(e,d){e.end++,d.flags&&jt.preencode(e,d.flags)},encode(d,o){const n=o.flags?1:0;e.uint.encode(d,n),o.flags&&jt.encode(d,o.flags)},decode:d=>({flags:1&e.uint.decode(d)?jt.decode(d):null})},Bt=ed,zt={preencode(d,o){d.end++,o.nodes&&Bt.preencode(d,o.nodes),o.concurrency&&e.uint.preencode(d,o.concurrency),o.maxWindow&&e.uint.preencode(d,o.maxWindow),o.randomPunchInterval&&e.uint.preencode(d,o.randomPunchInterval),o.connectionKeepAlive&&e.uint.preencode(d,o.connectionKeepAlive)},encode(d,o){const n=(o.nodes?1:0)|(o.concurrency?2:0)|(o.maxWindow?4:0)|(o.randomPunchInterval?8:0)|(o.connectionKeepAlive?16:0);e.uint.encode(d,n),o.nodes&&Bt.encode(d,o.nodes),o.concurrency&&e.uint.encode(d,o.concurrency),o.maxWindow&&e.uint.encode(d,o.maxWindow),o.randomPunchInterval&&e.uint.encode(d,o.randomPunchInterval),o.connectionKeepAlive&&e.uint.encode(d,o.connectionKeepAlive)},decode(d){const o=e.uint.decode(d);return{nodes:1&o?Bt.decode(d):null,concurrency:2&o?e.uint.decode(d):0,maxWindow:4&o?e.uint.decode(d):0,randomPunchInterval:8&o?e.uint.decode(d):0,connectionKeepAlive:16&o?e.uint.decode(d):0}}},Ot={preencode(d,o){e.fixed32.preencode(d,o.roomKey),e.uint.preencode(d,o.count)},encode(d,o){e.fixed32.encode(d,o.roomKey),e.uint.encode(d,o.count)},decode:d=>({roomKey:e.fixed32.decode(d),count:e.uint.decode(d)})},Nt={preencode(d,o){d.end++,o.roomKey&&e.fixed32.preencode(d,o.roomKey),o.coreKey&&e.fixed32.preencode(d,o.coreKey)},encode(d,o){const n=(o.roomKey?1:0)|(o.coreKey?2:0);e.uint.encode(d,n),o.roomKey&&e.fixed32.encode(d,o.roomKey),o.coreKey&&e.fixed32.encode(d,o.coreKey)},decode(d){const o=e.uint.decode(d);return{roomKey:1&o?e.fixed32.decode(d):null,coreKey:2&o?e.fixed32.decode(d):null}}},Ut=e.frame(Nt),Jt={preencode(d,o){e.string.preencode(d,o.code),e.string.preencode(d,o.message),e.string.preencode(d,o.stack),e.uint.preencode(d,o.timestamp),d.end++,o.details&&Ut.preencode(d,o.details)},encode(d,o){const n=o.details?1:0;e.string.encode(d,o.code),e.string.encode(d,o.message),e.string.encode(d,o.stack),e.uint.encode(d,o.timestamp),e.uint.encode(d,n),o.details&&Ut.encode(d,o.details)},decode:d=>({code:e.string.decode(d),message:e.string.decode(d),stack:e.string.decode(d),timestamp:e.uint.decode(d),details:1&e.uint.decode(d)?Ut.decode(d):null})},Wt={RESUME:1,WAKEUP:2,PRESUSPEND:3,SUSPEND:4},Gt={preencode(e,d){e.end++},encode(d,o){if(o>4)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},Qt={preencode(d,o){e.fixed32.preencode(d,o.roomKey),e.uint.preencode(d,o.total)},encode(d,o){e.fixed32.encode(d,o.roomKey),e.uint.encode(d,o.total)},decode:d=>({roomKey:e.fixed32.decode(d),total:e.uint.decode(d)})},Xt=i,Yt={preencode(d,o){e.uint.preencode(d,o.duration)},encode(d,o){e.uint.encode(d,o.duration)},decode:d=>({duration:e.uint.decode(d)})},Zt=H,$t=H,_t=e.frame(Xt),ei={preencode(e,d){_t.preencode(e,d.header)},encode(e,d){_t.encode(e,d.header)},decode:e=>({header:_t.decode(e)})},di=e.frame(Yt),oi={preencode(e,d){di.preencode(e,d.header)},encode(e,d){di.encode(e,d.header)},decode:e=>({header:di.decode(e)})},ni=_t,ci={preencode(e,d){ni.preencode(e,d.header)},encode(e,d){ni.encode(e,d.header)},decode:e=>({header:ni.decode(e)})},ri=H,ti=_t,ii=an,ai=J,si={preencode(e,d){ti.preencode(e,d.header),e.end++,d.config&&ii.preencode(e,d.config),d.settings&&ai.preencode(e,d.settings)},encode(d,o){const n=(o.config?1:0)|(o.settings?2:0);ti.encode(d,o.header),e.uint.encode(d,n),o.config&&ii.encode(d,o.config),o.settings&&ai.encode(d,o.settings)},decode(d){const o=ti.decode(d),n=e.uint.decode(d);return{header:o,config:1&n?ii.decode(d):null,settings:2&n?ai.decode(d):null}}},pi=di,ui={preencode(d,o){pi.preencode(d,o.header),d.end++,o.roomKey&&e.fixed32.preencode(d,o.roomKey)},encode(d,o){const n=o.roomKey?1:0;pi.encode(d,o.header),e.uint.encode(d,n),o.roomKey&&e.fixed32.encode(d,o.roomKey)},decode:d=>({header:pi.decode(d),roomKey:1&e.uint.decode(d)?e.fixed32.decode(d):null})},li=_t,fi={preencode(d,o){li.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey)},encode(d,o){li.encode(d,o.header),e.fixed32.encode(d,o.roomKey)},decode:d=>({header:li.decode(d),roomKey:e.fixed32.decode(d)})},mi=_t,yi={preencode(d,o){mi.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey)},encode(d,o){mi.encode(d,o.header),e.fixed32.encode(d,o.roomKey)},decode:d=>({header:mi.decode(d),roomKey:e.fixed32.decode(d)})},xi=_t,bi={preencode(d,o){xi.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey)},encode(d,o){xi.encode(d,o.header),e.fixed32.encode(d,o.roomKey)},decode:d=>({header:xi.decode(d),roomKey:e.fixed32.decode(d)})},vi=di,gi={preencode(e,d){vi.preencode(e,d.header)},encode(e,d){vi.encode(e,d.header)},decode:e=>({header:vi.decode(e)})},Ki=_t,ki=an,hi={preencode(d,o){Ki.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey),e.uint.preencode(d,o.key),ki.preencode(d,o.config)},encode(d,o){Ki.encode(d,o.header),e.fixed32.encode(d,o.roomKey),e.uint.encode(d,o.key),ki.encode(d,o.config)},decode:d=>({header:Ki.decode(d),roomKey:e.fixed32.decode(d),key:e.uint.decode(d),config:ki.decode(d)})},wi=_t,Pi=J,Ri={preencode(d,o){wi.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey),e.uint.preencode(d,o.key),Pi.preencode(d,o.settings)},encode(d,o){wi.encode(d,o.header),e.fixed32.encode(d,o.roomKey),e.uint.encode(d,o.key),Pi.encode(d,o.settings)},decode:d=>({header:wi.decode(d),roomKey:e.fixed32.decode(d),key:e.uint.decode(d),settings:Pi.decode(d)})},Ti=_t,Ai=vc,Si={preencode(d,o){Ti.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey),e.uint.preencode(d,o.key),Ai.preencode(d,o.status)},encode(d,o){Ti.encode(d,o.header),e.fixed32.encode(d,o.roomKey),e.uint.encode(d,o.key),Ai.encode(d,o.status)},decode:d=>({header:Ti.decode(d),roomKey:e.fixed32.decode(d),key:e.uint.decode(d),status:Ai.decode(d)})},Ii=_t,Mi=Eo,Fi={preencode(d,o){Ii.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey),Mi.preencode(d,o.message)},encode(d,o){Ii.encode(d,o.header),e.fixed32.encode(d,o.roomKey),Mi.encode(d,o.message)},decode:d=>({header:Ii.decode(d),roomKey:e.fixed32.decode(d),message:Mi.decode(d)})},qi=di,Ci={preencode(e,d){qi.preencode(e,d.header)},encode(e,d){qi.encode(e,d.header)},decode:e=>({header:qi.decode(e)})},Vi=_t,Hi=Eo,Di={preencode(d,o){Vi.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey),n.preencode(d,o.id),Hi.preencode(d,o.message)},encode(d,o){Vi.encode(d,o.header),e.fixed32.encode(d,o.roomKey),n.encode(d,o.id),Hi.encode(d,o.message)},decode:d=>({header:Vi.decode(d),roomKey:e.fixed32.decode(d),id:n.decode(d),message:Hi.decode(d)})},Li=di,ji={preencode(e,d){Li.preencode(e,d.header)},encode(e,d){Li.encode(e,d.header)},decode:e=>({header:Li.decode(e)})},Ei=_t,Bi={preencode(d,o){Ei.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey),n.preencode(d,o.id)},encode(d,o){Ei.encode(d,o.header),e.fixed32.encode(d,o.roomKey),n.encode(d,o.id)},decode:d=>({header:Ei.decode(d),roomKey:e.fixed32.decode(d),id:n.decode(d)})},zi=di,Oi={preencode(e,d){zi.preencode(e,d.header)},encode(e,d){zi.encode(e,d.header)},decode:e=>({header:zi.decode(e)})},Ni=_t,Ui={preencode(d,o){Ni.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey),n.preencode(d,o.id),e.string.preencode(d,o.reaction)},encode(d,o){Ni.encode(d,o.header),e.fixed32.encode(d,o.roomKey),n.encode(d,o.id),e.string.encode(d,o.reaction)},decode:d=>({header:Ni.decode(d),roomKey:e.fixed32.decode(d),id:n.decode(d),reaction:e.string.decode(d)})},Ji=di,Wi={preencode(e,d){Ji.preencode(e,d.header)},encode(e,d){Ji.encode(e,d.header)},decode:e=>({header:Ji.decode(e)})},Gi=_t,Qi={preencode(d,o){Gi.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey),n.preencode(d,o.id),e.string.preencode(d,o.reaction)},encode(d,o){Gi.encode(d,o.header),e.fixed32.encode(d,o.roomKey),n.encode(d,o.id),e.string.encode(d,o.reaction)},decode:d=>({header:Gi.decode(d),roomKey:e.fixed32.decode(d),id:n.decode(d),reaction:e.string.decode(d)})},Xi=di,Yi={preencode(e,d){Xi.preencode(e,d.header)},encode(e,d){Xi.encode(e,d.header)},decode:e=>({header:Xi.decode(e)})},Zi={preencode(d,o){e.uint.preencode(d,o.clock),e.uint.preencode(d,o.start),e.uint.preencode(d,o.end)},encode(d,o){e.uint.encode(d,o.clock),e.uint.encode(d,o.start),e.uint.encode(d,o.end)},decode:d=>({clock:e.uint.decode(d),start:e.uint.decode(d),end:e.uint.decode(d)})},$i=H,_i=$,ea={preencode(d,o){e.uint.preencode(d,o.clock),_i.preencode(d,o.keys)},encode(d,o){e.uint.encode(d,o.clock),_i.encode(d,o.keys)},decode:d=>({clock:e.uint.decode(d),keys:_i.decode(d)})},da={preencode(d,o){e.uint.preencode(d,o.clock),e.fixed32.preencode(d,o.roomKey),d.end++,o.start&&e.uint.preencode(d,o.start),o.size&&e.uint.preencode(d,o.size)},encode(d,o){const n=(o.start?1:0)|(o.size?2:0)|(o.isBottom?4:0);e.uint.encode(d,o.clock),e.fixed32.encode(d,o.roomKey),e.uint.encode(d,n),o.start&&e.uint.encode(d,o.start),o.size&&e.uint.encode(d,o.size)},decode(d){const o=e.uint.decode(d),n=e.fixed32.decode(d),c=e.uint.decode(d);return{clock:o,roomKey:n,start:1&c?e.uint.decode(d):0,size:2&c?e.uint.decode(d):0,isBottom:!!(4&c)}}},oa=H,na={preencode(d,o){e.uint.preencode(d,o.clock),e.fixed32.preencode(d,o.roomKey),d.end++,o.offset&&e.fixed32.preencode(d,o.offset),o.count&&e.uint.preencode(d,o.count)},encode(d,o){const n=(o.offset?1:0)|(o.count?2:0);e.uint.encode(d,o.clock),e.fixed32.encode(d,o.roomKey),e.uint.encode(d,n),o.offset&&e.fixed32.encode(d,o.offset),o.count&&e.uint.encode(d,o.count)},decode(d){const o=e.uint.decode(d),n=e.fixed32.decode(d),c=e.uint.decode(d);return{clock:o,roomKey:n,offset:1&c?e.fixed32.decode(d):null,count:2&c?e.uint.decode(d):0}}},ca=H,ra={preencode(d,o){e.uint.preencode(d,o.timestamp),e.fixed32.preencode(d,o.id)},encode(d,o){e.uint.encode(d,o.timestamp),e.fixed32.encode(d,o.id)},decode:d=>({timestamp:e.uint.decode(d),id:e.fixed32.decode(d)})},ta={Changed:1,Removed:2},ia={preencode(e,d){e.end++},encode(d,o){if(o>2)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},aa=$,sa={preencode(d,o){aa.preencode(d,o.keys),e.uint.preencode(d,o.start),e.uint.preencode(d,o.end),e.uint.preencode(d,o.total)},encode(d,o){aa.encode(d,o.keys),e.uint.encode(d,o.start),e.uint.encode(d,o.end),e.uint.encode(d,o.total)},decode:d=>({keys:aa.decode(d),start:e.uint.decode(d),end:e.uint.decode(d),total:e.uint.decode(d)})},pa={preencode(e,d){ia.preencode(e,d.type),ra.preencode(e,d.room)},encode(e,d){ia.encode(e,d.type),ra.encode(e,d.room)},decode:e=>({type:ia.decode(e),room:ra.decode(e)})},ua=yt,la=bd,fa={preencode(e,d){ua.preencode(e,d.device),e.end++,d.member&&la.preencode(e,d.member)},encode(d,o){const n=o.member?1:0;ua.encode(d,o.device),e.uint.encode(d,n),o.member&&la.encode(d,o.member)},decode:d=>({device:ua.decode(d),member:1&e.uint.decode(d)?la.decode(d):null})},ma=e.frame(fa),ya=yn,xa=an,ba={preencode(d,o){e.fixed32.preencode(d,o.id),ma.preencode(d,o.role),ya.preencode(d,o.digest),xa.preencode(d,o.config),d.end++,o.messageId&&n.preencode(d,o.messageId)},encode(d,o){const c=o.messageId?1:0;e.fixed32.encode(d,o.id),ma.encode(d,o.role),ya.encode(d,o.digest),xa.encode(d,o.config),e.uint.encode(d,c),o.messageId&&n.encode(d,o.messageId)},decode:d=>({id:e.fixed32.decode(d),role:ma.decode(d),digest:ya.decode(d),config:xa.decode(d),messageId:1&e.uint.decode(d)?n.decode(d):null})},va=yt,ga={preencode(d,o){e.fixed32.preencode(d,o.id),va.preencode(d,o.status)},encode(d,o){e.fixed32.encode(d,o.id),va.encode(d,o.status)},decode:d=>({id:e.fixed32.decode(d),status:va.decode(d)})},Ka=yn,ka={preencode(d,o){e.fixed32.preencode(d,o.id),Ka.preencode(d,o.digest)},encode(d,o){e.fixed32.encode(d,o.id),Ka.encode(d,o.digest)},decode:d=>({id:e.fixed32.decode(d),digest:Ka.decode(d)})},ha=an,wa={preencode(d,o){e.fixed32.preencode(d,o.id),ha.preencode(d,o.config)},encode(d,o){e.fixed32.encode(d,o.id),ha.encode(d,o.config)},decode:d=>({id:e.fixed32.decode(d),config:ha.decode(d)})},Pa=ma,Ra={preencode(d,o){e.fixed32.preencode(d,o.id),d.end++,o.role&&Pa.preencode(d,o.role)},encode(d,o){const n=o.role?1:0;e.fixed32.encode(d,o.id),e.uint.encode(d,n),o.role&&Pa.encode(d,o.role)},decode:d=>({id:e.fixed32.decode(d),role:1&e.uint.decode(d)?Pa.decode(d):null})},Ta={preencode(d,o){e.fixed32.preencode(d,o.id),n.preencode(d,o.lastMessage)},encode(d,o){e.fixed32.encode(d,o.id),n.encode(d,o.lastMessage)},decode:d=>({id:e.fixed32.decode(d),lastMessage:n.decode(d)})},Aa=fe,Sa={preencode(d,o){e.fixed32.preencode(d,o.key),Aa.preencode(d,o.profile)},encode(d,o){e.fixed32.encode(d,o.key),Aa.encode(d,o.profile)},decode:d=>({key:e.fixed32.decode(d),profile:Aa.decode(d)})},Ia=ae,Ma={preencode(d,o){e.fixed32.preencode(d,o.key),Ia.preencode(d,o.status),sl.preencode(d,o.profile)},encode(d,o){e.fixed32.encode(d,o.key),Ia.encode(d,o.status),sl.encode(d,o.profile)},decode:d=>({key:e.fixed32.decode(d),status:Ia.decode(d),profile:sl.decode(d)})},Fa={preencode(d,o){e.fixed32.preencode(d,o.roomKey),e.fixed32.preencode(d,o.key)},encode(d,o){e.fixed32.encode(d,o.roomKey),e.fixed32.encode(d,o.key)},decode:d=>({roomKey:e.fixed32.decode(d),key:e.fixed32.decode(d)})},qa=Fa,Ca=e.array(n),Va={preencode(d,o){e.fixed32.preencode(d,o.roomKey),e.uint.preencode(d,o.start),e.uint.preencode(d,o.size),e.uint.preencode(d,o.total),Ca.preencode(d,o.ids),d.end++},encode(d,o){const n=o.isBottom?1:0;e.fixed32.encode(d,o.roomKey),e.uint.encode(d,o.start),e.uint.encode(d,o.size),e.uint.encode(d,o.total),Ca.encode(d,o.ids),e.uint.encode(d,n)},decode:d=>({roomKey:e.fixed32.decode(d),start:e.uint.decode(d),size:e.uint.decode(d),total:e.uint.decode(d),ids:Ca.decode(d),isBottom:!!(1&e.uint.decode(d))})},Ha={preencode(d,o){e.uint.preencode(d,o.sent),d.end++,o.edited&&e.uint.preencode(d,o.edited)},encode(d,o){const n=o.edited?1:0;e.uint.encode(d,o.sent),e.uint.encode(d,n),o.edited&&e.uint.encode(d,o.edited)},decode:d=>({sent:e.uint.decode(d),edited:1&e.uint.decode(d)?e.uint.decode(d):0})},Da=e.frame(Ha),La=Mo,ja=Fo,Ea=qo,Ba={preencode(d,o){n.preencode(d,o.id),e.uint.preencode(d,o.clock),Da.preencode(d,o.timestamps),La.preencode(d,o.status),d.end++,o.message&&ja.preencode(d,o.message),o.event&&Ea.preencode(d,o.event)},encode(d,o){const c=(o.message?1:0)|(o.event?2:0);n.encode(d,o.id),e.uint.encode(d,o.clock),Da.encode(d,o.timestamps),La.encode(d,o.status),e.uint.encode(d,c),o.message&&ja.encode(d,o.message),o.event&&Ea.encode(d,o.event)},decode(d){const o=n.decode(d),c=e.uint.decode(d),r=Da.decode(d),t=La.decode(d),i=e.uint.decode(d);return{id:o,clock:c,timestamps:r,status:t,message:1&i?ja.decode(d):null,event:2&i?Ea.decode(d):null}}},za=e.frame(Ba),Oa=bd,Na={preencode(d,o){za.preencode(d,o.chat),e.fixed32.preencode(d,o.memberKey),Oa.preencode(d,o.role)},encode(d,o){za.encode(d,o.chat),e.fixed32.encode(d,o.memberKey),Oa.encode(d,o.role)},decode:d=>({chat:za.decode(d),memberKey:e.fixed32.decode(d),role:Oa.decode(d)})},Ua=za,Ja={preencode(e,d){Ua.preencode(e,d.chat)},encode(e,d){Ua.encode(e,d.chat)},decode:e=>({chat:Ua.decode(e)})},Wa=Ca,Ga={preencode(d,o){Wa.preencode(d,o.ids),e.fixed32.preencode(d,o.memberKey)},encode(d,o){Wa.encode(d,o.ids),e.fixed32.encode(d,o.memberKey)},decode:d=>({ids:Wa.decode(d),memberKey:e.fixed32.decode(d)})},Qa=Ca,Xa=bd,Ya={preencode(e,d){Qa.preencode(e,d.ids),Xa.preencode(e,d.role)},encode(e,d){Qa.encode(e,d.ids),Xa.encode(e,d.role)},decode:e=>({ids:Qa.decode(e),role:Xa.decode(e)})},Za=e.frame(dn),$a={preencode(e,d){n.preencode(e,d.id),Za.preencode(e,d.reactions)},encode(e,d){n.encode(e,d.id),Za.encode(e,d.reactions)},decode:e=>({id:n.decode(e),reactions:Za.decode(e)})},_a=Za,es={preencode(e,d){n.preencode(e,d.id),_a.preencode(e,d.digest)},encode(e,d){n.encode(e,d.id),_a.encode(e,d.digest)},decode:e=>({id:n.decode(e),digest:_a.decode(e)})},ds=H,os=H,ns=e.array(e.frame(ic)),cs={preencode(e,d){ns.preencode(e,d.invitations)},encode(e,d){ns.encode(e,d.invitations)},decode:e=>({invitations:ns.decode(e)})},rs=e.frame(ud),ts={preencode(d,o){e.fixed32.preencode(d,o.roomKey),rs.preencode(d,o.request)},encode(d,o){e.fixed32.encode(d,o.roomKey),rs.encode(d,o.request)},decode:d=>({roomKey:e.fixed32.decode(d),request:rs.decode(d)})},is=e.array(e.frame(ts)),as={preencode(e,d){is.preencode(e,d.requests)},encode(e,d){is.encode(e,d.requests)},decode:e=>({requests:is.decode(e)})},ss=ns,ps=e.array(e.frame(ud)),us={preencode(e,d){ss.preencode(e,d.pendingInvitations),ps.preencode(e,d.identityJoinRequests)},encode(e,d){ss.encode(e,d.pendingInvitations),ps.encode(e,d.identityJoinRequests)},decode:e=>({pendingInvitations:ss.decode(e),identityJoinRequests:ps.decode(e)})},ls=_t,fs={preencode(d,o){ls.preencode(d,o.header),e.string.preencode(d,o.invitation),d.end++},encode(d,o){const n=o.isIdentity?1:0;ls.encode(d,o.header),e.string.encode(d,o.invitation),e.uint.encode(d,n)},decode:d=>({header:ls.decode(d),invitation:e.string.decode(d),isIdentity:!!(1&e.uint.decode(d))})},ms=di,ys={preencode(e,d){ms.preencode(e,d.header)},encode(e,d){ms.encode(e,d.header)},decode:e=>({header:ms.decode(e)})},xs={preencode(e,d){e.end++},encode(d,o){const n=(o.canModerate?1:0)|(o.canAdmin?2:0)|(o.requiresConfirmation?4:0)|(o.isReadOnly?8:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{canModerate:!!(1&o),canAdmin:!!(2&o),requiresConfirmation:!!(4&o),isReadOnly:!!(8&o)}}},bs=_t,vs=e.frame(xs),gs={preencode(d,o){bs.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey),d.end++,o.permissions&&vs.preencode(d,o.permissions),o.expiration&&e.uint.preencode(d,o.expiration)},encode(d,o){const n=(o.permissions?1:0)|(o.expiration?2:0);bs.encode(d,o.header),e.fixed32.encode(d,o.roomKey),e.uint.encode(d,n),o.permissions&&vs.encode(d,o.permissions),o.expiration&&e.uint.encode(d,o.expiration)},decode(d){const o=bs.decode(d),n=e.fixed32.decode(d),c=e.uint.decode(d);return{header:o,roomKey:n,permissions:1&c?vs.decode(d):null,expiration:2&c?e.uint.decode(d):0}}},Ks=di,ks={preencode(d,o){Ks.preencode(d,o.header),e.string.preencode(d,o.invitation)},encode(d,o){Ks.encode(d,o.header),e.string.encode(d,o.invitation)},decode:d=>({header:Ks.decode(d),invitation:e.string.decode(d)})},hs=_t,ws={preencode(e,d){hs.preencode(e,d.header)},encode(e,d){hs.encode(e,d.header)},decode:e=>({header:hs.decode(e)})},Ps=di,Rs={preencode(d,o){Ps.preencode(d,o.header),e.string.preencode(d,o.invitation)},encode(d,o){Ps.encode(d,o.header),e.string.encode(d,o.invitation)},decode:d=>({header:Ps.decode(d),invitation:e.string.decode(d)})},Ts=_t,As=rs,Ss={preencode(d,o){Ts.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey),As.preencode(d,o.request)},encode(d,o){Ts.encode(d,o.header),e.fixed32.encode(d,o.roomKey),As.encode(d,o.request)},decode:d=>({header:Ts.decode(d),roomKey:e.fixed32.decode(d),request:As.decode(d)})},Is=di,Ms={preencode(e,d){Is.preencode(e,d.header)},encode(e,d){Is.encode(e,d.header)},decode:e=>({header:Is.decode(e)})},Fs=_t,qs=rs,Cs={preencode(d,o){Fs.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey),qs.preencode(d,o.request)},encode(d,o){Fs.encode(d,o.header),e.fixed32.encode(d,o.roomKey),qs.encode(d,o.request)},decode:d=>({header:Fs.decode(d),roomKey:e.fixed32.decode(d),request:qs.decode(d)})},Vs=di,Hs={preencode(e,d){Vs.preencode(e,d.header)},encode(e,d){Vs.encode(e,d.header)},decode:e=>({header:Vs.decode(e)})},Ds=_t,Ls={preencode(d,o){Ds.preencode(d,o.header),e.fixed32.preencode(d,o.id)},encode(d,o){Ds.encode(d,o.header),e.fixed32.encode(d,o.id)},decode:d=>({header:Ds.decode(d),id:e.fixed32.decode(d)})},js=di,Es={preencode(e,d){js.preencode(e,d.header)},encode(e,d){js.encode(e,d.header)},decode:e=>({header:js.decode(e)})},Bs=_t,zs={preencode(d,o){Bs.preencode(d,o.header),e.string.preencode(d,o.displayName),d.end++,o.avatar&&e.buffer.preencode(d,o.avatar)},encode(d,o){const n=o.avatar?1:0;Bs.encode(d,o.header),e.string.encode(d,o.displayName),e.uint.encode(d,n),o.avatar&&e.buffer.encode(d,o.avatar)},decode:d=>({header:Bs.decode(d),displayName:e.string.decode(d),avatar:1&e.uint.decode(d)?e.buffer.decode(d):null})},Os=H,Ns=H,Us={preencode(e,d){e.end++},encode(d,o){const n=(o.isConfirmed?1:0)|(o.isLoggedOut?2:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isConfirmed:!!(1&o),isLoggedOut:!!(2&o)}}},Js=e.frame(Us),Ws=$,Gs={preencode(d,o){e.fixed32.preencode(d,o.memberKey),Js.preencode(d,o.status),Ws.preencode(d,o.deviceKeys)},encode(d,o){e.fixed32.encode(d,o.memberKey),Js.encode(d,o.status),Ws.encode(d,o.deviceKeys)},decode:d=>({memberKey:e.fixed32.decode(d),status:Js.decode(d),deviceKeys:Ws.decode(d)})},Qs={preencode(d,o){e.fixed32.preencode(d,o.memberKey)},encode(d,o){e.fixed32.encode(d,o.memberKey)},decode:d=>({memberKey:e.fixed32.decode(d)})},Xs={preencode(d,o){e.fixed32.preencode(d,o.deviceKey)},encode(d,o){e.fixed32.encode(d,o.deviceKey)},decode:d=>({deviceKey:e.fixed32.decode(d)})},Ys=_t,Zs={preencode(d,o){Ys.preencode(d,o.header),e.string.preencode(d,o.password)},encode(d,o){Ys.encode(d,o.header),e.string.encode(d,o.password)},decode:d=>({header:Ys.decode(d),password:e.string.decode(d)})},$s=di,_s={preencode(d,o){$s.preencode(d,o.header),e.string.preencode(d,o.inspector)},encode(d,o){$s.encode(d,o.header),e.string.encode(d,o.inspector)},decode:d=>({header:$s.decode(d),inspector:e.string.decode(d)})},ep=di,dp={preencode(e,d){ep.preencode(e,d.header)},encode(e,d){ep.encode(e,d.header)},decode:e=>({header:ep.decode(e)})},op=di,np={preencode(e,d){op.preencode(e,d.header)},encode(e,d){op.encode(e,d.header)},decode:e=>({header:op.decode(e)})},cp={Flag:1},rp={preencode(e,d){e.end++},encode(d,o){if(o>1)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},tp={preencode(d,o){e.fixed32.preencode(d,o.key),e.fixed32.preencode(d,o.sender),e.uint.preencode(d,o.clock),rp.preencode(d,o.label)},encode(d,o){e.fixed32.encode(d,o.key),e.fixed32.encode(d,o.sender),e.uint.encode(d,o.clock),rp.encode(d,o.label)},decode:d=>({key:e.fixed32.decode(d),sender:e.fixed32.decode(d),clock:e.uint.decode(d),label:rp.decode(d)})},ip=de,ap={preencode(d,o){ip.preencode(d,o.header),e.fixed32.preencode(d,o.key),rp.preencode(d,o.label)},encode(d,o){ip.encode(d,o.header),e.fixed32.encode(d,o.key),rp.encode(d,o.label)},decode:d=>({header:ip.decode(d),key:e.fixed32.decode(d),label:rp.decode(d)})},sp={preencode(d,o){rp.preencode(d,o.label),e.uint.preencode(d,o.count)},encode(d,o){rp.encode(d,o.label),e.uint.encode(d,o.count)},decode:d=>({label:rp.decode(d),count:e.uint.decode(d)})},pp=e.array(e.frame(sp)),up={preencode(d,o){e.fixed32.preencode(d,o.key),e.uint.preencode(d,o.total),pp.preencode(d,o.labels),e.uint.preencode(d,o.editedAt),e.uint.preencode(d,o.flagsClock)},encode(d,o){e.fixed32.encode(d,o.key),e.uint.encode(d,o.total),pp.encode(d,o.labels),e.uint.encode(d,o.editedAt),e.uint.encode(d,o.flagsClock)},decode:d=>({key:e.fixed32.decode(d),total:e.uint.decode(d),labels:pp.decode(d),editedAt:e.uint.decode(d),flagsClock:e.uint.decode(d)})},lp=de,fp={preencode(d,o){lp.preencode(d,o.header),e.fixed32.preencode(d,o.deviceKey),e.fixed32.preencode(d,o.fromDeviceKey)},encode(d,o){lp.encode(d,o.header),e.fixed32.encode(d,o.deviceKey),e.fixed32.encode(d,o.fromDeviceKey)},decode:d=>({header:lp.decode(d),deviceKey:e.fixed32.decode(d),fromDeviceKey:e.fixed32.decode(d)})},mp={preencode(d,o){e.float64.preencode(d,o.latitude),e.float64.preencode(d,o.longitude)},encode(d,o){e.float64.encode(d,o.latitude),e.float64.encode(d,o.longitude)},decode:d=>({latitude:e.float64.decode(d),longitude:e.float64.decode(d)})},yp=de,xp=$,bp={preencode(o,n){yp.preencode(o,n.header),e.fixed32.preencode(o,n.callKey),e.buffer.preencode(o,n.encryptionKey),o.end++,d>=4&&n.streams&&xp.preencode(o,n.streams),d>=4&&n.discoveryKey&&e.fixed32.preencode(o,n.discoveryKey),d>=4&&n.version&&e.uint.preencode(o,n.version),d>=12&&n.streamInputs&&pl.preencode(o,n.streamInputs),d>=12&&n.swarmKey&&e.fixed32.preencode(o,n.swarmKey)},encode(o,n){const c=(d>=4&&n.streams?1:0)|(d>=4&&n.discoveryKey?2:0)|(d>=4&&n.version?4:0)|(d>=12&&n.streamInputs?8:0)|(d>=12&&n.swarmKey?16:0);yp.encode(o,n.header),e.fixed32.encode(o,n.callKey),e.buffer.encode(o,n.encryptionKey),e.uint.encode(o,c),d>=4&&n.streams&&xp.encode(o,n.streams),d>=4&&n.discoveryKey&&e.fixed32.encode(o,n.discoveryKey),d>=4&&n.version&&e.uint.encode(o,n.version),d>=12&&n.streamInputs&&pl.encode(o,n.streamInputs),d>=12&&n.swarmKey&&e.fixed32.encode(o,n.swarmKey)},decode(o){const n=yp.decode(o),c=e.fixed32.decode(o),r=e.buffer.decode(o),t=e.uint.decode(o);return{header:n,callKey:c,encryptionKey:r,streams:d>=4&&1&t?xp.decode(o):null,discoveryKey:d>=4&&2&t?e.fixed32.decode(o):null,version:d>=4&&4&t?e.uint.decode(o):0,streamInputs:d>=12&&8&t?pl.decode(o):null,swarmKey:d>=12&&16&t?e.fixed32.decode(o):null}}},vp=de,gp=$,Kp={preencode(o,n){vp.preencode(o,n.header),e.fixed32.preencode(o,n.callKey),o.end++,d>=4&&n.streams&&gp.preencode(o,n.streams),d>=12&&n.streamInputs&&ul.preencode(o,n.streamInputs),d>=12&&n.swarmKey&&e.fixed32.preencode(o,n.swarmKey)},encode(o,n){const c=(d>=4&&n.streams?1:0)|(d>=12&&n.streamInputs?2:0)|(d>=12&&n.swarmKey?4:0);vp.encode(o,n.header),e.fixed32.encode(o,n.callKey),e.uint.encode(o,c),d>=4&&n.streams&&gp.encode(o,n.streams),d>=12&&n.streamInputs&&ul.encode(o,n.streamInputs),d>=12&&n.swarmKey&&e.fixed32.encode(o,n.swarmKey)},decode(o){const n=vp.decode(o),c=e.fixed32.decode(o),r=e.uint.decode(o);return{header:n,callKey:c,streams:d>=4&&1&r?gp.decode(o):null,streamInputs:d>=12&&2&r?ul.decode(o):null,swarmKey:d>=12&&4&r?e.fixed32.decode(o):null}}},kp=de,hp={preencode(d,o){kp.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){kp.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:kp.decode(d),callKey:e.fixed32.decode(d)})},wp=de,Pp={preencode(d,o){wp.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){wp.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:wp.decode(d),callKey:e.fixed32.decode(d)})},Rp=de,Tp={preencode(o,n){Rp.preencode(o,n.header),e.fixed32.preencode(o,n.callKey),e.fixed32.preencode(o,n.streamKey),o.end++,d>=12&&n.mediaStreamId&&e.string.preencode(o,n.mediaStreamId),d>=12&&n.type&&e.string.preencode(o,n.type)},encode(o,n){const c=(d>=12&&n.mediaStreamId?1:0)|(d>=12&&n.type?2:0)|(d>=12&&n.muted?4:0);Rp.encode(o,n.header),e.fixed32.encode(o,n.callKey),e.fixed32.encode(o,n.streamKey),e.uint.encode(o,c),d>=12&&n.mediaStreamId&&e.string.encode(o,n.mediaStreamId),d>=12&&n.type&&e.string.encode(o,n.type)},decode(o){const n=Rp.decode(o),c=e.fixed32.decode(o),r=e.fixed32.decode(o),t=o.start<o.end?e.uint.decode(o):0;return{header:n,callKey:c,streamKey:r,mediaStreamId:d>=12&&1&t?e.string.decode(o):null,type:d>=12&&2&t?e.string.decode(o):null,muted:d>=12&&!!(4&t)}}},Ap=de,Sp={preencode(d,o){Ap.preencode(d,o.header),e.fixed32.preencode(d,o.callKey),e.fixed32.preencode(d,o.streamKey)},encode(d,o){Ap.encode(d,o.header),e.fixed32.encode(d,o.callKey),e.fixed32.encode(d,o.streamKey)},decode:d=>({header:Ap.decode(d),callKey:e.fixed32.decode(d),streamKey:e.fixed32.decode(d)})},Ip={preencode(o,n){e.fixed32.preencode(o,n.callKey),e.buffer.preencode(o,n.encryptionKey),e.uint.preencode(o,n.createdAt),o.end++,d>=4&&n.endedAt&&e.uint.preencode(o,n.endedAt),d>=4&&n.discoveryKey&&e.fixed32.preencode(o,n.discoveryKey),d>=4&&n.version&&e.uint.preencode(o,n.version)},encode(o,n){const c=(d>=4&&n.endedAt?1:0)|(d>=4&&n.discoveryKey?2:0)|(d>=4&&n.version?4:0);e.fixed32.encode(o,n.callKey),e.buffer.encode(o,n.encryptionKey),e.uint.encode(o,n.createdAt),e.uint.encode(o,c),d>=4&&n.endedAt&&e.uint.encode(o,n.endedAt),d>=4&&n.discoveryKey&&e.fixed32.encode(o,n.discoveryKey),d>=4&&n.version&&e.uint.encode(o,n.version)},decode(o){const n=e.fixed32.decode(o),c=e.buffer.decode(o),r=e.uint.decode(o),t=e.uint.decode(o);return{callKey:n,encryptionKey:c,createdAt:r,endedAt:d>=4&&1&t?e.uint.decode(o):0,discoveryKey:d>=4&&2&t?e.fixed32.decode(o):null,version:d>=4&&4&t?e.uint.decode(o):0}}},Mp={preencode(d,o){e.fixed32.preencode(d,o.callKey),e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.createdAt)},encode(d,o){e.fixed32.encode(d,o.callKey),e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.createdAt)},decode:d=>({callKey:e.fixed32.decode(d),memberKey:e.fixed32.decode(d),createdAt:e.uint.decode(d)})},Fp={preencode(o,n){e.fixed32.preencode(o,n.callKey),e.fixed32.preencode(o,n.deviceKey),e.fixed32.preencode(o,n.memberKey),e.uint.preencode(o,n.createdAt),o.end++,d>=4&&n.swarmKey&&e.fixed32.preencode(o,n.swarmKey),d>=8&&n.lastHeartbeatAt&&e.uint.preencode(o,n.lastHeartbeatAt)},encode(o,n){const c=(d>=4&&n.swarmKey?1:0)|(d>=8&&n.lastHeartbeatAt?2:0)|(d>=9&&n.isRecording?4:0);e.fixed32.encode(o,n.callKey),e.fixed32.encode(o,n.deviceKey),e.fixed32.encode(o,n.memberKey),e.uint.encode(o,n.createdAt),e.uint.encode(o,c),d>=4&&n.swarmKey&&e.fixed32.encode(o,n.swarmKey),d>=8&&n.lastHeartbeatAt&&e.uint.encode(o,n.lastHeartbeatAt)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),r=e.fixed32.decode(o),t=e.uint.decode(o),i=e.uint.decode(o);return{callKey:n,deviceKey:c,memberKey:r,createdAt:t,swarmKey:d>=4&&1&i?e.fixed32.decode(o):null,lastHeartbeatAt:d>=8&&2&i?e.uint.decode(o):0,isRecording:d>=9&&!!(4&i)}}},qp={preencode(o,n){e.fixed32.preencode(o,n.callKey),e.fixed32.preencode(o,n.deviceKey),e.buffer.preencode(o,n.streamKey),e.uint.preencode(o,n.createdAt),o.end++,d>=12&&n.mediaStreamId&&e.string.preencode(o,n.mediaStreamId),d>=12&&n.type&&e.string.preencode(o,n.type),d>=12&&n.statusKey&&e.uint.preencode(o,n.statusKey)},encode(o,n){const c=(d>=12&&n.mediaStreamId?1:0)|(d>=12&&n.type?2:0)|(d>=12&&n.statusKey?4:0);e.fixed32.encode(o,n.callKey),e.fixed32.encode(o,n.deviceKey),e.buffer.encode(o,n.streamKey),e.uint.encode(o,n.createdAt),e.uint.encode(o,c),d>=12&&n.mediaStreamId&&e.string.encode(o,n.mediaStreamId),d>=12&&n.type&&e.string.encode(o,n.type),d>=12&&n.statusKey&&e.uint.encode(o,n.statusKey)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),r=e.buffer.decode(o),t=e.uint.decode(o),i=o.start<o.end?e.uint.decode(o):0;return{callKey:n,deviceKey:c,streamKey:r,createdAt:t,mediaStreamId:d>=12&&1&i?e.string.decode(o):null,type:d>=12&&2&i?e.string.decode(o):null,statusKey:d>=12&&4&i?e.uint.decode(o):0}}},Cp={preencode(o,n){e.fixed32.preencode(o,n.callKey),o.end++,d>=4&&n.selfDeviceKey&&e.fixed32.preencode(o,n.selfDeviceKey),d>=12&&n.createdAt&&e.uint.preencode(o,n.createdAt)},encode(o,n){const c=(d>=4&&n.selfDeviceKey?1:0)|(d>=12&&n.createdAt?2:0);e.fixed32.encode(o,n.callKey),e.uint.encode(o,c),d>=4&&n.selfDeviceKey&&e.fixed32.encode(o,n.selfDeviceKey),d>=12&&n.createdAt&&e.uint.encode(o,n.createdAt)},decode(o){const n=e.fixed32.decode(o),c=e.uint.decode(o);return{callKey:n,selfDeviceKey:d>=4&&1&c?e.fixed32.decode(o):null,createdAt:d>=12&&2&c?e.uint.decode(o):0}}},Vp={preencode(d,o){e.uint.preencode(d,o.lastCleared)},encode(d,o){e.uint.encode(d,o.lastCleared)},decode:d=>({lastCleared:e.uint.decode(d)})},Hp={Nightly:"Nightly",Internal:"Internal",Production:"Production"},Dp={preencode(e,d){e.end++},encode(d,o){switch(o){case"Nightly":e.uint.encode(d,1);break;case"Internal":e.uint.encode(d,2);break;case"Production":e.uint.encode(d,3);break;default:throw new Error("Unknown enum")}},decode(d){switch(e.uint.decode(d)){case 1:return"Nightly";case 2:return"Internal";case 3:return"Production";default:return null}}},Lp=de,jp={preencode(e,d){Lp.preencode(e,d.header)},encode(e,d){Lp.encode(e,d.header)},decode:e=>({header:Lp.decode(e)})},Ep=de,Bp={preencode(e,d){Ep.preencode(e,d.header)},encode(e,d){Ep.encode(e,d.header)},decode:e=>({header:Ep.decode(e)})},zp={preencode(o,n){Dp.preencode(o,n.buildType),o.end++,d>=6&&n.latestOfflineAbi&&e.uint.preencode(o,n.latestOfflineAbi)},encode(o,n){const c=d>=6&&n.latestOfflineAbi?1:0;Dp.encode(o,n.buildType),e.uint.encode(o,c),d>=6&&n.latestOfflineAbi&&e.uint.encode(o,n.latestOfflineAbi)},decode(o){const n=Dp.decode(o),c=o.start<o.end?e.uint.decode(o):0;return{buildType:n,latestOfflineAbi:d>=6&&1&c?e.uint.decode(o):0}}},Op=de,Np={preencode(d,o){Op.preencode(d,o.header),e.fixed32.preencode(d,o.deviceKey),e.buffer.preencode(d,o.deviceProof),e.buffer.preencode(d,o.writerProof)},encode(d,o){Op.encode(d,o.header),e.fixed32.encode(d,o.deviceKey),e.buffer.encode(d,o.deviceProof),e.buffer.encode(d,o.writerProof)},decode:d=>({header:Op.decode(d),deviceKey:e.fixed32.decode(d),deviceProof:e.buffer.decode(d),writerProof:e.buffer.decode(d)})},Up={preencode(o,n){o.end++,d>=7&&n.otaResyncPrivateProfileBump&&e.uint.preencode(o,n.otaResyncPrivateProfileBump)},encode(o,n){const c=d>=7&&n.otaResyncPrivateProfileBump?1:0;e.uint.encode(o,c),d>=7&&n.otaResyncPrivateProfileBump&&e.uint.encode(o,n.otaResyncPrivateProfileBump)},decode(o){const n=e.uint.decode(o);return{otaResyncPrivateProfileBump:d>=7&&1&n?e.uint.decode(o):0}}},Jp={preencode(d,o){e.fixed32.preencode(d,o.deviceKey),e.buffer.preencode(d,o.proof),e.uint.preencode(d,o.createdAt)},encode(d,o){e.fixed32.encode(d,o.deviceKey),e.buffer.encode(d,o.proof),e.uint.encode(d,o.createdAt)},decode:d=>({deviceKey:e.fixed32.decode(d),proof:e.buffer.decode(d),createdAt:e.uint.decode(d)})},Wp=de,Gp={preencode(d,o){Wp.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){Wp.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:Wp.decode(d),callKey:e.fixed32.decode(d)})},Qp=de,Xp={preencode(d,o){Qp.preencode(d,o.header),e.fixed32.preencode(d,o.callKey),e.fixed32.preencode(d,o.deviceKey)},encode(d,o){Qp.encode(d,o.header),e.fixed32.encode(d,o.callKey),e.fixed32.encode(d,o.deviceKey)},decode:d=>({header:Qp.decode(d),callKey:e.fixed32.decode(d),deviceKey:e.fixed32.decode(d)})},Yp=e.frame(Nn),Zp=e.array(e.frame(Dn)),$p={preencode(e,d){Yp.preencode(e,d.digest),Zp.preencode(e,d.mine)},encode(e,d){Yp.encode(e,d.digest),Zp.encode(e,d.mine)},decode:e=>({digest:Yp.decode(e),mine:Zp.decode(e)})},_p=de,eu={preencode(d,o){_p.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){_p.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:_p.decode(d),callKey:e.fixed32.decode(d)})},du=de,ou={preencode(d,o){du.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){du.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:du.decode(d),callKey:e.fixed32.decode(d)})},nu={preencode(o,n){o.end++,d>=9&&n.profileSnoozeTime&&e.uint.preencode(o,n.profileSnoozeTime)},encode(o,n){const c=(d>=9&&n.disableReadReceipts?1:0)|(d>=9&&n.stripAttachmentMetadata?2:0)|(d>=9&&n.profileSnoozeTime?4:0);e.uint.encode(o,c),d>=9&&n.profileSnoozeTime&&e.uint.encode(o,n.profileSnoozeTime)},decode(o){const n=e.uint.decode(o);return{disableReadReceipts:d>=9&&!!(1&n),stripAttachmentMetadata:d>=9&&!!(2&n),profileSnoozeTime:d>=9&&4&n?e.uint.decode(o):0}}},cu={preencode(o,n){o.end++,d>=9&&n.maxPeers&&e.uint.preencode(o,n.maxPeers)},encode(o,n){const c=d>=9&&n.maxPeers?1:0;e.uint.encode(o,c),d>=9&&n.maxPeers&&e.uint.encode(o,n.maxPeers)},decode(o){const n=e.uint.decode(o);return{maxPeers:d>=9&&1&n?e.uint.decode(o):0}}},ru=de,tu={preencode(e,d){ru.preencode(e,d.header),n.preencode(e,d.oplog)},encode(e,d){ru.encode(e,d.header),n.encode(e,d.oplog)},decode:e=>({header:ru.decode(e),oplog:n.decode(e)})},iu=de,au={preencode(e,d){iu.preencode(e,d.header)},encode(e,d){iu.encode(e,d.header)},decode:e=>({header:iu.decode(e)})},su={preencode(d,o){e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.timestamp)},encode(d,o){e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.timestamp)},decode:d=>({memberKey:e.fixed32.decode(d),timestamp:e.uint.decode(d)})},pu=de,uu={preencode(o,n){pu.preencode(o,n.header),e.fixed32.preencode(o,n.memberKey),o.end++,d>=10&&n.alias&&e.string.preencode(o,n.alias)},encode(o,n){const c=d>=10&&n.alias?1:0;pu.encode(o,n.header),e.fixed32.encode(o,n.memberKey),e.uint.encode(o,c),d>=10&&n.alias&&e.string.encode(o,n.alias)},decode(o){const n=pu.decode(o),c=e.fixed32.decode(o),r=e.uint.decode(o);return{header:n,memberKey:c,alias:d>=10&&1&r?e.string.decode(o):null}}},lu={preencode(d,o){e.uint.preencode(d,o.streams)},encode(d,o){e.uint.encode(d,o.streams)},decode:d=>({streams:e.uint.decode(d)})},fu={preencode(d,o){e.fixed32.preencode(d,o.streamKey),e.string.preencode(d,o.mediaStreamId),e.string.preencode(d,o.type),d.end++},encode(o,n){const c=d>=12&&n.muted?1:0;e.fixed32.encode(o,n.streamKey),e.string.encode(o,n.mediaStreamId),e.string.encode(o,n.type),e.uint.encode(o,c)},decode(o){const n=e.fixed32.decode(o),c=e.string.decode(o),r=e.string.decode(o),t=e.uint.decode(o);return{streamKey:n,mediaStreamId:c,type:r,muted:d>=12&&!!(1&t)}}},mu=de,yu={preencode(d,o){mu.preencode(d,o.header),e.fixed32.preencode(d,o.callKey),e.fixed32.preencode(d,o.streamKey),d.end++},encode(o,n){const c=d>=12&&n.muted?1:0;mu.encode(o,n.header),e.fixed32.encode(o,n.callKey),e.fixed32.encode(o,n.streamKey),e.uint.encode(o,c)},decode(o){const n=mu.decode(o),c=e.fixed32.decode(o),r=e.fixed32.decode(o),t=e.uint.decode(o);return{header:n,callKey:c,streamKey:r,muted:d>=12&&!!(1&t)}}},xu={preencode(d,o){e.uint.preencode(d,o.statusKey),d.end++},encode(o,n){const c=d>=12&&n.muted?1:0;e.uint.encode(o,n.statusKey),e.uint.encode(o,c)},decode(o){const n=e.uint.decode(o),c=e.uint.decode(o);return{statusKey:n,muted:d>=12&&!!(1&c)}}},bu={preencode(n,c){e.fixed32.preencode(n,c.key),n.end++,d>=13&&c.encryptionKey&&e.buffer.preencode(n,c.encryptionKey),d>=13&&c.bootFrom&&o.preencode(n,c.bootFrom)},encode(n,c){const r=(d>=13&&c.encryptionKey?1:0)|(d>=13&&c.bootFrom?2:0);e.fixed32.encode(n,c.key),e.uint.encode(n,r),d>=13&&c.encryptionKey&&e.buffer.encode(n,c.encryptionKey),d>=13&&c.bootFrom&&o.encode(n,c.bootFrom)},decode(n){const c=e.fixed32.decode(n),r=e.uint.decode(n);return{key:c,encryptionKey:d>=13&&1&r?e.buffer.decode(n):null,bootFrom:d>=13&&2&r?o.decode(n):null}}},vu={preencode(d,o){e.fixed32.preencode(d,o.hash)},encode(d,o){e.fixed32.encode(d,o.hash)},decode:d=>({hash:e.fixed32.decode(d)})},gu={preencode(d,o){e.fixed32.preencode(d,o.hash),e.buffer.preencode(d,o.data)},encode(d,o){e.fixed32.encode(d,o.hash),e.buffer.encode(d,o.data)},decode:d=>({hash:e.fixed32.decode(d),data:e.buffer.decode(d)})},Ku={preencode(n,c){o.preencode(n,c.autobeeMigrationHead),n.end++,d>=13&&c.legacyViewHead&&o.preencode(n,c.legacyViewHead),d>=13&&c.dbViewHead&&o.preencode(n,c.dbViewHead),d>=13&&c.blobsViewHead&&o.preencode(n,c.blobsViewHead),e.uint.preencode(n,c.createdAt)},encode(n,c){const r=(d>=13&&c.legacyViewHead?1:0)|(d>=13&&c.dbViewHead?2:0)|(d>=13&&c.blobsViewHead?4:0);o.encode(n,c.autobeeMigrationHead),e.uint.encode(n,r),d>=13&&c.legacyViewHead&&o.encode(n,c.legacyViewHead),d>=13&&c.dbViewHead&&o.encode(n,c.dbViewHead),d>=13&&c.blobsViewHead&&o.encode(n,c.blobsViewHead),e.uint.encode(n,c.createdAt)},decode(n){const c=o.decode(n),r=e.uint.decode(n);return{autobeeMigrationHead:c,legacyViewHead:d>=13&&1&r?o.decode(n):null,dbViewHead:d>=13&&2&r?o.decode(n):null,blobsViewHead:d>=13&&4&r?o.decode(n):null,createdAt:e.uint.decode(n)}}},ku=de,hu={preencode(e,n){ku.preencode(e,n.header),o.preencode(e,n.head),e.end++,d>=13&&n.legacyViewHead&&o.preencode(e,n.legacyViewHead),d>=13&&n.dbViewHead&&o.preencode(e,n.dbViewHead),d>=13&&n.blobsViewHead&&o.preencode(e,n.blobsViewHead)},encode(n,c){const r=(d>=13&&c.legacyViewHead?1:0)|(d>=13&&c.dbViewHead?2:0)|(d>=13&&c.blobsViewHead?4:0);ku.encode(n,c.header),o.encode(n,c.head),e.uint.encode(n,r),d>=13&&c.legacyViewHead&&o.encode(n,c.legacyViewHead),d>=13&&c.dbViewHead&&o.encode(n,c.dbViewHead),d>=13&&c.blobsViewHead&&o.encode(n,c.blobsViewHead)},decode(n){const c=ku.decode(n),r=o.decode(n),t=e.uint.decode(n);return{header:c,head:r,legacyViewHead:d>=13&&1&t?o.decode(n):null,dbViewHead:d>=13&&2&t?o.decode(n):null,blobsViewHead:d>=13&&4&t?o.decode(n):null}}},wu={preencode(n,c){e.fixed32.preencode(n,c.roomKey),e.fixed32.preencode(n,c.encryptionKey),e.fixed32.preencode(n,c.seed),n.end++,d>=13&&c.bootFrom&&o.preencode(n,c.bootFrom)},encode(n,c){const r=d>=13&&c.bootFrom?1:0;e.fixed32.encode(n,c.roomKey),e.fixed32.encode(n,c.encryptionKey),e.fixed32.encode(n,c.seed),e.uint.encode(n,r),d>=13&&c.bootFrom&&o.encode(n,c.bootFrom)},decode(n){const c=e.fixed32.decode(n),r=e.fixed32.decode(n),t=e.fixed32.decode(n),i=e.uint.decode(n);return{roomKey:c,encryptionKey:r,seed:t,bootFrom:d>=13&&1&i?o.decode(n):null}}},Pu=bd,Ru={preencode(d,o){e.fixed32.preencode(d,o.memberKey),e.fixed32.preencode(d,o.deviceKey),e.uint.preencode(d,o.deviceLength),e.uint.preencode(d,o.clock),Pu.preencode(d,o.status)},encode(d,o){e.fixed32.encode(d,o.memberKey),e.fixed32.encode(d,o.deviceKey),e.uint.encode(d,o.deviceLength),e.uint.encode(d,o.clock),Pu.encode(d,o.status)},decode:d=>({memberKey:e.fixed32.decode(d),deviceKey:e.fixed32.decode(d),deviceLength:e.uint.decode(d),clock:e.uint.decode(d),status:Pu.decode(d)})},Tu={preencode(d,o){e.fixed32.preencode(d,o.hash),e.buffer.preencode(d,o.blob)},encode(d,o){e.fixed32.encode(d,o.hash),e.buffer.encode(d,o.blob)},decode:d=>({hash:e.fixed32.decode(d),blob:e.buffer.decode(d)})},Au=vc,Su=gc,Iu=tc,Mu={preencode(n,c){e.fixed32.preencode(n,c.roomKey),e.buffer.preencode(n,c.encryptionKey),e.fixed32.preencode(n,c.mailbox),Au.preencode(n,c.status),e.uint.preencode(n,c.clock),n.end++,d>=13&&c.initiator&&o.preencode(n,c.initiator),d>=13&&c.bootFrom&&o.preencode(n,c.bootFrom),d>=13&&c.identitySwap&&Su.preencode(n,c.identitySwap),d>=13&&c.identitySwapV2&&Iu.preencode(n,c.identitySwapV2),d>=13&&c.contact&&e.fixed32.preencode(n,c.contact)},encode(n,c){const r=(d>=13&&c.initiator?1:0)|(d>=13&&c.bootFrom?2:0)|(d>=13&&c.identitySwap?4:0)|(d>=13&&c.identitySwapV2?8:0)|(d>=13&&c.contact?16:0);e.fixed32.encode(n,c.roomKey),e.buffer.encode(n,c.encryptionKey),e.fixed32.encode(n,c.mailbox),Au.encode(n,c.status),e.uint.encode(n,c.clock),e.uint.encode(n,r),d>=13&&c.initiator&&o.encode(n,c.initiator),d>=13&&c.bootFrom&&o.encode(n,c.bootFrom),d>=13&&c.identitySwap&&Su.encode(n,c.identitySwap),d>=13&&c.identitySwapV2&&Iu.encode(n,c.identitySwapV2),d>=13&&c.contact&&e.fixed32.encode(n,c.contact)},decode(n){const c=e.fixed32.decode(n),r=e.buffer.decode(n),t=e.fixed32.decode(n),i=Au.decode(n),a=e.uint.decode(n),s=e.uint.decode(n);return{roomKey:c,encryptionKey:r,mailbox:t,status:i,clock:a,initiator:d>=13&&1&s?o.decode(n):null,bootFrom:d>=13&&2&s?o.decode(n):null,identitySwap:d>=13&&4&s?Su.decode(n):null,identitySwapV2:d>=13&&8&s?Iu.decode(n):null,contact:d>=13&&16&s?e.fixed32.decode(n):null}}},Fu=de,qu={preencode(n,c){Fu.preencode(n,c.header),e.fixed32.preencode(n,c.roomKey),e.buffer.preencode(n,c.encryptionKey),e.fixed32.preencode(n,c.mailbox),n.end++,d>=13&&c.bootFrom&&o.preencode(n,c.bootFrom),d>=13&&c.initiator&&o.preencode(n,c.initiator),d>=13&&c.dm&&e.fixed32.preencode(n,c.dm)},encode(n,c){const r=(d>=13&&c.bootFrom?1:0)|(d>=13&&c.initiator?2:0)|(d>=13&&c.dm?4:0)|(d>=13&&c.isReadOnly?8:0);Fu.encode(n,c.header),e.fixed32.encode(n,c.roomKey),e.buffer.encode(n,c.encryptionKey),e.fixed32.encode(n,c.mailbox),e.uint.encode(n,r),d>=13&&c.bootFrom&&o.encode(n,c.bootFrom),d>=13&&c.initiator&&o.encode(n,c.initiator),d>=13&&c.dm&&e.fixed32.encode(n,c.dm)},decode(n){const c=Fu.decode(n),r=e.fixed32.decode(n),t=e.buffer.decode(n),i=e.fixed32.decode(n),a=e.uint.decode(n);return{header:c,roomKey:r,encryptionKey:t,mailbox:i,bootFrom:d>=13&&1&a?o.decode(n):null,initiator:d>=13&&2&a?o.decode(n):null,dm:d>=13&&4&a?e.fixed32.decode(n):null,isReadOnly:d>=13&&!!(8&a)}}},Cu={preencode(n,c){e.fixed32.preencode(n,c.roomKey),e.buffer.preencode(n,c.encryptionKey),n.end++,d>=13&&c.bootFrom&&o.preencode(n,c.bootFrom),d>=13&&c.initiator&&o.preencode(n,c.initiator)},encode(n,c){const r=(d>=13&&c.bootFrom?1:0)|(d>=13&&c.initiator?2:0);e.fixed32.encode(n,c.roomKey),e.buffer.encode(n,c.encryptionKey),e.uint.encode(n,r),d>=13&&c.bootFrom&&o.encode(n,c.bootFrom),d>=13&&c.initiator&&o.encode(n,c.initiator)},decode(n){const c=e.fixed32.decode(n),r=e.buffer.decode(n),t=e.uint.decode(n);return{roomKey:c,encryptionKey:r,bootFrom:d>=13&&1&t?o.decode(n):null,initiator:d>=13&&2&t?o.decode(n):null}}},Vu={preencode(d,o){e.fixed32.preencode(d,o.roomKey),ll.preencode(d,o.head),e.uint.preencode(d,o.timestamp),d.end++},encode(o,n){const c=d>=13&&n.incremental?1:0;e.fixed32.encode(o,n.roomKey),ll.encode(o,n.head),e.uint.encode(o,n.timestamp),e.uint.encode(o,c)},decode(o){const n=e.fixed32.decode(o),c=ll.decode(o),r=e.uint.decode(o),t=e.uint.decode(o);return{roomKey:n,head:c,timestamp:r,incremental:d>=13&&!!(1&t)}}},Hu={preencode(o,n){o.end++,d>=13&&n.key&&e.fixed32.preencode(o,n.key),e.uint.preencode(o,n.length)},encode(o,n){const c=d>=13&&n.key?1:0;e.uint.encode(o,c),d>=13&&n.key&&e.fixed32.encode(o,n.key),e.uint.encode(o,n.length)},decode(o){const n=e.uint.decode(o);return{key:d>=13&&1&n?e.fixed32.decode(o):null,length:e.uint.decode(o)}}},Du={preencode(n,c){e.fixed32.preencode(n,c.roomKey),n.end++,d>=13&&c.legacyViewHead&&o.preencode(n,c.legacyViewHead),d>=13&&c.dbViewHead&&o.preencode(n,c.dbViewHead),d>=13&&c.blobsViewHead&&o.preencode(n,c.blobsViewHead),d>=13&&c.autobeeMigrationHead&&o.preencode(n,c.autobeeMigrationHead)},encode(n,c){const r=(d>=13&&c.legacyViewHead?1:0)|(d>=13&&c.dbViewHead?2:0)|(d>=13&&c.blobsViewHead?4:0)|(d>=13&&c.autobeeMigrationHead?8:0);e.fixed32.encode(n,c.roomKey),e.uint.encode(n,r),d>=13&&c.legacyViewHead&&o.encode(n,c.legacyViewHead),d>=13&&c.dbViewHead&&o.encode(n,c.dbViewHead),d>=13&&c.blobsViewHead&&o.encode(n,c.blobsViewHead),d>=13&&c.autobeeMigrationHead&&o.encode(n,c.autobeeMigrationHead)},decode(n){const c=e.fixed32.decode(n),r=e.uint.decode(n);return{roomKey:c,legacyViewHead:d>=13&&1&r?o.decode(n):null,dbViewHead:d>=13&&2&r?o.decode(n):null,blobsViewHead:d>=13&&4&r?o.decode(n):null,autobeeMigrationHead:d>=13&&8&r?o.decode(n):null}}},Lu={preencode(d,o){e.fixed32.preencode(d,o.id),e.fixed32.preencode(d,o.writerKey),e.buffer.preencode(d,o.blindResponse)},encode(d,o){e.fixed32.encode(d,o.id),e.fixed32.encode(d,o.writerKey),e.buffer.encode(d,o.blindResponse)},decode:d=>({id:e.fixed32.decode(d),writerKey:e.fixed32.decode(d),blindResponse:e.buffer.decode(d)})},ju=de,Eu={preencode(d,o){ju.preencode(d,o.header),e.buffer.preencode(d,o.blindResponse)},encode(d,o){ju.encode(d,o.header),e.buffer.encode(d,o.blindResponse)},decode:d=>({header:ju.decode(d),blindResponse:e.buffer.decode(d)})},Bu=e.frame(qr),zu={preencode(o,n){e.string.preencode(o,n.mnemonic),o.end++,d>=15&&n.profileDiscoveryTimeout&&e.uint.preencode(o,n.profileDiscoveryTimeout),d>=15&&n.privateProfileKey&&e.fixed32.preencode(o,n.privateProfileKey),d>=15&&n.identity&&Bu.preencode(o,n.identity)},encode(o,n){const c=(d>=15&&n.profileDiscoveryTimeout?1:0)|(d>=15&&n.privateProfileKey?2:0)|(d>=15&&n.identity?4:0);e.string.encode(o,n.mnemonic),e.uint.encode(o,c),d>=15&&n.profileDiscoveryTimeout&&e.uint.encode(o,n.profileDiscoveryTimeout),d>=15&&n.privateProfileKey&&e.fixed32.encode(o,n.privateProfileKey),d>=15&&n.identity&&Bu.encode(o,n.identity)},decode(o){const n=e.string.decode(o),c=e.uint.decode(o);return{mnemonic:n,profileDiscoveryTimeout:d>=15&&1&c?e.uint.decode(o):0,privateProfileKey:d>=15&&2&c?e.fixed32.decode(o):null,identity:d>=15&&4&c?Bu.decode(o):null}}},Ou=e.frame(w),Nu=e.frame(lu),Uu=Ou,Ju=e.frame(le),Wu=Ou,Gu=Ju,Qu=e.frame(wu),Xu=Ju,Yu=e.frame(wd),Zu=e.frame(mp),$u=Zu,_u=Ou,el=Ou,dl=e.frame(Ic),ol=dl,nl=dl,cl=e.frame(Cp),rl=e.frame($p),tl=e.frame(nu),il=e.frame(Hu),al=il,sl=Ju,pl=e.array(e.frame(fu)),ul=pl,ll=il;function fl(e){switch(e){case"@keet/head":return o;case"@keet/oplog-id":return n;case"@keet/encryption-keypair":return c;case"@keet/signing-keypair":return r;case"@keet/room-keys":return t;case"@keet/operation-header":return i;case"@keet/blob-pointer":return a;case"@keet/file-dimensions":return s;case"@keet/file-metadata":return u;case"@keet/external-drive-pointer":return l;case"@keet/external-blob-pointer":return f;case"@keet/file-pointer":return x;case"@keet/file":return g;case"@keet/image-file":return w;case"@keet/file-status":return P;case"@keet/file-record":return A;case"@keet/device-status":return S;case"@keet/member-status":return I;case"@keet/member-moderation-status":return M;case"@keet/abi":return F;case"@keet/device-stats":return q;case"@keet/member-stats":return C;case"@keet/chat-stats":return V;case"@keet/file-stats":return H;case"@keet/stats":return B;case"@keet/room-type":return O;case"@keet/system-settings":return N;case"@keet/system-digest":return W;case"@keet/room-seed":return G;case"@keet/room-capabilities":return Q;case"@keet/room-supported-language":return Y;case"@keet/room-config":return _;case"@keet/blind-peer":return ee;case"@keet/add-blind-peer-operation":return ne;case"@keet/remove-blind-peer-operation":return re;case"@keet/identity-attestation":return te;case"@keet/device-invitation":return ie;case"@keet/device":return pe;case"@keet/member-profile":return ue;case"@keet/device-profile":return le;case"@keet/member-update":return me;case"@keet/device-update":return ye;case"@keet/member-contact-info":return be;case"@keet/signed-pairing-data":return ve;case"@keet/device-request-identity":return ge;case"@keet/device-response-identity":return Ke;case"@keet/device-identity":return ke;case"@keet/device-request-with-invitation":return Re;case"@keet/device-request-with-invitation-and-proof":return Ae;case"@keet/device-request-with-member-proof":return Me;case"@keet/device-request":return Ce;case"@keet/device-response":return De;case"@keet/invitation-metadata":return Le;case"@keet/invitation":return Be;case"@keet/add-invitation-operation":return Ne;case"@keet/remove-invitation-operation":return Je;case"@keet/sendable-room-invitation":return We;case"@keet/readonly-room-invitation":return Ge;case"@keet/sendable-identity-invitation":return Qe;case"@keet/sendable-contact-invitation":return Xe;case"@keet/sendable-invitation":return dd;case"@keet/add-device-operation":return nd;case"@keet/update-device-operation":return rd;case"@keet/remove-device-operation":return id;case"@keet/start-indexing-operation":return ad;case"@keet/stop-indexing-operation":return sd;case"@keet/join-request":return ud;case"@keet/accept-join-request-operation":return md;case"@keet/reject-join-request-operation":return xd;case"@keet/member":return gd;case"@keet/full-member":return hd;case"@keet/member-proofs":return wd;case"@keet/update-member-operation":return Td;case"@keet/change-member-status-operation":return Id;case"@keet/change-member-role-operation":return Fd;case"@keet/remove-member-operation":return Cd;case"@keet/member-activity":return Vd;case"@keet/member-joined-event":return Hd;case"@keet/member-left-event":return Dd;case"@keet/member-removed-event":return Ld;case"@keet/title-changed-chat-event":return jd;case"@keet/chat-event":return Nd;case"@keet/sendable-event":return Ud;case"@keet/display-range":return Jd;case"@keet/display-content-range":return Gd;case"@keet/mention-display-item":return Xd;case"@keet/translation-display-item":return Zd;case"@keet/link-preview":return eo;case"@keet/display-link-item":return co;case"@keet/display":return yo;case"@keet/oplog-message":return go;case"@keet/index-message":return ho;case"@keet/full-index-message":return Ro;case"@keet/message-status":return To;case"@keet/message-index-id":return Ao;case"@keet/thread":return Io;case"@keet/chat-message-record":return Co;case"@keet/full-chat-message-record":return Lo;case"@keet/add-chat-message-operation":return Bo;case"@keet/remove-chat-message-operation":return Oo;case"@keet/update-chat-message-operation":return Jo;case"@keet/pin-chat-message-operation":return Go;case"@keet/display-type":return Xo;case"@keet/add-file-preview-operation":return Zo;case"@keet/reaction":return $o;case"@keet/reactions-summary":return _o;case"@keet/reactions-digest":return dn;case"@keet/add-reaction-operation":return nn;case"@keet/remove-reaction-operation":return rn;case"@keet/update-room-config-operation":return sn;case"@keet/group-member":return pn;case"@keet/user-registry-info":return un;case"@keet/room-identity":return fn;case"@keet/genesis-operation":return kn;case"@keet/upgrade-operation":return wn;case"@keet/migrate-abi-operation":return Rn;case"@keet/system-settings-keys":return An;case"@keet/update-system-settings-operation":return Mn;case"@keet/test-increment-operation":return qn;case"@keet/test-collection-record-1":return Cn;case"@keet/label-type":return Hn;case"@keet/chat-label":return Dn;case"@keet/add-chat-label-operation":return jn;case"@keet/remove-chat-label-operation":return Bn;case"@keet/chat-label-summary":return zn;case"@keet/chat-label-digest":return Nn;case"@keet/update-read-length-operation":return Jn;case"@keet/read-length":return Wn;case"@keet/tmp-removed-member":return Gn;case"@keet-private-id/contact":return Xn;case"@keet-private-id/v3-room-migration-info":return Yn;case"@keet-private-id/run-v3-migration-operation":return _n;case"@keet-private-id/update-identity-operation":return dc;case"@keet-private-id/counters":return oc;case"@keet-private-id/stats":return nc;case"@keet-private-id/add-entropy-operation":return cc;case"@keet-private-id/pending-invitation-identity":return rc;case"@keet-private-id/pending-invitation":return ic;case"@keet-private-id/resolve-pending-invitation-operation":return sc;case"@keet-private-id/add-pending-invitation-operation":return lc;case"@keet-private-id/remove-pending-invitation-operation":return mc;case"@keet-private-id/identity-swap":return yc;case"@keet-private-id/identity-swap-v2":return xc;case"@keet-private-id/room-status":return bc;case"@keet-private-id/room":return kc;case"@keet-private-id/add-room-operation":return wc;case"@keet-private-id/remove-room-operation":return Rc;case"@keet-private-id/update-room-status-operation":return Sc;case"@keet-private-id/contact-status":return Ic;case"@keet-private-id/contact-record":return Fc;case"@keet-private-id/add-contact-operation":return Vc;case"@keet-private-id/update-contact-status-operation":return Dc;case"@keet-private-id/remove-contact-operation":return jc;case"@keet-private-id/activate-contact-room-operation":return Bc;case"@keet-private-id/contact-request-status":return zc;case"@keet-private-id/contact-request-body":return Uc;case"@keet-private-id/contact-request":return Wc;case"@keet-private-id/contact-request-record":return Zc;case"@keet-private-id/add-contact-request-operation":return _c;case"@keet-private-id/update-contact-request-status-operation":return or;case"@keet-private-id/profile-discovery-record-v1":return nr;case"@keet-private-id/profile-discovery-record":return cr;case"@keet-private-id/unreads":return rr;case"@keet-private-id/add-unreads-key-operation":return ir;case"@keet-private-id/remove-unreads-key-operation":return sr;case"@keet-private-id/settings":return pr;case"@keet-private-id/user-settings-key":return lr;case"@keet-private-id/update-settings-operation":return yr;case"@local/background-sync-room":return xr;case"@local/stats":return br;case"@local/migration-status":return vr;case"@local/v3-private-profile-migration":return Kr;case"@local/v3-room-migration":return wr;case"@local/room-migration-stats":return Pr;case"@local/room-migration":return Tr;case"@local/identity-status":return Ar;case"@local/identity-swap":return Sr;case"@local/identity-record":return qr;case"@local/tasks":return Vr;case"@local/room-keys":return Hr;case"@local/join-room-invitation-task":return Lr;case"@local/join-room-response-task":return jr;case"@local/fast-forward-to":return Er;case"@local/add-room-fields":return Br;case"@local/join-room-keys-task":return Or;case"@local/create-room-task":return Ur;case"@local/leave-room-task":return Jr;case"@local/clear-room-task":return Wr;case"@local/restore-identity-task":return Gr;case"@local/send-contact-request-task":return Xr;case"@local/migrate-v2-room-task":return Yr;case"@local/task":return tt;case"@local/shared-invitation":return at;case"@local/room-status":return st;case"@local/room-timestamps":return pt;case"@local/room":return Rt;case"@local/room-preferences":return At;case"@local/room-metadata":return St;case"@local/writer":return It;case"@local/writer-append":return Mt;case"@local/member":return qt;case"@local/device":return Vt;case"@local/file":return Dt;case"@local/debug-flag":return Lt;case"@local/debug":return Et;case"@local/hyperdht-record":return zt;case"@local/unread":return Ot;case"@local/error-record-details":return Nt;case"@local/error-record":return Jt;case"@local/keet-state":return Gt;case"@local/file-stats":return Qt;case"@api/request-header":return Xt;case"@api/response-header":return Yt;case"@api/subscription-request-header":return Zt;case"@api/subscription-response-header":return $t;case"@api/boot-request":return ei;case"@api/boot-response":return oi;case"@api/self-destruct-request":return ci;case"@api/core/have":return ri;case"@api/core/create-room-request":return si;case"@api/core/create-room-response":return ui;case"@api/core/activate-room-request":return fi;case"@api/core/deactivate-room-request":return yi;case"@api/core/leave-room-request":return bi;case"@api/core/leave-room-response":return gi;case"@api/core/update-room-config-request":return hi;case"@api/core/update-room-settings-request":return Ri;case"@api/core/update-room-status-request":return Si;case"@api/core/add-chat-message-request":return Fi;case"@api/core/add-chat-message-response":return Ci;case"@api/core/edit-chat-message-request":return Di;case"@api/core/edit-chat-message-response":return ji;case"@api/core/remove-chat-message-request":return Bi;case"@api/core/remove-chat-message-response":return Oi;case"@api/core/add-chat-reaction-request":return Ui;case"@api/core/add-chat-reaction-response":return Wi;case"@api/core/remove-chat-reaction-request":return Qi;case"@api/core/remove-chat-reaction-response":return Yi;case"@api/core/want-lobby":return Zi;case"@api/core/unwant-lobby":return $i;case"@api/core/want-room-info":return ea;case"@api/core/want-chat":return da;case"@api/core/unwant-chat":return oa;case"@api/core/want-members":return na;case"@api/core/unwant-members":return ca;case"@api/core/lobby-record":return ra;case"@api/core/lobby-record-change-type":return ia;case"@api/core/lobby":return sa;case"@api/core/lobby-room":return pa;case"@api/core/room-role":return fa;case"@api/core/room-info":return ba;case"@api/core/room-info-status":return ga;case"@api/core/room-info-digest":return ka;case"@api/core/room-info-config":return wa;case"@api/core/room-info-role":return Ra;case"@api/core/room-info-last-message":return Ta;case"@api/core/member":return Sa;case"@api/core/device":return Ma;case"@api/core/member-list-add":return Fa;case"@api/core/member-list-remove":return qa;case"@api/core/chat-reset":return Va;case"@api/core/message-timestamps":return Ha;case"@api/core/message":return Ba;case"@api/core/message-info":return Na;case"@api/core/message-info-chat":return Ja;case"@api/core/message-info-member":return Ga;case"@api/core/message-info-role":return Ya;case"@api/core/message-info-reactions":return $a;case"@api/core/reactions":return es;case"@api/core/want-pairing":return ds;case"@api/core/unwant-pairing":return os;case"@api/core/pending-invitations":return cs;case"@api/core/join-request":return ts;case"@api/core/join-requests":return as;case"@api/core/pairing":return us;case"@api/core/start-pairing-request":return fs;case"@api/core/start-pairing-response":return ys;case"@api/core/invitation-permissions":return xs;case"@api/core/create-room-invitation-request":return gs;case"@api/core/create-room-invitation-response":return ks;case"@api/core/create-identity-invitation-request":return ws;case"@api/core/create-identity-invitation-response":return Rs;case"@api/core/accept-join-request-request":return Ss;case"@api/core/accept-join-request-response":return Ms;case"@api/core/reject-join-request-request":return Cs;case"@api/core/reject-join-request-response":return Hs;case"@api/core/stop-pairing-request":return Ls;case"@api/core/stop-pairing-response":return Es;case"@api/core/update-profile-request":return zs;case"@api/core/want-identity":return Os;case"@api/core/unwant-identity":return Ns;case"@api/core/identity-status":return Us;case"@api/core/identity":return Gs;case"@api/core/identity-member":return Qs;case"@api/core/identity-device":return Xs;case"@api/debug/enable-request":return Zs;case"@api/debug/enable-response":return _s;case"@api/debug/disable-request":return dp;case"@api/debug/disable-response":return np;case"@keet/member-label-type":return rp;case"@keet/member-label":return tp;case"@keet/add-member-label-operation":return ap;case"@keet/member-label-summary":return sp;case"@keet/member-label-digest":return up;case"@keet/move-indexer-operation":return fp;case"@keet/location-shared-event":return mp;case"@keet/start-call":return bp;case"@keet/join-call":return Kp;case"@keet/leave-call":return hp;case"@keet/end-call":return Pp;case"@keet/add-call-stream":return Tp;case"@keet/remove-call-stream":return Sp;case"@keet/call-record":return Ip;case"@keet/call-member-record":return Mp;case"@keet/call-device-record":return Fp;case"@keet/call-stream-record":return qp;case"@local/active-call":return Cp;case"@local/file-gc-info":return Vp;case"@keet/build-type":return Dp;case"@keet/test-crash-operation":return jp;case"@keet/test-dispatch-error-operation":return Bp;case"@local/environment-record":return zp;case"@keet-private-id/shorten-device-attestation-operation":return Np;case"@local/ota-actions":return Up;case"@local/device-attestation":return Jp;case"@keet/call-device-heartbeat":return Gp;case"@keet/remove-call-device":return Xp;case"@local/chat-labels":return $p;case"@keet/start-call-recording":return eu;case"@keet/stop-call-recording":return ou;case"@local/settings":return nu;case"@local/hyperswarm-record":return cu;case"@keet/dismiss-chat-reports-operation":return tu;case"@keet/update-typing-indicator-operation":return au;case"@keet/typing-indicator":return su;case"@keet-private-id/update-contact-alias-operation":return uu;case"@keet/call-stats":return lu;case"@keet/call-stream-input":return fu;case"@keet/update-call-stream":return yu;case"@keet/call-stream-status-record":return xu;case"@keet/room-keys-v2":return bu;case"@keet/blob-pointer-v2":return vu;case"@keet/blob":return gu;case"@keet/autobee-migration":return Ku;case"@keet/autobee-migration-operation":return hu;case"@keet/readonly-room-invitation-v2":return wu;case"@keet/admin-last-seen":return Ru;case"@keet/blob-record":return Tu;case"@keet-private-id/room-v2":return Mu;case"@keet-private-id/add-room-operation-v2":return qu;case"@local/room-keys/v2":return Cu;case"@local/room-update":return Vu;case"@local/view-head":return Hu;case"@local/autobee-migration":return Du;case"@keet-private-id/pending-invitation-response":return Lu;case"@keet-private-id/resolve-pending-invitation-operation-v2":return Eu;case"@local/pending-recovery":return zu;default:throw new Error("Encoder not found "+e)}}function ml(e,o=15){const n=fl(e);return{preencode(e,c){d=o,n.preencode(e,c)},encode(e,c){d=o,n.encode(e,c)},decode:e=>(d=o,n.decode(e))}}const yl=ml;module.exports={resolveStruct:yl,getStruct:ml,getEnum:function(e){switch(e){case"@keet/room-type":return z;case"@keet/room-supported-language":return X;case"@keet/display-type":return Qo;case"@keet/system-settings-keys":return Tn;case"@keet/label-type":return Vn;case"@keet-private-id/user-settings-key":return ur;case"@local/tasks":return Cr;case"@local/keet-state":return Wt;case"@api/core/lobby-record-change-type":return ta;case"@keet/member-label-type":return cp;case"@keet/build-type":return Hp;default:throw new Error("Enum not found "+e)}},getEncoding:fl,encode:function(o,n,c=15){return d=c,e.encode(fl(o),n)},decode:function(o,n,c=15){return d=c,e.decode(fl(o),n)},setVersion:function(e){d=e},version:d};
@holepunchto/keet-core/schema/spec/config/hyperconf/index.js +1 -1
……@@ -1 +1 @@
1const o=require("../hyperschema"),d=require("hyperconf/runtime"),e=o.getEncoding("@config/keet-config"),c=r(e,d.b4a.from("CA4HHgEDBBABC/2IAz8Bwdf7MOoNiStwh63v4euvhB1sw4cMcwo40mS9JJ/f/7ABQhRuwr3PX8TvUmi1ybxJTO7ToKjLiyn/ap0g7YbbLJLkVobzZEaSwMoXDf2jR2df2WqVskOkG+QlPuL1XDxSUwPNk2Sd+XmE6wXbzAErGnCEO8wASM5KT3vuT/gihUsC09MeR6o2SxeeKfOvILau/u2lPAxfiw1reo00DWfQyJnA2z96XG0uEWnh1UFTqConLdHUGrD2y8DDVF2e+dwU7xMMQ3QXuEqwUVU1LP/VUNeZloucwf7WZHNA1+s2TGmoY5wWCYAuNsdgE+ws43F7d8NzkFsydXQ8wb6OAqfTBL/NWkoJL8z7HUKWDwHjCRkZHLkjN+mYhbbd4ckqW0zgDhKIlLDCpyuB35aR2dHQcs514Hk8KCje32iAKtYVGZPDNgfp3uq3HlcTcNJlTk9UwWdZ/mv2bPvhD+a0zWsMNkwFs5ZzFvJ5l5RjJa7PIYUs2mLSQKjS0iT7iqlxgjH4A7cqnXXUTgD09mPjDx6+/Y/GgiRq+/PF8/mb/Lg223je7d7B/oJzQVrzKppRFrbFmJMvbLqLafulJqv5Q4YhhY/9KNMz8WfUPyGjujNzDTmdtJhn6HHk1R0kvcnoycdpOUD5c3To3MVEF/BMEyM+3adgOZa0oKY1yBns13oo1LTw2pzobtxhPYPaPZSYm0RgJE6WAkTXA8bvvtTZOXIvECOYiGXMQdX6AnMfYyQIeV4TxGixlh3o2gJKUPVRMGUBUKvUB0WuQpMY8UYybd2ycWhTLHxrIcrP3UpD1Tnga9UYp4k6JuskyX5T+U05KEKzwLP93LkDoIg6xWkeZ+TJ02nvIzJcTuLQFAZwtDPA+ET+OCZMAihCzZt2tdKHZ7RiUx3+so4qaRpuCw7eZr1FdSsBZVFPvsiERyHrA4+8xBKvDraRdL2IgGH0GXRb0BE2dxDgupjg2wovsSrhohui0T11owwd/6/7fP4ICxWu+uX6GMK3rUP6zIiCtdYU/UUmLzPpyfEVS+bcxPmPOKtNv+dRRXkHsU2sPHbR7WVKplxpDCloATlyAlbp1RvoUK/oWWwqyoxK0eLVOaFsFHBlJ5G3vi0QASxk6bqnUpUYk3xUFWfLKg2jcSOZN6uc0ahcNywYs5byBfHslhGKAZ0aAr6nUnRdR7aoxWKso8tl1rp2oWQfyDtjAwHmif3c+Rw8sq2lt7U0d03jP8IwKPjY6gG4tF2d1O/jcwLBSbqCg8dZPEz4RDSl77qEe8bq5l8ERk5cb1KGFiPAGXYv3s/tvQCzzqHKVtnZpXukpE5tcVTMLkYkBQb0WeflIQHPJagcZYuo8yGNcTCtgkPwSpokvNRvMCydypVas6wVpQ==","base64")),n=o.getEncoding("@config/keet-config"),U=r(n,d.b4a.from("CQ4PHwEDBBEAIQv9iAM/AcFoE2ngJrj30ixD03+wTX3U9UsHUd9Fa8WTFOdC0OsL/BvI3F6kNwb2mApV31I7mFJJC7itiPC2R4tbVQpePTic3fatu0nj3dcxrG/6x813f3gfJPBuzoNKOI2ubWHAi6ADhmvE8CdDZN5U8mtJuN0Zl8W4eJv4YR3Z/yjNbWPgdggVYcQjBQKMEoZLqCxUc79QMyo6arV0D5SkwfJ9HFBxjp5X717eUtqIjjMXnvGY6mO/GuIFZIoy2SVEVSE6i5bEDEN0F7hKsFFVNSz/1VDXmZaLnMH+1mRzQNfrNkxpqGOcFgmALjbHYBPsLONxe3fDc5BbMnV0PMG+jgKn0wS/zVpKCS/M+x1Clg8B4wkZGRy5IzfpmIW23eHJKltM4A4SiJSwwqcrgd+WkdnR0HLOdeB5PCgo3t9ogCrWFRmTwzYH6d7qtx5XE3DSZU5PVMFnWf5r9mz74Q/mtM1rDDZMBbOWcxbyeZeUYyWuzyGFLNpi0kCo0tIk+4qpcYIx+AO3Kp111E4A9PZj4w8evv2PxoIkavvzxfP5m/y4Ntt43u3ewf6Cc0Fa8yqaURa2xZiTL2y6i2n7pSar+UOGIYWP/SjTM/Fn1D8ho7ozcw05nbSYZ+hx5NUdJL3J6MnHaTlA+XN06NzFRBfwTBMjPt2nYDmWtKCmNcgZ7Nd6KNS08Nqc6G7cYT2D2j2UmJtEYCROlgJE1wPG777U2TlyLxAjmIhlzEHV+gJzH2MkCHleE8RosZYd6NoCSlD1UTBlAVCr1AdFrkKTGPFGMm3dsnFoUyx8ayHKz91KQ9U54GvVGKeJOibrJMl+U/lNOShCs8Cz/dy5A6CIOsVpHmfkydNp7yMyXE7i0BQGcLQzwPhE/jgmTAIoQs2bdrXSh2e0YlMd/rKOKmkabgsO3ma9RXUrAWVRT77IhEch6wOPvMQSrw62kXS9iIBh9Bl0W9ARNncQ4LqY4NsKL7Eq4aIbotE9daMMHf+v+3z+CAsVrvrl+hjCt61D+syIgrXWFP1FJi8z6cnxFUvm3MT5jzirTb/nUUV5B7FNrDx20e1lSqZcaQwpaAGCmNUxUdwhR8YERH7FJo8e6oGBktQjG3V1YwIEKEk+xQEsZOm6p1KVGJN8VBVnyyoNo3EjmTernNGoXDcsGLOW8gXx7JYRigGdGgK+p1J0XUe2qMVirKPLZda6dqFkH8g7QwMB5on93PkcPLKtpbe1NHdN4z/CMCj42OoBuLRdndTv43MB46SNAWk6B708S9TrYknXzIary+v3wFBA/jkyrKoP4z0hAc8lqBxli6jzIY1xMK2CQ/BKmiS81G8wLJ3KlVqzrBWl","base64"));function r(o,d){return o.decode({start:0,end:d.byteLength,buffer:d})}module.exports={production:c,development:U,productionEncoding:e,developmentEncoding:n};
1const o=require("../hyperschema"),e=require("hyperconf/runtime"),n=o.getEncoding("@config/keet-config"),A=U(n,e.b4a.from("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","base64")),w=o.getEncoding("@config/keet-config"),J=U(w,e.b4a.from("DQ4fIwEDBBIAIwMEFQAL/QgCPwHBaBNp4Ca499IsQ9N/sE191PVLB1HfRWvFkxTnQtDrC/wbyNxepDcG9pgKVd9SO5hSSQu4rYjwtkeLW1UKXj04nN32rbtJ493XMaxv+sfNd394HyTwbs6DSjiNrm1hwIugA4ZrxPAnQ2TeVPJrSbjdGZfFuHib+GEd2f8ozW1j4HYIFWHEIwUCjBKGS6gsVHO/UDMqOmq1dA+UpMHyfRxQcY6eV+9e3lLaiI4zF57xmOpjvxriBWSKMtklRFUhOouWxATnsNh1OwidaKG82XFI2jbfsPcU4zuNFmJOHnaGw+rVNNGZJrDt/55MLPi/xESUtxgQin3Ajlc2obBQwi1n3PhENTAOA0SEQZbi6C9JTUIR9diS2G9ZkeBjNG81xTpn/Ufpu0Vda3E3sunmXtLNS43XdHck3yFMePGsWpMeaG0tQASo0VsroQmgbC6xcWZ/2xWmzAg0KiXmbO6C4s0oCuZaqyfg4QnOYYQaRfUjkxBbrnao92k4BHDlbWFGvtklopt5YPqtPbUJ7HwGlwfJI8/JMAjRtpfbvjN4AjhHYZUxfucxiJOnza5m31qwnj3yLEJhUiGMdPpuH/TDofvpKm9S7QABLGTpuqdSlRiTfFQVZ8sqDaNxI5k3q5zRqFw3LBizlvIF8eyWEYoBnRoCvqdSdF1HtqjFYqyjy2XWunahZB/IO0MDAeaJ/dz5HDyyraW3tTR3TeM/wjAo+NjqAbi0XZ3U7+NzAeOkjQFpOge9PEvU62JJ18yGq8vr98BQQP45MqyqD+M9IQHPJagcZYuo8yGNcTCtgkPwSpokvNRvMCydypVas6wVpQ==","base64"));function U(o,e){return o.decode({start:0,end:e.byteLength,buffer:e})}module.exports={production:A,development:J,productionEncoding:n,developmentEncoding:w};
@holepunchto/keet-core/schema/spec/config/hyperschema/index.js +1 -1
……@@ -1 +1 @@
1const{c:e}=require("hyperschema/runtime");let d=7;const n={preencode(n,o){e.uint.preencode(n,o.minimum),n.end++,o.autoupgrade&&e.uint.preencode(n,o.autoupgrade),d>=3&&o.forceUpdate&&e.uint.preencode(n,o.forceUpdate),d>=4&&o.minVersion&&R.preencode(n,o.minVersion),d>=7&&o.stable&&e.uint.preencode(n,o.stable)},encode(n,o){const c=(o.autoupgrade?1:0)|(d>=3&&o.forceUpdate?2:0)|(d>=4&&o.minVersion?4:0)|(d>=7&&o.stable?8:0);e.uint.encode(n,o.minimum),e.uint.encode(n,c),o.autoupgrade&&e.uint.encode(n,o.autoupgrade),d>=3&&o.forceUpdate&&e.uint.encode(n,o.forceUpdate),d>=4&&o.minVersion&&R.encode(n,o.minVersion),d>=7&&o.stable&&e.uint.encode(n,o.stable)},decode(n){const o=e.uint.decode(n),c=e.uint.decode(n);return{minimum:o,autoupgrade:1&c?e.uint.decode(n):0,forceUpdate:d>=3&&2&c?e.uint.decode(n):0,minVersion:d>=4&&4&c?R.decode(n):null,stable:d>=7&&8&c?e.uint.decode(n):0}}},o=e.array(e.fixed32),c={preencode(d,n){e.fixed32.preencode(d,n.db),e.fixed32.preencode(d,n.reserved),e.fixed32.preencode(d,n.blobs),o.preencode(d,n.rpc)},encode(d,n){e.fixed32.encode(d,n.db),e.fixed32.encode(d,n.reserved),e.fixed32.encode(d,n.blobs),o.encode(d,n.rpc)},decode:d=>({db:e.fixed32.decode(d),reserved:e.fixed32.decode(d),blobs:e.fixed32.decode(d),rpc:o.decode(d)})},r=e.array(e.frame(c)),i=o,s=o,t=o,u=o,a={preencode(d,n){d.end++,n.userRegistries&&r.preencode(d,n.userRegistries),n.blindPeers&&i.preencode(d,n.blindPeers),n.blindRelays&&s.preencode(d,n.blindRelays),n.gatekeepers&&t.preencode(d,n.gatekeepers),n.discovery&&u.preencode(d,n.discovery),n.feedback&&e.fixed32.preencode(d,n.feedback)},encode(d,n){const o=(n.userRegistries?1:0)|(n.blindPeers?2:0)|(n.blindRelays?4:0)|(n.gatekeepers?8:0)|(n.discovery?16:0)|(n.feedback?32:0);e.uint.encode(d,o),n.userRegistries&&r.encode(d,n.userRegistries),n.blindPeers&&i.encode(d,n.blindPeers),n.blindRelays&&s.encode(d,n.blindRelays),n.gatekeepers&&t.encode(d,n.gatekeepers),n.discovery&&u.encode(d,n.discovery),n.feedback&&e.fixed32.encode(d,n.feedback)},decode(d){const n=e.uint.decode(d);return{userRegistries:1&n?r.decode(d):null,blindPeers:2&n?i.decode(d):null,blindRelays:4&n?s.decode(d):null,gatekeepers:8&n?t.decode(d):null,discovery:16&n?u.decode(d):null,feedback:32&n?e.fixed32.decode(d):null}}},l=o,p=o,f={preencode(e,n){e.end++,n.disabled&&l.preencode(e,n.disabled),d>=6&&n.verified&&p.preencode(e,n.verified)},encode(n,o){const c=(o.disabled?1:0)|(d>=6&&o.verified?2:0);e.uint.encode(n,c),o.disabled&&l.encode(n,o.disabled),d>=6&&o.verified&&p.encode(n,o.verified)},decode(n){const o=e.uint.decode(n);return{disabled:1&o?l.decode(n):null,verified:d>=6&&2&o?p.decode(n):null}}},b=e.frame(n),m=e.frame(a),g=e.frame(f),v={preencode(e,n){b.preencode(e,n.versions),e.end++,n.services&&m.preencode(e,n.services),n.rooms&&g.preencode(e,n.rooms),d>=2&&n.profile&&x.preencode(e,n.profile),d>=5&&n.debug&&h.preencode(e,n.debug)},encode(n,o){const c=(o.services?1:0)|(o.rooms?2:0)|(d>=2&&o.profile?4:0)|(d>=5&&o.debug?8:0);b.encode(n,o.versions),e.uint.encode(n,c),o.services&&m.encode(n,o.services),o.rooms&&g.encode(n,o.rooms),d>=2&&o.profile&&x.encode(n,o.profile),d>=5&&o.debug&&h.encode(n,o.debug)},decode(n){const o=b.decode(n),c=e.uint.decode(n);return{versions:o,services:1&c?m.decode(n):null,rooms:2&c?g.decode(n):null,profile:d>=2&&4&c?x.decode(n):null,debug:d>=5&&8&c?h.decode(n):null}}},y={preencode(n,o){n.end++,d>=7&&o.otaResyncPrivateProfileBump&&e.uint.preencode(n,o.otaResyncPrivateProfileBump)},encode(n,o){const c=(d>=2&&o.disableUnreadSync?1:0)|(d>=7&&o.otaResyncPrivateProfileBump?2:0);e.uint.encode(n,c),d>=7&&o.otaResyncPrivateProfileBump&&e.uint.encode(n,o.otaResyncPrivateProfileBump)},decode(n){const o=e.uint.decode(n);return{disableUnreadSync:d>=2&&!!(1&o),otaResyncPrivateProfileBump:d>=7&&2&o?e.uint.decode(n):0}}},k={preencode(d,n){e.uint.preencode(d,n.major),e.uint.preencode(d,n.minor),e.uint.preencode(d,n.patch)},encode(d,n){e.uint.encode(d,n.major),e.uint.encode(d,n.minor),e.uint.encode(d,n.patch)},decode:d=>({major:e.uint.decode(d),minor:e.uint.decode(d),patch:e.uint.decode(d)})},P={preencode(n,o){n.end++,d>=5&&o.unlockHash&&e.fixed32.preencode(n,o.unlockHash)},encode(n,o){const c=d>=5&&o.unlockHash?1:0;e.uint.encode(n,c),d>=5&&o.unlockHash&&e.fixed32.encode(n,o.unlockHash)},decode(n){const o=e.uint.decode(n);return{unlockHash:d>=5&&1&o?e.fixed32.decode(n):null}}},R=e.frame(k),x=e.frame(y),h=e.frame(P);function U(e){switch(e){case"@config/versions":return n;case"@config/user-registry":return c;case"@config/services":return a;case"@config/rooms":return f;case"@config/keet-config":return v;case"@config/profile":return y;case"@config/semver":return k;case"@config/debug":return P;default:throw new Error("Encoder not found "+e)}}function V(e,n=7){const o=U(e);return{preencode(e,c){d=n,o.preencode(e,c)},encode(e,c){d=n,o.encode(e,c)},decode:e=>(d=n,o.decode(e))}}const B=V;module.exports={resolveStruct:B,getStruct:V,getEnum:function(e){throw new Error("Enum not found "+e)},getEncoding:U,encode:function(n,o,c=7){return d=c,e.encode(U(n),o)},decode:function(n,o,c=7){return d=c,e.decode(U(n),o)},setVersion:function(e){d=e},version:d};
1const{c:e}=require("hyperschema/runtime");let d=8;const n={preencode(n,o){e.uint.preencode(n,o.minimum),n.end++,o.autoupgrade&&e.uint.preencode(n,o.autoupgrade),d>=3&&o.forceUpdate&&e.uint.preencode(n,o.forceUpdate),d>=4&&o.minVersion&&R.preencode(n,o.minVersion),d>=7&&o.stable&&e.uint.preencode(n,o.stable),d>=8&&o.desktopMinVersion&&x.preencode(n,o.desktopMinVersion)},encode(n,o){const c=(o.autoupgrade?1:0)|(d>=3&&o.forceUpdate?2:0)|(d>=4&&o.minVersion?4:0)|(d>=7&&o.stable?8:0)|(d>=8&&o.desktopMinVersion?16:0);e.uint.encode(n,o.minimum),e.uint.encode(n,c),o.autoupgrade&&e.uint.encode(n,o.autoupgrade),d>=3&&o.forceUpdate&&e.uint.encode(n,o.forceUpdate),d>=4&&o.minVersion&&R.encode(n,o.minVersion),d>=7&&o.stable&&e.uint.encode(n,o.stable),d>=8&&o.desktopMinVersion&&x.encode(n,o.desktopMinVersion)},decode(n){const o=e.uint.decode(n),c=e.uint.decode(n);return{minimum:o,autoupgrade:1&c?e.uint.decode(n):0,forceUpdate:d>=3&&2&c?e.uint.decode(n):0,minVersion:d>=4&&4&c?R.decode(n):null,stable:d>=7&&8&c?e.uint.decode(n):0,desktopMinVersion:d>=8&&16&c?x.decode(n):null}}},o=e.array(e.fixed32),c={preencode(d,n){e.fixed32.preencode(d,n.db),e.fixed32.preencode(d,n.reserved),e.fixed32.preencode(d,n.blobs),o.preencode(d,n.rpc)},encode(d,n){e.fixed32.encode(d,n.db),e.fixed32.encode(d,n.reserved),e.fixed32.encode(d,n.blobs),o.encode(d,n.rpc)},decode:d=>({db:e.fixed32.decode(d),reserved:e.fixed32.decode(d),blobs:e.fixed32.decode(d),rpc:o.decode(d)})},r=e.array(e.frame(c)),i=o,s=o,t=o,u=o,a={preencode(d,n){d.end++,n.userRegistries&&r.preencode(d,n.userRegistries),n.blindPeers&&i.preencode(d,n.blindPeers),n.blindRelays&&s.preencode(d,n.blindRelays),n.gatekeepers&&t.preencode(d,n.gatekeepers),n.discovery&&u.preencode(d,n.discovery),n.feedback&&e.fixed32.preencode(d,n.feedback)},encode(d,n){const o=(n.userRegistries?1:0)|(n.blindPeers?2:0)|(n.blindRelays?4:0)|(n.gatekeepers?8:0)|(n.discovery?16:0)|(n.feedback?32:0);e.uint.encode(d,o),n.userRegistries&&r.encode(d,n.userRegistries),n.blindPeers&&i.encode(d,n.blindPeers),n.blindRelays&&s.encode(d,n.blindRelays),n.gatekeepers&&t.encode(d,n.gatekeepers),n.discovery&&u.encode(d,n.discovery),n.feedback&&e.fixed32.encode(d,n.feedback)},decode(d){const n=e.uint.decode(d);return{userRegistries:1&n?r.decode(d):null,blindPeers:2&n?i.decode(d):null,blindRelays:4&n?s.decode(d):null,gatekeepers:8&n?t.decode(d):null,discovery:16&n?u.decode(d):null,feedback:32&n?e.fixed32.decode(d):null}}},l=o,p=o,f={preencode(e,n){e.end++,n.disabled&&l.preencode(e,n.disabled),d>=6&&n.verified&&p.preencode(e,n.verified)},encode(n,o){const c=(o.disabled?1:0)|(d>=6&&o.verified?2:0);e.uint.encode(n,c),o.disabled&&l.encode(n,o.disabled),d>=6&&o.verified&&p.encode(n,o.verified)},decode(n){const o=e.uint.decode(n);return{disabled:1&o?l.decode(n):null,verified:d>=6&&2&o?p.decode(n):null}}},b=e.frame(n),m=e.frame(a),g=e.frame(f),v={preencode(e,n){b.preencode(e,n.versions),e.end++,n.services&&m.preencode(e,n.services),n.rooms&&g.preencode(e,n.rooms),d>=2&&n.profile&&h.preencode(e,n.profile),d>=5&&n.debug&&V.preencode(e,n.debug)},encode(n,o){const c=(o.services?1:0)|(o.rooms?2:0)|(d>=2&&o.profile?4:0)|(d>=5&&o.debug?8:0);b.encode(n,o.versions),e.uint.encode(n,c),o.services&&m.encode(n,o.services),o.rooms&&g.encode(n,o.rooms),d>=2&&o.profile&&h.encode(n,o.profile),d>=5&&o.debug&&V.encode(n,o.debug)},decode(n){const o=b.decode(n),c=e.uint.decode(n);return{versions:o,services:1&c?m.decode(n):null,rooms:2&c?g.decode(n):null,profile:d>=2&&4&c?h.decode(n):null,debug:d>=5&&8&c?V.decode(n):null}}},k={preencode(n,o){n.end++,d>=7&&o.otaResyncPrivateProfileBump&&e.uint.preencode(n,o.otaResyncPrivateProfileBump)},encode(n,o){const c=(d>=2&&o.disableUnreadSync?1:0)|(d>=7&&o.otaResyncPrivateProfileBump?2:0);e.uint.encode(n,c),d>=7&&o.otaResyncPrivateProfileBump&&e.uint.encode(n,o.otaResyncPrivateProfileBump)},decode(n){const o=e.uint.decode(n);return{disableUnreadSync:d>=2&&!!(1&o),otaResyncPrivateProfileBump:d>=7&&2&o?e.uint.decode(n):0}}},y={preencode(d,n){e.uint.preencode(d,n.major),e.uint.preencode(d,n.minor),e.uint.preencode(d,n.patch)},encode(d,n){e.uint.encode(d,n.major),e.uint.encode(d,n.minor),e.uint.encode(d,n.patch)},decode:d=>({major:e.uint.decode(d),minor:e.uint.decode(d),patch:e.uint.decode(d)})},P={preencode(n,o){n.end++,d>=5&&o.unlockHash&&e.fixed32.preencode(n,o.unlockHash)},encode(n,o){const c=d>=5&&o.unlockHash?1:0;e.uint.encode(n,c),d>=5&&o.unlockHash&&e.fixed32.encode(n,o.unlockHash)},decode(n){const o=e.uint.decode(n);return{unlockHash:d>=5&&1&o?e.fixed32.decode(n):null}}},R=e.frame(y),x=R,h=e.frame(k),V=e.frame(P);function U(e){switch(e){case"@config/versions":return n;case"@config/user-registry":return c;case"@config/services":return a;case"@config/rooms":return f;case"@config/keet-config":return v;case"@config/profile":return k;case"@config/semver":return y;case"@config/debug":return P;default:throw new Error("Encoder not found "+e)}}function B(e,n=8){const o=U(e);return{preencode(e,c){d=n,o.preencode(e,c)},encode(e,c){d=n,o.encode(e,c)},decode:e=>(d=n,o.decode(e))}}const E=B;module.exports={resolveStruct:E,getStruct:B,getEnum:function(e){throw new Error("Enum not found "+e)},getEncoding:U,encode:function(n,o,c=8){return d=c,e.encode(U(n),o)},decode:function(n,o,c=8){return d=c,e.decode(U(n),o)},setVersion:function(e){d=e},version:d};
@holepunchto/keet-core/schema/spec/contract/hyperdb/index.js +1 -1
……@@ -1 +1 @@
1const{IndexEncoder:e,c:n,b4a:t}=require("hyperdb/runtime"),{version:c,getEncoding:o,setVersion:r}=require("./messages.js"),d={schema:c,db:6},l=require("../../../../lib/core/hyperdb/contract/keet.js"),s=require("../../../../lib/core/hyperdb/contract/keet-private-id.js"),u=new e([],{prefix:0}),i=o("@keet/system-digest"),a={name:"@keet/system-digest",id:0,version:0,encodeKey:e=>u.encode([]),encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>u.encodeRange({gt:e?[]:null,lt:n?[]:null,gte:t?[]:null,lte:c?[]:null}),encodeValue(e,n,c){r(e);const o={start:0,end:0,buffer:null};return i.preencode(o,c),o.buffer=t.allocUnsafe(o.end),i.encode(o,c),o.buffer},trigger:null,reconstruct:function(e,n,t){r(e);const c={start:0,end:t.byteLength,buffer:t};return i.decode(c)},reconstructKey:function(e){return{}},indexes:[],decodedVersion:0},f=new e([e.BUFFER],{prefix:1});function g(e){const n=e.key;return void 0===n?[]:[n]}const y=o("@keet/blind-peer/hyperdb#1"),b={name:"@keet/blind-peers",id:1,version:0,encodeKey(e){const n=[e.key];return f.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>f.encodeRange({gt:e?g(e):null,lt:n?g(n):null,gte:t?g(t):null,lte:c?g(c):null}),encodeValue(e,n,c){r(e);const o={start:0,end:0,buffer:null};return y.preencode(o,c),o.buffer=t.allocUnsafe(o.end),y.encode(o,c),o.buffer},trigger:null,reconstruct:function(e,n,t){const c=f.decode(n);r(e);const o={start:0,end:t.byteLength,buffer:t},d=y.decode(o);return d.key=c[0],d},reconstructKey:function(e){return{key:f.decode(e)[0]}},indexes:[],decodedVersion:0},p=new e([],{prefix:2}),K=o("@keet/room-config"),m={name:"@keet/room-config",id:2,version:0,encodeKey:e=>p.encode([]),encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>p.encodeRange({gt:e?[]:null,lt:n?[]:null,gte:t?[]:null,lte:c?[]:null}),encodeValue(e,n,c){r(e);const o={start:0,end:0,buffer:null};return K.preencode(o,c),o.buffer=t.allocUnsafe(o.end),K.encode(o,c),o.buffer},trigger:null,reconstruct:function(e,n,t){r(e);const c={start:0,end:t.byteLength,buffer:t};return K.decode(c)},reconstructKey:function(e){return{}},indexes:[],decodedVersion:0},v=new e([],{prefix:3}),k=o("@keet/room-seed"),h={name:"@keet/room-capabilities",id:3,version:0,encodeKey:e=>v.encode([]),encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>v.encodeRange({gt:e?[]:null,lt:n?[]:null,gte:t?[]:null,lte:c?[]:null}),encodeValue(e,n,c){r(e);const o={start:0,end:0,buffer:null};return k.preencode(o,c),o.buffer=t.allocUnsafe(o.end),k.encode(o,c),o.buffer},trigger:null,reconstruct:function(e,n,t){r(e);const c={start:0,end:t.byteLength,buffer:t};return k.decode(c)},reconstructKey:function(e){return{}},indexes:[],decodedVersion:0},x=new e([e.BUFFER],{prefix:4});function R(e){const n=e.deviceKey;return void 0===n?[]:[n]}const U=o("@keet/join-request/hyperdb#4"),F={name:"@keet/join-requests",id:4,version:0,encodeKey(e){const n=[e.deviceKey];return x.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>x.encodeRange({gt:e?R(e):null,lt:n?R(n):null,gte:t?R(t):null,lte:c?R(c):null}),encodeValue(e,n,c){r(e);const o={start:0,end:0,buffer:null};return U.preencode(o,c),o.buffer=t.allocUnsafe(o.end),U.encode(o,c),o.buffer},trigger:null,reconstruct:function(e,n,t){const c=x.decode(n);r(e);const o={start:0,end:t.byteLength,buffer:t},d=U.decode(o);return d.deviceKey=c[0],d},reconstructKey:function(e){return{deviceKey:x.decode(e)[0]}},indexes:[],decodedVersion:0},w=new e([e.BUFFER],{prefix:5});function V(e){const n=e.key;return void 0===n?[]:[n]}const I=o("@keet/device/hyperdb#5"),E=l.devicesTrigger,B={name:"@keet/devices",id:5,version:0,encodeKey(e){const n=[e.key];return w.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>w.encodeRange({gt:e?V(e):null,lt:n?V(n):null,gte:t?V(t):null,lte:c?V(c):null}),encodeValue(e,n,c){r(e);const o={start:0,end:0,buffer:null};return I.preencode(o,c),o.buffer=t.allocUnsafe(o.end),I.encode(o,c),o.buffer},trigger:E,reconstruct:function(e,n,t){const c=w.decode(n);r(e);const o={start:0,end:t.byteLength,buffer:t},d=I.decode(o);return d.key=c[0],d},reconstructKey:function(e){return{key:w.decode(e)[0]}},indexes:[],decodedVersion:0},T=new e([e.BUFFER,e.BUFFER],{prefix:6});function N(e){const n=[],t=e.memberKey;if(void 0===t)return n;n.push(t);const c=e.key;return void 0===c||n.push(c),n}const q={name:"@keet/devices-by-member-key",version:0,id:6,encodeKey:e=>T.encode(N(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>T.encodeRange({gt:e?N(e):null,lt:n?N(n):null,gte:t?N(t):null,lte:c?N(c):null}),encodeValue:e=>q.collection.encodeKey(e),encodeIndexKeys:(e,n)=>[T.encode([e.memberKey,e.key])],reconstruct:(e,n)=>n,offset:B.indexes.length,collection:B};B.indexes.push(q);const L=new e([e.BUFFER],{prefix:7});function M(e){const n=e.profile?.swarmKey;return void 0===n?[]:[n]}const A={name:"@keet/devices-by-swarm-key",version:0,id:7,encodeKey:e=>L.encode(M(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>L.encodeRange({gt:e?M(e):null,lt:n?M(n):null,gte:t?M(t):null,lte:c?M(c):null}),encodeValue:e=>A.collection.encodeKey(e),encodeIndexKeys:(e,n)=>[L.encode([e.profile.swarmKey])],reconstruct:(e,n)=>n,offset:B.indexes.length,collection:B};B.indexes.push(A);const j=new e([e.BUFFER,e.BUFFER],{prefix:8}),C=l.activeDevicesByMemberKeyMap;function G(e){const n=e.memberKey;return void 0===n?[]:[n]}const S={name:"@keet/active-devices-by-member-key",version:0,id:8,encodeKey:e=>j.encode(G(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>j.encodeRange({gt:e?G(e):null,lt:n?G(n):null,gte:t?G(t):null,lte:c?G(c):null}),encodeValue:e=>S.collection.encodeKey(e),encodeIndexKeys(e,n){const t=C(e,n),c=new Array(t.length);for(let n=0;n<t.length;n++){const o=t[n];c[n]=j.encode([o.memberKey,e.key])}return c},reconstruct:(e,n)=>n,offset:B.indexes.length,collection:B};B.indexes.push(S);const D=new e([e.BUFFER],{prefix:9}),P=l.activeDevicesMap;function z(e){const n=e.key;return void 0===n?[]:[n]}const H={name:"@keet/active-devices",version:0,id:9,encodeKey:e=>D.encode(z(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>D.encodeRange({gt:e?z(e):null,lt:n?z(n):null,gte:t?z(t):null,lte:c?z(c):null}),encodeValue:e=>H.collection.encodeKey(e),encodeIndexKeys(e,n){const t=P(e,n),c=new Array(t.length);for(let e=0;e<t.length;e++){const n=t[e];c[e]=D.encode([n.key])}return c},reconstruct:(e,n)=>n,offset:B.indexes.length,collection:B};B.indexes.push(H);const J=new e([e.BUFFER],{prefix:10});function O(e){const n=e.key;return void 0===n?[]:[n]}const Q=o("@keet/member-proofs/hyperdb#10"),W={name:"@keet/member-proofs",id:10,version:0,encodeKey(e){const n=[e.key];return J.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>J.encodeRange({gt:e?O(e):null,lt:n?O(n):null,gte:t?O(t):null,lte:c?O(c):null}),encodeValue(e,n,c){r(e);const o={start:0,end:0,buffer:null};return Q.preencode(o,c),o.buffer=t.allocUnsafe(o.end),Q.encode(o,c),o.buffer},trigger:null,reconstruct:function(e,n,t){const c=J.decode(n);r(e);const o={start:0,end:t.byteLength,buffer:t},d=Q.decode(o);return d.key=c[0],d},reconstructKey:function(e){return{key:J.decode(e)[0]}},indexes:[],decodedVersion:0},X=new e([e.BUFFER],{prefix:11});function Y(e){const n=e.key;return void 0===n?[]:[n]}const Z=o("@keet/member/hyperdb#11"),$=l.membersTrigger,_={name:"@keet/members",id:11,version:0,encodeKey(e){const n=[e.key];return X.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>X.encodeRange({gt:e?Y(e):null,lt:n?Y(n):null,gte:t?Y(t):null,lte:c?Y(c):null}),encodeValue(e,n,c){r(e);const o={start:0,end:0,buffer:null};return Z.preencode(o,c),o.buffer=t.allocUnsafe(o.end),Z.encode(o,c),o.buffer},trigger:$,reconstruct:function(e,n,t){const c=X.decode(n);r(e);const o={start:0,end:t.byteLength,buffer:t},d=Z.decode(o);return d.key=c[0],d},reconstructKey:function(e){return{key:X.decode(e)[0]}},indexes:[],decodedVersion:0},ee=new e([e.BUFFER],{prefix:12}),ne=l.moderatorsMap;function te(e){const n=e.key;return void 0===n?[]:[n]}const ce={name:"@keet/moderators",version:0,id:12,encodeKey:e=>ee.encode(te(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>ee.encodeRange({gt:e?te(e):null,lt:n?te(n):null,gte:t?te(t):null,lte:c?te(c):null}),encodeValue:e=>ce.collection.encodeKey(e),encodeIndexKeys(e,n){const t=ne(e,n),c=new Array(t.length);for(let e=0;e<t.length;e++){const n=t[e];c[e]=ee.encode([n.key])}return c},reconstruct:(e,n)=>n,offset:_.indexes.length,collection:_};_.indexes.push(ce);const oe=new e([e.BUFFER],{prefix:13}),re=l.adminsMap;function de(e){const n=e.key;return void 0===n?[]:[n]}const le={name:"@keet/admins",version:0,id:13,encodeKey:e=>oe.encode(de(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>oe.encodeRange({gt:e?de(e):null,lt:n?de(n):null,gte:t?de(t):null,lte:c?de(c):null}),encodeValue:e=>le.collection.encodeKey(e),encodeIndexKeys(e,n){const t=re(e,n),c=new Array(t.length);for(let e=0;e<t.length;e++){const n=t[e];c[e]=oe.encode([n.key])}return c},reconstruct:(e,n)=>n,offset:_.indexes.length,collection:_};_.indexes.push(le);const se=new e([e.BUFFER],{prefix:14}),ue=l.activeMembersMap;function ie(e){const n=e.key;return void 0===n?[]:[n]}const ae={name:"@keet/active-members",version:0,id:14,encodeKey:e=>se.encode(ie(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>se.encodeRange({gt:e?ie(e):null,lt:n?ie(n):null,gte:t?ie(t):null,lte:c?ie(c):null}),encodeValue:e=>ae.collection.encodeKey(e),encodeIndexKeys(e,n){const t=ue(e,n),c=new Array(t.length);for(let e=0;e<t.length;e++){const n=t[e];c[e]=se.encode([n.key])}return c},reconstruct:(e,n)=>n,offset:_.indexes.length,collection:_};_.indexes.push(ae);const fe=new e([e.BUFFER],{prefix:15}),ge=l.mutedMembersMap;function ye(e){const n=e.key;return void 0===n?[]:[n]}const be={name:"@keet/muted-members",version:0,id:15,encodeKey:e=>fe.encode(ye(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>fe.encodeRange({gt:e?ye(e):null,lt:n?ye(n):null,gte:t?ye(t):null,lte:c?ye(c):null}),encodeValue:e=>be.collection.encodeKey(e),encodeIndexKeys(e,n){const t=ge(e,n),c=new Array(t.length);for(let e=0;e<t.length;e++){const n=t[e];c[e]=fe.encode([n.key])}return c},reconstruct:(e,n)=>n,offset:_.indexes.length,collection:_};_.indexes.push(be);const pe=new e([e.STRING,e.BUFFER],{prefix:16}),Ke=l.membersByMemberNameMap;function me(e){const n=e.name;return void 0===n?[]:[n]}const ve={name:"@keet/members-by-member-name",version:0,id:16,encodeKey:e=>pe.encode(me(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>pe.encodeRange({gt:e?me(e):null,lt:n?me(n):null,gte:t?me(t):null,lte:c?me(c):null}),encodeValue:e=>ve.collection.encodeKey(e),encodeIndexKeys(e,n){const t=Ke(e,n),c=new Array(t.length);for(let n=0;n<t.length;n++){const o=t[n];c[n]=pe.encode([o.name,e.key])}return c},reconstruct:(e,n)=>n,offset:_.indexes.length,collection:_};_.indexes.push(ve);const ke=new e([e.BUFFER],{prefix:17});function he(e){const n=e.key;return void 0===n?[]:[n]}const xe=o("@keet/member-activity/hyperdb#17"),Re={name:"@keet/member-activity",id:17,version:0,encodeKey(e){const n=[e.key];return ke.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>ke.encodeRange({gt:e?he(e):null,lt:n?he(n):null,gte:t?he(t):null,lte:c?he(c):null}),encodeValue(e,n,c){r(e);const o={start:0,end:0,buffer:null};return xe.preencode(o,c),o.buffer=t.allocUnsafe(o.end),xe.encode(o,c),o.buffer},trigger:null,reconstruct:function(e,n,t){const c=ke.decode(n);r(e);const o={start:0,end:t.byteLength,buffer:t},d=xe.decode(o);return d.key=c[0],d},reconstructKey:function(e){return{key:ke.decode(e)[0]}},indexes:[],decodedVersion:0},Ue=new e([e.BUFFER],{prefix:18});function Fe(e){const n=e.id;return void 0===n?[]:[n]}const we=o("@keet/invitation/hyperdb#18"),Ve={name:"@keet/invitations",id:18,version:0,encodeKey(e){const n=[e.id];return Ue.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>Ue.encodeRange({gt:e?Fe(e):null,lt:n?Fe(n):null,gte:t?Fe(t):null,lte:c?Fe(c):null}),encodeValue(e,n,c){r(e);const o={start:0,end:0,buffer:null};return we.preencode(o,c),o.buffer=t.allocUnsafe(o.end),we.encode(o,c),o.buffer},trigger:null,reconstruct:function(e,n,t){const c=Ue.decode(n);r(e);const o={start:0,end:t.byteLength,buffer:t},d=we.decode(o);return d.id=c[0],d},reconstructKey:function(e){return{id:Ue.decode(e)[0]}},indexes:[],decodedVersion:0},Ie=new e([e.UINT],{prefix:19});function Ee(e){const n=e.id;return void 0===n?[]:[n]}const Be=o("@keet/thread/hyperdb#19"),Te={name:"@keet/threads",id:19,version:0,encodeKey(e){const n=[e.id];return Ie.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>Ie.encodeRange({gt:e?Ee(e):null,lt:n?Ee(n):null,gte:t?Ee(t):null,lte:c?Ee(c):null}),encodeValue(e,n,c){r(e);const o={start:0,end:0,buffer:null};return Be.preencode(o,c),o.buffer=t.allocUnsafe(o.end),Be.encode(o,c),o.buffer},trigger:null,reconstruct:function(e,n,t){const c=Ie.decode(n);r(e);const o={start:0,end:t.byteLength,buffer:t},d=Be.decode(o);return d.id=c[0],d},reconstructKey:function(e){return{id:Ie.decode(e)[0]}},indexes:[],decodedVersion:0},Ne=new e([e.BUFFER,e.UINT],{prefix:20}),qe=l.threadsByParentMap;function Le(e){const n=[],t=e.key;if(void 0===t)return n;n.push(t);const c=e.seq;return void 0===c||n.push(c),n}const Me={name:"@keet/threads-by-parent",version:0,id:20,encodeKey:e=>Ne.encode(Le(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>Ne.encodeRange({gt:e?Le(e):null,lt:n?Le(n):null,gte:t?Le(t):null,lte:c?Le(c):null}),encodeValue:e=>Me.collection.encodeKey(e),encodeIndexKeys(e,n){const t=qe(e,n),c=new Array(t.length);for(let e=0;e<t.length;e++){const n=t[e];c[e]=Ne.encode([n.key,n.seq])}return c},reconstruct:(e,n)=>n,offset:Te.indexes.length,collection:Te};Te.indexes.push(Me);const Ae=new e([e.UINT,e.UINT],{prefix:21});function je(e){const n=[],t=e.id?.thread;if(void 0===t)return n;n.push(t);const c=e.id?.index;return void 0===c||n.push(c),n}const Ce=o("@keet/chat-message-record/hyperdb#21"),Ge=l.chatTrigger,Se={name:"@keet/chat",id:21,version:0,encodeKey(e){const n=[e.id.thread,e.id.index];return Ae.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>Ae.encodeRange({gt:e?je(e):null,lt:n?je(n):null,gte:t?je(t):null,lte:c?je(c):null}),encodeValue(e,n,c){r(e);const o={start:0,end:0,buffer:null};return Ce.preencode(o,c),o.buffer=t.allocUnsafe(o.end),Ce.encode(o,c),o.buffer},trigger:Ge,reconstruct:function(e,n,t){const c=Ae.decode(n);r(e);const o={start:0,end:t.byteLength,buffer:t},d=Ce.decode(o);return d.id.thread=c[0],d.id.index=c[1],d},reconstructKey:function(e){return{id:{index:Ae.decode(e)[1]}}},indexes:[],decodedVersion:0},De=new e([e.BUFFER,e.UINT],{prefix:22});function Pe(e){const n=[],t=e.oplog?.key;if(void 0===t)return n;n.push(t);const c=e.oplog?.seq;return void 0===c||n.push(c),n}const ze={name:"@keet/chat-by-message-id",version:0,id:22,encodeKey:e=>De.encode(Pe(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>De.encodeRange({gt:e?Pe(e):null,lt:n?Pe(n):null,gte:t?Pe(t):null,lte:c?Pe(c):null}),encodeValue:e=>ze.collection.encodeKey(e),encodeIndexKeys:(e,n)=>[De.encode([e.oplog.key,e.oplog.seq])],reconstruct:(e,n)=>n,offset:Se.indexes.length,collection:Se};Se.indexes.push(ze);const He=new e([e.BUFFER,e.UINT,e.UINT,e.UINT],{prefix:23}),Je=l.chatMentionsByMemberIdMap;function Oe(e){const n=[],t=e.key;if(void 0===t)return n;n.push(t);const c=e.clock;return void 0===c||n.push(c),n}const Qe={name:"@keet/chat-mentions-by-member-id",version:0,id:23,encodeKey:e=>He.encode(Oe(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>He.encodeRange({gt:e?Oe(e):null,lt:n?Oe(n):null,gte:t?Oe(t):null,lte:c?Oe(c):null}),encodeValue:e=>Qe.collection.encodeKey(e),encodeIndexKeys(e,n){const t=Je(e,n),c=new Array(t.length);for(let n=0;n<t.length;n++){const o=t[n];c[n]=He.encode([o.key,o.clock,e.id.thread,e.id.index])}return c},reconstruct:(e,n)=>n,offset:Se.indexes.length,collection:Se};Se.indexes.push(Qe);const We=new e([e.UINT,e.UINT,e.UINT,e.UINT],{prefix:24}),Xe=l.pinnedChatMessagesMap;function Ye(e){const n=[],t=e.thread;if(void 0===t)return n;n.push(t);const c=e.index;return void 0===c||n.push(c),n}const Ze={name:"@keet/pinned-chat-messages",version:0,id:24,encodeKey:e=>We.encode(Ye(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>We.encodeRange({gt:e?Ye(e):null,lt:n?Ye(n):null,gte:t?Ye(t):null,lte:c?Ye(c):null}),encodeValue:e=>Ze.collection.encodeKey(e),encodeIndexKeys(e,n){const t=Xe(e,n),c=new Array(t.length);for(let n=0;n<t.length;n++){const o=t[n];c[n]=We.encode([o.thread,o.index,e.id.thread,e.id.index])}return c},reconstruct:(e,n)=>n,offset:Se.indexes.length,collection:Se};Se.indexes.push(Ze);const $e=new e([e.UINT,e.UINT],{prefix:25});function _e(e){const n=[],t=e.id?.thread;if(void 0===t)return n;n.push(t);const c=e.id?.index;return void 0===c||n.push(c),n}const en=o("@keet/reactions-digest/hyperdb#25"),nn={name:"@keet/reaction-digests",id:25,version:0,encodeKey(e){const n=[e.id.thread,e.id.index];return $e.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>$e.encodeRange({gt:e?_e(e):null,lt:n?_e(n):null,gte:t?_e(t):null,lte:c?_e(c):null}),encodeValue(e,n,c){r(e);const o={start:0,end:0,buffer:null};return en.preencode(o,c),o.buffer=t.allocUnsafe(o.end),en.encode(o,c),o.buffer},trigger:null,reconstruct:function(e,n,t){const c=$e.decode(n);r(e);const o={start:0,end:t.byteLength,buffer:t},d=en.decode(o);return d.id.thread=c[0],d.id.index=c[1],d},reconstructKey:function(e){return{id:{index:$e.decode(e)[1]}}},indexes:[],decodedVersion:0},tn=new e([e.UINT,e.UINT,e.BUFFER,e.STRING],{prefix:26});function cn(e){const n=[],t=e.id?.thread;if(void 0===t)return n;n.push(t);const c=e.id?.index;if(void 0===c)return n;n.push(c);const o=e.sender;if(void 0===o)return n;n.push(o);const r=e.reaction;return void 0===r||n.push(r),n}const on=o("@keet/reaction/hyperdb#26"),rn=l.reactionsTrigger,dn={name:"@keet/reactions",id:26,version:0,encodeKey(e){const n=[e.id.thread,e.id.index,e.sender,e.reaction];return tn.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>tn.encodeRange({gt:e?cn(e):null,lt:n?cn(n):null,gte:t?cn(t):null,lte:c?cn(c):null}),encodeValue(e,n,c){r(e);const o={start:0,end:0,buffer:null};return on.preencode(o,c),o.buffer=t.allocUnsafe(o.end),on.encode(o,c),o.buffer},trigger:rn,reconstruct:function(e,n,t){const c=tn.decode(n);r(e);const o={start:0,end:t.byteLength,buffer:t},d=on.decode(o);return d.id.thread=c[0],d.id.index=c[1],d.sender=c[2],d.reaction=c[3],d},reconstructKey:function(e){const n=tn.decode(e);return{id:{index:n[1]},sender:n[2],reaction:n[3]}},indexes:[],decodedVersion:0},ln=new e([e.UINT,e.UINT,e.STRING,e.UINT,e.BUFFER,e.UINT,e.UINT,e.BUFFER,e.STRING],{prefix:27});function sn(e){const n=[],t=e.id?.thread;if(void 0===t)return n;n.push(t);const c=e.id?.index;if(void 0===c)return n;n.push(c);const o=e.reaction;if(void 0===o)return n;n.push(o);const r=e.clock;if(void 0===r)return n;n.push(r);const d=e.sender;if(void 0===d)return n;n.push(d);const l=e.id?.thread;if(void 0===l)return n;n.push(l);const s=e.id?.index;if(void 0===s)return n;n.push(s);const u=e.sender;if(void 0===u)return n;n.push(u);const i=e.reaction;return void 0===i||n.push(i),n}const un={name:"@keet/reactions-by-clock",version:0,id:27,encodeKey:e=>ln.encode(sn(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>ln.encodeRange({gt:e?sn(e):null,lt:n?sn(n):null,gte:t?sn(t):null,lte:c?sn(c):null}),encodeValue:e=>un.collection.encodeKey(e),encodeIndexKeys:(e,n)=>[ln.encode([e.id.thread,e.id.index,e.reaction,e.clock,e.sender,e.id.thread,e.id.index,e.sender,e.reaction])],reconstruct:(e,n)=>n,offset:dn.indexes.length,collection:dn};dn.indexes.push(un);const an=new e([e.UINT],{prefix:28});function fn(e){const n=e.id;return void 0===n?[]:[n]}const gn=o("@keet/file-record/hyperdb#28"),yn=l.filesTrigger,bn={name:"@keet/files",id:28,version:1,encodeKey(e){const n=[e.id];return an.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>an.encodeRange({gt:e?fn(e):null,lt:n?fn(n):null,gte:t?fn(t):null,lte:c?fn(c):null}),encodeValue(e,n,c){r(e);const o={start:0,end:0,buffer:null};return c.version=n,gn.preencode(o,c),o.buffer=t.allocUnsafe(o.end),gn.encode(o,c),o.buffer},trigger:yn,reconstruct:function(e,n,t){const c=an.decode(n);r(e);const o={start:0,end:t.byteLength,buffer:t},d=gn.decode(o);return d.id=c[0],bn.decodedVersion=d.version,d},reconstructKey:function(e){return{id:an.decode(e)[0]}},indexes:[],decodedVersion:0},pn=new e([e.BUFFER,e.UINT,e.UINT],{prefix:29});function Kn(e){const n=[],t=e.oplog?.key;if(void 0===t)return n;n.push(t);const c=e.oplog?.seq;if(void 0===c)return n;n.push(c);const o=e.id;return void 0===o||n.push(o),n}const mn={name:"@keet/files-by-message-id",version:0,id:29,encodeKey:e=>pn.encode(Kn(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>pn.encodeRange({gt:e?Kn(e):null,lt:n?Kn(n):null,gte:t?Kn(t):null,lte:c?Kn(c):null}),encodeValue:e=>mn.collection.encodeKey(e),encodeIndexKeys:(e,n)=>[pn.encode([e.oplog.key,e.oplog.seq,e.id])],reconstruct:(e,n)=>n,offset:bn.indexes.length,collection:bn};bn.indexes.push(mn);const vn=new e([e.STRING,e.UINT,e.UINT],{prefix:30}),kn=l.filesByTypeMap;function hn(e){const n=[],t=e.type;if(void 0===t)return n;n.push(t);const c=e.id;return void 0===c||n.push(c),n}const xn={name:"@keet/files-by-type",version:0,id:30,encodeKey:e=>vn.encode(hn(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>vn.encodeRange({gt:e?hn(e):null,lt:n?hn(n):null,gte:t?hn(t):null,lte:c?hn(c):null}),encodeValue:e=>xn.collection.encodeKey(e),encodeIndexKeys(e,n){const t=kn(e,n),c=new Array(t.length);for(let n=0;n<t.length;n++){const o=t[n];c[n]=vn.encode([o.type,o.id,e.id])}return c},reconstruct:(e,n)=>n,offset:-1,collection:bn},Rn=new e([e.UINT,e.UINT],{prefix:31}),Un=l.deletedFilesMap;function Fn(e){const n=e.id;return void 0===n?[]:[n]}const wn={name:"@keet/deleted-files",version:0,id:31,encodeKey:e=>Rn.encode(Fn(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>Rn.encodeRange({gt:e?Fn(e):null,lt:n?Fn(n):null,gte:t?Fn(t):null,lte:c?Fn(c):null}),encodeValue:e=>wn.collection.encodeKey(e),encodeIndexKeys(e,n){const t=Un(e,n),c=new Array(t.length);for(let n=0;n<t.length;n++){const o=t[n];c[n]=Rn.encode([o.id,e.id])}return c},reconstruct:(e,n)=>n,offset:-1,collection:bn},Vn=new e([],{prefix:32}),In=o("@keet/room-identity"),En={name:"@keet-private-id/identity",id:32,version:0,encodeKey:e=>Vn.encode([]),encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>Vn.encodeRange({gt:e?[]:null,lt:n?[]:null,gte:t?[]:null,lte:c?[]:null}),encodeValue(e,n,c){r(e);const o={start:0,end:0,buffer:null};return In.preencode(o,c),o.buffer=t.allocUnsafe(o.end),In.encode(o,c),o.buffer},trigger:null,reconstruct:function(e,n,t){r(e);const c={start:0,end:t.byteLength,buffer:t};return In.decode(c)},reconstructKey:function(e){return{}},indexes:[],decodedVersion:0},Bn=new e([],{prefix:33}),Tn=o("@keet-private-id/stats"),Nn={name:"@keet-private-id/stats",id:33,version:0,encodeKey:e=>Bn.encode([]),encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>Bn.encodeRange({gt:e?[]:null,lt:n?[]:null,gte:t?[]:null,lte:c?[]:null}),encodeValue(e,n,c){r(e);const o={start:0,end:0,buffer:null};return Tn.preencode(o,c),o.buffer=t.allocUnsafe(o.end),Tn.encode(o,c),o.buffer},trigger:null,reconstruct:function(e,n,t){r(e);const c={start:0,end:t.byteLength,buffer:t};return Tn.decode(c)},reconstructKey:function(e){return{}},indexes:[],decodedVersion:0},qn=new e([],{prefix:34}),Ln=o("@keet-private-id/counters"),Mn={name:"@keet-private-id/counters",id:34,version:0,encodeKey:e=>qn.encode([]),encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>qn.encodeRange({gt:e?[]:null,lt:n?[]:null,gte:t?[]:null,lte:c?[]:null}),encodeValue(e,n,c){r(e);const o={start:0,end:0,buffer:null};return Ln.preencode(o,c),o.buffer=t.allocUnsafe(o.end),Ln.encode(o,c),o.buffer},trigger:null,reconstruct:function(e,n,t){r(e);const c={start:0,end:t.byteLength,buffer:t};return Ln.decode(c)},reconstructKey:function(e){return{}},indexes:[],decodedVersion:0},An=new e([e.BUFFER],{prefix:35});function jn(e){const n=e.id;return void 0===n?[]:[n]}const Cn=o("@keet-private-id/pending-invitation/hyperdb#35"),Gn={name:"@keet-private-id/pending-invitations",id:35,version:0,encodeKey(e){const n=[e.id];return An.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>An.encodeRange({gt:e?jn(e):null,lt:n?jn(n):null,gte:t?jn(t):null,lte:c?jn(c):null}),encodeValue(e,n,c){r(e);const o={start:0,end:0,buffer:null};return Cn.preencode(o,c),o.buffer=t.allocUnsafe(o.end),Cn.encode(o,c),o.buffer},trigger:null,reconstruct:function(e,n,t){const c=An.decode(n);r(e);const o={start:0,end:t.byteLength,buffer:t},d=Cn.decode(o);return d.id=c[0],d},reconstructKey:function(e){return{id:An.decode(e)[0]}},indexes:[],decodedVersion:0},Sn=new e([e.BUFFER],{prefix:36});function Dn(e){const n=e.roomKey;return void 0===n?[]:[n]}const Pn=o("@keet-private-id/room/hyperdb#36"),zn=s.roomsTrigger,Hn={name:"@keet-private-id/rooms",id:36,version:0,encodeKey(e){const n=[e.roomKey];return Sn.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>Sn.encodeRange({gt:e?Dn(e):null,lt:n?Dn(n):null,gte:t?Dn(t):null,lte:c?Dn(c):null}),encodeValue(e,n,c){r(e);const o={start:0,end:0,buffer:null};return Pn.preencode(o,c),o.buffer=t.allocUnsafe(o.end),Pn.encode(o,c),o.buffer},trigger:zn,reconstruct:function(e,n,t){const c=Sn.decode(n);r(e);const o={start:0,end:t.byteLength,buffer:t},d=Pn.decode(o);return d.roomKey=c[0],d},reconstructKey:function(e){return{roomKey:Sn.decode(e)[0]}},indexes:[],decodedVersion:0},Jn=new e([e.UINT,e.BUFFER],{prefix:37});function On(e){const n=[],t=e.clock;if(void 0===t)return n;n.push(t);const c=e.roomKey;return void 0===c||n.push(c),n}const Qn={name:"@keet-private-id/rooms-by-clock",version:0,id:37,encodeKey:e=>Jn.encode(On(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>Jn.encodeRange({gt:e?On(e):null,lt:n?On(n):null,gte:t?On(t):null,lte:c?On(c):null}),encodeValue:e=>Qn.collection.encodeKey(e),encodeIndexKeys:(e,n)=>[Jn.encode([e.clock,e.roomKey])],reconstruct:(e,n)=>n,offset:Hn.indexes.length,collection:Hn};Hn.indexes.push(Qn);const Wn=new e([e.BUFFER],{prefix:38});function Xn(e){const n=e.memberKey;return void 0===n?[]:[n]}const Yn=o("@keet-private-id/contact-record/hyperdb#38"),Zn=s.contactsTrigger,$n={name:"@keet-private-id/contacts",id:38,version:0,encodeKey(e){const n=[e.memberKey];return Wn.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>Wn.encodeRange({gt:e?Xn(e):null,lt:n?Xn(n):null,gte:t?Xn(t):null,lte:c?Xn(c):null}),encodeValue(e,n,c){r(e);const o={start:0,end:0,buffer:null};return Yn.preencode(o,c),o.buffer=t.allocUnsafe(o.end),Yn.encode(o,c),o.buffer},trigger:Zn,reconstruct:function(e,n,t){const c=Wn.decode(n);r(e);const o={start:0,end:t.byteLength,buffer:t},d=Yn.decode(o);return d.memberKey=c[0],d},reconstructKey:function(e){return{memberKey:Wn.decode(e)[0]}},indexes:[],decodedVersion:0},_n=new e([e.UINT,e.BUFFER],{prefix:39});function et(e){const n=[],t=e.clock;if(void 0===t)return n;n.push(t);const c=e.memberKey;return void 0===c||n.push(c),n}const nt={name:"@keet-private-id/contacts-by-clock",version:0,id:39,encodeKey:e=>_n.encode(et(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>_n.encodeRange({gt:e?et(e):null,lt:n?et(n):null,gte:t?et(t):null,lte:c?et(c):null}),encodeValue:e=>nt.collection.encodeKey(e),encodeIndexKeys:(e,n)=>[_n.encode([e.clock,e.memberKey])],reconstruct:(e,n)=>n,offset:$n.indexes.length,collection:$n};$n.indexes.push(nt);const tt=new e([e.BUFFER],{prefix:40});function ct(e){const n=e.memberKey;return void 0===n?[]:[n]}const ot=o("@keet-private-id/contact-request-record/hyperdb#40"),rt=s.contactRequestsTrigger,dt={name:"@keet-private-id/contact-requests",id:40,version:0,encodeKey(e){const n=[e.memberKey];return tt.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>tt.encodeRange({gt:e?ct(e):null,lt:n?ct(n):null,gte:t?ct(t):null,lte:c?ct(c):null}),encodeValue(e,n,c){r(e);const o={start:0,end:0,buffer:null};return ot.preencode(o,c),o.buffer=t.allocUnsafe(o.end),ot.encode(o,c),o.buffer},trigger:rt,reconstruct:function(e,n,t){const c=tt.decode(n);r(e);const o={start:0,end:t.byteLength,buffer:t},d=ot.decode(o);return d.memberKey=c[0],d},reconstructKey:function(e){return{memberKey:tt.decode(e)[0]}},indexes:[],decodedVersion:0},lt=new e([e.UINT,e.BUFFER],{prefix:41});function st(e){const n=[],t=e.clock;if(void 0===t)return n;n.push(t);const c=e.memberKey;return void 0===c||n.push(c),n}const ut={name:"@keet-private-id/contact-requests-by-clock",version:0,id:41,encodeKey:e=>lt.encode(st(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>lt.encodeRange({gt:e?st(e):null,lt:n?st(n):null,gte:t?st(t):null,lte:c?st(c):null}),encodeValue:e=>ut.collection.encodeKey(e),encodeIndexKeys:(e,n)=>[lt.encode([e.clock,e.memberKey])],reconstruct:(e,n)=>n,offset:dt.indexes.length,collection:dt};dt.indexes.push(ut);const it=new e([e.UINT,e.BUFFER],{prefix:42}),at=s.pendingContactRequestsMap;function ft(e){const n=e.clock;return void 0===n?[]:[n]}const gt={name:"@keet-private-id/pending-contact-requests",version:0,id:42,encodeKey:e=>it.encode(ft(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>it.encodeRange({gt:e?ft(e):null,lt:n?ft(n):null,gte:t?ft(t):null,lte:c?ft(c):null}),encodeValue:e=>gt.collection.encodeKey(e),encodeIndexKeys(e,n){const t=at(e,n),c=new Array(t.length);for(let n=0;n<t.length;n++){const o=t[n];c[n]=it.encode([o.clock,e.memberKey])}return c},reconstruct:(e,n)=>n,offset:dt.indexes.length,collection:dt};dt.indexes.push(gt);const yt=new e([e.UINT,e.BUFFER],{prefix:43}),bt=s.acceptedContactRequestsMap;function pt(e){const n=e.clock;return void 0===n?[]:[n]}const Kt={name:"@keet-private-id/accepted-contact-requests",version:0,id:43,encodeKey:e=>yt.encode(pt(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>yt.encodeRange({gt:e?pt(e):null,lt:n?pt(n):null,gte:t?pt(t):null,lte:c?pt(c):null}),encodeValue:e=>Kt.collection.encodeKey(e),encodeIndexKeys(e,n){const t=bt(e,n),c=new Array(t.length);for(let n=0;n<t.length;n++){const o=t[n];c[n]=yt.encode([o.clock,e.memberKey])}return c},reconstruct:(e,n)=>n,offset:dt.indexes.length,collection:dt};dt.indexes.push(Kt);const mt=new e([e.UINT,e.BUFFER],{prefix:44}),vt=s.rejectedContactRequestsMap;function kt(e){const n=e.clock;return void 0===n?[]:[n]}const ht={name:"@keet-private-id/rejected-contact-requests",version:0,id:44,encodeKey:e=>mt.encode(kt(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>mt.encodeRange({gt:e?kt(e):null,lt:n?kt(n):null,gte:t?kt(t):null,lte:c?kt(c):null}),encodeValue:e=>ht.collection.encodeKey(e),encodeIndexKeys(e,n){const t=vt(e,n),c=new Array(t.length);for(let n=0;n<t.length;n++){const o=t[n];c[n]=mt.encode([o.clock,e.memberKey])}return c},reconstruct:(e,n)=>n,offset:dt.indexes.length,collection:dt};dt.indexes.push(ht);const xt=new e([e.UINT,e.BUFFER],{prefix:45}),Rt=s.discardedContactRequestsMap;function Ut(e){const n=e.clock;return void 0===n?[]:[n]}const Ft={name:"@keet-private-id/discarded-contact-requests",version:0,id:45,encodeKey:e=>xt.encode(Ut(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>xt.encodeRange({gt:e?Ut(e):null,lt:n?Ut(n):null,gte:t?Ut(t):null,lte:c?Ut(c):null}),encodeValue:e=>Ft.collection.encodeKey(e),encodeIndexKeys(e,n){const t=Rt(e,n),c=new Array(t.length);for(let n=0;n<t.length;n++){const o=t[n];c[n]=xt.encode([o.clock,e.memberKey])}return c},reconstruct:(e,n)=>n,offset:dt.indexes.length,collection:dt};dt.indexes.push(Ft);const wt=new e([e.UINT],{prefix:46});function Vt(e){const n=e.key;return void 0===n?[]:[n]}const It=o("@keet/test-collection-record-1/hyperdb#46"),Et={name:"@keet/test-collection-1",id:46,version:0,encodeKey(e){const n=[e.key];return wt.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>wt.encodeRange({gt:e?Vt(e):null,lt:n?Vt(n):null,gte:t?Vt(t):null,lte:c?Vt(c):null}),encodeValue(e,n,c){r(e);const o={start:0,end:0,buffer:null};return It.preencode(o,c),o.buffer=t.allocUnsafe(o.end),It.encode(o,c),o.buffer},trigger:null,reconstruct:function(e,n,t){const c=wt.decode(n);r(e);const o={start:0,end:t.byteLength,buffer:t},d=It.decode(o);return d.key=c[0],d},reconstructKey:function(e){return{key:wt.decode(e)[0]}},indexes:[],decodedVersion:0},Bt=new e([e.STRING,e.UINT,e.UINT],{prefix:47}),Tt=l.filesByMajorTypeMap;function Nt(e){const n=[],t=e.type;if(void 0===t)return n;n.push(t);const c=e.id;return void 0===c||n.push(c),n}const qt={name:"@keet/files-by-major-type",version:1,id:47,encodeKey:e=>Bt.encode(Nt(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>Bt.encodeRange({gt:e?Nt(e):null,lt:n?Nt(n):null,gte:t?Nt(t):null,lte:c?Nt(c):null}),encodeValue:e=>qt.collection.encodeKey(e),encodeIndexKeys(e,n){const t=Tt(e,n),c=new Array(t.length);for(let n=0;n<t.length;n++){const o=t[n];c[n]=Bt.encode([o.type,o.id,e.id])}return c},reconstruct:(e,n)=>n,offset:bn.indexes.length,collection:bn};bn.indexes.push(qt);const Lt=new e([e.UINT,e.UINT],{prefix:48}),Mt=l.activeFilesMap;function At(e){const n=e.id;return void 0===n?[]:[n]}const jt={name:"@keet/active-files",version:1,id:48,encodeKey:e=>Lt.encode(At(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>Lt.encodeRange({gt:e?At(e):null,lt:n?At(n):null,gte:t?At(t):null,lte:c?At(c):null}),encodeValue:e=>jt.collection.encodeKey(e),encodeIndexKeys(e,n){const t=Mt(e,n),c=new Array(t.length);for(let n=0;n<t.length;n++){const o=t[n];c[n]=Lt.encode([o.id,e.id])}return c},reconstruct:(e,n)=>n,offset:bn.indexes.length,collection:bn};bn.indexes.push(jt);const Ct=new e([e.BUFFER,e.BUFFER],{prefix:49}),Gt=s.roomsByContactMap;function St(e){const n=e.contact;return void 0===n?[]:[n]}const Dt={name:"@keet-private-id/rooms-by-contact",version:0,id:49,encodeKey:e=>Ct.encode(St(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>Ct.encodeRange({gt:e?St(e):null,lt:n?St(n):null,gte:t?St(t):null,lte:c?St(c):null}),encodeValue:e=>Dt.collection.encodeKey(e),encodeIndexKeys(e,n){const t=Gt(e,n),c=new Array(t.length);for(let n=0;n<t.length;n++){const o=t[n];c[n]=Ct.encode([o.contact,e.roomKey])}return c},reconstruct:(e,n)=>n,offset:Hn.indexes.length,collection:Hn};Hn.indexes.push(Dt);const Pt=new e([e.BUFFER],{prefix:50});function zt(e){const n=e.deviceKey;return void 0===n?[]:[n]}const Ht=o("@keet/device-identity/hyperdb#50"),Jt={name:"@keet-private-id/device-identities",id:50,version:0,encodeKey(e){const n=[e.deviceKey];return Pt.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>Pt.encodeRange({gt:e?zt(e):null,lt:n?zt(n):null,gte:t?zt(t):null,lte:c?zt(c):null}),encodeValue(e,n,c){r(e);const o={start:0,end:0,buffer:null};return Ht.preencode(o,c),o.buffer=t.allocUnsafe(o.end),Ht.encode(o,c),o.buffer},trigger:null,reconstruct:function(e,n,t){const c=Pt.decode(n);r(e);const o={start:0,end:t.byteLength,buffer:t},d=Ht.decode(o);return d.deviceKey=c[0],d},reconstructKey:function(e){return{deviceKey:Pt.decode(e)[0]}},indexes:[],decodedVersion:0},Ot=new e([e.BUFFER,e.BUFFER],{prefix:51});function Qt(e){const n=[],t=e.memberKey;if(void 0===t)return n;n.push(t);const c=e.keys?.key;return void 0===c||n.push(c),n}const Wt=o("@keet-private-id/contact-request-record/hyperdb#51"),Xt=s.contactRequestsTrigger,Yt={name:"@keet-private-id/contact-requests-v2",id:51,version:0,encodeKey(e){const n=[e.memberKey,e.keys.key];return Ot.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>Ot.encodeRange({gt:e?Qt(e):null,lt:n?Qt(n):null,gte:t?Qt(t):null,lte:c?Qt(c):null}),encodeValue(e,n,c){r(e);const o={start:0,end:0,buffer:null};return Wt.preencode(o,c),o.buffer=t.allocUnsafe(o.end),Wt.encode(o,c),o.buffer},trigger:Xt,reconstruct:function(e,n,t){const c=Ot.decode(n);r(e);const o={start:0,end:t.byteLength,buffer:t},d=Wt.decode(o);return d.memberKey=c[0],d.keys.key=c[1],d},reconstructKey:function(e){const n=Ot.decode(e);return{memberKey:n[0],keys:{key:n[1]}}},indexes:[],decodedVersion:0},Zt=new e([e.BUFFER,e.BUFFER,e.BUFFER],{prefix:52});function $t(e){const n=[],t=e.memberKey;if(void 0===t)return n;n.push(t);const c=e.memberKey;if(void 0===c)return n;n.push(c);const o=e.keys?.key;return void 0===o||n.push(o),n}const _t={name:"@keet-private-id/contact-requests-by-member",version:0,id:52,encodeKey:e=>Zt.encode($t(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>Zt.encodeRange({gt:e?$t(e):null,lt:n?$t(n):null,gte:t?$t(t):null,lte:c?$t(c):null}),encodeValue:e=>_t.collection.encodeKey(e),encodeIndexKeys:(e,n)=>[Zt.encode([e.memberKey,e.memberKey,e.keys.key])],reconstruct:(e,n)=>n,offset:Yt.indexes.length,collection:Yt};Yt.indexes.push(_t);const ec=new e([e.UINT,e.BUFFER,e.BUFFER],{prefix:53});function nc(e){const n=[],t=e.clock;if(void 0===t)return n;n.push(t);const c=e.memberKey;if(void 0===c)return n;n.push(c);const o=e.keys?.key;return void 0===o||n.push(o),n}const tc={name:"@keet-private-id/contact-requests-by-clock-v2",version:0,id:53,encodeKey:e=>ec.encode(nc(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>ec.encodeRange({gt:e?nc(e):null,lt:n?nc(n):null,gte:t?nc(t):null,lte:c?nc(c):null}),encodeValue:e=>tc.collection.encodeKey(e),encodeIndexKeys:(e,n)=>[ec.encode([e.clock,e.memberKey,e.keys.key])],reconstruct:(e,n)=>n,offset:Yt.indexes.length,collection:Yt};Yt.indexes.push(tc);const cc=new e([e.UINT,e.BUFFER,e.BUFFER],{prefix:54}),oc=s.pendingContactRequestsMap;function rc(e){const n=e.clock;return void 0===n?[]:[n]}const dc={name:"@keet-private-id/pending-contact-requests-v2",version:0,id:54,encodeKey:e=>cc.encode(rc(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>cc.encodeRange({gt:e?rc(e):null,lt:n?rc(n):null,gte:t?rc(t):null,lte:c?rc(c):null}),encodeValue:e=>dc.collection.encodeKey(e),encodeIndexKeys(e,n){const t=oc(e,n),c=new Array(t.length);for(let n=0;n<t.length;n++){const o=t[n];c[n]=cc.encode([o.clock,e.memberKey,e.keys.key])}return c},reconstruct:(e,n)=>n,offset:Yt.indexes.length,collection:Yt};Yt.indexes.push(dc);const lc=new e([e.BUFFER,e.BUFFER,e.BUFFER],{prefix:55}),sc=s.pendingContactRequestsByMemberMap;function uc(e){const n=e.memberKey;return void 0===n?[]:[n]}const ic={name:"@keet-private-id/pending-contact-requests-by-member",version:0,id:55,encodeKey:e=>lc.encode(uc(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>lc.encodeRange({gt:e?uc(e):null,lt:n?uc(n):null,gte:t?uc(t):null,lte:c?uc(c):null}),encodeValue:e=>ic.collection.encodeKey(e),encodeIndexKeys(e,n){const t=sc(e,n),c=new Array(t.length);for(let n=0;n<t.length;n++){const o=t[n];c[n]=lc.encode([o.memberKey,e.memberKey,e.keys.key])}return c},reconstruct:(e,n)=>n,offset:Yt.indexes.length,collection:Yt};Yt.indexes.push(ic);const ac=new e([e.UINT,e.BUFFER,e.BUFFER],{prefix:56}),fc=s.acceptedContactRequestsMap;function gc(e){const n=e.clock;return void 0===n?[]:[n]}const yc={name:"@keet-private-id/accepted-contact-requests-v2",version:0,id:56,encodeKey:e=>ac.encode(gc(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>ac.encodeRange({gt:e?gc(e):null,lt:n?gc(n):null,gte:t?gc(t):null,lte:c?gc(c):null}),encodeValue:e=>yc.collection.encodeKey(e),encodeIndexKeys(e,n){const t=fc(e,n),c=new Array(t.length);for(let n=0;n<t.length;n++){const o=t[n];c[n]=ac.encode([o.clock,e.memberKey,e.keys.key])}return c},reconstruct:(e,n)=>n,offset:Yt.indexes.length,collection:Yt};Yt.indexes.push(yc);const bc=new e([e.UINT,e.BUFFER,e.BUFFER],{prefix:57}),pc=s.rejectedContactRequestsMap;function Kc(e){const n=e.clock;return void 0===n?[]:[n]}const mc={name:"@keet-private-id/rejected-contact-requests-v2",version:0,id:57,encodeKey:e=>bc.encode(Kc(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>bc.encodeRange({gt:e?Kc(e):null,lt:n?Kc(n):null,gte:t?Kc(t):null,lte:c?Kc(c):null}),encodeValue:e=>mc.collection.encodeKey(e),encodeIndexKeys(e,n){const t=pc(e,n),c=new Array(t.length);for(let n=0;n<t.length;n++){const o=t[n];c[n]=bc.encode([o.clock,e.memberKey,e.keys.key])}return c},reconstruct:(e,n)=>n,offset:Yt.indexes.length,collection:Yt};Yt.indexes.push(mc);const vc=new e([e.UINT,e.BUFFER,e.BUFFER],{prefix:58}),kc=s.discardedContactRequestsMap;function hc(e){const n=e.clock;return void 0===n?[]:[n]}const xc={name:"@keet-private-id/discarded-contact-requests-v2",version:0,id:58,encodeKey:e=>vc.encode(hc(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>vc.encodeRange({gt:e?hc(e):null,lt:n?hc(n):null,gte:t?hc(t):null,lte:c?hc(c):null}),encodeValue:e=>xc.collection.encodeKey(e),encodeIndexKeys(e,n){const t=kc(e,n),c=new Array(t.length);for(let n=0;n<t.length;n++){const o=t[n];c[n]=vc.encode([o.clock,e.memberKey,e.keys.key])}return c},reconstruct:(e,n)=>n,offset:Yt.indexes.length,collection:Yt};Yt.indexes.push(xc);const Rc=new e([e.BUFFER],{prefix:59});function Uc(e){const n=e.deviceKey;return void 0===n?[]:[n]}const Fc=o("@keet-private-id/unreads/hyperdb#59"),wc={name:"@keet-private-id/unreads",id:59,version:0,encodeKey(e){const n=[e.deviceKey];return Rc.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>Rc.encodeRange({gt:e?Uc(e):null,lt:n?Uc(n):null,gte:t?Uc(t):null,lte:c?Uc(c):null}),encodeValue(e,n,c){r(e);const o={start:0,end:0,buffer:null};return Fc.preencode(o,c),o.buffer=t.allocUnsafe(o.end),Fc.encode(o,c),o.buffer},trigger:null,reconstruct:function(e,n,t){const c=Rc.decode(n);r(e);const o={start:0,end:t.byteLength,buffer:t},d=Fc.decode(o);return d.deviceKey=c[0],d},reconstructKey:function(e){return{deviceKey:Rc.decode(e)[0]}},indexes:[],decodedVersion:0},Vc=new e([e.UINT,e.UINT,e.BUFFER,e.UINT],{prefix:60});function Ic(e){const n=[],t=e.id?.thread;if(void 0===t)return n;n.push(t);const c=e.id?.index;if(void 0===c)return n;n.push(c);const o=e.sender;if(void 0===o)return n;n.push(o);const r=e.label;return void 0===r||n.push(r),n}const Ec=o("@keet/chat-label/hyperdb#60"),Bc=l.chatLabelTrigger,Tc={name:"@keet/chat-labels",id:60,version:0,encodeKey(e){const n=[e.id.thread,e.id.index,e.sender,e.label];return Vc.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>Vc.encodeRange({gt:e?Ic(e):null,lt:n?Ic(n):null,gte:t?Ic(t):null,lte:c?Ic(c):null}),encodeValue(e,n,c){r(e);const o={start:0,end:0,buffer:null};return Ec.preencode(o,c),o.buffer=t.allocUnsafe(o.end),Ec.encode(o,c),o.buffer},trigger:Bc,reconstruct:function(e,n,t){const c=Vc.decode(n);r(e);const o={start:0,end:t.byteLength,buffer:t},d=Ec.decode(o);return d.id.thread=c[0],d.id.index=c[1],d.sender=c[2],d.label=c[3],d},reconstructKey:function(e){const n=Vc.decode(e);return{id:{index:n[1]},sender:n[2],label:n[3]}},indexes:[],decodedVersion:0},Nc=new e([e.UINT,e.UINT],{prefix:61});function qc(e){const n=[],t=e.id?.thread;if(void 0===t)return n;n.push(t);const c=e.id?.index;return void 0===c||n.push(c),n}const Lc=o("@keet/chat-label-digest/hyperdb#61"),Mc={name:"@keet/chat-label-digests",id:61,version:2,encodeKey(e){const n=[e.id.thread,e.id.index];return Nc.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>Nc.encodeRange({gt:e?qc(e):null,lt:n?qc(n):null,gte:t?qc(t):null,lte:c?qc(c):null}),encodeValue(e,n,c){r(e);const o={start:0,end:0,buffer:null};return c.version=n,Lc.preencode(o,c),o.buffer=t.allocUnsafe(o.end),Lc.encode(o,c),o.buffer},trigger:null,reconstruct:function(e,n,t){const c=Nc.decode(n);r(e);const o={start:0,end:t.byteLength,buffer:t},d=Lc.decode(o);return d.id.thread=c[0],d.id.index=c[1],Mc.decodedVersion=d.version,d},reconstructKey:function(e){return{id:{index:Nc.decode(e)[1]}}},indexes:[],decodedVersion:0},Ac=new e([e.BUFFER],{prefix:62});function jc(e){const n=e.memberKey;return void 0===n?[]:[n]}const Cc=o("@keet/read-length/hyperdb#62"),Gc={name:"@keet/read-lengths",id:62,version:0,encodeKey(e){const n=[e.memberKey];return Ac.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>Ac.encodeRange({gt:e?jc(e):null,lt:n?jc(n):null,gte:t?jc(t):null,lte:c?jc(c):null}),encodeValue(e,n,c){r(e);const o={start:0,end:0,buffer:null};return Cc.preencode(o,c),o.buffer=t.allocUnsafe(o.end),Cc.encode(o,c),o.buffer},trigger:null,reconstruct:function(e,n,t){const c=Ac.decode(n);r(e);const o={start:0,end:t.byteLength,buffer:t},d=Cc.decode(o);return d.memberKey=c[0],d},reconstructKey:function(e){return{memberKey:Ac.decode(e)[0]}},indexes:[],decodedVersion:0},Sc=new e([e.BUFFER],{prefix:63});function Dc(e){const n=e.key;return void 0===n?[]:[n]}const Pc=o("@keet/tmp-removed-member/hyperdb#63"),zc={name:"@keet/tmp-removed-members",id:63,version:0,encodeKey(e){const n=[e.key];return Sc.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>Sc.encodeRange({gt:e?Dc(e):null,lt:n?Dc(n):null,gte:t?Dc(t):null,lte:c?Dc(c):null}),encodeValue(e,n,c){r(e);const o={start:0,end:0,buffer:null};return Pc.preencode(o,c),o.buffer=t.allocUnsafe(o.end),Pc.encode(o,c),o.buffer},trigger:null,reconstruct:function(e,n,t){const c=Sc.decode(n);r(e);const o={start:0,end:t.byteLength,buffer:t},d=Pc.decode(o);return d.key=c[0],d},reconstructKey:function(e){return{key:Sc.decode(e)[0]}},indexes:[],decodedVersion:0},Hc=new e([],{prefix:64}),Jc=o("@keet-private-id/settings"),Oc={name:"@keet-private-id/settings",id:64,version:0,encodeKey:e=>Hc.encode([]),encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>Hc.encodeRange({gt:e?[]:null,lt:n?[]:null,gte:t?[]:null,lte:c?[]:null}),encodeValue(e,n,c){r(e);const o={start:0,end:0,buffer:null};return Jc.preencode(o,c),o.buffer=t.allocUnsafe(o.end),Jc.encode(o,c),o.buffer},trigger:null,reconstruct:function(e,n,t){r(e);const c={start:0,end:t.byteLength,buffer:t};return Jc.decode(c)},reconstructKey:function(e){return{}},indexes:[],decodedVersion:0},Qc=new e([e.UINT,e.UINT,e.UINT,e.UINT],{prefix:65}),Wc=l.chatLabelDigestFlagMap;function Xc(e){const n=[],t=e.label;if(void 0===t)return n;n.push(t);const c=e.clock;return void 0===c||n.push(c),n}const Yc={name:"@keet/chat-label-digests-by-clock",version:2,id:65,encodeKey:e=>Qc.encode(Xc(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>Qc.encodeRange({gt:e?Xc(e):null,lt:n?Xc(n):null,gte:t?Xc(t):null,lte:c?Xc(c):null}),encodeValue:e=>Yc.collection.encodeKey(e),encodeIndexKeys(e,n){const t=Wc(e,n),c=new Array(t.length);for(let n=0;n<t.length;n++){const o=t[n];c[n]=Qc.encode([o.label,o.clock,e.id.thread,e.id.index])}return c},reconstruct:(e,n)=>n,offset:Mc.indexes.length,collection:Mc};Mc.indexes.push(Yc);const Zc=new e([e.BUFFER,e.BUFFER,e.UINT],{prefix:66});function $c(e){const n=[],t=e.key;if(void 0===t)return n;n.push(t);const c=e.sender;if(void 0===c)return n;n.push(c);const o=e.label;return void 0===o||n.push(o),n}const _c=o("@keet/member-label/hyperdb#66"),eo={name:"@keet/member-labels",id:66,version:3,encodeKey(e){const n=[e.key,e.sender,e.label];return Zc.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>Zc.encodeRange({gt:e?$c(e):null,lt:n?$c(n):null,gte:t?$c(t):null,lte:c?$c(c):null}),encodeValue(e,n,c){r(e);const o={start:0,end:2,buffer:null};return _c.preencode(o,c),o.buffer=t.allocUnsafe(o.end),o.buffer[o.start++]=0,o.buffer[o.start++]=n,_c.encode(o,c),o.buffer},trigger:null,reconstruct:function(e,t,c){const o=Zc.decode(t);r(e);const d={start:0,end:c.byteLength,buffer:c},l=n.uint.decode(d);if(0!==l)throw new Error("Unknown collection type: "+l);eo.decodedVersion=n.uint.decode(d);const s=_c.decode(d);return s.key=o[0],s.sender=o[1],s.label=o[2],s},reconstructKey:function(e){const n=Zc.decode(e);return{key:n[0],sender:n[1],label:n[2]}},indexes:[],decodedVersion:0},no=new e([e.BUFFER],{prefix:67});function to(e){const n=e.key;return void 0===n?[]:[n]}const co=o("@keet/member-label-digest/hyperdb#67"),oo={name:"@keet/member-label-digests",id:67,version:3,encodeKey(e){const n=[e.key];return no.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>no.encodeRange({gt:e?to(e):null,lt:n?to(n):null,gte:t?to(t):null,lte:c?to(c):null}),encodeValue(e,n,c){r(e);const o={start:0,end:2,buffer:null};return co.preencode(o,c),o.buffer=t.allocUnsafe(o.end),o.buffer[o.start++]=0,o.buffer[o.start++]=n,co.encode(o,c),o.buffer},trigger:null,reconstruct:function(e,t,c){const o=no.decode(t);r(e);const d={start:0,end:c.byteLength,buffer:c},l=n.uint.decode(d);if(0!==l)throw new Error("Unknown collection type: "+l);oo.decodedVersion=n.uint.decode(d);const s=co.decode(d);return s.key=o[0],s},reconstructKey:function(e){return{key:no.decode(e)[0]}},indexes:[],decodedVersion:0},ro=new e([e.UINT,e.UINT,e.BUFFER],{prefix:68}),lo=l.memberLabelDigestFlagMap;function so(e){const n=[],t=e.label;if(void 0===t)return n;n.push(t);const c=e.clock;return void 0===c||n.push(c),n}const uo={name:"@keet/member-label-digests-by-clock",version:3,id:68,encodeKey:e=>ro.encode(so(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>ro.encodeRange({gt:e?so(e):null,lt:n?so(n):null,gte:t?so(t):null,lte:c?so(c):null}),encodeValue:e=>uo.collection.encodeKey(e),encodeIndexKeys(e,n){const t=lo(e,n),c=new Array(t.length);for(let n=0;n<t.length;n++){const o=t[n];c[n]=ro.encode([o.label,o.clock,e.key])}return c},reconstruct:(e,n)=>n,offset:oo.indexes.length,collection:oo};oo.indexes.push(uo);const io=new e([e.BUFFER],{prefix:69});function ao(e){const n=e.callKey;return void 0===n?[]:[n]}const fo=o("@keet/call-record/hyperdb#69"),go={name:"@keet/calls",id:69,version:4,encodeKey(e){const n=[e.callKey];return io.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>io.encodeRange({gt:e?ao(e):null,lt:n?ao(n):null,gte:t?ao(t):null,lte:c?ao(c):null}),encodeValue(e,n,c){r(e);const o={start:0,end:2,buffer:null};return fo.preencode(o,c),o.buffer=t.allocUnsafe(o.end),o.buffer[o.start++]=0,o.buffer[o.start++]=n,fo.encode(o,c),o.buffer},trigger:null,reconstruct:function(e,t,c){const o=io.decode(t);r(e);const d={start:0,end:c.byteLength,buffer:c},l=n.uint.decode(d);if(0!==l)throw new Error("Unknown collection type: "+l);go.decodedVersion=n.uint.decode(d);const s=fo.decode(d);return s.callKey=o[0],s},reconstructKey:function(e){return{callKey:io.decode(e)[0]}},indexes:[],decodedVersion:0},yo=new e([e.UINT,e.BUFFER],{prefix:70});function bo(e){const n=[],t=e.createdAt;if(void 0===t)return n;n.push(t);const c=e.callKey;return void 0===c||n.push(c),n}const po={name:"@keet/calls-by-timestamp",version:4,id:70,encodeKey:e=>yo.encode(bo(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>yo.encodeRange({gt:e?bo(e):null,lt:n?bo(n):null,gte:t?bo(t):null,lte:c?bo(c):null}),encodeValue:e=>po.collection.encodeKey(e),encodeIndexKeys:(e,n)=>[yo.encode([e.createdAt,e.callKey])],reconstruct:(e,n)=>n,offset:go.indexes.length,collection:go};go.indexes.push(po);const Ko=new e([e.UINT,e.BUFFER],{prefix:71}),mo=l.activeCallsMap;function vo(e){const n=e.createdAt;return void 0===n?[]:[n]}const ko={name:"@keet/active-calls-by-timestamp",version:4,id:71,encodeKey:e=>Ko.encode(vo(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>Ko.encodeRange({gt:e?vo(e):null,lt:n?vo(n):null,gte:t?vo(t):null,lte:c?vo(c):null}),encodeValue:e=>ko.collection.encodeKey(e),encodeIndexKeys(e,n){const t=mo(e,n),c=new Array(t.length);for(let n=0;n<t.length;n++){const o=t[n];c[n]=Ko.encode([o.createdAt,e.callKey])}return c},reconstruct:(e,n)=>n,offset:go.indexes.length,collection:go};go.indexes.push(ko);const ho=new e([e.BUFFER,e.BUFFER],{prefix:72});function xo(e){const n=[],t=e.callKey;if(void 0===t)return n;n.push(t);const c=e.memberKey;return void 0===c||n.push(c),n}const Ro=o("@keet/call-member-record/hyperdb#72"),Uo={name:"@keet/call-members",id:72,version:4,encodeKey(e){const n=[e.callKey,e.memberKey];return ho.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>ho.encodeRange({gt:e?xo(e):null,lt:n?xo(n):null,gte:t?xo(t):null,lte:c?xo(c):null}),encodeValue(e,n,c){r(e);const o={start:0,end:2,buffer:null};return Ro.preencode(o,c),o.buffer=t.allocUnsafe(o.end),o.buffer[o.start++]=0,o.buffer[o.start++]=n,Ro.encode(o,c),o.buffer},trigger:null,reconstruct:function(e,t,c){const o=ho.decode(t);r(e);const d={start:0,end:c.byteLength,buffer:c},l=n.uint.decode(d);if(0!==l)throw new Error("Unknown collection type: "+l);Uo.decodedVersion=n.uint.decode(d);const s=Ro.decode(d);return s.callKey=o[0],s.memberKey=o[1],s},reconstructKey:function(e){const n=ho.decode(e);return{callKey:n[0],memberKey:n[1]}},indexes:[],decodedVersion:0},Fo=new e([e.BUFFER,e.BUFFER],{prefix:73});function wo(e){const n=[],t=e.callKey;if(void 0===t)return n;n.push(t);const c=e.deviceKey;return void 0===c||n.push(c),n}const Vo=o("@keet/call-device-record/hyperdb#73"),Io={name:"@keet/call-devices",id:73,version:4,encodeKey(e){const n=[e.callKey,e.deviceKey];return Fo.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>Fo.encodeRange({gt:e?wo(e):null,lt:n?wo(n):null,gte:t?wo(t):null,lte:c?wo(c):null}),encodeValue(e,n,c){r(e);const o={start:0,end:2,buffer:null};return Vo.preencode(o,c),o.buffer=t.allocUnsafe(o.end),o.buffer[o.start++]=0,o.buffer[o.start++]=n,Vo.encode(o,c),o.buffer},trigger:null,reconstruct:function(e,t,c){const o=Fo.decode(t);r(e);const d={start:0,end:c.byteLength,buffer:c},l=n.uint.decode(d);if(0!==l)throw new Error("Unknown collection type: "+l);Io.decodedVersion=n.uint.decode(d);const s=Vo.decode(d);return s.callKey=o[0],s.deviceKey=o[1],s},reconstructKey:function(e){const n=Fo.decode(e);return{callKey:n[0],deviceKey:n[1]}},indexes:[],decodedVersion:0},Eo=new e([e.BUFFER,e.BUFFER,e.BUFFER,e.BUFFER],{prefix:74});function Bo(e){const n=[],t=e.callKey;if(void 0===t)return n;n.push(t);const c=e.memberKey;if(void 0===c)return n;n.push(c);const o=e.callKey;if(void 0===o)return n;n.push(o);const r=e.deviceKey;return void 0===r||n.push(r),n}const To={name:"@keet/call-devices-by-member-key",version:4,id:74,encodeKey:e=>Eo.encode(Bo(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>Eo.encodeRange({gt:e?Bo(e):null,lt:n?Bo(n):null,gte:t?Bo(t):null,lte:c?Bo(c):null}),encodeValue:e=>To.collection.encodeKey(e),encodeIndexKeys:(e,n)=>[Eo.encode([e.callKey,e.memberKey,e.callKey,e.deviceKey])],reconstruct:(e,n)=>n,offset:Io.indexes.length,collection:Io};Io.indexes.push(To);const No=new e([e.BUFFER,e.BUFFER],{prefix:75});function qo(e){const n=[],t=e.callKey;if(void 0===t)return n;n.push(t);const c=e.streamKey;return void 0===c||n.push(c),n}const Lo=o("@keet/call-stream-record/hyperdb#75"),Mo={name:"@keet/call-streams",id:75,version:4,encodeKey(e){const n=[e.callKey,e.streamKey];return No.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>No.encodeRange({gt:e?qo(e):null,lt:n?qo(n):null,gte:t?qo(t):null,lte:c?qo(c):null}),encodeValue(e,n,c){r(e);const o={start:0,end:2,buffer:null};return Lo.preencode(o,c),o.buffer=t.allocUnsafe(o.end),o.buffer[o.start++]=0,o.buffer[o.start++]=n,Lo.encode(o,c),o.buffer},trigger:null,reconstruct:function(e,t,c){const o=No.decode(t);r(e);const d={start:0,end:c.byteLength,buffer:c},l=n.uint.decode(d);if(0!==l)throw new Error("Unknown collection type: "+l);Mo.decodedVersion=n.uint.decode(d);const s=Lo.decode(d);return s.callKey=o[0],s.streamKey=o[1],s},reconstructKey:function(e){const n=No.decode(e);return{callKey:n[0],streamKey:n[1]}},indexes:[],decodedVersion:0},Ao=new e([e.BUFFER,e.BUFFER,e.BUFFER,e.BUFFER],{prefix:76});function jo(e){const n=[],t=e.callKey;if(void 0===t)return n;n.push(t);const c=e.deviceKey;if(void 0===c)return n;n.push(c);const o=e.callKey;if(void 0===o)return n;n.push(o);const r=e.streamKey;return void 0===r||n.push(r),n}const Co={name:"@keet/call-streams-by-device-key",version:4,id:76,encodeKey:e=>Ao.encode(jo(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>Ao.encodeRange({gt:e?jo(e):null,lt:n?jo(n):null,gte:t?jo(t):null,lte:c?jo(c):null}),encodeValue:e=>Co.collection.encodeKey(e),encodeIndexKeys:(e,n)=>[Ao.encode([e.callKey,e.deviceKey,e.callKey,e.streamKey])],reconstruct:(e,n)=>n,offset:Mo.indexes.length,collection:Mo};Mo.indexes.push(Co);const Go=new e([e.BUFFER],{prefix:77});function So(e){const n=e.deviceKey;return void 0===n?[]:[n]}const Do=o("@keet-private-id/unreads/hyperdb#77"),Po={name:"@keet-private-id/unreads-v2",id:77,version:5,encodeKey(e){const n=[e.deviceKey];return Go.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>Go.encodeRange({gt:e?So(e):null,lt:n?So(n):null,gte:t?So(t):null,lte:c?So(c):null}),encodeValue(e,n,c){r(e);const o={start:0,end:2,buffer:null};return Do.preencode(o,c),o.buffer=t.allocUnsafe(o.end),o.buffer[o.start++]=0,o.buffer[o.start++]=n,Do.encode(o,c),o.buffer},trigger:null,reconstruct:function(e,t,c){const o=Go.decode(t);r(e);const d={start:0,end:c.byteLength,buffer:c},l=n.uint.decode(d);if(0!==l)throw new Error("Unknown collection type: "+l);Po.decodedVersion=n.uint.decode(d);const s=Do.decode(d);return s.deviceKey=o[0],s},reconstructKey:function(e){return{deviceKey:Go.decode(e)[0]}},indexes:[],decodedVersion:0},zo=new e([e.BUFFER],{prefix:78});function Ho(e){const n=e.memberKey;return void 0===n?[]:[n]}const Jo=o("@keet/typing-indicator/hyperdb#78"),Oo={name:"@keet/typing-indicators",id:78,version:6,encodeKey(e){const n=[e.memberKey];return zo.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:c}={})=>zo.encodeRange({gt:e?Ho(e):null,lt:n?Ho(n):null,gte:t?Ho(t):null,lte:c?Ho(c):null}),encodeValue(e,n,c){r(e);const o={start:0,end:2,buffer:null};return Jo.preencode(o,c),o.buffer=t.allocUnsafe(o.end),o.buffer[o.start++]=0,o.buffer[o.start++]=n,Jo.encode(o,c),o.buffer},trigger:null,reconstruct:function(e,t,c){const o=zo.decode(t);r(e);const d={start:0,end:c.byteLength,buffer:c},l=n.uint.decode(d);if(0!==l)throw new Error("Unknown collection type: "+l);Oo.decodedVersion=n.uint.decode(d);const s=Jo.decode(d);return s.memberKey=o[0],s},reconstructKey:function(e){return{memberKey:zo.decode(e)[0]}},indexes:[],decodedVersion:0},Qo=[a,b,m,h,F,B,W,_,Re,Ve,Te,Se,nn,dn,bn,En,Nn,Mn,Gn,Hn,$n,dt,Et,Jt,Yt,wc,Tc,Mc,Gc,zc,Oc,eo,oo,go,Uo,Io,Mo,Po,Oo],Wo=[q,A,S,H,ce,le,ae,be,ve,Me,ze,Qe,Ze,un,mn,Qn,nt,ut,gt,Kt,ht,Ft,qt,jt,Dt,_t,tc,dc,ic,yc,mc,xc,Yc,uo,po,ko,To,Co];module.exports={versions:d,collections:Qo,indexes:Wo,resolveCollection:function(e){switch(e){case"@keet/system-digest":return a;case"@keet/blind-peers":return b;case"@keet/room-config":return m;case"@keet/room-capabilities":return h;case"@keet/join-requests":return F;case"@keet/devices":return B;case"@keet/member-proofs":return W;case"@keet/members":return _;case"@keet/member-activity":return Re;case"@keet/invitations":return Ve;case"@keet/threads":return Te;case"@keet/chat":return Se;case"@keet/reaction-digests":return nn;case"@keet/reactions":return dn;case"@keet/files":return bn;case"@keet-private-id/identity":return En;case"@keet-private-id/stats":return Nn;case"@keet-private-id/counters":return Mn;case"@keet-private-id/pending-invitations":return Gn;case"@keet-private-id/rooms":return Hn;case"@keet-private-id/contacts":return $n;case"@keet-private-id/contact-requests":return dt;case"@keet/test-collection-1":return Et;case"@keet-private-id/device-identities":return Jt;case"@keet-private-id/contact-requests-v2":return Yt;case"@keet-private-id/unreads":return wc;case"@keet/chat-labels":return Tc;case"@keet/chat-label-digests":return Mc;case"@keet/read-lengths":return Gc;case"@keet/tmp-removed-members":return zc;case"@keet-private-id/settings":return Oc;case"@keet/member-labels":return eo;case"@keet/member-label-digests":return oo;case"@keet/calls":return go;case"@keet/call-members":return Uo;case"@keet/call-devices":return Io;case"@keet/call-streams":return Mo;case"@keet-private-id/unreads-v2":return Po;case"@keet/typing-indicators":return Oo;default:return null}},resolveIndex:function(e){switch(e){case"@keet/devices-by-member-key":return q;case"@keet/devices-by-swarm-key":return A;case"@keet/active-devices-by-member-key":return S;case"@keet/active-devices":return H;case"@keet/moderators":return ce;case"@keet/admins":return le;case"@keet/active-members":return ae;case"@keet/muted-members":return be;case"@keet/members-by-member-name":return ve;case"@keet/threads-by-parent":return Me;case"@keet/chat-by-message-id":return ze;case"@keet/chat-mentions-by-member-id":return Qe;case"@keet/pinned-chat-messages":return Ze;case"@keet/reactions-by-clock":return un;case"@keet/files-by-message-id":return mn;case"@keet/files-by-type":return xn;case"@keet/deleted-files":return wn;case"@keet-private-id/rooms-by-clock":return Qn;case"@keet-private-id/contacts-by-clock":return nt;case"@keet-private-id/contact-requests-by-clock":return ut;case"@keet-private-id/pending-contact-requests":return gt;case"@keet-private-id/accepted-contact-requests":return Kt;case"@keet-private-id/rejected-contact-requests":return ht;case"@keet-private-id/discarded-contact-requests":return Ft;case"@keet/files-by-major-type":return qt;case"@keet/active-files":return jt;case"@keet-private-id/rooms-by-contact":return Dt;case"@keet-private-id/contact-requests-by-member":return _t;case"@keet-private-id/contact-requests-by-clock-v2":return tc;case"@keet-private-id/pending-contact-requests-v2":return dc;case"@keet-private-id/pending-contact-requests-by-member":return ic;case"@keet-private-id/accepted-contact-requests-v2":return yc;case"@keet-private-id/rejected-contact-requests-v2":return mc;case"@keet-private-id/discarded-contact-requests-v2":return xc;case"@keet/chat-label-digests-by-clock":return Yc;case"@keet/member-label-digests-by-clock":return uo;case"@keet/calls-by-timestamp":return po;case"@keet/active-calls-by-timestamp":return ko;case"@keet/call-devices-by-member-key":return To;case"@keet/call-streams-by-device-key":return Co;default:return null}}};
1const{IndexEncoder:e,c:n,b4a:t}=require("hyperdb/runtime"),{version:o,getEncoding:c,setVersion:r}=require("./messages.js"),d={schema:o,db:9},l=require("../../../../lib/core/hyperdb/contract/keet.js"),s=require("../../../../lib/core/hyperdb/contract/keet-private-id.js"),u=new e([],{prefix:0}),i=c("@keet/system-digest"),a={name:"@keet/system-digest",id:0,version:0,encodeKey:e=>u.encode([]),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>u.encodeRange({gt:e?[]:null,lt:n?[]:null,gte:t?[]:null,lte:o?[]:null}),encodeValue(e,n,o){r(e);const c={start:0,end:0,buffer:null};return i.preencode(c,o),c.buffer=t.allocUnsafe(c.end),i.encode(c,o),c.buffer},trigger:null,reconstruct:function(e,n,t){r(e);const o={start:0,end:t.byteLength,buffer:t};return i.decode(o)},reconstructKey:function(e){return{}},indexes:[],decodedVersion:0},f=new e([e.BUFFER],{prefix:1});function g(e){const n=e.key;return void 0===n?[]:[n]}const y=c("@keet/blind-peer/hyperdb#1"),b={name:"@keet/blind-peers",id:1,version:0,encodeKey(e){const n=[e.key];return f.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>f.encodeRange({gt:e?g(e):null,lt:n?g(n):null,gte:t?g(t):null,lte:o?g(o):null}),encodeValue(e,n,o){r(e);const c={start:0,end:0,buffer:null};return y.preencode(c,o),c.buffer=t.allocUnsafe(c.end),y.encode(c,o),c.buffer},trigger:null,reconstruct:function(e,n,t){const o=f.decode(n);r(e);const c={start:0,end:t.byteLength,buffer:t},d=y.decode(c);return d.key=o[0],d},reconstructKey:function(e){return{key:f.decode(e)[0]}},indexes:[],decodedVersion:0},p=new e([],{prefix:2}),K=c("@keet/room-config"),m={name:"@keet/room-config",id:2,version:0,encodeKey:e=>p.encode([]),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>p.encodeRange({gt:e?[]:null,lt:n?[]:null,gte:t?[]:null,lte:o?[]:null}),encodeValue(e,n,o){r(e);const c={start:0,end:0,buffer:null};return K.preencode(c,o),c.buffer=t.allocUnsafe(c.end),K.encode(c,o),c.buffer},trigger:null,reconstruct:function(e,n,t){r(e);const o={start:0,end:t.byteLength,buffer:t};return K.decode(o)},reconstructKey:function(e){return{}},indexes:[],decodedVersion:0},v=new e([],{prefix:3}),h=c("@keet/room-seed"),k={name:"@keet/room-capabilities",id:3,version:0,encodeKey:e=>v.encode([]),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>v.encodeRange({gt:e?[]:null,lt:n?[]:null,gte:t?[]:null,lte:o?[]:null}),encodeValue(e,n,o){r(e);const c={start:0,end:0,buffer:null};return h.preencode(c,o),c.buffer=t.allocUnsafe(c.end),h.encode(c,o),c.buffer},trigger:null,reconstruct:function(e,n,t){r(e);const o={start:0,end:t.byteLength,buffer:t};return h.decode(o)},reconstructKey:function(e){return{}},indexes:[],decodedVersion:0},x=new e([e.BUFFER],{prefix:4});function R(e){const n=e.deviceKey;return void 0===n?[]:[n]}const U=c("@keet/join-request/hyperdb#4"),F={name:"@keet/join-requests",id:4,version:0,encodeKey(e){const n=[e.deviceKey];return x.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>x.encodeRange({gt:e?R(e):null,lt:n?R(n):null,gte:t?R(t):null,lte:o?R(o):null}),encodeValue(e,n,o){r(e);const c={start:0,end:0,buffer:null};return U.preencode(c,o),c.buffer=t.allocUnsafe(c.end),U.encode(c,o),c.buffer},trigger:null,reconstruct:function(e,n,t){const o=x.decode(n);r(e);const c={start:0,end:t.byteLength,buffer:t},d=U.decode(c);return d.deviceKey=o[0],d},reconstructKey:function(e){return{deviceKey:x.decode(e)[0]}},indexes:[],decodedVersion:0},w=new e([e.BUFFER],{prefix:5});function V(e){const n=e.key;return void 0===n?[]:[n]}const I=c("@keet/device/hyperdb#5"),E=l.devicesTrigger,B={name:"@keet/devices",id:5,version:0,encodeKey(e){const n=[e.key];return w.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>w.encodeRange({gt:e?V(e):null,lt:n?V(n):null,gte:t?V(t):null,lte:o?V(o):null}),encodeValue(e,n,o){r(e);const c={start:0,end:0,buffer:null};return I.preencode(c,o),c.buffer=t.allocUnsafe(c.end),I.encode(c,o),c.buffer},trigger:E,reconstruct:function(e,n,t){const o=w.decode(n);r(e);const c={start:0,end:t.byteLength,buffer:t},d=I.decode(c);return d.key=o[0],d},reconstructKey:function(e){return{key:w.decode(e)[0]}},indexes:[],decodedVersion:0},T=new e([e.BUFFER,e.BUFFER],{prefix:6});function N(e){const n=[],t=e.memberKey;if(void 0===t)return n;n.push(t);const o=e.key;return void 0===o||n.push(o),n}const q={name:"@keet/devices-by-member-key",version:0,id:6,encodeKey:e=>T.encode(N(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>T.encodeRange({gt:e?N(e):null,lt:n?N(n):null,gte:t?N(t):null,lte:o?N(o):null}),encodeValue:e=>q.collection.encodeKey(e),encodeIndexKeys:(e,n)=>[T.encode([e.memberKey,e.key])],reconstruct:(e,n)=>n,offset:B.indexes.length,collection:B};B.indexes.push(q);const L=new e([e.BUFFER],{prefix:7});function M(e){const n=e.profile?.swarmKey;return void 0===n?[]:[n]}const A={name:"@keet/devices-by-swarm-key",version:0,id:7,encodeKey:e=>L.encode(M(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>L.encodeRange({gt:e?M(e):null,lt:n?M(n):null,gte:t?M(t):null,lte:o?M(o):null}),encodeValue:e=>A.collection.encodeKey(e),encodeIndexKeys:(e,n)=>[L.encode([e.profile.swarmKey])],reconstruct:(e,n)=>n,offset:B.indexes.length,collection:B};B.indexes.push(A);const j=new e([e.BUFFER,e.BUFFER],{prefix:8}),C=l.activeDevicesByMemberKeyMap;function S(e){const n=e.memberKey;return void 0===n?[]:[n]}const G={name:"@keet/active-devices-by-member-key",version:0,id:8,encodeKey:e=>j.encode(S(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>j.encodeRange({gt:e?S(e):null,lt:n?S(n):null,gte:t?S(t):null,lte:o?S(o):null}),encodeValue:e=>G.collection.encodeKey(e),encodeIndexKeys(e,n){const t=C(e,n),o=new Array(t.length);for(let n=0;n<t.length;n++){const c=t[n];o[n]=j.encode([c.memberKey,e.key])}return o},reconstruct:(e,n)=>n,offset:B.indexes.length,collection:B};B.indexes.push(G);const D=new e([e.BUFFER],{prefix:9}),P=l.activeDevicesMap;function z(e){const n=e.key;return void 0===n?[]:[n]}const H={name:"@keet/active-devices",version:0,id:9,encodeKey:e=>D.encode(z(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>D.encodeRange({gt:e?z(e):null,lt:n?z(n):null,gte:t?z(t):null,lte:o?z(o):null}),encodeValue:e=>H.collection.encodeKey(e),encodeIndexKeys(e,n){const t=P(e,n),o=new Array(t.length);for(let e=0;e<t.length;e++){const n=t[e];o[e]=D.encode([n.key])}return o},reconstruct:(e,n)=>n,offset:B.indexes.length,collection:B};B.indexes.push(H);const J=new e([e.BUFFER],{prefix:10});function O(e){const n=e.key;return void 0===n?[]:[n]}const Q=c("@keet/member-proofs/hyperdb#10"),W={name:"@keet/member-proofs",id:10,version:0,encodeKey(e){const n=[e.key];return J.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>J.encodeRange({gt:e?O(e):null,lt:n?O(n):null,gte:t?O(t):null,lte:o?O(o):null}),encodeValue(e,n,o){r(e);const c={start:0,end:0,buffer:null};return Q.preencode(c,o),c.buffer=t.allocUnsafe(c.end),Q.encode(c,o),c.buffer},trigger:null,reconstruct:function(e,n,t){const o=J.decode(n);r(e);const c={start:0,end:t.byteLength,buffer:t},d=Q.decode(c);return d.key=o[0],d},reconstructKey:function(e){return{key:J.decode(e)[0]}},indexes:[],decodedVersion:0},X=new e([e.BUFFER],{prefix:11});function Y(e){const n=e.key;return void 0===n?[]:[n]}const Z=c("@keet/member/hyperdb#11"),$=l.membersTrigger,_={name:"@keet/members",id:11,version:0,encodeKey(e){const n=[e.key];return X.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>X.encodeRange({gt:e?Y(e):null,lt:n?Y(n):null,gte:t?Y(t):null,lte:o?Y(o):null}),encodeValue(e,n,o){r(e);const c={start:0,end:0,buffer:null};return Z.preencode(c,o),c.buffer=t.allocUnsafe(c.end),Z.encode(c,o),c.buffer},trigger:$,reconstruct:function(e,n,t){const o=X.decode(n);r(e);const c={start:0,end:t.byteLength,buffer:t},d=Z.decode(c);return d.key=o[0],d},reconstructKey:function(e){return{key:X.decode(e)[0]}},indexes:[],decodedVersion:0},ee=new e([e.BUFFER],{prefix:12}),ne=l.moderatorsMap;function te(e){const n=e.key;return void 0===n?[]:[n]}const oe={name:"@keet/moderators",version:0,id:12,encodeKey:e=>ee.encode(te(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>ee.encodeRange({gt:e?te(e):null,lt:n?te(n):null,gte:t?te(t):null,lte:o?te(o):null}),encodeValue:e=>oe.collection.encodeKey(e),encodeIndexKeys(e,n){const t=ne(e,n),o=new Array(t.length);for(let e=0;e<t.length;e++){const n=t[e];o[e]=ee.encode([n.key])}return o},reconstruct:(e,n)=>n,offset:_.indexes.length,collection:_};_.indexes.push(oe);const ce=new e([e.BUFFER],{prefix:13}),re=l.adminsMap;function de(e){const n=e.key;return void 0===n?[]:[n]}const le={name:"@keet/admins",version:0,id:13,encodeKey:e=>ce.encode(de(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>ce.encodeRange({gt:e?de(e):null,lt:n?de(n):null,gte:t?de(t):null,lte:o?de(o):null}),encodeValue:e=>le.collection.encodeKey(e),encodeIndexKeys(e,n){const t=re(e,n),o=new Array(t.length);for(let e=0;e<t.length;e++){const n=t[e];o[e]=ce.encode([n.key])}return o},reconstruct:(e,n)=>n,offset:_.indexes.length,collection:_};_.indexes.push(le);const se=new e([e.BUFFER],{prefix:14}),ue=l.activeMembersMap;function ie(e){const n=e.key;return void 0===n?[]:[n]}const ae={name:"@keet/active-members",version:0,id:14,encodeKey:e=>se.encode(ie(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>se.encodeRange({gt:e?ie(e):null,lt:n?ie(n):null,gte:t?ie(t):null,lte:o?ie(o):null}),encodeValue:e=>ae.collection.encodeKey(e),encodeIndexKeys(e,n){const t=ue(e,n),o=new Array(t.length);for(let e=0;e<t.length;e++){const n=t[e];o[e]=se.encode([n.key])}return o},reconstruct:(e,n)=>n,offset:_.indexes.length,collection:_};_.indexes.push(ae);const fe=new e([e.BUFFER],{prefix:15}),ge=l.mutedMembersMap;function ye(e){const n=e.key;return void 0===n?[]:[n]}const be={name:"@keet/muted-members",version:0,id:15,encodeKey:e=>fe.encode(ye(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>fe.encodeRange({gt:e?ye(e):null,lt:n?ye(n):null,gte:t?ye(t):null,lte:o?ye(o):null}),encodeValue:e=>be.collection.encodeKey(e),encodeIndexKeys(e,n){const t=ge(e,n),o=new Array(t.length);for(let e=0;e<t.length;e++){const n=t[e];o[e]=fe.encode([n.key])}return o},reconstruct:(e,n)=>n,offset:_.indexes.length,collection:_};_.indexes.push(be);const pe=new e([e.STRING,e.BUFFER],{prefix:16}),Ke=l.membersByMemberNameMap;function me(e){const n=e.name;return void 0===n?[]:[n]}const ve={name:"@keet/members-by-member-name",version:0,id:16,encodeKey:e=>pe.encode(me(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>pe.encodeRange({gt:e?me(e):null,lt:n?me(n):null,gte:t?me(t):null,lte:o?me(o):null}),encodeValue:e=>ve.collection.encodeKey(e),encodeIndexKeys(e,n){const t=Ke(e,n),o=new Array(t.length);for(let n=0;n<t.length;n++){const c=t[n];o[n]=pe.encode([c.name,e.key])}return o},reconstruct:(e,n)=>n,offset:_.indexes.length,collection:_};_.indexes.push(ve);const he=new e([e.BUFFER],{prefix:17});function ke(e){const n=e.key;return void 0===n?[]:[n]}const xe=c("@keet/member-activity/hyperdb#17"),Re={name:"@keet/member-activity",id:17,version:0,encodeKey(e){const n=[e.key];return he.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>he.encodeRange({gt:e?ke(e):null,lt:n?ke(n):null,gte:t?ke(t):null,lte:o?ke(o):null}),encodeValue(e,n,o){r(e);const c={start:0,end:0,buffer:null};return xe.preencode(c,o),c.buffer=t.allocUnsafe(c.end),xe.encode(c,o),c.buffer},trigger:null,reconstruct:function(e,n,t){const o=he.decode(n);r(e);const c={start:0,end:t.byteLength,buffer:t},d=xe.decode(c);return d.key=o[0],d},reconstructKey:function(e){return{key:he.decode(e)[0]}},indexes:[],decodedVersion:0},Ue=new e([e.BUFFER],{prefix:18});function Fe(e){const n=e.id;return void 0===n?[]:[n]}const we=c("@keet/invitation/hyperdb#18"),Ve={name:"@keet/invitations",id:18,version:0,encodeKey(e){const n=[e.id];return Ue.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>Ue.encodeRange({gt:e?Fe(e):null,lt:n?Fe(n):null,gte:t?Fe(t):null,lte:o?Fe(o):null}),encodeValue(e,n,o){r(e);const c={start:0,end:0,buffer:null};return we.preencode(c,o),c.buffer=t.allocUnsafe(c.end),we.encode(c,o),c.buffer},trigger:null,reconstruct:function(e,n,t){const o=Ue.decode(n);r(e);const c={start:0,end:t.byteLength,buffer:t},d=we.decode(c);return d.id=o[0],d},reconstructKey:function(e){return{id:Ue.decode(e)[0]}},indexes:[],decodedVersion:0},Ie=new e([e.UINT],{prefix:19});function Ee(e){const n=e.id;return void 0===n?[]:[n]}const Be=c("@keet/thread/hyperdb#19"),Te={name:"@keet/threads",id:19,version:0,encodeKey(e){const n=[e.id];return Ie.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>Ie.encodeRange({gt:e?Ee(e):null,lt:n?Ee(n):null,gte:t?Ee(t):null,lte:o?Ee(o):null}),encodeValue(e,n,o){r(e);const c={start:0,end:0,buffer:null};return Be.preencode(c,o),c.buffer=t.allocUnsafe(c.end),Be.encode(c,o),c.buffer},trigger:null,reconstruct:function(e,n,t){const o=Ie.decode(n);r(e);const c={start:0,end:t.byteLength,buffer:t},d=Be.decode(c);return d.id=o[0],d},reconstructKey:function(e){return{id:Ie.decode(e)[0]}},indexes:[],decodedVersion:0},Ne=new e([e.BUFFER,e.UINT],{prefix:20}),qe=l.threadsByParentMap;function Le(e){const n=[],t=e.key;if(void 0===t)return n;n.push(t);const o=e.seq;return void 0===o||n.push(o),n}const Me={name:"@keet/threads-by-parent",version:0,id:20,encodeKey:e=>Ne.encode(Le(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>Ne.encodeRange({gt:e?Le(e):null,lt:n?Le(n):null,gte:t?Le(t):null,lte:o?Le(o):null}),encodeValue:e=>Me.collection.encodeKey(e),encodeIndexKeys(e,n){const t=qe(e,n),o=new Array(t.length);for(let e=0;e<t.length;e++){const n=t[e];o[e]=Ne.encode([n.key,n.seq])}return o},reconstruct:(e,n)=>n,offset:Te.indexes.length,collection:Te};Te.indexes.push(Me);const Ae=new e([e.UINT,e.UINT],{prefix:21});function je(e){const n=[],t=e.id?.thread;if(void 0===t)return n;n.push(t);const o=e.id?.index;return void 0===o||n.push(o),n}const Ce=c("@keet/chat-message-record/hyperdb#21"),Se=l.chatTrigger,Ge={name:"@keet/chat",id:21,version:0,encodeKey(e){const n=[e.id.thread,e.id.index];return Ae.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>Ae.encodeRange({gt:e?je(e):null,lt:n?je(n):null,gte:t?je(t):null,lte:o?je(o):null}),encodeValue(e,n,o){r(e);const c={start:0,end:0,buffer:null};return Ce.preencode(c,o),c.buffer=t.allocUnsafe(c.end),Ce.encode(c,o),c.buffer},trigger:Se,reconstruct:function(e,n,t){const o=Ae.decode(n);r(e);const c={start:0,end:t.byteLength,buffer:t},d=Ce.decode(c);return d.id.thread=o[0],d.id.index=o[1],d},reconstructKey:function(e){return{id:{index:Ae.decode(e)[1]}}},indexes:[],decodedVersion:0},De=new e([e.BUFFER,e.UINT],{prefix:22});function Pe(e){const n=[],t=e.oplog?.key;if(void 0===t)return n;n.push(t);const o=e.oplog?.seq;return void 0===o||n.push(o),n}const ze={name:"@keet/chat-by-message-id",version:0,id:22,encodeKey:e=>De.encode(Pe(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>De.encodeRange({gt:e?Pe(e):null,lt:n?Pe(n):null,gte:t?Pe(t):null,lte:o?Pe(o):null}),encodeValue:e=>ze.collection.encodeKey(e),encodeIndexKeys:(e,n)=>[De.encode([e.oplog.key,e.oplog.seq])],reconstruct:(e,n)=>n,offset:Ge.indexes.length,collection:Ge};Ge.indexes.push(ze);const He=new e([e.BUFFER,e.UINT,e.UINT,e.UINT],{prefix:23}),Je=l.chatMentionsByMemberIdMap;function Oe(e){const n=[],t=e.key;if(void 0===t)return n;n.push(t);const o=e.clock;return void 0===o||n.push(o),n}const Qe={name:"@keet/chat-mentions-by-member-id",version:0,id:23,encodeKey:e=>He.encode(Oe(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>He.encodeRange({gt:e?Oe(e):null,lt:n?Oe(n):null,gte:t?Oe(t):null,lte:o?Oe(o):null}),encodeValue:e=>Qe.collection.encodeKey(e),encodeIndexKeys(e,n){const t=Je(e,n),o=new Array(t.length);for(let n=0;n<t.length;n++){const c=t[n];o[n]=He.encode([c.key,c.clock,e.id.thread,e.id.index])}return o},reconstruct:(e,n)=>n,offset:Ge.indexes.length,collection:Ge};Ge.indexes.push(Qe);const We=new e([e.UINT,e.UINT,e.UINT,e.UINT],{prefix:24}),Xe=l.pinnedChatMessagesMap;function Ye(e){const n=[],t=e.thread;if(void 0===t)return n;n.push(t);const o=e.index;return void 0===o||n.push(o),n}const Ze={name:"@keet/pinned-chat-messages",version:0,id:24,encodeKey:e=>We.encode(Ye(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>We.encodeRange({gt:e?Ye(e):null,lt:n?Ye(n):null,gte:t?Ye(t):null,lte:o?Ye(o):null}),encodeValue:e=>Ze.collection.encodeKey(e),encodeIndexKeys(e,n){const t=Xe(e,n),o=new Array(t.length);for(let n=0;n<t.length;n++){const c=t[n];o[n]=We.encode([c.thread,c.index,e.id.thread,e.id.index])}return o},reconstruct:(e,n)=>n,offset:Ge.indexes.length,collection:Ge};Ge.indexes.push(Ze);const $e=new e([e.UINT,e.UINT],{prefix:25});function _e(e){const n=[],t=e.id?.thread;if(void 0===t)return n;n.push(t);const o=e.id?.index;return void 0===o||n.push(o),n}const en=c("@keet/reactions-digest/hyperdb#25"),nn={name:"@keet/reaction-digests",id:25,version:0,encodeKey(e){const n=[e.id.thread,e.id.index];return $e.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>$e.encodeRange({gt:e?_e(e):null,lt:n?_e(n):null,gte:t?_e(t):null,lte:o?_e(o):null}),encodeValue(e,n,o){r(e);const c={start:0,end:0,buffer:null};return en.preencode(c,o),c.buffer=t.allocUnsafe(c.end),en.encode(c,o),c.buffer},trigger:null,reconstruct:function(e,n,t){const o=$e.decode(n);r(e);const c={start:0,end:t.byteLength,buffer:t},d=en.decode(c);return d.id.thread=o[0],d.id.index=o[1],d},reconstructKey:function(e){return{id:{index:$e.decode(e)[1]}}},indexes:[],decodedVersion:0},tn=new e([e.UINT,e.UINT,e.BUFFER,e.STRING],{prefix:26});function on(e){const n=[],t=e.id?.thread;if(void 0===t)return n;n.push(t);const o=e.id?.index;if(void 0===o)return n;n.push(o);const c=e.sender;if(void 0===c)return n;n.push(c);const r=e.reaction;return void 0===r||n.push(r),n}const cn=c("@keet/reaction/hyperdb#26"),rn=l.reactionsTrigger,dn={name:"@keet/reactions",id:26,version:0,encodeKey(e){const n=[e.id.thread,e.id.index,e.sender,e.reaction];return tn.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>tn.encodeRange({gt:e?on(e):null,lt:n?on(n):null,gte:t?on(t):null,lte:o?on(o):null}),encodeValue(e,n,o){r(e);const c={start:0,end:0,buffer:null};return cn.preencode(c,o),c.buffer=t.allocUnsafe(c.end),cn.encode(c,o),c.buffer},trigger:rn,reconstruct:function(e,n,t){const o=tn.decode(n);r(e);const c={start:0,end:t.byteLength,buffer:t},d=cn.decode(c);return d.id.thread=o[0],d.id.index=o[1],d.sender=o[2],d.reaction=o[3],d},reconstructKey:function(e){const n=tn.decode(e);return{id:{index:n[1]},sender:n[2],reaction:n[3]}},indexes:[],decodedVersion:0},ln=new e([e.UINT,e.UINT,e.STRING,e.UINT,e.BUFFER,e.UINT,e.UINT,e.BUFFER,e.STRING],{prefix:27});function sn(e){const n=[],t=e.id?.thread;if(void 0===t)return n;n.push(t);const o=e.id?.index;if(void 0===o)return n;n.push(o);const c=e.reaction;if(void 0===c)return n;n.push(c);const r=e.clock;if(void 0===r)return n;n.push(r);const d=e.sender;if(void 0===d)return n;n.push(d);const l=e.id?.thread;if(void 0===l)return n;n.push(l);const s=e.id?.index;if(void 0===s)return n;n.push(s);const u=e.sender;if(void 0===u)return n;n.push(u);const i=e.reaction;return void 0===i||n.push(i),n}const un={name:"@keet/reactions-by-clock",version:0,id:27,encodeKey:e=>ln.encode(sn(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>ln.encodeRange({gt:e?sn(e):null,lt:n?sn(n):null,gte:t?sn(t):null,lte:o?sn(o):null}),encodeValue:e=>un.collection.encodeKey(e),encodeIndexKeys:(e,n)=>[ln.encode([e.id.thread,e.id.index,e.reaction,e.clock,e.sender,e.id.thread,e.id.index,e.sender,e.reaction])],reconstruct:(e,n)=>n,offset:dn.indexes.length,collection:dn};dn.indexes.push(un);const an=new e([e.UINT],{prefix:28});function fn(e){const n=e.id;return void 0===n?[]:[n]}const gn=c("@keet/file-record/hyperdb#28"),yn=l.filesTrigger,bn={name:"@keet/files",id:28,version:1,encodeKey(e){const n=[e.id];return an.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>an.encodeRange({gt:e?fn(e):null,lt:n?fn(n):null,gte:t?fn(t):null,lte:o?fn(o):null}),encodeValue(e,n,o){r(e);const c={start:0,end:0,buffer:null};return o.version=n,gn.preencode(c,o),c.buffer=t.allocUnsafe(c.end),gn.encode(c,o),c.buffer},trigger:yn,reconstruct:function(e,n,t){const o=an.decode(n);r(e);const c={start:0,end:t.byteLength,buffer:t},d=gn.decode(c);return d.id=o[0],bn.decodedVersion=d.version,d},reconstructKey:function(e){return{id:an.decode(e)[0]}},indexes:[],decodedVersion:0},pn=new e([e.BUFFER,e.UINT,e.UINT],{prefix:29});function Kn(e){const n=[],t=e.oplog?.key;if(void 0===t)return n;n.push(t);const o=e.oplog?.seq;if(void 0===o)return n;n.push(o);const c=e.id;return void 0===c||n.push(c),n}const mn={name:"@keet/files-by-message-id",version:0,id:29,encodeKey:e=>pn.encode(Kn(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>pn.encodeRange({gt:e?Kn(e):null,lt:n?Kn(n):null,gte:t?Kn(t):null,lte:o?Kn(o):null}),encodeValue:e=>mn.collection.encodeKey(e),encodeIndexKeys:(e,n)=>[pn.encode([e.oplog.key,e.oplog.seq,e.id])],reconstruct:(e,n)=>n,offset:bn.indexes.length,collection:bn};bn.indexes.push(mn);const vn=new e([e.STRING,e.UINT,e.UINT],{prefix:30}),hn=l.filesByTypeMap;function kn(e){const n=[],t=e.type;if(void 0===t)return n;n.push(t);const o=e.id;return void 0===o||n.push(o),n}const xn={name:"@keet/files-by-type",version:0,id:30,encodeKey:e=>vn.encode(kn(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>vn.encodeRange({gt:e?kn(e):null,lt:n?kn(n):null,gte:t?kn(t):null,lte:o?kn(o):null}),encodeValue:e=>xn.collection.encodeKey(e),encodeIndexKeys(e,n){const t=hn(e,n),o=new Array(t.length);for(let n=0;n<t.length;n++){const c=t[n];o[n]=vn.encode([c.type,c.id,e.id])}return o},reconstruct:(e,n)=>n,offset:-1,collection:bn},Rn=new e([e.UINT,e.UINT],{prefix:31}),Un=l.deletedFilesMap;function Fn(e){const n=e.id;return void 0===n?[]:[n]}const wn={name:"@keet/deleted-files",version:0,id:31,encodeKey:e=>Rn.encode(Fn(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>Rn.encodeRange({gt:e?Fn(e):null,lt:n?Fn(n):null,gte:t?Fn(t):null,lte:o?Fn(o):null}),encodeValue:e=>wn.collection.encodeKey(e),encodeIndexKeys(e,n){const t=Un(e,n),o=new Array(t.length);for(let n=0;n<t.length;n++){const c=t[n];o[n]=Rn.encode([c.id,e.id])}return o},reconstruct:(e,n)=>n,offset:-1,collection:bn},Vn=new e([],{prefix:32}),In=c("@keet/room-identity"),En={name:"@keet-private-id/identity",id:32,version:0,encodeKey:e=>Vn.encode([]),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>Vn.encodeRange({gt:e?[]:null,lt:n?[]:null,gte:t?[]:null,lte:o?[]:null}),encodeValue(e,n,o){r(e);const c={start:0,end:0,buffer:null};return In.preencode(c,o),c.buffer=t.allocUnsafe(c.end),In.encode(c,o),c.buffer},trigger:null,reconstruct:function(e,n,t){r(e);const o={start:0,end:t.byteLength,buffer:t};return In.decode(o)},reconstructKey:function(e){return{}},indexes:[],decodedVersion:0},Bn=new e([],{prefix:33}),Tn=c("@keet-private-id/stats"),Nn={name:"@keet-private-id/stats",id:33,version:0,encodeKey:e=>Bn.encode([]),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>Bn.encodeRange({gt:e?[]:null,lt:n?[]:null,gte:t?[]:null,lte:o?[]:null}),encodeValue(e,n,o){r(e);const c={start:0,end:0,buffer:null};return Tn.preencode(c,o),c.buffer=t.allocUnsafe(c.end),Tn.encode(c,o),c.buffer},trigger:null,reconstruct:function(e,n,t){r(e);const o={start:0,end:t.byteLength,buffer:t};return Tn.decode(o)},reconstructKey:function(e){return{}},indexes:[],decodedVersion:0},qn=new e([],{prefix:34}),Ln=c("@keet-private-id/counters"),Mn={name:"@keet-private-id/counters",id:34,version:0,encodeKey:e=>qn.encode([]),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>qn.encodeRange({gt:e?[]:null,lt:n?[]:null,gte:t?[]:null,lte:o?[]:null}),encodeValue(e,n,o){r(e);const c={start:0,end:0,buffer:null};return Ln.preencode(c,o),c.buffer=t.allocUnsafe(c.end),Ln.encode(c,o),c.buffer},trigger:null,reconstruct:function(e,n,t){r(e);const o={start:0,end:t.byteLength,buffer:t};return Ln.decode(o)},reconstructKey:function(e){return{}},indexes:[],decodedVersion:0},An=new e([e.BUFFER],{prefix:35});function jn(e){const n=e.id;return void 0===n?[]:[n]}const Cn=c("@keet-private-id/pending-invitation/hyperdb#35"),Sn={name:"@keet-private-id/pending-invitations",id:35,version:0,encodeKey(e){const n=[e.id];return An.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>An.encodeRange({gt:e?jn(e):null,lt:n?jn(n):null,gte:t?jn(t):null,lte:o?jn(o):null}),encodeValue(e,n,o){r(e);const c={start:0,end:0,buffer:null};return Cn.preencode(c,o),c.buffer=t.allocUnsafe(c.end),Cn.encode(c,o),c.buffer},trigger:null,reconstruct:function(e,n,t){const o=An.decode(n);r(e);const c={start:0,end:t.byteLength,buffer:t},d=Cn.decode(c);return d.id=o[0],d},reconstructKey:function(e){return{id:An.decode(e)[0]}},indexes:[],decodedVersion:0},Gn=new e([e.BUFFER],{prefix:36});function Dn(e){const n=e.roomKey;return void 0===n?[]:[n]}const Pn=c("@keet-private-id/room/hyperdb#36"),zn=s.roomsTrigger,Hn={name:"@keet-private-id/rooms",id:36,version:0,encodeKey(e){const n=[e.roomKey];return Gn.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>Gn.encodeRange({gt:e?Dn(e):null,lt:n?Dn(n):null,gte:t?Dn(t):null,lte:o?Dn(o):null}),encodeValue(e,n,o){r(e);const c={start:0,end:0,buffer:null};return Pn.preencode(c,o),c.buffer=t.allocUnsafe(c.end),Pn.encode(c,o),c.buffer},trigger:zn,reconstruct:function(e,n,t){const o=Gn.decode(n);r(e);const c={start:0,end:t.byteLength,buffer:t},d=Pn.decode(c);return d.roomKey=o[0],d},reconstructKey:function(e){return{roomKey:Gn.decode(e)[0]}},indexes:[],decodedVersion:0},Jn=new e([e.UINT,e.BUFFER],{prefix:37});function On(e){const n=[],t=e.clock;if(void 0===t)return n;n.push(t);const o=e.roomKey;return void 0===o||n.push(o),n}const Qn={name:"@keet-private-id/rooms-by-clock",version:0,id:37,encodeKey:e=>Jn.encode(On(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>Jn.encodeRange({gt:e?On(e):null,lt:n?On(n):null,gte:t?On(t):null,lte:o?On(o):null}),encodeValue:e=>Qn.collection.encodeKey(e),encodeIndexKeys:(e,n)=>[Jn.encode([e.clock,e.roomKey])],reconstruct:(e,n)=>n,offset:Hn.indexes.length,collection:Hn};Hn.indexes.push(Qn);const Wn=new e([e.BUFFER],{prefix:38});function Xn(e){const n=e.memberKey;return void 0===n?[]:[n]}const Yn=c("@keet-private-id/contact-record/hyperdb#38"),Zn=s.contactsTrigger,$n={name:"@keet-private-id/contacts",id:38,version:0,encodeKey(e){const n=[e.memberKey];return Wn.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>Wn.encodeRange({gt:e?Xn(e):null,lt:n?Xn(n):null,gte:t?Xn(t):null,lte:o?Xn(o):null}),encodeValue(e,n,o){r(e);const c={start:0,end:0,buffer:null};return Yn.preencode(c,o),c.buffer=t.allocUnsafe(c.end),Yn.encode(c,o),c.buffer},trigger:Zn,reconstruct:function(e,n,t){const o=Wn.decode(n);r(e);const c={start:0,end:t.byteLength,buffer:t},d=Yn.decode(c);return d.memberKey=o[0],d},reconstructKey:function(e){return{memberKey:Wn.decode(e)[0]}},indexes:[],decodedVersion:0},_n=new e([e.UINT,e.BUFFER],{prefix:39});function et(e){const n=[],t=e.clock;if(void 0===t)return n;n.push(t);const o=e.memberKey;return void 0===o||n.push(o),n}const nt={name:"@keet-private-id/contacts-by-clock",version:0,id:39,encodeKey:e=>_n.encode(et(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>_n.encodeRange({gt:e?et(e):null,lt:n?et(n):null,gte:t?et(t):null,lte:o?et(o):null}),encodeValue:e=>nt.collection.encodeKey(e),encodeIndexKeys:(e,n)=>[_n.encode([e.clock,e.memberKey])],reconstruct:(e,n)=>n,offset:$n.indexes.length,collection:$n};$n.indexes.push(nt);const tt=new e([e.BUFFER],{prefix:40});function ot(e){const n=e.memberKey;return void 0===n?[]:[n]}const ct=c("@keet-private-id/contact-request-record/hyperdb#40"),rt=s.contactRequestsTrigger,dt={name:"@keet-private-id/contact-requests",id:40,version:0,encodeKey(e){const n=[e.memberKey];return tt.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>tt.encodeRange({gt:e?ot(e):null,lt:n?ot(n):null,gte:t?ot(t):null,lte:o?ot(o):null}),encodeValue(e,n,o){r(e);const c={start:0,end:0,buffer:null};return ct.preencode(c,o),c.buffer=t.allocUnsafe(c.end),ct.encode(c,o),c.buffer},trigger:rt,reconstruct:function(e,n,t){const o=tt.decode(n);r(e);const c={start:0,end:t.byteLength,buffer:t},d=ct.decode(c);return d.memberKey=o[0],d},reconstructKey:function(e){return{memberKey:tt.decode(e)[0]}},indexes:[],decodedVersion:0},lt=new e([e.UINT,e.BUFFER],{prefix:41});function st(e){const n=[],t=e.clock;if(void 0===t)return n;n.push(t);const o=e.memberKey;return void 0===o||n.push(o),n}const ut={name:"@keet-private-id/contact-requests-by-clock",version:0,id:41,encodeKey:e=>lt.encode(st(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>lt.encodeRange({gt:e?st(e):null,lt:n?st(n):null,gte:t?st(t):null,lte:o?st(o):null}),encodeValue:e=>ut.collection.encodeKey(e),encodeIndexKeys:(e,n)=>[lt.encode([e.clock,e.memberKey])],reconstruct:(e,n)=>n,offset:dt.indexes.length,collection:dt};dt.indexes.push(ut);const it=new e([e.UINT,e.BUFFER],{prefix:42}),at=s.pendingContactRequestsMap;function ft(e){const n=e.clock;return void 0===n?[]:[n]}const gt={name:"@keet-private-id/pending-contact-requests",version:0,id:42,encodeKey:e=>it.encode(ft(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>it.encodeRange({gt:e?ft(e):null,lt:n?ft(n):null,gte:t?ft(t):null,lte:o?ft(o):null}),encodeValue:e=>gt.collection.encodeKey(e),encodeIndexKeys(e,n){const t=at(e,n),o=new Array(t.length);for(let n=0;n<t.length;n++){const c=t[n];o[n]=it.encode([c.clock,e.memberKey])}return o},reconstruct:(e,n)=>n,offset:dt.indexes.length,collection:dt};dt.indexes.push(gt);const yt=new e([e.UINT,e.BUFFER],{prefix:43}),bt=s.acceptedContactRequestsMap;function pt(e){const n=e.clock;return void 0===n?[]:[n]}const Kt={name:"@keet-private-id/accepted-contact-requests",version:0,id:43,encodeKey:e=>yt.encode(pt(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>yt.encodeRange({gt:e?pt(e):null,lt:n?pt(n):null,gte:t?pt(t):null,lte:o?pt(o):null}),encodeValue:e=>Kt.collection.encodeKey(e),encodeIndexKeys(e,n){const t=bt(e,n),o=new Array(t.length);for(let n=0;n<t.length;n++){const c=t[n];o[n]=yt.encode([c.clock,e.memberKey])}return o},reconstruct:(e,n)=>n,offset:dt.indexes.length,collection:dt};dt.indexes.push(Kt);const mt=new e([e.UINT,e.BUFFER],{prefix:44}),vt=s.rejectedContactRequestsMap;function ht(e){const n=e.clock;return void 0===n?[]:[n]}const kt={name:"@keet-private-id/rejected-contact-requests",version:0,id:44,encodeKey:e=>mt.encode(ht(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>mt.encodeRange({gt:e?ht(e):null,lt:n?ht(n):null,gte:t?ht(t):null,lte:o?ht(o):null}),encodeValue:e=>kt.collection.encodeKey(e),encodeIndexKeys(e,n){const t=vt(e,n),o=new Array(t.length);for(let n=0;n<t.length;n++){const c=t[n];o[n]=mt.encode([c.clock,e.memberKey])}return o},reconstruct:(e,n)=>n,offset:dt.indexes.length,collection:dt};dt.indexes.push(kt);const xt=new e([e.UINT,e.BUFFER],{prefix:45}),Rt=s.discardedContactRequestsMap;function Ut(e){const n=e.clock;return void 0===n?[]:[n]}const Ft={name:"@keet-private-id/discarded-contact-requests",version:0,id:45,encodeKey:e=>xt.encode(Ut(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>xt.encodeRange({gt:e?Ut(e):null,lt:n?Ut(n):null,gte:t?Ut(t):null,lte:o?Ut(o):null}),encodeValue:e=>Ft.collection.encodeKey(e),encodeIndexKeys(e,n){const t=Rt(e,n),o=new Array(t.length);for(let n=0;n<t.length;n++){const c=t[n];o[n]=xt.encode([c.clock,e.memberKey])}return o},reconstruct:(e,n)=>n,offset:dt.indexes.length,collection:dt};dt.indexes.push(Ft);const wt=new e([e.UINT],{prefix:46});function Vt(e){const n=e.key;return void 0===n?[]:[n]}const It=c("@keet/test-collection-record-1/hyperdb#46"),Et={name:"@keet/test-collection-1",id:46,version:0,encodeKey(e){const n=[e.key];return wt.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>wt.encodeRange({gt:e?Vt(e):null,lt:n?Vt(n):null,gte:t?Vt(t):null,lte:o?Vt(o):null}),encodeValue(e,n,o){r(e);const c={start:0,end:0,buffer:null};return It.preencode(c,o),c.buffer=t.allocUnsafe(c.end),It.encode(c,o),c.buffer},trigger:null,reconstruct:function(e,n,t){const o=wt.decode(n);r(e);const c={start:0,end:t.byteLength,buffer:t},d=It.decode(c);return d.key=o[0],d},reconstructKey:function(e){return{key:wt.decode(e)[0]}},indexes:[],decodedVersion:0},Bt=new e([e.STRING,e.UINT,e.UINT],{prefix:47}),Tt=l.filesByMajorTypeMap;function Nt(e){const n=[],t=e.type;if(void 0===t)return n;n.push(t);const o=e.id;return void 0===o||n.push(o),n}const qt={name:"@keet/files-by-major-type",version:1,id:47,encodeKey:e=>Bt.encode(Nt(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>Bt.encodeRange({gt:e?Nt(e):null,lt:n?Nt(n):null,gte:t?Nt(t):null,lte:o?Nt(o):null}),encodeValue:e=>qt.collection.encodeKey(e),encodeIndexKeys(e,n){const t=Tt(e,n),o=new Array(t.length);for(let n=0;n<t.length;n++){const c=t[n];o[n]=Bt.encode([c.type,c.id,e.id])}return o},reconstruct:(e,n)=>n,offset:bn.indexes.length,collection:bn};bn.indexes.push(qt);const Lt=new e([e.UINT,e.UINT],{prefix:48}),Mt=l.activeFilesMap;function At(e){const n=e.id;return void 0===n?[]:[n]}const jt={name:"@keet/active-files",version:1,id:48,encodeKey:e=>Lt.encode(At(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>Lt.encodeRange({gt:e?At(e):null,lt:n?At(n):null,gte:t?At(t):null,lte:o?At(o):null}),encodeValue:e=>jt.collection.encodeKey(e),encodeIndexKeys(e,n){const t=Mt(e,n),o=new Array(t.length);for(let n=0;n<t.length;n++){const c=t[n];o[n]=Lt.encode([c.id,e.id])}return o},reconstruct:(e,n)=>n,offset:bn.indexes.length,collection:bn};bn.indexes.push(jt);const Ct=new e([e.BUFFER,e.BUFFER],{prefix:49}),St=s.roomsByContactMap;function Gt(e){const n=e.contact;return void 0===n?[]:[n]}const Dt={name:"@keet-private-id/rooms-by-contact",version:0,id:49,encodeKey:e=>Ct.encode(Gt(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>Ct.encodeRange({gt:e?Gt(e):null,lt:n?Gt(n):null,gte:t?Gt(t):null,lte:o?Gt(o):null}),encodeValue:e=>Dt.collection.encodeKey(e),encodeIndexKeys(e,n){const t=St(e,n),o=new Array(t.length);for(let n=0;n<t.length;n++){const c=t[n];o[n]=Ct.encode([c.contact,e.roomKey])}return o},reconstruct:(e,n)=>n,offset:Hn.indexes.length,collection:Hn};Hn.indexes.push(Dt);const Pt=new e([e.BUFFER],{prefix:50});function zt(e){const n=e.deviceKey;return void 0===n?[]:[n]}const Ht=c("@keet/device-identity/hyperdb#50"),Jt={name:"@keet-private-id/device-identities",id:50,version:0,encodeKey(e){const n=[e.deviceKey];return Pt.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>Pt.encodeRange({gt:e?zt(e):null,lt:n?zt(n):null,gte:t?zt(t):null,lte:o?zt(o):null}),encodeValue(e,n,o){r(e);const c={start:0,end:0,buffer:null};return Ht.preencode(c,o),c.buffer=t.allocUnsafe(c.end),Ht.encode(c,o),c.buffer},trigger:null,reconstruct:function(e,n,t){const o=Pt.decode(n);r(e);const c={start:0,end:t.byteLength,buffer:t},d=Ht.decode(c);return d.deviceKey=o[0],d},reconstructKey:function(e){return{deviceKey:Pt.decode(e)[0]}},indexes:[],decodedVersion:0},Ot=new e([e.BUFFER,e.BUFFER],{prefix:51});function Qt(e){const n=[],t=e.memberKey;if(void 0===t)return n;n.push(t);const o=e.keys?.key;return void 0===o||n.push(o),n}const Wt=c("@keet-private-id/contact-request-record/hyperdb#51"),Xt=s.contactRequestsTrigger,Yt={name:"@keet-private-id/contact-requests-v2",id:51,version:0,encodeKey(e){const n=[e.memberKey,e.keys.key];return Ot.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>Ot.encodeRange({gt:e?Qt(e):null,lt:n?Qt(n):null,gte:t?Qt(t):null,lte:o?Qt(o):null}),encodeValue(e,n,o){r(e);const c={start:0,end:0,buffer:null};return Wt.preencode(c,o),c.buffer=t.allocUnsafe(c.end),Wt.encode(c,o),c.buffer},trigger:Xt,reconstruct:function(e,n,t){const o=Ot.decode(n);r(e);const c={start:0,end:t.byteLength,buffer:t},d=Wt.decode(c);return d.memberKey=o[0],d.keys.key=o[1],d},reconstructKey:function(e){const n=Ot.decode(e);return{memberKey:n[0],keys:{key:n[1]}}},indexes:[],decodedVersion:0},Zt=new e([e.BUFFER,e.BUFFER,e.BUFFER],{prefix:52});function $t(e){const n=[],t=e.memberKey;if(void 0===t)return n;n.push(t);const o=e.memberKey;if(void 0===o)return n;n.push(o);const c=e.keys?.key;return void 0===c||n.push(c),n}const _t={name:"@keet-private-id/contact-requests-by-member",version:0,id:52,encodeKey:e=>Zt.encode($t(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>Zt.encodeRange({gt:e?$t(e):null,lt:n?$t(n):null,gte:t?$t(t):null,lte:o?$t(o):null}),encodeValue:e=>_t.collection.encodeKey(e),encodeIndexKeys:(e,n)=>[Zt.encode([e.memberKey,e.memberKey,e.keys.key])],reconstruct:(e,n)=>n,offset:Yt.indexes.length,collection:Yt};Yt.indexes.push(_t);const eo=new e([e.UINT,e.BUFFER,e.BUFFER],{prefix:53});function no(e){const n=[],t=e.clock;if(void 0===t)return n;n.push(t);const o=e.memberKey;if(void 0===o)return n;n.push(o);const c=e.keys?.key;return void 0===c||n.push(c),n}const to={name:"@keet-private-id/contact-requests-by-clock-v2",version:0,id:53,encodeKey:e=>eo.encode(no(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>eo.encodeRange({gt:e?no(e):null,lt:n?no(n):null,gte:t?no(t):null,lte:o?no(o):null}),encodeValue:e=>to.collection.encodeKey(e),encodeIndexKeys:(e,n)=>[eo.encode([e.clock,e.memberKey,e.keys.key])],reconstruct:(e,n)=>n,offset:Yt.indexes.length,collection:Yt};Yt.indexes.push(to);const oo=new e([e.UINT,e.BUFFER,e.BUFFER],{prefix:54}),co=s.pendingContactRequestsMap;function ro(e){const n=e.clock;return void 0===n?[]:[n]}const lo={name:"@keet-private-id/pending-contact-requests-v2",version:0,id:54,encodeKey:e=>oo.encode(ro(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>oo.encodeRange({gt:e?ro(e):null,lt:n?ro(n):null,gte:t?ro(t):null,lte:o?ro(o):null}),encodeValue:e=>lo.collection.encodeKey(e),encodeIndexKeys(e,n){const t=co(e,n),o=new Array(t.length);for(let n=0;n<t.length;n++){const c=t[n];o[n]=oo.encode([c.clock,e.memberKey,e.keys.key])}return o},reconstruct:(e,n)=>n,offset:Yt.indexes.length,collection:Yt};Yt.indexes.push(lo);const so=new e([e.BUFFER,e.BUFFER,e.BUFFER],{prefix:55}),uo=s.pendingContactRequestsByMemberMap;function io(e){const n=e.memberKey;return void 0===n?[]:[n]}const ao={name:"@keet-private-id/pending-contact-requests-by-member",version:0,id:55,encodeKey:e=>so.encode(io(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>so.encodeRange({gt:e?io(e):null,lt:n?io(n):null,gte:t?io(t):null,lte:o?io(o):null}),encodeValue:e=>ao.collection.encodeKey(e),encodeIndexKeys(e,n){const t=uo(e,n),o=new Array(t.length);for(let n=0;n<t.length;n++){const c=t[n];o[n]=so.encode([c.memberKey,e.memberKey,e.keys.key])}return o},reconstruct:(e,n)=>n,offset:Yt.indexes.length,collection:Yt};Yt.indexes.push(ao);const fo=new e([e.UINT,e.BUFFER,e.BUFFER],{prefix:56}),go=s.acceptedContactRequestsMap;function yo(e){const n=e.clock;return void 0===n?[]:[n]}const bo={name:"@keet-private-id/accepted-contact-requests-v2",version:0,id:56,encodeKey:e=>fo.encode(yo(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>fo.encodeRange({gt:e?yo(e):null,lt:n?yo(n):null,gte:t?yo(t):null,lte:o?yo(o):null}),encodeValue:e=>bo.collection.encodeKey(e),encodeIndexKeys(e,n){const t=go(e,n),o=new Array(t.length);for(let n=0;n<t.length;n++){const c=t[n];o[n]=fo.encode([c.clock,e.memberKey,e.keys.key])}return o},reconstruct:(e,n)=>n,offset:Yt.indexes.length,collection:Yt};Yt.indexes.push(bo);const po=new e([e.UINT,e.BUFFER,e.BUFFER],{prefix:57}),Ko=s.rejectedContactRequestsMap;function mo(e){const n=e.clock;return void 0===n?[]:[n]}const vo={name:"@keet-private-id/rejected-contact-requests-v2",version:0,id:57,encodeKey:e=>po.encode(mo(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>po.encodeRange({gt:e?mo(e):null,lt:n?mo(n):null,gte:t?mo(t):null,lte:o?mo(o):null}),encodeValue:e=>vo.collection.encodeKey(e),encodeIndexKeys(e,n){const t=Ko(e,n),o=new Array(t.length);for(let n=0;n<t.length;n++){const c=t[n];o[n]=po.encode([c.clock,e.memberKey,e.keys.key])}return o},reconstruct:(e,n)=>n,offset:Yt.indexes.length,collection:Yt};Yt.indexes.push(vo);const ho=new e([e.UINT,e.BUFFER,e.BUFFER],{prefix:58}),ko=s.discardedContactRequestsMap;function xo(e){const n=e.clock;return void 0===n?[]:[n]}const Ro={name:"@keet-private-id/discarded-contact-requests-v2",version:0,id:58,encodeKey:e=>ho.encode(xo(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>ho.encodeRange({gt:e?xo(e):null,lt:n?xo(n):null,gte:t?xo(t):null,lte:o?xo(o):null}),encodeValue:e=>Ro.collection.encodeKey(e),encodeIndexKeys(e,n){const t=ko(e,n),o=new Array(t.length);for(let n=0;n<t.length;n++){const c=t[n];o[n]=ho.encode([c.clock,e.memberKey,e.keys.key])}return o},reconstruct:(e,n)=>n,offset:Yt.indexes.length,collection:Yt};Yt.indexes.push(Ro);const Uo=new e([e.BUFFER],{prefix:59});function Fo(e){const n=e.deviceKey;return void 0===n?[]:[n]}const wo=c("@keet-private-id/unreads/hyperdb#59"),Vo={name:"@keet-private-id/unreads",id:59,version:0,encodeKey(e){const n=[e.deviceKey];return Uo.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>Uo.encodeRange({gt:e?Fo(e):null,lt:n?Fo(n):null,gte:t?Fo(t):null,lte:o?Fo(o):null}),encodeValue(e,n,o){r(e);const c={start:0,end:0,buffer:null};return wo.preencode(c,o),c.buffer=t.allocUnsafe(c.end),wo.encode(c,o),c.buffer},trigger:null,reconstruct:function(e,n,t){const o=Uo.decode(n);r(e);const c={start:0,end:t.byteLength,buffer:t},d=wo.decode(c);return d.deviceKey=o[0],d},reconstructKey:function(e){return{deviceKey:Uo.decode(e)[0]}},indexes:[],decodedVersion:0},Io=new e([e.UINT,e.UINT,e.BUFFER,e.UINT],{prefix:60});function Eo(e){const n=[],t=e.id?.thread;if(void 0===t)return n;n.push(t);const o=e.id?.index;if(void 0===o)return n;n.push(o);const c=e.sender;if(void 0===c)return n;n.push(c);const r=e.label;return void 0===r||n.push(r),n}const Bo=c("@keet/chat-label/hyperdb#60"),To=l.chatLabelTrigger,No={name:"@keet/chat-labels",id:60,version:0,encodeKey(e){const n=[e.id.thread,e.id.index,e.sender,e.label];return Io.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>Io.encodeRange({gt:e?Eo(e):null,lt:n?Eo(n):null,gte:t?Eo(t):null,lte:o?Eo(o):null}),encodeValue(e,n,o){r(e);const c={start:0,end:0,buffer:null};return Bo.preencode(c,o),c.buffer=t.allocUnsafe(c.end),Bo.encode(c,o),c.buffer},trigger:To,reconstruct:function(e,n,t){const o=Io.decode(n);r(e);const c={start:0,end:t.byteLength,buffer:t},d=Bo.decode(c);return d.id.thread=o[0],d.id.index=o[1],d.sender=o[2],d.label=o[3],d},reconstructKey:function(e){const n=Io.decode(e);return{id:{index:n[1]},sender:n[2],label:n[3]}},indexes:[],decodedVersion:0},qo=new e([e.UINT,e.UINT],{prefix:61});function Lo(e){const n=[],t=e.id?.thread;if(void 0===t)return n;n.push(t);const o=e.id?.index;return void 0===o||n.push(o),n}const Mo=c("@keet/chat-label-digest/hyperdb#61"),Ao={name:"@keet/chat-label-digests",id:61,version:2,encodeKey(e){const n=[e.id.thread,e.id.index];return qo.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>qo.encodeRange({gt:e?Lo(e):null,lt:n?Lo(n):null,gte:t?Lo(t):null,lte:o?Lo(o):null}),encodeValue(e,n,o){r(e);const c={start:0,end:0,buffer:null};return o.version=n,Mo.preencode(c,o),c.buffer=t.allocUnsafe(c.end),Mo.encode(c,o),c.buffer},trigger:null,reconstruct:function(e,n,t){const o=qo.decode(n);r(e);const c={start:0,end:t.byteLength,buffer:t},d=Mo.decode(c);return d.id.thread=o[0],d.id.index=o[1],Ao.decodedVersion=d.version,d},reconstructKey:function(e){return{id:{index:qo.decode(e)[1]}}},indexes:[],decodedVersion:0},jo=new e([e.BUFFER],{prefix:62});function Co(e){const n=e.memberKey;return void 0===n?[]:[n]}const So=c("@keet/read-length/hyperdb#62"),Go={name:"@keet/read-lengths",id:62,version:0,encodeKey(e){const n=[e.memberKey];return jo.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>jo.encodeRange({gt:e?Co(e):null,lt:n?Co(n):null,gte:t?Co(t):null,lte:o?Co(o):null}),encodeValue(e,n,o){r(e);const c={start:0,end:0,buffer:null};return So.preencode(c,o),c.buffer=t.allocUnsafe(c.end),So.encode(c,o),c.buffer},trigger:null,reconstruct:function(e,n,t){const o=jo.decode(n);r(e);const c={start:0,end:t.byteLength,buffer:t},d=So.decode(c);return d.memberKey=o[0],d},reconstructKey:function(e){return{memberKey:jo.decode(e)[0]}},indexes:[],decodedVersion:0},Do=new e([e.BUFFER],{prefix:63});function Po(e){const n=e.key;return void 0===n?[]:[n]}const zo=c("@keet/tmp-removed-member/hyperdb#63"),Ho={name:"@keet/tmp-removed-members",id:63,version:0,encodeKey(e){const n=[e.key];return Do.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>Do.encodeRange({gt:e?Po(e):null,lt:n?Po(n):null,gte:t?Po(t):null,lte:o?Po(o):null}),encodeValue(e,n,o){r(e);const c={start:0,end:0,buffer:null};return zo.preencode(c,o),c.buffer=t.allocUnsafe(c.end),zo.encode(c,o),c.buffer},trigger:null,reconstruct:function(e,n,t){const o=Do.decode(n);r(e);const c={start:0,end:t.byteLength,buffer:t},d=zo.decode(c);return d.key=o[0],d},reconstructKey:function(e){return{key:Do.decode(e)[0]}},indexes:[],decodedVersion:0},Jo=new e([],{prefix:64}),Oo=c("@keet-private-id/settings"),Qo={name:"@keet-private-id/settings",id:64,version:0,encodeKey:e=>Jo.encode([]),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>Jo.encodeRange({gt:e?[]:null,lt:n?[]:null,gte:t?[]:null,lte:o?[]:null}),encodeValue(e,n,o){r(e);const c={start:0,end:0,buffer:null};return Oo.preencode(c,o),c.buffer=t.allocUnsafe(c.end),Oo.encode(c,o),c.buffer},trigger:null,reconstruct:function(e,n,t){r(e);const o={start:0,end:t.byteLength,buffer:t};return Oo.decode(o)},reconstructKey:function(e){return{}},indexes:[],decodedVersion:0},Wo=new e([e.UINT,e.UINT,e.UINT,e.UINT],{prefix:65}),Xo=l.chatLabelDigestFlagMap;function Yo(e){const n=[],t=e.label;if(void 0===t)return n;n.push(t);const o=e.clock;return void 0===o||n.push(o),n}const Zo={name:"@keet/chat-label-digests-by-clock",version:2,id:65,encodeKey:e=>Wo.encode(Yo(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>Wo.encodeRange({gt:e?Yo(e):null,lt:n?Yo(n):null,gte:t?Yo(t):null,lte:o?Yo(o):null}),encodeValue:e=>Zo.collection.encodeKey(e),encodeIndexKeys(e,n){const t=Xo(e,n),o=new Array(t.length);for(let n=0;n<t.length;n++){const c=t[n];o[n]=Wo.encode([c.label,c.clock,e.id.thread,e.id.index])}return o},reconstruct:(e,n)=>n,offset:Ao.indexes.length,collection:Ao};Ao.indexes.push(Zo);const $o=new e([e.BUFFER,e.BUFFER,e.UINT],{prefix:66});function _o(e){const n=[],t=e.key;if(void 0===t)return n;n.push(t);const o=e.sender;if(void 0===o)return n;n.push(o);const c=e.label;return void 0===c||n.push(c),n}const ec=c("@keet/member-label/hyperdb#66"),nc={name:"@keet/member-labels",id:66,version:3,encodeKey(e){const n=[e.key,e.sender,e.label];return $o.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>$o.encodeRange({gt:e?_o(e):null,lt:n?_o(n):null,gte:t?_o(t):null,lte:o?_o(o):null}),encodeValue(e,n,o){r(e);const c={start:0,end:2,buffer:null};return ec.preencode(c,o),c.buffer=t.allocUnsafe(c.end),c.buffer[c.start++]=0,c.buffer[c.start++]=n,ec.encode(c,o),c.buffer},trigger:null,reconstruct:function(e,t,o){const c=$o.decode(t);r(e);const d={start:0,end:o.byteLength,buffer:o},l=n.uint.decode(d);if(0!==l)throw new Error("Unknown collection type: "+l);nc.decodedVersion=n.uint.decode(d);const s=ec.decode(d);return s.key=c[0],s.sender=c[1],s.label=c[2],s},reconstructKey:function(e){const n=$o.decode(e);return{key:n[0],sender:n[1],label:n[2]}},indexes:[],decodedVersion:0},tc=new e([e.BUFFER],{prefix:67});function oc(e){const n=e.key;return void 0===n?[]:[n]}const cc=c("@keet/member-label-digest/hyperdb#67"),rc={name:"@keet/member-label-digests",id:67,version:3,encodeKey(e){const n=[e.key];return tc.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>tc.encodeRange({gt:e?oc(e):null,lt:n?oc(n):null,gte:t?oc(t):null,lte:o?oc(o):null}),encodeValue(e,n,o){r(e);const c={start:0,end:2,buffer:null};return cc.preencode(c,o),c.buffer=t.allocUnsafe(c.end),c.buffer[c.start++]=0,c.buffer[c.start++]=n,cc.encode(c,o),c.buffer},trigger:null,reconstruct:function(e,t,o){const c=tc.decode(t);r(e);const d={start:0,end:o.byteLength,buffer:o},l=n.uint.decode(d);if(0!==l)throw new Error("Unknown collection type: "+l);rc.decodedVersion=n.uint.decode(d);const s=cc.decode(d);return s.key=c[0],s},reconstructKey:function(e){return{key:tc.decode(e)[0]}},indexes:[],decodedVersion:0},dc=new e([e.UINT,e.UINT,e.BUFFER],{prefix:68}),lc=l.memberLabelDigestFlagMap;function sc(e){const n=[],t=e.label;if(void 0===t)return n;n.push(t);const o=e.clock;return void 0===o||n.push(o),n}const uc={name:"@keet/member-label-digests-by-clock",version:3,id:68,encodeKey:e=>dc.encode(sc(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>dc.encodeRange({gt:e?sc(e):null,lt:n?sc(n):null,gte:t?sc(t):null,lte:o?sc(o):null}),encodeValue:e=>uc.collection.encodeKey(e),encodeIndexKeys(e,n){const t=lc(e,n),o=new Array(t.length);for(let n=0;n<t.length;n++){const c=t[n];o[n]=dc.encode([c.label,c.clock,e.key])}return o},reconstruct:(e,n)=>n,offset:rc.indexes.length,collection:rc};rc.indexes.push(uc);const ic=new e([e.BUFFER],{prefix:69});function ac(e){const n=e.callKey;return void 0===n?[]:[n]}const fc=c("@keet/call-record/hyperdb#69"),gc={name:"@keet/calls",id:69,version:4,encodeKey(e){const n=[e.callKey];return ic.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>ic.encodeRange({gt:e?ac(e):null,lt:n?ac(n):null,gte:t?ac(t):null,lte:o?ac(o):null}),encodeValue(e,n,o){r(e);const c={start:0,end:2,buffer:null};return fc.preencode(c,o),c.buffer=t.allocUnsafe(c.end),c.buffer[c.start++]=0,c.buffer[c.start++]=n,fc.encode(c,o),c.buffer},trigger:null,reconstruct:function(e,t,o){const c=ic.decode(t);r(e);const d={start:0,end:o.byteLength,buffer:o},l=n.uint.decode(d);if(0!==l)throw new Error("Unknown collection type: "+l);gc.decodedVersion=n.uint.decode(d);const s=fc.decode(d);return s.callKey=c[0],s},reconstructKey:function(e){return{callKey:ic.decode(e)[0]}},indexes:[],decodedVersion:0},yc=new e([e.UINT,e.BUFFER],{prefix:70});function bc(e){const n=[],t=e.createdAt;if(void 0===t)return n;n.push(t);const o=e.callKey;return void 0===o||n.push(o),n}const pc={name:"@keet/calls-by-timestamp",version:4,id:70,encodeKey:e=>yc.encode(bc(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>yc.encodeRange({gt:e?bc(e):null,lt:n?bc(n):null,gte:t?bc(t):null,lte:o?bc(o):null}),encodeValue:e=>pc.collection.encodeKey(e),encodeIndexKeys:(e,n)=>[yc.encode([e.createdAt,e.callKey])],reconstruct:(e,n)=>n,offset:gc.indexes.length,collection:gc};gc.indexes.push(pc);const Kc=new e([e.UINT,e.BUFFER],{prefix:71}),mc=l.activeCallsMap;function vc(e){const n=e.createdAt;return void 0===n?[]:[n]}const hc={name:"@keet/active-calls-by-timestamp",version:4,id:71,encodeKey:e=>Kc.encode(vc(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>Kc.encodeRange({gt:e?vc(e):null,lt:n?vc(n):null,gte:t?vc(t):null,lte:o?vc(o):null}),encodeValue:e=>hc.collection.encodeKey(e),encodeIndexKeys(e,n){const t=mc(e,n),o=new Array(t.length);for(let n=0;n<t.length;n++){const c=t[n];o[n]=Kc.encode([c.createdAt,e.callKey])}return o},reconstruct:(e,n)=>n,offset:gc.indexes.length,collection:gc};gc.indexes.push(hc);const kc=new e([e.BUFFER,e.BUFFER],{prefix:72});function xc(e){const n=[],t=e.callKey;if(void 0===t)return n;n.push(t);const o=e.memberKey;return void 0===o||n.push(o),n}const Rc=c("@keet/call-member-record/hyperdb#72"),Uc={name:"@keet/call-members",id:72,version:4,encodeKey(e){const n=[e.callKey,e.memberKey];return kc.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>kc.encodeRange({gt:e?xc(e):null,lt:n?xc(n):null,gte:t?xc(t):null,lte:o?xc(o):null}),encodeValue(e,n,o){r(e);const c={start:0,end:2,buffer:null};return Rc.preencode(c,o),c.buffer=t.allocUnsafe(c.end),c.buffer[c.start++]=0,c.buffer[c.start++]=n,Rc.encode(c,o),c.buffer},trigger:null,reconstruct:function(e,t,o){const c=kc.decode(t);r(e);const d={start:0,end:o.byteLength,buffer:o},l=n.uint.decode(d);if(0!==l)throw new Error("Unknown collection type: "+l);Uc.decodedVersion=n.uint.decode(d);const s=Rc.decode(d);return s.callKey=c[0],s.memberKey=c[1],s},reconstructKey:function(e){const n=kc.decode(e);return{callKey:n[0],memberKey:n[1]}},indexes:[],decodedVersion:0},Fc=new e([e.BUFFER,e.BUFFER],{prefix:73});function wc(e){const n=[],t=e.callKey;if(void 0===t)return n;n.push(t);const o=e.deviceKey;return void 0===o||n.push(o),n}const Vc=c("@keet/call-device-record/hyperdb#73"),Ic={name:"@keet/call-devices",id:73,version:4,encodeKey(e){const n=[e.callKey,e.deviceKey];return Fc.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>Fc.encodeRange({gt:e?wc(e):null,lt:n?wc(n):null,gte:t?wc(t):null,lte:o?wc(o):null}),encodeValue(e,n,o){r(e);const c={start:0,end:2,buffer:null};return Vc.preencode(c,o),c.buffer=t.allocUnsafe(c.end),c.buffer[c.start++]=0,c.buffer[c.start++]=n,Vc.encode(c,o),c.buffer},trigger:null,reconstruct:function(e,t,o){const c=Fc.decode(t);r(e);const d={start:0,end:o.byteLength,buffer:o},l=n.uint.decode(d);if(0!==l)throw new Error("Unknown collection type: "+l);Ic.decodedVersion=n.uint.decode(d);const s=Vc.decode(d);return s.callKey=c[0],s.deviceKey=c[1],s},reconstructKey:function(e){const n=Fc.decode(e);return{callKey:n[0],deviceKey:n[1]}},indexes:[],decodedVersion:0},Ec=new e([e.BUFFER,e.BUFFER,e.BUFFER,e.BUFFER],{prefix:74});function Bc(e){const n=[],t=e.callKey;if(void 0===t)return n;n.push(t);const o=e.memberKey;if(void 0===o)return n;n.push(o);const c=e.callKey;if(void 0===c)return n;n.push(c);const r=e.deviceKey;return void 0===r||n.push(r),n}const Tc={name:"@keet/call-devices-by-member-key",version:4,id:74,encodeKey:e=>Ec.encode(Bc(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>Ec.encodeRange({gt:e?Bc(e):null,lt:n?Bc(n):null,gte:t?Bc(t):null,lte:o?Bc(o):null}),encodeValue:e=>Tc.collection.encodeKey(e),encodeIndexKeys:(e,n)=>[Ec.encode([e.callKey,e.memberKey,e.callKey,e.deviceKey])],reconstruct:(e,n)=>n,offset:Ic.indexes.length,collection:Ic};Ic.indexes.push(Tc);const Nc=new e([e.BUFFER,e.BUFFER],{prefix:75});function qc(e){const n=[],t=e.callKey;if(void 0===t)return n;n.push(t);const o=e.streamKey;return void 0===o||n.push(o),n}const Lc=c("@keet/call-stream-record/hyperdb#75"),Mc={name:"@keet/call-streams",id:75,version:7,encodeKey(e){const n=[e.callKey,e.streamKey];return Nc.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>Nc.encodeRange({gt:e?qc(e):null,lt:n?qc(n):null,gte:t?qc(t):null,lte:o?qc(o):null}),encodeValue(e,n,o){r(e);const c={start:0,end:2,buffer:null};return Lc.preencode(c,o),c.buffer=t.allocUnsafe(c.end),c.buffer[c.start++]=0,c.buffer[c.start++]=n,Lc.encode(c,o),c.buffer},trigger:null,reconstruct:function(e,t,o){const c=Nc.decode(t);r(e);const d={start:0,end:o.byteLength,buffer:o},l=n.uint.decode(d);if(0!==l)throw new Error("Unknown collection type: "+l);Mc.decodedVersion=n.uint.decode(d);const s=Lc.decode(d);return s.callKey=c[0],s.streamKey=c[1],s},reconstructKey:function(e){const n=Nc.decode(e);return{callKey:n[0],streamKey:n[1]}},indexes:[],decodedVersion:0},Ac=new e([e.BUFFER,e.BUFFER,e.BUFFER,e.BUFFER],{prefix:76});function jc(e){const n=[],t=e.callKey;if(void 0===t)return n;n.push(t);const o=e.deviceKey;if(void 0===o)return n;n.push(o);const c=e.callKey;if(void 0===c)return n;n.push(c);const r=e.streamKey;return void 0===r||n.push(r),n}const Cc={name:"@keet/call-streams-by-device-key",version:4,id:76,encodeKey:e=>Ac.encode(jc(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>Ac.encodeRange({gt:e?jc(e):null,lt:n?jc(n):null,gte:t?jc(t):null,lte:o?jc(o):null}),encodeValue:e=>Cc.collection.encodeKey(e),encodeIndexKeys:(e,n)=>[Ac.encode([e.callKey,e.deviceKey,e.callKey,e.streamKey])],reconstruct:(e,n)=>n,offset:Mc.indexes.length,collection:Mc};Mc.indexes.push(Cc);const Sc=new e([e.BUFFER],{prefix:77});function Gc(e){const n=e.deviceKey;return void 0===n?[]:[n]}const Dc=c("@keet-private-id/unreads/hyperdb#77"),Pc={name:"@keet-private-id/unreads-v2",id:77,version:5,encodeKey(e){const n=[e.deviceKey];return Sc.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>Sc.encodeRange({gt:e?Gc(e):null,lt:n?Gc(n):null,gte:t?Gc(t):null,lte:o?Gc(o):null}),encodeValue(e,n,o){r(e);const c={start:0,end:2,buffer:null};return Dc.preencode(c,o),c.buffer=t.allocUnsafe(c.end),c.buffer[c.start++]=0,c.buffer[c.start++]=n,Dc.encode(c,o),c.buffer},trigger:null,reconstruct:function(e,t,o){const c=Sc.decode(t);r(e);const d={start:0,end:o.byteLength,buffer:o},l=n.uint.decode(d);if(0!==l)throw new Error("Unknown collection type: "+l);Pc.decodedVersion=n.uint.decode(d);const s=Dc.decode(d);return s.deviceKey=c[0],s},reconstructKey:function(e){return{deviceKey:Sc.decode(e)[0]}},indexes:[],decodedVersion:0},zc=new e([e.BUFFER],{prefix:78});function Hc(e){const n=e.memberKey;return void 0===n?[]:[n]}const Jc=c("@keet/typing-indicator/hyperdb#78"),Oc={name:"@keet/typing-indicators",id:78,version:6,encodeKey(e){const n=[e.memberKey];return zc.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>zc.encodeRange({gt:e?Hc(e):null,lt:n?Hc(n):null,gte:t?Hc(t):null,lte:o?Hc(o):null}),encodeValue(e,n,o){r(e);const c={start:0,end:2,buffer:null};return Jc.preencode(c,o),c.buffer=t.allocUnsafe(c.end),c.buffer[c.start++]=0,c.buffer[c.start++]=n,Jc.encode(c,o),c.buffer},trigger:null,reconstruct:function(e,t,o){const c=zc.decode(t);r(e);const d={start:0,end:o.byteLength,buffer:o},l=n.uint.decode(d);if(0!==l)throw new Error("Unknown collection type: "+l);Oc.decodedVersion=n.uint.decode(d);const s=Jc.decode(d);return s.memberKey=c[0],s},reconstructKey:function(e){return{memberKey:zc.decode(e)[0]}},indexes:[],decodedVersion:0},Qc=new e([e.BUFFER,e.STRING,e.BUFFER,e.BUFFER],{prefix:79});function Wc(e){const n=[],t=e.callKey;if(void 0===t)return n;n.push(t);const o=e.mediaStreamId;if(void 0===o)return n;n.push(o);const c=e.callKey;if(void 0===c)return n;n.push(c);const r=e.streamKey;return void 0===r||n.push(r),n}const Xc={name:"@keet/call-streams-by-media-id",version:7,id:79,encodeKey:e=>Qc.encode(Wc(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>Qc.encodeRange({gt:e?Wc(e):null,lt:n?Wc(n):null,gte:t?Wc(t):null,lte:o?Wc(o):null}),encodeValue:e=>Xc.collection.encodeKey(e),encodeIndexKeys:(e,n)=>[Qc.encode([e.callKey,e.mediaStreamId,e.callKey,e.streamKey])],reconstruct:(e,n)=>n,offset:Mc.indexes.length,collection:Mc};Mc.indexes.push(Xc);const Yc=new e([e.UINT],{prefix:80});function Zc(e){const n=e.statusKey;return void 0===n?[]:[n]}const $c=c("@keet/call-stream-status-record/hyperdb#80"),_c={name:"@keet/call-stream-statuses",id:80,version:7,encodeKey(e){const n=[e.statusKey];return Yc.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>Yc.encodeRange({gt:e?Zc(e):null,lt:n?Zc(n):null,gte:t?Zc(t):null,lte:o?Zc(o):null}),encodeValue(e,n,o){r(e);const c={start:0,end:2,buffer:null};return $c.preencode(c,o),c.buffer=t.allocUnsafe(c.end),c.buffer[c.start++]=0,c.buffer[c.start++]=n,$c.encode(c,o),c.buffer},trigger:null,reconstruct:function(e,t,o){const c=Yc.decode(t);r(e);const d={start:0,end:o.byteLength,buffer:o},l=n.uint.decode(d);if(0!==l)throw new Error("Unknown collection type: "+l);_c.decodedVersion=n.uint.decode(d);const s=$c.decode(d);return s.statusKey=c[0],s},reconstructKey:function(e){return{statusKey:Yc.decode(e)[0]}},indexes:[],decodedVersion:0},er=new e([e.BUFFER],{prefix:81});function nr(e){const n=e.memberKey;return void 0===n?[]:[n]}const tr=c("@keet/admin-last-seen/hyperdb#81"),or={name:"@keet/admin-last-seen",id:81,version:8,encodeKey(e){const n=[e.memberKey];return er.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>er.encodeRange({gt:e?nr(e):null,lt:n?nr(n):null,gte:t?nr(t):null,lte:o?nr(o):null}),encodeValue(e,n,o){r(e);const c={start:0,end:2,buffer:null};return tr.preencode(c,o),c.buffer=t.allocUnsafe(c.end),c.buffer[c.start++]=0,c.buffer[c.start++]=n,tr.encode(c,o),c.buffer},trigger:null,reconstruct:function(e,t,o){const c=er.decode(t);r(e);const d={start:0,end:o.byteLength,buffer:o},l=n.uint.decode(d);if(0!==l)throw new Error("Unknown collection type: "+l);or.decodedVersion=n.uint.decode(d);const s=tr.decode(d);return s.memberKey=c[0],s},reconstructKey:function(e){return{memberKey:er.decode(e)[0]}},indexes:[],decodedVersion:0},cr=new e([e.UINT,e.BUFFER],{prefix:82}),rr=l.adminsByMostRecentMap;function dr(e){const n=e.clock;return void 0===n?[]:[n]}const lr={name:"@keet/admins-by-most-recent",version:8,id:82,encodeKey:e=>cr.encode(dr(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>cr.encodeRange({gt:e?dr(e):null,lt:n?dr(n):null,gte:t?dr(t):null,lte:o?dr(o):null}),encodeValue:e=>lr.collection.encodeKey(e),encodeIndexKeys(e,n){const t=rr(e,n),o=new Array(t.length);for(let n=0;n<t.length;n++){const c=t[n];o[n]=cr.encode([c.clock,e.memberKey])}return o},reconstruct:(e,n)=>n,offset:or.indexes.length,collection:or};or.indexes.push(lr);const sr=new e([e.BUFFER],{prefix:83});function ur(e){const n=e.hash;return void 0===n?[]:[n]}const ir=c("@keet/blob/hyperdb#83"),ar={name:"@keet/blobs",id:83,version:8,encodeKey(e){const n=[e.hash];return sr.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>sr.encodeRange({gt:e?ur(e):null,lt:n?ur(n):null,gte:t?ur(t):null,lte:o?ur(o):null}),encodeValue(e,n,o){r(e);const c={start:0,end:2,buffer:null};return ir.preencode(c,o),c.buffer=t.allocUnsafe(c.end),c.buffer[c.start++]=0,c.buffer[c.start++]=n,ir.encode(c,o),c.buffer},trigger:null,reconstruct:function(e,t,o){const c=sr.decode(t);r(e);const d={start:0,end:o.byteLength,buffer:o},l=n.uint.decode(d);if(0!==l)throw new Error("Unknown collection type: "+l);ar.decodedVersion=n.uint.decode(d);const s=ir.decode(d);return s.hash=c[0],s},reconstructKey:function(e){return{hash:sr.decode(e)[0]}},indexes:[],decodedVersion:0},fr=new e([],{prefix:84}),gr=c("@keet/autobee-migration"),yr={name:"@keet/autobee-migration",id:84,version:8,encodeKey:e=>fr.encode([]),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>fr.encodeRange({gt:e?[]:null,lt:n?[]:null,gte:t?[]:null,lte:o?[]:null}),encodeValue(e,n,o){r(e);const c={start:0,end:2,buffer:null};return gr.preencode(c,o),c.buffer=t.allocUnsafe(c.end),c.buffer[c.start++]=0,c.buffer[c.start++]=n,gr.encode(c,o),c.buffer},trigger:null,reconstruct:function(e,t,o){r(e);const c={start:0,end:o.byteLength,buffer:o},d=n.uint.decode(c);if(0!==d)throw new Error("Unknown collection type: "+d);return yr.decodedVersion=n.uint.decode(c),gr.decode(c)},reconstructKey:function(e){return{}},indexes:[],decodedVersion:0},br=new e([e.BUFFER],{prefix:85});function pr(e){const n=e.id;return void 0===n?[]:[n]}const Kr=c("@keet-private-id/pending-invitation-response/hyperdb#85"),mr={name:"@keet-private-id/pending-invitation-responses",id:85,version:9,encodeKey(e){const n=[e.id];return br.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>br.encodeRange({gt:e?pr(e):null,lt:n?pr(n):null,gte:t?pr(t):null,lte:o?pr(o):null}),encodeValue(e,n,o){r(e);const c={start:0,end:2,buffer:null};return Kr.preencode(c,o),c.buffer=t.allocUnsafe(c.end),c.buffer[c.start++]=0,c.buffer[c.start++]=n,Kr.encode(c,o),c.buffer},trigger:null,reconstruct:function(e,t,o){const c=br.decode(t);r(e);const d={start:0,end:o.byteLength,buffer:o},l=n.uint.decode(d);if(0!==l)throw new Error("Unknown collection type: "+l);mr.decodedVersion=n.uint.decode(d);const s=Kr.decode(d);return s.id=c[0],s},reconstructKey:function(e){return{id:br.decode(e)[0]}},indexes:[],decodedVersion:0},vr=[a,b,m,k,F,B,W,_,Re,Ve,Te,Ge,nn,dn,bn,En,Nn,Mn,Sn,Hn,$n,dt,Et,Jt,Yt,Vo,No,Ao,Go,Ho,Qo,nc,rc,gc,Uc,Ic,Mc,Pc,Oc,_c,or,ar,yr,mr],hr=[q,A,G,H,oe,le,ae,be,ve,Me,ze,Qe,Ze,un,mn,Qn,nt,ut,gt,Kt,kt,Ft,qt,jt,Dt,_t,to,lo,ao,bo,vo,Ro,Zo,uc,pc,hc,Tc,Cc,Xc,lr];module.exports={versions:d,collections:vr,indexes:hr,resolveCollection:function(e){switch(e){case"@keet/system-digest":return a;case"@keet/blind-peers":return b;case"@keet/room-config":return m;case"@keet/room-capabilities":return k;case"@keet/join-requests":return F;case"@keet/devices":return B;case"@keet/member-proofs":return W;case"@keet/members":return _;case"@keet/member-activity":return Re;case"@keet/invitations":return Ve;case"@keet/threads":return Te;case"@keet/chat":return Ge;case"@keet/reaction-digests":return nn;case"@keet/reactions":return dn;case"@keet/files":return bn;case"@keet-private-id/identity":return En;case"@keet-private-id/stats":return Nn;case"@keet-private-id/counters":return Mn;case"@keet-private-id/pending-invitations":return Sn;case"@keet-private-id/rooms":return Hn;case"@keet-private-id/contacts":return $n;case"@keet-private-id/contact-requests":return dt;case"@keet/test-collection-1":return Et;case"@keet-private-id/device-identities":return Jt;case"@keet-private-id/contact-requests-v2":return Yt;case"@keet-private-id/unreads":return Vo;case"@keet/chat-labels":return No;case"@keet/chat-label-digests":return Ao;case"@keet/read-lengths":return Go;case"@keet/tmp-removed-members":return Ho;case"@keet-private-id/settings":return Qo;case"@keet/member-labels":return nc;case"@keet/member-label-digests":return rc;case"@keet/calls":return gc;case"@keet/call-members":return Uc;case"@keet/call-devices":return Ic;case"@keet/call-streams":return Mc;case"@keet-private-id/unreads-v2":return Pc;case"@keet/typing-indicators":return Oc;case"@keet/call-stream-statuses":return _c;case"@keet/admin-last-seen":return or;case"@keet/blobs":return ar;case"@keet/autobee-migration":return yr;case"@keet-private-id/pending-invitation-responses":return mr;default:return null}},resolveIndex:function(e){switch(e){case"@keet/devices-by-member-key":return q;case"@keet/devices-by-swarm-key":return A;case"@keet/active-devices-by-member-key":return G;case"@keet/active-devices":return H;case"@keet/moderators":return oe;case"@keet/admins":return le;case"@keet/active-members":return ae;case"@keet/muted-members":return be;case"@keet/members-by-member-name":return ve;case"@keet/threads-by-parent":return Me;case"@keet/chat-by-message-id":return ze;case"@keet/chat-mentions-by-member-id":return Qe;case"@keet/pinned-chat-messages":return Ze;case"@keet/reactions-by-clock":return un;case"@keet/files-by-message-id":return mn;case"@keet/files-by-type":return xn;case"@keet/deleted-files":return wn;case"@keet-private-id/rooms-by-clock":return Qn;case"@keet-private-id/contacts-by-clock":return nt;case"@keet-private-id/contact-requests-by-clock":return ut;case"@keet-private-id/pending-contact-requests":return gt;case"@keet-private-id/accepted-contact-requests":return Kt;case"@keet-private-id/rejected-contact-requests":return kt;case"@keet-private-id/discarded-contact-requests":return Ft;case"@keet/files-by-major-type":return qt;case"@keet/active-files":return jt;case"@keet-private-id/rooms-by-contact":return Dt;case"@keet-private-id/contact-requests-by-member":return _t;case"@keet-private-id/contact-requests-by-clock-v2":return to;case"@keet-private-id/pending-contact-requests-v2":return lo;case"@keet-private-id/pending-contact-requests-by-member":return ao;case"@keet-private-id/accepted-contact-requests-v2":return bo;case"@keet-private-id/rejected-contact-requests-v2":return vo;case"@keet-private-id/discarded-contact-requests-v2":return Ro;case"@keet/chat-label-digests-by-clock":return Zo;case"@keet/member-label-digests-by-clock":return uc;case"@keet/calls-by-timestamp":return pc;case"@keet/active-calls-by-timestamp":return hc;case"@keet/call-devices-by-member-key":return Tc;case"@keet/call-streams-by-device-key":return Cc;case"@keet/call-streams-by-media-id":return Xc;case"@keet/admins-by-most-recent":return lr;default:return null}}};
@holepunchto/keet-core/schema/spec/contract/hyperdb/messages.js +1 -1
……@@ -1 +1 @@
1const{c:e}=require("hyperschema/runtime");let d=24;const n={preencode(d,n){e.fixed32.preencode(d,n.key),e.uint.preencode(d,n.length)},encode(d,n){e.fixed32.encode(d,n.key),e.uint.encode(d,n.length)},decode:d=>({key:e.fixed32.decode(d),length:e.uint.decode(d)})},o={preencode(d,n){e.fixed32.preencode(d,n.key),e.uint.preencode(d,n.seq)},encode(d,n){e.fixed32.encode(d,n.key),e.uint.encode(d,n.seq)},decode:d=>({key:e.fixed32.decode(d),seq:e.uint.decode(d)})},c={preencode(d,n){e.fixed32.preencode(d,n.publicKey),e.fixed32.preencode(d,n.secretKey)},encode(d,n){e.fixed32.encode(d,n.publicKey),e.fixed32.encode(d,n.secretKey)},decode:d=>({publicKey:e.fixed32.decode(d),secretKey:e.fixed32.decode(d)})},t={preencode(d,n){e.fixed32.preencode(d,n.publicKey),e.fixed64.preencode(d,n.secretKey)},encode(d,n){e.fixed32.encode(d,n.publicKey),e.fixed64.encode(d,n.secretKey)},decode:d=>({publicKey:e.fixed32.decode(d),secretKey:e.fixed64.decode(d)})},r={preencode(d,n){e.fixed32.preencode(d,n.key),d.end++,n.encryptionKey&&e.buffer.preencode(d,n.encryptionKey),n.fastForwardTo&&e.fixed32.preencode(d,n.fastForwardTo)},encode(d,n){const o=(n.encryptionKey?1:0)|(n.fastForwardTo?2:0);e.fixed32.encode(d,n.key),e.uint.encode(d,o),n.encryptionKey&&e.buffer.encode(d,n.encryptionKey),n.fastForwardTo&&e.fixed32.encode(d,n.fastForwardTo)},decode(d){const n=e.fixed32.decode(d),o=e.uint.decode(d);return{key:n,encryptionKey:1&o?e.buffer.decode(d):null,fastForwardTo:2&o?e.fixed32.decode(d):null}}},i={preencode(d,n){e.uint.preencode(d,n.timestamp)},encode(d,n){e.uint.encode(d,n.timestamp)},decode:d=>({timestamp:e.uint.decode(d)})},a={preencode(d,n){e.uint.preencode(d,n.blockOffset),e.uint.preencode(d,n.blockLength),e.uint.preencode(d,n.byteOffset),e.uint.preencode(d,n.byteLength)},encode(d,n){e.uint.encode(d,n.blockOffset),e.uint.encode(d,n.blockLength),e.uint.encode(d,n.byteOffset),e.uint.encode(d,n.byteLength)},decode:d=>({blockOffset:e.uint.decode(d),blockLength:e.uint.decode(d),byteOffset:e.uint.decode(d),byteLength:e.uint.decode(d)})},s={preencode(d,n){e.uint.preencode(d,n.width),e.uint.preencode(d,n.height)},encode(d,n){e.uint.encode(d,n.width),e.uint.encode(d,n.height)},decode:d=>({width:e.uint.decode(d),height:e.uint.decode(d)})},p=e.frame(s),u={preencode(d,n){d.end++,n.name&&e.string.preencode(d,n.name),n.mimetype&&e.string.preencode(d,n.mimetype),n.dimensions&&p.preencode(d,n.dimensions),n.userdata&&e.buffer.preencode(d,n.userdata),n.duration&&e.uint.preencode(d,n.duration)},encode(d,n){const o=(n.name?1:0)|(n.mimetype?2:0)|(n.dimensions?4:0)|(n.userdata?8:0)|(n.duration?16:0)|(n.isPreview?32:0);e.uint.encode(d,o),n.name&&e.string.encode(d,n.name),n.mimetype&&e.string.encode(d,n.mimetype),n.dimensions&&p.encode(d,n.dimensions),n.userdata&&e.buffer.encode(d,n.userdata),n.duration&&e.uint.encode(d,n.duration)},decode(d){const n=e.uint.decode(d);return{name:1&n?e.string.decode(d):null,mimetype:2&n?e.string.decode(d):null,dimensions:4&n?p.decode(d):null,userdata:8&n?e.buffer.decode(d):null,duration:16&n?e.uint.decode(d):0,isPreview:!!(32&n)}}},l={preencode(d,n){e.fixed32.preencode(d,n.key),e.string.preencode(d,n.path),e.uint.preencode(d,n.version),e.uint.preencode(d,n.size)},encode(d,n){e.fixed32.encode(d,n.key),e.string.encode(d,n.path),e.uint.encode(d,n.version),e.uint.encode(d,n.size)},decode:d=>({key:e.fixed32.decode(d),path:e.string.decode(d),version:e.uint.decode(d),size:e.uint.decode(d)})},f={preencode(d,n){e.fixed32.preencode(d,n.key),a.preencode(d,n.blob)},encode(d,n){e.fixed32.encode(d,n.key),a.encode(d,n.blob)},decode:d=>({key:e.fixed32.decode(d),blob:a.decode(d)})},m=e.frame(f),y=e.frame(l),b={preencode(d,n){d.end++,n.inlined&&e.buffer.preencode(d,n.inlined),n.blob&&a.preencode(d,n.blob),n.externalBlob&&m.preencode(d,n.externalBlob),n.externalDrive&&y.preencode(d,n.externalDrive)},encode(d,n){const o=(n.inlined?1:0)|(n.blob?2:0)|(n.externalBlob?4:0)|(n.externalDrive?8:0);e.uint.encode(d,o),n.inlined&&e.buffer.encode(d,n.inlined),n.blob&&a.encode(d,n.blob),n.externalBlob&&m.encode(d,n.externalBlob),n.externalDrive&&y.encode(d,n.externalDrive)},decode(d){const n=e.uint.decode(d);return{inlined:1&n?e.buffer.decode(d):null,blob:2&n?a.decode(d):null,externalBlob:4&n?m.decode(d):null,externalDrive:8&n?y.decode(d):null}}},x=e.frame(b),k=e.frame(u),v={preencode(d,n){x.preencode(d,n.pointer),d.end++,n.metadata&&k.preencode(d,n.metadata),n.preview&&xi.preencode(d,n.preview),n.hash&&e.fixed32.preencode(d,n.hash)},encode(d,n){const o=(n.metadata?1:0)|(n.preview?2:0)|(n.hash?4:0);x.encode(d,n.pointer),e.uint.encode(d,o),n.metadata&&k.encode(d,n.metadata),n.preview&&xi.encode(d,n.preview),n.hash&&e.fixed32.encode(d,n.hash)},decode(d){const n=x.decode(d),o=e.uint.decode(d);return{pointer:n,metadata:1&o?k.decode(d):null,preview:2&o?xi.decode(d):null,hash:4&o?e.fixed32.decode(d):null}}},g=e.frame(v),h=g,K=g,w={preencode(e,d){e.end++,d.small&&g.preencode(e,d.small),d.medium&&h.preencode(e,d.medium),d.large&&K.preencode(e,d.large)},encode(d,n){const o=(n.small?1:0)|(n.medium?2:0)|(n.large?4:0);e.uint.encode(d,o),n.small&&g.encode(d,n.small),n.medium&&h.encode(d,n.medium),n.large&&K.encode(d,n.large)},decode(d){const n=e.uint.decode(d);return{small:1&n?g.decode(d):null,medium:2&n?h.decode(d):null,large:4&n?K.decode(d):null}}},A={preencode(e,d){e.end++},encode(d,n){const o=n.isDeleted?1:0;e.uint.encode(d,o)},decode:d=>({isDeleted:!!(1&e.uint.decode(d))})},T=e.frame(A),P=g,S={preencode(n,c){e.uint.preencode(n,c.id),o.preencode(n,c.oplog),T.preencode(n,c.status),P.preencode(n,c.file),n.end++,d>=14&&c.version&&e.uint.preencode(n,c.version)},encode(n,c){const t=d>=14&&c.version?1:0;e.uint.encode(n,c.id),o.encode(n,c.oplog),T.encode(n,c.status),P.encode(n,c.file),e.uint.encode(n,t),d>=14&&c.version&&e.uint.encode(n,c.version)},decode(n){const c=e.uint.decode(n),t=o.decode(n),r=T.decode(n),i=P.decode(n),a=n.start<n.end?e.uint.decode(n):0;return{id:c,oplog:t,status:r,file:i,version:d>=14&&1&a?e.uint.decode(n):0}}},R={preencode(e,d){e.end++},encode(d,n){const o=(n.isActive?1:0)|(n.isIndexing?2:0);e.uint.encode(d,o)},decode(d){const n=e.uint.decode(d);return{isActive:!!(1&n),isIndexing:!!(2&n)}}},I={preencode(n,o){const c=(o.isAdmin?1:0)|(o.isModerator?2:0)|(o.isPending?4:0)|(o.isActive?8:0)|(o.isMuted?16:0)|(o.isBanned?32:0)|(o.isShadowBanned?64:0)|(d>=13&&o.isRemoved?128:0);e.uint.preencode(n,c)},encode(n,o){const c=(o.isAdmin?1:0)|(o.isModerator?2:0)|(o.isPending?4:0)|(o.isActive?8:0)|(o.isMuted?16:0)|(o.isBanned?32:0)|(o.isShadowBanned?64:0)|(d>=13&&o.isRemoved?128:0);e.uint.encode(n,c)},decode(n){const o=e.uint.decode(n);return{isAdmin:!!(1&o),isModerator:!!(2&o),isPending:!!(4&o),isActive:!!(8&o),isMuted:!!(16&o),isBanned:!!(32&o),isShadowBanned:!!(64&o),isRemoved:d>=13&&!!(128&o)}}},C={preencode(e,d){e.end++},encode(d,n){const o=(n.isMuted?1:0)|(n.isBanned?2:0)|(n.isShadowBanned?4:0);e.uint.encode(d,o)},decode(d){const n=e.uint.decode(d);return{isMuted:!!(1&n),isBanned:!!(2&n),isShadowBanned:!!(4&n)}}},D={preencode(d,n){e.uint.preencode(d,n.version)},encode(d,n){e.uint.encode(d,n.version)},decode:d=>({version:e.uint.decode(d)})},M={preencode(d,n){e.uint.preencode(d,n.total),e.uint.preencode(d,n.active)},encode(d,n){e.uint.encode(d,n.total),e.uint.encode(d,n.active)},decode:d=>({total:e.uint.decode(d),active:e.uint.decode(d)})},F={preencode(d,n){e.uint.preencode(d,n.total),e.uint.preencode(d,n.active),e.uint.preencode(d,n.pending)},encode(d,n){e.uint.encode(d,n.total),e.uint.encode(d,n.active),e.uint.encode(d,n.pending)},decode:d=>({total:e.uint.decode(d),active:e.uint.decode(d),pending:e.uint.decode(d)})},q={preencode(n,o){e.uint.preencode(n,o.clock),e.uint.preencode(n,o.pinned),e.uint.preencode(n,o.threads),e.uint.preencode(n,o.timestamp),n.end++,d>=15&&o.flagsClock&&e.uint.preencode(n,o.flagsClock)},encode(n,o){const c=d>=15&&o.flagsClock?1:0;e.uint.encode(n,o.clock),e.uint.encode(n,o.pinned),e.uint.encode(n,o.threads),e.uint.encode(n,o.timestamp),e.uint.encode(n,c),d>=15&&o.flagsClock&&e.uint.encode(n,o.flagsClock)},decode(n){const o=e.uint.decode(n),c=e.uint.decode(n),t=e.uint.decode(n),r=e.uint.decode(n),i=n.start<n.end?e.uint.decode(n):0;return{clock:o,pinned:c,threads:t,timestamp:r,flagsClock:d>=15&&1&i?e.uint.decode(n):0}}},L={preencode(d,n){e.uint.preencode(d,n.clock)},encode(d,n){e.uint.encode(d,n.clock)},decode:d=>({clock:e.uint.decode(d)})},E=e.frame(M),B=e.frame(F),H=e.frame(q),N=e.frame(L),j={preencode(e,d){E.preencode(e,d.devices),B.preencode(e,d.members),H.preencode(e,d.chat),N.preencode(e,d.files)},encode(e,d){E.encode(e,d.devices),B.encode(e,d.members),H.encode(e,d.chat),N.encode(e,d.files)},decode:e=>({devices:E.decode(e),members:B.decode(e),chat:H.decode(e),files:N.decode(e)})},z={Default:1,Broadcast:2,DirectMessage:3},U={preencode(e,d){e.end++},encode(d,n){if(n>3)throw new Error("Unknown enum");e.uint.encode(d,n)},decode:d=>e.uint.decode(d)},V={preencode(n,o){const c=(o.roomType?1:0)|(o.isExperimental?2:0)|(o.isJoiningDisabled?4:0)|(o.isAppendingDisabled?8:0)|(o.isCallingDisabled?16:0)|(o.isMembershipEventsDisabled?32:0)|(d>=19&&o.isAttachmentsDisabled?64:0)|(d>=19&&o.isLinksDisabled?128:0)|(d>=20&&o.buildType?256:0)|(d>=23&&o.isRoomInviteHidden?512:0);e.uint.preencode(n,c),o.roomType&&U.preencode(n,o.roomType),d>=20&&o.buildType&&Nt.preencode(n,o.buildType)},encode(n,o){const c=(o.roomType?1:0)|(o.isExperimental?2:0)|(o.isJoiningDisabled?4:0)|(o.isAppendingDisabled?8:0)|(o.isCallingDisabled?16:0)|(o.isMembershipEventsDisabled?32:0)|(d>=19&&o.isAttachmentsDisabled?64:0)|(d>=19&&o.isLinksDisabled?128:0)|(d>=20&&o.buildType?256:0)|(d>=23&&o.isRoomInviteHidden?512:0);e.uint.encode(n,c),o.roomType&&U.encode(n,o.roomType),d>=20&&o.buildType&&Nt.encode(n,o.buildType)},decode(n){const o=e.uint.decode(n);return{roomType:1&o?U.decode(n):0,isExperimental:!!(2&o),isJoiningDisabled:!!(4&o),isAppendingDisabled:!!(8&o),isCallingDisabled:!!(16&o),isMembershipEventsDisabled:!!(32&o),isAttachmentsDisabled:d>=19&&!!(64&o),isLinksDisabled:d>=19&&!!(128&o),buildType:d>=20&&256&o?Nt.decode(n):null,isRoomInviteHidden:d>=23&&!!(512&o)}}},O=e.frame(D),J=e.frame(V),G={preencode(d,n){O.preencode(d,n.abi),J.preencode(d,n.settings),e.uint.preencode(d,n.creationTime)},encode(d,n){O.encode(d,n.abi),J.encode(d,n.settings),e.uint.encode(d,n.creationTime)},decode:d=>({abi:O.decode(d),settings:J.decode(d),creationTime:e.uint.decode(d)})},Q={preencode(d,n){e.fixed32.preencode(d,n.seed)},encode(d,n){e.fixed32.encode(d,n.seed)},decode:d=>({seed:e.fixed32.decode(d)})},W={preencode(d,n){c.preencode(d,n.mailboxKeyPair),t.preencode(d,n.discoveryKeyPair),e.fixed32.preencode(d,n.wakeupTopic),e.fixed32.preencode(d,n.swarmTopic)},encode(d,n){c.encode(d,n.mailboxKeyPair),t.encode(d,n.discoveryKeyPair),e.fixed32.encode(d,n.wakeupTopic),e.fixed32.encode(d,n.swarmTopic)},decode:d=>({mailboxKeyPair:c.decode(d),discoveryKeyPair:t.decode(d),wakeupTopic:e.fixed32.decode(d),swarmTopic:e.fixed32.decode(d)})},X=e.array(e.fixed32),Y={preencode(n,o){n.end++,o.title&&e.string.preencode(n,o.title),o.avatar&&ki.preencode(n,o.avatar),o.description&&e.string.preencode(n,o.description),d>=11&&o.supportedLanguages&&vi.preencode(n,o.supportedLanguages),d>=13&&o.blindPeers&&X.preencode(n,o.blindPeers)},encode(n,o){const c=(o.title?1:0)|(o.avatar?2:0)|(o.description?4:0)|(d>=11&&o.supportedLanguages?8:0)|(d>=13&&o.blindPeers?16:0);e.uint.encode(n,c),o.title&&e.string.encode(n,o.title),o.avatar&&ki.encode(n,o.avatar),o.description&&e.string.encode(n,o.description),d>=11&&o.supportedLanguages&&vi.encode(n,o.supportedLanguages),d>=13&&o.blindPeers&&X.encode(n,o.blindPeers)},decode(n){const o=e.uint.decode(n);return{title:1&o?e.string.decode(n):null,avatar:2&o?ki.decode(n):null,description:4&o?e.string.decode(n):null,supportedLanguages:d>=11&&8&o?vi.decode(n):null,blindPeers:d>=13&&16&o?X.decode(n):null}}},Z={preencode(d,n){e.fixed32.preencode(d,n.key)},encode(d,n){e.fixed32.encode(d,n.key)},decode:d=>({key:e.fixed32.decode(d)})},$=e.frame(i),_=e.frame(Z),ee={preencode(e,d){$.preencode(e,d.header),_.preencode(e,d.peer)},encode(e,d){$.encode(e,d.header),_.encode(e,d.peer)},decode:e=>({header:$.decode(e),peer:_.decode(e)})},de=$,ne={preencode(d,n){de.preencode(d,n.header),e.fixed32.preencode(d,n.key)},encode(d,n){de.encode(d,n.header),e.fixed32.encode(d,n.key)},decode:d=>({header:de.decode(d),key:e.fixed32.decode(d)})},oe={preencode(d,n){e.fixed32.preencode(d,n.memberKey),e.buffer.preencode(d,n.proof)},encode(d,n){e.fixed32.encode(d,n.memberKey),e.buffer.encode(d,n.proof)},decode:d=>({memberKey:e.fixed32.decode(d),proof:e.buffer.decode(d)})},ce={preencode(d,n){e.fixed32.preencode(d,n.id),e.buffer.preencode(d,n.response)},encode(d,n){e.fixed32.encode(d,n.id),e.buffer.encode(d,n.response)},decode:d=>({id:e.fixed32.decode(d),response:e.buffer.decode(d)})},te=e.frame(R),re=e.frame(ce),ie={preencode(d,n){e.fixed32.preencode(d,n.key),e.fixed32.preencode(d,n.memberKey),te.preencode(d,n.status),gi.preencode(d,n.profile),d.end++,n.invitation&&re.preencode(d,n.invitation)},encode(d,n){const o=n.invitation?1:0;e.fixed32.encode(d,n.key),e.fixed32.encode(d,n.memberKey),te.encode(d,n.status),gi.encode(d,n.profile),e.uint.encode(d,o),n.invitation&&re.encode(d,n.invitation)},decode:d=>({key:e.fixed32.decode(d),memberKey:e.fixed32.decode(d),status:te.decode(d),profile:gi.decode(d),invitation:1&e.uint.decode(d)?re.decode(d):null})},ae={preencode(d,n){e.uint.preencode(d,n.timestamp),d.end++,n.mailbox&&e.fixed32.preencode(d,n.mailbox),n.displayName&&e.string.preencode(d,n.displayName),n.avatar&&hi.preencode(d,n.avatar),n.username&&e.string.preencode(d,n.username)},encode(d,n){const o=(n.mailbox?1:0)|(n.displayName?2:0)|(n.avatar?4:0)|(n.username?8:0);e.uint.encode(d,n.timestamp),e.uint.encode(d,o),n.mailbox&&e.fixed32.encode(d,n.mailbox),n.displayName&&e.string.encode(d,n.displayName),n.avatar&&hi.encode(d,n.avatar),n.username&&e.string.encode(d,n.username)},decode(d){const n=e.uint.decode(d),o=e.uint.decode(d);return{timestamp:n,mailbox:1&o?e.fixed32.decode(d):null,displayName:2&o?e.string.decode(d):null,avatar:4&o?hi.decode(d):null,username:8&o?e.string.decode(d):null}}},se={preencode(n,o){n.end++,o.swarmKey&&e.fixed32.preencode(n,o.swarmKey),o.name&&e.string.preencode(n,o.name),d>=20&&o.buildType&&Nt.preencode(n,o.buildType)},encode(n,o){const c=(o.swarmKey?1:0)|(o.name?2:0)|(o.isMobile?4:0)|(d>=20&&o.buildType?8:0);e.uint.encode(n,c),o.swarmKey&&e.fixed32.encode(n,o.swarmKey),o.name&&e.string.encode(n,o.name),d>=20&&o.buildType&&Nt.encode(n,o.buildType)},decode(n){const o=e.uint.decode(n);return{swarmKey:1&o?e.fixed32.decode(n):null,name:2&o?e.string.decode(n):null,isMobile:!!(4&o),buildType:d>=20&&8&o?Nt.decode(n):null}}},pe=e.frame(ae),ue={preencode(e,d){pe.preencode(e,d.profile),oe.preencode(e,d.attestation)},encode(e,d){pe.encode(e,d.profile),oe.encode(e,d.attestation)},decode:e=>({profile:pe.decode(e),attestation:oe.decode(e)})},le={preencode(e,d){Ki.preencode(e,d.profile),oe.preencode(e,d.attestation)},encode(e,d){Ki.encode(e,d.profile),oe.encode(e,d.attestation)},decode:e=>({profile:Ki.decode(e),attestation:oe.decode(e)})},fe={preencode(d,n){e.fixed32.preencode(d,n.id),e.buffer.preencode(d,n.data),e.buffer.preencode(d,n.signature)},encode(d,n){e.fixed32.encode(d,n.id),e.buffer.encode(d,n.data),e.buffer.encode(d,n.signature)},decode:d=>({id:e.fixed32.decode(d),data:e.buffer.decode(d),signature:e.buffer.decode(d)})},me={preencode(d,n){e.fixed32.preencode(d,n.devicePublicKey)},encode(d,n){e.fixed32.encode(d,n.devicePublicKey)},decode:d=>({devicePublicKey:e.fixed32.decode(d)})},ye={preencode(d,n){oe.preencode(d,n.privateProfileIdentity),e.buffer.preencode(d,n.deviceProof)},encode(d,n){oe.encode(d,n.privateProfileIdentity),e.buffer.encode(d,n.deviceProof)},decode:d=>({privateProfileIdentity:oe.decode(d),deviceProof:e.buffer.decode(d)})},be=e.frame(le),xe=e.frame(ue),ke=e.frame(me),ve={preencode(d,n){e.fixed32.preencode(d,n.deviceKey),t.preencode(d,n.keyPair),be.preencode(d,n.device),xe.preencode(d,n.member),d.end++,n.identity&&ke.preencode(d,n.identity)},encode(d,n){const o=n.identity?1:0;e.fixed32.encode(d,n.deviceKey),t.encode(d,n.keyPair),be.encode(d,n.device),xe.encode(d,n.member),e.uint.encode(d,o),n.identity&&ke.encode(d,n.identity)},decode:d=>({deviceKey:e.fixed32.decode(d),keyPair:t.decode(d),device:be.decode(d),member:xe.decode(d),identity:1&e.uint.decode(d)?ke.decode(d):null})},ge=e.frame(ve),he={preencode(d,n){e.fixed32.preencode(d,n.id),ge.preencode(d,n.request),e.buffer.preencode(d,n.signature)},encode(d,n){e.fixed32.encode(d,n.id),ge.encode(d,n.request),e.buffer.encode(d,n.signature)},decode:d=>({id:e.fixed32.decode(d),request:ge.decode(d),signature:e.buffer.decode(d)})},Ke=be,we=xe,Ae={preencode(e,d){Ke.preencode(e,d.device),e.end++,d.member&&we.preencode(e,d.member)},encode(d,n){const o=n.member?1:0;Ke.encode(d,n.device),e.uint.encode(d,o),n.member&&we.encode(d,n.member)},decode:d=>({device:Ke.decode(d),member:1&e.uint.decode(d)?we.decode(d):null})},Te=e.frame(he),Pe=e.frame(Ae),Se={preencode(e,d){e.end++,d.withInvitation&&Te.preencode(e,d.withInvitation),d.withMemberProof&&Pe.preencode(e,d.withMemberProof)},encode(d,n){const o=(n.withInvitation?1:0)|(n.withMemberProof?2:0);e.uint.encode(d,o),n.withInvitation&&Te.encode(d,n.withInvitation),n.withMemberProof&&Pe.encode(d,n.withMemberProof)},decode(d){const n=e.uint.decode(d);return{withInvitation:1&n?Te.decode(d):null,withMemberProof:2&n?Pe.decode(d):null}}},Re=e.frame(fe),Ie=e.frame(ye),Ce={preencode(e,d){Re.preencode(e,d.signedKeys),e.end++,d.identity&&Ie.preencode(e,d.identity)},encode(d,n){const o=n.identity?1:0;Re.encode(d,n.signedKeys),e.uint.encode(d,o),n.identity&&Ie.encode(d,n.identity)},decode:d=>({signedKeys:Re.decode(d),identity:1&e.uint.decode(d)?Ie.decode(d):null})},De={preencode(n,o){n.end++,o.expiration&&e.uint.preencode(n,o.expiration),d>=20&&o.buildType&&Nt.preencode(n,o.buildType)},encode(n,o){const c=(o.expiration?1:0)|(o.requiresConfirmation?2:0)|(o.canModerate?4:0)|(o.canAdmin?8:0)|(d>=20&&o.buildType?16:0);e.uint.encode(n,c),o.expiration&&e.uint.encode(n,o.expiration),d>=20&&o.buildType&&Nt.encode(n,o.buildType)},decode(n){const o=e.uint.decode(n);return{expiration:1&o?e.uint.decode(n):0,requiresConfirmation:!!(2&o),canModerate:!!(4&o),canAdmin:!!(8&o),buildType:d>=20&&16&o?Nt.decode(n):null}}},Me=Re,Fe=e.frame(De),qe={preencode(d,o){e.fixed32.preencode(d,o.id),Me.preencode(d,o.response),Fe.preencode(d,o.metadata),d.end++,o.anchor&&n.preencode(d,o.anchor)},encode(d,o){const c=(o.anchor?1:0)|(o.isActive?2:0);e.fixed32.encode(d,o.id),Me.encode(d,o.response),Fe.encode(d,o.metadata),e.uint.encode(d,c),o.anchor&&n.encode(d,o.anchor)},decode(d){const o=e.fixed32.decode(d),c=Me.decode(d),t=Fe.decode(d),r=e.uint.decode(d);return{id:o,response:c,metadata:t,anchor:1&r?n.decode(d):null,isActive:!!(2&r)}}},Le=$,Ee=e.frame(qe),Be={preencode(e,d){Le.preencode(e,d.header),Ee.preencode(e,d.invitation)},encode(e,d){Le.encode(e,d.header),Ee.encode(e,d.invitation)},decode:e=>({header:Le.decode(e),invitation:Ee.decode(e)})},He=$,Ne={preencode(d,n){He.preencode(d,n.header),e.fixed32.preencode(d,n.id)},encode(d,n){He.encode(d,n.header),e.fixed32.encode(d,n.id)},decode:d=>({header:He.decode(d),id:e.fixed32.decode(d)})},je={preencode(d,o){e.fixed32.preencode(d,o.mailbox),e.fixed32.preencode(d,o.invitationSeed),n.preencode(d,o.anchor)},encode(d,o){e.fixed32.encode(d,o.mailbox),e.fixed32.encode(d,o.invitationSeed),n.encode(d,o.anchor)},decode:d=>({mailbox:e.fixed32.decode(d),invitationSeed:e.fixed32.decode(d),anchor:n.decode(d)})},ze={preencode(d,o){e.fixed32.preencode(d,o.mailbox),e.fixed32.preencode(d,o.invitationSeed),n.preencode(d,o.anchor),e.fixed32.preencode(d,o.identityPublicKey)},encode(d,o){e.fixed32.encode(d,o.mailbox),e.fixed32.encode(d,o.invitationSeed),n.encode(d,o.anchor),e.fixed32.encode(d,o.identityPublicKey)},decode:d=>({mailbox:e.fixed32.decode(d),invitationSeed:e.fixed32.decode(d),anchor:n.decode(d),identityPublicKey:e.fixed32.decode(d)})},Ue={preencode(d,n){e.fixed32.preencode(d,n.mailbox)},encode(d,n){e.fixed32.encode(d,n.mailbox)},decode:d=>({mailbox:e.fixed32.decode(d)})},Ve=e.frame(je),Oe=e.frame(ze),Je=e.frame(Ue),Ge=e.array(e.ipv4Address),Qe={preencode(e,n){e.end++,n.room&&Ve.preencode(e,n.room),n.identity&&Oe.preencode(e,n.identity),n.contact&&Je.preencode(e,n.contact),d>=6&&n.readonly&&wi.preencode(e,n.readonly),d>=11&&n.additionalNodes&&Ge.preencode(e,n.additionalNodes),d>=20&&n.buildType&&Nt.preencode(e,n.buildType)},encode(n,o){const c=(o.room?1:0)|(o.identity?2:0)|(o.contact?4:0)|(d>=6&&o.readonly?8:0)|(d>=11&&o.additionalNodes?16:0)|(d>=20&&o.buildType?32:0);e.uint.encode(n,c),o.room&&Ve.encode(n,o.room),o.identity&&Oe.encode(n,o.identity),o.contact&&Je.encode(n,o.contact),d>=6&&o.readonly&&wi.encode(n,o.readonly),d>=11&&o.additionalNodes&&Ge.encode(n,o.additionalNodes),d>=20&&o.buildType&&Nt.encode(n,o.buildType)},decode(n){const o=e.uint.decode(n);return{room:1&o?Ve.decode(n):null,identity:2&o?Oe.decode(n):null,contact:4&o?Je.decode(n):null,readonly:d>=6&&8&o?wi.decode(n):null,additionalNodes:d>=11&&16&o?Ge.decode(n):null,buildType:d>=20&&32&o?Nt.decode(n):null}}},We=$,Xe={preencode(d,n){We.preencode(d,n.header),e.buffer.preencode(d,n.blindRequest)},encode(d,n){We.encode(d,n.header),e.buffer.encode(d,n.blindRequest)},decode:d=>({header:We.decode(d),blindRequest:e.buffer.decode(d)})},Ye=$,Ze={preencode(n,o){Ye.preencode(n,o.header),n.end++,o.profile&&Ai.preencode(n,o.profile),d>=24&&o.key&&e.fixed32.preencode(n,o.key)},encode(n,o){const c=(o.profile?1:0)|(d>=24&&o.key?2:0);Ye.encode(n,o.header),e.uint.encode(n,c),o.profile&&Ai.encode(n,o.profile),d>=24&&o.key&&e.fixed32.encode(n,o.key)},decode(n){const o=Ye.decode(n),c=e.uint.decode(n);return{header:o,profile:1&c?Ai.decode(n):null,key:d>=24&&2&c?e.fixed32.decode(n):null}}},$e={preencode(e,d){},encode(e,d){},decode:e=>({})},_e=$e,ed=ge,dd={preencode(d,n){e.fixed32.preencode(d,n.deviceKey),e.fixed32.preencode(d,n.id),ed.preencode(d,n.request)},encode(d,n){e.fixed32.encode(d,n.deviceKey),e.fixed32.encode(d,n.id),ed.encode(d,n.request)},decode:d=>({deviceKey:e.fixed32.decode(d),id:e.fixed32.decode(d),request:ed.decode(d)})},nd=$,od=Ie,cd={preencode(d,n){nd.preencode(d,n.header),e.fixed32.preencode(d,n.deviceKey),d.end++,n.identity&&od.preencode(d,n.identity)},encode(d,n){const o=n.identity?1:0;nd.encode(d,n.header),e.fixed32.encode(d,n.deviceKey),e.uint.encode(d,o),n.identity&&od.encode(d,n.identity)},decode:d=>({header:nd.decode(d),deviceKey:e.fixed32.decode(d),identity:1&e.uint.decode(d)?od.decode(d):null})},td=$,rd={preencode(d,n){td.preencode(d,n.header),e.fixed32.preencode(d,n.deviceKey)},encode(d,n){td.encode(d,n.header),e.fixed32.encode(d,n.deviceKey)},decode:d=>({header:td.decode(d),deviceKey:e.fixed32.decode(d)})},id=e.frame(I),ad=pe,sd={preencode(d,n){e.fixed32.preencode(d,n.key),id.preencode(d,n.status),ad.preencode(d,n.profile)},encode(d,n){e.fixed32.encode(d,n.key),id.encode(d,n.status),ad.encode(d,n.profile)},decode:d=>({key:e.fixed32.decode(d),status:id.decode(d),profile:ad.decode(d)})},pd=id,ud=pe,ld={preencode(d,n){e.fixed32.preencode(d,n.key),pd.preencode(d,n.status),ud.preencode(d,n.profile),d.end++,n.proofs&&Ti.preencode(d,n.proofs)},encode(d,n){const o=n.proofs?1:0;e.fixed32.encode(d,n.key),pd.encode(d,n.status),ud.encode(d,n.profile),e.uint.encode(d,o),n.proofs&&Ti.encode(d,n.proofs)},decode:d=>({key:e.fixed32.decode(d),status:pd.decode(d),profile:ud.decode(d),proofs:1&e.uint.decode(d)?Ti.decode(d):null})},fd={preencode(d,n){e.fixed32.preencode(d,n.key),d.end++,n.profileAttestation&&e.buffer.preencode(d,n.profileAttestation),n.latestReceipt&&e.buffer.preencode(d,n.latestReceipt)},encode(d,n){const o=(n.profileAttestation?1:0)|(n.latestReceipt?2:0);e.fixed32.encode(d,n.key),e.uint.encode(d,o),n.profileAttestation&&e.buffer.encode(d,n.profileAttestation),n.latestReceipt&&e.buffer.encode(d,n.latestReceipt)},decode(d){const n=e.fixed32.decode(d),o=e.uint.decode(d);return{key:n,profileAttestation:1&o?e.buffer.decode(d):null,latestReceipt:2&o?e.buffer.decode(d):null}}},md=$,yd=xe,bd={preencode(e,d){md.preencode(e,d.header),yd.preencode(e,d.member)},encode(e,d){md.encode(e,d.header),yd.encode(e,d.member)},decode:e=>({header:md.decode(e),member:yd.decode(e)})},xd=$,kd=e.frame(C),vd={preencode(d,n){xd.preencode(d,n.header),e.fixed32.preencode(d,n.memberKey),e.uint.preencode(d,n.key),kd.preencode(d,n.status)},encode(d,n){xd.encode(d,n.header),e.fixed32.encode(d,n.memberKey),e.uint.encode(d,n.key),kd.encode(d,n.status)},decode:d=>({header:xd.decode(d),memberKey:e.fixed32.decode(d),key:e.uint.decode(d),status:kd.decode(d)})},gd=$,hd={preencode(d,n){gd.preencode(d,n.header),e.fixed32.preencode(d,n.key),d.end++},encode(d,n){const o=(n.isModerator?1:0)|(n.isAdmin?2:0);gd.encode(d,n.header),e.fixed32.encode(d,n.key),e.uint.encode(d,o)},decode(d){const n=gd.decode(d),o=e.fixed32.decode(d),c=e.uint.decode(d);return{header:n,key:o,isModerator:!!(1&c),isAdmin:!!(2&c)}}},Kd=$,wd={preencode(d,n){Kd.preencode(d,n.header),e.fixed32.preencode(d,n.key)},encode(d,n){Kd.encode(d,n.header),e.fixed32.encode(d,n.key)},decode:d=>({header:Kd.decode(d),key:e.fixed32.decode(d)})},Ad={preencode(d,n){e.fixed32.preencode(d,n.key),e.uint.preencode(d,n.mentions)},encode(d,n){e.fixed32.encode(d,n.key),e.uint.encode(d,n.mentions)},decode:d=>({key:e.fixed32.decode(d),mentions:e.uint.decode(d)})},Td={preencode(d,n){d.end++,n.memberKey&&e.fixed32.preencode(d,n.memberKey)},encode(d,n){const o=n.memberKey?1:0;e.uint.encode(d,o),n.memberKey&&e.fixed32.encode(d,n.memberKey)},decode:d=>({memberKey:1&e.uint.decode(d)?e.fixed32.decode(d):null})},Pd=Td,Sd={preencode(d,n){d.end++,n.from&&e.string.preencode(d,n.from),n.to&&e.string.preencode(d,n.to)},encode(d,n){const o=(n.from?1:0)|(n.to?2:0);e.uint.encode(d,o),n.from&&e.string.encode(d,n.from),n.to&&e.string.encode(d,n.to)},decode(d){const n=e.uint.decode(d);return{from:1&n?e.string.decode(d):null,to:2&n?e.string.decode(d):null}}},Rd=e.frame(Td),Id=e.frame(Pd),Cd=e.frame(Sd),Dd={preencode(n,o){const c=(o.memberJoined?1:0)|(o.memberLeft?2:0)|(o.titleChanged?4:0)|(o.callStarted?8:0)|(o.callHangup?16:0)|(o.callMissed?32:0)|(d>=3&&o.roomAvatarChanged?64:0)|(d>=3&&o.invitationCreated?128:0)|(d>=3&&o.memberRemoved?256:0)|(d>=18&&o.locationShared?512:0);e.uint.preencode(n,c),o.memberJoined&&Rd.preencode(n,o.memberJoined),o.memberLeft&&Id.preencode(n,o.memberLeft),o.titleChanged&&Cd.preencode(n,o.titleChanged),d>=3&&o.memberRemoved&&Pi.preencode(n,o.memberRemoved),d>=18&&o.locationShared&&Si.preencode(n,o.locationShared)},encode(n,o){const c=(o.memberJoined?1:0)|(o.memberLeft?2:0)|(o.titleChanged?4:0)|(o.callStarted?8:0)|(o.callHangup?16:0)|(o.callMissed?32:0)|(d>=3&&o.roomAvatarChanged?64:0)|(d>=3&&o.invitationCreated?128:0)|(d>=3&&o.memberRemoved?256:0)|(d>=18&&o.locationShared?512:0);e.uint.encode(n,c),o.memberJoined&&Rd.encode(n,o.memberJoined),o.memberLeft&&Id.encode(n,o.memberLeft),o.titleChanged&&Cd.encode(n,o.titleChanged),d>=3&&o.memberRemoved&&Pi.encode(n,o.memberRemoved),d>=18&&o.locationShared&&Si.encode(n,o.locationShared)},decode(n){const o=e.uint.decode(n);return{memberJoined:1&o?Rd.decode(n):null,memberLeft:2&o?Id.decode(n):null,titleChanged:4&o?Cd.decode(n):null,callStarted:!!(8&o),callHangup:!!(16&o),callMissed:!!(32&o),roomAvatarChanged:d>=3&&!!(64&o),invitationCreated:d>=3&&!!(128&o),memberRemoved:d>=3&&256&o?Pi.decode(n):null,locationShared:d>=18&&512&o?Si.decode(n):null}}},Md={preencode(e,n){e.end++,d>=18&&n.locationShared&&Ri.preencode(e,n.locationShared)},encode(n,o){const c=(o.callStarted?1:0)|(o.callHangup?2:0)|(o.callMissed?4:0)|(d>=18&&o.locationShared?8:0);e.uint.encode(n,c),d>=18&&o.locationShared&&Ri.encode(n,o.locationShared)},decode(n){const o=e.uint.decode(n);return{callStarted:!!(1&o),callHangup:!!(2&o),callMissed:!!(4&o),locationShared:d>=18&&8&o?Ri.decode(n):null}}},Fd={preencode(d,n){e.uint.preencode(d,n.start),e.uint.preencode(d,n.length)},encode(d,n){e.uint.encode(d,n.start),e.uint.encode(d,n.length)},decode:d=>({start:e.uint.decode(d),length:e.uint.decode(d)})},qd=e.frame(Fd),Ld={preencode(d,n){qd.preencode(d,n.range),e.string.preencode(d,n.content)},encode(d,n){qd.encode(d,n.range),e.string.encode(d,n.content)},decode:d=>({range:qd.decode(d),content:e.string.decode(d)})},Ed=qd,Bd={preencode(d,n){Ed.preencode(d,n.range),e.fixed32.preencode(d,n.memberKey)},encode(d,n){Ed.encode(d,n.range),e.fixed32.encode(d,n.memberKey)},decode:d=>({range:Ed.decode(d),memberKey:e.fixed32.decode(d)})},Hd=g,Nd=e.array(e.uint),jd={preencode(n,o){n.end++,o.title&&e.string.preencode(n,o.title),o.description&&e.string.preencode(n,o.description),o.file&&Hd.preencode(n,o.file),d>=7&&o.files&&Nd.preencode(n,o.files)},encode(n,o){const c=(o.title?1:0)|(o.description?2:0)|(o.file?4:0)|(d>=7&&o.files?8:0);e.uint.encode(n,c),o.title&&e.string.encode(n,o.title),o.description&&e.string.encode(n,o.description),o.file&&Hd.encode(n,o.file),d>=7&&o.files&&Nd.encode(n,o.files)},decode(n){const o=e.uint.decode(n);return{title:1&o?e.string.decode(n):null,description:2&o?e.string.decode(n):null,file:4&o?Hd.decode(n):null,files:d>=7&&8&o?Nd.decode(n):null}}},zd=qd,Ud=e.frame(jd),Vd={preencode(d,n){zd.preencode(d,n.range),e.string.preencode(d,n.url),d.end++,n.preview&&Ud.preencode(d,n.preview)},encode(d,n){const o=n.preview?1:0;zd.encode(d,n.range),e.string.encode(d,n.url),e.uint.encode(d,o),n.preview&&Ud.encode(d,n.preview)},decode:d=>({range:zd.decode(d),url:e.string.decode(d),preview:1&e.uint.decode(d)?Ud.decode(d):null})},Od=e.array(e.frame(Bd)),Jd=e.array(e.frame(Vd)),Gd=Jd,Qd=e.array(e.frame(Fd)),Wd=Qd,Xd=Qd,Yd=e.array(e.frame(Ld)),Zd=Qd,$d=Qd,_d={preencode(n,o){const c=(o.mention?1:0)|(o.httpLink?2:0)|(o.pearLink?4:0)|(o.bold?8:0)|(o.italic?16:0)|(o.code?32:0)|(o.emoji?64:0)|(o.codeBlock?128:0)|(o.strike?256:0)|(d>=11&&o.translation?512:0);e.uint.preencode(n,c),o.mention&&Od.preencode(n,o.mention),o.httpLink&&Jd.preencode(n,o.httpLink),o.pearLink&&Gd.preencode(n,o.pearLink),o.bold&&Qd.preencode(n,o.bold),o.italic&&Wd.preencode(n,o.italic),o.code&&Xd.preencode(n,o.code),o.emoji&&Yd.preencode(n,o.emoji),o.codeBlock&&Zd.preencode(n,o.codeBlock),o.strike&&$d.preencode(n,o.strike),d>=11&&o.translation&&Ii.preencode(n,o.translation)},encode(n,o){const c=(o.mention?1:0)|(o.httpLink?2:0)|(o.pearLink?4:0)|(o.bold?8:0)|(o.italic?16:0)|(o.code?32:0)|(o.emoji?64:0)|(o.codeBlock?128:0)|(o.strike?256:0)|(d>=11&&o.translation?512:0);e.uint.encode(n,c),o.mention&&Od.encode(n,o.mention),o.httpLink&&Jd.encode(n,o.httpLink),o.pearLink&&Gd.encode(n,o.pearLink),o.bold&&Qd.encode(n,o.bold),o.italic&&Wd.encode(n,o.italic),o.code&&Xd.encode(n,o.code),o.emoji&&Yd.encode(n,o.emoji),o.codeBlock&&Zd.encode(n,o.codeBlock),o.strike&&$d.encode(n,o.strike),d>=11&&o.translation&&Ii.encode(n,o.translation)},decode(n){const o=e.uint.decode(n);return{mention:1&o?Od.decode(n):null,httpLink:2&o?Jd.decode(n):null,pearLink:4&o?Gd.decode(n):null,bold:8&o?Qd.decode(n):null,italic:16&o?Wd.decode(n):null,code:32&o?Xd.decode(n):null,emoji:64&o?Yd.decode(n):null,codeBlock:128&o?Zd.decode(n):null,strike:256&o?$d.decode(n):null,translation:d>=11&&512&o?Ii.decode(n):null}}},en=e.array(e.frame(v)),dn=e.frame(_d),nn=e.frame(Md),on={preencode(d,n){d.end++,n.text&&e.string.preencode(d,n.text),n.files&&en.preencode(d,n.files),n.display&&dn.preencode(d,n.display),n.replyTo&&o.preencode(d,n.replyTo),n.parent&&o.preencode(d,n.parent),n.event&&nn.preencode(d,n.event)},encode(n,c){const t=(c.text?1:0)|(c.files?2:0)|(c.display?4:0)|(c.replyTo?8:0)|(c.parent?16:0)|(c.event?32:0)|(d>=18&&c.forwarded?64:0);e.uint.encode(n,t),c.text&&e.string.encode(n,c.text),c.files&&en.encode(n,c.files),c.display&&dn.encode(n,c.display),c.replyTo&&o.encode(n,c.replyTo),c.parent&&o.encode(n,c.parent),c.event&&nn.encode(n,c.event)},decode(n){const c=e.uint.decode(n);return{text:1&c?e.string.decode(n):null,files:2&c?en.decode(n):null,display:4&c?dn.decode(n):null,replyTo:8&c?o.decode(n):null,parent:16&c?o.decode(n):null,event:32&c?nn.decode(n):null,forwarded:d>=18&&!!(64&c)}}},cn=Nd,tn=dn,rn={preencode(d,n){d.end++,n.text&&e.string.preencode(d,n.text),n.files&&cn.preencode(d,n.files),n.display&&tn.preencode(d,n.display),n.replyTo&&o.preencode(d,n.replyTo),n.parent&&o.preencode(d,n.parent)},encode(n,c){const t=(c.text?1:0)|(c.files?2:0)|(c.display?4:0)|(c.replyTo?8:0)|(c.parent?16:0)|(d>=18&&c.forwarded?32:0);e.uint.encode(n,t),c.text&&e.string.encode(n,c.text),c.files&&cn.encode(n,c.files),c.display&&tn.encode(n,c.display),c.replyTo&&o.encode(n,c.replyTo),c.parent&&o.encode(n,c.parent)},decode(n){const c=e.uint.decode(n);return{text:1&c?e.string.decode(n):null,files:2&c?cn.decode(n):null,display:4&c?tn.decode(n):null,replyTo:8&c?o.decode(n):null,parent:16&c?o.decode(n):null,forwarded:d>=18&&!!(32&c)}}},an=en,sn=dn,pn={preencode(d,n){d.end++,n.text&&e.string.preencode(d,n.text),n.files&&an.preencode(d,n.files),n.display&&sn.preencode(d,n.display),n.replyTo&&o.preencode(d,n.replyTo),n.parent&&o.preencode(d,n.parent)},encode(n,c){const t=(c.text?1:0)|(c.files?2:0)|(c.display?4:0)|(c.replyTo?8:0)|(c.parent?16:0)|(d>=18&&c.forwarded?32:0);e.uint.encode(n,t),c.text&&e.string.encode(n,c.text),c.files&&an.encode(n,c.files),c.display&&sn.encode(n,c.display),c.replyTo&&o.encode(n,c.replyTo),c.parent&&o.encode(n,c.parent)},decode(n){const c=e.uint.decode(n);return{text:1&c?e.string.decode(n):null,files:2&c?an.decode(n):null,display:4&c?sn.decode(n):null,replyTo:8&c?o.decode(n):null,parent:16&c?o.decode(n):null,forwarded:d>=18&&!!(32&c)}}},un={preencode(e,d){e.end++},encode(d,n){const o=(n.isEdited?1:0)|(n.isDeleted?2:0)|(n.isPinned?4:0);e.uint.encode(d,o)},decode(d){const n=e.uint.decode(d);return{isEdited:!!(1&n),isDeleted:!!(2&n),isPinned:!!(4&n)}}},ln={preencode(d,n){e.uint.preencode(d,n.thread),e.uint.preencode(d,n.index)},encode(d,n){e.uint.encode(d,n.thread),e.uint.encode(d,n.index)},decode:d=>({thread:e.uint.decode(d),index:e.uint.decode(d)})},fn=e.frame(j),mn={preencode(d,n){e.uint.preencode(d,n.id),e.uint.preencode(d,n.count),d.end++,n.parent&&o.preencode(d,n.parent),n.stats&&fn.preencode(d,n.stats)},encode(d,n){const c=(n.parent?1:0)|(n.stats?2:0);e.uint.encode(d,n.id),e.uint.encode(d,n.count),e.uint.encode(d,c),n.parent&&o.encode(d,n.parent),n.stats&&fn.encode(d,n.stats)},decode(d){const n=e.uint.decode(d),c=e.uint.decode(d),t=e.uint.decode(d);return{id:n,count:c,parent:1&t?o.decode(d):null,stats:2&t?fn.decode(d):null}}},yn=e.frame(un),bn=e.frame(rn),xn=e.frame(Dd),kn={preencode(d,n){ln.preencode(d,n.id),o.preencode(d,n.oplog),e.uint.preencode(d,n.clock),e.uint.preencode(d,n.timestamp),d.end++,n.editedAt&&e.uint.preencode(d,n.editedAt),yn.preencode(d,n.status),n.message&&bn.preencode(d,n.message),n.event&&xn.preencode(d,n.event)},encode(d,n){const c=(n.editedAt?1:0)|(n.message?2:0)|(n.event?4:0);ln.encode(d,n.id),o.encode(d,n.oplog),e.uint.encode(d,n.clock),e.uint.encode(d,n.timestamp),e.uint.encode(d,c),n.editedAt&&e.uint.encode(d,n.editedAt),yn.encode(d,n.status),n.message&&bn.encode(d,n.message),n.event&&xn.encode(d,n.event)},decode(d){const n=ln.decode(d),c=o.decode(d),t=e.uint.decode(d),r=e.uint.decode(d),i=e.uint.decode(d);return{id:n,oplog:c,clock:t,timestamp:r,editedAt:1&i?e.uint.decode(d):0,status:yn.decode(d),message:2&i?bn.decode(d):null,event:4&i?xn.decode(d):null}}},vn=yn,gn=e.frame(pn),hn=xn,Kn={preencode(d,n){ln.preencode(d,n.id),o.preencode(d,n.oplog),e.uint.preencode(d,n.clock),e.uint.preencode(d,n.timestamp),d.end++,n.editedAt&&e.uint.preencode(d,n.editedAt),vn.preencode(d,n.status),n.message&&gn.preencode(d,n.message),n.event&&hn.preencode(d,n.event)},encode(d,n){const c=(n.editedAt?1:0)|(n.message?2:0)|(n.event?4:0);ln.encode(d,n.id),o.encode(d,n.oplog),e.uint.encode(d,n.clock),e.uint.encode(d,n.timestamp),e.uint.encode(d,c),n.editedAt&&e.uint.encode(d,n.editedAt),vn.encode(d,n.status),n.message&&gn.encode(d,n.message),n.event&&hn.encode(d,n.event)},decode(d){const n=ln.decode(d),c=o.decode(d),t=e.uint.decode(d),r=e.uint.decode(d),i=e.uint.decode(d);return{id:n,oplog:c,clock:t,timestamp:r,editedAt:1&i?e.uint.decode(d):0,status:vn.decode(d),message:2&i?gn.decode(d):null,event:4&i?hn.decode(d):null}}},wn=$,An=e.frame(on),Tn={preencode(e,d){wn.preencode(e,d.header),An.preencode(e,d.message)},encode(e,d){wn.encode(e,d.header),An.encode(e,d.message)},decode:e=>({header:wn.decode(e),message:An.decode(e)})},Pn=$,Sn={preencode(e,d){Pn.preencode(e,d.header),o.preencode(e,d.oplog)},encode(e,d){Pn.encode(e,d.header),o.encode(e,d.oplog)},decode:e=>({header:Pn.decode(e),oplog:o.decode(e)})},Rn=$,In=An,Cn={preencode(e,d){Rn.preencode(e,d.header),o.preencode(e,d.oplog),In.preencode(e,d.message)},encode(e,d){Rn.encode(e,d.header),o.encode(e,d.oplog),In.encode(e,d.message)},decode:e=>({header:Rn.decode(e),oplog:o.decode(e),message:In.decode(e)})},Dn=$,Mn={preencode(e,d){Dn.preencode(e,d.header),o.preencode(e,d.oplog),e.end++},encode(d,n){const c=n.isPinned?1:0;Dn.encode(d,n.header),o.encode(d,n.oplog),e.uint.encode(d,c)},decode:d=>({header:Dn.decode(d),oplog:o.decode(d),isPinned:!!(1&e.uint.decode(d))})},Fn={preencode(d,n){ln.preencode(d,n.id),e.fixed32.preencode(d,n.sender),e.uint.preencode(d,n.clock),e.string.preencode(d,n.reaction)},encode(d,n){ln.encode(d,n.id),e.fixed32.encode(d,n.sender),e.uint.encode(d,n.clock),e.string.encode(d,n.reaction)},decode:d=>({id:ln.decode(d),sender:e.fixed32.decode(d),clock:e.uint.decode(d),reaction:e.string.decode(d)})},qn={preencode(d,n){e.string.preencode(d,n.text),e.uint.preencode(d,n.count)},encode(d,n){e.string.encode(d,n.text),e.uint.encode(d,n.count)},decode:d=>({text:e.string.decode(d),count:e.uint.decode(d)})},Ln=e.array(e.frame(qn)),En={preencode(n,o){ln.preencode(n,o.id),e.uint.preencode(n,o.total),Ln.preencode(n,o.reactions),n.end++,d>=11&&o.editedAt&&e.uint.preencode(n,o.editedAt)},encode(n,o){const c=d>=11&&o.editedAt?1:0;ln.encode(n,o.id),e.uint.encode(n,o.total),Ln.encode(n,o.reactions),e.uint.encode(n,c),d>=11&&o.editedAt&&e.uint.encode(n,o.editedAt)},decode(n){const o=ln.decode(n),c=e.uint.decode(n),t=Ln.decode(n),r=n.start<n.end?e.uint.decode(n):0;return{id:o,total:c,reactions:t,editedAt:d>=11&&1&r?e.uint.decode(n):0}}},Bn=$,Hn={preencode(d,n){Bn.preencode(d,n.header),o.preencode(d,n.oplog),e.string.preencode(d,n.reaction)},encode(d,n){Bn.encode(d,n.header),o.encode(d,n.oplog),e.string.encode(d,n.reaction)},decode:d=>({header:Bn.decode(d),oplog:o.decode(d),reaction:e.string.decode(d)})},Nn=$,jn={preencode(d,n){Nn.preencode(d,n.header),o.preencode(d,n.oplog),e.string.preencode(d,n.reaction)},encode(d,n){Nn.encode(d,n.header),o.encode(d,n.oplog),e.string.encode(d,n.reaction)},decode:d=>({header:Nn.decode(d),oplog:o.decode(d),reaction:e.string.decode(d)})},zn=$,Un=e.frame(Y),Vn={preencode(d,n){zn.preencode(d,n.header),e.uint.preencode(d,n.key),Un.preencode(d,n.config)},encode(d,n){zn.encode(d,n.header),e.uint.encode(d,n.key),Un.encode(d,n.config)},decode:d=>({header:zn.decode(d),key:e.uint.decode(d),config:Un.decode(d)})},On={preencode(d,n){e.fixed32.preencode(d,n.memberKey),e.string.preencode(d,n.displayName),d.end++,n.avatar&&Ci.preencode(d,n.avatar)},encode(d,n){const o=n.avatar?1:0;e.fixed32.encode(d,n.memberKey),e.string.encode(d,n.displayName),e.uint.encode(d,o),n.avatar&&Ci.encode(d,n.avatar)},decode:d=>({memberKey:e.fixed32.decode(d),displayName:e.string.decode(d),avatar:1&e.uint.decode(d)?Ci.decode(d):null})},Jn={preencode(d,n){e.fixed32.preencode(d,n.key),d.end++,n.username&&e.string.preencode(d,n.username)},encode(d,n){const o=n.username?1:0;e.fixed32.encode(d,n.key),e.uint.encode(d,o),n.username&&e.string.encode(d,n.username)},decode:d=>({key:e.fixed32.decode(d),username:1&e.uint.decode(d)?e.string.decode(d):null})},Gn=e.frame(Jn),Qn={preencode(d,n){e.fixed32.preencode(d,n.publicKey),d.end++,n.discoveryCoreKey&&e.fixed32.preencode(d,n.discoveryCoreKey),n.userRegistry&&Gn.preencode(d,n.userRegistry)},encode(d,n){const o=(n.discoveryCoreKey?1:0)|(n.userRegistry?2:0);e.fixed32.encode(d,n.publicKey),e.uint.encode(d,o),n.discoveryCoreKey&&e.fixed32.encode(d,n.discoveryCoreKey),n.userRegistry&&Gn.encode(d,n.userRegistry)},decode(d){const n=e.fixed32.decode(d),o=e.uint.decode(d);return{publicKey:n,discoveryCoreKey:1&o?e.fixed32.decode(d):null,userRegistry:2&o?Gn.decode(d):null}}},Wn=$,Xn=e.frame(G),Yn=e.frame(Q),Zn=Un,$n=e.frame(Qn),_n=be,eo=e.array(e.frame(ue)),no={preencode(e,d){Wn.preencode(e,d.header),Xn.preencode(e,d.digest),Yn.preencode(e,d.capabilities),e.end++,d.config&&Zn.preencode(e,d.config),d.identity&&$n.preencode(e,d.identity),d.bootstrapDevice&&_n.preencode(e,d.bootstrapDevice),d.initialMembers&&eo.preencode(e,d.initialMembers)},encode(d,n){const o=(n.config?1:0)|(n.identity?2:0)|(n.bootstrapDevice?4:0)|(n.initialMembers?8:0);Wn.encode(d,n.header),Xn.encode(d,n.digest),Yn.encode(d,n.capabilities),e.uint.encode(d,o),n.config&&Zn.encode(d,n.config),n.identity&&$n.encode(d,n.identity),n.bootstrapDevice&&_n.encode(d,n.bootstrapDevice),n.initialMembers&&eo.encode(d,n.initialMembers)},decode(d){const n=Wn.decode(d),o=Xn.decode(d),c=Yn.decode(d),t=e.uint.decode(d);return{header:n,digest:o,capabilities:c,config:1&t?Zn.decode(d):null,identity:2&t?$n.decode(d):null,bootstrapDevice:4&t?_n.decode(d):null,initialMembers:8&t?eo.decode(d):null}}},oo=$,co={preencode(d,n){oo.preencode(d,n.header),e.uint.preencode(d,n.version)},encode(d,n){oo.encode(d,n.header),e.uint.encode(d,n.version)},decode:d=>({header:oo.decode(d),version:e.uint.decode(d)})},to=$,ro=J,io={preencode(d,n){to.preencode(d,n.header),e.uint.preencode(d,n.key),ro.preencode(d,n.settings)},encode(d,n){to.encode(d,n.header),e.uint.encode(d,n.key),ro.encode(d,n.settings)},decode:d=>({header:to.decode(d),key:e.uint.decode(d),settings:ro.decode(d)})},ao={preencode(n,o){e.fixed32.preencode(n,o.memberKey),Di.preencode(n,o.status),n.end++,o.mailbox&&e.fixed32.preencode(n,o.mailbox),o.roomKey&&e.fixed32.preencode(n,o.roomKey),d>=22&&o.contactInfo&&Mi.preencode(n,o.contactInfo),d>=22&&o.version&&e.uint.preencode(n,o.version),d>=24&&o.alias&&e.string.preencode(n,o.alias)},encode(n,o){const c=(o.mailbox?1:0)|(o.roomKey?2:0)|(d>=22&&o.contactInfo?4:0)|(d>=22&&o.version?8:0)|(d>=24&&o.alias?16:0);e.fixed32.encode(n,o.memberKey),Di.encode(n,o.status),e.uint.encode(n,c),o.mailbox&&e.fixed32.encode(n,o.mailbox),o.roomKey&&e.fixed32.encode(n,o.roomKey),d>=22&&o.contactInfo&&Mi.encode(n,o.contactInfo),d>=22&&o.version&&e.uint.encode(n,o.version),d>=24&&o.alias&&e.string.encode(n,o.alias)},decode(n){const o=e.fixed32.decode(n),c=Di.decode(n),t=e.uint.decode(n);return{memberKey:o,status:c,mailbox:1&t?e.fixed32.decode(n):null,roomKey:2&t?e.fixed32.decode(n):null,contactInfo:d>=22&&4&t?Mi.decode(n):null,version:d>=22&&8&t?e.uint.decode(n):0,alias:d>=24&&16&t?e.string.decode(n):null}}},so={preencode(d,o){e.fixed32.preencode(d,o.roomKey),e.buffer.preencode(d,o.encryptionKey),e.fixed32.preencode(d,o.seed),n.preencode(d,o.initiator),e.fixed32.preencode(d,o.fastForwardTo)},encode(d,o){e.fixed32.encode(d,o.roomKey),e.buffer.encode(d,o.encryptionKey),e.fixed32.encode(d,o.seed),n.encode(d,o.initiator),e.fixed32.encode(d,o.fastForwardTo)},decode:d=>({roomKey:e.fixed32.decode(d),encryptionKey:e.buffer.decode(d),seed:e.fixed32.decode(d),initiator:n.decode(d),fastForwardTo:e.fixed32.decode(d)})},po=e.array(e.frame(so)),uo=X,lo={preencode(e,d){po.preencode(e,d.sharedRooms),uo.preencode(e,d.blockedContacts)},encode(e,d){po.encode(e,d.sharedRooms),uo.encode(e,d.blockedContacts)},decode:e=>({sharedRooms:po.decode(e),blockedContacts:uo.decode(e)})},fo=$n,mo={preencode(e,d){fo.preencode(e,d.identity)},encode(e,d){fo.encode(e,d.identity)},decode:e=>({identity:fo.decode(e)})},yo={preencode(d,n){e.uint.preencode(d,n.rooms),e.uint.preencode(d,n.contacts)},encode(d,n){e.uint.encode(d,n.rooms),e.uint.encode(d,n.contacts)},decode:d=>({rooms:e.uint.decode(d),contacts:e.uint.decode(d)})},bo={preencode(d,n){e.uint.preencode(d,n.rooms),e.uint.preencode(d,n.contactRequests)},encode(d,n){e.uint.encode(d,n.rooms),e.uint.encode(d,n.contactRequests)},decode:d=>({rooms:e.uint.decode(d),contactRequests:e.uint.decode(d)})},xo={preencode(d,n){e.buffer.preencode(d,n.entropy)},encode(d,n){e.buffer.encode(d,n.entropy)},decode:d=>({entropy:e.buffer.decode(d)})},ko={preencode(d,n){e.fixed32.preencode(d,n.publicKey),e.fixed32.preencode(d,n.devicePublicKey),e.fixed32.preencode(d,n.writerKey)},encode(d,n){e.fixed32.encode(d,n.publicKey),e.fixed32.encode(d,n.devicePublicKey),e.fixed32.encode(d,n.writerKey)},decode:d=>({publicKey:e.fixed32.decode(d),devicePublicKey:e.fixed32.decode(d),writerKey:e.fixed32.decode(d)})},vo=e.frame(ko),go={preencode(o,c){e.fixed32.preencode(o,c.id),e.fixed32.preencode(o,c.invitationSeed),e.fixed32.preencode(o,c.mailbox),t.preencode(o,c.responseKeyPair),n.preencode(o,c.initiator),n.preencode(o,c.inviter),o.end++,c.identity&&vo.preencode(o,c.identity),d>=20&&c.buildType&&Nt.preencode(o,c.buildType)},encode(o,c){const r=(c.identity?1:0)|(d>=20&&c.buildType?2:0);e.fixed32.encode(o,c.id),e.fixed32.encode(o,c.invitationSeed),e.fixed32.encode(o,c.mailbox),t.encode(o,c.responseKeyPair),n.encode(o,c.initiator),n.encode(o,c.inviter),e.uint.encode(o,r),c.identity&&vo.encode(o,c.identity),d>=20&&c.buildType&&Nt.encode(o,c.buildType)},decode(o){const c=e.fixed32.decode(o),r=e.fixed32.decode(o),i=e.fixed32.decode(o),a=t.decode(o),s=n.decode(o),p=n.decode(o),u=e.uint.decode(o);return{id:c,invitationSeed:r,mailbox:i,responseKeyPair:a,initiator:s,inviter:p,identity:1&u?vo.decode(o):null,buildType:d>=20&&2&u?Nt.decode(o):null}}},ho=$,Ko={preencode(d,n){ho.preencode(d,n.header),e.buffer.preencode(d,n.blindResponse)},encode(d,n){ho.encode(d,n.header),e.buffer.encode(d,n.blindResponse)},decode:d=>({header:ho.decode(d),blindResponse:e.buffer.decode(d)})},wo=$,Ao=e.frame(go),To={preencode(e,d){wo.preencode(e,d.header),Ao.preencode(e,d.invitation)},encode(e,d){wo.encode(e,d.header),Ao.encode(e,d.invitation)},decode:e=>({header:wo.decode(e),invitation:Ao.decode(e)})},Po=$,So={preencode(d,n){Po.preencode(d,n.header),e.fixed32.preencode(d,n.id)},encode(d,n){Po.encode(d,n.header),e.fixed32.encode(d,n.id)},decode:d=>({header:Po.decode(d),id:e.fixed32.decode(d)})},Ro={preencode(d,n){e.fixed32.preencode(d,n.publicKey),e.fixed32.preencode(d,n.devicePublicKey),d.end++,n.privateProfileKey&&e.fixed32.preencode(d,n.privateProfileKey),n.deviceKeyPair&&t.preencode(d,n.deviceKeyPair),e.buffer.preencode(d,n.deviceProof)},encode(d,n){const o=(n.privateProfileKey?1:0)|(n.deviceKeyPair?2:0);e.fixed32.encode(d,n.publicKey),e.fixed32.encode(d,n.devicePublicKey),e.uint.encode(d,o),n.privateProfileKey&&e.fixed32.encode(d,n.privateProfileKey),n.deviceKeyPair&&t.encode(d,n.deviceKeyPair),e.buffer.encode(d,n.deviceProof)},decode(d){const n=e.fixed32.decode(d),o=e.fixed32.decode(d),c=e.uint.decode(d);return{publicKey:n,devicePublicKey:o,privateProfileKey:1&c?e.fixed32.decode(d):null,deviceKeyPair:2&c?t.decode(d):null,deviceProof:e.buffer.decode(d)}}},Io={preencode(e,d){e.end++},encode(n,o){const c=(o.isActive?1:0)|(o.isFullyMuted?2:0)|(o.isMentionsOnlyMuted?4:0)|(d>=9&&o.isReadOnly?8:0)|(d>=18&&o.isFavorite?16:0)|(d>=21&&o.isUnread?32:0);e.uint.encode(n,c)},decode(n){const o=e.uint.decode(n);return{isActive:!!(1&o),isFullyMuted:!!(2&o),isMentionsOnlyMuted:!!(4&o),isReadOnly:d>=9&&!!(8&o),isFavorite:d>=18&&!!(16&o),isUnread:d>=21&&!!(32&o)}}},Co=e.frame(Io),Do=e.frame(Ro),Mo=vo,Fo={preencode(o,c){e.fixed32.preencode(o,c.roomKey),e.buffer.preencode(o,c.encryptionKey),e.fixed32.preencode(o,c.mailbox),Co.preencode(o,c.status),e.uint.preencode(o,c.clock),o.end++,c.initiator&&n.preencode(o,c.initiator),c.fastForwardTo&&e.fixed32.preencode(o,c.fastForwardTo),c.identitySwap&&Do.preencode(o,c.identitySwap),d>=6&&c.identitySwapV2&&Mo.preencode(o,c.identitySwapV2),d>=10&&c.contact&&e.fixed32.preencode(o,c.contact)},encode(o,c){const t=(c.initiator?1:0)|(c.fastForwardTo?2:0)|(c.identitySwap?4:0)|(d>=6&&c.identitySwapV2?8:0)|(d>=10&&c.contact?16:0);e.fixed32.encode(o,c.roomKey),e.buffer.encode(o,c.encryptionKey),e.fixed32.encode(o,c.mailbox),Co.encode(o,c.status),e.uint.encode(o,c.clock),e.uint.encode(o,t),c.initiator&&n.encode(o,c.initiator),c.fastForwardTo&&e.fixed32.encode(o,c.fastForwardTo),c.identitySwap&&Do.encode(o,c.identitySwap),d>=6&&c.identitySwapV2&&Mo.encode(o,c.identitySwapV2),d>=10&&c.contact&&e.fixed32.encode(o,c.contact)},decode(o){const c=e.fixed32.decode(o),t=e.buffer.decode(o),r=e.fixed32.decode(o),i=Co.decode(o),a=e.uint.decode(o),s=e.uint.decode(o);return{roomKey:c,encryptionKey:t,mailbox:r,status:i,clock:a,initiator:1&s?n.decode(o):null,fastForwardTo:2&s?e.fixed32.decode(o):null,identitySwap:4&s?Do.decode(o):null,identitySwapV2:d>=6&&8&s?Mo.decode(o):null,contact:d>=10&&16&s?e.fixed32.decode(o):null}}},qo=$,Lo={preencode(d,o){qo.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey),e.buffer.preencode(d,o.encryptionKey),e.fixed32.preencode(d,o.mailbox),d.end++,o.fastForwardTo&&e.fixed32.preencode(d,o.fastForwardTo),o.initiator&&n.preencode(d,o.initiator),o.dm&&e.fixed32.preencode(d,o.dm)},encode(o,c){const t=(c.fastForwardTo?1:0)|(c.initiator?2:0)|(c.dm?4:0)|(d>=9&&c.isReadOnly?8:0);qo.encode(o,c.header),e.fixed32.encode(o,c.roomKey),e.buffer.encode(o,c.encryptionKey),e.fixed32.encode(o,c.mailbox),e.uint.encode(o,t),c.fastForwardTo&&e.fixed32.encode(o,c.fastForwardTo),c.initiator&&n.encode(o,c.initiator),c.dm&&e.fixed32.encode(o,c.dm)},decode(o){const c=qo.decode(o),t=e.fixed32.decode(o),r=e.buffer.decode(o),i=e.fixed32.decode(o),a=e.uint.decode(o);return{header:c,roomKey:t,encryptionKey:r,mailbox:i,fastForwardTo:1&a?e.fixed32.decode(o):null,initiator:2&a?n.decode(o):null,dm:4&a?e.fixed32.decode(o):null,isReadOnly:d>=9&&!!(8&a)}}},Eo=$,Bo={preencode(d,n){Eo.preencode(d,n.header),e.fixed32.preencode(d,n.discoveryKey)},encode(d,n){Eo.encode(d,n.header),e.fixed32.encode(d,n.discoveryKey)},decode:d=>({header:Eo.decode(d),discoveryKey:e.fixed32.decode(d)})},Ho=$,No=Co,jo={preencode(d,n){Ho.preencode(d,n.header),e.fixed32.preencode(d,n.roomKey),e.uint.preencode(d,n.key),No.preencode(d,n.status)},encode(d,n){Ho.encode(d,n.header),e.fixed32.encode(d,n.roomKey),e.uint.encode(d,n.key),No.encode(d,n.status)},decode:d=>({header:Ho.decode(d),roomKey:e.fixed32.decode(d),key:e.uint.decode(d),status:No.decode(d)})},zo={preencode(e,d){e.end++},encode(n,o){const c=(o.isBlocked?1:0)|(d>=22&&o.isActive?2:0);e.uint.encode(n,c)},decode(n){const o=e.uint.decode(n);return{isBlocked:!!(1&o),isActive:d>=22&&!!(2&o)}}},Uo={preencode(n,o){e.fixed32.preencode(n,o.memberKey),e.uint.preencode(n,o.clock),Fi.preencode(n,o.status),n.end++,o.mailbox&&e.fixed32.preencode(n,o.mailbox),o.roomKey&&e.fixed32.preencode(n,o.roomKey),d>=22&&o.contactInfo&&qi.preencode(n,o.contactInfo),d>=24&&o.alias&&e.string.preencode(n,o.alias)},encode(n,o){const c=(o.mailbox?1:0)|(o.roomKey?2:0)|(d>=22&&o.contactInfo?4:0)|(d>=24&&o.alias?8:0);e.fixed32.encode(n,o.memberKey),e.uint.encode(n,o.clock),Fi.encode(n,o.status),e.uint.encode(n,c),o.mailbox&&e.fixed32.encode(n,o.mailbox),o.roomKey&&e.fixed32.encode(n,o.roomKey),d>=22&&o.contactInfo&&qi.encode(n,o.contactInfo),d>=24&&o.alias&&e.string.encode(n,o.alias)},decode(n){const o=e.fixed32.decode(n),c=e.uint.decode(n),t=Fi.decode(n),r=e.uint.decode(n);return{memberKey:o,clock:c,status:t,mailbox:1&r?e.fixed32.decode(n):null,roomKey:2&r?e.fixed32.decode(n):null,contactInfo:d>=22&&4&r?qi.decode(n):null,alias:d>=24&&8&r?e.string.decode(n):null}}},Vo=$,Oo=e.frame(ao),Jo={preencode(e,d){Vo.preencode(e,d.header),Oo.preencode(e,d.contact)},encode(e,d){Vo.encode(e,d.header),Oo.encode(e,d.contact)},decode:e=>({header:Vo.decode(e),contact:Oo.decode(e)})},Go=$,Qo={preencode(d,n){Go.preencode(d,n.header),e.fixed32.preencode(d,n.memberKey),e.uint.preencode(d,n.key),Li.preencode(d,n.status)},encode(d,n){Go.encode(d,n.header),e.fixed32.encode(d,n.memberKey),e.uint.encode(d,n.key),Li.encode(d,n.status)},decode:d=>({header:Go.decode(d),memberKey:e.fixed32.decode(d),key:e.uint.decode(d),status:Li.decode(d)})},Wo=$,Xo={preencode(d,n){Wo.preencode(d,n.header),e.fixed32.preencode(d,n.memberKey)},encode(d,n){Wo.encode(d,n.header),e.fixed32.encode(d,n.memberKey)},decode:d=>({header:Wo.decode(d),memberKey:e.fixed32.decode(d)})},Yo={preencode(e,d){e.end++},encode(d,n){const o=(n.isPending?1:0)|(n.isAccepted?2:0)|(n.isRejected?4:0)|(n.isDiscarded?8:0)|(n.isSeen?16:0);e.uint.encode(d,o)},decode(d){const n=e.uint.decode(d);return{isPending:!!(1&n),isAccepted:!!(2&n),isRejected:!!(4&n),isDiscarded:!!(8&n),isSeen:!!(16&n)}}},Zo=xe,$o=e.frame(r),_o={preencode(d,n){Zo.preencode(d,n.sender),$o.preencode(d,n.keys),e.fixed32.preencode(d,n.mailbox),d.end++,n.message&&e.string.preencode(d,n.message)},encode(d,n){const o=n.message?1:0;Zo.encode(d,n.sender),$o.encode(d,n.keys),e.fixed32.encode(d,n.mailbox),e.uint.encode(d,o),n.message&&e.string.encode(d,n.message)},decode:d=>({sender:Zo.decode(d),keys:$o.decode(d),mailbox:e.fixed32.decode(d),message:1&e.uint.decode(d)?e.string.decode(d):null})},ec=e.frame(_o),dc={preencode(e,d){ec.preencode(e,d.body),oe.preencode(e,d.attestation)},encode(e,d){ec.encode(e,d.body),oe.encode(e,d.attestation)},decode:e=>({body:ec.decode(e),attestation:oe.decode(e)})},nc=pe,oc=e.frame(Yo),cc=$o,tc={preencode(n,o){e.fixed32.preencode(n,o.memberKey),e.uint.preencode(n,o.clock),nc.preencode(n,o.sender),oc.preencode(n,o.status),cc.preencode(n,o.keys),e.fixed32.preencode(n,o.mailbox),n.end++,o.message&&e.string.preencode(n,o.message),d>=11&&o.sentAt&&e.uint.preencode(n,o.sentAt),d>=22&&o.contactInfo&&Ei.preencode(n,o.contactInfo)},encode(n,o){const c=(o.message?1:0)|(d>=11&&o.sentAt?2:0)|(d>=22&&o.contactInfo?4:0);e.fixed32.encode(n,o.memberKey),e.uint.encode(n,o.clock),nc.encode(n,o.sender),oc.encode(n,o.status),cc.encode(n,o.keys),e.fixed32.encode(n,o.mailbox),e.uint.encode(n,c),o.message&&e.string.encode(n,o.message),d>=11&&o.sentAt&&e.uint.encode(n,o.sentAt),d>=22&&o.contactInfo&&Ei.encode(n,o.contactInfo)},decode(n){const o=e.fixed32.decode(n),c=e.uint.decode(n),t=nc.decode(n),r=oc.decode(n),i=cc.decode(n),a=e.fixed32.decode(n),s=e.uint.decode(n);return{memberKey:o,clock:c,sender:t,status:r,keys:i,mailbox:a,message:1&s?e.string.decode(n):null,sentAt:d>=11&&2&s?e.uint.decode(n):0,contactInfo:d>=22&&4&s?Ei.decode(n):null}}},rc=$,ic={preencode(d,n){rc.preencode(d,n.header),e.buffer.preencode(d,n.blindRequest)},encode(d,n){rc.encode(d,n.header),e.buffer.encode(d,n.blindRequest)},decode:d=>({header:rc.decode(d),blindRequest:e.buffer.decode(d)})},ac=$,sc=oc,pc={preencode(n,o){ac.preencode(n,o.header),e.fixed32.preencode(n,o.memberKey),e.uint.preencode(n,o.key),sc.preencode(n,o.status),n.end++,d>=10&&o.roomKey&&e.fixed32.preencode(n,o.roomKey)},encode(n,o){const c=d>=10&&o.roomKey?1:0;ac.encode(n,o.header),e.fixed32.encode(n,o.memberKey),e.uint.encode(n,o.key),sc.encode(n,o.status),e.uint.encode(n,c),d>=10&&o.roomKey&&e.fixed32.encode(n,o.roomKey)},decode(n){const o=ac.decode(n),c=e.fixed32.decode(n),t=e.uint.decode(n),r=sc.decode(n),i=n.start<n.end?e.uint.decode(n):0;return{header:o,memberKey:c,key:t,status:r,roomKey:d>=10&&1&i?e.fixed32.decode(n):null}}},uc={preencode(d,n){e.uint.preencode(d,n.timestamp),e.fixed32.preencode(d,n.key),e.fixed32.preencode(d,n.mailbox)},encode(d,n){e.uint.encode(d,n.timestamp),e.fixed32.encode(d,n.key),e.fixed32.encode(d,n.mailbox)},decode:d=>({version:e.uint.decode(d),timestamp:e.uint.decode(d),key:e.fixed32.decode(d),mailbox:e.fixed32.decode(d)})},lc={preencode(d,n){switch(e.uint.preencode(d,n.version),n.version){case 0:case 1:uc.preencode(d,n);break;default:throw new Error("Unsupported version")}},encode(d,n){switch(e.uint.encode(d,n.version),n.version){case 0:case 1:uc.encode(d,n);break;default:throw new Error("Unsupported version")}},decode(d){const n=d.start,o=e.uint.decode(d);switch(d.start=n,o){case 0:case 1:return uc.decode(d);default:throw new Error("Unsupported version")}}},fc=$,mc={preencode(n,c){fc.preencode(n,c.header),o.preencode(n,c.oplog),e.uint.preencode(n,c.index),Bi.preencode(n,c.preview),n.end++,d>=7&&c.displayType&&Pc.preencode(n,c.displayType)},encode(n,c){const t=d>=7&&c.displayType?1:0;fc.encode(n,c.header),o.encode(n,c.oplog),e.uint.encode(n,c.index),Bi.encode(n,c.preview),e.uint.encode(n,t),d>=7&&c.displayType&&Pc.encode(n,c.displayType)},decode(n){const c=fc.decode(n),t=o.decode(n),r=e.uint.decode(n),i=Bi.decode(n),a=n.start<n.end?e.uint.decode(n):0;return{header:c,oplog:t,index:r,preview:i,displayType:d>=7&&1&a?Pc.decode(n):0}}},yc={preencode(n,o){n.end++,d>=3&&o.memberKey&&e.fixed32.preencode(n,o.memberKey)},encode(n,o){const c=d>=3&&o.memberKey?1:0;e.uint.encode(n,c),d>=3&&o.memberKey&&e.fixed32.encode(n,o.memberKey)},decode(n){const o=e.uint.decode(n);return{memberKey:d>=3&&1&o?e.fixed32.decode(n):null}}},bc=pe,xc={preencode(e,d){bc.preencode(e,d.profile),oe.preencode(e,d.attestation)},encode(e,d){bc.encode(e,d.profile),oe.encode(e,d.attestation)},decode:e=>({profile:bc.decode(e),attestation:oe.decode(e)})},kc=$,vc={preencode(d,n){kc.preencode(d,n.header),e.fixed32.preencode(d,n.key)},encode(d,n){kc.encode(d,n.header),e.fixed32.encode(d,n.key)},decode:d=>({header:kc.decode(d),key:e.fixed32.decode(d)})},gc={preencode(d,n){e.fixed32.preencode(d,n.deviceKey),oe.preencode(d,n.privateProfileIdentity),e.buffer.preencode(d,n.deviceProof)},encode(d,n){e.fixed32.encode(d,n.deviceKey),oe.encode(d,n.privateProfileIdentity),e.buffer.encode(d,n.deviceProof)},decode:d=>({deviceKey:e.fixed32.decode(d),privateProfileIdentity:oe.decode(d),deviceProof:e.buffer.decode(d)})},hc={preencode(n,o){e.fixed32.preencode(n,o.roomKey),e.fixed32.preencode(n,o.encryptionKey),e.fixed32.preencode(n,o.seed),n.end++,d>=6&&o.fastForwardTo&&e.fixed32.preencode(n,o.fastForwardTo)},encode(n,o){const c=d>=6&&o.fastForwardTo?1:0;e.fixed32.encode(n,o.roomKey),e.fixed32.encode(n,o.encryptionKey),e.fixed32.encode(n,o.seed),e.uint.encode(n,c),d>=6&&o.fastForwardTo&&e.fixed32.encode(n,o.fastForwardTo)},decode(n){const o=e.fixed32.decode(n),c=e.fixed32.decode(n),t=e.fixed32.decode(n),r=e.uint.decode(n);return{roomKey:o,encryptionKey:c,seed:t,fastForwardTo:d>=6&&1&r?e.fixed32.decode(n):null}}},Kc={preencode(n,o){e.fixed32.preencode(n,o.publicKey),e.fixed32.preencode(n,o.writerKey),e.fixed32.preencode(n,o.devicePublicKey),n.end++,d>=6&&o.privateProfileKey&&e.fixed32.preencode(n,o.privateProfileKey)},encode(n,o){const c=d>=6&&o.privateProfileKey?1:0;e.fixed32.encode(n,o.publicKey),e.fixed32.encode(n,o.writerKey),e.fixed32.encode(n,o.devicePublicKey),e.uint.encode(n,c),d>=6&&o.privateProfileKey&&e.fixed32.encode(n,o.privateProfileKey)},decode(n){const o=e.fixed32.decode(n),c=e.fixed32.decode(n),t=e.fixed32.decode(n),r=e.uint.decode(n);return{publicKey:o,writerKey:c,devicePublicKey:t,privateProfileKey:d>=6&&1&r?e.fixed32.decode(n):null}}},wc=$,Ac={preencode(d,n){wc.preencode(d,n.header),e.fixed32.preencode(d,n.memberKey)},encode(d,n){wc.encode(d,n.header),e.fixed32.encode(d,n.memberKey)},decode:d=>({header:wc.decode(d),memberKey:e.fixed32.decode(d)})},Tc={HttpLink:1,PearLink:2},Pc={preencode(e,d){e.end++},encode(d,n){if(n>2)throw new Error("Unknown enum");e.uint.encode(d,n)},decode:d=>e.uint.decode(d)},Sc=$,Rc={preencode(d,n){Sc.preencode(d,n.header),e.uint.preencode(d,n.value)},encode(d,n){Sc.encode(d,n.header),e.uint.encode(d,n.value)},decode:d=>({header:Sc.decode(d),value:e.uint.decode(d)})},Ic={preencode(d,n){e.uint.preencode(d,n.key),e.uint.preencode(d,n.value)},encode(d,n){e.uint.encode(d,n.key),e.uint.encode(d,n.value)},decode:d=>({key:e.uint.decode(d),value:e.uint.decode(d)})},Cc=$,Dc={preencode(n,o){Cc.preencode(n,o.header),e.uint.preencode(n,o.from),e.uint.preencode(n,o.to),n.end++,d>=20&&o.buildType&&Nt.preencode(n,o.buildType)},encode(n,o){const c=d>=20&&o.buildType?1:0;Cc.encode(n,o.header),e.uint.encode(n,o.from),e.uint.encode(n,o.to),e.uint.encode(n,c),d>=20&&o.buildType&&Nt.encode(n,o.buildType)},decode(n){const o=Cc.decode(n),c=e.uint.decode(n),t=e.uint.decode(n),r=n.start<n.end?e.uint.decode(n):0;return{header:o,from:c,to:t,buildType:d>=20&&1&r?Nt.decode(n):null}}},Mc={RoomType:1,IsExperimental:2,IsJoiningDisabled:3,IsAppendingDisabled:4,IsCallingDisabled:5,IsMembershipEventsDisabled:6,IsAttachmentsDisabled:7,IsLinksDisabled:8,IsRoomInviteHidden:9},Fc={preencode(e,d){e.end++},encode(d,n){if(n>9)throw new Error("Unknown enum");e.uint.encode(d,n)},decode:d=>e.uint.decode(d)},qc={en:"en",it:"it",ru:"ru",es:"es",de:"de"},Lc={preencode(e,d){e.end++},encode(d,n){switch(n){case"en":e.uint.encode(d,1);break;case"it":e.uint.encode(d,2);break;case"ru":e.uint.encode(d,3);break;case"es":e.uint.encode(d,4);break;case"de":e.uint.encode(d,5);break;default:throw new Error("Unknown enum")}},decode(d){switch(e.uint.decode(d)){case 1:return"en";case 2:return"it";case 3:return"ru";case 4:return"es";case 5:return"de";default:return null}}},Ec=qd,Bc={preencode(d,n){Ec.preencode(d,n.range),Lc.preencode(d,n.language),e.string.preencode(d,n.text)},encode(d,n){Ec.encode(d,n.range),Lc.encode(d,n.language),e.string.encode(d,n.text)},decode:d=>({range:Ec.decode(d),language:Lc.decode(d),text:e.string.decode(d)})},Hc={preencode(d,n){e.fixed32.preencode(d,n.deviceKey),e.fixed32.preencode(d,n.key)},encode(d,n){e.fixed32.encode(d,n.deviceKey),e.fixed32.encode(d,n.key)},decode:d=>({deviceKey:e.fixed32.decode(d),key:e.fixed32.decode(d)})},Nc=$,jc={preencode(d,n){Nc.preencode(d,n.header),e.fixed32.preencode(d,n.key)},encode(d,n){Nc.encode(d,n.header),e.fixed32.encode(d,n.key)},decode:d=>({header:Nc.decode(d),key:e.fixed32.decode(d)})},zc=$,Uc={preencode(d,n){zc.preencode(d,n.header),e.fixed32.preencode(d,n.key)},encode(d,n){zc.encode(d,n.header),e.fixed32.encode(d,n.key)},decode:d=>({header:zc.decode(d),key:e.fixed32.decode(d)})},Vc={Flag:1},Oc={preencode(e,d){e.end++},encode(d,n){if(n>1)throw new Error("Unknown enum");e.uint.encode(d,n)},decode:d=>e.uint.decode(d)},Jc={preencode(d,n){ln.preencode(d,n.id),e.fixed32.preencode(d,n.sender),e.uint.preencode(d,n.clock),Oc.preencode(d,n.label)},encode(d,n){ln.encode(d,n.id),e.fixed32.encode(d,n.sender),e.uint.encode(d,n.clock),Oc.encode(d,n.label)},decode:d=>({id:ln.decode(d),sender:e.fixed32.decode(d),clock:e.uint.decode(d),label:Oc.decode(d)})},Gc=$,Qc={preencode(e,d){Gc.preencode(e,d.header),o.preencode(e,d.oplog),Oc.preencode(e,d.label)},encode(e,d){Gc.encode(e,d.header),o.encode(e,d.oplog),Oc.encode(e,d.label)},decode:e=>({header:Gc.decode(e),oplog:o.decode(e),label:Oc.decode(e)})},Wc=$,Xc={preencode(e,d){Wc.preencode(e,d.header),o.preencode(e,d.oplog),Oc.preencode(e,d.label)},encode(e,d){Wc.encode(e,d.header),o.encode(e,d.oplog),Oc.encode(e,d.label)},decode:e=>({header:Wc.decode(e),oplog:o.decode(e),label:Oc.decode(e)})},Yc={preencode(d,n){Oc.preencode(d,n.label),e.uint.preencode(d,n.count)},encode(d,n){Oc.encode(d,n.label),e.uint.encode(d,n.count)},decode:d=>({label:Oc.decode(d),count:e.uint.decode(d)})},Zc=e.array(e.frame(Yc)),$c={preencode(n,o){ln.preencode(n,o.id),e.uint.preencode(n,o.total),Zc.preencode(n,o.labels),e.uint.preencode(n,o.editedAt),n.end++,d>=15&&o.flagsClock&&e.uint.preencode(n,o.flagsClock),d>=15&&o.version&&e.uint.preencode(n,o.version)},encode(n,o){const c=(d>=15&&o.flagsClock?1:0)|(d>=15&&o.version?2:0)|(d>=16&&o.isDeleted?4:0);ln.encode(n,o.id),e.uint.encode(n,o.total),Zc.encode(n,o.labels),e.uint.encode(n,o.editedAt),e.uint.encode(n,c),d>=15&&o.flagsClock&&e.uint.encode(n,o.flagsClock),d>=15&&o.version&&e.uint.encode(n,o.version)},decode(n){const o=ln.decode(n),c=e.uint.decode(n),t=Zc.decode(n),r=e.uint.decode(n),i=n.start<n.end?e.uint.decode(n):0;return{id:o,total:c,labels:t,editedAt:r,flagsClock:d>=15&&1&i?e.uint.decode(n):0,version:d>=15&&2&i?e.uint.decode(n):0,isDeleted:d>=16&&!!(4&i)}}},_c=$,et={preencode(d,n){_c.preencode(d,n.header),e.uint.preencode(d,n.length)},encode(d,n){_c.encode(d,n.header),e.uint.encode(d,n.length)},decode:d=>({header:_c.decode(d),length:e.uint.decode(d)})},dt={preencode(d,n){e.fixed32.preencode(d,n.memberKey),e.uint.preencode(d,n.length)},encode(d,n){e.fixed32.encode(d,n.memberKey),e.uint.encode(d,n.length)},decode:d=>({memberKey:e.fixed32.decode(d),length:e.uint.decode(d)})},nt=Z,ot={preencode(n,o){n.end++,d>=23&&o.profileSnoozeTime&&e.uint.preencode(n,o.profileSnoozeTime)},encode(n,o){const c=(d>=13&&o.disableReadReceipts?1:0)|(d>=21&&o.stripAttachmentMetadata?2:0)|(d>=23&&o.profileSnoozeTime?4:0);e.uint.encode(n,c),d>=23&&o.profileSnoozeTime&&e.uint.encode(n,o.profileSnoozeTime)},decode(n){const o=e.uint.decode(n);return{disableReadReceipts:d>=13&&!!(1&o),stripAttachmentMetadata:d>=21&&!!(2&o),profileSnoozeTime:d>=23&&4&o?e.uint.decode(n):0}}},ct={disableReadReceipts:"disableReadReceipts",stripAttachmentMetadata:"stripAttachmentMetadata",profileSnoozeTime:"profileSnoozeTime"},tt={preencode(e,d){e.end++},encode(d,n){switch(n){case"disableReadReceipts":e.uint.encode(d,1);break;case"stripAttachmentMetadata":e.uint.encode(d,2);break;case"profileSnoozeTime":e.uint.encode(d,3);break;default:throw new Error("Unknown enum")}},decode(d){switch(e.uint.decode(d)){case 1:return"disableReadReceipts";case 2:return"stripAttachmentMetadata";case 3:return"profileSnoozeTime";default:return null}}},rt=$,it=e.frame(ot),at={preencode(e,d){rt.preencode(e,d.header),tt.preencode(e,d.key),it.preencode(e,d.settings)},encode(e,d){rt.encode(e,d.header),tt.encode(e,d.key),it.encode(e,d.settings)},decode:e=>({header:rt.decode(e),key:tt.decode(e),settings:it.decode(e)})},st={Flag:1},pt={preencode(e,d){e.end++},encode(d,n){if(n>1)throw new Error("Unknown enum");e.uint.encode(d,n)},decode:d=>e.uint.decode(d)},ut={preencode(d,n){e.fixed32.preencode(d,n.key),e.fixed32.preencode(d,n.sender),e.uint.preencode(d,n.clock),pt.preencode(d,n.label)},encode(d,n){e.fixed32.encode(d,n.key),e.fixed32.encode(d,n.sender),e.uint.encode(d,n.clock),pt.encode(d,n.label)},decode:d=>({key:e.fixed32.decode(d),sender:e.fixed32.decode(d),clock:e.uint.decode(d),label:pt.decode(d)})},lt=$,ft={preencode(d,n){lt.preencode(d,n.header),e.fixed32.preencode(d,n.key),pt.preencode(d,n.label)},encode(d,n){lt.encode(d,n.header),e.fixed32.encode(d,n.key),pt.encode(d,n.label)},decode:d=>({header:lt.decode(d),key:e.fixed32.decode(d),label:pt.decode(d)})},mt={preencode(d,n){pt.preencode(d,n.label),e.uint.preencode(d,n.count)},encode(d,n){pt.encode(d,n.label),e.uint.encode(d,n.count)},decode:d=>({label:pt.decode(d),count:e.uint.decode(d)})},yt=e.array(e.frame(mt)),bt={preencode(d,n){e.fixed32.preencode(d,n.key),e.uint.preencode(d,n.total),yt.preencode(d,n.labels),e.uint.preencode(d,n.editedAt),e.uint.preencode(d,n.flagsClock)},encode(d,n){e.fixed32.encode(d,n.key),e.uint.encode(d,n.total),yt.encode(d,n.labels),e.uint.encode(d,n.editedAt),e.uint.encode(d,n.flagsClock)},decode:d=>({key:e.fixed32.decode(d),total:e.uint.decode(d),labels:yt.decode(d),editedAt:e.uint.decode(d),flagsClock:e.uint.decode(d)})},xt={preencode(d,n){e.float64.preencode(d,n.latitude),e.float64.preencode(d,n.longitude)},encode(d,n){e.float64.encode(d,n.latitude),e.float64.encode(d,n.longitude)},decode:d=>({latitude:e.float64.decode(d),longitude:e.float64.decode(d)})},kt=$,vt={preencode(d,n){kt.preencode(d,n.header),e.fixed32.preencode(d,n.deviceKey),e.fixed32.preencode(d,n.fromDeviceKey)},encode(d,n){kt.encode(d,n.header),e.fixed32.encode(d,n.deviceKey),e.fixed32.encode(d,n.fromDeviceKey)},decode:d=>({header:kt.decode(d),deviceKey:e.fixed32.decode(d),fromDeviceKey:e.fixed32.decode(d)})},gt=$,ht=X,Kt={preencode(n,o){gt.preencode(n,o.header),e.fixed32.preencode(n,o.callKey),e.buffer.preencode(n,o.encryptionKey),n.end++,d>=19&&o.streams&&ht.preencode(n,o.streams),d>=19&&o.discoveryKey&&e.fixed32.preencode(n,o.discoveryKey),d>=19&&o.version&&e.uint.preencode(n,o.version)},encode(n,o){const c=(d>=19&&o.streams?1:0)|(d>=19&&o.discoveryKey?2:0)|(d>=19&&o.version?4:0);gt.encode(n,o.header),e.fixed32.encode(n,o.callKey),e.buffer.encode(n,o.encryptionKey),e.uint.encode(n,c),d>=19&&o.streams&&ht.encode(n,o.streams),d>=19&&o.discoveryKey&&e.fixed32.encode(n,o.discoveryKey),d>=19&&o.version&&e.uint.encode(n,o.version)},decode(n){const o=gt.decode(n),c=e.fixed32.decode(n),t=e.buffer.decode(n),r=e.uint.decode(n);return{header:o,callKey:c,encryptionKey:t,streams:d>=19&&1&r?ht.decode(n):null,discoveryKey:d>=19&&2&r?e.fixed32.decode(n):null,version:d>=19&&4&r?e.uint.decode(n):0}}},wt=$,At=X,Tt={preencode(n,o){wt.preencode(n,o.header),e.fixed32.preencode(n,o.callKey),n.end++,d>=19&&o.streams&&At.preencode(n,o.streams)},encode(n,o){const c=d>=19&&o.streams?1:0;wt.encode(n,o.header),e.fixed32.encode(n,o.callKey),e.uint.encode(n,c),d>=19&&o.streams&&At.encode(n,o.streams)},decode(n){const o=wt.decode(n),c=e.fixed32.decode(n),t=e.uint.decode(n);return{header:o,callKey:c,streams:d>=19&&1&t?At.decode(n):null}}},Pt=$,St={preencode(d,n){Pt.preencode(d,n.header),e.fixed32.preencode(d,n.callKey)},encode(d,n){Pt.encode(d,n.header),e.fixed32.encode(d,n.callKey)},decode:d=>({header:Pt.decode(d),callKey:e.fixed32.decode(d)})},Rt=$,It={preencode(d,n){Rt.preencode(d,n.header),e.fixed32.preencode(d,n.callKey)},encode(d,n){Rt.encode(d,n.header),e.fixed32.encode(d,n.callKey)},decode:d=>({header:Rt.decode(d),callKey:e.fixed32.decode(d)})},Ct=$,Dt={preencode(d,n){Ct.preencode(d,n.header),e.fixed32.preencode(d,n.callKey),e.fixed32.preencode(d,n.streamKey)},encode(d,n){Ct.encode(d,n.header),e.fixed32.encode(d,n.callKey),e.fixed32.encode(d,n.streamKey)},decode:d=>({header:Ct.decode(d),callKey:e.fixed32.decode(d),streamKey:e.fixed32.decode(d)})},Mt=$,Ft={preencode(d,n){Mt.preencode(d,n.header),e.fixed32.preencode(d,n.callKey),e.fixed32.preencode(d,n.streamKey)},encode(d,n){Mt.encode(d,n.header),e.fixed32.encode(d,n.callKey),e.fixed32.encode(d,n.streamKey)},decode:d=>({header:Mt.decode(d),callKey:e.fixed32.decode(d),streamKey:e.fixed32.decode(d)})},qt={preencode(n,o){e.fixed32.preencode(n,o.callKey),e.buffer.preencode(n,o.encryptionKey),e.uint.preencode(n,o.createdAt),n.end++,d>=19&&o.endedAt&&e.uint.preencode(n,o.endedAt),d>=19&&o.discoveryKey&&e.fixed32.preencode(n,o.discoveryKey),d>=19&&o.version&&e.uint.preencode(n,o.version)},encode(n,o){const c=(d>=19&&o.endedAt?1:0)|(d>=19&&o.discoveryKey?2:0)|(d>=19&&o.version?4:0);e.fixed32.encode(n,o.callKey),e.buffer.encode(n,o.encryptionKey),e.uint.encode(n,o.createdAt),e.uint.encode(n,c),d>=19&&o.endedAt&&e.uint.encode(n,o.endedAt),d>=19&&o.discoveryKey&&e.fixed32.encode(n,o.discoveryKey),d>=19&&o.version&&e.uint.encode(n,o.version)},decode(n){const o=e.fixed32.decode(n),c=e.buffer.decode(n),t=e.uint.decode(n),r=e.uint.decode(n);return{callKey:o,encryptionKey:c,createdAt:t,endedAt:d>=19&&1&r?e.uint.decode(n):0,discoveryKey:d>=19&&2&r?e.fixed32.decode(n):null,version:d>=19&&4&r?e.uint.decode(n):0}}},Lt={preencode(d,n){e.fixed32.preencode(d,n.callKey),e.fixed32.preencode(d,n.memberKey),e.uint.preencode(d,n.createdAt)},encode(d,n){e.fixed32.encode(d,n.callKey),e.fixed32.encode(d,n.memberKey),e.uint.encode(d,n.createdAt)},decode:d=>({callKey:e.fixed32.decode(d),memberKey:e.fixed32.decode(d),createdAt:e.uint.decode(d)})},Et={preencode(n,o){e.fixed32.preencode(n,o.callKey),e.fixed32.preencode(n,o.deviceKey),e.fixed32.preencode(n,o.memberKey),e.uint.preencode(n,o.createdAt),n.end++,d>=19&&o.swarmKey&&e.fixed32.preencode(n,o.swarmKey),d>=22&&o.lastHeartbeatAt&&e.uint.preencode(n,o.lastHeartbeatAt)},encode(n,o){const c=(d>=19&&o.swarmKey?1:0)|(d>=22&&o.lastHeartbeatAt?2:0)|(d>=23&&o.isRecording?4:0);e.fixed32.encode(n,o.callKey),e.fixed32.encode(n,o.deviceKey),e.fixed32.encode(n,o.memberKey),e.uint.encode(n,o.createdAt),e.uint.encode(n,c),d>=19&&o.swarmKey&&e.fixed32.encode(n,o.swarmKey),d>=22&&o.lastHeartbeatAt&&e.uint.encode(n,o.lastHeartbeatAt)},decode(n){const o=e.fixed32.decode(n),c=e.fixed32.decode(n),t=e.fixed32.decode(n),r=e.uint.decode(n),i=e.uint.decode(n);return{callKey:o,deviceKey:c,memberKey:t,createdAt:r,swarmKey:d>=19&&1&i?e.fixed32.decode(n):null,lastHeartbeatAt:d>=22&&2&i?e.uint.decode(n):0,isRecording:d>=23&&!!(4&i)}}},Bt={preencode(d,n){e.fixed32.preencode(d,n.callKey),e.fixed32.preencode(d,n.deviceKey),e.buffer.preencode(d,n.streamKey),e.uint.preencode(d,n.createdAt)},encode(d,n){e.fixed32.encode(d,n.callKey),e.fixed32.encode(d,n.deviceKey),e.buffer.encode(d,n.streamKey),e.uint.encode(d,n.createdAt)},decode:d=>({callKey:e.fixed32.decode(d),deviceKey:e.fixed32.decode(d),streamKey:e.buffer.decode(d),createdAt:e.uint.decode(d)})},Ht={Nightly:"Nightly",Internal:"Internal",Production:"Production"},Nt={preencode(e,d){e.end++},encode(d,n){switch(n){case"Nightly":e.uint.encode(d,1);break;case"Internal":e.uint.encode(d,2);break;case"Production":e.uint.encode(d,3);break;default:throw new Error("Unknown enum")}},decode(d){switch(e.uint.decode(d)){case 1:return"Nightly";case 2:return"Internal";case 3:return"Production";default:return null}}},jt=$,zt={preencode(e,d){jt.preencode(e,d.header)},encode(e,d){jt.encode(e,d.header)},decode:e=>({header:jt.decode(e)})},Ut=$,Vt={preencode(e,d){Ut.preencode(e,d.header)},encode(e,d){Ut.encode(e,d.header)},decode:e=>({header:Ut.decode(e)})},Ot=$,Jt={preencode(d,n){Ot.preencode(d,n.header),e.fixed32.preencode(d,n.deviceKey),e.buffer.preencode(d,n.deviceProof),e.buffer.preencode(d,n.writerProof)},encode(d,n){Ot.encode(d,n.header),e.fixed32.encode(d,n.deviceKey),e.buffer.encode(d,n.deviceProof),e.buffer.encode(d,n.writerProof)},decode:d=>({header:Ot.decode(d),deviceKey:e.fixed32.decode(d),deviceProof:e.buffer.decode(d),writerProof:e.buffer.decode(d)})},Gt=$,Qt={preencode(d,n){Gt.preencode(d,n.header),e.fixed32.preencode(d,n.callKey)},encode(d,n){Gt.encode(d,n.header),e.fixed32.encode(d,n.callKey)},decode:d=>({header:Gt.decode(d),callKey:e.fixed32.decode(d)})},Wt=$,Xt={preencode(d,n){Wt.preencode(d,n.header),e.fixed32.preencode(d,n.callKey),e.fixed32.preencode(d,n.deviceKey)},encode(d,n){Wt.encode(d,n.header),e.fixed32.encode(d,n.callKey),e.fixed32.encode(d,n.deviceKey)},decode:d=>({header:Wt.decode(d),callKey:e.fixed32.decode(d),deviceKey:e.fixed32.decode(d)})},Yt=$,Zt={preencode(d,n){Yt.preencode(d,n.header),e.fixed32.preencode(d,n.callKey)},encode(d,n){Yt.encode(d,n.header),e.fixed32.encode(d,n.callKey)},decode:d=>({header:Yt.decode(d),callKey:e.fixed32.decode(d)})},$t=$,_t={preencode(d,n){$t.preencode(d,n.header),e.fixed32.preencode(d,n.callKey)},encode(d,n){$t.encode(d,n.header),e.fixed32.encode(d,n.callKey)},decode:d=>({header:$t.decode(d),callKey:e.fixed32.decode(d)})},er=$,dr={preencode(e,d){er.preencode(e,d.header),o.preencode(e,d.oplog)},encode(e,d){er.encode(e,d.header),o.encode(e,d.oplog)},decode:e=>({header:er.decode(e),oplog:o.decode(e)})},nr=$,or={preencode(e,d){nr.preencode(e,d.header)},encode(e,d){nr.encode(e,d.header)},decode:e=>({header:nr.decode(e)})},cr={preencode(d,n){e.fixed32.preencode(d,n.memberKey),e.uint.preencode(d,n.timestamp)},encode(d,n){e.fixed32.encode(d,n.memberKey),e.uint.encode(d,n.timestamp)},decode:d=>({memberKey:e.fixed32.decode(d),timestamp:e.uint.decode(d)})},tr=$,rr={preencode(n,o){tr.preencode(n,o.header),e.fixed32.preencode(n,o.memberKey),n.end++,d>=24&&o.alias&&e.string.preencode(n,o.alias)},encode(n,o){const c=d>=24&&o.alias?1:0;tr.encode(n,o.header),e.fixed32.encode(n,o.memberKey),e.uint.encode(n,c),d>=24&&o.alias&&e.string.encode(n,o.alias)},decode(n){const o=tr.decode(n),c=e.fixed32.decode(n),t=e.uint.decode(n);return{header:o,memberKey:c,alias:d>=24&&1&t?e.string.decode(n):null}}},ir={preencode(e,d){},encode(e,d){},decode:e=>({key:null})},ar=ge,sr={preencode(d,n){e.fixed32.preencode(d,n.id),ar.preencode(d,n.request)},encode(d,n){e.fixed32.encode(d,n.id),ar.encode(d,n.request)},decode:d=>({deviceKey:null,id:e.fixed32.decode(d),request:ar.decode(d)})},pr=te,ur=re,lr={preencode(d,n){e.fixed32.preencode(d,n.memberKey),pr.preencode(d,n.status),Hi.preencode(d,n.profile),d.end++,n.invitation&&ur.preencode(d,n.invitation)},encode(d,n){const o=n.invitation?1:0;e.fixed32.encode(d,n.memberKey),pr.encode(d,n.status),Hi.encode(d,n.profile),e.uint.encode(d,o),n.invitation&&ur.encode(d,n.invitation)},decode:d=>({key:null,memberKey:e.fixed32.decode(d),status:pr.decode(d),profile:Hi.decode(d),invitation:1&e.uint.decode(d)?ur.decode(d):null})},fr={preencode(d,n){d.end++,n.profileAttestation&&e.buffer.preencode(d,n.profileAttestation),n.latestReceipt&&e.buffer.preencode(d,n.latestReceipt)},encode(d,n){const o=(n.profileAttestation?1:0)|(n.latestReceipt?2:0);e.uint.encode(d,o),n.profileAttestation&&e.buffer.encode(d,n.profileAttestation),n.latestReceipt&&e.buffer.encode(d,n.latestReceipt)},decode(d){const n=e.uint.decode(d);return{key:null,profileAttestation:1&n?e.buffer.decode(d):null,latestReceipt:2&n?e.buffer.decode(d):null}}},mr=id,yr=pe,br={preencode(e,d){mr.preencode(e,d.status),yr.preencode(e,d.profile)},encode(e,d){mr.encode(e,d.status),yr.encode(e,d.profile)},decode:e=>({key:null,status:mr.decode(e),profile:yr.decode(e)})},xr={preencode(d,n){e.uint.preencode(d,n.mentions)},encode(d,n){e.uint.encode(d,n.mentions)},decode:d=>({key:null,mentions:e.uint.decode(d)})},kr=Re,vr=Fe,gr={preencode(e,d){kr.preencode(e,d.response),vr.preencode(e,d.metadata),e.end++,d.anchor&&n.preencode(e,d.anchor)},encode(d,o){const c=(o.anchor?1:0)|(o.isActive?2:0);kr.encode(d,o.response),vr.encode(d,o.metadata),e.uint.encode(d,c),o.anchor&&n.encode(d,o.anchor)},decode(d){const o=kr.decode(d),c=vr.decode(d),t=e.uint.decode(d);return{id:null,response:o,metadata:c,anchor:1&t?n.decode(d):null,isActive:!!(2&t)}}},hr=fn,Kr={preencode(d,n){e.uint.preencode(d,n.count),d.end++,n.parent&&o.preencode(d,n.parent),n.stats&&hr.preencode(d,n.stats)},encode(d,n){const c=(n.parent?1:0)|(n.stats?2:0);e.uint.encode(d,n.count),e.uint.encode(d,c),n.parent&&o.encode(d,n.parent),n.stats&&hr.encode(d,n.stats)},decode(d){const n=e.uint.decode(d),c=e.uint.decode(d);return{id:0,count:n,parent:1&c?o.decode(d):null,stats:2&c?hr.decode(d):null}}},wr={preencode(e,d){},encode(e,d){},decode:e=>({thread:0,index:0})},Ar=yn,Tr=bn,Pr=xn,Sr={preencode(d,n){ln.preencode(d,n.id),o.preencode(d,n.oplog),e.uint.preencode(d,n.clock),e.uint.preencode(d,n.timestamp),d.end++,n.editedAt&&e.uint.preencode(d,n.editedAt),Ar.preencode(d,n.status),n.message&&Tr.preencode(d,n.message),n.event&&Pr.preencode(d,n.event)},encode(d,n){const c=(n.editedAt?1:0)|(n.message?2:0)|(n.event?4:0);ln.encode(d,n.id),o.encode(d,n.oplog),e.uint.encode(d,n.clock),e.uint.encode(d,n.timestamp),e.uint.encode(d,c),n.editedAt&&e.uint.encode(d,n.editedAt),Ar.encode(d,n.status),n.message&&Tr.encode(d,n.message),n.event&&Pr.encode(d,n.event)},decode(d){const n=ln.decode(d),c=o.decode(d),t=e.uint.decode(d),r=e.uint.decode(d),i=e.uint.decode(d);return{id:n,oplog:c,clock:t,timestamp:r,editedAt:1&i?e.uint.decode(d):0,status:Ar.decode(d),message:2&i?Tr.decode(d):null,event:4&i?Pr.decode(d):null}}},Rr=wr,Ir=Ln,Cr={preencode(n,o){ln.preencode(n,o.id),e.uint.preencode(n,o.total),Ir.preencode(n,o.reactions),n.end++,d>=11&&o.editedAt&&e.uint.preencode(n,o.editedAt)},encode(n,o){const c=d>=11&&o.editedAt?1:0;ln.encode(n,o.id),e.uint.encode(n,o.total),Ir.encode(n,o.reactions),e.uint.encode(n,c),d>=11&&o.editedAt&&e.uint.encode(n,o.editedAt)},decode(n){const o=ln.decode(n),c=e.uint.decode(n),t=Ir.decode(n),r=n.start<n.end?e.uint.decode(n):0;return{id:o,total:c,reactions:t,editedAt:d>=11&&1&r?e.uint.decode(n):0}}},Dr=wr,Mr={preencode(d,n){ln.preencode(d,n.id),e.uint.preencode(d,n.clock)},encode(d,n){ln.encode(d,n.id),e.uint.encode(d,n.clock)},decode:d=>({id:ln.decode(d),sender:null,clock:e.uint.decode(d),reaction:null})},Fr=T,qr=g,Lr={preencode(n,c){o.preencode(n,c.oplog),Fr.preencode(n,c.status),qr.preencode(n,c.file),n.end++,d>=14&&c.version&&e.uint.preencode(n,c.version)},encode(n,c){const t=d>=14&&c.version?1:0;o.encode(n,c.oplog),Fr.encode(n,c.status),qr.encode(n,c.file),e.uint.encode(n,t),d>=14&&c.version&&e.uint.encode(n,c.version)},decode(n){const c=o.decode(n),t=Fr.decode(n),r=qr.decode(n),i=n.start<n.end?e.uint.decode(n):0;return{id:0,oplog:c,status:t,file:r,version:d>=14&&1&i?e.uint.decode(n):0}}},Er=vo,Br={preencode(o,c){e.fixed32.preencode(o,c.invitationSeed),e.fixed32.preencode(o,c.mailbox),t.preencode(o,c.responseKeyPair),n.preencode(o,c.initiator),n.preencode(o,c.inviter),o.end++,c.identity&&Er.preencode(o,c.identity),d>=20&&c.buildType&&Nt.preencode(o,c.buildType)},encode(o,c){const r=(c.identity?1:0)|(d>=20&&c.buildType?2:0);e.fixed32.encode(o,c.invitationSeed),e.fixed32.encode(o,c.mailbox),t.encode(o,c.responseKeyPair),n.encode(o,c.initiator),n.encode(o,c.inviter),e.uint.encode(o,r),c.identity&&Er.encode(o,c.identity),d>=20&&c.buildType&&Nt.encode(o,c.buildType)},decode(o){const c=e.fixed32.decode(o),r=e.fixed32.decode(o),i=t.decode(o),a=n.decode(o),s=n.decode(o),p=e.uint.decode(o);return{id:null,invitationSeed:c,mailbox:r,responseKeyPair:i,initiator:a,inviter:s,identity:1&p?Er.decode(o):null,buildType:d>=20&&2&p?Nt.decode(o):null}}},Hr=Co,Nr=Do,jr=vo,zr={preencode(o,c){e.buffer.preencode(o,c.encryptionKey),e.fixed32.preencode(o,c.mailbox),Hr.preencode(o,c.status),e.uint.preencode(o,c.clock),o.end++,c.initiator&&n.preencode(o,c.initiator),c.fastForwardTo&&e.fixed32.preencode(o,c.fastForwardTo),c.identitySwap&&Nr.preencode(o,c.identitySwap),d>=6&&c.identitySwapV2&&jr.preencode(o,c.identitySwapV2),d>=10&&c.contact&&e.fixed32.preencode(o,c.contact)},encode(o,c){const t=(c.initiator?1:0)|(c.fastForwardTo?2:0)|(c.identitySwap?4:0)|(d>=6&&c.identitySwapV2?8:0)|(d>=10&&c.contact?16:0);e.buffer.encode(o,c.encryptionKey),e.fixed32.encode(o,c.mailbox),Hr.encode(o,c.status),e.uint.encode(o,c.clock),e.uint.encode(o,t),c.initiator&&n.encode(o,c.initiator),c.fastForwardTo&&e.fixed32.encode(o,c.fastForwardTo),c.identitySwap&&Nr.encode(o,c.identitySwap),d>=6&&c.identitySwapV2&&jr.encode(o,c.identitySwapV2),d>=10&&c.contact&&e.fixed32.encode(o,c.contact)},decode(o){const c=e.buffer.decode(o),t=e.fixed32.decode(o),r=Hr.decode(o),i=e.uint.decode(o),a=e.uint.decode(o);return{roomKey:null,encryptionKey:c,mailbox:t,status:r,clock:i,initiator:1&a?n.decode(o):null,fastForwardTo:2&a?e.fixed32.decode(o):null,identitySwap:4&a?Nr.decode(o):null,identitySwapV2:d>=6&&8&a?jr.decode(o):null,contact:d>=10&&16&a?e.fixed32.decode(o):null}}},Ur={preencode(n,o){e.uint.preencode(n,o.clock),Ni.preencode(n,o.status),n.end++,o.mailbox&&e.fixed32.preencode(n,o.mailbox),o.roomKey&&e.fixed32.preencode(n,o.roomKey),d>=22&&o.contactInfo&&ji.preencode(n,o.contactInfo),d>=24&&o.alias&&e.string.preencode(n,o.alias)},encode(n,o){const c=(o.mailbox?1:0)|(o.roomKey?2:0)|(d>=22&&o.contactInfo?4:0)|(d>=24&&o.alias?8:0);e.uint.encode(n,o.clock),Ni.encode(n,o.status),e.uint.encode(n,c),o.mailbox&&e.fixed32.encode(n,o.mailbox),o.roomKey&&e.fixed32.encode(n,o.roomKey),d>=22&&o.contactInfo&&ji.encode(n,o.contactInfo),d>=24&&o.alias&&e.string.encode(n,o.alias)},decode(n){const o=e.uint.decode(n),c=Ni.decode(n),t=e.uint.decode(n);return{memberKey:null,clock:o,status:c,mailbox:1&t?e.fixed32.decode(n):null,roomKey:2&t?e.fixed32.decode(n):null,contactInfo:d>=22&&4&t?ji.decode(n):null,alias:d>=24&&8&t?e.string.decode(n):null}}},Vr=pe,Or=oc,Jr=$o,Gr={preencode(n,o){e.uint.preencode(n,o.clock),Vr.preencode(n,o.sender),Or.preencode(n,o.status),Jr.preencode(n,o.keys),e.fixed32.preencode(n,o.mailbox),n.end++,o.message&&e.string.preencode(n,o.message),d>=11&&o.sentAt&&e.uint.preencode(n,o.sentAt),d>=22&&o.contactInfo&&zi.preencode(n,o.contactInfo)},encode(n,o){const c=(o.message?1:0)|(d>=11&&o.sentAt?2:0)|(d>=22&&o.contactInfo?4:0);e.uint.encode(n,o.clock),Vr.encode(n,o.sender),Or.encode(n,o.status),Jr.encode(n,o.keys),e.fixed32.encode(n,o.mailbox),e.uint.encode(n,c),o.message&&e.string.encode(n,o.message),d>=11&&o.sentAt&&e.uint.encode(n,o.sentAt),d>=22&&o.contactInfo&&zi.encode(n,o.contactInfo)},decode(n){const o=e.uint.decode(n),c=Vr.decode(n),t=Or.decode(n),r=Jr.decode(n),i=e.fixed32.decode(n),a=e.uint.decode(n);return{memberKey:null,clock:o,sender:c,status:t,keys:r,mailbox:i,message:1&a?e.string.decode(n):null,sentAt:d>=11&&2&a?e.uint.decode(n):0,contactInfo:d>=22&&4&a?zi.decode(n):null}}},Qr={preencode(d,n){e.uint.preencode(d,n.value)},encode(d,n){e.uint.encode(d,n.value)},decode:d=>({key:0,value:e.uint.decode(d)})},Wr={preencode(d,n){oe.preencode(d,n.privateProfileIdentity),e.buffer.preencode(d,n.deviceProof)},encode(d,n){oe.encode(d,n.privateProfileIdentity),e.buffer.encode(d,n.deviceProof)},decode:d=>({deviceKey:null,privateProfileIdentity:oe.decode(d),deviceProof:e.buffer.decode(d)})},Xr={preencode(d,n){d.end++,n.encryptionKey&&e.buffer.preencode(d,n.encryptionKey),n.fastForwardTo&&e.fixed32.preencode(d,n.fastForwardTo)},encode(d,n){const o=(n.encryptionKey?1:0)|(n.fastForwardTo?2:0);e.uint.encode(d,o),n.encryptionKey&&e.buffer.encode(d,n.encryptionKey),n.fastForwardTo&&e.fixed32.encode(d,n.fastForwardTo)},decode(d){const n=e.uint.decode(d);return{key:null,encryptionKey:1&n?e.buffer.decode(d):null,fastForwardTo:2&n?e.fixed32.decode(d):null}}},Yr=pe,Zr=oc,$r=$o,_r={preencode(n,o){e.uint.preencode(n,o.clock),Yr.preencode(n,o.sender),Zr.preencode(n,o.status),$r.preencode(n,o.keys),e.fixed32.preencode(n,o.mailbox),n.end++,o.message&&e.string.preencode(n,o.message),d>=11&&o.sentAt&&e.uint.preencode(n,o.sentAt),d>=22&&o.contactInfo&&Ui.preencode(n,o.contactInfo)},encode(n,o){const c=(o.message?1:0)|(d>=11&&o.sentAt?2:0)|(d>=22&&o.contactInfo?4:0);e.uint.encode(n,o.clock),Yr.encode(n,o.sender),Zr.encode(n,o.status),$r.encode(n,o.keys),e.fixed32.encode(n,o.mailbox),e.uint.encode(n,c),o.message&&e.string.encode(n,o.message),d>=11&&o.sentAt&&e.uint.encode(n,o.sentAt),d>=22&&o.contactInfo&&Ui.encode(n,o.contactInfo)},decode(n){const o=e.uint.decode(n),c=Yr.decode(n),t=Zr.decode(n),r=$r.decode(n),i=e.fixed32.decode(n),a=e.uint.decode(n);return{memberKey:null,clock:o,sender:c,status:t,keys:r,mailbox:i,message:1&a?e.string.decode(n):null,sentAt:d>=11&&2&a?e.uint.decode(n):0,contactInfo:d>=22&&4&a?Ui.decode(n):null}}},ei={preencode(d,n){e.fixed32.preencode(d,n.key)},encode(d,n){e.fixed32.encode(d,n.key)},decode:d=>({deviceKey:null,key:e.fixed32.decode(d)})},di=wr,ni={preencode(d,n){ln.preencode(d,n.id),e.uint.preencode(d,n.clock)},encode(d,n){ln.encode(d,n.id),e.uint.encode(d,n.clock)},decode:d=>({id:ln.decode(d),sender:null,clock:e.uint.decode(d),label:0})},oi=wr,ci=Zc,ti={preencode(n,o){ln.preencode(n,o.id),e.uint.preencode(n,o.total),ci.preencode(n,o.labels),e.uint.preencode(n,o.editedAt),n.end++,d>=15&&o.flagsClock&&e.uint.preencode(n,o.flagsClock),d>=15&&o.version&&e.uint.preencode(n,o.version)},encode(n,o){const c=(d>=15&&o.flagsClock?1:0)|(d>=15&&o.version?2:0)|(d>=16&&o.isDeleted?4:0);ln.encode(n,o.id),e.uint.encode(n,o.total),ci.encode(n,o.labels),e.uint.encode(n,o.editedAt),e.uint.encode(n,c),d>=15&&o.flagsClock&&e.uint.encode(n,o.flagsClock),d>=15&&o.version&&e.uint.encode(n,o.version)},decode(n){const o=ln.decode(n),c=e.uint.decode(n),t=ci.decode(n),r=e.uint.decode(n),i=n.start<n.end?e.uint.decode(n):0;return{id:o,total:c,labels:t,editedAt:r,flagsClock:d>=15&&1&i?e.uint.decode(n):0,version:d>=15&&2&i?e.uint.decode(n):0,isDeleted:d>=16&&!!(4&i)}}},ri={preencode(d,n){e.uint.preencode(d,n.length)},encode(d,n){e.uint.encode(d,n.length)},decode:d=>({memberKey:null,length:e.uint.decode(d)})},ii=ir,ai={preencode(d,n){e.uint.preencode(d,n.clock)},encode(d,n){e.uint.encode(d,n.clock)},decode:d=>({key:null,sender:null,clock:e.uint.decode(d),label:0})},si=yt,pi={preencode(d,n){e.uint.preencode(d,n.total),si.preencode(d,n.labels),e.uint.preencode(d,n.editedAt),e.uint.preencode(d,n.flagsClock)},encode(d,n){e.uint.encode(d,n.total),si.encode(d,n.labels),e.uint.encode(d,n.editedAt),e.uint.encode(d,n.flagsClock)},decode:d=>({key:null,total:e.uint.decode(d),labels:si.decode(d),editedAt:e.uint.decode(d),flagsClock:e.uint.decode(d)})},ui={preencode(n,o){e.buffer.preencode(n,o.encryptionKey),e.uint.preencode(n,o.createdAt),n.end++,d>=19&&o.endedAt&&e.uint.preencode(n,o.endedAt),d>=19&&o.discoveryKey&&e.fixed32.preencode(n,o.discoveryKey),d>=19&&o.version&&e.uint.preencode(n,o.version)},encode(n,o){const c=(d>=19&&o.endedAt?1:0)|(d>=19&&o.discoveryKey?2:0)|(d>=19&&o.version?4:0);e.buffer.encode(n,o.encryptionKey),e.uint.encode(n,o.createdAt),e.uint.encode(n,c),d>=19&&o.endedAt&&e.uint.encode(n,o.endedAt),d>=19&&o.discoveryKey&&e.fixed32.encode(n,o.discoveryKey),d>=19&&o.version&&e.uint.encode(n,o.version)},decode(n){const o=e.buffer.decode(n),c=e.uint.decode(n),t=e.uint.decode(n);return{callKey:null,encryptionKey:o,createdAt:c,endedAt:d>=19&&1&t?e.uint.decode(n):0,discoveryKey:d>=19&&2&t?e.fixed32.decode(n):null,version:d>=19&&4&t?e.uint.decode(n):0}}},li={preencode(d,n){e.uint.preencode(d,n.createdAt)},encode(d,n){e.uint.encode(d,n.createdAt)},decode:d=>({callKey:null,memberKey:null,createdAt:e.uint.decode(d)})},fi={preencode(n,o){e.fixed32.preencode(n,o.memberKey),e.uint.preencode(n,o.createdAt),n.end++,d>=19&&o.swarmKey&&e.fixed32.preencode(n,o.swarmKey),d>=22&&o.lastHeartbeatAt&&e.uint.preencode(n,o.lastHeartbeatAt)},encode(n,o){const c=(d>=19&&o.swarmKey?1:0)|(d>=22&&o.lastHeartbeatAt?2:0)|(d>=23&&o.isRecording?4:0);e.fixed32.encode(n,o.memberKey),e.uint.encode(n,o.createdAt),e.uint.encode(n,c),d>=19&&o.swarmKey&&e.fixed32.encode(n,o.swarmKey),d>=22&&o.lastHeartbeatAt&&e.uint.encode(n,o.lastHeartbeatAt)},decode(n){const o=e.fixed32.decode(n),c=e.uint.decode(n),t=e.uint.decode(n);return{callKey:null,deviceKey:null,memberKey:o,createdAt:c,swarmKey:d>=19&&1&t?e.fixed32.decode(n):null,lastHeartbeatAt:d>=22&&2&t?e.uint.decode(n):0,isRecording:d>=23&&!!(4&t)}}},mi={preencode(d,n){e.fixed32.preencode(d,n.deviceKey),e.uint.preencode(d,n.createdAt)},encode(d,n){e.fixed32.encode(d,n.deviceKey),e.uint.encode(d,n.createdAt)},decode:d=>({callKey:null,deviceKey:e.fixed32.decode(d),streamKey:null,createdAt:e.uint.decode(d)})},yi=ei,bi={preencode(d,n){e.uint.preencode(d,n.timestamp)},encode(d,n){e.uint.encode(d,n.timestamp)},decode:d=>({memberKey:null,timestamp:e.uint.decode(d)})},xi=e.frame(w),ki=xi,vi=e.array(Lc),gi=e.frame(se),hi=xi,Ki=gi,wi=e.frame(hc),Ai=gi,Ti=e.frame(fd),Pi=e.frame(yc),Si=e.frame(xt),Ri=Si,Ii=e.array(e.frame(Bc)),Ci=xi,Di=e.frame(zo),Mi=e.frame(xc),Fi=Di,qi=Mi,Li=Di,Ei=Mi,Bi=xi,Hi=gi,Ni=Di,ji=Mi,zi=Mi,Ui=Mi;function Vi(e){switch(e){case"@keet/head":return n;case"@keet/oplog-id":return o;case"@keet/encryption-keypair":return c;case"@keet/signing-keypair":return t;case"@keet/room-keys":return r;case"@keet/operation-header":return i;case"@keet/blob-pointer":return a;case"@keet/file-dimensions":return s;case"@keet/file-metadata":return u;case"@keet/external-drive-pointer":return l;case"@keet/external-blob-pointer":return f;case"@keet/file-pointer":return b;case"@keet/file":return v;case"@keet/image-file":return w;case"@keet/file-status":return A;case"@keet/file-record":return S;case"@keet/device-status":return R;case"@keet/member-status":return I;case"@keet/member-moderation-status":return C;case"@keet/abi":return D;case"@keet/device-stats":return M;case"@keet/member-stats":return F;case"@keet/chat-stats":return q;case"@keet/file-stats":return L;case"@keet/stats":return j;case"@keet/room-type":return U;case"@keet/system-settings":return V;case"@keet/system-digest":return G;case"@keet/room-seed":return Q;case"@keet/room-capabilities":return W;case"@keet/room-config":return Y;case"@keet/blind-peer":return Z;case"@keet/add-blind-peer-operation":return ee;case"@keet/remove-blind-peer-operation":return ne;case"@keet/identity-attestation":return oe;case"@keet/device-invitation":return ce;case"@keet/device":return ie;case"@keet/member-profile":return ae;case"@keet/device-profile":return se;case"@keet/member-update":return ue;case"@keet/device-update":return le;case"@keet/signed-pairing-data":return fe;case"@keet/device-request-identity":return me;case"@keet/device-response-identity":return ye;case"@keet/device-request-with-invitation":return ve;case"@keet/device-request-with-invitation-and-proof":return he;case"@keet/device-request-with-member-proof":return Ae;case"@keet/device-request":return Se;case"@keet/device-response":return Ce;case"@keet/invitation-metadata":return De;case"@keet/invitation":return qe;case"@keet/add-invitation-operation":return Be;case"@keet/remove-invitation-operation":return Ne;case"@keet/sendable-room-invitation":return je;case"@keet/sendable-identity-invitation":return ze;case"@keet/sendable-contact-invitation":return Ue;case"@keet/sendable-invitation":return Qe;case"@keet/add-device-operation":return Xe;case"@keet/update-device-operation":return Ze;case"@keet/start-indexing-operation":return $e;case"@keet/stop-indexing-operation":return _e;case"@keet/join-request":return dd;case"@keet/accept-join-request-operation":return cd;case"@keet/reject-join-request-operation":return rd;case"@keet/member":return sd;case"@keet/full-member":return ld;case"@keet/member-proofs":return fd;case"@keet/update-member-operation":return bd;case"@keet/change-member-status-operation":return vd;case"@keet/change-member-role-operation":return hd;case"@keet/remove-member-operation":return wd;case"@keet/member-activity":return Ad;case"@keet/member-joined-event":return Td;case"@keet/member-left-event":return Pd;case"@keet/title-changed-chat-event":return Sd;case"@keet/chat-event":return Dd;case"@keet/sendable-event":return Md;case"@keet/display-range":return Fd;case"@keet/display-content-range":return Ld;case"@keet/mention-display-item":return Bd;case"@keet/link-preview":return jd;case"@keet/display-link-item":return Vd;case"@keet/display":return _d;case"@keet/oplog-message":return on;case"@keet/index-message":return rn;case"@keet/full-index-message":return pn;case"@keet/message-status":return un;case"@keet/message-index-id":return ln;case"@keet/thread":return mn;case"@keet/chat-message-record":return kn;case"@keet/full-chat-message-record":return Kn;case"@keet/add-chat-message-operation":return Tn;case"@keet/remove-chat-message-operation":return Sn;case"@keet/update-chat-message-operation":return Cn;case"@keet/pin-chat-message-operation":return Mn;case"@keet/reaction":return Fn;case"@keet/reactions-summary":return qn;case"@keet/reactions-digest":return En;case"@keet/add-reaction-operation":return Hn;case"@keet/remove-reaction-operation":return jn;case"@keet/update-room-config-operation":return Vn;case"@keet/group-member":return On;case"@keet/user-registry-info":return Jn;case"@keet/room-identity":return Qn;case"@keet/genesis-operation":return no;case"@keet/upgrade-operation":return co;case"@keet/update-system-settings-operation":return io;case"@keet-private-id/contact":return ao;case"@keet-private-id/v3-room-migration-info":return so;case"@keet-private-id/run-v3-migration-operation":return lo;case"@keet-private-id/update-identity-operation":return mo;case"@keet-private-id/counters":return yo;case"@keet-private-id/stats":return bo;case"@keet-private-id/add-entropy-operation":return xo;case"@keet-private-id/pending-invitation-identity":return ko;case"@keet-private-id/pending-invitation":return go;case"@keet-private-id/resolve-pending-invitation-operation":return Ko;case"@keet-private-id/add-pending-invitation-operation":return To;case"@keet-private-id/remove-pending-invitation-operation":return So;case"@keet-private-id/identity-swap":return Ro;case"@keet-private-id/room-status":return Io;case"@keet-private-id/room":return Fo;case"@keet-private-id/add-room-operation":return Lo;case"@keet-private-id/remove-room-operation":return Bo;case"@keet-private-id/update-room-status-operation":return jo;case"@keet-private-id/contact-status":return zo;case"@keet-private-id/contact-record":return Uo;case"@keet-private-id/add-contact-operation":return Jo;case"@keet-private-id/update-contact-status-operation":return Qo;case"@keet-private-id/remove-contact-operation":return Xo;case"@keet-private-id/contact-request-status":return Yo;case"@keet-private-id/contact-request-body":return _o;case"@keet-private-id/contact-request":return dc;case"@keet-private-id/contact-request-record":return tc;case"@keet-private-id/add-contact-request-operation":return ic;case"@keet-private-id/update-contact-request-status-operation":return pc;case"@keet-private-id/profile-discovery-record-v1":return uc;case"@keet-private-id/profile-discovery-record":return lc;case"@keet/add-file-preview-operation":return mc;case"@keet/member-removed-event":return yc;case"@keet/member-contact-info":return xc;case"@keet/remove-device-operation":return vc;case"@keet/device-identity":return gc;case"@keet/readonly-room-invitation":return hc;case"@keet-private-id/identity-swap-v2":return Kc;case"@keet-private-id/activate-contact-room-operation":return Ac;case"@keet/display-type":return Pc;case"@keet/test-increment-operation":return Rc;case"@keet/test-collection-record-1":return Ic;case"@keet/migrate-abi-operation":return Dc;case"@keet/system-settings-keys":return Fc;case"@keet/room-supported-language":return Lc;case"@keet/translation-display-item":return Bc;case"@keet-private-id/unreads":return Hc;case"@keet-private-id/add-unreads-key-operation":return jc;case"@keet-private-id/remove-unreads-key-operation":return Uc;case"@keet/label-type":return Oc;case"@keet/chat-label":return Jc;case"@keet/add-chat-label-operation":return Qc;case"@keet/remove-chat-label-operation":return Xc;case"@keet/chat-label-summary":return Yc;case"@keet/chat-label-digest":return $c;case"@keet/update-read-length-operation":return et;case"@keet/read-length":return dt;case"@keet/tmp-removed-member":return nt;case"@keet-private-id/settings":return ot;case"@keet-private-id/user-settings-key":return tt;case"@keet-private-id/update-settings-operation":return at;case"@keet/member-label-type":return pt;case"@keet/member-label":return ut;case"@keet/add-member-label-operation":return ft;case"@keet/member-label-summary":return mt;case"@keet/member-label-digest":return bt;case"@keet/location-shared-event":return xt;case"@keet/move-indexer-operation":return vt;case"@keet/start-call":return Kt;case"@keet/join-call":return Tt;case"@keet/leave-call":return St;case"@keet/end-call":return It;case"@keet/add-call-stream":return Dt;case"@keet/remove-call-stream":return Ft;case"@keet/call-record":return qt;case"@keet/call-member-record":return Lt;case"@keet/call-device-record":return Et;case"@keet/call-stream-record":return Bt;case"@keet/build-type":return Nt;case"@keet/test-crash-operation":return zt;case"@keet/test-dispatch-error-operation":return Vt;case"@keet-private-id/shorten-device-attestation-operation":return Jt;case"@keet/call-device-heartbeat":return Qt;case"@keet/remove-call-device":return Xt;case"@keet/start-call-recording":return Zt;case"@keet/stop-call-recording":return _t;case"@keet/dismiss-chat-reports-operation":return dr;case"@keet/update-typing-indicator-operation":return or;case"@keet/typing-indicator":return cr;case"@keet-private-id/update-contact-alias-operation":return rr;case"@keet/blind-peer/hyperdb#1":return ir;case"@keet/join-request/hyperdb#4":return sr;case"@keet/device/hyperdb#5":return lr;case"@keet/member-proofs/hyperdb#10":return fr;case"@keet/member/hyperdb#11":return br;case"@keet/member-activity/hyperdb#17":return xr;case"@keet/invitation/hyperdb#18":return gr;case"@keet/thread/hyperdb#19":return Kr;case"@keet/message-index-id/hyperdb#21":return wr;case"@keet/chat-message-record/hyperdb#21":return Sr;case"@keet/message-index-id/hyperdb#25":return Rr;case"@keet/reactions-digest/hyperdb#25":return Cr;case"@keet/message-index-id/hyperdb#26":return Dr;case"@keet/reaction/hyperdb#26":return Mr;case"@keet/file-record/hyperdb#28":return Lr;case"@keet-private-id/pending-invitation/hyperdb#35":return Br;case"@keet-private-id/room/hyperdb#36":return zr;case"@keet-private-id/contact-record/hyperdb#38":return Ur;case"@keet-private-id/contact-request-record/hyperdb#40":return Gr;case"@keet/test-collection-record-1/hyperdb#46":return Qr;case"@keet/device-identity/hyperdb#50":return Wr;case"@keet/room-keys/hyperdb#51":return Xr;case"@keet-private-id/contact-request-record/hyperdb#51":return _r;case"@keet-private-id/unreads/hyperdb#59":return ei;case"@keet/message-index-id/hyperdb#60":return di;case"@keet/chat-label/hyperdb#60":return ni;case"@keet/message-index-id/hyperdb#61":return oi;case"@keet/chat-label-digest/hyperdb#61":return ti;case"@keet/read-length/hyperdb#62":return ri;case"@keet/tmp-removed-member/hyperdb#63":return ii;case"@keet/member-label/hyperdb#66":return ai;case"@keet/member-label-digest/hyperdb#67":return pi;case"@keet/call-record/hyperdb#69":return ui;case"@keet/call-member-record/hyperdb#72":return li;case"@keet/call-device-record/hyperdb#73":return fi;case"@keet/call-stream-record/hyperdb#75":return mi;case"@keet-private-id/unreads/hyperdb#77":return yi;case"@keet/typing-indicator/hyperdb#78":return bi;default:throw new Error("Encoder not found "+e)}}function Oi(e,n=24){const o=Vi(e);return{preencode(e,c){d=n,o.preencode(e,c)},encode(e,c){d=n,o.encode(e,c)},decode:e=>(d=n,o.decode(e))}}const Ji=Oi;module.exports={resolveStruct:Ji,getStruct:Oi,getEnum:function(e){switch(e){case"@keet/room-type":return z;case"@keet/display-type":return Tc;case"@keet/system-settings-keys":return Mc;case"@keet/room-supported-language":return qc;case"@keet/label-type":return Vc;case"@keet-private-id/user-settings-key":return ct;case"@keet/member-label-type":return st;case"@keet/build-type":return Ht;default:throw new Error("Enum not found "+e)}},getEncoding:Vi,encode:function(n,o,c=24){return d=c,e.encode(Vi(n),o)},decode:function(n,o,c=24){return d=c,e.decode(Vi(n),o)},setVersion:function(e){d=e},version:d};
1const{c:e}=require("hyperschema/runtime");let d=29;const o={preencode(d,o){e.fixed32.preencode(d,o.key),e.uint.preencode(d,o.length)},encode(d,o){e.fixed32.encode(d,o.key),e.uint.encode(d,o.length)},decode:d=>({key:e.fixed32.decode(d),length:e.uint.decode(d)})},n={preencode(d,o){e.fixed32.preencode(d,o.key),e.uint.preencode(d,o.seq)},encode(d,o){e.fixed32.encode(d,o.key),e.uint.encode(d,o.seq)},decode:d=>({key:e.fixed32.decode(d),seq:e.uint.decode(d)})},c={preencode(d,o){e.fixed32.preencode(d,o.publicKey),e.fixed32.preencode(d,o.secretKey)},encode(d,o){e.fixed32.encode(d,o.publicKey),e.fixed32.encode(d,o.secretKey)},decode:d=>({publicKey:e.fixed32.decode(d),secretKey:e.fixed32.decode(d)})},t={preencode(d,o){e.fixed32.preencode(d,o.publicKey),e.fixed64.preencode(d,o.secretKey)},encode(d,o){e.fixed32.encode(d,o.publicKey),e.fixed64.encode(d,o.secretKey)},decode:d=>({publicKey:e.fixed32.decode(d),secretKey:e.fixed64.decode(d)})},r={preencode(n,c){e.fixed32.preencode(n,c.key),n.end++,c.encryptionKey&&e.buffer.preencode(n,c.encryptionKey),c.fastForwardTo&&e.fixed32.preencode(n,c.fastForwardTo),d>=27&&c.bootFrom&&o.preencode(n,c.bootFrom)},encode(n,c){const t=(c.encryptionKey?1:0)|(c.fastForwardTo?2:0)|(d>=27&&c.bootFrom?4:0);e.fixed32.encode(n,c.key),e.uint.encode(n,t),c.encryptionKey&&e.buffer.encode(n,c.encryptionKey),c.fastForwardTo&&e.fixed32.encode(n,c.fastForwardTo),d>=27&&c.bootFrom&&o.encode(n,c.bootFrom)},decode(n){const c=e.fixed32.decode(n),t=e.uint.decode(n);return{key:c,encryptionKey:1&t?e.buffer.decode(n):null,fastForwardTo:2&t?e.fixed32.decode(n):null,bootFrom:d>=27&&4&t?o.decode(n):null}}},i={preencode(d,o){e.uint.preencode(d,o.timestamp)},encode(d,o){e.uint.encode(d,o.timestamp)},decode:d=>({timestamp:e.uint.decode(d)})},a={preencode(d,o){e.uint.preencode(d,o.blockOffset),e.uint.preencode(d,o.blockLength),e.uint.preencode(d,o.byteOffset),e.uint.preencode(d,o.byteLength)},encode(d,o){e.uint.encode(d,o.blockOffset),e.uint.encode(d,o.blockLength),e.uint.encode(d,o.byteOffset),e.uint.encode(d,o.byteLength)},decode:d=>({blockOffset:e.uint.decode(d),blockLength:e.uint.decode(d),byteOffset:e.uint.decode(d),byteLength:e.uint.decode(d)})},s={preencode(d,o){e.uint.preencode(d,o.width),e.uint.preencode(d,o.height)},encode(d,o){e.uint.encode(d,o.width),e.uint.encode(d,o.height)},decode:d=>({width:e.uint.decode(d),height:e.uint.decode(d)})},p=e.frame(s),u={preencode(d,o){d.end++,o.name&&e.string.preencode(d,o.name),o.mimetype&&e.string.preencode(d,o.mimetype),o.dimensions&&p.preencode(d,o.dimensions),o.userdata&&e.buffer.preencode(d,o.userdata),o.duration&&e.uint.preencode(d,o.duration)},encode(d,o){const n=(o.name?1:0)|(o.mimetype?2:0)|(o.dimensions?4:0)|(o.userdata?8:0)|(o.duration?16:0)|(o.isPreview?32:0);e.uint.encode(d,n),o.name&&e.string.encode(d,o.name),o.mimetype&&e.string.encode(d,o.mimetype),o.dimensions&&p.encode(d,o.dimensions),o.userdata&&e.buffer.encode(d,o.userdata),o.duration&&e.uint.encode(d,o.duration)},decode(d){const o=e.uint.decode(d);return{name:1&o?e.string.decode(d):null,mimetype:2&o?e.string.decode(d):null,dimensions:4&o?p.decode(d):null,userdata:8&o?e.buffer.decode(d):null,duration:16&o?e.uint.decode(d):0,isPreview:!!(32&o)}}},l={preencode(d,o){e.fixed32.preencode(d,o.key),e.string.preencode(d,o.path),e.uint.preencode(d,o.version),e.uint.preencode(d,o.size)},encode(d,o){e.fixed32.encode(d,o.key),e.string.encode(d,o.path),e.uint.encode(d,o.version),e.uint.encode(d,o.size)},decode:d=>({key:e.fixed32.decode(d),path:e.string.decode(d),version:e.uint.decode(d),size:e.uint.decode(d)})},f={preencode(d,o){e.fixed32.preencode(d,o.key),a.preencode(d,o.blob)},encode(d,o){e.fixed32.encode(d,o.key),a.encode(d,o.blob)},decode:d=>({key:e.fixed32.decode(d),blob:a.decode(d)})},m=e.frame(f),y=e.frame(l),b={preencode(o,n){o.end++,n.inlined&&e.buffer.preencode(o,n.inlined),n.blob&&a.preencode(o,n.blob),n.externalBlob&&m.preencode(o,n.externalBlob),n.externalDrive&&y.preencode(o,n.externalDrive),d>=27&&n.bee&&fr.preencode(o,n.bee)},encode(o,n){const c=(n.inlined?1:0)|(n.blob?2:0)|(n.externalBlob?4:0)|(n.externalDrive?8:0)|(d>=27&&n.bee?16:0);e.uint.encode(o,c),n.inlined&&e.buffer.encode(o,n.inlined),n.blob&&a.encode(o,n.blob),n.externalBlob&&m.encode(o,n.externalBlob),n.externalDrive&&y.encode(o,n.externalDrive),d>=27&&n.bee&&fr.encode(o,n.bee)},decode(o){const n=e.uint.decode(o);return{inlined:1&n?e.buffer.decode(o):null,blob:2&n?a.decode(o):null,externalBlob:4&n?m.decode(o):null,externalDrive:8&n?y.decode(o):null,bee:d>=27&&16&n?fr.decode(o):null}}},x=e.frame(b),k=e.frame(u),v={preencode(d,o){x.preencode(d,o.pointer),d.end++,o.metadata&&k.preencode(d,o.metadata),o.preview&&Gi.preencode(d,o.preview),o.hash&&e.fixed32.preencode(d,o.hash)},encode(d,o){const n=(o.metadata?1:0)|(o.preview?2:0)|(o.hash?4:0);x.encode(d,o.pointer),e.uint.encode(d,n),o.metadata&&k.encode(d,o.metadata),o.preview&&Gi.encode(d,o.preview),o.hash&&e.fixed32.encode(d,o.hash)},decode(d){const o=x.decode(d),n=e.uint.decode(d);return{pointer:o,metadata:1&n?k.decode(d):null,preview:2&n?Gi.decode(d):null,hash:4&n?e.fixed32.decode(d):null}}},g=e.frame(v),h=g,K=g,w={preencode(e,d){e.end++,d.small&&g.preencode(e,d.small),d.medium&&h.preencode(e,d.medium),d.large&&K.preencode(e,d.large)},encode(d,o){const n=(o.small?1:0)|(o.medium?2:0)|(o.large?4:0);e.uint.encode(d,n),o.small&&g.encode(d,o.small),o.medium&&h.encode(d,o.medium),o.large&&K.encode(d,o.large)},decode(d){const o=e.uint.decode(d);return{small:1&o?g.decode(d):null,medium:2&o?h.decode(d):null,large:4&o?K.decode(d):null}}},A={preencode(e,d){e.end++},encode(d,o){const n=o.isDeleted?1:0;e.uint.encode(d,n)},decode:d=>({isDeleted:!!(1&e.uint.decode(d))})},T=e.frame(A),S=g,P={preencode(o,c){e.uint.preencode(o,c.id),n.preencode(o,c.oplog),T.preencode(o,c.status),S.preencode(o,c.file),o.end++,d>=14&&c.version&&e.uint.preencode(o,c.version)},encode(o,c){const t=d>=14&&c.version?1:0;e.uint.encode(o,c.id),n.encode(o,c.oplog),T.encode(o,c.status),S.encode(o,c.file),e.uint.encode(o,t),d>=14&&c.version&&e.uint.encode(o,c.version)},decode(o){const c=e.uint.decode(o),t=n.decode(o),r=T.decode(o),i=S.decode(o),a=o.start<o.end?e.uint.decode(o):0;return{id:c,oplog:t,status:r,file:i,version:d>=14&&1&a?e.uint.decode(o):0}}},I={preencode(e,d){e.end++},encode(d,o){const n=(o.isActive?1:0)|(o.isIndexing?2:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isActive:!!(1&o),isIndexing:!!(2&o)}}},F={preencode(o,n){const c=(n.isAdmin?1:0)|(n.isModerator?2:0)|(n.isPending?4:0)|(n.isActive?8:0)|(n.isMuted?16:0)|(n.isBanned?32:0)|(n.isShadowBanned?64:0)|(d>=13&&n.isRemoved?128:0);e.uint.preencode(o,c)},encode(o,n){const c=(n.isAdmin?1:0)|(n.isModerator?2:0)|(n.isPending?4:0)|(n.isActive?8:0)|(n.isMuted?16:0)|(n.isBanned?32:0)|(n.isShadowBanned?64:0)|(d>=13&&n.isRemoved?128:0);e.uint.encode(o,c)},decode(o){const n=e.uint.decode(o);return{isAdmin:!!(1&n),isModerator:!!(2&n),isPending:!!(4&n),isActive:!!(8&n),isMuted:!!(16&n),isBanned:!!(32&n),isShadowBanned:!!(64&n),isRemoved:d>=13&&!!(128&n)}}},R={preencode(e,d){e.end++},encode(d,o){const n=(o.isMuted?1:0)|(o.isBanned?2:0)|(o.isShadowBanned?4:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isMuted:!!(1&o),isBanned:!!(2&o),isShadowBanned:!!(4&o)}}},C={preencode(d,o){e.uint.preencode(d,o.version)},encode(d,o){e.uint.encode(d,o.version)},decode:d=>({version:e.uint.decode(d)})},H={preencode(d,o){e.uint.preencode(d,o.total),e.uint.preencode(d,o.active)},encode(d,o){e.uint.encode(d,o.total),e.uint.encode(d,o.active)},decode:d=>({total:e.uint.decode(d),active:e.uint.decode(d)})},V={preencode(d,o){e.uint.preencode(d,o.total),e.uint.preencode(d,o.active),e.uint.preencode(d,o.pending)},encode(d,o){e.uint.encode(d,o.total),e.uint.encode(d,o.active),e.uint.encode(d,o.pending)},decode:d=>({total:e.uint.decode(d),active:e.uint.decode(d),pending:e.uint.decode(d)})},D={preencode(o,n){e.uint.preencode(o,n.clock),e.uint.preencode(o,n.pinned),e.uint.preencode(o,n.threads),e.uint.preencode(o,n.timestamp),o.end++,d>=15&&n.flagsClock&&e.uint.preencode(o,n.flagsClock)},encode(o,n){const c=d>=15&&n.flagsClock?1:0;e.uint.encode(o,n.clock),e.uint.encode(o,n.pinned),e.uint.encode(o,n.threads),e.uint.encode(o,n.timestamp),e.uint.encode(o,c),d>=15&&n.flagsClock&&e.uint.encode(o,n.flagsClock)},decode(o){const n=e.uint.decode(o),c=e.uint.decode(o),t=e.uint.decode(o),r=e.uint.decode(o),i=o.start<o.end?e.uint.decode(o):0;return{clock:n,pinned:c,threads:t,timestamp:r,flagsClock:d>=15&&1&i?e.uint.decode(o):0}}},M={preencode(d,o){e.uint.preencode(d,o.clock)},encode(d,o){e.uint.encode(d,o.clock)},decode:d=>({clock:e.uint.decode(d)})},L=e.frame(H),q=e.frame(V),E=e.frame(D),B=e.frame(M),z={preencode(e,o){L.preencode(e,o.devices),q.preencode(e,o.members),E.preencode(e,o.chat),B.preencode(e,o.files),e.end++,d>=26&&o.calls&&Qi.preencode(e,o.calls)},encode(o,n){const c=d>=26&&n.calls?1:0;L.encode(o,n.devices),q.encode(o,n.members),E.encode(o,n.chat),B.encode(o,n.files),e.uint.encode(o,c),d>=26&&n.calls&&Qi.encode(o,n.calls)},decode(o){const n=L.decode(o),c=q.decode(o),t=E.decode(o),r=B.decode(o),i=o.start<o.end?e.uint.decode(o):0;return{devices:n,members:c,chat:t,files:r,calls:d>=26&&1&i?Qi.decode(o):null}}},N={Default:1,Broadcast:2,DirectMessage:3},j={preencode(e,d){e.end++},encode(d,o){if(o>3)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},O={preencode(o,n){const c=(n.roomType?1:0)|(n.isExperimental?2:0)|(n.isJoiningDisabled?4:0)|(n.isAppendingDisabled?8:0)|(n.isCallingDisabled?16:0)|(n.isMembershipEventsDisabled?32:0)|(d>=19&&n.isAttachmentsDisabled?64:0)|(d>=19&&n.isLinksDisabled?128:0)|(d>=20&&n.buildType?256:0)|(d>=23&&n.isRoomInviteHidden?512:0);e.uint.preencode(o,c),n.roomType&&j.preencode(o,n.roomType),d>=20&&n.buildType&&Bt.preencode(o,n.buildType)},encode(o,n){const c=(n.roomType?1:0)|(n.isExperimental?2:0)|(n.isJoiningDisabled?4:0)|(n.isAppendingDisabled?8:0)|(n.isCallingDisabled?16:0)|(n.isMembershipEventsDisabled?32:0)|(d>=19&&n.isAttachmentsDisabled?64:0)|(d>=19&&n.isLinksDisabled?128:0)|(d>=20&&n.buildType?256:0)|(d>=23&&n.isRoomInviteHidden?512:0);e.uint.encode(o,c),n.roomType&&j.encode(o,n.roomType),d>=20&&n.buildType&&Bt.encode(o,n.buildType)},decode(o){const n=e.uint.decode(o);return{roomType:1&n?j.decode(o):0,isExperimental:!!(2&n),isJoiningDisabled:!!(4&n),isAppendingDisabled:!!(8&n),isCallingDisabled:!!(16&n),isMembershipEventsDisabled:!!(32&n),isAttachmentsDisabled:d>=19&&!!(64&n),isLinksDisabled:d>=19&&!!(128&n),buildType:d>=20&&256&n?Bt.decode(o):null,isRoomInviteHidden:d>=23&&!!(512&n)}}},U=e.frame(C),J=e.frame(O),G={preencode(d,o){U.preencode(d,o.abi),J.preencode(d,o.settings),e.uint.preencode(d,o.creationTime)},encode(d,o){U.encode(d,o.abi),J.encode(d,o.settings),e.uint.encode(d,o.creationTime)},decode:d=>({abi:U.decode(d),settings:J.decode(d),creationTime:e.uint.decode(d)})},Q={preencode(d,o){e.fixed32.preencode(d,o.seed)},encode(d,o){e.fixed32.encode(d,o.seed)},decode:d=>({seed:e.fixed32.decode(d)})},W={preencode(d,o){c.preencode(d,o.mailboxKeyPair),t.preencode(d,o.discoveryKeyPair),e.fixed32.preencode(d,o.wakeupTopic),e.fixed32.preencode(d,o.swarmTopic)},encode(d,o){c.encode(d,o.mailboxKeyPair),t.encode(d,o.discoveryKeyPair),e.fixed32.encode(d,o.wakeupTopic),e.fixed32.encode(d,o.swarmTopic)},decode:d=>({mailboxKeyPair:c.decode(d),discoveryKeyPair:t.decode(d),wakeupTopic:e.fixed32.decode(d),swarmTopic:e.fixed32.decode(d)})},X=e.array(e.fixed32),Y={preencode(o,n){o.end++,n.title&&e.string.preencode(o,n.title),n.avatar&&Wi.preencode(o,n.avatar),n.description&&e.string.preencode(o,n.description),d>=11&&n.supportedLanguages&&Xi.preencode(o,n.supportedLanguages),d>=13&&n.blindPeers&&X.preencode(o,n.blindPeers)},encode(o,n){const c=(n.title?1:0)|(n.avatar?2:0)|(n.description?4:0)|(d>=11&&n.supportedLanguages?8:0)|(d>=13&&n.blindPeers?16:0);e.uint.encode(o,c),n.title&&e.string.encode(o,n.title),n.avatar&&Wi.encode(o,n.avatar),n.description&&e.string.encode(o,n.description),d>=11&&n.supportedLanguages&&Xi.encode(o,n.supportedLanguages),d>=13&&n.blindPeers&&X.encode(o,n.blindPeers)},decode(o){const n=e.uint.decode(o);return{title:1&n?e.string.decode(o):null,avatar:2&n?Wi.decode(o):null,description:4&n?e.string.decode(o):null,supportedLanguages:d>=11&&8&n?Xi.decode(o):null,blindPeers:d>=13&&16&n?X.decode(o):null}}},Z={preencode(d,o){e.fixed32.preencode(d,o.key)},encode(d,o){e.fixed32.encode(d,o.key)},decode:d=>({key:e.fixed32.decode(d)})},$=e.frame(i),_=e.frame(Z),ee={preencode(e,d){$.preencode(e,d.header),_.preencode(e,d.peer)},encode(e,d){$.encode(e,d.header),_.encode(e,d.peer)},decode:e=>({header:$.decode(e),peer:_.decode(e)})},de=$,oe={preencode(d,o){de.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){de.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:de.decode(d),key:e.fixed32.decode(d)})},ne={preencode(d,o){e.fixed32.preencode(d,o.memberKey),e.buffer.preencode(d,o.proof)},encode(d,o){e.fixed32.encode(d,o.memberKey),e.buffer.encode(d,o.proof)},decode:d=>({memberKey:e.fixed32.decode(d),proof:e.buffer.decode(d)})},ce={preencode(d,o){e.fixed32.preencode(d,o.id),e.buffer.preencode(d,o.response)},encode(d,o){e.fixed32.encode(d,o.id),e.buffer.encode(d,o.response)},decode:d=>({id:e.fixed32.decode(d),response:e.buffer.decode(d)})},te=e.frame(I),re=e.frame(ce),ie={preencode(d,o){e.fixed32.preencode(d,o.key),e.fixed32.preencode(d,o.memberKey),te.preencode(d,o.status),Yi.preencode(d,o.profile),d.end++,o.invitation&&re.preencode(d,o.invitation)},encode(d,o){const n=o.invitation?1:0;e.fixed32.encode(d,o.key),e.fixed32.encode(d,o.memberKey),te.encode(d,o.status),Yi.encode(d,o.profile),e.uint.encode(d,n),o.invitation&&re.encode(d,o.invitation)},decode:d=>({key:e.fixed32.decode(d),memberKey:e.fixed32.decode(d),status:te.decode(d),profile:Yi.decode(d),invitation:1&e.uint.decode(d)?re.decode(d):null})},ae={preencode(d,o){e.uint.preencode(d,o.timestamp),d.end++,o.mailbox&&e.fixed32.preencode(d,o.mailbox),o.displayName&&e.string.preencode(d,o.displayName),o.avatar&&Zi.preencode(d,o.avatar),o.username&&e.string.preencode(d,o.username)},encode(d,o){const n=(o.mailbox?1:0)|(o.displayName?2:0)|(o.avatar?4:0)|(o.username?8:0);e.uint.encode(d,o.timestamp),e.uint.encode(d,n),o.mailbox&&e.fixed32.encode(d,o.mailbox),o.displayName&&e.string.encode(d,o.displayName),o.avatar&&Zi.encode(d,o.avatar),o.username&&e.string.encode(d,o.username)},decode(d){const o=e.uint.decode(d),n=e.uint.decode(d);return{timestamp:o,mailbox:1&n?e.fixed32.decode(d):null,displayName:2&n?e.string.decode(d):null,avatar:4&n?Zi.decode(d):null,username:8&n?e.string.decode(d):null}}},se={preencode(o,n){o.end++,n.swarmKey&&e.fixed32.preencode(o,n.swarmKey),n.name&&e.string.preencode(o,n.name),d>=20&&n.buildType&&Bt.preencode(o,n.buildType)},encode(o,n){const c=(n.swarmKey?1:0)|(n.name?2:0)|(n.isMobile?4:0)|(d>=20&&n.buildType?8:0);e.uint.encode(o,c),n.swarmKey&&e.fixed32.encode(o,n.swarmKey),n.name&&e.string.encode(o,n.name),d>=20&&n.buildType&&Bt.encode(o,n.buildType)},decode(o){const n=e.uint.decode(o);return{swarmKey:1&n?e.fixed32.decode(o):null,name:2&n?e.string.decode(o):null,isMobile:!!(4&n),buildType:d>=20&&8&n?Bt.decode(o):null}}},pe=e.frame(ae),ue={preencode(e,d){pe.preencode(e,d.profile),ne.preencode(e,d.attestation)},encode(e,d){pe.encode(e,d.profile),ne.encode(e,d.attestation)},decode:e=>({profile:pe.decode(e),attestation:ne.decode(e)})},le={preencode(e,d){$i.preencode(e,d.profile),ne.preencode(e,d.attestation)},encode(e,d){$i.encode(e,d.profile),ne.encode(e,d.attestation)},decode:e=>({profile:$i.decode(e),attestation:ne.decode(e)})},fe={preencode(d,o){e.fixed32.preencode(d,o.id),e.buffer.preencode(d,o.data),e.buffer.preencode(d,o.signature)},encode(d,o){e.fixed32.encode(d,o.id),e.buffer.encode(d,o.data),e.buffer.encode(d,o.signature)},decode:d=>({id:e.fixed32.decode(d),data:e.buffer.decode(d),signature:e.buffer.decode(d)})},me={preencode(d,o){e.fixed32.preencode(d,o.devicePublicKey)},encode(d,o){e.fixed32.encode(d,o.devicePublicKey)},decode:d=>({devicePublicKey:e.fixed32.decode(d)})},ye={preencode(d,o){ne.preencode(d,o.privateProfileIdentity),e.buffer.preencode(d,o.deviceProof)},encode(d,o){ne.encode(d,o.privateProfileIdentity),e.buffer.encode(d,o.deviceProof)},decode:d=>({privateProfileIdentity:ne.decode(d),deviceProof:e.buffer.decode(d)})},be=e.frame(le),xe=e.frame(ue),ke=e.frame(me),ve={preencode(n,c){e.fixed32.preencode(n,c.deviceKey),t.preencode(n,c.keyPair),be.preencode(n,c.device),xe.preencode(n,c.member),n.end++,c.identity&&ke.preencode(n,c.identity),d>=27&&c.link&&o.preencode(n,c.link)},encode(n,c){const r=(c.identity?1:0)|(d>=27&&c.link?2:0);e.fixed32.encode(n,c.deviceKey),t.encode(n,c.keyPair),be.encode(n,c.device),xe.encode(n,c.member),e.uint.encode(n,r),c.identity&&ke.encode(n,c.identity),d>=27&&c.link&&o.encode(n,c.link)},decode(n){const c=e.fixed32.decode(n),r=t.decode(n),i=be.decode(n),a=xe.decode(n),s=e.uint.decode(n);return{deviceKey:c,keyPair:r,device:i,member:a,identity:1&s?ke.decode(n):null,link:d>=27&&2&s?o.decode(n):null}}},ge=e.frame(ve),he={preencode(d,o){e.fixed32.preencode(d,o.id),ge.preencode(d,o.request),e.buffer.preencode(d,o.signature)},encode(d,o){e.fixed32.encode(d,o.id),ge.encode(d,o.request),e.buffer.encode(d,o.signature)},decode:d=>({id:e.fixed32.decode(d),request:ge.decode(d),signature:e.buffer.decode(d)})},Ke=be,we=xe,Ae={preencode(e,d){Ke.preencode(e,d.device),e.end++,d.member&&we.preencode(e,d.member)},encode(d,o){const n=o.member?1:0;Ke.encode(d,o.device),e.uint.encode(d,n),o.member&&we.encode(d,o.member)},decode:d=>({device:Ke.decode(d),member:1&e.uint.decode(d)?we.decode(d):null})},Te=e.frame(he),Se=e.frame(Ae),Pe={preencode(e,d){e.end++,d.withInvitation&&Te.preencode(e,d.withInvitation),d.withMemberProof&&Se.preencode(e,d.withMemberProof)},encode(d,o){const n=(o.withInvitation?1:0)|(o.withMemberProof?2:0);e.uint.encode(d,n),o.withInvitation&&Te.encode(d,o.withInvitation),o.withMemberProof&&Se.encode(d,o.withMemberProof)},decode(d){const o=e.uint.decode(d);return{withInvitation:1&o?Te.decode(d):null,withMemberProof:2&o?Se.decode(d):null}}},Ie=e.frame(fe),Fe=e.frame(ye),Re={preencode(e,d){Ie.preencode(e,d.signedKeys),e.end++,d.identity&&Fe.preencode(e,d.identity)},encode(d,o){const n=o.identity?1:0;Ie.encode(d,o.signedKeys),e.uint.encode(d,n),o.identity&&Fe.encode(d,o.identity)},decode:d=>({signedKeys:Ie.decode(d),identity:1&e.uint.decode(d)?Fe.decode(d):null})},Ce={preencode(o,n){o.end++,n.expiration&&e.uint.preencode(o,n.expiration),d>=20&&n.buildType&&Bt.preencode(o,n.buildType)},encode(o,n){const c=(n.expiration?1:0)|(n.requiresConfirmation?2:0)|(n.canModerate?4:0)|(n.canAdmin?8:0)|(d>=20&&n.buildType?16:0);e.uint.encode(o,c),n.expiration&&e.uint.encode(o,n.expiration),d>=20&&n.buildType&&Bt.encode(o,n.buildType)},decode(o){const n=e.uint.decode(o);return{expiration:1&n?e.uint.decode(o):0,requiresConfirmation:!!(2&n),canModerate:!!(4&n),canAdmin:!!(8&n),buildType:d>=20&&16&n?Bt.decode(o):null}}},He=Ie,Ve=e.frame(Ce),De={preencode(d,n){e.fixed32.preencode(d,n.id),He.preencode(d,n.response),Ve.preencode(d,n.metadata),d.end++,n.anchor&&o.preencode(d,n.anchor)},encode(d,n){const c=(n.anchor?1:0)|(n.isActive?2:0);e.fixed32.encode(d,n.id),He.encode(d,n.response),Ve.encode(d,n.metadata),e.uint.encode(d,c),n.anchor&&o.encode(d,n.anchor)},decode(d){const n=e.fixed32.decode(d),c=He.decode(d),t=Ve.decode(d),r=e.uint.decode(d);return{id:n,response:c,metadata:t,anchor:1&r?o.decode(d):null,isActive:!!(2&r)}}},Me=$,Le=e.frame(De),qe={preencode(e,d){Me.preencode(e,d.header),Le.preencode(e,d.invitation)},encode(e,d){Me.encode(e,d.header),Le.encode(e,d.invitation)},decode:e=>({header:Me.decode(e),invitation:Le.decode(e)})},Ee=$,Be={preencode(d,o){Ee.preencode(d,o.header),e.fixed32.preencode(d,o.id)},encode(d,o){Ee.encode(d,o.header),e.fixed32.encode(d,o.id)},decode:d=>({header:Ee.decode(d),id:e.fixed32.decode(d)})},ze={preencode(d,n){e.fixed32.preencode(d,n.mailbox),e.fixed32.preencode(d,n.invitationSeed),o.preencode(d,n.anchor)},encode(d,n){e.fixed32.encode(d,n.mailbox),e.fixed32.encode(d,n.invitationSeed),o.encode(d,n.anchor)},decode:d=>({mailbox:e.fixed32.decode(d),invitationSeed:e.fixed32.decode(d),anchor:o.decode(d)})},Ne={preencode(d,n){e.fixed32.preencode(d,n.mailbox),e.fixed32.preencode(d,n.invitationSeed),o.preencode(d,n.anchor),e.fixed32.preencode(d,n.identityPublicKey)},encode(d,n){e.fixed32.encode(d,n.mailbox),e.fixed32.encode(d,n.invitationSeed),o.encode(d,n.anchor),e.fixed32.encode(d,n.identityPublicKey)},decode:d=>({mailbox:e.fixed32.decode(d),invitationSeed:e.fixed32.decode(d),anchor:o.decode(d),identityPublicKey:e.fixed32.decode(d)})},je={preencode(d,o){e.fixed32.preencode(d,o.mailbox)},encode(d,o){e.fixed32.encode(d,o.mailbox)},decode:d=>({mailbox:e.fixed32.decode(d)})},Oe=e.frame(ze),Ue=e.frame(Ne),Je=e.frame(je),Ge=e.array(e.ipv4Address),Qe={preencode(e,o){e.end++,o.room&&Oe.preencode(e,o.room),o.identity&&Ue.preencode(e,o.identity),o.contact&&Je.preencode(e,o.contact),d>=6&&o.readonly&&_i.preencode(e,o.readonly),d>=11&&o.additionalNodes&&Ge.preencode(e,o.additionalNodes),d>=20&&o.buildType&&Bt.preencode(e,o.buildType),d>=27&&o["readonly-v2"]&&ea.preencode(e,o["readonly-v2"])},encode(o,n){const c=(n.room?1:0)|(n.identity?2:0)|(n.contact?4:0)|(d>=6&&n.readonly?8:0)|(d>=11&&n.additionalNodes?16:0)|(d>=20&&n.buildType?32:0)|(d>=27&&n["readonly-v2"]?64:0);e.uint.encode(o,c),n.room&&Oe.encode(o,n.room),n.identity&&Ue.encode(o,n.identity),n.contact&&Je.encode(o,n.contact),d>=6&&n.readonly&&_i.encode(o,n.readonly),d>=11&&n.additionalNodes&&Ge.encode(o,n.additionalNodes),d>=20&&n.buildType&&Bt.encode(o,n.buildType),d>=27&&n["readonly-v2"]&&ea.encode(o,n["readonly-v2"])},decode(o){const n=e.uint.decode(o);return{room:1&n?Oe.decode(o):null,identity:2&n?Ue.decode(o):null,contact:4&n?Je.decode(o):null,readonly:d>=6&&8&n?_i.decode(o):null,additionalNodes:d>=11&&16&n?Ge.decode(o):null,buildType:d>=20&&32&n?Bt.decode(o):null,"readonly-v2":d>=27&&64&n?ea.decode(o):null}}},We=$,Xe={preencode(d,o){We.preencode(d,o.header),e.buffer.preencode(d,o.blindRequest)},encode(d,o){We.encode(d,o.header),e.buffer.encode(d,o.blindRequest)},decode:d=>({header:We.decode(d),blindRequest:e.buffer.decode(d)})},Ye=$,Ze={preencode(o,n){Ye.preencode(o,n.header),o.end++,n.profile&&da.preencode(o,n.profile),d>=24&&n.key&&e.fixed32.preencode(o,n.key)},encode(o,n){const c=(n.profile?1:0)|(d>=24&&n.key?2:0);Ye.encode(o,n.header),e.uint.encode(o,c),n.profile&&da.encode(o,n.profile),d>=24&&n.key&&e.fixed32.encode(o,n.key)},decode(o){const n=Ye.decode(o),c=e.uint.decode(o);return{header:n,profile:1&c?da.decode(o):null,key:d>=24&&2&c?e.fixed32.decode(o):null}}},$e={preencode(e,d){},encode(e,d){},decode:e=>({})},_e=$e,ed=ge,dd={preencode(d,o){e.fixed32.preencode(d,o.deviceKey),e.fixed32.preencode(d,o.id),ed.preencode(d,o.request)},encode(d,o){e.fixed32.encode(d,o.deviceKey),e.fixed32.encode(d,o.id),ed.encode(d,o.request)},decode:d=>({deviceKey:e.fixed32.decode(d),id:e.fixed32.decode(d),request:ed.decode(d)})},od=$,nd=Fe,cd={preencode(d,o){od.preencode(d,o.header),e.fixed32.preencode(d,o.deviceKey),d.end++,o.identity&&nd.preencode(d,o.identity)},encode(d,o){const n=o.identity?1:0;od.encode(d,o.header),e.fixed32.encode(d,o.deviceKey),e.uint.encode(d,n),o.identity&&nd.encode(d,o.identity)},decode:d=>({header:od.decode(d),deviceKey:e.fixed32.decode(d),identity:1&e.uint.decode(d)?nd.decode(d):null})},td=$,rd={preencode(d,o){td.preencode(d,o.header),e.fixed32.preencode(d,o.deviceKey)},encode(d,o){td.encode(d,o.header),e.fixed32.encode(d,o.deviceKey)},decode:d=>({header:td.decode(d),deviceKey:e.fixed32.decode(d)})},id=e.frame(F),ad=pe,sd={preencode(d,o){e.fixed32.preencode(d,o.key),id.preencode(d,o.status),ad.preencode(d,o.profile)},encode(d,o){e.fixed32.encode(d,o.key),id.encode(d,o.status),ad.encode(d,o.profile)},decode:d=>({key:e.fixed32.decode(d),status:id.decode(d),profile:ad.decode(d)})},pd=id,ud=pe,ld={preencode(d,o){e.fixed32.preencode(d,o.key),pd.preencode(d,o.status),ud.preencode(d,o.profile),d.end++,o.proofs&&oa.preencode(d,o.proofs)},encode(d,o){const n=o.proofs?1:0;e.fixed32.encode(d,o.key),pd.encode(d,o.status),ud.encode(d,o.profile),e.uint.encode(d,n),o.proofs&&oa.encode(d,o.proofs)},decode:d=>({key:e.fixed32.decode(d),status:pd.decode(d),profile:ud.decode(d),proofs:1&e.uint.decode(d)?oa.decode(d):null})},fd={preencode(d,o){e.fixed32.preencode(d,o.key),d.end++,o.profileAttestation&&e.buffer.preencode(d,o.profileAttestation),o.latestReceipt&&e.buffer.preencode(d,o.latestReceipt)},encode(d,o){const n=(o.profileAttestation?1:0)|(o.latestReceipt?2:0);e.fixed32.encode(d,o.key),e.uint.encode(d,n),o.profileAttestation&&e.buffer.encode(d,o.profileAttestation),o.latestReceipt&&e.buffer.encode(d,o.latestReceipt)},decode(d){const o=e.fixed32.decode(d),n=e.uint.decode(d);return{key:o,profileAttestation:1&n?e.buffer.decode(d):null,latestReceipt:2&n?e.buffer.decode(d):null}}},md=$,yd=xe,bd={preencode(e,d){md.preencode(e,d.header),yd.preencode(e,d.member)},encode(e,d){md.encode(e,d.header),yd.encode(e,d.member)},decode:e=>({header:md.decode(e),member:yd.decode(e)})},xd=$,kd=e.frame(R),vd={preencode(d,o){xd.preencode(d,o.header),e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.key),kd.preencode(d,o.status)},encode(d,o){xd.encode(d,o.header),e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.key),kd.encode(d,o.status)},decode:d=>({header:xd.decode(d),memberKey:e.fixed32.decode(d),key:e.uint.decode(d),status:kd.decode(d)})},gd=$,hd={preencode(d,o){gd.preencode(d,o.header),e.fixed32.preencode(d,o.key),d.end++},encode(d,o){const n=(o.isModerator?1:0)|(o.isAdmin?2:0);gd.encode(d,o.header),e.fixed32.encode(d,o.key),e.uint.encode(d,n)},decode(d){const o=gd.decode(d),n=e.fixed32.decode(d),c=e.uint.decode(d);return{header:o,key:n,isModerator:!!(1&c),isAdmin:!!(2&c)}}},Kd=$,wd={preencode(d,o){Kd.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){Kd.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:Kd.decode(d),key:e.fixed32.decode(d)})},Ad={preencode(d,o){e.fixed32.preencode(d,o.key),e.uint.preencode(d,o.mentions)},encode(d,o){e.fixed32.encode(d,o.key),e.uint.encode(d,o.mentions)},decode:d=>({key:e.fixed32.decode(d),mentions:e.uint.decode(d)})},Td={preencode(d,o){d.end++,o.memberKey&&e.fixed32.preencode(d,o.memberKey)},encode(d,o){const n=o.memberKey?1:0;e.uint.encode(d,n),o.memberKey&&e.fixed32.encode(d,o.memberKey)},decode:d=>({memberKey:1&e.uint.decode(d)?e.fixed32.decode(d):null})},Sd=Td,Pd={preencode(d,o){d.end++,o.from&&e.string.preencode(d,o.from),o.to&&e.string.preencode(d,o.to)},encode(d,o){const n=(o.from?1:0)|(o.to?2:0);e.uint.encode(d,n),o.from&&e.string.encode(d,o.from),o.to&&e.string.encode(d,o.to)},decode(d){const o=e.uint.decode(d);return{from:1&o?e.string.decode(d):null,to:2&o?e.string.decode(d):null}}},Id=e.frame(Td),Fd=e.frame(Sd),Rd=e.frame(Pd),Cd={preencode(o,n){const c=(n.memberJoined?1:0)|(n.memberLeft?2:0)|(n.titleChanged?4:0)|(n.callStarted?8:0)|(n.callHangup?16:0)|(n.callMissed?32:0)|(d>=3&&n.roomAvatarChanged?64:0)|(d>=3&&n.invitationCreated?128:0)|(d>=3&&n.memberRemoved?256:0)|(d>=18&&n.locationShared?512:0);e.uint.preencode(o,c),n.memberJoined&&Id.preencode(o,n.memberJoined),n.memberLeft&&Fd.preencode(o,n.memberLeft),n.titleChanged&&Rd.preencode(o,n.titleChanged),d>=3&&n.memberRemoved&&na.preencode(o,n.memberRemoved),d>=18&&n.locationShared&&ca.preencode(o,n.locationShared)},encode(o,n){const c=(n.memberJoined?1:0)|(n.memberLeft?2:0)|(n.titleChanged?4:0)|(n.callStarted?8:0)|(n.callHangup?16:0)|(n.callMissed?32:0)|(d>=3&&n.roomAvatarChanged?64:0)|(d>=3&&n.invitationCreated?128:0)|(d>=3&&n.memberRemoved?256:0)|(d>=18&&n.locationShared?512:0);e.uint.encode(o,c),n.memberJoined&&Id.encode(o,n.memberJoined),n.memberLeft&&Fd.encode(o,n.memberLeft),n.titleChanged&&Rd.encode(o,n.titleChanged),d>=3&&n.memberRemoved&&na.encode(o,n.memberRemoved),d>=18&&n.locationShared&&ca.encode(o,n.locationShared)},decode(o){const n=e.uint.decode(o);return{memberJoined:1&n?Id.decode(o):null,memberLeft:2&n?Fd.decode(o):null,titleChanged:4&n?Rd.decode(o):null,callStarted:!!(8&n),callHangup:!!(16&n),callMissed:!!(32&n),roomAvatarChanged:d>=3&&!!(64&n),invitationCreated:d>=3&&!!(128&n),memberRemoved:d>=3&&256&n?na.decode(o):null,locationShared:d>=18&&512&n?ca.decode(o):null}}},Hd={preencode(e,o){e.end++,d>=18&&o.locationShared&&ta.preencode(e,o.locationShared)},encode(o,n){const c=(n.callStarted?1:0)|(n.callHangup?2:0)|(n.callMissed?4:0)|(d>=18&&n.locationShared?8:0);e.uint.encode(o,c),d>=18&&n.locationShared&&ta.encode(o,n.locationShared)},decode(o){const n=e.uint.decode(o);return{callStarted:!!(1&n),callHangup:!!(2&n),callMissed:!!(4&n),locationShared:d>=18&&8&n?ta.decode(o):null}}},Vd={preencode(d,o){e.uint.preencode(d,o.start),e.uint.preencode(d,o.length)},encode(d,o){e.uint.encode(d,o.start),e.uint.encode(d,o.length)},decode:d=>({start:e.uint.decode(d),length:e.uint.decode(d)})},Dd=e.frame(Vd),Md={preencode(d,o){Dd.preencode(d,o.range),e.string.preencode(d,o.content)},encode(d,o){Dd.encode(d,o.range),e.string.encode(d,o.content)},decode:d=>({range:Dd.decode(d),content:e.string.decode(d)})},Ld=Dd,qd={preencode(d,o){Ld.preencode(d,o.range),e.fixed32.preencode(d,o.memberKey)},encode(d,o){Ld.encode(d,o.range),e.fixed32.encode(d,o.memberKey)},decode:d=>({range:Ld.decode(d),memberKey:e.fixed32.decode(d)})},Ed=g,Bd=e.array(e.uint),zd={preencode(o,n){o.end++,n.title&&e.string.preencode(o,n.title),n.description&&e.string.preencode(o,n.description),n.file&&Ed.preencode(o,n.file),d>=7&&n.files&&Bd.preencode(o,n.files)},encode(o,n){const c=(n.title?1:0)|(n.description?2:0)|(n.file?4:0)|(d>=7&&n.files?8:0);e.uint.encode(o,c),n.title&&e.string.encode(o,n.title),n.description&&e.string.encode(o,n.description),n.file&&Ed.encode(o,n.file),d>=7&&n.files&&Bd.encode(o,n.files)},decode(o){const n=e.uint.decode(o);return{title:1&n?e.string.decode(o):null,description:2&n?e.string.decode(o):null,file:4&n?Ed.decode(o):null,files:d>=7&&8&n?Bd.decode(o):null}}},Nd=Dd,jd=e.frame(zd),Od={preencode(d,o){Nd.preencode(d,o.range),e.string.preencode(d,o.url),d.end++,o.preview&&jd.preencode(d,o.preview)},encode(d,o){const n=o.preview?1:0;Nd.encode(d,o.range),e.string.encode(d,o.url),e.uint.encode(d,n),o.preview&&jd.encode(d,o.preview)},decode:d=>({range:Nd.decode(d),url:e.string.decode(d),preview:1&e.uint.decode(d)?jd.decode(d):null})},Ud=e.array(e.frame(qd)),Jd=e.array(e.frame(Od)),Gd=Jd,Qd=e.array(e.frame(Vd)),Wd=Qd,Xd=Qd,Yd=e.array(e.frame(Md)),Zd=Qd,$d=Qd,_d={preencode(o,n){const c=(n.mention?1:0)|(n.httpLink?2:0)|(n.pearLink?4:0)|(n.bold?8:0)|(n.italic?16:0)|(n.code?32:0)|(n.emoji?64:0)|(n.codeBlock?128:0)|(n.strike?256:0)|(d>=11&&n.translation?512:0);e.uint.preencode(o,c),n.mention&&Ud.preencode(o,n.mention),n.httpLink&&Jd.preencode(o,n.httpLink),n.pearLink&&Gd.preencode(o,n.pearLink),n.bold&&Qd.preencode(o,n.bold),n.italic&&Wd.preencode(o,n.italic),n.code&&Xd.preencode(o,n.code),n.emoji&&Yd.preencode(o,n.emoji),n.codeBlock&&Zd.preencode(o,n.codeBlock),n.strike&&$d.preencode(o,n.strike),d>=11&&n.translation&&ra.preencode(o,n.translation)},encode(o,n){const c=(n.mention?1:0)|(n.httpLink?2:0)|(n.pearLink?4:0)|(n.bold?8:0)|(n.italic?16:0)|(n.code?32:0)|(n.emoji?64:0)|(n.codeBlock?128:0)|(n.strike?256:0)|(d>=11&&n.translation?512:0);e.uint.encode(o,c),n.mention&&Ud.encode(o,n.mention),n.httpLink&&Jd.encode(o,n.httpLink),n.pearLink&&Gd.encode(o,n.pearLink),n.bold&&Qd.encode(o,n.bold),n.italic&&Wd.encode(o,n.italic),n.code&&Xd.encode(o,n.code),n.emoji&&Yd.encode(o,n.emoji),n.codeBlock&&Zd.encode(o,n.codeBlock),n.strike&&$d.encode(o,n.strike),d>=11&&n.translation&&ra.encode(o,n.translation)},decode(o){const n=e.uint.decode(o);return{mention:1&n?Ud.decode(o):null,httpLink:2&n?Jd.decode(o):null,pearLink:4&n?Gd.decode(o):null,bold:8&n?Qd.decode(o):null,italic:16&n?Wd.decode(o):null,code:32&n?Xd.decode(o):null,emoji:64&n?Yd.decode(o):null,codeBlock:128&n?Zd.decode(o):null,strike:256&n?$d.decode(o):null,translation:d>=11&&512&n?ra.decode(o):null}}},eo=e.array(e.frame(v)),oo=e.frame(_d),no=e.frame(Hd),co={preencode(d,o){d.end++,o.text&&e.string.preencode(d,o.text),o.files&&eo.preencode(d,o.files),o.display&&oo.preencode(d,o.display),o.replyTo&&n.preencode(d,o.replyTo),o.parent&&n.preencode(d,o.parent),o.event&&no.preencode(d,o.event)},encode(o,c){const t=(c.text?1:0)|(c.files?2:0)|(c.display?4:0)|(c.replyTo?8:0)|(c.parent?16:0)|(c.event?32:0)|(d>=18&&c.forwarded?64:0);e.uint.encode(o,t),c.text&&e.string.encode(o,c.text),c.files&&eo.encode(o,c.files),c.display&&oo.encode(o,c.display),c.replyTo&&n.encode(o,c.replyTo),c.parent&&n.encode(o,c.parent),c.event&&no.encode(o,c.event)},decode(o){const c=e.uint.decode(o);return{text:1&c?e.string.decode(o):null,files:2&c?eo.decode(o):null,display:4&c?oo.decode(o):null,replyTo:8&c?n.decode(o):null,parent:16&c?n.decode(o):null,event:32&c?no.decode(o):null,forwarded:d>=18&&!!(64&c)}}},to=Bd,ro=oo,io={preencode(d,o){d.end++,o.text&&e.string.preencode(d,o.text),o.files&&to.preencode(d,o.files),o.display&&ro.preencode(d,o.display),o.replyTo&&n.preencode(d,o.replyTo),o.parent&&n.preencode(d,o.parent)},encode(o,c){const t=(c.text?1:0)|(c.files?2:0)|(c.display?4:0)|(c.replyTo?8:0)|(c.parent?16:0)|(d>=18&&c.forwarded?32:0);e.uint.encode(o,t),c.text&&e.string.encode(o,c.text),c.files&&to.encode(o,c.files),c.display&&ro.encode(o,c.display),c.replyTo&&n.encode(o,c.replyTo),c.parent&&n.encode(o,c.parent)},decode(o){const c=e.uint.decode(o);return{text:1&c?e.string.decode(o):null,files:2&c?to.decode(o):null,display:4&c?ro.decode(o):null,replyTo:8&c?n.decode(o):null,parent:16&c?n.decode(o):null,forwarded:d>=18&&!!(32&c)}}},ao=eo,so=oo,po={preencode(d,o){d.end++,o.text&&e.string.preencode(d,o.text),o.files&&ao.preencode(d,o.files),o.display&&so.preencode(d,o.display),o.replyTo&&n.preencode(d,o.replyTo),o.parent&&n.preencode(d,o.parent)},encode(o,c){const t=(c.text?1:0)|(c.files?2:0)|(c.display?4:0)|(c.replyTo?8:0)|(c.parent?16:0)|(d>=18&&c.forwarded?32:0);e.uint.encode(o,t),c.text&&e.string.encode(o,c.text),c.files&&ao.encode(o,c.files),c.display&&so.encode(o,c.display),c.replyTo&&n.encode(o,c.replyTo),c.parent&&n.encode(o,c.parent)},decode(o){const c=e.uint.decode(o);return{text:1&c?e.string.decode(o):null,files:2&c?ao.decode(o):null,display:4&c?so.decode(o):null,replyTo:8&c?n.decode(o):null,parent:16&c?n.decode(o):null,forwarded:d>=18&&!!(32&c)}}},uo={preencode(e,d){e.end++},encode(d,o){const n=(o.isEdited?1:0)|(o.isDeleted?2:0)|(o.isPinned?4:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isEdited:!!(1&o),isDeleted:!!(2&o),isPinned:!!(4&o)}}},lo={preencode(d,o){e.uint.preencode(d,o.thread),e.uint.preencode(d,o.index)},encode(d,o){e.uint.encode(d,o.thread),e.uint.encode(d,o.index)},decode:d=>({thread:e.uint.decode(d),index:e.uint.decode(d)})},fo=e.frame(z),mo={preencode(d,o){e.uint.preencode(d,o.id),e.uint.preencode(d,o.count),d.end++,o.parent&&n.preencode(d,o.parent),o.stats&&fo.preencode(d,o.stats)},encode(d,o){const c=(o.parent?1:0)|(o.stats?2:0);e.uint.encode(d,o.id),e.uint.encode(d,o.count),e.uint.encode(d,c),o.parent&&n.encode(d,o.parent),o.stats&&fo.encode(d,o.stats)},decode(d){const o=e.uint.decode(d),c=e.uint.decode(d),t=e.uint.decode(d);return{id:o,count:c,parent:1&t?n.decode(d):null,stats:2&t?fo.decode(d):null}}},yo=e.frame(uo),bo=e.frame(io),xo=e.frame(Cd),ko={preencode(d,o){lo.preencode(d,o.id),n.preencode(d,o.oplog),e.uint.preencode(d,o.clock),e.uint.preencode(d,o.timestamp),d.end++,o.editedAt&&e.uint.preencode(d,o.editedAt),yo.preencode(d,o.status),o.message&&bo.preencode(d,o.message),o.event&&xo.preencode(d,o.event)},encode(d,o){const c=(o.editedAt?1:0)|(o.message?2:0)|(o.event?4:0);lo.encode(d,o.id),n.encode(d,o.oplog),e.uint.encode(d,o.clock),e.uint.encode(d,o.timestamp),e.uint.encode(d,c),o.editedAt&&e.uint.encode(d,o.editedAt),yo.encode(d,o.status),o.message&&bo.encode(d,o.message),o.event&&xo.encode(d,o.event)},decode(d){const o=lo.decode(d),c=n.decode(d),t=e.uint.decode(d),r=e.uint.decode(d),i=e.uint.decode(d);return{id:o,oplog:c,clock:t,timestamp:r,editedAt:1&i?e.uint.decode(d):0,status:yo.decode(d),message:2&i?bo.decode(d):null,event:4&i?xo.decode(d):null}}},vo=yo,go=e.frame(po),ho=xo,Ko={preencode(d,o){lo.preencode(d,o.id),n.preencode(d,o.oplog),e.uint.preencode(d,o.clock),e.uint.preencode(d,o.timestamp),d.end++,o.editedAt&&e.uint.preencode(d,o.editedAt),vo.preencode(d,o.status),o.message&&go.preencode(d,o.message),o.event&&ho.preencode(d,o.event)},encode(d,o){const c=(o.editedAt?1:0)|(o.message?2:0)|(o.event?4:0);lo.encode(d,o.id),n.encode(d,o.oplog),e.uint.encode(d,o.clock),e.uint.encode(d,o.timestamp),e.uint.encode(d,c),o.editedAt&&e.uint.encode(d,o.editedAt),vo.encode(d,o.status),o.message&&go.encode(d,o.message),o.event&&ho.encode(d,o.event)},decode(d){const o=lo.decode(d),c=n.decode(d),t=e.uint.decode(d),r=e.uint.decode(d),i=e.uint.decode(d);return{id:o,oplog:c,clock:t,timestamp:r,editedAt:1&i?e.uint.decode(d):0,status:vo.decode(d),message:2&i?go.decode(d):null,event:4&i?ho.decode(d):null}}},wo=$,Ao=e.frame(co),To={preencode(e,d){wo.preencode(e,d.header),Ao.preencode(e,d.message)},encode(e,d){wo.encode(e,d.header),Ao.encode(e,d.message)},decode:e=>({header:wo.decode(e),message:Ao.decode(e)})},So=$,Po={preencode(e,d){So.preencode(e,d.header),n.preencode(e,d.oplog)},encode(e,d){So.encode(e,d.header),n.encode(e,d.oplog)},decode:e=>({header:So.decode(e),oplog:n.decode(e)})},Io=$,Fo=Ao,Ro={preencode(e,d){Io.preencode(e,d.header),n.preencode(e,d.oplog),Fo.preencode(e,d.message)},encode(e,d){Io.encode(e,d.header),n.encode(e,d.oplog),Fo.encode(e,d.message)},decode:e=>({header:Io.decode(e),oplog:n.decode(e),message:Fo.decode(e)})},Co=$,Ho={preencode(e,d){Co.preencode(e,d.header),n.preencode(e,d.oplog),e.end++},encode(d,o){const c=o.isPinned?1:0;Co.encode(d,o.header),n.encode(d,o.oplog),e.uint.encode(d,c)},decode:d=>({header:Co.decode(d),oplog:n.decode(d),isPinned:!!(1&e.uint.decode(d))})},Vo={preencode(d,o){lo.preencode(d,o.id),e.fixed32.preencode(d,o.sender),e.uint.preencode(d,o.clock),e.string.preencode(d,o.reaction)},encode(d,o){lo.encode(d,o.id),e.fixed32.encode(d,o.sender),e.uint.encode(d,o.clock),e.string.encode(d,o.reaction)},decode:d=>({id:lo.decode(d),sender:e.fixed32.decode(d),clock:e.uint.decode(d),reaction:e.string.decode(d)})},Do={preencode(d,o){e.string.preencode(d,o.text),e.uint.preencode(d,o.count)},encode(d,o){e.string.encode(d,o.text),e.uint.encode(d,o.count)},decode:d=>({text:e.string.decode(d),count:e.uint.decode(d)})},Mo=e.array(e.frame(Do)),Lo={preencode(o,n){lo.preencode(o,n.id),e.uint.preencode(o,n.total),Mo.preencode(o,n.reactions),o.end++,d>=11&&n.editedAt&&e.uint.preencode(o,n.editedAt)},encode(o,n){const c=d>=11&&n.editedAt?1:0;lo.encode(o,n.id),e.uint.encode(o,n.total),Mo.encode(o,n.reactions),e.uint.encode(o,c),d>=11&&n.editedAt&&e.uint.encode(o,n.editedAt)},decode(o){const n=lo.decode(o),c=e.uint.decode(o),t=Mo.decode(o),r=o.start<o.end?e.uint.decode(o):0;return{id:n,total:c,reactions:t,editedAt:d>=11&&1&r?e.uint.decode(o):0}}},qo=$,Eo={preencode(d,o){qo.preencode(d,o.header),n.preencode(d,o.oplog),e.string.preencode(d,o.reaction)},encode(d,o){qo.encode(d,o.header),n.encode(d,o.oplog),e.string.encode(d,o.reaction)},decode:d=>({header:qo.decode(d),oplog:n.decode(d),reaction:e.string.decode(d)})},Bo=$,zo={preencode(d,o){Bo.preencode(d,o.header),n.preencode(d,o.oplog),e.string.preencode(d,o.reaction)},encode(d,o){Bo.encode(d,o.header),n.encode(d,o.oplog),e.string.encode(d,o.reaction)},decode:d=>({header:Bo.decode(d),oplog:n.decode(d),reaction:e.string.decode(d)})},No=$,jo=e.frame(Y),Oo={preencode(d,o){No.preencode(d,o.header),e.uint.preencode(d,o.key),jo.preencode(d,o.config)},encode(d,o){No.encode(d,o.header),e.uint.encode(d,o.key),jo.encode(d,o.config)},decode:d=>({header:No.decode(d),key:e.uint.decode(d),config:jo.decode(d)})},Uo={preencode(d,o){e.fixed32.preencode(d,o.memberKey),e.string.preencode(d,o.displayName),d.end++,o.avatar&&ia.preencode(d,o.avatar)},encode(d,o){const n=o.avatar?1:0;e.fixed32.encode(d,o.memberKey),e.string.encode(d,o.displayName),e.uint.encode(d,n),o.avatar&&ia.encode(d,o.avatar)},decode:d=>({memberKey:e.fixed32.decode(d),displayName:e.string.decode(d),avatar:1&e.uint.decode(d)?ia.decode(d):null})},Jo={preencode(d,o){e.fixed32.preencode(d,o.key),d.end++,o.username&&e.string.preencode(d,o.username)},encode(d,o){const n=o.username?1:0;e.fixed32.encode(d,o.key),e.uint.encode(d,n),o.username&&e.string.encode(d,o.username)},decode:d=>({key:e.fixed32.decode(d),username:1&e.uint.decode(d)?e.string.decode(d):null})},Go=e.frame(Jo),Qo={preencode(d,o){e.fixed32.preencode(d,o.publicKey),d.end++,o.discoveryCoreKey&&e.fixed32.preencode(d,o.discoveryCoreKey),o.userRegistry&&Go.preencode(d,o.userRegistry)},encode(d,o){const n=(o.discoveryCoreKey?1:0)|(o.userRegistry?2:0);e.fixed32.encode(d,o.publicKey),e.uint.encode(d,n),o.discoveryCoreKey&&e.fixed32.encode(d,o.discoveryCoreKey),o.userRegistry&&Go.encode(d,o.userRegistry)},decode(d){const o=e.fixed32.decode(d),n=e.uint.decode(d);return{publicKey:o,discoveryCoreKey:1&n?e.fixed32.decode(d):null,userRegistry:2&n?Go.decode(d):null}}},Wo=$,Xo=e.frame(G),Yo=e.frame(Q),Zo=jo,$o=e.frame(Qo),_o=be,en=e.array(e.frame(ue)),dn={preencode(e,d){Wo.preencode(e,d.header),Xo.preencode(e,d.digest),Yo.preencode(e,d.capabilities),e.end++,d.config&&Zo.preencode(e,d.config),d.identity&&$o.preencode(e,d.identity),d.bootstrapDevice&&_o.preencode(e,d.bootstrapDevice),d.initialMembers&&en.preencode(e,d.initialMembers)},encode(d,o){const n=(o.config?1:0)|(o.identity?2:0)|(o.bootstrapDevice?4:0)|(o.initialMembers?8:0);Wo.encode(d,o.header),Xo.encode(d,o.digest),Yo.encode(d,o.capabilities),e.uint.encode(d,n),o.config&&Zo.encode(d,o.config),o.identity&&$o.encode(d,o.identity),o.bootstrapDevice&&_o.encode(d,o.bootstrapDevice),o.initialMembers&&en.encode(d,o.initialMembers)},decode(d){const o=Wo.decode(d),n=Xo.decode(d),c=Yo.decode(d),t=e.uint.decode(d);return{header:o,digest:n,capabilities:c,config:1&t?Zo.decode(d):null,identity:2&t?$o.decode(d):null,bootstrapDevice:4&t?_o.decode(d):null,initialMembers:8&t?en.decode(d):null}}},on=$,nn={preencode(d,o){on.preencode(d,o.header),e.uint.preencode(d,o.version)},encode(d,o){on.encode(d,o.header),e.uint.encode(d,o.version)},decode:d=>({header:on.decode(d),version:e.uint.decode(d)})},cn=$,tn=J,rn={preencode(d,o){cn.preencode(d,o.header),e.uint.preencode(d,o.key),tn.preencode(d,o.settings)},encode(d,o){cn.encode(d,o.header),e.uint.encode(d,o.key),tn.encode(d,o.settings)},decode:d=>({header:cn.decode(d),key:e.uint.decode(d),settings:tn.decode(d)})},an={preencode(o,n){e.fixed32.preencode(o,n.memberKey),aa.preencode(o,n.status),o.end++,n.mailbox&&e.fixed32.preencode(o,n.mailbox),n.roomKey&&e.fixed32.preencode(o,n.roomKey),d>=22&&n.contactInfo&&sa.preencode(o,n.contactInfo),d>=22&&n.version&&e.uint.preencode(o,n.version),d>=24&&n.alias&&e.string.preencode(o,n.alias)},encode(o,n){const c=(n.mailbox?1:0)|(n.roomKey?2:0)|(d>=22&&n.contactInfo?4:0)|(d>=22&&n.version?8:0)|(d>=24&&n.alias?16:0);e.fixed32.encode(o,n.memberKey),aa.encode(o,n.status),e.uint.encode(o,c),n.mailbox&&e.fixed32.encode(o,n.mailbox),n.roomKey&&e.fixed32.encode(o,n.roomKey),d>=22&&n.contactInfo&&sa.encode(o,n.contactInfo),d>=22&&n.version&&e.uint.encode(o,n.version),d>=24&&n.alias&&e.string.encode(o,n.alias)},decode(o){const n=e.fixed32.decode(o),c=aa.decode(o),t=e.uint.decode(o);return{memberKey:n,status:c,mailbox:1&t?e.fixed32.decode(o):null,roomKey:2&t?e.fixed32.decode(o):null,contactInfo:d>=22&&4&t?sa.decode(o):null,version:d>=22&&8&t?e.uint.decode(o):0,alias:d>=24&&16&t?e.string.decode(o):null}}},sn={preencode(d,n){e.fixed32.preencode(d,n.roomKey),e.buffer.preencode(d,n.encryptionKey),e.fixed32.preencode(d,n.seed),o.preencode(d,n.initiator),e.fixed32.preencode(d,n.fastForwardTo)},encode(d,n){e.fixed32.encode(d,n.roomKey),e.buffer.encode(d,n.encryptionKey),e.fixed32.encode(d,n.seed),o.encode(d,n.initiator),e.fixed32.encode(d,n.fastForwardTo)},decode:d=>({roomKey:e.fixed32.decode(d),encryptionKey:e.buffer.decode(d),seed:e.fixed32.decode(d),initiator:o.decode(d),fastForwardTo:e.fixed32.decode(d)})},pn=e.array(e.frame(sn)),un=X,ln={preencode(e,d){pn.preencode(e,d.sharedRooms),un.preencode(e,d.blockedContacts)},encode(e,d){pn.encode(e,d.sharedRooms),un.encode(e,d.blockedContacts)},decode:e=>({sharedRooms:pn.decode(e),blockedContacts:un.decode(e)})},fn=$o,mn={preencode(e,d){fn.preencode(e,d.identity)},encode(e,d){fn.encode(e,d.identity)},decode:e=>({identity:fn.decode(e)})},yn={preencode(d,o){e.uint.preencode(d,o.rooms),e.uint.preencode(d,o.contacts)},encode(d,o){e.uint.encode(d,o.rooms),e.uint.encode(d,o.contacts)},decode:d=>({rooms:e.uint.decode(d),contacts:e.uint.decode(d)})},bn={preencode(d,o){e.uint.preencode(d,o.rooms),e.uint.preencode(d,o.contactRequests)},encode(d,o){e.uint.encode(d,o.rooms),e.uint.encode(d,o.contactRequests)},decode:d=>({rooms:e.uint.decode(d),contactRequests:e.uint.decode(d)})},xn={preencode(d,o){e.buffer.preencode(d,o.entropy)},encode(d,o){e.buffer.encode(d,o.entropy)},decode:d=>({entropy:e.buffer.decode(d)})},kn={preencode(d,o){e.fixed32.preencode(d,o.publicKey),e.fixed32.preencode(d,o.devicePublicKey),e.fixed32.preencode(d,o.writerKey)},encode(d,o){e.fixed32.encode(d,o.publicKey),e.fixed32.encode(d,o.devicePublicKey),e.fixed32.encode(d,o.writerKey)},decode:d=>({publicKey:e.fixed32.decode(d),devicePublicKey:e.fixed32.decode(d),writerKey:e.fixed32.decode(d)})},vn=e.frame(kn),gn={preencode(n,c){e.fixed32.preencode(n,c.id),e.fixed32.preencode(n,c.invitationSeed),e.fixed32.preencode(n,c.mailbox),t.preencode(n,c.responseKeyPair),o.preencode(n,c.initiator),o.preencode(n,c.inviter),n.end++,c.identity&&vn.preencode(n,c.identity),d>=20&&c.buildType&&Bt.preencode(n,c.buildType),d>=27&&c.link&&o.preencode(n,c.link)},encode(n,c){const r=(c.identity?1:0)|(d>=20&&c.buildType?2:0)|(d>=27&&c.link?4:0);e.fixed32.encode(n,c.id),e.fixed32.encode(n,c.invitationSeed),e.fixed32.encode(n,c.mailbox),t.encode(n,c.responseKeyPair),o.encode(n,c.initiator),o.encode(n,c.inviter),e.uint.encode(n,r),c.identity&&vn.encode(n,c.identity),d>=20&&c.buildType&&Bt.encode(n,c.buildType),d>=27&&c.link&&o.encode(n,c.link)},decode(n){const c=e.fixed32.decode(n),r=e.fixed32.decode(n),i=e.fixed32.decode(n),a=t.decode(n),s=o.decode(n),p=o.decode(n),u=e.uint.decode(n);return{id:c,invitationSeed:r,mailbox:i,responseKeyPair:a,initiator:s,inviter:p,identity:1&u?vn.decode(n):null,buildType:d>=20&&2&u?Bt.decode(n):null,link:d>=27&&4&u?o.decode(n):null}}},hn=$,Kn={preencode(d,o){hn.preencode(d,o.header),e.buffer.preencode(d,o.blindResponse)},encode(d,o){hn.encode(d,o.header),e.buffer.encode(d,o.blindResponse)},decode:d=>({header:hn.decode(d),blindResponse:e.buffer.decode(d)})},wn=$,An=e.frame(gn),Tn={preencode(e,d){wn.preencode(e,d.header),An.preencode(e,d.invitation)},encode(e,d){wn.encode(e,d.header),An.encode(e,d.invitation)},decode:e=>({header:wn.decode(e),invitation:An.decode(e)})},Sn=$,Pn={preencode(d,o){Sn.preencode(d,o.header),e.fixed32.preencode(d,o.id)},encode(d,o){Sn.encode(d,o.header),e.fixed32.encode(d,o.id)},decode:d=>({header:Sn.decode(d),id:e.fixed32.decode(d)})},In={preencode(d,o){e.fixed32.preencode(d,o.publicKey),e.fixed32.preencode(d,o.devicePublicKey),d.end++,o.privateProfileKey&&e.fixed32.preencode(d,o.privateProfileKey),o.deviceKeyPair&&t.preencode(d,o.deviceKeyPair),e.buffer.preencode(d,o.deviceProof)},encode(d,o){const n=(o.privateProfileKey?1:0)|(o.deviceKeyPair?2:0);e.fixed32.encode(d,o.publicKey),e.fixed32.encode(d,o.devicePublicKey),e.uint.encode(d,n),o.privateProfileKey&&e.fixed32.encode(d,o.privateProfileKey),o.deviceKeyPair&&t.encode(d,o.deviceKeyPair),e.buffer.encode(d,o.deviceProof)},decode(d){const o=e.fixed32.decode(d),n=e.fixed32.decode(d),c=e.uint.decode(d);return{publicKey:o,devicePublicKey:n,privateProfileKey:1&c?e.fixed32.decode(d):null,deviceKeyPair:2&c?t.decode(d):null,deviceProof:e.buffer.decode(d)}}},Fn={preencode(o,n){o.end++,d>=25&&n.roomSnoozeTime&&e.uint.preencode(o,n.roomSnoozeTime)},encode(o,n){const c=(n.isActive?1:0)|(n.isFullyMuted?2:0)|(n.isMentionsOnlyMuted?4:0)|(d>=9&&n.isReadOnly?8:0)|(d>=18&&n.isFavorite?16:0)|(d>=21&&n.isUnread?32:0)|(d>=25&&n.roomSnoozeTime?64:0);e.uint.encode(o,c),d>=25&&n.roomSnoozeTime&&e.uint.encode(o,n.roomSnoozeTime)},decode(o){const n=e.uint.decode(o);return{isActive:!!(1&n),isFullyMuted:!!(2&n),isMentionsOnlyMuted:!!(4&n),isReadOnly:d>=9&&!!(8&n),isFavorite:d>=18&&!!(16&n),isUnread:d>=21&&!!(32&n),roomSnoozeTime:d>=25&&64&n?e.uint.decode(o):0}}},Rn=e.frame(Fn),Cn=e.frame(In),Hn=vn,Vn={preencode(n,c){e.fixed32.preencode(n,c.roomKey),e.buffer.preencode(n,c.encryptionKey),e.fixed32.preencode(n,c.mailbox),Rn.preencode(n,c.status),e.uint.preencode(n,c.clock),n.end++,c.initiator&&o.preencode(n,c.initiator),c.fastForwardTo&&e.fixed32.preencode(n,c.fastForwardTo),c.identitySwap&&Cn.preencode(n,c.identitySwap),d>=6&&c.identitySwapV2&&Hn.preencode(n,c.identitySwapV2),d>=10&&c.contact&&e.fixed32.preencode(n,c.contact),d>=27&&c.bootFrom&&o.preencode(n,c.bootFrom),d>=29&&c.activeClock&&e.uint.preencode(n,c.activeClock)},encode(n,c){const t=(c.initiator?1:0)|(c.fastForwardTo?2:0)|(c.identitySwap?4:0)|(d>=6&&c.identitySwapV2?8:0)|(d>=10&&c.contact?16:0)|(d>=27&&c.bootFrom?32:0)|(d>=29&&c.activeClock?64:0);e.fixed32.encode(n,c.roomKey),e.buffer.encode(n,c.encryptionKey),e.fixed32.encode(n,c.mailbox),Rn.encode(n,c.status),e.uint.encode(n,c.clock),e.uint.encode(n,t),c.initiator&&o.encode(n,c.initiator),c.fastForwardTo&&e.fixed32.encode(n,c.fastForwardTo),c.identitySwap&&Cn.encode(n,c.identitySwap),d>=6&&c.identitySwapV2&&Hn.encode(n,c.identitySwapV2),d>=10&&c.contact&&e.fixed32.encode(n,c.contact),d>=27&&c.bootFrom&&o.encode(n,c.bootFrom),d>=29&&c.activeClock&&e.uint.encode(n,c.activeClock)},decode(n){const c=e.fixed32.decode(n),t=e.buffer.decode(n),r=e.fixed32.decode(n),i=Rn.decode(n),a=e.uint.decode(n),s=e.uint.decode(n);return{roomKey:c,encryptionKey:t,mailbox:r,status:i,clock:a,initiator:1&s?o.decode(n):null,fastForwardTo:2&s?e.fixed32.decode(n):null,identitySwap:4&s?Cn.decode(n):null,identitySwapV2:d>=6&&8&s?Hn.decode(n):null,contact:d>=10&&16&s?e.fixed32.decode(n):null,bootFrom:d>=27&&32&s?o.decode(n):null,activeClock:d>=29&&64&s?e.uint.decode(n):0}}},Dn=$,Mn={preencode(d,n){Dn.preencode(d,n.header),e.fixed32.preencode(d,n.roomKey),e.buffer.preencode(d,n.encryptionKey),e.fixed32.preencode(d,n.mailbox),d.end++,n.fastForwardTo&&e.fixed32.preencode(d,n.fastForwardTo),n.initiator&&o.preencode(d,n.initiator),n.dm&&e.fixed32.preencode(d,n.dm)},encode(n,c){const t=(c.fastForwardTo?1:0)|(c.initiator?2:0)|(c.dm?4:0)|(d>=9&&c.isReadOnly?8:0);Dn.encode(n,c.header),e.fixed32.encode(n,c.roomKey),e.buffer.encode(n,c.encryptionKey),e.fixed32.encode(n,c.mailbox),e.uint.encode(n,t),c.fastForwardTo&&e.fixed32.encode(n,c.fastForwardTo),c.initiator&&o.encode(n,c.initiator),c.dm&&e.fixed32.encode(n,c.dm)},decode(n){const c=Dn.decode(n),t=e.fixed32.decode(n),r=e.buffer.decode(n),i=e.fixed32.decode(n),a=e.uint.decode(n);return{header:c,roomKey:t,encryptionKey:r,mailbox:i,fastForwardTo:1&a?e.fixed32.decode(n):null,initiator:2&a?o.decode(n):null,dm:4&a?e.fixed32.decode(n):null,isReadOnly:d>=9&&!!(8&a)}}},Ln=$,qn={preencode(d,o){Ln.preencode(d,o.header),e.fixed32.preencode(d,o.discoveryKey)},encode(d,o){Ln.encode(d,o.header),e.fixed32.encode(d,o.discoveryKey)},decode:d=>({header:Ln.decode(d),discoveryKey:e.fixed32.decode(d)})},En=$,Bn=Rn,zn={preencode(d,o){En.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey),e.uint.preencode(d,o.key),Bn.preencode(d,o.status)},encode(d,o){En.encode(d,o.header),e.fixed32.encode(d,o.roomKey),e.uint.encode(d,o.key),Bn.encode(d,o.status)},decode:d=>({header:En.decode(d),roomKey:e.fixed32.decode(d),key:e.uint.decode(d),status:Bn.decode(d)})},Nn={preencode(e,d){e.end++},encode(o,n){const c=(n.isBlocked?1:0)|(d>=22&&n.isActive?2:0);e.uint.encode(o,c)},decode(o){const n=e.uint.decode(o);return{isBlocked:!!(1&n),isActive:d>=22&&!!(2&n)}}},jn={preencode(o,n){e.fixed32.preencode(o,n.memberKey),e.uint.preencode(o,n.clock),pa.preencode(o,n.status),o.end++,n.mailbox&&e.fixed32.preencode(o,n.mailbox),n.roomKey&&e.fixed32.preencode(o,n.roomKey),d>=22&&n.contactInfo&&ua.preencode(o,n.contactInfo),d>=24&&n.alias&&e.string.preencode(o,n.alias)},encode(o,n){const c=(n.mailbox?1:0)|(n.roomKey?2:0)|(d>=22&&n.contactInfo?4:0)|(d>=24&&n.alias?8:0);e.fixed32.encode(o,n.memberKey),e.uint.encode(o,n.clock),pa.encode(o,n.status),e.uint.encode(o,c),n.mailbox&&e.fixed32.encode(o,n.mailbox),n.roomKey&&e.fixed32.encode(o,n.roomKey),d>=22&&n.contactInfo&&ua.encode(o,n.contactInfo),d>=24&&n.alias&&e.string.encode(o,n.alias)},decode(o){const n=e.fixed32.decode(o),c=e.uint.decode(o),t=pa.decode(o),r=e.uint.decode(o);return{memberKey:n,clock:c,status:t,mailbox:1&r?e.fixed32.decode(o):null,roomKey:2&r?e.fixed32.decode(o):null,contactInfo:d>=22&&4&r?ua.decode(o):null,alias:d>=24&&8&r?e.string.decode(o):null}}},On=$,Un=e.frame(an),Jn={preencode(e,d){On.preencode(e,d.header),Un.preencode(e,d.contact)},encode(e,d){On.encode(e,d.header),Un.encode(e,d.contact)},decode:e=>({header:On.decode(e),contact:Un.decode(e)})},Gn=$,Qn={preencode(d,o){Gn.preencode(d,o.header),e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.key),la.preencode(d,o.status)},encode(d,o){Gn.encode(d,o.header),e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.key),la.encode(d,o.status)},decode:d=>({header:Gn.decode(d),memberKey:e.fixed32.decode(d),key:e.uint.decode(d),status:la.decode(d)})},Wn=$,Xn={preencode(d,o){Wn.preencode(d,o.header),e.fixed32.preencode(d,o.memberKey)},encode(d,o){Wn.encode(d,o.header),e.fixed32.encode(d,o.memberKey)},decode:d=>({header:Wn.decode(d),memberKey:e.fixed32.decode(d)})},Yn={preencode(e,d){e.end++},encode(d,o){const n=(o.isPending?1:0)|(o.isAccepted?2:0)|(o.isRejected?4:0)|(o.isDiscarded?8:0)|(o.isSeen?16:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isPending:!!(1&o),isAccepted:!!(2&o),isRejected:!!(4&o),isDiscarded:!!(8&o),isSeen:!!(16&o)}}},Zn=xe,$n=e.frame(r),_n={preencode(d,o){Zn.preencode(d,o.sender),$n.preencode(d,o.keys),e.fixed32.preencode(d,o.mailbox),d.end++,o.message&&e.string.preencode(d,o.message)},encode(d,o){const n=o.message?1:0;Zn.encode(d,o.sender),$n.encode(d,o.keys),e.fixed32.encode(d,o.mailbox),e.uint.encode(d,n),o.message&&e.string.encode(d,o.message)},decode:d=>({sender:Zn.decode(d),keys:$n.decode(d),mailbox:e.fixed32.decode(d),message:1&e.uint.decode(d)?e.string.decode(d):null})},ec=e.frame(_n),dc={preencode(e,d){ec.preencode(e,d.body),ne.preencode(e,d.attestation)},encode(e,d){ec.encode(e,d.body),ne.encode(e,d.attestation)},decode:e=>({body:ec.decode(e),attestation:ne.decode(e)})},oc=pe,nc=e.frame(Yn),cc=$n,tc={preencode(o,n){e.fixed32.preencode(o,n.memberKey),e.uint.preencode(o,n.clock),oc.preencode(o,n.sender),nc.preencode(o,n.status),cc.preencode(o,n.keys),e.fixed32.preencode(o,n.mailbox),o.end++,n.message&&e.string.preencode(o,n.message),d>=11&&n.sentAt&&e.uint.preencode(o,n.sentAt),d>=22&&n.contactInfo&&fa.preencode(o,n.contactInfo)},encode(o,n){const c=(n.message?1:0)|(d>=11&&n.sentAt?2:0)|(d>=22&&n.contactInfo?4:0);e.fixed32.encode(o,n.memberKey),e.uint.encode(o,n.clock),oc.encode(o,n.sender),nc.encode(o,n.status),cc.encode(o,n.keys),e.fixed32.encode(o,n.mailbox),e.uint.encode(o,c),n.message&&e.string.encode(o,n.message),d>=11&&n.sentAt&&e.uint.encode(o,n.sentAt),d>=22&&n.contactInfo&&fa.encode(o,n.contactInfo)},decode(o){const n=e.fixed32.decode(o),c=e.uint.decode(o),t=oc.decode(o),r=nc.decode(o),i=cc.decode(o),a=e.fixed32.decode(o),s=e.uint.decode(o);return{memberKey:n,clock:c,sender:t,status:r,keys:i,mailbox:a,message:1&s?e.string.decode(o):null,sentAt:d>=11&&2&s?e.uint.decode(o):0,contactInfo:d>=22&&4&s?fa.decode(o):null}}},rc=$,ic={preencode(d,o){rc.preencode(d,o.header),e.buffer.preencode(d,o.blindRequest)},encode(d,o){rc.encode(d,o.header),e.buffer.encode(d,o.blindRequest)},decode:d=>({header:rc.decode(d),blindRequest:e.buffer.decode(d)})},ac=$,sc=nc,pc={preencode(o,n){ac.preencode(o,n.header),e.fixed32.preencode(o,n.memberKey),e.uint.preencode(o,n.key),sc.preencode(o,n.status),o.end++,d>=10&&n.roomKey&&e.fixed32.preencode(o,n.roomKey)},encode(o,n){const c=d>=10&&n.roomKey?1:0;ac.encode(o,n.header),e.fixed32.encode(o,n.memberKey),e.uint.encode(o,n.key),sc.encode(o,n.status),e.uint.encode(o,c),d>=10&&n.roomKey&&e.fixed32.encode(o,n.roomKey)},decode(o){const n=ac.decode(o),c=e.fixed32.decode(o),t=e.uint.decode(o),r=sc.decode(o),i=o.start<o.end?e.uint.decode(o):0;return{header:n,memberKey:c,key:t,status:r,roomKey:d>=10&&1&i?e.fixed32.decode(o):null}}},uc={preencode(d,o){e.uint.preencode(d,o.timestamp),e.fixed32.preencode(d,o.key),e.fixed32.preencode(d,o.mailbox)},encode(d,o){e.uint.encode(d,o.timestamp),e.fixed32.encode(d,o.key),e.fixed32.encode(d,o.mailbox)},decode:d=>({version:e.uint.decode(d),timestamp:e.uint.decode(d),key:e.fixed32.decode(d),mailbox:e.fixed32.decode(d)})},lc={preencode(d,o){const n=o.version??1;switch(e.uint.preencode(d,n),n){case 0:case 1:uc.preencode(d,o);break;default:throw new Error("Unsupported version")}},encode(d,o){const n=o.version??1;switch(e.uint.encode(d,n),n){case 0:case 1:uc.encode(d,o);break;default:throw new Error("Unsupported version")}},decode(d){const o=d.start,n=e.uint.decode(d);switch(d.start=o,n){case 0:case 1:return uc.decode(d);default:throw new Error("Unsupported version")}}},fc=$,mc={preencode(o,c){fc.preencode(o,c.header),n.preencode(o,c.oplog),e.uint.preencode(o,c.index),ma.preencode(o,c.preview),o.end++,d>=7&&c.displayType&&Sc.preencode(o,c.displayType)},encode(o,c){const t=d>=7&&c.displayType?1:0;fc.encode(o,c.header),n.encode(o,c.oplog),e.uint.encode(o,c.index),ma.encode(o,c.preview),e.uint.encode(o,t),d>=7&&c.displayType&&Sc.encode(o,c.displayType)},decode(o){const c=fc.decode(o),t=n.decode(o),r=e.uint.decode(o),i=ma.decode(o),a=o.start<o.end?e.uint.decode(o):0;return{header:c,oplog:t,index:r,preview:i,displayType:d>=7&&1&a?Sc.decode(o):0}}},yc={preencode(o,n){o.end++,d>=3&&n.memberKey&&e.fixed32.preencode(o,n.memberKey)},encode(o,n){const c=d>=3&&n.memberKey?1:0;e.uint.encode(o,c),d>=3&&n.memberKey&&e.fixed32.encode(o,n.memberKey)},decode(o){const n=e.uint.decode(o);return{memberKey:d>=3&&1&n?e.fixed32.decode(o):null}}},bc=pe,xc={preencode(e,d){bc.preencode(e,d.profile),ne.preencode(e,d.attestation)},encode(e,d){bc.encode(e,d.profile),ne.encode(e,d.attestation)},decode:e=>({profile:bc.decode(e),attestation:ne.decode(e)})},kc=$,vc={preencode(d,o){kc.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){kc.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:kc.decode(d),key:e.fixed32.decode(d)})},gc={preencode(d,o){e.fixed32.preencode(d,o.deviceKey),ne.preencode(d,o.privateProfileIdentity),e.buffer.preencode(d,o.deviceProof)},encode(d,o){e.fixed32.encode(d,o.deviceKey),ne.encode(d,o.privateProfileIdentity),e.buffer.encode(d,o.deviceProof)},decode:d=>({deviceKey:e.fixed32.decode(d),privateProfileIdentity:ne.decode(d),deviceProof:e.buffer.decode(d)})},hc={preencode(o,n){e.fixed32.preencode(o,n.roomKey),e.fixed32.preencode(o,n.encryptionKey),e.fixed32.preencode(o,n.seed),o.end++,d>=6&&n.fastForwardTo&&e.fixed32.preencode(o,n.fastForwardTo)},encode(o,n){const c=d>=6&&n.fastForwardTo?1:0;e.fixed32.encode(o,n.roomKey),e.fixed32.encode(o,n.encryptionKey),e.fixed32.encode(o,n.seed),e.uint.encode(o,c),d>=6&&n.fastForwardTo&&e.fixed32.encode(o,n.fastForwardTo)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),t=e.fixed32.decode(o),r=e.uint.decode(o);return{roomKey:n,encryptionKey:c,seed:t,fastForwardTo:d>=6&&1&r?e.fixed32.decode(o):null}}},Kc={preencode(o,n){e.fixed32.preencode(o,n.publicKey),e.fixed32.preencode(o,n.writerKey),e.fixed32.preencode(o,n.devicePublicKey),o.end++,d>=6&&n.privateProfileKey&&e.fixed32.preencode(o,n.privateProfileKey)},encode(o,n){const c=d>=6&&n.privateProfileKey?1:0;e.fixed32.encode(o,n.publicKey),e.fixed32.encode(o,n.writerKey),e.fixed32.encode(o,n.devicePublicKey),e.uint.encode(o,c),d>=6&&n.privateProfileKey&&e.fixed32.encode(o,n.privateProfileKey)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),t=e.fixed32.decode(o),r=e.uint.decode(o);return{publicKey:n,writerKey:c,devicePublicKey:t,privateProfileKey:d>=6&&1&r?e.fixed32.decode(o):null}}},wc=$,Ac={preencode(d,o){wc.preencode(d,o.header),e.fixed32.preencode(d,o.memberKey)},encode(d,o){wc.encode(d,o.header),e.fixed32.encode(d,o.memberKey)},decode:d=>({header:wc.decode(d),memberKey:e.fixed32.decode(d)})},Tc={HttpLink:1,PearLink:2},Sc={preencode(e,d){e.end++},encode(d,o){if(o>2)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},Pc=$,Ic={preencode(d,o){Pc.preencode(d,o.header),e.uint.preencode(d,o.value)},encode(d,o){Pc.encode(d,o.header),e.uint.encode(d,o.value)},decode:d=>({header:Pc.decode(d),value:e.uint.decode(d)})},Fc={preencode(d,o){e.uint.preencode(d,o.key),e.uint.preencode(d,o.value)},encode(d,o){e.uint.encode(d,o.key),e.uint.encode(d,o.value)},decode:d=>({key:e.uint.decode(d),value:e.uint.decode(d)})},Rc=$,Cc={preencode(o,n){Rc.preencode(o,n.header),e.uint.preencode(o,n.from),e.uint.preencode(o,n.to),o.end++,d>=20&&n.buildType&&Bt.preencode(o,n.buildType)},encode(o,n){const c=d>=20&&n.buildType?1:0;Rc.encode(o,n.header),e.uint.encode(o,n.from),e.uint.encode(o,n.to),e.uint.encode(o,c),d>=20&&n.buildType&&Bt.encode(o,n.buildType)},decode(o){const n=Rc.decode(o),c=e.uint.decode(o),t=e.uint.decode(o),r=o.start<o.end?e.uint.decode(o):0;return{header:n,from:c,to:t,buildType:d>=20&&1&r?Bt.decode(o):null}}},Hc={RoomType:1,IsExperimental:2,IsJoiningDisabled:3,IsAppendingDisabled:4,IsCallingDisabled:5,IsMembershipEventsDisabled:6,IsAttachmentsDisabled:7,IsLinksDisabled:8,IsRoomInviteHidden:9},Vc={preencode(e,d){e.end++},encode(d,o){if(o>9)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},Dc={en:"en",it:"it",ru:"ru",es:"es",de:"de"},Mc={preencode(e,d){e.end++},encode(d,o){switch(o){case"en":e.uint.encode(d,1);break;case"it":e.uint.encode(d,2);break;case"ru":e.uint.encode(d,3);break;case"es":e.uint.encode(d,4);break;case"de":e.uint.encode(d,5);break;default:throw new Error("Unknown enum")}},decode(d){switch(e.uint.decode(d)){case 1:return"en";case 2:return"it";case 3:return"ru";case 4:return"es";case 5:return"de";default:return null}}},Lc=Dd,qc={preencode(d,o){Lc.preencode(d,o.range),Mc.preencode(d,o.language),e.string.preencode(d,o.text)},encode(d,o){Lc.encode(d,o.range),Mc.encode(d,o.language),e.string.encode(d,o.text)},decode:d=>({range:Lc.decode(d),language:Mc.decode(d),text:e.string.decode(d)})},Ec={preencode(d,o){e.fixed32.preencode(d,o.deviceKey),e.fixed32.preencode(d,o.key)},encode(d,o){e.fixed32.encode(d,o.deviceKey),e.fixed32.encode(d,o.key)},decode:d=>({deviceKey:e.fixed32.decode(d),key:e.fixed32.decode(d)})},Bc=$,zc={preencode(d,o){Bc.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){Bc.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:Bc.decode(d),key:e.fixed32.decode(d)})},Nc=$,jc={preencode(d,o){Nc.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){Nc.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:Nc.decode(d),key:e.fixed32.decode(d)})},Oc={Flag:1},Uc={preencode(e,d){e.end++},encode(d,o){if(o>1)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},Jc={preencode(d,o){lo.preencode(d,o.id),e.fixed32.preencode(d,o.sender),e.uint.preencode(d,o.clock),Uc.preencode(d,o.label)},encode(d,o){lo.encode(d,o.id),e.fixed32.encode(d,o.sender),e.uint.encode(d,o.clock),Uc.encode(d,o.label)},decode:d=>({id:lo.decode(d),sender:e.fixed32.decode(d),clock:e.uint.decode(d),label:Uc.decode(d)})},Gc=$,Qc={preencode(e,d){Gc.preencode(e,d.header),n.preencode(e,d.oplog),Uc.preencode(e,d.label)},encode(e,d){Gc.encode(e,d.header),n.encode(e,d.oplog),Uc.encode(e,d.label)},decode:e=>({header:Gc.decode(e),oplog:n.decode(e),label:Uc.decode(e)})},Wc=$,Xc={preencode(e,d){Wc.preencode(e,d.header),n.preencode(e,d.oplog),Uc.preencode(e,d.label)},encode(e,d){Wc.encode(e,d.header),n.encode(e,d.oplog),Uc.encode(e,d.label)},decode:e=>({header:Wc.decode(e),oplog:n.decode(e),label:Uc.decode(e)})},Yc={preencode(d,o){Uc.preencode(d,o.label),e.uint.preencode(d,o.count)},encode(d,o){Uc.encode(d,o.label),e.uint.encode(d,o.count)},decode:d=>({label:Uc.decode(d),count:e.uint.decode(d)})},Zc=e.array(e.frame(Yc)),$c={preencode(o,n){lo.preencode(o,n.id),e.uint.preencode(o,n.total),Zc.preencode(o,n.labels),e.uint.preencode(o,n.editedAt),o.end++,d>=15&&n.flagsClock&&e.uint.preencode(o,n.flagsClock),d>=15&&n.version&&e.uint.preencode(o,n.version)},encode(o,n){const c=(d>=15&&n.flagsClock?1:0)|(d>=15&&n.version?2:0)|(d>=16&&n.isDeleted?4:0);lo.encode(o,n.id),e.uint.encode(o,n.total),Zc.encode(o,n.labels),e.uint.encode(o,n.editedAt),e.uint.encode(o,c),d>=15&&n.flagsClock&&e.uint.encode(o,n.flagsClock),d>=15&&n.version&&e.uint.encode(o,n.version)},decode(o){const n=lo.decode(o),c=e.uint.decode(o),t=Zc.decode(o),r=e.uint.decode(o),i=o.start<o.end?e.uint.decode(o):0;return{id:n,total:c,labels:t,editedAt:r,flagsClock:d>=15&&1&i?e.uint.decode(o):0,version:d>=15&&2&i?e.uint.decode(o):0,isDeleted:d>=16&&!!(4&i)}}},_c=$,et={preencode(d,o){_c.preencode(d,o.header),e.uint.preencode(d,o.length)},encode(d,o){_c.encode(d,o.header),e.uint.encode(d,o.length)},decode:d=>({header:_c.decode(d),length:e.uint.decode(d)})},dt={preencode(d,o){e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.length)},encode(d,o){e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.length)},decode:d=>({memberKey:e.fixed32.decode(d),length:e.uint.decode(d)})},ot=Z,nt={preencode(o,n){o.end++,d>=23&&n.profileSnoozeTime&&e.uint.preencode(o,n.profileSnoozeTime)},encode(o,n){const c=(d>=13&&n.disableReadReceipts?1:0)|(d>=21&&n.stripAttachmentMetadata?2:0)|(d>=23&&n.profileSnoozeTime?4:0);e.uint.encode(o,c),d>=23&&n.profileSnoozeTime&&e.uint.encode(o,n.profileSnoozeTime)},decode(o){const n=e.uint.decode(o);return{disableReadReceipts:d>=13&&!!(1&n),stripAttachmentMetadata:d>=21&&!!(2&n),profileSnoozeTime:d>=23&&4&n?e.uint.decode(o):0}}},ct={disableReadReceipts:"disableReadReceipts",stripAttachmentMetadata:"stripAttachmentMetadata",profileSnoozeTime:"profileSnoozeTime"},tt={preencode(e,d){e.end++},encode(d,o){switch(o){case"disableReadReceipts":e.uint.encode(d,1);break;case"stripAttachmentMetadata":e.uint.encode(d,2);break;case"profileSnoozeTime":e.uint.encode(d,3);break;default:throw new Error("Unknown enum")}},decode(d){switch(e.uint.decode(d)){case 1:return"disableReadReceipts";case 2:return"stripAttachmentMetadata";case 3:return"profileSnoozeTime";default:return null}}},rt=$,it=e.frame(nt),at={preencode(e,d){rt.preencode(e,d.header),tt.preencode(e,d.key),it.preencode(e,d.settings)},encode(e,d){rt.encode(e,d.header),tt.encode(e,d.key),it.encode(e,d.settings)},decode:e=>({header:rt.decode(e),key:tt.decode(e),settings:it.decode(e)})},st={Flag:1},pt={preencode(e,d){e.end++},encode(d,o){if(o>1)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},ut={preencode(d,o){e.fixed32.preencode(d,o.key),e.fixed32.preencode(d,o.sender),e.uint.preencode(d,o.clock),pt.preencode(d,o.label)},encode(d,o){e.fixed32.encode(d,o.key),e.fixed32.encode(d,o.sender),e.uint.encode(d,o.clock),pt.encode(d,o.label)},decode:d=>({key:e.fixed32.decode(d),sender:e.fixed32.decode(d),clock:e.uint.decode(d),label:pt.decode(d)})},lt=$,ft={preencode(d,o){lt.preencode(d,o.header),e.fixed32.preencode(d,o.key),pt.preencode(d,o.label)},encode(d,o){lt.encode(d,o.header),e.fixed32.encode(d,o.key),pt.encode(d,o.label)},decode:d=>({header:lt.decode(d),key:e.fixed32.decode(d),label:pt.decode(d)})},mt={preencode(d,o){pt.preencode(d,o.label),e.uint.preencode(d,o.count)},encode(d,o){pt.encode(d,o.label),e.uint.encode(d,o.count)},decode:d=>({label:pt.decode(d),count:e.uint.decode(d)})},yt=e.array(e.frame(mt)),bt={preencode(d,o){e.fixed32.preencode(d,o.key),e.uint.preencode(d,o.total),yt.preencode(d,o.labels),e.uint.preencode(d,o.editedAt),e.uint.preencode(d,o.flagsClock)},encode(d,o){e.fixed32.encode(d,o.key),e.uint.encode(d,o.total),yt.encode(d,o.labels),e.uint.encode(d,o.editedAt),e.uint.encode(d,o.flagsClock)},decode:d=>({key:e.fixed32.decode(d),total:e.uint.decode(d),labels:yt.decode(d),editedAt:e.uint.decode(d),flagsClock:e.uint.decode(d)})},xt={preencode(d,o){e.float64.preencode(d,o.latitude),e.float64.preencode(d,o.longitude)},encode(d,o){e.float64.encode(d,o.latitude),e.float64.encode(d,o.longitude)},decode:d=>({latitude:e.float64.decode(d),longitude:e.float64.decode(d)})},kt=$,vt={preencode(d,o){kt.preencode(d,o.header),e.fixed32.preencode(d,o.deviceKey),e.fixed32.preencode(d,o.fromDeviceKey)},encode(d,o){kt.encode(d,o.header),e.fixed32.encode(d,o.deviceKey),e.fixed32.encode(d,o.fromDeviceKey)},decode:d=>({header:kt.decode(d),deviceKey:e.fixed32.decode(d),fromDeviceKey:e.fixed32.decode(d)})},gt=$,ht=X,Kt={preencode(o,n){gt.preencode(o,n.header),e.fixed32.preencode(o,n.callKey),e.buffer.preencode(o,n.encryptionKey),o.end++,d>=19&&n.streams&&ht.preencode(o,n.streams),d>=19&&n.discoveryKey&&e.fixed32.preencode(o,n.discoveryKey),d>=19&&n.version&&e.uint.preencode(o,n.version),d>=26&&n.streamInputs&&ya.preencode(o,n.streamInputs),d>=26&&n.swarmKey&&e.fixed32.preencode(o,n.swarmKey)},encode(o,n){const c=(d>=19&&n.streams?1:0)|(d>=19&&n.discoveryKey?2:0)|(d>=19&&n.version?4:0)|(d>=26&&n.streamInputs?8:0)|(d>=26&&n.swarmKey?16:0);gt.encode(o,n.header),e.fixed32.encode(o,n.callKey),e.buffer.encode(o,n.encryptionKey),e.uint.encode(o,c),d>=19&&n.streams&&ht.encode(o,n.streams),d>=19&&n.discoveryKey&&e.fixed32.encode(o,n.discoveryKey),d>=19&&n.version&&e.uint.encode(o,n.version),d>=26&&n.streamInputs&&ya.encode(o,n.streamInputs),d>=26&&n.swarmKey&&e.fixed32.encode(o,n.swarmKey)},decode(o){const n=gt.decode(o),c=e.fixed32.decode(o),t=e.buffer.decode(o),r=e.uint.decode(o);return{header:n,callKey:c,encryptionKey:t,streams:d>=19&&1&r?ht.decode(o):null,discoveryKey:d>=19&&2&r?e.fixed32.decode(o):null,version:d>=19&&4&r?e.uint.decode(o):0,streamInputs:d>=26&&8&r?ya.decode(o):null,swarmKey:d>=26&&16&r?e.fixed32.decode(o):null}}},wt=$,At=X,Tt={preencode(o,n){wt.preencode(o,n.header),e.fixed32.preencode(o,n.callKey),o.end++,d>=19&&n.streams&&At.preencode(o,n.streams),d>=26&&n.streamInputs&&ba.preencode(o,n.streamInputs),d>=26&&n.swarmKey&&e.fixed32.preencode(o,n.swarmKey)},encode(o,n){const c=(d>=19&&n.streams?1:0)|(d>=26&&n.streamInputs?2:0)|(d>=26&&n.swarmKey?4:0);wt.encode(o,n.header),e.fixed32.encode(o,n.callKey),e.uint.encode(o,c),d>=19&&n.streams&&At.encode(o,n.streams),d>=26&&n.streamInputs&&ba.encode(o,n.streamInputs),d>=26&&n.swarmKey&&e.fixed32.encode(o,n.swarmKey)},decode(o){const n=wt.decode(o),c=e.fixed32.decode(o),t=e.uint.decode(o);return{header:n,callKey:c,streams:d>=19&&1&t?At.decode(o):null,streamInputs:d>=26&&2&t?ba.decode(o):null,swarmKey:d>=26&&4&t?e.fixed32.decode(o):null}}},St=$,Pt={preencode(d,o){St.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){St.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:St.decode(d),callKey:e.fixed32.decode(d)})},It=$,Ft={preencode(d,o){It.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){It.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:It.decode(d),callKey:e.fixed32.decode(d)})},Rt=$,Ct={preencode(o,n){Rt.preencode(o,n.header),e.fixed32.preencode(o,n.callKey),e.fixed32.preencode(o,n.streamKey),o.end++,d>=26&&n.mediaStreamId&&e.string.preencode(o,n.mediaStreamId),d>=26&&n.type&&e.string.preencode(o,n.type)},encode(o,n){const c=(d>=26&&n.mediaStreamId?1:0)|(d>=26&&n.type?2:0)|(d>=26&&n.muted?4:0);Rt.encode(o,n.header),e.fixed32.encode(o,n.callKey),e.fixed32.encode(o,n.streamKey),e.uint.encode(o,c),d>=26&&n.mediaStreamId&&e.string.encode(o,n.mediaStreamId),d>=26&&n.type&&e.string.encode(o,n.type)},decode(o){const n=Rt.decode(o),c=e.fixed32.decode(o),t=e.fixed32.decode(o),r=o.start<o.end?e.uint.decode(o):0;return{header:n,callKey:c,streamKey:t,mediaStreamId:d>=26&&1&r?e.string.decode(o):null,type:d>=26&&2&r?e.string.decode(o):null,muted:d>=26&&!!(4&r)}}},Ht=$,Vt={preencode(d,o){Ht.preencode(d,o.header),e.fixed32.preencode(d,o.callKey),e.fixed32.preencode(d,o.streamKey)},encode(d,o){Ht.encode(d,o.header),e.fixed32.encode(d,o.callKey),e.fixed32.encode(d,o.streamKey)},decode:d=>({header:Ht.decode(d),callKey:e.fixed32.decode(d),streamKey:e.fixed32.decode(d)})},Dt={preencode(o,n){e.fixed32.preencode(o,n.callKey),e.buffer.preencode(o,n.encryptionKey),e.uint.preencode(o,n.createdAt),o.end++,d>=19&&n.endedAt&&e.uint.preencode(o,n.endedAt),d>=19&&n.discoveryKey&&e.fixed32.preencode(o,n.discoveryKey),d>=19&&n.version&&e.uint.preencode(o,n.version)},encode(o,n){const c=(d>=19&&n.endedAt?1:0)|(d>=19&&n.discoveryKey?2:0)|(d>=19&&n.version?4:0);e.fixed32.encode(o,n.callKey),e.buffer.encode(o,n.encryptionKey),e.uint.encode(o,n.createdAt),e.uint.encode(o,c),d>=19&&n.endedAt&&e.uint.encode(o,n.endedAt),d>=19&&n.discoveryKey&&e.fixed32.encode(o,n.discoveryKey),d>=19&&n.version&&e.uint.encode(o,n.version)},decode(o){const n=e.fixed32.decode(o),c=e.buffer.decode(o),t=e.uint.decode(o),r=e.uint.decode(o);return{callKey:n,encryptionKey:c,createdAt:t,endedAt:d>=19&&1&r?e.uint.decode(o):0,discoveryKey:d>=19&&2&r?e.fixed32.decode(o):null,version:d>=19&&4&r?e.uint.decode(o):0}}},Mt={preencode(d,o){e.fixed32.preencode(d,o.callKey),e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.createdAt)},encode(d,o){e.fixed32.encode(d,o.callKey),e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.createdAt)},decode:d=>({callKey:e.fixed32.decode(d),memberKey:e.fixed32.decode(d),createdAt:e.uint.decode(d)})},Lt={preencode(o,n){e.fixed32.preencode(o,n.callKey),e.fixed32.preencode(o,n.deviceKey),e.fixed32.preencode(o,n.memberKey),e.uint.preencode(o,n.createdAt),o.end++,d>=19&&n.swarmKey&&e.fixed32.preencode(o,n.swarmKey),d>=22&&n.lastHeartbeatAt&&e.uint.preencode(o,n.lastHeartbeatAt)},encode(o,n){const c=(d>=19&&n.swarmKey?1:0)|(d>=22&&n.lastHeartbeatAt?2:0)|(d>=23&&n.isRecording?4:0);e.fixed32.encode(o,n.callKey),e.fixed32.encode(o,n.deviceKey),e.fixed32.encode(o,n.memberKey),e.uint.encode(o,n.createdAt),e.uint.encode(o,c),d>=19&&n.swarmKey&&e.fixed32.encode(o,n.swarmKey),d>=22&&n.lastHeartbeatAt&&e.uint.encode(o,n.lastHeartbeatAt)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),t=e.fixed32.decode(o),r=e.uint.decode(o),i=e.uint.decode(o);return{callKey:n,deviceKey:c,memberKey:t,createdAt:r,swarmKey:d>=19&&1&i?e.fixed32.decode(o):null,lastHeartbeatAt:d>=22&&2&i?e.uint.decode(o):0,isRecording:d>=23&&!!(4&i)}}},qt={preencode(o,n){e.fixed32.preencode(o,n.callKey),e.fixed32.preencode(o,n.deviceKey),e.buffer.preencode(o,n.streamKey),e.uint.preencode(o,n.createdAt),o.end++,d>=26&&n.mediaStreamId&&e.string.preencode(o,n.mediaStreamId),d>=26&&n.type&&e.string.preencode(o,n.type),d>=26&&n.statusKey&&e.uint.preencode(o,n.statusKey)},encode(o,n){const c=(d>=26&&n.mediaStreamId?1:0)|(d>=26&&n.type?2:0)|(d>=26&&n.statusKey?4:0);e.fixed32.encode(o,n.callKey),e.fixed32.encode(o,n.deviceKey),e.buffer.encode(o,n.streamKey),e.uint.encode(o,n.createdAt),e.uint.encode(o,c),d>=26&&n.mediaStreamId&&e.string.encode(o,n.mediaStreamId),d>=26&&n.type&&e.string.encode(o,n.type),d>=26&&n.statusKey&&e.uint.encode(o,n.statusKey)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),t=e.buffer.decode(o),r=e.uint.decode(o),i=o.start<o.end?e.uint.decode(o):0;return{callKey:n,deviceKey:c,streamKey:t,createdAt:r,mediaStreamId:d>=26&&1&i?e.string.decode(o):null,type:d>=26&&2&i?e.string.decode(o):null,statusKey:d>=26&&4&i?e.uint.decode(o):0}}},Et={Nightly:"Nightly",Internal:"Internal",Production:"Production"},Bt={preencode(e,d){e.end++},encode(d,o){switch(o){case"Nightly":e.uint.encode(d,1);break;case"Internal":e.uint.encode(d,2);break;case"Production":e.uint.encode(d,3);break;default:throw new Error("Unknown enum")}},decode(d){switch(e.uint.decode(d)){case 1:return"Nightly";case 2:return"Internal";case 3:return"Production";default:return null}}},zt=$,Nt={preencode(e,d){zt.preencode(e,d.header)},encode(e,d){zt.encode(e,d.header)},decode:e=>({header:zt.decode(e)})},jt=$,Ot={preencode(e,d){jt.preencode(e,d.header)},encode(e,d){jt.encode(e,d.header)},decode:e=>({header:jt.decode(e)})},Ut=$,Jt={preencode(d,o){Ut.preencode(d,o.header),e.fixed32.preencode(d,o.deviceKey),e.buffer.preencode(d,o.deviceProof),e.buffer.preencode(d,o.writerProof)},encode(d,o){Ut.encode(d,o.header),e.fixed32.encode(d,o.deviceKey),e.buffer.encode(d,o.deviceProof),e.buffer.encode(d,o.writerProof)},decode:d=>({header:Ut.decode(d),deviceKey:e.fixed32.decode(d),deviceProof:e.buffer.decode(d),writerProof:e.buffer.decode(d)})},Gt=$,Qt={preencode(d,o){Gt.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){Gt.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:Gt.decode(d),callKey:e.fixed32.decode(d)})},Wt=$,Xt={preencode(d,o){Wt.preencode(d,o.header),e.fixed32.preencode(d,o.callKey),e.fixed32.preencode(d,o.deviceKey)},encode(d,o){Wt.encode(d,o.header),e.fixed32.encode(d,o.callKey),e.fixed32.encode(d,o.deviceKey)},decode:d=>({header:Wt.decode(d),callKey:e.fixed32.decode(d),deviceKey:e.fixed32.decode(d)})},Yt=$,Zt={preencode(d,o){Yt.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){Yt.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:Yt.decode(d),callKey:e.fixed32.decode(d)})},$t=$,_t={preencode(d,o){$t.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){$t.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:$t.decode(d),callKey:e.fixed32.decode(d)})},er=$,dr={preencode(e,d){er.preencode(e,d.header),n.preencode(e,d.oplog)},encode(e,d){er.encode(e,d.header),n.encode(e,d.oplog)},decode:e=>({header:er.decode(e),oplog:n.decode(e)})},or=$,nr={preencode(e,d){or.preencode(e,d.header)},encode(e,d){or.encode(e,d.header)},decode:e=>({header:or.decode(e)})},cr={preencode(d,o){e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.timestamp)},encode(d,o){e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.timestamp)},decode:d=>({memberKey:e.fixed32.decode(d),timestamp:e.uint.decode(d)})},tr=$,rr={preencode(o,n){tr.preencode(o,n.header),e.fixed32.preencode(o,n.memberKey),o.end++,d>=24&&n.alias&&e.string.preencode(o,n.alias)},encode(o,n){const c=d>=24&&n.alias?1:0;tr.encode(o,n.header),e.fixed32.encode(o,n.memberKey),e.uint.encode(o,c),d>=24&&n.alias&&e.string.encode(o,n.alias)},decode(o){const n=tr.decode(o),c=e.fixed32.decode(o),t=e.uint.decode(o);return{header:n,memberKey:c,alias:d>=24&&1&t?e.string.decode(o):null}}},ir={preencode(d,o){e.uint.preencode(d,o.streams)},encode(d,o){e.uint.encode(d,o.streams)},decode:d=>({streams:e.uint.decode(d)})},ar={preencode(d,o){e.fixed32.preencode(d,o.streamKey),e.string.preencode(d,o.mediaStreamId),e.string.preencode(d,o.type),d.end++},encode(o,n){const c=d>=26&&n.muted?1:0;e.fixed32.encode(o,n.streamKey),e.string.encode(o,n.mediaStreamId),e.string.encode(o,n.type),e.uint.encode(o,c)},decode(o){const n=e.fixed32.decode(o),c=e.string.decode(o),t=e.string.decode(o),r=e.uint.decode(o);return{streamKey:n,mediaStreamId:c,type:t,muted:d>=26&&!!(1&r)}}},sr=$,pr={preencode(d,o){sr.preencode(d,o.header),e.fixed32.preencode(d,o.callKey),e.fixed32.preencode(d,o.streamKey),d.end++},encode(o,n){const c=d>=26&&n.muted?1:0;sr.encode(o,n.header),e.fixed32.encode(o,n.callKey),e.fixed32.encode(o,n.streamKey),e.uint.encode(o,c)},decode(o){const n=sr.decode(o),c=e.fixed32.decode(o),t=e.fixed32.decode(o),r=e.uint.decode(o);return{header:n,callKey:c,streamKey:t,muted:d>=26&&!!(1&r)}}},ur={preencode(d,o){e.uint.preencode(d,o.statusKey),d.end++},encode(o,n){const c=d>=26&&n.muted?1:0;e.uint.encode(o,n.statusKey),e.uint.encode(o,c)},decode(o){const n=e.uint.decode(o),c=e.uint.decode(o);return{statusKey:n,muted:d>=26&&!!(1&c)}}},lr={preencode(n,c){e.fixed32.preencode(n,c.key),n.end++,d>=27&&c.encryptionKey&&e.buffer.preencode(n,c.encryptionKey),d>=27&&c.bootFrom&&o.preencode(n,c.bootFrom)},encode(n,c){const t=(d>=27&&c.encryptionKey?1:0)|(d>=27&&c.bootFrom?2:0);e.fixed32.encode(n,c.key),e.uint.encode(n,t),d>=27&&c.encryptionKey&&e.buffer.encode(n,c.encryptionKey),d>=27&&c.bootFrom&&o.encode(n,c.bootFrom)},decode(n){const c=e.fixed32.decode(n),t=e.uint.decode(n);return{key:c,encryptionKey:d>=27&&1&t?e.buffer.decode(n):null,bootFrom:d>=27&&2&t?o.decode(n):null}}},fr={preencode(d,o){e.fixed32.preencode(d,o.hash)},encode(d,o){e.fixed32.encode(d,o.hash)},decode:d=>({hash:e.fixed32.decode(d)})},mr={preencode(d,o){e.fixed32.preencode(d,o.hash),e.buffer.preencode(d,o.data)},encode(d,o){e.fixed32.encode(d,o.hash),e.buffer.encode(d,o.data)},decode:d=>({hash:e.fixed32.decode(d),data:e.buffer.decode(d)})},yr={preencode(n,c){o.preencode(n,c.autobeeMigrationHead),n.end++,d>=27&&c.legacyViewHead&&o.preencode(n,c.legacyViewHead),d>=27&&c.dbViewHead&&o.preencode(n,c.dbViewHead),d>=27&&c.blobsViewHead&&o.preencode(n,c.blobsViewHead),e.uint.preencode(n,c.createdAt)},encode(n,c){const t=(d>=27&&c.legacyViewHead?1:0)|(d>=27&&c.dbViewHead?2:0)|(d>=27&&c.blobsViewHead?4:0);o.encode(n,c.autobeeMigrationHead),e.uint.encode(n,t),d>=27&&c.legacyViewHead&&o.encode(n,c.legacyViewHead),d>=27&&c.dbViewHead&&o.encode(n,c.dbViewHead),d>=27&&c.blobsViewHead&&o.encode(n,c.blobsViewHead),e.uint.encode(n,c.createdAt)},decode(n){const c=o.decode(n),t=e.uint.decode(n);return{autobeeMigrationHead:c,legacyViewHead:d>=27&&1&t?o.decode(n):null,dbViewHead:d>=27&&2&t?o.decode(n):null,blobsViewHead:d>=27&&4&t?o.decode(n):null,createdAt:e.uint.decode(n)}}},br=$,xr={preencode(e,n){br.preencode(e,n.header),o.preencode(e,n.head),e.end++,d>=27&&n.legacyViewHead&&o.preencode(e,n.legacyViewHead),d>=27&&n.dbViewHead&&o.preencode(e,n.dbViewHead),d>=27&&n.blobsViewHead&&o.preencode(e,n.blobsViewHead)},encode(n,c){const t=(d>=27&&c.legacyViewHead?1:0)|(d>=27&&c.dbViewHead?2:0)|(d>=27&&c.blobsViewHead?4:0);br.encode(n,c.header),o.encode(n,c.head),e.uint.encode(n,t),d>=27&&c.legacyViewHead&&o.encode(n,c.legacyViewHead),d>=27&&c.dbViewHead&&o.encode(n,c.dbViewHead),d>=27&&c.blobsViewHead&&o.encode(n,c.blobsViewHead)},decode(n){const c=br.decode(n),t=o.decode(n),r=e.uint.decode(n);return{header:c,head:t,legacyViewHead:d>=27&&1&r?o.decode(n):null,dbViewHead:d>=27&&2&r?o.decode(n):null,blobsViewHead:d>=27&&4&r?o.decode(n):null}}},kr={preencode(n,c){e.fixed32.preencode(n,c.roomKey),e.fixed32.preencode(n,c.encryptionKey),e.fixed32.preencode(n,c.seed),n.end++,d>=27&&c.bootFrom&&o.preencode(n,c.bootFrom)},encode(n,c){const t=d>=27&&c.bootFrom?1:0;e.fixed32.encode(n,c.roomKey),e.fixed32.encode(n,c.encryptionKey),e.fixed32.encode(n,c.seed),e.uint.encode(n,t),d>=27&&c.bootFrom&&o.encode(n,c.bootFrom)},decode(n){const c=e.fixed32.decode(n),t=e.fixed32.decode(n),r=e.fixed32.decode(n),i=e.uint.decode(n);return{roomKey:c,encryptionKey:t,seed:r,bootFrom:d>=27&&1&i?o.decode(n):null}}},vr=id,gr={preencode(d,o){e.fixed32.preencode(d,o.memberKey),e.fixed32.preencode(d,o.deviceKey),e.uint.preencode(d,o.deviceLength),e.uint.preencode(d,o.clock),vr.preencode(d,o.status)},encode(d,o){e.fixed32.encode(d,o.memberKey),e.fixed32.encode(d,o.deviceKey),e.uint.encode(d,o.deviceLength),e.uint.encode(d,o.clock),vr.encode(d,o.status)},decode:d=>({memberKey:e.fixed32.decode(d),deviceKey:e.fixed32.decode(d),deviceLength:e.uint.decode(d),clock:e.uint.decode(d),status:vr.decode(d)})},hr={preencode(d,o){e.fixed32.preencode(d,o.hash),e.buffer.preencode(d,o.blob)},encode(d,o){e.fixed32.encode(d,o.hash),e.buffer.encode(d,o.blob)},decode:d=>({hash:e.fixed32.decode(d),blob:e.buffer.decode(d)})},Kr=Rn,wr=Cn,Ar=vn,Tr={preencode(n,c){e.fixed32.preencode(n,c.roomKey),e.buffer.preencode(n,c.encryptionKey),e.fixed32.preencode(n,c.mailbox),Kr.preencode(n,c.status),e.uint.preencode(n,c.clock),n.end++,d>=27&&c.initiator&&o.preencode(n,c.initiator),d>=27&&c.bootFrom&&o.preencode(n,c.bootFrom),d>=27&&c.identitySwap&&wr.preencode(n,c.identitySwap),d>=27&&c.identitySwapV2&&Ar.preencode(n,c.identitySwapV2),d>=27&&c.contact&&e.fixed32.preencode(n,c.contact)},encode(n,c){const t=(d>=27&&c.initiator?1:0)|(d>=27&&c.bootFrom?2:0)|(d>=27&&c.identitySwap?4:0)|(d>=27&&c.identitySwapV2?8:0)|(d>=27&&c.contact?16:0);e.fixed32.encode(n,c.roomKey),e.buffer.encode(n,c.encryptionKey),e.fixed32.encode(n,c.mailbox),Kr.encode(n,c.status),e.uint.encode(n,c.clock),e.uint.encode(n,t),d>=27&&c.initiator&&o.encode(n,c.initiator),d>=27&&c.bootFrom&&o.encode(n,c.bootFrom),d>=27&&c.identitySwap&&wr.encode(n,c.identitySwap),d>=27&&c.identitySwapV2&&Ar.encode(n,c.identitySwapV2),d>=27&&c.contact&&e.fixed32.encode(n,c.contact)},decode(n){const c=e.fixed32.decode(n),t=e.buffer.decode(n),r=e.fixed32.decode(n),i=Kr.decode(n),a=e.uint.decode(n),s=e.uint.decode(n);return{roomKey:c,encryptionKey:t,mailbox:r,status:i,clock:a,initiator:d>=27&&1&s?o.decode(n):null,bootFrom:d>=27&&2&s?o.decode(n):null,identitySwap:d>=27&&4&s?wr.decode(n):null,identitySwapV2:d>=27&&8&s?Ar.decode(n):null,contact:d>=27&&16&s?e.fixed32.decode(n):null}}},Sr=$,Pr={preencode(n,c){Sr.preencode(n,c.header),e.fixed32.preencode(n,c.roomKey),e.buffer.preencode(n,c.encryptionKey),e.fixed32.preencode(n,c.mailbox),n.end++,d>=27&&c.bootFrom&&o.preencode(n,c.bootFrom),d>=27&&c.initiator&&o.preencode(n,c.initiator),d>=27&&c.dm&&e.fixed32.preencode(n,c.dm)},encode(n,c){const t=(d>=27&&c.bootFrom?1:0)|(d>=27&&c.initiator?2:0)|(d>=27&&c.dm?4:0)|(d>=27&&c.isReadOnly?8:0);Sr.encode(n,c.header),e.fixed32.encode(n,c.roomKey),e.buffer.encode(n,c.encryptionKey),e.fixed32.encode(n,c.mailbox),e.uint.encode(n,t),d>=27&&c.bootFrom&&o.encode(n,c.bootFrom),d>=27&&c.initiator&&o.encode(n,c.initiator),d>=27&&c.dm&&e.fixed32.encode(n,c.dm)},decode(n){const c=Sr.decode(n),t=e.fixed32.decode(n),r=e.buffer.decode(n),i=e.fixed32.decode(n),a=e.uint.decode(n);return{header:c,roomKey:t,encryptionKey:r,mailbox:i,bootFrom:d>=27&&1&a?o.decode(n):null,initiator:d>=27&&2&a?o.decode(n):null,dm:d>=27&&4&a?e.fixed32.decode(n):null,isReadOnly:d>=27&&!!(8&a)}}},Ir={preencode(d,o){e.fixed32.preencode(d,o.id),e.fixed32.preencode(d,o.writerKey),e.buffer.preencode(d,o.blindResponse)},encode(d,o){e.fixed32.encode(d,o.id),e.fixed32.encode(d,o.writerKey),e.buffer.encode(d,o.blindResponse)},decode:d=>({id:e.fixed32.decode(d),writerKey:e.fixed32.decode(d),blindResponse:e.buffer.decode(d)})},Fr=$,Rr={preencode(d,o){Fr.preencode(d,o.header),e.buffer.preencode(d,o.blindResponse)},encode(d,o){Fr.encode(d,o.header),e.buffer.encode(d,o.blindResponse)},decode:d=>({header:Fr.decode(d),blindResponse:e.buffer.decode(d)})},Cr={preencode(e,d){},encode(e,d){},decode:e=>({key:null})},Hr=ge,Vr={preencode(d,o){e.fixed32.preencode(d,o.id),Hr.preencode(d,o.request)},encode(d,o){e.fixed32.encode(d,o.id),Hr.encode(d,o.request)},decode:d=>({deviceKey:null,id:e.fixed32.decode(d),request:Hr.decode(d)})},Dr=te,Mr=re,Lr={preencode(d,o){e.fixed32.preencode(d,o.memberKey),Dr.preencode(d,o.status),xa.preencode(d,o.profile),d.end++,o.invitation&&Mr.preencode(d,o.invitation)},encode(d,o){const n=o.invitation?1:0;e.fixed32.encode(d,o.memberKey),Dr.encode(d,o.status),xa.encode(d,o.profile),e.uint.encode(d,n),o.invitation&&Mr.encode(d,o.invitation)},decode:d=>({key:null,memberKey:e.fixed32.decode(d),status:Dr.decode(d),profile:xa.decode(d),invitation:1&e.uint.decode(d)?Mr.decode(d):null})},qr={preencode(d,o){d.end++,o.profileAttestation&&e.buffer.preencode(d,o.profileAttestation),o.latestReceipt&&e.buffer.preencode(d,o.latestReceipt)},encode(d,o){const n=(o.profileAttestation?1:0)|(o.latestReceipt?2:0);e.uint.encode(d,n),o.profileAttestation&&e.buffer.encode(d,o.profileAttestation),o.latestReceipt&&e.buffer.encode(d,o.latestReceipt)},decode(d){const o=e.uint.decode(d);return{key:null,profileAttestation:1&o?e.buffer.decode(d):null,latestReceipt:2&o?e.buffer.decode(d):null}}},Er=id,Br=pe,zr={preencode(e,d){Er.preencode(e,d.status),Br.preencode(e,d.profile)},encode(e,d){Er.encode(e,d.status),Br.encode(e,d.profile)},decode:e=>({key:null,status:Er.decode(e),profile:Br.decode(e)})},Nr={preencode(d,o){e.uint.preencode(d,o.mentions)},encode(d,o){e.uint.encode(d,o.mentions)},decode:d=>({key:null,mentions:e.uint.decode(d)})},jr=Ie,Or=Ve,Ur={preencode(e,d){jr.preencode(e,d.response),Or.preencode(e,d.metadata),e.end++,d.anchor&&o.preencode(e,d.anchor)},encode(d,n){const c=(n.anchor?1:0)|(n.isActive?2:0);jr.encode(d,n.response),Or.encode(d,n.metadata),e.uint.encode(d,c),n.anchor&&o.encode(d,n.anchor)},decode(d){const n=jr.decode(d),c=Or.decode(d),t=e.uint.decode(d);return{id:null,response:n,metadata:c,anchor:1&t?o.decode(d):null,isActive:!!(2&t)}}},Jr=fo,Gr={preencode(d,o){e.uint.preencode(d,o.count),d.end++,o.parent&&n.preencode(d,o.parent),o.stats&&Jr.preencode(d,o.stats)},encode(d,o){const c=(o.parent?1:0)|(o.stats?2:0);e.uint.encode(d,o.count),e.uint.encode(d,c),o.parent&&n.encode(d,o.parent),o.stats&&Jr.encode(d,o.stats)},decode(d){const o=e.uint.decode(d),c=e.uint.decode(d);return{id:0,count:o,parent:1&c?n.decode(d):null,stats:2&c?Jr.decode(d):null}}},Qr={preencode(e,d){},encode(e,d){},decode:e=>({thread:0,index:0})},Wr=yo,Xr=bo,Yr=xo,Zr={preencode(d,o){lo.preencode(d,o.id),n.preencode(d,o.oplog),e.uint.preencode(d,o.clock),e.uint.preencode(d,o.timestamp),d.end++,o.editedAt&&e.uint.preencode(d,o.editedAt),Wr.preencode(d,o.status),o.message&&Xr.preencode(d,o.message),o.event&&Yr.preencode(d,o.event)},encode(d,o){const c=(o.editedAt?1:0)|(o.message?2:0)|(o.event?4:0);lo.encode(d,o.id),n.encode(d,o.oplog),e.uint.encode(d,o.clock),e.uint.encode(d,o.timestamp),e.uint.encode(d,c),o.editedAt&&e.uint.encode(d,o.editedAt),Wr.encode(d,o.status),o.message&&Xr.encode(d,o.message),o.event&&Yr.encode(d,o.event)},decode(d){const o=lo.decode(d),c=n.decode(d),t=e.uint.decode(d),r=e.uint.decode(d),i=e.uint.decode(d);return{id:o,oplog:c,clock:t,timestamp:r,editedAt:1&i?e.uint.decode(d):0,status:Wr.decode(d),message:2&i?Xr.decode(d):null,event:4&i?Yr.decode(d):null}}},$r=Qr,_r=Mo,ei={preencode(o,n){lo.preencode(o,n.id),e.uint.preencode(o,n.total),_r.preencode(o,n.reactions),o.end++,d>=11&&n.editedAt&&e.uint.preencode(o,n.editedAt)},encode(o,n){const c=d>=11&&n.editedAt?1:0;lo.encode(o,n.id),e.uint.encode(o,n.total),_r.encode(o,n.reactions),e.uint.encode(o,c),d>=11&&n.editedAt&&e.uint.encode(o,n.editedAt)},decode(o){const n=lo.decode(o),c=e.uint.decode(o),t=_r.decode(o),r=o.start<o.end?e.uint.decode(o):0;return{id:n,total:c,reactions:t,editedAt:d>=11&&1&r?e.uint.decode(o):0}}},di=Qr,oi={preencode(d,o){lo.preencode(d,o.id),e.uint.preencode(d,o.clock)},encode(d,o){lo.encode(d,o.id),e.uint.encode(d,o.clock)},decode:d=>({id:lo.decode(d),sender:null,clock:e.uint.decode(d),reaction:null})},ni=T,ci=g,ti={preencode(o,c){n.preencode(o,c.oplog),ni.preencode(o,c.status),ci.preencode(o,c.file),o.end++,d>=14&&c.version&&e.uint.preencode(o,c.version)},encode(o,c){const t=d>=14&&c.version?1:0;n.encode(o,c.oplog),ni.encode(o,c.status),ci.encode(o,c.file),e.uint.encode(o,t),d>=14&&c.version&&e.uint.encode(o,c.version)},decode(o){const c=n.decode(o),t=ni.decode(o),r=ci.decode(o),i=o.start<o.end?e.uint.decode(o):0;return{id:0,oplog:c,status:t,file:r,version:d>=14&&1&i?e.uint.decode(o):0}}},ri=vn,ii={preencode(n,c){e.fixed32.preencode(n,c.invitationSeed),e.fixed32.preencode(n,c.mailbox),t.preencode(n,c.responseKeyPair),o.preencode(n,c.initiator),o.preencode(n,c.inviter),n.end++,c.identity&&ri.preencode(n,c.identity),d>=20&&c.buildType&&Bt.preencode(n,c.buildType),d>=27&&c.link&&o.preencode(n,c.link)},encode(n,c){const r=(c.identity?1:0)|(d>=20&&c.buildType?2:0)|(d>=27&&c.link?4:0);e.fixed32.encode(n,c.invitationSeed),e.fixed32.encode(n,c.mailbox),t.encode(n,c.responseKeyPair),o.encode(n,c.initiator),o.encode(n,c.inviter),e.uint.encode(n,r),c.identity&&ri.encode(n,c.identity),d>=20&&c.buildType&&Bt.encode(n,c.buildType),d>=27&&c.link&&o.encode(n,c.link)},decode(n){const c=e.fixed32.decode(n),r=e.fixed32.decode(n),i=t.decode(n),a=o.decode(n),s=o.decode(n),p=e.uint.decode(n);return{id:null,invitationSeed:c,mailbox:r,responseKeyPair:i,initiator:a,inviter:s,identity:1&p?ri.decode(n):null,buildType:d>=20&&2&p?Bt.decode(n):null,link:d>=27&&4&p?o.decode(n):null}}},ai=Rn,si=Cn,pi=vn,ui={preencode(n,c){e.buffer.preencode(n,c.encryptionKey),e.fixed32.preencode(n,c.mailbox),ai.preencode(n,c.status),e.uint.preencode(n,c.clock),n.end++,c.initiator&&o.preencode(n,c.initiator),c.fastForwardTo&&e.fixed32.preencode(n,c.fastForwardTo),c.identitySwap&&si.preencode(n,c.identitySwap),d>=6&&c.identitySwapV2&&pi.preencode(n,c.identitySwapV2),d>=10&&c.contact&&e.fixed32.preencode(n,c.contact),d>=27&&c.bootFrom&&o.preencode(n,c.bootFrom),d>=29&&c.activeClock&&e.uint.preencode(n,c.activeClock)},encode(n,c){const t=(c.initiator?1:0)|(c.fastForwardTo?2:0)|(c.identitySwap?4:0)|(d>=6&&c.identitySwapV2?8:0)|(d>=10&&c.contact?16:0)|(d>=27&&c.bootFrom?32:0)|(d>=29&&c.activeClock?64:0);e.buffer.encode(n,c.encryptionKey),e.fixed32.encode(n,c.mailbox),ai.encode(n,c.status),e.uint.encode(n,c.clock),e.uint.encode(n,t),c.initiator&&o.encode(n,c.initiator),c.fastForwardTo&&e.fixed32.encode(n,c.fastForwardTo),c.identitySwap&&si.encode(n,c.identitySwap),d>=6&&c.identitySwapV2&&pi.encode(n,c.identitySwapV2),d>=10&&c.contact&&e.fixed32.encode(n,c.contact),d>=27&&c.bootFrom&&o.encode(n,c.bootFrom),d>=29&&c.activeClock&&e.uint.encode(n,c.activeClock)},decode(n){const c=e.buffer.decode(n),t=e.fixed32.decode(n),r=ai.decode(n),i=e.uint.decode(n),a=e.uint.decode(n);return{roomKey:null,encryptionKey:c,mailbox:t,status:r,clock:i,initiator:1&a?o.decode(n):null,fastForwardTo:2&a?e.fixed32.decode(n):null,identitySwap:4&a?si.decode(n):null,identitySwapV2:d>=6&&8&a?pi.decode(n):null,contact:d>=10&&16&a?e.fixed32.decode(n):null,bootFrom:d>=27&&32&a?o.decode(n):null,activeClock:d>=29&&64&a?e.uint.decode(n):0}}},li={preencode(o,n){e.uint.preencode(o,n.clock),ka.preencode(o,n.status),o.end++,n.mailbox&&e.fixed32.preencode(o,n.mailbox),n.roomKey&&e.fixed32.preencode(o,n.roomKey),d>=22&&n.contactInfo&&va.preencode(o,n.contactInfo),d>=24&&n.alias&&e.string.preencode(o,n.alias)},encode(o,n){const c=(n.mailbox?1:0)|(n.roomKey?2:0)|(d>=22&&n.contactInfo?4:0)|(d>=24&&n.alias?8:0);e.uint.encode(o,n.clock),ka.encode(o,n.status),e.uint.encode(o,c),n.mailbox&&e.fixed32.encode(o,n.mailbox),n.roomKey&&e.fixed32.encode(o,n.roomKey),d>=22&&n.contactInfo&&va.encode(o,n.contactInfo),d>=24&&n.alias&&e.string.encode(o,n.alias)},decode(o){const n=e.uint.decode(o),c=ka.decode(o),t=e.uint.decode(o);return{memberKey:null,clock:n,status:c,mailbox:1&t?e.fixed32.decode(o):null,roomKey:2&t?e.fixed32.decode(o):null,contactInfo:d>=22&&4&t?va.decode(o):null,alias:d>=24&&8&t?e.string.decode(o):null}}},fi=pe,mi=nc,yi=$n,bi={preencode(o,n){e.uint.preencode(o,n.clock),fi.preencode(o,n.sender),mi.preencode(o,n.status),yi.preencode(o,n.keys),e.fixed32.preencode(o,n.mailbox),o.end++,n.message&&e.string.preencode(o,n.message),d>=11&&n.sentAt&&e.uint.preencode(o,n.sentAt),d>=22&&n.contactInfo&&ga.preencode(o,n.contactInfo)},encode(o,n){const c=(n.message?1:0)|(d>=11&&n.sentAt?2:0)|(d>=22&&n.contactInfo?4:0);e.uint.encode(o,n.clock),fi.encode(o,n.sender),mi.encode(o,n.status),yi.encode(o,n.keys),e.fixed32.encode(o,n.mailbox),e.uint.encode(o,c),n.message&&e.string.encode(o,n.message),d>=11&&n.sentAt&&e.uint.encode(o,n.sentAt),d>=22&&n.contactInfo&&ga.encode(o,n.contactInfo)},decode(o){const n=e.uint.decode(o),c=fi.decode(o),t=mi.decode(o),r=yi.decode(o),i=e.fixed32.decode(o),a=e.uint.decode(o);return{memberKey:null,clock:n,sender:c,status:t,keys:r,mailbox:i,message:1&a?e.string.decode(o):null,sentAt:d>=11&&2&a?e.uint.decode(o):0,contactInfo:d>=22&&4&a?ga.decode(o):null}}},xi={preencode(d,o){e.uint.preencode(d,o.value)},encode(d,o){e.uint.encode(d,o.value)},decode:d=>({key:0,value:e.uint.decode(d)})},ki={preencode(d,o){ne.preencode(d,o.privateProfileIdentity),e.buffer.preencode(d,o.deviceProof)},encode(d,o){ne.encode(d,o.privateProfileIdentity),e.buffer.encode(d,o.deviceProof)},decode:d=>({deviceKey:null,privateProfileIdentity:ne.decode(d),deviceProof:e.buffer.decode(d)})},vi={preencode(n,c){n.end++,c.encryptionKey&&e.buffer.preencode(n,c.encryptionKey),c.fastForwardTo&&e.fixed32.preencode(n,c.fastForwardTo),d>=27&&c.bootFrom&&o.preencode(n,c.bootFrom)},encode(n,c){const t=(c.encryptionKey?1:0)|(c.fastForwardTo?2:0)|(d>=27&&c.bootFrom?4:0);e.uint.encode(n,t),c.encryptionKey&&e.buffer.encode(n,c.encryptionKey),c.fastForwardTo&&e.fixed32.encode(n,c.fastForwardTo),d>=27&&c.bootFrom&&o.encode(n,c.bootFrom)},decode(n){const c=e.uint.decode(n);return{key:null,encryptionKey:1&c?e.buffer.decode(n):null,fastForwardTo:2&c?e.fixed32.decode(n):null,bootFrom:d>=27&&4&c?o.decode(n):null}}},gi=pe,hi=nc,Ki=$n,wi={preencode(o,n){e.uint.preencode(o,n.clock),gi.preencode(o,n.sender),hi.preencode(o,n.status),Ki.preencode(o,n.keys),e.fixed32.preencode(o,n.mailbox),o.end++,n.message&&e.string.preencode(o,n.message),d>=11&&n.sentAt&&e.uint.preencode(o,n.sentAt),d>=22&&n.contactInfo&&ha.preencode(o,n.contactInfo)},encode(o,n){const c=(n.message?1:0)|(d>=11&&n.sentAt?2:0)|(d>=22&&n.contactInfo?4:0);e.uint.encode(o,n.clock),gi.encode(o,n.sender),hi.encode(o,n.status),Ki.encode(o,n.keys),e.fixed32.encode(o,n.mailbox),e.uint.encode(o,c),n.message&&e.string.encode(o,n.message),d>=11&&n.sentAt&&e.uint.encode(o,n.sentAt),d>=22&&n.contactInfo&&ha.encode(o,n.contactInfo)},decode(o){const n=e.uint.decode(o),c=gi.decode(o),t=hi.decode(o),r=Ki.decode(o),i=e.fixed32.decode(o),a=e.uint.decode(o);return{memberKey:null,clock:n,sender:c,status:t,keys:r,mailbox:i,message:1&a?e.string.decode(o):null,sentAt:d>=11&&2&a?e.uint.decode(o):0,contactInfo:d>=22&&4&a?ha.decode(o):null}}},Ai={preencode(d,o){e.fixed32.preencode(d,o.key)},encode(d,o){e.fixed32.encode(d,o.key)},decode:d=>({deviceKey:null,key:e.fixed32.decode(d)})},Ti=Qr,Si={preencode(d,o){lo.preencode(d,o.id),e.uint.preencode(d,o.clock)},encode(d,o){lo.encode(d,o.id),e.uint.encode(d,o.clock)},decode:d=>({id:lo.decode(d),sender:null,clock:e.uint.decode(d),label:0})},Pi=Qr,Ii=Zc,Fi={preencode(o,n){lo.preencode(o,n.id),e.uint.preencode(o,n.total),Ii.preencode(o,n.labels),e.uint.preencode(o,n.editedAt),o.end++,d>=15&&n.flagsClock&&e.uint.preencode(o,n.flagsClock),d>=15&&n.version&&e.uint.preencode(o,n.version)},encode(o,n){const c=(d>=15&&n.flagsClock?1:0)|(d>=15&&n.version?2:0)|(d>=16&&n.isDeleted?4:0);lo.encode(o,n.id),e.uint.encode(o,n.total),Ii.encode(o,n.labels),e.uint.encode(o,n.editedAt),e.uint.encode(o,c),d>=15&&n.flagsClock&&e.uint.encode(o,n.flagsClock),d>=15&&n.version&&e.uint.encode(o,n.version)},decode(o){const n=lo.decode(o),c=e.uint.decode(o),t=Ii.decode(o),r=e.uint.decode(o),i=o.start<o.end?e.uint.decode(o):0;return{id:n,total:c,labels:t,editedAt:r,flagsClock:d>=15&&1&i?e.uint.decode(o):0,version:d>=15&&2&i?e.uint.decode(o):0,isDeleted:d>=16&&!!(4&i)}}},Ri={preencode(d,o){e.uint.preencode(d,o.length)},encode(d,o){e.uint.encode(d,o.length)},decode:d=>({memberKey:null,length:e.uint.decode(d)})},Ci=Cr,Hi={preencode(d,o){e.uint.preencode(d,o.clock)},encode(d,o){e.uint.encode(d,o.clock)},decode:d=>({key:null,sender:null,clock:e.uint.decode(d),label:0})},Vi=yt,Di={preencode(d,o){e.uint.preencode(d,o.total),Vi.preencode(d,o.labels),e.uint.preencode(d,o.editedAt),e.uint.preencode(d,o.flagsClock)},encode(d,o){e.uint.encode(d,o.total),Vi.encode(d,o.labels),e.uint.encode(d,o.editedAt),e.uint.encode(d,o.flagsClock)},decode:d=>({key:null,total:e.uint.decode(d),labels:Vi.decode(d),editedAt:e.uint.decode(d),flagsClock:e.uint.decode(d)})},Mi={preencode(o,n){e.buffer.preencode(o,n.encryptionKey),e.uint.preencode(o,n.createdAt),o.end++,d>=19&&n.endedAt&&e.uint.preencode(o,n.endedAt),d>=19&&n.discoveryKey&&e.fixed32.preencode(o,n.discoveryKey),d>=19&&n.version&&e.uint.preencode(o,n.version)},encode(o,n){const c=(d>=19&&n.endedAt?1:0)|(d>=19&&n.discoveryKey?2:0)|(d>=19&&n.version?4:0);e.buffer.encode(o,n.encryptionKey),e.uint.encode(o,n.createdAt),e.uint.encode(o,c),d>=19&&n.endedAt&&e.uint.encode(o,n.endedAt),d>=19&&n.discoveryKey&&e.fixed32.encode(o,n.discoveryKey),d>=19&&n.version&&e.uint.encode(o,n.version)},decode(o){const n=e.buffer.decode(o),c=e.uint.decode(o),t=e.uint.decode(o);return{callKey:null,encryptionKey:n,createdAt:c,endedAt:d>=19&&1&t?e.uint.decode(o):0,discoveryKey:d>=19&&2&t?e.fixed32.decode(o):null,version:d>=19&&4&t?e.uint.decode(o):0}}},Li={preencode(d,o){e.uint.preencode(d,o.createdAt)},encode(d,o){e.uint.encode(d,o.createdAt)},decode:d=>({callKey:null,memberKey:null,createdAt:e.uint.decode(d)})},qi={preencode(o,n){e.fixed32.preencode(o,n.memberKey),e.uint.preencode(o,n.createdAt),o.end++,d>=19&&n.swarmKey&&e.fixed32.preencode(o,n.swarmKey),d>=22&&n.lastHeartbeatAt&&e.uint.preencode(o,n.lastHeartbeatAt)},encode(o,n){const c=(d>=19&&n.swarmKey?1:0)|(d>=22&&n.lastHeartbeatAt?2:0)|(d>=23&&n.isRecording?4:0);e.fixed32.encode(o,n.memberKey),e.uint.encode(o,n.createdAt),e.uint.encode(o,c),d>=19&&n.swarmKey&&e.fixed32.encode(o,n.swarmKey),d>=22&&n.lastHeartbeatAt&&e.uint.encode(o,n.lastHeartbeatAt)},decode(o){const n=e.fixed32.decode(o),c=e.uint.decode(o),t=e.uint.decode(o);return{callKey:null,deviceKey:null,memberKey:n,createdAt:c,swarmKey:d>=19&&1&t?e.fixed32.decode(o):null,lastHeartbeatAt:d>=22&&2&t?e.uint.decode(o):0,isRecording:d>=23&&!!(4&t)}}},Ei={preencode(o,n){e.fixed32.preencode(o,n.deviceKey),e.uint.preencode(o,n.createdAt),o.end++,d>=26&&n.mediaStreamId&&e.string.preencode(o,n.mediaStreamId),d>=26&&n.type&&e.string.preencode(o,n.type),d>=26&&n.statusKey&&e.uint.preencode(o,n.statusKey)},encode(o,n){const c=(d>=26&&n.mediaStreamId?1:0)|(d>=26&&n.type?2:0)|(d>=26&&n.statusKey?4:0);e.fixed32.encode(o,n.deviceKey),e.uint.encode(o,n.createdAt),e.uint.encode(o,c),d>=26&&n.mediaStreamId&&e.string.encode(o,n.mediaStreamId),d>=26&&n.type&&e.string.encode(o,n.type),d>=26&&n.statusKey&&e.uint.encode(o,n.statusKey)},decode(o){const n=e.fixed32.decode(o),c=e.uint.decode(o),t=o.start<o.end?e.uint.decode(o):0;return{callKey:null,deviceKey:n,streamKey:null,createdAt:c,mediaStreamId:d>=26&&1&t?e.string.decode(o):null,type:d>=26&&2&t?e.string.decode(o):null,statusKey:d>=26&&4&t?e.uint.decode(o):0}}},Bi=Ai,zi={preencode(d,o){e.uint.preencode(d,o.timestamp)},encode(d,o){e.uint.encode(d,o.timestamp)},decode:d=>({memberKey:null,timestamp:e.uint.decode(d)})},Ni={preencode(e,d){e.end++},encode(o,n){const c=d>=26&&n.muted?1:0;e.uint.encode(o,c)},decode(o){const n=e.uint.decode(o);return{statusKey:0,muted:d>=26&&!!(1&n)}}},ji=id,Oi={preencode(d,o){e.fixed32.preencode(d,o.deviceKey),e.uint.preencode(d,o.deviceLength),e.uint.preencode(d,o.clock),ji.preencode(d,o.status)},encode(d,o){e.fixed32.encode(d,o.deviceKey),e.uint.encode(d,o.deviceLength),e.uint.encode(d,o.clock),ji.encode(d,o.status)},decode:d=>({memberKey:null,deviceKey:e.fixed32.decode(d),deviceLength:e.uint.decode(d),clock:e.uint.decode(d),status:ji.decode(d)})},Ui={preencode(d,o){e.buffer.preencode(d,o.data)},encode(d,o){e.buffer.encode(d,o.data)},decode:d=>({hash:null,data:e.buffer.decode(d)})},Ji={preencode(d,o){e.fixed32.preencode(d,o.writerKey),e.buffer.preencode(d,o.blindResponse)},encode(d,o){e.fixed32.encode(d,o.writerKey),e.buffer.encode(d,o.blindResponse)},decode:d=>({id:null,writerKey:e.fixed32.decode(d),blindResponse:e.buffer.decode(d)})},Gi=e.frame(w),Qi=e.frame(ir),Wi=Gi,Xi=e.array(Mc),Yi=e.frame(se),Zi=Gi,$i=Yi,_i=e.frame(hc),ea=e.frame(kr),da=Yi,oa=e.frame(fd),na=e.frame(yc),ca=e.frame(xt),ta=ca,ra=e.array(e.frame(qc)),ia=Gi,aa=e.frame(Nn),sa=e.frame(xc),pa=aa,ua=sa,la=aa,fa=sa,ma=Gi,ya=e.array(e.frame(ar)),ba=ya,xa=Yi,ka=aa,va=sa,ga=sa,ha=sa;function Ka(e){switch(e){case"@keet/head":return o;case"@keet/oplog-id":return n;case"@keet/encryption-keypair":return c;case"@keet/signing-keypair":return t;case"@keet/room-keys":return r;case"@keet/operation-header":return i;case"@keet/blob-pointer":return a;case"@keet/file-dimensions":return s;case"@keet/file-metadata":return u;case"@keet/external-drive-pointer":return l;case"@keet/external-blob-pointer":return f;case"@keet/file-pointer":return b;case"@keet/file":return v;case"@keet/image-file":return w;case"@keet/file-status":return A;case"@keet/file-record":return P;case"@keet/device-status":return I;case"@keet/member-status":return F;case"@keet/member-moderation-status":return R;case"@keet/abi":return C;case"@keet/device-stats":return H;case"@keet/member-stats":return V;case"@keet/chat-stats":return D;case"@keet/file-stats":return M;case"@keet/stats":return z;case"@keet/room-type":return j;case"@keet/system-settings":return O;case"@keet/system-digest":return G;case"@keet/room-seed":return Q;case"@keet/room-capabilities":return W;case"@keet/room-config":return Y;case"@keet/blind-peer":return Z;case"@keet/add-blind-peer-operation":return ee;case"@keet/remove-blind-peer-operation":return oe;case"@keet/identity-attestation":return ne;case"@keet/device-invitation":return ce;case"@keet/device":return ie;case"@keet/member-profile":return ae;case"@keet/device-profile":return se;case"@keet/member-update":return ue;case"@keet/device-update":return le;case"@keet/signed-pairing-data":return fe;case"@keet/device-request-identity":return me;case"@keet/device-response-identity":return ye;case"@keet/device-request-with-invitation":return ve;case"@keet/device-request-with-invitation-and-proof":return he;case"@keet/device-request-with-member-proof":return Ae;case"@keet/device-request":return Pe;case"@keet/device-response":return Re;case"@keet/invitation-metadata":return Ce;case"@keet/invitation":return De;case"@keet/add-invitation-operation":return qe;case"@keet/remove-invitation-operation":return Be;case"@keet/sendable-room-invitation":return ze;case"@keet/sendable-identity-invitation":return Ne;case"@keet/sendable-contact-invitation":return je;case"@keet/sendable-invitation":return Qe;case"@keet/add-device-operation":return Xe;case"@keet/update-device-operation":return Ze;case"@keet/start-indexing-operation":return $e;case"@keet/stop-indexing-operation":return _e;case"@keet/join-request":return dd;case"@keet/accept-join-request-operation":return cd;case"@keet/reject-join-request-operation":return rd;case"@keet/member":return sd;case"@keet/full-member":return ld;case"@keet/member-proofs":return fd;case"@keet/update-member-operation":return bd;case"@keet/change-member-status-operation":return vd;case"@keet/change-member-role-operation":return hd;case"@keet/remove-member-operation":return wd;case"@keet/member-activity":return Ad;case"@keet/member-joined-event":return Td;case"@keet/member-left-event":return Sd;case"@keet/title-changed-chat-event":return Pd;case"@keet/chat-event":return Cd;case"@keet/sendable-event":return Hd;case"@keet/display-range":return Vd;case"@keet/display-content-range":return Md;case"@keet/mention-display-item":return qd;case"@keet/link-preview":return zd;case"@keet/display-link-item":return Od;case"@keet/display":return _d;case"@keet/oplog-message":return co;case"@keet/index-message":return io;case"@keet/full-index-message":return po;case"@keet/message-status":return uo;case"@keet/message-index-id":return lo;case"@keet/thread":return mo;case"@keet/chat-message-record":return ko;case"@keet/full-chat-message-record":return Ko;case"@keet/add-chat-message-operation":return To;case"@keet/remove-chat-message-operation":return Po;case"@keet/update-chat-message-operation":return Ro;case"@keet/pin-chat-message-operation":return Ho;case"@keet/reaction":return Vo;case"@keet/reactions-summary":return Do;case"@keet/reactions-digest":return Lo;case"@keet/add-reaction-operation":return Eo;case"@keet/remove-reaction-operation":return zo;case"@keet/update-room-config-operation":return Oo;case"@keet/group-member":return Uo;case"@keet/user-registry-info":return Jo;case"@keet/room-identity":return Qo;case"@keet/genesis-operation":return dn;case"@keet/upgrade-operation":return nn;case"@keet/update-system-settings-operation":return rn;case"@keet-private-id/contact":return an;case"@keet-private-id/v3-room-migration-info":return sn;case"@keet-private-id/run-v3-migration-operation":return ln;case"@keet-private-id/update-identity-operation":return mn;case"@keet-private-id/counters":return yn;case"@keet-private-id/stats":return bn;case"@keet-private-id/add-entropy-operation":return xn;case"@keet-private-id/pending-invitation-identity":return kn;case"@keet-private-id/pending-invitation":return gn;case"@keet-private-id/resolve-pending-invitation-operation":return Kn;case"@keet-private-id/add-pending-invitation-operation":return Tn;case"@keet-private-id/remove-pending-invitation-operation":return Pn;case"@keet-private-id/identity-swap":return In;case"@keet-private-id/room-status":return Fn;case"@keet-private-id/room":return Vn;case"@keet-private-id/add-room-operation":return Mn;case"@keet-private-id/remove-room-operation":return qn;case"@keet-private-id/update-room-status-operation":return zn;case"@keet-private-id/contact-status":return Nn;case"@keet-private-id/contact-record":return jn;case"@keet-private-id/add-contact-operation":return Jn;case"@keet-private-id/update-contact-status-operation":return Qn;case"@keet-private-id/remove-contact-operation":return Xn;case"@keet-private-id/contact-request-status":return Yn;case"@keet-private-id/contact-request-body":return _n;case"@keet-private-id/contact-request":return dc;case"@keet-private-id/contact-request-record":return tc;case"@keet-private-id/add-contact-request-operation":return ic;case"@keet-private-id/update-contact-request-status-operation":return pc;case"@keet-private-id/profile-discovery-record-v1":return uc;case"@keet-private-id/profile-discovery-record":return lc;case"@keet/add-file-preview-operation":return mc;case"@keet/member-removed-event":return yc;case"@keet/member-contact-info":return xc;case"@keet/remove-device-operation":return vc;case"@keet/device-identity":return gc;case"@keet/readonly-room-invitation":return hc;case"@keet-private-id/identity-swap-v2":return Kc;case"@keet-private-id/activate-contact-room-operation":return Ac;case"@keet/display-type":return Sc;case"@keet/test-increment-operation":return Ic;case"@keet/test-collection-record-1":return Fc;case"@keet/migrate-abi-operation":return Cc;case"@keet/system-settings-keys":return Vc;case"@keet/room-supported-language":return Mc;case"@keet/translation-display-item":return qc;case"@keet-private-id/unreads":return Ec;case"@keet-private-id/add-unreads-key-operation":return zc;case"@keet-private-id/remove-unreads-key-operation":return jc;case"@keet/label-type":return Uc;case"@keet/chat-label":return Jc;case"@keet/add-chat-label-operation":return Qc;case"@keet/remove-chat-label-operation":return Xc;case"@keet/chat-label-summary":return Yc;case"@keet/chat-label-digest":return $c;case"@keet/update-read-length-operation":return et;case"@keet/read-length":return dt;case"@keet/tmp-removed-member":return ot;case"@keet-private-id/settings":return nt;case"@keet-private-id/user-settings-key":return tt;case"@keet-private-id/update-settings-operation":return at;case"@keet/member-label-type":return pt;case"@keet/member-label":return ut;case"@keet/add-member-label-operation":return ft;case"@keet/member-label-summary":return mt;case"@keet/member-label-digest":return bt;case"@keet/location-shared-event":return xt;case"@keet/move-indexer-operation":return vt;case"@keet/start-call":return Kt;case"@keet/join-call":return Tt;case"@keet/leave-call":return Pt;case"@keet/end-call":return Ft;case"@keet/add-call-stream":return Ct;case"@keet/remove-call-stream":return Vt;case"@keet/call-record":return Dt;case"@keet/call-member-record":return Mt;case"@keet/call-device-record":return Lt;case"@keet/call-stream-record":return qt;case"@keet/build-type":return Bt;case"@keet/test-crash-operation":return Nt;case"@keet/test-dispatch-error-operation":return Ot;case"@keet-private-id/shorten-device-attestation-operation":return Jt;case"@keet/call-device-heartbeat":return Qt;case"@keet/remove-call-device":return Xt;case"@keet/start-call-recording":return Zt;case"@keet/stop-call-recording":return _t;case"@keet/dismiss-chat-reports-operation":return dr;case"@keet/update-typing-indicator-operation":return nr;case"@keet/typing-indicator":return cr;case"@keet-private-id/update-contact-alias-operation":return rr;case"@keet/call-stats":return ir;case"@keet/call-stream-input":return ar;case"@keet/update-call-stream":return pr;case"@keet/call-stream-status-record":return ur;case"@keet/room-keys-v2":return lr;case"@keet/blob-pointer-v2":return fr;case"@keet/blob":return mr;case"@keet/autobee-migration":return yr;case"@keet/autobee-migration-operation":return xr;case"@keet/readonly-room-invitation-v2":return kr;case"@keet/admin-last-seen":return gr;case"@keet/blob-record":return hr;case"@keet-private-id/room-v2":return Tr;case"@keet-private-id/add-room-operation-v2":return Pr;case"@keet-private-id/pending-invitation-response":return Ir;case"@keet-private-id/resolve-pending-invitation-operation-v2":return Rr;case"@keet/blind-peer/hyperdb#1":return Cr;case"@keet/join-request/hyperdb#4":return Vr;case"@keet/device/hyperdb#5":return Lr;case"@keet/member-proofs/hyperdb#10":return qr;case"@keet/member/hyperdb#11":return zr;case"@keet/member-activity/hyperdb#17":return Nr;case"@keet/invitation/hyperdb#18":return Ur;case"@keet/thread/hyperdb#19":return Gr;case"@keet/message-index-id/hyperdb#21":return Qr;case"@keet/chat-message-record/hyperdb#21":return Zr;case"@keet/message-index-id/hyperdb#25":return $r;case"@keet/reactions-digest/hyperdb#25":return ei;case"@keet/message-index-id/hyperdb#26":return di;case"@keet/reaction/hyperdb#26":return oi;case"@keet/file-record/hyperdb#28":return ti;case"@keet-private-id/pending-invitation/hyperdb#35":return ii;case"@keet-private-id/room/hyperdb#36":return ui;case"@keet-private-id/contact-record/hyperdb#38":return li;case"@keet-private-id/contact-request-record/hyperdb#40":return bi;case"@keet/test-collection-record-1/hyperdb#46":return xi;case"@keet/device-identity/hyperdb#50":return ki;case"@keet/room-keys/hyperdb#51":return vi;case"@keet-private-id/contact-request-record/hyperdb#51":return wi;case"@keet-private-id/unreads/hyperdb#59":return Ai;case"@keet/message-index-id/hyperdb#60":return Ti;case"@keet/chat-label/hyperdb#60":return Si;case"@keet/message-index-id/hyperdb#61":return Pi;case"@keet/chat-label-digest/hyperdb#61":return Fi;case"@keet/read-length/hyperdb#62":return Ri;case"@keet/tmp-removed-member/hyperdb#63":return Ci;case"@keet/member-label/hyperdb#66":return Hi;case"@keet/member-label-digest/hyperdb#67":return Di;case"@keet/call-record/hyperdb#69":return Mi;case"@keet/call-member-record/hyperdb#72":return Li;case"@keet/call-device-record/hyperdb#73":return qi;case"@keet/call-stream-record/hyperdb#75":return Ei;case"@keet-private-id/unreads/hyperdb#77":return Bi;case"@keet/typing-indicator/hyperdb#78":return zi;case"@keet/call-stream-status-record/hyperdb#80":return Ni;case"@keet/admin-last-seen/hyperdb#81":return Oi;case"@keet/blob/hyperdb#83":return Ui;case"@keet-private-id/pending-invitation-response/hyperdb#85":return Ji;default:throw new Error("Encoder not found "+e)}}function wa(e,o=29){const n=Ka(e);return{preencode(e,c){d=o,n.preencode(e,c)},encode(e,c){d=o,n.encode(e,c)},decode:e=>(d=o,n.decode(e))}}const Aa=wa;module.exports={resolveStruct:Aa,getStruct:wa,getEnum:function(e){switch(e){case"@keet/room-type":return N;case"@keet/display-type":return Tc;case"@keet/system-settings-keys":return Hc;case"@keet/room-supported-language":return Dc;case"@keet/label-type":return Oc;case"@keet-private-id/user-settings-key":return ct;case"@keet/member-label-type":return st;case"@keet/build-type":return Et;default:throw new Error("Enum not found "+e)}},getEncoding:Ka,encode:function(o,n,c=29){return d=c,e.encode(Ka(o),n)},decode:function(o,n,c=29){return d=c,e.decode(Ka(o),n)},setVersion:function(e){d=e},version:d};
@holepunchto/keet-core/schema/spec/contract/hyperdispatch/index.js +1 -1
……@@ -1 +1 @@
1const{c:e,b4a:t,assert:a,DispatchError:r,ERRORS:n}=require("hyperdispatch/runtime"),{version:i,getEncoding:s,setVersion:d}=require("./messages.js"),l=i;function h(t,{version:a=l}={}){const n={buffer:t,start:0,end:t.length},i=e.uint.decode(n),s=function(e){switch(e){case 2:return c;case 3:return u;case 4:return o;case 5:return k;case 6:return v;case 7:return p;case 8:return _;case 9:return m;case 10:return g;case 11:return b;case 12:return f;case 13:return M;case 14:return y;case 15:return q;case 16:return j;case 17:return x;case 18:return w;case 19:return E;case 20:return N;case 21:return O;case 22:return R;case 23:return D;case 24:return T;case 25:return U;case 26:return A;case 27:return B;case 28:return F;case 29:return I;case 30:return S;case 31:return Y;case 32:return H;case 33:return L;case 34:return V;case 35:return X;case 36:return z;case 37:return C;case 38:return G;case 39:return J;case 40:return K;case 41:return P;case 42:return Q;case 43:return W;case 44:return Z;case 45:return $;case 46:return ee;case 47:return te;case 48:return ae;case 49:return re;case 50:return ne;case 51:return ie;case 52:return se;case 53:return de;case 54:return le;case 55:return he;case 56:return ce;case 57:return ue;case 58:return oe;case 59:return ke;case 60:return ve;case 61:return pe;case 62:return _e;case 63:return me;case 64:return ge;case 65:return be;case 66:return fe;case 67:return Me;default:throw r.HANDLER_NOT_FOUND_BY_ID(e)}}(i);d(a);const h=s.enc.decode(n);return{id:i,name:s.name,value:h}}const c={name:"@keet/genesis",id:2,enc:s("@keet/genesis-operation")},u={name:"@keet/upgrade",id:3,enc:s("@keet/upgrade-operation")},o={name:"@keet/update-system-settings",id:4,enc:s("@keet/update-system-settings-operation")},k={name:"@keet/add-blind-peer",id:5,enc:s("@keet/add-blind-peer-operation")},v={name:"@keet/remove-blind-peer",id:6,enc:s("@keet/remove-blind-peer-operation")},p={name:"@keet/add-device",id:7,enc:s("@keet/add-device-operation")},_={name:"@keet/update-device",id:8,enc:s("@keet/update-device-operation")},m={name:"@keet/start-indexing",id:9,enc:s("@keet/start-indexing-operation")},g={name:"@keet/stop-indexing",id:10,enc:s("@keet/stop-indexing-operation")},b={name:"@keet/accept-join-request",id:11,enc:s("@keet/accept-join-request-operation")},f={name:"@keet/reject-join-request",id:12,enc:s("@keet/reject-join-request-operation")},M={name:"@keet/update-member",id:13,enc:s("@keet/update-member-operation")},y={name:"@keet/change-member-role",id:14,enc:s("@keet/change-member-role-operation")},q={name:"@keet/change-member-status",id:15,enc:s("@keet/change-member-status-operation")},j={name:"@keet/remove-member",id:16,enc:s("@keet/remove-member-operation")},x={name:"@keet/add-invitation",id:17,enc:s("@keet/add-invitation-operation")},w={name:"@keet/remove-invitation",id:18,enc:s("@keet/remove-invitation-operation")},E={name:"@keet/add-chat-message",id:19,enc:s("@keet/add-chat-message-operation")},N={name:"@keet/remove-chat-message",id:20,enc:s("@keet/remove-chat-message-operation")},O={name:"@keet/update-chat-message",id:21,enc:s("@keet/update-chat-message-operation")},R={name:"@keet/pin-chat-message",id:22,enc:s("@keet/pin-chat-message-operation")},D={name:"@keet/add-reaction",id:23,enc:s("@keet/add-reaction-operation")},T={name:"@keet/remove-reaction",id:24,enc:s("@keet/remove-reaction-operation")},U={name:"@keet/update-room-config",id:25,enc:s("@keet/update-room-config-operation")},A={name:"@keet-private-id/run-v3-migration",id:26,enc:s("@keet-private-id/run-v3-migration-operation")},B={name:"@keet-private-id/update-identity",id:27,enc:s("@keet-private-id/update-identity-operation")},F={name:"@keet-private-id/resolve-pending-invitation",id:28,enc:s("@keet-private-id/resolve-pending-invitation-operation")},I={name:"@keet-private-id/add-pending-invitation",id:29,enc:s("@keet-private-id/add-pending-invitation-operation")},S={name:"@keet-private-id/remove-pending-invitation",id:30,enc:s("@keet-private-id/remove-pending-invitation-operation")},Y={name:"@keet-private-id/add-room",id:31,enc:s("@keet-private-id/add-room-operation")},H={name:"@keet-private-id/remove-room",id:32,enc:s("@keet-private-id/remove-room-operation")},L={name:"@keet-private-id/update-room-status",id:33,enc:s("@keet-private-id/update-room-status-operation")},V={name:"@keet-private-id/add-contact",id:34,enc:s("@keet-private-id/add-contact-operation")},X={name:"@keet-private-id/update-contact-status",id:35,enc:s("@keet-private-id/update-contact-status-operation")},z={name:"@keet-private-id/remove-contact",id:36,enc:s("@keet-private-id/remove-contact-operation")},C={name:"@keet-private-id/add-contact-request",id:37,enc:s("@keet-private-id/add-contact-request-operation")},G={name:"@keet-private-id/update-contact-request-status",id:38,enc:s("@keet-private-id/update-contact-request-status-operation")},J={name:"@keet/add-file-preview",id:39,enc:s("@keet/add-file-preview-operation")},K={name:"@keet/remove-device",id:40,enc:s("@keet/remove-device-operation")},P={name:"@keet-private-id/activate-contact-room",id:41,enc:s("@keet-private-id/activate-contact-room-operation")},Q={name:"@keet/test-increment",id:42,enc:s("@keet/test-increment-operation")},W={name:"@keet/migrate-abi",id:43,enc:s("@keet/migrate-abi-operation")},Z={name:"@keet-private-id/add-unreads-key",id:44,enc:s("@keet-private-id/add-unreads-key-operation")},$={name:"@keet-private-id/remove-unreads-key",id:45,enc:s("@keet-private-id/remove-unreads-key-operation")},ee={name:"@keet/add-chat-label",id:46,enc:s("@keet/add-chat-label-operation")},te={name:"@keet/remove-chat-label",id:47,enc:s("@keet/remove-chat-label-operation")},ae={name:"@keet/update-read-length",id:48,enc:s("@keet/update-read-length-operation")},re={name:"@keet-private-id/update-settings",id:49,enc:s("@keet-private-id/update-settings-operation")},ne={name:"@keet/add-member-label",id:50,enc:s("@keet/add-member-label-operation")},ie={name:"@keet/move-indexer",id:51,enc:s("@keet/move-indexer-operation")},se={name:"@keet/start-call",id:52,enc:s("@keet/start-call")},de={name:"@keet/join-call",id:53,enc:s("@keet/join-call")},le={name:"@keet/leave-call",id:54,enc:s("@keet/leave-call")},he={name:"@keet/end-call",id:55,enc:s("@keet/end-call")},ce={name:"@keet/add-call-stream",id:56,enc:s("@keet/add-call-stream")},ue={name:"@keet/remove-call-stream",id:57,enc:s("@keet/remove-call-stream")},oe={name:"@keet/test-crash",id:58,enc:s("@keet/test-crash-operation")},ke={name:"@keet/test-dispatch-error",id:59,enc:s("@keet/test-dispatch-error-operation")},ve={name:"@keet-private-id/shorten-device-attestation",id:60,enc:s("@keet-private-id/shorten-device-attestation-operation")},pe={name:"@keet/call-device-heartbeat",id:61,enc:s("@keet/call-device-heartbeat")},_e={name:"@keet/remove-call-device",id:62,enc:s("@keet/remove-call-device")},me={name:"@keet/start-call-recording",id:63,enc:s("@keet/start-call-recording")},ge={name:"@keet/stop-call-recording",id:64,enc:s("@keet/stop-call-recording")},be={name:"@keet/update-typing-indicator",id:65,enc:s("@keet/update-typing-indicator-operation")},fe={name:"@keet/dismiss-chat-reports",id:66,enc:s("@keet/dismiss-chat-reports-operation")},Me={name:"@keet-private-id/update-contact-alias",id:67,enc:s("@keet-private-id/update-contact-alias-operation")};module.exports={version:i,encode:function(a,n,{version:i=l}={}){const s={buffer:null,start:0,end:0},h=function(e){switch(e){case"@keet/genesis":return c;case"@keet/upgrade":return u;case"@keet/update-system-settings":return o;case"@keet/add-blind-peer":return k;case"@keet/remove-blind-peer":return v;case"@keet/add-device":return p;case"@keet/update-device":return _;case"@keet/start-indexing":return m;case"@keet/stop-indexing":return g;case"@keet/accept-join-request":return b;case"@keet/reject-join-request":return f;case"@keet/update-member":return M;case"@keet/change-member-role":return y;case"@keet/change-member-status":return q;case"@keet/remove-member":return j;case"@keet/add-invitation":return x;case"@keet/remove-invitation":return w;case"@keet/add-chat-message":return E;case"@keet/remove-chat-message":return N;case"@keet/update-chat-message":return O;case"@keet/pin-chat-message":return R;case"@keet/add-reaction":return D;case"@keet/remove-reaction":return T;case"@keet/update-room-config":return U;case"@keet-private-id/run-v3-migration":return A;case"@keet-private-id/update-identity":return B;case"@keet-private-id/resolve-pending-invitation":return F;case"@keet-private-id/add-pending-invitation":return I;case"@keet-private-id/remove-pending-invitation":return S;case"@keet-private-id/add-room":return Y;case"@keet-private-id/remove-room":return H;case"@keet-private-id/update-room-status":return L;case"@keet-private-id/add-contact":return V;case"@keet-private-id/update-contact-status":return X;case"@keet-private-id/remove-contact":return z;case"@keet-private-id/add-contact-request":return C;case"@keet-private-id/update-contact-request-status":return G;case"@keet/add-file-preview":return J;case"@keet/remove-device":return K;case"@keet-private-id/activate-contact-room":return P;case"@keet/test-increment":return Q;case"@keet/migrate-abi":return W;case"@keet-private-id/add-unreads-key":return Z;case"@keet-private-id/remove-unreads-key":return $;case"@keet/add-chat-label":return ee;case"@keet/remove-chat-label":return te;case"@keet/update-read-length":return ae;case"@keet-private-id/update-settings":return re;case"@keet/add-member-label":return ne;case"@keet/move-indexer":return ie;case"@keet/start-call":return se;case"@keet/join-call":return de;case"@keet/leave-call":return le;case"@keet/end-call":return he;case"@keet/add-call-stream":return ce;case"@keet/remove-call-stream":return ue;case"@keet/test-crash":return oe;case"@keet/test-dispatch-error":return ke;case"@keet-private-id/shorten-device-attestation":return ve;case"@keet/call-device-heartbeat":return pe;case"@keet/remove-call-device":return _e;case"@keet/start-call-recording":return me;case"@keet/stop-call-recording":return ge;case"@keet/update-typing-indicator":return be;case"@keet/dismiss-chat-reports":return fe;case"@keet-private-id/update-contact-alias":return Me;default:throw r.ROUTE_NOT_FOUND_BY_NAME(e)}}(a);return d(i),e.uint.preencode(s,h.id),h.enc.preencode(s,n),s.buffer=t.allocUnsafe(s.end),e.uint.encode(s,h.id),h.enc.encode(s,n),s.buffer},decode:h,Router:class{constructor(){this._handler2=null,this._handler3=null,this._handler4=null,this._handler5=null,this._handler6=null,this._handler7=null,this._handler8=null,this._handler9=null,this._handler10=null,this._handler11=null,this._handler12=null,this._handler13=null,this._handler14=null,this._handler15=null,this._handler16=null,this._handler17=null,this._handler18=null,this._handler19=null,this._handler20=null,this._handler21=null,this._handler22=null,this._handler23=null,this._handler24=null,this._handler25=null,this._handler26=null,this._handler27=null,this._handler28=null,this._handler29=null,this._handler30=null,this._handler31=null,this._handler32=null,this._handler33=null,this._handler34=null,this._handler35=null,this._handler36=null,this._handler37=null,this._handler38=null,this._handler39=null,this._handler40=null,this._handler41=null,this._handler42=null,this._handler43=null,this._handler44=null,this._handler45=null,this._handler46=null,this._handler47=null,this._handler48=null,this._handler49=null,this._handler50=null,this._handler51=null,this._handler52=null,this._handler53=null,this._handler54=null,this._handler55=null,this._handler56=null,this._handler57=null,this._handler58=null,this._handler59=null,this._handler60=null,this._handler61=null,this._handler62=null,this._handler63=null,this._handler64=null,this._handler65=null,this._handler66=null,this._handler67=null,this._missing=66}add(e,t){switch(e){case"@keet/genesis":this._handler2=t;break;case"@keet/upgrade":this._handler3=t;break;case"@keet/update-system-settings":this._handler4=t;break;case"@keet/add-blind-peer":this._handler5=t;break;case"@keet/remove-blind-peer":this._handler6=t;break;case"@keet/add-device":this._handler7=t;break;case"@keet/update-device":this._handler8=t;break;case"@keet/start-indexing":this._handler9=t;break;case"@keet/stop-indexing":this._handler10=t;break;case"@keet/accept-join-request":this._handler11=t;break;case"@keet/reject-join-request":this._handler12=t;break;case"@keet/update-member":this._handler13=t;break;case"@keet/change-member-role":this._handler14=t;break;case"@keet/change-member-status":this._handler15=t;break;case"@keet/remove-member":this._handler16=t;break;case"@keet/add-invitation":this._handler17=t;break;case"@keet/remove-invitation":this._handler18=t;break;case"@keet/add-chat-message":this._handler19=t;break;case"@keet/remove-chat-message":this._handler20=t;break;case"@keet/update-chat-message":this._handler21=t;break;case"@keet/pin-chat-message":this._handler22=t;break;case"@keet/add-reaction":this._handler23=t;break;case"@keet/remove-reaction":this._handler24=t;break;case"@keet/update-room-config":this._handler25=t;break;case"@keet-private-id/run-v3-migration":this._handler26=t;break;case"@keet-private-id/update-identity":this._handler27=t;break;case"@keet-private-id/resolve-pending-invitation":this._handler28=t;break;case"@keet-private-id/add-pending-invitation":this._handler29=t;break;case"@keet-private-id/remove-pending-invitation":this._handler30=t;break;case"@keet-private-id/add-room":this._handler31=t;break;case"@keet-private-id/remove-room":this._handler32=t;break;case"@keet-private-id/update-room-status":this._handler33=t;break;case"@keet-private-id/add-contact":this._handler34=t;break;case"@keet-private-id/update-contact-status":this._handler35=t;break;case"@keet-private-id/remove-contact":this._handler36=t;break;case"@keet-private-id/add-contact-request":this._handler37=t;break;case"@keet-private-id/update-contact-request-status":this._handler38=t;break;case"@keet/add-file-preview":this._handler39=t;break;case"@keet/remove-device":this._handler40=t;break;case"@keet-private-id/activate-contact-room":this._handler41=t;break;case"@keet/test-increment":this._handler42=t;break;case"@keet/migrate-abi":this._handler43=t;break;case"@keet-private-id/add-unreads-key":this._handler44=t;break;case"@keet-private-id/remove-unreads-key":this._handler45=t;break;case"@keet/add-chat-label":this._handler46=t;break;case"@keet/remove-chat-label":this._handler47=t;break;case"@keet/update-read-length":this._handler48=t;break;case"@keet-private-id/update-settings":this._handler49=t;break;case"@keet/add-member-label":this._handler50=t;break;case"@keet/move-indexer":this._handler51=t;break;case"@keet/start-call":this._handler52=t;break;case"@keet/join-call":this._handler53=t;break;case"@keet/leave-call":this._handler54=t;break;case"@keet/end-call":this._handler55=t;break;case"@keet/add-call-stream":this._handler56=t;break;case"@keet/remove-call-stream":this._handler57=t;break;case"@keet/test-crash":this._handler58=t;break;case"@keet/test-dispatch-error":this._handler59=t;break;case"@keet-private-id/shorten-device-attestation":this._handler60=t;break;case"@keet/call-device-heartbeat":this._handler61=t;break;case"@keet/remove-call-device":this._handler62=t;break;case"@keet/start-call-recording":this._handler63=t;break;case"@keet/stop-call-recording":this._handler64=t;break;case"@keet/update-typing-indicator":this._handler65=t;break;case"@keet/dismiss-chat-reports":this._handler66=t;break;case"@keet-private-id/update-contact-alias":this._handler67=t;break;default:throw r.NONEXISTENT_ROUTE(e)}this._missing--}_checkAll(){a(null!==this._handler2,'Missing handler for "@keet/genesis"'),a(null!==this._handler3,'Missing handler for "@keet/upgrade"'),a(null!==this._handler4,'Missing handler for "@keet/update-system-settings"'),a(null!==this._handler5,'Missing handler for "@keet/add-blind-peer"'),a(null!==this._handler6,'Missing handler for "@keet/remove-blind-peer"'),a(null!==this._handler7,'Missing handler for "@keet/add-device"'),a(null!==this._handler8,'Missing handler for "@keet/update-device"'),a(null!==this._handler9,'Missing handler for "@keet/start-indexing"'),a(null!==this._handler10,'Missing handler for "@keet/stop-indexing"'),a(null!==this._handler11,'Missing handler for "@keet/accept-join-request"'),a(null!==this._handler12,'Missing handler for "@keet/reject-join-request"'),a(null!==this._handler13,'Missing handler for "@keet/update-member"'),a(null!==this._handler14,'Missing handler for "@keet/change-member-role"'),a(null!==this._handler15,'Missing handler for "@keet/change-member-status"'),a(null!==this._handler16,'Missing handler for "@keet/remove-member"'),a(null!==this._handler17,'Missing handler for "@keet/add-invitation"'),a(null!==this._handler18,'Missing handler for "@keet/remove-invitation"'),a(null!==this._handler19,'Missing handler for "@keet/add-chat-message"'),a(null!==this._handler20,'Missing handler for "@keet/remove-chat-message"'),a(null!==this._handler21,'Missing handler for "@keet/update-chat-message"'),a(null!==this._handler22,'Missing handler for "@keet/pin-chat-message"'),a(null!==this._handler23,'Missing handler for "@keet/add-reaction"'),a(null!==this._handler24,'Missing handler for "@keet/remove-reaction"'),a(null!==this._handler25,'Missing handler for "@keet/update-room-config"'),a(null!==this._handler26,'Missing handler for "@keet-private-id/run-v3-migration"'),a(null!==this._handler27,'Missing handler for "@keet-private-id/update-identity"'),a(null!==this._handler28,'Missing handler for "@keet-private-id/resolve-pending-invitation"'),a(null!==this._handler29,'Missing handler for "@keet-private-id/add-pending-invitation"'),a(null!==this._handler30,'Missing handler for "@keet-private-id/remove-pending-invitation"'),a(null!==this._handler31,'Missing handler for "@keet-private-id/add-room"'),a(null!==this._handler32,'Missing handler for "@keet-private-id/remove-room"'),a(null!==this._handler33,'Missing handler for "@keet-private-id/update-room-status"'),a(null!==this._handler34,'Missing handler for "@keet-private-id/add-contact"'),a(null!==this._handler35,'Missing handler for "@keet-private-id/update-contact-status"'),a(null!==this._handler36,'Missing handler for "@keet-private-id/remove-contact"'),a(null!==this._handler37,'Missing handler for "@keet-private-id/add-contact-request"'),a(null!==this._handler38,'Missing handler for "@keet-private-id/update-contact-request-status"'),a(null!==this._handler39,'Missing handler for "@keet/add-file-preview"'),a(null!==this._handler40,'Missing handler for "@keet/remove-device"'),a(null!==this._handler41,'Missing handler for "@keet-private-id/activate-contact-room"'),a(null!==this._handler42,'Missing handler for "@keet/test-increment"'),a(null!==this._handler43,'Missing handler for "@keet/migrate-abi"'),a(null!==this._handler44,'Missing handler for "@keet-private-id/add-unreads-key"'),a(null!==this._handler45,'Missing handler for "@keet-private-id/remove-unreads-key"'),a(null!==this._handler46,'Missing handler for "@keet/add-chat-label"'),a(null!==this._handler47,'Missing handler for "@keet/remove-chat-label"'),a(null!==this._handler48,'Missing handler for "@keet/update-read-length"'),a(null!==this._handler49,'Missing handler for "@keet-private-id/update-settings"'),a(null!==this._handler50,'Missing handler for "@keet/add-member-label"'),a(null!==this._handler51,'Missing handler for "@keet/move-indexer"'),a(null!==this._handler52,'Missing handler for "@keet/start-call"'),a(null!==this._handler53,'Missing handler for "@keet/join-call"'),a(null!==this._handler54,'Missing handler for "@keet/leave-call"'),a(null!==this._handler55,'Missing handler for "@keet/end-call"'),a(null!==this._handler56,'Missing handler for "@keet/add-call-stream"'),a(null!==this._handler57,'Missing handler for "@keet/remove-call-stream"'),a(null!==this._handler58,'Missing handler for "@keet/test-crash"'),a(null!==this._handler59,'Missing handler for "@keet/test-dispatch-error"'),a(null!==this._handler60,'Missing handler for "@keet-private-id/shorten-device-attestation"'),a(null!==this._handler61,'Missing handler for "@keet/call-device-heartbeat"'),a(null!==this._handler62,'Missing handler for "@keet/remove-call-device"'),a(null!==this._handler63,'Missing handler for "@keet/start-call-recording"'),a(null!==this._handler64,'Missing handler for "@keet/stop-call-recording"'),a(null!==this._handler65,'Missing handler for "@keet/update-typing-indicator"'),a(null!==this._handler66,'Missing handler for "@keet/dismiss-chat-reports"'),a(null!==this._handler67,'Missing handler for "@keet-private-id/update-contact-alias"')}async dispatch(e,a){this._missing>0&&this._checkAll(),d(l);const n=t.isBuffer(e)?h(e):e;switch(n.id){case 2:return this._handler2(n.value,a);case 3:return this._handler3(n.value,a);case 4:return this._handler4(n.value,a);case 5:return this._handler5(n.value,a);case 6:return this._handler6(n.value,a);case 7:return this._handler7(n.value,a);case 8:return this._handler8(n.value,a);case 9:return this._handler9(n.value,a);case 10:return this._handler10(n.value,a);case 11:return this._handler11(n.value,a);case 12:return this._handler12(n.value,a);case 13:return this._handler13(n.value,a);case 14:return this._handler14(n.value,a);case 15:return this._handler15(n.value,a);case 16:return this._handler16(n.value,a);case 17:return this._handler17(n.value,a);case 18:return this._handler18(n.value,a);case 19:return this._handler19(n.value,a);case 20:return this._handler20(n.value,a);case 21:return this._handler21(n.value,a);case 22:return this._handler22(n.value,a);case 23:return this._handler23(n.value,a);case 24:return this._handler24(n.value,a);case 25:return this._handler25(n.value,a);case 26:return this._handler26(n.value,a);case 27:return this._handler27(n.value,a);case 28:return this._handler28(n.value,a);case 29:return this._handler29(n.value,a);case 30:return this._handler30(n.value,a);case 31:return this._handler31(n.value,a);case 32:return this._handler32(n.value,a);case 33:return this._handler33(n.value,a);case 34:return this._handler34(n.value,a);case 35:return this._handler35(n.value,a);case 36:return this._handler36(n.value,a);case 37:return this._handler37(n.value,a);case 38:return this._handler38(n.value,a);case 39:return this._handler39(n.value,a);case 40:return this._handler40(n.value,a);case 41:return this._handler41(n.value,a);case 42:return this._handler42(n.value,a);case 43:return this._handler43(n.value,a);case 44:return this._handler44(n.value,a);case 45:return this._handler45(n.value,a);case 46:return this._handler46(n.value,a);case 47:return this._handler47(n.value,a);case 48:return this._handler48(n.value,a);case 49:return this._handler49(n.value,a);case 50:return this._handler50(n.value,a);case 51:return this._handler51(n.value,a);case 52:return this._handler52(n.value,a);case 53:return this._handler53(n.value,a);case 54:return this._handler54(n.value,a);case 55:return this._handler55(n.value,a);case 56:return this._handler56(n.value,a);case 57:return this._handler57(n.value,a);case 58:return this._handler58(n.value,a);case 59:return this._handler59(n.value,a);case 60:return this._handler60(n.value,a);case 61:return this._handler61(n.value,a);case 62:return this._handler62(n.value,a);case 63:return this._handler63(n.value,a);case 64:return this._handler64(n.value,a);case 65:return this._handler65(n.value,a);case 66:return this._handler66(n.value,a);case 67:return this._handler67(n.value,a);default:throw r.HANDLER_NOT_FOUND_BY_ID(n.id)}}},DispatchError:r,ERRORS:n};
1const{c:e,b4a:t,assert:a,DispatchError:r,ERRORS:n}=require("hyperdispatch/runtime"),{version:i,getEncoding:s,setVersion:d}=require("./messages.js"),l=i;function h(t,{version:a=l}={}){const n={buffer:t,start:0,end:t.length},i=e.uint.decode(n),s=function(e){switch(e){case 2:return c;case 3:return u;case 4:return o;case 5:return k;case 6:return v;case 7:return p;case 8:return _;case 9:return m;case 10:return g;case 11:return b;case 12:return f;case 13:return M;case 14:return y;case 15:return q;case 16:return j;case 17:return x;case 18:return w;case 19:return E;case 20:return N;case 21:return O;case 22:return R;case 23:return D;case 24:return T;case 25:return U;case 26:return A;case 27:return B;case 28:return F;case 29:return I;case 30:return S;case 31:return Y;case 32:return H;case 33:return L;case 34:return V;case 35:return X;case 36:return z;case 37:return C;case 38:return G;case 39:return J;case 40:return K;case 41:return P;case 42:return Q;case 43:return W;case 44:return Z;case 45:return $;case 46:return ee;case 47:return te;case 48:return ae;case 49:return re;case 50:return ne;case 51:return ie;case 52:return se;case 53:return de;case 54:return le;case 55:return he;case 56:return ce;case 57:return ue;case 58:return oe;case 59:return ke;case 60:return ve;case 61:return pe;case 62:return _e;case 63:return me;case 64:return ge;case 65:return be;case 66:return fe;case 67:return Me;case 68:return ye;case 69:return qe;case 70:return je;case 71:return xe;default:throw r.HANDLER_NOT_FOUND_BY_ID(e)}}(i);d(a);const h=s.enc.decode(n);return{id:i,name:s.name,value:h}}const c={name:"@keet/genesis",id:2,enc:s("@keet/genesis-operation")},u={name:"@keet/upgrade",id:3,enc:s("@keet/upgrade-operation")},o={name:"@keet/update-system-settings",id:4,enc:s("@keet/update-system-settings-operation")},k={name:"@keet/add-blind-peer",id:5,enc:s("@keet/add-blind-peer-operation")},v={name:"@keet/remove-blind-peer",id:6,enc:s("@keet/remove-blind-peer-operation")},p={name:"@keet/add-device",id:7,enc:s("@keet/add-device-operation")},_={name:"@keet/update-device",id:8,enc:s("@keet/update-device-operation")},m={name:"@keet/start-indexing",id:9,enc:s("@keet/start-indexing-operation")},g={name:"@keet/stop-indexing",id:10,enc:s("@keet/stop-indexing-operation")},b={name:"@keet/accept-join-request",id:11,enc:s("@keet/accept-join-request-operation")},f={name:"@keet/reject-join-request",id:12,enc:s("@keet/reject-join-request-operation")},M={name:"@keet/update-member",id:13,enc:s("@keet/update-member-operation")},y={name:"@keet/change-member-role",id:14,enc:s("@keet/change-member-role-operation")},q={name:"@keet/change-member-status",id:15,enc:s("@keet/change-member-status-operation")},j={name:"@keet/remove-member",id:16,enc:s("@keet/remove-member-operation")},x={name:"@keet/add-invitation",id:17,enc:s("@keet/add-invitation-operation")},w={name:"@keet/remove-invitation",id:18,enc:s("@keet/remove-invitation-operation")},E={name:"@keet/add-chat-message",id:19,enc:s("@keet/add-chat-message-operation")},N={name:"@keet/remove-chat-message",id:20,enc:s("@keet/remove-chat-message-operation")},O={name:"@keet/update-chat-message",id:21,enc:s("@keet/update-chat-message-operation")},R={name:"@keet/pin-chat-message",id:22,enc:s("@keet/pin-chat-message-operation")},D={name:"@keet/add-reaction",id:23,enc:s("@keet/add-reaction-operation")},T={name:"@keet/remove-reaction",id:24,enc:s("@keet/remove-reaction-operation")},U={name:"@keet/update-room-config",id:25,enc:s("@keet/update-room-config-operation")},A={name:"@keet-private-id/run-v3-migration",id:26,enc:s("@keet-private-id/run-v3-migration-operation")},B={name:"@keet-private-id/update-identity",id:27,enc:s("@keet-private-id/update-identity-operation")},F={name:"@keet-private-id/resolve-pending-invitation",id:28,enc:s("@keet-private-id/resolve-pending-invitation-operation")},I={name:"@keet-private-id/add-pending-invitation",id:29,enc:s("@keet-private-id/add-pending-invitation-operation")},S={name:"@keet-private-id/remove-pending-invitation",id:30,enc:s("@keet-private-id/remove-pending-invitation-operation")},Y={name:"@keet-private-id/add-room",id:31,enc:s("@keet-private-id/add-room-operation")},H={name:"@keet-private-id/remove-room",id:32,enc:s("@keet-private-id/remove-room-operation")},L={name:"@keet-private-id/update-room-status",id:33,enc:s("@keet-private-id/update-room-status-operation")},V={name:"@keet-private-id/add-contact",id:34,enc:s("@keet-private-id/add-contact-operation")},X={name:"@keet-private-id/update-contact-status",id:35,enc:s("@keet-private-id/update-contact-status-operation")},z={name:"@keet-private-id/remove-contact",id:36,enc:s("@keet-private-id/remove-contact-operation")},C={name:"@keet-private-id/add-contact-request",id:37,enc:s("@keet-private-id/add-contact-request-operation")},G={name:"@keet-private-id/update-contact-request-status",id:38,enc:s("@keet-private-id/update-contact-request-status-operation")},J={name:"@keet/add-file-preview",id:39,enc:s("@keet/add-file-preview-operation")},K={name:"@keet/remove-device",id:40,enc:s("@keet/remove-device-operation")},P={name:"@keet-private-id/activate-contact-room",id:41,enc:s("@keet-private-id/activate-contact-room-operation")},Q={name:"@keet/test-increment",id:42,enc:s("@keet/test-increment-operation")},W={name:"@keet/migrate-abi",id:43,enc:s("@keet/migrate-abi-operation")},Z={name:"@keet-private-id/add-unreads-key",id:44,enc:s("@keet-private-id/add-unreads-key-operation")},$={name:"@keet-private-id/remove-unreads-key",id:45,enc:s("@keet-private-id/remove-unreads-key-operation")},ee={name:"@keet/add-chat-label",id:46,enc:s("@keet/add-chat-label-operation")},te={name:"@keet/remove-chat-label",id:47,enc:s("@keet/remove-chat-label-operation")},ae={name:"@keet/update-read-length",id:48,enc:s("@keet/update-read-length-operation")},re={name:"@keet-private-id/update-settings",id:49,enc:s("@keet-private-id/update-settings-operation")},ne={name:"@keet/add-member-label",id:50,enc:s("@keet/add-member-label-operation")},ie={name:"@keet/move-indexer",id:51,enc:s("@keet/move-indexer-operation")},se={name:"@keet/start-call",id:52,enc:s("@keet/start-call")},de={name:"@keet/join-call",id:53,enc:s("@keet/join-call")},le={name:"@keet/leave-call",id:54,enc:s("@keet/leave-call")},he={name:"@keet/end-call",id:55,enc:s("@keet/end-call")},ce={name:"@keet/add-call-stream",id:56,enc:s("@keet/add-call-stream")},ue={name:"@keet/remove-call-stream",id:57,enc:s("@keet/remove-call-stream")},oe={name:"@keet/test-crash",id:58,enc:s("@keet/test-crash-operation")},ke={name:"@keet/test-dispatch-error",id:59,enc:s("@keet/test-dispatch-error-operation")},ve={name:"@keet-private-id/shorten-device-attestation",id:60,enc:s("@keet-private-id/shorten-device-attestation-operation")},pe={name:"@keet/call-device-heartbeat",id:61,enc:s("@keet/call-device-heartbeat")},_e={name:"@keet/remove-call-device",id:62,enc:s("@keet/remove-call-device")},me={name:"@keet/start-call-recording",id:63,enc:s("@keet/start-call-recording")},ge={name:"@keet/stop-call-recording",id:64,enc:s("@keet/stop-call-recording")},be={name:"@keet/update-typing-indicator",id:65,enc:s("@keet/update-typing-indicator-operation")},fe={name:"@keet/dismiss-chat-reports",id:66,enc:s("@keet/dismiss-chat-reports-operation")},Me={name:"@keet-private-id/update-contact-alias",id:67,enc:s("@keet-private-id/update-contact-alias-operation")},ye={name:"@keet/update-call-stream",id:68,enc:s("@keet/update-call-stream")},qe={name:"@keet-private-id/add-room-v2",id:69,enc:s("@keet-private-id/add-room-operation-v2")},je={name:"@keet/autobee-migration",id:70,enc:s("@keet/autobee-migration-operation")},xe={name:"@keet-private-id/resolve-pending-invitation-v2",id:71,enc:s("@keet-private-id/resolve-pending-invitation-operation-v2")};module.exports={version:i,encode:function(a,n,{version:i=l}={}){const s={buffer:null,start:0,end:0},h=function(e){switch(e){case"@keet/genesis":return c;case"@keet/upgrade":return u;case"@keet/update-system-settings":return o;case"@keet/add-blind-peer":return k;case"@keet/remove-blind-peer":return v;case"@keet/add-device":return p;case"@keet/update-device":return _;case"@keet/start-indexing":return m;case"@keet/stop-indexing":return g;case"@keet/accept-join-request":return b;case"@keet/reject-join-request":return f;case"@keet/update-member":return M;case"@keet/change-member-role":return y;case"@keet/change-member-status":return q;case"@keet/remove-member":return j;case"@keet/add-invitation":return x;case"@keet/remove-invitation":return w;case"@keet/add-chat-message":return E;case"@keet/remove-chat-message":return N;case"@keet/update-chat-message":return O;case"@keet/pin-chat-message":return R;case"@keet/add-reaction":return D;case"@keet/remove-reaction":return T;case"@keet/update-room-config":return U;case"@keet-private-id/run-v3-migration":return A;case"@keet-private-id/update-identity":return B;case"@keet-private-id/resolve-pending-invitation":return F;case"@keet-private-id/add-pending-invitation":return I;case"@keet-private-id/remove-pending-invitation":return S;case"@keet-private-id/add-room":return Y;case"@keet-private-id/remove-room":return H;case"@keet-private-id/update-room-status":return L;case"@keet-private-id/add-contact":return V;case"@keet-private-id/update-contact-status":return X;case"@keet-private-id/remove-contact":return z;case"@keet-private-id/add-contact-request":return C;case"@keet-private-id/update-contact-request-status":return G;case"@keet/add-file-preview":return J;case"@keet/remove-device":return K;case"@keet-private-id/activate-contact-room":return P;case"@keet/test-increment":return Q;case"@keet/migrate-abi":return W;case"@keet-private-id/add-unreads-key":return Z;case"@keet-private-id/remove-unreads-key":return $;case"@keet/add-chat-label":return ee;case"@keet/remove-chat-label":return te;case"@keet/update-read-length":return ae;case"@keet-private-id/update-settings":return re;case"@keet/add-member-label":return ne;case"@keet/move-indexer":return ie;case"@keet/start-call":return se;case"@keet/join-call":return de;case"@keet/leave-call":return le;case"@keet/end-call":return he;case"@keet/add-call-stream":return ce;case"@keet/remove-call-stream":return ue;case"@keet/test-crash":return oe;case"@keet/test-dispatch-error":return ke;case"@keet-private-id/shorten-device-attestation":return ve;case"@keet/call-device-heartbeat":return pe;case"@keet/remove-call-device":return _e;case"@keet/start-call-recording":return me;case"@keet/stop-call-recording":return ge;case"@keet/update-typing-indicator":return be;case"@keet/dismiss-chat-reports":return fe;case"@keet-private-id/update-contact-alias":return Me;case"@keet/update-call-stream":return ye;case"@keet-private-id/add-room-v2":return qe;case"@keet/autobee-migration":return je;case"@keet-private-id/resolve-pending-invitation-v2":return xe;default:throw r.ROUTE_NOT_FOUND_BY_NAME(e)}}(a);return d(i),e.uint.preencode(s,h.id),h.enc.preencode(s,n),s.buffer=t.allocUnsafe(s.end),e.uint.encode(s,h.id),h.enc.encode(s,n),s.buffer},decode:h,Router:class{constructor(){this._handler2=null,this._handler3=null,this._handler4=null,this._handler5=null,this._handler6=null,this._handler7=null,this._handler8=null,this._handler9=null,this._handler10=null,this._handler11=null,this._handler12=null,this._handler13=null,this._handler14=null,this._handler15=null,this._handler16=null,this._handler17=null,this._handler18=null,this._handler19=null,this._handler20=null,this._handler21=null,this._handler22=null,this._handler23=null,this._handler24=null,this._handler25=null,this._handler26=null,this._handler27=null,this._handler28=null,this._handler29=null,this._handler30=null,this._handler31=null,this._handler32=null,this._handler33=null,this._handler34=null,this._handler35=null,this._handler36=null,this._handler37=null,this._handler38=null,this._handler39=null,this._handler40=null,this._handler41=null,this._handler42=null,this._handler43=null,this._handler44=null,this._handler45=null,this._handler46=null,this._handler47=null,this._handler48=null,this._handler49=null,this._handler50=null,this._handler51=null,this._handler52=null,this._handler53=null,this._handler54=null,this._handler55=null,this._handler56=null,this._handler57=null,this._handler58=null,this._handler59=null,this._handler60=null,this._handler61=null,this._handler62=null,this._handler63=null,this._handler64=null,this._handler65=null,this._handler66=null,this._handler67=null,this._handler68=null,this._handler69=null,this._handler70=null,this._handler71=null,this._missing=70}add(e,t){switch(e){case"@keet/genesis":this._handler2=t;break;case"@keet/upgrade":this._handler3=t;break;case"@keet/update-system-settings":this._handler4=t;break;case"@keet/add-blind-peer":this._handler5=t;break;case"@keet/remove-blind-peer":this._handler6=t;break;case"@keet/add-device":this._handler7=t;break;case"@keet/update-device":this._handler8=t;break;case"@keet/start-indexing":this._handler9=t;break;case"@keet/stop-indexing":this._handler10=t;break;case"@keet/accept-join-request":this._handler11=t;break;case"@keet/reject-join-request":this._handler12=t;break;case"@keet/update-member":this._handler13=t;break;case"@keet/change-member-role":this._handler14=t;break;case"@keet/change-member-status":this._handler15=t;break;case"@keet/remove-member":this._handler16=t;break;case"@keet/add-invitation":this._handler17=t;break;case"@keet/remove-invitation":this._handler18=t;break;case"@keet/add-chat-message":this._handler19=t;break;case"@keet/remove-chat-message":this._handler20=t;break;case"@keet/update-chat-message":this._handler21=t;break;case"@keet/pin-chat-message":this._handler22=t;break;case"@keet/add-reaction":this._handler23=t;break;case"@keet/remove-reaction":this._handler24=t;break;case"@keet/update-room-config":this._handler25=t;break;case"@keet-private-id/run-v3-migration":this._handler26=t;break;case"@keet-private-id/update-identity":this._handler27=t;break;case"@keet-private-id/resolve-pending-invitation":this._handler28=t;break;case"@keet-private-id/add-pending-invitation":this._handler29=t;break;case"@keet-private-id/remove-pending-invitation":this._handler30=t;break;case"@keet-private-id/add-room":this._handler31=t;break;case"@keet-private-id/remove-room":this._handler32=t;break;case"@keet-private-id/update-room-status":this._handler33=t;break;case"@keet-private-id/add-contact":this._handler34=t;break;case"@keet-private-id/update-contact-status":this._handler35=t;break;case"@keet-private-id/remove-contact":this._handler36=t;break;case"@keet-private-id/add-contact-request":this._handler37=t;break;case"@keet-private-id/update-contact-request-status":this._handler38=t;break;case"@keet/add-file-preview":this._handler39=t;break;case"@keet/remove-device":this._handler40=t;break;case"@keet-private-id/activate-contact-room":this._handler41=t;break;case"@keet/test-increment":this._handler42=t;break;case"@keet/migrate-abi":this._handler43=t;break;case"@keet-private-id/add-unreads-key":this._handler44=t;break;case"@keet-private-id/remove-unreads-key":this._handler45=t;break;case"@keet/add-chat-label":this._handler46=t;break;case"@keet/remove-chat-label":this._handler47=t;break;case"@keet/update-read-length":this._handler48=t;break;case"@keet-private-id/update-settings":this._handler49=t;break;case"@keet/add-member-label":this._handler50=t;break;case"@keet/move-indexer":this._handler51=t;break;case"@keet/start-call":this._handler52=t;break;case"@keet/join-call":this._handler53=t;break;case"@keet/leave-call":this._handler54=t;break;case"@keet/end-call":this._handler55=t;break;case"@keet/add-call-stream":this._handler56=t;break;case"@keet/remove-call-stream":this._handler57=t;break;case"@keet/test-crash":this._handler58=t;break;case"@keet/test-dispatch-error":this._handler59=t;break;case"@keet-private-id/shorten-device-attestation":this._handler60=t;break;case"@keet/call-device-heartbeat":this._handler61=t;break;case"@keet/remove-call-device":this._handler62=t;break;case"@keet/start-call-recording":this._handler63=t;break;case"@keet/stop-call-recording":this._handler64=t;break;case"@keet/update-typing-indicator":this._handler65=t;break;case"@keet/dismiss-chat-reports":this._handler66=t;break;case"@keet-private-id/update-contact-alias":this._handler67=t;break;case"@keet/update-call-stream":this._handler68=t;break;case"@keet-private-id/add-room-v2":this._handler69=t;break;case"@keet/autobee-migration":this._handler70=t;break;case"@keet-private-id/resolve-pending-invitation-v2":this._handler71=t;break;default:throw r.NONEXISTENT_ROUTE(e)}this._missing--}_checkAll(){a(null!==this._handler2,'Missing handler for "@keet/genesis"'),a(null!==this._handler3,'Missing handler for "@keet/upgrade"'),a(null!==this._handler4,'Missing handler for "@keet/update-system-settings"'),a(null!==this._handler5,'Missing handler for "@keet/add-blind-peer"'),a(null!==this._handler6,'Missing handler for "@keet/remove-blind-peer"'),a(null!==this._handler7,'Missing handler for "@keet/add-device"'),a(null!==this._handler8,'Missing handler for "@keet/update-device"'),a(null!==this._handler9,'Missing handler for "@keet/start-indexing"'),a(null!==this._handler10,'Missing handler for "@keet/stop-indexing"'),a(null!==this._handler11,'Missing handler for "@keet/accept-join-request"'),a(null!==this._handler12,'Missing handler for "@keet/reject-join-request"'),a(null!==this._handler13,'Missing handler for "@keet/update-member"'),a(null!==this._handler14,'Missing handler for "@keet/change-member-role"'),a(null!==this._handler15,'Missing handler for "@keet/change-member-status"'),a(null!==this._handler16,'Missing handler for "@keet/remove-member"'),a(null!==this._handler17,'Missing handler for "@keet/add-invitation"'),a(null!==this._handler18,'Missing handler for "@keet/remove-invitation"'),a(null!==this._handler19,'Missing handler for "@keet/add-chat-message"'),a(null!==this._handler20,'Missing handler for "@keet/remove-chat-message"'),a(null!==this._handler21,'Missing handler for "@keet/update-chat-message"'),a(null!==this._handler22,'Missing handler for "@keet/pin-chat-message"'),a(null!==this._handler23,'Missing handler for "@keet/add-reaction"'),a(null!==this._handler24,'Missing handler for "@keet/remove-reaction"'),a(null!==this._handler25,'Missing handler for "@keet/update-room-config"'),a(null!==this._handler26,'Missing handler for "@keet-private-id/run-v3-migration"'),a(null!==this._handler27,'Missing handler for "@keet-private-id/update-identity"'),a(null!==this._handler28,'Missing handler for "@keet-private-id/resolve-pending-invitation"'),a(null!==this._handler29,'Missing handler for "@keet-private-id/add-pending-invitation"'),a(null!==this._handler30,'Missing handler for "@keet-private-id/remove-pending-invitation"'),a(null!==this._handler31,'Missing handler for "@keet-private-id/add-room"'),a(null!==this._handler32,'Missing handler for "@keet-private-id/remove-room"'),a(null!==this._handler33,'Missing handler for "@keet-private-id/update-room-status"'),a(null!==this._handler34,'Missing handler for "@keet-private-id/add-contact"'),a(null!==this._handler35,'Missing handler for "@keet-private-id/update-contact-status"'),a(null!==this._handler36,'Missing handler for "@keet-private-id/remove-contact"'),a(null!==this._handler37,'Missing handler for "@keet-private-id/add-contact-request"'),a(null!==this._handler38,'Missing handler for "@keet-private-id/update-contact-request-status"'),a(null!==this._handler39,'Missing handler for "@keet/add-file-preview"'),a(null!==this._handler40,'Missing handler for "@keet/remove-device"'),a(null!==this._handler41,'Missing handler for "@keet-private-id/activate-contact-room"'),a(null!==this._handler42,'Missing handler for "@keet/test-increment"'),a(null!==this._handler43,'Missing handler for "@keet/migrate-abi"'),a(null!==this._handler44,'Missing handler for "@keet-private-id/add-unreads-key"'),a(null!==this._handler45,'Missing handler for "@keet-private-id/remove-unreads-key"'),a(null!==this._handler46,'Missing handler for "@keet/add-chat-label"'),a(null!==this._handler47,'Missing handler for "@keet/remove-chat-label"'),a(null!==this._handler48,'Missing handler for "@keet/update-read-length"'),a(null!==this._handler49,'Missing handler for "@keet-private-id/update-settings"'),a(null!==this._handler50,'Missing handler for "@keet/add-member-label"'),a(null!==this._handler51,'Missing handler for "@keet/move-indexer"'),a(null!==this._handler52,'Missing handler for "@keet/start-call"'),a(null!==this._handler53,'Missing handler for "@keet/join-call"'),a(null!==this._handler54,'Missing handler for "@keet/leave-call"'),a(null!==this._handler55,'Missing handler for "@keet/end-call"'),a(null!==this._handler56,'Missing handler for "@keet/add-call-stream"'),a(null!==this._handler57,'Missing handler for "@keet/remove-call-stream"'),a(null!==this._handler58,'Missing handler for "@keet/test-crash"'),a(null!==this._handler59,'Missing handler for "@keet/test-dispatch-error"'),a(null!==this._handler60,'Missing handler for "@keet-private-id/shorten-device-attestation"'),a(null!==this._handler61,'Missing handler for "@keet/call-device-heartbeat"'),a(null!==this._handler62,'Missing handler for "@keet/remove-call-device"'),a(null!==this._handler63,'Missing handler for "@keet/start-call-recording"'),a(null!==this._handler64,'Missing handler for "@keet/stop-call-recording"'),a(null!==this._handler65,'Missing handler for "@keet/update-typing-indicator"'),a(null!==this._handler66,'Missing handler for "@keet/dismiss-chat-reports"'),a(null!==this._handler67,'Missing handler for "@keet-private-id/update-contact-alias"'),a(null!==this._handler68,'Missing handler for "@keet/update-call-stream"'),a(null!==this._handler69,'Missing handler for "@keet-private-id/add-room-v2"'),a(null!==this._handler70,'Missing handler for "@keet/autobee-migration"'),a(null!==this._handler71,'Missing handler for "@keet-private-id/resolve-pending-invitation-v2"')}async dispatch(e,a){this._missing>0&&this._checkAll(),d(l);const n=t.isBuffer(e)?h(e):e;switch(n.id){case 2:return this._handler2(n.value,a);case 3:return this._handler3(n.value,a);case 4:return this._handler4(n.value,a);case 5:return this._handler5(n.value,a);case 6:return this._handler6(n.value,a);case 7:return this._handler7(n.value,a);case 8:return this._handler8(n.value,a);case 9:return this._handler9(n.value,a);case 10:return this._handler10(n.value,a);case 11:return this._handler11(n.value,a);case 12:return this._handler12(n.value,a);case 13:return this._handler13(n.value,a);case 14:return this._handler14(n.value,a);case 15:return this._handler15(n.value,a);case 16:return this._handler16(n.value,a);case 17:return this._handler17(n.value,a);case 18:return this._handler18(n.value,a);case 19:return this._handler19(n.value,a);case 20:return this._handler20(n.value,a);case 21:return this._handler21(n.value,a);case 22:return this._handler22(n.value,a);case 23:return this._handler23(n.value,a);case 24:return this._handler24(n.value,a);case 25:return this._handler25(n.value,a);case 26:return this._handler26(n.value,a);case 27:return this._handler27(n.value,a);case 28:return this._handler28(n.value,a);case 29:return this._handler29(n.value,a);case 30:return this._handler30(n.value,a);case 31:return this._handler31(n.value,a);case 32:return this._handler32(n.value,a);case 33:return this._handler33(n.value,a);case 34:return this._handler34(n.value,a);case 35:return this._handler35(n.value,a);case 36:return this._handler36(n.value,a);case 37:return this._handler37(n.value,a);case 38:return this._handler38(n.value,a);case 39:return this._handler39(n.value,a);case 40:return this._handler40(n.value,a);case 41:return this._handler41(n.value,a);case 42:return this._handler42(n.value,a);case 43:return this._handler43(n.value,a);case 44:return this._handler44(n.value,a);case 45:return this._handler45(n.value,a);case 46:return this._handler46(n.value,a);case 47:return this._handler47(n.value,a);case 48:return this._handler48(n.value,a);case 49:return this._handler49(n.value,a);case 50:return this._handler50(n.value,a);case 51:return this._handler51(n.value,a);case 52:return this._handler52(n.value,a);case 53:return this._handler53(n.value,a);case 54:return this._handler54(n.value,a);case 55:return this._handler55(n.value,a);case 56:return this._handler56(n.value,a);case 57:return this._handler57(n.value,a);case 58:return this._handler58(n.value,a);case 59:return this._handler59(n.value,a);case 60:return this._handler60(n.value,a);case 61:return this._handler61(n.value,a);case 62:return this._handler62(n.value,a);case 63:return this._handler63(n.value,a);case 64:return this._handler64(n.value,a);case 65:return this._handler65(n.value,a);case 66:return this._handler66(n.value,a);case 67:return this._handler67(n.value,a);case 68:return this._handler68(n.value,a);case 69:return this._handler69(n.value,a);case 70:return this._handler70(n.value,a);case 71:return this._handler71(n.value,a);default:throw r.HANDLER_NOT_FOUND_BY_ID(n.id)}}},DispatchError:r,ERRORS:n};
@holepunchto/keet-core/schema/spec/contract/hyperdispatch/messages.js +1 -1
……@@ -1 +1 @@
1const{c:e}=require("hyperschema/runtime");let d=24;const o={preencode(d,o){e.fixed32.preencode(d,o.key),e.uint.preencode(d,o.length)},encode(d,o){e.fixed32.encode(d,o.key),e.uint.encode(d,o.length)},decode:d=>({key:e.fixed32.decode(d),length:e.uint.decode(d)})},n={preencode(d,o){e.fixed32.preencode(d,o.key),e.uint.preencode(d,o.seq)},encode(d,o){e.fixed32.encode(d,o.key),e.uint.encode(d,o.seq)},decode:d=>({key:e.fixed32.decode(d),seq:e.uint.decode(d)})},c={preencode(d,o){e.fixed32.preencode(d,o.publicKey),e.fixed32.preencode(d,o.secretKey)},encode(d,o){e.fixed32.encode(d,o.publicKey),e.fixed32.encode(d,o.secretKey)},decode:d=>({publicKey:e.fixed32.decode(d),secretKey:e.fixed32.decode(d)})},r={preencode(d,o){e.fixed32.preencode(d,o.publicKey),e.fixed64.preencode(d,o.secretKey)},encode(d,o){e.fixed32.encode(d,o.publicKey),e.fixed64.encode(d,o.secretKey)},decode:d=>({publicKey:e.fixed32.decode(d),secretKey:e.fixed64.decode(d)})},t={preencode(d,o){e.fixed32.preencode(d,o.key),d.end++,o.encryptionKey&&e.buffer.preencode(d,o.encryptionKey),o.fastForwardTo&&e.fixed32.preencode(d,o.fastForwardTo)},encode(d,o){const n=(o.encryptionKey?1:0)|(o.fastForwardTo?2:0);e.fixed32.encode(d,o.key),e.uint.encode(d,n),o.encryptionKey&&e.buffer.encode(d,o.encryptionKey),o.fastForwardTo&&e.fixed32.encode(d,o.fastForwardTo)},decode(d){const o=e.fixed32.decode(d),n=e.uint.decode(d);return{key:o,encryptionKey:1&n?e.buffer.decode(d):null,fastForwardTo:2&n?e.fixed32.decode(d):null}}},i={preencode(d,o){e.uint.preencode(d,o.timestamp)},encode(d,o){e.uint.encode(d,o.timestamp)},decode:d=>({timestamp:e.uint.decode(d)})},a={preencode(d,o){e.uint.preencode(d,o.blockOffset),e.uint.preencode(d,o.blockLength),e.uint.preencode(d,o.byteOffset),e.uint.preencode(d,o.byteLength)},encode(d,o){e.uint.encode(d,o.blockOffset),e.uint.encode(d,o.blockLength),e.uint.encode(d,o.byteOffset),e.uint.encode(d,o.byteLength)},decode:d=>({blockOffset:e.uint.decode(d),blockLength:e.uint.decode(d),byteOffset:e.uint.decode(d),byteLength:e.uint.decode(d)})},s={preencode(d,o){e.uint.preencode(d,o.width),e.uint.preencode(d,o.height)},encode(d,o){e.uint.encode(d,o.width),e.uint.encode(d,o.height)},decode:d=>({width:e.uint.decode(d),height:e.uint.decode(d)})},p=e.frame(s),u={preencode(d,o){d.end++,o.name&&e.string.preencode(d,o.name),o.mimetype&&e.string.preencode(d,o.mimetype),o.dimensions&&p.preencode(d,o.dimensions),o.userdata&&e.buffer.preencode(d,o.userdata),o.duration&&e.uint.preencode(d,o.duration)},encode(d,o){const n=(o.name?1:0)|(o.mimetype?2:0)|(o.dimensions?4:0)|(o.userdata?8:0)|(o.duration?16:0)|(o.isPreview?32:0);e.uint.encode(d,n),o.name&&e.string.encode(d,o.name),o.mimetype&&e.string.encode(d,o.mimetype),o.dimensions&&p.encode(d,o.dimensions),o.userdata&&e.buffer.encode(d,o.userdata),o.duration&&e.uint.encode(d,o.duration)},decode(d){const o=e.uint.decode(d);return{name:1&o?e.string.decode(d):null,mimetype:2&o?e.string.decode(d):null,dimensions:4&o?p.decode(d):null,userdata:8&o?e.buffer.decode(d):null,duration:16&o?e.uint.decode(d):0,isPreview:!!(32&o)}}},l={preencode(d,o){e.fixed32.preencode(d,o.key),e.string.preencode(d,o.path),e.uint.preencode(d,o.version),e.uint.preencode(d,o.size)},encode(d,o){e.fixed32.encode(d,o.key),e.string.encode(d,o.path),e.uint.encode(d,o.version),e.uint.encode(d,o.size)},decode:d=>({key:e.fixed32.decode(d),path:e.string.decode(d),version:e.uint.decode(d),size:e.uint.decode(d)})},f={preencode(d,o){e.fixed32.preencode(d,o.key),a.preencode(d,o.blob)},encode(d,o){e.fixed32.encode(d,o.key),a.encode(d,o.blob)},decode:d=>({key:e.fixed32.decode(d),blob:a.decode(d)})},m=e.frame(f),y=e.frame(l),x={preencode(d,o){d.end++,o.inlined&&e.buffer.preencode(d,o.inlined),o.blob&&a.preencode(d,o.blob),o.externalBlob&&m.preencode(d,o.externalBlob),o.externalDrive&&y.preencode(d,o.externalDrive)},encode(d,o){const n=(o.inlined?1:0)|(o.blob?2:0)|(o.externalBlob?4:0)|(o.externalDrive?8:0);e.uint.encode(d,n),o.inlined&&e.buffer.encode(d,o.inlined),o.blob&&a.encode(d,o.blob),o.externalBlob&&m.encode(d,o.externalBlob),o.externalDrive&&y.encode(d,o.externalDrive)},decode(d){const o=e.uint.decode(d);return{inlined:1&o?e.buffer.decode(d):null,blob:2&o?a.decode(d):null,externalBlob:4&o?m.decode(d):null,externalDrive:8&o?y.decode(d):null}}},b=e.frame(x),k=e.frame(u),v={preencode(d,o){b.preencode(d,o.pointer),d.end++,o.metadata&&k.preencode(d,o.metadata),o.preview&&it.preencode(d,o.preview),o.hash&&e.fixed32.preencode(d,o.hash)},encode(d,o){const n=(o.metadata?1:0)|(o.preview?2:0)|(o.hash?4:0);b.encode(d,o.pointer),e.uint.encode(d,n),o.metadata&&k.encode(d,o.metadata),o.preview&&it.encode(d,o.preview),o.hash&&e.fixed32.encode(d,o.hash)},decode(d){const o=b.decode(d),n=e.uint.decode(d);return{pointer:o,metadata:1&n?k.decode(d):null,preview:2&n?it.decode(d):null,hash:4&n?e.fixed32.decode(d):null}}},g=e.frame(v),h=g,K=g,w={preencode(e,d){e.end++,d.small&&g.preencode(e,d.small),d.medium&&h.preencode(e,d.medium),d.large&&K.preencode(e,d.large)},encode(d,o){const n=(o.small?1:0)|(o.medium?2:0)|(o.large?4:0);e.uint.encode(d,n),o.small&&g.encode(d,o.small),o.medium&&h.encode(d,o.medium),o.large&&K.encode(d,o.large)},decode(d){const o=e.uint.decode(d);return{small:1&o?g.decode(d):null,medium:2&o?h.decode(d):null,large:4&o?K.decode(d):null}}},T={preencode(e,d){e.end++},encode(d,o){const n=o.isDeleted?1:0;e.uint.encode(d,n)},decode:d=>({isDeleted:!!(1&e.uint.decode(d))})},A=e.frame(T),P=g,R={preencode(o,c){e.uint.preencode(o,c.id),n.preencode(o,c.oplog),A.preencode(o,c.status),P.preencode(o,c.file),o.end++,d>=14&&c.version&&e.uint.preencode(o,c.version)},encode(o,c){const r=d>=14&&c.version?1:0;e.uint.encode(o,c.id),n.encode(o,c.oplog),A.encode(o,c.status),P.encode(o,c.file),e.uint.encode(o,r),d>=14&&c.version&&e.uint.encode(o,c.version)},decode(o){const c=e.uint.decode(o),r=n.decode(o),t=A.decode(o),i=P.decode(o),a=o.start<o.end?e.uint.decode(o):0;return{id:c,oplog:r,status:t,file:i,version:d>=14&&1&a?e.uint.decode(o):0}}},S={preencode(e,d){e.end++},encode(d,o){const n=(o.isActive?1:0)|(o.isIndexing?2:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isActive:!!(1&o),isIndexing:!!(2&o)}}},D={preencode(o,n){const c=(n.isAdmin?1:0)|(n.isModerator?2:0)|(n.isPending?4:0)|(n.isActive?8:0)|(n.isMuted?16:0)|(n.isBanned?32:0)|(n.isShadowBanned?64:0)|(d>=13&&n.isRemoved?128:0);e.uint.preencode(o,c)},encode(o,n){const c=(n.isAdmin?1:0)|(n.isModerator?2:0)|(n.isPending?4:0)|(n.isActive?8:0)|(n.isMuted?16:0)|(n.isBanned?32:0)|(n.isShadowBanned?64:0)|(d>=13&&n.isRemoved?128:0);e.uint.encode(o,c)},decode(o){const n=e.uint.decode(o);return{isAdmin:!!(1&n),isModerator:!!(2&n),isPending:!!(4&n),isActive:!!(8&n),isMuted:!!(16&n),isBanned:!!(32&n),isShadowBanned:!!(64&n),isRemoved:d>=13&&!!(128&n)}}},I={preencode(e,d){e.end++},encode(d,o){const n=(o.isMuted?1:0)|(o.isBanned?2:0)|(o.isShadowBanned?4:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isMuted:!!(1&o),isBanned:!!(2&o),isShadowBanned:!!(4&o)}}},M={preencode(d,o){e.uint.preencode(d,o.version)},encode(d,o){e.uint.encode(d,o.version)},decode:d=>({version:e.uint.decode(d)})},C={preencode(d,o){e.uint.preencode(d,o.total),e.uint.preencode(d,o.active)},encode(d,o){e.uint.encode(d,o.total),e.uint.encode(d,o.active)},decode:d=>({total:e.uint.decode(d),active:e.uint.decode(d)})},L={preencode(d,o){e.uint.preencode(d,o.total),e.uint.preencode(d,o.active),e.uint.preencode(d,o.pending)},encode(d,o){e.uint.encode(d,o.total),e.uint.encode(d,o.active),e.uint.encode(d,o.pending)},decode:d=>({total:e.uint.decode(d),active:e.uint.decode(d),pending:e.uint.decode(d)})},q={preencode(o,n){e.uint.preencode(o,n.clock),e.uint.preencode(o,n.pinned),e.uint.preencode(o,n.threads),e.uint.preencode(o,n.timestamp),o.end++,d>=15&&n.flagsClock&&e.uint.preencode(o,n.flagsClock)},encode(o,n){const c=d>=15&&n.flagsClock?1:0;e.uint.encode(o,n.clock),e.uint.encode(o,n.pinned),e.uint.encode(o,n.threads),e.uint.encode(o,n.timestamp),e.uint.encode(o,c),d>=15&&n.flagsClock&&e.uint.encode(o,n.flagsClock)},decode(o){const n=e.uint.decode(o),c=e.uint.decode(o),r=e.uint.decode(o),t=e.uint.decode(o),i=o.start<o.end?e.uint.decode(o):0;return{clock:n,pinned:c,threads:r,timestamp:t,flagsClock:d>=15&&1&i?e.uint.decode(o):0}}},F={preencode(d,o){e.uint.preencode(d,o.clock)},encode(d,o){e.uint.encode(d,o.clock)},decode:d=>({clock:e.uint.decode(d)})},E=e.frame(C),B=e.frame(L),N=e.frame(q),H=e.frame(F),j={preencode(e,d){E.preencode(e,d.devices),B.preencode(e,d.members),N.preencode(e,d.chat),H.preencode(e,d.files)},encode(e,d){E.encode(e,d.devices),B.encode(e,d.members),N.encode(e,d.chat),H.encode(e,d.files)},decode:e=>({devices:E.decode(e),members:B.decode(e),chat:N.decode(e),files:H.decode(e)})},z={Default:1,Broadcast:2,DirectMessage:3},U={preencode(e,d){e.end++},encode(d,o){if(o>3)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},O={preencode(o,n){const c=(n.roomType?1:0)|(n.isExperimental?2:0)|(n.isJoiningDisabled?4:0)|(n.isAppendingDisabled?8:0)|(n.isCallingDisabled?16:0)|(n.isMembershipEventsDisabled?32:0)|(d>=19&&n.isAttachmentsDisabled?64:0)|(d>=19&&n.isLinksDisabled?128:0)|(d>=20&&n.buildType?256:0)|(d>=23&&n.isRoomInviteHidden?512:0);e.uint.preencode(o,c),n.roomType&&U.preencode(o,n.roomType),d>=20&&n.buildType&&Hr.preencode(o,n.buildType)},encode(o,n){const c=(n.roomType?1:0)|(n.isExperimental?2:0)|(n.isJoiningDisabled?4:0)|(n.isAppendingDisabled?8:0)|(n.isCallingDisabled?16:0)|(n.isMembershipEventsDisabled?32:0)|(d>=19&&n.isAttachmentsDisabled?64:0)|(d>=19&&n.isLinksDisabled?128:0)|(d>=20&&n.buildType?256:0)|(d>=23&&n.isRoomInviteHidden?512:0);e.uint.encode(o,c),n.roomType&&U.encode(o,n.roomType),d>=20&&n.buildType&&Hr.encode(o,n.buildType)},decode(o){const n=e.uint.decode(o);return{roomType:1&n?U.decode(o):0,isExperimental:!!(2&n),isJoiningDisabled:!!(4&n),isAppendingDisabled:!!(8&n),isCallingDisabled:!!(16&n),isMembershipEventsDisabled:!!(32&n),isAttachmentsDisabled:d>=19&&!!(64&n),isLinksDisabled:d>=19&&!!(128&n),buildType:d>=20&&256&n?Hr.decode(o):null,isRoomInviteHidden:d>=23&&!!(512&n)}}},J=e.frame(M),V=e.frame(O),G={preencode(d,o){J.preencode(d,o.abi),V.preencode(d,o.settings),e.uint.preencode(d,o.creationTime)},encode(d,o){J.encode(d,o.abi),V.encode(d,o.settings),e.uint.encode(d,o.creationTime)},decode:d=>({abi:J.decode(d),settings:V.decode(d),creationTime:e.uint.decode(d)})},Q={preencode(d,o){e.fixed32.preencode(d,o.seed)},encode(d,o){e.fixed32.encode(d,o.seed)},decode:d=>({seed:e.fixed32.decode(d)})},W={preencode(d,o){c.preencode(d,o.mailboxKeyPair),r.preencode(d,o.discoveryKeyPair),e.fixed32.preencode(d,o.wakeupTopic),e.fixed32.preencode(d,o.swarmTopic)},encode(d,o){c.encode(d,o.mailboxKeyPair),r.encode(d,o.discoveryKeyPair),e.fixed32.encode(d,o.wakeupTopic),e.fixed32.encode(d,o.swarmTopic)},decode:d=>({mailboxKeyPair:c.decode(d),discoveryKeyPair:r.decode(d),wakeupTopic:e.fixed32.decode(d),swarmTopic:e.fixed32.decode(d)})},X=e.array(e.fixed32),Y={preencode(o,n){o.end++,n.title&&e.string.preencode(o,n.title),n.avatar&&at.preencode(o,n.avatar),n.description&&e.string.preencode(o,n.description),d>=11&&n.supportedLanguages&&st.preencode(o,n.supportedLanguages),d>=13&&n.blindPeers&&X.preencode(o,n.blindPeers)},encode(o,n){const c=(n.title?1:0)|(n.avatar?2:0)|(n.description?4:0)|(d>=11&&n.supportedLanguages?8:0)|(d>=13&&n.blindPeers?16:0);e.uint.encode(o,c),n.title&&e.string.encode(o,n.title),n.avatar&&at.encode(o,n.avatar),n.description&&e.string.encode(o,n.description),d>=11&&n.supportedLanguages&&st.encode(o,n.supportedLanguages),d>=13&&n.blindPeers&&X.encode(o,n.blindPeers)},decode(o){const n=e.uint.decode(o);return{title:1&n?e.string.decode(o):null,avatar:2&n?at.decode(o):null,description:4&n?e.string.decode(o):null,supportedLanguages:d>=11&&8&n?st.decode(o):null,blindPeers:d>=13&&16&n?X.decode(o):null}}},Z={preencode(d,o){e.fixed32.preencode(d,o.key)},encode(d,o){e.fixed32.encode(d,o.key)},decode:d=>({key:e.fixed32.decode(d)})},$=e.frame(i),_=e.frame(Z),ee={preencode(e,d){$.preencode(e,d.header),_.preencode(e,d.peer)},encode(e,d){$.encode(e,d.header),_.encode(e,d.peer)},decode:e=>({header:$.decode(e),peer:_.decode(e)})},de=$,oe={preencode(d,o){de.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){de.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:de.decode(d),key:e.fixed32.decode(d)})},ne={preencode(d,o){e.fixed32.preencode(d,o.memberKey),e.buffer.preencode(d,o.proof)},encode(d,o){e.fixed32.encode(d,o.memberKey),e.buffer.encode(d,o.proof)},decode:d=>({memberKey:e.fixed32.decode(d),proof:e.buffer.decode(d)})},ce={preencode(d,o){e.fixed32.preencode(d,o.id),e.buffer.preencode(d,o.response)},encode(d,o){e.fixed32.encode(d,o.id),e.buffer.encode(d,o.response)},decode:d=>({id:e.fixed32.decode(d),response:e.buffer.decode(d)})},re=e.frame(S),te=e.frame(ce),ie={preencode(d,o){e.fixed32.preencode(d,o.key),e.fixed32.preencode(d,o.memberKey),re.preencode(d,o.status),pt.preencode(d,o.profile),d.end++,o.invitation&&te.preencode(d,o.invitation)},encode(d,o){const n=o.invitation?1:0;e.fixed32.encode(d,o.key),e.fixed32.encode(d,o.memberKey),re.encode(d,o.status),pt.encode(d,o.profile),e.uint.encode(d,n),o.invitation&&te.encode(d,o.invitation)},decode:d=>({key:e.fixed32.decode(d),memberKey:e.fixed32.decode(d),status:re.decode(d),profile:pt.decode(d),invitation:1&e.uint.decode(d)?te.decode(d):null})},ae={preencode(d,o){e.uint.preencode(d,o.timestamp),d.end++,o.mailbox&&e.fixed32.preencode(d,o.mailbox),o.displayName&&e.string.preencode(d,o.displayName),o.avatar&&ut.preencode(d,o.avatar),o.username&&e.string.preencode(d,o.username)},encode(d,o){const n=(o.mailbox?1:0)|(o.displayName?2:0)|(o.avatar?4:0)|(o.username?8:0);e.uint.encode(d,o.timestamp),e.uint.encode(d,n),o.mailbox&&e.fixed32.encode(d,o.mailbox),o.displayName&&e.string.encode(d,o.displayName),o.avatar&&ut.encode(d,o.avatar),o.username&&e.string.encode(d,o.username)},decode(d){const o=e.uint.decode(d),n=e.uint.decode(d);return{timestamp:o,mailbox:1&n?e.fixed32.decode(d):null,displayName:2&n?e.string.decode(d):null,avatar:4&n?ut.decode(d):null,username:8&n?e.string.decode(d):null}}},se={preencode(o,n){o.end++,n.swarmKey&&e.fixed32.preencode(o,n.swarmKey),n.name&&e.string.preencode(o,n.name),d>=20&&n.buildType&&Hr.preencode(o,n.buildType)},encode(o,n){const c=(n.swarmKey?1:0)|(n.name?2:0)|(n.isMobile?4:0)|(d>=20&&n.buildType?8:0);e.uint.encode(o,c),n.swarmKey&&e.fixed32.encode(o,n.swarmKey),n.name&&e.string.encode(o,n.name),d>=20&&n.buildType&&Hr.encode(o,n.buildType)},decode(o){const n=e.uint.decode(o);return{swarmKey:1&n?e.fixed32.decode(o):null,name:2&n?e.string.decode(o):null,isMobile:!!(4&n),buildType:d>=20&&8&n?Hr.decode(o):null}}},pe=e.frame(ae),ue={preencode(e,d){pe.preencode(e,d.profile),ne.preencode(e,d.attestation)},encode(e,d){pe.encode(e,d.profile),ne.encode(e,d.attestation)},decode:e=>({profile:pe.decode(e),attestation:ne.decode(e)})},le={preencode(e,d){lt.preencode(e,d.profile),ne.preencode(e,d.attestation)},encode(e,d){lt.encode(e,d.profile),ne.encode(e,d.attestation)},decode:e=>({profile:lt.decode(e),attestation:ne.decode(e)})},fe={preencode(d,o){e.fixed32.preencode(d,o.id),e.buffer.preencode(d,o.data),e.buffer.preencode(d,o.signature)},encode(d,o){e.fixed32.encode(d,o.id),e.buffer.encode(d,o.data),e.buffer.encode(d,o.signature)},decode:d=>({id:e.fixed32.decode(d),data:e.buffer.decode(d),signature:e.buffer.decode(d)})},me={preencode(d,o){e.fixed32.preencode(d,o.devicePublicKey)},encode(d,o){e.fixed32.encode(d,o.devicePublicKey)},decode:d=>({devicePublicKey:e.fixed32.decode(d)})},ye={preencode(d,o){ne.preencode(d,o.privateProfileIdentity),e.buffer.preencode(d,o.deviceProof)},encode(d,o){ne.encode(d,o.privateProfileIdentity),e.buffer.encode(d,o.deviceProof)},decode:d=>({privateProfileIdentity:ne.decode(d),deviceProof:e.buffer.decode(d)})},xe=e.frame(le),be=e.frame(ue),ke=e.frame(me),ve={preencode(d,o){e.fixed32.preencode(d,o.deviceKey),r.preencode(d,o.keyPair),xe.preencode(d,o.device),be.preencode(d,o.member),d.end++,o.identity&&ke.preencode(d,o.identity)},encode(d,o){const n=o.identity?1:0;e.fixed32.encode(d,o.deviceKey),r.encode(d,o.keyPair),xe.encode(d,o.device),be.encode(d,o.member),e.uint.encode(d,n),o.identity&&ke.encode(d,o.identity)},decode:d=>({deviceKey:e.fixed32.decode(d),keyPair:r.decode(d),device:xe.decode(d),member:be.decode(d),identity:1&e.uint.decode(d)?ke.decode(d):null})},ge=e.frame(ve),he={preencode(d,o){e.fixed32.preencode(d,o.id),ge.preencode(d,o.request),e.buffer.preencode(d,o.signature)},encode(d,o){e.fixed32.encode(d,o.id),ge.encode(d,o.request),e.buffer.encode(d,o.signature)},decode:d=>({id:e.fixed32.decode(d),request:ge.decode(d),signature:e.buffer.decode(d)})},Ke=xe,we=be,Te={preencode(e,d){Ke.preencode(e,d.device),e.end++,d.member&&we.preencode(e,d.member)},encode(d,o){const n=o.member?1:0;Ke.encode(d,o.device),e.uint.encode(d,n),o.member&&we.encode(d,o.member)},decode:d=>({device:Ke.decode(d),member:1&e.uint.decode(d)?we.decode(d):null})},Ae=e.frame(he),Pe=e.frame(Te),Re={preencode(e,d){e.end++,d.withInvitation&&Ae.preencode(e,d.withInvitation),d.withMemberProof&&Pe.preencode(e,d.withMemberProof)},encode(d,o){const n=(o.withInvitation?1:0)|(o.withMemberProof?2:0);e.uint.encode(d,n),o.withInvitation&&Ae.encode(d,o.withInvitation),o.withMemberProof&&Pe.encode(d,o.withMemberProof)},decode(d){const o=e.uint.decode(d);return{withInvitation:1&o?Ae.decode(d):null,withMemberProof:2&o?Pe.decode(d):null}}},Se=e.frame(fe),De=e.frame(ye),Ie={preencode(e,d){Se.preencode(e,d.signedKeys),e.end++,d.identity&&De.preencode(e,d.identity)},encode(d,o){const n=o.identity?1:0;Se.encode(d,o.signedKeys),e.uint.encode(d,n),o.identity&&De.encode(d,o.identity)},decode:d=>({signedKeys:Se.decode(d),identity:1&e.uint.decode(d)?De.decode(d):null})},Me={preencode(o,n){o.end++,n.expiration&&e.uint.preencode(o,n.expiration),d>=20&&n.buildType&&Hr.preencode(o,n.buildType)},encode(o,n){const c=(n.expiration?1:0)|(n.requiresConfirmation?2:0)|(n.canModerate?4:0)|(n.canAdmin?8:0)|(d>=20&&n.buildType?16:0);e.uint.encode(o,c),n.expiration&&e.uint.encode(o,n.expiration),d>=20&&n.buildType&&Hr.encode(o,n.buildType)},decode(o){const n=e.uint.decode(o);return{expiration:1&n?e.uint.decode(o):0,requiresConfirmation:!!(2&n),canModerate:!!(4&n),canAdmin:!!(8&n),buildType:d>=20&&16&n?Hr.decode(o):null}}},Ce=Se,Le=e.frame(Me),qe={preencode(d,n){e.fixed32.preencode(d,n.id),Ce.preencode(d,n.response),Le.preencode(d,n.metadata),d.end++,n.anchor&&o.preencode(d,n.anchor)},encode(d,n){const c=(n.anchor?1:0)|(n.isActive?2:0);e.fixed32.encode(d,n.id),Ce.encode(d,n.response),Le.encode(d,n.metadata),e.uint.encode(d,c),n.anchor&&o.encode(d,n.anchor)},decode(d){const n=e.fixed32.decode(d),c=Ce.decode(d),r=Le.decode(d),t=e.uint.decode(d);return{id:n,response:c,metadata:r,anchor:1&t?o.decode(d):null,isActive:!!(2&t)}}},Fe=$,Ee=e.frame(qe),Be={preencode(e,d){Fe.preencode(e,d.header),Ee.preencode(e,d.invitation)},encode(e,d){Fe.encode(e,d.header),Ee.encode(e,d.invitation)},decode:e=>({header:Fe.decode(e),invitation:Ee.decode(e)})},Ne=$,He={preencode(d,o){Ne.preencode(d,o.header),e.fixed32.preencode(d,o.id)},encode(d,o){Ne.encode(d,o.header),e.fixed32.encode(d,o.id)},decode:d=>({header:Ne.decode(d),id:e.fixed32.decode(d)})},je={preencode(d,n){e.fixed32.preencode(d,n.mailbox),e.fixed32.preencode(d,n.invitationSeed),o.preencode(d,n.anchor)},encode(d,n){e.fixed32.encode(d,n.mailbox),e.fixed32.encode(d,n.invitationSeed),o.encode(d,n.anchor)},decode:d=>({mailbox:e.fixed32.decode(d),invitationSeed:e.fixed32.decode(d),anchor:o.decode(d)})},ze={preencode(d,n){e.fixed32.preencode(d,n.mailbox),e.fixed32.preencode(d,n.invitationSeed),o.preencode(d,n.anchor),e.fixed32.preencode(d,n.identityPublicKey)},encode(d,n){e.fixed32.encode(d,n.mailbox),e.fixed32.encode(d,n.invitationSeed),o.encode(d,n.anchor),e.fixed32.encode(d,n.identityPublicKey)},decode:d=>({mailbox:e.fixed32.decode(d),invitationSeed:e.fixed32.decode(d),anchor:o.decode(d),identityPublicKey:e.fixed32.decode(d)})},Ue={preencode(d,o){e.fixed32.preencode(d,o.mailbox)},encode(d,o){e.fixed32.encode(d,o.mailbox)},decode:d=>({mailbox:e.fixed32.decode(d)})},Oe=e.frame(je),Je=e.frame(ze),Ve=e.frame(Ue),Ge=e.array(e.ipv4Address),Qe={preencode(e,o){e.end++,o.room&&Oe.preencode(e,o.room),o.identity&&Je.preencode(e,o.identity),o.contact&&Ve.preencode(e,o.contact),d>=6&&o.readonly&&ft.preencode(e,o.readonly),d>=11&&o.additionalNodes&&Ge.preencode(e,o.additionalNodes),d>=20&&o.buildType&&Hr.preencode(e,o.buildType)},encode(o,n){const c=(n.room?1:0)|(n.identity?2:0)|(n.contact?4:0)|(d>=6&&n.readonly?8:0)|(d>=11&&n.additionalNodes?16:0)|(d>=20&&n.buildType?32:0);e.uint.encode(o,c),n.room&&Oe.encode(o,n.room),n.identity&&Je.encode(o,n.identity),n.contact&&Ve.encode(o,n.contact),d>=6&&n.readonly&&ft.encode(o,n.readonly),d>=11&&n.additionalNodes&&Ge.encode(o,n.additionalNodes),d>=20&&n.buildType&&Hr.encode(o,n.buildType)},decode(o){const n=e.uint.decode(o);return{room:1&n?Oe.decode(o):null,identity:2&n?Je.decode(o):null,contact:4&n?Ve.decode(o):null,readonly:d>=6&&8&n?ft.decode(o):null,additionalNodes:d>=11&&16&n?Ge.decode(o):null,buildType:d>=20&&32&n?Hr.decode(o):null}}},We=$,Xe={preencode(d,o){We.preencode(d,o.header),e.buffer.preencode(d,o.blindRequest)},encode(d,o){We.encode(d,o.header),e.buffer.encode(d,o.blindRequest)},decode:d=>({header:We.decode(d),blindRequest:e.buffer.decode(d)})},Ye=$,Ze={preencode(o,n){Ye.preencode(o,n.header),o.end++,n.profile&&mt.preencode(o,n.profile),d>=24&&n.key&&e.fixed32.preencode(o,n.key)},encode(o,n){const c=(n.profile?1:0)|(d>=24&&n.key?2:0);Ye.encode(o,n.header),e.uint.encode(o,c),n.profile&&mt.encode(o,n.profile),d>=24&&n.key&&e.fixed32.encode(o,n.key)},decode(o){const n=Ye.decode(o),c=e.uint.decode(o);return{header:n,profile:1&c?mt.decode(o):null,key:d>=24&&2&c?e.fixed32.decode(o):null}}},$e={preencode(e,d){},encode(e,d){},decode:e=>({})},_e=$e,ed=ge,dd={preencode(d,o){e.fixed32.preencode(d,o.deviceKey),e.fixed32.preencode(d,o.id),ed.preencode(d,o.request)},encode(d,o){e.fixed32.encode(d,o.deviceKey),e.fixed32.encode(d,o.id),ed.encode(d,o.request)},decode:d=>({deviceKey:e.fixed32.decode(d),id:e.fixed32.decode(d),request:ed.decode(d)})},od=$,nd=De,cd={preencode(d,o){od.preencode(d,o.header),e.fixed32.preencode(d,o.deviceKey),d.end++,o.identity&&nd.preencode(d,o.identity)},encode(d,o){const n=o.identity?1:0;od.encode(d,o.header),e.fixed32.encode(d,o.deviceKey),e.uint.encode(d,n),o.identity&&nd.encode(d,o.identity)},decode:d=>({header:od.decode(d),deviceKey:e.fixed32.decode(d),identity:1&e.uint.decode(d)?nd.decode(d):null})},rd=$,td={preencode(d,o){rd.preencode(d,o.header),e.fixed32.preencode(d,o.deviceKey)},encode(d,o){rd.encode(d,o.header),e.fixed32.encode(d,o.deviceKey)},decode:d=>({header:rd.decode(d),deviceKey:e.fixed32.decode(d)})},id=e.frame(D),ad=pe,sd={preencode(d,o){e.fixed32.preencode(d,o.key),id.preencode(d,o.status),ad.preencode(d,o.profile)},encode(d,o){e.fixed32.encode(d,o.key),id.encode(d,o.status),ad.encode(d,o.profile)},decode:d=>({key:e.fixed32.decode(d),status:id.decode(d),profile:ad.decode(d)})},pd=id,ud=pe,ld={preencode(d,o){e.fixed32.preencode(d,o.key),pd.preencode(d,o.status),ud.preencode(d,o.profile),d.end++,o.proofs&&yt.preencode(d,o.proofs)},encode(d,o){const n=o.proofs?1:0;e.fixed32.encode(d,o.key),pd.encode(d,o.status),ud.encode(d,o.profile),e.uint.encode(d,n),o.proofs&&yt.encode(d,o.proofs)},decode:d=>({key:e.fixed32.decode(d),status:pd.decode(d),profile:ud.decode(d),proofs:1&e.uint.decode(d)?yt.decode(d):null})},fd={preencode(d,o){e.fixed32.preencode(d,o.key),d.end++,o.profileAttestation&&e.buffer.preencode(d,o.profileAttestation),o.latestReceipt&&e.buffer.preencode(d,o.latestReceipt)},encode(d,o){const n=(o.profileAttestation?1:0)|(o.latestReceipt?2:0);e.fixed32.encode(d,o.key),e.uint.encode(d,n),o.profileAttestation&&e.buffer.encode(d,o.profileAttestation),o.latestReceipt&&e.buffer.encode(d,o.latestReceipt)},decode(d){const o=e.fixed32.decode(d),n=e.uint.decode(d);return{key:o,profileAttestation:1&n?e.buffer.decode(d):null,latestReceipt:2&n?e.buffer.decode(d):null}}},md=$,yd=be,xd={preencode(e,d){md.preencode(e,d.header),yd.preencode(e,d.member)},encode(e,d){md.encode(e,d.header),yd.encode(e,d.member)},decode:e=>({header:md.decode(e),member:yd.decode(e)})},bd=$,kd=e.frame(I),vd={preencode(d,o){bd.preencode(d,o.header),e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.key),kd.preencode(d,o.status)},encode(d,o){bd.encode(d,o.header),e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.key),kd.encode(d,o.status)},decode:d=>({header:bd.decode(d),memberKey:e.fixed32.decode(d),key:e.uint.decode(d),status:kd.decode(d)})},gd=$,hd={preencode(d,o){gd.preencode(d,o.header),e.fixed32.preencode(d,o.key),d.end++},encode(d,o){const n=(o.isModerator?1:0)|(o.isAdmin?2:0);gd.encode(d,o.header),e.fixed32.encode(d,o.key),e.uint.encode(d,n)},decode(d){const o=gd.decode(d),n=e.fixed32.decode(d),c=e.uint.decode(d);return{header:o,key:n,isModerator:!!(1&c),isAdmin:!!(2&c)}}},Kd=$,wd={preencode(d,o){Kd.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){Kd.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:Kd.decode(d),key:e.fixed32.decode(d)})},Td={preencode(d,o){e.fixed32.preencode(d,o.key),e.uint.preencode(d,o.mentions)},encode(d,o){e.fixed32.encode(d,o.key),e.uint.encode(d,o.mentions)},decode:d=>({key:e.fixed32.decode(d),mentions:e.uint.decode(d)})},Ad={preencode(d,o){d.end++,o.memberKey&&e.fixed32.preencode(d,o.memberKey)},encode(d,o){const n=o.memberKey?1:0;e.uint.encode(d,n),o.memberKey&&e.fixed32.encode(d,o.memberKey)},decode:d=>({memberKey:1&e.uint.decode(d)?e.fixed32.decode(d):null})},Pd=Ad,Rd={preencode(d,o){d.end++,o.from&&e.string.preencode(d,o.from),o.to&&e.string.preencode(d,o.to)},encode(d,o){const n=(o.from?1:0)|(o.to?2:0);e.uint.encode(d,n),o.from&&e.string.encode(d,o.from),o.to&&e.string.encode(d,o.to)},decode(d){const o=e.uint.decode(d);return{from:1&o?e.string.decode(d):null,to:2&o?e.string.decode(d):null}}},Sd=e.frame(Ad),Dd=e.frame(Pd),Id=e.frame(Rd),Md={preencode(o,n){const c=(n.memberJoined?1:0)|(n.memberLeft?2:0)|(n.titleChanged?4:0)|(n.callStarted?8:0)|(n.callHangup?16:0)|(n.callMissed?32:0)|(d>=3&&n.roomAvatarChanged?64:0)|(d>=3&&n.invitationCreated?128:0)|(d>=3&&n.memberRemoved?256:0)|(d>=18&&n.locationShared?512:0);e.uint.preencode(o,c),n.memberJoined&&Sd.preencode(o,n.memberJoined),n.memberLeft&&Dd.preencode(o,n.memberLeft),n.titleChanged&&Id.preencode(o,n.titleChanged),d>=3&&n.memberRemoved&&xt.preencode(o,n.memberRemoved),d>=18&&n.locationShared&&bt.preencode(o,n.locationShared)},encode(o,n){const c=(n.memberJoined?1:0)|(n.memberLeft?2:0)|(n.titleChanged?4:0)|(n.callStarted?8:0)|(n.callHangup?16:0)|(n.callMissed?32:0)|(d>=3&&n.roomAvatarChanged?64:0)|(d>=3&&n.invitationCreated?128:0)|(d>=3&&n.memberRemoved?256:0)|(d>=18&&n.locationShared?512:0);e.uint.encode(o,c),n.memberJoined&&Sd.encode(o,n.memberJoined),n.memberLeft&&Dd.encode(o,n.memberLeft),n.titleChanged&&Id.encode(o,n.titleChanged),d>=3&&n.memberRemoved&&xt.encode(o,n.memberRemoved),d>=18&&n.locationShared&&bt.encode(o,n.locationShared)},decode(o){const n=e.uint.decode(o);return{memberJoined:1&n?Sd.decode(o):null,memberLeft:2&n?Dd.decode(o):null,titleChanged:4&n?Id.decode(o):null,callStarted:!!(8&n),callHangup:!!(16&n),callMissed:!!(32&n),roomAvatarChanged:d>=3&&!!(64&n),invitationCreated:d>=3&&!!(128&n),memberRemoved:d>=3&&256&n?xt.decode(o):null,locationShared:d>=18&&512&n?bt.decode(o):null}}},Cd={preencode(e,o){e.end++,d>=18&&o.locationShared&&kt.preencode(e,o.locationShared)},encode(o,n){const c=(n.callStarted?1:0)|(n.callHangup?2:0)|(n.callMissed?4:0)|(d>=18&&n.locationShared?8:0);e.uint.encode(o,c),d>=18&&n.locationShared&&kt.encode(o,n.locationShared)},decode(o){const n=e.uint.decode(o);return{callStarted:!!(1&n),callHangup:!!(2&n),callMissed:!!(4&n),locationShared:d>=18&&8&n?kt.decode(o):null}}},Ld={preencode(d,o){e.uint.preencode(d,o.start),e.uint.preencode(d,o.length)},encode(d,o){e.uint.encode(d,o.start),e.uint.encode(d,o.length)},decode:d=>({start:e.uint.decode(d),length:e.uint.decode(d)})},qd=e.frame(Ld),Fd={preencode(d,o){qd.preencode(d,o.range),e.string.preencode(d,o.content)},encode(d,o){qd.encode(d,o.range),e.string.encode(d,o.content)},decode:d=>({range:qd.decode(d),content:e.string.decode(d)})},Ed=qd,Bd={preencode(d,o){Ed.preencode(d,o.range),e.fixed32.preencode(d,o.memberKey)},encode(d,o){Ed.encode(d,o.range),e.fixed32.encode(d,o.memberKey)},decode:d=>({range:Ed.decode(d),memberKey:e.fixed32.decode(d)})},Nd=g,Hd=e.array(e.uint),jd={preencode(o,n){o.end++,n.title&&e.string.preencode(o,n.title),n.description&&e.string.preencode(o,n.description),n.file&&Nd.preencode(o,n.file),d>=7&&n.files&&Hd.preencode(o,n.files)},encode(o,n){const c=(n.title?1:0)|(n.description?2:0)|(n.file?4:0)|(d>=7&&n.files?8:0);e.uint.encode(o,c),n.title&&e.string.encode(o,n.title),n.description&&e.string.encode(o,n.description),n.file&&Nd.encode(o,n.file),d>=7&&n.files&&Hd.encode(o,n.files)},decode(o){const n=e.uint.decode(o);return{title:1&n?e.string.decode(o):null,description:2&n?e.string.decode(o):null,file:4&n?Nd.decode(o):null,files:d>=7&&8&n?Hd.decode(o):null}}},zd=qd,Ud=e.frame(jd),Od={preencode(d,o){zd.preencode(d,o.range),e.string.preencode(d,o.url),d.end++,o.preview&&Ud.preencode(d,o.preview)},encode(d,o){const n=o.preview?1:0;zd.encode(d,o.range),e.string.encode(d,o.url),e.uint.encode(d,n),o.preview&&Ud.encode(d,o.preview)},decode:d=>({range:zd.decode(d),url:e.string.decode(d),preview:1&e.uint.decode(d)?Ud.decode(d):null})},Jd=e.array(e.frame(Bd)),Vd=e.array(e.frame(Od)),Gd=Vd,Qd=e.array(e.frame(Ld)),Wd=Qd,Xd=Qd,Yd=e.array(e.frame(Fd)),Zd=Qd,$d=Qd,_d={preencode(o,n){const c=(n.mention?1:0)|(n.httpLink?2:0)|(n.pearLink?4:0)|(n.bold?8:0)|(n.italic?16:0)|(n.code?32:0)|(n.emoji?64:0)|(n.codeBlock?128:0)|(n.strike?256:0)|(d>=11&&n.translation?512:0);e.uint.preencode(o,c),n.mention&&Jd.preencode(o,n.mention),n.httpLink&&Vd.preencode(o,n.httpLink),n.pearLink&&Gd.preencode(o,n.pearLink),n.bold&&Qd.preencode(o,n.bold),n.italic&&Wd.preencode(o,n.italic),n.code&&Xd.preencode(o,n.code),n.emoji&&Yd.preencode(o,n.emoji),n.codeBlock&&Zd.preencode(o,n.codeBlock),n.strike&&$d.preencode(o,n.strike),d>=11&&n.translation&&vt.preencode(o,n.translation)},encode(o,n){const c=(n.mention?1:0)|(n.httpLink?2:0)|(n.pearLink?4:0)|(n.bold?8:0)|(n.italic?16:0)|(n.code?32:0)|(n.emoji?64:0)|(n.codeBlock?128:0)|(n.strike?256:0)|(d>=11&&n.translation?512:0);e.uint.encode(o,c),n.mention&&Jd.encode(o,n.mention),n.httpLink&&Vd.encode(o,n.httpLink),n.pearLink&&Gd.encode(o,n.pearLink),n.bold&&Qd.encode(o,n.bold),n.italic&&Wd.encode(o,n.italic),n.code&&Xd.encode(o,n.code),n.emoji&&Yd.encode(o,n.emoji),n.codeBlock&&Zd.encode(o,n.codeBlock),n.strike&&$d.encode(o,n.strike),d>=11&&n.translation&&vt.encode(o,n.translation)},decode(o){const n=e.uint.decode(o);return{mention:1&n?Jd.decode(o):null,httpLink:2&n?Vd.decode(o):null,pearLink:4&n?Gd.decode(o):null,bold:8&n?Qd.decode(o):null,italic:16&n?Wd.decode(o):null,code:32&n?Xd.decode(o):null,emoji:64&n?Yd.decode(o):null,codeBlock:128&n?Zd.decode(o):null,strike:256&n?$d.decode(o):null,translation:d>=11&&512&n?vt.decode(o):null}}},eo=e.array(e.frame(v)),oo=e.frame(_d),no=e.frame(Cd),co={preencode(d,o){d.end++,o.text&&e.string.preencode(d,o.text),o.files&&eo.preencode(d,o.files),o.display&&oo.preencode(d,o.display),o.replyTo&&n.preencode(d,o.replyTo),o.parent&&n.preencode(d,o.parent),o.event&&no.preencode(d,o.event)},encode(o,c){const r=(c.text?1:0)|(c.files?2:0)|(c.display?4:0)|(c.replyTo?8:0)|(c.parent?16:0)|(c.event?32:0)|(d>=18&&c.forwarded?64:0);e.uint.encode(o,r),c.text&&e.string.encode(o,c.text),c.files&&eo.encode(o,c.files),c.display&&oo.encode(o,c.display),c.replyTo&&n.encode(o,c.replyTo),c.parent&&n.encode(o,c.parent),c.event&&no.encode(o,c.event)},decode(o){const c=e.uint.decode(o);return{text:1&c?e.string.decode(o):null,files:2&c?eo.decode(o):null,display:4&c?oo.decode(o):null,replyTo:8&c?n.decode(o):null,parent:16&c?n.decode(o):null,event:32&c?no.decode(o):null,forwarded:d>=18&&!!(64&c)}}},ro=Hd,to=oo,io={preencode(d,o){d.end++,o.text&&e.string.preencode(d,o.text),o.files&&ro.preencode(d,o.files),o.display&&to.preencode(d,o.display),o.replyTo&&n.preencode(d,o.replyTo),o.parent&&n.preencode(d,o.parent)},encode(o,c){const r=(c.text?1:0)|(c.files?2:0)|(c.display?4:0)|(c.replyTo?8:0)|(c.parent?16:0)|(d>=18&&c.forwarded?32:0);e.uint.encode(o,r),c.text&&e.string.encode(o,c.text),c.files&&ro.encode(o,c.files),c.display&&to.encode(o,c.display),c.replyTo&&n.encode(o,c.replyTo),c.parent&&n.encode(o,c.parent)},decode(o){const c=e.uint.decode(o);return{text:1&c?e.string.decode(o):null,files:2&c?ro.decode(o):null,display:4&c?to.decode(o):null,replyTo:8&c?n.decode(o):null,parent:16&c?n.decode(o):null,forwarded:d>=18&&!!(32&c)}}},ao=eo,so=oo,po={preencode(d,o){d.end++,o.text&&e.string.preencode(d,o.text),o.files&&ao.preencode(d,o.files),o.display&&so.preencode(d,o.display),o.replyTo&&n.preencode(d,o.replyTo),o.parent&&n.preencode(d,o.parent)},encode(o,c){const r=(c.text?1:0)|(c.files?2:0)|(c.display?4:0)|(c.replyTo?8:0)|(c.parent?16:0)|(d>=18&&c.forwarded?32:0);e.uint.encode(o,r),c.text&&e.string.encode(o,c.text),c.files&&ao.encode(o,c.files),c.display&&so.encode(o,c.display),c.replyTo&&n.encode(o,c.replyTo),c.parent&&n.encode(o,c.parent)},decode(o){const c=e.uint.decode(o);return{text:1&c?e.string.decode(o):null,files:2&c?ao.decode(o):null,display:4&c?so.decode(o):null,replyTo:8&c?n.decode(o):null,parent:16&c?n.decode(o):null,forwarded:d>=18&&!!(32&c)}}},uo={preencode(e,d){e.end++},encode(d,o){const n=(o.isEdited?1:0)|(o.isDeleted?2:0)|(o.isPinned?4:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isEdited:!!(1&o),isDeleted:!!(2&o),isPinned:!!(4&o)}}},lo={preencode(d,o){e.uint.preencode(d,o.thread),e.uint.preencode(d,o.index)},encode(d,o){e.uint.encode(d,o.thread),e.uint.encode(d,o.index)},decode:d=>({thread:e.uint.decode(d),index:e.uint.decode(d)})},fo=e.frame(j),mo={preencode(d,o){e.uint.preencode(d,o.id),e.uint.preencode(d,o.count),d.end++,o.parent&&n.preencode(d,o.parent),o.stats&&fo.preencode(d,o.stats)},encode(d,o){const c=(o.parent?1:0)|(o.stats?2:0);e.uint.encode(d,o.id),e.uint.encode(d,o.count),e.uint.encode(d,c),o.parent&&n.encode(d,o.parent),o.stats&&fo.encode(d,o.stats)},decode(d){const o=e.uint.decode(d),c=e.uint.decode(d),r=e.uint.decode(d);return{id:o,count:c,parent:1&r?n.decode(d):null,stats:2&r?fo.decode(d):null}}},yo=e.frame(uo),xo=e.frame(io),bo=e.frame(Md),ko={preencode(d,o){lo.preencode(d,o.id),n.preencode(d,o.oplog),e.uint.preencode(d,o.clock),e.uint.preencode(d,o.timestamp),d.end++,o.editedAt&&e.uint.preencode(d,o.editedAt),yo.preencode(d,o.status),o.message&&xo.preencode(d,o.message),o.event&&bo.preencode(d,o.event)},encode(d,o){const c=(o.editedAt?1:0)|(o.message?2:0)|(o.event?4:0);lo.encode(d,o.id),n.encode(d,o.oplog),e.uint.encode(d,o.clock),e.uint.encode(d,o.timestamp),e.uint.encode(d,c),o.editedAt&&e.uint.encode(d,o.editedAt),yo.encode(d,o.status),o.message&&xo.encode(d,o.message),o.event&&bo.encode(d,o.event)},decode(d){const o=lo.decode(d),c=n.decode(d),r=e.uint.decode(d),t=e.uint.decode(d),i=e.uint.decode(d);return{id:o,oplog:c,clock:r,timestamp:t,editedAt:1&i?e.uint.decode(d):0,status:yo.decode(d),message:2&i?xo.decode(d):null,event:4&i?bo.decode(d):null}}},vo=yo,go=e.frame(po),ho=bo,Ko={preencode(d,o){lo.preencode(d,o.id),n.preencode(d,o.oplog),e.uint.preencode(d,o.clock),e.uint.preencode(d,o.timestamp),d.end++,o.editedAt&&e.uint.preencode(d,o.editedAt),vo.preencode(d,o.status),o.message&&go.preencode(d,o.message),o.event&&ho.preencode(d,o.event)},encode(d,o){const c=(o.editedAt?1:0)|(o.message?2:0)|(o.event?4:0);lo.encode(d,o.id),n.encode(d,o.oplog),e.uint.encode(d,o.clock),e.uint.encode(d,o.timestamp),e.uint.encode(d,c),o.editedAt&&e.uint.encode(d,o.editedAt),vo.encode(d,o.status),o.message&&go.encode(d,o.message),o.event&&ho.encode(d,o.event)},decode(d){const o=lo.decode(d),c=n.decode(d),r=e.uint.decode(d),t=e.uint.decode(d),i=e.uint.decode(d);return{id:o,oplog:c,clock:r,timestamp:t,editedAt:1&i?e.uint.decode(d):0,status:vo.decode(d),message:2&i?go.decode(d):null,event:4&i?ho.decode(d):null}}},wo=$,To=e.frame(co),Ao={preencode(e,d){wo.preencode(e,d.header),To.preencode(e,d.message)},encode(e,d){wo.encode(e,d.header),To.encode(e,d.message)},decode:e=>({header:wo.decode(e),message:To.decode(e)})},Po=$,Ro={preencode(e,d){Po.preencode(e,d.header),n.preencode(e,d.oplog)},encode(e,d){Po.encode(e,d.header),n.encode(e,d.oplog)},decode:e=>({header:Po.decode(e),oplog:n.decode(e)})},So=$,Do=To,Io={preencode(e,d){So.preencode(e,d.header),n.preencode(e,d.oplog),Do.preencode(e,d.message)},encode(e,d){So.encode(e,d.header),n.encode(e,d.oplog),Do.encode(e,d.message)},decode:e=>({header:So.decode(e),oplog:n.decode(e),message:Do.decode(e)})},Mo=$,Co={preencode(e,d){Mo.preencode(e,d.header),n.preencode(e,d.oplog),e.end++},encode(d,o){const c=o.isPinned?1:0;Mo.encode(d,o.header),n.encode(d,o.oplog),e.uint.encode(d,c)},decode:d=>({header:Mo.decode(d),oplog:n.decode(d),isPinned:!!(1&e.uint.decode(d))})},Lo={preencode(d,o){lo.preencode(d,o.id),e.fixed32.preencode(d,o.sender),e.uint.preencode(d,o.clock),e.string.preencode(d,o.reaction)},encode(d,o){lo.encode(d,o.id),e.fixed32.encode(d,o.sender),e.uint.encode(d,o.clock),e.string.encode(d,o.reaction)},decode:d=>({id:lo.decode(d),sender:e.fixed32.decode(d),clock:e.uint.decode(d),reaction:e.string.decode(d)})},qo={preencode(d,o){e.string.preencode(d,o.text),e.uint.preencode(d,o.count)},encode(d,o){e.string.encode(d,o.text),e.uint.encode(d,o.count)},decode:d=>({text:e.string.decode(d),count:e.uint.decode(d)})},Fo=e.array(e.frame(qo)),Eo={preencode(o,n){lo.preencode(o,n.id),e.uint.preencode(o,n.total),Fo.preencode(o,n.reactions),o.end++,d>=11&&n.editedAt&&e.uint.preencode(o,n.editedAt)},encode(o,n){const c=d>=11&&n.editedAt?1:0;lo.encode(o,n.id),e.uint.encode(o,n.total),Fo.encode(o,n.reactions),e.uint.encode(o,c),d>=11&&n.editedAt&&e.uint.encode(o,n.editedAt)},decode(o){const n=lo.decode(o),c=e.uint.decode(o),r=Fo.decode(o),t=o.start<o.end?e.uint.decode(o):0;return{id:n,total:c,reactions:r,editedAt:d>=11&&1&t?e.uint.decode(o):0}}},Bo=$,No={preencode(d,o){Bo.preencode(d,o.header),n.preencode(d,o.oplog),e.string.preencode(d,o.reaction)},encode(d,o){Bo.encode(d,o.header),n.encode(d,o.oplog),e.string.encode(d,o.reaction)},decode:d=>({header:Bo.decode(d),oplog:n.decode(d),reaction:e.string.decode(d)})},Ho=$,jo={preencode(d,o){Ho.preencode(d,o.header),n.preencode(d,o.oplog),e.string.preencode(d,o.reaction)},encode(d,o){Ho.encode(d,o.header),n.encode(d,o.oplog),e.string.encode(d,o.reaction)},decode:d=>({header:Ho.decode(d),oplog:n.decode(d),reaction:e.string.decode(d)})},zo=$,Uo=e.frame(Y),Oo={preencode(d,o){zo.preencode(d,o.header),e.uint.preencode(d,o.key),Uo.preencode(d,o.config)},encode(d,o){zo.encode(d,o.header),e.uint.encode(d,o.key),Uo.encode(d,o.config)},decode:d=>({header:zo.decode(d),key:e.uint.decode(d),config:Uo.decode(d)})},Jo={preencode(d,o){e.fixed32.preencode(d,o.memberKey),e.string.preencode(d,o.displayName),d.end++,o.avatar&&gt.preencode(d,o.avatar)},encode(d,o){const n=o.avatar?1:0;e.fixed32.encode(d,o.memberKey),e.string.encode(d,o.displayName),e.uint.encode(d,n),o.avatar&&gt.encode(d,o.avatar)},decode:d=>({memberKey:e.fixed32.decode(d),displayName:e.string.decode(d),avatar:1&e.uint.decode(d)?gt.decode(d):null})},Vo={preencode(d,o){e.fixed32.preencode(d,o.key),d.end++,o.username&&e.string.preencode(d,o.username)},encode(d,o){const n=o.username?1:0;e.fixed32.encode(d,o.key),e.uint.encode(d,n),o.username&&e.string.encode(d,o.username)},decode:d=>({key:e.fixed32.decode(d),username:1&e.uint.decode(d)?e.string.decode(d):null})},Go=e.frame(Vo),Qo={preencode(d,o){e.fixed32.preencode(d,o.publicKey),d.end++,o.discoveryCoreKey&&e.fixed32.preencode(d,o.discoveryCoreKey),o.userRegistry&&Go.preencode(d,o.userRegistry)},encode(d,o){const n=(o.discoveryCoreKey?1:0)|(o.userRegistry?2:0);e.fixed32.encode(d,o.publicKey),e.uint.encode(d,n),o.discoveryCoreKey&&e.fixed32.encode(d,o.discoveryCoreKey),o.userRegistry&&Go.encode(d,o.userRegistry)},decode(d){const o=e.fixed32.decode(d),n=e.uint.decode(d);return{publicKey:o,discoveryCoreKey:1&n?e.fixed32.decode(d):null,userRegistry:2&n?Go.decode(d):null}}},Wo=$,Xo=e.frame(G),Yo=e.frame(Q),Zo=Uo,$o=e.frame(Qo),_o=xe,en=e.array(e.frame(ue)),dn={preencode(e,d){Wo.preencode(e,d.header),Xo.preencode(e,d.digest),Yo.preencode(e,d.capabilities),e.end++,d.config&&Zo.preencode(e,d.config),d.identity&&$o.preencode(e,d.identity),d.bootstrapDevice&&_o.preencode(e,d.bootstrapDevice),d.initialMembers&&en.preencode(e,d.initialMembers)},encode(d,o){const n=(o.config?1:0)|(o.identity?2:0)|(o.bootstrapDevice?4:0)|(o.initialMembers?8:0);Wo.encode(d,o.header),Xo.encode(d,o.digest),Yo.encode(d,o.capabilities),e.uint.encode(d,n),o.config&&Zo.encode(d,o.config),o.identity&&$o.encode(d,o.identity),o.bootstrapDevice&&_o.encode(d,o.bootstrapDevice),o.initialMembers&&en.encode(d,o.initialMembers)},decode(d){const o=Wo.decode(d),n=Xo.decode(d),c=Yo.decode(d),r=e.uint.decode(d);return{header:o,digest:n,capabilities:c,config:1&r?Zo.decode(d):null,identity:2&r?$o.decode(d):null,bootstrapDevice:4&r?_o.decode(d):null,initialMembers:8&r?en.decode(d):null}}},on=$,nn={preencode(d,o){on.preencode(d,o.header),e.uint.preencode(d,o.version)},encode(d,o){on.encode(d,o.header),e.uint.encode(d,o.version)},decode:d=>({header:on.decode(d),version:e.uint.decode(d)})},cn=$,rn=V,tn={preencode(d,o){cn.preencode(d,o.header),e.uint.preencode(d,o.key),rn.preencode(d,o.settings)},encode(d,o){cn.encode(d,o.header),e.uint.encode(d,o.key),rn.encode(d,o.settings)},decode:d=>({header:cn.decode(d),key:e.uint.decode(d),settings:rn.decode(d)})},an={preencode(o,n){e.fixed32.preencode(o,n.memberKey),ht.preencode(o,n.status),o.end++,n.mailbox&&e.fixed32.preencode(o,n.mailbox),n.roomKey&&e.fixed32.preencode(o,n.roomKey),d>=22&&n.contactInfo&&Kt.preencode(o,n.contactInfo),d>=22&&n.version&&e.uint.preencode(o,n.version),d>=24&&n.alias&&e.string.preencode(o,n.alias)},encode(o,n){const c=(n.mailbox?1:0)|(n.roomKey?2:0)|(d>=22&&n.contactInfo?4:0)|(d>=22&&n.version?8:0)|(d>=24&&n.alias?16:0);e.fixed32.encode(o,n.memberKey),ht.encode(o,n.status),e.uint.encode(o,c),n.mailbox&&e.fixed32.encode(o,n.mailbox),n.roomKey&&e.fixed32.encode(o,n.roomKey),d>=22&&n.contactInfo&&Kt.encode(o,n.contactInfo),d>=22&&n.version&&e.uint.encode(o,n.version),d>=24&&n.alias&&e.string.encode(o,n.alias)},decode(o){const n=e.fixed32.decode(o),c=ht.decode(o),r=e.uint.decode(o);return{memberKey:n,status:c,mailbox:1&r?e.fixed32.decode(o):null,roomKey:2&r?e.fixed32.decode(o):null,contactInfo:d>=22&&4&r?Kt.decode(o):null,version:d>=22&&8&r?e.uint.decode(o):0,alias:d>=24&&16&r?e.string.decode(o):null}}},sn={preencode(d,n){e.fixed32.preencode(d,n.roomKey),e.buffer.preencode(d,n.encryptionKey),e.fixed32.preencode(d,n.seed),o.preencode(d,n.initiator),e.fixed32.preencode(d,n.fastForwardTo)},encode(d,n){e.fixed32.encode(d,n.roomKey),e.buffer.encode(d,n.encryptionKey),e.fixed32.encode(d,n.seed),o.encode(d,n.initiator),e.fixed32.encode(d,n.fastForwardTo)},decode:d=>({roomKey:e.fixed32.decode(d),encryptionKey:e.buffer.decode(d),seed:e.fixed32.decode(d),initiator:o.decode(d),fastForwardTo:e.fixed32.decode(d)})},pn=e.array(e.frame(sn)),un=X,ln={preencode(e,d){pn.preencode(e,d.sharedRooms),un.preencode(e,d.blockedContacts)},encode(e,d){pn.encode(e,d.sharedRooms),un.encode(e,d.blockedContacts)},decode:e=>({sharedRooms:pn.decode(e),blockedContacts:un.decode(e)})},fn=$o,mn={preencode(e,d){fn.preencode(e,d.identity)},encode(e,d){fn.encode(e,d.identity)},decode:e=>({identity:fn.decode(e)})},yn={preencode(d,o){e.uint.preencode(d,o.rooms),e.uint.preencode(d,o.contacts)},encode(d,o){e.uint.encode(d,o.rooms),e.uint.encode(d,o.contacts)},decode:d=>({rooms:e.uint.decode(d),contacts:e.uint.decode(d)})},xn={preencode(d,o){e.uint.preencode(d,o.rooms),e.uint.preencode(d,o.contactRequests)},encode(d,o){e.uint.encode(d,o.rooms),e.uint.encode(d,o.contactRequests)},decode:d=>({rooms:e.uint.decode(d),contactRequests:e.uint.decode(d)})},bn={preencode(d,o){e.buffer.preencode(d,o.entropy)},encode(d,o){e.buffer.encode(d,o.entropy)},decode:d=>({entropy:e.buffer.decode(d)})},kn={preencode(d,o){e.fixed32.preencode(d,o.publicKey),e.fixed32.preencode(d,o.devicePublicKey),e.fixed32.preencode(d,o.writerKey)},encode(d,o){e.fixed32.encode(d,o.publicKey),e.fixed32.encode(d,o.devicePublicKey),e.fixed32.encode(d,o.writerKey)},decode:d=>({publicKey:e.fixed32.decode(d),devicePublicKey:e.fixed32.decode(d),writerKey:e.fixed32.decode(d)})},vn=e.frame(kn),gn={preencode(n,c){e.fixed32.preencode(n,c.id),e.fixed32.preencode(n,c.invitationSeed),e.fixed32.preencode(n,c.mailbox),r.preencode(n,c.responseKeyPair),o.preencode(n,c.initiator),o.preencode(n,c.inviter),n.end++,c.identity&&vn.preencode(n,c.identity),d>=20&&c.buildType&&Hr.preencode(n,c.buildType)},encode(n,c){const t=(c.identity?1:0)|(d>=20&&c.buildType?2:0);e.fixed32.encode(n,c.id),e.fixed32.encode(n,c.invitationSeed),e.fixed32.encode(n,c.mailbox),r.encode(n,c.responseKeyPair),o.encode(n,c.initiator),o.encode(n,c.inviter),e.uint.encode(n,t),c.identity&&vn.encode(n,c.identity),d>=20&&c.buildType&&Hr.encode(n,c.buildType)},decode(n){const c=e.fixed32.decode(n),t=e.fixed32.decode(n),i=e.fixed32.decode(n),a=r.decode(n),s=o.decode(n),p=o.decode(n),u=e.uint.decode(n);return{id:c,invitationSeed:t,mailbox:i,responseKeyPair:a,initiator:s,inviter:p,identity:1&u?vn.decode(n):null,buildType:d>=20&&2&u?Hr.decode(n):null}}},hn=$,Kn={preencode(d,o){hn.preencode(d,o.header),e.buffer.preencode(d,o.blindResponse)},encode(d,o){hn.encode(d,o.header),e.buffer.encode(d,o.blindResponse)},decode:d=>({header:hn.decode(d),blindResponse:e.buffer.decode(d)})},wn=$,Tn=e.frame(gn),An={preencode(e,d){wn.preencode(e,d.header),Tn.preencode(e,d.invitation)},encode(e,d){wn.encode(e,d.header),Tn.encode(e,d.invitation)},decode:e=>({header:wn.decode(e),invitation:Tn.decode(e)})},Pn=$,Rn={preencode(d,o){Pn.preencode(d,o.header),e.fixed32.preencode(d,o.id)},encode(d,o){Pn.encode(d,o.header),e.fixed32.encode(d,o.id)},decode:d=>({header:Pn.decode(d),id:e.fixed32.decode(d)})},Sn={preencode(d,o){e.fixed32.preencode(d,o.publicKey),e.fixed32.preencode(d,o.devicePublicKey),d.end++,o.privateProfileKey&&e.fixed32.preencode(d,o.privateProfileKey),o.deviceKeyPair&&r.preencode(d,o.deviceKeyPair),e.buffer.preencode(d,o.deviceProof)},encode(d,o){const n=(o.privateProfileKey?1:0)|(o.deviceKeyPair?2:0);e.fixed32.encode(d,o.publicKey),e.fixed32.encode(d,o.devicePublicKey),e.uint.encode(d,n),o.privateProfileKey&&e.fixed32.encode(d,o.privateProfileKey),o.deviceKeyPair&&r.encode(d,o.deviceKeyPair),e.buffer.encode(d,o.deviceProof)},decode(d){const o=e.fixed32.decode(d),n=e.fixed32.decode(d),c=e.uint.decode(d);return{publicKey:o,devicePublicKey:n,privateProfileKey:1&c?e.fixed32.decode(d):null,deviceKeyPair:2&c?r.decode(d):null,deviceProof:e.buffer.decode(d)}}},Dn={preencode(e,d){e.end++},encode(o,n){const c=(n.isActive?1:0)|(n.isFullyMuted?2:0)|(n.isMentionsOnlyMuted?4:0)|(d>=9&&n.isReadOnly?8:0)|(d>=18&&n.isFavorite?16:0)|(d>=21&&n.isUnread?32:0);e.uint.encode(o,c)},decode(o){const n=e.uint.decode(o);return{isActive:!!(1&n),isFullyMuted:!!(2&n),isMentionsOnlyMuted:!!(4&n),isReadOnly:d>=9&&!!(8&n),isFavorite:d>=18&&!!(16&n),isUnread:d>=21&&!!(32&n)}}},In=e.frame(Dn),Mn=e.frame(Sn),Cn=vn,Ln={preencode(n,c){e.fixed32.preencode(n,c.roomKey),e.buffer.preencode(n,c.encryptionKey),e.fixed32.preencode(n,c.mailbox),In.preencode(n,c.status),e.uint.preencode(n,c.clock),n.end++,c.initiator&&o.preencode(n,c.initiator),c.fastForwardTo&&e.fixed32.preencode(n,c.fastForwardTo),c.identitySwap&&Mn.preencode(n,c.identitySwap),d>=6&&c.identitySwapV2&&Cn.preencode(n,c.identitySwapV2),d>=10&&c.contact&&e.fixed32.preencode(n,c.contact)},encode(n,c){const r=(c.initiator?1:0)|(c.fastForwardTo?2:0)|(c.identitySwap?4:0)|(d>=6&&c.identitySwapV2?8:0)|(d>=10&&c.contact?16:0);e.fixed32.encode(n,c.roomKey),e.buffer.encode(n,c.encryptionKey),e.fixed32.encode(n,c.mailbox),In.encode(n,c.status),e.uint.encode(n,c.clock),e.uint.encode(n,r),c.initiator&&o.encode(n,c.initiator),c.fastForwardTo&&e.fixed32.encode(n,c.fastForwardTo),c.identitySwap&&Mn.encode(n,c.identitySwap),d>=6&&c.identitySwapV2&&Cn.encode(n,c.identitySwapV2),d>=10&&c.contact&&e.fixed32.encode(n,c.contact)},decode(n){const c=e.fixed32.decode(n),r=e.buffer.decode(n),t=e.fixed32.decode(n),i=In.decode(n),a=e.uint.decode(n),s=e.uint.decode(n);return{roomKey:c,encryptionKey:r,mailbox:t,status:i,clock:a,initiator:1&s?o.decode(n):null,fastForwardTo:2&s?e.fixed32.decode(n):null,identitySwap:4&s?Mn.decode(n):null,identitySwapV2:d>=6&&8&s?Cn.decode(n):null,contact:d>=10&&16&s?e.fixed32.decode(n):null}}},qn=$,Fn={preencode(d,n){qn.preencode(d,n.header),e.fixed32.preencode(d,n.roomKey),e.buffer.preencode(d,n.encryptionKey),e.fixed32.preencode(d,n.mailbox),d.end++,n.fastForwardTo&&e.fixed32.preencode(d,n.fastForwardTo),n.initiator&&o.preencode(d,n.initiator),n.dm&&e.fixed32.preencode(d,n.dm)},encode(n,c){const r=(c.fastForwardTo?1:0)|(c.initiator?2:0)|(c.dm?4:0)|(d>=9&&c.isReadOnly?8:0);qn.encode(n,c.header),e.fixed32.encode(n,c.roomKey),e.buffer.encode(n,c.encryptionKey),e.fixed32.encode(n,c.mailbox),e.uint.encode(n,r),c.fastForwardTo&&e.fixed32.encode(n,c.fastForwardTo),c.initiator&&o.encode(n,c.initiator),c.dm&&e.fixed32.encode(n,c.dm)},decode(n){const c=qn.decode(n),r=e.fixed32.decode(n),t=e.buffer.decode(n),i=e.fixed32.decode(n),a=e.uint.decode(n);return{header:c,roomKey:r,encryptionKey:t,mailbox:i,fastForwardTo:1&a?e.fixed32.decode(n):null,initiator:2&a?o.decode(n):null,dm:4&a?e.fixed32.decode(n):null,isReadOnly:d>=9&&!!(8&a)}}},En=$,Bn={preencode(d,o){En.preencode(d,o.header),e.fixed32.preencode(d,o.discoveryKey)},encode(d,o){En.encode(d,o.header),e.fixed32.encode(d,o.discoveryKey)},decode:d=>({header:En.decode(d),discoveryKey:e.fixed32.decode(d)})},Nn=$,Hn=In,jn={preencode(d,o){Nn.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey),e.uint.preencode(d,o.key),Hn.preencode(d,o.status)},encode(d,o){Nn.encode(d,o.header),e.fixed32.encode(d,o.roomKey),e.uint.encode(d,o.key),Hn.encode(d,o.status)},decode:d=>({header:Nn.decode(d),roomKey:e.fixed32.decode(d),key:e.uint.decode(d),status:Hn.decode(d)})},zn={preencode(e,d){e.end++},encode(o,n){const c=(n.isBlocked?1:0)|(d>=22&&n.isActive?2:0);e.uint.encode(o,c)},decode(o){const n=e.uint.decode(o);return{isBlocked:!!(1&n),isActive:d>=22&&!!(2&n)}}},Un={preencode(o,n){e.fixed32.preencode(o,n.memberKey),e.uint.preencode(o,n.clock),wt.preencode(o,n.status),o.end++,n.mailbox&&e.fixed32.preencode(o,n.mailbox),n.roomKey&&e.fixed32.preencode(o,n.roomKey),d>=22&&n.contactInfo&&Tt.preencode(o,n.contactInfo),d>=24&&n.alias&&e.string.preencode(o,n.alias)},encode(o,n){const c=(n.mailbox?1:0)|(n.roomKey?2:0)|(d>=22&&n.contactInfo?4:0)|(d>=24&&n.alias?8:0);e.fixed32.encode(o,n.memberKey),e.uint.encode(o,n.clock),wt.encode(o,n.status),e.uint.encode(o,c),n.mailbox&&e.fixed32.encode(o,n.mailbox),n.roomKey&&e.fixed32.encode(o,n.roomKey),d>=22&&n.contactInfo&&Tt.encode(o,n.contactInfo),d>=24&&n.alias&&e.string.encode(o,n.alias)},decode(o){const n=e.fixed32.decode(o),c=e.uint.decode(o),r=wt.decode(o),t=e.uint.decode(o);return{memberKey:n,clock:c,status:r,mailbox:1&t?e.fixed32.decode(o):null,roomKey:2&t?e.fixed32.decode(o):null,contactInfo:d>=22&&4&t?Tt.decode(o):null,alias:d>=24&&8&t?e.string.decode(o):null}}},On=$,Jn=e.frame(an),Vn={preencode(e,d){On.preencode(e,d.header),Jn.preencode(e,d.contact)},encode(e,d){On.encode(e,d.header),Jn.encode(e,d.contact)},decode:e=>({header:On.decode(e),contact:Jn.decode(e)})},Gn=$,Qn={preencode(d,o){Gn.preencode(d,o.header),e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.key),At.preencode(d,o.status)},encode(d,o){Gn.encode(d,o.header),e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.key),At.encode(d,o.status)},decode:d=>({header:Gn.decode(d),memberKey:e.fixed32.decode(d),key:e.uint.decode(d),status:At.decode(d)})},Wn=$,Xn={preencode(d,o){Wn.preencode(d,o.header),e.fixed32.preencode(d,o.memberKey)},encode(d,o){Wn.encode(d,o.header),e.fixed32.encode(d,o.memberKey)},decode:d=>({header:Wn.decode(d),memberKey:e.fixed32.decode(d)})},Yn={preencode(e,d){e.end++},encode(d,o){const n=(o.isPending?1:0)|(o.isAccepted?2:0)|(o.isRejected?4:0)|(o.isDiscarded?8:0)|(o.isSeen?16:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isPending:!!(1&o),isAccepted:!!(2&o),isRejected:!!(4&o),isDiscarded:!!(8&o),isSeen:!!(16&o)}}},Zn=be,$n=e.frame(t),_n={preencode(d,o){Zn.preencode(d,o.sender),$n.preencode(d,o.keys),e.fixed32.preencode(d,o.mailbox),d.end++,o.message&&e.string.preencode(d,o.message)},encode(d,o){const n=o.message?1:0;Zn.encode(d,o.sender),$n.encode(d,o.keys),e.fixed32.encode(d,o.mailbox),e.uint.encode(d,n),o.message&&e.string.encode(d,o.message)},decode:d=>({sender:Zn.decode(d),keys:$n.decode(d),mailbox:e.fixed32.decode(d),message:1&e.uint.decode(d)?e.string.decode(d):null})},ec=e.frame(_n),dc={preencode(e,d){ec.preencode(e,d.body),ne.preencode(e,d.attestation)},encode(e,d){ec.encode(e,d.body),ne.encode(e,d.attestation)},decode:e=>({body:ec.decode(e),attestation:ne.decode(e)})},oc=pe,nc=e.frame(Yn),cc=$n,rc={preencode(o,n){e.fixed32.preencode(o,n.memberKey),e.uint.preencode(o,n.clock),oc.preencode(o,n.sender),nc.preencode(o,n.status),cc.preencode(o,n.keys),e.fixed32.preencode(o,n.mailbox),o.end++,n.message&&e.string.preencode(o,n.message),d>=11&&n.sentAt&&e.uint.preencode(o,n.sentAt),d>=22&&n.contactInfo&&Pt.preencode(o,n.contactInfo)},encode(o,n){const c=(n.message?1:0)|(d>=11&&n.sentAt?2:0)|(d>=22&&n.contactInfo?4:0);e.fixed32.encode(o,n.memberKey),e.uint.encode(o,n.clock),oc.encode(o,n.sender),nc.encode(o,n.status),cc.encode(o,n.keys),e.fixed32.encode(o,n.mailbox),e.uint.encode(o,c),n.message&&e.string.encode(o,n.message),d>=11&&n.sentAt&&e.uint.encode(o,n.sentAt),d>=22&&n.contactInfo&&Pt.encode(o,n.contactInfo)},decode(o){const n=e.fixed32.decode(o),c=e.uint.decode(o),r=oc.decode(o),t=nc.decode(o),i=cc.decode(o),a=e.fixed32.decode(o),s=e.uint.decode(o);return{memberKey:n,clock:c,sender:r,status:t,keys:i,mailbox:a,message:1&s?e.string.decode(o):null,sentAt:d>=11&&2&s?e.uint.decode(o):0,contactInfo:d>=22&&4&s?Pt.decode(o):null}}},tc=$,ic={preencode(d,o){tc.preencode(d,o.header),e.buffer.preencode(d,o.blindRequest)},encode(d,o){tc.encode(d,o.header),e.buffer.encode(d,o.blindRequest)},decode:d=>({header:tc.decode(d),blindRequest:e.buffer.decode(d)})},ac=$,sc=nc,pc={preencode(o,n){ac.preencode(o,n.header),e.fixed32.preencode(o,n.memberKey),e.uint.preencode(o,n.key),sc.preencode(o,n.status),o.end++,d>=10&&n.roomKey&&e.fixed32.preencode(o,n.roomKey)},encode(o,n){const c=d>=10&&n.roomKey?1:0;ac.encode(o,n.header),e.fixed32.encode(o,n.memberKey),e.uint.encode(o,n.key),sc.encode(o,n.status),e.uint.encode(o,c),d>=10&&n.roomKey&&e.fixed32.encode(o,n.roomKey)},decode(o){const n=ac.decode(o),c=e.fixed32.decode(o),r=e.uint.decode(o),t=sc.decode(o),i=o.start<o.end?e.uint.decode(o):0;return{header:n,memberKey:c,key:r,status:t,roomKey:d>=10&&1&i?e.fixed32.decode(o):null}}},uc={preencode(d,o){e.uint.preencode(d,o.timestamp),e.fixed32.preencode(d,o.key),e.fixed32.preencode(d,o.mailbox)},encode(d,o){e.uint.encode(d,o.timestamp),e.fixed32.encode(d,o.key),e.fixed32.encode(d,o.mailbox)},decode:d=>({version:e.uint.decode(d),timestamp:e.uint.decode(d),key:e.fixed32.decode(d),mailbox:e.fixed32.decode(d)})},lc={preencode(d,o){switch(e.uint.preencode(d,o.version),o.version){case 0:case 1:uc.preencode(d,o);break;default:throw new Error("Unsupported version")}},encode(d,o){switch(e.uint.encode(d,o.version),o.version){case 0:case 1:uc.encode(d,o);break;default:throw new Error("Unsupported version")}},decode(d){const o=d.start,n=e.uint.decode(d);switch(d.start=o,n){case 0:case 1:return uc.decode(d);default:throw new Error("Unsupported version")}}},fc=$,mc={preencode(o,c){fc.preencode(o,c.header),n.preencode(o,c.oplog),e.uint.preencode(o,c.index),Rt.preencode(o,c.preview),o.end++,d>=7&&c.displayType&&Pc.preencode(o,c.displayType)},encode(o,c){const r=d>=7&&c.displayType?1:0;fc.encode(o,c.header),n.encode(o,c.oplog),e.uint.encode(o,c.index),Rt.encode(o,c.preview),e.uint.encode(o,r),d>=7&&c.displayType&&Pc.encode(o,c.displayType)},decode(o){const c=fc.decode(o),r=n.decode(o),t=e.uint.decode(o),i=Rt.decode(o),a=o.start<o.end?e.uint.decode(o):0;return{header:c,oplog:r,index:t,preview:i,displayType:d>=7&&1&a?Pc.decode(o):0}}},yc={preencode(o,n){o.end++,d>=3&&n.memberKey&&e.fixed32.preencode(o,n.memberKey)},encode(o,n){const c=d>=3&&n.memberKey?1:0;e.uint.encode(o,c),d>=3&&n.memberKey&&e.fixed32.encode(o,n.memberKey)},decode(o){const n=e.uint.decode(o);return{memberKey:d>=3&&1&n?e.fixed32.decode(o):null}}},xc=pe,bc={preencode(e,d){xc.preencode(e,d.profile),ne.preencode(e,d.attestation)},encode(e,d){xc.encode(e,d.profile),ne.encode(e,d.attestation)},decode:e=>({profile:xc.decode(e),attestation:ne.decode(e)})},kc=$,vc={preencode(d,o){kc.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){kc.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:kc.decode(d),key:e.fixed32.decode(d)})},gc={preencode(d,o){e.fixed32.preencode(d,o.deviceKey),ne.preencode(d,o.privateProfileIdentity),e.buffer.preencode(d,o.deviceProof)},encode(d,o){e.fixed32.encode(d,o.deviceKey),ne.encode(d,o.privateProfileIdentity),e.buffer.encode(d,o.deviceProof)},decode:d=>({deviceKey:e.fixed32.decode(d),privateProfileIdentity:ne.decode(d),deviceProof:e.buffer.decode(d)})},hc={preencode(o,n){e.fixed32.preencode(o,n.roomKey),e.fixed32.preencode(o,n.encryptionKey),e.fixed32.preencode(o,n.seed),o.end++,d>=6&&n.fastForwardTo&&e.fixed32.preencode(o,n.fastForwardTo)},encode(o,n){const c=d>=6&&n.fastForwardTo?1:0;e.fixed32.encode(o,n.roomKey),e.fixed32.encode(o,n.encryptionKey),e.fixed32.encode(o,n.seed),e.uint.encode(o,c),d>=6&&n.fastForwardTo&&e.fixed32.encode(o,n.fastForwardTo)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),r=e.fixed32.decode(o),t=e.uint.decode(o);return{roomKey:n,encryptionKey:c,seed:r,fastForwardTo:d>=6&&1&t?e.fixed32.decode(o):null}}},Kc={preencode(o,n){e.fixed32.preencode(o,n.publicKey),e.fixed32.preencode(o,n.writerKey),e.fixed32.preencode(o,n.devicePublicKey),o.end++,d>=6&&n.privateProfileKey&&e.fixed32.preencode(o,n.privateProfileKey)},encode(o,n){const c=d>=6&&n.privateProfileKey?1:0;e.fixed32.encode(o,n.publicKey),e.fixed32.encode(o,n.writerKey),e.fixed32.encode(o,n.devicePublicKey),e.uint.encode(o,c),d>=6&&n.privateProfileKey&&e.fixed32.encode(o,n.privateProfileKey)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),r=e.fixed32.decode(o),t=e.uint.decode(o);return{publicKey:n,writerKey:c,devicePublicKey:r,privateProfileKey:d>=6&&1&t?e.fixed32.decode(o):null}}},wc=$,Tc={preencode(d,o){wc.preencode(d,o.header),e.fixed32.preencode(d,o.memberKey)},encode(d,o){wc.encode(d,o.header),e.fixed32.encode(d,o.memberKey)},decode:d=>({header:wc.decode(d),memberKey:e.fixed32.decode(d)})},Ac={HttpLink:1,PearLink:2},Pc={preencode(e,d){e.end++},encode(d,o){if(o>2)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},Rc=$,Sc={preencode(d,o){Rc.preencode(d,o.header),e.uint.preencode(d,o.value)},encode(d,o){Rc.encode(d,o.header),e.uint.encode(d,o.value)},decode:d=>({header:Rc.decode(d),value:e.uint.decode(d)})},Dc={preencode(d,o){e.uint.preencode(d,o.key),e.uint.preencode(d,o.value)},encode(d,o){e.uint.encode(d,o.key),e.uint.encode(d,o.value)},decode:d=>({key:e.uint.decode(d),value:e.uint.decode(d)})},Ic=$,Mc={preencode(o,n){Ic.preencode(o,n.header),e.uint.preencode(o,n.from),e.uint.preencode(o,n.to),o.end++,d>=20&&n.buildType&&Hr.preencode(o,n.buildType)},encode(o,n){const c=d>=20&&n.buildType?1:0;Ic.encode(o,n.header),e.uint.encode(o,n.from),e.uint.encode(o,n.to),e.uint.encode(o,c),d>=20&&n.buildType&&Hr.encode(o,n.buildType)},decode(o){const n=Ic.decode(o),c=e.uint.decode(o),r=e.uint.decode(o),t=o.start<o.end?e.uint.decode(o):0;return{header:n,from:c,to:r,buildType:d>=20&&1&t?Hr.decode(o):null}}},Cc={RoomType:1,IsExperimental:2,IsJoiningDisabled:3,IsAppendingDisabled:4,IsCallingDisabled:5,IsMembershipEventsDisabled:6,IsAttachmentsDisabled:7,IsLinksDisabled:8,IsRoomInviteHidden:9},Lc={preencode(e,d){e.end++},encode(d,o){if(o>9)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},qc={en:"en",it:"it",ru:"ru",es:"es",de:"de"},Fc={preencode(e,d){e.end++},encode(d,o){switch(o){case"en":e.uint.encode(d,1);break;case"it":e.uint.encode(d,2);break;case"ru":e.uint.encode(d,3);break;case"es":e.uint.encode(d,4);break;case"de":e.uint.encode(d,5);break;default:throw new Error("Unknown enum")}},decode(d){switch(e.uint.decode(d)){case 1:return"en";case 2:return"it";case 3:return"ru";case 4:return"es";case 5:return"de";default:return null}}},Ec=qd,Bc={preencode(d,o){Ec.preencode(d,o.range),Fc.preencode(d,o.language),e.string.preencode(d,o.text)},encode(d,o){Ec.encode(d,o.range),Fc.encode(d,o.language),e.string.encode(d,o.text)},decode:d=>({range:Ec.decode(d),language:Fc.decode(d),text:e.string.decode(d)})},Nc={preencode(d,o){e.fixed32.preencode(d,o.deviceKey),e.fixed32.preencode(d,o.key)},encode(d,o){e.fixed32.encode(d,o.deviceKey),e.fixed32.encode(d,o.key)},decode:d=>({deviceKey:e.fixed32.decode(d),key:e.fixed32.decode(d)})},Hc=$,jc={preencode(d,o){Hc.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){Hc.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:Hc.decode(d),key:e.fixed32.decode(d)})},zc=$,Uc={preencode(d,o){zc.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){zc.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:zc.decode(d),key:e.fixed32.decode(d)})},Oc={Flag:1},Jc={preencode(e,d){e.end++},encode(d,o){if(o>1)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},Vc={preencode(d,o){lo.preencode(d,o.id),e.fixed32.preencode(d,o.sender),e.uint.preencode(d,o.clock),Jc.preencode(d,o.label)},encode(d,o){lo.encode(d,o.id),e.fixed32.encode(d,o.sender),e.uint.encode(d,o.clock),Jc.encode(d,o.label)},decode:d=>({id:lo.decode(d),sender:e.fixed32.decode(d),clock:e.uint.decode(d),label:Jc.decode(d)})},Gc=$,Qc={preencode(e,d){Gc.preencode(e,d.header),n.preencode(e,d.oplog),Jc.preencode(e,d.label)},encode(e,d){Gc.encode(e,d.header),n.encode(e,d.oplog),Jc.encode(e,d.label)},decode:e=>({header:Gc.decode(e),oplog:n.decode(e),label:Jc.decode(e)})},Wc=$,Xc={preencode(e,d){Wc.preencode(e,d.header),n.preencode(e,d.oplog),Jc.preencode(e,d.label)},encode(e,d){Wc.encode(e,d.header),n.encode(e,d.oplog),Jc.encode(e,d.label)},decode:e=>({header:Wc.decode(e),oplog:n.decode(e),label:Jc.decode(e)})},Yc={preencode(d,o){Jc.preencode(d,o.label),e.uint.preencode(d,o.count)},encode(d,o){Jc.encode(d,o.label),e.uint.encode(d,o.count)},decode:d=>({label:Jc.decode(d),count:e.uint.decode(d)})},Zc=e.array(e.frame(Yc)),$c={preencode(o,n){lo.preencode(o,n.id),e.uint.preencode(o,n.total),Zc.preencode(o,n.labels),e.uint.preencode(o,n.editedAt),o.end++,d>=15&&n.flagsClock&&e.uint.preencode(o,n.flagsClock),d>=15&&n.version&&e.uint.preencode(o,n.version)},encode(o,n){const c=(d>=15&&n.flagsClock?1:0)|(d>=15&&n.version?2:0)|(d>=16&&n.isDeleted?4:0);lo.encode(o,n.id),e.uint.encode(o,n.total),Zc.encode(o,n.labels),e.uint.encode(o,n.editedAt),e.uint.encode(o,c),d>=15&&n.flagsClock&&e.uint.encode(o,n.flagsClock),d>=15&&n.version&&e.uint.encode(o,n.version)},decode(o){const n=lo.decode(o),c=e.uint.decode(o),r=Zc.decode(o),t=e.uint.decode(o),i=o.start<o.end?e.uint.decode(o):0;return{id:n,total:c,labels:r,editedAt:t,flagsClock:d>=15&&1&i?e.uint.decode(o):0,version:d>=15&&2&i?e.uint.decode(o):0,isDeleted:d>=16&&!!(4&i)}}},_c=$,er={preencode(d,o){_c.preencode(d,o.header),e.uint.preencode(d,o.length)},encode(d,o){_c.encode(d,o.header),e.uint.encode(d,o.length)},decode:d=>({header:_c.decode(d),length:e.uint.decode(d)})},dr={preencode(d,o){e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.length)},encode(d,o){e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.length)},decode:d=>({memberKey:e.fixed32.decode(d),length:e.uint.decode(d)})},or=Z,nr={preencode(o,n){o.end++,d>=23&&n.profileSnoozeTime&&e.uint.preencode(o,n.profileSnoozeTime)},encode(o,n){const c=(d>=13&&n.disableReadReceipts?1:0)|(d>=21&&n.stripAttachmentMetadata?2:0)|(d>=23&&n.profileSnoozeTime?4:0);e.uint.encode(o,c),d>=23&&n.profileSnoozeTime&&e.uint.encode(o,n.profileSnoozeTime)},decode(o){const n=e.uint.decode(o);return{disableReadReceipts:d>=13&&!!(1&n),stripAttachmentMetadata:d>=21&&!!(2&n),profileSnoozeTime:d>=23&&4&n?e.uint.decode(o):0}}},cr={disableReadReceipts:"disableReadReceipts",stripAttachmentMetadata:"stripAttachmentMetadata",profileSnoozeTime:"profileSnoozeTime"},rr={preencode(e,d){e.end++},encode(d,o){switch(o){case"disableReadReceipts":e.uint.encode(d,1);break;case"stripAttachmentMetadata":e.uint.encode(d,2);break;case"profileSnoozeTime":e.uint.encode(d,3);break;default:throw new Error("Unknown enum")}},decode(d){switch(e.uint.decode(d)){case 1:return"disableReadReceipts";case 2:return"stripAttachmentMetadata";case 3:return"profileSnoozeTime";default:return null}}},tr=$,ir=e.frame(nr),ar={preencode(e,d){tr.preencode(e,d.header),rr.preencode(e,d.key),ir.preencode(e,d.settings)},encode(e,d){tr.encode(e,d.header),rr.encode(e,d.key),ir.encode(e,d.settings)},decode:e=>({header:tr.decode(e),key:rr.decode(e),settings:ir.decode(e)})},sr={Flag:1},pr={preencode(e,d){e.end++},encode(d,o){if(o>1)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},ur={preencode(d,o){e.fixed32.preencode(d,o.key),e.fixed32.preencode(d,o.sender),e.uint.preencode(d,o.clock),pr.preencode(d,o.label)},encode(d,o){e.fixed32.encode(d,o.key),e.fixed32.encode(d,o.sender),e.uint.encode(d,o.clock),pr.encode(d,o.label)},decode:d=>({key:e.fixed32.decode(d),sender:e.fixed32.decode(d),clock:e.uint.decode(d),label:pr.decode(d)})},lr=$,fr={preencode(d,o){lr.preencode(d,o.header),e.fixed32.preencode(d,o.key),pr.preencode(d,o.label)},encode(d,o){lr.encode(d,o.header),e.fixed32.encode(d,o.key),pr.encode(d,o.label)},decode:d=>({header:lr.decode(d),key:e.fixed32.decode(d),label:pr.decode(d)})},mr={preencode(d,o){pr.preencode(d,o.label),e.uint.preencode(d,o.count)},encode(d,o){pr.encode(d,o.label),e.uint.encode(d,o.count)},decode:d=>({label:pr.decode(d),count:e.uint.decode(d)})},yr=e.array(e.frame(mr)),xr={preencode(d,o){e.fixed32.preencode(d,o.key),e.uint.preencode(d,o.total),yr.preencode(d,o.labels),e.uint.preencode(d,o.editedAt),e.uint.preencode(d,o.flagsClock)},encode(d,o){e.fixed32.encode(d,o.key),e.uint.encode(d,o.total),yr.encode(d,o.labels),e.uint.encode(d,o.editedAt),e.uint.encode(d,o.flagsClock)},decode:d=>({key:e.fixed32.decode(d),total:e.uint.decode(d),labels:yr.decode(d),editedAt:e.uint.decode(d),flagsClock:e.uint.decode(d)})},br={preencode(d,o){e.float64.preencode(d,o.latitude),e.float64.preencode(d,o.longitude)},encode(d,o){e.float64.encode(d,o.latitude),e.float64.encode(d,o.longitude)},decode:d=>({latitude:e.float64.decode(d),longitude:e.float64.decode(d)})},kr=$,vr={preencode(d,o){kr.preencode(d,o.header),e.fixed32.preencode(d,o.deviceKey),e.fixed32.preencode(d,o.fromDeviceKey)},encode(d,o){kr.encode(d,o.header),e.fixed32.encode(d,o.deviceKey),e.fixed32.encode(d,o.fromDeviceKey)},decode:d=>({header:kr.decode(d),deviceKey:e.fixed32.decode(d),fromDeviceKey:e.fixed32.decode(d)})},gr=$,hr=X,Kr={preencode(o,n){gr.preencode(o,n.header),e.fixed32.preencode(o,n.callKey),e.buffer.preencode(o,n.encryptionKey),o.end++,d>=19&&n.streams&&hr.preencode(o,n.streams),d>=19&&n.discoveryKey&&e.fixed32.preencode(o,n.discoveryKey),d>=19&&n.version&&e.uint.preencode(o,n.version)},encode(o,n){const c=(d>=19&&n.streams?1:0)|(d>=19&&n.discoveryKey?2:0)|(d>=19&&n.version?4:0);gr.encode(o,n.header),e.fixed32.encode(o,n.callKey),e.buffer.encode(o,n.encryptionKey),e.uint.encode(o,c),d>=19&&n.streams&&hr.encode(o,n.streams),d>=19&&n.discoveryKey&&e.fixed32.encode(o,n.discoveryKey),d>=19&&n.version&&e.uint.encode(o,n.version)},decode(o){const n=gr.decode(o),c=e.fixed32.decode(o),r=e.buffer.decode(o),t=e.uint.decode(o);return{header:n,callKey:c,encryptionKey:r,streams:d>=19&&1&t?hr.decode(o):null,discoveryKey:d>=19&&2&t?e.fixed32.decode(o):null,version:d>=19&&4&t?e.uint.decode(o):0}}},wr=$,Tr=X,Ar={preencode(o,n){wr.preencode(o,n.header),e.fixed32.preencode(o,n.callKey),o.end++,d>=19&&n.streams&&Tr.preencode(o,n.streams)},encode(o,n){const c=d>=19&&n.streams?1:0;wr.encode(o,n.header),e.fixed32.encode(o,n.callKey),e.uint.encode(o,c),d>=19&&n.streams&&Tr.encode(o,n.streams)},decode(o){const n=wr.decode(o),c=e.fixed32.decode(o),r=e.uint.decode(o);return{header:n,callKey:c,streams:d>=19&&1&r?Tr.decode(o):null}}},Pr=$,Rr={preencode(d,o){Pr.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){Pr.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:Pr.decode(d),callKey:e.fixed32.decode(d)})},Sr=$,Dr={preencode(d,o){Sr.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){Sr.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:Sr.decode(d),callKey:e.fixed32.decode(d)})},Ir=$,Mr={preencode(d,o){Ir.preencode(d,o.header),e.fixed32.preencode(d,o.callKey),e.fixed32.preencode(d,o.streamKey)},encode(d,o){Ir.encode(d,o.header),e.fixed32.encode(d,o.callKey),e.fixed32.encode(d,o.streamKey)},decode:d=>({header:Ir.decode(d),callKey:e.fixed32.decode(d),streamKey:e.fixed32.decode(d)})},Cr=$,Lr={preencode(d,o){Cr.preencode(d,o.header),e.fixed32.preencode(d,o.callKey),e.fixed32.preencode(d,o.streamKey)},encode(d,o){Cr.encode(d,o.header),e.fixed32.encode(d,o.callKey),e.fixed32.encode(d,o.streamKey)},decode:d=>({header:Cr.decode(d),callKey:e.fixed32.decode(d),streamKey:e.fixed32.decode(d)})},qr={preencode(o,n){e.fixed32.preencode(o,n.callKey),e.buffer.preencode(o,n.encryptionKey),e.uint.preencode(o,n.createdAt),o.end++,d>=19&&n.endedAt&&e.uint.preencode(o,n.endedAt),d>=19&&n.discoveryKey&&e.fixed32.preencode(o,n.discoveryKey),d>=19&&n.version&&e.uint.preencode(o,n.version)},encode(o,n){const c=(d>=19&&n.endedAt?1:0)|(d>=19&&n.discoveryKey?2:0)|(d>=19&&n.version?4:0);e.fixed32.encode(o,n.callKey),e.buffer.encode(o,n.encryptionKey),e.uint.encode(o,n.createdAt),e.uint.encode(o,c),d>=19&&n.endedAt&&e.uint.encode(o,n.endedAt),d>=19&&n.discoveryKey&&e.fixed32.encode(o,n.discoveryKey),d>=19&&n.version&&e.uint.encode(o,n.version)},decode(o){const n=e.fixed32.decode(o),c=e.buffer.decode(o),r=e.uint.decode(o),t=e.uint.decode(o);return{callKey:n,encryptionKey:c,createdAt:r,endedAt:d>=19&&1&t?e.uint.decode(o):0,discoveryKey:d>=19&&2&t?e.fixed32.decode(o):null,version:d>=19&&4&t?e.uint.decode(o):0}}},Fr={preencode(d,o){e.fixed32.preencode(d,o.callKey),e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.createdAt)},encode(d,o){e.fixed32.encode(d,o.callKey),e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.createdAt)},decode:d=>({callKey:e.fixed32.decode(d),memberKey:e.fixed32.decode(d),createdAt:e.uint.decode(d)})},Er={preencode(o,n){e.fixed32.preencode(o,n.callKey),e.fixed32.preencode(o,n.deviceKey),e.fixed32.preencode(o,n.memberKey),e.uint.preencode(o,n.createdAt),o.end++,d>=19&&n.swarmKey&&e.fixed32.preencode(o,n.swarmKey),d>=22&&n.lastHeartbeatAt&&e.uint.preencode(o,n.lastHeartbeatAt)},encode(o,n){const c=(d>=19&&n.swarmKey?1:0)|(d>=22&&n.lastHeartbeatAt?2:0)|(d>=23&&n.isRecording?4:0);e.fixed32.encode(o,n.callKey),e.fixed32.encode(o,n.deviceKey),e.fixed32.encode(o,n.memberKey),e.uint.encode(o,n.createdAt),e.uint.encode(o,c),d>=19&&n.swarmKey&&e.fixed32.encode(o,n.swarmKey),d>=22&&n.lastHeartbeatAt&&e.uint.encode(o,n.lastHeartbeatAt)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),r=e.fixed32.decode(o),t=e.uint.decode(o),i=e.uint.decode(o);return{callKey:n,deviceKey:c,memberKey:r,createdAt:t,swarmKey:d>=19&&1&i?e.fixed32.decode(o):null,lastHeartbeatAt:d>=22&&2&i?e.uint.decode(o):0,isRecording:d>=23&&!!(4&i)}}},Br={preencode(d,o){e.fixed32.preencode(d,o.callKey),e.fixed32.preencode(d,o.deviceKey),e.buffer.preencode(d,o.streamKey),e.uint.preencode(d,o.createdAt)},encode(d,o){e.fixed32.encode(d,o.callKey),e.fixed32.encode(d,o.deviceKey),e.buffer.encode(d,o.streamKey),e.uint.encode(d,o.createdAt)},decode:d=>({callKey:e.fixed32.decode(d),deviceKey:e.fixed32.decode(d),streamKey:e.buffer.decode(d),createdAt:e.uint.decode(d)})},Nr={Nightly:"Nightly",Internal:"Internal",Production:"Production"},Hr={preencode(e,d){e.end++},encode(d,o){switch(o){case"Nightly":e.uint.encode(d,1);break;case"Internal":e.uint.encode(d,2);break;case"Production":e.uint.encode(d,3);break;default:throw new Error("Unknown enum")}},decode(d){switch(e.uint.decode(d)){case 1:return"Nightly";case 2:return"Internal";case 3:return"Production";default:return null}}},jr=$,zr={preencode(e,d){jr.preencode(e,d.header)},encode(e,d){jr.encode(e,d.header)},decode:e=>({header:jr.decode(e)})},Ur=$,Or={preencode(e,d){Ur.preencode(e,d.header)},encode(e,d){Ur.encode(e,d.header)},decode:e=>({header:Ur.decode(e)})},Jr=$,Vr={preencode(d,o){Jr.preencode(d,o.header),e.fixed32.preencode(d,o.deviceKey),e.buffer.preencode(d,o.deviceProof),e.buffer.preencode(d,o.writerProof)},encode(d,o){Jr.encode(d,o.header),e.fixed32.encode(d,o.deviceKey),e.buffer.encode(d,o.deviceProof),e.buffer.encode(d,o.writerProof)},decode:d=>({header:Jr.decode(d),deviceKey:e.fixed32.decode(d),deviceProof:e.buffer.decode(d),writerProof:e.buffer.decode(d)})},Gr=$,Qr={preencode(d,o){Gr.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){Gr.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:Gr.decode(d),callKey:e.fixed32.decode(d)})},Wr=$,Xr={preencode(d,o){Wr.preencode(d,o.header),e.fixed32.preencode(d,o.callKey),e.fixed32.preencode(d,o.deviceKey)},encode(d,o){Wr.encode(d,o.header),e.fixed32.encode(d,o.callKey),e.fixed32.encode(d,o.deviceKey)},decode:d=>({header:Wr.decode(d),callKey:e.fixed32.decode(d),deviceKey:e.fixed32.decode(d)})},Yr=$,Zr={preencode(d,o){Yr.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){Yr.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:Yr.decode(d),callKey:e.fixed32.decode(d)})},$r=$,_r={preencode(d,o){$r.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){$r.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:$r.decode(d),callKey:e.fixed32.decode(d)})},et=$,dt={preencode(e,d){et.preencode(e,d.header),n.preencode(e,d.oplog)},encode(e,d){et.encode(e,d.header),n.encode(e,d.oplog)},decode:e=>({header:et.decode(e),oplog:n.decode(e)})},ot=$,nt={preencode(e,d){ot.preencode(e,d.header)},encode(e,d){ot.encode(e,d.header)},decode:e=>({header:ot.decode(e)})},ct={preencode(d,o){e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.timestamp)},encode(d,o){e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.timestamp)},decode:d=>({memberKey:e.fixed32.decode(d),timestamp:e.uint.decode(d)})},rt=$,tt={preencode(o,n){rt.preencode(o,n.header),e.fixed32.preencode(o,n.memberKey),o.end++,d>=24&&n.alias&&e.string.preencode(o,n.alias)},encode(o,n){const c=d>=24&&n.alias?1:0;rt.encode(o,n.header),e.fixed32.encode(o,n.memberKey),e.uint.encode(o,c),d>=24&&n.alias&&e.string.encode(o,n.alias)},decode(o){const n=rt.decode(o),c=e.fixed32.decode(o),r=e.uint.decode(o);return{header:n,memberKey:c,alias:d>=24&&1&r?e.string.decode(o):null}}},it=e.frame(w),at=it,st=e.array(Fc),pt=e.frame(se),ut=it,lt=pt,ft=e.frame(hc),mt=pt,yt=e.frame(fd),xt=e.frame(yc),bt=e.frame(br),kt=bt,vt=e.array(e.frame(Bc)),gt=it,ht=e.frame(zn),Kt=e.frame(bc),wt=ht,Tt=Kt,At=ht,Pt=Kt,Rt=it;function St(e){switch(e){case"@keet/head":return o;case"@keet/oplog-id":return n;case"@keet/encryption-keypair":return c;case"@keet/signing-keypair":return r;case"@keet/room-keys":return t;case"@keet/operation-header":return i;case"@keet/blob-pointer":return a;case"@keet/file-dimensions":return s;case"@keet/file-metadata":return u;case"@keet/external-drive-pointer":return l;case"@keet/external-blob-pointer":return f;case"@keet/file-pointer":return x;case"@keet/file":return v;case"@keet/image-file":return w;case"@keet/file-status":return T;case"@keet/file-record":return R;case"@keet/device-status":return S;case"@keet/member-status":return D;case"@keet/member-moderation-status":return I;case"@keet/abi":return M;case"@keet/device-stats":return C;case"@keet/member-stats":return L;case"@keet/chat-stats":return q;case"@keet/file-stats":return F;case"@keet/stats":return j;case"@keet/room-type":return U;case"@keet/system-settings":return O;case"@keet/system-digest":return G;case"@keet/room-seed":return Q;case"@keet/room-capabilities":return W;case"@keet/room-config":return Y;case"@keet/blind-peer":return Z;case"@keet/add-blind-peer-operation":return ee;case"@keet/remove-blind-peer-operation":return oe;case"@keet/identity-attestation":return ne;case"@keet/device-invitation":return ce;case"@keet/device":return ie;case"@keet/member-profile":return ae;case"@keet/device-profile":return se;case"@keet/member-update":return ue;case"@keet/device-update":return le;case"@keet/signed-pairing-data":return fe;case"@keet/device-request-identity":return me;case"@keet/device-response-identity":return ye;case"@keet/device-request-with-invitation":return ve;case"@keet/device-request-with-invitation-and-proof":return he;case"@keet/device-request-with-member-proof":return Te;case"@keet/device-request":return Re;case"@keet/device-response":return Ie;case"@keet/invitation-metadata":return Me;case"@keet/invitation":return qe;case"@keet/add-invitation-operation":return Be;case"@keet/remove-invitation-operation":return He;case"@keet/sendable-room-invitation":return je;case"@keet/sendable-identity-invitation":return ze;case"@keet/sendable-contact-invitation":return Ue;case"@keet/sendable-invitation":return Qe;case"@keet/add-device-operation":return Xe;case"@keet/update-device-operation":return Ze;case"@keet/start-indexing-operation":return $e;case"@keet/stop-indexing-operation":return _e;case"@keet/join-request":return dd;case"@keet/accept-join-request-operation":return cd;case"@keet/reject-join-request-operation":return td;case"@keet/member":return sd;case"@keet/full-member":return ld;case"@keet/member-proofs":return fd;case"@keet/update-member-operation":return xd;case"@keet/change-member-status-operation":return vd;case"@keet/change-member-role-operation":return hd;case"@keet/remove-member-operation":return wd;case"@keet/member-activity":return Td;case"@keet/member-joined-event":return Ad;case"@keet/member-left-event":return Pd;case"@keet/title-changed-chat-event":return Rd;case"@keet/chat-event":return Md;case"@keet/sendable-event":return Cd;case"@keet/display-range":return Ld;case"@keet/display-content-range":return Fd;case"@keet/mention-display-item":return Bd;case"@keet/link-preview":return jd;case"@keet/display-link-item":return Od;case"@keet/display":return _d;case"@keet/oplog-message":return co;case"@keet/index-message":return io;case"@keet/full-index-message":return po;case"@keet/message-status":return uo;case"@keet/message-index-id":return lo;case"@keet/thread":return mo;case"@keet/chat-message-record":return ko;case"@keet/full-chat-message-record":return Ko;case"@keet/add-chat-message-operation":return Ao;case"@keet/remove-chat-message-operation":return Ro;case"@keet/update-chat-message-operation":return Io;case"@keet/pin-chat-message-operation":return Co;case"@keet/reaction":return Lo;case"@keet/reactions-summary":return qo;case"@keet/reactions-digest":return Eo;case"@keet/add-reaction-operation":return No;case"@keet/remove-reaction-operation":return jo;case"@keet/update-room-config-operation":return Oo;case"@keet/group-member":return Jo;case"@keet/user-registry-info":return Vo;case"@keet/room-identity":return Qo;case"@keet/genesis-operation":return dn;case"@keet/upgrade-operation":return nn;case"@keet/update-system-settings-operation":return tn;case"@keet-private-id/contact":return an;case"@keet-private-id/v3-room-migration-info":return sn;case"@keet-private-id/run-v3-migration-operation":return ln;case"@keet-private-id/update-identity-operation":return mn;case"@keet-private-id/counters":return yn;case"@keet-private-id/stats":return xn;case"@keet-private-id/add-entropy-operation":return bn;case"@keet-private-id/pending-invitation-identity":return kn;case"@keet-private-id/pending-invitation":return gn;case"@keet-private-id/resolve-pending-invitation-operation":return Kn;case"@keet-private-id/add-pending-invitation-operation":return An;case"@keet-private-id/remove-pending-invitation-operation":return Rn;case"@keet-private-id/identity-swap":return Sn;case"@keet-private-id/room-status":return Dn;case"@keet-private-id/room":return Ln;case"@keet-private-id/add-room-operation":return Fn;case"@keet-private-id/remove-room-operation":return Bn;case"@keet-private-id/update-room-status-operation":return jn;case"@keet-private-id/contact-status":return zn;case"@keet-private-id/contact-record":return Un;case"@keet-private-id/add-contact-operation":return Vn;case"@keet-private-id/update-contact-status-operation":return Qn;case"@keet-private-id/remove-contact-operation":return Xn;case"@keet-private-id/contact-request-status":return Yn;case"@keet-private-id/contact-request-body":return _n;case"@keet-private-id/contact-request":return dc;case"@keet-private-id/contact-request-record":return rc;case"@keet-private-id/add-contact-request-operation":return ic;case"@keet-private-id/update-contact-request-status-operation":return pc;case"@keet-private-id/profile-discovery-record-v1":return uc;case"@keet-private-id/profile-discovery-record":return lc;case"@keet/add-file-preview-operation":return mc;case"@keet/member-removed-event":return yc;case"@keet/member-contact-info":return bc;case"@keet/remove-device-operation":return vc;case"@keet/device-identity":return gc;case"@keet/readonly-room-invitation":return hc;case"@keet-private-id/identity-swap-v2":return Kc;case"@keet-private-id/activate-contact-room-operation":return Tc;case"@keet/display-type":return Pc;case"@keet/test-increment-operation":return Sc;case"@keet/test-collection-record-1":return Dc;case"@keet/migrate-abi-operation":return Mc;case"@keet/system-settings-keys":return Lc;case"@keet/room-supported-language":return Fc;case"@keet/translation-display-item":return Bc;case"@keet-private-id/unreads":return Nc;case"@keet-private-id/add-unreads-key-operation":return jc;case"@keet-private-id/remove-unreads-key-operation":return Uc;case"@keet/label-type":return Jc;case"@keet/chat-label":return Vc;case"@keet/add-chat-label-operation":return Qc;case"@keet/remove-chat-label-operation":return Xc;case"@keet/chat-label-summary":return Yc;case"@keet/chat-label-digest":return $c;case"@keet/update-read-length-operation":return er;case"@keet/read-length":return dr;case"@keet/tmp-removed-member":return or;case"@keet-private-id/settings":return nr;case"@keet-private-id/user-settings-key":return rr;case"@keet-private-id/update-settings-operation":return ar;case"@keet/member-label-type":return pr;case"@keet/member-label":return ur;case"@keet/add-member-label-operation":return fr;case"@keet/member-label-summary":return mr;case"@keet/member-label-digest":return xr;case"@keet/location-shared-event":return br;case"@keet/move-indexer-operation":return vr;case"@keet/start-call":return Kr;case"@keet/join-call":return Ar;case"@keet/leave-call":return Rr;case"@keet/end-call":return Dr;case"@keet/add-call-stream":return Mr;case"@keet/remove-call-stream":return Lr;case"@keet/call-record":return qr;case"@keet/call-member-record":return Fr;case"@keet/call-device-record":return Er;case"@keet/call-stream-record":return Br;case"@keet/build-type":return Hr;case"@keet/test-crash-operation":return zr;case"@keet/test-dispatch-error-operation":return Or;case"@keet-private-id/shorten-device-attestation-operation":return Vr;case"@keet/call-device-heartbeat":return Qr;case"@keet/remove-call-device":return Xr;case"@keet/start-call-recording":return Zr;case"@keet/stop-call-recording":return _r;case"@keet/dismiss-chat-reports-operation":return dt;case"@keet/update-typing-indicator-operation":return nt;case"@keet/typing-indicator":return ct;case"@keet-private-id/update-contact-alias-operation":return tt;default:throw new Error("Encoder not found "+e)}}function Dt(e,o=24){const n=St(e);return{preencode(e,c){d=o,n.preencode(e,c)},encode(e,c){d=o,n.encode(e,c)},decode:e=>(d=o,n.decode(e))}}const It=Dt;module.exports={resolveStruct:It,getStruct:Dt,getEnum:function(e){switch(e){case"@keet/room-type":return z;case"@keet/display-type":return Ac;case"@keet/system-settings-keys":return Cc;case"@keet/room-supported-language":return qc;case"@keet/label-type":return Oc;case"@keet-private-id/user-settings-key":return cr;case"@keet/member-label-type":return sr;case"@keet/build-type":return Nr;default:throw new Error("Enum not found "+e)}},getEncoding:St,encode:function(o,n,c=24){return d=c,e.encode(St(o),n)},decode:function(o,n,c=24){return d=c,e.decode(St(o),n)},setVersion:function(e){d=e},version:d};
1const{c:e}=require("hyperschema/runtime");let d=29;const o={preencode(d,o){e.fixed32.preencode(d,o.key),e.uint.preencode(d,o.length)},encode(d,o){e.fixed32.encode(d,o.key),e.uint.encode(d,o.length)},decode:d=>({key:e.fixed32.decode(d),length:e.uint.decode(d)})},n={preencode(d,o){e.fixed32.preencode(d,o.key),e.uint.preencode(d,o.seq)},encode(d,o){e.fixed32.encode(d,o.key),e.uint.encode(d,o.seq)},decode:d=>({key:e.fixed32.decode(d),seq:e.uint.decode(d)})},c={preencode(d,o){e.fixed32.preencode(d,o.publicKey),e.fixed32.preencode(d,o.secretKey)},encode(d,o){e.fixed32.encode(d,o.publicKey),e.fixed32.encode(d,o.secretKey)},decode:d=>({publicKey:e.fixed32.decode(d),secretKey:e.fixed32.decode(d)})},t={preencode(d,o){e.fixed32.preencode(d,o.publicKey),e.fixed64.preencode(d,o.secretKey)},encode(d,o){e.fixed32.encode(d,o.publicKey),e.fixed64.encode(d,o.secretKey)},decode:d=>({publicKey:e.fixed32.decode(d),secretKey:e.fixed64.decode(d)})},r={preencode(n,c){e.fixed32.preencode(n,c.key),n.end++,c.encryptionKey&&e.buffer.preencode(n,c.encryptionKey),c.fastForwardTo&&e.fixed32.preencode(n,c.fastForwardTo),d>=27&&c.bootFrom&&o.preencode(n,c.bootFrom)},encode(n,c){const t=(c.encryptionKey?1:0)|(c.fastForwardTo?2:0)|(d>=27&&c.bootFrom?4:0);e.fixed32.encode(n,c.key),e.uint.encode(n,t),c.encryptionKey&&e.buffer.encode(n,c.encryptionKey),c.fastForwardTo&&e.fixed32.encode(n,c.fastForwardTo),d>=27&&c.bootFrom&&o.encode(n,c.bootFrom)},decode(n){const c=e.fixed32.decode(n),t=e.uint.decode(n);return{key:c,encryptionKey:1&t?e.buffer.decode(n):null,fastForwardTo:2&t?e.fixed32.decode(n):null,bootFrom:d>=27&&4&t?o.decode(n):null}}},i={preencode(d,o){e.uint.preencode(d,o.timestamp)},encode(d,o){e.uint.encode(d,o.timestamp)},decode:d=>({timestamp:e.uint.decode(d)})},a={preencode(d,o){e.uint.preencode(d,o.blockOffset),e.uint.preencode(d,o.blockLength),e.uint.preencode(d,o.byteOffset),e.uint.preencode(d,o.byteLength)},encode(d,o){e.uint.encode(d,o.blockOffset),e.uint.encode(d,o.blockLength),e.uint.encode(d,o.byteOffset),e.uint.encode(d,o.byteLength)},decode:d=>({blockOffset:e.uint.decode(d),blockLength:e.uint.decode(d),byteOffset:e.uint.decode(d),byteLength:e.uint.decode(d)})},s={preencode(d,o){e.uint.preencode(d,o.width),e.uint.preencode(d,o.height)},encode(d,o){e.uint.encode(d,o.width),e.uint.encode(d,o.height)},decode:d=>({width:e.uint.decode(d),height:e.uint.decode(d)})},p=e.frame(s),u={preencode(d,o){d.end++,o.name&&e.string.preencode(d,o.name),o.mimetype&&e.string.preencode(d,o.mimetype),o.dimensions&&p.preencode(d,o.dimensions),o.userdata&&e.buffer.preencode(d,o.userdata),o.duration&&e.uint.preencode(d,o.duration)},encode(d,o){const n=(o.name?1:0)|(o.mimetype?2:0)|(o.dimensions?4:0)|(o.userdata?8:0)|(o.duration?16:0)|(o.isPreview?32:0);e.uint.encode(d,n),o.name&&e.string.encode(d,o.name),o.mimetype&&e.string.encode(d,o.mimetype),o.dimensions&&p.encode(d,o.dimensions),o.userdata&&e.buffer.encode(d,o.userdata),o.duration&&e.uint.encode(d,o.duration)},decode(d){const o=e.uint.decode(d);return{name:1&o?e.string.decode(d):null,mimetype:2&o?e.string.decode(d):null,dimensions:4&o?p.decode(d):null,userdata:8&o?e.buffer.decode(d):null,duration:16&o?e.uint.decode(d):0,isPreview:!!(32&o)}}},l={preencode(d,o){e.fixed32.preencode(d,o.key),e.string.preencode(d,o.path),e.uint.preencode(d,o.version),e.uint.preencode(d,o.size)},encode(d,o){e.fixed32.encode(d,o.key),e.string.encode(d,o.path),e.uint.encode(d,o.version),e.uint.encode(d,o.size)},decode:d=>({key:e.fixed32.decode(d),path:e.string.decode(d),version:e.uint.decode(d),size:e.uint.decode(d)})},f={preencode(d,o){e.fixed32.preencode(d,o.key),a.preencode(d,o.blob)},encode(d,o){e.fixed32.encode(d,o.key),a.encode(d,o.blob)},decode:d=>({key:e.fixed32.decode(d),blob:a.decode(d)})},m=e.frame(f),y=e.frame(l),b={preencode(o,n){o.end++,n.inlined&&e.buffer.preencode(o,n.inlined),n.blob&&a.preencode(o,n.blob),n.externalBlob&&m.preencode(o,n.externalBlob),n.externalDrive&&y.preencode(o,n.externalDrive),d>=27&&n.bee&&fr.preencode(o,n.bee)},encode(o,n){const c=(n.inlined?1:0)|(n.blob?2:0)|(n.externalBlob?4:0)|(n.externalDrive?8:0)|(d>=27&&n.bee?16:0);e.uint.encode(o,c),n.inlined&&e.buffer.encode(o,n.inlined),n.blob&&a.encode(o,n.blob),n.externalBlob&&m.encode(o,n.externalBlob),n.externalDrive&&y.encode(o,n.externalDrive),d>=27&&n.bee&&fr.encode(o,n.bee)},decode(o){const n=e.uint.decode(o);return{inlined:1&n?e.buffer.decode(o):null,blob:2&n?a.decode(o):null,externalBlob:4&n?m.decode(o):null,externalDrive:8&n?y.decode(o):null,bee:d>=27&&16&n?fr.decode(o):null}}},x=e.frame(b),k=e.frame(u),v={preencode(d,o){x.preencode(d,o.pointer),d.end++,o.metadata&&k.preencode(d,o.metadata),o.preview&&Hr.preencode(d,o.preview),o.hash&&e.fixed32.preencode(d,o.hash)},encode(d,o){const n=(o.metadata?1:0)|(o.preview?2:0)|(o.hash?4:0);x.encode(d,o.pointer),e.uint.encode(d,n),o.metadata&&k.encode(d,o.metadata),o.preview&&Hr.encode(d,o.preview),o.hash&&e.fixed32.encode(d,o.hash)},decode(d){const o=x.decode(d),n=e.uint.decode(d);return{pointer:o,metadata:1&n?k.decode(d):null,preview:2&n?Hr.decode(d):null,hash:4&n?e.fixed32.decode(d):null}}},g=e.frame(v),h=g,K=g,w={preencode(e,d){e.end++,d.small&&g.preencode(e,d.small),d.medium&&h.preencode(e,d.medium),d.large&&K.preencode(e,d.large)},encode(d,o){const n=(o.small?1:0)|(o.medium?2:0)|(o.large?4:0);e.uint.encode(d,n),o.small&&g.encode(d,o.small),o.medium&&h.encode(d,o.medium),o.large&&K.encode(d,o.large)},decode(d){const o=e.uint.decode(d);return{small:1&o?g.decode(d):null,medium:2&o?h.decode(d):null,large:4&o?K.decode(d):null}}},T={preencode(e,d){e.end++},encode(d,o){const n=o.isDeleted?1:0;e.uint.encode(d,n)},decode:d=>({isDeleted:!!(1&e.uint.decode(d))})},A=e.frame(T),P=g,S={preencode(o,c){e.uint.preencode(o,c.id),n.preencode(o,c.oplog),A.preencode(o,c.status),P.preencode(o,c.file),o.end++,d>=14&&c.version&&e.uint.preencode(o,c.version)},encode(o,c){const t=d>=14&&c.version?1:0;e.uint.encode(o,c.id),n.encode(o,c.oplog),A.encode(o,c.status),P.encode(o,c.file),e.uint.encode(o,t),d>=14&&c.version&&e.uint.encode(o,c.version)},decode(o){const c=e.uint.decode(o),t=n.decode(o),r=A.decode(o),i=P.decode(o),a=o.start<o.end?e.uint.decode(o):0;return{id:c,oplog:t,status:r,file:i,version:d>=14&&1&a?e.uint.decode(o):0}}},I={preencode(e,d){e.end++},encode(d,o){const n=(o.isActive?1:0)|(o.isIndexing?2:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isActive:!!(1&o),isIndexing:!!(2&o)}}},R={preencode(o,n){const c=(n.isAdmin?1:0)|(n.isModerator?2:0)|(n.isPending?4:0)|(n.isActive?8:0)|(n.isMuted?16:0)|(n.isBanned?32:0)|(n.isShadowBanned?64:0)|(d>=13&&n.isRemoved?128:0);e.uint.preencode(o,c)},encode(o,n){const c=(n.isAdmin?1:0)|(n.isModerator?2:0)|(n.isPending?4:0)|(n.isActive?8:0)|(n.isMuted?16:0)|(n.isBanned?32:0)|(n.isShadowBanned?64:0)|(d>=13&&n.isRemoved?128:0);e.uint.encode(o,c)},decode(o){const n=e.uint.decode(o);return{isAdmin:!!(1&n),isModerator:!!(2&n),isPending:!!(4&n),isActive:!!(8&n),isMuted:!!(16&n),isBanned:!!(32&n),isShadowBanned:!!(64&n),isRemoved:d>=13&&!!(128&n)}}},F={preencode(e,d){e.end++},encode(d,o){const n=(o.isMuted?1:0)|(o.isBanned?2:0)|(o.isShadowBanned?4:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isMuted:!!(1&o),isBanned:!!(2&o),isShadowBanned:!!(4&o)}}},H={preencode(d,o){e.uint.preencode(d,o.version)},encode(d,o){e.uint.encode(d,o.version)},decode:d=>({version:e.uint.decode(d)})},M={preencode(d,o){e.uint.preencode(d,o.total),e.uint.preencode(d,o.active)},encode(d,o){e.uint.encode(d,o.total),e.uint.encode(d,o.active)},decode:d=>({total:e.uint.decode(d),active:e.uint.decode(d)})},C={preencode(d,o){e.uint.preencode(d,o.total),e.uint.preencode(d,o.active),e.uint.preencode(d,o.pending)},encode(d,o){e.uint.encode(d,o.total),e.uint.encode(d,o.active),e.uint.encode(d,o.pending)},decode:d=>({total:e.uint.decode(d),active:e.uint.decode(d),pending:e.uint.decode(d)})},D={preencode(o,n){e.uint.preencode(o,n.clock),e.uint.preencode(o,n.pinned),e.uint.preencode(o,n.threads),e.uint.preencode(o,n.timestamp),o.end++,d>=15&&n.flagsClock&&e.uint.preencode(o,n.flagsClock)},encode(o,n){const c=d>=15&&n.flagsClock?1:0;e.uint.encode(o,n.clock),e.uint.encode(o,n.pinned),e.uint.encode(o,n.threads),e.uint.encode(o,n.timestamp),e.uint.encode(o,c),d>=15&&n.flagsClock&&e.uint.encode(o,n.flagsClock)},decode(o){const n=e.uint.decode(o),c=e.uint.decode(o),t=e.uint.decode(o),r=e.uint.decode(o),i=o.start<o.end?e.uint.decode(o):0;return{clock:n,pinned:c,threads:t,timestamp:r,flagsClock:d>=15&&1&i?e.uint.decode(o):0}}},V={preencode(d,o){e.uint.preencode(d,o.clock)},encode(d,o){e.uint.encode(d,o.clock)},decode:d=>({clock:e.uint.decode(d)})},L=e.frame(M),q=e.frame(C),E=e.frame(D),B=e.frame(V),z={preencode(e,o){L.preencode(e,o.devices),q.preencode(e,o.members),E.preencode(e,o.chat),B.preencode(e,o.files),e.end++,d>=26&&o.calls&&Mr.preencode(e,o.calls)},encode(o,n){const c=d>=26&&n.calls?1:0;L.encode(o,n.devices),q.encode(o,n.members),E.encode(o,n.chat),B.encode(o,n.files),e.uint.encode(o,c),d>=26&&n.calls&&Mr.encode(o,n.calls)},decode(o){const n=L.decode(o),c=q.decode(o),t=E.decode(o),r=B.decode(o),i=o.start<o.end?e.uint.decode(o):0;return{devices:n,members:c,chat:t,files:r,calls:d>=26&&1&i?Mr.decode(o):null}}},N={Default:1,Broadcast:2,DirectMessage:3},j={preencode(e,d){e.end++},encode(d,o){if(o>3)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},O={preencode(o,n){const c=(n.roomType?1:0)|(n.isExperimental?2:0)|(n.isJoiningDisabled?4:0)|(n.isAppendingDisabled?8:0)|(n.isCallingDisabled?16:0)|(n.isMembershipEventsDisabled?32:0)|(d>=19&&n.isAttachmentsDisabled?64:0)|(d>=19&&n.isLinksDisabled?128:0)|(d>=20&&n.buildType?256:0)|(d>=23&&n.isRoomInviteHidden?512:0);e.uint.preencode(o,c),n.roomType&&j.preencode(o,n.roomType),d>=20&&n.buildType&&Bt.preencode(o,n.buildType)},encode(o,n){const c=(n.roomType?1:0)|(n.isExperimental?2:0)|(n.isJoiningDisabled?4:0)|(n.isAppendingDisabled?8:0)|(n.isCallingDisabled?16:0)|(n.isMembershipEventsDisabled?32:0)|(d>=19&&n.isAttachmentsDisabled?64:0)|(d>=19&&n.isLinksDisabled?128:0)|(d>=20&&n.buildType?256:0)|(d>=23&&n.isRoomInviteHidden?512:0);e.uint.encode(o,c),n.roomType&&j.encode(o,n.roomType),d>=20&&n.buildType&&Bt.encode(o,n.buildType)},decode(o){const n=e.uint.decode(o);return{roomType:1&n?j.decode(o):0,isExperimental:!!(2&n),isJoiningDisabled:!!(4&n),isAppendingDisabled:!!(8&n),isCallingDisabled:!!(16&n),isMembershipEventsDisabled:!!(32&n),isAttachmentsDisabled:d>=19&&!!(64&n),isLinksDisabled:d>=19&&!!(128&n),buildType:d>=20&&256&n?Bt.decode(o):null,isRoomInviteHidden:d>=23&&!!(512&n)}}},U=e.frame(H),J=e.frame(O),G={preencode(d,o){U.preencode(d,o.abi),J.preencode(d,o.settings),e.uint.preencode(d,o.creationTime)},encode(d,o){U.encode(d,o.abi),J.encode(d,o.settings),e.uint.encode(d,o.creationTime)},decode:d=>({abi:U.decode(d),settings:J.decode(d),creationTime:e.uint.decode(d)})},Q={preencode(d,o){e.fixed32.preencode(d,o.seed)},encode(d,o){e.fixed32.encode(d,o.seed)},decode:d=>({seed:e.fixed32.decode(d)})},W={preencode(d,o){c.preencode(d,o.mailboxKeyPair),t.preencode(d,o.discoveryKeyPair),e.fixed32.preencode(d,o.wakeupTopic),e.fixed32.preencode(d,o.swarmTopic)},encode(d,o){c.encode(d,o.mailboxKeyPair),t.encode(d,o.discoveryKeyPair),e.fixed32.encode(d,o.wakeupTopic),e.fixed32.encode(d,o.swarmTopic)},decode:d=>({mailboxKeyPair:c.decode(d),discoveryKeyPair:t.decode(d),wakeupTopic:e.fixed32.decode(d),swarmTopic:e.fixed32.decode(d)})},X=e.array(e.fixed32),Y={preencode(o,n){o.end++,n.title&&e.string.preencode(o,n.title),n.avatar&&Cr.preencode(o,n.avatar),n.description&&e.string.preencode(o,n.description),d>=11&&n.supportedLanguages&&Dr.preencode(o,n.supportedLanguages),d>=13&&n.blindPeers&&X.preencode(o,n.blindPeers)},encode(o,n){const c=(n.title?1:0)|(n.avatar?2:0)|(n.description?4:0)|(d>=11&&n.supportedLanguages?8:0)|(d>=13&&n.blindPeers?16:0);e.uint.encode(o,c),n.title&&e.string.encode(o,n.title),n.avatar&&Cr.encode(o,n.avatar),n.description&&e.string.encode(o,n.description),d>=11&&n.supportedLanguages&&Dr.encode(o,n.supportedLanguages),d>=13&&n.blindPeers&&X.encode(o,n.blindPeers)},decode(o){const n=e.uint.decode(o);return{title:1&n?e.string.decode(o):null,avatar:2&n?Cr.decode(o):null,description:4&n?e.string.decode(o):null,supportedLanguages:d>=11&&8&n?Dr.decode(o):null,blindPeers:d>=13&&16&n?X.decode(o):null}}},Z={preencode(d,o){e.fixed32.preencode(d,o.key)},encode(d,o){e.fixed32.encode(d,o.key)},decode:d=>({key:e.fixed32.decode(d)})},$=e.frame(i),_=e.frame(Z),ee={preencode(e,d){$.preencode(e,d.header),_.preencode(e,d.peer)},encode(e,d){$.encode(e,d.header),_.encode(e,d.peer)},decode:e=>({header:$.decode(e),peer:_.decode(e)})},de=$,oe={preencode(d,o){de.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){de.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:de.decode(d),key:e.fixed32.decode(d)})},ne={preencode(d,o){e.fixed32.preencode(d,o.memberKey),e.buffer.preencode(d,o.proof)},encode(d,o){e.fixed32.encode(d,o.memberKey),e.buffer.encode(d,o.proof)},decode:d=>({memberKey:e.fixed32.decode(d),proof:e.buffer.decode(d)})},ce={preencode(d,o){e.fixed32.preencode(d,o.id),e.buffer.preencode(d,o.response)},encode(d,o){e.fixed32.encode(d,o.id),e.buffer.encode(d,o.response)},decode:d=>({id:e.fixed32.decode(d),response:e.buffer.decode(d)})},te=e.frame(I),re=e.frame(ce),ie={preencode(d,o){e.fixed32.preencode(d,o.key),e.fixed32.preencode(d,o.memberKey),te.preencode(d,o.status),Vr.preencode(d,o.profile),d.end++,o.invitation&&re.preencode(d,o.invitation)},encode(d,o){const n=o.invitation?1:0;e.fixed32.encode(d,o.key),e.fixed32.encode(d,o.memberKey),te.encode(d,o.status),Vr.encode(d,o.profile),e.uint.encode(d,n),o.invitation&&re.encode(d,o.invitation)},decode:d=>({key:e.fixed32.decode(d),memberKey:e.fixed32.decode(d),status:te.decode(d),profile:Vr.decode(d),invitation:1&e.uint.decode(d)?re.decode(d):null})},ae={preencode(d,o){e.uint.preencode(d,o.timestamp),d.end++,o.mailbox&&e.fixed32.preencode(d,o.mailbox),o.displayName&&e.string.preencode(d,o.displayName),o.avatar&&Lr.preencode(d,o.avatar),o.username&&e.string.preencode(d,o.username)},encode(d,o){const n=(o.mailbox?1:0)|(o.displayName?2:0)|(o.avatar?4:0)|(o.username?8:0);e.uint.encode(d,o.timestamp),e.uint.encode(d,n),o.mailbox&&e.fixed32.encode(d,o.mailbox),o.displayName&&e.string.encode(d,o.displayName),o.avatar&&Lr.encode(d,o.avatar),o.username&&e.string.encode(d,o.username)},decode(d){const o=e.uint.decode(d),n=e.uint.decode(d);return{timestamp:o,mailbox:1&n?e.fixed32.decode(d):null,displayName:2&n?e.string.decode(d):null,avatar:4&n?Lr.decode(d):null,username:8&n?e.string.decode(d):null}}},se={preencode(o,n){o.end++,n.swarmKey&&e.fixed32.preencode(o,n.swarmKey),n.name&&e.string.preencode(o,n.name),d>=20&&n.buildType&&Bt.preencode(o,n.buildType)},encode(o,n){const c=(n.swarmKey?1:0)|(n.name?2:0)|(n.isMobile?4:0)|(d>=20&&n.buildType?8:0);e.uint.encode(o,c),n.swarmKey&&e.fixed32.encode(o,n.swarmKey),n.name&&e.string.encode(o,n.name),d>=20&&n.buildType&&Bt.encode(o,n.buildType)},decode(o){const n=e.uint.decode(o);return{swarmKey:1&n?e.fixed32.decode(o):null,name:2&n?e.string.decode(o):null,isMobile:!!(4&n),buildType:d>=20&&8&n?Bt.decode(o):null}}},pe=e.frame(ae),ue={preencode(e,d){pe.preencode(e,d.profile),ne.preencode(e,d.attestation)},encode(e,d){pe.encode(e,d.profile),ne.encode(e,d.attestation)},decode:e=>({profile:pe.decode(e),attestation:ne.decode(e)})},le={preencode(e,d){qr.preencode(e,d.profile),ne.preencode(e,d.attestation)},encode(e,d){qr.encode(e,d.profile),ne.encode(e,d.attestation)},decode:e=>({profile:qr.decode(e),attestation:ne.decode(e)})},fe={preencode(d,o){e.fixed32.preencode(d,o.id),e.buffer.preencode(d,o.data),e.buffer.preencode(d,o.signature)},encode(d,o){e.fixed32.encode(d,o.id),e.buffer.encode(d,o.data),e.buffer.encode(d,o.signature)},decode:d=>({id:e.fixed32.decode(d),data:e.buffer.decode(d),signature:e.buffer.decode(d)})},me={preencode(d,o){e.fixed32.preencode(d,o.devicePublicKey)},encode(d,o){e.fixed32.encode(d,o.devicePublicKey)},decode:d=>({devicePublicKey:e.fixed32.decode(d)})},ye={preencode(d,o){ne.preencode(d,o.privateProfileIdentity),e.buffer.preencode(d,o.deviceProof)},encode(d,o){ne.encode(d,o.privateProfileIdentity),e.buffer.encode(d,o.deviceProof)},decode:d=>({privateProfileIdentity:ne.decode(d),deviceProof:e.buffer.decode(d)})},be=e.frame(le),xe=e.frame(ue),ke=e.frame(me),ve={preencode(n,c){e.fixed32.preencode(n,c.deviceKey),t.preencode(n,c.keyPair),be.preencode(n,c.device),xe.preencode(n,c.member),n.end++,c.identity&&ke.preencode(n,c.identity),d>=27&&c.link&&o.preencode(n,c.link)},encode(n,c){const r=(c.identity?1:0)|(d>=27&&c.link?2:0);e.fixed32.encode(n,c.deviceKey),t.encode(n,c.keyPair),be.encode(n,c.device),xe.encode(n,c.member),e.uint.encode(n,r),c.identity&&ke.encode(n,c.identity),d>=27&&c.link&&o.encode(n,c.link)},decode(n){const c=e.fixed32.decode(n),r=t.decode(n),i=be.decode(n),a=xe.decode(n),s=e.uint.decode(n);return{deviceKey:c,keyPair:r,device:i,member:a,identity:1&s?ke.decode(n):null,link:d>=27&&2&s?o.decode(n):null}}},ge=e.frame(ve),he={preencode(d,o){e.fixed32.preencode(d,o.id),ge.preencode(d,o.request),e.buffer.preencode(d,o.signature)},encode(d,o){e.fixed32.encode(d,o.id),ge.encode(d,o.request),e.buffer.encode(d,o.signature)},decode:d=>({id:e.fixed32.decode(d),request:ge.decode(d),signature:e.buffer.decode(d)})},Ke=be,we=xe,Te={preencode(e,d){Ke.preencode(e,d.device),e.end++,d.member&&we.preencode(e,d.member)},encode(d,o){const n=o.member?1:0;Ke.encode(d,o.device),e.uint.encode(d,n),o.member&&we.encode(d,o.member)},decode:d=>({device:Ke.decode(d),member:1&e.uint.decode(d)?we.decode(d):null})},Ae=e.frame(he),Pe=e.frame(Te),Se={preencode(e,d){e.end++,d.withInvitation&&Ae.preencode(e,d.withInvitation),d.withMemberProof&&Pe.preencode(e,d.withMemberProof)},encode(d,o){const n=(o.withInvitation?1:0)|(o.withMemberProof?2:0);e.uint.encode(d,n),o.withInvitation&&Ae.encode(d,o.withInvitation),o.withMemberProof&&Pe.encode(d,o.withMemberProof)},decode(d){const o=e.uint.decode(d);return{withInvitation:1&o?Ae.decode(d):null,withMemberProof:2&o?Pe.decode(d):null}}},Ie=e.frame(fe),Re=e.frame(ye),Fe={preencode(e,d){Ie.preencode(e,d.signedKeys),e.end++,d.identity&&Re.preencode(e,d.identity)},encode(d,o){const n=o.identity?1:0;Ie.encode(d,o.signedKeys),e.uint.encode(d,n),o.identity&&Re.encode(d,o.identity)},decode:d=>({signedKeys:Ie.decode(d),identity:1&e.uint.decode(d)?Re.decode(d):null})},He={preencode(o,n){o.end++,n.expiration&&e.uint.preencode(o,n.expiration),d>=20&&n.buildType&&Bt.preencode(o,n.buildType)},encode(o,n){const c=(n.expiration?1:0)|(n.requiresConfirmation?2:0)|(n.canModerate?4:0)|(n.canAdmin?8:0)|(d>=20&&n.buildType?16:0);e.uint.encode(o,c),n.expiration&&e.uint.encode(o,n.expiration),d>=20&&n.buildType&&Bt.encode(o,n.buildType)},decode(o){const n=e.uint.decode(o);return{expiration:1&n?e.uint.decode(o):0,requiresConfirmation:!!(2&n),canModerate:!!(4&n),canAdmin:!!(8&n),buildType:d>=20&&16&n?Bt.decode(o):null}}},Me=Ie,Ce=e.frame(He),De={preencode(d,n){e.fixed32.preencode(d,n.id),Me.preencode(d,n.response),Ce.preencode(d,n.metadata),d.end++,n.anchor&&o.preencode(d,n.anchor)},encode(d,n){const c=(n.anchor?1:0)|(n.isActive?2:0);e.fixed32.encode(d,n.id),Me.encode(d,n.response),Ce.encode(d,n.metadata),e.uint.encode(d,c),n.anchor&&o.encode(d,n.anchor)},decode(d){const n=e.fixed32.decode(d),c=Me.decode(d),t=Ce.decode(d),r=e.uint.decode(d);return{id:n,response:c,metadata:t,anchor:1&r?o.decode(d):null,isActive:!!(2&r)}}},Ve=$,Le=e.frame(De),qe={preencode(e,d){Ve.preencode(e,d.header),Le.preencode(e,d.invitation)},encode(e,d){Ve.encode(e,d.header),Le.encode(e,d.invitation)},decode:e=>({header:Ve.decode(e),invitation:Le.decode(e)})},Ee=$,Be={preencode(d,o){Ee.preencode(d,o.header),e.fixed32.preencode(d,o.id)},encode(d,o){Ee.encode(d,o.header),e.fixed32.encode(d,o.id)},decode:d=>({header:Ee.decode(d),id:e.fixed32.decode(d)})},ze={preencode(d,n){e.fixed32.preencode(d,n.mailbox),e.fixed32.preencode(d,n.invitationSeed),o.preencode(d,n.anchor)},encode(d,n){e.fixed32.encode(d,n.mailbox),e.fixed32.encode(d,n.invitationSeed),o.encode(d,n.anchor)},decode:d=>({mailbox:e.fixed32.decode(d),invitationSeed:e.fixed32.decode(d),anchor:o.decode(d)})},Ne={preencode(d,n){e.fixed32.preencode(d,n.mailbox),e.fixed32.preencode(d,n.invitationSeed),o.preencode(d,n.anchor),e.fixed32.preencode(d,n.identityPublicKey)},encode(d,n){e.fixed32.encode(d,n.mailbox),e.fixed32.encode(d,n.invitationSeed),o.encode(d,n.anchor),e.fixed32.encode(d,n.identityPublicKey)},decode:d=>({mailbox:e.fixed32.decode(d),invitationSeed:e.fixed32.decode(d),anchor:o.decode(d),identityPublicKey:e.fixed32.decode(d)})},je={preencode(d,o){e.fixed32.preencode(d,o.mailbox)},encode(d,o){e.fixed32.encode(d,o.mailbox)},decode:d=>({mailbox:e.fixed32.decode(d)})},Oe=e.frame(ze),Ue=e.frame(Ne),Je=e.frame(je),Ge=e.array(e.ipv4Address),Qe={preencode(e,o){e.end++,o.room&&Oe.preencode(e,o.room),o.identity&&Ue.preencode(e,o.identity),o.contact&&Je.preencode(e,o.contact),d>=6&&o.readonly&&Er.preencode(e,o.readonly),d>=11&&o.additionalNodes&&Ge.preencode(e,o.additionalNodes),d>=20&&o.buildType&&Bt.preencode(e,o.buildType),d>=27&&o["readonly-v2"]&&Br.preencode(e,o["readonly-v2"])},encode(o,n){const c=(n.room?1:0)|(n.identity?2:0)|(n.contact?4:0)|(d>=6&&n.readonly?8:0)|(d>=11&&n.additionalNodes?16:0)|(d>=20&&n.buildType?32:0)|(d>=27&&n["readonly-v2"]?64:0);e.uint.encode(o,c),n.room&&Oe.encode(o,n.room),n.identity&&Ue.encode(o,n.identity),n.contact&&Je.encode(o,n.contact),d>=6&&n.readonly&&Er.encode(o,n.readonly),d>=11&&n.additionalNodes&&Ge.encode(o,n.additionalNodes),d>=20&&n.buildType&&Bt.encode(o,n.buildType),d>=27&&n["readonly-v2"]&&Br.encode(o,n["readonly-v2"])},decode(o){const n=e.uint.decode(o);return{room:1&n?Oe.decode(o):null,identity:2&n?Ue.decode(o):null,contact:4&n?Je.decode(o):null,readonly:d>=6&&8&n?Er.decode(o):null,additionalNodes:d>=11&&16&n?Ge.decode(o):null,buildType:d>=20&&32&n?Bt.decode(o):null,"readonly-v2":d>=27&&64&n?Br.decode(o):null}}},We=$,Xe={preencode(d,o){We.preencode(d,o.header),e.buffer.preencode(d,o.blindRequest)},encode(d,o){We.encode(d,o.header),e.buffer.encode(d,o.blindRequest)},decode:d=>({header:We.decode(d),blindRequest:e.buffer.decode(d)})},Ye=$,Ze={preencode(o,n){Ye.preencode(o,n.header),o.end++,n.profile&&zr.preencode(o,n.profile),d>=24&&n.key&&e.fixed32.preencode(o,n.key)},encode(o,n){const c=(n.profile?1:0)|(d>=24&&n.key?2:0);Ye.encode(o,n.header),e.uint.encode(o,c),n.profile&&zr.encode(o,n.profile),d>=24&&n.key&&e.fixed32.encode(o,n.key)},decode(o){const n=Ye.decode(o),c=e.uint.decode(o);return{header:n,profile:1&c?zr.decode(o):null,key:d>=24&&2&c?e.fixed32.decode(o):null}}},$e={preencode(e,d){},encode(e,d){},decode:e=>({})},_e=$e,ed=ge,dd={preencode(d,o){e.fixed32.preencode(d,o.deviceKey),e.fixed32.preencode(d,o.id),ed.preencode(d,o.request)},encode(d,o){e.fixed32.encode(d,o.deviceKey),e.fixed32.encode(d,o.id),ed.encode(d,o.request)},decode:d=>({deviceKey:e.fixed32.decode(d),id:e.fixed32.decode(d),request:ed.decode(d)})},od=$,nd=Re,cd={preencode(d,o){od.preencode(d,o.header),e.fixed32.preencode(d,o.deviceKey),d.end++,o.identity&&nd.preencode(d,o.identity)},encode(d,o){const n=o.identity?1:0;od.encode(d,o.header),e.fixed32.encode(d,o.deviceKey),e.uint.encode(d,n),o.identity&&nd.encode(d,o.identity)},decode:d=>({header:od.decode(d),deviceKey:e.fixed32.decode(d),identity:1&e.uint.decode(d)?nd.decode(d):null})},td=$,rd={preencode(d,o){td.preencode(d,o.header),e.fixed32.preencode(d,o.deviceKey)},encode(d,o){td.encode(d,o.header),e.fixed32.encode(d,o.deviceKey)},decode:d=>({header:td.decode(d),deviceKey:e.fixed32.decode(d)})},id=e.frame(R),ad=pe,sd={preencode(d,o){e.fixed32.preencode(d,o.key),id.preencode(d,o.status),ad.preencode(d,o.profile)},encode(d,o){e.fixed32.encode(d,o.key),id.encode(d,o.status),ad.encode(d,o.profile)},decode:d=>({key:e.fixed32.decode(d),status:id.decode(d),profile:ad.decode(d)})},pd=id,ud=pe,ld={preencode(d,o){e.fixed32.preencode(d,o.key),pd.preencode(d,o.status),ud.preencode(d,o.profile),d.end++,o.proofs&&Nr.preencode(d,o.proofs)},encode(d,o){const n=o.proofs?1:0;e.fixed32.encode(d,o.key),pd.encode(d,o.status),ud.encode(d,o.profile),e.uint.encode(d,n),o.proofs&&Nr.encode(d,o.proofs)},decode:d=>({key:e.fixed32.decode(d),status:pd.decode(d),profile:ud.decode(d),proofs:1&e.uint.decode(d)?Nr.decode(d):null})},fd={preencode(d,o){e.fixed32.preencode(d,o.key),d.end++,o.profileAttestation&&e.buffer.preencode(d,o.profileAttestation),o.latestReceipt&&e.buffer.preencode(d,o.latestReceipt)},encode(d,o){const n=(o.profileAttestation?1:0)|(o.latestReceipt?2:0);e.fixed32.encode(d,o.key),e.uint.encode(d,n),o.profileAttestation&&e.buffer.encode(d,o.profileAttestation),o.latestReceipt&&e.buffer.encode(d,o.latestReceipt)},decode(d){const o=e.fixed32.decode(d),n=e.uint.decode(d);return{key:o,profileAttestation:1&n?e.buffer.decode(d):null,latestReceipt:2&n?e.buffer.decode(d):null}}},md=$,yd=xe,bd={preencode(e,d){md.preencode(e,d.header),yd.preencode(e,d.member)},encode(e,d){md.encode(e,d.header),yd.encode(e,d.member)},decode:e=>({header:md.decode(e),member:yd.decode(e)})},xd=$,kd=e.frame(F),vd={preencode(d,o){xd.preencode(d,o.header),e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.key),kd.preencode(d,o.status)},encode(d,o){xd.encode(d,o.header),e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.key),kd.encode(d,o.status)},decode:d=>({header:xd.decode(d),memberKey:e.fixed32.decode(d),key:e.uint.decode(d),status:kd.decode(d)})},gd=$,hd={preencode(d,o){gd.preencode(d,o.header),e.fixed32.preencode(d,o.key),d.end++},encode(d,o){const n=(o.isModerator?1:0)|(o.isAdmin?2:0);gd.encode(d,o.header),e.fixed32.encode(d,o.key),e.uint.encode(d,n)},decode(d){const o=gd.decode(d),n=e.fixed32.decode(d),c=e.uint.decode(d);return{header:o,key:n,isModerator:!!(1&c),isAdmin:!!(2&c)}}},Kd=$,wd={preencode(d,o){Kd.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){Kd.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:Kd.decode(d),key:e.fixed32.decode(d)})},Td={preencode(d,o){e.fixed32.preencode(d,o.key),e.uint.preencode(d,o.mentions)},encode(d,o){e.fixed32.encode(d,o.key),e.uint.encode(d,o.mentions)},decode:d=>({key:e.fixed32.decode(d),mentions:e.uint.decode(d)})},Ad={preencode(d,o){d.end++,o.memberKey&&e.fixed32.preencode(d,o.memberKey)},encode(d,o){const n=o.memberKey?1:0;e.uint.encode(d,n),o.memberKey&&e.fixed32.encode(d,o.memberKey)},decode:d=>({memberKey:1&e.uint.decode(d)?e.fixed32.decode(d):null})},Pd=Ad,Sd={preencode(d,o){d.end++,o.from&&e.string.preencode(d,o.from),o.to&&e.string.preencode(d,o.to)},encode(d,o){const n=(o.from?1:0)|(o.to?2:0);e.uint.encode(d,n),o.from&&e.string.encode(d,o.from),o.to&&e.string.encode(d,o.to)},decode(d){const o=e.uint.decode(d);return{from:1&o?e.string.decode(d):null,to:2&o?e.string.decode(d):null}}},Id=e.frame(Ad),Rd=e.frame(Pd),Fd=e.frame(Sd),Hd={preencode(o,n){const c=(n.memberJoined?1:0)|(n.memberLeft?2:0)|(n.titleChanged?4:0)|(n.callStarted?8:0)|(n.callHangup?16:0)|(n.callMissed?32:0)|(d>=3&&n.roomAvatarChanged?64:0)|(d>=3&&n.invitationCreated?128:0)|(d>=3&&n.memberRemoved?256:0)|(d>=18&&n.locationShared?512:0);e.uint.preencode(o,c),n.memberJoined&&Id.preencode(o,n.memberJoined),n.memberLeft&&Rd.preencode(o,n.memberLeft),n.titleChanged&&Fd.preencode(o,n.titleChanged),d>=3&&n.memberRemoved&&jr.preencode(o,n.memberRemoved),d>=18&&n.locationShared&&Or.preencode(o,n.locationShared)},encode(o,n){const c=(n.memberJoined?1:0)|(n.memberLeft?2:0)|(n.titleChanged?4:0)|(n.callStarted?8:0)|(n.callHangup?16:0)|(n.callMissed?32:0)|(d>=3&&n.roomAvatarChanged?64:0)|(d>=3&&n.invitationCreated?128:0)|(d>=3&&n.memberRemoved?256:0)|(d>=18&&n.locationShared?512:0);e.uint.encode(o,c),n.memberJoined&&Id.encode(o,n.memberJoined),n.memberLeft&&Rd.encode(o,n.memberLeft),n.titleChanged&&Fd.encode(o,n.titleChanged),d>=3&&n.memberRemoved&&jr.encode(o,n.memberRemoved),d>=18&&n.locationShared&&Or.encode(o,n.locationShared)},decode(o){const n=e.uint.decode(o);return{memberJoined:1&n?Id.decode(o):null,memberLeft:2&n?Rd.decode(o):null,titleChanged:4&n?Fd.decode(o):null,callStarted:!!(8&n),callHangup:!!(16&n),callMissed:!!(32&n),roomAvatarChanged:d>=3&&!!(64&n),invitationCreated:d>=3&&!!(128&n),memberRemoved:d>=3&&256&n?jr.decode(o):null,locationShared:d>=18&&512&n?Or.decode(o):null}}},Md={preencode(e,o){e.end++,d>=18&&o.locationShared&&Ur.preencode(e,o.locationShared)},encode(o,n){const c=(n.callStarted?1:0)|(n.callHangup?2:0)|(n.callMissed?4:0)|(d>=18&&n.locationShared?8:0);e.uint.encode(o,c),d>=18&&n.locationShared&&Ur.encode(o,n.locationShared)},decode(o){const n=e.uint.decode(o);return{callStarted:!!(1&n),callHangup:!!(2&n),callMissed:!!(4&n),locationShared:d>=18&&8&n?Ur.decode(o):null}}},Cd={preencode(d,o){e.uint.preencode(d,o.start),e.uint.preencode(d,o.length)},encode(d,o){e.uint.encode(d,o.start),e.uint.encode(d,o.length)},decode:d=>({start:e.uint.decode(d),length:e.uint.decode(d)})},Dd=e.frame(Cd),Vd={preencode(d,o){Dd.preencode(d,o.range),e.string.preencode(d,o.content)},encode(d,o){Dd.encode(d,o.range),e.string.encode(d,o.content)},decode:d=>({range:Dd.decode(d),content:e.string.decode(d)})},Ld=Dd,qd={preencode(d,o){Ld.preencode(d,o.range),e.fixed32.preencode(d,o.memberKey)},encode(d,o){Ld.encode(d,o.range),e.fixed32.encode(d,o.memberKey)},decode:d=>({range:Ld.decode(d),memberKey:e.fixed32.decode(d)})},Ed=g,Bd=e.array(e.uint),zd={preencode(o,n){o.end++,n.title&&e.string.preencode(o,n.title),n.description&&e.string.preencode(o,n.description),n.file&&Ed.preencode(o,n.file),d>=7&&n.files&&Bd.preencode(o,n.files)},encode(o,n){const c=(n.title?1:0)|(n.description?2:0)|(n.file?4:0)|(d>=7&&n.files?8:0);e.uint.encode(o,c),n.title&&e.string.encode(o,n.title),n.description&&e.string.encode(o,n.description),n.file&&Ed.encode(o,n.file),d>=7&&n.files&&Bd.encode(o,n.files)},decode(o){const n=e.uint.decode(o);return{title:1&n?e.string.decode(o):null,description:2&n?e.string.decode(o):null,file:4&n?Ed.decode(o):null,files:d>=7&&8&n?Bd.decode(o):null}}},Nd=Dd,jd=e.frame(zd),Od={preencode(d,o){Nd.preencode(d,o.range),e.string.preencode(d,o.url),d.end++,o.preview&&jd.preencode(d,o.preview)},encode(d,o){const n=o.preview?1:0;Nd.encode(d,o.range),e.string.encode(d,o.url),e.uint.encode(d,n),o.preview&&jd.encode(d,o.preview)},decode:d=>({range:Nd.decode(d),url:e.string.decode(d),preview:1&e.uint.decode(d)?jd.decode(d):null})},Ud=e.array(e.frame(qd)),Jd=e.array(e.frame(Od)),Gd=Jd,Qd=e.array(e.frame(Cd)),Wd=Qd,Xd=Qd,Yd=e.array(e.frame(Vd)),Zd=Qd,$d=Qd,_d={preencode(o,n){const c=(n.mention?1:0)|(n.httpLink?2:0)|(n.pearLink?4:0)|(n.bold?8:0)|(n.italic?16:0)|(n.code?32:0)|(n.emoji?64:0)|(n.codeBlock?128:0)|(n.strike?256:0)|(d>=11&&n.translation?512:0);e.uint.preencode(o,c),n.mention&&Ud.preencode(o,n.mention),n.httpLink&&Jd.preencode(o,n.httpLink),n.pearLink&&Gd.preencode(o,n.pearLink),n.bold&&Qd.preencode(o,n.bold),n.italic&&Wd.preencode(o,n.italic),n.code&&Xd.preencode(o,n.code),n.emoji&&Yd.preencode(o,n.emoji),n.codeBlock&&Zd.preencode(o,n.codeBlock),n.strike&&$d.preencode(o,n.strike),d>=11&&n.translation&&Jr.preencode(o,n.translation)},encode(o,n){const c=(n.mention?1:0)|(n.httpLink?2:0)|(n.pearLink?4:0)|(n.bold?8:0)|(n.italic?16:0)|(n.code?32:0)|(n.emoji?64:0)|(n.codeBlock?128:0)|(n.strike?256:0)|(d>=11&&n.translation?512:0);e.uint.encode(o,c),n.mention&&Ud.encode(o,n.mention),n.httpLink&&Jd.encode(o,n.httpLink),n.pearLink&&Gd.encode(o,n.pearLink),n.bold&&Qd.encode(o,n.bold),n.italic&&Wd.encode(o,n.italic),n.code&&Xd.encode(o,n.code),n.emoji&&Yd.encode(o,n.emoji),n.codeBlock&&Zd.encode(o,n.codeBlock),n.strike&&$d.encode(o,n.strike),d>=11&&n.translation&&Jr.encode(o,n.translation)},decode(o){const n=e.uint.decode(o);return{mention:1&n?Ud.decode(o):null,httpLink:2&n?Jd.decode(o):null,pearLink:4&n?Gd.decode(o):null,bold:8&n?Qd.decode(o):null,italic:16&n?Wd.decode(o):null,code:32&n?Xd.decode(o):null,emoji:64&n?Yd.decode(o):null,codeBlock:128&n?Zd.decode(o):null,strike:256&n?$d.decode(o):null,translation:d>=11&&512&n?Jr.decode(o):null}}},eo=e.array(e.frame(v)),oo=e.frame(_d),no=e.frame(Md),co={preencode(d,o){d.end++,o.text&&e.string.preencode(d,o.text),o.files&&eo.preencode(d,o.files),o.display&&oo.preencode(d,o.display),o.replyTo&&n.preencode(d,o.replyTo),o.parent&&n.preencode(d,o.parent),o.event&&no.preencode(d,o.event)},encode(o,c){const t=(c.text?1:0)|(c.files?2:0)|(c.display?4:0)|(c.replyTo?8:0)|(c.parent?16:0)|(c.event?32:0)|(d>=18&&c.forwarded?64:0);e.uint.encode(o,t),c.text&&e.string.encode(o,c.text),c.files&&eo.encode(o,c.files),c.display&&oo.encode(o,c.display),c.replyTo&&n.encode(o,c.replyTo),c.parent&&n.encode(o,c.parent),c.event&&no.encode(o,c.event)},decode(o){const c=e.uint.decode(o);return{text:1&c?e.string.decode(o):null,files:2&c?eo.decode(o):null,display:4&c?oo.decode(o):null,replyTo:8&c?n.decode(o):null,parent:16&c?n.decode(o):null,event:32&c?no.decode(o):null,forwarded:d>=18&&!!(64&c)}}},to=Bd,ro=oo,io={preencode(d,o){d.end++,o.text&&e.string.preencode(d,o.text),o.files&&to.preencode(d,o.files),o.display&&ro.preencode(d,o.display),o.replyTo&&n.preencode(d,o.replyTo),o.parent&&n.preencode(d,o.parent)},encode(o,c){const t=(c.text?1:0)|(c.files?2:0)|(c.display?4:0)|(c.replyTo?8:0)|(c.parent?16:0)|(d>=18&&c.forwarded?32:0);e.uint.encode(o,t),c.text&&e.string.encode(o,c.text),c.files&&to.encode(o,c.files),c.display&&ro.encode(o,c.display),c.replyTo&&n.encode(o,c.replyTo),c.parent&&n.encode(o,c.parent)},decode(o){const c=e.uint.decode(o);return{text:1&c?e.string.decode(o):null,files:2&c?to.decode(o):null,display:4&c?ro.decode(o):null,replyTo:8&c?n.decode(o):null,parent:16&c?n.decode(o):null,forwarded:d>=18&&!!(32&c)}}},ao=eo,so=oo,po={preencode(d,o){d.end++,o.text&&e.string.preencode(d,o.text),o.files&&ao.preencode(d,o.files),o.display&&so.preencode(d,o.display),o.replyTo&&n.preencode(d,o.replyTo),o.parent&&n.preencode(d,o.parent)},encode(o,c){const t=(c.text?1:0)|(c.files?2:0)|(c.display?4:0)|(c.replyTo?8:0)|(c.parent?16:0)|(d>=18&&c.forwarded?32:0);e.uint.encode(o,t),c.text&&e.string.encode(o,c.text),c.files&&ao.encode(o,c.files),c.display&&so.encode(o,c.display),c.replyTo&&n.encode(o,c.replyTo),c.parent&&n.encode(o,c.parent)},decode(o){const c=e.uint.decode(o);return{text:1&c?e.string.decode(o):null,files:2&c?ao.decode(o):null,display:4&c?so.decode(o):null,replyTo:8&c?n.decode(o):null,parent:16&c?n.decode(o):null,forwarded:d>=18&&!!(32&c)}}},uo={preencode(e,d){e.end++},encode(d,o){const n=(o.isEdited?1:0)|(o.isDeleted?2:0)|(o.isPinned?4:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isEdited:!!(1&o),isDeleted:!!(2&o),isPinned:!!(4&o)}}},lo={preencode(d,o){e.uint.preencode(d,o.thread),e.uint.preencode(d,o.index)},encode(d,o){e.uint.encode(d,o.thread),e.uint.encode(d,o.index)},decode:d=>({thread:e.uint.decode(d),index:e.uint.decode(d)})},fo=e.frame(z),mo={preencode(d,o){e.uint.preencode(d,o.id),e.uint.preencode(d,o.count),d.end++,o.parent&&n.preencode(d,o.parent),o.stats&&fo.preencode(d,o.stats)},encode(d,o){const c=(o.parent?1:0)|(o.stats?2:0);e.uint.encode(d,o.id),e.uint.encode(d,o.count),e.uint.encode(d,c),o.parent&&n.encode(d,o.parent),o.stats&&fo.encode(d,o.stats)},decode(d){const o=e.uint.decode(d),c=e.uint.decode(d),t=e.uint.decode(d);return{id:o,count:c,parent:1&t?n.decode(d):null,stats:2&t?fo.decode(d):null}}},yo=e.frame(uo),bo=e.frame(io),xo=e.frame(Hd),ko={preencode(d,o){lo.preencode(d,o.id),n.preencode(d,o.oplog),e.uint.preencode(d,o.clock),e.uint.preencode(d,o.timestamp),d.end++,o.editedAt&&e.uint.preencode(d,o.editedAt),yo.preencode(d,o.status),o.message&&bo.preencode(d,o.message),o.event&&xo.preencode(d,o.event)},encode(d,o){const c=(o.editedAt?1:0)|(o.message?2:0)|(o.event?4:0);lo.encode(d,o.id),n.encode(d,o.oplog),e.uint.encode(d,o.clock),e.uint.encode(d,o.timestamp),e.uint.encode(d,c),o.editedAt&&e.uint.encode(d,o.editedAt),yo.encode(d,o.status),o.message&&bo.encode(d,o.message),o.event&&xo.encode(d,o.event)},decode(d){const o=lo.decode(d),c=n.decode(d),t=e.uint.decode(d),r=e.uint.decode(d),i=e.uint.decode(d);return{id:o,oplog:c,clock:t,timestamp:r,editedAt:1&i?e.uint.decode(d):0,status:yo.decode(d),message:2&i?bo.decode(d):null,event:4&i?xo.decode(d):null}}},vo=yo,go=e.frame(po),ho=xo,Ko={preencode(d,o){lo.preencode(d,o.id),n.preencode(d,o.oplog),e.uint.preencode(d,o.clock),e.uint.preencode(d,o.timestamp),d.end++,o.editedAt&&e.uint.preencode(d,o.editedAt),vo.preencode(d,o.status),o.message&&go.preencode(d,o.message),o.event&&ho.preencode(d,o.event)},encode(d,o){const c=(o.editedAt?1:0)|(o.message?2:0)|(o.event?4:0);lo.encode(d,o.id),n.encode(d,o.oplog),e.uint.encode(d,o.clock),e.uint.encode(d,o.timestamp),e.uint.encode(d,c),o.editedAt&&e.uint.encode(d,o.editedAt),vo.encode(d,o.status),o.message&&go.encode(d,o.message),o.event&&ho.encode(d,o.event)},decode(d){const o=lo.decode(d),c=n.decode(d),t=e.uint.decode(d),r=e.uint.decode(d),i=e.uint.decode(d);return{id:o,oplog:c,clock:t,timestamp:r,editedAt:1&i?e.uint.decode(d):0,status:vo.decode(d),message:2&i?go.decode(d):null,event:4&i?ho.decode(d):null}}},wo=$,To=e.frame(co),Ao={preencode(e,d){wo.preencode(e,d.header),To.preencode(e,d.message)},encode(e,d){wo.encode(e,d.header),To.encode(e,d.message)},decode:e=>({header:wo.decode(e),message:To.decode(e)})},Po=$,So={preencode(e,d){Po.preencode(e,d.header),n.preencode(e,d.oplog)},encode(e,d){Po.encode(e,d.header),n.encode(e,d.oplog)},decode:e=>({header:Po.decode(e),oplog:n.decode(e)})},Io=$,Ro=To,Fo={preencode(e,d){Io.preencode(e,d.header),n.preencode(e,d.oplog),Ro.preencode(e,d.message)},encode(e,d){Io.encode(e,d.header),n.encode(e,d.oplog),Ro.encode(e,d.message)},decode:e=>({header:Io.decode(e),oplog:n.decode(e),message:Ro.decode(e)})},Ho=$,Mo={preencode(e,d){Ho.preencode(e,d.header),n.preencode(e,d.oplog),e.end++},encode(d,o){const c=o.isPinned?1:0;Ho.encode(d,o.header),n.encode(d,o.oplog),e.uint.encode(d,c)},decode:d=>({header:Ho.decode(d),oplog:n.decode(d),isPinned:!!(1&e.uint.decode(d))})},Co={preencode(d,o){lo.preencode(d,o.id),e.fixed32.preencode(d,o.sender),e.uint.preencode(d,o.clock),e.string.preencode(d,o.reaction)},encode(d,o){lo.encode(d,o.id),e.fixed32.encode(d,o.sender),e.uint.encode(d,o.clock),e.string.encode(d,o.reaction)},decode:d=>({id:lo.decode(d),sender:e.fixed32.decode(d),clock:e.uint.decode(d),reaction:e.string.decode(d)})},Do={preencode(d,o){e.string.preencode(d,o.text),e.uint.preencode(d,o.count)},encode(d,o){e.string.encode(d,o.text),e.uint.encode(d,o.count)},decode:d=>({text:e.string.decode(d),count:e.uint.decode(d)})},Vo=e.array(e.frame(Do)),Lo={preencode(o,n){lo.preencode(o,n.id),e.uint.preencode(o,n.total),Vo.preencode(o,n.reactions),o.end++,d>=11&&n.editedAt&&e.uint.preencode(o,n.editedAt)},encode(o,n){const c=d>=11&&n.editedAt?1:0;lo.encode(o,n.id),e.uint.encode(o,n.total),Vo.encode(o,n.reactions),e.uint.encode(o,c),d>=11&&n.editedAt&&e.uint.encode(o,n.editedAt)},decode(o){const n=lo.decode(o),c=e.uint.decode(o),t=Vo.decode(o),r=o.start<o.end?e.uint.decode(o):0;return{id:n,total:c,reactions:t,editedAt:d>=11&&1&r?e.uint.decode(o):0}}},qo=$,Eo={preencode(d,o){qo.preencode(d,o.header),n.preencode(d,o.oplog),e.string.preencode(d,o.reaction)},encode(d,o){qo.encode(d,o.header),n.encode(d,o.oplog),e.string.encode(d,o.reaction)},decode:d=>({header:qo.decode(d),oplog:n.decode(d),reaction:e.string.decode(d)})},Bo=$,zo={preencode(d,o){Bo.preencode(d,o.header),n.preencode(d,o.oplog),e.string.preencode(d,o.reaction)},encode(d,o){Bo.encode(d,o.header),n.encode(d,o.oplog),e.string.encode(d,o.reaction)},decode:d=>({header:Bo.decode(d),oplog:n.decode(d),reaction:e.string.decode(d)})},No=$,jo=e.frame(Y),Oo={preencode(d,o){No.preencode(d,o.header),e.uint.preencode(d,o.key),jo.preencode(d,o.config)},encode(d,o){No.encode(d,o.header),e.uint.encode(d,o.key),jo.encode(d,o.config)},decode:d=>({header:No.decode(d),key:e.uint.decode(d),config:jo.decode(d)})},Uo={preencode(d,o){e.fixed32.preencode(d,o.memberKey),e.string.preencode(d,o.displayName),d.end++,o.avatar&&Gr.preencode(d,o.avatar)},encode(d,o){const n=o.avatar?1:0;e.fixed32.encode(d,o.memberKey),e.string.encode(d,o.displayName),e.uint.encode(d,n),o.avatar&&Gr.encode(d,o.avatar)},decode:d=>({memberKey:e.fixed32.decode(d),displayName:e.string.decode(d),avatar:1&e.uint.decode(d)?Gr.decode(d):null})},Jo={preencode(d,o){e.fixed32.preencode(d,o.key),d.end++,o.username&&e.string.preencode(d,o.username)},encode(d,o){const n=o.username?1:0;e.fixed32.encode(d,o.key),e.uint.encode(d,n),o.username&&e.string.encode(d,o.username)},decode:d=>({key:e.fixed32.decode(d),username:1&e.uint.decode(d)?e.string.decode(d):null})},Go=e.frame(Jo),Qo={preencode(d,o){e.fixed32.preencode(d,o.publicKey),d.end++,o.discoveryCoreKey&&e.fixed32.preencode(d,o.discoveryCoreKey),o.userRegistry&&Go.preencode(d,o.userRegistry)},encode(d,o){const n=(o.discoveryCoreKey?1:0)|(o.userRegistry?2:0);e.fixed32.encode(d,o.publicKey),e.uint.encode(d,n),o.discoveryCoreKey&&e.fixed32.encode(d,o.discoveryCoreKey),o.userRegistry&&Go.encode(d,o.userRegistry)},decode(d){const o=e.fixed32.decode(d),n=e.uint.decode(d);return{publicKey:o,discoveryCoreKey:1&n?e.fixed32.decode(d):null,userRegistry:2&n?Go.decode(d):null}}},Wo=$,Xo=e.frame(G),Yo=e.frame(Q),Zo=jo,$o=e.frame(Qo),_o=be,en=e.array(e.frame(ue)),dn={preencode(e,d){Wo.preencode(e,d.header),Xo.preencode(e,d.digest),Yo.preencode(e,d.capabilities),e.end++,d.config&&Zo.preencode(e,d.config),d.identity&&$o.preencode(e,d.identity),d.bootstrapDevice&&_o.preencode(e,d.bootstrapDevice),d.initialMembers&&en.preencode(e,d.initialMembers)},encode(d,o){const n=(o.config?1:0)|(o.identity?2:0)|(o.bootstrapDevice?4:0)|(o.initialMembers?8:0);Wo.encode(d,o.header),Xo.encode(d,o.digest),Yo.encode(d,o.capabilities),e.uint.encode(d,n),o.config&&Zo.encode(d,o.config),o.identity&&$o.encode(d,o.identity),o.bootstrapDevice&&_o.encode(d,o.bootstrapDevice),o.initialMembers&&en.encode(d,o.initialMembers)},decode(d){const o=Wo.decode(d),n=Xo.decode(d),c=Yo.decode(d),t=e.uint.decode(d);return{header:o,digest:n,capabilities:c,config:1&t?Zo.decode(d):null,identity:2&t?$o.decode(d):null,bootstrapDevice:4&t?_o.decode(d):null,initialMembers:8&t?en.decode(d):null}}},on=$,nn={preencode(d,o){on.preencode(d,o.header),e.uint.preencode(d,o.version)},encode(d,o){on.encode(d,o.header),e.uint.encode(d,o.version)},decode:d=>({header:on.decode(d),version:e.uint.decode(d)})},cn=$,tn=J,rn={preencode(d,o){cn.preencode(d,o.header),e.uint.preencode(d,o.key),tn.preencode(d,o.settings)},encode(d,o){cn.encode(d,o.header),e.uint.encode(d,o.key),tn.encode(d,o.settings)},decode:d=>({header:cn.decode(d),key:e.uint.decode(d),settings:tn.decode(d)})},an={preencode(o,n){e.fixed32.preencode(o,n.memberKey),Qr.preencode(o,n.status),o.end++,n.mailbox&&e.fixed32.preencode(o,n.mailbox),n.roomKey&&e.fixed32.preencode(o,n.roomKey),d>=22&&n.contactInfo&&Wr.preencode(o,n.contactInfo),d>=22&&n.version&&e.uint.preencode(o,n.version),d>=24&&n.alias&&e.string.preencode(o,n.alias)},encode(o,n){const c=(n.mailbox?1:0)|(n.roomKey?2:0)|(d>=22&&n.contactInfo?4:0)|(d>=22&&n.version?8:0)|(d>=24&&n.alias?16:0);e.fixed32.encode(o,n.memberKey),Qr.encode(o,n.status),e.uint.encode(o,c),n.mailbox&&e.fixed32.encode(o,n.mailbox),n.roomKey&&e.fixed32.encode(o,n.roomKey),d>=22&&n.contactInfo&&Wr.encode(o,n.contactInfo),d>=22&&n.version&&e.uint.encode(o,n.version),d>=24&&n.alias&&e.string.encode(o,n.alias)},decode(o){const n=e.fixed32.decode(o),c=Qr.decode(o),t=e.uint.decode(o);return{memberKey:n,status:c,mailbox:1&t?e.fixed32.decode(o):null,roomKey:2&t?e.fixed32.decode(o):null,contactInfo:d>=22&&4&t?Wr.decode(o):null,version:d>=22&&8&t?e.uint.decode(o):0,alias:d>=24&&16&t?e.string.decode(o):null}}},sn={preencode(d,n){e.fixed32.preencode(d,n.roomKey),e.buffer.preencode(d,n.encryptionKey),e.fixed32.preencode(d,n.seed),o.preencode(d,n.initiator),e.fixed32.preencode(d,n.fastForwardTo)},encode(d,n){e.fixed32.encode(d,n.roomKey),e.buffer.encode(d,n.encryptionKey),e.fixed32.encode(d,n.seed),o.encode(d,n.initiator),e.fixed32.encode(d,n.fastForwardTo)},decode:d=>({roomKey:e.fixed32.decode(d),encryptionKey:e.buffer.decode(d),seed:e.fixed32.decode(d),initiator:o.decode(d),fastForwardTo:e.fixed32.decode(d)})},pn=e.array(e.frame(sn)),un=X,ln={preencode(e,d){pn.preencode(e,d.sharedRooms),un.preencode(e,d.blockedContacts)},encode(e,d){pn.encode(e,d.sharedRooms),un.encode(e,d.blockedContacts)},decode:e=>({sharedRooms:pn.decode(e),blockedContacts:un.decode(e)})},fn=$o,mn={preencode(e,d){fn.preencode(e,d.identity)},encode(e,d){fn.encode(e,d.identity)},decode:e=>({identity:fn.decode(e)})},yn={preencode(d,o){e.uint.preencode(d,o.rooms),e.uint.preencode(d,o.contacts)},encode(d,o){e.uint.encode(d,o.rooms),e.uint.encode(d,o.contacts)},decode:d=>({rooms:e.uint.decode(d),contacts:e.uint.decode(d)})},bn={preencode(d,o){e.uint.preencode(d,o.rooms),e.uint.preencode(d,o.contactRequests)},encode(d,o){e.uint.encode(d,o.rooms),e.uint.encode(d,o.contactRequests)},decode:d=>({rooms:e.uint.decode(d),contactRequests:e.uint.decode(d)})},xn={preencode(d,o){e.buffer.preencode(d,o.entropy)},encode(d,o){e.buffer.encode(d,o.entropy)},decode:d=>({entropy:e.buffer.decode(d)})},kn={preencode(d,o){e.fixed32.preencode(d,o.publicKey),e.fixed32.preencode(d,o.devicePublicKey),e.fixed32.preencode(d,o.writerKey)},encode(d,o){e.fixed32.encode(d,o.publicKey),e.fixed32.encode(d,o.devicePublicKey),e.fixed32.encode(d,o.writerKey)},decode:d=>({publicKey:e.fixed32.decode(d),devicePublicKey:e.fixed32.decode(d),writerKey:e.fixed32.decode(d)})},vn=e.frame(kn),gn={preencode(n,c){e.fixed32.preencode(n,c.id),e.fixed32.preencode(n,c.invitationSeed),e.fixed32.preencode(n,c.mailbox),t.preencode(n,c.responseKeyPair),o.preencode(n,c.initiator),o.preencode(n,c.inviter),n.end++,c.identity&&vn.preencode(n,c.identity),d>=20&&c.buildType&&Bt.preencode(n,c.buildType),d>=27&&c.link&&o.preencode(n,c.link)},encode(n,c){const r=(c.identity?1:0)|(d>=20&&c.buildType?2:0)|(d>=27&&c.link?4:0);e.fixed32.encode(n,c.id),e.fixed32.encode(n,c.invitationSeed),e.fixed32.encode(n,c.mailbox),t.encode(n,c.responseKeyPair),o.encode(n,c.initiator),o.encode(n,c.inviter),e.uint.encode(n,r),c.identity&&vn.encode(n,c.identity),d>=20&&c.buildType&&Bt.encode(n,c.buildType),d>=27&&c.link&&o.encode(n,c.link)},decode(n){const c=e.fixed32.decode(n),r=e.fixed32.decode(n),i=e.fixed32.decode(n),a=t.decode(n),s=o.decode(n),p=o.decode(n),u=e.uint.decode(n);return{id:c,invitationSeed:r,mailbox:i,responseKeyPair:a,initiator:s,inviter:p,identity:1&u?vn.decode(n):null,buildType:d>=20&&2&u?Bt.decode(n):null,link:d>=27&&4&u?o.decode(n):null}}},hn=$,Kn={preencode(d,o){hn.preencode(d,o.header),e.buffer.preencode(d,o.blindResponse)},encode(d,o){hn.encode(d,o.header),e.buffer.encode(d,o.blindResponse)},decode:d=>({header:hn.decode(d),blindResponse:e.buffer.decode(d)})},wn=$,Tn=e.frame(gn),An={preencode(e,d){wn.preencode(e,d.header),Tn.preencode(e,d.invitation)},encode(e,d){wn.encode(e,d.header),Tn.encode(e,d.invitation)},decode:e=>({header:wn.decode(e),invitation:Tn.decode(e)})},Pn=$,Sn={preencode(d,o){Pn.preencode(d,o.header),e.fixed32.preencode(d,o.id)},encode(d,o){Pn.encode(d,o.header),e.fixed32.encode(d,o.id)},decode:d=>({header:Pn.decode(d),id:e.fixed32.decode(d)})},In={preencode(d,o){e.fixed32.preencode(d,o.publicKey),e.fixed32.preencode(d,o.devicePublicKey),d.end++,o.privateProfileKey&&e.fixed32.preencode(d,o.privateProfileKey),o.deviceKeyPair&&t.preencode(d,o.deviceKeyPair),e.buffer.preencode(d,o.deviceProof)},encode(d,o){const n=(o.privateProfileKey?1:0)|(o.deviceKeyPair?2:0);e.fixed32.encode(d,o.publicKey),e.fixed32.encode(d,o.devicePublicKey),e.uint.encode(d,n),o.privateProfileKey&&e.fixed32.encode(d,o.privateProfileKey),o.deviceKeyPair&&t.encode(d,o.deviceKeyPair),e.buffer.encode(d,o.deviceProof)},decode(d){const o=e.fixed32.decode(d),n=e.fixed32.decode(d),c=e.uint.decode(d);return{publicKey:o,devicePublicKey:n,privateProfileKey:1&c?e.fixed32.decode(d):null,deviceKeyPair:2&c?t.decode(d):null,deviceProof:e.buffer.decode(d)}}},Rn={preencode(o,n){o.end++,d>=25&&n.roomSnoozeTime&&e.uint.preencode(o,n.roomSnoozeTime)},encode(o,n){const c=(n.isActive?1:0)|(n.isFullyMuted?2:0)|(n.isMentionsOnlyMuted?4:0)|(d>=9&&n.isReadOnly?8:0)|(d>=18&&n.isFavorite?16:0)|(d>=21&&n.isUnread?32:0)|(d>=25&&n.roomSnoozeTime?64:0);e.uint.encode(o,c),d>=25&&n.roomSnoozeTime&&e.uint.encode(o,n.roomSnoozeTime)},decode(o){const n=e.uint.decode(o);return{isActive:!!(1&n),isFullyMuted:!!(2&n),isMentionsOnlyMuted:!!(4&n),isReadOnly:d>=9&&!!(8&n),isFavorite:d>=18&&!!(16&n),isUnread:d>=21&&!!(32&n),roomSnoozeTime:d>=25&&64&n?e.uint.decode(o):0}}},Fn=e.frame(Rn),Hn=e.frame(In),Mn=vn,Cn={preencode(n,c){e.fixed32.preencode(n,c.roomKey),e.buffer.preencode(n,c.encryptionKey),e.fixed32.preencode(n,c.mailbox),Fn.preencode(n,c.status),e.uint.preencode(n,c.clock),n.end++,c.initiator&&o.preencode(n,c.initiator),c.fastForwardTo&&e.fixed32.preencode(n,c.fastForwardTo),c.identitySwap&&Hn.preencode(n,c.identitySwap),d>=6&&c.identitySwapV2&&Mn.preencode(n,c.identitySwapV2),d>=10&&c.contact&&e.fixed32.preencode(n,c.contact),d>=27&&c.bootFrom&&o.preencode(n,c.bootFrom),d>=29&&c.activeClock&&e.uint.preencode(n,c.activeClock)},encode(n,c){const t=(c.initiator?1:0)|(c.fastForwardTo?2:0)|(c.identitySwap?4:0)|(d>=6&&c.identitySwapV2?8:0)|(d>=10&&c.contact?16:0)|(d>=27&&c.bootFrom?32:0)|(d>=29&&c.activeClock?64:0);e.fixed32.encode(n,c.roomKey),e.buffer.encode(n,c.encryptionKey),e.fixed32.encode(n,c.mailbox),Fn.encode(n,c.status),e.uint.encode(n,c.clock),e.uint.encode(n,t),c.initiator&&o.encode(n,c.initiator),c.fastForwardTo&&e.fixed32.encode(n,c.fastForwardTo),c.identitySwap&&Hn.encode(n,c.identitySwap),d>=6&&c.identitySwapV2&&Mn.encode(n,c.identitySwapV2),d>=10&&c.contact&&e.fixed32.encode(n,c.contact),d>=27&&c.bootFrom&&o.encode(n,c.bootFrom),d>=29&&c.activeClock&&e.uint.encode(n,c.activeClock)},decode(n){const c=e.fixed32.decode(n),t=e.buffer.decode(n),r=e.fixed32.decode(n),i=Fn.decode(n),a=e.uint.decode(n),s=e.uint.decode(n);return{roomKey:c,encryptionKey:t,mailbox:r,status:i,clock:a,initiator:1&s?o.decode(n):null,fastForwardTo:2&s?e.fixed32.decode(n):null,identitySwap:4&s?Hn.decode(n):null,identitySwapV2:d>=6&&8&s?Mn.decode(n):null,contact:d>=10&&16&s?e.fixed32.decode(n):null,bootFrom:d>=27&&32&s?o.decode(n):null,activeClock:d>=29&&64&s?e.uint.decode(n):0}}},Dn=$,Vn={preencode(d,n){Dn.preencode(d,n.header),e.fixed32.preencode(d,n.roomKey),e.buffer.preencode(d,n.encryptionKey),e.fixed32.preencode(d,n.mailbox),d.end++,n.fastForwardTo&&e.fixed32.preencode(d,n.fastForwardTo),n.initiator&&o.preencode(d,n.initiator),n.dm&&e.fixed32.preencode(d,n.dm)},encode(n,c){const t=(c.fastForwardTo?1:0)|(c.initiator?2:0)|(c.dm?4:0)|(d>=9&&c.isReadOnly?8:0);Dn.encode(n,c.header),e.fixed32.encode(n,c.roomKey),e.buffer.encode(n,c.encryptionKey),e.fixed32.encode(n,c.mailbox),e.uint.encode(n,t),c.fastForwardTo&&e.fixed32.encode(n,c.fastForwardTo),c.initiator&&o.encode(n,c.initiator),c.dm&&e.fixed32.encode(n,c.dm)},decode(n){const c=Dn.decode(n),t=e.fixed32.decode(n),r=e.buffer.decode(n),i=e.fixed32.decode(n),a=e.uint.decode(n);return{header:c,roomKey:t,encryptionKey:r,mailbox:i,fastForwardTo:1&a?e.fixed32.decode(n):null,initiator:2&a?o.decode(n):null,dm:4&a?e.fixed32.decode(n):null,isReadOnly:d>=9&&!!(8&a)}}},Ln=$,qn={preencode(d,o){Ln.preencode(d,o.header),e.fixed32.preencode(d,o.discoveryKey)},encode(d,o){Ln.encode(d,o.header),e.fixed32.encode(d,o.discoveryKey)},decode:d=>({header:Ln.decode(d),discoveryKey:e.fixed32.decode(d)})},En=$,Bn=Fn,zn={preencode(d,o){En.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey),e.uint.preencode(d,o.key),Bn.preencode(d,o.status)},encode(d,o){En.encode(d,o.header),e.fixed32.encode(d,o.roomKey),e.uint.encode(d,o.key),Bn.encode(d,o.status)},decode:d=>({header:En.decode(d),roomKey:e.fixed32.decode(d),key:e.uint.decode(d),status:Bn.decode(d)})},Nn={preencode(e,d){e.end++},encode(o,n){const c=(n.isBlocked?1:0)|(d>=22&&n.isActive?2:0);e.uint.encode(o,c)},decode(o){const n=e.uint.decode(o);return{isBlocked:!!(1&n),isActive:d>=22&&!!(2&n)}}},jn={preencode(o,n){e.fixed32.preencode(o,n.memberKey),e.uint.preencode(o,n.clock),Xr.preencode(o,n.status),o.end++,n.mailbox&&e.fixed32.preencode(o,n.mailbox),n.roomKey&&e.fixed32.preencode(o,n.roomKey),d>=22&&n.contactInfo&&Yr.preencode(o,n.contactInfo),d>=24&&n.alias&&e.string.preencode(o,n.alias)},encode(o,n){const c=(n.mailbox?1:0)|(n.roomKey?2:0)|(d>=22&&n.contactInfo?4:0)|(d>=24&&n.alias?8:0);e.fixed32.encode(o,n.memberKey),e.uint.encode(o,n.clock),Xr.encode(o,n.status),e.uint.encode(o,c),n.mailbox&&e.fixed32.encode(o,n.mailbox),n.roomKey&&e.fixed32.encode(o,n.roomKey),d>=22&&n.contactInfo&&Yr.encode(o,n.contactInfo),d>=24&&n.alias&&e.string.encode(o,n.alias)},decode(o){const n=e.fixed32.decode(o),c=e.uint.decode(o),t=Xr.decode(o),r=e.uint.decode(o);return{memberKey:n,clock:c,status:t,mailbox:1&r?e.fixed32.decode(o):null,roomKey:2&r?e.fixed32.decode(o):null,contactInfo:d>=22&&4&r?Yr.decode(o):null,alias:d>=24&&8&r?e.string.decode(o):null}}},On=$,Un=e.frame(an),Jn={preencode(e,d){On.preencode(e,d.header),Un.preencode(e,d.contact)},encode(e,d){On.encode(e,d.header),Un.encode(e,d.contact)},decode:e=>({header:On.decode(e),contact:Un.decode(e)})},Gn=$,Qn={preencode(d,o){Gn.preencode(d,o.header),e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.key),Zr.preencode(d,o.status)},encode(d,o){Gn.encode(d,o.header),e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.key),Zr.encode(d,o.status)},decode:d=>({header:Gn.decode(d),memberKey:e.fixed32.decode(d),key:e.uint.decode(d),status:Zr.decode(d)})},Wn=$,Xn={preencode(d,o){Wn.preencode(d,o.header),e.fixed32.preencode(d,o.memberKey)},encode(d,o){Wn.encode(d,o.header),e.fixed32.encode(d,o.memberKey)},decode:d=>({header:Wn.decode(d),memberKey:e.fixed32.decode(d)})},Yn={preencode(e,d){e.end++},encode(d,o){const n=(o.isPending?1:0)|(o.isAccepted?2:0)|(o.isRejected?4:0)|(o.isDiscarded?8:0)|(o.isSeen?16:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isPending:!!(1&o),isAccepted:!!(2&o),isRejected:!!(4&o),isDiscarded:!!(8&o),isSeen:!!(16&o)}}},Zn=xe,$n=e.frame(r),_n={preencode(d,o){Zn.preencode(d,o.sender),$n.preencode(d,o.keys),e.fixed32.preencode(d,o.mailbox),d.end++,o.message&&e.string.preencode(d,o.message)},encode(d,o){const n=o.message?1:0;Zn.encode(d,o.sender),$n.encode(d,o.keys),e.fixed32.encode(d,o.mailbox),e.uint.encode(d,n),o.message&&e.string.encode(d,o.message)},decode:d=>({sender:Zn.decode(d),keys:$n.decode(d),mailbox:e.fixed32.decode(d),message:1&e.uint.decode(d)?e.string.decode(d):null})},ec=e.frame(_n),dc={preencode(e,d){ec.preencode(e,d.body),ne.preencode(e,d.attestation)},encode(e,d){ec.encode(e,d.body),ne.encode(e,d.attestation)},decode:e=>({body:ec.decode(e),attestation:ne.decode(e)})},oc=pe,nc=e.frame(Yn),cc=$n,tc={preencode(o,n){e.fixed32.preencode(o,n.memberKey),e.uint.preencode(o,n.clock),oc.preencode(o,n.sender),nc.preencode(o,n.status),cc.preencode(o,n.keys),e.fixed32.preencode(o,n.mailbox),o.end++,n.message&&e.string.preencode(o,n.message),d>=11&&n.sentAt&&e.uint.preencode(o,n.sentAt),d>=22&&n.contactInfo&&$r.preencode(o,n.contactInfo)},encode(o,n){const c=(n.message?1:0)|(d>=11&&n.sentAt?2:0)|(d>=22&&n.contactInfo?4:0);e.fixed32.encode(o,n.memberKey),e.uint.encode(o,n.clock),oc.encode(o,n.sender),nc.encode(o,n.status),cc.encode(o,n.keys),e.fixed32.encode(o,n.mailbox),e.uint.encode(o,c),n.message&&e.string.encode(o,n.message),d>=11&&n.sentAt&&e.uint.encode(o,n.sentAt),d>=22&&n.contactInfo&&$r.encode(o,n.contactInfo)},decode(o){const n=e.fixed32.decode(o),c=e.uint.decode(o),t=oc.decode(o),r=nc.decode(o),i=cc.decode(o),a=e.fixed32.decode(o),s=e.uint.decode(o);return{memberKey:n,clock:c,sender:t,status:r,keys:i,mailbox:a,message:1&s?e.string.decode(o):null,sentAt:d>=11&&2&s?e.uint.decode(o):0,contactInfo:d>=22&&4&s?$r.decode(o):null}}},rc=$,ic={preencode(d,o){rc.preencode(d,o.header),e.buffer.preencode(d,o.blindRequest)},encode(d,o){rc.encode(d,o.header),e.buffer.encode(d,o.blindRequest)},decode:d=>({header:rc.decode(d),blindRequest:e.buffer.decode(d)})},ac=$,sc=nc,pc={preencode(o,n){ac.preencode(o,n.header),e.fixed32.preencode(o,n.memberKey),e.uint.preencode(o,n.key),sc.preencode(o,n.status),o.end++,d>=10&&n.roomKey&&e.fixed32.preencode(o,n.roomKey)},encode(o,n){const c=d>=10&&n.roomKey?1:0;ac.encode(o,n.header),e.fixed32.encode(o,n.memberKey),e.uint.encode(o,n.key),sc.encode(o,n.status),e.uint.encode(o,c),d>=10&&n.roomKey&&e.fixed32.encode(o,n.roomKey)},decode(o){const n=ac.decode(o),c=e.fixed32.decode(o),t=e.uint.decode(o),r=sc.decode(o),i=o.start<o.end?e.uint.decode(o):0;return{header:n,memberKey:c,key:t,status:r,roomKey:d>=10&&1&i?e.fixed32.decode(o):null}}},uc={preencode(d,o){e.uint.preencode(d,o.timestamp),e.fixed32.preencode(d,o.key),e.fixed32.preencode(d,o.mailbox)},encode(d,o){e.uint.encode(d,o.timestamp),e.fixed32.encode(d,o.key),e.fixed32.encode(d,o.mailbox)},decode:d=>({version:e.uint.decode(d),timestamp:e.uint.decode(d),key:e.fixed32.decode(d),mailbox:e.fixed32.decode(d)})},lc={preencode(d,o){const n=o.version??1;switch(e.uint.preencode(d,n),n){case 0:case 1:uc.preencode(d,o);break;default:throw new Error("Unsupported version")}},encode(d,o){const n=o.version??1;switch(e.uint.encode(d,n),n){case 0:case 1:uc.encode(d,o);break;default:throw new Error("Unsupported version")}},decode(d){const o=d.start,n=e.uint.decode(d);switch(d.start=o,n){case 0:case 1:return uc.decode(d);default:throw new Error("Unsupported version")}}},fc=$,mc={preencode(o,c){fc.preencode(o,c.header),n.preencode(o,c.oplog),e.uint.preencode(o,c.index),_r.preencode(o,c.preview),o.end++,d>=7&&c.displayType&&Pc.preencode(o,c.displayType)},encode(o,c){const t=d>=7&&c.displayType?1:0;fc.encode(o,c.header),n.encode(o,c.oplog),e.uint.encode(o,c.index),_r.encode(o,c.preview),e.uint.encode(o,t),d>=7&&c.displayType&&Pc.encode(o,c.displayType)},decode(o){const c=fc.decode(o),t=n.decode(o),r=e.uint.decode(o),i=_r.decode(o),a=o.start<o.end?e.uint.decode(o):0;return{header:c,oplog:t,index:r,preview:i,displayType:d>=7&&1&a?Pc.decode(o):0}}},yc={preencode(o,n){o.end++,d>=3&&n.memberKey&&e.fixed32.preencode(o,n.memberKey)},encode(o,n){const c=d>=3&&n.memberKey?1:0;e.uint.encode(o,c),d>=3&&n.memberKey&&e.fixed32.encode(o,n.memberKey)},decode(o){const n=e.uint.decode(o);return{memberKey:d>=3&&1&n?e.fixed32.decode(o):null}}},bc=pe,xc={preencode(e,d){bc.preencode(e,d.profile),ne.preencode(e,d.attestation)},encode(e,d){bc.encode(e,d.profile),ne.encode(e,d.attestation)},decode:e=>({profile:bc.decode(e),attestation:ne.decode(e)})},kc=$,vc={preencode(d,o){kc.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){kc.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:kc.decode(d),key:e.fixed32.decode(d)})},gc={preencode(d,o){e.fixed32.preencode(d,o.deviceKey),ne.preencode(d,o.privateProfileIdentity),e.buffer.preencode(d,o.deviceProof)},encode(d,o){e.fixed32.encode(d,o.deviceKey),ne.encode(d,o.privateProfileIdentity),e.buffer.encode(d,o.deviceProof)},decode:d=>({deviceKey:e.fixed32.decode(d),privateProfileIdentity:ne.decode(d),deviceProof:e.buffer.decode(d)})},hc={preencode(o,n){e.fixed32.preencode(o,n.roomKey),e.fixed32.preencode(o,n.encryptionKey),e.fixed32.preencode(o,n.seed),o.end++,d>=6&&n.fastForwardTo&&e.fixed32.preencode(o,n.fastForwardTo)},encode(o,n){const c=d>=6&&n.fastForwardTo?1:0;e.fixed32.encode(o,n.roomKey),e.fixed32.encode(o,n.encryptionKey),e.fixed32.encode(o,n.seed),e.uint.encode(o,c),d>=6&&n.fastForwardTo&&e.fixed32.encode(o,n.fastForwardTo)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),t=e.fixed32.decode(o),r=e.uint.decode(o);return{roomKey:n,encryptionKey:c,seed:t,fastForwardTo:d>=6&&1&r?e.fixed32.decode(o):null}}},Kc={preencode(o,n){e.fixed32.preencode(o,n.publicKey),e.fixed32.preencode(o,n.writerKey),e.fixed32.preencode(o,n.devicePublicKey),o.end++,d>=6&&n.privateProfileKey&&e.fixed32.preencode(o,n.privateProfileKey)},encode(o,n){const c=d>=6&&n.privateProfileKey?1:0;e.fixed32.encode(o,n.publicKey),e.fixed32.encode(o,n.writerKey),e.fixed32.encode(o,n.devicePublicKey),e.uint.encode(o,c),d>=6&&n.privateProfileKey&&e.fixed32.encode(o,n.privateProfileKey)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),t=e.fixed32.decode(o),r=e.uint.decode(o);return{publicKey:n,writerKey:c,devicePublicKey:t,privateProfileKey:d>=6&&1&r?e.fixed32.decode(o):null}}},wc=$,Tc={preencode(d,o){wc.preencode(d,o.header),e.fixed32.preencode(d,o.memberKey)},encode(d,o){wc.encode(d,o.header),e.fixed32.encode(d,o.memberKey)},decode:d=>({header:wc.decode(d),memberKey:e.fixed32.decode(d)})},Ac={HttpLink:1,PearLink:2},Pc={preencode(e,d){e.end++},encode(d,o){if(o>2)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},Sc=$,Ic={preencode(d,o){Sc.preencode(d,o.header),e.uint.preencode(d,o.value)},encode(d,o){Sc.encode(d,o.header),e.uint.encode(d,o.value)},decode:d=>({header:Sc.decode(d),value:e.uint.decode(d)})},Rc={preencode(d,o){e.uint.preencode(d,o.key),e.uint.preencode(d,o.value)},encode(d,o){e.uint.encode(d,o.key),e.uint.encode(d,o.value)},decode:d=>({key:e.uint.decode(d),value:e.uint.decode(d)})},Fc=$,Hc={preencode(o,n){Fc.preencode(o,n.header),e.uint.preencode(o,n.from),e.uint.preencode(o,n.to),o.end++,d>=20&&n.buildType&&Bt.preencode(o,n.buildType)},encode(o,n){const c=d>=20&&n.buildType?1:0;Fc.encode(o,n.header),e.uint.encode(o,n.from),e.uint.encode(o,n.to),e.uint.encode(o,c),d>=20&&n.buildType&&Bt.encode(o,n.buildType)},decode(o){const n=Fc.decode(o),c=e.uint.decode(o),t=e.uint.decode(o),r=o.start<o.end?e.uint.decode(o):0;return{header:n,from:c,to:t,buildType:d>=20&&1&r?Bt.decode(o):null}}},Mc={RoomType:1,IsExperimental:2,IsJoiningDisabled:3,IsAppendingDisabled:4,IsCallingDisabled:5,IsMembershipEventsDisabled:6,IsAttachmentsDisabled:7,IsLinksDisabled:8,IsRoomInviteHidden:9},Cc={preencode(e,d){e.end++},encode(d,o){if(o>9)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},Dc={en:"en",it:"it",ru:"ru",es:"es",de:"de"},Vc={preencode(e,d){e.end++},encode(d,o){switch(o){case"en":e.uint.encode(d,1);break;case"it":e.uint.encode(d,2);break;case"ru":e.uint.encode(d,3);break;case"es":e.uint.encode(d,4);break;case"de":e.uint.encode(d,5);break;default:throw new Error("Unknown enum")}},decode(d){switch(e.uint.decode(d)){case 1:return"en";case 2:return"it";case 3:return"ru";case 4:return"es";case 5:return"de";default:return null}}},Lc=Dd,qc={preencode(d,o){Lc.preencode(d,o.range),Vc.preencode(d,o.language),e.string.preencode(d,o.text)},encode(d,o){Lc.encode(d,o.range),Vc.encode(d,o.language),e.string.encode(d,o.text)},decode:d=>({range:Lc.decode(d),language:Vc.decode(d),text:e.string.decode(d)})},Ec={preencode(d,o){e.fixed32.preencode(d,o.deviceKey),e.fixed32.preencode(d,o.key)},encode(d,o){e.fixed32.encode(d,o.deviceKey),e.fixed32.encode(d,o.key)},decode:d=>({deviceKey:e.fixed32.decode(d),key:e.fixed32.decode(d)})},Bc=$,zc={preencode(d,o){Bc.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){Bc.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:Bc.decode(d),key:e.fixed32.decode(d)})},Nc=$,jc={preencode(d,o){Nc.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){Nc.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:Nc.decode(d),key:e.fixed32.decode(d)})},Oc={Flag:1},Uc={preencode(e,d){e.end++},encode(d,o){if(o>1)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},Jc={preencode(d,o){lo.preencode(d,o.id),e.fixed32.preencode(d,o.sender),e.uint.preencode(d,o.clock),Uc.preencode(d,o.label)},encode(d,o){lo.encode(d,o.id),e.fixed32.encode(d,o.sender),e.uint.encode(d,o.clock),Uc.encode(d,o.label)},decode:d=>({id:lo.decode(d),sender:e.fixed32.decode(d),clock:e.uint.decode(d),label:Uc.decode(d)})},Gc=$,Qc={preencode(e,d){Gc.preencode(e,d.header),n.preencode(e,d.oplog),Uc.preencode(e,d.label)},encode(e,d){Gc.encode(e,d.header),n.encode(e,d.oplog),Uc.encode(e,d.label)},decode:e=>({header:Gc.decode(e),oplog:n.decode(e),label:Uc.decode(e)})},Wc=$,Xc={preencode(e,d){Wc.preencode(e,d.header),n.preencode(e,d.oplog),Uc.preencode(e,d.label)},encode(e,d){Wc.encode(e,d.header),n.encode(e,d.oplog),Uc.encode(e,d.label)},decode:e=>({header:Wc.decode(e),oplog:n.decode(e),label:Uc.decode(e)})},Yc={preencode(d,o){Uc.preencode(d,o.label),e.uint.preencode(d,o.count)},encode(d,o){Uc.encode(d,o.label),e.uint.encode(d,o.count)},decode:d=>({label:Uc.decode(d),count:e.uint.decode(d)})},Zc=e.array(e.frame(Yc)),$c={preencode(o,n){lo.preencode(o,n.id),e.uint.preencode(o,n.total),Zc.preencode(o,n.labels),e.uint.preencode(o,n.editedAt),o.end++,d>=15&&n.flagsClock&&e.uint.preencode(o,n.flagsClock),d>=15&&n.version&&e.uint.preencode(o,n.version)},encode(o,n){const c=(d>=15&&n.flagsClock?1:0)|(d>=15&&n.version?2:0)|(d>=16&&n.isDeleted?4:0);lo.encode(o,n.id),e.uint.encode(o,n.total),Zc.encode(o,n.labels),e.uint.encode(o,n.editedAt),e.uint.encode(o,c),d>=15&&n.flagsClock&&e.uint.encode(o,n.flagsClock),d>=15&&n.version&&e.uint.encode(o,n.version)},decode(o){const n=lo.decode(o),c=e.uint.decode(o),t=Zc.decode(o),r=e.uint.decode(o),i=o.start<o.end?e.uint.decode(o):0;return{id:n,total:c,labels:t,editedAt:r,flagsClock:d>=15&&1&i?e.uint.decode(o):0,version:d>=15&&2&i?e.uint.decode(o):0,isDeleted:d>=16&&!!(4&i)}}},_c=$,et={preencode(d,o){_c.preencode(d,o.header),e.uint.preencode(d,o.length)},encode(d,o){_c.encode(d,o.header),e.uint.encode(d,o.length)},decode:d=>({header:_c.decode(d),length:e.uint.decode(d)})},dt={preencode(d,o){e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.length)},encode(d,o){e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.length)},decode:d=>({memberKey:e.fixed32.decode(d),length:e.uint.decode(d)})},ot=Z,nt={preencode(o,n){o.end++,d>=23&&n.profileSnoozeTime&&e.uint.preencode(o,n.profileSnoozeTime)},encode(o,n){const c=(d>=13&&n.disableReadReceipts?1:0)|(d>=21&&n.stripAttachmentMetadata?2:0)|(d>=23&&n.profileSnoozeTime?4:0);e.uint.encode(o,c),d>=23&&n.profileSnoozeTime&&e.uint.encode(o,n.profileSnoozeTime)},decode(o){const n=e.uint.decode(o);return{disableReadReceipts:d>=13&&!!(1&n),stripAttachmentMetadata:d>=21&&!!(2&n),profileSnoozeTime:d>=23&&4&n?e.uint.decode(o):0}}},ct={disableReadReceipts:"disableReadReceipts",stripAttachmentMetadata:"stripAttachmentMetadata",profileSnoozeTime:"profileSnoozeTime"},tt={preencode(e,d){e.end++},encode(d,o){switch(o){case"disableReadReceipts":e.uint.encode(d,1);break;case"stripAttachmentMetadata":e.uint.encode(d,2);break;case"profileSnoozeTime":e.uint.encode(d,3);break;default:throw new Error("Unknown enum")}},decode(d){switch(e.uint.decode(d)){case 1:return"disableReadReceipts";case 2:return"stripAttachmentMetadata";case 3:return"profileSnoozeTime";default:return null}}},rt=$,it=e.frame(nt),at={preencode(e,d){rt.preencode(e,d.header),tt.preencode(e,d.key),it.preencode(e,d.settings)},encode(e,d){rt.encode(e,d.header),tt.encode(e,d.key),it.encode(e,d.settings)},decode:e=>({header:rt.decode(e),key:tt.decode(e),settings:it.decode(e)})},st={Flag:1},pt={preencode(e,d){e.end++},encode(d,o){if(o>1)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},ut={preencode(d,o){e.fixed32.preencode(d,o.key),e.fixed32.preencode(d,o.sender),e.uint.preencode(d,o.clock),pt.preencode(d,o.label)},encode(d,o){e.fixed32.encode(d,o.key),e.fixed32.encode(d,o.sender),e.uint.encode(d,o.clock),pt.encode(d,o.label)},decode:d=>({key:e.fixed32.decode(d),sender:e.fixed32.decode(d),clock:e.uint.decode(d),label:pt.decode(d)})},lt=$,ft={preencode(d,o){lt.preencode(d,o.header),e.fixed32.preencode(d,o.key),pt.preencode(d,o.label)},encode(d,o){lt.encode(d,o.header),e.fixed32.encode(d,o.key),pt.encode(d,o.label)},decode:d=>({header:lt.decode(d),key:e.fixed32.decode(d),label:pt.decode(d)})},mt={preencode(d,o){pt.preencode(d,o.label),e.uint.preencode(d,o.count)},encode(d,o){pt.encode(d,o.label),e.uint.encode(d,o.count)},decode:d=>({label:pt.decode(d),count:e.uint.decode(d)})},yt=e.array(e.frame(mt)),bt={preencode(d,o){e.fixed32.preencode(d,o.key),e.uint.preencode(d,o.total),yt.preencode(d,o.labels),e.uint.preencode(d,o.editedAt),e.uint.preencode(d,o.flagsClock)},encode(d,o){e.fixed32.encode(d,o.key),e.uint.encode(d,o.total),yt.encode(d,o.labels),e.uint.encode(d,o.editedAt),e.uint.encode(d,o.flagsClock)},decode:d=>({key:e.fixed32.decode(d),total:e.uint.decode(d),labels:yt.decode(d),editedAt:e.uint.decode(d),flagsClock:e.uint.decode(d)})},xt={preencode(d,o){e.float64.preencode(d,o.latitude),e.float64.preencode(d,o.longitude)},encode(d,o){e.float64.encode(d,o.latitude),e.float64.encode(d,o.longitude)},decode:d=>({latitude:e.float64.decode(d),longitude:e.float64.decode(d)})},kt=$,vt={preencode(d,o){kt.preencode(d,o.header),e.fixed32.preencode(d,o.deviceKey),e.fixed32.preencode(d,o.fromDeviceKey)},encode(d,o){kt.encode(d,o.header),e.fixed32.encode(d,o.deviceKey),e.fixed32.encode(d,o.fromDeviceKey)},decode:d=>({header:kt.decode(d),deviceKey:e.fixed32.decode(d),fromDeviceKey:e.fixed32.decode(d)})},gt=$,ht=X,Kt={preencode(o,n){gt.preencode(o,n.header),e.fixed32.preencode(o,n.callKey),e.buffer.preencode(o,n.encryptionKey),o.end++,d>=19&&n.streams&&ht.preencode(o,n.streams),d>=19&&n.discoveryKey&&e.fixed32.preencode(o,n.discoveryKey),d>=19&&n.version&&e.uint.preencode(o,n.version),d>=26&&n.streamInputs&&ei.preencode(o,n.streamInputs),d>=26&&n.swarmKey&&e.fixed32.preencode(o,n.swarmKey)},encode(o,n){const c=(d>=19&&n.streams?1:0)|(d>=19&&n.discoveryKey?2:0)|(d>=19&&n.version?4:0)|(d>=26&&n.streamInputs?8:0)|(d>=26&&n.swarmKey?16:0);gt.encode(o,n.header),e.fixed32.encode(o,n.callKey),e.buffer.encode(o,n.encryptionKey),e.uint.encode(o,c),d>=19&&n.streams&&ht.encode(o,n.streams),d>=19&&n.discoveryKey&&e.fixed32.encode(o,n.discoveryKey),d>=19&&n.version&&e.uint.encode(o,n.version),d>=26&&n.streamInputs&&ei.encode(o,n.streamInputs),d>=26&&n.swarmKey&&e.fixed32.encode(o,n.swarmKey)},decode(o){const n=gt.decode(o),c=e.fixed32.decode(o),t=e.buffer.decode(o),r=e.uint.decode(o);return{header:n,callKey:c,encryptionKey:t,streams:d>=19&&1&r?ht.decode(o):null,discoveryKey:d>=19&&2&r?e.fixed32.decode(o):null,version:d>=19&&4&r?e.uint.decode(o):0,streamInputs:d>=26&&8&r?ei.decode(o):null,swarmKey:d>=26&&16&r?e.fixed32.decode(o):null}}},wt=$,Tt=X,At={preencode(o,n){wt.preencode(o,n.header),e.fixed32.preencode(o,n.callKey),o.end++,d>=19&&n.streams&&Tt.preencode(o,n.streams),d>=26&&n.streamInputs&&di.preencode(o,n.streamInputs),d>=26&&n.swarmKey&&e.fixed32.preencode(o,n.swarmKey)},encode(o,n){const c=(d>=19&&n.streams?1:0)|(d>=26&&n.streamInputs?2:0)|(d>=26&&n.swarmKey?4:0);wt.encode(o,n.header),e.fixed32.encode(o,n.callKey),e.uint.encode(o,c),d>=19&&n.streams&&Tt.encode(o,n.streams),d>=26&&n.streamInputs&&di.encode(o,n.streamInputs),d>=26&&n.swarmKey&&e.fixed32.encode(o,n.swarmKey)},decode(o){const n=wt.decode(o),c=e.fixed32.decode(o),t=e.uint.decode(o);return{header:n,callKey:c,streams:d>=19&&1&t?Tt.decode(o):null,streamInputs:d>=26&&2&t?di.decode(o):null,swarmKey:d>=26&&4&t?e.fixed32.decode(o):null}}},Pt=$,St={preencode(d,o){Pt.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){Pt.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:Pt.decode(d),callKey:e.fixed32.decode(d)})},It=$,Rt={preencode(d,o){It.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){It.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:It.decode(d),callKey:e.fixed32.decode(d)})},Ft=$,Ht={preencode(o,n){Ft.preencode(o,n.header),e.fixed32.preencode(o,n.callKey),e.fixed32.preencode(o,n.streamKey),o.end++,d>=26&&n.mediaStreamId&&e.string.preencode(o,n.mediaStreamId),d>=26&&n.type&&e.string.preencode(o,n.type)},encode(o,n){const c=(d>=26&&n.mediaStreamId?1:0)|(d>=26&&n.type?2:0)|(d>=26&&n.muted?4:0);Ft.encode(o,n.header),e.fixed32.encode(o,n.callKey),e.fixed32.encode(o,n.streamKey),e.uint.encode(o,c),d>=26&&n.mediaStreamId&&e.string.encode(o,n.mediaStreamId),d>=26&&n.type&&e.string.encode(o,n.type)},decode(o){const n=Ft.decode(o),c=e.fixed32.decode(o),t=e.fixed32.decode(o),r=o.start<o.end?e.uint.decode(o):0;return{header:n,callKey:c,streamKey:t,mediaStreamId:d>=26&&1&r?e.string.decode(o):null,type:d>=26&&2&r?e.string.decode(o):null,muted:d>=26&&!!(4&r)}}},Mt=$,Ct={preencode(d,o){Mt.preencode(d,o.header),e.fixed32.preencode(d,o.callKey),e.fixed32.preencode(d,o.streamKey)},encode(d,o){Mt.encode(d,o.header),e.fixed32.encode(d,o.callKey),e.fixed32.encode(d,o.streamKey)},decode:d=>({header:Mt.decode(d),callKey:e.fixed32.decode(d),streamKey:e.fixed32.decode(d)})},Dt={preencode(o,n){e.fixed32.preencode(o,n.callKey),e.buffer.preencode(o,n.encryptionKey),e.uint.preencode(o,n.createdAt),o.end++,d>=19&&n.endedAt&&e.uint.preencode(o,n.endedAt),d>=19&&n.discoveryKey&&e.fixed32.preencode(o,n.discoveryKey),d>=19&&n.version&&e.uint.preencode(o,n.version)},encode(o,n){const c=(d>=19&&n.endedAt?1:0)|(d>=19&&n.discoveryKey?2:0)|(d>=19&&n.version?4:0);e.fixed32.encode(o,n.callKey),e.buffer.encode(o,n.encryptionKey),e.uint.encode(o,n.createdAt),e.uint.encode(o,c),d>=19&&n.endedAt&&e.uint.encode(o,n.endedAt),d>=19&&n.discoveryKey&&e.fixed32.encode(o,n.discoveryKey),d>=19&&n.version&&e.uint.encode(o,n.version)},decode(o){const n=e.fixed32.decode(o),c=e.buffer.decode(o),t=e.uint.decode(o),r=e.uint.decode(o);return{callKey:n,encryptionKey:c,createdAt:t,endedAt:d>=19&&1&r?e.uint.decode(o):0,discoveryKey:d>=19&&2&r?e.fixed32.decode(o):null,version:d>=19&&4&r?e.uint.decode(o):0}}},Vt={preencode(d,o){e.fixed32.preencode(d,o.callKey),e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.createdAt)},encode(d,o){e.fixed32.encode(d,o.callKey),e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.createdAt)},decode:d=>({callKey:e.fixed32.decode(d),memberKey:e.fixed32.decode(d),createdAt:e.uint.decode(d)})},Lt={preencode(o,n){e.fixed32.preencode(o,n.callKey),e.fixed32.preencode(o,n.deviceKey),e.fixed32.preencode(o,n.memberKey),e.uint.preencode(o,n.createdAt),o.end++,d>=19&&n.swarmKey&&e.fixed32.preencode(o,n.swarmKey),d>=22&&n.lastHeartbeatAt&&e.uint.preencode(o,n.lastHeartbeatAt)},encode(o,n){const c=(d>=19&&n.swarmKey?1:0)|(d>=22&&n.lastHeartbeatAt?2:0)|(d>=23&&n.isRecording?4:0);e.fixed32.encode(o,n.callKey),e.fixed32.encode(o,n.deviceKey),e.fixed32.encode(o,n.memberKey),e.uint.encode(o,n.createdAt),e.uint.encode(o,c),d>=19&&n.swarmKey&&e.fixed32.encode(o,n.swarmKey),d>=22&&n.lastHeartbeatAt&&e.uint.encode(o,n.lastHeartbeatAt)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),t=e.fixed32.decode(o),r=e.uint.decode(o),i=e.uint.decode(o);return{callKey:n,deviceKey:c,memberKey:t,createdAt:r,swarmKey:d>=19&&1&i?e.fixed32.decode(o):null,lastHeartbeatAt:d>=22&&2&i?e.uint.decode(o):0,isRecording:d>=23&&!!(4&i)}}},qt={preencode(o,n){e.fixed32.preencode(o,n.callKey),e.fixed32.preencode(o,n.deviceKey),e.buffer.preencode(o,n.streamKey),e.uint.preencode(o,n.createdAt),o.end++,d>=26&&n.mediaStreamId&&e.string.preencode(o,n.mediaStreamId),d>=26&&n.type&&e.string.preencode(o,n.type),d>=26&&n.statusKey&&e.uint.preencode(o,n.statusKey)},encode(o,n){const c=(d>=26&&n.mediaStreamId?1:0)|(d>=26&&n.type?2:0)|(d>=26&&n.statusKey?4:0);e.fixed32.encode(o,n.callKey),e.fixed32.encode(o,n.deviceKey),e.buffer.encode(o,n.streamKey),e.uint.encode(o,n.createdAt),e.uint.encode(o,c),d>=26&&n.mediaStreamId&&e.string.encode(o,n.mediaStreamId),d>=26&&n.type&&e.string.encode(o,n.type),d>=26&&n.statusKey&&e.uint.encode(o,n.statusKey)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),t=e.buffer.decode(o),r=e.uint.decode(o),i=o.start<o.end?e.uint.decode(o):0;return{callKey:n,deviceKey:c,streamKey:t,createdAt:r,mediaStreamId:d>=26&&1&i?e.string.decode(o):null,type:d>=26&&2&i?e.string.decode(o):null,statusKey:d>=26&&4&i?e.uint.decode(o):0}}},Et={Nightly:"Nightly",Internal:"Internal",Production:"Production"},Bt={preencode(e,d){e.end++},encode(d,o){switch(o){case"Nightly":e.uint.encode(d,1);break;case"Internal":e.uint.encode(d,2);break;case"Production":e.uint.encode(d,3);break;default:throw new Error("Unknown enum")}},decode(d){switch(e.uint.decode(d)){case 1:return"Nightly";case 2:return"Internal";case 3:return"Production";default:return null}}},zt=$,Nt={preencode(e,d){zt.preencode(e,d.header)},encode(e,d){zt.encode(e,d.header)},decode:e=>({header:zt.decode(e)})},jt=$,Ot={preencode(e,d){jt.preencode(e,d.header)},encode(e,d){jt.encode(e,d.header)},decode:e=>({header:jt.decode(e)})},Ut=$,Jt={preencode(d,o){Ut.preencode(d,o.header),e.fixed32.preencode(d,o.deviceKey),e.buffer.preencode(d,o.deviceProof),e.buffer.preencode(d,o.writerProof)},encode(d,o){Ut.encode(d,o.header),e.fixed32.encode(d,o.deviceKey),e.buffer.encode(d,o.deviceProof),e.buffer.encode(d,o.writerProof)},decode:d=>({header:Ut.decode(d),deviceKey:e.fixed32.decode(d),deviceProof:e.buffer.decode(d),writerProof:e.buffer.decode(d)})},Gt=$,Qt={preencode(d,o){Gt.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){Gt.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:Gt.decode(d),callKey:e.fixed32.decode(d)})},Wt=$,Xt={preencode(d,o){Wt.preencode(d,o.header),e.fixed32.preencode(d,o.callKey),e.fixed32.preencode(d,o.deviceKey)},encode(d,o){Wt.encode(d,o.header),e.fixed32.encode(d,o.callKey),e.fixed32.encode(d,o.deviceKey)},decode:d=>({header:Wt.decode(d),callKey:e.fixed32.decode(d),deviceKey:e.fixed32.decode(d)})},Yt=$,Zt={preencode(d,o){Yt.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){Yt.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:Yt.decode(d),callKey:e.fixed32.decode(d)})},$t=$,_t={preencode(d,o){$t.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){$t.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:$t.decode(d),callKey:e.fixed32.decode(d)})},er=$,dr={preencode(e,d){er.preencode(e,d.header),n.preencode(e,d.oplog)},encode(e,d){er.encode(e,d.header),n.encode(e,d.oplog)},decode:e=>({header:er.decode(e),oplog:n.decode(e)})},or=$,nr={preencode(e,d){or.preencode(e,d.header)},encode(e,d){or.encode(e,d.header)},decode:e=>({header:or.decode(e)})},cr={preencode(d,o){e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.timestamp)},encode(d,o){e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.timestamp)},decode:d=>({memberKey:e.fixed32.decode(d),timestamp:e.uint.decode(d)})},tr=$,rr={preencode(o,n){tr.preencode(o,n.header),e.fixed32.preencode(o,n.memberKey),o.end++,d>=24&&n.alias&&e.string.preencode(o,n.alias)},encode(o,n){const c=d>=24&&n.alias?1:0;tr.encode(o,n.header),e.fixed32.encode(o,n.memberKey),e.uint.encode(o,c),d>=24&&n.alias&&e.string.encode(o,n.alias)},decode(o){const n=tr.decode(o),c=e.fixed32.decode(o),t=e.uint.decode(o);return{header:n,memberKey:c,alias:d>=24&&1&t?e.string.decode(o):null}}},ir={preencode(d,o){e.uint.preencode(d,o.streams)},encode(d,o){e.uint.encode(d,o.streams)},decode:d=>({streams:e.uint.decode(d)})},ar={preencode(d,o){e.fixed32.preencode(d,o.streamKey),e.string.preencode(d,o.mediaStreamId),e.string.preencode(d,o.type),d.end++},encode(o,n){const c=d>=26&&n.muted?1:0;e.fixed32.encode(o,n.streamKey),e.string.encode(o,n.mediaStreamId),e.string.encode(o,n.type),e.uint.encode(o,c)},decode(o){const n=e.fixed32.decode(o),c=e.string.decode(o),t=e.string.decode(o),r=e.uint.decode(o);return{streamKey:n,mediaStreamId:c,type:t,muted:d>=26&&!!(1&r)}}},sr=$,pr={preencode(d,o){sr.preencode(d,o.header),e.fixed32.preencode(d,o.callKey),e.fixed32.preencode(d,o.streamKey),d.end++},encode(o,n){const c=d>=26&&n.muted?1:0;sr.encode(o,n.header),e.fixed32.encode(o,n.callKey),e.fixed32.encode(o,n.streamKey),e.uint.encode(o,c)},decode(o){const n=sr.decode(o),c=e.fixed32.decode(o),t=e.fixed32.decode(o),r=e.uint.decode(o);return{header:n,callKey:c,streamKey:t,muted:d>=26&&!!(1&r)}}},ur={preencode(d,o){e.uint.preencode(d,o.statusKey),d.end++},encode(o,n){const c=d>=26&&n.muted?1:0;e.uint.encode(o,n.statusKey),e.uint.encode(o,c)},decode(o){const n=e.uint.decode(o),c=e.uint.decode(o);return{statusKey:n,muted:d>=26&&!!(1&c)}}},lr={preencode(n,c){e.fixed32.preencode(n,c.key),n.end++,d>=27&&c.encryptionKey&&e.buffer.preencode(n,c.encryptionKey),d>=27&&c.bootFrom&&o.preencode(n,c.bootFrom)},encode(n,c){const t=(d>=27&&c.encryptionKey?1:0)|(d>=27&&c.bootFrom?2:0);e.fixed32.encode(n,c.key),e.uint.encode(n,t),d>=27&&c.encryptionKey&&e.buffer.encode(n,c.encryptionKey),d>=27&&c.bootFrom&&o.encode(n,c.bootFrom)},decode(n){const c=e.fixed32.decode(n),t=e.uint.decode(n);return{key:c,encryptionKey:d>=27&&1&t?e.buffer.decode(n):null,bootFrom:d>=27&&2&t?o.decode(n):null}}},fr={preencode(d,o){e.fixed32.preencode(d,o.hash)},encode(d,o){e.fixed32.encode(d,o.hash)},decode:d=>({hash:e.fixed32.decode(d)})},mr={preencode(d,o){e.fixed32.preencode(d,o.hash),e.buffer.preencode(d,o.data)},encode(d,o){e.fixed32.encode(d,o.hash),e.buffer.encode(d,o.data)},decode:d=>({hash:e.fixed32.decode(d),data:e.buffer.decode(d)})},yr={preencode(n,c){o.preencode(n,c.autobeeMigrationHead),n.end++,d>=27&&c.legacyViewHead&&o.preencode(n,c.legacyViewHead),d>=27&&c.dbViewHead&&o.preencode(n,c.dbViewHead),d>=27&&c.blobsViewHead&&o.preencode(n,c.blobsViewHead),e.uint.preencode(n,c.createdAt)},encode(n,c){const t=(d>=27&&c.legacyViewHead?1:0)|(d>=27&&c.dbViewHead?2:0)|(d>=27&&c.blobsViewHead?4:0);o.encode(n,c.autobeeMigrationHead),e.uint.encode(n,t),d>=27&&c.legacyViewHead&&o.encode(n,c.legacyViewHead),d>=27&&c.dbViewHead&&o.encode(n,c.dbViewHead),d>=27&&c.blobsViewHead&&o.encode(n,c.blobsViewHead),e.uint.encode(n,c.createdAt)},decode(n){const c=o.decode(n),t=e.uint.decode(n);return{autobeeMigrationHead:c,legacyViewHead:d>=27&&1&t?o.decode(n):null,dbViewHead:d>=27&&2&t?o.decode(n):null,blobsViewHead:d>=27&&4&t?o.decode(n):null,createdAt:e.uint.decode(n)}}},br=$,xr={preencode(e,n){br.preencode(e,n.header),o.preencode(e,n.head),e.end++,d>=27&&n.legacyViewHead&&o.preencode(e,n.legacyViewHead),d>=27&&n.dbViewHead&&o.preencode(e,n.dbViewHead),d>=27&&n.blobsViewHead&&o.preencode(e,n.blobsViewHead)},encode(n,c){const t=(d>=27&&c.legacyViewHead?1:0)|(d>=27&&c.dbViewHead?2:0)|(d>=27&&c.blobsViewHead?4:0);br.encode(n,c.header),o.encode(n,c.head),e.uint.encode(n,t),d>=27&&c.legacyViewHead&&o.encode(n,c.legacyViewHead),d>=27&&c.dbViewHead&&o.encode(n,c.dbViewHead),d>=27&&c.blobsViewHead&&o.encode(n,c.blobsViewHead)},decode(n){const c=br.decode(n),t=o.decode(n),r=e.uint.decode(n);return{header:c,head:t,legacyViewHead:d>=27&&1&r?o.decode(n):null,dbViewHead:d>=27&&2&r?o.decode(n):null,blobsViewHead:d>=27&&4&r?o.decode(n):null}}},kr={preencode(n,c){e.fixed32.preencode(n,c.roomKey),e.fixed32.preencode(n,c.encryptionKey),e.fixed32.preencode(n,c.seed),n.end++,d>=27&&c.bootFrom&&o.preencode(n,c.bootFrom)},encode(n,c){const t=d>=27&&c.bootFrom?1:0;e.fixed32.encode(n,c.roomKey),e.fixed32.encode(n,c.encryptionKey),e.fixed32.encode(n,c.seed),e.uint.encode(n,t),d>=27&&c.bootFrom&&o.encode(n,c.bootFrom)},decode(n){const c=e.fixed32.decode(n),t=e.fixed32.decode(n),r=e.fixed32.decode(n),i=e.uint.decode(n);return{roomKey:c,encryptionKey:t,seed:r,bootFrom:d>=27&&1&i?o.decode(n):null}}},vr=id,gr={preencode(d,o){e.fixed32.preencode(d,o.memberKey),e.fixed32.preencode(d,o.deviceKey),e.uint.preencode(d,o.deviceLength),e.uint.preencode(d,o.clock),vr.preencode(d,o.status)},encode(d,o){e.fixed32.encode(d,o.memberKey),e.fixed32.encode(d,o.deviceKey),e.uint.encode(d,o.deviceLength),e.uint.encode(d,o.clock),vr.encode(d,o.status)},decode:d=>({memberKey:e.fixed32.decode(d),deviceKey:e.fixed32.decode(d),deviceLength:e.uint.decode(d),clock:e.uint.decode(d),status:vr.decode(d)})},hr={preencode(d,o){e.fixed32.preencode(d,o.hash),e.buffer.preencode(d,o.blob)},encode(d,o){e.fixed32.encode(d,o.hash),e.buffer.encode(d,o.blob)},decode:d=>({hash:e.fixed32.decode(d),blob:e.buffer.decode(d)})},Kr=Fn,wr=Hn,Tr=vn,Ar={preencode(n,c){e.fixed32.preencode(n,c.roomKey),e.buffer.preencode(n,c.encryptionKey),e.fixed32.preencode(n,c.mailbox),Kr.preencode(n,c.status),e.uint.preencode(n,c.clock),n.end++,d>=27&&c.initiator&&o.preencode(n,c.initiator),d>=27&&c.bootFrom&&o.preencode(n,c.bootFrom),d>=27&&c.identitySwap&&wr.preencode(n,c.identitySwap),d>=27&&c.identitySwapV2&&Tr.preencode(n,c.identitySwapV2),d>=27&&c.contact&&e.fixed32.preencode(n,c.contact)},encode(n,c){const t=(d>=27&&c.initiator?1:0)|(d>=27&&c.bootFrom?2:0)|(d>=27&&c.identitySwap?4:0)|(d>=27&&c.identitySwapV2?8:0)|(d>=27&&c.contact?16:0);e.fixed32.encode(n,c.roomKey),e.buffer.encode(n,c.encryptionKey),e.fixed32.encode(n,c.mailbox),Kr.encode(n,c.status),e.uint.encode(n,c.clock),e.uint.encode(n,t),d>=27&&c.initiator&&o.encode(n,c.initiator),d>=27&&c.bootFrom&&o.encode(n,c.bootFrom),d>=27&&c.identitySwap&&wr.encode(n,c.identitySwap),d>=27&&c.identitySwapV2&&Tr.encode(n,c.identitySwapV2),d>=27&&c.contact&&e.fixed32.encode(n,c.contact)},decode(n){const c=e.fixed32.decode(n),t=e.buffer.decode(n),r=e.fixed32.decode(n),i=Kr.decode(n),a=e.uint.decode(n),s=e.uint.decode(n);return{roomKey:c,encryptionKey:t,mailbox:r,status:i,clock:a,initiator:d>=27&&1&s?o.decode(n):null,bootFrom:d>=27&&2&s?o.decode(n):null,identitySwap:d>=27&&4&s?wr.decode(n):null,identitySwapV2:d>=27&&8&s?Tr.decode(n):null,contact:d>=27&&16&s?e.fixed32.decode(n):null}}},Pr=$,Sr={preencode(n,c){Pr.preencode(n,c.header),e.fixed32.preencode(n,c.roomKey),e.buffer.preencode(n,c.encryptionKey),e.fixed32.preencode(n,c.mailbox),n.end++,d>=27&&c.bootFrom&&o.preencode(n,c.bootFrom),d>=27&&c.initiator&&o.preencode(n,c.initiator),d>=27&&c.dm&&e.fixed32.preencode(n,c.dm)},encode(n,c){const t=(d>=27&&c.bootFrom?1:0)|(d>=27&&c.initiator?2:0)|(d>=27&&c.dm?4:0)|(d>=27&&c.isReadOnly?8:0);Pr.encode(n,c.header),e.fixed32.encode(n,c.roomKey),e.buffer.encode(n,c.encryptionKey),e.fixed32.encode(n,c.mailbox),e.uint.encode(n,t),d>=27&&c.bootFrom&&o.encode(n,c.bootFrom),d>=27&&c.initiator&&o.encode(n,c.initiator),d>=27&&c.dm&&e.fixed32.encode(n,c.dm)},decode(n){const c=Pr.decode(n),t=e.fixed32.decode(n),r=e.buffer.decode(n),i=e.fixed32.decode(n),a=e.uint.decode(n);return{header:c,roomKey:t,encryptionKey:r,mailbox:i,bootFrom:d>=27&&1&a?o.decode(n):null,initiator:d>=27&&2&a?o.decode(n):null,dm:d>=27&&4&a?e.fixed32.decode(n):null,isReadOnly:d>=27&&!!(8&a)}}},Ir={preencode(d,o){e.fixed32.preencode(d,o.id),e.fixed32.preencode(d,o.writerKey),e.buffer.preencode(d,o.blindResponse)},encode(d,o){e.fixed32.encode(d,o.id),e.fixed32.encode(d,o.writerKey),e.buffer.encode(d,o.blindResponse)},decode:d=>({id:e.fixed32.decode(d),writerKey:e.fixed32.decode(d),blindResponse:e.buffer.decode(d)})},Rr=$,Fr={preencode(d,o){Rr.preencode(d,o.header),e.buffer.preencode(d,o.blindResponse)},encode(d,o){Rr.encode(d,o.header),e.buffer.encode(d,o.blindResponse)},decode:d=>({header:Rr.decode(d),blindResponse:e.buffer.decode(d)})},Hr=e.frame(w),Mr=e.frame(ir),Cr=Hr,Dr=e.array(Vc),Vr=e.frame(se),Lr=Hr,qr=Vr,Er=e.frame(hc),Br=e.frame(kr),zr=Vr,Nr=e.frame(fd),jr=e.frame(yc),Or=e.frame(xt),Ur=Or,Jr=e.array(e.frame(qc)),Gr=Hr,Qr=e.frame(Nn),Wr=e.frame(xc),Xr=Qr,Yr=Wr,Zr=Qr,$r=Wr,_r=Hr,ei=e.array(e.frame(ar)),di=ei;function oi(e){switch(e){case"@keet/head":return o;case"@keet/oplog-id":return n;case"@keet/encryption-keypair":return c;case"@keet/signing-keypair":return t;case"@keet/room-keys":return r;case"@keet/operation-header":return i;case"@keet/blob-pointer":return a;case"@keet/file-dimensions":return s;case"@keet/file-metadata":return u;case"@keet/external-drive-pointer":return l;case"@keet/external-blob-pointer":return f;case"@keet/file-pointer":return b;case"@keet/file":return v;case"@keet/image-file":return w;case"@keet/file-status":return T;case"@keet/file-record":return S;case"@keet/device-status":return I;case"@keet/member-status":return R;case"@keet/member-moderation-status":return F;case"@keet/abi":return H;case"@keet/device-stats":return M;case"@keet/member-stats":return C;case"@keet/chat-stats":return D;case"@keet/file-stats":return V;case"@keet/stats":return z;case"@keet/room-type":return j;case"@keet/system-settings":return O;case"@keet/system-digest":return G;case"@keet/room-seed":return Q;case"@keet/room-capabilities":return W;case"@keet/room-config":return Y;case"@keet/blind-peer":return Z;case"@keet/add-blind-peer-operation":return ee;case"@keet/remove-blind-peer-operation":return oe;case"@keet/identity-attestation":return ne;case"@keet/device-invitation":return ce;case"@keet/device":return ie;case"@keet/member-profile":return ae;case"@keet/device-profile":return se;case"@keet/member-update":return ue;case"@keet/device-update":return le;case"@keet/signed-pairing-data":return fe;case"@keet/device-request-identity":return me;case"@keet/device-response-identity":return ye;case"@keet/device-request-with-invitation":return ve;case"@keet/device-request-with-invitation-and-proof":return he;case"@keet/device-request-with-member-proof":return Te;case"@keet/device-request":return Se;case"@keet/device-response":return Fe;case"@keet/invitation-metadata":return He;case"@keet/invitation":return De;case"@keet/add-invitation-operation":return qe;case"@keet/remove-invitation-operation":return Be;case"@keet/sendable-room-invitation":return ze;case"@keet/sendable-identity-invitation":return Ne;case"@keet/sendable-contact-invitation":return je;case"@keet/sendable-invitation":return Qe;case"@keet/add-device-operation":return Xe;case"@keet/update-device-operation":return Ze;case"@keet/start-indexing-operation":return $e;case"@keet/stop-indexing-operation":return _e;case"@keet/join-request":return dd;case"@keet/accept-join-request-operation":return cd;case"@keet/reject-join-request-operation":return rd;case"@keet/member":return sd;case"@keet/full-member":return ld;case"@keet/member-proofs":return fd;case"@keet/update-member-operation":return bd;case"@keet/change-member-status-operation":return vd;case"@keet/change-member-role-operation":return hd;case"@keet/remove-member-operation":return wd;case"@keet/member-activity":return Td;case"@keet/member-joined-event":return Ad;case"@keet/member-left-event":return Pd;case"@keet/title-changed-chat-event":return Sd;case"@keet/chat-event":return Hd;case"@keet/sendable-event":return Md;case"@keet/display-range":return Cd;case"@keet/display-content-range":return Vd;case"@keet/mention-display-item":return qd;case"@keet/link-preview":return zd;case"@keet/display-link-item":return Od;case"@keet/display":return _d;case"@keet/oplog-message":return co;case"@keet/index-message":return io;case"@keet/full-index-message":return po;case"@keet/message-status":return uo;case"@keet/message-index-id":return lo;case"@keet/thread":return mo;case"@keet/chat-message-record":return ko;case"@keet/full-chat-message-record":return Ko;case"@keet/add-chat-message-operation":return Ao;case"@keet/remove-chat-message-operation":return So;case"@keet/update-chat-message-operation":return Fo;case"@keet/pin-chat-message-operation":return Mo;case"@keet/reaction":return Co;case"@keet/reactions-summary":return Do;case"@keet/reactions-digest":return Lo;case"@keet/add-reaction-operation":return Eo;case"@keet/remove-reaction-operation":return zo;case"@keet/update-room-config-operation":return Oo;case"@keet/group-member":return Uo;case"@keet/user-registry-info":return Jo;case"@keet/room-identity":return Qo;case"@keet/genesis-operation":return dn;case"@keet/upgrade-operation":return nn;case"@keet/update-system-settings-operation":return rn;case"@keet-private-id/contact":return an;case"@keet-private-id/v3-room-migration-info":return sn;case"@keet-private-id/run-v3-migration-operation":return ln;case"@keet-private-id/update-identity-operation":return mn;case"@keet-private-id/counters":return yn;case"@keet-private-id/stats":return bn;case"@keet-private-id/add-entropy-operation":return xn;case"@keet-private-id/pending-invitation-identity":return kn;case"@keet-private-id/pending-invitation":return gn;case"@keet-private-id/resolve-pending-invitation-operation":return Kn;case"@keet-private-id/add-pending-invitation-operation":return An;case"@keet-private-id/remove-pending-invitation-operation":return Sn;case"@keet-private-id/identity-swap":return In;case"@keet-private-id/room-status":return Rn;case"@keet-private-id/room":return Cn;case"@keet-private-id/add-room-operation":return Vn;case"@keet-private-id/remove-room-operation":return qn;case"@keet-private-id/update-room-status-operation":return zn;case"@keet-private-id/contact-status":return Nn;case"@keet-private-id/contact-record":return jn;case"@keet-private-id/add-contact-operation":return Jn;case"@keet-private-id/update-contact-status-operation":return Qn;case"@keet-private-id/remove-contact-operation":return Xn;case"@keet-private-id/contact-request-status":return Yn;case"@keet-private-id/contact-request-body":return _n;case"@keet-private-id/contact-request":return dc;case"@keet-private-id/contact-request-record":return tc;case"@keet-private-id/add-contact-request-operation":return ic;case"@keet-private-id/update-contact-request-status-operation":return pc;case"@keet-private-id/profile-discovery-record-v1":return uc;case"@keet-private-id/profile-discovery-record":return lc;case"@keet/add-file-preview-operation":return mc;case"@keet/member-removed-event":return yc;case"@keet/member-contact-info":return xc;case"@keet/remove-device-operation":return vc;case"@keet/device-identity":return gc;case"@keet/readonly-room-invitation":return hc;case"@keet-private-id/identity-swap-v2":return Kc;case"@keet-private-id/activate-contact-room-operation":return Tc;case"@keet/display-type":return Pc;case"@keet/test-increment-operation":return Ic;case"@keet/test-collection-record-1":return Rc;case"@keet/migrate-abi-operation":return Hc;case"@keet/system-settings-keys":return Cc;case"@keet/room-supported-language":return Vc;case"@keet/translation-display-item":return qc;case"@keet-private-id/unreads":return Ec;case"@keet-private-id/add-unreads-key-operation":return zc;case"@keet-private-id/remove-unreads-key-operation":return jc;case"@keet/label-type":return Uc;case"@keet/chat-label":return Jc;case"@keet/add-chat-label-operation":return Qc;case"@keet/remove-chat-label-operation":return Xc;case"@keet/chat-label-summary":return Yc;case"@keet/chat-label-digest":return $c;case"@keet/update-read-length-operation":return et;case"@keet/read-length":return dt;case"@keet/tmp-removed-member":return ot;case"@keet-private-id/settings":return nt;case"@keet-private-id/user-settings-key":return tt;case"@keet-private-id/update-settings-operation":return at;case"@keet/member-label-type":return pt;case"@keet/member-label":return ut;case"@keet/add-member-label-operation":return ft;case"@keet/member-label-summary":return mt;case"@keet/member-label-digest":return bt;case"@keet/location-shared-event":return xt;case"@keet/move-indexer-operation":return vt;case"@keet/start-call":return Kt;case"@keet/join-call":return At;case"@keet/leave-call":return St;case"@keet/end-call":return Rt;case"@keet/add-call-stream":return Ht;case"@keet/remove-call-stream":return Ct;case"@keet/call-record":return Dt;case"@keet/call-member-record":return Vt;case"@keet/call-device-record":return Lt;case"@keet/call-stream-record":return qt;case"@keet/build-type":return Bt;case"@keet/test-crash-operation":return Nt;case"@keet/test-dispatch-error-operation":return Ot;case"@keet-private-id/shorten-device-attestation-operation":return Jt;case"@keet/call-device-heartbeat":return Qt;case"@keet/remove-call-device":return Xt;case"@keet/start-call-recording":return Zt;case"@keet/stop-call-recording":return _t;case"@keet/dismiss-chat-reports-operation":return dr;case"@keet/update-typing-indicator-operation":return nr;case"@keet/typing-indicator":return cr;case"@keet-private-id/update-contact-alias-operation":return rr;case"@keet/call-stats":return ir;case"@keet/call-stream-input":return ar;case"@keet/update-call-stream":return pr;case"@keet/call-stream-status-record":return ur;case"@keet/room-keys-v2":return lr;case"@keet/blob-pointer-v2":return fr;case"@keet/blob":return mr;case"@keet/autobee-migration":return yr;case"@keet/autobee-migration-operation":return xr;case"@keet/readonly-room-invitation-v2":return kr;case"@keet/admin-last-seen":return gr;case"@keet/blob-record":return hr;case"@keet-private-id/room-v2":return Ar;case"@keet-private-id/add-room-operation-v2":return Sr;case"@keet-private-id/pending-invitation-response":return Ir;case"@keet-private-id/resolve-pending-invitation-operation-v2":return Fr;default:throw new Error("Encoder not found "+e)}}function ni(e,o=29){const n=oi(e);return{preencode(e,c){d=o,n.preencode(e,c)},encode(e,c){d=o,n.encode(e,c)},decode:e=>(d=o,n.decode(e))}}const ci=ni;module.exports={resolveStruct:ci,getStruct:ni,getEnum:function(e){switch(e){case"@keet/room-type":return N;case"@keet/display-type":return Ac;case"@keet/system-settings-keys":return Mc;case"@keet/room-supported-language":return Dc;case"@keet/label-type":return Oc;case"@keet-private-id/user-settings-key":return ct;case"@keet/member-label-type":return st;case"@keet/build-type":return Et;default:throw new Error("Enum not found "+e)}},getEncoding:oi,encode:function(o,n,c=29){return d=c,e.encode(oi(o),n)},decode:function(o,n,c=29){return d=c,e.decode(oi(o),n)},setVersion:function(e){d=e},version:d};
@holepunchto/keet-core/schema/spec/contract/hyperschema/index.js +1 -1
……@@ -1 +1 @@
1const{c:e}=require("hyperschema/runtime");let d=24;const o={preencode(d,o){e.fixed32.preencode(d,o.key),e.uint.preencode(d,o.length)},encode(d,o){e.fixed32.encode(d,o.key),e.uint.encode(d,o.length)},decode:d=>({key:e.fixed32.decode(d),length:e.uint.decode(d)})},n={preencode(d,o){e.fixed32.preencode(d,o.key),e.uint.preencode(d,o.seq)},encode(d,o){e.fixed32.encode(d,o.key),e.uint.encode(d,o.seq)},decode:d=>({key:e.fixed32.decode(d),seq:e.uint.decode(d)})},c={preencode(d,o){e.fixed32.preencode(d,o.publicKey),e.fixed32.preencode(d,o.secretKey)},encode(d,o){e.fixed32.encode(d,o.publicKey),e.fixed32.encode(d,o.secretKey)},decode:d=>({publicKey:e.fixed32.decode(d),secretKey:e.fixed32.decode(d)})},r={preencode(d,o){e.fixed32.preencode(d,o.publicKey),e.fixed64.preencode(d,o.secretKey)},encode(d,o){e.fixed32.encode(d,o.publicKey),e.fixed64.encode(d,o.secretKey)},decode:d=>({publicKey:e.fixed32.decode(d),secretKey:e.fixed64.decode(d)})},t={preencode(d,o){e.fixed32.preencode(d,o.key),d.end++,o.encryptionKey&&e.buffer.preencode(d,o.encryptionKey),o.fastForwardTo&&e.fixed32.preencode(d,o.fastForwardTo)},encode(d,o){const n=(o.encryptionKey?1:0)|(o.fastForwardTo?2:0);e.fixed32.encode(d,o.key),e.uint.encode(d,n),o.encryptionKey&&e.buffer.encode(d,o.encryptionKey),o.fastForwardTo&&e.fixed32.encode(d,o.fastForwardTo)},decode(d){const o=e.fixed32.decode(d),n=e.uint.decode(d);return{key:o,encryptionKey:1&n?e.buffer.decode(d):null,fastForwardTo:2&n?e.fixed32.decode(d):null}}},i={preencode(d,o){e.uint.preencode(d,o.timestamp)},encode(d,o){e.uint.encode(d,o.timestamp)},decode:d=>({timestamp:e.uint.decode(d)})},a={preencode(d,o){e.uint.preencode(d,o.blockOffset),e.uint.preencode(d,o.blockLength),e.uint.preencode(d,o.byteOffset),e.uint.preencode(d,o.byteLength)},encode(d,o){e.uint.encode(d,o.blockOffset),e.uint.encode(d,o.blockLength),e.uint.encode(d,o.byteOffset),e.uint.encode(d,o.byteLength)},decode:d=>({blockOffset:e.uint.decode(d),blockLength:e.uint.decode(d),byteOffset:e.uint.decode(d),byteLength:e.uint.decode(d)})},s={preencode(d,o){e.uint.preencode(d,o.width),e.uint.preencode(d,o.height)},encode(d,o){e.uint.encode(d,o.width),e.uint.encode(d,o.height)},decode:d=>({width:e.uint.decode(d),height:e.uint.decode(d)})},p=e.frame(s),u={preencode(d,o){d.end++,o.name&&e.string.preencode(d,o.name),o.mimetype&&e.string.preencode(d,o.mimetype),o.dimensions&&p.preencode(d,o.dimensions),o.userdata&&e.buffer.preencode(d,o.userdata),o.duration&&e.uint.preencode(d,o.duration)},encode(d,o){const n=(o.name?1:0)|(o.mimetype?2:0)|(o.dimensions?4:0)|(o.userdata?8:0)|(o.duration?16:0)|(o.isPreview?32:0);e.uint.encode(d,n),o.name&&e.string.encode(d,o.name),o.mimetype&&e.string.encode(d,o.mimetype),o.dimensions&&p.encode(d,o.dimensions),o.userdata&&e.buffer.encode(d,o.userdata),o.duration&&e.uint.encode(d,o.duration)},decode(d){const o=e.uint.decode(d);return{name:1&o?e.string.decode(d):null,mimetype:2&o?e.string.decode(d):null,dimensions:4&o?p.decode(d):null,userdata:8&o?e.buffer.decode(d):null,duration:16&o?e.uint.decode(d):0,isPreview:!!(32&o)}}},l={preencode(d,o){e.fixed32.preencode(d,o.key),e.string.preencode(d,o.path),e.uint.preencode(d,o.version),e.uint.preencode(d,o.size)},encode(d,o){e.fixed32.encode(d,o.key),e.string.encode(d,o.path),e.uint.encode(d,o.version),e.uint.encode(d,o.size)},decode:d=>({key:e.fixed32.decode(d),path:e.string.decode(d),version:e.uint.decode(d),size:e.uint.decode(d)})},f={preencode(d,o){e.fixed32.preencode(d,o.key),a.preencode(d,o.blob)},encode(d,o){e.fixed32.encode(d,o.key),a.encode(d,o.blob)},decode:d=>({key:e.fixed32.decode(d),blob:a.decode(d)})},m=e.frame(f),y=e.frame(l),x={preencode(d,o){d.end++,o.inlined&&e.buffer.preencode(d,o.inlined),o.blob&&a.preencode(d,o.blob),o.externalBlob&&m.preencode(d,o.externalBlob),o.externalDrive&&y.preencode(d,o.externalDrive)},encode(d,o){const n=(o.inlined?1:0)|(o.blob?2:0)|(o.externalBlob?4:0)|(o.externalDrive?8:0);e.uint.encode(d,n),o.inlined&&e.buffer.encode(d,o.inlined),o.blob&&a.encode(d,o.blob),o.externalBlob&&m.encode(d,o.externalBlob),o.externalDrive&&y.encode(d,o.externalDrive)},decode(d){const o=e.uint.decode(d);return{inlined:1&o?e.buffer.decode(d):null,blob:2&o?a.decode(d):null,externalBlob:4&o?m.decode(d):null,externalDrive:8&o?y.decode(d):null}}},b=e.frame(x),k=e.frame(u),v={preencode(d,o){b.preencode(d,o.pointer),d.end++,o.metadata&&k.preencode(d,o.metadata),o.preview&&it.preencode(d,o.preview),o.hash&&e.fixed32.preencode(d,o.hash)},encode(d,o){const n=(o.metadata?1:0)|(o.preview?2:0)|(o.hash?4:0);b.encode(d,o.pointer),e.uint.encode(d,n),o.metadata&&k.encode(d,o.metadata),o.preview&&it.encode(d,o.preview),o.hash&&e.fixed32.encode(d,o.hash)},decode(d){const o=b.decode(d),n=e.uint.decode(d);return{pointer:o,metadata:1&n?k.decode(d):null,preview:2&n?it.decode(d):null,hash:4&n?e.fixed32.decode(d):null}}},g=e.frame(v),h=g,K=g,w={preencode(e,d){e.end++,d.small&&g.preencode(e,d.small),d.medium&&h.preencode(e,d.medium),d.large&&K.preencode(e,d.large)},encode(d,o){const n=(o.small?1:0)|(o.medium?2:0)|(o.large?4:0);e.uint.encode(d,n),o.small&&g.encode(d,o.small),o.medium&&h.encode(d,o.medium),o.large&&K.encode(d,o.large)},decode(d){const o=e.uint.decode(d);return{small:1&o?g.decode(d):null,medium:2&o?h.decode(d):null,large:4&o?K.decode(d):null}}},T={preencode(e,d){e.end++},encode(d,o){const n=o.isDeleted?1:0;e.uint.encode(d,n)},decode:d=>({isDeleted:!!(1&e.uint.decode(d))})},A=e.frame(T),P=g,R={preencode(o,c){e.uint.preencode(o,c.id),n.preencode(o,c.oplog),A.preencode(o,c.status),P.preencode(o,c.file),o.end++,d>=14&&c.version&&e.uint.preencode(o,c.version)},encode(o,c){const r=d>=14&&c.version?1:0;e.uint.encode(o,c.id),n.encode(o,c.oplog),A.encode(o,c.status),P.encode(o,c.file),e.uint.encode(o,r),d>=14&&c.version&&e.uint.encode(o,c.version)},decode(o){const c=e.uint.decode(o),r=n.decode(o),t=A.decode(o),i=P.decode(o),a=o.start<o.end?e.uint.decode(o):0;return{id:c,oplog:r,status:t,file:i,version:d>=14&&1&a?e.uint.decode(o):0}}},S={preencode(e,d){e.end++},encode(d,o){const n=(o.isActive?1:0)|(o.isIndexing?2:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isActive:!!(1&o),isIndexing:!!(2&o)}}},D={preencode(o,n){const c=(n.isAdmin?1:0)|(n.isModerator?2:0)|(n.isPending?4:0)|(n.isActive?8:0)|(n.isMuted?16:0)|(n.isBanned?32:0)|(n.isShadowBanned?64:0)|(d>=13&&n.isRemoved?128:0);e.uint.preencode(o,c)},encode(o,n){const c=(n.isAdmin?1:0)|(n.isModerator?2:0)|(n.isPending?4:0)|(n.isActive?8:0)|(n.isMuted?16:0)|(n.isBanned?32:0)|(n.isShadowBanned?64:0)|(d>=13&&n.isRemoved?128:0);e.uint.encode(o,c)},decode(o){const n=e.uint.decode(o);return{isAdmin:!!(1&n),isModerator:!!(2&n),isPending:!!(4&n),isActive:!!(8&n),isMuted:!!(16&n),isBanned:!!(32&n),isShadowBanned:!!(64&n),isRemoved:d>=13&&!!(128&n)}}},I={preencode(e,d){e.end++},encode(d,o){const n=(o.isMuted?1:0)|(o.isBanned?2:0)|(o.isShadowBanned?4:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isMuted:!!(1&o),isBanned:!!(2&o),isShadowBanned:!!(4&o)}}},M={preencode(d,o){e.uint.preencode(d,o.version)},encode(d,o){e.uint.encode(d,o.version)},decode:d=>({version:e.uint.decode(d)})},C={preencode(d,o){e.uint.preencode(d,o.total),e.uint.preencode(d,o.active)},encode(d,o){e.uint.encode(d,o.total),e.uint.encode(d,o.active)},decode:d=>({total:e.uint.decode(d),active:e.uint.decode(d)})},L={preencode(d,o){e.uint.preencode(d,o.total),e.uint.preencode(d,o.active),e.uint.preencode(d,o.pending)},encode(d,o){e.uint.encode(d,o.total),e.uint.encode(d,o.active),e.uint.encode(d,o.pending)},decode:d=>({total:e.uint.decode(d),active:e.uint.decode(d),pending:e.uint.decode(d)})},q={preencode(o,n){e.uint.preencode(o,n.clock),e.uint.preencode(o,n.pinned),e.uint.preencode(o,n.threads),e.uint.preencode(o,n.timestamp),o.end++,d>=15&&n.flagsClock&&e.uint.preencode(o,n.flagsClock)},encode(o,n){const c=d>=15&&n.flagsClock?1:0;e.uint.encode(o,n.clock),e.uint.encode(o,n.pinned),e.uint.encode(o,n.threads),e.uint.encode(o,n.timestamp),e.uint.encode(o,c),d>=15&&n.flagsClock&&e.uint.encode(o,n.flagsClock)},decode(o){const n=e.uint.decode(o),c=e.uint.decode(o),r=e.uint.decode(o),t=e.uint.decode(o),i=o.start<o.end?e.uint.decode(o):0;return{clock:n,pinned:c,threads:r,timestamp:t,flagsClock:d>=15&&1&i?e.uint.decode(o):0}}},F={preencode(d,o){e.uint.preencode(d,o.clock)},encode(d,o){e.uint.encode(d,o.clock)},decode:d=>({clock:e.uint.decode(d)})},E=e.frame(C),B=e.frame(L),N=e.frame(q),H=e.frame(F),j={preencode(e,d){E.preencode(e,d.devices),B.preencode(e,d.members),N.preencode(e,d.chat),H.preencode(e,d.files)},encode(e,d){E.encode(e,d.devices),B.encode(e,d.members),N.encode(e,d.chat),H.encode(e,d.files)},decode:e=>({devices:E.decode(e),members:B.decode(e),chat:N.decode(e),files:H.decode(e)})},z={Default:1,Broadcast:2,DirectMessage:3},U={preencode(e,d){e.end++},encode(d,o){if(o>3)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},O={preencode(o,n){const c=(n.roomType?1:0)|(n.isExperimental?2:0)|(n.isJoiningDisabled?4:0)|(n.isAppendingDisabled?8:0)|(n.isCallingDisabled?16:0)|(n.isMembershipEventsDisabled?32:0)|(d>=19&&n.isAttachmentsDisabled?64:0)|(d>=19&&n.isLinksDisabled?128:0)|(d>=20&&n.buildType?256:0)|(d>=23&&n.isRoomInviteHidden?512:0);e.uint.preencode(o,c),n.roomType&&U.preencode(o,n.roomType),d>=20&&n.buildType&&Hr.preencode(o,n.buildType)},encode(o,n){const c=(n.roomType?1:0)|(n.isExperimental?2:0)|(n.isJoiningDisabled?4:0)|(n.isAppendingDisabled?8:0)|(n.isCallingDisabled?16:0)|(n.isMembershipEventsDisabled?32:0)|(d>=19&&n.isAttachmentsDisabled?64:0)|(d>=19&&n.isLinksDisabled?128:0)|(d>=20&&n.buildType?256:0)|(d>=23&&n.isRoomInviteHidden?512:0);e.uint.encode(o,c),n.roomType&&U.encode(o,n.roomType),d>=20&&n.buildType&&Hr.encode(o,n.buildType)},decode(o){const n=e.uint.decode(o);return{roomType:1&n?U.decode(o):0,isExperimental:!!(2&n),isJoiningDisabled:!!(4&n),isAppendingDisabled:!!(8&n),isCallingDisabled:!!(16&n),isMembershipEventsDisabled:!!(32&n),isAttachmentsDisabled:d>=19&&!!(64&n),isLinksDisabled:d>=19&&!!(128&n),buildType:d>=20&&256&n?Hr.decode(o):null,isRoomInviteHidden:d>=23&&!!(512&n)}}},J=e.frame(M),V=e.frame(O),G={preencode(d,o){J.preencode(d,o.abi),V.preencode(d,o.settings),e.uint.preencode(d,o.creationTime)},encode(d,o){J.encode(d,o.abi),V.encode(d,o.settings),e.uint.encode(d,o.creationTime)},decode:d=>({abi:J.decode(d),settings:V.decode(d),creationTime:e.uint.decode(d)})},Q={preencode(d,o){e.fixed32.preencode(d,o.seed)},encode(d,o){e.fixed32.encode(d,o.seed)},decode:d=>({seed:e.fixed32.decode(d)})},W={preencode(d,o){c.preencode(d,o.mailboxKeyPair),r.preencode(d,o.discoveryKeyPair),e.fixed32.preencode(d,o.wakeupTopic),e.fixed32.preencode(d,o.swarmTopic)},encode(d,o){c.encode(d,o.mailboxKeyPair),r.encode(d,o.discoveryKeyPair),e.fixed32.encode(d,o.wakeupTopic),e.fixed32.encode(d,o.swarmTopic)},decode:d=>({mailboxKeyPair:c.decode(d),discoveryKeyPair:r.decode(d),wakeupTopic:e.fixed32.decode(d),swarmTopic:e.fixed32.decode(d)})},X=e.array(e.fixed32),Y={preencode(o,n){o.end++,n.title&&e.string.preencode(o,n.title),n.avatar&&at.preencode(o,n.avatar),n.description&&e.string.preencode(o,n.description),d>=11&&n.supportedLanguages&&st.preencode(o,n.supportedLanguages),d>=13&&n.blindPeers&&X.preencode(o,n.blindPeers)},encode(o,n){const c=(n.title?1:0)|(n.avatar?2:0)|(n.description?4:0)|(d>=11&&n.supportedLanguages?8:0)|(d>=13&&n.blindPeers?16:0);e.uint.encode(o,c),n.title&&e.string.encode(o,n.title),n.avatar&&at.encode(o,n.avatar),n.description&&e.string.encode(o,n.description),d>=11&&n.supportedLanguages&&st.encode(o,n.supportedLanguages),d>=13&&n.blindPeers&&X.encode(o,n.blindPeers)},decode(o){const n=e.uint.decode(o);return{title:1&n?e.string.decode(o):null,avatar:2&n?at.decode(o):null,description:4&n?e.string.decode(o):null,supportedLanguages:d>=11&&8&n?st.decode(o):null,blindPeers:d>=13&&16&n?X.decode(o):null}}},Z={preencode(d,o){e.fixed32.preencode(d,o.key)},encode(d,o){e.fixed32.encode(d,o.key)},decode:d=>({key:e.fixed32.decode(d)})},$=e.frame(i),_=e.frame(Z),ee={preencode(e,d){$.preencode(e,d.header),_.preencode(e,d.peer)},encode(e,d){$.encode(e,d.header),_.encode(e,d.peer)},decode:e=>({header:$.decode(e),peer:_.decode(e)})},de=$,oe={preencode(d,o){de.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){de.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:de.decode(d),key:e.fixed32.decode(d)})},ne={preencode(d,o){e.fixed32.preencode(d,o.memberKey),e.buffer.preencode(d,o.proof)},encode(d,o){e.fixed32.encode(d,o.memberKey),e.buffer.encode(d,o.proof)},decode:d=>({memberKey:e.fixed32.decode(d),proof:e.buffer.decode(d)})},ce={preencode(d,o){e.fixed32.preencode(d,o.id),e.buffer.preencode(d,o.response)},encode(d,o){e.fixed32.encode(d,o.id),e.buffer.encode(d,o.response)},decode:d=>({id:e.fixed32.decode(d),response:e.buffer.decode(d)})},re=e.frame(S),te=e.frame(ce),ie={preencode(d,o){e.fixed32.preencode(d,o.key),e.fixed32.preencode(d,o.memberKey),re.preencode(d,o.status),pt.preencode(d,o.profile),d.end++,o.invitation&&te.preencode(d,o.invitation)},encode(d,o){const n=o.invitation?1:0;e.fixed32.encode(d,o.key),e.fixed32.encode(d,o.memberKey),re.encode(d,o.status),pt.encode(d,o.profile),e.uint.encode(d,n),o.invitation&&te.encode(d,o.invitation)},decode:d=>({key:e.fixed32.decode(d),memberKey:e.fixed32.decode(d),status:re.decode(d),profile:pt.decode(d),invitation:1&e.uint.decode(d)?te.decode(d):null})},ae={preencode(d,o){e.uint.preencode(d,o.timestamp),d.end++,o.mailbox&&e.fixed32.preencode(d,o.mailbox),o.displayName&&e.string.preencode(d,o.displayName),o.avatar&&ut.preencode(d,o.avatar),o.username&&e.string.preencode(d,o.username)},encode(d,o){const n=(o.mailbox?1:0)|(o.displayName?2:0)|(o.avatar?4:0)|(o.username?8:0);e.uint.encode(d,o.timestamp),e.uint.encode(d,n),o.mailbox&&e.fixed32.encode(d,o.mailbox),o.displayName&&e.string.encode(d,o.displayName),o.avatar&&ut.encode(d,o.avatar),o.username&&e.string.encode(d,o.username)},decode(d){const o=e.uint.decode(d),n=e.uint.decode(d);return{timestamp:o,mailbox:1&n?e.fixed32.decode(d):null,displayName:2&n?e.string.decode(d):null,avatar:4&n?ut.decode(d):null,username:8&n?e.string.decode(d):null}}},se={preencode(o,n){o.end++,n.swarmKey&&e.fixed32.preencode(o,n.swarmKey),n.name&&e.string.preencode(o,n.name),d>=20&&n.buildType&&Hr.preencode(o,n.buildType)},encode(o,n){const c=(n.swarmKey?1:0)|(n.name?2:0)|(n.isMobile?4:0)|(d>=20&&n.buildType?8:0);e.uint.encode(o,c),n.swarmKey&&e.fixed32.encode(o,n.swarmKey),n.name&&e.string.encode(o,n.name),d>=20&&n.buildType&&Hr.encode(o,n.buildType)},decode(o){const n=e.uint.decode(o);return{swarmKey:1&n?e.fixed32.decode(o):null,name:2&n?e.string.decode(o):null,isMobile:!!(4&n),buildType:d>=20&&8&n?Hr.decode(o):null}}},pe=e.frame(ae),ue={preencode(e,d){pe.preencode(e,d.profile),ne.preencode(e,d.attestation)},encode(e,d){pe.encode(e,d.profile),ne.encode(e,d.attestation)},decode:e=>({profile:pe.decode(e),attestation:ne.decode(e)})},le={preencode(e,d){lt.preencode(e,d.profile),ne.preencode(e,d.attestation)},encode(e,d){lt.encode(e,d.profile),ne.encode(e,d.attestation)},decode:e=>({profile:lt.decode(e),attestation:ne.decode(e)})},fe={preencode(d,o){e.fixed32.preencode(d,o.id),e.buffer.preencode(d,o.data),e.buffer.preencode(d,o.signature)},encode(d,o){e.fixed32.encode(d,o.id),e.buffer.encode(d,o.data),e.buffer.encode(d,o.signature)},decode:d=>({id:e.fixed32.decode(d),data:e.buffer.decode(d),signature:e.buffer.decode(d)})},me={preencode(d,o){e.fixed32.preencode(d,o.devicePublicKey)},encode(d,o){e.fixed32.encode(d,o.devicePublicKey)},decode:d=>({devicePublicKey:e.fixed32.decode(d)})},ye={preencode(d,o){ne.preencode(d,o.privateProfileIdentity),e.buffer.preencode(d,o.deviceProof)},encode(d,o){ne.encode(d,o.privateProfileIdentity),e.buffer.encode(d,o.deviceProof)},decode:d=>({privateProfileIdentity:ne.decode(d),deviceProof:e.buffer.decode(d)})},xe=e.frame(le),be=e.frame(ue),ke=e.frame(me),ve={preencode(d,o){e.fixed32.preencode(d,o.deviceKey),r.preencode(d,o.keyPair),xe.preencode(d,o.device),be.preencode(d,o.member),d.end++,o.identity&&ke.preencode(d,o.identity)},encode(d,o){const n=o.identity?1:0;e.fixed32.encode(d,o.deviceKey),r.encode(d,o.keyPair),xe.encode(d,o.device),be.encode(d,o.member),e.uint.encode(d,n),o.identity&&ke.encode(d,o.identity)},decode:d=>({deviceKey:e.fixed32.decode(d),keyPair:r.decode(d),device:xe.decode(d),member:be.decode(d),identity:1&e.uint.decode(d)?ke.decode(d):null})},ge=e.frame(ve),he={preencode(d,o){e.fixed32.preencode(d,o.id),ge.preencode(d,o.request),e.buffer.preencode(d,o.signature)},encode(d,o){e.fixed32.encode(d,o.id),ge.encode(d,o.request),e.buffer.encode(d,o.signature)},decode:d=>({id:e.fixed32.decode(d),request:ge.decode(d),signature:e.buffer.decode(d)})},Ke=xe,we=be,Te={preencode(e,d){Ke.preencode(e,d.device),e.end++,d.member&&we.preencode(e,d.member)},encode(d,o){const n=o.member?1:0;Ke.encode(d,o.device),e.uint.encode(d,n),o.member&&we.encode(d,o.member)},decode:d=>({device:Ke.decode(d),member:1&e.uint.decode(d)?we.decode(d):null})},Ae=e.frame(he),Pe=e.frame(Te),Re={preencode(e,d){e.end++,d.withInvitation&&Ae.preencode(e,d.withInvitation),d.withMemberProof&&Pe.preencode(e,d.withMemberProof)},encode(d,o){const n=(o.withInvitation?1:0)|(o.withMemberProof?2:0);e.uint.encode(d,n),o.withInvitation&&Ae.encode(d,o.withInvitation),o.withMemberProof&&Pe.encode(d,o.withMemberProof)},decode(d){const o=e.uint.decode(d);return{withInvitation:1&o?Ae.decode(d):null,withMemberProof:2&o?Pe.decode(d):null}}},Se=e.frame(fe),De=e.frame(ye),Ie={preencode(e,d){Se.preencode(e,d.signedKeys),e.end++,d.identity&&De.preencode(e,d.identity)},encode(d,o){const n=o.identity?1:0;Se.encode(d,o.signedKeys),e.uint.encode(d,n),o.identity&&De.encode(d,o.identity)},decode:d=>({signedKeys:Se.decode(d),identity:1&e.uint.decode(d)?De.decode(d):null})},Me={preencode(o,n){o.end++,n.expiration&&e.uint.preencode(o,n.expiration),d>=20&&n.buildType&&Hr.preencode(o,n.buildType)},encode(o,n){const c=(n.expiration?1:0)|(n.requiresConfirmation?2:0)|(n.canModerate?4:0)|(n.canAdmin?8:0)|(d>=20&&n.buildType?16:0);e.uint.encode(o,c),n.expiration&&e.uint.encode(o,n.expiration),d>=20&&n.buildType&&Hr.encode(o,n.buildType)},decode(o){const n=e.uint.decode(o);return{expiration:1&n?e.uint.decode(o):0,requiresConfirmation:!!(2&n),canModerate:!!(4&n),canAdmin:!!(8&n),buildType:d>=20&&16&n?Hr.decode(o):null}}},Ce=Se,Le=e.frame(Me),qe={preencode(d,n){e.fixed32.preencode(d,n.id),Ce.preencode(d,n.response),Le.preencode(d,n.metadata),d.end++,n.anchor&&o.preencode(d,n.anchor)},encode(d,n){const c=(n.anchor?1:0)|(n.isActive?2:0);e.fixed32.encode(d,n.id),Ce.encode(d,n.response),Le.encode(d,n.metadata),e.uint.encode(d,c),n.anchor&&o.encode(d,n.anchor)},decode(d){const n=e.fixed32.decode(d),c=Ce.decode(d),r=Le.decode(d),t=e.uint.decode(d);return{id:n,response:c,metadata:r,anchor:1&t?o.decode(d):null,isActive:!!(2&t)}}},Fe=$,Ee=e.frame(qe),Be={preencode(e,d){Fe.preencode(e,d.header),Ee.preencode(e,d.invitation)},encode(e,d){Fe.encode(e,d.header),Ee.encode(e,d.invitation)},decode:e=>({header:Fe.decode(e),invitation:Ee.decode(e)})},Ne=$,He={preencode(d,o){Ne.preencode(d,o.header),e.fixed32.preencode(d,o.id)},encode(d,o){Ne.encode(d,o.header),e.fixed32.encode(d,o.id)},decode:d=>({header:Ne.decode(d),id:e.fixed32.decode(d)})},je={preencode(d,n){e.fixed32.preencode(d,n.mailbox),e.fixed32.preencode(d,n.invitationSeed),o.preencode(d,n.anchor)},encode(d,n){e.fixed32.encode(d,n.mailbox),e.fixed32.encode(d,n.invitationSeed),o.encode(d,n.anchor)},decode:d=>({mailbox:e.fixed32.decode(d),invitationSeed:e.fixed32.decode(d),anchor:o.decode(d)})},ze={preencode(d,n){e.fixed32.preencode(d,n.mailbox),e.fixed32.preencode(d,n.invitationSeed),o.preencode(d,n.anchor),e.fixed32.preencode(d,n.identityPublicKey)},encode(d,n){e.fixed32.encode(d,n.mailbox),e.fixed32.encode(d,n.invitationSeed),o.encode(d,n.anchor),e.fixed32.encode(d,n.identityPublicKey)},decode:d=>({mailbox:e.fixed32.decode(d),invitationSeed:e.fixed32.decode(d),anchor:o.decode(d),identityPublicKey:e.fixed32.decode(d)})},Ue={preencode(d,o){e.fixed32.preencode(d,o.mailbox)},encode(d,o){e.fixed32.encode(d,o.mailbox)},decode:d=>({mailbox:e.fixed32.decode(d)})},Oe=e.frame(je),Je=e.frame(ze),Ve=e.frame(Ue),Ge=e.array(e.ipv4Address),Qe={preencode(e,o){e.end++,o.room&&Oe.preencode(e,o.room),o.identity&&Je.preencode(e,o.identity),o.contact&&Ve.preencode(e,o.contact),d>=6&&o.readonly&&ft.preencode(e,o.readonly),d>=11&&o.additionalNodes&&Ge.preencode(e,o.additionalNodes),d>=20&&o.buildType&&Hr.preencode(e,o.buildType)},encode(o,n){const c=(n.room?1:0)|(n.identity?2:0)|(n.contact?4:0)|(d>=6&&n.readonly?8:0)|(d>=11&&n.additionalNodes?16:0)|(d>=20&&n.buildType?32:0);e.uint.encode(o,c),n.room&&Oe.encode(o,n.room),n.identity&&Je.encode(o,n.identity),n.contact&&Ve.encode(o,n.contact),d>=6&&n.readonly&&ft.encode(o,n.readonly),d>=11&&n.additionalNodes&&Ge.encode(o,n.additionalNodes),d>=20&&n.buildType&&Hr.encode(o,n.buildType)},decode(o){const n=e.uint.decode(o);return{room:1&n?Oe.decode(o):null,identity:2&n?Je.decode(o):null,contact:4&n?Ve.decode(o):null,readonly:d>=6&&8&n?ft.decode(o):null,additionalNodes:d>=11&&16&n?Ge.decode(o):null,buildType:d>=20&&32&n?Hr.decode(o):null}}},We=$,Xe={preencode(d,o){We.preencode(d,o.header),e.buffer.preencode(d,o.blindRequest)},encode(d,o){We.encode(d,o.header),e.buffer.encode(d,o.blindRequest)},decode:d=>({header:We.decode(d),blindRequest:e.buffer.decode(d)})},Ye=$,Ze={preencode(o,n){Ye.preencode(o,n.header),o.end++,n.profile&&mt.preencode(o,n.profile),d>=24&&n.key&&e.fixed32.preencode(o,n.key)},encode(o,n){const c=(n.profile?1:0)|(d>=24&&n.key?2:0);Ye.encode(o,n.header),e.uint.encode(o,c),n.profile&&mt.encode(o,n.profile),d>=24&&n.key&&e.fixed32.encode(o,n.key)},decode(o){const n=Ye.decode(o),c=e.uint.decode(o);return{header:n,profile:1&c?mt.decode(o):null,key:d>=24&&2&c?e.fixed32.decode(o):null}}},$e={preencode(e,d){},encode(e,d){},decode:e=>({})},_e=$e,ed=ge,dd={preencode(d,o){e.fixed32.preencode(d,o.deviceKey),e.fixed32.preencode(d,o.id),ed.preencode(d,o.request)},encode(d,o){e.fixed32.encode(d,o.deviceKey),e.fixed32.encode(d,o.id),ed.encode(d,o.request)},decode:d=>({deviceKey:e.fixed32.decode(d),id:e.fixed32.decode(d),request:ed.decode(d)})},od=$,nd=De,cd={preencode(d,o){od.preencode(d,o.header),e.fixed32.preencode(d,o.deviceKey),d.end++,o.identity&&nd.preencode(d,o.identity)},encode(d,o){const n=o.identity?1:0;od.encode(d,o.header),e.fixed32.encode(d,o.deviceKey),e.uint.encode(d,n),o.identity&&nd.encode(d,o.identity)},decode:d=>({header:od.decode(d),deviceKey:e.fixed32.decode(d),identity:1&e.uint.decode(d)?nd.decode(d):null})},rd=$,td={preencode(d,o){rd.preencode(d,o.header),e.fixed32.preencode(d,o.deviceKey)},encode(d,o){rd.encode(d,o.header),e.fixed32.encode(d,o.deviceKey)},decode:d=>({header:rd.decode(d),deviceKey:e.fixed32.decode(d)})},id=e.frame(D),ad=pe,sd={preencode(d,o){e.fixed32.preencode(d,o.key),id.preencode(d,o.status),ad.preencode(d,o.profile)},encode(d,o){e.fixed32.encode(d,o.key),id.encode(d,o.status),ad.encode(d,o.profile)},decode:d=>({key:e.fixed32.decode(d),status:id.decode(d),profile:ad.decode(d)})},pd=id,ud=pe,ld={preencode(d,o){e.fixed32.preencode(d,o.key),pd.preencode(d,o.status),ud.preencode(d,o.profile),d.end++,o.proofs&&yt.preencode(d,o.proofs)},encode(d,o){const n=o.proofs?1:0;e.fixed32.encode(d,o.key),pd.encode(d,o.status),ud.encode(d,o.profile),e.uint.encode(d,n),o.proofs&&yt.encode(d,o.proofs)},decode:d=>({key:e.fixed32.decode(d),status:pd.decode(d),profile:ud.decode(d),proofs:1&e.uint.decode(d)?yt.decode(d):null})},fd={preencode(d,o){e.fixed32.preencode(d,o.key),d.end++,o.profileAttestation&&e.buffer.preencode(d,o.profileAttestation),o.latestReceipt&&e.buffer.preencode(d,o.latestReceipt)},encode(d,o){const n=(o.profileAttestation?1:0)|(o.latestReceipt?2:0);e.fixed32.encode(d,o.key),e.uint.encode(d,n),o.profileAttestation&&e.buffer.encode(d,o.profileAttestation),o.latestReceipt&&e.buffer.encode(d,o.latestReceipt)},decode(d){const o=e.fixed32.decode(d),n=e.uint.decode(d);return{key:o,profileAttestation:1&n?e.buffer.decode(d):null,latestReceipt:2&n?e.buffer.decode(d):null}}},md=$,yd=be,xd={preencode(e,d){md.preencode(e,d.header),yd.preencode(e,d.member)},encode(e,d){md.encode(e,d.header),yd.encode(e,d.member)},decode:e=>({header:md.decode(e),member:yd.decode(e)})},bd=$,kd=e.frame(I),vd={preencode(d,o){bd.preencode(d,o.header),e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.key),kd.preencode(d,o.status)},encode(d,o){bd.encode(d,o.header),e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.key),kd.encode(d,o.status)},decode:d=>({header:bd.decode(d),memberKey:e.fixed32.decode(d),key:e.uint.decode(d),status:kd.decode(d)})},gd=$,hd={preencode(d,o){gd.preencode(d,o.header),e.fixed32.preencode(d,o.key),d.end++},encode(d,o){const n=(o.isModerator?1:0)|(o.isAdmin?2:0);gd.encode(d,o.header),e.fixed32.encode(d,o.key),e.uint.encode(d,n)},decode(d){const o=gd.decode(d),n=e.fixed32.decode(d),c=e.uint.decode(d);return{header:o,key:n,isModerator:!!(1&c),isAdmin:!!(2&c)}}},Kd=$,wd={preencode(d,o){Kd.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){Kd.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:Kd.decode(d),key:e.fixed32.decode(d)})},Td={preencode(d,o){e.fixed32.preencode(d,o.key),e.uint.preencode(d,o.mentions)},encode(d,o){e.fixed32.encode(d,o.key),e.uint.encode(d,o.mentions)},decode:d=>({key:e.fixed32.decode(d),mentions:e.uint.decode(d)})},Ad={preencode(d,o){d.end++,o.memberKey&&e.fixed32.preencode(d,o.memberKey)},encode(d,o){const n=o.memberKey?1:0;e.uint.encode(d,n),o.memberKey&&e.fixed32.encode(d,o.memberKey)},decode:d=>({memberKey:1&e.uint.decode(d)?e.fixed32.decode(d):null})},Pd=Ad,Rd={preencode(d,o){d.end++,o.from&&e.string.preencode(d,o.from),o.to&&e.string.preencode(d,o.to)},encode(d,o){const n=(o.from?1:0)|(o.to?2:0);e.uint.encode(d,n),o.from&&e.string.encode(d,o.from),o.to&&e.string.encode(d,o.to)},decode(d){const o=e.uint.decode(d);return{from:1&o?e.string.decode(d):null,to:2&o?e.string.decode(d):null}}},Sd=e.frame(Ad),Dd=e.frame(Pd),Id=e.frame(Rd),Md={preencode(o,n){const c=(n.memberJoined?1:0)|(n.memberLeft?2:0)|(n.titleChanged?4:0)|(n.callStarted?8:0)|(n.callHangup?16:0)|(n.callMissed?32:0)|(d>=3&&n.roomAvatarChanged?64:0)|(d>=3&&n.invitationCreated?128:0)|(d>=3&&n.memberRemoved?256:0)|(d>=18&&n.locationShared?512:0);e.uint.preencode(o,c),n.memberJoined&&Sd.preencode(o,n.memberJoined),n.memberLeft&&Dd.preencode(o,n.memberLeft),n.titleChanged&&Id.preencode(o,n.titleChanged),d>=3&&n.memberRemoved&&xt.preencode(o,n.memberRemoved),d>=18&&n.locationShared&&bt.preencode(o,n.locationShared)},encode(o,n){const c=(n.memberJoined?1:0)|(n.memberLeft?2:0)|(n.titleChanged?4:0)|(n.callStarted?8:0)|(n.callHangup?16:0)|(n.callMissed?32:0)|(d>=3&&n.roomAvatarChanged?64:0)|(d>=3&&n.invitationCreated?128:0)|(d>=3&&n.memberRemoved?256:0)|(d>=18&&n.locationShared?512:0);e.uint.encode(o,c),n.memberJoined&&Sd.encode(o,n.memberJoined),n.memberLeft&&Dd.encode(o,n.memberLeft),n.titleChanged&&Id.encode(o,n.titleChanged),d>=3&&n.memberRemoved&&xt.encode(o,n.memberRemoved),d>=18&&n.locationShared&&bt.encode(o,n.locationShared)},decode(o){const n=e.uint.decode(o);return{memberJoined:1&n?Sd.decode(o):null,memberLeft:2&n?Dd.decode(o):null,titleChanged:4&n?Id.decode(o):null,callStarted:!!(8&n),callHangup:!!(16&n),callMissed:!!(32&n),roomAvatarChanged:d>=3&&!!(64&n),invitationCreated:d>=3&&!!(128&n),memberRemoved:d>=3&&256&n?xt.decode(o):null,locationShared:d>=18&&512&n?bt.decode(o):null}}},Cd={preencode(e,o){e.end++,d>=18&&o.locationShared&&kt.preencode(e,o.locationShared)},encode(o,n){const c=(n.callStarted?1:0)|(n.callHangup?2:0)|(n.callMissed?4:0)|(d>=18&&n.locationShared?8:0);e.uint.encode(o,c),d>=18&&n.locationShared&&kt.encode(o,n.locationShared)},decode(o){const n=e.uint.decode(o);return{callStarted:!!(1&n),callHangup:!!(2&n),callMissed:!!(4&n),locationShared:d>=18&&8&n?kt.decode(o):null}}},Ld={preencode(d,o){e.uint.preencode(d,o.start),e.uint.preencode(d,o.length)},encode(d,o){e.uint.encode(d,o.start),e.uint.encode(d,o.length)},decode:d=>({start:e.uint.decode(d),length:e.uint.decode(d)})},qd=e.frame(Ld),Fd={preencode(d,o){qd.preencode(d,o.range),e.string.preencode(d,o.content)},encode(d,o){qd.encode(d,o.range),e.string.encode(d,o.content)},decode:d=>({range:qd.decode(d),content:e.string.decode(d)})},Ed=qd,Bd={preencode(d,o){Ed.preencode(d,o.range),e.fixed32.preencode(d,o.memberKey)},encode(d,o){Ed.encode(d,o.range),e.fixed32.encode(d,o.memberKey)},decode:d=>({range:Ed.decode(d),memberKey:e.fixed32.decode(d)})},Nd=g,Hd=e.array(e.uint),jd={preencode(o,n){o.end++,n.title&&e.string.preencode(o,n.title),n.description&&e.string.preencode(o,n.description),n.file&&Nd.preencode(o,n.file),d>=7&&n.files&&Hd.preencode(o,n.files)},encode(o,n){const c=(n.title?1:0)|(n.description?2:0)|(n.file?4:0)|(d>=7&&n.files?8:0);e.uint.encode(o,c),n.title&&e.string.encode(o,n.title),n.description&&e.string.encode(o,n.description),n.file&&Nd.encode(o,n.file),d>=7&&n.files&&Hd.encode(o,n.files)},decode(o){const n=e.uint.decode(o);return{title:1&n?e.string.decode(o):null,description:2&n?e.string.decode(o):null,file:4&n?Nd.decode(o):null,files:d>=7&&8&n?Hd.decode(o):null}}},zd=qd,Ud=e.frame(jd),Od={preencode(d,o){zd.preencode(d,o.range),e.string.preencode(d,o.url),d.end++,o.preview&&Ud.preencode(d,o.preview)},encode(d,o){const n=o.preview?1:0;zd.encode(d,o.range),e.string.encode(d,o.url),e.uint.encode(d,n),o.preview&&Ud.encode(d,o.preview)},decode:d=>({range:zd.decode(d),url:e.string.decode(d),preview:1&e.uint.decode(d)?Ud.decode(d):null})},Jd=e.array(e.frame(Bd)),Vd=e.array(e.frame(Od)),Gd=Vd,Qd=e.array(e.frame(Ld)),Wd=Qd,Xd=Qd,Yd=e.array(e.frame(Fd)),Zd=Qd,$d=Qd,_d={preencode(o,n){const c=(n.mention?1:0)|(n.httpLink?2:0)|(n.pearLink?4:0)|(n.bold?8:0)|(n.italic?16:0)|(n.code?32:0)|(n.emoji?64:0)|(n.codeBlock?128:0)|(n.strike?256:0)|(d>=11&&n.translation?512:0);e.uint.preencode(o,c),n.mention&&Jd.preencode(o,n.mention),n.httpLink&&Vd.preencode(o,n.httpLink),n.pearLink&&Gd.preencode(o,n.pearLink),n.bold&&Qd.preencode(o,n.bold),n.italic&&Wd.preencode(o,n.italic),n.code&&Xd.preencode(o,n.code),n.emoji&&Yd.preencode(o,n.emoji),n.codeBlock&&Zd.preencode(o,n.codeBlock),n.strike&&$d.preencode(o,n.strike),d>=11&&n.translation&&vt.preencode(o,n.translation)},encode(o,n){const c=(n.mention?1:0)|(n.httpLink?2:0)|(n.pearLink?4:0)|(n.bold?8:0)|(n.italic?16:0)|(n.code?32:0)|(n.emoji?64:0)|(n.codeBlock?128:0)|(n.strike?256:0)|(d>=11&&n.translation?512:0);e.uint.encode(o,c),n.mention&&Jd.encode(o,n.mention),n.httpLink&&Vd.encode(o,n.httpLink),n.pearLink&&Gd.encode(o,n.pearLink),n.bold&&Qd.encode(o,n.bold),n.italic&&Wd.encode(o,n.italic),n.code&&Xd.encode(o,n.code),n.emoji&&Yd.encode(o,n.emoji),n.codeBlock&&Zd.encode(o,n.codeBlock),n.strike&&$d.encode(o,n.strike),d>=11&&n.translation&&vt.encode(o,n.translation)},decode(o){const n=e.uint.decode(o);return{mention:1&n?Jd.decode(o):null,httpLink:2&n?Vd.decode(o):null,pearLink:4&n?Gd.decode(o):null,bold:8&n?Qd.decode(o):null,italic:16&n?Wd.decode(o):null,code:32&n?Xd.decode(o):null,emoji:64&n?Yd.decode(o):null,codeBlock:128&n?Zd.decode(o):null,strike:256&n?$d.decode(o):null,translation:d>=11&&512&n?vt.decode(o):null}}},eo=e.array(e.frame(v)),oo=e.frame(_d),no=e.frame(Cd),co={preencode(d,o){d.end++,o.text&&e.string.preencode(d,o.text),o.files&&eo.preencode(d,o.files),o.display&&oo.preencode(d,o.display),o.replyTo&&n.preencode(d,o.replyTo),o.parent&&n.preencode(d,o.parent),o.event&&no.preencode(d,o.event)},encode(o,c){const r=(c.text?1:0)|(c.files?2:0)|(c.display?4:0)|(c.replyTo?8:0)|(c.parent?16:0)|(c.event?32:0)|(d>=18&&c.forwarded?64:0);e.uint.encode(o,r),c.text&&e.string.encode(o,c.text),c.files&&eo.encode(o,c.files),c.display&&oo.encode(o,c.display),c.replyTo&&n.encode(o,c.replyTo),c.parent&&n.encode(o,c.parent),c.event&&no.encode(o,c.event)},decode(o){const c=e.uint.decode(o);return{text:1&c?e.string.decode(o):null,files:2&c?eo.decode(o):null,display:4&c?oo.decode(o):null,replyTo:8&c?n.decode(o):null,parent:16&c?n.decode(o):null,event:32&c?no.decode(o):null,forwarded:d>=18&&!!(64&c)}}},ro=Hd,to=oo,io={preencode(d,o){d.end++,o.text&&e.string.preencode(d,o.text),o.files&&ro.preencode(d,o.files),o.display&&to.preencode(d,o.display),o.replyTo&&n.preencode(d,o.replyTo),o.parent&&n.preencode(d,o.parent)},encode(o,c){const r=(c.text?1:0)|(c.files?2:0)|(c.display?4:0)|(c.replyTo?8:0)|(c.parent?16:0)|(d>=18&&c.forwarded?32:0);e.uint.encode(o,r),c.text&&e.string.encode(o,c.text),c.files&&ro.encode(o,c.files),c.display&&to.encode(o,c.display),c.replyTo&&n.encode(o,c.replyTo),c.parent&&n.encode(o,c.parent)},decode(o){const c=e.uint.decode(o);return{text:1&c?e.string.decode(o):null,files:2&c?ro.decode(o):null,display:4&c?to.decode(o):null,replyTo:8&c?n.decode(o):null,parent:16&c?n.decode(o):null,forwarded:d>=18&&!!(32&c)}}},ao=eo,so=oo,po={preencode(d,o){d.end++,o.text&&e.string.preencode(d,o.text),o.files&&ao.preencode(d,o.files),o.display&&so.preencode(d,o.display),o.replyTo&&n.preencode(d,o.replyTo),o.parent&&n.preencode(d,o.parent)},encode(o,c){const r=(c.text?1:0)|(c.files?2:0)|(c.display?4:0)|(c.replyTo?8:0)|(c.parent?16:0)|(d>=18&&c.forwarded?32:0);e.uint.encode(o,r),c.text&&e.string.encode(o,c.text),c.files&&ao.encode(o,c.files),c.display&&so.encode(o,c.display),c.replyTo&&n.encode(o,c.replyTo),c.parent&&n.encode(o,c.parent)},decode(o){const c=e.uint.decode(o);return{text:1&c?e.string.decode(o):null,files:2&c?ao.decode(o):null,display:4&c?so.decode(o):null,replyTo:8&c?n.decode(o):null,parent:16&c?n.decode(o):null,forwarded:d>=18&&!!(32&c)}}},uo={preencode(e,d){e.end++},encode(d,o){const n=(o.isEdited?1:0)|(o.isDeleted?2:0)|(o.isPinned?4:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isEdited:!!(1&o),isDeleted:!!(2&o),isPinned:!!(4&o)}}},lo={preencode(d,o){e.uint.preencode(d,o.thread),e.uint.preencode(d,o.index)},encode(d,o){e.uint.encode(d,o.thread),e.uint.encode(d,o.index)},decode:d=>({thread:e.uint.decode(d),index:e.uint.decode(d)})},fo=e.frame(j),mo={preencode(d,o){e.uint.preencode(d,o.id),e.uint.preencode(d,o.count),d.end++,o.parent&&n.preencode(d,o.parent),o.stats&&fo.preencode(d,o.stats)},encode(d,o){const c=(o.parent?1:0)|(o.stats?2:0);e.uint.encode(d,o.id),e.uint.encode(d,o.count),e.uint.encode(d,c),o.parent&&n.encode(d,o.parent),o.stats&&fo.encode(d,o.stats)},decode(d){const o=e.uint.decode(d),c=e.uint.decode(d),r=e.uint.decode(d);return{id:o,count:c,parent:1&r?n.decode(d):null,stats:2&r?fo.decode(d):null}}},yo=e.frame(uo),xo=e.frame(io),bo=e.frame(Md),ko={preencode(d,o){lo.preencode(d,o.id),n.preencode(d,o.oplog),e.uint.preencode(d,o.clock),e.uint.preencode(d,o.timestamp),d.end++,o.editedAt&&e.uint.preencode(d,o.editedAt),yo.preencode(d,o.status),o.message&&xo.preencode(d,o.message),o.event&&bo.preencode(d,o.event)},encode(d,o){const c=(o.editedAt?1:0)|(o.message?2:0)|(o.event?4:0);lo.encode(d,o.id),n.encode(d,o.oplog),e.uint.encode(d,o.clock),e.uint.encode(d,o.timestamp),e.uint.encode(d,c),o.editedAt&&e.uint.encode(d,o.editedAt),yo.encode(d,o.status),o.message&&xo.encode(d,o.message),o.event&&bo.encode(d,o.event)},decode(d){const o=lo.decode(d),c=n.decode(d),r=e.uint.decode(d),t=e.uint.decode(d),i=e.uint.decode(d);return{id:o,oplog:c,clock:r,timestamp:t,editedAt:1&i?e.uint.decode(d):0,status:yo.decode(d),message:2&i?xo.decode(d):null,event:4&i?bo.decode(d):null}}},vo=yo,go=e.frame(po),ho=bo,Ko={preencode(d,o){lo.preencode(d,o.id),n.preencode(d,o.oplog),e.uint.preencode(d,o.clock),e.uint.preencode(d,o.timestamp),d.end++,o.editedAt&&e.uint.preencode(d,o.editedAt),vo.preencode(d,o.status),o.message&&go.preencode(d,o.message),o.event&&ho.preencode(d,o.event)},encode(d,o){const c=(o.editedAt?1:0)|(o.message?2:0)|(o.event?4:0);lo.encode(d,o.id),n.encode(d,o.oplog),e.uint.encode(d,o.clock),e.uint.encode(d,o.timestamp),e.uint.encode(d,c),o.editedAt&&e.uint.encode(d,o.editedAt),vo.encode(d,o.status),o.message&&go.encode(d,o.message),o.event&&ho.encode(d,o.event)},decode(d){const o=lo.decode(d),c=n.decode(d),r=e.uint.decode(d),t=e.uint.decode(d),i=e.uint.decode(d);return{id:o,oplog:c,clock:r,timestamp:t,editedAt:1&i?e.uint.decode(d):0,status:vo.decode(d),message:2&i?go.decode(d):null,event:4&i?ho.decode(d):null}}},wo=$,To=e.frame(co),Ao={preencode(e,d){wo.preencode(e,d.header),To.preencode(e,d.message)},encode(e,d){wo.encode(e,d.header),To.encode(e,d.message)},decode:e=>({header:wo.decode(e),message:To.decode(e)})},Po=$,Ro={preencode(e,d){Po.preencode(e,d.header),n.preencode(e,d.oplog)},encode(e,d){Po.encode(e,d.header),n.encode(e,d.oplog)},decode:e=>({header:Po.decode(e),oplog:n.decode(e)})},So=$,Do=To,Io={preencode(e,d){So.preencode(e,d.header),n.preencode(e,d.oplog),Do.preencode(e,d.message)},encode(e,d){So.encode(e,d.header),n.encode(e,d.oplog),Do.encode(e,d.message)},decode:e=>({header:So.decode(e),oplog:n.decode(e),message:Do.decode(e)})},Mo=$,Co={preencode(e,d){Mo.preencode(e,d.header),n.preencode(e,d.oplog),e.end++},encode(d,o){const c=o.isPinned?1:0;Mo.encode(d,o.header),n.encode(d,o.oplog),e.uint.encode(d,c)},decode:d=>({header:Mo.decode(d),oplog:n.decode(d),isPinned:!!(1&e.uint.decode(d))})},Lo={preencode(d,o){lo.preencode(d,o.id),e.fixed32.preencode(d,o.sender),e.uint.preencode(d,o.clock),e.string.preencode(d,o.reaction)},encode(d,o){lo.encode(d,o.id),e.fixed32.encode(d,o.sender),e.uint.encode(d,o.clock),e.string.encode(d,o.reaction)},decode:d=>({id:lo.decode(d),sender:e.fixed32.decode(d),clock:e.uint.decode(d),reaction:e.string.decode(d)})},qo={preencode(d,o){e.string.preencode(d,o.text),e.uint.preencode(d,o.count)},encode(d,o){e.string.encode(d,o.text),e.uint.encode(d,o.count)},decode:d=>({text:e.string.decode(d),count:e.uint.decode(d)})},Fo=e.array(e.frame(qo)),Eo={preencode(o,n){lo.preencode(o,n.id),e.uint.preencode(o,n.total),Fo.preencode(o,n.reactions),o.end++,d>=11&&n.editedAt&&e.uint.preencode(o,n.editedAt)},encode(o,n){const c=d>=11&&n.editedAt?1:0;lo.encode(o,n.id),e.uint.encode(o,n.total),Fo.encode(o,n.reactions),e.uint.encode(o,c),d>=11&&n.editedAt&&e.uint.encode(o,n.editedAt)},decode(o){const n=lo.decode(o),c=e.uint.decode(o),r=Fo.decode(o),t=o.start<o.end?e.uint.decode(o):0;return{id:n,total:c,reactions:r,editedAt:d>=11&&1&t?e.uint.decode(o):0}}},Bo=$,No={preencode(d,o){Bo.preencode(d,o.header),n.preencode(d,o.oplog),e.string.preencode(d,o.reaction)},encode(d,o){Bo.encode(d,o.header),n.encode(d,o.oplog),e.string.encode(d,o.reaction)},decode:d=>({header:Bo.decode(d),oplog:n.decode(d),reaction:e.string.decode(d)})},Ho=$,jo={preencode(d,o){Ho.preencode(d,o.header),n.preencode(d,o.oplog),e.string.preencode(d,o.reaction)},encode(d,o){Ho.encode(d,o.header),n.encode(d,o.oplog),e.string.encode(d,o.reaction)},decode:d=>({header:Ho.decode(d),oplog:n.decode(d),reaction:e.string.decode(d)})},zo=$,Uo=e.frame(Y),Oo={preencode(d,o){zo.preencode(d,o.header),e.uint.preencode(d,o.key),Uo.preencode(d,o.config)},encode(d,o){zo.encode(d,o.header),e.uint.encode(d,o.key),Uo.encode(d,o.config)},decode:d=>({header:zo.decode(d),key:e.uint.decode(d),config:Uo.decode(d)})},Jo={preencode(d,o){e.fixed32.preencode(d,o.memberKey),e.string.preencode(d,o.displayName),d.end++,o.avatar&&gt.preencode(d,o.avatar)},encode(d,o){const n=o.avatar?1:0;e.fixed32.encode(d,o.memberKey),e.string.encode(d,o.displayName),e.uint.encode(d,n),o.avatar&&gt.encode(d,o.avatar)},decode:d=>({memberKey:e.fixed32.decode(d),displayName:e.string.decode(d),avatar:1&e.uint.decode(d)?gt.decode(d):null})},Vo={preencode(d,o){e.fixed32.preencode(d,o.key),d.end++,o.username&&e.string.preencode(d,o.username)},encode(d,o){const n=o.username?1:0;e.fixed32.encode(d,o.key),e.uint.encode(d,n),o.username&&e.string.encode(d,o.username)},decode:d=>({key:e.fixed32.decode(d),username:1&e.uint.decode(d)?e.string.decode(d):null})},Go=e.frame(Vo),Qo={preencode(d,o){e.fixed32.preencode(d,o.publicKey),d.end++,o.discoveryCoreKey&&e.fixed32.preencode(d,o.discoveryCoreKey),o.userRegistry&&Go.preencode(d,o.userRegistry)},encode(d,o){const n=(o.discoveryCoreKey?1:0)|(o.userRegistry?2:0);e.fixed32.encode(d,o.publicKey),e.uint.encode(d,n),o.discoveryCoreKey&&e.fixed32.encode(d,o.discoveryCoreKey),o.userRegistry&&Go.encode(d,o.userRegistry)},decode(d){const o=e.fixed32.decode(d),n=e.uint.decode(d);return{publicKey:o,discoveryCoreKey:1&n?e.fixed32.decode(d):null,userRegistry:2&n?Go.decode(d):null}}},Wo=$,Xo=e.frame(G),Yo=e.frame(Q),Zo=Uo,$o=e.frame(Qo),_o=xe,en=e.array(e.frame(ue)),dn={preencode(e,d){Wo.preencode(e,d.header),Xo.preencode(e,d.digest),Yo.preencode(e,d.capabilities),e.end++,d.config&&Zo.preencode(e,d.config),d.identity&&$o.preencode(e,d.identity),d.bootstrapDevice&&_o.preencode(e,d.bootstrapDevice),d.initialMembers&&en.preencode(e,d.initialMembers)},encode(d,o){const n=(o.config?1:0)|(o.identity?2:0)|(o.bootstrapDevice?4:0)|(o.initialMembers?8:0);Wo.encode(d,o.header),Xo.encode(d,o.digest),Yo.encode(d,o.capabilities),e.uint.encode(d,n),o.config&&Zo.encode(d,o.config),o.identity&&$o.encode(d,o.identity),o.bootstrapDevice&&_o.encode(d,o.bootstrapDevice),o.initialMembers&&en.encode(d,o.initialMembers)},decode(d){const o=Wo.decode(d),n=Xo.decode(d),c=Yo.decode(d),r=e.uint.decode(d);return{header:o,digest:n,capabilities:c,config:1&r?Zo.decode(d):null,identity:2&r?$o.decode(d):null,bootstrapDevice:4&r?_o.decode(d):null,initialMembers:8&r?en.decode(d):null}}},on=$,nn={preencode(d,o){on.preencode(d,o.header),e.uint.preencode(d,o.version)},encode(d,o){on.encode(d,o.header),e.uint.encode(d,o.version)},decode:d=>({header:on.decode(d),version:e.uint.decode(d)})},cn=$,rn=V,tn={preencode(d,o){cn.preencode(d,o.header),e.uint.preencode(d,o.key),rn.preencode(d,o.settings)},encode(d,o){cn.encode(d,o.header),e.uint.encode(d,o.key),rn.encode(d,o.settings)},decode:d=>({header:cn.decode(d),key:e.uint.decode(d),settings:rn.decode(d)})},an={preencode(o,n){e.fixed32.preencode(o,n.memberKey),ht.preencode(o,n.status),o.end++,n.mailbox&&e.fixed32.preencode(o,n.mailbox),n.roomKey&&e.fixed32.preencode(o,n.roomKey),d>=22&&n.contactInfo&&Kt.preencode(o,n.contactInfo),d>=22&&n.version&&e.uint.preencode(o,n.version),d>=24&&n.alias&&e.string.preencode(o,n.alias)},encode(o,n){const c=(n.mailbox?1:0)|(n.roomKey?2:0)|(d>=22&&n.contactInfo?4:0)|(d>=22&&n.version?8:0)|(d>=24&&n.alias?16:0);e.fixed32.encode(o,n.memberKey),ht.encode(o,n.status),e.uint.encode(o,c),n.mailbox&&e.fixed32.encode(o,n.mailbox),n.roomKey&&e.fixed32.encode(o,n.roomKey),d>=22&&n.contactInfo&&Kt.encode(o,n.contactInfo),d>=22&&n.version&&e.uint.encode(o,n.version),d>=24&&n.alias&&e.string.encode(o,n.alias)},decode(o){const n=e.fixed32.decode(o),c=ht.decode(o),r=e.uint.decode(o);return{memberKey:n,status:c,mailbox:1&r?e.fixed32.decode(o):null,roomKey:2&r?e.fixed32.decode(o):null,contactInfo:d>=22&&4&r?Kt.decode(o):null,version:d>=22&&8&r?e.uint.decode(o):0,alias:d>=24&&16&r?e.string.decode(o):null}}},sn={preencode(d,n){e.fixed32.preencode(d,n.roomKey),e.buffer.preencode(d,n.encryptionKey),e.fixed32.preencode(d,n.seed),o.preencode(d,n.initiator),e.fixed32.preencode(d,n.fastForwardTo)},encode(d,n){e.fixed32.encode(d,n.roomKey),e.buffer.encode(d,n.encryptionKey),e.fixed32.encode(d,n.seed),o.encode(d,n.initiator),e.fixed32.encode(d,n.fastForwardTo)},decode:d=>({roomKey:e.fixed32.decode(d),encryptionKey:e.buffer.decode(d),seed:e.fixed32.decode(d),initiator:o.decode(d),fastForwardTo:e.fixed32.decode(d)})},pn=e.array(e.frame(sn)),un=X,ln={preencode(e,d){pn.preencode(e,d.sharedRooms),un.preencode(e,d.blockedContacts)},encode(e,d){pn.encode(e,d.sharedRooms),un.encode(e,d.blockedContacts)},decode:e=>({sharedRooms:pn.decode(e),blockedContacts:un.decode(e)})},fn=$o,mn={preencode(e,d){fn.preencode(e,d.identity)},encode(e,d){fn.encode(e,d.identity)},decode:e=>({identity:fn.decode(e)})},yn={preencode(d,o){e.uint.preencode(d,o.rooms),e.uint.preencode(d,o.contacts)},encode(d,o){e.uint.encode(d,o.rooms),e.uint.encode(d,o.contacts)},decode:d=>({rooms:e.uint.decode(d),contacts:e.uint.decode(d)})},xn={preencode(d,o){e.uint.preencode(d,o.rooms),e.uint.preencode(d,o.contactRequests)},encode(d,o){e.uint.encode(d,o.rooms),e.uint.encode(d,o.contactRequests)},decode:d=>({rooms:e.uint.decode(d),contactRequests:e.uint.decode(d)})},bn={preencode(d,o){e.buffer.preencode(d,o.entropy)},encode(d,o){e.buffer.encode(d,o.entropy)},decode:d=>({entropy:e.buffer.decode(d)})},kn={preencode(d,o){e.fixed32.preencode(d,o.publicKey),e.fixed32.preencode(d,o.devicePublicKey),e.fixed32.preencode(d,o.writerKey)},encode(d,o){e.fixed32.encode(d,o.publicKey),e.fixed32.encode(d,o.devicePublicKey),e.fixed32.encode(d,o.writerKey)},decode:d=>({publicKey:e.fixed32.decode(d),devicePublicKey:e.fixed32.decode(d),writerKey:e.fixed32.decode(d)})},vn=e.frame(kn),gn={preencode(n,c){e.fixed32.preencode(n,c.id),e.fixed32.preencode(n,c.invitationSeed),e.fixed32.preencode(n,c.mailbox),r.preencode(n,c.responseKeyPair),o.preencode(n,c.initiator),o.preencode(n,c.inviter),n.end++,c.identity&&vn.preencode(n,c.identity),d>=20&&c.buildType&&Hr.preencode(n,c.buildType)},encode(n,c){const t=(c.identity?1:0)|(d>=20&&c.buildType?2:0);e.fixed32.encode(n,c.id),e.fixed32.encode(n,c.invitationSeed),e.fixed32.encode(n,c.mailbox),r.encode(n,c.responseKeyPair),o.encode(n,c.initiator),o.encode(n,c.inviter),e.uint.encode(n,t),c.identity&&vn.encode(n,c.identity),d>=20&&c.buildType&&Hr.encode(n,c.buildType)},decode(n){const c=e.fixed32.decode(n),t=e.fixed32.decode(n),i=e.fixed32.decode(n),a=r.decode(n),s=o.decode(n),p=o.decode(n),u=e.uint.decode(n);return{id:c,invitationSeed:t,mailbox:i,responseKeyPair:a,initiator:s,inviter:p,identity:1&u?vn.decode(n):null,buildType:d>=20&&2&u?Hr.decode(n):null}}},hn=$,Kn={preencode(d,o){hn.preencode(d,o.header),e.buffer.preencode(d,o.blindResponse)},encode(d,o){hn.encode(d,o.header),e.buffer.encode(d,o.blindResponse)},decode:d=>({header:hn.decode(d),blindResponse:e.buffer.decode(d)})},wn=$,Tn=e.frame(gn),An={preencode(e,d){wn.preencode(e,d.header),Tn.preencode(e,d.invitation)},encode(e,d){wn.encode(e,d.header),Tn.encode(e,d.invitation)},decode:e=>({header:wn.decode(e),invitation:Tn.decode(e)})},Pn=$,Rn={preencode(d,o){Pn.preencode(d,o.header),e.fixed32.preencode(d,o.id)},encode(d,o){Pn.encode(d,o.header),e.fixed32.encode(d,o.id)},decode:d=>({header:Pn.decode(d),id:e.fixed32.decode(d)})},Sn={preencode(d,o){e.fixed32.preencode(d,o.publicKey),e.fixed32.preencode(d,o.devicePublicKey),d.end++,o.privateProfileKey&&e.fixed32.preencode(d,o.privateProfileKey),o.deviceKeyPair&&r.preencode(d,o.deviceKeyPair),e.buffer.preencode(d,o.deviceProof)},encode(d,o){const n=(o.privateProfileKey?1:0)|(o.deviceKeyPair?2:0);e.fixed32.encode(d,o.publicKey),e.fixed32.encode(d,o.devicePublicKey),e.uint.encode(d,n),o.privateProfileKey&&e.fixed32.encode(d,o.privateProfileKey),o.deviceKeyPair&&r.encode(d,o.deviceKeyPair),e.buffer.encode(d,o.deviceProof)},decode(d){const o=e.fixed32.decode(d),n=e.fixed32.decode(d),c=e.uint.decode(d);return{publicKey:o,devicePublicKey:n,privateProfileKey:1&c?e.fixed32.decode(d):null,deviceKeyPair:2&c?r.decode(d):null,deviceProof:e.buffer.decode(d)}}},Dn={preencode(e,d){e.end++},encode(o,n){const c=(n.isActive?1:0)|(n.isFullyMuted?2:0)|(n.isMentionsOnlyMuted?4:0)|(d>=9&&n.isReadOnly?8:0)|(d>=18&&n.isFavorite?16:0)|(d>=21&&n.isUnread?32:0);e.uint.encode(o,c)},decode(o){const n=e.uint.decode(o);return{isActive:!!(1&n),isFullyMuted:!!(2&n),isMentionsOnlyMuted:!!(4&n),isReadOnly:d>=9&&!!(8&n),isFavorite:d>=18&&!!(16&n),isUnread:d>=21&&!!(32&n)}}},In=e.frame(Dn),Mn=e.frame(Sn),Cn=vn,Ln={preencode(n,c){e.fixed32.preencode(n,c.roomKey),e.buffer.preencode(n,c.encryptionKey),e.fixed32.preencode(n,c.mailbox),In.preencode(n,c.status),e.uint.preencode(n,c.clock),n.end++,c.initiator&&o.preencode(n,c.initiator),c.fastForwardTo&&e.fixed32.preencode(n,c.fastForwardTo),c.identitySwap&&Mn.preencode(n,c.identitySwap),d>=6&&c.identitySwapV2&&Cn.preencode(n,c.identitySwapV2),d>=10&&c.contact&&e.fixed32.preencode(n,c.contact)},encode(n,c){const r=(c.initiator?1:0)|(c.fastForwardTo?2:0)|(c.identitySwap?4:0)|(d>=6&&c.identitySwapV2?8:0)|(d>=10&&c.contact?16:0);e.fixed32.encode(n,c.roomKey),e.buffer.encode(n,c.encryptionKey),e.fixed32.encode(n,c.mailbox),In.encode(n,c.status),e.uint.encode(n,c.clock),e.uint.encode(n,r),c.initiator&&o.encode(n,c.initiator),c.fastForwardTo&&e.fixed32.encode(n,c.fastForwardTo),c.identitySwap&&Mn.encode(n,c.identitySwap),d>=6&&c.identitySwapV2&&Cn.encode(n,c.identitySwapV2),d>=10&&c.contact&&e.fixed32.encode(n,c.contact)},decode(n){const c=e.fixed32.decode(n),r=e.buffer.decode(n),t=e.fixed32.decode(n),i=In.decode(n),a=e.uint.decode(n),s=e.uint.decode(n);return{roomKey:c,encryptionKey:r,mailbox:t,status:i,clock:a,initiator:1&s?o.decode(n):null,fastForwardTo:2&s?e.fixed32.decode(n):null,identitySwap:4&s?Mn.decode(n):null,identitySwapV2:d>=6&&8&s?Cn.decode(n):null,contact:d>=10&&16&s?e.fixed32.decode(n):null}}},qn=$,Fn={preencode(d,n){qn.preencode(d,n.header),e.fixed32.preencode(d,n.roomKey),e.buffer.preencode(d,n.encryptionKey),e.fixed32.preencode(d,n.mailbox),d.end++,n.fastForwardTo&&e.fixed32.preencode(d,n.fastForwardTo),n.initiator&&o.preencode(d,n.initiator),n.dm&&e.fixed32.preencode(d,n.dm)},encode(n,c){const r=(c.fastForwardTo?1:0)|(c.initiator?2:0)|(c.dm?4:0)|(d>=9&&c.isReadOnly?8:0);qn.encode(n,c.header),e.fixed32.encode(n,c.roomKey),e.buffer.encode(n,c.encryptionKey),e.fixed32.encode(n,c.mailbox),e.uint.encode(n,r),c.fastForwardTo&&e.fixed32.encode(n,c.fastForwardTo),c.initiator&&o.encode(n,c.initiator),c.dm&&e.fixed32.encode(n,c.dm)},decode(n){const c=qn.decode(n),r=e.fixed32.decode(n),t=e.buffer.decode(n),i=e.fixed32.decode(n),a=e.uint.decode(n);return{header:c,roomKey:r,encryptionKey:t,mailbox:i,fastForwardTo:1&a?e.fixed32.decode(n):null,initiator:2&a?o.decode(n):null,dm:4&a?e.fixed32.decode(n):null,isReadOnly:d>=9&&!!(8&a)}}},En=$,Bn={preencode(d,o){En.preencode(d,o.header),e.fixed32.preencode(d,o.discoveryKey)},encode(d,o){En.encode(d,o.header),e.fixed32.encode(d,o.discoveryKey)},decode:d=>({header:En.decode(d),discoveryKey:e.fixed32.decode(d)})},Nn=$,Hn=In,jn={preencode(d,o){Nn.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey),e.uint.preencode(d,o.key),Hn.preencode(d,o.status)},encode(d,o){Nn.encode(d,o.header),e.fixed32.encode(d,o.roomKey),e.uint.encode(d,o.key),Hn.encode(d,o.status)},decode:d=>({header:Nn.decode(d),roomKey:e.fixed32.decode(d),key:e.uint.decode(d),status:Hn.decode(d)})},zn={preencode(e,d){e.end++},encode(o,n){const c=(n.isBlocked?1:0)|(d>=22&&n.isActive?2:0);e.uint.encode(o,c)},decode(o){const n=e.uint.decode(o);return{isBlocked:!!(1&n),isActive:d>=22&&!!(2&n)}}},Un={preencode(o,n){e.fixed32.preencode(o,n.memberKey),e.uint.preencode(o,n.clock),wt.preencode(o,n.status),o.end++,n.mailbox&&e.fixed32.preencode(o,n.mailbox),n.roomKey&&e.fixed32.preencode(o,n.roomKey),d>=22&&n.contactInfo&&Tt.preencode(o,n.contactInfo),d>=24&&n.alias&&e.string.preencode(o,n.alias)},encode(o,n){const c=(n.mailbox?1:0)|(n.roomKey?2:0)|(d>=22&&n.contactInfo?4:0)|(d>=24&&n.alias?8:0);e.fixed32.encode(o,n.memberKey),e.uint.encode(o,n.clock),wt.encode(o,n.status),e.uint.encode(o,c),n.mailbox&&e.fixed32.encode(o,n.mailbox),n.roomKey&&e.fixed32.encode(o,n.roomKey),d>=22&&n.contactInfo&&Tt.encode(o,n.contactInfo),d>=24&&n.alias&&e.string.encode(o,n.alias)},decode(o){const n=e.fixed32.decode(o),c=e.uint.decode(o),r=wt.decode(o),t=e.uint.decode(o);return{memberKey:n,clock:c,status:r,mailbox:1&t?e.fixed32.decode(o):null,roomKey:2&t?e.fixed32.decode(o):null,contactInfo:d>=22&&4&t?Tt.decode(o):null,alias:d>=24&&8&t?e.string.decode(o):null}}},On=$,Jn=e.frame(an),Vn={preencode(e,d){On.preencode(e,d.header),Jn.preencode(e,d.contact)},encode(e,d){On.encode(e,d.header),Jn.encode(e,d.contact)},decode:e=>({header:On.decode(e),contact:Jn.decode(e)})},Gn=$,Qn={preencode(d,o){Gn.preencode(d,o.header),e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.key),At.preencode(d,o.status)},encode(d,o){Gn.encode(d,o.header),e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.key),At.encode(d,o.status)},decode:d=>({header:Gn.decode(d),memberKey:e.fixed32.decode(d),key:e.uint.decode(d),status:At.decode(d)})},Wn=$,Xn={preencode(d,o){Wn.preencode(d,o.header),e.fixed32.preencode(d,o.memberKey)},encode(d,o){Wn.encode(d,o.header),e.fixed32.encode(d,o.memberKey)},decode:d=>({header:Wn.decode(d),memberKey:e.fixed32.decode(d)})},Yn={preencode(e,d){e.end++},encode(d,o){const n=(o.isPending?1:0)|(o.isAccepted?2:0)|(o.isRejected?4:0)|(o.isDiscarded?8:0)|(o.isSeen?16:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isPending:!!(1&o),isAccepted:!!(2&o),isRejected:!!(4&o),isDiscarded:!!(8&o),isSeen:!!(16&o)}}},Zn=be,$n=e.frame(t),_n={preencode(d,o){Zn.preencode(d,o.sender),$n.preencode(d,o.keys),e.fixed32.preencode(d,o.mailbox),d.end++,o.message&&e.string.preencode(d,o.message)},encode(d,o){const n=o.message?1:0;Zn.encode(d,o.sender),$n.encode(d,o.keys),e.fixed32.encode(d,o.mailbox),e.uint.encode(d,n),o.message&&e.string.encode(d,o.message)},decode:d=>({sender:Zn.decode(d),keys:$n.decode(d),mailbox:e.fixed32.decode(d),message:1&e.uint.decode(d)?e.string.decode(d):null})},ec=e.frame(_n),dc={preencode(e,d){ec.preencode(e,d.body),ne.preencode(e,d.attestation)},encode(e,d){ec.encode(e,d.body),ne.encode(e,d.attestation)},decode:e=>({body:ec.decode(e),attestation:ne.decode(e)})},oc=pe,nc=e.frame(Yn),cc=$n,rc={preencode(o,n){e.fixed32.preencode(o,n.memberKey),e.uint.preencode(o,n.clock),oc.preencode(o,n.sender),nc.preencode(o,n.status),cc.preencode(o,n.keys),e.fixed32.preencode(o,n.mailbox),o.end++,n.message&&e.string.preencode(o,n.message),d>=11&&n.sentAt&&e.uint.preencode(o,n.sentAt),d>=22&&n.contactInfo&&Pt.preencode(o,n.contactInfo)},encode(o,n){const c=(n.message?1:0)|(d>=11&&n.sentAt?2:0)|(d>=22&&n.contactInfo?4:0);e.fixed32.encode(o,n.memberKey),e.uint.encode(o,n.clock),oc.encode(o,n.sender),nc.encode(o,n.status),cc.encode(o,n.keys),e.fixed32.encode(o,n.mailbox),e.uint.encode(o,c),n.message&&e.string.encode(o,n.message),d>=11&&n.sentAt&&e.uint.encode(o,n.sentAt),d>=22&&n.contactInfo&&Pt.encode(o,n.contactInfo)},decode(o){const n=e.fixed32.decode(o),c=e.uint.decode(o),r=oc.decode(o),t=nc.decode(o),i=cc.decode(o),a=e.fixed32.decode(o),s=e.uint.decode(o);return{memberKey:n,clock:c,sender:r,status:t,keys:i,mailbox:a,message:1&s?e.string.decode(o):null,sentAt:d>=11&&2&s?e.uint.decode(o):0,contactInfo:d>=22&&4&s?Pt.decode(o):null}}},tc=$,ic={preencode(d,o){tc.preencode(d,o.header),e.buffer.preencode(d,o.blindRequest)},encode(d,o){tc.encode(d,o.header),e.buffer.encode(d,o.blindRequest)},decode:d=>({header:tc.decode(d),blindRequest:e.buffer.decode(d)})},ac=$,sc=nc,pc={preencode(o,n){ac.preencode(o,n.header),e.fixed32.preencode(o,n.memberKey),e.uint.preencode(o,n.key),sc.preencode(o,n.status),o.end++,d>=10&&n.roomKey&&e.fixed32.preencode(o,n.roomKey)},encode(o,n){const c=d>=10&&n.roomKey?1:0;ac.encode(o,n.header),e.fixed32.encode(o,n.memberKey),e.uint.encode(o,n.key),sc.encode(o,n.status),e.uint.encode(o,c),d>=10&&n.roomKey&&e.fixed32.encode(o,n.roomKey)},decode(o){const n=ac.decode(o),c=e.fixed32.decode(o),r=e.uint.decode(o),t=sc.decode(o),i=o.start<o.end?e.uint.decode(o):0;return{header:n,memberKey:c,key:r,status:t,roomKey:d>=10&&1&i?e.fixed32.decode(o):null}}},uc={preencode(d,o){e.uint.preencode(d,o.timestamp),e.fixed32.preencode(d,o.key),e.fixed32.preencode(d,o.mailbox)},encode(d,o){e.uint.encode(d,o.timestamp),e.fixed32.encode(d,o.key),e.fixed32.encode(d,o.mailbox)},decode:d=>({version:e.uint.decode(d),timestamp:e.uint.decode(d),key:e.fixed32.decode(d),mailbox:e.fixed32.decode(d)})},lc={preencode(d,o){switch(e.uint.preencode(d,o.version),o.version){case 0:case 1:uc.preencode(d,o);break;default:throw new Error("Unsupported version")}},encode(d,o){switch(e.uint.encode(d,o.version),o.version){case 0:case 1:uc.encode(d,o);break;default:throw new Error("Unsupported version")}},decode(d){const o=d.start,n=e.uint.decode(d);switch(d.start=o,n){case 0:case 1:return uc.decode(d);default:throw new Error("Unsupported version")}}},fc=$,mc={preencode(o,c){fc.preencode(o,c.header),n.preencode(o,c.oplog),e.uint.preencode(o,c.index),Rt.preencode(o,c.preview),o.end++,d>=7&&c.displayType&&Pc.preencode(o,c.displayType)},encode(o,c){const r=d>=7&&c.displayType?1:0;fc.encode(o,c.header),n.encode(o,c.oplog),e.uint.encode(o,c.index),Rt.encode(o,c.preview),e.uint.encode(o,r),d>=7&&c.displayType&&Pc.encode(o,c.displayType)},decode(o){const c=fc.decode(o),r=n.decode(o),t=e.uint.decode(o),i=Rt.decode(o),a=o.start<o.end?e.uint.decode(o):0;return{header:c,oplog:r,index:t,preview:i,displayType:d>=7&&1&a?Pc.decode(o):0}}},yc={preencode(o,n){o.end++,d>=3&&n.memberKey&&e.fixed32.preencode(o,n.memberKey)},encode(o,n){const c=d>=3&&n.memberKey?1:0;e.uint.encode(o,c),d>=3&&n.memberKey&&e.fixed32.encode(o,n.memberKey)},decode(o){const n=e.uint.decode(o);return{memberKey:d>=3&&1&n?e.fixed32.decode(o):null}}},xc=pe,bc={preencode(e,d){xc.preencode(e,d.profile),ne.preencode(e,d.attestation)},encode(e,d){xc.encode(e,d.profile),ne.encode(e,d.attestation)},decode:e=>({profile:xc.decode(e),attestation:ne.decode(e)})},kc=$,vc={preencode(d,o){kc.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){kc.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:kc.decode(d),key:e.fixed32.decode(d)})},gc={preencode(d,o){e.fixed32.preencode(d,o.deviceKey),ne.preencode(d,o.privateProfileIdentity),e.buffer.preencode(d,o.deviceProof)},encode(d,o){e.fixed32.encode(d,o.deviceKey),ne.encode(d,o.privateProfileIdentity),e.buffer.encode(d,o.deviceProof)},decode:d=>({deviceKey:e.fixed32.decode(d),privateProfileIdentity:ne.decode(d),deviceProof:e.buffer.decode(d)})},hc={preencode(o,n){e.fixed32.preencode(o,n.roomKey),e.fixed32.preencode(o,n.encryptionKey),e.fixed32.preencode(o,n.seed),o.end++,d>=6&&n.fastForwardTo&&e.fixed32.preencode(o,n.fastForwardTo)},encode(o,n){const c=d>=6&&n.fastForwardTo?1:0;e.fixed32.encode(o,n.roomKey),e.fixed32.encode(o,n.encryptionKey),e.fixed32.encode(o,n.seed),e.uint.encode(o,c),d>=6&&n.fastForwardTo&&e.fixed32.encode(o,n.fastForwardTo)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),r=e.fixed32.decode(o),t=e.uint.decode(o);return{roomKey:n,encryptionKey:c,seed:r,fastForwardTo:d>=6&&1&t?e.fixed32.decode(o):null}}},Kc={preencode(o,n){e.fixed32.preencode(o,n.publicKey),e.fixed32.preencode(o,n.writerKey),e.fixed32.preencode(o,n.devicePublicKey),o.end++,d>=6&&n.privateProfileKey&&e.fixed32.preencode(o,n.privateProfileKey)},encode(o,n){const c=d>=6&&n.privateProfileKey?1:0;e.fixed32.encode(o,n.publicKey),e.fixed32.encode(o,n.writerKey),e.fixed32.encode(o,n.devicePublicKey),e.uint.encode(o,c),d>=6&&n.privateProfileKey&&e.fixed32.encode(o,n.privateProfileKey)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),r=e.fixed32.decode(o),t=e.uint.decode(o);return{publicKey:n,writerKey:c,devicePublicKey:r,privateProfileKey:d>=6&&1&t?e.fixed32.decode(o):null}}},wc=$,Tc={preencode(d,o){wc.preencode(d,o.header),e.fixed32.preencode(d,o.memberKey)},encode(d,o){wc.encode(d,o.header),e.fixed32.encode(d,o.memberKey)},decode:d=>({header:wc.decode(d),memberKey:e.fixed32.decode(d)})},Ac={HttpLink:1,PearLink:2},Pc={preencode(e,d){e.end++},encode(d,o){if(o>2)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},Rc=$,Sc={preencode(d,o){Rc.preencode(d,o.header),e.uint.preencode(d,o.value)},encode(d,o){Rc.encode(d,o.header),e.uint.encode(d,o.value)},decode:d=>({header:Rc.decode(d),value:e.uint.decode(d)})},Dc={preencode(d,o){e.uint.preencode(d,o.key),e.uint.preencode(d,o.value)},encode(d,o){e.uint.encode(d,o.key),e.uint.encode(d,o.value)},decode:d=>({key:e.uint.decode(d),value:e.uint.decode(d)})},Ic=$,Mc={preencode(o,n){Ic.preencode(o,n.header),e.uint.preencode(o,n.from),e.uint.preencode(o,n.to),o.end++,d>=20&&n.buildType&&Hr.preencode(o,n.buildType)},encode(o,n){const c=d>=20&&n.buildType?1:0;Ic.encode(o,n.header),e.uint.encode(o,n.from),e.uint.encode(o,n.to),e.uint.encode(o,c),d>=20&&n.buildType&&Hr.encode(o,n.buildType)},decode(o){const n=Ic.decode(o),c=e.uint.decode(o),r=e.uint.decode(o),t=o.start<o.end?e.uint.decode(o):0;return{header:n,from:c,to:r,buildType:d>=20&&1&t?Hr.decode(o):null}}},Cc={RoomType:1,IsExperimental:2,IsJoiningDisabled:3,IsAppendingDisabled:4,IsCallingDisabled:5,IsMembershipEventsDisabled:6,IsAttachmentsDisabled:7,IsLinksDisabled:8,IsRoomInviteHidden:9},Lc={preencode(e,d){e.end++},encode(d,o){if(o>9)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},qc={en:"en",it:"it",ru:"ru",es:"es",de:"de"},Fc={preencode(e,d){e.end++},encode(d,o){switch(o){case"en":e.uint.encode(d,1);break;case"it":e.uint.encode(d,2);break;case"ru":e.uint.encode(d,3);break;case"es":e.uint.encode(d,4);break;case"de":e.uint.encode(d,5);break;default:throw new Error("Unknown enum")}},decode(d){switch(e.uint.decode(d)){case 1:return"en";case 2:return"it";case 3:return"ru";case 4:return"es";case 5:return"de";default:return null}}},Ec=qd,Bc={preencode(d,o){Ec.preencode(d,o.range),Fc.preencode(d,o.language),e.string.preencode(d,o.text)},encode(d,o){Ec.encode(d,o.range),Fc.encode(d,o.language),e.string.encode(d,o.text)},decode:d=>({range:Ec.decode(d),language:Fc.decode(d),text:e.string.decode(d)})},Nc={preencode(d,o){e.fixed32.preencode(d,o.deviceKey),e.fixed32.preencode(d,o.key)},encode(d,o){e.fixed32.encode(d,o.deviceKey),e.fixed32.encode(d,o.key)},decode:d=>({deviceKey:e.fixed32.decode(d),key:e.fixed32.decode(d)})},Hc=$,jc={preencode(d,o){Hc.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){Hc.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:Hc.decode(d),key:e.fixed32.decode(d)})},zc=$,Uc={preencode(d,o){zc.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){zc.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:zc.decode(d),key:e.fixed32.decode(d)})},Oc={Flag:1},Jc={preencode(e,d){e.end++},encode(d,o){if(o>1)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},Vc={preencode(d,o){lo.preencode(d,o.id),e.fixed32.preencode(d,o.sender),e.uint.preencode(d,o.clock),Jc.preencode(d,o.label)},encode(d,o){lo.encode(d,o.id),e.fixed32.encode(d,o.sender),e.uint.encode(d,o.clock),Jc.encode(d,o.label)},decode:d=>({id:lo.decode(d),sender:e.fixed32.decode(d),clock:e.uint.decode(d),label:Jc.decode(d)})},Gc=$,Qc={preencode(e,d){Gc.preencode(e,d.header),n.preencode(e,d.oplog),Jc.preencode(e,d.label)},encode(e,d){Gc.encode(e,d.header),n.encode(e,d.oplog),Jc.encode(e,d.label)},decode:e=>({header:Gc.decode(e),oplog:n.decode(e),label:Jc.decode(e)})},Wc=$,Xc={preencode(e,d){Wc.preencode(e,d.header),n.preencode(e,d.oplog),Jc.preencode(e,d.label)},encode(e,d){Wc.encode(e,d.header),n.encode(e,d.oplog),Jc.encode(e,d.label)},decode:e=>({header:Wc.decode(e),oplog:n.decode(e),label:Jc.decode(e)})},Yc={preencode(d,o){Jc.preencode(d,o.label),e.uint.preencode(d,o.count)},encode(d,o){Jc.encode(d,o.label),e.uint.encode(d,o.count)},decode:d=>({label:Jc.decode(d),count:e.uint.decode(d)})},Zc=e.array(e.frame(Yc)),$c={preencode(o,n){lo.preencode(o,n.id),e.uint.preencode(o,n.total),Zc.preencode(o,n.labels),e.uint.preencode(o,n.editedAt),o.end++,d>=15&&n.flagsClock&&e.uint.preencode(o,n.flagsClock),d>=15&&n.version&&e.uint.preencode(o,n.version)},encode(o,n){const c=(d>=15&&n.flagsClock?1:0)|(d>=15&&n.version?2:0)|(d>=16&&n.isDeleted?4:0);lo.encode(o,n.id),e.uint.encode(o,n.total),Zc.encode(o,n.labels),e.uint.encode(o,n.editedAt),e.uint.encode(o,c),d>=15&&n.flagsClock&&e.uint.encode(o,n.flagsClock),d>=15&&n.version&&e.uint.encode(o,n.version)},decode(o){const n=lo.decode(o),c=e.uint.decode(o),r=Zc.decode(o),t=e.uint.decode(o),i=o.start<o.end?e.uint.decode(o):0;return{id:n,total:c,labels:r,editedAt:t,flagsClock:d>=15&&1&i?e.uint.decode(o):0,version:d>=15&&2&i?e.uint.decode(o):0,isDeleted:d>=16&&!!(4&i)}}},_c=$,er={preencode(d,o){_c.preencode(d,o.header),e.uint.preencode(d,o.length)},encode(d,o){_c.encode(d,o.header),e.uint.encode(d,o.length)},decode:d=>({header:_c.decode(d),length:e.uint.decode(d)})},dr={preencode(d,o){e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.length)},encode(d,o){e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.length)},decode:d=>({memberKey:e.fixed32.decode(d),length:e.uint.decode(d)})},or=Z,nr={preencode(o,n){o.end++,d>=23&&n.profileSnoozeTime&&e.uint.preencode(o,n.profileSnoozeTime)},encode(o,n){const c=(d>=13&&n.disableReadReceipts?1:0)|(d>=21&&n.stripAttachmentMetadata?2:0)|(d>=23&&n.profileSnoozeTime?4:0);e.uint.encode(o,c),d>=23&&n.profileSnoozeTime&&e.uint.encode(o,n.profileSnoozeTime)},decode(o){const n=e.uint.decode(o);return{disableReadReceipts:d>=13&&!!(1&n),stripAttachmentMetadata:d>=21&&!!(2&n),profileSnoozeTime:d>=23&&4&n?e.uint.decode(o):0}}},cr={disableReadReceipts:"disableReadReceipts",stripAttachmentMetadata:"stripAttachmentMetadata",profileSnoozeTime:"profileSnoozeTime"},rr={preencode(e,d){e.end++},encode(d,o){switch(o){case"disableReadReceipts":e.uint.encode(d,1);break;case"stripAttachmentMetadata":e.uint.encode(d,2);break;case"profileSnoozeTime":e.uint.encode(d,3);break;default:throw new Error("Unknown enum")}},decode(d){switch(e.uint.decode(d)){case 1:return"disableReadReceipts";case 2:return"stripAttachmentMetadata";case 3:return"profileSnoozeTime";default:return null}}},tr=$,ir=e.frame(nr),ar={preencode(e,d){tr.preencode(e,d.header),rr.preencode(e,d.key),ir.preencode(e,d.settings)},encode(e,d){tr.encode(e,d.header),rr.encode(e,d.key),ir.encode(e,d.settings)},decode:e=>({header:tr.decode(e),key:rr.decode(e),settings:ir.decode(e)})},sr={Flag:1},pr={preencode(e,d){e.end++},encode(d,o){if(o>1)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},ur={preencode(d,o){e.fixed32.preencode(d,o.key),e.fixed32.preencode(d,o.sender),e.uint.preencode(d,o.clock),pr.preencode(d,o.label)},encode(d,o){e.fixed32.encode(d,o.key),e.fixed32.encode(d,o.sender),e.uint.encode(d,o.clock),pr.encode(d,o.label)},decode:d=>({key:e.fixed32.decode(d),sender:e.fixed32.decode(d),clock:e.uint.decode(d),label:pr.decode(d)})},lr=$,fr={preencode(d,o){lr.preencode(d,o.header),e.fixed32.preencode(d,o.key),pr.preencode(d,o.label)},encode(d,o){lr.encode(d,o.header),e.fixed32.encode(d,o.key),pr.encode(d,o.label)},decode:d=>({header:lr.decode(d),key:e.fixed32.decode(d),label:pr.decode(d)})},mr={preencode(d,o){pr.preencode(d,o.label),e.uint.preencode(d,o.count)},encode(d,o){pr.encode(d,o.label),e.uint.encode(d,o.count)},decode:d=>({label:pr.decode(d),count:e.uint.decode(d)})},yr=e.array(e.frame(mr)),xr={preencode(d,o){e.fixed32.preencode(d,o.key),e.uint.preencode(d,o.total),yr.preencode(d,o.labels),e.uint.preencode(d,o.editedAt),e.uint.preencode(d,o.flagsClock)},encode(d,o){e.fixed32.encode(d,o.key),e.uint.encode(d,o.total),yr.encode(d,o.labels),e.uint.encode(d,o.editedAt),e.uint.encode(d,o.flagsClock)},decode:d=>({key:e.fixed32.decode(d),total:e.uint.decode(d),labels:yr.decode(d),editedAt:e.uint.decode(d),flagsClock:e.uint.decode(d)})},br={preencode(d,o){e.float64.preencode(d,o.latitude),e.float64.preencode(d,o.longitude)},encode(d,o){e.float64.encode(d,o.latitude),e.float64.encode(d,o.longitude)},decode:d=>({latitude:e.float64.decode(d),longitude:e.float64.decode(d)})},kr=$,vr={preencode(d,o){kr.preencode(d,o.header),e.fixed32.preencode(d,o.deviceKey),e.fixed32.preencode(d,o.fromDeviceKey)},encode(d,o){kr.encode(d,o.header),e.fixed32.encode(d,o.deviceKey),e.fixed32.encode(d,o.fromDeviceKey)},decode:d=>({header:kr.decode(d),deviceKey:e.fixed32.decode(d),fromDeviceKey:e.fixed32.decode(d)})},gr=$,hr=X,Kr={preencode(o,n){gr.preencode(o,n.header),e.fixed32.preencode(o,n.callKey),e.buffer.preencode(o,n.encryptionKey),o.end++,d>=19&&n.streams&&hr.preencode(o,n.streams),d>=19&&n.discoveryKey&&e.fixed32.preencode(o,n.discoveryKey),d>=19&&n.version&&e.uint.preencode(o,n.version)},encode(o,n){const c=(d>=19&&n.streams?1:0)|(d>=19&&n.discoveryKey?2:0)|(d>=19&&n.version?4:0);gr.encode(o,n.header),e.fixed32.encode(o,n.callKey),e.buffer.encode(o,n.encryptionKey),e.uint.encode(o,c),d>=19&&n.streams&&hr.encode(o,n.streams),d>=19&&n.discoveryKey&&e.fixed32.encode(o,n.discoveryKey),d>=19&&n.version&&e.uint.encode(o,n.version)},decode(o){const n=gr.decode(o),c=e.fixed32.decode(o),r=e.buffer.decode(o),t=e.uint.decode(o);return{header:n,callKey:c,encryptionKey:r,streams:d>=19&&1&t?hr.decode(o):null,discoveryKey:d>=19&&2&t?e.fixed32.decode(o):null,version:d>=19&&4&t?e.uint.decode(o):0}}},wr=$,Tr=X,Ar={preencode(o,n){wr.preencode(o,n.header),e.fixed32.preencode(o,n.callKey),o.end++,d>=19&&n.streams&&Tr.preencode(o,n.streams)},encode(o,n){const c=d>=19&&n.streams?1:0;wr.encode(o,n.header),e.fixed32.encode(o,n.callKey),e.uint.encode(o,c),d>=19&&n.streams&&Tr.encode(o,n.streams)},decode(o){const n=wr.decode(o),c=e.fixed32.decode(o),r=e.uint.decode(o);return{header:n,callKey:c,streams:d>=19&&1&r?Tr.decode(o):null}}},Pr=$,Rr={preencode(d,o){Pr.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){Pr.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:Pr.decode(d),callKey:e.fixed32.decode(d)})},Sr=$,Dr={preencode(d,o){Sr.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){Sr.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:Sr.decode(d),callKey:e.fixed32.decode(d)})},Ir=$,Mr={preencode(d,o){Ir.preencode(d,o.header),e.fixed32.preencode(d,o.callKey),e.fixed32.preencode(d,o.streamKey)},encode(d,o){Ir.encode(d,o.header),e.fixed32.encode(d,o.callKey),e.fixed32.encode(d,o.streamKey)},decode:d=>({header:Ir.decode(d),callKey:e.fixed32.decode(d),streamKey:e.fixed32.decode(d)})},Cr=$,Lr={preencode(d,o){Cr.preencode(d,o.header),e.fixed32.preencode(d,o.callKey),e.fixed32.preencode(d,o.streamKey)},encode(d,o){Cr.encode(d,o.header),e.fixed32.encode(d,o.callKey),e.fixed32.encode(d,o.streamKey)},decode:d=>({header:Cr.decode(d),callKey:e.fixed32.decode(d),streamKey:e.fixed32.decode(d)})},qr={preencode(o,n){e.fixed32.preencode(o,n.callKey),e.buffer.preencode(o,n.encryptionKey),e.uint.preencode(o,n.createdAt),o.end++,d>=19&&n.endedAt&&e.uint.preencode(o,n.endedAt),d>=19&&n.discoveryKey&&e.fixed32.preencode(o,n.discoveryKey),d>=19&&n.version&&e.uint.preencode(o,n.version)},encode(o,n){const c=(d>=19&&n.endedAt?1:0)|(d>=19&&n.discoveryKey?2:0)|(d>=19&&n.version?4:0);e.fixed32.encode(o,n.callKey),e.buffer.encode(o,n.encryptionKey),e.uint.encode(o,n.createdAt),e.uint.encode(o,c),d>=19&&n.endedAt&&e.uint.encode(o,n.endedAt),d>=19&&n.discoveryKey&&e.fixed32.encode(o,n.discoveryKey),d>=19&&n.version&&e.uint.encode(o,n.version)},decode(o){const n=e.fixed32.decode(o),c=e.buffer.decode(o),r=e.uint.decode(o),t=e.uint.decode(o);return{callKey:n,encryptionKey:c,createdAt:r,endedAt:d>=19&&1&t?e.uint.decode(o):0,discoveryKey:d>=19&&2&t?e.fixed32.decode(o):null,version:d>=19&&4&t?e.uint.decode(o):0}}},Fr={preencode(d,o){e.fixed32.preencode(d,o.callKey),e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.createdAt)},encode(d,o){e.fixed32.encode(d,o.callKey),e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.createdAt)},decode:d=>({callKey:e.fixed32.decode(d),memberKey:e.fixed32.decode(d),createdAt:e.uint.decode(d)})},Er={preencode(o,n){e.fixed32.preencode(o,n.callKey),e.fixed32.preencode(o,n.deviceKey),e.fixed32.preencode(o,n.memberKey),e.uint.preencode(o,n.createdAt),o.end++,d>=19&&n.swarmKey&&e.fixed32.preencode(o,n.swarmKey),d>=22&&n.lastHeartbeatAt&&e.uint.preencode(o,n.lastHeartbeatAt)},encode(o,n){const c=(d>=19&&n.swarmKey?1:0)|(d>=22&&n.lastHeartbeatAt?2:0)|(d>=23&&n.isRecording?4:0);e.fixed32.encode(o,n.callKey),e.fixed32.encode(o,n.deviceKey),e.fixed32.encode(o,n.memberKey),e.uint.encode(o,n.createdAt),e.uint.encode(o,c),d>=19&&n.swarmKey&&e.fixed32.encode(o,n.swarmKey),d>=22&&n.lastHeartbeatAt&&e.uint.encode(o,n.lastHeartbeatAt)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),r=e.fixed32.decode(o),t=e.uint.decode(o),i=e.uint.decode(o);return{callKey:n,deviceKey:c,memberKey:r,createdAt:t,swarmKey:d>=19&&1&i?e.fixed32.decode(o):null,lastHeartbeatAt:d>=22&&2&i?e.uint.decode(o):0,isRecording:d>=23&&!!(4&i)}}},Br={preencode(d,o){e.fixed32.preencode(d,o.callKey),e.fixed32.preencode(d,o.deviceKey),e.buffer.preencode(d,o.streamKey),e.uint.preencode(d,o.createdAt)},encode(d,o){e.fixed32.encode(d,o.callKey),e.fixed32.encode(d,o.deviceKey),e.buffer.encode(d,o.streamKey),e.uint.encode(d,o.createdAt)},decode:d=>({callKey:e.fixed32.decode(d),deviceKey:e.fixed32.decode(d),streamKey:e.buffer.decode(d),createdAt:e.uint.decode(d)})},Nr={Nightly:"Nightly",Internal:"Internal",Production:"Production"},Hr={preencode(e,d){e.end++},encode(d,o){switch(o){case"Nightly":e.uint.encode(d,1);break;case"Internal":e.uint.encode(d,2);break;case"Production":e.uint.encode(d,3);break;default:throw new Error("Unknown enum")}},decode(d){switch(e.uint.decode(d)){case 1:return"Nightly";case 2:return"Internal";case 3:return"Production";default:return null}}},jr=$,zr={preencode(e,d){jr.preencode(e,d.header)},encode(e,d){jr.encode(e,d.header)},decode:e=>({header:jr.decode(e)})},Ur=$,Or={preencode(e,d){Ur.preencode(e,d.header)},encode(e,d){Ur.encode(e,d.header)},decode:e=>({header:Ur.decode(e)})},Jr=$,Vr={preencode(d,o){Jr.preencode(d,o.header),e.fixed32.preencode(d,o.deviceKey),e.buffer.preencode(d,o.deviceProof),e.buffer.preencode(d,o.writerProof)},encode(d,o){Jr.encode(d,o.header),e.fixed32.encode(d,o.deviceKey),e.buffer.encode(d,o.deviceProof),e.buffer.encode(d,o.writerProof)},decode:d=>({header:Jr.decode(d),deviceKey:e.fixed32.decode(d),deviceProof:e.buffer.decode(d),writerProof:e.buffer.decode(d)})},Gr=$,Qr={preencode(d,o){Gr.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){Gr.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:Gr.decode(d),callKey:e.fixed32.decode(d)})},Wr=$,Xr={preencode(d,o){Wr.preencode(d,o.header),e.fixed32.preencode(d,o.callKey),e.fixed32.preencode(d,o.deviceKey)},encode(d,o){Wr.encode(d,o.header),e.fixed32.encode(d,o.callKey),e.fixed32.encode(d,o.deviceKey)},decode:d=>({header:Wr.decode(d),callKey:e.fixed32.decode(d),deviceKey:e.fixed32.decode(d)})},Yr=$,Zr={preencode(d,o){Yr.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){Yr.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:Yr.decode(d),callKey:e.fixed32.decode(d)})},$r=$,_r={preencode(d,o){$r.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){$r.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:$r.decode(d),callKey:e.fixed32.decode(d)})},et=$,dt={preencode(e,d){et.preencode(e,d.header),n.preencode(e,d.oplog)},encode(e,d){et.encode(e,d.header),n.encode(e,d.oplog)},decode:e=>({header:et.decode(e),oplog:n.decode(e)})},ot=$,nt={preencode(e,d){ot.preencode(e,d.header)},encode(e,d){ot.encode(e,d.header)},decode:e=>({header:ot.decode(e)})},ct={preencode(d,o){e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.timestamp)},encode(d,o){e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.timestamp)},decode:d=>({memberKey:e.fixed32.decode(d),timestamp:e.uint.decode(d)})},rt=$,tt={preencode(o,n){rt.preencode(o,n.header),e.fixed32.preencode(o,n.memberKey),o.end++,d>=24&&n.alias&&e.string.preencode(o,n.alias)},encode(o,n){const c=d>=24&&n.alias?1:0;rt.encode(o,n.header),e.fixed32.encode(o,n.memberKey),e.uint.encode(o,c),d>=24&&n.alias&&e.string.encode(o,n.alias)},decode(o){const n=rt.decode(o),c=e.fixed32.decode(o),r=e.uint.decode(o);return{header:n,memberKey:c,alias:d>=24&&1&r?e.string.decode(o):null}}},it=e.frame(w),at=it,st=e.array(Fc),pt=e.frame(se),ut=it,lt=pt,ft=e.frame(hc),mt=pt,yt=e.frame(fd),xt=e.frame(yc),bt=e.frame(br),kt=bt,vt=e.array(e.frame(Bc)),gt=it,ht=e.frame(zn),Kt=e.frame(bc),wt=ht,Tt=Kt,At=ht,Pt=Kt,Rt=it;function St(e){switch(e){case"@keet/head":return o;case"@keet/oplog-id":return n;case"@keet/encryption-keypair":return c;case"@keet/signing-keypair":return r;case"@keet/room-keys":return t;case"@keet/operation-header":return i;case"@keet/blob-pointer":return a;case"@keet/file-dimensions":return s;case"@keet/file-metadata":return u;case"@keet/external-drive-pointer":return l;case"@keet/external-blob-pointer":return f;case"@keet/file-pointer":return x;case"@keet/file":return v;case"@keet/image-file":return w;case"@keet/file-status":return T;case"@keet/file-record":return R;case"@keet/device-status":return S;case"@keet/member-status":return D;case"@keet/member-moderation-status":return I;case"@keet/abi":return M;case"@keet/device-stats":return C;case"@keet/member-stats":return L;case"@keet/chat-stats":return q;case"@keet/file-stats":return F;case"@keet/stats":return j;case"@keet/room-type":return U;case"@keet/system-settings":return O;case"@keet/system-digest":return G;case"@keet/room-seed":return Q;case"@keet/room-capabilities":return W;case"@keet/room-config":return Y;case"@keet/blind-peer":return Z;case"@keet/add-blind-peer-operation":return ee;case"@keet/remove-blind-peer-operation":return oe;case"@keet/identity-attestation":return ne;case"@keet/device-invitation":return ce;case"@keet/device":return ie;case"@keet/member-profile":return ae;case"@keet/device-profile":return se;case"@keet/member-update":return ue;case"@keet/device-update":return le;case"@keet/signed-pairing-data":return fe;case"@keet/device-request-identity":return me;case"@keet/device-response-identity":return ye;case"@keet/device-request-with-invitation":return ve;case"@keet/device-request-with-invitation-and-proof":return he;case"@keet/device-request-with-member-proof":return Te;case"@keet/device-request":return Re;case"@keet/device-response":return Ie;case"@keet/invitation-metadata":return Me;case"@keet/invitation":return qe;case"@keet/add-invitation-operation":return Be;case"@keet/remove-invitation-operation":return He;case"@keet/sendable-room-invitation":return je;case"@keet/sendable-identity-invitation":return ze;case"@keet/sendable-contact-invitation":return Ue;case"@keet/sendable-invitation":return Qe;case"@keet/add-device-operation":return Xe;case"@keet/update-device-operation":return Ze;case"@keet/start-indexing-operation":return $e;case"@keet/stop-indexing-operation":return _e;case"@keet/join-request":return dd;case"@keet/accept-join-request-operation":return cd;case"@keet/reject-join-request-operation":return td;case"@keet/member":return sd;case"@keet/full-member":return ld;case"@keet/member-proofs":return fd;case"@keet/update-member-operation":return xd;case"@keet/change-member-status-operation":return vd;case"@keet/change-member-role-operation":return hd;case"@keet/remove-member-operation":return wd;case"@keet/member-activity":return Td;case"@keet/member-joined-event":return Ad;case"@keet/member-left-event":return Pd;case"@keet/title-changed-chat-event":return Rd;case"@keet/chat-event":return Md;case"@keet/sendable-event":return Cd;case"@keet/display-range":return Ld;case"@keet/display-content-range":return Fd;case"@keet/mention-display-item":return Bd;case"@keet/link-preview":return jd;case"@keet/display-link-item":return Od;case"@keet/display":return _d;case"@keet/oplog-message":return co;case"@keet/index-message":return io;case"@keet/full-index-message":return po;case"@keet/message-status":return uo;case"@keet/message-index-id":return lo;case"@keet/thread":return mo;case"@keet/chat-message-record":return ko;case"@keet/full-chat-message-record":return Ko;case"@keet/add-chat-message-operation":return Ao;case"@keet/remove-chat-message-operation":return Ro;case"@keet/update-chat-message-operation":return Io;case"@keet/pin-chat-message-operation":return Co;case"@keet/reaction":return Lo;case"@keet/reactions-summary":return qo;case"@keet/reactions-digest":return Eo;case"@keet/add-reaction-operation":return No;case"@keet/remove-reaction-operation":return jo;case"@keet/update-room-config-operation":return Oo;case"@keet/group-member":return Jo;case"@keet/user-registry-info":return Vo;case"@keet/room-identity":return Qo;case"@keet/genesis-operation":return dn;case"@keet/upgrade-operation":return nn;case"@keet/update-system-settings-operation":return tn;case"@keet-private-id/contact":return an;case"@keet-private-id/v3-room-migration-info":return sn;case"@keet-private-id/run-v3-migration-operation":return ln;case"@keet-private-id/update-identity-operation":return mn;case"@keet-private-id/counters":return yn;case"@keet-private-id/stats":return xn;case"@keet-private-id/add-entropy-operation":return bn;case"@keet-private-id/pending-invitation-identity":return kn;case"@keet-private-id/pending-invitation":return gn;case"@keet-private-id/resolve-pending-invitation-operation":return Kn;case"@keet-private-id/add-pending-invitation-operation":return An;case"@keet-private-id/remove-pending-invitation-operation":return Rn;case"@keet-private-id/identity-swap":return Sn;case"@keet-private-id/room-status":return Dn;case"@keet-private-id/room":return Ln;case"@keet-private-id/add-room-operation":return Fn;case"@keet-private-id/remove-room-operation":return Bn;case"@keet-private-id/update-room-status-operation":return jn;case"@keet-private-id/contact-status":return zn;case"@keet-private-id/contact-record":return Un;case"@keet-private-id/add-contact-operation":return Vn;case"@keet-private-id/update-contact-status-operation":return Qn;case"@keet-private-id/remove-contact-operation":return Xn;case"@keet-private-id/contact-request-status":return Yn;case"@keet-private-id/contact-request-body":return _n;case"@keet-private-id/contact-request":return dc;case"@keet-private-id/contact-request-record":return rc;case"@keet-private-id/add-contact-request-operation":return ic;case"@keet-private-id/update-contact-request-status-operation":return pc;case"@keet-private-id/profile-discovery-record-v1":return uc;case"@keet-private-id/profile-discovery-record":return lc;case"@keet/add-file-preview-operation":return mc;case"@keet/member-removed-event":return yc;case"@keet/member-contact-info":return bc;case"@keet/remove-device-operation":return vc;case"@keet/device-identity":return gc;case"@keet/readonly-room-invitation":return hc;case"@keet-private-id/identity-swap-v2":return Kc;case"@keet-private-id/activate-contact-room-operation":return Tc;case"@keet/display-type":return Pc;case"@keet/test-increment-operation":return Sc;case"@keet/test-collection-record-1":return Dc;case"@keet/migrate-abi-operation":return Mc;case"@keet/system-settings-keys":return Lc;case"@keet/room-supported-language":return Fc;case"@keet/translation-display-item":return Bc;case"@keet-private-id/unreads":return Nc;case"@keet-private-id/add-unreads-key-operation":return jc;case"@keet-private-id/remove-unreads-key-operation":return Uc;case"@keet/label-type":return Jc;case"@keet/chat-label":return Vc;case"@keet/add-chat-label-operation":return Qc;case"@keet/remove-chat-label-operation":return Xc;case"@keet/chat-label-summary":return Yc;case"@keet/chat-label-digest":return $c;case"@keet/update-read-length-operation":return er;case"@keet/read-length":return dr;case"@keet/tmp-removed-member":return or;case"@keet-private-id/settings":return nr;case"@keet-private-id/user-settings-key":return rr;case"@keet-private-id/update-settings-operation":return ar;case"@keet/member-label-type":return pr;case"@keet/member-label":return ur;case"@keet/add-member-label-operation":return fr;case"@keet/member-label-summary":return mr;case"@keet/member-label-digest":return xr;case"@keet/location-shared-event":return br;case"@keet/move-indexer-operation":return vr;case"@keet/start-call":return Kr;case"@keet/join-call":return Ar;case"@keet/leave-call":return Rr;case"@keet/end-call":return Dr;case"@keet/add-call-stream":return Mr;case"@keet/remove-call-stream":return Lr;case"@keet/call-record":return qr;case"@keet/call-member-record":return Fr;case"@keet/call-device-record":return Er;case"@keet/call-stream-record":return Br;case"@keet/build-type":return Hr;case"@keet/test-crash-operation":return zr;case"@keet/test-dispatch-error-operation":return Or;case"@keet-private-id/shorten-device-attestation-operation":return Vr;case"@keet/call-device-heartbeat":return Qr;case"@keet/remove-call-device":return Xr;case"@keet/start-call-recording":return Zr;case"@keet/stop-call-recording":return _r;case"@keet/dismiss-chat-reports-operation":return dt;case"@keet/update-typing-indicator-operation":return nt;case"@keet/typing-indicator":return ct;case"@keet-private-id/update-contact-alias-operation":return tt;default:throw new Error("Encoder not found "+e)}}function Dt(e,o=24){const n=St(e);return{preencode(e,c){d=o,n.preencode(e,c)},encode(e,c){d=o,n.encode(e,c)},decode:e=>(d=o,n.decode(e))}}const It=Dt;module.exports={resolveStruct:It,getStruct:Dt,getEnum:function(e){switch(e){case"@keet/room-type":return z;case"@keet/display-type":return Ac;case"@keet/system-settings-keys":return Cc;case"@keet/room-supported-language":return qc;case"@keet/label-type":return Oc;case"@keet-private-id/user-settings-key":return cr;case"@keet/member-label-type":return sr;case"@keet/build-type":return Nr;default:throw new Error("Enum not found "+e)}},getEncoding:St,encode:function(o,n,c=24){return d=c,e.encode(St(o),n)},decode:function(o,n,c=24){return d=c,e.decode(St(o),n)},setVersion:function(e){d=e},version:d};
1const{c:e}=require("hyperschema/runtime");let d=29;const o={preencode(d,o){e.fixed32.preencode(d,o.key),e.uint.preencode(d,o.length)},encode(d,o){e.fixed32.encode(d,o.key),e.uint.encode(d,o.length)},decode:d=>({key:e.fixed32.decode(d),length:e.uint.decode(d)})},n={preencode(d,o){e.fixed32.preencode(d,o.key),e.uint.preencode(d,o.seq)},encode(d,o){e.fixed32.encode(d,o.key),e.uint.encode(d,o.seq)},decode:d=>({key:e.fixed32.decode(d),seq:e.uint.decode(d)})},c={preencode(d,o){e.fixed32.preencode(d,o.publicKey),e.fixed32.preencode(d,o.secretKey)},encode(d,o){e.fixed32.encode(d,o.publicKey),e.fixed32.encode(d,o.secretKey)},decode:d=>({publicKey:e.fixed32.decode(d),secretKey:e.fixed32.decode(d)})},t={preencode(d,o){e.fixed32.preencode(d,o.publicKey),e.fixed64.preencode(d,o.secretKey)},encode(d,o){e.fixed32.encode(d,o.publicKey),e.fixed64.encode(d,o.secretKey)},decode:d=>({publicKey:e.fixed32.decode(d),secretKey:e.fixed64.decode(d)})},r={preencode(n,c){e.fixed32.preencode(n,c.key),n.end++,c.encryptionKey&&e.buffer.preencode(n,c.encryptionKey),c.fastForwardTo&&e.fixed32.preencode(n,c.fastForwardTo),d>=27&&c.bootFrom&&o.preencode(n,c.bootFrom)},encode(n,c){const t=(c.encryptionKey?1:0)|(c.fastForwardTo?2:0)|(d>=27&&c.bootFrom?4:0);e.fixed32.encode(n,c.key),e.uint.encode(n,t),c.encryptionKey&&e.buffer.encode(n,c.encryptionKey),c.fastForwardTo&&e.fixed32.encode(n,c.fastForwardTo),d>=27&&c.bootFrom&&o.encode(n,c.bootFrom)},decode(n){const c=e.fixed32.decode(n),t=e.uint.decode(n);return{key:c,encryptionKey:1&t?e.buffer.decode(n):null,fastForwardTo:2&t?e.fixed32.decode(n):null,bootFrom:d>=27&&4&t?o.decode(n):null}}},i={preencode(d,o){e.uint.preencode(d,o.timestamp)},encode(d,o){e.uint.encode(d,o.timestamp)},decode:d=>({timestamp:e.uint.decode(d)})},a={preencode(d,o){e.uint.preencode(d,o.blockOffset),e.uint.preencode(d,o.blockLength),e.uint.preencode(d,o.byteOffset),e.uint.preencode(d,o.byteLength)},encode(d,o){e.uint.encode(d,o.blockOffset),e.uint.encode(d,o.blockLength),e.uint.encode(d,o.byteOffset),e.uint.encode(d,o.byteLength)},decode:d=>({blockOffset:e.uint.decode(d),blockLength:e.uint.decode(d),byteOffset:e.uint.decode(d),byteLength:e.uint.decode(d)})},s={preencode(d,o){e.uint.preencode(d,o.width),e.uint.preencode(d,o.height)},encode(d,o){e.uint.encode(d,o.width),e.uint.encode(d,o.height)},decode:d=>({width:e.uint.decode(d),height:e.uint.decode(d)})},p=e.frame(s),u={preencode(d,o){d.end++,o.name&&e.string.preencode(d,o.name),o.mimetype&&e.string.preencode(d,o.mimetype),o.dimensions&&p.preencode(d,o.dimensions),o.userdata&&e.buffer.preencode(d,o.userdata),o.duration&&e.uint.preencode(d,o.duration)},encode(d,o){const n=(o.name?1:0)|(o.mimetype?2:0)|(o.dimensions?4:0)|(o.userdata?8:0)|(o.duration?16:0)|(o.isPreview?32:0);e.uint.encode(d,n),o.name&&e.string.encode(d,o.name),o.mimetype&&e.string.encode(d,o.mimetype),o.dimensions&&p.encode(d,o.dimensions),o.userdata&&e.buffer.encode(d,o.userdata),o.duration&&e.uint.encode(d,o.duration)},decode(d){const o=e.uint.decode(d);return{name:1&o?e.string.decode(d):null,mimetype:2&o?e.string.decode(d):null,dimensions:4&o?p.decode(d):null,userdata:8&o?e.buffer.decode(d):null,duration:16&o?e.uint.decode(d):0,isPreview:!!(32&o)}}},l={preencode(d,o){e.fixed32.preencode(d,o.key),e.string.preencode(d,o.path),e.uint.preencode(d,o.version),e.uint.preencode(d,o.size)},encode(d,o){e.fixed32.encode(d,o.key),e.string.encode(d,o.path),e.uint.encode(d,o.version),e.uint.encode(d,o.size)},decode:d=>({key:e.fixed32.decode(d),path:e.string.decode(d),version:e.uint.decode(d),size:e.uint.decode(d)})},f={preencode(d,o){e.fixed32.preencode(d,o.key),a.preencode(d,o.blob)},encode(d,o){e.fixed32.encode(d,o.key),a.encode(d,o.blob)},decode:d=>({key:e.fixed32.decode(d),blob:a.decode(d)})},m=e.frame(f),y=e.frame(l),b={preencode(o,n){o.end++,n.inlined&&e.buffer.preencode(o,n.inlined),n.blob&&a.preencode(o,n.blob),n.externalBlob&&m.preencode(o,n.externalBlob),n.externalDrive&&y.preencode(o,n.externalDrive),d>=27&&n.bee&&fr.preencode(o,n.bee)},encode(o,n){const c=(n.inlined?1:0)|(n.blob?2:0)|(n.externalBlob?4:0)|(n.externalDrive?8:0)|(d>=27&&n.bee?16:0);e.uint.encode(o,c),n.inlined&&e.buffer.encode(o,n.inlined),n.blob&&a.encode(o,n.blob),n.externalBlob&&m.encode(o,n.externalBlob),n.externalDrive&&y.encode(o,n.externalDrive),d>=27&&n.bee&&fr.encode(o,n.bee)},decode(o){const n=e.uint.decode(o);return{inlined:1&n?e.buffer.decode(o):null,blob:2&n?a.decode(o):null,externalBlob:4&n?m.decode(o):null,externalDrive:8&n?y.decode(o):null,bee:d>=27&&16&n?fr.decode(o):null}}},x=e.frame(b),k=e.frame(u),v={preencode(d,o){x.preencode(d,o.pointer),d.end++,o.metadata&&k.preencode(d,o.metadata),o.preview&&Hr.preencode(d,o.preview),o.hash&&e.fixed32.preencode(d,o.hash)},encode(d,o){const n=(o.metadata?1:0)|(o.preview?2:0)|(o.hash?4:0);x.encode(d,o.pointer),e.uint.encode(d,n),o.metadata&&k.encode(d,o.metadata),o.preview&&Hr.encode(d,o.preview),o.hash&&e.fixed32.encode(d,o.hash)},decode(d){const o=x.decode(d),n=e.uint.decode(d);return{pointer:o,metadata:1&n?k.decode(d):null,preview:2&n?Hr.decode(d):null,hash:4&n?e.fixed32.decode(d):null}}},g=e.frame(v),h=g,K=g,w={preencode(e,d){e.end++,d.small&&g.preencode(e,d.small),d.medium&&h.preencode(e,d.medium),d.large&&K.preencode(e,d.large)},encode(d,o){const n=(o.small?1:0)|(o.medium?2:0)|(o.large?4:0);e.uint.encode(d,n),o.small&&g.encode(d,o.small),o.medium&&h.encode(d,o.medium),o.large&&K.encode(d,o.large)},decode(d){const o=e.uint.decode(d);return{small:1&o?g.decode(d):null,medium:2&o?h.decode(d):null,large:4&o?K.decode(d):null}}},T={preencode(e,d){e.end++},encode(d,o){const n=o.isDeleted?1:0;e.uint.encode(d,n)},decode:d=>({isDeleted:!!(1&e.uint.decode(d))})},A=e.frame(T),P=g,S={preencode(o,c){e.uint.preencode(o,c.id),n.preencode(o,c.oplog),A.preencode(o,c.status),P.preencode(o,c.file),o.end++,d>=14&&c.version&&e.uint.preencode(o,c.version)},encode(o,c){const t=d>=14&&c.version?1:0;e.uint.encode(o,c.id),n.encode(o,c.oplog),A.encode(o,c.status),P.encode(o,c.file),e.uint.encode(o,t),d>=14&&c.version&&e.uint.encode(o,c.version)},decode(o){const c=e.uint.decode(o),t=n.decode(o),r=A.decode(o),i=P.decode(o),a=o.start<o.end?e.uint.decode(o):0;return{id:c,oplog:t,status:r,file:i,version:d>=14&&1&a?e.uint.decode(o):0}}},I={preencode(e,d){e.end++},encode(d,o){const n=(o.isActive?1:0)|(o.isIndexing?2:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isActive:!!(1&o),isIndexing:!!(2&o)}}},R={preencode(o,n){const c=(n.isAdmin?1:0)|(n.isModerator?2:0)|(n.isPending?4:0)|(n.isActive?8:0)|(n.isMuted?16:0)|(n.isBanned?32:0)|(n.isShadowBanned?64:0)|(d>=13&&n.isRemoved?128:0);e.uint.preencode(o,c)},encode(o,n){const c=(n.isAdmin?1:0)|(n.isModerator?2:0)|(n.isPending?4:0)|(n.isActive?8:0)|(n.isMuted?16:0)|(n.isBanned?32:0)|(n.isShadowBanned?64:0)|(d>=13&&n.isRemoved?128:0);e.uint.encode(o,c)},decode(o){const n=e.uint.decode(o);return{isAdmin:!!(1&n),isModerator:!!(2&n),isPending:!!(4&n),isActive:!!(8&n),isMuted:!!(16&n),isBanned:!!(32&n),isShadowBanned:!!(64&n),isRemoved:d>=13&&!!(128&n)}}},F={preencode(e,d){e.end++},encode(d,o){const n=(o.isMuted?1:0)|(o.isBanned?2:0)|(o.isShadowBanned?4:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isMuted:!!(1&o),isBanned:!!(2&o),isShadowBanned:!!(4&o)}}},H={preencode(d,o){e.uint.preencode(d,o.version)},encode(d,o){e.uint.encode(d,o.version)},decode:d=>({version:e.uint.decode(d)})},M={preencode(d,o){e.uint.preencode(d,o.total),e.uint.preencode(d,o.active)},encode(d,o){e.uint.encode(d,o.total),e.uint.encode(d,o.active)},decode:d=>({total:e.uint.decode(d),active:e.uint.decode(d)})},C={preencode(d,o){e.uint.preencode(d,o.total),e.uint.preencode(d,o.active),e.uint.preencode(d,o.pending)},encode(d,o){e.uint.encode(d,o.total),e.uint.encode(d,o.active),e.uint.encode(d,o.pending)},decode:d=>({total:e.uint.decode(d),active:e.uint.decode(d),pending:e.uint.decode(d)})},D={preencode(o,n){e.uint.preencode(o,n.clock),e.uint.preencode(o,n.pinned),e.uint.preencode(o,n.threads),e.uint.preencode(o,n.timestamp),o.end++,d>=15&&n.flagsClock&&e.uint.preencode(o,n.flagsClock)},encode(o,n){const c=d>=15&&n.flagsClock?1:0;e.uint.encode(o,n.clock),e.uint.encode(o,n.pinned),e.uint.encode(o,n.threads),e.uint.encode(o,n.timestamp),e.uint.encode(o,c),d>=15&&n.flagsClock&&e.uint.encode(o,n.flagsClock)},decode(o){const n=e.uint.decode(o),c=e.uint.decode(o),t=e.uint.decode(o),r=e.uint.decode(o),i=o.start<o.end?e.uint.decode(o):0;return{clock:n,pinned:c,threads:t,timestamp:r,flagsClock:d>=15&&1&i?e.uint.decode(o):0}}},V={preencode(d,o){e.uint.preencode(d,o.clock)},encode(d,o){e.uint.encode(d,o.clock)},decode:d=>({clock:e.uint.decode(d)})},L=e.frame(M),q=e.frame(C),E=e.frame(D),B=e.frame(V),z={preencode(e,o){L.preencode(e,o.devices),q.preencode(e,o.members),E.preencode(e,o.chat),B.preencode(e,o.files),e.end++,d>=26&&o.calls&&Mr.preencode(e,o.calls)},encode(o,n){const c=d>=26&&n.calls?1:0;L.encode(o,n.devices),q.encode(o,n.members),E.encode(o,n.chat),B.encode(o,n.files),e.uint.encode(o,c),d>=26&&n.calls&&Mr.encode(o,n.calls)},decode(o){const n=L.decode(o),c=q.decode(o),t=E.decode(o),r=B.decode(o),i=o.start<o.end?e.uint.decode(o):0;return{devices:n,members:c,chat:t,files:r,calls:d>=26&&1&i?Mr.decode(o):null}}},N={Default:1,Broadcast:2,DirectMessage:3},j={preencode(e,d){e.end++},encode(d,o){if(o>3)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},O={preencode(o,n){const c=(n.roomType?1:0)|(n.isExperimental?2:0)|(n.isJoiningDisabled?4:0)|(n.isAppendingDisabled?8:0)|(n.isCallingDisabled?16:0)|(n.isMembershipEventsDisabled?32:0)|(d>=19&&n.isAttachmentsDisabled?64:0)|(d>=19&&n.isLinksDisabled?128:0)|(d>=20&&n.buildType?256:0)|(d>=23&&n.isRoomInviteHidden?512:0);e.uint.preencode(o,c),n.roomType&&j.preencode(o,n.roomType),d>=20&&n.buildType&&Bt.preencode(o,n.buildType)},encode(o,n){const c=(n.roomType?1:0)|(n.isExperimental?2:0)|(n.isJoiningDisabled?4:0)|(n.isAppendingDisabled?8:0)|(n.isCallingDisabled?16:0)|(n.isMembershipEventsDisabled?32:0)|(d>=19&&n.isAttachmentsDisabled?64:0)|(d>=19&&n.isLinksDisabled?128:0)|(d>=20&&n.buildType?256:0)|(d>=23&&n.isRoomInviteHidden?512:0);e.uint.encode(o,c),n.roomType&&j.encode(o,n.roomType),d>=20&&n.buildType&&Bt.encode(o,n.buildType)},decode(o){const n=e.uint.decode(o);return{roomType:1&n?j.decode(o):0,isExperimental:!!(2&n),isJoiningDisabled:!!(4&n),isAppendingDisabled:!!(8&n),isCallingDisabled:!!(16&n),isMembershipEventsDisabled:!!(32&n),isAttachmentsDisabled:d>=19&&!!(64&n),isLinksDisabled:d>=19&&!!(128&n),buildType:d>=20&&256&n?Bt.decode(o):null,isRoomInviteHidden:d>=23&&!!(512&n)}}},U=e.frame(H),J=e.frame(O),G={preencode(d,o){U.preencode(d,o.abi),J.preencode(d,o.settings),e.uint.preencode(d,o.creationTime)},encode(d,o){U.encode(d,o.abi),J.encode(d,o.settings),e.uint.encode(d,o.creationTime)},decode:d=>({abi:U.decode(d),settings:J.decode(d),creationTime:e.uint.decode(d)})},Q={preencode(d,o){e.fixed32.preencode(d,o.seed)},encode(d,o){e.fixed32.encode(d,o.seed)},decode:d=>({seed:e.fixed32.decode(d)})},W={preencode(d,o){c.preencode(d,o.mailboxKeyPair),t.preencode(d,o.discoveryKeyPair),e.fixed32.preencode(d,o.wakeupTopic),e.fixed32.preencode(d,o.swarmTopic)},encode(d,o){c.encode(d,o.mailboxKeyPair),t.encode(d,o.discoveryKeyPair),e.fixed32.encode(d,o.wakeupTopic),e.fixed32.encode(d,o.swarmTopic)},decode:d=>({mailboxKeyPair:c.decode(d),discoveryKeyPair:t.decode(d),wakeupTopic:e.fixed32.decode(d),swarmTopic:e.fixed32.decode(d)})},X=e.array(e.fixed32),Y={preencode(o,n){o.end++,n.title&&e.string.preencode(o,n.title),n.avatar&&Cr.preencode(o,n.avatar),n.description&&e.string.preencode(o,n.description),d>=11&&n.supportedLanguages&&Dr.preencode(o,n.supportedLanguages),d>=13&&n.blindPeers&&X.preencode(o,n.blindPeers)},encode(o,n){const c=(n.title?1:0)|(n.avatar?2:0)|(n.description?4:0)|(d>=11&&n.supportedLanguages?8:0)|(d>=13&&n.blindPeers?16:0);e.uint.encode(o,c),n.title&&e.string.encode(o,n.title),n.avatar&&Cr.encode(o,n.avatar),n.description&&e.string.encode(o,n.description),d>=11&&n.supportedLanguages&&Dr.encode(o,n.supportedLanguages),d>=13&&n.blindPeers&&X.encode(o,n.blindPeers)},decode(o){const n=e.uint.decode(o);return{title:1&n?e.string.decode(o):null,avatar:2&n?Cr.decode(o):null,description:4&n?e.string.decode(o):null,supportedLanguages:d>=11&&8&n?Dr.decode(o):null,blindPeers:d>=13&&16&n?X.decode(o):null}}},Z={preencode(d,o){e.fixed32.preencode(d,o.key)},encode(d,o){e.fixed32.encode(d,o.key)},decode:d=>({key:e.fixed32.decode(d)})},$=e.frame(i),_=e.frame(Z),ee={preencode(e,d){$.preencode(e,d.header),_.preencode(e,d.peer)},encode(e,d){$.encode(e,d.header),_.encode(e,d.peer)},decode:e=>({header:$.decode(e),peer:_.decode(e)})},de=$,oe={preencode(d,o){de.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){de.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:de.decode(d),key:e.fixed32.decode(d)})},ne={preencode(d,o){e.fixed32.preencode(d,o.memberKey),e.buffer.preencode(d,o.proof)},encode(d,o){e.fixed32.encode(d,o.memberKey),e.buffer.encode(d,o.proof)},decode:d=>({memberKey:e.fixed32.decode(d),proof:e.buffer.decode(d)})},ce={preencode(d,o){e.fixed32.preencode(d,o.id),e.buffer.preencode(d,o.response)},encode(d,o){e.fixed32.encode(d,o.id),e.buffer.encode(d,o.response)},decode:d=>({id:e.fixed32.decode(d),response:e.buffer.decode(d)})},te=e.frame(I),re=e.frame(ce),ie={preencode(d,o){e.fixed32.preencode(d,o.key),e.fixed32.preencode(d,o.memberKey),te.preencode(d,o.status),Vr.preencode(d,o.profile),d.end++,o.invitation&&re.preencode(d,o.invitation)},encode(d,o){const n=o.invitation?1:0;e.fixed32.encode(d,o.key),e.fixed32.encode(d,o.memberKey),te.encode(d,o.status),Vr.encode(d,o.profile),e.uint.encode(d,n),o.invitation&&re.encode(d,o.invitation)},decode:d=>({key:e.fixed32.decode(d),memberKey:e.fixed32.decode(d),status:te.decode(d),profile:Vr.decode(d),invitation:1&e.uint.decode(d)?re.decode(d):null})},ae={preencode(d,o){e.uint.preencode(d,o.timestamp),d.end++,o.mailbox&&e.fixed32.preencode(d,o.mailbox),o.displayName&&e.string.preencode(d,o.displayName),o.avatar&&Lr.preencode(d,o.avatar),o.username&&e.string.preencode(d,o.username)},encode(d,o){const n=(o.mailbox?1:0)|(o.displayName?2:0)|(o.avatar?4:0)|(o.username?8:0);e.uint.encode(d,o.timestamp),e.uint.encode(d,n),o.mailbox&&e.fixed32.encode(d,o.mailbox),o.displayName&&e.string.encode(d,o.displayName),o.avatar&&Lr.encode(d,o.avatar),o.username&&e.string.encode(d,o.username)},decode(d){const o=e.uint.decode(d),n=e.uint.decode(d);return{timestamp:o,mailbox:1&n?e.fixed32.decode(d):null,displayName:2&n?e.string.decode(d):null,avatar:4&n?Lr.decode(d):null,username:8&n?e.string.decode(d):null}}},se={preencode(o,n){o.end++,n.swarmKey&&e.fixed32.preencode(o,n.swarmKey),n.name&&e.string.preencode(o,n.name),d>=20&&n.buildType&&Bt.preencode(o,n.buildType)},encode(o,n){const c=(n.swarmKey?1:0)|(n.name?2:0)|(n.isMobile?4:0)|(d>=20&&n.buildType?8:0);e.uint.encode(o,c),n.swarmKey&&e.fixed32.encode(o,n.swarmKey),n.name&&e.string.encode(o,n.name),d>=20&&n.buildType&&Bt.encode(o,n.buildType)},decode(o){const n=e.uint.decode(o);return{swarmKey:1&n?e.fixed32.decode(o):null,name:2&n?e.string.decode(o):null,isMobile:!!(4&n),buildType:d>=20&&8&n?Bt.decode(o):null}}},pe=e.frame(ae),ue={preencode(e,d){pe.preencode(e,d.profile),ne.preencode(e,d.attestation)},encode(e,d){pe.encode(e,d.profile),ne.encode(e,d.attestation)},decode:e=>({profile:pe.decode(e),attestation:ne.decode(e)})},le={preencode(e,d){qr.preencode(e,d.profile),ne.preencode(e,d.attestation)},encode(e,d){qr.encode(e,d.profile),ne.encode(e,d.attestation)},decode:e=>({profile:qr.decode(e),attestation:ne.decode(e)})},fe={preencode(d,o){e.fixed32.preencode(d,o.id),e.buffer.preencode(d,o.data),e.buffer.preencode(d,o.signature)},encode(d,o){e.fixed32.encode(d,o.id),e.buffer.encode(d,o.data),e.buffer.encode(d,o.signature)},decode:d=>({id:e.fixed32.decode(d),data:e.buffer.decode(d),signature:e.buffer.decode(d)})},me={preencode(d,o){e.fixed32.preencode(d,o.devicePublicKey)},encode(d,o){e.fixed32.encode(d,o.devicePublicKey)},decode:d=>({devicePublicKey:e.fixed32.decode(d)})},ye={preencode(d,o){ne.preencode(d,o.privateProfileIdentity),e.buffer.preencode(d,o.deviceProof)},encode(d,o){ne.encode(d,o.privateProfileIdentity),e.buffer.encode(d,o.deviceProof)},decode:d=>({privateProfileIdentity:ne.decode(d),deviceProof:e.buffer.decode(d)})},be=e.frame(le),xe=e.frame(ue),ke=e.frame(me),ve={preencode(n,c){e.fixed32.preencode(n,c.deviceKey),t.preencode(n,c.keyPair),be.preencode(n,c.device),xe.preencode(n,c.member),n.end++,c.identity&&ke.preencode(n,c.identity),d>=27&&c.link&&o.preencode(n,c.link)},encode(n,c){const r=(c.identity?1:0)|(d>=27&&c.link?2:0);e.fixed32.encode(n,c.deviceKey),t.encode(n,c.keyPair),be.encode(n,c.device),xe.encode(n,c.member),e.uint.encode(n,r),c.identity&&ke.encode(n,c.identity),d>=27&&c.link&&o.encode(n,c.link)},decode(n){const c=e.fixed32.decode(n),r=t.decode(n),i=be.decode(n),a=xe.decode(n),s=e.uint.decode(n);return{deviceKey:c,keyPair:r,device:i,member:a,identity:1&s?ke.decode(n):null,link:d>=27&&2&s?o.decode(n):null}}},ge=e.frame(ve),he={preencode(d,o){e.fixed32.preencode(d,o.id),ge.preencode(d,o.request),e.buffer.preencode(d,o.signature)},encode(d,o){e.fixed32.encode(d,o.id),ge.encode(d,o.request),e.buffer.encode(d,o.signature)},decode:d=>({id:e.fixed32.decode(d),request:ge.decode(d),signature:e.buffer.decode(d)})},Ke=be,we=xe,Te={preencode(e,d){Ke.preencode(e,d.device),e.end++,d.member&&we.preencode(e,d.member)},encode(d,o){const n=o.member?1:0;Ke.encode(d,o.device),e.uint.encode(d,n),o.member&&we.encode(d,o.member)},decode:d=>({device:Ke.decode(d),member:1&e.uint.decode(d)?we.decode(d):null})},Ae=e.frame(he),Pe=e.frame(Te),Se={preencode(e,d){e.end++,d.withInvitation&&Ae.preencode(e,d.withInvitation),d.withMemberProof&&Pe.preencode(e,d.withMemberProof)},encode(d,o){const n=(o.withInvitation?1:0)|(o.withMemberProof?2:0);e.uint.encode(d,n),o.withInvitation&&Ae.encode(d,o.withInvitation),o.withMemberProof&&Pe.encode(d,o.withMemberProof)},decode(d){const o=e.uint.decode(d);return{withInvitation:1&o?Ae.decode(d):null,withMemberProof:2&o?Pe.decode(d):null}}},Ie=e.frame(fe),Re=e.frame(ye),Fe={preencode(e,d){Ie.preencode(e,d.signedKeys),e.end++,d.identity&&Re.preencode(e,d.identity)},encode(d,o){const n=o.identity?1:0;Ie.encode(d,o.signedKeys),e.uint.encode(d,n),o.identity&&Re.encode(d,o.identity)},decode:d=>({signedKeys:Ie.decode(d),identity:1&e.uint.decode(d)?Re.decode(d):null})},He={preencode(o,n){o.end++,n.expiration&&e.uint.preencode(o,n.expiration),d>=20&&n.buildType&&Bt.preencode(o,n.buildType)},encode(o,n){const c=(n.expiration?1:0)|(n.requiresConfirmation?2:0)|(n.canModerate?4:0)|(n.canAdmin?8:0)|(d>=20&&n.buildType?16:0);e.uint.encode(o,c),n.expiration&&e.uint.encode(o,n.expiration),d>=20&&n.buildType&&Bt.encode(o,n.buildType)},decode(o){const n=e.uint.decode(o);return{expiration:1&n?e.uint.decode(o):0,requiresConfirmation:!!(2&n),canModerate:!!(4&n),canAdmin:!!(8&n),buildType:d>=20&&16&n?Bt.decode(o):null}}},Me=Ie,Ce=e.frame(He),De={preencode(d,n){e.fixed32.preencode(d,n.id),Me.preencode(d,n.response),Ce.preencode(d,n.metadata),d.end++,n.anchor&&o.preencode(d,n.anchor)},encode(d,n){const c=(n.anchor?1:0)|(n.isActive?2:0);e.fixed32.encode(d,n.id),Me.encode(d,n.response),Ce.encode(d,n.metadata),e.uint.encode(d,c),n.anchor&&o.encode(d,n.anchor)},decode(d){const n=e.fixed32.decode(d),c=Me.decode(d),t=Ce.decode(d),r=e.uint.decode(d);return{id:n,response:c,metadata:t,anchor:1&r?o.decode(d):null,isActive:!!(2&r)}}},Ve=$,Le=e.frame(De),qe={preencode(e,d){Ve.preencode(e,d.header),Le.preencode(e,d.invitation)},encode(e,d){Ve.encode(e,d.header),Le.encode(e,d.invitation)},decode:e=>({header:Ve.decode(e),invitation:Le.decode(e)})},Ee=$,Be={preencode(d,o){Ee.preencode(d,o.header),e.fixed32.preencode(d,o.id)},encode(d,o){Ee.encode(d,o.header),e.fixed32.encode(d,o.id)},decode:d=>({header:Ee.decode(d),id:e.fixed32.decode(d)})},ze={preencode(d,n){e.fixed32.preencode(d,n.mailbox),e.fixed32.preencode(d,n.invitationSeed),o.preencode(d,n.anchor)},encode(d,n){e.fixed32.encode(d,n.mailbox),e.fixed32.encode(d,n.invitationSeed),o.encode(d,n.anchor)},decode:d=>({mailbox:e.fixed32.decode(d),invitationSeed:e.fixed32.decode(d),anchor:o.decode(d)})},Ne={preencode(d,n){e.fixed32.preencode(d,n.mailbox),e.fixed32.preencode(d,n.invitationSeed),o.preencode(d,n.anchor),e.fixed32.preencode(d,n.identityPublicKey)},encode(d,n){e.fixed32.encode(d,n.mailbox),e.fixed32.encode(d,n.invitationSeed),o.encode(d,n.anchor),e.fixed32.encode(d,n.identityPublicKey)},decode:d=>({mailbox:e.fixed32.decode(d),invitationSeed:e.fixed32.decode(d),anchor:o.decode(d),identityPublicKey:e.fixed32.decode(d)})},je={preencode(d,o){e.fixed32.preencode(d,o.mailbox)},encode(d,o){e.fixed32.encode(d,o.mailbox)},decode:d=>({mailbox:e.fixed32.decode(d)})},Oe=e.frame(ze),Ue=e.frame(Ne),Je=e.frame(je),Ge=e.array(e.ipv4Address),Qe={preencode(e,o){e.end++,o.room&&Oe.preencode(e,o.room),o.identity&&Ue.preencode(e,o.identity),o.contact&&Je.preencode(e,o.contact),d>=6&&o.readonly&&Er.preencode(e,o.readonly),d>=11&&o.additionalNodes&&Ge.preencode(e,o.additionalNodes),d>=20&&o.buildType&&Bt.preencode(e,o.buildType),d>=27&&o["readonly-v2"]&&Br.preencode(e,o["readonly-v2"])},encode(o,n){const c=(n.room?1:0)|(n.identity?2:0)|(n.contact?4:0)|(d>=6&&n.readonly?8:0)|(d>=11&&n.additionalNodes?16:0)|(d>=20&&n.buildType?32:0)|(d>=27&&n["readonly-v2"]?64:0);e.uint.encode(o,c),n.room&&Oe.encode(o,n.room),n.identity&&Ue.encode(o,n.identity),n.contact&&Je.encode(o,n.contact),d>=6&&n.readonly&&Er.encode(o,n.readonly),d>=11&&n.additionalNodes&&Ge.encode(o,n.additionalNodes),d>=20&&n.buildType&&Bt.encode(o,n.buildType),d>=27&&n["readonly-v2"]&&Br.encode(o,n["readonly-v2"])},decode(o){const n=e.uint.decode(o);return{room:1&n?Oe.decode(o):null,identity:2&n?Ue.decode(o):null,contact:4&n?Je.decode(o):null,readonly:d>=6&&8&n?Er.decode(o):null,additionalNodes:d>=11&&16&n?Ge.decode(o):null,buildType:d>=20&&32&n?Bt.decode(o):null,"readonly-v2":d>=27&&64&n?Br.decode(o):null}}},We=$,Xe={preencode(d,o){We.preencode(d,o.header),e.buffer.preencode(d,o.blindRequest)},encode(d,o){We.encode(d,o.header),e.buffer.encode(d,o.blindRequest)},decode:d=>({header:We.decode(d),blindRequest:e.buffer.decode(d)})},Ye=$,Ze={preencode(o,n){Ye.preencode(o,n.header),o.end++,n.profile&&zr.preencode(o,n.profile),d>=24&&n.key&&e.fixed32.preencode(o,n.key)},encode(o,n){const c=(n.profile?1:0)|(d>=24&&n.key?2:0);Ye.encode(o,n.header),e.uint.encode(o,c),n.profile&&zr.encode(o,n.profile),d>=24&&n.key&&e.fixed32.encode(o,n.key)},decode(o){const n=Ye.decode(o),c=e.uint.decode(o);return{header:n,profile:1&c?zr.decode(o):null,key:d>=24&&2&c?e.fixed32.decode(o):null}}},$e={preencode(e,d){},encode(e,d){},decode:e=>({})},_e=$e,ed=ge,dd={preencode(d,o){e.fixed32.preencode(d,o.deviceKey),e.fixed32.preencode(d,o.id),ed.preencode(d,o.request)},encode(d,o){e.fixed32.encode(d,o.deviceKey),e.fixed32.encode(d,o.id),ed.encode(d,o.request)},decode:d=>({deviceKey:e.fixed32.decode(d),id:e.fixed32.decode(d),request:ed.decode(d)})},od=$,nd=Re,cd={preencode(d,o){od.preencode(d,o.header),e.fixed32.preencode(d,o.deviceKey),d.end++,o.identity&&nd.preencode(d,o.identity)},encode(d,o){const n=o.identity?1:0;od.encode(d,o.header),e.fixed32.encode(d,o.deviceKey),e.uint.encode(d,n),o.identity&&nd.encode(d,o.identity)},decode:d=>({header:od.decode(d),deviceKey:e.fixed32.decode(d),identity:1&e.uint.decode(d)?nd.decode(d):null})},td=$,rd={preencode(d,o){td.preencode(d,o.header),e.fixed32.preencode(d,o.deviceKey)},encode(d,o){td.encode(d,o.header),e.fixed32.encode(d,o.deviceKey)},decode:d=>({header:td.decode(d),deviceKey:e.fixed32.decode(d)})},id=e.frame(R),ad=pe,sd={preencode(d,o){e.fixed32.preencode(d,o.key),id.preencode(d,o.status),ad.preencode(d,o.profile)},encode(d,o){e.fixed32.encode(d,o.key),id.encode(d,o.status),ad.encode(d,o.profile)},decode:d=>({key:e.fixed32.decode(d),status:id.decode(d),profile:ad.decode(d)})},pd=id,ud=pe,ld={preencode(d,o){e.fixed32.preencode(d,o.key),pd.preencode(d,o.status),ud.preencode(d,o.profile),d.end++,o.proofs&&Nr.preencode(d,o.proofs)},encode(d,o){const n=o.proofs?1:0;e.fixed32.encode(d,o.key),pd.encode(d,o.status),ud.encode(d,o.profile),e.uint.encode(d,n),o.proofs&&Nr.encode(d,o.proofs)},decode:d=>({key:e.fixed32.decode(d),status:pd.decode(d),profile:ud.decode(d),proofs:1&e.uint.decode(d)?Nr.decode(d):null})},fd={preencode(d,o){e.fixed32.preencode(d,o.key),d.end++,o.profileAttestation&&e.buffer.preencode(d,o.profileAttestation),o.latestReceipt&&e.buffer.preencode(d,o.latestReceipt)},encode(d,o){const n=(o.profileAttestation?1:0)|(o.latestReceipt?2:0);e.fixed32.encode(d,o.key),e.uint.encode(d,n),o.profileAttestation&&e.buffer.encode(d,o.profileAttestation),o.latestReceipt&&e.buffer.encode(d,o.latestReceipt)},decode(d){const o=e.fixed32.decode(d),n=e.uint.decode(d);return{key:o,profileAttestation:1&n?e.buffer.decode(d):null,latestReceipt:2&n?e.buffer.decode(d):null}}},md=$,yd=xe,bd={preencode(e,d){md.preencode(e,d.header),yd.preencode(e,d.member)},encode(e,d){md.encode(e,d.header),yd.encode(e,d.member)},decode:e=>({header:md.decode(e),member:yd.decode(e)})},xd=$,kd=e.frame(F),vd={preencode(d,o){xd.preencode(d,o.header),e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.key),kd.preencode(d,o.status)},encode(d,o){xd.encode(d,o.header),e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.key),kd.encode(d,o.status)},decode:d=>({header:xd.decode(d),memberKey:e.fixed32.decode(d),key:e.uint.decode(d),status:kd.decode(d)})},gd=$,hd={preencode(d,o){gd.preencode(d,o.header),e.fixed32.preencode(d,o.key),d.end++},encode(d,o){const n=(o.isModerator?1:0)|(o.isAdmin?2:0);gd.encode(d,o.header),e.fixed32.encode(d,o.key),e.uint.encode(d,n)},decode(d){const o=gd.decode(d),n=e.fixed32.decode(d),c=e.uint.decode(d);return{header:o,key:n,isModerator:!!(1&c),isAdmin:!!(2&c)}}},Kd=$,wd={preencode(d,o){Kd.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){Kd.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:Kd.decode(d),key:e.fixed32.decode(d)})},Td={preencode(d,o){e.fixed32.preencode(d,o.key),e.uint.preencode(d,o.mentions)},encode(d,o){e.fixed32.encode(d,o.key),e.uint.encode(d,o.mentions)},decode:d=>({key:e.fixed32.decode(d),mentions:e.uint.decode(d)})},Ad={preencode(d,o){d.end++,o.memberKey&&e.fixed32.preencode(d,o.memberKey)},encode(d,o){const n=o.memberKey?1:0;e.uint.encode(d,n),o.memberKey&&e.fixed32.encode(d,o.memberKey)},decode:d=>({memberKey:1&e.uint.decode(d)?e.fixed32.decode(d):null})},Pd=Ad,Sd={preencode(d,o){d.end++,o.from&&e.string.preencode(d,o.from),o.to&&e.string.preencode(d,o.to)},encode(d,o){const n=(o.from?1:0)|(o.to?2:0);e.uint.encode(d,n),o.from&&e.string.encode(d,o.from),o.to&&e.string.encode(d,o.to)},decode(d){const o=e.uint.decode(d);return{from:1&o?e.string.decode(d):null,to:2&o?e.string.decode(d):null}}},Id=e.frame(Ad),Rd=e.frame(Pd),Fd=e.frame(Sd),Hd={preencode(o,n){const c=(n.memberJoined?1:0)|(n.memberLeft?2:0)|(n.titleChanged?4:0)|(n.callStarted?8:0)|(n.callHangup?16:0)|(n.callMissed?32:0)|(d>=3&&n.roomAvatarChanged?64:0)|(d>=3&&n.invitationCreated?128:0)|(d>=3&&n.memberRemoved?256:0)|(d>=18&&n.locationShared?512:0);e.uint.preencode(o,c),n.memberJoined&&Id.preencode(o,n.memberJoined),n.memberLeft&&Rd.preencode(o,n.memberLeft),n.titleChanged&&Fd.preencode(o,n.titleChanged),d>=3&&n.memberRemoved&&jr.preencode(o,n.memberRemoved),d>=18&&n.locationShared&&Or.preencode(o,n.locationShared)},encode(o,n){const c=(n.memberJoined?1:0)|(n.memberLeft?2:0)|(n.titleChanged?4:0)|(n.callStarted?8:0)|(n.callHangup?16:0)|(n.callMissed?32:0)|(d>=3&&n.roomAvatarChanged?64:0)|(d>=3&&n.invitationCreated?128:0)|(d>=3&&n.memberRemoved?256:0)|(d>=18&&n.locationShared?512:0);e.uint.encode(o,c),n.memberJoined&&Id.encode(o,n.memberJoined),n.memberLeft&&Rd.encode(o,n.memberLeft),n.titleChanged&&Fd.encode(o,n.titleChanged),d>=3&&n.memberRemoved&&jr.encode(o,n.memberRemoved),d>=18&&n.locationShared&&Or.encode(o,n.locationShared)},decode(o){const n=e.uint.decode(o);return{memberJoined:1&n?Id.decode(o):null,memberLeft:2&n?Rd.decode(o):null,titleChanged:4&n?Fd.decode(o):null,callStarted:!!(8&n),callHangup:!!(16&n),callMissed:!!(32&n),roomAvatarChanged:d>=3&&!!(64&n),invitationCreated:d>=3&&!!(128&n),memberRemoved:d>=3&&256&n?jr.decode(o):null,locationShared:d>=18&&512&n?Or.decode(o):null}}},Md={preencode(e,o){e.end++,d>=18&&o.locationShared&&Ur.preencode(e,o.locationShared)},encode(o,n){const c=(n.callStarted?1:0)|(n.callHangup?2:0)|(n.callMissed?4:0)|(d>=18&&n.locationShared?8:0);e.uint.encode(o,c),d>=18&&n.locationShared&&Ur.encode(o,n.locationShared)},decode(o){const n=e.uint.decode(o);return{callStarted:!!(1&n),callHangup:!!(2&n),callMissed:!!(4&n),locationShared:d>=18&&8&n?Ur.decode(o):null}}},Cd={preencode(d,o){e.uint.preencode(d,o.start),e.uint.preencode(d,o.length)},encode(d,o){e.uint.encode(d,o.start),e.uint.encode(d,o.length)},decode:d=>({start:e.uint.decode(d),length:e.uint.decode(d)})},Dd=e.frame(Cd),Vd={preencode(d,o){Dd.preencode(d,o.range),e.string.preencode(d,o.content)},encode(d,o){Dd.encode(d,o.range),e.string.encode(d,o.content)},decode:d=>({range:Dd.decode(d),content:e.string.decode(d)})},Ld=Dd,qd={preencode(d,o){Ld.preencode(d,o.range),e.fixed32.preencode(d,o.memberKey)},encode(d,o){Ld.encode(d,o.range),e.fixed32.encode(d,o.memberKey)},decode:d=>({range:Ld.decode(d),memberKey:e.fixed32.decode(d)})},Ed=g,Bd=e.array(e.uint),zd={preencode(o,n){o.end++,n.title&&e.string.preencode(o,n.title),n.description&&e.string.preencode(o,n.description),n.file&&Ed.preencode(o,n.file),d>=7&&n.files&&Bd.preencode(o,n.files)},encode(o,n){const c=(n.title?1:0)|(n.description?2:0)|(n.file?4:0)|(d>=7&&n.files?8:0);e.uint.encode(o,c),n.title&&e.string.encode(o,n.title),n.description&&e.string.encode(o,n.description),n.file&&Ed.encode(o,n.file),d>=7&&n.files&&Bd.encode(o,n.files)},decode(o){const n=e.uint.decode(o);return{title:1&n?e.string.decode(o):null,description:2&n?e.string.decode(o):null,file:4&n?Ed.decode(o):null,files:d>=7&&8&n?Bd.decode(o):null}}},Nd=Dd,jd=e.frame(zd),Od={preencode(d,o){Nd.preencode(d,o.range),e.string.preencode(d,o.url),d.end++,o.preview&&jd.preencode(d,o.preview)},encode(d,o){const n=o.preview?1:0;Nd.encode(d,o.range),e.string.encode(d,o.url),e.uint.encode(d,n),o.preview&&jd.encode(d,o.preview)},decode:d=>({range:Nd.decode(d),url:e.string.decode(d),preview:1&e.uint.decode(d)?jd.decode(d):null})},Ud=e.array(e.frame(qd)),Jd=e.array(e.frame(Od)),Gd=Jd,Qd=e.array(e.frame(Cd)),Wd=Qd,Xd=Qd,Yd=e.array(e.frame(Vd)),Zd=Qd,$d=Qd,_d={preencode(o,n){const c=(n.mention?1:0)|(n.httpLink?2:0)|(n.pearLink?4:0)|(n.bold?8:0)|(n.italic?16:0)|(n.code?32:0)|(n.emoji?64:0)|(n.codeBlock?128:0)|(n.strike?256:0)|(d>=11&&n.translation?512:0);e.uint.preencode(o,c),n.mention&&Ud.preencode(o,n.mention),n.httpLink&&Jd.preencode(o,n.httpLink),n.pearLink&&Gd.preencode(o,n.pearLink),n.bold&&Qd.preencode(o,n.bold),n.italic&&Wd.preencode(o,n.italic),n.code&&Xd.preencode(o,n.code),n.emoji&&Yd.preencode(o,n.emoji),n.codeBlock&&Zd.preencode(o,n.codeBlock),n.strike&&$d.preencode(o,n.strike),d>=11&&n.translation&&Jr.preencode(o,n.translation)},encode(o,n){const c=(n.mention?1:0)|(n.httpLink?2:0)|(n.pearLink?4:0)|(n.bold?8:0)|(n.italic?16:0)|(n.code?32:0)|(n.emoji?64:0)|(n.codeBlock?128:0)|(n.strike?256:0)|(d>=11&&n.translation?512:0);e.uint.encode(o,c),n.mention&&Ud.encode(o,n.mention),n.httpLink&&Jd.encode(o,n.httpLink),n.pearLink&&Gd.encode(o,n.pearLink),n.bold&&Qd.encode(o,n.bold),n.italic&&Wd.encode(o,n.italic),n.code&&Xd.encode(o,n.code),n.emoji&&Yd.encode(o,n.emoji),n.codeBlock&&Zd.encode(o,n.codeBlock),n.strike&&$d.encode(o,n.strike),d>=11&&n.translation&&Jr.encode(o,n.translation)},decode(o){const n=e.uint.decode(o);return{mention:1&n?Ud.decode(o):null,httpLink:2&n?Jd.decode(o):null,pearLink:4&n?Gd.decode(o):null,bold:8&n?Qd.decode(o):null,italic:16&n?Wd.decode(o):null,code:32&n?Xd.decode(o):null,emoji:64&n?Yd.decode(o):null,codeBlock:128&n?Zd.decode(o):null,strike:256&n?$d.decode(o):null,translation:d>=11&&512&n?Jr.decode(o):null}}},eo=e.array(e.frame(v)),oo=e.frame(_d),no=e.frame(Md),co={preencode(d,o){d.end++,o.text&&e.string.preencode(d,o.text),o.files&&eo.preencode(d,o.files),o.display&&oo.preencode(d,o.display),o.replyTo&&n.preencode(d,o.replyTo),o.parent&&n.preencode(d,o.parent),o.event&&no.preencode(d,o.event)},encode(o,c){const t=(c.text?1:0)|(c.files?2:0)|(c.display?4:0)|(c.replyTo?8:0)|(c.parent?16:0)|(c.event?32:0)|(d>=18&&c.forwarded?64:0);e.uint.encode(o,t),c.text&&e.string.encode(o,c.text),c.files&&eo.encode(o,c.files),c.display&&oo.encode(o,c.display),c.replyTo&&n.encode(o,c.replyTo),c.parent&&n.encode(o,c.parent),c.event&&no.encode(o,c.event)},decode(o){const c=e.uint.decode(o);return{text:1&c?e.string.decode(o):null,files:2&c?eo.decode(o):null,display:4&c?oo.decode(o):null,replyTo:8&c?n.decode(o):null,parent:16&c?n.decode(o):null,event:32&c?no.decode(o):null,forwarded:d>=18&&!!(64&c)}}},to=Bd,ro=oo,io={preencode(d,o){d.end++,o.text&&e.string.preencode(d,o.text),o.files&&to.preencode(d,o.files),o.display&&ro.preencode(d,o.display),o.replyTo&&n.preencode(d,o.replyTo),o.parent&&n.preencode(d,o.parent)},encode(o,c){const t=(c.text?1:0)|(c.files?2:0)|(c.display?4:0)|(c.replyTo?8:0)|(c.parent?16:0)|(d>=18&&c.forwarded?32:0);e.uint.encode(o,t),c.text&&e.string.encode(o,c.text),c.files&&to.encode(o,c.files),c.display&&ro.encode(o,c.display),c.replyTo&&n.encode(o,c.replyTo),c.parent&&n.encode(o,c.parent)},decode(o){const c=e.uint.decode(o);return{text:1&c?e.string.decode(o):null,files:2&c?to.decode(o):null,display:4&c?ro.decode(o):null,replyTo:8&c?n.decode(o):null,parent:16&c?n.decode(o):null,forwarded:d>=18&&!!(32&c)}}},ao=eo,so=oo,po={preencode(d,o){d.end++,o.text&&e.string.preencode(d,o.text),o.files&&ao.preencode(d,o.files),o.display&&so.preencode(d,o.display),o.replyTo&&n.preencode(d,o.replyTo),o.parent&&n.preencode(d,o.parent)},encode(o,c){const t=(c.text?1:0)|(c.files?2:0)|(c.display?4:0)|(c.replyTo?8:0)|(c.parent?16:0)|(d>=18&&c.forwarded?32:0);e.uint.encode(o,t),c.text&&e.string.encode(o,c.text),c.files&&ao.encode(o,c.files),c.display&&so.encode(o,c.display),c.replyTo&&n.encode(o,c.replyTo),c.parent&&n.encode(o,c.parent)},decode(o){const c=e.uint.decode(o);return{text:1&c?e.string.decode(o):null,files:2&c?ao.decode(o):null,display:4&c?so.decode(o):null,replyTo:8&c?n.decode(o):null,parent:16&c?n.decode(o):null,forwarded:d>=18&&!!(32&c)}}},uo={preencode(e,d){e.end++},encode(d,o){const n=(o.isEdited?1:0)|(o.isDeleted?2:0)|(o.isPinned?4:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isEdited:!!(1&o),isDeleted:!!(2&o),isPinned:!!(4&o)}}},lo={preencode(d,o){e.uint.preencode(d,o.thread),e.uint.preencode(d,o.index)},encode(d,o){e.uint.encode(d,o.thread),e.uint.encode(d,o.index)},decode:d=>({thread:e.uint.decode(d),index:e.uint.decode(d)})},fo=e.frame(z),mo={preencode(d,o){e.uint.preencode(d,o.id),e.uint.preencode(d,o.count),d.end++,o.parent&&n.preencode(d,o.parent),o.stats&&fo.preencode(d,o.stats)},encode(d,o){const c=(o.parent?1:0)|(o.stats?2:0);e.uint.encode(d,o.id),e.uint.encode(d,o.count),e.uint.encode(d,c),o.parent&&n.encode(d,o.parent),o.stats&&fo.encode(d,o.stats)},decode(d){const o=e.uint.decode(d),c=e.uint.decode(d),t=e.uint.decode(d);return{id:o,count:c,parent:1&t?n.decode(d):null,stats:2&t?fo.decode(d):null}}},yo=e.frame(uo),bo=e.frame(io),xo=e.frame(Hd),ko={preencode(d,o){lo.preencode(d,o.id),n.preencode(d,o.oplog),e.uint.preencode(d,o.clock),e.uint.preencode(d,o.timestamp),d.end++,o.editedAt&&e.uint.preencode(d,o.editedAt),yo.preencode(d,o.status),o.message&&bo.preencode(d,o.message),o.event&&xo.preencode(d,o.event)},encode(d,o){const c=(o.editedAt?1:0)|(o.message?2:0)|(o.event?4:0);lo.encode(d,o.id),n.encode(d,o.oplog),e.uint.encode(d,o.clock),e.uint.encode(d,o.timestamp),e.uint.encode(d,c),o.editedAt&&e.uint.encode(d,o.editedAt),yo.encode(d,o.status),o.message&&bo.encode(d,o.message),o.event&&xo.encode(d,o.event)},decode(d){const o=lo.decode(d),c=n.decode(d),t=e.uint.decode(d),r=e.uint.decode(d),i=e.uint.decode(d);return{id:o,oplog:c,clock:t,timestamp:r,editedAt:1&i?e.uint.decode(d):0,status:yo.decode(d),message:2&i?bo.decode(d):null,event:4&i?xo.decode(d):null}}},vo=yo,go=e.frame(po),ho=xo,Ko={preencode(d,o){lo.preencode(d,o.id),n.preencode(d,o.oplog),e.uint.preencode(d,o.clock),e.uint.preencode(d,o.timestamp),d.end++,o.editedAt&&e.uint.preencode(d,o.editedAt),vo.preencode(d,o.status),o.message&&go.preencode(d,o.message),o.event&&ho.preencode(d,o.event)},encode(d,o){const c=(o.editedAt?1:0)|(o.message?2:0)|(o.event?4:0);lo.encode(d,o.id),n.encode(d,o.oplog),e.uint.encode(d,o.clock),e.uint.encode(d,o.timestamp),e.uint.encode(d,c),o.editedAt&&e.uint.encode(d,o.editedAt),vo.encode(d,o.status),o.message&&go.encode(d,o.message),o.event&&ho.encode(d,o.event)},decode(d){const o=lo.decode(d),c=n.decode(d),t=e.uint.decode(d),r=e.uint.decode(d),i=e.uint.decode(d);return{id:o,oplog:c,clock:t,timestamp:r,editedAt:1&i?e.uint.decode(d):0,status:vo.decode(d),message:2&i?go.decode(d):null,event:4&i?ho.decode(d):null}}},wo=$,To=e.frame(co),Ao={preencode(e,d){wo.preencode(e,d.header),To.preencode(e,d.message)},encode(e,d){wo.encode(e,d.header),To.encode(e,d.message)},decode:e=>({header:wo.decode(e),message:To.decode(e)})},Po=$,So={preencode(e,d){Po.preencode(e,d.header),n.preencode(e,d.oplog)},encode(e,d){Po.encode(e,d.header),n.encode(e,d.oplog)},decode:e=>({header:Po.decode(e),oplog:n.decode(e)})},Io=$,Ro=To,Fo={preencode(e,d){Io.preencode(e,d.header),n.preencode(e,d.oplog),Ro.preencode(e,d.message)},encode(e,d){Io.encode(e,d.header),n.encode(e,d.oplog),Ro.encode(e,d.message)},decode:e=>({header:Io.decode(e),oplog:n.decode(e),message:Ro.decode(e)})},Ho=$,Mo={preencode(e,d){Ho.preencode(e,d.header),n.preencode(e,d.oplog),e.end++},encode(d,o){const c=o.isPinned?1:0;Ho.encode(d,o.header),n.encode(d,o.oplog),e.uint.encode(d,c)},decode:d=>({header:Ho.decode(d),oplog:n.decode(d),isPinned:!!(1&e.uint.decode(d))})},Co={preencode(d,o){lo.preencode(d,o.id),e.fixed32.preencode(d,o.sender),e.uint.preencode(d,o.clock),e.string.preencode(d,o.reaction)},encode(d,o){lo.encode(d,o.id),e.fixed32.encode(d,o.sender),e.uint.encode(d,o.clock),e.string.encode(d,o.reaction)},decode:d=>({id:lo.decode(d),sender:e.fixed32.decode(d),clock:e.uint.decode(d),reaction:e.string.decode(d)})},Do={preencode(d,o){e.string.preencode(d,o.text),e.uint.preencode(d,o.count)},encode(d,o){e.string.encode(d,o.text),e.uint.encode(d,o.count)},decode:d=>({text:e.string.decode(d),count:e.uint.decode(d)})},Vo=e.array(e.frame(Do)),Lo={preencode(o,n){lo.preencode(o,n.id),e.uint.preencode(o,n.total),Vo.preencode(o,n.reactions),o.end++,d>=11&&n.editedAt&&e.uint.preencode(o,n.editedAt)},encode(o,n){const c=d>=11&&n.editedAt?1:0;lo.encode(o,n.id),e.uint.encode(o,n.total),Vo.encode(o,n.reactions),e.uint.encode(o,c),d>=11&&n.editedAt&&e.uint.encode(o,n.editedAt)},decode(o){const n=lo.decode(o),c=e.uint.decode(o),t=Vo.decode(o),r=o.start<o.end?e.uint.decode(o):0;return{id:n,total:c,reactions:t,editedAt:d>=11&&1&r?e.uint.decode(o):0}}},qo=$,Eo={preencode(d,o){qo.preencode(d,o.header),n.preencode(d,o.oplog),e.string.preencode(d,o.reaction)},encode(d,o){qo.encode(d,o.header),n.encode(d,o.oplog),e.string.encode(d,o.reaction)},decode:d=>({header:qo.decode(d),oplog:n.decode(d),reaction:e.string.decode(d)})},Bo=$,zo={preencode(d,o){Bo.preencode(d,o.header),n.preencode(d,o.oplog),e.string.preencode(d,o.reaction)},encode(d,o){Bo.encode(d,o.header),n.encode(d,o.oplog),e.string.encode(d,o.reaction)},decode:d=>({header:Bo.decode(d),oplog:n.decode(d),reaction:e.string.decode(d)})},No=$,jo=e.frame(Y),Oo={preencode(d,o){No.preencode(d,o.header),e.uint.preencode(d,o.key),jo.preencode(d,o.config)},encode(d,o){No.encode(d,o.header),e.uint.encode(d,o.key),jo.encode(d,o.config)},decode:d=>({header:No.decode(d),key:e.uint.decode(d),config:jo.decode(d)})},Uo={preencode(d,o){e.fixed32.preencode(d,o.memberKey),e.string.preencode(d,o.displayName),d.end++,o.avatar&&Gr.preencode(d,o.avatar)},encode(d,o){const n=o.avatar?1:0;e.fixed32.encode(d,o.memberKey),e.string.encode(d,o.displayName),e.uint.encode(d,n),o.avatar&&Gr.encode(d,o.avatar)},decode:d=>({memberKey:e.fixed32.decode(d),displayName:e.string.decode(d),avatar:1&e.uint.decode(d)?Gr.decode(d):null})},Jo={preencode(d,o){e.fixed32.preencode(d,o.key),d.end++,o.username&&e.string.preencode(d,o.username)},encode(d,o){const n=o.username?1:0;e.fixed32.encode(d,o.key),e.uint.encode(d,n),o.username&&e.string.encode(d,o.username)},decode:d=>({key:e.fixed32.decode(d),username:1&e.uint.decode(d)?e.string.decode(d):null})},Go=e.frame(Jo),Qo={preencode(d,o){e.fixed32.preencode(d,o.publicKey),d.end++,o.discoveryCoreKey&&e.fixed32.preencode(d,o.discoveryCoreKey),o.userRegistry&&Go.preencode(d,o.userRegistry)},encode(d,o){const n=(o.discoveryCoreKey?1:0)|(o.userRegistry?2:0);e.fixed32.encode(d,o.publicKey),e.uint.encode(d,n),o.discoveryCoreKey&&e.fixed32.encode(d,o.discoveryCoreKey),o.userRegistry&&Go.encode(d,o.userRegistry)},decode(d){const o=e.fixed32.decode(d),n=e.uint.decode(d);return{publicKey:o,discoveryCoreKey:1&n?e.fixed32.decode(d):null,userRegistry:2&n?Go.decode(d):null}}},Wo=$,Xo=e.frame(G),Yo=e.frame(Q),Zo=jo,$o=e.frame(Qo),_o=be,en=e.array(e.frame(ue)),dn={preencode(e,d){Wo.preencode(e,d.header),Xo.preencode(e,d.digest),Yo.preencode(e,d.capabilities),e.end++,d.config&&Zo.preencode(e,d.config),d.identity&&$o.preencode(e,d.identity),d.bootstrapDevice&&_o.preencode(e,d.bootstrapDevice),d.initialMembers&&en.preencode(e,d.initialMembers)},encode(d,o){const n=(o.config?1:0)|(o.identity?2:0)|(o.bootstrapDevice?4:0)|(o.initialMembers?8:0);Wo.encode(d,o.header),Xo.encode(d,o.digest),Yo.encode(d,o.capabilities),e.uint.encode(d,n),o.config&&Zo.encode(d,o.config),o.identity&&$o.encode(d,o.identity),o.bootstrapDevice&&_o.encode(d,o.bootstrapDevice),o.initialMembers&&en.encode(d,o.initialMembers)},decode(d){const o=Wo.decode(d),n=Xo.decode(d),c=Yo.decode(d),t=e.uint.decode(d);return{header:o,digest:n,capabilities:c,config:1&t?Zo.decode(d):null,identity:2&t?$o.decode(d):null,bootstrapDevice:4&t?_o.decode(d):null,initialMembers:8&t?en.decode(d):null}}},on=$,nn={preencode(d,o){on.preencode(d,o.header),e.uint.preencode(d,o.version)},encode(d,o){on.encode(d,o.header),e.uint.encode(d,o.version)},decode:d=>({header:on.decode(d),version:e.uint.decode(d)})},cn=$,tn=J,rn={preencode(d,o){cn.preencode(d,o.header),e.uint.preencode(d,o.key),tn.preencode(d,o.settings)},encode(d,o){cn.encode(d,o.header),e.uint.encode(d,o.key),tn.encode(d,o.settings)},decode:d=>({header:cn.decode(d),key:e.uint.decode(d),settings:tn.decode(d)})},an={preencode(o,n){e.fixed32.preencode(o,n.memberKey),Qr.preencode(o,n.status),o.end++,n.mailbox&&e.fixed32.preencode(o,n.mailbox),n.roomKey&&e.fixed32.preencode(o,n.roomKey),d>=22&&n.contactInfo&&Wr.preencode(o,n.contactInfo),d>=22&&n.version&&e.uint.preencode(o,n.version),d>=24&&n.alias&&e.string.preencode(o,n.alias)},encode(o,n){const c=(n.mailbox?1:0)|(n.roomKey?2:0)|(d>=22&&n.contactInfo?4:0)|(d>=22&&n.version?8:0)|(d>=24&&n.alias?16:0);e.fixed32.encode(o,n.memberKey),Qr.encode(o,n.status),e.uint.encode(o,c),n.mailbox&&e.fixed32.encode(o,n.mailbox),n.roomKey&&e.fixed32.encode(o,n.roomKey),d>=22&&n.contactInfo&&Wr.encode(o,n.contactInfo),d>=22&&n.version&&e.uint.encode(o,n.version),d>=24&&n.alias&&e.string.encode(o,n.alias)},decode(o){const n=e.fixed32.decode(o),c=Qr.decode(o),t=e.uint.decode(o);return{memberKey:n,status:c,mailbox:1&t?e.fixed32.decode(o):null,roomKey:2&t?e.fixed32.decode(o):null,contactInfo:d>=22&&4&t?Wr.decode(o):null,version:d>=22&&8&t?e.uint.decode(o):0,alias:d>=24&&16&t?e.string.decode(o):null}}},sn={preencode(d,n){e.fixed32.preencode(d,n.roomKey),e.buffer.preencode(d,n.encryptionKey),e.fixed32.preencode(d,n.seed),o.preencode(d,n.initiator),e.fixed32.preencode(d,n.fastForwardTo)},encode(d,n){e.fixed32.encode(d,n.roomKey),e.buffer.encode(d,n.encryptionKey),e.fixed32.encode(d,n.seed),o.encode(d,n.initiator),e.fixed32.encode(d,n.fastForwardTo)},decode:d=>({roomKey:e.fixed32.decode(d),encryptionKey:e.buffer.decode(d),seed:e.fixed32.decode(d),initiator:o.decode(d),fastForwardTo:e.fixed32.decode(d)})},pn=e.array(e.frame(sn)),un=X,ln={preencode(e,d){pn.preencode(e,d.sharedRooms),un.preencode(e,d.blockedContacts)},encode(e,d){pn.encode(e,d.sharedRooms),un.encode(e,d.blockedContacts)},decode:e=>({sharedRooms:pn.decode(e),blockedContacts:un.decode(e)})},fn=$o,mn={preencode(e,d){fn.preencode(e,d.identity)},encode(e,d){fn.encode(e,d.identity)},decode:e=>({identity:fn.decode(e)})},yn={preencode(d,o){e.uint.preencode(d,o.rooms),e.uint.preencode(d,o.contacts)},encode(d,o){e.uint.encode(d,o.rooms),e.uint.encode(d,o.contacts)},decode:d=>({rooms:e.uint.decode(d),contacts:e.uint.decode(d)})},bn={preencode(d,o){e.uint.preencode(d,o.rooms),e.uint.preencode(d,o.contactRequests)},encode(d,o){e.uint.encode(d,o.rooms),e.uint.encode(d,o.contactRequests)},decode:d=>({rooms:e.uint.decode(d),contactRequests:e.uint.decode(d)})},xn={preencode(d,o){e.buffer.preencode(d,o.entropy)},encode(d,o){e.buffer.encode(d,o.entropy)},decode:d=>({entropy:e.buffer.decode(d)})},kn={preencode(d,o){e.fixed32.preencode(d,o.publicKey),e.fixed32.preencode(d,o.devicePublicKey),e.fixed32.preencode(d,o.writerKey)},encode(d,o){e.fixed32.encode(d,o.publicKey),e.fixed32.encode(d,o.devicePublicKey),e.fixed32.encode(d,o.writerKey)},decode:d=>({publicKey:e.fixed32.decode(d),devicePublicKey:e.fixed32.decode(d),writerKey:e.fixed32.decode(d)})},vn=e.frame(kn),gn={preencode(n,c){e.fixed32.preencode(n,c.id),e.fixed32.preencode(n,c.invitationSeed),e.fixed32.preencode(n,c.mailbox),t.preencode(n,c.responseKeyPair),o.preencode(n,c.initiator),o.preencode(n,c.inviter),n.end++,c.identity&&vn.preencode(n,c.identity),d>=20&&c.buildType&&Bt.preencode(n,c.buildType),d>=27&&c.link&&o.preencode(n,c.link)},encode(n,c){const r=(c.identity?1:0)|(d>=20&&c.buildType?2:0)|(d>=27&&c.link?4:0);e.fixed32.encode(n,c.id),e.fixed32.encode(n,c.invitationSeed),e.fixed32.encode(n,c.mailbox),t.encode(n,c.responseKeyPair),o.encode(n,c.initiator),o.encode(n,c.inviter),e.uint.encode(n,r),c.identity&&vn.encode(n,c.identity),d>=20&&c.buildType&&Bt.encode(n,c.buildType),d>=27&&c.link&&o.encode(n,c.link)},decode(n){const c=e.fixed32.decode(n),r=e.fixed32.decode(n),i=e.fixed32.decode(n),a=t.decode(n),s=o.decode(n),p=o.decode(n),u=e.uint.decode(n);return{id:c,invitationSeed:r,mailbox:i,responseKeyPair:a,initiator:s,inviter:p,identity:1&u?vn.decode(n):null,buildType:d>=20&&2&u?Bt.decode(n):null,link:d>=27&&4&u?o.decode(n):null}}},hn=$,Kn={preencode(d,o){hn.preencode(d,o.header),e.buffer.preencode(d,o.blindResponse)},encode(d,o){hn.encode(d,o.header),e.buffer.encode(d,o.blindResponse)},decode:d=>({header:hn.decode(d),blindResponse:e.buffer.decode(d)})},wn=$,Tn=e.frame(gn),An={preencode(e,d){wn.preencode(e,d.header),Tn.preencode(e,d.invitation)},encode(e,d){wn.encode(e,d.header),Tn.encode(e,d.invitation)},decode:e=>({header:wn.decode(e),invitation:Tn.decode(e)})},Pn=$,Sn={preencode(d,o){Pn.preencode(d,o.header),e.fixed32.preencode(d,o.id)},encode(d,o){Pn.encode(d,o.header),e.fixed32.encode(d,o.id)},decode:d=>({header:Pn.decode(d),id:e.fixed32.decode(d)})},In={preencode(d,o){e.fixed32.preencode(d,o.publicKey),e.fixed32.preencode(d,o.devicePublicKey),d.end++,o.privateProfileKey&&e.fixed32.preencode(d,o.privateProfileKey),o.deviceKeyPair&&t.preencode(d,o.deviceKeyPair),e.buffer.preencode(d,o.deviceProof)},encode(d,o){const n=(o.privateProfileKey?1:0)|(o.deviceKeyPair?2:0);e.fixed32.encode(d,o.publicKey),e.fixed32.encode(d,o.devicePublicKey),e.uint.encode(d,n),o.privateProfileKey&&e.fixed32.encode(d,o.privateProfileKey),o.deviceKeyPair&&t.encode(d,o.deviceKeyPair),e.buffer.encode(d,o.deviceProof)},decode(d){const o=e.fixed32.decode(d),n=e.fixed32.decode(d),c=e.uint.decode(d);return{publicKey:o,devicePublicKey:n,privateProfileKey:1&c?e.fixed32.decode(d):null,deviceKeyPair:2&c?t.decode(d):null,deviceProof:e.buffer.decode(d)}}},Rn={preencode(o,n){o.end++,d>=25&&n.roomSnoozeTime&&e.uint.preencode(o,n.roomSnoozeTime)},encode(o,n){const c=(n.isActive?1:0)|(n.isFullyMuted?2:0)|(n.isMentionsOnlyMuted?4:0)|(d>=9&&n.isReadOnly?8:0)|(d>=18&&n.isFavorite?16:0)|(d>=21&&n.isUnread?32:0)|(d>=25&&n.roomSnoozeTime?64:0);e.uint.encode(o,c),d>=25&&n.roomSnoozeTime&&e.uint.encode(o,n.roomSnoozeTime)},decode(o){const n=e.uint.decode(o);return{isActive:!!(1&n),isFullyMuted:!!(2&n),isMentionsOnlyMuted:!!(4&n),isReadOnly:d>=9&&!!(8&n),isFavorite:d>=18&&!!(16&n),isUnread:d>=21&&!!(32&n),roomSnoozeTime:d>=25&&64&n?e.uint.decode(o):0}}},Fn=e.frame(Rn),Hn=e.frame(In),Mn=vn,Cn={preencode(n,c){e.fixed32.preencode(n,c.roomKey),e.buffer.preencode(n,c.encryptionKey),e.fixed32.preencode(n,c.mailbox),Fn.preencode(n,c.status),e.uint.preencode(n,c.clock),n.end++,c.initiator&&o.preencode(n,c.initiator),c.fastForwardTo&&e.fixed32.preencode(n,c.fastForwardTo),c.identitySwap&&Hn.preencode(n,c.identitySwap),d>=6&&c.identitySwapV2&&Mn.preencode(n,c.identitySwapV2),d>=10&&c.contact&&e.fixed32.preencode(n,c.contact),d>=27&&c.bootFrom&&o.preencode(n,c.bootFrom),d>=29&&c.activeClock&&e.uint.preencode(n,c.activeClock)},encode(n,c){const t=(c.initiator?1:0)|(c.fastForwardTo?2:0)|(c.identitySwap?4:0)|(d>=6&&c.identitySwapV2?8:0)|(d>=10&&c.contact?16:0)|(d>=27&&c.bootFrom?32:0)|(d>=29&&c.activeClock?64:0);e.fixed32.encode(n,c.roomKey),e.buffer.encode(n,c.encryptionKey),e.fixed32.encode(n,c.mailbox),Fn.encode(n,c.status),e.uint.encode(n,c.clock),e.uint.encode(n,t),c.initiator&&o.encode(n,c.initiator),c.fastForwardTo&&e.fixed32.encode(n,c.fastForwardTo),c.identitySwap&&Hn.encode(n,c.identitySwap),d>=6&&c.identitySwapV2&&Mn.encode(n,c.identitySwapV2),d>=10&&c.contact&&e.fixed32.encode(n,c.contact),d>=27&&c.bootFrom&&o.encode(n,c.bootFrom),d>=29&&c.activeClock&&e.uint.encode(n,c.activeClock)},decode(n){const c=e.fixed32.decode(n),t=e.buffer.decode(n),r=e.fixed32.decode(n),i=Fn.decode(n),a=e.uint.decode(n),s=e.uint.decode(n);return{roomKey:c,encryptionKey:t,mailbox:r,status:i,clock:a,initiator:1&s?o.decode(n):null,fastForwardTo:2&s?e.fixed32.decode(n):null,identitySwap:4&s?Hn.decode(n):null,identitySwapV2:d>=6&&8&s?Mn.decode(n):null,contact:d>=10&&16&s?e.fixed32.decode(n):null,bootFrom:d>=27&&32&s?o.decode(n):null,activeClock:d>=29&&64&s?e.uint.decode(n):0}}},Dn=$,Vn={preencode(d,n){Dn.preencode(d,n.header),e.fixed32.preencode(d,n.roomKey),e.buffer.preencode(d,n.encryptionKey),e.fixed32.preencode(d,n.mailbox),d.end++,n.fastForwardTo&&e.fixed32.preencode(d,n.fastForwardTo),n.initiator&&o.preencode(d,n.initiator),n.dm&&e.fixed32.preencode(d,n.dm)},encode(n,c){const t=(c.fastForwardTo?1:0)|(c.initiator?2:0)|(c.dm?4:0)|(d>=9&&c.isReadOnly?8:0);Dn.encode(n,c.header),e.fixed32.encode(n,c.roomKey),e.buffer.encode(n,c.encryptionKey),e.fixed32.encode(n,c.mailbox),e.uint.encode(n,t),c.fastForwardTo&&e.fixed32.encode(n,c.fastForwardTo),c.initiator&&o.encode(n,c.initiator),c.dm&&e.fixed32.encode(n,c.dm)},decode(n){const c=Dn.decode(n),t=e.fixed32.decode(n),r=e.buffer.decode(n),i=e.fixed32.decode(n),a=e.uint.decode(n);return{header:c,roomKey:t,encryptionKey:r,mailbox:i,fastForwardTo:1&a?e.fixed32.decode(n):null,initiator:2&a?o.decode(n):null,dm:4&a?e.fixed32.decode(n):null,isReadOnly:d>=9&&!!(8&a)}}},Ln=$,qn={preencode(d,o){Ln.preencode(d,o.header),e.fixed32.preencode(d,o.discoveryKey)},encode(d,o){Ln.encode(d,o.header),e.fixed32.encode(d,o.discoveryKey)},decode:d=>({header:Ln.decode(d),discoveryKey:e.fixed32.decode(d)})},En=$,Bn=Fn,zn={preencode(d,o){En.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey),e.uint.preencode(d,o.key),Bn.preencode(d,o.status)},encode(d,o){En.encode(d,o.header),e.fixed32.encode(d,o.roomKey),e.uint.encode(d,o.key),Bn.encode(d,o.status)},decode:d=>({header:En.decode(d),roomKey:e.fixed32.decode(d),key:e.uint.decode(d),status:Bn.decode(d)})},Nn={preencode(e,d){e.end++},encode(o,n){const c=(n.isBlocked?1:0)|(d>=22&&n.isActive?2:0);e.uint.encode(o,c)},decode(o){const n=e.uint.decode(o);return{isBlocked:!!(1&n),isActive:d>=22&&!!(2&n)}}},jn={preencode(o,n){e.fixed32.preencode(o,n.memberKey),e.uint.preencode(o,n.clock),Xr.preencode(o,n.status),o.end++,n.mailbox&&e.fixed32.preencode(o,n.mailbox),n.roomKey&&e.fixed32.preencode(o,n.roomKey),d>=22&&n.contactInfo&&Yr.preencode(o,n.contactInfo),d>=24&&n.alias&&e.string.preencode(o,n.alias)},encode(o,n){const c=(n.mailbox?1:0)|(n.roomKey?2:0)|(d>=22&&n.contactInfo?4:0)|(d>=24&&n.alias?8:0);e.fixed32.encode(o,n.memberKey),e.uint.encode(o,n.clock),Xr.encode(o,n.status),e.uint.encode(o,c),n.mailbox&&e.fixed32.encode(o,n.mailbox),n.roomKey&&e.fixed32.encode(o,n.roomKey),d>=22&&n.contactInfo&&Yr.encode(o,n.contactInfo),d>=24&&n.alias&&e.string.encode(o,n.alias)},decode(o){const n=e.fixed32.decode(o),c=e.uint.decode(o),t=Xr.decode(o),r=e.uint.decode(o);return{memberKey:n,clock:c,status:t,mailbox:1&r?e.fixed32.decode(o):null,roomKey:2&r?e.fixed32.decode(o):null,contactInfo:d>=22&&4&r?Yr.decode(o):null,alias:d>=24&&8&r?e.string.decode(o):null}}},On=$,Un=e.frame(an),Jn={preencode(e,d){On.preencode(e,d.header),Un.preencode(e,d.contact)},encode(e,d){On.encode(e,d.header),Un.encode(e,d.contact)},decode:e=>({header:On.decode(e),contact:Un.decode(e)})},Gn=$,Qn={preencode(d,o){Gn.preencode(d,o.header),e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.key),Zr.preencode(d,o.status)},encode(d,o){Gn.encode(d,o.header),e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.key),Zr.encode(d,o.status)},decode:d=>({header:Gn.decode(d),memberKey:e.fixed32.decode(d),key:e.uint.decode(d),status:Zr.decode(d)})},Wn=$,Xn={preencode(d,o){Wn.preencode(d,o.header),e.fixed32.preencode(d,o.memberKey)},encode(d,o){Wn.encode(d,o.header),e.fixed32.encode(d,o.memberKey)},decode:d=>({header:Wn.decode(d),memberKey:e.fixed32.decode(d)})},Yn={preencode(e,d){e.end++},encode(d,o){const n=(o.isPending?1:0)|(o.isAccepted?2:0)|(o.isRejected?4:0)|(o.isDiscarded?8:0)|(o.isSeen?16:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isPending:!!(1&o),isAccepted:!!(2&o),isRejected:!!(4&o),isDiscarded:!!(8&o),isSeen:!!(16&o)}}},Zn=xe,$n=e.frame(r),_n={preencode(d,o){Zn.preencode(d,o.sender),$n.preencode(d,o.keys),e.fixed32.preencode(d,o.mailbox),d.end++,o.message&&e.string.preencode(d,o.message)},encode(d,o){const n=o.message?1:0;Zn.encode(d,o.sender),$n.encode(d,o.keys),e.fixed32.encode(d,o.mailbox),e.uint.encode(d,n),o.message&&e.string.encode(d,o.message)},decode:d=>({sender:Zn.decode(d),keys:$n.decode(d),mailbox:e.fixed32.decode(d),message:1&e.uint.decode(d)?e.string.decode(d):null})},ec=e.frame(_n),dc={preencode(e,d){ec.preencode(e,d.body),ne.preencode(e,d.attestation)},encode(e,d){ec.encode(e,d.body),ne.encode(e,d.attestation)},decode:e=>({body:ec.decode(e),attestation:ne.decode(e)})},oc=pe,nc=e.frame(Yn),cc=$n,tc={preencode(o,n){e.fixed32.preencode(o,n.memberKey),e.uint.preencode(o,n.clock),oc.preencode(o,n.sender),nc.preencode(o,n.status),cc.preencode(o,n.keys),e.fixed32.preencode(o,n.mailbox),o.end++,n.message&&e.string.preencode(o,n.message),d>=11&&n.sentAt&&e.uint.preencode(o,n.sentAt),d>=22&&n.contactInfo&&$r.preencode(o,n.contactInfo)},encode(o,n){const c=(n.message?1:0)|(d>=11&&n.sentAt?2:0)|(d>=22&&n.contactInfo?4:0);e.fixed32.encode(o,n.memberKey),e.uint.encode(o,n.clock),oc.encode(o,n.sender),nc.encode(o,n.status),cc.encode(o,n.keys),e.fixed32.encode(o,n.mailbox),e.uint.encode(o,c),n.message&&e.string.encode(o,n.message),d>=11&&n.sentAt&&e.uint.encode(o,n.sentAt),d>=22&&n.contactInfo&&$r.encode(o,n.contactInfo)},decode(o){const n=e.fixed32.decode(o),c=e.uint.decode(o),t=oc.decode(o),r=nc.decode(o),i=cc.decode(o),a=e.fixed32.decode(o),s=e.uint.decode(o);return{memberKey:n,clock:c,sender:t,status:r,keys:i,mailbox:a,message:1&s?e.string.decode(o):null,sentAt:d>=11&&2&s?e.uint.decode(o):0,contactInfo:d>=22&&4&s?$r.decode(o):null}}},rc=$,ic={preencode(d,o){rc.preencode(d,o.header),e.buffer.preencode(d,o.blindRequest)},encode(d,o){rc.encode(d,o.header),e.buffer.encode(d,o.blindRequest)},decode:d=>({header:rc.decode(d),blindRequest:e.buffer.decode(d)})},ac=$,sc=nc,pc={preencode(o,n){ac.preencode(o,n.header),e.fixed32.preencode(o,n.memberKey),e.uint.preencode(o,n.key),sc.preencode(o,n.status),o.end++,d>=10&&n.roomKey&&e.fixed32.preencode(o,n.roomKey)},encode(o,n){const c=d>=10&&n.roomKey?1:0;ac.encode(o,n.header),e.fixed32.encode(o,n.memberKey),e.uint.encode(o,n.key),sc.encode(o,n.status),e.uint.encode(o,c),d>=10&&n.roomKey&&e.fixed32.encode(o,n.roomKey)},decode(o){const n=ac.decode(o),c=e.fixed32.decode(o),t=e.uint.decode(o),r=sc.decode(o),i=o.start<o.end?e.uint.decode(o):0;return{header:n,memberKey:c,key:t,status:r,roomKey:d>=10&&1&i?e.fixed32.decode(o):null}}},uc={preencode(d,o){e.uint.preencode(d,o.timestamp),e.fixed32.preencode(d,o.key),e.fixed32.preencode(d,o.mailbox)},encode(d,o){e.uint.encode(d,o.timestamp),e.fixed32.encode(d,o.key),e.fixed32.encode(d,o.mailbox)},decode:d=>({version:e.uint.decode(d),timestamp:e.uint.decode(d),key:e.fixed32.decode(d),mailbox:e.fixed32.decode(d)})},lc={preencode(d,o){const n=o.version??1;switch(e.uint.preencode(d,n),n){case 0:case 1:uc.preencode(d,o);break;default:throw new Error("Unsupported version")}},encode(d,o){const n=o.version??1;switch(e.uint.encode(d,n),n){case 0:case 1:uc.encode(d,o);break;default:throw new Error("Unsupported version")}},decode(d){const o=d.start,n=e.uint.decode(d);switch(d.start=o,n){case 0:case 1:return uc.decode(d);default:throw new Error("Unsupported version")}}},fc=$,mc={preencode(o,c){fc.preencode(o,c.header),n.preencode(o,c.oplog),e.uint.preencode(o,c.index),_r.preencode(o,c.preview),o.end++,d>=7&&c.displayType&&Pc.preencode(o,c.displayType)},encode(o,c){const t=d>=7&&c.displayType?1:0;fc.encode(o,c.header),n.encode(o,c.oplog),e.uint.encode(o,c.index),_r.encode(o,c.preview),e.uint.encode(o,t),d>=7&&c.displayType&&Pc.encode(o,c.displayType)},decode(o){const c=fc.decode(o),t=n.decode(o),r=e.uint.decode(o),i=_r.decode(o),a=o.start<o.end?e.uint.decode(o):0;return{header:c,oplog:t,index:r,preview:i,displayType:d>=7&&1&a?Pc.decode(o):0}}},yc={preencode(o,n){o.end++,d>=3&&n.memberKey&&e.fixed32.preencode(o,n.memberKey)},encode(o,n){const c=d>=3&&n.memberKey?1:0;e.uint.encode(o,c),d>=3&&n.memberKey&&e.fixed32.encode(o,n.memberKey)},decode(o){const n=e.uint.decode(o);return{memberKey:d>=3&&1&n?e.fixed32.decode(o):null}}},bc=pe,xc={preencode(e,d){bc.preencode(e,d.profile),ne.preencode(e,d.attestation)},encode(e,d){bc.encode(e,d.profile),ne.encode(e,d.attestation)},decode:e=>({profile:bc.decode(e),attestation:ne.decode(e)})},kc=$,vc={preencode(d,o){kc.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){kc.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:kc.decode(d),key:e.fixed32.decode(d)})},gc={preencode(d,o){e.fixed32.preencode(d,o.deviceKey),ne.preencode(d,o.privateProfileIdentity),e.buffer.preencode(d,o.deviceProof)},encode(d,o){e.fixed32.encode(d,o.deviceKey),ne.encode(d,o.privateProfileIdentity),e.buffer.encode(d,o.deviceProof)},decode:d=>({deviceKey:e.fixed32.decode(d),privateProfileIdentity:ne.decode(d),deviceProof:e.buffer.decode(d)})},hc={preencode(o,n){e.fixed32.preencode(o,n.roomKey),e.fixed32.preencode(o,n.encryptionKey),e.fixed32.preencode(o,n.seed),o.end++,d>=6&&n.fastForwardTo&&e.fixed32.preencode(o,n.fastForwardTo)},encode(o,n){const c=d>=6&&n.fastForwardTo?1:0;e.fixed32.encode(o,n.roomKey),e.fixed32.encode(o,n.encryptionKey),e.fixed32.encode(o,n.seed),e.uint.encode(o,c),d>=6&&n.fastForwardTo&&e.fixed32.encode(o,n.fastForwardTo)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),t=e.fixed32.decode(o),r=e.uint.decode(o);return{roomKey:n,encryptionKey:c,seed:t,fastForwardTo:d>=6&&1&r?e.fixed32.decode(o):null}}},Kc={preencode(o,n){e.fixed32.preencode(o,n.publicKey),e.fixed32.preencode(o,n.writerKey),e.fixed32.preencode(o,n.devicePublicKey),o.end++,d>=6&&n.privateProfileKey&&e.fixed32.preencode(o,n.privateProfileKey)},encode(o,n){const c=d>=6&&n.privateProfileKey?1:0;e.fixed32.encode(o,n.publicKey),e.fixed32.encode(o,n.writerKey),e.fixed32.encode(o,n.devicePublicKey),e.uint.encode(o,c),d>=6&&n.privateProfileKey&&e.fixed32.encode(o,n.privateProfileKey)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),t=e.fixed32.decode(o),r=e.uint.decode(o);return{publicKey:n,writerKey:c,devicePublicKey:t,privateProfileKey:d>=6&&1&r?e.fixed32.decode(o):null}}},wc=$,Tc={preencode(d,o){wc.preencode(d,o.header),e.fixed32.preencode(d,o.memberKey)},encode(d,o){wc.encode(d,o.header),e.fixed32.encode(d,o.memberKey)},decode:d=>({header:wc.decode(d),memberKey:e.fixed32.decode(d)})},Ac={HttpLink:1,PearLink:2},Pc={preencode(e,d){e.end++},encode(d,o){if(o>2)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},Sc=$,Ic={preencode(d,o){Sc.preencode(d,o.header),e.uint.preencode(d,o.value)},encode(d,o){Sc.encode(d,o.header),e.uint.encode(d,o.value)},decode:d=>({header:Sc.decode(d),value:e.uint.decode(d)})},Rc={preencode(d,o){e.uint.preencode(d,o.key),e.uint.preencode(d,o.value)},encode(d,o){e.uint.encode(d,o.key),e.uint.encode(d,o.value)},decode:d=>({key:e.uint.decode(d),value:e.uint.decode(d)})},Fc=$,Hc={preencode(o,n){Fc.preencode(o,n.header),e.uint.preencode(o,n.from),e.uint.preencode(o,n.to),o.end++,d>=20&&n.buildType&&Bt.preencode(o,n.buildType)},encode(o,n){const c=d>=20&&n.buildType?1:0;Fc.encode(o,n.header),e.uint.encode(o,n.from),e.uint.encode(o,n.to),e.uint.encode(o,c),d>=20&&n.buildType&&Bt.encode(o,n.buildType)},decode(o){const n=Fc.decode(o),c=e.uint.decode(o),t=e.uint.decode(o),r=o.start<o.end?e.uint.decode(o):0;return{header:n,from:c,to:t,buildType:d>=20&&1&r?Bt.decode(o):null}}},Mc={RoomType:1,IsExperimental:2,IsJoiningDisabled:3,IsAppendingDisabled:4,IsCallingDisabled:5,IsMembershipEventsDisabled:6,IsAttachmentsDisabled:7,IsLinksDisabled:8,IsRoomInviteHidden:9},Cc={preencode(e,d){e.end++},encode(d,o){if(o>9)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},Dc={en:"en",it:"it",ru:"ru",es:"es",de:"de"},Vc={preencode(e,d){e.end++},encode(d,o){switch(o){case"en":e.uint.encode(d,1);break;case"it":e.uint.encode(d,2);break;case"ru":e.uint.encode(d,3);break;case"es":e.uint.encode(d,4);break;case"de":e.uint.encode(d,5);break;default:throw new Error("Unknown enum")}},decode(d){switch(e.uint.decode(d)){case 1:return"en";case 2:return"it";case 3:return"ru";case 4:return"es";case 5:return"de";default:return null}}},Lc=Dd,qc={preencode(d,o){Lc.preencode(d,o.range),Vc.preencode(d,o.language),e.string.preencode(d,o.text)},encode(d,o){Lc.encode(d,o.range),Vc.encode(d,o.language),e.string.encode(d,o.text)},decode:d=>({range:Lc.decode(d),language:Vc.decode(d),text:e.string.decode(d)})},Ec={preencode(d,o){e.fixed32.preencode(d,o.deviceKey),e.fixed32.preencode(d,o.key)},encode(d,o){e.fixed32.encode(d,o.deviceKey),e.fixed32.encode(d,o.key)},decode:d=>({deviceKey:e.fixed32.decode(d),key:e.fixed32.decode(d)})},Bc=$,zc={preencode(d,o){Bc.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){Bc.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:Bc.decode(d),key:e.fixed32.decode(d)})},Nc=$,jc={preencode(d,o){Nc.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){Nc.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:Nc.decode(d),key:e.fixed32.decode(d)})},Oc={Flag:1},Uc={preencode(e,d){e.end++},encode(d,o){if(o>1)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},Jc={preencode(d,o){lo.preencode(d,o.id),e.fixed32.preencode(d,o.sender),e.uint.preencode(d,o.clock),Uc.preencode(d,o.label)},encode(d,o){lo.encode(d,o.id),e.fixed32.encode(d,o.sender),e.uint.encode(d,o.clock),Uc.encode(d,o.label)},decode:d=>({id:lo.decode(d),sender:e.fixed32.decode(d),clock:e.uint.decode(d),label:Uc.decode(d)})},Gc=$,Qc={preencode(e,d){Gc.preencode(e,d.header),n.preencode(e,d.oplog),Uc.preencode(e,d.label)},encode(e,d){Gc.encode(e,d.header),n.encode(e,d.oplog),Uc.encode(e,d.label)},decode:e=>({header:Gc.decode(e),oplog:n.decode(e),label:Uc.decode(e)})},Wc=$,Xc={preencode(e,d){Wc.preencode(e,d.header),n.preencode(e,d.oplog),Uc.preencode(e,d.label)},encode(e,d){Wc.encode(e,d.header),n.encode(e,d.oplog),Uc.encode(e,d.label)},decode:e=>({header:Wc.decode(e),oplog:n.decode(e),label:Uc.decode(e)})},Yc={preencode(d,o){Uc.preencode(d,o.label),e.uint.preencode(d,o.count)},encode(d,o){Uc.encode(d,o.label),e.uint.encode(d,o.count)},decode:d=>({label:Uc.decode(d),count:e.uint.decode(d)})},Zc=e.array(e.frame(Yc)),$c={preencode(o,n){lo.preencode(o,n.id),e.uint.preencode(o,n.total),Zc.preencode(o,n.labels),e.uint.preencode(o,n.editedAt),o.end++,d>=15&&n.flagsClock&&e.uint.preencode(o,n.flagsClock),d>=15&&n.version&&e.uint.preencode(o,n.version)},encode(o,n){const c=(d>=15&&n.flagsClock?1:0)|(d>=15&&n.version?2:0)|(d>=16&&n.isDeleted?4:0);lo.encode(o,n.id),e.uint.encode(o,n.total),Zc.encode(o,n.labels),e.uint.encode(o,n.editedAt),e.uint.encode(o,c),d>=15&&n.flagsClock&&e.uint.encode(o,n.flagsClock),d>=15&&n.version&&e.uint.encode(o,n.version)},decode(o){const n=lo.decode(o),c=e.uint.decode(o),t=Zc.decode(o),r=e.uint.decode(o),i=o.start<o.end?e.uint.decode(o):0;return{id:n,total:c,labels:t,editedAt:r,flagsClock:d>=15&&1&i?e.uint.decode(o):0,version:d>=15&&2&i?e.uint.decode(o):0,isDeleted:d>=16&&!!(4&i)}}},_c=$,et={preencode(d,o){_c.preencode(d,o.header),e.uint.preencode(d,o.length)},encode(d,o){_c.encode(d,o.header),e.uint.encode(d,o.length)},decode:d=>({header:_c.decode(d),length:e.uint.decode(d)})},dt={preencode(d,o){e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.length)},encode(d,o){e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.length)},decode:d=>({memberKey:e.fixed32.decode(d),length:e.uint.decode(d)})},ot=Z,nt={preencode(o,n){o.end++,d>=23&&n.profileSnoozeTime&&e.uint.preencode(o,n.profileSnoozeTime)},encode(o,n){const c=(d>=13&&n.disableReadReceipts?1:0)|(d>=21&&n.stripAttachmentMetadata?2:0)|(d>=23&&n.profileSnoozeTime?4:0);e.uint.encode(o,c),d>=23&&n.profileSnoozeTime&&e.uint.encode(o,n.profileSnoozeTime)},decode(o){const n=e.uint.decode(o);return{disableReadReceipts:d>=13&&!!(1&n),stripAttachmentMetadata:d>=21&&!!(2&n),profileSnoozeTime:d>=23&&4&n?e.uint.decode(o):0}}},ct={disableReadReceipts:"disableReadReceipts",stripAttachmentMetadata:"stripAttachmentMetadata",profileSnoozeTime:"profileSnoozeTime"},tt={preencode(e,d){e.end++},encode(d,o){switch(o){case"disableReadReceipts":e.uint.encode(d,1);break;case"stripAttachmentMetadata":e.uint.encode(d,2);break;case"profileSnoozeTime":e.uint.encode(d,3);break;default:throw new Error("Unknown enum")}},decode(d){switch(e.uint.decode(d)){case 1:return"disableReadReceipts";case 2:return"stripAttachmentMetadata";case 3:return"profileSnoozeTime";default:return null}}},rt=$,it=e.frame(nt),at={preencode(e,d){rt.preencode(e,d.header),tt.preencode(e,d.key),it.preencode(e,d.settings)},encode(e,d){rt.encode(e,d.header),tt.encode(e,d.key),it.encode(e,d.settings)},decode:e=>({header:rt.decode(e),key:tt.decode(e),settings:it.decode(e)})},st={Flag:1},pt={preencode(e,d){e.end++},encode(d,o){if(o>1)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},ut={preencode(d,o){e.fixed32.preencode(d,o.key),e.fixed32.preencode(d,o.sender),e.uint.preencode(d,o.clock),pt.preencode(d,o.label)},encode(d,o){e.fixed32.encode(d,o.key),e.fixed32.encode(d,o.sender),e.uint.encode(d,o.clock),pt.encode(d,o.label)},decode:d=>({key:e.fixed32.decode(d),sender:e.fixed32.decode(d),clock:e.uint.decode(d),label:pt.decode(d)})},lt=$,ft={preencode(d,o){lt.preencode(d,o.header),e.fixed32.preencode(d,o.key),pt.preencode(d,o.label)},encode(d,o){lt.encode(d,o.header),e.fixed32.encode(d,o.key),pt.encode(d,o.label)},decode:d=>({header:lt.decode(d),key:e.fixed32.decode(d),label:pt.decode(d)})},mt={preencode(d,o){pt.preencode(d,o.label),e.uint.preencode(d,o.count)},encode(d,o){pt.encode(d,o.label),e.uint.encode(d,o.count)},decode:d=>({label:pt.decode(d),count:e.uint.decode(d)})},yt=e.array(e.frame(mt)),bt={preencode(d,o){e.fixed32.preencode(d,o.key),e.uint.preencode(d,o.total),yt.preencode(d,o.labels),e.uint.preencode(d,o.editedAt),e.uint.preencode(d,o.flagsClock)},encode(d,o){e.fixed32.encode(d,o.key),e.uint.encode(d,o.total),yt.encode(d,o.labels),e.uint.encode(d,o.editedAt),e.uint.encode(d,o.flagsClock)},decode:d=>({key:e.fixed32.decode(d),total:e.uint.decode(d),labels:yt.decode(d),editedAt:e.uint.decode(d),flagsClock:e.uint.decode(d)})},xt={preencode(d,o){e.float64.preencode(d,o.latitude),e.float64.preencode(d,o.longitude)},encode(d,o){e.float64.encode(d,o.latitude),e.float64.encode(d,o.longitude)},decode:d=>({latitude:e.float64.decode(d),longitude:e.float64.decode(d)})},kt=$,vt={preencode(d,o){kt.preencode(d,o.header),e.fixed32.preencode(d,o.deviceKey),e.fixed32.preencode(d,o.fromDeviceKey)},encode(d,o){kt.encode(d,o.header),e.fixed32.encode(d,o.deviceKey),e.fixed32.encode(d,o.fromDeviceKey)},decode:d=>({header:kt.decode(d),deviceKey:e.fixed32.decode(d),fromDeviceKey:e.fixed32.decode(d)})},gt=$,ht=X,Kt={preencode(o,n){gt.preencode(o,n.header),e.fixed32.preencode(o,n.callKey),e.buffer.preencode(o,n.encryptionKey),o.end++,d>=19&&n.streams&&ht.preencode(o,n.streams),d>=19&&n.discoveryKey&&e.fixed32.preencode(o,n.discoveryKey),d>=19&&n.version&&e.uint.preencode(o,n.version),d>=26&&n.streamInputs&&ei.preencode(o,n.streamInputs),d>=26&&n.swarmKey&&e.fixed32.preencode(o,n.swarmKey)},encode(o,n){const c=(d>=19&&n.streams?1:0)|(d>=19&&n.discoveryKey?2:0)|(d>=19&&n.version?4:0)|(d>=26&&n.streamInputs?8:0)|(d>=26&&n.swarmKey?16:0);gt.encode(o,n.header),e.fixed32.encode(o,n.callKey),e.buffer.encode(o,n.encryptionKey),e.uint.encode(o,c),d>=19&&n.streams&&ht.encode(o,n.streams),d>=19&&n.discoveryKey&&e.fixed32.encode(o,n.discoveryKey),d>=19&&n.version&&e.uint.encode(o,n.version),d>=26&&n.streamInputs&&ei.encode(o,n.streamInputs),d>=26&&n.swarmKey&&e.fixed32.encode(o,n.swarmKey)},decode(o){const n=gt.decode(o),c=e.fixed32.decode(o),t=e.buffer.decode(o),r=e.uint.decode(o);return{header:n,callKey:c,encryptionKey:t,streams:d>=19&&1&r?ht.decode(o):null,discoveryKey:d>=19&&2&r?e.fixed32.decode(o):null,version:d>=19&&4&r?e.uint.decode(o):0,streamInputs:d>=26&&8&r?ei.decode(o):null,swarmKey:d>=26&&16&r?e.fixed32.decode(o):null}}},wt=$,Tt=X,At={preencode(o,n){wt.preencode(o,n.header),e.fixed32.preencode(o,n.callKey),o.end++,d>=19&&n.streams&&Tt.preencode(o,n.streams),d>=26&&n.streamInputs&&di.preencode(o,n.streamInputs),d>=26&&n.swarmKey&&e.fixed32.preencode(o,n.swarmKey)},encode(o,n){const c=(d>=19&&n.streams?1:0)|(d>=26&&n.streamInputs?2:0)|(d>=26&&n.swarmKey?4:0);wt.encode(o,n.header),e.fixed32.encode(o,n.callKey),e.uint.encode(o,c),d>=19&&n.streams&&Tt.encode(o,n.streams),d>=26&&n.streamInputs&&di.encode(o,n.streamInputs),d>=26&&n.swarmKey&&e.fixed32.encode(o,n.swarmKey)},decode(o){const n=wt.decode(o),c=e.fixed32.decode(o),t=e.uint.decode(o);return{header:n,callKey:c,streams:d>=19&&1&t?Tt.decode(o):null,streamInputs:d>=26&&2&t?di.decode(o):null,swarmKey:d>=26&&4&t?e.fixed32.decode(o):null}}},Pt=$,St={preencode(d,o){Pt.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){Pt.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:Pt.decode(d),callKey:e.fixed32.decode(d)})},It=$,Rt={preencode(d,o){It.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){It.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:It.decode(d),callKey:e.fixed32.decode(d)})},Ft=$,Ht={preencode(o,n){Ft.preencode(o,n.header),e.fixed32.preencode(o,n.callKey),e.fixed32.preencode(o,n.streamKey),o.end++,d>=26&&n.mediaStreamId&&e.string.preencode(o,n.mediaStreamId),d>=26&&n.type&&e.string.preencode(o,n.type)},encode(o,n){const c=(d>=26&&n.mediaStreamId?1:0)|(d>=26&&n.type?2:0)|(d>=26&&n.muted?4:0);Ft.encode(o,n.header),e.fixed32.encode(o,n.callKey),e.fixed32.encode(o,n.streamKey),e.uint.encode(o,c),d>=26&&n.mediaStreamId&&e.string.encode(o,n.mediaStreamId),d>=26&&n.type&&e.string.encode(o,n.type)},decode(o){const n=Ft.decode(o),c=e.fixed32.decode(o),t=e.fixed32.decode(o),r=o.start<o.end?e.uint.decode(o):0;return{header:n,callKey:c,streamKey:t,mediaStreamId:d>=26&&1&r?e.string.decode(o):null,type:d>=26&&2&r?e.string.decode(o):null,muted:d>=26&&!!(4&r)}}},Mt=$,Ct={preencode(d,o){Mt.preencode(d,o.header),e.fixed32.preencode(d,o.callKey),e.fixed32.preencode(d,o.streamKey)},encode(d,o){Mt.encode(d,o.header),e.fixed32.encode(d,o.callKey),e.fixed32.encode(d,o.streamKey)},decode:d=>({header:Mt.decode(d),callKey:e.fixed32.decode(d),streamKey:e.fixed32.decode(d)})},Dt={preencode(o,n){e.fixed32.preencode(o,n.callKey),e.buffer.preencode(o,n.encryptionKey),e.uint.preencode(o,n.createdAt),o.end++,d>=19&&n.endedAt&&e.uint.preencode(o,n.endedAt),d>=19&&n.discoveryKey&&e.fixed32.preencode(o,n.discoveryKey),d>=19&&n.version&&e.uint.preencode(o,n.version)},encode(o,n){const c=(d>=19&&n.endedAt?1:0)|(d>=19&&n.discoveryKey?2:0)|(d>=19&&n.version?4:0);e.fixed32.encode(o,n.callKey),e.buffer.encode(o,n.encryptionKey),e.uint.encode(o,n.createdAt),e.uint.encode(o,c),d>=19&&n.endedAt&&e.uint.encode(o,n.endedAt),d>=19&&n.discoveryKey&&e.fixed32.encode(o,n.discoveryKey),d>=19&&n.version&&e.uint.encode(o,n.version)},decode(o){const n=e.fixed32.decode(o),c=e.buffer.decode(o),t=e.uint.decode(o),r=e.uint.decode(o);return{callKey:n,encryptionKey:c,createdAt:t,endedAt:d>=19&&1&r?e.uint.decode(o):0,discoveryKey:d>=19&&2&r?e.fixed32.decode(o):null,version:d>=19&&4&r?e.uint.decode(o):0}}},Vt={preencode(d,o){e.fixed32.preencode(d,o.callKey),e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.createdAt)},encode(d,o){e.fixed32.encode(d,o.callKey),e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.createdAt)},decode:d=>({callKey:e.fixed32.decode(d),memberKey:e.fixed32.decode(d),createdAt:e.uint.decode(d)})},Lt={preencode(o,n){e.fixed32.preencode(o,n.callKey),e.fixed32.preencode(o,n.deviceKey),e.fixed32.preencode(o,n.memberKey),e.uint.preencode(o,n.createdAt),o.end++,d>=19&&n.swarmKey&&e.fixed32.preencode(o,n.swarmKey),d>=22&&n.lastHeartbeatAt&&e.uint.preencode(o,n.lastHeartbeatAt)},encode(o,n){const c=(d>=19&&n.swarmKey?1:0)|(d>=22&&n.lastHeartbeatAt?2:0)|(d>=23&&n.isRecording?4:0);e.fixed32.encode(o,n.callKey),e.fixed32.encode(o,n.deviceKey),e.fixed32.encode(o,n.memberKey),e.uint.encode(o,n.createdAt),e.uint.encode(o,c),d>=19&&n.swarmKey&&e.fixed32.encode(o,n.swarmKey),d>=22&&n.lastHeartbeatAt&&e.uint.encode(o,n.lastHeartbeatAt)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),t=e.fixed32.decode(o),r=e.uint.decode(o),i=e.uint.decode(o);return{callKey:n,deviceKey:c,memberKey:t,createdAt:r,swarmKey:d>=19&&1&i?e.fixed32.decode(o):null,lastHeartbeatAt:d>=22&&2&i?e.uint.decode(o):0,isRecording:d>=23&&!!(4&i)}}},qt={preencode(o,n){e.fixed32.preencode(o,n.callKey),e.fixed32.preencode(o,n.deviceKey),e.buffer.preencode(o,n.streamKey),e.uint.preencode(o,n.createdAt),o.end++,d>=26&&n.mediaStreamId&&e.string.preencode(o,n.mediaStreamId),d>=26&&n.type&&e.string.preencode(o,n.type),d>=26&&n.statusKey&&e.uint.preencode(o,n.statusKey)},encode(o,n){const c=(d>=26&&n.mediaStreamId?1:0)|(d>=26&&n.type?2:0)|(d>=26&&n.statusKey?4:0);e.fixed32.encode(o,n.callKey),e.fixed32.encode(o,n.deviceKey),e.buffer.encode(o,n.streamKey),e.uint.encode(o,n.createdAt),e.uint.encode(o,c),d>=26&&n.mediaStreamId&&e.string.encode(o,n.mediaStreamId),d>=26&&n.type&&e.string.encode(o,n.type),d>=26&&n.statusKey&&e.uint.encode(o,n.statusKey)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),t=e.buffer.decode(o),r=e.uint.decode(o),i=o.start<o.end?e.uint.decode(o):0;return{callKey:n,deviceKey:c,streamKey:t,createdAt:r,mediaStreamId:d>=26&&1&i?e.string.decode(o):null,type:d>=26&&2&i?e.string.decode(o):null,statusKey:d>=26&&4&i?e.uint.decode(o):0}}},Et={Nightly:"Nightly",Internal:"Internal",Production:"Production"},Bt={preencode(e,d){e.end++},encode(d,o){switch(o){case"Nightly":e.uint.encode(d,1);break;case"Internal":e.uint.encode(d,2);break;case"Production":e.uint.encode(d,3);break;default:throw new Error("Unknown enum")}},decode(d){switch(e.uint.decode(d)){case 1:return"Nightly";case 2:return"Internal";case 3:return"Production";default:return null}}},zt=$,Nt={preencode(e,d){zt.preencode(e,d.header)},encode(e,d){zt.encode(e,d.header)},decode:e=>({header:zt.decode(e)})},jt=$,Ot={preencode(e,d){jt.preencode(e,d.header)},encode(e,d){jt.encode(e,d.header)},decode:e=>({header:jt.decode(e)})},Ut=$,Jt={preencode(d,o){Ut.preencode(d,o.header),e.fixed32.preencode(d,o.deviceKey),e.buffer.preencode(d,o.deviceProof),e.buffer.preencode(d,o.writerProof)},encode(d,o){Ut.encode(d,o.header),e.fixed32.encode(d,o.deviceKey),e.buffer.encode(d,o.deviceProof),e.buffer.encode(d,o.writerProof)},decode:d=>({header:Ut.decode(d),deviceKey:e.fixed32.decode(d),deviceProof:e.buffer.decode(d),writerProof:e.buffer.decode(d)})},Gt=$,Qt={preencode(d,o){Gt.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){Gt.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:Gt.decode(d),callKey:e.fixed32.decode(d)})},Wt=$,Xt={preencode(d,o){Wt.preencode(d,o.header),e.fixed32.preencode(d,o.callKey),e.fixed32.preencode(d,o.deviceKey)},encode(d,o){Wt.encode(d,o.header),e.fixed32.encode(d,o.callKey),e.fixed32.encode(d,o.deviceKey)},decode:d=>({header:Wt.decode(d),callKey:e.fixed32.decode(d),deviceKey:e.fixed32.decode(d)})},Yt=$,Zt={preencode(d,o){Yt.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){Yt.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:Yt.decode(d),callKey:e.fixed32.decode(d)})},$t=$,_t={preencode(d,o){$t.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){$t.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:$t.decode(d),callKey:e.fixed32.decode(d)})},er=$,dr={preencode(e,d){er.preencode(e,d.header),n.preencode(e,d.oplog)},encode(e,d){er.encode(e,d.header),n.encode(e,d.oplog)},decode:e=>({header:er.decode(e),oplog:n.decode(e)})},or=$,nr={preencode(e,d){or.preencode(e,d.header)},encode(e,d){or.encode(e,d.header)},decode:e=>({header:or.decode(e)})},cr={preencode(d,o){e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.timestamp)},encode(d,o){e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.timestamp)},decode:d=>({memberKey:e.fixed32.decode(d),timestamp:e.uint.decode(d)})},tr=$,rr={preencode(o,n){tr.preencode(o,n.header),e.fixed32.preencode(o,n.memberKey),o.end++,d>=24&&n.alias&&e.string.preencode(o,n.alias)},encode(o,n){const c=d>=24&&n.alias?1:0;tr.encode(o,n.header),e.fixed32.encode(o,n.memberKey),e.uint.encode(o,c),d>=24&&n.alias&&e.string.encode(o,n.alias)},decode(o){const n=tr.decode(o),c=e.fixed32.decode(o),t=e.uint.decode(o);return{header:n,memberKey:c,alias:d>=24&&1&t?e.string.decode(o):null}}},ir={preencode(d,o){e.uint.preencode(d,o.streams)},encode(d,o){e.uint.encode(d,o.streams)},decode:d=>({streams:e.uint.decode(d)})},ar={preencode(d,o){e.fixed32.preencode(d,o.streamKey),e.string.preencode(d,o.mediaStreamId),e.string.preencode(d,o.type),d.end++},encode(o,n){const c=d>=26&&n.muted?1:0;e.fixed32.encode(o,n.streamKey),e.string.encode(o,n.mediaStreamId),e.string.encode(o,n.type),e.uint.encode(o,c)},decode(o){const n=e.fixed32.decode(o),c=e.string.decode(o),t=e.string.decode(o),r=e.uint.decode(o);return{streamKey:n,mediaStreamId:c,type:t,muted:d>=26&&!!(1&r)}}},sr=$,pr={preencode(d,o){sr.preencode(d,o.header),e.fixed32.preencode(d,o.callKey),e.fixed32.preencode(d,o.streamKey),d.end++},encode(o,n){const c=d>=26&&n.muted?1:0;sr.encode(o,n.header),e.fixed32.encode(o,n.callKey),e.fixed32.encode(o,n.streamKey),e.uint.encode(o,c)},decode(o){const n=sr.decode(o),c=e.fixed32.decode(o),t=e.fixed32.decode(o),r=e.uint.decode(o);return{header:n,callKey:c,streamKey:t,muted:d>=26&&!!(1&r)}}},ur={preencode(d,o){e.uint.preencode(d,o.statusKey),d.end++},encode(o,n){const c=d>=26&&n.muted?1:0;e.uint.encode(o,n.statusKey),e.uint.encode(o,c)},decode(o){const n=e.uint.decode(o),c=e.uint.decode(o);return{statusKey:n,muted:d>=26&&!!(1&c)}}},lr={preencode(n,c){e.fixed32.preencode(n,c.key),n.end++,d>=27&&c.encryptionKey&&e.buffer.preencode(n,c.encryptionKey),d>=27&&c.bootFrom&&o.preencode(n,c.bootFrom)},encode(n,c){const t=(d>=27&&c.encryptionKey?1:0)|(d>=27&&c.bootFrom?2:0);e.fixed32.encode(n,c.key),e.uint.encode(n,t),d>=27&&c.encryptionKey&&e.buffer.encode(n,c.encryptionKey),d>=27&&c.bootFrom&&o.encode(n,c.bootFrom)},decode(n){const c=e.fixed32.decode(n),t=e.uint.decode(n);return{key:c,encryptionKey:d>=27&&1&t?e.buffer.decode(n):null,bootFrom:d>=27&&2&t?o.decode(n):null}}},fr={preencode(d,o){e.fixed32.preencode(d,o.hash)},encode(d,o){e.fixed32.encode(d,o.hash)},decode:d=>({hash:e.fixed32.decode(d)})},mr={preencode(d,o){e.fixed32.preencode(d,o.hash),e.buffer.preencode(d,o.data)},encode(d,o){e.fixed32.encode(d,o.hash),e.buffer.encode(d,o.data)},decode:d=>({hash:e.fixed32.decode(d),data:e.buffer.decode(d)})},yr={preencode(n,c){o.preencode(n,c.autobeeMigrationHead),n.end++,d>=27&&c.legacyViewHead&&o.preencode(n,c.legacyViewHead),d>=27&&c.dbViewHead&&o.preencode(n,c.dbViewHead),d>=27&&c.blobsViewHead&&o.preencode(n,c.blobsViewHead),e.uint.preencode(n,c.createdAt)},encode(n,c){const t=(d>=27&&c.legacyViewHead?1:0)|(d>=27&&c.dbViewHead?2:0)|(d>=27&&c.blobsViewHead?4:0);o.encode(n,c.autobeeMigrationHead),e.uint.encode(n,t),d>=27&&c.legacyViewHead&&o.encode(n,c.legacyViewHead),d>=27&&c.dbViewHead&&o.encode(n,c.dbViewHead),d>=27&&c.blobsViewHead&&o.encode(n,c.blobsViewHead),e.uint.encode(n,c.createdAt)},decode(n){const c=o.decode(n),t=e.uint.decode(n);return{autobeeMigrationHead:c,legacyViewHead:d>=27&&1&t?o.decode(n):null,dbViewHead:d>=27&&2&t?o.decode(n):null,blobsViewHead:d>=27&&4&t?o.decode(n):null,createdAt:e.uint.decode(n)}}},br=$,xr={preencode(e,n){br.preencode(e,n.header),o.preencode(e,n.head),e.end++,d>=27&&n.legacyViewHead&&o.preencode(e,n.legacyViewHead),d>=27&&n.dbViewHead&&o.preencode(e,n.dbViewHead),d>=27&&n.blobsViewHead&&o.preencode(e,n.blobsViewHead)},encode(n,c){const t=(d>=27&&c.legacyViewHead?1:0)|(d>=27&&c.dbViewHead?2:0)|(d>=27&&c.blobsViewHead?4:0);br.encode(n,c.header),o.encode(n,c.head),e.uint.encode(n,t),d>=27&&c.legacyViewHead&&o.encode(n,c.legacyViewHead),d>=27&&c.dbViewHead&&o.encode(n,c.dbViewHead),d>=27&&c.blobsViewHead&&o.encode(n,c.blobsViewHead)},decode(n){const c=br.decode(n),t=o.decode(n),r=e.uint.decode(n);return{header:c,head:t,legacyViewHead:d>=27&&1&r?o.decode(n):null,dbViewHead:d>=27&&2&r?o.decode(n):null,blobsViewHead:d>=27&&4&r?o.decode(n):null}}},kr={preencode(n,c){e.fixed32.preencode(n,c.roomKey),e.fixed32.preencode(n,c.encryptionKey),e.fixed32.preencode(n,c.seed),n.end++,d>=27&&c.bootFrom&&o.preencode(n,c.bootFrom)},encode(n,c){const t=d>=27&&c.bootFrom?1:0;e.fixed32.encode(n,c.roomKey),e.fixed32.encode(n,c.encryptionKey),e.fixed32.encode(n,c.seed),e.uint.encode(n,t),d>=27&&c.bootFrom&&o.encode(n,c.bootFrom)},decode(n){const c=e.fixed32.decode(n),t=e.fixed32.decode(n),r=e.fixed32.decode(n),i=e.uint.decode(n);return{roomKey:c,encryptionKey:t,seed:r,bootFrom:d>=27&&1&i?o.decode(n):null}}},vr=id,gr={preencode(d,o){e.fixed32.preencode(d,o.memberKey),e.fixed32.preencode(d,o.deviceKey),e.uint.preencode(d,o.deviceLength),e.uint.preencode(d,o.clock),vr.preencode(d,o.status)},encode(d,o){e.fixed32.encode(d,o.memberKey),e.fixed32.encode(d,o.deviceKey),e.uint.encode(d,o.deviceLength),e.uint.encode(d,o.clock),vr.encode(d,o.status)},decode:d=>({memberKey:e.fixed32.decode(d),deviceKey:e.fixed32.decode(d),deviceLength:e.uint.decode(d),clock:e.uint.decode(d),status:vr.decode(d)})},hr={preencode(d,o){e.fixed32.preencode(d,o.hash),e.buffer.preencode(d,o.blob)},encode(d,o){e.fixed32.encode(d,o.hash),e.buffer.encode(d,o.blob)},decode:d=>({hash:e.fixed32.decode(d),blob:e.buffer.decode(d)})},Kr=Fn,wr=Hn,Tr=vn,Ar={preencode(n,c){e.fixed32.preencode(n,c.roomKey),e.buffer.preencode(n,c.encryptionKey),e.fixed32.preencode(n,c.mailbox),Kr.preencode(n,c.status),e.uint.preencode(n,c.clock),n.end++,d>=27&&c.initiator&&o.preencode(n,c.initiator),d>=27&&c.bootFrom&&o.preencode(n,c.bootFrom),d>=27&&c.identitySwap&&wr.preencode(n,c.identitySwap),d>=27&&c.identitySwapV2&&Tr.preencode(n,c.identitySwapV2),d>=27&&c.contact&&e.fixed32.preencode(n,c.contact)},encode(n,c){const t=(d>=27&&c.initiator?1:0)|(d>=27&&c.bootFrom?2:0)|(d>=27&&c.identitySwap?4:0)|(d>=27&&c.identitySwapV2?8:0)|(d>=27&&c.contact?16:0);e.fixed32.encode(n,c.roomKey),e.buffer.encode(n,c.encryptionKey),e.fixed32.encode(n,c.mailbox),Kr.encode(n,c.status),e.uint.encode(n,c.clock),e.uint.encode(n,t),d>=27&&c.initiator&&o.encode(n,c.initiator),d>=27&&c.bootFrom&&o.encode(n,c.bootFrom),d>=27&&c.identitySwap&&wr.encode(n,c.identitySwap),d>=27&&c.identitySwapV2&&Tr.encode(n,c.identitySwapV2),d>=27&&c.contact&&e.fixed32.encode(n,c.contact)},decode(n){const c=e.fixed32.decode(n),t=e.buffer.decode(n),r=e.fixed32.decode(n),i=Kr.decode(n),a=e.uint.decode(n),s=e.uint.decode(n);return{roomKey:c,encryptionKey:t,mailbox:r,status:i,clock:a,initiator:d>=27&&1&s?o.decode(n):null,bootFrom:d>=27&&2&s?o.decode(n):null,identitySwap:d>=27&&4&s?wr.decode(n):null,identitySwapV2:d>=27&&8&s?Tr.decode(n):null,contact:d>=27&&16&s?e.fixed32.decode(n):null}}},Pr=$,Sr={preencode(n,c){Pr.preencode(n,c.header),e.fixed32.preencode(n,c.roomKey),e.buffer.preencode(n,c.encryptionKey),e.fixed32.preencode(n,c.mailbox),n.end++,d>=27&&c.bootFrom&&o.preencode(n,c.bootFrom),d>=27&&c.initiator&&o.preencode(n,c.initiator),d>=27&&c.dm&&e.fixed32.preencode(n,c.dm)},encode(n,c){const t=(d>=27&&c.bootFrom?1:0)|(d>=27&&c.initiator?2:0)|(d>=27&&c.dm?4:0)|(d>=27&&c.isReadOnly?8:0);Pr.encode(n,c.header),e.fixed32.encode(n,c.roomKey),e.buffer.encode(n,c.encryptionKey),e.fixed32.encode(n,c.mailbox),e.uint.encode(n,t),d>=27&&c.bootFrom&&o.encode(n,c.bootFrom),d>=27&&c.initiator&&o.encode(n,c.initiator),d>=27&&c.dm&&e.fixed32.encode(n,c.dm)},decode(n){const c=Pr.decode(n),t=e.fixed32.decode(n),r=e.buffer.decode(n),i=e.fixed32.decode(n),a=e.uint.decode(n);return{header:c,roomKey:t,encryptionKey:r,mailbox:i,bootFrom:d>=27&&1&a?o.decode(n):null,initiator:d>=27&&2&a?o.decode(n):null,dm:d>=27&&4&a?e.fixed32.decode(n):null,isReadOnly:d>=27&&!!(8&a)}}},Ir={preencode(d,o){e.fixed32.preencode(d,o.id),e.fixed32.preencode(d,o.writerKey),e.buffer.preencode(d,o.blindResponse)},encode(d,o){e.fixed32.encode(d,o.id),e.fixed32.encode(d,o.writerKey),e.buffer.encode(d,o.blindResponse)},decode:d=>({id:e.fixed32.decode(d),writerKey:e.fixed32.decode(d),blindResponse:e.buffer.decode(d)})},Rr=$,Fr={preencode(d,o){Rr.preencode(d,o.header),e.buffer.preencode(d,o.blindResponse)},encode(d,o){Rr.encode(d,o.header),e.buffer.encode(d,o.blindResponse)},decode:d=>({header:Rr.decode(d),blindResponse:e.buffer.decode(d)})},Hr=e.frame(w),Mr=e.frame(ir),Cr=Hr,Dr=e.array(Vc),Vr=e.frame(se),Lr=Hr,qr=Vr,Er=e.frame(hc),Br=e.frame(kr),zr=Vr,Nr=e.frame(fd),jr=e.frame(yc),Or=e.frame(xt),Ur=Or,Jr=e.array(e.frame(qc)),Gr=Hr,Qr=e.frame(Nn),Wr=e.frame(xc),Xr=Qr,Yr=Wr,Zr=Qr,$r=Wr,_r=Hr,ei=e.array(e.frame(ar)),di=ei;function oi(e){switch(e){case"@keet/head":return o;case"@keet/oplog-id":return n;case"@keet/encryption-keypair":return c;case"@keet/signing-keypair":return t;case"@keet/room-keys":return r;case"@keet/operation-header":return i;case"@keet/blob-pointer":return a;case"@keet/file-dimensions":return s;case"@keet/file-metadata":return u;case"@keet/external-drive-pointer":return l;case"@keet/external-blob-pointer":return f;case"@keet/file-pointer":return b;case"@keet/file":return v;case"@keet/image-file":return w;case"@keet/file-status":return T;case"@keet/file-record":return S;case"@keet/device-status":return I;case"@keet/member-status":return R;case"@keet/member-moderation-status":return F;case"@keet/abi":return H;case"@keet/device-stats":return M;case"@keet/member-stats":return C;case"@keet/chat-stats":return D;case"@keet/file-stats":return V;case"@keet/stats":return z;case"@keet/room-type":return j;case"@keet/system-settings":return O;case"@keet/system-digest":return G;case"@keet/room-seed":return Q;case"@keet/room-capabilities":return W;case"@keet/room-config":return Y;case"@keet/blind-peer":return Z;case"@keet/add-blind-peer-operation":return ee;case"@keet/remove-blind-peer-operation":return oe;case"@keet/identity-attestation":return ne;case"@keet/device-invitation":return ce;case"@keet/device":return ie;case"@keet/member-profile":return ae;case"@keet/device-profile":return se;case"@keet/member-update":return ue;case"@keet/device-update":return le;case"@keet/signed-pairing-data":return fe;case"@keet/device-request-identity":return me;case"@keet/device-response-identity":return ye;case"@keet/device-request-with-invitation":return ve;case"@keet/device-request-with-invitation-and-proof":return he;case"@keet/device-request-with-member-proof":return Te;case"@keet/device-request":return Se;case"@keet/device-response":return Fe;case"@keet/invitation-metadata":return He;case"@keet/invitation":return De;case"@keet/add-invitation-operation":return qe;case"@keet/remove-invitation-operation":return Be;case"@keet/sendable-room-invitation":return ze;case"@keet/sendable-identity-invitation":return Ne;case"@keet/sendable-contact-invitation":return je;case"@keet/sendable-invitation":return Qe;case"@keet/add-device-operation":return Xe;case"@keet/update-device-operation":return Ze;case"@keet/start-indexing-operation":return $e;case"@keet/stop-indexing-operation":return _e;case"@keet/join-request":return dd;case"@keet/accept-join-request-operation":return cd;case"@keet/reject-join-request-operation":return rd;case"@keet/member":return sd;case"@keet/full-member":return ld;case"@keet/member-proofs":return fd;case"@keet/update-member-operation":return bd;case"@keet/change-member-status-operation":return vd;case"@keet/change-member-role-operation":return hd;case"@keet/remove-member-operation":return wd;case"@keet/member-activity":return Td;case"@keet/member-joined-event":return Ad;case"@keet/member-left-event":return Pd;case"@keet/title-changed-chat-event":return Sd;case"@keet/chat-event":return Hd;case"@keet/sendable-event":return Md;case"@keet/display-range":return Cd;case"@keet/display-content-range":return Vd;case"@keet/mention-display-item":return qd;case"@keet/link-preview":return zd;case"@keet/display-link-item":return Od;case"@keet/display":return _d;case"@keet/oplog-message":return co;case"@keet/index-message":return io;case"@keet/full-index-message":return po;case"@keet/message-status":return uo;case"@keet/message-index-id":return lo;case"@keet/thread":return mo;case"@keet/chat-message-record":return ko;case"@keet/full-chat-message-record":return Ko;case"@keet/add-chat-message-operation":return Ao;case"@keet/remove-chat-message-operation":return So;case"@keet/update-chat-message-operation":return Fo;case"@keet/pin-chat-message-operation":return Mo;case"@keet/reaction":return Co;case"@keet/reactions-summary":return Do;case"@keet/reactions-digest":return Lo;case"@keet/add-reaction-operation":return Eo;case"@keet/remove-reaction-operation":return zo;case"@keet/update-room-config-operation":return Oo;case"@keet/group-member":return Uo;case"@keet/user-registry-info":return Jo;case"@keet/room-identity":return Qo;case"@keet/genesis-operation":return dn;case"@keet/upgrade-operation":return nn;case"@keet/update-system-settings-operation":return rn;case"@keet-private-id/contact":return an;case"@keet-private-id/v3-room-migration-info":return sn;case"@keet-private-id/run-v3-migration-operation":return ln;case"@keet-private-id/update-identity-operation":return mn;case"@keet-private-id/counters":return yn;case"@keet-private-id/stats":return bn;case"@keet-private-id/add-entropy-operation":return xn;case"@keet-private-id/pending-invitation-identity":return kn;case"@keet-private-id/pending-invitation":return gn;case"@keet-private-id/resolve-pending-invitation-operation":return Kn;case"@keet-private-id/add-pending-invitation-operation":return An;case"@keet-private-id/remove-pending-invitation-operation":return Sn;case"@keet-private-id/identity-swap":return In;case"@keet-private-id/room-status":return Rn;case"@keet-private-id/room":return Cn;case"@keet-private-id/add-room-operation":return Vn;case"@keet-private-id/remove-room-operation":return qn;case"@keet-private-id/update-room-status-operation":return zn;case"@keet-private-id/contact-status":return Nn;case"@keet-private-id/contact-record":return jn;case"@keet-private-id/add-contact-operation":return Jn;case"@keet-private-id/update-contact-status-operation":return Qn;case"@keet-private-id/remove-contact-operation":return Xn;case"@keet-private-id/contact-request-status":return Yn;case"@keet-private-id/contact-request-body":return _n;case"@keet-private-id/contact-request":return dc;case"@keet-private-id/contact-request-record":return tc;case"@keet-private-id/add-contact-request-operation":return ic;case"@keet-private-id/update-contact-request-status-operation":return pc;case"@keet-private-id/profile-discovery-record-v1":return uc;case"@keet-private-id/profile-discovery-record":return lc;case"@keet/add-file-preview-operation":return mc;case"@keet/member-removed-event":return yc;case"@keet/member-contact-info":return xc;case"@keet/remove-device-operation":return vc;case"@keet/device-identity":return gc;case"@keet/readonly-room-invitation":return hc;case"@keet-private-id/identity-swap-v2":return Kc;case"@keet-private-id/activate-contact-room-operation":return Tc;case"@keet/display-type":return Pc;case"@keet/test-increment-operation":return Ic;case"@keet/test-collection-record-1":return Rc;case"@keet/migrate-abi-operation":return Hc;case"@keet/system-settings-keys":return Cc;case"@keet/room-supported-language":return Vc;case"@keet/translation-display-item":return qc;case"@keet-private-id/unreads":return Ec;case"@keet-private-id/add-unreads-key-operation":return zc;case"@keet-private-id/remove-unreads-key-operation":return jc;case"@keet/label-type":return Uc;case"@keet/chat-label":return Jc;case"@keet/add-chat-label-operation":return Qc;case"@keet/remove-chat-label-operation":return Xc;case"@keet/chat-label-summary":return Yc;case"@keet/chat-label-digest":return $c;case"@keet/update-read-length-operation":return et;case"@keet/read-length":return dt;case"@keet/tmp-removed-member":return ot;case"@keet-private-id/settings":return nt;case"@keet-private-id/user-settings-key":return tt;case"@keet-private-id/update-settings-operation":return at;case"@keet/member-label-type":return pt;case"@keet/member-label":return ut;case"@keet/add-member-label-operation":return ft;case"@keet/member-label-summary":return mt;case"@keet/member-label-digest":return bt;case"@keet/location-shared-event":return xt;case"@keet/move-indexer-operation":return vt;case"@keet/start-call":return Kt;case"@keet/join-call":return At;case"@keet/leave-call":return St;case"@keet/end-call":return Rt;case"@keet/add-call-stream":return Ht;case"@keet/remove-call-stream":return Ct;case"@keet/call-record":return Dt;case"@keet/call-member-record":return Vt;case"@keet/call-device-record":return Lt;case"@keet/call-stream-record":return qt;case"@keet/build-type":return Bt;case"@keet/test-crash-operation":return Nt;case"@keet/test-dispatch-error-operation":return Ot;case"@keet-private-id/shorten-device-attestation-operation":return Jt;case"@keet/call-device-heartbeat":return Qt;case"@keet/remove-call-device":return Xt;case"@keet/start-call-recording":return Zt;case"@keet/stop-call-recording":return _t;case"@keet/dismiss-chat-reports-operation":return dr;case"@keet/update-typing-indicator-operation":return nr;case"@keet/typing-indicator":return cr;case"@keet-private-id/update-contact-alias-operation":return rr;case"@keet/call-stats":return ir;case"@keet/call-stream-input":return ar;case"@keet/update-call-stream":return pr;case"@keet/call-stream-status-record":return ur;case"@keet/room-keys-v2":return lr;case"@keet/blob-pointer-v2":return fr;case"@keet/blob":return mr;case"@keet/autobee-migration":return yr;case"@keet/autobee-migration-operation":return xr;case"@keet/readonly-room-invitation-v2":return kr;case"@keet/admin-last-seen":return gr;case"@keet/blob-record":return hr;case"@keet-private-id/room-v2":return Ar;case"@keet-private-id/add-room-operation-v2":return Sr;case"@keet-private-id/pending-invitation-response":return Ir;case"@keet-private-id/resolve-pending-invitation-operation-v2":return Fr;default:throw new Error("Encoder not found "+e)}}function ni(e,o=29){const n=oi(e);return{preencode(e,c){d=o,n.preencode(e,c)},encode(e,c){d=o,n.encode(e,c)},decode:e=>(d=o,n.decode(e))}}const ci=ni;module.exports={resolveStruct:ci,getStruct:ni,getEnum:function(e){switch(e){case"@keet/room-type":return N;case"@keet/display-type":return Ac;case"@keet/system-settings-keys":return Mc;case"@keet/room-supported-language":return Dc;case"@keet/label-type":return Oc;case"@keet-private-id/user-settings-key":return ct;case"@keet/member-label-type":return st;case"@keet/build-type":return Et;default:throw new Error("Enum not found "+e)}},getEncoding:oi,encode:function(o,n,c=29){return d=c,e.encode(oi(o),n)},decode:function(o,n,c=29){return d=c,e.decode(oi(o),n)},setVersion:function(e){d=e},version:d};
@holepunchto/keet-core/schema/spec/contract/hyperschema/schema.json +576 -4
……@@ -1,5 +1,5 @@
11{
2 "version": 24,
2 "version": 29,
33 "schema": [
44 {
55 "name": "public-key",
……@@ -168,6 +168,11 @@
168168 "name": "fastForwardTo",
169169 "type": "fixed32",
170170 "version": 1
171 },
172 {
173 "name": "bootFrom",
174 "type": "@keet/head",
175 "version": 27
171176 }
172177 ]
173178 },
……@@ -352,6 +357,11 @@
352357 "name": "externalDrive",
353358 "type": "@keet/external-drive-pointer",
354359 "version": 1
360 },
361 {
362 "name": "bee",
363 "type": "@keet/blob-pointer-v2",
364 "version": 27
355365 }
356366 ]
357367 },
……@@ -661,7 +671,7 @@
661671 "name": "stats",
662672 "namespace": "keet",
663673 "compact": false,
664 "flagsPosition": -1,
674 "flagsPosition": 4,
665675 "fields": [
666676 {
667677 "name": "devices",
……@@ -686,6 +696,11 @@
686696 "required": true,
687697 "type": "@keet/file-stats",
688698 "version": 1
699 },
700 {
701 "name": "calls",
702 "type": "@keet/call-stats",
703 "version": 26
689704 }
690705 ]
691706 },
……@@ -1201,6 +1216,11 @@
12011216 "name": "identity",
12021217 "type": "@keet/device-request-identity",
12031218 "version": 1
1219 },
1220 {
1221 "name": "link",
1222 "type": "@keet/head",
1223 "version": 27
12041224 }
12051225 ]
12061226 },
……@@ -1503,6 +1523,11 @@
15031523 "name": "buildType",
15041524 "type": "@keet/build-type",
15051525 "version": 20
1526 },
1527 {
1528 "name": "readonly-v2",
1529 "type": "@keet/readonly-room-invitation-v2",
1530 "version": 27
15061531 }
15071532 ]
15081533 },
……@@ -3115,6 +3140,11 @@
31153140 "name": "buildType",
31163141 "type": "@keet/build-type",
31173142 "version": 20
3143 },
3144 {
3145 "name": "link",
3146 "type": "@keet/head",
3147 "version": 27
31183148 }
31193149 ]
31203150 },
……@@ -3249,6 +3279,11 @@
32493279 "name": "isUnread",
32503280 "type": "bool",
32513281 "version": 21
3282 },
3283 {
3284 "name": "roomSnoozeTime",
3285 "type": "uint",
3286 "version": 25
32523287 }
32533288 ]
32543289 },
……@@ -3312,6 +3347,16 @@
33123347 "name": "contact",
33133348 "type": "@keet/member-key",
33143349 "version": 10
3350 },
3351 {
3352 "name": "bootFrom",
3353 "type": "@keet/head",
3354 "version": 27
3355 },
3356 {
3357 "name": "activeClock",
3358 "type": "uint",
3359 "version": 29
33153360 }
33163361 ]
33173362 },
……@@ -4736,6 +4781,17 @@
47364781 "name": "version",
47374782 "type": "uint",
47384783 "version": 19
4784 },
4785 {
4786 "name": "streamInputs",
4787 "array": true,
4788 "type": "@keet/call-stream-input",
4789 "version": 26
4790 },
4791 {
4792 "name": "swarmKey",
4793 "type": "fixed32",
4794 "version": 26
47394795 }
47404796 ]
47414797 },
……@@ -4762,6 +4818,17 @@
47624818 "array": true,
47634819 "type": "@keet/core-key",
47644820 "version": 19
4821 },
4822 {
4823 "name": "streamInputs",
4824 "array": true,
4825 "type": "@keet/call-stream-input",
4826 "version": 26
4827 },
4828 {
4829 "name": "swarmKey",
4830 "type": "fixed32",
4831 "version": 26
47654832 }
47664833 ]
47674834 },
……@@ -4809,7 +4876,7 @@
48094876 "name": "add-call-stream",
48104877 "namespace": "keet",
48114878 "compact": false,
4812 "flagsPosition": -1,
4879 "flagsPosition": 3,
48134880 "fields": [
48144881 {
48154882 "name": "header",
……@@ -4828,6 +4895,21 @@
48284895 "required": true,
48294896 "type": "@keet/core-key",
48304897 "version": 19
4898 },
4899 {
4900 "name": "mediaStreamId",
4901 "type": "string",
4902 "version": 26
4903 },
4904 {
4905 "name": "type",
4906 "type": "string",
4907 "version": 26
4908 },
4909 {
4910 "name": "muted",
4911 "type": "bool",
4912 "version": 26
48314913 }
48324914 ]
48334915 },
……@@ -4975,7 +5057,7 @@
49755057 "name": "call-stream-record",
49765058 "namespace": "keet",
49775059 "compact": false,
4978 "flagsPosition": -1,
5060 "flagsPosition": 4,
49795061 "fields": [
49805062 {
49815063 "name": "callKey",
……@@ -5000,6 +5082,21 @@
50005082 "required": true,
50015083 "type": "uint",
50025084 "version": 19
5085 },
5086 {
5087 "name": "mediaStreamId",
5088 "type": "string",
5089 "version": 26
5090 },
5091 {
5092 "name": "type",
5093 "type": "string",
5094 "version": 26
5095 },
5096 {
5097 "name": "statusKey",
5098 "type": "uint",
5099 "version": 26
50035100 }
50045101 ]
50055102 },
……@@ -5247,6 +5344,481 @@
52475344 "version": 24
52485345 }
52495346 ]
5347 },
5348 {
5349 "name": "call-stats",
5350 "namespace": "keet",
5351 "compact": false,
5352 "flagsPosition": -1,
5353 "fields": [
5354 {
5355 "name": "streams",
5356 "required": true,
5357 "type": "uint",
5358 "version": 26
5359 }
5360 ]
5361 },
5362 {
5363 "name": "call-stream-input",
5364 "namespace": "keet",
5365 "compact": false,
5366 "flagsPosition": 3,
5367 "fields": [
5368 {
5369 "name": "streamKey",
5370 "required": true,
5371 "type": "@keet/core-key",
5372 "version": 26
5373 },
5374 {
5375 "name": "mediaStreamId",
5376 "required": true,
5377 "type": "string",
5378 "version": 26
5379 },
5380 {
5381 "name": "type",
5382 "required": true,
5383 "type": "string",
5384 "version": 26
5385 },
5386 {
5387 "name": "muted",
5388 "required": false,
5389 "type": "bool",
5390 "version": 26
5391 }
5392 ]
5393 },
5394 {
5395 "name": "update-call-stream",
5396 "namespace": "keet",
5397 "compact": false,
5398 "flagsPosition": 3,
5399 "fields": [
5400 {
5401 "name": "header",
5402 "required": true,
5403 "type": "@keet/operation-header",
5404 "version": 26
5405 },
5406 {
5407 "name": "callKey",
5408 "required": true,
5409 "type": "fixed32",
5410 "version": 26
5411 },
5412 {
5413 "name": "streamKey",
5414 "required": true,
5415 "type": "@keet/core-key",
5416 "version": 26
5417 },
5418 {
5419 "name": "muted",
5420 "required": false,
5421 "type": "bool",
5422 "version": 26
5423 }
5424 ]
5425 },
5426 {
5427 "name": "call-stream-status-record",
5428 "namespace": "keet",
5429 "compact": false,
5430 "flagsPosition": 1,
5431 "fields": [
5432 {
5433 "name": "statusKey",
5434 "required": true,
5435 "type": "uint",
5436 "version": 26
5437 },
5438 {
5439 "name": "muted",
5440 "type": "bool",
5441 "version": 26
5442 }
5443 ]
5444 },
5445 {
5446 "name": "room-keys-v2",
5447 "namespace": "keet",
5448 "compact": false,
5449 "flagsPosition": 1,
5450 "fields": [
5451 {
5452 "name": "key",
5453 "required": true,
5454 "type": "@keet/room-key",
5455 "version": 27
5456 },
5457 {
5458 "name": "encryptionKey",
5459 "type": "@keet/encryption-key",
5460 "version": 27
5461 },
5462 {
5463 "name": "bootFrom",
5464 "type": "@keet/head",
5465 "version": 27
5466 }
5467 ]
5468 },
5469 {
5470 "name": "blob-pointer-v2",
5471 "namespace": "keet",
5472 "compact": true,
5473 "flagsPosition": -1,
5474 "fields": [
5475 {
5476 "name": "hash",
5477 "required": true,
5478 "type": "fixed32",
5479 "version": 27
5480 }
5481 ]
5482 },
5483 {
5484 "name": "blob",
5485 "namespace": "keet",
5486 "compact": true,
5487 "flagsPosition": -1,
5488 "fields": [
5489 {
5490 "name": "hash",
5491 "required": true,
5492 "type": "fixed32",
5493 "version": 27
5494 },
5495 {
5496 "name": "data",
5497 "required": true,
5498 "type": "buffer",
5499 "version": 27
5500 }
5501 ]
5502 },
5503 {
5504 "name": "autobee-migration",
5505 "namespace": "keet",
5506 "compact": false,
5507 "flagsPosition": 1,
5508 "fields": [
5509 {
5510 "name": "autobeeMigrationHead",
5511 "required": true,
5512 "type": "@keet/head",
5513 "version": 27
5514 },
5515 {
5516 "name": "legacyViewHead",
5517 "type": "@keet/head",
5518 "version": 27
5519 },
5520 {
5521 "name": "dbViewHead",
5522 "type": "@keet/head",
5523 "version": 27
5524 },
5525 {
5526 "name": "blobsViewHead",
5527 "type": "@keet/head",
5528 "version": 27
5529 },
5530 {
5531 "name": "createdAt",
5532 "required": true,
5533 "type": "uint",
5534 "version": 27
5535 }
5536 ]
5537 },
5538 {
5539 "name": "autobee-migration-operation",
5540 "namespace": "keet",
5541 "compact": false,
5542 "flagsPosition": 2,
5543 "fields": [
5544 {
5545 "name": "header",
5546 "required": true,
5547 "type": "@keet/operation-header",
5548 "version": 27
5549 },
5550 {
5551 "name": "head",
5552 "required": true,
5553 "type": "@keet/head",
5554 "version": 27
5555 },
5556 {
5557 "name": "legacyViewHead",
5558 "type": "@keet/head",
5559 "version": 27
5560 },
5561 {
5562 "name": "dbViewHead",
5563 "type": "@keet/head",
5564 "version": 27
5565 },
5566 {
5567 "name": "blobsViewHead",
5568 "type": "@keet/head",
5569 "version": 27
5570 }
5571 ]
5572 },
5573 {
5574 "name": "readonly-room-invitation-v2",
5575 "namespace": "keet",
5576 "compact": false,
5577 "flagsPosition": 3,
5578 "fields": [
5579 {
5580 "name": "roomKey",
5581 "required": true,
5582 "type": "fixed32",
5583 "version": 27
5584 },
5585 {
5586 "name": "encryptionKey",
5587 "required": true,
5588 "type": "fixed32",
5589 "version": 27
5590 },
5591 {
5592 "name": "seed",
5593 "required": true,
5594 "type": "fixed32",
5595 "version": 27
5596 },
5597 {
5598 "name": "bootFrom",
5599 "type": "@keet/head",
5600 "version": 27
5601 }
5602 ]
5603 },
5604 {
5605 "name": "admin-last-seen",
5606 "namespace": "keet",
5607 "compact": false,
5608 "flagsPosition": -1,
5609 "fields": [
5610 {
5611 "name": "memberKey",
5612 "required": true,
5613 "type": "@keet/member-key",
5614 "version": 27
5615 },
5616 {
5617 "name": "deviceKey",
5618 "required": true,
5619 "type": "@keet/device-key",
5620 "version": 27
5621 },
5622 {
5623 "name": "deviceLength",
5624 "required": true,
5625 "type": "uint",
5626 "version": 27
5627 },
5628 {
5629 "name": "clock",
5630 "required": true,
5631 "type": "uint",
5632 "version": 27
5633 },
5634 {
5635 "name": "status",
5636 "required": true,
5637 "type": "@keet/member-status",
5638 "version": 27
5639 }
5640 ]
5641 },
5642 {
5643 "name": "blob-record",
5644 "namespace": "keet",
5645 "compact": false,
5646 "flagsPosition": -1,
5647 "fields": [
5648 {
5649 "name": "hash",
5650 "required": true,
5651 "type": "fixed32",
5652 "version": 27
5653 },
5654 {
5655 "name": "blob",
5656 "required": true,
5657 "type": "buffer",
5658 "version": 27
5659 }
5660 ]
5661 },
5662 {
5663 "name": "room-v2",
5664 "namespace": "keet-private-id",
5665 "compact": false,
5666 "flagsPosition": 5,
5667 "fields": [
5668 {
5669 "name": "roomKey",
5670 "required": true,
5671 "type": "@keet/room-key",
5672 "version": 27
5673 },
5674 {
5675 "name": "encryptionKey",
5676 "required": true,
5677 "type": "@keet/encryption-key",
5678 "version": 27
5679 },
5680 {
5681 "name": "mailbox",
5682 "required": true,
5683 "type": "@keet/public-key",
5684 "version": 27
5685 },
5686 {
5687 "name": "status",
5688 "required": true,
5689 "type": "@keet-private-id/room-status",
5690 "version": 27
5691 },
5692 {
5693 "name": "clock",
5694 "required": true,
5695 "type": "uint",
5696 "version": 27
5697 },
5698 {
5699 "name": "initiator",
5700 "type": "@keet/head",
5701 "version": 27
5702 },
5703 {
5704 "name": "bootFrom",
5705 "type": "@keet/head",
5706 "version": 27
5707 },
5708 {
5709 "name": "identitySwap",
5710 "type": "@keet-private-id/identity-swap",
5711 "version": 27
5712 },
5713 {
5714 "name": "identitySwapV2",
5715 "type": "@keet-private-id/pending-invitation-identity",
5716 "version": 27
5717 },
5718 {
5719 "name": "contact",
5720 "type": "@keet/member-key",
5721 "version": 27
5722 }
5723 ]
5724 },
5725 {
5726 "name": "add-room-operation-v2",
5727 "namespace": "keet-private-id",
5728 "compact": false,
5729 "flagsPosition": 4,
5730 "fields": [
5731 {
5732 "name": "header",
5733 "required": true,
5734 "type": "@keet/operation-header",
5735 "version": 27
5736 },
5737 {
5738 "name": "roomKey",
5739 "required": true,
5740 "type": "@keet/room-key",
5741 "version": 27
5742 },
5743 {
5744 "name": "encryptionKey",
5745 "required": true,
5746 "type": "@keet/encryption-key",
5747 "version": 27
5748 },
5749 {
5750 "name": "mailbox",
5751 "required": true,
5752 "type": "@keet/public-key",
5753 "version": 27
5754 },
5755 {
5756 "name": "bootFrom",
5757 "type": "@keet/head",
5758 "version": 27
5759 },
5760 {
5761 "name": "initiator",
5762 "type": "@keet/head",
5763 "version": 27
5764 },
5765 {
5766 "name": "dm",
5767 "type": "@keet/member-key",
5768 "version": 27
5769 },
5770 {
5771 "name": "isReadOnly",
5772 "type": "bool",
5773 "version": 27
5774 }
5775 ]
5776 },
5777 {
5778 "name": "pending-invitation-response",
5779 "namespace": "keet-private-id",
5780 "compact": false,
5781 "flagsPosition": -1,
5782 "fields": [
5783 {
5784 "name": "id",
5785 "required": true,
5786 "type": "fixed32",
5787 "version": 28
5788 },
5789 {
5790 "name": "writerKey",
5791 "required": true,
5792 "type": "fixed32",
5793 "version": 28
5794 },
5795 {
5796 "name": "blindResponse",
5797 "required": true,
5798 "type": "buffer",
5799 "version": 28
5800 }
5801 ]
5802 },
5803 {
5804 "name": "resolve-pending-invitation-operation-v2",
5805 "namespace": "keet-private-id",
5806 "compact": false,
5807 "flagsPosition": -1,
5808 "fields": [
5809 {
5810 "name": "header",
5811 "required": true,
5812 "type": "@keet/operation-header",
5813 "version": 28
5814 },
5815 {
5816 "name": "blindResponse",
5817 "required": true,
5818 "type": "buffer",
5819 "version": 28
5820 }
5821 ]
52505822 }
52515823 ]
52525824}
@holepunchto/keet-core/schema/spec/local/hyperdb/index.js +1 -1
……@@ -1 +1 @@
1const{IndexEncoder:e,c:n,b4a:t}=require("hyperdb/runtime"),{version:o,getEncoding:r,setVersion:c}=require("./messages.js"),l={schema:o,db:8},d=require("../../../../lib/core/hyperdb/local/local.js"),s=new e([],{prefix:0}),u=r("@local/stats"),i={name:"@local/stats",id:0,version:0,encodeKey:e=>s.encode([]),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>s.encodeRange({gt:e?[]:null,lt:n?[]:null,gte:t?[]:null,lte:o?[]:null}),encodeValue(e,n,o){c(e);const r={start:0,end:0,buffer:null};return u.preencode(r,o),r.buffer=t.allocUnsafe(r.end),u.encode(r,o),r.buffer},trigger:null,reconstruct:function(e,n,t){c(e);const o={start:0,end:t.byteLength,buffer:t};return u.decode(o)},reconstructKey:function(e){return{}},indexes:[],decodedVersion:0},a=new e([],{prefix:1}),f=r("@local/migration-status"),g={name:"@local/migrations",id:1,version:0,encodeKey:e=>a.encode([]),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>a.encodeRange({gt:e?[]:null,lt:n?[]:null,gte:t?[]:null,lte:o?[]:null}),encodeValue(e,n,o){c(e);const r={start:0,end:0,buffer:null};return f.preencode(r,o),r.buffer=t.allocUnsafe(r.end),f.encode(r,o),r.buffer},trigger:null,reconstruct:function(e,n,t){c(e);const o={start:0,end:t.byteLength,buffer:t};return f.decode(o)},reconstructKey:function(e){return{}},indexes:[],decodedVersion:0},y=new e([],{prefix:2}),b=r("@local/room-migration-stats"),p={name:"@local/room-migration-stats",id:2,version:0,encodeKey:e=>y.encode([]),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>y.encodeRange({gt:e?[]:null,lt:n?[]:null,gte:t?[]:null,lte:o?[]:null}),encodeValue(e,n,o){c(e);const r={start:0,end:0,buffer:null};return b.preencode(r,o),r.buffer=t.allocUnsafe(r.end),b.encode(r,o),r.buffer},trigger:null,reconstruct:function(e,n,t){c(e);const o={start:0,end:t.byteLength,buffer:t};return b.decode(o)},reconstructKey:function(e){return{}},indexes:[],decodedVersion:0},m=new e([e.BUFFER],{prefix:3});function K(e){const n=e.roomKey;return void 0===n?[]:[n]}const v=r("@local/room-migration/hyperdb#3"),x=d.roomMigrationsTrigger,h={name:"@local/room-migrations",id:3,version:0,encodeKey(e){const n=[e.roomKey];return m.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>m.encodeRange({gt:e?K(e):null,lt:n?K(n):null,gte:t?K(t):null,lte:o?K(o):null}),encodeValue(e,n,o){c(e);const r={start:0,end:0,buffer:null};return v.preencode(r,o),r.buffer=t.allocUnsafe(r.end),v.encode(r,o),r.buffer},trigger:x,reconstruct:function(e,n,t){const o=m.decode(n);c(e);const r={start:0,end:t.byteLength,buffer:t},l=v.decode(r);return l.roomKey=o[0],l},reconstructKey:function(e){return{roomKey:m.decode(e)[0]}},indexes:[],decodedVersion:0},R=new e([e.UINT,e.BUFFER],{prefix:4});function w(e){const n=[],t=e.priority;if(void 0===t)return n;n.push(t);const o=e.roomKey;return void 0===o||n.push(o),n}const U={name:"@local/room-migrations-by-priority",version:0,id:4,encodeKey:e=>R.encode(w(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>R.encodeRange({gt:e?w(e):null,lt:n?w(n):null,gte:t?w(t):null,lte:o?w(o):null}),encodeValue:e=>U.collection.encodeKey(e),encodeIndexKeys:(e,n)=>[R.encode([e.priority,e.roomKey])],reconstruct:(e,n)=>n,offset:h.indexes.length,collection:h};h.indexes.push(U);const V=new e([],{prefix:5}),F=r("@local/identity-record"),k={name:"@local/identity",id:5,version:0,encodeKey:e=>V.encode([]),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>V.encodeRange({gt:e?[]:null,lt:n?[]:null,gte:t?[]:null,lte:o?[]:null}),encodeValue(e,n,o){c(e);const r={start:0,end:0,buffer:null};return F.preencode(r,o),r.buffer=t.allocUnsafe(r.end),F.encode(r,o),r.buffer},trigger:null,reconstruct:function(e,n,t){c(e);const o={start:0,end:t.byteLength,buffer:t};return F.decode(o)},reconstructKey:function(e){return{}},indexes:[],decodedVersion:0},B=new e([e.BUFFER],{prefix:6});function E(e){const n=e.roomKey;return void 0===n?[]:[n]}const I=r("@local/room/hyperdb#6"),T=d.roomsTrigger,L={name:"@local/rooms",id:6,version:3,encodeKey(e){const n=[e.roomKey];return B.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>B.encodeRange({gt:e?E(e):null,lt:n?E(n):null,gte:t?E(t):null,lte:o?E(o):null}),encodeValue(e,n,o){c(e);const r={start:0,end:0,buffer:null};return o.version=n,I.preencode(r,o),r.buffer=t.allocUnsafe(r.end),I.encode(r,o),r.buffer},trigger:T,reconstruct:function(e,n,t){const o=B.decode(n);c(e);const r={start:0,end:t.byteLength,buffer:t},l=I.decode(r);return l.roomKey=o[0],L.decodedVersion=l.version,l},reconstructKey:function(e){return{roomKey:B.decode(e)[0]}},indexes:[],decodedVersion:0},N=new e([e.BUFFER],{prefix:7});function D(e){const n=e.discoveryKey;return void 0===n?[]:[n]}const A={name:"@local/rooms-by-discovery-key",version:0,id:7,encodeKey:e=>N.encode(D(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>N.encodeRange({gt:e?D(e):null,lt:n?D(n):null,gte:t?D(t):null,lte:o?D(o):null}),encodeValue:e=>A.collection.encodeKey(e),encodeIndexKeys:(e,n)=>[N.encode([e.discoveryKey])],reconstruct:(e,n)=>n,offset:L.indexes.length,collection:L};L.indexes.push(A);const P=new e([e.UINT,e.BUFFER],{prefix:8}),M=d.roomsByTimestampMap;function O(e){const n=e.timestamp;return void 0===n?[]:[n]}const C={name:"@local/rooms-by-timestamp",version:0,id:8,encodeKey:e=>P.encode(O(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>P.encodeRange({gt:e?O(e):null,lt:n?O(n):null,gte:t?O(t):null,lte:o?O(o):null}),encodeValue:e=>C.collection.encodeKey(e),encodeIndexKeys(e,n){const t=M(e,n),o=new Array(t.length);for(let n=0;n<t.length;n++){const r=t[n];o[n]=P.encode([r.timestamp,e.roomKey])}return o},reconstruct:(e,n)=>n,offset:L.indexes.length,collection:L};L.indexes.push(C);const G=new e([e.UINT,e.UINT,e.BUFFER],{prefix:9}),S=d.roomsByTypeAndTimestampMap;function q(e){const n=[],t=e.type;if(void 0===t)return n;n.push(t);const o=e.timestamp;return void 0===o||n.push(o),n}const j={name:"@local/rooms-by-type-and-timestamp",version:0,id:9,encodeKey:e=>G.encode(q(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>G.encodeRange({gt:e?q(e):null,lt:n?q(n):null,gte:t?q(t):null,lte:o?q(o):null}),encodeValue:e=>j.collection.encodeKey(e),encodeIndexKeys(e,n){const t=S(e,n),o=new Array(t.length);for(let n=0;n<t.length;n++){const r=t[n];o[n]=G.encode([r.type,r.timestamp,e.roomKey])}return o},reconstruct:(e,n)=>n,offset:L.indexes.length,collection:L};L.indexes.push(j);const W=new e([e.BUFFER],{prefix:10});function z(e){const n=e.capabilities?.wakeupTopic;return void 0===n?[]:[n]}const H={name:"@local/rooms-by-wakeup-topic",version:0,id:10,encodeKey:e=>W.encode(z(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>W.encodeRange({gt:e?z(e):null,lt:n?z(n):null,gte:t?z(t):null,lte:o?z(o):null}),encodeValue:e=>H.collection.encodeKey(e),encodeIndexKeys:(e,n)=>[W.encode([e.capabilities.wakeupTopic])],reconstruct:(e,n)=>n,offset:L.indexes.length,collection:L};L.indexes.push(H);const J=new e([e.BUFFER],{prefix:11});function Q(e){const n=e.capabilities?.mailboxKeyPair?.publicKey;return void 0===n?[]:[n]}const X={name:"@local/rooms-by-mailbox",version:0,id:11,encodeKey:e=>J.encode(Q(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>J.encodeRange({gt:e?Q(e):null,lt:n?Q(n):null,gte:t?Q(t):null,lte:o?Q(o):null}),encodeValue:e=>X.collection.encodeKey(e),encodeIndexKeys:(e,n)=>[J.encode([e.capabilities.mailboxKeyPair.publicKey])],reconstruct:(e,n)=>n,offset:L.indexes.length,collection:L};L.indexes.push(X);const Y=new e([e.BUFFER],{prefix:12});function Z(e){const n=e.capabilities?.discoveryKeyPair?.publicKey;return void 0===n?[]:[n]}const $={name:"@local/rooms-by-discovery",version:0,id:12,encodeKey:e=>Y.encode(Z(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>Y.encodeRange({gt:e?Z(e):null,lt:n?Z(n):null,gte:t?Z(t):null,lte:o?Z(o):null}),encodeValue:e=>$.collection.encodeKey(e),encodeIndexKeys:(e,n)=>[Y.encode([e.capabilities.discoveryKeyPair.publicKey])],reconstruct:(e,n)=>n,offset:L.indexes.length,collection:L};L.indexes.push($);const _=new e([e.BUFFER],{prefix:13});function ee(e){const n=e.roomKey;return void 0===n?[]:[n]}const ne=r("@local/room-preferences/hyperdb#13"),te={name:"@local/room-preferences",id:13,version:0,encodeKey(e){const n=[e.roomKey];return _.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>_.encodeRange({gt:e?ee(e):null,lt:n?ee(n):null,gte:t?ee(t):null,lte:o?ee(o):null}),encodeValue(e,n,o){c(e);const r={start:0,end:0,buffer:null};return ne.preencode(r,o),r.buffer=t.allocUnsafe(r.end),ne.encode(r,o),r.buffer},trigger:null,reconstruct:function(e,n,t){const o=_.decode(n);c(e);const r={start:0,end:t.byteLength,buffer:t},l=ne.decode(r);return l.roomKey=o[0],l},reconstructKey:function(e){return{roomKey:_.decode(e)[0]}},indexes:[],decodedVersion:0},oe=new e([e.BUFFER],{prefix:14});function re(e){const n=e.mailbox;return void 0===n?[]:[n]}const ce=r("@local/writer/hyperdb#14"),le={name:"@local/writers",id:14,version:0,encodeKey(e){const n=[e.mailbox];return oe.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>oe.encodeRange({gt:e?re(e):null,lt:n?re(n):null,gte:t?re(t):null,lte:o?re(o):null}),encodeValue(e,n,o){c(e);const r={start:0,end:0,buffer:null};return ce.preencode(r,o),r.buffer=t.allocUnsafe(r.end),ce.encode(r,o),r.buffer},trigger:null,reconstruct:function(e,n,t){const o=oe.decode(n);c(e);const r={start:0,end:t.byteLength,buffer:t},l=ce.decode(r);return l.mailbox=o[0],l},reconstructKey:function(e){return{mailbox:oe.decode(e)[0]}},indexes:[],decodedVersion:0},de=new e([e.BUFFER],{prefix:15}),se=d.writersByWakeupTopicMap;function ue(e){const n=e.wakeupTopic;return void 0===n?[]:[n]}const ie={name:"@local/writers-by-wakeup-topic",version:0,id:15,encodeKey:e=>de.encode(ue(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>de.encodeRange({gt:e?ue(e):null,lt:n?ue(n):null,gte:t?ue(t):null,lte:o?ue(o):null}),encodeValue:e=>ie.collection.encodeKey(e),encodeIndexKeys(e,n){const t=se(e,n),o=new Array(t.length);for(let e=0;e<t.length;e++){const n=t[e];o[e]=de.encode([n.wakeupTopic])}return o},reconstruct:(e,n)=>n,offset:le.indexes.length,collection:le};le.indexes.push(ie);const ae=new e([e.BUFFER],{prefix:16}),fe=d.writersByRoomKeyMap;function ge(e){const n=e.roomKey;return void 0===n?[]:[n]}const ye={name:"@local/writers-by-room-key",version:0,id:16,encodeKey:e=>ae.encode(ge(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>ae.encodeRange({gt:e?ge(e):null,lt:n?ge(n):null,gte:t?ge(t):null,lte:o?ge(o):null}),encodeValue:e=>ye.collection.encodeKey(e),encodeIndexKeys(e,n){const t=fe(e,n),o=new Array(t.length);for(let e=0;e<t.length;e++){const n=t[e];o[e]=ae.encode([n.roomKey])}return o},reconstruct:(e,n)=>n,offset:le.indexes.length,collection:le};le.indexes.push(ye);const be=new e([e.BUFFER],{prefix:17});function pe(e){const n=e.key;return void 0===n?[]:[n]}const me=r("@local/member/hyperdb#17"),Ke={name:"@local/members",id:17,version:0,encodeKey(e){const n=[e.key];return be.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>be.encodeRange({gt:e?pe(e):null,lt:n?pe(n):null,gte:t?pe(t):null,lte:o?pe(o):null}),encodeValue(e,n,o){c(e);const r={start:0,end:0,buffer:null};return me.preencode(r,o),r.buffer=t.allocUnsafe(r.end),me.encode(r,o),r.buffer},trigger:null,reconstruct:function(e,n,t){const o=be.decode(n);c(e);const r={start:0,end:t.byteLength,buffer:t},l=me.decode(r);return l.key=o[0],l},reconstructKey:function(e){return{key:be.decode(e)[0]}},indexes:[],decodedVersion:0},ve=new e([e.BUFFER],{prefix:18});function xe(e){const n=e.device?.key;return void 0===n?[]:[n]}const he=r("@local/device/hyperdb#18"),Re={name:"@local/devices",id:18,version:0,encodeKey(e){const n=[e.device.key];return ve.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>ve.encodeRange({gt:e?xe(e):null,lt:n?xe(n):null,gte:t?xe(t):null,lte:o?xe(o):null}),encodeValue(e,n,o){c(e);const r={start:0,end:0,buffer:null};return he.preencode(r,o),r.buffer=t.allocUnsafe(r.end),he.encode(r,o),r.buffer},trigger:null,reconstruct:function(e,n,t){const o=ve.decode(n);c(e);const r={start:0,end:t.byteLength,buffer:t},l=he.decode(r);return l.device.key=o[0],l},reconstructKey:function(e){return{device:{key:ve.decode(e)[0]}}},indexes:[],decodedVersion:0},we=new e([e.BUFFER],{prefix:19});function Ue(e){const n=e.memberKey;return void 0===n?[]:[n]}const Ve=r("@keet-private-id/contact/hyperdb#19"),Fe={name:"@local/contacts",id:19,version:7,encodeKey(e){const n=[e.memberKey];return we.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>we.encodeRange({gt:e?Ue(e):null,lt:n?Ue(n):null,gte:t?Ue(t):null,lte:o?Ue(o):null}),encodeValue(e,n,o){c(e);const r={start:0,end:0,buffer:null};return o.version=n,Ve.preencode(r,o),r.buffer=t.allocUnsafe(r.end),Ve.encode(r,o),r.buffer},trigger:null,reconstruct:function(e,n,t){const o=we.decode(n);c(e);const r={start:0,end:t.byteLength,buffer:t},l=Ve.decode(r);return l.memberKey=o[0],Fe.decodedVersion=l.version,l},reconstructKey:function(e){return{memberKey:we.decode(e)[0]}},indexes:[],decodedVersion:0},ke=new e([e.BUFFER],{prefix:20}),Be=d.blockedContactsMap;function Ee(e){const n=e.memberKey;return void 0===n?[]:[n]}const Ie={name:"@local/blocked-contacts",version:0,id:20,encodeKey:e=>ke.encode(Ee(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>ke.encodeRange({gt:e?Ee(e):null,lt:n?Ee(n):null,gte:t?Ee(t):null,lte:o?Ee(o):null}),encodeValue:e=>Ie.collection.encodeKey(e),encodeIndexKeys(e,n){const t=Be(e,n),o=new Array(t.length);for(let e=0;e<t.length;e++){const n=t[e];o[e]=ke.encode([n.memberKey])}return o},reconstruct:(e,n)=>n,offset:Fe.indexes.length,collection:Fe};Fe.indexes.push(Ie);const Te=new e([e.UINT,e.UINT,e.UINT,e.BUFFER],{prefix:21});function Le(e){const n=[],t=e.priority;if(void 0===t)return n;n.push(t);const o=e.timestamp;if(void 0===o)return n;n.push(o);const r=e.type;if(void 0===r)return n;n.push(r);const c=e.discoveryKey;return void 0===c||n.push(c),n}const Ne=r("@local/task/hyperdb#21"),De={name:"@local/tasks",id:21,version:0,encodeKey(e){const n=[e.priority,e.timestamp,e.type,e.discoveryKey];return Te.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>Te.encodeRange({gt:e?Le(e):null,lt:n?Le(n):null,gte:t?Le(t):null,lte:o?Le(o):null}),encodeValue(e,n,o){c(e);const r={start:0,end:0,buffer:null};return Ne.preencode(r,o),r.buffer=t.allocUnsafe(r.end),Ne.encode(r,o),r.buffer},trigger:null,reconstruct:function(e,n,t){const o=Te.decode(n);c(e);const r={start:0,end:t.byteLength,buffer:t},l=Ne.decode(r);return l.priority=o[0],l.timestamp=o[1],l.type=o[2],l.discoveryKey=o[3],l},reconstructKey:function(e){const n=Te.decode(e);return{priority:n[0],timestamp:n[1],type:n[2],discoveryKey:n[3]}},indexes:[],decodedVersion:0},Ae=new e([e.UINT,e.BUFFER],{prefix:22});function Pe(e){const n=[],t=e.type;if(void 0===t)return n;n.push(t);const o=e.discoveryKey;return void 0===o||n.push(o),n}const Me={name:"@local/tasks-by-type",version:0,id:22,encodeKey:e=>Ae.encode(Pe(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>Ae.encodeRange({gt:e?Pe(e):null,lt:n?Pe(n):null,gte:t?Pe(t):null,lte:o?Pe(o):null}),encodeValue:e=>Me.collection.encodeKey(e),encodeIndexKeys:(e,n)=>[Ae.encode([e.type,e.discoveryKey])],reconstruct:(e,n)=>n,offset:De.indexes.length,collection:De};De.indexes.push(Me);const Oe=new e([e.BUFFER,e.UINT],{prefix:23});function Ce(e){const n=[],t=e.file?.pointer?.externalBlob?.key;if(void 0===t)return n;n.push(t);const o=e.file?.pointer?.externalBlob?.blob?.blockOffset;return void 0===o||n.push(o),n}const Ge=r("@local/file/hyperdb#23"),Se={name:"@local/blob-files",id:23,version:4,encodeKey(e){const n=[e.file.pointer.externalBlob.key,e.file.pointer.externalBlob.blob.blockOffset];return Oe.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>Oe.encodeRange({gt:e?Ce(e):null,lt:n?Ce(n):null,gte:t?Ce(t):null,lte:o?Ce(o):null}),encodeValue(e,n,o){c(e);const r={start:0,end:0,buffer:null};return o.version=n,Ge.preencode(r,o),r.buffer=t.allocUnsafe(r.end),Ge.encode(r,o),r.buffer},trigger:null,reconstruct:function(e,n,t){const o=Oe.decode(n);c(e);const r={start:0,end:t.byteLength,buffer:t},l=Ge.decode(r);return l.file.pointer.externalBlob.key=o[0],l.file.pointer.externalBlob.blob.blockOffset=o[1],Se.decodedVersion=l.version,l},reconstructKey:function(e){return{file:{pointer:{externalBlob:{blob:{blockOffset:Oe.decode(e)[1]}}}}}},indexes:[],decodedVersion:0},qe=new e([e.BUFFER,e.STRING,e.UINT],{prefix:24});function je(e){const n=[],t=e.file?.pointer?.externalDrive?.key;if(void 0===t)return n;n.push(t);const o=e.file?.pointer?.externalDrive?.path;if(void 0===o)return n;n.push(o);const r=e.file?.pointer?.externalDrive?.version;return void 0===r||n.push(r),n}const We=r("@local/file/hyperdb#24"),ze={name:"@local/drive-files",id:24,version:4,encodeKey(e){const n=[e.file.pointer.externalDrive.key,e.file.pointer.externalDrive.path,e.file.pointer.externalDrive.version];return qe.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>qe.encodeRange({gt:e?je(e):null,lt:n?je(n):null,gte:t?je(t):null,lte:o?je(o):null}),encodeValue(e,n,o){c(e);const r={start:0,end:0,buffer:null};return o.version=n,We.preencode(r,o),r.buffer=t.allocUnsafe(r.end),We.encode(r,o),r.buffer},trigger:null,reconstruct:function(e,n,t){const o=qe.decode(n);c(e);const r={start:0,end:t.byteLength,buffer:t},l=We.decode(r);return l.file.pointer.externalDrive.key=o[0],l.file.pointer.externalDrive.path=o[1],l.file.pointer.externalDrive.version=o[2],ze.decodedVersion=l.version,l},reconstructKey:function(e){return{file:{pointer:{externalDrive:{version:qe.decode(e)[2]}}}}},indexes:[],decodedVersion:0},He=new e([e.BUFFER,e.BUFFER,e.UINT],{prefix:25});function Je(e){const n=[],t=e.roomKey;if(void 0===t)return n;n.push(t);const o=e.file?.pointer?.externalBlob?.key;if(void 0===o)return n;n.push(o);const r=e.file?.pointer?.externalBlob?.blob?.blockOffset;return void 0===r||n.push(r),n}const Qe={name:"@local/blob-files-by-room",version:0,id:25,encodeKey:e=>He.encode(Je(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>He.encodeRange({gt:e?Je(e):null,lt:n?Je(n):null,gte:t?Je(t):null,lte:o?Je(o):null}),encodeValue:e=>Qe.collection.encodeKey(e),encodeIndexKeys:(e,n)=>[He.encode([e.roomKey,e.file.pointer.externalBlob.key,e.file.pointer.externalBlob.blob.blockOffset])],reconstruct:(e,n)=>n,offset:Se.indexes.length,collection:Se};Se.indexes.push(Qe);const Xe=new e([e.BUFFER,e.BUFFER,e.STRING,e.UINT],{prefix:26});function Ye(e){const n=[],t=e.roomKey;if(void 0===t)return n;n.push(t);const o=e.file?.pointer?.externalDrive?.key;if(void 0===o)return n;n.push(o);const r=e.file?.pointer?.externalDrive?.path;if(void 0===r)return n;n.push(r);const c=e.file?.pointer?.externalDrive?.version;return void 0===c||n.push(c),n}const Ze={name:"@local/drive-files-by-room",version:0,id:26,encodeKey:e=>Xe.encode(Ye(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>Xe.encodeRange({gt:e?Ye(e):null,lt:n?Ye(n):null,gte:t?Ye(t):null,lte:o?Ye(o):null}),encodeValue:e=>Ze.collection.encodeKey(e),encodeIndexKeys:(e,n)=>[Xe.encode([e.roomKey,e.file.pointer.externalDrive.key,e.file.pointer.externalDrive.path,e.file.pointer.externalDrive.version])],reconstruct:(e,n)=>n,offset:ze.indexes.length,collection:ze};ze.indexes.push(Ze);const $e=new e([e.BUFFER],{prefix:27});function _e(e){const n=e.discoveryPublicKey;return void 0===n?[]:[n]}const en=r("@local/background-sync-room/hyperdb#27"),nn={name:"@local/background-sync",id:27,version:0,encodeKey(e){const n=[e.discoveryPublicKey];return $e.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>$e.encodeRange({gt:e?_e(e):null,lt:n?_e(n):null,gte:t?_e(t):null,lte:o?_e(o):null}),encodeValue(e,n,o){c(e);const r={start:0,end:0,buffer:null};return en.preencode(r,o),r.buffer=t.allocUnsafe(r.end),en.encode(r,o),r.buffer},trigger:null,reconstruct:function(e,n,t){const o=$e.decode(n);c(e);const r={start:0,end:t.byteLength,buffer:t},l=en.decode(r);return l.discoveryPublicKey=o[0],l},reconstructKey:function(e){return{discoveryPublicKey:$e.decode(e)[0]}},indexes:[],decodedVersion:0},tn=new e([e.UINT,e.BUFFER],{prefix:28}),on=d.dirtyByTimestampMap;function rn(e){const n=e.timestamp;return void 0===n?[]:[n]}const cn={name:"@local/background-sync-by-dirty",version:0,id:28,encodeKey:e=>tn.encode(rn(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>tn.encodeRange({gt:e?rn(e):null,lt:n?rn(n):null,gte:t?rn(t):null,lte:o?rn(o):null}),encodeValue:e=>cn.collection.encodeKey(e),encodeIndexKeys(e,n){const t=on(e,n),o=new Array(t.length);for(let n=0;n<t.length;n++){const r=t[n];o[n]=tn.encode([r.timestamp,e.discoveryPublicKey])}return o},reconstruct:(e,n)=>n,offset:nn.indexes.length,collection:nn};nn.indexes.push(cn);const ln=new e([e.BUFFER,e.BUFFER],{prefix:29});function dn(e){const n=[],t=e.key;if(void 0===t)return n;n.push(t);const o=e.responsePublicKey;return void 0===o||n.push(o),n}const sn=r("@local/writer-append/hyperdb#29"),un={name:"@local/writer-appends",id:29,version:0,encodeKey(e){const n=[e.key,e.responsePublicKey];return ln.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>ln.encodeRange({gt:e?dn(e):null,lt:n?dn(n):null,gte:t?dn(t):null,lte:o?dn(o):null}),encodeValue(e,n,o){c(e);const r={start:0,end:0,buffer:null};return sn.preencode(r,o),r.buffer=t.allocUnsafe(r.end),sn.encode(r,o),r.buffer},trigger:null,reconstruct:function(e,n,t){const o=ln.decode(n);c(e);const r={start:0,end:t.byteLength,buffer:t},l=sn.decode(r);return l.key=o[0],l.responsePublicKey=o[1],l},reconstructKey:function(e){const n=ln.decode(e);return{key:n[0],responsePublicKey:n[1]}},indexes:[],decodedVersion:0},an=new e([e.BUFFER],{prefix:30});function fn(e){const n=e.roomKey;return void 0===n?[]:[n]}const gn=r("@local/room-metadata/hyperdb#30"),yn={name:"@local/room-metadata",id:30,version:0,encodeKey(e){const n=[e.roomKey];return an.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>an.encodeRange({gt:e?fn(e):null,lt:n?fn(n):null,gte:t?fn(t):null,lte:o?fn(o):null}),encodeValue(e,n,o){c(e);const r={start:0,end:0,buffer:null};return gn.preencode(r,o),r.buffer=t.allocUnsafe(r.end),gn.encode(r,o),r.buffer},trigger:null,reconstruct:function(e,n,t){const o=an.decode(n);c(e);const r={start:0,end:t.byteLength,buffer:t},l=gn.decode(r);return l.roomKey=o[0],l},reconstructKey:function(e){return{roomKey:an.decode(e)[0]}},indexes:[],decodedVersion:0},bn=new e([],{prefix:31}),pn=r("@local/debug"),mn={name:"@local/debug",id:31,version:0,encodeKey:e=>bn.encode([]),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>bn.encodeRange({gt:e?[]:null,lt:n?[]:null,gte:t?[]:null,lte:o?[]:null}),encodeValue(e,n,o){c(e);const r={start:0,end:0,buffer:null};return pn.preencode(r,o),r.buffer=t.allocUnsafe(r.end),pn.encode(r,o),r.buffer},trigger:null,reconstruct:function(e,n,t){c(e);const o={start:0,end:t.byteLength,buffer:t};return pn.decode(o)},reconstructKey:function(e){return{}},indexes:[],decodedVersion:0},Kn=new e([e.BUFFER,e.BUFFER],{prefix:32}),vn=d.roomsByContactMap;function xn(e){const n=e.contact;return void 0===n?[]:[n]}const hn={name:"@local/rooms-by-contact",version:1,id:32,encodeKey:e=>Kn.encode(xn(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>Kn.encodeRange({gt:e?xn(e):null,lt:n?xn(n):null,gte:t?xn(t):null,lte:o?xn(o):null}),encodeValue:e=>hn.collection.encodeKey(e),encodeIndexKeys(e,n){const t=vn(e,n),o=new Array(t.length);for(let n=0;n<t.length;n++){const r=t[n];o[n]=Kn.encode([r.contact,e.roomKey])}return o},reconstruct:(e,n)=>n,offset:L.indexes.length,collection:L};L.indexes.push(hn);const Rn=new e([e.BUFFER],{prefix:33});function wn(e){const n=e.roomKey;return void 0===n?[]:[n]}const Un=r("@local/unread/hyperdb#33"),Vn={name:"@local/unreads",id:33,version:0,encodeKey(e){const n=[e.roomKey];return Rn.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>Rn.encodeRange({gt:e?wn(e):null,lt:n?wn(n):null,gte:t?wn(t):null,lte:o?wn(o):null}),encodeValue(e,n,o){c(e);const r={start:0,end:0,buffer:null};return Un.preencode(r,o),r.buffer=t.allocUnsafe(r.end),Un.encode(r,o),r.buffer},trigger:null,reconstruct:function(e,n,t){const o=Rn.decode(n);c(e);const r={start:0,end:t.byteLength,buffer:t},l=Un.decode(r);return l.roomKey=o[0],l},reconstructKey:function(e){return{roomKey:Rn.decode(e)[0]}},indexes:[],decodedVersion:0},Fn=new e([],{prefix:34}),kn=r("@local/hyperdht-record"),Bn={name:"@local/hyperdht",id:34,version:0,encodeKey:e=>Fn.encode([]),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>Fn.encodeRange({gt:e?[]:null,lt:n?[]:null,gte:t?[]:null,lte:o?[]:null}),encodeValue(e,n,o){c(e);const r={start:0,end:0,buffer:null};return kn.preencode(r,o),r.buffer=t.allocUnsafe(r.end),kn.encode(r,o),r.buffer},trigger:null,reconstruct:function(e,n,t){c(e);const o={start:0,end:t.byteLength,buffer:t};return kn.decode(o)},reconstructKey:function(e){return{}},indexes:[],decodedVersion:0},En=new e([e.UINT],{prefix:35});function In(e){const n=e.timestamp;return void 0===n?[]:[n]}const Tn=r("@local/error-record/hyperdb#35"),Ln={name:"@local/errors",id:35,version:0,encodeKey(e){const n=[e.timestamp];return En.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>En.encodeRange({gt:e?In(e):null,lt:n?In(n):null,gte:t?In(t):null,lte:o?In(o):null}),encodeValue(e,n,o){c(e);const r={start:0,end:0,buffer:null};return Tn.preencode(r,o),r.buffer=t.allocUnsafe(r.end),Tn.encode(r,o),r.buffer},trigger:null,reconstruct:function(e,n,t){const o=En.decode(n);c(e);const r={start:0,end:t.byteLength,buffer:t},l=Tn.decode(r);return l.timestamp=o[0],l},reconstructKey:function(e){return{timestamp:En.decode(e)[0]}},indexes:[],decodedVersion:0},Nn=new e([e.STRING,e.UINT],{prefix:36});function Dn(e){const n=[],t=e.code;if(void 0===t)return n;n.push(t);const o=e.timestamp;return void 0===o||n.push(o),n}const An={name:"@local/errors-by-code",version:0,id:36,encodeKey:e=>Nn.encode(Dn(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>Nn.encodeRange({gt:e?Dn(e):null,lt:n?Dn(n):null,gte:t?Dn(t):null,lte:o?Dn(o):null}),encodeValue:e=>An.collection.encodeKey(e),encodeIndexKeys:(e,n)=>[Nn.encode([e.code,e.timestamp])],reconstruct:(e,n)=>n,offset:Ln.indexes.length,collection:Ln};Ln.indexes.push(An);const Pn=new e([e.BUFFER],{prefix:37});function Mn(e){const n=e.roomKey;return void 0===n?[]:[n]}const On=r("@local/file-stats/hyperdb#37"),Cn={name:"@local/file-stats",id:37,version:2,encodeKey(e){const n=[e.roomKey];return Pn.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>Pn.encodeRange({gt:e?Mn(e):null,lt:n?Mn(n):null,gte:t?Mn(t):null,lte:o?Mn(o):null}),encodeValue(e,n,o){c(e);const r={start:0,end:2,buffer:null};return On.preencode(r,o),r.buffer=t.allocUnsafe(r.end),r.buffer[r.start++]=0,r.buffer[r.start++]=n,On.encode(r,o),r.buffer},trigger:null,reconstruct:function(e,t,o){const r=Pn.decode(t);c(e);const l={start:0,end:o.byteLength,buffer:o},d=n.uint.decode(l);if(0!==d)throw new Error("Unknown collection type: "+d);Cn.decodedVersion=n.uint.decode(l);const s=On.decode(l);return s.roomKey=r[0],s},reconstructKey:function(e){return{roomKey:Pn.decode(e)[0]}},indexes:[],decodedVersion:0},Gn=new e([e.UINT,e.BUFFER],{prefix:38}),Sn=d.roomsByFavoriteAndTimestampMap;function qn(e){const n=e.timestamp;return void 0===n?[]:[n]}const jn={name:"@local/rooms-by-favorite-and-timestamp",version:3,id:38,encodeKey:e=>Gn.encode(qn(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>Gn.encodeRange({gt:e?qn(e):null,lt:n?qn(n):null,gte:t?qn(t):null,lte:o?qn(o):null}),encodeValue:e=>jn.collection.encodeKey(e),encodeIndexKeys(e,n){const t=Sn(e,n),o=new Array(t.length);for(let n=0;n<t.length;n++){const r=t[n];o[n]=Gn.encode([r.timestamp,e.roomKey])}return o},reconstruct:(e,n)=>n,offset:L.indexes.length,collection:L};L.indexes.push(jn);const Wn=new e([e.UINT,e.BUFFER,e.UINT],{prefix:39});function zn(e){const n=[],t=e.lastAccessed;if(void 0===t)return n;n.push(t);const o=e.file?.pointer?.externalBlob?.key;if(void 0===o)return n;n.push(o);const r=e.file?.pointer?.externalBlob?.blob?.blockOffset;return void 0===r||n.push(r),n}const Hn={name:"@local/blob-files-by-last-accessed",version:4,id:39,encodeKey:e=>Wn.encode(zn(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>Wn.encodeRange({gt:e?zn(e):null,lt:n?zn(n):null,gte:t?zn(t):null,lte:o?zn(o):null}),encodeValue:e=>Hn.collection.encodeKey(e),encodeIndexKeys:(e,n)=>[Wn.encode([e.lastAccessed,e.file.pointer.externalBlob.key,e.file.pointer.externalBlob.blob.blockOffset])],reconstruct:(e,n)=>n,offset:Se.indexes.length,collection:Se};Se.indexes.push(Hn);const Jn=new e([e.UINT,e.BUFFER,e.STRING,e.UINT],{prefix:40});function Qn(e){const n=[],t=e.lastAccessed;if(void 0===t)return n;n.push(t);const o=e.file?.pointer?.externalDrive?.key;if(void 0===o)return n;n.push(o);const r=e.file?.pointer?.externalDrive?.path;if(void 0===r)return n;n.push(r);const c=e.file?.pointer?.externalDrive?.version;return void 0===c||n.push(c),n}const Xn={name:"@local/drive-files-by-last-accessed",version:4,id:40,encodeKey:e=>Jn.encode(Qn(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>Jn.encodeRange({gt:e?Qn(e):null,lt:n?Qn(n):null,gte:t?Qn(t):null,lte:o?Qn(o):null}),encodeValue:e=>Xn.collection.encodeKey(e),encodeIndexKeys:(e,n)=>[Jn.encode([e.lastAccessed,e.file.pointer.externalDrive.key,e.file.pointer.externalDrive.path,e.file.pointer.externalDrive.version])],reconstruct:(e,n)=>n,offset:ze.indexes.length,collection:ze};ze.indexes.push(Xn);const Yn=new e([],{prefix:41}),Zn=r("@local/file-gc-info"),$n={name:"@local/file-gc-info",id:41,version:4,encodeKey:e=>Yn.encode([]),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>Yn.encodeRange({gt:e?[]:null,lt:n?[]:null,gte:t?[]:null,lte:o?[]:null}),encodeValue(e,n,o){c(e);const r={start:0,end:2,buffer:null};return Zn.preencode(r,o),r.buffer=t.allocUnsafe(r.end),r.buffer[r.start++]=0,r.buffer[r.start++]=n,Zn.encode(r,o),r.buffer},trigger:null,reconstruct:function(e,t,o){c(e);const r={start:0,end:o.byteLength,buffer:o},l=n.uint.decode(r);if(0!==l)throw new Error("Unknown collection type: "+l);return $n.decodedVersion=n.uint.decode(r),Zn.decode(r)},reconstructKey:function(e){return{}},indexes:[],decodedVersion:0},_n=new e([],{prefix:42}),et=r("@local/environment-record"),nt={name:"@local/environment",id:42,version:5,encodeKey:e=>_n.encode([]),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>_n.encodeRange({gt:e?[]:null,lt:n?[]:null,gte:t?[]:null,lte:o?[]:null}),encodeValue(e,n,o){c(e);const r={start:0,end:2,buffer:null};return et.preencode(r,o),r.buffer=t.allocUnsafe(r.end),r.buffer[r.start++]=0,r.buffer[r.start++]=n,et.encode(r,o),r.buffer},trigger:null,reconstruct:function(e,t,o){c(e);const r={start:0,end:o.byteLength,buffer:o},l=n.uint.decode(r);if(0!==l)throw new Error("Unknown collection type: "+l);return nt.decodedVersion=n.uint.decode(r),et.decode(r)},reconstructKey:function(e){return{}},indexes:[],decodedVersion:0},tt=new e([],{prefix:43}),ot=r("@local/ota-actions"),rt={name:"@local/ota-actions",id:43,version:6,encodeKey:e=>tt.encode([]),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>tt.encodeRange({gt:e?[]:null,lt:n?[]:null,gte:t?[]:null,lte:o?[]:null}),encodeValue(e,n,o){c(e);const r={start:0,end:2,buffer:null};return ot.preencode(r,o),r.buffer=t.allocUnsafe(r.end),r.buffer[r.start++]=0,r.buffer[r.start++]=n,ot.encode(r,o),r.buffer},trigger:null,reconstruct:function(e,t,o){c(e);const r={start:0,end:o.byteLength,buffer:o},l=n.uint.decode(r);if(0!==l)throw new Error("Unknown collection type: "+l);return rt.decodedVersion=n.uint.decode(r),ot.decode(r)},reconstructKey:function(e){return{}},indexes:[],decodedVersion:0},ct=new e([e.BUFFER],{prefix:44});function lt(e){const n=e.deviceKey;return void 0===n?[]:[n]}const dt=r("@local/device-attestation/hyperdb#44"),st={name:"@local/device-attestations",id:44,version:6,encodeKey(e){const n=[e.deviceKey];return ct.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>ct.encodeRange({gt:e?lt(e):null,lt:n?lt(n):null,gte:t?lt(t):null,lte:o?lt(o):null}),encodeValue(e,n,o){c(e);const r={start:0,end:2,buffer:null};return dt.preencode(r,o),r.buffer=t.allocUnsafe(r.end),r.buffer[r.start++]=0,r.buffer[r.start++]=n,dt.encode(r,o),r.buffer},trigger:null,reconstruct:function(e,t,o){const r=ct.decode(t);c(e);const l={start:0,end:o.byteLength,buffer:o},d=n.uint.decode(l);if(0!==d)throw new Error("Unknown collection type: "+d);st.decodedVersion=n.uint.decode(l);const s=dt.decode(l);return s.deviceKey=r[0],s},reconstructKey:function(e){return{deviceKey:ct.decode(e)[0]}},indexes:[],decodedVersion:0},ut=new e([e.BUFFER],{prefix:45}),it=d.activeContactsMap;function at(e){const n=e.memberKey;return void 0===n?[]:[n]}const ft={name:"@local/active-contacts",version:7,id:45,encodeKey:e=>ut.encode(at(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>ut.encodeRange({gt:e?at(e):null,lt:n?at(n):null,gte:t?at(t):null,lte:o?at(o):null}),encodeValue:e=>ft.collection.encodeKey(e),encodeIndexKeys(e,n){const t=it(e,n),o=new Array(t.length);for(let e=0;e<t.length;e++){const n=t[e];o[e]=ut.encode([n.memberKey])}return o},reconstruct:(e,n)=>n,offset:Fe.indexes.length,collection:Fe};Fe.indexes.push(ft);const gt=new e([],{prefix:46}),yt=r("@local/hyperswarm-record"),bt={name:"@local/hyperswarm",id:46,version:8,encodeKey:e=>gt.encode([]),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>gt.encodeRange({gt:e?[]:null,lt:n?[]:null,gte:t?[]:null,lte:o?[]:null}),encodeValue(e,n,o){c(e);const r={start:0,end:2,buffer:null};return yt.preencode(r,o),r.buffer=t.allocUnsafe(r.end),r.buffer[r.start++]=0,r.buffer[r.start++]=n,yt.encode(r,o),r.buffer},trigger:null,reconstruct:function(e,t,o){c(e);const r={start:0,end:o.byteLength,buffer:o},l=n.uint.decode(r);if(0!==l)throw new Error("Unknown collection type: "+l);return bt.decodedVersion=n.uint.decode(r),yt.decode(r)},reconstructKey:function(e){return{}},indexes:[],decodedVersion:0},pt=[i,g,p,h,k,L,te,le,Ke,Re,Fe,De,Se,ze,nn,un,yn,mn,Vn,Bn,Ln,Cn,$n,nt,rt,st,bt],mt=[U,A,C,j,H,X,$,ie,ye,Ie,Me,Qe,Ze,cn,hn,An,jn,Hn,Xn,ft];module.exports={versions:l,collections:pt,indexes:mt,resolveCollection:function(e){switch(e){case"@local/stats":return i;case"@local/migrations":return g;case"@local/room-migration-stats":return p;case"@local/room-migrations":return h;case"@local/identity":return k;case"@local/rooms":return L;case"@local/room-preferences":return te;case"@local/writers":return le;case"@local/members":return Ke;case"@local/devices":return Re;case"@local/contacts":return Fe;case"@local/tasks":return De;case"@local/blob-files":return Se;case"@local/drive-files":return ze;case"@local/background-sync":return nn;case"@local/writer-appends":return un;case"@local/room-metadata":return yn;case"@local/debug":return mn;case"@local/unreads":return Vn;case"@local/hyperdht":return Bn;case"@local/errors":return Ln;case"@local/file-stats":return Cn;case"@local/file-gc-info":return $n;case"@local/environment":return nt;case"@local/ota-actions":return rt;case"@local/device-attestations":return st;case"@local/hyperswarm":return bt;default:return null}},resolveIndex:function(e){switch(e){case"@local/room-migrations-by-priority":return U;case"@local/rooms-by-discovery-key":return A;case"@local/rooms-by-timestamp":return C;case"@local/rooms-by-type-and-timestamp":return j;case"@local/rooms-by-wakeup-topic":return H;case"@local/rooms-by-mailbox":return X;case"@local/rooms-by-discovery":return $;case"@local/writers-by-wakeup-topic":return ie;case"@local/writers-by-room-key":return ye;case"@local/blocked-contacts":return Ie;case"@local/tasks-by-type":return Me;case"@local/blob-files-by-room":return Qe;case"@local/drive-files-by-room":return Ze;case"@local/background-sync-by-dirty":return cn;case"@local/rooms-by-contact":return hn;case"@local/errors-by-code":return An;case"@local/rooms-by-favorite-and-timestamp":return jn;case"@local/blob-files-by-last-accessed":return Hn;case"@local/drive-files-by-last-accessed":return Xn;case"@local/active-contacts":return ft;default:return null}}};
1const{IndexEncoder:e,c:n,b4a:t}=require("hyperdb/runtime"),{version:o,getEncoding:r,setVersion:c}=require("./messages.js"),l={schema:o,db:11},d=require("../../../../lib/core/hyperdb/local/local.js"),s=new e([],{prefix:0}),u=r("@local/stats"),i={name:"@local/stats",id:0,version:0,encodeKey:e=>s.encode([]),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>s.encodeRange({gt:e?[]:null,lt:n?[]:null,gte:t?[]:null,lte:o?[]:null}),encodeValue(e,n,o){c(e);const r={start:0,end:0,buffer:null};return u.preencode(r,o),r.buffer=t.allocUnsafe(r.end),u.encode(r,o),r.buffer},trigger:null,reconstruct:function(e,n,t){c(e);const o={start:0,end:t.byteLength,buffer:t};return u.decode(o)},reconstructKey:function(e){return{}},indexes:[],decodedVersion:0},a=new e([],{prefix:1}),f=r("@local/migration-status"),g={name:"@local/migrations",id:1,version:0,encodeKey:e=>a.encode([]),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>a.encodeRange({gt:e?[]:null,lt:n?[]:null,gte:t?[]:null,lte:o?[]:null}),encodeValue(e,n,o){c(e);const r={start:0,end:0,buffer:null};return f.preencode(r,o),r.buffer=t.allocUnsafe(r.end),f.encode(r,o),r.buffer},trigger:null,reconstruct:function(e,n,t){c(e);const o={start:0,end:t.byteLength,buffer:t};return f.decode(o)},reconstructKey:function(e){return{}},indexes:[],decodedVersion:0},y=new e([],{prefix:2}),b=r("@local/room-migration-stats"),p={name:"@local/room-migration-stats",id:2,version:0,encodeKey:e=>y.encode([]),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>y.encodeRange({gt:e?[]:null,lt:n?[]:null,gte:t?[]:null,lte:o?[]:null}),encodeValue(e,n,o){c(e);const r={start:0,end:0,buffer:null};return b.preencode(r,o),r.buffer=t.allocUnsafe(r.end),b.encode(r,o),r.buffer},trigger:null,reconstruct:function(e,n,t){c(e);const o={start:0,end:t.byteLength,buffer:t};return b.decode(o)},reconstructKey:function(e){return{}},indexes:[],decodedVersion:0},m=new e([e.BUFFER],{prefix:3});function K(e){const n=e.roomKey;return void 0===n?[]:[n]}const v=r("@local/room-migration/hyperdb#3"),x=d.roomMigrationsTrigger,h={name:"@local/room-migrations",id:3,version:0,encodeKey(e){const n=[e.roomKey];return m.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>m.encodeRange({gt:e?K(e):null,lt:n?K(n):null,gte:t?K(t):null,lte:o?K(o):null}),encodeValue(e,n,o){c(e);const r={start:0,end:0,buffer:null};return v.preencode(r,o),r.buffer=t.allocUnsafe(r.end),v.encode(r,o),r.buffer},trigger:x,reconstruct:function(e,n,t){const o=m.decode(n);c(e);const r={start:0,end:t.byteLength,buffer:t},l=v.decode(r);return l.roomKey=o[0],l},reconstructKey:function(e){return{roomKey:m.decode(e)[0]}},indexes:[],decodedVersion:0},R=new e([e.UINT,e.BUFFER],{prefix:4});function w(e){const n=[],t=e.priority;if(void 0===t)return n;n.push(t);const o=e.roomKey;return void 0===o||n.push(o),n}const U={name:"@local/room-migrations-by-priority",version:0,id:4,encodeKey:e=>R.encode(w(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>R.encodeRange({gt:e?w(e):null,lt:n?w(n):null,gte:t?w(t):null,lte:o?w(o):null}),encodeValue:e=>U.collection.encodeKey(e),encodeIndexKeys:(e,n)=>[R.encode([e.priority,e.roomKey])],reconstruct:(e,n)=>n,offset:h.indexes.length,collection:h};h.indexes.push(U);const V=new e([],{prefix:5}),F=r("@local/identity-record"),k={name:"@local/identity",id:5,version:0,encodeKey:e=>V.encode([]),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>V.encodeRange({gt:e?[]:null,lt:n?[]:null,gte:t?[]:null,lte:o?[]:null}),encodeValue(e,n,o){c(e);const r={start:0,end:0,buffer:null};return F.preencode(r,o),r.buffer=t.allocUnsafe(r.end),F.encode(r,o),r.buffer},trigger:null,reconstruct:function(e,n,t){c(e);const o={start:0,end:t.byteLength,buffer:t};return F.decode(o)},reconstructKey:function(e){return{}},indexes:[],decodedVersion:0},B=new e([e.BUFFER],{prefix:6});function E(e){const n=e.roomKey;return void 0===n?[]:[n]}const I=r("@local/room/hyperdb#6"),T=d.roomsTrigger,L={name:"@local/rooms",id:6,version:9,encodeKey(e){const n=[e.roomKey];return B.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>B.encodeRange({gt:e?E(e):null,lt:n?E(n):null,gte:t?E(t):null,lte:o?E(o):null}),encodeValue(e,n,o){c(e);const r={start:0,end:0,buffer:null};return o.version=n,I.preencode(r,o),r.buffer=t.allocUnsafe(r.end),I.encode(r,o),r.buffer},trigger:T,reconstruct:function(e,n,t){const o=B.decode(n);c(e);const r={start:0,end:t.byteLength,buffer:t},l=I.decode(r);return l.roomKey=o[0],L.decodedVersion=l.version,l},reconstructKey:function(e){return{roomKey:B.decode(e)[0]}},indexes:[],decodedVersion:0},N=new e([e.BUFFER],{prefix:7});function D(e){const n=e.discoveryKey;return void 0===n?[]:[n]}const A={name:"@local/rooms-by-discovery-key",version:0,id:7,encodeKey:e=>N.encode(D(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>N.encodeRange({gt:e?D(e):null,lt:n?D(n):null,gte:t?D(t):null,lte:o?D(o):null}),encodeValue:e=>A.collection.encodeKey(e),encodeIndexKeys:(e,n)=>[N.encode([e.discoveryKey])],reconstruct:(e,n)=>n,offset:L.indexes.length,collection:L};L.indexes.push(A);const P=new e([e.UINT,e.BUFFER],{prefix:8}),M=d.roomsByTimestampMap;function O(e){const n=e.timestamp;return void 0===n?[]:[n]}const C={name:"@local/rooms-by-timestamp",version:0,id:8,encodeKey:e=>P.encode(O(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>P.encodeRange({gt:e?O(e):null,lt:n?O(n):null,gte:t?O(t):null,lte:o?O(o):null}),encodeValue:e=>C.collection.encodeKey(e),encodeIndexKeys(e,n){const t=M(e,n),o=new Array(t.length);for(let n=0;n<t.length;n++){const r=t[n];o[n]=P.encode([r.timestamp,e.roomKey])}return o},reconstruct:(e,n)=>n,offset:L.indexes.length,collection:L};L.indexes.push(C);const G=new e([e.UINT,e.UINT,e.BUFFER],{prefix:9}),S=d.roomsByTypeAndTimestampMap;function q(e){const n=[],t=e.type;if(void 0===t)return n;n.push(t);const o=e.timestamp;return void 0===o||n.push(o),n}const j={name:"@local/rooms-by-type-and-timestamp",version:0,id:9,encodeKey:e=>G.encode(q(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>G.encodeRange({gt:e?q(e):null,lt:n?q(n):null,gte:t?q(t):null,lte:o?q(o):null}),encodeValue:e=>j.collection.encodeKey(e),encodeIndexKeys(e,n){const t=S(e,n),o=new Array(t.length);for(let n=0;n<t.length;n++){const r=t[n];o[n]=G.encode([r.type,r.timestamp,e.roomKey])}return o},reconstruct:(e,n)=>n,offset:L.indexes.length,collection:L};L.indexes.push(j);const W=new e([e.BUFFER],{prefix:10});function z(e){const n=e.capabilities?.wakeupTopic;return void 0===n?[]:[n]}const H={name:"@local/rooms-by-wakeup-topic",version:0,id:10,encodeKey:e=>W.encode(z(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>W.encodeRange({gt:e?z(e):null,lt:n?z(n):null,gte:t?z(t):null,lte:o?z(o):null}),encodeValue:e=>H.collection.encodeKey(e),encodeIndexKeys:(e,n)=>[W.encode([e.capabilities.wakeupTopic])],reconstruct:(e,n)=>n,offset:L.indexes.length,collection:L};L.indexes.push(H);const J=new e([e.BUFFER],{prefix:11});function Q(e){const n=e.capabilities?.mailboxKeyPair?.publicKey;return void 0===n?[]:[n]}const X={name:"@local/rooms-by-mailbox",version:0,id:11,encodeKey:e=>J.encode(Q(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>J.encodeRange({gt:e?Q(e):null,lt:n?Q(n):null,gte:t?Q(t):null,lte:o?Q(o):null}),encodeValue:e=>X.collection.encodeKey(e),encodeIndexKeys:(e,n)=>[J.encode([e.capabilities.mailboxKeyPair.publicKey])],reconstruct:(e,n)=>n,offset:L.indexes.length,collection:L};L.indexes.push(X);const Y=new e([e.BUFFER],{prefix:12});function Z(e){const n=e.capabilities?.discoveryKeyPair?.publicKey;return void 0===n?[]:[n]}const $={name:"@local/rooms-by-discovery",version:0,id:12,encodeKey:e=>Y.encode(Z(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>Y.encodeRange({gt:e?Z(e):null,lt:n?Z(n):null,gte:t?Z(t):null,lte:o?Z(o):null}),encodeValue:e=>$.collection.encodeKey(e),encodeIndexKeys:(e,n)=>[Y.encode([e.capabilities.discoveryKeyPair.publicKey])],reconstruct:(e,n)=>n,offset:L.indexes.length,collection:L};L.indexes.push($);const _=new e([e.BUFFER],{prefix:13});function ee(e){const n=e.roomKey;return void 0===n?[]:[n]}const ne=r("@local/room-preferences/hyperdb#13"),te={name:"@local/room-preferences",id:13,version:0,encodeKey(e){const n=[e.roomKey];return _.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>_.encodeRange({gt:e?ee(e):null,lt:n?ee(n):null,gte:t?ee(t):null,lte:o?ee(o):null}),encodeValue(e,n,o){c(e);const r={start:0,end:0,buffer:null};return ne.preencode(r,o),r.buffer=t.allocUnsafe(r.end),ne.encode(r,o),r.buffer},trigger:null,reconstruct:function(e,n,t){const o=_.decode(n);c(e);const r={start:0,end:t.byteLength,buffer:t},l=ne.decode(r);return l.roomKey=o[0],l},reconstructKey:function(e){return{roomKey:_.decode(e)[0]}},indexes:[],decodedVersion:0},oe=new e([e.BUFFER],{prefix:14});function re(e){const n=e.mailbox;return void 0===n?[]:[n]}const ce=r("@local/writer/hyperdb#14"),le={name:"@local/writers",id:14,version:0,encodeKey(e){const n=[e.mailbox];return oe.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>oe.encodeRange({gt:e?re(e):null,lt:n?re(n):null,gte:t?re(t):null,lte:o?re(o):null}),encodeValue(e,n,o){c(e);const r={start:0,end:0,buffer:null};return ce.preencode(r,o),r.buffer=t.allocUnsafe(r.end),ce.encode(r,o),r.buffer},trigger:null,reconstruct:function(e,n,t){const o=oe.decode(n);c(e);const r={start:0,end:t.byteLength,buffer:t},l=ce.decode(r);return l.mailbox=o[0],l},reconstructKey:function(e){return{mailbox:oe.decode(e)[0]}},indexes:[],decodedVersion:0},de=new e([e.BUFFER],{prefix:15}),se=d.writersByWakeupTopicMap;function ue(e){const n=e.wakeupTopic;return void 0===n?[]:[n]}const ie={name:"@local/writers-by-wakeup-topic",version:0,id:15,encodeKey:e=>de.encode(ue(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>de.encodeRange({gt:e?ue(e):null,lt:n?ue(n):null,gte:t?ue(t):null,lte:o?ue(o):null}),encodeValue:e=>ie.collection.encodeKey(e),encodeIndexKeys(e,n){const t=se(e,n),o=new Array(t.length);for(let e=0;e<t.length;e++){const n=t[e];o[e]=de.encode([n.wakeupTopic])}return o},reconstruct:(e,n)=>n,offset:le.indexes.length,collection:le};le.indexes.push(ie);const ae=new e([e.BUFFER],{prefix:16}),fe=d.writersByRoomKeyMap;function ge(e){const n=e.roomKey;return void 0===n?[]:[n]}const ye={name:"@local/writers-by-room-key",version:0,id:16,encodeKey:e=>ae.encode(ge(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>ae.encodeRange({gt:e?ge(e):null,lt:n?ge(n):null,gte:t?ge(t):null,lte:o?ge(o):null}),encodeValue:e=>ye.collection.encodeKey(e),encodeIndexKeys(e,n){const t=fe(e,n),o=new Array(t.length);for(let e=0;e<t.length;e++){const n=t[e];o[e]=ae.encode([n.roomKey])}return o},reconstruct:(e,n)=>n,offset:le.indexes.length,collection:le};le.indexes.push(ye);const be=new e([e.BUFFER],{prefix:17});function pe(e){const n=e.key;return void 0===n?[]:[n]}const me=r("@local/member/hyperdb#17"),Ke={name:"@local/members",id:17,version:0,encodeKey(e){const n=[e.key];return be.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>be.encodeRange({gt:e?pe(e):null,lt:n?pe(n):null,gte:t?pe(t):null,lte:o?pe(o):null}),encodeValue(e,n,o){c(e);const r={start:0,end:0,buffer:null};return me.preencode(r,o),r.buffer=t.allocUnsafe(r.end),me.encode(r,o),r.buffer},trigger:null,reconstruct:function(e,n,t){const o=be.decode(n);c(e);const r={start:0,end:t.byteLength,buffer:t},l=me.decode(r);return l.key=o[0],l},reconstructKey:function(e){return{key:be.decode(e)[0]}},indexes:[],decodedVersion:0},ve=new e([e.BUFFER],{prefix:18});function xe(e){const n=e.device?.key;return void 0===n?[]:[n]}const he=r("@local/device/hyperdb#18"),Re={name:"@local/devices",id:18,version:0,encodeKey(e){const n=[e.device.key];return ve.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>ve.encodeRange({gt:e?xe(e):null,lt:n?xe(n):null,gte:t?xe(t):null,lte:o?xe(o):null}),encodeValue(e,n,o){c(e);const r={start:0,end:0,buffer:null};return he.preencode(r,o),r.buffer=t.allocUnsafe(r.end),he.encode(r,o),r.buffer},trigger:null,reconstruct:function(e,n,t){const o=ve.decode(n);c(e);const r={start:0,end:t.byteLength,buffer:t},l=he.decode(r);return l.device.key=o[0],l},reconstructKey:function(e){return{device:{key:ve.decode(e)[0]}}},indexes:[],decodedVersion:0},we=new e([e.BUFFER],{prefix:19});function Ue(e){const n=e.memberKey;return void 0===n?[]:[n]}const Ve=r("@keet-private-id/contact/hyperdb#19"),Fe={name:"@local/contacts",id:19,version:7,encodeKey(e){const n=[e.memberKey];return we.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>we.encodeRange({gt:e?Ue(e):null,lt:n?Ue(n):null,gte:t?Ue(t):null,lte:o?Ue(o):null}),encodeValue(e,n,o){c(e);const r={start:0,end:0,buffer:null};return o.version=n,Ve.preencode(r,o),r.buffer=t.allocUnsafe(r.end),Ve.encode(r,o),r.buffer},trigger:null,reconstruct:function(e,n,t){const o=we.decode(n);c(e);const r={start:0,end:t.byteLength,buffer:t},l=Ve.decode(r);return l.memberKey=o[0],Fe.decodedVersion=l.version,l},reconstructKey:function(e){return{memberKey:we.decode(e)[0]}},indexes:[],decodedVersion:0},ke=new e([e.BUFFER],{prefix:20}),Be=d.blockedContactsMap;function Ee(e){const n=e.memberKey;return void 0===n?[]:[n]}const Ie={name:"@local/blocked-contacts",version:0,id:20,encodeKey:e=>ke.encode(Ee(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>ke.encodeRange({gt:e?Ee(e):null,lt:n?Ee(n):null,gte:t?Ee(t):null,lte:o?Ee(o):null}),encodeValue:e=>Ie.collection.encodeKey(e),encodeIndexKeys(e,n){const t=Be(e,n),o=new Array(t.length);for(let e=0;e<t.length;e++){const n=t[e];o[e]=ke.encode([n.memberKey])}return o},reconstruct:(e,n)=>n,offset:Fe.indexes.length,collection:Fe};Fe.indexes.push(Ie);const Te=new e([e.UINT,e.UINT,e.UINT,e.BUFFER],{prefix:21});function Le(e){const n=[],t=e.priority;if(void 0===t)return n;n.push(t);const o=e.timestamp;if(void 0===o)return n;n.push(o);const r=e.type;if(void 0===r)return n;n.push(r);const c=e.discoveryKey;return void 0===c||n.push(c),n}const Ne=r("@local/task/hyperdb#21"),De={name:"@local/tasks",id:21,version:0,encodeKey(e){const n=[e.priority,e.timestamp,e.type,e.discoveryKey];return Te.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>Te.encodeRange({gt:e?Le(e):null,lt:n?Le(n):null,gte:t?Le(t):null,lte:o?Le(o):null}),encodeValue(e,n,o){c(e);const r={start:0,end:0,buffer:null};return Ne.preencode(r,o),r.buffer=t.allocUnsafe(r.end),Ne.encode(r,o),r.buffer},trigger:null,reconstruct:function(e,n,t){const o=Te.decode(n);c(e);const r={start:0,end:t.byteLength,buffer:t},l=Ne.decode(r);return l.priority=o[0],l.timestamp=o[1],l.type=o[2],l.discoveryKey=o[3],l},reconstructKey:function(e){const n=Te.decode(e);return{priority:n[0],timestamp:n[1],type:n[2],discoveryKey:n[3]}},indexes:[],decodedVersion:0},Ae=new e([e.UINT,e.BUFFER],{prefix:22});function Pe(e){const n=[],t=e.type;if(void 0===t)return n;n.push(t);const o=e.discoveryKey;return void 0===o||n.push(o),n}const Me={name:"@local/tasks-by-type",version:0,id:22,encodeKey:e=>Ae.encode(Pe(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>Ae.encodeRange({gt:e?Pe(e):null,lt:n?Pe(n):null,gte:t?Pe(t):null,lte:o?Pe(o):null}),encodeValue:e=>Me.collection.encodeKey(e),encodeIndexKeys:(e,n)=>[Ae.encode([e.type,e.discoveryKey])],reconstruct:(e,n)=>n,offset:De.indexes.length,collection:De};De.indexes.push(Me);const Oe=new e([e.BUFFER,e.UINT],{prefix:23});function Ce(e){const n=[],t=e.file?.pointer?.externalBlob?.key;if(void 0===t)return n;n.push(t);const o=e.file?.pointer?.externalBlob?.blob?.blockOffset;return void 0===o||n.push(o),n}const Ge=r("@local/file/hyperdb#23"),Se={name:"@local/blob-files",id:23,version:4,encodeKey(e){const n=[e.file.pointer.externalBlob.key,e.file.pointer.externalBlob.blob.blockOffset];return Oe.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>Oe.encodeRange({gt:e?Ce(e):null,lt:n?Ce(n):null,gte:t?Ce(t):null,lte:o?Ce(o):null}),encodeValue(e,n,o){c(e);const r={start:0,end:0,buffer:null};return o.version=n,Ge.preencode(r,o),r.buffer=t.allocUnsafe(r.end),Ge.encode(r,o),r.buffer},trigger:null,reconstruct:function(e,n,t){const o=Oe.decode(n);c(e);const r={start:0,end:t.byteLength,buffer:t},l=Ge.decode(r);return l.file.pointer.externalBlob.key=o[0],l.file.pointer.externalBlob.blob.blockOffset=o[1],Se.decodedVersion=l.version,l},reconstructKey:function(e){return{file:{pointer:{externalBlob:{blob:{blockOffset:Oe.decode(e)[1]}}}}}},indexes:[],decodedVersion:0},qe=new e([e.BUFFER,e.STRING,e.UINT],{prefix:24});function je(e){const n=[],t=e.file?.pointer?.externalDrive?.key;if(void 0===t)return n;n.push(t);const o=e.file?.pointer?.externalDrive?.path;if(void 0===o)return n;n.push(o);const r=e.file?.pointer?.externalDrive?.version;return void 0===r||n.push(r),n}const We=r("@local/file/hyperdb#24"),ze={name:"@local/drive-files",id:24,version:4,encodeKey(e){const n=[e.file.pointer.externalDrive.key,e.file.pointer.externalDrive.path,e.file.pointer.externalDrive.version];return qe.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>qe.encodeRange({gt:e?je(e):null,lt:n?je(n):null,gte:t?je(t):null,lte:o?je(o):null}),encodeValue(e,n,o){c(e);const r={start:0,end:0,buffer:null};return o.version=n,We.preencode(r,o),r.buffer=t.allocUnsafe(r.end),We.encode(r,o),r.buffer},trigger:null,reconstruct:function(e,n,t){const o=qe.decode(n);c(e);const r={start:0,end:t.byteLength,buffer:t},l=We.decode(r);return l.file.pointer.externalDrive.key=o[0],l.file.pointer.externalDrive.path=o[1],l.file.pointer.externalDrive.version=o[2],ze.decodedVersion=l.version,l},reconstructKey:function(e){return{file:{pointer:{externalDrive:{version:qe.decode(e)[2]}}}}},indexes:[],decodedVersion:0},He=new e([e.BUFFER,e.BUFFER,e.UINT],{prefix:25});function Je(e){const n=[],t=e.roomKey;if(void 0===t)return n;n.push(t);const o=e.file?.pointer?.externalBlob?.key;if(void 0===o)return n;n.push(o);const r=e.file?.pointer?.externalBlob?.blob?.blockOffset;return void 0===r||n.push(r),n}const Qe={name:"@local/blob-files-by-room",version:0,id:25,encodeKey:e=>He.encode(Je(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>He.encodeRange({gt:e?Je(e):null,lt:n?Je(n):null,gte:t?Je(t):null,lte:o?Je(o):null}),encodeValue:e=>Qe.collection.encodeKey(e),encodeIndexKeys:(e,n)=>[He.encode([e.roomKey,e.file.pointer.externalBlob.key,e.file.pointer.externalBlob.blob.blockOffset])],reconstruct:(e,n)=>n,offset:Se.indexes.length,collection:Se};Se.indexes.push(Qe);const Xe=new e([e.BUFFER,e.BUFFER,e.STRING,e.UINT],{prefix:26});function Ye(e){const n=[],t=e.roomKey;if(void 0===t)return n;n.push(t);const o=e.file?.pointer?.externalDrive?.key;if(void 0===o)return n;n.push(o);const r=e.file?.pointer?.externalDrive?.path;if(void 0===r)return n;n.push(r);const c=e.file?.pointer?.externalDrive?.version;return void 0===c||n.push(c),n}const Ze={name:"@local/drive-files-by-room",version:0,id:26,encodeKey:e=>Xe.encode(Ye(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>Xe.encodeRange({gt:e?Ye(e):null,lt:n?Ye(n):null,gte:t?Ye(t):null,lte:o?Ye(o):null}),encodeValue:e=>Ze.collection.encodeKey(e),encodeIndexKeys:(e,n)=>[Xe.encode([e.roomKey,e.file.pointer.externalDrive.key,e.file.pointer.externalDrive.path,e.file.pointer.externalDrive.version])],reconstruct:(e,n)=>n,offset:ze.indexes.length,collection:ze};ze.indexes.push(Ze);const $e=new e([e.BUFFER],{prefix:27});function _e(e){const n=e.discoveryPublicKey;return void 0===n?[]:[n]}const en=r("@local/background-sync-room/hyperdb#27"),nn={name:"@local/background-sync",id:27,version:0,encodeKey(e){const n=[e.discoveryPublicKey];return $e.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>$e.encodeRange({gt:e?_e(e):null,lt:n?_e(n):null,gte:t?_e(t):null,lte:o?_e(o):null}),encodeValue(e,n,o){c(e);const r={start:0,end:0,buffer:null};return en.preencode(r,o),r.buffer=t.allocUnsafe(r.end),en.encode(r,o),r.buffer},trigger:null,reconstruct:function(e,n,t){const o=$e.decode(n);c(e);const r={start:0,end:t.byteLength,buffer:t},l=en.decode(r);return l.discoveryPublicKey=o[0],l},reconstructKey:function(e){return{discoveryPublicKey:$e.decode(e)[0]}},indexes:[],decodedVersion:0},tn=new e([e.UINT,e.BUFFER],{prefix:28}),on=d.dirtyByTimestampMap;function rn(e){const n=e.timestamp;return void 0===n?[]:[n]}const cn={name:"@local/background-sync-by-dirty",version:0,id:28,encodeKey:e=>tn.encode(rn(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>tn.encodeRange({gt:e?rn(e):null,lt:n?rn(n):null,gte:t?rn(t):null,lte:o?rn(o):null}),encodeValue:e=>cn.collection.encodeKey(e),encodeIndexKeys(e,n){const t=on(e,n),o=new Array(t.length);for(let n=0;n<t.length;n++){const r=t[n];o[n]=tn.encode([r.timestamp,e.discoveryPublicKey])}return o},reconstruct:(e,n)=>n,offset:nn.indexes.length,collection:nn};nn.indexes.push(cn);const ln=new e([e.BUFFER,e.BUFFER],{prefix:29});function dn(e){const n=[],t=e.key;if(void 0===t)return n;n.push(t);const o=e.responsePublicKey;return void 0===o||n.push(o),n}const sn=r("@local/writer-append/hyperdb#29"),un={name:"@local/writer-appends",id:29,version:0,encodeKey(e){const n=[e.key,e.responsePublicKey];return ln.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>ln.encodeRange({gt:e?dn(e):null,lt:n?dn(n):null,gte:t?dn(t):null,lte:o?dn(o):null}),encodeValue(e,n,o){c(e);const r={start:0,end:0,buffer:null};return sn.preencode(r,o),r.buffer=t.allocUnsafe(r.end),sn.encode(r,o),r.buffer},trigger:null,reconstruct:function(e,n,t){const o=ln.decode(n);c(e);const r={start:0,end:t.byteLength,buffer:t},l=sn.decode(r);return l.key=o[0],l.responsePublicKey=o[1],l},reconstructKey:function(e){const n=ln.decode(e);return{key:n[0],responsePublicKey:n[1]}},indexes:[],decodedVersion:0},an=new e([e.BUFFER],{prefix:30});function fn(e){const n=e.roomKey;return void 0===n?[]:[n]}const gn=r("@local/room-metadata/hyperdb#30"),yn={name:"@local/room-metadata",id:30,version:0,encodeKey(e){const n=[e.roomKey];return an.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>an.encodeRange({gt:e?fn(e):null,lt:n?fn(n):null,gte:t?fn(t):null,lte:o?fn(o):null}),encodeValue(e,n,o){c(e);const r={start:0,end:0,buffer:null};return gn.preencode(r,o),r.buffer=t.allocUnsafe(r.end),gn.encode(r,o),r.buffer},trigger:null,reconstruct:function(e,n,t){const o=an.decode(n);c(e);const r={start:0,end:t.byteLength,buffer:t},l=gn.decode(r);return l.roomKey=o[0],l},reconstructKey:function(e){return{roomKey:an.decode(e)[0]}},indexes:[],decodedVersion:0},bn=new e([],{prefix:31}),pn=r("@local/debug"),mn={name:"@local/debug",id:31,version:0,encodeKey:e=>bn.encode([]),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>bn.encodeRange({gt:e?[]:null,lt:n?[]:null,gte:t?[]:null,lte:o?[]:null}),encodeValue(e,n,o){c(e);const r={start:0,end:0,buffer:null};return pn.preencode(r,o),r.buffer=t.allocUnsafe(r.end),pn.encode(r,o),r.buffer},trigger:null,reconstruct:function(e,n,t){c(e);const o={start:0,end:t.byteLength,buffer:t};return pn.decode(o)},reconstructKey:function(e){return{}},indexes:[],decodedVersion:0},Kn=new e([e.BUFFER,e.BUFFER],{prefix:32}),vn=d.roomsByContactMap;function xn(e){const n=e.contact;return void 0===n?[]:[n]}const hn={name:"@local/rooms-by-contact",version:1,id:32,encodeKey:e=>Kn.encode(xn(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>Kn.encodeRange({gt:e?xn(e):null,lt:n?xn(n):null,gte:t?xn(t):null,lte:o?xn(o):null}),encodeValue:e=>hn.collection.encodeKey(e),encodeIndexKeys(e,n){const t=vn(e,n),o=new Array(t.length);for(let n=0;n<t.length;n++){const r=t[n];o[n]=Kn.encode([r.contact,e.roomKey])}return o},reconstruct:(e,n)=>n,offset:L.indexes.length,collection:L};L.indexes.push(hn);const Rn=new e([e.BUFFER],{prefix:33});function wn(e){const n=e.roomKey;return void 0===n?[]:[n]}const Un=r("@local/unread/hyperdb#33"),Vn={name:"@local/unreads",id:33,version:0,encodeKey(e){const n=[e.roomKey];return Rn.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>Rn.encodeRange({gt:e?wn(e):null,lt:n?wn(n):null,gte:t?wn(t):null,lte:o?wn(o):null}),encodeValue(e,n,o){c(e);const r={start:0,end:0,buffer:null};return Un.preencode(r,o),r.buffer=t.allocUnsafe(r.end),Un.encode(r,o),r.buffer},trigger:null,reconstruct:function(e,n,t){const o=Rn.decode(n);c(e);const r={start:0,end:t.byteLength,buffer:t},l=Un.decode(r);return l.roomKey=o[0],l},reconstructKey:function(e){return{roomKey:Rn.decode(e)[0]}},indexes:[],decodedVersion:0},Fn=new e([],{prefix:34}),kn=r("@local/hyperdht-record"),Bn={name:"@local/hyperdht",id:34,version:0,encodeKey:e=>Fn.encode([]),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>Fn.encodeRange({gt:e?[]:null,lt:n?[]:null,gte:t?[]:null,lte:o?[]:null}),encodeValue(e,n,o){c(e);const r={start:0,end:0,buffer:null};return kn.preencode(r,o),r.buffer=t.allocUnsafe(r.end),kn.encode(r,o),r.buffer},trigger:null,reconstruct:function(e,n,t){c(e);const o={start:0,end:t.byteLength,buffer:t};return kn.decode(o)},reconstructKey:function(e){return{}},indexes:[],decodedVersion:0},En=new e([e.UINT],{prefix:35});function In(e){const n=e.timestamp;return void 0===n?[]:[n]}const Tn=r("@local/error-record/hyperdb#35"),Ln={name:"@local/errors",id:35,version:0,encodeKey(e){const n=[e.timestamp];return En.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>En.encodeRange({gt:e?In(e):null,lt:n?In(n):null,gte:t?In(t):null,lte:o?In(o):null}),encodeValue(e,n,o){c(e);const r={start:0,end:0,buffer:null};return Tn.preencode(r,o),r.buffer=t.allocUnsafe(r.end),Tn.encode(r,o),r.buffer},trigger:null,reconstruct:function(e,n,t){const o=En.decode(n);c(e);const r={start:0,end:t.byteLength,buffer:t},l=Tn.decode(r);return l.timestamp=o[0],l},reconstructKey:function(e){return{timestamp:En.decode(e)[0]}},indexes:[],decodedVersion:0},Nn=new e([e.STRING,e.UINT],{prefix:36});function Dn(e){const n=[],t=e.code;if(void 0===t)return n;n.push(t);const o=e.timestamp;return void 0===o||n.push(o),n}const An={name:"@local/errors-by-code",version:0,id:36,encodeKey:e=>Nn.encode(Dn(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>Nn.encodeRange({gt:e?Dn(e):null,lt:n?Dn(n):null,gte:t?Dn(t):null,lte:o?Dn(o):null}),encodeValue:e=>An.collection.encodeKey(e),encodeIndexKeys:(e,n)=>[Nn.encode([e.code,e.timestamp])],reconstruct:(e,n)=>n,offset:Ln.indexes.length,collection:Ln};Ln.indexes.push(An);const Pn=new e([e.BUFFER],{prefix:37});function Mn(e){const n=e.roomKey;return void 0===n?[]:[n]}const On=r("@local/file-stats/hyperdb#37"),Cn={name:"@local/file-stats",id:37,version:2,encodeKey(e){const n=[e.roomKey];return Pn.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>Pn.encodeRange({gt:e?Mn(e):null,lt:n?Mn(n):null,gte:t?Mn(t):null,lte:o?Mn(o):null}),encodeValue(e,n,o){c(e);const r={start:0,end:2,buffer:null};return On.preencode(r,o),r.buffer=t.allocUnsafe(r.end),r.buffer[r.start++]=0,r.buffer[r.start++]=n,On.encode(r,o),r.buffer},trigger:null,reconstruct:function(e,t,o){const r=Pn.decode(t);c(e);const l={start:0,end:o.byteLength,buffer:o},d=n.uint.decode(l);if(0!==d)throw new Error("Unknown collection type: "+d);Cn.decodedVersion=n.uint.decode(l);const s=On.decode(l);return s.roomKey=r[0],s},reconstructKey:function(e){return{roomKey:Pn.decode(e)[0]}},indexes:[],decodedVersion:0},Gn=new e([e.UINT,e.BUFFER],{prefix:38}),Sn=d.roomsByFavoriteAndTimestampMap;function qn(e){const n=e.timestamp;return void 0===n?[]:[n]}const jn={name:"@local/rooms-by-favorite-and-timestamp",version:3,id:38,encodeKey:e=>Gn.encode(qn(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>Gn.encodeRange({gt:e?qn(e):null,lt:n?qn(n):null,gte:t?qn(t):null,lte:o?qn(o):null}),encodeValue:e=>jn.collection.encodeKey(e),encodeIndexKeys(e,n){const t=Sn(e,n),o=new Array(t.length);for(let n=0;n<t.length;n++){const r=t[n];o[n]=Gn.encode([r.timestamp,e.roomKey])}return o},reconstruct:(e,n)=>n,offset:L.indexes.length,collection:L};L.indexes.push(jn);const Wn=new e([e.UINT,e.BUFFER,e.UINT],{prefix:39});function zn(e){const n=[],t=e.lastAccessed;if(void 0===t)return n;n.push(t);const o=e.file?.pointer?.externalBlob?.key;if(void 0===o)return n;n.push(o);const r=e.file?.pointer?.externalBlob?.blob?.blockOffset;return void 0===r||n.push(r),n}const Hn={name:"@local/blob-files-by-last-accessed",version:4,id:39,encodeKey:e=>Wn.encode(zn(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>Wn.encodeRange({gt:e?zn(e):null,lt:n?zn(n):null,gte:t?zn(t):null,lte:o?zn(o):null}),encodeValue:e=>Hn.collection.encodeKey(e),encodeIndexKeys:(e,n)=>[Wn.encode([e.lastAccessed,e.file.pointer.externalBlob.key,e.file.pointer.externalBlob.blob.blockOffset])],reconstruct:(e,n)=>n,offset:Se.indexes.length,collection:Se};Se.indexes.push(Hn);const Jn=new e([e.UINT,e.BUFFER,e.STRING,e.UINT],{prefix:40});function Qn(e){const n=[],t=e.lastAccessed;if(void 0===t)return n;n.push(t);const o=e.file?.pointer?.externalDrive?.key;if(void 0===o)return n;n.push(o);const r=e.file?.pointer?.externalDrive?.path;if(void 0===r)return n;n.push(r);const c=e.file?.pointer?.externalDrive?.version;return void 0===c||n.push(c),n}const Xn={name:"@local/drive-files-by-last-accessed",version:4,id:40,encodeKey:e=>Jn.encode(Qn(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>Jn.encodeRange({gt:e?Qn(e):null,lt:n?Qn(n):null,gte:t?Qn(t):null,lte:o?Qn(o):null}),encodeValue:e=>Xn.collection.encodeKey(e),encodeIndexKeys:(e,n)=>[Jn.encode([e.lastAccessed,e.file.pointer.externalDrive.key,e.file.pointer.externalDrive.path,e.file.pointer.externalDrive.version])],reconstruct:(e,n)=>n,offset:ze.indexes.length,collection:ze};ze.indexes.push(Xn);const Yn=new e([],{prefix:41}),Zn=r("@local/file-gc-info"),$n={name:"@local/file-gc-info",id:41,version:4,encodeKey:e=>Yn.encode([]),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>Yn.encodeRange({gt:e?[]:null,lt:n?[]:null,gte:t?[]:null,lte:o?[]:null}),encodeValue(e,n,o){c(e);const r={start:0,end:2,buffer:null};return Zn.preencode(r,o),r.buffer=t.allocUnsafe(r.end),r.buffer[r.start++]=0,r.buffer[r.start++]=n,Zn.encode(r,o),r.buffer},trigger:null,reconstruct:function(e,t,o){c(e);const r={start:0,end:o.byteLength,buffer:o},l=n.uint.decode(r);if(0!==l)throw new Error("Unknown collection type: "+l);return $n.decodedVersion=n.uint.decode(r),Zn.decode(r)},reconstructKey:function(e){return{}},indexes:[],decodedVersion:0},_n=new e([],{prefix:42}),et=r("@local/environment-record"),nt={name:"@local/environment",id:42,version:5,encodeKey:e=>_n.encode([]),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>_n.encodeRange({gt:e?[]:null,lt:n?[]:null,gte:t?[]:null,lte:o?[]:null}),encodeValue(e,n,o){c(e);const r={start:0,end:2,buffer:null};return et.preencode(r,o),r.buffer=t.allocUnsafe(r.end),r.buffer[r.start++]=0,r.buffer[r.start++]=n,et.encode(r,o),r.buffer},trigger:null,reconstruct:function(e,t,o){c(e);const r={start:0,end:o.byteLength,buffer:o},l=n.uint.decode(r);if(0!==l)throw new Error("Unknown collection type: "+l);return nt.decodedVersion=n.uint.decode(r),et.decode(r)},reconstructKey:function(e){return{}},indexes:[],decodedVersion:0},tt=new e([],{prefix:43}),ot=r("@local/ota-actions"),rt={name:"@local/ota-actions",id:43,version:6,encodeKey:e=>tt.encode([]),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>tt.encodeRange({gt:e?[]:null,lt:n?[]:null,gte:t?[]:null,lte:o?[]:null}),encodeValue(e,n,o){c(e);const r={start:0,end:2,buffer:null};return ot.preencode(r,o),r.buffer=t.allocUnsafe(r.end),r.buffer[r.start++]=0,r.buffer[r.start++]=n,ot.encode(r,o),r.buffer},trigger:null,reconstruct:function(e,t,o){c(e);const r={start:0,end:o.byteLength,buffer:o},l=n.uint.decode(r);if(0!==l)throw new Error("Unknown collection type: "+l);return rt.decodedVersion=n.uint.decode(r),ot.decode(r)},reconstructKey:function(e){return{}},indexes:[],decodedVersion:0},ct=new e([e.BUFFER],{prefix:44});function lt(e){const n=e.deviceKey;return void 0===n?[]:[n]}const dt=r("@local/device-attestation/hyperdb#44"),st={name:"@local/device-attestations",id:44,version:6,encodeKey(e){const n=[e.deviceKey];return ct.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>ct.encodeRange({gt:e?lt(e):null,lt:n?lt(n):null,gte:t?lt(t):null,lte:o?lt(o):null}),encodeValue(e,n,o){c(e);const r={start:0,end:2,buffer:null};return dt.preencode(r,o),r.buffer=t.allocUnsafe(r.end),r.buffer[r.start++]=0,r.buffer[r.start++]=n,dt.encode(r,o),r.buffer},trigger:null,reconstruct:function(e,t,o){const r=ct.decode(t);c(e);const l={start:0,end:o.byteLength,buffer:o},d=n.uint.decode(l);if(0!==d)throw new Error("Unknown collection type: "+d);st.decodedVersion=n.uint.decode(l);const s=dt.decode(l);return s.deviceKey=r[0],s},reconstructKey:function(e){return{deviceKey:ct.decode(e)[0]}},indexes:[],decodedVersion:0},ut=new e([e.BUFFER],{prefix:45}),it=d.activeContactsMap;function at(e){const n=e.memberKey;return void 0===n?[]:[n]}const ft={name:"@local/active-contacts",version:7,id:45,encodeKey:e=>ut.encode(at(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>ut.encodeRange({gt:e?at(e):null,lt:n?at(n):null,gte:t?at(t):null,lte:o?at(o):null}),encodeValue:e=>ft.collection.encodeKey(e),encodeIndexKeys(e,n){const t=it(e,n),o=new Array(t.length);for(let e=0;e<t.length;e++){const n=t[e];o[e]=ut.encode([n.memberKey])}return o},reconstruct:(e,n)=>n,offset:Fe.indexes.length,collection:Fe};Fe.indexes.push(ft);const gt=new e([],{prefix:46}),yt=r("@local/hyperswarm-record"),bt={name:"@local/hyperswarm",id:46,version:8,encodeKey:e=>gt.encode([]),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>gt.encodeRange({gt:e?[]:null,lt:n?[]:null,gte:t?[]:null,lte:o?[]:null}),encodeValue(e,n,o){c(e);const r={start:0,end:2,buffer:null};return yt.preencode(r,o),r.buffer=t.allocUnsafe(r.end),r.buffer[r.start++]=0,r.buffer[r.start++]=n,yt.encode(r,o),r.buffer},trigger:null,reconstruct:function(e,t,o){c(e);const r={start:0,end:o.byteLength,buffer:o},l=n.uint.decode(r);if(0!==l)throw new Error("Unknown collection type: "+l);return bt.decodedVersion=n.uint.decode(r),yt.decode(r)},reconstructKey:function(e){return{}},indexes:[],decodedVersion:0},pt=new e([e.UINT,e.BUFFER],{prefix:47}),mt=d.roomsByActiveCallMap;function Kt(e){const n=e.timestamp;return void 0===n?[]:[n]}const vt={name:"@local/rooms-by-active-call",version:9,id:47,encodeKey:e=>pt.encode(Kt(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>pt.encodeRange({gt:e?Kt(e):null,lt:n?Kt(n):null,gte:t?Kt(t):null,lte:o?Kt(o):null}),encodeValue:e=>vt.collection.encodeKey(e),encodeIndexKeys(e,n){const t=mt(e,n),o=new Array(t.length);for(let n=0;n<t.length;n++){const r=t[n];o[n]=pt.encode([r.timestamp,e.roomKey])}return o},reconstruct:(e,n)=>n,offset:L.indexes.length,collection:L};L.indexes.push(vt);const xt=new e([e.BUFFER],{prefix:48});function ht(e){const n=e.roomKey;return void 0===n?[]:[n]}const Rt=r("@local/room-update/hyperdb#48"),wt={name:"@local/room-updates",id:48,version:10,encodeKey(e){const n=[e.roomKey];return xt.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>xt.encodeRange({gt:e?ht(e):null,lt:n?ht(n):null,gte:t?ht(t):null,lte:o?ht(o):null}),encodeValue(e,n,o){c(e);const r={start:0,end:2,buffer:null};return Rt.preencode(r,o),r.buffer=t.allocUnsafe(r.end),r.buffer[r.start++]=0,r.buffer[r.start++]=n,Rt.encode(r,o),r.buffer},trigger:null,reconstruct:function(e,t,o){const r=xt.decode(t);c(e);const l={start:0,end:o.byteLength,buffer:o},d=n.uint.decode(l);if(0!==d)throw new Error("Unknown collection type: "+d);wt.decodedVersion=n.uint.decode(l);const s=Rt.decode(l);return s.roomKey=r[0],s},reconstructKey:function(e){return{roomKey:xt.decode(e)[0]}},indexes:[],decodedVersion:0},Ut=new e([e.UINT,e.BUFFER],{prefix:49});function Vt(e){const n=[],t=e.timestamp;if(void 0===t)return n;n.push(t);const o=e.roomKey;return void 0===o||n.push(o),n}const Ft={name:"@local/unprocessed-rooms",version:10,id:49,encodeKey:e=>Ut.encode(Vt(e)),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>Ut.encodeRange({gt:e?Vt(e):null,lt:n?Vt(n):null,gte:t?Vt(t):null,lte:o?Vt(o):null}),encodeValue:e=>Ft.collection.encodeKey(e),encodeIndexKeys:(e,n)=>[Ut.encode([e.timestamp,e.roomKey])],reconstruct:(e,n)=>n,offset:wt.indexes.length,collection:wt};wt.indexes.push(Ft);const kt=new e([e.BUFFER],{prefix:50});function Bt(e){const n=e.roomKey;return void 0===n?[]:[n]}const Et=r("@local/autobee-migration/hyperdb#50"),It={name:"@local/autobee-migrations",id:50,version:10,encodeKey(e){const n=[e.roomKey];return kt.encode(n)},encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>kt.encodeRange({gt:e?Bt(e):null,lt:n?Bt(n):null,gte:t?Bt(t):null,lte:o?Bt(o):null}),encodeValue(e,n,o){c(e);const r={start:0,end:2,buffer:null};return Et.preencode(r,o),r.buffer=t.allocUnsafe(r.end),r.buffer[r.start++]=0,r.buffer[r.start++]=n,Et.encode(r,o),r.buffer},trigger:null,reconstruct:function(e,t,o){const r=kt.decode(t);c(e);const l={start:0,end:o.byteLength,buffer:o},d=n.uint.decode(l);if(0!==d)throw new Error("Unknown collection type: "+d);It.decodedVersion=n.uint.decode(l);const s=Et.decode(l);return s.roomKey=r[0],s},reconstructKey:function(e){return{roomKey:kt.decode(e)[0]}},indexes:[],decodedVersion:0},Tt=new e([],{prefix:51}),Lt=r("@local/pending-recovery"),Nt={name:"@local/pending-recovery",id:51,version:11,encodeKey:e=>Tt.encode([]),encodeKeyRange:({gt:e,lt:n,gte:t,lte:o}={})=>Tt.encodeRange({gt:e?[]:null,lt:n?[]:null,gte:t?[]:null,lte:o?[]:null}),encodeValue(e,n,o){c(e);const r={start:0,end:2,buffer:null};return Lt.preencode(r,o),r.buffer=t.allocUnsafe(r.end),r.buffer[r.start++]=0,r.buffer[r.start++]=n,Lt.encode(r,o),r.buffer},trigger:null,reconstruct:function(e,t,o){c(e);const r={start:0,end:o.byteLength,buffer:o},l=n.uint.decode(r);if(0!==l)throw new Error("Unknown collection type: "+l);return Nt.decodedVersion=n.uint.decode(r),Lt.decode(r)},reconstructKey:function(e){return{}},indexes:[],decodedVersion:0},Dt=[i,g,p,h,k,L,te,le,Ke,Re,Fe,De,Se,ze,nn,un,yn,mn,Vn,Bn,Ln,Cn,$n,nt,rt,st,bt,wt,It,Nt],At=[U,A,C,j,H,X,$,ie,ye,Ie,Me,Qe,Ze,cn,hn,An,jn,Hn,Xn,ft,vt,Ft];module.exports={versions:l,collections:Dt,indexes:At,resolveCollection:function(e){switch(e){case"@local/stats":return i;case"@local/migrations":return g;case"@local/room-migration-stats":return p;case"@local/room-migrations":return h;case"@local/identity":return k;case"@local/rooms":return L;case"@local/room-preferences":return te;case"@local/writers":return le;case"@local/members":return Ke;case"@local/devices":return Re;case"@local/contacts":return Fe;case"@local/tasks":return De;case"@local/blob-files":return Se;case"@local/drive-files":return ze;case"@local/background-sync":return nn;case"@local/writer-appends":return un;case"@local/room-metadata":return yn;case"@local/debug":return mn;case"@local/unreads":return Vn;case"@local/hyperdht":return Bn;case"@local/errors":return Ln;case"@local/file-stats":return Cn;case"@local/file-gc-info":return $n;case"@local/environment":return nt;case"@local/ota-actions":return rt;case"@local/device-attestations":return st;case"@local/hyperswarm":return bt;case"@local/room-updates":return wt;case"@local/autobee-migrations":return It;case"@local/pending-recovery":return Nt;default:return null}},resolveIndex:function(e){switch(e){case"@local/room-migrations-by-priority":return U;case"@local/rooms-by-discovery-key":return A;case"@local/rooms-by-timestamp":return C;case"@local/rooms-by-type-and-timestamp":return j;case"@local/rooms-by-wakeup-topic":return H;case"@local/rooms-by-mailbox":return X;case"@local/rooms-by-discovery":return $;case"@local/writers-by-wakeup-topic":return ie;case"@local/writers-by-room-key":return ye;case"@local/blocked-contacts":return Ie;case"@local/tasks-by-type":return Me;case"@local/blob-files-by-room":return Qe;case"@local/drive-files-by-room":return Ze;case"@local/background-sync-by-dirty":return cn;case"@local/rooms-by-contact":return hn;case"@local/errors-by-code":return An;case"@local/rooms-by-favorite-and-timestamp":return jn;case"@local/blob-files-by-last-accessed":return Hn;case"@local/drive-files-by-last-accessed":return Xn;case"@local/active-contacts":return ft;case"@local/rooms-by-active-call":return vt;case"@local/unprocessed-rooms":return Ft;default:return null}}};
@holepunchto/keet-core/schema/spec/local/hyperdb/messages.js +1 -1
……@@ -1 +1 @@
1const{c:e}=require("hyperschema/runtime");let d=34;const o={preencode(d,o){e.fixed32.preencode(d,o.key),e.uint.preencode(d,o.length)},encode(d,o){e.fixed32.encode(d,o.key),e.uint.encode(d,o.length)},decode:d=>({key:e.fixed32.decode(d),length:e.uint.decode(d)})},n={preencode(d,o){e.fixed32.preencode(d,o.key),e.uint.preencode(d,o.seq)},encode(d,o){e.fixed32.encode(d,o.key),e.uint.encode(d,o.seq)},decode:d=>({key:e.fixed32.decode(d),seq:e.uint.decode(d)})},c={preencode(d,o){e.fixed32.preencode(d,o.publicKey),e.fixed32.preencode(d,o.secretKey)},encode(d,o){e.fixed32.encode(d,o.publicKey),e.fixed32.encode(d,o.secretKey)},decode:d=>({publicKey:e.fixed32.decode(d),secretKey:e.fixed32.decode(d)})},r={preencode(d,o){e.fixed32.preencode(d,o.publicKey),e.fixed64.preencode(d,o.secretKey)},encode(d,o){e.fixed32.encode(d,o.publicKey),e.fixed64.encode(d,o.secretKey)},decode:d=>({publicKey:e.fixed32.decode(d),secretKey:e.fixed64.decode(d)})},t={preencode(d,o){e.fixed32.preencode(d,o.key),d.end++,o.encryptionKey&&e.buffer.preencode(d,o.encryptionKey),o.fastForwardTo&&e.fixed32.preencode(d,o.fastForwardTo)},encode(d,o){const n=(o.encryptionKey?1:0)|(o.fastForwardTo?2:0);e.fixed32.encode(d,o.key),e.uint.encode(d,n),o.encryptionKey&&e.buffer.encode(d,o.encryptionKey),o.fastForwardTo&&e.fixed32.encode(d,o.fastForwardTo)},decode(d){const o=e.fixed32.decode(d),n=e.uint.decode(d);return{key:o,encryptionKey:1&n?e.buffer.decode(d):null,fastForwardTo:2&n?e.fixed32.decode(d):null}}},i={preencode(d,o){e.uint.preencode(d,o.timestamp)},encode(d,o){e.uint.encode(d,o.timestamp)},decode:d=>({timestamp:e.uint.decode(d)})},a={preencode(d,o){e.uint.preencode(d,o.blockOffset),e.uint.preencode(d,o.blockLength),e.uint.preencode(d,o.byteOffset),e.uint.preencode(d,o.byteLength)},encode(d,o){e.uint.encode(d,o.blockOffset),e.uint.encode(d,o.blockLength),e.uint.encode(d,o.byteOffset),e.uint.encode(d,o.byteLength)},decode:d=>({blockOffset:e.uint.decode(d),blockLength:e.uint.decode(d),byteOffset:e.uint.decode(d),byteLength:e.uint.decode(d)})},s={preencode(d,o){e.uint.preencode(d,o.width),e.uint.preencode(d,o.height)},encode(d,o){e.uint.encode(d,o.width),e.uint.encode(d,o.height)},decode:d=>({width:e.uint.decode(d),height:e.uint.decode(d)})},l=e.frame(s),p={preencode(d,o){d.end++,o.name&&e.string.preencode(d,o.name),o.mimetype&&e.string.preencode(d,o.mimetype),o.dimensions&&l.preencode(d,o.dimensions),o.userdata&&e.buffer.preencode(d,o.userdata),o.duration&&e.uint.preencode(d,o.duration)},encode(d,o){const n=(o.name?1:0)|(o.mimetype?2:0)|(o.dimensions?4:0)|(o.userdata?8:0)|(o.duration?16:0)|(o.isPreview?32:0);e.uint.encode(d,n),o.name&&e.string.encode(d,o.name),o.mimetype&&e.string.encode(d,o.mimetype),o.dimensions&&l.encode(d,o.dimensions),o.userdata&&e.buffer.encode(d,o.userdata),o.duration&&e.uint.encode(d,o.duration)},decode(d){const o=e.uint.decode(d);return{name:1&o?e.string.decode(d):null,mimetype:2&o?e.string.decode(d):null,dimensions:4&o?l.decode(d):null,userdata:8&o?e.buffer.decode(d):null,duration:16&o?e.uint.decode(d):0,isPreview:!!(32&o)}}},u={preencode(d,o){e.fixed32.preencode(d,o.key),e.string.preencode(d,o.path),e.uint.preencode(d,o.version),e.uint.preencode(d,o.size)},encode(d,o){e.fixed32.encode(d,o.key),e.string.encode(d,o.path),e.uint.encode(d,o.version),e.uint.encode(d,o.size)},decode:d=>({key:e.fixed32.decode(d),path:e.string.decode(d),version:e.uint.decode(d),size:e.uint.decode(d)})},f={preencode(d,o){e.fixed32.preencode(d,o.key),a.preencode(d,o.blob)},encode(d,o){e.fixed32.encode(d,o.key),a.encode(d,o.blob)},decode:d=>({key:e.fixed32.decode(d),blob:a.decode(d)})},m=e.frame(f),y=e.frame(u),b={preencode(d,o){d.end++,o.inlined&&e.buffer.preencode(d,o.inlined),o.blob&&a.preencode(d,o.blob),o.externalBlob&&m.preencode(d,o.externalBlob),o.externalDrive&&y.preencode(d,o.externalDrive)},encode(d,o){const n=(o.inlined?1:0)|(o.blob?2:0)|(o.externalBlob?4:0)|(o.externalDrive?8:0);e.uint.encode(d,n),o.inlined&&e.buffer.encode(d,o.inlined),o.blob&&a.encode(d,o.blob),o.externalBlob&&m.encode(d,o.externalBlob),o.externalDrive&&y.encode(d,o.externalDrive)},decode(d){const o=e.uint.decode(d);return{inlined:1&o?e.buffer.decode(d):null,blob:2&o?a.decode(d):null,externalBlob:4&o?m.decode(d):null,externalDrive:8&o?y.decode(d):null}}},x=e.frame(b),v=e.frame(p),g={preencode(d,o){x.preencode(d,o.pointer),d.end++,o.metadata&&v.preencode(d,o.metadata),o.preview&&ns.preencode(d,o.preview),o.hash&&e.fixed32.preencode(d,o.hash)},encode(d,o){const n=(o.metadata?1:0)|(o.preview?2:0)|(o.hash?4:0);x.encode(d,o.pointer),e.uint.encode(d,n),o.metadata&&v.encode(d,o.metadata),o.preview&&ns.encode(d,o.preview),o.hash&&e.fixed32.encode(d,o.hash)},decode(d){const o=x.decode(d),n=e.uint.decode(d);return{pointer:o,metadata:1&n?v.decode(d):null,preview:2&n?ns.decode(d):null,hash:4&n?e.fixed32.decode(d):null}}},k=e.frame(g),K=k,h=k,w={preencode(e,d){e.end++,d.small&&k.preencode(e,d.small),d.medium&&K.preencode(e,d.medium),d.large&&h.preencode(e,d.large)},encode(d,o){const n=(o.small?1:0)|(o.medium?2:0)|(o.large?4:0);e.uint.encode(d,n),o.small&&k.encode(d,o.small),o.medium&&K.encode(d,o.medium),o.large&&h.encode(d,o.large)},decode(d){const o=e.uint.decode(d);return{small:1&o?k.decode(d):null,medium:2&o?K.decode(d):null,large:4&o?h.decode(d):null}}},R={preencode(e,d){e.end++},encode(d,o){const n=o.isDeleted?1:0;e.uint.encode(d,n)},decode:d=>({isDeleted:!!(1&e.uint.decode(d))})},P=e.frame(R),T=k,A={preencode(o,c){e.uint.preencode(o,c.id),n.preencode(o,c.oplog),P.preencode(o,c.status),T.preencode(o,c.file),o.end++,d>=22&&c.version&&e.uint.preencode(o,c.version)},encode(o,c){const r=d>=22&&c.version?1:0;e.uint.encode(o,c.id),n.encode(o,c.oplog),P.encode(o,c.status),T.encode(o,c.file),e.uint.encode(o,r),d>=22&&c.version&&e.uint.encode(o,c.version)},decode(o){const c=e.uint.decode(o),r=n.decode(o),t=P.decode(o),i=T.decode(o),a=o.start<o.end?e.uint.decode(o):0;return{id:c,oplog:r,status:t,file:i,version:d>=22&&1&a?e.uint.decode(o):0}}},M={preencode(e,d){e.end++},encode(d,o){const n=(o.isActive?1:0)|(o.isIndexing?2:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isActive:!!(1&o),isIndexing:!!(2&o)}}},I={preencode(o,n){const c=(n.isAdmin?1:0)|(n.isModerator?2:0)|(n.isPending?4:0)|(n.isActive?8:0)|(n.isMuted?16:0)|(n.isBanned?32:0)|(n.isShadowBanned?64:0)|(d>=19&&n.isRemoved?128:0);e.uint.preencode(o,c)},encode(o,n){const c=(n.isAdmin?1:0)|(n.isModerator?2:0)|(n.isPending?4:0)|(n.isActive?8:0)|(n.isMuted?16:0)|(n.isBanned?32:0)|(n.isShadowBanned?64:0)|(d>=19&&n.isRemoved?128:0);e.uint.encode(o,c)},decode(o){const n=e.uint.decode(o);return{isAdmin:!!(1&n),isModerator:!!(2&n),isPending:!!(4&n),isActive:!!(8&n),isMuted:!!(16&n),isBanned:!!(32&n),isShadowBanned:!!(64&n),isRemoved:d>=19&&!!(128&n)}}},S={preencode(e,d){e.end++},encode(d,o){const n=(o.isMuted?1:0)|(o.isBanned?2:0)|(o.isShadowBanned?4:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isMuted:!!(1&o),isBanned:!!(2&o),isShadowBanned:!!(4&o)}}},D={preencode(d,o){e.uint.preencode(d,o.version)},encode(d,o){e.uint.encode(d,o.version)},decode:d=>({version:e.uint.decode(d)})},C={preencode(d,o){e.uint.preencode(d,o.total),e.uint.preencode(d,o.active)},encode(d,o){e.uint.encode(d,o.total),e.uint.encode(d,o.active)},decode:d=>({total:e.uint.decode(d),active:e.uint.decode(d)})},L={preencode(d,o){e.uint.preencode(d,o.total),e.uint.preencode(d,o.active),e.uint.preencode(d,o.pending)},encode(d,o){e.uint.encode(d,o.total),e.uint.encode(d,o.active),e.uint.encode(d,o.pending)},decode:d=>({total:e.uint.decode(d),active:e.uint.decode(d),pending:e.uint.decode(d)})},j={preencode(o,n){e.uint.preencode(o,n.clock),e.uint.preencode(o,n.pinned),e.uint.preencode(o,n.threads),e.uint.preencode(o,n.timestamp),o.end++,d>=24&&n.flagsClock&&e.uint.preencode(o,n.flagsClock)},encode(o,n){const c=d>=24&&n.flagsClock?1:0;e.uint.encode(o,n.clock),e.uint.encode(o,n.pinned),e.uint.encode(o,n.threads),e.uint.encode(o,n.timestamp),e.uint.encode(o,c),d>=24&&n.flagsClock&&e.uint.encode(o,n.flagsClock)},decode(o){const n=e.uint.decode(o),c=e.uint.decode(o),r=e.uint.decode(o),t=e.uint.decode(o),i=o.start<o.end?e.uint.decode(o):0;return{clock:n,pinned:c,threads:r,timestamp:t,flagsClock:d>=24&&1&i?e.uint.decode(o):0}}},F={preencode(d,o){e.uint.preencode(d,o.clock)},encode(d,o){e.uint.encode(d,o.clock)},decode:d=>({clock:e.uint.decode(d)})},q=e.frame(C),B=e.frame(L),E=e.frame(j),V=e.frame(F),z={preencode(e,d){q.preencode(e,d.devices),B.preencode(e,d.members),E.preencode(e,d.chat),V.preencode(e,d.files)},encode(e,d){q.encode(e,d.devices),B.encode(e,d.members),E.encode(e,d.chat),V.encode(e,d.files)},decode:e=>({devices:q.decode(e),members:B.decode(e),chat:E.decode(e),files:V.decode(e)})},O={Default:1,Broadcast:2,DirectMessage:3},N={preencode(e,d){e.end++},encode(d,o){if(o>3)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},U={preencode(o,n){const c=(n.roomType?1:0)|(n.isExperimental?2:0)|(n.isJoiningDisabled?4:0)|(n.isAppendingDisabled?8:0)|(n.isCallingDisabled?16:0)|(n.isMembershipEventsDisabled?32:0)|(d>=28&&n.isAttachmentsDisabled?64:0)|(d>=28&&n.isLinksDisabled?128:0)|(d>=29&&n.buildType?256:0)|(d>=33&&n.isRoomInviteHidden?512:0);e.uint.preencode(o,c),n.roomType&&N.preencode(o,n.roomType),d>=29&&n.buildType&&xi.preencode(o,n.buildType)},encode(o,n){const c=(n.roomType?1:0)|(n.isExperimental?2:0)|(n.isJoiningDisabled?4:0)|(n.isAppendingDisabled?8:0)|(n.isCallingDisabled?16:0)|(n.isMembershipEventsDisabled?32:0)|(d>=28&&n.isAttachmentsDisabled?64:0)|(d>=28&&n.isLinksDisabled?128:0)|(d>=29&&n.buildType?256:0)|(d>=33&&n.isRoomInviteHidden?512:0);e.uint.encode(o,c),n.roomType&&N.encode(o,n.roomType),d>=29&&n.buildType&&xi.encode(o,n.buildType)},decode(o){const n=e.uint.decode(o);return{roomType:1&n?N.decode(o):0,isExperimental:!!(2&n),isJoiningDisabled:!!(4&n),isAppendingDisabled:!!(8&n),isCallingDisabled:!!(16&n),isMembershipEventsDisabled:!!(32&n),isAttachmentsDisabled:d>=28&&!!(64&n),isLinksDisabled:d>=28&&!!(128&n),buildType:d>=29&&256&n?xi.decode(o):null,isRoomInviteHidden:d>=33&&!!(512&n)}}},H=e.frame(D),J=e.frame(U),W={preencode(d,o){H.preencode(d,o.abi),J.preencode(d,o.settings),e.uint.preencode(d,o.creationTime)},encode(d,o){H.encode(d,o.abi),J.encode(d,o.settings),e.uint.encode(d,o.creationTime)},decode:d=>({abi:H.decode(d),settings:J.decode(d),creationTime:e.uint.decode(d)})},G={preencode(d,o){e.fixed32.preencode(d,o.seed)},encode(d,o){e.fixed32.encode(d,o.seed)},decode:d=>({seed:e.fixed32.decode(d)})},Q={preencode(d,o){c.preencode(d,o.mailboxKeyPair),r.preencode(d,o.discoveryKeyPair),e.fixed32.preencode(d,o.wakeupTopic),e.fixed32.preencode(d,o.swarmTopic)},encode(d,o){c.encode(d,o.mailboxKeyPair),r.encode(d,o.discoveryKeyPair),e.fixed32.encode(d,o.wakeupTopic),e.fixed32.encode(d,o.swarmTopic)},decode:d=>({mailboxKeyPair:c.decode(d),discoveryKeyPair:r.decode(d),wakeupTopic:e.fixed32.decode(d),swarmTopic:e.fixed32.decode(d)})},X=e.array(e.fixed32),Y={preencode(o,n){o.end++,n.title&&e.string.preencode(o,n.title),n.avatar&&cs.preencode(o,n.avatar),n.description&&e.string.preencode(o,n.description),d>=17&&n.supportedLanguages&&rs.preencode(o,n.supportedLanguages),d>=19&&n.blindPeers&&X.preencode(o,n.blindPeers)},encode(o,n){const c=(n.title?1:0)|(n.avatar?2:0)|(n.description?4:0)|(d>=17&&n.supportedLanguages?8:0)|(d>=19&&n.blindPeers?16:0);e.uint.encode(o,c),n.title&&e.string.encode(o,n.title),n.avatar&&cs.encode(o,n.avatar),n.description&&e.string.encode(o,n.description),d>=17&&n.supportedLanguages&&rs.encode(o,n.supportedLanguages),d>=19&&n.blindPeers&&X.encode(o,n.blindPeers)},decode(o){const n=e.uint.decode(o);return{title:1&n?e.string.decode(o):null,avatar:2&n?cs.decode(o):null,description:4&n?e.string.decode(o):null,supportedLanguages:d>=17&&8&n?rs.decode(o):null,blindPeers:d>=19&&16&n?X.decode(o):null}}},Z={preencode(d,o){e.fixed32.preencode(d,o.key)},encode(d,o){e.fixed32.encode(d,o.key)},decode:d=>({key:e.fixed32.decode(d)})},$=e.frame(i),_=e.frame(Z),ee={preencode(e,d){$.preencode(e,d.header),_.preencode(e,d.peer)},encode(e,d){$.encode(e,d.header),_.encode(e,d.peer)},decode:e=>({header:$.decode(e),peer:_.decode(e)})},de=$,oe={preencode(d,o){de.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){de.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:de.decode(d),key:e.fixed32.decode(d)})},ne={preencode(d,o){e.fixed32.preencode(d,o.memberKey),e.buffer.preencode(d,o.proof)},encode(d,o){e.fixed32.encode(d,o.memberKey),e.buffer.encode(d,o.proof)},decode:d=>({memberKey:e.fixed32.decode(d),proof:e.buffer.decode(d)})},ce={preencode(d,o){e.fixed32.preencode(d,o.id),e.buffer.preencode(d,o.response)},encode(d,o){e.fixed32.encode(d,o.id),e.buffer.encode(d,o.response)},decode:d=>({id:e.fixed32.decode(d),response:e.buffer.decode(d)})},re=e.frame(M),te=e.frame(ce),ie={preencode(d,o){e.fixed32.preencode(d,o.key),e.fixed32.preencode(d,o.memberKey),re.preencode(d,o.status),ts.preencode(d,o.profile),d.end++,o.invitation&&te.preencode(d,o.invitation)},encode(d,o){const n=o.invitation?1:0;e.fixed32.encode(d,o.key),e.fixed32.encode(d,o.memberKey),re.encode(d,o.status),ts.encode(d,o.profile),e.uint.encode(d,n),o.invitation&&te.encode(d,o.invitation)},decode:d=>({key:e.fixed32.decode(d),memberKey:e.fixed32.decode(d),status:re.decode(d),profile:ts.decode(d),invitation:1&e.uint.decode(d)?te.decode(d):null})},ae={preencode(d,o){e.uint.preencode(d,o.timestamp),d.end++,o.mailbox&&e.fixed32.preencode(d,o.mailbox),o.displayName&&e.string.preencode(d,o.displayName),o.avatar&&is.preencode(d,o.avatar),o.username&&e.string.preencode(d,o.username)},encode(d,o){const n=(o.mailbox?1:0)|(o.displayName?2:0)|(o.avatar?4:0)|(o.username?8:0);e.uint.encode(d,o.timestamp),e.uint.encode(d,n),o.mailbox&&e.fixed32.encode(d,o.mailbox),o.displayName&&e.string.encode(d,o.displayName),o.avatar&&is.encode(d,o.avatar),o.username&&e.string.encode(d,o.username)},decode(d){const o=e.uint.decode(d),n=e.uint.decode(d);return{timestamp:o,mailbox:1&n?e.fixed32.decode(d):null,displayName:2&n?e.string.decode(d):null,avatar:4&n?is.decode(d):null,username:8&n?e.string.decode(d):null}}},se={preencode(o,n){o.end++,n.swarmKey&&e.fixed32.preencode(o,n.swarmKey),n.name&&e.string.preencode(o,n.name),d>=29&&n.buildType&&xi.preencode(o,n.buildType)},encode(o,n){const c=(n.swarmKey?1:0)|(n.name?2:0)|(n.isMobile?4:0)|(d>=29&&n.buildType?8:0);e.uint.encode(o,c),n.swarmKey&&e.fixed32.encode(o,n.swarmKey),n.name&&e.string.encode(o,n.name),d>=29&&n.buildType&&xi.encode(o,n.buildType)},decode(o){const n=e.uint.decode(o);return{swarmKey:1&n?e.fixed32.decode(o):null,name:2&n?e.string.decode(o):null,isMobile:!!(4&n),buildType:d>=29&&8&n?xi.decode(o):null}}},le=e.frame(ae),pe={preencode(e,d){le.preencode(e,d.profile),ne.preencode(e,d.attestation)},encode(e,d){le.encode(e,d.profile),ne.encode(e,d.attestation)},decode:e=>({profile:le.decode(e),attestation:ne.decode(e)})},ue={preencode(e,d){as.preencode(e,d.profile),ne.preencode(e,d.attestation)},encode(e,d){as.encode(e,d.profile),ne.encode(e,d.attestation)},decode:e=>({profile:as.decode(e),attestation:ne.decode(e)})},fe={preencode(d,o){e.fixed32.preencode(d,o.id),e.buffer.preencode(d,o.data),e.buffer.preencode(d,o.signature)},encode(d,o){e.fixed32.encode(d,o.id),e.buffer.encode(d,o.data),e.buffer.encode(d,o.signature)},decode:d=>({id:e.fixed32.decode(d),data:e.buffer.decode(d),signature:e.buffer.decode(d)})},me={preencode(d,o){e.fixed32.preencode(d,o.devicePublicKey)},encode(d,o){e.fixed32.encode(d,o.devicePublicKey)},decode:d=>({devicePublicKey:e.fixed32.decode(d)})},ye={preencode(d,o){ne.preencode(d,o.privateProfileIdentity),e.buffer.preencode(d,o.deviceProof)},encode(d,o){ne.encode(d,o.privateProfileIdentity),e.buffer.encode(d,o.deviceProof)},decode:d=>({privateProfileIdentity:ne.decode(d),deviceProof:e.buffer.decode(d)})},be=e.frame(ue),xe=e.frame(pe),ve=e.frame(me),ge={preencode(d,o){e.fixed32.preencode(d,o.deviceKey),r.preencode(d,o.keyPair),be.preencode(d,o.device),xe.preencode(d,o.member),d.end++,o.identity&&ve.preencode(d,o.identity)},encode(d,o){const n=o.identity?1:0;e.fixed32.encode(d,o.deviceKey),r.encode(d,o.keyPair),be.encode(d,o.device),xe.encode(d,o.member),e.uint.encode(d,n),o.identity&&ve.encode(d,o.identity)},decode:d=>({deviceKey:e.fixed32.decode(d),keyPair:r.decode(d),device:be.decode(d),member:xe.decode(d),identity:1&e.uint.decode(d)?ve.decode(d):null})},ke=e.frame(ge),Ke={preencode(d,o){e.fixed32.preencode(d,o.id),ke.preencode(d,o.request),e.buffer.preencode(d,o.signature)},encode(d,o){e.fixed32.encode(d,o.id),ke.encode(d,o.request),e.buffer.encode(d,o.signature)},decode:d=>({id:e.fixed32.decode(d),request:ke.decode(d),signature:e.buffer.decode(d)})},he=be,we=xe,Re={preencode(e,d){he.preencode(e,d.device),e.end++,d.member&&we.preencode(e,d.member)},encode(d,o){const n=o.member?1:0;he.encode(d,o.device),e.uint.encode(d,n),o.member&&we.encode(d,o.member)},decode:d=>({device:he.decode(d),member:1&e.uint.decode(d)?we.decode(d):null})},Pe=e.frame(Ke),Te=e.frame(Re),Ae={preencode(e,d){e.end++,d.withInvitation&&Pe.preencode(e,d.withInvitation),d.withMemberProof&&Te.preencode(e,d.withMemberProof)},encode(d,o){const n=(o.withInvitation?1:0)|(o.withMemberProof?2:0);e.uint.encode(d,n),o.withInvitation&&Pe.encode(d,o.withInvitation),o.withMemberProof&&Te.encode(d,o.withMemberProof)},decode(d){const o=e.uint.decode(d);return{withInvitation:1&o?Pe.decode(d):null,withMemberProof:2&o?Te.decode(d):null}}},Me=e.frame(fe),Ie=e.frame(ye),Se={preencode(e,d){Me.preencode(e,d.signedKeys),e.end++,d.identity&&Ie.preencode(e,d.identity)},encode(d,o){const n=o.identity?1:0;Me.encode(d,o.signedKeys),e.uint.encode(d,n),o.identity&&Ie.encode(d,o.identity)},decode:d=>({signedKeys:Me.decode(d),identity:1&e.uint.decode(d)?Ie.decode(d):null})},De={preencode(o,n){o.end++,n.expiration&&e.uint.preencode(o,n.expiration),d>=29&&n.buildType&&xi.preencode(o,n.buildType)},encode(o,n){const c=(n.expiration?1:0)|(n.requiresConfirmation?2:0)|(n.canModerate?4:0)|(n.canAdmin?8:0)|(d>=29&&n.buildType?16:0);e.uint.encode(o,c),n.expiration&&e.uint.encode(o,n.expiration),d>=29&&n.buildType&&xi.encode(o,n.buildType)},decode(o){const n=e.uint.decode(o);return{expiration:1&n?e.uint.decode(o):0,requiresConfirmation:!!(2&n),canModerate:!!(4&n),canAdmin:!!(8&n),buildType:d>=29&&16&n?xi.decode(o):null}}},Ce=Me,Le=e.frame(De),je={preencode(d,n){e.fixed32.preencode(d,n.id),Ce.preencode(d,n.response),Le.preencode(d,n.metadata),d.end++,n.anchor&&o.preencode(d,n.anchor)},encode(d,n){const c=(n.anchor?1:0)|(n.isActive?2:0);e.fixed32.encode(d,n.id),Ce.encode(d,n.response),Le.encode(d,n.metadata),e.uint.encode(d,c),n.anchor&&o.encode(d,n.anchor)},decode(d){const n=e.fixed32.decode(d),c=Ce.decode(d),r=Le.decode(d),t=e.uint.decode(d);return{id:n,response:c,metadata:r,anchor:1&t?o.decode(d):null,isActive:!!(2&t)}}},Fe=$,qe=e.frame(je),Be={preencode(e,d){Fe.preencode(e,d.header),qe.preencode(e,d.invitation)},encode(e,d){Fe.encode(e,d.header),qe.encode(e,d.invitation)},decode:e=>({header:Fe.decode(e),invitation:qe.decode(e)})},Ee=$,Ve={preencode(d,o){Ee.preencode(d,o.header),e.fixed32.preencode(d,o.id)},encode(d,o){Ee.encode(d,o.header),e.fixed32.encode(d,o.id)},decode:d=>({header:Ee.decode(d),id:e.fixed32.decode(d)})},ze={preencode(d,n){e.fixed32.preencode(d,n.mailbox),e.fixed32.preencode(d,n.invitationSeed),o.preencode(d,n.anchor)},encode(d,n){e.fixed32.encode(d,n.mailbox),e.fixed32.encode(d,n.invitationSeed),o.encode(d,n.anchor)},decode:d=>({mailbox:e.fixed32.decode(d),invitationSeed:e.fixed32.decode(d),anchor:o.decode(d)})},Oe={preencode(d,n){e.fixed32.preencode(d,n.mailbox),e.fixed32.preencode(d,n.invitationSeed),o.preencode(d,n.anchor),e.fixed32.preencode(d,n.identityPublicKey)},encode(d,n){e.fixed32.encode(d,n.mailbox),e.fixed32.encode(d,n.invitationSeed),o.encode(d,n.anchor),e.fixed32.encode(d,n.identityPublicKey)},decode:d=>({mailbox:e.fixed32.decode(d),invitationSeed:e.fixed32.decode(d),anchor:o.decode(d),identityPublicKey:e.fixed32.decode(d)})},Ne={preencode(d,o){e.fixed32.preencode(d,o.mailbox)},encode(d,o){e.fixed32.encode(d,o.mailbox)},decode:d=>({mailbox:e.fixed32.decode(d)})},Ue=e.frame(ze),He=e.frame(Oe),Je=e.frame(Ne),We=e.array(e.ipv4Address),Ge={preencode(e,o){e.end++,o.room&&Ue.preencode(e,o.room),o.identity&&He.preencode(e,o.identity),o.contact&&Je.preencode(e,o.contact),d>=9&&o.readonly&&ss.preencode(e,o.readonly),d>=17&&o.additionalNodes&&We.preencode(e,o.additionalNodes),d>=29&&o.buildType&&xi.preencode(e,o.buildType)},encode(o,n){const c=(n.room?1:0)|(n.identity?2:0)|(n.contact?4:0)|(d>=9&&n.readonly?8:0)|(d>=17&&n.additionalNodes?16:0)|(d>=29&&n.buildType?32:0);e.uint.encode(o,c),n.room&&Ue.encode(o,n.room),n.identity&&He.encode(o,n.identity),n.contact&&Je.encode(o,n.contact),d>=9&&n.readonly&&ss.encode(o,n.readonly),d>=17&&n.additionalNodes&&We.encode(o,n.additionalNodes),d>=29&&n.buildType&&xi.encode(o,n.buildType)},decode(o){const n=e.uint.decode(o);return{room:1&n?Ue.decode(o):null,identity:2&n?He.decode(o):null,contact:4&n?Je.decode(o):null,readonly:d>=9&&8&n?ss.decode(o):null,additionalNodes:d>=17&&16&n?We.decode(o):null,buildType:d>=29&&32&n?xi.decode(o):null}}},Qe=$,Xe={preencode(d,o){Qe.preencode(d,o.header),e.buffer.preencode(d,o.blindRequest)},encode(d,o){Qe.encode(d,o.header),e.buffer.encode(d,o.blindRequest)},decode:d=>({header:Qe.decode(d),blindRequest:e.buffer.decode(d)})},Ye=$,Ze={preencode(o,n){Ye.preencode(o,n.header),o.end++,n.profile&&ls.preencode(o,n.profile),d>=34&&n.key&&e.fixed32.preencode(o,n.key)},encode(o,n){const c=(n.profile?1:0)|(d>=34&&n.key?2:0);Ye.encode(o,n.header),e.uint.encode(o,c),n.profile&&ls.encode(o,n.profile),d>=34&&n.key&&e.fixed32.encode(o,n.key)},decode(o){const n=Ye.decode(o),c=e.uint.decode(o);return{header:n,profile:1&c?ls.decode(o):null,key:d>=34&&2&c?e.fixed32.decode(o):null}}},$e={preencode(e,d){},encode(e,d){},decode:e=>({})},_e=$e,ed=ke,dd={preencode(d,o){e.fixed32.preencode(d,o.deviceKey),e.fixed32.preencode(d,o.id),ed.preencode(d,o.request)},encode(d,o){e.fixed32.encode(d,o.deviceKey),e.fixed32.encode(d,o.id),ed.encode(d,o.request)},decode:d=>({deviceKey:e.fixed32.decode(d),id:e.fixed32.decode(d),request:ed.decode(d)})},od=$,nd=Ie,cd={preencode(d,o){od.preencode(d,o.header),e.fixed32.preencode(d,o.deviceKey),d.end++,o.identity&&nd.preencode(d,o.identity)},encode(d,o){const n=o.identity?1:0;od.encode(d,o.header),e.fixed32.encode(d,o.deviceKey),e.uint.encode(d,n),o.identity&&nd.encode(d,o.identity)},decode:d=>({header:od.decode(d),deviceKey:e.fixed32.decode(d),identity:1&e.uint.decode(d)?nd.decode(d):null})},rd=$,td={preencode(d,o){rd.preencode(d,o.header),e.fixed32.preencode(d,o.deviceKey)},encode(d,o){rd.encode(d,o.header),e.fixed32.encode(d,o.deviceKey)},decode:d=>({header:rd.decode(d),deviceKey:e.fixed32.decode(d)})},id=e.frame(I),ad=le,sd={preencode(d,o){e.fixed32.preencode(d,o.key),id.preencode(d,o.status),ad.preencode(d,o.profile)},encode(d,o){e.fixed32.encode(d,o.key),id.encode(d,o.status),ad.encode(d,o.profile)},decode:d=>({key:e.fixed32.decode(d),status:id.decode(d),profile:ad.decode(d)})},ld=id,pd=le,ud={preencode(d,o){e.fixed32.preencode(d,o.key),ld.preencode(d,o.status),pd.preencode(d,o.profile),d.end++,o.proofs&&ps.preencode(d,o.proofs)},encode(d,o){const n=o.proofs?1:0;e.fixed32.encode(d,o.key),ld.encode(d,o.status),pd.encode(d,o.profile),e.uint.encode(d,n),o.proofs&&ps.encode(d,o.proofs)},decode:d=>({key:e.fixed32.decode(d),status:ld.decode(d),profile:pd.decode(d),proofs:1&e.uint.decode(d)?ps.decode(d):null})},fd={preencode(d,o){e.fixed32.preencode(d,o.key),d.end++,o.profileAttestation&&e.buffer.preencode(d,o.profileAttestation),o.latestReceipt&&e.buffer.preencode(d,o.latestReceipt)},encode(d,o){const n=(o.profileAttestation?1:0)|(o.latestReceipt?2:0);e.fixed32.encode(d,o.key),e.uint.encode(d,n),o.profileAttestation&&e.buffer.encode(d,o.profileAttestation),o.latestReceipt&&e.buffer.encode(d,o.latestReceipt)},decode(d){const o=e.fixed32.decode(d),n=e.uint.decode(d);return{key:o,profileAttestation:1&n?e.buffer.decode(d):null,latestReceipt:2&n?e.buffer.decode(d):null}}},md=$,yd=xe,bd={preencode(e,d){md.preencode(e,d.header),yd.preencode(e,d.member)},encode(e,d){md.encode(e,d.header),yd.encode(e,d.member)},decode:e=>({header:md.decode(e),member:yd.decode(e)})},xd=$,vd=e.frame(S),gd={preencode(d,o){xd.preencode(d,o.header),e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.key),vd.preencode(d,o.status)},encode(d,o){xd.encode(d,o.header),e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.key),vd.encode(d,o.status)},decode:d=>({header:xd.decode(d),memberKey:e.fixed32.decode(d),key:e.uint.decode(d),status:vd.decode(d)})},kd=$,Kd={preencode(d,o){kd.preencode(d,o.header),e.fixed32.preencode(d,o.key),d.end++},encode(d,o){const n=(o.isModerator?1:0)|(o.isAdmin?2:0);kd.encode(d,o.header),e.fixed32.encode(d,o.key),e.uint.encode(d,n)},decode(d){const o=kd.decode(d),n=e.fixed32.decode(d),c=e.uint.decode(d);return{header:o,key:n,isModerator:!!(1&c),isAdmin:!!(2&c)}}},hd=$,wd={preencode(d,o){hd.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){hd.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:hd.decode(d),key:e.fixed32.decode(d)})},Rd={preencode(d,o){e.fixed32.preencode(d,o.key),e.uint.preencode(d,o.mentions)},encode(d,o){e.fixed32.encode(d,o.key),e.uint.encode(d,o.mentions)},decode:d=>({key:e.fixed32.decode(d),mentions:e.uint.decode(d)})},Pd={preencode(d,o){d.end++,o.memberKey&&e.fixed32.preencode(d,o.memberKey)},encode(d,o){const n=o.memberKey?1:0;e.uint.encode(d,n),o.memberKey&&e.fixed32.encode(d,o.memberKey)},decode:d=>({memberKey:1&e.uint.decode(d)?e.fixed32.decode(d):null})},Td=Pd,Ad={preencode(d,o){d.end++,o.from&&e.string.preencode(d,o.from),o.to&&e.string.preencode(d,o.to)},encode(d,o){const n=(o.from?1:0)|(o.to?2:0);e.uint.encode(d,n),o.from&&e.string.encode(d,o.from),o.to&&e.string.encode(d,o.to)},decode(d){const o=e.uint.decode(d);return{from:1&o?e.string.decode(d):null,to:2&o?e.string.decode(d):null}}},Md=e.frame(Pd),Id=e.frame(Td),Sd=e.frame(Ad),Dd={preencode(o,n){const c=(n.memberJoined?1:0)|(n.memberLeft?2:0)|(n.titleChanged?4:0)|(n.callStarted?8:0)|(n.callHangup?16:0)|(n.callMissed?32:0)|(d>=4&&n.roomAvatarChanged?64:0)|(d>=4&&n.invitationCreated?128:0)|(d>=4&&n.memberRemoved?256:0)|(d>=27&&n.locationShared?512:0);e.uint.preencode(o,c),n.memberJoined&&Md.preencode(o,n.memberJoined),n.memberLeft&&Id.preencode(o,n.memberLeft),n.titleChanged&&Sd.preencode(o,n.titleChanged),d>=4&&n.memberRemoved&&us.preencode(o,n.memberRemoved),d>=27&&n.locationShared&&fs.preencode(o,n.locationShared)},encode(o,n){const c=(n.memberJoined?1:0)|(n.memberLeft?2:0)|(n.titleChanged?4:0)|(n.callStarted?8:0)|(n.callHangup?16:0)|(n.callMissed?32:0)|(d>=4&&n.roomAvatarChanged?64:0)|(d>=4&&n.invitationCreated?128:0)|(d>=4&&n.memberRemoved?256:0)|(d>=27&&n.locationShared?512:0);e.uint.encode(o,c),n.memberJoined&&Md.encode(o,n.memberJoined),n.memberLeft&&Id.encode(o,n.memberLeft),n.titleChanged&&Sd.encode(o,n.titleChanged),d>=4&&n.memberRemoved&&us.encode(o,n.memberRemoved),d>=27&&n.locationShared&&fs.encode(o,n.locationShared)},decode(o){const n=e.uint.decode(o);return{memberJoined:1&n?Md.decode(o):null,memberLeft:2&n?Id.decode(o):null,titleChanged:4&n?Sd.decode(o):null,callStarted:!!(8&n),callHangup:!!(16&n),callMissed:!!(32&n),roomAvatarChanged:d>=4&&!!(64&n),invitationCreated:d>=4&&!!(128&n),memberRemoved:d>=4&&256&n?us.decode(o):null,locationShared:d>=27&&512&n?fs.decode(o):null}}},Cd={preencode(e,o){e.end++,d>=27&&o.locationShared&&ms.preencode(e,o.locationShared)},encode(o,n){const c=(n.callStarted?1:0)|(n.callHangup?2:0)|(n.callMissed?4:0)|(d>=27&&n.locationShared?8:0);e.uint.encode(o,c),d>=27&&n.locationShared&&ms.encode(o,n.locationShared)},decode(o){const n=e.uint.decode(o);return{callStarted:!!(1&n),callHangup:!!(2&n),callMissed:!!(4&n),locationShared:d>=27&&8&n?ms.decode(o):null}}},Ld={preencode(d,o){e.uint.preencode(d,o.start),e.uint.preencode(d,o.length)},encode(d,o){e.uint.encode(d,o.start),e.uint.encode(d,o.length)},decode:d=>({start:e.uint.decode(d),length:e.uint.decode(d)})},jd=e.frame(Ld),Fd={preencode(d,o){jd.preencode(d,o.range),e.string.preencode(d,o.content)},encode(d,o){jd.encode(d,o.range),e.string.encode(d,o.content)},decode:d=>({range:jd.decode(d),content:e.string.decode(d)})},qd=jd,Bd={preencode(d,o){qd.preencode(d,o.range),e.fixed32.preencode(d,o.memberKey)},encode(d,o){qd.encode(d,o.range),e.fixed32.encode(d,o.memberKey)},decode:d=>({range:qd.decode(d),memberKey:e.fixed32.decode(d)})},Ed=k,Vd=e.array(e.uint),zd={preencode(o,n){o.end++,n.title&&e.string.preencode(o,n.title),n.description&&e.string.preencode(o,n.description),n.file&&Ed.preencode(o,n.file),d>=12&&n.files&&Vd.preencode(o,n.files)},encode(o,n){const c=(n.title?1:0)|(n.description?2:0)|(n.file?4:0)|(d>=12&&n.files?8:0);e.uint.encode(o,c),n.title&&e.string.encode(o,n.title),n.description&&e.string.encode(o,n.description),n.file&&Ed.encode(o,n.file),d>=12&&n.files&&Vd.encode(o,n.files)},decode(o){const n=e.uint.decode(o);return{title:1&n?e.string.decode(o):null,description:2&n?e.string.decode(o):null,file:4&n?Ed.decode(o):null,files:d>=12&&8&n?Vd.decode(o):null}}},Od=jd,Nd=e.frame(zd),Ud={preencode(d,o){Od.preencode(d,o.range),e.string.preencode(d,o.url),d.end++,o.preview&&Nd.preencode(d,o.preview)},encode(d,o){const n=o.preview?1:0;Od.encode(d,o.range),e.string.encode(d,o.url),e.uint.encode(d,n),o.preview&&Nd.encode(d,o.preview)},decode:d=>({range:Od.decode(d),url:e.string.decode(d),preview:1&e.uint.decode(d)?Nd.decode(d):null})},Hd=e.array(e.frame(Bd)),Jd=e.array(e.frame(Ud)),Wd=Jd,Gd=e.array(e.frame(Ld)),Qd=Gd,Xd=Gd,Yd=e.array(e.frame(Fd)),Zd=Gd,$d=Gd,_d={preencode(o,n){const c=(n.mention?1:0)|(n.httpLink?2:0)|(n.pearLink?4:0)|(n.bold?8:0)|(n.italic?16:0)|(n.code?32:0)|(n.emoji?64:0)|(n.codeBlock?128:0)|(n.strike?256:0)|(d>=17&&n.translation?512:0);e.uint.preencode(o,c),n.mention&&Hd.preencode(o,n.mention),n.httpLink&&Jd.preencode(o,n.httpLink),n.pearLink&&Wd.preencode(o,n.pearLink),n.bold&&Gd.preencode(o,n.bold),n.italic&&Qd.preencode(o,n.italic),n.code&&Xd.preencode(o,n.code),n.emoji&&Yd.preencode(o,n.emoji),n.codeBlock&&Zd.preencode(o,n.codeBlock),n.strike&&$d.preencode(o,n.strike),d>=17&&n.translation&&ys.preencode(o,n.translation)},encode(o,n){const c=(n.mention?1:0)|(n.httpLink?2:0)|(n.pearLink?4:0)|(n.bold?8:0)|(n.italic?16:0)|(n.code?32:0)|(n.emoji?64:0)|(n.codeBlock?128:0)|(n.strike?256:0)|(d>=17&&n.translation?512:0);e.uint.encode(o,c),n.mention&&Hd.encode(o,n.mention),n.httpLink&&Jd.encode(o,n.httpLink),n.pearLink&&Wd.encode(o,n.pearLink),n.bold&&Gd.encode(o,n.bold),n.italic&&Qd.encode(o,n.italic),n.code&&Xd.encode(o,n.code),n.emoji&&Yd.encode(o,n.emoji),n.codeBlock&&Zd.encode(o,n.codeBlock),n.strike&&$d.encode(o,n.strike),d>=17&&n.translation&&ys.encode(o,n.translation)},decode(o){const n=e.uint.decode(o);return{mention:1&n?Hd.decode(o):null,httpLink:2&n?Jd.decode(o):null,pearLink:4&n?Wd.decode(o):null,bold:8&n?Gd.decode(o):null,italic:16&n?Qd.decode(o):null,code:32&n?Xd.decode(o):null,emoji:64&n?Yd.decode(o):null,codeBlock:128&n?Zd.decode(o):null,strike:256&n?$d.decode(o):null,translation:d>=17&&512&n?ys.decode(o):null}}},eo=e.array(e.frame(g)),oo=e.frame(_d),no=e.frame(Cd),co={preencode(d,o){d.end++,o.text&&e.string.preencode(d,o.text),o.files&&eo.preencode(d,o.files),o.display&&oo.preencode(d,o.display),o.replyTo&&n.preencode(d,o.replyTo),o.parent&&n.preencode(d,o.parent),o.event&&no.preencode(d,o.event)},encode(o,c){const r=(c.text?1:0)|(c.files?2:0)|(c.display?4:0)|(c.replyTo?8:0)|(c.parent?16:0)|(c.event?32:0)|(d>=27&&c.forwarded?64:0);e.uint.encode(o,r),c.text&&e.string.encode(o,c.text),c.files&&eo.encode(o,c.files),c.display&&oo.encode(o,c.display),c.replyTo&&n.encode(o,c.replyTo),c.parent&&n.encode(o,c.parent),c.event&&no.encode(o,c.event)},decode(o){const c=e.uint.decode(o);return{text:1&c?e.string.decode(o):null,files:2&c?eo.decode(o):null,display:4&c?oo.decode(o):null,replyTo:8&c?n.decode(o):null,parent:16&c?n.decode(o):null,event:32&c?no.decode(o):null,forwarded:d>=27&&!!(64&c)}}},ro=Vd,to=oo,io={preencode(d,o){d.end++,o.text&&e.string.preencode(d,o.text),o.files&&ro.preencode(d,o.files),o.display&&to.preencode(d,o.display),o.replyTo&&n.preencode(d,o.replyTo),o.parent&&n.preencode(d,o.parent)},encode(o,c){const r=(c.text?1:0)|(c.files?2:0)|(c.display?4:0)|(c.replyTo?8:0)|(c.parent?16:0)|(d>=27&&c.forwarded?32:0);e.uint.encode(o,r),c.text&&e.string.encode(o,c.text),c.files&&ro.encode(o,c.files),c.display&&to.encode(o,c.display),c.replyTo&&n.encode(o,c.replyTo),c.parent&&n.encode(o,c.parent)},decode(o){const c=e.uint.decode(o);return{text:1&c?e.string.decode(o):null,files:2&c?ro.decode(o):null,display:4&c?to.decode(o):null,replyTo:8&c?n.decode(o):null,parent:16&c?n.decode(o):null,forwarded:d>=27&&!!(32&c)}}},ao=eo,so=oo,lo={preencode(d,o){d.end++,o.text&&e.string.preencode(d,o.text),o.files&&ao.preencode(d,o.files),o.display&&so.preencode(d,o.display),o.replyTo&&n.preencode(d,o.replyTo),o.parent&&n.preencode(d,o.parent)},encode(o,c){const r=(c.text?1:0)|(c.files?2:0)|(c.display?4:0)|(c.replyTo?8:0)|(c.parent?16:0)|(d>=27&&c.forwarded?32:0);e.uint.encode(o,r),c.text&&e.string.encode(o,c.text),c.files&&ao.encode(o,c.files),c.display&&so.encode(o,c.display),c.replyTo&&n.encode(o,c.replyTo),c.parent&&n.encode(o,c.parent)},decode(o){const c=e.uint.decode(o);return{text:1&c?e.string.decode(o):null,files:2&c?ao.decode(o):null,display:4&c?so.decode(o):null,replyTo:8&c?n.decode(o):null,parent:16&c?n.decode(o):null,forwarded:d>=27&&!!(32&c)}}},po={preencode(e,d){e.end++},encode(d,o){const n=(o.isEdited?1:0)|(o.isDeleted?2:0)|(o.isPinned?4:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isEdited:!!(1&o),isDeleted:!!(2&o),isPinned:!!(4&o)}}},uo={preencode(d,o){e.uint.preencode(d,o.thread),e.uint.preencode(d,o.index)},encode(d,o){e.uint.encode(d,o.thread),e.uint.encode(d,o.index)},decode:d=>({thread:e.uint.decode(d),index:e.uint.decode(d)})},fo=e.frame(z),mo={preencode(d,o){e.uint.preencode(d,o.id),e.uint.preencode(d,o.count),d.end++,o.parent&&n.preencode(d,o.parent),o.stats&&fo.preencode(d,o.stats)},encode(d,o){const c=(o.parent?1:0)|(o.stats?2:0);e.uint.encode(d,o.id),e.uint.encode(d,o.count),e.uint.encode(d,c),o.parent&&n.encode(d,o.parent),o.stats&&fo.encode(d,o.stats)},decode(d){const o=e.uint.decode(d),c=e.uint.decode(d),r=e.uint.decode(d);return{id:o,count:c,parent:1&r?n.decode(d):null,stats:2&r?fo.decode(d):null}}},yo=e.frame(po),bo=e.frame(io),xo=e.frame(Dd),vo={preencode(d,o){uo.preencode(d,o.id),n.preencode(d,o.oplog),e.uint.preencode(d,o.clock),e.uint.preencode(d,o.timestamp),d.end++,o.editedAt&&e.uint.preencode(d,o.editedAt),yo.preencode(d,o.status),o.message&&bo.preencode(d,o.message),o.event&&xo.preencode(d,o.event)},encode(d,o){const c=(o.editedAt?1:0)|(o.message?2:0)|(o.event?4:0);uo.encode(d,o.id),n.encode(d,o.oplog),e.uint.encode(d,o.clock),e.uint.encode(d,o.timestamp),e.uint.encode(d,c),o.editedAt&&e.uint.encode(d,o.editedAt),yo.encode(d,o.status),o.message&&bo.encode(d,o.message),o.event&&xo.encode(d,o.event)},decode(d){const o=uo.decode(d),c=n.decode(d),r=e.uint.decode(d),t=e.uint.decode(d),i=e.uint.decode(d);return{id:o,oplog:c,clock:r,timestamp:t,editedAt:1&i?e.uint.decode(d):0,status:yo.decode(d),message:2&i?bo.decode(d):null,event:4&i?xo.decode(d):null}}},go=yo,ko=e.frame(lo),Ko=xo,ho={preencode(d,o){uo.preencode(d,o.id),n.preencode(d,o.oplog),e.uint.preencode(d,o.clock),e.uint.preencode(d,o.timestamp),d.end++,o.editedAt&&e.uint.preencode(d,o.editedAt),go.preencode(d,o.status),o.message&&ko.preencode(d,o.message),o.event&&Ko.preencode(d,o.event)},encode(d,o){const c=(o.editedAt?1:0)|(o.message?2:0)|(o.event?4:0);uo.encode(d,o.id),n.encode(d,o.oplog),e.uint.encode(d,o.clock),e.uint.encode(d,o.timestamp),e.uint.encode(d,c),o.editedAt&&e.uint.encode(d,o.editedAt),go.encode(d,o.status),o.message&&ko.encode(d,o.message),o.event&&Ko.encode(d,o.event)},decode(d){const o=uo.decode(d),c=n.decode(d),r=e.uint.decode(d),t=e.uint.decode(d),i=e.uint.decode(d);return{id:o,oplog:c,clock:r,timestamp:t,editedAt:1&i?e.uint.decode(d):0,status:go.decode(d),message:2&i?ko.decode(d):null,event:4&i?Ko.decode(d):null}}},wo=$,Ro=e.frame(co),Po={preencode(e,d){wo.preencode(e,d.header),Ro.preencode(e,d.message)},encode(e,d){wo.encode(e,d.header),Ro.encode(e,d.message)},decode:e=>({header:wo.decode(e),message:Ro.decode(e)})},To=$,Ao={preencode(e,d){To.preencode(e,d.header),n.preencode(e,d.oplog)},encode(e,d){To.encode(e,d.header),n.encode(e,d.oplog)},decode:e=>({header:To.decode(e),oplog:n.decode(e)})},Mo=$,Io=Ro,So={preencode(e,d){Mo.preencode(e,d.header),n.preencode(e,d.oplog),Io.preencode(e,d.message)},encode(e,d){Mo.encode(e,d.header),n.encode(e,d.oplog),Io.encode(e,d.message)},decode:e=>({header:Mo.decode(e),oplog:n.decode(e),message:Io.decode(e)})},Do=$,Co={preencode(e,d){Do.preencode(e,d.header),n.preencode(e,d.oplog),e.end++},encode(d,o){const c=o.isPinned?1:0;Do.encode(d,o.header),n.encode(d,o.oplog),e.uint.encode(d,c)},decode:d=>({header:Do.decode(d),oplog:n.decode(d),isPinned:!!(1&e.uint.decode(d))})},Lo={preencode(d,o){uo.preencode(d,o.id),e.fixed32.preencode(d,o.sender),e.uint.preencode(d,o.clock),e.string.preencode(d,o.reaction)},encode(d,o){uo.encode(d,o.id),e.fixed32.encode(d,o.sender),e.uint.encode(d,o.clock),e.string.encode(d,o.reaction)},decode:d=>({id:uo.decode(d),sender:e.fixed32.decode(d),clock:e.uint.decode(d),reaction:e.string.decode(d)})},jo={preencode(d,o){e.string.preencode(d,o.text),e.uint.preencode(d,o.count)},encode(d,o){e.string.encode(d,o.text),e.uint.encode(d,o.count)},decode:d=>({text:e.string.decode(d),count:e.uint.decode(d)})},Fo=e.array(e.frame(jo)),qo={preencode(o,n){uo.preencode(o,n.id),e.uint.preencode(o,n.total),Fo.preencode(o,n.reactions),o.end++,d>=17&&n.editedAt&&e.uint.preencode(o,n.editedAt)},encode(o,n){const c=d>=17&&n.editedAt?1:0;uo.encode(o,n.id),e.uint.encode(o,n.total),Fo.encode(o,n.reactions),e.uint.encode(o,c),d>=17&&n.editedAt&&e.uint.encode(o,n.editedAt)},decode(o){const n=uo.decode(o),c=e.uint.decode(o),r=Fo.decode(o),t=o.start<o.end?e.uint.decode(o):0;return{id:n,total:c,reactions:r,editedAt:d>=17&&1&t?e.uint.decode(o):0}}},Bo=$,Eo={preencode(d,o){Bo.preencode(d,o.header),n.preencode(d,o.oplog),e.string.preencode(d,o.reaction)},encode(d,o){Bo.encode(d,o.header),n.encode(d,o.oplog),e.string.encode(d,o.reaction)},decode:d=>({header:Bo.decode(d),oplog:n.decode(d),reaction:e.string.decode(d)})},Vo=$,zo={preencode(d,o){Vo.preencode(d,o.header),n.preencode(d,o.oplog),e.string.preencode(d,o.reaction)},encode(d,o){Vo.encode(d,o.header),n.encode(d,o.oplog),e.string.encode(d,o.reaction)},decode:d=>({header:Vo.decode(d),oplog:n.decode(d),reaction:e.string.decode(d)})},Oo=$,No=e.frame(Y),Uo={preencode(d,o){Oo.preencode(d,o.header),e.uint.preencode(d,o.key),No.preencode(d,o.config)},encode(d,o){Oo.encode(d,o.header),e.uint.encode(d,o.key),No.encode(d,o.config)},decode:d=>({header:Oo.decode(d),key:e.uint.decode(d),config:No.decode(d)})},Ho={preencode(d,o){e.fixed32.preencode(d,o.memberKey),e.string.preencode(d,o.displayName),d.end++,o.avatar&&bs.preencode(d,o.avatar)},encode(d,o){const n=o.avatar?1:0;e.fixed32.encode(d,o.memberKey),e.string.encode(d,o.displayName),e.uint.encode(d,n),o.avatar&&bs.encode(d,o.avatar)},decode:d=>({memberKey:e.fixed32.decode(d),displayName:e.string.decode(d),avatar:1&e.uint.decode(d)?bs.decode(d):null})},Jo={preencode(d,o){e.fixed32.preencode(d,o.key),d.end++,o.username&&e.string.preencode(d,o.username)},encode(d,o){const n=o.username?1:0;e.fixed32.encode(d,o.key),e.uint.encode(d,n),o.username&&e.string.encode(d,o.username)},decode:d=>({key:e.fixed32.decode(d),username:1&e.uint.decode(d)?e.string.decode(d):null})},Wo=e.frame(Jo),Go={preencode(d,o){e.fixed32.preencode(d,o.publicKey),d.end++,o.discoveryCoreKey&&e.fixed32.preencode(d,o.discoveryCoreKey),o.userRegistry&&Wo.preencode(d,o.userRegistry)},encode(d,o){const n=(o.discoveryCoreKey?1:0)|(o.userRegistry?2:0);e.fixed32.encode(d,o.publicKey),e.uint.encode(d,n),o.discoveryCoreKey&&e.fixed32.encode(d,o.discoveryCoreKey),o.userRegistry&&Wo.encode(d,o.userRegistry)},decode(d){const o=e.fixed32.decode(d),n=e.uint.decode(d);return{publicKey:o,discoveryCoreKey:1&n?e.fixed32.decode(d):null,userRegistry:2&n?Wo.decode(d):null}}},Qo=$,Xo=e.frame(W),Yo=e.frame(G),Zo=No,$o=e.frame(Go),_o=be,en=e.array(e.frame(pe)),dn={preencode(e,d){Qo.preencode(e,d.header),Xo.preencode(e,d.digest),Yo.preencode(e,d.capabilities),e.end++,d.config&&Zo.preencode(e,d.config),d.identity&&$o.preencode(e,d.identity),d.bootstrapDevice&&_o.preencode(e,d.bootstrapDevice),d.initialMembers&&en.preencode(e,d.initialMembers)},encode(d,o){const n=(o.config?1:0)|(o.identity?2:0)|(o.bootstrapDevice?4:0)|(o.initialMembers?8:0);Qo.encode(d,o.header),Xo.encode(d,o.digest),Yo.encode(d,o.capabilities),e.uint.encode(d,n),o.config&&Zo.encode(d,o.config),o.identity&&$o.encode(d,o.identity),o.bootstrapDevice&&_o.encode(d,o.bootstrapDevice),o.initialMembers&&en.encode(d,o.initialMembers)},decode(d){const o=Qo.decode(d),n=Xo.decode(d),c=Yo.decode(d),r=e.uint.decode(d);return{header:o,digest:n,capabilities:c,config:1&r?Zo.decode(d):null,identity:2&r?$o.decode(d):null,bootstrapDevice:4&r?_o.decode(d):null,initialMembers:8&r?en.decode(d):null}}},on=$,nn={preencode(d,o){on.preencode(d,o.header),e.uint.preencode(d,o.version)},encode(d,o){on.encode(d,o.header),e.uint.encode(d,o.version)},decode:d=>({header:on.decode(d),version:e.uint.decode(d)})},cn=$,rn=J,tn={preencode(d,o){cn.preencode(d,o.header),e.uint.preencode(d,o.key),rn.preencode(d,o.settings)},encode(d,o){cn.encode(d,o.header),e.uint.encode(d,o.key),rn.encode(d,o.settings)},decode:d=>({header:cn.decode(d),key:e.uint.decode(d),settings:rn.decode(d)})},an={preencode(o,n){e.fixed32.preencode(o,n.memberKey),xs.preencode(o,n.status),o.end++,n.mailbox&&e.fixed32.preencode(o,n.mailbox),n.roomKey&&e.fixed32.preencode(o,n.roomKey),d>=32&&n.contactInfo&&vs.preencode(o,n.contactInfo),d>=32&&n.version&&e.uint.preencode(o,n.version),d>=34&&n.alias&&e.string.preencode(o,n.alias)},encode(o,n){const c=(n.mailbox?1:0)|(n.roomKey?2:0)|(d>=32&&n.contactInfo?4:0)|(d>=32&&n.version?8:0)|(d>=34&&n.alias?16:0);e.fixed32.encode(o,n.memberKey),xs.encode(o,n.status),e.uint.encode(o,c),n.mailbox&&e.fixed32.encode(o,n.mailbox),n.roomKey&&e.fixed32.encode(o,n.roomKey),d>=32&&n.contactInfo&&vs.encode(o,n.contactInfo),d>=32&&n.version&&e.uint.encode(o,n.version),d>=34&&n.alias&&e.string.encode(o,n.alias)},decode(o){const n=e.fixed32.decode(o),c=xs.decode(o),r=e.uint.decode(o);return{memberKey:n,status:c,mailbox:1&r?e.fixed32.decode(o):null,roomKey:2&r?e.fixed32.decode(o):null,contactInfo:d>=32&&4&r?vs.decode(o):null,version:d>=32&&8&r?e.uint.decode(o):0,alias:d>=34&&16&r?e.string.decode(o):null}}},sn={preencode(d,n){e.fixed32.preencode(d,n.roomKey),e.buffer.preencode(d,n.encryptionKey),e.fixed32.preencode(d,n.seed),o.preencode(d,n.initiator),e.fixed32.preencode(d,n.fastForwardTo)},encode(d,n){e.fixed32.encode(d,n.roomKey),e.buffer.encode(d,n.encryptionKey),e.fixed32.encode(d,n.seed),o.encode(d,n.initiator),e.fixed32.encode(d,n.fastForwardTo)},decode:d=>({roomKey:e.fixed32.decode(d),encryptionKey:e.buffer.decode(d),seed:e.fixed32.decode(d),initiator:o.decode(d),fastForwardTo:e.fixed32.decode(d)})},ln=e.array(e.frame(sn)),pn=X,un={preencode(e,d){ln.preencode(e,d.sharedRooms),pn.preencode(e,d.blockedContacts)},encode(e,d){ln.encode(e,d.sharedRooms),pn.encode(e,d.blockedContacts)},decode:e=>({sharedRooms:ln.decode(e),blockedContacts:pn.decode(e)})},fn=$o,mn={preencode(e,d){fn.preencode(e,d.identity)},encode(e,d){fn.encode(e,d.identity)},decode:e=>({identity:fn.decode(e)})},yn={preencode(d,o){e.uint.preencode(d,o.rooms),e.uint.preencode(d,o.contacts)},encode(d,o){e.uint.encode(d,o.rooms),e.uint.encode(d,o.contacts)},decode:d=>({rooms:e.uint.decode(d),contacts:e.uint.decode(d)})},bn={preencode(d,o){e.uint.preencode(d,o.rooms),e.uint.preencode(d,o.contactRequests)},encode(d,o){e.uint.encode(d,o.rooms),e.uint.encode(d,o.contactRequests)},decode:d=>({rooms:e.uint.decode(d),contactRequests:e.uint.decode(d)})},xn={preencode(d,o){e.buffer.preencode(d,o.entropy)},encode(d,o){e.buffer.encode(d,o.entropy)},decode:d=>({entropy:e.buffer.decode(d)})},vn={preencode(d,o){e.fixed32.preencode(d,o.publicKey),e.fixed32.preencode(d,o.devicePublicKey),e.fixed32.preencode(d,o.writerKey)},encode(d,o){e.fixed32.encode(d,o.publicKey),e.fixed32.encode(d,o.devicePublicKey),e.fixed32.encode(d,o.writerKey)},decode:d=>({publicKey:e.fixed32.decode(d),devicePublicKey:e.fixed32.decode(d),writerKey:e.fixed32.decode(d)})},gn=e.frame(vn),kn={preencode(n,c){e.fixed32.preencode(n,c.id),e.fixed32.preencode(n,c.invitationSeed),e.fixed32.preencode(n,c.mailbox),r.preencode(n,c.responseKeyPair),o.preencode(n,c.initiator),o.preencode(n,c.inviter),n.end++,c.identity&&gn.preencode(n,c.identity),d>=29&&c.buildType&&xi.preencode(n,c.buildType)},encode(n,c){const t=(c.identity?1:0)|(d>=29&&c.buildType?2:0);e.fixed32.encode(n,c.id),e.fixed32.encode(n,c.invitationSeed),e.fixed32.encode(n,c.mailbox),r.encode(n,c.responseKeyPair),o.encode(n,c.initiator),o.encode(n,c.inviter),e.uint.encode(n,t),c.identity&&gn.encode(n,c.identity),d>=29&&c.buildType&&xi.encode(n,c.buildType)},decode(n){const c=e.fixed32.decode(n),t=e.fixed32.decode(n),i=e.fixed32.decode(n),a=r.decode(n),s=o.decode(n),l=o.decode(n),p=e.uint.decode(n);return{id:c,invitationSeed:t,mailbox:i,responseKeyPair:a,initiator:s,inviter:l,identity:1&p?gn.decode(n):null,buildType:d>=29&&2&p?xi.decode(n):null}}},Kn=$,hn={preencode(d,o){Kn.preencode(d,o.header),e.buffer.preencode(d,o.blindResponse)},encode(d,o){Kn.encode(d,o.header),e.buffer.encode(d,o.blindResponse)},decode:d=>({header:Kn.decode(d),blindResponse:e.buffer.decode(d)})},wn=$,Rn=e.frame(kn),Pn={preencode(e,d){wn.preencode(e,d.header),Rn.preencode(e,d.invitation)},encode(e,d){wn.encode(e,d.header),Rn.encode(e,d.invitation)},decode:e=>({header:wn.decode(e),invitation:Rn.decode(e)})},Tn=$,An={preencode(d,o){Tn.preencode(d,o.header),e.fixed32.preencode(d,o.id)},encode(d,o){Tn.encode(d,o.header),e.fixed32.encode(d,o.id)},decode:d=>({header:Tn.decode(d),id:e.fixed32.decode(d)})},Mn={preencode(d,o){e.fixed32.preencode(d,o.publicKey),e.fixed32.preencode(d,o.devicePublicKey),d.end++,o.privateProfileKey&&e.fixed32.preencode(d,o.privateProfileKey),o.deviceKeyPair&&r.preencode(d,o.deviceKeyPair),e.buffer.preencode(d,o.deviceProof)},encode(d,o){const n=(o.privateProfileKey?1:0)|(o.deviceKeyPair?2:0);e.fixed32.encode(d,o.publicKey),e.fixed32.encode(d,o.devicePublicKey),e.uint.encode(d,n),o.privateProfileKey&&e.fixed32.encode(d,o.privateProfileKey),o.deviceKeyPair&&r.encode(d,o.deviceKeyPair),e.buffer.encode(d,o.deviceProof)},decode(d){const o=e.fixed32.decode(d),n=e.fixed32.decode(d),c=e.uint.decode(d);return{publicKey:o,devicePublicKey:n,privateProfileKey:1&c?e.fixed32.decode(d):null,deviceKeyPair:2&c?r.decode(d):null,deviceProof:e.buffer.decode(d)}}},In={preencode(e,d){e.end++},encode(o,n){const c=(n.isActive?1:0)|(n.isFullyMuted?2:0)|(n.isMentionsOnlyMuted?4:0)|(d>=14&&n.isReadOnly?8:0)|(d>=27&&n.isFavorite?16:0)|(d>=31&&n.isUnread?32:0);e.uint.encode(o,c)},decode(o){const n=e.uint.decode(o);return{isActive:!!(1&n),isFullyMuted:!!(2&n),isMentionsOnlyMuted:!!(4&n),isReadOnly:d>=14&&!!(8&n),isFavorite:d>=27&&!!(16&n),isUnread:d>=31&&!!(32&n)}}},Sn=e.frame(In),Dn=e.frame(Mn),Cn=gn,Ln={preencode(n,c){e.fixed32.preencode(n,c.roomKey),e.buffer.preencode(n,c.encryptionKey),e.fixed32.preencode(n,c.mailbox),Sn.preencode(n,c.status),e.uint.preencode(n,c.clock),n.end++,c.initiator&&o.preencode(n,c.initiator),c.fastForwardTo&&e.fixed32.preencode(n,c.fastForwardTo),c.identitySwap&&Dn.preencode(n,c.identitySwap),d>=9&&c.identitySwapV2&&Cn.preencode(n,c.identitySwapV2),d>=15&&c.contact&&e.fixed32.preencode(n,c.contact)},encode(n,c){const r=(c.initiator?1:0)|(c.fastForwardTo?2:0)|(c.identitySwap?4:0)|(d>=9&&c.identitySwapV2?8:0)|(d>=15&&c.contact?16:0);e.fixed32.encode(n,c.roomKey),e.buffer.encode(n,c.encryptionKey),e.fixed32.encode(n,c.mailbox),Sn.encode(n,c.status),e.uint.encode(n,c.clock),e.uint.encode(n,r),c.initiator&&o.encode(n,c.initiator),c.fastForwardTo&&e.fixed32.encode(n,c.fastForwardTo),c.identitySwap&&Dn.encode(n,c.identitySwap),d>=9&&c.identitySwapV2&&Cn.encode(n,c.identitySwapV2),d>=15&&c.contact&&e.fixed32.encode(n,c.contact)},decode(n){const c=e.fixed32.decode(n),r=e.buffer.decode(n),t=e.fixed32.decode(n),i=Sn.decode(n),a=e.uint.decode(n),s=e.uint.decode(n);return{roomKey:c,encryptionKey:r,mailbox:t,status:i,clock:a,initiator:1&s?o.decode(n):null,fastForwardTo:2&s?e.fixed32.decode(n):null,identitySwap:4&s?Dn.decode(n):null,identitySwapV2:d>=9&&8&s?Cn.decode(n):null,contact:d>=15&&16&s?e.fixed32.decode(n):null}}},jn=$,Fn={preencode(d,n){jn.preencode(d,n.header),e.fixed32.preencode(d,n.roomKey),e.buffer.preencode(d,n.encryptionKey),e.fixed32.preencode(d,n.mailbox),d.end++,n.fastForwardTo&&e.fixed32.preencode(d,n.fastForwardTo),n.initiator&&o.preencode(d,n.initiator),n.dm&&e.fixed32.preencode(d,n.dm)},encode(n,c){const r=(c.fastForwardTo?1:0)|(c.initiator?2:0)|(c.dm?4:0)|(d>=14&&c.isReadOnly?8:0);jn.encode(n,c.header),e.fixed32.encode(n,c.roomKey),e.buffer.encode(n,c.encryptionKey),e.fixed32.encode(n,c.mailbox),e.uint.encode(n,r),c.fastForwardTo&&e.fixed32.encode(n,c.fastForwardTo),c.initiator&&o.encode(n,c.initiator),c.dm&&e.fixed32.encode(n,c.dm)},decode(n){const c=jn.decode(n),r=e.fixed32.decode(n),t=e.buffer.decode(n),i=e.fixed32.decode(n),a=e.uint.decode(n);return{header:c,roomKey:r,encryptionKey:t,mailbox:i,fastForwardTo:1&a?e.fixed32.decode(n):null,initiator:2&a?o.decode(n):null,dm:4&a?e.fixed32.decode(n):null,isReadOnly:d>=14&&!!(8&a)}}},qn=$,Bn={preencode(d,o){qn.preencode(d,o.header),e.fixed32.preencode(d,o.discoveryKey)},encode(d,o){qn.encode(d,o.header),e.fixed32.encode(d,o.discoveryKey)},decode:d=>({header:qn.decode(d),discoveryKey:e.fixed32.decode(d)})},En=$,Vn=Sn,zn={preencode(d,o){En.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey),e.uint.preencode(d,o.key),Vn.preencode(d,o.status)},encode(d,o){En.encode(d,o.header),e.fixed32.encode(d,o.roomKey),e.uint.encode(d,o.key),Vn.encode(d,o.status)},decode:d=>({header:En.decode(d),roomKey:e.fixed32.decode(d),key:e.uint.decode(d),status:Vn.decode(d)})},On={preencode(e,d){e.end++},encode(o,n){const c=(n.isBlocked?1:0)|(d>=32&&n.isActive?2:0);e.uint.encode(o,c)},decode(o){const n=e.uint.decode(o);return{isBlocked:!!(1&n),isActive:d>=32&&!!(2&n)}}},Nn={preencode(o,n){e.fixed32.preencode(o,n.memberKey),e.uint.preencode(o,n.clock),gs.preencode(o,n.status),o.end++,n.mailbox&&e.fixed32.preencode(o,n.mailbox),n.roomKey&&e.fixed32.preencode(o,n.roomKey),d>=32&&n.contactInfo&&ks.preencode(o,n.contactInfo),d>=34&&n.alias&&e.string.preencode(o,n.alias)},encode(o,n){const c=(n.mailbox?1:0)|(n.roomKey?2:0)|(d>=32&&n.contactInfo?4:0)|(d>=34&&n.alias?8:0);e.fixed32.encode(o,n.memberKey),e.uint.encode(o,n.clock),gs.encode(o,n.status),e.uint.encode(o,c),n.mailbox&&e.fixed32.encode(o,n.mailbox),n.roomKey&&e.fixed32.encode(o,n.roomKey),d>=32&&n.contactInfo&&ks.encode(o,n.contactInfo),d>=34&&n.alias&&e.string.encode(o,n.alias)},decode(o){const n=e.fixed32.decode(o),c=e.uint.decode(o),r=gs.decode(o),t=e.uint.decode(o);return{memberKey:n,clock:c,status:r,mailbox:1&t?e.fixed32.decode(o):null,roomKey:2&t?e.fixed32.decode(o):null,contactInfo:d>=32&&4&t?ks.decode(o):null,alias:d>=34&&8&t?e.string.decode(o):null}}},Un=$,Hn=e.frame(an),Jn={preencode(e,d){Un.preencode(e,d.header),Hn.preencode(e,d.contact)},encode(e,d){Un.encode(e,d.header),Hn.encode(e,d.contact)},decode:e=>({header:Un.decode(e),contact:Hn.decode(e)})},Wn=$,Gn={preencode(d,o){Wn.preencode(d,o.header),e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.key),Ks.preencode(d,o.status)},encode(d,o){Wn.encode(d,o.header),e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.key),Ks.encode(d,o.status)},decode:d=>({header:Wn.decode(d),memberKey:e.fixed32.decode(d),key:e.uint.decode(d),status:Ks.decode(d)})},Qn=$,Xn={preencode(d,o){Qn.preencode(d,o.header),e.fixed32.preencode(d,o.memberKey)},encode(d,o){Qn.encode(d,o.header),e.fixed32.encode(d,o.memberKey)},decode:d=>({header:Qn.decode(d),memberKey:e.fixed32.decode(d)})},Yn={preencode(e,d){e.end++},encode(d,o){const n=(o.isPending?1:0)|(o.isAccepted?2:0)|(o.isRejected?4:0)|(o.isDiscarded?8:0)|(o.isSeen?16:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isPending:!!(1&o),isAccepted:!!(2&o),isRejected:!!(4&o),isDiscarded:!!(8&o),isSeen:!!(16&o)}}},Zn=xe,$n=e.frame(t),_n={preencode(d,o){Zn.preencode(d,o.sender),$n.preencode(d,o.keys),e.fixed32.preencode(d,o.mailbox),d.end++,o.message&&e.string.preencode(d,o.message)},encode(d,o){const n=o.message?1:0;Zn.encode(d,o.sender),$n.encode(d,o.keys),e.fixed32.encode(d,o.mailbox),e.uint.encode(d,n),o.message&&e.string.encode(d,o.message)},decode:d=>({sender:Zn.decode(d),keys:$n.decode(d),mailbox:e.fixed32.decode(d),message:1&e.uint.decode(d)?e.string.decode(d):null})},ec=e.frame(_n),dc={preencode(e,d){ec.preencode(e,d.body),ne.preencode(e,d.attestation)},encode(e,d){ec.encode(e,d.body),ne.encode(e,d.attestation)},decode:e=>({body:ec.decode(e),attestation:ne.decode(e)})},oc=le,nc=e.frame(Yn),cc=$n,rc={preencode(o,n){e.fixed32.preencode(o,n.memberKey),e.uint.preencode(o,n.clock),oc.preencode(o,n.sender),nc.preencode(o,n.status),cc.preencode(o,n.keys),e.fixed32.preencode(o,n.mailbox),o.end++,n.message&&e.string.preencode(o,n.message),d>=17&&n.sentAt&&e.uint.preencode(o,n.sentAt),d>=32&&n.contactInfo&&hs.preencode(o,n.contactInfo)},encode(o,n){const c=(n.message?1:0)|(d>=17&&n.sentAt?2:0)|(d>=32&&n.contactInfo?4:0);e.fixed32.encode(o,n.memberKey),e.uint.encode(o,n.clock),oc.encode(o,n.sender),nc.encode(o,n.status),cc.encode(o,n.keys),e.fixed32.encode(o,n.mailbox),e.uint.encode(o,c),n.message&&e.string.encode(o,n.message),d>=17&&n.sentAt&&e.uint.encode(o,n.sentAt),d>=32&&n.contactInfo&&hs.encode(o,n.contactInfo)},decode(o){const n=e.fixed32.decode(o),c=e.uint.decode(o),r=oc.decode(o),t=nc.decode(o),i=cc.decode(o),a=e.fixed32.decode(o),s=e.uint.decode(o);return{memberKey:n,clock:c,sender:r,status:t,keys:i,mailbox:a,message:1&s?e.string.decode(o):null,sentAt:d>=17&&2&s?e.uint.decode(o):0,contactInfo:d>=32&&4&s?hs.decode(o):null}}},tc=$,ic={preencode(d,o){tc.preencode(d,o.header),e.buffer.preencode(d,o.blindRequest)},encode(d,o){tc.encode(d,o.header),e.buffer.encode(d,o.blindRequest)},decode:d=>({header:tc.decode(d),blindRequest:e.buffer.decode(d)})},ac=$,sc=nc,lc={preencode(o,n){ac.preencode(o,n.header),e.fixed32.preencode(o,n.memberKey),e.uint.preencode(o,n.key),sc.preencode(o,n.status),o.end++,d>=15&&n.roomKey&&e.fixed32.preencode(o,n.roomKey)},encode(o,n){const c=d>=15&&n.roomKey?1:0;ac.encode(o,n.header),e.fixed32.encode(o,n.memberKey),e.uint.encode(o,n.key),sc.encode(o,n.status),e.uint.encode(o,c),d>=15&&n.roomKey&&e.fixed32.encode(o,n.roomKey)},decode(o){const n=ac.decode(o),c=e.fixed32.decode(o),r=e.uint.decode(o),t=sc.decode(o),i=o.start<o.end?e.uint.decode(o):0;return{header:n,memberKey:c,key:r,status:t,roomKey:d>=15&&1&i?e.fixed32.decode(o):null}}},pc={preencode(d,o){e.uint.preencode(d,o.timestamp),e.fixed32.preencode(d,o.key),e.fixed32.preencode(d,o.mailbox)},encode(d,o){e.uint.encode(d,o.timestamp),e.fixed32.encode(d,o.key),e.fixed32.encode(d,o.mailbox)},decode:d=>({version:e.uint.decode(d),timestamp:e.uint.decode(d),key:e.fixed32.decode(d),mailbox:e.fixed32.decode(d)})},uc={preencode(d,o){switch(e.uint.preencode(d,o.version),o.version){case 0:case 1:pc.preencode(d,o);break;default:throw new Error("Unsupported version")}},encode(d,o){switch(e.uint.encode(d,o.version),o.version){case 0:case 1:pc.encode(d,o);break;default:throw new Error("Unsupported version")}},decode(d){const o=d.start,n=e.uint.decode(d);switch(d.start=o,n){case 0:case 1:return pc.decode(d);default:throw new Error("Unsupported version")}}},fc={preencode(d,o){e.fixed32.preencode(d,o.discoveryPublicKey),e.uint.preencode(d,o.timestamp),d.end++,o.lastSynced&&e.uint.preencode(d,o.lastSynced)},encode(d,o){const n=(o.lastSynced?1:0)|(o.dirty?2:0);e.fixed32.encode(d,o.discoveryPublicKey),e.uint.encode(d,o.timestamp),e.uint.encode(d,n),o.lastSynced&&e.uint.encode(d,o.lastSynced)},decode(d){const o=e.fixed32.decode(d),n=e.uint.decode(d),c=e.uint.decode(d);return{discoveryPublicKey:o,timestamp:n,lastSynced:1&c?e.uint.decode(d):0,dirty:!!(2&c)}}},mc={preencode(d,o){e.uint.preencode(d,o.rooms),e.uint.preencode(d,o.activeRooms)},encode(d,o){e.uint.encode(d,o.rooms),e.uint.encode(d,o.activeRooms)},decode:d=>({rooms:e.uint.decode(d),activeRooms:e.uint.decode(d)})},yc=D,bc=X,xc={preencode(e,d){e.end++,d.blockedMembers&&bc.preencode(e,d.blockedMembers)},encode(d,o){const n=o.blockedMembers?1:0;e.uint.encode(d,n),o.blockedMembers&&bc.encode(d,o.blockedMembers)},decode:d=>({blockedMembers:1&e.uint.decode(d)?bc.decode(d):null})},vc=e.frame(Q),gc=e.frame(xc),kc={preencode(d,n){e.buffer.preencode(d,n.encryptionKey),e.fixed32.preencode(d,n.seed),vc.preencode(d,n.capabilities),o.preencode(d,n.initiator),e.fixed32.preencode(d,n.fastForwardTo),d.end++,n.privateProfile&&gc.preencode(d,n.privateProfile)},encode(d,n){const c=n.privateProfile?1:0;e.buffer.encode(d,n.encryptionKey),e.fixed32.encode(d,n.seed),vc.encode(d,n.capabilities),o.encode(d,n.initiator),e.fixed32.encode(d,n.fastForwardTo),e.uint.encode(d,c),n.privateProfile&&gc.encode(d,n.privateProfile)},decode:d=>({encryptionKey:e.buffer.decode(d),seed:e.fixed32.decode(d),capabilities:vc.decode(d),initiator:o.decode(d),fastForwardTo:e.fixed32.decode(d),privateProfile:1&e.uint.decode(d)?gc.decode(d):null})},Kc={preencode(d,o){d.end++,o.count&&e.uint.preencode(d,o.count)},encode(d,o){const n=o.count?1:0;e.uint.encode(d,n),o.count&&e.uint.encode(d,o.count)},decode:d=>({count:1&e.uint.decode(d)?e.uint.decode(d):0})},hc=e.frame(kc),wc={preencode(o,n){e.fixed32.preencode(o,n.roomKey),e.uint.preencode(o,n.priority),o.end++,n.v3&&hc.preencode(o,n.v3),d>=5&&n.timestamp&&e.uint.preencode(o,n.timestamp)},encode(o,n){const c=(n.v3?1:0)|(d>=3&&n.errored?2:0)|(d>=5&&n.timestamp?4:0);e.fixed32.encode(o,n.roomKey),e.uint.encode(o,n.priority),e.uint.encode(o,c),n.v3&&hc.encode(o,n.v3),d>=5&&n.timestamp&&e.uint.encode(o,n.timestamp)},decode(o){const n=e.fixed32.decode(o),c=e.uint.decode(o),r=e.uint.decode(o);return{roomKey:n,priority:c,v3:1&r?hc.decode(o):null,errored:d>=3&&!!(2&r),timestamp:d>=5&&4&r?e.uint.decode(o):0}}},Rc={preencode(e,d){e.end++},encode(d,o){const n=o.isConfirmed?1:0;e.uint.encode(d,n)},decode:d=>({isConfirmed:!!(1&e.uint.decode(d))})},Pc=e.frame(Rc),Tc=Dn,Ac={preencode(o,n){e.fixed32.preencode(o,n.publicKey),e.fixed32.preencode(o,n.privateProfileKey),r.preencode(o,n.deviceKeyPair),e.buffer.preencode(o,n.deviceProof),Pc.preencode(o,n.status),o.end++,n.entropy&&e.buffer.preencode(o,n.entropy),n.swap&&Tc.preencode(o,n.swap),d>=9&&n.swapV2&&ws.preencode(o,n.swapV2),d>=31&&n.proofShortenedAt&&e.uint.preencode(o,n.proofShortenedAt)},encode(o,n){const c=(n.entropy?1:0)|(n.swap?2:0)|(d>=9&&n.swapV2?4:0)|(d>=31&&n.proofShortenedAt?8:0);e.fixed32.encode(o,n.publicKey),e.fixed32.encode(o,n.privateProfileKey),r.encode(o,n.deviceKeyPair),e.buffer.encode(o,n.deviceProof),Pc.encode(o,n.status),e.uint.encode(o,c),n.entropy&&e.buffer.encode(o,n.entropy),n.swap&&Tc.encode(o,n.swap),d>=9&&n.swapV2&&ws.encode(o,n.swapV2),d>=31&&n.proofShortenedAt&&e.uint.encode(o,n.proofShortenedAt)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),t=r.decode(o),i=e.buffer.decode(o),a=Pc.decode(o),s=e.uint.decode(o);return{publicKey:n,privateProfileKey:c,deviceKeyPair:t,deviceProof:i,status:a,entropy:1&s?e.buffer.decode(o):null,swap:2&s?Tc.decode(o):null,swapV2:d>=9&&4&s?ws.decode(o):null,proofShortenedAt:d>=31&&8&s?e.uint.decode(o):0}}},Mc={RestoreIdentity:1,CreateRoom:2,LeaveRoom:3,ClearRoom:4,JoinRoomInvitation:5,JoinRoomKeys:6,JoinRoomResponse:7,SendContactRequest:8,TestFastTask:9,TestSlowTask:10,TestErrorTask:11},Ic={preencode(e,d){e.end++},encode(d,o){if(o>11)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},Sc={preencode(d,n){e.fixed32.preencode(d,n.roomKey),e.buffer.preencode(d,n.encryptionKey),d.end++,n.fastForwardTo&&e.fixed32.preencode(d,n.fastForwardTo),n.initiator&&o.preencode(d,n.initiator)},encode(d,n){const c=(n.fastForwardTo?1:0)|(n.initiator?2:0);e.fixed32.encode(d,n.roomKey),e.buffer.encode(d,n.encryptionKey),e.uint.encode(d,c),n.fastForwardTo&&e.fixed32.encode(d,n.fastForwardTo),n.initiator&&o.encode(d,n.initiator)},decode(d){const n=e.fixed32.decode(d),c=e.buffer.decode(d),r=e.uint.decode(d);return{roomKey:n,encryptionKey:c,fastForwardTo:1&r?e.fixed32.decode(d):null,initiator:2&r?o.decode(d):null}}},Dc=Rn,Cc={preencode(e,d){Dc.preencode(e,d.invitation)},encode(e,d){Dc.encode(e,d.invitation)},decode:e=>({invitation:Dc.decode(e)})},Lc={preencode(d,o){e.fixed32.preencode(d,o.mailbox),r.preencode(d,o.keyPair),e.buffer.preencode(d,o.response)},encode(d,o){e.fixed32.encode(d,o.mailbox),r.encode(d,o.keyPair),e.buffer.encode(d,o.response)},decode:d=>({mailbox:e.fixed32.decode(d),keyPair:r.decode(d),response:e.buffer.decode(d)})},jc=Z,Fc={preencode(d,n){e.fixed32.preencode(d,n.roomKey),e.buffer.preencode(d,n.encryptionKey),d.end++,n.fastForwardTo&&e.fixed32.preencode(d,n.fastForwardTo),n.initiator&&o.preencode(d,n.initiator),n.mailbox&&e.fixed32.preencode(d,n.mailbox)},encode(d,n){const c=(n.fastForwardTo?1:0)|(n.initiator?2:0)|(n.mailbox?4:0);e.fixed32.encode(d,n.roomKey),e.buffer.encode(d,n.encryptionKey),e.uint.encode(d,c),n.fastForwardTo&&e.fixed32.encode(d,n.fastForwardTo),n.initiator&&o.encode(d,n.initiator),n.mailbox&&e.fixed32.encode(d,n.mailbox)},decode(d){const n=e.fixed32.decode(d),c=e.buffer.decode(d),r=e.uint.decode(d);return{roomKey:n,encryptionKey:c,fastForwardTo:1&r?e.fixed32.decode(d):null,initiator:2&r?o.decode(d):null,mailbox:4&r?e.fixed32.decode(d):null}}},qc=e.frame(Fc),Bc={preencode(e,d){qc.preencode(e,d.keys)},encode(e,d){qc.encode(e,d.keys)},decode:e=>({keys:qc.decode(e)})},Ec=e.frame(dn),Vc={preencode(d,n){e.fixed32.preencode(d,n.roomKey),e.buffer.preencode(d,n.encryptionKey),d.end++,n.fastForwardTo&&e.fixed32.preencode(d,n.fastForwardTo),n.initiator&&o.preencode(d,n.initiator),n.mailbox&&e.fixed32.preencode(d,n.mailbox),n.keyPair&&r.preencode(d,n.keyPair),n.genesis&&Ec.preencode(d,n.genesis)},encode(d,n){const c=(n.fastForwardTo?1:0)|(n.initiator?2:0)|(n.mailbox?4:0)|(n.keyPair?8:0)|(n.genesis?16:0)|(n.isPrivateProfile?32:0);e.fixed32.encode(d,n.roomKey),e.buffer.encode(d,n.encryptionKey),e.uint.encode(d,c),n.fastForwardTo&&e.fixed32.encode(d,n.fastForwardTo),n.initiator&&o.encode(d,n.initiator),n.mailbox&&e.fixed32.encode(d,n.mailbox),n.keyPair&&r.encode(d,n.keyPair),n.genesis&&Ec.encode(d,n.genesis)},decode(d){const n=e.fixed32.decode(d),c=e.buffer.decode(d),t=e.uint.decode(d);return{roomKey:n,encryptionKey:c,fastForwardTo:1&t?e.fixed32.decode(d):null,initiator:2&t?o.decode(d):null,mailbox:4&t?e.fixed32.decode(d):null,keyPair:8&t?r.decode(d):null,genesis:16&t?Ec.decode(d):null,isPrivateProfile:!!(32&t)}}},zc={preencode(d,o){e.fixed32.preencode(d,o.roomKey),d.end++},encode(d,o){const n=o.isGossiped?1:0;e.fixed32.encode(d,o.roomKey),e.uint.encode(d,n)},decode:d=>({roomKey:e.fixed32.decode(d),isGossiped:!!(1&e.uint.decode(d))})},Oc={preencode(d,o){e.fixed32.preencode(d,o.roomKey)},encode(d,o){e.fixed32.encode(d,o.roomKey)},decode:d=>({roomKey:e.fixed32.decode(d)})},Nc={preencode(d,o){e.string.preencode(d,o.mnemonic),d.end++,o.profileDiscoveryTimeout&&e.uint.preencode(d,o.profileDiscoveryTimeout)},encode(d,o){const n=(o.profileDiscoveryTimeout?1:0)|(o.recover?2:0);e.string.encode(d,o.mnemonic),e.uint.encode(d,n),o.profileDiscoveryTimeout&&e.uint.encode(d,o.profileDiscoveryTimeout)},decode(d){const o=e.string.decode(d),n=e.uint.decode(d);return{mnemonic:o,profileDiscoveryTimeout:1&n?e.uint.decode(d):0,recover:!!(2&n)}}},Uc={preencode(o,n){e.fixed32.preencode(o,n.roomKey),e.fixed32.preencode(o,n.memberKey),o.end++,n.message&&e.string.preencode(o,n.message),d>=6&&n.contactInfo&&Rs.preencode(o,n.contactInfo)},encode(o,n){const c=(n.message?1:0)|(d>=6&&n.contactInfo?2:0);e.fixed32.encode(o,n.roomKey),e.fixed32.encode(o,n.memberKey),e.uint.encode(o,c),n.message&&e.string.encode(o,n.message),d>=6&&n.contactInfo&&Rs.encode(o,n.contactInfo)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),r=e.uint.decode(o);return{roomKey:n,memberKey:c,message:1&r?e.string.decode(o):null,contactInfo:d>=6&&2&r?Rs.decode(o):null}}},Hc={preencode(d,o){e.fixed32.preencode(d,o.key),d.end++},encode(d,o){const n=o.isPrivateProfile?1:0;e.fixed32.encode(d,o.key),e.uint.encode(d,n)},decode:d=>({key:e.fixed32.decode(d),isPrivateProfile:!!(1&e.uint.decode(d))})},Jc=e.frame(Nc),Wc=e.frame(Vc),Gc=e.frame(zc),Qc=e.frame(Oc),Xc=e.frame(Cc),Yc=e.frame(Bc),Zc=e.frame(Lc),$c=e.frame(Uc),_c=e.frame(Hc),er={preencode(d,o){const n=(o.restoreIdentity?1:0)|(o.createRoom?2:0)|(o.leaveRoom?4:0)|(o.clearRoom?8:0)|(o.joinRoomInvitation?16:0)|(o.joinRoomKeys?32:0)|(o.joinRoomResponse?64:0)|(o.sendContactRequest?128:0)|(o.migrateV2Room?256:0);e.fixed32.preencode(d,o.discoveryKey),e.uint.preencode(d,o.priority),e.uint.preencode(d,o.timestamp),e.uint.preencode(d,o.type),e.uint.preencode(d,n),o.restoreIdentity&&Jc.preencode(d,o.restoreIdentity),o.createRoom&&Wc.preencode(d,o.createRoom),o.leaveRoom&&Gc.preencode(d,o.leaveRoom),o.clearRoom&&Qc.preencode(d,o.clearRoom),o.joinRoomInvitation&&Xc.preencode(d,o.joinRoomInvitation),o.joinRoomKeys&&Yc.preencode(d,o.joinRoomKeys),o.joinRoomResponse&&Zc.preencode(d,o.joinRoomResponse),o.sendContactRequest&&$c.preencode(d,o.sendContactRequest),o.migrateV2Room&&_c.preencode(d,o.migrateV2Room)},encode(d,o){const n=(o.restoreIdentity?1:0)|(o.createRoom?2:0)|(o.leaveRoom?4:0)|(o.clearRoom?8:0)|(o.joinRoomInvitation?16:0)|(o.joinRoomKeys?32:0)|(o.joinRoomResponse?64:0)|(o.sendContactRequest?128:0)|(o.migrateV2Room?256:0);e.fixed32.encode(d,o.discoveryKey),e.uint.encode(d,o.priority),e.uint.encode(d,o.timestamp),e.uint.encode(d,o.type),e.uint.encode(d,n),o.restoreIdentity&&Jc.encode(d,o.restoreIdentity),o.createRoom&&Wc.encode(d,o.createRoom),o.leaveRoom&&Gc.encode(d,o.leaveRoom),o.clearRoom&&Qc.encode(d,o.clearRoom),o.joinRoomInvitation&&Xc.encode(d,o.joinRoomInvitation),o.joinRoomKeys&&Yc.encode(d,o.joinRoomKeys),o.joinRoomResponse&&Zc.encode(d,o.joinRoomResponse),o.sendContactRequest&&$c.encode(d,o.sendContactRequest),o.migrateV2Room&&_c.encode(d,o.migrateV2Room)},decode(d){const o=e.fixed32.decode(d),n=e.uint.decode(d),c=e.uint.decode(d),r=e.uint.decode(d),t=e.uint.decode(d);return{discoveryKey:o,priority:n,timestamp:c,type:r,restoreIdentity:1&t?Jc.decode(d):null,createRoom:2&t?Wc.decode(d):null,leaveRoom:4&t?Gc.decode(d):null,clearRoom:8&t?Qc.decode(d):null,joinRoomInvitation:16&t?Xc.decode(d):null,joinRoomKeys:32&t?Yc.decode(d):null,joinRoomResponse:64&t?Zc.decode(d):null,sendContactRequest:128&t?$c.decode(d):null,migrateV2Room:256&t?_c.decode(d):null}}},dr=qe,or={preencode(d,o){e.buffer.preencode(d,o.seed),dr.preencode(d,o.invitation)},encode(d,o){e.buffer.encode(d,o.seed),dr.encode(d,o.invitation)},decode:d=>({seed:e.buffer.decode(d),invitation:dr.decode(d)})},nr={preencode(e,d){e.end++},encode(o,n){const c=(n.isWritable?1:0)|(n.isReadable?2:0)|(n.isPrivateProfile?4:0)|(d>=8&&n.isRemoved?8:0);e.uint.encode(o,c)},decode(o){const n=e.uint.decode(o);return{isWritable:!!(1&n),isReadable:!!(2&n),isPrivateProfile:!!(4&n),isRemoved:d>=8&&!!(8&n)}}},cr={preencode(d,o){e.uint.preencode(d,o.creation),e.uint.preencode(d,o.latestSync),e.uint.preencode(d,o.latestChatMessage)},encode(d,o){e.uint.encode(d,o.creation),e.uint.encode(d,o.latestSync),e.uint.encode(d,o.latestChatMessage)},decode:d=>({creation:e.uint.decode(d),latestSync:e.uint.decode(d),latestChatMessage:e.uint.decode(d)})},rr=Xo,tr=fo,ir=e.frame(cr),ar=vc,sr=e.frame(nr),lr=e.frame(ie),pr=e.frame(ud),ur=No,fr=$o,mr=e.frame(ho),yr=X,br=e.frame(sd),xr=Sn,vr={preencode(o,n){const c=(n.selfDevice?1:0)|(n.selfMember?2:0)|(n.config?4:0)|(n.identity?8:0)|(n.lastMessage?16:0)|(n.dm?32:0)|(d>=19&&n.readLengths?64:0)|(d>=19&&n.lastMember?128:0)|(d>=21&&n.version?256:0)|(d>=27&&n.preferences?512:0)|(d>=28&&n.activeCall?1024:0)|(d>=32&&n.lastMessageLabels?2048:0)|(d>=33&&n.settings?4096:0);e.fixed32.preencode(o,n.roomKey),e.fixed32.preencode(o,n.discoveryKey),e.buffer.preencode(o,n.encryptionKey),rr.preencode(o,n.digest),tr.preencode(o,n.stats),ir.preencode(o,n.timestamps),e.uint.preencode(o,n.fork),e.uint.preencode(o,n.length),e.fixed32.preencode(o,n.seed),ar.preencode(o,n.capabilities),sr.preencode(o,n.status),e.uint.preencode(o,c),n.selfDevice&&lr.preencode(o,n.selfDevice),n.selfMember&&pr.preencode(o,n.selfMember),n.config&&ur.preencode(o,n.config),n.identity&&fr.preencode(o,n.identity),n.lastMessage&&mr.preencode(o,n.lastMessage),n.dm&&yr.preencode(o,n.dm),d>=19&&n.readLengths&&Ps.preencode(o,n.readLengths),d>=19&&n.lastMember&&br.preencode(o,n.lastMember),d>=21&&n.version&&e.uint.preencode(o,n.version),d>=27&&n.preferences&&xr.preencode(o,n.preferences),d>=28&&n.activeCall&&Ts.preencode(o,n.activeCall),d>=32&&n.lastMessageLabels&&As.preencode(o,n.lastMessageLabels),d>=33&&n.settings&&Ms.preencode(o,n.settings)},encode(o,n){const c=(n.selfDevice?1:0)|(n.selfMember?2:0)|(n.config?4:0)|(n.identity?8:0)|(n.lastMessage?16:0)|(n.dm?32:0)|(d>=19&&n.readLengths?64:0)|(d>=19&&n.lastMember?128:0)|(d>=21&&n.version?256:0)|(d>=27&&n.preferences?512:0)|(d>=28&&n.activeCall?1024:0)|(d>=32&&n.lastMessageLabels?2048:0)|(d>=33&&n.settings?4096:0);e.fixed32.encode(o,n.roomKey),e.fixed32.encode(o,n.discoveryKey),e.buffer.encode(o,n.encryptionKey),rr.encode(o,n.digest),tr.encode(o,n.stats),ir.encode(o,n.timestamps),e.uint.encode(o,n.fork),e.uint.encode(o,n.length),e.fixed32.encode(o,n.seed),ar.encode(o,n.capabilities),sr.encode(o,n.status),e.uint.encode(o,c),n.selfDevice&&lr.encode(o,n.selfDevice),n.selfMember&&pr.encode(o,n.selfMember),n.config&&ur.encode(o,n.config),n.identity&&fr.encode(o,n.identity),n.lastMessage&&mr.encode(o,n.lastMessage),n.dm&&yr.encode(o,n.dm),d>=19&&n.readLengths&&Ps.encode(o,n.readLengths),d>=19&&n.lastMember&&br.encode(o,n.lastMember),d>=21&&n.version&&e.uint.encode(o,n.version),d>=27&&n.preferences&&xr.encode(o,n.preferences),d>=28&&n.activeCall&&Ts.encode(o,n.activeCall),d>=32&&n.lastMessageLabels&&As.encode(o,n.lastMessageLabels),d>=33&&n.settings&&Ms.encode(o,n.settings)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),r=e.buffer.decode(o),t=rr.decode(o),i=tr.decode(o),a=ir.decode(o),s=e.uint.decode(o),l=e.uint.decode(o),p=e.fixed32.decode(o),u=ar.decode(o),f=sr.decode(o),m=e.uint.decode(o);return{roomKey:n,discoveryKey:c,encryptionKey:r,digest:t,stats:i,timestamps:a,fork:s,length:l,seed:p,capabilities:u,status:f,selfDevice:1&m?lr.decode(o):null,selfMember:2&m?pr.decode(o):null,config:4&m?ur.decode(o):null,identity:8&m?fr.decode(o):null,lastMessage:16&m?mr.decode(o):null,dm:32&m?yr.decode(o):null,readLengths:d>=19&&64&m?Ps.decode(o):null,lastMember:d>=19&&128&m?br.decode(o):null,version:d>=21&&256&m?e.uint.decode(o):0,preferences:d>=27&&512&m?xr.decode(o):null,activeCall:d>=28&&1024&m?Ts.decode(o):null,lastMessageLabels:d>=32&&2048&m?As.decode(o):null,settings:d>=33&&4096&m?Ms.decode(o):null}}},gr=Sn,kr={preencode(d,o){e.fixed32.preencode(d,o.roomKey),gr.preencode(d,o.status)},encode(d,o){e.fixed32.encode(d,o.roomKey),gr.encode(d,o.status)},decode:d=>({roomKey:e.fixed32.decode(d),status:gr.decode(d)})},Kr={preencode(d,o){e.fixed32.preencode(d,o.mailbox),e.fixed32.preencode(d,o.key),d.end++,o.roomKey&&e.fixed32.preencode(d,o.roomKey),o.keyPair&&r.preencode(d,o.keyPair),o.responseKeyPair&&r.preencode(d,o.responseKeyPair)},encode(d,o){const n=(o.roomKey?1:0)|(o.keyPair?2:0)|(o.responseKeyPair?4:0);e.fixed32.encode(d,o.mailbox),e.fixed32.encode(d,o.key),e.uint.encode(d,n),o.roomKey&&e.fixed32.encode(d,o.roomKey),o.keyPair&&r.encode(d,o.keyPair),o.responseKeyPair&&r.encode(d,o.responseKeyPair)},decode(d){const o=e.fixed32.decode(d),n=e.fixed32.decode(d),c=e.uint.decode(d);return{mailbox:o,key:n,roomKey:1&c?e.fixed32.decode(d):null,keyPair:2&c?r.decode(d):null,responseKeyPair:4&c?r.decode(d):null}}},hr=le,wr={preencode(d,o){e.fixed32.preencode(d,o.key),hr.preencode(d,o.profile)},encode(d,o){e.fixed32.encode(d,o.key),hr.encode(d,o.profile)},decode:d=>({key:e.fixed32.decode(d),profile:hr.decode(d)})},Rr=lr,Pr={preencode(d,o){e.fixed32.preencode(d,o.roomKey),Rr.preencode(d,o.device)},encode(d,o){e.fixed32.encode(d,o.roomKey),Rr.encode(d,o.device)},decode:d=>({roomKey:e.fixed32.decode(d),device:Rr.decode(d)})},Tr=k,Ar={preencode(o,n){Tr.preencode(o,n.file),e.fixed32.preencode(o,n.roomKey),o.end++,n.encryptionKey&&e.buffer.preencode(o,n.encryptionKey),d>=28&&n.lastAccessed&&e.uint.preencode(o,n.lastAccessed),d>=28&&n.version&&e.uint.preencode(o,n.version)},encode(o,n){const c=(n.encryptionKey?1:0)|(n.cleared?2:0)|(n.own?4:0)|(d>=28&&n.lastAccessed?8:0)|(d>=28&&n.version?16:0);Tr.encode(o,n.file),e.fixed32.encode(o,n.roomKey),e.uint.encode(o,c),n.encryptionKey&&e.buffer.encode(o,n.encryptionKey),d>=28&&n.lastAccessed&&e.uint.encode(o,n.lastAccessed),d>=28&&n.version&&e.uint.encode(o,n.version)},decode(o){const n=Tr.decode(o),c=e.fixed32.decode(o),r=e.uint.decode(o);return{file:n,roomKey:c,encryptionKey:1&r?e.buffer.decode(o):null,cleared:!!(2&r),own:!!(4&r),lastAccessed:d>=28&&8&r?e.uint.decode(o):0,version:d>=28&&16&r?e.uint.decode(o):0}}},Mr=$,Ir={preencode(o,c){Mr.preencode(o,c.header),n.preencode(o,c.oplog),e.uint.preencode(o,c.index),Is.preencode(o,c.preview),o.end++,d>=12&&c.displayType&&Gr.preencode(o,c.displayType)},encode(o,c){const r=d>=12&&c.displayType?1:0;Mr.encode(o,c.header),n.encode(o,c.oplog),e.uint.encode(o,c.index),Is.encode(o,c.preview),e.uint.encode(o,r),d>=12&&c.displayType&&Gr.encode(o,c.displayType)},decode(o){const c=Mr.decode(o),r=n.decode(o),t=e.uint.decode(o),i=Is.decode(o),a=o.start<o.end?e.uint.decode(o):0;return{header:c,oplog:r,index:t,preview:i,displayType:d>=12&&1&a?Gr.decode(o):0}}},Sr={preencode(o,n){o.end++,d>=4&&n.memberKey&&e.fixed32.preencode(o,n.memberKey)},encode(o,n){const c=d>=4&&n.memberKey?1:0;e.uint.encode(o,c),d>=4&&n.memberKey&&e.fixed32.encode(o,n.memberKey)},decode(o){const n=e.uint.decode(o);return{memberKey:d>=4&&1&n?e.fixed32.decode(o):null}}},Dr=le,Cr={preencode(e,d){Dr.preencode(e,d.profile),ne.preencode(e,d.attestation)},encode(e,d){Dr.encode(e,d.profile),ne.encode(e,d.attestation)},decode:e=>({profile:Dr.decode(e),attestation:ne.decode(e)})},Lr=$,jr={preencode(d,o){Lr.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){Lr.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:Lr.decode(d),key:e.fixed32.decode(d)})},Fr={preencode(d,o){e.fixed32.preencode(d,o.deviceKey),ne.preencode(d,o.privateProfileIdentity),e.buffer.preencode(d,o.deviceProof)},encode(d,o){e.fixed32.encode(d,o.deviceKey),ne.encode(d,o.privateProfileIdentity),e.buffer.encode(d,o.deviceProof)},decode:d=>({deviceKey:e.fixed32.decode(d),privateProfileIdentity:ne.decode(d),deviceProof:e.buffer.decode(d)})},qr={preencode(o,n){e.fixed32.preencode(o,n.roomKey),e.fixed32.preencode(o,n.encryptionKey),e.fixed32.preencode(o,n.seed),o.end++,d>=9&&n.fastForwardTo&&e.fixed32.preencode(o,n.fastForwardTo)},encode(o,n){const c=d>=9&&n.fastForwardTo?1:0;e.fixed32.encode(o,n.roomKey),e.fixed32.encode(o,n.encryptionKey),e.fixed32.encode(o,n.seed),e.uint.encode(o,c),d>=9&&n.fastForwardTo&&e.fixed32.encode(o,n.fastForwardTo)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),r=e.fixed32.decode(o),t=e.uint.decode(o);return{roomKey:n,encryptionKey:c,seed:r,fastForwardTo:d>=9&&1&t?e.fixed32.decode(o):null}}},Br={preencode(o,n){e.fixed32.preencode(o,n.publicKey),e.fixed32.preencode(o,n.writerKey),e.fixed32.preencode(o,n.devicePublicKey),o.end++,d>=9&&n.privateProfileKey&&e.fixed32.preencode(o,n.privateProfileKey)},encode(o,n){const c=d>=9&&n.privateProfileKey?1:0;e.fixed32.encode(o,n.publicKey),e.fixed32.encode(o,n.writerKey),e.fixed32.encode(o,n.devicePublicKey),e.uint.encode(o,c),d>=9&&n.privateProfileKey&&e.fixed32.encode(o,n.privateProfileKey)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),r=e.fixed32.decode(o),t=e.uint.decode(o);return{publicKey:n,writerKey:c,devicePublicKey:r,privateProfileKey:d>=9&&1&t?e.fixed32.decode(o):null}}},Er=$,Vr={preencode(d,o){Er.preencode(d,o.header),e.fixed32.preencode(d,o.memberKey)},encode(d,o){Er.encode(d,o.header),e.fixed32.encode(d,o.memberKey)},decode:d=>({header:Er.decode(d),memberKey:e.fixed32.decode(d)})},zr={preencode(d,o){e.fixed32.preencode(d,o.privateProfileKey)},encode(d,o){e.fixed32.encode(d,o.privateProfileKey)},decode:d=>({privateProfileKey:e.fixed32.decode(d)})},Or={preencode(d,o){e.fixed32.preencode(d,o.key),e.fixed32.preencode(d,o.responsePublicKey)},encode(d,o){e.fixed32.encode(d,o.key),e.fixed32.encode(d,o.responsePublicKey)},decode:d=>({key:e.fixed32.decode(d),responsePublicKey:e.fixed32.decode(d)})},Nr={preencode(o,n){e.fixed32.preencode(o,n.roomKey),o.end++,d>=10&&n.repairs&&e.uint.preencode(o,n.repairs)},encode(o,n){const c=d>=10&&n.repairs?1:0;e.fixed32.encode(o,n.roomKey),e.uint.encode(o,c),d>=10&&n.repairs&&e.uint.encode(o,n.repairs)},decode(o){const n=e.fixed32.decode(o),c=e.uint.decode(o);return{roomKey:n,repairs:d>=10&&1&c?e.uint.decode(o):0}}},Ur={preencode(o,n){o.end++,d>=11&&n.key&&e.string.preencode(o,n.key),d>=11&&n.description&&e.string.preencode(o,n.description)},encode(o,n){const c=(d>=11&&n.key?1:0)|(d>=11&&n.value?2:0)|(d>=11&&n.description?4:0);e.uint.encode(o,c),d>=11&&n.key&&e.string.encode(o,n.key),d>=11&&n.description&&e.string.encode(o,n.description)},decode(o){const n=e.uint.decode(o);return{key:d>=11&&1&n?e.string.decode(o):null,value:d>=11&&!!(2&n),description:d>=11&&4&n?e.string.decode(o):null}}},Hr=e.array(e.frame(Ur)),Jr={preencode(e,o){e.end++,d>=11&&o.flags&&Hr.preencode(e,o.flags)},encode(o,n){const c=d>=11&&n.flags?1:0;e.uint.encode(o,c),d>=11&&n.flags&&Hr.encode(o,n.flags)},decode(o){const n=e.uint.decode(o);return{flags:d>=11&&1&n?Hr.decode(o):null}}},Wr={HttpLink:1,PearLink:2},Gr={preencode(e,d){e.end++},encode(d,o){if(o>2)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},Qr=$,Xr={preencode(d,o){Qr.preencode(d,o.header),e.uint.preencode(d,o.value)},encode(d,o){Qr.encode(d,o.header),e.uint.encode(d,o.value)},decode:d=>({header:Qr.decode(d),value:e.uint.decode(d)})},Yr={preencode(d,o){e.uint.preencode(d,o.key),e.uint.preencode(d,o.value)},encode(d,o){e.uint.encode(d,o.key),e.uint.encode(d,o.value)},decode:d=>({key:e.uint.decode(d),value:e.uint.decode(d)})},Zr=$,$r={preencode(o,n){Zr.preencode(o,n.header),e.uint.preencode(o,n.from),e.uint.preencode(o,n.to),o.end++,d>=29&&n.buildType&&xi.preencode(o,n.buildType)},encode(o,n){const c=d>=29&&n.buildType?1:0;Zr.encode(o,n.header),e.uint.encode(o,n.from),e.uint.encode(o,n.to),e.uint.encode(o,c),d>=29&&n.buildType&&xi.encode(o,n.buildType)},decode(o){const n=Zr.decode(o),c=e.uint.decode(o),r=e.uint.decode(o),t=o.start<o.end?e.uint.decode(o):0;return{header:n,from:c,to:r,buildType:d>=29&&1&t?xi.decode(o):null}}},_r={RoomType:1,IsExperimental:2,IsJoiningDisabled:3,IsAppendingDisabled:4,IsCallingDisabled:5,IsMembershipEventsDisabled:6,IsAttachmentsDisabled:7,IsLinksDisabled:8,IsRoomInviteHidden:9},et={preencode(e,d){e.end++},encode(d,o){if(o>9)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},dt=We,ot={preencode(o,n){o.end++,d>=16&&n.nodes&&dt.preencode(o,n.nodes),d>=24&&n.concurrency&&e.uint.preencode(o,n.concurrency),d>=24&&n.maxWindow&&e.uint.preencode(o,n.maxWindow),d>=24&&n.randomPunchInterval&&e.uint.preencode(o,n.randomPunchInterval),d>=24&&n.connectionKeepAlive&&e.uint.preencode(o,n.connectionKeepAlive)},encode(o,n){const c=(d>=16&&n.nodes?1:0)|(d>=24&&n.concurrency?2:0)|(d>=24&&n.maxWindow?4:0)|(d>=24&&n.randomPunchInterval?8:0)|(d>=24&&n.connectionKeepAlive?16:0);e.uint.encode(o,c),d>=16&&n.nodes&&dt.encode(o,n.nodes),d>=24&&n.concurrency&&e.uint.encode(o,n.concurrency),d>=24&&n.maxWindow&&e.uint.encode(o,n.maxWindow),d>=24&&n.randomPunchInterval&&e.uint.encode(o,n.randomPunchInterval),d>=24&&n.connectionKeepAlive&&e.uint.encode(o,n.connectionKeepAlive)},decode(o){const n=e.uint.decode(o);return{nodes:d>=16&&1&n?dt.decode(o):null,concurrency:d>=24&&2&n?e.uint.decode(o):0,maxWindow:d>=24&&4&n?e.uint.decode(o):0,randomPunchInterval:d>=24&&8&n?e.uint.decode(o):0,connectionKeepAlive:d>=24&&16&n?e.uint.decode(o):0}}},nt={en:"en",it:"it",ru:"ru",es:"es",de:"de"},ct={preencode(e,d){e.end++},encode(d,o){switch(o){case"en":e.uint.encode(d,1);break;case"it":e.uint.encode(d,2);break;case"ru":e.uint.encode(d,3);break;case"es":e.uint.encode(d,4);break;case"de":e.uint.encode(d,5);break;default:throw new Error("Unknown enum")}},decode(d){switch(e.uint.decode(d)){case 1:return"en";case 2:return"it";case 3:return"ru";case 4:return"es";case 5:return"de";default:return null}}},rt=jd,tt={preencode(d,o){rt.preencode(d,o.range),ct.preencode(d,o.language),e.string.preencode(d,o.text)},encode(d,o){rt.encode(d,o.range),ct.encode(d,o.language),e.string.encode(d,o.text)},decode:d=>({range:rt.decode(d),language:ct.decode(d),text:e.string.decode(d)})},it={preencode(d,o){e.fixed32.preencode(d,o.roomKey),e.uint.preencode(d,o.count)},encode(d,o){e.fixed32.encode(d,o.roomKey),e.uint.encode(d,o.count)},decode:d=>({roomKey:e.fixed32.decode(d),count:e.uint.decode(d)})},at={preencode(d,o){e.fixed32.preencode(d,o.deviceKey),e.fixed32.preencode(d,o.key)},encode(d,o){e.fixed32.encode(d,o.deviceKey),e.fixed32.encode(d,o.key)},decode:d=>({deviceKey:e.fixed32.decode(d),key:e.fixed32.decode(d)})},st=$,lt={preencode(d,o){st.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){st.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:st.decode(d),key:e.fixed32.decode(d)})},pt=$,ut={preencode(d,o){pt.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){pt.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:pt.decode(d),key:e.fixed32.decode(d)})},ft={Flag:1},mt={preencode(e,d){e.end++},encode(d,o){if(o>1)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},yt={preencode(d,o){uo.preencode(d,o.id),e.fixed32.preencode(d,o.sender),e.uint.preencode(d,o.clock),mt.preencode(d,o.label)},encode(d,o){uo.encode(d,o.id),e.fixed32.encode(d,o.sender),e.uint.encode(d,o.clock),mt.encode(d,o.label)},decode:d=>({id:uo.decode(d),sender:e.fixed32.decode(d),clock:e.uint.decode(d),label:mt.decode(d)})},bt=$,xt={preencode(e,d){bt.preencode(e,d.header),n.preencode(e,d.oplog),mt.preencode(e,d.label)},encode(e,d){bt.encode(e,d.header),n.encode(e,d.oplog),mt.encode(e,d.label)},decode:e=>({header:bt.decode(e),oplog:n.decode(e),label:mt.decode(e)})},vt=$,gt={preencode(e,d){vt.preencode(e,d.header),n.preencode(e,d.oplog),mt.preencode(e,d.label)},encode(e,d){vt.encode(e,d.header),n.encode(e,d.oplog),mt.encode(e,d.label)},decode:e=>({header:vt.decode(e),oplog:n.decode(e),label:mt.decode(e)})},kt={preencode(d,o){mt.preencode(d,o.label),e.uint.preencode(d,o.count)},encode(d,o){mt.encode(d,o.label),e.uint.encode(d,o.count)},decode:d=>({label:mt.decode(d),count:e.uint.decode(d)})},Kt=e.array(e.frame(kt)),ht={preencode(o,n){uo.preencode(o,n.id),e.uint.preencode(o,n.total),Kt.preencode(o,n.labels),e.uint.preencode(o,n.editedAt),o.end++,d>=24&&n.flagsClock&&e.uint.preencode(o,n.flagsClock),d>=24&&n.version&&e.uint.preencode(o,n.version)},encode(o,n){const c=(d>=24&&n.flagsClock?1:0)|(d>=24&&n.version?2:0)|(d>=25&&n.isDeleted?4:0);uo.encode(o,n.id),e.uint.encode(o,n.total),Kt.encode(o,n.labels),e.uint.encode(o,n.editedAt),e.uint.encode(o,c),d>=24&&n.flagsClock&&e.uint.encode(o,n.flagsClock),d>=24&&n.version&&e.uint.encode(o,n.version)},decode(o){const n=uo.decode(o),c=e.uint.decode(o),r=Kt.decode(o),t=e.uint.decode(o),i=o.start<o.end?e.uint.decode(o):0;return{id:n,total:c,labels:r,editedAt:t,flagsClock:d>=24&&1&i?e.uint.decode(o):0,version:d>=24&&2&i?e.uint.decode(o):0,isDeleted:d>=25&&!!(4&i)}}},wt=$,Rt={preencode(d,o){wt.preencode(d,o.header),e.uint.preencode(d,o.length)},encode(d,o){wt.encode(d,o.header),e.uint.encode(d,o.length)},decode:d=>({header:wt.decode(d),length:e.uint.decode(d)})},Pt={preencode(d,o){e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.length)},encode(d,o){e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.length)},decode:d=>({memberKey:e.fixed32.decode(d),length:e.uint.decode(d)})},Tt=Z,At={preencode(o,n){o.end++,d>=33&&n.profileSnoozeTime&&e.uint.preencode(o,n.profileSnoozeTime)},encode(o,n){const c=(d>=19&&n.disableReadReceipts?1:0)|(d>=31&&n.stripAttachmentMetadata?2:0)|(d>=33&&n.profileSnoozeTime?4:0);e.uint.encode(o,c),d>=33&&n.profileSnoozeTime&&e.uint.encode(o,n.profileSnoozeTime)},decode(o){const n=e.uint.decode(o);return{disableReadReceipts:d>=19&&!!(1&n),stripAttachmentMetadata:d>=31&&!!(2&n),profileSnoozeTime:d>=33&&4&n?e.uint.decode(o):0}}},Mt={disableReadReceipts:"disableReadReceipts",stripAttachmentMetadata:"stripAttachmentMetadata",profileSnoozeTime:"profileSnoozeTime"},It={preencode(e,d){e.end++},encode(d,o){switch(o){case"disableReadReceipts":e.uint.encode(d,1);break;case"stripAttachmentMetadata":e.uint.encode(d,2);break;case"profileSnoozeTime":e.uint.encode(d,3);break;default:throw new Error("Unknown enum")}},decode(d){switch(e.uint.decode(d)){case 1:return"disableReadReceipts";case 2:return"stripAttachmentMetadata";case 3:return"profileSnoozeTime";default:return null}}},St=$,Dt=e.frame(At),Ct={preencode(e,d){St.preencode(e,d.header),It.preencode(e,d.key),Dt.preencode(e,d.settings)},encode(e,d){St.encode(e,d.header),It.encode(e,d.key),Dt.encode(e,d.settings)},decode:e=>({header:St.decode(e),key:It.decode(e),settings:Dt.decode(e)})},Lt={preencode(o,n){o.end++,d>=20&&n.roomKey&&e.fixed32.preencode(o,n.roomKey),d>=23&&n.coreKey&&e.fixed32.preencode(o,n.coreKey)},encode(o,n){const c=(d>=20&&n.roomKey?1:0)|(d>=23&&n.coreKey?2:0);e.uint.encode(o,c),d>=20&&n.roomKey&&e.fixed32.encode(o,n.roomKey),d>=23&&n.coreKey&&e.fixed32.encode(o,n.coreKey)},decode(o){const n=e.uint.decode(o);return{roomKey:d>=20&&1&n?e.fixed32.decode(o):null,coreKey:d>=23&&2&n?e.fixed32.decode(o):null}}},jt=e.frame(Lt),Ft={preencode(o,n){e.string.preencode(o,n.code),e.string.preencode(o,n.message),e.string.preencode(o,n.stack),e.uint.preencode(o,n.timestamp),o.end++,d>=20&&n.details&&jt.preencode(o,n.details)},encode(o,n){const c=d>=20&&n.details?1:0;e.string.encode(o,n.code),e.string.encode(o,n.message),e.string.encode(o,n.stack),e.uint.encode(o,n.timestamp),e.uint.encode(o,c),d>=20&&n.details&&jt.encode(o,n.details)},decode(o){const n=e.string.decode(o),c=e.string.decode(o),r=e.string.decode(o),t=e.uint.decode(o),i=e.uint.decode(o);return{code:n,message:c,stack:r,timestamp:t,details:d>=20&&1&i?jt.decode(o):null}}},qt={RESUME:1,WAKEUP:2,PRESUSPEND:3,SUSPEND:4},Bt={preencode(e,d){e.end++},encode(d,o){if(o>4)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},Et={preencode(d,o){e.fixed32.preencode(d,o.roomKey),e.uint.preencode(d,o.total)},encode(d,o){e.fixed32.encode(d,o.roomKey),e.uint.encode(d,o.total)},decode:d=>({roomKey:e.fixed32.decode(d),total:e.uint.decode(d)})},Vt={Flag:1},zt={preencode(e,d){e.end++},encode(d,o){if(o>1)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},Ot={preencode(d,o){e.fixed32.preencode(d,o.key),e.fixed32.preencode(d,o.sender),e.uint.preencode(d,o.clock),zt.preencode(d,o.label)},encode(d,o){e.fixed32.encode(d,o.key),e.fixed32.encode(d,o.sender),e.uint.encode(d,o.clock),zt.encode(d,o.label)},decode:d=>({key:e.fixed32.decode(d),sender:e.fixed32.decode(d),clock:e.uint.decode(d),label:zt.decode(d)})},Nt=$,Ut={preencode(d,o){Nt.preencode(d,o.header),e.fixed32.preencode(d,o.key),zt.preencode(d,o.label)},encode(d,o){Nt.encode(d,o.header),e.fixed32.encode(d,o.key),zt.encode(d,o.label)},decode:d=>({header:Nt.decode(d),key:e.fixed32.decode(d),label:zt.decode(d)})},Ht={preencode(d,o){zt.preencode(d,o.label),e.uint.preencode(d,o.count)},encode(d,o){zt.encode(d,o.label),e.uint.encode(d,o.count)},decode:d=>({label:zt.decode(d),count:e.uint.decode(d)})},Jt=e.array(e.frame(Ht)),Wt={preencode(d,o){e.fixed32.preencode(d,o.key),e.uint.preencode(d,o.total),Jt.preencode(d,o.labels),e.uint.preencode(d,o.editedAt),e.uint.preencode(d,o.flagsClock)},encode(d,o){e.fixed32.encode(d,o.key),e.uint.encode(d,o.total),Jt.encode(d,o.labels),e.uint.encode(d,o.editedAt),e.uint.encode(d,o.flagsClock)},decode:d=>({key:e.fixed32.decode(d),total:e.uint.decode(d),labels:Jt.decode(d),editedAt:e.uint.decode(d),flagsClock:e.uint.decode(d)})},Gt={preencode(d,o){e.float64.preencode(d,o.latitude),e.float64.preencode(d,o.longitude)},encode(d,o){e.float64.encode(d,o.latitude),e.float64.encode(d,o.longitude)},decode:d=>({latitude:e.float64.decode(d),longitude:e.float64.decode(d)})},Qt=$,Xt={preencode(d,o){Qt.preencode(d,o.header),e.fixed32.preencode(d,o.deviceKey),e.fixed32.preencode(d,o.fromDeviceKey)},encode(d,o){Qt.encode(d,o.header),e.fixed32.encode(d,o.deviceKey),e.fixed32.encode(d,o.fromDeviceKey)},decode:d=>({header:Qt.decode(d),deviceKey:e.fixed32.decode(d),fromDeviceKey:e.fixed32.decode(d)})},Yt=$,Zt=X,$t={preencode(o,n){Yt.preencode(o,n.header),e.fixed32.preencode(o,n.callKey),e.buffer.preencode(o,n.encryptionKey),o.end++,d>=28&&n.streams&&Zt.preencode(o,n.streams),d>=28&&n.discoveryKey&&e.fixed32.preencode(o,n.discoveryKey),d>=28&&n.version&&e.uint.preencode(o,n.version)},encode(o,n){const c=(d>=28&&n.streams?1:0)|(d>=28&&n.discoveryKey?2:0)|(d>=28&&n.version?4:0);Yt.encode(o,n.header),e.fixed32.encode(o,n.callKey),e.buffer.encode(o,n.encryptionKey),e.uint.encode(o,c),d>=28&&n.streams&&Zt.encode(o,n.streams),d>=28&&n.discoveryKey&&e.fixed32.encode(o,n.discoveryKey),d>=28&&n.version&&e.uint.encode(o,n.version)},decode(o){const n=Yt.decode(o),c=e.fixed32.decode(o),r=e.buffer.decode(o),t=e.uint.decode(o);return{header:n,callKey:c,encryptionKey:r,streams:d>=28&&1&t?Zt.decode(o):null,discoveryKey:d>=28&&2&t?e.fixed32.decode(o):null,version:d>=28&&4&t?e.uint.decode(o):0}}},_t=$,ei=X,di={preencode(o,n){_t.preencode(o,n.header),e.fixed32.preencode(o,n.callKey),o.end++,d>=28&&n.streams&&ei.preencode(o,n.streams)},encode(o,n){const c=d>=28&&n.streams?1:0;_t.encode(o,n.header),e.fixed32.encode(o,n.callKey),e.uint.encode(o,c),d>=28&&n.streams&&ei.encode(o,n.streams)},decode(o){const n=_t.decode(o),c=e.fixed32.decode(o),r=e.uint.decode(o);return{header:n,callKey:c,streams:d>=28&&1&r?ei.decode(o):null}}},oi=$,ni={preencode(d,o){oi.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){oi.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:oi.decode(d),callKey:e.fixed32.decode(d)})},ci=$,ri={preencode(d,o){ci.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){ci.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:ci.decode(d),callKey:e.fixed32.decode(d)})},ti=$,ii={preencode(d,o){ti.preencode(d,o.header),e.fixed32.preencode(d,o.callKey),e.fixed32.preencode(d,o.streamKey)},encode(d,o){ti.encode(d,o.header),e.fixed32.encode(d,o.callKey),e.fixed32.encode(d,o.streamKey)},decode:d=>({header:ti.decode(d),callKey:e.fixed32.decode(d),streamKey:e.fixed32.decode(d)})},ai=$,si={preencode(d,o){ai.preencode(d,o.header),e.fixed32.preencode(d,o.callKey),e.fixed32.preencode(d,o.streamKey)},encode(d,o){ai.encode(d,o.header),e.fixed32.encode(d,o.callKey),e.fixed32.encode(d,o.streamKey)},decode:d=>({header:ai.decode(d),callKey:e.fixed32.decode(d),streamKey:e.fixed32.decode(d)})},li={preencode(o,n){e.fixed32.preencode(o,n.callKey),e.buffer.preencode(o,n.encryptionKey),e.uint.preencode(o,n.createdAt),o.end++,d>=28&&n.endedAt&&e.uint.preencode(o,n.endedAt),d>=28&&n.discoveryKey&&e.fixed32.preencode(o,n.discoveryKey),d>=28&&n.version&&e.uint.preencode(o,n.version)},encode(o,n){const c=(d>=28&&n.endedAt?1:0)|(d>=28&&n.discoveryKey?2:0)|(d>=28&&n.version?4:0);e.fixed32.encode(o,n.callKey),e.buffer.encode(o,n.encryptionKey),e.uint.encode(o,n.createdAt),e.uint.encode(o,c),d>=28&&n.endedAt&&e.uint.encode(o,n.endedAt),d>=28&&n.discoveryKey&&e.fixed32.encode(o,n.discoveryKey),d>=28&&n.version&&e.uint.encode(o,n.version)},decode(o){const n=e.fixed32.decode(o),c=e.buffer.decode(o),r=e.uint.decode(o),t=e.uint.decode(o);return{callKey:n,encryptionKey:c,createdAt:r,endedAt:d>=28&&1&t?e.uint.decode(o):0,discoveryKey:d>=28&&2&t?e.fixed32.decode(o):null,version:d>=28&&4&t?e.uint.decode(o):0}}},pi={preencode(d,o){e.fixed32.preencode(d,o.callKey),e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.createdAt)},encode(d,o){e.fixed32.encode(d,o.callKey),e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.createdAt)},decode:d=>({callKey:e.fixed32.decode(d),memberKey:e.fixed32.decode(d),createdAt:e.uint.decode(d)})},ui={preencode(o,n){e.fixed32.preencode(o,n.callKey),e.fixed32.preencode(o,n.deviceKey),e.fixed32.preencode(o,n.memberKey),e.uint.preencode(o,n.createdAt),o.end++,d>=28&&n.swarmKey&&e.fixed32.preencode(o,n.swarmKey),d>=32&&n.lastHeartbeatAt&&e.uint.preencode(o,n.lastHeartbeatAt)},encode(o,n){const c=(d>=28&&n.swarmKey?1:0)|(d>=32&&n.lastHeartbeatAt?2:0)|(d>=33&&n.isRecording?4:0);e.fixed32.encode(o,n.callKey),e.fixed32.encode(o,n.deviceKey),e.fixed32.encode(o,n.memberKey),e.uint.encode(o,n.createdAt),e.uint.encode(o,c),d>=28&&n.swarmKey&&e.fixed32.encode(o,n.swarmKey),d>=32&&n.lastHeartbeatAt&&e.uint.encode(o,n.lastHeartbeatAt)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),r=e.fixed32.decode(o),t=e.uint.decode(o),i=e.uint.decode(o);return{callKey:n,deviceKey:c,memberKey:r,createdAt:t,swarmKey:d>=28&&1&i?e.fixed32.decode(o):null,lastHeartbeatAt:d>=32&&2&i?e.uint.decode(o):0,isRecording:d>=33&&!!(4&i)}}},fi={preencode(d,o){e.fixed32.preencode(d,o.callKey),e.fixed32.preencode(d,o.deviceKey),e.buffer.preencode(d,o.streamKey),e.uint.preencode(d,o.createdAt)},encode(d,o){e.fixed32.encode(d,o.callKey),e.fixed32.encode(d,o.deviceKey),e.buffer.encode(d,o.streamKey),e.uint.encode(d,o.createdAt)},decode:d=>({callKey:e.fixed32.decode(d),deviceKey:e.fixed32.decode(d),streamKey:e.buffer.decode(d),createdAt:e.uint.decode(d)})},mi={preencode(o,n){e.fixed32.preencode(o,n.callKey),o.end++,d>=28&&n.selfDeviceKey&&e.fixed32.preencode(o,n.selfDeviceKey)},encode(o,n){const c=d>=28&&n.selfDeviceKey?1:0;e.fixed32.encode(o,n.callKey),e.uint.encode(o,c),d>=28&&n.selfDeviceKey&&e.fixed32.encode(o,n.selfDeviceKey)},decode(o){const n=e.fixed32.decode(o),c=e.uint.decode(o);return{callKey:n,selfDeviceKey:d>=28&&1&c?e.fixed32.decode(o):null}}},yi={preencode(d,o){e.uint.preencode(d,o.lastCleared)},encode(d,o){e.uint.encode(d,o.lastCleared)},decode:d=>({lastCleared:e.uint.decode(d)})},bi={Nightly:"Nightly",Internal:"Internal",Production:"Production"},xi={preencode(e,d){e.end++},encode(d,o){switch(o){case"Nightly":e.uint.encode(d,1);break;case"Internal":e.uint.encode(d,2);break;case"Production":e.uint.encode(d,3);break;default:throw new Error("Unknown enum")}},decode(d){switch(e.uint.decode(d)){case 1:return"Nightly";case 2:return"Internal";case 3:return"Production";default:return null}}},vi=$,gi={preencode(e,d){vi.preencode(e,d.header)},encode(e,d){vi.encode(e,d.header)},decode:e=>({header:vi.decode(e)})},ki=$,Ki={preencode(e,d){ki.preencode(e,d.header)},encode(e,d){ki.encode(e,d.header)},decode:e=>({header:ki.decode(e)})},hi={preencode(o,n){xi.preencode(o,n.buildType),o.end++,d>=30&&n.latestOfflineAbi&&e.uint.preencode(o,n.latestOfflineAbi)},encode(o,n){const c=d>=30&&n.latestOfflineAbi?1:0;xi.encode(o,n.buildType),e.uint.encode(o,c),d>=30&&n.latestOfflineAbi&&e.uint.encode(o,n.latestOfflineAbi)},decode(o){const n=xi.decode(o),c=o.start<o.end?e.uint.decode(o):0;return{buildType:n,latestOfflineAbi:d>=30&&1&c?e.uint.decode(o):0}}},wi=$,Ri={preencode(d,o){wi.preencode(d,o.header),e.fixed32.preencode(d,o.deviceKey),e.buffer.preencode(d,o.deviceProof),e.buffer.preencode(d,o.writerProof)},encode(d,o){wi.encode(d,o.header),e.fixed32.encode(d,o.deviceKey),e.buffer.encode(d,o.deviceProof),e.buffer.encode(d,o.writerProof)},decode:d=>({header:wi.decode(d),deviceKey:e.fixed32.decode(d),deviceProof:e.buffer.decode(d),writerProof:e.buffer.decode(d)})},Pi={preencode(o,n){o.end++,d>=31&&n.otaResyncPrivateProfileBump&&e.uint.preencode(o,n.otaResyncPrivateProfileBump)},encode(o,n){const c=d>=31&&n.otaResyncPrivateProfileBump?1:0;e.uint.encode(o,c),d>=31&&n.otaResyncPrivateProfileBump&&e.uint.encode(o,n.otaResyncPrivateProfileBump)},decode(o){const n=e.uint.decode(o);return{otaResyncPrivateProfileBump:d>=31&&1&n?e.uint.decode(o):0}}},Ti={preencode(d,o){e.fixed32.preencode(d,o.deviceKey),e.buffer.preencode(d,o.proof),e.uint.preencode(d,o.createdAt)},encode(d,o){e.fixed32.encode(d,o.deviceKey),e.buffer.encode(d,o.proof),e.uint.encode(d,o.createdAt)},decode:d=>({deviceKey:e.fixed32.decode(d),proof:e.buffer.decode(d),createdAt:e.uint.decode(d)})},Ai=$,Mi={preencode(d,o){Ai.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){Ai.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:Ai.decode(d),callKey:e.fixed32.decode(d)})},Ii=$,Si={preencode(d,o){Ii.preencode(d,o.header),e.fixed32.preencode(d,o.callKey),e.fixed32.preencode(d,o.deviceKey)},encode(d,o){Ii.encode(d,o.header),e.fixed32.encode(d,o.callKey),e.fixed32.encode(d,o.deviceKey)},decode:d=>({header:Ii.decode(d),callKey:e.fixed32.decode(d),deviceKey:e.fixed32.decode(d)})},Di=e.frame(ht),Ci=e.array(e.frame(yt)),Li={preencode(e,d){Di.preencode(e,d.digest),Ci.preencode(e,d.mine)},encode(e,d){Di.encode(e,d.digest),Ci.encode(e,d.mine)},decode:e=>({digest:Di.decode(e),mine:Ci.decode(e)})},ji=$,Fi={preencode(d,o){ji.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){ji.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:ji.decode(d),callKey:e.fixed32.decode(d)})},qi=$,Bi={preencode(d,o){qi.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){qi.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:qi.decode(d),callKey:e.fixed32.decode(d)})},Ei={preencode(o,n){o.end++,d>=33&&n.profileSnoozeTime&&e.uint.preencode(o,n.profileSnoozeTime)},encode(o,n){const c=(d>=33&&n.disableReadReceipts?1:0)|(d>=33&&n.stripAttachmentMetadata?2:0)|(d>=33&&n.profileSnoozeTime?4:0);e.uint.encode(o,c),d>=33&&n.profileSnoozeTime&&e.uint.encode(o,n.profileSnoozeTime)},decode(o){const n=e.uint.decode(o);return{disableReadReceipts:d>=33&&!!(1&n),stripAttachmentMetadata:d>=33&&!!(2&n),profileSnoozeTime:d>=33&&4&n?e.uint.decode(o):0}}},Vi={preencode(o,n){o.end++,d>=33&&n.maxPeers&&e.uint.preencode(o,n.maxPeers)},encode(o,n){const c=d>=33&&n.maxPeers?1:0;e.uint.encode(o,c),d>=33&&n.maxPeers&&e.uint.encode(o,n.maxPeers)},decode(o){const n=e.uint.decode(o);return{maxPeers:d>=33&&1&n?e.uint.decode(o):0}}},zi=$,Oi={preencode(e,d){zi.preencode(e,d.header),n.preencode(e,d.oplog)},encode(e,d){zi.encode(e,d.header),n.encode(e,d.oplog)},decode:e=>({header:zi.decode(e),oplog:n.decode(e)})},Ni=$,Ui={preencode(e,d){Ni.preencode(e,d.header)},encode(e,d){Ni.encode(e,d.header)},decode:e=>({header:Ni.decode(e)})},Hi={preencode(d,o){e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.timestamp)},encode(d,o){e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.timestamp)},decode:d=>({memberKey:e.fixed32.decode(d),timestamp:e.uint.decode(d)})},Ji=$,Wi={preencode(o,n){Ji.preencode(o,n.header),e.fixed32.preencode(o,n.memberKey),o.end++,d>=34&&n.alias&&e.string.preencode(o,n.alias)},encode(o,n){const c=d>=34&&n.alias?1:0;Ji.encode(o,n.header),e.fixed32.encode(o,n.memberKey),e.uint.encode(o,c),d>=34&&n.alias&&e.string.encode(o,n.alias)},decode(o){const n=Ji.decode(o),c=e.fixed32.decode(o),r=e.uint.decode(o);return{header:n,memberKey:c,alias:d>=34&&1&r?e.string.decode(o):null}}},Gi=hc,Qi={preencode(o,n){e.uint.preencode(o,n.priority),o.end++,n.v3&&Gi.preencode(o,n.v3),d>=5&&n.timestamp&&e.uint.preencode(o,n.timestamp)},encode(o,n){const c=(n.v3?1:0)|(d>=3&&n.errored?2:0)|(d>=5&&n.timestamp?4:0);e.uint.encode(o,n.priority),e.uint.encode(o,c),n.v3&&Gi.encode(o,n.v3),d>=5&&n.timestamp&&e.uint.encode(o,n.timestamp)},decode(o){const n=e.uint.decode(o),c=e.uint.decode(o);return{roomKey:null,priority:n,v3:1&c?Gi.decode(o):null,errored:d>=3&&!!(2&c),timestamp:d>=5&&4&c?e.uint.decode(o):0}}},Xi=Xo,Yi=fo,Zi=ir,$i=vc,_i=sr,ea=lr,da=pr,oa=No,na=$o,ca=mr,ra=X,ta=br,ia=Sn,aa={preencode(o,n){const c=(n.selfDevice?1:0)|(n.selfMember?2:0)|(n.config?4:0)|(n.identity?8:0)|(n.lastMessage?16:0)|(n.dm?32:0)|(d>=19&&n.readLengths?64:0)|(d>=19&&n.lastMember?128:0)|(d>=21&&n.version?256:0)|(d>=27&&n.preferences?512:0)|(d>=28&&n.activeCall?1024:0)|(d>=32&&n.lastMessageLabels?2048:0)|(d>=33&&n.settings?4096:0);e.fixed32.preencode(o,n.discoveryKey),e.buffer.preencode(o,n.encryptionKey),Xi.preencode(o,n.digest),Yi.preencode(o,n.stats),Zi.preencode(o,n.timestamps),e.uint.preencode(o,n.fork),e.uint.preencode(o,n.length),e.fixed32.preencode(o,n.seed),$i.preencode(o,n.capabilities),_i.preencode(o,n.status),e.uint.preencode(o,c),n.selfDevice&&ea.preencode(o,n.selfDevice),n.selfMember&&da.preencode(o,n.selfMember),n.config&&oa.preencode(o,n.config),n.identity&&na.preencode(o,n.identity),n.lastMessage&&ca.preencode(o,n.lastMessage),n.dm&&ra.preencode(o,n.dm),d>=19&&n.readLengths&&Ss.preencode(o,n.readLengths),d>=19&&n.lastMember&&ta.preencode(o,n.lastMember),d>=21&&n.version&&e.uint.preencode(o,n.version),d>=27&&n.preferences&&ia.preencode(o,n.preferences),d>=28&&n.activeCall&&Ds.preencode(o,n.activeCall),d>=32&&n.lastMessageLabels&&Cs.preencode(o,n.lastMessageLabels),d>=33&&n.settings&&Ls.preencode(o,n.settings)},encode(o,n){const c=(n.selfDevice?1:0)|(n.selfMember?2:0)|(n.config?4:0)|(n.identity?8:0)|(n.lastMessage?16:0)|(n.dm?32:0)|(d>=19&&n.readLengths?64:0)|(d>=19&&n.lastMember?128:0)|(d>=21&&n.version?256:0)|(d>=27&&n.preferences?512:0)|(d>=28&&n.activeCall?1024:0)|(d>=32&&n.lastMessageLabels?2048:0)|(d>=33&&n.settings?4096:0);e.fixed32.encode(o,n.discoveryKey),e.buffer.encode(o,n.encryptionKey),Xi.encode(o,n.digest),Yi.encode(o,n.stats),Zi.encode(o,n.timestamps),e.uint.encode(o,n.fork),e.uint.encode(o,n.length),e.fixed32.encode(o,n.seed),$i.encode(o,n.capabilities),_i.encode(o,n.status),e.uint.encode(o,c),n.selfDevice&&ea.encode(o,n.selfDevice),n.selfMember&&da.encode(o,n.selfMember),n.config&&oa.encode(o,n.config),n.identity&&na.encode(o,n.identity),n.lastMessage&&ca.encode(o,n.lastMessage),n.dm&&ra.encode(o,n.dm),d>=19&&n.readLengths&&Ss.encode(o,n.readLengths),d>=19&&n.lastMember&&ta.encode(o,n.lastMember),d>=21&&n.version&&e.uint.encode(o,n.version),d>=27&&n.preferences&&ia.encode(o,n.preferences),d>=28&&n.activeCall&&Ds.encode(o,n.activeCall),d>=32&&n.lastMessageLabels&&Cs.encode(o,n.lastMessageLabels),d>=33&&n.settings&&Ls.encode(o,n.settings)},decode(o){const n=e.fixed32.decode(o),c=e.buffer.decode(o),r=Xi.decode(o),t=Yi.decode(o),i=Zi.decode(o),a=e.uint.decode(o),s=e.uint.decode(o),l=e.fixed32.decode(o),p=$i.decode(o),u=_i.decode(o),f=e.uint.decode(o);return{roomKey:null,discoveryKey:n,encryptionKey:c,digest:r,stats:t,timestamps:i,fork:a,length:s,seed:l,capabilities:p,status:u,selfDevice:1&f?ea.decode(o):null,selfMember:2&f?da.decode(o):null,config:4&f?oa.decode(o):null,identity:8&f?na.decode(o):null,lastMessage:16&f?ca.decode(o):null,dm:32&f?ra.decode(o):null,readLengths:d>=19&&64&f?Ss.decode(o):null,lastMember:d>=19&&128&f?ta.decode(o):null,version:d>=21&&256&f?e.uint.decode(o):0,preferences:d>=27&&512&f?ia.decode(o):null,activeCall:d>=28&&1024&f?Ds.decode(o):null,lastMessageLabels:d>=32&&2048&f?Cs.decode(o):null,settings:d>=33&&4096&f?Ls.decode(o):null}}},sa=Sn,la={preencode(e,d){sa.preencode(e,d.status)},encode(e,d){sa.encode(e,d.status)},decode:e=>({roomKey:null,status:sa.decode(e)})},pa={preencode(d,o){e.fixed32.preencode(d,o.key),d.end++,o.roomKey&&e.fixed32.preencode(d,o.roomKey),o.keyPair&&r.preencode(d,o.keyPair),o.responseKeyPair&&r.preencode(d,o.responseKeyPair)},encode(d,o){const n=(o.roomKey?1:0)|(o.keyPair?2:0)|(o.responseKeyPair?4:0);e.fixed32.encode(d,o.key),e.uint.encode(d,n),o.roomKey&&e.fixed32.encode(d,o.roomKey),o.keyPair&&r.encode(d,o.keyPair),o.responseKeyPair&&r.encode(d,o.responseKeyPair)},decode(d){const o=e.fixed32.decode(d),n=e.uint.decode(d);return{mailbox:null,key:o,roomKey:1&n?e.fixed32.decode(d):null,keyPair:2&n?r.decode(d):null,responseKeyPair:4&n?r.decode(d):null}}},ua=le,fa={preencode(e,d){ua.preencode(e,d.profile)},encode(e,d){ua.encode(e,d.profile)},decode:e=>({key:null,profile:ua.decode(e)})},ma=re,ya=te,ba={preencode(d,o){e.fixed32.preencode(d,o.memberKey),ma.preencode(d,o.status),js.preencode(d,o.profile),d.end++,o.invitation&&ya.preencode(d,o.invitation)},encode(d,o){const n=o.invitation?1:0;e.fixed32.encode(d,o.memberKey),ma.encode(d,o.status),js.encode(d,o.profile),e.uint.encode(d,n),o.invitation&&ya.encode(d,o.invitation)},decode:d=>({key:null,memberKey:e.fixed32.decode(d),status:ma.decode(d),profile:js.decode(d),invitation:1&e.uint.decode(d)?ya.decode(d):null})},xa=lr,va={preencode(d,o){e.fixed32.preencode(d,o.roomKey),xa.preencode(d,o.device)},encode(d,o){e.fixed32.encode(d,o.roomKey),xa.encode(d,o.device)},decode:d=>({roomKey:e.fixed32.decode(d),device:xa.decode(d)})},ga={preencode(o,n){Fs.preencode(o,n.status),o.end++,n.mailbox&&e.fixed32.preencode(o,n.mailbox),n.roomKey&&e.fixed32.preencode(o,n.roomKey),d>=32&&n.contactInfo&&qs.preencode(o,n.contactInfo),d>=32&&n.version&&e.uint.preencode(o,n.version),d>=34&&n.alias&&e.string.preencode(o,n.alias)},encode(o,n){const c=(n.mailbox?1:0)|(n.roomKey?2:0)|(d>=32&&n.contactInfo?4:0)|(d>=32&&n.version?8:0)|(d>=34&&n.alias?16:0);Fs.encode(o,n.status),e.uint.encode(o,c),n.mailbox&&e.fixed32.encode(o,n.mailbox),n.roomKey&&e.fixed32.encode(o,n.roomKey),d>=32&&n.contactInfo&&qs.encode(o,n.contactInfo),d>=32&&n.version&&e.uint.encode(o,n.version),d>=34&&n.alias&&e.string.encode(o,n.alias)},decode(o){const n=Fs.decode(o),c=e.uint.decode(o);return{memberKey:null,status:n,mailbox:1&c?e.fixed32.decode(o):null,roomKey:2&c?e.fixed32.decode(o):null,contactInfo:d>=32&&4&c?qs.decode(o):null,version:d>=32&&8&c?e.uint.decode(o):0,alias:d>=34&&16&c?e.string.decode(o):null}}},ka=Jc,Ka=Wc,ha=Gc,wa=Qc,Ra=Xc,Pa=Yc,Ta=Zc,Aa=$c,Ma=_c,Ia={preencode(d,o){const n=(o.restoreIdentity?1:0)|(o.createRoom?2:0)|(o.leaveRoom?4:0)|(o.clearRoom?8:0)|(o.joinRoomInvitation?16:0)|(o.joinRoomKeys?32:0)|(o.joinRoomResponse?64:0)|(o.sendContactRequest?128:0)|(o.migrateV2Room?256:0);e.uint.preencode(d,n),o.restoreIdentity&&ka.preencode(d,o.restoreIdentity),o.createRoom&&Ka.preencode(d,o.createRoom),o.leaveRoom&&ha.preencode(d,o.leaveRoom),o.clearRoom&&wa.preencode(d,o.clearRoom),o.joinRoomInvitation&&Ra.preencode(d,o.joinRoomInvitation),o.joinRoomKeys&&Pa.preencode(d,o.joinRoomKeys),o.joinRoomResponse&&Ta.preencode(d,o.joinRoomResponse),o.sendContactRequest&&Aa.preencode(d,o.sendContactRequest),o.migrateV2Room&&Ma.preencode(d,o.migrateV2Room)},encode(d,o){const n=(o.restoreIdentity?1:0)|(o.createRoom?2:0)|(o.leaveRoom?4:0)|(o.clearRoom?8:0)|(o.joinRoomInvitation?16:0)|(o.joinRoomKeys?32:0)|(o.joinRoomResponse?64:0)|(o.sendContactRequest?128:0)|(o.migrateV2Room?256:0);e.uint.encode(d,n),o.restoreIdentity&&ka.encode(d,o.restoreIdentity),o.createRoom&&Ka.encode(d,o.createRoom),o.leaveRoom&&ha.encode(d,o.leaveRoom),o.clearRoom&&wa.encode(d,o.clearRoom),o.joinRoomInvitation&&Ra.encode(d,o.joinRoomInvitation),o.joinRoomKeys&&Pa.encode(d,o.joinRoomKeys),o.joinRoomResponse&&Ta.encode(d,o.joinRoomResponse),o.sendContactRequest&&Aa.encode(d,o.sendContactRequest),o.migrateV2Room&&Ma.encode(d,o.migrateV2Room)},decode(d){const o=e.uint.decode(d);return{discoveryKey:null,priority:0,timestamp:0,type:0,restoreIdentity:1&o?ka.decode(d):null,createRoom:2&o?Ka.decode(d):null,leaveRoom:4&o?ha.decode(d):null,clearRoom:8&o?wa.decode(d):null,joinRoomInvitation:16&o?Ra.decode(d):null,joinRoomKeys:32&o?Pa.decode(d):null,joinRoomResponse:64&o?Ta.decode(d):null,sendContactRequest:128&o?Aa.decode(d):null,migrateV2Room:256&o?Ma.decode(d):null}}},Sa={preencode(d,o){e.uint.preencode(d,o.blockLength),e.uint.preencode(d,o.byteOffset),e.uint.preencode(d,o.byteLength)},encode(d,o){e.uint.encode(d,o.blockLength),e.uint.encode(d,o.byteOffset),e.uint.encode(d,o.byteLength)},decode:d=>({blockOffset:0,blockLength:e.uint.decode(d),byteOffset:e.uint.decode(d),byteLength:e.uint.decode(d)})},Da={preencode(e,d){a.preencode(e,d.blob)},encode(e,d){a.encode(e,d.blob)},decode:e=>({key:null,blob:a.decode(e)})},Ca=m,La=y,ja={preencode(d,o){d.end++,o.inlined&&e.buffer.preencode(d,o.inlined),o.blob&&a.preencode(d,o.blob),o.externalBlob&&Ca.preencode(d,o.externalBlob),o.externalDrive&&La.preencode(d,o.externalDrive)},encode(d,o){const n=(o.inlined?1:0)|(o.blob?2:0)|(o.externalBlob?4:0)|(o.externalDrive?8:0);e.uint.encode(d,n),o.inlined&&e.buffer.encode(d,o.inlined),o.blob&&a.encode(d,o.blob),o.externalBlob&&Ca.encode(d,o.externalBlob),o.externalDrive&&La.encode(d,o.externalDrive)},decode(d){const o=e.uint.decode(d);return{inlined:1&o?e.buffer.decode(d):null,blob:2&o?a.decode(d):null,externalBlob:4&o?Ca.decode(d):null,externalDrive:8&o?La.decode(d):null}}},Fa=x,qa=v,Ba={preencode(d,o){Fa.preencode(d,o.pointer),d.end++,o.metadata&&qa.preencode(d,o.metadata),o.preview&&Bs.preencode(d,o.preview),o.hash&&e.fixed32.preencode(d,o.hash)},encode(d,o){const n=(o.metadata?1:0)|(o.preview?2:0)|(o.hash?4:0);Fa.encode(d,o.pointer),e.uint.encode(d,n),o.metadata&&qa.encode(d,o.metadata),o.preview&&Bs.encode(d,o.preview),o.hash&&e.fixed32.encode(d,o.hash)},decode(d){const o=Fa.decode(d),n=e.uint.decode(d);return{pointer:o,metadata:1&n?qa.decode(d):null,preview:2&n?Bs.decode(d):null,hash:4&n?e.fixed32.decode(d):null}}},Ea=k,Va={preencode(o,n){Ea.preencode(o,n.file),e.fixed32.preencode(o,n.roomKey),o.end++,n.encryptionKey&&e.buffer.preencode(o,n.encryptionKey),d>=28&&n.lastAccessed&&e.uint.preencode(o,n.lastAccessed),d>=28&&n.version&&e.uint.preencode(o,n.version)},encode(o,n){const c=(n.encryptionKey?1:0)|(n.cleared?2:0)|(n.own?4:0)|(d>=28&&n.lastAccessed?8:0)|(d>=28&&n.version?16:0);Ea.encode(o,n.file),e.fixed32.encode(o,n.roomKey),e.uint.encode(o,c),n.encryptionKey&&e.buffer.encode(o,n.encryptionKey),d>=28&&n.lastAccessed&&e.uint.encode(o,n.lastAccessed),d>=28&&n.version&&e.uint.encode(o,n.version)},decode(o){const n=Ea.decode(o),c=e.fixed32.decode(o),r=e.uint.decode(o);return{file:n,roomKey:c,encryptionKey:1&r?e.buffer.decode(o):null,cleared:!!(2&r),own:!!(4&r),lastAccessed:d>=28&&8&r?e.uint.decode(o):0,version:d>=28&&16&r?e.uint.decode(o):0}}},za={preencode(d,o){e.uint.preencode(d,o.size)},encode(d,o){e.uint.encode(d,o.size)},decode:d=>({key:null,path:null,version:0,size:e.uint.decode(d)})},Oa=m,Na=y,Ua={preencode(d,o){d.end++,o.inlined&&e.buffer.preencode(d,o.inlined),o.blob&&a.preencode(d,o.blob),o.externalBlob&&Oa.preencode(d,o.externalBlob),o.externalDrive&&Na.preencode(d,o.externalDrive)},encode(d,o){const n=(o.inlined?1:0)|(o.blob?2:0)|(o.externalBlob?4:0)|(o.externalDrive?8:0);e.uint.encode(d,n),o.inlined&&e.buffer.encode(d,o.inlined),o.blob&&a.encode(d,o.blob),o.externalBlob&&Oa.encode(d,o.externalBlob),o.externalDrive&&Na.encode(d,o.externalDrive)},decode(d){const o=e.uint.decode(d);return{inlined:1&o?e.buffer.decode(d):null,blob:2&o?a.decode(d):null,externalBlob:4&o?Oa.decode(d):null,externalDrive:8&o?Na.decode(d):null}}},Ha=x,Ja=v,Wa={preencode(d,o){Ha.preencode(d,o.pointer),d.end++,o.metadata&&Ja.preencode(d,o.metadata),o.preview&&Es.preencode(d,o.preview),o.hash&&e.fixed32.preencode(d,o.hash)},encode(d,o){const n=(o.metadata?1:0)|(o.preview?2:0)|(o.hash?4:0);Ha.encode(d,o.pointer),e.uint.encode(d,n),o.metadata&&Ja.encode(d,o.metadata),o.preview&&Es.encode(d,o.preview),o.hash&&e.fixed32.encode(d,o.hash)},decode(d){const o=Ha.decode(d),n=e.uint.decode(d);return{pointer:o,metadata:1&n?Ja.decode(d):null,preview:2&n?Es.decode(d):null,hash:4&n?e.fixed32.decode(d):null}}},Ga=k,Qa={preencode(o,n){Ga.preencode(o,n.file),e.fixed32.preencode(o,n.roomKey),o.end++,n.encryptionKey&&e.buffer.preencode(o,n.encryptionKey),d>=28&&n.lastAccessed&&e.uint.preencode(o,n.lastAccessed),d>=28&&n.version&&e.uint.preencode(o,n.version)},encode(o,n){const c=(n.encryptionKey?1:0)|(n.cleared?2:0)|(n.own?4:0)|(d>=28&&n.lastAccessed?8:0)|(d>=28&&n.version?16:0);Ga.encode(o,n.file),e.fixed32.encode(o,n.roomKey),e.uint.encode(o,c),n.encryptionKey&&e.buffer.encode(o,n.encryptionKey),d>=28&&n.lastAccessed&&e.uint.encode(o,n.lastAccessed),d>=28&&n.version&&e.uint.encode(o,n.version)},decode(o){const n=Ga.decode(o),c=e.fixed32.decode(o),r=e.uint.decode(o);return{file:n,roomKey:c,encryptionKey:1&r?e.buffer.decode(o):null,cleared:!!(2&r),own:!!(4&r),lastAccessed:d>=28&&8&r?e.uint.decode(o):0,version:d>=28&&16&r?e.uint.decode(o):0}}},Xa={preencode(d,o){e.uint.preencode(d,o.timestamp),d.end++,o.lastSynced&&e.uint.preencode(d,o.lastSynced)},encode(d,o){const n=(o.lastSynced?1:0)|(o.dirty?2:0);e.uint.encode(d,o.timestamp),e.uint.encode(d,n),o.lastSynced&&e.uint.encode(d,o.lastSynced)},decode(d){const o=e.uint.decode(d),n=e.uint.decode(d);return{discoveryPublicKey:null,timestamp:o,lastSynced:1&n?e.uint.decode(d):0,dirty:!!(2&n)}}},Ya={preencode(e,d){},encode(e,d){},decode:e=>({key:null,responsePublicKey:null})},Za={preencode(o,n){o.end++,d>=10&&n.repairs&&e.uint.preencode(o,n.repairs)},encode(o,n){const c=d>=10&&n.repairs?1:0;e.uint.encode(o,c),d>=10&&n.repairs&&e.uint.encode(o,n.repairs)},decode(o){const n=e.uint.decode(o);return{roomKey:null,repairs:d>=10&&1&n?e.uint.decode(o):0}}},$a={preencode(d,o){e.uint.preencode(d,o.count)},encode(d,o){e.uint.encode(d,o.count)},decode:d=>({roomKey:null,count:e.uint.decode(d)})},_a=jt,es={preencode(o,n){e.string.preencode(o,n.code),e.string.preencode(o,n.message),e.string.preencode(o,n.stack),o.end++,d>=20&&n.details&&_a.preencode(o,n.details)},encode(o,n){const c=d>=20&&n.details?1:0;e.string.encode(o,n.code),e.string.encode(o,n.message),e.string.encode(o,n.stack),e.uint.encode(o,c),d>=20&&n.details&&_a.encode(o,n.details)},decode(o){const n=e.string.decode(o),c=e.string.decode(o),r=e.string.decode(o),t=e.uint.decode(o);return{code:n,message:c,stack:r,timestamp:0,details:d>=20&&1&t?_a.decode(o):null}}},ds={preencode(d,o){e.uint.preencode(d,o.total)},encode(d,o){e.uint.encode(d,o.total)},decode:d=>({roomKey:null,total:e.uint.decode(d)})},os={preencode(d,o){e.buffer.preencode(d,o.proof),e.uint.preencode(d,o.createdAt)},encode(d,o){e.buffer.encode(d,o.proof),e.uint.encode(d,o.createdAt)},decode:d=>({deviceKey:null,proof:e.buffer.decode(d),createdAt:e.uint.decode(d)})},ns=e.frame(w),cs=ns,rs=e.array(ct),ts=e.frame(se),is=ns,as=ts,ss=e.frame(qr),ls=ts,ps=e.frame(fd),us=e.frame(Sr),fs=e.frame(Gt),ms=fs,ys=e.array(e.frame(tt)),bs=ns,xs=e.frame(On),vs=e.frame(Cr),gs=xs,ks=vs,Ks=xs,hs=vs,ws=e.frame(Br),Rs=vs,Ps=e.array(e.frame(Pt)),Ts=e.frame(mi),As=e.frame(Li),Ms=e.frame(Ei),Is=ns,Ss=Ps,Ds=Ts,Cs=As,Ls=Ms,js=ts,Fs=xs,qs=vs,Bs=ns,Es=ns;function Vs(e){switch(e){case"@keet/head":return o;case"@keet/oplog-id":return n;case"@keet/encryption-keypair":return c;case"@keet/signing-keypair":return r;case"@keet/room-keys":return t;case"@keet/operation-header":return i;case"@keet/blob-pointer":return a;case"@keet/file-dimensions":return s;case"@keet/file-metadata":return p;case"@keet/external-drive-pointer":return u;case"@keet/external-blob-pointer":return f;case"@keet/file-pointer":return b;case"@keet/file":return g;case"@keet/image-file":return w;case"@keet/file-status":return R;case"@keet/file-record":return A;case"@keet/device-status":return M;case"@keet/member-status":return I;case"@keet/member-moderation-status":return S;case"@keet/abi":return D;case"@keet/device-stats":return C;case"@keet/member-stats":return L;case"@keet/chat-stats":return j;case"@keet/file-stats":return F;case"@keet/stats":return z;case"@keet/room-type":return N;case"@keet/system-settings":return U;case"@keet/system-digest":return W;case"@keet/room-seed":return G;case"@keet/room-capabilities":return Q;case"@keet/room-config":return Y;case"@keet/blind-peer":return Z;case"@keet/add-blind-peer-operation":return ee;case"@keet/remove-blind-peer-operation":return oe;case"@keet/identity-attestation":return ne;case"@keet/device-invitation":return ce;case"@keet/device":return ie;case"@keet/member-profile":return ae;case"@keet/device-profile":return se;case"@keet/member-update":return pe;case"@keet/device-update":return ue;case"@keet/signed-pairing-data":return fe;case"@keet/device-request-identity":return me;case"@keet/device-response-identity":return ye;case"@keet/device-request-with-invitation":return ge;case"@keet/device-request-with-invitation-and-proof":return Ke;case"@keet/device-request-with-member-proof":return Re;case"@keet/device-request":return Ae;case"@keet/device-response":return Se;case"@keet/invitation-metadata":return De;case"@keet/invitation":return je;case"@keet/add-invitation-operation":return Be;case"@keet/remove-invitation-operation":return Ve;case"@keet/sendable-room-invitation":return ze;case"@keet/sendable-identity-invitation":return Oe;case"@keet/sendable-contact-invitation":return Ne;case"@keet/sendable-invitation":return Ge;case"@keet/add-device-operation":return Xe;case"@keet/update-device-operation":return Ze;case"@keet/start-indexing-operation":return $e;case"@keet/stop-indexing-operation":return _e;case"@keet/join-request":return dd;case"@keet/accept-join-request-operation":return cd;case"@keet/reject-join-request-operation":return td;case"@keet/member":return sd;case"@keet/full-member":return ud;case"@keet/member-proofs":return fd;case"@keet/update-member-operation":return bd;case"@keet/change-member-status-operation":return gd;case"@keet/change-member-role-operation":return Kd;case"@keet/remove-member-operation":return wd;case"@keet/member-activity":return Rd;case"@keet/member-joined-event":return Pd;case"@keet/member-left-event":return Td;case"@keet/title-changed-chat-event":return Ad;case"@keet/chat-event":return Dd;case"@keet/sendable-event":return Cd;case"@keet/display-range":return Ld;case"@keet/display-content-range":return Fd;case"@keet/mention-display-item":return Bd;case"@keet/link-preview":return zd;case"@keet/display-link-item":return Ud;case"@keet/display":return _d;case"@keet/oplog-message":return co;case"@keet/index-message":return io;case"@keet/full-index-message":return lo;case"@keet/message-status":return po;case"@keet/message-index-id":return uo;case"@keet/thread":return mo;case"@keet/chat-message-record":return vo;case"@keet/full-chat-message-record":return ho;case"@keet/add-chat-message-operation":return Po;case"@keet/remove-chat-message-operation":return Ao;case"@keet/update-chat-message-operation":return So;case"@keet/pin-chat-message-operation":return Co;case"@keet/reaction":return Lo;case"@keet/reactions-summary":return jo;case"@keet/reactions-digest":return qo;case"@keet/add-reaction-operation":return Eo;case"@keet/remove-reaction-operation":return zo;case"@keet/update-room-config-operation":return Uo;case"@keet/group-member":return Ho;case"@keet/user-registry-info":return Jo;case"@keet/room-identity":return Go;case"@keet/genesis-operation":return dn;case"@keet/upgrade-operation":return nn;case"@keet/update-system-settings-operation":return tn;case"@keet-private-id/contact":return an;case"@keet-private-id/v3-room-migration-info":return sn;case"@keet-private-id/run-v3-migration-operation":return un;case"@keet-private-id/update-identity-operation":return mn;case"@keet-private-id/counters":return yn;case"@keet-private-id/stats":return bn;case"@keet-private-id/add-entropy-operation":return xn;case"@keet-private-id/pending-invitation-identity":return vn;case"@keet-private-id/pending-invitation":return kn;case"@keet-private-id/resolve-pending-invitation-operation":return hn;case"@keet-private-id/add-pending-invitation-operation":return Pn;case"@keet-private-id/remove-pending-invitation-operation":return An;case"@keet-private-id/identity-swap":return Mn;case"@keet-private-id/room-status":return In;case"@keet-private-id/room":return Ln;case"@keet-private-id/add-room-operation":return Fn;case"@keet-private-id/remove-room-operation":return Bn;case"@keet-private-id/update-room-status-operation":return zn;case"@keet-private-id/contact-status":return On;case"@keet-private-id/contact-record":return Nn;case"@keet-private-id/add-contact-operation":return Jn;case"@keet-private-id/update-contact-status-operation":return Gn;case"@keet-private-id/remove-contact-operation":return Xn;case"@keet-private-id/contact-request-status":return Yn;case"@keet-private-id/contact-request-body":return _n;case"@keet-private-id/contact-request":return dc;case"@keet-private-id/contact-request-record":return rc;case"@keet-private-id/add-contact-request-operation":return ic;case"@keet-private-id/update-contact-request-status-operation":return lc;case"@keet-private-id/profile-discovery-record-v1":return pc;case"@keet-private-id/profile-discovery-record":return uc;case"@local/background-sync-room":return fc;case"@local/stats":return mc;case"@local/migration-status":return yc;case"@local/v3-private-profile-migration":return xc;case"@local/v3-room-migration":return kc;case"@local/room-migration-stats":return Kc;case"@local/room-migration":return wc;case"@local/identity-status":return Rc;case"@local/identity-record":return Ac;case"@local/tasks":return Ic;case"@local/room-keys":return Sc;case"@local/join-room-invitation-task":return Cc;case"@local/join-room-response-task":return Lc;case"@local/fast-forward-to":return jc;case"@local/add-room-fields":return Fc;case"@local/join-room-keys-task":return Bc;case"@local/create-room-task":return Vc;case"@local/leave-room-task":return zc;case"@local/clear-room-task":return Oc;case"@local/restore-identity-task":return Nc;case"@local/send-contact-request-task":return Uc;case"@local/migrate-v2-room-task":return Hc;case"@local/task":return er;case"@local/shared-invitation":return or;case"@local/room-status":return nr;case"@local/room-timestamps":return cr;case"@local/room":return vr;case"@local/room-preferences":return kr;case"@local/writer":return Kr;case"@local/member":return wr;case"@local/device":return Pr;case"@local/file":return Ar;case"@keet/add-file-preview-operation":return Ir;case"@keet/member-removed-event":return Sr;case"@keet/member-contact-info":return Cr;case"@keet/remove-device-operation":return jr;case"@keet/device-identity":return Fr;case"@keet/readonly-room-invitation":return qr;case"@keet-private-id/identity-swap-v2":return Br;case"@keet-private-id/activate-contact-room-operation":return Vr;case"@local/identity-swap":return zr;case"@local/writer-append":return Or;case"@local/room-metadata":return Nr;case"@local/debug-flag":return Ur;case"@local/debug":return Jr;case"@keet/display-type":return Gr;case"@keet/test-increment-operation":return Xr;case"@keet/test-collection-record-1":return Yr;case"@keet/migrate-abi-operation":return $r;case"@keet/system-settings-keys":return et;case"@local/hyperdht-record":return ot;case"@keet/room-supported-language":return ct;case"@keet/translation-display-item":return tt;case"@local/unread":return it;case"@keet-private-id/unreads":return at;case"@keet-private-id/add-unreads-key-operation":return lt;case"@keet-private-id/remove-unreads-key-operation":return ut;case"@keet/label-type":return mt;case"@keet/chat-label":return yt;case"@keet/add-chat-label-operation":return xt;case"@keet/remove-chat-label-operation":return gt;case"@keet/chat-label-summary":return kt;case"@keet/chat-label-digest":return ht;case"@keet/update-read-length-operation":return Rt;case"@keet/read-length":return Pt;case"@keet/tmp-removed-member":return Tt;case"@keet-private-id/settings":return At;case"@keet-private-id/user-settings-key":return It;case"@keet-private-id/update-settings-operation":return Ct;case"@local/error-record-details":return Lt;case"@local/error-record":return Ft;case"@local/keet-state":return Bt;case"@local/file-stats":return Et;case"@keet/member-label-type":return zt;case"@keet/member-label":return Ot;case"@keet/add-member-label-operation":return Ut;case"@keet/member-label-summary":return Ht;case"@keet/member-label-digest":return Wt;case"@keet/location-shared-event":return Gt;case"@keet/move-indexer-operation":return Xt;case"@keet/start-call":return $t;case"@keet/join-call":return di;case"@keet/leave-call":return ni;case"@keet/end-call":return ri;case"@keet/add-call-stream":return ii;case"@keet/remove-call-stream":return si;case"@keet/call-record":return li;case"@keet/call-member-record":return pi;case"@keet/call-device-record":return ui;case"@keet/call-stream-record":return fi;case"@local/active-call":return mi;case"@local/file-gc-info":return yi;case"@keet/build-type":return xi;case"@keet/test-crash-operation":return gi;case"@keet/test-dispatch-error-operation":return Ki;case"@local/environment-record":return hi;case"@keet-private-id/shorten-device-attestation-operation":return Ri;case"@local/ota-actions":return Pi;case"@local/device-attestation":return Ti;case"@keet/call-device-heartbeat":return Mi;case"@keet/remove-call-device":return Si;case"@local/chat-labels":return Li;case"@keet/start-call-recording":return Fi;case"@keet/stop-call-recording":return Bi;case"@local/settings":return Ei;case"@local/hyperswarm-record":return Vi;case"@keet/dismiss-chat-reports-operation":return Oi;case"@keet/update-typing-indicator-operation":return Ui;case"@keet/typing-indicator":return Hi;case"@keet-private-id/update-contact-alias-operation":return Wi;case"@local/room-migration/hyperdb#3":return Qi;case"@local/room/hyperdb#6":return aa;case"@local/room-preferences/hyperdb#13":return la;case"@local/writer/hyperdb#14":return pa;case"@local/member/hyperdb#17":return fa;case"@keet/device/hyperdb#18":return ba;case"@local/device/hyperdb#18":return va;case"@keet-private-id/contact/hyperdb#19":return ga;case"@local/task/hyperdb#21":return Ia;case"@keet/blob-pointer/hyperdb#23":return Sa;case"@keet/external-blob-pointer/hyperdb#23":return Da;case"@keet/file-pointer/hyperdb#23":return ja;case"@keet/file/hyperdb#23":return Ba;case"@local/file/hyperdb#23":return Va;case"@keet/external-drive-pointer/hyperdb#24":return za;case"@keet/file-pointer/hyperdb#24":return Ua;case"@keet/file/hyperdb#24":return Wa;case"@local/file/hyperdb#24":return Qa;case"@local/background-sync-room/hyperdb#27":return Xa;case"@local/writer-append/hyperdb#29":return Ya;case"@local/room-metadata/hyperdb#30":return Za;case"@local/unread/hyperdb#33":return $a;case"@local/error-record/hyperdb#35":return es;case"@local/file-stats/hyperdb#37":return ds;case"@local/device-attestation/hyperdb#44":return os;default:throw new Error("Encoder not found "+e)}}function zs(e,o=34){const n=Vs(e);return{preencode(e,c){d=o,n.preencode(e,c)},encode(e,c){d=o,n.encode(e,c)},decode:e=>(d=o,n.decode(e))}}const Os=zs;module.exports={resolveStruct:Os,getStruct:zs,getEnum:function(e){switch(e){case"@keet/room-type":return O;case"@local/tasks":return Mc;case"@keet/display-type":return Wr;case"@keet/system-settings-keys":return _r;case"@keet/room-supported-language":return nt;case"@keet/label-type":return ft;case"@keet-private-id/user-settings-key":return Mt;case"@local/keet-state":return qt;case"@keet/member-label-type":return Vt;case"@keet/build-type":return bi;default:throw new Error("Enum not found "+e)}},getEncoding:Vs,encode:function(o,n,c=34){return d=c,e.encode(Vs(o),n)},decode:function(o,n,c=34){return d=c,e.decode(Vs(o),n)},setVersion:function(e){d=e},version:d};
1const{c:e}=require("hyperschema/runtime");let d=39;const o={preencode(d,o){e.fixed32.preencode(d,o.key),e.uint.preencode(d,o.length)},encode(d,o){e.fixed32.encode(d,o.key),e.uint.encode(d,o.length)},decode:d=>({key:e.fixed32.decode(d),length:e.uint.decode(d)})},n={preencode(d,o){e.fixed32.preencode(d,o.key),e.uint.preencode(d,o.seq)},encode(d,o){e.fixed32.encode(d,o.key),e.uint.encode(d,o.seq)},decode:d=>({key:e.fixed32.decode(d),seq:e.uint.decode(d)})},c={preencode(d,o){e.fixed32.preencode(d,o.publicKey),e.fixed32.preencode(d,o.secretKey)},encode(d,o){e.fixed32.encode(d,o.publicKey),e.fixed32.encode(d,o.secretKey)},decode:d=>({publicKey:e.fixed32.decode(d),secretKey:e.fixed32.decode(d)})},r={preencode(d,o){e.fixed32.preencode(d,o.publicKey),e.fixed64.preencode(d,o.secretKey)},encode(d,o){e.fixed32.encode(d,o.publicKey),e.fixed64.encode(d,o.secretKey)},decode:d=>({publicKey:e.fixed32.decode(d),secretKey:e.fixed64.decode(d)})},t={preencode(n,c){e.fixed32.preencode(n,c.key),n.end++,c.encryptionKey&&e.buffer.preencode(n,c.encryptionKey),c.fastForwardTo&&e.fixed32.preencode(n,c.fastForwardTo),d>=37&&c.bootFrom&&o.preencode(n,c.bootFrom)},encode(n,c){const r=(c.encryptionKey?1:0)|(c.fastForwardTo?2:0)|(d>=37&&c.bootFrom?4:0);e.fixed32.encode(n,c.key),e.uint.encode(n,r),c.encryptionKey&&e.buffer.encode(n,c.encryptionKey),c.fastForwardTo&&e.fixed32.encode(n,c.fastForwardTo),d>=37&&c.bootFrom&&o.encode(n,c.bootFrom)},decode(n){const c=e.fixed32.decode(n),r=e.uint.decode(n);return{key:c,encryptionKey:1&r?e.buffer.decode(n):null,fastForwardTo:2&r?e.fixed32.decode(n):null,bootFrom:d>=37&&4&r?o.decode(n):null}}},i={preencode(d,o){e.uint.preencode(d,o.timestamp)},encode(d,o){e.uint.encode(d,o.timestamp)},decode:d=>({timestamp:e.uint.decode(d)})},a={preencode(d,o){e.uint.preencode(d,o.blockOffset),e.uint.preencode(d,o.blockLength),e.uint.preencode(d,o.byteOffset),e.uint.preencode(d,o.byteLength)},encode(d,o){e.uint.encode(d,o.blockOffset),e.uint.encode(d,o.blockLength),e.uint.encode(d,o.byteOffset),e.uint.encode(d,o.byteLength)},decode:d=>({blockOffset:e.uint.decode(d),blockLength:e.uint.decode(d),byteOffset:e.uint.decode(d),byteLength:e.uint.decode(d)})},s={preencode(d,o){e.uint.preencode(d,o.width),e.uint.preencode(d,o.height)},encode(d,o){e.uint.encode(d,o.width),e.uint.encode(d,o.height)},decode:d=>({width:e.uint.decode(d),height:e.uint.decode(d)})},l=e.frame(s),p={preencode(d,o){d.end++,o.name&&e.string.preencode(d,o.name),o.mimetype&&e.string.preencode(d,o.mimetype),o.dimensions&&l.preencode(d,o.dimensions),o.userdata&&e.buffer.preencode(d,o.userdata),o.duration&&e.uint.preencode(d,o.duration)},encode(d,o){const n=(o.name?1:0)|(o.mimetype?2:0)|(o.dimensions?4:0)|(o.userdata?8:0)|(o.duration?16:0)|(o.isPreview?32:0);e.uint.encode(d,n),o.name&&e.string.encode(d,o.name),o.mimetype&&e.string.encode(d,o.mimetype),o.dimensions&&l.encode(d,o.dimensions),o.userdata&&e.buffer.encode(d,o.userdata),o.duration&&e.uint.encode(d,o.duration)},decode(d){const o=e.uint.decode(d);return{name:1&o?e.string.decode(d):null,mimetype:2&o?e.string.decode(d):null,dimensions:4&o?l.decode(d):null,userdata:8&o?e.buffer.decode(d):null,duration:16&o?e.uint.decode(d):0,isPreview:!!(32&o)}}},u={preencode(d,o){e.fixed32.preencode(d,o.key),e.string.preencode(d,o.path),e.uint.preencode(d,o.version),e.uint.preencode(d,o.size)},encode(d,o){e.fixed32.encode(d,o.key),e.string.encode(d,o.path),e.uint.encode(d,o.version),e.uint.encode(d,o.size)},decode:d=>({key:e.fixed32.decode(d),path:e.string.decode(d),version:e.uint.decode(d),size:e.uint.decode(d)})},f={preencode(d,o){e.fixed32.preencode(d,o.key),a.preencode(d,o.blob)},encode(d,o){e.fixed32.encode(d,o.key),a.encode(d,o.blob)},decode:d=>({key:e.fixed32.decode(d),blob:a.decode(d)})},m=e.frame(f),y=e.frame(u),b={preencode(o,n){o.end++,n.inlined&&e.buffer.preencode(o,n.inlined),n.blob&&a.preencode(o,n.blob),n.externalBlob&&m.preencode(o,n.externalBlob),n.externalDrive&&y.preencode(o,n.externalDrive),d>=37&&n.bee&&_i.preencode(o,n.bee)},encode(o,n){const c=(n.inlined?1:0)|(n.blob?2:0)|(n.externalBlob?4:0)|(n.externalDrive?8:0)|(d>=37&&n.bee?16:0);e.uint.encode(o,c),n.inlined&&e.buffer.encode(o,n.inlined),n.blob&&a.encode(o,n.blob),n.externalBlob&&m.encode(o,n.externalBlob),n.externalDrive&&y.encode(o,n.externalDrive),d>=37&&n.bee&&_i.encode(o,n.bee)},decode(o){const n=e.uint.decode(o);return{inlined:1&n?e.buffer.decode(o):null,blob:2&n?a.decode(o):null,externalBlob:4&n?m.decode(o):null,externalDrive:8&n?y.decode(o):null,bee:d>=37&&16&n?_i.decode(o):null}}},x=e.frame(b),v=e.frame(p),g={preencode(d,o){x.preencode(d,o.pointer),d.end++,o.metadata&&v.preencode(d,o.metadata),o.preview&&Ds.preencode(d,o.preview),o.hash&&e.fixed32.preencode(d,o.hash)},encode(d,o){const n=(o.metadata?1:0)|(o.preview?2:0)|(o.hash?4:0);x.encode(d,o.pointer),e.uint.encode(d,n),o.metadata&&v.encode(d,o.metadata),o.preview&&Ds.encode(d,o.preview),o.hash&&e.fixed32.encode(d,o.hash)},decode(d){const o=x.decode(d),n=e.uint.decode(d);return{pointer:o,metadata:1&n?v.decode(d):null,preview:2&n?Ds.decode(d):null,hash:4&n?e.fixed32.decode(d):null}}},k=e.frame(g),K=k,h=k,w={preencode(e,d){e.end++,d.small&&k.preencode(e,d.small),d.medium&&K.preencode(e,d.medium),d.large&&h.preencode(e,d.large)},encode(d,o){const n=(o.small?1:0)|(o.medium?2:0)|(o.large?4:0);e.uint.encode(d,n),o.small&&k.encode(d,o.small),o.medium&&K.encode(d,o.medium),o.large&&h.encode(d,o.large)},decode(d){const o=e.uint.decode(d);return{small:1&o?k.decode(d):null,medium:2&o?K.decode(d):null,large:4&o?h.decode(d):null}}},R={preencode(e,d){e.end++},encode(d,o){const n=o.isDeleted?1:0;e.uint.encode(d,n)},decode:d=>({isDeleted:!!(1&e.uint.decode(d))})},P=e.frame(R),T=k,A={preencode(o,c){e.uint.preencode(o,c.id),n.preencode(o,c.oplog),P.preencode(o,c.status),T.preencode(o,c.file),o.end++,d>=22&&c.version&&e.uint.preencode(o,c.version)},encode(o,c){const r=d>=22&&c.version?1:0;e.uint.encode(o,c.id),n.encode(o,c.oplog),P.encode(o,c.status),T.encode(o,c.file),e.uint.encode(o,r),d>=22&&c.version&&e.uint.encode(o,c.version)},decode(o){const c=e.uint.decode(o),r=n.decode(o),t=P.decode(o),i=T.decode(o),a=o.start<o.end?e.uint.decode(o):0;return{id:c,oplog:r,status:t,file:i,version:d>=22&&1&a?e.uint.decode(o):0}}},M={preencode(e,d){e.end++},encode(d,o){const n=(o.isActive?1:0)|(o.isIndexing?2:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isActive:!!(1&o),isIndexing:!!(2&o)}}},S={preencode(o,n){const c=(n.isAdmin?1:0)|(n.isModerator?2:0)|(n.isPending?4:0)|(n.isActive?8:0)|(n.isMuted?16:0)|(n.isBanned?32:0)|(n.isShadowBanned?64:0)|(d>=19&&n.isRemoved?128:0);e.uint.preencode(o,c)},encode(o,n){const c=(n.isAdmin?1:0)|(n.isModerator?2:0)|(n.isPending?4:0)|(n.isActive?8:0)|(n.isMuted?16:0)|(n.isBanned?32:0)|(n.isShadowBanned?64:0)|(d>=19&&n.isRemoved?128:0);e.uint.encode(o,c)},decode(o){const n=e.uint.decode(o);return{isAdmin:!!(1&n),isModerator:!!(2&n),isPending:!!(4&n),isActive:!!(8&n),isMuted:!!(16&n),isBanned:!!(32&n),isShadowBanned:!!(64&n),isRemoved:d>=19&&!!(128&n)}}},I={preencode(e,d){e.end++},encode(d,o){const n=(o.isMuted?1:0)|(o.isBanned?2:0)|(o.isShadowBanned?4:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isMuted:!!(1&o),isBanned:!!(2&o),isShadowBanned:!!(4&o)}}},C={preencode(d,o){e.uint.preencode(d,o.version)},encode(d,o){e.uint.encode(d,o.version)},decode:d=>({version:e.uint.decode(d)})},V={preencode(d,o){e.uint.preencode(d,o.total),e.uint.preencode(d,o.active)},encode(d,o){e.uint.encode(d,o.total),e.uint.encode(d,o.active)},decode:d=>({total:e.uint.decode(d),active:e.uint.decode(d)})},H={preencode(d,o){e.uint.preencode(d,o.total),e.uint.preencode(d,o.active),e.uint.preencode(d,o.pending)},encode(d,o){e.uint.encode(d,o.total),e.uint.encode(d,o.active),e.uint.encode(d,o.pending)},decode:d=>({total:e.uint.decode(d),active:e.uint.decode(d),pending:e.uint.decode(d)})},F={preencode(o,n){e.uint.preencode(o,n.clock),e.uint.preencode(o,n.pinned),e.uint.preencode(o,n.threads),e.uint.preencode(o,n.timestamp),o.end++,d>=24&&n.flagsClock&&e.uint.preencode(o,n.flagsClock)},encode(o,n){const c=d>=24&&n.flagsClock?1:0;e.uint.encode(o,n.clock),e.uint.encode(o,n.pinned),e.uint.encode(o,n.threads),e.uint.encode(o,n.timestamp),e.uint.encode(o,c),d>=24&&n.flagsClock&&e.uint.encode(o,n.flagsClock)},decode(o){const n=e.uint.decode(o),c=e.uint.decode(o),r=e.uint.decode(o),t=e.uint.decode(o),i=o.start<o.end?e.uint.decode(o):0;return{clock:n,pinned:c,threads:r,timestamp:t,flagsClock:d>=24&&1&i?e.uint.decode(o):0}}},D={preencode(d,o){e.uint.preencode(d,o.clock)},encode(d,o){e.uint.encode(d,o.clock)},decode:d=>({clock:e.uint.decode(d)})},L=e.frame(V),j=e.frame(H),q=e.frame(F),B=e.frame(D),E={preencode(e,o){L.preencode(e,o.devices),j.preencode(e,o.members),q.preencode(e,o.chat),B.preencode(e,o.files),e.end++,d>=36&&o.calls&&Ls.preencode(e,o.calls)},encode(o,n){const c=d>=36&&n.calls?1:0;L.encode(o,n.devices),j.encode(o,n.members),q.encode(o,n.chat),B.encode(o,n.files),e.uint.encode(o,c),d>=36&&n.calls&&Ls.encode(o,n.calls)},decode(o){const n=L.decode(o),c=j.decode(o),r=q.decode(o),t=B.decode(o),i=o.start<o.end?e.uint.decode(o):0;return{devices:n,members:c,chat:r,files:t,calls:d>=36&&1&i?Ls.decode(o):null}}},z={Default:1,Broadcast:2,DirectMessage:3},O={preencode(e,d){e.end++},encode(d,o){if(o>3)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},N={preencode(o,n){const c=(n.roomType?1:0)|(n.isExperimental?2:0)|(n.isJoiningDisabled?4:0)|(n.isAppendingDisabled?8:0)|(n.isCallingDisabled?16:0)|(n.isMembershipEventsDisabled?32:0)|(d>=28&&n.isAttachmentsDisabled?64:0)|(d>=28&&n.isLinksDisabled?128:0)|(d>=29&&n.buildType?256:0)|(d>=33&&n.isRoomInviteHidden?512:0);e.uint.preencode(o,c),n.roomType&&O.preencode(o,n.roomType),d>=29&&n.buildType&&xi.preencode(o,n.buildType)},encode(o,n){const c=(n.roomType?1:0)|(n.isExperimental?2:0)|(n.isJoiningDisabled?4:0)|(n.isAppendingDisabled?8:0)|(n.isCallingDisabled?16:0)|(n.isMembershipEventsDisabled?32:0)|(d>=28&&n.isAttachmentsDisabled?64:0)|(d>=28&&n.isLinksDisabled?128:0)|(d>=29&&n.buildType?256:0)|(d>=33&&n.isRoomInviteHidden?512:0);e.uint.encode(o,c),n.roomType&&O.encode(o,n.roomType),d>=29&&n.buildType&&xi.encode(o,n.buildType)},decode(o){const n=e.uint.decode(o);return{roomType:1&n?O.decode(o):0,isExperimental:!!(2&n),isJoiningDisabled:!!(4&n),isAppendingDisabled:!!(8&n),isCallingDisabled:!!(16&n),isMembershipEventsDisabled:!!(32&n),isAttachmentsDisabled:d>=28&&!!(64&n),isLinksDisabled:d>=28&&!!(128&n),buildType:d>=29&&256&n?xi.decode(o):null,isRoomInviteHidden:d>=33&&!!(512&n)}}},U=e.frame(C),J=e.frame(N),W={preencode(d,o){U.preencode(d,o.abi),J.preencode(d,o.settings),e.uint.preencode(d,o.creationTime)},encode(d,o){U.encode(d,o.abi),J.encode(d,o.settings),e.uint.encode(d,o.creationTime)},decode:d=>({abi:U.decode(d),settings:J.decode(d),creationTime:e.uint.decode(d)})},G={preencode(d,o){e.fixed32.preencode(d,o.seed)},encode(d,o){e.fixed32.encode(d,o.seed)},decode:d=>({seed:e.fixed32.decode(d)})},Q={preencode(d,o){c.preencode(d,o.mailboxKeyPair),r.preencode(d,o.discoveryKeyPair),e.fixed32.preencode(d,o.wakeupTopic),e.fixed32.preencode(d,o.swarmTopic)},encode(d,o){c.encode(d,o.mailboxKeyPair),r.encode(d,o.discoveryKeyPair),e.fixed32.encode(d,o.wakeupTopic),e.fixed32.encode(d,o.swarmTopic)},decode:d=>({mailboxKeyPair:c.decode(d),discoveryKeyPair:r.decode(d),wakeupTopic:e.fixed32.decode(d),swarmTopic:e.fixed32.decode(d)})},X=e.array(e.fixed32),Y={preencode(o,n){o.end++,n.title&&e.string.preencode(o,n.title),n.avatar&&js.preencode(o,n.avatar),n.description&&e.string.preencode(o,n.description),d>=17&&n.supportedLanguages&&qs.preencode(o,n.supportedLanguages),d>=19&&n.blindPeers&&X.preencode(o,n.blindPeers)},encode(o,n){const c=(n.title?1:0)|(n.avatar?2:0)|(n.description?4:0)|(d>=17&&n.supportedLanguages?8:0)|(d>=19&&n.blindPeers?16:0);e.uint.encode(o,c),n.title&&e.string.encode(o,n.title),n.avatar&&js.encode(o,n.avatar),n.description&&e.string.encode(o,n.description),d>=17&&n.supportedLanguages&&qs.encode(o,n.supportedLanguages),d>=19&&n.blindPeers&&X.encode(o,n.blindPeers)},decode(o){const n=e.uint.decode(o);return{title:1&n?e.string.decode(o):null,avatar:2&n?js.decode(o):null,description:4&n?e.string.decode(o):null,supportedLanguages:d>=17&&8&n?qs.decode(o):null,blindPeers:d>=19&&16&n?X.decode(o):null}}},Z={preencode(d,o){e.fixed32.preencode(d,o.key)},encode(d,o){e.fixed32.encode(d,o.key)},decode:d=>({key:e.fixed32.decode(d)})},$=e.frame(i),_=e.frame(Z),ee={preencode(e,d){$.preencode(e,d.header),_.preencode(e,d.peer)},encode(e,d){$.encode(e,d.header),_.encode(e,d.peer)},decode:e=>({header:$.decode(e),peer:_.decode(e)})},de=$,oe={preencode(d,o){de.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){de.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:de.decode(d),key:e.fixed32.decode(d)})},ne={preencode(d,o){e.fixed32.preencode(d,o.memberKey),e.buffer.preencode(d,o.proof)},encode(d,o){e.fixed32.encode(d,o.memberKey),e.buffer.encode(d,o.proof)},decode:d=>({memberKey:e.fixed32.decode(d),proof:e.buffer.decode(d)})},ce={preencode(d,o){e.fixed32.preencode(d,o.id),e.buffer.preencode(d,o.response)},encode(d,o){e.fixed32.encode(d,o.id),e.buffer.encode(d,o.response)},decode:d=>({id:e.fixed32.decode(d),response:e.buffer.decode(d)})},re=e.frame(M),te=e.frame(ce),ie={preencode(d,o){e.fixed32.preencode(d,o.key),e.fixed32.preencode(d,o.memberKey),re.preencode(d,o.status),Bs.preencode(d,o.profile),d.end++,o.invitation&&te.preencode(d,o.invitation)},encode(d,o){const n=o.invitation?1:0;e.fixed32.encode(d,o.key),e.fixed32.encode(d,o.memberKey),re.encode(d,o.status),Bs.encode(d,o.profile),e.uint.encode(d,n),o.invitation&&te.encode(d,o.invitation)},decode:d=>({key:e.fixed32.decode(d),memberKey:e.fixed32.decode(d),status:re.decode(d),profile:Bs.decode(d),invitation:1&e.uint.decode(d)?te.decode(d):null})},ae={preencode(d,o){e.uint.preencode(d,o.timestamp),d.end++,o.mailbox&&e.fixed32.preencode(d,o.mailbox),o.displayName&&e.string.preencode(d,o.displayName),o.avatar&&Es.preencode(d,o.avatar),o.username&&e.string.preencode(d,o.username)},encode(d,o){const n=(o.mailbox?1:0)|(o.displayName?2:0)|(o.avatar?4:0)|(o.username?8:0);e.uint.encode(d,o.timestamp),e.uint.encode(d,n),o.mailbox&&e.fixed32.encode(d,o.mailbox),o.displayName&&e.string.encode(d,o.displayName),o.avatar&&Es.encode(d,o.avatar),o.username&&e.string.encode(d,o.username)},decode(d){const o=e.uint.decode(d),n=e.uint.decode(d);return{timestamp:o,mailbox:1&n?e.fixed32.decode(d):null,displayName:2&n?e.string.decode(d):null,avatar:4&n?Es.decode(d):null,username:8&n?e.string.decode(d):null}}},se={preencode(o,n){o.end++,n.swarmKey&&e.fixed32.preencode(o,n.swarmKey),n.name&&e.string.preencode(o,n.name),d>=29&&n.buildType&&xi.preencode(o,n.buildType)},encode(o,n){const c=(n.swarmKey?1:0)|(n.name?2:0)|(n.isMobile?4:0)|(d>=29&&n.buildType?8:0);e.uint.encode(o,c),n.swarmKey&&e.fixed32.encode(o,n.swarmKey),n.name&&e.string.encode(o,n.name),d>=29&&n.buildType&&xi.encode(o,n.buildType)},decode(o){const n=e.uint.decode(o);return{swarmKey:1&n?e.fixed32.decode(o):null,name:2&n?e.string.decode(o):null,isMobile:!!(4&n),buildType:d>=29&&8&n?xi.decode(o):null}}},le=e.frame(ae),pe={preencode(e,d){le.preencode(e,d.profile),ne.preencode(e,d.attestation)},encode(e,d){le.encode(e,d.profile),ne.encode(e,d.attestation)},decode:e=>({profile:le.decode(e),attestation:ne.decode(e)})},ue={preencode(e,d){zs.preencode(e,d.profile),ne.preencode(e,d.attestation)},encode(e,d){zs.encode(e,d.profile),ne.encode(e,d.attestation)},decode:e=>({profile:zs.decode(e),attestation:ne.decode(e)})},fe={preencode(d,o){e.fixed32.preencode(d,o.id),e.buffer.preencode(d,o.data),e.buffer.preencode(d,o.signature)},encode(d,o){e.fixed32.encode(d,o.id),e.buffer.encode(d,o.data),e.buffer.encode(d,o.signature)},decode:d=>({id:e.fixed32.decode(d),data:e.buffer.decode(d),signature:e.buffer.decode(d)})},me={preencode(d,o){e.fixed32.preencode(d,o.devicePublicKey)},encode(d,o){e.fixed32.encode(d,o.devicePublicKey)},decode:d=>({devicePublicKey:e.fixed32.decode(d)})},ye={preencode(d,o){ne.preencode(d,o.privateProfileIdentity),e.buffer.preencode(d,o.deviceProof)},encode(d,o){ne.encode(d,o.privateProfileIdentity),e.buffer.encode(d,o.deviceProof)},decode:d=>({privateProfileIdentity:ne.decode(d),deviceProof:e.buffer.decode(d)})},be=e.frame(ue),xe=e.frame(pe),ve=e.frame(me),ge={preencode(n,c){e.fixed32.preencode(n,c.deviceKey),r.preencode(n,c.keyPair),be.preencode(n,c.device),xe.preencode(n,c.member),n.end++,c.identity&&ve.preencode(n,c.identity),d>=37&&c.link&&o.preencode(n,c.link)},encode(n,c){const t=(c.identity?1:0)|(d>=37&&c.link?2:0);e.fixed32.encode(n,c.deviceKey),r.encode(n,c.keyPair),be.encode(n,c.device),xe.encode(n,c.member),e.uint.encode(n,t),c.identity&&ve.encode(n,c.identity),d>=37&&c.link&&o.encode(n,c.link)},decode(n){const c=e.fixed32.decode(n),t=r.decode(n),i=be.decode(n),a=xe.decode(n),s=e.uint.decode(n);return{deviceKey:c,keyPair:t,device:i,member:a,identity:1&s?ve.decode(n):null,link:d>=37&&2&s?o.decode(n):null}}},ke=e.frame(ge),Ke={preencode(d,o){e.fixed32.preencode(d,o.id),ke.preencode(d,o.request),e.buffer.preencode(d,o.signature)},encode(d,o){e.fixed32.encode(d,o.id),ke.encode(d,o.request),e.buffer.encode(d,o.signature)},decode:d=>({id:e.fixed32.decode(d),request:ke.decode(d),signature:e.buffer.decode(d)})},he=be,we=xe,Re={preencode(e,d){he.preencode(e,d.device),e.end++,d.member&&we.preencode(e,d.member)},encode(d,o){const n=o.member?1:0;he.encode(d,o.device),e.uint.encode(d,n),o.member&&we.encode(d,o.member)},decode:d=>({device:he.decode(d),member:1&e.uint.decode(d)?we.decode(d):null})},Pe=e.frame(Ke),Te=e.frame(Re),Ae={preencode(e,d){e.end++,d.withInvitation&&Pe.preencode(e,d.withInvitation),d.withMemberProof&&Te.preencode(e,d.withMemberProof)},encode(d,o){const n=(o.withInvitation?1:0)|(o.withMemberProof?2:0);e.uint.encode(d,n),o.withInvitation&&Pe.encode(d,o.withInvitation),o.withMemberProof&&Te.encode(d,o.withMemberProof)},decode(d){const o=e.uint.decode(d);return{withInvitation:1&o?Pe.decode(d):null,withMemberProof:2&o?Te.decode(d):null}}},Me=e.frame(fe),Se=e.frame(ye),Ie={preencode(e,d){Me.preencode(e,d.signedKeys),e.end++,d.identity&&Se.preencode(e,d.identity)},encode(d,o){const n=o.identity?1:0;Me.encode(d,o.signedKeys),e.uint.encode(d,n),o.identity&&Se.encode(d,o.identity)},decode:d=>({signedKeys:Me.decode(d),identity:1&e.uint.decode(d)?Se.decode(d):null})},Ce={preencode(o,n){o.end++,n.expiration&&e.uint.preencode(o,n.expiration),d>=29&&n.buildType&&xi.preencode(o,n.buildType)},encode(o,n){const c=(n.expiration?1:0)|(n.requiresConfirmation?2:0)|(n.canModerate?4:0)|(n.canAdmin?8:0)|(d>=29&&n.buildType?16:0);e.uint.encode(o,c),n.expiration&&e.uint.encode(o,n.expiration),d>=29&&n.buildType&&xi.encode(o,n.buildType)},decode(o){const n=e.uint.decode(o);return{expiration:1&n?e.uint.decode(o):0,requiresConfirmation:!!(2&n),canModerate:!!(4&n),canAdmin:!!(8&n),buildType:d>=29&&16&n?xi.decode(o):null}}},Ve=Me,He=e.frame(Ce),Fe={preencode(d,n){e.fixed32.preencode(d,n.id),Ve.preencode(d,n.response),He.preencode(d,n.metadata),d.end++,n.anchor&&o.preencode(d,n.anchor)},encode(d,n){const c=(n.anchor?1:0)|(n.isActive?2:0);e.fixed32.encode(d,n.id),Ve.encode(d,n.response),He.encode(d,n.metadata),e.uint.encode(d,c),n.anchor&&o.encode(d,n.anchor)},decode(d){const n=e.fixed32.decode(d),c=Ve.decode(d),r=He.decode(d),t=e.uint.decode(d);return{id:n,response:c,metadata:r,anchor:1&t?o.decode(d):null,isActive:!!(2&t)}}},De=$,Le=e.frame(Fe),je={preencode(e,d){De.preencode(e,d.header),Le.preencode(e,d.invitation)},encode(e,d){De.encode(e,d.header),Le.encode(e,d.invitation)},decode:e=>({header:De.decode(e),invitation:Le.decode(e)})},qe=$,Be={preencode(d,o){qe.preencode(d,o.header),e.fixed32.preencode(d,o.id)},encode(d,o){qe.encode(d,o.header),e.fixed32.encode(d,o.id)},decode:d=>({header:qe.decode(d),id:e.fixed32.decode(d)})},Ee={preencode(d,n){e.fixed32.preencode(d,n.mailbox),e.fixed32.preencode(d,n.invitationSeed),o.preencode(d,n.anchor)},encode(d,n){e.fixed32.encode(d,n.mailbox),e.fixed32.encode(d,n.invitationSeed),o.encode(d,n.anchor)},decode:d=>({mailbox:e.fixed32.decode(d),invitationSeed:e.fixed32.decode(d),anchor:o.decode(d)})},ze={preencode(d,n){e.fixed32.preencode(d,n.mailbox),e.fixed32.preencode(d,n.invitationSeed),o.preencode(d,n.anchor),e.fixed32.preencode(d,n.identityPublicKey)},encode(d,n){e.fixed32.encode(d,n.mailbox),e.fixed32.encode(d,n.invitationSeed),o.encode(d,n.anchor),e.fixed32.encode(d,n.identityPublicKey)},decode:d=>({mailbox:e.fixed32.decode(d),invitationSeed:e.fixed32.decode(d),anchor:o.decode(d),identityPublicKey:e.fixed32.decode(d)})},Oe={preencode(d,o){e.fixed32.preencode(d,o.mailbox)},encode(d,o){e.fixed32.encode(d,o.mailbox)},decode:d=>({mailbox:e.fixed32.decode(d)})},Ne=e.frame(Ee),Ue=e.frame(ze),Je=e.frame(Oe),We=e.array(e.ipv4Address),Ge={preencode(e,o){e.end++,o.room&&Ne.preencode(e,o.room),o.identity&&Ue.preencode(e,o.identity),o.contact&&Je.preencode(e,o.contact),d>=9&&o.readonly&&Os.preencode(e,o.readonly),d>=17&&o.additionalNodes&&We.preencode(e,o.additionalNodes),d>=29&&o.buildType&&xi.preencode(e,o.buildType),d>=37&&o["readonly-v2"]&&Ns.preencode(e,o["readonly-v2"])},encode(o,n){const c=(n.room?1:0)|(n.identity?2:0)|(n.contact?4:0)|(d>=9&&n.readonly?8:0)|(d>=17&&n.additionalNodes?16:0)|(d>=29&&n.buildType?32:0)|(d>=37&&n["readonly-v2"]?64:0);e.uint.encode(o,c),n.room&&Ne.encode(o,n.room),n.identity&&Ue.encode(o,n.identity),n.contact&&Je.encode(o,n.contact),d>=9&&n.readonly&&Os.encode(o,n.readonly),d>=17&&n.additionalNodes&&We.encode(o,n.additionalNodes),d>=29&&n.buildType&&xi.encode(o,n.buildType),d>=37&&n["readonly-v2"]&&Ns.encode(o,n["readonly-v2"])},decode(o){const n=e.uint.decode(o);return{room:1&n?Ne.decode(o):null,identity:2&n?Ue.decode(o):null,contact:4&n?Je.decode(o):null,readonly:d>=9&&8&n?Os.decode(o):null,additionalNodes:d>=17&&16&n?We.decode(o):null,buildType:d>=29&&32&n?xi.decode(o):null,"readonly-v2":d>=37&&64&n?Ns.decode(o):null}}},Qe=$,Xe={preencode(d,o){Qe.preencode(d,o.header),e.buffer.preencode(d,o.blindRequest)},encode(d,o){Qe.encode(d,o.header),e.buffer.encode(d,o.blindRequest)},decode:d=>({header:Qe.decode(d),blindRequest:e.buffer.decode(d)})},Ye=$,Ze={preencode(o,n){Ye.preencode(o,n.header),o.end++,n.profile&&Us.preencode(o,n.profile),d>=34&&n.key&&e.fixed32.preencode(o,n.key)},encode(o,n){const c=(n.profile?1:0)|(d>=34&&n.key?2:0);Ye.encode(o,n.header),e.uint.encode(o,c),n.profile&&Us.encode(o,n.profile),d>=34&&n.key&&e.fixed32.encode(o,n.key)},decode(o){const n=Ye.decode(o),c=e.uint.decode(o);return{header:n,profile:1&c?Us.decode(o):null,key:d>=34&&2&c?e.fixed32.decode(o):null}}},$e={preencode(e,d){},encode(e,d){},decode:e=>({})},_e=$e,ed=ke,dd={preencode(d,o){e.fixed32.preencode(d,o.deviceKey),e.fixed32.preencode(d,o.id),ed.preencode(d,o.request)},encode(d,o){e.fixed32.encode(d,o.deviceKey),e.fixed32.encode(d,o.id),ed.encode(d,o.request)},decode:d=>({deviceKey:e.fixed32.decode(d),id:e.fixed32.decode(d),request:ed.decode(d)})},od=$,nd=Se,cd={preencode(d,o){od.preencode(d,o.header),e.fixed32.preencode(d,o.deviceKey),d.end++,o.identity&&nd.preencode(d,o.identity)},encode(d,o){const n=o.identity?1:0;od.encode(d,o.header),e.fixed32.encode(d,o.deviceKey),e.uint.encode(d,n),o.identity&&nd.encode(d,o.identity)},decode:d=>({header:od.decode(d),deviceKey:e.fixed32.decode(d),identity:1&e.uint.decode(d)?nd.decode(d):null})},rd=$,td={preencode(d,o){rd.preencode(d,o.header),e.fixed32.preencode(d,o.deviceKey)},encode(d,o){rd.encode(d,o.header),e.fixed32.encode(d,o.deviceKey)},decode:d=>({header:rd.decode(d),deviceKey:e.fixed32.decode(d)})},id=e.frame(S),ad=le,sd={preencode(d,o){e.fixed32.preencode(d,o.key),id.preencode(d,o.status),ad.preencode(d,o.profile)},encode(d,o){e.fixed32.encode(d,o.key),id.encode(d,o.status),ad.encode(d,o.profile)},decode:d=>({key:e.fixed32.decode(d),status:id.decode(d),profile:ad.decode(d)})},ld=id,pd=le,ud={preencode(d,o){e.fixed32.preencode(d,o.key),ld.preencode(d,o.status),pd.preencode(d,o.profile),d.end++,o.proofs&&Js.preencode(d,o.proofs)},encode(d,o){const n=o.proofs?1:0;e.fixed32.encode(d,o.key),ld.encode(d,o.status),pd.encode(d,o.profile),e.uint.encode(d,n),o.proofs&&Js.encode(d,o.proofs)},decode:d=>({key:e.fixed32.decode(d),status:ld.decode(d),profile:pd.decode(d),proofs:1&e.uint.decode(d)?Js.decode(d):null})},fd={preencode(d,o){e.fixed32.preencode(d,o.key),d.end++,o.profileAttestation&&e.buffer.preencode(d,o.profileAttestation),o.latestReceipt&&e.buffer.preencode(d,o.latestReceipt)},encode(d,o){const n=(o.profileAttestation?1:0)|(o.latestReceipt?2:0);e.fixed32.encode(d,o.key),e.uint.encode(d,n),o.profileAttestation&&e.buffer.encode(d,o.profileAttestation),o.latestReceipt&&e.buffer.encode(d,o.latestReceipt)},decode(d){const o=e.fixed32.decode(d),n=e.uint.decode(d);return{key:o,profileAttestation:1&n?e.buffer.decode(d):null,latestReceipt:2&n?e.buffer.decode(d):null}}},md=$,yd=xe,bd={preencode(e,d){md.preencode(e,d.header),yd.preencode(e,d.member)},encode(e,d){md.encode(e,d.header),yd.encode(e,d.member)},decode:e=>({header:md.decode(e),member:yd.decode(e)})},xd=$,vd=e.frame(I),gd={preencode(d,o){xd.preencode(d,o.header),e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.key),vd.preencode(d,o.status)},encode(d,o){xd.encode(d,o.header),e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.key),vd.encode(d,o.status)},decode:d=>({header:xd.decode(d),memberKey:e.fixed32.decode(d),key:e.uint.decode(d),status:vd.decode(d)})},kd=$,Kd={preencode(d,o){kd.preencode(d,o.header),e.fixed32.preencode(d,o.key),d.end++},encode(d,o){const n=(o.isModerator?1:0)|(o.isAdmin?2:0);kd.encode(d,o.header),e.fixed32.encode(d,o.key),e.uint.encode(d,n)},decode(d){const o=kd.decode(d),n=e.fixed32.decode(d),c=e.uint.decode(d);return{header:o,key:n,isModerator:!!(1&c),isAdmin:!!(2&c)}}},hd=$,wd={preencode(d,o){hd.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){hd.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:hd.decode(d),key:e.fixed32.decode(d)})},Rd={preencode(d,o){e.fixed32.preencode(d,o.key),e.uint.preencode(d,o.mentions)},encode(d,o){e.fixed32.encode(d,o.key),e.uint.encode(d,o.mentions)},decode:d=>({key:e.fixed32.decode(d),mentions:e.uint.decode(d)})},Pd={preencode(d,o){d.end++,o.memberKey&&e.fixed32.preencode(d,o.memberKey)},encode(d,o){const n=o.memberKey?1:0;e.uint.encode(d,n),o.memberKey&&e.fixed32.encode(d,o.memberKey)},decode:d=>({memberKey:1&e.uint.decode(d)?e.fixed32.decode(d):null})},Td=Pd,Ad={preencode(d,o){d.end++,o.from&&e.string.preencode(d,o.from),o.to&&e.string.preencode(d,o.to)},encode(d,o){const n=(o.from?1:0)|(o.to?2:0);e.uint.encode(d,n),o.from&&e.string.encode(d,o.from),o.to&&e.string.encode(d,o.to)},decode(d){const o=e.uint.decode(d);return{from:1&o?e.string.decode(d):null,to:2&o?e.string.decode(d):null}}},Md=e.frame(Pd),Sd=e.frame(Td),Id=e.frame(Ad),Cd={preencode(o,n){const c=(n.memberJoined?1:0)|(n.memberLeft?2:0)|(n.titleChanged?4:0)|(n.callStarted?8:0)|(n.callHangup?16:0)|(n.callMissed?32:0)|(d>=4&&n.roomAvatarChanged?64:0)|(d>=4&&n.invitationCreated?128:0)|(d>=4&&n.memberRemoved?256:0)|(d>=27&&n.locationShared?512:0);e.uint.preencode(o,c),n.memberJoined&&Md.preencode(o,n.memberJoined),n.memberLeft&&Sd.preencode(o,n.memberLeft),n.titleChanged&&Id.preencode(o,n.titleChanged),d>=4&&n.memberRemoved&&Ws.preencode(o,n.memberRemoved),d>=27&&n.locationShared&&Gs.preencode(o,n.locationShared)},encode(o,n){const c=(n.memberJoined?1:0)|(n.memberLeft?2:0)|(n.titleChanged?4:0)|(n.callStarted?8:0)|(n.callHangup?16:0)|(n.callMissed?32:0)|(d>=4&&n.roomAvatarChanged?64:0)|(d>=4&&n.invitationCreated?128:0)|(d>=4&&n.memberRemoved?256:0)|(d>=27&&n.locationShared?512:0);e.uint.encode(o,c),n.memberJoined&&Md.encode(o,n.memberJoined),n.memberLeft&&Sd.encode(o,n.memberLeft),n.titleChanged&&Id.encode(o,n.titleChanged),d>=4&&n.memberRemoved&&Ws.encode(o,n.memberRemoved),d>=27&&n.locationShared&&Gs.encode(o,n.locationShared)},decode(o){const n=e.uint.decode(o);return{memberJoined:1&n?Md.decode(o):null,memberLeft:2&n?Sd.decode(o):null,titleChanged:4&n?Id.decode(o):null,callStarted:!!(8&n),callHangup:!!(16&n),callMissed:!!(32&n),roomAvatarChanged:d>=4&&!!(64&n),invitationCreated:d>=4&&!!(128&n),memberRemoved:d>=4&&256&n?Ws.decode(o):null,locationShared:d>=27&&512&n?Gs.decode(o):null}}},Vd={preencode(e,o){e.end++,d>=27&&o.locationShared&&Qs.preencode(e,o.locationShared)},encode(o,n){const c=(n.callStarted?1:0)|(n.callHangup?2:0)|(n.callMissed?4:0)|(d>=27&&n.locationShared?8:0);e.uint.encode(o,c),d>=27&&n.locationShared&&Qs.encode(o,n.locationShared)},decode(o){const n=e.uint.decode(o);return{callStarted:!!(1&n),callHangup:!!(2&n),callMissed:!!(4&n),locationShared:d>=27&&8&n?Qs.decode(o):null}}},Hd={preencode(d,o){e.uint.preencode(d,o.start),e.uint.preencode(d,o.length)},encode(d,o){e.uint.encode(d,o.start),e.uint.encode(d,o.length)},decode:d=>({start:e.uint.decode(d),length:e.uint.decode(d)})},Fd=e.frame(Hd),Dd={preencode(d,o){Fd.preencode(d,o.range),e.string.preencode(d,o.content)},encode(d,o){Fd.encode(d,o.range),e.string.encode(d,o.content)},decode:d=>({range:Fd.decode(d),content:e.string.decode(d)})},Ld=Fd,jd={preencode(d,o){Ld.preencode(d,o.range),e.fixed32.preencode(d,o.memberKey)},encode(d,o){Ld.encode(d,o.range),e.fixed32.encode(d,o.memberKey)},decode:d=>({range:Ld.decode(d),memberKey:e.fixed32.decode(d)})},qd=k,Bd=e.array(e.uint),Ed={preencode(o,n){o.end++,n.title&&e.string.preencode(o,n.title),n.description&&e.string.preencode(o,n.description),n.file&&qd.preencode(o,n.file),d>=12&&n.files&&Bd.preencode(o,n.files)},encode(o,n){const c=(n.title?1:0)|(n.description?2:0)|(n.file?4:0)|(d>=12&&n.files?8:0);e.uint.encode(o,c),n.title&&e.string.encode(o,n.title),n.description&&e.string.encode(o,n.description),n.file&&qd.encode(o,n.file),d>=12&&n.files&&Bd.encode(o,n.files)},decode(o){const n=e.uint.decode(o);return{title:1&n?e.string.decode(o):null,description:2&n?e.string.decode(o):null,file:4&n?qd.decode(o):null,files:d>=12&&8&n?Bd.decode(o):null}}},zd=Fd,Od=e.frame(Ed),Nd={preencode(d,o){zd.preencode(d,o.range),e.string.preencode(d,o.url),d.end++,o.preview&&Od.preencode(d,o.preview)},encode(d,o){const n=o.preview?1:0;zd.encode(d,o.range),e.string.encode(d,o.url),e.uint.encode(d,n),o.preview&&Od.encode(d,o.preview)},decode:d=>({range:zd.decode(d),url:e.string.decode(d),preview:1&e.uint.decode(d)?Od.decode(d):null})},Ud=e.array(e.frame(jd)),Jd=e.array(e.frame(Nd)),Wd=Jd,Gd=e.array(e.frame(Hd)),Qd=Gd,Xd=Gd,Yd=e.array(e.frame(Dd)),Zd=Gd,$d=Gd,_d={preencode(o,n){const c=(n.mention?1:0)|(n.httpLink?2:0)|(n.pearLink?4:0)|(n.bold?8:0)|(n.italic?16:0)|(n.code?32:0)|(n.emoji?64:0)|(n.codeBlock?128:0)|(n.strike?256:0)|(d>=17&&n.translation?512:0);e.uint.preencode(o,c),n.mention&&Ud.preencode(o,n.mention),n.httpLink&&Jd.preencode(o,n.httpLink),n.pearLink&&Wd.preencode(o,n.pearLink),n.bold&&Gd.preencode(o,n.bold),n.italic&&Qd.preencode(o,n.italic),n.code&&Xd.preencode(o,n.code),n.emoji&&Yd.preencode(o,n.emoji),n.codeBlock&&Zd.preencode(o,n.codeBlock),n.strike&&$d.preencode(o,n.strike),d>=17&&n.translation&&Xs.preencode(o,n.translation)},encode(o,n){const c=(n.mention?1:0)|(n.httpLink?2:0)|(n.pearLink?4:0)|(n.bold?8:0)|(n.italic?16:0)|(n.code?32:0)|(n.emoji?64:0)|(n.codeBlock?128:0)|(n.strike?256:0)|(d>=17&&n.translation?512:0);e.uint.encode(o,c),n.mention&&Ud.encode(o,n.mention),n.httpLink&&Jd.encode(o,n.httpLink),n.pearLink&&Wd.encode(o,n.pearLink),n.bold&&Gd.encode(o,n.bold),n.italic&&Qd.encode(o,n.italic),n.code&&Xd.encode(o,n.code),n.emoji&&Yd.encode(o,n.emoji),n.codeBlock&&Zd.encode(o,n.codeBlock),n.strike&&$d.encode(o,n.strike),d>=17&&n.translation&&Xs.encode(o,n.translation)},decode(o){const n=e.uint.decode(o);return{mention:1&n?Ud.decode(o):null,httpLink:2&n?Jd.decode(o):null,pearLink:4&n?Wd.decode(o):null,bold:8&n?Gd.decode(o):null,italic:16&n?Qd.decode(o):null,code:32&n?Xd.decode(o):null,emoji:64&n?Yd.decode(o):null,codeBlock:128&n?Zd.decode(o):null,strike:256&n?$d.decode(o):null,translation:d>=17&&512&n?Xs.decode(o):null}}},eo=e.array(e.frame(g)),oo=e.frame(_d),no=e.frame(Vd),co={preencode(d,o){d.end++,o.text&&e.string.preencode(d,o.text),o.files&&eo.preencode(d,o.files),o.display&&oo.preencode(d,o.display),o.replyTo&&n.preencode(d,o.replyTo),o.parent&&n.preencode(d,o.parent),o.event&&no.preencode(d,o.event)},encode(o,c){const r=(c.text?1:0)|(c.files?2:0)|(c.display?4:0)|(c.replyTo?8:0)|(c.parent?16:0)|(c.event?32:0)|(d>=27&&c.forwarded?64:0);e.uint.encode(o,r),c.text&&e.string.encode(o,c.text),c.files&&eo.encode(o,c.files),c.display&&oo.encode(o,c.display),c.replyTo&&n.encode(o,c.replyTo),c.parent&&n.encode(o,c.parent),c.event&&no.encode(o,c.event)},decode(o){const c=e.uint.decode(o);return{text:1&c?e.string.decode(o):null,files:2&c?eo.decode(o):null,display:4&c?oo.decode(o):null,replyTo:8&c?n.decode(o):null,parent:16&c?n.decode(o):null,event:32&c?no.decode(o):null,forwarded:d>=27&&!!(64&c)}}},ro=Bd,to=oo,io={preencode(d,o){d.end++,o.text&&e.string.preencode(d,o.text),o.files&&ro.preencode(d,o.files),o.display&&to.preencode(d,o.display),o.replyTo&&n.preencode(d,o.replyTo),o.parent&&n.preencode(d,o.parent)},encode(o,c){const r=(c.text?1:0)|(c.files?2:0)|(c.display?4:0)|(c.replyTo?8:0)|(c.parent?16:0)|(d>=27&&c.forwarded?32:0);e.uint.encode(o,r),c.text&&e.string.encode(o,c.text),c.files&&ro.encode(o,c.files),c.display&&to.encode(o,c.display),c.replyTo&&n.encode(o,c.replyTo),c.parent&&n.encode(o,c.parent)},decode(o){const c=e.uint.decode(o);return{text:1&c?e.string.decode(o):null,files:2&c?ro.decode(o):null,display:4&c?to.decode(o):null,replyTo:8&c?n.decode(o):null,parent:16&c?n.decode(o):null,forwarded:d>=27&&!!(32&c)}}},ao=eo,so=oo,lo={preencode(d,o){d.end++,o.text&&e.string.preencode(d,o.text),o.files&&ao.preencode(d,o.files),o.display&&so.preencode(d,o.display),o.replyTo&&n.preencode(d,o.replyTo),o.parent&&n.preencode(d,o.parent)},encode(o,c){const r=(c.text?1:0)|(c.files?2:0)|(c.display?4:0)|(c.replyTo?8:0)|(c.parent?16:0)|(d>=27&&c.forwarded?32:0);e.uint.encode(o,r),c.text&&e.string.encode(o,c.text),c.files&&ao.encode(o,c.files),c.display&&so.encode(o,c.display),c.replyTo&&n.encode(o,c.replyTo),c.parent&&n.encode(o,c.parent)},decode(o){const c=e.uint.decode(o);return{text:1&c?e.string.decode(o):null,files:2&c?ao.decode(o):null,display:4&c?so.decode(o):null,replyTo:8&c?n.decode(o):null,parent:16&c?n.decode(o):null,forwarded:d>=27&&!!(32&c)}}},po={preencode(e,d){e.end++},encode(d,o){const n=(o.isEdited?1:0)|(o.isDeleted?2:0)|(o.isPinned?4:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isEdited:!!(1&o),isDeleted:!!(2&o),isPinned:!!(4&o)}}},uo={preencode(d,o){e.uint.preencode(d,o.thread),e.uint.preencode(d,o.index)},encode(d,o){e.uint.encode(d,o.thread),e.uint.encode(d,o.index)},decode:d=>({thread:e.uint.decode(d),index:e.uint.decode(d)})},fo=e.frame(E),mo={preencode(d,o){e.uint.preencode(d,o.id),e.uint.preencode(d,o.count),d.end++,o.parent&&n.preencode(d,o.parent),o.stats&&fo.preencode(d,o.stats)},encode(d,o){const c=(o.parent?1:0)|(o.stats?2:0);e.uint.encode(d,o.id),e.uint.encode(d,o.count),e.uint.encode(d,c),o.parent&&n.encode(d,o.parent),o.stats&&fo.encode(d,o.stats)},decode(d){const o=e.uint.decode(d),c=e.uint.decode(d),r=e.uint.decode(d);return{id:o,count:c,parent:1&r?n.decode(d):null,stats:2&r?fo.decode(d):null}}},yo=e.frame(po),bo=e.frame(io),xo=e.frame(Cd),vo={preencode(d,o){uo.preencode(d,o.id),n.preencode(d,o.oplog),e.uint.preencode(d,o.clock),e.uint.preencode(d,o.timestamp),d.end++,o.editedAt&&e.uint.preencode(d,o.editedAt),yo.preencode(d,o.status),o.message&&bo.preencode(d,o.message),o.event&&xo.preencode(d,o.event)},encode(d,o){const c=(o.editedAt?1:0)|(o.message?2:0)|(o.event?4:0);uo.encode(d,o.id),n.encode(d,o.oplog),e.uint.encode(d,o.clock),e.uint.encode(d,o.timestamp),e.uint.encode(d,c),o.editedAt&&e.uint.encode(d,o.editedAt),yo.encode(d,o.status),o.message&&bo.encode(d,o.message),o.event&&xo.encode(d,o.event)},decode(d){const o=uo.decode(d),c=n.decode(d),r=e.uint.decode(d),t=e.uint.decode(d),i=e.uint.decode(d);return{id:o,oplog:c,clock:r,timestamp:t,editedAt:1&i?e.uint.decode(d):0,status:yo.decode(d),message:2&i?bo.decode(d):null,event:4&i?xo.decode(d):null}}},go=yo,ko=e.frame(lo),Ko=xo,ho={preencode(d,o){uo.preencode(d,o.id),n.preencode(d,o.oplog),e.uint.preencode(d,o.clock),e.uint.preencode(d,o.timestamp),d.end++,o.editedAt&&e.uint.preencode(d,o.editedAt),go.preencode(d,o.status),o.message&&ko.preencode(d,o.message),o.event&&Ko.preencode(d,o.event)},encode(d,o){const c=(o.editedAt?1:0)|(o.message?2:0)|(o.event?4:0);uo.encode(d,o.id),n.encode(d,o.oplog),e.uint.encode(d,o.clock),e.uint.encode(d,o.timestamp),e.uint.encode(d,c),o.editedAt&&e.uint.encode(d,o.editedAt),go.encode(d,o.status),o.message&&ko.encode(d,o.message),o.event&&Ko.encode(d,o.event)},decode(d){const o=uo.decode(d),c=n.decode(d),r=e.uint.decode(d),t=e.uint.decode(d),i=e.uint.decode(d);return{id:o,oplog:c,clock:r,timestamp:t,editedAt:1&i?e.uint.decode(d):0,status:go.decode(d),message:2&i?ko.decode(d):null,event:4&i?Ko.decode(d):null}}},wo=$,Ro=e.frame(co),Po={preencode(e,d){wo.preencode(e,d.header),Ro.preencode(e,d.message)},encode(e,d){wo.encode(e,d.header),Ro.encode(e,d.message)},decode:e=>({header:wo.decode(e),message:Ro.decode(e)})},To=$,Ao={preencode(e,d){To.preencode(e,d.header),n.preencode(e,d.oplog)},encode(e,d){To.encode(e,d.header),n.encode(e,d.oplog)},decode:e=>({header:To.decode(e),oplog:n.decode(e)})},Mo=$,So=Ro,Io={preencode(e,d){Mo.preencode(e,d.header),n.preencode(e,d.oplog),So.preencode(e,d.message)},encode(e,d){Mo.encode(e,d.header),n.encode(e,d.oplog),So.encode(e,d.message)},decode:e=>({header:Mo.decode(e),oplog:n.decode(e),message:So.decode(e)})},Co=$,Vo={preencode(e,d){Co.preencode(e,d.header),n.preencode(e,d.oplog),e.end++},encode(d,o){const c=o.isPinned?1:0;Co.encode(d,o.header),n.encode(d,o.oplog),e.uint.encode(d,c)},decode:d=>({header:Co.decode(d),oplog:n.decode(d),isPinned:!!(1&e.uint.decode(d))})},Ho={preencode(d,o){uo.preencode(d,o.id),e.fixed32.preencode(d,o.sender),e.uint.preencode(d,o.clock),e.string.preencode(d,o.reaction)},encode(d,o){uo.encode(d,o.id),e.fixed32.encode(d,o.sender),e.uint.encode(d,o.clock),e.string.encode(d,o.reaction)},decode:d=>({id:uo.decode(d),sender:e.fixed32.decode(d),clock:e.uint.decode(d),reaction:e.string.decode(d)})},Fo={preencode(d,o){e.string.preencode(d,o.text),e.uint.preencode(d,o.count)},encode(d,o){e.string.encode(d,o.text),e.uint.encode(d,o.count)},decode:d=>({text:e.string.decode(d),count:e.uint.decode(d)})},Do=e.array(e.frame(Fo)),Lo={preencode(o,n){uo.preencode(o,n.id),e.uint.preencode(o,n.total),Do.preencode(o,n.reactions),o.end++,d>=17&&n.editedAt&&e.uint.preencode(o,n.editedAt)},encode(o,n){const c=d>=17&&n.editedAt?1:0;uo.encode(o,n.id),e.uint.encode(o,n.total),Do.encode(o,n.reactions),e.uint.encode(o,c),d>=17&&n.editedAt&&e.uint.encode(o,n.editedAt)},decode(o){const n=uo.decode(o),c=e.uint.decode(o),r=Do.decode(o),t=o.start<o.end?e.uint.decode(o):0;return{id:n,total:c,reactions:r,editedAt:d>=17&&1&t?e.uint.decode(o):0}}},jo=$,qo={preencode(d,o){jo.preencode(d,o.header),n.preencode(d,o.oplog),e.string.preencode(d,o.reaction)},encode(d,o){jo.encode(d,o.header),n.encode(d,o.oplog),e.string.encode(d,o.reaction)},decode:d=>({header:jo.decode(d),oplog:n.decode(d),reaction:e.string.decode(d)})},Bo=$,Eo={preencode(d,o){Bo.preencode(d,o.header),n.preencode(d,o.oplog),e.string.preencode(d,o.reaction)},encode(d,o){Bo.encode(d,o.header),n.encode(d,o.oplog),e.string.encode(d,o.reaction)},decode:d=>({header:Bo.decode(d),oplog:n.decode(d),reaction:e.string.decode(d)})},zo=$,Oo=e.frame(Y),No={preencode(d,o){zo.preencode(d,o.header),e.uint.preencode(d,o.key),Oo.preencode(d,o.config)},encode(d,o){zo.encode(d,o.header),e.uint.encode(d,o.key),Oo.encode(d,o.config)},decode:d=>({header:zo.decode(d),key:e.uint.decode(d),config:Oo.decode(d)})},Uo={preencode(d,o){e.fixed32.preencode(d,o.memberKey),e.string.preencode(d,o.displayName),d.end++,o.avatar&&Ys.preencode(d,o.avatar)},encode(d,o){const n=o.avatar?1:0;e.fixed32.encode(d,o.memberKey),e.string.encode(d,o.displayName),e.uint.encode(d,n),o.avatar&&Ys.encode(d,o.avatar)},decode:d=>({memberKey:e.fixed32.decode(d),displayName:e.string.decode(d),avatar:1&e.uint.decode(d)?Ys.decode(d):null})},Jo={preencode(d,o){e.fixed32.preencode(d,o.key),d.end++,o.username&&e.string.preencode(d,o.username)},encode(d,o){const n=o.username?1:0;e.fixed32.encode(d,o.key),e.uint.encode(d,n),o.username&&e.string.encode(d,o.username)},decode:d=>({key:e.fixed32.decode(d),username:1&e.uint.decode(d)?e.string.decode(d):null})},Wo=e.frame(Jo),Go={preencode(d,o){e.fixed32.preencode(d,o.publicKey),d.end++,o.discoveryCoreKey&&e.fixed32.preencode(d,o.discoveryCoreKey),o.userRegistry&&Wo.preencode(d,o.userRegistry)},encode(d,o){const n=(o.discoveryCoreKey?1:0)|(o.userRegistry?2:0);e.fixed32.encode(d,o.publicKey),e.uint.encode(d,n),o.discoveryCoreKey&&e.fixed32.encode(d,o.discoveryCoreKey),o.userRegistry&&Wo.encode(d,o.userRegistry)},decode(d){const o=e.fixed32.decode(d),n=e.uint.decode(d);return{publicKey:o,discoveryCoreKey:1&n?e.fixed32.decode(d):null,userRegistry:2&n?Wo.decode(d):null}}},Qo=$,Xo=e.frame(W),Yo=e.frame(G),Zo=Oo,$o=e.frame(Go),_o=be,en=e.array(e.frame(pe)),dn={preencode(e,d){Qo.preencode(e,d.header),Xo.preencode(e,d.digest),Yo.preencode(e,d.capabilities),e.end++,d.config&&Zo.preencode(e,d.config),d.identity&&$o.preencode(e,d.identity),d.bootstrapDevice&&_o.preencode(e,d.bootstrapDevice),d.initialMembers&&en.preencode(e,d.initialMembers)},encode(d,o){const n=(o.config?1:0)|(o.identity?2:0)|(o.bootstrapDevice?4:0)|(o.initialMembers?8:0);Qo.encode(d,o.header),Xo.encode(d,o.digest),Yo.encode(d,o.capabilities),e.uint.encode(d,n),o.config&&Zo.encode(d,o.config),o.identity&&$o.encode(d,o.identity),o.bootstrapDevice&&_o.encode(d,o.bootstrapDevice),o.initialMembers&&en.encode(d,o.initialMembers)},decode(d){const o=Qo.decode(d),n=Xo.decode(d),c=Yo.decode(d),r=e.uint.decode(d);return{header:o,digest:n,capabilities:c,config:1&r?Zo.decode(d):null,identity:2&r?$o.decode(d):null,bootstrapDevice:4&r?_o.decode(d):null,initialMembers:8&r?en.decode(d):null}}},on=$,nn={preencode(d,o){on.preencode(d,o.header),e.uint.preencode(d,o.version)},encode(d,o){on.encode(d,o.header),e.uint.encode(d,o.version)},decode:d=>({header:on.decode(d),version:e.uint.decode(d)})},cn=$,rn=J,tn={preencode(d,o){cn.preencode(d,o.header),e.uint.preencode(d,o.key),rn.preencode(d,o.settings)},encode(d,o){cn.encode(d,o.header),e.uint.encode(d,o.key),rn.encode(d,o.settings)},decode:d=>({header:cn.decode(d),key:e.uint.decode(d),settings:rn.decode(d)})},an={preencode(o,n){e.fixed32.preencode(o,n.memberKey),Zs.preencode(o,n.status),o.end++,n.mailbox&&e.fixed32.preencode(o,n.mailbox),n.roomKey&&e.fixed32.preencode(o,n.roomKey),d>=32&&n.contactInfo&&$s.preencode(o,n.contactInfo),d>=32&&n.version&&e.uint.preencode(o,n.version),d>=34&&n.alias&&e.string.preencode(o,n.alias)},encode(o,n){const c=(n.mailbox?1:0)|(n.roomKey?2:0)|(d>=32&&n.contactInfo?4:0)|(d>=32&&n.version?8:0)|(d>=34&&n.alias?16:0);e.fixed32.encode(o,n.memberKey),Zs.encode(o,n.status),e.uint.encode(o,c),n.mailbox&&e.fixed32.encode(o,n.mailbox),n.roomKey&&e.fixed32.encode(o,n.roomKey),d>=32&&n.contactInfo&&$s.encode(o,n.contactInfo),d>=32&&n.version&&e.uint.encode(o,n.version),d>=34&&n.alias&&e.string.encode(o,n.alias)},decode(o){const n=e.fixed32.decode(o),c=Zs.decode(o),r=e.uint.decode(o);return{memberKey:n,status:c,mailbox:1&r?e.fixed32.decode(o):null,roomKey:2&r?e.fixed32.decode(o):null,contactInfo:d>=32&&4&r?$s.decode(o):null,version:d>=32&&8&r?e.uint.decode(o):0,alias:d>=34&&16&r?e.string.decode(o):null}}},sn={preencode(d,n){e.fixed32.preencode(d,n.roomKey),e.buffer.preencode(d,n.encryptionKey),e.fixed32.preencode(d,n.seed),o.preencode(d,n.initiator),e.fixed32.preencode(d,n.fastForwardTo)},encode(d,n){e.fixed32.encode(d,n.roomKey),e.buffer.encode(d,n.encryptionKey),e.fixed32.encode(d,n.seed),o.encode(d,n.initiator),e.fixed32.encode(d,n.fastForwardTo)},decode:d=>({roomKey:e.fixed32.decode(d),encryptionKey:e.buffer.decode(d),seed:e.fixed32.decode(d),initiator:o.decode(d),fastForwardTo:e.fixed32.decode(d)})},ln=e.array(e.frame(sn)),pn=X,un={preencode(e,d){ln.preencode(e,d.sharedRooms),pn.preencode(e,d.blockedContacts)},encode(e,d){ln.encode(e,d.sharedRooms),pn.encode(e,d.blockedContacts)},decode:e=>({sharedRooms:ln.decode(e),blockedContacts:pn.decode(e)})},fn=$o,mn={preencode(e,d){fn.preencode(e,d.identity)},encode(e,d){fn.encode(e,d.identity)},decode:e=>({identity:fn.decode(e)})},yn={preencode(d,o){e.uint.preencode(d,o.rooms),e.uint.preencode(d,o.contacts)},encode(d,o){e.uint.encode(d,o.rooms),e.uint.encode(d,o.contacts)},decode:d=>({rooms:e.uint.decode(d),contacts:e.uint.decode(d)})},bn={preencode(d,o){e.uint.preencode(d,o.rooms),e.uint.preencode(d,o.contactRequests)},encode(d,o){e.uint.encode(d,o.rooms),e.uint.encode(d,o.contactRequests)},decode:d=>({rooms:e.uint.decode(d),contactRequests:e.uint.decode(d)})},xn={preencode(d,o){e.buffer.preencode(d,o.entropy)},encode(d,o){e.buffer.encode(d,o.entropy)},decode:d=>({entropy:e.buffer.decode(d)})},vn={preencode(d,o){e.fixed32.preencode(d,o.publicKey),e.fixed32.preencode(d,o.devicePublicKey),e.fixed32.preencode(d,o.writerKey)},encode(d,o){e.fixed32.encode(d,o.publicKey),e.fixed32.encode(d,o.devicePublicKey),e.fixed32.encode(d,o.writerKey)},decode:d=>({publicKey:e.fixed32.decode(d),devicePublicKey:e.fixed32.decode(d),writerKey:e.fixed32.decode(d)})},gn=e.frame(vn),kn={preencode(n,c){e.fixed32.preencode(n,c.id),e.fixed32.preencode(n,c.invitationSeed),e.fixed32.preencode(n,c.mailbox),r.preencode(n,c.responseKeyPair),o.preencode(n,c.initiator),o.preencode(n,c.inviter),n.end++,c.identity&&gn.preencode(n,c.identity),d>=29&&c.buildType&&xi.preencode(n,c.buildType),d>=37&&c.link&&o.preencode(n,c.link)},encode(n,c){const t=(c.identity?1:0)|(d>=29&&c.buildType?2:0)|(d>=37&&c.link?4:0);e.fixed32.encode(n,c.id),e.fixed32.encode(n,c.invitationSeed),e.fixed32.encode(n,c.mailbox),r.encode(n,c.responseKeyPair),o.encode(n,c.initiator),o.encode(n,c.inviter),e.uint.encode(n,t),c.identity&&gn.encode(n,c.identity),d>=29&&c.buildType&&xi.encode(n,c.buildType),d>=37&&c.link&&o.encode(n,c.link)},decode(n){const c=e.fixed32.decode(n),t=e.fixed32.decode(n),i=e.fixed32.decode(n),a=r.decode(n),s=o.decode(n),l=o.decode(n),p=e.uint.decode(n);return{id:c,invitationSeed:t,mailbox:i,responseKeyPair:a,initiator:s,inviter:l,identity:1&p?gn.decode(n):null,buildType:d>=29&&2&p?xi.decode(n):null,link:d>=37&&4&p?o.decode(n):null}}},Kn=$,hn={preencode(d,o){Kn.preencode(d,o.header),e.buffer.preencode(d,o.blindResponse)},encode(d,o){Kn.encode(d,o.header),e.buffer.encode(d,o.blindResponse)},decode:d=>({header:Kn.decode(d),blindResponse:e.buffer.decode(d)})},wn=$,Rn=e.frame(kn),Pn={preencode(e,d){wn.preencode(e,d.header),Rn.preencode(e,d.invitation)},encode(e,d){wn.encode(e,d.header),Rn.encode(e,d.invitation)},decode:e=>({header:wn.decode(e),invitation:Rn.decode(e)})},Tn=$,An={preencode(d,o){Tn.preencode(d,o.header),e.fixed32.preencode(d,o.id)},encode(d,o){Tn.encode(d,o.header),e.fixed32.encode(d,o.id)},decode:d=>({header:Tn.decode(d),id:e.fixed32.decode(d)})},Mn={preencode(d,o){e.fixed32.preencode(d,o.publicKey),e.fixed32.preencode(d,o.devicePublicKey),d.end++,o.privateProfileKey&&e.fixed32.preencode(d,o.privateProfileKey),o.deviceKeyPair&&r.preencode(d,o.deviceKeyPair),e.buffer.preencode(d,o.deviceProof)},encode(d,o){const n=(o.privateProfileKey?1:0)|(o.deviceKeyPair?2:0);e.fixed32.encode(d,o.publicKey),e.fixed32.encode(d,o.devicePublicKey),e.uint.encode(d,n),o.privateProfileKey&&e.fixed32.encode(d,o.privateProfileKey),o.deviceKeyPair&&r.encode(d,o.deviceKeyPair),e.buffer.encode(d,o.deviceProof)},decode(d){const o=e.fixed32.decode(d),n=e.fixed32.decode(d),c=e.uint.decode(d);return{publicKey:o,devicePublicKey:n,privateProfileKey:1&c?e.fixed32.decode(d):null,deviceKeyPair:2&c?r.decode(d):null,deviceProof:e.buffer.decode(d)}}},Sn={preencode(o,n){o.end++,d>=35&&n.roomSnoozeTime&&e.uint.preencode(o,n.roomSnoozeTime)},encode(o,n){const c=(n.isActive?1:0)|(n.isFullyMuted?2:0)|(n.isMentionsOnlyMuted?4:0)|(d>=14&&n.isReadOnly?8:0)|(d>=27&&n.isFavorite?16:0)|(d>=31&&n.isUnread?32:0)|(d>=35&&n.roomSnoozeTime?64:0);e.uint.encode(o,c),d>=35&&n.roomSnoozeTime&&e.uint.encode(o,n.roomSnoozeTime)},decode(o){const n=e.uint.decode(o);return{isActive:!!(1&n),isFullyMuted:!!(2&n),isMentionsOnlyMuted:!!(4&n),isReadOnly:d>=14&&!!(8&n),isFavorite:d>=27&&!!(16&n),isUnread:d>=31&&!!(32&n),roomSnoozeTime:d>=35&&64&n?e.uint.decode(o):0}}},In=e.frame(Sn),Cn=e.frame(Mn),Vn=gn,Hn={preencode(n,c){e.fixed32.preencode(n,c.roomKey),e.buffer.preencode(n,c.encryptionKey),e.fixed32.preencode(n,c.mailbox),In.preencode(n,c.status),e.uint.preencode(n,c.clock),n.end++,c.initiator&&o.preencode(n,c.initiator),c.fastForwardTo&&e.fixed32.preencode(n,c.fastForwardTo),c.identitySwap&&Cn.preencode(n,c.identitySwap),d>=9&&c.identitySwapV2&&Vn.preencode(n,c.identitySwapV2),d>=15&&c.contact&&e.fixed32.preencode(n,c.contact),d>=37&&c.bootFrom&&o.preencode(n,c.bootFrom),d>=39&&c.activeClock&&e.uint.preencode(n,c.activeClock)},encode(n,c){const r=(c.initiator?1:0)|(c.fastForwardTo?2:0)|(c.identitySwap?4:0)|(d>=9&&c.identitySwapV2?8:0)|(d>=15&&c.contact?16:0)|(d>=37&&c.bootFrom?32:0)|(d>=39&&c.activeClock?64:0);e.fixed32.encode(n,c.roomKey),e.buffer.encode(n,c.encryptionKey),e.fixed32.encode(n,c.mailbox),In.encode(n,c.status),e.uint.encode(n,c.clock),e.uint.encode(n,r),c.initiator&&o.encode(n,c.initiator),c.fastForwardTo&&e.fixed32.encode(n,c.fastForwardTo),c.identitySwap&&Cn.encode(n,c.identitySwap),d>=9&&c.identitySwapV2&&Vn.encode(n,c.identitySwapV2),d>=15&&c.contact&&e.fixed32.encode(n,c.contact),d>=37&&c.bootFrom&&o.encode(n,c.bootFrom),d>=39&&c.activeClock&&e.uint.encode(n,c.activeClock)},decode(n){const c=e.fixed32.decode(n),r=e.buffer.decode(n),t=e.fixed32.decode(n),i=In.decode(n),a=e.uint.decode(n),s=e.uint.decode(n);return{roomKey:c,encryptionKey:r,mailbox:t,status:i,clock:a,initiator:1&s?o.decode(n):null,fastForwardTo:2&s?e.fixed32.decode(n):null,identitySwap:4&s?Cn.decode(n):null,identitySwapV2:d>=9&&8&s?Vn.decode(n):null,contact:d>=15&&16&s?e.fixed32.decode(n):null,bootFrom:d>=37&&32&s?o.decode(n):null,activeClock:d>=39&&64&s?e.uint.decode(n):0}}},Fn=$,Dn={preencode(d,n){Fn.preencode(d,n.header),e.fixed32.preencode(d,n.roomKey),e.buffer.preencode(d,n.encryptionKey),e.fixed32.preencode(d,n.mailbox),d.end++,n.fastForwardTo&&e.fixed32.preencode(d,n.fastForwardTo),n.initiator&&o.preencode(d,n.initiator),n.dm&&e.fixed32.preencode(d,n.dm)},encode(n,c){const r=(c.fastForwardTo?1:0)|(c.initiator?2:0)|(c.dm?4:0)|(d>=14&&c.isReadOnly?8:0);Fn.encode(n,c.header),e.fixed32.encode(n,c.roomKey),e.buffer.encode(n,c.encryptionKey),e.fixed32.encode(n,c.mailbox),e.uint.encode(n,r),c.fastForwardTo&&e.fixed32.encode(n,c.fastForwardTo),c.initiator&&o.encode(n,c.initiator),c.dm&&e.fixed32.encode(n,c.dm)},decode(n){const c=Fn.decode(n),r=e.fixed32.decode(n),t=e.buffer.decode(n),i=e.fixed32.decode(n),a=e.uint.decode(n);return{header:c,roomKey:r,encryptionKey:t,mailbox:i,fastForwardTo:1&a?e.fixed32.decode(n):null,initiator:2&a?o.decode(n):null,dm:4&a?e.fixed32.decode(n):null,isReadOnly:d>=14&&!!(8&a)}}},Ln=$,jn={preencode(d,o){Ln.preencode(d,o.header),e.fixed32.preencode(d,o.discoveryKey)},encode(d,o){Ln.encode(d,o.header),e.fixed32.encode(d,o.discoveryKey)},decode:d=>({header:Ln.decode(d),discoveryKey:e.fixed32.decode(d)})},qn=$,Bn=In,En={preencode(d,o){qn.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey),e.uint.preencode(d,o.key),Bn.preencode(d,o.status)},encode(d,o){qn.encode(d,o.header),e.fixed32.encode(d,o.roomKey),e.uint.encode(d,o.key),Bn.encode(d,o.status)},decode:d=>({header:qn.decode(d),roomKey:e.fixed32.decode(d),key:e.uint.decode(d),status:Bn.decode(d)})},zn={preencode(e,d){e.end++},encode(o,n){const c=(n.isBlocked?1:0)|(d>=32&&n.isActive?2:0);e.uint.encode(o,c)},decode(o){const n=e.uint.decode(o);return{isBlocked:!!(1&n),isActive:d>=32&&!!(2&n)}}},On={preencode(o,n){e.fixed32.preencode(o,n.memberKey),e.uint.preencode(o,n.clock),_s.preencode(o,n.status),o.end++,n.mailbox&&e.fixed32.preencode(o,n.mailbox),n.roomKey&&e.fixed32.preencode(o,n.roomKey),d>=32&&n.contactInfo&&el.preencode(o,n.contactInfo),d>=34&&n.alias&&e.string.preencode(o,n.alias)},encode(o,n){const c=(n.mailbox?1:0)|(n.roomKey?2:0)|(d>=32&&n.contactInfo?4:0)|(d>=34&&n.alias?8:0);e.fixed32.encode(o,n.memberKey),e.uint.encode(o,n.clock),_s.encode(o,n.status),e.uint.encode(o,c),n.mailbox&&e.fixed32.encode(o,n.mailbox),n.roomKey&&e.fixed32.encode(o,n.roomKey),d>=32&&n.contactInfo&&el.encode(o,n.contactInfo),d>=34&&n.alias&&e.string.encode(o,n.alias)},decode(o){const n=e.fixed32.decode(o),c=e.uint.decode(o),r=_s.decode(o),t=e.uint.decode(o);return{memberKey:n,clock:c,status:r,mailbox:1&t?e.fixed32.decode(o):null,roomKey:2&t?e.fixed32.decode(o):null,contactInfo:d>=32&&4&t?el.decode(o):null,alias:d>=34&&8&t?e.string.decode(o):null}}},Nn=$,Un=e.frame(an),Jn={preencode(e,d){Nn.preencode(e,d.header),Un.preencode(e,d.contact)},encode(e,d){Nn.encode(e,d.header),Un.encode(e,d.contact)},decode:e=>({header:Nn.decode(e),contact:Un.decode(e)})},Wn=$,Gn={preencode(d,o){Wn.preencode(d,o.header),e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.key),dl.preencode(d,o.status)},encode(d,o){Wn.encode(d,o.header),e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.key),dl.encode(d,o.status)},decode:d=>({header:Wn.decode(d),memberKey:e.fixed32.decode(d),key:e.uint.decode(d),status:dl.decode(d)})},Qn=$,Xn={preencode(d,o){Qn.preencode(d,o.header),e.fixed32.preencode(d,o.memberKey)},encode(d,o){Qn.encode(d,o.header),e.fixed32.encode(d,o.memberKey)},decode:d=>({header:Qn.decode(d),memberKey:e.fixed32.decode(d)})},Yn={preencode(e,d){e.end++},encode(d,o){const n=(o.isPending?1:0)|(o.isAccepted?2:0)|(o.isRejected?4:0)|(o.isDiscarded?8:0)|(o.isSeen?16:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isPending:!!(1&o),isAccepted:!!(2&o),isRejected:!!(4&o),isDiscarded:!!(8&o),isSeen:!!(16&o)}}},Zn=xe,$n=e.frame(t),_n={preencode(d,o){Zn.preencode(d,o.sender),$n.preencode(d,o.keys),e.fixed32.preencode(d,o.mailbox),d.end++,o.message&&e.string.preencode(d,o.message)},encode(d,o){const n=o.message?1:0;Zn.encode(d,o.sender),$n.encode(d,o.keys),e.fixed32.encode(d,o.mailbox),e.uint.encode(d,n),o.message&&e.string.encode(d,o.message)},decode:d=>({sender:Zn.decode(d),keys:$n.decode(d),mailbox:e.fixed32.decode(d),message:1&e.uint.decode(d)?e.string.decode(d):null})},ec=e.frame(_n),dc={preencode(e,d){ec.preencode(e,d.body),ne.preencode(e,d.attestation)},encode(e,d){ec.encode(e,d.body),ne.encode(e,d.attestation)},decode:e=>({body:ec.decode(e),attestation:ne.decode(e)})},oc=le,nc=e.frame(Yn),cc=$n,rc={preencode(o,n){e.fixed32.preencode(o,n.memberKey),e.uint.preencode(o,n.clock),oc.preencode(o,n.sender),nc.preencode(o,n.status),cc.preencode(o,n.keys),e.fixed32.preencode(o,n.mailbox),o.end++,n.message&&e.string.preencode(o,n.message),d>=17&&n.sentAt&&e.uint.preencode(o,n.sentAt),d>=32&&n.contactInfo&&ol.preencode(o,n.contactInfo)},encode(o,n){const c=(n.message?1:0)|(d>=17&&n.sentAt?2:0)|(d>=32&&n.contactInfo?4:0);e.fixed32.encode(o,n.memberKey),e.uint.encode(o,n.clock),oc.encode(o,n.sender),nc.encode(o,n.status),cc.encode(o,n.keys),e.fixed32.encode(o,n.mailbox),e.uint.encode(o,c),n.message&&e.string.encode(o,n.message),d>=17&&n.sentAt&&e.uint.encode(o,n.sentAt),d>=32&&n.contactInfo&&ol.encode(o,n.contactInfo)},decode(o){const n=e.fixed32.decode(o),c=e.uint.decode(o),r=oc.decode(o),t=nc.decode(o),i=cc.decode(o),a=e.fixed32.decode(o),s=e.uint.decode(o);return{memberKey:n,clock:c,sender:r,status:t,keys:i,mailbox:a,message:1&s?e.string.decode(o):null,sentAt:d>=17&&2&s?e.uint.decode(o):0,contactInfo:d>=32&&4&s?ol.decode(o):null}}},tc=$,ic={preencode(d,o){tc.preencode(d,o.header),e.buffer.preencode(d,o.blindRequest)},encode(d,o){tc.encode(d,o.header),e.buffer.encode(d,o.blindRequest)},decode:d=>({header:tc.decode(d),blindRequest:e.buffer.decode(d)})},ac=$,sc=nc,lc={preencode(o,n){ac.preencode(o,n.header),e.fixed32.preencode(o,n.memberKey),e.uint.preencode(o,n.key),sc.preencode(o,n.status),o.end++,d>=15&&n.roomKey&&e.fixed32.preencode(o,n.roomKey)},encode(o,n){const c=d>=15&&n.roomKey?1:0;ac.encode(o,n.header),e.fixed32.encode(o,n.memberKey),e.uint.encode(o,n.key),sc.encode(o,n.status),e.uint.encode(o,c),d>=15&&n.roomKey&&e.fixed32.encode(o,n.roomKey)},decode(o){const n=ac.decode(o),c=e.fixed32.decode(o),r=e.uint.decode(o),t=sc.decode(o),i=o.start<o.end?e.uint.decode(o):0;return{header:n,memberKey:c,key:r,status:t,roomKey:d>=15&&1&i?e.fixed32.decode(o):null}}},pc={preencode(d,o){e.uint.preencode(d,o.timestamp),e.fixed32.preencode(d,o.key),e.fixed32.preencode(d,o.mailbox)},encode(d,o){e.uint.encode(d,o.timestamp),e.fixed32.encode(d,o.key),e.fixed32.encode(d,o.mailbox)},decode:d=>({version:e.uint.decode(d),timestamp:e.uint.decode(d),key:e.fixed32.decode(d),mailbox:e.fixed32.decode(d)})},uc={preencode(d,o){const n=o.version??1;switch(e.uint.preencode(d,n),n){case 0:case 1:pc.preencode(d,o);break;default:throw new Error("Unsupported version")}},encode(d,o){const n=o.version??1;switch(e.uint.encode(d,n),n){case 0:case 1:pc.encode(d,o);break;default:throw new Error("Unsupported version")}},decode(d){const o=d.start,n=e.uint.decode(d);switch(d.start=o,n){case 0:case 1:return pc.decode(d);default:throw new Error("Unsupported version")}}},fc={preencode(d,o){e.fixed32.preencode(d,o.discoveryPublicKey),e.uint.preencode(d,o.timestamp),d.end++,o.lastSynced&&e.uint.preencode(d,o.lastSynced)},encode(d,o){const n=(o.lastSynced?1:0)|(o.dirty?2:0);e.fixed32.encode(d,o.discoveryPublicKey),e.uint.encode(d,o.timestamp),e.uint.encode(d,n),o.lastSynced&&e.uint.encode(d,o.lastSynced)},decode(d){const o=e.fixed32.decode(d),n=e.uint.decode(d),c=e.uint.decode(d);return{discoveryPublicKey:o,timestamp:n,lastSynced:1&c?e.uint.decode(d):0,dirty:!!(2&c)}}},mc={preencode(d,o){e.uint.preencode(d,o.rooms),e.uint.preencode(d,o.activeRooms)},encode(d,o){e.uint.encode(d,o.rooms),e.uint.encode(d,o.activeRooms)},decode:d=>({rooms:e.uint.decode(d),activeRooms:e.uint.decode(d)})},yc=C,bc=X,xc={preencode(e,d){e.end++,d.blockedMembers&&bc.preencode(e,d.blockedMembers)},encode(d,o){const n=o.blockedMembers?1:0;e.uint.encode(d,n),o.blockedMembers&&bc.encode(d,o.blockedMembers)},decode:d=>({blockedMembers:1&e.uint.decode(d)?bc.decode(d):null})},vc=e.frame(Q),gc=e.frame(xc),kc={preencode(d,n){e.buffer.preencode(d,n.encryptionKey),e.fixed32.preencode(d,n.seed),vc.preencode(d,n.capabilities),o.preencode(d,n.initiator),e.fixed32.preencode(d,n.fastForwardTo),d.end++,n.privateProfile&&gc.preencode(d,n.privateProfile)},encode(d,n){const c=n.privateProfile?1:0;e.buffer.encode(d,n.encryptionKey),e.fixed32.encode(d,n.seed),vc.encode(d,n.capabilities),o.encode(d,n.initiator),e.fixed32.encode(d,n.fastForwardTo),e.uint.encode(d,c),n.privateProfile&&gc.encode(d,n.privateProfile)},decode:d=>({encryptionKey:e.buffer.decode(d),seed:e.fixed32.decode(d),capabilities:vc.decode(d),initiator:o.decode(d),fastForwardTo:e.fixed32.decode(d),privateProfile:1&e.uint.decode(d)?gc.decode(d):null})},Kc={preencode(d,o){d.end++,o.count&&e.uint.preencode(d,o.count)},encode(d,o){const n=o.count?1:0;e.uint.encode(d,n),o.count&&e.uint.encode(d,o.count)},decode:d=>({count:1&e.uint.decode(d)?e.uint.decode(d):0})},hc=e.frame(kc),wc={preencode(o,n){e.fixed32.preencode(o,n.roomKey),e.uint.preencode(o,n.priority),o.end++,n.v3&&hc.preencode(o,n.v3),d>=5&&n.timestamp&&e.uint.preencode(o,n.timestamp)},encode(o,n){const c=(n.v3?1:0)|(d>=3&&n.errored?2:0)|(d>=5&&n.timestamp?4:0);e.fixed32.encode(o,n.roomKey),e.uint.encode(o,n.priority),e.uint.encode(o,c),n.v3&&hc.encode(o,n.v3),d>=5&&n.timestamp&&e.uint.encode(o,n.timestamp)},decode(o){const n=e.fixed32.decode(o),c=e.uint.decode(o),r=e.uint.decode(o);return{roomKey:n,priority:c,v3:1&r?hc.decode(o):null,errored:d>=3&&!!(2&r),timestamp:d>=5&&4&r?e.uint.decode(o):0}}},Rc={preencode(e,d){e.end++},encode(d,o){const n=o.isConfirmed?1:0;e.uint.encode(d,n)},decode:d=>({isConfirmed:!!(1&e.uint.decode(d))})},Pc=e.frame(Rc),Tc=Cn,Ac={preencode(o,n){e.fixed32.preencode(o,n.publicKey),e.fixed32.preencode(o,n.privateProfileKey),r.preencode(o,n.deviceKeyPair),e.buffer.preencode(o,n.deviceProof),Pc.preencode(o,n.status),o.end++,n.entropy&&e.buffer.preencode(o,n.entropy),n.swap&&Tc.preencode(o,n.swap),d>=9&&n.swapV2&&nl.preencode(o,n.swapV2),d>=31&&n.proofShortenedAt&&e.uint.preencode(o,n.proofShortenedAt)},encode(o,n){const c=(n.entropy?1:0)|(n.swap?2:0)|(d>=9&&n.swapV2?4:0)|(d>=31&&n.proofShortenedAt?8:0);e.fixed32.encode(o,n.publicKey),e.fixed32.encode(o,n.privateProfileKey),r.encode(o,n.deviceKeyPair),e.buffer.encode(o,n.deviceProof),Pc.encode(o,n.status),e.uint.encode(o,c),n.entropy&&e.buffer.encode(o,n.entropy),n.swap&&Tc.encode(o,n.swap),d>=9&&n.swapV2&&nl.encode(o,n.swapV2),d>=31&&n.proofShortenedAt&&e.uint.encode(o,n.proofShortenedAt)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),t=r.decode(o),i=e.buffer.decode(o),a=Pc.decode(o),s=e.uint.decode(o);return{publicKey:n,privateProfileKey:c,deviceKeyPair:t,deviceProof:i,status:a,entropy:1&s?e.buffer.decode(o):null,swap:2&s?Tc.decode(o):null,swapV2:d>=9&&4&s?nl.decode(o):null,proofShortenedAt:d>=31&&8&s?e.uint.decode(o):0}}},Mc={RestoreIdentity:1,CreateRoom:2,LeaveRoom:3,ClearRoom:4,JoinRoomInvitation:5,JoinRoomKeys:6,JoinRoomResponse:7,SendContactRequest:8,TestFastTask:9,TestSlowTask:10,TestErrorTask:11},Sc={preencode(e,d){e.end++},encode(d,o){if(o>11)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},Ic={preencode(d,n){e.fixed32.preencode(d,n.roomKey),e.buffer.preencode(d,n.encryptionKey),d.end++,n.fastForwardTo&&e.fixed32.preencode(d,n.fastForwardTo),n.initiator&&o.preencode(d,n.initiator)},encode(d,n){const c=(n.fastForwardTo?1:0)|(n.initiator?2:0);e.fixed32.encode(d,n.roomKey),e.buffer.encode(d,n.encryptionKey),e.uint.encode(d,c),n.fastForwardTo&&e.fixed32.encode(d,n.fastForwardTo),n.initiator&&o.encode(d,n.initiator)},decode(d){const n=e.fixed32.decode(d),c=e.buffer.decode(d),r=e.uint.decode(d);return{roomKey:n,encryptionKey:c,fastForwardTo:1&r?e.fixed32.decode(d):null,initiator:2&r?o.decode(d):null}}},Cc=Rn,Vc={preencode(e,d){Cc.preencode(e,d.invitation)},encode(e,d){Cc.encode(e,d.invitation)},decode:e=>({invitation:Cc.decode(e)})},Hc={preencode(d,o){e.fixed32.preencode(d,o.mailbox),r.preencode(d,o.keyPair),e.buffer.preencode(d,o.response)},encode(d,o){e.fixed32.encode(d,o.mailbox),r.encode(d,o.keyPair),e.buffer.encode(d,o.response)},decode:d=>({mailbox:e.fixed32.decode(d),keyPair:r.decode(d),response:e.buffer.decode(d)})},Fc=Z,Dc={preencode(d,n){e.fixed32.preencode(d,n.roomKey),e.buffer.preencode(d,n.encryptionKey),d.end++,n.fastForwardTo&&e.fixed32.preencode(d,n.fastForwardTo),n.initiator&&o.preencode(d,n.initiator),n.mailbox&&e.fixed32.preencode(d,n.mailbox)},encode(d,n){const c=(n.fastForwardTo?1:0)|(n.initiator?2:0)|(n.mailbox?4:0);e.fixed32.encode(d,n.roomKey),e.buffer.encode(d,n.encryptionKey),e.uint.encode(d,c),n.fastForwardTo&&e.fixed32.encode(d,n.fastForwardTo),n.initiator&&o.encode(d,n.initiator),n.mailbox&&e.fixed32.encode(d,n.mailbox)},decode(d){const n=e.fixed32.decode(d),c=e.buffer.decode(d),r=e.uint.decode(d);return{roomKey:n,encryptionKey:c,fastForwardTo:1&r?e.fixed32.decode(d):null,initiator:2&r?o.decode(d):null,mailbox:4&r?e.fixed32.decode(d):null}}},Lc=e.frame(Dc),jc={preencode(o,n){Lc.preencode(o,n.keys),o.end++,d>=39&&n.activeClock&&e.uint.preencode(o,n.activeClock)},encode(o,n){const c=(d>=39&&n.activeClock?1:0)|(d>=39&&n.isReadOnly?2:0);Lc.encode(o,n.keys),e.uint.encode(o,c),d>=39&&n.activeClock&&e.uint.encode(o,n.activeClock)},decode(o){const n=Lc.decode(o),c=o.start<o.end?e.uint.decode(o):0;return{keys:n,activeClock:d>=39&&1&c?e.uint.decode(o):0,isReadOnly:d>=39&&!!(2&c)}}},qc=e.frame(dn),Bc={preencode(d,n){e.fixed32.preencode(d,n.roomKey),e.buffer.preencode(d,n.encryptionKey),d.end++,n.fastForwardTo&&e.fixed32.preencode(d,n.fastForwardTo),n.initiator&&o.preencode(d,n.initiator),n.mailbox&&e.fixed32.preencode(d,n.mailbox),n.keyPair&&r.preencode(d,n.keyPair),n.genesis&&qc.preencode(d,n.genesis)},encode(d,n){const c=(n.fastForwardTo?1:0)|(n.initiator?2:0)|(n.mailbox?4:0)|(n.keyPair?8:0)|(n.genesis?16:0)|(n.isPrivateProfile?32:0);e.fixed32.encode(d,n.roomKey),e.buffer.encode(d,n.encryptionKey),e.uint.encode(d,c),n.fastForwardTo&&e.fixed32.encode(d,n.fastForwardTo),n.initiator&&o.encode(d,n.initiator),n.mailbox&&e.fixed32.encode(d,n.mailbox),n.keyPair&&r.encode(d,n.keyPair),n.genesis&&qc.encode(d,n.genesis)},decode(d){const n=e.fixed32.decode(d),c=e.buffer.decode(d),t=e.uint.decode(d);return{roomKey:n,encryptionKey:c,fastForwardTo:1&t?e.fixed32.decode(d):null,initiator:2&t?o.decode(d):null,mailbox:4&t?e.fixed32.decode(d):null,keyPair:8&t?r.decode(d):null,genesis:16&t?qc.decode(d):null,isPrivateProfile:!!(32&t)}}},Ec={preencode(d,o){e.fixed32.preencode(d,o.roomKey),d.end++},encode(d,o){const n=o.isGossiped?1:0;e.fixed32.encode(d,o.roomKey),e.uint.encode(d,n)},decode:d=>({roomKey:e.fixed32.decode(d),isGossiped:!!(1&e.uint.decode(d))})},zc={preencode(d,o){e.fixed32.preencode(d,o.roomKey)},encode(d,o){e.fixed32.encode(d,o.roomKey)},decode:d=>({roomKey:e.fixed32.decode(d)})},Oc={preencode(d,o){e.string.preencode(d,o.mnemonic),d.end++,o.profileDiscoveryTimeout&&e.uint.preencode(d,o.profileDiscoveryTimeout)},encode(d,o){const n=(o.profileDiscoveryTimeout?1:0)|(o.recover?2:0);e.string.encode(d,o.mnemonic),e.uint.encode(d,n),o.profileDiscoveryTimeout&&e.uint.encode(d,o.profileDiscoveryTimeout)},decode(d){const o=e.string.decode(d),n=e.uint.decode(d);return{mnemonic:o,profileDiscoveryTimeout:1&n?e.uint.decode(d):0,recover:!!(2&n)}}},Nc={preencode(o,n){e.fixed32.preencode(o,n.roomKey),e.fixed32.preencode(o,n.memberKey),o.end++,n.message&&e.string.preencode(o,n.message),d>=6&&n.contactInfo&&cl.preencode(o,n.contactInfo)},encode(o,n){const c=(n.message?1:0)|(d>=6&&n.contactInfo?2:0);e.fixed32.encode(o,n.roomKey),e.fixed32.encode(o,n.memberKey),e.uint.encode(o,c),n.message&&e.string.encode(o,n.message),d>=6&&n.contactInfo&&cl.encode(o,n.contactInfo)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),r=e.uint.decode(o);return{roomKey:n,memberKey:c,message:1&r?e.string.decode(o):null,contactInfo:d>=6&&2&r?cl.decode(o):null}}},Uc={preencode(d,o){e.fixed32.preencode(d,o.key),d.end++},encode(d,o){const n=o.isPrivateProfile?1:0;e.fixed32.encode(d,o.key),e.uint.encode(d,n)},decode:d=>({key:e.fixed32.decode(d),isPrivateProfile:!!(1&e.uint.decode(d))})},Jc=e.frame(Oc),Wc=e.frame(Bc),Gc=e.frame(Ec),Qc=e.frame(zc),Xc=e.frame(Vc),Yc=e.frame(jc),Zc=e.frame(Hc),$c=e.frame(Nc),_c=e.frame(Uc),er={preencode(d,o){const n=(o.restoreIdentity?1:0)|(o.createRoom?2:0)|(o.leaveRoom?4:0)|(o.clearRoom?8:0)|(o.joinRoomInvitation?16:0)|(o.joinRoomKeys?32:0)|(o.joinRoomResponse?64:0)|(o.sendContactRequest?128:0)|(o.migrateV2Room?256:0);e.fixed32.preencode(d,o.discoveryKey),e.uint.preencode(d,o.priority),e.uint.preencode(d,o.timestamp),e.uint.preencode(d,o.type),e.uint.preencode(d,n),o.restoreIdentity&&Jc.preencode(d,o.restoreIdentity),o.createRoom&&Wc.preencode(d,o.createRoom),o.leaveRoom&&Gc.preencode(d,o.leaveRoom),o.clearRoom&&Qc.preencode(d,o.clearRoom),o.joinRoomInvitation&&Xc.preencode(d,o.joinRoomInvitation),o.joinRoomKeys&&Yc.preencode(d,o.joinRoomKeys),o.joinRoomResponse&&Zc.preencode(d,o.joinRoomResponse),o.sendContactRequest&&$c.preencode(d,o.sendContactRequest),o.migrateV2Room&&_c.preencode(d,o.migrateV2Room)},encode(d,o){const n=(o.restoreIdentity?1:0)|(o.createRoom?2:0)|(o.leaveRoom?4:0)|(o.clearRoom?8:0)|(o.joinRoomInvitation?16:0)|(o.joinRoomKeys?32:0)|(o.joinRoomResponse?64:0)|(o.sendContactRequest?128:0)|(o.migrateV2Room?256:0);e.fixed32.encode(d,o.discoveryKey),e.uint.encode(d,o.priority),e.uint.encode(d,o.timestamp),e.uint.encode(d,o.type),e.uint.encode(d,n),o.restoreIdentity&&Jc.encode(d,o.restoreIdentity),o.createRoom&&Wc.encode(d,o.createRoom),o.leaveRoom&&Gc.encode(d,o.leaveRoom),o.clearRoom&&Qc.encode(d,o.clearRoom),o.joinRoomInvitation&&Xc.encode(d,o.joinRoomInvitation),o.joinRoomKeys&&Yc.encode(d,o.joinRoomKeys),o.joinRoomResponse&&Zc.encode(d,o.joinRoomResponse),o.sendContactRequest&&$c.encode(d,o.sendContactRequest),o.migrateV2Room&&_c.encode(d,o.migrateV2Room)},decode(d){const o=e.fixed32.decode(d),n=e.uint.decode(d),c=e.uint.decode(d),r=e.uint.decode(d),t=e.uint.decode(d);return{discoveryKey:o,priority:n,timestamp:c,type:r,restoreIdentity:1&t?Jc.decode(d):null,createRoom:2&t?Wc.decode(d):null,leaveRoom:4&t?Gc.decode(d):null,clearRoom:8&t?Qc.decode(d):null,joinRoomInvitation:16&t?Xc.decode(d):null,joinRoomKeys:32&t?Yc.decode(d):null,joinRoomResponse:64&t?Zc.decode(d):null,sendContactRequest:128&t?$c.decode(d):null,migrateV2Room:256&t?_c.decode(d):null}}},dr=Le,or={preencode(d,o){e.buffer.preencode(d,o.seed),dr.preencode(d,o.invitation)},encode(d,o){e.buffer.encode(d,o.seed),dr.encode(d,o.invitation)},decode:d=>({seed:e.buffer.decode(d),invitation:dr.decode(d)})},nr={preencode(e,d){e.end++},encode(o,n){const c=(n.isWritable?1:0)|(n.isReadable?2:0)|(n.isPrivateProfile?4:0)|(d>=8&&n.isRemoved?8:0);e.uint.encode(o,c)},decode(o){const n=e.uint.decode(o);return{isWritable:!!(1&n),isReadable:!!(2&n),isPrivateProfile:!!(4&n),isRemoved:d>=8&&!!(8&n)}}},cr={preencode(d,o){e.uint.preencode(d,o.creation),e.uint.preencode(d,o.latestSync),e.uint.preencode(d,o.latestChatMessage)},encode(d,o){e.uint.encode(d,o.creation),e.uint.encode(d,o.latestSync),e.uint.encode(d,o.latestChatMessage)},decode:d=>({creation:e.uint.decode(d),latestSync:e.uint.decode(d),latestChatMessage:e.uint.decode(d)})},rr=Xo,tr=fo,ir=e.frame(cr),ar=vc,sr=e.frame(nr),lr=e.frame(ie),pr=e.frame(ud),ur=Oo,fr=$o,mr=e.frame(ho),yr=X,br=e.frame(sd),xr=In,vr={preencode(o,n){const c=(n.selfDevice?1:0)|(n.selfMember?2:0)|(n.config?4:0)|(n.identity?8:0)|(n.lastMessage?16:0)|(n.dm?32:0)|(d>=19&&n.readLengths?64:0)|(d>=19&&n.lastMember?128:0)|(d>=21&&n.version?256:0)|(d>=27&&n.preferences?512:0)|(d>=28&&n.activeCall?1024:0)|(d>=32&&n.lastMessageLabels?2048:0)|(d>=33&&n.settings?4096:0)|(d>=37&&n.system?8192:0)|(d>=37&&n.processed?16384:0);e.fixed32.preencode(o,n.roomKey),e.fixed32.preencode(o,n.discoveryKey),e.buffer.preencode(o,n.encryptionKey),rr.preencode(o,n.digest),tr.preencode(o,n.stats),ir.preencode(o,n.timestamps),e.uint.preencode(o,n.fork),e.uint.preencode(o,n.length),e.fixed32.preencode(o,n.seed),ar.preencode(o,n.capabilities),sr.preencode(o,n.status),e.uint.preencode(o,c),n.selfDevice&&lr.preencode(o,n.selfDevice),n.selfMember&&pr.preencode(o,n.selfMember),n.config&&ur.preencode(o,n.config),n.identity&&fr.preencode(o,n.identity),n.lastMessage&&mr.preencode(o,n.lastMessage),n.dm&&yr.preencode(o,n.dm),d>=19&&n.readLengths&&rl.preencode(o,n.readLengths),d>=19&&n.lastMember&&br.preencode(o,n.lastMember),d>=21&&n.version&&e.uint.preencode(o,n.version),d>=27&&n.preferences&&xr.preencode(o,n.preferences),d>=28&&n.activeCall&&tl.preencode(o,n.activeCall),d>=32&&n.lastMessageLabels&&il.preencode(o,n.lastMessageLabels),d>=33&&n.settings&&al.preencode(o,n.settings),d>=37&&n.system&&sl.preencode(o,n.system),d>=37&&n.processed&&ll.preencode(o,n.processed)},encode(o,n){const c=(n.selfDevice?1:0)|(n.selfMember?2:0)|(n.config?4:0)|(n.identity?8:0)|(n.lastMessage?16:0)|(n.dm?32:0)|(d>=19&&n.readLengths?64:0)|(d>=19&&n.lastMember?128:0)|(d>=21&&n.version?256:0)|(d>=27&&n.preferences?512:0)|(d>=28&&n.activeCall?1024:0)|(d>=32&&n.lastMessageLabels?2048:0)|(d>=33&&n.settings?4096:0)|(d>=37&&n.system?8192:0)|(d>=37&&n.processed?16384:0);e.fixed32.encode(o,n.roomKey),e.fixed32.encode(o,n.discoveryKey),e.buffer.encode(o,n.encryptionKey),rr.encode(o,n.digest),tr.encode(o,n.stats),ir.encode(o,n.timestamps),e.uint.encode(o,n.fork),e.uint.encode(o,n.length),e.fixed32.encode(o,n.seed),ar.encode(o,n.capabilities),sr.encode(o,n.status),e.uint.encode(o,c),n.selfDevice&&lr.encode(o,n.selfDevice),n.selfMember&&pr.encode(o,n.selfMember),n.config&&ur.encode(o,n.config),n.identity&&fr.encode(o,n.identity),n.lastMessage&&mr.encode(o,n.lastMessage),n.dm&&yr.encode(o,n.dm),d>=19&&n.readLengths&&rl.encode(o,n.readLengths),d>=19&&n.lastMember&&br.encode(o,n.lastMember),d>=21&&n.version&&e.uint.encode(o,n.version),d>=27&&n.preferences&&xr.encode(o,n.preferences),d>=28&&n.activeCall&&tl.encode(o,n.activeCall),d>=32&&n.lastMessageLabels&&il.encode(o,n.lastMessageLabels),d>=33&&n.settings&&al.encode(o,n.settings),d>=37&&n.system&&sl.encode(o,n.system),d>=37&&n.processed&&ll.encode(o,n.processed)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),r=e.buffer.decode(o),t=rr.decode(o),i=tr.decode(o),a=ir.decode(o),s=e.uint.decode(o),l=e.uint.decode(o),p=e.fixed32.decode(o),u=ar.decode(o),f=sr.decode(o),m=e.uint.decode(o);return{roomKey:n,discoveryKey:c,encryptionKey:r,digest:t,stats:i,timestamps:a,fork:s,length:l,seed:p,capabilities:u,status:f,selfDevice:1&m?lr.decode(o):null,selfMember:2&m?pr.decode(o):null,config:4&m?ur.decode(o):null,identity:8&m?fr.decode(o):null,lastMessage:16&m?mr.decode(o):null,dm:32&m?yr.decode(o):null,readLengths:d>=19&&64&m?rl.decode(o):null,lastMember:d>=19&&128&m?br.decode(o):null,version:d>=21&&256&m?e.uint.decode(o):0,preferences:d>=27&&512&m?xr.decode(o):null,activeCall:d>=28&&1024&m?tl.decode(o):null,lastMessageLabels:d>=32&&2048&m?il.decode(o):null,settings:d>=33&&4096&m?al.decode(o):null,system:d>=37&&8192&m?sl.decode(o):null,processed:d>=37&&16384&m?ll.decode(o):null}}},gr=In,kr={preencode(d,o){e.fixed32.preencode(d,o.roomKey),gr.preencode(d,o.status)},encode(d,o){e.fixed32.encode(d,o.roomKey),gr.encode(d,o.status)},decode:d=>({roomKey:e.fixed32.decode(d),status:gr.decode(d)})},Kr={preencode(o,n){e.fixed32.preencode(o,n.mailbox),e.fixed32.preencode(o,n.key),o.end++,n.roomKey&&e.fixed32.preencode(o,n.roomKey),n.keyPair&&r.preencode(o,n.keyPair),n.responseKeyPair&&r.preencode(o,n.responseKeyPair),d>=39&&n.activeClock&&e.uint.preencode(o,n.activeClock)},encode(o,n){const c=(n.roomKey?1:0)|(n.keyPair?2:0)|(n.responseKeyPair?4:0)|(d>=38&&n.pending?8:0)|(d>=39&&n.activeClock?16:0);e.fixed32.encode(o,n.mailbox),e.fixed32.encode(o,n.key),e.uint.encode(o,c),n.roomKey&&e.fixed32.encode(o,n.roomKey),n.keyPair&&r.encode(o,n.keyPair),n.responseKeyPair&&r.encode(o,n.responseKeyPair),d>=39&&n.activeClock&&e.uint.encode(o,n.activeClock)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),t=e.uint.decode(o);return{mailbox:n,key:c,roomKey:1&t?e.fixed32.decode(o):null,keyPair:2&t?r.decode(o):null,responseKeyPair:4&t?r.decode(o):null,pending:d>=38&&!!(8&t),activeClock:d>=39&&16&t?e.uint.decode(o):0}}},hr=le,wr={preencode(d,o){e.fixed32.preencode(d,o.key),hr.preencode(d,o.profile)},encode(d,o){e.fixed32.encode(d,o.key),hr.encode(d,o.profile)},decode:d=>({key:e.fixed32.decode(d),profile:hr.decode(d)})},Rr=lr,Pr={preencode(d,o){e.fixed32.preencode(d,o.roomKey),Rr.preencode(d,o.device)},encode(d,o){e.fixed32.encode(d,o.roomKey),Rr.encode(d,o.device)},decode:d=>({roomKey:e.fixed32.decode(d),device:Rr.decode(d)})},Tr=k,Ar={preencode(o,n){Tr.preencode(o,n.file),e.fixed32.preencode(o,n.roomKey),o.end++,n.encryptionKey&&e.buffer.preencode(o,n.encryptionKey),d>=28&&n.lastAccessed&&e.uint.preencode(o,n.lastAccessed),d>=28&&n.version&&e.uint.preencode(o,n.version)},encode(o,n){const c=(n.encryptionKey?1:0)|(n.cleared?2:0)|(n.own?4:0)|(d>=28&&n.lastAccessed?8:0)|(d>=28&&n.version?16:0);Tr.encode(o,n.file),e.fixed32.encode(o,n.roomKey),e.uint.encode(o,c),n.encryptionKey&&e.buffer.encode(o,n.encryptionKey),d>=28&&n.lastAccessed&&e.uint.encode(o,n.lastAccessed),d>=28&&n.version&&e.uint.encode(o,n.version)},decode(o){const n=Tr.decode(o),c=e.fixed32.decode(o),r=e.uint.decode(o);return{file:n,roomKey:c,encryptionKey:1&r?e.buffer.decode(o):null,cleared:!!(2&r),own:!!(4&r),lastAccessed:d>=28&&8&r?e.uint.decode(o):0,version:d>=28&&16&r?e.uint.decode(o):0}}},Mr=$,Sr={preencode(o,c){Mr.preencode(o,c.header),n.preencode(o,c.oplog),e.uint.preencode(o,c.index),pl.preencode(o,c.preview),o.end++,d>=12&&c.displayType&&Gr.preencode(o,c.displayType)},encode(o,c){const r=d>=12&&c.displayType?1:0;Mr.encode(o,c.header),n.encode(o,c.oplog),e.uint.encode(o,c.index),pl.encode(o,c.preview),e.uint.encode(o,r),d>=12&&c.displayType&&Gr.encode(o,c.displayType)},decode(o){const c=Mr.decode(o),r=n.decode(o),t=e.uint.decode(o),i=pl.decode(o),a=o.start<o.end?e.uint.decode(o):0;return{header:c,oplog:r,index:t,preview:i,displayType:d>=12&&1&a?Gr.decode(o):0}}},Ir={preencode(o,n){o.end++,d>=4&&n.memberKey&&e.fixed32.preencode(o,n.memberKey)},encode(o,n){const c=d>=4&&n.memberKey?1:0;e.uint.encode(o,c),d>=4&&n.memberKey&&e.fixed32.encode(o,n.memberKey)},decode(o){const n=e.uint.decode(o);return{memberKey:d>=4&&1&n?e.fixed32.decode(o):null}}},Cr=le,Vr={preencode(e,d){Cr.preencode(e,d.profile),ne.preencode(e,d.attestation)},encode(e,d){Cr.encode(e,d.profile),ne.encode(e,d.attestation)},decode:e=>({profile:Cr.decode(e),attestation:ne.decode(e)})},Hr=$,Fr={preencode(d,o){Hr.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){Hr.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:Hr.decode(d),key:e.fixed32.decode(d)})},Dr={preencode(d,o){e.fixed32.preencode(d,o.deviceKey),ne.preencode(d,o.privateProfileIdentity),e.buffer.preencode(d,o.deviceProof)},encode(d,o){e.fixed32.encode(d,o.deviceKey),ne.encode(d,o.privateProfileIdentity),e.buffer.encode(d,o.deviceProof)},decode:d=>({deviceKey:e.fixed32.decode(d),privateProfileIdentity:ne.decode(d),deviceProof:e.buffer.decode(d)})},Lr={preencode(o,n){e.fixed32.preencode(o,n.roomKey),e.fixed32.preencode(o,n.encryptionKey),e.fixed32.preencode(o,n.seed),o.end++,d>=9&&n.fastForwardTo&&e.fixed32.preencode(o,n.fastForwardTo)},encode(o,n){const c=d>=9&&n.fastForwardTo?1:0;e.fixed32.encode(o,n.roomKey),e.fixed32.encode(o,n.encryptionKey),e.fixed32.encode(o,n.seed),e.uint.encode(o,c),d>=9&&n.fastForwardTo&&e.fixed32.encode(o,n.fastForwardTo)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),r=e.fixed32.decode(o),t=e.uint.decode(o);return{roomKey:n,encryptionKey:c,seed:r,fastForwardTo:d>=9&&1&t?e.fixed32.decode(o):null}}},jr={preencode(o,n){e.fixed32.preencode(o,n.publicKey),e.fixed32.preencode(o,n.writerKey),e.fixed32.preencode(o,n.devicePublicKey),o.end++,d>=9&&n.privateProfileKey&&e.fixed32.preencode(o,n.privateProfileKey)},encode(o,n){const c=d>=9&&n.privateProfileKey?1:0;e.fixed32.encode(o,n.publicKey),e.fixed32.encode(o,n.writerKey),e.fixed32.encode(o,n.devicePublicKey),e.uint.encode(o,c),d>=9&&n.privateProfileKey&&e.fixed32.encode(o,n.privateProfileKey)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),r=e.fixed32.decode(o),t=e.uint.decode(o);return{publicKey:n,writerKey:c,devicePublicKey:r,privateProfileKey:d>=9&&1&t?e.fixed32.decode(o):null}}},qr=$,Br={preencode(d,o){qr.preencode(d,o.header),e.fixed32.preencode(d,o.memberKey)},encode(d,o){qr.encode(d,o.header),e.fixed32.encode(d,o.memberKey)},decode:d=>({header:qr.decode(d),memberKey:e.fixed32.decode(d)})},Er={preencode(d,o){e.fixed32.preencode(d,o.privateProfileKey)},encode(d,o){e.fixed32.encode(d,o.privateProfileKey)},decode:d=>({privateProfileKey:e.fixed32.decode(d)})},zr={preencode(d,o){e.fixed32.preencode(d,o.key),e.fixed32.preencode(d,o.responsePublicKey)},encode(d,o){e.fixed32.encode(d,o.key),e.fixed32.encode(d,o.responsePublicKey)},decode:d=>({key:e.fixed32.decode(d),responsePublicKey:e.fixed32.decode(d)})},Or={preencode(o,n){e.fixed32.preencode(o,n.roomKey),o.end++,d>=10&&n.repairs&&e.uint.preencode(o,n.repairs)},encode(o,n){const c=d>=10&&n.repairs?1:0;e.fixed32.encode(o,n.roomKey),e.uint.encode(o,c),d>=10&&n.repairs&&e.uint.encode(o,n.repairs)},decode(o){const n=e.fixed32.decode(o),c=e.uint.decode(o);return{roomKey:n,repairs:d>=10&&1&c?e.uint.decode(o):0}}},Nr={preencode(o,n){o.end++,d>=11&&n.key&&e.string.preencode(o,n.key),d>=11&&n.description&&e.string.preencode(o,n.description)},encode(o,n){const c=(d>=11&&n.key?1:0)|(d>=11&&n.value?2:0)|(d>=11&&n.description?4:0);e.uint.encode(o,c),d>=11&&n.key&&e.string.encode(o,n.key),d>=11&&n.description&&e.string.encode(o,n.description)},decode(o){const n=e.uint.decode(o);return{key:d>=11&&1&n?e.string.decode(o):null,value:d>=11&&!!(2&n),description:d>=11&&4&n?e.string.decode(o):null}}},Ur=e.array(e.frame(Nr)),Jr={preencode(e,o){e.end++,d>=11&&o.flags&&Ur.preencode(e,o.flags)},encode(o,n){const c=d>=11&&n.flags?1:0;e.uint.encode(o,c),d>=11&&n.flags&&Ur.encode(o,n.flags)},decode(o){const n=e.uint.decode(o);return{flags:d>=11&&1&n?Ur.decode(o):null}}},Wr={HttpLink:1,PearLink:2},Gr={preencode(e,d){e.end++},encode(d,o){if(o>2)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},Qr=$,Xr={preencode(d,o){Qr.preencode(d,o.header),e.uint.preencode(d,o.value)},encode(d,o){Qr.encode(d,o.header),e.uint.encode(d,o.value)},decode:d=>({header:Qr.decode(d),value:e.uint.decode(d)})},Yr={preencode(d,o){e.uint.preencode(d,o.key),e.uint.preencode(d,o.value)},encode(d,o){e.uint.encode(d,o.key),e.uint.encode(d,o.value)},decode:d=>({key:e.uint.decode(d),value:e.uint.decode(d)})},Zr=$,$r={preencode(o,n){Zr.preencode(o,n.header),e.uint.preencode(o,n.from),e.uint.preencode(o,n.to),o.end++,d>=29&&n.buildType&&xi.preencode(o,n.buildType)},encode(o,n){const c=d>=29&&n.buildType?1:0;Zr.encode(o,n.header),e.uint.encode(o,n.from),e.uint.encode(o,n.to),e.uint.encode(o,c),d>=29&&n.buildType&&xi.encode(o,n.buildType)},decode(o){const n=Zr.decode(o),c=e.uint.decode(o),r=e.uint.decode(o),t=o.start<o.end?e.uint.decode(o):0;return{header:n,from:c,to:r,buildType:d>=29&&1&t?xi.decode(o):null}}},_r={RoomType:1,IsExperimental:2,IsJoiningDisabled:3,IsAppendingDisabled:4,IsCallingDisabled:5,IsMembershipEventsDisabled:6,IsAttachmentsDisabled:7,IsLinksDisabled:8,IsRoomInviteHidden:9},et={preencode(e,d){e.end++},encode(d,o){if(o>9)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},dt=We,ot={preencode(o,n){o.end++,d>=16&&n.nodes&&dt.preencode(o,n.nodes),d>=24&&n.concurrency&&e.uint.preencode(o,n.concurrency),d>=24&&n.maxWindow&&e.uint.preencode(o,n.maxWindow),d>=24&&n.randomPunchInterval&&e.uint.preencode(o,n.randomPunchInterval),d>=24&&n.connectionKeepAlive&&e.uint.preencode(o,n.connectionKeepAlive)},encode(o,n){const c=(d>=16&&n.nodes?1:0)|(d>=24&&n.concurrency?2:0)|(d>=24&&n.maxWindow?4:0)|(d>=24&&n.randomPunchInterval?8:0)|(d>=24&&n.connectionKeepAlive?16:0);e.uint.encode(o,c),d>=16&&n.nodes&&dt.encode(o,n.nodes),d>=24&&n.concurrency&&e.uint.encode(o,n.concurrency),d>=24&&n.maxWindow&&e.uint.encode(o,n.maxWindow),d>=24&&n.randomPunchInterval&&e.uint.encode(o,n.randomPunchInterval),d>=24&&n.connectionKeepAlive&&e.uint.encode(o,n.connectionKeepAlive)},decode(o){const n=e.uint.decode(o);return{nodes:d>=16&&1&n?dt.decode(o):null,concurrency:d>=24&&2&n?e.uint.decode(o):0,maxWindow:d>=24&&4&n?e.uint.decode(o):0,randomPunchInterval:d>=24&&8&n?e.uint.decode(o):0,connectionKeepAlive:d>=24&&16&n?e.uint.decode(o):0}}},nt={en:"en",it:"it",ru:"ru",es:"es",de:"de"},ct={preencode(e,d){e.end++},encode(d,o){switch(o){case"en":e.uint.encode(d,1);break;case"it":e.uint.encode(d,2);break;case"ru":e.uint.encode(d,3);break;case"es":e.uint.encode(d,4);break;case"de":e.uint.encode(d,5);break;default:throw new Error("Unknown enum")}},decode(d){switch(e.uint.decode(d)){case 1:return"en";case 2:return"it";case 3:return"ru";case 4:return"es";case 5:return"de";default:return null}}},rt=Fd,tt={preencode(d,o){rt.preencode(d,o.range),ct.preencode(d,o.language),e.string.preencode(d,o.text)},encode(d,o){rt.encode(d,o.range),ct.encode(d,o.language),e.string.encode(d,o.text)},decode:d=>({range:rt.decode(d),language:ct.decode(d),text:e.string.decode(d)})},it={preencode(d,o){e.fixed32.preencode(d,o.roomKey),e.uint.preencode(d,o.count)},encode(d,o){e.fixed32.encode(d,o.roomKey),e.uint.encode(d,o.count)},decode:d=>({roomKey:e.fixed32.decode(d),count:e.uint.decode(d)})},at={preencode(d,o){e.fixed32.preencode(d,o.deviceKey),e.fixed32.preencode(d,o.key)},encode(d,o){e.fixed32.encode(d,o.deviceKey),e.fixed32.encode(d,o.key)},decode:d=>({deviceKey:e.fixed32.decode(d),key:e.fixed32.decode(d)})},st=$,lt={preencode(d,o){st.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){st.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:st.decode(d),key:e.fixed32.decode(d)})},pt=$,ut={preencode(d,o){pt.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){pt.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:pt.decode(d),key:e.fixed32.decode(d)})},ft={Flag:1},mt={preencode(e,d){e.end++},encode(d,o){if(o>1)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},yt={preencode(d,o){uo.preencode(d,o.id),e.fixed32.preencode(d,o.sender),e.uint.preencode(d,o.clock),mt.preencode(d,o.label)},encode(d,o){uo.encode(d,o.id),e.fixed32.encode(d,o.sender),e.uint.encode(d,o.clock),mt.encode(d,o.label)},decode:d=>({id:uo.decode(d),sender:e.fixed32.decode(d),clock:e.uint.decode(d),label:mt.decode(d)})},bt=$,xt={preencode(e,d){bt.preencode(e,d.header),n.preencode(e,d.oplog),mt.preencode(e,d.label)},encode(e,d){bt.encode(e,d.header),n.encode(e,d.oplog),mt.encode(e,d.label)},decode:e=>({header:bt.decode(e),oplog:n.decode(e),label:mt.decode(e)})},vt=$,gt={preencode(e,d){vt.preencode(e,d.header),n.preencode(e,d.oplog),mt.preencode(e,d.label)},encode(e,d){vt.encode(e,d.header),n.encode(e,d.oplog),mt.encode(e,d.label)},decode:e=>({header:vt.decode(e),oplog:n.decode(e),label:mt.decode(e)})},kt={preencode(d,o){mt.preencode(d,o.label),e.uint.preencode(d,o.count)},encode(d,o){mt.encode(d,o.label),e.uint.encode(d,o.count)},decode:d=>({label:mt.decode(d),count:e.uint.decode(d)})},Kt=e.array(e.frame(kt)),ht={preencode(o,n){uo.preencode(o,n.id),e.uint.preencode(o,n.total),Kt.preencode(o,n.labels),e.uint.preencode(o,n.editedAt),o.end++,d>=24&&n.flagsClock&&e.uint.preencode(o,n.flagsClock),d>=24&&n.version&&e.uint.preencode(o,n.version)},encode(o,n){const c=(d>=24&&n.flagsClock?1:0)|(d>=24&&n.version?2:0)|(d>=25&&n.isDeleted?4:0);uo.encode(o,n.id),e.uint.encode(o,n.total),Kt.encode(o,n.labels),e.uint.encode(o,n.editedAt),e.uint.encode(o,c),d>=24&&n.flagsClock&&e.uint.encode(o,n.flagsClock),d>=24&&n.version&&e.uint.encode(o,n.version)},decode(o){const n=uo.decode(o),c=e.uint.decode(o),r=Kt.decode(o),t=e.uint.decode(o),i=o.start<o.end?e.uint.decode(o):0;return{id:n,total:c,labels:r,editedAt:t,flagsClock:d>=24&&1&i?e.uint.decode(o):0,version:d>=24&&2&i?e.uint.decode(o):0,isDeleted:d>=25&&!!(4&i)}}},wt=$,Rt={preencode(d,o){wt.preencode(d,o.header),e.uint.preencode(d,o.length)},encode(d,o){wt.encode(d,o.header),e.uint.encode(d,o.length)},decode:d=>({header:wt.decode(d),length:e.uint.decode(d)})},Pt={preencode(d,o){e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.length)},encode(d,o){e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.length)},decode:d=>({memberKey:e.fixed32.decode(d),length:e.uint.decode(d)})},Tt=Z,At={preencode(o,n){o.end++,d>=33&&n.profileSnoozeTime&&e.uint.preencode(o,n.profileSnoozeTime)},encode(o,n){const c=(d>=19&&n.disableReadReceipts?1:0)|(d>=31&&n.stripAttachmentMetadata?2:0)|(d>=33&&n.profileSnoozeTime?4:0);e.uint.encode(o,c),d>=33&&n.profileSnoozeTime&&e.uint.encode(o,n.profileSnoozeTime)},decode(o){const n=e.uint.decode(o);return{disableReadReceipts:d>=19&&!!(1&n),stripAttachmentMetadata:d>=31&&!!(2&n),profileSnoozeTime:d>=33&&4&n?e.uint.decode(o):0}}},Mt={disableReadReceipts:"disableReadReceipts",stripAttachmentMetadata:"stripAttachmentMetadata",profileSnoozeTime:"profileSnoozeTime"},St={preencode(e,d){e.end++},encode(d,o){switch(o){case"disableReadReceipts":e.uint.encode(d,1);break;case"stripAttachmentMetadata":e.uint.encode(d,2);break;case"profileSnoozeTime":e.uint.encode(d,3);break;default:throw new Error("Unknown enum")}},decode(d){switch(e.uint.decode(d)){case 1:return"disableReadReceipts";case 2:return"stripAttachmentMetadata";case 3:return"profileSnoozeTime";default:return null}}},It=$,Ct=e.frame(At),Vt={preencode(e,d){It.preencode(e,d.header),St.preencode(e,d.key),Ct.preencode(e,d.settings)},encode(e,d){It.encode(e,d.header),St.encode(e,d.key),Ct.encode(e,d.settings)},decode:e=>({header:It.decode(e),key:St.decode(e),settings:Ct.decode(e)})},Ht={preencode(o,n){o.end++,d>=20&&n.roomKey&&e.fixed32.preencode(o,n.roomKey),d>=23&&n.coreKey&&e.fixed32.preencode(o,n.coreKey)},encode(o,n){const c=(d>=20&&n.roomKey?1:0)|(d>=23&&n.coreKey?2:0);e.uint.encode(o,c),d>=20&&n.roomKey&&e.fixed32.encode(o,n.roomKey),d>=23&&n.coreKey&&e.fixed32.encode(o,n.coreKey)},decode(o){const n=e.uint.decode(o);return{roomKey:d>=20&&1&n?e.fixed32.decode(o):null,coreKey:d>=23&&2&n?e.fixed32.decode(o):null}}},Ft=e.frame(Ht),Dt={preencode(o,n){e.string.preencode(o,n.code),e.string.preencode(o,n.message),e.string.preencode(o,n.stack),e.uint.preencode(o,n.timestamp),o.end++,d>=20&&n.details&&Ft.preencode(o,n.details)},encode(o,n){const c=d>=20&&n.details?1:0;e.string.encode(o,n.code),e.string.encode(o,n.message),e.string.encode(o,n.stack),e.uint.encode(o,n.timestamp),e.uint.encode(o,c),d>=20&&n.details&&Ft.encode(o,n.details)},decode(o){const n=e.string.decode(o),c=e.string.decode(o),r=e.string.decode(o),t=e.uint.decode(o),i=e.uint.decode(o);return{code:n,message:c,stack:r,timestamp:t,details:d>=20&&1&i?Ft.decode(o):null}}},Lt={RESUME:1,WAKEUP:2,PRESUSPEND:3,SUSPEND:4},jt={preencode(e,d){e.end++},encode(d,o){if(o>4)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},qt={preencode(d,o){e.fixed32.preencode(d,o.roomKey),e.uint.preencode(d,o.total)},encode(d,o){e.fixed32.encode(d,o.roomKey),e.uint.encode(d,o.total)},decode:d=>({roomKey:e.fixed32.decode(d),total:e.uint.decode(d)})},Bt={Flag:1},Et={preencode(e,d){e.end++},encode(d,o){if(o>1)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},zt={preencode(d,o){e.fixed32.preencode(d,o.key),e.fixed32.preencode(d,o.sender),e.uint.preencode(d,o.clock),Et.preencode(d,o.label)},encode(d,o){e.fixed32.encode(d,o.key),e.fixed32.encode(d,o.sender),e.uint.encode(d,o.clock),Et.encode(d,o.label)},decode:d=>({key:e.fixed32.decode(d),sender:e.fixed32.decode(d),clock:e.uint.decode(d),label:Et.decode(d)})},Ot=$,Nt={preencode(d,o){Ot.preencode(d,o.header),e.fixed32.preencode(d,o.key),Et.preencode(d,o.label)},encode(d,o){Ot.encode(d,o.header),e.fixed32.encode(d,o.key),Et.encode(d,o.label)},decode:d=>({header:Ot.decode(d),key:e.fixed32.decode(d),label:Et.decode(d)})},Ut={preencode(d,o){Et.preencode(d,o.label),e.uint.preencode(d,o.count)},encode(d,o){Et.encode(d,o.label),e.uint.encode(d,o.count)},decode:d=>({label:Et.decode(d),count:e.uint.decode(d)})},Jt=e.array(e.frame(Ut)),Wt={preencode(d,o){e.fixed32.preencode(d,o.key),e.uint.preencode(d,o.total),Jt.preencode(d,o.labels),e.uint.preencode(d,o.editedAt),e.uint.preencode(d,o.flagsClock)},encode(d,o){e.fixed32.encode(d,o.key),e.uint.encode(d,o.total),Jt.encode(d,o.labels),e.uint.encode(d,o.editedAt),e.uint.encode(d,o.flagsClock)},decode:d=>({key:e.fixed32.decode(d),total:e.uint.decode(d),labels:Jt.decode(d),editedAt:e.uint.decode(d),flagsClock:e.uint.decode(d)})},Gt={preencode(d,o){e.float64.preencode(d,o.latitude),e.float64.preencode(d,o.longitude)},encode(d,o){e.float64.encode(d,o.latitude),e.float64.encode(d,o.longitude)},decode:d=>({latitude:e.float64.decode(d),longitude:e.float64.decode(d)})},Qt=$,Xt={preencode(d,o){Qt.preencode(d,o.header),e.fixed32.preencode(d,o.deviceKey),e.fixed32.preencode(d,o.fromDeviceKey)},encode(d,o){Qt.encode(d,o.header),e.fixed32.encode(d,o.deviceKey),e.fixed32.encode(d,o.fromDeviceKey)},decode:d=>({header:Qt.decode(d),deviceKey:e.fixed32.decode(d),fromDeviceKey:e.fixed32.decode(d)})},Yt=$,Zt=X,$t={preencode(o,n){Yt.preencode(o,n.header),e.fixed32.preencode(o,n.callKey),e.buffer.preencode(o,n.encryptionKey),o.end++,d>=28&&n.streams&&Zt.preencode(o,n.streams),d>=28&&n.discoveryKey&&e.fixed32.preencode(o,n.discoveryKey),d>=28&&n.version&&e.uint.preencode(o,n.version),d>=36&&n.streamInputs&&ul.preencode(o,n.streamInputs),d>=36&&n.swarmKey&&e.fixed32.preencode(o,n.swarmKey)},encode(o,n){const c=(d>=28&&n.streams?1:0)|(d>=28&&n.discoveryKey?2:0)|(d>=28&&n.version?4:0)|(d>=36&&n.streamInputs?8:0)|(d>=36&&n.swarmKey?16:0);Yt.encode(o,n.header),e.fixed32.encode(o,n.callKey),e.buffer.encode(o,n.encryptionKey),e.uint.encode(o,c),d>=28&&n.streams&&Zt.encode(o,n.streams),d>=28&&n.discoveryKey&&e.fixed32.encode(o,n.discoveryKey),d>=28&&n.version&&e.uint.encode(o,n.version),d>=36&&n.streamInputs&&ul.encode(o,n.streamInputs),d>=36&&n.swarmKey&&e.fixed32.encode(o,n.swarmKey)},decode(o){const n=Yt.decode(o),c=e.fixed32.decode(o),r=e.buffer.decode(o),t=e.uint.decode(o);return{header:n,callKey:c,encryptionKey:r,streams:d>=28&&1&t?Zt.decode(o):null,discoveryKey:d>=28&&2&t?e.fixed32.decode(o):null,version:d>=28&&4&t?e.uint.decode(o):0,streamInputs:d>=36&&8&t?ul.decode(o):null,swarmKey:d>=36&&16&t?e.fixed32.decode(o):null}}},_t=$,ei=X,di={preencode(o,n){_t.preencode(o,n.header),e.fixed32.preencode(o,n.callKey),o.end++,d>=28&&n.streams&&ei.preencode(o,n.streams),d>=36&&n.streamInputs&&fl.preencode(o,n.streamInputs),d>=36&&n.swarmKey&&e.fixed32.preencode(o,n.swarmKey)},encode(o,n){const c=(d>=28&&n.streams?1:0)|(d>=36&&n.streamInputs?2:0)|(d>=36&&n.swarmKey?4:0);_t.encode(o,n.header),e.fixed32.encode(o,n.callKey),e.uint.encode(o,c),d>=28&&n.streams&&ei.encode(o,n.streams),d>=36&&n.streamInputs&&fl.encode(o,n.streamInputs),d>=36&&n.swarmKey&&e.fixed32.encode(o,n.swarmKey)},decode(o){const n=_t.decode(o),c=e.fixed32.decode(o),r=e.uint.decode(o);return{header:n,callKey:c,streams:d>=28&&1&r?ei.decode(o):null,streamInputs:d>=36&&2&r?fl.decode(o):null,swarmKey:d>=36&&4&r?e.fixed32.decode(o):null}}},oi=$,ni={preencode(d,o){oi.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){oi.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:oi.decode(d),callKey:e.fixed32.decode(d)})},ci=$,ri={preencode(d,o){ci.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){ci.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:ci.decode(d),callKey:e.fixed32.decode(d)})},ti=$,ii={preencode(o,n){ti.preencode(o,n.header),e.fixed32.preencode(o,n.callKey),e.fixed32.preencode(o,n.streamKey),o.end++,d>=36&&n.mediaStreamId&&e.string.preencode(o,n.mediaStreamId),d>=36&&n.type&&e.string.preencode(o,n.type)},encode(o,n){const c=(d>=36&&n.mediaStreamId?1:0)|(d>=36&&n.type?2:0)|(d>=36&&n.muted?4:0);ti.encode(o,n.header),e.fixed32.encode(o,n.callKey),e.fixed32.encode(o,n.streamKey),e.uint.encode(o,c),d>=36&&n.mediaStreamId&&e.string.encode(o,n.mediaStreamId),d>=36&&n.type&&e.string.encode(o,n.type)},decode(o){const n=ti.decode(o),c=e.fixed32.decode(o),r=e.fixed32.decode(o),t=o.start<o.end?e.uint.decode(o):0;return{header:n,callKey:c,streamKey:r,mediaStreamId:d>=36&&1&t?e.string.decode(o):null,type:d>=36&&2&t?e.string.decode(o):null,muted:d>=36&&!!(4&t)}}},ai=$,si={preencode(d,o){ai.preencode(d,o.header),e.fixed32.preencode(d,o.callKey),e.fixed32.preencode(d,o.streamKey)},encode(d,o){ai.encode(d,o.header),e.fixed32.encode(d,o.callKey),e.fixed32.encode(d,o.streamKey)},decode:d=>({header:ai.decode(d),callKey:e.fixed32.decode(d),streamKey:e.fixed32.decode(d)})},li={preencode(o,n){e.fixed32.preencode(o,n.callKey),e.buffer.preencode(o,n.encryptionKey),e.uint.preencode(o,n.createdAt),o.end++,d>=28&&n.endedAt&&e.uint.preencode(o,n.endedAt),d>=28&&n.discoveryKey&&e.fixed32.preencode(o,n.discoveryKey),d>=28&&n.version&&e.uint.preencode(o,n.version)},encode(o,n){const c=(d>=28&&n.endedAt?1:0)|(d>=28&&n.discoveryKey?2:0)|(d>=28&&n.version?4:0);e.fixed32.encode(o,n.callKey),e.buffer.encode(o,n.encryptionKey),e.uint.encode(o,n.createdAt),e.uint.encode(o,c),d>=28&&n.endedAt&&e.uint.encode(o,n.endedAt),d>=28&&n.discoveryKey&&e.fixed32.encode(o,n.discoveryKey),d>=28&&n.version&&e.uint.encode(o,n.version)},decode(o){const n=e.fixed32.decode(o),c=e.buffer.decode(o),r=e.uint.decode(o),t=e.uint.decode(o);return{callKey:n,encryptionKey:c,createdAt:r,endedAt:d>=28&&1&t?e.uint.decode(o):0,discoveryKey:d>=28&&2&t?e.fixed32.decode(o):null,version:d>=28&&4&t?e.uint.decode(o):0}}},pi={preencode(d,o){e.fixed32.preencode(d,o.callKey),e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.createdAt)},encode(d,o){e.fixed32.encode(d,o.callKey),e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.createdAt)},decode:d=>({callKey:e.fixed32.decode(d),memberKey:e.fixed32.decode(d),createdAt:e.uint.decode(d)})},ui={preencode(o,n){e.fixed32.preencode(o,n.callKey),e.fixed32.preencode(o,n.deviceKey),e.fixed32.preencode(o,n.memberKey),e.uint.preencode(o,n.createdAt),o.end++,d>=28&&n.swarmKey&&e.fixed32.preencode(o,n.swarmKey),d>=32&&n.lastHeartbeatAt&&e.uint.preencode(o,n.lastHeartbeatAt)},encode(o,n){const c=(d>=28&&n.swarmKey?1:0)|(d>=32&&n.lastHeartbeatAt?2:0)|(d>=33&&n.isRecording?4:0);e.fixed32.encode(o,n.callKey),e.fixed32.encode(o,n.deviceKey),e.fixed32.encode(o,n.memberKey),e.uint.encode(o,n.createdAt),e.uint.encode(o,c),d>=28&&n.swarmKey&&e.fixed32.encode(o,n.swarmKey),d>=32&&n.lastHeartbeatAt&&e.uint.encode(o,n.lastHeartbeatAt)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),r=e.fixed32.decode(o),t=e.uint.decode(o),i=e.uint.decode(o);return{callKey:n,deviceKey:c,memberKey:r,createdAt:t,swarmKey:d>=28&&1&i?e.fixed32.decode(o):null,lastHeartbeatAt:d>=32&&2&i?e.uint.decode(o):0,isRecording:d>=33&&!!(4&i)}}},fi={preencode(o,n){e.fixed32.preencode(o,n.callKey),e.fixed32.preencode(o,n.deviceKey),e.buffer.preencode(o,n.streamKey),e.uint.preencode(o,n.createdAt),o.end++,d>=36&&n.mediaStreamId&&e.string.preencode(o,n.mediaStreamId),d>=36&&n.type&&e.string.preencode(o,n.type),d>=36&&n.statusKey&&e.uint.preencode(o,n.statusKey)},encode(o,n){const c=(d>=36&&n.mediaStreamId?1:0)|(d>=36&&n.type?2:0)|(d>=36&&n.statusKey?4:0);e.fixed32.encode(o,n.callKey),e.fixed32.encode(o,n.deviceKey),e.buffer.encode(o,n.streamKey),e.uint.encode(o,n.createdAt),e.uint.encode(o,c),d>=36&&n.mediaStreamId&&e.string.encode(o,n.mediaStreamId),d>=36&&n.type&&e.string.encode(o,n.type),d>=36&&n.statusKey&&e.uint.encode(o,n.statusKey)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),r=e.buffer.decode(o),t=e.uint.decode(o),i=o.start<o.end?e.uint.decode(o):0;return{callKey:n,deviceKey:c,streamKey:r,createdAt:t,mediaStreamId:d>=36&&1&i?e.string.decode(o):null,type:d>=36&&2&i?e.string.decode(o):null,statusKey:d>=36&&4&i?e.uint.decode(o):0}}},mi={preencode(o,n){e.fixed32.preencode(o,n.callKey),o.end++,d>=28&&n.selfDeviceKey&&e.fixed32.preencode(o,n.selfDeviceKey),d>=36&&n.createdAt&&e.uint.preencode(o,n.createdAt)},encode(o,n){const c=(d>=28&&n.selfDeviceKey?1:0)|(d>=36&&n.createdAt?2:0);e.fixed32.encode(o,n.callKey),e.uint.encode(o,c),d>=28&&n.selfDeviceKey&&e.fixed32.encode(o,n.selfDeviceKey),d>=36&&n.createdAt&&e.uint.encode(o,n.createdAt)},decode(o){const n=e.fixed32.decode(o),c=e.uint.decode(o);return{callKey:n,selfDeviceKey:d>=28&&1&c?e.fixed32.decode(o):null,createdAt:d>=36&&2&c?e.uint.decode(o):0}}},yi={preencode(d,o){e.uint.preencode(d,o.lastCleared)},encode(d,o){e.uint.encode(d,o.lastCleared)},decode:d=>({lastCleared:e.uint.decode(d)})},bi={Nightly:"Nightly",Internal:"Internal",Production:"Production"},xi={preencode(e,d){e.end++},encode(d,o){switch(o){case"Nightly":e.uint.encode(d,1);break;case"Internal":e.uint.encode(d,2);break;case"Production":e.uint.encode(d,3);break;default:throw new Error("Unknown enum")}},decode(d){switch(e.uint.decode(d)){case 1:return"Nightly";case 2:return"Internal";case 3:return"Production";default:return null}}},vi=$,gi={preencode(e,d){vi.preencode(e,d.header)},encode(e,d){vi.encode(e,d.header)},decode:e=>({header:vi.decode(e)})},ki=$,Ki={preencode(e,d){ki.preencode(e,d.header)},encode(e,d){ki.encode(e,d.header)},decode:e=>({header:ki.decode(e)})},hi={preencode(o,n){xi.preencode(o,n.buildType),o.end++,d>=30&&n.latestOfflineAbi&&e.uint.preencode(o,n.latestOfflineAbi)},encode(o,n){const c=d>=30&&n.latestOfflineAbi?1:0;xi.encode(o,n.buildType),e.uint.encode(o,c),d>=30&&n.latestOfflineAbi&&e.uint.encode(o,n.latestOfflineAbi)},decode(o){const n=xi.decode(o),c=o.start<o.end?e.uint.decode(o):0;return{buildType:n,latestOfflineAbi:d>=30&&1&c?e.uint.decode(o):0}}},wi=$,Ri={preencode(d,o){wi.preencode(d,o.header),e.fixed32.preencode(d,o.deviceKey),e.buffer.preencode(d,o.deviceProof),e.buffer.preencode(d,o.writerProof)},encode(d,o){wi.encode(d,o.header),e.fixed32.encode(d,o.deviceKey),e.buffer.encode(d,o.deviceProof),e.buffer.encode(d,o.writerProof)},decode:d=>({header:wi.decode(d),deviceKey:e.fixed32.decode(d),deviceProof:e.buffer.decode(d),writerProof:e.buffer.decode(d)})},Pi={preencode(o,n){o.end++,d>=31&&n.otaResyncPrivateProfileBump&&e.uint.preencode(o,n.otaResyncPrivateProfileBump)},encode(o,n){const c=d>=31&&n.otaResyncPrivateProfileBump?1:0;e.uint.encode(o,c),d>=31&&n.otaResyncPrivateProfileBump&&e.uint.encode(o,n.otaResyncPrivateProfileBump)},decode(o){const n=e.uint.decode(o);return{otaResyncPrivateProfileBump:d>=31&&1&n?e.uint.decode(o):0}}},Ti={preencode(d,o){e.fixed32.preencode(d,o.deviceKey),e.buffer.preencode(d,o.proof),e.uint.preencode(d,o.createdAt)},encode(d,o){e.fixed32.encode(d,o.deviceKey),e.buffer.encode(d,o.proof),e.uint.encode(d,o.createdAt)},decode:d=>({deviceKey:e.fixed32.decode(d),proof:e.buffer.decode(d),createdAt:e.uint.decode(d)})},Ai=$,Mi={preencode(d,o){Ai.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){Ai.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:Ai.decode(d),callKey:e.fixed32.decode(d)})},Si=$,Ii={preencode(d,o){Si.preencode(d,o.header),e.fixed32.preencode(d,o.callKey),e.fixed32.preencode(d,o.deviceKey)},encode(d,o){Si.encode(d,o.header),e.fixed32.encode(d,o.callKey),e.fixed32.encode(d,o.deviceKey)},decode:d=>({header:Si.decode(d),callKey:e.fixed32.decode(d),deviceKey:e.fixed32.decode(d)})},Ci=e.frame(ht),Vi=e.array(e.frame(yt)),Hi={preencode(e,d){Ci.preencode(e,d.digest),Vi.preencode(e,d.mine)},encode(e,d){Ci.encode(e,d.digest),Vi.encode(e,d.mine)},decode:e=>({digest:Ci.decode(e),mine:Vi.decode(e)})},Fi=$,Di={preencode(d,o){Fi.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){Fi.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:Fi.decode(d),callKey:e.fixed32.decode(d)})},Li=$,ji={preencode(d,o){Li.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){Li.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:Li.decode(d),callKey:e.fixed32.decode(d)})},qi={preencode(o,n){o.end++,d>=33&&n.profileSnoozeTime&&e.uint.preencode(o,n.profileSnoozeTime)},encode(o,n){const c=(d>=33&&n.disableReadReceipts?1:0)|(d>=33&&n.stripAttachmentMetadata?2:0)|(d>=33&&n.profileSnoozeTime?4:0);e.uint.encode(o,c),d>=33&&n.profileSnoozeTime&&e.uint.encode(o,n.profileSnoozeTime)},decode(o){const n=e.uint.decode(o);return{disableReadReceipts:d>=33&&!!(1&n),stripAttachmentMetadata:d>=33&&!!(2&n),profileSnoozeTime:d>=33&&4&n?e.uint.decode(o):0}}},Bi={preencode(o,n){o.end++,d>=33&&n.maxPeers&&e.uint.preencode(o,n.maxPeers)},encode(o,n){const c=d>=33&&n.maxPeers?1:0;e.uint.encode(o,c),d>=33&&n.maxPeers&&e.uint.encode(o,n.maxPeers)},decode(o){const n=e.uint.decode(o);return{maxPeers:d>=33&&1&n?e.uint.decode(o):0}}},Ei=$,zi={preencode(e,d){Ei.preencode(e,d.header),n.preencode(e,d.oplog)},encode(e,d){Ei.encode(e,d.header),n.encode(e,d.oplog)},decode:e=>({header:Ei.decode(e),oplog:n.decode(e)})},Oi=$,Ni={preencode(e,d){Oi.preencode(e,d.header)},encode(e,d){Oi.encode(e,d.header)},decode:e=>({header:Oi.decode(e)})},Ui={preencode(d,o){e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.timestamp)},encode(d,o){e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.timestamp)},decode:d=>({memberKey:e.fixed32.decode(d),timestamp:e.uint.decode(d)})},Ji=$,Wi={preencode(o,n){Ji.preencode(o,n.header),e.fixed32.preencode(o,n.memberKey),o.end++,d>=34&&n.alias&&e.string.preencode(o,n.alias)},encode(o,n){const c=d>=34&&n.alias?1:0;Ji.encode(o,n.header),e.fixed32.encode(o,n.memberKey),e.uint.encode(o,c),d>=34&&n.alias&&e.string.encode(o,n.alias)},decode(o){const n=Ji.decode(o),c=e.fixed32.decode(o),r=e.uint.decode(o);return{header:n,memberKey:c,alias:d>=34&&1&r?e.string.decode(o):null}}},Gi={preencode(d,o){e.uint.preencode(d,o.streams)},encode(d,o){e.uint.encode(d,o.streams)},decode:d=>({streams:e.uint.decode(d)})},Qi={preencode(d,o){e.fixed32.preencode(d,o.streamKey),e.string.preencode(d,o.mediaStreamId),e.string.preencode(d,o.type),d.end++},encode(o,n){const c=d>=36&&n.muted?1:0;e.fixed32.encode(o,n.streamKey),e.string.encode(o,n.mediaStreamId),e.string.encode(o,n.type),e.uint.encode(o,c)},decode(o){const n=e.fixed32.decode(o),c=e.string.decode(o),r=e.string.decode(o),t=e.uint.decode(o);return{streamKey:n,mediaStreamId:c,type:r,muted:d>=36&&!!(1&t)}}},Xi=$,Yi={preencode(d,o){Xi.preencode(d,o.header),e.fixed32.preencode(d,o.callKey),e.fixed32.preencode(d,o.streamKey),d.end++},encode(o,n){const c=d>=36&&n.muted?1:0;Xi.encode(o,n.header),e.fixed32.encode(o,n.callKey),e.fixed32.encode(o,n.streamKey),e.uint.encode(o,c)},decode(o){const n=Xi.decode(o),c=e.fixed32.decode(o),r=e.fixed32.decode(o),t=e.uint.decode(o);return{header:n,callKey:c,streamKey:r,muted:d>=36&&!!(1&t)}}},Zi={preencode(d,o){e.uint.preencode(d,o.statusKey),d.end++},encode(o,n){const c=d>=36&&n.muted?1:0;e.uint.encode(o,n.statusKey),e.uint.encode(o,c)},decode(o){const n=e.uint.decode(o),c=e.uint.decode(o);return{statusKey:n,muted:d>=36&&!!(1&c)}}},$i={preencode(n,c){e.fixed32.preencode(n,c.key),n.end++,d>=37&&c.encryptionKey&&e.buffer.preencode(n,c.encryptionKey),d>=37&&c.bootFrom&&o.preencode(n,c.bootFrom)},encode(n,c){const r=(d>=37&&c.encryptionKey?1:0)|(d>=37&&c.bootFrom?2:0);e.fixed32.encode(n,c.key),e.uint.encode(n,r),d>=37&&c.encryptionKey&&e.buffer.encode(n,c.encryptionKey),d>=37&&c.bootFrom&&o.encode(n,c.bootFrom)},decode(n){const c=e.fixed32.decode(n),r=e.uint.decode(n);return{key:c,encryptionKey:d>=37&&1&r?e.buffer.decode(n):null,bootFrom:d>=37&&2&r?o.decode(n):null}}},_i={preencode(d,o){e.fixed32.preencode(d,o.hash)},encode(d,o){e.fixed32.encode(d,o.hash)},decode:d=>({hash:e.fixed32.decode(d)})},ea={preencode(d,o){e.fixed32.preencode(d,o.hash),e.buffer.preencode(d,o.data)},encode(d,o){e.fixed32.encode(d,o.hash),e.buffer.encode(d,o.data)},decode:d=>({hash:e.fixed32.decode(d),data:e.buffer.decode(d)})},da={preencode(n,c){o.preencode(n,c.autobeeMigrationHead),n.end++,d>=37&&c.legacyViewHead&&o.preencode(n,c.legacyViewHead),d>=37&&c.dbViewHead&&o.preencode(n,c.dbViewHead),d>=37&&c.blobsViewHead&&o.preencode(n,c.blobsViewHead),e.uint.preencode(n,c.createdAt)},encode(n,c){const r=(d>=37&&c.legacyViewHead?1:0)|(d>=37&&c.dbViewHead?2:0)|(d>=37&&c.blobsViewHead?4:0);o.encode(n,c.autobeeMigrationHead),e.uint.encode(n,r),d>=37&&c.legacyViewHead&&o.encode(n,c.legacyViewHead),d>=37&&c.dbViewHead&&o.encode(n,c.dbViewHead),d>=37&&c.blobsViewHead&&o.encode(n,c.blobsViewHead),e.uint.encode(n,c.createdAt)},decode(n){const c=o.decode(n),r=e.uint.decode(n);return{autobeeMigrationHead:c,legacyViewHead:d>=37&&1&r?o.decode(n):null,dbViewHead:d>=37&&2&r?o.decode(n):null,blobsViewHead:d>=37&&4&r?o.decode(n):null,createdAt:e.uint.decode(n)}}},oa=$,na={preencode(e,n){oa.preencode(e,n.header),o.preencode(e,n.head),e.end++,d>=37&&n.legacyViewHead&&o.preencode(e,n.legacyViewHead),d>=37&&n.dbViewHead&&o.preencode(e,n.dbViewHead),d>=37&&n.blobsViewHead&&o.preencode(e,n.blobsViewHead)},encode(n,c){const r=(d>=37&&c.legacyViewHead?1:0)|(d>=37&&c.dbViewHead?2:0)|(d>=37&&c.blobsViewHead?4:0);oa.encode(n,c.header),o.encode(n,c.head),e.uint.encode(n,r),d>=37&&c.legacyViewHead&&o.encode(n,c.legacyViewHead),d>=37&&c.dbViewHead&&o.encode(n,c.dbViewHead),d>=37&&c.blobsViewHead&&o.encode(n,c.blobsViewHead)},decode(n){const c=oa.decode(n),r=o.decode(n),t=e.uint.decode(n);return{header:c,head:r,legacyViewHead:d>=37&&1&t?o.decode(n):null,dbViewHead:d>=37&&2&t?o.decode(n):null,blobsViewHead:d>=37&&4&t?o.decode(n):null}}},ca={preencode(n,c){e.fixed32.preencode(n,c.roomKey),e.fixed32.preencode(n,c.encryptionKey),e.fixed32.preencode(n,c.seed),n.end++,d>=37&&c.bootFrom&&o.preencode(n,c.bootFrom)},encode(n,c){const r=d>=37&&c.bootFrom?1:0;e.fixed32.encode(n,c.roomKey),e.fixed32.encode(n,c.encryptionKey),e.fixed32.encode(n,c.seed),e.uint.encode(n,r),d>=37&&c.bootFrom&&o.encode(n,c.bootFrom)},decode(n){const c=e.fixed32.decode(n),r=e.fixed32.decode(n),t=e.fixed32.decode(n),i=e.uint.decode(n);return{roomKey:c,encryptionKey:r,seed:t,bootFrom:d>=37&&1&i?o.decode(n):null}}},ra=id,ta={preencode(d,o){e.fixed32.preencode(d,o.memberKey),e.fixed32.preencode(d,o.deviceKey),e.uint.preencode(d,o.deviceLength),e.uint.preencode(d,o.clock),ra.preencode(d,o.status)},encode(d,o){e.fixed32.encode(d,o.memberKey),e.fixed32.encode(d,o.deviceKey),e.uint.encode(d,o.deviceLength),e.uint.encode(d,o.clock),ra.encode(d,o.status)},decode:d=>({memberKey:e.fixed32.decode(d),deviceKey:e.fixed32.decode(d),deviceLength:e.uint.decode(d),clock:e.uint.decode(d),status:ra.decode(d)})},ia={preencode(d,o){e.fixed32.preencode(d,o.hash),e.buffer.preencode(d,o.blob)},encode(d,o){e.fixed32.encode(d,o.hash),e.buffer.encode(d,o.blob)},decode:d=>({hash:e.fixed32.decode(d),blob:e.buffer.decode(d)})},aa=In,sa=Cn,la=gn,pa={preencode(n,c){e.fixed32.preencode(n,c.roomKey),e.buffer.preencode(n,c.encryptionKey),e.fixed32.preencode(n,c.mailbox),aa.preencode(n,c.status),e.uint.preencode(n,c.clock),n.end++,d>=37&&c.initiator&&o.preencode(n,c.initiator),d>=37&&c.bootFrom&&o.preencode(n,c.bootFrom),d>=37&&c.identitySwap&&sa.preencode(n,c.identitySwap),d>=37&&c.identitySwapV2&&la.preencode(n,c.identitySwapV2),d>=37&&c.contact&&e.fixed32.preencode(n,c.contact)},encode(n,c){const r=(d>=37&&c.initiator?1:0)|(d>=37&&c.bootFrom?2:0)|(d>=37&&c.identitySwap?4:0)|(d>=37&&c.identitySwapV2?8:0)|(d>=37&&c.contact?16:0);e.fixed32.encode(n,c.roomKey),e.buffer.encode(n,c.encryptionKey),e.fixed32.encode(n,c.mailbox),aa.encode(n,c.status),e.uint.encode(n,c.clock),e.uint.encode(n,r),d>=37&&c.initiator&&o.encode(n,c.initiator),d>=37&&c.bootFrom&&o.encode(n,c.bootFrom),d>=37&&c.identitySwap&&sa.encode(n,c.identitySwap),d>=37&&c.identitySwapV2&&la.encode(n,c.identitySwapV2),d>=37&&c.contact&&e.fixed32.encode(n,c.contact)},decode(n){const c=e.fixed32.decode(n),r=e.buffer.decode(n),t=e.fixed32.decode(n),i=aa.decode(n),a=e.uint.decode(n),s=e.uint.decode(n);return{roomKey:c,encryptionKey:r,mailbox:t,status:i,clock:a,initiator:d>=37&&1&s?o.decode(n):null,bootFrom:d>=37&&2&s?o.decode(n):null,identitySwap:d>=37&&4&s?sa.decode(n):null,identitySwapV2:d>=37&&8&s?la.decode(n):null,contact:d>=37&&16&s?e.fixed32.decode(n):null}}},ua=$,fa={preencode(n,c){ua.preencode(n,c.header),e.fixed32.preencode(n,c.roomKey),e.buffer.preencode(n,c.encryptionKey),e.fixed32.preencode(n,c.mailbox),n.end++,d>=37&&c.bootFrom&&o.preencode(n,c.bootFrom),d>=37&&c.initiator&&o.preencode(n,c.initiator),d>=37&&c.dm&&e.fixed32.preencode(n,c.dm)},encode(n,c){const r=(d>=37&&c.bootFrom?1:0)|(d>=37&&c.initiator?2:0)|(d>=37&&c.dm?4:0)|(d>=37&&c.isReadOnly?8:0);ua.encode(n,c.header),e.fixed32.encode(n,c.roomKey),e.buffer.encode(n,c.encryptionKey),e.fixed32.encode(n,c.mailbox),e.uint.encode(n,r),d>=37&&c.bootFrom&&o.encode(n,c.bootFrom),d>=37&&c.initiator&&o.encode(n,c.initiator),d>=37&&c.dm&&e.fixed32.encode(n,c.dm)},decode(n){const c=ua.decode(n),r=e.fixed32.decode(n),t=e.buffer.decode(n),i=e.fixed32.decode(n),a=e.uint.decode(n);return{header:c,roomKey:r,encryptionKey:t,mailbox:i,bootFrom:d>=37&&1&a?o.decode(n):null,initiator:d>=37&&2&a?o.decode(n):null,dm:d>=37&&4&a?e.fixed32.decode(n):null,isReadOnly:d>=37&&!!(8&a)}}},ma={preencode(n,c){e.fixed32.preencode(n,c.roomKey),e.buffer.preencode(n,c.encryptionKey),n.end++,d>=37&&c.bootFrom&&o.preencode(n,c.bootFrom),d>=37&&c.initiator&&o.preencode(n,c.initiator)},encode(n,c){const r=(d>=37&&c.bootFrom?1:0)|(d>=37&&c.initiator?2:0);e.fixed32.encode(n,c.roomKey),e.buffer.encode(n,c.encryptionKey),e.uint.encode(n,r),d>=37&&c.bootFrom&&o.encode(n,c.bootFrom),d>=37&&c.initiator&&o.encode(n,c.initiator)},decode(n){const c=e.fixed32.decode(n),r=e.buffer.decode(n),t=e.uint.decode(n);return{roomKey:c,encryptionKey:r,bootFrom:d>=37&&1&t?o.decode(n):null,initiator:d>=37&&2&t?o.decode(n):null}}},ya={preencode(d,o){e.fixed32.preencode(d,o.roomKey),ml.preencode(d,o.head),e.uint.preencode(d,o.timestamp),d.end++},encode(o,n){const c=d>=37&&n.incremental?1:0;e.fixed32.encode(o,n.roomKey),ml.encode(o,n.head),e.uint.encode(o,n.timestamp),e.uint.encode(o,c)},decode(o){const n=e.fixed32.decode(o),c=ml.decode(o),r=e.uint.decode(o),t=e.uint.decode(o);return{roomKey:n,head:c,timestamp:r,incremental:d>=37&&!!(1&t)}}},ba={preencode(o,n){o.end++,d>=37&&n.key&&e.fixed32.preencode(o,n.key),e.uint.preencode(o,n.length)},encode(o,n){const c=d>=37&&n.key?1:0;e.uint.encode(o,c),d>=37&&n.key&&e.fixed32.encode(o,n.key),e.uint.encode(o,n.length)},decode(o){const n=e.uint.decode(o);return{key:d>=37&&1&n?e.fixed32.decode(o):null,length:e.uint.decode(o)}}},xa={preencode(n,c){e.fixed32.preencode(n,c.roomKey),n.end++,d>=37&&c.legacyViewHead&&o.preencode(n,c.legacyViewHead),d>=37&&c.dbViewHead&&o.preencode(n,c.dbViewHead),d>=37&&c.blobsViewHead&&o.preencode(n,c.blobsViewHead),d>=37&&c.autobeeMigrationHead&&o.preencode(n,c.autobeeMigrationHead)},encode(n,c){const r=(d>=37&&c.legacyViewHead?1:0)|(d>=37&&c.dbViewHead?2:0)|(d>=37&&c.blobsViewHead?4:0)|(d>=37&&c.autobeeMigrationHead?8:0);e.fixed32.encode(n,c.roomKey),e.uint.encode(n,r),d>=37&&c.legacyViewHead&&o.encode(n,c.legacyViewHead),d>=37&&c.dbViewHead&&o.encode(n,c.dbViewHead),d>=37&&c.blobsViewHead&&o.encode(n,c.blobsViewHead),d>=37&&c.autobeeMigrationHead&&o.encode(n,c.autobeeMigrationHead)},decode(n){const c=e.fixed32.decode(n),r=e.uint.decode(n);return{roomKey:c,legacyViewHead:d>=37&&1&r?o.decode(n):null,dbViewHead:d>=37&&2&r?o.decode(n):null,blobsViewHead:d>=37&&4&r?o.decode(n):null,autobeeMigrationHead:d>=37&&8&r?o.decode(n):null}}},va={preencode(d,o){e.fixed32.preencode(d,o.id),e.fixed32.preencode(d,o.writerKey),e.buffer.preencode(d,o.blindResponse)},encode(d,o){e.fixed32.encode(d,o.id),e.fixed32.encode(d,o.writerKey),e.buffer.encode(d,o.blindResponse)},decode:d=>({id:e.fixed32.decode(d),writerKey:e.fixed32.decode(d),blindResponse:e.buffer.decode(d)})},ga=$,ka={preencode(d,o){ga.preencode(d,o.header),e.buffer.preencode(d,o.blindResponse)},encode(d,o){ga.encode(d,o.header),e.buffer.encode(d,o.blindResponse)},decode:d=>({header:ga.decode(d),blindResponse:e.buffer.decode(d)})},Ka=e.frame(Ac),ha={preencode(o,n){e.string.preencode(o,n.mnemonic),o.end++,d>=39&&n.profileDiscoveryTimeout&&e.uint.preencode(o,n.profileDiscoveryTimeout),d>=39&&n.privateProfileKey&&e.fixed32.preencode(o,n.privateProfileKey),d>=39&&n.identity&&Ka.preencode(o,n.identity)},encode(o,n){const c=(d>=39&&n.profileDiscoveryTimeout?1:0)|(d>=39&&n.privateProfileKey?2:0)|(d>=39&&n.identity?4:0);e.string.encode(o,n.mnemonic),e.uint.encode(o,c),d>=39&&n.profileDiscoveryTimeout&&e.uint.encode(o,n.profileDiscoveryTimeout),d>=39&&n.privateProfileKey&&e.fixed32.encode(o,n.privateProfileKey),d>=39&&n.identity&&Ka.encode(o,n.identity)},decode(o){const n=e.string.decode(o),c=e.uint.decode(o);return{mnemonic:n,profileDiscoveryTimeout:d>=39&&1&c?e.uint.decode(o):0,privateProfileKey:d>=39&&2&c?e.fixed32.decode(o):null,identity:d>=39&&4&c?Ka.decode(o):null}}},wa=hc,Ra={preencode(o,n){e.uint.preencode(o,n.priority),o.end++,n.v3&&wa.preencode(o,n.v3),d>=5&&n.timestamp&&e.uint.preencode(o,n.timestamp)},encode(o,n){const c=(n.v3?1:0)|(d>=3&&n.errored?2:0)|(d>=5&&n.timestamp?4:0);e.uint.encode(o,n.priority),e.uint.encode(o,c),n.v3&&wa.encode(o,n.v3),d>=5&&n.timestamp&&e.uint.encode(o,n.timestamp)},decode(o){const n=e.uint.decode(o),c=e.uint.decode(o);return{roomKey:null,priority:n,v3:1&c?wa.decode(o):null,errored:d>=3&&!!(2&c),timestamp:d>=5&&4&c?e.uint.decode(o):0}}},Pa=Xo,Ta=fo,Aa=ir,Ma=vc,Sa=sr,Ia=lr,Ca=pr,Va=Oo,Ha=$o,Fa=mr,Da=X,La=br,ja=In,qa={preencode(o,n){const c=(n.selfDevice?1:0)|(n.selfMember?2:0)|(n.config?4:0)|(n.identity?8:0)|(n.lastMessage?16:0)|(n.dm?32:0)|(d>=19&&n.readLengths?64:0)|(d>=19&&n.lastMember?128:0)|(d>=21&&n.version?256:0)|(d>=27&&n.preferences?512:0)|(d>=28&&n.activeCall?1024:0)|(d>=32&&n.lastMessageLabels?2048:0)|(d>=33&&n.settings?4096:0)|(d>=37&&n.system?8192:0)|(d>=37&&n.processed?16384:0);e.fixed32.preencode(o,n.discoveryKey),e.buffer.preencode(o,n.encryptionKey),Pa.preencode(o,n.digest),Ta.preencode(o,n.stats),Aa.preencode(o,n.timestamps),e.uint.preencode(o,n.fork),e.uint.preencode(o,n.length),e.fixed32.preencode(o,n.seed),Ma.preencode(o,n.capabilities),Sa.preencode(o,n.status),e.uint.preencode(o,c),n.selfDevice&&Ia.preencode(o,n.selfDevice),n.selfMember&&Ca.preencode(o,n.selfMember),n.config&&Va.preencode(o,n.config),n.identity&&Ha.preencode(o,n.identity),n.lastMessage&&Fa.preencode(o,n.lastMessage),n.dm&&Da.preencode(o,n.dm),d>=19&&n.readLengths&&yl.preencode(o,n.readLengths),d>=19&&n.lastMember&&La.preencode(o,n.lastMember),d>=21&&n.version&&e.uint.preencode(o,n.version),d>=27&&n.preferences&&ja.preencode(o,n.preferences),d>=28&&n.activeCall&&bl.preencode(o,n.activeCall),d>=32&&n.lastMessageLabels&&xl.preencode(o,n.lastMessageLabels),d>=33&&n.settings&&vl.preencode(o,n.settings),d>=37&&n.system&&gl.preencode(o,n.system),d>=37&&n.processed&&kl.preencode(o,n.processed)},encode(o,n){const c=(n.selfDevice?1:0)|(n.selfMember?2:0)|(n.config?4:0)|(n.identity?8:0)|(n.lastMessage?16:0)|(n.dm?32:0)|(d>=19&&n.readLengths?64:0)|(d>=19&&n.lastMember?128:0)|(d>=21&&n.version?256:0)|(d>=27&&n.preferences?512:0)|(d>=28&&n.activeCall?1024:0)|(d>=32&&n.lastMessageLabels?2048:0)|(d>=33&&n.settings?4096:0)|(d>=37&&n.system?8192:0)|(d>=37&&n.processed?16384:0);e.fixed32.encode(o,n.discoveryKey),e.buffer.encode(o,n.encryptionKey),Pa.encode(o,n.digest),Ta.encode(o,n.stats),Aa.encode(o,n.timestamps),e.uint.encode(o,n.fork),e.uint.encode(o,n.length),e.fixed32.encode(o,n.seed),Ma.encode(o,n.capabilities),Sa.encode(o,n.status),e.uint.encode(o,c),n.selfDevice&&Ia.encode(o,n.selfDevice),n.selfMember&&Ca.encode(o,n.selfMember),n.config&&Va.encode(o,n.config),n.identity&&Ha.encode(o,n.identity),n.lastMessage&&Fa.encode(o,n.lastMessage),n.dm&&Da.encode(o,n.dm),d>=19&&n.readLengths&&yl.encode(o,n.readLengths),d>=19&&n.lastMember&&La.encode(o,n.lastMember),d>=21&&n.version&&e.uint.encode(o,n.version),d>=27&&n.preferences&&ja.encode(o,n.preferences),d>=28&&n.activeCall&&bl.encode(o,n.activeCall),d>=32&&n.lastMessageLabels&&xl.encode(o,n.lastMessageLabels),d>=33&&n.settings&&vl.encode(o,n.settings),d>=37&&n.system&&gl.encode(o,n.system),d>=37&&n.processed&&kl.encode(o,n.processed)},decode(o){const n=e.fixed32.decode(o),c=e.buffer.decode(o),r=Pa.decode(o),t=Ta.decode(o),i=Aa.decode(o),a=e.uint.decode(o),s=e.uint.decode(o),l=e.fixed32.decode(o),p=Ma.decode(o),u=Sa.decode(o),f=e.uint.decode(o);return{roomKey:null,discoveryKey:n,encryptionKey:c,digest:r,stats:t,timestamps:i,fork:a,length:s,seed:l,capabilities:p,status:u,selfDevice:1&f?Ia.decode(o):null,selfMember:2&f?Ca.decode(o):null,config:4&f?Va.decode(o):null,identity:8&f?Ha.decode(o):null,lastMessage:16&f?Fa.decode(o):null,dm:32&f?Da.decode(o):null,readLengths:d>=19&&64&f?yl.decode(o):null,lastMember:d>=19&&128&f?La.decode(o):null,version:d>=21&&256&f?e.uint.decode(o):0,preferences:d>=27&&512&f?ja.decode(o):null,activeCall:d>=28&&1024&f?bl.decode(o):null,lastMessageLabels:d>=32&&2048&f?xl.decode(o):null,settings:d>=33&&4096&f?vl.decode(o):null,system:d>=37&&8192&f?gl.decode(o):null,processed:d>=37&&16384&f?kl.decode(o):null}}},Ba=In,Ea={preencode(e,d){Ba.preencode(e,d.status)},encode(e,d){Ba.encode(e,d.status)},decode:e=>({roomKey:null,status:Ba.decode(e)})},za={preencode(o,n){e.fixed32.preencode(o,n.key),o.end++,n.roomKey&&e.fixed32.preencode(o,n.roomKey),n.keyPair&&r.preencode(o,n.keyPair),n.responseKeyPair&&r.preencode(o,n.responseKeyPair),d>=39&&n.activeClock&&e.uint.preencode(o,n.activeClock)},encode(o,n){const c=(n.roomKey?1:0)|(n.keyPair?2:0)|(n.responseKeyPair?4:0)|(d>=38&&n.pending?8:0)|(d>=39&&n.activeClock?16:0);e.fixed32.encode(o,n.key),e.uint.encode(o,c),n.roomKey&&e.fixed32.encode(o,n.roomKey),n.keyPair&&r.encode(o,n.keyPair),n.responseKeyPair&&r.encode(o,n.responseKeyPair),d>=39&&n.activeClock&&e.uint.encode(o,n.activeClock)},decode(o){const n=e.fixed32.decode(o),c=e.uint.decode(o);return{mailbox:null,key:n,roomKey:1&c?e.fixed32.decode(o):null,keyPair:2&c?r.decode(o):null,responseKeyPair:4&c?r.decode(o):null,pending:d>=38&&!!(8&c),activeClock:d>=39&&16&c?e.uint.decode(o):0}}},Oa=le,Na={preencode(e,d){Oa.preencode(e,d.profile)},encode(e,d){Oa.encode(e,d.profile)},decode:e=>({key:null,profile:Oa.decode(e)})},Ua=re,Ja=te,Wa={preencode(d,o){e.fixed32.preencode(d,o.memberKey),Ua.preencode(d,o.status),Kl.preencode(d,o.profile),d.end++,o.invitation&&Ja.preencode(d,o.invitation)},encode(d,o){const n=o.invitation?1:0;e.fixed32.encode(d,o.memberKey),Ua.encode(d,o.status),Kl.encode(d,o.profile),e.uint.encode(d,n),o.invitation&&Ja.encode(d,o.invitation)},decode:d=>({key:null,memberKey:e.fixed32.decode(d),status:Ua.decode(d),profile:Kl.decode(d),invitation:1&e.uint.decode(d)?Ja.decode(d):null})},Ga=lr,Qa={preencode(d,o){e.fixed32.preencode(d,o.roomKey),Ga.preencode(d,o.device)},encode(d,o){e.fixed32.encode(d,o.roomKey),Ga.encode(d,o.device)},decode:d=>({roomKey:e.fixed32.decode(d),device:Ga.decode(d)})},Xa={preencode(o,n){hl.preencode(o,n.status),o.end++,n.mailbox&&e.fixed32.preencode(o,n.mailbox),n.roomKey&&e.fixed32.preencode(o,n.roomKey),d>=32&&n.contactInfo&&wl.preencode(o,n.contactInfo),d>=32&&n.version&&e.uint.preencode(o,n.version),d>=34&&n.alias&&e.string.preencode(o,n.alias)},encode(o,n){const c=(n.mailbox?1:0)|(n.roomKey?2:0)|(d>=32&&n.contactInfo?4:0)|(d>=32&&n.version?8:0)|(d>=34&&n.alias?16:0);hl.encode(o,n.status),e.uint.encode(o,c),n.mailbox&&e.fixed32.encode(o,n.mailbox),n.roomKey&&e.fixed32.encode(o,n.roomKey),d>=32&&n.contactInfo&&wl.encode(o,n.contactInfo),d>=32&&n.version&&e.uint.encode(o,n.version),d>=34&&n.alias&&e.string.encode(o,n.alias)},decode(o){const n=hl.decode(o),c=e.uint.decode(o);return{memberKey:null,status:n,mailbox:1&c?e.fixed32.decode(o):null,roomKey:2&c?e.fixed32.decode(o):null,contactInfo:d>=32&&4&c?wl.decode(o):null,version:d>=32&&8&c?e.uint.decode(o):0,alias:d>=34&&16&c?e.string.decode(o):null}}},Ya=Jc,Za=Wc,$a=Gc,_a=Qc,es=Xc,ds=Yc,os=Zc,ns=$c,cs=_c,rs={preencode(d,o){const n=(o.restoreIdentity?1:0)|(o.createRoom?2:0)|(o.leaveRoom?4:0)|(o.clearRoom?8:0)|(o.joinRoomInvitation?16:0)|(o.joinRoomKeys?32:0)|(o.joinRoomResponse?64:0)|(o.sendContactRequest?128:0)|(o.migrateV2Room?256:0);e.uint.preencode(d,n),o.restoreIdentity&&Ya.preencode(d,o.restoreIdentity),o.createRoom&&Za.preencode(d,o.createRoom),o.leaveRoom&&$a.preencode(d,o.leaveRoom),o.clearRoom&&_a.preencode(d,o.clearRoom),o.joinRoomInvitation&&es.preencode(d,o.joinRoomInvitation),o.joinRoomKeys&&ds.preencode(d,o.joinRoomKeys),o.joinRoomResponse&&os.preencode(d,o.joinRoomResponse),o.sendContactRequest&&ns.preencode(d,o.sendContactRequest),o.migrateV2Room&&cs.preencode(d,o.migrateV2Room)},encode(d,o){const n=(o.restoreIdentity?1:0)|(o.createRoom?2:0)|(o.leaveRoom?4:0)|(o.clearRoom?8:0)|(o.joinRoomInvitation?16:0)|(o.joinRoomKeys?32:0)|(o.joinRoomResponse?64:0)|(o.sendContactRequest?128:0)|(o.migrateV2Room?256:0);e.uint.encode(d,n),o.restoreIdentity&&Ya.encode(d,o.restoreIdentity),o.createRoom&&Za.encode(d,o.createRoom),o.leaveRoom&&$a.encode(d,o.leaveRoom),o.clearRoom&&_a.encode(d,o.clearRoom),o.joinRoomInvitation&&es.encode(d,o.joinRoomInvitation),o.joinRoomKeys&&ds.encode(d,o.joinRoomKeys),o.joinRoomResponse&&os.encode(d,o.joinRoomResponse),o.sendContactRequest&&ns.encode(d,o.sendContactRequest),o.migrateV2Room&&cs.encode(d,o.migrateV2Room)},decode(d){const o=e.uint.decode(d);return{discoveryKey:null,priority:0,timestamp:0,type:0,restoreIdentity:1&o?Ya.decode(d):null,createRoom:2&o?Za.decode(d):null,leaveRoom:4&o?$a.decode(d):null,clearRoom:8&o?_a.decode(d):null,joinRoomInvitation:16&o?es.decode(d):null,joinRoomKeys:32&o?ds.decode(d):null,joinRoomResponse:64&o?os.decode(d):null,sendContactRequest:128&o?ns.decode(d):null,migrateV2Room:256&o?cs.decode(d):null}}},ts={preencode(d,o){e.uint.preencode(d,o.blockLength),e.uint.preencode(d,o.byteOffset),e.uint.preencode(d,o.byteLength)},encode(d,o){e.uint.encode(d,o.blockLength),e.uint.encode(d,o.byteOffset),e.uint.encode(d,o.byteLength)},decode:d=>({blockOffset:0,blockLength:e.uint.decode(d),byteOffset:e.uint.decode(d),byteLength:e.uint.decode(d)})},is={preencode(e,d){a.preencode(e,d.blob)},encode(e,d){a.encode(e,d.blob)},decode:e=>({key:null,blob:a.decode(e)})},as=m,ss=y,ls={preencode(o,n){o.end++,n.inlined&&e.buffer.preencode(o,n.inlined),n.blob&&a.preencode(o,n.blob),n.externalBlob&&as.preencode(o,n.externalBlob),n.externalDrive&&ss.preencode(o,n.externalDrive),d>=37&&n.bee&&_i.preencode(o,n.bee)},encode(o,n){const c=(n.inlined?1:0)|(n.blob?2:0)|(n.externalBlob?4:0)|(n.externalDrive?8:0)|(d>=37&&n.bee?16:0);e.uint.encode(o,c),n.inlined&&e.buffer.encode(o,n.inlined),n.blob&&a.encode(o,n.blob),n.externalBlob&&as.encode(o,n.externalBlob),n.externalDrive&&ss.encode(o,n.externalDrive),d>=37&&n.bee&&_i.encode(o,n.bee)},decode(o){const n=e.uint.decode(o);return{inlined:1&n?e.buffer.decode(o):null,blob:2&n?a.decode(o):null,externalBlob:4&n?as.decode(o):null,externalDrive:8&n?ss.decode(o):null,bee:d>=37&&16&n?_i.decode(o):null}}},ps=x,us=v,fs={preencode(d,o){ps.preencode(d,o.pointer),d.end++,o.metadata&&us.preencode(d,o.metadata),o.preview&&Rl.preencode(d,o.preview),o.hash&&e.fixed32.preencode(d,o.hash)},encode(d,o){const n=(o.metadata?1:0)|(o.preview?2:0)|(o.hash?4:0);ps.encode(d,o.pointer),e.uint.encode(d,n),o.metadata&&us.encode(d,o.metadata),o.preview&&Rl.encode(d,o.preview),o.hash&&e.fixed32.encode(d,o.hash)},decode(d){const o=ps.decode(d),n=e.uint.decode(d);return{pointer:o,metadata:1&n?us.decode(d):null,preview:2&n?Rl.decode(d):null,hash:4&n?e.fixed32.decode(d):null}}},ms=k,ys={preencode(o,n){ms.preencode(o,n.file),e.fixed32.preencode(o,n.roomKey),o.end++,n.encryptionKey&&e.buffer.preencode(o,n.encryptionKey),d>=28&&n.lastAccessed&&e.uint.preencode(o,n.lastAccessed),d>=28&&n.version&&e.uint.preencode(o,n.version)},encode(o,n){const c=(n.encryptionKey?1:0)|(n.cleared?2:0)|(n.own?4:0)|(d>=28&&n.lastAccessed?8:0)|(d>=28&&n.version?16:0);ms.encode(o,n.file),e.fixed32.encode(o,n.roomKey),e.uint.encode(o,c),n.encryptionKey&&e.buffer.encode(o,n.encryptionKey),d>=28&&n.lastAccessed&&e.uint.encode(o,n.lastAccessed),d>=28&&n.version&&e.uint.encode(o,n.version)},decode(o){const n=ms.decode(o),c=e.fixed32.decode(o),r=e.uint.decode(o);return{file:n,roomKey:c,encryptionKey:1&r?e.buffer.decode(o):null,cleared:!!(2&r),own:!!(4&r),lastAccessed:d>=28&&8&r?e.uint.decode(o):0,version:d>=28&&16&r?e.uint.decode(o):0}}},bs={preencode(d,o){e.uint.preencode(d,o.size)},encode(d,o){e.uint.encode(d,o.size)},decode:d=>({key:null,path:null,version:0,size:e.uint.decode(d)})},xs=m,vs=y,gs={preencode(o,n){o.end++,n.inlined&&e.buffer.preencode(o,n.inlined),n.blob&&a.preencode(o,n.blob),n.externalBlob&&xs.preencode(o,n.externalBlob),n.externalDrive&&vs.preencode(o,n.externalDrive),d>=37&&n.bee&&_i.preencode(o,n.bee)},encode(o,n){const c=(n.inlined?1:0)|(n.blob?2:0)|(n.externalBlob?4:0)|(n.externalDrive?8:0)|(d>=37&&n.bee?16:0);e.uint.encode(o,c),n.inlined&&e.buffer.encode(o,n.inlined),n.blob&&a.encode(o,n.blob),n.externalBlob&&xs.encode(o,n.externalBlob),n.externalDrive&&vs.encode(o,n.externalDrive),d>=37&&n.bee&&_i.encode(o,n.bee)},decode(o){const n=e.uint.decode(o);return{inlined:1&n?e.buffer.decode(o):null,blob:2&n?a.decode(o):null,externalBlob:4&n?xs.decode(o):null,externalDrive:8&n?vs.decode(o):null,bee:d>=37&&16&n?_i.decode(o):null}}},ks=x,Ks=v,hs={preencode(d,o){ks.preencode(d,o.pointer),d.end++,o.metadata&&Ks.preencode(d,o.metadata),o.preview&&Pl.preencode(d,o.preview),o.hash&&e.fixed32.preencode(d,o.hash)},encode(d,o){const n=(o.metadata?1:0)|(o.preview?2:0)|(o.hash?4:0);ks.encode(d,o.pointer),e.uint.encode(d,n),o.metadata&&Ks.encode(d,o.metadata),o.preview&&Pl.encode(d,o.preview),o.hash&&e.fixed32.encode(d,o.hash)},decode(d){const o=ks.decode(d),n=e.uint.decode(d);return{pointer:o,metadata:1&n?Ks.decode(d):null,preview:2&n?Pl.decode(d):null,hash:4&n?e.fixed32.decode(d):null}}},ws=k,Rs={preencode(o,n){ws.preencode(o,n.file),e.fixed32.preencode(o,n.roomKey),o.end++,n.encryptionKey&&e.buffer.preencode(o,n.encryptionKey),d>=28&&n.lastAccessed&&e.uint.preencode(o,n.lastAccessed),d>=28&&n.version&&e.uint.preencode(o,n.version)},encode(o,n){const c=(n.encryptionKey?1:0)|(n.cleared?2:0)|(n.own?4:0)|(d>=28&&n.lastAccessed?8:0)|(d>=28&&n.version?16:0);ws.encode(o,n.file),e.fixed32.encode(o,n.roomKey),e.uint.encode(o,c),n.encryptionKey&&e.buffer.encode(o,n.encryptionKey),d>=28&&n.lastAccessed&&e.uint.encode(o,n.lastAccessed),d>=28&&n.version&&e.uint.encode(o,n.version)},decode(o){const n=ws.decode(o),c=e.fixed32.decode(o),r=e.uint.decode(o);return{file:n,roomKey:c,encryptionKey:1&r?e.buffer.decode(o):null,cleared:!!(2&r),own:!!(4&r),lastAccessed:d>=28&&8&r?e.uint.decode(o):0,version:d>=28&&16&r?e.uint.decode(o):0}}},Ps={preencode(d,o){e.uint.preencode(d,o.timestamp),d.end++,o.lastSynced&&e.uint.preencode(d,o.lastSynced)},encode(d,o){const n=(o.lastSynced?1:0)|(o.dirty?2:0);e.uint.encode(d,o.timestamp),e.uint.encode(d,n),o.lastSynced&&e.uint.encode(d,o.lastSynced)},decode(d){const o=e.uint.decode(d),n=e.uint.decode(d);return{discoveryPublicKey:null,timestamp:o,lastSynced:1&n?e.uint.decode(d):0,dirty:!!(2&n)}}},Ts={preencode(e,d){},encode(e,d){},decode:e=>({key:null,responsePublicKey:null})},As={preencode(o,n){o.end++,d>=10&&n.repairs&&e.uint.preencode(o,n.repairs)},encode(o,n){const c=d>=10&&n.repairs?1:0;e.uint.encode(o,c),d>=10&&n.repairs&&e.uint.encode(o,n.repairs)},decode(o){const n=e.uint.decode(o);return{roomKey:null,repairs:d>=10&&1&n?e.uint.decode(o):0}}},Ms={preencode(d,o){e.uint.preencode(d,o.count)},encode(d,o){e.uint.encode(d,o.count)},decode:d=>({roomKey:null,count:e.uint.decode(d)})},Ss=Ft,Is={preencode(o,n){e.string.preencode(o,n.code),e.string.preencode(o,n.message),e.string.preencode(o,n.stack),o.end++,d>=20&&n.details&&Ss.preencode(o,n.details)},encode(o,n){const c=d>=20&&n.details?1:0;e.string.encode(o,n.code),e.string.encode(o,n.message),e.string.encode(o,n.stack),e.uint.encode(o,c),d>=20&&n.details&&Ss.encode(o,n.details)},decode(o){const n=e.string.decode(o),c=e.string.decode(o),r=e.string.decode(o),t=e.uint.decode(o);return{code:n,message:c,stack:r,timestamp:0,details:d>=20&&1&t?Ss.decode(o):null}}},Cs={preencode(d,o){e.uint.preencode(d,o.total)},encode(d,o){e.uint.encode(d,o.total)},decode:d=>({roomKey:null,total:e.uint.decode(d)})},Vs={preencode(d,o){e.buffer.preencode(d,o.proof),e.uint.preencode(d,o.createdAt)},encode(d,o){e.buffer.encode(d,o.proof),e.uint.encode(d,o.createdAt)},decode:d=>({deviceKey:null,proof:e.buffer.decode(d),createdAt:e.uint.decode(d)})},Hs={preencode(d,o){Tl.preencode(d,o.head),e.uint.preencode(d,o.timestamp),d.end++},encode(o,n){const c=d>=37&&n.incremental?1:0;Tl.encode(o,n.head),e.uint.encode(o,n.timestamp),e.uint.encode(o,c)},decode(o){const n=Tl.decode(o),c=e.uint.decode(o),r=e.uint.decode(o);return{roomKey:null,head:n,timestamp:c,incremental:d>=37&&!!(1&r)}}},Fs={preencode(e,n){e.end++,d>=37&&n.legacyViewHead&&o.preencode(e,n.legacyViewHead),d>=37&&n.dbViewHead&&o.preencode(e,n.dbViewHead),d>=37&&n.blobsViewHead&&o.preencode(e,n.blobsViewHead),d>=37&&n.autobeeMigrationHead&&o.preencode(e,n.autobeeMigrationHead)},encode(n,c){const r=(d>=37&&c.legacyViewHead?1:0)|(d>=37&&c.dbViewHead?2:0)|(d>=37&&c.blobsViewHead?4:0)|(d>=37&&c.autobeeMigrationHead?8:0);e.uint.encode(n,r),d>=37&&c.legacyViewHead&&o.encode(n,c.legacyViewHead),d>=37&&c.dbViewHead&&o.encode(n,c.dbViewHead),d>=37&&c.blobsViewHead&&o.encode(n,c.blobsViewHead),d>=37&&c.autobeeMigrationHead&&o.encode(n,c.autobeeMigrationHead)},decode(n){const c=e.uint.decode(n);return{roomKey:null,legacyViewHead:d>=37&&1&c?o.decode(n):null,dbViewHead:d>=37&&2&c?o.decode(n):null,blobsViewHead:d>=37&&4&c?o.decode(n):null,autobeeMigrationHead:d>=37&&8&c?o.decode(n):null}}},Ds=e.frame(w),Ls=e.frame(Gi),js=Ds,qs=e.array(ct),Bs=e.frame(se),Es=Ds,zs=Bs,Os=e.frame(Lr),Ns=e.frame(ca),Us=Bs,Js=e.frame(fd),Ws=e.frame(Ir),Gs=e.frame(Gt),Qs=Gs,Xs=e.array(e.frame(tt)),Ys=Ds,Zs=e.frame(zn),$s=e.frame(Vr),_s=Zs,el=$s,dl=Zs,ol=$s,nl=e.frame(jr),cl=$s,rl=e.array(e.frame(Pt)),tl=e.frame(mi),il=e.frame(Hi),al=e.frame(qi),sl=e.frame(ba),ll=sl,pl=Ds,ul=e.array(e.frame(Qi)),fl=ul,ml=sl,yl=rl,bl=tl,xl=il,vl=al,gl=sl,kl=sl,Kl=Bs,hl=Zs,wl=$s,Rl=Ds,Pl=Ds,Tl=sl;function Al(e){switch(e){case"@keet/head":return o;case"@keet/oplog-id":return n;case"@keet/encryption-keypair":return c;case"@keet/signing-keypair":return r;case"@keet/room-keys":return t;case"@keet/operation-header":return i;case"@keet/blob-pointer":return a;case"@keet/file-dimensions":return s;case"@keet/file-metadata":return p;case"@keet/external-drive-pointer":return u;case"@keet/external-blob-pointer":return f;case"@keet/file-pointer":return b;case"@keet/file":return g;case"@keet/image-file":return w;case"@keet/file-status":return R;case"@keet/file-record":return A;case"@keet/device-status":return M;case"@keet/member-status":return S;case"@keet/member-moderation-status":return I;case"@keet/abi":return C;case"@keet/device-stats":return V;case"@keet/member-stats":return H;case"@keet/chat-stats":return F;case"@keet/file-stats":return D;case"@keet/stats":return E;case"@keet/room-type":return O;case"@keet/system-settings":return N;case"@keet/system-digest":return W;case"@keet/room-seed":return G;case"@keet/room-capabilities":return Q;case"@keet/room-config":return Y;case"@keet/blind-peer":return Z;case"@keet/add-blind-peer-operation":return ee;case"@keet/remove-blind-peer-operation":return oe;case"@keet/identity-attestation":return ne;case"@keet/device-invitation":return ce;case"@keet/device":return ie;case"@keet/member-profile":return ae;case"@keet/device-profile":return se;case"@keet/member-update":return pe;case"@keet/device-update":return ue;case"@keet/signed-pairing-data":return fe;case"@keet/device-request-identity":return me;case"@keet/device-response-identity":return ye;case"@keet/device-request-with-invitation":return ge;case"@keet/device-request-with-invitation-and-proof":return Ke;case"@keet/device-request-with-member-proof":return Re;case"@keet/device-request":return Ae;case"@keet/device-response":return Ie;case"@keet/invitation-metadata":return Ce;case"@keet/invitation":return Fe;case"@keet/add-invitation-operation":return je;case"@keet/remove-invitation-operation":return Be;case"@keet/sendable-room-invitation":return Ee;case"@keet/sendable-identity-invitation":return ze;case"@keet/sendable-contact-invitation":return Oe;case"@keet/sendable-invitation":return Ge;case"@keet/add-device-operation":return Xe;case"@keet/update-device-operation":return Ze;case"@keet/start-indexing-operation":return $e;case"@keet/stop-indexing-operation":return _e;case"@keet/join-request":return dd;case"@keet/accept-join-request-operation":return cd;case"@keet/reject-join-request-operation":return td;case"@keet/member":return sd;case"@keet/full-member":return ud;case"@keet/member-proofs":return fd;case"@keet/update-member-operation":return bd;case"@keet/change-member-status-operation":return gd;case"@keet/change-member-role-operation":return Kd;case"@keet/remove-member-operation":return wd;case"@keet/member-activity":return Rd;case"@keet/member-joined-event":return Pd;case"@keet/member-left-event":return Td;case"@keet/title-changed-chat-event":return Ad;case"@keet/chat-event":return Cd;case"@keet/sendable-event":return Vd;case"@keet/display-range":return Hd;case"@keet/display-content-range":return Dd;case"@keet/mention-display-item":return jd;case"@keet/link-preview":return Ed;case"@keet/display-link-item":return Nd;case"@keet/display":return _d;case"@keet/oplog-message":return co;case"@keet/index-message":return io;case"@keet/full-index-message":return lo;case"@keet/message-status":return po;case"@keet/message-index-id":return uo;case"@keet/thread":return mo;case"@keet/chat-message-record":return vo;case"@keet/full-chat-message-record":return ho;case"@keet/add-chat-message-operation":return Po;case"@keet/remove-chat-message-operation":return Ao;case"@keet/update-chat-message-operation":return Io;case"@keet/pin-chat-message-operation":return Vo;case"@keet/reaction":return Ho;case"@keet/reactions-summary":return Fo;case"@keet/reactions-digest":return Lo;case"@keet/add-reaction-operation":return qo;case"@keet/remove-reaction-operation":return Eo;case"@keet/update-room-config-operation":return No;case"@keet/group-member":return Uo;case"@keet/user-registry-info":return Jo;case"@keet/room-identity":return Go;case"@keet/genesis-operation":return dn;case"@keet/upgrade-operation":return nn;case"@keet/update-system-settings-operation":return tn;case"@keet-private-id/contact":return an;case"@keet-private-id/v3-room-migration-info":return sn;case"@keet-private-id/run-v3-migration-operation":return un;case"@keet-private-id/update-identity-operation":return mn;case"@keet-private-id/counters":return yn;case"@keet-private-id/stats":return bn;case"@keet-private-id/add-entropy-operation":return xn;case"@keet-private-id/pending-invitation-identity":return vn;case"@keet-private-id/pending-invitation":return kn;case"@keet-private-id/resolve-pending-invitation-operation":return hn;case"@keet-private-id/add-pending-invitation-operation":return Pn;case"@keet-private-id/remove-pending-invitation-operation":return An;case"@keet-private-id/identity-swap":return Mn;case"@keet-private-id/room-status":return Sn;case"@keet-private-id/room":return Hn;case"@keet-private-id/add-room-operation":return Dn;case"@keet-private-id/remove-room-operation":return jn;case"@keet-private-id/update-room-status-operation":return En;case"@keet-private-id/contact-status":return zn;case"@keet-private-id/contact-record":return On;case"@keet-private-id/add-contact-operation":return Jn;case"@keet-private-id/update-contact-status-operation":return Gn;case"@keet-private-id/remove-contact-operation":return Xn;case"@keet-private-id/contact-request-status":return Yn;case"@keet-private-id/contact-request-body":return _n;case"@keet-private-id/contact-request":return dc;case"@keet-private-id/contact-request-record":return rc;case"@keet-private-id/add-contact-request-operation":return ic;case"@keet-private-id/update-contact-request-status-operation":return lc;case"@keet-private-id/profile-discovery-record-v1":return pc;case"@keet-private-id/profile-discovery-record":return uc;case"@local/background-sync-room":return fc;case"@local/stats":return mc;case"@local/migration-status":return yc;case"@local/v3-private-profile-migration":return xc;case"@local/v3-room-migration":return kc;case"@local/room-migration-stats":return Kc;case"@local/room-migration":return wc;case"@local/identity-status":return Rc;case"@local/identity-record":return Ac;case"@local/tasks":return Sc;case"@local/room-keys":return Ic;case"@local/join-room-invitation-task":return Vc;case"@local/join-room-response-task":return Hc;case"@local/fast-forward-to":return Fc;case"@local/add-room-fields":return Dc;case"@local/join-room-keys-task":return jc;case"@local/create-room-task":return Bc;case"@local/leave-room-task":return Ec;case"@local/clear-room-task":return zc;case"@local/restore-identity-task":return Oc;case"@local/send-contact-request-task":return Nc;case"@local/migrate-v2-room-task":return Uc;case"@local/task":return er;case"@local/shared-invitation":return or;case"@local/room-status":return nr;case"@local/room-timestamps":return cr;case"@local/room":return vr;case"@local/room-preferences":return kr;case"@local/writer":return Kr;case"@local/member":return wr;case"@local/device":return Pr;case"@local/file":return Ar;case"@keet/add-file-preview-operation":return Sr;case"@keet/member-removed-event":return Ir;case"@keet/member-contact-info":return Vr;case"@keet/remove-device-operation":return Fr;case"@keet/device-identity":return Dr;case"@keet/readonly-room-invitation":return Lr;case"@keet-private-id/identity-swap-v2":return jr;case"@keet-private-id/activate-contact-room-operation":return Br;case"@local/identity-swap":return Er;case"@local/writer-append":return zr;case"@local/room-metadata":return Or;case"@local/debug-flag":return Nr;case"@local/debug":return Jr;case"@keet/display-type":return Gr;case"@keet/test-increment-operation":return Xr;case"@keet/test-collection-record-1":return Yr;case"@keet/migrate-abi-operation":return $r;case"@keet/system-settings-keys":return et;case"@local/hyperdht-record":return ot;case"@keet/room-supported-language":return ct;case"@keet/translation-display-item":return tt;case"@local/unread":return it;case"@keet-private-id/unreads":return at;case"@keet-private-id/add-unreads-key-operation":return lt;case"@keet-private-id/remove-unreads-key-operation":return ut;case"@keet/label-type":return mt;case"@keet/chat-label":return yt;case"@keet/add-chat-label-operation":return xt;case"@keet/remove-chat-label-operation":return gt;case"@keet/chat-label-summary":return kt;case"@keet/chat-label-digest":return ht;case"@keet/update-read-length-operation":return Rt;case"@keet/read-length":return Pt;case"@keet/tmp-removed-member":return Tt;case"@keet-private-id/settings":return At;case"@keet-private-id/user-settings-key":return St;case"@keet-private-id/update-settings-operation":return Vt;case"@local/error-record-details":return Ht;case"@local/error-record":return Dt;case"@local/keet-state":return jt;case"@local/file-stats":return qt;case"@keet/member-label-type":return Et;case"@keet/member-label":return zt;case"@keet/add-member-label-operation":return Nt;case"@keet/member-label-summary":return Ut;case"@keet/member-label-digest":return Wt;case"@keet/location-shared-event":return Gt;case"@keet/move-indexer-operation":return Xt;case"@keet/start-call":return $t;case"@keet/join-call":return di;case"@keet/leave-call":return ni;case"@keet/end-call":return ri;case"@keet/add-call-stream":return ii;case"@keet/remove-call-stream":return si;case"@keet/call-record":return li;case"@keet/call-member-record":return pi;case"@keet/call-device-record":return ui;case"@keet/call-stream-record":return fi;case"@local/active-call":return mi;case"@local/file-gc-info":return yi;case"@keet/build-type":return xi;case"@keet/test-crash-operation":return gi;case"@keet/test-dispatch-error-operation":return Ki;case"@local/environment-record":return hi;case"@keet-private-id/shorten-device-attestation-operation":return Ri;case"@local/ota-actions":return Pi;case"@local/device-attestation":return Ti;case"@keet/call-device-heartbeat":return Mi;case"@keet/remove-call-device":return Ii;case"@local/chat-labels":return Hi;case"@keet/start-call-recording":return Di;case"@keet/stop-call-recording":return ji;case"@local/settings":return qi;case"@local/hyperswarm-record":return Bi;case"@keet/dismiss-chat-reports-operation":return zi;case"@keet/update-typing-indicator-operation":return Ni;case"@keet/typing-indicator":return Ui;case"@keet-private-id/update-contact-alias-operation":return Wi;case"@keet/call-stats":return Gi;case"@keet/call-stream-input":return Qi;case"@keet/update-call-stream":return Yi;case"@keet/call-stream-status-record":return Zi;case"@keet/room-keys-v2":return $i;case"@keet/blob-pointer-v2":return _i;case"@keet/blob":return ea;case"@keet/autobee-migration":return da;case"@keet/autobee-migration-operation":return na;case"@keet/readonly-room-invitation-v2":return ca;case"@keet/admin-last-seen":return ta;case"@keet/blob-record":return ia;case"@keet-private-id/room-v2":return pa;case"@keet-private-id/add-room-operation-v2":return fa;case"@local/room-keys/v2":return ma;case"@local/room-update":return ya;case"@local/view-head":return ba;case"@local/autobee-migration":return xa;case"@keet-private-id/pending-invitation-response":return va;case"@keet-private-id/resolve-pending-invitation-operation-v2":return ka;case"@local/pending-recovery":return ha;case"@local/room-migration/hyperdb#3":return Ra;case"@local/room/hyperdb#6":return qa;case"@local/room-preferences/hyperdb#13":return Ea;case"@local/writer/hyperdb#14":return za;case"@local/member/hyperdb#17":return Na;case"@keet/device/hyperdb#18":return Wa;case"@local/device/hyperdb#18":return Qa;case"@keet-private-id/contact/hyperdb#19":return Xa;case"@local/task/hyperdb#21":return rs;case"@keet/blob-pointer/hyperdb#23":return ts;case"@keet/external-blob-pointer/hyperdb#23":return is;case"@keet/file-pointer/hyperdb#23":return ls;case"@keet/file/hyperdb#23":return fs;case"@local/file/hyperdb#23":return ys;case"@keet/external-drive-pointer/hyperdb#24":return bs;case"@keet/file-pointer/hyperdb#24":return gs;case"@keet/file/hyperdb#24":return hs;case"@local/file/hyperdb#24":return Rs;case"@local/background-sync-room/hyperdb#27":return Ps;case"@local/writer-append/hyperdb#29":return Ts;case"@local/room-metadata/hyperdb#30":return As;case"@local/unread/hyperdb#33":return Ms;case"@local/error-record/hyperdb#35":return Is;case"@local/file-stats/hyperdb#37":return Cs;case"@local/device-attestation/hyperdb#44":return Vs;case"@local/room-update/hyperdb#48":return Hs;case"@local/autobee-migration/hyperdb#50":return Fs;default:throw new Error("Encoder not found "+e)}}function Ml(e,o=39){const n=Al(e);return{preencode(e,c){d=o,n.preencode(e,c)},encode(e,c){d=o,n.encode(e,c)},decode:e=>(d=o,n.decode(e))}}const Sl=Ml;module.exports={resolveStruct:Sl,getStruct:Ml,getEnum:function(e){switch(e){case"@keet/room-type":return z;case"@local/tasks":return Mc;case"@keet/display-type":return Wr;case"@keet/system-settings-keys":return _r;case"@keet/room-supported-language":return nt;case"@keet/label-type":return ft;case"@keet-private-id/user-settings-key":return Mt;case"@local/keet-state":return Lt;case"@keet/member-label-type":return Bt;case"@keet/build-type":return bi;default:throw new Error("Enum not found "+e)}},getEncoding:Al,encode:function(o,n,c=39){return d=c,e.encode(Al(o),n)},decode:function(o,n,c=39){return d=c,e.decode(Al(o),n)},setVersion:function(e){d=e},version:d};
@holepunchto/keet-core/schema/spec/local/hyperschema/index.js +1 -1
……@@ -1 +1 @@
1const{c:e}=require("hyperschema/runtime");let d=34;const o={preencode(d,o){e.fixed32.preencode(d,o.key),e.uint.preencode(d,o.length)},encode(d,o){e.fixed32.encode(d,o.key),e.uint.encode(d,o.length)},decode:d=>({key:e.fixed32.decode(d),length:e.uint.decode(d)})},n={preencode(d,o){e.fixed32.preencode(d,o.key),e.uint.preencode(d,o.seq)},encode(d,o){e.fixed32.encode(d,o.key),e.uint.encode(d,o.seq)},decode:d=>({key:e.fixed32.decode(d),seq:e.uint.decode(d)})},c={preencode(d,o){e.fixed32.preencode(d,o.publicKey),e.fixed32.preencode(d,o.secretKey)},encode(d,o){e.fixed32.encode(d,o.publicKey),e.fixed32.encode(d,o.secretKey)},decode:d=>({publicKey:e.fixed32.decode(d),secretKey:e.fixed32.decode(d)})},r={preencode(d,o){e.fixed32.preencode(d,o.publicKey),e.fixed64.preencode(d,o.secretKey)},encode(d,o){e.fixed32.encode(d,o.publicKey),e.fixed64.encode(d,o.secretKey)},decode:d=>({publicKey:e.fixed32.decode(d),secretKey:e.fixed64.decode(d)})},t={preencode(d,o){e.fixed32.preencode(d,o.key),d.end++,o.encryptionKey&&e.buffer.preencode(d,o.encryptionKey),o.fastForwardTo&&e.fixed32.preencode(d,o.fastForwardTo)},encode(d,o){const n=(o.encryptionKey?1:0)|(o.fastForwardTo?2:0);e.fixed32.encode(d,o.key),e.uint.encode(d,n),o.encryptionKey&&e.buffer.encode(d,o.encryptionKey),o.fastForwardTo&&e.fixed32.encode(d,o.fastForwardTo)},decode(d){const o=e.fixed32.decode(d),n=e.uint.decode(d);return{key:o,encryptionKey:1&n?e.buffer.decode(d):null,fastForwardTo:2&n?e.fixed32.decode(d):null}}},i={preencode(d,o){e.uint.preencode(d,o.timestamp)},encode(d,o){e.uint.encode(d,o.timestamp)},decode:d=>({timestamp:e.uint.decode(d)})},a={preencode(d,o){e.uint.preencode(d,o.blockOffset),e.uint.preencode(d,o.blockLength),e.uint.preencode(d,o.byteOffset),e.uint.preencode(d,o.byteLength)},encode(d,o){e.uint.encode(d,o.blockOffset),e.uint.encode(d,o.blockLength),e.uint.encode(d,o.byteOffset),e.uint.encode(d,o.byteLength)},decode:d=>({blockOffset:e.uint.decode(d),blockLength:e.uint.decode(d),byteOffset:e.uint.decode(d),byteLength:e.uint.decode(d)})},s={preencode(d,o){e.uint.preencode(d,o.width),e.uint.preencode(d,o.height)},encode(d,o){e.uint.encode(d,o.width),e.uint.encode(d,o.height)},decode:d=>({width:e.uint.decode(d),height:e.uint.decode(d)})},p=e.frame(s),l={preencode(d,o){d.end++,o.name&&e.string.preencode(d,o.name),o.mimetype&&e.string.preencode(d,o.mimetype),o.dimensions&&p.preencode(d,o.dimensions),o.userdata&&e.buffer.preencode(d,o.userdata),o.duration&&e.uint.preencode(d,o.duration)},encode(d,o){const n=(o.name?1:0)|(o.mimetype?2:0)|(o.dimensions?4:0)|(o.userdata?8:0)|(o.duration?16:0)|(o.isPreview?32:0);e.uint.encode(d,n),o.name&&e.string.encode(d,o.name),o.mimetype&&e.string.encode(d,o.mimetype),o.dimensions&&p.encode(d,o.dimensions),o.userdata&&e.buffer.encode(d,o.userdata),o.duration&&e.uint.encode(d,o.duration)},decode(d){const o=e.uint.decode(d);return{name:1&o?e.string.decode(d):null,mimetype:2&o?e.string.decode(d):null,dimensions:4&o?p.decode(d):null,userdata:8&o?e.buffer.decode(d):null,duration:16&o?e.uint.decode(d):0,isPreview:!!(32&o)}}},u={preencode(d,o){e.fixed32.preencode(d,o.key),e.string.preencode(d,o.path),e.uint.preencode(d,o.version),e.uint.preencode(d,o.size)},encode(d,o){e.fixed32.encode(d,o.key),e.string.encode(d,o.path),e.uint.encode(d,o.version),e.uint.encode(d,o.size)},decode:d=>({key:e.fixed32.decode(d),path:e.string.decode(d),version:e.uint.decode(d),size:e.uint.decode(d)})},f={preencode(d,o){e.fixed32.preencode(d,o.key),a.preencode(d,o.blob)},encode(d,o){e.fixed32.encode(d,o.key),a.encode(d,o.blob)},decode:d=>({key:e.fixed32.decode(d),blob:a.decode(d)})},m=e.frame(f),y=e.frame(u),x={preencode(d,o){d.end++,o.inlined&&e.buffer.preencode(d,o.inlined),o.blob&&a.preencode(d,o.blob),o.externalBlob&&m.preencode(d,o.externalBlob),o.externalDrive&&y.preencode(d,o.externalDrive)},encode(d,o){const n=(o.inlined?1:0)|(o.blob?2:0)|(o.externalBlob?4:0)|(o.externalDrive?8:0);e.uint.encode(d,n),o.inlined&&e.buffer.encode(d,o.inlined),o.blob&&a.encode(d,o.blob),o.externalBlob&&m.encode(d,o.externalBlob),o.externalDrive&&y.encode(d,o.externalDrive)},decode(d){const o=e.uint.decode(d);return{inlined:1&o?e.buffer.decode(d):null,blob:2&o?a.decode(d):null,externalBlob:4&o?m.decode(d):null,externalDrive:8&o?y.decode(d):null}}},b=e.frame(x),v=e.frame(l),k={preencode(d,o){b.preencode(d,o.pointer),d.end++,o.metadata&&v.preencode(d,o.metadata),o.preview&&Gi.preencode(d,o.preview),o.hash&&e.fixed32.preencode(d,o.hash)},encode(d,o){const n=(o.metadata?1:0)|(o.preview?2:0)|(o.hash?4:0);b.encode(d,o.pointer),e.uint.encode(d,n),o.metadata&&v.encode(d,o.metadata),o.preview&&Gi.encode(d,o.preview),o.hash&&e.fixed32.encode(d,o.hash)},decode(d){const o=b.decode(d),n=e.uint.decode(d);return{pointer:o,metadata:1&n?v.decode(d):null,preview:2&n?Gi.decode(d):null,hash:4&n?e.fixed32.decode(d):null}}},g=e.frame(k),K=g,h=g,w={preencode(e,d){e.end++,d.small&&g.preencode(e,d.small),d.medium&&K.preencode(e,d.medium),d.large&&h.preencode(e,d.large)},encode(d,o){const n=(o.small?1:0)|(o.medium?2:0)|(o.large?4:0);e.uint.encode(d,n),o.small&&g.encode(d,o.small),o.medium&&K.encode(d,o.medium),o.large&&h.encode(d,o.large)},decode(d){const o=e.uint.decode(d);return{small:1&o?g.decode(d):null,medium:2&o?K.decode(d):null,large:4&o?h.decode(d):null}}},P={preencode(e,d){e.end++},encode(d,o){const n=o.isDeleted?1:0;e.uint.encode(d,n)},decode:d=>({isDeleted:!!(1&e.uint.decode(d))})},T=e.frame(P),R=g,A={preencode(o,c){e.uint.preencode(o,c.id),n.preencode(o,c.oplog),T.preencode(o,c.status),R.preencode(o,c.file),o.end++,d>=22&&c.version&&e.uint.preencode(o,c.version)},encode(o,c){const r=d>=22&&c.version?1:0;e.uint.encode(o,c.id),n.encode(o,c.oplog),T.encode(o,c.status),R.encode(o,c.file),e.uint.encode(o,r),d>=22&&c.version&&e.uint.encode(o,c.version)},decode(o){const c=e.uint.decode(o),r=n.decode(o),t=T.decode(o),i=R.decode(o),a=o.start<o.end?e.uint.decode(o):0;return{id:c,oplog:r,status:t,file:i,version:d>=22&&1&a?e.uint.decode(o):0}}},M={preencode(e,d){e.end++},encode(d,o){const n=(o.isActive?1:0)|(o.isIndexing?2:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isActive:!!(1&o),isIndexing:!!(2&o)}}},S={preencode(o,n){const c=(n.isAdmin?1:0)|(n.isModerator?2:0)|(n.isPending?4:0)|(n.isActive?8:0)|(n.isMuted?16:0)|(n.isBanned?32:0)|(n.isShadowBanned?64:0)|(d>=19&&n.isRemoved?128:0);e.uint.preencode(o,c)},encode(o,n){const c=(n.isAdmin?1:0)|(n.isModerator?2:0)|(n.isPending?4:0)|(n.isActive?8:0)|(n.isMuted?16:0)|(n.isBanned?32:0)|(n.isShadowBanned?64:0)|(d>=19&&n.isRemoved?128:0);e.uint.encode(o,c)},decode(o){const n=e.uint.decode(o);return{isAdmin:!!(1&n),isModerator:!!(2&n),isPending:!!(4&n),isActive:!!(8&n),isMuted:!!(16&n),isBanned:!!(32&n),isShadowBanned:!!(64&n),isRemoved:d>=19&&!!(128&n)}}},I={preencode(e,d){e.end++},encode(d,o){const n=(o.isMuted?1:0)|(o.isBanned?2:0)|(o.isShadowBanned?4:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isMuted:!!(1&o),isBanned:!!(2&o),isShadowBanned:!!(4&o)}}},D={preencode(d,o){e.uint.preencode(d,o.version)},encode(d,o){e.uint.encode(d,o.version)},decode:d=>({version:e.uint.decode(d)})},C={preencode(d,o){e.uint.preencode(d,o.total),e.uint.preencode(d,o.active)},encode(d,o){e.uint.encode(d,o.total),e.uint.encode(d,o.active)},decode:d=>({total:e.uint.decode(d),active:e.uint.decode(d)})},F={preencode(d,o){e.uint.preencode(d,o.total),e.uint.preencode(d,o.active),e.uint.preencode(d,o.pending)},encode(d,o){e.uint.encode(d,o.total),e.uint.encode(d,o.active),e.uint.encode(d,o.pending)},decode:d=>({total:e.uint.decode(d),active:e.uint.decode(d),pending:e.uint.decode(d)})},L={preencode(o,n){e.uint.preencode(o,n.clock),e.uint.preencode(o,n.pinned),e.uint.preencode(o,n.threads),e.uint.preencode(o,n.timestamp),o.end++,d>=24&&n.flagsClock&&e.uint.preencode(o,n.flagsClock)},encode(o,n){const c=d>=24&&n.flagsClock?1:0;e.uint.encode(o,n.clock),e.uint.encode(o,n.pinned),e.uint.encode(o,n.threads),e.uint.encode(o,n.timestamp),e.uint.encode(o,c),d>=24&&n.flagsClock&&e.uint.encode(o,n.flagsClock)},decode(o){const n=e.uint.decode(o),c=e.uint.decode(o),r=e.uint.decode(o),t=e.uint.decode(o),i=o.start<o.end?e.uint.decode(o):0;return{clock:n,pinned:c,threads:r,timestamp:t,flagsClock:d>=24&&1&i?e.uint.decode(o):0}}},q={preencode(d,o){e.uint.preencode(d,o.clock)},encode(d,o){e.uint.encode(d,o.clock)},decode:d=>({clock:e.uint.decode(d)})},j=e.frame(C),E=e.frame(F),B=e.frame(L),N=e.frame(q),V={preencode(e,d){j.preencode(e,d.devices),E.preencode(e,d.members),B.preencode(e,d.chat),N.preencode(e,d.files)},encode(e,d){j.encode(e,d.devices),E.encode(e,d.members),B.encode(e,d.chat),N.encode(e,d.files)},decode:e=>({devices:j.decode(e),members:E.decode(e),chat:B.decode(e),files:N.decode(e)})},z={Default:1,Broadcast:2,DirectMessage:3},U={preencode(e,d){e.end++},encode(d,o){if(o>3)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},O={preencode(o,n){const c=(n.roomType?1:0)|(n.isExperimental?2:0)|(n.isJoiningDisabled?4:0)|(n.isAppendingDisabled?8:0)|(n.isCallingDisabled?16:0)|(n.isMembershipEventsDisabled?32:0)|(d>=28&&n.isAttachmentsDisabled?64:0)|(d>=28&&n.isLinksDisabled?128:0)|(d>=29&&n.buildType?256:0)|(d>=33&&n.isRoomInviteHidden?512:0);e.uint.preencode(o,c),n.roomType&&U.preencode(o,n.roomType),d>=29&&n.buildType&&bi.preencode(o,n.buildType)},encode(o,n){const c=(n.roomType?1:0)|(n.isExperimental?2:0)|(n.isJoiningDisabled?4:0)|(n.isAppendingDisabled?8:0)|(n.isCallingDisabled?16:0)|(n.isMembershipEventsDisabled?32:0)|(d>=28&&n.isAttachmentsDisabled?64:0)|(d>=28&&n.isLinksDisabled?128:0)|(d>=29&&n.buildType?256:0)|(d>=33&&n.isRoomInviteHidden?512:0);e.uint.encode(o,c),n.roomType&&U.encode(o,n.roomType),d>=29&&n.buildType&&bi.encode(o,n.buildType)},decode(o){const n=e.uint.decode(o);return{roomType:1&n?U.decode(o):0,isExperimental:!!(2&n),isJoiningDisabled:!!(4&n),isAppendingDisabled:!!(8&n),isCallingDisabled:!!(16&n),isMembershipEventsDisabled:!!(32&n),isAttachmentsDisabled:d>=28&&!!(64&n),isLinksDisabled:d>=28&&!!(128&n),buildType:d>=29&&256&n?bi.decode(o):null,isRoomInviteHidden:d>=33&&!!(512&n)}}},H=e.frame(D),J=e.frame(O),W={preencode(d,o){H.preencode(d,o.abi),J.preencode(d,o.settings),e.uint.preencode(d,o.creationTime)},encode(d,o){H.encode(d,o.abi),J.encode(d,o.settings),e.uint.encode(d,o.creationTime)},decode:d=>({abi:H.decode(d),settings:J.decode(d),creationTime:e.uint.decode(d)})},G={preencode(d,o){e.fixed32.preencode(d,o.seed)},encode(d,o){e.fixed32.encode(d,o.seed)},decode:d=>({seed:e.fixed32.decode(d)})},Q={preencode(d,o){c.preencode(d,o.mailboxKeyPair),r.preencode(d,o.discoveryKeyPair),e.fixed32.preencode(d,o.wakeupTopic),e.fixed32.preencode(d,o.swarmTopic)},encode(d,o){c.encode(d,o.mailboxKeyPair),r.encode(d,o.discoveryKeyPair),e.fixed32.encode(d,o.wakeupTopic),e.fixed32.encode(d,o.swarmTopic)},decode:d=>({mailboxKeyPair:c.decode(d),discoveryKeyPair:r.decode(d),wakeupTopic:e.fixed32.decode(d),swarmTopic:e.fixed32.decode(d)})},X=e.array(e.fixed32),Y={preencode(o,n){o.end++,n.title&&e.string.preencode(o,n.title),n.avatar&&Qi.preencode(o,n.avatar),n.description&&e.string.preencode(o,n.description),d>=17&&n.supportedLanguages&&Xi.preencode(o,n.supportedLanguages),d>=19&&n.blindPeers&&X.preencode(o,n.blindPeers)},encode(o,n){const c=(n.title?1:0)|(n.avatar?2:0)|(n.description?4:0)|(d>=17&&n.supportedLanguages?8:0)|(d>=19&&n.blindPeers?16:0);e.uint.encode(o,c),n.title&&e.string.encode(o,n.title),n.avatar&&Qi.encode(o,n.avatar),n.description&&e.string.encode(o,n.description),d>=17&&n.supportedLanguages&&Xi.encode(o,n.supportedLanguages),d>=19&&n.blindPeers&&X.encode(o,n.blindPeers)},decode(o){const n=e.uint.decode(o);return{title:1&n?e.string.decode(o):null,avatar:2&n?Qi.decode(o):null,description:4&n?e.string.decode(o):null,supportedLanguages:d>=17&&8&n?Xi.decode(o):null,blindPeers:d>=19&&16&n?X.decode(o):null}}},Z={preencode(d,o){e.fixed32.preencode(d,o.key)},encode(d,o){e.fixed32.encode(d,o.key)},decode:d=>({key:e.fixed32.decode(d)})},$=e.frame(i),_=e.frame(Z),ee={preencode(e,d){$.preencode(e,d.header),_.preencode(e,d.peer)},encode(e,d){$.encode(e,d.header),_.encode(e,d.peer)},decode:e=>({header:$.decode(e),peer:_.decode(e)})},de=$,oe={preencode(d,o){de.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){de.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:de.decode(d),key:e.fixed32.decode(d)})},ne={preencode(d,o){e.fixed32.preencode(d,o.memberKey),e.buffer.preencode(d,o.proof)},encode(d,o){e.fixed32.encode(d,o.memberKey),e.buffer.encode(d,o.proof)},decode:d=>({memberKey:e.fixed32.decode(d),proof:e.buffer.decode(d)})},ce={preencode(d,o){e.fixed32.preencode(d,o.id),e.buffer.preencode(d,o.response)},encode(d,o){e.fixed32.encode(d,o.id),e.buffer.encode(d,o.response)},decode:d=>({id:e.fixed32.decode(d),response:e.buffer.decode(d)})},re=e.frame(M),te=e.frame(ce),ie={preencode(d,o){e.fixed32.preencode(d,o.key),e.fixed32.preencode(d,o.memberKey),re.preencode(d,o.status),Yi.preencode(d,o.profile),d.end++,o.invitation&&te.preencode(d,o.invitation)},encode(d,o){const n=o.invitation?1:0;e.fixed32.encode(d,o.key),e.fixed32.encode(d,o.memberKey),re.encode(d,o.status),Yi.encode(d,o.profile),e.uint.encode(d,n),o.invitation&&te.encode(d,o.invitation)},decode:d=>({key:e.fixed32.decode(d),memberKey:e.fixed32.decode(d),status:re.decode(d),profile:Yi.decode(d),invitation:1&e.uint.decode(d)?te.decode(d):null})},ae={preencode(d,o){e.uint.preencode(d,o.timestamp),d.end++,o.mailbox&&e.fixed32.preencode(d,o.mailbox),o.displayName&&e.string.preencode(d,o.displayName),o.avatar&&Zi.preencode(d,o.avatar),o.username&&e.string.preencode(d,o.username)},encode(d,o){const n=(o.mailbox?1:0)|(o.displayName?2:0)|(o.avatar?4:0)|(o.username?8:0);e.uint.encode(d,o.timestamp),e.uint.encode(d,n),o.mailbox&&e.fixed32.encode(d,o.mailbox),o.displayName&&e.string.encode(d,o.displayName),o.avatar&&Zi.encode(d,o.avatar),o.username&&e.string.encode(d,o.username)},decode(d){const o=e.uint.decode(d),n=e.uint.decode(d);return{timestamp:o,mailbox:1&n?e.fixed32.decode(d):null,displayName:2&n?e.string.decode(d):null,avatar:4&n?Zi.decode(d):null,username:8&n?e.string.decode(d):null}}},se={preencode(o,n){o.end++,n.swarmKey&&e.fixed32.preencode(o,n.swarmKey),n.name&&e.string.preencode(o,n.name),d>=29&&n.buildType&&bi.preencode(o,n.buildType)},encode(o,n){const c=(n.swarmKey?1:0)|(n.name?2:0)|(n.isMobile?4:0)|(d>=29&&n.buildType?8:0);e.uint.encode(o,c),n.swarmKey&&e.fixed32.encode(o,n.swarmKey),n.name&&e.string.encode(o,n.name),d>=29&&n.buildType&&bi.encode(o,n.buildType)},decode(o){const n=e.uint.decode(o);return{swarmKey:1&n?e.fixed32.decode(o):null,name:2&n?e.string.decode(o):null,isMobile:!!(4&n),buildType:d>=29&&8&n?bi.decode(o):null}}},pe=e.frame(ae),le={preencode(e,d){pe.preencode(e,d.profile),ne.preencode(e,d.attestation)},encode(e,d){pe.encode(e,d.profile),ne.encode(e,d.attestation)},decode:e=>({profile:pe.decode(e),attestation:ne.decode(e)})},ue={preencode(e,d){$i.preencode(e,d.profile),ne.preencode(e,d.attestation)},encode(e,d){$i.encode(e,d.profile),ne.encode(e,d.attestation)},decode:e=>({profile:$i.decode(e),attestation:ne.decode(e)})},fe={preencode(d,o){e.fixed32.preencode(d,o.id),e.buffer.preencode(d,o.data),e.buffer.preencode(d,o.signature)},encode(d,o){e.fixed32.encode(d,o.id),e.buffer.encode(d,o.data),e.buffer.encode(d,o.signature)},decode:d=>({id:e.fixed32.decode(d),data:e.buffer.decode(d),signature:e.buffer.decode(d)})},me={preencode(d,o){e.fixed32.preencode(d,o.devicePublicKey)},encode(d,o){e.fixed32.encode(d,o.devicePublicKey)},decode:d=>({devicePublicKey:e.fixed32.decode(d)})},ye={preencode(d,o){ne.preencode(d,o.privateProfileIdentity),e.buffer.preencode(d,o.deviceProof)},encode(d,o){ne.encode(d,o.privateProfileIdentity),e.buffer.encode(d,o.deviceProof)},decode:d=>({privateProfileIdentity:ne.decode(d),deviceProof:e.buffer.decode(d)})},xe=e.frame(ue),be=e.frame(le),ve=e.frame(me),ke={preencode(d,o){e.fixed32.preencode(d,o.deviceKey),r.preencode(d,o.keyPair),xe.preencode(d,o.device),be.preencode(d,o.member),d.end++,o.identity&&ve.preencode(d,o.identity)},encode(d,o){const n=o.identity?1:0;e.fixed32.encode(d,o.deviceKey),r.encode(d,o.keyPair),xe.encode(d,o.device),be.encode(d,o.member),e.uint.encode(d,n),o.identity&&ve.encode(d,o.identity)},decode:d=>({deviceKey:e.fixed32.decode(d),keyPair:r.decode(d),device:xe.decode(d),member:be.decode(d),identity:1&e.uint.decode(d)?ve.decode(d):null})},ge=e.frame(ke),Ke={preencode(d,o){e.fixed32.preencode(d,o.id),ge.preencode(d,o.request),e.buffer.preencode(d,o.signature)},encode(d,o){e.fixed32.encode(d,o.id),ge.encode(d,o.request),e.buffer.encode(d,o.signature)},decode:d=>({id:e.fixed32.decode(d),request:ge.decode(d),signature:e.buffer.decode(d)})},he=xe,we=be,Pe={preencode(e,d){he.preencode(e,d.device),e.end++,d.member&&we.preencode(e,d.member)},encode(d,o){const n=o.member?1:0;he.encode(d,o.device),e.uint.encode(d,n),o.member&&we.encode(d,o.member)},decode:d=>({device:he.decode(d),member:1&e.uint.decode(d)?we.decode(d):null})},Te=e.frame(Ke),Re=e.frame(Pe),Ae={preencode(e,d){e.end++,d.withInvitation&&Te.preencode(e,d.withInvitation),d.withMemberProof&&Re.preencode(e,d.withMemberProof)},encode(d,o){const n=(o.withInvitation?1:0)|(o.withMemberProof?2:0);e.uint.encode(d,n),o.withInvitation&&Te.encode(d,o.withInvitation),o.withMemberProof&&Re.encode(d,o.withMemberProof)},decode(d){const o=e.uint.decode(d);return{withInvitation:1&o?Te.decode(d):null,withMemberProof:2&o?Re.decode(d):null}}},Me=e.frame(fe),Se=e.frame(ye),Ie={preencode(e,d){Me.preencode(e,d.signedKeys),e.end++,d.identity&&Se.preencode(e,d.identity)},encode(d,o){const n=o.identity?1:0;Me.encode(d,o.signedKeys),e.uint.encode(d,n),o.identity&&Se.encode(d,o.identity)},decode:d=>({signedKeys:Me.decode(d),identity:1&e.uint.decode(d)?Se.decode(d):null})},De={preencode(o,n){o.end++,n.expiration&&e.uint.preencode(o,n.expiration),d>=29&&n.buildType&&bi.preencode(o,n.buildType)},encode(o,n){const c=(n.expiration?1:0)|(n.requiresConfirmation?2:0)|(n.canModerate?4:0)|(n.canAdmin?8:0)|(d>=29&&n.buildType?16:0);e.uint.encode(o,c),n.expiration&&e.uint.encode(o,n.expiration),d>=29&&n.buildType&&bi.encode(o,n.buildType)},decode(o){const n=e.uint.decode(o);return{expiration:1&n?e.uint.decode(o):0,requiresConfirmation:!!(2&n),canModerate:!!(4&n),canAdmin:!!(8&n),buildType:d>=29&&16&n?bi.decode(o):null}}},Ce=Me,Fe=e.frame(De),Le={preencode(d,n){e.fixed32.preencode(d,n.id),Ce.preencode(d,n.response),Fe.preencode(d,n.metadata),d.end++,n.anchor&&o.preencode(d,n.anchor)},encode(d,n){const c=(n.anchor?1:0)|(n.isActive?2:0);e.fixed32.encode(d,n.id),Ce.encode(d,n.response),Fe.encode(d,n.metadata),e.uint.encode(d,c),n.anchor&&o.encode(d,n.anchor)},decode(d){const n=e.fixed32.decode(d),c=Ce.decode(d),r=Fe.decode(d),t=e.uint.decode(d);return{id:n,response:c,metadata:r,anchor:1&t?o.decode(d):null,isActive:!!(2&t)}}},qe=$,je=e.frame(Le),Ee={preencode(e,d){qe.preencode(e,d.header),je.preencode(e,d.invitation)},encode(e,d){qe.encode(e,d.header),je.encode(e,d.invitation)},decode:e=>({header:qe.decode(e),invitation:je.decode(e)})},Be=$,Ne={preencode(d,o){Be.preencode(d,o.header),e.fixed32.preencode(d,o.id)},encode(d,o){Be.encode(d,o.header),e.fixed32.encode(d,o.id)},decode:d=>({header:Be.decode(d),id:e.fixed32.decode(d)})},Ve={preencode(d,n){e.fixed32.preencode(d,n.mailbox),e.fixed32.preencode(d,n.invitationSeed),o.preencode(d,n.anchor)},encode(d,n){e.fixed32.encode(d,n.mailbox),e.fixed32.encode(d,n.invitationSeed),o.encode(d,n.anchor)},decode:d=>({mailbox:e.fixed32.decode(d),invitationSeed:e.fixed32.decode(d),anchor:o.decode(d)})},ze={preencode(d,n){e.fixed32.preencode(d,n.mailbox),e.fixed32.preencode(d,n.invitationSeed),o.preencode(d,n.anchor),e.fixed32.preencode(d,n.identityPublicKey)},encode(d,n){e.fixed32.encode(d,n.mailbox),e.fixed32.encode(d,n.invitationSeed),o.encode(d,n.anchor),e.fixed32.encode(d,n.identityPublicKey)},decode:d=>({mailbox:e.fixed32.decode(d),invitationSeed:e.fixed32.decode(d),anchor:o.decode(d),identityPublicKey:e.fixed32.decode(d)})},Ue={preencode(d,o){e.fixed32.preencode(d,o.mailbox)},encode(d,o){e.fixed32.encode(d,o.mailbox)},decode:d=>({mailbox:e.fixed32.decode(d)})},Oe=e.frame(Ve),He=e.frame(ze),Je=e.frame(Ue),We=e.array(e.ipv4Address),Ge={preencode(e,o){e.end++,o.room&&Oe.preencode(e,o.room),o.identity&&He.preencode(e,o.identity),o.contact&&Je.preencode(e,o.contact),d>=9&&o.readonly&&_i.preencode(e,o.readonly),d>=17&&o.additionalNodes&&We.preencode(e,o.additionalNodes),d>=29&&o.buildType&&bi.preencode(e,o.buildType)},encode(o,n){const c=(n.room?1:0)|(n.identity?2:0)|(n.contact?4:0)|(d>=9&&n.readonly?8:0)|(d>=17&&n.additionalNodes?16:0)|(d>=29&&n.buildType?32:0);e.uint.encode(o,c),n.room&&Oe.encode(o,n.room),n.identity&&He.encode(o,n.identity),n.contact&&Je.encode(o,n.contact),d>=9&&n.readonly&&_i.encode(o,n.readonly),d>=17&&n.additionalNodes&&We.encode(o,n.additionalNodes),d>=29&&n.buildType&&bi.encode(o,n.buildType)},decode(o){const n=e.uint.decode(o);return{room:1&n?Oe.decode(o):null,identity:2&n?He.decode(o):null,contact:4&n?Je.decode(o):null,readonly:d>=9&&8&n?_i.decode(o):null,additionalNodes:d>=17&&16&n?We.decode(o):null,buildType:d>=29&&32&n?bi.decode(o):null}}},Qe=$,Xe={preencode(d,o){Qe.preencode(d,o.header),e.buffer.preencode(d,o.blindRequest)},encode(d,o){Qe.encode(d,o.header),e.buffer.encode(d,o.blindRequest)},decode:d=>({header:Qe.decode(d),blindRequest:e.buffer.decode(d)})},Ye=$,Ze={preencode(o,n){Ye.preencode(o,n.header),o.end++,n.profile&&ea.preencode(o,n.profile),d>=34&&n.key&&e.fixed32.preencode(o,n.key)},encode(o,n){const c=(n.profile?1:0)|(d>=34&&n.key?2:0);Ye.encode(o,n.header),e.uint.encode(o,c),n.profile&&ea.encode(o,n.profile),d>=34&&n.key&&e.fixed32.encode(o,n.key)},decode(o){const n=Ye.decode(o),c=e.uint.decode(o);return{header:n,profile:1&c?ea.decode(o):null,key:d>=34&&2&c?e.fixed32.decode(o):null}}},$e={preencode(e,d){},encode(e,d){},decode:e=>({})},_e=$e,ed=ge,dd={preencode(d,o){e.fixed32.preencode(d,o.deviceKey),e.fixed32.preencode(d,o.id),ed.preencode(d,o.request)},encode(d,o){e.fixed32.encode(d,o.deviceKey),e.fixed32.encode(d,o.id),ed.encode(d,o.request)},decode:d=>({deviceKey:e.fixed32.decode(d),id:e.fixed32.decode(d),request:ed.decode(d)})},od=$,nd=Se,cd={preencode(d,o){od.preencode(d,o.header),e.fixed32.preencode(d,o.deviceKey),d.end++,o.identity&&nd.preencode(d,o.identity)},encode(d,o){const n=o.identity?1:0;od.encode(d,o.header),e.fixed32.encode(d,o.deviceKey),e.uint.encode(d,n),o.identity&&nd.encode(d,o.identity)},decode:d=>({header:od.decode(d),deviceKey:e.fixed32.decode(d),identity:1&e.uint.decode(d)?nd.decode(d):null})},rd=$,td={preencode(d,o){rd.preencode(d,o.header),e.fixed32.preencode(d,o.deviceKey)},encode(d,o){rd.encode(d,o.header),e.fixed32.encode(d,o.deviceKey)},decode:d=>({header:rd.decode(d),deviceKey:e.fixed32.decode(d)})},id=e.frame(S),ad=pe,sd={preencode(d,o){e.fixed32.preencode(d,o.key),id.preencode(d,o.status),ad.preencode(d,o.profile)},encode(d,o){e.fixed32.encode(d,o.key),id.encode(d,o.status),ad.encode(d,o.profile)},decode:d=>({key:e.fixed32.decode(d),status:id.decode(d),profile:ad.decode(d)})},pd=id,ld=pe,ud={preencode(d,o){e.fixed32.preencode(d,o.key),pd.preencode(d,o.status),ld.preencode(d,o.profile),d.end++,o.proofs&&da.preencode(d,o.proofs)},encode(d,o){const n=o.proofs?1:0;e.fixed32.encode(d,o.key),pd.encode(d,o.status),ld.encode(d,o.profile),e.uint.encode(d,n),o.proofs&&da.encode(d,o.proofs)},decode:d=>({key:e.fixed32.decode(d),status:pd.decode(d),profile:ld.decode(d),proofs:1&e.uint.decode(d)?da.decode(d):null})},fd={preencode(d,o){e.fixed32.preencode(d,o.key),d.end++,o.profileAttestation&&e.buffer.preencode(d,o.profileAttestation),o.latestReceipt&&e.buffer.preencode(d,o.latestReceipt)},encode(d,o){const n=(o.profileAttestation?1:0)|(o.latestReceipt?2:0);e.fixed32.encode(d,o.key),e.uint.encode(d,n),o.profileAttestation&&e.buffer.encode(d,o.profileAttestation),o.latestReceipt&&e.buffer.encode(d,o.latestReceipt)},decode(d){const o=e.fixed32.decode(d),n=e.uint.decode(d);return{key:o,profileAttestation:1&n?e.buffer.decode(d):null,latestReceipt:2&n?e.buffer.decode(d):null}}},md=$,yd=be,xd={preencode(e,d){md.preencode(e,d.header),yd.preencode(e,d.member)},encode(e,d){md.encode(e,d.header),yd.encode(e,d.member)},decode:e=>({header:md.decode(e),member:yd.decode(e)})},bd=$,vd=e.frame(I),kd={preencode(d,o){bd.preencode(d,o.header),e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.key),vd.preencode(d,o.status)},encode(d,o){bd.encode(d,o.header),e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.key),vd.encode(d,o.status)},decode:d=>({header:bd.decode(d),memberKey:e.fixed32.decode(d),key:e.uint.decode(d),status:vd.decode(d)})},gd=$,Kd={preencode(d,o){gd.preencode(d,o.header),e.fixed32.preencode(d,o.key),d.end++},encode(d,o){const n=(o.isModerator?1:0)|(o.isAdmin?2:0);gd.encode(d,o.header),e.fixed32.encode(d,o.key),e.uint.encode(d,n)},decode(d){const o=gd.decode(d),n=e.fixed32.decode(d),c=e.uint.decode(d);return{header:o,key:n,isModerator:!!(1&c),isAdmin:!!(2&c)}}},hd=$,wd={preencode(d,o){hd.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){hd.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:hd.decode(d),key:e.fixed32.decode(d)})},Pd={preencode(d,o){e.fixed32.preencode(d,o.key),e.uint.preencode(d,o.mentions)},encode(d,o){e.fixed32.encode(d,o.key),e.uint.encode(d,o.mentions)},decode:d=>({key:e.fixed32.decode(d),mentions:e.uint.decode(d)})},Td={preencode(d,o){d.end++,o.memberKey&&e.fixed32.preencode(d,o.memberKey)},encode(d,o){const n=o.memberKey?1:0;e.uint.encode(d,n),o.memberKey&&e.fixed32.encode(d,o.memberKey)},decode:d=>({memberKey:1&e.uint.decode(d)?e.fixed32.decode(d):null})},Rd=Td,Ad={preencode(d,o){d.end++,o.from&&e.string.preencode(d,o.from),o.to&&e.string.preencode(d,o.to)},encode(d,o){const n=(o.from?1:0)|(o.to?2:0);e.uint.encode(d,n),o.from&&e.string.encode(d,o.from),o.to&&e.string.encode(d,o.to)},decode(d){const o=e.uint.decode(d);return{from:1&o?e.string.decode(d):null,to:2&o?e.string.decode(d):null}}},Md=e.frame(Td),Sd=e.frame(Rd),Id=e.frame(Ad),Dd={preencode(o,n){const c=(n.memberJoined?1:0)|(n.memberLeft?2:0)|(n.titleChanged?4:0)|(n.callStarted?8:0)|(n.callHangup?16:0)|(n.callMissed?32:0)|(d>=4&&n.roomAvatarChanged?64:0)|(d>=4&&n.invitationCreated?128:0)|(d>=4&&n.memberRemoved?256:0)|(d>=27&&n.locationShared?512:0);e.uint.preencode(o,c),n.memberJoined&&Md.preencode(o,n.memberJoined),n.memberLeft&&Sd.preencode(o,n.memberLeft),n.titleChanged&&Id.preencode(o,n.titleChanged),d>=4&&n.memberRemoved&&oa.preencode(o,n.memberRemoved),d>=27&&n.locationShared&&na.preencode(o,n.locationShared)},encode(o,n){const c=(n.memberJoined?1:0)|(n.memberLeft?2:0)|(n.titleChanged?4:0)|(n.callStarted?8:0)|(n.callHangup?16:0)|(n.callMissed?32:0)|(d>=4&&n.roomAvatarChanged?64:0)|(d>=4&&n.invitationCreated?128:0)|(d>=4&&n.memberRemoved?256:0)|(d>=27&&n.locationShared?512:0);e.uint.encode(o,c),n.memberJoined&&Md.encode(o,n.memberJoined),n.memberLeft&&Sd.encode(o,n.memberLeft),n.titleChanged&&Id.encode(o,n.titleChanged),d>=4&&n.memberRemoved&&oa.encode(o,n.memberRemoved),d>=27&&n.locationShared&&na.encode(o,n.locationShared)},decode(o){const n=e.uint.decode(o);return{memberJoined:1&n?Md.decode(o):null,memberLeft:2&n?Sd.decode(o):null,titleChanged:4&n?Id.decode(o):null,callStarted:!!(8&n),callHangup:!!(16&n),callMissed:!!(32&n),roomAvatarChanged:d>=4&&!!(64&n),invitationCreated:d>=4&&!!(128&n),memberRemoved:d>=4&&256&n?oa.decode(o):null,locationShared:d>=27&&512&n?na.decode(o):null}}},Cd={preencode(e,o){e.end++,d>=27&&o.locationShared&&ca.preencode(e,o.locationShared)},encode(o,n){const c=(n.callStarted?1:0)|(n.callHangup?2:0)|(n.callMissed?4:0)|(d>=27&&n.locationShared?8:0);e.uint.encode(o,c),d>=27&&n.locationShared&&ca.encode(o,n.locationShared)},decode(o){const n=e.uint.decode(o);return{callStarted:!!(1&n),callHangup:!!(2&n),callMissed:!!(4&n),locationShared:d>=27&&8&n?ca.decode(o):null}}},Fd={preencode(d,o){e.uint.preencode(d,o.start),e.uint.preencode(d,o.length)},encode(d,o){e.uint.encode(d,o.start),e.uint.encode(d,o.length)},decode:d=>({start:e.uint.decode(d),length:e.uint.decode(d)})},Ld=e.frame(Fd),qd={preencode(d,o){Ld.preencode(d,o.range),e.string.preencode(d,o.content)},encode(d,o){Ld.encode(d,o.range),e.string.encode(d,o.content)},decode:d=>({range:Ld.decode(d),content:e.string.decode(d)})},jd=Ld,Ed={preencode(d,o){jd.preencode(d,o.range),e.fixed32.preencode(d,o.memberKey)},encode(d,o){jd.encode(d,o.range),e.fixed32.encode(d,o.memberKey)},decode:d=>({range:jd.decode(d),memberKey:e.fixed32.decode(d)})},Bd=g,Nd=e.array(e.uint),Vd={preencode(o,n){o.end++,n.title&&e.string.preencode(o,n.title),n.description&&e.string.preencode(o,n.description),n.file&&Bd.preencode(o,n.file),d>=12&&n.files&&Nd.preencode(o,n.files)},encode(o,n){const c=(n.title?1:0)|(n.description?2:0)|(n.file?4:0)|(d>=12&&n.files?8:0);e.uint.encode(o,c),n.title&&e.string.encode(o,n.title),n.description&&e.string.encode(o,n.description),n.file&&Bd.encode(o,n.file),d>=12&&n.files&&Nd.encode(o,n.files)},decode(o){const n=e.uint.decode(o);return{title:1&n?e.string.decode(o):null,description:2&n?e.string.decode(o):null,file:4&n?Bd.decode(o):null,files:d>=12&&8&n?Nd.decode(o):null}}},zd=Ld,Ud=e.frame(Vd),Od={preencode(d,o){zd.preencode(d,o.range),e.string.preencode(d,o.url),d.end++,o.preview&&Ud.preencode(d,o.preview)},encode(d,o){const n=o.preview?1:0;zd.encode(d,o.range),e.string.encode(d,o.url),e.uint.encode(d,n),o.preview&&Ud.encode(d,o.preview)},decode:d=>({range:zd.decode(d),url:e.string.decode(d),preview:1&e.uint.decode(d)?Ud.decode(d):null})},Hd=e.array(e.frame(Ed)),Jd=e.array(e.frame(Od)),Wd=Jd,Gd=e.array(e.frame(Fd)),Qd=Gd,Xd=Gd,Yd=e.array(e.frame(qd)),Zd=Gd,$d=Gd,_d={preencode(o,n){const c=(n.mention?1:0)|(n.httpLink?2:0)|(n.pearLink?4:0)|(n.bold?8:0)|(n.italic?16:0)|(n.code?32:0)|(n.emoji?64:0)|(n.codeBlock?128:0)|(n.strike?256:0)|(d>=17&&n.translation?512:0);e.uint.preencode(o,c),n.mention&&Hd.preencode(o,n.mention),n.httpLink&&Jd.preencode(o,n.httpLink),n.pearLink&&Wd.preencode(o,n.pearLink),n.bold&&Gd.preencode(o,n.bold),n.italic&&Qd.preencode(o,n.italic),n.code&&Xd.preencode(o,n.code),n.emoji&&Yd.preencode(o,n.emoji),n.codeBlock&&Zd.preencode(o,n.codeBlock),n.strike&&$d.preencode(o,n.strike),d>=17&&n.translation&&ra.preencode(o,n.translation)},encode(o,n){const c=(n.mention?1:0)|(n.httpLink?2:0)|(n.pearLink?4:0)|(n.bold?8:0)|(n.italic?16:0)|(n.code?32:0)|(n.emoji?64:0)|(n.codeBlock?128:0)|(n.strike?256:0)|(d>=17&&n.translation?512:0);e.uint.encode(o,c),n.mention&&Hd.encode(o,n.mention),n.httpLink&&Jd.encode(o,n.httpLink),n.pearLink&&Wd.encode(o,n.pearLink),n.bold&&Gd.encode(o,n.bold),n.italic&&Qd.encode(o,n.italic),n.code&&Xd.encode(o,n.code),n.emoji&&Yd.encode(o,n.emoji),n.codeBlock&&Zd.encode(o,n.codeBlock),n.strike&&$d.encode(o,n.strike),d>=17&&n.translation&&ra.encode(o,n.translation)},decode(o){const n=e.uint.decode(o);return{mention:1&n?Hd.decode(o):null,httpLink:2&n?Jd.decode(o):null,pearLink:4&n?Wd.decode(o):null,bold:8&n?Gd.decode(o):null,italic:16&n?Qd.decode(o):null,code:32&n?Xd.decode(o):null,emoji:64&n?Yd.decode(o):null,codeBlock:128&n?Zd.decode(o):null,strike:256&n?$d.decode(o):null,translation:d>=17&&512&n?ra.decode(o):null}}},eo=e.array(e.frame(k)),oo=e.frame(_d),no=e.frame(Cd),co={preencode(d,o){d.end++,o.text&&e.string.preencode(d,o.text),o.files&&eo.preencode(d,o.files),o.display&&oo.preencode(d,o.display),o.replyTo&&n.preencode(d,o.replyTo),o.parent&&n.preencode(d,o.parent),o.event&&no.preencode(d,o.event)},encode(o,c){const r=(c.text?1:0)|(c.files?2:0)|(c.display?4:0)|(c.replyTo?8:0)|(c.parent?16:0)|(c.event?32:0)|(d>=27&&c.forwarded?64:0);e.uint.encode(o,r),c.text&&e.string.encode(o,c.text),c.files&&eo.encode(o,c.files),c.display&&oo.encode(o,c.display),c.replyTo&&n.encode(o,c.replyTo),c.parent&&n.encode(o,c.parent),c.event&&no.encode(o,c.event)},decode(o){const c=e.uint.decode(o);return{text:1&c?e.string.decode(o):null,files:2&c?eo.decode(o):null,display:4&c?oo.decode(o):null,replyTo:8&c?n.decode(o):null,parent:16&c?n.decode(o):null,event:32&c?no.decode(o):null,forwarded:d>=27&&!!(64&c)}}},ro=Nd,to=oo,io={preencode(d,o){d.end++,o.text&&e.string.preencode(d,o.text),o.files&&ro.preencode(d,o.files),o.display&&to.preencode(d,o.display),o.replyTo&&n.preencode(d,o.replyTo),o.parent&&n.preencode(d,o.parent)},encode(o,c){const r=(c.text?1:0)|(c.files?2:0)|(c.display?4:0)|(c.replyTo?8:0)|(c.parent?16:0)|(d>=27&&c.forwarded?32:0);e.uint.encode(o,r),c.text&&e.string.encode(o,c.text),c.files&&ro.encode(o,c.files),c.display&&to.encode(o,c.display),c.replyTo&&n.encode(o,c.replyTo),c.parent&&n.encode(o,c.parent)},decode(o){const c=e.uint.decode(o);return{text:1&c?e.string.decode(o):null,files:2&c?ro.decode(o):null,display:4&c?to.decode(o):null,replyTo:8&c?n.decode(o):null,parent:16&c?n.decode(o):null,forwarded:d>=27&&!!(32&c)}}},ao=eo,so=oo,po={preencode(d,o){d.end++,o.text&&e.string.preencode(d,o.text),o.files&&ao.preencode(d,o.files),o.display&&so.preencode(d,o.display),o.replyTo&&n.preencode(d,o.replyTo),o.parent&&n.preencode(d,o.parent)},encode(o,c){const r=(c.text?1:0)|(c.files?2:0)|(c.display?4:0)|(c.replyTo?8:0)|(c.parent?16:0)|(d>=27&&c.forwarded?32:0);e.uint.encode(o,r),c.text&&e.string.encode(o,c.text),c.files&&ao.encode(o,c.files),c.display&&so.encode(o,c.display),c.replyTo&&n.encode(o,c.replyTo),c.parent&&n.encode(o,c.parent)},decode(o){const c=e.uint.decode(o);return{text:1&c?e.string.decode(o):null,files:2&c?ao.decode(o):null,display:4&c?so.decode(o):null,replyTo:8&c?n.decode(o):null,parent:16&c?n.decode(o):null,forwarded:d>=27&&!!(32&c)}}},lo={preencode(e,d){e.end++},encode(d,o){const n=(o.isEdited?1:0)|(o.isDeleted?2:0)|(o.isPinned?4:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isEdited:!!(1&o),isDeleted:!!(2&o),isPinned:!!(4&o)}}},uo={preencode(d,o){e.uint.preencode(d,o.thread),e.uint.preencode(d,o.index)},encode(d,o){e.uint.encode(d,o.thread),e.uint.encode(d,o.index)},decode:d=>({thread:e.uint.decode(d),index:e.uint.decode(d)})},fo=e.frame(V),mo={preencode(d,o){e.uint.preencode(d,o.id),e.uint.preencode(d,o.count),d.end++,o.parent&&n.preencode(d,o.parent),o.stats&&fo.preencode(d,o.stats)},encode(d,o){const c=(o.parent?1:0)|(o.stats?2:0);e.uint.encode(d,o.id),e.uint.encode(d,o.count),e.uint.encode(d,c),o.parent&&n.encode(d,o.parent),o.stats&&fo.encode(d,o.stats)},decode(d){const o=e.uint.decode(d),c=e.uint.decode(d),r=e.uint.decode(d);return{id:o,count:c,parent:1&r?n.decode(d):null,stats:2&r?fo.decode(d):null}}},yo=e.frame(lo),xo=e.frame(io),bo=e.frame(Dd),vo={preencode(d,o){uo.preencode(d,o.id),n.preencode(d,o.oplog),e.uint.preencode(d,o.clock),e.uint.preencode(d,o.timestamp),d.end++,o.editedAt&&e.uint.preencode(d,o.editedAt),yo.preencode(d,o.status),o.message&&xo.preencode(d,o.message),o.event&&bo.preencode(d,o.event)},encode(d,o){const c=(o.editedAt?1:0)|(o.message?2:0)|(o.event?4:0);uo.encode(d,o.id),n.encode(d,o.oplog),e.uint.encode(d,o.clock),e.uint.encode(d,o.timestamp),e.uint.encode(d,c),o.editedAt&&e.uint.encode(d,o.editedAt),yo.encode(d,o.status),o.message&&xo.encode(d,o.message),o.event&&bo.encode(d,o.event)},decode(d){const o=uo.decode(d),c=n.decode(d),r=e.uint.decode(d),t=e.uint.decode(d),i=e.uint.decode(d);return{id:o,oplog:c,clock:r,timestamp:t,editedAt:1&i?e.uint.decode(d):0,status:yo.decode(d),message:2&i?xo.decode(d):null,event:4&i?bo.decode(d):null}}},ko=yo,go=e.frame(po),Ko=bo,ho={preencode(d,o){uo.preencode(d,o.id),n.preencode(d,o.oplog),e.uint.preencode(d,o.clock),e.uint.preencode(d,o.timestamp),d.end++,o.editedAt&&e.uint.preencode(d,o.editedAt),ko.preencode(d,o.status),o.message&&go.preencode(d,o.message),o.event&&Ko.preencode(d,o.event)},encode(d,o){const c=(o.editedAt?1:0)|(o.message?2:0)|(o.event?4:0);uo.encode(d,o.id),n.encode(d,o.oplog),e.uint.encode(d,o.clock),e.uint.encode(d,o.timestamp),e.uint.encode(d,c),o.editedAt&&e.uint.encode(d,o.editedAt),ko.encode(d,o.status),o.message&&go.encode(d,o.message),o.event&&Ko.encode(d,o.event)},decode(d){const o=uo.decode(d),c=n.decode(d),r=e.uint.decode(d),t=e.uint.decode(d),i=e.uint.decode(d);return{id:o,oplog:c,clock:r,timestamp:t,editedAt:1&i?e.uint.decode(d):0,status:ko.decode(d),message:2&i?go.decode(d):null,event:4&i?Ko.decode(d):null}}},wo=$,Po=e.frame(co),To={preencode(e,d){wo.preencode(e,d.header),Po.preencode(e,d.message)},encode(e,d){wo.encode(e,d.header),Po.encode(e,d.message)},decode:e=>({header:wo.decode(e),message:Po.decode(e)})},Ro=$,Ao={preencode(e,d){Ro.preencode(e,d.header),n.preencode(e,d.oplog)},encode(e,d){Ro.encode(e,d.header),n.encode(e,d.oplog)},decode:e=>({header:Ro.decode(e),oplog:n.decode(e)})},Mo=$,So=Po,Io={preencode(e,d){Mo.preencode(e,d.header),n.preencode(e,d.oplog),So.preencode(e,d.message)},encode(e,d){Mo.encode(e,d.header),n.encode(e,d.oplog),So.encode(e,d.message)},decode:e=>({header:Mo.decode(e),oplog:n.decode(e),message:So.decode(e)})},Do=$,Co={preencode(e,d){Do.preencode(e,d.header),n.preencode(e,d.oplog),e.end++},encode(d,o){const c=o.isPinned?1:0;Do.encode(d,o.header),n.encode(d,o.oplog),e.uint.encode(d,c)},decode:d=>({header:Do.decode(d),oplog:n.decode(d),isPinned:!!(1&e.uint.decode(d))})},Fo={preencode(d,o){uo.preencode(d,o.id),e.fixed32.preencode(d,o.sender),e.uint.preencode(d,o.clock),e.string.preencode(d,o.reaction)},encode(d,o){uo.encode(d,o.id),e.fixed32.encode(d,o.sender),e.uint.encode(d,o.clock),e.string.encode(d,o.reaction)},decode:d=>({id:uo.decode(d),sender:e.fixed32.decode(d),clock:e.uint.decode(d),reaction:e.string.decode(d)})},Lo={preencode(d,o){e.string.preencode(d,o.text),e.uint.preencode(d,o.count)},encode(d,o){e.string.encode(d,o.text),e.uint.encode(d,o.count)},decode:d=>({text:e.string.decode(d),count:e.uint.decode(d)})},qo=e.array(e.frame(Lo)),jo={preencode(o,n){uo.preencode(o,n.id),e.uint.preencode(o,n.total),qo.preencode(o,n.reactions),o.end++,d>=17&&n.editedAt&&e.uint.preencode(o,n.editedAt)},encode(o,n){const c=d>=17&&n.editedAt?1:0;uo.encode(o,n.id),e.uint.encode(o,n.total),qo.encode(o,n.reactions),e.uint.encode(o,c),d>=17&&n.editedAt&&e.uint.encode(o,n.editedAt)},decode(o){const n=uo.decode(o),c=e.uint.decode(o),r=qo.decode(o),t=o.start<o.end?e.uint.decode(o):0;return{id:n,total:c,reactions:r,editedAt:d>=17&&1&t?e.uint.decode(o):0}}},Eo=$,Bo={preencode(d,o){Eo.preencode(d,o.header),n.preencode(d,o.oplog),e.string.preencode(d,o.reaction)},encode(d,o){Eo.encode(d,o.header),n.encode(d,o.oplog),e.string.encode(d,o.reaction)},decode:d=>({header:Eo.decode(d),oplog:n.decode(d),reaction:e.string.decode(d)})},No=$,Vo={preencode(d,o){No.preencode(d,o.header),n.preencode(d,o.oplog),e.string.preencode(d,o.reaction)},encode(d,o){No.encode(d,o.header),n.encode(d,o.oplog),e.string.encode(d,o.reaction)},decode:d=>({header:No.decode(d),oplog:n.decode(d),reaction:e.string.decode(d)})},zo=$,Uo=e.frame(Y),Oo={preencode(d,o){zo.preencode(d,o.header),e.uint.preencode(d,o.key),Uo.preencode(d,o.config)},encode(d,o){zo.encode(d,o.header),e.uint.encode(d,o.key),Uo.encode(d,o.config)},decode:d=>({header:zo.decode(d),key:e.uint.decode(d),config:Uo.decode(d)})},Ho={preencode(d,o){e.fixed32.preencode(d,o.memberKey),e.string.preencode(d,o.displayName),d.end++,o.avatar&&ta.preencode(d,o.avatar)},encode(d,o){const n=o.avatar?1:0;e.fixed32.encode(d,o.memberKey),e.string.encode(d,o.displayName),e.uint.encode(d,n),o.avatar&&ta.encode(d,o.avatar)},decode:d=>({memberKey:e.fixed32.decode(d),displayName:e.string.decode(d),avatar:1&e.uint.decode(d)?ta.decode(d):null})},Jo={preencode(d,o){e.fixed32.preencode(d,o.key),d.end++,o.username&&e.string.preencode(d,o.username)},encode(d,o){const n=o.username?1:0;e.fixed32.encode(d,o.key),e.uint.encode(d,n),o.username&&e.string.encode(d,o.username)},decode:d=>({key:e.fixed32.decode(d),username:1&e.uint.decode(d)?e.string.decode(d):null})},Wo=e.frame(Jo),Go={preencode(d,o){e.fixed32.preencode(d,o.publicKey),d.end++,o.discoveryCoreKey&&e.fixed32.preencode(d,o.discoveryCoreKey),o.userRegistry&&Wo.preencode(d,o.userRegistry)},encode(d,o){const n=(o.discoveryCoreKey?1:0)|(o.userRegistry?2:0);e.fixed32.encode(d,o.publicKey),e.uint.encode(d,n),o.discoveryCoreKey&&e.fixed32.encode(d,o.discoveryCoreKey),o.userRegistry&&Wo.encode(d,o.userRegistry)},decode(d){const o=e.fixed32.decode(d),n=e.uint.decode(d);return{publicKey:o,discoveryCoreKey:1&n?e.fixed32.decode(d):null,userRegistry:2&n?Wo.decode(d):null}}},Qo=$,Xo=e.frame(W),Yo=e.frame(G),Zo=Uo,$o=e.frame(Go),_o=xe,en=e.array(e.frame(le)),dn={preencode(e,d){Qo.preencode(e,d.header),Xo.preencode(e,d.digest),Yo.preencode(e,d.capabilities),e.end++,d.config&&Zo.preencode(e,d.config),d.identity&&$o.preencode(e,d.identity),d.bootstrapDevice&&_o.preencode(e,d.bootstrapDevice),d.initialMembers&&en.preencode(e,d.initialMembers)},encode(d,o){const n=(o.config?1:0)|(o.identity?2:0)|(o.bootstrapDevice?4:0)|(o.initialMembers?8:0);Qo.encode(d,o.header),Xo.encode(d,o.digest),Yo.encode(d,o.capabilities),e.uint.encode(d,n),o.config&&Zo.encode(d,o.config),o.identity&&$o.encode(d,o.identity),o.bootstrapDevice&&_o.encode(d,o.bootstrapDevice),o.initialMembers&&en.encode(d,o.initialMembers)},decode(d){const o=Qo.decode(d),n=Xo.decode(d),c=Yo.decode(d),r=e.uint.decode(d);return{header:o,digest:n,capabilities:c,config:1&r?Zo.decode(d):null,identity:2&r?$o.decode(d):null,bootstrapDevice:4&r?_o.decode(d):null,initialMembers:8&r?en.decode(d):null}}},on=$,nn={preencode(d,o){on.preencode(d,o.header),e.uint.preencode(d,o.version)},encode(d,o){on.encode(d,o.header),e.uint.encode(d,o.version)},decode:d=>({header:on.decode(d),version:e.uint.decode(d)})},cn=$,rn=J,tn={preencode(d,o){cn.preencode(d,o.header),e.uint.preencode(d,o.key),rn.preencode(d,o.settings)},encode(d,o){cn.encode(d,o.header),e.uint.encode(d,o.key),rn.encode(d,o.settings)},decode:d=>({header:cn.decode(d),key:e.uint.decode(d),settings:rn.decode(d)})},an={preencode(o,n){e.fixed32.preencode(o,n.memberKey),ia.preencode(o,n.status),o.end++,n.mailbox&&e.fixed32.preencode(o,n.mailbox),n.roomKey&&e.fixed32.preencode(o,n.roomKey),d>=32&&n.contactInfo&&aa.preencode(o,n.contactInfo),d>=32&&n.version&&e.uint.preencode(o,n.version),d>=34&&n.alias&&e.string.preencode(o,n.alias)},encode(o,n){const c=(n.mailbox?1:0)|(n.roomKey?2:0)|(d>=32&&n.contactInfo?4:0)|(d>=32&&n.version?8:0)|(d>=34&&n.alias?16:0);e.fixed32.encode(o,n.memberKey),ia.encode(o,n.status),e.uint.encode(o,c),n.mailbox&&e.fixed32.encode(o,n.mailbox),n.roomKey&&e.fixed32.encode(o,n.roomKey),d>=32&&n.contactInfo&&aa.encode(o,n.contactInfo),d>=32&&n.version&&e.uint.encode(o,n.version),d>=34&&n.alias&&e.string.encode(o,n.alias)},decode(o){const n=e.fixed32.decode(o),c=ia.decode(o),r=e.uint.decode(o);return{memberKey:n,status:c,mailbox:1&r?e.fixed32.decode(o):null,roomKey:2&r?e.fixed32.decode(o):null,contactInfo:d>=32&&4&r?aa.decode(o):null,version:d>=32&&8&r?e.uint.decode(o):0,alias:d>=34&&16&r?e.string.decode(o):null}}},sn={preencode(d,n){e.fixed32.preencode(d,n.roomKey),e.buffer.preencode(d,n.encryptionKey),e.fixed32.preencode(d,n.seed),o.preencode(d,n.initiator),e.fixed32.preencode(d,n.fastForwardTo)},encode(d,n){e.fixed32.encode(d,n.roomKey),e.buffer.encode(d,n.encryptionKey),e.fixed32.encode(d,n.seed),o.encode(d,n.initiator),e.fixed32.encode(d,n.fastForwardTo)},decode:d=>({roomKey:e.fixed32.decode(d),encryptionKey:e.buffer.decode(d),seed:e.fixed32.decode(d),initiator:o.decode(d),fastForwardTo:e.fixed32.decode(d)})},pn=e.array(e.frame(sn)),ln=X,un={preencode(e,d){pn.preencode(e,d.sharedRooms),ln.preencode(e,d.blockedContacts)},encode(e,d){pn.encode(e,d.sharedRooms),ln.encode(e,d.blockedContacts)},decode:e=>({sharedRooms:pn.decode(e),blockedContacts:ln.decode(e)})},fn=$o,mn={preencode(e,d){fn.preencode(e,d.identity)},encode(e,d){fn.encode(e,d.identity)},decode:e=>({identity:fn.decode(e)})},yn={preencode(d,o){e.uint.preencode(d,o.rooms),e.uint.preencode(d,o.contacts)},encode(d,o){e.uint.encode(d,o.rooms),e.uint.encode(d,o.contacts)},decode:d=>({rooms:e.uint.decode(d),contacts:e.uint.decode(d)})},xn={preencode(d,o){e.uint.preencode(d,o.rooms),e.uint.preencode(d,o.contactRequests)},encode(d,o){e.uint.encode(d,o.rooms),e.uint.encode(d,o.contactRequests)},decode:d=>({rooms:e.uint.decode(d),contactRequests:e.uint.decode(d)})},bn={preencode(d,o){e.buffer.preencode(d,o.entropy)},encode(d,o){e.buffer.encode(d,o.entropy)},decode:d=>({entropy:e.buffer.decode(d)})},vn={preencode(d,o){e.fixed32.preencode(d,o.publicKey),e.fixed32.preencode(d,o.devicePublicKey),e.fixed32.preencode(d,o.writerKey)},encode(d,o){e.fixed32.encode(d,o.publicKey),e.fixed32.encode(d,o.devicePublicKey),e.fixed32.encode(d,o.writerKey)},decode:d=>({publicKey:e.fixed32.decode(d),devicePublicKey:e.fixed32.decode(d),writerKey:e.fixed32.decode(d)})},kn=e.frame(vn),gn={preencode(n,c){e.fixed32.preencode(n,c.id),e.fixed32.preencode(n,c.invitationSeed),e.fixed32.preencode(n,c.mailbox),r.preencode(n,c.responseKeyPair),o.preencode(n,c.initiator),o.preencode(n,c.inviter),n.end++,c.identity&&kn.preencode(n,c.identity),d>=29&&c.buildType&&bi.preencode(n,c.buildType)},encode(n,c){const t=(c.identity?1:0)|(d>=29&&c.buildType?2:0);e.fixed32.encode(n,c.id),e.fixed32.encode(n,c.invitationSeed),e.fixed32.encode(n,c.mailbox),r.encode(n,c.responseKeyPair),o.encode(n,c.initiator),o.encode(n,c.inviter),e.uint.encode(n,t),c.identity&&kn.encode(n,c.identity),d>=29&&c.buildType&&bi.encode(n,c.buildType)},decode(n){const c=e.fixed32.decode(n),t=e.fixed32.decode(n),i=e.fixed32.decode(n),a=r.decode(n),s=o.decode(n),p=o.decode(n),l=e.uint.decode(n);return{id:c,invitationSeed:t,mailbox:i,responseKeyPair:a,initiator:s,inviter:p,identity:1&l?kn.decode(n):null,buildType:d>=29&&2&l?bi.decode(n):null}}},Kn=$,hn={preencode(d,o){Kn.preencode(d,o.header),e.buffer.preencode(d,o.blindResponse)},encode(d,o){Kn.encode(d,o.header),e.buffer.encode(d,o.blindResponse)},decode:d=>({header:Kn.decode(d),blindResponse:e.buffer.decode(d)})},wn=$,Pn=e.frame(gn),Tn={preencode(e,d){wn.preencode(e,d.header),Pn.preencode(e,d.invitation)},encode(e,d){wn.encode(e,d.header),Pn.encode(e,d.invitation)},decode:e=>({header:wn.decode(e),invitation:Pn.decode(e)})},Rn=$,An={preencode(d,o){Rn.preencode(d,o.header),e.fixed32.preencode(d,o.id)},encode(d,o){Rn.encode(d,o.header),e.fixed32.encode(d,o.id)},decode:d=>({header:Rn.decode(d),id:e.fixed32.decode(d)})},Mn={preencode(d,o){e.fixed32.preencode(d,o.publicKey),e.fixed32.preencode(d,o.devicePublicKey),d.end++,o.privateProfileKey&&e.fixed32.preencode(d,o.privateProfileKey),o.deviceKeyPair&&r.preencode(d,o.deviceKeyPair),e.buffer.preencode(d,o.deviceProof)},encode(d,o){const n=(o.privateProfileKey?1:0)|(o.deviceKeyPair?2:0);e.fixed32.encode(d,o.publicKey),e.fixed32.encode(d,o.devicePublicKey),e.uint.encode(d,n),o.privateProfileKey&&e.fixed32.encode(d,o.privateProfileKey),o.deviceKeyPair&&r.encode(d,o.deviceKeyPair),e.buffer.encode(d,o.deviceProof)},decode(d){const o=e.fixed32.decode(d),n=e.fixed32.decode(d),c=e.uint.decode(d);return{publicKey:o,devicePublicKey:n,privateProfileKey:1&c?e.fixed32.decode(d):null,deviceKeyPair:2&c?r.decode(d):null,deviceProof:e.buffer.decode(d)}}},Sn={preencode(e,d){e.end++},encode(o,n){const c=(n.isActive?1:0)|(n.isFullyMuted?2:0)|(n.isMentionsOnlyMuted?4:0)|(d>=14&&n.isReadOnly?8:0)|(d>=27&&n.isFavorite?16:0)|(d>=31&&n.isUnread?32:0);e.uint.encode(o,c)},decode(o){const n=e.uint.decode(o);return{isActive:!!(1&n),isFullyMuted:!!(2&n),isMentionsOnlyMuted:!!(4&n),isReadOnly:d>=14&&!!(8&n),isFavorite:d>=27&&!!(16&n),isUnread:d>=31&&!!(32&n)}}},In=e.frame(Sn),Dn=e.frame(Mn),Cn=kn,Fn={preencode(n,c){e.fixed32.preencode(n,c.roomKey),e.buffer.preencode(n,c.encryptionKey),e.fixed32.preencode(n,c.mailbox),In.preencode(n,c.status),e.uint.preencode(n,c.clock),n.end++,c.initiator&&o.preencode(n,c.initiator),c.fastForwardTo&&e.fixed32.preencode(n,c.fastForwardTo),c.identitySwap&&Dn.preencode(n,c.identitySwap),d>=9&&c.identitySwapV2&&Cn.preencode(n,c.identitySwapV2),d>=15&&c.contact&&e.fixed32.preencode(n,c.contact)},encode(n,c){const r=(c.initiator?1:0)|(c.fastForwardTo?2:0)|(c.identitySwap?4:0)|(d>=9&&c.identitySwapV2?8:0)|(d>=15&&c.contact?16:0);e.fixed32.encode(n,c.roomKey),e.buffer.encode(n,c.encryptionKey),e.fixed32.encode(n,c.mailbox),In.encode(n,c.status),e.uint.encode(n,c.clock),e.uint.encode(n,r),c.initiator&&o.encode(n,c.initiator),c.fastForwardTo&&e.fixed32.encode(n,c.fastForwardTo),c.identitySwap&&Dn.encode(n,c.identitySwap),d>=9&&c.identitySwapV2&&Cn.encode(n,c.identitySwapV2),d>=15&&c.contact&&e.fixed32.encode(n,c.contact)},decode(n){const c=e.fixed32.decode(n),r=e.buffer.decode(n),t=e.fixed32.decode(n),i=In.decode(n),a=e.uint.decode(n),s=e.uint.decode(n);return{roomKey:c,encryptionKey:r,mailbox:t,status:i,clock:a,initiator:1&s?o.decode(n):null,fastForwardTo:2&s?e.fixed32.decode(n):null,identitySwap:4&s?Dn.decode(n):null,identitySwapV2:d>=9&&8&s?Cn.decode(n):null,contact:d>=15&&16&s?e.fixed32.decode(n):null}}},Ln=$,qn={preencode(d,n){Ln.preencode(d,n.header),e.fixed32.preencode(d,n.roomKey),e.buffer.preencode(d,n.encryptionKey),e.fixed32.preencode(d,n.mailbox),d.end++,n.fastForwardTo&&e.fixed32.preencode(d,n.fastForwardTo),n.initiator&&o.preencode(d,n.initiator),n.dm&&e.fixed32.preencode(d,n.dm)},encode(n,c){const r=(c.fastForwardTo?1:0)|(c.initiator?2:0)|(c.dm?4:0)|(d>=14&&c.isReadOnly?8:0);Ln.encode(n,c.header),e.fixed32.encode(n,c.roomKey),e.buffer.encode(n,c.encryptionKey),e.fixed32.encode(n,c.mailbox),e.uint.encode(n,r),c.fastForwardTo&&e.fixed32.encode(n,c.fastForwardTo),c.initiator&&o.encode(n,c.initiator),c.dm&&e.fixed32.encode(n,c.dm)},decode(n){const c=Ln.decode(n),r=e.fixed32.decode(n),t=e.buffer.decode(n),i=e.fixed32.decode(n),a=e.uint.decode(n);return{header:c,roomKey:r,encryptionKey:t,mailbox:i,fastForwardTo:1&a?e.fixed32.decode(n):null,initiator:2&a?o.decode(n):null,dm:4&a?e.fixed32.decode(n):null,isReadOnly:d>=14&&!!(8&a)}}},jn=$,En={preencode(d,o){jn.preencode(d,o.header),e.fixed32.preencode(d,o.discoveryKey)},encode(d,o){jn.encode(d,o.header),e.fixed32.encode(d,o.discoveryKey)},decode:d=>({header:jn.decode(d),discoveryKey:e.fixed32.decode(d)})},Bn=$,Nn=In,Vn={preencode(d,o){Bn.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey),e.uint.preencode(d,o.key),Nn.preencode(d,o.status)},encode(d,o){Bn.encode(d,o.header),e.fixed32.encode(d,o.roomKey),e.uint.encode(d,o.key),Nn.encode(d,o.status)},decode:d=>({header:Bn.decode(d),roomKey:e.fixed32.decode(d),key:e.uint.decode(d),status:Nn.decode(d)})},zn={preencode(e,d){e.end++},encode(o,n){const c=(n.isBlocked?1:0)|(d>=32&&n.isActive?2:0);e.uint.encode(o,c)},decode(o){const n=e.uint.decode(o);return{isBlocked:!!(1&n),isActive:d>=32&&!!(2&n)}}},Un={preencode(o,n){e.fixed32.preencode(o,n.memberKey),e.uint.preencode(o,n.clock),sa.preencode(o,n.status),o.end++,n.mailbox&&e.fixed32.preencode(o,n.mailbox),n.roomKey&&e.fixed32.preencode(o,n.roomKey),d>=32&&n.contactInfo&&pa.preencode(o,n.contactInfo),d>=34&&n.alias&&e.string.preencode(o,n.alias)},encode(o,n){const c=(n.mailbox?1:0)|(n.roomKey?2:0)|(d>=32&&n.contactInfo?4:0)|(d>=34&&n.alias?8:0);e.fixed32.encode(o,n.memberKey),e.uint.encode(o,n.clock),sa.encode(o,n.status),e.uint.encode(o,c),n.mailbox&&e.fixed32.encode(o,n.mailbox),n.roomKey&&e.fixed32.encode(o,n.roomKey),d>=32&&n.contactInfo&&pa.encode(o,n.contactInfo),d>=34&&n.alias&&e.string.encode(o,n.alias)},decode(o){const n=e.fixed32.decode(o),c=e.uint.decode(o),r=sa.decode(o),t=e.uint.decode(o);return{memberKey:n,clock:c,status:r,mailbox:1&t?e.fixed32.decode(o):null,roomKey:2&t?e.fixed32.decode(o):null,contactInfo:d>=32&&4&t?pa.decode(o):null,alias:d>=34&&8&t?e.string.decode(o):null}}},On=$,Hn=e.frame(an),Jn={preencode(e,d){On.preencode(e,d.header),Hn.preencode(e,d.contact)},encode(e,d){On.encode(e,d.header),Hn.encode(e,d.contact)},decode:e=>({header:On.decode(e),contact:Hn.decode(e)})},Wn=$,Gn={preencode(d,o){Wn.preencode(d,o.header),e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.key),la.preencode(d,o.status)},encode(d,o){Wn.encode(d,o.header),e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.key),la.encode(d,o.status)},decode:d=>({header:Wn.decode(d),memberKey:e.fixed32.decode(d),key:e.uint.decode(d),status:la.decode(d)})},Qn=$,Xn={preencode(d,o){Qn.preencode(d,o.header),e.fixed32.preencode(d,o.memberKey)},encode(d,o){Qn.encode(d,o.header),e.fixed32.encode(d,o.memberKey)},decode:d=>({header:Qn.decode(d),memberKey:e.fixed32.decode(d)})},Yn={preencode(e,d){e.end++},encode(d,o){const n=(o.isPending?1:0)|(o.isAccepted?2:0)|(o.isRejected?4:0)|(o.isDiscarded?8:0)|(o.isSeen?16:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isPending:!!(1&o),isAccepted:!!(2&o),isRejected:!!(4&o),isDiscarded:!!(8&o),isSeen:!!(16&o)}}},Zn=be,$n=e.frame(t),_n={preencode(d,o){Zn.preencode(d,o.sender),$n.preencode(d,o.keys),e.fixed32.preencode(d,o.mailbox),d.end++,o.message&&e.string.preencode(d,o.message)},encode(d,o){const n=o.message?1:0;Zn.encode(d,o.sender),$n.encode(d,o.keys),e.fixed32.encode(d,o.mailbox),e.uint.encode(d,n),o.message&&e.string.encode(d,o.message)},decode:d=>({sender:Zn.decode(d),keys:$n.decode(d),mailbox:e.fixed32.decode(d),message:1&e.uint.decode(d)?e.string.decode(d):null})},ec=e.frame(_n),dc={preencode(e,d){ec.preencode(e,d.body),ne.preencode(e,d.attestation)},encode(e,d){ec.encode(e,d.body),ne.encode(e,d.attestation)},decode:e=>({body:ec.decode(e),attestation:ne.decode(e)})},oc=pe,nc=e.frame(Yn),cc=$n,rc={preencode(o,n){e.fixed32.preencode(o,n.memberKey),e.uint.preencode(o,n.clock),oc.preencode(o,n.sender),nc.preencode(o,n.status),cc.preencode(o,n.keys),e.fixed32.preencode(o,n.mailbox),o.end++,n.message&&e.string.preencode(o,n.message),d>=17&&n.sentAt&&e.uint.preencode(o,n.sentAt),d>=32&&n.contactInfo&&ua.preencode(o,n.contactInfo)},encode(o,n){const c=(n.message?1:0)|(d>=17&&n.sentAt?2:0)|(d>=32&&n.contactInfo?4:0);e.fixed32.encode(o,n.memberKey),e.uint.encode(o,n.clock),oc.encode(o,n.sender),nc.encode(o,n.status),cc.encode(o,n.keys),e.fixed32.encode(o,n.mailbox),e.uint.encode(o,c),n.message&&e.string.encode(o,n.message),d>=17&&n.sentAt&&e.uint.encode(o,n.sentAt),d>=32&&n.contactInfo&&ua.encode(o,n.contactInfo)},decode(o){const n=e.fixed32.decode(o),c=e.uint.decode(o),r=oc.decode(o),t=nc.decode(o),i=cc.decode(o),a=e.fixed32.decode(o),s=e.uint.decode(o);return{memberKey:n,clock:c,sender:r,status:t,keys:i,mailbox:a,message:1&s?e.string.decode(o):null,sentAt:d>=17&&2&s?e.uint.decode(o):0,contactInfo:d>=32&&4&s?ua.decode(o):null}}},tc=$,ic={preencode(d,o){tc.preencode(d,o.header),e.buffer.preencode(d,o.blindRequest)},encode(d,o){tc.encode(d,o.header),e.buffer.encode(d,o.blindRequest)},decode:d=>({header:tc.decode(d),blindRequest:e.buffer.decode(d)})},ac=$,sc=nc,pc={preencode(o,n){ac.preencode(o,n.header),e.fixed32.preencode(o,n.memberKey),e.uint.preencode(o,n.key),sc.preencode(o,n.status),o.end++,d>=15&&n.roomKey&&e.fixed32.preencode(o,n.roomKey)},encode(o,n){const c=d>=15&&n.roomKey?1:0;ac.encode(o,n.header),e.fixed32.encode(o,n.memberKey),e.uint.encode(o,n.key),sc.encode(o,n.status),e.uint.encode(o,c),d>=15&&n.roomKey&&e.fixed32.encode(o,n.roomKey)},decode(o){const n=ac.decode(o),c=e.fixed32.decode(o),r=e.uint.decode(o),t=sc.decode(o),i=o.start<o.end?e.uint.decode(o):0;return{header:n,memberKey:c,key:r,status:t,roomKey:d>=15&&1&i?e.fixed32.decode(o):null}}},lc={preencode(d,o){e.uint.preencode(d,o.timestamp),e.fixed32.preencode(d,o.key),e.fixed32.preencode(d,o.mailbox)},encode(d,o){e.uint.encode(d,o.timestamp),e.fixed32.encode(d,o.key),e.fixed32.encode(d,o.mailbox)},decode:d=>({version:e.uint.decode(d),timestamp:e.uint.decode(d),key:e.fixed32.decode(d),mailbox:e.fixed32.decode(d)})},uc={preencode(d,o){switch(e.uint.preencode(d,o.version),o.version){case 0:case 1:lc.preencode(d,o);break;default:throw new Error("Unsupported version")}},encode(d,o){switch(e.uint.encode(d,o.version),o.version){case 0:case 1:lc.encode(d,o);break;default:throw new Error("Unsupported version")}},decode(d){const o=d.start,n=e.uint.decode(d);switch(d.start=o,n){case 0:case 1:return lc.decode(d);default:throw new Error("Unsupported version")}}},fc={preencode(d,o){e.fixed32.preencode(d,o.discoveryPublicKey),e.uint.preencode(d,o.timestamp),d.end++,o.lastSynced&&e.uint.preencode(d,o.lastSynced)},encode(d,o){const n=(o.lastSynced?1:0)|(o.dirty?2:0);e.fixed32.encode(d,o.discoveryPublicKey),e.uint.encode(d,o.timestamp),e.uint.encode(d,n),o.lastSynced&&e.uint.encode(d,o.lastSynced)},decode(d){const o=e.fixed32.decode(d),n=e.uint.decode(d),c=e.uint.decode(d);return{discoveryPublicKey:o,timestamp:n,lastSynced:1&c?e.uint.decode(d):0,dirty:!!(2&c)}}},mc={preencode(d,o){e.uint.preencode(d,o.rooms),e.uint.preencode(d,o.activeRooms)},encode(d,o){e.uint.encode(d,o.rooms),e.uint.encode(d,o.activeRooms)},decode:d=>({rooms:e.uint.decode(d),activeRooms:e.uint.decode(d)})},yc=D,xc=X,bc={preencode(e,d){e.end++,d.blockedMembers&&xc.preencode(e,d.blockedMembers)},encode(d,o){const n=o.blockedMembers?1:0;e.uint.encode(d,n),o.blockedMembers&&xc.encode(d,o.blockedMembers)},decode:d=>({blockedMembers:1&e.uint.decode(d)?xc.decode(d):null})},vc=e.frame(Q),kc=e.frame(bc),gc={preencode(d,n){e.buffer.preencode(d,n.encryptionKey),e.fixed32.preencode(d,n.seed),vc.preencode(d,n.capabilities),o.preencode(d,n.initiator),e.fixed32.preencode(d,n.fastForwardTo),d.end++,n.privateProfile&&kc.preencode(d,n.privateProfile)},encode(d,n){const c=n.privateProfile?1:0;e.buffer.encode(d,n.encryptionKey),e.fixed32.encode(d,n.seed),vc.encode(d,n.capabilities),o.encode(d,n.initiator),e.fixed32.encode(d,n.fastForwardTo),e.uint.encode(d,c),n.privateProfile&&kc.encode(d,n.privateProfile)},decode:d=>({encryptionKey:e.buffer.decode(d),seed:e.fixed32.decode(d),capabilities:vc.decode(d),initiator:o.decode(d),fastForwardTo:e.fixed32.decode(d),privateProfile:1&e.uint.decode(d)?kc.decode(d):null})},Kc={preencode(d,o){d.end++,o.count&&e.uint.preencode(d,o.count)},encode(d,o){const n=o.count?1:0;e.uint.encode(d,n),o.count&&e.uint.encode(d,o.count)},decode:d=>({count:1&e.uint.decode(d)?e.uint.decode(d):0})},hc=e.frame(gc),wc={preencode(o,n){e.fixed32.preencode(o,n.roomKey),e.uint.preencode(o,n.priority),o.end++,n.v3&&hc.preencode(o,n.v3),d>=5&&n.timestamp&&e.uint.preencode(o,n.timestamp)},encode(o,n){const c=(n.v3?1:0)|(d>=3&&n.errored?2:0)|(d>=5&&n.timestamp?4:0);e.fixed32.encode(o,n.roomKey),e.uint.encode(o,n.priority),e.uint.encode(o,c),n.v3&&hc.encode(o,n.v3),d>=5&&n.timestamp&&e.uint.encode(o,n.timestamp)},decode(o){const n=e.fixed32.decode(o),c=e.uint.decode(o),r=e.uint.decode(o);return{roomKey:n,priority:c,v3:1&r?hc.decode(o):null,errored:d>=3&&!!(2&r),timestamp:d>=5&&4&r?e.uint.decode(o):0}}},Pc={preencode(e,d){e.end++},encode(d,o){const n=o.isConfirmed?1:0;e.uint.encode(d,n)},decode:d=>({isConfirmed:!!(1&e.uint.decode(d))})},Tc=e.frame(Pc),Rc=Dn,Ac={preencode(o,n){e.fixed32.preencode(o,n.publicKey),e.fixed32.preencode(o,n.privateProfileKey),r.preencode(o,n.deviceKeyPair),e.buffer.preencode(o,n.deviceProof),Tc.preencode(o,n.status),o.end++,n.entropy&&e.buffer.preencode(o,n.entropy),n.swap&&Rc.preencode(o,n.swap),d>=9&&n.swapV2&&fa.preencode(o,n.swapV2),d>=31&&n.proofShortenedAt&&e.uint.preencode(o,n.proofShortenedAt)},encode(o,n){const c=(n.entropy?1:0)|(n.swap?2:0)|(d>=9&&n.swapV2?4:0)|(d>=31&&n.proofShortenedAt?8:0);e.fixed32.encode(o,n.publicKey),e.fixed32.encode(o,n.privateProfileKey),r.encode(o,n.deviceKeyPair),e.buffer.encode(o,n.deviceProof),Tc.encode(o,n.status),e.uint.encode(o,c),n.entropy&&e.buffer.encode(o,n.entropy),n.swap&&Rc.encode(o,n.swap),d>=9&&n.swapV2&&fa.encode(o,n.swapV2),d>=31&&n.proofShortenedAt&&e.uint.encode(o,n.proofShortenedAt)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),t=r.decode(o),i=e.buffer.decode(o),a=Tc.decode(o),s=e.uint.decode(o);return{publicKey:n,privateProfileKey:c,deviceKeyPair:t,deviceProof:i,status:a,entropy:1&s?e.buffer.decode(o):null,swap:2&s?Rc.decode(o):null,swapV2:d>=9&&4&s?fa.decode(o):null,proofShortenedAt:d>=31&&8&s?e.uint.decode(o):0}}},Mc={RestoreIdentity:1,CreateRoom:2,LeaveRoom:3,ClearRoom:4,JoinRoomInvitation:5,JoinRoomKeys:6,JoinRoomResponse:7,SendContactRequest:8,TestFastTask:9,TestSlowTask:10,TestErrorTask:11},Sc={preencode(e,d){e.end++},encode(d,o){if(o>11)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},Ic={preencode(d,n){e.fixed32.preencode(d,n.roomKey),e.buffer.preencode(d,n.encryptionKey),d.end++,n.fastForwardTo&&e.fixed32.preencode(d,n.fastForwardTo),n.initiator&&o.preencode(d,n.initiator)},encode(d,n){const c=(n.fastForwardTo?1:0)|(n.initiator?2:0);e.fixed32.encode(d,n.roomKey),e.buffer.encode(d,n.encryptionKey),e.uint.encode(d,c),n.fastForwardTo&&e.fixed32.encode(d,n.fastForwardTo),n.initiator&&o.encode(d,n.initiator)},decode(d){const n=e.fixed32.decode(d),c=e.buffer.decode(d),r=e.uint.decode(d);return{roomKey:n,encryptionKey:c,fastForwardTo:1&r?e.fixed32.decode(d):null,initiator:2&r?o.decode(d):null}}},Dc=Pn,Cc={preencode(e,d){Dc.preencode(e,d.invitation)},encode(e,d){Dc.encode(e,d.invitation)},decode:e=>({invitation:Dc.decode(e)})},Fc={preencode(d,o){e.fixed32.preencode(d,o.mailbox),r.preencode(d,o.keyPair),e.buffer.preencode(d,o.response)},encode(d,o){e.fixed32.encode(d,o.mailbox),r.encode(d,o.keyPair),e.buffer.encode(d,o.response)},decode:d=>({mailbox:e.fixed32.decode(d),keyPair:r.decode(d),response:e.buffer.decode(d)})},Lc=Z,qc={preencode(d,n){e.fixed32.preencode(d,n.roomKey),e.buffer.preencode(d,n.encryptionKey),d.end++,n.fastForwardTo&&e.fixed32.preencode(d,n.fastForwardTo),n.initiator&&o.preencode(d,n.initiator),n.mailbox&&e.fixed32.preencode(d,n.mailbox)},encode(d,n){const c=(n.fastForwardTo?1:0)|(n.initiator?2:0)|(n.mailbox?4:0);e.fixed32.encode(d,n.roomKey),e.buffer.encode(d,n.encryptionKey),e.uint.encode(d,c),n.fastForwardTo&&e.fixed32.encode(d,n.fastForwardTo),n.initiator&&o.encode(d,n.initiator),n.mailbox&&e.fixed32.encode(d,n.mailbox)},decode(d){const n=e.fixed32.decode(d),c=e.buffer.decode(d),r=e.uint.decode(d);return{roomKey:n,encryptionKey:c,fastForwardTo:1&r?e.fixed32.decode(d):null,initiator:2&r?o.decode(d):null,mailbox:4&r?e.fixed32.decode(d):null}}},jc=e.frame(qc),Ec={preencode(e,d){jc.preencode(e,d.keys)},encode(e,d){jc.encode(e,d.keys)},decode:e=>({keys:jc.decode(e)})},Bc=e.frame(dn),Nc={preencode(d,n){e.fixed32.preencode(d,n.roomKey),e.buffer.preencode(d,n.encryptionKey),d.end++,n.fastForwardTo&&e.fixed32.preencode(d,n.fastForwardTo),n.initiator&&o.preencode(d,n.initiator),n.mailbox&&e.fixed32.preencode(d,n.mailbox),n.keyPair&&r.preencode(d,n.keyPair),n.genesis&&Bc.preencode(d,n.genesis)},encode(d,n){const c=(n.fastForwardTo?1:0)|(n.initiator?2:0)|(n.mailbox?4:0)|(n.keyPair?8:0)|(n.genesis?16:0)|(n.isPrivateProfile?32:0);e.fixed32.encode(d,n.roomKey),e.buffer.encode(d,n.encryptionKey),e.uint.encode(d,c),n.fastForwardTo&&e.fixed32.encode(d,n.fastForwardTo),n.initiator&&o.encode(d,n.initiator),n.mailbox&&e.fixed32.encode(d,n.mailbox),n.keyPair&&r.encode(d,n.keyPair),n.genesis&&Bc.encode(d,n.genesis)},decode(d){const n=e.fixed32.decode(d),c=e.buffer.decode(d),t=e.uint.decode(d);return{roomKey:n,encryptionKey:c,fastForwardTo:1&t?e.fixed32.decode(d):null,initiator:2&t?o.decode(d):null,mailbox:4&t?e.fixed32.decode(d):null,keyPair:8&t?r.decode(d):null,genesis:16&t?Bc.decode(d):null,isPrivateProfile:!!(32&t)}}},Vc={preencode(d,o){e.fixed32.preencode(d,o.roomKey),d.end++},encode(d,o){const n=o.isGossiped?1:0;e.fixed32.encode(d,o.roomKey),e.uint.encode(d,n)},decode:d=>({roomKey:e.fixed32.decode(d),isGossiped:!!(1&e.uint.decode(d))})},zc={preencode(d,o){e.fixed32.preencode(d,o.roomKey)},encode(d,o){e.fixed32.encode(d,o.roomKey)},decode:d=>({roomKey:e.fixed32.decode(d)})},Uc={preencode(d,o){e.string.preencode(d,o.mnemonic),d.end++,o.profileDiscoveryTimeout&&e.uint.preencode(d,o.profileDiscoveryTimeout)},encode(d,o){const n=(o.profileDiscoveryTimeout?1:0)|(o.recover?2:0);e.string.encode(d,o.mnemonic),e.uint.encode(d,n),o.profileDiscoveryTimeout&&e.uint.encode(d,o.profileDiscoveryTimeout)},decode(d){const o=e.string.decode(d),n=e.uint.decode(d);return{mnemonic:o,profileDiscoveryTimeout:1&n?e.uint.decode(d):0,recover:!!(2&n)}}},Oc={preencode(o,n){e.fixed32.preencode(o,n.roomKey),e.fixed32.preencode(o,n.memberKey),o.end++,n.message&&e.string.preencode(o,n.message),d>=6&&n.contactInfo&&ma.preencode(o,n.contactInfo)},encode(o,n){const c=(n.message?1:0)|(d>=6&&n.contactInfo?2:0);e.fixed32.encode(o,n.roomKey),e.fixed32.encode(o,n.memberKey),e.uint.encode(o,c),n.message&&e.string.encode(o,n.message),d>=6&&n.contactInfo&&ma.encode(o,n.contactInfo)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),r=e.uint.decode(o);return{roomKey:n,memberKey:c,message:1&r?e.string.decode(o):null,contactInfo:d>=6&&2&r?ma.decode(o):null}}},Hc={preencode(d,o){e.fixed32.preencode(d,o.key),d.end++},encode(d,o){const n=o.isPrivateProfile?1:0;e.fixed32.encode(d,o.key),e.uint.encode(d,n)},decode:d=>({key:e.fixed32.decode(d),isPrivateProfile:!!(1&e.uint.decode(d))})},Jc=e.frame(Uc),Wc=e.frame(Nc),Gc=e.frame(Vc),Qc=e.frame(zc),Xc=e.frame(Cc),Yc=e.frame(Ec),Zc=e.frame(Fc),$c=e.frame(Oc),_c=e.frame(Hc),er={preencode(d,o){const n=(o.restoreIdentity?1:0)|(o.createRoom?2:0)|(o.leaveRoom?4:0)|(o.clearRoom?8:0)|(o.joinRoomInvitation?16:0)|(o.joinRoomKeys?32:0)|(o.joinRoomResponse?64:0)|(o.sendContactRequest?128:0)|(o.migrateV2Room?256:0);e.fixed32.preencode(d,o.discoveryKey),e.uint.preencode(d,o.priority),e.uint.preencode(d,o.timestamp),e.uint.preencode(d,o.type),e.uint.preencode(d,n),o.restoreIdentity&&Jc.preencode(d,o.restoreIdentity),o.createRoom&&Wc.preencode(d,o.createRoom),o.leaveRoom&&Gc.preencode(d,o.leaveRoom),o.clearRoom&&Qc.preencode(d,o.clearRoom),o.joinRoomInvitation&&Xc.preencode(d,o.joinRoomInvitation),o.joinRoomKeys&&Yc.preencode(d,o.joinRoomKeys),o.joinRoomResponse&&Zc.preencode(d,o.joinRoomResponse),o.sendContactRequest&&$c.preencode(d,o.sendContactRequest),o.migrateV2Room&&_c.preencode(d,o.migrateV2Room)},encode(d,o){const n=(o.restoreIdentity?1:0)|(o.createRoom?2:0)|(o.leaveRoom?4:0)|(o.clearRoom?8:0)|(o.joinRoomInvitation?16:0)|(o.joinRoomKeys?32:0)|(o.joinRoomResponse?64:0)|(o.sendContactRequest?128:0)|(o.migrateV2Room?256:0);e.fixed32.encode(d,o.discoveryKey),e.uint.encode(d,o.priority),e.uint.encode(d,o.timestamp),e.uint.encode(d,o.type),e.uint.encode(d,n),o.restoreIdentity&&Jc.encode(d,o.restoreIdentity),o.createRoom&&Wc.encode(d,o.createRoom),o.leaveRoom&&Gc.encode(d,o.leaveRoom),o.clearRoom&&Qc.encode(d,o.clearRoom),o.joinRoomInvitation&&Xc.encode(d,o.joinRoomInvitation),o.joinRoomKeys&&Yc.encode(d,o.joinRoomKeys),o.joinRoomResponse&&Zc.encode(d,o.joinRoomResponse),o.sendContactRequest&&$c.encode(d,o.sendContactRequest),o.migrateV2Room&&_c.encode(d,o.migrateV2Room)},decode(d){const o=e.fixed32.decode(d),n=e.uint.decode(d),c=e.uint.decode(d),r=e.uint.decode(d),t=e.uint.decode(d);return{discoveryKey:o,priority:n,timestamp:c,type:r,restoreIdentity:1&t?Jc.decode(d):null,createRoom:2&t?Wc.decode(d):null,leaveRoom:4&t?Gc.decode(d):null,clearRoom:8&t?Qc.decode(d):null,joinRoomInvitation:16&t?Xc.decode(d):null,joinRoomKeys:32&t?Yc.decode(d):null,joinRoomResponse:64&t?Zc.decode(d):null,sendContactRequest:128&t?$c.decode(d):null,migrateV2Room:256&t?_c.decode(d):null}}},dr=je,or={preencode(d,o){e.buffer.preencode(d,o.seed),dr.preencode(d,o.invitation)},encode(d,o){e.buffer.encode(d,o.seed),dr.encode(d,o.invitation)},decode:d=>({seed:e.buffer.decode(d),invitation:dr.decode(d)})},nr={preencode(e,d){e.end++},encode(o,n){const c=(n.isWritable?1:0)|(n.isReadable?2:0)|(n.isPrivateProfile?4:0)|(d>=8&&n.isRemoved?8:0);e.uint.encode(o,c)},decode(o){const n=e.uint.decode(o);return{isWritable:!!(1&n),isReadable:!!(2&n),isPrivateProfile:!!(4&n),isRemoved:d>=8&&!!(8&n)}}},cr={preencode(d,o){e.uint.preencode(d,o.creation),e.uint.preencode(d,o.latestSync),e.uint.preencode(d,o.latestChatMessage)},encode(d,o){e.uint.encode(d,o.creation),e.uint.encode(d,o.latestSync),e.uint.encode(d,o.latestChatMessage)},decode:d=>({creation:e.uint.decode(d),latestSync:e.uint.decode(d),latestChatMessage:e.uint.decode(d)})},rr=Xo,tr=fo,ir=e.frame(cr),ar=vc,sr=e.frame(nr),pr=e.frame(ie),lr=e.frame(ud),ur=Uo,fr=$o,mr=e.frame(ho),yr=X,xr=e.frame(sd),br=In,vr={preencode(o,n){const c=(n.selfDevice?1:0)|(n.selfMember?2:0)|(n.config?4:0)|(n.identity?8:0)|(n.lastMessage?16:0)|(n.dm?32:0)|(d>=19&&n.readLengths?64:0)|(d>=19&&n.lastMember?128:0)|(d>=21&&n.version?256:0)|(d>=27&&n.preferences?512:0)|(d>=28&&n.activeCall?1024:0)|(d>=32&&n.lastMessageLabels?2048:0)|(d>=33&&n.settings?4096:0);e.fixed32.preencode(o,n.roomKey),e.fixed32.preencode(o,n.discoveryKey),e.buffer.preencode(o,n.encryptionKey),rr.preencode(o,n.digest),tr.preencode(o,n.stats),ir.preencode(o,n.timestamps),e.uint.preencode(o,n.fork),e.uint.preencode(o,n.length),e.fixed32.preencode(o,n.seed),ar.preencode(o,n.capabilities),sr.preencode(o,n.status),e.uint.preencode(o,c),n.selfDevice&&pr.preencode(o,n.selfDevice),n.selfMember&&lr.preencode(o,n.selfMember),n.config&&ur.preencode(o,n.config),n.identity&&fr.preencode(o,n.identity),n.lastMessage&&mr.preencode(o,n.lastMessage),n.dm&&yr.preencode(o,n.dm),d>=19&&n.readLengths&&ya.preencode(o,n.readLengths),d>=19&&n.lastMember&&xr.preencode(o,n.lastMember),d>=21&&n.version&&e.uint.preencode(o,n.version),d>=27&&n.preferences&&br.preencode(o,n.preferences),d>=28&&n.activeCall&&xa.preencode(o,n.activeCall),d>=32&&n.lastMessageLabels&&ba.preencode(o,n.lastMessageLabels),d>=33&&n.settings&&va.preencode(o,n.settings)},encode(o,n){const c=(n.selfDevice?1:0)|(n.selfMember?2:0)|(n.config?4:0)|(n.identity?8:0)|(n.lastMessage?16:0)|(n.dm?32:0)|(d>=19&&n.readLengths?64:0)|(d>=19&&n.lastMember?128:0)|(d>=21&&n.version?256:0)|(d>=27&&n.preferences?512:0)|(d>=28&&n.activeCall?1024:0)|(d>=32&&n.lastMessageLabels?2048:0)|(d>=33&&n.settings?4096:0);e.fixed32.encode(o,n.roomKey),e.fixed32.encode(o,n.discoveryKey),e.buffer.encode(o,n.encryptionKey),rr.encode(o,n.digest),tr.encode(o,n.stats),ir.encode(o,n.timestamps),e.uint.encode(o,n.fork),e.uint.encode(o,n.length),e.fixed32.encode(o,n.seed),ar.encode(o,n.capabilities),sr.encode(o,n.status),e.uint.encode(o,c),n.selfDevice&&pr.encode(o,n.selfDevice),n.selfMember&&lr.encode(o,n.selfMember),n.config&&ur.encode(o,n.config),n.identity&&fr.encode(o,n.identity),n.lastMessage&&mr.encode(o,n.lastMessage),n.dm&&yr.encode(o,n.dm),d>=19&&n.readLengths&&ya.encode(o,n.readLengths),d>=19&&n.lastMember&&xr.encode(o,n.lastMember),d>=21&&n.version&&e.uint.encode(o,n.version),d>=27&&n.preferences&&br.encode(o,n.preferences),d>=28&&n.activeCall&&xa.encode(o,n.activeCall),d>=32&&n.lastMessageLabels&&ba.encode(o,n.lastMessageLabels),d>=33&&n.settings&&va.encode(o,n.settings)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),r=e.buffer.decode(o),t=rr.decode(o),i=tr.decode(o),a=ir.decode(o),s=e.uint.decode(o),p=e.uint.decode(o),l=e.fixed32.decode(o),u=ar.decode(o),f=sr.decode(o),m=e.uint.decode(o);return{roomKey:n,discoveryKey:c,encryptionKey:r,digest:t,stats:i,timestamps:a,fork:s,length:p,seed:l,capabilities:u,status:f,selfDevice:1&m?pr.decode(o):null,selfMember:2&m?lr.decode(o):null,config:4&m?ur.decode(o):null,identity:8&m?fr.decode(o):null,lastMessage:16&m?mr.decode(o):null,dm:32&m?yr.decode(o):null,readLengths:d>=19&&64&m?ya.decode(o):null,lastMember:d>=19&&128&m?xr.decode(o):null,version:d>=21&&256&m?e.uint.decode(o):0,preferences:d>=27&&512&m?br.decode(o):null,activeCall:d>=28&&1024&m?xa.decode(o):null,lastMessageLabels:d>=32&&2048&m?ba.decode(o):null,settings:d>=33&&4096&m?va.decode(o):null}}},kr=In,gr={preencode(d,o){e.fixed32.preencode(d,o.roomKey),kr.preencode(d,o.status)},encode(d,o){e.fixed32.encode(d,o.roomKey),kr.encode(d,o.status)},decode:d=>({roomKey:e.fixed32.decode(d),status:kr.decode(d)})},Kr={preencode(d,o){e.fixed32.preencode(d,o.mailbox),e.fixed32.preencode(d,o.key),d.end++,o.roomKey&&e.fixed32.preencode(d,o.roomKey),o.keyPair&&r.preencode(d,o.keyPair),o.responseKeyPair&&r.preencode(d,o.responseKeyPair)},encode(d,o){const n=(o.roomKey?1:0)|(o.keyPair?2:0)|(o.responseKeyPair?4:0);e.fixed32.encode(d,o.mailbox),e.fixed32.encode(d,o.key),e.uint.encode(d,n),o.roomKey&&e.fixed32.encode(d,o.roomKey),o.keyPair&&r.encode(d,o.keyPair),o.responseKeyPair&&r.encode(d,o.responseKeyPair)},decode(d){const o=e.fixed32.decode(d),n=e.fixed32.decode(d),c=e.uint.decode(d);return{mailbox:o,key:n,roomKey:1&c?e.fixed32.decode(d):null,keyPair:2&c?r.decode(d):null,responseKeyPair:4&c?r.decode(d):null}}},hr=pe,wr={preencode(d,o){e.fixed32.preencode(d,o.key),hr.preencode(d,o.profile)},encode(d,o){e.fixed32.encode(d,o.key),hr.encode(d,o.profile)},decode:d=>({key:e.fixed32.decode(d),profile:hr.decode(d)})},Pr=pr,Tr={preencode(d,o){e.fixed32.preencode(d,o.roomKey),Pr.preencode(d,o.device)},encode(d,o){e.fixed32.encode(d,o.roomKey),Pr.encode(d,o.device)},decode:d=>({roomKey:e.fixed32.decode(d),device:Pr.decode(d)})},Rr=g,Ar={preencode(o,n){Rr.preencode(o,n.file),e.fixed32.preencode(o,n.roomKey),o.end++,n.encryptionKey&&e.buffer.preencode(o,n.encryptionKey),d>=28&&n.lastAccessed&&e.uint.preencode(o,n.lastAccessed),d>=28&&n.version&&e.uint.preencode(o,n.version)},encode(o,n){const c=(n.encryptionKey?1:0)|(n.cleared?2:0)|(n.own?4:0)|(d>=28&&n.lastAccessed?8:0)|(d>=28&&n.version?16:0);Rr.encode(o,n.file),e.fixed32.encode(o,n.roomKey),e.uint.encode(o,c),n.encryptionKey&&e.buffer.encode(o,n.encryptionKey),d>=28&&n.lastAccessed&&e.uint.encode(o,n.lastAccessed),d>=28&&n.version&&e.uint.encode(o,n.version)},decode(o){const n=Rr.decode(o),c=e.fixed32.decode(o),r=e.uint.decode(o);return{file:n,roomKey:c,encryptionKey:1&r?e.buffer.decode(o):null,cleared:!!(2&r),own:!!(4&r),lastAccessed:d>=28&&8&r?e.uint.decode(o):0,version:d>=28&&16&r?e.uint.decode(o):0}}},Mr=$,Sr={preencode(o,c){Mr.preencode(o,c.header),n.preencode(o,c.oplog),e.uint.preencode(o,c.index),ka.preencode(o,c.preview),o.end++,d>=12&&c.displayType&&Gr.preencode(o,c.displayType)},encode(o,c){const r=d>=12&&c.displayType?1:0;Mr.encode(o,c.header),n.encode(o,c.oplog),e.uint.encode(o,c.index),ka.encode(o,c.preview),e.uint.encode(o,r),d>=12&&c.displayType&&Gr.encode(o,c.displayType)},decode(o){const c=Mr.decode(o),r=n.decode(o),t=e.uint.decode(o),i=ka.decode(o),a=o.start<o.end?e.uint.decode(o):0;return{header:c,oplog:r,index:t,preview:i,displayType:d>=12&&1&a?Gr.decode(o):0}}},Ir={preencode(o,n){o.end++,d>=4&&n.memberKey&&e.fixed32.preencode(o,n.memberKey)},encode(o,n){const c=d>=4&&n.memberKey?1:0;e.uint.encode(o,c),d>=4&&n.memberKey&&e.fixed32.encode(o,n.memberKey)},decode(o){const n=e.uint.decode(o);return{memberKey:d>=4&&1&n?e.fixed32.decode(o):null}}},Dr=pe,Cr={preencode(e,d){Dr.preencode(e,d.profile),ne.preencode(e,d.attestation)},encode(e,d){Dr.encode(e,d.profile),ne.encode(e,d.attestation)},decode:e=>({profile:Dr.decode(e),attestation:ne.decode(e)})},Fr=$,Lr={preencode(d,o){Fr.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){Fr.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:Fr.decode(d),key:e.fixed32.decode(d)})},qr={preencode(d,o){e.fixed32.preencode(d,o.deviceKey),ne.preencode(d,o.privateProfileIdentity),e.buffer.preencode(d,o.deviceProof)},encode(d,o){e.fixed32.encode(d,o.deviceKey),ne.encode(d,o.privateProfileIdentity),e.buffer.encode(d,o.deviceProof)},decode:d=>({deviceKey:e.fixed32.decode(d),privateProfileIdentity:ne.decode(d),deviceProof:e.buffer.decode(d)})},jr={preencode(o,n){e.fixed32.preencode(o,n.roomKey),e.fixed32.preencode(o,n.encryptionKey),e.fixed32.preencode(o,n.seed),o.end++,d>=9&&n.fastForwardTo&&e.fixed32.preencode(o,n.fastForwardTo)},encode(o,n){const c=d>=9&&n.fastForwardTo?1:0;e.fixed32.encode(o,n.roomKey),e.fixed32.encode(o,n.encryptionKey),e.fixed32.encode(o,n.seed),e.uint.encode(o,c),d>=9&&n.fastForwardTo&&e.fixed32.encode(o,n.fastForwardTo)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),r=e.fixed32.decode(o),t=e.uint.decode(o);return{roomKey:n,encryptionKey:c,seed:r,fastForwardTo:d>=9&&1&t?e.fixed32.decode(o):null}}},Er={preencode(o,n){e.fixed32.preencode(o,n.publicKey),e.fixed32.preencode(o,n.writerKey),e.fixed32.preencode(o,n.devicePublicKey),o.end++,d>=9&&n.privateProfileKey&&e.fixed32.preencode(o,n.privateProfileKey)},encode(o,n){const c=d>=9&&n.privateProfileKey?1:0;e.fixed32.encode(o,n.publicKey),e.fixed32.encode(o,n.writerKey),e.fixed32.encode(o,n.devicePublicKey),e.uint.encode(o,c),d>=9&&n.privateProfileKey&&e.fixed32.encode(o,n.privateProfileKey)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),r=e.fixed32.decode(o),t=e.uint.decode(o);return{publicKey:n,writerKey:c,devicePublicKey:r,privateProfileKey:d>=9&&1&t?e.fixed32.decode(o):null}}},Br=$,Nr={preencode(d,o){Br.preencode(d,o.header),e.fixed32.preencode(d,o.memberKey)},encode(d,o){Br.encode(d,o.header),e.fixed32.encode(d,o.memberKey)},decode:d=>({header:Br.decode(d),memberKey:e.fixed32.decode(d)})},Vr={preencode(d,o){e.fixed32.preencode(d,o.privateProfileKey)},encode(d,o){e.fixed32.encode(d,o.privateProfileKey)},decode:d=>({privateProfileKey:e.fixed32.decode(d)})},zr={preencode(d,o){e.fixed32.preencode(d,o.key),e.fixed32.preencode(d,o.responsePublicKey)},encode(d,o){e.fixed32.encode(d,o.key),e.fixed32.encode(d,o.responsePublicKey)},decode:d=>({key:e.fixed32.decode(d),responsePublicKey:e.fixed32.decode(d)})},Ur={preencode(o,n){e.fixed32.preencode(o,n.roomKey),o.end++,d>=10&&n.repairs&&e.uint.preencode(o,n.repairs)},encode(o,n){const c=d>=10&&n.repairs?1:0;e.fixed32.encode(o,n.roomKey),e.uint.encode(o,c),d>=10&&n.repairs&&e.uint.encode(o,n.repairs)},decode(o){const n=e.fixed32.decode(o),c=e.uint.decode(o);return{roomKey:n,repairs:d>=10&&1&c?e.uint.decode(o):0}}},Or={preencode(o,n){o.end++,d>=11&&n.key&&e.string.preencode(o,n.key),d>=11&&n.description&&e.string.preencode(o,n.description)},encode(o,n){const c=(d>=11&&n.key?1:0)|(d>=11&&n.value?2:0)|(d>=11&&n.description?4:0);e.uint.encode(o,c),d>=11&&n.key&&e.string.encode(o,n.key),d>=11&&n.description&&e.string.encode(o,n.description)},decode(o){const n=e.uint.decode(o);return{key:d>=11&&1&n?e.string.decode(o):null,value:d>=11&&!!(2&n),description:d>=11&&4&n?e.string.decode(o):null}}},Hr=e.array(e.frame(Or)),Jr={preencode(e,o){e.end++,d>=11&&o.flags&&Hr.preencode(e,o.flags)},encode(o,n){const c=d>=11&&n.flags?1:0;e.uint.encode(o,c),d>=11&&n.flags&&Hr.encode(o,n.flags)},decode(o){const n=e.uint.decode(o);return{flags:d>=11&&1&n?Hr.decode(o):null}}},Wr={HttpLink:1,PearLink:2},Gr={preencode(e,d){e.end++},encode(d,o){if(o>2)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},Qr=$,Xr={preencode(d,o){Qr.preencode(d,o.header),e.uint.preencode(d,o.value)},encode(d,o){Qr.encode(d,o.header),e.uint.encode(d,o.value)},decode:d=>({header:Qr.decode(d),value:e.uint.decode(d)})},Yr={preencode(d,o){e.uint.preencode(d,o.key),e.uint.preencode(d,o.value)},encode(d,o){e.uint.encode(d,o.key),e.uint.encode(d,o.value)},decode:d=>({key:e.uint.decode(d),value:e.uint.decode(d)})},Zr=$,$r={preencode(o,n){Zr.preencode(o,n.header),e.uint.preencode(o,n.from),e.uint.preencode(o,n.to),o.end++,d>=29&&n.buildType&&bi.preencode(o,n.buildType)},encode(o,n){const c=d>=29&&n.buildType?1:0;Zr.encode(o,n.header),e.uint.encode(o,n.from),e.uint.encode(o,n.to),e.uint.encode(o,c),d>=29&&n.buildType&&bi.encode(o,n.buildType)},decode(o){const n=Zr.decode(o),c=e.uint.decode(o),r=e.uint.decode(o),t=o.start<o.end?e.uint.decode(o):0;return{header:n,from:c,to:r,buildType:d>=29&&1&t?bi.decode(o):null}}},_r={RoomType:1,IsExperimental:2,IsJoiningDisabled:3,IsAppendingDisabled:4,IsCallingDisabled:5,IsMembershipEventsDisabled:6,IsAttachmentsDisabled:7,IsLinksDisabled:8,IsRoomInviteHidden:9},et={preencode(e,d){e.end++},encode(d,o){if(o>9)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},dt=We,ot={preencode(o,n){o.end++,d>=16&&n.nodes&&dt.preencode(o,n.nodes),d>=24&&n.concurrency&&e.uint.preencode(o,n.concurrency),d>=24&&n.maxWindow&&e.uint.preencode(o,n.maxWindow),d>=24&&n.randomPunchInterval&&e.uint.preencode(o,n.randomPunchInterval),d>=24&&n.connectionKeepAlive&&e.uint.preencode(o,n.connectionKeepAlive)},encode(o,n){const c=(d>=16&&n.nodes?1:0)|(d>=24&&n.concurrency?2:0)|(d>=24&&n.maxWindow?4:0)|(d>=24&&n.randomPunchInterval?8:0)|(d>=24&&n.connectionKeepAlive?16:0);e.uint.encode(o,c),d>=16&&n.nodes&&dt.encode(o,n.nodes),d>=24&&n.concurrency&&e.uint.encode(o,n.concurrency),d>=24&&n.maxWindow&&e.uint.encode(o,n.maxWindow),d>=24&&n.randomPunchInterval&&e.uint.encode(o,n.randomPunchInterval),d>=24&&n.connectionKeepAlive&&e.uint.encode(o,n.connectionKeepAlive)},decode(o){const n=e.uint.decode(o);return{nodes:d>=16&&1&n?dt.decode(o):null,concurrency:d>=24&&2&n?e.uint.decode(o):0,maxWindow:d>=24&&4&n?e.uint.decode(o):0,randomPunchInterval:d>=24&&8&n?e.uint.decode(o):0,connectionKeepAlive:d>=24&&16&n?e.uint.decode(o):0}}},nt={en:"en",it:"it",ru:"ru",es:"es",de:"de"},ct={preencode(e,d){e.end++},encode(d,o){switch(o){case"en":e.uint.encode(d,1);break;case"it":e.uint.encode(d,2);break;case"ru":e.uint.encode(d,3);break;case"es":e.uint.encode(d,4);break;case"de":e.uint.encode(d,5);break;default:throw new Error("Unknown enum")}},decode(d){switch(e.uint.decode(d)){case 1:return"en";case 2:return"it";case 3:return"ru";case 4:return"es";case 5:return"de";default:return null}}},rt=Ld,tt={preencode(d,o){rt.preencode(d,o.range),ct.preencode(d,o.language),e.string.preencode(d,o.text)},encode(d,o){rt.encode(d,o.range),ct.encode(d,o.language),e.string.encode(d,o.text)},decode:d=>({range:rt.decode(d),language:ct.decode(d),text:e.string.decode(d)})},it={preencode(d,o){e.fixed32.preencode(d,o.roomKey),e.uint.preencode(d,o.count)},encode(d,o){e.fixed32.encode(d,o.roomKey),e.uint.encode(d,o.count)},decode:d=>({roomKey:e.fixed32.decode(d),count:e.uint.decode(d)})},at={preencode(d,o){e.fixed32.preencode(d,o.deviceKey),e.fixed32.preencode(d,o.key)},encode(d,o){e.fixed32.encode(d,o.deviceKey),e.fixed32.encode(d,o.key)},decode:d=>({deviceKey:e.fixed32.decode(d),key:e.fixed32.decode(d)})},st=$,pt={preencode(d,o){st.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){st.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:st.decode(d),key:e.fixed32.decode(d)})},lt=$,ut={preencode(d,o){lt.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){lt.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:lt.decode(d),key:e.fixed32.decode(d)})},ft={Flag:1},mt={preencode(e,d){e.end++},encode(d,o){if(o>1)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},yt={preencode(d,o){uo.preencode(d,o.id),e.fixed32.preencode(d,o.sender),e.uint.preencode(d,o.clock),mt.preencode(d,o.label)},encode(d,o){uo.encode(d,o.id),e.fixed32.encode(d,o.sender),e.uint.encode(d,o.clock),mt.encode(d,o.label)},decode:d=>({id:uo.decode(d),sender:e.fixed32.decode(d),clock:e.uint.decode(d),label:mt.decode(d)})},xt=$,bt={preencode(e,d){xt.preencode(e,d.header),n.preencode(e,d.oplog),mt.preencode(e,d.label)},encode(e,d){xt.encode(e,d.header),n.encode(e,d.oplog),mt.encode(e,d.label)},decode:e=>({header:xt.decode(e),oplog:n.decode(e),label:mt.decode(e)})},vt=$,kt={preencode(e,d){vt.preencode(e,d.header),n.preencode(e,d.oplog),mt.preencode(e,d.label)},encode(e,d){vt.encode(e,d.header),n.encode(e,d.oplog),mt.encode(e,d.label)},decode:e=>({header:vt.decode(e),oplog:n.decode(e),label:mt.decode(e)})},gt={preencode(d,o){mt.preencode(d,o.label),e.uint.preencode(d,o.count)},encode(d,o){mt.encode(d,o.label),e.uint.encode(d,o.count)},decode:d=>({label:mt.decode(d),count:e.uint.decode(d)})},Kt=e.array(e.frame(gt)),ht={preencode(o,n){uo.preencode(o,n.id),e.uint.preencode(o,n.total),Kt.preencode(o,n.labels),e.uint.preencode(o,n.editedAt),o.end++,d>=24&&n.flagsClock&&e.uint.preencode(o,n.flagsClock),d>=24&&n.version&&e.uint.preencode(o,n.version)},encode(o,n){const c=(d>=24&&n.flagsClock?1:0)|(d>=24&&n.version?2:0)|(d>=25&&n.isDeleted?4:0);uo.encode(o,n.id),e.uint.encode(o,n.total),Kt.encode(o,n.labels),e.uint.encode(o,n.editedAt),e.uint.encode(o,c),d>=24&&n.flagsClock&&e.uint.encode(o,n.flagsClock),d>=24&&n.version&&e.uint.encode(o,n.version)},decode(o){const n=uo.decode(o),c=e.uint.decode(o),r=Kt.decode(o),t=e.uint.decode(o),i=o.start<o.end?e.uint.decode(o):0;return{id:n,total:c,labels:r,editedAt:t,flagsClock:d>=24&&1&i?e.uint.decode(o):0,version:d>=24&&2&i?e.uint.decode(o):0,isDeleted:d>=25&&!!(4&i)}}},wt=$,Pt={preencode(d,o){wt.preencode(d,o.header),e.uint.preencode(d,o.length)},encode(d,o){wt.encode(d,o.header),e.uint.encode(d,o.length)},decode:d=>({header:wt.decode(d),length:e.uint.decode(d)})},Tt={preencode(d,o){e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.length)},encode(d,o){e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.length)},decode:d=>({memberKey:e.fixed32.decode(d),length:e.uint.decode(d)})},Rt=Z,At={preencode(o,n){o.end++,d>=33&&n.profileSnoozeTime&&e.uint.preencode(o,n.profileSnoozeTime)},encode(o,n){const c=(d>=19&&n.disableReadReceipts?1:0)|(d>=31&&n.stripAttachmentMetadata?2:0)|(d>=33&&n.profileSnoozeTime?4:0);e.uint.encode(o,c),d>=33&&n.profileSnoozeTime&&e.uint.encode(o,n.profileSnoozeTime)},decode(o){const n=e.uint.decode(o);return{disableReadReceipts:d>=19&&!!(1&n),stripAttachmentMetadata:d>=31&&!!(2&n),profileSnoozeTime:d>=33&&4&n?e.uint.decode(o):0}}},Mt={disableReadReceipts:"disableReadReceipts",stripAttachmentMetadata:"stripAttachmentMetadata",profileSnoozeTime:"profileSnoozeTime"},St={preencode(e,d){e.end++},encode(d,o){switch(o){case"disableReadReceipts":e.uint.encode(d,1);break;case"stripAttachmentMetadata":e.uint.encode(d,2);break;case"profileSnoozeTime":e.uint.encode(d,3);break;default:throw new Error("Unknown enum")}},decode(d){switch(e.uint.decode(d)){case 1:return"disableReadReceipts";case 2:return"stripAttachmentMetadata";case 3:return"profileSnoozeTime";default:return null}}},It=$,Dt=e.frame(At),Ct={preencode(e,d){It.preencode(e,d.header),St.preencode(e,d.key),Dt.preencode(e,d.settings)},encode(e,d){It.encode(e,d.header),St.encode(e,d.key),Dt.encode(e,d.settings)},decode:e=>({header:It.decode(e),key:St.decode(e),settings:Dt.decode(e)})},Ft={preencode(o,n){o.end++,d>=20&&n.roomKey&&e.fixed32.preencode(o,n.roomKey),d>=23&&n.coreKey&&e.fixed32.preencode(o,n.coreKey)},encode(o,n){const c=(d>=20&&n.roomKey?1:0)|(d>=23&&n.coreKey?2:0);e.uint.encode(o,c),d>=20&&n.roomKey&&e.fixed32.encode(o,n.roomKey),d>=23&&n.coreKey&&e.fixed32.encode(o,n.coreKey)},decode(o){const n=e.uint.decode(o);return{roomKey:d>=20&&1&n?e.fixed32.decode(o):null,coreKey:d>=23&&2&n?e.fixed32.decode(o):null}}},Lt=e.frame(Ft),qt={preencode(o,n){e.string.preencode(o,n.code),e.string.preencode(o,n.message),e.string.preencode(o,n.stack),e.uint.preencode(o,n.timestamp),o.end++,d>=20&&n.details&&Lt.preencode(o,n.details)},encode(o,n){const c=d>=20&&n.details?1:0;e.string.encode(o,n.code),e.string.encode(o,n.message),e.string.encode(o,n.stack),e.uint.encode(o,n.timestamp),e.uint.encode(o,c),d>=20&&n.details&&Lt.encode(o,n.details)},decode(o){const n=e.string.decode(o),c=e.string.decode(o),r=e.string.decode(o),t=e.uint.decode(o),i=e.uint.decode(o);return{code:n,message:c,stack:r,timestamp:t,details:d>=20&&1&i?Lt.decode(o):null}}},jt={RESUME:1,WAKEUP:2,PRESUSPEND:3,SUSPEND:4},Et={preencode(e,d){e.end++},encode(d,o){if(o>4)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},Bt={preencode(d,o){e.fixed32.preencode(d,o.roomKey),e.uint.preencode(d,o.total)},encode(d,o){e.fixed32.encode(d,o.roomKey),e.uint.encode(d,o.total)},decode:d=>({roomKey:e.fixed32.decode(d),total:e.uint.decode(d)})},Nt={Flag:1},Vt={preencode(e,d){e.end++},encode(d,o){if(o>1)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},zt={preencode(d,o){e.fixed32.preencode(d,o.key),e.fixed32.preencode(d,o.sender),e.uint.preencode(d,o.clock),Vt.preencode(d,o.label)},encode(d,o){e.fixed32.encode(d,o.key),e.fixed32.encode(d,o.sender),e.uint.encode(d,o.clock),Vt.encode(d,o.label)},decode:d=>({key:e.fixed32.decode(d),sender:e.fixed32.decode(d),clock:e.uint.decode(d),label:Vt.decode(d)})},Ut=$,Ot={preencode(d,o){Ut.preencode(d,o.header),e.fixed32.preencode(d,o.key),Vt.preencode(d,o.label)},encode(d,o){Ut.encode(d,o.header),e.fixed32.encode(d,o.key),Vt.encode(d,o.label)},decode:d=>({header:Ut.decode(d),key:e.fixed32.decode(d),label:Vt.decode(d)})},Ht={preencode(d,o){Vt.preencode(d,o.label),e.uint.preencode(d,o.count)},encode(d,o){Vt.encode(d,o.label),e.uint.encode(d,o.count)},decode:d=>({label:Vt.decode(d),count:e.uint.decode(d)})},Jt=e.array(e.frame(Ht)),Wt={preencode(d,o){e.fixed32.preencode(d,o.key),e.uint.preencode(d,o.total),Jt.preencode(d,o.labels),e.uint.preencode(d,o.editedAt),e.uint.preencode(d,o.flagsClock)},encode(d,o){e.fixed32.encode(d,o.key),e.uint.encode(d,o.total),Jt.encode(d,o.labels),e.uint.encode(d,o.editedAt),e.uint.encode(d,o.flagsClock)},decode:d=>({key:e.fixed32.decode(d),total:e.uint.decode(d),labels:Jt.decode(d),editedAt:e.uint.decode(d),flagsClock:e.uint.decode(d)})},Gt={preencode(d,o){e.float64.preencode(d,o.latitude),e.float64.preencode(d,o.longitude)},encode(d,o){e.float64.encode(d,o.latitude),e.float64.encode(d,o.longitude)},decode:d=>({latitude:e.float64.decode(d),longitude:e.float64.decode(d)})},Qt=$,Xt={preencode(d,o){Qt.preencode(d,o.header),e.fixed32.preencode(d,o.deviceKey),e.fixed32.preencode(d,o.fromDeviceKey)},encode(d,o){Qt.encode(d,o.header),e.fixed32.encode(d,o.deviceKey),e.fixed32.encode(d,o.fromDeviceKey)},decode:d=>({header:Qt.decode(d),deviceKey:e.fixed32.decode(d),fromDeviceKey:e.fixed32.decode(d)})},Yt=$,Zt=X,$t={preencode(o,n){Yt.preencode(o,n.header),e.fixed32.preencode(o,n.callKey),e.buffer.preencode(o,n.encryptionKey),o.end++,d>=28&&n.streams&&Zt.preencode(o,n.streams),d>=28&&n.discoveryKey&&e.fixed32.preencode(o,n.discoveryKey),d>=28&&n.version&&e.uint.preencode(o,n.version)},encode(o,n){const c=(d>=28&&n.streams?1:0)|(d>=28&&n.discoveryKey?2:0)|(d>=28&&n.version?4:0);Yt.encode(o,n.header),e.fixed32.encode(o,n.callKey),e.buffer.encode(o,n.encryptionKey),e.uint.encode(o,c),d>=28&&n.streams&&Zt.encode(o,n.streams),d>=28&&n.discoveryKey&&e.fixed32.encode(o,n.discoveryKey),d>=28&&n.version&&e.uint.encode(o,n.version)},decode(o){const n=Yt.decode(o),c=e.fixed32.decode(o),r=e.buffer.decode(o),t=e.uint.decode(o);return{header:n,callKey:c,encryptionKey:r,streams:d>=28&&1&t?Zt.decode(o):null,discoveryKey:d>=28&&2&t?e.fixed32.decode(o):null,version:d>=28&&4&t?e.uint.decode(o):0}}},_t=$,ei=X,di={preencode(o,n){_t.preencode(o,n.header),e.fixed32.preencode(o,n.callKey),o.end++,d>=28&&n.streams&&ei.preencode(o,n.streams)},encode(o,n){const c=d>=28&&n.streams?1:0;_t.encode(o,n.header),e.fixed32.encode(o,n.callKey),e.uint.encode(o,c),d>=28&&n.streams&&ei.encode(o,n.streams)},decode(o){const n=_t.decode(o),c=e.fixed32.decode(o),r=e.uint.decode(o);return{header:n,callKey:c,streams:d>=28&&1&r?ei.decode(o):null}}},oi=$,ni={preencode(d,o){oi.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){oi.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:oi.decode(d),callKey:e.fixed32.decode(d)})},ci=$,ri={preencode(d,o){ci.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){ci.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:ci.decode(d),callKey:e.fixed32.decode(d)})},ti=$,ii={preencode(d,o){ti.preencode(d,o.header),e.fixed32.preencode(d,o.callKey),e.fixed32.preencode(d,o.streamKey)},encode(d,o){ti.encode(d,o.header),e.fixed32.encode(d,o.callKey),e.fixed32.encode(d,o.streamKey)},decode:d=>({header:ti.decode(d),callKey:e.fixed32.decode(d),streamKey:e.fixed32.decode(d)})},ai=$,si={preencode(d,o){ai.preencode(d,o.header),e.fixed32.preencode(d,o.callKey),e.fixed32.preencode(d,o.streamKey)},encode(d,o){ai.encode(d,o.header),e.fixed32.encode(d,o.callKey),e.fixed32.encode(d,o.streamKey)},decode:d=>({header:ai.decode(d),callKey:e.fixed32.decode(d),streamKey:e.fixed32.decode(d)})},pi={preencode(o,n){e.fixed32.preencode(o,n.callKey),e.buffer.preencode(o,n.encryptionKey),e.uint.preencode(o,n.createdAt),o.end++,d>=28&&n.endedAt&&e.uint.preencode(o,n.endedAt),d>=28&&n.discoveryKey&&e.fixed32.preencode(o,n.discoveryKey),d>=28&&n.version&&e.uint.preencode(o,n.version)},encode(o,n){const c=(d>=28&&n.endedAt?1:0)|(d>=28&&n.discoveryKey?2:0)|(d>=28&&n.version?4:0);e.fixed32.encode(o,n.callKey),e.buffer.encode(o,n.encryptionKey),e.uint.encode(o,n.createdAt),e.uint.encode(o,c),d>=28&&n.endedAt&&e.uint.encode(o,n.endedAt),d>=28&&n.discoveryKey&&e.fixed32.encode(o,n.discoveryKey),d>=28&&n.version&&e.uint.encode(o,n.version)},decode(o){const n=e.fixed32.decode(o),c=e.buffer.decode(o),r=e.uint.decode(o),t=e.uint.decode(o);return{callKey:n,encryptionKey:c,createdAt:r,endedAt:d>=28&&1&t?e.uint.decode(o):0,discoveryKey:d>=28&&2&t?e.fixed32.decode(o):null,version:d>=28&&4&t?e.uint.decode(o):0}}},li={preencode(d,o){e.fixed32.preencode(d,o.callKey),e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.createdAt)},encode(d,o){e.fixed32.encode(d,o.callKey),e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.createdAt)},decode:d=>({callKey:e.fixed32.decode(d),memberKey:e.fixed32.decode(d),createdAt:e.uint.decode(d)})},ui={preencode(o,n){e.fixed32.preencode(o,n.callKey),e.fixed32.preencode(o,n.deviceKey),e.fixed32.preencode(o,n.memberKey),e.uint.preencode(o,n.createdAt),o.end++,d>=28&&n.swarmKey&&e.fixed32.preencode(o,n.swarmKey),d>=32&&n.lastHeartbeatAt&&e.uint.preencode(o,n.lastHeartbeatAt)},encode(o,n){const c=(d>=28&&n.swarmKey?1:0)|(d>=32&&n.lastHeartbeatAt?2:0)|(d>=33&&n.isRecording?4:0);e.fixed32.encode(o,n.callKey),e.fixed32.encode(o,n.deviceKey),e.fixed32.encode(o,n.memberKey),e.uint.encode(o,n.createdAt),e.uint.encode(o,c),d>=28&&n.swarmKey&&e.fixed32.encode(o,n.swarmKey),d>=32&&n.lastHeartbeatAt&&e.uint.encode(o,n.lastHeartbeatAt)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),r=e.fixed32.decode(o),t=e.uint.decode(o),i=e.uint.decode(o);return{callKey:n,deviceKey:c,memberKey:r,createdAt:t,swarmKey:d>=28&&1&i?e.fixed32.decode(o):null,lastHeartbeatAt:d>=32&&2&i?e.uint.decode(o):0,isRecording:d>=33&&!!(4&i)}}},fi={preencode(d,o){e.fixed32.preencode(d,o.callKey),e.fixed32.preencode(d,o.deviceKey),e.buffer.preencode(d,o.streamKey),e.uint.preencode(d,o.createdAt)},encode(d,o){e.fixed32.encode(d,o.callKey),e.fixed32.encode(d,o.deviceKey),e.buffer.encode(d,o.streamKey),e.uint.encode(d,o.createdAt)},decode:d=>({callKey:e.fixed32.decode(d),deviceKey:e.fixed32.decode(d),streamKey:e.buffer.decode(d),createdAt:e.uint.decode(d)})},mi={preencode(o,n){e.fixed32.preencode(o,n.callKey),o.end++,d>=28&&n.selfDeviceKey&&e.fixed32.preencode(o,n.selfDeviceKey)},encode(o,n){const c=d>=28&&n.selfDeviceKey?1:0;e.fixed32.encode(o,n.callKey),e.uint.encode(o,c),d>=28&&n.selfDeviceKey&&e.fixed32.encode(o,n.selfDeviceKey)},decode(o){const n=e.fixed32.decode(o),c=e.uint.decode(o);return{callKey:n,selfDeviceKey:d>=28&&1&c?e.fixed32.decode(o):null}}},yi={preencode(d,o){e.uint.preencode(d,o.lastCleared)},encode(d,o){e.uint.encode(d,o.lastCleared)},decode:d=>({lastCleared:e.uint.decode(d)})},xi={Nightly:"Nightly",Internal:"Internal",Production:"Production"},bi={preencode(e,d){e.end++},encode(d,o){switch(o){case"Nightly":e.uint.encode(d,1);break;case"Internal":e.uint.encode(d,2);break;case"Production":e.uint.encode(d,3);break;default:throw new Error("Unknown enum")}},decode(d){switch(e.uint.decode(d)){case 1:return"Nightly";case 2:return"Internal";case 3:return"Production";default:return null}}},vi=$,ki={preencode(e,d){vi.preencode(e,d.header)},encode(e,d){vi.encode(e,d.header)},decode:e=>({header:vi.decode(e)})},gi=$,Ki={preencode(e,d){gi.preencode(e,d.header)},encode(e,d){gi.encode(e,d.header)},decode:e=>({header:gi.decode(e)})},hi={preencode(o,n){bi.preencode(o,n.buildType),o.end++,d>=30&&n.latestOfflineAbi&&e.uint.preencode(o,n.latestOfflineAbi)},encode(o,n){const c=d>=30&&n.latestOfflineAbi?1:0;bi.encode(o,n.buildType),e.uint.encode(o,c),d>=30&&n.latestOfflineAbi&&e.uint.encode(o,n.latestOfflineAbi)},decode(o){const n=bi.decode(o),c=o.start<o.end?e.uint.decode(o):0;return{buildType:n,latestOfflineAbi:d>=30&&1&c?e.uint.decode(o):0}}},wi=$,Pi={preencode(d,o){wi.preencode(d,o.header),e.fixed32.preencode(d,o.deviceKey),e.buffer.preencode(d,o.deviceProof),e.buffer.preencode(d,o.writerProof)},encode(d,o){wi.encode(d,o.header),e.fixed32.encode(d,o.deviceKey),e.buffer.encode(d,o.deviceProof),e.buffer.encode(d,o.writerProof)},decode:d=>({header:wi.decode(d),deviceKey:e.fixed32.decode(d),deviceProof:e.buffer.decode(d),writerProof:e.buffer.decode(d)})},Ti={preencode(o,n){o.end++,d>=31&&n.otaResyncPrivateProfileBump&&e.uint.preencode(o,n.otaResyncPrivateProfileBump)},encode(o,n){const c=d>=31&&n.otaResyncPrivateProfileBump?1:0;e.uint.encode(o,c),d>=31&&n.otaResyncPrivateProfileBump&&e.uint.encode(o,n.otaResyncPrivateProfileBump)},decode(o){const n=e.uint.decode(o);return{otaResyncPrivateProfileBump:d>=31&&1&n?e.uint.decode(o):0}}},Ri={preencode(d,o){e.fixed32.preencode(d,o.deviceKey),e.buffer.preencode(d,o.proof),e.uint.preencode(d,o.createdAt)},encode(d,o){e.fixed32.encode(d,o.deviceKey),e.buffer.encode(d,o.proof),e.uint.encode(d,o.createdAt)},decode:d=>({deviceKey:e.fixed32.decode(d),proof:e.buffer.decode(d),createdAt:e.uint.decode(d)})},Ai=$,Mi={preencode(d,o){Ai.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){Ai.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:Ai.decode(d),callKey:e.fixed32.decode(d)})},Si=$,Ii={preencode(d,o){Si.preencode(d,o.header),e.fixed32.preencode(d,o.callKey),e.fixed32.preencode(d,o.deviceKey)},encode(d,o){Si.encode(d,o.header),e.fixed32.encode(d,o.callKey),e.fixed32.encode(d,o.deviceKey)},decode:d=>({header:Si.decode(d),callKey:e.fixed32.decode(d),deviceKey:e.fixed32.decode(d)})},Di=e.frame(ht),Ci=e.array(e.frame(yt)),Fi={preencode(e,d){Di.preencode(e,d.digest),Ci.preencode(e,d.mine)},encode(e,d){Di.encode(e,d.digest),Ci.encode(e,d.mine)},decode:e=>({digest:Di.decode(e),mine:Ci.decode(e)})},Li=$,qi={preencode(d,o){Li.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){Li.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:Li.decode(d),callKey:e.fixed32.decode(d)})},ji=$,Ei={preencode(d,o){ji.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){ji.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:ji.decode(d),callKey:e.fixed32.decode(d)})},Bi={preencode(o,n){o.end++,d>=33&&n.profileSnoozeTime&&e.uint.preencode(o,n.profileSnoozeTime)},encode(o,n){const c=(d>=33&&n.disableReadReceipts?1:0)|(d>=33&&n.stripAttachmentMetadata?2:0)|(d>=33&&n.profileSnoozeTime?4:0);e.uint.encode(o,c),d>=33&&n.profileSnoozeTime&&e.uint.encode(o,n.profileSnoozeTime)},decode(o){const n=e.uint.decode(o);return{disableReadReceipts:d>=33&&!!(1&n),stripAttachmentMetadata:d>=33&&!!(2&n),profileSnoozeTime:d>=33&&4&n?e.uint.decode(o):0}}},Ni={preencode(o,n){o.end++,d>=33&&n.maxPeers&&e.uint.preencode(o,n.maxPeers)},encode(o,n){const c=d>=33&&n.maxPeers?1:0;e.uint.encode(o,c),d>=33&&n.maxPeers&&e.uint.encode(o,n.maxPeers)},decode(o){const n=e.uint.decode(o);return{maxPeers:d>=33&&1&n?e.uint.decode(o):0}}},Vi=$,zi={preencode(e,d){Vi.preencode(e,d.header),n.preencode(e,d.oplog)},encode(e,d){Vi.encode(e,d.header),n.encode(e,d.oplog)},decode:e=>({header:Vi.decode(e),oplog:n.decode(e)})},Ui=$,Oi={preencode(e,d){Ui.preencode(e,d.header)},encode(e,d){Ui.encode(e,d.header)},decode:e=>({header:Ui.decode(e)})},Hi={preencode(d,o){e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.timestamp)},encode(d,o){e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.timestamp)},decode:d=>({memberKey:e.fixed32.decode(d),timestamp:e.uint.decode(d)})},Ji=$,Wi={preencode(o,n){Ji.preencode(o,n.header),e.fixed32.preencode(o,n.memberKey),o.end++,d>=34&&n.alias&&e.string.preencode(o,n.alias)},encode(o,n){const c=d>=34&&n.alias?1:0;Ji.encode(o,n.header),e.fixed32.encode(o,n.memberKey),e.uint.encode(o,c),d>=34&&n.alias&&e.string.encode(o,n.alias)},decode(o){const n=Ji.decode(o),c=e.fixed32.decode(o),r=e.uint.decode(o);return{header:n,memberKey:c,alias:d>=34&&1&r?e.string.decode(o):null}}},Gi=e.frame(w),Qi=Gi,Xi=e.array(ct),Yi=e.frame(se),Zi=Gi,$i=Yi,_i=e.frame(jr),ea=Yi,da=e.frame(fd),oa=e.frame(Ir),na=e.frame(Gt),ca=na,ra=e.array(e.frame(tt)),ta=Gi,ia=e.frame(zn),aa=e.frame(Cr),sa=ia,pa=aa,la=ia,ua=aa,fa=e.frame(Er),ma=aa,ya=e.array(e.frame(Tt)),xa=e.frame(mi),ba=e.frame(Fi),va=e.frame(Bi),ka=Gi;function ga(e){switch(e){case"@keet/head":return o;case"@keet/oplog-id":return n;case"@keet/encryption-keypair":return c;case"@keet/signing-keypair":return r;case"@keet/room-keys":return t;case"@keet/operation-header":return i;case"@keet/blob-pointer":return a;case"@keet/file-dimensions":return s;case"@keet/file-metadata":return l;case"@keet/external-drive-pointer":return u;case"@keet/external-blob-pointer":return f;case"@keet/file-pointer":return x;case"@keet/file":return k;case"@keet/image-file":return w;case"@keet/file-status":return P;case"@keet/file-record":return A;case"@keet/device-status":return M;case"@keet/member-status":return S;case"@keet/member-moderation-status":return I;case"@keet/abi":return D;case"@keet/device-stats":return C;case"@keet/member-stats":return F;case"@keet/chat-stats":return L;case"@keet/file-stats":return q;case"@keet/stats":return V;case"@keet/room-type":return U;case"@keet/system-settings":return O;case"@keet/system-digest":return W;case"@keet/room-seed":return G;case"@keet/room-capabilities":return Q;case"@keet/room-config":return Y;case"@keet/blind-peer":return Z;case"@keet/add-blind-peer-operation":return ee;case"@keet/remove-blind-peer-operation":return oe;case"@keet/identity-attestation":return ne;case"@keet/device-invitation":return ce;case"@keet/device":return ie;case"@keet/member-profile":return ae;case"@keet/device-profile":return se;case"@keet/member-update":return le;case"@keet/device-update":return ue;case"@keet/signed-pairing-data":return fe;case"@keet/device-request-identity":return me;case"@keet/device-response-identity":return ye;case"@keet/device-request-with-invitation":return ke;case"@keet/device-request-with-invitation-and-proof":return Ke;case"@keet/device-request-with-member-proof":return Pe;case"@keet/device-request":return Ae;case"@keet/device-response":return Ie;case"@keet/invitation-metadata":return De;case"@keet/invitation":return Le;case"@keet/add-invitation-operation":return Ee;case"@keet/remove-invitation-operation":return Ne;case"@keet/sendable-room-invitation":return Ve;case"@keet/sendable-identity-invitation":return ze;case"@keet/sendable-contact-invitation":return Ue;case"@keet/sendable-invitation":return Ge;case"@keet/add-device-operation":return Xe;case"@keet/update-device-operation":return Ze;case"@keet/start-indexing-operation":return $e;case"@keet/stop-indexing-operation":return _e;case"@keet/join-request":return dd;case"@keet/accept-join-request-operation":return cd;case"@keet/reject-join-request-operation":return td;case"@keet/member":return sd;case"@keet/full-member":return ud;case"@keet/member-proofs":return fd;case"@keet/update-member-operation":return xd;case"@keet/change-member-status-operation":return kd;case"@keet/change-member-role-operation":return Kd;case"@keet/remove-member-operation":return wd;case"@keet/member-activity":return Pd;case"@keet/member-joined-event":return Td;case"@keet/member-left-event":return Rd;case"@keet/title-changed-chat-event":return Ad;case"@keet/chat-event":return Dd;case"@keet/sendable-event":return Cd;case"@keet/display-range":return Fd;case"@keet/display-content-range":return qd;case"@keet/mention-display-item":return Ed;case"@keet/link-preview":return Vd;case"@keet/display-link-item":return Od;case"@keet/display":return _d;case"@keet/oplog-message":return co;case"@keet/index-message":return io;case"@keet/full-index-message":return po;case"@keet/message-status":return lo;case"@keet/message-index-id":return uo;case"@keet/thread":return mo;case"@keet/chat-message-record":return vo;case"@keet/full-chat-message-record":return ho;case"@keet/add-chat-message-operation":return To;case"@keet/remove-chat-message-operation":return Ao;case"@keet/update-chat-message-operation":return Io;case"@keet/pin-chat-message-operation":return Co;case"@keet/reaction":return Fo;case"@keet/reactions-summary":return Lo;case"@keet/reactions-digest":return jo;case"@keet/add-reaction-operation":return Bo;case"@keet/remove-reaction-operation":return Vo;case"@keet/update-room-config-operation":return Oo;case"@keet/group-member":return Ho;case"@keet/user-registry-info":return Jo;case"@keet/room-identity":return Go;case"@keet/genesis-operation":return dn;case"@keet/upgrade-operation":return nn;case"@keet/update-system-settings-operation":return tn;case"@keet-private-id/contact":return an;case"@keet-private-id/v3-room-migration-info":return sn;case"@keet-private-id/run-v3-migration-operation":return un;case"@keet-private-id/update-identity-operation":return mn;case"@keet-private-id/counters":return yn;case"@keet-private-id/stats":return xn;case"@keet-private-id/add-entropy-operation":return bn;case"@keet-private-id/pending-invitation-identity":return vn;case"@keet-private-id/pending-invitation":return gn;case"@keet-private-id/resolve-pending-invitation-operation":return hn;case"@keet-private-id/add-pending-invitation-operation":return Tn;case"@keet-private-id/remove-pending-invitation-operation":return An;case"@keet-private-id/identity-swap":return Mn;case"@keet-private-id/room-status":return Sn;case"@keet-private-id/room":return Fn;case"@keet-private-id/add-room-operation":return qn;case"@keet-private-id/remove-room-operation":return En;case"@keet-private-id/update-room-status-operation":return Vn;case"@keet-private-id/contact-status":return zn;case"@keet-private-id/contact-record":return Un;case"@keet-private-id/add-contact-operation":return Jn;case"@keet-private-id/update-contact-status-operation":return Gn;case"@keet-private-id/remove-contact-operation":return Xn;case"@keet-private-id/contact-request-status":return Yn;case"@keet-private-id/contact-request-body":return _n;case"@keet-private-id/contact-request":return dc;case"@keet-private-id/contact-request-record":return rc;case"@keet-private-id/add-contact-request-operation":return ic;case"@keet-private-id/update-contact-request-status-operation":return pc;case"@keet-private-id/profile-discovery-record-v1":return lc;case"@keet-private-id/profile-discovery-record":return uc;case"@local/background-sync-room":return fc;case"@local/stats":return mc;case"@local/migration-status":return yc;case"@local/v3-private-profile-migration":return bc;case"@local/v3-room-migration":return gc;case"@local/room-migration-stats":return Kc;case"@local/room-migration":return wc;case"@local/identity-status":return Pc;case"@local/identity-record":return Ac;case"@local/tasks":return Sc;case"@local/room-keys":return Ic;case"@local/join-room-invitation-task":return Cc;case"@local/join-room-response-task":return Fc;case"@local/fast-forward-to":return Lc;case"@local/add-room-fields":return qc;case"@local/join-room-keys-task":return Ec;case"@local/create-room-task":return Nc;case"@local/leave-room-task":return Vc;case"@local/clear-room-task":return zc;case"@local/restore-identity-task":return Uc;case"@local/send-contact-request-task":return Oc;case"@local/migrate-v2-room-task":return Hc;case"@local/task":return er;case"@local/shared-invitation":return or;case"@local/room-status":return nr;case"@local/room-timestamps":return cr;case"@local/room":return vr;case"@local/room-preferences":return gr;case"@local/writer":return Kr;case"@local/member":return wr;case"@local/device":return Tr;case"@local/file":return Ar;case"@keet/add-file-preview-operation":return Sr;case"@keet/member-removed-event":return Ir;case"@keet/member-contact-info":return Cr;case"@keet/remove-device-operation":return Lr;case"@keet/device-identity":return qr;case"@keet/readonly-room-invitation":return jr;case"@keet-private-id/identity-swap-v2":return Er;case"@keet-private-id/activate-contact-room-operation":return Nr;case"@local/identity-swap":return Vr;case"@local/writer-append":return zr;case"@local/room-metadata":return Ur;case"@local/debug-flag":return Or;case"@local/debug":return Jr;case"@keet/display-type":return Gr;case"@keet/test-increment-operation":return Xr;case"@keet/test-collection-record-1":return Yr;case"@keet/migrate-abi-operation":return $r;case"@keet/system-settings-keys":return et;case"@local/hyperdht-record":return ot;case"@keet/room-supported-language":return ct;case"@keet/translation-display-item":return tt;case"@local/unread":return it;case"@keet-private-id/unreads":return at;case"@keet-private-id/add-unreads-key-operation":return pt;case"@keet-private-id/remove-unreads-key-operation":return ut;case"@keet/label-type":return mt;case"@keet/chat-label":return yt;case"@keet/add-chat-label-operation":return bt;case"@keet/remove-chat-label-operation":return kt;case"@keet/chat-label-summary":return gt;case"@keet/chat-label-digest":return ht;case"@keet/update-read-length-operation":return Pt;case"@keet/read-length":return Tt;case"@keet/tmp-removed-member":return Rt;case"@keet-private-id/settings":return At;case"@keet-private-id/user-settings-key":return St;case"@keet-private-id/update-settings-operation":return Ct;case"@local/error-record-details":return Ft;case"@local/error-record":return qt;case"@local/keet-state":return Et;case"@local/file-stats":return Bt;case"@keet/member-label-type":return Vt;case"@keet/member-label":return zt;case"@keet/add-member-label-operation":return Ot;case"@keet/member-label-summary":return Ht;case"@keet/member-label-digest":return Wt;case"@keet/location-shared-event":return Gt;case"@keet/move-indexer-operation":return Xt;case"@keet/start-call":return $t;case"@keet/join-call":return di;case"@keet/leave-call":return ni;case"@keet/end-call":return ri;case"@keet/add-call-stream":return ii;case"@keet/remove-call-stream":return si;case"@keet/call-record":return pi;case"@keet/call-member-record":return li;case"@keet/call-device-record":return ui;case"@keet/call-stream-record":return fi;case"@local/active-call":return mi;case"@local/file-gc-info":return yi;case"@keet/build-type":return bi;case"@keet/test-crash-operation":return ki;case"@keet/test-dispatch-error-operation":return Ki;case"@local/environment-record":return hi;case"@keet-private-id/shorten-device-attestation-operation":return Pi;case"@local/ota-actions":return Ti;case"@local/device-attestation":return Ri;case"@keet/call-device-heartbeat":return Mi;case"@keet/remove-call-device":return Ii;case"@local/chat-labels":return Fi;case"@keet/start-call-recording":return qi;case"@keet/stop-call-recording":return Ei;case"@local/settings":return Bi;case"@local/hyperswarm-record":return Ni;case"@keet/dismiss-chat-reports-operation":return zi;case"@keet/update-typing-indicator-operation":return Oi;case"@keet/typing-indicator":return Hi;case"@keet-private-id/update-contact-alias-operation":return Wi;default:throw new Error("Encoder not found "+e)}}function Ka(e,o=34){const n=ga(e);return{preencode(e,c){d=o,n.preencode(e,c)},encode(e,c){d=o,n.encode(e,c)},decode:e=>(d=o,n.decode(e))}}const ha=Ka;module.exports={resolveStruct:ha,getStruct:Ka,getEnum:function(e){switch(e){case"@keet/room-type":return z;case"@local/tasks":return Mc;case"@keet/display-type":return Wr;case"@keet/system-settings-keys":return _r;case"@keet/room-supported-language":return nt;case"@keet/label-type":return ft;case"@keet-private-id/user-settings-key":return Mt;case"@local/keet-state":return jt;case"@keet/member-label-type":return Nt;case"@keet/build-type":return xi;default:throw new Error("Enum not found "+e)}},getEncoding:ga,encode:function(o,n,c=34){return d=c,e.encode(ga(o),n)},decode:function(o,n,c=34){return d=c,e.decode(ga(o),n)},setVersion:function(e){d=e},version:d};
1const{c:e}=require("hyperschema/runtime");let d=39;const o={preencode(d,o){e.fixed32.preencode(d,o.key),e.uint.preencode(d,o.length)},encode(d,o){e.fixed32.encode(d,o.key),e.uint.encode(d,o.length)},decode:d=>({key:e.fixed32.decode(d),length:e.uint.decode(d)})},n={preencode(d,o){e.fixed32.preencode(d,o.key),e.uint.preencode(d,o.seq)},encode(d,o){e.fixed32.encode(d,o.key),e.uint.encode(d,o.seq)},decode:d=>({key:e.fixed32.decode(d),seq:e.uint.decode(d)})},c={preencode(d,o){e.fixed32.preencode(d,o.publicKey),e.fixed32.preencode(d,o.secretKey)},encode(d,o){e.fixed32.encode(d,o.publicKey),e.fixed32.encode(d,o.secretKey)},decode:d=>({publicKey:e.fixed32.decode(d),secretKey:e.fixed32.decode(d)})},r={preencode(d,o){e.fixed32.preencode(d,o.publicKey),e.fixed64.preencode(d,o.secretKey)},encode(d,o){e.fixed32.encode(d,o.publicKey),e.fixed64.encode(d,o.secretKey)},decode:d=>({publicKey:e.fixed32.decode(d),secretKey:e.fixed64.decode(d)})},t={preencode(n,c){e.fixed32.preencode(n,c.key),n.end++,c.encryptionKey&&e.buffer.preencode(n,c.encryptionKey),c.fastForwardTo&&e.fixed32.preencode(n,c.fastForwardTo),d>=37&&c.bootFrom&&o.preencode(n,c.bootFrom)},encode(n,c){const r=(c.encryptionKey?1:0)|(c.fastForwardTo?2:0)|(d>=37&&c.bootFrom?4:0);e.fixed32.encode(n,c.key),e.uint.encode(n,r),c.encryptionKey&&e.buffer.encode(n,c.encryptionKey),c.fastForwardTo&&e.fixed32.encode(n,c.fastForwardTo),d>=37&&c.bootFrom&&o.encode(n,c.bootFrom)},decode(n){const c=e.fixed32.decode(n),r=e.uint.decode(n);return{key:c,encryptionKey:1&r?e.buffer.decode(n):null,fastForwardTo:2&r?e.fixed32.decode(n):null,bootFrom:d>=37&&4&r?o.decode(n):null}}},i={preencode(d,o){e.uint.preencode(d,o.timestamp)},encode(d,o){e.uint.encode(d,o.timestamp)},decode:d=>({timestamp:e.uint.decode(d)})},a={preencode(d,o){e.uint.preencode(d,o.blockOffset),e.uint.preencode(d,o.blockLength),e.uint.preencode(d,o.byteOffset),e.uint.preencode(d,o.byteLength)},encode(d,o){e.uint.encode(d,o.blockOffset),e.uint.encode(d,o.blockLength),e.uint.encode(d,o.byteOffset),e.uint.encode(d,o.byteLength)},decode:d=>({blockOffset:e.uint.decode(d),blockLength:e.uint.decode(d),byteOffset:e.uint.decode(d),byteLength:e.uint.decode(d)})},s={preencode(d,o){e.uint.preencode(d,o.width),e.uint.preencode(d,o.height)},encode(d,o){e.uint.encode(d,o.width),e.uint.encode(d,o.height)},decode:d=>({width:e.uint.decode(d),height:e.uint.decode(d)})},p=e.frame(s),l={preencode(d,o){d.end++,o.name&&e.string.preencode(d,o.name),o.mimetype&&e.string.preencode(d,o.mimetype),o.dimensions&&p.preencode(d,o.dimensions),o.userdata&&e.buffer.preencode(d,o.userdata),o.duration&&e.uint.preencode(d,o.duration)},encode(d,o){const n=(o.name?1:0)|(o.mimetype?2:0)|(o.dimensions?4:0)|(o.userdata?8:0)|(o.duration?16:0)|(o.isPreview?32:0);e.uint.encode(d,n),o.name&&e.string.encode(d,o.name),o.mimetype&&e.string.encode(d,o.mimetype),o.dimensions&&p.encode(d,o.dimensions),o.userdata&&e.buffer.encode(d,o.userdata),o.duration&&e.uint.encode(d,o.duration)},decode(d){const o=e.uint.decode(d);return{name:1&o?e.string.decode(d):null,mimetype:2&o?e.string.decode(d):null,dimensions:4&o?p.decode(d):null,userdata:8&o?e.buffer.decode(d):null,duration:16&o?e.uint.decode(d):0,isPreview:!!(32&o)}}},u={preencode(d,o){e.fixed32.preencode(d,o.key),e.string.preencode(d,o.path),e.uint.preencode(d,o.version),e.uint.preencode(d,o.size)},encode(d,o){e.fixed32.encode(d,o.key),e.string.encode(d,o.path),e.uint.encode(d,o.version),e.uint.encode(d,o.size)},decode:d=>({key:e.fixed32.decode(d),path:e.string.decode(d),version:e.uint.decode(d),size:e.uint.decode(d)})},f={preencode(d,o){e.fixed32.preencode(d,o.key),a.preencode(d,o.blob)},encode(d,o){e.fixed32.encode(d,o.key),a.encode(d,o.blob)},decode:d=>({key:e.fixed32.decode(d),blob:a.decode(d)})},m=e.frame(f),y=e.frame(u),b={preencode(o,n){o.end++,n.inlined&&e.buffer.preencode(o,n.inlined),n.blob&&a.preencode(o,n.blob),n.externalBlob&&m.preencode(o,n.externalBlob),n.externalDrive&&y.preencode(o,n.externalDrive),d>=37&&n.bee&&_i.preencode(o,n.bee)},encode(o,n){const c=(n.inlined?1:0)|(n.blob?2:0)|(n.externalBlob?4:0)|(n.externalDrive?8:0)|(d>=37&&n.bee?16:0);e.uint.encode(o,c),n.inlined&&e.buffer.encode(o,n.inlined),n.blob&&a.encode(o,n.blob),n.externalBlob&&m.encode(o,n.externalBlob),n.externalDrive&&y.encode(o,n.externalDrive),d>=37&&n.bee&&_i.encode(o,n.bee)},decode(o){const n=e.uint.decode(o);return{inlined:1&n?e.buffer.decode(o):null,blob:2&n?a.decode(o):null,externalBlob:4&n?m.decode(o):null,externalDrive:8&n?y.decode(o):null,bee:d>=37&&16&n?_i.decode(o):null}}},x=e.frame(b),v=e.frame(l),k={preencode(d,o){x.preencode(d,o.pointer),d.end++,o.metadata&&v.preencode(d,o.metadata),o.preview&&wa.preencode(d,o.preview),o.hash&&e.fixed32.preencode(d,o.hash)},encode(d,o){const n=(o.metadata?1:0)|(o.preview?2:0)|(o.hash?4:0);x.encode(d,o.pointer),e.uint.encode(d,n),o.metadata&&v.encode(d,o.metadata),o.preview&&wa.encode(d,o.preview),o.hash&&e.fixed32.encode(d,o.hash)},decode(d){const o=x.decode(d),n=e.uint.decode(d);return{pointer:o,metadata:1&n?v.decode(d):null,preview:2&n?wa.decode(d):null,hash:4&n?e.fixed32.decode(d):null}}},g=e.frame(k),K=g,h=g,w={preencode(e,d){e.end++,d.small&&g.preencode(e,d.small),d.medium&&K.preencode(e,d.medium),d.large&&h.preencode(e,d.large)},encode(d,o){const n=(o.small?1:0)|(o.medium?2:0)|(o.large?4:0);e.uint.encode(d,n),o.small&&g.encode(d,o.small),o.medium&&K.encode(d,o.medium),o.large&&h.encode(d,o.large)},decode(d){const o=e.uint.decode(d);return{small:1&o?g.decode(d):null,medium:2&o?K.decode(d):null,large:4&o?h.decode(d):null}}},P={preencode(e,d){e.end++},encode(d,o){const n=o.isDeleted?1:0;e.uint.encode(d,n)},decode:d=>({isDeleted:!!(1&e.uint.decode(d))})},T=e.frame(P),R=g,A={preencode(o,c){e.uint.preencode(o,c.id),n.preencode(o,c.oplog),T.preencode(o,c.status),R.preencode(o,c.file),o.end++,d>=22&&c.version&&e.uint.preencode(o,c.version)},encode(o,c){const r=d>=22&&c.version?1:0;e.uint.encode(o,c.id),n.encode(o,c.oplog),T.encode(o,c.status),R.encode(o,c.file),e.uint.encode(o,r),d>=22&&c.version&&e.uint.encode(o,c.version)},decode(o){const c=e.uint.decode(o),r=n.decode(o),t=T.decode(o),i=R.decode(o),a=o.start<o.end?e.uint.decode(o):0;return{id:c,oplog:r,status:t,file:i,version:d>=22&&1&a?e.uint.decode(o):0}}},S={preencode(e,d){e.end++},encode(d,o){const n=(o.isActive?1:0)|(o.isIndexing?2:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isActive:!!(1&o),isIndexing:!!(2&o)}}},I={preencode(o,n){const c=(n.isAdmin?1:0)|(n.isModerator?2:0)|(n.isPending?4:0)|(n.isActive?8:0)|(n.isMuted?16:0)|(n.isBanned?32:0)|(n.isShadowBanned?64:0)|(d>=19&&n.isRemoved?128:0);e.uint.preencode(o,c)},encode(o,n){const c=(n.isAdmin?1:0)|(n.isModerator?2:0)|(n.isPending?4:0)|(n.isActive?8:0)|(n.isMuted?16:0)|(n.isBanned?32:0)|(n.isShadowBanned?64:0)|(d>=19&&n.isRemoved?128:0);e.uint.encode(o,c)},decode(o){const n=e.uint.decode(o);return{isAdmin:!!(1&n),isModerator:!!(2&n),isPending:!!(4&n),isActive:!!(8&n),isMuted:!!(16&n),isBanned:!!(32&n),isShadowBanned:!!(64&n),isRemoved:d>=19&&!!(128&n)}}},F={preencode(e,d){e.end++},encode(d,o){const n=(o.isMuted?1:0)|(o.isBanned?2:0)|(o.isShadowBanned?4:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isMuted:!!(1&o),isBanned:!!(2&o),isShadowBanned:!!(4&o)}}},M={preencode(d,o){e.uint.preencode(d,o.version)},encode(d,o){e.uint.encode(d,o.version)},decode:d=>({version:e.uint.decode(d)})},C={preencode(d,o){e.uint.preencode(d,o.total),e.uint.preencode(d,o.active)},encode(d,o){e.uint.encode(d,o.total),e.uint.encode(d,o.active)},decode:d=>({total:e.uint.decode(d),active:e.uint.decode(d)})},V={preencode(d,o){e.uint.preencode(d,o.total),e.uint.preencode(d,o.active),e.uint.preencode(d,o.pending)},encode(d,o){e.uint.encode(d,o.total),e.uint.encode(d,o.active),e.uint.encode(d,o.pending)},decode:d=>({total:e.uint.decode(d),active:e.uint.decode(d),pending:e.uint.decode(d)})},H={preencode(o,n){e.uint.preencode(o,n.clock),e.uint.preencode(o,n.pinned),e.uint.preencode(o,n.threads),e.uint.preencode(o,n.timestamp),o.end++,d>=24&&n.flagsClock&&e.uint.preencode(o,n.flagsClock)},encode(o,n){const c=d>=24&&n.flagsClock?1:0;e.uint.encode(o,n.clock),e.uint.encode(o,n.pinned),e.uint.encode(o,n.threads),e.uint.encode(o,n.timestamp),e.uint.encode(o,c),d>=24&&n.flagsClock&&e.uint.encode(o,n.flagsClock)},decode(o){const n=e.uint.decode(o),c=e.uint.decode(o),r=e.uint.decode(o),t=e.uint.decode(o),i=o.start<o.end?e.uint.decode(o):0;return{clock:n,pinned:c,threads:r,timestamp:t,flagsClock:d>=24&&1&i?e.uint.decode(o):0}}},D={preencode(d,o){e.uint.preencode(d,o.clock)},encode(d,o){e.uint.encode(d,o.clock)},decode:d=>({clock:e.uint.decode(d)})},L=e.frame(C),q=e.frame(V),j=e.frame(H),E=e.frame(D),B={preencode(e,o){L.preencode(e,o.devices),q.preencode(e,o.members),j.preencode(e,o.chat),E.preencode(e,o.files),e.end++,d>=36&&o.calls&&Pa.preencode(e,o.calls)},encode(o,n){const c=d>=36&&n.calls?1:0;L.encode(o,n.devices),q.encode(o,n.members),j.encode(o,n.chat),E.encode(o,n.files),e.uint.encode(o,c),d>=36&&n.calls&&Pa.encode(o,n.calls)},decode(o){const n=L.decode(o),c=q.decode(o),r=j.decode(o),t=E.decode(o),i=o.start<o.end?e.uint.decode(o):0;return{devices:n,members:c,chat:r,files:t,calls:d>=36&&1&i?Pa.decode(o):null}}},z={Default:1,Broadcast:2,DirectMessage:3},O={preencode(e,d){e.end++},encode(d,o){if(o>3)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},N={preencode(o,n){const c=(n.roomType?1:0)|(n.isExperimental?2:0)|(n.isJoiningDisabled?4:0)|(n.isAppendingDisabled?8:0)|(n.isCallingDisabled?16:0)|(n.isMembershipEventsDisabled?32:0)|(d>=28&&n.isAttachmentsDisabled?64:0)|(d>=28&&n.isLinksDisabled?128:0)|(d>=29&&n.buildType?256:0)|(d>=33&&n.isRoomInviteHidden?512:0);e.uint.preencode(o,c),n.roomType&&O.preencode(o,n.roomType),d>=29&&n.buildType&&xi.preencode(o,n.buildType)},encode(o,n){const c=(n.roomType?1:0)|(n.isExperimental?2:0)|(n.isJoiningDisabled?4:0)|(n.isAppendingDisabled?8:0)|(n.isCallingDisabled?16:0)|(n.isMembershipEventsDisabled?32:0)|(d>=28&&n.isAttachmentsDisabled?64:0)|(d>=28&&n.isLinksDisabled?128:0)|(d>=29&&n.buildType?256:0)|(d>=33&&n.isRoomInviteHidden?512:0);e.uint.encode(o,c),n.roomType&&O.encode(o,n.roomType),d>=29&&n.buildType&&xi.encode(o,n.buildType)},decode(o){const n=e.uint.decode(o);return{roomType:1&n?O.decode(o):0,isExperimental:!!(2&n),isJoiningDisabled:!!(4&n),isAppendingDisabled:!!(8&n),isCallingDisabled:!!(16&n),isMembershipEventsDisabled:!!(32&n),isAttachmentsDisabled:d>=28&&!!(64&n),isLinksDisabled:d>=28&&!!(128&n),buildType:d>=29&&256&n?xi.decode(o):null,isRoomInviteHidden:d>=33&&!!(512&n)}}},U=e.frame(M),J=e.frame(N),W={preencode(d,o){U.preencode(d,o.abi),J.preencode(d,o.settings),e.uint.preencode(d,o.creationTime)},encode(d,o){U.encode(d,o.abi),J.encode(d,o.settings),e.uint.encode(d,o.creationTime)},decode:d=>({abi:U.decode(d),settings:J.decode(d),creationTime:e.uint.decode(d)})},G={preencode(d,o){e.fixed32.preencode(d,o.seed)},encode(d,o){e.fixed32.encode(d,o.seed)},decode:d=>({seed:e.fixed32.decode(d)})},Q={preencode(d,o){c.preencode(d,o.mailboxKeyPair),r.preencode(d,o.discoveryKeyPair),e.fixed32.preencode(d,o.wakeupTopic),e.fixed32.preencode(d,o.swarmTopic)},encode(d,o){c.encode(d,o.mailboxKeyPair),r.encode(d,o.discoveryKeyPair),e.fixed32.encode(d,o.wakeupTopic),e.fixed32.encode(d,o.swarmTopic)},decode:d=>({mailboxKeyPair:c.decode(d),discoveryKeyPair:r.decode(d),wakeupTopic:e.fixed32.decode(d),swarmTopic:e.fixed32.decode(d)})},X=e.array(e.fixed32),Y={preencode(o,n){o.end++,n.title&&e.string.preencode(o,n.title),n.avatar&&Ta.preencode(o,n.avatar),n.description&&e.string.preencode(o,n.description),d>=17&&n.supportedLanguages&&Ra.preencode(o,n.supportedLanguages),d>=19&&n.blindPeers&&X.preencode(o,n.blindPeers)},encode(o,n){const c=(n.title?1:0)|(n.avatar?2:0)|(n.description?4:0)|(d>=17&&n.supportedLanguages?8:0)|(d>=19&&n.blindPeers?16:0);e.uint.encode(o,c),n.title&&e.string.encode(o,n.title),n.avatar&&Ta.encode(o,n.avatar),n.description&&e.string.encode(o,n.description),d>=17&&n.supportedLanguages&&Ra.encode(o,n.supportedLanguages),d>=19&&n.blindPeers&&X.encode(o,n.blindPeers)},decode(o){const n=e.uint.decode(o);return{title:1&n?e.string.decode(o):null,avatar:2&n?Ta.decode(o):null,description:4&n?e.string.decode(o):null,supportedLanguages:d>=17&&8&n?Ra.decode(o):null,blindPeers:d>=19&&16&n?X.decode(o):null}}},Z={preencode(d,o){e.fixed32.preencode(d,o.key)},encode(d,o){e.fixed32.encode(d,o.key)},decode:d=>({key:e.fixed32.decode(d)})},$=e.frame(i),_=e.frame(Z),ee={preencode(e,d){$.preencode(e,d.header),_.preencode(e,d.peer)},encode(e,d){$.encode(e,d.header),_.encode(e,d.peer)},decode:e=>({header:$.decode(e),peer:_.decode(e)})},de=$,oe={preencode(d,o){de.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){de.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:de.decode(d),key:e.fixed32.decode(d)})},ne={preencode(d,o){e.fixed32.preencode(d,o.memberKey),e.buffer.preencode(d,o.proof)},encode(d,o){e.fixed32.encode(d,o.memberKey),e.buffer.encode(d,o.proof)},decode:d=>({memberKey:e.fixed32.decode(d),proof:e.buffer.decode(d)})},ce={preencode(d,o){e.fixed32.preencode(d,o.id),e.buffer.preencode(d,o.response)},encode(d,o){e.fixed32.encode(d,o.id),e.buffer.encode(d,o.response)},decode:d=>({id:e.fixed32.decode(d),response:e.buffer.decode(d)})},re=e.frame(S),te=e.frame(ce),ie={preencode(d,o){e.fixed32.preencode(d,o.key),e.fixed32.preencode(d,o.memberKey),re.preencode(d,o.status),Aa.preencode(d,o.profile),d.end++,o.invitation&&te.preencode(d,o.invitation)},encode(d,o){const n=o.invitation?1:0;e.fixed32.encode(d,o.key),e.fixed32.encode(d,o.memberKey),re.encode(d,o.status),Aa.encode(d,o.profile),e.uint.encode(d,n),o.invitation&&te.encode(d,o.invitation)},decode:d=>({key:e.fixed32.decode(d),memberKey:e.fixed32.decode(d),status:re.decode(d),profile:Aa.decode(d),invitation:1&e.uint.decode(d)?te.decode(d):null})},ae={preencode(d,o){e.uint.preencode(d,o.timestamp),d.end++,o.mailbox&&e.fixed32.preencode(d,o.mailbox),o.displayName&&e.string.preencode(d,o.displayName),o.avatar&&Sa.preencode(d,o.avatar),o.username&&e.string.preencode(d,o.username)},encode(d,o){const n=(o.mailbox?1:0)|(o.displayName?2:0)|(o.avatar?4:0)|(o.username?8:0);e.uint.encode(d,o.timestamp),e.uint.encode(d,n),o.mailbox&&e.fixed32.encode(d,o.mailbox),o.displayName&&e.string.encode(d,o.displayName),o.avatar&&Sa.encode(d,o.avatar),o.username&&e.string.encode(d,o.username)},decode(d){const o=e.uint.decode(d),n=e.uint.decode(d);return{timestamp:o,mailbox:1&n?e.fixed32.decode(d):null,displayName:2&n?e.string.decode(d):null,avatar:4&n?Sa.decode(d):null,username:8&n?e.string.decode(d):null}}},se={preencode(o,n){o.end++,n.swarmKey&&e.fixed32.preencode(o,n.swarmKey),n.name&&e.string.preencode(o,n.name),d>=29&&n.buildType&&xi.preencode(o,n.buildType)},encode(o,n){const c=(n.swarmKey?1:0)|(n.name?2:0)|(n.isMobile?4:0)|(d>=29&&n.buildType?8:0);e.uint.encode(o,c),n.swarmKey&&e.fixed32.encode(o,n.swarmKey),n.name&&e.string.encode(o,n.name),d>=29&&n.buildType&&xi.encode(o,n.buildType)},decode(o){const n=e.uint.decode(o);return{swarmKey:1&n?e.fixed32.decode(o):null,name:2&n?e.string.decode(o):null,isMobile:!!(4&n),buildType:d>=29&&8&n?xi.decode(o):null}}},pe=e.frame(ae),le={preencode(e,d){pe.preencode(e,d.profile),ne.preencode(e,d.attestation)},encode(e,d){pe.encode(e,d.profile),ne.encode(e,d.attestation)},decode:e=>({profile:pe.decode(e),attestation:ne.decode(e)})},ue={preencode(e,d){Ia.preencode(e,d.profile),ne.preencode(e,d.attestation)},encode(e,d){Ia.encode(e,d.profile),ne.encode(e,d.attestation)},decode:e=>({profile:Ia.decode(e),attestation:ne.decode(e)})},fe={preencode(d,o){e.fixed32.preencode(d,o.id),e.buffer.preencode(d,o.data),e.buffer.preencode(d,o.signature)},encode(d,o){e.fixed32.encode(d,o.id),e.buffer.encode(d,o.data),e.buffer.encode(d,o.signature)},decode:d=>({id:e.fixed32.decode(d),data:e.buffer.decode(d),signature:e.buffer.decode(d)})},me={preencode(d,o){e.fixed32.preencode(d,o.devicePublicKey)},encode(d,o){e.fixed32.encode(d,o.devicePublicKey)},decode:d=>({devicePublicKey:e.fixed32.decode(d)})},ye={preencode(d,o){ne.preencode(d,o.privateProfileIdentity),e.buffer.preencode(d,o.deviceProof)},encode(d,o){ne.encode(d,o.privateProfileIdentity),e.buffer.encode(d,o.deviceProof)},decode:d=>({privateProfileIdentity:ne.decode(d),deviceProof:e.buffer.decode(d)})},be=e.frame(ue),xe=e.frame(le),ve=e.frame(me),ke={preencode(n,c){e.fixed32.preencode(n,c.deviceKey),r.preencode(n,c.keyPair),be.preencode(n,c.device),xe.preencode(n,c.member),n.end++,c.identity&&ve.preencode(n,c.identity),d>=37&&c.link&&o.preencode(n,c.link)},encode(n,c){const t=(c.identity?1:0)|(d>=37&&c.link?2:0);e.fixed32.encode(n,c.deviceKey),r.encode(n,c.keyPair),be.encode(n,c.device),xe.encode(n,c.member),e.uint.encode(n,t),c.identity&&ve.encode(n,c.identity),d>=37&&c.link&&o.encode(n,c.link)},decode(n){const c=e.fixed32.decode(n),t=r.decode(n),i=be.decode(n),a=xe.decode(n),s=e.uint.decode(n);return{deviceKey:c,keyPair:t,device:i,member:a,identity:1&s?ve.decode(n):null,link:d>=37&&2&s?o.decode(n):null}}},ge=e.frame(ke),Ke={preencode(d,o){e.fixed32.preencode(d,o.id),ge.preencode(d,o.request),e.buffer.preencode(d,o.signature)},encode(d,o){e.fixed32.encode(d,o.id),ge.encode(d,o.request),e.buffer.encode(d,o.signature)},decode:d=>({id:e.fixed32.decode(d),request:ge.decode(d),signature:e.buffer.decode(d)})},he=be,we=xe,Pe={preencode(e,d){he.preencode(e,d.device),e.end++,d.member&&we.preencode(e,d.member)},encode(d,o){const n=o.member?1:0;he.encode(d,o.device),e.uint.encode(d,n),o.member&&we.encode(d,o.member)},decode:d=>({device:he.decode(d),member:1&e.uint.decode(d)?we.decode(d):null})},Te=e.frame(Ke),Re=e.frame(Pe),Ae={preencode(e,d){e.end++,d.withInvitation&&Te.preencode(e,d.withInvitation),d.withMemberProof&&Re.preencode(e,d.withMemberProof)},encode(d,o){const n=(o.withInvitation?1:0)|(o.withMemberProof?2:0);e.uint.encode(d,n),o.withInvitation&&Te.encode(d,o.withInvitation),o.withMemberProof&&Re.encode(d,o.withMemberProof)},decode(d){const o=e.uint.decode(d);return{withInvitation:1&o?Te.decode(d):null,withMemberProof:2&o?Re.decode(d):null}}},Se=e.frame(fe),Ie=e.frame(ye),Fe={preencode(e,d){Se.preencode(e,d.signedKeys),e.end++,d.identity&&Ie.preencode(e,d.identity)},encode(d,o){const n=o.identity?1:0;Se.encode(d,o.signedKeys),e.uint.encode(d,n),o.identity&&Ie.encode(d,o.identity)},decode:d=>({signedKeys:Se.decode(d),identity:1&e.uint.decode(d)?Ie.decode(d):null})},Me={preencode(o,n){o.end++,n.expiration&&e.uint.preencode(o,n.expiration),d>=29&&n.buildType&&xi.preencode(o,n.buildType)},encode(o,n){const c=(n.expiration?1:0)|(n.requiresConfirmation?2:0)|(n.canModerate?4:0)|(n.canAdmin?8:0)|(d>=29&&n.buildType?16:0);e.uint.encode(o,c),n.expiration&&e.uint.encode(o,n.expiration),d>=29&&n.buildType&&xi.encode(o,n.buildType)},decode(o){const n=e.uint.decode(o);return{expiration:1&n?e.uint.decode(o):0,requiresConfirmation:!!(2&n),canModerate:!!(4&n),canAdmin:!!(8&n),buildType:d>=29&&16&n?xi.decode(o):null}}},Ce=Se,Ve=e.frame(Me),He={preencode(d,n){e.fixed32.preencode(d,n.id),Ce.preencode(d,n.response),Ve.preencode(d,n.metadata),d.end++,n.anchor&&o.preencode(d,n.anchor)},encode(d,n){const c=(n.anchor?1:0)|(n.isActive?2:0);e.fixed32.encode(d,n.id),Ce.encode(d,n.response),Ve.encode(d,n.metadata),e.uint.encode(d,c),n.anchor&&o.encode(d,n.anchor)},decode(d){const n=e.fixed32.decode(d),c=Ce.decode(d),r=Ve.decode(d),t=e.uint.decode(d);return{id:n,response:c,metadata:r,anchor:1&t?o.decode(d):null,isActive:!!(2&t)}}},De=$,Le=e.frame(He),qe={preencode(e,d){De.preencode(e,d.header),Le.preencode(e,d.invitation)},encode(e,d){De.encode(e,d.header),Le.encode(e,d.invitation)},decode:e=>({header:De.decode(e),invitation:Le.decode(e)})},je=$,Ee={preencode(d,o){je.preencode(d,o.header),e.fixed32.preencode(d,o.id)},encode(d,o){je.encode(d,o.header),e.fixed32.encode(d,o.id)},decode:d=>({header:je.decode(d),id:e.fixed32.decode(d)})},Be={preencode(d,n){e.fixed32.preencode(d,n.mailbox),e.fixed32.preencode(d,n.invitationSeed),o.preencode(d,n.anchor)},encode(d,n){e.fixed32.encode(d,n.mailbox),e.fixed32.encode(d,n.invitationSeed),o.encode(d,n.anchor)},decode:d=>({mailbox:e.fixed32.decode(d),invitationSeed:e.fixed32.decode(d),anchor:o.decode(d)})},ze={preencode(d,n){e.fixed32.preencode(d,n.mailbox),e.fixed32.preencode(d,n.invitationSeed),o.preencode(d,n.anchor),e.fixed32.preencode(d,n.identityPublicKey)},encode(d,n){e.fixed32.encode(d,n.mailbox),e.fixed32.encode(d,n.invitationSeed),o.encode(d,n.anchor),e.fixed32.encode(d,n.identityPublicKey)},decode:d=>({mailbox:e.fixed32.decode(d),invitationSeed:e.fixed32.decode(d),anchor:o.decode(d),identityPublicKey:e.fixed32.decode(d)})},Oe={preencode(d,o){e.fixed32.preencode(d,o.mailbox)},encode(d,o){e.fixed32.encode(d,o.mailbox)},decode:d=>({mailbox:e.fixed32.decode(d)})},Ne=e.frame(Be),Ue=e.frame(ze),Je=e.frame(Oe),We=e.array(e.ipv4Address),Ge={preencode(e,o){e.end++,o.room&&Ne.preencode(e,o.room),o.identity&&Ue.preencode(e,o.identity),o.contact&&Je.preencode(e,o.contact),d>=9&&o.readonly&&Fa.preencode(e,o.readonly),d>=17&&o.additionalNodes&&We.preencode(e,o.additionalNodes),d>=29&&o.buildType&&xi.preencode(e,o.buildType),d>=37&&o["readonly-v2"]&&Ma.preencode(e,o["readonly-v2"])},encode(o,n){const c=(n.room?1:0)|(n.identity?2:0)|(n.contact?4:0)|(d>=9&&n.readonly?8:0)|(d>=17&&n.additionalNodes?16:0)|(d>=29&&n.buildType?32:0)|(d>=37&&n["readonly-v2"]?64:0);e.uint.encode(o,c),n.room&&Ne.encode(o,n.room),n.identity&&Ue.encode(o,n.identity),n.contact&&Je.encode(o,n.contact),d>=9&&n.readonly&&Fa.encode(o,n.readonly),d>=17&&n.additionalNodes&&We.encode(o,n.additionalNodes),d>=29&&n.buildType&&xi.encode(o,n.buildType),d>=37&&n["readonly-v2"]&&Ma.encode(o,n["readonly-v2"])},decode(o){const n=e.uint.decode(o);return{room:1&n?Ne.decode(o):null,identity:2&n?Ue.decode(o):null,contact:4&n?Je.decode(o):null,readonly:d>=9&&8&n?Fa.decode(o):null,additionalNodes:d>=17&&16&n?We.decode(o):null,buildType:d>=29&&32&n?xi.decode(o):null,"readonly-v2":d>=37&&64&n?Ma.decode(o):null}}},Qe=$,Xe={preencode(d,o){Qe.preencode(d,o.header),e.buffer.preencode(d,o.blindRequest)},encode(d,o){Qe.encode(d,o.header),e.buffer.encode(d,o.blindRequest)},decode:d=>({header:Qe.decode(d),blindRequest:e.buffer.decode(d)})},Ye=$,Ze={preencode(o,n){Ye.preencode(o,n.header),o.end++,n.profile&&Ca.preencode(o,n.profile),d>=34&&n.key&&e.fixed32.preencode(o,n.key)},encode(o,n){const c=(n.profile?1:0)|(d>=34&&n.key?2:0);Ye.encode(o,n.header),e.uint.encode(o,c),n.profile&&Ca.encode(o,n.profile),d>=34&&n.key&&e.fixed32.encode(o,n.key)},decode(o){const n=Ye.decode(o),c=e.uint.decode(o);return{header:n,profile:1&c?Ca.decode(o):null,key:d>=34&&2&c?e.fixed32.decode(o):null}}},$e={preencode(e,d){},encode(e,d){},decode:e=>({})},_e=$e,ed=ge,dd={preencode(d,o){e.fixed32.preencode(d,o.deviceKey),e.fixed32.preencode(d,o.id),ed.preencode(d,o.request)},encode(d,o){e.fixed32.encode(d,o.deviceKey),e.fixed32.encode(d,o.id),ed.encode(d,o.request)},decode:d=>({deviceKey:e.fixed32.decode(d),id:e.fixed32.decode(d),request:ed.decode(d)})},od=$,nd=Ie,cd={preencode(d,o){od.preencode(d,o.header),e.fixed32.preencode(d,o.deviceKey),d.end++,o.identity&&nd.preencode(d,o.identity)},encode(d,o){const n=o.identity?1:0;od.encode(d,o.header),e.fixed32.encode(d,o.deviceKey),e.uint.encode(d,n),o.identity&&nd.encode(d,o.identity)},decode:d=>({header:od.decode(d),deviceKey:e.fixed32.decode(d),identity:1&e.uint.decode(d)?nd.decode(d):null})},rd=$,td={preencode(d,o){rd.preencode(d,o.header),e.fixed32.preencode(d,o.deviceKey)},encode(d,o){rd.encode(d,o.header),e.fixed32.encode(d,o.deviceKey)},decode:d=>({header:rd.decode(d),deviceKey:e.fixed32.decode(d)})},id=e.frame(I),ad=pe,sd={preencode(d,o){e.fixed32.preencode(d,o.key),id.preencode(d,o.status),ad.preencode(d,o.profile)},encode(d,o){e.fixed32.encode(d,o.key),id.encode(d,o.status),ad.encode(d,o.profile)},decode:d=>({key:e.fixed32.decode(d),status:id.decode(d),profile:ad.decode(d)})},pd=id,ld=pe,ud={preencode(d,o){e.fixed32.preencode(d,o.key),pd.preencode(d,o.status),ld.preencode(d,o.profile),d.end++,o.proofs&&Va.preencode(d,o.proofs)},encode(d,o){const n=o.proofs?1:0;e.fixed32.encode(d,o.key),pd.encode(d,o.status),ld.encode(d,o.profile),e.uint.encode(d,n),o.proofs&&Va.encode(d,o.proofs)},decode:d=>({key:e.fixed32.decode(d),status:pd.decode(d),profile:ld.decode(d),proofs:1&e.uint.decode(d)?Va.decode(d):null})},fd={preencode(d,o){e.fixed32.preencode(d,o.key),d.end++,o.profileAttestation&&e.buffer.preencode(d,o.profileAttestation),o.latestReceipt&&e.buffer.preencode(d,o.latestReceipt)},encode(d,o){const n=(o.profileAttestation?1:0)|(o.latestReceipt?2:0);e.fixed32.encode(d,o.key),e.uint.encode(d,n),o.profileAttestation&&e.buffer.encode(d,o.profileAttestation),o.latestReceipt&&e.buffer.encode(d,o.latestReceipt)},decode(d){const o=e.fixed32.decode(d),n=e.uint.decode(d);return{key:o,profileAttestation:1&n?e.buffer.decode(d):null,latestReceipt:2&n?e.buffer.decode(d):null}}},md=$,yd=xe,bd={preencode(e,d){md.preencode(e,d.header),yd.preencode(e,d.member)},encode(e,d){md.encode(e,d.header),yd.encode(e,d.member)},decode:e=>({header:md.decode(e),member:yd.decode(e)})},xd=$,vd=e.frame(F),kd={preencode(d,o){xd.preencode(d,o.header),e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.key),vd.preencode(d,o.status)},encode(d,o){xd.encode(d,o.header),e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.key),vd.encode(d,o.status)},decode:d=>({header:xd.decode(d),memberKey:e.fixed32.decode(d),key:e.uint.decode(d),status:vd.decode(d)})},gd=$,Kd={preencode(d,o){gd.preencode(d,o.header),e.fixed32.preencode(d,o.key),d.end++},encode(d,o){const n=(o.isModerator?1:0)|(o.isAdmin?2:0);gd.encode(d,o.header),e.fixed32.encode(d,o.key),e.uint.encode(d,n)},decode(d){const o=gd.decode(d),n=e.fixed32.decode(d),c=e.uint.decode(d);return{header:o,key:n,isModerator:!!(1&c),isAdmin:!!(2&c)}}},hd=$,wd={preencode(d,o){hd.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){hd.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:hd.decode(d),key:e.fixed32.decode(d)})},Pd={preencode(d,o){e.fixed32.preencode(d,o.key),e.uint.preencode(d,o.mentions)},encode(d,o){e.fixed32.encode(d,o.key),e.uint.encode(d,o.mentions)},decode:d=>({key:e.fixed32.decode(d),mentions:e.uint.decode(d)})},Td={preencode(d,o){d.end++,o.memberKey&&e.fixed32.preencode(d,o.memberKey)},encode(d,o){const n=o.memberKey?1:0;e.uint.encode(d,n),o.memberKey&&e.fixed32.encode(d,o.memberKey)},decode:d=>({memberKey:1&e.uint.decode(d)?e.fixed32.decode(d):null})},Rd=Td,Ad={preencode(d,o){d.end++,o.from&&e.string.preencode(d,o.from),o.to&&e.string.preencode(d,o.to)},encode(d,o){const n=(o.from?1:0)|(o.to?2:0);e.uint.encode(d,n),o.from&&e.string.encode(d,o.from),o.to&&e.string.encode(d,o.to)},decode(d){const o=e.uint.decode(d);return{from:1&o?e.string.decode(d):null,to:2&o?e.string.decode(d):null}}},Sd=e.frame(Td),Id=e.frame(Rd),Fd=e.frame(Ad),Md={preencode(o,n){const c=(n.memberJoined?1:0)|(n.memberLeft?2:0)|(n.titleChanged?4:0)|(n.callStarted?8:0)|(n.callHangup?16:0)|(n.callMissed?32:0)|(d>=4&&n.roomAvatarChanged?64:0)|(d>=4&&n.invitationCreated?128:0)|(d>=4&&n.memberRemoved?256:0)|(d>=27&&n.locationShared?512:0);e.uint.preencode(o,c),n.memberJoined&&Sd.preencode(o,n.memberJoined),n.memberLeft&&Id.preencode(o,n.memberLeft),n.titleChanged&&Fd.preencode(o,n.titleChanged),d>=4&&n.memberRemoved&&Ha.preencode(o,n.memberRemoved),d>=27&&n.locationShared&&Da.preencode(o,n.locationShared)},encode(o,n){const c=(n.memberJoined?1:0)|(n.memberLeft?2:0)|(n.titleChanged?4:0)|(n.callStarted?8:0)|(n.callHangup?16:0)|(n.callMissed?32:0)|(d>=4&&n.roomAvatarChanged?64:0)|(d>=4&&n.invitationCreated?128:0)|(d>=4&&n.memberRemoved?256:0)|(d>=27&&n.locationShared?512:0);e.uint.encode(o,c),n.memberJoined&&Sd.encode(o,n.memberJoined),n.memberLeft&&Id.encode(o,n.memberLeft),n.titleChanged&&Fd.encode(o,n.titleChanged),d>=4&&n.memberRemoved&&Ha.encode(o,n.memberRemoved),d>=27&&n.locationShared&&Da.encode(o,n.locationShared)},decode(o){const n=e.uint.decode(o);return{memberJoined:1&n?Sd.decode(o):null,memberLeft:2&n?Id.decode(o):null,titleChanged:4&n?Fd.decode(o):null,callStarted:!!(8&n),callHangup:!!(16&n),callMissed:!!(32&n),roomAvatarChanged:d>=4&&!!(64&n),invitationCreated:d>=4&&!!(128&n),memberRemoved:d>=4&&256&n?Ha.decode(o):null,locationShared:d>=27&&512&n?Da.decode(o):null}}},Cd={preencode(e,o){e.end++,d>=27&&o.locationShared&&La.preencode(e,o.locationShared)},encode(o,n){const c=(n.callStarted?1:0)|(n.callHangup?2:0)|(n.callMissed?4:0)|(d>=27&&n.locationShared?8:0);e.uint.encode(o,c),d>=27&&n.locationShared&&La.encode(o,n.locationShared)},decode(o){const n=e.uint.decode(o);return{callStarted:!!(1&n),callHangup:!!(2&n),callMissed:!!(4&n),locationShared:d>=27&&8&n?La.decode(o):null}}},Vd={preencode(d,o){e.uint.preencode(d,o.start),e.uint.preencode(d,o.length)},encode(d,o){e.uint.encode(d,o.start),e.uint.encode(d,o.length)},decode:d=>({start:e.uint.decode(d),length:e.uint.decode(d)})},Hd=e.frame(Vd),Dd={preencode(d,o){Hd.preencode(d,o.range),e.string.preencode(d,o.content)},encode(d,o){Hd.encode(d,o.range),e.string.encode(d,o.content)},decode:d=>({range:Hd.decode(d),content:e.string.decode(d)})},Ld=Hd,qd={preencode(d,o){Ld.preencode(d,o.range),e.fixed32.preencode(d,o.memberKey)},encode(d,o){Ld.encode(d,o.range),e.fixed32.encode(d,o.memberKey)},decode:d=>({range:Ld.decode(d),memberKey:e.fixed32.decode(d)})},jd=g,Ed=e.array(e.uint),Bd={preencode(o,n){o.end++,n.title&&e.string.preencode(o,n.title),n.description&&e.string.preencode(o,n.description),n.file&&jd.preencode(o,n.file),d>=12&&n.files&&Ed.preencode(o,n.files)},encode(o,n){const c=(n.title?1:0)|(n.description?2:0)|(n.file?4:0)|(d>=12&&n.files?8:0);e.uint.encode(o,c),n.title&&e.string.encode(o,n.title),n.description&&e.string.encode(o,n.description),n.file&&jd.encode(o,n.file),d>=12&&n.files&&Ed.encode(o,n.files)},decode(o){const n=e.uint.decode(o);return{title:1&n?e.string.decode(o):null,description:2&n?e.string.decode(o):null,file:4&n?jd.decode(o):null,files:d>=12&&8&n?Ed.decode(o):null}}},zd=Hd,Od=e.frame(Bd),Nd={preencode(d,o){zd.preencode(d,o.range),e.string.preencode(d,o.url),d.end++,o.preview&&Od.preencode(d,o.preview)},encode(d,o){const n=o.preview?1:0;zd.encode(d,o.range),e.string.encode(d,o.url),e.uint.encode(d,n),o.preview&&Od.encode(d,o.preview)},decode:d=>({range:zd.decode(d),url:e.string.decode(d),preview:1&e.uint.decode(d)?Od.decode(d):null})},Ud=e.array(e.frame(qd)),Jd=e.array(e.frame(Nd)),Wd=Jd,Gd=e.array(e.frame(Vd)),Qd=Gd,Xd=Gd,Yd=e.array(e.frame(Dd)),Zd=Gd,$d=Gd,_d={preencode(o,n){const c=(n.mention?1:0)|(n.httpLink?2:0)|(n.pearLink?4:0)|(n.bold?8:0)|(n.italic?16:0)|(n.code?32:0)|(n.emoji?64:0)|(n.codeBlock?128:0)|(n.strike?256:0)|(d>=17&&n.translation?512:0);e.uint.preencode(o,c),n.mention&&Ud.preencode(o,n.mention),n.httpLink&&Jd.preencode(o,n.httpLink),n.pearLink&&Wd.preencode(o,n.pearLink),n.bold&&Gd.preencode(o,n.bold),n.italic&&Qd.preencode(o,n.italic),n.code&&Xd.preencode(o,n.code),n.emoji&&Yd.preencode(o,n.emoji),n.codeBlock&&Zd.preencode(o,n.codeBlock),n.strike&&$d.preencode(o,n.strike),d>=17&&n.translation&&qa.preencode(o,n.translation)},encode(o,n){const c=(n.mention?1:0)|(n.httpLink?2:0)|(n.pearLink?4:0)|(n.bold?8:0)|(n.italic?16:0)|(n.code?32:0)|(n.emoji?64:0)|(n.codeBlock?128:0)|(n.strike?256:0)|(d>=17&&n.translation?512:0);e.uint.encode(o,c),n.mention&&Ud.encode(o,n.mention),n.httpLink&&Jd.encode(o,n.httpLink),n.pearLink&&Wd.encode(o,n.pearLink),n.bold&&Gd.encode(o,n.bold),n.italic&&Qd.encode(o,n.italic),n.code&&Xd.encode(o,n.code),n.emoji&&Yd.encode(o,n.emoji),n.codeBlock&&Zd.encode(o,n.codeBlock),n.strike&&$d.encode(o,n.strike),d>=17&&n.translation&&qa.encode(o,n.translation)},decode(o){const n=e.uint.decode(o);return{mention:1&n?Ud.decode(o):null,httpLink:2&n?Jd.decode(o):null,pearLink:4&n?Wd.decode(o):null,bold:8&n?Gd.decode(o):null,italic:16&n?Qd.decode(o):null,code:32&n?Xd.decode(o):null,emoji:64&n?Yd.decode(o):null,codeBlock:128&n?Zd.decode(o):null,strike:256&n?$d.decode(o):null,translation:d>=17&&512&n?qa.decode(o):null}}},eo=e.array(e.frame(k)),oo=e.frame(_d),no=e.frame(Cd),co={preencode(d,o){d.end++,o.text&&e.string.preencode(d,o.text),o.files&&eo.preencode(d,o.files),o.display&&oo.preencode(d,o.display),o.replyTo&&n.preencode(d,o.replyTo),o.parent&&n.preencode(d,o.parent),o.event&&no.preencode(d,o.event)},encode(o,c){const r=(c.text?1:0)|(c.files?2:0)|(c.display?4:0)|(c.replyTo?8:0)|(c.parent?16:0)|(c.event?32:0)|(d>=27&&c.forwarded?64:0);e.uint.encode(o,r),c.text&&e.string.encode(o,c.text),c.files&&eo.encode(o,c.files),c.display&&oo.encode(o,c.display),c.replyTo&&n.encode(o,c.replyTo),c.parent&&n.encode(o,c.parent),c.event&&no.encode(o,c.event)},decode(o){const c=e.uint.decode(o);return{text:1&c?e.string.decode(o):null,files:2&c?eo.decode(o):null,display:4&c?oo.decode(o):null,replyTo:8&c?n.decode(o):null,parent:16&c?n.decode(o):null,event:32&c?no.decode(o):null,forwarded:d>=27&&!!(64&c)}}},ro=Ed,to=oo,io={preencode(d,o){d.end++,o.text&&e.string.preencode(d,o.text),o.files&&ro.preencode(d,o.files),o.display&&to.preencode(d,o.display),o.replyTo&&n.preencode(d,o.replyTo),o.parent&&n.preencode(d,o.parent)},encode(o,c){const r=(c.text?1:0)|(c.files?2:0)|(c.display?4:0)|(c.replyTo?8:0)|(c.parent?16:0)|(d>=27&&c.forwarded?32:0);e.uint.encode(o,r),c.text&&e.string.encode(o,c.text),c.files&&ro.encode(o,c.files),c.display&&to.encode(o,c.display),c.replyTo&&n.encode(o,c.replyTo),c.parent&&n.encode(o,c.parent)},decode(o){const c=e.uint.decode(o);return{text:1&c?e.string.decode(o):null,files:2&c?ro.decode(o):null,display:4&c?to.decode(o):null,replyTo:8&c?n.decode(o):null,parent:16&c?n.decode(o):null,forwarded:d>=27&&!!(32&c)}}},ao=eo,so=oo,po={preencode(d,o){d.end++,o.text&&e.string.preencode(d,o.text),o.files&&ao.preencode(d,o.files),o.display&&so.preencode(d,o.display),o.replyTo&&n.preencode(d,o.replyTo),o.parent&&n.preencode(d,o.parent)},encode(o,c){const r=(c.text?1:0)|(c.files?2:0)|(c.display?4:0)|(c.replyTo?8:0)|(c.parent?16:0)|(d>=27&&c.forwarded?32:0);e.uint.encode(o,r),c.text&&e.string.encode(o,c.text),c.files&&ao.encode(o,c.files),c.display&&so.encode(o,c.display),c.replyTo&&n.encode(o,c.replyTo),c.parent&&n.encode(o,c.parent)},decode(o){const c=e.uint.decode(o);return{text:1&c?e.string.decode(o):null,files:2&c?ao.decode(o):null,display:4&c?so.decode(o):null,replyTo:8&c?n.decode(o):null,parent:16&c?n.decode(o):null,forwarded:d>=27&&!!(32&c)}}},lo={preencode(e,d){e.end++},encode(d,o){const n=(o.isEdited?1:0)|(o.isDeleted?2:0)|(o.isPinned?4:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isEdited:!!(1&o),isDeleted:!!(2&o),isPinned:!!(4&o)}}},uo={preencode(d,o){e.uint.preencode(d,o.thread),e.uint.preencode(d,o.index)},encode(d,o){e.uint.encode(d,o.thread),e.uint.encode(d,o.index)},decode:d=>({thread:e.uint.decode(d),index:e.uint.decode(d)})},fo=e.frame(B),mo={preencode(d,o){e.uint.preencode(d,o.id),e.uint.preencode(d,o.count),d.end++,o.parent&&n.preencode(d,o.parent),o.stats&&fo.preencode(d,o.stats)},encode(d,o){const c=(o.parent?1:0)|(o.stats?2:0);e.uint.encode(d,o.id),e.uint.encode(d,o.count),e.uint.encode(d,c),o.parent&&n.encode(d,o.parent),o.stats&&fo.encode(d,o.stats)},decode(d){const o=e.uint.decode(d),c=e.uint.decode(d),r=e.uint.decode(d);return{id:o,count:c,parent:1&r?n.decode(d):null,stats:2&r?fo.decode(d):null}}},yo=e.frame(lo),bo=e.frame(io),xo=e.frame(Md),vo={preencode(d,o){uo.preencode(d,o.id),n.preencode(d,o.oplog),e.uint.preencode(d,o.clock),e.uint.preencode(d,o.timestamp),d.end++,o.editedAt&&e.uint.preencode(d,o.editedAt),yo.preencode(d,o.status),o.message&&bo.preencode(d,o.message),o.event&&xo.preencode(d,o.event)},encode(d,o){const c=(o.editedAt?1:0)|(o.message?2:0)|(o.event?4:0);uo.encode(d,o.id),n.encode(d,o.oplog),e.uint.encode(d,o.clock),e.uint.encode(d,o.timestamp),e.uint.encode(d,c),o.editedAt&&e.uint.encode(d,o.editedAt),yo.encode(d,o.status),o.message&&bo.encode(d,o.message),o.event&&xo.encode(d,o.event)},decode(d){const o=uo.decode(d),c=n.decode(d),r=e.uint.decode(d),t=e.uint.decode(d),i=e.uint.decode(d);return{id:o,oplog:c,clock:r,timestamp:t,editedAt:1&i?e.uint.decode(d):0,status:yo.decode(d),message:2&i?bo.decode(d):null,event:4&i?xo.decode(d):null}}},ko=yo,go=e.frame(po),Ko=xo,ho={preencode(d,o){uo.preencode(d,o.id),n.preencode(d,o.oplog),e.uint.preencode(d,o.clock),e.uint.preencode(d,o.timestamp),d.end++,o.editedAt&&e.uint.preencode(d,o.editedAt),ko.preencode(d,o.status),o.message&&go.preencode(d,o.message),o.event&&Ko.preencode(d,o.event)},encode(d,o){const c=(o.editedAt?1:0)|(o.message?2:0)|(o.event?4:0);uo.encode(d,o.id),n.encode(d,o.oplog),e.uint.encode(d,o.clock),e.uint.encode(d,o.timestamp),e.uint.encode(d,c),o.editedAt&&e.uint.encode(d,o.editedAt),ko.encode(d,o.status),o.message&&go.encode(d,o.message),o.event&&Ko.encode(d,o.event)},decode(d){const o=uo.decode(d),c=n.decode(d),r=e.uint.decode(d),t=e.uint.decode(d),i=e.uint.decode(d);return{id:o,oplog:c,clock:r,timestamp:t,editedAt:1&i?e.uint.decode(d):0,status:ko.decode(d),message:2&i?go.decode(d):null,event:4&i?Ko.decode(d):null}}},wo=$,Po=e.frame(co),To={preencode(e,d){wo.preencode(e,d.header),Po.preencode(e,d.message)},encode(e,d){wo.encode(e,d.header),Po.encode(e,d.message)},decode:e=>({header:wo.decode(e),message:Po.decode(e)})},Ro=$,Ao={preencode(e,d){Ro.preencode(e,d.header),n.preencode(e,d.oplog)},encode(e,d){Ro.encode(e,d.header),n.encode(e,d.oplog)},decode:e=>({header:Ro.decode(e),oplog:n.decode(e)})},So=$,Io=Po,Fo={preencode(e,d){So.preencode(e,d.header),n.preencode(e,d.oplog),Io.preencode(e,d.message)},encode(e,d){So.encode(e,d.header),n.encode(e,d.oplog),Io.encode(e,d.message)},decode:e=>({header:So.decode(e),oplog:n.decode(e),message:Io.decode(e)})},Mo=$,Co={preencode(e,d){Mo.preencode(e,d.header),n.preencode(e,d.oplog),e.end++},encode(d,o){const c=o.isPinned?1:0;Mo.encode(d,o.header),n.encode(d,o.oplog),e.uint.encode(d,c)},decode:d=>({header:Mo.decode(d),oplog:n.decode(d),isPinned:!!(1&e.uint.decode(d))})},Vo={preencode(d,o){uo.preencode(d,o.id),e.fixed32.preencode(d,o.sender),e.uint.preencode(d,o.clock),e.string.preencode(d,o.reaction)},encode(d,o){uo.encode(d,o.id),e.fixed32.encode(d,o.sender),e.uint.encode(d,o.clock),e.string.encode(d,o.reaction)},decode:d=>({id:uo.decode(d),sender:e.fixed32.decode(d),clock:e.uint.decode(d),reaction:e.string.decode(d)})},Ho={preencode(d,o){e.string.preencode(d,o.text),e.uint.preencode(d,o.count)},encode(d,o){e.string.encode(d,o.text),e.uint.encode(d,o.count)},decode:d=>({text:e.string.decode(d),count:e.uint.decode(d)})},Do=e.array(e.frame(Ho)),Lo={preencode(o,n){uo.preencode(o,n.id),e.uint.preencode(o,n.total),Do.preencode(o,n.reactions),o.end++,d>=17&&n.editedAt&&e.uint.preencode(o,n.editedAt)},encode(o,n){const c=d>=17&&n.editedAt?1:0;uo.encode(o,n.id),e.uint.encode(o,n.total),Do.encode(o,n.reactions),e.uint.encode(o,c),d>=17&&n.editedAt&&e.uint.encode(o,n.editedAt)},decode(o){const n=uo.decode(o),c=e.uint.decode(o),r=Do.decode(o),t=o.start<o.end?e.uint.decode(o):0;return{id:n,total:c,reactions:r,editedAt:d>=17&&1&t?e.uint.decode(o):0}}},qo=$,jo={preencode(d,o){qo.preencode(d,o.header),n.preencode(d,o.oplog),e.string.preencode(d,o.reaction)},encode(d,o){qo.encode(d,o.header),n.encode(d,o.oplog),e.string.encode(d,o.reaction)},decode:d=>({header:qo.decode(d),oplog:n.decode(d),reaction:e.string.decode(d)})},Eo=$,Bo={preencode(d,o){Eo.preencode(d,o.header),n.preencode(d,o.oplog),e.string.preencode(d,o.reaction)},encode(d,o){Eo.encode(d,o.header),n.encode(d,o.oplog),e.string.encode(d,o.reaction)},decode:d=>({header:Eo.decode(d),oplog:n.decode(d),reaction:e.string.decode(d)})},zo=$,Oo=e.frame(Y),No={preencode(d,o){zo.preencode(d,o.header),e.uint.preencode(d,o.key),Oo.preencode(d,o.config)},encode(d,o){zo.encode(d,o.header),e.uint.encode(d,o.key),Oo.encode(d,o.config)},decode:d=>({header:zo.decode(d),key:e.uint.decode(d),config:Oo.decode(d)})},Uo={preencode(d,o){e.fixed32.preencode(d,o.memberKey),e.string.preencode(d,o.displayName),d.end++,o.avatar&&ja.preencode(d,o.avatar)},encode(d,o){const n=o.avatar?1:0;e.fixed32.encode(d,o.memberKey),e.string.encode(d,o.displayName),e.uint.encode(d,n),o.avatar&&ja.encode(d,o.avatar)},decode:d=>({memberKey:e.fixed32.decode(d),displayName:e.string.decode(d),avatar:1&e.uint.decode(d)?ja.decode(d):null})},Jo={preencode(d,o){e.fixed32.preencode(d,o.key),d.end++,o.username&&e.string.preencode(d,o.username)},encode(d,o){const n=o.username?1:0;e.fixed32.encode(d,o.key),e.uint.encode(d,n),o.username&&e.string.encode(d,o.username)},decode:d=>({key:e.fixed32.decode(d),username:1&e.uint.decode(d)?e.string.decode(d):null})},Wo=e.frame(Jo),Go={preencode(d,o){e.fixed32.preencode(d,o.publicKey),d.end++,o.discoveryCoreKey&&e.fixed32.preencode(d,o.discoveryCoreKey),o.userRegistry&&Wo.preencode(d,o.userRegistry)},encode(d,o){const n=(o.discoveryCoreKey?1:0)|(o.userRegistry?2:0);e.fixed32.encode(d,o.publicKey),e.uint.encode(d,n),o.discoveryCoreKey&&e.fixed32.encode(d,o.discoveryCoreKey),o.userRegistry&&Wo.encode(d,o.userRegistry)},decode(d){const o=e.fixed32.decode(d),n=e.uint.decode(d);return{publicKey:o,discoveryCoreKey:1&n?e.fixed32.decode(d):null,userRegistry:2&n?Wo.decode(d):null}}},Qo=$,Xo=e.frame(W),Yo=e.frame(G),Zo=Oo,$o=e.frame(Go),_o=be,en=e.array(e.frame(le)),dn={preencode(e,d){Qo.preencode(e,d.header),Xo.preencode(e,d.digest),Yo.preencode(e,d.capabilities),e.end++,d.config&&Zo.preencode(e,d.config),d.identity&&$o.preencode(e,d.identity),d.bootstrapDevice&&_o.preencode(e,d.bootstrapDevice),d.initialMembers&&en.preencode(e,d.initialMembers)},encode(d,o){const n=(o.config?1:0)|(o.identity?2:0)|(o.bootstrapDevice?4:0)|(o.initialMembers?8:0);Qo.encode(d,o.header),Xo.encode(d,o.digest),Yo.encode(d,o.capabilities),e.uint.encode(d,n),o.config&&Zo.encode(d,o.config),o.identity&&$o.encode(d,o.identity),o.bootstrapDevice&&_o.encode(d,o.bootstrapDevice),o.initialMembers&&en.encode(d,o.initialMembers)},decode(d){const o=Qo.decode(d),n=Xo.decode(d),c=Yo.decode(d),r=e.uint.decode(d);return{header:o,digest:n,capabilities:c,config:1&r?Zo.decode(d):null,identity:2&r?$o.decode(d):null,bootstrapDevice:4&r?_o.decode(d):null,initialMembers:8&r?en.decode(d):null}}},on=$,nn={preencode(d,o){on.preencode(d,o.header),e.uint.preencode(d,o.version)},encode(d,o){on.encode(d,o.header),e.uint.encode(d,o.version)},decode:d=>({header:on.decode(d),version:e.uint.decode(d)})},cn=$,rn=J,tn={preencode(d,o){cn.preencode(d,o.header),e.uint.preencode(d,o.key),rn.preencode(d,o.settings)},encode(d,o){cn.encode(d,o.header),e.uint.encode(d,o.key),rn.encode(d,o.settings)},decode:d=>({header:cn.decode(d),key:e.uint.decode(d),settings:rn.decode(d)})},an={preencode(o,n){e.fixed32.preencode(o,n.memberKey),Ea.preencode(o,n.status),o.end++,n.mailbox&&e.fixed32.preencode(o,n.mailbox),n.roomKey&&e.fixed32.preencode(o,n.roomKey),d>=32&&n.contactInfo&&Ba.preencode(o,n.contactInfo),d>=32&&n.version&&e.uint.preencode(o,n.version),d>=34&&n.alias&&e.string.preencode(o,n.alias)},encode(o,n){const c=(n.mailbox?1:0)|(n.roomKey?2:0)|(d>=32&&n.contactInfo?4:0)|(d>=32&&n.version?8:0)|(d>=34&&n.alias?16:0);e.fixed32.encode(o,n.memberKey),Ea.encode(o,n.status),e.uint.encode(o,c),n.mailbox&&e.fixed32.encode(o,n.mailbox),n.roomKey&&e.fixed32.encode(o,n.roomKey),d>=32&&n.contactInfo&&Ba.encode(o,n.contactInfo),d>=32&&n.version&&e.uint.encode(o,n.version),d>=34&&n.alias&&e.string.encode(o,n.alias)},decode(o){const n=e.fixed32.decode(o),c=Ea.decode(o),r=e.uint.decode(o);return{memberKey:n,status:c,mailbox:1&r?e.fixed32.decode(o):null,roomKey:2&r?e.fixed32.decode(o):null,contactInfo:d>=32&&4&r?Ba.decode(o):null,version:d>=32&&8&r?e.uint.decode(o):0,alias:d>=34&&16&r?e.string.decode(o):null}}},sn={preencode(d,n){e.fixed32.preencode(d,n.roomKey),e.buffer.preencode(d,n.encryptionKey),e.fixed32.preencode(d,n.seed),o.preencode(d,n.initiator),e.fixed32.preencode(d,n.fastForwardTo)},encode(d,n){e.fixed32.encode(d,n.roomKey),e.buffer.encode(d,n.encryptionKey),e.fixed32.encode(d,n.seed),o.encode(d,n.initiator),e.fixed32.encode(d,n.fastForwardTo)},decode:d=>({roomKey:e.fixed32.decode(d),encryptionKey:e.buffer.decode(d),seed:e.fixed32.decode(d),initiator:o.decode(d),fastForwardTo:e.fixed32.decode(d)})},pn=e.array(e.frame(sn)),ln=X,un={preencode(e,d){pn.preencode(e,d.sharedRooms),ln.preencode(e,d.blockedContacts)},encode(e,d){pn.encode(e,d.sharedRooms),ln.encode(e,d.blockedContacts)},decode:e=>({sharedRooms:pn.decode(e),blockedContacts:ln.decode(e)})},fn=$o,mn={preencode(e,d){fn.preencode(e,d.identity)},encode(e,d){fn.encode(e,d.identity)},decode:e=>({identity:fn.decode(e)})},yn={preencode(d,o){e.uint.preencode(d,o.rooms),e.uint.preencode(d,o.contacts)},encode(d,o){e.uint.encode(d,o.rooms),e.uint.encode(d,o.contacts)},decode:d=>({rooms:e.uint.decode(d),contacts:e.uint.decode(d)})},bn={preencode(d,o){e.uint.preencode(d,o.rooms),e.uint.preencode(d,o.contactRequests)},encode(d,o){e.uint.encode(d,o.rooms),e.uint.encode(d,o.contactRequests)},decode:d=>({rooms:e.uint.decode(d),contactRequests:e.uint.decode(d)})},xn={preencode(d,o){e.buffer.preencode(d,o.entropy)},encode(d,o){e.buffer.encode(d,o.entropy)},decode:d=>({entropy:e.buffer.decode(d)})},vn={preencode(d,o){e.fixed32.preencode(d,o.publicKey),e.fixed32.preencode(d,o.devicePublicKey),e.fixed32.preencode(d,o.writerKey)},encode(d,o){e.fixed32.encode(d,o.publicKey),e.fixed32.encode(d,o.devicePublicKey),e.fixed32.encode(d,o.writerKey)},decode:d=>({publicKey:e.fixed32.decode(d),devicePublicKey:e.fixed32.decode(d),writerKey:e.fixed32.decode(d)})},kn=e.frame(vn),gn={preencode(n,c){e.fixed32.preencode(n,c.id),e.fixed32.preencode(n,c.invitationSeed),e.fixed32.preencode(n,c.mailbox),r.preencode(n,c.responseKeyPair),o.preencode(n,c.initiator),o.preencode(n,c.inviter),n.end++,c.identity&&kn.preencode(n,c.identity),d>=29&&c.buildType&&xi.preencode(n,c.buildType),d>=37&&c.link&&o.preencode(n,c.link)},encode(n,c){const t=(c.identity?1:0)|(d>=29&&c.buildType?2:0)|(d>=37&&c.link?4:0);e.fixed32.encode(n,c.id),e.fixed32.encode(n,c.invitationSeed),e.fixed32.encode(n,c.mailbox),r.encode(n,c.responseKeyPair),o.encode(n,c.initiator),o.encode(n,c.inviter),e.uint.encode(n,t),c.identity&&kn.encode(n,c.identity),d>=29&&c.buildType&&xi.encode(n,c.buildType),d>=37&&c.link&&o.encode(n,c.link)},decode(n){const c=e.fixed32.decode(n),t=e.fixed32.decode(n),i=e.fixed32.decode(n),a=r.decode(n),s=o.decode(n),p=o.decode(n),l=e.uint.decode(n);return{id:c,invitationSeed:t,mailbox:i,responseKeyPair:a,initiator:s,inviter:p,identity:1&l?kn.decode(n):null,buildType:d>=29&&2&l?xi.decode(n):null,link:d>=37&&4&l?o.decode(n):null}}},Kn=$,hn={preencode(d,o){Kn.preencode(d,o.header),e.buffer.preencode(d,o.blindResponse)},encode(d,o){Kn.encode(d,o.header),e.buffer.encode(d,o.blindResponse)},decode:d=>({header:Kn.decode(d),blindResponse:e.buffer.decode(d)})},wn=$,Pn=e.frame(gn),Tn={preencode(e,d){wn.preencode(e,d.header),Pn.preencode(e,d.invitation)},encode(e,d){wn.encode(e,d.header),Pn.encode(e,d.invitation)},decode:e=>({header:wn.decode(e),invitation:Pn.decode(e)})},Rn=$,An={preencode(d,o){Rn.preencode(d,o.header),e.fixed32.preencode(d,o.id)},encode(d,o){Rn.encode(d,o.header),e.fixed32.encode(d,o.id)},decode:d=>({header:Rn.decode(d),id:e.fixed32.decode(d)})},Sn={preencode(d,o){e.fixed32.preencode(d,o.publicKey),e.fixed32.preencode(d,o.devicePublicKey),d.end++,o.privateProfileKey&&e.fixed32.preencode(d,o.privateProfileKey),o.deviceKeyPair&&r.preencode(d,o.deviceKeyPair),e.buffer.preencode(d,o.deviceProof)},encode(d,o){const n=(o.privateProfileKey?1:0)|(o.deviceKeyPair?2:0);e.fixed32.encode(d,o.publicKey),e.fixed32.encode(d,o.devicePublicKey),e.uint.encode(d,n),o.privateProfileKey&&e.fixed32.encode(d,o.privateProfileKey),o.deviceKeyPair&&r.encode(d,o.deviceKeyPair),e.buffer.encode(d,o.deviceProof)},decode(d){const o=e.fixed32.decode(d),n=e.fixed32.decode(d),c=e.uint.decode(d);return{publicKey:o,devicePublicKey:n,privateProfileKey:1&c?e.fixed32.decode(d):null,deviceKeyPair:2&c?r.decode(d):null,deviceProof:e.buffer.decode(d)}}},In={preencode(o,n){o.end++,d>=35&&n.roomSnoozeTime&&e.uint.preencode(o,n.roomSnoozeTime)},encode(o,n){const c=(n.isActive?1:0)|(n.isFullyMuted?2:0)|(n.isMentionsOnlyMuted?4:0)|(d>=14&&n.isReadOnly?8:0)|(d>=27&&n.isFavorite?16:0)|(d>=31&&n.isUnread?32:0)|(d>=35&&n.roomSnoozeTime?64:0);e.uint.encode(o,c),d>=35&&n.roomSnoozeTime&&e.uint.encode(o,n.roomSnoozeTime)},decode(o){const n=e.uint.decode(o);return{isActive:!!(1&n),isFullyMuted:!!(2&n),isMentionsOnlyMuted:!!(4&n),isReadOnly:d>=14&&!!(8&n),isFavorite:d>=27&&!!(16&n),isUnread:d>=31&&!!(32&n),roomSnoozeTime:d>=35&&64&n?e.uint.decode(o):0}}},Fn=e.frame(In),Mn=e.frame(Sn),Cn=kn,Vn={preencode(n,c){e.fixed32.preencode(n,c.roomKey),e.buffer.preencode(n,c.encryptionKey),e.fixed32.preencode(n,c.mailbox),Fn.preencode(n,c.status),e.uint.preencode(n,c.clock),n.end++,c.initiator&&o.preencode(n,c.initiator),c.fastForwardTo&&e.fixed32.preencode(n,c.fastForwardTo),c.identitySwap&&Mn.preencode(n,c.identitySwap),d>=9&&c.identitySwapV2&&Cn.preencode(n,c.identitySwapV2),d>=15&&c.contact&&e.fixed32.preencode(n,c.contact),d>=37&&c.bootFrom&&o.preencode(n,c.bootFrom),d>=39&&c.activeClock&&e.uint.preencode(n,c.activeClock)},encode(n,c){const r=(c.initiator?1:0)|(c.fastForwardTo?2:0)|(c.identitySwap?4:0)|(d>=9&&c.identitySwapV2?8:0)|(d>=15&&c.contact?16:0)|(d>=37&&c.bootFrom?32:0)|(d>=39&&c.activeClock?64:0);e.fixed32.encode(n,c.roomKey),e.buffer.encode(n,c.encryptionKey),e.fixed32.encode(n,c.mailbox),Fn.encode(n,c.status),e.uint.encode(n,c.clock),e.uint.encode(n,r),c.initiator&&o.encode(n,c.initiator),c.fastForwardTo&&e.fixed32.encode(n,c.fastForwardTo),c.identitySwap&&Mn.encode(n,c.identitySwap),d>=9&&c.identitySwapV2&&Cn.encode(n,c.identitySwapV2),d>=15&&c.contact&&e.fixed32.encode(n,c.contact),d>=37&&c.bootFrom&&o.encode(n,c.bootFrom),d>=39&&c.activeClock&&e.uint.encode(n,c.activeClock)},decode(n){const c=e.fixed32.decode(n),r=e.buffer.decode(n),t=e.fixed32.decode(n),i=Fn.decode(n),a=e.uint.decode(n),s=e.uint.decode(n);return{roomKey:c,encryptionKey:r,mailbox:t,status:i,clock:a,initiator:1&s?o.decode(n):null,fastForwardTo:2&s?e.fixed32.decode(n):null,identitySwap:4&s?Mn.decode(n):null,identitySwapV2:d>=9&&8&s?Cn.decode(n):null,contact:d>=15&&16&s?e.fixed32.decode(n):null,bootFrom:d>=37&&32&s?o.decode(n):null,activeClock:d>=39&&64&s?e.uint.decode(n):0}}},Hn=$,Dn={preencode(d,n){Hn.preencode(d,n.header),e.fixed32.preencode(d,n.roomKey),e.buffer.preencode(d,n.encryptionKey),e.fixed32.preencode(d,n.mailbox),d.end++,n.fastForwardTo&&e.fixed32.preencode(d,n.fastForwardTo),n.initiator&&o.preencode(d,n.initiator),n.dm&&e.fixed32.preencode(d,n.dm)},encode(n,c){const r=(c.fastForwardTo?1:0)|(c.initiator?2:0)|(c.dm?4:0)|(d>=14&&c.isReadOnly?8:0);Hn.encode(n,c.header),e.fixed32.encode(n,c.roomKey),e.buffer.encode(n,c.encryptionKey),e.fixed32.encode(n,c.mailbox),e.uint.encode(n,r),c.fastForwardTo&&e.fixed32.encode(n,c.fastForwardTo),c.initiator&&o.encode(n,c.initiator),c.dm&&e.fixed32.encode(n,c.dm)},decode(n){const c=Hn.decode(n),r=e.fixed32.decode(n),t=e.buffer.decode(n),i=e.fixed32.decode(n),a=e.uint.decode(n);return{header:c,roomKey:r,encryptionKey:t,mailbox:i,fastForwardTo:1&a?e.fixed32.decode(n):null,initiator:2&a?o.decode(n):null,dm:4&a?e.fixed32.decode(n):null,isReadOnly:d>=14&&!!(8&a)}}},Ln=$,qn={preencode(d,o){Ln.preencode(d,o.header),e.fixed32.preencode(d,o.discoveryKey)},encode(d,o){Ln.encode(d,o.header),e.fixed32.encode(d,o.discoveryKey)},decode:d=>({header:Ln.decode(d),discoveryKey:e.fixed32.decode(d)})},jn=$,En=Fn,Bn={preencode(d,o){jn.preencode(d,o.header),e.fixed32.preencode(d,o.roomKey),e.uint.preencode(d,o.key),En.preencode(d,o.status)},encode(d,o){jn.encode(d,o.header),e.fixed32.encode(d,o.roomKey),e.uint.encode(d,o.key),En.encode(d,o.status)},decode:d=>({header:jn.decode(d),roomKey:e.fixed32.decode(d),key:e.uint.decode(d),status:En.decode(d)})},zn={preencode(e,d){e.end++},encode(o,n){const c=(n.isBlocked?1:0)|(d>=32&&n.isActive?2:0);e.uint.encode(o,c)},decode(o){const n=e.uint.decode(o);return{isBlocked:!!(1&n),isActive:d>=32&&!!(2&n)}}},On={preencode(o,n){e.fixed32.preencode(o,n.memberKey),e.uint.preencode(o,n.clock),za.preencode(o,n.status),o.end++,n.mailbox&&e.fixed32.preencode(o,n.mailbox),n.roomKey&&e.fixed32.preencode(o,n.roomKey),d>=32&&n.contactInfo&&Oa.preencode(o,n.contactInfo),d>=34&&n.alias&&e.string.preencode(o,n.alias)},encode(o,n){const c=(n.mailbox?1:0)|(n.roomKey?2:0)|(d>=32&&n.contactInfo?4:0)|(d>=34&&n.alias?8:0);e.fixed32.encode(o,n.memberKey),e.uint.encode(o,n.clock),za.encode(o,n.status),e.uint.encode(o,c),n.mailbox&&e.fixed32.encode(o,n.mailbox),n.roomKey&&e.fixed32.encode(o,n.roomKey),d>=32&&n.contactInfo&&Oa.encode(o,n.contactInfo),d>=34&&n.alias&&e.string.encode(o,n.alias)},decode(o){const n=e.fixed32.decode(o),c=e.uint.decode(o),r=za.decode(o),t=e.uint.decode(o);return{memberKey:n,clock:c,status:r,mailbox:1&t?e.fixed32.decode(o):null,roomKey:2&t?e.fixed32.decode(o):null,contactInfo:d>=32&&4&t?Oa.decode(o):null,alias:d>=34&&8&t?e.string.decode(o):null}}},Nn=$,Un=e.frame(an),Jn={preencode(e,d){Nn.preencode(e,d.header),Un.preencode(e,d.contact)},encode(e,d){Nn.encode(e,d.header),Un.encode(e,d.contact)},decode:e=>({header:Nn.decode(e),contact:Un.decode(e)})},Wn=$,Gn={preencode(d,o){Wn.preencode(d,o.header),e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.key),Na.preencode(d,o.status)},encode(d,o){Wn.encode(d,o.header),e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.key),Na.encode(d,o.status)},decode:d=>({header:Wn.decode(d),memberKey:e.fixed32.decode(d),key:e.uint.decode(d),status:Na.decode(d)})},Qn=$,Xn={preencode(d,o){Qn.preencode(d,o.header),e.fixed32.preencode(d,o.memberKey)},encode(d,o){Qn.encode(d,o.header),e.fixed32.encode(d,o.memberKey)},decode:d=>({header:Qn.decode(d),memberKey:e.fixed32.decode(d)})},Yn={preencode(e,d){e.end++},encode(d,o){const n=(o.isPending?1:0)|(o.isAccepted?2:0)|(o.isRejected?4:0)|(o.isDiscarded?8:0)|(o.isSeen?16:0);e.uint.encode(d,n)},decode(d){const o=e.uint.decode(d);return{isPending:!!(1&o),isAccepted:!!(2&o),isRejected:!!(4&o),isDiscarded:!!(8&o),isSeen:!!(16&o)}}},Zn=xe,$n=e.frame(t),_n={preencode(d,o){Zn.preencode(d,o.sender),$n.preencode(d,o.keys),e.fixed32.preencode(d,o.mailbox),d.end++,o.message&&e.string.preencode(d,o.message)},encode(d,o){const n=o.message?1:0;Zn.encode(d,o.sender),$n.encode(d,o.keys),e.fixed32.encode(d,o.mailbox),e.uint.encode(d,n),o.message&&e.string.encode(d,o.message)},decode:d=>({sender:Zn.decode(d),keys:$n.decode(d),mailbox:e.fixed32.decode(d),message:1&e.uint.decode(d)?e.string.decode(d):null})},ec=e.frame(_n),dc={preencode(e,d){ec.preencode(e,d.body),ne.preencode(e,d.attestation)},encode(e,d){ec.encode(e,d.body),ne.encode(e,d.attestation)},decode:e=>({body:ec.decode(e),attestation:ne.decode(e)})},oc=pe,nc=e.frame(Yn),cc=$n,rc={preencode(o,n){e.fixed32.preencode(o,n.memberKey),e.uint.preencode(o,n.clock),oc.preencode(o,n.sender),nc.preencode(o,n.status),cc.preencode(o,n.keys),e.fixed32.preencode(o,n.mailbox),o.end++,n.message&&e.string.preencode(o,n.message),d>=17&&n.sentAt&&e.uint.preencode(o,n.sentAt),d>=32&&n.contactInfo&&Ua.preencode(o,n.contactInfo)},encode(o,n){const c=(n.message?1:0)|(d>=17&&n.sentAt?2:0)|(d>=32&&n.contactInfo?4:0);e.fixed32.encode(o,n.memberKey),e.uint.encode(o,n.clock),oc.encode(o,n.sender),nc.encode(o,n.status),cc.encode(o,n.keys),e.fixed32.encode(o,n.mailbox),e.uint.encode(o,c),n.message&&e.string.encode(o,n.message),d>=17&&n.sentAt&&e.uint.encode(o,n.sentAt),d>=32&&n.contactInfo&&Ua.encode(o,n.contactInfo)},decode(o){const n=e.fixed32.decode(o),c=e.uint.decode(o),r=oc.decode(o),t=nc.decode(o),i=cc.decode(o),a=e.fixed32.decode(o),s=e.uint.decode(o);return{memberKey:n,clock:c,sender:r,status:t,keys:i,mailbox:a,message:1&s?e.string.decode(o):null,sentAt:d>=17&&2&s?e.uint.decode(o):0,contactInfo:d>=32&&4&s?Ua.decode(o):null}}},tc=$,ic={preencode(d,o){tc.preencode(d,o.header),e.buffer.preencode(d,o.blindRequest)},encode(d,o){tc.encode(d,o.header),e.buffer.encode(d,o.blindRequest)},decode:d=>({header:tc.decode(d),blindRequest:e.buffer.decode(d)})},ac=$,sc=nc,pc={preencode(o,n){ac.preencode(o,n.header),e.fixed32.preencode(o,n.memberKey),e.uint.preencode(o,n.key),sc.preencode(o,n.status),o.end++,d>=15&&n.roomKey&&e.fixed32.preencode(o,n.roomKey)},encode(o,n){const c=d>=15&&n.roomKey?1:0;ac.encode(o,n.header),e.fixed32.encode(o,n.memberKey),e.uint.encode(o,n.key),sc.encode(o,n.status),e.uint.encode(o,c),d>=15&&n.roomKey&&e.fixed32.encode(o,n.roomKey)},decode(o){const n=ac.decode(o),c=e.fixed32.decode(o),r=e.uint.decode(o),t=sc.decode(o),i=o.start<o.end?e.uint.decode(o):0;return{header:n,memberKey:c,key:r,status:t,roomKey:d>=15&&1&i?e.fixed32.decode(o):null}}},lc={preencode(d,o){e.uint.preencode(d,o.timestamp),e.fixed32.preencode(d,o.key),e.fixed32.preencode(d,o.mailbox)},encode(d,o){e.uint.encode(d,o.timestamp),e.fixed32.encode(d,o.key),e.fixed32.encode(d,o.mailbox)},decode:d=>({version:e.uint.decode(d),timestamp:e.uint.decode(d),key:e.fixed32.decode(d),mailbox:e.fixed32.decode(d)})},uc={preencode(d,o){const n=o.version??1;switch(e.uint.preencode(d,n),n){case 0:case 1:lc.preencode(d,o);break;default:throw new Error("Unsupported version")}},encode(d,o){const n=o.version??1;switch(e.uint.encode(d,n),n){case 0:case 1:lc.encode(d,o);break;default:throw new Error("Unsupported version")}},decode(d){const o=d.start,n=e.uint.decode(d);switch(d.start=o,n){case 0:case 1:return lc.decode(d);default:throw new Error("Unsupported version")}}},fc={preencode(d,o){e.fixed32.preencode(d,o.discoveryPublicKey),e.uint.preencode(d,o.timestamp),d.end++,o.lastSynced&&e.uint.preencode(d,o.lastSynced)},encode(d,o){const n=(o.lastSynced?1:0)|(o.dirty?2:0);e.fixed32.encode(d,o.discoveryPublicKey),e.uint.encode(d,o.timestamp),e.uint.encode(d,n),o.lastSynced&&e.uint.encode(d,o.lastSynced)},decode(d){const o=e.fixed32.decode(d),n=e.uint.decode(d),c=e.uint.decode(d);return{discoveryPublicKey:o,timestamp:n,lastSynced:1&c?e.uint.decode(d):0,dirty:!!(2&c)}}},mc={preencode(d,o){e.uint.preencode(d,o.rooms),e.uint.preencode(d,o.activeRooms)},encode(d,o){e.uint.encode(d,o.rooms),e.uint.encode(d,o.activeRooms)},decode:d=>({rooms:e.uint.decode(d),activeRooms:e.uint.decode(d)})},yc=M,bc=X,xc={preencode(e,d){e.end++,d.blockedMembers&&bc.preencode(e,d.blockedMembers)},encode(d,o){const n=o.blockedMembers?1:0;e.uint.encode(d,n),o.blockedMembers&&bc.encode(d,o.blockedMembers)},decode:d=>({blockedMembers:1&e.uint.decode(d)?bc.decode(d):null})},vc=e.frame(Q),kc=e.frame(xc),gc={preencode(d,n){e.buffer.preencode(d,n.encryptionKey),e.fixed32.preencode(d,n.seed),vc.preencode(d,n.capabilities),o.preencode(d,n.initiator),e.fixed32.preencode(d,n.fastForwardTo),d.end++,n.privateProfile&&kc.preencode(d,n.privateProfile)},encode(d,n){const c=n.privateProfile?1:0;e.buffer.encode(d,n.encryptionKey),e.fixed32.encode(d,n.seed),vc.encode(d,n.capabilities),o.encode(d,n.initiator),e.fixed32.encode(d,n.fastForwardTo),e.uint.encode(d,c),n.privateProfile&&kc.encode(d,n.privateProfile)},decode:d=>({encryptionKey:e.buffer.decode(d),seed:e.fixed32.decode(d),capabilities:vc.decode(d),initiator:o.decode(d),fastForwardTo:e.fixed32.decode(d),privateProfile:1&e.uint.decode(d)?kc.decode(d):null})},Kc={preencode(d,o){d.end++,o.count&&e.uint.preencode(d,o.count)},encode(d,o){const n=o.count?1:0;e.uint.encode(d,n),o.count&&e.uint.encode(d,o.count)},decode:d=>({count:1&e.uint.decode(d)?e.uint.decode(d):0})},hc=e.frame(gc),wc={preencode(o,n){e.fixed32.preencode(o,n.roomKey),e.uint.preencode(o,n.priority),o.end++,n.v3&&hc.preencode(o,n.v3),d>=5&&n.timestamp&&e.uint.preencode(o,n.timestamp)},encode(o,n){const c=(n.v3?1:0)|(d>=3&&n.errored?2:0)|(d>=5&&n.timestamp?4:0);e.fixed32.encode(o,n.roomKey),e.uint.encode(o,n.priority),e.uint.encode(o,c),n.v3&&hc.encode(o,n.v3),d>=5&&n.timestamp&&e.uint.encode(o,n.timestamp)},decode(o){const n=e.fixed32.decode(o),c=e.uint.decode(o),r=e.uint.decode(o);return{roomKey:n,priority:c,v3:1&r?hc.decode(o):null,errored:d>=3&&!!(2&r),timestamp:d>=5&&4&r?e.uint.decode(o):0}}},Pc={preencode(e,d){e.end++},encode(d,o){const n=o.isConfirmed?1:0;e.uint.encode(d,n)},decode:d=>({isConfirmed:!!(1&e.uint.decode(d))})},Tc=e.frame(Pc),Rc=Mn,Ac={preencode(o,n){e.fixed32.preencode(o,n.publicKey),e.fixed32.preencode(o,n.privateProfileKey),r.preencode(o,n.deviceKeyPair),e.buffer.preencode(o,n.deviceProof),Tc.preencode(o,n.status),o.end++,n.entropy&&e.buffer.preencode(o,n.entropy),n.swap&&Rc.preencode(o,n.swap),d>=9&&n.swapV2&&Ja.preencode(o,n.swapV2),d>=31&&n.proofShortenedAt&&e.uint.preencode(o,n.proofShortenedAt)},encode(o,n){const c=(n.entropy?1:0)|(n.swap?2:0)|(d>=9&&n.swapV2?4:0)|(d>=31&&n.proofShortenedAt?8:0);e.fixed32.encode(o,n.publicKey),e.fixed32.encode(o,n.privateProfileKey),r.encode(o,n.deviceKeyPair),e.buffer.encode(o,n.deviceProof),Tc.encode(o,n.status),e.uint.encode(o,c),n.entropy&&e.buffer.encode(o,n.entropy),n.swap&&Rc.encode(o,n.swap),d>=9&&n.swapV2&&Ja.encode(o,n.swapV2),d>=31&&n.proofShortenedAt&&e.uint.encode(o,n.proofShortenedAt)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),t=r.decode(o),i=e.buffer.decode(o),a=Tc.decode(o),s=e.uint.decode(o);return{publicKey:n,privateProfileKey:c,deviceKeyPair:t,deviceProof:i,status:a,entropy:1&s?e.buffer.decode(o):null,swap:2&s?Rc.decode(o):null,swapV2:d>=9&&4&s?Ja.decode(o):null,proofShortenedAt:d>=31&&8&s?e.uint.decode(o):0}}},Sc={RestoreIdentity:1,CreateRoom:2,LeaveRoom:3,ClearRoom:4,JoinRoomInvitation:5,JoinRoomKeys:6,JoinRoomResponse:7,SendContactRequest:8,TestFastTask:9,TestSlowTask:10,TestErrorTask:11},Ic={preencode(e,d){e.end++},encode(d,o){if(o>11)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},Fc={preencode(d,n){e.fixed32.preencode(d,n.roomKey),e.buffer.preencode(d,n.encryptionKey),d.end++,n.fastForwardTo&&e.fixed32.preencode(d,n.fastForwardTo),n.initiator&&o.preencode(d,n.initiator)},encode(d,n){const c=(n.fastForwardTo?1:0)|(n.initiator?2:0);e.fixed32.encode(d,n.roomKey),e.buffer.encode(d,n.encryptionKey),e.uint.encode(d,c),n.fastForwardTo&&e.fixed32.encode(d,n.fastForwardTo),n.initiator&&o.encode(d,n.initiator)},decode(d){const n=e.fixed32.decode(d),c=e.buffer.decode(d),r=e.uint.decode(d);return{roomKey:n,encryptionKey:c,fastForwardTo:1&r?e.fixed32.decode(d):null,initiator:2&r?o.decode(d):null}}},Mc=Pn,Cc={preencode(e,d){Mc.preencode(e,d.invitation)},encode(e,d){Mc.encode(e,d.invitation)},decode:e=>({invitation:Mc.decode(e)})},Vc={preencode(d,o){e.fixed32.preencode(d,o.mailbox),r.preencode(d,o.keyPair),e.buffer.preencode(d,o.response)},encode(d,o){e.fixed32.encode(d,o.mailbox),r.encode(d,o.keyPair),e.buffer.encode(d,o.response)},decode:d=>({mailbox:e.fixed32.decode(d),keyPair:r.decode(d),response:e.buffer.decode(d)})},Hc=Z,Dc={preencode(d,n){e.fixed32.preencode(d,n.roomKey),e.buffer.preencode(d,n.encryptionKey),d.end++,n.fastForwardTo&&e.fixed32.preencode(d,n.fastForwardTo),n.initiator&&o.preencode(d,n.initiator),n.mailbox&&e.fixed32.preencode(d,n.mailbox)},encode(d,n){const c=(n.fastForwardTo?1:0)|(n.initiator?2:0)|(n.mailbox?4:0);e.fixed32.encode(d,n.roomKey),e.buffer.encode(d,n.encryptionKey),e.uint.encode(d,c),n.fastForwardTo&&e.fixed32.encode(d,n.fastForwardTo),n.initiator&&o.encode(d,n.initiator),n.mailbox&&e.fixed32.encode(d,n.mailbox)},decode(d){const n=e.fixed32.decode(d),c=e.buffer.decode(d),r=e.uint.decode(d);return{roomKey:n,encryptionKey:c,fastForwardTo:1&r?e.fixed32.decode(d):null,initiator:2&r?o.decode(d):null,mailbox:4&r?e.fixed32.decode(d):null}}},Lc=e.frame(Dc),qc={preencode(o,n){Lc.preencode(o,n.keys),o.end++,d>=39&&n.activeClock&&e.uint.preencode(o,n.activeClock)},encode(o,n){const c=(d>=39&&n.activeClock?1:0)|(d>=39&&n.isReadOnly?2:0);Lc.encode(o,n.keys),e.uint.encode(o,c),d>=39&&n.activeClock&&e.uint.encode(o,n.activeClock)},decode(o){const n=Lc.decode(o),c=o.start<o.end?e.uint.decode(o):0;return{keys:n,activeClock:d>=39&&1&c?e.uint.decode(o):0,isReadOnly:d>=39&&!!(2&c)}}},jc=e.frame(dn),Ec={preencode(d,n){e.fixed32.preencode(d,n.roomKey),e.buffer.preencode(d,n.encryptionKey),d.end++,n.fastForwardTo&&e.fixed32.preencode(d,n.fastForwardTo),n.initiator&&o.preencode(d,n.initiator),n.mailbox&&e.fixed32.preencode(d,n.mailbox),n.keyPair&&r.preencode(d,n.keyPair),n.genesis&&jc.preencode(d,n.genesis)},encode(d,n){const c=(n.fastForwardTo?1:0)|(n.initiator?2:0)|(n.mailbox?4:0)|(n.keyPair?8:0)|(n.genesis?16:0)|(n.isPrivateProfile?32:0);e.fixed32.encode(d,n.roomKey),e.buffer.encode(d,n.encryptionKey),e.uint.encode(d,c),n.fastForwardTo&&e.fixed32.encode(d,n.fastForwardTo),n.initiator&&o.encode(d,n.initiator),n.mailbox&&e.fixed32.encode(d,n.mailbox),n.keyPair&&r.encode(d,n.keyPair),n.genesis&&jc.encode(d,n.genesis)},decode(d){const n=e.fixed32.decode(d),c=e.buffer.decode(d),t=e.uint.decode(d);return{roomKey:n,encryptionKey:c,fastForwardTo:1&t?e.fixed32.decode(d):null,initiator:2&t?o.decode(d):null,mailbox:4&t?e.fixed32.decode(d):null,keyPair:8&t?r.decode(d):null,genesis:16&t?jc.decode(d):null,isPrivateProfile:!!(32&t)}}},Bc={preencode(d,o){e.fixed32.preencode(d,o.roomKey),d.end++},encode(d,o){const n=o.isGossiped?1:0;e.fixed32.encode(d,o.roomKey),e.uint.encode(d,n)},decode:d=>({roomKey:e.fixed32.decode(d),isGossiped:!!(1&e.uint.decode(d))})},zc={preencode(d,o){e.fixed32.preencode(d,o.roomKey)},encode(d,o){e.fixed32.encode(d,o.roomKey)},decode:d=>({roomKey:e.fixed32.decode(d)})},Oc={preencode(d,o){e.string.preencode(d,o.mnemonic),d.end++,o.profileDiscoveryTimeout&&e.uint.preencode(d,o.profileDiscoveryTimeout)},encode(d,o){const n=(o.profileDiscoveryTimeout?1:0)|(o.recover?2:0);e.string.encode(d,o.mnemonic),e.uint.encode(d,n),o.profileDiscoveryTimeout&&e.uint.encode(d,o.profileDiscoveryTimeout)},decode(d){const o=e.string.decode(d),n=e.uint.decode(d);return{mnemonic:o,profileDiscoveryTimeout:1&n?e.uint.decode(d):0,recover:!!(2&n)}}},Nc={preencode(o,n){e.fixed32.preencode(o,n.roomKey),e.fixed32.preencode(o,n.memberKey),o.end++,n.message&&e.string.preencode(o,n.message),d>=6&&n.contactInfo&&Wa.preencode(o,n.contactInfo)},encode(o,n){const c=(n.message?1:0)|(d>=6&&n.contactInfo?2:0);e.fixed32.encode(o,n.roomKey),e.fixed32.encode(o,n.memberKey),e.uint.encode(o,c),n.message&&e.string.encode(o,n.message),d>=6&&n.contactInfo&&Wa.encode(o,n.contactInfo)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),r=e.uint.decode(o);return{roomKey:n,memberKey:c,message:1&r?e.string.decode(o):null,contactInfo:d>=6&&2&r?Wa.decode(o):null}}},Uc={preencode(d,o){e.fixed32.preencode(d,o.key),d.end++},encode(d,o){const n=o.isPrivateProfile?1:0;e.fixed32.encode(d,o.key),e.uint.encode(d,n)},decode:d=>({key:e.fixed32.decode(d),isPrivateProfile:!!(1&e.uint.decode(d))})},Jc=e.frame(Oc),Wc=e.frame(Ec),Gc=e.frame(Bc),Qc=e.frame(zc),Xc=e.frame(Cc),Yc=e.frame(qc),Zc=e.frame(Vc),$c=e.frame(Nc),_c=e.frame(Uc),er={preencode(d,o){const n=(o.restoreIdentity?1:0)|(o.createRoom?2:0)|(o.leaveRoom?4:0)|(o.clearRoom?8:0)|(o.joinRoomInvitation?16:0)|(o.joinRoomKeys?32:0)|(o.joinRoomResponse?64:0)|(o.sendContactRequest?128:0)|(o.migrateV2Room?256:0);e.fixed32.preencode(d,o.discoveryKey),e.uint.preencode(d,o.priority),e.uint.preencode(d,o.timestamp),e.uint.preencode(d,o.type),e.uint.preencode(d,n),o.restoreIdentity&&Jc.preencode(d,o.restoreIdentity),o.createRoom&&Wc.preencode(d,o.createRoom),o.leaveRoom&&Gc.preencode(d,o.leaveRoom),o.clearRoom&&Qc.preencode(d,o.clearRoom),o.joinRoomInvitation&&Xc.preencode(d,o.joinRoomInvitation),o.joinRoomKeys&&Yc.preencode(d,o.joinRoomKeys),o.joinRoomResponse&&Zc.preencode(d,o.joinRoomResponse),o.sendContactRequest&&$c.preencode(d,o.sendContactRequest),o.migrateV2Room&&_c.preencode(d,o.migrateV2Room)},encode(d,o){const n=(o.restoreIdentity?1:0)|(o.createRoom?2:0)|(o.leaveRoom?4:0)|(o.clearRoom?8:0)|(o.joinRoomInvitation?16:0)|(o.joinRoomKeys?32:0)|(o.joinRoomResponse?64:0)|(o.sendContactRequest?128:0)|(o.migrateV2Room?256:0);e.fixed32.encode(d,o.discoveryKey),e.uint.encode(d,o.priority),e.uint.encode(d,o.timestamp),e.uint.encode(d,o.type),e.uint.encode(d,n),o.restoreIdentity&&Jc.encode(d,o.restoreIdentity),o.createRoom&&Wc.encode(d,o.createRoom),o.leaveRoom&&Gc.encode(d,o.leaveRoom),o.clearRoom&&Qc.encode(d,o.clearRoom),o.joinRoomInvitation&&Xc.encode(d,o.joinRoomInvitation),o.joinRoomKeys&&Yc.encode(d,o.joinRoomKeys),o.joinRoomResponse&&Zc.encode(d,o.joinRoomResponse),o.sendContactRequest&&$c.encode(d,o.sendContactRequest),o.migrateV2Room&&_c.encode(d,o.migrateV2Room)},decode(d){const o=e.fixed32.decode(d),n=e.uint.decode(d),c=e.uint.decode(d),r=e.uint.decode(d),t=e.uint.decode(d);return{discoveryKey:o,priority:n,timestamp:c,type:r,restoreIdentity:1&t?Jc.decode(d):null,createRoom:2&t?Wc.decode(d):null,leaveRoom:4&t?Gc.decode(d):null,clearRoom:8&t?Qc.decode(d):null,joinRoomInvitation:16&t?Xc.decode(d):null,joinRoomKeys:32&t?Yc.decode(d):null,joinRoomResponse:64&t?Zc.decode(d):null,sendContactRequest:128&t?$c.decode(d):null,migrateV2Room:256&t?_c.decode(d):null}}},dr=Le,or={preencode(d,o){e.buffer.preencode(d,o.seed),dr.preencode(d,o.invitation)},encode(d,o){e.buffer.encode(d,o.seed),dr.encode(d,o.invitation)},decode:d=>({seed:e.buffer.decode(d),invitation:dr.decode(d)})},nr={preencode(e,d){e.end++},encode(o,n){const c=(n.isWritable?1:0)|(n.isReadable?2:0)|(n.isPrivateProfile?4:0)|(d>=8&&n.isRemoved?8:0);e.uint.encode(o,c)},decode(o){const n=e.uint.decode(o);return{isWritable:!!(1&n),isReadable:!!(2&n),isPrivateProfile:!!(4&n),isRemoved:d>=8&&!!(8&n)}}},cr={preencode(d,o){e.uint.preencode(d,o.creation),e.uint.preencode(d,o.latestSync),e.uint.preencode(d,o.latestChatMessage)},encode(d,o){e.uint.encode(d,o.creation),e.uint.encode(d,o.latestSync),e.uint.encode(d,o.latestChatMessage)},decode:d=>({creation:e.uint.decode(d),latestSync:e.uint.decode(d),latestChatMessage:e.uint.decode(d)})},rr=Xo,tr=fo,ir=e.frame(cr),ar=vc,sr=e.frame(nr),pr=e.frame(ie),lr=e.frame(ud),ur=Oo,fr=$o,mr=e.frame(ho),yr=X,br=e.frame(sd),xr=Fn,vr={preencode(o,n){const c=(n.selfDevice?1:0)|(n.selfMember?2:0)|(n.config?4:0)|(n.identity?8:0)|(n.lastMessage?16:0)|(n.dm?32:0)|(d>=19&&n.readLengths?64:0)|(d>=19&&n.lastMember?128:0)|(d>=21&&n.version?256:0)|(d>=27&&n.preferences?512:0)|(d>=28&&n.activeCall?1024:0)|(d>=32&&n.lastMessageLabels?2048:0)|(d>=33&&n.settings?4096:0)|(d>=37&&n.system?8192:0)|(d>=37&&n.processed?16384:0);e.fixed32.preencode(o,n.roomKey),e.fixed32.preencode(o,n.discoveryKey),e.buffer.preencode(o,n.encryptionKey),rr.preencode(o,n.digest),tr.preencode(o,n.stats),ir.preencode(o,n.timestamps),e.uint.preencode(o,n.fork),e.uint.preencode(o,n.length),e.fixed32.preencode(o,n.seed),ar.preencode(o,n.capabilities),sr.preencode(o,n.status),e.uint.preencode(o,c),n.selfDevice&&pr.preencode(o,n.selfDevice),n.selfMember&&lr.preencode(o,n.selfMember),n.config&&ur.preencode(o,n.config),n.identity&&fr.preencode(o,n.identity),n.lastMessage&&mr.preencode(o,n.lastMessage),n.dm&&yr.preencode(o,n.dm),d>=19&&n.readLengths&&Ga.preencode(o,n.readLengths),d>=19&&n.lastMember&&br.preencode(o,n.lastMember),d>=21&&n.version&&e.uint.preencode(o,n.version),d>=27&&n.preferences&&xr.preencode(o,n.preferences),d>=28&&n.activeCall&&Qa.preencode(o,n.activeCall),d>=32&&n.lastMessageLabels&&Xa.preencode(o,n.lastMessageLabels),d>=33&&n.settings&&Ya.preencode(o,n.settings),d>=37&&n.system&&Za.preencode(o,n.system),d>=37&&n.processed&&$a.preencode(o,n.processed)},encode(o,n){const c=(n.selfDevice?1:0)|(n.selfMember?2:0)|(n.config?4:0)|(n.identity?8:0)|(n.lastMessage?16:0)|(n.dm?32:0)|(d>=19&&n.readLengths?64:0)|(d>=19&&n.lastMember?128:0)|(d>=21&&n.version?256:0)|(d>=27&&n.preferences?512:0)|(d>=28&&n.activeCall?1024:0)|(d>=32&&n.lastMessageLabels?2048:0)|(d>=33&&n.settings?4096:0)|(d>=37&&n.system?8192:0)|(d>=37&&n.processed?16384:0);e.fixed32.encode(o,n.roomKey),e.fixed32.encode(o,n.discoveryKey),e.buffer.encode(o,n.encryptionKey),rr.encode(o,n.digest),tr.encode(o,n.stats),ir.encode(o,n.timestamps),e.uint.encode(o,n.fork),e.uint.encode(o,n.length),e.fixed32.encode(o,n.seed),ar.encode(o,n.capabilities),sr.encode(o,n.status),e.uint.encode(o,c),n.selfDevice&&pr.encode(o,n.selfDevice),n.selfMember&&lr.encode(o,n.selfMember),n.config&&ur.encode(o,n.config),n.identity&&fr.encode(o,n.identity),n.lastMessage&&mr.encode(o,n.lastMessage),n.dm&&yr.encode(o,n.dm),d>=19&&n.readLengths&&Ga.encode(o,n.readLengths),d>=19&&n.lastMember&&br.encode(o,n.lastMember),d>=21&&n.version&&e.uint.encode(o,n.version),d>=27&&n.preferences&&xr.encode(o,n.preferences),d>=28&&n.activeCall&&Qa.encode(o,n.activeCall),d>=32&&n.lastMessageLabels&&Xa.encode(o,n.lastMessageLabels),d>=33&&n.settings&&Ya.encode(o,n.settings),d>=37&&n.system&&Za.encode(o,n.system),d>=37&&n.processed&&$a.encode(o,n.processed)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),r=e.buffer.decode(o),t=rr.decode(o),i=tr.decode(o),a=ir.decode(o),s=e.uint.decode(o),p=e.uint.decode(o),l=e.fixed32.decode(o),u=ar.decode(o),f=sr.decode(o),m=e.uint.decode(o);return{roomKey:n,discoveryKey:c,encryptionKey:r,digest:t,stats:i,timestamps:a,fork:s,length:p,seed:l,capabilities:u,status:f,selfDevice:1&m?pr.decode(o):null,selfMember:2&m?lr.decode(o):null,config:4&m?ur.decode(o):null,identity:8&m?fr.decode(o):null,lastMessage:16&m?mr.decode(o):null,dm:32&m?yr.decode(o):null,readLengths:d>=19&&64&m?Ga.decode(o):null,lastMember:d>=19&&128&m?br.decode(o):null,version:d>=21&&256&m?e.uint.decode(o):0,preferences:d>=27&&512&m?xr.decode(o):null,activeCall:d>=28&&1024&m?Qa.decode(o):null,lastMessageLabels:d>=32&&2048&m?Xa.decode(o):null,settings:d>=33&&4096&m?Ya.decode(o):null,system:d>=37&&8192&m?Za.decode(o):null,processed:d>=37&&16384&m?$a.decode(o):null}}},kr=Fn,gr={preencode(d,o){e.fixed32.preencode(d,o.roomKey),kr.preencode(d,o.status)},encode(d,o){e.fixed32.encode(d,o.roomKey),kr.encode(d,o.status)},decode:d=>({roomKey:e.fixed32.decode(d),status:kr.decode(d)})},Kr={preencode(o,n){e.fixed32.preencode(o,n.mailbox),e.fixed32.preencode(o,n.key),o.end++,n.roomKey&&e.fixed32.preencode(o,n.roomKey),n.keyPair&&r.preencode(o,n.keyPair),n.responseKeyPair&&r.preencode(o,n.responseKeyPair),d>=39&&n.activeClock&&e.uint.preencode(o,n.activeClock)},encode(o,n){const c=(n.roomKey?1:0)|(n.keyPair?2:0)|(n.responseKeyPair?4:0)|(d>=38&&n.pending?8:0)|(d>=39&&n.activeClock?16:0);e.fixed32.encode(o,n.mailbox),e.fixed32.encode(o,n.key),e.uint.encode(o,c),n.roomKey&&e.fixed32.encode(o,n.roomKey),n.keyPair&&r.encode(o,n.keyPair),n.responseKeyPair&&r.encode(o,n.responseKeyPair),d>=39&&n.activeClock&&e.uint.encode(o,n.activeClock)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),t=e.uint.decode(o);return{mailbox:n,key:c,roomKey:1&t?e.fixed32.decode(o):null,keyPair:2&t?r.decode(o):null,responseKeyPair:4&t?r.decode(o):null,pending:d>=38&&!!(8&t),activeClock:d>=39&&16&t?e.uint.decode(o):0}}},hr=pe,wr={preencode(d,o){e.fixed32.preencode(d,o.key),hr.preencode(d,o.profile)},encode(d,o){e.fixed32.encode(d,o.key),hr.encode(d,o.profile)},decode:d=>({key:e.fixed32.decode(d),profile:hr.decode(d)})},Pr=pr,Tr={preencode(d,o){e.fixed32.preencode(d,o.roomKey),Pr.preencode(d,o.device)},encode(d,o){e.fixed32.encode(d,o.roomKey),Pr.encode(d,o.device)},decode:d=>({roomKey:e.fixed32.decode(d),device:Pr.decode(d)})},Rr=g,Ar={preencode(o,n){Rr.preencode(o,n.file),e.fixed32.preencode(o,n.roomKey),o.end++,n.encryptionKey&&e.buffer.preencode(o,n.encryptionKey),d>=28&&n.lastAccessed&&e.uint.preencode(o,n.lastAccessed),d>=28&&n.version&&e.uint.preencode(o,n.version)},encode(o,n){const c=(n.encryptionKey?1:0)|(n.cleared?2:0)|(n.own?4:0)|(d>=28&&n.lastAccessed?8:0)|(d>=28&&n.version?16:0);Rr.encode(o,n.file),e.fixed32.encode(o,n.roomKey),e.uint.encode(o,c),n.encryptionKey&&e.buffer.encode(o,n.encryptionKey),d>=28&&n.lastAccessed&&e.uint.encode(o,n.lastAccessed),d>=28&&n.version&&e.uint.encode(o,n.version)},decode(o){const n=Rr.decode(o),c=e.fixed32.decode(o),r=e.uint.decode(o);return{file:n,roomKey:c,encryptionKey:1&r?e.buffer.decode(o):null,cleared:!!(2&r),own:!!(4&r),lastAccessed:d>=28&&8&r?e.uint.decode(o):0,version:d>=28&&16&r?e.uint.decode(o):0}}},Sr=$,Ir={preencode(o,c){Sr.preencode(o,c.header),n.preencode(o,c.oplog),e.uint.preencode(o,c.index),_a.preencode(o,c.preview),o.end++,d>=12&&c.displayType&&Gr.preencode(o,c.displayType)},encode(o,c){const r=d>=12&&c.displayType?1:0;Sr.encode(o,c.header),n.encode(o,c.oplog),e.uint.encode(o,c.index),_a.encode(o,c.preview),e.uint.encode(o,r),d>=12&&c.displayType&&Gr.encode(o,c.displayType)},decode(o){const c=Sr.decode(o),r=n.decode(o),t=e.uint.decode(o),i=_a.decode(o),a=o.start<o.end?e.uint.decode(o):0;return{header:c,oplog:r,index:t,preview:i,displayType:d>=12&&1&a?Gr.decode(o):0}}},Fr={preencode(o,n){o.end++,d>=4&&n.memberKey&&e.fixed32.preencode(o,n.memberKey)},encode(o,n){const c=d>=4&&n.memberKey?1:0;e.uint.encode(o,c),d>=4&&n.memberKey&&e.fixed32.encode(o,n.memberKey)},decode(o){const n=e.uint.decode(o);return{memberKey:d>=4&&1&n?e.fixed32.decode(o):null}}},Mr=pe,Cr={preencode(e,d){Mr.preencode(e,d.profile),ne.preencode(e,d.attestation)},encode(e,d){Mr.encode(e,d.profile),ne.encode(e,d.attestation)},decode:e=>({profile:Mr.decode(e),attestation:ne.decode(e)})},Vr=$,Hr={preencode(d,o){Vr.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){Vr.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:Vr.decode(d),key:e.fixed32.decode(d)})},Dr={preencode(d,o){e.fixed32.preencode(d,o.deviceKey),ne.preencode(d,o.privateProfileIdentity),e.buffer.preencode(d,o.deviceProof)},encode(d,o){e.fixed32.encode(d,o.deviceKey),ne.encode(d,o.privateProfileIdentity),e.buffer.encode(d,o.deviceProof)},decode:d=>({deviceKey:e.fixed32.decode(d),privateProfileIdentity:ne.decode(d),deviceProof:e.buffer.decode(d)})},Lr={preencode(o,n){e.fixed32.preencode(o,n.roomKey),e.fixed32.preencode(o,n.encryptionKey),e.fixed32.preencode(o,n.seed),o.end++,d>=9&&n.fastForwardTo&&e.fixed32.preencode(o,n.fastForwardTo)},encode(o,n){const c=d>=9&&n.fastForwardTo?1:0;e.fixed32.encode(o,n.roomKey),e.fixed32.encode(o,n.encryptionKey),e.fixed32.encode(o,n.seed),e.uint.encode(o,c),d>=9&&n.fastForwardTo&&e.fixed32.encode(o,n.fastForwardTo)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),r=e.fixed32.decode(o),t=e.uint.decode(o);return{roomKey:n,encryptionKey:c,seed:r,fastForwardTo:d>=9&&1&t?e.fixed32.decode(o):null}}},qr={preencode(o,n){e.fixed32.preencode(o,n.publicKey),e.fixed32.preencode(o,n.writerKey),e.fixed32.preencode(o,n.devicePublicKey),o.end++,d>=9&&n.privateProfileKey&&e.fixed32.preencode(o,n.privateProfileKey)},encode(o,n){const c=d>=9&&n.privateProfileKey?1:0;e.fixed32.encode(o,n.publicKey),e.fixed32.encode(o,n.writerKey),e.fixed32.encode(o,n.devicePublicKey),e.uint.encode(o,c),d>=9&&n.privateProfileKey&&e.fixed32.encode(o,n.privateProfileKey)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),r=e.fixed32.decode(o),t=e.uint.decode(o);return{publicKey:n,writerKey:c,devicePublicKey:r,privateProfileKey:d>=9&&1&t?e.fixed32.decode(o):null}}},jr=$,Er={preencode(d,o){jr.preencode(d,o.header),e.fixed32.preencode(d,o.memberKey)},encode(d,o){jr.encode(d,o.header),e.fixed32.encode(d,o.memberKey)},decode:d=>({header:jr.decode(d),memberKey:e.fixed32.decode(d)})},Br={preencode(d,o){e.fixed32.preencode(d,o.privateProfileKey)},encode(d,o){e.fixed32.encode(d,o.privateProfileKey)},decode:d=>({privateProfileKey:e.fixed32.decode(d)})},zr={preencode(d,o){e.fixed32.preencode(d,o.key),e.fixed32.preencode(d,o.responsePublicKey)},encode(d,o){e.fixed32.encode(d,o.key),e.fixed32.encode(d,o.responsePublicKey)},decode:d=>({key:e.fixed32.decode(d),responsePublicKey:e.fixed32.decode(d)})},Or={preencode(o,n){e.fixed32.preencode(o,n.roomKey),o.end++,d>=10&&n.repairs&&e.uint.preencode(o,n.repairs)},encode(o,n){const c=d>=10&&n.repairs?1:0;e.fixed32.encode(o,n.roomKey),e.uint.encode(o,c),d>=10&&n.repairs&&e.uint.encode(o,n.repairs)},decode(o){const n=e.fixed32.decode(o),c=e.uint.decode(o);return{roomKey:n,repairs:d>=10&&1&c?e.uint.decode(o):0}}},Nr={preencode(o,n){o.end++,d>=11&&n.key&&e.string.preencode(o,n.key),d>=11&&n.description&&e.string.preencode(o,n.description)},encode(o,n){const c=(d>=11&&n.key?1:0)|(d>=11&&n.value?2:0)|(d>=11&&n.description?4:0);e.uint.encode(o,c),d>=11&&n.key&&e.string.encode(o,n.key),d>=11&&n.description&&e.string.encode(o,n.description)},decode(o){const n=e.uint.decode(o);return{key:d>=11&&1&n?e.string.decode(o):null,value:d>=11&&!!(2&n),description:d>=11&&4&n?e.string.decode(o):null}}},Ur=e.array(e.frame(Nr)),Jr={preencode(e,o){e.end++,d>=11&&o.flags&&Ur.preencode(e,o.flags)},encode(o,n){const c=d>=11&&n.flags?1:0;e.uint.encode(o,c),d>=11&&n.flags&&Ur.encode(o,n.flags)},decode(o){const n=e.uint.decode(o);return{flags:d>=11&&1&n?Ur.decode(o):null}}},Wr={HttpLink:1,PearLink:2},Gr={preencode(e,d){e.end++},encode(d,o){if(o>2)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},Qr=$,Xr={preencode(d,o){Qr.preencode(d,o.header),e.uint.preencode(d,o.value)},encode(d,o){Qr.encode(d,o.header),e.uint.encode(d,o.value)},decode:d=>({header:Qr.decode(d),value:e.uint.decode(d)})},Yr={preencode(d,o){e.uint.preencode(d,o.key),e.uint.preencode(d,o.value)},encode(d,o){e.uint.encode(d,o.key),e.uint.encode(d,o.value)},decode:d=>({key:e.uint.decode(d),value:e.uint.decode(d)})},Zr=$,$r={preencode(o,n){Zr.preencode(o,n.header),e.uint.preencode(o,n.from),e.uint.preencode(o,n.to),o.end++,d>=29&&n.buildType&&xi.preencode(o,n.buildType)},encode(o,n){const c=d>=29&&n.buildType?1:0;Zr.encode(o,n.header),e.uint.encode(o,n.from),e.uint.encode(o,n.to),e.uint.encode(o,c),d>=29&&n.buildType&&xi.encode(o,n.buildType)},decode(o){const n=Zr.decode(o),c=e.uint.decode(o),r=e.uint.decode(o),t=o.start<o.end?e.uint.decode(o):0;return{header:n,from:c,to:r,buildType:d>=29&&1&t?xi.decode(o):null}}},_r={RoomType:1,IsExperimental:2,IsJoiningDisabled:3,IsAppendingDisabled:4,IsCallingDisabled:5,IsMembershipEventsDisabled:6,IsAttachmentsDisabled:7,IsLinksDisabled:8,IsRoomInviteHidden:9},et={preencode(e,d){e.end++},encode(d,o){if(o>9)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},dt=We,ot={preencode(o,n){o.end++,d>=16&&n.nodes&&dt.preencode(o,n.nodes),d>=24&&n.concurrency&&e.uint.preencode(o,n.concurrency),d>=24&&n.maxWindow&&e.uint.preencode(o,n.maxWindow),d>=24&&n.randomPunchInterval&&e.uint.preencode(o,n.randomPunchInterval),d>=24&&n.connectionKeepAlive&&e.uint.preencode(o,n.connectionKeepAlive)},encode(o,n){const c=(d>=16&&n.nodes?1:0)|(d>=24&&n.concurrency?2:0)|(d>=24&&n.maxWindow?4:0)|(d>=24&&n.randomPunchInterval?8:0)|(d>=24&&n.connectionKeepAlive?16:0);e.uint.encode(o,c),d>=16&&n.nodes&&dt.encode(o,n.nodes),d>=24&&n.concurrency&&e.uint.encode(o,n.concurrency),d>=24&&n.maxWindow&&e.uint.encode(o,n.maxWindow),d>=24&&n.randomPunchInterval&&e.uint.encode(o,n.randomPunchInterval),d>=24&&n.connectionKeepAlive&&e.uint.encode(o,n.connectionKeepAlive)},decode(o){const n=e.uint.decode(o);return{nodes:d>=16&&1&n?dt.decode(o):null,concurrency:d>=24&&2&n?e.uint.decode(o):0,maxWindow:d>=24&&4&n?e.uint.decode(o):0,randomPunchInterval:d>=24&&8&n?e.uint.decode(o):0,connectionKeepAlive:d>=24&&16&n?e.uint.decode(o):0}}},nt={en:"en",it:"it",ru:"ru",es:"es",de:"de"},ct={preencode(e,d){e.end++},encode(d,o){switch(o){case"en":e.uint.encode(d,1);break;case"it":e.uint.encode(d,2);break;case"ru":e.uint.encode(d,3);break;case"es":e.uint.encode(d,4);break;case"de":e.uint.encode(d,5);break;default:throw new Error("Unknown enum")}},decode(d){switch(e.uint.decode(d)){case 1:return"en";case 2:return"it";case 3:return"ru";case 4:return"es";case 5:return"de";default:return null}}},rt=Hd,tt={preencode(d,o){rt.preencode(d,o.range),ct.preencode(d,o.language),e.string.preencode(d,o.text)},encode(d,o){rt.encode(d,o.range),ct.encode(d,o.language),e.string.encode(d,o.text)},decode:d=>({range:rt.decode(d),language:ct.decode(d),text:e.string.decode(d)})},it={preencode(d,o){e.fixed32.preencode(d,o.roomKey),e.uint.preencode(d,o.count)},encode(d,o){e.fixed32.encode(d,o.roomKey),e.uint.encode(d,o.count)},decode:d=>({roomKey:e.fixed32.decode(d),count:e.uint.decode(d)})},at={preencode(d,o){e.fixed32.preencode(d,o.deviceKey),e.fixed32.preencode(d,o.key)},encode(d,o){e.fixed32.encode(d,o.deviceKey),e.fixed32.encode(d,o.key)},decode:d=>({deviceKey:e.fixed32.decode(d),key:e.fixed32.decode(d)})},st=$,pt={preencode(d,o){st.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){st.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:st.decode(d),key:e.fixed32.decode(d)})},lt=$,ut={preencode(d,o){lt.preencode(d,o.header),e.fixed32.preencode(d,o.key)},encode(d,o){lt.encode(d,o.header),e.fixed32.encode(d,o.key)},decode:d=>({header:lt.decode(d),key:e.fixed32.decode(d)})},ft={Flag:1},mt={preencode(e,d){e.end++},encode(d,o){if(o>1)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},yt={preencode(d,o){uo.preencode(d,o.id),e.fixed32.preencode(d,o.sender),e.uint.preencode(d,o.clock),mt.preencode(d,o.label)},encode(d,o){uo.encode(d,o.id),e.fixed32.encode(d,o.sender),e.uint.encode(d,o.clock),mt.encode(d,o.label)},decode:d=>({id:uo.decode(d),sender:e.fixed32.decode(d),clock:e.uint.decode(d),label:mt.decode(d)})},bt=$,xt={preencode(e,d){bt.preencode(e,d.header),n.preencode(e,d.oplog),mt.preencode(e,d.label)},encode(e,d){bt.encode(e,d.header),n.encode(e,d.oplog),mt.encode(e,d.label)},decode:e=>({header:bt.decode(e),oplog:n.decode(e),label:mt.decode(e)})},vt=$,kt={preencode(e,d){vt.preencode(e,d.header),n.preencode(e,d.oplog),mt.preencode(e,d.label)},encode(e,d){vt.encode(e,d.header),n.encode(e,d.oplog),mt.encode(e,d.label)},decode:e=>({header:vt.decode(e),oplog:n.decode(e),label:mt.decode(e)})},gt={preencode(d,o){mt.preencode(d,o.label),e.uint.preencode(d,o.count)},encode(d,o){mt.encode(d,o.label),e.uint.encode(d,o.count)},decode:d=>({label:mt.decode(d),count:e.uint.decode(d)})},Kt=e.array(e.frame(gt)),ht={preencode(o,n){uo.preencode(o,n.id),e.uint.preencode(o,n.total),Kt.preencode(o,n.labels),e.uint.preencode(o,n.editedAt),o.end++,d>=24&&n.flagsClock&&e.uint.preencode(o,n.flagsClock),d>=24&&n.version&&e.uint.preencode(o,n.version)},encode(o,n){const c=(d>=24&&n.flagsClock?1:0)|(d>=24&&n.version?2:0)|(d>=25&&n.isDeleted?4:0);uo.encode(o,n.id),e.uint.encode(o,n.total),Kt.encode(o,n.labels),e.uint.encode(o,n.editedAt),e.uint.encode(o,c),d>=24&&n.flagsClock&&e.uint.encode(o,n.flagsClock),d>=24&&n.version&&e.uint.encode(o,n.version)},decode(o){const n=uo.decode(o),c=e.uint.decode(o),r=Kt.decode(o),t=e.uint.decode(o),i=o.start<o.end?e.uint.decode(o):0;return{id:n,total:c,labels:r,editedAt:t,flagsClock:d>=24&&1&i?e.uint.decode(o):0,version:d>=24&&2&i?e.uint.decode(o):0,isDeleted:d>=25&&!!(4&i)}}},wt=$,Pt={preencode(d,o){wt.preencode(d,o.header),e.uint.preencode(d,o.length)},encode(d,o){wt.encode(d,o.header),e.uint.encode(d,o.length)},decode:d=>({header:wt.decode(d),length:e.uint.decode(d)})},Tt={preencode(d,o){e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.length)},encode(d,o){e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.length)},decode:d=>({memberKey:e.fixed32.decode(d),length:e.uint.decode(d)})},Rt=Z,At={preencode(o,n){o.end++,d>=33&&n.profileSnoozeTime&&e.uint.preencode(o,n.profileSnoozeTime)},encode(o,n){const c=(d>=19&&n.disableReadReceipts?1:0)|(d>=31&&n.stripAttachmentMetadata?2:0)|(d>=33&&n.profileSnoozeTime?4:0);e.uint.encode(o,c),d>=33&&n.profileSnoozeTime&&e.uint.encode(o,n.profileSnoozeTime)},decode(o){const n=e.uint.decode(o);return{disableReadReceipts:d>=19&&!!(1&n),stripAttachmentMetadata:d>=31&&!!(2&n),profileSnoozeTime:d>=33&&4&n?e.uint.decode(o):0}}},St={disableReadReceipts:"disableReadReceipts",stripAttachmentMetadata:"stripAttachmentMetadata",profileSnoozeTime:"profileSnoozeTime"},It={preencode(e,d){e.end++},encode(d,o){switch(o){case"disableReadReceipts":e.uint.encode(d,1);break;case"stripAttachmentMetadata":e.uint.encode(d,2);break;case"profileSnoozeTime":e.uint.encode(d,3);break;default:throw new Error("Unknown enum")}},decode(d){switch(e.uint.decode(d)){case 1:return"disableReadReceipts";case 2:return"stripAttachmentMetadata";case 3:return"profileSnoozeTime";default:return null}}},Ft=$,Mt=e.frame(At),Ct={preencode(e,d){Ft.preencode(e,d.header),It.preencode(e,d.key),Mt.preencode(e,d.settings)},encode(e,d){Ft.encode(e,d.header),It.encode(e,d.key),Mt.encode(e,d.settings)},decode:e=>({header:Ft.decode(e),key:It.decode(e),settings:Mt.decode(e)})},Vt={preencode(o,n){o.end++,d>=20&&n.roomKey&&e.fixed32.preencode(o,n.roomKey),d>=23&&n.coreKey&&e.fixed32.preencode(o,n.coreKey)},encode(o,n){const c=(d>=20&&n.roomKey?1:0)|(d>=23&&n.coreKey?2:0);e.uint.encode(o,c),d>=20&&n.roomKey&&e.fixed32.encode(o,n.roomKey),d>=23&&n.coreKey&&e.fixed32.encode(o,n.coreKey)},decode(o){const n=e.uint.decode(o);return{roomKey:d>=20&&1&n?e.fixed32.decode(o):null,coreKey:d>=23&&2&n?e.fixed32.decode(o):null}}},Ht=e.frame(Vt),Dt={preencode(o,n){e.string.preencode(o,n.code),e.string.preencode(o,n.message),e.string.preencode(o,n.stack),e.uint.preencode(o,n.timestamp),o.end++,d>=20&&n.details&&Ht.preencode(o,n.details)},encode(o,n){const c=d>=20&&n.details?1:0;e.string.encode(o,n.code),e.string.encode(o,n.message),e.string.encode(o,n.stack),e.uint.encode(o,n.timestamp),e.uint.encode(o,c),d>=20&&n.details&&Ht.encode(o,n.details)},decode(o){const n=e.string.decode(o),c=e.string.decode(o),r=e.string.decode(o),t=e.uint.decode(o),i=e.uint.decode(o);return{code:n,message:c,stack:r,timestamp:t,details:d>=20&&1&i?Ht.decode(o):null}}},Lt={RESUME:1,WAKEUP:2,PRESUSPEND:3,SUSPEND:4},qt={preencode(e,d){e.end++},encode(d,o){if(o>4)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},jt={preencode(d,o){e.fixed32.preencode(d,o.roomKey),e.uint.preencode(d,o.total)},encode(d,o){e.fixed32.encode(d,o.roomKey),e.uint.encode(d,o.total)},decode:d=>({roomKey:e.fixed32.decode(d),total:e.uint.decode(d)})},Et={Flag:1},Bt={preencode(e,d){e.end++},encode(d,o){if(o>1)throw new Error("Unknown enum");e.uint.encode(d,o)},decode:d=>e.uint.decode(d)},zt={preencode(d,o){e.fixed32.preencode(d,o.key),e.fixed32.preencode(d,o.sender),e.uint.preencode(d,o.clock),Bt.preencode(d,o.label)},encode(d,o){e.fixed32.encode(d,o.key),e.fixed32.encode(d,o.sender),e.uint.encode(d,o.clock),Bt.encode(d,o.label)},decode:d=>({key:e.fixed32.decode(d),sender:e.fixed32.decode(d),clock:e.uint.decode(d),label:Bt.decode(d)})},Ot=$,Nt={preencode(d,o){Ot.preencode(d,o.header),e.fixed32.preencode(d,o.key),Bt.preencode(d,o.label)},encode(d,o){Ot.encode(d,o.header),e.fixed32.encode(d,o.key),Bt.encode(d,o.label)},decode:d=>({header:Ot.decode(d),key:e.fixed32.decode(d),label:Bt.decode(d)})},Ut={preencode(d,o){Bt.preencode(d,o.label),e.uint.preencode(d,o.count)},encode(d,o){Bt.encode(d,o.label),e.uint.encode(d,o.count)},decode:d=>({label:Bt.decode(d),count:e.uint.decode(d)})},Jt=e.array(e.frame(Ut)),Wt={preencode(d,o){e.fixed32.preencode(d,o.key),e.uint.preencode(d,o.total),Jt.preencode(d,o.labels),e.uint.preencode(d,o.editedAt),e.uint.preencode(d,o.flagsClock)},encode(d,o){e.fixed32.encode(d,o.key),e.uint.encode(d,o.total),Jt.encode(d,o.labels),e.uint.encode(d,o.editedAt),e.uint.encode(d,o.flagsClock)},decode:d=>({key:e.fixed32.decode(d),total:e.uint.decode(d),labels:Jt.decode(d),editedAt:e.uint.decode(d),flagsClock:e.uint.decode(d)})},Gt={preencode(d,o){e.float64.preencode(d,o.latitude),e.float64.preencode(d,o.longitude)},encode(d,o){e.float64.encode(d,o.latitude),e.float64.encode(d,o.longitude)},decode:d=>({latitude:e.float64.decode(d),longitude:e.float64.decode(d)})},Qt=$,Xt={preencode(d,o){Qt.preencode(d,o.header),e.fixed32.preencode(d,o.deviceKey),e.fixed32.preencode(d,o.fromDeviceKey)},encode(d,o){Qt.encode(d,o.header),e.fixed32.encode(d,o.deviceKey),e.fixed32.encode(d,o.fromDeviceKey)},decode:d=>({header:Qt.decode(d),deviceKey:e.fixed32.decode(d),fromDeviceKey:e.fixed32.decode(d)})},Yt=$,Zt=X,$t={preencode(o,n){Yt.preencode(o,n.header),e.fixed32.preencode(o,n.callKey),e.buffer.preencode(o,n.encryptionKey),o.end++,d>=28&&n.streams&&Zt.preencode(o,n.streams),d>=28&&n.discoveryKey&&e.fixed32.preencode(o,n.discoveryKey),d>=28&&n.version&&e.uint.preencode(o,n.version),d>=36&&n.streamInputs&&es.preencode(o,n.streamInputs),d>=36&&n.swarmKey&&e.fixed32.preencode(o,n.swarmKey)},encode(o,n){const c=(d>=28&&n.streams?1:0)|(d>=28&&n.discoveryKey?2:0)|(d>=28&&n.version?4:0)|(d>=36&&n.streamInputs?8:0)|(d>=36&&n.swarmKey?16:0);Yt.encode(o,n.header),e.fixed32.encode(o,n.callKey),e.buffer.encode(o,n.encryptionKey),e.uint.encode(o,c),d>=28&&n.streams&&Zt.encode(o,n.streams),d>=28&&n.discoveryKey&&e.fixed32.encode(o,n.discoveryKey),d>=28&&n.version&&e.uint.encode(o,n.version),d>=36&&n.streamInputs&&es.encode(o,n.streamInputs),d>=36&&n.swarmKey&&e.fixed32.encode(o,n.swarmKey)},decode(o){const n=Yt.decode(o),c=e.fixed32.decode(o),r=e.buffer.decode(o),t=e.uint.decode(o);return{header:n,callKey:c,encryptionKey:r,streams:d>=28&&1&t?Zt.decode(o):null,discoveryKey:d>=28&&2&t?e.fixed32.decode(o):null,version:d>=28&&4&t?e.uint.decode(o):0,streamInputs:d>=36&&8&t?es.decode(o):null,swarmKey:d>=36&&16&t?e.fixed32.decode(o):null}}},_t=$,ei=X,di={preencode(o,n){_t.preencode(o,n.header),e.fixed32.preencode(o,n.callKey),o.end++,d>=28&&n.streams&&ei.preencode(o,n.streams),d>=36&&n.streamInputs&&ds.preencode(o,n.streamInputs),d>=36&&n.swarmKey&&e.fixed32.preencode(o,n.swarmKey)},encode(o,n){const c=(d>=28&&n.streams?1:0)|(d>=36&&n.streamInputs?2:0)|(d>=36&&n.swarmKey?4:0);_t.encode(o,n.header),e.fixed32.encode(o,n.callKey),e.uint.encode(o,c),d>=28&&n.streams&&ei.encode(o,n.streams),d>=36&&n.streamInputs&&ds.encode(o,n.streamInputs),d>=36&&n.swarmKey&&e.fixed32.encode(o,n.swarmKey)},decode(o){const n=_t.decode(o),c=e.fixed32.decode(o),r=e.uint.decode(o);return{header:n,callKey:c,streams:d>=28&&1&r?ei.decode(o):null,streamInputs:d>=36&&2&r?ds.decode(o):null,swarmKey:d>=36&&4&r?e.fixed32.decode(o):null}}},oi=$,ni={preencode(d,o){oi.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){oi.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:oi.decode(d),callKey:e.fixed32.decode(d)})},ci=$,ri={preencode(d,o){ci.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){ci.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:ci.decode(d),callKey:e.fixed32.decode(d)})},ti=$,ii={preencode(o,n){ti.preencode(o,n.header),e.fixed32.preencode(o,n.callKey),e.fixed32.preencode(o,n.streamKey),o.end++,d>=36&&n.mediaStreamId&&e.string.preencode(o,n.mediaStreamId),d>=36&&n.type&&e.string.preencode(o,n.type)},encode(o,n){const c=(d>=36&&n.mediaStreamId?1:0)|(d>=36&&n.type?2:0)|(d>=36&&n.muted?4:0);ti.encode(o,n.header),e.fixed32.encode(o,n.callKey),e.fixed32.encode(o,n.streamKey),e.uint.encode(o,c),d>=36&&n.mediaStreamId&&e.string.encode(o,n.mediaStreamId),d>=36&&n.type&&e.string.encode(o,n.type)},decode(o){const n=ti.decode(o),c=e.fixed32.decode(o),r=e.fixed32.decode(o),t=o.start<o.end?e.uint.decode(o):0;return{header:n,callKey:c,streamKey:r,mediaStreamId:d>=36&&1&t?e.string.decode(o):null,type:d>=36&&2&t?e.string.decode(o):null,muted:d>=36&&!!(4&t)}}},ai=$,si={preencode(d,o){ai.preencode(d,o.header),e.fixed32.preencode(d,o.callKey),e.fixed32.preencode(d,o.streamKey)},encode(d,o){ai.encode(d,o.header),e.fixed32.encode(d,o.callKey),e.fixed32.encode(d,o.streamKey)},decode:d=>({header:ai.decode(d),callKey:e.fixed32.decode(d),streamKey:e.fixed32.decode(d)})},pi={preencode(o,n){e.fixed32.preencode(o,n.callKey),e.buffer.preencode(o,n.encryptionKey),e.uint.preencode(o,n.createdAt),o.end++,d>=28&&n.endedAt&&e.uint.preencode(o,n.endedAt),d>=28&&n.discoveryKey&&e.fixed32.preencode(o,n.discoveryKey),d>=28&&n.version&&e.uint.preencode(o,n.version)},encode(o,n){const c=(d>=28&&n.endedAt?1:0)|(d>=28&&n.discoveryKey?2:0)|(d>=28&&n.version?4:0);e.fixed32.encode(o,n.callKey),e.buffer.encode(o,n.encryptionKey),e.uint.encode(o,n.createdAt),e.uint.encode(o,c),d>=28&&n.endedAt&&e.uint.encode(o,n.endedAt),d>=28&&n.discoveryKey&&e.fixed32.encode(o,n.discoveryKey),d>=28&&n.version&&e.uint.encode(o,n.version)},decode(o){const n=e.fixed32.decode(o),c=e.buffer.decode(o),r=e.uint.decode(o),t=e.uint.decode(o);return{callKey:n,encryptionKey:c,createdAt:r,endedAt:d>=28&&1&t?e.uint.decode(o):0,discoveryKey:d>=28&&2&t?e.fixed32.decode(o):null,version:d>=28&&4&t?e.uint.decode(o):0}}},li={preencode(d,o){e.fixed32.preencode(d,o.callKey),e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.createdAt)},encode(d,o){e.fixed32.encode(d,o.callKey),e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.createdAt)},decode:d=>({callKey:e.fixed32.decode(d),memberKey:e.fixed32.decode(d),createdAt:e.uint.decode(d)})},ui={preencode(o,n){e.fixed32.preencode(o,n.callKey),e.fixed32.preencode(o,n.deviceKey),e.fixed32.preencode(o,n.memberKey),e.uint.preencode(o,n.createdAt),o.end++,d>=28&&n.swarmKey&&e.fixed32.preencode(o,n.swarmKey),d>=32&&n.lastHeartbeatAt&&e.uint.preencode(o,n.lastHeartbeatAt)},encode(o,n){const c=(d>=28&&n.swarmKey?1:0)|(d>=32&&n.lastHeartbeatAt?2:0)|(d>=33&&n.isRecording?4:0);e.fixed32.encode(o,n.callKey),e.fixed32.encode(o,n.deviceKey),e.fixed32.encode(o,n.memberKey),e.uint.encode(o,n.createdAt),e.uint.encode(o,c),d>=28&&n.swarmKey&&e.fixed32.encode(o,n.swarmKey),d>=32&&n.lastHeartbeatAt&&e.uint.encode(o,n.lastHeartbeatAt)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),r=e.fixed32.decode(o),t=e.uint.decode(o),i=e.uint.decode(o);return{callKey:n,deviceKey:c,memberKey:r,createdAt:t,swarmKey:d>=28&&1&i?e.fixed32.decode(o):null,lastHeartbeatAt:d>=32&&2&i?e.uint.decode(o):0,isRecording:d>=33&&!!(4&i)}}},fi={preencode(o,n){e.fixed32.preencode(o,n.callKey),e.fixed32.preencode(o,n.deviceKey),e.buffer.preencode(o,n.streamKey),e.uint.preencode(o,n.createdAt),o.end++,d>=36&&n.mediaStreamId&&e.string.preencode(o,n.mediaStreamId),d>=36&&n.type&&e.string.preencode(o,n.type),d>=36&&n.statusKey&&e.uint.preencode(o,n.statusKey)},encode(o,n){const c=(d>=36&&n.mediaStreamId?1:0)|(d>=36&&n.type?2:0)|(d>=36&&n.statusKey?4:0);e.fixed32.encode(o,n.callKey),e.fixed32.encode(o,n.deviceKey),e.buffer.encode(o,n.streamKey),e.uint.encode(o,n.createdAt),e.uint.encode(o,c),d>=36&&n.mediaStreamId&&e.string.encode(o,n.mediaStreamId),d>=36&&n.type&&e.string.encode(o,n.type),d>=36&&n.statusKey&&e.uint.encode(o,n.statusKey)},decode(o){const n=e.fixed32.decode(o),c=e.fixed32.decode(o),r=e.buffer.decode(o),t=e.uint.decode(o),i=o.start<o.end?e.uint.decode(o):0;return{callKey:n,deviceKey:c,streamKey:r,createdAt:t,mediaStreamId:d>=36&&1&i?e.string.decode(o):null,type:d>=36&&2&i?e.string.decode(o):null,statusKey:d>=36&&4&i?e.uint.decode(o):0}}},mi={preencode(o,n){e.fixed32.preencode(o,n.callKey),o.end++,d>=28&&n.selfDeviceKey&&e.fixed32.preencode(o,n.selfDeviceKey),d>=36&&n.createdAt&&e.uint.preencode(o,n.createdAt)},encode(o,n){const c=(d>=28&&n.selfDeviceKey?1:0)|(d>=36&&n.createdAt?2:0);e.fixed32.encode(o,n.callKey),e.uint.encode(o,c),d>=28&&n.selfDeviceKey&&e.fixed32.encode(o,n.selfDeviceKey),d>=36&&n.createdAt&&e.uint.encode(o,n.createdAt)},decode(o){const n=e.fixed32.decode(o),c=e.uint.decode(o);return{callKey:n,selfDeviceKey:d>=28&&1&c?e.fixed32.decode(o):null,createdAt:d>=36&&2&c?e.uint.decode(o):0}}},yi={preencode(d,o){e.uint.preencode(d,o.lastCleared)},encode(d,o){e.uint.encode(d,o.lastCleared)},decode:d=>({lastCleared:e.uint.decode(d)})},bi={Nightly:"Nightly",Internal:"Internal",Production:"Production"},xi={preencode(e,d){e.end++},encode(d,o){switch(o){case"Nightly":e.uint.encode(d,1);break;case"Internal":e.uint.encode(d,2);break;case"Production":e.uint.encode(d,3);break;default:throw new Error("Unknown enum")}},decode(d){switch(e.uint.decode(d)){case 1:return"Nightly";case 2:return"Internal";case 3:return"Production";default:return null}}},vi=$,ki={preencode(e,d){vi.preencode(e,d.header)},encode(e,d){vi.encode(e,d.header)},decode:e=>({header:vi.decode(e)})},gi=$,Ki={preencode(e,d){gi.preencode(e,d.header)},encode(e,d){gi.encode(e,d.header)},decode:e=>({header:gi.decode(e)})},hi={preencode(o,n){xi.preencode(o,n.buildType),o.end++,d>=30&&n.latestOfflineAbi&&e.uint.preencode(o,n.latestOfflineAbi)},encode(o,n){const c=d>=30&&n.latestOfflineAbi?1:0;xi.encode(o,n.buildType),e.uint.encode(o,c),d>=30&&n.latestOfflineAbi&&e.uint.encode(o,n.latestOfflineAbi)},decode(o){const n=xi.decode(o),c=o.start<o.end?e.uint.decode(o):0;return{buildType:n,latestOfflineAbi:d>=30&&1&c?e.uint.decode(o):0}}},wi=$,Pi={preencode(d,o){wi.preencode(d,o.header),e.fixed32.preencode(d,o.deviceKey),e.buffer.preencode(d,o.deviceProof),e.buffer.preencode(d,o.writerProof)},encode(d,o){wi.encode(d,o.header),e.fixed32.encode(d,o.deviceKey),e.buffer.encode(d,o.deviceProof),e.buffer.encode(d,o.writerProof)},decode:d=>({header:wi.decode(d),deviceKey:e.fixed32.decode(d),deviceProof:e.buffer.decode(d),writerProof:e.buffer.decode(d)})},Ti={preencode(o,n){o.end++,d>=31&&n.otaResyncPrivateProfileBump&&e.uint.preencode(o,n.otaResyncPrivateProfileBump)},encode(o,n){const c=d>=31&&n.otaResyncPrivateProfileBump?1:0;e.uint.encode(o,c),d>=31&&n.otaResyncPrivateProfileBump&&e.uint.encode(o,n.otaResyncPrivateProfileBump)},decode(o){const n=e.uint.decode(o);return{otaResyncPrivateProfileBump:d>=31&&1&n?e.uint.decode(o):0}}},Ri={preencode(d,o){e.fixed32.preencode(d,o.deviceKey),e.buffer.preencode(d,o.proof),e.uint.preencode(d,o.createdAt)},encode(d,o){e.fixed32.encode(d,o.deviceKey),e.buffer.encode(d,o.proof),e.uint.encode(d,o.createdAt)},decode:d=>({deviceKey:e.fixed32.decode(d),proof:e.buffer.decode(d),createdAt:e.uint.decode(d)})},Ai=$,Si={preencode(d,o){Ai.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){Ai.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:Ai.decode(d),callKey:e.fixed32.decode(d)})},Ii=$,Fi={preencode(d,o){Ii.preencode(d,o.header),e.fixed32.preencode(d,o.callKey),e.fixed32.preencode(d,o.deviceKey)},encode(d,o){Ii.encode(d,o.header),e.fixed32.encode(d,o.callKey),e.fixed32.encode(d,o.deviceKey)},decode:d=>({header:Ii.decode(d),callKey:e.fixed32.decode(d),deviceKey:e.fixed32.decode(d)})},Mi=e.frame(ht),Ci=e.array(e.frame(yt)),Vi={preencode(e,d){Mi.preencode(e,d.digest),Ci.preencode(e,d.mine)},encode(e,d){Mi.encode(e,d.digest),Ci.encode(e,d.mine)},decode:e=>({digest:Mi.decode(e),mine:Ci.decode(e)})},Hi=$,Di={preencode(d,o){Hi.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){Hi.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:Hi.decode(d),callKey:e.fixed32.decode(d)})},Li=$,qi={preencode(d,o){Li.preencode(d,o.header),e.fixed32.preencode(d,o.callKey)},encode(d,o){Li.encode(d,o.header),e.fixed32.encode(d,o.callKey)},decode:d=>({header:Li.decode(d),callKey:e.fixed32.decode(d)})},ji={preencode(o,n){o.end++,d>=33&&n.profileSnoozeTime&&e.uint.preencode(o,n.profileSnoozeTime)},encode(o,n){const c=(d>=33&&n.disableReadReceipts?1:0)|(d>=33&&n.stripAttachmentMetadata?2:0)|(d>=33&&n.profileSnoozeTime?4:0);e.uint.encode(o,c),d>=33&&n.profileSnoozeTime&&e.uint.encode(o,n.profileSnoozeTime)},decode(o){const n=e.uint.decode(o);return{disableReadReceipts:d>=33&&!!(1&n),stripAttachmentMetadata:d>=33&&!!(2&n),profileSnoozeTime:d>=33&&4&n?e.uint.decode(o):0}}},Ei={preencode(o,n){o.end++,d>=33&&n.maxPeers&&e.uint.preencode(o,n.maxPeers)},encode(o,n){const c=d>=33&&n.maxPeers?1:0;e.uint.encode(o,c),d>=33&&n.maxPeers&&e.uint.encode(o,n.maxPeers)},decode(o){const n=e.uint.decode(o);return{maxPeers:d>=33&&1&n?e.uint.decode(o):0}}},Bi=$,zi={preencode(e,d){Bi.preencode(e,d.header),n.preencode(e,d.oplog)},encode(e,d){Bi.encode(e,d.header),n.encode(e,d.oplog)},decode:e=>({header:Bi.decode(e),oplog:n.decode(e)})},Oi=$,Ni={preencode(e,d){Oi.preencode(e,d.header)},encode(e,d){Oi.encode(e,d.header)},decode:e=>({header:Oi.decode(e)})},Ui={preencode(d,o){e.fixed32.preencode(d,o.memberKey),e.uint.preencode(d,o.timestamp)},encode(d,o){e.fixed32.encode(d,o.memberKey),e.uint.encode(d,o.timestamp)},decode:d=>({memberKey:e.fixed32.decode(d),timestamp:e.uint.decode(d)})},Ji=$,Wi={preencode(o,n){Ji.preencode(o,n.header),e.fixed32.preencode(o,n.memberKey),o.end++,d>=34&&n.alias&&e.string.preencode(o,n.alias)},encode(o,n){const c=d>=34&&n.alias?1:0;Ji.encode(o,n.header),e.fixed32.encode(o,n.memberKey),e.uint.encode(o,c),d>=34&&n.alias&&e.string.encode(o,n.alias)},decode(o){const n=Ji.decode(o),c=e.fixed32.decode(o),r=e.uint.decode(o);return{header:n,memberKey:c,alias:d>=34&&1&r?e.string.decode(o):null}}},Gi={preencode(d,o){e.uint.preencode(d,o.streams)},encode(d,o){e.uint.encode(d,o.streams)},decode:d=>({streams:e.uint.decode(d)})},Qi={preencode(d,o){e.fixed32.preencode(d,o.streamKey),e.string.preencode(d,o.mediaStreamId),e.string.preencode(d,o.type),d.end++},encode(o,n){const c=d>=36&&n.muted?1:0;e.fixed32.encode(o,n.streamKey),e.string.encode(o,n.mediaStreamId),e.string.encode(o,n.type),e.uint.encode(o,c)},decode(o){const n=e.fixed32.decode(o),c=e.string.decode(o),r=e.string.decode(o),t=e.uint.decode(o);return{streamKey:n,mediaStreamId:c,type:r,muted:d>=36&&!!(1&t)}}},Xi=$,Yi={preencode(d,o){Xi.preencode(d,o.header),e.fixed32.preencode(d,o.callKey),e.fixed32.preencode(d,o.streamKey),d.end++},encode(o,n){const c=d>=36&&n.muted?1:0;Xi.encode(o,n.header),e.fixed32.encode(o,n.callKey),e.fixed32.encode(o,n.streamKey),e.uint.encode(o,c)},decode(o){const n=Xi.decode(o),c=e.fixed32.decode(o),r=e.fixed32.decode(o),t=e.uint.decode(o);return{header:n,callKey:c,streamKey:r,muted:d>=36&&!!(1&t)}}},Zi={preencode(d,o){e.uint.preencode(d,o.statusKey),d.end++},encode(o,n){const c=d>=36&&n.muted?1:0;e.uint.encode(o,n.statusKey),e.uint.encode(o,c)},decode(o){const n=e.uint.decode(o),c=e.uint.decode(o);return{statusKey:n,muted:d>=36&&!!(1&c)}}},$i={preencode(n,c){e.fixed32.preencode(n,c.key),n.end++,d>=37&&c.encryptionKey&&e.buffer.preencode(n,c.encryptionKey),d>=37&&c.bootFrom&&o.preencode(n,c.bootFrom)},encode(n,c){const r=(d>=37&&c.encryptionKey?1:0)|(d>=37&&c.bootFrom?2:0);e.fixed32.encode(n,c.key),e.uint.encode(n,r),d>=37&&c.encryptionKey&&e.buffer.encode(n,c.encryptionKey),d>=37&&c.bootFrom&&o.encode(n,c.bootFrom)},decode(n){const c=e.fixed32.decode(n),r=e.uint.decode(n);return{key:c,encryptionKey:d>=37&&1&r?e.buffer.decode(n):null,bootFrom:d>=37&&2&r?o.decode(n):null}}},_i={preencode(d,o){e.fixed32.preencode(d,o.hash)},encode(d,o){e.fixed32.encode(d,o.hash)},decode:d=>({hash:e.fixed32.decode(d)})},ea={preencode(d,o){e.fixed32.preencode(d,o.hash),e.buffer.preencode(d,o.data)},encode(d,o){e.fixed32.encode(d,o.hash),e.buffer.encode(d,o.data)},decode:d=>({hash:e.fixed32.decode(d),data:e.buffer.decode(d)})},da={preencode(n,c){o.preencode(n,c.autobeeMigrationHead),n.end++,d>=37&&c.legacyViewHead&&o.preencode(n,c.legacyViewHead),d>=37&&c.dbViewHead&&o.preencode(n,c.dbViewHead),d>=37&&c.blobsViewHead&&o.preencode(n,c.blobsViewHead),e.uint.preencode(n,c.createdAt)},encode(n,c){const r=(d>=37&&c.legacyViewHead?1:0)|(d>=37&&c.dbViewHead?2:0)|(d>=37&&c.blobsViewHead?4:0);o.encode(n,c.autobeeMigrationHead),e.uint.encode(n,r),d>=37&&c.legacyViewHead&&o.encode(n,c.legacyViewHead),d>=37&&c.dbViewHead&&o.encode(n,c.dbViewHead),d>=37&&c.blobsViewHead&&o.encode(n,c.blobsViewHead),e.uint.encode(n,c.createdAt)},decode(n){const c=o.decode(n),r=e.uint.decode(n);return{autobeeMigrationHead:c,legacyViewHead:d>=37&&1&r?o.decode(n):null,dbViewHead:d>=37&&2&r?o.decode(n):null,blobsViewHead:d>=37&&4&r?o.decode(n):null,createdAt:e.uint.decode(n)}}},oa=$,na={preencode(e,n){oa.preencode(e,n.header),o.preencode(e,n.head),e.end++,d>=37&&n.legacyViewHead&&o.preencode(e,n.legacyViewHead),d>=37&&n.dbViewHead&&o.preencode(e,n.dbViewHead),d>=37&&n.blobsViewHead&&o.preencode(e,n.blobsViewHead)},encode(n,c){const r=(d>=37&&c.legacyViewHead?1:0)|(d>=37&&c.dbViewHead?2:0)|(d>=37&&c.blobsViewHead?4:0);oa.encode(n,c.header),o.encode(n,c.head),e.uint.encode(n,r),d>=37&&c.legacyViewHead&&o.encode(n,c.legacyViewHead),d>=37&&c.dbViewHead&&o.encode(n,c.dbViewHead),d>=37&&c.blobsViewHead&&o.encode(n,c.blobsViewHead)},decode(n){const c=oa.decode(n),r=o.decode(n),t=e.uint.decode(n);return{header:c,head:r,legacyViewHead:d>=37&&1&t?o.decode(n):null,dbViewHead:d>=37&&2&t?o.decode(n):null,blobsViewHead:d>=37&&4&t?o.decode(n):null}}},ca={preencode(n,c){e.fixed32.preencode(n,c.roomKey),e.fixed32.preencode(n,c.encryptionKey),e.fixed32.preencode(n,c.seed),n.end++,d>=37&&c.bootFrom&&o.preencode(n,c.bootFrom)},encode(n,c){const r=d>=37&&c.bootFrom?1:0;e.fixed32.encode(n,c.roomKey),e.fixed32.encode(n,c.encryptionKey),e.fixed32.encode(n,c.seed),e.uint.encode(n,r),d>=37&&c.bootFrom&&o.encode(n,c.bootFrom)},decode(n){const c=e.fixed32.decode(n),r=e.fixed32.decode(n),t=e.fixed32.decode(n),i=e.uint.decode(n);return{roomKey:c,encryptionKey:r,seed:t,bootFrom:d>=37&&1&i?o.decode(n):null}}},ra=id,ta={preencode(d,o){e.fixed32.preencode(d,o.memberKey),e.fixed32.preencode(d,o.deviceKey),e.uint.preencode(d,o.deviceLength),e.uint.preencode(d,o.clock),ra.preencode(d,o.status)},encode(d,o){e.fixed32.encode(d,o.memberKey),e.fixed32.encode(d,o.deviceKey),e.uint.encode(d,o.deviceLength),e.uint.encode(d,o.clock),ra.encode(d,o.status)},decode:d=>({memberKey:e.fixed32.decode(d),deviceKey:e.fixed32.decode(d),deviceLength:e.uint.decode(d),clock:e.uint.decode(d),status:ra.decode(d)})},ia={preencode(d,o){e.fixed32.preencode(d,o.hash),e.buffer.preencode(d,o.blob)},encode(d,o){e.fixed32.encode(d,o.hash),e.buffer.encode(d,o.blob)},decode:d=>({hash:e.fixed32.decode(d),blob:e.buffer.decode(d)})},aa=Fn,sa=Mn,pa=kn,la={preencode(n,c){e.fixed32.preencode(n,c.roomKey),e.buffer.preencode(n,c.encryptionKey),e.fixed32.preencode(n,c.mailbox),aa.preencode(n,c.status),e.uint.preencode(n,c.clock),n.end++,d>=37&&c.initiator&&o.preencode(n,c.initiator),d>=37&&c.bootFrom&&o.preencode(n,c.bootFrom),d>=37&&c.identitySwap&&sa.preencode(n,c.identitySwap),d>=37&&c.identitySwapV2&&pa.preencode(n,c.identitySwapV2),d>=37&&c.contact&&e.fixed32.preencode(n,c.contact)},encode(n,c){const r=(d>=37&&c.initiator?1:0)|(d>=37&&c.bootFrom?2:0)|(d>=37&&c.identitySwap?4:0)|(d>=37&&c.identitySwapV2?8:0)|(d>=37&&c.contact?16:0);e.fixed32.encode(n,c.roomKey),e.buffer.encode(n,c.encryptionKey),e.fixed32.encode(n,c.mailbox),aa.encode(n,c.status),e.uint.encode(n,c.clock),e.uint.encode(n,r),d>=37&&c.initiator&&o.encode(n,c.initiator),d>=37&&c.bootFrom&&o.encode(n,c.bootFrom),d>=37&&c.identitySwap&&sa.encode(n,c.identitySwap),d>=37&&c.identitySwapV2&&pa.encode(n,c.identitySwapV2),d>=37&&c.contact&&e.fixed32.encode(n,c.contact)},decode(n){const c=e.fixed32.decode(n),r=e.buffer.decode(n),t=e.fixed32.decode(n),i=aa.decode(n),a=e.uint.decode(n),s=e.uint.decode(n);return{roomKey:c,encryptionKey:r,mailbox:t,status:i,clock:a,initiator:d>=37&&1&s?o.decode(n):null,bootFrom:d>=37&&2&s?o.decode(n):null,identitySwap:d>=37&&4&s?sa.decode(n):null,identitySwapV2:d>=37&&8&s?pa.decode(n):null,contact:d>=37&&16&s?e.fixed32.decode(n):null}}},ua=$,fa={preencode(n,c){ua.preencode(n,c.header),e.fixed32.preencode(n,c.roomKey),e.buffer.preencode(n,c.encryptionKey),e.fixed32.preencode(n,c.mailbox),n.end++,d>=37&&c.bootFrom&&o.preencode(n,c.bootFrom),d>=37&&c.initiator&&o.preencode(n,c.initiator),d>=37&&c.dm&&e.fixed32.preencode(n,c.dm)},encode(n,c){const r=(d>=37&&c.bootFrom?1:0)|(d>=37&&c.initiator?2:0)|(d>=37&&c.dm?4:0)|(d>=37&&c.isReadOnly?8:0);ua.encode(n,c.header),e.fixed32.encode(n,c.roomKey),e.buffer.encode(n,c.encryptionKey),e.fixed32.encode(n,c.mailbox),e.uint.encode(n,r),d>=37&&c.bootFrom&&o.encode(n,c.bootFrom),d>=37&&c.initiator&&o.encode(n,c.initiator),d>=37&&c.dm&&e.fixed32.encode(n,c.dm)},decode(n){const c=ua.decode(n),r=e.fixed32.decode(n),t=e.buffer.decode(n),i=e.fixed32.decode(n),a=e.uint.decode(n);return{header:c,roomKey:r,encryptionKey:t,mailbox:i,bootFrom:d>=37&&1&a?o.decode(n):null,initiator:d>=37&&2&a?o.decode(n):null,dm:d>=37&&4&a?e.fixed32.decode(n):null,isReadOnly:d>=37&&!!(8&a)}}},ma={preencode(n,c){e.fixed32.preencode(n,c.roomKey),e.buffer.preencode(n,c.encryptionKey),n.end++,d>=37&&c.bootFrom&&o.preencode(n,c.bootFrom),d>=37&&c.initiator&&o.preencode(n,c.initiator)},encode(n,c){const r=(d>=37&&c.bootFrom?1:0)|(d>=37&&c.initiator?2:0);e.fixed32.encode(n,c.roomKey),e.buffer.encode(n,c.encryptionKey),e.uint.encode(n,r),d>=37&&c.bootFrom&&o.encode(n,c.bootFrom),d>=37&&c.initiator&&o.encode(n,c.initiator)},decode(n){const c=e.fixed32.decode(n),r=e.buffer.decode(n),t=e.uint.decode(n);return{roomKey:c,encryptionKey:r,bootFrom:d>=37&&1&t?o.decode(n):null,initiator:d>=37&&2&t?o.decode(n):null}}},ya={preencode(d,o){e.fixed32.preencode(d,o.roomKey),os.preencode(d,o.head),e.uint.preencode(d,o.timestamp),d.end++},encode(o,n){const c=d>=37&&n.incremental?1:0;e.fixed32.encode(o,n.roomKey),os.encode(o,n.head),e.uint.encode(o,n.timestamp),e.uint.encode(o,c)},decode(o){const n=e.fixed32.decode(o),c=os.decode(o),r=e.uint.decode(o),t=e.uint.decode(o);return{roomKey:n,head:c,timestamp:r,incremental:d>=37&&!!(1&t)}}},ba={preencode(o,n){o.end++,d>=37&&n.key&&e.fixed32.preencode(o,n.key),e.uint.preencode(o,n.length)},encode(o,n){const c=d>=37&&n.key?1:0;e.uint.encode(o,c),d>=37&&n.key&&e.fixed32.encode(o,n.key),e.uint.encode(o,n.length)},decode(o){const n=e.uint.decode(o);return{key:d>=37&&1&n?e.fixed32.decode(o):null,length:e.uint.decode(o)}}},xa={preencode(n,c){e.fixed32.preencode(n,c.roomKey),n.end++,d>=37&&c.legacyViewHead&&o.preencode(n,c.legacyViewHead),d>=37&&c.dbViewHead&&o.preencode(n,c.dbViewHead),d>=37&&c.blobsViewHead&&o.preencode(n,c.blobsViewHead),d>=37&&c.autobeeMigrationHead&&o.preencode(n,c.autobeeMigrationHead)},encode(n,c){const r=(d>=37&&c.legacyViewHead?1:0)|(d>=37&&c.dbViewHead?2:0)|(d>=37&&c.blobsViewHead?4:0)|(d>=37&&c.autobeeMigrationHead?8:0);e.fixed32.encode(n,c.roomKey),e.uint.encode(n,r),d>=37&&c.legacyViewHead&&o.encode(n,c.legacyViewHead),d>=37&&c.dbViewHead&&o.encode(n,c.dbViewHead),d>=37&&c.blobsViewHead&&o.encode(n,c.blobsViewHead),d>=37&&c.autobeeMigrationHead&&o.encode(n,c.autobeeMigrationHead)},decode(n){const c=e.fixed32.decode(n),r=e.uint.decode(n);return{roomKey:c,legacyViewHead:d>=37&&1&r?o.decode(n):null,dbViewHead:d>=37&&2&r?o.decode(n):null,blobsViewHead:d>=37&&4&r?o.decode(n):null,autobeeMigrationHead:d>=37&&8&r?o.decode(n):null}}},va={preencode(d,o){e.fixed32.preencode(d,o.id),e.fixed32.preencode(d,o.writerKey),e.buffer.preencode(d,o.blindResponse)},encode(d,o){e.fixed32.encode(d,o.id),e.fixed32.encode(d,o.writerKey),e.buffer.encode(d,o.blindResponse)},decode:d=>({id:e.fixed32.decode(d),writerKey:e.fixed32.decode(d),blindResponse:e.buffer.decode(d)})},ka=$,ga={preencode(d,o){ka.preencode(d,o.header),e.buffer.preencode(d,o.blindResponse)},encode(d,o){ka.encode(d,o.header),e.buffer.encode(d,o.blindResponse)},decode:d=>({header:ka.decode(d),blindResponse:e.buffer.decode(d)})},Ka=e.frame(Ac),ha={preencode(o,n){e.string.preencode(o,n.mnemonic),o.end++,d>=39&&n.profileDiscoveryTimeout&&e.uint.preencode(o,n.profileDiscoveryTimeout),d>=39&&n.privateProfileKey&&e.fixed32.preencode(o,n.privateProfileKey),d>=39&&n.identity&&Ka.preencode(o,n.identity)},encode(o,n){const c=(d>=39&&n.profileDiscoveryTimeout?1:0)|(d>=39&&n.privateProfileKey?2:0)|(d>=39&&n.identity?4:0);e.string.encode(o,n.mnemonic),e.uint.encode(o,c),d>=39&&n.profileDiscoveryTimeout&&e.uint.encode(o,n.profileDiscoveryTimeout),d>=39&&n.privateProfileKey&&e.fixed32.encode(o,n.privateProfileKey),d>=39&&n.identity&&Ka.encode(o,n.identity)},decode(o){const n=e.string.decode(o),c=e.uint.decode(o);return{mnemonic:n,profileDiscoveryTimeout:d>=39&&1&c?e.uint.decode(o):0,privateProfileKey:d>=39&&2&c?e.fixed32.decode(o):null,identity:d>=39&&4&c?Ka.decode(o):null}}},wa=e.frame(w),Pa=e.frame(Gi),Ta=wa,Ra=e.array(ct),Aa=e.frame(se),Sa=wa,Ia=Aa,Fa=e.frame(Lr),Ma=e.frame(ca),Ca=Aa,Va=e.frame(fd),Ha=e.frame(Fr),Da=e.frame(Gt),La=Da,qa=e.array(e.frame(tt)),ja=wa,Ea=e.frame(zn),Ba=e.frame(Cr),za=Ea,Oa=Ba,Na=Ea,Ua=Ba,Ja=e.frame(qr),Wa=Ba,Ga=e.array(e.frame(Tt)),Qa=e.frame(mi),Xa=e.frame(Vi),Ya=e.frame(ji),Za=e.frame(ba),$a=Za,_a=wa,es=e.array(e.frame(Qi)),ds=es,os=Za;function ns(e){switch(e){case"@keet/head":return o;case"@keet/oplog-id":return n;case"@keet/encryption-keypair":return c;case"@keet/signing-keypair":return r;case"@keet/room-keys":return t;case"@keet/operation-header":return i;case"@keet/blob-pointer":return a;case"@keet/file-dimensions":return s;case"@keet/file-metadata":return l;case"@keet/external-drive-pointer":return u;case"@keet/external-blob-pointer":return f;case"@keet/file-pointer":return b;case"@keet/file":return k;case"@keet/image-file":return w;case"@keet/file-status":return P;case"@keet/file-record":return A;case"@keet/device-status":return S;case"@keet/member-status":return I;case"@keet/member-moderation-status":return F;case"@keet/abi":return M;case"@keet/device-stats":return C;case"@keet/member-stats":return V;case"@keet/chat-stats":return H;case"@keet/file-stats":return D;case"@keet/stats":return B;case"@keet/room-type":return O;case"@keet/system-settings":return N;case"@keet/system-digest":return W;case"@keet/room-seed":return G;case"@keet/room-capabilities":return Q;case"@keet/room-config":return Y;case"@keet/blind-peer":return Z;case"@keet/add-blind-peer-operation":return ee;case"@keet/remove-blind-peer-operation":return oe;case"@keet/identity-attestation":return ne;case"@keet/device-invitation":return ce;case"@keet/device":return ie;case"@keet/member-profile":return ae;case"@keet/device-profile":return se;case"@keet/member-update":return le;case"@keet/device-update":return ue;case"@keet/signed-pairing-data":return fe;case"@keet/device-request-identity":return me;case"@keet/device-response-identity":return ye;case"@keet/device-request-with-invitation":return ke;case"@keet/device-request-with-invitation-and-proof":return Ke;case"@keet/device-request-with-member-proof":return Pe;case"@keet/device-request":return Ae;case"@keet/device-response":return Fe;case"@keet/invitation-metadata":return Me;case"@keet/invitation":return He;case"@keet/add-invitation-operation":return qe;case"@keet/remove-invitation-operation":return Ee;case"@keet/sendable-room-invitation":return Be;case"@keet/sendable-identity-invitation":return ze;case"@keet/sendable-contact-invitation":return Oe;case"@keet/sendable-invitation":return Ge;case"@keet/add-device-operation":return Xe;case"@keet/update-device-operation":return Ze;case"@keet/start-indexing-operation":return $e;case"@keet/stop-indexing-operation":return _e;case"@keet/join-request":return dd;case"@keet/accept-join-request-operation":return cd;case"@keet/reject-join-request-operation":return td;case"@keet/member":return sd;case"@keet/full-member":return ud;case"@keet/member-proofs":return fd;case"@keet/update-member-operation":return bd;case"@keet/change-member-status-operation":return kd;case"@keet/change-member-role-operation":return Kd;case"@keet/remove-member-operation":return wd;case"@keet/member-activity":return Pd;case"@keet/member-joined-event":return Td;case"@keet/member-left-event":return Rd;case"@keet/title-changed-chat-event":return Ad;case"@keet/chat-event":return Md;case"@keet/sendable-event":return Cd;case"@keet/display-range":return Vd;case"@keet/display-content-range":return Dd;case"@keet/mention-display-item":return qd;case"@keet/link-preview":return Bd;case"@keet/display-link-item":return Nd;case"@keet/display":return _d;case"@keet/oplog-message":return co;case"@keet/index-message":return io;case"@keet/full-index-message":return po;case"@keet/message-status":return lo;case"@keet/message-index-id":return uo;case"@keet/thread":return mo;case"@keet/chat-message-record":return vo;case"@keet/full-chat-message-record":return ho;case"@keet/add-chat-message-operation":return To;case"@keet/remove-chat-message-operation":return Ao;case"@keet/update-chat-message-operation":return Fo;case"@keet/pin-chat-message-operation":return Co;case"@keet/reaction":return Vo;case"@keet/reactions-summary":return Ho;case"@keet/reactions-digest":return Lo;case"@keet/add-reaction-operation":return jo;case"@keet/remove-reaction-operation":return Bo;case"@keet/update-room-config-operation":return No;case"@keet/group-member":return Uo;case"@keet/user-registry-info":return Jo;case"@keet/room-identity":return Go;case"@keet/genesis-operation":return dn;case"@keet/upgrade-operation":return nn;case"@keet/update-system-settings-operation":return tn;case"@keet-private-id/contact":return an;case"@keet-private-id/v3-room-migration-info":return sn;case"@keet-private-id/run-v3-migration-operation":return un;case"@keet-private-id/update-identity-operation":return mn;case"@keet-private-id/counters":return yn;case"@keet-private-id/stats":return bn;case"@keet-private-id/add-entropy-operation":return xn;case"@keet-private-id/pending-invitation-identity":return vn;case"@keet-private-id/pending-invitation":return gn;case"@keet-private-id/resolve-pending-invitation-operation":return hn;case"@keet-private-id/add-pending-invitation-operation":return Tn;case"@keet-private-id/remove-pending-invitation-operation":return An;case"@keet-private-id/identity-swap":return Sn;case"@keet-private-id/room-status":return In;case"@keet-private-id/room":return Vn;case"@keet-private-id/add-room-operation":return Dn;case"@keet-private-id/remove-room-operation":return qn;case"@keet-private-id/update-room-status-operation":return Bn;case"@keet-private-id/contact-status":return zn;case"@keet-private-id/contact-record":return On;case"@keet-private-id/add-contact-operation":return Jn;case"@keet-private-id/update-contact-status-operation":return Gn;case"@keet-private-id/remove-contact-operation":return Xn;case"@keet-private-id/contact-request-status":return Yn;case"@keet-private-id/contact-request-body":return _n;case"@keet-private-id/contact-request":return dc;case"@keet-private-id/contact-request-record":return rc;case"@keet-private-id/add-contact-request-operation":return ic;case"@keet-private-id/update-contact-request-status-operation":return pc;case"@keet-private-id/profile-discovery-record-v1":return lc;case"@keet-private-id/profile-discovery-record":return uc;case"@local/background-sync-room":return fc;case"@local/stats":return mc;case"@local/migration-status":return yc;case"@local/v3-private-profile-migration":return xc;case"@local/v3-room-migration":return gc;case"@local/room-migration-stats":return Kc;case"@local/room-migration":return wc;case"@local/identity-status":return Pc;case"@local/identity-record":return Ac;case"@local/tasks":return Ic;case"@local/room-keys":return Fc;case"@local/join-room-invitation-task":return Cc;case"@local/join-room-response-task":return Vc;case"@local/fast-forward-to":return Hc;case"@local/add-room-fields":return Dc;case"@local/join-room-keys-task":return qc;case"@local/create-room-task":return Ec;case"@local/leave-room-task":return Bc;case"@local/clear-room-task":return zc;case"@local/restore-identity-task":return Oc;case"@local/send-contact-request-task":return Nc;case"@local/migrate-v2-room-task":return Uc;case"@local/task":return er;case"@local/shared-invitation":return or;case"@local/room-status":return nr;case"@local/room-timestamps":return cr;case"@local/room":return vr;case"@local/room-preferences":return gr;case"@local/writer":return Kr;case"@local/member":return wr;case"@local/device":return Tr;case"@local/file":return Ar;case"@keet/add-file-preview-operation":return Ir;case"@keet/member-removed-event":return Fr;case"@keet/member-contact-info":return Cr;case"@keet/remove-device-operation":return Hr;case"@keet/device-identity":return Dr;case"@keet/readonly-room-invitation":return Lr;case"@keet-private-id/identity-swap-v2":return qr;case"@keet-private-id/activate-contact-room-operation":return Er;case"@local/identity-swap":return Br;case"@local/writer-append":return zr;case"@local/room-metadata":return Or;case"@local/debug-flag":return Nr;case"@local/debug":return Jr;case"@keet/display-type":return Gr;case"@keet/test-increment-operation":return Xr;case"@keet/test-collection-record-1":return Yr;case"@keet/migrate-abi-operation":return $r;case"@keet/system-settings-keys":return et;case"@local/hyperdht-record":return ot;case"@keet/room-supported-language":return ct;case"@keet/translation-display-item":return tt;case"@local/unread":return it;case"@keet-private-id/unreads":return at;case"@keet-private-id/add-unreads-key-operation":return pt;case"@keet-private-id/remove-unreads-key-operation":return ut;case"@keet/label-type":return mt;case"@keet/chat-label":return yt;case"@keet/add-chat-label-operation":return xt;case"@keet/remove-chat-label-operation":return kt;case"@keet/chat-label-summary":return gt;case"@keet/chat-label-digest":return ht;case"@keet/update-read-length-operation":return Pt;case"@keet/read-length":return Tt;case"@keet/tmp-removed-member":return Rt;case"@keet-private-id/settings":return At;case"@keet-private-id/user-settings-key":return It;case"@keet-private-id/update-settings-operation":return Ct;case"@local/error-record-details":return Vt;case"@local/error-record":return Dt;case"@local/keet-state":return qt;case"@local/file-stats":return jt;case"@keet/member-label-type":return Bt;case"@keet/member-label":return zt;case"@keet/add-member-label-operation":return Nt;case"@keet/member-label-summary":return Ut;case"@keet/member-label-digest":return Wt;case"@keet/location-shared-event":return Gt;case"@keet/move-indexer-operation":return Xt;case"@keet/start-call":return $t;case"@keet/join-call":return di;case"@keet/leave-call":return ni;case"@keet/end-call":return ri;case"@keet/add-call-stream":return ii;case"@keet/remove-call-stream":return si;case"@keet/call-record":return pi;case"@keet/call-member-record":return li;case"@keet/call-device-record":return ui;case"@keet/call-stream-record":return fi;case"@local/active-call":return mi;case"@local/file-gc-info":return yi;case"@keet/build-type":return xi;case"@keet/test-crash-operation":return ki;case"@keet/test-dispatch-error-operation":return Ki;case"@local/environment-record":return hi;case"@keet-private-id/shorten-device-attestation-operation":return Pi;case"@local/ota-actions":return Ti;case"@local/device-attestation":return Ri;case"@keet/call-device-heartbeat":return Si;case"@keet/remove-call-device":return Fi;case"@local/chat-labels":return Vi;case"@keet/start-call-recording":return Di;case"@keet/stop-call-recording":return qi;case"@local/settings":return ji;case"@local/hyperswarm-record":return Ei;case"@keet/dismiss-chat-reports-operation":return zi;case"@keet/update-typing-indicator-operation":return Ni;case"@keet/typing-indicator":return Ui;case"@keet-private-id/update-contact-alias-operation":return Wi;case"@keet/call-stats":return Gi;case"@keet/call-stream-input":return Qi;case"@keet/update-call-stream":return Yi;case"@keet/call-stream-status-record":return Zi;case"@keet/room-keys-v2":return $i;case"@keet/blob-pointer-v2":return _i;case"@keet/blob":return ea;case"@keet/autobee-migration":return da;case"@keet/autobee-migration-operation":return na;case"@keet/readonly-room-invitation-v2":return ca;case"@keet/admin-last-seen":return ta;case"@keet/blob-record":return ia;case"@keet-private-id/room-v2":return la;case"@keet-private-id/add-room-operation-v2":return fa;case"@local/room-keys/v2":return ma;case"@local/room-update":return ya;case"@local/view-head":return ba;case"@local/autobee-migration":return xa;case"@keet-private-id/pending-invitation-response":return va;case"@keet-private-id/resolve-pending-invitation-operation-v2":return ga;case"@local/pending-recovery":return ha;default:throw new Error("Encoder not found "+e)}}function cs(e,o=39){const n=ns(e);return{preencode(e,c){d=o,n.preencode(e,c)},encode(e,c){d=o,n.encode(e,c)},decode:e=>(d=o,n.decode(e))}}const rs=cs;module.exports={resolveStruct:rs,getStruct:cs,getEnum:function(e){switch(e){case"@keet/room-type":return z;case"@local/tasks":return Sc;case"@keet/display-type":return Wr;case"@keet/system-settings-keys":return _r;case"@keet/room-supported-language":return nt;case"@keet/label-type":return ft;case"@keet-private-id/user-settings-key":return St;case"@local/keet-state":return Lt;case"@keet/member-label-type":return Et;case"@keet/build-type":return bi;default:throw new Error("Enum not found "+e)}},getEncoding:ns,encode:function(o,n,c=39){return d=c,e.encode(ns(o),n)},decode:function(o,n,c=39){return d=c,e.decode(ns(o),n)},setVersion:function(e){d=e},version:d};
@holepunchto/keet-core/schema/versions.js +1 -1
……@@ -1 +1 @@
1const E={DMS:1,LEAVE_ROOM:2,V2_CONFIG:3,PINNED_MESSAGES:4,ROOM_RENAME_EVENT:5,REPLY_TO:6,PERMISSION_DOWNGRADE:7,REMOVE_MEMBER:8,MUTE_MEMBER:9,V2_PRIVATE_PROFILE:10,ROOM_LOCKING:11,DISABLE_MEMBERSHIP_EVENTS:12,DISPLAY_NAME_VALIDATION:13,CALL_HANGUP_EVENT:14,CALL_MISSED_EVENT:15,UNREADS:16,PRIVATE_PROFILE_SETTINGS:17,READ_LENGTH:18,REMOVE_MEMBER_V2:19,CHAT_LABELS:20,MULTI_FILES:21,REPORTED_MSG_INDEX:22,REPORTED_MEMBER_INDEX:23,LOCATION_SHARED_EVENT:24,FAVORITE_ROOMS:25,FORWARDED_MESSAGE:26,CALLS_V2:27,MOVE_INDEXER:28,DISABLE_FILE_ATTACHMENTS:29,DISABLE_LINKS:30,DM_PEERS_TO_MODS:31,V2_UNREADS:32,ROOM_MARK_UNREAD:33,STRIP_ATTACHMENT_METADATA:34,SHORTEN_ATTESTATION:34,CALLS_HEARTBEAT:35,CONTACT_BOOK:36,HIDE_ROOM_INVITE:37,CALL_RECORDING:38,PROFILE_SNOOZE_TIME:39,CROSS_DEVICE_RENAME:40,DISMISS_CHAT_REPORTS:41,TYPING_INDICATOR:42,CONTACT_ALIAS:43},_={},A=[{abi:1,features:[E.LEAVE_ROOM,E.V2_CONFIG]},{abi:2,features:[E.PINNED_MESSAGES,E.ROOM_RENAME_EVENT,E.REPLY_TO]},{abi:3,features:[E.MUTE_MEMBER]},{abi:4,features:[E.DMS]},{abi:5,features:[E.PERMISSION_DOWNGRADE]},{abi:6,features:[E.REMOVE_MEMBER]},{abi:7,features:[E.ROOM_LOCKING]},{abi:8,features:[E.V2_PRIVATE_PROFILE]},{abi:9,features:[]},{abi:10,features:[]},{abi:11,features:[]},{abi:12,features:[]},{abi:13,features:[]},{abi:14,features:[]},{abi:15,features:[E.UNREADS]},{abi:16,features:[]},{abi:17,features:[E.PRIVATE_PROFILE_SETTINGS,E.READ_LENGTH,E.REMOVE_MEMBER_V2,E.CHAT_LABELS]},{abi:18,features:[E.MULTI_FILES]},{abi:19,features:[E.REPORTED_MSG_INDEX]},{abi:20,features:[E.REPORTED_MEMBER_INDEX]},{abi:21,features:[E.LOCATION_SHARED_EVENT,E.FAVORITE_ROOMS,E.FORWARDED_MESSAGE]},{abi:22,features:[]},{abi:23,features:[E.CALLS_V2,E.MOVE_INDEXER],autoupgrade:!0},{abi:24,features:[E.DISABLE_FILE_ATTACHMENTS,E.DISABLE_LINKS,E.DM_PEERS_TO_MODS]},{abi:25,features:[]},{abi:26,features:[]},{abi:27,features:[]},{abi:28,features:[E.V2_UNREADS]},{abi:29,features:[E.ROOM_MARK_UNREAD,E.STRIP_ATTACHMENT_METADATA,E.SHORTEN_ATTESTATION]},{abi:30,features:[E.CALLS_HEARTBEAT,E.CONTACT_BOOK]},{abi:31,features:[E.HIDE_ROOM_INVITE,E.CALL_RECORDING,E.PROFILE_SNOOZE_TIME]},{abi:32,features:[E.CROSS_DEVICE_RENAME,E.DISMISS_CHAT_REPORTS,E.TYPING_INDICATOR]},{abi:33,features:[E.CONTACT_ALIAS],stable:!0},{abi:34,features:[]}],R=new Map;let T=-1,O=-1,e=-1;for(const{abi:E,features:_,stable:S,autoupgrade:I}of A){for(const A of _)R.set(A,E);I&&(e=E),S&&(T=E),O=E}for(const[A,T]of Object.entries(E))R.has(T)&&(_[A]=R.get(T));module.exports={isFeatureSupported:function(E,_){const A=R.get(_);return!!A&&A<=E},FEATURES_TO_ABI:_,FEATURES:E,STABLE:T,AUTOUPGRADE:e,EXPERIMENTAL:O,FORCE_UPDATE:1};
1const E={DMS:1,LEAVE_ROOM:2,V2_CONFIG:3,PINNED_MESSAGES:4,ROOM_RENAME_EVENT:5,REPLY_TO:6,PERMISSION_DOWNGRADE:7,REMOVE_MEMBER:8,MUTE_MEMBER:9,V2_PRIVATE_PROFILE:10,ROOM_LOCKING:11,DISABLE_MEMBERSHIP_EVENTS:12,DISPLAY_NAME_VALIDATION:13,CALL_HANGUP_EVENT:14,CALL_MISSED_EVENT:15,UNREADS:16,PRIVATE_PROFILE_SETTINGS:17,READ_LENGTH:18,REMOVE_MEMBER_V2:19,CHAT_LABELS:20,MULTI_FILES:21,REPORTED_MSG_INDEX:22,REPORTED_MEMBER_INDEX:23,LOCATION_SHARED_EVENT:24,FAVORITE_ROOMS:25,FORWARDED_MESSAGE:26,CALLS_V2:27,MOVE_INDEXER:28,DISABLE_FILE_ATTACHMENTS:29,DISABLE_LINKS:30,DM_PEERS_TO_MODS:31,V2_UNREADS:32,ROOM_MARK_UNREAD:33,STRIP_ATTACHMENT_METADATA:34,SHORTEN_ATTESTATION:34,CALLS_HEARTBEAT:35,CONTACT_BOOK:36,HIDE_ROOM_INVITE:37,CALL_RECORDING:38,PROFILE_SNOOZE_TIME:39,CROSS_DEVICE_RENAME:40,DISMISS_CHAT_REPORTS:41,TYPING_INDICATOR:42,CONTACT_ALIAS:43,ROOM_SNOOZE_TIME:44,CALL_STREAM_STATUS:45,CALLS_V3:46},_={},A=[{abi:1,features:[E.LEAVE_ROOM,E.V2_CONFIG]},{abi:2,features:[E.PINNED_MESSAGES,E.ROOM_RENAME_EVENT,E.REPLY_TO]},{abi:3,features:[E.MUTE_MEMBER]},{abi:4,features:[E.DMS]},{abi:5,features:[E.PERMISSION_DOWNGRADE]},{abi:6,features:[E.REMOVE_MEMBER]},{abi:7,features:[E.ROOM_LOCKING]},{abi:8,features:[E.V2_PRIVATE_PROFILE]},{abi:9,features:[]},{abi:10,features:[]},{abi:11,features:[]},{abi:12,features:[]},{abi:13,features:[]},{abi:14,features:[]},{abi:15,features:[E.UNREADS]},{abi:16,features:[]},{abi:17,features:[E.PRIVATE_PROFILE_SETTINGS,E.READ_LENGTH,E.REMOVE_MEMBER_V2,E.CHAT_LABELS]},{abi:18,features:[E.MULTI_FILES]},{abi:19,features:[E.REPORTED_MSG_INDEX]},{abi:20,features:[E.REPORTED_MEMBER_INDEX]},{abi:21,features:[E.LOCATION_SHARED_EVENT,E.FAVORITE_ROOMS,E.FORWARDED_MESSAGE]},{abi:22,features:[]},{abi:23,features:[E.CALLS_V2,E.MOVE_INDEXER],autoupgrade:!0},{abi:24,features:[E.DISABLE_FILE_ATTACHMENTS,E.DISABLE_LINKS,E.DM_PEERS_TO_MODS]},{abi:25,features:[]},{abi:26,features:[]},{abi:27,features:[]},{abi:28,features:[E.V2_UNREADS]},{abi:29,features:[E.ROOM_MARK_UNREAD,E.STRIP_ATTACHMENT_METADATA,E.SHORTEN_ATTESTATION]},{abi:30,features:[E.CALLS_HEARTBEAT,E.CONTACT_BOOK]},{abi:31,features:[E.HIDE_ROOM_INVITE,E.CALL_RECORDING,E.PROFILE_SNOOZE_TIME]},{abi:32,features:[E.CROSS_DEVICE_RENAME,E.DISMISS_CHAT_REPORTS,E.TYPING_INDICATOR]},{abi:33,features:[E.CONTACT_ALIAS]},{abi:34,features:[E.ROOM_SNOOZE_TIME]},{abi:35,stable:!0,features:[E.CALL_STREAM_STATUS,E.CALLS_V3]},{abi:36,features:[]}],T=new Map;let R=-1,O=-1,e=-1;for(const{abi:E,features:_,stable:S,autoupgrade:I}of A){for(const A of _)T.set(A,E);I&&(e=E),S&&(R=E),O=E}const S=O+1;for(const[A,R]of Object.entries(E))T.has(R)&&(_[A]=T.get(R));module.exports={isFeatureSupported:function(E,_){const A=T.get(_);return!!A&&A<=E},FEATURES_TO_ABI:_,FEATURES:E,STABLE:R,AUTOUPGRADE:e,MINIMUM:S,MIN_AUTOBEE_ABI:36,EXPERIMENTAL:O,FORCE_UPDATE:1};
@holepunchto/keet-indexing/lib/devices/index.js +1 -1
……@@ -1 +1 @@
1const e=require("keet-identity-key"),{DeviceSchema:i,MemberSchema:t,InvitationSchema:s}=require("@holepunchto/keet-core-schemas"),{MemberCapabilities:a}=require("@holepunchto/keet-core-api"),n=require("compact-encoding"),c=require("b4a"),o=require("../invitations"),{AddDeviceOperationV1:r,AddDeviceOperationV2:v,UpdateDeviceOperation:l,RemoveDeviceOperationV1:u,RemoveDeviceOperationV2:d}=i.Operations,{UpdateMemberOperationV1:p,UpdateMemberOperationV2:y}=t.Operations,{InvitationUserData:h}=s.Messages;module.exports=class{static Operations=new Set([r.TYPE,v.TYPE,l.TYPE,u.TYPE,d.TYPE,p.TYPE,y.TYPE]);constructor(e){this.view=e,this.members=null,this.invitations=null,this.attestations=null,this.devices=null,this.deviceCount=null,this.mobileDeviceCount=null,this.deviceKeysByNoisePublicKey=null}initialize(){this.members=this.view.members,this.invitations=this.view.invitations,this.attestations=this.view.attestations,this.devices=this.view.collections.devices,this.deviceCount=this.view.indexes.deviceCount,this.mobileDeviceCount=this.view.indexes.mobileDeviceCount,this.deviceKeysByNoisePublicKey=this.view.indexes.deviceKeysByNoisePublicKey}_verifyInvitationReceipt(e,i){const t=o.verifyReceipt(i,e.receipt,{checkExpiration:!1});if(!t)return null;const s=n.decode(h,t);return c.equals(s.deviceKey,e.key)&&c.equals(s.noisePublicKey,e.noisePublicKey)?s:null}_verifyAttestation(i,t,s,a){if(!s)return null;const n=e.verify(s,t,{receipt:a,expectedIdentity:i.attestsTo});return n?n.receipt:null}async _addDeviceFromInvitation(e){const i=e.value;if(!i.receipt||!i.invitation)return;const[t,s]=await Promise.all([this.getDevice(i.key),this.invitations.getInvitation(i.invitation)]);if(!s)return;let n=null;if(s.attestsTo){const e=await this.members.getMember(s.attestsTo);n=e?.latestReceipt}const c=this._verifyInvitationReceipt(i,s);if(!c)return;let o=null;if(s.attestsTo&&(o=this._verifyAttestation(s,c.deviceKey,c.attestation,n),!o))return;let r=null;r=s.attestsTo?await this.members.getMember(s.attestsTo):await this.members.getMemberForDeviceKey(c.deviceKey,{full:!0}),s.uses>=1&&(s.capabilities&=~a.CAN_INDEX,s.capabilities&=~a.CAN_MODERATE);const v=(r?.capabilities||0)&~a.CAN_INDEX;if(i.capabilities=v|s.capabilities,await this.view.base.addWriter(i.key,{indexer:0!==(i.capabilities&a.CAN_INDEX)}),await this.devices.update(i.key,i,{upsert:!0}),t)await this.members.updateExistingMember(i);else{const e=o?{memberKey:s.attestsTo,receipt:n}:null;await this.members.addPendingMember({...i,attestation:e})}s.uses++,await this.invitations.updateInvitation(i.invitation,s)}async _manuallyAddDevice(e,{id:i}){const t=e.value;await this.members.isModerator(i.key)&&(await this.view.base.addWriter(t.key,{indexer:0!==(t.capabilities&a.CAN_INDEX)}),await this.devices.update(t.key,t,{upsert:!0}),await this.members.addPendingMember(t))}_applyAddDeviceOperation(e,i){return e.value.invitation?this._addDeviceFromInvitation(e,i):this._manuallyAddDevice(e,i)}async _applyUpdateDeviceOperation(e,{id:i}){const t=await this.getDevice(i.key);t&&await this.devices.update(t.key,{...t,name:e.value.name||t.name})}async _applyUpdateMemberOperation(e,{id:i}){const t=await this.getDevice(i.key);if(!t)return;const s=e.value.pushNotifications||e.value.isMobile;!t.isMobile&&s&&await this.devices.update(t.key,{...t,isMobile:s},{upsert:!0})}async _applyRemoveDeviceOperationV1(){}async _applyRemoveDeviceOperationV2(e,{id:i,timestamp:t}){c.equals(e.value.key,i.key)&&this.view.base.removeable(i.key)&&(await this.members.removeMemberForDeviceKey(i,t),await this.devices.delete(i.key),await this.view.base.removeWriter(i.key))}async _indexDevicesKeysByNoisePublicKey(e,i,t){e&&i&&c.equals(e.noisePublicKey,i.noisePublicKey)||(e?.noisePublicKey&&await this.deviceKeysByNoisePublicKey.delete(e.noisePublicKey,t),i?.noisePublicKey&&await this.deviceKeysByNoisePublicKey.insert(i.noisePublicKey,t))}async _indexDeviceCount(e,i){if(e&&i)return;const t=await this.deviceCount.get(0);let s=t?t.value:0;e&&(s-=1),i&&(s+=1),await this.deviceCount.insert(0,s)}async _indexMobileDeviceCount(e,i){if(e&&i&&e.isMobile===i.isMobile)return;const t=await this.mobileDeviceCount.get(1);let s=t?t.value:0;e?.isMobile&&(s-=1),i?.isMobile&&(s+=1),await this.mobileDeviceCount.insert(1,s)}async addBootstrapMember(e,i){const t={key:e,noisePublicKey:i,capabilities:a.ALL_CAPABILITIES};await this.view.base.addWriter(e,{indexer:!0}),await this.devices.update(e,t,{upsert:!0}),await this.members.addPendingMember(t)}async getDevice(e){const i=await this.devices.get(e);return i?.value}async updateDevice(e,i){return this.devices.update(e,i,{upsert:!0})}async maybeDeleteDevice(e){return!!this.view.base.removeable(e)&&(await this.view.base.removeWriter(e),await this.devices.delete(e),!0)}autobaseApply(e,i){switch(e.type){case r.TYPE:case v.TYPE:return this._applyAddDeviceOperation(e,i);case l.TYPE:return this._applyUpdateDeviceOperation(e,i);case u.TYPE:return this._applyRemoveDeviceOperationV1(e,i);case d.TYPE:return this._applyRemoveDeviceOperationV2(e,i);case p.TYPE:case y.TYPE:return this._applyUpdateMemberOperation(e,i)}}async autobaseIndex({prev:e,next:i,id:t}){await this._indexDevicesKeysByNoisePublicKey(e,i,t),await this._indexDeviceCount(e,i,t),await this._indexMobileDeviceCount(e,i,t)}};
1const e=require("keet-identity-key"),{DeviceSchema:i,MemberSchema:t,InvitationSchema:a}=require("@holepunchto/keet-core-schemas"),{MemberCapabilities:s}=require("@holepunchto/keet-core-api"),n=require("compact-encoding"),c=require("b4a"),r=require("../invitations"),{AddDeviceOperationV1:o,AddDeviceOperationV2:l,UpdateDeviceOperation:v,RemoveDeviceOperationV1:u,RemoveDeviceOperationV2:d}=i.Operations,{UpdateMemberOperationV1:p,UpdateMemberOperationV2:y}=t.Operations,{InvitationUserData:h}=a.Messages;module.exports=class{static Operations=new Set([o.TYPE,l.TYPE,v.TYPE,u.TYPE,d.TYPE,p.TYPE,y.TYPE]);constructor(e){this.view=e,this.members=null,this.invitations=null,this.attestations=null,this.devices=null,this.deviceCount=null,this.mobileDeviceCount=null,this.deviceKeysByNoisePublicKey=null}initialize(){this.members=this.view.members,this.invitations=this.view.invitations,this.attestations=this.view.attestations,this.devices=this.view.collections.devices,this.deviceCount=this.view.indexes.deviceCount,this.mobileDeviceCount=this.view.indexes.mobileDeviceCount,this.deviceKeysByNoisePublicKey=this.view.indexes.deviceKeysByNoisePublicKey}_verifyInvitationReceipt(e,i){const t=r.verifyReceipt(i,e.receipt,{checkExpiration:!1});if(!t)return null;const a=n.decode(h,t);return c.equals(a.deviceKey,e.key)&&c.equals(a.noisePublicKey,e.noisePublicKey)?a:null}_verifyAttestation(i,t,a,s){if(!a)return null;const n=e.verify(a,t,{receipt:s,expectedIdentity:i.attestsTo});return n?n.receipt:null}async _addDeviceFromInvitation(e){const i=e.value;if(!i.receipt||!i.invitation)return;const[t,a]=await Promise.all([this.getDevice(i.key),this.invitations.getInvitation(i.invitation)]);if(!a)return;let n=null;if(a.attestsTo){const e=await this.members.getMember(a.attestsTo);n=e?.latestReceipt}const c=this._verifyInvitationReceipt(i,a);if(!c)return;let r=null;if(a.attestsTo&&(r=this._verifyAttestation(a,c.deviceKey,c.attestation,n),!r))return;let o=null;o=a.attestsTo?await this.members.getMember(a.attestsTo):await this.members.getMemberForDeviceKey(c.deviceKey,{full:!0}),a.uses>=1&&(a.capabilities&=~s.CAN_INDEX,a.capabilities&=~s.CAN_MODERATE);const l=(o?.capabilities||0)&~s.CAN_INDEX;if(i.capabilities=l|a.capabilities,await this.view.base.addWriter(i.key,{indexer:0!==(i.capabilities&s.CAN_INDEX)}),await this.devices.update(i.key,i,{upsert:!0}),t)await this.members.updateExistingMember(i);else{const e=r?{memberKey:a.attestsTo,receipt:n}:null;await this.members.addPendingMember({...i,attestation:e})}a.uses++,await this.invitations.updateInvitation(i.invitation,a)}async _manuallyAddDevice(e,{id:i}){const t=e.value;await this.members.isModerator(i.key)&&(await this.view.base.addWriter(t.key,{indexer:0!==(t.capabilities&s.CAN_INDEX)}),await this.devices.update(t.key,t,{upsert:!0}),await this.members.addPendingMember(t))}_applyAddDeviceOperation(e,i){return e.value.invitation?this._addDeviceFromInvitation(e,i):this._manuallyAddDevice(e,i)}async _applyUpdateDeviceOperation(e,{id:i}){const t=await this.getDevice(i.key);t&&await this.devices.update(t.key,{...t,name:e.value.name||t.name})}async _applyUpdateMemberOperation(e,{id:i}){const t=await this.getDevice(i.key);if(!t)return;const a=e.value.pushNotifications||e.value.isMobile;!t.isMobile&&a&&await this.devices.update(t.key,{...t,isMobile:a},{upsert:!0})}async _applyRemoveDeviceOperationV1(){}async _applyRemoveDeviceOperationV2(e,{id:i,timestamp:t}){c.equals(e.value.key,i.key)&&await this.isRemoveable(i.key)&&(await this.members.removeMemberForDeviceKey(i,t),await this.devices.delete(i.key),await this.view.base.removeWriter(i.key))}async _indexDevicesKeysByNoisePublicKey(e,i,t){e&&i&&c.equals(e.noisePublicKey,i.noisePublicKey)||(e?.noisePublicKey&&await this.deviceKeysByNoisePublicKey.delete(e.noisePublicKey,t),i?.noisePublicKey&&await this.deviceKeysByNoisePublicKey.insert(i.noisePublicKey,t))}async _indexDeviceCount(e,i){if(e&&i)return;const t=await this.deviceCount.get(0);let a=t?t.value:0;e&&(a-=1),i&&(a+=1),await this.deviceCount.insert(0,a)}async _indexMobileDeviceCount(e,i){if(e&&i&&e.isMobile===i.isMobile)return;const t=await this.mobileDeviceCount.get(1);let a=t?t.value:0;e?.isMobile&&(a-=1),i?.isMobile&&(a+=1),await this.mobileDeviceCount.insert(1,a)}async addBootstrapMember(e,i){const t={key:e,noisePublicKey:i,capabilities:s.ALL_CAPABILITIES};await this.view.base.addWriter(e,{indexer:!0}),await this.devices.update(e,t,{upsert:!0}),await this.members.addPendingMember(t)}async getDevice(e){const i=await this.devices.get(e);return i?.value}async updateDevice(e,i){return this.devices.update(e,i,{upsert:!0})}async isRemoveable(e){const i=await this.getDevice(e);if(!i||0===(i.capabilities&s.CAN_INDEX))return!0;for await(const{_id:i,value:t}of this.devices.createReadStream())if(!c.equals(i,e)&&0!==(t.capabilities&s.CAN_INDEX))return!0;return!1}async maybeDeleteDevice(e){return!!await this.isRemoveable(e)&&(await this.view.base.removeWriter(e),await this.devices.delete(e),!0)}autobaseApply(e,i){switch(e.type){case o.TYPE:case l.TYPE:return this._applyAddDeviceOperation(e,i);case v.TYPE:return this._applyUpdateDeviceOperation(e,i);case u.TYPE:return this._applyRemoveDeviceOperationV1(e,i);case d.TYPE:return this._applyRemoveDeviceOperationV2(e,i);case p.TYPE:case y.TYPE:return this._applyUpdateMemberOperation(e,i)}}async autobaseIndex({prev:e,next:i,id:t}){await this._indexDevicesKeysByNoisePublicKey(e,i,t),await this._indexDeviceCount(e,i,t),await this._indexMobileDeviceCount(e,i,t)}};
@holepunchto/keet-indexing/lib/members/index.js +1 -1
……@@ -1 +1 @@
1const e=require("keet-identity-key"),i=require("tiny-buffer-map"),t=require("b4a"),{MemberSchema:s}=require("@holepunchto/keet-core-schemas"),{MemberCapabilities:a,MemberRoles:r,getCapabilitiesForRole:n,GENERIC_EVENTS:c,FEATURES:m,VALIDATION:o}=require("@holepunchto/keet-core-api"),{UpdateMemberOperationV1:l,UpdateMemberOperationV2:y,RemoveMemberOperation:b,ChangeMemberRoleOperation:v,MuteMemberOperation:u,UnmuteMemberOperation:d}=s.Operations,p=t.alloc(0);function h(i,t,s){return e.verify(i.proof,t,{expectedIdentity:i.memberKey,receipt:s})||null}function M(e,i,t,{latestReceipt:s}={}){return{key:e,hasAvatar:!!i?.hasAvatar||!!t?.hasAvatar,displayName:i?.displayName||t?.displayName,latestReceipt:t?.latestReceipt||s,devices:f(i,t),capabilities:w(i,t)}}function f(e,s){if(!e&&!s)return[];if(!s)return e.devices?e.devices:[e.key];if(!e)return s.devices?s.devices:[s.key];const a=new i;if(e.devices){for(const i of e.devices)a.set(i,p);for(const e of s.devices)a.set(e,p)}else{for(const e of s.devices)a.set(e,p);a.set(e.key,p)}const r=[...a.keys()];return r.sort(t.compare),r}function w(e,i){return e||i?e?i?e.capabilities|i.capabilities:e.capabilities:i.capabilities:0}function g(e){return 0!==(e&a.CAN_MODERATE)}module.exports=class{static Operations=new Set([l.TYPE,y.TYPE,b.TYPE,v.TYPE,u.TYPE,d.TYPE]);constructor(e){this.view=e,this.chat=null,this.devices=null,this.config=null,this.members=null,this.avatars=null,this.pendingMembers=null,this.inactiveMembers=null,this.mutedMembers=null,this.membersKeysByMemberName=null,this.membersByDeviceKey=null,this.inactiveMembersByDeviceKey=null,this.capabilitiesByDeviceKey=null,this.moderatorsByMemberKey=null,this.membersCount=null}initialize(){this.chat=this.view.chat,this.devices=this.view.devices,this.config=this.view.config,this.members=this.view.collections.members,this.avatars=this.view.collections.avatars,this.pendingMembers=this.view.collections.pendingMembers,this.inactiveMembers=this.view.collections.inactiveMembers,this.mutedMembers=this.view.collections.mutedMembers,this.memberKeysByMemberName=this.view.indexes.memberKeysByMemberName,this.membersByDeviceKey=this.view.indexes.membersByDeviceKey,this.inactiveMembersByDeviceKey=this.view.indexes.inactiveMembersByDeviceKey,this.capabilitiesByDeviceKey=this.view.indexes.capabilitiesByDeviceKey,this.moderatorsByMemberKey=this.view.indexes.moderatorsByMemberKey,this.membersCount=this.view.indexes.membersCount}_migratePendingMember(e,i,s){if(e.attestation)return s&&t.equals(s.memberKey,e.attestation.memberKey)?M(s.memberKey,e,i,{latestReceipt:e.attestation.receipt}):null;if(s){if(!s.proof)return null;const t=h(s,e.key,i?.latestReceipt);return M(t?s.memberKey:e.key,e,t?i:null,{latestReceipt:t?t.receipt:null})}return M(e.key,e,null)}_migrateExistingMember(e,i,s){if(!s.proof||t.equals(e.key,s.memberKey))return null;const a=h(s,e.key,i?.latestReceipt);return a?M(s.memberKey,e,i,{latestReceipt:a.receipt}):null}async _maybeReactivateMember(e){const i=await this.getInactiveMemberForDeviceKey(e,{full:!0});if(i){const s=i.devices.findIndex(i=>t.equals(i,e));-1!==s&&(i.devices.splice(s,1),i.devices.length>0?await this.inactiveMembers.update(i.key,i,{upsert:!0}):await this.inactiveMembers.delete(i.key))}}async _applyUpdateMemberOperation(e,{id:i,timestamp:s}){const{displayName:a,avatar:r,identity:n}=e.value,[l,y,b,v,u]=await Promise.all([this.getPendingMemberForDeviceKey(i.key),this.getMemberForDeviceKey(i.key,{full:!0}),n?this.getMember(n.memberKey):Promise.resolve(),this.view.internal.getCodeVersion(),this.view.isFeatureSupported(m.DISPLAY_NAME_VALIDATION)]);let d=y,p=a;if(u&&a&&(a.length<o.MIN_USERNAME_LENGTH||a.length>o.MAX_USERNAME_LENGTH)&&(p=d.displayName),l){if(v>=2&&await this._maybeReactivateMember(i.key),d=this._migratePendingMember(l,b,n),!d)return;await this.pendingMembers.delete(i.key)}else if(n&&(h=b,M=i.key,!h||-1===h.devices.findIndex(e=>t.equals(e,M)))){if(d=this._migrateExistingMember(y,b,n),!d)return;await this.members.delete(y.key)}var h,M;r&&await this.avatars.update(d.key,r,{upsert:!0});const f={...d,timestamp:s,displayName:p||d.displayName,hasAvatar:!!r||d.hasAvatar};if(await this.members.update(f.key,f,{upsert:!0}),l&&!b){const[e,t]=await Promise.all([this.config.isBroadcastRoom(),this.config.isDisableMembershipEvents()]);if(!e&&!t){const e={id:i,timestamp:s,event:{type:c.MEMBER_JOINED}};await this.chat.addMessage(e)}}}async _applyRemoveMemberOperation(e,{id:t,timestamp:s}){const{memberKey:r}=e.value,[n,o,l,y]=await Promise.all([this.isModerator(t.key),this.getMemberForDeviceKey(t.key),this.getMember(r),this.view.isFeatureSupported(m.REMOVE_MEMBER)]);if(!o||!l||!y)return;if(!n)return;const b=0!==(o.capabilities&a.CAN_INDEX);if(0!==(l.capabilities&a.CAN_INDEX)&&!b)return;const v=new i;for(const e of l.inactive||[])v.set(e,p);let u=!1;for await(const e of l.devices){if(v.get(e))continue;const i=await this.devices.maybeDeleteDevice(e);i&&await this.removeMemberForDeviceKey({key:e},s,{sendLeftEvent:!1}),u=i}u&&await this.chat.addMessage({id:t,timestamp:s,event:{type:c.MEMBER_REMOVED,value:{memberKey:r}}})}async _applyChangeMemberRoleOperation(e,{id:i,timestamp:t}){const{memberKey:s,role:c}=e.value;if(![r.MODERATOR,r.PEER].includes(c))return;const[o,l,y,b,v]=await Promise.all([this.isModerator(i.key),this.getMemberForDeviceKey(i.key),this.moderatorsByMemberKey.get(s),this.getMember(s),this.view.isFeatureSupported(m.PERMISSION_DOWNGRADE)]);if(!l||!b||!v)return;const u=!!y;if(!o)return;const d=0!==(l.capabilities&a.CAN_INDEX),p=0!==(b.capabilities&a.CAN_INDEX);if(p&&!d)return;if(!p&&u&&r.PEER!==c)return;if(!p&&!u&&c!==r.MODERATOR)return;const h=n(c),M=await Promise.all(b.devices.map(e=>this.devices.getDevice(e)));if(!M.some(e=>0!==(e.capabilities&a.CAN_INDEX)&&!this.view.base.removeable(e.key))){for await(const e of M){const{key:i}=e;0!==(e.capabilities&a.CAN_INDEX)&&this.view.base.removeable(i)&&await this.view.base.addWriter(i,{indexer:!1}),await this.devices.updateDevice(i,{...e,capabilities:h})}await this.members.update(b.key,{...b,timestamp:t,capabilities:h},{upsert:!0})}}async _applyMuteMemberOperation(e,{id:i,timestamp:t}){const{memberKey:s}=e.value,[a,r]=await Promise.all([this.view.isFeatureSupported(m.MUTE_MEMBER),this.isModerator(i.key)]);a&&r&&await this.mutedMembers.update(s,p,{upsert:!0})}async _applyUnmuteMemberOperation(e,{id:i,timestamp:t}){const{memberKey:s}=e.value,[a,r]=await Promise.all([this.view.isFeatureSupported(m.MUTE_MEMBER),this.isModerator(i.key)]);a&&r&&await this.mutedMembers.get(s)&&await this.mutedMembers.delete(s)}async _indexMembersCount(e,i){if(e&&i)return;const t=await this.membersCount.get(0);let s=t?t.value:0;e&&(s-=1),i&&(s+=1),await this.membersCount.insert(0,s)}async _indexMemberKeysByMemberName(e,i,t){e&&i&&e.displayName===i.displayName||(e&&e.displayName&&await this.memberKeysByMemberName.delete([e.displayName.toLowerCase(),t]),i&&i.displayName&&await this.memberKeysByMemberName.insert([i.displayName.toLowerCase(),t]))}async _indexMembersByDeviceKey(e,i){if(e)for(const i of e.devices)await this.membersByDeviceKey.delete(i);if(i)for(const e of i.devices)await this.membersByDeviceKey.insert(e,i)}async _indexInactiveMembersByDeviceKey(e,i){if(e)for(const i of e.devices)await this.inactiveMembersByDeviceKey.delete(i);if(i)for(const e of i.devices)await this.inactiveMembersByDeviceKey.insert(e,i)}async _indexCapabilitiesByDeviceKey(e,i){if(!(i&&e&&e.capabilities===i.capabilities&&function(e,i){if(e.length!==i.length)return!1;for(let s=0;s<e.length;s++)if(!t.equals(e[s],i[s]))return!1;return!0}(e.devices,i.devices))){if(e)for(const i of e.devices)await this.capabilitiesByDeviceKey.delete(i);if(i)for(const e of i.devices)await this.capabilitiesByDeviceKey.insert(e,i.capabilities)}}async _indexModeratorsByMemberKey(e,i){e&&i&&g(e.capabilities)&&g(i.capabilities)||(e&&g(e.capabilities)&&await this.moderatorsByMemberKey.delete(e.key),i&&g(i.capabilities)&&await this.moderatorsByMemberKey.insert(i.key,p))}async addPendingMember(e){await this.view.internal.getCodeVersion()<2&&await this._maybeReactivateMember(e.key),await this.pendingMembers.update(e.key,{invitation:e.invitation,capabilities:e.capabilities,attestation:e.attestation},{upsert:!0})}async updateExistingMember(e){const i=await this.getMemberForDeviceKey(e.key,{full:!0});if(i)return this.members.update(i.key,{...i,capabilities:i.capabilities|e.capabilities},{upsert:!0})}async getPendingMemberForDeviceKey(e){const i=await this.pendingMembers.get(e);return i?{key:i._id,...i.value}:null}async getMemberForDeviceKey(e,{full:i=!1}={}){const t=await this.membersByDeviceKey.get(e);if(!t)return null;const s=t.value;return i?this.getMember(s.key):{...s,deviceKey:e}}async getInactiveMemberForDeviceKey(e,{full:i=!1}={}){const t=await this.inactiveMembersByDeviceKey.get(e);if(!t)return null;const s=t.value;return i?this.getInactiveMember(s.key):{...s,deviceKey:e}}async removeMemberForDeviceKey(e,i,{sendLeftEvent:s=!0}={}){const a=e.key,[r,n,m]=await Promise.all([this.getMemberForDeviceKey(a,{full:!0}),this.getInactiveMemberForDeviceKey(a,{full:!0}),this.getPendingMemberForDeviceKey(a)]);if(n||!r)return;if(m&&await this.pendingMembers.delete(a),r.inactive?-1===r.inactive.findIndex(e=>t.equals(e,a))&&r.inactive.push(a):r.inactive=[a],r.inactive.sort(t.compare),await this.members.update(r.key,r,{upsert:!0}),!function(e){if(!e.inactive)return!1;if(e.inactive.length!==e.devices.length)return!1;for(let i=0;i<e.inactive.length;i++)if(!t.equals(e.inactive[i],e.devices[i]))return!1;return!0}(r))return;await this.members.delete(r.key),await this.inactiveMembers.update(r.key,r,{upsert:!0});const[o,l,y]=await Promise.all([this.config.isBroadcastRoom(),this.view.internal.getCodeVersion(),this.config.isDisableMembershipEvents()]);if((l<2||!o)&&s&&!y){const t={id:e,timestamp:i,event:{type:c.MEMBER_LEFT}};await this.chat.addMessage(t)}}async getMember(e){const i=await this.members.get(e);return i?.value}async getInactiveMember(e){const i=await this.inactiveMembers.get(e);return i?.value}async isDeviceMuted(e){const[i,t]=await Promise.all([this.getMemberForDeviceKey(e),this.getInactiveMemberForDeviceKey(e)]);return!(!i&&!t)&&this.isMemberMuted(i?.key||t?.key)}async isMemberMuted(e){return!!await this.mutedMembers.get(e)}async isModerator(e){if(t.equals(e,this.view.base.key))return!0;const i=await this.capabilitiesByDeviceKey.get(e);return g(i?.value)}autobaseApply(e,i){switch(e.type){case l.TYPE:case y.TYPE:return this._applyUpdateMemberOperation(e,i);case b.TYPE:return this._applyRemoveMemberOperation(e,i);case v.TYPE:return this._applyChangeMemberRoleOperation(e,i);case u.TYPE:return this._applyMuteMemberOperation(e,i);case d.TYPE:return this._applyUnmuteMemberOperation(e,i)}}async autobaseIndexMembers({prev:e,next:i,id:t}){await this._indexMemberKeysByMemberName(e,i,t),await this._indexMembersByDeviceKey(e,i,t),await this._indexCapabilitiesByDeviceKey(e,i,t),await this._indexModeratorsByMemberKey(e,i,t),await this._indexMembersCount(e,i)}async autobaseIndexInactiveMembers({prev:e,next:i,id:t}){await this._indexInactiveMembersByDeviceKey(e,i,t)}};
1const e=require("keet-identity-key"),i=require("tiny-buffer-map"),t=require("b4a"),{MemberSchema:s}=require("@holepunchto/keet-core-schemas"),{MemberCapabilities:a,MemberRoles:r,getCapabilitiesForRole:n,GENERIC_EVENTS:c,FEATURES:m,VALIDATION:o}=require("@holepunchto/keet-core-api"),{UpdateMemberOperationV1:l,UpdateMemberOperationV2:y,RemoveMemberOperation:b,ChangeMemberRoleOperation:u,MuteMemberOperation:v,UnmuteMemberOperation:d}=s.Operations,p=t.alloc(0);function h(i,t,s){return e.verify(i.proof,t,{expectedIdentity:i.memberKey,receipt:s})||null}function M(e,i,t,{latestReceipt:s}={}){return{key:e,hasAvatar:!!i?.hasAvatar||!!t?.hasAvatar,displayName:i?.displayName||t?.displayName,latestReceipt:t?.latestReceipt||s,devices:f(i,t),capabilities:w(i,t)}}function f(e,s){if(!e&&!s)return[];if(!s)return e.devices?e.devices:[e.key];if(!e)return s.devices?s.devices:[s.key];const a=new i;if(e.devices){for(const i of e.devices)a.set(i,p);for(const e of s.devices)a.set(e,p)}else{for(const e of s.devices)a.set(e,p);a.set(e.key,p)}const r=[...a.keys()];return r.sort(t.compare),r}function w(e,i){return e||i?e?i?e.capabilities|i.capabilities:e.capabilities:i.capabilities:0}function g(e){return 0!==(e&a.CAN_MODERATE)}module.exports=class{static Operations=new Set([l.TYPE,y.TYPE,b.TYPE,u.TYPE,v.TYPE,d.TYPE]);constructor(e){this.view=e,this.chat=null,this.devices=null,this.config=null,this.members=null,this.avatars=null,this.pendingMembers=null,this.inactiveMembers=null,this.mutedMembers=null,this.membersKeysByMemberName=null,this.membersByDeviceKey=null,this.inactiveMembersByDeviceKey=null,this.capabilitiesByDeviceKey=null,this.moderatorsByMemberKey=null,this.membersCount=null}initialize(){this.chat=this.view.chat,this.devices=this.view.devices,this.config=this.view.config,this.members=this.view.collections.members,this.avatars=this.view.collections.avatars,this.pendingMembers=this.view.collections.pendingMembers,this.inactiveMembers=this.view.collections.inactiveMembers,this.mutedMembers=this.view.collections.mutedMembers,this.memberKeysByMemberName=this.view.indexes.memberKeysByMemberName,this.membersByDeviceKey=this.view.indexes.membersByDeviceKey,this.inactiveMembersByDeviceKey=this.view.indexes.inactiveMembersByDeviceKey,this.capabilitiesByDeviceKey=this.view.indexes.capabilitiesByDeviceKey,this.moderatorsByMemberKey=this.view.indexes.moderatorsByMemberKey,this.membersCount=this.view.indexes.membersCount}_migratePendingMember(e,i,s){if(e.attestation)return s&&t.equals(s.memberKey,e.attestation.memberKey)?M(s.memberKey,e,i,{latestReceipt:e.attestation.receipt}):null;if(s){if(!s.proof)return null;const t=h(s,e.key,i?.latestReceipt);return M(t?s.memberKey:e.key,e,t?i:null,{latestReceipt:t?t.receipt:null})}return M(e.key,e,null)}_migrateExistingMember(e,i,s){if(!s.proof||t.equals(e.key,s.memberKey))return null;const a=h(s,e.key,i?.latestReceipt);return a?M(s.memberKey,e,i,{latestReceipt:a.receipt}):null}async _maybeReactivateMember(e){const i=await this.getInactiveMemberForDeviceKey(e,{full:!0});if(i){const s=i.devices.findIndex(i=>t.equals(i,e));-1!==s&&(i.devices.splice(s,1),i.devices.length>0?await this.inactiveMembers.update(i.key,i,{upsert:!0}):await this.inactiveMembers.delete(i.key))}}async _applyUpdateMemberOperation(e,{id:i,timestamp:s}){const{displayName:a,avatar:r,identity:n}=e.value,[l,y,b,u,v]=await Promise.all([this.getPendingMemberForDeviceKey(i.key),this.getMemberForDeviceKey(i.key,{full:!0}),n?this.getMember(n.memberKey):Promise.resolve(),this.view.internal.getCodeVersion(),this.view.isFeatureSupported(m.DISPLAY_NAME_VALIDATION)]);if(!l&&!y)return;let d=y,p=a;if(v&&a&&(a.length<o.MIN_USERNAME_LENGTH||a.length>o.MAX_USERNAME_LENGTH)&&(p=d.displayName),l){if(u>=2&&await this._maybeReactivateMember(i.key),d=this._migratePendingMember(l,b,n),!d)return;await this.pendingMembers.delete(i.key)}else if(n&&(h=b,M=i.key,!h||-1===h.devices.findIndex(e=>t.equals(e,M)))){if(d=this._migrateExistingMember(y,b,n),!d)return;await this.members.delete(y.key)}var h,M;r&&await this.avatars.update(d.key,r,{upsert:!0});const f={...d,timestamp:s,displayName:p||d.displayName,hasAvatar:!!r||d.hasAvatar};if(await this.members.update(f.key,f,{upsert:!0}),l&&!b){const[e,t]=await Promise.all([this.config.isBroadcastRoom(),this.config.isDisableMembershipEvents()]);if(!e&&!t){const e={id:i,timestamp:s,event:{type:c.MEMBER_JOINED}};await this.chat.addMessage(e)}}}async _applyRemoveMemberOperation(e,{id:t,timestamp:s}){const{memberKey:r}=e.value,[n,o,l,y]=await Promise.all([this.isModerator(t.key),this.getMemberForDeviceKey(t.key),this.getMember(r),this.view.isFeatureSupported(m.REMOVE_MEMBER)]);if(!o||!l||!y)return;if(!n)return;const b=0!==(o.capabilities&a.CAN_INDEX);if(0!==(l.capabilities&a.CAN_INDEX)&&!b)return;const u=new i;for(const e of l.inactive||[])u.set(e,p);let v=!1;for await(const e of l.devices){if(u.get(e))continue;const i=await this.devices.maybeDeleteDevice(e);i&&await this.removeMemberForDeviceKey({key:e},s,{sendLeftEvent:!1}),v=i}v&&await this.chat.addMessage({id:t,timestamp:s,event:{type:c.MEMBER_REMOVED,value:{memberKey:r}}})}async _applyChangeMemberRoleOperation(e,{id:i,timestamp:t}){const{memberKey:s,role:c}=e.value;if(![r.MODERATOR,r.PEER].includes(c))return;const[o,l,y,b,u]=await Promise.all([this.isModerator(i.key),this.getMemberForDeviceKey(i.key),this.moderatorsByMemberKey.get(s),this.getMember(s),this.view.isFeatureSupported(m.PERMISSION_DOWNGRADE)]);if(!l||!b||!u)return;const v=!!y;if(!o)return;const d=0!==(l.capabilities&a.CAN_INDEX),p=0!==(b.capabilities&a.CAN_INDEX);if(p&&!d)return;if(!p&&v&&r.PEER!==c)return;if(!p&&!v&&c!==r.MODERATOR)return;const h=n(c),M=await Promise.all(b.devices.map(e=>this.devices.getDevice(e)));for(const e of M)if(0!==(e.capabilities&a.CAN_INDEX)&&!await this.devices.isRemoveable(e.key))return;for await(const e of M){const{key:i}=e;0!==(e.capabilities&a.CAN_INDEX)&&await this.devices.isRemoveable(i)&&await this.view.base.addWriter(i,{indexer:!1}),await this.devices.updateDevice(i,{...e,capabilities:h})}await this.members.update(b.key,{...b,timestamp:t,capabilities:h},{upsert:!0})}async _applyMuteMemberOperation(e,{id:i,timestamp:t}){const{memberKey:s}=e.value,[a,r]=await Promise.all([this.view.isFeatureSupported(m.MUTE_MEMBER),this.isModerator(i.key)]);a&&r&&await this.mutedMembers.update(s,p,{upsert:!0})}async _applyUnmuteMemberOperation(e,{id:i,timestamp:t}){const{memberKey:s}=e.value,[a,r]=await Promise.all([this.view.isFeatureSupported(m.MUTE_MEMBER),this.isModerator(i.key)]);a&&r&&await this.mutedMembers.get(s)&&await this.mutedMembers.delete(s)}async _indexMembersCount(e,i){if(e&&i)return;const t=await this.membersCount.get(0);let s=t?t.value:0;e&&(s-=1),i&&(s+=1),await this.membersCount.insert(0,s)}async _indexMemberKeysByMemberName(e,i,t){e&&i&&e.displayName===i.displayName||(e&&e.displayName&&await this.memberKeysByMemberName.delete([e.displayName.toLowerCase(),t]),i&&i.displayName&&await this.memberKeysByMemberName.insert([i.displayName.toLowerCase(),t]))}async _indexMembersByDeviceKey(e,i){if(e)for(const i of e.devices)await this.membersByDeviceKey.delete(i);if(i)for(const e of i.devices)await this.membersByDeviceKey.insert(e,i)}async _indexInactiveMembersByDeviceKey(e,i){if(e)for(const i of e.devices)await this.inactiveMembersByDeviceKey.delete(i);if(i)for(const e of i.devices)await this.inactiveMembersByDeviceKey.insert(e,i)}async _indexCapabilitiesByDeviceKey(e,i){if(!(i&&e&&e.capabilities===i.capabilities&&function(e,i){if(e.length!==i.length)return!1;for(let s=0;s<e.length;s++)if(!t.equals(e[s],i[s]))return!1;return!0}(e.devices,i.devices))){if(e)for(const i of e.devices)await this.capabilitiesByDeviceKey.delete(i);if(i)for(const e of i.devices)await this.capabilitiesByDeviceKey.insert(e,i.capabilities)}}async _indexModeratorsByMemberKey(e,i){e&&i&&g(e.capabilities)&&g(i.capabilities)||(e&&g(e.capabilities)&&await this.moderatorsByMemberKey.delete(e.key),i&&g(i.capabilities)&&await this.moderatorsByMemberKey.insert(i.key,p))}async addPendingMember(e){await this.view.internal.getCodeVersion()<2&&await this._maybeReactivateMember(e.key),await this.pendingMembers.update(e.key,{invitation:e.invitation,capabilities:e.capabilities,attestation:e.attestation},{upsert:!0})}async updateExistingMember(e){const i=await this.getMemberForDeviceKey(e.key,{full:!0});if(i)return this.members.update(i.key,{...i,capabilities:i.capabilities|e.capabilities},{upsert:!0})}async getPendingMemberForDeviceKey(e){const i=await this.pendingMembers.get(e);return i?{key:i._id,...i.value}:null}async getMemberForDeviceKey(e,{full:i=!1}={}){const t=await this.membersByDeviceKey.get(e);if(!t)return null;const s=t.value;return i?this.getMember(s.key):{...s,deviceKey:e}}async getInactiveMemberForDeviceKey(e,{full:i=!1}={}){const t=await this.inactiveMembersByDeviceKey.get(e);if(!t)return null;const s=t.value;return i?this.getInactiveMember(s.key):{...s,deviceKey:e}}async removeMemberForDeviceKey(e,i,{sendLeftEvent:s=!0}={}){const a=e.key,[r,n,m]=await Promise.all([this.getMemberForDeviceKey(a,{full:!0}),this.getInactiveMemberForDeviceKey(a,{full:!0}),this.getPendingMemberForDeviceKey(a)]);if(n||!r)return;if(m&&await this.pendingMembers.delete(a),r.inactive?-1===r.inactive.findIndex(e=>t.equals(e,a))&&r.inactive.push(a):r.inactive=[a],r.inactive.sort(t.compare),await this.members.update(r.key,r,{upsert:!0}),!function(e){if(!e.inactive)return!1;if(e.inactive.length!==e.devices.length)return!1;for(let i=0;i<e.inactive.length;i++)if(!t.equals(e.inactive[i],e.devices[i]))return!1;return!0}(r))return;await this.members.delete(r.key),await this.inactiveMembers.update(r.key,r,{upsert:!0});const[o,l,y]=await Promise.all([this.config.isBroadcastRoom(),this.view.internal.getCodeVersion(),this.config.isDisableMembershipEvents()]);if((l<2||!o)&&s&&!y){const t={id:e,timestamp:i,event:{type:c.MEMBER_LEFT}};await this.chat.addMessage(t)}}async getMember(e){const i=await this.members.get(e);return i?.value}async getInactiveMember(e){const i=await this.inactiveMembers.get(e);return i?.value}async isDeviceMuted(e){const[i,t]=await Promise.all([this.getMemberForDeviceKey(e),this.getInactiveMemberForDeviceKey(e)]);return!(!i&&!t)&&this.isMemberMuted(i?.key||t?.key)}async isMemberMuted(e){return!!await this.mutedMembers.get(e)}async isModerator(e){if(t.equals(e,this.view.base.key))return!0;const i=await this.capabilitiesByDeviceKey.get(e);return g(i?.value)}autobaseApply(e,i){switch(e.type){case l.TYPE:case y.TYPE:return this._applyUpdateMemberOperation(e,i);case b.TYPE:return this._applyRemoveMemberOperation(e,i);case u.TYPE:return this._applyChangeMemberRoleOperation(e,i);case v.TYPE:return this._applyMuteMemberOperation(e,i);case d.TYPE:return this._applyUnmuteMemberOperation(e,i)}}async autobaseIndexMembers({prev:e,next:i,id:t}){await this._indexMemberKeysByMemberName(e,i,t),await this._indexMembersByDeviceKey(e,i,t),await this._indexCapabilitiesByDeviceKey(e,i,t),await this._indexModeratorsByMemberKey(e,i,t),await this._indexMembersCount(e,i)}async autobaseIndexInactiveMembers({prev:e,next:i,id:t}){await this._indexInactiveMembersByDeviceKey(e,i,t)}};
@holepunchto/keet-indexing/package.json +1 -1
……@@ -1,6 +1,6 @@
11{
22 "name": "@holepunchto/keet-indexing",
3 "version": "6.4.0",
3 "version": "6.4.1",
44 "description": "Indexing logic for Keet's Autobase DB",
55 "main": "index.js",
66 "repository": {
@holepunchto/keet-registry-client/package.json +5 -3
……@@ -1,10 +1,11 @@
11{
22 "name": "@holepunchto/keet-registry-client",
3 "version": "5.2.0",
3 "version": "5.2.1",
44 "description": "Client for keet-registry-service",
55 "main": "index.js",
66 "scripts": {
7 "test": "standard"
7 "test": "prettier --check .",
8 "format": "prettier --write ."
89 },
910 "repository": {
1011 "type": "git",
……@@ -53,6 +54,7 @@
5354 }
5455 },
5556 "devDependencies": {
56 "standard": "^17.1.2"
57 "prettier": "^3.9.5",
58 "prettier-config-holepunch": "^2.0.0"
5759 }
5860}
@holepunchto/keet-registry-schema/package.json +6 -3
……@@ -1,10 +1,12 @@
11{
22 "name": "@holepunchto/keet-registry-schema",
3 "version": "3.4.0",
3 "version": "3.4.1",
44 "description": "Schemas and encodings for keet-registry-service",
55 "main": "index.js",
66 "scripts": {
7 "test": "brittle test.js"
7 "test": "npm run lint && brittle test.js",
8 "lint": "prettier --check .",
9 "format": "prettier --write ."
810 },
911 "repository": {
1012 "type": "git",
……@@ -28,7 +30,8 @@
2830 "homepage": "https://github.com/holepunchto/keet-registry-schema#readme",
2931 "devDependencies": {
3032 "brittle": "^3.16.0",
31 "standard": "^17.1.2"
33 "prettier": "^3.9.5",
34 "prettier-config-holepunch": "^2.0.0"
3235 },
3336 "dependencies": {
3437 "@holepunchto/keet-registry": "^3.6.2",