@ipld/dag-cbor
Version:
JS implementation of DAG-CBOR
5 lines (4 loc) • 34.4 kB
JavaScript
(function (root, factory) {(typeof module === 'object' && module.exports) ? module.exports = factory() : root.IpldDagCbor = factory()}(typeof self !== 'undefined' ? self : this, function () {
"use strict";var IpldDagCbor=(()=>{var Be=Object.defineProperty;var pr=Object.getOwnPropertyDescriptor;var hr=Object.getOwnPropertyNames;var xr=Object.prototype.hasOwnProperty;var mr=(e,t)=>{for(var r in t)Be(e,r,{get:t[r],enumerable:!0})},yr=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of hr(t))!xr.call(e,o)&&o!==r&&Be(e,o,{get:()=>t[o],enumerable:!(n=pr(t,o))||n.enumerable});return e};var gr=e=>yr(Be({},"__esModule",{value:!0}),e);var zn={};mr(zn,{code:()=>$n,decode:()=>Dn,decodeOptions:()=>_n,encode:()=>Mn,encodeOptions:()=>In,name:()=>Nn,toByteView:()=>dr});var wr=["string","number","bigint","symbol"],br=["Function","Generator","AsyncGenerator","GeneratorFunction","AsyncGeneratorFunction","AsyncFunction","Observable","Array","Buffer","Object","RegExp","Date","Error","Map","Set","WeakMap","WeakSet","ArrayBuffer","SharedArrayBuffer","DataView","Promise","URL","HTMLElement","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array"];function Ge(e){if(e===null)return"null";if(e===void 0)return"undefined";if(e===!0||e===!1)return"boolean";let t=typeof e;if(wr.includes(t))return t;if(t==="function")return"Function";if(Array.isArray(e))return"Array";if(Er(e))return"Buffer";let r=Ur(e);return r||"Object"}function Er(e){return e&&e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer.call(null,e)}function Ur(e){let t=Object.prototype.toString.call(e).slice(8,-1);if(br.includes(t))return t}var i=class{constructor(t,r,n){this.major=t,this.majorEncoded=t<<5,this.name=r,this.terminal=n}toString(){return`Type[${this.major}].${this.name}`}compare(t){return this.major<t.major?-1:this.major>t.major?1:0}};i.uint=new i(0,"uint",!0);i.negint=new i(1,"negint",!0);i.bytes=new i(2,"bytes",!0);i.string=new i(3,"string",!0);i.array=new i(4,"array",!1);i.map=new i(5,"map",!1);i.tag=new i(6,"tag",!1);i.float=new i(7,"float",!0);i.false=new i(7,"false",!0);i.true=new i(7,"true",!0);i.null=new i(7,"null",!0);i.undefined=new i(7,"undefined",!0);i.break=new i(7,"break",!0);var a=class{constructor(t,r,n){this.type=t,this.value=r,this.encodedLength=n,this.encodedBytes=void 0,this.byteValue=void 0}toString(){return`Token[${this.type}].${this.value}`}};var q=globalThis.process&&!globalThis.process.browser&&globalThis.Buffer&&typeof globalThis.Buffer.isBuffer=="function",vr=new TextDecoder,Ar=new TextEncoder;function pe(e){return q&&globalThis.Buffer.isBuffer(e)}function Ie(e){return e instanceof Uint8Array?pe(e)?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e:Uint8Array.from(e)}var He=q?(e,t,r)=>r-t>64?globalThis.Buffer.from(e.subarray(t,r)).toString("utf8"):Ke(e,t,r):(e,t,r)=>r-t>64?vr.decode(e.subarray(t,r)):Ke(e,t,r),Qe=q?e=>e.length>64?globalThis.Buffer.from(e):Je(e):e=>e.length>64?Ar.encode(e):Je(e),M=e=>Uint8Array.from(e),G=q?(e,t,r)=>pe(e)?new Uint8Array(e.subarray(t,r)):e.slice(t,r):(e,t,r)=>e.slice(t,r),We=q?(e,t)=>(e=e.map(r=>r instanceof Uint8Array?r:globalThis.Buffer.from(r)),Ie(globalThis.Buffer.concat(e,t))):(e,t)=>{let r=new Uint8Array(t),n=0;for(let o of e)n+o.length>r.length&&(o=o.subarray(0,r.length-n)),r.set(o,n),n+=o.length;return r},Ze=q?e=>globalThis.Buffer.allocUnsafe(e):e=>new Uint8Array(e);function Ye(e,t){if(pe(e)&&pe(t))return e.compare(t);for(let r=0;r<e.length;r++)if(e[r]!==t[r])return e[r]<t[r]?-1:1;return 0}function Je(e){let t=[],r=0;for(let n=0;n<e.length;n++){let o=e.charCodeAt(n);o<128?t[r++]=o:o<2048?(t[r++]=o>>6|192,t[r++]=o&63|128):(o&64512)===55296&&n+1<e.length&&(e.charCodeAt(n+1)&64512)===56320?(o=65536+((o&1023)<<10)+(e.charCodeAt(++n)&1023),t[r++]=o>>18|240,t[r++]=o>>12&63|128,t[r++]=o>>6&63|128,t[r++]=o&63|128):(t[r++]=o>>12|224,t[r++]=o>>6&63|128,t[r++]=o&63|128)}return t}function Ke(e,t,r){let n=[];for(;t<r;){let o=e[t],s=null,u=o>239?4:o>223?3:o>191?2:1;if(t+u<=r){let f,h,g,x;switch(u){case 1:o<128&&(s=o);break;case 2:f=e[t+1],(f&192)===128&&(x=(o&31)<<6|f&63,x>127&&(s=x));break;case 3:f=e[t+1],h=e[t+2],(f&192)===128&&(h&192)===128&&(x=(o&15)<<12|(f&63)<<6|h&63,x>2047&&(x<55296||x>57343)&&(s=x));break;case 4:f=e[t+1],h=e[t+2],g=e[t+3],(f&192)===128&&(h&192)===128&&(g&192)===128&&(x=(o&15)<<18|(f&63)<<12|(h&63)<<6|g&63,x>65535&&x<1114112&&(s=x))}}s===null?(s=65533,u=1):s>65535&&(s-=65536,n.push(s>>>10&1023|55296),s=56320|s&1023),n.push(s),t+=u}return Tr(n)}var Xe=4096;function Tr(e){let t=e.length;if(t<=Xe)return String.fromCharCode.apply(String,e);let r="",n=0;for(;n<t;)r+=String.fromCharCode.apply(String,e.slice(n,n+=Xe));return r}var kr=256,te=class{constructor(t=kr){this.chunkSize=t,this.cursor=0,this.maxCursor=-1,this.chunks=[],this._initReuseChunk=null}reset(){this.cursor=0,this.maxCursor=-1,this.chunks.length&&(this.chunks=[]),this._initReuseChunk!==null&&(this.chunks.push(this._initReuseChunk),this.maxCursor=this._initReuseChunk.length-1)}push(t){let r=this.chunks[this.chunks.length-1];if(this.cursor+t.length<=this.maxCursor+1){let o=r.length-(this.maxCursor-this.cursor)-1;r.set(t,o)}else{if(r){let o=r.length-(this.maxCursor-this.cursor)-1;o<r.length&&(this.chunks[this.chunks.length-1]=r.subarray(0,o),this.maxCursor=this.cursor-1)}t.length<64&&t.length<this.chunkSize?(r=Ze(this.chunkSize),this.chunks.push(r),this.maxCursor+=r.length,this._initReuseChunk===null&&(this._initReuseChunk=r),r.set(t,0)):(this.chunks.push(t),this.maxCursor+=t.length)}this.cursor+=t.length}toBytes(t=!1){let r;if(this.chunks.length===1){let n=this.chunks[0];t&&this.cursor>n.length/2?(r=this.cursor===n.length?n:n.subarray(0,this.cursor),this._initReuseChunk=null,this.chunks=[]):r=G(n,0,this.cursor)}else r=We(this.chunks,this.cursor);return t&&this.reset(),r}};var d="CBOR decode error:",Ce="CBOR encode error:",re=[];re[23]=1;re[24]=2;re[25]=3;re[26]=5;re[27]=9;function O(e,t,r){if(e.length-t<r)throw new Error(`${d} not enough data for type`)}var m=[24,256,65536,4294967296,BigInt("18446744073709551616")];function b(e,t,r){O(e,t,1);let n=e[t];if(r.strict===!0&&n<m[0])throw new Error(`${d} integer encoded in more bytes than necessary (strict decode)`);return n}function E(e,t,r){O(e,t,2);let n=e[t]<<8|e[t+1];if(r.strict===!0&&n<m[1])throw new Error(`${d} integer encoded in more bytes than necessary (strict decode)`);return n}function U(e,t,r){O(e,t,4);let n=e[t]*16777216+(e[t+1]<<16)+(e[t+2]<<8)+e[t+3];if(r.strict===!0&&n<m[2])throw new Error(`${d} integer encoded in more bytes than necessary (strict decode)`);return n}function v(e,t,r){O(e,t,8);let n=e[t]*16777216+(e[t+1]<<16)+(e[t+2]<<8)+e[t+3],o=e[t+4]*16777216+(e[t+5]<<16)+(e[t+6]<<8)+e[t+7],s=(BigInt(n)<<BigInt(32))+BigInt(o);if(r.strict===!0&&s<m[3])throw new Error(`${d} integer encoded in more bytes than necessary (strict decode)`);if(s<=Number.MAX_SAFE_INTEGER)return Number(s);if(r.allowBigInt===!0)return s;throw new Error(`${d} integers outside of the safe integer range are not supported`)}function et(e,t,r,n){return new a(i.uint,b(e,t+1,n),2)}function tt(e,t,r,n){return new a(i.uint,E(e,t+1,n),3)}function rt(e,t,r,n){return new a(i.uint,U(e,t+1,n),5)}function nt(e,t,r,n){return new a(i.uint,v(e,t+1,n),9)}function T(e,t){return y(e,0,t.value)}function y(e,t,r){if(r<m[0]){let n=Number(r);e.push([t|n])}else if(r<m[1]){let n=Number(r);e.push([t|24,n])}else if(r<m[2]){let n=Number(r);e.push([t|25,n>>>8,n&255])}else if(r<m[3]){let n=Number(r);e.push([t|26,n>>>24&255,n>>>16&255,n>>>8&255,n&255])}else{let n=BigInt(r);if(n<m[4]){let o=[t|27,0,0,0,0,0,0,0],s=Number(n&BigInt(4294967295)),u=Number(n>>BigInt(32)&BigInt(4294967295));o[8]=s&255,s=s>>8,o[7]=s&255,s=s>>8,o[6]=s&255,s=s>>8,o[5]=s&255,o[4]=u&255,u=u>>8,o[3]=u&255,u=u>>8,o[2]=u&255,u=u>>8,o[1]=u&255,e.push(o)}else throw new Error(`${d} encountered BigInt larger than allowable range`)}}T.encodedSize=function(t){return y.encodedSize(t.value)};y.encodedSize=function(t){return t<m[0]?1:t<m[1]?2:t<m[2]?3:t<m[3]?5:9};T.compareTokens=function(t,r){return t.value<r.value?-1:t.value>r.value?1:0};function ot(e,t,r,n){return new a(i.negint,-1-b(e,t+1,n),2)}function it(e,t,r,n){return new a(i.negint,-1-E(e,t+1,n),3)}function st(e,t,r,n){return new a(i.negint,-1-U(e,t+1,n),5)}var _e=BigInt(-1),ct=BigInt(1);function at(e,t,r,n){let o=v(e,t+1,n);if(typeof o!="bigint"){let s=-1-o;if(s>=Number.MIN_SAFE_INTEGER)return new a(i.negint,s,9)}if(n.allowBigInt!==!0)throw new Error(`${d} integers outside of the safe integer range are not supported`);return new a(i.negint,_e-BigInt(o),9)}function he(e,t){let r=t.value,n=typeof r=="bigint"?r*_e-ct:r*-1-1;y(e,t.type.majorEncoded,n)}he.encodedSize=function(t){let r=t.value,n=typeof r=="bigint"?r*_e-ct:r*-1-1;return n<m[0]?1:n<m[1]?2:n<m[2]?3:n<m[3]?5:9};he.compareTokens=function(t,r){return t.value<r.value?1:t.value>r.value?-1:0};function ne(e,t,r,n){O(e,t,r+n);let o=G(e,t+r,t+r+n);return new a(i.bytes,o,r+n)}function ut(e,t,r,n){return ne(e,t,1,r)}function ft(e,t,r,n){return ne(e,t,2,b(e,t+1,n))}function dt(e,t,r,n){return ne(e,t,3,E(e,t+1,n))}function lt(e,t,r,n){return ne(e,t,5,U(e,t+1,n))}function pt(e,t,r,n){let o=v(e,t+1,n);if(typeof o=="bigint")throw new Error(`${d} 64-bit integer bytes lengths not supported`);return ne(e,t,9,o)}function xe(e){return e.encodedBytes===void 0&&(e.encodedBytes=e.type===i.string?Qe(e.value):e.value),e.encodedBytes}function J(e,t){let r=xe(t);y(e,t.type.majorEncoded,r.length),e.push(r)}J.encodedSize=function(t){let r=xe(t);return y.encodedSize(r.length)+r.length};J.compareTokens=function(t,r){return Br(xe(t),xe(r))};function Br(e,t){return e.length<t.length?-1:e.length>t.length?1:Ye(e,t)}function oe(e,t,r,n,o){let s=r+n;O(e,t,s);let u=new a(i.string,He(e,t+r,t+s),s);return o.retainStringBytes===!0&&(u.byteValue=G(e,t+r,t+s)),u}function ht(e,t,r,n){return oe(e,t,1,r,n)}function xt(e,t,r,n){return oe(e,t,2,b(e,t+1,n),n)}function mt(e,t,r,n){return oe(e,t,3,E(e,t+1,n),n)}function yt(e,t,r,n){return oe(e,t,5,U(e,t+1,n),n)}function gt(e,t,r,n){let o=v(e,t+1,n);if(typeof o=="bigint")throw new Error(`${d} 64-bit integer string lengths not supported`);return oe(e,t,9,o,n)}var wt=J;function K(e,t,r,n){return new a(i.array,n,r)}function bt(e,t,r,n){return K(e,t,1,r)}function Et(e,t,r,n){return K(e,t,2,b(e,t+1,n))}function Ut(e,t,r,n){return K(e,t,3,E(e,t+1,n))}function vt(e,t,r,n){return K(e,t,5,U(e,t+1,n))}function At(e,t,r,n){let o=v(e,t+1,n);if(typeof o=="bigint")throw new Error(`${d} 64-bit integer array lengths not supported`);return K(e,t,9,o)}function Tt(e,t,r,n){if(n.allowIndefinite===!1)throw new Error(`${d} indefinite length items not allowed`);return K(e,t,1,1/0)}function me(e,t){y(e,i.array.majorEncoded,t.value)}me.compareTokens=T.compareTokens;me.encodedSize=function(t){return y.encodedSize(t.value)};function X(e,t,r,n){return new a(i.map,n,r)}function kt(e,t,r,n){return X(e,t,1,r)}function St(e,t,r,n){return X(e,t,2,b(e,t+1,n))}function Bt(e,t,r,n){return X(e,t,3,E(e,t+1,n))}function It(e,t,r,n){return X(e,t,5,U(e,t+1,n))}function Ct(e,t,r,n){let o=v(e,t+1,n);if(typeof o=="bigint")throw new Error(`${d} 64-bit integer map lengths not supported`);return X(e,t,9,o)}function _t(e,t,r,n){if(n.allowIndefinite===!1)throw new Error(`${d} indefinite length items not allowed`);return X(e,t,1,1/0)}function ye(e,t){y(e,i.map.majorEncoded,t.value)}ye.compareTokens=T.compareTokens;ye.encodedSize=function(t){return y.encodedSize(t.value)};function Nt(e,t,r,n){return new a(i.tag,r,1)}function $t(e,t,r,n){return new a(i.tag,b(e,t+1,n),2)}function Mt(e,t,r,n){return new a(i.tag,E(e,t+1,n),3)}function Dt(e,t,r,n){return new a(i.tag,U(e,t+1,n),5)}function zt(e,t,r,n){return new a(i.tag,v(e,t+1,n),9)}function ge(e,t){y(e,i.tag.majorEncoded,t.value)}ge.compareTokens=T.compareTokens;ge.encodedSize=function(t){return y.encodedSize(t.value)};var Mr=20,Dr=21,zr=22,Or=23;function Ot(e,t,r,n){if(n.allowUndefined===!1)throw new Error(`${d} undefined values are not supported`);return n.coerceUndefinedToNull===!0?new a(i.null,null,1):new a(i.undefined,void 0,1)}function Ft(e,t,r,n){if(n.allowIndefinite===!1)throw new Error(`${d} indefinite length items not allowed`);return new a(i.break,void 0,1)}function Ne(e,t,r){if(r){if(r.allowNaN===!1&&Number.isNaN(e))throw new Error(`${d} NaN values are not supported`);if(r.allowInfinity===!1&&(e===1/0||e===-1/0))throw new Error(`${d} Infinity values are not supported`)}return new a(i.float,e,t)}function Vt(e,t,r,n){return Ne($e(e,t+1),3,n)}function Lt(e,t,r,n){return Ne(Me(e,t+1),5,n)}function Rt(e,t,r,n){return Ne(Gt(e,t+1),9,n)}function we(e,t,r){let n=t.value;if(n===!1)e.push([i.float.majorEncoded|Mr]);else if(n===!0)e.push([i.float.majorEncoded|Dr]);else if(n===null)e.push([i.float.majorEncoded|zr]);else if(n===void 0)e.push([i.float.majorEncoded|Or]);else{let o,s=!1;(!r||r.float64!==!0)&&(jt(n),o=$e(I,1),n===o||Number.isNaN(n)?(I[0]=249,e.push(I.slice(0,3)),s=!0):(qt(n),o=Me(I,1),n===o&&(I[0]=250,e.push(I.slice(0,5)),s=!0))),s||(Fr(n),o=Gt(I,1),I[0]=251,e.push(I.slice(0,9)))}}we.encodedSize=function(t,r){let n=t.value;if(n===!1||n===!0||n===null||n===void 0)return 1;if(!r||r.float64!==!0){jt(n);let o=$e(I,1);if(n===o||Number.isNaN(n))return 3;if(qt(n),o=Me(I,1),n===o)return 5}return 9};var Pt=new ArrayBuffer(9),k=new DataView(Pt,1),I=new Uint8Array(Pt,0);function jt(e){if(e===1/0)k.setUint16(0,31744,!1);else if(e===-1/0)k.setUint16(0,64512,!1);else if(Number.isNaN(e))k.setUint16(0,32256,!1);else{k.setFloat32(0,e);let t=k.getUint32(0),r=(t&2139095040)>>23,n=t&8388607;if(r===255)k.setUint16(0,31744,!1);else if(r===0)k.setUint16(0,(e&2147483648)>>16|n>>13,!1);else{let o=r-127;o<-24?k.setUint16(0,0):o<-14?k.setUint16(0,(t&2147483648)>>16|1<<24+o,!1):k.setUint16(0,(t&2147483648)>>16|o+15<<10|n>>13,!1)}}}function $e(e,t){if(e.length-t<2)throw new Error(`${d} not enough data for float16`);let r=(e[t]<<8)+e[t+1];if(r===31744)return 1/0;if(r===64512)return-1/0;if(r===32256)return NaN;let n=r>>10&31,o=r&1023,s;return n===0?s=o*2**-24:n!==31?s=(o+1024)*2**(n-25):s=o===0?1/0:NaN,r&32768?-s:s}function qt(e){k.setFloat32(0,e,!1)}function Me(e,t){if(e.length-t<4)throw new Error(`${d} not enough data for float32`);let r=(e.byteOffset||0)+t;return new DataView(e.buffer,r,4).getFloat32(0,!1)}function Fr(e){k.setFloat64(0,e,!1)}function Gt(e,t){if(e.length-t<8)throw new Error(`${d} not enough data for float64`);let r=(e.byteOffset||0)+t;return new DataView(e.buffer,r,8).getFloat64(0,!1)}we.compareTokens=T.compareTokens;function l(e,t,r){throw new Error(`${d} encountered invalid minor (${r}) for major ${e[t]>>>5}`)}function be(e){return()=>{throw new Error(`${d} ${e}`)}}var c=[];for(let e=0;e<=23;e++)c[e]=l;c[24]=et;c[25]=tt;c[26]=rt;c[27]=nt;c[28]=l;c[29]=l;c[30]=l;c[31]=l;for(let e=32;e<=55;e++)c[e]=l;c[56]=ot;c[57]=it;c[58]=st;c[59]=at;c[60]=l;c[61]=l;c[62]=l;c[63]=l;for(let e=64;e<=87;e++)c[e]=ut;c[88]=ft;c[89]=dt;c[90]=lt;c[91]=pt;c[92]=l;c[93]=l;c[94]=l;c[95]=be("indefinite length bytes/strings are not supported");for(let e=96;e<=119;e++)c[e]=ht;c[120]=xt;c[121]=mt;c[122]=yt;c[123]=gt;c[124]=l;c[125]=l;c[126]=l;c[127]=be("indefinite length bytes/strings are not supported");for(let e=128;e<=151;e++)c[e]=bt;c[152]=Et;c[153]=Ut;c[154]=vt;c[155]=At;c[156]=l;c[157]=l;c[158]=l;c[159]=Tt;for(let e=160;e<=183;e++)c[e]=kt;c[184]=St;c[185]=Bt;c[186]=It;c[187]=Ct;c[188]=l;c[189]=l;c[190]=l;c[191]=_t;for(let e=192;e<=215;e++)c[e]=Nt;c[216]=$t;c[217]=Mt;c[218]=Dt;c[219]=zt;c[220]=l;c[221]=l;c[222]=l;c[223]=l;for(let e=224;e<=243;e++)c[e]=be("simple values are not supported");c[244]=l;c[245]=l;c[246]=l;c[247]=Ot;c[248]=be("simple values are not supported");c[249]=Vt;c[250]=Lt;c[251]=Rt;c[252]=l;c[253]=l;c[254]=l;c[255]=Ft;var C=[];for(let e=0;e<24;e++)C[e]=new a(i.uint,e,1);for(let e=-1;e>=-24;e--)C[31-e]=new a(i.negint,e,1);C[64]=new a(i.bytes,new Uint8Array(0),1);C[96]=new a(i.string,"",1);C[128]=new a(i.array,0,1);C[160]=new a(i.map,0,1);C[244]=new a(i.false,!1,1);C[245]=new a(i.true,!0,1);C[246]=new a(i.null,null,1);function Jt(e){switch(e.type){case i.false:return M([244]);case i.true:return M([245]);case i.null:return M([246]);case i.bytes:return e.value.length?void 0:M([64]);case i.string:return e.value===""?M([96]):void 0;case i.array:return e.value===0?M([128]):void 0;case i.map:return e.value===0?M([160]):void 0;case i.uint:return e.value<24?M([Number(e.value)]):void 0;case i.negint:if(e.value>=-24)return M([31-Number(e.value)])}}var Lr={float64:!1,mapSorter:jr,quickEncodeToken:Jt};function Rr(){let e=[];return e[i.uint.major]=T,e[i.negint.major]=he,e[i.bytes.major]=J,e[i.string.major]=wt,e[i.array.major]=me,e[i.map.major]=ye,e[i.tag.major]=ge,e[i.float.major]=we,e}var Kt=Rr(),De=new te,Ue=class e{constructor(t,r){this.obj=t,this.parent=r}includes(t){let r=this;do if(r.obj===t)return!0;while(r=r.parent);return!1}static createCheck(t,r){if(t&&t.includes(r))throw new Error(`${Ce} object contains circular references`);return new e(r,t)}},L={null:new a(i.null,null),undefined:new a(i.undefined,void 0),true:new a(i.true,!0),false:new a(i.false,!1),emptyArray:new a(i.array,0),emptyMap:new a(i.map,0)},R={number(e,t,r,n){return!Number.isInteger(e)||!Number.isSafeInteger(e)?new a(i.float,e):e>=0?new a(i.uint,e):new a(i.negint,e)},bigint(e,t,r,n){return e>=BigInt(0)?new a(i.uint,e):new a(i.negint,e)},Uint8Array(e,t,r,n){return new a(i.bytes,e)},string(e,t,r,n){return new a(i.string,e)},boolean(e,t,r,n){return e?L.true:L.false},null(e,t,r,n){return L.null},undefined(e,t,r,n){return L.undefined},ArrayBuffer(e,t,r,n){return new a(i.bytes,new Uint8Array(e))},DataView(e,t,r,n){return new a(i.bytes,new Uint8Array(e.buffer,e.byteOffset,e.byteLength))},Array(e,t,r,n){if(!e.length)return r.addBreakTokens===!0?[L.emptyArray,new a(i.break)]:L.emptyArray;n=Ue.createCheck(n,e);let o=[],s=0;for(let u of e)o[s++]=Ee(u,r,n);return r.addBreakTokens?[new a(i.array,e.length),o,new a(i.break)]:[new a(i.array,e.length),o]},Object(e,t,r,n){let o=t!=="Object",s=o?e.keys():Object.keys(e),u=o?e.size:s.length;if(!u)return r.addBreakTokens===!0?[L.emptyMap,new a(i.break)]:L.emptyMap;n=Ue.createCheck(n,e);let f=[],h=0;for(let g of s)f[h++]=[Ee(g,r,n),Ee(o?e.get(g):e[g],r,n)];return Pr(f,r),r.addBreakTokens?[new a(i.map,u),f,new a(i.break)]:[new a(i.map,u),f]}};R.Map=R.Object;R.Buffer=R.Uint8Array;for(let e of"Uint8Clamped Uint16 Uint32 Int8 Int16 Int32 BigUint64 BigInt64 Float32 Float64".split(" "))R[`${e}Array`]=R.DataView;function Ee(e,t={},r){let n=Ge(e),o=t&&t.typeEncoders&&t.typeEncoders[n]||R[n];if(typeof o=="function"){let u=o(e,n,t,r);if(u!=null)return u}let s=R[n];if(!s)throw new Error(`${Ce} unsupported type: ${n}`);return s(e,n,t,r)}function Pr(e,t){t.mapSorter&&e.sort(t.mapSorter)}function jr(e,t){let r=Array.isArray(e[0])?e[0][0]:e[0],n=Array.isArray(t[0])?t[0][0]:t[0];if(r.type!==n.type)return r.type.compare(n.type);let o=r.type.major,s=Kt[o].compareTokens(r,n);return s===0&&console.warn("WARNING: complex key types used, CBOR key sorting guarantees are gone"),s}function Xt(e,t,r,n){if(Array.isArray(t))for(let o of t)Xt(e,o,r,n);else r[t.type.major](e,t,n)}function qr(e,t,r){let n=Ee(e,r);if(!Array.isArray(n)&&r.quickEncodeToken){let o=r.quickEncodeToken(n);if(o)return o;let s=t[n.type.major];if(s.encodedSize){let u=s.encodedSize(n,r),f=new te(u);if(s(f,n,r),f.chunks.length!==1)throw new Error(`Unexpected error: pre-calculated length for ${n} was wrong`);return Ie(f.chunks[0])}}return De.reset(),Xt(De,n,t,r),De.toBytes(!0)}function ze(e,t){return t=Object.assign({},Lr,t),qr(e,Kt,t)}var Gr={strict:!1,allowIndefinite:!0,allowUndefined:!0,allowBigInt:!0},ve=class{constructor(t,r={}){this._pos=0,this.data=t,this.options=r}pos(){return this._pos}done(){return this._pos>=this.data.length}next(){let t=this.data[this._pos],r=C[t];if(r===void 0){let n=c[t];if(!n)throw new Error(`${d} no decoder for major type ${t>>>5} (byte 0x${t.toString(16).padStart(2,"0")})`);let o=t&31;r=n(this.data,this._pos,o,this.options)}return this._pos+=r.encodedLength,r}},ie=Symbol.for("DONE"),Ae=Symbol.for("BREAK");function Jr(e,t,r){let n=[];for(let o=0;o<e.value;o++){let s=H(t,r);if(s===Ae){if(e.value===1/0)break;throw new Error(`${d} got unexpected break to lengthed array`)}if(s===ie)throw new Error(`${d} found array but not enough entries (got ${o}, expected ${e.value})`);n[o]=s}return n}function Kr(e,t,r){let n=r.useMaps===!0,o=n?void 0:{},s=n?new Map:void 0;for(let u=0;u<e.value;u++){let f=H(t,r);if(f===Ae){if(e.value===1/0)break;throw new Error(`${d} got unexpected break to lengthed map`)}if(f===ie)throw new Error(`${d} found map but not enough entries (got ${u} [no key], expected ${e.value})`);if(n!==!0&&typeof f!="string")throw new Error(`${d} non-string keys not supported (got ${typeof f})`);if(r.rejectDuplicateMapKeys===!0&&(n&&s.has(f)||!n&&f in o))throw new Error(`${d} found repeat map key "${f}"`);let h=H(t,r);if(h===ie)throw new Error(`${d} found map but not enough entries (got ${u} [no value], expected ${e.value})`);n?s.set(f,h):o[f]=h}return n?s:o}function H(e,t){if(e.done())return ie;let r=e.next();if(r.type===i.break)return Ae;if(r.type.terminal)return r.value;if(r.type===i.array)return Jr(r,e,t);if(r.type===i.map)return Kr(r,e,t);if(r.type===i.tag){if(t.tags&&typeof t.tags[r.value]=="function"){let n=H(e,t);return t.tags[r.value](n)}throw new Error(`${d} tag not supported (${r.value})`)}throw new Error("unsupported")}function Ht(e,t){if(!(e instanceof Uint8Array))throw new Error(`${d} data to decode must be a Uint8Array`);t=Object.assign({},Gr,t);let r=t.tokenizer||new ve(e,t),n=H(r,t);if(n===ie)throw new Error(`${d} did not find any content to decode`);if(n===Ae)throw new Error(`${d} got unexpected break`);return[n,e.subarray(r.pos())]}function Oe(e,t){let[r,n]=Ht(e,t);if(n.length>0)throw new Error(`${d} too many terminals, data makes no sense`);return r}var zo=new Uint8Array(0);function Qt(e,t){if(e===t)return!0;if(e.byteLength!==t.byteLength)return!1;for(let r=0;r<e.byteLength;r++)if(e[r]!==t[r])return!1;return!0}function Q(e){if(e instanceof Uint8Array&&e.constructor.name==="Uint8Array")return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw new Error("Unknown type, must be binary type")}function Hr(e,t){if(e.length>=255)throw new TypeError("Alphabet too long");for(var r=new Uint8Array(256),n=0;n<r.length;n++)r[n]=255;for(var o=0;o<e.length;o++){var s=e.charAt(o),u=s.charCodeAt(0);if(r[u]!==255)throw new TypeError(s+" is ambiguous");r[u]=o}var f=e.length,h=e.charAt(0),g=Math.log(f)/Math.log(256),x=Math.log(256)/Math.log(f);function Se(p){if(p instanceof Uint8Array||(ArrayBuffer.isView(p)?p=new Uint8Array(p.buffer,p.byteOffset,p.byteLength):Array.isArray(p)&&(p=Uint8Array.from(p))),!(p instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(p.length===0)return"";for(var w=0,P=0,S=0,_=p.length;S!==_&&p[S]===0;)S++,w++;for(var N=(_-S)*x+1>>>0,A=new Uint8Array(N);S!==_;){for(var $=p[S],V=0,B=N-1;($!==0||V<P)&&B!==-1;B--,V++)$+=256*A[B]>>>0,A[B]=$%f>>>0,$=$/f>>>0;if($!==0)throw new Error("Non-zero carry");P=V,S++}for(var z=N-P;z!==N&&A[z]===0;)z++;for(var le=h.repeat(w);z<N;++z)le+=e.charAt(A[z]);return le}function de(p){if(typeof p!="string")throw new TypeError("Expected String");if(p.length===0)return new Uint8Array;var w=0;if(p[w]!==" "){for(var P=0,S=0;p[w]===h;)P++,w++;for(var _=(p.length-w)*g+1>>>0,N=new Uint8Array(_);p[w];){var A=r[p.charCodeAt(w)];if(A===255)return;for(var $=0,V=_-1;(A!==0||$<S)&&V!==-1;V--,$++)A+=f*N[V]>>>0,N[V]=A%256>>>0,A=A/256>>>0;if(A!==0)throw new Error("Non-zero carry");S=$,w++}if(p[w]!==" "){for(var B=_-S;B!==_&&N[B]===0;)B++;for(var z=new Uint8Array(P+(_-B)),le=P;B!==_;)z[le++]=N[B++];return z}}}function lr(p){var w=de(p);if(w)return w;throw new Error(`Non-${t} character`)}return{encode:Se,decodeUnsafe:de,decode:lr}}var Qr=Hr,Wr=Qr,Wt=Wr;var Fe=class{name;prefix;baseEncode;constructor(t,r,n){this.name=t,this.prefix=r,this.baseEncode=n}encode(t){if(t instanceof Uint8Array)return`${this.prefix}${this.baseEncode(t)}`;throw Error("Unknown type, must be binary type")}},Ve=class{name;prefix;baseDecode;prefixCodePoint;constructor(t,r,n){this.name=t,this.prefix=r;let o=r.codePointAt(0);if(o===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=o,this.baseDecode=n}decode(t){if(typeof t=="string"){if(t.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(t)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(t.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(t){return Zt(this,t)}},Le=class{decoders;constructor(t){this.decoders=t}or(t){return Zt(this,t)}decode(t){let r=t[0],n=this.decoders[r];if(n!=null)return n.decode(t);throw RangeError(`Unable to decode multibase string ${JSON.stringify(t)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}};function Zt(e,t){return new Le({...e.decoders??{[e.prefix]:e},...t.decoders??{[t.prefix]:t}})}var Re=class{name;prefix;baseEncode;baseDecode;encoder;decoder;constructor(t,r,n,o){this.name=t,this.prefix=r,this.baseEncode=n,this.baseDecode=o,this.encoder=new Fe(t,r,n),this.decoder=new Ve(t,r,o)}encode(t){return this.encoder.encode(t)}decode(t){return this.decoder.decode(t)}};function Yt({name:e,prefix:t,encode:r,decode:n}){return new Re(e,t,r,n)}function W({name:e,prefix:t,alphabet:r}){let{encode:n,decode:o}=Wt(r,e);return Yt({prefix:t,name:e,encode:n,decode:s=>Q(o(s))})}function Zr(e,t,r,n){let o=e.length;for(;e[o-1]==="=";)--o;let s=new Uint8Array(o*r/8|0),u=0,f=0,h=0;for(let g=0;g<o;++g){let x=t[e[g]];if(x===void 0)throw new SyntaxError(`Non-${n} character`);f=f<<r|x,u+=r,u>=8&&(u-=8,s[h++]=255&f>>u)}if(u>=r||(255&f<<8-u)!==0)throw new SyntaxError("Unexpected end of data");return s}function Yr(e,t,r){let n=t[t.length-1]==="=",o=(1<<r)-1,s="",u=0,f=0;for(let h=0;h<e.length;++h)for(f=f<<8|e[h],u+=8;u>r;)u-=r,s+=t[o&f>>u];if(u!==0&&(s+=t[o&f<<r-u]),n)for(;(s.length*r&7)!==0;)s+="=";return s}function en(e){let t={};for(let r=0;r<e.length;++r)t[e[r]]=r;return t}function D({name:e,prefix:t,bitsPerChar:r,alphabet:n}){let o=en(n);return Yt({prefix:t,name:e,encode(s){return Yr(s,n,r)},decode(s){return Zr(s,o,r,e)}})}var se=D({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),jo=D({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),qo=D({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),Go=D({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),Jo=D({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),Ko=D({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),Xo=D({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),Ho=D({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),Qo=D({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Te=W({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),Yo=W({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var F=W({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),ri=W({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var tn=rr,er=128,rn=127,nn=~rn,on=Math.pow(2,31);function rr(e,t,r){t=t||[],r=r||0;for(var n=r;e>=on;)t[r++]=e&255|er,e/=128;for(;e&nn;)t[r++]=e&255|er,e>>>=7;return t[r]=e|0,rr.bytes=r-n+1,t}var sn=Pe,cn=128,tr=127;function Pe(e,n){var r=0,n=n||0,o=0,s=n,u,f=e.length;do{if(s>=f)throw Pe.bytes=0,new RangeError("Could not decode varint");u=e[s++],r+=o<28?(u&tr)<<o:(u&tr)*Math.pow(2,o),o+=7}while(u>=cn);return Pe.bytes=s-n,r}var an=Math.pow(2,7),un=Math.pow(2,14),fn=Math.pow(2,21),dn=Math.pow(2,28),ln=Math.pow(2,35),pn=Math.pow(2,42),hn=Math.pow(2,49),xn=Math.pow(2,56),mn=Math.pow(2,63),yn=function(e){return e<an?1:e<un?2:e<fn?3:e<dn?4:e<ln?5:e<pn?6:e<hn?7:e<xn?8:e<mn?9:10},gn={encode:tn,decode:sn,encodingLength:yn},wn=gn,ce=wn;function ae(e,t=0){return[ce.decode(e,t),ce.decode.bytes]}function Z(e,t,r=0){return ce.encode(e,t,r),t}function Y(e){return ce.encodingLength(e)}function or(e,t){let r=t.byteLength,n=Y(e),o=n+Y(r),s=new Uint8Array(o+r);return Z(e,s,0),Z(r,s,n),s.set(t,o),new ee(e,r,t,s)}function ir(e){let t=Q(e),[r,n]=ae(t),[o,s]=ae(t.subarray(n)),u=t.subarray(n+s);if(u.byteLength!==o)throw new Error("Incorrect length");return new ee(r,o,u,t)}function sr(e,t){if(e===t)return!0;{let r=t;return e.code===r.code&&e.size===r.size&&r.bytes instanceof Uint8Array&&Qt(e.bytes,r.bytes)}}var ee=class{code;size;digest;bytes;constructor(t,r,n,o){this.code=t,this.size=r,this.digest=n,this.bytes=o}};function cr(e,t){let{bytes:r,version:n}=e;switch(n){case 0:return Un(r,je(e),t??F.encoder);default:return vn(r,je(e),t??se.encoder)}}var ar=new WeakMap;function je(e){let t=ar.get(e);if(t==null){let r=new Map;return ar.set(e,r),r}return t}var fe=class e{code;version;multihash;bytes;"/";constructor(t,r,n,o){this.code=r,this.version=t,this.multihash=n,this.bytes=o,this["/"]=o}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:t,multihash:r}=this;if(t!==ue)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(r.code!==An)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return e.createV0(r)}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:t,digest:r}=this.multihash,n=or(t,r);return e.createV1(this.code,n)}case 1:return this;default:throw Error(`Can not convert CID version ${this.version} to version 1. This is a bug please report`)}}equals(t){return e.equals(this,t)}static equals(t,r){let n=r;return n!=null&&t.code===n.code&&t.version===n.version&&sr(t.multihash,n.multihash)}toString(t){return cr(this,t)}toJSON(){return{"/":cr(this)}}link(){return this}[Symbol.toStringTag]="CID";[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(t){if(t==null)return null;let r=t;if(r instanceof e)return r;if(r["/"]!=null&&r["/"]===r.bytes||r.asCID===r){let{version:n,code:o,multihash:s,bytes:u}=r;return new e(n,o,s,u??ur(n,o,s.bytes))}else if(r[Tn]===!0){let{version:n,multihash:o,code:s}=r,u=ir(o);return e.create(n,s,u)}else return null}static create(t,r,n){if(typeof r!="number")throw new Error("String codecs are no longer supported");if(!(n.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(t){case 0:{if(r!==ue)throw new Error(`Version 0 CID must use dag-pb (code: ${ue}) block encoding`);return new e(t,r,n,n.bytes)}case 1:{let o=ur(t,r,n.bytes);return new e(t,r,n,o)}default:throw new Error("Invalid version")}}static createV0(t){return e.create(0,ue,t)}static createV1(t,r){return e.create(1,t,r)}static decode(t){let[r,n]=e.decodeFirst(t);if(n.length!==0)throw new Error("Incorrect length");return r}static decodeFirst(t){let r=e.inspectBytes(t),n=r.size-r.multihashSize,o=Q(t.subarray(n,n+r.multihashSize));if(o.byteLength!==r.multihashSize)throw new Error("Incorrect length");let s=o.subarray(r.multihashSize-r.digestSize),u=new ee(r.multihashCode,r.digestSize,s,o);return[r.version===0?e.createV0(u):e.createV1(r.codec,u),t.subarray(r.size)]}static inspectBytes(t){let r=0,n=()=>{let[Se,de]=ae(t.subarray(r));return r+=de,Se},o=n(),s=ue;if(o===18?(o=0,r=0):s=n(),o!==0&&o!==1)throw new RangeError(`Invalid CID version ${o}`);let u=r,f=n(),h=n(),g=r+h,x=g-u;return{version:o,codec:s,multihashCode:f,digestSize:h,multihashSize:x,size:g}}static parse(t,r){let[n,o]=En(t,r),s=e.decode(o);if(s.version===0&&t[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return je(s).set(n,t),s}};function En(e,t){switch(e[0]){case"Q":{let r=t??F;return[F.prefix,r.decode(`${F.prefix}${e}`)]}case F.prefix:{let r=t??F;return[F.prefix,r.decode(e)]}case se.prefix:{let r=t??se;return[se.prefix,r.decode(e)]}case Te.prefix:{let r=t??Te;return[Te.prefix,r.decode(e)]}default:{if(t==null)throw Error("To parse non base32, base36 or base58btc encoded CID multibase decoder must be provided");return[e[0],t.decode(e)]}}}function Un(e,t,r){let{prefix:n}=r;if(n!==F.prefix)throw Error(`Cannot string encode V0 in ${r.name} encoding`);let o=t.get(n);if(o==null){let s=r.encode(e).slice(1);return t.set(n,s),s}else return o}function vn(e,t,r){let{prefix:n}=r,o=t.get(n);if(o==null){let s=r.encode(e);return t.set(n,s),s}else return o}var ue=112,An=18;function ur(e,t,r){let n=Y(e),o=n+Y(t),s=new Uint8Array(o+r.byteLength);return Z(e,s,0),Z(t,s,n),s.set(r,o),s}var Tn=Symbol.for("@ipld/js-cid/CID");var fr=42;function dr(e){return e instanceof ArrayBuffer?new Uint8Array(e,0,e.byteLength):e}function kn(e){if(e.asCID!==e&&e["/"]!==e.bytes)return null;let t=fe.asCID(e);if(!t)return null;let r=new Uint8Array(t.bytes.byteLength+1);return r.set(t.bytes,1),[new a(i.tag,fr),new a(i.bytes,r)]}function Sn(){throw new Error("`undefined` is not supported by the IPLD Data Model and cannot be encoded")}function Bn(e){if(Number.isNaN(e))throw new Error("`NaN` is not supported by the IPLD Data Model and cannot be encoded");if(e===1/0||e===-1/0)throw new Error("`Infinity` and `-Infinity` is not supported by the IPLD Data Model and cannot be encoded");return null}var qe={float64:!0,typeEncoders:{Object:kn,undefined:Sn,number:Bn}},In={...qe,typeEncoders:{...qe.typeEncoders}};function Cn(e){if(e[0]!==0)throw new Error("Invalid CID for CBOR tag 42; expected leading 0x00");return fe.decode(e.subarray(1))}var ke={allowIndefinite:!1,coerceUndefinedToNull:!0,allowNaN:!1,allowInfinity:!1,allowBigInt:!0,strict:!0,useMaps:!1,rejectDuplicateMapKeys:!0,tags:[]};ke.tags[fr]=Cn;var _n={...ke,tags:ke.tags.slice()},Nn="dag-cbor",$n=113,Mn=e=>ze(e,qe),Dn=e=>Oe(dr(e),ke);return gr(zn);})();
return IpldDagCbor}));
//# sourceMappingURL=index.min.js.map