@libp2p/daemon-protocol 7.0.4 → 7.0.5

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/dist/index.min.js CHANGED
@@ -1,3 +1,4 @@
1
1
  (function (root, factory) {(typeof module === 'object' && module.exports) ? module.exports = factory() : root.Libp2PDaemonProtocol = factory()}(typeof self !== 'undefined' ? self : this, function () {
2
2
  "use strict";var Libp2PDaemonProtocol=(()=>{var St=Object.defineProperty;var Je=Object.getOwnPropertyDescriptor;var We=Object.getOwnPropertyNames;var Qe=Object.prototype.hasOwnProperty;var E=(r,e)=>{for(var t in e)St(r,t,{get:e[t],enumerable:!0})},Ve=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of We(e))!Qe.call(r,n)&&n!==t&&St(r,n,{get:()=>e[n],enumerable:!(i=Je(e,n))||i.enumerable});return r};var He=r=>Ve(St({},"__esModule",{value:!0}),r);var mr={};E(mr,{ConnManagerRequest:()=>at,ConnectRequest:()=>it,DHTRequest:()=>lt,DHTResponse:()=>dt,DisconnectRequest:()=>ut,ErrorResponse:()=>ct,IdentifyResponse:()=>rt,PSMessage:()=>se,PSRequest:()=>ft,PSResponse:()=>pt,PeerInfo:()=>F,PeerstoreRequest:()=>mt,PeerstoreResponse:()=>xt,Request:()=>ie,Response:()=>oe,StreamHandlerRequest:()=>st,StreamInfo:()=>ht,StreamOpenRequest:()=>ot});function B(r=0){return new Uint8Array(r)}var Ze=Math.pow(2,7),Ye=Math.pow(2,14),qe=Math.pow(2,21),ce=Math.pow(2,28),he=Math.pow(2,35),le=Math.pow(2,42),de=Math.pow(2,49),m=128,O=127;function H(r){if(r<Ze)return 1;if(r<Ye)return 2;if(r<qe)return 3;if(r<ce)return 4;if(r<he)return 5;if(r<le)return 6;if(r<de)return 7;if(Number.MAX_SAFE_INTEGER!=null&&r>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function ae(r,e,t=0){switch(H(r)){case 8:e[t++]=r&255|m,r/=128;case 7:e[t++]=r&255|m,r/=128;case 6:e[t++]=r&255|m,r/=128;case 5:e[t++]=r&255|m,r/=128;case 4:e[t++]=r&255|m,r>>>=7;case 3:e[t++]=r&255|m,r>>>=7;case 2:e[t++]=r&255|m,r>>>=7;case 1:{e[t++]=r&255,r>>>=7;break}default:throw new Error("unreachable")}return e}function ue(r,e){let t=r[e],i=0;if(i+=t&O,t<m||(t=r[e+1],i+=(t&O)<<7,t<m)||(t=r[e+2],i+=(t&O)<<14,t<m)||(t=r[e+3],i+=(t&O)<<21,t<m)||(t=r[e+4],i+=(t&O)*ce,t<m)||(t=r[e+5],i+=(t&O)*he,t<m)||(t=r[e+6],i+=(t&O)*le,t<m)||(t=r[e+7],i+=(t&O)*de,t<m))return i;throw new RangeError("Could not decode varint")}var At=new Float32Array([-0]),P=new Uint8Array(At.buffer);function fe(r,e,t){At[0]=r,e[t]=P[0],e[t+1]=P[1],e[t+2]=P[2],e[t+3]=P[3]}function pe(r,e){return P[0]=r[e],P[1]=r[e+1],P[2]=r[e+2],P[3]=r[e+3],At[0]}var Dt=new Float64Array([-0]),p=new Uint8Array(Dt.buffer);function me(r,e,t){Dt[0]=r,e[t]=p[0],e[t+1]=p[1],e[t+2]=p[2],e[t+3]=p[3],e[t+4]=p[4],e[t+5]=p[5],e[t+6]=p[6],e[t+7]=p[7]}function xe(r,e){return p[0]=r[e],p[1]=r[e+1],p[2]=r[e+2],p[3]=r[e+3],p[4]=r[e+4],p[5]=r[e+5],p[6]=r[e+6],p[7]=r[e+7],Dt[0]}var je=BigInt(Number.MAX_SAFE_INTEGER),tn=BigInt(Number.MIN_SAFE_INTEGER),g=class r{lo;hi;constructor(e,t){this.lo=e|0,this.hi=t|0}toNumber(e=!1){if(!e&&this.hi>>>31>0){let t=~this.lo+1>>>0,i=~this.hi>>>0;return t===0&&(i=i+1>>>0),-(t+i*4294967296)}return this.lo+this.hi*4294967296}toBigInt(e=!1){if(e)return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n);if(this.hi>>>31){let t=~this.lo+1>>>0,i=~this.hi>>>0;return t===0&&(i=i+1>>>0),-(BigInt(t)+(BigInt(i)<<32n))}return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n)}toString(e=!1){return this.toBigInt(e).toString()}zzEncode(){let e=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^e)>>>0,this.lo=(this.lo<<1^e)>>>0,this}zzDecode(){let e=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^e)>>>0,this.hi=(this.hi>>>1^e)>>>0,this}length(){let e=this.lo,t=(this.lo>>>28|this.hi<<4)>>>0,i=this.hi>>>24;return i===0?t===0?e<16384?e<128?1:2:e<2097152?3:4:t<16384?t<128?5:6:t<2097152?7:8:i<128?9:10}static fromBigInt(e){if(e===0n)return G;if(e<je&&e>tn)return this.fromNumber(Number(e));let t=e<0n;t&&(e=-e);let i=e>>32n,n=e-(i<<32n);return t&&(i=~i|0n,n=~n|0n,++n>Ee&&(n=0n,++i>Ee&&(i=0n))),new r(Number(n),Number(i))}static fromNumber(e){if(e===0)return G;let t=e<0;t&&(e=-e);let i=e>>>0,n=(e-i)/4294967296>>>0;return t&&(n=~n>>>0,i=~i>>>0,++i>4294967295&&(i=0,++n>4294967295&&(n=0))),new r(i,n)}static from(e){return typeof e=="number"?r.fromNumber(e):typeof e=="bigint"?r.fromBigInt(e):typeof e=="string"?r.fromBigInt(BigInt(e)):e.low!=null||e.high!=null?new r(e.low>>>0,e.high>>>0):G}},G=new g(0,0);G.toBigInt=function(){return 0n};G.zzEncode=G.zzDecode=function(){return this};G.length=function(){return 1};var Ee=4294967296n;function ge(r){let e=0,t=0;for(let i=0;i<r.length;++i)t=r.charCodeAt(i),t<128?e+=1:t<2048?e+=2:(t&64512)===55296&&(r.charCodeAt(i+1)&64512)===56320?(++i,e+=4):e+=3;return e}function be(r,e,t){if(t-e<1)return"";let n,o=[],s=0,c;for(;e<t;)c=r[e++],c<128?o[s++]=c:c>191&&c<224?o[s++]=(c&31)<<6|r[e++]&63:c>239&&c<365?(c=((c&7)<<18|(r[e++]&63)<<12|(r[e++]&63)<<6|r[e++]&63)-65536,o[s++]=55296+(c>>10),o[s++]=56320+(c&1023)):o[s++]=(c&15)<<12|(r[e++]&63)<<6|r[e++]&63,s>8191&&((n??(n=[])).push(String.fromCharCode.apply(String,o)),s=0);return n!=null?(s>0&&n.push(String.fromCharCode.apply(String,o.slice(0,s))),n.join("")):String.fromCharCode.apply(String,o.slice(0,s))}function Ut(r,e,t){let i=t,n,o;for(let s=0;s<r.length;++s)n=r.charCodeAt(s),n<128?e[t++]=n:n<2048?(e[t++]=n>>6|192,e[t++]=n&63|128):(n&64512)===55296&&((o=r.charCodeAt(s+1))&64512)===56320?(n=65536+((n&1023)<<10)+(o&1023),++s,e[t++]=n>>18|240,e[t++]=n>>12&63|128,e[t++]=n>>6&63|128,e[t++]=n&63|128):(e[t++]=n>>12|224,e[t++]=n>>6&63|128,e[t++]=n&63|128);return t-i}function k(r,e){return RangeError(`index out of range: ${r.pos} + ${e??1} > ${r.len}`)}function bt(r,e){return(r[e-4]|r[e-3]<<8|r[e-2]<<16|r[e-1]<<24)>>>0}var wt=class{buf;pos;len;_slice=Uint8Array.prototype.subarray;constructor(e){this.buf=e,this.pos=0,this.len=e.length}uint32(){let e=4294967295;if(e=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(e=(e|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return e;if((this.pos+=5)>this.len)throw this.pos=this.len,k(this,10);return e}int32(){return this.uint32()|0}sint32(){let e=this.uint32();return e>>>1^-(e&1)|0}bool(){return this.uint32()!==0}fixed32(){if(this.pos+4>this.len)throw k(this,4);return bt(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw k(this,4);return bt(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw k(this,4);let e=pe(this.buf,this.pos);return this.pos+=4,e}double(){if(this.pos+8>this.len)throw k(this,4);let e=xe(this.buf,this.pos);return this.pos+=8,e}bytes(){let e=this.uint32(),t=this.pos,i=this.pos+e;if(i>this.len)throw k(this,e);return this.pos+=e,t===i?new Uint8Array(0):this.buf.subarray(t,i)}string(){let e=this.bytes();return be(e,0,e.length)}skip(e){if(typeof e=="number"){if(this.pos+e>this.len)throw k(this,e);this.pos+=e}else do if(this.pos>=this.len)throw k(this);while((this.buf[this.pos++]&128)!==0);return this}skipType(e){switch(e){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(e=this.uint32()&7)!==4;)this.skipType(e);break;case 5:this.skip(4);break;default:throw Error(`invalid wire type ${e} at offset ${this.pos}`)}return this}readLongVarint(){let e=new g(0,0),t=0;if(this.len-this.pos>4){for(;t<4;++t)if(e.lo=(e.lo|(this.buf[this.pos]&127)<<t*7)>>>0,this.buf[this.pos++]<128)return e;if(e.lo=(e.lo|(this.buf[this.pos]&127)<<28)>>>0,e.hi=(e.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return e;t=0}else{for(;t<3;++t){if(this.pos>=this.len)throw k(this);if(e.lo=(e.lo|(this.buf[this.pos]&127)<<t*7)>>>0,this.buf[this.pos++]<128)return e}return e.lo=(e.lo|(this.buf[this.pos++]&127)<<t*7)>>>0,e}if(this.len-this.pos>4){for(;t<5;++t)if(e.hi=(e.hi|(this.buf[this.pos]&127)<<t*7+3)>>>0,this.buf[this.pos++]<128)return e}else for(;t<5;++t){if(this.pos>=this.len)throw k(this);if(e.hi=(e.hi|(this.buf[this.pos]&127)<<t*7+3)>>>0,this.buf[this.pos++]<128)return e}throw Error("invalid varint encoding")}readFixed64(){if(this.pos+8>this.len)throw k(this,8);let e=bt(this.buf,this.pos+=4),t=bt(this.buf,this.pos+=4);return new g(e,t)}int64(){return this.readLongVarint().toBigInt()}int64Number(){return this.readLongVarint().toNumber()}int64String(){return this.readLongVarint().toString()}uint64(){return this.readLongVarint().toBigInt(!0)}uint64Number(){let e=ue(this.buf,this.pos);return this.pos+=H(e),e}uint64String(){return this.readLongVarint().toString(!0)}sint64(){return this.readLongVarint().zzDecode().toBigInt()}sint64Number(){return this.readLongVarint().zzDecode().toNumber()}sint64String(){return this.readLongVarint().zzDecode().toString()}fixed64(){return this.readFixed64().toBigInt()}fixed64Number(){return this.readFixed64().toNumber()}fixed64String(){return this.readFixed64().toString()}sfixed64(){return this.readFixed64().toBigInt()}sfixed64Number(){return this.readFixed64().toNumber()}sfixed64String(){return this.readFixed64().toString()}};function Ct(r){return new wt(r instanceof Uint8Array?r:r.subarray())}function a(r,e,t){let i=Ct(r);return e.decode(i,void 0,t)}var Ot={};E(Ot,{base10:()=>cn});var wr=new Uint8Array(0);function Ne(r,e){if(r===e)return!0;if(r.byteLength!==e.byteLength)return!1;for(let t=0;t<r.byteLength;t++)if(r[t]!==e[t])return!1;return!0}function C(r){if(r instanceof Uint8Array&&r.constructor.name==="Uint8Array")return r;if(r instanceof ArrayBuffer)return new Uint8Array(r);if(ArrayBuffer.isView(r))return new Uint8Array(r.buffer,r.byteOffset,r.byteLength);throw new Error("Unknown type, must be binary type")}function Ie(r){return new TextEncoder().encode(r)}function ke(r){return new TextDecoder().decode(r)}function en(r,e){if(r.length>=255)throw new TypeError("Alphabet too long");for(var t=new Uint8Array(256),i=0;i<t.length;i++)t[i]=255;for(var n=0;n<r.length;n++){var o=r.charAt(n),s=o.charCodeAt(0);if(t[s]!==255)throw new TypeError(o+" is ambiguous");t[s]=n}var c=r.length,h=r.charAt(0),_=Math.log(c)/Math.log(256),b=Math.log(256)/Math.log(c);function $(l){if(l instanceof Uint8Array||(ArrayBuffer.isView(l)?l=new Uint8Array(l.buffer,l.byteOffset,l.byteLength):Array.isArray(l)&&(l=Uint8Array.from(l))),!(l instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(l.length===0)return"";for(var x=0,R=0,N=0,S=l.length;N!==S&&l[N]===0;)N++,x++;for(var A=(S-N)*b+1>>>0,y=new Uint8Array(A);N!==S;){for(var D=l[N],L=0,I=A-1;(D!==0||L<R)&&I!==-1;I--,L++)D+=256*y[I]>>>0,y[I]=D%c>>>0,D=D/c>>>0;if(D!==0)throw new Error("Non-zero carry");R=L,N++}for(var w=A-R;w!==A&&y[w]===0;)w++;for(var gt=h.repeat(x);w<A;++w)gt+=r.charAt(y[w]);return gt}function Et(l){if(typeof l!="string")throw new TypeError("Expected String");if(l.length===0)return new Uint8Array;var x=0;if(l[x]!==" "){for(var R=0,N=0;l[x]===h;)R++,x++;for(var S=(l.length-x)*_+1>>>0,A=new Uint8Array(S);l[x];){var y=t[l.charCodeAt(x)];if(y===255)return;for(var D=0,L=S-1;(y!==0||D<N)&&L!==-1;L--,D++)y+=c*A[L]>>>0,A[L]=y%256>>>0,y=y/256>>>0;if(y!==0)throw new Error("Non-zero carry");N=D,x++}if(l[x]!==" "){for(var I=S-N;I!==S&&A[I]===0;)I++;for(var w=new Uint8Array(R+(S-I)),gt=R;I!==S;)w[gt++]=A[I++];return w}}}function Ke(l){var x=Et(l);if(x)return x;throw new Error(`Non-${e} character`)}return{encode:$,decodeUnsafe:Et,decode:Ke}}var nn=en,rn=nn,Ae=rn;var Tt=class{name;prefix;baseEncode;constructor(e,t,i){this.name=e,this.prefix=t,this.baseEncode=i}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}},Ft=class{name;prefix;baseDecode;prefixCodePoint;constructor(e,t,i){this.name=e,this.prefix=t;let n=t.codePointAt(0);if(n===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=n,this.baseDecode=i}decode(e){if(typeof e=="string"){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(e)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(e.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(e){return De(this,e)}},Lt=class{decoders;constructor(e){this.decoders=e}or(e){return De(this,e)}decode(e){let t=e[0],i=this.decoders[t];if(i!=null)return i.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}};function De(r,e){return new Lt({...r.decoders??{[r.prefix]:r},...e.decoders??{[e.prefix]:e}})}var Bt=class{name;prefix;baseEncode;baseDecode;encoder;decoder;constructor(e,t,i,n){this.name=e,this.prefix=t,this.baseEncode=i,this.baseDecode=n,this.encoder=new Tt(e,t,i),this.decoder=new Ft(e,t,n)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}};function X({name:r,prefix:e,encode:t,decode:i}){return new Bt(r,e,t,i)}function M({name:r,prefix:e,alphabet:t}){let{encode:i,decode:n}=Ae(t,r);return X({prefix:e,name:r,encode:i,decode:o=>C(n(o))})}function on(r,e,t,i){let n={};for(let b=0;b<e.length;++b)n[e[b]]=b;let o=r.length;for(;r[o-1]==="=";)--o;let s=new Uint8Array(o*t/8|0),c=0,h=0,_=0;for(let b=0;b<o;++b){let $=n[r[b]];if($===void 0)throw new SyntaxError(`Non-${i} character`);h=h<<t|$,c+=t,c>=8&&(c-=8,s[_++]=255&h>>c)}if(c>=t||(255&h<<8-c)!==0)throw new SyntaxError("Unexpected end of data");return s}function sn(r,e,t){let i=e[e.length-1]==="=",n=(1<<t)-1,o="",s=0,c=0;for(let h=0;h<r.length;++h)for(c=c<<8|r[h],s+=8;s>t;)s-=t,o+=e[n&c>>s];if(s!==0&&(o+=e[n&c<<t-s]),i)for(;(o.length*t&7)!==0;)o+="=";return o}function d({name:r,prefix:e,bitsPerChar:t,alphabet:i}){return X({prefix:e,name:r,encode(n){return sn(n,i,t)},decode(n){return on(n,i,t,r)}})}var cn=M({prefix:"9",name:"base10",alphabet:"0123456789"});var Pt={};E(Pt,{base16:()=>hn,base16upper:()=>ln});var hn=d({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),ln=d({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var Mt={};E(Mt,{base2:()=>dn});var dn=d({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Rt={};E(Rt,{base256emoji:()=>mn});var Ue=Array.from("\u{1F680}\u{1FA90}\u2604\u{1F6F0}\u{1F30C}\u{1F311}\u{1F312}\u{1F313}\u{1F314}\u{1F315}\u{1F316}\u{1F317}\u{1F318}\u{1F30D}\u{1F30F}\u{1F30E}\u{1F409}\u2600\u{1F4BB}\u{1F5A5}\u{1F4BE}\u{1F4BF}\u{1F602}\u2764\u{1F60D}\u{1F923}\u{1F60A}\u{1F64F}\u{1F495}\u{1F62D}\u{1F618}\u{1F44D}\u{1F605}\u{1F44F}\u{1F601}\u{1F525}\u{1F970}\u{1F494}\u{1F496}\u{1F499}\u{1F622}\u{1F914}\u{1F606}\u{1F644}\u{1F4AA}\u{1F609}\u263A\u{1F44C}\u{1F917}\u{1F49C}\u{1F614}\u{1F60E}\u{1F607}\u{1F339}\u{1F926}\u{1F389}\u{1F49E}\u270C\u2728\u{1F937}\u{1F631}\u{1F60C}\u{1F338}\u{1F64C}\u{1F60B}\u{1F497}\u{1F49A}\u{1F60F}\u{1F49B}\u{1F642}\u{1F493}\u{1F929}\u{1F604}\u{1F600}\u{1F5A4}\u{1F603}\u{1F4AF}\u{1F648}\u{1F447}\u{1F3B6}\u{1F612}\u{1F92D}\u2763\u{1F61C}\u{1F48B}\u{1F440}\u{1F62A}\u{1F611}\u{1F4A5}\u{1F64B}\u{1F61E}\u{1F629}\u{1F621}\u{1F92A}\u{1F44A}\u{1F973}\u{1F625}\u{1F924}\u{1F449}\u{1F483}\u{1F633}\u270B\u{1F61A}\u{1F61D}\u{1F634}\u{1F31F}\u{1F62C}\u{1F643}\u{1F340}\u{1F337}\u{1F63B}\u{1F613}\u2B50\u2705\u{1F97A}\u{1F308}\u{1F608}\u{1F918}\u{1F4A6}\u2714\u{1F623}\u{1F3C3}\u{1F490}\u2639\u{1F38A}\u{1F498}\u{1F620}\u261D\u{1F615}\u{1F33A}\u{1F382}\u{1F33B}\u{1F610}\u{1F595}\u{1F49D}\u{1F64A}\u{1F639}\u{1F5E3}\u{1F4AB}\u{1F480}\u{1F451}\u{1F3B5}\u{1F91E}\u{1F61B}\u{1F534}\u{1F624}\u{1F33C}\u{1F62B}\u26BD\u{1F919}\u2615\u{1F3C6}\u{1F92B}\u{1F448}\u{1F62E}\u{1F646}\u{1F37B}\u{1F343}\u{1F436}\u{1F481}\u{1F632}\u{1F33F}\u{1F9E1}\u{1F381}\u26A1\u{1F31E}\u{1F388}\u274C\u270A\u{1F44B}\u{1F630}\u{1F928}\u{1F636}\u{1F91D}\u{1F6B6}\u{1F4B0}\u{1F353}\u{1F4A2}\u{1F91F}\u{1F641}\u{1F6A8}\u{1F4A8}\u{1F92C}\u2708\u{1F380}\u{1F37A}\u{1F913}\u{1F619}\u{1F49F}\u{1F331}\u{1F616}\u{1F476}\u{1F974}\u25B6\u27A1\u2753\u{1F48E}\u{1F4B8}\u2B07\u{1F628}\u{1F31A}\u{1F98B}\u{1F637}\u{1F57A}\u26A0\u{1F645}\u{1F61F}\u{1F635}\u{1F44E}\u{1F932}\u{1F920}\u{1F927}\u{1F4CC}\u{1F535}\u{1F485}\u{1F9D0}\u{1F43E}\u{1F352}\u{1F617}\u{1F911}\u{1F30A}\u{1F92F}\u{1F437}\u260E\u{1F4A7}\u{1F62F}\u{1F486}\u{1F446}\u{1F3A4}\u{1F647}\u{1F351}\u2744\u{1F334}\u{1F4A3}\u{1F438}\u{1F48C}\u{1F4CD}\u{1F940}\u{1F922}\u{1F445}\u{1F4A1}\u{1F4A9}\u{1F450}\u{1F4F8}\u{1F47B}\u{1F910}\u{1F92E}\u{1F3BC}\u{1F975}\u{1F6A9}\u{1F34E}\u{1F34A}\u{1F47C}\u{1F48D}\u{1F4E3}\u{1F942}"),an=Ue.reduce((r,e,t)=>(r[t]=e,r),[]),un=Ue.reduce((r,e,t)=>{let i=e.codePointAt(0);if(i==null)throw new Error(`Invalid character: ${e}`);return r[i]=t,r},[]);function fn(r){return r.reduce((e,t)=>(e+=an[t],e),"")}function pn(r){let e=[];for(let t of r){let i=t.codePointAt(0);if(i==null)throw new Error(`Invalid character: ${t}`);let n=un[i];if(n==null)throw new Error(`Non-base256emoji character: ${t}`);e.push(n)}return new Uint8Array(e)}var mn=X({prefix:"\u{1F680}",name:"base256emoji",encode:fn,decode:pn});var Gt={};E(Gt,{base32:()=>K,base32hex:()=>bn,base32hexpad:()=>Nn,base32hexpadupper:()=>In,base32hexupper:()=>yn,base32pad:()=>En,base32padupper:()=>gn,base32upper:()=>xn,base32z:()=>kn});var K=d({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),xn=d({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),En=d({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),gn=d({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),bn=d({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),yn=d({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),Nn=d({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),In=d({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),kn=d({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var vt={};E(vt,{base36:()=>Z,base36upper:()=>Sn});var Z=M({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),Sn=M({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var zt={};E(zt,{base58btc:()=>U,base58flickr:()=>An});var U=M({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),An=M({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var _t={};E(_t,{base64:()=>Dn,base64pad:()=>Un,base64url:()=>wn,base64urlpad:()=>Cn});var Dn=d({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),Un=d({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),wn=d({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),Cn=d({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var $t={};E($t,{base8:()=>Tn});var Tn=d({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var Xt={};E(Xt,{identity:()=>Fn});var Fn=X({prefix:"\0",name:"identity",encode:r=>ke(r),decode:r=>Ie(r)});var Kr=new TextEncoder,Jr=new TextDecoder;var Jt={};E(Jt,{identity:()=>tr});var On=Te,we=128,Pn=127,Mn=~Pn,Rn=Math.pow(2,31);function Te(r,e,t){e=e||[],t=t||0;for(var i=t;r>=Rn;)e[t++]=r&255|we,r/=128;for(;r&Mn;)e[t++]=r&255|we,r>>>=7;return e[t]=r|0,Te.bytes=t-i+1,e}var Gn=Kt,vn=128,Ce=127;function Kt(r,i){var t=0,i=i||0,n=0,o=i,s,c=r.length;do{if(o>=c)throw Kt.bytes=0,new RangeError("Could not decode varint");s=r[o++],t+=n<28?(s&Ce)<<n:(s&Ce)*Math.pow(2,n),n+=7}while(s>=vn);return Kt.bytes=o-i,t}var zn=Math.pow(2,7),_n=Math.pow(2,14),$n=Math.pow(2,21),Xn=Math.pow(2,28),Kn=Math.pow(2,35),Jn=Math.pow(2,42),Wn=Math.pow(2,49),Qn=Math.pow(2,56),Vn=Math.pow(2,63),Hn=function(r){return r<zn?1:r<_n?2:r<$n?3:r<Xn?4:r<Kn?5:r<Jn?6:r<Wn?7:r<Qn?8:r<Vn?9:10},Zn={encode:On,decode:Gn,encodingLength:Hn},Yn=Zn,Y=Yn;function q(r,e=0){return[Y.decode(r,e),Y.decode.bytes]}function J(r,e,t=0){return Y.encode(r,e,t),e}function W(r){return Y.encodingLength(r)}function v(r,e){let t=e.byteLength,i=W(r),n=i+W(t),o=new Uint8Array(n+t);return J(r,o,0),J(t,o,i),o.set(e,n),new Q(r,t,e,o)}function Fe(r){let e=C(r),[t,i]=q(e),[n,o]=q(e.subarray(i)),s=e.subarray(i+o);if(s.byteLength!==n)throw new Error("Incorrect length");return new Q(t,n,s,e)}function Le(r,e){if(r===e)return!0;{let t=e;return r.code===t.code&&r.size===t.size&&t.bytes instanceof Uint8Array&&Ne(r.bytes,t.bytes)}}var Q=class{code;size;digest;bytes;constructor(e,t,i,n){this.code=e,this.size=t,this.digest=i,this.bytes=n}};var Be=0,qn="identity",Oe=C;function jn(r){return v(Be,Oe(r))}var tr={code:Be,name:qn,encode:Oe,digest:jn};var Vt={};E(Vt,{sha256:()=>er,sha512:()=>nr});function Qt({name:r,code:e,encode:t}){return new Wt(r,e,t)}var Wt=class{name;code;encode;constructor(e,t,i){this.name=e,this.code=t,this.encode=i}digest(e){if(e instanceof Uint8Array){let t=this.encode(e);return t instanceof Uint8Array?v(this.code,t):t.then(i=>v(this.code,i))}else throw Error("Unknown type, must be binary type")}};function Me(r){return async e=>new Uint8Array(await crypto.subtle.digest(r,e))}var er=Qt({name:"sha2-256",code:18,encode:Me("SHA-256")}),nr=Qt({name:"sha2-512",code:19,encode:Me("SHA-512")});function Re(r,e){let{bytes:t,version:i}=r;switch(i){case 0:return ir(t,Ht(r),e??U.encoder);default:return or(t,Ht(r),e??K.encoder)}}var Ge=new WeakMap;function Ht(r){let e=Ge.get(r);if(e==null){let t=new Map;return Ge.set(r,t),t}return e}var Nt=class r{code;version;multihash;bytes;"/";constructor(e,t,i,n){this.code=t,this.version=e,this.multihash=i,this.bytes=n,this["/"]=n}get asCID(){return this}get byteOffset(){return this.bytes.byteOffset}get byteLength(){return this.bytes.byteLength}toV0(){switch(this.version){case 0:return this;case 1:{let{code:e,multihash:t}=this;if(e!==tt)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(t.code!==sr)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return r.createV0(t)}default:throw Error(`Can not convert CID version ${this.version} to version 0. This is a bug please report`)}}toV1(){switch(this.version){case 0:{let{code:e,digest:t}=this.multihash,i=v(e,t);return r.createV1(this.code,i)}case 1:return this;default:throw Error(`Can not convert CID version ${this.version} to version 1. This is a bug please report`)}}equals(e){return r.equals(this,e)}static equals(e,t){let i=t;return i!=null&&e.code===i.code&&e.version===i.version&&Le(e.multihash,i.multihash)}toString(e){return Re(this,e)}toJSON(){return{"/":Re(this)}}link(){return this}[Symbol.toStringTag]="CID";[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(e){if(e==null)return null;let t=e;if(t instanceof r)return t;if(t["/"]!=null&&t["/"]===t.bytes||t.asCID===t){let{version:i,code:n,multihash:o,bytes:s}=t;return new r(i,n,o,s??ve(i,n,o.bytes))}else if(t[cr]===!0){let{version:i,multihash:n,code:o}=t,s=Fe(n);return r.create(i,o,s)}else return null}static create(e,t,i){if(typeof t!="number")throw new Error("String codecs are no longer supported");if(!(i.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(e){case 0:{if(t!==tt)throw new Error(`Version 0 CID must use dag-pb (code: ${tt}) block encoding`);return new r(e,t,i,i.bytes)}case 1:{let n=ve(e,t,i.bytes);return new r(e,t,i,n)}default:throw new Error("Invalid version")}}static createV0(e){return r.create(0,tt,e)}static createV1(e,t){return r.create(1,e,t)}static decode(e){let[t,i]=r.decodeFirst(e);if(i.length!==0)throw new Error("Incorrect length");return t}static decodeFirst(e){let t=r.inspectBytes(e),i=t.size-t.multihashSize,n=C(e.subarray(i,i+t.multihashSize));if(n.byteLength!==t.multihashSize)throw new Error("Incorrect length");let o=n.subarray(t.multihashSize-t.digestSize),s=new Q(t.multihashCode,t.digestSize,o,n);return[t.version===0?r.createV0(s):r.createV1(t.codec,s),e.subarray(t.size)]}static inspectBytes(e){let t=0,i=()=>{let[$,Et]=q(e.subarray(t));return t+=Et,$},n=i(),o=tt;if(n===18?(n=0,t=0):o=i(),n!==0&&n!==1)throw new RangeError(`Invalid CID version ${n}`);let s=t,c=i(),h=i(),_=t+h,b=_-s;return{version:n,codec:o,multihashCode:c,digestSize:h,multihashSize:b,size:_}}static parse(e,t){let[i,n]=rr(e,t),o=r.decode(n);if(o.version===0&&e[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return Ht(o).set(i,e),o}};function rr(r,e){switch(r[0]){case"Q":{let t=e??U;return[U.prefix,t.decode(`${U.prefix}${r}`)]}case U.prefix:{let t=e??U;return[U.prefix,t.decode(r)]}case K.prefix:{let t=e??K;return[K.prefix,t.decode(r)]}case Z.prefix:{let t=e??Z;return[Z.prefix,t.decode(r)]}default:{if(e==null)throw Error("To parse non base32, base36 or base58btc encoded CID multibase decoder must be provided");return[r[0],e.decode(r)]}}}function ir(r,e,t){let{prefix:i}=t;if(i!==U.prefix)throw Error(`Cannot string encode V0 in ${t.name} encoding`);let n=e.get(i);if(n==null){let o=t.encode(r).slice(1);return e.set(i,o),o}else return n}function or(r,e,t){let{prefix:i}=t,n=e.get(i);if(n==null){let o=t.encode(r);return e.set(i,o),o}else return n}var tt=112,sr=18;function ve(r,e,t){let i=W(r),n=i+W(e),o=new Uint8Array(n+t.byteLength);return J(r,o,0),J(e,o,i),o.set(t,n),o}var cr=Symbol.for("@ipld/js-cid/CID");var Zt={...Xt,...Mt,...$t,...Ot,...Pt,...Gt,...vt,...zt,..._t,...Rt},fi={...Vt,...Jt};function _e(r,e,t,i){return{name:r,prefix:e,encoder:{name:r,prefix:e,encode:t},decoder:{decode:i}}}var ze=_e("utf8","u",r=>"u"+new TextDecoder("utf8").decode(r),r=>new TextEncoder().encode(r.substring(1))),Yt=_e("ascii","a",r=>{let e="a";for(let t=0;t<r.length;t++)e+=String.fromCharCode(r[t]);return e},r=>{r=r.substring(1);let e=B(r.length);for(let t=0;t<r.length;t++)e[t]=r.charCodeAt(t);return e}),hr={utf8:ze,"utf-8":ze,hex:Zt.base16,latin1:Yt,ascii:Yt,binary:Yt,...Zt},$e=hr;function Xe(r,e="utf8"){let t=$e[e];if(t==null)throw new Error(`Unsupported encoding "${e}"`);return t.decoder.decode(`${t.prefix}${r}`)}function qt(r){let e=r??8192,t=e>>>1,i,n=e;return function(s){if(s<1||s>t)return B(s);n+s>e&&(i=B(e),n=0);let c=i.subarray(n,n+=s);return(n&7)!==0&&(n=(n|7)+1),c}}var z=class{fn;len;next;val;constructor(e,t,i){this.fn=e,this.len=t,this.next=void 0,this.val=i}};function jt(){}var ee=class{head;tail;len;next;constructor(e){this.head=e.head,this.tail=e.tail,this.len=e.len,this.next=e.states}},lr=qt();function dr(r){return globalThis.Buffer!=null?B(r):lr(r)}var nt=class{len;head;tail;states;constructor(){this.len=0,this.head=new z(jt,0,0),this.tail=this.head,this.states=null}_push(e,t,i){return this.tail=this.tail.next=new z(e,t,i),this.len+=t,this}uint32(e){return this.len+=(this.tail=this.tail.next=new ne((e=e>>>0)<128?1:e<16384?2:e<2097152?3:e<268435456?4:5,e)).len,this}int32(e){return e<0?this._push(It,10,g.fromNumber(e)):this.uint32(e)}sint32(e){return this.uint32((e<<1^e>>31)>>>0)}uint64(e){let t=g.fromBigInt(e);return this._push(It,t.length(),t)}uint64Number(e){return this._push(ae,H(e),e)}uint64String(e){return this.uint64(BigInt(e))}int64(e){return this.uint64(e)}int64Number(e){return this.uint64Number(e)}int64String(e){return this.uint64String(e)}sint64(e){let t=g.fromBigInt(e).zzEncode();return this._push(It,t.length(),t)}sint64Number(e){let t=g.fromNumber(e).zzEncode();return this._push(It,t.length(),t)}sint64String(e){return this.sint64(BigInt(e))}bool(e){return this._push(te,1,e?1:0)}fixed32(e){return this._push(et,4,e>>>0)}sfixed32(e){return this.fixed32(e)}fixed64(e){let t=g.fromBigInt(e);return this._push(et,4,t.lo)._push(et,4,t.hi)}fixed64Number(e){let t=g.fromNumber(e);return this._push(et,4,t.lo)._push(et,4,t.hi)}fixed64String(e){return this.fixed64(BigInt(e))}sfixed64(e){return this.fixed64(e)}sfixed64Number(e){return this.fixed64Number(e)}sfixed64String(e){return this.fixed64String(e)}float(e){return this._push(fe,4,e)}double(e){return this._push(me,8,e)}bytes(e){let t=e.length>>>0;return t===0?this._push(te,1,0):this.uint32(t)._push(ur,t,e)}string(e){let t=ge(e);return t!==0?this.uint32(t)._push(Ut,t,e):this._push(te,1,0)}fork(){return this.states=new ee(this),this.head=this.tail=new z(jt,0,0),this.len=0,this}reset(){return this.states!=null?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new z(jt,0,0),this.len=0),this}ldelim(){let e=this.head,t=this.tail,i=this.len;return this.reset().uint32(i),i!==0&&(this.tail.next=e.next,this.tail=t,this.len+=i),this}finish(){let e=this.head.next,t=dr(this.len),i=0;for(;e!=null;)e.fn(e.val,t,i),i+=e.len,e=e.next;return t}};function te(r,e,t){e[t]=r&255}function ar(r,e,t){for(;r>127;)e[t++]=r&127|128,r>>>=7;e[t]=r}var ne=class extends z{next;constructor(e,t){super(ar,e,t),this.next=void 0}};function It(r,e,t){for(;r.hi!==0;)e[t++]=r.lo&127|128,r.lo=(r.lo>>>7|r.hi<<25)>>>0,r.hi>>>=7;for(;r.lo>127;)e[t++]=r.lo&127|128,r.lo=r.lo>>>7;e[t++]=r.lo}function et(r,e,t){e[t]=r&255,e[t+1]=r>>>8&255,e[t+2]=r>>>16&255,e[t+3]=r>>>24}function ur(r,e,t){e.set(r,t)}globalThis.Buffer!=null&&(nt.prototype.bytes=function(r){let e=r.length>>>0;return this.uint32(e),e>0&&this._push(fr,e,r),this},nt.prototype.string=function(r){let e=globalThis.Buffer.byteLength(r);return this.uint32(e),e>0&&this._push(pr,e,r),this});function fr(r,e,t){e.set(r,t)}function pr(r,e,t){r.length<40?Ut(r,e,t):e.utf8Write!=null?e.utf8Write(r,t):e.set(Xe(r),t)}function re(){return new nt}function u(r,e){let t=re();return e.encode(r,t,{lengthDelimited:!1}),t.finish()}var V;(function(r){r[r.VARINT=0]="VARINT",r[r.BIT64=1]="BIT64",r[r.LENGTH_DELIMITED=2]="LENGTH_DELIMITED",r[r.START_GROUP=3]="START_GROUP",r[r.END_GROUP=4]="END_GROUP",r[r.BIT32=5]="BIT32"})(V||(V={}));function kt(r,e,t,i){return{name:r,type:e,encode:t,decode:i}}function T(r){function e(n){if(r[n.toString()]==null)throw new Error("Invalid enum value");return r[n]}let t=function(o,s){let c=e(o);s.int32(c)},i=function(o){let s=o.int32();return e(s)};return kt("enum",V.VARINT,t,i)}function f(r,e){return kt("message",V.LENGTH_DELIMITED,r,e)}var ie;(function(r){let e;(function(n){n.IDENTIFY="IDENTIFY",n.CONNECT="CONNECT",n.STREAM_OPEN="STREAM_OPEN",n.STREAM_HANDLER="STREAM_HANDLER",n.DHT="DHT",n.LIST_PEERS="LIST_PEERS",n.CONNMANAGER="CONNMANAGER",n.DISCONNECT="DISCONNECT",n.PUBSUB="PUBSUB",n.PEERSTORE="PEERSTORE"})(e=r.Type||(r.Type={}));let t;(function(n){n[n.IDENTIFY=0]="IDENTIFY",n[n.CONNECT=1]="CONNECT",n[n.STREAM_OPEN=2]="STREAM_OPEN",n[n.STREAM_HANDLER=3]="STREAM_HANDLER",n[n.DHT=4]="DHT",n[n.LIST_PEERS=5]="LIST_PEERS",n[n.CONNMANAGER=6]="CONNMANAGER",n[n.DISCONNECT=7]="DISCONNECT",n[n.PUBSUB=8]="PUBSUB",n[n.PEERSTORE=9]="PEERSTORE"})(t||(t={})),function(n){n.codec=()=>T(t)}(e=r.Type||(r.Type={}));let i;r.codec=()=>(i==null&&(i=f((n,o,s={})=>{s.lengthDelimited!==!1&&o.fork(),n.type!=null&&(o.uint32(8),r.Type.codec().encode(n.type,o)),n.connect!=null&&(o.uint32(18),it.codec().encode(n.connect,o)),n.streamOpen!=null&&(o.uint32(26),ot.codec().encode(n.streamOpen,o)),n.streamHandler!=null&&(o.uint32(34),st.codec().encode(n.streamHandler,o)),n.dht!=null&&(o.uint32(42),lt.codec().encode(n.dht,o)),n.connManager!=null&&(o.uint32(50),at.codec().encode(n.connManager,o)),n.disconnect!=null&&(o.uint32(58),ut.codec().encode(n.disconnect,o)),n.pubsub!=null&&(o.uint32(66),ft.codec().encode(n.pubsub,o)),n.peerStore!=null&&(o.uint32(74),mt.codec().encode(n.peerStore,o)),s.lengthDelimited!==!1&&o.ldelim()},(n,o)=>{let s={},c=o==null?n.len:n.pos+o;for(;n.pos<c;){let h=n.uint32();switch(h>>>3){case 1:s.type=r.Type.codec().decode(n);break;case 2:s.connect=it.codec().decode(n,n.uint32());break;case 3:s.streamOpen=ot.codec().decode(n,n.uint32());break;case 4:s.streamHandler=st.codec().decode(n,n.uint32());break;case 5:s.dht=lt.codec().decode(n,n.uint32());break;case 6:s.connManager=at.codec().decode(n,n.uint32());break;case 7:s.disconnect=ut.codec().decode(n,n.uint32());break;case 8:s.pubsub=ft.codec().decode(n,n.uint32());break;case 9:s.peerStore=mt.codec().decode(n,n.uint32());break;default:n.skipType(h&7);break}}return s})),i),r.encode=n=>u(n,r.codec()),r.decode=n=>a(n,r.codec())})(ie||(ie={}));var oe;(function(r){let e;(function(n){n.OK="OK",n.ERROR="ERROR"})(e=r.Type||(r.Type={}));let t;(function(n){n[n.OK=0]="OK",n[n.ERROR=1]="ERROR"})(t||(t={})),function(n){n.codec=()=>T(t)}(e=r.Type||(r.Type={}));let i;r.codec=()=>(i==null&&(i=f((n,o,s={})=>{if(s.lengthDelimited!==!1&&o.fork(),n.type!=null&&(o.uint32(8),r.Type.codec().encode(n.type,o)),n.error!=null&&(o.uint32(18),ct.codec().encode(n.error,o)),n.streamInfo!=null&&(o.uint32(26),ht.codec().encode(n.streamInfo,o)),n.identify!=null&&(o.uint32(34),rt.codec().encode(n.identify,o)),n.dht!=null&&(o.uint32(42),dt.codec().encode(n.dht,o)),n.peers!=null)for(let c of n.peers)o.uint32(50),F.codec().encode(c,o);n.pubsub!=null&&(o.uint32(58),pt.codec().encode(n.pubsub,o)),n.peerStore!=null&&(o.uint32(66),xt.codec().encode(n.peerStore,o)),s.lengthDelimited!==!1&&o.ldelim()},(n,o)=>{let s={peers:[]},c=o==null?n.len:n.pos+o;for(;n.pos<c;){let h=n.uint32();switch(h>>>3){case 1:s.type=r.Type.codec().decode(n);break;case 2:s.error=ct.codec().decode(n,n.uint32());break;case 3:s.streamInfo=ht.codec().decode(n,n.uint32());break;case 4:s.identify=rt.codec().decode(n,n.uint32());break;case 5:s.dht=dt.codec().decode(n,n.uint32());break;case 6:s.peers.push(F.codec().decode(n,n.uint32()));break;case 7:s.pubsub=pt.codec().decode(n,n.uint32());break;case 8:s.peerStore=xt.codec().decode(n,n.uint32());break;default:n.skipType(h&7);break}}return s})),i),r.encode=n=>u(n,r.codec()),r.decode=n=>a(n,r.codec())})(oe||(oe={}));var rt;(function(r){let e;r.codec=()=>(e==null&&(e=f((t,i,n={})=>{if(n.lengthDelimited!==!1&&i.fork(),t.id!=null&&t.id.byteLength>0&&(i.uint32(10),i.bytes(t.id)),t.addrs!=null)for(let o of t.addrs)i.uint32(18),i.bytes(o);n.lengthDelimited!==!1&&i.ldelim()},(t,i)=>{let n={id:new Uint8Array(0),addrs:[]},o=i==null?t.len:t.pos+i;for(;t.pos<o;){let s=t.uint32();switch(s>>>3){case 1:n.id=t.bytes();break;case 2:n.addrs.push(t.bytes());break;default:t.skipType(s&7);break}}return n})),e),r.encode=t=>u(t,r.codec()),r.decode=t=>a(t,r.codec())})(rt||(rt={}));var it;(function(r){let e;r.codec=()=>(e==null&&(e=f((t,i,n={})=>{if(n.lengthDelimited!==!1&&i.fork(),t.peer!=null&&t.peer.byteLength>0&&(i.uint32(10),i.bytes(t.peer)),t.addrs!=null)for(let o of t.addrs)i.uint32(18),i.bytes(o);t.timeout!=null&&(i.uint32(24),i.int64(t.timeout)),n.lengthDelimited!==!1&&i.ldelim()},(t,i)=>{let n={peer:new Uint8Array(0),addrs:[]},o=i==null?t.len:t.pos+i;for(;t.pos<o;){let s=t.uint32();switch(s>>>3){case 1:n.peer=t.bytes();break;case 2:n.addrs.push(t.bytes());break;case 3:n.timeout=t.int64();break;default:t.skipType(s&7);break}}return n})),e),r.encode=t=>u(t,r.codec()),r.decode=t=>a(t,r.codec())})(it||(it={}));var ot;(function(r){let e;r.codec=()=>(e==null&&(e=f((t,i,n={})=>{if(n.lengthDelimited!==!1&&i.fork(),t.peer!=null&&t.peer.byteLength>0&&(i.uint32(10),i.bytes(t.peer)),t.proto!=null)for(let o of t.proto)i.uint32(18),i.string(o);t.timeout!=null&&(i.uint32(24),i.int64(t.timeout)),n.lengthDelimited!==!1&&i.ldelim()},(t,i)=>{let n={peer:new Uint8Array(0),proto:[]},o=i==null?t.len:t.pos+i;for(;t.pos<o;){let s=t.uint32();switch(s>>>3){case 1:n.peer=t.bytes();break;case 2:n.proto.push(t.string());break;case 3:n.timeout=t.int64();break;default:t.skipType(s&7);break}}return n})),e),r.encode=t=>u(t,r.codec()),r.decode=t=>a(t,r.codec())})(ot||(ot={}));var st;(function(r){let e;r.codec=()=>(e==null&&(e=f((t,i,n={})=>{if(n.lengthDelimited!==!1&&i.fork(),t.addr!=null&&t.addr.byteLength>0&&(i.uint32(10),i.bytes(t.addr)),t.proto!=null)for(let o of t.proto)i.uint32(18),i.string(o);n.lengthDelimited!==!1&&i.ldelim()},(t,i)=>{let n={addr:new Uint8Array(0),proto:[]},o=i==null?t.len:t.pos+i;for(;t.pos<o;){let s=t.uint32();switch(s>>>3){case 1:n.addr=t.bytes();break;case 2:n.proto.push(t.string());break;default:t.skipType(s&7);break}}return n})),e),r.encode=t=>u(t,r.codec()),r.decode=t=>a(t,r.codec())})(st||(st={}));var ct;(function(r){let e;r.codec=()=>(e==null&&(e=f((t,i,n={})=>{n.lengthDelimited!==!1&&i.fork(),t.msg!=null&&t.msg!==""&&(i.uint32(10),i.string(t.msg)),n.lengthDelimited!==!1&&i.ldelim()},(t,i)=>{let n={msg:""},o=i==null?t.len:t.pos+i;for(;t.pos<o;){let s=t.uint32();switch(s>>>3){case 1:n.msg=t.string();break;default:t.skipType(s&7);break}}return n})),e),r.encode=t=>u(t,r.codec()),r.decode=t=>a(t,r.codec())})(ct||(ct={}));var ht;(function(r){let e;r.codec=()=>(e==null&&(e=f((t,i,n={})=>{n.lengthDelimited!==!1&&i.fork(),t.peer!=null&&t.peer.byteLength>0&&(i.uint32(10),i.bytes(t.peer)),t.addr!=null&&t.addr.byteLength>0&&(i.uint32(18),i.bytes(t.addr)),t.proto!=null&&t.proto!==""&&(i.uint32(26),i.string(t.proto)),n.lengthDelimited!==!1&&i.ldelim()},(t,i)=>{let n={peer:new Uint8Array(0),addr:new Uint8Array(0),proto:""},o=i==null?t.len:t.pos+i;for(;t.pos<o;){let s=t.uint32();switch(s>>>3){case 1:n.peer=t.bytes();break;case 2:n.addr=t.bytes();break;case 3:n.proto=t.string();break;default:t.skipType(s&7);break}}return n})),e),r.encode=t=>u(t,r.codec()),r.decode=t=>a(t,r.codec())})(ht||(ht={}));var lt;(function(r){let e;(function(n){n.FIND_PEER="FIND_PEER",n.FIND_PEERS_CONNECTED_TO_PEER="FIND_PEERS_CONNECTED_TO_PEER",n.FIND_PROVIDERS="FIND_PROVIDERS",n.GET_CLOSEST_PEERS="GET_CLOSEST_PEERS",n.GET_PUBLIC_KEY="GET_PUBLIC_KEY",n.GET_VALUE="GET_VALUE",n.SEARCH_VALUE="SEARCH_VALUE",n.PUT_VALUE="PUT_VALUE",n.PROVIDE="PROVIDE"})(e=r.Type||(r.Type={}));let t;(function(n){n[n.FIND_PEER=0]="FIND_PEER",n[n.FIND_PEERS_CONNECTED_TO_PEER=1]="FIND_PEERS_CONNECTED_TO_PEER",n[n.FIND_PROVIDERS=2]="FIND_PROVIDERS",n[n.GET_CLOSEST_PEERS=3]="GET_CLOSEST_PEERS",n[n.GET_PUBLIC_KEY=4]="GET_PUBLIC_KEY",n[n.GET_VALUE=5]="GET_VALUE",n[n.SEARCH_VALUE=6]="SEARCH_VALUE",n[n.PUT_VALUE=7]="PUT_VALUE",n[n.PROVIDE=8]="PROVIDE"})(t||(t={})),function(n){n.codec=()=>T(t)}(e=r.Type||(r.Type={}));let i;r.codec=()=>(i==null&&(i=f((n,o,s={})=>{s.lengthDelimited!==!1&&o.fork(),n.type!=null&&(o.uint32(8),r.Type.codec().encode(n.type,o)),n.peer!=null&&(o.uint32(18),o.bytes(n.peer)),n.cid!=null&&(o.uint32(26),o.bytes(n.cid)),n.key!=null&&(o.uint32(34),o.bytes(n.key)),n.value!=null&&(o.uint32(42),o.bytes(n.value)),n.count!=null&&(o.uint32(48),o.int32(n.count)),n.timeout!=null&&(o.uint32(56),o.int64(n.timeout)),s.lengthDelimited!==!1&&o.ldelim()},(n,o)=>{let s={},c=o==null?n.len:n.pos+o;for(;n.pos<c;){let h=n.uint32();switch(h>>>3){case 1:s.type=r.Type.codec().decode(n);break;case 2:s.peer=n.bytes();break;case 3:s.cid=n.bytes();break;case 4:s.key=n.bytes();break;case 5:s.value=n.bytes();break;case 6:s.count=n.int32();break;case 7:s.timeout=n.int64();break;default:n.skipType(h&7);break}}return s})),i),r.encode=n=>u(n,r.codec()),r.decode=n=>a(n,r.codec())})(lt||(lt={}));var dt;(function(r){let e;(function(n){n.BEGIN="BEGIN",n.VALUE="VALUE",n.END="END"})(e=r.Type||(r.Type={}));let t;(function(n){n[n.BEGIN=0]="BEGIN",n[n.VALUE=1]="VALUE",n[n.END=2]="END"})(t||(t={})),function(n){n.codec=()=>T(t)}(e=r.Type||(r.Type={}));let i;r.codec=()=>(i==null&&(i=f((n,o,s={})=>{s.lengthDelimited!==!1&&o.fork(),n.type!=null&&(o.uint32(8),r.Type.codec().encode(n.type,o)),n.peer!=null&&(o.uint32(18),F.codec().encode(n.peer,o)),n.value!=null&&(o.uint32(26),o.bytes(n.value)),s.lengthDelimited!==!1&&o.ldelim()},(n,o)=>{let s={},c=o==null?n.len:n.pos+o;for(;n.pos<c;){let h=n.uint32();switch(h>>>3){case 1:s.type=r.Type.codec().decode(n);break;case 2:s.peer=F.codec().decode(n,n.uint32());break;case 3:s.value=n.bytes();break;default:n.skipType(h&7);break}}return s})),i),r.encode=n=>u(n,r.codec()),r.decode=n=>a(n,r.codec())})(dt||(dt={}));var F;(function(r){let e;r.codec=()=>(e==null&&(e=f((t,i,n={})=>{if(n.lengthDelimited!==!1&&i.fork(),t.id!=null&&t.id.byteLength>0&&(i.uint32(10),i.bytes(t.id)),t.addrs!=null)for(let o of t.addrs)i.uint32(18),i.bytes(o);n.lengthDelimited!==!1&&i.ldelim()},(t,i)=>{let n={id:new Uint8Array(0),addrs:[]},o=i==null?t.len:t.pos+i;for(;t.pos<o;){let s=t.uint32();switch(s>>>3){case 1:n.id=t.bytes();break;case 2:n.addrs.push(t.bytes());break;default:t.skipType(s&7);break}}return n})),e),r.encode=t=>u(t,r.codec()),r.decode=t=>a(t,r.codec())})(F||(F={}));var at;(function(r){let e;(function(n){n.TAG_PEER="TAG_PEER",n.UNTAG_PEER="UNTAG_PEER",n.TRIM="TRIM"})(e=r.Type||(r.Type={}));let t;(function(n){n[n.TAG_PEER=0]="TAG_PEER",n[n.UNTAG_PEER=1]="UNTAG_PEER",n[n.TRIM=2]="TRIM"})(t||(t={})),function(n){n.codec=()=>T(t)}(e=r.Type||(r.Type={}));let i;r.codec=()=>(i==null&&(i=f((n,o,s={})=>{s.lengthDelimited!==!1&&o.fork(),n.type!=null&&(o.uint32(8),r.Type.codec().encode(n.type,o)),n.peer!=null&&(o.uint32(18),o.bytes(n.peer)),n.tag!=null&&(o.uint32(26),o.string(n.tag)),n.weight!=null&&(o.uint32(32),o.int64(n.weight)),s.lengthDelimited!==!1&&o.ldelim()},(n,o)=>{let s={},c=o==null?n.len:n.pos+o;for(;n.pos<c;){let h=n.uint32();switch(h>>>3){case 1:s.type=r.Type.codec().decode(n);break;case 2:s.peer=n.bytes();break;case 3:s.tag=n.string();break;case 4:s.weight=n.int64();break;default:n.skipType(h&7);break}}return s})),i),r.encode=n=>u(n,r.codec()),r.decode=n=>a(n,r.codec())})(at||(at={}));var ut;(function(r){let e;r.codec=()=>(e==null&&(e=f((t,i,n={})=>{n.lengthDelimited!==!1&&i.fork(),t.peer!=null&&t.peer.byteLength>0&&(i.uint32(10),i.bytes(t.peer)),n.lengthDelimited!==!1&&i.ldelim()},(t,i)=>{let n={peer:new Uint8Array(0)},o=i==null?t.len:t.pos+i;for(;t.pos<o;){let s=t.uint32();switch(s>>>3){case 1:n.peer=t.bytes();break;default:t.skipType(s&7);break}}return n})),e),r.encode=t=>u(t,r.codec()),r.decode=t=>a(t,r.codec())})(ut||(ut={}));var ft;(function(r){let e;(function(n){n.GET_TOPICS="GET_TOPICS",n.LIST_PEERS="LIST_PEERS",n.PUBLISH="PUBLISH",n.SUBSCRIBE="SUBSCRIBE"})(e=r.Type||(r.Type={}));let t;(function(n){n[n.GET_TOPICS=0]="GET_TOPICS",n[n.LIST_PEERS=1]="LIST_PEERS",n[n.PUBLISH=2]="PUBLISH",n[n.SUBSCRIBE=3]="SUBSCRIBE"})(t||(t={})),function(n){n.codec=()=>T(t)}(e=r.Type||(r.Type={}));let i;r.codec=()=>(i==null&&(i=f((n,o,s={})=>{s.lengthDelimited!==!1&&o.fork(),n.type!=null&&(o.uint32(8),r.Type.codec().encode(n.type,o)),n.topic!=null&&(o.uint32(18),o.string(n.topic)),n.data!=null&&(o.uint32(26),o.bytes(n.data)),s.lengthDelimited!==!1&&o.ldelim()},(n,o)=>{let s={},c=o==null?n.len:n.pos+o;for(;n.pos<c;){let h=n.uint32();switch(h>>>3){case 1:s.type=r.Type.codec().decode(n);break;case 2:s.topic=n.string();break;case 3:s.data=n.bytes();break;default:n.skipType(h&7);break}}return s})),i),r.encode=n=>u(n,r.codec()),r.decode=n=>a(n,r.codec())})(ft||(ft={}));var se;(function(r){let e;r.codec=()=>(e==null&&(e=f((t,i,n={})=>{if(n.lengthDelimited!==!1&&i.fork(),t.from!=null&&(i.uint32(10),i.bytes(t.from)),t.data!=null&&(i.uint32(18),i.bytes(t.data)),t.seqno!=null&&(i.uint32(26),i.bytes(t.seqno)),t.topicIDs!=null)for(let o of t.topicIDs)i.uint32(34),i.string(o);t.signature!=null&&(i.uint32(42),i.bytes(t.signature)),t.key!=null&&(i.uint32(50),i.bytes(t.key)),n.lengthDelimited!==!1&&i.ldelim()},(t,i)=>{let n={topicIDs:[]},o=i==null?t.len:t.pos+i;for(;t.pos<o;){let s=t.uint32();switch(s>>>3){case 1:n.from=t.bytes();break;case 2:n.data=t.bytes();break;case 3:n.seqno=t.bytes();break;case 4:n.topicIDs.push(t.string());break;case 5:n.signature=t.bytes();break;case 6:n.key=t.bytes();break;default:t.skipType(s&7);break}}return n})),e),r.encode=t=>u(t,r.codec()),r.decode=t=>a(t,r.codec())})(se||(se={}));var pt;(function(r){let e;r.codec=()=>(e==null&&(e=f((t,i,n={})=>{if(n.lengthDelimited!==!1&&i.fork(),t.topics!=null)for(let o of t.topics)i.uint32(10),i.string(o);if(t.peerIDs!=null)for(let o of t.peerIDs)i.uint32(18),i.bytes(o);n.lengthDelimited!==!1&&i.ldelim()},(t,i)=>{let n={topics:[],peerIDs:[]},o=i==null?t.len:t.pos+i;for(;t.pos<o;){let s=t.uint32();switch(s>>>3){case 1:n.topics.push(t.string());break;case 2:n.peerIDs.push(t.bytes());break;default:t.skipType(s&7);break}}return n})),e),r.encode=t=>u(t,r.codec()),r.decode=t=>a(t,r.codec())})(pt||(pt={}));var mt;(function(r){let e;(function(n){n.UNSPECIFIED="UNSPECIFIED",n.GET_PROTOCOLS="GET_PROTOCOLS",n.GET_PEER_INFO="GET_PEER_INFO"})(e=r.Type||(r.Type={}));let t;(function(n){n[n.UNSPECIFIED=0]="UNSPECIFIED",n[n.GET_PROTOCOLS=1]="GET_PROTOCOLS",n[n.GET_PEER_INFO=2]="GET_PEER_INFO"})(t||(t={})),function(n){n.codec=()=>T(t)}(e=r.Type||(r.Type={}));let i;r.codec=()=>(i==null&&(i=f((n,o,s={})=>{if(s.lengthDelimited!==!1&&o.fork(),n.type!=null&&(o.uint32(8),r.Type.codec().encode(n.type,o)),n.id!=null&&(o.uint32(18),o.bytes(n.id)),n.protos!=null)for(let c of n.protos)o.uint32(26),o.string(c);s.lengthDelimited!==!1&&o.ldelim()},(n,o)=>{let s={protos:[]},c=o==null?n.len:n.pos+o;for(;n.pos<c;){let h=n.uint32();switch(h>>>3){case 1:s.type=r.Type.codec().decode(n);break;case 2:s.id=n.bytes();break;case 3:s.protos.push(n.string());break;default:n.skipType(h&7);break}}return s})),i),r.encode=n=>u(n,r.codec()),r.decode=n=>a(n,r.codec())})(mt||(mt={}));var xt;(function(r){let e;r.codec=()=>(e==null&&(e=f((t,i,n={})=>{if(n.lengthDelimited!==!1&&i.fork(),t.peer!=null&&(i.uint32(10),F.codec().encode(t.peer,i)),t.protos!=null)for(let o of t.protos)i.uint32(18),i.string(o);n.lengthDelimited!==!1&&i.ldelim()},(t,i)=>{let n={protos:[]},o=i==null?t.len:t.pos+i;for(;t.pos<o;){let s=t.uint32();switch(s>>>3){case 1:n.peer=F.codec().decode(t,t.uint32());break;case 2:n.protos.push(t.string());break;default:t.skipType(s&7);break}}return n})),e),r.encode=t=>u(t,r.codec()),r.decode=t=>a(t,r.codec())})(xt||(xt={}));return He(mr);})();
3
3
  return Libp2PDaemonProtocol}));
4
+ //# sourceMappingURL=index.min.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/index.ts", "../../../node_modules/uint8arrays/src/alloc.ts", "../../../node_modules/uint8-varint/src/index.ts", "../../../node_modules/protons-runtime/src/utils/float.ts", "../../../node_modules/protons-runtime/src/utils/longbits.ts", "../../../node_modules/protons-runtime/src/utils/utf8.ts", "../../../node_modules/protons-runtime/src/utils/reader.ts", "../../../node_modules/protons-runtime/src/decode.ts", "../../../node_modules/multiformats/src/bases/base10.ts", "../../../node_modules/multiformats/src/bytes.ts", "../../../node_modules/multiformats/src/vendor/base-x.js", "../../../node_modules/multiformats/src/bases/base.ts", "../../../node_modules/multiformats/src/bases/base16.ts", "../../../node_modules/multiformats/src/bases/base2.ts", "../../../node_modules/multiformats/src/bases/base256emoji.ts", "../../../node_modules/multiformats/src/bases/base32.ts", "../../../node_modules/multiformats/src/bases/base36.ts", "../../../node_modules/multiformats/src/bases/base58.ts", "../../../node_modules/multiformats/src/bases/base64.ts", "../../../node_modules/multiformats/src/bases/base8.ts", "../../../node_modules/multiformats/src/bases/identity.ts", "../../../node_modules/multiformats/src/codecs/json.ts", "../../../node_modules/multiformats/src/hashes/identity.ts", "../../../node_modules/multiformats/src/vendor/varint.js", "../../../node_modules/multiformats/src/varint.ts", "../../../node_modules/multiformats/src/hashes/digest.ts", "../../../node_modules/multiformats/src/hashes/sha2-browser.ts", "../../../node_modules/multiformats/src/hashes/hasher.ts", "../../../node_modules/multiformats/src/cid.ts", "../../../node_modules/multiformats/src/basics.ts", "../../../node_modules/uint8arrays/src/util/bases.ts", "../../../node_modules/uint8arrays/src/from-string.ts", "../../../node_modules/protons-runtime/src/utils/pool.ts", "../../../node_modules/protons-runtime/src/utils/writer.ts", "../../../node_modules/protons-runtime/src/encode.ts", "../../../node_modules/protons-runtime/src/codec.ts", "../../../node_modules/protons-runtime/src/codecs/enum.ts", "../../../node_modules/protons-runtime/src/codecs/message.ts"],
4
+ "sourcesContent": ["/* eslint-disable import/export */\n/* eslint-disable complexity */\n/* eslint-disable @typescript-eslint/no-namespace */\n/* eslint-disable @typescript-eslint/no-unnecessary-boolean-literal-compare */\n/* eslint-disable @typescript-eslint/no-empty-interface */\n\nimport { enumeration, encodeMessage, decodeMessage, message } from 'protons-runtime'\nimport type { Codec } from 'protons-runtime'\nimport type { Uint8ArrayList } from 'uint8arraylist'\n\nexport interface Request {\n type?: Request.Type\n connect?: ConnectRequest\n streamOpen?: StreamOpenRequest\n streamHandler?: StreamHandlerRequest\n dht?: DHTRequest\n connManager?: ConnManagerRequest\n disconnect?: DisconnectRequest\n pubsub?: PSRequest\n peerStore?: PeerstoreRequest\n}\n\nexport namespace Request {\n export enum Type {\n IDENTIFY = 'IDENTIFY',\n CONNECT = 'CONNECT',\n STREAM_OPEN = 'STREAM_OPEN',\n STREAM_HANDLER = 'STREAM_HANDLER',\n DHT = 'DHT',\n LIST_PEERS = 'LIST_PEERS',\n CONNMANAGER = 'CONNMANAGER',\n DISCONNECT = 'DISCONNECT',\n PUBSUB = 'PUBSUB',\n PEERSTORE = 'PEERSTORE'\n }\n\n enum __TypeValues {\n IDENTIFY = 0,\n CONNECT = 1,\n STREAM_OPEN = 2,\n STREAM_HANDLER = 3,\n DHT = 4,\n LIST_PEERS = 5,\n CONNMANAGER = 6,\n DISCONNECT = 7,\n PUBSUB = 8,\n PEERSTORE = 9\n }\n\n export namespace Type {\n export const codec = (): Codec<Type> => {\n return enumeration<Type>(__TypeValues)\n }\n }\n\n let _codec: Codec<Request>\n\n export const codec = (): Codec<Request> => {\n if (_codec == null) {\n _codec = message<Request>((obj, w, opts = {}) => {\n if (opts.lengthDelimited !== false) {\n w.fork()\n }\n\n if (obj.type != null) {\n w.uint32(8)\n Request.Type.codec().encode(obj.type, w)\n }\n\n if (obj.connect != null) {\n w.uint32(18)\n ConnectRequest.codec().encode(obj.connect, w)\n }\n\n if (obj.streamOpen != null) {\n w.uint32(26)\n StreamOpenRequest.codec().encode(obj.streamOpen, w)\n }\n\n if (obj.streamHandler != null) {\n w.uint32(34)\n StreamHandlerRequest.codec().encode(obj.streamHandler, w)\n }\n\n if (obj.dht != null) {\n w.uint32(42)\n DHTRequest.codec().encode(obj.dht, w)\n }\n\n if (obj.connManager != null) {\n w.uint32(50)\n ConnManagerRequest.codec().encode(obj.connManager, w)\n }\n\n if (obj.disconnect != null) {\n w.uint32(58)\n DisconnectRequest.codec().encode(obj.disconnect, w)\n }\n\n if (obj.pubsub != null) {\n w.uint32(66)\n PSRequest.codec().encode(obj.pubsub, w)\n }\n\n if (obj.peerStore != null) {\n w.uint32(74)\n PeerstoreRequest.codec().encode(obj.peerStore, w)\n }\n\n if (opts.lengthDelimited !== false) {\n w.ldelim()\n }\n }, (reader, length) => {\n const obj: any = {}\n\n const end = length == null ? reader.len : reader.pos + length\n\n while (reader.pos < end) {\n const tag = reader.uint32()\n\n switch (tag >>> 3) {\n case 1:\n obj.type = Request.Type.codec().decode(reader)\n break\n case 2:\n obj.connect = ConnectRequest.codec().decode(reader, reader.uint32())\n break\n case 3:\n obj.streamOpen = StreamOpenRequest.codec().decode(reader, reader.uint32())\n break\n case 4:\n obj.streamHandler = StreamHandlerRequest.codec().decode(reader, reader.uint32())\n break\n case 5:\n obj.dht = DHTRequest.codec().decode(reader, reader.uint32())\n break\n case 6:\n obj.connManager = ConnManagerRequest.codec().decode(reader, reader.uint32())\n break\n case 7:\n obj.disconnect = DisconnectRequest.codec().decode(reader, reader.uint32())\n break\n case 8:\n obj.pubsub = PSRequest.codec().decode(reader, reader.uint32())\n break\n case 9:\n obj.peerStore = PeerstoreRequest.codec().decode(reader, reader.uint32())\n break\n default:\n reader.skipType(tag & 7)\n break\n }\n }\n\n return obj\n })\n }\n\n return _codec\n }\n\n export const encode = (obj: Partial<Request>): Uint8Array => {\n return encodeMessage(obj, Request.codec())\n }\n\n export const decode = (buf: Uint8Array | Uint8ArrayList): Request => {\n return decodeMessage(buf, Request.codec())\n }\n}\n\nexport interface Response {\n type?: Response.Type\n error?: ErrorResponse\n streamInfo?: StreamInfo\n identify?: IdentifyResponse\n dht?: DHTResponse\n peers: PeerInfo[]\n pubsub?: PSResponse\n peerStore?: PeerstoreResponse\n}\n\nexport namespace Response {\n export enum Type {\n OK = 'OK',\n ERROR = 'ERROR'\n }\n\n enum __TypeValues {\n OK = 0,\n ERROR = 1\n }\n\n export namespace Type {\n export const codec = (): Codec<Type> => {\n return enumeration<Type>(__TypeValues)\n }\n }\n\n let _codec: Codec<Response>\n\n export const codec = (): Codec<Response> => {\n if (_codec == null) {\n _codec = message<Response>((obj, w, opts = {}) => {\n if (opts.lengthDelimited !== false) {\n w.fork()\n }\n\n if (obj.type != null) {\n w.uint32(8)\n Response.Type.codec().encode(obj.type, w)\n }\n\n if (obj.error != null) {\n w.uint32(18)\n ErrorResponse.codec().encode(obj.error, w)\n }\n\n if (obj.streamInfo != null) {\n w.uint32(26)\n StreamInfo.codec().encode(obj.streamInfo, w)\n }\n\n if (obj.identify != null) {\n w.uint32(34)\n IdentifyResponse.codec().encode(obj.identify, w)\n }\n\n if (obj.dht != null) {\n w.uint32(42)\n DHTResponse.codec().encode(obj.dht, w)\n }\n\n if (obj.peers != null) {\n for (const value of obj.peers) {\n w.uint32(50)\n PeerInfo.codec().encode(value, w)\n }\n }\n\n if (obj.pubsub != null) {\n w.uint32(58)\n PSResponse.codec().encode(obj.pubsub, w)\n }\n\n if (obj.peerStore != null) {\n w.uint32(66)\n PeerstoreResponse.codec().encode(obj.peerStore, w)\n }\n\n if (opts.lengthDelimited !== false) {\n w.ldelim()\n }\n }, (reader, length) => {\n const obj: any = {\n peers: []\n }\n\n const end = length == null ? reader.len : reader.pos + length\n\n while (reader.pos < end) {\n const tag = reader.uint32()\n\n switch (tag >>> 3) {\n case 1:\n obj.type = Response.Type.codec().decode(reader)\n break\n case 2:\n obj.error = ErrorResponse.codec().decode(reader, reader.uint32())\n break\n case 3:\n obj.streamInfo = StreamInfo.codec().decode(reader, reader.uint32())\n break\n case 4:\n obj.identify = IdentifyResponse.codec().decode(reader, reader.uint32())\n break\n case 5:\n obj.dht = DHTResponse.codec().decode(reader, reader.uint32())\n break\n case 6:\n obj.peers.push(PeerInfo.codec().decode(reader, reader.uint32()))\n break\n case 7:\n obj.pubsub = PSResponse.codec().decode(reader, reader.uint32())\n break\n case 8:\n obj.peerStore = PeerstoreResponse.codec().decode(reader, reader.uint32())\n break\n default:\n reader.skipType(tag & 7)\n break\n }\n }\n\n return obj\n })\n }\n\n return _codec\n }\n\n export const encode = (obj: Partial<Response>): Uint8Array => {\n return encodeMessage(obj, Response.codec())\n }\n\n export const decode = (buf: Uint8Array | Uint8ArrayList): Response => {\n return decodeMessage(buf, Response.codec())\n }\n}\n\nexport interface IdentifyResponse {\n id: Uint8Array\n addrs: Uint8Array[]\n}\n\nexport namespace IdentifyResponse {\n let _codec: Codec<IdentifyResponse>\n\n export const codec = (): Codec<IdentifyResponse> => {\n if (_codec == null) {\n _codec = message<IdentifyResponse>((obj, w, opts = {}) => {\n if (opts.lengthDelimited !== false) {\n w.fork()\n }\n\n if ((obj.id != null && obj.id.byteLength > 0)) {\n w.uint32(10)\n w.bytes(obj.id)\n }\n\n if (obj.addrs != null) {\n for (const value of obj.addrs) {\n w.uint32(18)\n w.bytes(value)\n }\n }\n\n if (opts.lengthDelimited !== false) {\n w.ldelim()\n }\n }, (reader, length) => {\n const obj: any = {\n id: new Uint8Array(0),\n addrs: []\n }\n\n const end = length == null ? reader.len : reader.pos + length\n\n while (reader.pos < end) {\n const tag = reader.uint32()\n\n switch (tag >>> 3) {\n case 1:\n obj.id = reader.bytes()\n break\n case 2:\n obj.addrs.push(reader.bytes())\n break\n default:\n reader.skipType(tag & 7)\n break\n }\n }\n\n return obj\n })\n }\n\n return _codec\n }\n\n export const encode = (obj: Partial<IdentifyResponse>): Uint8Array => {\n return encodeMessage(obj, IdentifyResponse.codec())\n }\n\n export const decode = (buf: Uint8Array | Uint8ArrayList): IdentifyResponse => {\n return decodeMessage(buf, IdentifyResponse.codec())\n }\n}\n\nexport interface ConnectRequest {\n peer: Uint8Array\n addrs: Uint8Array[]\n timeout?: bigint\n}\n\nexport namespace ConnectRequest {\n let _codec: Codec<ConnectRequest>\n\n export const codec = (): Codec<ConnectRequest> => {\n if (_codec == null) {\n _codec = message<ConnectRequest>((obj, w, opts = {}) => {\n if (opts.lengthDelimited !== false) {\n w.fork()\n }\n\n if ((obj.peer != null && obj.peer.byteLength > 0)) {\n w.uint32(10)\n w.bytes(obj.peer)\n }\n\n if (obj.addrs != null) {\n for (const value of obj.addrs) {\n w.uint32(18)\n w.bytes(value)\n }\n }\n\n if (obj.timeout != null) {\n w.uint32(24)\n w.int64(obj.timeout)\n }\n\n if (opts.lengthDelimited !== false) {\n w.ldelim()\n }\n }, (reader, length) => {\n const obj: any = {\n peer: new Uint8Array(0),\n addrs: []\n }\n\n const end = length == null ? reader.len : reader.pos + length\n\n while (reader.pos < end) {\n const tag = reader.uint32()\n\n switch (tag >>> 3) {\n case 1:\n obj.peer = reader.bytes()\n break\n case 2:\n obj.addrs.push(reader.bytes())\n break\n case 3:\n obj.timeout = reader.int64()\n break\n default:\n reader.skipType(tag & 7)\n break\n }\n }\n\n return obj\n })\n }\n\n return _codec\n }\n\n export const encode = (obj: Partial<ConnectRequest>): Uint8Array => {\n return encodeMessage(obj, ConnectRequest.codec())\n }\n\n export const decode = (buf: Uint8Array | Uint8ArrayList): ConnectRequest => {\n return decodeMessage(buf, ConnectRequest.codec())\n }\n}\n\nexport interface StreamOpenRequest {\n peer: Uint8Array\n proto: string[]\n timeout?: bigint\n}\n\nexport namespace StreamOpenRequest {\n let _codec: Codec<StreamOpenRequest>\n\n export const codec = (): Codec<StreamOpenRequest> => {\n if (_codec == null) {\n _codec = message<StreamOpenRequest>((obj, w, opts = {}) => {\n if (opts.lengthDelimited !== false) {\n w.fork()\n }\n\n if ((obj.peer != null && obj.peer.byteLength > 0)) {\n w.uint32(10)\n w.bytes(obj.peer)\n }\n\n if (obj.proto != null) {\n for (const value of obj.proto) {\n w.uint32(18)\n w.string(value)\n }\n }\n\n if (obj.timeout != null) {\n w.uint32(24)\n w.int64(obj.timeout)\n }\n\n if (opts.lengthDelimited !== false) {\n w.ldelim()\n }\n }, (reader, length) => {\n const obj: any = {\n peer: new Uint8Array(0),\n proto: []\n }\n\n const end = length == null ? reader.len : reader.pos + length\n\n while (reader.pos < end) {\n const tag = reader.uint32()\n\n switch (tag >>> 3) {\n case 1:\n obj.peer = reader.bytes()\n break\n case 2:\n obj.proto.push(reader.string())\n break\n case 3:\n obj.timeout = reader.int64()\n break\n default:\n reader.skipType(tag & 7)\n break\n }\n }\n\n return obj\n })\n }\n\n return _codec\n }\n\n export const encode = (obj: Partial<StreamOpenRequest>): Uint8Array => {\n return encodeMessage(obj, StreamOpenRequest.codec())\n }\n\n export const decode = (buf: Uint8Array | Uint8ArrayList): StreamOpenRequest => {\n return decodeMessage(buf, StreamOpenRequest.codec())\n }\n}\n\nexport interface StreamHandlerRequest {\n addr: Uint8Array\n proto: string[]\n}\n\nexport namespace StreamHandlerRequest {\n let _codec: Codec<StreamHandlerRequest>\n\n export const codec = (): Codec<StreamHandlerRequest> => {\n if (_codec == null) {\n _codec = message<StreamHandlerRequest>((obj, w, opts = {}) => {\n if (opts.lengthDelimited !== false) {\n w.fork()\n }\n\n if ((obj.addr != null && obj.addr.byteLength > 0)) {\n w.uint32(10)\n w.bytes(obj.addr)\n }\n\n if (obj.proto != null) {\n for (const value of obj.proto) {\n w.uint32(18)\n w.string(value)\n }\n }\n\n if (opts.lengthDelimited !== false) {\n w.ldelim()\n }\n }, (reader, length) => {\n const obj: any = {\n addr: new Uint8Array(0),\n proto: []\n }\n\n const end = length == null ? reader.len : reader.pos + length\n\n while (reader.pos < end) {\n const tag = reader.uint32()\n\n switch (tag >>> 3) {\n case 1:\n obj.addr = reader.bytes()\n break\n case 2:\n obj.proto.push(reader.string())\n break\n default:\n reader.skipType(tag & 7)\n break\n }\n }\n\n return obj\n })\n }\n\n return _codec\n }\n\n export const encode = (obj: Partial<StreamHandlerRequest>): Uint8Array => {\n return encodeMessage(obj, StreamHandlerRequest.codec())\n }\n\n export const decode = (buf: Uint8Array | Uint8ArrayList): StreamHandlerRequest => {\n return decodeMessage(buf, StreamHandlerRequest.codec())\n }\n}\n\nexport interface ErrorResponse {\n msg: string\n}\n\nexport namespace ErrorResponse {\n let _codec: Codec<ErrorResponse>\n\n export const codec = (): Codec<ErrorResponse> => {\n if (_codec == null) {\n _codec = message<ErrorResponse>((obj, w, opts = {}) => {\n if (opts.lengthDelimited !== false) {\n w.fork()\n }\n\n if ((obj.msg != null && obj.msg !== '')) {\n w.uint32(10)\n w.string(obj.msg)\n }\n\n if (opts.lengthDelimited !== false) {\n w.ldelim()\n }\n }, (reader, length) => {\n const obj: any = {\n msg: ''\n }\n\n const end = length == null ? reader.len : reader.pos + length\n\n while (reader.pos < end) {\n const tag = reader.uint32()\n\n switch (tag >>> 3) {\n case 1:\n obj.msg = reader.string()\n break\n default:\n reader.skipType(tag & 7)\n break\n }\n }\n\n return obj\n })\n }\n\n return _codec\n }\n\n export const encode = (obj: Partial<ErrorResponse>): Uint8Array => {\n return encodeMessage(obj, ErrorResponse.codec())\n }\n\n export const decode = (buf: Uint8Array | Uint8ArrayList): ErrorResponse => {\n return decodeMessage(buf, ErrorResponse.codec())\n }\n}\n\nexport interface StreamInfo {\n peer: Uint8Array\n addr: Uint8Array\n proto: string\n}\n\nexport namespace StreamInfo {\n let _codec: Codec<StreamInfo>\n\n export const codec = (): Codec<StreamInfo> => {\n if (_codec == null) {\n _codec = message<StreamInfo>((obj, w, opts = {}) => {\n if (opts.lengthDelimited !== false) {\n w.fork()\n }\n\n if ((obj.peer != null && obj.peer.byteLength > 0)) {\n w.uint32(10)\n w.bytes(obj.peer)\n }\n\n if ((obj.addr != null && obj.addr.byteLength > 0)) {\n w.uint32(18)\n w.bytes(obj.addr)\n }\n\n if ((obj.proto != null && obj.proto !== '')) {\n w.uint32(26)\n w.string(obj.proto)\n }\n\n if (opts.lengthDelimited !== false) {\n w.ldelim()\n }\n }, (reader, length) => {\n const obj: any = {\n peer: new Uint8Array(0),\n addr: new Uint8Array(0),\n proto: ''\n }\n\n const end = length == null ? reader.len : reader.pos + length\n\n while (reader.pos < end) {\n const tag = reader.uint32()\n\n switch (tag >>> 3) {\n case 1:\n obj.peer = reader.bytes()\n break\n case 2:\n obj.addr = reader.bytes()\n break\n case 3:\n obj.proto = reader.string()\n break\n default:\n reader.skipType(tag & 7)\n break\n }\n }\n\n return obj\n })\n }\n\n return _codec\n }\n\n export const encode = (obj: Partial<StreamInfo>): Uint8Array => {\n return encodeMessage(obj, StreamInfo.codec())\n }\n\n export const decode = (buf: Uint8Array | Uint8ArrayList): StreamInfo => {\n return decodeMessage(buf, StreamInfo.codec())\n }\n}\n\nexport interface DHTRequest {\n type?: DHTRequest.Type\n peer?: Uint8Array\n cid?: Uint8Array\n key?: Uint8Array\n value?: Uint8Array\n count?: number\n timeout?: bigint\n}\n\nexport namespace DHTRequest {\n export enum Type {\n FIND_PEER = 'FIND_PEER',\n FIND_PEERS_CONNECTED_TO_PEER = 'FIND_PEERS_CONNECTED_TO_PEER',\n FIND_PROVIDERS = 'FIND_PROVIDERS',\n GET_CLOSEST_PEERS = 'GET_CLOSEST_PEERS',\n GET_PUBLIC_KEY = 'GET_PUBLIC_KEY',\n GET_VALUE = 'GET_VALUE',\n SEARCH_VALUE = 'SEARCH_VALUE',\n PUT_VALUE = 'PUT_VALUE',\n PROVIDE = 'PROVIDE'\n }\n\n enum __TypeValues {\n FIND_PEER = 0,\n FIND_PEERS_CONNECTED_TO_PEER = 1,\n FIND_PROVIDERS = 2,\n GET_CLOSEST_PEERS = 3,\n GET_PUBLIC_KEY = 4,\n GET_VALUE = 5,\n SEARCH_VALUE = 6,\n PUT_VALUE = 7,\n PROVIDE = 8\n }\n\n export namespace Type {\n export const codec = (): Codec<Type> => {\n return enumeration<Type>(__TypeValues)\n }\n }\n\n let _codec: Codec<DHTRequest>\n\n export const codec = (): Codec<DHTRequest> => {\n if (_codec == null) {\n _codec = message<DHTRequest>((obj, w, opts = {}) => {\n if (opts.lengthDelimited !== false) {\n w.fork()\n }\n\n if (obj.type != null) {\n w.uint32(8)\n DHTRequest.Type.codec().encode(obj.type, w)\n }\n\n if (obj.peer != null) {\n w.uint32(18)\n w.bytes(obj.peer)\n }\n\n if (obj.cid != null) {\n w.uint32(26)\n w.bytes(obj.cid)\n }\n\n if (obj.key != null) {\n w.uint32(34)\n w.bytes(obj.key)\n }\n\n if (obj.value != null) {\n w.uint32(42)\n w.bytes(obj.value)\n }\n\n if (obj.count != null) {\n w.uint32(48)\n w.int32(obj.count)\n }\n\n if (obj.timeout != null) {\n w.uint32(56)\n w.int64(obj.timeout)\n }\n\n if (opts.lengthDelimited !== false) {\n w.ldelim()\n }\n }, (reader, length) => {\n const obj: any = {}\n\n const end = length == null ? reader.len : reader.pos + length\n\n while (reader.pos < end) {\n const tag = reader.uint32()\n\n switch (tag >>> 3) {\n case 1:\n obj.type = DHTRequest.Type.codec().decode(reader)\n break\n case 2:\n obj.peer = reader.bytes()\n break\n case 3:\n obj.cid = reader.bytes()\n break\n case 4:\n obj.key = reader.bytes()\n break\n case 5:\n obj.value = reader.bytes()\n break\n case 6:\n obj.count = reader.int32()\n break\n case 7:\n obj.timeout = reader.int64()\n break\n default:\n reader.skipType(tag & 7)\n break\n }\n }\n\n return obj\n })\n }\n\n return _codec\n }\n\n export const encode = (obj: Partial<DHTRequest>): Uint8Array => {\n return encodeMessage(obj, DHTRequest.codec())\n }\n\n export const decode = (buf: Uint8Array | Uint8ArrayList): DHTRequest => {\n return decodeMessage(buf, DHTRequest.codec())\n }\n}\n\nexport interface DHTResponse {\n type?: DHTResponse.Type\n peer?: PeerInfo\n value?: Uint8Array\n}\n\nexport namespace DHTResponse {\n export enum Type {\n BEGIN = 'BEGIN',\n VALUE = 'VALUE',\n END = 'END'\n }\n\n enum __TypeValues {\n BEGIN = 0,\n VALUE = 1,\n END = 2\n }\n\n export namespace Type {\n export const codec = (): Codec<Type> => {\n return enumeration<Type>(__TypeValues)\n }\n }\n\n let _codec: Codec<DHTResponse>\n\n export const codec = (): Codec<DHTResponse> => {\n if (_codec == null) {\n _codec = message<DHTResponse>((obj, w, opts = {}) => {\n if (opts.lengthDelimited !== false) {\n w.fork()\n }\n\n if (obj.type != null) {\n w.uint32(8)\n DHTResponse.Type.codec().encode(obj.type, w)\n }\n\n if (obj.peer != null) {\n w.uint32(18)\n PeerInfo.codec().encode(obj.peer, w)\n }\n\n if (obj.value != null) {\n w.uint32(26)\n w.bytes(obj.value)\n }\n\n if (opts.lengthDelimited !== false) {\n w.ldelim()\n }\n }, (reader, length) => {\n const obj: any = {}\n\n const end = length == null ? reader.len : reader.pos + length\n\n while (reader.pos < end) {\n const tag = reader.uint32()\n\n switch (tag >>> 3) {\n case 1:\n obj.type = DHTResponse.Type.codec().decode(reader)\n break\n case 2:\n obj.peer = PeerInfo.codec().decode(reader, reader.uint32())\n break\n case 3:\n obj.value = reader.bytes()\n break\n default:\n reader.skipType(tag & 7)\n break\n }\n }\n\n return obj\n })\n }\n\n return _codec\n }\n\n export const encode = (obj: Partial<DHTResponse>): Uint8Array => {\n return encodeMessage(obj, DHTResponse.codec())\n }\n\n export const decode = (buf: Uint8Array | Uint8ArrayList): DHTResponse => {\n return decodeMessage(buf, DHTResponse.codec())\n }\n}\n\nexport interface PeerInfo {\n id: Uint8Array\n addrs: Uint8Array[]\n}\n\nexport namespace PeerInfo {\n let _codec: Codec<PeerInfo>\n\n export const codec = (): Codec<PeerInfo> => {\n if (_codec == null) {\n _codec = message<PeerInfo>((obj, w, opts = {}) => {\n if (opts.lengthDelimited !== false) {\n w.fork()\n }\n\n if ((obj.id != null && obj.id.byteLength > 0)) {\n w.uint32(10)\n w.bytes(obj.id)\n }\n\n if (obj.addrs != null) {\n for (const value of obj.addrs) {\n w.uint32(18)\n w.bytes(value)\n }\n }\n\n if (opts.lengthDelimited !== false) {\n w.ldelim()\n }\n }, (reader, length) => {\n const obj: any = {\n id: new Uint8Array(0),\n addrs: []\n }\n\n const end = length == null ? reader.len : reader.pos + length\n\n while (reader.pos < end) {\n const tag = reader.uint32()\n\n switch (tag >>> 3) {\n case 1:\n obj.id = reader.bytes()\n break\n case 2:\n obj.addrs.push(reader.bytes())\n break\n default:\n reader.skipType(tag & 7)\n break\n }\n }\n\n return obj\n })\n }\n\n return _codec\n }\n\n export const encode = (obj: Partial<PeerInfo>): Uint8Array => {\n return encodeMessage(obj, PeerInfo.codec())\n }\n\n export const decode = (buf: Uint8Array | Uint8ArrayList): PeerInfo => {\n return decodeMessage(buf, PeerInfo.codec())\n }\n}\n\nexport interface ConnManagerRequest {\n type?: ConnManagerRequest.Type\n peer?: Uint8Array\n tag?: string\n weight?: bigint\n}\n\nexport namespace ConnManagerRequest {\n export enum Type {\n TAG_PEER = 'TAG_PEER',\n UNTAG_PEER = 'UNTAG_PEER',\n TRIM = 'TRIM'\n }\n\n enum __TypeValues {\n TAG_PEER = 0,\n UNTAG_PEER = 1,\n TRIM = 2\n }\n\n export namespace Type {\n export const codec = (): Codec<Type> => {\n return enumeration<Type>(__TypeValues)\n }\n }\n\n let _codec: Codec<ConnManagerRequest>\n\n export const codec = (): Codec<ConnManagerRequest> => {\n if (_codec == null) {\n _codec = message<ConnManagerRequest>((obj, w, opts = {}) => {\n if (opts.lengthDelimited !== false) {\n w.fork()\n }\n\n if (obj.type != null) {\n w.uint32(8)\n ConnManagerRequest.Type.codec().encode(obj.type, w)\n }\n\n if (obj.peer != null) {\n w.uint32(18)\n w.bytes(obj.peer)\n }\n\n if (obj.tag != null) {\n w.uint32(26)\n w.string(obj.tag)\n }\n\n if (obj.weight != null) {\n w.uint32(32)\n w.int64(obj.weight)\n }\n\n if (opts.lengthDelimited !== false) {\n w.ldelim()\n }\n }, (reader, length) => {\n const obj: any = {}\n\n const end = length == null ? reader.len : reader.pos + length\n\n while (reader.pos < end) {\n const tag = reader.uint32()\n\n switch (tag >>> 3) {\n case 1:\n obj.type = ConnManagerRequest.Type.codec().decode(reader)\n break\n case 2:\n obj.peer = reader.bytes()\n break\n case 3:\n obj.tag = reader.string()\n break\n case 4:\n obj.weight = reader.int64()\n break\n default:\n reader.skipType(tag & 7)\n break\n }\n }\n\n return obj\n })\n }\n\n return _codec\n }\n\n export const encode = (obj: Partial<ConnManagerRequest>): Uint8Array => {\n return encodeMessage(obj, ConnManagerRequest.codec())\n }\n\n export const decode = (buf: Uint8Array | Uint8ArrayList): ConnManagerRequest => {\n return decodeMessage(buf, ConnManagerRequest.codec())\n }\n}\n\nexport interface DisconnectRequest {\n peer: Uint8Array\n}\n\nexport namespace DisconnectRequest {\n let _codec: Codec<DisconnectRequest>\n\n export const codec = (): Codec<DisconnectRequest> => {\n if (_codec == null) {\n _codec = message<DisconnectRequest>((obj, w, opts = {}) => {\n if (opts.lengthDelimited !== false) {\n w.fork()\n }\n\n if ((obj.peer != null && obj.peer.byteLength > 0)) {\n w.uint32(10)\n w.bytes(obj.peer)\n }\n\n if (opts.lengthDelimited !== false) {\n w.ldelim()\n }\n }, (reader, length) => {\n const obj: any = {\n peer: new Uint8Array(0)\n }\n\n const end = length == null ? reader.len : reader.pos + length\n\n while (reader.pos < end) {\n const tag = reader.uint32()\n\n switch (tag >>> 3) {\n case 1:\n obj.peer = reader.bytes()\n break\n default:\n reader.skipType(tag & 7)\n break\n }\n }\n\n return obj\n })\n }\n\n return _codec\n }\n\n export const encode = (obj: Partial<DisconnectRequest>): Uint8Array => {\n return encodeMessage(obj, DisconnectRequest.codec())\n }\n\n export const decode = (buf: Uint8Array | Uint8ArrayList): DisconnectRequest => {\n return decodeMessage(buf, DisconnectRequest.codec())\n }\n}\n\nexport interface PSRequest {\n type?: PSRequest.Type\n topic?: string\n data?: Uint8Array\n}\n\nexport namespace PSRequest {\n export enum Type {\n GET_TOPICS = 'GET_TOPICS',\n LIST_PEERS = 'LIST_PEERS',\n PUBLISH = 'PUBLISH',\n SUBSCRIBE = 'SUBSCRIBE'\n }\n\n enum __TypeValues {\n GET_TOPICS = 0,\n LIST_PEERS = 1,\n PUBLISH = 2,\n SUBSCRIBE = 3\n }\n\n export namespace Type {\n export const codec = (): Codec<Type> => {\n return enumeration<Type>(__TypeValues)\n }\n }\n\n let _codec: Codec<PSRequest>\n\n export const codec = (): Codec<PSRequest> => {\n if (_codec == null) {\n _codec = message<PSRequest>((obj, w, opts = {}) => {\n if (opts.lengthDelimited !== false) {\n w.fork()\n }\n\n if (obj.type != null) {\n w.uint32(8)\n PSRequest.Type.codec().encode(obj.type, w)\n }\n\n if (obj.topic != null) {\n w.uint32(18)\n w.string(obj.topic)\n }\n\n if (obj.data != null) {\n w.uint32(26)\n w.bytes(obj.data)\n }\n\n if (opts.lengthDelimited !== false) {\n w.ldelim()\n }\n }, (reader, length) => {\n const obj: any = {}\n\n const end = length == null ? reader.len : reader.pos + length\n\n while (reader.pos < end) {\n const tag = reader.uint32()\n\n switch (tag >>> 3) {\n case 1:\n obj.type = PSRequest.Type.codec().decode(reader)\n break\n case 2:\n obj.topic = reader.string()\n break\n case 3:\n obj.data = reader.bytes()\n break\n default:\n reader.skipType(tag & 7)\n break\n }\n }\n\n return obj\n })\n }\n\n return _codec\n }\n\n export const encode = (obj: Partial<PSRequest>): Uint8Array => {\n return encodeMessage(obj, PSRequest.codec())\n }\n\n export const decode = (buf: Uint8Array | Uint8ArrayList): PSRequest => {\n return decodeMessage(buf, PSRequest.codec())\n }\n}\n\nexport interface PSMessage {\n from?: Uint8Array\n data?: Uint8Array\n seqno?: Uint8Array\n topicIDs: string[]\n signature?: Uint8Array\n key?: Uint8Array\n}\n\nexport namespace PSMessage {\n let _codec: Codec<PSMessage>\n\n export const codec = (): Codec<PSMessage> => {\n if (_codec == null) {\n _codec = message<PSMessage>((obj, w, opts = {}) => {\n if (opts.lengthDelimited !== false) {\n w.fork()\n }\n\n if (obj.from != null) {\n w.uint32(10)\n w.bytes(obj.from)\n }\n\n if (obj.data != null) {\n w.uint32(18)\n w.bytes(obj.data)\n }\n\n if (obj.seqno != null) {\n w.uint32(26)\n w.bytes(obj.seqno)\n }\n\n if (obj.topicIDs != null) {\n for (const value of obj.topicIDs) {\n w.uint32(34)\n w.string(value)\n }\n }\n\n if (obj.signature != null) {\n w.uint32(42)\n w.bytes(obj.signature)\n }\n\n if (obj.key != null) {\n w.uint32(50)\n w.bytes(obj.key)\n }\n\n if (opts.lengthDelimited !== false) {\n w.ldelim()\n }\n }, (reader, length) => {\n const obj: any = {\n topicIDs: []\n }\n\n const end = length == null ? reader.len : reader.pos + length\n\n while (reader.pos < end) {\n const tag = reader.uint32()\n\n switch (tag >>> 3) {\n case 1:\n obj.from = reader.bytes()\n break\n case 2:\n obj.data = reader.bytes()\n break\n case 3:\n obj.seqno = reader.bytes()\n break\n case 4:\n obj.topicIDs.push(reader.string())\n break\n case 5:\n obj.signature = reader.bytes()\n break\n case 6:\n obj.key = reader.bytes()\n break\n default:\n reader.skipType(tag & 7)\n break\n }\n }\n\n return obj\n })\n }\n\n return _codec\n }\n\n export const encode = (obj: Partial<PSMessage>): Uint8Array => {\n return encodeMessage(obj, PSMessage.codec())\n }\n\n export const decode = (buf: Uint8Array | Uint8ArrayList): PSMessage => {\n return decodeMessage(buf, PSMessage.codec())\n }\n}\n\nexport interface PSResponse {\n topics: string[]\n peerIDs: Uint8Array[]\n}\n\nexport namespace PSResponse {\n let _codec: Codec<PSResponse>\n\n export const codec = (): Codec<PSResponse> => {\n if (_codec == null) {\n _codec = message<PSResponse>((obj, w, opts = {}) => {\n if (opts.lengthDelimited !== false) {\n w.fork()\n }\n\n if (obj.topics != null) {\n for (const value of obj.topics) {\n w.uint32(10)\n w.string(value)\n }\n }\n\n if (obj.peerIDs != null) {\n for (const value of obj.peerIDs) {\n w.uint32(18)\n w.bytes(value)\n }\n }\n\n if (opts.lengthDelimited !== false) {\n w.ldelim()\n }\n }, (reader, length) => {\n const obj: any = {\n topics: [],\n peerIDs: []\n }\n\n const end = length == null ? reader.len : reader.pos + length\n\n while (reader.pos < end) {\n const tag = reader.uint32()\n\n switch (tag >>> 3) {\n case 1:\n obj.topics.push(reader.string())\n break\n case 2:\n obj.peerIDs.push(reader.bytes())\n break\n default:\n reader.skipType(tag & 7)\n break\n }\n }\n\n return obj\n })\n }\n\n return _codec\n }\n\n export const encode = (obj: Partial<PSResponse>): Uint8Array => {\n return encodeMessage(obj, PSResponse.codec())\n }\n\n export const decode = (buf: Uint8Array | Uint8ArrayList): PSResponse => {\n return decodeMessage(buf, PSResponse.codec())\n }\n}\n\nexport interface PeerstoreRequest {\n type?: PeerstoreRequest.Type\n id?: Uint8Array\n protos: string[]\n}\n\nexport namespace PeerstoreRequest {\n export enum Type {\n UNSPECIFIED = 'UNSPECIFIED',\n GET_PROTOCOLS = 'GET_PROTOCOLS',\n GET_PEER_INFO = 'GET_PEER_INFO'\n }\n\n enum __TypeValues {\n UNSPECIFIED = 0,\n GET_PROTOCOLS = 1,\n GET_PEER_INFO = 2\n }\n\n export namespace Type {\n export const codec = (): Codec<Type> => {\n return enumeration<Type>(__TypeValues)\n }\n }\n\n let _codec: Codec<PeerstoreRequest>\n\n export const codec = (): Codec<PeerstoreRequest> => {\n if (_codec == null) {\n _codec = message<PeerstoreRequest>((obj, w, opts = {}) => {\n if (opts.lengthDelimited !== false) {\n w.fork()\n }\n\n if (obj.type != null) {\n w.uint32(8)\n PeerstoreRequest.Type.codec().encode(obj.type, w)\n }\n\n if (obj.id != null) {\n w.uint32(18)\n w.bytes(obj.id)\n }\n\n if (obj.protos != null) {\n for (const value of obj.protos) {\n w.uint32(26)\n w.string(value)\n }\n }\n\n if (opts.lengthDelimited !== false) {\n w.ldelim()\n }\n }, (reader, length) => {\n const obj: any = {\n protos: []\n }\n\n const end = length == null ? reader.len : reader.pos + length\n\n while (reader.pos < end) {\n const tag = reader.uint32()\n\n switch (tag >>> 3) {\n case 1:\n obj.type = PeerstoreRequest.Type.codec().decode(reader)\n break\n case 2:\n obj.id = reader.bytes()\n break\n case 3:\n obj.protos.push(reader.string())\n break\n default:\n reader.skipType(tag & 7)\n break\n }\n }\n\n return obj\n })\n }\n\n return _codec\n }\n\n export const encode = (obj: Partial<PeerstoreRequest>): Uint8Array => {\n return encodeMessage(obj, PeerstoreRequest.codec())\n }\n\n export const decode = (buf: Uint8Array | Uint8ArrayList): PeerstoreRequest => {\n return decodeMessage(buf, PeerstoreRequest.codec())\n }\n}\n\nexport interface PeerstoreResponse {\n peer?: PeerInfo\n protos: string[]\n}\n\nexport namespace PeerstoreResponse {\n let _codec: Codec<PeerstoreResponse>\n\n export const codec = (): Codec<PeerstoreResponse> => {\n if (_codec == null) {\n _codec = message<PeerstoreResponse>((obj, w, opts = {}) => {\n if (opts.lengthDelimited !== false) {\n w.fork()\n }\n\n if (obj.peer != null) {\n w.uint32(10)\n PeerInfo.codec().encode(obj.peer, w)\n }\n\n if (obj.protos != null) {\n for (const value of obj.protos) {\n w.uint32(18)\n w.string(value)\n }\n }\n\n if (opts.lengthDelimited !== false) {\n w.ldelim()\n }\n }, (reader, length) => {\n const obj: any = {\n protos: []\n }\n\n const end = length == null ? reader.len : reader.pos + length\n\n while (reader.pos < end) {\n const tag = reader.uint32()\n\n switch (tag >>> 3) {\n case 1:\n obj.peer = PeerInfo.codec().decode(reader, reader.uint32())\n break\n case 2:\n obj.protos.push(reader.string())\n break\n default:\n reader.skipType(tag & 7)\n break\n }\n }\n\n return obj\n })\n }\n\n return _codec\n }\n\n export const encode = (obj: Partial<PeerstoreResponse>): Uint8Array => {\n return encodeMessage(obj, PeerstoreResponse.codec())\n }\n\n export const decode = (buf: Uint8Array | Uint8ArrayList): PeerstoreResponse => {\n return decodeMessage(buf, PeerstoreResponse.codec())\n }\n}\n", "/**\n * Returns a `Uint8Array` of the requested size. Referenced memory will\n * be initialized to 0.\n */\nexport function alloc (size: number = 0): Uint8Array {\n return new Uint8Array(size)\n}\n\n/**\n * Where possible returns a Uint8Array of the requested size that references\n * uninitialized memory. Only use if you are certain you will immediately\n * overwrite every value in the returned `Uint8Array`.\n */\nexport function allocUnsafe (size: number = 0): Uint8Array {\n return new Uint8Array(size)\n}\n", "/* eslint-disable no-fallthrough */\nimport { allocUnsafe } from 'uint8arrays/alloc'\nimport type { Uint8ArrayList } from 'uint8arraylist'\n\nconst N1 = Math.pow(2, 7)\nconst N2 = Math.pow(2, 14)\nconst N3 = Math.pow(2, 21)\nconst N4 = Math.pow(2, 28)\nconst N5 = Math.pow(2, 35)\nconst N6 = Math.pow(2, 42)\nconst N7 = Math.pow(2, 49)\n\n/** Most significant bit of a byte */\nconst MSB = 0x80\n/** Rest of the bits in a byte */\nconst REST = 0x7f\n\nexport function encodingLength (value: number): number {\n if (value < N1) {\n return 1\n }\n\n if (value < N2) {\n return 2\n }\n\n if (value < N3) {\n return 3\n }\n\n if (value < N4) {\n return 4\n }\n\n if (value < N5) {\n return 5\n }\n\n if (value < N6) {\n return 6\n }\n\n if (value < N7) {\n return 7\n }\n\n if (Number.MAX_SAFE_INTEGER != null && value > Number.MAX_SAFE_INTEGER) {\n throw new RangeError('Could not encode varint')\n }\n\n return 8\n}\n\nexport function encodeUint8Array (value: number, buf: Uint8Array, offset: number = 0): Uint8Array {\n switch (encodingLength(value)) {\n case 8: {\n buf[offset++] = (value & 0xFF) | MSB\n value /= 128\n }\n case 7: {\n buf[offset++] = (value & 0xFF) | MSB\n value /= 128\n }\n case 6: {\n buf[offset++] = (value & 0xFF) | MSB\n value /= 128\n }\n case 5: {\n buf[offset++] = (value & 0xFF) | MSB\n value /= 128\n }\n case 4: {\n buf[offset++] = (value & 0xFF) | MSB\n value >>>= 7\n }\n case 3: {\n buf[offset++] = (value & 0xFF) | MSB\n value >>>= 7\n }\n case 2: {\n buf[offset++] = (value & 0xFF) | MSB\n value >>>= 7\n }\n case 1: {\n buf[offset++] = (value & 0xFF)\n value >>>= 7\n break\n }\n default: throw new Error('unreachable')\n }\n return buf\n}\n\nexport function encodeUint8ArrayList (value: number, buf: Uint8ArrayList, offset: number = 0): Uint8ArrayList {\n switch (encodingLength(value)) {\n case 8: {\n buf.set(offset++, (value & 0xFF) | MSB)\n value /= 128\n }\n case 7: {\n buf.set(offset++, (value & 0xFF) | MSB)\n value /= 128\n }\n case 6: {\n buf.set(offset++, (value & 0xFF) | MSB)\n value /= 128\n }\n case 5: {\n buf.set(offset++, (value & 0xFF) | MSB)\n value /= 128\n }\n case 4: {\n buf.set(offset++, (value & 0xFF) | MSB)\n value >>>= 7\n }\n case 3: {\n buf.set(offset++, (value & 0xFF) | MSB)\n value >>>= 7\n }\n case 2: {\n buf.set(offset++, (value & 0xFF) | MSB)\n value >>>= 7\n }\n case 1: {\n buf.set(offset++, (value & 0xFF))\n value >>>= 7\n break\n }\n default: throw new Error('unreachable')\n }\n return buf\n}\n\nexport function decodeUint8Array (buf: Uint8Array, offset: number): number {\n let b = buf[offset]\n let res = 0\n\n res += b & REST\n if (b < MSB) {\n return res\n }\n\n b = buf[offset + 1]\n res += (b & REST) << 7\n if (b < MSB) {\n return res\n }\n\n b = buf[offset + 2]\n res += (b & REST) << 14\n if (b < MSB) {\n return res\n }\n\n b = buf[offset + 3]\n res += (b & REST) << 21\n if (b < MSB) {\n return res\n }\n\n b = buf[offset + 4]\n res += (b & REST) * N4\n if (b < MSB) {\n return res\n }\n\n b = buf[offset + 5]\n res += (b & REST) * N5\n if (b < MSB) {\n return res\n }\n\n b = buf[offset + 6]\n res += (b & REST) * N6\n if (b < MSB) {\n return res\n }\n\n b = buf[offset + 7]\n res += (b & REST) * N7\n if (b < MSB) {\n return res\n }\n\n throw new RangeError('Could not decode varint')\n}\n\nexport function decodeUint8ArrayList (buf: Uint8ArrayList, offset: number): number {\n let b = buf.get(offset)\n let res = 0\n\n res += b & REST\n if (b < MSB) {\n return res\n }\n\n b = buf.get(offset + 1)\n res += (b & REST) << 7\n if (b < MSB) {\n return res\n }\n\n b = buf.get(offset + 2)\n res += (b & REST) << 14\n if (b < MSB) {\n return res\n }\n\n b = buf.get(offset + 3)\n res += (b & REST) << 21\n if (b < MSB) {\n return res\n }\n\n b = buf.get(offset + 4)\n res += (b & REST) * N4\n if (b < MSB) {\n return res\n }\n\n b = buf.get(offset + 5)\n res += (b & REST) * N5\n if (b < MSB) {\n return res\n }\n\n b = buf.get(offset + 6)\n res += (b & REST) * N6\n if (b < MSB) {\n return res\n }\n\n b = buf.get(offset + 7)\n res += (b & REST) * N7\n if (b < MSB) {\n return res\n }\n\n throw new RangeError('Could not decode varint')\n}\n\nexport function encode (value: number): Uint8Array\nexport function encode (value: number, buf: Uint8Array, offset?: number): Uint8Array\nexport function encode (value: number, buf: Uint8ArrayList, offset?: number): Uint8ArrayList\nexport function encode <T extends Uint8Array | Uint8ArrayList = Uint8Array> (value: number, buf?: T, offset: number = 0): T {\n if (buf == null) {\n buf = allocUnsafe(encodingLength(value)) as T\n }\n if (buf instanceof Uint8Array) {\n return encodeUint8Array(value, buf, offset) as T\n } else {\n return encodeUint8ArrayList(value, buf, offset) as T\n }\n}\n\nexport function decode (buf: Uint8ArrayList | Uint8Array, offset: number = 0): number {\n if (buf instanceof Uint8Array) {\n return decodeUint8Array(buf, offset)\n } else {\n return decodeUint8ArrayList(buf, offset)\n }\n}\n", "const f32 = new Float32Array([-0])\nconst f8b = new Uint8Array(f32.buffer)\n\n/**\n * Writes a 32 bit float to a buffer using little endian byte order\n */\nexport function writeFloatLE (val: number, buf: Uint8Array, pos: number): void {\n f32[0] = val\n buf[pos] = f8b[0]\n buf[pos + 1] = f8b[1]\n buf[pos + 2] = f8b[2]\n buf[pos + 3] = f8b[3]\n}\n\n/**\n * Writes a 32 bit float to a buffer using big endian byte order\n */\nexport function writeFloatBE (val: number, buf: Uint8Array, pos: number): void {\n f32[0] = val\n buf[pos] = f8b[3]\n buf[pos + 1] = f8b[2]\n buf[pos + 2] = f8b[1]\n buf[pos + 3] = f8b[0]\n}\n\n/**\n * Reads a 32 bit float from a buffer using little endian byte order\n */\nexport function readFloatLE (buf: Uint8Array, pos: number): number {\n f8b[0] = buf[pos]\n f8b[1] = buf[pos + 1]\n f8b[2] = buf[pos + 2]\n f8b[3] = buf[pos + 3]\n return f32[0]\n}\n\n/**\n * Reads a 32 bit float from a buffer using big endian byte order\n */\nexport function readFloatBE (buf: Uint8Array, pos: number): number {\n f8b[3] = buf[pos]\n f8b[2] = buf[pos + 1]\n f8b[1] = buf[pos + 2]\n f8b[0] = buf[pos + 3]\n return f32[0]\n}\n\nconst f64 = new Float64Array([-0])\nconst d8b = new Uint8Array(f64.buffer)\n\n/**\n * Writes a 64 bit double to a buffer using little endian byte order\n */\nexport function writeDoubleLE (val: number, buf: Uint8Array, pos: number): void {\n f64[0] = val\n buf[pos] = d8b[0]\n buf[pos + 1] = d8b[1]\n buf[pos + 2] = d8b[2]\n buf[pos + 3] = d8b[3]\n buf[pos + 4] = d8b[4]\n buf[pos + 5] = d8b[5]\n buf[pos + 6] = d8b[6]\n buf[pos + 7] = d8b[7]\n}\n\n/**\n * Writes a 64 bit double to a buffer using big endian byte order\n */\nexport function writeDoubleBE (val: number, buf: Uint8Array, pos: number): void {\n f64[0] = val\n buf[pos] = d8b[7]\n buf[pos + 1] = d8b[6]\n buf[pos + 2] = d8b[5]\n buf[pos + 3] = d8b[4]\n buf[pos + 4] = d8b[3]\n buf[pos + 5] = d8b[2]\n buf[pos + 6] = d8b[1]\n buf[pos + 7] = d8b[0]\n}\n\n/**\n * Reads a 64 bit double from a buffer using little endian byte order\n */\nexport function readDoubleLE (buf: Uint8Array, pos: number): number {\n d8b[0] = buf[pos]\n d8b[1] = buf[pos + 1]\n d8b[2] = buf[pos + 2]\n d8b[3] = buf[pos + 3]\n d8b[4] = buf[pos + 4]\n d8b[5] = buf[pos + 5]\n d8b[6] = buf[pos + 6]\n d8b[7] = buf[pos + 7]\n return f64[0]\n}\n\n/**\n * Reads a 64 bit double from a buffer using big endian byte order\n */\nexport function readDoubleBE (buf: Uint8Array, pos: number): number {\n d8b[7] = buf[pos]\n d8b[6] = buf[pos + 1]\n d8b[5] = buf[pos + 2]\n d8b[4] = buf[pos + 3]\n d8b[3] = buf[pos + 4]\n d8b[2] = buf[pos + 5]\n d8b[1] = buf[pos + 6]\n d8b[0] = buf[pos + 7]\n return f64[0]\n}\n", "// the largest BigInt we can safely downcast to a Number\nconst MAX_SAFE_NUMBER_INTEGER = BigInt(Number.MAX_SAFE_INTEGER)\nconst MIN_SAFE_NUMBER_INTEGER = BigInt(Number.MIN_SAFE_INTEGER)\n\n/**\n * Constructs new long bits.\n *\n * @classdesc Helper class for working with the low and high bits of a 64 bit value.\n * @memberof util\n * @function Object() { [native code] }\n * @param {number} lo - Low 32 bits, unsigned\n * @param {number} hi - High 32 bits, unsigned\n */\nexport class LongBits {\n public lo: number\n public hi: number\n\n constructor (lo: number, hi: number) {\n // note that the casts below are theoretically unnecessary as of today, but older statically\n // generated converter code might still call the ctor with signed 32bits. kept for compat.\n\n /**\n * Low bits\n */\n this.lo = lo | 0\n\n /**\n * High bits\n */\n this.hi = hi | 0\n }\n\n /**\n * Converts this long bits to a possibly unsafe JavaScript number\n */\n toNumber (unsigned: boolean = false): number {\n if (!unsigned && (this.hi >>> 31) > 0) {\n const lo = ~this.lo + 1 >>> 0\n let hi = ~this.hi >>> 0\n if (lo === 0) {\n hi = hi + 1 >>> 0\n }\n return -(lo + hi * 4294967296)\n }\n return this.lo + this.hi * 4294967296\n }\n\n /**\n * Converts this long bits to a bigint\n */\n toBigInt (unsigned: boolean = false): bigint {\n if (unsigned) {\n return BigInt(this.lo >>> 0) + (BigInt(this.hi >>> 0) << 32n)\n }\n\n if ((this.hi >>> 31) !== 0) {\n const lo = ~this.lo + 1 >>> 0\n let hi = ~this.hi >>> 0\n if (lo === 0) {\n hi = hi + 1 >>> 0\n }\n return -(BigInt(lo) + (BigInt(hi) << 32n))\n }\n\n return BigInt(this.lo >>> 0) + (BigInt(this.hi >>> 0) << 32n)\n }\n\n /**\n * Converts this long bits to a string\n */\n toString (unsigned: boolean = false): string {\n return this.toBigInt(unsigned).toString()\n }\n\n /**\n * Zig-zag encodes this long bits\n */\n zzEncode (): this {\n const mask = this.hi >> 31\n this.hi = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0\n this.lo = (this.lo << 1 ^ mask) >>> 0\n return this\n }\n\n /**\n * Zig-zag decodes this long bits\n */\n zzDecode (): this {\n const mask = -(this.lo & 1)\n this.lo = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0\n this.hi = (this.hi >>> 1 ^ mask) >>> 0\n return this\n }\n\n /**\n * Calculates the length of this longbits when encoded as a varint.\n */\n length (): number {\n const part0 = this.lo\n const part1 = (this.lo >>> 28 | this.hi << 4) >>> 0\n const part2 = this.hi >>> 24\n return part2 === 0\n ? part1 === 0\n ? part0 < 16384\n ? part0 < 128 ? 1 : 2\n : part0 < 2097152 ? 3 : 4\n : part1 < 16384\n ? part1 < 128 ? 5 : 6\n : part1 < 2097152 ? 7 : 8\n : part2 < 128 ? 9 : 10\n }\n\n /**\n * Constructs new long bits from the specified number\n */\n static fromBigInt (value: bigint): LongBits {\n if (value === 0n) {\n return zero\n }\n\n if (value < MAX_SAFE_NUMBER_INTEGER && value > MIN_SAFE_NUMBER_INTEGER) {\n return this.fromNumber(Number(value))\n }\n\n const negative = value < 0n\n\n if (negative) {\n value = -value\n }\n\n let hi = value >> 32n\n let lo = value - (hi << 32n)\n\n if (negative) {\n hi = ~hi | 0n\n lo = ~lo | 0n\n\n if (++lo > TWO_32) {\n lo = 0n\n if (++hi > TWO_32) { hi = 0n }\n }\n }\n\n return new LongBits(Number(lo), Number(hi))\n }\n\n /**\n * Constructs new long bits from the specified number\n */\n static fromNumber (value: number): LongBits {\n if (value === 0) { return zero }\n const sign = value < 0\n if (sign) { value = -value }\n let lo = value >>> 0\n let hi = (value - lo) / 4294967296 >>> 0\n if (sign) {\n hi = ~hi >>> 0\n lo = ~lo >>> 0\n if (++lo > 4294967295) {\n lo = 0\n if (++hi > 4294967295) { hi = 0 }\n }\n }\n return new LongBits(lo, hi)\n }\n\n /**\n * Constructs new long bits from a number, long or string\n */\n static from (value: bigint | number | string | { low: number, high: number }): LongBits {\n if (typeof value === 'number') {\n return LongBits.fromNumber(value)\n }\n if (typeof value === 'bigint') {\n return LongBits.fromBigInt(value)\n }\n if (typeof value === 'string') {\n return LongBits.fromBigInt(BigInt(value))\n }\n return value.low != null || value.high != null ? new LongBits(value.low >>> 0, value.high >>> 0) : zero\n }\n}\n\nconst zero = new LongBits(0, 0)\nzero.toBigInt = function () { return 0n }\nzero.zzEncode = zero.zzDecode = function () { return this }\nzero.length = function () { return 1 }\n\nconst TWO_32 = 4294967296n\n", "/**\n * Calculates the UTF8 byte length of a string\n */\nexport function length (string: string): number {\n let len = 0\n let c = 0\n for (let i = 0; i < string.length; ++i) {\n c = string.charCodeAt(i)\n\n if (c < 128) {\n len += 1\n } else if (c < 2048) {\n len += 2\n } else if ((c & 0xFC00) === 0xD800 && (string.charCodeAt(i + 1) & 0xFC00) === 0xDC00) {\n ++i\n len += 4\n } else {\n len += 3\n }\n }\n\n return len\n}\n\n/**\n * Reads UTF8 bytes as a string\n */\nexport function read (buffer: Uint8Array, start: number, end: number): string {\n const len = end - start\n\n if (len < 1) {\n return ''\n }\n\n let parts: string[] | undefined\n const chunk: number[] = []\n let i = 0 // char offset\n let t: number // temporary\n\n while (start < end) {\n t = buffer[start++]\n\n if (t < 128) {\n chunk[i++] = t\n } else if (t > 191 && t < 224) {\n chunk[i++] = (t & 31) << 6 | buffer[start++] & 63\n } else if (t > 239 && t < 365) {\n t = ((t & 7) << 18 | (buffer[start++] & 63) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63) - 0x10000\n chunk[i++] = 0xD800 + (t >> 10)\n chunk[i++] = 0xDC00 + (t & 1023)\n } else {\n chunk[i++] = (t & 15) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63\n }\n\n if (i > 8191) {\n (parts ?? (parts = [])).push(String.fromCharCode.apply(String, chunk))\n i = 0\n }\n }\n\n if (parts != null) {\n if (i > 0) {\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)))\n }\n\n return parts.join('')\n }\n\n return String.fromCharCode.apply(String, chunk.slice(0, i))\n}\n\n/**\n * Writes a string as UTF8 bytes\n */\nexport function write (string: string, buffer: Uint8Array, offset: number): number {\n const start = offset\n let c1 // character 1\n let c2 // character 2\n\n for (let i = 0; i < string.length; ++i) {\n c1 = string.charCodeAt(i)\n\n if (c1 < 128) {\n buffer[offset++] = c1\n } else if (c1 < 2048) {\n buffer[offset++] = c1 >> 6 | 192\n buffer[offset++] = c1 & 63 | 128\n } else if ((c1 & 0xFC00) === 0xD800 && ((c2 = string.charCodeAt(i + 1)) & 0xFC00) === 0xDC00) {\n c1 = 0x10000 + ((c1 & 0x03FF) << 10) + (c2 & 0x03FF)\n ++i\n buffer[offset++] = c1 >> 18 | 240\n buffer[offset++] = c1 >> 12 & 63 | 128\n buffer[offset++] = c1 >> 6 & 63 | 128\n buffer[offset++] = c1 & 63 | 128\n } else {\n buffer[offset++] = c1 >> 12 | 224\n buffer[offset++] = c1 >> 6 & 63 | 128\n buffer[offset++] = c1 & 63 | 128\n }\n }\n\n return offset - start\n}\n", "import { decodeUint8Array, encodingLength } from 'uint8-varint'\nimport { readFloatLE, readDoubleLE } from './float.js'\nimport { LongBits } from './longbits.js'\nimport * as utf8 from './utf8.js'\nimport type { Reader } from '../index.js'\nimport type { Uint8ArrayList } from 'uint8arraylist'\n\n/* istanbul ignore next */\nfunction indexOutOfRange (reader: Reader, writeLength?: number): RangeError {\n return RangeError(`index out of range: ${reader.pos} + ${writeLength ?? 1} > ${reader.len}`)\n}\n\nfunction readFixed32End (buf: Uint8Array, end: number): number { // note that this uses `end`, not `pos`\n return (buf[end - 4] |\n buf[end - 3] << 8 |\n buf[end - 2] << 16 |\n buf[end - 1] << 24) >>> 0\n}\n\n/**\n * Constructs a new reader instance using the specified buffer.\n */\nexport class Uint8ArrayReader implements Reader {\n public buf: Uint8Array\n public pos: number\n public len: number\n\n public _slice = Uint8Array.prototype.subarray\n\n constructor (buffer: Uint8Array) {\n /**\n * Read buffer\n */\n this.buf = buffer\n\n /**\n * Read buffer position\n */\n this.pos = 0\n\n /**\n * Read buffer length\n */\n this.len = buffer.length\n }\n\n /**\n * Reads a varint as an unsigned 32 bit value\n */\n uint32 (): number {\n let value = 4294967295\n\n value = (this.buf[this.pos] & 127) >>> 0; if (this.buf[this.pos++] < 128) return value\n value = (value | (this.buf[this.pos] & 127) << 7) >>> 0; if (this.buf[this.pos++] < 128) return value\n value = (value | (this.buf[this.pos] & 127) << 14) >>> 0; if (this.buf[this.pos++] < 128) return value\n value = (value | (this.buf[this.pos] & 127) << 21) >>> 0; if (this.buf[this.pos++] < 128) return value\n value = (value | (this.buf[this.pos] & 15) << 28) >>> 0; if (this.buf[this.pos++] < 128) return value\n\n if ((this.pos += 5) > this.len) {\n this.pos = this.len\n throw indexOutOfRange(this, 10)\n }\n\n return value\n }\n\n /**\n * Reads a varint as a signed 32 bit value\n */\n int32 (): number {\n return this.uint32() | 0\n }\n\n /**\n * Reads a zig-zag encoded varint as a signed 32 bit value\n */\n sint32 (): number {\n const value = this.uint32()\n return value >>> 1 ^ -(value & 1) | 0\n }\n\n /**\n * Reads a varint as a boolean\n */\n bool (): boolean {\n return this.uint32() !== 0\n }\n\n /**\n * Reads fixed 32 bits as an unsigned 32 bit integer\n */\n fixed32 (): number {\n if (this.pos + 4 > this.len) { throw indexOutOfRange(this, 4) }\n\n const res = readFixed32End(this.buf, this.pos += 4)\n\n return res\n }\n\n /**\n * Reads fixed 32 bits as a signed 32 bit integer\n */\n sfixed32 (): number {\n if (this.pos + 4 > this.len) {\n throw indexOutOfRange(this, 4)\n }\n\n const res = readFixed32End(this.buf, this.pos += 4) | 0\n\n return res\n }\n\n /**\n * Reads a float (32 bit) as a number\n */\n float (): number {\n if (this.pos + 4 > this.len) {\n throw indexOutOfRange(this, 4)\n }\n\n const value = readFloatLE(this.buf, this.pos)\n this.pos += 4\n return value\n }\n\n /**\n * Reads a double (64 bit float) as a number\n */\n double (): number {\n /* istanbul ignore if */\n if (this.pos + 8 > this.len) { throw indexOutOfRange(this, 4) }\n\n const value = readDoubleLE(this.buf, this.pos)\n this.pos += 8\n return value\n }\n\n /**\n * Reads a sequence of bytes preceded by its length as a varint\n */\n bytes (): Uint8Array {\n const length = this.uint32()\n const start = this.pos\n const end = this.pos + length\n\n /* istanbul ignore if */\n if (end > this.len) {\n throw indexOutOfRange(this, length)\n }\n\n this.pos += length\n\n return start === end // fix for IE 10/Win8 and others' subarray returning array of size 1\n ? new Uint8Array(0)\n : this.buf.subarray(start, end)\n }\n\n /**\n * Reads a string preceded by its byte length as a varint\n */\n string (): string {\n const bytes = this.bytes()\n return utf8.read(bytes, 0, bytes.length)\n }\n\n /**\n * Skips the specified number of bytes if specified, otherwise skips a varint\n */\n skip (length?: number): this {\n if (typeof length === 'number') {\n /* istanbul ignore if */\n if (this.pos + length > this.len) { throw indexOutOfRange(this, length) }\n this.pos += length\n } else {\n do {\n /* istanbul ignore if */\n if (this.pos >= this.len) {\n throw indexOutOfRange(this)\n }\n } while ((this.buf[this.pos++] & 128) !== 0)\n }\n return this\n }\n\n /**\n * Skips the next element of the specified wire type\n */\n skipType (wireType: number): this {\n switch (wireType) {\n case 0:\n this.skip()\n break\n case 1:\n this.skip(8)\n break\n case 2:\n this.skip(this.uint32())\n break\n case 3:\n while ((wireType = this.uint32() & 7) !== 4) {\n this.skipType(wireType)\n }\n break\n case 5:\n this.skip(4)\n break\n\n /* istanbul ignore next */\n default:\n throw Error(`invalid wire type ${wireType} at offset ${this.pos}`)\n }\n return this\n }\n\n private readLongVarint (): LongBits {\n // tends to deopt with local vars for octet etc.\n const bits = new LongBits(0, 0)\n let i = 0\n if (this.len - this.pos > 4) { // fast route (lo)\n for (; i < 4; ++i) {\n // 1st..4th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0\n if (this.buf[this.pos++] < 128) { return bits }\n }\n // 5th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0\n if (this.buf[this.pos++] < 128) { return bits }\n i = 0\n } else {\n for (; i < 3; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len) { throw indexOutOfRange(this) }\n // 1st..3th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0\n if (this.buf[this.pos++] < 128) { return bits }\n }\n // 4th\n bits.lo = (bits.lo | (this.buf[this.pos++] & 127) << i * 7) >>> 0\n return bits\n }\n if (this.len - this.pos > 4) { // fast route (hi)\n for (; i < 5; ++i) {\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0\n if (this.buf[this.pos++] < 128) { return bits }\n }\n } else {\n for (; i < 5; ++i) {\n if (this.pos >= this.len) {\n throw indexOutOfRange(this)\n }\n\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0\n if (this.buf[this.pos++] < 128) { return bits }\n }\n }\n\n throw Error('invalid varint encoding')\n }\n\n private readFixed64 (): LongBits {\n if (this.pos + 8 > this.len) {\n throw indexOutOfRange(this, 8)\n }\n\n const lo = readFixed32End(this.buf, this.pos += 4)\n const hi = readFixed32End(this.buf, this.pos += 4)\n\n return new LongBits(lo, hi)\n }\n\n /**\n * Reads a varint as a signed 64 bit value\n */\n int64 (): bigint {\n return this.readLongVarint().toBigInt()\n }\n\n /**\n * Reads a varint as a signed 64 bit value returned as a possibly unsafe\n * JavaScript number\n */\n int64Number (): number {\n return this.readLongVarint().toNumber()\n }\n\n /**\n * Reads a varint as a signed 64 bit value returned as a string\n */\n int64String (): string {\n return this.readLongVarint().toString()\n }\n\n /**\n * Reads a varint as an unsigned 64 bit value\n */\n uint64 (): bigint {\n return this.readLongVarint().toBigInt(true)\n }\n\n /**\n * Reads a varint as an unsigned 64 bit value returned as a possibly unsafe\n * JavaScript number\n */\n uint64Number (): number {\n const value = decodeUint8Array(this.buf, this.pos)\n this.pos += encodingLength(value)\n return value\n }\n\n /**\n * Reads a varint as an unsigned 64 bit value returned as a string\n */\n uint64String (): string {\n return this.readLongVarint().toString(true)\n }\n\n /**\n * Reads a zig-zag encoded varint as a signed 64 bit value\n */\n sint64 (): bigint {\n return this.readLongVarint().zzDecode().toBigInt()\n }\n\n /**\n * Reads a zig-zag encoded varint as a signed 64 bit value returned as a\n * possibly unsafe JavaScript number\n */\n sint64Number (): number {\n return this.readLongVarint().zzDecode().toNumber()\n }\n\n /**\n * Reads a zig-zag encoded varint as a signed 64 bit value returned as a\n * string\n */\n sint64String (): string {\n return this.readLongVarint().zzDecode().toString()\n }\n\n /**\n * Reads fixed 64 bits\n */\n fixed64 (): bigint {\n return this.readFixed64().toBigInt()\n }\n\n /**\n * Reads fixed 64 bits returned as a possibly unsafe JavaScript number\n */\n fixed64Number (): number {\n return this.readFixed64().toNumber()\n }\n\n /**\n * Reads fixed 64 bits returned as a string\n */\n fixed64String (): string {\n return this.readFixed64().toString()\n }\n\n /**\n * Reads zig-zag encoded fixed 64 bits\n */\n sfixed64 (): bigint {\n return this.readFixed64().toBigInt()\n }\n\n /**\n * Reads zig-zag encoded fixed 64 bits returned as a possibly unsafe\n * JavaScript number\n */\n sfixed64Number (): number {\n return this.readFixed64().toNumber()\n }\n\n /**\n * Reads zig-zag encoded fixed 64 bits returned as a string\n */\n sfixed64String (): string {\n return this.readFixed64().toString()\n }\n}\n\nexport function createReader (buf: Uint8Array | Uint8ArrayList): Reader {\n return new Uint8ArrayReader(buf instanceof Uint8Array ? buf : buf.subarray())\n}\n", "import { createReader } from './utils/reader.js'\nimport type { Codec, DecodeOptions } from './codec.js'\nimport type { Uint8ArrayList } from 'uint8arraylist'\n\nexport function decodeMessage <T> (buf: Uint8Array | Uint8ArrayList, codec: Pick<Codec<T>, 'decode'>, opts?: DecodeOptions<T>): T {\n const reader = createReader(buf)\n\n return codec.decode(reader, undefined, opts)\n}\n", "import { baseX } from './base.js'\n\nexport const base10 = baseX({\n prefix: '9',\n name: 'base10',\n alphabet: '0123456789'\n})\n", "export const empty = new Uint8Array(0)\n\nexport function toHex (d: Uint8Array): string {\n return d.reduce((hex, byte) => hex + byte.toString(16).padStart(2, '0'), '')\n}\n\nexport function fromHex (hex: string): Uint8Array {\n const hexes = hex.match(/../g)\n return hexes != null ? new Uint8Array(hexes.map(b => parseInt(b, 16))) : empty\n}\n\nexport function equals (aa: Uint8Array, bb: Uint8Array): boolean {\n if (aa === bb) return true\n if (aa.byteLength !== bb.byteLength) {\n return false\n }\n\n for (let ii = 0; ii < aa.byteLength; ii++) {\n if (aa[ii] !== bb[ii]) {\n return false\n }\n }\n\n return true\n}\n\nexport function coerce (o: ArrayBufferView | ArrayBuffer | Uint8Array): Uint8Array {\n if (o instanceof Uint8Array && o.constructor.name === 'Uint8Array') return o\n if (o instanceof ArrayBuffer) return new Uint8Array(o)\n if (ArrayBuffer.isView(o)) {\n return new Uint8Array(o.buffer, o.byteOffset, o.byteLength)\n }\n throw new Error('Unknown type, must be binary type')\n}\n\nexport function isBinary (o: unknown): o is ArrayBuffer | ArrayBufferView {\n return o instanceof ArrayBuffer || ArrayBuffer.isView(o)\n}\n\nexport function fromString (str: string): Uint8Array {\n return new TextEncoder().encode(str)\n}\n\nexport function toString (b: Uint8Array): string {\n return new TextDecoder().decode(b)\n}\n", "/* eslint-disable */\n// base-x encoding / decoding\n// Copyright (c) 2018 base-x contributors\n// Copyright (c) 2014-2018 The Bitcoin Core developers (base58.cpp)\n// Distributed under the MIT software license, see the accompanying\n// file LICENSE or http://www.opensource.org/licenses/mit-license.php.\n/**\n * @param {string} ALPHABET\n * @param {any} name\n */\nfunction base (ALPHABET, name) {\n if (ALPHABET.length >= 255) { throw new TypeError('Alphabet too long') }\n var BASE_MAP = new Uint8Array(256);\n for (var j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255;\n }\n for (var i = 0; i < ALPHABET.length; i++) {\n var x = ALPHABET.charAt(i);\n var xc = x.charCodeAt(0);\n if (BASE_MAP[xc] !== 255) { throw new TypeError(x + ' is ambiguous') }\n BASE_MAP[xc] = i;\n }\n var BASE = ALPHABET.length;\n var LEADER = ALPHABET.charAt(0);\n var FACTOR = Math.log(BASE) / Math.log(256); // log(BASE) / log(256), rounded up\n var iFACTOR = Math.log(256) / Math.log(BASE); // log(256) / log(BASE), rounded up\n /**\n * @param {any[] | Iterable<number>} source\n */\n function encode (source) {\n // @ts-ignore\n if (source instanceof Uint8Array) ; else if (ArrayBuffer.isView(source)) {\n source = new Uint8Array(source.buffer, source.byteOffset, source.byteLength);\n } else if (Array.isArray(source)) {\n source = Uint8Array.from(source);\n }\n if (!(source instanceof Uint8Array)) { throw new TypeError('Expected Uint8Array') }\n if (source.length === 0) { return '' }\n // Skip & count leading zeroes.\n var zeroes = 0;\n var length = 0;\n var pbegin = 0;\n var pend = source.length;\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++;\n zeroes++;\n }\n // Allocate enough space in big-endian base58 representation.\n var size = ((pend - pbegin) * iFACTOR + 1) >>> 0;\n var b58 = new Uint8Array(size);\n // Process the bytes.\n while (pbegin !== pend) {\n var carry = source[pbegin];\n // Apply \"b58 = b58 * 256 + ch\".\n var i = 0;\n for (var it1 = size - 1; (carry !== 0 || i < length) && (it1 !== -1); it1--, i++) {\n carry += (256 * b58[it1]) >>> 0;\n b58[it1] = (carry % BASE) >>> 0;\n carry = (carry / BASE) >>> 0;\n }\n if (carry !== 0) { throw new Error('Non-zero carry') }\n length = i;\n pbegin++;\n }\n // Skip leading zeroes in base58 result.\n var it2 = size - length;\n while (it2 !== size && b58[it2] === 0) {\n it2++;\n }\n // Translate the result into a string.\n var str = LEADER.repeat(zeroes);\n for (; it2 < size; ++it2) { str += ALPHABET.charAt(b58[it2]); }\n return str\n }\n /**\n * @param {string | string[]} source\n */\n function decodeUnsafe (source) {\n if (typeof source !== 'string') { throw new TypeError('Expected String') }\n if (source.length === 0) { return new Uint8Array() }\n var psz = 0;\n // Skip leading spaces.\n if (source[psz] === ' ') { return }\n // Skip and count leading '1's.\n var zeroes = 0;\n var length = 0;\n while (source[psz] === LEADER) {\n zeroes++;\n psz++;\n }\n // Allocate enough space in big-endian base256 representation.\n var size = (((source.length - psz) * FACTOR) + 1) >>> 0; // log(58) / log(256), rounded up.\n var b256 = new Uint8Array(size);\n // Process the characters.\n while (source[psz]) {\n // Decode character\n var carry = BASE_MAP[source.charCodeAt(psz)];\n // Invalid character\n if (carry === 255) { return }\n var i = 0;\n for (var it3 = size - 1; (carry !== 0 || i < length) && (it3 !== -1); it3--, i++) {\n carry += (BASE * b256[it3]) >>> 0;\n b256[it3] = (carry % 256) >>> 0;\n carry = (carry / 256) >>> 0;\n }\n if (carry !== 0) { throw new Error('Non-zero carry') }\n length = i;\n psz++;\n }\n // Skip trailing spaces.\n if (source[psz] === ' ') { return }\n // Skip leading zeroes in b256.\n var it4 = size - length;\n while (it4 !== size && b256[it4] === 0) {\n it4++;\n }\n var vch = new Uint8Array(zeroes + (size - it4));\n var j = zeroes;\n while (it4 !== size) {\n vch[j++] = b256[it4++];\n }\n return vch\n }\n /**\n * @param {string | string[]} string\n */\n function decode (string) {\n var buffer = decodeUnsafe(string);\n if (buffer) { return buffer }\n throw new Error(`Non-${name} character`)\n }\n return {\n encode: encode,\n decodeUnsafe: decodeUnsafe,\n decode: decode\n }\n}\nvar src = base;\n\nvar _brrp__multiformats_scope_baseX = src;\n\nexport default _brrp__multiformats_scope_baseX;\n", "import { coerce } from '../bytes.js'\nimport basex from '../vendor/base-x.js'\nimport type { BaseCodec, BaseDecoder, BaseEncoder, CombobaseDecoder, Multibase, MultibaseCodec, MultibaseDecoder, MultibaseEncoder, UnibaseDecoder } from './interface.js'\n\ninterface EncodeFn { (bytes: Uint8Array): string }\ninterface DecodeFn { (text: string): Uint8Array }\n\n/**\n * Class represents both BaseEncoder and MultibaseEncoder meaning it\n * can be used to encode to multibase or base encode without multibase\n * prefix.\n */\nclass Encoder<Base extends string, Prefix extends string> implements MultibaseEncoder<Prefix>, BaseEncoder {\n readonly name: Base\n readonly prefix: Prefix\n readonly baseEncode: EncodeFn\n\n constructor (name: Base, prefix: Prefix, baseEncode: EncodeFn) {\n this.name = name\n this.prefix = prefix\n this.baseEncode = baseEncode\n }\n\n encode (bytes: Uint8Array): Multibase<Prefix> {\n if (bytes instanceof Uint8Array) {\n return `${this.prefix}${this.baseEncode(bytes)}`\n } else {\n throw Error('Unknown type, must be binary type')\n }\n }\n}\n\n/**\n * Class represents both BaseDecoder and MultibaseDecoder so it could be used\n * to decode multibases (with matching prefix) or just base decode strings\n * with corresponding base encoding.\n */\nclass Decoder<Base extends string, Prefix extends string> implements MultibaseDecoder<Prefix>, UnibaseDecoder<Prefix>, BaseDecoder {\n readonly name: Base\n readonly prefix: Prefix\n readonly baseDecode: DecodeFn\n private readonly prefixCodePoint: number\n\n constructor (name: Base, prefix: Prefix, baseDecode: DecodeFn) {\n this.name = name\n this.prefix = prefix\n const prefixCodePoint = prefix.codePointAt(0)\n /* c8 ignore next 3 */\n if (prefixCodePoint === undefined) {\n throw new Error('Invalid prefix character')\n }\n this.prefixCodePoint = prefixCodePoint\n this.baseDecode = baseDecode\n }\n\n decode (text: string): Uint8Array {\n if (typeof text === 'string') {\n if (text.codePointAt(0) !== this.prefixCodePoint) {\n throw Error(`Unable to decode multibase string ${JSON.stringify(text)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`)\n }\n return this.baseDecode(text.slice(this.prefix.length))\n } else {\n throw Error('Can only multibase decode strings')\n }\n }\n\n or<OtherPrefix extends string> (decoder: UnibaseDecoder<OtherPrefix> | ComposedDecoder<OtherPrefix>): ComposedDecoder<Prefix | OtherPrefix> {\n return or(this, decoder)\n }\n}\n\ntype Decoders<Prefix extends string> = Record<Prefix, UnibaseDecoder<Prefix>>\n\nclass ComposedDecoder<Prefix extends string> implements MultibaseDecoder<Prefix>, CombobaseDecoder<Prefix> {\n readonly decoders: Decoders<Prefix>\n\n constructor (decoders: Decoders<Prefix>) {\n this.decoders = decoders\n }\n\n or <OtherPrefix extends string> (decoder: UnibaseDecoder<OtherPrefix> | ComposedDecoder<OtherPrefix>): ComposedDecoder<Prefix | OtherPrefix> {\n return or(this, decoder)\n }\n\n decode (input: string): Uint8Array {\n const prefix = input[0] as Prefix\n const decoder = this.decoders[prefix]\n if (decoder != null) {\n return decoder.decode(input)\n } else {\n throw RangeError(`Unable to decode multibase string ${JSON.stringify(input)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)\n }\n }\n}\n\nexport function or <L extends string, R extends string> (left: UnibaseDecoder<L> | CombobaseDecoder<L>, right: UnibaseDecoder<R> | CombobaseDecoder<R>): ComposedDecoder<L | R> {\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n return new ComposedDecoder({\n ...(left.decoders ?? { [(left as UnibaseDecoder<L>).prefix]: left }),\n ...(right.decoders ?? { [(right as UnibaseDecoder<R>).prefix]: right })\n } as Decoders<L | R>)\n}\n\nexport class Codec<Base extends string, Prefix extends string> implements MultibaseCodec<Prefix>, MultibaseEncoder<Prefix>, MultibaseDecoder<Prefix>, BaseCodec, BaseEncoder, BaseDecoder {\n readonly name: Base\n readonly prefix: Prefix\n readonly baseEncode: EncodeFn\n readonly baseDecode: DecodeFn\n readonly encoder: Encoder<Base, Prefix>\n readonly decoder: Decoder<Base, Prefix>\n\n constructor (name: Base, prefix: Prefix, baseEncode: EncodeFn, baseDecode: DecodeFn) {\n this.name = name\n this.prefix = prefix\n this.baseEncode = baseEncode\n this.baseDecode = baseDecode\n this.encoder = new Encoder(name, prefix, baseEncode)\n this.decoder = new Decoder(name, prefix, baseDecode)\n }\n\n encode (input: Uint8Array): string {\n return this.encoder.encode(input)\n }\n\n decode (input: string): Uint8Array {\n return this.decoder.decode(input)\n }\n}\n\nexport function from <Base extends string, Prefix extends string> ({ name, prefix, encode, decode }: { name: Base, prefix: Prefix, encode: EncodeFn, decode: DecodeFn }): Codec<Base, Prefix> {\n return new Codec(name, prefix, encode, decode)\n}\n\nexport function baseX <Base extends string, Prefix extends string> ({ name, prefix, alphabet }: { name: Base, prefix: Prefix, alphabet: string }): Codec<Base, Prefix> {\n const { encode, decode } = basex(alphabet, name)\n return from({\n prefix,\n name,\n encode,\n decode: (text: string): Uint8Array => coerce(decode(text))\n })\n}\n\nfunction decode (string: string, alphabet: string, bitsPerChar: number, name: string): Uint8Array {\n // Build the character lookup table:\n const codes: Record<string, number> = {}\n for (let i = 0; i < alphabet.length; ++i) {\n codes[alphabet[i]] = i\n }\n\n // Count the padding bytes:\n let end = string.length\n while (string[end - 1] === '=') {\n --end\n }\n\n // Allocate the output:\n const out = new Uint8Array((end * bitsPerChar / 8) | 0)\n\n // Parse the data:\n let bits = 0 // Number of bits currently in the buffer\n let buffer = 0 // Bits waiting to be written out, MSB first\n let written = 0 // Next byte to write\n for (let i = 0; i < end; ++i) {\n // Read one character from the string:\n const value = codes[string[i]]\n if (value === undefined) {\n throw new SyntaxError(`Non-${name} character`)\n }\n\n // Append the bits to the buffer:\n buffer = (buffer << bitsPerChar) | value\n bits += bitsPerChar\n\n // Write out some bits if the buffer has a byte's worth:\n if (bits >= 8) {\n bits -= 8\n out[written++] = 0xff & (buffer >> bits)\n }\n }\n\n // Verify that we have received just enough bits:\n if (bits >= bitsPerChar || (0xff & (buffer << (8 - bits))) !== 0) {\n throw new SyntaxError('Unexpected end of data')\n }\n\n return out\n}\n\nfunction encode (data: Uint8Array, alphabet: string, bitsPerChar: number): string {\n const pad = alphabet[alphabet.length - 1] === '='\n const mask = (1 << bitsPerChar) - 1\n let out = ''\n\n let bits = 0 // Number of bits currently in the buffer\n let buffer = 0 // Bits waiting to be written out, MSB first\n for (let i = 0; i < data.length; ++i) {\n // Slurp data into the buffer:\n buffer = (buffer << 8) | data[i]\n bits += 8\n\n // Write out as much as we can:\n while (bits > bitsPerChar) {\n bits -= bitsPerChar\n out += alphabet[mask & (buffer >> bits)]\n }\n }\n\n // Partial character:\n if (bits !== 0) {\n out += alphabet[mask & (buffer << (bitsPerChar - bits))]\n }\n\n // Add padding characters until we hit a byte boundary:\n if (pad) {\n while (((out.length * bitsPerChar) & 7) !== 0) {\n out += '='\n }\n }\n\n return out\n}\n\n/**\n * RFC4648 Factory\n */\nexport function rfc4648 <Base extends string, Prefix extends string> ({ name, prefix, bitsPerChar, alphabet }: { name: Base, prefix: Prefix, bitsPerChar: number, alphabet: string }): Codec<Base, Prefix> {\n return from({\n prefix,\n name,\n encode (input: Uint8Array): string {\n return encode(input, alphabet, bitsPerChar)\n },\n decode (input: string): Uint8Array {\n return decode(input, alphabet, bitsPerChar, name)\n }\n })\n}\n", "import { rfc4648 } from './base.js'\n\nexport const base16 = rfc4648({\n prefix: 'f',\n name: 'base16',\n alphabet: '0123456789abcdef',\n bitsPerChar: 4\n})\n\nexport const base16upper = rfc4648({\n prefix: 'F',\n name: 'base16upper',\n alphabet: '0123456789ABCDEF',\n bitsPerChar: 4\n})\n", "import { rfc4648 } from './base.js'\n\nexport const base2 = rfc4648({\n prefix: '0',\n name: 'base2',\n alphabet: '01',\n bitsPerChar: 1\n})\n", "import { from } from './base.js'\n\nconst alphabet = Array.from('\uD83D\uDE80\uD83E\uDE90\u2604\uD83D\uDEF0\uD83C\uDF0C\uD83C\uDF11\uD83C\uDF12\uD83C\uDF13\uD83C\uDF14\uD83C\uDF15\uD83C\uDF16\uD83C\uDF17\uD83C\uDF18\uD83C\uDF0D\uD83C\uDF0F\uD83C\uDF0E\uD83D\uDC09\u2600\uD83D\uDCBB\uD83D\uDDA5\uD83D\uDCBE\uD83D\uDCBF\uD83D\uDE02\u2764\uD83D\uDE0D\uD83E\uDD23\uD83D\uDE0A\uD83D\uDE4F\uD83D\uDC95\uD83D\uDE2D\uD83D\uDE18\uD83D\uDC4D\uD83D\uDE05\uD83D\uDC4F\uD83D\uDE01\uD83D\uDD25\uD83E\uDD70\uD83D\uDC94\uD83D\uDC96\uD83D\uDC99\uD83D\uDE22\uD83E\uDD14\uD83D\uDE06\uD83D\uDE44\uD83D\uDCAA\uD83D\uDE09\u263A\uD83D\uDC4C\uD83E\uDD17\uD83D\uDC9C\uD83D\uDE14\uD83D\uDE0E\uD83D\uDE07\uD83C\uDF39\uD83E\uDD26\uD83C\uDF89\uD83D\uDC9E\u270C\u2728\uD83E\uDD37\uD83D\uDE31\uD83D\uDE0C\uD83C\uDF38\uD83D\uDE4C\uD83D\uDE0B\uD83D\uDC97\uD83D\uDC9A\uD83D\uDE0F\uD83D\uDC9B\uD83D\uDE42\uD83D\uDC93\uD83E\uDD29\uD83D\uDE04\uD83D\uDE00\uD83D\uDDA4\uD83D\uDE03\uD83D\uDCAF\uD83D\uDE48\uD83D\uDC47\uD83C\uDFB6\uD83D\uDE12\uD83E\uDD2D\u2763\uD83D\uDE1C\uD83D\uDC8B\uD83D\uDC40\uD83D\uDE2A\uD83D\uDE11\uD83D\uDCA5\uD83D\uDE4B\uD83D\uDE1E\uD83D\uDE29\uD83D\uDE21\uD83E\uDD2A\uD83D\uDC4A\uD83E\uDD73\uD83D\uDE25\uD83E\uDD24\uD83D\uDC49\uD83D\uDC83\uD83D\uDE33\u270B\uD83D\uDE1A\uD83D\uDE1D\uD83D\uDE34\uD83C\uDF1F\uD83D\uDE2C\uD83D\uDE43\uD83C\uDF40\uD83C\uDF37\uD83D\uDE3B\uD83D\uDE13\u2B50\u2705\uD83E\uDD7A\uD83C\uDF08\uD83D\uDE08\uD83E\uDD18\uD83D\uDCA6\u2714\uD83D\uDE23\uD83C\uDFC3\uD83D\uDC90\u2639\uD83C\uDF8A\uD83D\uDC98\uD83D\uDE20\u261D\uD83D\uDE15\uD83C\uDF3A\uD83C\uDF82\uD83C\uDF3B\uD83D\uDE10\uD83D\uDD95\uD83D\uDC9D\uD83D\uDE4A\uD83D\uDE39\uD83D\uDDE3\uD83D\uDCAB\uD83D\uDC80\uD83D\uDC51\uD83C\uDFB5\uD83E\uDD1E\uD83D\uDE1B\uD83D\uDD34\uD83D\uDE24\uD83C\uDF3C\uD83D\uDE2B\u26BD\uD83E\uDD19\u2615\uD83C\uDFC6\uD83E\uDD2B\uD83D\uDC48\uD83D\uDE2E\uD83D\uDE46\uD83C\uDF7B\uD83C\uDF43\uD83D\uDC36\uD83D\uDC81\uD83D\uDE32\uD83C\uDF3F\uD83E\uDDE1\uD83C\uDF81\u26A1\uD83C\uDF1E\uD83C\uDF88\u274C\u270A\uD83D\uDC4B\uD83D\uDE30\uD83E\uDD28\uD83D\uDE36\uD83E\uDD1D\uD83D\uDEB6\uD83D\uDCB0\uD83C\uDF53\uD83D\uDCA2\uD83E\uDD1F\uD83D\uDE41\uD83D\uDEA8\uD83D\uDCA8\uD83E\uDD2C\u2708\uD83C\uDF80\uD83C\uDF7A\uD83E\uDD13\uD83D\uDE19\uD83D\uDC9F\uD83C\uDF31\uD83D\uDE16\uD83D\uDC76\uD83E\uDD74\u25B6\u27A1\u2753\uD83D\uDC8E\uD83D\uDCB8\u2B07\uD83D\uDE28\uD83C\uDF1A\uD83E\uDD8B\uD83D\uDE37\uD83D\uDD7A\u26A0\uD83D\uDE45\uD83D\uDE1F\uD83D\uDE35\uD83D\uDC4E\uD83E\uDD32\uD83E\uDD20\uD83E\uDD27\uD83D\uDCCC\uD83D\uDD35\uD83D\uDC85\uD83E\uDDD0\uD83D\uDC3E\uD83C\uDF52\uD83D\uDE17\uD83E\uDD11\uD83C\uDF0A\uD83E\uDD2F\uD83D\uDC37\u260E\uD83D\uDCA7\uD83D\uDE2F\uD83D\uDC86\uD83D\uDC46\uD83C\uDFA4\uD83D\uDE47\uD83C\uDF51\u2744\uD83C\uDF34\uD83D\uDCA3\uD83D\uDC38\uD83D\uDC8C\uD83D\uDCCD\uD83E\uDD40\uD83E\uDD22\uD83D\uDC45\uD83D\uDCA1\uD83D\uDCA9\uD83D\uDC50\uD83D\uDCF8\uD83D\uDC7B\uD83E\uDD10\uD83E\uDD2E\uD83C\uDFBC\uD83E\uDD75\uD83D\uDEA9\uD83C\uDF4E\uD83C\uDF4A\uD83D\uDC7C\uD83D\uDC8D\uD83D\uDCE3\uD83E\uDD42')\nconst alphabetBytesToChars: string[] = (alphabet.reduce<string[]>((p, c, i) => { p[i] = c; return p }, ([])))\nconst alphabetCharsToBytes: number[] = (alphabet.reduce<number[]>((p, c, i) => {\n const codePoint = c.codePointAt(0)\n if (codePoint == null) {\n throw new Error(`Invalid character: ${c}`)\n }\n p[codePoint] = i\n return p\n}, ([])))\n\nfunction encode (data: Uint8Array): string {\n return data.reduce((p, c) => {\n p += alphabetBytesToChars[c]\n return p\n }, '')\n}\n\nfunction decode (str: string): Uint8Array {\n const byts = []\n for (const char of str) {\n const codePoint = char.codePointAt(0)\n if (codePoint == null) {\n throw new Error(`Invalid character: ${char}`)\n }\n const byt = alphabetCharsToBytes[codePoint]\n if (byt == null) {\n throw new Error(`Non-base256emoji character: ${char}`)\n }\n byts.push(byt)\n }\n return new Uint8Array(byts)\n}\n\nexport const base256emoji = from({\n prefix: '\uD83D\uDE80',\n name: 'base256emoji',\n encode,\n decode\n})\n", "import { rfc4648 } from './base.js'\n\nexport const base32 = rfc4648({\n prefix: 'b',\n name: 'base32',\n alphabet: 'abcdefghijklmnopqrstuvwxyz234567',\n bitsPerChar: 5\n})\n\nexport const base32upper = rfc4648({\n prefix: 'B',\n name: 'base32upper',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567',\n bitsPerChar: 5\n})\n\nexport const base32pad = rfc4648({\n prefix: 'c',\n name: 'base32pad',\n alphabet: 'abcdefghijklmnopqrstuvwxyz234567=',\n bitsPerChar: 5\n})\n\nexport const base32padupper = rfc4648({\n prefix: 'C',\n name: 'base32padupper',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=',\n bitsPerChar: 5\n})\n\nexport const base32hex = rfc4648({\n prefix: 'v',\n name: 'base32hex',\n alphabet: '0123456789abcdefghijklmnopqrstuv',\n bitsPerChar: 5\n})\n\nexport const base32hexupper = rfc4648({\n prefix: 'V',\n name: 'base32hexupper',\n alphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUV',\n bitsPerChar: 5\n})\n\nexport const base32hexpad = rfc4648({\n prefix: 't',\n name: 'base32hexpad',\n alphabet: '0123456789abcdefghijklmnopqrstuv=',\n bitsPerChar: 5\n})\n\nexport const base32hexpadupper = rfc4648({\n prefix: 'T',\n name: 'base32hexpadupper',\n alphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUV=',\n bitsPerChar: 5\n})\n\nexport const base32z = rfc4648({\n prefix: 'h',\n name: 'base32z',\n alphabet: 'ybndrfg8ejkmcpqxot1uwisza345h769',\n bitsPerChar: 5\n})\n", "import { baseX } from './base.js'\n\nexport const base36 = baseX({\n prefix: 'k',\n name: 'base36',\n alphabet: '0123456789abcdefghijklmnopqrstuvwxyz'\n})\n\nexport const base36upper = baseX({\n prefix: 'K',\n name: 'base36upper',\n alphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'\n})\n", "import { baseX } from './base.js'\n\nexport const base58btc = baseX({\n name: 'base58btc',\n prefix: 'z',\n alphabet: '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'\n})\n\nexport const base58flickr = baseX({\n name: 'base58flickr',\n prefix: 'Z',\n alphabet: '123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ'\n})\n", "import { rfc4648 } from './base.js'\n\nexport const base64 = rfc4648({\n prefix: 'm',\n name: 'base64',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',\n bitsPerChar: 6\n})\n\nexport const base64pad = rfc4648({\n prefix: 'M',\n name: 'base64pad',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=',\n bitsPerChar: 6\n})\n\nexport const base64url = rfc4648({\n prefix: 'u',\n name: 'base64url',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_',\n bitsPerChar: 6\n})\n\nexport const base64urlpad = rfc4648({\n prefix: 'U',\n name: 'base64urlpad',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=',\n bitsPerChar: 6\n})\n", "import { rfc4648 } from './base.js'\n\nexport const base8 = rfc4648({\n prefix: '7',\n name: 'base8',\n alphabet: '01234567',\n bitsPerChar: 3\n})\n", "import { fromString, toString } from '../bytes.js'\nimport { from } from './base.js'\n\nexport const identity = from({\n prefix: '\\x00',\n name: 'identity',\n encode: (buf) => toString(buf),\n decode: (str) => fromString(str)\n})\n", "import type { ArrayBufferView, ByteView } from './interface.js'\n\nconst textEncoder = new TextEncoder()\nconst textDecoder = new TextDecoder()\n\nexport const name = 'json'\nexport const code = 0x0200\n\nexport function encode <T> (node: T): ByteView<T> {\n return textEncoder.encode(JSON.stringify(node))\n}\n\nexport function decode <T> (data: ByteView<T> | ArrayBufferView<T>): T {\n return JSON.parse(textDecoder.decode(data))\n}\n", "import { coerce } from '../bytes.js'\nimport * as Digest from './digest.js'\n\nconst code: 0x0 = 0x0\nconst name = 'identity'\n\nconst encode: (input: Uint8Array) => Uint8Array = coerce\n\nfunction digest (input: Uint8Array): Digest.Digest<typeof code, number> {\n return Digest.create(code, encode(input))\n}\n\nexport const identity = { code, name, encode, digest }\n", "/* eslint-disable */\nvar encode_1 = encode;\n\nvar MSB = 0x80\n , REST = 0x7F\n , MSBALL = ~REST\n , INT = Math.pow(2, 31);\n\n/**\n * @param {number} num\n * @param {number[]} out\n * @param {number} offset\n */\nfunction encode(num, out, offset) {\n out = out || [];\n offset = offset || 0;\n var oldOffset = offset;\n\n while(num >= INT) {\n out[offset++] = (num & 0xFF) | MSB;\n num /= 128;\n }\n while(num & MSBALL) {\n out[offset++] = (num & 0xFF) | MSB;\n num >>>= 7;\n }\n out[offset] = num | 0;\n \n // @ts-ignore\n encode.bytes = offset - oldOffset + 1;\n \n return out\n}\n\nvar decode = read;\n\nvar MSB$1 = 0x80\n , REST$1 = 0x7F;\n\n/**\n * @param {string | any[]} buf\n * @param {number} offset\n */\nfunction read(buf, offset) {\n var res = 0\n , offset = offset || 0\n , shift = 0\n , counter = offset\n , b\n , l = buf.length;\n\n do {\n if (counter >= l) {\n // @ts-ignore\n read.bytes = 0;\n throw new RangeError('Could not decode varint')\n }\n b = buf[counter++];\n res += shift < 28\n ? (b & REST$1) << shift\n : (b & REST$1) * Math.pow(2, shift);\n shift += 7;\n } while (b >= MSB$1)\n\n // @ts-ignore\n read.bytes = counter - offset;\n\n return res\n}\n\nvar N1 = Math.pow(2, 7);\nvar N2 = Math.pow(2, 14);\nvar N3 = Math.pow(2, 21);\nvar N4 = Math.pow(2, 28);\nvar N5 = Math.pow(2, 35);\nvar N6 = Math.pow(2, 42);\nvar N7 = Math.pow(2, 49);\nvar N8 = Math.pow(2, 56);\nvar N9 = Math.pow(2, 63);\n\nvar length = function (/** @type {number} */ value) {\n return (\n value < N1 ? 1\n : value < N2 ? 2\n : value < N3 ? 3\n : value < N4 ? 4\n : value < N5 ? 5\n : value < N6 ? 6\n : value < N7 ? 7\n : value < N8 ? 8\n : value < N9 ? 9\n : 10\n )\n};\n\nvar varint = {\n encode: encode_1\n , decode: decode\n , encodingLength: length\n};\n\nvar _brrp_varint = varint;\n\nexport default _brrp_varint;\n", "import varint from './vendor/varint.js'\n\nexport function decode (data: Uint8Array, offset = 0): [number, number] {\n const code = varint.decode(data, offset)\n return [code, varint.decode.bytes]\n}\n\nexport function encodeTo (int: number, target: Uint8Array, offset = 0): Uint8Array {\n varint.encode(int, target, offset)\n return target\n}\n\nexport function encodingLength (int: number): number {\n return varint.encodingLength(int)\n}\n", "import { coerce, equals as equalBytes } from '../bytes.js'\nimport * as varint from '../varint.js'\nimport type { MultihashDigest } from './interface.js'\n\n/**\n * Creates a multihash digest.\n */\nexport function create <Code extends number> (code: Code, digest: Uint8Array): Digest<Code, number> {\n const size = digest.byteLength\n const sizeOffset = varint.encodingLength(code)\n const digestOffset = sizeOffset + varint.encodingLength(size)\n\n const bytes = new Uint8Array(digestOffset + size)\n varint.encodeTo(code, bytes, 0)\n varint.encodeTo(size, bytes, sizeOffset)\n bytes.set(digest, digestOffset)\n\n return new Digest(code, size, digest, bytes)\n}\n\n/**\n * Turns bytes representation of multihash digest into an instance.\n */\nexport function decode (multihash: Uint8Array): MultihashDigest {\n const bytes = coerce(multihash)\n const [code, sizeOffset] = varint.decode(bytes)\n const [size, digestOffset] = varint.decode(bytes.subarray(sizeOffset))\n const digest = bytes.subarray(sizeOffset + digestOffset)\n\n if (digest.byteLength !== size) {\n throw new Error('Incorrect length')\n }\n\n return new Digest(code, size, digest, bytes)\n}\n\nexport function equals (a: MultihashDigest, b: unknown): b is MultihashDigest {\n if (a === b) {\n return true\n } else {\n const data = b as { code?: unknown, size?: unknown, bytes?: unknown }\n\n return (\n a.code === data.code &&\n a.size === data.size &&\n data.bytes instanceof Uint8Array &&\n equalBytes(a.bytes, data.bytes)\n )\n }\n}\n\n/**\n * Represents a multihash digest which carries information about the\n * hashing algorithm and an actual hash digest.\n */\nexport class Digest<Code extends number, Size extends number> implements MultihashDigest {\n readonly code: Code\n readonly size: Size\n readonly digest: Uint8Array\n readonly bytes: Uint8Array\n\n /**\n * Creates a multihash digest.\n */\n constructor (code: Code, size: Size, digest: Uint8Array, bytes: Uint8Array) {\n this.code = code\n this.size = size\n this.digest = digest\n this.bytes = bytes\n }\n}\n\n/**\n * Used to check that the passed multihash has the passed code\n */\nexport function hasCode <T extends number> (digest: MultihashDigest, code: T): digest is MultihashDigest<T> {\n return digest.code === code\n}\n", "/* global crypto */\n\nimport { from } from './hasher.js'\n\nfunction sha (name: AlgorithmIdentifier): (data: Uint8Array) => Promise<Uint8Array> {\n return async data => new Uint8Array(await crypto.subtle.digest(name, data))\n}\n\nexport const sha256 = from({\n name: 'sha2-256',\n code: 0x12,\n encode: sha('SHA-256')\n})\n\nexport const sha512 = from({\n name: 'sha2-512',\n code: 0x13,\n encode: sha('SHA-512')\n})\n", "import * as Digest from './digest.js'\nimport type { MultihashHasher } from './interface.js'\n\ntype Await<T> = Promise<T> | T\n\nexport function from <Name extends string, Code extends number> ({ name, code, encode }: { name: Name, code: Code, encode(input: Uint8Array): Await<Uint8Array> }): Hasher<Name, Code> {\n return new Hasher(name, code, encode)\n}\n\n/**\n * Hasher represents a hashing algorithm implementation that produces as\n * `MultihashDigest`.\n */\nexport class Hasher<Name extends string, Code extends number> implements MultihashHasher<Code> {\n readonly name: Name\n readonly code: Code\n readonly encode: (input: Uint8Array) => Await<Uint8Array>\n\n constructor (name: Name, code: Code, encode: (input: Uint8Array) => Await<Uint8Array>) {\n this.name = name\n this.code = code\n this.encode = encode\n }\n\n digest (input: Uint8Array): Await<Digest.Digest<Code, number>> {\n if (input instanceof Uint8Array) {\n const result = this.encode(input)\n return result instanceof Uint8Array\n ? Digest.create(this.code, result)\n /* c8 ignore next 1 */\n : result.then(digest => Digest.create(this.code, digest))\n } else {\n throw Error('Unknown type, must be binary type')\n /* c8 ignore next 1 */\n }\n }\n}\n", "import { base32 } from './bases/base32.js'\nimport { base36 } from './bases/base36.js'\nimport { base58btc } from './bases/base58.js'\nimport { coerce } from './bytes.js'\nimport * as Digest from './hashes/digest.js'\nimport * as varint from './varint.js'\nimport type * as API from './link/interface.js'\n\n// This way TS will also expose all the types from module\nexport * from './link/interface.js'\n\nexport function format <T extends API.Link<unknown, number, number, API.Version>, Prefix extends string> (link: T, base?: API.MultibaseEncoder<Prefix>): API.ToString<T, Prefix> {\n const { bytes, version } = link\n switch (version) {\n case 0:\n return toStringV0(\n bytes,\n baseCache(link),\n base as API.MultibaseEncoder<'z'> ?? base58btc.encoder\n )\n default:\n return toStringV1(\n bytes,\n baseCache(link),\n (base ?? base32.encoder) as API.MultibaseEncoder<Prefix>\n )\n }\n}\n\nexport function toJSON <Link extends API.UnknownLink> (link: Link): API.LinkJSON<Link> {\n return {\n '/': format(link)\n }\n}\n\nexport function fromJSON <Link extends API.UnknownLink> (json: API.LinkJSON<Link>): CID<unknown, number, number, API.Version> {\n return CID.parse(json['/'])\n}\n\nconst cache = new WeakMap<API.UnknownLink, Map<string, string>>()\n\nfunction baseCache (cid: API.UnknownLink): Map<string, string> {\n const baseCache = cache.get(cid)\n if (baseCache == null) {\n const baseCache = new Map()\n cache.set(cid, baseCache)\n return baseCache\n }\n return baseCache\n}\n\nexport class CID<Data = unknown, Format extends number = number, Alg extends number = number, Version extends API.Version = API.Version> implements API.Link<Data, Format, Alg, Version> {\n readonly code: Format\n readonly version: Version\n readonly multihash: API.MultihashDigest<Alg>\n readonly bytes: Uint8Array\n readonly '/': Uint8Array\n\n /**\n * @param version - Version of the CID\n * @param code - Code of the codec content is encoded in, see https://github.com/multiformats/multicodec/blob/master/table.csv\n * @param multihash - (Multi)hash of the of the content.\n */\n constructor (version: Version, code: Format, multihash: API.MultihashDigest<Alg>, bytes: Uint8Array) {\n this.code = code\n this.version = version\n this.multihash = multihash\n this.bytes = bytes\n\n // flag to serializers that this is a CID and\n // should be treated specially\n this['/'] = bytes\n }\n\n /**\n * Signalling `cid.asCID === cid` has been replaced with `cid['/'] === cid.bytes`\n * please either use `CID.asCID(cid)` or switch to new signalling mechanism\n *\n * @deprecated\n */\n get asCID (): this {\n return this\n }\n\n // ArrayBufferView\n get byteOffset (): number {\n return this.bytes.byteOffset\n }\n\n // ArrayBufferView\n get byteLength (): number {\n return this.bytes.byteLength\n }\n\n toV0 (): CID<Data, API.DAG_PB, API.SHA_256, 0> {\n switch (this.version) {\n case 0: {\n return this as CID<Data, API.DAG_PB, API.SHA_256, 0>\n }\n case 1: {\n const { code, multihash } = this\n\n if (code !== DAG_PB_CODE) {\n throw new Error('Cannot convert a non dag-pb CID to CIDv0')\n }\n\n // sha2-256\n if (multihash.code !== SHA_256_CODE) {\n throw new Error('Cannot convert non sha2-256 multihash CID to CIDv0')\n }\n\n return (\n CID.createV0(\n multihash as API.MultihashDigest<API.SHA_256>\n )\n )\n }\n default: {\n throw Error(\n `Can not convert CID version ${this.version} to version 0. This is a bug please report`\n )\n }\n }\n }\n\n toV1 (): CID<Data, Format, Alg, 1> {\n switch (this.version) {\n case 0: {\n const { code, digest } = this.multihash\n const multihash = Digest.create(code, digest)\n return (\n CID.createV1(this.code, multihash)\n )\n }\n case 1: {\n return this as CID<Data, Format, Alg, 1>\n }\n default: {\n throw Error(\n `Can not convert CID version ${this.version} to version 1. This is a bug please report`\n )\n }\n }\n }\n\n equals (other: unknown): other is CID<Data, Format, Alg, Version> {\n return CID.equals(this, other)\n }\n\n static equals <Data, Format extends number, Alg extends number, Version extends API.Version>(self: API.Link<Data, Format, Alg, Version>, other: unknown): other is CID {\n const unknown = other as { code?: unknown, version?: unknown, multihash?: unknown }\n return (\n unknown != null &&\n self.code === unknown.code &&\n self.version === unknown.version &&\n Digest.equals(self.multihash, unknown.multihash)\n )\n }\n\n toString (base?: API.MultibaseEncoder<string>): string {\n return format(this, base)\n }\n\n toJSON (): API.LinkJSON<this> {\n return { '/': format(this) }\n }\n\n link (): this {\n return this\n }\n\n readonly [Symbol.toStringTag] = 'CID';\n\n // Legacy\n\n [Symbol.for('nodejs.util.inspect.custom')] (): string {\n return `CID(${this.toString()})`\n }\n\n /**\n * Takes any input `value` and returns a `CID` instance if it was\n * a `CID` otherwise returns `null`. If `value` is instanceof `CID`\n * it will return value back. If `value` is not instance of this CID\n * class, but is compatible CID it will return new instance of this\n * `CID` class. Otherwise returns null.\n *\n * This allows two different incompatible versions of CID library to\n * co-exist and interop as long as binary interface is compatible.\n */\n static asCID <Data, Format extends number, Alg extends number, Version extends API.Version, U>(input: API.Link<Data, Format, Alg, Version> | U): CID<Data, Format, Alg, Version> | null {\n if (input == null) {\n return null\n }\n\n const value = input as any\n if (value instanceof CID) {\n // If value is instance of CID then we're all set.\n return value\n } else if ((value['/'] != null && value['/'] === value.bytes) || value.asCID === value) {\n // If value isn't instance of this CID class but `this.asCID === this` or\n // `value['/'] === value.bytes` is true it is CID instance coming from a\n // different implementation (diff version or duplicate). In that case we\n // rebase it to this `CID` implementation so caller is guaranteed to get\n // instance with expected API.\n const { version, code, multihash, bytes } = value\n return new CID(\n version,\n code,\n multihash as API.MultihashDigest<Alg>,\n bytes ?? encodeCID(version, code, multihash.bytes)\n )\n } else if (value[cidSymbol] === true) {\n // If value is a CID from older implementation that used to be tagged via\n // symbol we still rebase it to the this `CID` implementation by\n // delegating that to a constructor.\n const { version, multihash, code } = value\n const digest = Digest.decode(multihash) as API.MultihashDigest<Alg>\n return CID.create(version, code, digest)\n } else {\n // Otherwise value is not a CID (or an incompatible version of it) in\n // which case we return `null`.\n return null\n }\n }\n\n /**\n * @param version - Version of the CID\n * @param code - Code of the codec content is encoded in, see https://github.com/multiformats/multicodec/blob/master/table.csv\n * @param digest - (Multi)hash of the of the content.\n */\n static create <Data, Format extends number, Alg extends number, Version extends API.Version>(version: Version, code: Format, digest: API.MultihashDigest<Alg>): CID<Data, Format, Alg, Version> {\n if (typeof code !== 'number') {\n throw new Error('String codecs are no longer supported')\n }\n\n if (!(digest.bytes instanceof Uint8Array)) {\n throw new Error('Invalid digest')\n }\n\n switch (version) {\n case 0: {\n if (code !== DAG_PB_CODE) {\n throw new Error(\n `Version 0 CID must use dag-pb (code: ${DAG_PB_CODE}) block encoding`\n )\n } else {\n return new CID(version, code, digest, digest.bytes)\n }\n }\n case 1: {\n const bytes = encodeCID(version, code, digest.bytes)\n return new CID(version, code, digest, bytes)\n }\n default: {\n throw new Error('Invalid version')\n }\n }\n }\n\n /**\n * Simplified version of `create` for CIDv0.\n */\n static createV0 <T = unknown>(digest: API.MultihashDigest<typeof SHA_256_CODE>): CID<T, typeof DAG_PB_CODE, typeof SHA_256_CODE, 0> {\n return CID.create(0, DAG_PB_CODE, digest)\n }\n\n /**\n * Simplified version of `create` for CIDv1.\n *\n * @param code - Content encoding format code.\n * @param digest - Multihash of the content.\n */\n static createV1 <Data, Code extends number, Alg extends number>(code: Code, digest: API.MultihashDigest<Alg>): CID<Data, Code, Alg, 1> {\n return CID.create(1, code, digest)\n }\n\n /**\n * Decoded a CID from its binary representation. The byte array must contain\n * only the CID with no additional bytes.\n *\n * An error will be thrown if the bytes provided do not contain a valid\n * binary representation of a CID.\n */\n static decode <Data, Code extends number, Alg extends number, Version extends API.Version>(bytes: API.ByteView<API.Link<Data, Code, Alg, Version>>): CID<Data, Code, Alg, Version> {\n const [cid, remainder] = CID.decodeFirst(bytes)\n if (remainder.length !== 0) {\n throw new Error('Incorrect length')\n }\n return cid\n }\n\n /**\n * Decoded a CID from its binary representation at the beginning of a byte\n * array.\n *\n * Returns an array with the first element containing the CID and the second\n * element containing the remainder of the original byte array. The remainder\n * will be a zero-length byte array if the provided bytes only contained a\n * binary CID representation.\n */\n static decodeFirst <T, C extends number, A extends number, V extends API.Version>(bytes: API.ByteView<API.Link<T, C, A, V>>): [CID<T, C, A, V>, Uint8Array] {\n const specs = CID.inspectBytes(bytes)\n const prefixSize = specs.size - specs.multihashSize\n const multihashBytes = coerce(\n bytes.subarray(prefixSize, prefixSize + specs.multihashSize)\n )\n if (multihashBytes.byteLength !== specs.multihashSize) {\n throw new Error('Incorrect length')\n }\n const digestBytes = multihashBytes.subarray(\n specs.multihashSize - specs.digestSize\n )\n const digest = new Digest.Digest(\n specs.multihashCode,\n specs.digestSize,\n digestBytes,\n multihashBytes\n )\n const cid =\n specs.version === 0\n ? CID.createV0(digest as API.MultihashDigest<API.SHA_256>)\n : CID.createV1(specs.codec, digest)\n return [cid as CID<T, C, A, V>, bytes.subarray(specs.size)]\n }\n\n /**\n * Inspect the initial bytes of a CID to determine its properties.\n *\n * Involves decoding up to 4 varints. Typically this will require only 4 to 6\n * bytes but for larger multicodec code values and larger multihash digest\n * lengths these varints can be quite large. It is recommended that at least\n * 10 bytes be made available in the `initialBytes` argument for a complete\n * inspection.\n */\n static inspectBytes <T, C extends number, A extends number, V extends API.Version>(initialBytes: API.ByteView<API.Link<T, C, A, V>>): { version: V, codec: C, multihashCode: A, digestSize: number, multihashSize: number, size: number } {\n let offset = 0\n const next = (): number => {\n const [i, length] = varint.decode(initialBytes.subarray(offset))\n offset += length\n return i\n }\n\n let version = next() as V\n let codec = DAG_PB_CODE as C\n if (version as number === 18) {\n // CIDv0\n version = 0 as V\n offset = 0\n } else {\n codec = next() as C\n }\n\n if (version !== 0 && version !== 1) {\n throw new RangeError(`Invalid CID version ${version}`)\n }\n\n const prefixSize = offset\n const multihashCode = next() as A // multihash code\n const digestSize = next() // multihash length\n const size = offset + digestSize\n const multihashSize = size - prefixSize\n\n return { version, codec, multihashCode, digestSize, multihashSize, size }\n }\n\n /**\n * Takes cid in a string representation and creates an instance. If `base`\n * decoder is not provided will use a default from the configuration. It will\n * throw an error if encoding of the CID is not compatible with supplied (or\n * a default decoder).\n */\n static parse <Prefix extends string, Data, Code extends number, Alg extends number, Version extends API.Version>(source: API.ToString<API.Link<Data, Code, Alg, Version>, Prefix>, base?: API.MultibaseDecoder<Prefix>): CID<Data, Code, Alg, Version> {\n const [prefix, bytes] = parseCIDtoBytes(source, base)\n\n const cid = CID.decode(bytes)\n\n if (cid.version === 0 && source[0] !== 'Q') {\n throw Error('Version 0 CID string must not include multibase prefix')\n }\n\n // Cache string representation to avoid computing it on `this.toString()`\n baseCache(cid).set(prefix, source)\n\n return cid\n }\n}\n\nfunction parseCIDtoBytes <Prefix extends string, Data, Code extends number, Alg extends number, Version extends API.Version> (source: API.ToString<API.Link<Data, Code, Alg, Version>, Prefix>, base?: API.MultibaseDecoder<Prefix>): [Prefix, API.ByteView<API.Link<Data, Code, Alg, Version>>] {\n switch (source[0]) {\n // CIDv0 is parsed differently\n case 'Q': {\n const decoder = base ?? base58btc\n return [\n base58btc.prefix as Prefix,\n decoder.decode(`${base58btc.prefix}${source}`)\n ]\n }\n case base58btc.prefix: {\n const decoder = base ?? base58btc\n return [base58btc.prefix as Prefix, decoder.decode(source)]\n }\n case base32.prefix: {\n const decoder = base ?? base32\n return [base32.prefix as Prefix, decoder.decode(source)]\n }\n case base36.prefix: {\n const decoder = base ?? base36\n return [base36.prefix as Prefix, decoder.decode(source)]\n }\n default: {\n if (base == null) {\n throw Error(\n 'To parse non base32, base36 or base58btc encoded CID multibase decoder must be provided'\n )\n }\n return [source[0] as Prefix, base.decode(source)]\n }\n }\n}\n\nfunction toStringV0 (bytes: Uint8Array, cache: Map<string, string>, base: API.MultibaseEncoder<'z'>): string {\n const { prefix } = base\n if (prefix !== base58btc.prefix) {\n throw Error(`Cannot string encode V0 in ${base.name} encoding`)\n }\n\n const cid = cache.get(prefix)\n if (cid == null) {\n const cid = base.encode(bytes).slice(1)\n cache.set(prefix, cid)\n return cid\n } else {\n return cid\n }\n}\n\nfunction toStringV1 <Prefix extends string> (bytes: Uint8Array, cache: Map<string, string>, base: API.MultibaseEncoder<Prefix>): string {\n const { prefix } = base\n const cid = cache.get(prefix)\n if (cid == null) {\n const cid = base.encode(bytes)\n cache.set(prefix, cid)\n return cid\n } else {\n return cid\n }\n}\n\nconst DAG_PB_CODE = 0x70\nconst SHA_256_CODE = 0x12\n\nfunction encodeCID (version: API.Version, code: number, multihash: Uint8Array): Uint8Array {\n const codeOffset = varint.encodingLength(version)\n const hashOffset = codeOffset + varint.encodingLength(code)\n const bytes = new Uint8Array(hashOffset + multihash.byteLength)\n varint.encodeTo(version, bytes, 0)\n varint.encodeTo(code, bytes, codeOffset)\n bytes.set(multihash, hashOffset)\n return bytes\n}\n\nconst cidSymbol = Symbol.for('@ipld/js-cid/CID')\n", "import * as base10 from './bases/base10.js'\nimport * as base16 from './bases/base16.js'\nimport * as base2 from './bases/base2.js'\nimport * as base256emoji from './bases/base256emoji.js'\nimport * as base32 from './bases/base32.js'\nimport * as base36 from './bases/base36.js'\nimport * as base58 from './bases/base58.js'\nimport * as base64 from './bases/base64.js'\nimport * as base8 from './bases/base8.js'\nimport * as identityBase from './bases/identity.js'\nimport * as json from './codecs/json.js'\nimport * as raw from './codecs/raw.js'\nimport * as identity from './hashes/identity.js'\nimport * as sha2 from './hashes/sha2.js'\nimport { CID, hasher, digest, varint, bytes } from './index.js'\n\nexport const bases = { ...identityBase, ...base2, ...base8, ...base10, ...base16, ...base32, ...base36, ...base58, ...base64, ...base256emoji }\nexport const hashes = { ...sha2, ...identity }\nexport const codecs = { raw, json }\n\nexport { CID, hasher, digest, varint, bytes }\n", "import { bases } from 'multiformats/basics'\nimport type { MultibaseCodec } from 'multiformats'\nimport { allocUnsafe } from '#alloc'\n\nfunction createCodec (name: string, prefix: string, encode: (buf: Uint8Array) => string, decode: (str: string) => Uint8Array): MultibaseCodec<any> {\n return {\n name,\n prefix,\n encoder: {\n name,\n prefix,\n encode\n },\n decoder: {\n decode\n }\n }\n}\n\nconst string = createCodec('utf8', 'u', (buf) => {\n const decoder = new TextDecoder('utf8')\n return 'u' + decoder.decode(buf)\n}, (str) => {\n const encoder = new TextEncoder()\n return encoder.encode(str.substring(1))\n})\n\nconst ascii = createCodec('ascii', 'a', (buf) => {\n let string = 'a'\n\n for (let i = 0; i < buf.length; i++) {\n string += String.fromCharCode(buf[i])\n }\n return string\n}, (str) => {\n str = str.substring(1)\n const buf = allocUnsafe(str.length)\n\n for (let i = 0; i < str.length; i++) {\n buf[i] = str.charCodeAt(i)\n }\n\n return buf\n})\n\nexport type SupportedEncodings = 'utf8' | 'utf-8' | 'hex' | 'latin1' | 'ascii' | 'binary' | keyof typeof bases\n\nconst BASES: Record<SupportedEncodings, MultibaseCodec<any>> = {\n utf8: string,\n 'utf-8': string,\n hex: bases.base16,\n latin1: ascii,\n ascii,\n binary: ascii,\n\n ...bases\n}\n\nexport default BASES\n", "import bases, { type SupportedEncodings } from './util/bases.js'\n\nexport type { SupportedEncodings }\n\n/**\n * Create a `Uint8Array` from the passed string\n *\n * Supports `utf8`, `utf-8`, `hex`, and any encoding supported by the multiformats module.\n *\n * Also `ascii` which is similar to node's 'binary' encoding.\n */\nexport function fromString (string: string, encoding: SupportedEncodings = 'utf8'): Uint8Array {\n const base = bases[encoding]\n\n if (base == null) {\n throw new Error(`Unsupported encoding \"${encoding}\"`)\n }\n\n // add multibase prefix\n return base.decoder.decode(`${base.prefix}${string}`) // eslint-disable-line @typescript-eslint/restrict-template-expressions\n}\n", "import { allocUnsafe } from 'uint8arrays/alloc'\n\n/**\n * A general purpose buffer pool\n */\nexport default function pool (size?: number): (size: number) => Uint8Array {\n const SIZE = size ?? 8192\n const MAX = SIZE >>> 1\n let slab: Uint8Array\n let offset = SIZE\n return function poolAlloc (size: number) {\n if (size < 1 || size > MAX) {\n return allocUnsafe(size)\n }\n\n if (offset + size > SIZE) {\n slab = allocUnsafe(SIZE)\n offset = 0\n }\n\n const buf = slab.subarray(offset, offset += size)\n\n if ((offset & 7) !== 0) {\n // align to 32 bit\n offset = (offset | 7) + 1\n }\n\n return buf\n }\n}\n", "import { encodeUint8Array, encodingLength } from 'uint8-varint'\nimport { allocUnsafe } from 'uint8arrays/alloc'\nimport { fromString as uint8ArrayFromString } from 'uint8arrays/from-string'\nimport { writeFloatLE, writeDoubleLE } from './float.js'\nimport { LongBits } from './longbits.js'\nimport pool from './pool.js'\nimport * as utf8 from './utf8.js'\nimport type { Writer } from '../index.js'\n\ninterface WriterOperation<T> {\n (val: T, buf: Uint8Array, pos: number): any\n}\n\n/**\n * Constructs a new writer operation instance.\n *\n * @classdesc Scheduled writer operation\n */\nclass Op<T> {\n /**\n * Function to call\n */\n public fn: WriterOperation<T>\n\n /**\n * Value byte length\n */\n public len: number\n\n /**\n * Next operation\n */\n public next?: Op<any>\n\n /**\n * Value to write\n */\n public val: T\n\n constructor (fn: WriterOperation<T>, len: number, val: T) {\n this.fn = fn\n this.len = len\n this.next = undefined\n this.val = val // type varies\n }\n}\n\n/* istanbul ignore next */\nfunction noop (): void {} // eslint-disable-line no-empty-function\n\n/**\n * Constructs a new writer state instance\n */\nclass State {\n /**\n * Current head\n */\n public head: Op<any>\n\n /**\n * Current tail\n */\n public tail: Op<any>\n\n /**\n * Current buffer length\n */\n public len: number\n\n /**\n * Next state\n */\n public next?: State\n\n constructor (writer: Uint8ArrayWriter) {\n this.head = writer.head\n this.tail = writer.tail\n this.len = writer.len\n this.next = writer.states\n }\n}\n\nconst bufferPool = pool()\n\n/**\n * Allocates a buffer of the specified size\n */\nfunction alloc (size: number): Uint8Array {\n if (globalThis.Buffer != null) {\n return allocUnsafe(size)\n }\n\n return bufferPool(size)\n}\n\n/**\n * When a value is written, the writer calculates its byte length and puts it into a linked\n * list of operations to perform when finish() is called. This both allows us to allocate\n * buffers of the exact required size and reduces the amount of work we have to do compared\n * to first calculating over objects and then encoding over objects. In our case, the encoding\n * part is just a linked list walk calling operations with already prepared values.\n */\nclass Uint8ArrayWriter implements Writer {\n /**\n * Current length\n */\n public len: number\n\n /**\n * Operations head\n */\n public head: Op<any>\n\n /**\n * Operations tail\n */\n public tail: Op<any>\n\n /**\n * Linked forked states\n */\n public states?: any\n\n constructor () {\n this.len = 0\n this.head = new Op(noop, 0, 0)\n this.tail = this.head\n this.states = null\n }\n\n /**\n * Pushes a new operation to the queue\n */\n _push (fn: WriterOperation<any>, len: number, val: any): this {\n this.tail = this.tail.next = new Op(fn, len, val)\n this.len += len\n\n return this\n }\n\n /**\n * Writes an unsigned 32 bit value as a varint\n */\n uint32 (value: number): this {\n // here, the call to this.push has been inlined and a varint specific Op subclass is used.\n // uint32 is by far the most frequently used operation and benefits significantly from this.\n this.len += (this.tail = this.tail.next = new VarintOp(\n (value = value >>> 0) <\n 128\n ? 1\n : value < 16384\n ? 2\n : value < 2097152\n ? 3\n : value < 268435456\n ? 4\n : 5,\n value)).len\n return this\n }\n\n /**\n * Writes a signed 32 bit value as a varint`\n */\n int32 (value: number): this {\n return value < 0\n ? this._push(writeVarint64, 10, LongBits.fromNumber(value)) // 10 bytes per spec\n : this.uint32(value)\n }\n\n /**\n * Writes a 32 bit value as a varint, zig-zag encoded\n */\n sint32 (value: number): this {\n return this.uint32((value << 1 ^ value >> 31) >>> 0)\n }\n\n /**\n * Writes an unsigned 64 bit value as a varint\n */\n uint64 (value: bigint): this {\n const bits = LongBits.fromBigInt(value)\n return this._push(writeVarint64, bits.length(), bits)\n }\n\n /**\n * Writes an unsigned 64 bit value as a varint\n */\n uint64Number (value: number): this {\n return this._push(encodeUint8Array, encodingLength(value), value)\n }\n\n /**\n * Writes an unsigned 64 bit value as a varint\n */\n uint64String (value: string): this {\n return this.uint64(BigInt(value))\n }\n\n /**\n * Writes a signed 64 bit value as a varint\n */\n int64 (value: bigint): this {\n return this.uint64(value)\n }\n\n /**\n * Writes a signed 64 bit value as a varint\n */\n int64Number (value: number): this {\n return this.uint64Number(value)\n }\n\n /**\n * Writes a signed 64 bit value as a varint\n */\n int64String (value: string): this {\n return this.uint64String(value)\n }\n\n /**\n * Writes a signed 64 bit value as a varint, zig-zag encoded\n */\n sint64 (value: bigint): this {\n const bits = LongBits.fromBigInt(value).zzEncode()\n return this._push(writeVarint64, bits.length(), bits)\n }\n\n /**\n * Writes a signed 64 bit value as a varint, zig-zag encoded\n */\n sint64Number (value: number): this {\n const bits = LongBits.fromNumber(value).zzEncode()\n return this._push(writeVarint64, bits.length(), bits)\n }\n\n /**\n * Writes a signed 64 bit value as a varint, zig-zag encoded\n */\n sint64String (value: string): this {\n return this.sint64(BigInt(value))\n }\n\n /**\n * Writes a boolish value as a varint\n */\n bool (value: boolean): this {\n return this._push(writeByte, 1, value ? 1 : 0)\n }\n\n /**\n * Writes an unsigned 32 bit value as fixed 32 bits\n */\n fixed32 (value: number): this {\n return this._push(writeFixed32, 4, value >>> 0)\n }\n\n /**\n * Writes a signed 32 bit value as fixed 32 bits\n */\n sfixed32 (value: number): this {\n return this.fixed32(value)\n }\n\n /**\n * Writes an unsigned 64 bit value as fixed 64 bits\n */\n fixed64 (value: bigint): this {\n const bits = LongBits.fromBigInt(value)\n return this._push(writeFixed32, 4, bits.lo)._push(writeFixed32, 4, bits.hi)\n }\n\n /**\n * Writes an unsigned 64 bit value as fixed 64 bits\n */\n fixed64Number (value: number): this {\n const bits = LongBits.fromNumber(value)\n return this._push(writeFixed32, 4, bits.lo)._push(writeFixed32, 4, bits.hi)\n }\n\n /**\n * Writes an unsigned 64 bit value as fixed 64 bits\n */\n fixed64String (value: string): this {\n return this.fixed64(BigInt(value))\n }\n\n /**\n * Writes a signed 64 bit value as fixed 64 bits\n */\n sfixed64 (value: bigint): this {\n return this.fixed64(value)\n }\n\n /**\n * Writes a signed 64 bit value as fixed 64 bits\n */\n sfixed64Number (value: number): this {\n return this.fixed64Number(value)\n }\n\n /**\n * Writes a signed 64 bit value as fixed 64 bits\n */\n sfixed64String (value: string): this {\n return this.fixed64String(value)\n }\n\n /**\n * Writes a float (32 bit)\n */\n float (value: number): this {\n return this._push(writeFloatLE, 4, value)\n }\n\n /**\n * Writes a double (64 bit float).\n *\n * @function\n * @param {number} value - Value to write\n * @returns {Writer} `this`\n */\n double (value: number): this {\n return this._push(writeDoubleLE, 8, value)\n }\n\n /**\n * Writes a sequence of bytes\n */\n bytes (value: Uint8Array): this {\n const len = value.length >>> 0\n\n if (len === 0) {\n return this._push(writeByte, 1, 0)\n }\n\n return this.uint32(len)._push(writeBytes, len, value)\n }\n\n /**\n * Writes a string\n */\n string (value: string): this {\n const len = utf8.length(value)\n return len !== 0\n ? this.uint32(len)._push(utf8.write, len, value)\n : this._push(writeByte, 1, 0)\n }\n\n /**\n * Forks this writer's state by pushing it to a stack.\n * Calling {@link Writer#reset|reset} or {@link Writer#ldelim|ldelim} resets the writer to the previous state.\n */\n fork (): this {\n this.states = new State(this)\n this.head = this.tail = new Op(noop, 0, 0)\n this.len = 0\n return this\n }\n\n /**\n * Resets this instance to the last state\n */\n reset (): this {\n if (this.states != null) {\n this.head = this.states.head\n this.tail = this.states.tail\n this.len = this.states.len\n this.states = this.states.next\n } else {\n this.head = this.tail = new Op(noop, 0, 0)\n this.len = 0\n }\n return this\n }\n\n /**\n * Resets to the last state and appends the fork state's current write length as a varint followed by its operations.\n */\n ldelim (): this {\n const head = this.head\n const tail = this.tail\n const len = this.len\n this.reset().uint32(len)\n if (len !== 0) {\n this.tail.next = head.next // skip noop\n this.tail = tail\n this.len += len\n }\n return this\n }\n\n /**\n * Finishes the write operation\n */\n finish (): Uint8Array {\n let head = this.head.next // skip noop\n const buf = alloc(this.len)\n let pos = 0\n while (head != null) {\n head.fn(head.val, buf, pos)\n pos += head.len\n head = head.next\n }\n // this.head = this.tail = null;\n return buf\n }\n}\n\nfunction writeByte (val: number, buf: Uint8Array, pos: number): void {\n buf[pos] = val & 255\n}\n\nfunction writeVarint32 (val: number, buf: Uint8Array, pos: number): void {\n while (val > 127) {\n buf[pos++] = val & 127 | 128\n val >>>= 7\n }\n buf[pos] = val\n}\n\n/**\n * Constructs a new varint writer operation instance.\n *\n * @classdesc Scheduled varint writer operation\n */\nclass VarintOp extends Op<number> {\n public next?: Op<any>\n\n constructor (len: number, val: number) {\n super(writeVarint32, len, val)\n this.next = undefined\n }\n}\n\nfunction writeVarint64 (val: LongBits, buf: Uint8Array, pos: number): void {\n while (val.hi !== 0) {\n buf[pos++] = val.lo & 127 | 128\n val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0\n val.hi >>>= 7\n }\n while (val.lo > 127) {\n buf[pos++] = val.lo & 127 | 128\n val.lo = val.lo >>> 7\n }\n buf[pos++] = val.lo\n}\n\nfunction writeFixed32 (val: number, buf: Uint8Array, pos: number): void {\n buf[pos] = val & 255\n buf[pos + 1] = val >>> 8 & 255\n buf[pos + 2] = val >>> 16 & 255\n buf[pos + 3] = val >>> 24\n}\n\nfunction writeBytes (val: Uint8Array, buf: Uint8Array, pos: number): void {\n buf.set(val, pos)\n}\n\nif (globalThis.Buffer != null) {\n Uint8ArrayWriter.prototype.bytes = function (value: Uint8Array) {\n const len = value.length >>> 0\n\n this.uint32(len)\n\n if (len > 0) {\n this._push(writeBytesBuffer, len, value)\n }\n\n return this\n }\n\n Uint8ArrayWriter.prototype.string = function (value: string) {\n const len = globalThis.Buffer.byteLength(value)\n\n this.uint32(len)\n\n if (len > 0) {\n this._push(writeStringBuffer, len, value)\n }\n\n return this\n }\n}\n\nfunction writeBytesBuffer (val: Uint8Array, buf: Uint8Array, pos: number): void {\n buf.set(val, pos) // faster than copy (requires node >= 4 where Buffers extend Uint8Array and set is properly inherited)\n // also works for plain array values\n}\n\nfunction writeStringBuffer (val: string, buf: Uint8Array, pos: number): void {\n if (val.length < 40) {\n // plain js is faster for short strings (probably due to redundant assertions)\n utf8.write(val, buf, pos)\n // @ts-expect-error buf isn't a Uint8Array?\n } else if (buf.utf8Write != null) {\n // @ts-expect-error buf isn't a Uint8Array?\n buf.utf8Write(val, pos)\n } else {\n buf.set(uint8ArrayFromString(val), pos)\n }\n}\n\n/**\n * Creates a new writer\n */\nexport function createWriter (): Writer {\n return new Uint8ArrayWriter()\n}\n", "import { createWriter } from './utils/writer.js'\nimport type { Codec } from './codec.js'\n\nexport function encodeMessage <T> (message: Partial<T>, codec: Pick<Codec<T>, 'encode'>): Uint8Array {\n const w = createWriter()\n\n codec.encode(message, w, {\n lengthDelimited: false\n })\n\n return w.finish()\n}\n", "import type { Writer, Reader } from './index.js'\n\n// https://developers.google.com/protocol-buffers/docs/encoding#structure\nexport enum CODEC_TYPES {\n VARINT = 0,\n BIT64,\n LENGTH_DELIMITED,\n START_GROUP,\n END_GROUP,\n BIT32\n}\n\nexport interface EncodeOptions {\n lengthDelimited?: boolean\n writeDefaults?: boolean\n}\n\nexport interface EncodeFunction<T> {\n (value: Partial<T>, writer: Writer, opts?: EncodeOptions): void\n}\n\n// protobuf types that contain multiple values\ntype CollectionTypes = any[] | Map<any, any>\n\n// protobuf types that are not collections or messages\ntype PrimitiveTypes = boolean | number | string | bigint | Uint8Array\n\n// recursive array/map field length limits\ntype CollectionLimits <T> = {\n [K in keyof T]: T[K] extends CollectionTypes ? number :\n T[K] extends PrimitiveTypes ? never : Limits<T[K]>\n}\n\n// recursive array member array/map field length limits\ntype ArrayElementLimits <T> = {\n [K in keyof T as `${string & K}$`]: T[K] extends Array<infer ElementType> ?\n (ElementType extends PrimitiveTypes ? never : Limits<ElementType>) :\n (T[K] extends PrimitiveTypes ? never : Limits<T[K]>)\n}\n\n// recursive map value array/map field length limits\ntype MapValueLimits <T> = {\n [K in keyof T as `${string & K}$value`]: T[K] extends Map<any, infer MapValueType> ?\n (MapValueType extends PrimitiveTypes ? never : Limits<MapValueType>) :\n (T[K] extends PrimitiveTypes ? never : Limits<T[K]>)\n}\n\n// union of collection and array elements\ntype Limits<T> = Partial<CollectionLimits<T> & ArrayElementLimits<T> & MapValueLimits<T>>\n\nexport interface DecodeOptions<T> {\n /**\n * Runtime-specified limits for lengths of repeated/map fields\n */\n limits?: Limits<T>\n}\n\nexport interface DecodeFunction<T> {\n (reader: Reader, length?: number, opts?: DecodeOptions<T>): T\n}\n\nexport interface Codec<T> {\n name: string\n type: CODEC_TYPES\n encode: EncodeFunction<T>\n decode: DecodeFunction<T>\n}\n\nexport function createCodec <T> (name: string, type: CODEC_TYPES, encode: EncodeFunction<T>, decode: DecodeFunction<T>): Codec<T> {\n return {\n name,\n type,\n encode,\n decode\n }\n}\n", "import { createCodec, CODEC_TYPES } from '../codec.js'\nimport type { DecodeFunction, EncodeFunction, Codec } from '../codec.js'\n\nexport function enumeration <T> (v: any): Codec<T> {\n function findValue (val: string | number): number {\n // Use the reverse mapping to look up the enum key for the stored value\n // https://www.typescriptlang.org/docs/handbook/enums.html#reverse-mappings\n if (v[val.toString()] == null) {\n throw new Error('Invalid enum value')\n }\n\n return v[val]\n }\n\n const encode: EncodeFunction<number | string> = function enumEncode (val, writer) {\n const enumValue = findValue(val)\n\n writer.int32(enumValue)\n }\n\n const decode: DecodeFunction<number | string> = function enumDecode (reader) {\n const val = reader.int32()\n\n return findValue(val)\n }\n\n // @ts-expect-error yeah yeah\n return createCodec('enum', CODEC_TYPES.VARINT, encode, decode)\n}\n", "import { createCodec, CODEC_TYPES, type EncodeFunction, type DecodeFunction, type Codec } from '../codec.js'\n\nexport interface Factory<A, T> {\n new (obj: A): T\n}\n\nexport function message <T> (encode: EncodeFunction<T>, decode: DecodeFunction<T>): Codec<T> {\n return createCodec('message', CODEC_TYPES.LENGTH_DELIMITED, encode, decode)\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["index_exports", "__export", "ConnManagerRequest", "ConnectRequest", "DHTRequest", "DHTResponse", "DisconnectRequest", "ErrorResponse", "IdentifyResponse", "PSMessage", "PSRequest", "PSResponse", "PeerInfo", "PeerstoreRequest", "PeerstoreResponse", "Request", "Response", "StreamHandlerRequest", "StreamInfo", "StreamOpenRequest", "allocUnsafe", "size", "N1", "N2", "N3", "N4", "N5", "N6", "N7", "MSB", "REST", "encodingLength", "value", "encodeUint8Array", "buf", "offset", "decodeUint8Array", "buf", "offset", "b", "res", "REST", "MSB", "N4", "N5", "N6", "N7", "f32", "f8b", "writeFloatLE", "val", "buf", "pos", "readFloatLE", "buf", "pos", "f8b", "f32", "f64", "d8b", "writeDoubleLE", "val", "buf", "pos", "readDoubleLE", "buf", "pos", "d8b", "f64", "MAX_SAFE_NUMBER_INTEGER", "MIN_SAFE_NUMBER_INTEGER", "LongBits", "_LongBits", "lo", "hi", "unsigned", "mask", "part0", "part1", "part2", "value", "zero", "negative", "TWO_32", "sign", "length", "string", "len", "c", "read", "buffer", "start", "end", "parts", "chunk", "i", "t", "write", "offset", "c1", "c2", "indexOutOfRange", "reader", "writeLength", "readFixed32End", "buf", "end", "Uint8ArrayReader", "buffer", "value", "readFloatLE", "readDoubleLE", "length", "start", "bytes", "read", "wireType", "bits", "LongBits", "i", "lo", "hi", "decodeUint8Array", "encodingLength", "createReader", "decodeMessage", "buf", "codec", "opts", "reader", "createReader", "base10_exports", "__export", "base10", "empty", "equals", "aa", "bb", "ii", "coerce", "o", "fromString", "str", "toString", "b", "base", "ALPHABET", "name", "BASE_MAP", "j", "i", "x", "xc", "BASE", "LEADER", "FACTOR", "iFACTOR", "encode", "source", "zeroes", "length", "pbegin", "pend", "size", "b58", "carry", "it1", "it2", "str", "decodeUnsafe", "psz", "b256", "it3", "it4", "vch", "decode", "string", "buffer", "src", "_brrp__multiformats_scope_baseX", "base_x_default", "Encoder", "name", "prefix", "baseEncode", "bytes", "Decoder", "baseDecode", "prefixCodePoint", "text", "decoder", "or", "ComposedDecoder", "decoders", "input", "left", "right", "Codec", "from", "encode", "decode", "baseX", "alphabet", "base_x_default", "coerce", "string", "bitsPerChar", "codes", "i", "end", "out", "bits", "buffer", "written", "value", "data", "pad", "mask", "rfc4648", "base10", "baseX", "base16_exports", "__export", "base16", "base16upper", "base16", "rfc4648", "base16upper", "base2_exports", "__export", "base2", "base2", "rfc4648", "base256emoji_exports", "__export", "base256emoji", "alphabet", "alphabetBytesToChars", "p", "c", "i", "alphabetCharsToBytes", "codePoint", "encode", "data", "decode", "str", "byts", "char", "byt", "base256emoji", "from", "base32_exports", "__export", "base32", "base32hex", "base32hexpad", "base32hexpadupper", "base32hexupper", "base32pad", "base32padupper", "base32upper", "base32z", "base32", "rfc4648", "base32upper", "base32pad", "base32padupper", "base32hex", "base32hexupper", "base32hexpad", "base32hexpadupper", "base32z", "base36_exports", "__export", "base36", "base36upper", "base36", "baseX", "base36upper", "base58_exports", "__export", "base58btc", "base58flickr", "base58btc", "baseX", "base58flickr", "base64_exports", "__export", "base64", "base64pad", "base64url", "base64urlpad", "base64", "rfc4648", "base64pad", "base64url", "base64urlpad", "base8_exports", "__export", "base8", "base8", "rfc4648", "identity_exports", "__export", "identity", "identity", "from", "buf", "toString", "str", "fromString", "textEncoder", "textDecoder", "identity_exports", "__export", "identity", "encode_1", "encode", "MSB", "REST", "MSBALL", "INT", "num", "out", "offset", "oldOffset", "decode", "read", "MSB$1", "REST$1", "buf", "res", "shift", "counter", "b", "l", "N1", "N2", "N3", "N4", "N5", "N6", "N7", "N8", "N9", "length", "value", "varint", "_brrp_varint", "varint_default", "decode", "data", "offset", "varint_default", "encodeTo", "int", "target", "encodingLength", "create", "code", "digest", "size", "sizeOffset", "encodingLength", "digestOffset", "bytes", "encodeTo", "Digest", "decode", "multihash", "coerce", "equals", "a", "b", "data", "code", "name", "encode", "coerce", "digest", "input", "create", "identity", "sha2_browser_exports", "__export", "sha256", "sha512", "from", "name", "code", "encode", "Hasher", "input", "result", "create", "digest", "sha", "name", "data", "sha256", "from", "sha512", "format", "link", "base", "bytes", "version", "toStringV0", "baseCache", "base58btc", "toStringV1", "base32", "cache", "baseCache", "cid", "CID", "_CID", "version", "code", "multihash", "bytes", "DAG_PB_CODE", "SHA_256_CODE", "digest", "create", "other", "self", "unknown", "equals", "base", "format", "input", "value", "encodeCID", "cidSymbol", "decode", "remainder", "specs", "prefixSize", "multihashBytes", "coerce", "digestBytes", "Digest", "initialBytes", "offset", "next", "i", "length", "codec", "multihashCode", "digestSize", "size", "multihashSize", "source", "prefix", "parseCIDtoBytes", "decoder", "base58btc", "base32", "base36", "toStringV0", "toStringV1", "codeOffset", "encodingLength", "hashOffset", "encodeTo", "bases", "identity_exports", "base2_exports", "base8_exports", "base10_exports", "base16_exports", "base32_exports", "base36_exports", "base58_exports", "base64_exports", "base256emoji_exports", "hashes", "sha2_browser_exports", "createCodec", "name", "prefix", "encode", "decode", "string", "buf", "str", "ascii", "i", "allocUnsafe", "BASES", "bases", "bases_default", "fromString", "string", "encoding", "base", "bases_default", "pool", "size", "SIZE", "MAX", "slab", "offset", "allocUnsafe", "buf", "Op", "fn", "len", "val", "noop", "State", "writer", "bufferPool", "pool", "alloc", "size", "allocUnsafe", "Uint8ArrayWriter", "value", "VarintOp", "writeVarint64", "LongBits", "bits", "encodeUint8Array", "encodingLength", "writeByte", "writeFixed32", "writeFloatLE", "writeDoubleLE", "writeBytes", "length", "write", "head", "tail", "buf", "pos", "writeVarint32", "writeBytesBuffer", "writeStringBuffer", "fromString", "createWriter", "encodeMessage", "message", "codec", "w", "createWriter", "CODEC_TYPES", "createCodec", "name", "type", "encode", "decode", "enumeration", "v", "findValue", "val", "encode", "writer", "enumValue", "decode", "reader", "createCodec", "CODEC_TYPES", "message", "encode", "decode", "createCodec", "CODEC_TYPES", "Request", "Type", "__TypeValues", "enumeration", "_codec", "message", "obj", "w", "opts", "ConnectRequest", "StreamOpenRequest", "StreamHandlerRequest", "DHTRequest", "ConnManagerRequest", "DisconnectRequest", "PSRequest", "PeerstoreRequest", "reader", "length", "end", "tag", "encodeMessage", "buf", "decodeMessage", "Response", "ErrorResponse", "StreamInfo", "IdentifyResponse", "DHTResponse", "value", "PeerInfo", "PSResponse", "PeerstoreResponse", "PSMessage"]
7
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"stream-handler.d.ts","sourceRoot":"","sources":["../../src/stream-handler.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAIpD,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,mBAAmB,CAAA;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,EAAE,CAA2C;IAE9D;;OAEG;gBACU,IAAI,EAAE,oBAAoB;IAOvC;;OAEG;IACG,IAAI,IAAK,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAQ5C,KAAK,CAAE,GAAG,EAAE,UAAU,GAAG,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAK7D;;OAEG;IACH,IAAI,IAAK,mBAAmB;IAI5B;;OAEG;IACG,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;CAI9B"}
1
+ {"version":3,"file":"stream-handler.d.ts","sourceRoot":"","sources":["../../src/stream-handler.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAE5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAIpD,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,mBAAmB,CAAA;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,EAAE,CAA2C;IAE9D;;OAEG;gBACU,IAAI,EAAE,oBAAoB;IAOvC;;OAEG;IACG,IAAI,IAAK,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAQ5C,KAAK,CAAE,GAAG,EAAE,UAAU,GAAG,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAK7D;;OAEG;IACH,IAAI,IAAK,mBAAmB;IAI5B;;OAEG;IACG,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;CAI9B"}
@@ -1 +1 @@
1
- {"version":3,"file":"stream-handler.js","sourceRoot":"","sources":["../../src/stream-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,QAAQ,EAA6B,MAAM,2BAA2B,CAAA;AAI/E,MAAM,GAAG,GAAG,MAAM,CAAC,uCAAuC,CAAC,CAAA;AAO3D,MAAM,OAAO,aAAa;IACP,MAAM,CAAqB;IAC3B,EAAE,CAA2C;IAE9D;;OAEG;IACH,YAAa,IAA0B;QACrC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAA;QAElC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,aAAa,EAAE,SAAS,IAAI,IAAI,EAAE,CAAC,CAAA;IACvE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAA;QAC7B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,KAAK,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAA;QAC1C,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK,CAAE,GAAgC;QAC3C,GAAG,CAAC,eAAe,CAAC,CAAA;QACpB,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC1B,CAAC;IAED;;OAEG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAA;IACzB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,GAAG,CAAC,oBAAoB,CAAC,CAAA;QACzB,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAA;IAC3B,CAAC;CACF"}
1
+ {"version":3,"file":"stream-handler.js","sourceRoot":"","sources":["../../src/stream-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AAKpD,MAAM,GAAG,GAAG,MAAM,CAAC,uCAAuC,CAAC,CAAA;AAO3D,MAAM,OAAO,aAAa;IACP,MAAM,CAAqB;IAC3B,EAAE,CAA2C;IAE9D;;OAEG;IACH,YAAa,IAA0B;QACrC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAA;QAElC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,aAAa,EAAE,SAAS,IAAI,IAAI,EAAE,CAAC,CAAA;IACvE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAA;QAC7B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,KAAK,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAA;QAC1C,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK,CAAE,GAAgC;QAC3C,GAAG,CAAC,eAAe,CAAC,CAAA;QACpB,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC1B,CAAC;IAED;;OAEG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAA;IACzB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,GAAG,CAAC,oBAAoB,CAAC,CAAA;QACzB,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAA;IAC3B,CAAC;CACF"}
@@ -1,4 +1,4 @@
1
- import type { Connection, MultiaddrConnection, Upgrader } from '@libp2p/interface';
1
+ import type { ClearableSignal, Connection, ConnectionEncrypter, MultiaddrConnection, StreamMuxerFactory, Upgrader } from '@libp2p/interface';
2
2
  export interface OnConnection {
3
3
  (conn: MultiaddrConnection): void;
4
4
  }
@@ -7,5 +7,8 @@ export declare class PassThroughUpgrader implements Upgrader {
7
7
  constructor(handler?: OnConnection);
8
8
  upgradeInbound(maConn: MultiaddrConnection): Promise<void>;
9
9
  upgradeOutbound(maConn: MultiaddrConnection): Promise<Connection>;
10
+ createInboundAbortSignal(signal: AbortSignal): ClearableSignal;
11
+ getStreamMuxers(): Map<string, StreamMuxerFactory>;
12
+ getConnectionEncrypters(): Map<string, ConnectionEncrypter<unknown>>;
10
13
  }
11
14
  //# sourceMappingURL=upgrader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"upgrader.d.ts","sourceRoot":"","sources":["../../src/upgrader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAElF,MAAM,WAAW,YAAY;IAC3B,CAAC,IAAI,EAAE,mBAAmB,GAAG,IAAI,CAAA;CAClC;AAED,qBAAa,mBAAoB,YAAW,QAAQ;IAClD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAc;gBAE/B,OAAO,CAAC,EAAE,YAAY;IAI7B,cAAc,CAAE,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3D,eAAe,CAAE,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC;CAIzE"}
1
+ {"version":3,"file":"upgrader.d.ts","sourceRoot":"","sources":["../../src/upgrader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAE5I,MAAM,WAAW,YAAY;IAC3B,CAAC,IAAI,EAAE,mBAAmB,GAAG,IAAI,CAAA;CAClC;AAED,qBAAa,mBAAoB,YAAW,QAAQ;IAClD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAc;gBAE/B,OAAO,CAAC,EAAE,YAAY;IAI7B,cAAc,CAAE,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3D,eAAe,CAAE,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC;IAKxE,wBAAwB,CAAE,MAAM,EAAE,WAAW,GAAG,eAAe;IAI/D,eAAe,IAAK,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC;IAInD,uBAAuB,IAAK,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC;CAGtE"}
@@ -1,3 +1,4 @@
1
+ import { anySignal } from 'any-signal';
1
2
  export class PassThroughUpgrader {
2
3
  onConnection;
3
4
  constructor(handler) {
@@ -10,5 +11,14 @@ export class PassThroughUpgrader {
10
11
  // @ts-expect-error should return a connection
11
12
  return maConn;
12
13
  }
14
+ createInboundAbortSignal(signal) {
15
+ return anySignal([signal]);
16
+ }
17
+ getStreamMuxers() {
18
+ return new Map();
19
+ }
20
+ getConnectionEncrypters() {
21
+ return new Map();
22
+ }
13
23
  }
14
24
  //# sourceMappingURL=upgrader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"upgrader.js","sourceRoot":"","sources":["../../src/upgrader.ts"],"names":[],"mappings":"AAMA,MAAM,OAAO,mBAAmB;IACb,YAAY,CAAe;IAE5C,YAAa,OAAsB;QACjC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAA;IAC7B,CAAC;IAED,KAAK,CAAC,cAAc,CAAE,MAA2B;QAC/C,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,CAAA;IAC7B,CAAC;IAED,KAAK,CAAC,eAAe,CAAE,MAA2B;QAChD,8CAA8C;QAC9C,OAAO,MAAM,CAAA;IACf,CAAC;CACF"}
1
+ {"version":3,"file":"upgrader.js","sourceRoot":"","sources":["../../src/upgrader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAOtC,MAAM,OAAO,mBAAmB;IACb,YAAY,CAAe;IAE5C,YAAa,OAAsB;QACjC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAA;IAC7B,CAAC;IAED,KAAK,CAAC,cAAc,CAAE,MAA2B;QAC/C,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,CAAA;IAC7B,CAAC;IAED,KAAK,CAAC,eAAe,CAAE,MAA2B;QAChD,8CAA8C;QAC9C,OAAO,MAAM,CAAA;IACf,CAAC;IAED,wBAAwB,CAAE,MAAmB;QAC3C,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;IAC5B,CAAC;IAED,eAAe;QACb,OAAO,IAAI,GAAG,EAAE,CAAA;IAClB,CAAC;IAED,uBAAuB;QACrB,OAAO,IAAI,GAAG,EAAE,CAAA;IAClB,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@libp2p/daemon-protocol",
3
- "version": "7.0.4",
3
+ "version": "7.0.5",
4
4
  "description": "Communication protocol between libp2p daemons and clients",
5
5
  "author": "",
6
6
  "license": "Apache-2.0 OR MIT",
@@ -143,7 +143,15 @@
143
143
  "@semantic-release/changelog",
144
144
  "@semantic-release/npm",
145
145
  "@semantic-release/github",
146
- "@semantic-release/git"
146
+ [
147
+ "@semantic-release/git",
148
+ {
149
+ "assets": [
150
+ "CHANGELOG.md",
151
+ "package.json"
152
+ ]
153
+ }
154
+ ]
147
155
  ]
148
156
  },
149
157
  "scripts": {
@@ -155,14 +163,15 @@
155
163
  "release": "aegir release"
156
164
  },
157
165
  "dependencies": {
158
- "@libp2p/interface": "^2.2.0",
159
- "@libp2p/logger": "^5.1.3",
160
- "it-length-prefixed-stream": "^1.2.0",
166
+ "@libp2p/interface": "^2.10.0",
167
+ "@libp2p/logger": "^5.1.16",
168
+ "any-signal": "^4.1.1",
169
+ "it-length-prefixed-stream": "^2.0.2",
161
170
  "protons-runtime": "^5.5.0",
162
171
  "uint8arraylist": "^2.4.8"
163
172
  },
164
173
  "devDependencies": {
165
- "aegir": "^45.0.1",
174
+ "aegir": "^46.0.3",
166
175
  "protons": "^7.6.0"
167
176
  }
168
177
  }
@@ -1,6 +1,7 @@
1
1
  import { logger } from '@libp2p/logger'
2
- import { lpStream, type LengthPrefixedStream } from 'it-length-prefixed-stream'
2
+ import { lpStream } from 'it-length-prefixed-stream'
3
3
  import type { MultiaddrConnection } from '@libp2p/interface'
4
+ import type { LengthPrefixedStream } from 'it-length-prefixed-stream'
4
5
  import type { Uint8ArrayList } from 'uint8arraylist'
5
6
 
6
7
  const log = logger('libp2p:daemon-protocol:stream-handler')
package/src/upgrader.ts CHANGED
@@ -1,4 +1,5 @@
1
- import type { Connection, MultiaddrConnection, Upgrader } from '@libp2p/interface'
1
+ import { anySignal } from 'any-signal'
2
+ import type { ClearableSignal, Connection, ConnectionEncrypter, MultiaddrConnection, StreamMuxerFactory, Upgrader } from '@libp2p/interface'
2
3
 
3
4
  export interface OnConnection {
4
5
  (conn: MultiaddrConnection): void
@@ -19,4 +20,16 @@ export class PassThroughUpgrader implements Upgrader {
19
20
  // @ts-expect-error should return a connection
20
21
  return maConn
21
22
  }
23
+
24
+ createInboundAbortSignal (signal: AbortSignal): ClearableSignal {
25
+ return anySignal([signal])
26
+ }
27
+
28
+ getStreamMuxers (): Map<string, StreamMuxerFactory> {
29
+ return new Map()
30
+ }
31
+
32
+ getConnectionEncrypters (): Map<string, ConnectionEncrypter<unknown>> {
33
+ return new Map()
34
+ }
22
35
  }
package/LICENSE DELETED
@@ -1,4 +0,0 @@
1
- This project is dual licensed under MIT and Apache-2.0.
2
-
3
- MIT: https://www.opensource.org/licenses/mit
4
- Apache-2.0: https://www.apache.org/licenses/license-2.0