@ipld/garbage
Version:
Garbage data generator for the IPLD Data Model
6 lines (5 loc) • 13.8 kB
JavaScript
(function (root, factory) {(typeof module === 'object' && module.exports) ? module.exports = factory() : root.IpldGarbage = factory()}(typeof self !== 'undefined' ? self : this, function () {
;var IpldGarbage=(()=>{var R=Object.defineProperty;var pe=Object.getOwnPropertyDescriptor;var be=Object.getOwnPropertyNames;var we=Object.prototype.hasOwnProperty;var ge=(r,e)=>{for(var t in e)R(r,t,{get:e[t],enumerable:!0})},xe=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of be(e))!we.call(r,o)&&o!==t&&R(r,o,{get:()=>e[o],enumerable:!(n=pe(e,o))||n.enumerable});return r};var ye=r=>xe(R({},"__esModule",{value:!0}),r);var tt={};ge(tt,{garbage:()=>_e});var nt=new Uint8Array(0);function K(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 M(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 me(r){return r?.buffer instanceof ArrayBuffer}function C(r){return me(r)?r:r.slice()}function ve(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 i=r.charAt(o),s=i.charCodeAt(0);if(t[s]!==255)throw new TypeError(i+" is ambiguous");t[s]=o}var a=r.length,h=r.charAt(0),m=Math.log(a)/Math.log(256),E=Math.log(256)/Math.log(a);function q(c){if(c instanceof Uint8Array||(ArrayBuffer.isView(c)?c=new Uint8Array(c.buffer,c.byteOffset,c.byteLength):Array.isArray(c)&&(c=Uint8Array.from(c))),!(c instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(c.length===0)return"";for(var f=0,A=0,u=0,p=c.length;u!==p&&c[u]===0;)u++,f++;for(var b=(p-u)*E+1>>>0,d=new Uint8Array(b);u!==p;){for(var w=c[u],v=0,l=b-1;(w!==0||v<A)&&l!==-1;l--,v++)w+=256*d[l]>>>0,d[l]=w%a>>>0,w=w/a>>>0;if(w!==0)throw new Error("Non-zero carry");A=v,u++}for(var x=b-A;x!==b&&d[x]===0;)x++;for(var V=h.repeat(f);x<b;++x)V+=r.charAt(d[x]);return V}function T(c){if(typeof c!="string")throw new TypeError("Expected String");if(c.length===0)return new Uint8Array;var f=0;if(c[f]!==" "){for(var A=0,u=0;c[f]===h;)A++,f++;for(var p=(c.length-f)*m+1>>>0,b=new Uint8Array(p);c[f];){var d=t[c.charCodeAt(f)];if(d===255)return;for(var w=0,v=p-1;(d!==0||w<u)&&v!==-1;v--,w++)d+=a*b[v]>>>0,b[v]=d%256>>>0,d=d/256>>>0;if(d!==0)throw new Error("Non-zero carry");u=w,f++}if(c[f]!==" "){for(var l=p-u;l!==p&&b[l]===0;)l++;for(var x=new Uint8Array(A+(p-l)),V=A;l!==p;)x[V++]=b[l++];return x}}}function le(c){var f=T(c);if(f)return f;throw new Error(`Non-${e} character`)}return{encode:q,decodeUnsafe:T,decode:le}}var Ae=ve,Ce=Ae,Z=Ce;var j=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")}},J=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 H(this,e)}},P=class{decoders;constructor(e){this.decoders=e}or(e){return H(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 H(r,e){return new P({...r.decoders??{[r.prefix]:r},...e.decoders??{[e.prefix]:e}})}var W=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 j(e,t,n),this.decoder=new J(e,t,o)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}};function Y({name:r,prefix:e,encode:t,decode:n}){return new W(r,e,t,n)}function S({name:r,prefix:e,alphabet:t}){let{encode:n,decode:o}=Z(t,r);return Y({prefix:e,name:r,encode:n,decode:i=>M(o(i))})}function Ee(r,e,t,n){let o=r.length;for(;r[o-1]==="=";)--o;let i=new Uint8Array(o*t/8|0),s=0,a=0,h=0;for(let m=0;m<o;++m){let E=e[r[m]];if(E===void 0)throw new SyntaxError(`Non-${n} character`);a=a<<t|E,s+=t,s>=8&&(s-=8,i[h++]=255&a>>s)}if(s>=t||(255&a<<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,a=0;for(let h=0;h<r.length;++h)for(a=a<<8|r[h],s+=8;s>t;)s-=t,i+=e[o&a>>s];if(s!==0&&(i+=e[o&a<<t-s]),n)for(;(i.length*t&7)!==0;)i+="=";return i}function Se(r){let e={};for(let t=0;t<r.length;++t)e[r[t]]=t;return e}function g({name:r,prefix:e,bitsPerChar:t,alphabet:n}){let o=Se(n);return Y({prefix:e,name:r,encode(i){return Me(i,n,t)},decode(i){return Ee(i,o,t,r)}})}var U=g({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),ft=g({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),dt=g({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),ut=g({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),lt=g({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),pt=g({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),bt=g({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),wt=g({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),gt=g({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var L=S({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),mt=S({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var y=S({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),Ct=S({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var ze=te,_=128,De=127,Ie=~De,Ue=Math.pow(2,31);function te(r,e,t){e=e||[],t=t||0;for(var n=t;r>=Ue;)e[t++]=r&255|_,r/=128;for(;r&Ie;)e[t++]=r&255|_,r>>>=7;return e[t]=r|0,te.bytes=t-n+1,e}var Be=X,Oe=128,ee=127;function X(r,n){var t=0,n=n||0,o=0,i=n,s,a=r.length;do{if(i>=a)throw X.bytes=0,new RangeError("Could not decode varint");s=r[i++],t+=o<28?(s&ee)<<o:(s&ee)*Math.pow(2,o),o+=7}while(s>=Oe);return X.bytes=i-n,t}var Ne=Math.pow(2,7),Te=Math.pow(2,14),Ve=Math.pow(2,21),Le=Math.pow(2,28),ke=Math.pow(2,35),$e=Math.pow(2,42),Fe=Math.pow(2,49),qe=Math.pow(2,56),Re=Math.pow(2,63),je=function(r){return r<Ne?1:r<Te?2:r<Ve?3:r<Le?4:r<ke?5:r<$e?6:r<Fe?7:r<qe?8:r<Re?9:10},Je={encode:ze,decode:Be,encodingLength:je},Pe=Je,B=Pe;function O(r,e=0){return[B.decode(r,e),B.decode.bytes]}function z(r,e,t=0){return B.encode(r,e,t),e}function D(r){return B.encodingLength(r)}function k(r,e){let t=e.byteLength,n=D(r),o=n+D(t),i=new Uint8Array(o+t);return z(r,i,0),z(t,i,n),i.set(e,o),new I(r,t,e,i)}function ne(r){let e=M(r),[t,n]=O(e),[o,i]=O(e.subarray(n)),s=e.subarray(n+i);if(s.byteLength!==o)throw new Error("Incorrect length");return new I(t,o,s,e)}function oe(r,e){if(r===e)return!0;{let t=e;return r.code===t.code&&r.size===t.size&&t.bytes instanceof Uint8Array&&K(r.bytes,t.bytes)}}var I=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 ie(r,e){let{bytes:t,version:n}=r;return n===0?Ge(t,G(r),e??y.encoder):Qe(t,G(r),e??U.encoder)}var se=new WeakMap;function G(r){let e=se.get(r);if(e==null){let t=new Map;return se.set(r,t),t}return e}var $=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!==N)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(t.code!==Ke)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=k(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&&oe(e.multihash,n.multihash)}toString(e){return ie(this,e)}toJSON(){return{"/":ie(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??ae(n,o,i.bytes))}else if(t[Ze]===!0){let{version:n,multihash:o,code:i}=t,s=ne(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!==N)throw new Error(`Version 0 CID must use dag-pb (code: ${N}) block encoding`);return new r(e,t,n,n.bytes)}case 1:{let o=ae(e,t,n.bytes);return new r(e,t,n,o)}default:throw new Error("Invalid version")}}static createV0(e){return r.create(0,N,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=M(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 I(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[q,T]=O(e.subarray(t));return t+=T,q},o=n(),i=N;if(o===18?(o=0,t=0):i=n(),o!==0&&o!==1)throw new RangeError(`Invalid CID version ${o}`);let s=t,a=n(),h=n(),m=t+h,E=m-s;return{version:o,codec:i,multihashCode:a,digestSize:h,multihashSize:E,size:m}}static parse(e,t){let[n,o]=Xe(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 G(i).set(n,e),i}};function Xe(r,e){switch(r[0]){case"Q":{let t=e??y;return[y.prefix,t.decode(`${y.prefix}${r}`)]}case y.prefix:{let t=e??y;return[y.prefix,t.decode(r)]}case U.prefix:{let t=e??U;return[U.prefix,t.decode(r)]}case L.prefix:{let t=e??L;return[L.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 Ge(r,e,t){let{prefix:n}=t;if(n!==y.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 Qe(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 N=112,Ke=18;function ae(r,e,t){let n=D(r),o=n+D(e),i=new Uint8Array(o+t.byteLength);return z(r,i,0),z(e,i,n),i.set(t,o),i}var Ze=Symbol.for("@ipld/js-cid/CID");var He=["list","map","string","bytes","boolean","integer","float","null","CID"],ce=[85,112,113,297],he=[[18,256],[22,256],[27,256],[45600,256],[19,512],[21,384],[20,512]],fe=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\`~!@#$%^&*()-_=+[]{}|\\:;'",.<>?/
\u263A`,Ye={initialWeights:{map:10,list:10}};function _e(r=200,e){return e=Object.assign({},Ye,e),Q(r,e)[1]}function Q(r,e){let t=0,n=Object.assign({},e.initialWeights,e.weights||{});e.initialWeights&&(e=Object.assign(e,{initialWeights:null}));let o=He.map(a=>{let h=n&&typeof n[a]=="number"?n[a]:1;if(h<0)throw new TypeError("Cannot have a negative weight");return t+=h,[a,h]});if(t===0)throw new Error("Cannot have a total weight of zero");let i=Math.random()*t,s=0;for(let[a,h]of o)if(s+=h,s>=i)return ue[a](r,e);throw new Error("Internal error")}function F(r=5){return Math.abs(Math.floor(5/(1-Math.random()**2)-5+Math.random()*r))}function et(){return fe.charAt(Math.floor(Math.random()*fe.length))}function de(){return Math.floor(Math.random()*256)}var ue={list(r,e){let t=[],n=F(),o=0;for(let i=0;i<n&&o<r;i++){let s=Q(r-o,e);t.push(s[1]),o+=s[0]}return[o,t]},map(r,e){let t={},n=F(),o=0;for(let i=0;i<n&&o<r;i++){let s=ue.string(5)[1],a=Q(r-o,e);t[s]=a[1],o+=a[0]+s.length}return[o,t]},string(r=50){let e=F(r),t=[];for(let n=0;n<e;n++)t.push(et());return[e,t.join("")]},bytes(r=50){let e=F(r),t=new Uint8Array(e);for(let n=0;n<e;n++)t[n]=de();return[e,t]},boolean(){return[1,Math.random()>.5]},integer(){return[1,Math.floor(Number.MAX_SAFE_INTEGER*Math.random())*(Math.random()<.5?-1:1)]},float(){return[1,Math.tan((Math.random()-.5)*Math.PI)]},null(){return[1,null]},CID(){let r=he[Math.floor(Math.random()*he.length)],e=ce[Math.floor(Math.random()*ce.length)],t=new Uint8Array(r[1]/8);for(let n=0;n<t.length;n++)t[n]=de();return[t.length,$.create(1,e,k(r[0],t))]}};return ye(tt);})();
return IpldGarbage}));
//# sourceMappingURL=index.min.js.map