multiformats
Advanced tools
| (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 j=Object.defineProperty;var xe=Object.getOwnPropertyDescriptor;var ge=Object.getOwnPropertyNames;var me=Object.prototype.hasOwnProperty;var B=(r,e)=>{for(var t in e)j(r,t,{get:e[t],enumerable:!0})},ye=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of ge(e))!me.call(r,o)&&o!==t&&j(r,o,{get:()=>e[o],enumerable:!(n=xe(e,o))||n.enumerable});return r};var ve=r=>ye(j({},"__esModule",{value:!0}),r);var st={};B(st,{CID:()=>R,bytes:()=>Q,digest:()=>V,hasher:()=>te,varint:()=>O});var Q={};B(Q,{coerce:()=>D,empty:()=>ne,equals:()=>G,fromHex:()=>Ce,fromString:()=>De,isBinary:()=>Ee,toArrayBufferBackedArray:()=>C,toHex:()=>Ae,toString:()=>Ie});var ne=new Uint8Array(0);function Ae(r){return r.reduce((e,t)=>e+t.toString(16).padStart(2,"0"),"")}function Ce(r){let e=r.match(/../g);return e!=null?new Uint8Array(e.map(t=>parseInt(t,16))):ne}function G(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 D(r){if(r instanceof Uint8Array&&r.constructor.name==="Uint8Array")return C(r);if(r instanceof ArrayBuffer)return new Uint8Array(r);if(ArrayBuffer.isView(r))return C(new Uint8Array(r.buffer,r.byteOffset,r.byteLength));throw new Error("Unknown type, must be binary type")}function Ee(r){return r instanceof ArrayBuffer||ArrayBuffer.isView(r)}function De(r){return new TextEncoder().encode(r)}function Ie(r){return new TextDecoder().decode(r)}function Se(r){return r?.buffer instanceof ArrayBuffer}function C(r){return Se(r)?r:r.slice()}function Ue(r,e,t){if(r.length>=255)throw new TypeError("Alphabet too long");for(var n=new Uint8Array(256),o=0;o<n.length;o++)n[o]=255;for(var i=0;i<r.length;i++){var s=r.charAt(i),c=s.charCodeAt(0);if(n[c]!==255)throw new TypeError(s+" is ambiguous");if(n[c]=i,t){var d=s.toLowerCase().charCodeAt(0),m=s.toUpperCase().charCodeAt(0);d!==c&&(n[d]=i),m!==c&&(n[m]=i)}}var l=r.length,k=r.charAt(0),P=Math.log(l)/Math.log(256),le=Math.log(256)/Math.log(l);function be(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,E=0,u=0,b=a.length;u!==b&&a[u]===0;)u++,f++;for(var w=(b-u)*le+1>>>0,h=new Uint8Array(w);u!==b;){for(var x=a[u],A=0,p=w-1;(x!==0||A<E)&&p!==-1;p--,A++)x+=256*h[p]>>>0,h[p]=x%l>>>0,x=x/l>>>0;if(x!==0)throw new Error("Non-zero carry");E=A,u++}for(var y=w-E;y!==w&&h[y]===0;)y++;for(var q=k.repeat(f);y<w;++y)q+=r.charAt(h[y]);return q}function re(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 E=0,u=0;a[f]===k;)E++,f++;for(var b=(a.length-f)*P+1>>>0,w=new Uint8Array(b);a[f];){var h=n[a.charCodeAt(f)];if(h===255)return;for(var x=0,A=b-1;(h!==0||x<u)&&A!==-1;A--,x++)h+=l*w[A]>>>0,w[A]=h%256>>>0,h=h/256>>>0;if(h!==0)throw new Error("Non-zero carry");u=x,f++}if(a[f]!==" "){for(var p=b-u;p!==b&&w[p]===0;)p++;for(var y=new Uint8Array(E+(b-p)),q=E;p!==b;)y[q++]=w[p++];return y}}}function we(a){var f=re(a);if(f)return f;throw new Error(`Non-${e} character`)}return{encode:be,decodeUnsafe:re,decode:we}}var Le=Ue,ze=Le,oe=ze;var X=class{name;prefix;baseEncode;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{name;prefix;baseDecode;prefixCodePoint;constructor(e,t,n){this.name=e,this.prefix=t;let o=t.codePointAt(0);if(o===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=o,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 ie(this,e)}},W=class{decoders;constructor(e){this.decoders=e}or(e){return ie(this,e)}decode(e){let t=e[0],n=this.decoders[t];if(n!=null)return n.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}};function ie(r,e){return new W({...r.decoders??{[r.prefix]:r},...e.decoders??{[e.prefix]:e}})}var Z=class{name;prefix;baseEncode;baseDecode;encoder;decoder;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)}};function se({name:r,prefix:e,encode:t,decode:n}){return new Z(r,e,t,n)}function L({name:r,prefix:e,alphabet:t,caseInsensitive:n=!1}){let{encode:o,decode:i}=oe(t,r,n);return se({prefix:e,name:r,encode:o,decode:s=>D(i(s))})}function Be(r,e,t,n){let o=r.length;for(;r[o-1]==="=";)--o;let i=new Uint8Array(o*t/8|0),s=0,c=0,d=0;for(let m=0;m<o;++m){let l=e[r[m]];if(l===void 0)throw new SyntaxError(`Non-${n} character`);c=c<<t|l,s+=t,s>=8&&(s-=8,i[d++]=255&c>>s)}if(s>=t||(255&c<<8-s)!==0)throw new SyntaxError("Unexpected end of data");return i}function Me(r,e,t){let n=e[e.length-1]==="=",o=(1<<t)-1,i="",s=0,c=0;for(let d=0;d<r.length;++d)for(c=c<<8|r[d],s+=8;s>t;)s-=t,i+=e[o&c>>s];if(s!==0&&(i+=e[o&c<<t-s]),n)for(;(i.length*t&7)!==0;)i+="=";return i}function Ne(r,e){let t={};for(let n=0;n<r.length;++n)if(t[r[n]]=n,e){let o=r[n].toLowerCase(),i=r[n].toUpperCase();o!==r[n]&&(t[o]=n),i!==r[n]&&(t[i]=n)}return t}function g({name:r,prefix:e,bitsPerChar:t,alphabet:n,caseInsensitive:o=!1}){let i=Ne(n,o);return se({prefix:e,name:r,encode(s){return Me(s,n,t)},decode(s){return Be(s,i,t,r)}})}var M=g({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5,caseInsensitive:!0}),pt=g({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5,caseInsensitive:!0}),lt=g({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5,caseInsensitive:!0}),bt=g({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5,caseInsensitive:!0}),wt=g({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5,caseInsensitive:!0}),xt=g({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5,caseInsensitive:!0}),gt=g({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5,caseInsensitive:!0}),mt=g({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5,caseInsensitive:!0}),yt=g({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var F=L({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz",caseInsensitive:!0}),Ct=L({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",caseInsensitive:!0});var v=L({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),It=L({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var V={};B(V,{Digest:()=>U,create:()=>T,decode:()=>Y,equals:()=>_,hasCode:()=>Ye});var O={};B(O,{decode:()=>z,encodeTo:()=>I,encodingLength:()=>S});var Oe=fe,ae=128,Te=127,Ve=~Te,$e=Math.pow(2,31);function fe(r,e,t){e=e||[],t=t||0;for(var n=t;r>=$e;)e[t++]=r&255|ae,r/=128;for(;r&Ve;)e[t++]=r&255|ae,r>>>=7;return e[t]=r|0,fe.bytes=t-n+1,e}var ke=H,qe=128,ce=127;function H(r,n){var t=0,n=n||0,o=0,i=n,s,c=r.length;do{if(i>=c)throw H.bytes=0,new RangeError("Could not decode varint");s=r[i++],t+=o<28?(s&ce)<<o:(s&ce)*Math.pow(2,o),o+=7}while(s>=qe);return H.bytes=i-n,t}var Fe=Math.pow(2,7),Re=Math.pow(2,14),Je=Math.pow(2,21),Pe=Math.pow(2,28),je=Math.pow(2,35),Ge=Math.pow(2,42),Qe=Math.pow(2,49),Xe=Math.pow(2,56),Ke=Math.pow(2,63),We=function(r){return r<Fe?1:r<Re?2:r<Je?3:r<Pe?4:r<je?5:r<Ge?6:r<Qe?7:r<Xe?8:r<Ke?9:10},Ze={encode:Oe,decode:ke,encodingLength:We},He=Ze,N=He;function z(r,e=0){return[N.decode(r,e),N.decode.bytes]}function I(r,e,t=0){return N.encode(r,e,t),e}function S(r){return N.encodingLength(r)}function T(r,e){let t=e.byteLength,n=S(r),o=n+S(t),i=new Uint8Array(o+t);return I(r,i,0),I(t,i,n),i.set(e,o),new U(r,t,e,i)}function Y(r){let e=D(r),[t,n]=z(e),[o,i]=z(e.subarray(n)),s=e.subarray(n+i);if(s.byteLength!==o)throw new Error("Incorrect length");return new U(t,o,s,e)}function _(r,e){if(r===e)return!0;{let t=e;return r.code===t.code&&r.size===t.size&&t.bytes instanceof Uint8Array&&G(r.bytes,t.bytes)}}var U=class{code;size;digest;bytes;constructor(e,t,n,o){this.code=e,this.size=t,this.digest=C(n),this.bytes=C(o)}};function Ye(r,e){return r.code===e}function he(r,e){let{bytes:t,version:n}=r;return n===0?et(t,ee(r),e??v.encoder):tt(t,ee(r),e??M.encoder)}var de=new WeakMap;function ee(r){let e=de.get(r);if(e==null){let t=new Map;return de.set(r,t),t}return e}var R=class r{code;version;multihash;bytes;"/";constructor(e,t,n,o){this.code=t,this.version=e,this.multihash=n,this.bytes=C(o),this["/"]=this.bytes}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!==$)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(t.code!==rt)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,n=T(e,t);return r.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 r.equals(this,e)}static equals(e,t){let n=t;return n!=null&&e.code===n.code&&e.version===n.version&&_(e.multihash,n.multihash)}toString(e){return he(this,e)}toJSON(){return{"/":he(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:n,code:o,multihash:i,bytes:s}=t;return new r(n,o,i,s??ue(n,o,i.bytes))}else if(t[nt]===!0){let{version:n,multihash:o,code:i}=t,s=Y(o);return r.create(n,i,s)}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!==$)throw new Error(`Version 0 CID must use dag-pb (code: ${$}) block encoding`);return new r(e,t,n,n.bytes)}case 1:{let o=ue(e,t,n.bytes);return new r(e,t,n,o)}default:throw new Error("Invalid version")}}static createV0(e){return r.create(0,$,e)}static createV1(e,t){return r.create(1,e,t)}static decode(e){let[t,n]=r.decodeFirst(e);if(n.length!==0)throw new Error("Incorrect length");return t}static decodeFirst(e){let t=r.inspectBytes(e),n=t.size-t.multihashSize,o=D(e.subarray(n,n+t.multihashSize));if(o.byteLength!==t.multihashSize)throw new Error("Incorrect length");let i=o.subarray(t.multihashSize-t.digestSize),s=new U(t.multihashCode,t.digestSize,i,o);return[t.version===0?r.createV0(s):r.createV1(t.codec,s),e.subarray(t.size)]}static inspectBytes(e){let t=0,n=()=>{let[k,P]=z(e.subarray(t));return t+=P,k},o=n(),i=$;if(o===18?(o=0,t=0):i=n(),o!==0&&o!==1)throw new RangeError(`Invalid CID version ${o}`);let s=t,c=n(),d=n(),m=t+d,l=m-s;return{version:o,codec:i,multihashCode:c,digestSize:d,multihashSize:l,size:m}}static parse(e,t){let[n,o]=_e(e,t),i=r.decode(o);if(i.version===0&&e[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return ee(i).set(n,e),i}};function _e(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 M.prefix:{let t=e??M;return[M.prefix,t.decode(r)]}case F.prefix:{let t=e??F;return[F.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 et(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 i=t.encode(r).slice(1);return e.set(n,i),i}else return o}function tt(r,e,t){let{prefix:n}=t,o=e.get(n);if(o==null){let i=t.encode(r);return e.set(n,i),i}else return o}var $=112,rt=18;function ue(r,e,t){let n=S(r),o=n+S(e),i=new Uint8Array(o+t.byteLength);return I(r,i,0),I(e,i,n),i.set(t,o),i}var nt=Symbol.for("@ipld/js-cid/CID");var te={};B(te,{Hasher:()=>J,from:()=>it});var ot=20;function it({name:r,code:e,encode:t,minDigestLength:n,maxDigestLength:o}){return new J(r,e,t,n,o)}var J=class{name;code;encode;minDigestLength;maxDigestLength;constructor(e,t,n,o,i){this.name=e,this.code=t,this.encode=n,this.minDigestLength=o??ot,this.maxDigestLength=i}digest(e,t){if(t?.truncate!=null){if(t.truncate<this.minDigestLength)throw new Error(`Invalid truncate option, must be greater than or equal to ${this.minDigestLength}`);if(this.maxDigestLength!=null&&t.truncate>this.maxDigestLength)throw new Error(`Invalid truncate option, must be less than or equal to ${this.maxDigestLength}`)}if(e instanceof Uint8Array){let n=this.encode(e);return n instanceof Uint8Array?pe(n,this.code,t?.truncate):n.then(o=>pe(o,this.code,t?.truncate))}else throw Error("Unknown type, must be binary type")}};function pe(r,e,t){if(t!=null&&t!==r.byteLength){if(t>r.byteLength)throw new Error(`Invalid truncate option, must be less than or equal to ${r.byteLength}`);r=r.subarray(0,t)}return T(e,r)}return ve(st);})(); | ||
| "use strict";var Multiformats=(()=>{var P=Object.defineProperty;var xe=Object.getOwnPropertyDescriptor;var me=Object.getOwnPropertyNames;var ye=Object.prototype.hasOwnProperty;var M=(r,t)=>{for(var e in t)P(r,e,{get:t[e],enumerable:!0})},ve=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of me(t))!ye.call(r,o)&&o!==e&&P(r,o,{get:()=>t[o],enumerable:!(n=xe(t,o))||n.enumerable});return r};var Ae=r=>ve(P({},"__esModule",{value:!0}),r);var at={};M(at,{CID:()=>R,bytes:()=>X,digest:()=>V,hasher:()=>te,varint:()=>O});var X={};M(X,{coerce:()=>S,empty:()=>oe,equals:()=>j,fromHex:()=>Ee,fromString:()=>De,isBinary:()=>Se,toArrayBufferBackedArray:()=>C,toHex:()=>Ce,toString:()=>Ie});var oe=new Uint8Array(0);function Ce(r){return r.reduce((t,e)=>t+e.toString(16).padStart(2,"0"),"")}function Ee(r){let t=r.match(/../g);return t!=null?new Uint8Array(t.map(e=>parseInt(e,16))):oe}function j(r,t){if(r===t)return!0;if(r.byteLength!==t.byteLength)return!1;for(let e=0;e<r.byteLength;e++)if(r[e]!==t[e])return!1;return!0}function S(r){if(r instanceof Uint8Array&&r.constructor.name==="Uint8Array")return C(r);if(r instanceof ArrayBuffer)return new Uint8Array(r);if(ArrayBuffer.isView(r))return C(new Uint8Array(r.buffer,r.byteOffset,r.byteLength));throw new Error("Unknown type, must be binary type")}function Se(r){return r instanceof ArrayBuffer||ArrayBuffer.isView(r)}function De(r){let t=new Uint8Array(r.length);for(let e=0;e<r.length;e++)t[e]=r.charCodeAt(e);return t}var ne=4096;function Ie(r){let t=r.length;if(t<=ne)return String.fromCharCode.apply(String,r);let e="",n=0;for(;n<t;)e+=String.fromCharCode.apply(String,r.subarray(n,n+=ne));return e}function Ue(r){return r?.buffer instanceof ArrayBuffer}function C(r){return Ue(r)?r:r.slice()}function Le(r,t,e){if(r.length>=255)throw new TypeError("Alphabet too long");for(var n=new Uint8Array(256),o=0;o<n.length;o++)n[o]=255;for(var i=0;i<r.length;i++){var s=r.charAt(i),c=s.charCodeAt(0);if(n[c]!==255)throw new TypeError(s+" is ambiguous");if(n[c]=i,e){var d=s.toLowerCase().charCodeAt(0),m=s.toUpperCase().charCodeAt(0);d!==c&&(n[d]=i),m!==c&&(n[m]=i)}}var l=r.length,k=r.charAt(0),J=Math.log(l)/Math.log(256),be=Math.log(256)/Math.log(l);function ge(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,E=0,u=0,b=a.length;u!==b&&a[u]===0;)u++,f++;for(var g=(b-u)*be+1>>>0,h=new Uint8Array(g);u!==b;){for(var w=a[u],A=0,p=g-1;(w!==0||A<E)&&p!==-1;p--,A++)w+=256*h[p]>>>0,h[p]=w%l>>>0,w=w/l>>>0;if(w!==0)throw new Error("Non-zero carry");E=A,u++}for(var y=g-E;y!==g&&h[y]===0;)y++;for(var q=k.repeat(f);y<g;++y)q+=r.charAt(h[y]);return q}function re(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 E=0,u=0;a[f]===k;)E++,f++;for(var b=(a.length-f)*J+1>>>0,g=new Uint8Array(b);a[f];){var h=n[a.charCodeAt(f)];if(h===255)return;for(var w=0,A=b-1;(h!==0||w<u)&&A!==-1;A--,w++)h+=l*g[A]>>>0,g[A]=h%256>>>0,h=h/256>>>0;if(h!==0)throw new Error("Non-zero carry");u=w,f++}if(a[f]!==" "){for(var p=b-u;p!==b&&g[p]===0;)p++;for(var y=new Uint8Array(E+(b-p)),q=E;p!==b;)y[q++]=g[p++];return y}}}function we(a){var f=re(a);if(f)return f;throw new Error(`Non-${t} character`)}return{encode:ge,decodeUnsafe:re,decode:we}}var ze=Le,Me=ze,ie=Me;var Q=class{name;prefix;baseEncode;constructor(t,e,n){this.name=t,this.prefix=e,this.baseEncode=n}encode(t){if(t instanceof Uint8Array)return`${this.prefix}${this.baseEncode(t)}`;throw Error("Unknown type, must be binary type")}},K=class{name;prefix;baseDecode;prefixCodePoint;constructor(t,e,n){this.name=t,this.prefix=e;let o=e.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 se(this,t)}},W=class{decoders;constructor(t){this.decoders=t}or(t){return se(this,t)}decode(t){let e=t[0],n=this.decoders[e];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 se(r,t){return new W({...r.decoders??{[r.prefix]:r},...t.decoders??{[t.prefix]:t}})}var H=class{name;prefix;baseEncode;baseDecode;encoder;decoder;constructor(t,e,n,o){this.name=t,this.prefix=e,this.baseEncode=n,this.baseDecode=o,this.encoder=new Q(t,e,n),this.decoder=new K(t,e,o)}encode(t){return this.encoder.encode(t)}decode(t){return this.decoder.decode(t)}};function ae({name:r,prefix:t,encode:e,decode:n}){return new H(r,t,e,n)}function L({name:r,prefix:t,alphabet:e,caseInsensitive:n=!1}){let{encode:o,decode:i}=ie(e,r,n);return ae({prefix:t,name:r,encode:o,decode:s=>S(i(s))})}function Be(r,t,e,n){let o=r.length;for(;r[o-1]==="=";)--o;let i=new Uint8Array(o*e/8|0),s=0,c=0,d=0;for(let m=0;m<o;++m){let l=t[r[m]];if(l===void 0)throw new SyntaxError(`Non-${n} character`);c=c<<e|l,s+=e,s>=8&&(s-=8,i[d++]=255&c>>s)}if(s>=e||(255&c<<8-s)!==0)throw new SyntaxError("Unexpected end of data");return i}function Ne(r,t,e){let n=t[t.length-1]==="=",o=(1<<e)-1,i="",s=0,c=0;for(let d=0;d<r.length;++d)for(c=c<<8|r[d],s+=8;s>e;)s-=e,i+=t[o&c>>s];if(s!==0&&(i+=t[o&c<<e-s]),n)for(;(i.length*e&7)!==0;)i+="=";return i}function Oe(r,t){let e={};for(let n=0;n<r.length;++n)if(e[r[n]]=n,t){let o=r[n].toLowerCase(),i=r[n].toUpperCase();o!==r[n]&&(e[o]=n),i!==r[n]&&(e[i]=n)}return e}function x({name:r,prefix:t,bitsPerChar:e,alphabet:n,caseInsensitive:o=!1}){let i=Oe(n,o);return ae({prefix:t,name:r,encode(s){return Ne(s,n,e)},decode(s){return Be(s,i,e,r)}})}var B=x({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5,caseInsensitive:!0}),lt=x({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5,caseInsensitive:!0}),bt=x({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5,caseInsensitive:!0}),gt=x({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5,caseInsensitive:!0}),wt=x({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5,caseInsensitive:!0}),xt=x({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5,caseInsensitive:!0}),mt=x({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5,caseInsensitive:!0}),yt=x({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5,caseInsensitive:!0}),vt=x({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var F=L({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz",caseInsensitive:!0}),Et=L({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",caseInsensitive:!0});var v=L({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),It=L({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var V={};M(V,{Digest:()=>U,create:()=>T,decode:()=>Y,equals:()=>_,hasCode:()=>_e});var O={};M(O,{decode:()=>z,encodeTo:()=>D,encodingLength:()=>I});var Te=he,ce=128,Ve=127,$e=~Ve,ke=Math.pow(2,31);function he(r,t,e){t=t||[],e=e||0;for(var n=e;r>=ke;)t[e++]=r&255|ce,r/=128;for(;r&$e;)t[e++]=r&255|ce,r>>>=7;return t[e]=r|0,he.bytes=e-n+1,t}var qe=Z,Fe=128,fe=127;function Z(r,n){var e=0,n=n||0,o=0,i=n,s,c=r.length;do{if(i>=c)throw Z.bytes=0,new RangeError("Could not decode varint");s=r[i++],e+=o<28?(s&fe)<<o:(s&fe)*Math.pow(2,o),o+=7}while(s>=Fe);return Z.bytes=i-n,e}var Re=Math.pow(2,7),Ge=Math.pow(2,14),Je=Math.pow(2,21),Pe=Math.pow(2,28),je=Math.pow(2,35),Xe=Math.pow(2,42),Qe=Math.pow(2,49),Ke=Math.pow(2,56),We=Math.pow(2,63),He=function(r){return r<Re?1:r<Ge?2:r<Je?3:r<Pe?4:r<je?5:r<Xe?6:r<Qe?7:r<Ke?8:r<We?9:10},Ze={encode:Te,decode:qe,encodingLength:He},Ye=Ze,N=Ye;function z(r,t=0){return[N.decode(r,t),N.decode.bytes]}function D(r,t,e=0){return N.encode(r,t,e),t}function I(r){return N.encodingLength(r)}function T(r,t){let e=t.byteLength,n=I(r),o=n+I(e),i=new Uint8Array(o+e);return D(r,i,0),D(e,i,n),i.set(t,o),new U(r,e,t,i)}function Y(r){let t=S(r),[e,n]=z(t),[o,i]=z(t.subarray(n)),s=t.subarray(n+i);if(s.byteLength!==o)throw new Error("Incorrect length");return new U(e,o,s,t)}function _(r,t){if(r===t)return!0;{let e=t;return r.code===e.code&&r.size===e.size&&e.bytes instanceof Uint8Array&&j(r.bytes,e.bytes)}}var U=class{code;size;digest;bytes;constructor(t,e,n,o){this.code=t,this.size=e,this.digest=C(n),this.bytes=C(o)}};function _e(r,t){return r.code===t}function de(r,t){let{bytes:e,version:n}=r;return n===0?tt(e,ee(r),t??v.encoder):rt(e,ee(r),t??B.encoder)}var ue=new WeakMap;function ee(r){let t=ue.get(r);if(t==null){let e=new Map;return ue.set(r,e),e}return t}var R=class r{code;version;multihash;bytes;"/";constructor(t,e,n,o){this.code=e,this.version=t,this.multihash=n,this.bytes=C(o),this["/"]=this.bytes}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:e}=this;if(t!==$)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(e.code!==nt)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return r.createV0(e)}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:e}=this.multihash,n=T(t,e);return r.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 r.equals(this,t)}static equals(t,e){let n=e;return n!=null&&t.code===n.code&&t.version===n.version&&_(t.multihash,n.multihash)}toString(t){return de(this,t)}toJSON(){return{"/":de(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 e=t;if(e instanceof r)return e;if(e["/"]!=null&&e["/"]===e.bytes||e.asCID===e){let{version:n,code:o,multihash:i,bytes:s}=e;return new r(n,o,i,s??pe(n,o,i.bytes))}else if(e[ot]===!0){let{version:n,multihash:o,code:i}=e,s=Y(o);return r.create(n,i,s)}else return null}static create(t,e,n){if(typeof e!="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(e!==$)throw new Error(`Version 0 CID must use dag-pb (code: ${$}) block encoding`);return new r(t,e,n,n.bytes)}case 1:{let o=pe(t,e,n.bytes);return new r(t,e,n,o)}default:throw new Error("Invalid version")}}static createV0(t){return r.create(0,$,t)}static createV1(t,e){return r.create(1,t,e)}static decode(t){let[e,n]=r.decodeFirst(t);if(n.length!==0)throw new Error("Incorrect length");return e}static decodeFirst(t){let e=r.inspectBytes(t),n=e.size-e.multihashSize,o=S(t.subarray(n,n+e.multihashSize));if(o.byteLength!==e.multihashSize)throw new Error("Incorrect length");let i=o.subarray(e.multihashSize-e.digestSize),s=new U(e.multihashCode,e.digestSize,i,o);return[e.version===0?r.createV0(s):r.createV1(e.codec,s),t.subarray(e.size)]}static inspectBytes(t){let e=0,n=()=>{let[k,J]=z(t.subarray(e));return e+=J,k},o=n(),i=$;if(o===18?(o=0,e=0):i=n(),o!==0&&o!==1)throw new RangeError(`Invalid CID version ${o}`);let s=e,c=n(),d=n(),m=e+d,l=m-s;return{version:o,codec:i,multihashCode:c,digestSize:d,multihashSize:l,size:m}}static parse(t,e){let[n,o]=et(t,e),i=r.decode(o);if(i.version===0&&t[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return ee(i).set(n,t),i}};function et(r,t){switch(r[0]){case"Q":{let e=t??v;return[v.prefix,e.decode(`${v.prefix}${r}`)]}case v.prefix:{let e=t??v;return[v.prefix,e.decode(r)]}case B.prefix:{let e=t??B;return[B.prefix,e.decode(r)]}case F.prefix:{let e=t??F;return[F.prefix,e.decode(r)]}default:{if(t==null)throw Error("To parse non base32, base36 or base58btc encoded CID multibase decoder must be provided");return[r[0],t.decode(r)]}}}function tt(r,t,e){let{prefix:n}=e;if(n!==v.prefix)throw Error(`Cannot string encode V0 in ${e.name} encoding`);let o=t.get(n);if(o==null){let i=e.encode(r).slice(1);return t.set(n,i),i}else return o}function rt(r,t,e){let{prefix:n}=e,o=t.get(n);if(o==null){let i=e.encode(r);return t.set(n,i),i}else return o}var $=112,nt=18;function pe(r,t,e){let n=I(r),o=n+I(t),i=new Uint8Array(o+e.byteLength);return D(r,i,0),D(t,i,n),i.set(e,o),i}var ot=Symbol.for("@ipld/js-cid/CID");var te={};M(te,{Hasher:()=>G,from:()=>st});var it=20;function st({name:r,code:t,encode:e,minDigestLength:n,maxDigestLength:o}){return new G(r,t,e,n,o)}var G=class{name;code;encode;minDigestLength;maxDigestLength;constructor(t,e,n,o,i){this.name=t,this.code=e,this.encode=n,this.minDigestLength=o??it,this.maxDigestLength=i}digest(t,e){if(e?.truncate!=null){if(e.truncate<this.minDigestLength)throw new Error(`Invalid truncate option, must be greater than or equal to ${this.minDigestLength}`);if(this.maxDigestLength!=null&&e.truncate>this.maxDigestLength)throw new Error(`Invalid truncate option, must be less than or equal to ${this.maxDigestLength}`)}if(t instanceof Uint8Array){let n=this.encode(t);return n instanceof Uint8Array?le(n,this.code,e?.truncate):n.then(o=>le(o,this.code,e?.truncate))}else throw Error("Unknown type, must be binary type")}};function le(r,t,e){if(e!=null&&e!==r.byteLength){if(e>r.byteLength)throw new Error(`Invalid truncate option, must be less than or equal to ${r.byteLength}`);r=r.subarray(0,e)}return T(t,r)}return Ae(at);})(); | ||
| return Multiformats})); | ||
| //# sourceMappingURL=index.min.js.map |
@@ -1,2 +0,2 @@ | ||
| import { fromString, toString } from "../bytes.js"; | ||
| import { coerce, fromString, toString } from "../bytes.js"; | ||
| import { from } from "./base.js"; | ||
@@ -6,5 +6,5 @@ export const identity = from({ | ||
| name: 'identity', | ||
| encode: (buf) => toString(buf), | ||
| decode: (str) => fromString(str) | ||
| encode: (buf) => toString(coerce(buf)), | ||
| decode: (str) => coerce(fromString(str)) | ||
| }); | ||
| //# sourceMappingURL=identity.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"identity.js","sourceRoot":"","sources":["../../../src/bases/identity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,MAAM;IACd,IAAI,EAAE,UAAU;IAChB,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC;IAC9B,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;CACjC,CAAC,CAAA"} | ||
| {"version":3,"file":"identity.js","sourceRoot":"","sources":["../../../src/bases/identity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,MAAM;IACd,IAAI,EAAE,UAAU;IAChB,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;CACzC,CAAC,CAAA"} |
@@ -16,3 +16,11 @@ export declare const empty: Uint8Array<ArrayBuffer>; | ||
| export declare function isBinary(o: unknown): o is ArrayBuffer | ArrayBufferView; | ||
| /** | ||
| * Convert the passed string into a byte array, constraining each character | ||
| * value to a single byte | ||
| */ | ||
| export declare function fromString(str: string): Uint8Array<ArrayBuffer>; | ||
| /** | ||
| * Convert the passed byte array to a string, interpreting each byte as a single | ||
| * character | ||
| */ | ||
| export declare function toString(b: Uint8Array): string; | ||
@@ -19,0 +27,0 @@ /** |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"bytes.d.ts","sourceRoot":"","sources":["../../src/bytes.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,KAAK,yBAAoB,CAAA;AAEtC,wBAAgB,KAAK,CAAE,CAAC,EAAE,UAAU,GAAG,MAAM,CAE5C;AAED,wBAAgB,OAAO,CAAE,GAAG,EAAE,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,CAG7D;AAED,wBAAgB,MAAM,CAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,GAAG,OAAO,CAa/D;AAED;;;;;;;;GAQG;AACH,wBAAgB,MAAM,CAAE,CAAC,EAAE,eAAe,GAAG,WAAW,GAAG,UAAU,GAAG,UAAU,CAAC,WAAW,CAAC,CAW9F;AAED,wBAAgB,QAAQ,CAAE,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,WAAW,GAAG,eAAe,CAExE;AAED,wBAAgB,UAAU,CAAE,GAAG,EAAE,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,CAEhE;AAED,wBAAgB,QAAQ,CAAE,CAAC,EAAE,UAAU,GAAG,MAAM,CAE/C;AAMD;;;GAGG;AACH,wBAAgB,wBAAwB,CAAE,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC,WAAW,CAAC,CAMhF"} | ||
| {"version":3,"file":"bytes.d.ts","sourceRoot":"","sources":["../../src/bytes.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,KAAK,yBAAoB,CAAA;AAEtC,wBAAgB,KAAK,CAAE,CAAC,EAAE,UAAU,GAAG,MAAM,CAE5C;AAED,wBAAgB,OAAO,CAAE,GAAG,EAAE,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,CAG7D;AAED,wBAAgB,MAAM,CAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,GAAG,OAAO,CAa/D;AAED;;;;;;;;GAQG;AACH,wBAAgB,MAAM,CAAE,CAAC,EAAE,eAAe,GAAG,WAAW,GAAG,UAAU,GAAG,UAAU,CAAC,WAAW,CAAC,CAW9F;AAED,wBAAgB,QAAQ,CAAE,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,WAAW,GAAG,eAAe,CAExE;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAE,GAAG,EAAE,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,CAQhE;AAOD;;;GAGG;AACH,wBAAgB,QAAQ,CAAE,CAAC,EAAE,UAAU,GAAG,MAAM,CAmB/C;AAMD;;;GAGG;AACH,wBAAgB,wBAAwB,CAAE,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC,WAAW,CAAC,CAMhF"} |
+31
-2
@@ -47,7 +47,36 @@ export const empty = new Uint8Array(0); | ||
| } | ||
| /** | ||
| * Convert the passed string into a byte array, constraining each character | ||
| * value to a single byte | ||
| */ | ||
| export function fromString(str) { | ||
| return new TextEncoder().encode(str); | ||
| const output = new Uint8Array(str.length); | ||
| for (let i = 0; i < str.length; i++) { | ||
| output[i] = str.charCodeAt(i); | ||
| } | ||
| return output; | ||
| } | ||
| // Based on http://stackoverflow.com/a/22747272/680742, the browser with | ||
| // the lowest limit is Chrome, with 0x10000 args. | ||
| // We go 1 magnitude less, for safety | ||
| const MAX_ARGUMENTS_LENGTH = 0x1000; | ||
| /** | ||
| * Convert the passed byte array to a string, interpreting each byte as a single | ||
| * character | ||
| */ | ||
| export function toString(b) { | ||
| return new TextDecoder().decode(b); | ||
| const len = b.length; | ||
| if (len <= MAX_ARGUMENTS_LENGTH) { | ||
| // @ts-expect-error cannot ordinarily apply a Uint8Array | ||
| return String.fromCharCode.apply(String, b); // avoid extra subarray() | ||
| } | ||
| // Decode in chunks to avoid "call stack size exceeded". | ||
| let res = ''; | ||
| let i = 0; | ||
| while (i < len) { | ||
| res += String.fromCharCode.apply(String, | ||
| // @ts-expect-error cannot ordinarily apply a Uint8Array | ||
| b.subarray(i, i += MAX_ARGUMENTS_LENGTH)); | ||
| } | ||
| return res; | ||
| } | ||
@@ -54,0 +83,0 @@ function isByteArrayWithArrayBuffer(b) { |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"bytes.js","sourceRoot":"","sources":["../../src/bytes.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAA;AAEtC,MAAM,UAAU,KAAK,CAAE,CAAa;IAClC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAA;AAC9E,CAAC;AAED,MAAM,UAAU,OAAO,CAAE,GAAW;IAClC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAC9B,OAAO,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;AAChF,CAAC;AAED,MAAM,UAAU,MAAM,CAAE,EAAc,EAAE,EAAc;IACpD,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAAC,OAAO,IAAI,CAAA;IAAC,CAAC;IAC9B,IAAI,EAAE,CAAC,UAAU,KAAK,EAAE,CAAC,UAAU,EAAE,CAAC;QACpC,OAAO,KAAK,CAAA;IACd,CAAC;IAED,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,CAAC;QAC1C,IAAI,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;YACtB,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,MAAM,CAAE,CAA6C;IACnE,IAAI,CAAC,YAAY,UAAU,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QACnE,OAAO,wBAAwB,CAAC,CAAC,CAAC,CAAA;IACpC,CAAC;IACD,IAAI,CAAC,YAAY,WAAW,EAAE,CAAC;QAC7B,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,CAAA;IAC1B,CAAC;IACD,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1B,OAAO,wBAAwB,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAA;IACvF,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;AACtD,CAAC;AAED,MAAM,UAAU,QAAQ,CAAE,CAAU;IAClC,OAAO,CAAC,YAAY,WAAW,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;AAC1D,CAAC;AAED,MAAM,UAAU,UAAU,CAAE,GAAW;IACrC,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;AACtC,CAAC;AAED,MAAM,UAAU,QAAQ,CAAE,CAAa;IACrC,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;AACpC,CAAC;AAED,SAAS,0BAA0B,CAAE,CAAc;IACjD,OAAO,CAAC,EAAE,MAAM,YAAY,WAAW,CAAA;AACzC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAE,CAAa;IACrD,IAAI,0BAA0B,CAAC,CAAC,CAAC,EAAE,CAAC;QAClC,OAAO,CAAC,CAAA;IACV,CAAC;IAED,OAAO,CAAC,CAAC,KAAK,EAAE,CAAA;AAClB,CAAC"} | ||
| {"version":3,"file":"bytes.js","sourceRoot":"","sources":["../../src/bytes.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAA;AAEtC,MAAM,UAAU,KAAK,CAAE,CAAa;IAClC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAA;AAC9E,CAAC;AAED,MAAM,UAAU,OAAO,CAAE,GAAW;IAClC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAC9B,OAAO,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;AAChF,CAAC;AAED,MAAM,UAAU,MAAM,CAAE,EAAc,EAAE,EAAc;IACpD,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAAC,OAAO,IAAI,CAAA;IAAC,CAAC;IAC9B,IAAI,EAAE,CAAC,UAAU,KAAK,EAAE,CAAC,UAAU,EAAE,CAAC;QACpC,OAAO,KAAK,CAAA;IACd,CAAC;IAED,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,CAAC;QAC1C,IAAI,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;YACtB,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,MAAM,CAAE,CAA6C;IACnE,IAAI,CAAC,YAAY,UAAU,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QACnE,OAAO,wBAAwB,CAAC,CAAC,CAAC,CAAA;IACpC,CAAC;IACD,IAAI,CAAC,YAAY,WAAW,EAAE,CAAC;QAC7B,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,CAAA;IAC1B,CAAC;IACD,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1B,OAAO,wBAAwB,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAA;IACvF,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;AACtD,CAAC;AAED,MAAM,UAAU,QAAQ,CAAE,CAAU;IAClC,OAAO,CAAC,YAAY,WAAW,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;AAC1D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAE,GAAW;IACrC,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IAEzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;IAC/B,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED,wEAAwE;AACxE,iDAAiD;AACjD,qCAAqC;AACrC,MAAM,oBAAoB,GAAG,MAAM,CAAA;AAEnC;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAE,CAAa;IACrC,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAA;IAEpB,IAAI,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAChC,wDAAwD;QACxD,OAAO,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA,CAAC,yBAAyB;IACvE,CAAC;IAED,wDAAwD;IACxD,IAAI,GAAG,GAAG,EAAE,CAAA;IACZ,IAAI,CAAC,GAAG,CAAC,CAAA;IACT,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC;QACf,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,KAAK,CAC9B,MAAM;QACN,wDAAwD;QACxD,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,oBAAoB,CAAC,CACzC,CAAA;IACH,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,SAAS,0BAA0B,CAAE,CAAc;IACjD,OAAO,CAAC,EAAE,MAAM,YAAY,WAAW,CAAA;AACzC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAE,CAAa;IACrD,IAAI,0BAA0B,CAAC,CAAC,CAAC,EAAE,CAAC;QAClC,OAAO,CAAC,CAAA;IACV,CAAC;IAED,OAAO,CAAC,CAAC,KAAK,EAAE,CAAA;AAClB,CAAC"} |
+1
-1
| { | ||
| "name": "multiformats", | ||
| "version": "14.0.2", | ||
| "version": "14.0.3", | ||
| "description": "Interface for multihash, multicodec, multibase and CID", | ||
@@ -5,0 +5,0 @@ "author": "Mikeal Rogers <mikeal.rogers@gmail.com> (https://www.mikealrogers.com/)", |
@@ -1,2 +0,2 @@ | ||
| import { fromString, toString } from '../bytes.ts' | ||
| import { coerce, fromString, toString } from '../bytes.ts' | ||
| import { from } from './base.ts' | ||
@@ -7,4 +7,4 @@ | ||
| name: 'identity', | ||
| encode: (buf) => toString(buf), | ||
| decode: (str) => fromString(str) | ||
| encode: (buf) => toString(coerce(buf)), | ||
| decode: (str) => coerce(fromString(str)) | ||
| }) |
+38
-2
@@ -53,8 +53,44 @@ export const empty = new Uint8Array(0) | ||
| /** | ||
| * Convert the passed string into a byte array, constraining each character | ||
| * value to a single byte | ||
| */ | ||
| export function fromString (str: string): Uint8Array<ArrayBuffer> { | ||
| return new TextEncoder().encode(str) | ||
| const output = new Uint8Array(str.length) | ||
| for (let i = 0; i < str.length; i++) { | ||
| output[i] = str.charCodeAt(i) | ||
| } | ||
| return output | ||
| } | ||
| // Based on http://stackoverflow.com/a/22747272/680742, the browser with | ||
| // the lowest limit is Chrome, with 0x10000 args. | ||
| // We go 1 magnitude less, for safety | ||
| const MAX_ARGUMENTS_LENGTH = 0x1000 | ||
| /** | ||
| * Convert the passed byte array to a string, interpreting each byte as a single | ||
| * character | ||
| */ | ||
| export function toString (b: Uint8Array): string { | ||
| return new TextDecoder().decode(b) | ||
| const len = b.length | ||
| if (len <= MAX_ARGUMENTS_LENGTH) { | ||
| // @ts-expect-error cannot ordinarily apply a Uint8Array | ||
| return String.fromCharCode.apply(String, b) // avoid extra subarray() | ||
| } | ||
| // Decode in chunks to avoid "call stack size exceeded". | ||
| let res = '' | ||
| let i = 0 | ||
| while (i < len) { | ||
| res += String.fromCharCode.apply( | ||
| String, | ||
| // @ts-expect-error cannot ordinarily apply a Uint8Array | ||
| b.subarray(i, i += MAX_ARGUMENTS_LENGTH) | ||
| ) | ||
| } | ||
| return res | ||
| } | ||
@@ -61,0 +97,0 @@ |
Sorry, the diff of this file is too big to display
424974
1.06%5380
1.3%