spacewave 0.57.7 → 0.57.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/API.md +112 -15
- package/CHANGELOG.md +1 -1
- package/README.md +4 -4
- package/dist/THIRD_PARTY_NOTICES.txt +95 -166
- package/dist/build.json +2 -2
- package/dist/chunks/json-BuGtLL3Z.mjs +2 -0
- package/dist/chunks/node.pb-L2jxLJ0J.mjs +2 -0
- package/dist/engine-worker.mjs +99 -99
- package/dist/index.mjs +1 -1
- package/dist/react.mjs +1 -1
- package/dist/server.mjs +4 -5
- package/dist/types/core/sync/config.d.ts +4 -1
- package/dist/types/packages/spacewave/index.d.ts +4 -0
- package/dist/types/packages/spacewave/react.d.ts +3 -1
- package/dist/types/sdk/sync/app.d.ts +37 -0
- package/dist/types/sdk/sync/query.d.ts +71 -0
- package/dist/types/web/sync/app-hooks.d.ts +31 -0
- package/examples/task-board/package.json +1 -1
- package/examples/task-board/react.tsx +27 -27
- package/package.json +1 -1
- package/dist/chunks/errors-BHnASqFk.mjs +0 -2
- package/dist/chunks/node.pb-ChF26ESv.mjs +0 -2
- package/dist/types/web/sync/index.d.ts +0 -4
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var e=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports);const t=`ERR_RPC_ABORT`;function n(e){return typeof e==`object`&&e.message===t}var r=class extends Error{rpcService;rpcMethod;rpcError;constructor(e,t,n){super(n),this.name=`RemoteRPCError`,this.rpcService=e,this.rpcMethod=t,this.rpcError=n}};function i(e,t){if(t||=`error`,!e)return Error(t);if(typeof e==`string`)return Error(e);let n=e;if(n.message)return n;if(e.toString){let t=e.toString();if(t)return Error(t)}return Error(t)}function a(){let e={};return e.promise=new Promise((t,n)=>{e.resolve=t,e.reject=n}),e}var o=class{buffer;mask;top;btm;next;constructor(e){if(!(e>0)||e-1&e)throw Error(`Max size for a FixedFIFO should be a power of two`);this.buffer=Array(e),this.mask=e-1,this.top=0,this.btm=0,this.next=null}push(e){return this.buffer[this.top]===void 0&&(this.buffer[this.top]=e,this.top=this.top+1&this.mask,!0)}shift(){let e=this.buffer[this.btm];if(e!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,e}isEmpty(){return this.buffer[this.btm]===void 0}},s=class{size;hwm;head;tail;constructor(e={}){this.hwm=e.splitLimit??16,this.head=new o(this.hwm),this.tail=this.head,this.size=0}calculateSize(e){return e?.byteLength==null?1:e.byteLength}push(e){if(e?.value!=null&&(this.size+=this.calculateSize(e.value)),!this.head.push(e)){let t=this.head;this.head=t.next=new o(2*this.head.buffer.length),this.head.push(e)}}shift(){let e=this.tail.shift();if(e===void 0&&this.tail.next!=null){let t=this.tail.next;this.tail.next=null,this.tail=t,e=this.tail.shift()}return e?.value!=null&&(this.size-=this.calculateSize(e.value)),e}isEmpty(){return this.head.isEmpty()}},c=class extends Error{type;code;constructor(e,t){super(e??`The operation was aborted`),this.type=`aborted`,this.code=t??`ABORT_ERR`}};function l(e={}){return u(e=>{let t=e.shift();if(t==null)return{done:!0};if(t.error!=null)throw t.error;return{done:t.done===!0,value:t.value}},e)}function u(e,t){t??={};let n=t.onEnd,r=new s,i,o,l,u=a(),ee=async()=>{try{return r.isEmpty()?l?{done:!0}:await new Promise((t,n)=>{o=a=>{o=null,r.push(a);try{t(e(r))}catch(e){n(e)}return i}}):e(r)}finally{r.isEmpty()&&queueMicrotask(()=>{u.resolve(),u=a()})}},d=e=>o==null?(r.push(e),i):o(e),te=e=>(r=new s,o==null?(r.push({error:e}),i):o({error:e})),ne=e=>{if(l)return i;if(t?.objectMode!==!0&&e?.byteLength==null)throw Error(`objectMode was not true but tried to push non-Uint8Array value`);return d({done:!1,value:e})},f=e=>l?i:(l=!0,e==null?d({done:!0}):te(e)),re=()=>(r=new s,f(),{done:!0}),ie=e=>(f(e),{done:!0});if(i={[Symbol.asyncIterator](){return this},next:ee,return:re,throw:ie,push:ne,end:f,get readableLength(){return r.size},onEmpty:async e=>{let t=e?.signal;if(t?.throwIfAborted(),r.isEmpty())return;let n,i;t!=null&&(n=new Promise((e,n)=>{i=()=>{n(new c)},t.addEventListener(`abort`,i)}));try{await Promise.race([u.promise,n])}finally{i!=null&&t!=null&&t?.removeEventListener(`abort`,i)}}},n==null)return i;let p=i;return i={[Symbol.asyncIterator](){return this},next(){return p.next()},throw(e){return p.throw(e),n!=null&&(n(e),n=void 0),{done:!0}},return(){return p.return(),n!=null&&(n(),n=void 0),{done:!0}},push:ne,end(e){return p.end(e),n!=null&&(n(e),n=void 0),i},get readableLength(){return p.readableLength},onEmpty:e=>p.onEmpty(e)},i}var ee=class extends Error{type;code;constructor(e,t,n){super(e??`The operation was aborted`),this.type=`aborted`,this.name=n??`AbortError`,this.code=t??`ABORT_ERR`}};async function d(e,t,n){if(t==null)return e;if(t.aborted)return e.catch(()=>{}),Promise.reject(new ee(n?.errorMessage,n?.errorCode,n?.errorName));let r,i=new ee(n?.errorMessage,n?.errorCode,n?.errorName);try{return await Promise.race([e,new Promise((e,n)=>{r=()=>{n(i)},t.addEventListener(`abort`,r)})])}finally{r!=null&&t.removeEventListener(`abort`,r)}}var te=class{readNext;haveNext;ended;nextResult;error;constructor(){this.ended=!1,this.readNext=a(),this.haveNext=a()}[Symbol.asyncIterator](){return this}async next(){if(this.nextResult??await this.haveNext.promise,this.nextResult==null)throw Error(`HaveNext promise resolved but nextResult was undefined`);let e=this.nextResult;return this.nextResult=void 0,this.readNext.resolve(),this.readNext=a(),e}async throw(e){return this.ended=!0,this.error=e,e!=null&&(this.haveNext.promise.catch(()=>{}),this.haveNext.reject(e)),{done:!0,value:void 0}}async return(){let e={done:!0,value:void 0};return this.ended=!0,this.nextResult=e,this.haveNext.resolve(),e}async push(e,t){await this._push(e,t)}async end(e,t){e==null?await this._push(void 0,t):await this.throw(e)}async _push(e,t){if(e!=null&&this.ended)throw this.error??Error(`Cannot push value onto an ended pushable`);for(;this.nextResult!=null;)await this.readNext.promise;e==null?(this.ended=!0,this.nextResult={done:!0,value:void 0}):this.nextResult={done:!1,value:e},this.haveNext.resolve(),this.haveNext=a(),await d(this.readNext.promise,t?.signal,t)}};function ne(){return new te}function f(e){return e[Symbol.asyncIterator]!=null}async function re(e,t,n){try{await Promise.all(e.map(async e=>{for await(let r of e)await t.push(r,{signal:n}),n.throwIfAborted()})),await t.end(void 0,{signal:n})}catch(e){await t.end(e,{signal:n}).catch(()=>{})}}async function*ie(e){let t=new AbortController,n=ne();re(e,n,t.signal).catch(()=>{});try{yield*n}finally{t.abort()}}function*p(e){for(let t of e)yield*t}function ae(...e){let t=[];for(let n of e)f(n)||t.push(n);return t.length===e.length?p(t):ie(e)}function m(e,...t){if(e==null)throw Error(`Empty pipeline`);if(le(e)){let t=e;e=()=>t.source}else if(ce(e)||se(e)){let t=e;e=()=>t}let n=[e,...t];if(n.length>1&&le(n[n.length-1])&&(n[n.length-1]=n[n.length-1].sink),n.length>2)for(let e=1;e<n.length-1;e++)le(n[e])&&(n[e]=ue(n[e]));return oe(...n)}const oe=(...e)=>{let t;for(;e.length>0;)t=e.shift()(t);return t},se=e=>e?.[Symbol.asyncIterator]!=null,ce=e=>e?.[Symbol.iterator]!=null,le=e=>e!=null&&e.sink!=null&&e.source!=null,ue=e=>t=>{let n=e.sink(t);if(n?.then!=null){let t=l({objectMode:!0});n.then(()=>{t.end()},e=>{t.end(e)});let r,i=e.source;if(se(i))r=async function*(){yield*i,t.end()};else if(ce(i))r=function*(){yield*i,t.end()};else throw Error(`Unknown duplex source type - must be Iterable or AsyncIterable`);return ae(t,r())}return e.source};function h(e,t){if(!e)throw Error(t)}function g(e){if(typeof e!=`number`)throw Error(`invalid int 32: `+typeof e);if(!Number.isInteger(e)||e>2147483647||e<-2147483648)throw Error(`invalid int 32: `+e)}function de(e){if(typeof e!=`number`)throw Error(`invalid uint 32: `+typeof e);if(!Number.isInteger(e)||e>4294967295||e<0)throw Error(`invalid uint 32: `+e)}function fe(e){if(typeof e!=`number`)throw Error(`invalid float 32: `+typeof e);if(Number.isFinite(e)&&(e>34028234663852886e22||e<-34028234663852886e22))throw Error(`invalid float 32: `+e)}function pe(){let e=0,t=0;for(let n=0;n<28;n+=7){let r=this.buf[this.pos++];if(e|=(r&127)<<n,!(r&128))return this.assertBounds(),[e,t]}let n=this.buf[this.pos++];if(e|=(n&15)<<28,t=(n&112)>>4,!(n&128))return this.assertBounds(),[e,t];for(let n=3;n<=31;n+=7){let r=this.buf[this.pos++];if(t|=(r&127)<<n,!(r&128))return this.assertBounds(),[e,t]}throw Error(`invalid varint`)}function me(e,t,n){for(let r=0;r<28;r+=7){let i=e>>>r,a=!(!(i>>>7)&&t==0),o=(a?i|128:i)&255;if(n.push(o),!a)return}let r=e>>>28&15|(t&7)<<4,i=!!(t>>3);if(n.push((i?r|128:r)&255),i){for(let e=3;e<31;e+=7){let r=t>>>e,i=!!(r>>>7),a=(i?r|128:r)&255;if(n.push(a),!i)return}n.push(t>>>31&1)}}const _=4294967296;function he(e){let t=e[0]===`-`;t&&(e=e.slice(1));let n=1e6,r=0,i=0;function a(t,a){let o=Number(e.slice(t,a));i*=n,r=r*n+o,r>=_&&(i+=r/_|0,r%=_)}return a(-24,-18),a(-18,-12),a(-12,-6),a(-6),t?be(r,i):ye(r,i)}function ge(e,t){let n=ye(e,t),r=n.hi&2147483648;r&&(n=be(n.lo,n.hi));let i=_e(n.lo,n.hi);return r?`-`+i:i}function _e(e,t){if({lo:e,hi:t}=ve(e,t),t<=2097151)return String(_*t+e);let n=e&16777215,r=(e>>>24|t<<8)&16777215,i=t>>16&65535,a=n+r*6777216+i*6710656,o=r+i*8147497,s=i*2,c=1e7;return a>=c&&(o+=Math.floor(a/c),a%=c),o>=c&&(s+=Math.floor(o/c),o%=c),s.toString()+xe(o)+xe(a)}function ve(e,t){return{lo:e>>>0,hi:t>>>0}}function ye(e,t){return{lo:e|0,hi:t|0}}function be(e,t){return t=~t,e?e=~e+1:t+=1,ye(e,t)}const xe=e=>{let t=String(e);return`0000000`.slice(t.length)+t};function Se(e,t){if(e>=0){for(;e>127;)t.push(e&127|128),e>>>=7;t.push(e)}else{for(let n=0;n<9;n++)t.push(e&127|128),e>>=7;t.push(1)}}function Ce(){let e=this.buf[this.pos++],t=e&127;if(!(e&128)||(e=this.buf[this.pos++],t|=(e&127)<<7,!(e&128))||(e=this.buf[this.pos++],t|=(e&127)<<14,!(e&128))||(e=this.buf[this.pos++],t|=(e&127)<<21,!(e&128)))return this.assertBounds(),t;e=this.buf[this.pos++],t|=(e&15)<<28;for(let t=5;e&128&&t<10;t++)e=this.buf[this.pos++];if(e&128)throw Error(`invalid varint`);return this.assertBounds(),t>>>0}function we(){let e=new DataView(new ArrayBuffer(8));if(typeof BigInt==`function`&&typeof e.getBigInt64==`function`&&typeof e.getBigUint64==`function`&&typeof e.setBigInt64==`function`&&typeof e.setBigUint64==`function`&&(typeof process!=`object`||typeof process.env!=`object`||process.env.BUF_BIGINT_DISABLE!==`1`)){let t=BigInt(`-9223372036854775808`),n=BigInt(`9223372036854775807`),r=BigInt(`0`),i=BigInt(`18446744073709551615`);return{zero:BigInt(0),supported:!0,parse(e){let r=typeof e==`bigint`?e:BigInt(e);if(r>n||r<t)throw Error(`int64 invalid: ${e}`);return r},uParse(e){let t=typeof e==`bigint`?e:BigInt(e);if(t>i||t<r)throw Error(`uint64 invalid: ${e}`);return t},enc(t){return e.setBigInt64(0,this.parse(t),!0),{lo:e.getInt32(0,!0),hi:e.getInt32(4,!0)}},uEnc(t){return e.setBigInt64(0,this.uParse(t),!0),{lo:e.getInt32(0,!0),hi:e.getInt32(4,!0)}},dec(t,n){return e.setInt32(0,t,!0),e.setInt32(4,n,!0),e.getBigInt64(0,!0)},uDec(t,n){return e.setInt32(0,t,!0),e.setInt32(4,n,!0),e.getBigUint64(0,!0)}}}let t=e=>h(/^-?[0-9]+$/.test(e),`int64 invalid: ${e}`),n=e=>h(/^[0-9]+$/.test(e),`uint64 invalid: ${e}`);return{zero:`0`,supported:!1,parse(e){return typeof e!=`string`&&(e=e.toString()),t(e),e},uParse(e){return typeof e!=`string`&&(e=e.toString()),n(e),e},enc(e){return typeof e!=`string`&&(e=e.toString()),t(e),he(e)},uEnc(e){return typeof e!=`string`&&(e=e.toString()),n(e),he(e)},dec(e,t){return ge(e,t)},uDec(e,t){return _e(e,t)}}}const v=we();var y;(function(e){e[e.DOUBLE=1]=`DOUBLE`,e[e.FLOAT=2]=`FLOAT`,e[e.INT64=3]=`INT64`,e[e.UINT64=4]=`UINT64`,e[e.INT32=5]=`INT32`,e[e.FIXED64=6]=`FIXED64`,e[e.FIXED32=7]=`FIXED32`,e[e.BOOL=8]=`BOOL`,e[e.STRING=9]=`STRING`,e[e.BYTES=12]=`BYTES`,e[e.UINT32=13]=`UINT32`,e[e.SFIXED32=15]=`SFIXED32`,e[e.SFIXED64=16]=`SFIXED64`,e[e.SINT32=17]=`SINT32`,e[e.SINT64=18]=`SINT64`,e[e.DATE=100]=`DATE`})(y||={});var b;(function(e){e[e.BIGINT=0]=`BIGINT`,e[e.STRING=1]=`STRING`})(b||={});function x(e,t,n){if(t===n)return!0;if(t==null||n==null)return t===n;if(e==y.BYTES){if(!(t instanceof Uint8Array)||!(n instanceof Uint8Array)||t.length!==n.length)return!1;for(let e=0;e<t.length;e++)if(t[e]!==n[e])return!1;return!0}if(e==y.DATE){let e=Oe(t,!1),r=Oe(n,!1);return e==null||r==null?e===r:e!=null&&r!=null&&+e==+r}switch(e){case y.UINT64:case y.FIXED64:case y.INT64:case y.SFIXED64:case y.SINT64:return t==n}return!1}function S(e,t){switch(e){case y.BOOL:return!1;case y.UINT64:case y.FIXED64:case y.INT64:case y.SFIXED64:case y.SINT64:return t==0?v.zero:`0`;case y.DOUBLE:case y.FLOAT:return 0;case y.BYTES:return new Uint8Array;case y.STRING:return``;case y.DATE:return null;default:return 0}}const Te=+new Date(0);function Ee(e,t){if(t==null)return!0;switch(e){case y.DATE:return+t===Te;case y.BOOL:return t===!1;case y.STRING:return t===``;case y.BYTES:return t instanceof Uint8Array&&!t.byteLength;default:return t==0}}function C(e,t,n,r=b.BIGINT){return t==null?S(e,r):e===y.BYTES?De(t,n):Ee(e,t)?S(e,r):e===y.DATE?Oe(t,n):t}function De(e,t){return!t&&e instanceof Uint8Array?e:new Uint8Array(e)}function Oe(e,t){if(e instanceof Date)return t?new Date(e.getTime()):e;if(typeof e==`string`||typeof e==`number`){let t=new Date(e);return isNaN(t.getTime())?null:t}return null}function ke(e,t){let n=je(e);return t?n:Ie(Fe(n))}function Ae(e){return ke(e,!1)}function je(e){let t=!1,n=[];for(let r=0;r<e.length;r++){let i=e.charAt(r);switch(i){case`_`:t=!0;break;case`0`:case`1`:case`2`:case`3`:case`4`:case`5`:case`6`:case`7`:case`8`:case`9`:n.push(i),t=!1;break;default:t&&(t=!1,i=i.toUpperCase()),n.push(i)}}return n.join(``)}const Me=new Set([`constructor`,`toString`,`toJSON`,`valueOf`,`__proto__`,`prototype`]),Ne=new Set([`__proto__`]),Pe=e=>`${e}$`,Fe=e=>Ne.has(e)?Pe(e):e,Ie=e=>Me.has(e)?Pe(e):e;function Le(e){return typeof e==`string`&&!!e.length&&!Me.has(e)}function w(e){if(typeof e!=`string`)throw Error(`illegal non-string object key: `+typeof e);if(!Le(e))throw Error(`illegal object key: `+e)}var Re=class{_fields;_normalizer;all;numbersAsc;jsonNames;numbers;members;constructor(e,t){this._fields=e,this._normalizer=t}findJsonName(e){if(!this.jsonNames){let e={};for(let t of this.list())e[t.jsonName]=e[t.name]=t;this.jsonNames=e}return this.jsonNames[e]}find(e){if(!this.numbers){let e={};for(let t of this.list())e[t.no]=t;this.numbers=e}return this.numbers[e]}list(){return this.all||=this._normalizer(this._fields),this.all}byNumber(){return this.numbersAsc||=this.list().concat().sort((e,t)=>e.no-t.no),this.numbersAsc}byMember(){if(!this.members){this.members=[];let e=this.members,t;for(let n of this.list())n.oneof?n.oneof!==t&&(t=n.oneof,e.push(t)):e.push(n)}return this.members}};function ze(e,t){return new Re(e,e=>Ue(e,t))}function Be(e,t){let n=e.localName;if(!t)return!1;if(e.repeated)return!!t[n]?.length;if(e.oneof)return t[e.oneof.localName]?.case===n;switch(e.kind){case`enum`:case`scalar`:return e.opt||e.req?t[n]!=null:e.kind==`enum`?t[n]!==e.T.values[0].no:!Ee(e.T,t[n]);case`message`:return t[n]!=null;case`map`:return t[n]!=null&&!!Object.keys(t[n]).length}}const Ve=je;function T(e){return e instanceof Function?e():e}var He=class{kind=`oneof`;name;localName;repeated=!1;packed=!1;opt=!1;req=!1;default=void 0;fields=[];_lookup;constructor(e){this.name=e,this.localName=Ae(e)}addField(e){h(e.oneof===this,`field ${e.name} not one of ${this.name}`),this.fields.push(e)}findField(e){if(!this._lookup){this._lookup=Object.create(null);for(let e=0;e<this.fields.length;e++)this._lookup[this.fields[e].localName]=this.fields[e]}return this._lookup[e]}};function Ue(e,t){let n=[],r;for(let i of typeof e==`function`?e():e){let e=i;if(e.localName=ke(i.name,i.oneof!==void 0),e.jsonName=i.jsonName??Ve(i.name),e.repeated=i.repeated??!1,i.kind==`scalar`&&(e.L=i.L??b.BIGINT,e.utf8=i.utf8??!1),i.kind==`map`&&(e.keyUtf8=i.keyUtf8??!1),e.delimited=i.delimited??!1,e.req=i.req??!1,e.opt=i.opt??!1,i.packed===void 0&&(e.packed=t?i.kind==`enum`||i.kind==`scalar`&&i.T!=y.BYTES&&i.T!=y.STRING:!1),i.oneof!==void 0){let t=typeof i.oneof==`string`?i.oneof:i.oneof.name;(!r||r.name!=t)&&(r=new He(t)),e.oneof=r,r.addField(e)}n.push(e)}return n}function We(e){return Array.isArray(e)}function Ge(e,t){let n=Object.create(null),r=Object.create(null),i=[];for(let e of t){let t=We(e)?{no:e[0],name:e[1],localName:e[1]}:`localName`in e?e:{...e,localName:e.name};i.push(t),n[t.name]=t,r[t.no]=t}return{typeName:e,values:i,findName(e){return n[e]},findNumber(e){return r[e]}}}function Ke(e){if(e.values.length<1)throw Error(`invalid enum: missing at least one value`);return e.values[0].no}function qe(e,t){let n=Ke(e);if(t==null||t===``||t===n)return n;if(typeof t==`string`){let n=e.findName(t);if(!n)throw Error(`enum ${e.typeName}: invalid value: "${t}"`);return n.no}return t}function E(){return Object.create(null)}function D(e){return e}function O(e,t,n,r=!1){if(e==null||t==null)return;let i=D(t),a=D(e);for(let e of n.byMember()){let t=e.localName;if(w(t),!(t in a)||a[t]===void 0)continue;let n=a[t];if(n===null){delete i[t];continue}switch(e.kind){case`oneof`:{if(typeof n!=`object`)throw Error(`field ${t}: invalid oneof: must be an object with case and value`);let{case:a,value:o}=n,s=a==null?null:e.findField(a),c=t in i?i[t]:void 0;if(typeof c!=`object`&&(c=E()),a!=null&&s==null)throw Error(`field ${t}: invalid oneof case: ${a}`);if(c.case=a,(c.case!==a||a==null)&&delete c.value,i[t]=c,!s)break;if(s.kind===`message`){let e=c.value;if(typeof e!=`object`&&(e=c.value=E()),o!=null){let t=T(s.T);O(o,e,t.fields)}}else s.kind===`scalar`?c.value=C(s.T,o,r):c.value=o;break}case`scalar`:if(e.repeated){if(!Array.isArray(n))throw Error(`field ${t}: invalid value: must be array`);let a=t in i?i[t]:null;(a==null||!Array.isArray(a))&&(a=i[t]=[]),a.push(...n.map(t=>C(e.T,t,r)));break}i[t]=C(e.T,n,r);break;case`enum`:i[t]=qe(e.T,n);break;case`map`:{if(typeof n!=`object`)throw Error(`field ${e.localName}: invalid value: must be object`);let a=i[t];typeof a!=`object`&&(a=i[t]=E()),Je(n,a,e.V,r);break}case`message`:{let r=T(e.T);if(e.repeated){if(!Array.isArray(n))throw Error(`field ${t}: invalid value: must be array`);let e=i[t];Array.isArray(e)||(e=i[t]=[]);for(let t of n)t!=null&&(r.fieldWrapper?e.push(r.fieldWrapper.unwrapField(r.fieldWrapper.wrapField(t))):e.push(r.create(t)));break}if(r.fieldWrapper)i[t]=r.fieldWrapper.unwrapField(r.fieldWrapper.wrapField(n));else{if(typeof n!=`object`)throw Error(`field ${e.localName}: invalid value: must be object`);let a=i[t];typeof a!=`object`&&(a=i[t]=E()),O(n,a,r.fields)}break}}}}function Je(e,t,n,r){if(e!=null){if(typeof e!=`object`)throw Error(`invalid map: must be object`);switch(n.kind){case`scalar`:for(let[i,a]of Object.entries(e))w(i),a===void 0?delete t[i]:t[i]=C(n.T,a,r);break;case`enum`:for(let[r,i]of Object.entries(e))w(r),i===void 0?delete t[r]:t[r]=qe(n.T,i);break;case`message`:{let r=T(n.T);for(let[n,i]of Object.entries(e)){if(w(n),i===void 0){delete t[n];continue}if(typeof i!=`object`)throw Error(`invalid value: must be object`);let e=t[n];r.fieldWrapper?e=t[n]=Nt(r.fields):typeof e!=`object`&&(e=t[n]=E()),O(i,e,r.fields)}break}}}}const k=Symbol(`@aptre/protobuf-es-lite/unknown-fields`);function Ye(e,t,n,r){if(typeof e!=`object`)return;let i=e;Array.isArray(i[k])||(i[k]=[]),i[k].push({no:t,wireType:n,data:r})}function Xe(e,t){return e?e.wrapField(t):t}function A(e,t){return e?e.unwrapField(t):t}y.DATE,y.DOUBLE,y.FLOAT,y.INT64,y.UINT64,y.INT32,y.UINT32,y.BOOL,y.STRING,y.BYTES;var j;(function(e){e[e.Varint=0]=`Varint`,e[e.Bit64=1]=`Bit64`,e[e.LengthDelimited=2]=`LengthDelimited`,e[e.StartGroup=3]=`StartGroup`,e[e.EndGroup=4]=`EndGroup`,e[e.Bit32=5]=`Bit32`})(j||={});var Ze=class{chunks;buf;stack=[];textEncoder;constructor(e){this.textEncoder=e??new TextEncoder,this.chunks=[],this.buf=[]}finish(){this.chunks.push(new Uint8Array(this.buf));let e=0;for(let t=0;t<this.chunks.length;t++)e+=this.chunks[t].length;let t=new Uint8Array(e),n=0;for(let e=0;e<this.chunks.length;e++)t.set(this.chunks[e],n),n+=this.chunks[e].length;return this.chunks=[],t}fork(){return this.stack.push({chunks:this.chunks,buf:this.buf}),this.chunks=[],this.buf=[],this}join(){let e=this.finish(),t=this.stack.pop();if(!t)throw Error(`invalid state, fork stack empty`);return this.chunks=t.chunks,this.buf=t.buf,this.uint32(e.byteLength),this.raw(e)}tag(e,t){return this.uint32((e<<3|t)>>>0)}raw(e){return this.buf.length&&(this.chunks.push(new Uint8Array(this.buf)),this.buf=[]),this.chunks.push(e),this}uint32(e){for(de(e);e>127;)this.buf.push(e&127|128),e>>>=7;return this.buf.push(e),this}int32(e){return g(e),Se(e,this.buf),this}bool(e){return this.buf.push(+!!e),this}bytes(e){return this.uint32(e.byteLength),this.raw(e)}string(e){let t=this.textEncoder.encode(e);return this.uint32(t.byteLength),this.raw(t)}float(e){fe(e);let t=new Uint8Array(4);return new DataView(t.buffer).setFloat32(0,e,!0),this.raw(t)}double(e){let t=new Uint8Array(8);return new DataView(t.buffer).setFloat64(0,e,!0),this.raw(t)}fixed32(e){de(e);let t=new Uint8Array(4);return new DataView(t.buffer).setUint32(0,e,!0),this.raw(t)}sfixed32(e){g(e);let t=new Uint8Array(4);return new DataView(t.buffer).setInt32(0,e,!0),this.raw(t)}sint32(e){return g(e),e=(e<<1^e>>31)>>>0,Se(e,this.buf),this}sfixed64(e){let t=new Uint8Array(8),n=new DataView(t.buffer),r=v.enc(e);return n.setInt32(0,r.lo,!0),n.setInt32(4,r.hi,!0),this.raw(t)}fixed64(e){let t=new Uint8Array(8),n=new DataView(t.buffer),r=v.uEnc(e);return n.setInt32(0,r.lo,!0),n.setInt32(4,r.hi,!0),this.raw(t)}int64(e){let t=v.enc(e);return me(t.lo,t.hi,this.buf),this}sint64(e){let t=v.enc(e),n=t.hi>>31;return me(t.lo<<1^n,(t.hi<<1|t.lo>>>31)^n,this.buf),this}uint64(e){let t=v.uEnc(e);return me(t.lo,t.hi,this.buf),this}},Qe=class{pos;len;buf;view;textDecoder;fatalTextDecoder;constructor(e,t,n){this.buf=e,this.len=e.length,this.pos=0,this.view=new DataView(e.buffer,e.byteOffset,e.byteLength),this.textDecoder=t??new TextDecoder,this.fatalTextDecoder=n}tag(){let e=this.uint32(),t=e>>>3,n=e&7;if(t<=0||n<0||n>5)throw Error(`illegal tag: field no `+t+` wire type `+n);return[t,n]}skip(e){let t=this.pos;switch(e){case j.Varint:for(;this.buf[this.pos++]&128;);break;case j.Bit64:this.pos+=4;case j.Bit32:this.pos+=4;break;case j.LengthDelimited:let t=this.uint32();this.pos+=t;break;case j.StartGroup:let n;for(;(n=this.tag()[1])!==j.EndGroup;)this.skip(n);break;default:throw Error(`cant skip wire type `+e)}return this.assertBounds(),this.buf.subarray(t,this.pos)}varint64=pe;assertBounds(){if(this.pos>this.len)throw RangeError(`premature EOF`)}uint32=Ce;int32(){return this.uint32()|0}sint32(){let e=this.uint32();return e>>>1^-(e&1)}int64(){return v.dec(...this.varint64())}uint64(){return v.uDec(...this.varint64())}sint64(){let[e,t]=this.varint64(),n=-(e&1);return e=(e>>>1|(t&1)<<31)^n,t=t>>>1^n,v.dec(e,t)}bool(){let[e,t]=this.varint64();return e!==0||t!==0}fixed32(){return this.view.getUint32((this.pos+=4)-4,!0)}sfixed32(){return this.view.getInt32((this.pos+=4)-4,!0)}fixed64(){return v.uDec(this.sfixed32(),this.sfixed32())}sfixed64(){return v.dec(this.sfixed32(),this.sfixed32())}float(){return this.view.getFloat32((this.pos+=4)-4,!0)}double(){return this.view.getFloat64((this.pos+=8)-8,!0)}bytes(){let e=this.uint32(),t=this.pos;return this.pos+=e,this.assertBounds(),this.buf.subarray(t,t+e)}string(e=!1){return(e?this.fatalTextDecoder??=new TextDecoder(`utf-8`,{fatal:!0}):this.textDecoder).decode(this.bytes())}};const $e={readUnknownFields:!0,readerFactory:e=>new Qe(e)},et={writeUnknownFields:!0,writerFactory:()=>new Ze};function tt(e){return e?{...$e,...e}:$e}function nt(e){return e?{...et,...e}:et}function rt(e,t,n,r,i){let{repeated:a}=n,{localName:o}=n;if(n.oneof){let t=e[n.oneof.localName];t||=e[n.oneof.localName]=E(),e=t,e.case!=o&&delete e.value,e.case=o,o=`value`}switch(n.kind){case`scalar`:case`enum`:{let i=n.kind==`enum`?y.INT32:n.T,s=M,c=n.kind==`scalar`&&n.utf8;if(n.kind==`scalar`&&n.L>0&&(s=at),a){let n=e[o];if(Array.isArray(n)||(n=e[o]=[]),r==j.LengthDelimited&&i!=y.STRING&&i!=y.BYTES){let e=t.uint32()+t.pos;for(;t.pos<e;)n.push(s(t,i,c))}else n.push(s(t,i,c))}else e[o]=s(t,i,c);break}case`message`:{let r=n.T,s=r instanceof Function?r():r;if(a){let r=e[o];Array.isArray(r)||(r=e[o]=[]),r.push(A(s.fieldWrapper,ot(t,E(),s.fields,i,n)))}else e[o]=A(s.fieldWrapper,ot(t,E(),s.fields,i,n));break}case`map`:{let[r,a]=it(n,t,i);typeof e[o]!=`object`&&(e[o]=E()),e[o][r]=a;break}}}function it(e,t,n){let r=t.uint32(),i=t.pos+r,a,o;for(;t.pos<i;){let[r]=t.tag();switch(r){case 1:a=M(t,e.K,e.keyUtf8);break;case 2:switch(e.V.kind){case`scalar`:o=M(t,e.V.T,e.V.utf8===!0);break;case`enum`:o=t.int32();break;case`message`:o=ot(t,E(),T(e.V.T).fields,n,void 0)}}}if(a===void 0&&(a=S(e.K,b.BIGINT)),typeof a!=`string`&&typeof a!=`number`&&(a=a?.toString()??``),o===void 0)switch(e.V.kind){case`scalar`:o=S(e.V.T,b.BIGINT);break;case`enum`:o=e.V.T.values[0].no;break;case`message`:o=E()}return[a,o]}function M(e,t,n=!1){switch(t){case y.STRING:return e.string(n);case y.BOOL:return e.bool();case y.DOUBLE:return e.double();case y.FLOAT:return e.float();case y.INT32:return e.int32();case y.INT64:return e.int64();case y.UINT64:return e.uint64();case y.FIXED64:return e.fixed64();case y.BYTES:return e.bytes();case y.FIXED32:return e.fixed32();case y.SFIXED32:return e.sfixed32();case y.SFIXED64:return e.sfixed64();case y.SINT64:return e.sint64();case y.UINT32:return e.uint32();case y.SINT32:return e.sint32();case y.DATE:throw Error(`cannot read a date with readScalar`);default:throw Error(`unknown scalar type`)}}function at(e,t,n=!1){let r=M(e,t,n);return typeof r==`bigint`?r.toString():r}function ot(e,t,n,r,i){return st(t,n,e,i?.delimited?i.no:e.uint32(),r,i?.delimited??!1),t}function st(e,t,n,r,i,a){let o=a?n.len:n.pos+r,s,c;for(;n.pos<o&&([s,c]=n.tag(),c!=j.EndGroup);){let r=t.find(s);if(!r){let t=n.skip(c);i.readUnknownFields&&Ye(e,s,c,t);continue}rt(e,n,r,c,i)}if(a&&(c!=j.EndGroup||s!==r))throw Error(`invalid end group tag`)}function ct(e,t,n,r){for(let i of t.byNumber()){let t=e;if(!Be(i,t)){if(i.req)throw Error(`cannot encode field ${i.name} to binary: required field not set`);continue}let a=i.oneof?t[i.oneof.localName].value:t[i.localName];a!==void 0&<(i,a,n,r)}r.writeUnknownFields&&ut(e,n)}function lt(e,t,n,r){h(t!==void 0);let i=e.repeated;switch(e.kind){case`scalar`:case`enum`:{let r=e.kind==`enum`?y.INT32:e.T;if(i){if(h(Array.isArray(t)),e.packed)ft(n,r,e.no,t);else for(let i of t)N(n,r,e.no,i)}else N(n,r,e.no,t);break}case`message`:if(i){h(Array.isArray(t));for(let i of t)dt(n,r,e,i)}else dt(n,r,e,t);break;case`map`:h(typeof t==`object`&&!!t);for(let[i,a]of Object.entries(t))mt(n,r,e,i,a)}}function ut(e,t){let n=e[k];if(n)for(let e of n)t.tag(e.no,e.wireType).raw(e.data)}function dt(e,t,n,r){let i=T(n.T),a=Xe(i.fieldWrapper,r);n.delimited?e.tag(n.no,j.StartGroup).raw(i.toBinary(a,t)).tag(n.no,j.EndGroup):e.tag(n.no,j.LengthDelimited).bytes(i.toBinary(a,t))}function N(e,t,n,r){h(r!==void 0);let[i,a]=pt(t);e.tag(n,i)[a](r)}function ft(e,t,n,r){if(!r.length)return;e.tag(n,j.LengthDelimited).fork();let[,i]=pt(t);for(let t=0;t<r.length;t++)e[i](r[t]);e.join()}function pt(e){let t=j.Varint;switch(e){case y.BYTES:case y.STRING:t=j.LengthDelimited;break;case y.DOUBLE:case y.FIXED64:case y.SFIXED64:t=j.Bit64;break;case y.FIXED32:case y.SFIXED32:case y.FLOAT:t=j.Bit32}let n=y[e].toLowerCase();return[t,n]}function mt(e,t,n,r,i){e.tag(n.no,j.LengthDelimited),e.fork();let a=r;switch(n.K){case y.INT32:case y.FIXED32:case y.UINT32:case y.SFIXED32:case y.SINT32:a=Number.parseInt(r);break;case y.BOOL:h(r==`true`||r==`false`),a=r==`true`}switch(N(e,n.K,1,a),n.V.kind){case`scalar`:N(e,n.V.T,2,i);break;case`enum`:N(e,y.INT32,2,i);break;case`message`:{h(i!==void 0);let r=T(n.V.T);e.tag(2,j.LengthDelimited).bytes(r.toBinary(i,t));break}}e.join()}let P=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`.split(``),F=[];for(let e=0;e<P.length;e++)F[P[e].charCodeAt(0)]=e;F[45]=P.indexOf(`+`),F[95]=P.indexOf(`/`);const ht={dec(e){let t=e.length*3/4;e[e.length-2]==`=`?t-=2:e[e.length-1]==`=`&&--t;let n=new Uint8Array(t),r=0,i=0,a,o=0;for(let t=0;t<e.length;t++){if(a=F[e.charCodeAt(t)],a===void 0)switch(e[t]){case`=`:i=0;case`
|
|
2
|
+
`:case`\r`:case` `:case` `:continue;default:throw Error(`invalid base64 string.`)}switch(i){case 0:o=a,i=1;break;case 1:n[r++]=o<<2|(a&48)>>4,o=a,i=2;break;case 2:n[r++]=(o&15)<<4|(a&60)>>2,o=a,i=3;break;case 3:n[r++]=(o&3)<<6|a,i=0}}if(i==1)throw Error(`invalid base64 string.`);return n.subarray(0,r)},enc(e){let t=``,n=0,r,i=0;for(let a=0;a<e.length;a++)switch(r=e[a],n){case 0:t+=P[r>>2],i=(r&3)<<4,n=1;break;case 1:t+=P[i|r>>4],i=(r&15)<<2,n=2;break;case 2:t+=P[i|r>>6],t+=P[r&63],n=0}return n&&(t+=P[i],t+=`=`,n==1&&(t+=`=`)),t}},gt={ignoreUnknownFields:!1},_t={emitDefaultValues:!1,enumAsInteger:!1,useProtoFieldName:!1,prettySpaces:0};function vt(e){return e?{...gt,...e}:gt}function yt(e){return e?{..._t,...e}:_t}function I(e){if(e===null)return`null`;switch(typeof e){case`object`:return Array.isArray(e)?`array`:`object`;case`string`:return e.length>100?`string`:`"${e.split(`"`).join(`\\"`)}"`;default:return String(e)}}function bt(e,t,n,r,i){if(n==null||Array.isArray(n)||typeof n!=`object`)throw Error(`cannot decode message ${t} from JSON: ${I(n)}`);let a=new Map;for(let[o,s]of Object.entries(n)){let n=e.findJsonName(o);if(n){if(n.oneof){if(s===null&&n.kind==`scalar`)continue;let e=a.get(n.oneof);if(e!==void 0)throw Error(`cannot decode message ${t} from JSON: multiple keys for oneof "${n.oneof.name}" present: "${e}", "${o}"`);a.set(n.oneof,o)}St(i,s,n,r)}else if(!r.ignoreUnknownFields)throw Error(`cannot decode message ${t} from JSON: key "${o}" is unknown`)}return i}function xt(e,t,n){let r=Object.create(null),i;try{for(i of t.byNumber()){let t=e;if(!Be(i,t)){if(i.req)throw`required field not set`;if(!n.emitDefaultValues||!Tt(i))continue}let a=i.oneof?t[i.oneof.localName].value:t[i.localName],o=Et(i,a,n);o!==void 0&&(r[n.useProtoFieldName?i.name:i.jsonName]=o)}}catch(e){let t=i?`cannot encode field ${i.name} to JSON`:`cannot encode message to JSON`,n=e instanceof Error?e.message:String(e);throw Error(t+(n.length>0?`: ${n}`:``),{cause:e})}return r}function St(e,t,n,r){let i=n.localName;if(n.repeated){if(h(n.kind!=`map`),t===null)return;if(!Array.isArray(t))throw Error(`cannot decode field ${n.name} from JSON: ${I(t)}`);let a=e[i];Array.isArray(a)||(a=e[i]=[]);for(let e of t){if(e===null)throw Error(`cannot decode field ${n.name} from JSON: ${I(e)}`);switch(n.kind){case`message`:{let t=T(n.T);a.push(A(t.fieldWrapper,t.fromJson(e,r)));break}case`enum`:{let t=z(n.T,e,r.ignoreUnknownFields,!0);t!==R&&a.push(t);break}case`scalar`:try{a.push(B(n.T,e,n.L,!0))}catch(t){let r=`cannot decode field ${n.name} from JSON: ${I(e)}`;throw t instanceof Error&&t.message.length>0&&(r+=`: ${t.message}`),Error(r,{cause:t})}}}}else if(n.kind==`map`){if(t===null)return;if(typeof t!=`object`||Array.isArray(t))throw Error(`cannot decode field ${n.name} from JSON: ${I(t)}`);let a=e[i];typeof a!=`object`&&(a=e[i]=E());for(let[e,i]of Object.entries(t)){if(i===null)throw Error(`cannot decode field ${n.name} from JSON: map value null`);let o;try{o=Ct(n.K,e)}catch(e){let r=`cannot decode map key for field ${n.name} from JSON: ${I(t)}`;throw e instanceof Error&&e.message.length>0&&(r+=`: ${e.message}`),Error(r,{cause:e})}switch(w(o),n.V.kind){case`message`:{let e=T(n.V.T);a[o]=e.fromJson(i,r);break}case`enum`:{let e=z(n.V.T,i,r.ignoreUnknownFields,!0);e!==R&&(a[o]=e);break}case`scalar`:try{a[o]=B(n.V.T,i,b.BIGINT,!0)}catch(e){let r=`cannot decode map value for field ${n.name} from JSON: ${I(t)}`;throw e instanceof Error&&e.message.length>0&&(r+=`: ${e.message}`),Error(r,{cause:e})}}}}else switch(n.oneof&&(e=e[n.oneof.localName]={case:i},i=`value`),n.kind){case`message`:{let a=T(n.T);if(t===null&&a.typeName!=`google.protobuf.Value`)return;e[i]=A(a.fieldWrapper,a.fromJson(t,r));break}case`enum`:{let a=z(n.T,t,r.ignoreUnknownFields,!1);switch(a){case L:wt(n,e);break;case R:break;default:e[i]=a}break}case`scalar`:try{let r=B(n.T,t,n.L,!1);switch(r){case L:wt(n,e);break;default:e[i]=r}}catch(e){let r=`cannot decode field ${n.name} from JSON: ${I(t)}`;throw e instanceof Error&&e.message.length>0&&(r+=`: ${e.message}`),Error(r,{cause:e})}}}const L=Symbol(),R=Symbol();function z(e,t,n,r){if(t===null)return e.typeName==`google.protobuf.NullValue`?0:r?e.values[0].no:L;switch(typeof t){case`number`:if(Number.isInteger(t))return t;break;case`string`:{let r=e.findName(t);if(r!==void 0)return r.no;if(n)return R;break}}throw Error(`cannot decode enum ${e.typeName} from JSON: ${I(t)}`)}function B(e,t,n=b.BIGINT,r=!0){if(t==null)return r?S(e,n):L;switch(e){case y.DOUBLE:case y.FLOAT:{if(t===`NaN`)return NaN;if(t===`Infinity`)return 1/0;if(t===`-Infinity`)return-1/0;if(t===``||typeof t==`string`&&t.trim().length!==t.length||typeof t!=`string`&&typeof t!=`number`)break;let n=Number(t);if(Number.isNaN(n)||!Number.isFinite(n))break;return e==y.FLOAT&&fe(n),n}case y.INT32:case y.FIXED32:case y.SFIXED32:case y.SINT32:case y.UINT32:{let n;if(typeof t==`number`?n=t:typeof t==`string`&&t.length>0&&t.trim().length===t.length&&(n=Number(t)),n===void 0)break;return e==y.UINT32||e==y.FIXED32?de(n):g(n),n}case y.INT64:case y.SFIXED64:case y.SINT64:{if(typeof t!=`number`&&typeof t!=`string`)break;let e=v.parse(t);return n?e.toString():e}case y.FIXED64:case y.UINT64:{if(typeof t!=`number`&&typeof t!=`string`)break;let e=v.uParse(t);return n?e.toString():e}case y.BOOL:if(typeof t!=`boolean`)break;return t;case y.STRING:if(typeof t!=`string`)break;return t;case y.BYTES:if(t===``)return new Uint8Array;if(typeof t!=`string`)break;return ht.dec(t)}throw Error()}function Ct(e,t){if(e===y.BOOL)switch(t){case`true`:t=!0;break;case`false`:t=!1}return B(e,t,b.BIGINT,!0)?.toString()??``}function wt(e,t){let n=e.localName,r=!e.opt&&!e.req;if(e.repeated)t[n]=[];else if(e.oneof)t[e.oneof.localName]={case:void 0};else switch(e.kind){case`map`:t[n]=E();break;case`enum`:t[n]=r?e.T.values[0].no:void 0;break;case`scalar`:t[n]=r?S(e.T,e.L):void 0;break;case`message`:t[n]=void 0}}function Tt(e){return e.repeated||e.kind==`map`?!0:!(e.oneof||e.kind==`message`||e.opt||e.req)}function Et(e,t,n){if(e.kind==`map`){let r=Object.create(null);h(!t||typeof t==`object`);let i=t?Object.entries(t):[];switch(e.V.kind){case`scalar`:for(let[t,n]of i)r[t.toString()]=Dt(e.V.T,n);break;case`message`:for(let[t,a]of i){let i=T(e.V.T);r[t.toString()]=i.toJson(a,n)}break;case`enum`:{let t=e.V.T;for(let[e,a]of i)r[e.toString()]=Ot(t,a,n.enumAsInteger);break}}return n.emitDefaultValues||i.length>0?r:void 0}if(e.repeated){h(!t||Array.isArray(t));let r=[],i=t;if(i&&i.length)switch(e.kind){case`scalar`:for(let t=0;t<i.length;t++)r.push(Dt(e.T,i[t]));break;case`enum`:for(let t=0;t<i.length;t++)r.push(Ot(e.T,i[t],n.enumAsInteger));break;case`message`:{let t=T(e.T);for(let e=0;e<i.length;e++)r.push(t.toJson(Xe(t.fieldWrapper,i[e])));break}}return n.emitDefaultValues||r.length>0?r:void 0}switch(e.kind){case`scalar`:{let r=C(e.T,t,!1);return!n.emitDefaultValues&&Ee(e.T,r)?void 0:Dt(e.T,t)}case`enum`:{let r=qe(e.T,t);return!n.emitDefaultValues&&Ke(e.T)===r?void 0:Ot(e.T,t,n.enumAsInteger)}case`message`:{if(!n.emitDefaultValues&&t==null)return;let r=T(e.T);return r.toJson(Xe(r.fieldWrapper,t))}}}function Dt(e,t){switch(e){case y.INT32:case y.SFIXED32:case y.SINT32:case y.FIXED32:case y.UINT32:return h(typeof t==`number`),t;case y.FLOAT:case y.DOUBLE:return h(typeof t==`number`),Number.isNaN(t)?`NaN`:t===1/0?`Infinity`:t===-1/0?`-Infinity`:t;case y.STRING:return h(typeof t==`string`),t;case y.BOOL:return h(typeof t==`boolean`),t;case y.UINT64:case y.FIXED64:case y.INT64:case y.SFIXED64:case y.SINT64:return h(typeof t==`bigint`||typeof t==`string`||typeof t==`number`),t.toString();case y.BYTES:return h(t instanceof Uint8Array),ht.enc(t);case y.DATE:throw Error(`cannot write date with writeScalar`);default:throw Error(`unknown scalar type`)}}function Ot(e,t,n){return h(typeof t==`number`),e.typeName==`google.protobuf.NullValue`?null:n?t:e.findNumber(t)?.name??t}const kt=[];function V(e,t){let{fields:n,typeName:r,packedByDefault:i,delimitedMessageEncoding:a,fieldWrapper:o}=e,s=ze(n,i),c={typeName:r,fields:s,fieldWrapper:o,create(e){let t=Object.create(null);return O(e,t,s),t},createComplete(e){let t=Nt(s);return O(e,t,s),t},equals(e,t){return jt(s,e,t)},clone(e){return e==null?e:Mt(e,s)},fromBinary(e,t){let n={};if(e&&e.length){let r=tt(t);st(n,s,r.readerFactory(e),e.byteLength,r,a??!1)}return n},fromJson(e,t){let n={};if(e!=null){let i=vt(t);bt(s,r,e,i,n)}return n},fromJsonString(e,t){let n=null;if(e)try{n=JSON.parse(e)}catch(e){throw Error(`cannot decode ${r} from JSON: ${e instanceof Error?e.message:String(e)}`,{cause:e})}return c.fromJson(n,t)},toBinary(e,t){if(e==null)return new Uint8Array;let n=nt(t),r=n.writerFactory();return ct(e,s,r,n),r.finish()},toJson(e,t){let n=yt(t);return xt(e,s,n)},toJsonString(e,t){let n=c.toJson(e,t);return JSON.stringify(n,null,t?.prettySpaces??0)},...t??{}};return c}function At(e,t){return V({typeName:e,fields:kt,packedByDefault:t})}function jt(e,t,n){return t==null&&n==null||t===n?!0:!t||!n?!1:e.byMember().every(e=>{let r=D(t)[e.localName],i=D(n)[e.localName];if(e.repeated){let t=r,n=i;if((t?.length??0)!==(n?.length??0))return!1;if(!t?.length)return!0;switch(e.kind){case`message`:{let r=T(e.T),i=t,a=n;return i.every((e,t)=>r.equals(e,a[t]))}case`scalar`:return t.every((t,r)=>x(e.T,t,n?.[r]));case`enum`:return t.every((e,t)=>x(y.INT32,e,n?.[t]))}throw Error(`repeated cannot contain ${e.kind}`)}switch(e.kind){case`message`:return T(e.T).equals(r,i);case`enum`:return x(y.INT32,r,i);case`scalar`:return x(e.T,r,i);case`oneof`:{let t=r,n=i;if(t?.case!==n?.case)return!1;if(t==null)return!0;let a=t.case;if(a===void 0)return!0;let o=e.findField(a);if(o===void 0)return!0;switch(o.kind){case`message`:return T(o.T).equals(t.value,n?.value);case`enum`:return x(y.INT32,t.value,n?.value);case`scalar`:return x(o.T,t.value,n?.value)}throw Error(`oneof cannot contain ${o.kind}`)}case`map`:{let t=r??{},n=i??{},a=Object.keys(t).concat(Object.keys(n));switch(e.V.kind){case`message`:{let r=T(e.V.T);return a.every(e=>r.equals(t[e],n[e]))}case`enum`:return a.every(e=>x(y.INT32,t[e],n[e]));case`scalar`:{let r=e.V.T;return a.every(e=>x(r,t[e],n[e]))}}}}})}function Mt(e,t){if(e==null)return null;let n=E();return O(e,n,t,!0),n}function Nt(e){let t={};for(let n of e.byMember()){let{localName:e,kind:r}=n;switch(w(e),r){case`oneof`:t[e]=E(),t[e].case=void 0;break;case`scalar`:t[e]=n.repeated?[]:S(n.T,b.BIGINT);break;case`enum`:t[e]=n.repeated?[]:Ke(n.T);break;case`message`:{if(n.oneof)break;if(n.repeated){t[e]=[];break}let r=T(n.T);t[e]=r.fieldWrapper?r.fieldWrapper.unwrapField(null):Nt(r.fields);break}case`map`:t[e]=E()}}return t}const Pt=V({typeName:`srpc.CallStart`,fields:[{no:1,name:`rpc_service`,kind:`scalar`,T:y.STRING},{no:2,name:`rpc_method`,kind:`scalar`,T:y.STRING},{no:3,name:`data`,kind:`scalar`,T:y.BYTES},{no:4,name:`data_is_zero`,kind:`scalar`,T:y.BOOL}],packedByDefault:!0}),Ft=V({typeName:`srpc.CallData`,fields:[{no:1,name:`data`,kind:`scalar`,T:y.BYTES},{no:2,name:`data_is_zero`,kind:`scalar`,T:y.BOOL},{no:3,name:`complete`,kind:`scalar`,T:y.BOOL},{no:4,name:`error`,kind:`scalar`,T:y.STRING}],packedByDefault:!0}),It=V({typeName:`srpc.Packet`,fields:[{no:1,name:`call_start`,kind:`message`,T:()=>Pt,oneof:`body`},{no:2,name:`call_data`,kind:`message`,T:()=>Ft,oneof:`body`},{no:3,name:`call_cancel`,kind:`scalar`,T:y.BOOL,oneof:`body`}],packedByDefault:!0});var Lt=class{sink;source;rpcDataSource;_source=l({objectMode:!0});_rpcDataSource=l({objectMode:!0});service;method;closed;remoteError;invocationController=new AbortController;writeDrainAbort=new AbortController;constructor(){this.sink=this._createSink(),this.source=this._source,this.rpcDataSource=this._rpcDataSource}get isClosed(){return this.closed??!1}get invocationSignal(){return this.invocationController.signal}async writeCallData(e,t,n){await this.writeCallDataPacket(e,t,n)}async writeCallDataPacket(e,t,n,r){let i={data:e||new Uint8Array,dataIsZero:!!e&&e.length===0,complete:t||!1,error:n||``};await this.writePacket({body:{case:`callData`,value:i}},r)}async writeCallCancel(e=!1){await this.writePacket({body:{case:`callCancel`,value:!0}},{waitForDrain:!1}),e&&await this._source.onEmpty({signal:this.writeDrainAbort.signal})}async writeCallDataFromSource(e){try{for await(let t of e)await this.writeCallData(t);await this.writeCallData(void 0,!0)}catch(e){this.close(e)}}async writePacket(e,n){if(this.closed&&!n?.allowClosed)throw Error(t);if(this._source.push(e),!(n?.waitForDrain===!1||this._source.readableLength<=1))try{await this._source.onEmpty({signal:this.writeDrainAbort.signal})}catch(e){throw this.closed?Error(t,{cause:e}):e}}async handleMessage(e){return this.handlePacket(It.fromBinary(e))}async handlePacket(e){try{switch(e?.body?.case){case`callStart`:await this.handleCallStart(e.body.value);break;case`callData`:await this.handleCallData(e.body.value);break;case`callCancel`:e.body.value&&await this.handleCallCancel()}}catch(e){let t=e;t?.message||(t=Error(`error handling packet`)),this.close(t)}}async handleCallStart(e){throw Error(`unexpected call start: ${e.rpcService}/${e.rpcMethod}`)}pushRpcData(e,t){if(t)(!e||e.length!==0)&&(e=new Uint8Array);else if(!e||e.length===0)return;this._rpcDataSource.push(e)}async handleCallData(e){if(!this.service||!this.method)throw Error(`call start must be sent before call data`);this.pushRpcData(e.data,e.dataIsZero);let t=e.error?new r(this.service,this.method,e.error):void 0;t&&(this.remoteError??=t,this.invocationController.abort()),(e.complete&&!t||t)&&this._rpcDataSource.end(t)}async handleCallCancel(){await this.close(Error(t))}async close(e){this.closed||(this.closed=e??!0,!this.remoteError&&e&&(this.remoteError=e),this.invocationController.abort(),e&&e.message&&await this.writeCallDataPacket(void 0,!0,e.message,{allowClosed:!0,waitForDrain:!1}),this.writeDrainAbort.abort(),this._source.end(),this._rpcDataSource.end(e))}_createSink(){return async e=>{try{if(Symbol.asyncIterator in e)for await(let t of e)await this.handlePacket(t);else for(let t of e)await this.handlePacket(t)}catch(e){this.close(e)}}}},Rt=class extends Lt{constructor(e,t){super(),this.service=e,this.method=t}async writeCallStart(e){if(!this.service||!this.method)throw Error(`service and method must be set`);let t={rpcService:this.service,rpcMethod:this.method,data:e||new Uint8Array,dataIsZero:!!e&&e.length===0};await this.writePacket({body:{case:`callStart`,value:t}})}async handleCallStart(e){throw Error(`unexpected server to client rpc: ${e.rpcService||`<empty>`}/${e.rpcMethod||`<empty>`}`)}};async function zt(e,t){try{for await(let n of e)t.push(n);t.end()}catch(e){t.end(e)}}function H(e=0){return new Uint8Array(e)}function Bt(e=0){return new Uint8Array(e)}function Vt(e){return e?.buffer instanceof ArrayBuffer}function Ht(e){if(Vt(e))return e;let t=e.slice();return new Uint8Array(t.buffer,0,t.byteLength)}function Ut(e,t){t??=e.reduce((e,t)=>e+t.length,0);let n=Bt(t),r=0;for(let t of e)n.set(t,r),r+=t.length;return Ht(n)}function Wt(e,t){if(e===t)return!0;if(e.byteLength!==t.byteLength)return!1;for(let n=0;n<e.byteLength;n++)if(e[n]!==t[n])return!1;return!0}const Gt=Symbol.for(`@achingbrain/uint8arraylist`);function Kt(e,t){if(t==null||t<0)throw RangeError(`index is out of bounds`);let n=0;for(let r of e){let e=n+r.byteLength;if(t<e)return{buf:r,index:t-n};n=e}throw RangeError(`index is out of bounds`)}function U(e){return!!e?.[Gt]}var W=class e{bufs;length;[Gt]=!0;constructor(...e){this.bufs=[],this.length=0,e.length>0&&this.appendAll(e)}*[Symbol.iterator](){yield*this.bufs}get byteLength(){return this.length}append(...e){this.appendAll(e)}appendAll(e){let t=0;for(let n of e)if(n instanceof Uint8Array)t+=n.byteLength,this.bufs.push(n);else if(U(n)){t+=n.byteLength;for(let e of n.bufs)this.bufs.push(e)}else throw Error(`Could not append value, must be an Uint8Array or a Uint8ArrayList`);this.length+=t}prepend(...e){this.prependAll(e)}prependAll(e){let t=0;for(let n of e.reverse())if(n instanceof Uint8Array)t+=n.byteLength,this.bufs.unshift(n);else if(U(n))t+=n.byteLength,this.bufs.unshift(...n.bufs);else throw Error(`Could not prepend value, must be an Uint8Array or a Uint8ArrayList`);this.length+=t}get(e){let t=Kt(this.bufs,e);return t.buf[t.index]}set(e,t){let n=Kt(this.bufs,e);n.buf[n.index]=t}write(e,t=0){if(e instanceof Uint8Array)for(let n=0;n<e.length;n++)this.set(t+n,e[n]);else if(U(e))for(let n=0;n<e.length;n++)this.set(t+n,e.get(n));else throw Error(`Could not write value, must be an Uint8Array or a Uint8ArrayList`)}consume(e){if(e=Math.trunc(e),!(Number.isNaN(e)||e<=0)){if(e===this.byteLength){this.bufs=[],this.length=0;return}for(;this.bufs.length>0;)if(e>=this.bufs[0].byteLength)e-=this.bufs[0].byteLength,this.length-=this.bufs[0].byteLength,this.bufs.shift();else{this.bufs[0]=this.bufs[0].subarray(e),this.length-=e;break}}}slice(e,t){let{bufs:n,length:r}=this._subList(e,t);return Ut(n,r)}subarray(e,t){let{bufs:n,length:r}=this._subList(e,t);return n.length===1?n[0]:Ut(n,r)}sublist(t,n){let{bufs:r,length:i}=this._subList(t,n),a=new e;return a.length=i,a.bufs=r,a}_subList(e,t){if(e??=0,t??=this.length,e<0&&(e=this.length+e),t<0&&(t=this.length+t),e<0||t>this.length)throw RangeError(`index is out of bounds`);if(e===t)return{bufs:[],length:0};if(e===0&&t===this.length)return{bufs:[...this.bufs],length:this.length};let n=[],r=0;for(let i=0;i<this.bufs.length;i++){let a=this.bufs[i],o=r,s=o+a.byteLength;if(r=s,e>=s)continue;let c=e>=o&&e<s,l=t>o&&t<=s;if(c&&l){if(e===o&&t===s){n.push(a);break}let r=e-o;n.push(a.subarray(r,r+(t-e)));break}if(c){if(e===0){n.push(a);continue}n.push(a.subarray(e-o));continue}if(l){if(t===s){n.push(a);break}n.push(a.subarray(0,t-o));break}n.push(a)}return{bufs:n,length:t-e}}indexOf(e,t=0){if(!U(e)&&!(e instanceof Uint8Array))throw TypeError(`The "value" argument must be a Uint8ArrayList or Uint8Array`);let n=e instanceof Uint8Array?e:e.subarray();if(t=Number(t??0),isNaN(t)&&(t=0),t<0&&(t=this.length+t),t<0&&(t=0),e.length===0)return t>this.length?this.length:t;let r=n.byteLength;if(r===0)throw TypeError(`search must be at least 1 byte long`);let i=new Int32Array(256);for(let e=0;e<256;e++)i[e]=-1;for(let e=0;e<r;e++)i[n[e]]=e;let a=i,o=this.byteLength-n.byteLength,s=n.byteLength-1,c;for(let e=t;e<=o;e+=c){c=0;for(let t=s;t>=0;t--){let r=this.get(e+t);if(n[t]!==r){c=Math.max(1,t-a[r]);break}}if(c===0)return e}return-1}getInt8(e){let t=this.subarray(e,e+1);return new DataView(t.buffer,t.byteOffset,t.byteLength).getInt8(0)}setInt8(e,t){let n=Bt(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt8(0,t),this.write(n,e)}getInt16(e,t){let n=this.subarray(e,e+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt16(0,t)}setInt16(e,t,n){let r=H(2);new DataView(r.buffer,r.byteOffset,r.byteLength).setInt16(0,t,n),this.write(r,e)}getInt32(e,t){let n=this.subarray(e,e+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt32(0,t)}setInt32(e,t,n){let r=H(4);new DataView(r.buffer,r.byteOffset,r.byteLength).setInt32(0,t,n),this.write(r,e)}getBigInt64(e,t){let n=this.subarray(e,e+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigInt64(0,t)}setBigInt64(e,t,n){let r=H(8);new DataView(r.buffer,r.byteOffset,r.byteLength).setBigInt64(0,t,n),this.write(r,e)}getUint8(e){let t=this.subarray(e,e+1);return new DataView(t.buffer,t.byteOffset,t.byteLength).getUint8(0)}setUint8(e,t){let n=Bt(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint8(0,t),this.write(n,e)}getUint16(e,t){let n=this.subarray(e,e+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint16(0,t)}setUint16(e,t,n){let r=H(2);new DataView(r.buffer,r.byteOffset,r.byteLength).setUint16(0,t,n),this.write(r,e)}getUint32(e,t){let n=this.subarray(e,e+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint32(0,t)}setUint32(e,t,n){let r=H(4);new DataView(r.buffer,r.byteOffset,r.byteLength).setUint32(0,t,n),this.write(r,e)}getBigUint64(e,t){let n=this.subarray(e,e+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigUint64(0,t)}setBigUint64(e,t,n){let r=H(8);new DataView(r.buffer,r.byteOffset,r.byteLength).setBigUint64(0,t,n),this.write(r,e)}getFloat32(e,t){let n=this.subarray(e,e+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat32(0,t)}setFloat32(e,t,n){let r=H(4);new DataView(r.buffer,r.byteOffset,r.byteLength).setFloat32(0,t,n),this.write(r,e)}getFloat64(e,t){let n=this.subarray(e,e+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat64(0,t)}setFloat64(e,t,n){let r=H(8);new DataView(r.buffer,r.byteOffset,r.byteLength).setFloat64(0,t,n),this.write(r,e)}equals(t){if(t==null||!(t instanceof e)||t.bufs.length!==this.bufs.length)return!1;for(let e=0;e<this.bufs.length;e++)if(!Wt(this.bufs[e],t.bufs[e]))return!1;return!0}static fromUint8Arrays(t,n){let r=new e;return r.bufs=t,n??=t.reduce((e,t)=>e+t.byteLength,0),r.length=n,r}};function qt(e){let t=e.fromBinary.bind(e);return async function*(e){for await(let n of e)if(Array.isArray(n))for(let e of n)yield*[t(e)];else yield*[t(n)]}}function Jt(e){return async function*(t){for await(let n of t)if(Array.isArray(n))for(let t of n)yield e.toBinary(t);else yield e.toBinary(n)}}const Yt=1e7,Xt=qt(It),Zt=Jt(It),Qt=e=>{if(e.length<4)throw RangeError(`Could not decode int32BE`);return e.getUint32(0,!0)};Qt.bytes=4;const $t=e=>{let t=new W(new Uint8Array(4));return t.setUint32(0,e,!0),t};$t.bytes=4;async function*en(e,t){for await(let n of e){let e=n instanceof Uint8Array?n.length:n.byteLength;if(e===0||e>Yt)throw RangeError(`invalid packet length: ${e}`);yield new W(t(e),n)}}async function*tn(e,t){let n=new W;for await(let r of e)for(n.append(r);n.length>=t.bytes;){let e=t(n);if(e===0||e>Yt)throw RangeError(`invalid packet length: ${e}`);let r=t.bytes+e;if(n.length<r)break;yield new W(n.slice(t.bytes,r)),n.consume(r)}if(n.length!==0)throw RangeError(`truncated packet frame`)}function nn(e=$t){return t=>en(t,e)}function rn(e=Qt){return t=>tn(t,e)}var an=class{_value;_waiters;constructor(e){this._value=e||void 0,this._waiters=[]}get value(){return this._value}async wait(){let e=this._value;return e===void 0?new Promise(e=>{this.waitWithCb(t=>{e(t)})}):e}waitWithCb(e){e&&this._waiters.push(e)}set(e){if(this._value=e,e===void 0)return;let t=this._waiters;if(t.length!==0){this._waiters=[];for(let n of t)n(e)}}},on=class extends an{constructor(e){super(e)}get openStreamFunc(){return async()=>{let e=this.value;return e||=await this.wait(),e()}}},sn=class{openStreamCtr;constructor(e){this.openStreamCtr=new on(e||void 0)}setOpenStreamFn(e){this.openStreamCtr.set(e||void 0)}async request(e,t,n,r){let i=await this.startRpc(e,t,n,r);for await(let e of i.rpcDataSource)return i.close(),e;let a=Error(`empty response`);throw i.close(a),a}async clientStreamingRequest(e,t,n,r){let i=await this.startRpc(e,t,null,r);i.writeCallDataFromSource(n).catch(e=>i.close(e));for await(let e of i.rpcDataSource)return i.close(),e;let a=Error(`empty response`);throw i.close(a),a}serverStreamingRequest(e,t,n,r){let i=l({objectMode:!0});return this.startRpc(e,t,n,r).then(async e=>zt(e.rpcDataSource,i)).catch(e=>i.end(e)),i}bidirectionalStreamingRequest(e,t,n,r){let i=l({objectMode:!0});return this.startRpc(e,t,null,r).then(async e=>{let t=t=>{i.end(t),e.close(t)};e.writeCallDataFromSource(n).catch(t);try{for await(let t of e.rpcDataSource)i.push(t);i.end(),e.close()}catch(e){t(e)}}).catch(e=>i.end(e)),i}async startRpc(e,n,r,i){if(i?.aborted)throw Error(t);let a=await(await this.openStreamCtr.wait())(),o=new Rt(e,n),s=()=>{if(o.isClosed)return;let e=Error(t);o.writeCallCancel().catch(()=>void 0),a.abort(e),o.close(e).catch(()=>void 0)};return i?.addEventListener(`abort`,s,{once:!0}),m(a,Xt,o,Zt,a).then(async()=>{if(o.isClosed instanceof Error){a.abort(o.isClosed);return}await a.close(),await o.close()},async e=>{let t=e instanceof Error?e:Error(String(e));a.abort(t),await o.close(t)}).finally(()=>{i?.removeEventListener(`abort`,s)}),await o.writeCallStart(r??void 0),o}},cn=class extends Lt{lookupMethod;constructor(e){super(),this.lookupMethod=e}async handleCallStart(e){if(this.service||this.method)throw Error(`call start must be sent only once`);if(this.service=e.rpcService,this.method=e.rpcMethod,!this.service||!this.method)throw Error(`rpcService and rpcMethod cannot be empty`);if(!this.lookupMethod)throw Error(`LookupMethod is not defined`);let t=await this.lookupMethod(this.service,this.method);if(!t)throw Error(`not found: ${this.service}/${this.method}`);this.pushRpcData(e.data,e.dataIsZero),this.invokeRPC(t)}async handleCallData(e){if(!this.service||!this.method)throw Error(`call start must be sent before call data`);return super.handleCallData(e)}async invokeRPC(e){let t=this._createDataSink();try{await e(this.rpcDataSource,t,{signal:this.invocationSignal})}catch(e){this.close(e)}}_createDataSink(){return async e=>{try{for await(let t of e)await this.writeCallData(t);await this.writeCallData(void 0,!0),this.close()}catch(e){this.close(e)}}}},ln=class{lookupMethod;constructor(e){this.lookupMethod=e}get rpcStreamHandler(){return async e=>un(e,this.startRpc())}startRpc(){return new cn(this.lookupMethod)}handlePacketStream(e){let t=this.startRpc();return un(e,t).catch(()=>void 0),t}};async function un(e,t){try{if(await m(e,Xt,t,Zt,e),t.isClosed instanceof Error)throw e.abort(t.isClosed),t.isClosed;await e.close(),await t.close()}catch(n){let r=n instanceof Error?n:Error(String(n));throw e.abort(r),await t.close(r),r}}function dn(e){if(e!=null){if(typeof e[Symbol.iterator]==`function`)return e[Symbol.iterator]();if(typeof e[Symbol.asyncIterator]==`function`)return e[Symbol.asyncIterator]();if(typeof e.next==`function`)return e}throw Error(`argument is not an iterator or iterable`)}var G=class extends Error{static name=`InvalidFrameError`;constructor(e=`The frame was invalid`){super(e),this.name=`InvalidFrameError`}},fn=class extends Error{static name=`UnrequestedPingError`;constructor(e=`Unrequested ping error`){super(e),this.name=`UnrequestedPingError`}},pn=class extends Error{static name=`NotMatchingPingError`;constructor(e=`Unrequested ping error`){super(e),this.name=`NotMatchingPingError`}},mn=class extends Error{static name=`InvalidStateError`;constructor(e=`Invalid state`){super(e),this.name=`InvalidStateError`}},hn=class extends Error{static name=`StreamAlreadyExistsError`;constructor(e=`Strean already exists`){super(e),this.name=`StreamAlreadyExistsError`}},gn=class extends Error{static name=`DecodeInvalidVersionError`;constructor(e=`Decode invalid version`){super(e),this.name=`DecodeInvalidVersionError`}},_n=class extends Error{static name=`BothClientsError`;constructor(e=`Both clients`){super(e),this.name=`BothClientsError`}},vn=class extends Error{static name=`ReceiveWindowExceededError`;constructor(e=`Receive window exceeded`){super(e),this.name=`ReceiveWindowExceededError`}};const yn=new Set([G.name,fn.name,pn.name,hn.name,gn.name,_n.name,vn.name]),bn=262144,xn=Symbol.for(`@libp2p/service-capabilities`);var Sn=class extends Error{static name=`AbortError`;constructor(e=`The operation was aborted`){super(e),this.name=`AbortError`}},K=class extends Error{static name=`InvalidParametersError`;constructor(e=`Invalid parameters`){super(e),this.name=`InvalidParametersError`}},q=class extends Error{static name=`MuxerClosedError`;constructor(e=`The muxer is closed`){super(e),this.name=`MuxerClosedError`}},Cn=class extends Error{static name=`TooManyOutboundProtocolStreamsError`;constructor(e=`Too many outbound protocol streams`){super(e),this.name=`TooManyOutboundProtocolStreamsError`}};const wn={enableKeepAlive:!0,keepAliveInterval:3e4,maxInboundStreams:1e3,maxOutboundStreams:1e3,initialStreamWindowSize:bn,maxStreamWindowSize:16777216,maxMessageSize:65536};function Tn(e){if(e.keepAliveInterval<=0)throw new K(`keep-alive interval must be positive`);if(e.maxInboundStreams<0)throw new K(`max inbound streams must be larger or equal 0`);if(e.maxOutboundStreams<0)throw new K(`max outbound streams must be larger or equal 0`);if(e.initialStreamWindowSize<262144)throw new K(`InitialStreamWindowSize must be larger or equal 256 kB`);if(e.maxStreamWindowSize<e.initialStreamWindowSize)throw new K(`MaxStreamWindowSize must be larger than the InitialStreamWindowSize`);if(e.maxStreamWindowSize>2**32-1)throw new K(`MaxStreamWindowSize must be less than equal MAX_UINT32`);if(e.maxMessageSize<1024)throw new K(`MaxMessageSize must be greater than a kilobyte`)}var J;(function(e){e[e.Data=0]=`Data`,e[e.WindowUpdate=1]=`WindowUpdate`,e[e.Ping=2]=`Ping`,e[e.GoAway=3]=`GoAway`})(J||={});var Y;(function(e){e[e.SYN=1]=`SYN`,e[e.ACK=2]=`ACK`,e[e.FIN=4]=`FIN`,e[e.RST=8]=`RST`})(Y||={}),Object.values(Y).filter(e=>typeof e!=`string`);var X;(function(e){e[e.NormalTermination=0]=`NormalTermination`,e[e.ProtocolError=1]=`ProtocolError`,e[e.InternalError=2]=`InternalError`})(X||={});const En=2**24;function Dn(e){if(e[0]!==0)throw new G(`Invalid frame version`);return{type:e[1],flag:(e[2]<<8)+e[3],streamID:e[4]*En+(e[5]<<16)+(e[6]<<8)+e[7],length:e[8]*En+(e[9]<<16)+(e[10]<<8)+e[11]}}var On=class{source;buffer;frameInProgress;constructor(e){this.source=kn(e),this.buffer=new W,this.frameInProgress=!1}async*emitFrames(){for await(let e of this.source)for(this.buffer.append(e);;){let e=this.readHeader();if(e===void 0)break;let{type:t,length:n}=e;t===J.Data?(this.frameInProgress=!0,yield{header:e,readData:this.readBytes.bind(this,n)}):yield{header:e}}}readHeader(){if(this.frameInProgress)throw new mn(`decoding frame already in progress`);if(this.buffer.length<12)return;let e=Dn(this.buffer.subarray(0,12));return this.buffer.consume(12),e}async readBytes(e){if(this.buffer.length<e){for await(let t of this.source)if(this.buffer.append(t),this.buffer.length>=e)break}let t=this.buffer.sublist(0,e);return this.buffer.consume(e),this.frameInProgress=!1,t}};function kn(e){if(e[Symbol.iterator]!==void 0){let t=e[Symbol.iterator]();return t.return=void 0,{[Symbol.iterator](){return t}}}if(e[Symbol.asyncIterator]!==void 0){let t=e[Symbol.asyncIterator]();return t.return=void 0,{[Symbol.asyncIterator](){return t}}}throw Error(`a source must be either an iterable or an async iterable`)}function An(e){let t=new Uint8Array(12);return t[1]=e.type,t[2]=e.flag>>>8,t[3]=e.flag,t[4]=e.streamID>>>24,t[5]=e.streamID>>>16,t[6]=e.streamID>>>8,t[7]=e.streamID,t[8]=e.length>>>24,t[9]=e.length>>>16,t[10]=e.length>>>8,t[11]=e.length,t}var jn=class extends Error{static name=`StreamResetError`;constructor(e=`The stream has been reset`){super(e),this.name=`StreamResetError`}},Mn=class extends Error{static name=`StreamStateError`;constructor(e=`The stream is in an invalid state`){super(e),this.name=`StreamStateError`}};function Nn(e){return e!=null&&typeof e.then==`function`&&typeof e.catch==`function`&&typeof e.finally==`function`}function Pn(e,t){let n=dn(e).return?.();Nn(n)&&n.catch(e=>{t.error(`could not cause iterator to return`,e)})}function Fn(e){return e!=null&&typeof e.then==`function`&&typeof e.catch==`function`&&typeof e.finally==`function`}var In=class{id;direction;timeline;protocol;metadata;source;status;readStatus;writeStatus;log;sinkController;sinkEnd;closed;endErr;streamSource;onEnd;onCloseRead;onCloseWrite;onReset;onAbort;sendCloseWriteTimeout;sendingData;constructor(e){this.sinkController=new AbortController,this.sinkEnd=a(),this.closed=a(),this.log=e.log,this.status=`open`,this.readStatus=`ready`,this.writeStatus=`ready`,this.id=e.id,this.metadata=e.metadata??{},this.direction=e.direction,this.timeline={open:Date.now()},this.sendCloseWriteTimeout=e.sendCloseWriteTimeout??5e3,this.onEnd=e.onEnd,this.onCloseRead=e.onCloseRead,this.onCloseWrite=e.onCloseWrite,this.onReset=e.onReset,this.onAbort=e.onAbort,this.source=this.streamSource=l({onEnd:e=>{e==null?this.log.trace(`source ended`):this.log.trace(`source ended with error`,e),this.onSourceEnd(e)}}),this.sink=this.sink.bind(this)}async sink(e){if(this.writeStatus!==`ready`)throw new Mn(`writable end state is "${this.writeStatus}" not "ready"`);try{this.writeStatus=`writing`;let t={signal:this.sinkController.signal};if(this.direction===`outbound`){let e=this.sendNewStream(t);Fn(e)&&await e}let n=()=>{Pn(e,this.log)};try{this.sinkController.signal.addEventListener(`abort`,n),this.log.trace(`sink reading from source`);for await(let n of e){n=n instanceof Uint8Array?new W(n):n;let e=this.sendData(n,t);Fn(e)&&(this.sendingData=a(),await e,this.sendingData.resolve(),this.sendingData=void 0)}}finally{this.sinkController.signal.removeEventListener(`abort`,n)}this.log.trace(`sink finished reading from source, write status is "%s"`,this.writeStatus),this.writeStatus===`writing`&&(this.writeStatus=`closing`,this.log.trace(`send close write to remote`),await this.sendCloseWrite({signal:AbortSignal.timeout(this.sendCloseWriteTimeout)}),this.writeStatus=`closed`),this.onSinkEnd()}catch(e){throw this.log.trace(`sink ended with error, calling abort with error`,e),this.abort(e),e}finally{this.log.trace(`resolve sink end`),this.sinkEnd.resolve()}}onSourceEnd(e){this.timeline.closeRead??(this.timeline.closeRead=Date.now(),this.readStatus=`closed`,e!=null&&this.endErr==null&&(this.endErr=e),this.onCloseRead?.(),this.timeline.closeWrite==null?this.log.trace(`source ended, waiting for sink to end`):(this.log.trace(`source and sink ended`),this.timeline.close=Date.now(),this.status!==`aborted`&&this.status!==`reset`&&(this.status=`closed`),this.onEnd!=null&&this.onEnd(this.endErr),this.closed.resolve()))}onSinkEnd(e){this.timeline.closeWrite??(this.timeline.closeWrite=Date.now(),this.writeStatus=`closed`,e!=null&&this.endErr==null&&(this.endErr=e),this.onCloseWrite?.(),this.timeline.closeRead==null?this.log.trace(`sink ended, waiting for source to end`):(this.log.trace(`sink and source ended`),this.timeline.close=Date.now(),this.status!==`aborted`&&this.status!==`reset`&&(this.status=`closed`),this.onEnd!=null&&this.onEnd(this.endErr),this.closed.resolve()))}async close(e){this.status===`open`&&(this.log.trace(`closing gracefully`),this.status=`closing`,await d(Promise.all([this.closeWrite(e),this.closeRead(e),this.closed.promise]),e?.signal),this.status=`closed`,this.log.trace(`closed gracefully`))}async closeRead(e={}){if(this.readStatus===`closing`||this.readStatus===`closed`)return;this.log.trace(`closing readable end of stream with starting read status "%s"`,this.readStatus);let t=this.readStatus;this.readStatus=`closing`,this.status!==`reset`&&this.status!==`aborted`&&this.timeline.closeRead==null&&(this.log.trace(`send close read to remote`),await this.sendCloseRead(e)),t===`ready`&&(this.log.trace(`ending internal source queue with %d queued bytes`,this.streamSource.readableLength),this.streamSource.end()),this.log.trace(`closed readable end of stream`)}async closeWrite(e={}){this.writeStatus!==`closing`&&this.writeStatus!==`closed`&&(this.log.trace(`closing writable end of stream with starting write status "%s"`,this.writeStatus),this.writeStatus===`ready`&&(this.log.trace(`sink was never sunk, sink an empty array`),await d(this.sink([]),e.signal)),this.writeStatus===`writing`&&(this.sendingData!=null&&await d(this.sendingData.promise,e.signal),this.log.trace(`aborting source passed to .sink`),this.sinkController.abort(),await d(this.sinkEnd.promise,e.signal)),this.writeStatus=`closed`,this.log.trace(`closed writable end of stream`))}abort(e){if(this.status===`closed`||this.status===`aborted`||this.status===`reset`)return;this.log(`abort with error`,e),this.log(`try to send reset to remote`);let t=this.sendReset();Fn(t)&&t.catch(e=>{this.log.error(`error sending reset message`,e)}),this.status=`aborted`,this.timeline.abort=Date.now(),this._closeSinkAndSource(e),this.onAbort?.(e)}reset(){if(this.status===`closed`||this.status===`aborted`||this.status===`reset`)return;let e=new jn(`stream reset`);this.status=`reset`,this.timeline.reset=Date.now(),this._closeSinkAndSource(e),this.onReset?.()}_closeSinkAndSource(e){this._closeSink(e),this._closeSource(e)}_closeSink(e){this.writeStatus===`writing`&&(this.log.trace(`end sink source`),this.sinkController.abort()),this.onSinkEnd(e)}_closeSource(e){this.readStatus!==`closing`&&this.readStatus!==`closed`&&(this.log.trace(`ending source with %d bytes to be read by consumer`,this.streamSource.readableLength),this.readStatus=`closing`,this.streamSource.end(e))}remoteCloseWrite(){if(this.readStatus===`closing`||this.readStatus===`closed`){this.log(`received remote close write but local source is already closed`);return}this.log.trace(`remote close write`),this._closeSource()}remoteCloseRead(){if(this.writeStatus===`closing`||this.writeStatus===`closed`){this.log(`received remote close read but local sink is already closed`);return}this.log.trace(`remote close read`),this._closeSink()}destroy(){if(this.status===`closed`||this.status===`aborted`||this.status===`reset`){this.log(`received destroy but we are already closed`);return}this.log.trace(`stream destroyed`),this._closeSinkAndSource()}sourcePush(e){this.streamSource.push(e)}sourceReadableLength(){return this.streamSource.readableLength}};function Ln(e){let[t,n]=e[Symbol.asyncIterator]==null?[e[Symbol.iterator](),Symbol.iterator]:[e[Symbol.asyncIterator](),Symbol.asyncIterator],r=[];return{peek:()=>t.next(),push:e=>{r.push(e)},next:()=>r.length>0?{done:!1,value:r.shift()}:t.next(),[n](){return this}}}function Rn(e){return e[Symbol.asyncIterator]!=null}function zn(e){return e?.then!=null}function Bn(e,t){let n=0;if(Rn(e))return(async function*(){for await(let r of e){let e=t(r,n++);zn(e)&&await e,yield r}})();let r=Ln(e),{value:i,done:a}=r.next();if(a===!0)return function*(){}();let o=t(i,n++);if(typeof o?.then==`function`)return(async function*(){await o,yield i;for(let e of r){let r=t(e,n++);zn(r)&&await r,yield e}})();let s=t;return(function*(){yield i;for(let e of r)s(e,n++),yield e})()}var Z;(function(e){e[e.Init=0]=`Init`,e[e.SYNSent=1]=`SYNSent`,e[e.SYNReceived=2]=`SYNReceived`,e[e.Established=3]=`Established`,e[e.Finished=4]=`Finished`})(Z||={});var Vn=class extends In{name;state;config;_id;sendWindowCapacity;sendWindowCapacityUpdate;recvWindow;recvWindowCapacity;epochStart;getRTT;sendFrame;constructor(e){super({...e,onEnd:t=>{this.state=Z.Finished,e.onEnd?.(t)}}),this.config=e.config,this._id=parseInt(e.id,10),this.name=e.name,this.state=e.state,this.sendWindowCapacity=bn,this.recvWindow=this.config.initialStreamWindowSize,this.recvWindowCapacity=this.recvWindow,this.epochStart=Date.now(),this.getRTT=e.getRTT,this.sendFrame=e.sendFrame,this.source=Bn(this.source,()=>{this.sendWindowUpdate()})}async sendNewStream(){}async sendData(e,t={}){for(e=e.sublist();e.byteLength!==0;){if(this.sendWindowCapacity===0&&(this.log?.trace(`wait for send window capacity, status %s`,this.status),await this.waitForSendWindowCapacity(t),this.status===`closed`||this.status===`aborted`||this.status===`reset`)){this.log?.trace(`%s while waiting for send window capacity`,this.status);return}let n=Math.min(this.sendWindowCapacity,this.config.maxMessageSize-12,e.length),r=this.getSendFlags();this.sendFrame({type:J.Data,flag:r,streamID:this._id,length:n},e.sublist(0,n)),this.sendWindowCapacity-=n,e.consume(n)}}sendReset(){this.sendFrame({type:J.WindowUpdate,flag:Y.RST,streamID:this._id,length:0})}async sendCloseWrite(){let e=this.getSendFlags()|Y.FIN;this.sendFrame({type:J.WindowUpdate,flag:e,streamID:this._id,length:0})}async sendCloseRead(){}async waitForSendWindowCapacity(e={}){if(this.sendWindowCapacity>0)return;let t,n,r=()=>{this.status===`open`||this.status===`closing`?n(new Sn(`Stream aborted`)):t()};e.signal?.addEventListener(`abort`,r);try{await new Promise((e,r)=>{this.sendWindowCapacityUpdate=()=>{e()},n=r,t=e})}finally{e.signal?.removeEventListener(`abort`,r)}}handleWindowUpdate(e){this.log?.trace(`stream received window update id=%s`,this._id),this.processFlags(e.flag);let t=this.sendWindowCapacity;this.sendWindowCapacity+=e.length,t===0&&e.length>0&&this.sendWindowCapacityUpdate?.()}async handleData(e,t){if(this.log?.trace(`stream received data id=%s`,this._id),this.processFlags(e.flag),this.recvWindowCapacity<e.length)throw new vn(`Receive window exceeded`);let n=await t();this.recvWindowCapacity-=e.length,this.sourcePush(n)}processFlags(e){(e&Y.ACK)===Y.ACK&&this.state===Z.SYNSent&&(this.state=Z.Established),(e&Y.FIN)===Y.FIN&&this.remoteCloseWrite(),(e&Y.RST)===Y.RST&&this.reset()}getSendFlags(){switch(this.state){case Z.Init:return this.state=Z.SYNSent,Y.SYN;case Z.SYNReceived:return this.state=Z.Established,Y.ACK;default:return 0}}sendWindowUpdate(){if(this.readStatus!==`ready`)return;let e=this.getSendFlags(),t=Date.now(),n=this.getRTT();if(e===0&&n>-1&&t-this.epochStart<n*4&&(this.recvWindow=Math.min(this.recvWindow*2,this.config.maxStreamWindowSize)),this.recvWindowCapacity>=this.recvWindow&&e===0)return;let r=this.recvWindow-this.recvWindowCapacity;this.recvWindowCapacity=this.recvWindow,this.epochStart=t,this.sendFrame({type:J.WindowUpdate,flag:e,streamID:this._id,length:r})}};const Hn=`/yamux/1.0.0`;var Un=class{protocol=Hn;_components;_init;constructor(e,t={}){this._components=e,this._init=t}[Symbol.toStringTag]=`@chainsafe/libp2p-yamux`;[xn]=[`@libp2p/stream-multiplexing`];createStreamMuxer(e){return new Wn(this._components,{...this._init,...e})}},Wn=class{protocol=Hn;source;sink;config;log;logger;closeController;nextStreamID;_streams;nextPingID;activePing;rtt;client;localGoAway;remoteGoAway;numInboundStreams;numOutboundStreams;onIncomingStream;onStreamEnd;constructor(e,t){this.client=t.direction===`outbound`,this.config={...wn,...t},this.logger=e.logger,this.log=this.logger.forComponent(`libp2p:yamux`),Tn(this.config),this.closeController=new AbortController,this.closeController.signal,this.onIncomingStream=t.onIncomingStream,this.onStreamEnd=t.onStreamEnd,this._streams=new Map,this.source=l({onEnd:()=>{this.log?.trace(`muxer source ended`),this._streams.forEach(e=>{e.destroy()})}}),this.sink=async e=>{let t=()=>{let t=dn(e);if(t.return!=null){let e=t.return();Gn(e)&&e.catch(e=>{this.log?.(`could not cause sink source to return`,e)})}},n,r;try{let r=new On(e);try{this.closeController.signal.addEventListener(`abort`,t);for await(let e of r.emitFrames())await this.handleFrame(e.header,e.readData)}finally{this.closeController.signal.removeEventListener(`abort`,t)}n=X.NormalTermination}catch(e){yn.has(e.name)?(this.log?.error(`protocol error in sink`,e),n=X.ProtocolError):(this.log?.error(`internal error in sink`,e),n=X.InternalError),r=e}this.log?.trace(`muxer sink ended`),r==null?await this.close({reason:n}):this.abort(r,n)},this.numInboundStreams=0,this.numOutboundStreams=0,this.nextStreamID=this.client?1:2,this.nextPingID=0,this.rtt=-1,this.log?.trace(`muxer created`),this.config.enableKeepAlive&&this.keepAliveLoop().catch(e=>this.log?.error(`keepalive error: %s`,e)),this.ping().catch(e=>this.log?.error(`ping error: %s`,e))}get streams(){return Array.from(this._streams.values())}newStream(e){if(this.remoteGoAway!==void 0)throw new q(`Muxer closed remotely`);if(this.localGoAway!==void 0)throw new q(`Muxer closed locally`);let t=this.nextStreamID;if(this.nextStreamID+=2,this.numOutboundStreams>=this.config.maxOutboundStreams)throw new Cn(`max outbound streams exceeded`);this.log?.trace(`new outgoing stream id=%s`,t);let n=this._newStream(t,e,Z.Init,`outbound`);return this._streams.set(t,n),this.numOutboundStreams++,n.sendWindowUpdate(),n}async ping(){if(this.remoteGoAway!==void 0)throw new q(`Muxer closed remotely`);if(this.localGoAway!==void 0)throw new q(`Muxer closed locally`);if(this.activePing===void 0){let e=()=>{};this.activePing={id:this.nextPingID++,promise:new Promise((t,n)=>{let r=()=>{n(new q(`Muxer closed locally`))};this.closeController.signal.addEventListener(`abort`,r,{once:!0}),e=()=>{this.closeController.signal.removeEventListener(`abort`,r),t()}}),resolve:e};let t=Date.now();this.sendPing(this.activePing.id);try{await this.activePing.promise}finally{delete this.activePing}let n=Date.now();this.rtt=n-t}else await this.activePing.promise;return this.rtt}getRTT(){return this.rtt}async close(e={}){if(this.closeController.signal.aborted)return;let t=e?.reason??X.NormalTermination;if(this.log?.trace(`muxer close reason=%s`,t),e.signal==null){let t=AbortSignal.timeout(500);e={...e,signal:t}}try{await Promise.all([...this._streams.values()].map(async t=>t.close(e))),this.sendGoAway(t),this._closeMuxer()}catch(e){this.abort(e)}}abort(e,t){if(!this.closeController.signal.aborted){t??=X.InternalError,this.log?.error(`muxer abort reason=%s error=%s`,t,e);for(let t of this._streams.values())t.abort(e);this.sendGoAway(t),this._closeMuxer()}}isClosed(){return this.closeController.signal.aborted}_closeMuxer(){this.closeController.abort(),this.source.end()}_newStream(e,t,n,r){if(this._streams.get(e)!=null)throw new K(`Stream already exists with that id`);let i=new Vn({id:e.toString(),name:t,state:n,direction:r,sendFrame:this.sendFrame.bind(this),onEnd:()=>{this.closeStream(e),this.onStreamEnd?.(i)},log:this.logger.forComponent(`libp2p:yamux:${r}:${e}`),config:this.config,getRTT:this.getRTT.bind(this)});return i}closeStream(e){this.client===(e%2==0)?this.numInboundStreams--:this.numOutboundStreams--,this._streams.delete(e)}async keepAliveLoop(){for(this.log?.trace(`muxer keepalive enabled interval=%s`,this.config.keepAliveInterval);;){let e;try{await d(new Promise(t=>{e=setTimeout(t,this.config.keepAliveInterval)}),this.closeController.signal),this.ping().catch(e=>this.log?.error(`ping error: %s`,e))}catch{clearInterval(e);return}}}async handleFrame(e,t){let{streamID:n,type:r,length:i}=e;if(this.log?.trace(`received frame %o`,e),n===0)switch(r){case J.Ping:this.handlePing(e);return;case J.GoAway:this.handleGoAway(i);return;default:throw new G(`Invalid frame type`)}else switch(e.type){case J.Data:case J.WindowUpdate:await this.handleStreamMessage(e,t);return;default:throw new G(`Invalid frame type`)}}handlePing(e){if(e.flag===Y.SYN)this.log?.trace(`received ping request pingId=%s`,e.length),this.sendPing(e.length,Y.ACK);else if(e.flag===Y.ACK)this.log?.trace(`received ping response pingId=%s`,e.length),this.handlePingResponse(e.length);else throw new G(`Invalid frame flag`)}handlePingResponse(e){if(this.activePing===void 0)throw new fn(`ping not requested`);if(this.activePing.id!==e)throw new pn(`ping doesn't match our id`);this.activePing.resolve()}handleGoAway(e){this.log?.trace(`received GoAway reason=%s`,X[e]??`unknown`),this.remoteGoAway=e;for(let e of this._streams.values())e.reset();this._closeMuxer()}async handleStreamMessage(e,t){let{streamID:n,flag:r,type:i}=e;(r&Y.SYN)===Y.SYN&&this.incomingStream(n);let a=this._streams.get(n);if(a===void 0){if(i===J.Data){if(this.log?.(`discarding data for stream id=%s`,n),t===void 0)throw Error(`unreachable`);await t()}else this.log?.trace(`frame for missing stream id=%s`,n);return}switch(i){case J.WindowUpdate:a.handleWindowUpdate(e);return;case J.Data:if(t===void 0)throw Error(`unreachable`);await a.handleData(e,t);return;default:throw Error(`unreachable`)}}incomingStream(e){if(this.client!==(e%2==0))throw new K(`Both endpoints are clients`);if(this._streams.has(e))return;if(this.log?.trace(`new incoming stream id=%s`,e),this.localGoAway!==void 0){this.sendFrame({type:J.WindowUpdate,flag:Y.RST,streamID:e,length:0});return}if(this.numInboundStreams>=this.config.maxInboundStreams){this.log?.(`maxIncomingStreams exceeded, forcing stream reset`),this.sendFrame({type:J.WindowUpdate,flag:Y.RST,streamID:e,length:0});return}let t=this._newStream(e,void 0,Z.SYNReceived,`inbound`);this.numInboundStreams++,this._streams.set(e,t),this.onIncomingStream?.(t)}sendFrame(e,t){if(this.log?.trace(`sending frame %o`,e),e.type===J.Data){if(t===void 0)throw new G(`Invalid frame`);this.source.push(new W(An(e),t))}else this.source.push(An(e))}sendPing(e,t=Y.SYN){t===Y.SYN?this.log?.trace(`sending ping request pingId=%s`,e):this.log?.trace(`sending ping response pingId=%s`,e),this.sendFrame({type:J.Ping,flag:t,streamID:0,length:e})}sendGoAway(e=X.NormalTermination){this.log?.(`sending GoAway reason=%s`,X[e]),this.localGoAway=e,this.sendFrame({type:J.GoAway,flag:0,streamID:0,length:e})}};function Gn(e){return e!=null&&typeof e.then==`function`}function Kn(e={}){return t=>new Un(t,e)}function qn(){return async function*(e){for await(let t of e)U(t)?yield t.subarray():yield t}}var Jn=class{_waiters=new Set;_error;_terminated=!1;get terminated(){return this._terminated}terminate(e){if(this._terminated)return!1;this._terminated=!0,this._error=e;for(let t of this._waiters)t(e);return this._waiters.clear(),!0}async wait(e){if(this._terminated)return{terminated:!0,error:this._error};let t,n=new Promise(e=>{t=t=>e({terminated:!0,error:t}),this._waiters.add(t)}),r=e.then(e=>({result:e}),e=>({error:e}));try{let e=await Promise.race([r,n]);return this._terminated?{terminated:!0,error:this._error}:e}finally{this._waiters.delete(t)}}next(e){return this.wait(e.next())}};function Yn(e){if(Symbol.asyncIterator in e)return e[Symbol.asyncIterator]();let t=e[Symbol.iterator]();return{next:async()=>t.next()}}function Xn(e){e.return&&Promise.resolve(e.return()).catch(()=>void 0)}function Zn(e){let t=new Jn;return{close:async()=>{t.terminate()&&await e.close()},abort:n=>{t.terminate(n)&&e.abort(n)},source:(async function*(){let n=m(e,rn(),qn())[Symbol.asyncIterator]();try{for(;;){let e=await t.next(n);if(`terminated`in e){if(e.error)throw e.error;return}if(`error`in e)throw e.error;if(e.result.done)return;yield e.result.value}}finally{Xn(n)}})(),sink:async n=>{let r=Yn(m(n,nn())),i=(async function*(){for(;;){let e=await t.next(r);if(`terminated`in e){if(e.error)throw e.error;return}if(`error`in e)throw e.error;if(e.result.done||t.terminated)return;yield e.result.value}})();try{let n=await t.wait(e.sink(i));if(`terminated`in n){if(n.error)throw n.error;return}if(`error`in n)throw n.error;await e.closeWrite()}catch(n){let r=n instanceof Error?n:Error(String(n));throw t.terminate(r)&&e.abort(r),r}finally{Xn(r)}}}}function Qn(e){let t=()=>{};return t.enabled=!1,t.color=``,t.diff=0,t.log=()=>{},t.namespace=e,t.destroy=()=>!0,t.extend=()=>t,t.debug=t,t.error=t,t.trace=t,t.newScope=()=>t,t}function $n(){return{forComponent:Qn}}var er=class{_muxer;_server;constructor(e,t){e&&(this._server=e);let n=t?.muxerFactory??Kn({enableKeepAlive:!1,...t?.yamuxParams})({logger:t?.logger??$n()});this._muxer=n.createStreamMuxer({onIncomingStream:this.handleIncomingStream.bind(this),direction:t?.direction||`outbound`})}get sink(){return this._muxer.sink}get source(){return this._muxer.source}get streams(){return this._muxer.streams}get muxer(){return this._muxer}get server(){return this._server}buildClient(){return new sn(this.openStream.bind(this))}async openStream(){return Zn(await this.muxer.newStream())}buildOpenStreamFunc(){return this.openStream.bind(this)}handleIncomingStream(e){let t=this.server;if(!t)return e.abort(Error(`server not implemented`));t.handlePacketStream(Zn(e))}close(e){e?this.muxer.abort(e):this.muxer.close()}},tr=async e=>{if(e.readyState>=2)throw Error(`socket closed`);e.readyState!==1&&await new Promise((t,n)=>{function r(){e.removeEventListener(`open`,i),e.removeEventListener(`error`,a)}function i(){r(),t()}function a(t){r(),n(t.error??Error(`connect ECONNREFUSED ${e.url}`))}e.addEventListener(`open`,i),e.addEventListener(`error`,a)})},nr=(e,t)=>(t??={},t.closeOnEnd=t.closeOnEnd!==!1,async n=>{for await(let t of n){try{await tr(e)}catch(e){if(e.message===`socket closed`)break;throw e}if(e.readyState===e.CLOSING||e.readyState===e.CLOSED)break;e.send(t)}t.closeOnEnd!=null&&e.readyState<=1&&await new Promise((t,n)=>{e.addEventListener(`close`,e=>{e.wasClean||e.code===1006?t():n(Object.assign(Error(`ws error`),{event:e}))}),setTimeout(()=>{e.close()})})}),rr=e((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=class{constructor(){this.pullQueue=[],this.pushQueue=[],this.eventHandlers={},this.isPaused=!1,this.isStopped=!1}push(e){if(this.isStopped)return;let t={value:e,done:!1};if(this.pullQueue.length){let e=this.pullQueue.shift();e&&e.resolve(t)}else this.pushQueue.push(Promise.resolve(t)),this.highWaterMark!==void 0&&this.pushQueue.length>=this.highWaterMark&&!this.isPaused&&(this.isPaused=!0,this.eventHandlers.highWater?this.eventHandlers.highWater():console&&console.warn(`EventIterator queue reached ${this.pushQueue.length} items`))}stop(){if(!this.isStopped){this.isStopped=!0,this.remove();for(let e of this.pullQueue)e.resolve({value:void 0,done:!0});this.pullQueue.length=0}}fail(e){if(!this.isStopped){if(this.isStopped=!0,this.remove(),this.pullQueue.length){for(let t of this.pullQueue)t.reject(e);this.pullQueue.length=0}else{let t=Promise.reject(e);t.catch(()=>{}),this.pushQueue.push(t)}}}remove(){Promise.resolve().then(()=>{this.removeCallback&&this.removeCallback()})}[Symbol.asyncIterator](){return{next:e=>{let t=this.pushQueue.shift();return t?(this.lowWaterMark!==void 0&&this.pushQueue.length<=this.lowWaterMark&&this.isPaused&&(this.isPaused=!1,this.eventHandlers.lowWater&&this.eventHandlers.lowWater()),t):this.isStopped?Promise.resolve({value:void 0,done:!0}):new Promise((e,t)=>{this.pullQueue.push({resolve:e,reject:t})})},return:()=>(this.isStopped=!0,this.pushQueue.length=0,this.remove(),Promise.resolve({value:void 0,done:!0}))}}},n=class{constructor(e,{highWaterMark:n=100,lowWaterMark:r=1}={}){let i=new t;i.highWaterMark=n,i.lowWaterMark=r,i.removeCallback=e({push:e=>i.push(e),stop:()=>i.stop(),fail:e=>i.fail(e),on:(e,t)=>{i.eventHandlers[e]=t}})||(()=>{}),this[Symbol.asyncIterator]=()=>i[Symbol.asyncIterator](),Object.freeze(this)}};e.EventIterator=n,e.default=n})),ir=e((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=rr();e.EventIterator=t.EventIterator,e.default=t.EventIterator}))();function ar(e){return e instanceof ArrayBuffer||e?.constructor?.name===`ArrayBuffer`&&typeof e?.byteLength==`number`}var or=e=>{e.binaryType=`arraybuffer`;let t=async()=>{await new Promise((t,n)=>{if(r){t();return}if(i!=null){n(i);return}let a=t=>{e.removeEventListener(`open`,o),e.removeEventListener(`error`,s),t()},o=()=>{a(t)},s=t=>{a(()=>{n(t.error??Error(`connect ECONNREFUSED ${e.url}`))})};e.addEventListener(`open`,o),e.addEventListener(`error`,s)})},n=async function*(){let n=new ir.EventIterator(({push:t,stop:n,fail:r})=>{let i=e=>{let n=null;if(typeof e.data==`string`)throw Error(`Unsupported string encoding`);ar(e.data)&&(n=new Uint8Array(e.data)),e.data instanceof Uint8Array&&(n=e.data),n!=null&&t(n)},a=e=>{r(e.error??Error(`Socket error`))};return e.addEventListener(`message`,i),e.addEventListener(`error`,a),e.addEventListener(`close`,n),()=>{e.removeEventListener(`message`,i),e.removeEventListener(`error`,a),e.removeEventListener(`close`,n)}},{highWaterMark:1/0});await t();for await(let e of n)yield ar(e)?new Uint8Array(e):e}(),r=e.readyState===1,i;return e.addEventListener(`open`,()=>{r=!0,i=null}),e.addEventListener(`close`,()=>{r=!1,i=null}),e.addEventListener(`error`,t=>{r||(i=t.error??Error(`connect ECONNREFUSED ${e.url}`))}),Object.assign(n,{connected:t})},sr=(e,t)=>{t??={};let n=or(e),r=t.remoteAddress,i=t.remotePort;if(e.url!=null)try{let t=new URL(e.url);r=t.hostname,i=parseInt(t.port,10)}catch{}if(r==null||i==null)throw Error(`Remote connection did not have address and/or port`);return{sink:nr(e,t),source:n,connected:async()=>{await n.connected()},close:async()=>{(e.readyState===e.CONNECTING||e.readyState===e.OPEN)&&await new Promise(t=>{e.addEventListener(`close`,()=>{t()}),e.close()})},destroy:()=>{e.terminate==null?e.close():e.terminate()},remoteAddress:r,remotePort:i,socket:e}},cr=class extends er{socket;constructor(e,t,n){super(n,{direction:t}),this.socket=e;let r=sr(e);m(r,this,qn(),r).catch(e=>this.close(e)).then(()=>this.close())}getSocket(){return this.socket}},Q;(function(e){e[e.Unary=0]=`Unary`,e[e.ServerStreaming=1]=`ServerStreaming`,e[e.ClientStreaming=2]=`ClientStreaming`,e[e.BiDiStreaming=3]=`BiDiStreaming`})(Q||={});var lr;(function(e){e[e.NoSideEffects=1]=`NoSideEffects`,e[e.Idempotent=2]=`Idempotent`})(lr||={});const ur=V({typeName:`rpcstream.RpcStreamInit`,fields:[{no:1,name:`component_id`,kind:`scalar`,T:y.STRING}],packedByDefault:!0}),dr=V({typeName:`rpcstream.RpcAck`,fields:[{no:1,name:`error`,kind:`scalar`,T:y.STRING}],packedByDefault:!0}),fr=V({typeName:`rpcstream.RpcStreamPacket`,fields:[{no:1,name:`init`,kind:`message`,T:()=>ur,oneof:`body`},{no:2,name:`ack`,kind:`message`,T:()=>dr,oneof:`body`},{no:3,name:`data`,kind:`scalar`,T:y.BYTES,oneof:`body`}],packedByDefault:!0}),$=V({typeName:`echo.EchoMsg`,fields:[{no:1,name:`body`,kind:`scalar`,T:y.STRING}],packedByDefault:!0}),pr=At(`google.protobuf.Empty`,!0);({typeName:`echo.Echoer`,methods:{Echo:{name:`Echo`,I:$,O:$,kind:Q.Unary},EchoServerStream:{name:`EchoServerStream`,I:$,O:$,kind:Q.ServerStreaming},EchoClientStream:{name:`EchoClientStream`,I:$,O:$,kind:Q.ClientStreaming},EchoBidiStream:{name:`EchoBidiStream`,I:$,O:$,kind:Q.BiDiStreaming},RpcStream:{name:`RpcStream`,I:fr,O:fr,kind:Q.BiDiStreaming},DoNothing:{name:`DoNothing`,I:pr,O:pr,kind:Q.Unary}}}).typeName;for(let e of[`dispose`,`asyncDispose`])Symbol[e]||Object.defineProperty(Symbol,e,{value:Symbol.for(`Symbol.${e}`)});const mr=Symbol.for(`spacewave.SyncError`);var hr=class extends Error{code;requestId;name=`SyncError`;[mr]=!0;static[Symbol.hasInstance](e){return e instanceof Error&&mr in e&&e[mr]===!0}constructor(e,t,n){super(t),this.code=e,this.requestId=n}};function gr(e){return e instanceof hr?e:new hr(`STORAGE`,`The data operation could not complete`)}function _r(e){return br(e,`$`,[])}function vr(e){return new TextEncoder().encode(_r(e))}function yr(e){let t;try{t=new TextDecoder(`utf-8`,{fatal:!0}).decode(e)}catch{throw TypeError(`invalid JSON at $: data is not valid UTF-8`)}let n;try{n=JSON.parse(t)}catch{throw TypeError(`invalid JSON at $: data is not valid JSON`)}return _r(n),n}function br(e,t,n){switch(typeof e){case`boolean`:return e?`true`:`false`;case`number`:if(!Number.isFinite(e))throw TypeError(`invalid JSON at ${t}: non-finite number`);return JSON.stringify(e);case`string`:return JSON.stringify(e);case`object`:if(e===null)return`null`;break;default:throw TypeError(`invalid JSON at ${t}: ${typeof e} is not a JSON value`)}for(let r of n)if(r===e)throw TypeError(`invalid JSON at ${t}: cycle`);n.push(e);let r=Array.isArray(e)?xr(e,t,n):Sr(e,t,n);return n.pop(),r}function xr(e,t,n){let r=e.length,i=Array.from({length:r}),a=Array.from({length:r},()=>!1);for(let o of Reflect.ownKeys(e)){let s=Object.getOwnPropertyDescriptor(e,o);if(s.get!==void 0||s.set!==void 0)throw TypeError(`invalid JSON at ${t}[${String(o)}]: accessor property`);if(typeof o==`symbol`){if(s.enumerable)throw TypeError(`invalid JSON at ${t}: enumerable symbol key is not supported`);continue}let c=Number(o);if(Number.isInteger(c)&&c>=0&&c<r&&String(c)===o){a[c]=!0,i[c]=br(s.value,`${t}[${c}]`,n);continue}if(s.enumerable)throw TypeError(`invalid JSON at ${t}: extra enumerable array property ${JSON.stringify(o)}`)}for(let e=0;e<r;e++)if(!a[e])throw TypeError(`invalid JSON at ${t}[${e}]: array hole (missing index)`);return`[${i.join(`,`)}]`}function Sr(e,t,n){let r=Object.getPrototypeOf(e);if(r!==Object.prototype&&r!==null)throw TypeError(`invalid JSON at ${t}: not a plain object`);let i=[];for(let r of Reflect.ownKeys(e)){let a=Object.getOwnPropertyDescriptor(e,r);if(a.get!==void 0||a.set!==void 0)throw TypeError(`invalid JSON at ${t}.${String(r)}: accessor property`);if(typeof r==`symbol`){if(a.enumerable)throw TypeError(`invalid JSON at ${t}: enumerable symbol key is not supported`);continue}a.enumerable&&i.push({key:r,json:br(a.value,`${t}.${r}`,n)})}return i.sort((e,t)=>e.key<t.key?-1:+(e.key>t.key)),`{${i.map(e=>`${JSON.stringify(e.key)}:${e.json}`).join(`,`)}}`}export{t as C,l as S,n as T,At as _,gr as a,y as b,er as c,Yn as d,qn as f,Jt as g,qt as h,hr as i,Jn as l,sn as m,yr as n,Q as o,ln as p,vr as r,cr as s,_r as t,Xn as u,V as v,i as w,m as x,Ge as y};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{t as e}from"./rolldown-runtime-Csi-cuKc.mjs";import{Buffer as t}from"node:buffer";function n(e,t){if(!e)throw Error(t)}function r(e){if(typeof e!=`number`)throw Error(`invalid int 32: `+typeof e);if(!Number.isInteger(e)||e>2147483647||e<-2147483648)throw Error(`invalid int 32: `+e)}function i(e){if(typeof e!=`number`)throw Error(`invalid uint 32: `+typeof e);if(!Number.isInteger(e)||e>4294967295||e<0)throw Error(`invalid uint 32: `+e)}function a(e){if(typeof e!=`number`)throw Error(`invalid float 32: `+typeof e);if(Number.isFinite(e)&&(e>34028234663852886e22||e<-34028234663852886e22))throw Error(`invalid float 32: `+e)}function o(){let e=0,t=0;for(let n=0;n<28;n+=7){let r=this.buf[this.pos++];if(e|=(r&127)<<n,!(r&128))return this.assertBounds(),[e,t]}let n=this.buf[this.pos++];if(e|=(n&15)<<28,t=(n&112)>>4,!(n&128))return this.assertBounds(),[e,t];for(let n=3;n<=31;n+=7){let r=this.buf[this.pos++];if(t|=(r&127)<<n,!(r&128))return this.assertBounds(),[e,t]}throw Error(`invalid varint`)}function s(e,t,n){for(let r=0;r<28;r+=7){let i=e>>>r,a=!(!(i>>>7)&&t==0),o=(a?i|128:i)&255;if(n.push(o),!a)return}let r=e>>>28&15|(t&7)<<4,i=!!(t>>3);if(n.push((i?r|128:r)&255),i){for(let e=3;e<31;e+=7){let r=t>>>e,i=!!(r>>>7),a=(i?r|128:r)&255;if(n.push(a),!i)return}n.push(t>>>31&1)}}const c=4294967296;function l(e){let t=e[0]===`-`;t&&(e=e.slice(1));let n=1e6,r=0,i=0;function a(t,a){let o=Number(e.slice(t,a));i*=n,r=r*n+o,r>=c&&(i+=r/c|0,r%=c)}return a(-24,-18),a(-18,-12),a(-12,-6),a(-6),t?ie(r,i):re(r,i)}function ee(e,t){let n=re(e,t),r=n.hi&2147483648;r&&(n=ie(n.lo,n.hi));let i=te(n.lo,n.hi);return r?`-`+i:i}function te(e,t){if({lo:e,hi:t}=ne(e,t),t<=2097151)return String(c*t+e);let n=e&16777215,r=(e>>>24|t<<8)&16777215,i=t>>16&65535,a=n+r*6777216+i*6710656,o=r+i*8147497,s=i*2,l=1e7;return a>=l&&(o+=Math.floor(a/l),a%=l),o>=l&&(s+=Math.floor(o/l),o%=l),s.toString()+u(o)+u(a)}function ne(e,t){return{lo:e>>>0,hi:t>>>0}}function re(e,t){return{lo:e|0,hi:t|0}}function ie(e,t){return t=~t,e?e=~e+1:t+=1,re(e,t)}const u=e=>{let t=String(e);return`0000000`.slice(t.length)+t};function ae(e,t){if(e>=0){for(;e>127;)t.push(e&127|128),e>>>=7;t.push(e)}else{for(let n=0;n<9;n++)t.push(e&127|128),e>>=7;t.push(1)}}function oe(){let e=this.buf[this.pos++],t=e&127;if(!(e&128)||(e=this.buf[this.pos++],t|=(e&127)<<7,!(e&128))||(e=this.buf[this.pos++],t|=(e&127)<<14,!(e&128))||(e=this.buf[this.pos++],t|=(e&127)<<21,!(e&128)))return this.assertBounds(),t;e=this.buf[this.pos++],t|=(e&15)<<28;for(let t=5;e&128&&t<10;t++)e=this.buf[this.pos++];if(e&128)throw Error(`invalid varint`);return this.assertBounds(),t>>>0}function se(){let e=new DataView(new ArrayBuffer(8));if(typeof BigInt==`function`&&typeof e.getBigInt64==`function`&&typeof e.getBigUint64==`function`&&typeof e.setBigInt64==`function`&&typeof e.setBigUint64==`function`&&(typeof process!=`object`||typeof process.env!=`object`||process.env.BUF_BIGINT_DISABLE!==`1`)){let t=BigInt(`-9223372036854775808`),n=BigInt(`9223372036854775807`),r=BigInt(`0`),i=BigInt(`18446744073709551615`);return{zero:BigInt(0),supported:!0,parse(e){let r=typeof e==`bigint`?e:BigInt(e);if(r>n||r<t)throw Error(`int64 invalid: ${e}`);return r},uParse(e){let t=typeof e==`bigint`?e:BigInt(e);if(t>i||t<r)throw Error(`uint64 invalid: ${e}`);return t},enc(t){return e.setBigInt64(0,this.parse(t),!0),{lo:e.getInt32(0,!0),hi:e.getInt32(4,!0)}},uEnc(t){return e.setBigInt64(0,this.uParse(t),!0),{lo:e.getInt32(0,!0),hi:e.getInt32(4,!0)}},dec(t,n){return e.setInt32(0,t,!0),e.setInt32(4,n,!0),e.getBigInt64(0,!0)},uDec(t,n){return e.setInt32(0,t,!0),e.setInt32(4,n,!0),e.getBigUint64(0,!0)}}}let t=e=>n(/^-?[0-9]+$/.test(e),`int64 invalid: ${e}`),r=e=>n(/^[0-9]+$/.test(e),`uint64 invalid: ${e}`);return{zero:`0`,supported:!1,parse(e){return typeof e!=`string`&&(e=e.toString()),t(e),e},uParse(e){return typeof e!=`string`&&(e=e.toString()),r(e),e},enc(e){return typeof e!=`string`&&(e=e.toString()),t(e),l(e)},uEnc(e){return typeof e!=`string`&&(e=e.toString()),r(e),l(e)},dec(e,t){return ee(e,t)},uDec(e,t){return te(e,t)}}}const d=se();var f;(function(e){e[e.DOUBLE=1]=`DOUBLE`,e[e.FLOAT=2]=`FLOAT`,e[e.INT64=3]=`INT64`,e[e.UINT64=4]=`UINT64`,e[e.INT32=5]=`INT32`,e[e.FIXED64=6]=`FIXED64`,e[e.FIXED32=7]=`FIXED32`,e[e.BOOL=8]=`BOOL`,e[e.STRING=9]=`STRING`,e[e.BYTES=12]=`BYTES`,e[e.UINT32=13]=`UINT32`,e[e.SFIXED32=15]=`SFIXED32`,e[e.SFIXED64=16]=`SFIXED64`,e[e.SINT32=17]=`SINT32`,e[e.SINT64=18]=`SINT64`,e[e.DATE=100]=`DATE`})(f||={});var p;(function(e){e[e.BIGINT=0]=`BIGINT`,e[e.STRING=1]=`STRING`})(p||={});function m(e,t,n){if(t===n)return!0;if(t==null||n==null)return t===n;if(e==f.BYTES){if(!(t instanceof Uint8Array)||!(n instanceof Uint8Array)||t.length!==n.length)return!1;for(let e=0;e<t.length;e++)if(t[e]!==n[e])return!1;return!0}if(e==f.DATE){let e=de(t,!1),r=de(n,!1);return e==null||r==null?e===r:e!=null&&r!=null&&+e==+r}switch(e){case f.UINT64:case f.FIXED64:case f.INT64:case f.SFIXED64:case f.SINT64:return t==n}return!1}function h(e,t){switch(e){case f.BOOL:return!1;case f.UINT64:case f.FIXED64:case f.INT64:case f.SFIXED64:case f.SINT64:return t==0?d.zero:`0`;case f.DOUBLE:case f.FLOAT:return 0;case f.BYTES:return new Uint8Array;case f.STRING:return``;case f.DATE:return null;default:return 0}}const ce=+new Date(0);function le(e,t){if(t==null)return!0;switch(e){case f.DATE:return+t===ce;case f.BOOL:return t===!1;case f.STRING:return t===``;case f.BYTES:return t instanceof Uint8Array&&!t.byteLength;default:return t==0}}function g(e,t,n,r=p.BIGINT){return t==null?h(e,r):e===f.BYTES?ue(t,n):le(e,t)?h(e,r):e===f.DATE?de(t,n):t}function ue(e,t){return!t&&e instanceof Uint8Array?e:new Uint8Array(e)}function de(e,t){if(e instanceof Date)return t?new Date(e.getTime()):e;if(typeof e==`string`||typeof e==`number`){let t=new Date(e);return isNaN(t.getTime())?null:t}return null}function fe(e,t){let n=me(e);return t?n:ye(ve(n))}function pe(e){return fe(e,!1)}function me(e){let t=!1,n=[];for(let r=0;r<e.length;r++){let i=e.charAt(r);switch(i){case`_`:t=!0;break;case`0`:case`1`:case`2`:case`3`:case`4`:case`5`:case`6`:case`7`:case`8`:case`9`:n.push(i),t=!1;break;default:t&&(t=!1,i=i.toUpperCase()),n.push(i)}}return n.join(``)}const he=new Set([`constructor`,`toString`,`toJSON`,`valueOf`,`__proto__`,`prototype`]),ge=new Set([`__proto__`]),_e=e=>`${e}$`,ve=e=>ge.has(e)?_e(e):e,ye=e=>he.has(e)?_e(e):e;function be(e){return typeof e==`string`&&!!e.length&&!he.has(e)}function _(e){if(typeof e!=`string`)throw Error(`illegal non-string object key: `+typeof e);if(!be(e))throw Error(`illegal object key: `+e)}var xe=class{_fields;_normalizer;all;numbersAsc;jsonNames;numbers;members;constructor(e,t){this._fields=e,this._normalizer=t}findJsonName(e){if(!this.jsonNames){let e={};for(let t of this.list())e[t.jsonName]=e[t.name]=t;this.jsonNames=e}return this.jsonNames[e]}find(e){if(!this.numbers){let e={};for(let t of this.list())e[t.no]=t;this.numbers=e}return this.numbers[e]}list(){return this.all||=this._normalizer(this._fields),this.all}byNumber(){return this.numbersAsc||=this.list().concat().sort((e,t)=>e.no-t.no),this.numbersAsc}byMember(){if(!this.members){this.members=[];let e=this.members,t;for(let n of this.list())n.oneof?n.oneof!==t&&(t=n.oneof,e.push(t)):e.push(n)}return this.members}};function Se(e,t){return new xe(e,e=>Ee(e,t))}function Ce(e,t){let n=e.localName;if(!t)return!1;if(e.repeated)return!!t[n]?.length;if(e.oneof)return t[e.oneof.localName]?.case===n;switch(e.kind){case`enum`:case`scalar`:return e.opt||e.req?t[n]!=null:e.kind==`enum`?t[n]!==e.T.values[0].no:!le(e.T,t[n]);case`message`:return t[n]!=null;case`map`:return t[n]!=null&&!!Object.keys(t[n]).length}}const we=me;function v(e){return e instanceof Function?e():e}var Te=class{kind=`oneof`;name;localName;repeated=!1;packed=!1;opt=!1;req=!1;default=void 0;fields=[];_lookup;constructor(e){this.name=e,this.localName=pe(e)}addField(e){n(e.oneof===this,`field ${e.name} not one of ${this.name}`),this.fields.push(e)}findField(e){if(!this._lookup){this._lookup=Object.create(null);for(let e=0;e<this.fields.length;e++)this._lookup[this.fields[e].localName]=this.fields[e]}return this._lookup[e]}};function Ee(e,t){let n=[],r;for(let i of typeof e==`function`?e():e){let e=i;if(e.localName=fe(i.name,i.oneof!==void 0),e.jsonName=i.jsonName??we(i.name),e.repeated=i.repeated??!1,i.kind==`scalar`&&(e.L=i.L??p.BIGINT,e.utf8=i.utf8??!1),i.kind==`map`&&(e.keyUtf8=i.keyUtf8??!1),e.delimited=i.delimited??!1,e.req=i.req??!1,e.opt=i.opt??!1,i.packed===void 0&&(e.packed=t?i.kind==`enum`||i.kind==`scalar`&&i.T!=f.BYTES&&i.T!=f.STRING:!1),i.oneof!==void 0){let t=typeof i.oneof==`string`?i.oneof:i.oneof.name;(!r||r.name!=t)&&(r=new Te(t)),e.oneof=r,r.addField(e)}n.push(e)}return n}function De(e){return Array.isArray(e)}function y(e,t){let n=Object.create(null),r=Object.create(null),i=[];for(let e of t){let t=De(e)?{no:e[0],name:e[1],localName:e[1]}:`localName`in e?e:{...e,localName:e.name};i.push(t),n[t.name]=t,r[t.no]=t}return{typeName:e,values:i,findName(e){return n[e]},findNumber(e){return r[e]}}}function Oe(e){if(e.values.length<1)throw Error(`invalid enum: missing at least one value`);return e.values[0].no}function ke(e,t){let n=Oe(e);if(t==null||t===``||t===n)return n;if(typeof t==`string`){let n=e.findName(t);if(!n)throw Error(`enum ${e.typeName}: invalid value: "${t}"`);return n.no}return t}function b(){return Object.create(null)}function x(e){return e}function S(e,t,n,r=!1){if(e==null||t==null)return;let i=x(t),a=x(e);for(let e of n.byMember()){let t=e.localName;if(_(t),!(t in a)||a[t]===void 0)continue;let n=a[t];if(n===null){delete i[t];continue}switch(e.kind){case`oneof`:{if(typeof n!=`object`)throw Error(`field ${t}: invalid oneof: must be an object with case and value`);let{case:a,value:o}=n,s=a==null?null:e.findField(a),c=t in i?i[t]:void 0;if(typeof c!=`object`&&(c=b()),a!=null&&s==null)throw Error(`field ${t}: invalid oneof case: ${a}`);if(c.case=a,(c.case!==a||a==null)&&delete c.value,i[t]=c,!s)break;if(s.kind===`message`){let e=c.value;if(typeof e!=`object`&&(e=c.value=b()),o!=null){let t=v(s.T);S(o,e,t.fields)}}else s.kind===`scalar`?c.value=g(s.T,o,r):c.value=o;break}case`scalar`:if(e.repeated){if(!Array.isArray(n))throw Error(`field ${t}: invalid value: must be array`);let a=t in i?i[t]:null;(a==null||!Array.isArray(a))&&(a=i[t]=[]),a.push(...n.map(t=>g(e.T,t,r)));break}i[t]=g(e.T,n,r);break;case`enum`:i[t]=ke(e.T,n);break;case`map`:{if(typeof n!=`object`)throw Error(`field ${e.localName}: invalid value: must be object`);let a=i[t];typeof a!=`object`&&(a=i[t]=b()),Ae(n,a,e.V,r);break}case`message`:{let r=v(e.T);if(e.repeated){if(!Array.isArray(n))throw Error(`field ${t}: invalid value: must be array`);let e=i[t];Array.isArray(e)||(e=i[t]=[]);for(let t of n)t!=null&&(r.fieldWrapper?e.push(r.fieldWrapper.unwrapField(r.fieldWrapper.wrapField(t))):e.push(r.create(t)));break}if(r.fieldWrapper)i[t]=r.fieldWrapper.unwrapField(r.fieldWrapper.wrapField(n));else{if(typeof n!=`object`)throw Error(`field ${e.localName}: invalid value: must be object`);let a=i[t];typeof a!=`object`&&(a=i[t]=b()),S(n,a,r.fields)}break}}}}function Ae(e,t,n,r){if(e!=null){if(typeof e!=`object`)throw Error(`invalid map: must be object`);switch(n.kind){case`scalar`:for(let[i,a]of Object.entries(e))_(i),a===void 0?delete t[i]:t[i]=g(n.T,a,r);break;case`enum`:for(let[r,i]of Object.entries(e))_(r),i===void 0?delete t[r]:t[r]=ke(n.T,i);break;case`message`:{let r=v(n.T);for(let[n,i]of Object.entries(e)){if(_(n),i===void 0){delete t[n];continue}if(typeof i!=`object`)throw Error(`invalid value: must be object`);let e=t[n];r.fieldWrapper?e=t[n]=xt(r.fields):typeof e!=`object`&&(e=t[n]=b()),S(i,e,r.fields)}break}}}}const C=Symbol(`@aptre/protobuf-es-lite/unknown-fields`);function je(e,t,n,r){if(typeof e!=`object`)return;let i=e;Array.isArray(i[C])||(i[C]=[]),i[C].push({no:t,wireType:n,data:r})}function Me(e,t){return e?e.wrapField(t):t}function Ne(e,t){return e?e.unwrapField(t):t}f.DATE,f.DOUBLE,f.FLOAT,f.INT64,f.UINT64,f.INT32,f.UINT32,f.BOOL,f.STRING,f.BYTES;var w;(function(e){e[e.Varint=0]=`Varint`,e[e.Bit64=1]=`Bit64`,e[e.LengthDelimited=2]=`LengthDelimited`,e[e.StartGroup=3]=`StartGroup`,e[e.EndGroup=4]=`EndGroup`,e[e.Bit32=5]=`Bit32`})(w||={});var Pe=class{chunks;buf;stack=[];textEncoder;constructor(e){this.textEncoder=e??new TextEncoder,this.chunks=[],this.buf=[]}finish(){this.chunks.push(new Uint8Array(this.buf));let e=0;for(let t=0;t<this.chunks.length;t++)e+=this.chunks[t].length;let t=new Uint8Array(e),n=0;for(let e=0;e<this.chunks.length;e++)t.set(this.chunks[e],n),n+=this.chunks[e].length;return this.chunks=[],t}fork(){return this.stack.push({chunks:this.chunks,buf:this.buf}),this.chunks=[],this.buf=[],this}join(){let e=this.finish(),t=this.stack.pop();if(!t)throw Error(`invalid state, fork stack empty`);return this.chunks=t.chunks,this.buf=t.buf,this.uint32(e.byteLength),this.raw(e)}tag(e,t){return this.uint32((e<<3|t)>>>0)}raw(e){return this.buf.length&&(this.chunks.push(new Uint8Array(this.buf)),this.buf=[]),this.chunks.push(e),this}uint32(e){for(i(e);e>127;)this.buf.push(e&127|128),e>>>=7;return this.buf.push(e),this}int32(e){return r(e),ae(e,this.buf),this}bool(e){return this.buf.push(+!!e),this}bytes(e){return this.uint32(e.byteLength),this.raw(e)}string(e){let t=this.textEncoder.encode(e);return this.uint32(t.byteLength),this.raw(t)}float(e){a(e);let t=new Uint8Array(4);return new DataView(t.buffer).setFloat32(0,e,!0),this.raw(t)}double(e){let t=new Uint8Array(8);return new DataView(t.buffer).setFloat64(0,e,!0),this.raw(t)}fixed32(e){i(e);let t=new Uint8Array(4);return new DataView(t.buffer).setUint32(0,e,!0),this.raw(t)}sfixed32(e){r(e);let t=new Uint8Array(4);return new DataView(t.buffer).setInt32(0,e,!0),this.raw(t)}sint32(e){return r(e),e=(e<<1^e>>31)>>>0,ae(e,this.buf),this}sfixed64(e){let t=new Uint8Array(8),n=new DataView(t.buffer),r=d.enc(e);return n.setInt32(0,r.lo,!0),n.setInt32(4,r.hi,!0),this.raw(t)}fixed64(e){let t=new Uint8Array(8),n=new DataView(t.buffer),r=d.uEnc(e);return n.setInt32(0,r.lo,!0),n.setInt32(4,r.hi,!0),this.raw(t)}int64(e){let t=d.enc(e);return s(t.lo,t.hi,this.buf),this}sint64(e){let t=d.enc(e),n=t.hi>>31;return s(t.lo<<1^n,(t.hi<<1|t.lo>>>31)^n,this.buf),this}uint64(e){let t=d.uEnc(e);return s(t.lo,t.hi,this.buf),this}},Fe=class{pos;len;buf;view;textDecoder;fatalTextDecoder;constructor(e,t,n){this.buf=e,this.len=e.length,this.pos=0,this.view=new DataView(e.buffer,e.byteOffset,e.byteLength),this.textDecoder=t??new TextDecoder,this.fatalTextDecoder=n}tag(){let e=this.uint32(),t=e>>>3,n=e&7;if(t<=0||n<0||n>5)throw Error(`illegal tag: field no `+t+` wire type `+n);return[t,n]}skip(e){let t=this.pos;switch(e){case w.Varint:for(;this.buf[this.pos++]&128;);break;case w.Bit64:this.pos+=4;case w.Bit32:this.pos+=4;break;case w.LengthDelimited:let t=this.uint32();this.pos+=t;break;case w.StartGroup:let n;for(;(n=this.tag()[1])!==w.EndGroup;)this.skip(n);break;default:throw Error(`cant skip wire type `+e)}return this.assertBounds(),this.buf.subarray(t,this.pos)}varint64=o;assertBounds(){if(this.pos>this.len)throw RangeError(`premature EOF`)}uint32=oe;int32(){return this.uint32()|0}sint32(){let e=this.uint32();return e>>>1^-(e&1)}int64(){return d.dec(...this.varint64())}uint64(){return d.uDec(...this.varint64())}sint64(){let[e,t]=this.varint64(),n=-(e&1);return e=(e>>>1|(t&1)<<31)^n,t=t>>>1^n,d.dec(e,t)}bool(){let[e,t]=this.varint64();return e!==0||t!==0}fixed32(){return this.view.getUint32((this.pos+=4)-4,!0)}sfixed32(){return this.view.getInt32((this.pos+=4)-4,!0)}fixed64(){return d.uDec(this.sfixed32(),this.sfixed32())}sfixed64(){return d.dec(this.sfixed32(),this.sfixed32())}float(){return this.view.getFloat32((this.pos+=4)-4,!0)}double(){return this.view.getFloat64((this.pos+=8)-8,!0)}bytes(){let e=this.uint32(),t=this.pos;return this.pos+=e,this.assertBounds(),this.buf.subarray(t,t+e)}string(e=!1){return(e?this.fatalTextDecoder??=new TextDecoder(`utf-8`,{fatal:!0}):this.textDecoder).decode(this.bytes())}};const Ie={readUnknownFields:!0,readerFactory:e=>new Fe(e)},Le={writeUnknownFields:!0,writerFactory:()=>new Pe};function Re(e){return e?{...Ie,...e}:Ie}function ze(e){return e?{...Le,...e}:Le}function Be(e,t,n,r,i){let{repeated:a}=n,{localName:o}=n;if(n.oneof){let t=e[n.oneof.localName];t||=e[n.oneof.localName]=b(),e=t,e.case!=o&&delete e.value,e.case=o,o=`value`}switch(n.kind){case`scalar`:case`enum`:{let i=n.kind==`enum`?f.INT32:n.T,s=He,c=n.kind==`scalar`&&n.utf8;if(n.kind==`scalar`&&n.L>0&&(s=Ue),a){let n=e[o];if(Array.isArray(n)||(n=e[o]=[]),r==w.LengthDelimited&&i!=f.STRING&&i!=f.BYTES){let e=t.uint32()+t.pos;for(;t.pos<e;)n.push(s(t,i,c))}else n.push(s(t,i,c))}else e[o]=s(t,i,c);break}case`message`:{let r=n.T,s=r instanceof Function?r():r;if(a){let r=e[o];Array.isArray(r)||(r=e[o]=[]),r.push(Ne(s.fieldWrapper,We(t,b(),s.fields,i,n)))}else e[o]=Ne(s.fieldWrapper,We(t,b(),s.fields,i,n));break}case`map`:{let[r,a]=Ve(n,t,i);typeof e[o]!=`object`&&(e[o]=b()),e[o][r]=a;break}}}function Ve(e,t,n){let r=t.uint32(),i=t.pos+r,a,o;for(;t.pos<i;){let[r]=t.tag();switch(r){case 1:a=He(t,e.K,e.keyUtf8);break;case 2:switch(e.V.kind){case`scalar`:o=He(t,e.V.T,e.V.utf8===!0);break;case`enum`:o=t.int32();break;case`message`:o=We(t,b(),v(e.V.T).fields,n,void 0)}}}if(a===void 0&&(a=h(e.K,p.BIGINT)),typeof a!=`string`&&typeof a!=`number`&&(a=a?.toString()??``),o===void 0)switch(e.V.kind){case`scalar`:o=h(e.V.T,p.BIGINT);break;case`enum`:o=e.V.T.values[0].no;break;case`message`:o=b()}return[a,o]}function He(e,t,n=!1){switch(t){case f.STRING:return e.string(n);case f.BOOL:return e.bool();case f.DOUBLE:return e.double();case f.FLOAT:return e.float();case f.INT32:return e.int32();case f.INT64:return e.int64();case f.UINT64:return e.uint64();case f.FIXED64:return e.fixed64();case f.BYTES:return e.bytes();case f.FIXED32:return e.fixed32();case f.SFIXED32:return e.sfixed32();case f.SFIXED64:return e.sfixed64();case f.SINT64:return e.sint64();case f.UINT32:return e.uint32();case f.SINT32:return e.sint32();case f.DATE:throw Error(`cannot read a date with readScalar`);default:throw Error(`unknown scalar type`)}}function Ue(e,t,n=!1){let r=He(e,t,n);return typeof r==`bigint`?r.toString():r}function We(e,t,n,r,i){return Ge(t,n,e,i?.delimited?i.no:e.uint32(),r,i?.delimited??!1),t}function Ge(e,t,n,r,i,a){let o=a?n.len:n.pos+r,s,c;for(;n.pos<o&&([s,c]=n.tag(),c!=w.EndGroup);){let r=t.find(s);if(!r){let t=n.skip(c);i.readUnknownFields&&je(e,s,c,t);continue}Be(e,n,r,c,i)}if(a&&(c!=w.EndGroup||s!==r))throw Error(`invalid end group tag`)}function Ke(e,t,n,r){for(let i of t.byNumber()){let t=e;if(!Ce(i,t)){if(i.req)throw Error(`cannot encode field ${i.name} to binary: required field not set`);continue}let a=i.oneof?t[i.oneof.localName].value:t[i.localName];a!==void 0&&qe(i,a,n,r)}r.writeUnknownFields&&Je(e,n)}function qe(e,t,r,i){n(t!==void 0);let a=e.repeated;switch(e.kind){case`scalar`:case`enum`:{let i=e.kind==`enum`?f.INT32:e.T;if(a){if(n(Array.isArray(t)),e.packed)Xe(r,i,e.no,t);else for(let n of t)T(r,i,e.no,n)}else T(r,i,e.no,t);break}case`message`:if(a){n(Array.isArray(t));for(let n of t)Ye(r,i,e,n)}else Ye(r,i,e,t);break;case`map`:n(typeof t==`object`&&!!t);for(let[n,a]of Object.entries(t))Qe(r,i,e,n,a)}}function Je(e,t){let n=e[C];if(n)for(let e of n)t.tag(e.no,e.wireType).raw(e.data)}function Ye(e,t,n,r){let i=v(n.T),a=Me(i.fieldWrapper,r);n.delimited?e.tag(n.no,w.StartGroup).raw(i.toBinary(a,t)).tag(n.no,w.EndGroup):e.tag(n.no,w.LengthDelimited).bytes(i.toBinary(a,t))}function T(e,t,r,i){n(i!==void 0);let[a,o]=Ze(t);e.tag(r,a)[o](i)}function Xe(e,t,n,r){if(!r.length)return;e.tag(n,w.LengthDelimited).fork();let[,i]=Ze(t);for(let t=0;t<r.length;t++)e[i](r[t]);e.join()}function Ze(e){let t=w.Varint;switch(e){case f.BYTES:case f.STRING:t=w.LengthDelimited;break;case f.DOUBLE:case f.FIXED64:case f.SFIXED64:t=w.Bit64;break;case f.FIXED32:case f.SFIXED32:case f.FLOAT:t=w.Bit32}let n=f[e].toLowerCase();return[t,n]}function Qe(e,t,r,i,a){e.tag(r.no,w.LengthDelimited),e.fork();let o=i;switch(r.K){case f.INT32:case f.FIXED32:case f.UINT32:case f.SFIXED32:case f.SINT32:o=Number.parseInt(i);break;case f.BOOL:n(i==`true`||i==`false`),o=i==`true`}switch(T(e,r.K,1,o),r.V.kind){case`scalar`:T(e,r.V.T,2,a);break;case`enum`:T(e,f.INT32,2,a);break;case`message`:{n(a!==void 0);let i=v(r.V.T);e.tag(2,w.LengthDelimited).bytes(i.toBinary(a,t));break}}e.join()}let E=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`.split(``),$e=[];for(let e=0;e<E.length;e++)$e[E[e].charCodeAt(0)]=e;$e[45]=E.indexOf(`+`),$e[95]=E.indexOf(`/`);const et={dec(e){let t=e.length*3/4;e[e.length-2]==`=`?t-=2:e[e.length-1]==`=`&&--t;let n=new Uint8Array(t),r=0,i=0,a,o=0;for(let t=0;t<e.length;t++){if(a=$e[e.charCodeAt(t)],a===void 0)switch(e[t]){case`=`:i=0;case`
|
|
2
|
+
`:case`\r`:case` `:case` `:continue;default:throw Error(`invalid base64 string.`)}switch(i){case 0:o=a,i=1;break;case 1:n[r++]=o<<2|(a&48)>>4,o=a,i=2;break;case 2:n[r++]=(o&15)<<4|(a&60)>>2,o=a,i=3;break;case 3:n[r++]=(o&3)<<6|a,i=0}}if(i==1)throw Error(`invalid base64 string.`);return n.subarray(0,r)},enc(e){let t=``,n=0,r,i=0;for(let a=0;a<e.length;a++)switch(r=e[a],n){case 0:t+=E[r>>2],i=(r&3)<<4,n=1;break;case 1:t+=E[i|r>>4],i=(r&15)<<2,n=2;break;case 2:t+=E[i|r>>6],t+=E[r&63],n=0}return n&&(t+=E[i],t+=`=`,n==1&&(t+=`=`)),t}},tt={ignoreUnknownFields:!1},nt={emitDefaultValues:!1,enumAsInteger:!1,useProtoFieldName:!1,prettySpaces:0};function rt(e){return e?{...tt,...e}:tt}function it(e){return e?{...nt,...e}:nt}function D(e){if(e===null)return`null`;switch(typeof e){case`object`:return Array.isArray(e)?`array`:`object`;case`string`:return e.length>100?`string`:`"${e.split(`"`).join(`\\"`)}"`;default:return String(e)}}function at(e,t,n,r,i){if(n==null||Array.isArray(n)||typeof n!=`object`)throw Error(`cannot decode message ${t} from JSON: ${D(n)}`);let a=new Map;for(let[o,s]of Object.entries(n)){let n=e.findJsonName(o);if(n){if(n.oneof){if(s===null&&n.kind==`scalar`)continue;let e=a.get(n.oneof);if(e!==void 0)throw Error(`cannot decode message ${t} from JSON: multiple keys for oneof "${n.oneof.name}" present: "${e}", "${o}"`);a.set(n.oneof,o)}st(i,s,n,r)}else if(!r.ignoreUnknownFields)throw Error(`cannot decode message ${t} from JSON: key "${o}" is unknown`)}return i}function ot(e,t,n){let r=Object.create(null),i;try{for(i of t.byNumber()){let t=e;if(!Ce(i,t)){if(i.req)throw`required field not set`;if(!n.emitDefaultValues||!mt(i))continue}let a=i.oneof?t[i.oneof.localName].value:t[i.localName],o=ht(i,a,n);o!==void 0&&(r[n.useProtoFieldName?i.name:i.jsonName]=o)}}catch(e){let t=i?`cannot encode field ${i.name} to JSON`:`cannot encode message to JSON`,n=e instanceof Error?e.message:String(e);throw Error(t+(n.length>0?`: ${n}`:``),{cause:e})}return r}function st(e,t,r,i){let a=r.localName;if(r.repeated){if(n(r.kind!=`map`),t===null)return;if(!Array.isArray(t))throw Error(`cannot decode field ${r.name} from JSON: ${D(t)}`);let o=e[a];Array.isArray(o)||(o=e[a]=[]);for(let e of t){if(e===null)throw Error(`cannot decode field ${r.name} from JSON: ${D(e)}`);switch(r.kind){case`message`:{let t=v(r.T);o.push(Ne(t.fieldWrapper,t.fromJson(e,i)));break}case`enum`:{let t=ut(r.T,e,i.ignoreUnknownFields,!0);t!==lt&&o.push(t);break}case`scalar`:try{o.push(dt(r.T,e,r.L,!0))}catch(t){let n=`cannot decode field ${r.name} from JSON: ${D(e)}`;throw t instanceof Error&&t.message.length>0&&(n+=`: ${t.message}`),Error(n,{cause:t})}}}}else if(r.kind==`map`){if(t===null)return;if(typeof t!=`object`||Array.isArray(t))throw Error(`cannot decode field ${r.name} from JSON: ${D(t)}`);let n=e[a];typeof n!=`object`&&(n=e[a]=b());for(let[e,a]of Object.entries(t)){if(a===null)throw Error(`cannot decode field ${r.name} from JSON: map value null`);let o;try{o=ft(r.K,e)}catch(e){let n=`cannot decode map key for field ${r.name} from JSON: ${D(t)}`;throw e instanceof Error&&e.message.length>0&&(n+=`: ${e.message}`),Error(n,{cause:e})}switch(_(o),r.V.kind){case`message`:{let e=v(r.V.T);n[o]=e.fromJson(a,i);break}case`enum`:{let e=ut(r.V.T,a,i.ignoreUnknownFields,!0);e!==lt&&(n[o]=e);break}case`scalar`:try{n[o]=dt(r.V.T,a,p.BIGINT,!0)}catch(e){let n=`cannot decode map value for field ${r.name} from JSON: ${D(t)}`;throw e instanceof Error&&e.message.length>0&&(n+=`: ${e.message}`),Error(n,{cause:e})}}}}else switch(r.oneof&&(e=e[r.oneof.localName]={case:a},a=`value`),r.kind){case`message`:{let n=v(r.T);if(t===null&&n.typeName!=`google.protobuf.Value`)return;e[a]=Ne(n.fieldWrapper,n.fromJson(t,i));break}case`enum`:{let n=ut(r.T,t,i.ignoreUnknownFields,!1);switch(n){case ct:pt(r,e);break;case lt:break;default:e[a]=n}break}case`scalar`:try{let n=dt(r.T,t,r.L,!1);switch(n){case ct:pt(r,e);break;default:e[a]=n}}catch(e){let n=`cannot decode field ${r.name} from JSON: ${D(t)}`;throw e instanceof Error&&e.message.length>0&&(n+=`: ${e.message}`),Error(n,{cause:e})}}}const ct=Symbol(),lt=Symbol();function ut(e,t,n,r){if(t===null)return e.typeName==`google.protobuf.NullValue`?0:r?e.values[0].no:ct;switch(typeof t){case`number`:if(Number.isInteger(t))return t;break;case`string`:{let r=e.findName(t);if(r!==void 0)return r.no;if(n)return lt;break}}throw Error(`cannot decode enum ${e.typeName} from JSON: ${D(t)}`)}function dt(e,t,n=p.BIGINT,o=!0){if(t==null)return o?h(e,n):ct;switch(e){case f.DOUBLE:case f.FLOAT:{if(t===`NaN`)return NaN;if(t===`Infinity`)return 1/0;if(t===`-Infinity`)return-1/0;if(t===``||typeof t==`string`&&t.trim().length!==t.length||typeof t!=`string`&&typeof t!=`number`)break;let n=Number(t);if(Number.isNaN(n)||!Number.isFinite(n))break;return e==f.FLOAT&&a(n),n}case f.INT32:case f.FIXED32:case f.SFIXED32:case f.SINT32:case f.UINT32:{let n;if(typeof t==`number`?n=t:typeof t==`string`&&t.length>0&&t.trim().length===t.length&&(n=Number(t)),n===void 0)break;return e==f.UINT32||e==f.FIXED32?i(n):r(n),n}case f.INT64:case f.SFIXED64:case f.SINT64:{if(typeof t!=`number`&&typeof t!=`string`)break;let e=d.parse(t);return n?e.toString():e}case f.FIXED64:case f.UINT64:{if(typeof t!=`number`&&typeof t!=`string`)break;let e=d.uParse(t);return n?e.toString():e}case f.BOOL:if(typeof t!=`boolean`)break;return t;case f.STRING:if(typeof t!=`string`)break;return t;case f.BYTES:if(t===``)return new Uint8Array;if(typeof t!=`string`)break;return et.dec(t)}throw Error()}function ft(e,t){if(e===f.BOOL)switch(t){case`true`:t=!0;break;case`false`:t=!1}return dt(e,t,p.BIGINT,!0)?.toString()??``}function pt(e,t){let n=e.localName,r=!e.opt&&!e.req;if(e.repeated)t[n]=[];else if(e.oneof)t[e.oneof.localName]={case:void 0};else switch(e.kind){case`map`:t[n]=b();break;case`enum`:t[n]=r?e.T.values[0].no:void 0;break;case`scalar`:t[n]=r?h(e.T,e.L):void 0;break;case`message`:t[n]=void 0}}function mt(e){return e.repeated||e.kind==`map`?!0:!(e.oneof||e.kind==`message`||e.opt||e.req)}function ht(e,t,r){if(e.kind==`map`){let i=Object.create(null);n(!t||typeof t==`object`);let a=t?Object.entries(t):[];switch(e.V.kind){case`scalar`:for(let[t,n]of a)i[t.toString()]=gt(e.V.T,n);break;case`message`:for(let[t,n]of a){let a=v(e.V.T);i[t.toString()]=a.toJson(n,r)}break;case`enum`:{let t=e.V.T;for(let[e,n]of a)i[e.toString()]=_t(t,n,r.enumAsInteger);break}}return r.emitDefaultValues||a.length>0?i:void 0}if(e.repeated){n(!t||Array.isArray(t));let i=[],a=t;if(a&&a.length)switch(e.kind){case`scalar`:for(let t=0;t<a.length;t++)i.push(gt(e.T,a[t]));break;case`enum`:for(let t=0;t<a.length;t++)i.push(_t(e.T,a[t],r.enumAsInteger));break;case`message`:{let t=v(e.T);for(let e=0;e<a.length;e++)i.push(t.toJson(Me(t.fieldWrapper,a[e])));break}}return r.emitDefaultValues||i.length>0?i:void 0}switch(e.kind){case`scalar`:{let n=g(e.T,t,!1);return!r.emitDefaultValues&&le(e.T,n)?void 0:gt(e.T,t)}case`enum`:{let n=ke(e.T,t);return!r.emitDefaultValues&&Oe(e.T)===n?void 0:_t(e.T,t,r.enumAsInteger)}case`message`:{if(!r.emitDefaultValues&&t==null)return;let n=v(e.T);return n.toJson(Me(n.fieldWrapper,t))}}}function gt(e,t){switch(e){case f.INT32:case f.SFIXED32:case f.SINT32:case f.FIXED32:case f.UINT32:return n(typeof t==`number`),t;case f.FLOAT:case f.DOUBLE:return n(typeof t==`number`),Number.isNaN(t)?`NaN`:t===1/0?`Infinity`:t===-1/0?`-Infinity`:t;case f.STRING:return n(typeof t==`string`),t;case f.BOOL:return n(typeof t==`boolean`),t;case f.UINT64:case f.FIXED64:case f.INT64:case f.SFIXED64:case f.SINT64:return n(typeof t==`bigint`||typeof t==`string`||typeof t==`number`),t.toString();case f.BYTES:return n(t instanceof Uint8Array),et.enc(t);case f.DATE:throw Error(`cannot write date with writeScalar`);default:throw Error(`unknown scalar type`)}}function _t(e,t,r){return n(typeof t==`number`),e.typeName==`google.protobuf.NullValue`?null:r?t:e.findNumber(t)?.name??t}const vt=[];function O(e,t){let{fields:n,typeName:r,packedByDefault:i,delimitedMessageEncoding:a,fieldWrapper:o}=e,s=Se(n,i),c={typeName:r,fields:s,fieldWrapper:o,create(e){let t=Object.create(null);return S(e,t,s),t},createComplete(e){let t=xt(s);return S(e,t,s),t},equals(e,t){return yt(s,e,t)},clone(e){return e==null?e:bt(e,s)},fromBinary(e,t){let n={};if(e&&e.length){let r=Re(t);Ge(n,s,r.readerFactory(e),e.byteLength,r,a??!1)}return n},fromJson(e,t){let n={};if(e!=null){let i=rt(t);at(s,r,e,i,n)}return n},fromJsonString(e,t){let n=null;if(e)try{n=JSON.parse(e)}catch(e){throw Error(`cannot decode ${r} from JSON: ${e instanceof Error?e.message:String(e)}`,{cause:e})}return c.fromJson(n,t)},toBinary(e,t){if(e==null)return new Uint8Array;let n=ze(t),r=n.writerFactory();return Ke(e,s,r,n),r.finish()},toJson(e,t){let n=it(t);return ot(e,s,n)},toJsonString(e,t){let n=c.toJson(e,t);return JSON.stringify(n,null,t?.prettySpaces??0)},...t??{}};return c}function k(e,t){return O({typeName:e,fields:vt,packedByDefault:t})}function yt(e,t,n){return t==null&&n==null||t===n?!0:!t||!n?!1:e.byMember().every(e=>{let r=x(t)[e.localName],i=x(n)[e.localName];if(e.repeated){let t=r,n=i;if((t?.length??0)!==(n?.length??0))return!1;if(!t?.length)return!0;switch(e.kind){case`message`:{let r=v(e.T),i=t,a=n;return i.every((e,t)=>r.equals(e,a[t]))}case`scalar`:return t.every((t,r)=>m(e.T,t,n?.[r]));case`enum`:return t.every((e,t)=>m(f.INT32,e,n?.[t]))}throw Error(`repeated cannot contain ${e.kind}`)}switch(e.kind){case`message`:return v(e.T).equals(r,i);case`enum`:return m(f.INT32,r,i);case`scalar`:return m(e.T,r,i);case`oneof`:{let t=r,n=i;if(t?.case!==n?.case)return!1;if(t==null)return!0;let a=t.case;if(a===void 0)return!0;let o=e.findField(a);if(o===void 0)return!0;switch(o.kind){case`message`:return v(o.T).equals(t.value,n?.value);case`enum`:return m(f.INT32,t.value,n?.value);case`scalar`:return m(o.T,t.value,n?.value)}throw Error(`oneof cannot contain ${o.kind}`)}case`map`:{let t=r??{},n=i??{},a=Object.keys(t).concat(Object.keys(n));switch(e.V.kind){case`message`:{let r=v(e.V.T);return a.every(e=>r.equals(t[e],n[e]))}case`enum`:return a.every(e=>m(f.INT32,t[e],n[e]));case`scalar`:{let r=e.V.T;return a.every(e=>m(r,t[e],n[e]))}}}}})}function bt(e,t){if(e==null)return null;let n=b();return S(e,n,t,!0),n}function xt(e){let t={};for(let n of e.byMember()){let{localName:e,kind:r}=n;switch(_(e),r){case`oneof`:t[e]=b(),t[e].case=void 0;break;case`scalar`:t[e]=n.repeated?[]:h(n.T,p.BIGINT);break;case`enum`:t[e]=n.repeated?[]:Oe(n.T);break;case`message`:{if(n.oneof)break;if(n.repeated){t[e]=[];break}let r=v(n.T);t[e]=r.fieldWrapper?r.fieldWrapper.unwrapField(null):xt(r.fields);break}case`map`:t[e]=b()}}return t}const St=y(`hash.HashType`,[[0,`HashType_UNKNOWN`],[1,`HashType_SHA256`],[2,`HashType_SHA1`],[3,`HashType_BLAKE3`]]),Ct=O({typeName:`hash.Hash`,fields:[{no:1,name:`hash_type`,kind:`enum`,T:St},{no:2,name:`hash`,kind:`scalar`,T:f.BYTES}],packedByDefault:!0}),wt=y(`block.StoreFeature`,[[0,`STORE_FEATURE_UNKNOWN`],[1,`STORE_FEATURE_NATIVE_BATCH_PUT`],[2,`STORE_FEATURE_NATIVE_BATCH_EXISTS`],[32,`STORE_FEATURE_SELF_BUFFERED`]]),Tt=y(`block.OverlayMode`,[[0,`UPPER_ONLY`],[1,`LOWER_ONLY`],[2,`UPPER_CACHE`],[3,`LOWER_CACHE`],[4,`UPPER_READ_CACHE`],[5,`LOWER_READ_CACHE`],[6,`UPPER_WRITE_CACHE`],[7,`LOWER_WRITE_CACHE`],[8,`UPPER_READBACK_CACHE`]]),A=O({typeName:`block.BlockRef`,fields:[{no:1,name:`hash`,kind:`message`,T:()=>Ct}],packedByDefault:!0}),j=O({typeName:`block.PutOpts`,fields:[{no:1,name:`hash_type`,kind:`enum`,T:St},{no:2,name:`force_block_ref`,kind:`message`,T:()=>A},{no:3,name:`refs`,kind:`message`,T:()=>A,repeated:!0},{no:4,name:`sync`,kind:`scalar`,T:f.BOOL}],packedByDefault:!0}),Et=O({typeName:`block.transform.StepConfig`,fields:[{no:1,name:`id`,kind:`scalar`,T:f.STRING},{no:2,name:`config`,kind:`scalar`,T:f.BYTES}],packedByDefault:!0}),Dt=O({typeName:`block.transform.Config`,fields:[{no:1,name:`steps`,kind:`message`,T:()=>Et,repeated:!0}],packedByDefault:!0});var M;(function(e){e[e.Unary=0]=`Unary`,e[e.ServerStreaming=1]=`ServerStreaming`,e[e.ClientStreaming=2]=`ClientStreaming`,e[e.BiDiStreaming=3]=`BiDiStreaming`})(M||={});var Ot;(function(e){e[e.NoSideEffects=1]=`NoSideEffects`,e[e.Idempotent=2]=`Idempotent`})(Ot||={});const kt=O({typeName:`configset.proto.ControllerConfig`,fields:[{no:1,name:`id`,kind:`scalar`,T:f.STRING},{no:2,name:`rev`,kind:`scalar`,T:f.UINT64},{no:3,name:`config`,kind:`scalar`,T:f.BYTES}],packedByDefault:!0});O({typeName:`configset.proto.ConfigSet`,fields:[{no:1,name:`configs`,kind:`map`,K:f.STRING,V:{kind:`message`,T:()=>kt}}],packedByDefault:!0});const N={fromJson(e){if(typeof e!=`string`)throw Error(`cannot decode google.protobuf.Timestamp(json)}`);let t=e.match(/^([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})(?:Z|\.([0-9]{3,9})Z|([+-][0-9][0-9]:[0-9][0-9]))$/);if(!t)throw Error(`cannot decode google.protobuf.Timestamp from JSON: invalid RFC 3339 string`);let n=Date.parse(t[1]+`-`+t[2]+`-`+t[3]+`T`+t[4]+`:`+t[5]+`:`+t[6]+(t[8]?t[8]:`Z`));if(Number.isNaN(n))throw Error(`cannot decode google.protobuf.Timestamp from JSON: invalid RFC 3339 string`);if(n<Date.parse(`0001-01-01T00:00:00Z`)||n>Date.parse(`9999-12-31T23:59:59Z`))throw Error(`cannot decode message google.protobuf.Timestamp from JSON: must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive`);return{seconds:d.parse(n/1e3),nanos:t[7]?parseInt(`1`+t[7]+`0`.repeat(9-t[7].length))-1e9:0}},toJson(e){let t=Number(e.seconds)*1e3;if(t<Date.parse(`0001-01-01T00:00:00Z`)||t>Date.parse(`9999-12-31T23:59:59Z`))throw Error(`cannot encode google.protobuf.Timestamp to JSON: must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive`);if(e.nanos!=null&&e.nanos<0)throw Error(`cannot encode google.protobuf.Timestamp to JSON: nanos must not be negative`);let n=`Z`;if(e.nanos!=null&&e.nanos>0){let t=(e.nanos+1e9).toString().substring(1);n=t.substring(3)===`000000`?`.`+t.substring(0,3)+`Z`:t.substring(6)===`000`?`.`+t.substring(0,6)+`Z`:`.`+t+`Z`}return new Date(t).toISOString().replace(`.000Z`,n)},toDate(e){return!e?.seconds&&!e?.nanos?null:new Date(Number(e.seconds??0)*1e3+Math.ceil((e.nanos??0)/1e6))},fromDate(e){if(e==null)return{};let t=e.getTime(),n=Math.floor(t/1e3),r=t%1e3*1e6;return{seconds:d.parse(n),nanos:r}},equals(e,t){let n=e instanceof Date?e:N.toDate(e),r=t instanceof Date?t:N.toDate(t);return n===r?!0:n==null||r==null?n===r:+n==+r}},At=O({typeName:`google.protobuf.Timestamp`,fields:[{no:1,name:`seconds`,kind:`scalar`,T:f.INT64},{no:2,name:`nanos`,kind:`scalar`,T:f.INT32}],packedByDefault:!0,fieldWrapper:{wrapField(e){return e==null||e instanceof Date?N.fromDate(e):At.createComplete(e)},unwrapField(e){return N.toDate(e)}}},N),jt=O({typeName:`bucket.LookupConfig`,fields:[{no:1,name:`disable`,kind:`scalar`,T:f.BOOL},{no:2,name:`controller`,kind:`message`,T:()=>kt}],packedByDefault:!0}),P=O({typeName:`bucket.Config`,fields:[{no:1,name:`id`,kind:`scalar`,T:f.STRING},{no:2,name:`rev`,kind:`scalar`,T:f.UINT32},{no:4,name:`put_opts`,kind:`message`,T:()=>j},{no:5,name:`lookup`,kind:`message`,T:()=>jt}],packedByDefault:!0}),Mt=O({typeName:`bucket.BucketInfo`,fields:[{no:1,name:`config`,kind:`message`,T:()=>P}],packedByDefault:!0}),Nt=O({typeName:`bucket.ApplyBucketConfigResult`,fields:[{no:1,name:`volume_id`,kind:`scalar`,T:f.STRING},{no:2,name:`bucket_id`,kind:`scalar`,T:f.STRING},{no:3,name:`bucket_conf`,kind:`message`,T:()=>P},{no:4,name:`old_bucket_conf`,kind:`message`,T:()=>P},{no:5,name:`timestamp`,kind:`message`,T:()=>At},{no:6,name:`updated`,kind:`scalar`,T:f.BOOL},{no:7,name:`error`,kind:`scalar`,T:f.STRING}],packedByDefault:!0}),F=O({typeName:`bucket.ObjectRef`,fields:[{no:1,name:`root_ref`,kind:`message`,T:()=>A},{no:2,name:`bucket_id`,kind:`scalar`,T:f.STRING},{no:3,name:`transform_conf_ref`,kind:`message`,T:()=>A},{no:4,name:`transform_conf`,kind:`message`,T:()=>Dt}],packedByDefault:!0}),Pt=O({typeName:`bucket.BucketOpArgs`,fields:[{no:1,name:`bucket_id`,kind:`scalar`,T:f.STRING},{no:2,name:`volume_id`,kind:`scalar`,T:f.STRING}],packedByDefault:!0}),Ft=k(`resource.ResourceClientInitRequest`,!0),It=O({typeName:`resource.ResourceClientAdopt`,fields:[{no:1,name:`resource_id`,kind:`scalar`,T:f.UINT32}],packedByDefault:!0}),Lt=O({typeName:`resource.ResourceClientRelease`,fields:[{no:1,name:`resource_id`,kind:`scalar`,T:f.UINT32}],packedByDefault:!0}),Rt=O({typeName:`resource.ResourceClientRequest`,fields:[{no:5,name:`control_id`,kind:`scalar`,T:f.UINT32},{no:2,name:`init`,kind:`message`,T:()=>Ft,oneof:`body`},{no:3,name:`adopt`,kind:`message`,T:()=>It,oneof:`body`},{no:4,name:`release`,kind:`message`,T:()=>Lt,oneof:`body`}],packedByDefault:!0}),zt=O({typeName:`resource.ResourceClientInit`,fields:[{no:1,name:`client_handle_id`,kind:`scalar`,T:f.UINT32},{no:2,name:`root_resource_id`,kind:`scalar`,T:f.UINT32}],packedByDefault:!0}),Bt=O({typeName:`resource.ResourceReleasedResponse`,fields:[{no:1,name:`resource_id`,kind:`scalar`,T:f.UINT32}],packedByDefault:!0}),Vt=O({typeName:`resource.ResourceClientControlAck`,fields:[{no:1,name:`control_id`,kind:`scalar`,T:f.UINT32}],packedByDefault:!0}),Ht=O({typeName:`resource.ResourceClientResponse`,fields:[{no:1,name:`init`,kind:`message`,T:()=>zt,oneof:`body`},{no:2,name:`resource_released`,kind:`message`,T:()=>Bt,oneof:`body`},{no:4,name:`control_ack`,kind:`message`,T:()=>Vt,oneof:`body`}],packedByDefault:!0}),Ut=O({typeName:`resource.ResourceAttachInit`,fields:[{no:1,name:`client_handle_id`,kind:`scalar`,T:f.UINT32}],packedByDefault:!0}),Wt=O({typeName:`resource.ResourceAttachAdd`,fields:[{no:1,name:`attach_id`,kind:`scalar`,T:f.UINT32},{no:2,name:`label`,kind:`scalar`,T:f.STRING}],packedByDefault:!0}),Gt=O({typeName:`resource.ResourceAttachDetach`,fields:[{no:1,name:`resource_id`,kind:`scalar`,T:f.UINT32}],packedByDefault:!0}),Kt=O({typeName:`resource.ResourceAttachRequest`,fields:[{no:1,name:`init`,kind:`message`,T:()=>Ut,oneof:`body`},{no:2,name:`add`,kind:`message`,T:()=>Wt,oneof:`body`},{no:3,name:`detach`,kind:`message`,T:()=>Gt,oneof:`body`},{no:4,name:`mux_data`,kind:`scalar`,T:f.BYTES,oneof:`body`}],packedByDefault:!0}),qt=O({typeName:`resource.ResourceAttachAck`,fields:[{no:1,name:`error`,kind:`scalar`,T:f.STRING}],packedByDefault:!0}),Jt=O({typeName:`resource.ResourceAttachAddAck`,fields:[{no:1,name:`attach_id`,kind:`scalar`,T:f.UINT32},{no:2,name:`error`,kind:`scalar`,T:f.STRING},{no:3,name:`resource_id`,kind:`scalar`,T:f.UINT32}],packedByDefault:!0}),Yt=O({typeName:`resource.ResourceAttachDetachAck`,fields:[{no:1,name:`resource_id`,kind:`scalar`,T:f.UINT32}],packedByDefault:!0}),Xt=O({typeName:`resource.ResourceAttachResponse`,fields:[{no:1,name:`ack`,kind:`message`,T:()=>qt,oneof:`body`},{no:2,name:`add_ack`,kind:`message`,T:()=>Jt,oneof:`body`},{no:3,name:`detach_ack`,kind:`message`,T:()=>Yt,oneof:`body`},{no:4,name:`mux_data`,kind:`scalar`,T:f.BYTES,oneof:`body`}],packedByDefault:!0}),Zt=k(`s4wave.block.cursor.FetchRequest`,!0),Qt=O({typeName:`s4wave.block.cursor.FetchResponse`,fields:[{no:1,name:`data`,kind:`scalar`,T:f.BYTES},{no:2,name:`found`,kind:`scalar`,T:f.BOOL}],packedByDefault:!0}),$t=O({typeName:`s4wave.block.cursor.SetBlockRequest`,fields:[{no:1,name:`data`,kind:`scalar`,T:f.BYTES},{no:2,name:`mark_dirty`,kind:`scalar`,T:f.BOOL},{no:3,name:`block_type`,kind:`scalar`,T:f.STRING}],packedByDefault:!0}),en=k(`s4wave.block.cursor.SetBlockResponse`,!0),tn=O({typeName:`s4wave.block.cursor.FollowRefRequest`,fields:[{no:1,name:`ref_id`,kind:`scalar`,T:f.UINT32},{no:2,name:`blk_ref`,kind:`message`,T:()=>A}],packedByDefault:!0}),nn=O({typeName:`s4wave.block.cursor.FollowRefResponse`,fields:[{no:1,name:`resource_id`,kind:`scalar`,T:f.UINT32}],packedByDefault:!0}),rn=k(`s4wave.block.cursor.GetRefRequest`,!0),an=O({typeName:`s4wave.block.cursor.GetRefResponse`,fields:[{no:1,name:`ref`,kind:`message`,T:()=>A}],packedByDefault:!0}),on=k(`s4wave.block.cursor.IsDirtyRequest`,!0),sn=O({typeName:`s4wave.block.cursor.IsDirtyResponse`,fields:[{no:1,name:`dirty`,kind:`scalar`,T:f.BOOL}],packedByDefault:!0}),cn=k(`s4wave.block.cursor.MarkDirtyRequest`,!0),ln=k(`s4wave.block.cursor.MarkDirtyResponse`,!0),un=k(`s4wave.block.cursor.GetBlockRequest`,!0),dn=O({typeName:`s4wave.block.cursor.GetBlockResponse`,fields:[{no:1,name:`data`,kind:`scalar`,T:f.BYTES},{no:2,name:`is_sub_block`,kind:`scalar`,T:f.BOOL}],packedByDefault:!0}),fn=O({typeName:`s4wave.block.cursor.UnmarshalRequest`,fields:[{no:1,name:`block_type`,kind:`scalar`,T:f.STRING}],packedByDefault:!0}),pn=O({typeName:`s4wave.block.cursor.UnmarshalResponse`,fields:[{no:1,name:`data`,kind:`scalar`,T:f.BYTES},{no:2,name:`found`,kind:`scalar`,T:f.BOOL}],packedByDefault:!0}),mn=k(`s4wave.block.cursor.IsSubBlockRequest`,!0),hn=O({typeName:`s4wave.block.cursor.IsSubBlockResponse`,fields:[{no:1,name:`is_sub_block`,kind:`scalar`,T:f.BOOL}],packedByDefault:!0}),gn=O({typeName:`s4wave.block.cursor.FollowSubBlockRequest`,fields:[{no:1,name:`ref_id`,kind:`scalar`,T:f.UINT32}],packedByDefault:!0}),_n=O({typeName:`s4wave.block.cursor.FollowSubBlockResponse`,fields:[{no:1,name:`resource_id`,kind:`scalar`,T:f.UINT32}],packedByDefault:!0}),vn=O({typeName:`s4wave.block.cursor.SetAsSubBlockRequest`,fields:[{no:1,name:`ref_id`,kind:`scalar`,T:f.UINT32},{no:2,name:`parent_resource_id`,kind:`scalar`,T:f.UINT32}],packedByDefault:!0}),yn=k(`s4wave.block.cursor.SetAsSubBlockResponse`,!0),bn=O({typeName:`s4wave.block.cursor.ClearRefRequest`,fields:[{no:1,name:`ref_id`,kind:`scalar`,T:f.UINT32}],packedByDefault:!0}),xn=k(`s4wave.block.cursor.ClearRefResponse`,!0),Sn=k(`s4wave.block.cursor.ClearAllRefsRequest`,!0),Cn=k(`s4wave.block.cursor.ClearAllRefsResponse`,!0),wn=O({typeName:`s4wave.block.cursor.SetRefRequest`,fields:[{no:1,name:`ref_id`,kind:`scalar`,T:f.UINT32},{no:2,name:`target_resource_id`,kind:`scalar`,T:f.UINT32}],packedByDefault:!0}),Tn=k(`s4wave.block.cursor.SetRefResponse`,!0),En=O({typeName:`s4wave.block.cursor.GetExistingRefRequest`,fields:[{no:1,name:`ref_id`,kind:`scalar`,T:f.UINT32}],packedByDefault:!0}),Dn=O({typeName:`s4wave.block.cursor.GetExistingRefResponse`,fields:[{no:1,name:`resource_id`,kind:`scalar`,T:f.UINT32}],packedByDefault:!0}),On=O({typeName:`s4wave.block.cursor.GetAllRefsRequest`,fields:[{no:1,name:`existing_only`,kind:`scalar`,T:f.BOOL}],packedByDefault:!0}),kn=O({typeName:`s4wave.block.cursor.GetAllRefsResponse`,fields:[{no:1,name:`refs`,kind:`map`,K:f.UINT32,V:{kind:`scalar`,T:f.UINT32}}],packedByDefault:!0}),An=O({typeName:`s4wave.block.cursor.DetachRequest`,fields:[{no:1,name:`keep_refs`,kind:`scalar`,T:f.BOOL}],packedByDefault:!0}),jn=O({typeName:`s4wave.block.cursor.DetachResponse`,fields:[{no:1,name:`resource_id`,kind:`scalar`,T:f.UINT32}],packedByDefault:!0}),Mn=k(`s4wave.block.cursor.DetachTransactionRequest`,!0),Nn=O({typeName:`s4wave.block.cursor.DetachTransactionResponse`,fields:[{no:1,name:`resource_id`,kind:`scalar`,T:f.UINT32}],packedByDefault:!0}),Pn=O({typeName:`s4wave.block.cursor.DetachRecursiveRequest`,fields:[{no:1,name:`detach_tx`,kind:`scalar`,T:f.BOOL},{no:2,name:`clone_blocks`,kind:`scalar`,T:f.BOOL},{no:3,name:`mark_dirty`,kind:`scalar`,T:f.BOOL}],packedByDefault:!0}),Fn=O({typeName:`s4wave.block.cursor.DetachRecursiveResponse`,fields:[{no:1,name:`resource_id`,kind:`scalar`,T:f.UINT32}],packedByDefault:!0}),In=k(`s4wave.block.cursor.ParentsRequest`,!0),Ln=O({typeName:`s4wave.block.cursor.ParentsResponse`,fields:[{no:1,name:`parent_resource_ids`,kind:`scalar`,T:f.UINT32,repeated:!0}],packedByDefault:!0}),Rn=O({typeName:`s4wave.block.transaction.WriteRequest`,fields:[{no:1,name:`clear_tree`,kind:`scalar`,T:f.BOOL}],packedByDefault:!0}),zn=O({typeName:`s4wave.block.transaction.WriteResponse`,fields:[{no:1,name:`root_ref`,kind:`message`,T:()=>A},{no:2,name:`resource_id`,kind:`scalar`,T:f.UINT32}],packedByDefault:!0}),Bn=k(`s4wave.block.transaction.GetRootCursorRequest`,!0),Vn=O({typeName:`s4wave.block.transaction.GetRootCursorResponse`,fields:[{no:1,name:`resource_id`,kind:`scalar`,T:f.UINT32}],packedByDefault:!0}),Hn=O({typeName:`s4wave.bucket_lookup.MountBucketLookupRequest`,fields:[{no:1,name:`bucket_id`,kind:`scalar`,T:f.STRING},{no:2,name:`volume_id`,kind:`scalar`,T:f.STRING},{no:3,name:`transform_conf`,kind:`message`,T:()=>Dt}],packedByDefault:!0}),Un=O({typeName:`s4wave.bucket_lookup.MountBucketLookupResponse`,fields:[{no:1,name:`resource_id`,kind:`scalar`,T:f.UINT32},{no:2,name:`bucket_id`,kind:`scalar`,T:f.STRING},{no:3,name:`volume_id`,kind:`scalar`,T:f.STRING}],packedByDefault:!0}),Wn=k(`s4wave.bucket_lookup.GetRefRequest`,!0),Gn=O({typeName:`s4wave.bucket_lookup.GetRefResponse`,fields:[{no:1,name:`ref`,kind:`message`,T:()=>F},{no:2,name:`bucket_id_override`,kind:`scalar`,T:f.STRING}],packedByDefault:!0}),Kn=O({typeName:`s4wave.bucket_lookup.FollowRefRequest`,fields:[{no:1,name:`ref`,kind:`message`,T:()=>F}],packedByDefault:!0}),qn=O({typeName:`s4wave.bucket_lookup.FollowRefResponse`,fields:[{no:1,name:`resource_id`,kind:`scalar`,T:f.UINT32}],packedByDefault:!0}),Jn=O({typeName:`s4wave.bucket_lookup.GetBlockRequest`,fields:[{no:1,name:`ref`,kind:`message`,T:()=>A}],packedByDefault:!0}),Yn=O({typeName:`s4wave.bucket_lookup.GetBlockResponse`,fields:[{no:1,name:`data`,kind:`scalar`,T:f.BYTES},{no:2,name:`found`,kind:`scalar`,T:f.BOOL}],packedByDefault:!0}),Xn=O({typeName:`s4wave.bucket_lookup.PutBlockRequest`,fields:[{no:1,name:`data`,kind:`scalar`,T:f.BYTES},{no:2,name:`opts`,kind:`message`,T:()=>j}],packedByDefault:!0}),Zn=O({typeName:`s4wave.bucket_lookup.PutBlockResponse`,fields:[{no:1,name:`ref`,kind:`message`,T:()=>A},{no:2,name:`existed`,kind:`scalar`,T:f.BOOL}],packedByDefault:!0}),Qn=O({typeName:`s4wave.bucket_lookup.PutBlockBatchEntry`,fields:[{no:1,name:`ref`,kind:`message`,T:()=>A},{no:2,name:`data`,kind:`scalar`,T:f.BYTES},{no:3,name:`refs`,kind:`message`,T:()=>A,repeated:!0},{no:4,name:`tombstone`,kind:`scalar`,T:f.BOOL}],packedByDefault:!0}),$n=O({typeName:`s4wave.bucket_lookup.PutBlockBatchRequest`,fields:[{no:1,name:`entries`,kind:`message`,T:()=>Qn,repeated:!0}],packedByDefault:!0}),er=k(`s4wave.bucket_lookup.PutBlockBatchResponse`,!0),tr=O({typeName:`s4wave.bucket_lookup.GetBlockExistsBatchRequest`,fields:[{no:1,name:`refs`,kind:`message`,T:()=>A,repeated:!0}],packedByDefault:!0}),nr=O({typeName:`s4wave.bucket_lookup.GetBlockExistsBatchResponse`,fields:[{no:1,name:`found`,kind:`scalar`,T:f.BOOL,repeated:!0}],packedByDefault:!0}),rr=O({typeName:`s4wave.bucket_lookup.BuildTransactionRequest`,fields:[{no:1,name:`put_opts`,kind:`message`,T:()=>j}],packedByDefault:!0}),ir=O({typeName:`s4wave.bucket_lookup.BuildTransactionResponse`,fields:[{no:1,name:`transaction_resource_id`,kind:`scalar`,T:f.UINT32},{no:2,name:`cursor_resource_id`,kind:`scalar`,T:f.UINT32}],packedByDefault:!0}),ar=O({typeName:`s4wave.bucket_lookup.BuildTransactionAtRefRequest`,fields:[{no:1,name:`put_opts`,kind:`message`,T:()=>j},{no:2,name:`ref`,kind:`message`,T:()=>A}],packedByDefault:!0}),or=O({typeName:`s4wave.bucket_lookup.BuildTransactionAtRefResponse`,fields:[{no:1,name:`transaction_resource_id`,kind:`scalar`,T:f.UINT32},{no:2,name:`cursor_resource_id`,kind:`scalar`,T:f.UINT32}],packedByDefault:!0}),sr=k(`s4wave.bucket_lookup.CloneRequest`,!0),cr=O({typeName:`s4wave.bucket_lookup.CloneResponse`,fields:[{no:1,name:`resource_id`,kind:`scalar`,T:f.UINT32}],packedByDefault:!0}),lr=k(`s4wave.bucket_lookup.ReleaseRequest`,!0),ur=k(`s4wave.bucket_lookup.ReleaseResponse`,!0),dr=O({typeName:`s4wave.bucket_lookup.UnmarshalRequest`,fields:[{no:1,name:`ref`,kind:`message`,T:()=>F},{no:2,name:`data`,kind:`scalar`,T:f.BYTES},{no:3,name:`block_type`,kind:`scalar`,T:f.STRING}],packedByDefault:!0}),fr=O({typeName:`s4wave.bucket_lookup.UnmarshalResponse`,fields:[{no:1,name:`data`,kind:`scalar`,T:f.BYTES},{no:2,name:`found`,kind:`scalar`,T:f.BOOL}],packedByDefault:!0}),I=O({typeName:`quad.Quad`,fields:[{no:1,name:`subject`,kind:`scalar`,T:f.STRING},{no:2,name:`predicate`,kind:`scalar`,T:f.STRING},{no:3,name:`obj`,kind:`scalar`,T:f.STRING},{no:4,name:`label`,kind:`scalar`,T:f.STRING}],packedByDefault:!0}),pr=y(`s4wave.world.GraphEdgeBucketDirection`,[[0,`GRAPH_EDGE_BUCKET_DIRECTION_UNSPECIFIED`],[1,`GRAPH_EDGE_BUCKET_DIRECTION_OUT`],[2,`GRAPH_EDGE_BUCKET_DIRECTION_IN`],[3,`GRAPH_EDGE_BUCKET_DIRECTION_BOTH`]]),mr=y(`s4wave.world.GraphPathDirection`,[[0,`GRAPH_PATH_DIRECTION_UNSPECIFIED`],[1,`GRAPH_PATH_DIRECTION_OUT`],[2,`GRAPH_PATH_DIRECTION_IN`],[3,`GRAPH_PATH_DIRECTION_BOTH`]]),hr=y(`s4wave.world.WorldErrorCode`,[[0,`WORLD_ERROR_CODE_UNSPECIFIED`],[1,`WORLD_ERROR_CODE_UNHANDLED_OP`]]),gr=k(`s4wave.world.SyncRequest`,!0),_r=O({typeName:`s4wave.world.SyncResponse`,fields:[{no:1,name:`fenced`,kind:`scalar`,T:f.BOOL}],packedByDefault:!0}),vr=O({typeName:`s4wave.world.EngineInfo`,fields:[{no:1,name:`engine_id`,kind:`scalar`,T:f.STRING},{no:2,name:`bucket_id`,kind:`scalar`,T:f.STRING}],packedByDefault:!0}),yr=k(`s4wave.world.GetEngineInfoRequest`,!0),br=O({typeName:`s4wave.world.GetEngineInfoResponse`,fields:[{no:1,name:`engine_info`,kind:`message`,T:()=>vr},{no:2,name:`session_peer_id`,kind:`scalar`,T:f.STRING}],packedByDefault:!0}),xr=O({typeName:`s4wave.world.WorldRootSnapshot`,fields:[{no:1,name:`root_ref`,kind:`message`,T:()=>F},{no:2,name:`seqno`,kind:`scalar`,T:f.UINT64},{no:3,name:`engine_info`,kind:`message`,T:()=>vr},{no:4,name:`storage_volume_id`,kind:`scalar`,T:f.STRING}],packedByDefault:!0}),Sr=k(`s4wave.world.GetWorldRootSnapshotRequest`,!0),Cr=k(`s4wave.world.WatchWorldRootSnapshotsRequest`,!0),wr=O({typeName:`s4wave.world.NewTransactionRequest`,fields:[{no:1,name:`write`,kind:`scalar`,T:f.BOOL}],packedByDefault:!0}),Tr=O({typeName:`s4wave.world.NewTransactionResponse`,fields:[{no:1,name:`resource_id`,kind:`scalar`,T:f.UINT32},{no:2,name:`read_only`,kind:`scalar`,T:f.BOOL}],packedByDefault:!0}),Er=k(`s4wave.world.GetSeqnoRequest`,!0),Dr=O({typeName:`s4wave.world.GetSeqnoResponse`,fields:[{no:1,name:`seqno`,kind:`scalar`,T:f.UINT64}],packedByDefault:!0}),Or=O({typeName:`s4wave.world.WaitSeqnoRequest`,fields:[{no:1,name:`seqno`,kind:`scalar`,T:f.UINT64}],packedByDefault:!0}),kr=O({typeName:`s4wave.world.WaitSeqnoResponse`,fields:[{no:1,name:`seqno`,kind:`scalar`,T:f.UINT64}],packedByDefault:!0}),Ar=O({typeName:`s4wave.world.AccessWorldStateRequest`,fields:[{no:1,name:`ref`,kind:`message`,T:()=>F}],packedByDefault:!0}),jr=O({typeName:`s4wave.world.OpenNestedWorldRequest`,fields:[{no:1,name:`object_key`,kind:`scalar`,T:f.STRING}],packedByDefault:!0}),Mr=O({typeName:`s4wave.world.OpenNestedWorldResponse`,fields:[{no:1,name:`resource_id`,kind:`scalar`,T:f.UINT32}],packedByDefault:!0}),Nr=k(`s4wave.world.OpenOuterWorldRequest`,!0),Pr=O({typeName:`s4wave.world.OpenOuterWorldResponse`,fields:[{no:1,name:`resource_id`,kind:`scalar`,T:f.UINT32}],packedByDefault:!0}),Fr=O({typeName:`s4wave.world.AccessWorldStateResponse`,fields:[{no:1,name:`resource_id`,kind:`scalar`,T:f.UINT32}],packedByDefault:!0}),Ir=O({typeName:`s4wave.world.CreateObjectRequest`,fields:[{no:1,name:`object_key`,kind:`scalar`,T:f.STRING},{no:2,name:`root_ref`,kind:`message`,T:()=>F}],packedByDefault:!0}),Lr=O({typeName:`s4wave.world.SetObjectRootMutation`,fields:[{no:1,name:`object_key`,kind:`scalar`,T:f.STRING},{no:2,name:`root_ref`,kind:`message`,T:()=>F}],packedByDefault:!0}),Rr=O({typeName:`s4wave.world.SetGraphQuadRequest`,fields:[{no:1,name:`quad`,kind:`message`,T:()=>I}],packedByDefault:!0}),zr=O({typeName:`s4wave.world.TransactionMutation`,fields:[{no:1,name:`create_object`,kind:`message`,T:()=>Ir,oneof:`mutation`},{no:2,name:`set_object_root`,kind:`message`,T:()=>Lr,oneof:`mutation`},{no:3,name:`set_graph_quad`,kind:`message`,T:()=>Rr,oneof:`mutation`}],packedByDefault:!0}),Br=O({typeName:`s4wave.world.CommitMutationsRequest`,fields:[{no:1,name:`mutations`,kind:`message`,T:()=>zr,repeated:!0}],packedByDefault:!0}),Vr=O({typeName:`s4wave.world.CreateObjectMutationResult`,fields:[{no:1,name:`object_key`,kind:`scalar`,T:f.STRING},{no:2,name:`rev`,kind:`scalar`,T:f.UINT64}],packedByDefault:!0}),Hr=O({typeName:`s4wave.world.SetObjectRootMutationResult`,fields:[{no:1,name:`rev`,kind:`scalar`,T:f.UINT64}],packedByDefault:!0}),Ur=k(`s4wave.world.SetGraphQuadResponse`,!0),Wr=O({typeName:`s4wave.world.TransactionMutationResult`,fields:[{no:1,name:`create_object`,kind:`message`,T:()=>Vr,oneof:`result`},{no:2,name:`set_object_root`,kind:`message`,T:()=>Hr,oneof:`result`},{no:3,name:`set_graph_quad`,kind:`message`,T:()=>Ur,oneof:`result`}],packedByDefault:!0}),Gr=O({typeName:`s4wave.world.CommitMutationsResponse`,fields:[{no:1,name:`results`,kind:`message`,T:()=>Wr,repeated:!0}],packedByDefault:!0}),Kr=k(`s4wave.world.CommitRequest`,!0),qr=k(`s4wave.world.CommitResponse`,!0),Jr=k(`s4wave.world.DiscardRequest`,!0),Yr=k(`s4wave.world.DiscardResponse`,!0),Xr=k(`s4wave.world.GetReadOnlyRequest`,!0),Zr=O({typeName:`s4wave.world.GetReadOnlyResponse`,fields:[{no:1,name:`read_only`,kind:`scalar`,T:f.BOOL}],packedByDefault:!0}),Qr=k(`s4wave.world.BuildStorageCursorRequest`,!0),$r=O({typeName:`s4wave.world.BuildStorageCursorResponse`,fields:[{no:1,name:`resource_id`,kind:`scalar`,T:f.UINT32}],packedByDefault:!0}),ei=O({typeName:`s4wave.world.CreateObjectResponse`,fields:[{no:1,name:`resource_id`,kind:`scalar`,T:f.UINT32},{no:2,name:`object_key`,kind:`scalar`,T:f.STRING}],packedByDefault:!0}),ti=O({typeName:`s4wave.world.GetObjectRequest`,fields:[{no:1,name:`object_key`,kind:`scalar`,T:f.STRING}],packedByDefault:!0}),ni=O({typeName:`s4wave.world.GetObjectResponse`,fields:[{no:1,name:`found`,kind:`scalar`,T:f.BOOL},{no:2,name:`resource_id`,kind:`scalar`,T:f.UINT32},{no:3,name:`object_key`,kind:`scalar`,T:f.STRING}],packedByDefault:!0}),ri=O({typeName:`s4wave.world.RenameObjectRequest`,fields:[{no:1,name:`old_object_key`,kind:`scalar`,T:f.STRING},{no:2,name:`new_object_key`,kind:`scalar`,T:f.STRING},{no:3,name:`descendants`,kind:`scalar`,T:f.BOOL}],packedByDefault:!0}),ii=O({typeName:`s4wave.world.RenameObjectResponse`,fields:[{no:1,name:`resource_id`,kind:`scalar`,T:f.UINT32},{no:2,name:`object_key`,kind:`scalar`,T:f.STRING}],packedByDefault:!0}),ai=O({typeName:`s4wave.world.DeleteObjectRequest`,fields:[{no:1,name:`object_key`,kind:`scalar`,T:f.STRING}],packedByDefault:!0}),oi=O({typeName:`s4wave.world.DeleteObjectResponse`,fields:[{no:1,name:`deleted`,kind:`scalar`,T:f.BOOL}],packedByDefault:!0}),si=O({typeName:`s4wave.world.IterateObjectsRequest`,fields:[{no:1,name:`prefix`,kind:`scalar`,T:f.STRING},{no:2,name:`reversed`,kind:`scalar`,T:f.BOOL}],packedByDefault:!0}),ci=O({typeName:`s4wave.world.IterateObjectsResponse`,fields:[{no:1,name:`resource_id`,kind:`scalar`,T:f.UINT32}],packedByDefault:!0}),li=O({typeName:`s4wave.world.DeleteGraphQuadRequest`,fields:[{no:1,name:`quad`,kind:`message`,T:()=>I}],packedByDefault:!0}),ui=k(`s4wave.world.DeleteGraphQuadResponse`,!0),di=O({typeName:`s4wave.world.LookupGraphQuadsRequest`,fields:[{no:1,name:`filter`,kind:`message`,T:()=>I},{no:2,name:`limit`,kind:`scalar`,T:f.UINT32}],packedByDefault:!0}),fi=O({typeName:`s4wave.world.LookupGraphQuadsResponse`,fields:[{no:1,name:`quads`,kind:`message`,T:()=>I,repeated:!0}],packedByDefault:!0}),pi=O({typeName:`s4wave.world.LookupGraphQuadsBatchRequest`,fields:[{no:1,name:`filters`,kind:`message`,T:()=>I,repeated:!0},{no:2,name:`limit_per_filter`,kind:`scalar`,T:f.UINT32}],packedByDefault:!0}),mi=O({typeName:`s4wave.world.LookupGraphQuadsBatchResult`,fields:[{no:1,name:`quads`,kind:`message`,T:()=>I,repeated:!0}],packedByDefault:!0}),hi=O({typeName:`s4wave.world.LookupGraphQuadsBatchResponse`,fields:[{no:1,name:`results`,kind:`message`,T:()=>mi,repeated:!0}],packedByDefault:!0}),gi=O({typeName:`s4wave.world.ListGraphEdgeBucketsRequest`,fields:[{no:1,name:`origin_object_keys`,kind:`scalar`,T:f.STRING,repeated:!0},{no:2,name:`predicate`,kind:`scalar`,T:f.STRING},{no:3,name:`limit_per_origin`,kind:`scalar`,T:f.UINT32},{no:4,name:`direction`,kind:`enum`,T:pr}],packedByDefault:!0}),_i=O({typeName:`s4wave.world.GraphEdgeBucket`,fields:[{no:1,name:`origin_object_key`,kind:`scalar`,T:f.STRING},{no:2,name:`outgoing`,kind:`message`,T:()=>I,repeated:!0},{no:3,name:`incoming`,kind:`message`,T:()=>I,repeated:!0},{no:4,name:`outgoing_truncated`,kind:`scalar`,T:f.BOOL},{no:5,name:`incoming_truncated`,kind:`scalar`,T:f.BOOL}],packedByDefault:!0}),vi=O({typeName:`s4wave.world.ListGraphEdgeBucketsResponse`,fields:[{no:1,name:`buckets`,kind:`message`,T:()=>_i,repeated:!0}],packedByDefault:!0}),yi=O({typeName:`s4wave.world.ListObjectsWithTypeRequest`,fields:[{no:1,name:`type_id`,kind:`scalar`,T:f.STRING}],packedByDefault:!0}),bi=O({typeName:`s4wave.world.ListObjectsWithTypeResponse`,fields:[{no:1,name:`object_keys`,kind:`scalar`,T:f.STRING,repeated:!0}],packedByDefault:!0}),xi=O({typeName:`s4wave.world.ObjectRootRef`,fields:[{no:1,name:`object_key`,kind:`scalar`,T:f.STRING},{no:2,name:`root_ref`,kind:`message`,T:()=>F},{no:3,name:`rev`,kind:`scalar`,T:f.UINT64},{no:4,name:`exists`,kind:`scalar`,T:f.BOOL}],packedByDefault:!0}),Si=O({typeName:`s4wave.world.GetObjectRootRefsBatchRequest`,fields:[{no:1,name:`object_keys`,kind:`scalar`,T:f.STRING,repeated:!0}],packedByDefault:!0}),Ci=O({typeName:`s4wave.world.GetObjectRootRefsBatchResponse`,fields:[{no:1,name:`root_refs`,kind:`message`,T:()=>xi,repeated:!0}],packedByDefault:!0}),wi=O({typeName:`s4wave.world.ObjectMetadata`,fields:[{no:1,name:`object_key`,kind:`scalar`,T:f.STRING},{no:2,name:`type_id`,kind:`scalar`,T:f.STRING},{no:3,name:`parent_object_key`,kind:`scalar`,T:f.STRING}],packedByDefault:!0}),Ti=O({typeName:`s4wave.world.GetObjectMetadataBatchRequest`,fields:[{no:1,name:`object_keys`,kind:`scalar`,T:f.STRING,repeated:!0}],packedByDefault:!0}),Ei=O({typeName:`s4wave.world.GetObjectMetadataBatchResponse`,fields:[{no:1,name:`metadata`,kind:`message`,T:()=>wi,repeated:!0}],packedByDefault:!0}),Di=O({typeName:`s4wave.world.ObjectBody`,fields:[{no:1,name:`object_key`,kind:`scalar`,T:f.STRING},{no:2,name:`body`,kind:`scalar`,T:f.BYTES},{no:3,name:`exists`,kind:`scalar`,T:f.BOOL},{no:4,name:`rev`,kind:`scalar`,T:f.UINT64}],packedByDefault:!0}),Oi=O({typeName:`s4wave.world.GetObjectBodiesBatchRequest`,fields:[{no:1,name:`object_keys`,kind:`scalar`,T:f.STRING,repeated:!0},{no:2,name:`start_key_index`,kind:`scalar`,T:f.UINT32}],packedByDefault:!0}),ki=O({typeName:`s4wave.world.GetObjectBodiesBatchResponse`,fields:[{no:1,name:`bodies`,kind:`message`,T:()=>Di,repeated:!0},{no:2,name:`next_key_index`,kind:`scalar`,T:f.UINT32},{no:3,name:`world_seqno`,kind:`scalar`,T:f.UINT64}],packedByDefault:!0}),Ai=O({typeName:`s4wave.world.GraphPathStep`,fields:[{no:1,name:`direction`,kind:`enum`,T:mr},{no:2,name:`predicate`,kind:`scalar`,T:f.STRING},{no:3,name:`limit`,kind:`scalar`,T:f.UINT32}],packedByDefault:!0}),ji=O({typeName:`s4wave.world.QueryGraphPathRequest`,fields:[{no:1,name:`start_keys`,kind:`scalar`,T:f.STRING,repeated:!0},{no:2,name:`steps`,kind:`message`,T:()=>Ai,repeated:!0},{no:3,name:`result_limit`,kind:`scalar`,T:f.UINT32},{no:4,name:`include_quads`,kind:`scalar`,T:f.BOOL},{no:5,name:`page_size`,kind:`scalar`,T:f.UINT32}],packedByDefault:!0}),Mi=O({typeName:`s4wave.world.QueryGraphPathResponse`,fields:[{no:1,name:`resource_id`,kind:`scalar`,T:f.UINT32}],packedByDefault:!0}),Ni=O({typeName:`s4wave.world.DeleteGraphObjectRequest`,fields:[{no:1,name:`object_key`,kind:`scalar`,T:f.STRING}],packedByDefault:!0}),Pi=k(`s4wave.world.DeleteGraphObjectResponse`,!0),Fi=O({typeName:`s4wave.world.ApplyWorldOpRequest`,fields:[{no:1,name:`op_type_id`,kind:`scalar`,T:f.STRING},{no:2,name:`op_data`,kind:`scalar`,T:f.BYTES},{no:3,name:`op_sender`,kind:`scalar`,T:f.STRING}],packedByDefault:!0}),Ii=O({typeName:`s4wave.world.ApplyWorldOpResponse`,fields:[{no:1,name:`seqno`,kind:`scalar`,T:f.UINT64},{no:2,name:`sys_err`,kind:`scalar`,T:f.BOOL},{no:3,name:`error_code`,kind:`enum`,T:hr},{no:4,name:`rejection_code`,kind:`scalar`,T:f.STRING},{no:5,name:`rejection_message`,kind:`scalar`,T:f.STRING}],packedByDefault:!0}),Li=k(`s4wave.world.WatchWorldStateRequest`,!0),Ri=O({typeName:`s4wave.world.WatchWorldStateResponse`,fields:[{no:1,name:`resource_id`,kind:`scalar`,T:f.UINT32}],packedByDefault:!0}),zi=O({typeName:`s4wave.world.TrackedWorldStateSnapshot.ObjectAccess`,fields:[{no:1,name:`key`,kind:`scalar`,T:f.STRING},{no:2,name:`rev`,kind:`scalar`,T:f.UINT64}],packedByDefault:!0}),Bi=O({typeName:`s4wave.world.TrackedWorldStateSnapshot`,fields:[{no:1,name:`object_accesses`,kind:`message`,T:()=>zi,repeated:!0},{no:2,name:`has_quad_access`,kind:`scalar`,T:f.BOOL},{no:3,name:`initial_seqno`,kind:`scalar`,T:f.UINT64}],packedByDefault:!0}),Vi=k(`s4wave.world.ErrRequest`,!0),Hi=O({typeName:`s4wave.world.ErrResponse`,fields:[{no:1,name:`error`,kind:`scalar`,T:f.STRING}],packedByDefault:!0}),Ui=k(`s4wave.world.ValidRequest`,!0),Wi=O({typeName:`s4wave.world.ValidResponse`,fields:[{no:1,name:`valid`,kind:`scalar`,T:f.BOOL}],packedByDefault:!0}),Gi=k(`s4wave.world.KeyRequest`,!0),Ki=O({typeName:`s4wave.world.KeyResponse`,fields:[{no:1,name:`object_key`,kind:`scalar`,T:f.STRING}],packedByDefault:!0}),qi=k(`s4wave.world.NextRequest`,!0),Ji=O({typeName:`s4wave.world.NextResponse`,fields:[{no:1,name:`valid`,kind:`scalar`,T:f.BOOL}],packedByDefault:!0}),Yi=O({typeName:`s4wave.world.SeekRequest`,fields:[{no:1,name:`object_key`,kind:`scalar`,T:f.STRING}],packedByDefault:!0}),Xi=k(`s4wave.world.SeekResponse`,!0),Zi=k(`s4wave.world.CloseRequest`,!0),Qi=k(`s4wave.world.CloseResponse`,!0),$i=k(`s4wave.world.NextGraphPathQueryRequest`,!0),ea=O({typeName:`s4wave.world.NextGraphPathQueryResponse`,fields:[{no:1,name:`object_keys`,kind:`scalar`,T:f.STRING,repeated:!0},{no:2,name:`quads`,kind:`message`,T:()=>I,repeated:!0},{no:3,name:`done`,kind:`scalar`,T:f.BOOL}],packedByDefault:!0}),ta=k(`s4wave.world.CloseGraphPathQueryRequest`,!0),na=k(`s4wave.world.CloseGraphPathQueryResponse`,!0),ra=k(`s4wave.world.GetKeyRequest`,!0),ia=O({typeName:`s4wave.world.GetKeyResponse`,fields:[{no:1,name:`object_key`,kind:`scalar`,T:f.STRING}],packedByDefault:!0}),aa=k(`s4wave.world.GetRootRefRequest`,!0),oa=O({typeName:`s4wave.world.GetRootRefResponse`,fields:[{no:1,name:`root_ref`,kind:`message`,T:()=>F},{no:2,name:`rev`,kind:`scalar`,T:f.UINT64}],packedByDefault:!0}),sa=O({typeName:`s4wave.world.SetRootRefRequest`,fields:[{no:1,name:`root_ref`,kind:`message`,T:()=>F}],packedByDefault:!0}),ca=O({typeName:`s4wave.world.SetRootRefResponse`,fields:[{no:1,name:`rev`,kind:`scalar`,T:f.UINT64}],packedByDefault:!0}),la=O({typeName:`s4wave.world.ApplyObjectOpRequest`,fields:[{no:1,name:`op_type_id`,kind:`scalar`,T:f.STRING},{no:2,name:`op_data`,kind:`scalar`,T:f.BYTES},{no:3,name:`op_sender`,kind:`scalar`,T:f.STRING}],packedByDefault:!0}),ua=O({typeName:`s4wave.world.ApplyObjectOpResponse`,fields:[{no:1,name:`rev`,kind:`scalar`,T:f.UINT64},{no:2,name:`sys_err`,kind:`scalar`,T:f.BOOL},{no:3,name:`error_code`,kind:`enum`,T:hr},{no:4,name:`rejection_code`,kind:`scalar`,T:f.STRING},{no:5,name:`rejection_message`,kind:`scalar`,T:f.STRING}],packedByDefault:!0}),da=k(`s4wave.world.IncrementRevRequest`,!0),fa=O({typeName:`s4wave.world.IncrementRevResponse`,fields:[{no:1,name:`rev`,kind:`scalar`,T:f.UINT64}],packedByDefault:!0}),pa=O({typeName:`s4wave.world.WaitRevRequest`,fields:[{no:1,name:`rev`,kind:`scalar`,T:f.UINT64},{no:2,name:`ignore_not_found`,kind:`scalar`,T:f.BOOL}],packedByDefault:!0}),ma=O({typeName:`s4wave.world.WaitRevResponse`,fields:[{no:1,name:`rev`,kind:`scalar`,T:f.UINT64}],packedByDefault:!0}),ha=O({typeName:`s4wave.world.AccessTypedObjectRequest`,fields:[{no:1,name:`object_key`,kind:`scalar`,T:f.STRING}],packedByDefault:!0}),ga=O({typeName:`s4wave.world.AccessTypedObjectResponse`,fields:[{no:1,name:`resource_id`,kind:`scalar`,T:f.UINT32},{no:2,name:`type_id`,kind:`scalar`,T:f.STRING}],packedByDefault:!0}),_a=O({typeName:`s4wave.world.ObjectRecordBase`,fields:[{no:1,name:`object_key`,kind:`scalar`,T:f.STRING},{no:2,name:`root_ref`,kind:`message`,T:()=>F}],packedByDefault:!0}),va=O({typeName:`s4wave.world.CompareObjectRecordsRequest`,fields:[{no:1,name:`bases`,kind:`message`,T:()=>_a,repeated:!0}],packedByDefault:!0}),ya=O({typeName:`s4wave.world.ObjectRecordChanges`,fields:[{no:1,name:`object_key`,kind:`scalar`,T:f.STRING},{no:2,name:`keys`,kind:`scalar`,T:f.BYTES,repeated:!0},{no:3,name:`unknown`,kind:`scalar`,T:f.BOOL}],packedByDefault:!0}),ba=O({typeName:`s4wave.world.CompareObjectRecordsResponse`,fields:[{no:1,name:`changes`,kind:`message`,T:()=>ya,repeated:!0}],packedByDefault:!0}),xa=y(`blob.BlobType`,[[0,`BlobType_RAW`],[1,`BlobType_CHUNKED`]]),Sa=y(`blob.ChunkerType`,[[0,`ChunkerType_DEFAULT`],[1,`ChunkerType_RABIN`],[2,`ChunkerType_JC`]]),Ca=O({typeName:`blob.Chunk`,fields:[{no:1,name:`data_ref`,kind:`message`,T:()=>A},{no:2,name:`size`,kind:`scalar`,T:f.UINT64},{no:3,name:`start`,kind:`scalar`,T:f.UINT64}],packedByDefault:!0}),wa=O({typeName:`blob.RabinArgs`,fields:[{no:1,name:`pol`,kind:`scalar`,T:f.UINT64},{no:4,name:`random_pol`,kind:`scalar`,T:f.BOOL},{no:2,name:`chunking_min_size`,kind:`scalar`,T:f.UINT64},{no:3,name:`chunking_max_size`,kind:`scalar`,T:f.UINT64}],packedByDefault:!0}),Ta=O({typeName:`blob.JcArgs`,fields:[{no:1,name:`key`,kind:`scalar`,T:f.BYTES},{no:2,name:`chunking_min_size`,kind:`scalar`,T:f.UINT64},{no:3,name:`chunking_target_size`,kind:`scalar`,T:f.UINT64},{no:4,name:`chunking_max_size`,kind:`scalar`,T:f.UINT64}],packedByDefault:!0}),Ea=O({typeName:`blob.ChunkerArgs`,fields:[{no:1,name:`chunker_type`,kind:`enum`,T:Sa},{no:2,name:`rabin_args`,kind:`message`,T:()=>wa},{no:3,name:`jc_args`,kind:`message`,T:()=>Ta}],packedByDefault:!0}),Da=O({typeName:`blob.ChunkIndex`,fields:[{no:1,name:`chunks`,kind:`message`,T:()=>Ca,repeated:!0},{no:2,name:`chunker_args`,kind:`message`,T:()=>Ea}],packedByDefault:!0}),Oa=O({typeName:`blob.Blob`,fields:[{no:1,name:`blob_type`,kind:`enum`,T:xa},{no:2,name:`total_size`,kind:`scalar`,T:f.UINT64},{no:3,name:`raw_data`,kind:`scalar`,T:f.BYTES},{no:4,name:`chunk_index`,kind:`message`,T:()=>Da}],packedByDefault:!0}),ka=O({typeName:`blob.BuildBlobOpts`,fields:[{no:1,name:`raw_high_water_mark`,kind:`scalar`,T:f.UINT64},{no:2,name:`chunker_args`,kind:`message`,T:()=>Ea}],packedByDefault:!0}),Aa=O({typeName:`kvtx.block.iavl.Node`,fields:[{no:1,name:`height`,kind:`scalar`,T:f.UINT32},{no:2,name:`size`,kind:`scalar`,T:f.UINT64},{no:3,name:`key`,kind:`scalar`,T:f.BYTES},{no:7,name:`value_ref`,kind:`message`,T:()=>A},{no:8,name:`value_blob`,kind:`message`,T:()=>Oa},{no:5,name:`left_child_ref`,kind:`message`,T:()=>A},{no:6,name:`right_child_ref`,kind:`message`,T:()=>A}],packedByDefault:!0}),ja=O({typeName:`kvtx.block.okra.Root`,fields:[{no:1,name:`size`,kind:`scalar`,T:f.UINT64},{no:2,name:`height`,kind:`scalar`,T:f.UINT32},{no:3,name:`root_hash`,kind:`scalar`,T:f.BYTES},{no:4,name:`root_page_ref`,kind:`message`,T:()=>A},{no:5,name:`hash_size`,kind:`scalar`,T:f.UINT32},{no:6,name:`fanout_degree`,kind:`scalar`,T:f.UINT32}],packedByDefault:!0}),Ma=O({typeName:`kvtx.block.okra.Entry`,fields:[{no:1,name:`anchor`,kind:`scalar`,T:f.BOOL},{no:2,name:`key`,kind:`scalar`,T:f.BYTES},{no:3,name:`hash`,kind:`scalar`,T:f.BYTES},{no:4,name:`size`,kind:`scalar`,T:f.UINT64},{no:5,name:`child_ref`,kind:`message`,T:()=>A},{no:6,name:`value_ref`,kind:`message`,T:()=>A},{no:7,name:`value_is_blob`,kind:`scalar`,T:f.BOOL},{no:8,name:`value_blob`,kind:`message`,T:()=>Oa}],packedByDefault:!0}),Na=O({typeName:`kvtx.block.okra.Page`,fields:[{no:1,name:`level`,kind:`scalar`,T:f.UINT32},{no:2,name:`lower_bound`,kind:`scalar`,T:f.BYTES},{no:3,name:`upper_bound`,kind:`scalar`,T:f.BYTES},{no:4,name:`starts_at_anchor`,kind:`scalar`,T:f.BOOL},{no:5,name:`size`,kind:`scalar`,T:f.UINT64},{no:6,name:`page_hash`,kind:`scalar`,T:f.BYTES},{no:7,name:`entries`,kind:`message`,T:()=>Ma,repeated:!0}],packedByDefault:!0}),Pa=O({typeName:`kvtx.block.KeyValueStore`,fields:[{no:1,name:`impl_type`,kind:`enum`,T:y(`kvtx.block.KVImplType`,[[0,`KV_IMPL_TYPE_UNKNOWN`],[1,`KV_IMPL_TYPE_IAVL`],[2,`KV_IMPL_TYPE_OKRA`],[3,`KV_IMPL_TYPE_OKRA_INLINE`]])},{no:2,name:`iavl_root`,kind:`message`,T:()=>Aa},{no:3,name:`okra_root`,kind:`message`,T:()=>ja}],packedByDefault:!0}),L=y(`kvtx.rpc.KvtxRetryClass`,[[0,`KVTX_RETRY_CLASS_UNSPECIFIED`],[1,`KVTX_RETRY_CLASS_INVALID_SNAPSHOT`]]),Fa=O({typeName:`kvtx.rpc.KvtxTransactionInit`,fields:[{no:1,name:`write`,kind:`scalar`,T:f.BOOL}],packedByDefault:!0}),Ia=O({typeName:`kvtx.rpc.KvtxTransactionRequest`,fields:[{no:1,name:`init`,kind:`message`,T:()=>Fa,oneof:`body`},{no:2,name:`commit`,kind:`scalar`,T:f.BOOL,oneof:`body`},{no:3,name:`discard`,kind:`scalar`,T:f.BOOL,oneof:`body`}],packedByDefault:!0}),La=O({typeName:`kvtx.rpc.KvtxTransactionAck`,fields:[{no:1,name:`error`,kind:`scalar`,T:f.STRING},{no:2,name:`transaction_id`,kind:`scalar`,T:f.STRING},{no:3,name:`retry_class`,kind:`enum`,T:L}],packedByDefault:!0}),Ra=O({typeName:`kvtx.rpc.KvtxTransactionComplete`,fields:[{no:1,name:`error`,kind:`scalar`,T:f.STRING},{no:2,name:`committed`,kind:`scalar`,T:f.BOOL},{no:3,name:`discarded`,kind:`scalar`,T:f.BOOL},{no:4,name:`retry_class`,kind:`enum`,T:L}],packedByDefault:!0}),za=O({typeName:`kvtx.rpc.KvtxTransactionResponse`,fields:[{no:1,name:`ack`,kind:`message`,T:()=>La,oneof:`body`},{no:2,name:`complete`,kind:`message`,T:()=>Ra,oneof:`body`}],packedByDefault:!0}),Ba=O({typeName:`kvtx.rpc.KeyCountRequest`,fields:[{no:1,name:`accept_retry_class`,kind:`scalar`,T:f.BOOL}],packedByDefault:!0}),Va=O({typeName:`kvtx.rpc.KeyCountResponse`,fields:[{no:1,name:`key_count`,kind:`scalar`,T:f.UINT64},{no:2,name:`error`,kind:`scalar`,T:f.STRING},{no:3,name:`retry_class`,kind:`enum`,T:L}],packedByDefault:!0}),Ha=O({typeName:`kvtx.rpc.KvtxKeyRequest`,fields:[{no:1,name:`key`,kind:`scalar`,T:f.BYTES}],packedByDefault:!0}),Ua=O({typeName:`kvtx.rpc.KvtxKeyDataResponse`,fields:[{no:1,name:`error`,kind:`scalar`,T:f.STRING},{no:2,name:`found`,kind:`scalar`,T:f.BOOL},{no:3,name:`data`,kind:`scalar`,T:f.BYTES},{no:4,name:`retry_class`,kind:`enum`,T:L}],packedByDefault:!0}),Wa=O({typeName:`kvtx.rpc.KvtxKeyExistsResponse`,fields:[{no:1,name:`error`,kind:`scalar`,T:f.STRING},{no:2,name:`found`,kind:`scalar`,T:f.BOOL},{no:3,name:`retry_class`,kind:`enum`,T:L}],packedByDefault:!0}),Ga=O({typeName:`kvtx.rpc.KvtxSetKeyRequest`,fields:[{no:1,name:`key`,kind:`scalar`,T:f.BYTES},{no:2,name:`value`,kind:`scalar`,T:f.BYTES}],packedByDefault:!0}),Ka=O({typeName:`kvtx.rpc.KvtxSetKeyResponse`,fields:[{no:1,name:`error`,kind:`scalar`,T:f.STRING},{no:2,name:`retry_class`,kind:`enum`,T:L}],packedByDefault:!0}),qa=O({typeName:`kvtx.rpc.KvtxDeleteKeyRequest`,fields:[{no:1,name:`key`,kind:`scalar`,T:f.BYTES}],packedByDefault:!0}),Ja=O({typeName:`kvtx.rpc.KvtxDeleteKeyResponse`,fields:[{no:1,name:`error`,kind:`scalar`,T:f.STRING},{no:2,name:`retry_class`,kind:`enum`,T:L}],packedByDefault:!0}),Ya=O({typeName:`kvtx.rpc.KvtxScanPrefixRequest`,fields:[{no:1,name:`prefix`,kind:`scalar`,T:f.BYTES},{no:2,name:`only_keys`,kind:`scalar`,T:f.BOOL}],packedByDefault:!0}),Xa=O({typeName:`kvtx.rpc.KvtxScanPrefixResponse`,fields:[{no:1,name:`error`,kind:`scalar`,T:f.STRING},{no:2,name:`key`,kind:`scalar`,T:f.BYTES},{no:3,name:`value`,kind:`scalar`,T:f.BYTES},{no:4,name:`retry_class`,kind:`enum`,T:L}],packedByDefault:!0}),Za=O({typeName:`kvtx.rpc.KvtxWatchRequest`,fields:[{no:1,name:`prefix`,kind:`scalar`,T:f.BYTES},{no:2,name:`only_keys`,kind:`scalar`,T:f.BOOL},{no:3,name:`max_records`,kind:`scalar`,T:f.UINT64},{no:4,name:`max_bytes`,kind:`scalar`,T:f.UINT64}],packedByDefault:!0}),Qa=O({typeName:`kvtx.rpc.KvtxWatchEntry`,fields:[{no:1,name:`key`,kind:`scalar`,T:f.BYTES},{no:2,name:`value`,kind:`scalar`,T:f.BYTES}],packedByDefault:!0}),$a=O({typeName:`kvtx.rpc.KvtxWatchResponse`,fields:[{no:1,name:`error`,kind:`scalar`,T:f.STRING},{no:2,name:`entries`,kind:`message`,T:()=>Qa,repeated:!0},{no:3,name:`limit_exceeded`,kind:`scalar`,T:f.BOOL}],packedByDefault:!0}),eo=O({typeName:`kvtx.rpc.KvtxIterateInit`,fields:[{no:1,name:`prefix`,kind:`scalar`,T:f.BYTES},{no:2,name:`sort`,kind:`scalar`,T:f.BOOL},{no:3,name:`reverse`,kind:`scalar`,T:f.BOOL}],packedByDefault:!0}),to=O({typeName:`kvtx.rpc.KvtxIterateRequest`,fields:[{no:1,name:`init`,kind:`message`,T:()=>eo,oneof:`body`},{no:2,name:`lookup_value`,kind:`scalar`,T:f.BOOL,oneof:`body`},{no:3,name:`next`,kind:`scalar`,T:f.BOOL,oneof:`body`},{no:4,name:`seek`,kind:`scalar`,T:f.BYTES,oneof:`body`},{no:5,name:`seek_beginning`,kind:`scalar`,T:f.BOOL,oneof:`body`},{no:6,name:`close`,kind:`scalar`,T:f.BOOL,oneof:`body`}],packedByDefault:!0}),no=O({typeName:`kvtx.rpc.KvtxIterateStatus`,fields:[{no:1,name:`error`,kind:`scalar`,T:f.STRING},{no:2,name:`valid`,kind:`scalar`,T:f.BOOL},{no:3,name:`key`,kind:`scalar`,T:f.BYTES},{no:4,name:`retry_class`,kind:`enum`,T:L}],packedByDefault:!0}),ro=O({typeName:`kvtx.rpc.KvtxIterateResponse`,fields:[{no:1,name:`ack`,kind:`scalar`,T:f.BOOL,oneof:`body`},{no:2,name:`req_error`,kind:`scalar`,T:f.STRING,oneof:`body`},{no:3,name:`status`,kind:`message`,T:()=>no,oneof:`body`},{no:4,name:`value`,kind:`scalar`,T:f.BYTES,oneof:`body`},{no:5,name:`closed`,kind:`scalar`,T:f.BOOL,oneof:`body`},{no:6,name:`retry_class`,kind:`enum`,T:L}],packedByDefault:!0}),R=`ERR_RPC_ABORT`;var io=class extends Error{rpcService;rpcMethod;rpcError;constructor(e,t,n){super(n),this.name=`RemoteRPCError`,this.rpcService=e,this.rpcMethod=t,this.rpcError=n}};function z(){let e={};return e.promise=new Promise((t,n)=>{e.resolve=t,e.reject=n}),e}var ao=class{buffer;mask;top;btm;next;constructor(e){if(!(e>0)||e-1&e)throw Error(`Max size for a FixedFIFO should be a power of two`);this.buffer=Array(e),this.mask=e-1,this.top=0,this.btm=0,this.next=null}push(e){return this.buffer[this.top]===void 0&&(this.buffer[this.top]=e,this.top=this.top+1&this.mask,!0)}shift(){let e=this.buffer[this.btm];if(e!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,e}isEmpty(){return this.buffer[this.btm]===void 0}},oo=class{size;hwm;head;tail;constructor(e={}){this.hwm=e.splitLimit??16,this.head=new ao(this.hwm),this.tail=this.head,this.size=0}calculateSize(e){return e?.byteLength==null?1:e.byteLength}push(e){if(e?.value!=null&&(this.size+=this.calculateSize(e.value)),!this.head.push(e)){let t=this.head;this.head=t.next=new ao(2*this.head.buffer.length),this.head.push(e)}}shift(){let e=this.tail.shift();if(e===void 0&&this.tail.next!=null){let t=this.tail.next;this.tail.next=null,this.tail=t,e=this.tail.shift()}return e?.value!=null&&(this.size-=this.calculateSize(e.value)),e}isEmpty(){return this.head.isEmpty()}},so=class extends Error{type;code;constructor(e,t){super(e??`The operation was aborted`),this.type=`aborted`,this.code=t??`ABORT_ERR`}};function B(e={}){return co(e=>{let t=e.shift();if(t==null)return{done:!0};if(t.error!=null)throw t.error;return{done:t.done===!0,value:t.value}},e)}function co(e,t){t??={};let n=t.onEnd,r=new oo,i,a,o,s=z(),c=async()=>{try{return r.isEmpty()?o?{done:!0}:await new Promise((t,n)=>{a=o=>{a=null,r.push(o);try{t(e(r))}catch(e){n(e)}return i}}):e(r)}finally{r.isEmpty()&&queueMicrotask(()=>{s.resolve(),s=z()})}},l=e=>a==null?(r.push(e),i):a(e),ee=e=>(r=new oo,a==null?(r.push({error:e}),i):a({error:e})),te=e=>{if(o)return i;if(t?.objectMode!==!0&&e?.byteLength==null)throw Error(`objectMode was not true but tried to push non-Uint8Array value`);return l({done:!1,value:e})},ne=e=>o?i:(o=!0,e==null?l({done:!0}):ee(e)),re=()=>(r=new oo,ne(),{done:!0}),ie=e=>(ne(e),{done:!0});if(i={[Symbol.asyncIterator](){return this},next:c,return:re,throw:ie,push:te,end:ne,get readableLength(){return r.size},onEmpty:async e=>{let t=e?.signal;if(t?.throwIfAborted(),r.isEmpty())return;let n,i;t!=null&&(n=new Promise((e,n)=>{i=()=>{n(new so)},t.addEventListener(`abort`,i)}));try{await Promise.race([s.promise,n])}finally{i!=null&&t!=null&&t?.removeEventListener(`abort`,i)}}},n==null)return i;let u=i;return i={[Symbol.asyncIterator](){return this},next(){return u.next()},throw(e){return u.throw(e),n!=null&&(n(e),n=void 0),{done:!0}},return(){return u.return(),n!=null&&(n(),n=void 0),{done:!0}},push:te,end(e){return u.end(e),n!=null&&(n(e),n=void 0),i},get readableLength(){return u.readableLength},onEmpty:e=>u.onEmpty(e)},i}var lo=class extends Error{type;code;constructor(e,t,n){super(e??`The operation was aborted`),this.type=`aborted`,this.name=n??`AbortError`,this.code=t??`ABORT_ERR`}};async function V(e,t,n){if(t==null)return e;if(t.aborted)return e.catch(()=>{}),Promise.reject(new lo(n?.errorMessage,n?.errorCode,n?.errorName));let r,i=new lo(n?.errorMessage,n?.errorCode,n?.errorName);try{return await Promise.race([e,new Promise((e,n)=>{r=()=>{n(i)},t.addEventListener(`abort`,r)})])}finally{r!=null&&t.removeEventListener(`abort`,r)}}var uo=class{readNext;haveNext;ended;nextResult;error;constructor(){this.ended=!1,this.readNext=z(),this.haveNext=z()}[Symbol.asyncIterator](){return this}async next(){if(this.nextResult??await this.haveNext.promise,this.nextResult==null)throw Error(`HaveNext promise resolved but nextResult was undefined`);let e=this.nextResult;return this.nextResult=void 0,this.readNext.resolve(),this.readNext=z(),e}async throw(e){return this.ended=!0,this.error=e,e!=null&&(this.haveNext.promise.catch(()=>{}),this.haveNext.reject(e)),{done:!0,value:void 0}}async return(){let e={done:!0,value:void 0};return this.ended=!0,this.nextResult=e,this.haveNext.resolve(),e}async push(e,t){await this._push(e,t)}async end(e,t){e==null?await this._push(void 0,t):await this.throw(e)}async _push(e,t){if(e!=null&&this.ended)throw this.error??Error(`Cannot push value onto an ended pushable`);for(;this.nextResult!=null;)await this.readNext.promise;e==null?(this.ended=!0,this.nextResult={done:!0,value:void 0}):this.nextResult={done:!1,value:e},this.haveNext.resolve(),this.haveNext=z(),await V(this.readNext.promise,t?.signal,t)}};function fo(){return new uo}function po(e){return e[Symbol.asyncIterator]!=null}async function mo(e,t,n){try{await Promise.all(e.map(async e=>{for await(let r of e)await t.push(r,{signal:n}),n.throwIfAborted()})),await t.end(void 0,{signal:n})}catch(e){await t.end(e,{signal:n}).catch(()=>{})}}async function*ho(e){let t=new AbortController,n=fo();mo(e,n,t.signal).catch(()=>{});try{yield*n}finally{t.abort()}}function*go(e){for(let t of e)yield*t}function _o(...e){let t=[];for(let n of e)po(n)||t.push(n);return t.length===e.length?go(t):ho(e)}function H(e,...t){if(e==null)throw Error(`Empty pipeline`);if(xo(e)){let t=e;e=()=>t.source}else if(bo(e)||yo(e)){let t=e;e=()=>t}let n=[e,...t];if(n.length>1&&xo(n[n.length-1])&&(n[n.length-1]=n[n.length-1].sink),n.length>2)for(let e=1;e<n.length-1;e++)xo(n[e])&&(n[e]=So(n[e]));return vo(...n)}const vo=(...e)=>{let t;for(;e.length>0;)t=e.shift()(t);return t},yo=e=>e?.[Symbol.asyncIterator]!=null,bo=e=>e?.[Symbol.iterator]!=null,xo=e=>e!=null&&e.sink!=null&&e.source!=null,So=e=>t=>{let n=e.sink(t);if(n?.then!=null){let t=B({objectMode:!0});n.then(()=>{t.end()},e=>{t.end(e)});let r,i=e.source;if(yo(i))r=async function*(){yield*i,t.end()};else if(bo(i))r=function*(){yield*i,t.end()};else throw Error(`Unknown duplex source type - must be Iterable or AsyncIterable`);return _o(t,r())}return e.source},Co=O({typeName:`srpc.CallStart`,fields:[{no:1,name:`rpc_service`,kind:`scalar`,T:f.STRING},{no:2,name:`rpc_method`,kind:`scalar`,T:f.STRING},{no:3,name:`data`,kind:`scalar`,T:f.BYTES},{no:4,name:`data_is_zero`,kind:`scalar`,T:f.BOOL}],packedByDefault:!0}),wo=O({typeName:`srpc.CallData`,fields:[{no:1,name:`data`,kind:`scalar`,T:f.BYTES},{no:2,name:`data_is_zero`,kind:`scalar`,T:f.BOOL},{no:3,name:`complete`,kind:`scalar`,T:f.BOOL},{no:4,name:`error`,kind:`scalar`,T:f.STRING}],packedByDefault:!0}),To=O({typeName:`srpc.Packet`,fields:[{no:1,name:`call_start`,kind:`message`,T:()=>Co,oneof:`body`},{no:2,name:`call_data`,kind:`message`,T:()=>wo,oneof:`body`},{no:3,name:`call_cancel`,kind:`scalar`,T:f.BOOL,oneof:`body`}],packedByDefault:!0});var Eo=class{sink;source;rpcDataSource;_source=B({objectMode:!0});_rpcDataSource=B({objectMode:!0});service;method;closed;remoteError;invocationController=new AbortController;writeDrainAbort=new AbortController;constructor(){this.sink=this._createSink(),this.source=this._source,this.rpcDataSource=this._rpcDataSource}get isClosed(){return this.closed??!1}get invocationSignal(){return this.invocationController.signal}async writeCallData(e,t,n){await this.writeCallDataPacket(e,t,n)}async writeCallDataPacket(e,t,n,r){let i={data:e||new Uint8Array,dataIsZero:!!e&&e.length===0,complete:t||!1,error:n||``};await this.writePacket({body:{case:`callData`,value:i}},r)}async writeCallCancel(e=!1){await this.writePacket({body:{case:`callCancel`,value:!0}},{waitForDrain:!1}),e&&await this._source.onEmpty({signal:this.writeDrainAbort.signal})}async writeCallDataFromSource(e){try{for await(let t of e)await this.writeCallData(t);await this.writeCallData(void 0,!0)}catch(e){this.close(e)}}async writePacket(e,t){if(this.closed&&!t?.allowClosed)throw Error(R);if(this._source.push(e),!(t?.waitForDrain===!1||this._source.readableLength<=1))try{await this._source.onEmpty({signal:this.writeDrainAbort.signal})}catch(e){throw this.closed?Error(R,{cause:e}):e}}async handleMessage(e){return this.handlePacket(To.fromBinary(e))}async handlePacket(e){try{switch(e?.body?.case){case`callStart`:await this.handleCallStart(e.body.value);break;case`callData`:await this.handleCallData(e.body.value);break;case`callCancel`:e.body.value&&await this.handleCallCancel()}}catch(e){let t=e;t?.message||(t=Error(`error handling packet`)),this.close(t)}}async handleCallStart(e){throw Error(`unexpected call start: ${e.rpcService}/${e.rpcMethod}`)}pushRpcData(e,t){if(t)(!e||e.length!==0)&&(e=new Uint8Array);else if(!e||e.length===0)return;this._rpcDataSource.push(e)}async handleCallData(e){if(!this.service||!this.method)throw Error(`call start must be sent before call data`);this.pushRpcData(e.data,e.dataIsZero);let t=e.error?new io(this.service,this.method,e.error):void 0;t&&(this.remoteError??=t,this.invocationController.abort()),(e.complete&&!t||t)&&this._rpcDataSource.end(t)}async handleCallCancel(){await this.close(Error(R))}async close(e){this.closed||(this.closed=e??!0,!this.remoteError&&e&&(this.remoteError=e),this.invocationController.abort(),e&&e.message&&await this.writeCallDataPacket(void 0,!0,e.message,{allowClosed:!0,waitForDrain:!1}),this.writeDrainAbort.abort(),this._source.end(),this._rpcDataSource.end(e))}_createSink(){return async e=>{try{if(Symbol.asyncIterator in e)for await(let t of e)await this.handlePacket(t);else for(let t of e)await this.handlePacket(t)}catch(e){this.close(e)}}}},Do=class extends Eo{constructor(e,t){super(),this.service=e,this.method=t}async writeCallStart(e){if(!this.service||!this.method)throw Error(`service and method must be set`);let t={rpcService:this.service,rpcMethod:this.method,data:e||new Uint8Array,dataIsZero:!!e&&e.length===0};await this.writePacket({body:{case:`callStart`,value:t}})}async handleCallStart(e){throw Error(`unexpected server to client rpc: ${e.rpcService||`<empty>`}/${e.rpcMethod||`<empty>`}`)}};async function Oo(e,t){try{for await(let n of e)t.push(n);t.end()}catch(e){t.end(e)}}function ko(e){if(e.buffer instanceof ArrayBuffer)return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);let t=e.slice();return new Uint8Array(t.buffer,0,t.byteLength)}function U(e=0){return ko(t.alloc(e))}function Ao(e=0){return ko(t.allocUnsafe(e))}function jo(e,n){return ko(t.concat(e,n))}function Mo(e,t){if(e===t)return!0;if(e.byteLength!==t.byteLength)return!1;for(let n=0;n<e.byteLength;n++)if(e[n]!==t[n])return!1;return!0}const No=Symbol.for(`@achingbrain/uint8arraylist`);function Po(e,t){if(t==null||t<0)throw RangeError(`index is out of bounds`);let n=0;for(let r of e){let e=n+r.byteLength;if(t<e)return{buf:r,index:t-n};n=e}throw RangeError(`index is out of bounds`)}function W(e){return!!e?.[No]}var G=class e{bufs;length;[No]=!0;constructor(...e){this.bufs=[],this.length=0,e.length>0&&this.appendAll(e)}*[Symbol.iterator](){yield*this.bufs}get byteLength(){return this.length}append(...e){this.appendAll(e)}appendAll(e){let t=0;for(let n of e)if(n instanceof Uint8Array)t+=n.byteLength,this.bufs.push(n);else if(W(n)){t+=n.byteLength;for(let e of n.bufs)this.bufs.push(e)}else throw Error(`Could not append value, must be an Uint8Array or a Uint8ArrayList`);this.length+=t}prepend(...e){this.prependAll(e)}prependAll(e){let t=0;for(let n of e.reverse())if(n instanceof Uint8Array)t+=n.byteLength,this.bufs.unshift(n);else if(W(n))t+=n.byteLength,this.bufs.unshift(...n.bufs);else throw Error(`Could not prepend value, must be an Uint8Array or a Uint8ArrayList`);this.length+=t}get(e){let t=Po(this.bufs,e);return t.buf[t.index]}set(e,t){let n=Po(this.bufs,e);n.buf[n.index]=t}write(e,t=0){if(e instanceof Uint8Array)for(let n=0;n<e.length;n++)this.set(t+n,e[n]);else if(W(e))for(let n=0;n<e.length;n++)this.set(t+n,e.get(n));else throw Error(`Could not write value, must be an Uint8Array or a Uint8ArrayList`)}consume(e){if(e=Math.trunc(e),!(Number.isNaN(e)||e<=0)){if(e===this.byteLength){this.bufs=[],this.length=0;return}for(;this.bufs.length>0;)if(e>=this.bufs[0].byteLength)e-=this.bufs[0].byteLength,this.length-=this.bufs[0].byteLength,this.bufs.shift();else{this.bufs[0]=this.bufs[0].subarray(e),this.length-=e;break}}}slice(e,t){let{bufs:n,length:r}=this._subList(e,t);return jo(n,r)}subarray(e,t){let{bufs:n,length:r}=this._subList(e,t);return n.length===1?n[0]:jo(n,r)}sublist(t,n){let{bufs:r,length:i}=this._subList(t,n),a=new e;return a.length=i,a.bufs=r,a}_subList(e,t){if(e??=0,t??=this.length,e<0&&(e=this.length+e),t<0&&(t=this.length+t),e<0||t>this.length)throw RangeError(`index is out of bounds`);if(e===t)return{bufs:[],length:0};if(e===0&&t===this.length)return{bufs:[...this.bufs],length:this.length};let n=[],r=0;for(let i=0;i<this.bufs.length;i++){let a=this.bufs[i],o=r,s=o+a.byteLength;if(r=s,e>=s)continue;let c=e>=o&&e<s,l=t>o&&t<=s;if(c&&l){if(e===o&&t===s){n.push(a);break}let r=e-o;n.push(a.subarray(r,r+(t-e)));break}if(c){if(e===0){n.push(a);continue}n.push(a.subarray(e-o));continue}if(l){if(t===s){n.push(a);break}n.push(a.subarray(0,t-o));break}n.push(a)}return{bufs:n,length:t-e}}indexOf(e,t=0){if(!W(e)&&!(e instanceof Uint8Array))throw TypeError(`The "value" argument must be a Uint8ArrayList or Uint8Array`);let n=e instanceof Uint8Array?e:e.subarray();if(t=Number(t??0),isNaN(t)&&(t=0),t<0&&(t=this.length+t),t<0&&(t=0),e.length===0)return t>this.length?this.length:t;let r=n.byteLength;if(r===0)throw TypeError(`search must be at least 1 byte long`);let i=new Int32Array(256);for(let e=0;e<256;e++)i[e]=-1;for(let e=0;e<r;e++)i[n[e]]=e;let a=i,o=this.byteLength-n.byteLength,s=n.byteLength-1,c;for(let e=t;e<=o;e+=c){c=0;for(let t=s;t>=0;t--){let r=this.get(e+t);if(n[t]!==r){c=Math.max(1,t-a[r]);break}}if(c===0)return e}return-1}getInt8(e){let t=this.subarray(e,e+1);return new DataView(t.buffer,t.byteOffset,t.byteLength).getInt8(0)}setInt8(e,t){let n=Ao(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt8(0,t),this.write(n,e)}getInt16(e,t){let n=this.subarray(e,e+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt16(0,t)}setInt16(e,t,n){let r=U(2);new DataView(r.buffer,r.byteOffset,r.byteLength).setInt16(0,t,n),this.write(r,e)}getInt32(e,t){let n=this.subarray(e,e+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt32(0,t)}setInt32(e,t,n){let r=U(4);new DataView(r.buffer,r.byteOffset,r.byteLength).setInt32(0,t,n),this.write(r,e)}getBigInt64(e,t){let n=this.subarray(e,e+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigInt64(0,t)}setBigInt64(e,t,n){let r=U(8);new DataView(r.buffer,r.byteOffset,r.byteLength).setBigInt64(0,t,n),this.write(r,e)}getUint8(e){let t=this.subarray(e,e+1);return new DataView(t.buffer,t.byteOffset,t.byteLength).getUint8(0)}setUint8(e,t){let n=Ao(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint8(0,t),this.write(n,e)}getUint16(e,t){let n=this.subarray(e,e+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint16(0,t)}setUint16(e,t,n){let r=U(2);new DataView(r.buffer,r.byteOffset,r.byteLength).setUint16(0,t,n),this.write(r,e)}getUint32(e,t){let n=this.subarray(e,e+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint32(0,t)}setUint32(e,t,n){let r=U(4);new DataView(r.buffer,r.byteOffset,r.byteLength).setUint32(0,t,n),this.write(r,e)}getBigUint64(e,t){let n=this.subarray(e,e+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigUint64(0,t)}setBigUint64(e,t,n){let r=U(8);new DataView(r.buffer,r.byteOffset,r.byteLength).setBigUint64(0,t,n),this.write(r,e)}getFloat32(e,t){let n=this.subarray(e,e+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat32(0,t)}setFloat32(e,t,n){let r=U(4);new DataView(r.buffer,r.byteOffset,r.byteLength).setFloat32(0,t,n),this.write(r,e)}getFloat64(e,t){let n=this.subarray(e,e+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat64(0,t)}setFloat64(e,t,n){let r=U(8);new DataView(r.buffer,r.byteOffset,r.byteLength).setFloat64(0,t,n),this.write(r,e)}equals(t){if(t==null||!(t instanceof e)||t.bufs.length!==this.bufs.length)return!1;for(let e=0;e<this.bufs.length;e++)if(!Mo(this.bufs[e],t.bufs[e]))return!1;return!0}static fromUint8Arrays(t,n){let r=new e;return r.bufs=t,n??=t.reduce((e,t)=>e+t.byteLength,0),r.length=n,r}};function Fo(e){let t=e.fromBinary.bind(e);return async function*(e){for await(let n of e)if(Array.isArray(n))for(let e of n)yield*[t(e)];else yield*[t(n)]}}function Io(e){return async function*(t){for await(let n of t)if(Array.isArray(n))for(let t of n)yield e.toBinary(t);else yield e.toBinary(n)}}const Lo=1e7,Ro=Fo(To),zo=Io(To),Bo=e=>{if(e.length<4)throw RangeError(`Could not decode int32BE`);return e.getUint32(0,!0)};Bo.bytes=4;const Vo=e=>{let t=new G(new Uint8Array(4));return t.setUint32(0,e,!0),t};Vo.bytes=4;async function*Ho(e,t){for await(let n of e){let e=n instanceof Uint8Array?n.length:n.byteLength;if(e===0||e>Lo)throw RangeError(`invalid packet length: ${e}`);yield new G(t(e),n)}}async function*Uo(e,t){let n=new G;for await(let r of e)for(n.append(r);n.length>=t.bytes;){let e=t(n);if(e===0||e>Lo)throw RangeError(`invalid packet length: ${e}`);let r=t.bytes+e;if(n.length<r)break;yield new G(n.slice(t.bytes,r)),n.consume(r)}if(n.length!==0)throw RangeError(`truncated packet frame`)}function Wo(e=Vo){return t=>Ho(t,e)}function Go(e=Bo){return t=>Uo(t,e)}var Ko=class{_value;_waiters;constructor(e){this._value=e||void 0,this._waiters=[]}get value(){return this._value}async wait(){let e=this._value;return e===void 0?new Promise(e=>{this.waitWithCb(t=>{e(t)})}):e}waitWithCb(e){e&&this._waiters.push(e)}set(e){if(this._value=e,e===void 0)return;let t=this._waiters;if(t.length!==0){this._waiters=[];for(let n of t)n(e)}}},qo=class extends Ko{constructor(e){super(e)}get openStreamFunc(){return async()=>{let e=this.value;return e||=await this.wait(),e()}}},Jo=class{openStreamCtr;constructor(e){this.openStreamCtr=new qo(e||void 0)}setOpenStreamFn(e){this.openStreamCtr.set(e||void 0)}async request(e,t,n,r){let i=await this.startRpc(e,t,n,r);for await(let e of i.rpcDataSource)return i.close(),e;let a=Error(`empty response`);throw i.close(a),a}async clientStreamingRequest(e,t,n,r){let i=await this.startRpc(e,t,null,r);i.writeCallDataFromSource(n).catch(e=>i.close(e));for await(let e of i.rpcDataSource)return i.close(),e;let a=Error(`empty response`);throw i.close(a),a}serverStreamingRequest(e,t,n,r){let i=B({objectMode:!0});return this.startRpc(e,t,n,r).then(async e=>Oo(e.rpcDataSource,i)).catch(e=>i.end(e)),i}bidirectionalStreamingRequest(e,t,n,r){let i=B({objectMode:!0});return this.startRpc(e,t,null,r).then(async e=>{let t=t=>{i.end(t),e.close(t)};e.writeCallDataFromSource(n).catch(t);try{for await(let t of e.rpcDataSource)i.push(t);i.end(),e.close()}catch(e){t(e)}}).catch(e=>i.end(e)),i}async startRpc(e,t,n,r){if(r?.aborted)throw Error(R);let i=await(await this.openStreamCtr.wait())(),a=new Do(e,t),o=()=>{if(a.isClosed)return;let e=Error(R);a.writeCallCancel().catch(()=>void 0),i.abort(e),a.close(e).catch(()=>void 0)};return r?.addEventListener(`abort`,o,{once:!0}),H(i,Ro,a,zo,i).then(async()=>{if(a.isClosed instanceof Error){i.abort(a.isClosed);return}await i.close(),await a.close()},async e=>{let t=e instanceof Error?e:Error(String(e));i.abort(t),await a.close(t)}).finally(()=>{r?.removeEventListener(`abort`,o)}),await a.writeCallStart(n??void 0),a}},Yo=class extends Eo{lookupMethod;constructor(e){super(),this.lookupMethod=e}async handleCallStart(e){if(this.service||this.method)throw Error(`call start must be sent only once`);if(this.service=e.rpcService,this.method=e.rpcMethod,!this.service||!this.method)throw Error(`rpcService and rpcMethod cannot be empty`);if(!this.lookupMethod)throw Error(`LookupMethod is not defined`);let t=await this.lookupMethod(this.service,this.method);if(!t)throw Error(`not found: ${this.service}/${this.method}`);this.pushRpcData(e.data,e.dataIsZero),this.invokeRPC(t)}async handleCallData(e){if(!this.service||!this.method)throw Error(`call start must be sent before call data`);return super.handleCallData(e)}async invokeRPC(e){let t=this._createDataSink();try{await e(this.rpcDataSource,t,{signal:this.invocationSignal})}catch(e){this.close(e)}}_createDataSink(){return async e=>{try{for await(let t of e)await this.writeCallData(t);await this.writeCallData(void 0,!0),this.close()}catch(e){this.close(e)}}}},Xo=class{lookupMethod;constructor(e){this.lookupMethod=e}get rpcStreamHandler(){return async e=>Zo(e,this.startRpc())}startRpc(){return new Yo(this.lookupMethod)}handlePacketStream(e){let t=this.startRpc();return Zo(e,t).catch(()=>void 0),t}};async function Zo(e,t){try{if(await H(e,Ro,t,zo,e),t.isClosed instanceof Error)throw e.abort(t.isClosed),t.isClosed;await e.close(),await t.close()}catch(n){let r=n instanceof Error?n:Error(String(n));throw e.abort(r),await t.close(r),r}}function Qo(e){if(e!=null){if(typeof e[Symbol.iterator]==`function`)return e[Symbol.iterator]();if(typeof e[Symbol.asyncIterator]==`function`)return e[Symbol.asyncIterator]();if(typeof e.next==`function`)return e}throw Error(`argument is not an iterator or iterable`)}const $o=(e,...t)=>{try{[...t]}catch{}};var K=class extends Error{static name=`InvalidFrameError`;constructor(e=`The frame was invalid`){super(e),this.name=`InvalidFrameError`}},es=class extends Error{static name=`UnrequestedPingError`;constructor(e=`Unrequested ping error`){super(e),this.name=`UnrequestedPingError`}},ts=class extends Error{static name=`NotMatchingPingError`;constructor(e=`Unrequested ping error`){super(e),this.name=`NotMatchingPingError`}},ns=class extends Error{static name=`InvalidStateError`;constructor(e=`Invalid state`){super(e),this.name=`InvalidStateError`}},rs=class extends Error{static name=`StreamAlreadyExistsError`;constructor(e=`Strean already exists`){super(e),this.name=`StreamAlreadyExistsError`}},is=class extends Error{static name=`DecodeInvalidVersionError`;constructor(e=`Decode invalid version`){super(e),this.name=`DecodeInvalidVersionError`}},as=class extends Error{static name=`BothClientsError`;constructor(e=`Both clients`){super(e),this.name=`BothClientsError`}},os=class extends Error{static name=`ReceiveWindowExceededError`;constructor(e=`Receive window exceeded`){super(e),this.name=`ReceiveWindowExceededError`}};const ss=new Set([K.name,es.name,ts.name,rs.name,is.name,as.name,os.name]),cs=262144,ls=Symbol.for(`@libp2p/service-capabilities`);var us=class extends Error{static name=`AbortError`;constructor(e=`The operation was aborted`){super(e),this.name=`AbortError`}},q=class extends Error{static name=`InvalidParametersError`;constructor(e=`Invalid parameters`){super(e),this.name=`InvalidParametersError`}},J=class extends Error{static name=`MuxerClosedError`;constructor(e=`The muxer is closed`){super(e),this.name=`MuxerClosedError`}},ds=class extends Error{static name=`TooManyOutboundProtocolStreamsError`;constructor(e=`Too many outbound protocol streams`){super(e),this.name=`TooManyOutboundProtocolStreamsError`}};const fs={enableKeepAlive:!0,keepAliveInterval:3e4,maxInboundStreams:1e3,maxOutboundStreams:1e3,initialStreamWindowSize:cs,maxStreamWindowSize:16777216,maxMessageSize:65536};function ps(e){if(e.keepAliveInterval<=0)throw new q(`keep-alive interval must be positive`);if(e.maxInboundStreams<0)throw new q(`max inbound streams must be larger or equal 0`);if(e.maxOutboundStreams<0)throw new q(`max outbound streams must be larger or equal 0`);if(e.initialStreamWindowSize<262144)throw new q(`InitialStreamWindowSize must be larger or equal 256 kB`);if(e.maxStreamWindowSize<e.initialStreamWindowSize)throw new q(`MaxStreamWindowSize must be larger than the InitialStreamWindowSize`);if(e.maxStreamWindowSize>2**32-1)throw new q(`MaxStreamWindowSize must be less than equal MAX_UINT32`);if(e.maxMessageSize<1024)throw new q(`MaxMessageSize must be greater than a kilobyte`)}var Y;(function(e){e[e.Data=0]=`Data`,e[e.WindowUpdate=1]=`WindowUpdate`,e[e.Ping=2]=`Ping`,e[e.GoAway=3]=`GoAway`})(Y||={});var X;(function(e){e[e.SYN=1]=`SYN`,e[e.ACK=2]=`ACK`,e[e.FIN=4]=`FIN`,e[e.RST=8]=`RST`})(X||={}),Object.values(X).filter(e=>typeof e!=`string`);var Z;(function(e){e[e.NormalTermination=0]=`NormalTermination`,e[e.ProtocolError=1]=`ProtocolError`,e[e.InternalError=2]=`InternalError`})(Z||={});const ms=2**24;function hs(e){if(e[0]!==0)throw new K(`Invalid frame version`);return{type:e[1],flag:(e[2]<<8)+e[3],streamID:e[4]*ms+(e[5]<<16)+(e[6]<<8)+e[7],length:e[8]*ms+(e[9]<<16)+(e[10]<<8)+e[11]}}var gs=class{source;buffer;frameInProgress;constructor(e){this.source=_s(e),this.buffer=new G,this.frameInProgress=!1}async*emitFrames(){for await(let e of this.source)for(this.buffer.append(e);;){let e=this.readHeader();if(e===void 0)break;let{type:t,length:n}=e;t===Y.Data?(this.frameInProgress=!0,yield{header:e,readData:this.readBytes.bind(this,n)}):yield{header:e}}}readHeader(){if(this.frameInProgress)throw new ns(`decoding frame already in progress`);if(this.buffer.length<12)return;let e=hs(this.buffer.subarray(0,12));return this.buffer.consume(12),e}async readBytes(e){if(this.buffer.length<e){for await(let t of this.source)if(this.buffer.append(t),this.buffer.length>=e)break}let t=this.buffer.sublist(0,e);return this.buffer.consume(e),this.frameInProgress=!1,t}};function _s(e){if(e[Symbol.iterator]!==void 0){let t=e[Symbol.iterator]();return t.return=void 0,{[Symbol.iterator](){return t}}}if(e[Symbol.asyncIterator]!==void 0){let t=e[Symbol.asyncIterator]();return t.return=void 0,{[Symbol.asyncIterator](){return t}}}throw Error(`a source must be either an iterable or an async iterable`)}function vs(e){let t=new Uint8Array(12);return t[1]=e.type,t[2]=e.flag>>>8,t[3]=e.flag,t[4]=e.streamID>>>24,t[5]=e.streamID>>>16,t[6]=e.streamID>>>8,t[7]=e.streamID,t[8]=e.length>>>24,t[9]=e.length>>>16,t[10]=e.length>>>8,t[11]=e.length,t}var ys=class extends Error{static name=`StreamResetError`;constructor(e=`The stream has been reset`){super(e),this.name=`StreamResetError`}},bs=class extends Error{static name=`StreamStateError`;constructor(e=`The stream is in an invalid state`){super(e),this.name=`StreamStateError`}};function xs(e){return e!=null&&typeof e.then==`function`&&typeof e.catch==`function`&&typeof e.finally==`function`}function Ss(e,t){let n=Qo(e).return?.();xs(n)&&n.catch(e=>{t.error(`could not cause iterator to return`,e)})}function Cs(e){return e!=null&&typeof e.then==`function`&&typeof e.catch==`function`&&typeof e.finally==`function`}var ws=class{id;direction;timeline;protocol;metadata;source;status;readStatus;writeStatus;log;sinkController;sinkEnd;closed;endErr;streamSource;onEnd;onCloseRead;onCloseWrite;onReset;onAbort;sendCloseWriteTimeout;sendingData;constructor(e){this.sinkController=new AbortController,this.sinkEnd=z(),this.closed=z(),this.log=e.log,this.status=`open`,this.readStatus=`ready`,this.writeStatus=`ready`,this.id=e.id,this.metadata=e.metadata??{},this.direction=e.direction,this.timeline={open:Date.now()},this.sendCloseWriteTimeout=e.sendCloseWriteTimeout??5e3,this.onEnd=e.onEnd,this.onCloseRead=e.onCloseRead,this.onCloseWrite=e.onCloseWrite,this.onReset=e.onReset,this.onAbort=e.onAbort,this.source=this.streamSource=B({onEnd:e=>{e==null?this.log.trace(`source ended`):this.log.trace(`source ended with error`,e),this.onSourceEnd(e)}}),this.sink=this.sink.bind(this)}async sink(e){if(this.writeStatus!==`ready`)throw new bs(`writable end state is "${this.writeStatus}" not "ready"`);try{this.writeStatus=`writing`;let t={signal:this.sinkController.signal};if(this.direction===`outbound`){let e=this.sendNewStream(t);Cs(e)&&await e}let n=()=>{Ss(e,this.log)};try{this.sinkController.signal.addEventListener(`abort`,n),this.log.trace(`sink reading from source`);for await(let n of e){n=n instanceof Uint8Array?new G(n):n;let e=this.sendData(n,t);Cs(e)&&(this.sendingData=z(),await e,this.sendingData.resolve(),this.sendingData=void 0)}}finally{this.sinkController.signal.removeEventListener(`abort`,n)}this.log.trace(`sink finished reading from source, write status is "%s"`,this.writeStatus),this.writeStatus===`writing`&&(this.writeStatus=`closing`,this.log.trace(`send close write to remote`),await this.sendCloseWrite({signal:AbortSignal.timeout(this.sendCloseWriteTimeout)}),this.writeStatus=`closed`),this.onSinkEnd()}catch(e){throw this.log.trace(`sink ended with error, calling abort with error`,e),this.abort(e),e}finally{this.log.trace(`resolve sink end`),this.sinkEnd.resolve()}}onSourceEnd(e){this.timeline.closeRead??(this.timeline.closeRead=Date.now(),this.readStatus=`closed`,e!=null&&this.endErr==null&&(this.endErr=e),this.onCloseRead?.(),this.timeline.closeWrite==null?this.log.trace(`source ended, waiting for sink to end`):(this.log.trace(`source and sink ended`),this.timeline.close=Date.now(),this.status!==`aborted`&&this.status!==`reset`&&(this.status=`closed`),this.onEnd!=null&&this.onEnd(this.endErr),this.closed.resolve()))}onSinkEnd(e){this.timeline.closeWrite??(this.timeline.closeWrite=Date.now(),this.writeStatus=`closed`,e!=null&&this.endErr==null&&(this.endErr=e),this.onCloseWrite?.(),this.timeline.closeRead==null?this.log.trace(`sink ended, waiting for source to end`):(this.log.trace(`sink and source ended`),this.timeline.close=Date.now(),this.status!==`aborted`&&this.status!==`reset`&&(this.status=`closed`),this.onEnd!=null&&this.onEnd(this.endErr),this.closed.resolve()))}async close(e){this.status===`open`&&(this.log.trace(`closing gracefully`),this.status=`closing`,await V(Promise.all([this.closeWrite(e),this.closeRead(e),this.closed.promise]),e?.signal),this.status=`closed`,this.log.trace(`closed gracefully`))}async closeRead(e={}){if(this.readStatus===`closing`||this.readStatus===`closed`)return;this.log.trace(`closing readable end of stream with starting read status "%s"`,this.readStatus);let t=this.readStatus;this.readStatus=`closing`,this.status!==`reset`&&this.status!==`aborted`&&this.timeline.closeRead==null&&(this.log.trace(`send close read to remote`),await this.sendCloseRead(e)),t===`ready`&&(this.log.trace(`ending internal source queue with %d queued bytes`,this.streamSource.readableLength),this.streamSource.end()),this.log.trace(`closed readable end of stream`)}async closeWrite(e={}){this.writeStatus!==`closing`&&this.writeStatus!==`closed`&&(this.log.trace(`closing writable end of stream with starting write status "%s"`,this.writeStatus),this.writeStatus===`ready`&&(this.log.trace(`sink was never sunk, sink an empty array`),await V(this.sink([]),e.signal)),this.writeStatus===`writing`&&(this.sendingData!=null&&await V(this.sendingData.promise,e.signal),this.log.trace(`aborting source passed to .sink`),this.sinkController.abort(),await V(this.sinkEnd.promise,e.signal)),this.writeStatus=`closed`,this.log.trace(`closed writable end of stream`))}abort(e){if(this.status===`closed`||this.status===`aborted`||this.status===`reset`)return;this.log(`abort with error`,e),this.log(`try to send reset to remote`);let t=this.sendReset();Cs(t)&&t.catch(e=>{this.log.error(`error sending reset message`,e)}),this.status=`aborted`,this.timeline.abort=Date.now(),this._closeSinkAndSource(e),this.onAbort?.(e)}reset(){if(this.status===`closed`||this.status===`aborted`||this.status===`reset`)return;let e=new ys(`stream reset`);this.status=`reset`,this.timeline.reset=Date.now(),this._closeSinkAndSource(e),this.onReset?.()}_closeSinkAndSource(e){this._closeSink(e),this._closeSource(e)}_closeSink(e){this.writeStatus===`writing`&&(this.log.trace(`end sink source`),this.sinkController.abort()),this.onSinkEnd(e)}_closeSource(e){this.readStatus!==`closing`&&this.readStatus!==`closed`&&(this.log.trace(`ending source with %d bytes to be read by consumer`,this.streamSource.readableLength),this.readStatus=`closing`,this.streamSource.end(e))}remoteCloseWrite(){if(this.readStatus===`closing`||this.readStatus===`closed`){this.log(`received remote close write but local source is already closed`);return}this.log.trace(`remote close write`),this._closeSource()}remoteCloseRead(){if(this.writeStatus===`closing`||this.writeStatus===`closed`){this.log(`received remote close read but local sink is already closed`);return}this.log.trace(`remote close read`),this._closeSink()}destroy(){if(this.status===`closed`||this.status===`aborted`||this.status===`reset`){this.log(`received destroy but we are already closed`);return}this.log.trace(`stream destroyed`),this._closeSinkAndSource()}sourcePush(e){this.streamSource.push(e)}sourceReadableLength(){return this.streamSource.readableLength}};function Ts(e){let[t,n]=e[Symbol.asyncIterator]==null?[e[Symbol.iterator](),Symbol.iterator]:[e[Symbol.asyncIterator](),Symbol.asyncIterator],r=[];return{peek:()=>t.next(),push:e=>{r.push(e)},next:()=>r.length>0?{done:!1,value:r.shift()}:t.next(),[n](){return this}}}function Es(e){return e[Symbol.asyncIterator]!=null}function Ds(e){return e?.then!=null}function Os(e,t){let n=0;if(Es(e))return(async function*(){for await(let r of e){let e=t(r,n++);Ds(e)&&await e,yield r}})();let r=Ts(e),{value:i,done:a}=r.next();if(a===!0)return function*(){}();let o=t(i,n++);if(typeof o?.then==`function`)return(async function*(){await o,yield i;for(let e of r){let r=t(e,n++);Ds(r)&&await r,yield e}})();let s=t;return(function*(){yield i;for(let e of r)s(e,n++),yield e})()}var Q;(function(e){e[e.Init=0]=`Init`,e[e.SYNSent=1]=`SYNSent`,e[e.SYNReceived=2]=`SYNReceived`,e[e.Established=3]=`Established`,e[e.Finished=4]=`Finished`})(Q||={});var ks=class extends ws{name;state;config;_id;sendWindowCapacity;sendWindowCapacityUpdate;recvWindow;recvWindowCapacity;epochStart;getRTT;sendFrame;constructor(e){super({...e,onEnd:t=>{this.state=Q.Finished,e.onEnd?.(t)}}),this.config=e.config,this._id=parseInt(e.id,10),this.name=e.name,this.state=e.state,this.sendWindowCapacity=cs,this.recvWindow=this.config.initialStreamWindowSize,this.recvWindowCapacity=this.recvWindow,this.epochStart=Date.now(),this.getRTT=e.getRTT,this.sendFrame=e.sendFrame,this.source=Os(this.source,()=>{this.sendWindowUpdate()})}async sendNewStream(){}async sendData(e,t={}){for(e=e.sublist();e.byteLength!==0;){if(this.sendWindowCapacity===0&&(this.log?.trace(`wait for send window capacity, status %s`,this.status),await this.waitForSendWindowCapacity(t),this.status===`closed`||this.status===`aborted`||this.status===`reset`)){this.log?.trace(`%s while waiting for send window capacity`,this.status);return}let n=Math.min(this.sendWindowCapacity,this.config.maxMessageSize-12,e.length),r=this.getSendFlags();this.sendFrame({type:Y.Data,flag:r,streamID:this._id,length:n},e.sublist(0,n)),this.sendWindowCapacity-=n,e.consume(n)}}sendReset(){this.sendFrame({type:Y.WindowUpdate,flag:X.RST,streamID:this._id,length:0})}async sendCloseWrite(){let e=this.getSendFlags()|X.FIN;this.sendFrame({type:Y.WindowUpdate,flag:e,streamID:this._id,length:0})}async sendCloseRead(){}async waitForSendWindowCapacity(e={}){if(this.sendWindowCapacity>0)return;let t,n,r=()=>{this.status===`open`||this.status===`closing`?n(new us(`Stream aborted`)):t()};e.signal?.addEventListener(`abort`,r);try{await new Promise((e,r)=>{this.sendWindowCapacityUpdate=()=>{e()},n=r,t=e})}finally{e.signal?.removeEventListener(`abort`,r)}}handleWindowUpdate(e){this.log?.trace(`stream received window update id=%s`,this._id),this.processFlags(e.flag);let t=this.sendWindowCapacity;this.sendWindowCapacity+=e.length,t===0&&e.length>0&&this.sendWindowCapacityUpdate?.()}async handleData(e,t){if(this.log?.trace(`stream received data id=%s`,this._id),this.processFlags(e.flag),this.recvWindowCapacity<e.length)throw new os(`Receive window exceeded`);let n=await t();this.recvWindowCapacity-=e.length,this.sourcePush(n)}processFlags(e){(e&X.ACK)===X.ACK&&this.state===Q.SYNSent&&(this.state=Q.Established),(e&X.FIN)===X.FIN&&this.remoteCloseWrite(),(e&X.RST)===X.RST&&this.reset()}getSendFlags(){switch(this.state){case Q.Init:return this.state=Q.SYNSent,X.SYN;case Q.SYNReceived:return this.state=Q.Established,X.ACK;default:return 0}}sendWindowUpdate(){if(this.readStatus!==`ready`)return;let e=this.getSendFlags(),t=Date.now(),n=this.getRTT();if(e===0&&n>-1&&t-this.epochStart<n*4&&(this.recvWindow=Math.min(this.recvWindow*2,this.config.maxStreamWindowSize)),this.recvWindowCapacity>=this.recvWindow&&e===0)return;let r=this.recvWindow-this.recvWindowCapacity;this.recvWindowCapacity=this.recvWindow,this.epochStart=t,this.sendFrame({type:Y.WindowUpdate,flag:e,streamID:this._id,length:r})}};const As=`/yamux/1.0.0`;var js=class{protocol=As;_components;_init;constructor(e,t={}){this._components=e,this._init=t}[Symbol.toStringTag]=`@chainsafe/libp2p-yamux`;[ls]=[`@libp2p/stream-multiplexing`];createStreamMuxer(e){return new Ms(this._components,{...this._init,...e})}},Ms=class{protocol=As;source;sink;config;log;logger;closeController;nextStreamID;_streams;nextPingID;activePing;rtt;client;localGoAway;remoteGoAway;numInboundStreams;numOutboundStreams;onIncomingStream;onStreamEnd;constructor(e,t){this.client=t.direction===`outbound`,this.config={...fs,...t},this.logger=e.logger,this.log=this.logger.forComponent(`libp2p:yamux`),ps(this.config),this.closeController=new AbortController,$o(1/0,this.closeController.signal),this.onIncomingStream=t.onIncomingStream,this.onStreamEnd=t.onStreamEnd,this._streams=new Map,this.source=B({onEnd:()=>{this.log?.trace(`muxer source ended`),this._streams.forEach(e=>{e.destroy()})}}),this.sink=async e=>{let t=()=>{let t=Qo(e);if(t.return!=null){let e=t.return();Ns(e)&&e.catch(e=>{this.log?.(`could not cause sink source to return`,e)})}},n,r;try{let r=new gs(e);try{this.closeController.signal.addEventListener(`abort`,t);for await(let e of r.emitFrames())await this.handleFrame(e.header,e.readData)}finally{this.closeController.signal.removeEventListener(`abort`,t)}n=Z.NormalTermination}catch(e){ss.has(e.name)?(this.log?.error(`protocol error in sink`,e),n=Z.ProtocolError):(this.log?.error(`internal error in sink`,e),n=Z.InternalError),r=e}this.log?.trace(`muxer sink ended`),r==null?await this.close({reason:n}):this.abort(r,n)},this.numInboundStreams=0,this.numOutboundStreams=0,this.nextStreamID=this.client?1:2,this.nextPingID=0,this.rtt=-1,this.log?.trace(`muxer created`),this.config.enableKeepAlive&&this.keepAliveLoop().catch(e=>this.log?.error(`keepalive error: %s`,e)),this.ping().catch(e=>this.log?.error(`ping error: %s`,e))}get streams(){return Array.from(this._streams.values())}newStream(e){if(this.remoteGoAway!==void 0)throw new J(`Muxer closed remotely`);if(this.localGoAway!==void 0)throw new J(`Muxer closed locally`);let t=this.nextStreamID;if(this.nextStreamID+=2,this.numOutboundStreams>=this.config.maxOutboundStreams)throw new ds(`max outbound streams exceeded`);this.log?.trace(`new outgoing stream id=%s`,t);let n=this._newStream(t,e,Q.Init,`outbound`);return this._streams.set(t,n),this.numOutboundStreams++,n.sendWindowUpdate(),n}async ping(){if(this.remoteGoAway!==void 0)throw new J(`Muxer closed remotely`);if(this.localGoAway!==void 0)throw new J(`Muxer closed locally`);if(this.activePing===void 0){let e=()=>{};this.activePing={id:this.nextPingID++,promise:new Promise((t,n)=>{let r=()=>{n(new J(`Muxer closed locally`))};this.closeController.signal.addEventListener(`abort`,r,{once:!0}),e=()=>{this.closeController.signal.removeEventListener(`abort`,r),t()}}),resolve:e};let t=Date.now();this.sendPing(this.activePing.id);try{await this.activePing.promise}finally{delete this.activePing}let n=Date.now();this.rtt=n-t}else await this.activePing.promise;return this.rtt}getRTT(){return this.rtt}async close(e={}){if(this.closeController.signal.aborted)return;let t=e?.reason??Z.NormalTermination;if(this.log?.trace(`muxer close reason=%s`,t),e.signal==null){let t=AbortSignal.timeout(500);$o(1/0,t),e={...e,signal:t}}try{await Promise.all([...this._streams.values()].map(async t=>t.close(e))),this.sendGoAway(t),this._closeMuxer()}catch(e){this.abort(e)}}abort(e,t){if(!this.closeController.signal.aborted){t??=Z.InternalError,this.log?.error(`muxer abort reason=%s error=%s`,t,e);for(let t of this._streams.values())t.abort(e);this.sendGoAway(t),this._closeMuxer()}}isClosed(){return this.closeController.signal.aborted}_closeMuxer(){this.closeController.abort(),this.source.end()}_newStream(e,t,n,r){if(this._streams.get(e)!=null)throw new q(`Stream already exists with that id`);let i=new ks({id:e.toString(),name:t,state:n,direction:r,sendFrame:this.sendFrame.bind(this),onEnd:()=>{this.closeStream(e),this.onStreamEnd?.(i)},log:this.logger.forComponent(`libp2p:yamux:${r}:${e}`),config:this.config,getRTT:this.getRTT.bind(this)});return i}closeStream(e){this.client===(e%2==0)?this.numInboundStreams--:this.numOutboundStreams--,this._streams.delete(e)}async keepAliveLoop(){for(this.log?.trace(`muxer keepalive enabled interval=%s`,this.config.keepAliveInterval);;){let e;try{await V(new Promise(t=>{e=setTimeout(t,this.config.keepAliveInterval)}),this.closeController.signal),this.ping().catch(e=>this.log?.error(`ping error: %s`,e))}catch{clearInterval(e);return}}}async handleFrame(e,t){let{streamID:n,type:r,length:i}=e;if(this.log?.trace(`received frame %o`,e),n===0)switch(r){case Y.Ping:this.handlePing(e);return;case Y.GoAway:this.handleGoAway(i);return;default:throw new K(`Invalid frame type`)}else switch(e.type){case Y.Data:case Y.WindowUpdate:await this.handleStreamMessage(e,t);return;default:throw new K(`Invalid frame type`)}}handlePing(e){if(e.flag===X.SYN)this.log?.trace(`received ping request pingId=%s`,e.length),this.sendPing(e.length,X.ACK);else if(e.flag===X.ACK)this.log?.trace(`received ping response pingId=%s`,e.length),this.handlePingResponse(e.length);else throw new K(`Invalid frame flag`)}handlePingResponse(e){if(this.activePing===void 0)throw new es(`ping not requested`);if(this.activePing.id!==e)throw new ts(`ping doesn't match our id`);this.activePing.resolve()}handleGoAway(e){this.log?.trace(`received GoAway reason=%s`,Z[e]??`unknown`),this.remoteGoAway=e;for(let e of this._streams.values())e.reset();this._closeMuxer()}async handleStreamMessage(e,t){let{streamID:n,flag:r,type:i}=e;(r&X.SYN)===X.SYN&&this.incomingStream(n);let a=this._streams.get(n);if(a===void 0){if(i===Y.Data){if(this.log?.(`discarding data for stream id=%s`,n),t===void 0)throw Error(`unreachable`);await t()}else this.log?.trace(`frame for missing stream id=%s`,n);return}switch(i){case Y.WindowUpdate:a.handleWindowUpdate(e);return;case Y.Data:if(t===void 0)throw Error(`unreachable`);await a.handleData(e,t);return;default:throw Error(`unreachable`)}}incomingStream(e){if(this.client!==(e%2==0))throw new q(`Both endpoints are clients`);if(this._streams.has(e))return;if(this.log?.trace(`new incoming stream id=%s`,e),this.localGoAway!==void 0){this.sendFrame({type:Y.WindowUpdate,flag:X.RST,streamID:e,length:0});return}if(this.numInboundStreams>=this.config.maxInboundStreams){this.log?.(`maxIncomingStreams exceeded, forcing stream reset`),this.sendFrame({type:Y.WindowUpdate,flag:X.RST,streamID:e,length:0});return}let t=this._newStream(e,void 0,Q.SYNReceived,`inbound`);this.numInboundStreams++,this._streams.set(e,t),this.onIncomingStream?.(t)}sendFrame(e,t){if(this.log?.trace(`sending frame %o`,e),e.type===Y.Data){if(t===void 0)throw new K(`Invalid frame`);this.source.push(new G(vs(e),t))}else this.source.push(vs(e))}sendPing(e,t=X.SYN){t===X.SYN?this.log?.trace(`sending ping request pingId=%s`,e):this.log?.trace(`sending ping response pingId=%s`,e),this.sendFrame({type:Y.Ping,flag:t,streamID:0,length:e})}sendGoAway(e=Z.NormalTermination){this.log?.(`sending GoAway reason=%s`,Z[e]),this.localGoAway=e,this.sendFrame({type:Y.GoAway,flag:0,streamID:0,length:e})}};function Ns(e){return e!=null&&typeof e.then==`function`}function Ps(e={}){return t=>new js(t,e)}function Fs(){return async function*(e){for await(let t of e)W(t)?yield t.subarray():yield t}}var Is=class{_waiters=new Set;_error;_terminated=!1;get terminated(){return this._terminated}terminate(e){if(this._terminated)return!1;this._terminated=!0,this._error=e;for(let t of this._waiters)t(e);return this._waiters.clear(),!0}async wait(e){if(this._terminated)return{terminated:!0,error:this._error};let t,n=new Promise(e=>{t=t=>e({terminated:!0,error:t}),this._waiters.add(t)}),r=e.then(e=>({result:e}),e=>({error:e}));try{let e=await Promise.race([r,n]);return this._terminated?{terminated:!0,error:this._error}:e}finally{this._waiters.delete(t)}}next(e){return this.wait(e.next())}};function Ls(e){if(Symbol.asyncIterator in e)return e[Symbol.asyncIterator]();let t=e[Symbol.iterator]();return{next:async()=>t.next()}}function Rs(e){e.return&&Promise.resolve(e.return()).catch(()=>void 0)}function zs(e){let t=new Is;return{close:async()=>{t.terminate()&&await e.close()},abort:n=>{t.terminate(n)&&e.abort(n)},source:(async function*(){let n=H(e,Go(),Fs())[Symbol.asyncIterator]();try{for(;;){let e=await t.next(n);if(`terminated`in e){if(e.error)throw e.error;return}if(`error`in e)throw e.error;if(e.result.done)return;yield e.result.value}}finally{Rs(n)}})(),sink:async n=>{let r=Ls(H(n,Wo())),i=(async function*(){for(;;){let e=await t.next(r);if(`terminated`in e){if(e.error)throw e.error;return}if(`error`in e)throw e.error;if(e.result.done||t.terminated)return;yield e.result.value}})();try{let n=await t.wait(e.sink(i));if(`terminated`in n){if(n.error)throw n.error;return}if(`error`in n)throw n.error;await e.closeWrite()}catch(n){let r=n instanceof Error?n:Error(String(n));throw t.terminate(r)&&e.abort(r),r}finally{Rs(r)}}}}function Bs(e){let t=()=>{};return t.enabled=!1,t.color=``,t.diff=0,t.log=()=>{},t.namespace=e,t.destroy=()=>!0,t.extend=()=>t,t.debug=t,t.error=t,t.trace=t,t.newScope=()=>t,t}function Vs(){return{forComponent:Bs}}var Hs=class{_muxer;_server;constructor(e,t){e&&(this._server=e);let n=t?.muxerFactory??Ps({enableKeepAlive:!1,...t?.yamuxParams})({logger:t?.logger??Vs()});this._muxer=n.createStreamMuxer({onIncomingStream:this.handleIncomingStream.bind(this),direction:t?.direction||`outbound`})}get sink(){return this._muxer.sink}get source(){return this._muxer.source}get streams(){return this._muxer.streams}get muxer(){return this._muxer}get server(){return this._server}buildClient(){return new Jo(this.openStream.bind(this))}async openStream(){return zs(await this.muxer.newStream())}buildOpenStreamFunc(){return this.openStream.bind(this)}handleIncomingStream(e){let t=this.server;if(!t)return e.abort(Error(`server not implemented`));t.handlePacketStream(zs(e))}close(e){e?this.muxer.abort(e):this.muxer.close()}},Us=async e=>{if(e.readyState>=2)throw Error(`socket closed`);e.readyState!==1&&await new Promise((t,n)=>{function r(){e.removeEventListener(`open`,i),e.removeEventListener(`error`,a)}function i(){r(),t()}function a(t){r(),n(t.error??Error(`connect ECONNREFUSED ${e.url}`))}e.addEventListener(`open`,i),e.addEventListener(`error`,a)})},Ws=(e,t)=>(t??={},t.closeOnEnd=t.closeOnEnd!==!1,async n=>{for await(let t of n){try{await Us(e)}catch(e){if(e.message===`socket closed`)break;throw e}if(e.readyState===e.CLOSING||e.readyState===e.CLOSED)break;e.send(t)}t.closeOnEnd!=null&&e.readyState<=1&&await new Promise((t,n)=>{e.addEventListener(`close`,e=>{e.wasClean||e.code===1006?t():n(Object.assign(Error(`ws error`),{event:e}))}),setTimeout(()=>{e.close()})})}),Gs=e((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=class{constructor(){this.pullQueue=[],this.pushQueue=[],this.eventHandlers={},this.isPaused=!1,this.isStopped=!1}push(e){if(this.isStopped)return;let t={value:e,done:!1};if(this.pullQueue.length){let e=this.pullQueue.shift();e&&e.resolve(t)}else this.pushQueue.push(Promise.resolve(t)),this.highWaterMark!==void 0&&this.pushQueue.length>=this.highWaterMark&&!this.isPaused&&(this.isPaused=!0,this.eventHandlers.highWater?this.eventHandlers.highWater():console&&console.warn(`EventIterator queue reached ${this.pushQueue.length} items`))}stop(){if(!this.isStopped){this.isStopped=!0,this.remove();for(let e of this.pullQueue)e.resolve({value:void 0,done:!0});this.pullQueue.length=0}}fail(e){if(!this.isStopped){if(this.isStopped=!0,this.remove(),this.pullQueue.length){for(let t of this.pullQueue)t.reject(e);this.pullQueue.length=0}else{let t=Promise.reject(e);t.catch(()=>{}),this.pushQueue.push(t)}}}remove(){Promise.resolve().then(()=>{this.removeCallback&&this.removeCallback()})}[Symbol.asyncIterator](){return{next:e=>{let t=this.pushQueue.shift();return t?(this.lowWaterMark!==void 0&&this.pushQueue.length<=this.lowWaterMark&&this.isPaused&&(this.isPaused=!1,this.eventHandlers.lowWater&&this.eventHandlers.lowWater()),t):this.isStopped?Promise.resolve({value:void 0,done:!0}):new Promise((e,t)=>{this.pullQueue.push({resolve:e,reject:t})})},return:()=>(this.isStopped=!0,this.pushQueue.length=0,this.remove(),Promise.resolve({value:void 0,done:!0}))}}},n=class{constructor(e,{highWaterMark:n=100,lowWaterMark:r=1}={}){let i=new t;i.highWaterMark=n,i.lowWaterMark=r,i.removeCallback=e({push:e=>i.push(e),stop:()=>i.stop(),fail:e=>i.fail(e),on:(e,t)=>{i.eventHandlers[e]=t}})||(()=>{}),this[Symbol.asyncIterator]=()=>i[Symbol.asyncIterator](),Object.freeze(this)}};e.EventIterator=n,e.default=n})),Ks=e((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=Gs();e.EventIterator=t.EventIterator,e.default=t.EventIterator}))();function qs(e){return e instanceof ArrayBuffer||e?.constructor?.name===`ArrayBuffer`&&typeof e?.byteLength==`number`}var Js=e=>{e.binaryType=`arraybuffer`;let t=async()=>{await new Promise((t,n)=>{if(r){t();return}if(i!=null){n(i);return}let a=t=>{e.removeEventListener(`open`,o),e.removeEventListener(`error`,s),t()},o=()=>{a(t)},s=t=>{a(()=>{n(t.error??Error(`connect ECONNREFUSED ${e.url}`))})};e.addEventListener(`open`,o),e.addEventListener(`error`,s)})},n=async function*(){let n=new Ks.EventIterator(({push:t,stop:n,fail:r})=>{let i=e=>{let n=null;if(typeof e.data==`string`)throw Error(`Unsupported string encoding`);qs(e.data)&&(n=new Uint8Array(e.data)),e.data instanceof Uint8Array&&(n=e.data),n!=null&&t(n)},a=e=>{r(e.error??Error(`Socket error`))};return e.addEventListener(`message`,i),e.addEventListener(`error`,a),e.addEventListener(`close`,n),()=>{e.removeEventListener(`message`,i),e.removeEventListener(`error`,a),e.removeEventListener(`close`,n)}},{highWaterMark:1/0});await t();for await(let e of n)yield qs(e)?new Uint8Array(e):e}(),r=e.readyState===1,i;return e.addEventListener(`open`,()=>{r=!0,i=null}),e.addEventListener(`close`,()=>{r=!1,i=null}),e.addEventListener(`error`,t=>{r||(i=t.error??Error(`connect ECONNREFUSED ${e.url}`))}),Object.assign(n,{connected:t})},Ys=(e,t)=>{t??={};let n=Js(e),r=t.remoteAddress,i=t.remotePort;if(e.url!=null)try{let t=new URL(e.url);r=t.hostname,i=parseInt(t.port,10)}catch{}if(r==null||i==null)throw Error(`Remote connection did not have address and/or port`);return{sink:Ws(e,t),source:n,connected:async()=>{await n.connected()},close:async()=>{(e.readyState===e.CONNECTING||e.readyState===e.OPEN)&&await new Promise(t=>{e.addEventListener(`close`,()=>{t()}),e.close()})},destroy:()=>{e.terminate==null?e.close():e.terminate()},remoteAddress:r,remotePort:i,socket:e}};function Xs(e,t){let n=Fo(e.I);return async(r,i,a)=>{let o=B({objectMode:!0});H(o,Io(e.O),i);let s=H(r,n),c;if(e.kind===M.ClientStreaming||e.kind===M.BiDiStreaming)c=s;else for await(let e of s){c=e;break}if(!c)throw Error(`request object was empty`);try{let n=t(c,a.signal,a);if(!n)throw Error(`return value was undefined`);if(e.kind===M.ServerStreaming||e.kind===M.BiDiStreaming)return Oo(n,o);{let e=n;if(!e.then)throw Error(`expected return value to be a Promise`);let t=await e;if(!t)throw Error(`expected non-empty response object`);o.push(t),o.end()}}catch(e){let t=e;throw t?.message||(t=Error(`error calling implementation: `+e)),o.end(),t}}}var Zs=class{service;methods;constructor(e,t){this.service=e,this.methods=t}getServiceID(){return this.service}getMethodIDs(){return Object.keys(this.methods)}async lookupMethod(e,t){return e&&e!==this.service?null:this.methods[t]||null}};function Qs(e,t,n){n||=e.typeName;let r={};for(let n of Object.values(e.methods)){let e=n.name,i=t[e];i&&(i=i.bind(t),r[e]=Xs(n,i))}return new Zs(n,r)}function $s(){return new ec}var ec=class{services={};lookups=[];get lookupMethod(){return this._lookupMethod.bind(this)}register(e){let t=e?.getServiceID();if(!t)throw Error(`service id cannot be empty`);let n=this.services[t]||{},r=e.getMethodIDs();for(let t of r)n[t]=e;this.services[t]=n}registerLookupMethod(e){this.lookups.push(e)}async _lookupMethod(e,t){if(e){let n=await this.lookupViaMap(e,t);if(n)return n}return await this.lookupViaLookups(e,t)}async lookupViaMap(e,t){let n=this.services[e];if(!n)return null;let r=n[t];return r?await r.lookupMethod(e,t):null}async lookupViaLookups(e,t){for(let n of this.lookups){let r=await n(e,t);if(r)return r}return null}};const tc=O({typeName:`rpcstream.RpcStreamInit`,fields:[{no:1,name:`component_id`,kind:`scalar`,T:f.STRING}],packedByDefault:!0}),nc=O({typeName:`rpcstream.RpcAck`,fields:[{no:1,name:`error`,kind:`scalar`,T:f.STRING}],packedByDefault:!0}),rc=O({typeName:`rpcstream.RpcStreamPacket`,fields:[{no:1,name:`init`,kind:`message`,T:()=>tc,oneof:`body`},{no:2,name:`ack`,kind:`message`,T:()=>nc,oneof:`body`},{no:3,name:`data`,kind:`scalar`,T:f.BYTES,oneof:`body`}],packedByDefault:!0}),$=O({typeName:`echo.EchoMsg`,fields:[{no:1,name:`body`,kind:`scalar`,T:f.STRING}],packedByDefault:!0}),ic=k(`google.protobuf.Empty`,!0);({typeName:`echo.Echoer`,methods:{Echo:{name:`Echo`,I:$,O:$,kind:M.Unary},EchoServerStream:{name:`EchoServerStream`,I:$,O:$,kind:M.ServerStreaming},EchoClientStream:{name:`EchoClientStream`,I:$,O:$,kind:M.ClientStreaming},EchoBidiStream:{name:`EchoBidiStream`,I:$,O:$,kind:M.BiDiStreaming},RpcStream:{name:`RpcStream`,I:rc,O:rc,kind:M.BiDiStreaming},DoNothing:{name:`DoNothing`,I:ic,O:ic,kind:M.Unary}}}).typeName;function ac(e){let t=!1,n=!1,r=!1,i,a,o=new Promise(e=>{a=e}),s=new ReadableStream({start(e){i=e}});function c(o){t||(t=!0,a(o),n||(n=!0,o?i.error(o):i.close()),r||(r=!0,e.postMessage(null)),e.removeEventListener(`message`,l),e.close())}function l(e){t||n||(e.data===null?(n=!0,i.close(),r&&c()):e.data instanceof Uint8Array?i.enqueue(e.data):c(Error(`Go MessagePort received a non-byte packet`)))}return e.addEventListener(`message`,l),e.start(),{source:(async function*(){let e=s.getReader();try{for(;;){let t=await e.read();if(t.done)return;yield t.value}}finally{e.releaseLock()}})(),sink:async i=>{let a=Symbol.asyncIterator in i?i[Symbol.asyncIterator]():i[Symbol.iterator](),s=o.then(e=>({error:e}));try{for(;;){let n=await Promise.race([Promise.resolve(a.next()),s]);if(`error`in n){if(n.error)throw n.error;break}if(t||n.done)break;e.postMessage(n.value)}r||(r=!0,e.postMessage(null),n&&c())}catch(e){throw c(e instanceof Error?e:Error(String(e))),e}finally{Promise.resolve(a.return?.()).catch(()=>{})}},close:async()=>c(),abort:c}}const oc=y(`core.sync.node.RuntimeMessage.Kind`,[[0,`KIND_UNKNOWN`],[1,`READY`],[2,`OPEN_STREAM`],[3,`CLOSE`],[4,`CLOSED`],[5,`FAILED`]]),sc=O({typeName:`core.sync.node.RuntimeInit`,fields:[{no:1,name:`directory`,kind:`scalar`,T:f.STRING}],packedByDefault:!0}),cc=O({typeName:`core.sync.node.RuntimeMessage`,fields:[{no:1,name:`kind`,kind:`enum`,T:oc},{no:2,name:`error`,kind:`scalar`,T:f.STRING}],packedByDefault:!0});export{wa as $,St as $i,Or as $n,un as $r,_i as $t,Ya as A,Vt as Ai,Pr as An,fr as Ar,Yr as At,Za as B,P as Bi,Hr as Bn,Fn as Br,Ti as Bt,eo as C,Jt as Ci,wi as Cn,$n as Cr,Ni as Ct,Ua as D,Kt as Di,jr as Dn,lr as Dr,ai as Dt,no as E,Ut as Ei,xi as En,Zn as Er,ui as Et,Ra as F,Ht as Fi,Yi as Fn,Sn as Fr,br as Ft,ja as G,M as Gi,Bi as Gn,Zt as Gr,Ci as Gt,Pa as H,F as Hi,ca as Hn,jn as Hr,ti as Ht,Fa as I,Bt as Ii,Xi as In,Cn as Ir,ra as It,ka as J,A as Ji,Wr as Jn,nn as Jr,aa as Jt,Aa as K,Dt as Ki,zi as Kn,Qt as Kr,Xr as Kt,Ia as L,Nt as Li,Rr as Ln,bn as Lr,ia as Lt,Ga as M,Ft as Mi,Mi as Mn,Vn as Mr,Vi as Mt,Ka as N,Lt as Ni,ri as Nn,Rn as Nr,Hi as Nt,Wa as O,Xt as Oi,Mr as On,ur as Or,oi as Ot,La as P,Rt as Pi,ii as Pn,zn as Pr,yr as Pt,Ta as Q,Ct as Qi,ma as Qn,kn as Qr,Sr as Qt,za as R,Mt as Ri,Ur as Rn,xn as Rr,Oi as Rt,Ja as S,Wt as Si,Di as Sn,Qn as Sr,ei as St,ro as T,Yt as Ti,ya as Tn,Xn as Tr,li as Tt,Ma as U,At as Ui,gr as Un,Mn as Ur,ni as Ut,$a as V,jt as Vi,sa as Vn,An as Vr,Ei as Vt,Na as W,kt as Wi,_r as Wn,Nn as Wr,Si as Wt,Da as X,j as Xi,Wi as Xn,_n as Xr,Er as Xt,Ca as Y,Tt as Yi,Ui as Yn,gn as Yr,oa as Yt,Ea as Z,wt as Zi,pa as Zn,On as Zr,Dr as Zt,B as _,wn as _i,Tr as _n,Yn as _r,qr as _t,Qs as a,on as ai,Gi as an,I as ar,ua as at,Va as b,pn as bi,qi as bn,Hn as br,Vr as bt,Is as c,hn as ci,vi as cn,rr as cr,Qr as ct,Fs as d,In as di,pi as dn,cr as dr,na as dt,k as ea,dn as ei,Ai as en,kr as er,ha as et,Xo as f,Ln as fi,hi as fn,Kn as fr,Zi as ft,H as g,en as gi,wr as gn,Jn as gr,Kr as gt,Io as h,$t as hi,fi as hn,nr as hr,Gr as ht,$s as i,an as ii,ci as in,xr as ir,la as it,Xa as j,zt as ji,ji as jn,Bn as jr,vr as jt,Ha as k,It as ki,Nr as kn,dr as kr,Jr as kt,Rs as l,cn as li,yi as ln,ir as lr,$r as lt,Fo as m,yn as mi,di as mn,tr as mr,Br as mt,cc as n,y as na,Dn as ni,fa as nn,Li as nr,Ar as nt,Ys as o,sn as oi,Ki as on,ar as or,Fi as ot,Jo as p,vn as pi,mi as pn,qn as pr,Qi as pt,Oa as q,Et as qi,zr as qn,tn as qr,Zr as qt,ac as r,f as ra,rn as ri,si as rn,Ri as rr,Fr as rt,Hs as s,mn as si,gi as sn,or as sr,Ii as st,sc as t,O as ta,En as ti,da as tn,Cr as tr,ga as tt,Ls as u,ln as ui,bi as un,sr as ur,ta as ut,R as v,Tn as vi,$i as vn,Wn as vr,va as vt,to as w,Gt as wi,_a as wn,er as wr,Pi as wt,qa as x,qt as xi,Ji as xn,Un as xr,Ir as xt,Ba as y,fn as yi,ea as yn,Gn as yr,ba as yt,Qa as z,Pt as zi,Lr as zn,Pn as zr,ki as zt};
|