(function (root, factory) {(typeof module === 'object' && module.exports) ? module.exports = factory() : root.IpldDagPb = factory()}(typeof self !== 'undefined' ? self : this, function () { "use strict";var IpldDagPb=(()=>{var $=Object.defineProperty;var Ae=Object.getOwnPropertyDescriptor;var Te=Object.getOwnPropertyNames;var ze=Object.prototype.hasOwnProperty;var Ne=(e,t)=>{for(var r in t)$(e,r,{get:t[r],enumerable:!0})},Le=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Te(t))!ze.call(e,o)&&o!==r&&$(e,o,{get:()=>t[o],enumerable:!(n=Ae(t,o))||n.enumerable});return e};var Ie=e=>Le($({},"__esModule",{value:!0}),e);var gr={};Ne(gr,{code:()=>mr,createLink:()=>ve,createNode:()=>ge,decode:()=>xr,encode:()=>yr,name:()=>br,prepare:()=>W,validate:()=>Z});var Er=new Uint8Array(0);function Y(e,t){if(e===t)return!0;if(e.byteLength!==t.byteLength)return!1;for(let r=0;r=255)throw new TypeError("Alphabet too long");for(var r=new Uint8Array(256),n=0;n>>0,h=new Uint8Array(b);u!==w;){for(var m=c[u],E=0,l=b-1;(m!==0||E>>0,h[l]=m%a>>>0,m=m/a>>>0;if(m!==0)throw new Error("Non-zero carry");D=E,u++}for(var x=b-D;x!==b&&h[x]===0;)x++;for(var M=f.repeat(d);x>>0,b=new Uint8Array(w);c[d];){var h=r[c.charCodeAt(d)];if(h===255)return;for(var m=0,E=w-1;(h!==0||m>>0,b[E]=h%256>>>0,h=h/256>>>0;if(h!==0)throw new Error("Non-zero carry");u=m,d++}if(c[d]!==" "){for(var l=w-u;l!==w&&b[l]===0;)l++;for(var x=new Uint8Array(D+(w-l)),M=D;l!==w;)x[M++]=b[l++];return x}}}function De(c){var d=H(c);if(d)return d;throw new Error(`Non-${t} character`)}return{encode:G,decodeUnsafe:H,decode:De}}var Ce=Be,ke=Ce,_=ke;var F=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")}},j=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 ee(this,t)}},q=class{decoders;constructor(t){this.decoders=t}or(t){return ee(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 ee(e,t){return new q({...e.decoders??{[e.prefix]:e},...t.decoders??{[t.prefix]:t}})}var R=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 F(t,r,n),this.decoder=new j(t,r,o)}encode(t){return this.encoder.encode(t)}decode(t){return this.decoder.decode(t)}};function re({name:e,prefix:t,encode:r,decode:n}){return new R(e,t,r,n)}function z({name:e,prefix:t,alphabet:r}){let{encode:n,decode:o}=_(r,e);return re({prefix:t,name:e,encode:n,decode:i=>T(o(i))})}function Pe(e,t,r,n){let o=e.length;for(;e[o-1]==="=";)--o;let i=new Uint8Array(o*r/8|0),s=0,a=0,f=0;for(let p=0;p=8&&(s-=8,i[f++]=255&a>>s)}if(s>=r||(255&a<<8-s)!==0)throw new SyntaxError("Unexpected end of data");return i}function Se(e,t,r){let n=t[t.length-1]==="=",o=(1<r;)s-=r,i+=t[o&a>>s];if(s!==0&&(i+=t[o&a<=Ve;)t[r++]=e&255|te,e/=128;for(;e&Oe;)t[r++]=e&255|te,e>>>=7;return t[r]=e|0,oe.bytes=r-n+1,t}var Ge=J,$e=128,ne=127;function J(e,n){var r=0,n=n||0,o=0,i=n,s,a=e.length;do{if(i>=a)throw J.bytes=0,new RangeError("Could not decode varint");s=e[i++],r+=o<28?(s&ne)<=$e);return J.bytes=i-n,r}var Fe=Math.pow(2,7),je=Math.pow(2,14),qe=Math.pow(2,21),Re=Math.pow(2,28),Je=Math.pow(2,35),Ke=Math.pow(2,42),Qe=Math.pow(2,49),Xe=Math.pow(2,56),We=Math.pow(2,63),Ze=function(e){return e{let[G,H]=P(t.subarray(r));return r+=H,G},o=n(),i=S;if(o===18?(o=0,r=0):i=n(),o!==0&&o!==1)throw new RangeError(`Invalid CID version ${o}`);let s=r,a=n(),f=n(),p=r+f,A=p-s;return{version:o,codec:i,multihashCode:a,digestSize:f,multihashSize:A,size:p}}static parse(t,r){let[n,o]=rr(t,r),i=e.decode(o);if(i.version===0&&t[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return K(i).set(n,t),i}};function rr(e,t){switch(e[0]){case"Q":{let r=t??g;return[g.prefix,r.decode(`${g.prefix}${e}`)]}case g.prefix:{let r=t??g;return[g.prefix,r.decode(e)]}case C.prefix:{let r=t??C;return[C.prefix,r.decode(e)]}case O.prefix:{let r=t??O;return[O.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 tr(e,t,r){let{prefix:n}=r;if(n!==g.prefix)throw Error(`Cannot string encode V0 in ${r.name} encoding`);let o=t.get(n);if(o==null){let i=r.encode(e).slice(1);return t.set(n,i),i}else return o}function nr(e,t,r){let{prefix:n}=r,o=t.get(n);if(o==null){let i=r.encode(e);return t.set(n,i),i}else return o}var S=112,or=18;function he(e,t,r){let n=L(e),o=n+L(t),i=new Uint8Array(o+r.byteLength);return N(e,i,0),N(t,i,n),i.set(r,o),i}var ir=Symbol.for("@ipld/js-cid/CID");var sr=new TextDecoder;function Q(e,t){let r=0;for(let n=0;;n+=7){if(n>=64)throw new Error("protobuf: varint overflow");if(t>=e.length)throw new Error("protobuf: unexpected end of data");let o=e[t++];if(r+=n<28?(o&127)<e.length)throw new Error("protobuf: unexpected end of data");return[e.subarray(t,n),n]}function pe(e,t){let r;return[r,t]=Q(e,t),[r&7,r>>3,t]}function ar(e){let t={},r=e.length,n=0;for(;nr)throw new Error("protobuf: (PBLink) unexpected end of data");return t}function ue(e){let t=e.length,r=0,n,o=!1,i;for(;rt)throw new Error("protobuf: (PBNode) unexpected end of data");let s={};return i&&(s.Data=i),s.Links=n||[],s}var we=new TextEncoder,le=2**32,cr=2**31;function fr(e,t){let r=t.length;if(typeof e.Tsize=="number"){if(e.Tsize<0)throw new Error("Tsize cannot be negative");if(!Number.isSafeInteger(e.Tsize))throw new Error("Tsize too large for encoding");r=U(t,r,e.Tsize)-1,t[r]=24}if(typeof e.Name=="string"){let n=we.encode(e.Name);r-=n.length,t.set(n,r),r=U(t,r,n.length)-1,t[r]=18}return e.Hash&&(r-=e.Hash.length,t.set(e.Hash,r),r=U(t,r,e.Hash.length)-1,t[r]=10),t.length-r}function be(e){let t=hr(e),r=new Uint8Array(t),n=t;if(e.Data&&(n-=e.Data.length,r.set(e.Data,n),n=U(r,n,e.Data.length)-1,r[n]=10),e.Links)for(let o=e.Links.length-1;o>=0;o--){let i=fr(e.Links[o],r.subarray(0,n));n-=i,n=U(r,n,i)-1,r[n]=18}return r}function dr(e){let t=0;if(e.Hash){let r=e.Hash.length;t+=1+r+B(r)}if(typeof e.Name=="string"){let r=we.encode(e.Name).length;t+=1+r+B(r)}return typeof e.Tsize=="number"&&(t+=1+B(e.Tsize)),t}function hr(e){let t=0;if(e.Data){let r=e.Data.length;t+=1+r+B(r)}if(e.Links)for(let r of e.Links){let n=dr(r);t+=1+n+B(n)}return t}function U(e,t,r){t-=B(r);let n=t;for(;r>=cr;)e[t++]=r&127|128,r/=128;for(;r>=128;)e[t++]=r&127|128,r>>>=7;return e[t]=r,n}function B(e){return e%2===0&&e++,Math.floor((pr(e)+6)/7)}function pr(e){let t=0;return e>=le&&(e=Math.floor(e/le),t=32),e>=65536&&(e>>>=16,t+=16),e>=256&&(e>>>=8,t+=8),t+ur[e]}var ur=[0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8];var lr=["Data","Links"],wr=["Hash","Name","Tsize"],X=new TextEncoder;function ye(e,t){if(e===t)return 0;let r=e.Name?X.encode(e.Name):[],n=t.Name?X.encode(t.Name):[],o=r.length,i=n.length;for(let s=0,a=Math.min(o,i);s!t.includes(r))}function xe(e){if(typeof e.asCID=="object"){let r=v.asCID(e);if(!r)throw new TypeError("Invalid DAG-PB form");return{Hash:r}}if(typeof e!="object"||Array.isArray(e))throw new TypeError("Invalid DAG-PB form");let t={};if(e.Hash){let r=v.asCID(e.Hash);try{r||(typeof e.Hash=="string"?r=v.parse(e.Hash):e.Hash instanceof Uint8Array&&(r=v.decode(e.Hash)))}catch(n){throw new TypeError(`Invalid DAG-PB form: ${n.message}`)}r&&(t.Hash=r)}if(!t.Hash)throw new TypeError("Invalid DAG-PB form");return typeof e.Name=="string"&&(t.Name=e.Name),typeof e.Tsize=="number"&&(t.Tsize=e.Tsize),t}function W(e){if((e instanceof Uint8Array||typeof e=="string")&&(e={Data:e}),typeof e!="object"||Array.isArray(e))throw new TypeError("Invalid DAG-PB form");let t={};if(e.Data!==void 0)if(typeof e.Data=="string")t.Data=X.encode(e.Data);else if(e.Data instanceof Uint8Array)t.Data=e.Data;else throw new TypeError("Invalid DAG-PB form");if(e.Links!==void 0)if(Array.isArray(e.Links))t.Links=e.Links.map(xe),t.Links.sort(ye);else throw new TypeError("Invalid DAG-PB form");else t.Links=[];return t}function Z(e){if(!e||typeof e!="object"||Array.isArray(e)||e instanceof Uint8Array||e["/"]&&e["/"]===e.bytes)throw new TypeError("Invalid DAG-PB form");if(!me(e,lr))throw new TypeError("Invalid DAG-PB form (extraneous properties)");if(e.Data!==void 0&&!(e.Data instanceof Uint8Array))throw new TypeError("Invalid DAG-PB form (Data must be bytes)");if(!Array.isArray(e.Links))throw new TypeError("Invalid DAG-PB form (Links must be a list)");for(let t=0;t0&&ye(r,e.Links[t-1])===-1)throw new TypeError("Invalid DAG-PB form (links must be sorted by Name bytes)")}}function ge(e,t=[]){return W({Data:e,Links:t})}function ve(e,t,r){return xe({Hash:r,Name:e,Tsize:t})}function Ee(e){return e instanceof ArrayBuffer?new Uint8Array(e,0,e.byteLength):e}var br="dag-pb",mr=112;function yr(e){Z(e);let t={};return e.Links&&(t.Links=e.Links.map(r=>{let n={};return r.Hash&&(n.Hash=r.Hash.bytes),r.Name!==void 0&&(n.Name=r.Name),r.Tsize!==void 0&&(n.Tsize=r.Tsize),n})),e.Data&&(t.Data=e.Data),be(t)}function xr(e){let t=Ee(e),r=ue(t),n={};return r.Data&&(n.Data=r.Data),r.Links&&(n.Links=r.Links.map(o=>{let i={};try{i.Hash=v.decode(o.Hash)}catch{}if(!i.Hash)throw new Error("Invalid Hash field found in link, expected CID");return o.Name!==void 0&&(i.Name=o.Name),o.Tsize!==void 0&&(i.Tsize=o.Tsize),i})),n}return Ie(gr);})(); return IpldDagPb})); //# sourceMappingURL=index.min.js.map