UNPKG

datastore-core

Version:
6 lines (5 loc) 46.8 kB
(function (root, factory) {(typeof module === 'object' && module.exports) ? module.exports = factory() : root.DatastoreCore = factory()}(typeof self !== 'undefined' ? self : this, function () { "use strict";var DatastoreCore=(()=>{var Ne=Object.defineProperty;var Pt=Object.getOwnPropertyDescriptor;var _t=Object.getOwnPropertyNames;var Kt=Object.prototype.hasOwnProperty;var C=(r,e)=>{for(var t in e)Ne(r,t,{get:e[t],enumerable:!0})},jt=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of _t(e))!Kt.call(r,o)&&o!==t&&Ne(r,o,{get:()=>e[o],enumerable:!(n=Pt(e,o))||n.enumerable});return r};var Bt=r=>jt(Ne({},"__esModule",{value:!0}),r);var Tn={};C(Tn,{BaseDatastore:()=>v,KeyTransformDatastore:()=>P,MemoryDatastore:()=>be,MountDatastore:()=>ve,NamespaceDatastore:()=>Ie,ShardingDatastore:()=>Ce,TieredDatastore:()=>Fe,shard:()=>Ze});var Ze={};C(Ze,{NextToLast:()=>le,PREFIX:()=>ae,Prefix:()=>ce,SHARDING_FN:()=>fe,ShardBase:()=>J,Suffix:()=>ue,parseShardFun:()=>Dt,readShardFun:()=>de});var Ue={};C(Ue,{base10:()=>Xt});var Pn=new Uint8Array(0);function st(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 R(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")}function it(r){return new TextEncoder().encode(r)}function at(r){return new TextDecoder().decode(r)}function Vt(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 a=r.length,d=r.charAt(0),E=Math.log(a)/Math.log(256),u=Math.log(256)/Math.log(a);function l(h){if(h instanceof Uint8Array||(ArrayBuffer.isView(h)?h=new Uint8Array(h.buffer,h.byteOffset,h.byteLength):Array.isArray(h)&&(h=Uint8Array.from(h))),!(h instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(h.length===0)return"";for(var f=0,c=0,m=0,b=h.length;m!==b&&h[m]===0;)m++,f++;for(var w=(b-m)*u+1>>>0,g=new Uint8Array(w);m!==b;){for(var A=h[m],I=0,F=w-1;(A!==0||I<c)&&F!==-1;F--,I++)A+=256*g[F]>>>0,g[F]=A%a>>>0,A=A/a>>>0;if(A!==0)throw new Error("Non-zero carry");c=I,m++}for(var N=w-c;N!==w&&g[N]===0;)N++;for(var K=d.repeat(f);N<w;++N)K+=r.charAt(g[N]);return K}function p(h){if(typeof h!="string")throw new TypeError("Expected String");if(h.length===0)return new Uint8Array;var f=0;if(h[f]!==" "){for(var c=0,m=0;h[f]===d;)c++,f++;for(var b=(h.length-f)*E+1>>>0,w=new Uint8Array(b);h[f];){var g=t[h.charCodeAt(f)];if(g===255)return;for(var A=0,I=b-1;(g!==0||A<m)&&I!==-1;I--,A++)g+=a*w[I]>>>0,w[I]=g%256>>>0,g=g/256>>>0;if(g!==0)throw new Error("Non-zero carry");m=A,f++}if(h[f]!==" "){for(var F=b-m;F!==b&&w[F]===0;)F++;for(var N=new Uint8Array(c+(b-F)),K=c;F!==b;)N[K++]=w[F++];return N}}}function L(h){var f=p(h);if(f)return f;throw new Error(`Non-${e} character`)}return{encode:l,decodeUnsafe:p,decode:L}}var Wt=Vt,Jt=Wt,ut=Jt;var ke=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")}},De=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 lt(this,e)}},Me=class{decoders;constructor(e){this.decoders=e}or(e){return lt(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 lt(r,e){return new Me({...r.decoders??{[r.prefix]:r},...e.decoders??{[e.prefix]:e}})}var Re=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 ke(e,t,n),this.decoder=new De(e,t,o)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}};function j({name:r,prefix:e,encode:t,decode:n}){return new Re(r,e,t,n)}function O({name:r,prefix:e,alphabet:t}){let{encode:n,decode:o}=ut(t,r);return j({prefix:e,name:r,encode:n,decode:s=>R(o(s))})}function Gt(r,e,t,n){let o=r.length;for(;r[o-1]==="=";)--o;let s=new Uint8Array(o*t/8|0),i=0,a=0,d=0;for(let E=0;E<o;++E){let u=e[r[E]];if(u===void 0)throw new SyntaxError(`Non-${n} character`);a=a<<t|u,i+=t,i>=8&&(i-=8,s[d++]=255&a>>i)}if(i>=t||(255&a<<8-i)!==0)throw new SyntaxError("Unexpected end of data");return s}function Ht(r,e,t){let n=e[e.length-1]==="=",o=(1<<t)-1,s="",i=0,a=0;for(let d=0;d<r.length;++d)for(a=a<<8|r[d],i+=8;i>t;)i-=t,s+=e[o&a>>i];if(i!==0&&(s+=e[o&a<<t-i]),n)for(;(s.length*t&7)!==0;)s+="=";return s}function qt(r){let e={};for(let t=0;t<r.length;++t)e[r[t]]=t;return e}function y({name:r,prefix:e,bitsPerChar:t,alphabet:n}){let o=qt(n);return j({prefix:e,name:r,encode(s){return Ht(s,n,t)},decode(s){return Gt(s,o,t,r)}})}var Xt=O({prefix:"9",name:"base10",alphabet:"0123456789"});var $e={};C($e,{base16:()=>Qt,base16upper:()=>Zt});var Qt=y({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),Zt=y({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var Le={};C(Le,{base2:()=>Yt});var Yt=y({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Oe={};C(Oe,{base256emoji:()=>or});var ft=Array.from("\u{1F680}\u{1FA90}\u2604\u{1F6F0}\u{1F30C}\u{1F311}\u{1F312}\u{1F313}\u{1F314}\u{1F315}\u{1F316}\u{1F317}\u{1F318}\u{1F30D}\u{1F30F}\u{1F30E}\u{1F409}\u2600\u{1F4BB}\u{1F5A5}\u{1F4BE}\u{1F4BF}\u{1F602}\u2764\u{1F60D}\u{1F923}\u{1F60A}\u{1F64F}\u{1F495}\u{1F62D}\u{1F618}\u{1F44D}\u{1F605}\u{1F44F}\u{1F601}\u{1F525}\u{1F970}\u{1F494}\u{1F496}\u{1F499}\u{1F622}\u{1F914}\u{1F606}\u{1F644}\u{1F4AA}\u{1F609}\u263A\u{1F44C}\u{1F917}\u{1F49C}\u{1F614}\u{1F60E}\u{1F607}\u{1F339}\u{1F926}\u{1F389}\u{1F49E}\u270C\u2728\u{1F937}\u{1F631}\u{1F60C}\u{1F338}\u{1F64C}\u{1F60B}\u{1F497}\u{1F49A}\u{1F60F}\u{1F49B}\u{1F642}\u{1F493}\u{1F929}\u{1F604}\u{1F600}\u{1F5A4}\u{1F603}\u{1F4AF}\u{1F648}\u{1F447}\u{1F3B6}\u{1F612}\u{1F92D}\u2763\u{1F61C}\u{1F48B}\u{1F440}\u{1F62A}\u{1F611}\u{1F4A5}\u{1F64B}\u{1F61E}\u{1F629}\u{1F621}\u{1F92A}\u{1F44A}\u{1F973}\u{1F625}\u{1F924}\u{1F449}\u{1F483}\u{1F633}\u270B\u{1F61A}\u{1F61D}\u{1F634}\u{1F31F}\u{1F62C}\u{1F643}\u{1F340}\u{1F337}\u{1F63B}\u{1F613}\u2B50\u2705\u{1F97A}\u{1F308}\u{1F608}\u{1F918}\u{1F4A6}\u2714\u{1F623}\u{1F3C3}\u{1F490}\u2639\u{1F38A}\u{1F498}\u{1F620}\u261D\u{1F615}\u{1F33A}\u{1F382}\u{1F33B}\u{1F610}\u{1F595}\u{1F49D}\u{1F64A}\u{1F639}\u{1F5E3}\u{1F4AB}\u{1F480}\u{1F451}\u{1F3B5}\u{1F91E}\u{1F61B}\u{1F534}\u{1F624}\u{1F33C}\u{1F62B}\u26BD\u{1F919}\u2615\u{1F3C6}\u{1F92B}\u{1F448}\u{1F62E}\u{1F646}\u{1F37B}\u{1F343}\u{1F436}\u{1F481}\u{1F632}\u{1F33F}\u{1F9E1}\u{1F381}\u26A1\u{1F31E}\u{1F388}\u274C\u270A\u{1F44B}\u{1F630}\u{1F928}\u{1F636}\u{1F91D}\u{1F6B6}\u{1F4B0}\u{1F353}\u{1F4A2}\u{1F91F}\u{1F641}\u{1F6A8}\u{1F4A8}\u{1F92C}\u2708\u{1F380}\u{1F37A}\u{1F913}\u{1F619}\u{1F49F}\u{1F331}\u{1F616}\u{1F476}\u{1F974}\u25B6\u27A1\u2753\u{1F48E}\u{1F4B8}\u2B07\u{1F628}\u{1F31A}\u{1F98B}\u{1F637}\u{1F57A}\u26A0\u{1F645}\u{1F61F}\u{1F635}\u{1F44E}\u{1F932}\u{1F920}\u{1F927}\u{1F4CC}\u{1F535}\u{1F485}\u{1F9D0}\u{1F43E}\u{1F352}\u{1F617}\u{1F911}\u{1F30A}\u{1F92F}\u{1F437}\u260E\u{1F4A7}\u{1F62F}\u{1F486}\u{1F446}\u{1F3A4}\u{1F647}\u{1F351}\u2744\u{1F334}\u{1F4A3}\u{1F438}\u{1F48C}\u{1F4CD}\u{1F940}\u{1F922}\u{1F445}\u{1F4A1}\u{1F4A9}\u{1F450}\u{1F4F8}\u{1F47B}\u{1F910}\u{1F92E}\u{1F3BC}\u{1F975}\u{1F6A9}\u{1F34E}\u{1F34A}\u{1F47C}\u{1F48D}\u{1F4E3}\u{1F942}"),er=ft.reduce((r,e,t)=>(r[t]=e,r),[]),tr=ft.reduce((r,e,t)=>{let n=e.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${e}`);return r[n]=t,r},[]);function rr(r){return r.reduce((e,t)=>(e+=er[t],e),"")}function nr(r){let e=[];for(let t of r){let n=t.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${t}`);let o=tr[n];if(o==null)throw new Error(`Non-base256emoji character: ${t}`);e.push(o)}return new Uint8Array(e)}var or=j({prefix:"\u{1F680}",name:"base256emoji",encode:rr,decode:nr});var Te={};C(Te,{base32:()=>T,base32hex:()=>cr,base32hexpad:()=>lr,base32hexpadupper:()=>fr,base32hexupper:()=>ur,base32pad:()=>ir,base32padupper:()=>ar,base32upper:()=>sr,base32z:()=>dr});var T=y({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),sr=y({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),ir=y({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),ar=y({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),cr=y({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),ur=y({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),lr=y({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),fr=y({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),dr=y({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var ze={};C(ze,{base36:()=>Q,base36upper:()=>hr});var Q=O({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),hr=O({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var Pe={};C(Pe,{base58btc:()=>k,base58flickr:()=>pr});var k=O({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),pr=O({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Ke={};C(Ke,{base64:()=>_e,base64pad:()=>mr,base64url:()=>yr,base64urlpad:()=>br});var _e=y({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),mr=y({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),yr=y({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),br=y({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var je={};C(je,{base8:()=>wr});var wr=y({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var Be={};C(Be,{identity:()=>gr});var gr=j({prefix:"\0",name:"identity",encode:r=>at(r),decode:r=>it(r)});var to=new TextEncoder,ro=new TextDecoder;var We={};C(We,{identity:()=>jr});var vr=pt,dt=128,Sr=127,Er=~Sr,Ar=Math.pow(2,31);function pt(r,e,t){e=e||[],t=t||0;for(var n=t;r>=Ar;)e[t++]=r&255|dt,r/=128;for(;r&Er;)e[t++]=r&255|dt,r>>>=7;return e[t]=r|0,pt.bytes=t-n+1,e}var Fr=Ve,Ir=128,ht=127;function Ve(r,n){var t=0,n=n||0,o=0,s=n,i,a=r.length;do{if(s>=a)throw Ve.bytes=0,new RangeError("Could not decode varint");i=r[s++],t+=o<28?(i&ht)<<o:(i&ht)*Math.pow(2,o),o+=7}while(i>=Ir);return Ve.bytes=s-n,t}var Nr=Math.pow(2,7),kr=Math.pow(2,14),Dr=Math.pow(2,21),Mr=Math.pow(2,28),Rr=Math.pow(2,35),Ur=Math.pow(2,42),$r=Math.pow(2,49),Lr=Math.pow(2,56),Or=Math.pow(2,63),Tr=function(r){return r<Nr?1:r<kr?2:r<Dr?3:r<Mr?4:r<Rr?5:r<Ur?6:r<$r?7:r<Lr?8:r<Or?9:10},zr={encode:vr,decode:Fr,encodingLength:Tr},Pr=zr,Z=Pr;function Y(r,e=0){return[Z.decode(r,e),Z.decode.bytes]}function B(r,e,t=0){return Z.encode(r,e,t),e}function V(r){return Z.encodingLength(r)}function _(r,e){let t=e.byteLength,n=V(r),o=n+V(t),s=new Uint8Array(o+t);return B(r,s,0),B(t,s,n),s.set(e,o),new W(r,t,e,s)}function mt(r){let e=R(r),[t,n]=Y(e),[o,s]=Y(e.subarray(n)),i=e.subarray(n+s);if(i.byteLength!==o)throw new Error("Incorrect length");return new W(t,o,i,e)}function yt(r,e){if(r===e)return!0;{let t=e;return r.code===t.code&&r.size===t.size&&t.bytes instanceof Uint8Array&&st(r.bytes,t.bytes)}}var W=class{code;size;digest;bytes;constructor(e,t,n,o){this.code=e,this.size=t,this.digest=n,this.bytes=o}};var bt=0,_r="identity",wt=R;function Kr(r){return _(bt,wt(r))}var jr={code:bt,name:_r,encode:wt,digest:Kr};var He={};C(He,{sha256:()=>Br,sha512:()=>Vr});function Ge({name:r,code:e,encode:t}){return new Je(r,e,t)}var Je=class{name;code;encode;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?_(this.code,t):t.then(n=>_(this.code,n))}else throw Error("Unknown type, must be binary type")}};function xt(r){return async e=>new Uint8Array(await crypto.subtle.digest(r,e))}var Br=Ge({name:"sha2-256",code:18,encode:xt("SHA-256")}),Vr=Ge({name:"sha2-512",code:19,encode:xt("SHA-512")});function Ct(r,e){let{bytes:t,version:n}=r;switch(n){case 0:return Jr(t,qe(r),e??k.encoder);default:return Gr(t,qe(r),e??T.encoder)}}var vt=new WeakMap;function qe(r){let e=vt.get(r);if(e==null){let t=new Map;return vt.set(r,t),t}return e}var oe=class r{code;version;multihash;bytes;"/";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!==te)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(t.code!==Hr)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=_(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&&yt(e.multihash,n.multihash)}toString(e){return Ct(this,e)}toJSON(){return{"/":Ct(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:s,bytes:i}=t;return new r(n,o,s,i??St(n,o,s.bytes))}else if(t[qr]===!0){let{version:n,multihash:o,code:s}=t,i=mt(o);return r.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!==te)throw new Error(`Version 0 CID must use dag-pb (code: ${te}) block encoding`);return new r(e,t,n,n.bytes)}case 1:{let o=St(e,t,n.bytes);return new r(e,t,n,o)}default:throw new Error("Invalid version")}}static createV0(e){return r.create(0,te,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=R(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 W(t.multihashCode,t.digestSize,s,o);return[t.version===0?r.createV0(i):r.createV1(t.codec,i),e.subarray(t.size)]}static inspectBytes(e){let t=0,n=()=>{let[l,p]=Y(e.subarray(t));return t+=p,l},o=n(),s=te;if(o===18?(o=0,t=0):s=n(),o!==0&&o!==1)throw new RangeError(`Invalid CID version ${o}`);let i=t,a=n(),d=n(),E=t+d,u=E-i;return{version:o,codec:s,multihashCode:a,digestSize:d,multihashSize:u,size:E}}static parse(e,t){let[n,o]=Wr(e,t),s=r.decode(o);if(s.version===0&&e[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return qe(s).set(n,e),s}};function Wr(r,e){switch(r[0]){case"Q":{let t=e??k;return[k.prefix,t.decode(`${k.prefix}${r}`)]}case k.prefix:{let t=e??k;return[k.prefix,t.decode(r)]}case T.prefix:{let t=e??T;return[T.prefix,t.decode(r)]}case Q.prefix:{let t=e??Q;return[Q.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 Jr(r,e,t){let{prefix:n}=t;if(n!==k.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}function Gr(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}var te=112,Hr=18;function St(r,e,t){let n=V(r),o=n+V(e),s=new Uint8Array(o+t.byteLength);return B(r,s,0),B(e,s,n),s.set(t,o),s}var qr=Symbol.for("@ipld/js-cid/CID");var Xe={...Be,...Le,...je,...Ue,...$e,...Te,...ze,...Pe,...Ke,...Oe},Ao={...He,...We};function Et(r=0){return new Uint8Array(r)}function Ft(r,e,t,n){return{name:r,prefix:e,encoder:{name:r,prefix:e,encode:t},decoder:{decode:n}}}var At=Ft("utf8","u",r=>"u"+new TextDecoder("utf8").decode(r),r=>new TextEncoder().encode(r.substring(1))),Qe=Ft("ascii","a",r=>{let e="a";for(let t=0;t<r.length;t++)e+=String.fromCharCode(r[t]);return e},r=>{r=r.substring(1);let e=Et(r.length);for(let t=0;t<r.length;t++)e[t]=r.charCodeAt(t);return e}),Xr={utf8:At,"utf-8":At,hex:Xe.base16,latin1:Qe,ascii:Qe,binary:Qe,...Xe},se=Xr;function It(r,e="utf8"){let t=se[e];if(t==null)throw new Error(`Unsupported encoding "${e}"`);return t.decoder.decode(`${t.prefix}${r}`)}function Nt(r,e="utf8"){let t=se[e];if(t==null)throw new Error(`Unsupported encoding "${e}"`);return t.encoder.encode(r).substring(1)}var U="/",kt=new TextEncoder().encode(U),ie=kt[0],x=class r{_buf;constructor(e,t){if(typeof e=="string")this._buf=It(e);else if(e instanceof Uint8Array)this._buf=e;else throw new Error("Invalid key, should be String of Uint8Array");if(t==null&&(t=!0),t&&this.clean(),this._buf.byteLength===0||this._buf[0]!==ie)throw new Error("Invalid key")}toString(e="utf8"){return Nt(this._buf,e)}uint8Array(){return this._buf}get[Symbol.toStringTag](){return`Key(${this.toString()})`}static withNamespaces(e){return new r(e.join(U))}static random(){return new r(Math.random().toString().substring(2))}static asKey(e){return e instanceof Uint8Array||typeof e=="string"?new r(e):typeof e.uint8Array=="function"?new r(e.uint8Array()):null}clean(){if((this._buf==null||this._buf.byteLength===0)&&(this._buf=kt),this._buf[0]!==ie){let e=new Uint8Array(this._buf.byteLength+1);e.fill(ie,0,1),e.set(this._buf,1),this._buf=e}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===ie;)this._buf=this._buf.subarray(0,-1)}less(e){let t=this.list(),n=e.list();for(let o=0;o<t.length;o++){if(n.length<o+1)return!1;let s=t[o],i=n[o];if(s<i)return!0;if(s>i)return!1}return t.length<n.length}reverse(){return r.withNamespaces(this.list().slice().reverse())}namespaces(){return this.list()}baseNamespace(){let e=this.namespaces();return e[e.length-1]}list(){return this.toString().split(U).slice(1)}type(){return Qr(this.baseNamespace())}name(){return Zr(this.baseNamespace())}instance(e){return new r(this.toString()+":"+e)}path(){let e=this.parent().toString();return e.endsWith(U)||(e+=U),e+=this.type(),new r(e)}parent(){let e=this.list();return e.length===1?new r(U):new r(e.slice(0,-1).join(U))}child(e){return this.toString()===U?e:e.toString()===U?this:new r(this.toString()+e.toString(),!1)}isAncestorOf(e){return e.toString()===this.toString()?!1:e.toString().startsWith(this.toString())}isDecendantOf(e){return e.toString()===this.toString()?!1:this.toString().startsWith(e.toString())}isTopLevel(){return this.list().length===1}concat(...e){return r.withNamespaces([...this.namespaces(),...Yr(e.map(t=>t.namespaces()))])}};function Qr(r){let e=r.split(":");return e.length<2?"":e.slice(0,-1).join(":")}function Zr(r){let e=r.split(":");return e[e.length-1]}function Yr(r){return[].concat(...r)}var ae="/repo/flatfs/shard/",fe="SHARDING",J=class{param;name;_padding;constructor(e){this.param=e,this.name="base",this._padding=""}fun(e){return"implement me"}toString(){return`${ae}v1/${this.name}/${this.param}`}},ce=class extends J{constructor(e){super(e),this._padding="".padStart(e,"_"),this.name="prefix"}fun(e){return(e+this._padding).slice(0,this.param)}},ue=class extends J{constructor(e){super(e),this._padding="".padStart(e,"_"),this.name="suffix"}fun(e){let t=this._padding+e;return t.slice(t.length-this.param)}},le=class extends J{constructor(e){super(e),this._padding="".padStart(e+1,"_"),this.name="next-to-last"}fun(e){let t=this._padding+e,n=t.length-this.param-1;return t.slice(n,n+this.param)}};function Dt(r){if(r=r.trim(),r.length===0)throw new Error("empty shard string");if(!r.startsWith(ae))throw new Error(`invalid or no path prefix: ${r}`);let e=r.slice(ae.length).split("/"),t=e[0];if(t!=="v1")throw new Error(`expect 'v1' version, got '${t}'`);let n=e[1];if(e[2]==null||e[2]==="")throw new Error("missing param");let o=parseInt(e[2],10);switch(n){case"prefix":return new ce(o);case"suffix":return new ue(o);case"next-to-last":return new le(o);default:throw new Error(`unkown sharding function: ${n}`)}}var de=async(r,e)=>{let t=new x(r).child(new x(fe)),o=await(typeof e.getRaw=="function"?e.getRaw.bind(e):e.get.bind(e))(t);return Dt(new TextDecoder().decode(o??"").trim())};function en(r){return r[Symbol.asyncIterator]!=null}function tn(r){if(en(r))return(async()=>{for await(let e of r);})();for(let e of r);}var Ye=tn;function rn(r){let[e,t]=r[Symbol.asyncIterator]!=null?[r[Symbol.asyncIterator](),Symbol.asyncIterator]:[r[Symbol.iterator](),Symbol.iterator],n=[];return{peek:()=>e.next(),push:o=>{n.push(o)},next:()=>n.length>0?{done:!1,value:n.shift()}:e.next(),[t](){return this}}}var he=rn;function nn(r){return r[Symbol.asyncIterator]!=null}function on(r,e){let t=0;if(nn(r))return async function*(){for await(let d of r)await e(d,t++)&&(yield d)}();let n=he(r),{value:o,done:s}=n.next();if(s===!0)return function*(){}();let i=e(o,t++);if(typeof i.then=="function")return async function*(){await i&&(yield o);for await(let d of n)await e(d,t++)&&(yield d)}();let a=e;return function*(){i===!0&&(yield o);for(let d of n)a(d,t++)&&(yield d)}()}var D=on;function sn(r){return r[Symbol.asyncIterator]!=null}function an(r){if(sn(r))return(async()=>{let t=[];for await(let n of r)t.push(n);return t})();let e=[];for(let t of r)e.push(t);return e}var et=an;function cn(r){return r[Symbol.asyncIterator]!=null}function un(r,e){return cn(r)?async function*(){yield*(await et(r)).sort(e)}():function*(){yield*et(r).sort(e)}()}var G=un;function ln(r){return r[Symbol.asyncIterator]!=null}function fn(r,e){return ln(r)?async function*(){let t=0;if(!(e<1)){for await(let n of r)if(yield n,t++,t===e)return}}():function*(){let t=0;if(!(e<1)){for(let n of r)if(yield n,t++,t===e)return}}()}var H=fn;var v=class{put(e,t,n){return Promise.reject(new Error(".put is not implemented"))}get(e,t){return Promise.reject(new Error(".get is not implemented"))}has(e,t){return Promise.reject(new Error(".has is not implemented"))}delete(e,t){return Promise.reject(new Error(".delete is not implemented"))}async*putMany(e,t={}){for await(let{key:n,value:o}of e)await this.put(n,o,t),yield n}async*getMany(e,t={}){for await(let n of e)yield{key:n,value:await this.get(n,t)}}async*deleteMany(e,t={}){for await(let n of e)await this.delete(n,t),yield n}batch(){let e=[],t=[];return{put(n,o){e.push({key:n,value:o})},delete(n){t.push(n)},commit:async n=>{await Ye(this.putMany(e,n)),e=[],await Ye(this.deleteMany(t,n)),t=[]}}}async*_all(e,t){throw new Error("._all is not implemented")}async*_allKeys(e,t){throw new Error("._allKeys is not implemented")}query(e,t){let n=this._all(e,t);if(e.prefix!=null){let o=e.prefix;n=D(n,s=>s.key.toString().startsWith(o))}if(Array.isArray(e.filters)&&(n=e.filters.reduce((o,s)=>D(o,s),n)),Array.isArray(e.orders)&&(n=e.orders.reduce((o,s)=>G(o,s),n)),e.offset!=null){let o=0,s=e.offset;n=D(n,()=>o++>=s)}return e.limit!=null&&(n=H(n,e.limit)),n}queryKeys(e,t){let n=this._allKeys(e,t);if(e.prefix!=null){let o=e.prefix;n=D(n,s=>s.toString().startsWith(o))}if(Array.isArray(e.filters)&&(n=e.filters.reduce((o,s)=>D(o,s),n)),Array.isArray(e.orders)&&(n=e.orders.reduce((o,s)=>G(o,s),n)),e.offset!=null){let o=e.offset,s=0;n=D(n,()=>s++>=o)}return e.limit!=null&&(n=H(n,e.limit)),n}};var pe=class r extends Error{static name="OpenFailedError";static code="ERR_OPEN_FAILED";name=r.name;code=r.code;constructor(e="Open failed"){super(e)}};var me=class r extends Error{static name="PutFailedError";static code="ERR_PUT_FAILED";name=r.name;code=r.code;constructor(e="Put failed"){super(e)}};var ye=class r extends Error{static name="DeleteFailedError";static code="ERR_DELETE_FAILED";name=r.name;code=r.code;constructor(e="Delete failed"){super(e)}};var z=class r extends Error{static name="NotFoundError";static code="ERR_NOT_FOUND";name=r.name;code=r.code;constructor(e="Not Found"){super(e)}};var be=class extends v{data;constructor(){super(),this.data=new Map}put(e,t,n){return n?.signal?.throwIfAborted(),this.data.set(e.toString(),t),e}get(e,t){t?.signal?.throwIfAborted();let n=this.data.get(e.toString());if(n==null)throw new z;return n}has(e,t){return t?.signal?.throwIfAborted(),this.data.has(e.toString())}delete(e,t){t?.signal?.throwIfAborted(),this.data.delete(e.toString())}*_all(e,t){t?.signal?.throwIfAborted();for(let[n,o]of this.data.entries())yield{key:new x(n),value:o},t?.signal?.throwIfAborted()}*_allKeys(e,t){t?.signal?.throwIfAborted();for(let n of this.data.keys())yield new x(n),t?.signal?.throwIfAborted()}};function dn(r){return r[Symbol.asyncIterator]!=null}function hn(r,e){let t=0;if(dn(r))return async function*(){for await(let d of r)yield e(d,t++)}();let n=he(r),{value:o,done:s}=n.next();if(s===!0)return function*(){}();let i=e(o,t++);if(typeof i.then=="function")return async function*(){yield await i;for await(let d of n)yield e(d,t++)}();let a=e;return function*(){yield i;for(let d of n)yield a(d,t++)}()}var M=hn;function $(){let r={};return r.promise=new Promise((e,t)=>{r.resolve=e,r.reject=t}),r}var we=class{buffer;mask;top;btm;next;constructor(e){if(!(e>0)||(e-1&e)!==0)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(e),this.mask=e-1,this.top=0,this.btm=0,this.next=null}push(e){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=e,this.top=this.top+1&this.mask,!0)}shift(){let e=this.buffer[this.btm];if(e!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,e}isEmpty(){return this.buffer[this.btm]===void 0}},q=class{size;hwm;head;tail;constructor(e={}){this.hwm=e.splitLimit??16,this.head=new we(this.hwm),this.tail=this.head,this.size=0}calculateSize(e){return e?.byteLength!=null?e.byteLength:1}push(e){if(e?.value!=null&&(this.size+=this.calculateSize(e.value)),!this.head.push(e)){let t=this.head;this.head=t.next=new we(2*this.head.buffer.length),this.head.push(e)}}shift(){let e=this.tail.shift();if(e===void 0&&this.tail.next!=null){let t=this.tail.next;this.tail.next=null,this.tail=t,e=this.tail.shift()}return e?.value!=null&&(this.size-=this.calculateSize(e.value)),e}isEmpty(){return this.head.isEmpty()}};var tt=class extends Error{type;code;constructor(e,t){super(e??"The operation was aborted"),this.type="aborted",this.code=t??"ABORT_ERR"}};function Mt(r={}){return pn(t=>{let n=t.shift();if(n==null)return{done:!0};if(n.error!=null)throw n.error;return{done:n.done===!0,value:n.value}},r)}function pn(r,e){e=e??{};let t=e.onEnd,n=new q,o,s,i,a=$(),d=async()=>{try{return n.isEmpty()?i?{done:!0}:await new Promise((c,m)=>{s=b=>{s=null,n.push(b);try{c(r(n))}catch(w){m(w)}return o}}):r(n)}finally{n.isEmpty()&&queueMicrotask(()=>{a.resolve(),a=$()})}},E=c=>s!=null?s(c):(n.push(c),o),u=c=>(n=new q,s!=null?s({error:c}):(n.push({error:c}),o)),l=c=>{if(i)return o;if(e?.objectMode!==!0&&c?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return E({done:!1,value:c})},p=c=>i?o:(i=!0,c!=null?u(c):E({done:!0})),L=()=>(n=new q,p(),{done:!0}),h=c=>(p(c),{done:!0});if(o={[Symbol.asyncIterator](){return this},next:d,return:L,throw:h,push:l,end:p,get readableLength(){return n.size},onEmpty:async c=>{let m=c?.signal;if(m?.throwIfAborted(),n.isEmpty())return;let b,w;m!=null&&(b=new Promise((g,A)=>{w=()=>{A(new tt)},m.addEventListener("abort",w)}));try{await Promise.race([a.promise,b])}finally{w!=null&&m!=null&&m?.removeEventListener("abort",w)}}},t==null)return o;let f=o;return o={[Symbol.asyncIterator](){return this},next(){return f.next()},throw(c){return f.throw(c),t!=null&&(t(c),t=void 0),{done:!0}},return(){return f.return(),t!=null&&(t(),t=void 0),{done:!0}},push:l,end(c){return f.end(c),t!=null&&(t(c),t=void 0),o},get readableLength(){return f.readableLength},onEmpty:c=>f.onEmpty(c)},o}var ge=class extends Error{type;code;constructor(e,t,n){super(e??"The operation was aborted"),this.type="aborted",this.name=n??"AbortError",this.code=t??"ABORT_ERR"}};async function Rt(r,e,t){if(e==null)return r;if(e.aborted)return r.catch(()=>{}),Promise.reject(new ge(t?.errorMessage,t?.errorCode,t?.errorName));let n,o=new ge(t?.errorMessage,t?.errorCode,t?.errorName);try{return await Promise.race([r,new Promise((s,i)=>{n=()=>{i(o)},e.addEventListener("abort",n)})])}finally{n!=null&&e.removeEventListener("abort",n)}}var rt=class{readNext;haveNext;ended;nextResult;error;constructor(){this.ended=!1,this.readNext=$(),this.haveNext=$()}[Symbol.asyncIterator](){return this}async next(){if(this.nextResult==null&&await this.haveNext.promise,this.nextResult==null)throw new Error("HaveNext promise resolved but nextResult was undefined");let e=this.nextResult;return this.nextResult=void 0,this.readNext.resolve(),this.readNext=$(),e}async throw(e){return this.ended=!0,this.error=e,e!=null&&(this.haveNext.promise.catch(()=>{}),this.haveNext.reject(e)),{done:!0,value:void 0}}async return(){let e={done:!0,value:void 0};return this.ended=!0,this.nextResult=e,this.haveNext.resolve(),e}async push(e,t){await this._push(e,t)}async end(e,t){e!=null?await this.throw(e):await this._push(void 0,t)}async _push(e,t){if(e!=null&&this.ended)throw this.error??new Error("Cannot push value onto an ended pushable");for(;this.nextResult!=null;)await this.readNext.promise;e!=null?this.nextResult={done:!1,value:e}:(this.ended=!0,this.nextResult={done:!0,value:void 0}),this.haveNext.resolve(),this.haveNext=$(),await Rt(this.readNext.promise,t?.signal,t)}};function Ut(){return new rt}function mn(r){return r[Symbol.asyncIterator]!=null}async function yn(r,e,t){try{await Promise.all(r.map(async n=>{for await(let o of n)await e.push(o,{signal:t}),t.throwIfAborted()})),await e.end(void 0,{signal:t})}catch(n){await e.end(n,{signal:t}).catch(()=>{})}}async function*bn(r){let e=new AbortController,t=Ut();yn(r,t,e.signal).catch(()=>{});try{yield*t}finally{e.abort()}}function*wn(r){for(let e of r)yield*e}function gn(...r){let e=[];for(let t of r)mn(t)||e.push(t);return e.length===r.length?wn(e):bn(r)}var re=gn;function xe(r,...e){if(r==null)throw new Error("Empty pipeline");if(nt(r)){let n=r;r=()=>n.source}else if(Lt(r)||$t(r)){let n=r;r=()=>n}let t=[r,...e];if(t.length>1&&nt(t[t.length-1])&&(t[t.length-1]=t[t.length-1].sink),t.length>2)for(let n=1;n<t.length-1;n++)nt(t[n])&&(t[n]=Cn(t[n]));return xn(...t)}var xn=(...r)=>{let e;for(;r.length>0;)e=r.shift()(e);return e},$t=r=>r?.[Symbol.asyncIterator]!=null,Lt=r=>r?.[Symbol.iterator]!=null,nt=r=>r==null?!1:r.sink!=null&&r.source!=null,Cn=r=>e=>{let t=r.sink(e);if(t?.then!=null){let n=Mt({objectMode:!0});t.then(()=>{n.end()},i=>{n.end(i)});let o,s=r.source;if($t(s))o=async function*(){yield*s,n.end()};else if(Lt(s))o=function*(){yield*s,n.end()};else throw new Error("Unknown duplex source type - must be Iterable or AsyncIterable");return re(n,o())}return r.source};var P=class extends v{child;transform;constructor(e,t){super(),this.child=e,this.transform=t}async put(e,t,n){return await this.child.put(this.transform.convert(e),t,n),e}async get(e,t){return this.child.get(this.transform.convert(e),t)}async has(e,t){return this.child.has(this.transform.convert(e),t)}async delete(e,t){await this.child.delete(this.transform.convert(e),t)}async*putMany(e,t={}){let n=this.transform,o=this.child;yield*xe(e,async function*(s){yield*M(s,({key:i,value:a})=>({key:n.convert(i),value:a}))},async function*(s){yield*o.putMany(s,t)},async function*(s){yield*M(s,i=>n.invert(i))})}async*getMany(e,t={}){let n=this.transform,o=this.child;yield*xe(e,async function*(s){yield*M(s,i=>n.convert(i))},async function*(s){yield*o.getMany(s,t)},async function*(s){yield*M(s,({key:i,value:a})=>({key:n.invert(i),value:a}))})}async*deleteMany(e,t={}){let n=this.transform,o=this.child;yield*xe(e,async function*(s){yield*M(s,i=>n.convert(i))},async function*(s){yield*o.deleteMany(s,t)},async function*(s){yield*M(s,i=>n.invert(i))})}batch(){let e=this.child.batch();return{put:(t,n)=>{e.put(this.transform.convert(t),n)},delete:t=>{e.delete(this.transform.convert(t))},commit:async t=>{await e.commit(t)}}}query(e,t){let n={...e};n.filters=(n.filters??[]).map(s=>({key:i,value:a})=>s({key:this.transform.convert(i),value:a}));let{prefix:o}=e;return o!=null&&o!=="/"&&(delete n.prefix,n.filters.push(({key:s})=>this.transform.invert(s).toString().startsWith(o))),n.orders!=null&&(n.orders=n.orders.map(s=>(i,a)=>s({key:this.transform.invert(i.key),value:i.value},{key:this.transform.invert(a.key),value:a.value}))),M(this.child.query(n,t),({key:s,value:i})=>({key:this.transform.invert(s),value:i}))}queryKeys(e,t){let n={...e};n.filters=(n.filters??[]).map(s=>i=>s(this.transform.convert(i)));let{prefix:o}=e;return o!=null&&o!=="/"&&(delete n.prefix,n.filters.push(s=>this.transform.invert(s).toString().startsWith(o))),n.orders!=null&&(n.orders=n.orders.map(s=>(i,a)=>s(this.transform.invert(i),this.transform.invert(a)))),M(this.child.queryKeys(n,t),s=>this.transform.invert(s))}};var X=new x(fe),Ce=class r extends v{child;shard;constructor(e,t){super(),this.child=new P(e,{convert:this._convertKey.bind(this),invert:this._invertKey.bind(this)}),this.shard=t}async open(){this.shard=await r.create(this.child,this.shard)}_convertKey(e){let t=e.toString();return t===X.toString()?e:new x(this.shard.fun(t)).child(e)}_invertKey(e){return e.toString()===X.toString()?e:x.withNamespaces(e.list().slice(1))}static async create(e,t){if(!await e.has(X)){if(t==null)throw new pe("Shard is required when datastore doesn't have a shard key already");await e.put(X,new TextEncoder().encode(t.toString()+` `))}t==null&&(t=await de("/",e));let o=await de("/",e),s=o.toString(),i=t.toString();if(s!==i)throw new Error(`specified fun ${i} does not match repo shard fun ${s}`);return o}async put(e,t,n){return await this.child.put(e,t,n),e}async get(e,t){return this.child.get(e,t)}async has(e,t){return this.child.has(e,t)}async delete(e,t){await this.child.delete(e,t)}async*putMany(e,t={}){yield*this.child.putMany(e,t)}async*getMany(e,t={}){yield*this.child.getMany(e,t)}async*deleteMany(e,t={}){yield*this.child.deleteMany(e,t)}batch(){return this.child.batch()}query(e,t){let o={...e,filters:[({key:s})=>s.toString()!==X.toString()].concat(e.filters??[])};return this.child.query(o,t)}queryKeys(e,t){let o={...e,filters:[s=>s.toString()!==X.toString()].concat(e.filters??[])};return this.child.queryKeys(o,t)}};var ve=class extends v{mounts;constructor(e){super(),this.mounts=e.slice()}_lookup(e){for(let t of this.mounts)if(t.prefix.toString()===e.toString()||t.prefix.isAncestorOf(e))return{datastore:t.datastore,mountpoint:t.prefix}}async put(e,t,n){let o=this._lookup(e);if(o==null)throw new me("No datastore mounted for this key");return await o.datastore.put(e,t,n),e}async get(e,t={}){let n=this._lookup(e);if(n==null)throw new z("No datastore mounted for this key");return n.datastore.get(e,t)}async has(e,t){let n=this._lookup(e);return n==null?Promise.resolve(!1):n.datastore.has(e,t)}async delete(e,t){let n=this._lookup(e);if(n==null)throw new ye("No datastore mounted for this key");await n.datastore.delete(e,t)}batch(){let e={},t=n=>{let o=this._lookup(n);if(o==null)throw new Error("No datastore mounted for this key");let s=o.mountpoint.toString();return e[s]==null&&(e[s]=o.datastore.batch()),{batch:e[s]}};return{put:(n,o)=>{t(n).batch.put(n,o)},delete:n=>{t(n).batch.delete(n)},commit:async n=>{await Promise.all(Object.keys(e).map(async o=>{await e[o].commit(n)}))}}}query(e,t){let n=this.mounts.map(s=>s.datastore.query({prefix:e.prefix,filters:e.filters},t)),o=re(...n);if(e.filters!=null&&e.filters.forEach(s=>{o=D(o,s)}),e.orders!=null&&e.orders.forEach(s=>{o=G(o,s)}),e.offset!=null){let s=0,i=e.offset;o=D(o,()=>s++>=i)}return e.limit!=null&&(o=H(o,e.limit)),o}queryKeys(e,t){let n=this.mounts.map(s=>s.datastore.queryKeys({prefix:e.prefix,filters:e.filters},t)),o=re(...n);if(e.filters!=null&&e.filters.forEach(s=>{o=D(o,s)}),e.orders!=null&&e.orders.forEach(s=>{o=G(o,s)}),e.offset!=null){let s=0,i=e.offset;o=D(o,()=>s++>=i)}return e.limit!=null&&(o=H(o,e.limit)),o}};function vn(r,e){try{if(typeof r=="string"&&r.length>0)return Sn(r);if(typeof r=="number"&&isFinite(r))return e?.long?An(r):En(r);throw new Error("Value is not a string or number.")}catch(t){let n=Fn(t)?`${t.message}. value=${JSON.stringify(r)}`:"An unknown error has occured.";throw new Error(n)}}function Sn(r){if(r=String(r),r.length>100)throw new Error("Value exceeds the maximum length of 100 characters.");let e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(r);if(!e)return NaN;let t=parseFloat(e[1]),n=(e[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return t*315576e5;case"weeks":case"week":case"w":return t*6048e5;case"days":case"day":case"d":return t*864e5;case"hours":case"hour":case"hrs":case"hr":case"h":return t*36e5;case"minutes":case"minute":case"mins":case"min":case"m":return t*6e4;case"seconds":case"second":case"secs":case"sec":case"s":return t*1e3;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return t;default:throw new Error(`The unit ${n} was matched, but no matching case exists.`)}}var Ee=vn;function En(r){let e=Math.abs(r);return e>=864e5?`${Math.round(r/864e5)}d`:e>=36e5?`${Math.round(r/36e5)}h`:e>=6e4?`${Math.round(r/6e4)}m`:e>=1e3?`${Math.round(r/1e3)}s`:`${r}ms`}function An(r){let e=Math.abs(r);return e>=864e5?Se(r,e,864e5,"day"):e>=36e5?Se(r,e,36e5,"hour"):e>=6e4?Se(r,e,6e4,"minute"):e>=1e3?Se(r,e,1e3,"second"):`${r} ms`}function Se(r,e,t,n){let o=e>=t*1.5;return`${Math.round(r/t)} ${n}${o?"s":""}`}function Fn(r){return typeof r=="object"&&r!==null&&"message"in r}function ot(r){t.debug=t,t.default=t,t.coerce=d,t.disable=s,t.enable=o,t.enabled=i,t.humanize=Ee,t.destroy=E,Object.keys(r).forEach(u=>{t[u]=r[u]}),t.names=[],t.skips=[],t.formatters={};function e(u){let l=0;for(let p=0;p<u.length;p++)l=(l<<5)-l+u.charCodeAt(p),l|=0;return t.colors[Math.abs(l)%t.colors.length]}t.selectColor=e;function t(u){let l,p=null,L,h;function f(...c){if(!f.enabled)return;let m=f,b=Number(new Date),w=b-(l||b);m.diff=w,m.prev=l,m.curr=b,l=b,c[0]=t.coerce(c[0]),typeof c[0]!="string"&&c.unshift("%O");let g=0;c[0]=c[0].replace(/%([a-zA-Z%])/g,(I,F)=>{if(I==="%%")return"%";g++;let N=t.formatters[F];if(typeof N=="function"){let K=c[g];I=N.call(m,K),c.splice(g,1),g--}return I}),t.formatArgs.call(m,c),(m.log||t.log).apply(m,c)}return f.namespace=u,f.useColors=t.useColors(),f.color=t.selectColor(u),f.extend=n,f.destroy=t.destroy,Object.defineProperty(f,"enabled",{enumerable:!0,configurable:!1,get:()=>p!==null?p:(L!==t.namespaces&&(L=t.namespaces,h=t.enabled(u)),h),set:c=>{p=c}}),typeof t.init=="function"&&t.init(f),f}function n(u,l){let p=t(this.namespace+(typeof l>"u"?":":l)+u);return p.log=this.log,p}function o(u){t.save(u),t.namespaces=u,t.names=[],t.skips=[];let l,p=(typeof u=="string"?u:"").split(/[\s,]+/),L=p.length;for(l=0;l<L;l++)p[l]&&(u=p[l].replace(/\*/g,".*?"),u[0]==="-"?t.skips.push(new RegExp("^"+u.substr(1)+"$")):t.names.push(new RegExp("^"+u+"$")))}function s(){let u=[...t.names.map(a),...t.skips.map(a).map(l=>"-"+l)].join(",");return t.enable(""),u}function i(u){if(u[u.length-1]==="*")return!0;let l,p;for(l=0,p=t.skips.length;l<p;l++)if(t.skips[l].test(u))return!1;for(l=0,p=t.names.length;l<p;l++)if(t.names[l].test(u))return!0;return!1}function a(u){return u.toString().substring(2,u.toString().length-2).replace(/\.\*\?$/,"*")}function d(u){return u instanceof Error?u.stack??u.message:u}function E(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return t.setupFormatters(t.formatters),t.enable(t.load()),t}var Ae=Un(),In=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function Nn(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent?.toLowerCase().match(/(edge|trident)\/(\d+)/)!=null?!1:typeof document<"u"&&document.documentElement?.style?.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent?.toLowerCase().match(/firefox\/(\d+)/)!=null&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent?.toLowerCase().match(/applewebkit\/(\d+)/)}function kn(r){if(r[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+r[0]+(this.useColors?"%c ":" ")+"+"+Ee(this.diff),!this.useColors)return;let e="color: "+this.color;r.splice(1,0,e,"color: inherit");let t=0,n=0;r[0].replace(/%[a-zA-Z%]/g,o=>{o!=="%%"&&(t++,o==="%c"&&(n=t))}),r.splice(n,0,e)}var Dn=console.debug??console.log??(()=>{});function Mn(r){try{r?Ae?.setItem("debug",r):Ae?.removeItem("debug")}catch{}}function Rn(){let r;try{r=Ae?.getItem("debug")}catch{}return!r&&typeof globalThis.process<"u"&&"env"in globalThis.process&&(r=globalThis.process.env.DEBUG),r}function Un(){try{return localStorage}catch{}}function $n(r){r.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}}var Ot=ot({formatArgs:kn,save:Mn,load:Rn,useColors:Nn,setupFormatters:$n,colors:In,storage:Ae,log:Dn});var S=Ot;S.formatters.b=r=>r==null?"undefined":k.baseEncode(r);S.formatters.t=r=>r==null?"undefined":T.baseEncode(r);S.formatters.m=r=>r==null?"undefined":_e.baseEncode(r);S.formatters.p=r=>r==null?"undefined":r.toString();S.formatters.c=r=>r==null?"undefined":r.toString();S.formatters.k=r=>r==null?"undefined":r.toString();S.formatters.a=r=>r==null?"undefined":r.toString();S.formatters.e=r=>r==null?"undefined":Tt(r.stack)??Tt(r.message)??r.toString();function Ln(r){let e=()=>{};return e.enabled=!1,e.color="",e.diff=0,e.log=()=>{},e.namespace=r,e.destroy=()=>!0,e.extend=()=>e,e}function zt(r){let e=Ln(`${r}:trace`);return S.enabled(`${r}:trace`)&&S.names.map(t=>t.toString()).find(t=>t.includes(":trace"))!=null&&(e=S(`${r}:trace`)),Object.assign(S(r),{error:S(`${r}:error`),trace:e})}function Tt(r){if(r!=null&&(r=r.trim(),r.length!==0))return r}var On=zt("datastore:core:tiered"),Fe=class extends v{stores;constructor(e){super(),this.stores=e.slice()}async put(e,t,n){return await Promise.all(this.stores.map(async o=>{await o.put(e,t,n)})),e}async get(e,t){let n;for(let o of this.stores)try{let s=await o.get(e,t);if(s!=null)return s}catch(s){n=s,On.error(s)}throw n??new z}async has(e,t){for(let n of this.stores)if(await n.has(e,t))return!0;return!1}async delete(e,t){await Promise.all(this.stores.map(async n=>{await n.delete(e,t)}))}async*putMany(e,t={}){for await(let n of e)await this.put(n.key,n.value,t),yield n.key}async*deleteMany(e,t={}){for await(let n of e)await this.delete(n,t),yield n}batch(){let e=this.stores.map(t=>t.batch());return{put:(t,n)=>{e.forEach(o=>{o.put(t,n)})},delete:t=>{e.forEach(n=>{n.delete(t)})},commit:async t=>{for(let n of e)await n.commit(t)}}}query(e,t){return this.stores[this.stores.length-1].query(e,t)}queryKeys(e,t){return this.stores[this.stores.length-1].queryKeys(e,t)}};var Ie=class extends P{iChild;iKey;constructor(e,t){super(e,{convert(n){return t.child(n)},invert(n){if(t.toString()==="/")return n;if(!t.isAncestorOf(n))throw new Error(`Expected prefix: (${t.toString()}) in key: ${n.toString()}`);return new x(n.toString().slice(t.toString().length),!1)}}),this.iChild=e,this.iKey=t}query(e,t){let n={...e};n.filters=(n.filters??[]).map(s=>({key:i,value:a})=>s({key:this.transform.invert(i),value:a}));let{prefix:o}=e;return o!=null&&o!=="/"&&(delete n.prefix,n.filters.push(({key:s})=>this.transform.invert(s).toString().startsWith(o))),n.orders!=null&&(n.orders=n.orders.map(s=>(i,a)=>s({key:this.transform.invert(i.key),value:i.value},{key:this.transform.invert(a.key),value:a.value}))),n.filters.unshift(({key:s})=>this.iKey.isAncestorOf(s)),M(this.iChild.query(n,t),({key:s,value:i})=>({key:this.transform.invert(s),value:i}))}queryKeys(e,t){let n={...e};n.filters=(n.filters??[]).map(s=>i=>s(this.transform.invert(i)));let{prefix:o}=e;return o!=null&&o!=="/"&&(delete n.prefix,n.filters.push(s=>this.transform.invert(s).toString().startsWith(o))),n.orders!=null&&(n.orders=n.orders.map(s=>(i,a)=>s(this.transform.invert(i),this.transform.invert(a)))),n.filters.unshift(s=>this.iKey.isAncestorOf(s)),M(this.iChild.queryKeys(n,t),s=>this.transform.invert(s))}};return Bt(Tn);})(); return DatastoreCore})); //# sourceMappingURL=index.min.js.map