Socket
Socket
Sign inDemoInstall

multiformats

Package Overview
Dependencies
Maintainers
3
Versions
150
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

multiformats - npm Package Compare versions

Comparing version 11.0.0 to 11.0.1

7

CHANGELOG.md

@@ -0,1 +1,8 @@

## [11.0.1](https://github.com/multiformats/js-multiformats/compare/v11.0.0...v11.0.1) (2023-01-18)
### Bug Fixes
* throw on CID.parse v0 string with multibase prefix ([258a0be](https://github.com/multiformats/js-multiformats/commit/258a0be344ddd5d08e08e55b3e088212df0c409a))
## [11.0.0](https://github.com/multiformats/js-multiformats/compare/v10.0.3...v11.0.0) (2023-01-02)

@@ -2,0 +9,0 @@

2

dist/index.min.js
(function (root, factory) {(typeof module === 'object' && module.exports) ? module.exports = factory() : root.Multiformats = factory()}(typeof self !== 'undefined' ? self : this, function () {
"use strict";var Multiformats=(()=>{var R=Object.defineProperty;var fe=Object.getOwnPropertyDescriptor;var pe=Object.getOwnPropertyNames;var le=Object.prototype.hasOwnProperty;var T=(r,e)=>{for(var t in e)R(r,t,{get:e[t],enumerable:!0})},ue=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of pe(e))!le.call(r,o)&&o!==t&&R(r,o,{get:()=>e[o],enumerable:!(n=fe(e,o))||n.enumerable});return r};var we=r=>ue(R({},"__esModule",{value:!0}),r);var Ze={};T(Ze,{CID:()=>h,bytes:()=>j,digest:()=>B,hasher:()=>_,varint:()=>D});var D={};T(D,{decode:()=>O,encodeTo:()=>E,encodingLength:()=>U});var be=re,ee=128,ge=127,ye=~ge,me=Math.pow(2,31);function re(r,e,t){e=e||[],t=t||0;for(var n=t;r>=me;)e[t++]=r&255|ee,r/=128;for(;r&ye;)e[t++]=r&255|ee,r>>>=7;return e[t]=r|0,re.bytes=t-n+1,e}var xe=J,ve=128,te=127;function J(r,n){var t=0,n=n||0,o=0,s=n,i,c=r.length;do{if(s>=c)throw J.bytes=0,new RangeError("Could not decode varint");i=r[s++],t+=o<28?(i&te)<<o:(i&te)*Math.pow(2,o),o+=7}while(i>=ve);return J.bytes=s-n,t}var Ae=Math.pow(2,7),Se=Math.pow(2,14),Ee=Math.pow(2,21),Ue=Math.pow(2,28),ze=Math.pow(2,35),Ce=Math.pow(2,42),Me=Math.pow(2,49),Ne=Math.pow(2,56),Oe=Math.pow(2,63),Le=function(r){return r<Ae?1:r<Se?2:r<Ee?3:r<Ue?4:r<ze?5:r<Ce?6:r<Me?7:r<Ne?8:r<Oe?9:10},Te={encode:be,decode:xe,encodingLength:Le},Ve=Te,V=Ve;var O=(r,e=0)=>[V.decode(r,e),V.decode.bytes],E=(r,e,t=0)=>(V.encode(r,e,t),e),U=r=>V.encodingLength(r);var B={};T(B,{Digest:()=>C,create:()=>L,decode:()=>G,equals:()=>Q});var j={};T(j,{coerce:()=>z,empty:()=>ne,equals:()=>P,fromHex:()=>Be,fromString:()=>Ie,isBinary:()=>$e,toHex:()=>De,toString:()=>ke});var ne=new Uint8Array(0),De=r=>r.reduce((e,t)=>e+t.toString(16).padStart(2,"0"),""),Be=r=>{let e=r.match(/../g);return e?new Uint8Array(e.map(t=>parseInt(t,16))):ne},P=(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},z=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")},$e=r=>r instanceof ArrayBuffer||ArrayBuffer.isView(r),Ie=r=>new TextEncoder().encode(r),ke=r=>new TextDecoder().decode(r);var L=(r,e)=>{let t=e.byteLength,n=U(r),o=n+U(t),s=new Uint8Array(o+t);return E(r,s,0),E(t,s,n),s.set(e,o),new C(r,t,e,s)},G=r=>{let e=z(r),[t,n]=O(e),[o,s]=O(e.subarray(n)),i=e.subarray(n+s);if(i.byteLength!==o)throw new Error("Incorrect length");return new C(t,o,i,e)},Q=(r,e)=>{if(r===e)return!0;{let t=e;return r.code===t.code&&r.size===t.size&&t.bytes instanceof Uint8Array&&P(r.bytes,t.bytes)}},C=class{constructor(e,t,n,o){this.code=e,this.size=t,this.digest=n,this.bytes=o}};function Fe(r,e){if(r.length>=255)throw new TypeError("Alphabet too long");for(var t=new Uint8Array(256),n=0;n<t.length;n++)t[n]=255;for(var o=0;o<r.length;o++){var s=r.charAt(o),i=s.charCodeAt(0);if(t[i]!==255)throw new TypeError(s+" is ambiguous");t[i]=o}var c=r.length,d=r.charAt(0),M=Math.log(c)/Math.log(256),p=Math.log(256)/Math.log(c);function N(a){if(a instanceof Uint8Array||(ArrayBuffer.isView(a)?a=new Uint8Array(a.buffer,a.byteOffset,a.byteLength):Array.isArray(a)&&(a=Uint8Array.from(a))),!(a instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(a.length===0)return"";for(var f=0,S=0,u=0,b=a.length;u!==b&&a[u]===0;)u++,f++;for(var g=(b-u)*p+1>>>0,l=new Uint8Array(g);u!==b;){for(var y=a[u],A=0,w=g-1;(y!==0||A<S)&&w!==-1;w--,A++)y+=256*l[w]>>>0,l[w]=y%c>>>0,y=y/c>>>0;if(y!==0)throw new Error("Non-zero carry");S=A,u++}for(var x=g-S;x!==g&&l[x]===0;)x++;for(var F=d.repeat(f);x<g;++x)F+=r.charAt(l[x]);return F}function k(a){if(typeof a!="string")throw new TypeError("Expected String");if(a.length===0)return new Uint8Array;var f=0;if(a[f]!==" "){for(var S=0,u=0;a[f]===d;)S++,f++;for(var b=(a.length-f)*M+1>>>0,g=new Uint8Array(b);a[f];){var l=t[a.charCodeAt(f)];if(l===255)return;for(var y=0,A=b-1;(l!==0||y<u)&&A!==-1;A--,y++)l+=c*g[A]>>>0,g[A]=l%256>>>0,l=l/256>>>0;if(l!==0)throw new Error("Non-zero carry");u=y,f++}if(a[f]!==" "){for(var w=b-u;w!==b&&g[w]===0;)w++;for(var x=new Uint8Array(S+(b-w)),F=S;w!==b;)x[F++]=g[w++];return x}}}function de(a){var f=k(a);if(f)return f;throw new Error(`Non-${e} character`)}return{encode:N,decodeUnsafe:k,decode:de}}var qe=Fe,Re=qe,oe=Re;var X=class{constructor(e,t,n){this.name=e,this.prefix=t,this.baseEncode=n}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}},K=class{constructor(e,t,n){if(this.name=e,this.prefix=t,t.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=t.codePointAt(0),this.baseDecode=n}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 se(this,e)}},W=class{constructor(e){this.decoders=e}or(e){return se(this,e)}decode(e){let t=e[0],n=this.decoders[t];if(n)return n.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}},se=(r,e)=>new W({...r.decoders||{[r.prefix]:r},...e.decoders||{[e.prefix]:e}}),Z=class{constructor(e,t,n,o){this.name=e,this.prefix=t,this.baseEncode=n,this.baseDecode=o,this.encoder=new X(e,t,n),this.decoder=new K(e,t,o)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}},ie=({name:r,prefix:e,encode:t,decode:n})=>new Z(r,e,t,n),Y=({prefix:r,name:e,alphabet:t})=>{let{encode:n,decode:o}=oe(t,e);return ie({prefix:r,name:e,encode:n,decode:s=>z(o(s))})},Je=(r,e,t,n)=>{let o={};for(let p=0;p<e.length;++p)o[e[p]]=p;let s=r.length;for(;r[s-1]==="=";)--s;let i=new Uint8Array(s*t/8|0),c=0,d=0,M=0;for(let p=0;p<s;++p){let N=o[r[p]];if(N===void 0)throw new SyntaxError(`Non-${n} character`);d=d<<t|N,c+=t,c>=8&&(c-=8,i[M++]=255&d>>c)}if(c>=t||255&d<<8-c)throw new SyntaxError("Unexpected end of data");return i},Pe=(r,e,t)=>{let n=e[e.length-1]==="=",o=(1<<t)-1,s="",i=0,c=0;for(let d=0;d<r.length;++d)for(c=c<<8|r[d],i+=8;i>t;)i-=t,s+=e[o&c>>i];if(i&&(s+=e[o&c<<t-i]),n)for(;s.length*t&7;)s+="=";return s},m=({name:r,prefix:e,bitsPerChar:t,alphabet:n})=>ie({prefix:e,name:r,encode(o){return Pe(o,n,t)},decode(o){return Je(o,n,t,r)}});var v=Y({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),it=Y({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var $=m({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),ht=m({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),dt=m({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),ft=m({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),pt=m({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),lt=m({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),ut=m({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),wt=m({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),bt=m({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var ae=(r,e)=>{let{bytes:t,version:n}=r;switch(n){case 0:return Ge(t,H(r),e||v.encoder);default:return Qe(t,H(r),e||$.encoder)}};var ce=new WeakMap,H=r=>{let e=ce.get(r);if(e==null){let t=new Map;return ce.set(r,t),t}return e},h=class{constructor(e,t,n,o){this.code=t,this.version=e,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:e,multihash:t}=this;if(e!==I)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(t.code!==Xe)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return h.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,n=L(e,t);return h.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(e){return h.equals(this,e)}static equals(e,t){let n=t;return n&&e.code===n.code&&e.version===n.version&&Q(e.multihash,n.multihash)}toString(e){return ae(this,e)}toJSON(){return{"/":ae(this)}}link(){return this}get[Symbol.toStringTag](){return"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 h)return t;if(t["/"]!=null&&t["/"]===t.bytes||t.asCID===t){let{version:n,code:o,multihash:s,bytes:i}=t;return new h(n,o,s,i||he(n,o,s.bytes))}else if(t[Ke]===!0){let{version:n,multihash:o,code:s}=t,i=G(o);return h.create(n,s,i)}else return null}static create(e,t,n){if(typeof t!="number")throw new Error("String codecs are no longer supported");if(!(n.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(e){case 0:{if(t!==I)throw new Error(`Version 0 CID must use dag-pb (code: ${I}) block encoding`);return new h(e,t,n,n.bytes)}case 1:{let o=he(e,t,n.bytes);return new h(e,t,n,o)}default:throw new Error("Invalid version")}}static createV0(e){return h.create(0,I,e)}static createV1(e,t){return h.create(1,e,t)}static decode(e){let[t,n]=h.decodeFirst(e);if(n.length)throw new Error("Incorrect length");return t}static decodeFirst(e){let t=h.inspectBytes(e),n=t.size-t.multihashSize,o=z(e.subarray(n,n+t.multihashSize));if(o.byteLength!==t.multihashSize)throw new Error("Incorrect length");let s=o.subarray(t.multihashSize-t.digestSize),i=new C(t.multihashCode,t.digestSize,s,o);return[t.version===0?h.createV0(i):h.createV1(t.codec,i),e.subarray(t.size)]}static inspectBytes(e){let t=0,n=()=>{let[N,k]=O(e.subarray(t));return t+=k,N},o=n(),s=I;if(o===18?(o=0,t=0):s=n(),o!==0&&o!==1)throw new RangeError(`Invalid CID version ${o}`);let i=t,c=n(),d=n(),M=t+d,p=M-i;return{version:o,codec:s,multihashCode:c,digestSize:d,multihashSize:p,size:M}}static parse(e,t){let[n,o]=je(e,t),s=h.decode(o);return H(s).set(n,e),s}},je=(r,e)=>{switch(r[0]){case"Q":{let t=e||v;return[v.prefix,t.decode(`${v.prefix}${r}`)]}case v.prefix:{let t=e||v;return[v.prefix,t.decode(r)]}case $.prefix:{let t=e||$;return[$.prefix,t.decode(r)]}default:{if(e==null)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[r[0],e.decode(r)]}}},Ge=(r,e,t)=>{let{prefix:n}=t;if(n!==v.prefix)throw Error(`Cannot string encode V0 in ${t.name} encoding`);let o=e.get(n);if(o==null){let s=t.encode(r).slice(1);return e.set(n,s),s}else return o},Qe=(r,e,t)=>{let{prefix:n}=t,o=e.get(n);if(o==null){let s=t.encode(r);return e.set(n,s),s}else return o},I=112,Xe=18,he=(r,e,t)=>{let n=U(r),o=n+U(e),s=new Uint8Array(o+t.byteLength);return E(r,s,0),E(e,s,n),s.set(t,o),s},Ke=Symbol.for("@ipld/js-cid/CID");var _={};T(_,{Hasher:()=>q,from:()=>We});var We=({name:r,code:e,encode:t})=>new q(r,e,t),q=class{constructor(e,t,n){this.name=e,this.code=t,this.encode=n}digest(e){if(e instanceof Uint8Array){let t=this.encode(e);return t instanceof Uint8Array?L(this.code,t):t.then(n=>L(this.code,n))}else throw Error("Unknown type, must be binary type")}};return we(Ze);})();
"use strict";var Multiformats=(()=>{var R=Object.defineProperty;var fe=Object.getOwnPropertyDescriptor;var pe=Object.getOwnPropertyNames;var le=Object.prototype.hasOwnProperty;var D=(r,e)=>{for(var t in e)R(r,t,{get:e[t],enumerable:!0})},ue=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of pe(e))!le.call(r,o)&&o!==t&&R(r,o,{get:()=>e[o],enumerable:!(n=fe(e,o))||n.enumerable});return r};var we=r=>ue(R({},"__esModule",{value:!0}),r);var Ze={};D(Ze,{CID:()=>h,bytes:()=>j,digest:()=>B,hasher:()=>_,varint:()=>T});var T={};D(T,{decode:()=>O,encodeTo:()=>E,encodingLength:()=>U});var be=re,ee=128,ge=127,me=~ge,ye=Math.pow(2,31);function re(r,e,t){e=e||[],t=t||0;for(var n=t;r>=ye;)e[t++]=r&255|ee,r/=128;for(;r&me;)e[t++]=r&255|ee,r>>>=7;return e[t]=r|0,re.bytes=t-n+1,e}var xe=J,ve=128,te=127;function J(r,n){var t=0,n=n||0,o=0,s=n,i,c=r.length;do{if(s>=c)throw J.bytes=0,new RangeError("Could not decode varint");i=r[s++],t+=o<28?(i&te)<<o:(i&te)*Math.pow(2,o),o+=7}while(i>=ve);return J.bytes=s-n,t}var Ae=Math.pow(2,7),Se=Math.pow(2,14),Ee=Math.pow(2,21),Ue=Math.pow(2,28),ze=Math.pow(2,35),Ce=Math.pow(2,42),Me=Math.pow(2,49),Ne=Math.pow(2,56),Oe=Math.pow(2,63),Ve=function(r){return r<Ae?1:r<Se?2:r<Ee?3:r<Ue?4:r<ze?5:r<Ce?6:r<Me?7:r<Ne?8:r<Oe?9:10},De={encode:be,decode:xe,encodingLength:Ve},Le=De,L=Le;var O=(r,e=0)=>[L.decode(r,e),L.decode.bytes],E=(r,e,t=0)=>(L.encode(r,e,t),e),U=r=>L.encodingLength(r);var B={};D(B,{Digest:()=>C,create:()=>V,decode:()=>Q,equals:()=>G});var j={};D(j,{coerce:()=>z,empty:()=>ne,equals:()=>P,fromHex:()=>Be,fromString:()=>Ie,isBinary:()=>$e,toHex:()=>Te,toString:()=>ke});var ne=new Uint8Array(0),Te=r=>r.reduce((e,t)=>e+t.toString(16).padStart(2,"0"),""),Be=r=>{let e=r.match(/../g);return e?new Uint8Array(e.map(t=>parseInt(t,16))):ne},P=(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},z=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")},$e=r=>r instanceof ArrayBuffer||ArrayBuffer.isView(r),Ie=r=>new TextEncoder().encode(r),ke=r=>new TextDecoder().decode(r);var V=(r,e)=>{let t=e.byteLength,n=U(r),o=n+U(t),s=new Uint8Array(o+t);return E(r,s,0),E(t,s,n),s.set(e,o),new C(r,t,e,s)},Q=r=>{let e=z(r),[t,n]=O(e),[o,s]=O(e.subarray(n)),i=e.subarray(n+s);if(i.byteLength!==o)throw new Error("Incorrect length");return new C(t,o,i,e)},G=(r,e)=>{if(r===e)return!0;{let t=e;return r.code===t.code&&r.size===t.size&&t.bytes instanceof Uint8Array&&P(r.bytes,t.bytes)}},C=class{constructor(e,t,n,o){this.code=e,this.size=t,this.digest=n,this.bytes=o}};function Fe(r,e){if(r.length>=255)throw new TypeError("Alphabet too long");for(var t=new Uint8Array(256),n=0;n<t.length;n++)t[n]=255;for(var o=0;o<r.length;o++){var s=r.charAt(o),i=s.charCodeAt(0);if(t[i]!==255)throw new TypeError(s+" is ambiguous");t[i]=o}var c=r.length,d=r.charAt(0),M=Math.log(c)/Math.log(256),p=Math.log(256)/Math.log(c);function N(a){if(a instanceof Uint8Array||(ArrayBuffer.isView(a)?a=new Uint8Array(a.buffer,a.byteOffset,a.byteLength):Array.isArray(a)&&(a=Uint8Array.from(a))),!(a instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(a.length===0)return"";for(var f=0,S=0,u=0,b=a.length;u!==b&&a[u]===0;)u++,f++;for(var g=(b-u)*p+1>>>0,l=new Uint8Array(g);u!==b;){for(var m=a[u],A=0,w=g-1;(m!==0||A<S)&&w!==-1;w--,A++)m+=256*l[w]>>>0,l[w]=m%c>>>0,m=m/c>>>0;if(m!==0)throw new Error("Non-zero carry");S=A,u++}for(var x=g-S;x!==g&&l[x]===0;)x++;for(var F=d.repeat(f);x<g;++x)F+=r.charAt(l[x]);return F}function k(a){if(typeof a!="string")throw new TypeError("Expected String");if(a.length===0)return new Uint8Array;var f=0;if(a[f]!==" "){for(var S=0,u=0;a[f]===d;)S++,f++;for(var b=(a.length-f)*M+1>>>0,g=new Uint8Array(b);a[f];){var l=t[a.charCodeAt(f)];if(l===255)return;for(var m=0,A=b-1;(l!==0||m<u)&&A!==-1;A--,m++)l+=c*g[A]>>>0,g[A]=l%256>>>0,l=l/256>>>0;if(l!==0)throw new Error("Non-zero carry");u=m,f++}if(a[f]!==" "){for(var w=b-u;w!==b&&g[w]===0;)w++;for(var x=new Uint8Array(S+(b-w)),F=S;w!==b;)x[F++]=g[w++];return x}}}function de(a){var f=k(a);if(f)return f;throw new Error(`Non-${e} character`)}return{encode:N,decodeUnsafe:k,decode:de}}var qe=Fe,Re=qe,oe=Re;var X=class{constructor(e,t,n){this.name=e,this.prefix=t,this.baseEncode=n}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}},K=class{constructor(e,t,n){if(this.name=e,this.prefix=t,t.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=t.codePointAt(0),this.baseDecode=n}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 se(this,e)}},W=class{constructor(e){this.decoders=e}or(e){return se(this,e)}decode(e){let t=e[0],n=this.decoders[t];if(n)return n.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}},se=(r,e)=>new W({...r.decoders||{[r.prefix]:r},...e.decoders||{[e.prefix]:e}}),Z=class{constructor(e,t,n,o){this.name=e,this.prefix=t,this.baseEncode=n,this.baseDecode=o,this.encoder=new X(e,t,n),this.decoder=new K(e,t,o)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}},ie=({name:r,prefix:e,encode:t,decode:n})=>new Z(r,e,t,n),Y=({prefix:r,name:e,alphabet:t})=>{let{encode:n,decode:o}=oe(t,e);return ie({prefix:r,name:e,encode:n,decode:s=>z(o(s))})},Je=(r,e,t,n)=>{let o={};for(let p=0;p<e.length;++p)o[e[p]]=p;let s=r.length;for(;r[s-1]==="=";)--s;let i=new Uint8Array(s*t/8|0),c=0,d=0,M=0;for(let p=0;p<s;++p){let N=o[r[p]];if(N===void 0)throw new SyntaxError(`Non-${n} character`);d=d<<t|N,c+=t,c>=8&&(c-=8,i[M++]=255&d>>c)}if(c>=t||255&d<<8-c)throw new SyntaxError("Unexpected end of data");return i},Pe=(r,e,t)=>{let n=e[e.length-1]==="=",o=(1<<t)-1,s="",i=0,c=0;for(let d=0;d<r.length;++d)for(c=c<<8|r[d],i+=8;i>t;)i-=t,s+=e[o&c>>i];if(i&&(s+=e[o&c<<t-i]),n)for(;s.length*t&7;)s+="=";return s},y=({name:r,prefix:e,bitsPerChar:t,alphabet:n})=>ie({prefix:e,name:r,encode(o){return Pe(o,n,t)},decode(o){return Je(o,n,t,r)}});var v=Y({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),it=Y({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var $=y({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),ht=y({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),dt=y({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),ft=y({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),pt=y({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),lt=y({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),ut=y({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),wt=y({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),bt=y({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var ae=(r,e)=>{let{bytes:t,version:n}=r;switch(n){case 0:return Qe(t,H(r),e||v.encoder);default:return Ge(t,H(r),e||$.encoder)}};var ce=new WeakMap,H=r=>{let e=ce.get(r);if(e==null){let t=new Map;return ce.set(r,t),t}return e},h=class{constructor(e,t,n,o){this.code=t,this.version=e,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:e,multihash:t}=this;if(e!==I)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(t.code!==Xe)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return h.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,n=V(e,t);return h.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(e){return h.equals(this,e)}static equals(e,t){let n=t;return n&&e.code===n.code&&e.version===n.version&&G(e.multihash,n.multihash)}toString(e){return ae(this,e)}toJSON(){return{"/":ae(this)}}link(){return this}get[Symbol.toStringTag](){return"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 h)return t;if(t["/"]!=null&&t["/"]===t.bytes||t.asCID===t){let{version:n,code:o,multihash:s,bytes:i}=t;return new h(n,o,s,i||he(n,o,s.bytes))}else if(t[Ke]===!0){let{version:n,multihash:o,code:s}=t,i=Q(o);return h.create(n,s,i)}else return null}static create(e,t,n){if(typeof t!="number")throw new Error("String codecs are no longer supported");if(!(n.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(e){case 0:{if(t!==I)throw new Error(`Version 0 CID must use dag-pb (code: ${I}) block encoding`);return new h(e,t,n,n.bytes)}case 1:{let o=he(e,t,n.bytes);return new h(e,t,n,o)}default:throw new Error("Invalid version")}}static createV0(e){return h.create(0,I,e)}static createV1(e,t){return h.create(1,e,t)}static decode(e){let[t,n]=h.decodeFirst(e);if(n.length)throw new Error("Incorrect length");return t}static decodeFirst(e){let t=h.inspectBytes(e),n=t.size-t.multihashSize,o=z(e.subarray(n,n+t.multihashSize));if(o.byteLength!==t.multihashSize)throw new Error("Incorrect length");let s=o.subarray(t.multihashSize-t.digestSize),i=new C(t.multihashCode,t.digestSize,s,o);return[t.version===0?h.createV0(i):h.createV1(t.codec,i),e.subarray(t.size)]}static inspectBytes(e){let t=0,n=()=>{let[N,k]=O(e.subarray(t));return t+=k,N},o=n(),s=I;if(o===18?(o=0,t=0):s=n(),o!==0&&o!==1)throw new RangeError(`Invalid CID version ${o}`);let i=t,c=n(),d=n(),M=t+d,p=M-i;return{version:o,codec:s,multihashCode:c,digestSize:d,multihashSize:p,size:M}}static parse(e,t){let[n,o]=je(e,t),s=h.decode(o);if(s.version===0&&e[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return H(s).set(n,e),s}},je=(r,e)=>{switch(r[0]){case"Q":{let t=e||v;return[v.prefix,t.decode(`${v.prefix}${r}`)]}case v.prefix:{let t=e||v;return[v.prefix,t.decode(r)]}case $.prefix:{let t=e||$;return[$.prefix,t.decode(r)]}default:{if(e==null)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[r[0],e.decode(r)]}}},Qe=(r,e,t)=>{let{prefix:n}=t;if(n!==v.prefix)throw Error(`Cannot string encode V0 in ${t.name} encoding`);let o=e.get(n);if(o==null){let s=t.encode(r).slice(1);return e.set(n,s),s}else return o},Ge=(r,e,t)=>{let{prefix:n}=t,o=e.get(n);if(o==null){let s=t.encode(r);return e.set(n,s),s}else return o},I=112,Xe=18,he=(r,e,t)=>{let n=U(r),o=n+U(e),s=new Uint8Array(o+t.byteLength);return E(r,s,0),E(e,s,n),s.set(t,o),s},Ke=Symbol.for("@ipld/js-cid/CID");var _={};D(_,{Hasher:()=>q,from:()=>We});var We=({name:r,code:e,encode:t})=>new q(r,e,t),q=class{constructor(e,t,n){this.name=e,this.code=t,this.encode=n}digest(e){if(e instanceof Uint8Array){let t=this.encode(e);return t instanceof Uint8Array?V(this.code,t):t.then(n=>V(this.code,n))}else throw Error("Unknown type, must be binary type")}};return we(Ze);})();
return Multiformats}));
{
"name": "multiformats",
"version": "11.0.0",
"version": "11.0.1",
"description": "Interface for multihash, multicodec, multibase and CID",

@@ -5,0 +5,0 @@ "author": "Mikeal Rogers <mikeal.rogers@gmail.com> (https://www.mikealrogers.com/)",

@@ -487,2 +487,6 @@ import * as varint from './varint.js'

if (cid.version === 0 && source[0] !== 'Q') {
throw Error('Version 0 CID string must not include multibase prefix')
}
// Cache string representation to avoid computing it on `this.toString()`

@@ -489,0 +493,0 @@ baseCache(cid).set(prefix, source)

@@ -88,2 +88,8 @@ /* globals describe, it */

it('throws on CIDv0 string with explicit multibase prefix', async () => {
const str = 'zQmdfTbBqBPQ7VNxZEYEj14VmRuZBkqFbiwReogJgS1zR1n'
const msg = 'Version 0 CID string must not include multibase prefix'
assert.throws(() => CID.parse(str), msg)
})
it('.bytes', async () => {

@@ -90,0 +96,0 @@ const hash = await sha256.digest(textEncoder.encode('abc'))

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc