keystore-idb
Advanced tools
Comparing version 0.15.4 to 0.15.5
# Changelog | ||
### v0.15.5 | ||
- Support a `max` parameter (based on rejection sampling) in `randomBuf` rng. | ||
### v0.15.4 | ||
- Bump one-webcrypto to 1.0.3 for wider bundler support. | ||
### v0.15.3 | ||
@@ -4,0 +12,0 @@ |
@@ -15,3 +15,3 @@ (function (root, factory) { | ||
}(typeof self !== 'undefined' ? self : this, function () { | ||
var keystore=(()=>{var ko=Object.create;var ir=Object.defineProperty;var Yo=Object.getOwnPropertyDescriptor;var Ho=Object.getOwnPropertyNames;var Go=Object.getPrototypeOf,Wo=Object.prototype.hasOwnProperty;var Bt=n=>ir(n,"__esModule",{value:!0});var Oe=typeof require!="undefined"?require:n=>{throw new Error('Dynamic require of "'+n+'" is not supported')};var Vo=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports),W=(n,e)=>{Bt(n);for(var t in e)ir(n,t,{get:e[t],enumerable:!0})},$o=(n,e,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of Ho(e))!Wo.call(n,a)&&a!=="default"&&ir(n,a,{get:()=>e[a],enumerable:!(t=Yo(e,a))||t.enumerable});return n},Xo=n=>$o(Bt(ir(n!=null?ko(Go(n)):{},"default",n&&n.__esModule&&"default"in n?{get:()=>n.default,enumerable:!0}:{value:n,enumerable:!0})),n);var Dt=Vo((It,Dr)=>{(function(n){if(typeof It=="object"&&typeof Dr!="undefined")Dr.exports=n();else if(typeof define=="function"&&define.amd)define([],n);else{var e;typeof window!="undefined"?e=window:typeof global!="undefined"?e=global:typeof self!="undefined"?e=self:e=this,e.localforage=n()}})(function(){var n,e,t;return function a(u,p,b){function x(N,V){if(!p[N]){if(!u[N]){var v=typeof Oe=="function"&&Oe;if(!V&&v)return v(N,!0);if(E)return E(N,!0);var A=new Error("Cannot find module '"+N+"'");throw A.code="MODULE_NOT_FOUND",A}var _=p[N]={exports:{}};u[N][0].call(_.exports,function(T){var G=u[N][1][T];return x(G||T)},_,_.exports,a,u,p,b)}return p[N].exports}for(var E=typeof Oe=="function"&&Oe,O=0;O<b.length;O++)x(b[O]);return x}({1:[function(a,u,p){(function(b){"use strict";var x=b.MutationObserver||b.WebKitMutationObserver,E;if(x){var O=0,N=new x(T),V=b.document.createTextNode("");N.observe(V,{characterData:!0}),E=function(){V.data=O=++O%2}}else if(!b.setImmediate&&typeof b.MessageChannel!="undefined"){var v=new b.MessageChannel;v.port1.onmessage=T,E=function(){v.port2.postMessage(0)}}else"document"in b&&"onreadystatechange"in b.document.createElement("script")?E=function(){var I=b.document.createElement("script");I.onreadystatechange=function(){T(),I.onreadystatechange=null,I.parentNode.removeChild(I),I=null},b.document.documentElement.appendChild(I)}:E=function(){setTimeout(T,0)};var A,_=[];function T(){A=!0;for(var I,k,R=_.length;R;){for(k=_,_=[],I=-1;++I<R;)k[I]();R=_.length}A=!1}u.exports=G;function G(I){_.push(I)===1&&!A&&E()}}).call(this,typeof global!="undefined"?global:typeof self!="undefined"?self:typeof window!="undefined"?window:{})},{}],2:[function(a,u,p){"use strict";var b=a(1);function x(){}var E={},O=["REJECTED"],N=["FULFILLED"],V=["PENDING"];u.exports=v;function v(g){if(typeof g!="function")throw new TypeError("resolver must be a function");this.state=V,this.queue=[],this.outcome=void 0,g!==x&&G(this,g)}v.prototype.catch=function(g){return this.then(null,g)},v.prototype.then=function(g,C){if(typeof g!="function"&&this.state===N||typeof C!="function"&&this.state===O)return this;var S=new this.constructor(x);if(this.state!==V){var B=this.state===N?g:C;_(S,B,this.outcome)}else this.queue.push(new A(S,g,C));return S};function A(g,C,S){this.promise=g,typeof C=="function"&&(this.onFulfilled=C,this.callFulfilled=this.otherCallFulfilled),typeof S=="function"&&(this.onRejected=S,this.callRejected=this.otherCallRejected)}A.prototype.callFulfilled=function(g){E.resolve(this.promise,g)},A.prototype.otherCallFulfilled=function(g){_(this.promise,this.onFulfilled,g)},A.prototype.callRejected=function(g){E.reject(this.promise,g)},A.prototype.otherCallRejected=function(g){_(this.promise,this.onRejected,g)};function _(g,C,S){b(function(){var B;try{B=C(S)}catch(Q){return E.reject(g,Q)}B===g?E.reject(g,new TypeError("Cannot resolve promise with itself")):E.resolve(g,B)})}E.resolve=function(g,C){var S=I(T,C);if(S.status==="error")return E.reject(g,S.value);var B=S.value;if(B)G(g,B);else{g.state=N,g.outcome=C;for(var Q=-1,J=g.queue.length;++Q<J;)g.queue[Q].callFulfilled(C)}return g},E.reject=function(g,C){g.state=O,g.outcome=C;for(var S=-1,B=g.queue.length;++S<B;)g.queue[S].callRejected(C);return g};function T(g){var C=g&&g.then;if(g&&(typeof g=="object"||typeof g=="function")&&typeof C=="function")return function(){C.apply(g,arguments)}}function G(g,C){var S=!1;function B(re){S||(S=!0,E.reject(g,re))}function Q(re){S||(S=!0,E.resolve(g,re))}function J(){C(Q,B)}var ee=I(J);ee.status==="error"&&B(ee.value)}function I(g,C){var S={};try{S.value=g(C),S.status="success"}catch(B){S.status="error",S.value=B}return S}v.resolve=k;function k(g){return g instanceof this?g:E.resolve(new this(x),g)}v.reject=R;function R(g){var C=new this(x);return E.reject(C,g)}v.all=q;function q(g){var C=this;if(Object.prototype.toString.call(g)!=="[object Array]")return this.reject(new TypeError("must be an array"));var S=g.length,B=!1;if(!S)return this.resolve([]);for(var Q=new Array(S),J=0,ee=-1,re=new this(x);++ee<S;)ue(g[ee],ee);return re;function ue(je,tr){C.resolve(je).then(Er,function(Te){B||(B=!0,E.reject(re,Te))});function Er(Te){Q[tr]=Te,++J===S&&!B&&(B=!0,E.resolve(re,Q))}}}v.race=$;function $(g){var C=this;if(Object.prototype.toString.call(g)!=="[object Array]")return this.reject(new TypeError("must be an array"));var S=g.length,B=!1;if(!S)return this.resolve([]);for(var Q=-1,J=new this(x);++Q<S;)ee(g[Q]);return J;function ee(re){C.resolve(re).then(function(ue){B||(B=!0,E.resolve(J,ue))},function(ue){B||(B=!0,E.reject(J,ue))})}}},{"1":1}],3:[function(a,u,p){(function(b){"use strict";typeof b.Promise!="function"&&(b.Promise=a(2))}).call(this,typeof global!="undefined"?global:typeof self!="undefined"?self:typeof window!="undefined"?window:{})},{"2":2}],4:[function(a,u,p){"use strict";var b=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(r){return typeof r}:function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r};function x(r,i){if(!(r instanceof i))throw new TypeError("Cannot call a class as a function")}function E(){try{if(typeof indexedDB!="undefined")return indexedDB;if(typeof webkitIndexedDB!="undefined")return webkitIndexedDB;if(typeof mozIndexedDB!="undefined")return mozIndexedDB;if(typeof OIndexedDB!="undefined")return OIndexedDB;if(typeof msIndexedDB!="undefined")return msIndexedDB}catch(r){return}}var O=E();function N(){try{if(!O||!O.open)return!1;var r=typeof openDatabase!="undefined"&&/(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent)&&!/Chrome/.test(navigator.userAgent)&&!/BlackBerry/.test(navigator.platform),i=typeof fetch=="function"&&fetch.toString().indexOf("[native code")!==-1;return(!r||i)&&typeof indexedDB!="undefined"&&typeof IDBKeyRange!="undefined"}catch(o){return!1}}function V(r,i){r=r||[],i=i||{};try{return new Blob(r,i)}catch(s){if(s.name!=="TypeError")throw s;for(var o=typeof BlobBuilder!="undefined"?BlobBuilder:typeof MSBlobBuilder!="undefined"?MSBlobBuilder:typeof MozBlobBuilder!="undefined"?MozBlobBuilder:WebKitBlobBuilder,c=new o,f=0;f<r.length;f+=1)c.append(r[f]);return c.getBlob(i.type)}}typeof Promise=="undefined"&&a(3);var v=Promise;function A(r,i){i&&r.then(function(o){i(null,o)},function(o){i(o)})}function _(r,i,o){typeof i=="function"&&r.then(i),typeof o=="function"&&r.catch(o)}function T(r){return typeof r!="string"&&(console.warn(r+" used as a key, but it is not a string."),r=String(r)),r}function G(){if(arguments.length&&typeof arguments[arguments.length-1]=="function")return arguments[arguments.length-1]}var I="local-forage-detect-blob-support",k=void 0,R={},q=Object.prototype.toString,$="readonly",g="readwrite";function C(r){for(var i=r.length,o=new ArrayBuffer(i),c=new Uint8Array(o),f=0;f<i;f++)c[f]=r.charCodeAt(f);return o}function S(r){return new v(function(i){var o=r.transaction(I,g),c=V([""]);o.objectStore(I).put(c,"key"),o.onabort=function(f){f.preventDefault(),f.stopPropagation(),i(!1)},o.oncomplete=function(){var f=navigator.userAgent.match(/Chrome\/(\d+)/),s=navigator.userAgent.match(/Edge\//);i(s||!f||parseInt(f[1],10)>=43)}}).catch(function(){return!1})}function B(r){return typeof k=="boolean"?v.resolve(k):S(r).then(function(i){return k=i,k})}function Q(r){var i=R[r.name],o={};o.promise=new v(function(c,f){o.resolve=c,o.reject=f}),i.deferredOperations.push(o),i.dbReady?i.dbReady=i.dbReady.then(function(){return o.promise}):i.dbReady=o.promise}function J(r){var i=R[r.name],o=i.deferredOperations.pop();if(o)return o.resolve(),o.promise}function ee(r,i){var o=R[r.name],c=o.deferredOperations.pop();if(c)return c.reject(i),c.promise}function re(r,i){return new v(function(o,c){if(R[r.name]=R[r.name]||ut(),r.db)if(i)Q(r),r.db.close();else return o(r.db);var f=[r.name];i&&f.push(r.version);var s=O.open.apply(O,f);i&&(s.onupgradeneeded=function(l){var y=s.result;try{y.createObjectStore(r.storeName),l.oldVersion<=1&&y.createObjectStore(I)}catch(m){if(m.name==="ConstraintError")console.warn('The database "'+r.name+'" has been upgraded from version '+l.oldVersion+" to version "+l.newVersion+', but the storage "'+r.storeName+'" already exists.');else throw m}}),s.onerror=function(l){l.preventDefault(),c(s.error)},s.onsuccess=function(){var l=s.result;l.onversionchange=function(y){y.target.close()},o(l),J(r)}})}function ue(r){return re(r,!1)}function je(r){return re(r,!0)}function tr(r,i){if(!r.db)return!0;var o=!r.db.objectStoreNames.contains(r.storeName),c=r.version<r.db.version,f=r.version>r.db.version;if(c&&(r.version!==i&&console.warn('The database "'+r.name+`" can't be downgraded from version `+r.db.version+" to version "+r.version+"."),r.version=r.db.version),f||o){if(o){var s=r.db.version+1;s>r.version&&(r.version=s)}return!0}return!1}function Er(r){return new v(function(i,o){var c=new FileReader;c.onerror=o,c.onloadend=function(f){var s=btoa(f.target.result||"");i({__local_forage_encoded_blob:!0,data:s,type:r.type})},c.readAsBinaryString(r)})}function Te(r){var i=C(atob(r.data));return V([i],{type:r.type})}function ft(r){return r&&r.__local_forage_encoded_blob}function kn(r){var i=this,o=i._initReady().then(function(){var c=R[i._dbInfo.name];if(c&&c.dbReady)return c.dbReady});return _(o,r,r),o}function Yn(r){Q(r);for(var i=R[r.name],o=i.forages,c=0;c<o.length;c++){var f=o[c];f._dbInfo.db&&(f._dbInfo.db.close(),f._dbInfo.db=null)}return r.db=null,ue(r).then(function(s){return r.db=s,tr(r)?je(r):s}).then(function(s){r.db=i.db=s;for(var l=0;l<o.length;l++)o[l]._dbInfo.db=s}).catch(function(s){throw ee(r,s),s})}function le(r,i,o,c){c===void 0&&(c=1);try{var f=r.db.transaction(r.storeName,i);o(null,f)}catch(s){if(c>0&&(!r.db||s.name==="InvalidStateError"||s.name==="NotFoundError"))return v.resolve().then(function(){if(!r.db||s.name==="NotFoundError"&&!r.db.objectStoreNames.contains(r.storeName)&&r.version<=r.db.version)return r.db&&(r.version=r.db.version+1),je(r)}).then(function(){return Yn(r).then(function(){le(r,i,o,c-1)})}).catch(o);o(s)}}function ut(){return{forages:[],db:null,dbReady:null,deferredOperations:[]}}function Hn(r){var i=this,o={db:null};if(r)for(var c in r)o[c]=r[c];var f=R[o.name];f||(f=ut(),R[o.name]=f),f.forages.push(i),i._initReady||(i._initReady=i.ready,i.ready=kn);var s=[];function l(){return v.resolve()}for(var y=0;y<f.forages.length;y++){var m=f.forages[y];m!==i&&s.push(m._initReady().catch(l))}var d=f.forages.slice(0);return v.all(s).then(function(){return o.db=f.db,ue(o)}).then(function(h){return o.db=h,tr(o,i._defaultConfig.version)?je(o):h}).then(function(h){o.db=f.db=h,i._dbInfo=o;for(var w=0;w<d.length;w++){var P=d[w];P!==i&&(P._dbInfo.db=o.db,P._dbInfo.version=o.version)}})}function Gn(r,i){var o=this;r=T(r);var c=new v(function(f,s){o.ready().then(function(){le(o._dbInfo,$,function(l,y){if(l)return s(l);try{var m=y.objectStore(o._dbInfo.storeName),d=m.get(r);d.onsuccess=function(){var h=d.result;h===void 0&&(h=null),ft(h)&&(h=Te(h)),f(h)},d.onerror=function(){s(d.error)}}catch(h){s(h)}})}).catch(s)});return A(c,i),c}function Wn(r,i){var o=this,c=new v(function(f,s){o.ready().then(function(){le(o._dbInfo,$,function(l,y){if(l)return s(l);try{var m=y.objectStore(o._dbInfo.storeName),d=m.openCursor(),h=1;d.onsuccess=function(){var w=d.result;if(w){var P=w.value;ft(P)&&(P=Te(P));var L=r(P,w.key,h++);L!==void 0?f(L):w.continue()}else f()},d.onerror=function(){s(d.error)}}catch(w){s(w)}})}).catch(s)});return A(c,i),c}function Vn(r,i,o){var c=this;r=T(r);var f=new v(function(s,l){var y;c.ready().then(function(){return y=c._dbInfo,q.call(i)==="[object Blob]"?B(y.db).then(function(m){return m?i:Er(i)}):i}).then(function(m){le(c._dbInfo,g,function(d,h){if(d)return l(d);try{var w=h.objectStore(c._dbInfo.storeName);m===null&&(m=void 0);var P=w.put(m,r);h.oncomplete=function(){m===void 0&&(m=null),s(m)},h.onabort=h.onerror=function(){var L=P.error?P.error:P.transaction.error;l(L)}}catch(L){l(L)}})}).catch(l)});return A(f,o),f}function $n(r,i){var o=this;r=T(r);var c=new v(function(f,s){o.ready().then(function(){le(o._dbInfo,g,function(l,y){if(l)return s(l);try{var m=y.objectStore(o._dbInfo.storeName),d=m.delete(r);y.oncomplete=function(){f()},y.onerror=function(){s(d.error)},y.onabort=function(){var h=d.error?d.error:d.transaction.error;s(h)}}catch(h){s(h)}})}).catch(s)});return A(c,i),c}function Xn(r){var i=this,o=new v(function(c,f){i.ready().then(function(){le(i._dbInfo,g,function(s,l){if(s)return f(s);try{var y=l.objectStore(i._dbInfo.storeName),m=y.clear();l.oncomplete=function(){c()},l.onabort=l.onerror=function(){var d=m.error?m.error:m.transaction.error;f(d)}}catch(d){f(d)}})}).catch(f)});return A(o,r),o}function Qn(r){var i=this,o=new v(function(c,f){i.ready().then(function(){le(i._dbInfo,$,function(s,l){if(s)return f(s);try{var y=l.objectStore(i._dbInfo.storeName),m=y.count();m.onsuccess=function(){c(m.result)},m.onerror=function(){f(m.error)}}catch(d){f(d)}})}).catch(f)});return A(o,r),o}function qn(r,i){var o=this,c=new v(function(f,s){if(r<0){f(null);return}o.ready().then(function(){le(o._dbInfo,$,function(l,y){if(l)return s(l);try{var m=y.objectStore(o._dbInfo.storeName),d=!1,h=m.openKeyCursor();h.onsuccess=function(){var w=h.result;if(!w){f(null);return}r===0||d?f(w.key):(d=!0,w.advance(r))},h.onerror=function(){s(h.error)}}catch(w){s(w)}})}).catch(s)});return A(c,i),c}function Jn(r){var i=this,o=new v(function(c,f){i.ready().then(function(){le(i._dbInfo,$,function(s,l){if(s)return f(s);try{var y=l.objectStore(i._dbInfo.storeName),m=y.openKeyCursor(),d=[];m.onsuccess=function(){var h=m.result;if(!h){c(d);return}d.push(h.key),h.continue()},m.onerror=function(){f(m.error)}}catch(h){f(h)}})}).catch(f)});return A(o,r),o}function Zn(r,i){i=G.apply(this,arguments);var o=this.config();r=typeof r!="function"&&r||{},r.name||(r.name=r.name||o.name,r.storeName=r.storeName||o.storeName);var c=this,f;if(!r.name)f=v.reject("Invalid arguments");else{var s=r.name===o.name&&c._dbInfo.db,l=s?v.resolve(c._dbInfo.db):ue(r).then(function(y){var m=R[r.name],d=m.forages;m.db=y;for(var h=0;h<d.length;h++)d[h]._dbInfo.db=y;return y});r.storeName?f=l.then(function(y){if(!!y.objectStoreNames.contains(r.storeName)){var m=y.version+1;Q(r);var d=R[r.name],h=d.forages;y.close();for(var w=0;w<h.length;w++){var P=h[w];P._dbInfo.db=null,P._dbInfo.version=m}var L=new v(function(j,Y){var z=O.open(r.name,m);z.onerror=function(te){var Me=z.result;Me.close(),Y(te)},z.onupgradeneeded=function(){var te=z.result;te.deleteObjectStore(r.storeName)},z.onsuccess=function(){var te=z.result;te.close(),j(te)}});return L.then(function(j){d.db=j;for(var Y=0;Y<h.length;Y++){var z=h[Y];z._dbInfo.db=j,J(z._dbInfo)}}).catch(function(j){throw(ee(r,j)||v.resolve()).catch(function(){}),j})}}):f=l.then(function(y){Q(r);var m=R[r.name],d=m.forages;y.close();for(var h=0;h<d.length;h++){var w=d[h];w._dbInfo.db=null}var P=new v(function(L,j){var Y=O.deleteDatabase(r.name);Y.onerror=function(){var z=Y.result;z&&z.close(),j(Y.error)},Y.onblocked=function(){console.warn('dropInstance blocked for database "'+r.name+'" until all open connections are closed')},Y.onsuccess=function(){var z=Y.result;z&&z.close(),L(z)}});return P.then(function(L){m.db=L;for(var j=0;j<d.length;j++){var Y=d[j];J(Y._dbInfo)}}).catch(function(L){throw(ee(r,L)||v.resolve()).catch(function(){}),L})})}return A(f,i),f}var eo={_driver:"asyncStorage",_initStorage:Hn,_support:N(),iterate:Wn,getItem:Gn,setItem:Vn,removeItem:$n,clear:Xn,length:Qn,key:qn,keys:Jn,dropInstance:Zn};function ro(){return typeof openDatabase=="function"}var ve="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",to="~~local_forage_type~",lt=/^~~local_forage_type~([^~]+)~/,nr="__lfsc__:",Sr=nr.length,_r="arbf",Ar="blob",pt="si08",yt="ui08",mt="uic8",dt="si16",ht="si32",gt="ur16",vt="ui32",bt="fl32",wt="fl64",xt=Sr+_r.length,Et=Object.prototype.toString;function St(r){var i=r.length*.75,o=r.length,c,f=0,s,l,y,m;r[r.length-1]==="="&&(i--,r[r.length-2]==="="&&i--);var d=new ArrayBuffer(i),h=new Uint8Array(d);for(c=0;c<o;c+=4)s=ve.indexOf(r[c]),l=ve.indexOf(r[c+1]),y=ve.indexOf(r[c+2]),m=ve.indexOf(r[c+3]),h[f++]=s<<2|l>>4,h[f++]=(l&15)<<4|y>>2,h[f++]=(y&3)<<6|m&63;return d}function Cr(r){var i=new Uint8Array(r),o="",c;for(c=0;c<i.length;c+=3)o+=ve[i[c]>>2],o+=ve[(i[c]&3)<<4|i[c+1]>>4],o+=ve[(i[c+1]&15)<<2|i[c+2]>>6],o+=ve[i[c+2]&63];return i.length%3==2?o=o.substring(0,o.length-1)+"=":i.length%3==1&&(o=o.substring(0,o.length-2)+"=="),o}function no(r,i){var o="";if(r&&(o=Et.call(r)),r&&(o==="[object ArrayBuffer]"||r.buffer&&Et.call(r.buffer)==="[object ArrayBuffer]")){var c,f=nr;r instanceof ArrayBuffer?(c=r,f+=_r):(c=r.buffer,o==="[object Int8Array]"?f+=pt:o==="[object Uint8Array]"?f+=yt:o==="[object Uint8ClampedArray]"?f+=mt:o==="[object Int16Array]"?f+=dt:o==="[object Uint16Array]"?f+=gt:o==="[object Int32Array]"?f+=ht:o==="[object Uint32Array]"?f+=vt:o==="[object Float32Array]"?f+=bt:o==="[object Float64Array]"?f+=wt:i(new Error("Failed to get type for BinaryArray"))),i(f+Cr(c))}else if(o==="[object Blob]"){var s=new FileReader;s.onload=function(){var l=to+r.type+"~"+Cr(this.result);i(nr+Ar+l)},s.readAsArrayBuffer(r)}else try{i(JSON.stringify(r))}catch(l){console.error("Couldn't convert value into a JSON string: ",r),i(null,l)}}function oo(r){if(r.substring(0,Sr)!==nr)return JSON.parse(r);var i=r.substring(xt),o=r.substring(Sr,xt),c;if(o===Ar&<.test(i)){var f=i.match(lt);c=f[1],i=i.substring(f[0].length)}var s=St(i);switch(o){case _r:return s;case Ar:return V([s],{type:c});case pt:return new Int8Array(s);case yt:return new Uint8Array(s);case mt:return new Uint8ClampedArray(s);case dt:return new Int16Array(s);case gt:return new Uint16Array(s);case ht:return new Int32Array(s);case vt:return new Uint32Array(s);case bt:return new Float32Array(s);case wt:return new Float64Array(s);default:throw new Error("Unkown type: "+o)}}var Pr={serialize:no,deserialize:oo,stringToBuffer:St,bufferToString:Cr};function _t(r,i,o,c){r.executeSql("CREATE TABLE IF NOT EXISTS "+i.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],o,c)}function io(r){var i=this,o={db:null};if(r)for(var c in r)o[c]=typeof r[c]!="string"?r[c].toString():r[c];var f=new v(function(s,l){try{o.db=openDatabase(o.name,String(o.version),o.description,o.size)}catch(y){return l(y)}o.db.transaction(function(y){_t(y,o,function(){i._dbInfo=o,s()},function(m,d){l(d)})},l)});return o.serializer=Pr,f}function be(r,i,o,c,f,s){r.executeSql(o,c,f,function(l,y){y.code===y.SYNTAX_ERR?l.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?",[i.storeName],function(m,d){d.rows.length?s(m,y):_t(m,i,function(){m.executeSql(o,c,f,s)},s)},s):s(l,y)},s)}function ao(r,i){var o=this;r=T(r);var c=new v(function(f,s){o.ready().then(function(){var l=o._dbInfo;l.db.transaction(function(y){be(y,l,"SELECT * FROM "+l.storeName+" WHERE key = ? LIMIT 1",[r],function(m,d){var h=d.rows.length?d.rows.item(0).value:null;h&&(h=l.serializer.deserialize(h)),f(h)},function(m,d){s(d)})})}).catch(s)});return A(c,i),c}function so(r,i){var o=this,c=new v(function(f,s){o.ready().then(function(){var l=o._dbInfo;l.db.transaction(function(y){be(y,l,"SELECT * FROM "+l.storeName,[],function(m,d){for(var h=d.rows,w=h.length,P=0;P<w;P++){var L=h.item(P),j=L.value;if(j&&(j=l.serializer.deserialize(j)),j=r(j,L.key,P+1),j!==void 0){f(j);return}}f()},function(m,d){s(d)})})}).catch(s)});return A(c,i),c}function At(r,i,o,c){var f=this;r=T(r);var s=new v(function(l,y){f.ready().then(function(){i===void 0&&(i=null);var m=i,d=f._dbInfo;d.serializer.serialize(i,function(h,w){w?y(w):d.db.transaction(function(P){be(P,d,"INSERT OR REPLACE INTO "+d.storeName+" (key, value) VALUES (?, ?)",[r,h],function(){l(m)},function(L,j){y(j)})},function(P){if(P.code===P.QUOTA_ERR){if(c>0){l(At.apply(f,[r,m,o,c-1]));return}y(P)}})})}).catch(y)});return A(s,o),s}function co(r,i,o){return At.apply(this,[r,i,o,1])}function fo(r,i){var o=this;r=T(r);var c=new v(function(f,s){o.ready().then(function(){var l=o._dbInfo;l.db.transaction(function(y){be(y,l,"DELETE FROM "+l.storeName+" WHERE key = ?",[r],function(){f()},function(m,d){s(d)})})}).catch(s)});return A(c,i),c}function uo(r){var i=this,o=new v(function(c,f){i.ready().then(function(){var s=i._dbInfo;s.db.transaction(function(l){be(l,s,"DELETE FROM "+s.storeName,[],function(){c()},function(y,m){f(m)})})}).catch(f)});return A(o,r),o}function lo(r){var i=this,o=new v(function(c,f){i.ready().then(function(){var s=i._dbInfo;s.db.transaction(function(l){be(l,s,"SELECT COUNT(key) as c FROM "+s.storeName,[],function(y,m){var d=m.rows.item(0).c;c(d)},function(y,m){f(m)})})}).catch(f)});return A(o,r),o}function po(r,i){var o=this,c=new v(function(f,s){o.ready().then(function(){var l=o._dbInfo;l.db.transaction(function(y){be(y,l,"SELECT key FROM "+l.storeName+" WHERE id = ? LIMIT 1",[r+1],function(m,d){var h=d.rows.length?d.rows.item(0).key:null;f(h)},function(m,d){s(d)})})}).catch(s)});return A(c,i),c}function yo(r){var i=this,o=new v(function(c,f){i.ready().then(function(){var s=i._dbInfo;s.db.transaction(function(l){be(l,s,"SELECT key FROM "+s.storeName,[],function(y,m){for(var d=[],h=0;h<m.rows.length;h++)d.push(m.rows.item(h).key);c(d)},function(y,m){f(m)})})}).catch(f)});return A(o,r),o}function mo(r){return new v(function(i,o){r.transaction(function(c){c.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name <> '__WebKitDatabaseInfoTable__'",[],function(f,s){for(var l=[],y=0;y<s.rows.length;y++)l.push(s.rows.item(y).name);i({db:r,storeNames:l})},function(f,s){o(s)})},function(c){o(c)})})}function ho(r,i){i=G.apply(this,arguments);var o=this.config();r=typeof r!="function"&&r||{},r.name||(r.name=r.name||o.name,r.storeName=r.storeName||o.storeName);var c=this,f;return r.name?f=new v(function(s){var l;r.name===o.name?l=c._dbInfo.db:l=openDatabase(r.name,"","",0),r.storeName?s({db:l,storeNames:[r.storeName]}):s(mo(l))}).then(function(s){return new v(function(l,y){s.db.transaction(function(m){function d(L){return new v(function(j,Y){m.executeSql("DROP TABLE IF EXISTS "+L,[],function(){j()},function(z,te){Y(te)})})}for(var h=[],w=0,P=s.storeNames.length;w<P;w++)h.push(d(s.storeNames[w]));v.all(h).then(function(){l()}).catch(function(L){y(L)})},function(m){y(m)})})}):f=v.reject("Invalid arguments"),A(f,i),f}var go={_driver:"webSQLStorage",_initStorage:io,_support:ro(),iterate:so,getItem:ao,setItem:co,removeItem:fo,clear:uo,length:lo,key:po,keys:yo,dropInstance:ho};function vo(){try{return typeof localStorage!="undefined"&&"setItem"in localStorage&&!!localStorage.setItem}catch(r){return!1}}function Ct(r,i){var o=r.name+"/";return r.storeName!==i.storeName&&(o+=r.storeName+"/"),o}function bo(){var r="_localforage_support_test";try{return localStorage.setItem(r,!0),localStorage.removeItem(r),!1}catch(i){return!0}}function wo(){return!bo()||localStorage.length>0}function xo(r){var i=this,o={};if(r)for(var c in r)o[c]=r[c];return o.keyPrefix=Ct(r,i._defaultConfig),wo()?(i._dbInfo=o,o.serializer=Pr,v.resolve()):v.reject()}function Eo(r){var i=this,o=i.ready().then(function(){for(var c=i._dbInfo.keyPrefix,f=localStorage.length-1;f>=0;f--){var s=localStorage.key(f);s.indexOf(c)===0&&localStorage.removeItem(s)}});return A(o,r),o}function So(r,i){var o=this;r=T(r);var c=o.ready().then(function(){var f=o._dbInfo,s=localStorage.getItem(f.keyPrefix+r);return s&&(s=f.serializer.deserialize(s)),s});return A(c,i),c}function _o(r,i){var o=this,c=o.ready().then(function(){for(var f=o._dbInfo,s=f.keyPrefix,l=s.length,y=localStorage.length,m=1,d=0;d<y;d++){var h=localStorage.key(d);if(h.indexOf(s)===0){var w=localStorage.getItem(h);if(w&&(w=f.serializer.deserialize(w)),w=r(w,h.substring(l),m++),w!==void 0)return w}}});return A(c,i),c}function Ao(r,i){var o=this,c=o.ready().then(function(){var f=o._dbInfo,s;try{s=localStorage.key(r)}catch(l){s=null}return s&&(s=s.substring(f.keyPrefix.length)),s});return A(c,i),c}function Co(r){var i=this,o=i.ready().then(function(){for(var c=i._dbInfo,f=localStorage.length,s=[],l=0;l<f;l++){var y=localStorage.key(l);y.indexOf(c.keyPrefix)===0&&s.push(y.substring(c.keyPrefix.length))}return s});return A(o,r),o}function Po(r){var i=this,o=i.keys().then(function(c){return c.length});return A(o,r),o}function Ko(r,i){var o=this;r=T(r);var c=o.ready().then(function(){var f=o._dbInfo;localStorage.removeItem(f.keyPrefix+r)});return A(c,i),c}function To(r,i,o){var c=this;r=T(r);var f=c.ready().then(function(){i===void 0&&(i=null);var s=i;return new v(function(l,y){var m=c._dbInfo;m.serializer.serialize(i,function(d,h){if(h)y(h);else try{localStorage.setItem(m.keyPrefix+r,d),l(s)}catch(w){(w.name==="QuotaExceededError"||w.name==="NS_ERROR_DOM_QUOTA_REACHED")&&y(w),y(w)}})})});return A(f,o),f}function Bo(r,i){if(i=G.apply(this,arguments),r=typeof r!="function"&&r||{},!r.name){var o=this.config();r.name=r.name||o.name,r.storeName=r.storeName||o.storeName}var c=this,f;return r.name?f=new v(function(s){r.storeName?s(Ct(r,c._defaultConfig)):s(r.name+"/")}).then(function(s){for(var l=localStorage.length-1;l>=0;l--){var y=localStorage.key(l);y.indexOf(s)===0&&localStorage.removeItem(y)}}):f=v.reject("Invalid arguments"),A(f,i),f}var Io={_driver:"localStorageWrapper",_initStorage:xo,_support:vo(),iterate:_o,getItem:So,setItem:To,removeItem:Ko,clear:Eo,length:Po,key:Ao,keys:Co,dropInstance:Bo},Do=function(i,o){return i===o||typeof i=="number"&&typeof o=="number"&&isNaN(i)&&isNaN(o)},No=function(i,o){for(var c=i.length,f=0;f<c;){if(Do(i[f],o))return!0;f++}return!1},Pt=Array.isArray||function(r){return Object.prototype.toString.call(r)==="[object Array]"},Ue={},Kt={},Be={INDEXEDDB:eo,WEBSQL:go,LOCALSTORAGE:Io},Lo=[Be.INDEXEDDB._driver,Be.WEBSQL._driver,Be.LOCALSTORAGE._driver],or=["dropInstance"],Kr=["clear","getItem","iterate","key","keys","length","removeItem","setItem"].concat(or),Ro={description:"",driver:Lo.slice(),name:"localforage",size:4980736,storeName:"keyvaluepairs",version:1};function jo(r,i){r[i]=function(){var o=arguments;return r.ready().then(function(){return r[i].apply(r,o)})}}function Tr(){for(var r=1;r<arguments.length;r++){var i=arguments[r];if(i)for(var o in i)i.hasOwnProperty(o)&&(Pt(i[o])?arguments[0][o]=i[o].slice():arguments[0][o]=i[o])}return arguments[0]}var Uo=function(){function r(i){x(this,r);for(var o in Be)if(Be.hasOwnProperty(o)){var c=Be[o],f=c._driver;this[o]=f,Ue[f]||this.defineDriver(c)}this._defaultConfig=Tr({},Ro),this._config=Tr({},this._defaultConfig,i),this._driverSet=null,this._initDriver=null,this._ready=!1,this._dbInfo=null,this._wrapLibraryMethodsWithReady(),this.setDriver(this._config.driver).catch(function(){})}return r.prototype.config=function(o){if((typeof o=="undefined"?"undefined":b(o))==="object"){if(this._ready)return new Error("Can't call config() after localforage has been used.");for(var c in o){if(c==="storeName"&&(o[c]=o[c].replace(/\W/g,"_")),c==="version"&&typeof o[c]!="number")return new Error("Database version must be a number.");this._config[c]=o[c]}return"driver"in o&&o.driver?this.setDriver(this._config.driver):!0}else return typeof o=="string"?this._config[o]:this._config},r.prototype.defineDriver=function(o,c,f){var s=new v(function(l,y){try{var m=o._driver,d=new Error("Custom driver not compliant; see https://mozilla.github.io/localForage/#definedriver");if(!o._driver){y(d);return}for(var h=Kr.concat("_initStorage"),w=0,P=h.length;w<P;w++){var L=h[w],j=!No(or,L);if((j||o[L])&&typeof o[L]!="function"){y(d);return}}var Y=function(){for(var Me=function(Fo){return function(){var zo=new Error("Method "+Fo+" is not implemented by the current driver"),Tt=v.reject(zo);return A(Tt,arguments[arguments.length-1]),Tt}},Br=0,Oo=or.length;Br<Oo;Br++){var Ir=or[Br];o[Ir]||(o[Ir]=Me(Ir))}};Y();var z=function(Me){Ue[m]&&console.info("Redefining LocalForage driver: "+m),Ue[m]=o,Kt[m]=Me,l()};"_support"in o?o._support&&typeof o._support=="function"?o._support().then(z,y):z(!!o._support):z(!0)}catch(te){y(te)}});return _(s,c,f),s},r.prototype.driver=function(){return this._driver||null},r.prototype.getDriver=function(o,c,f){var s=Ue[o]?v.resolve(Ue[o]):v.reject(new Error("Driver not found."));return _(s,c,f),s},r.prototype.getSerializer=function(o){var c=v.resolve(Pr);return _(c,o),c},r.prototype.ready=function(o){var c=this,f=c._driverSet.then(function(){return c._ready===null&&(c._ready=c._initDriver()),c._ready});return _(f,o,o),f},r.prototype.setDriver=function(o,c,f){var s=this;Pt(o)||(o=[o]);var l=this._getSupportedDrivers(o);function y(){s._config.driver=s.driver()}function m(w){return s._extend(w),y(),s._ready=s._initStorage(s._config),s._ready}function d(w){return function(){var P=0;function L(){for(;P<w.length;){var j=w[P];return P++,s._dbInfo=null,s._ready=null,s.getDriver(j).then(m).catch(L)}y();var Y=new Error("No available storage method found.");return s._driverSet=v.reject(Y),s._driverSet}return L()}}var h=this._driverSet!==null?this._driverSet.catch(function(){return v.resolve()}):v.resolve();return this._driverSet=h.then(function(){var w=l[0];return s._dbInfo=null,s._ready=null,s.getDriver(w).then(function(P){s._driver=P._driver,y(),s._wrapLibraryMethodsWithReady(),s._initDriver=d(l)})}).catch(function(){y();var w=new Error("No available storage method found.");return s._driverSet=v.reject(w),s._driverSet}),_(this._driverSet,c,f),this._driverSet},r.prototype.supports=function(o){return!!Kt[o]},r.prototype._extend=function(o){Tr(this,o)},r.prototype._getSupportedDrivers=function(o){for(var c=[],f=0,s=o.length;f<s;f++){var l=o[f];this.supports(l)&&c.push(l)}return c},r.prototype._wrapLibraryMethodsWithReady=function(){for(var o=0,c=Kr.length;o<c;o++)jo(this,Kr[o])},r.prototype.createInstance=function(o){return new r(o)},r}(),Mo=new Uo;u.exports=Mo},{"3":3}]},{},[4])(4)})});var ma={};W(ma,{default:()=>ya});var Mr={};W(Mr,{clear:()=>Yt,createIfDoesNotExist:()=>Ot,createStore:()=>Mt,default:()=>H,dropStore:()=>Ur,exists:()=>jr,get:()=>Rr,getKey:()=>zt,getKeypair:()=>Ft,put:()=>Lr,rm:()=>kt});var se=Xo(Dt());var Nr={};W(Nr,{CharSize:()=>we,CryptoSystem:()=>Z,EccCurve:()=>Fe,HashAlg:()=>Ye,KeyUse:()=>D,RsaSize:()=>ze,SymmAlg:()=>ne,SymmKeyLength:()=>ke});var Z;(function(t){t.ECC="ecc",t.RSA="rsa"})(Z||(Z={}));var Fe;(function(a){a.P_256="P-256",a.P_384="P-384",a.P_521="P-521"})(Fe||(Fe={}));var ze;(function(a){a[a.B1024=1024]="B1024",a[a.B2048=2048]="B2048",a[a.B4096=4096]="B4096"})(ze||(ze={}));var ne;(function(a){a.AES_CTR="AES-CTR",a.AES_CBC="AES-CBC",a.AES_GCM="AES-GCM"})(ne||(ne={}));var ke;(function(a){a[a.B128=128]="B128",a[a.B192=192]="B192",a[a.B256=256]="B256"})(ke||(ke={}));var Ye;(function(u){u.SHA_1="SHA-1",u.SHA_256="SHA-256",u.SHA_384="SHA-384",u.SHA_512="SHA-512"})(Ye||(Ye={}));var we;(function(t){t[t.B8=8]="B8",t[t.B16=16]="B16"})(we||(we={}));var D;(function(t){t.Exchange="exchange",t.Write="write"})(D||(D={}));var Nt=new Error("Key does not exist. Make sure you properly instantiated the keystore."),Qo=new Error("Retrieved a symmetric key when an asymmetric keypair was expected. Please use a different key name."),qo=new Error("Retrieved an asymmetric keypair when an symmetric key was expected. Please use a different key name."),Lt=new Error("ECC is not enabled for this browser. Please use RSA instead."),Jo=new Error("Cryptosystem not supported. Please use ECC or RSA"),Zo=new Error("Invalid key use. Please use 'exchange' or 'write");function He(n){if(!n||n===null)throw Nt;if(n.privateKey===void 0)throw Qo;return n}function Rt(n){if(!n||n===null)throw Nt;if(n.privateKey!==void 0||n.algorithm===void 0)throw qo;return n}function jt(n){Ut(n,[Z.ECC,Z.RSA],Jo)}function Ie(n){Ut(n,[D.Exchange,D.Write],Zo)}function Ut(n,e,t){if(!e.some(u=>u===n))throw t}function Mt(n){return se.default.createInstance({name:n})}async function Ot(n,e,t=se.default){if(await jr(n,t))return;let a=await e();await Lr(n,a,t)}async function Lr(n,e,t=se.default){return t.setItem(n,e)}async function Ft(n,e=se.default){return Rr(n,He,e)}async function zt(n,e=se.default){return Rr(n,Rt,e)}async function Rr(n,e,t=se.default){let a=await t.getItem(n);return a===null?null:e(a)}async function jr(n,e=se.default){return await e.getItem(n)!==null}async function kt(n,e=se.default){return e.removeItem(n)}async function Ur(n){return n.dropInstance()}async function Yt(n){return n?Ur(n):se.default.clear()}var H={createStore:Mt,createIfDoesNotExist:Ot,put:Lr,getKeypair:Ft,getKey:zt,exists:jr,rm:kt,dropStore:Ur,clear:Yt};var ei=globalThis||window||self,U=ei.crypto;var ot={};W(ot,{arrBufToBase64:()=>mn,arrBufToStr:()=>yn,base64ToArrBuf:()=>rt,default:()=>K,joinBufs:()=>gn,normalizeBase64ToBuf:()=>Ee,normalizeToBuf:()=>Qe,normalizeUnicodeToBuf:()=>ye,normalizeUtf16ToBuf:()=>nt,normalizeUtf8ToBuf:()=>tt,publicExponent:()=>dn,randomBuf:()=>hn,strToArrBuf:()=>pr,structuralClone:()=>vn});var Or={};W(Or,{identity:()=>ai});function ri(n,e){if(n.length>=255)throw new TypeError("Alphabet too long");for(var t=new Uint8Array(256),a=0;a<t.length;a++)t[a]=255;for(var u=0;u<n.length;u++){var p=n.charAt(u),b=p.charCodeAt(0);if(t[b]!==255)throw new TypeError(p+" is ambiguous");t[b]=u}var x=n.length,E=n.charAt(0),O=Math.log(x)/Math.log(256),N=Math.log(256)/Math.log(x);function V(_){if(_ instanceof Uint8Array||(ArrayBuffer.isView(_)?_=new Uint8Array(_.buffer,_.byteOffset,_.byteLength):Array.isArray(_)&&(_=Uint8Array.from(_))),!(_ instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(_.length===0)return"";for(var T=0,G=0,I=0,k=_.length;I!==k&&_[I]===0;)I++,T++;for(var R=(k-I)*N+1>>>0,q=new Uint8Array(R);I!==k;){for(var $=_[I],g=0,C=R-1;($!==0||g<G)&&C!==-1;C--,g++)$+=256*q[C]>>>0,q[C]=$%x>>>0,$=$/x>>>0;if($!==0)throw new Error("Non-zero carry");G=g,I++}for(var S=R-G;S!==R&&q[S]===0;)S++;for(var B=E.repeat(T);S<R;++S)B+=n.charAt(q[S]);return B}function v(_){if(typeof _!="string")throw new TypeError("Expected String");if(_.length===0)return new Uint8Array;var T=0;if(_[T]!==" "){for(var G=0,I=0;_[T]===E;)G++,T++;for(var k=(_.length-T)*O+1>>>0,R=new Uint8Array(k);_[T];){var q=t[_.charCodeAt(T)];if(q===255)return;for(var $=0,g=k-1;(q!==0||$<I)&&g!==-1;g--,$++)q+=x*R[g]>>>0,R[g]=q%256>>>0,q=q/256>>>0;if(q!==0)throw new Error("Non-zero carry");I=$,T++}if(_[T]!==" "){for(var C=k-I;C!==k&&R[C]===0;)C++;for(var S=new Uint8Array(G+(k-C)),B=G;C!==k;)S[B++]=R[C++];return S}}}function A(_){var T=v(_);if(T)return T;throw new Error(`Non-${e} character`)}return{encode:V,decodeUnsafe:v,decode:A}}var ti=ri,ni=ti,Ht=ni;var Aa=new Uint8Array(0);var Gt=(n,e)=>{if(n===e)return!0;if(n.byteLength!==e.byteLength)return!1;for(let t=0;t<n.byteLength;t++)if(n[t]!==e[t])return!1;return!0},pe=n=>{if(n instanceof Uint8Array&&n.constructor.name==="Uint8Array")return n;if(n instanceof ArrayBuffer)return new Uint8Array(n);if(ArrayBuffer.isView(n))return new Uint8Array(n.buffer,n.byteOffset,n.byteLength);throw new Error("Unknown type, must be binary type")};var Wt=n=>new TextEncoder().encode(n),Vt=n=>new TextDecoder().decode(n);var Xt=class{constructor(e,t,a){this.name=e,this.prefix=t,this.baseEncode=a}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}},Qt=class{constructor(e,t,a){this.name=e,this.prefix=t,this.baseDecode=a}decode(e){if(typeof e=="string")switch(e[0]){case this.prefix:return this.baseDecode(e.slice(1));default:throw Error(`Unable to decode multibase string ${JSON.stringify(e)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`)}else throw Error("Can only multibase decode strings")}or(e){let t={[this.prefix]:this,...e.decoders||{[e.prefix]:e}};return new ar(t)}},ar=class{constructor(e){this.decoders=e}or(e){let t=e.decoders||{[e.prefix]:e};return new ar({...this.decoders,...t})}decode(e){let t=e[0],a=this.decoders[t];if(a)return a.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}},qt=class{constructor(e,t,a,u){this.name=e,this.prefix=t,this.baseEncode=a,this.baseDecode=u,this.encoder=new Xt(e,t,a),this.decoder=new Qt(e,t,u)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}},sr=({name:n,prefix:e,encode:t,decode:a})=>new qt(n,e,t,a),xe=({prefix:n,name:e,alphabet:t})=>{let{encode:a,decode:u}=Ht(t,e);return sr({prefix:n,name:e,encode:a,decode:p=>pe(u(p))})},oi=(n,e,t,a)=>{let u={};for(let N=0;N<e.length;++N)u[e[N]]=N;let p=n.length;for(;n[p-1]==="=";)--p;let b=new Uint8Array(p*t/8|0),x=0,E=0,O=0;for(let N=0;N<p;++N){let V=u[n[N]];if(V===void 0)throw new SyntaxError(`Non-${a} character`);E=E<<t|V,x+=t,x>=8&&(x-=8,b[O++]=255&E>>x)}if(x>=t||255&E<<8-x)throw new SyntaxError("Unexpected end of data");return b},ii=(n,e,t)=>{let a=e[e.length-1]==="=",u=(1<<t)-1,p="",b=0,x=0;for(let E=0;E<n.length;++E)for(x=x<<8|n[E],b+=8;b>t;)b-=t,p+=e[u&x>>b];if(b&&(p+=e[u&x<<t-b]),a)for(;p.length*t&7;)p+="=";return p},F=({name:n,prefix:e,bitsPerChar:t,alphabet:a})=>sr({prefix:e,name:n,encode(u){return ii(u,a,t)},decode(u){return oi(u,a,t,n)}});var ai=sr({prefix:"\0",name:"identity",encode:n=>Vt(n),decode:n=>Wt(n)});var Fr={};W(Fr,{base2:()=>si});var si=F({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var zr={};W(zr,{base8:()=>ci});var ci=F({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var kr={};W(kr,{base10:()=>fi});var fi=xe({prefix:"9",name:"base10",alphabet:"0123456789"});var Yr={};W(Yr,{base16:()=>ui,base16upper:()=>li});var ui=F({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),li=F({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var Hr={};W(Hr,{base32:()=>De,base32hex:()=>di,base32hexpad:()=>gi,base32hexpadupper:()=>vi,base32hexupper:()=>hi,base32pad:()=>yi,base32padupper:()=>mi,base32upper:()=>pi,base32z:()=>bi});var De=F({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),pi=F({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),yi=F({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),mi=F({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),di=F({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),hi=F({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),gi=F({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),vi=F({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),bi=F({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Gr={};W(Gr,{base36:()=>wi,base36upper:()=>xi});var wi=xe({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),xi=xe({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var Wr={};W(Wr,{base58btc:()=>ce,base58flickr:()=>Ei});var ce=xe({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),Ei=xe({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Vr={};W(Vr,{base64:()=>Si,base64pad:()=>_i,base64url:()=>Ai,base64urlpad:()=>Ci});var Si=F({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),_i=F({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),Ai=F({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),Ci=F({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var Xr={};W(Xr,{sha256:()=>Gi,sha512:()=>Wi});var Pi=Zt,Jt=128,Ki=127,Ti=~Ki,Bi=Math.pow(2,31);function Zt(n,e,t){e=e||[],t=t||0;for(var a=t;n>=Bi;)e[t++]=n&255|Jt,n/=128;for(;n&Ti;)e[t++]=n&255|Jt,n>>>=7;return e[t]=n|0,Zt.bytes=t-a+1,e}var Ii=$r,Di=128,en=127;function $r(n,e){var t=0,e=e||0,a=0,u=e,p,b=n.length;do{if(u>=b)throw $r.bytes=0,new RangeError("Could not decode varint");p=n[u++],t+=a<28?(p&en)<<a:(p&en)*Math.pow(2,a),a+=7}while(p>=Di);return $r.bytes=u-e,t}var Ni=Math.pow(2,7),Li=Math.pow(2,14),Ri=Math.pow(2,21),ji=Math.pow(2,28),Ui=Math.pow(2,35),Mi=Math.pow(2,42),Oi=Math.pow(2,49),Fi=Math.pow(2,56),zi=Math.pow(2,63),ki=function(n){return n<Ni?1:n<Li?2:n<Ri?3:n<ji?4:n<Ui?5:n<Mi?6:n<Oi?7:n<Fi?8:n<zi?9:10},Yi={encode:Pi,decode:Ii,encodingLength:ki},Hi=Yi,Ge=Hi;var We=n=>[Ge.decode(n),Ge.decode.bytes],Ne=(n,e,t=0)=>(Ge.encode(n,e,t),e),Le=n=>Ge.encodingLength(n);var cr=(n,e)=>{let t=e.byteLength,a=Le(n),u=a+Le(t),p=new Uint8Array(u+t);return Ne(n,p,0),Ne(t,p,a),p.set(e,u),new Ve(n,t,e,p)},tn=n=>{let e=pe(n),[t,a]=We(e),[u,p]=We(e.subarray(a)),b=e.subarray(a+p);if(b.byteLength!==u)throw new Error("Incorrect length");return new Ve(t,u,b,e)},nn=(n,e)=>n===e?!0:n.code===e.code&&n.size===e.size&&Gt(n.bytes,e.bytes),Ve=class{constructor(e,t,a,u){this.code=e,this.size=t,this.digest=a,this.bytes=u}};var $e=({name:n,code:e,encode:t})=>new an(n,e,t),an=class{constructor(e,t,a){this.name=e,this.code=t,this.encode=a}async digest(e){if(e instanceof Uint8Array){let t=await this.encode(e);return cr(this.code,t)}else throw Error("Unknown type, must be binary type")}};var cn=n=>async e=>new Uint8Array(await crypto.subtle.digest(n,e)),Gi=$e({name:"sha2-256",code:18,encode:cn("SHA-256")}),Wi=$e({name:"sha2-512",code:19,encode:cn("SHA-512")});var Qr={};W(Qr,{identity:()=>Vi});var Vi=$e({name:"identity",code:0,encode:n=>pe(n)});var $a=new TextEncoder,Xa=new TextDecoder;var X=class{constructor(e,t,a,u){this.code=t,this.version=e,this.multihash=a,this.bytes=u,this.byteOffset=u.byteOffset,this.byteLength=u.byteLength,this.asCID=this,this._baseCache=new Map,Object.defineProperties(this,{byteOffset:ur,byteLength:ur,code:fr,version:fr,multihash:fr,bytes:fr,_baseCache:ur,asCID:ur})}toV0(){switch(this.version){case 0:return this;default:{let{code:e,multihash:t}=this;if(e!==Xe)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(t.code!==Zi)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return X.createV0(t)}}}toV1(){switch(this.version){case 0:{let{code:e,digest:t}=this.multihash,a=cr(e,t);return X.createV1(this.code,a)}case 1:return this;default:throw Error(`Can not convert CID version ${this.version} to version 0. This is a bug please report`)}}equals(e){return e&&this.code===e.code&&this.version===e.version&&nn(this.multihash,e.multihash)}toString(e){let{bytes:t,version:a,_baseCache:u}=this;switch(a){case 0:return qi(t,u,e||ce.encoder);default:return Ji(t,u,e||De.encoder)}}toJSON(){return{code:this.code,version:this.version,hash:this.multihash.bytes}}get[Symbol.toStringTag](){return"CID"}[Symbol.for("nodejs.util.inspect.custom")](){return"CID("+this.toString()+")"}static isCID(e){return ra(/^0\.0/,ta),!!(e&&(e[un]||e.asCID===e))}get toBaseEncodedString(){throw new Error("Deprecated, use .toString()")}get codec(){throw new Error('"codec" property is deprecated, use integer "code" property instead')}get buffer(){throw new Error("Deprecated .buffer property, use .bytes to get Uint8Array instead")}get multibaseName(){throw new Error('"multibaseName" property is deprecated')}get prefix(){throw new Error('"prefix" property is deprecated')}static asCID(e){if(e instanceof X)return e;if(e!=null&&e.asCID===e){let{version:t,code:a,multihash:u,bytes:p}=e;return new X(t,a,u,p||fn(t,a,u.bytes))}else if(e!=null&&e[un]===!0){let{version:t,multihash:a,code:u}=e,p=tn(a);return X.create(t,u,p)}else return null}static create(e,t,a){if(typeof t!="number")throw new Error("String codecs are no longer supported");switch(e){case 0:{if(t!==Xe)throw new Error(`Version 0 CID must use dag-pb (code: ${Xe}) block encoding`);return new X(e,t,a,a.bytes)}case 1:{let u=fn(e,t,a.bytes);return new X(e,t,a,u)}default:throw new Error("Invalid version")}}static createV0(e){return X.create(0,Xe,e)}static createV1(e,t){return X.create(1,e,t)}static decode(e){let[t,a]=X.decodeFirst(e);if(a.length)throw new Error("Incorrect length");return t}static decodeFirst(e){let t=X.inspectBytes(e),a=t.size-t.multihashSize,u=pe(e.subarray(a,a+t.multihashSize));if(u.byteLength!==t.multihashSize)throw new Error("Incorrect length");let p=u.subarray(t.multihashSize-t.digestSize),b=new Ve(t.multihashCode,t.digestSize,p,u);return[t.version===0?X.createV0(b):X.createV1(t.codec,b),e.subarray(t.size)]}static inspectBytes(e){let t=0,a=()=>{let[V,v]=We(e.subarray(t));return t+=v,V},u=a(),p=Xe;if(u===18?(u=0,t=0):u===1&&(p=a()),u!==0&&u!==1)throw new RangeError(`Invalid CID version ${u}`);let b=t,x=a(),E=a(),O=t+E,N=O-b;return{version:u,codec:p,multihashCode:x,digestSize:E,multihashSize:N,size:O}}static parse(e,t){let[a,u]=Qi(e,t),p=X.decode(u);return p._baseCache.set(a,e),p}},Qi=(n,e)=>{switch(n[0]){case"Q":{let t=e||ce;return[ce.prefix,t.decode(`${ce.prefix}${n}`)]}case ce.prefix:{let t=e||ce;return[ce.prefix,t.decode(n)]}case De.prefix:{let t=e||De;return[De.prefix,t.decode(n)]}default:{if(e==null)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[n[0],e.decode(n)]}}},qi=(n,e,t)=>{let{prefix:a}=t;if(a!==ce.prefix)throw Error(`Cannot string encode V0 in ${t.name} encoding`);let u=e.get(a);if(u==null){let p=t.encode(n).slice(1);return e.set(a,p),p}else return u},Ji=(n,e,t)=>{let{prefix:a}=t,u=e.get(a);if(u==null){let p=t.encode(n);return e.set(a,p),p}else return u},Xe=112,Zi=18,fn=(n,e,t)=>{let a=Le(n),u=a+Le(e),p=new Uint8Array(u+t.byteLength);return Ne(n,p,0),Ne(e,p,a),p.set(t,u),p},un=Symbol.for("@ipld/js-cid/CID"),fr={writable:!1,configurable:!1,enumerable:!0},ur={writable:!1,enumerable:!1,configurable:!1},ea="0.0.0-dev",ra=(n,e)=>{if(n.test(ea))console.warn(e);else throw new Error(e)},ta=`CID.isCID(v) is deprecated and will be removed in the next major release. | ||
var keystore=(()=>{var Vo=Object.create;var ir=Object.defineProperty;var $o=Object.getOwnPropertyDescriptor;var Xo=Object.getOwnPropertyNames;var Qo=Object.getPrototypeOf,qo=Object.prototype.hasOwnProperty;var Lt=n=>ir(n,"__esModule",{value:!0});var Fe=typeof require!="undefined"?require:n=>{throw new Error('Dynamic require of "'+n+'" is not supported')};var Jo=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports),W=(n,e)=>{Lt(n);for(var t in e)ir(n,t,{get:e[t],enumerable:!0})},Zo=(n,e,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of Xo(e))!qo.call(n,a)&&a!=="default"&&ir(n,a,{get:()=>e[a],enumerable:!(t=$o(e,a))||t.enumerable});return n},ei=n=>Zo(Lt(ir(n!=null?Vo(Qo(n)):{},"default",n&&n.__esModule&&"default"in n?{get:()=>n.default,enumerable:!0}:{value:n,enumerable:!0})),n);var jt=Jo((Rt,Dr)=>{(function(n){if(typeof Rt=="object"&&typeof Dr!="undefined")Dr.exports=n();else if(typeof define=="function"&&define.amd)define([],n);else{var e;typeof window!="undefined"?e=window:typeof global!="undefined"?e=global:typeof self!="undefined"?e=self:e=this,e.localforage=n()}})(function(){var n,e,t;return function a(u,p,b){function x(N,V){if(!p[N]){if(!u[N]){var v=typeof Fe=="function"&&Fe;if(!V&&v)return v(N,!0);if(E)return E(N,!0);var _=new Error("Cannot find module '"+N+"'");throw _.code="MODULE_NOT_FOUND",_}var A=p[N]={exports:{}};u[N][0].call(A.exports,function(T){var G=u[N][1][T];return x(G||T)},A,A.exports,a,u,p,b)}return p[N].exports}for(var E=typeof Fe=="function"&&Fe,O=0;O<b.length;O++)x(b[O]);return x}({1:[function(a,u,p){(function(b){"use strict";var x=b.MutationObserver||b.WebKitMutationObserver,E;if(x){var O=0,N=new x(T),V=b.document.createTextNode("");N.observe(V,{characterData:!0}),E=function(){V.data=O=++O%2}}else if(!b.setImmediate&&typeof b.MessageChannel!="undefined"){var v=new b.MessageChannel;v.port1.onmessage=T,E=function(){v.port2.postMessage(0)}}else"document"in b&&"onreadystatechange"in b.document.createElement("script")?E=function(){var I=b.document.createElement("script");I.onreadystatechange=function(){T(),I.onreadystatechange=null,I.parentNode.removeChild(I),I=null},b.document.documentElement.appendChild(I)}:E=function(){setTimeout(T,0)};var _,A=[];function T(){_=!0;for(var I,k,R=A.length;R;){for(k=A,A=[],I=-1;++I<R;)k[I]();R=A.length}_=!1}u.exports=G;function G(I){A.push(I)===1&&!_&&E()}}).call(this,typeof global!="undefined"?global:typeof self!="undefined"?self:typeof window!="undefined"?window:{})},{}],2:[function(a,u,p){"use strict";var b=a(1);function x(){}var E={},O=["REJECTED"],N=["FULFILLED"],V=["PENDING"];u.exports=v;function v(g){if(typeof g!="function")throw new TypeError("resolver must be a function");this.state=V,this.queue=[],this.outcome=void 0,g!==x&&G(this,g)}v.prototype.catch=function(g){return this.then(null,g)},v.prototype.then=function(g,C){if(typeof g!="function"&&this.state===N||typeof C!="function"&&this.state===O)return this;var S=new this.constructor(x);if(this.state!==V){var B=this.state===N?g:C;A(S,B,this.outcome)}else this.queue.push(new _(S,g,C));return S};function _(g,C,S){this.promise=g,typeof C=="function"&&(this.onFulfilled=C,this.callFulfilled=this.otherCallFulfilled),typeof S=="function"&&(this.onRejected=S,this.callRejected=this.otherCallRejected)}_.prototype.callFulfilled=function(g){E.resolve(this.promise,g)},_.prototype.otherCallFulfilled=function(g){A(this.promise,this.onFulfilled,g)},_.prototype.callRejected=function(g){E.reject(this.promise,g)},_.prototype.otherCallRejected=function(g){A(this.promise,this.onRejected,g)};function A(g,C,S){b(function(){var B;try{B=C(S)}catch(Q){return E.reject(g,Q)}B===g?E.reject(g,new TypeError("Cannot resolve promise with itself")):E.resolve(g,B)})}E.resolve=function(g,C){var S=I(T,C);if(S.status==="error")return E.reject(g,S.value);var B=S.value;if(B)G(g,B);else{g.state=N,g.outcome=C;for(var Q=-1,J=g.queue.length;++Q<J;)g.queue[Q].callFulfilled(C)}return g},E.reject=function(g,C){g.state=O,g.outcome=C;for(var S=-1,B=g.queue.length;++S<B;)g.queue[S].callRejected(C);return g};function T(g){var C=g&&g.then;if(g&&(typeof g=="object"||typeof g=="function")&&typeof C=="function")return function(){C.apply(g,arguments)}}function G(g,C){var S=!1;function B(re){S||(S=!0,E.reject(g,re))}function Q(re){S||(S=!0,E.resolve(g,re))}function J(){C(Q,B)}var ee=I(J);ee.status==="error"&&B(ee.value)}function I(g,C){var S={};try{S.value=g(C),S.status="success"}catch(B){S.status="error",S.value=B}return S}v.resolve=k;function k(g){return g instanceof this?g:E.resolve(new this(x),g)}v.reject=R;function R(g){var C=new this(x);return E.reject(C,g)}v.all=q;function q(g){var C=this;if(Object.prototype.toString.call(g)!=="[object Array]")return this.reject(new TypeError("must be an array"));var S=g.length,B=!1;if(!S)return this.resolve([]);for(var Q=new Array(S),J=0,ee=-1,re=new this(x);++ee<S;)ue(g[ee],ee);return re;function ue(Ue,tr){C.resolve(Ue).then(Er,function(Be){B||(B=!0,E.reject(re,Be))});function Er(Be){Q[tr]=Be,++J===S&&!B&&(B=!0,E.resolve(re,Q))}}}v.race=$;function $(g){var C=this;if(Object.prototype.toString.call(g)!=="[object Array]")return this.reject(new TypeError("must be an array"));var S=g.length,B=!1;if(!S)return this.resolve([]);for(var Q=-1,J=new this(x);++Q<S;)ee(g[Q]);return J;function ee(re){C.resolve(re).then(function(ue){B||(B=!0,E.resolve(J,ue))},function(ue){B||(B=!0,E.reject(J,ue))})}}},{"1":1}],3:[function(a,u,p){(function(b){"use strict";typeof b.Promise!="function"&&(b.Promise=a(2))}).call(this,typeof global!="undefined"?global:typeof self!="undefined"?self:typeof window!="undefined"?window:{})},{"2":2}],4:[function(a,u,p){"use strict";var b=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(r){return typeof r}:function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r};function x(r,i){if(!(r instanceof i))throw new TypeError("Cannot call a class as a function")}function E(){try{if(typeof indexedDB!="undefined")return indexedDB;if(typeof webkitIndexedDB!="undefined")return webkitIndexedDB;if(typeof mozIndexedDB!="undefined")return mozIndexedDB;if(typeof OIndexedDB!="undefined")return OIndexedDB;if(typeof msIndexedDB!="undefined")return msIndexedDB}catch(r){return}}var O=E();function N(){try{if(!O||!O.open)return!1;var r=typeof openDatabase!="undefined"&&/(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent)&&!/Chrome/.test(navigator.userAgent)&&!/BlackBerry/.test(navigator.platform),i=typeof fetch=="function"&&fetch.toString().indexOf("[native code")!==-1;return(!r||i)&&typeof indexedDB!="undefined"&&typeof IDBKeyRange!="undefined"}catch(o){return!1}}function V(r,i){r=r||[],i=i||{};try{return new Blob(r,i)}catch(s){if(s.name!=="TypeError")throw s;for(var o=typeof BlobBuilder!="undefined"?BlobBuilder:typeof MSBlobBuilder!="undefined"?MSBlobBuilder:typeof MozBlobBuilder!="undefined"?MozBlobBuilder:WebKitBlobBuilder,c=new o,f=0;f<r.length;f+=1)c.append(r[f]);return c.getBlob(i.type)}}typeof Promise=="undefined"&&a(3);var v=Promise;function _(r,i){i&&r.then(function(o){i(null,o)},function(o){i(o)})}function A(r,i,o){typeof i=="function"&&r.then(i),typeof o=="function"&&r.catch(o)}function T(r){return typeof r!="string"&&(console.warn(r+" used as a key, but it is not a string."),r=String(r)),r}function G(){if(arguments.length&&typeof arguments[arguments.length-1]=="function")return arguments[arguments.length-1]}var I="local-forage-detect-blob-support",k=void 0,R={},q=Object.prototype.toString,$="readonly",g="readwrite";function C(r){for(var i=r.length,o=new ArrayBuffer(i),c=new Uint8Array(o),f=0;f<i;f++)c[f]=r.charCodeAt(f);return o}function S(r){return new v(function(i){var o=r.transaction(I,g),c=V([""]);o.objectStore(I).put(c,"key"),o.onabort=function(f){f.preventDefault(),f.stopPropagation(),i(!1)},o.oncomplete=function(){var f=navigator.userAgent.match(/Chrome\/(\d+)/),s=navigator.userAgent.match(/Edge\//);i(s||!f||parseInt(f[1],10)>=43)}}).catch(function(){return!1})}function B(r){return typeof k=="boolean"?v.resolve(k):S(r).then(function(i){return k=i,k})}function Q(r){var i=R[r.name],o={};o.promise=new v(function(c,f){o.resolve=c,o.reject=f}),i.deferredOperations.push(o),i.dbReady?i.dbReady=i.dbReady.then(function(){return o.promise}):i.dbReady=o.promise}function J(r){var i=R[r.name],o=i.deferredOperations.pop();if(o)return o.resolve(),o.promise}function ee(r,i){var o=R[r.name],c=o.deferredOperations.pop();if(c)return c.reject(i),c.promise}function re(r,i){return new v(function(o,c){if(R[r.name]=R[r.name]||mt(),r.db)if(i)Q(r),r.db.close();else return o(r.db);var f=[r.name];i&&f.push(r.version);var s=O.open.apply(O,f);i&&(s.onupgradeneeded=function(l){var y=s.result;try{y.createObjectStore(r.storeName),l.oldVersion<=1&&y.createObjectStore(I)}catch(m){if(m.name==="ConstraintError")console.warn('The database "'+r.name+'" has been upgraded from version '+l.oldVersion+" to version "+l.newVersion+', but the storage "'+r.storeName+'" already exists.');else throw m}}),s.onerror=function(l){l.preventDefault(),c(s.error)},s.onsuccess=function(){var l=s.result;l.onversionchange=function(y){y.target.close()},o(l),J(r)}})}function ue(r){return re(r,!1)}function Ue(r){return re(r,!0)}function tr(r,i){if(!r.db)return!0;var o=!r.db.objectStoreNames.contains(r.storeName),c=r.version<r.db.version,f=r.version>r.db.version;if(c&&(r.version!==i&&console.warn('The database "'+r.name+`" can't be downgraded from version `+r.db.version+" to version "+r.version+"."),r.version=r.db.version),f||o){if(o){var s=r.db.version+1;s>r.version&&(r.version=s)}return!0}return!1}function Er(r){return new v(function(i,o){var c=new FileReader;c.onerror=o,c.onloadend=function(f){var s=btoa(f.target.result||"");i({__local_forage_encoded_blob:!0,data:s,type:r.type})},c.readAsBinaryString(r)})}function Be(r){var i=C(atob(r.data));return V([i],{type:r.type})}function yt(r){return r&&r.__local_forage_encoded_blob}function Vn(r){var i=this,o=i._initReady().then(function(){var c=R[i._dbInfo.name];if(c&&c.dbReady)return c.dbReady});return A(o,r,r),o}function $n(r){Q(r);for(var i=R[r.name],o=i.forages,c=0;c<o.length;c++){var f=o[c];f._dbInfo.db&&(f._dbInfo.db.close(),f._dbInfo.db=null)}return r.db=null,ue(r).then(function(s){return r.db=s,tr(r)?Ue(r):s}).then(function(s){r.db=i.db=s;for(var l=0;l<o.length;l++)o[l]._dbInfo.db=s}).catch(function(s){throw ee(r,s),s})}function le(r,i,o,c){c===void 0&&(c=1);try{var f=r.db.transaction(r.storeName,i);o(null,f)}catch(s){if(c>0&&(!r.db||s.name==="InvalidStateError"||s.name==="NotFoundError"))return v.resolve().then(function(){if(!r.db||s.name==="NotFoundError"&&!r.db.objectStoreNames.contains(r.storeName)&&r.version<=r.db.version)return r.db&&(r.version=r.db.version+1),Ue(r)}).then(function(){return $n(r).then(function(){le(r,i,o,c-1)})}).catch(o);o(s)}}function mt(){return{forages:[],db:null,dbReady:null,deferredOperations:[]}}function Xn(r){var i=this,o={db:null};if(r)for(var c in r)o[c]=r[c];var f=R[o.name];f||(f=mt(),R[o.name]=f),f.forages.push(i),i._initReady||(i._initReady=i.ready,i.ready=Vn);var s=[];function l(){return v.resolve()}for(var y=0;y<f.forages.length;y++){var m=f.forages[y];m!==i&&s.push(m._initReady().catch(l))}var d=f.forages.slice(0);return v.all(s).then(function(){return o.db=f.db,ue(o)}).then(function(h){return o.db=h,tr(o,i._defaultConfig.version)?Ue(o):h}).then(function(h){o.db=f.db=h,i._dbInfo=o;for(var w=0;w<d.length;w++){var P=d[w];P!==i&&(P._dbInfo.db=o.db,P._dbInfo.version=o.version)}})}function Qn(r,i){var o=this;r=T(r);var c=new v(function(f,s){o.ready().then(function(){le(o._dbInfo,$,function(l,y){if(l)return s(l);try{var m=y.objectStore(o._dbInfo.storeName),d=m.get(r);d.onsuccess=function(){var h=d.result;h===void 0&&(h=null),yt(h)&&(h=Be(h)),f(h)},d.onerror=function(){s(d.error)}}catch(h){s(h)}})}).catch(s)});return _(c,i),c}function qn(r,i){var o=this,c=new v(function(f,s){o.ready().then(function(){le(o._dbInfo,$,function(l,y){if(l)return s(l);try{var m=y.objectStore(o._dbInfo.storeName),d=m.openCursor(),h=1;d.onsuccess=function(){var w=d.result;if(w){var P=w.value;yt(P)&&(P=Be(P));var L=r(P,w.key,h++);L!==void 0?f(L):w.continue()}else f()},d.onerror=function(){s(d.error)}}catch(w){s(w)}})}).catch(s)});return _(c,i),c}function Jn(r,i,o){var c=this;r=T(r);var f=new v(function(s,l){var y;c.ready().then(function(){return y=c._dbInfo,q.call(i)==="[object Blob]"?B(y.db).then(function(m){return m?i:Er(i)}):i}).then(function(m){le(c._dbInfo,g,function(d,h){if(d)return l(d);try{var w=h.objectStore(c._dbInfo.storeName);m===null&&(m=void 0);var P=w.put(m,r);h.oncomplete=function(){m===void 0&&(m=null),s(m)},h.onabort=h.onerror=function(){var L=P.error?P.error:P.transaction.error;l(L)}}catch(L){l(L)}})}).catch(l)});return _(f,o),f}function Zn(r,i){var o=this;r=T(r);var c=new v(function(f,s){o.ready().then(function(){le(o._dbInfo,g,function(l,y){if(l)return s(l);try{var m=y.objectStore(o._dbInfo.storeName),d=m.delete(r);y.oncomplete=function(){f()},y.onerror=function(){s(d.error)},y.onabort=function(){var h=d.error?d.error:d.transaction.error;s(h)}}catch(h){s(h)}})}).catch(s)});return _(c,i),c}function eo(r){var i=this,o=new v(function(c,f){i.ready().then(function(){le(i._dbInfo,g,function(s,l){if(s)return f(s);try{var y=l.objectStore(i._dbInfo.storeName),m=y.clear();l.oncomplete=function(){c()},l.onabort=l.onerror=function(){var d=m.error?m.error:m.transaction.error;f(d)}}catch(d){f(d)}})}).catch(f)});return _(o,r),o}function ro(r){var i=this,o=new v(function(c,f){i.ready().then(function(){le(i._dbInfo,$,function(s,l){if(s)return f(s);try{var y=l.objectStore(i._dbInfo.storeName),m=y.count();m.onsuccess=function(){c(m.result)},m.onerror=function(){f(m.error)}}catch(d){f(d)}})}).catch(f)});return _(o,r),o}function to(r,i){var o=this,c=new v(function(f,s){if(r<0){f(null);return}o.ready().then(function(){le(o._dbInfo,$,function(l,y){if(l)return s(l);try{var m=y.objectStore(o._dbInfo.storeName),d=!1,h=m.openKeyCursor();h.onsuccess=function(){var w=h.result;if(!w){f(null);return}r===0||d?f(w.key):(d=!0,w.advance(r))},h.onerror=function(){s(h.error)}}catch(w){s(w)}})}).catch(s)});return _(c,i),c}function no(r){var i=this,o=new v(function(c,f){i.ready().then(function(){le(i._dbInfo,$,function(s,l){if(s)return f(s);try{var y=l.objectStore(i._dbInfo.storeName),m=y.openKeyCursor(),d=[];m.onsuccess=function(){var h=m.result;if(!h){c(d);return}d.push(h.key),h.continue()},m.onerror=function(){f(m.error)}}catch(h){f(h)}})}).catch(f)});return _(o,r),o}function oo(r,i){i=G.apply(this,arguments);var o=this.config();r=typeof r!="function"&&r||{},r.name||(r.name=r.name||o.name,r.storeName=r.storeName||o.storeName);var c=this,f;if(!r.name)f=v.reject("Invalid arguments");else{var s=r.name===o.name&&c._dbInfo.db,l=s?v.resolve(c._dbInfo.db):ue(r).then(function(y){var m=R[r.name],d=m.forages;m.db=y;for(var h=0;h<d.length;h++)d[h]._dbInfo.db=y;return y});r.storeName?f=l.then(function(y){if(!!y.objectStoreNames.contains(r.storeName)){var m=y.version+1;Q(r);var d=R[r.name],h=d.forages;y.close();for(var w=0;w<h.length;w++){var P=h[w];P._dbInfo.db=null,P._dbInfo.version=m}var L=new v(function(j,Y){var z=O.open(r.name,m);z.onerror=function(te){var Oe=z.result;Oe.close(),Y(te)},z.onupgradeneeded=function(){var te=z.result;te.deleteObjectStore(r.storeName)},z.onsuccess=function(){var te=z.result;te.close(),j(te)}});return L.then(function(j){d.db=j;for(var Y=0;Y<h.length;Y++){var z=h[Y];z._dbInfo.db=j,J(z._dbInfo)}}).catch(function(j){throw(ee(r,j)||v.resolve()).catch(function(){}),j})}}):f=l.then(function(y){Q(r);var m=R[r.name],d=m.forages;y.close();for(var h=0;h<d.length;h++){var w=d[h];w._dbInfo.db=null}var P=new v(function(L,j){var Y=O.deleteDatabase(r.name);Y.onerror=function(){var z=Y.result;z&&z.close(),j(Y.error)},Y.onblocked=function(){console.warn('dropInstance blocked for database "'+r.name+'" until all open connections are closed')},Y.onsuccess=function(){var z=Y.result;z&&z.close(),L(z)}});return P.then(function(L){m.db=L;for(var j=0;j<d.length;j++){var Y=d[j];J(Y._dbInfo)}}).catch(function(L){throw(ee(r,L)||v.resolve()).catch(function(){}),L})})}return _(f,i),f}var io={_driver:"asyncStorage",_initStorage:Xn,_support:N(),iterate:qn,getItem:Qn,setItem:Jn,removeItem:Zn,clear:eo,length:ro,key:to,keys:no,dropInstance:oo};function ao(){return typeof openDatabase=="function"}var ve="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",so="~~local_forage_type~",dt=/^~~local_forage_type~([^~]+)~/,nr="__lfsc__:",Sr=nr.length,Ar="arbf",_r="blob",ht="si08",gt="ui08",vt="uic8",bt="si16",wt="si32",xt="ur16",Et="ui32",St="fl32",At="fl64",_t=Sr+Ar.length,Ct=Object.prototype.toString;function Pt(r){var i=r.length*.75,o=r.length,c,f=0,s,l,y,m;r[r.length-1]==="="&&(i--,r[r.length-2]==="="&&i--);var d=new ArrayBuffer(i),h=new Uint8Array(d);for(c=0;c<o;c+=4)s=ve.indexOf(r[c]),l=ve.indexOf(r[c+1]),y=ve.indexOf(r[c+2]),m=ve.indexOf(r[c+3]),h[f++]=s<<2|l>>4,h[f++]=(l&15)<<4|y>>2,h[f++]=(y&3)<<6|m&63;return d}function Cr(r){var i=new Uint8Array(r),o="",c;for(c=0;c<i.length;c+=3)o+=ve[i[c]>>2],o+=ve[(i[c]&3)<<4|i[c+1]>>4],o+=ve[(i[c+1]&15)<<2|i[c+2]>>6],o+=ve[i[c+2]&63];return i.length%3==2?o=o.substring(0,o.length-1)+"=":i.length%3==1&&(o=o.substring(0,o.length-2)+"=="),o}function co(r,i){var o="";if(r&&(o=Ct.call(r)),r&&(o==="[object ArrayBuffer]"||r.buffer&&Ct.call(r.buffer)==="[object ArrayBuffer]")){var c,f=nr;r instanceof ArrayBuffer?(c=r,f+=Ar):(c=r.buffer,o==="[object Int8Array]"?f+=ht:o==="[object Uint8Array]"?f+=gt:o==="[object Uint8ClampedArray]"?f+=vt:o==="[object Int16Array]"?f+=bt:o==="[object Uint16Array]"?f+=xt:o==="[object Int32Array]"?f+=wt:o==="[object Uint32Array]"?f+=Et:o==="[object Float32Array]"?f+=St:o==="[object Float64Array]"?f+=At:i(new Error("Failed to get type for BinaryArray"))),i(f+Cr(c))}else if(o==="[object Blob]"){var s=new FileReader;s.onload=function(){var l=so+r.type+"~"+Cr(this.result);i(nr+_r+l)},s.readAsArrayBuffer(r)}else try{i(JSON.stringify(r))}catch(l){console.error("Couldn't convert value into a JSON string: ",r),i(null,l)}}function fo(r){if(r.substring(0,Sr)!==nr)return JSON.parse(r);var i=r.substring(_t),o=r.substring(Sr,_t),c;if(o===_r&&dt.test(i)){var f=i.match(dt);c=f[1],i=i.substring(f[0].length)}var s=Pt(i);switch(o){case Ar:return s;case _r:return V([s],{type:c});case ht:return new Int8Array(s);case gt:return new Uint8Array(s);case vt:return new Uint8ClampedArray(s);case bt:return new Int16Array(s);case xt:return new Uint16Array(s);case wt:return new Int32Array(s);case Et:return new Uint32Array(s);case St:return new Float32Array(s);case At:return new Float64Array(s);default:throw new Error("Unkown type: "+o)}}var Pr={serialize:co,deserialize:fo,stringToBuffer:Pt,bufferToString:Cr};function Kt(r,i,o,c){r.executeSql("CREATE TABLE IF NOT EXISTS "+i.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],o,c)}function uo(r){var i=this,o={db:null};if(r)for(var c in r)o[c]=typeof r[c]!="string"?r[c].toString():r[c];var f=new v(function(s,l){try{o.db=openDatabase(o.name,String(o.version),o.description,o.size)}catch(y){return l(y)}o.db.transaction(function(y){Kt(y,o,function(){i._dbInfo=o,s()},function(m,d){l(d)})},l)});return o.serializer=Pr,f}function be(r,i,o,c,f,s){r.executeSql(o,c,f,function(l,y){y.code===y.SYNTAX_ERR?l.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?",[i.storeName],function(m,d){d.rows.length?s(m,y):Kt(m,i,function(){m.executeSql(o,c,f,s)},s)},s):s(l,y)},s)}function lo(r,i){var o=this;r=T(r);var c=new v(function(f,s){o.ready().then(function(){var l=o._dbInfo;l.db.transaction(function(y){be(y,l,"SELECT * FROM "+l.storeName+" WHERE key = ? LIMIT 1",[r],function(m,d){var h=d.rows.length?d.rows.item(0).value:null;h&&(h=l.serializer.deserialize(h)),f(h)},function(m,d){s(d)})})}).catch(s)});return _(c,i),c}function po(r,i){var o=this,c=new v(function(f,s){o.ready().then(function(){var l=o._dbInfo;l.db.transaction(function(y){be(y,l,"SELECT * FROM "+l.storeName,[],function(m,d){for(var h=d.rows,w=h.length,P=0;P<w;P++){var L=h.item(P),j=L.value;if(j&&(j=l.serializer.deserialize(j)),j=r(j,L.key,P+1),j!==void 0){f(j);return}}f()},function(m,d){s(d)})})}).catch(s)});return _(c,i),c}function Tt(r,i,o,c){var f=this;r=T(r);var s=new v(function(l,y){f.ready().then(function(){i===void 0&&(i=null);var m=i,d=f._dbInfo;d.serializer.serialize(i,function(h,w){w?y(w):d.db.transaction(function(P){be(P,d,"INSERT OR REPLACE INTO "+d.storeName+" (key, value) VALUES (?, ?)",[r,h],function(){l(m)},function(L,j){y(j)})},function(P){if(P.code===P.QUOTA_ERR){if(c>0){l(Tt.apply(f,[r,m,o,c-1]));return}y(P)}})})}).catch(y)});return _(s,o),s}function yo(r,i,o){return Tt.apply(this,[r,i,o,1])}function mo(r,i){var o=this;r=T(r);var c=new v(function(f,s){o.ready().then(function(){var l=o._dbInfo;l.db.transaction(function(y){be(y,l,"DELETE FROM "+l.storeName+" WHERE key = ?",[r],function(){f()},function(m,d){s(d)})})}).catch(s)});return _(c,i),c}function ho(r){var i=this,o=new v(function(c,f){i.ready().then(function(){var s=i._dbInfo;s.db.transaction(function(l){be(l,s,"DELETE FROM "+s.storeName,[],function(){c()},function(y,m){f(m)})})}).catch(f)});return _(o,r),o}function go(r){var i=this,o=new v(function(c,f){i.ready().then(function(){var s=i._dbInfo;s.db.transaction(function(l){be(l,s,"SELECT COUNT(key) as c FROM "+s.storeName,[],function(y,m){var d=m.rows.item(0).c;c(d)},function(y,m){f(m)})})}).catch(f)});return _(o,r),o}function vo(r,i){var o=this,c=new v(function(f,s){o.ready().then(function(){var l=o._dbInfo;l.db.transaction(function(y){be(y,l,"SELECT key FROM "+l.storeName+" WHERE id = ? LIMIT 1",[r+1],function(m,d){var h=d.rows.length?d.rows.item(0).key:null;f(h)},function(m,d){s(d)})})}).catch(s)});return _(c,i),c}function bo(r){var i=this,o=new v(function(c,f){i.ready().then(function(){var s=i._dbInfo;s.db.transaction(function(l){be(l,s,"SELECT key FROM "+s.storeName,[],function(y,m){for(var d=[],h=0;h<m.rows.length;h++)d.push(m.rows.item(h).key);c(d)},function(y,m){f(m)})})}).catch(f)});return _(o,r),o}function wo(r){return new v(function(i,o){r.transaction(function(c){c.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name <> '__WebKitDatabaseInfoTable__'",[],function(f,s){for(var l=[],y=0;y<s.rows.length;y++)l.push(s.rows.item(y).name);i({db:r,storeNames:l})},function(f,s){o(s)})},function(c){o(c)})})}function xo(r,i){i=G.apply(this,arguments);var o=this.config();r=typeof r!="function"&&r||{},r.name||(r.name=r.name||o.name,r.storeName=r.storeName||o.storeName);var c=this,f;return r.name?f=new v(function(s){var l;r.name===o.name?l=c._dbInfo.db:l=openDatabase(r.name,"","",0),r.storeName?s({db:l,storeNames:[r.storeName]}):s(wo(l))}).then(function(s){return new v(function(l,y){s.db.transaction(function(m){function d(L){return new v(function(j,Y){m.executeSql("DROP TABLE IF EXISTS "+L,[],function(){j()},function(z,te){Y(te)})})}for(var h=[],w=0,P=s.storeNames.length;w<P;w++)h.push(d(s.storeNames[w]));v.all(h).then(function(){l()}).catch(function(L){y(L)})},function(m){y(m)})})}):f=v.reject("Invalid arguments"),_(f,i),f}var Eo={_driver:"webSQLStorage",_initStorage:uo,_support:ao(),iterate:po,getItem:lo,setItem:yo,removeItem:mo,clear:ho,length:go,key:vo,keys:bo,dropInstance:xo};function So(){try{return typeof localStorage!="undefined"&&"setItem"in localStorage&&!!localStorage.setItem}catch(r){return!1}}function Bt(r,i){var o=r.name+"/";return r.storeName!==i.storeName&&(o+=r.storeName+"/"),o}function Ao(){var r="_localforage_support_test";try{return localStorage.setItem(r,!0),localStorage.removeItem(r),!1}catch(i){return!0}}function _o(){return!Ao()||localStorage.length>0}function Co(r){var i=this,o={};if(r)for(var c in r)o[c]=r[c];return o.keyPrefix=Bt(r,i._defaultConfig),_o()?(i._dbInfo=o,o.serializer=Pr,v.resolve()):v.reject()}function Po(r){var i=this,o=i.ready().then(function(){for(var c=i._dbInfo.keyPrefix,f=localStorage.length-1;f>=0;f--){var s=localStorage.key(f);s.indexOf(c)===0&&localStorage.removeItem(s)}});return _(o,r),o}function Ko(r,i){var o=this;r=T(r);var c=o.ready().then(function(){var f=o._dbInfo,s=localStorage.getItem(f.keyPrefix+r);return s&&(s=f.serializer.deserialize(s)),s});return _(c,i),c}function To(r,i){var o=this,c=o.ready().then(function(){for(var f=o._dbInfo,s=f.keyPrefix,l=s.length,y=localStorage.length,m=1,d=0;d<y;d++){var h=localStorage.key(d);if(h.indexOf(s)===0){var w=localStorage.getItem(h);if(w&&(w=f.serializer.deserialize(w)),w=r(w,h.substring(l),m++),w!==void 0)return w}}});return _(c,i),c}function Bo(r,i){var o=this,c=o.ready().then(function(){var f=o._dbInfo,s;try{s=localStorage.key(r)}catch(l){s=null}return s&&(s=s.substring(f.keyPrefix.length)),s});return _(c,i),c}function Io(r){var i=this,o=i.ready().then(function(){for(var c=i._dbInfo,f=localStorage.length,s=[],l=0;l<f;l++){var y=localStorage.key(l);y.indexOf(c.keyPrefix)===0&&s.push(y.substring(c.keyPrefix.length))}return s});return _(o,r),o}function Do(r){var i=this,o=i.keys().then(function(c){return c.length});return _(o,r),o}function No(r,i){var o=this;r=T(r);var c=o.ready().then(function(){var f=o._dbInfo;localStorage.removeItem(f.keyPrefix+r)});return _(c,i),c}function Lo(r,i,o){var c=this;r=T(r);var f=c.ready().then(function(){i===void 0&&(i=null);var s=i;return new v(function(l,y){var m=c._dbInfo;m.serializer.serialize(i,function(d,h){if(h)y(h);else try{localStorage.setItem(m.keyPrefix+r,d),l(s)}catch(w){(w.name==="QuotaExceededError"||w.name==="NS_ERROR_DOM_QUOTA_REACHED")&&y(w),y(w)}})})});return _(f,o),f}function Ro(r,i){if(i=G.apply(this,arguments),r=typeof r!="function"&&r||{},!r.name){var o=this.config();r.name=r.name||o.name,r.storeName=r.storeName||o.storeName}var c=this,f;return r.name?f=new v(function(s){r.storeName?s(Bt(r,c._defaultConfig)):s(r.name+"/")}).then(function(s){for(var l=localStorage.length-1;l>=0;l--){var y=localStorage.key(l);y.indexOf(s)===0&&localStorage.removeItem(y)}}):f=v.reject("Invalid arguments"),_(f,i),f}var jo={_driver:"localStorageWrapper",_initStorage:Co,_support:So(),iterate:To,getItem:Ko,setItem:Lo,removeItem:No,clear:Po,length:Do,key:Bo,keys:Io,dropInstance:Ro},Uo=function(i,o){return i===o||typeof i=="number"&&typeof o=="number"&&isNaN(i)&&isNaN(o)},Mo=function(i,o){for(var c=i.length,f=0;f<c;){if(Uo(i[f],o))return!0;f++}return!1},It=Array.isArray||function(r){return Object.prototype.toString.call(r)==="[object Array]"},Me={},Dt={},Ie={INDEXEDDB:io,WEBSQL:Eo,LOCALSTORAGE:jo},Oo=[Ie.INDEXEDDB._driver,Ie.WEBSQL._driver,Ie.LOCALSTORAGE._driver],or=["dropInstance"],Kr=["clear","getItem","iterate","key","keys","length","removeItem","setItem"].concat(or),Fo={description:"",driver:Oo.slice(),name:"localforage",size:4980736,storeName:"keyvaluepairs",version:1};function zo(r,i){r[i]=function(){var o=arguments;return r.ready().then(function(){return r[i].apply(r,o)})}}function Tr(){for(var r=1;r<arguments.length;r++){var i=arguments[r];if(i)for(var o in i)i.hasOwnProperty(o)&&(It(i[o])?arguments[0][o]=i[o].slice():arguments[0][o]=i[o])}return arguments[0]}var ko=function(){function r(i){x(this,r);for(var o in Ie)if(Ie.hasOwnProperty(o)){var c=Ie[o],f=c._driver;this[o]=f,Me[f]||this.defineDriver(c)}this._defaultConfig=Tr({},Fo),this._config=Tr({},this._defaultConfig,i),this._driverSet=null,this._initDriver=null,this._ready=!1,this._dbInfo=null,this._wrapLibraryMethodsWithReady(),this.setDriver(this._config.driver).catch(function(){})}return r.prototype.config=function(o){if((typeof o=="undefined"?"undefined":b(o))==="object"){if(this._ready)return new Error("Can't call config() after localforage has been used.");for(var c in o){if(c==="storeName"&&(o[c]=o[c].replace(/\W/g,"_")),c==="version"&&typeof o[c]!="number")return new Error("Database version must be a number.");this._config[c]=o[c]}return"driver"in o&&o.driver?this.setDriver(this._config.driver):!0}else return typeof o=="string"?this._config[o]:this._config},r.prototype.defineDriver=function(o,c,f){var s=new v(function(l,y){try{var m=o._driver,d=new Error("Custom driver not compliant; see https://mozilla.github.io/localForage/#definedriver");if(!o._driver){y(d);return}for(var h=Kr.concat("_initStorage"),w=0,P=h.length;w<P;w++){var L=h[w],j=!Mo(or,L);if((j||o[L])&&typeof o[L]!="function"){y(d);return}}var Y=function(){for(var Oe=function(Go){return function(){var Wo=new Error("Method "+Go+" is not implemented by the current driver"),Nt=v.reject(Wo);return _(Nt,arguments[arguments.length-1]),Nt}},Br=0,Ho=or.length;Br<Ho;Br++){var Ir=or[Br];o[Ir]||(o[Ir]=Oe(Ir))}};Y();var z=function(Oe){Me[m]&&console.info("Redefining LocalForage driver: "+m),Me[m]=o,Dt[m]=Oe,l()};"_support"in o?o._support&&typeof o._support=="function"?o._support().then(z,y):z(!!o._support):z(!0)}catch(te){y(te)}});return A(s,c,f),s},r.prototype.driver=function(){return this._driver||null},r.prototype.getDriver=function(o,c,f){var s=Me[o]?v.resolve(Me[o]):v.reject(new Error("Driver not found."));return A(s,c,f),s},r.prototype.getSerializer=function(o){var c=v.resolve(Pr);return A(c,o),c},r.prototype.ready=function(o){var c=this,f=c._driverSet.then(function(){return c._ready===null&&(c._ready=c._initDriver()),c._ready});return A(f,o,o),f},r.prototype.setDriver=function(o,c,f){var s=this;It(o)||(o=[o]);var l=this._getSupportedDrivers(o);function y(){s._config.driver=s.driver()}function m(w){return s._extend(w),y(),s._ready=s._initStorage(s._config),s._ready}function d(w){return function(){var P=0;function L(){for(;P<w.length;){var j=w[P];return P++,s._dbInfo=null,s._ready=null,s.getDriver(j).then(m).catch(L)}y();var Y=new Error("No available storage method found.");return s._driverSet=v.reject(Y),s._driverSet}return L()}}var h=this._driverSet!==null?this._driverSet.catch(function(){return v.resolve()}):v.resolve();return this._driverSet=h.then(function(){var w=l[0];return s._dbInfo=null,s._ready=null,s.getDriver(w).then(function(P){s._driver=P._driver,y(),s._wrapLibraryMethodsWithReady(),s._initDriver=d(l)})}).catch(function(){y();var w=new Error("No available storage method found.");return s._driverSet=v.reject(w),s._driverSet}),A(this._driverSet,c,f),this._driverSet},r.prototype.supports=function(o){return!!Dt[o]},r.prototype._extend=function(o){Tr(this,o)},r.prototype._getSupportedDrivers=function(o){for(var c=[],f=0,s=o.length;f<s;f++){var l=o[f];this.supports(l)&&c.push(l)}return c},r.prototype._wrapLibraryMethodsWithReady=function(){for(var o=0,c=Kr.length;o<c;o++)zo(this,Kr[o])},r.prototype.createInstance=function(o){return new r(o)},r}(),Yo=new ko;u.exports=Yo},{"3":3}]},{},[4])(4)})});var ha={};W(ha,{default:()=>da});var kr={};W(kr,{clear:()=>$t,createIfDoesNotExist:()=>Ht,createStore:()=>Yt,default:()=>H,dropStore:()=>zr,exists:()=>Fr,get:()=>Or,getKey:()=>Wt,getKeypair:()=>Gt,put:()=>Mr,rm:()=>Vt});var se=ei(jt());var Nr={};W(Nr,{CharSize:()=>we,CryptoSystem:()=>Z,EccCurve:()=>ze,HashAlg:()=>He,KeyUse:()=>D,RsaSize:()=>ke,SymmAlg:()=>ne,SymmKeyLength:()=>Ye});var Z;(function(t){t.ECC="ecc",t.RSA="rsa"})(Z||(Z={}));var ze;(function(a){a.P_256="P-256",a.P_384="P-384",a.P_521="P-521"})(ze||(ze={}));var ke;(function(a){a[a.B1024=1024]="B1024",a[a.B2048=2048]="B2048",a[a.B4096=4096]="B4096"})(ke||(ke={}));var ne;(function(a){a.AES_CTR="AES-CTR",a.AES_CBC="AES-CBC",a.AES_GCM="AES-GCM"})(ne||(ne={}));var Ye;(function(a){a[a.B128=128]="B128",a[a.B192=192]="B192",a[a.B256=256]="B256"})(Ye||(Ye={}));var He;(function(u){u.SHA_1="SHA-1",u.SHA_256="SHA-256",u.SHA_384="SHA-384",u.SHA_512="SHA-512"})(He||(He={}));var we;(function(t){t[t.B8=8]="B8",t[t.B16=16]="B16"})(we||(we={}));var D;(function(t){t.Exchange="exchange",t.Write="write"})(D||(D={}));var Lr=new Error("Key does not exist. Make sure you properly instantiated the keystore."),Ut=new Error("Retrieved a symmetric key when an asymmetric keypair was expected. Please use a different key name."),Mt=new Error("Retrieved an asymmetric keypair when an symmetric key was expected. Please use a different key name."),Rr=new Error("ECC is not enabled for this browser. Please use RSA instead."),Ot=new Error("Cryptosystem not supported. Please use ECC or RSA"),Ft=new Error("Invalid key use. Please use 'exchange' or 'write"),ri=new Error("Max must be less than 256 and greater than 0");function De(n){if(!n||n===null)throw Lr;if(n.privateKey===void 0)throw Ut;return n}function jr(n){if(!n||n===null)throw Lr;if(n.privateKey!==void 0||n.algorithm===void 0)throw Mt;return n}function Ur(n){zt(n,[Z.ECC,Z.RSA],Ot)}function Ke(n){zt(n,[D.Exchange,D.Write],Ft)}function zt(n,e,t){if(!e.some(u=>u===n))throw t}var kt={KeyDoesNotExist:Lr,NotKeyPair:Ut,NotKey:Mt,ECCNotEnabled:Rr,UnsupportedCrypto:Ot,InvalidKeyUse:Ft,checkIsKeyPair:De,checkIsKey:jr,checkValidCryptoSystem:Ur,checkValidKeyUse:Ke,InvalidMaxValue:ri};function Yt(n){return se.default.createInstance({name:n})}async function Ht(n,e,t=se.default){if(await Fr(n,t))return;let a=await e();await Mr(n,a,t)}async function Mr(n,e,t=se.default){return t.setItem(n,e)}async function Gt(n,e=se.default){return Or(n,De,e)}async function Wt(n,e=se.default){return Or(n,jr,e)}async function Or(n,e,t=se.default){let a=await t.getItem(n);return a===null?null:e(a)}async function Fr(n,e=se.default){return await e.getItem(n)!==null}async function Vt(n,e=se.default){return e.removeItem(n)}async function zr(n){return n.dropInstance()}async function $t(n){return n?zr(n):se.default.clear()}var H={createStore:Yt,createIfDoesNotExist:Ht,put:Mr,getKeypair:Gt,getKey:Wt,exists:Fr,rm:Vt,dropStore:zr,clear:$t};var ti=globalThis||window||self,U=ti.crypto;var ct={};W(ct,{arrBufToBase64:()=>bn,arrBufToStr:()=>vn,base64ToArrBuf:()=>it,default:()=>K,joinBufs:()=>En,normalizeBase64ToBuf:()=>Ee,normalizeToBuf:()=>Qe,normalizeUnicodeToBuf:()=>ye,normalizeUtf16ToBuf:()=>st,normalizeUtf8ToBuf:()=>at,publicExponent:()=>wn,randomBuf:()=>xn,strToArrBuf:()=>pr,structuralClone:()=>Sn});var Yr={};W(Yr,{identity:()=>ci});function ni(n,e){if(n.length>=255)throw new TypeError("Alphabet too long");for(var t=new Uint8Array(256),a=0;a<t.length;a++)t[a]=255;for(var u=0;u<n.length;u++){var p=n.charAt(u),b=p.charCodeAt(0);if(t[b]!==255)throw new TypeError(p+" is ambiguous");t[b]=u}var x=n.length,E=n.charAt(0),O=Math.log(x)/Math.log(256),N=Math.log(256)/Math.log(x);function V(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 T=0,G=0,I=0,k=A.length;I!==k&&A[I]===0;)I++,T++;for(var R=(k-I)*N+1>>>0,q=new Uint8Array(R);I!==k;){for(var $=A[I],g=0,C=R-1;($!==0||g<G)&&C!==-1;C--,g++)$+=256*q[C]>>>0,q[C]=$%x>>>0,$=$/x>>>0;if($!==0)throw new Error("Non-zero carry");G=g,I++}for(var S=R-G;S!==R&&q[S]===0;)S++;for(var B=E.repeat(T);S<R;++S)B+=n.charAt(q[S]);return B}function v(A){if(typeof A!="string")throw new TypeError("Expected String");if(A.length===0)return new Uint8Array;var T=0;if(A[T]!==" "){for(var G=0,I=0;A[T]===E;)G++,T++;for(var k=(A.length-T)*O+1>>>0,R=new Uint8Array(k);A[T];){var q=t[A.charCodeAt(T)];if(q===255)return;for(var $=0,g=k-1;(q!==0||$<I)&&g!==-1;g--,$++)q+=x*R[g]>>>0,R[g]=q%256>>>0,q=q/256>>>0;if(q!==0)throw new Error("Non-zero carry");I=$,T++}if(A[T]!==" "){for(var C=k-I;C!==k&&R[C]===0;)C++;for(var S=new Uint8Array(G+(k-C)),B=G;C!==k;)S[B++]=R[C++];return S}}}function _(A){var T=v(A);if(T)return T;throw new Error(`Non-${e} character`)}return{encode:V,decodeUnsafe:v,decode:_}}var oi=ni,ii=oi,Xt=ii;var Pa=new Uint8Array(0);var Qt=(n,e)=>{if(n===e)return!0;if(n.byteLength!==e.byteLength)return!1;for(let t=0;t<n.byteLength;t++)if(n[t]!==e[t])return!1;return!0},pe=n=>{if(n instanceof Uint8Array&&n.constructor.name==="Uint8Array")return n;if(n instanceof ArrayBuffer)return new Uint8Array(n);if(ArrayBuffer.isView(n))return new Uint8Array(n.buffer,n.byteOffset,n.byteLength);throw new Error("Unknown type, must be binary type")};var qt=n=>new TextEncoder().encode(n),Jt=n=>new TextDecoder().decode(n);var en=class{constructor(e,t,a){this.name=e,this.prefix=t,this.baseEncode=a}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}},rn=class{constructor(e,t,a){this.name=e,this.prefix=t,this.baseDecode=a}decode(e){if(typeof e=="string")switch(e[0]){case this.prefix:return this.baseDecode(e.slice(1));default:throw Error(`Unable to decode multibase string ${JSON.stringify(e)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`)}else throw Error("Can only multibase decode strings")}or(e){let t={[this.prefix]:this,...e.decoders||{[e.prefix]:e}};return new ar(t)}},ar=class{constructor(e){this.decoders=e}or(e){let t=e.decoders||{[e.prefix]:e};return new ar({...this.decoders,...t})}decode(e){let t=e[0],a=this.decoders[t];if(a)return a.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}},tn=class{constructor(e,t,a,u){this.name=e,this.prefix=t,this.baseEncode=a,this.baseDecode=u,this.encoder=new en(e,t,a),this.decoder=new rn(e,t,u)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}},sr=({name:n,prefix:e,encode:t,decode:a})=>new tn(n,e,t,a),xe=({prefix:n,name:e,alphabet:t})=>{let{encode:a,decode:u}=Xt(t,e);return sr({prefix:n,name:e,encode:a,decode:p=>pe(u(p))})},ai=(n,e,t,a)=>{let u={};for(let N=0;N<e.length;++N)u[e[N]]=N;let p=n.length;for(;n[p-1]==="=";)--p;let b=new Uint8Array(p*t/8|0),x=0,E=0,O=0;for(let N=0;N<p;++N){let V=u[n[N]];if(V===void 0)throw new SyntaxError(`Non-${a} character`);E=E<<t|V,x+=t,x>=8&&(x-=8,b[O++]=255&E>>x)}if(x>=t||255&E<<8-x)throw new SyntaxError("Unexpected end of data");return b},si=(n,e,t)=>{let a=e[e.length-1]==="=",u=(1<<t)-1,p="",b=0,x=0;for(let E=0;E<n.length;++E)for(x=x<<8|n[E],b+=8;b>t;)b-=t,p+=e[u&x>>b];if(b&&(p+=e[u&x<<t-b]),a)for(;p.length*t&7;)p+="=";return p},F=({name:n,prefix:e,bitsPerChar:t,alphabet:a})=>sr({prefix:e,name:n,encode(u){return si(u,a,t)},decode(u){return ai(u,a,t,n)}});var ci=sr({prefix:"\0",name:"identity",encode:n=>Jt(n),decode:n=>qt(n)});var Hr={};W(Hr,{base2:()=>fi});var fi=F({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Gr={};W(Gr,{base8:()=>ui});var ui=F({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var Wr={};W(Wr,{base10:()=>li});var li=xe({prefix:"9",name:"base10",alphabet:"0123456789"});var Vr={};W(Vr,{base16:()=>pi,base16upper:()=>yi});var pi=F({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),yi=F({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var $r={};W($r,{base32:()=>Ne,base32hex:()=>gi,base32hexpad:()=>bi,base32hexpadupper:()=>wi,base32hexupper:()=>vi,base32pad:()=>di,base32padupper:()=>hi,base32upper:()=>mi,base32z:()=>xi});var Ne=F({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),mi=F({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),di=F({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),hi=F({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),gi=F({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),vi=F({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),bi=F({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),wi=F({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),xi=F({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Xr={};W(Xr,{base36:()=>Ei,base36upper:()=>Si});var Ei=xe({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),Si=xe({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var Qr={};W(Qr,{base58btc:()=>ce,base58flickr:()=>Ai});var ce=xe({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),Ai=xe({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var qr={};W(qr,{base64:()=>_i,base64pad:()=>Ci,base64url:()=>Pi,base64urlpad:()=>Ki});var _i=F({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),Ci=F({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),Pi=F({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),Ki=F({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var Zr={};W(Zr,{sha256:()=>Vi,sha512:()=>$i});var Ti=on,nn=128,Bi=127,Ii=~Bi,Di=Math.pow(2,31);function on(n,e,t){e=e||[],t=t||0;for(var a=t;n>=Di;)e[t++]=n&255|nn,n/=128;for(;n&Ii;)e[t++]=n&255|nn,n>>>=7;return e[t]=n|0,on.bytes=t-a+1,e}var Ni=Jr,Li=128,an=127;function Jr(n,e){var t=0,e=e||0,a=0,u=e,p,b=n.length;do{if(u>=b)throw Jr.bytes=0,new RangeError("Could not decode varint");p=n[u++],t+=a<28?(p&an)<<a:(p&an)*Math.pow(2,a),a+=7}while(p>=Li);return Jr.bytes=u-e,t}var Ri=Math.pow(2,7),ji=Math.pow(2,14),Ui=Math.pow(2,21),Mi=Math.pow(2,28),Oi=Math.pow(2,35),Fi=Math.pow(2,42),zi=Math.pow(2,49),ki=Math.pow(2,56),Yi=Math.pow(2,63),Hi=function(n){return n<Ri?1:n<ji?2:n<Ui?3:n<Mi?4:n<Oi?5:n<Fi?6:n<zi?7:n<ki?8:n<Yi?9:10},Gi={encode:Ti,decode:Ni,encodingLength:Hi},Wi=Gi,Ge=Wi;var We=n=>[Ge.decode(n),Ge.decode.bytes],Le=(n,e,t=0)=>(Ge.encode(n,e,t),e),Re=n=>Ge.encodingLength(n);var cr=(n,e)=>{let t=e.byteLength,a=Re(n),u=a+Re(t),p=new Uint8Array(u+t);return Le(n,p,0),Le(t,p,a),p.set(e,u),new Ve(n,t,e,p)},cn=n=>{let e=pe(n),[t,a]=We(e),[u,p]=We(e.subarray(a)),b=e.subarray(a+p);if(b.byteLength!==u)throw new Error("Incorrect length");return new Ve(t,u,b,e)},fn=(n,e)=>n===e?!0:n.code===e.code&&n.size===e.size&&Qt(n.bytes,e.bytes),Ve=class{constructor(e,t,a,u){this.code=e,this.size=t,this.digest=a,this.bytes=u}};var $e=({name:n,code:e,encode:t})=>new ln(n,e,t),ln=class{constructor(e,t,a){this.name=e,this.code=t,this.encode=a}async digest(e){if(e instanceof Uint8Array){let t=await this.encode(e);return cr(this.code,t)}else throw Error("Unknown type, must be binary type")}};var yn=n=>async e=>new Uint8Array(await crypto.subtle.digest(n,e)),Vi=$e({name:"sha2-256",code:18,encode:yn("SHA-256")}),$i=$e({name:"sha2-512",code:19,encode:yn("SHA-512")});var et={};W(et,{identity:()=>Xi});var Xi=$e({name:"identity",code:0,encode:n=>pe(n)});var Qa=new TextEncoder,qa=new TextDecoder;var X=class{constructor(e,t,a,u){this.code=t,this.version=e,this.multihash=a,this.bytes=u,this.byteOffset=u.byteOffset,this.byteLength=u.byteLength,this.asCID=this,this._baseCache=new Map,Object.defineProperties(this,{byteOffset:ur,byteLength:ur,code:fr,version:fr,multihash:fr,bytes:fr,_baseCache:ur,asCID:ur})}toV0(){switch(this.version){case 0:return this;default:{let{code:e,multihash:t}=this;if(e!==Xe)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(t.code!==ra)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return X.createV0(t)}}}toV1(){switch(this.version){case 0:{let{code:e,digest:t}=this.multihash,a=cr(e,t);return X.createV1(this.code,a)}case 1:return this;default:throw Error(`Can not convert CID version ${this.version} to version 0. This is a bug please report`)}}equals(e){return e&&this.code===e.code&&this.version===e.version&&fn(this.multihash,e.multihash)}toString(e){let{bytes:t,version:a,_baseCache:u}=this;switch(a){case 0:return Zi(t,u,e||ce.encoder);default:return ea(t,u,e||Ne.encoder)}}toJSON(){return{code:this.code,version:this.version,hash:this.multihash.bytes}}get[Symbol.toStringTag](){return"CID"}[Symbol.for("nodejs.util.inspect.custom")](){return"CID("+this.toString()+")"}static isCID(e){return na(/^0\.0/,oa),!!(e&&(e[dn]||e.asCID===e))}get toBaseEncodedString(){throw new Error("Deprecated, use .toString()")}get codec(){throw new Error('"codec" property is deprecated, use integer "code" property instead')}get buffer(){throw new Error("Deprecated .buffer property, use .bytes to get Uint8Array instead")}get multibaseName(){throw new Error('"multibaseName" property is deprecated')}get prefix(){throw new Error('"prefix" property is deprecated')}static asCID(e){if(e instanceof X)return e;if(e!=null&&e.asCID===e){let{version:t,code:a,multihash:u,bytes:p}=e;return new X(t,a,u,p||mn(t,a,u.bytes))}else if(e!=null&&e[dn]===!0){let{version:t,multihash:a,code:u}=e,p=cn(a);return X.create(t,u,p)}else return null}static create(e,t,a){if(typeof t!="number")throw new Error("String codecs are no longer supported");switch(e){case 0:{if(t!==Xe)throw new Error(`Version 0 CID must use dag-pb (code: ${Xe}) block encoding`);return new X(e,t,a,a.bytes)}case 1:{let u=mn(e,t,a.bytes);return new X(e,t,a,u)}default:throw new Error("Invalid version")}}static createV0(e){return X.create(0,Xe,e)}static createV1(e,t){return X.create(1,e,t)}static decode(e){let[t,a]=X.decodeFirst(e);if(a.length)throw new Error("Incorrect length");return t}static decodeFirst(e){let t=X.inspectBytes(e),a=t.size-t.multihashSize,u=pe(e.subarray(a,a+t.multihashSize));if(u.byteLength!==t.multihashSize)throw new Error("Incorrect length");let p=u.subarray(t.multihashSize-t.digestSize),b=new Ve(t.multihashCode,t.digestSize,p,u);return[t.version===0?X.createV0(b):X.createV1(t.codec,b),e.subarray(t.size)]}static inspectBytes(e){let t=0,a=()=>{let[V,v]=We(e.subarray(t));return t+=v,V},u=a(),p=Xe;if(u===18?(u=0,t=0):u===1&&(p=a()),u!==0&&u!==1)throw new RangeError(`Invalid CID version ${u}`);let b=t,x=a(),E=a(),O=t+E,N=O-b;return{version:u,codec:p,multihashCode:x,digestSize:E,multihashSize:N,size:O}}static parse(e,t){let[a,u]=Ji(e,t),p=X.decode(u);return p._baseCache.set(a,e),p}},Ji=(n,e)=>{switch(n[0]){case"Q":{let t=e||ce;return[ce.prefix,t.decode(`${ce.prefix}${n}`)]}case ce.prefix:{let t=e||ce;return[ce.prefix,t.decode(n)]}case Ne.prefix:{let t=e||Ne;return[Ne.prefix,t.decode(n)]}default:{if(e==null)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[n[0],e.decode(n)]}}},Zi=(n,e,t)=>{let{prefix:a}=t;if(a!==ce.prefix)throw Error(`Cannot string encode V0 in ${t.name} encoding`);let u=e.get(a);if(u==null){let p=t.encode(n).slice(1);return e.set(a,p),p}else return u},ea=(n,e,t)=>{let{prefix:a}=t,u=e.get(a);if(u==null){let p=t.encode(n);return e.set(a,p),p}else return u},Xe=112,ra=18,mn=(n,e,t)=>{let a=Re(n),u=a+Re(e),p=new Uint8Array(u+t.byteLength);return Le(n,p,0),Le(e,p,a),p.set(t,u),p},dn=Symbol.for("@ipld/js-cid/CID"),fr={writable:!1,configurable:!1,enumerable:!0},ur={writable:!1,enumerable:!1,configurable:!1},ta="0.0.0-dev",na=(n,e)=>{if(n.test(ta))console.warn(e);else throw new Error(e)},oa=`CID.isCID(v) is deprecated and will be removed in the next major release. | ||
Following code pattern: | ||
@@ -30,5 +30,5 @@ | ||
} | ||
`;var qr={...Or,...Fr,...zr,...kr,...Yr,...Hr,...Gr,...Wr,...Vr},is={...Xr,...Qr};function ln(n,e,t,a){return{name:n,prefix:e,encoder:{name:n,prefix:e,encode:t},decoder:{decode:a}}}var pn=ln("utf8","u",n=>{let e=new TextDecoder("utf8");return"u"+e.decode(n)},n=>new TextEncoder().encode(n.substring(1))),Jr=ln("ascii","a",n=>{let e="a";for(let t=0;t<n.length;t++)e+=String.fromCharCode(n[t]);return e},n=>{n=n.substring(1);let e=new Uint8Array(n.length);for(let t=0;t<n.length;t++)e[t]=n.charCodeAt(t);return e}),na={utf8:pn,"utf-8":pn,hex:qr.base16,latin1:Jr,ascii:Jr,binary:Jr,...qr},lr=na;function Zr(n,e="utf8"){let t=lr[e];if(!t)throw new Error(`Unsupported encoding "${e}"`);return t.decoder.decode(`${t.prefix}${n}`)}function et(n,e="utf8"){let t=lr[e];if(!t)throw new Error(`Unsupported encoding "${e}"`);return t.encoder.encode(n).substring(1)}function yn(n,e){let t=e===8?new Uint8Array(n):new Uint16Array(n);return Array.from(t).map(a=>String.fromCharCode(a)).join("")}function mn(n){return et(new Uint8Array(n),"base64pad")}function pr(n,e){let t=e===8?new Uint8Array(n.length):new Uint16Array(n.length);for(let a=0,u=n.length;a<u;a++)t[a]=n.charCodeAt(a);return t.buffer}function rt(n){return Zr(n,"base64pad").buffer}function dn(){return new Uint8Array([1,0,1])}function hn(n){let e=new Uint8Array(n);return U.getRandomValues(e),e.buffer}function gn(n,e){let t=new Uint8Array(n),a=new Uint8Array(e),u=new Uint8Array(t.length+a.length);return u.set(t),u.set(a,t.length),u.buffer}var tt=n=>Qe(n,e=>pr(e,we.B8)),nt=n=>Qe(n,e=>pr(e,we.B16)),Ee=n=>Qe(n,rt),ye=(n,e)=>{switch(e){case 8:return tt(n);default:return nt(n)}},Qe=(n,e)=>{if(typeof n=="string")return e(n);if(typeof n=="object"&&n.byteLength!==void 0)return new Uint8Array(n).buffer;throw new Error("Improper value. Must be a string, ArrayBuffer, Uint8Array")};async function vn(n){return new Promise(e=>{let{port1:t,port2:a}=new MessageChannel;a.onmessage=u=>e(u.data),t.postMessage(n)})}var K={arrBufToStr:yn,arrBufToBase64:mn,strToArrBuf:pr,base64ToArrBuf:rt,publicExponent:dn,randomBuf:hn,joinBufs:gn,normalizeUtf8ToBuf:tt,normalizeUtf16ToBuf:nt,normalizeBase64ToBuf:Ee,normalizeToBuf:Qe,structuralClone:vn};var it={};W(it,{DEFAULT_CHAR_SIZE:()=>ie,DEFAULT_CRYPTOSYSTEM:()=>yr,DEFAULT_CTR_LEN:()=>Je,DEFAULT_ECC_CURVE:()=>me,DEFAULT_EXCHANGE_KEY_NAME:()=>hr,DEFAULT_HASH_ALG:()=>fe,DEFAULT_RSA_SIZE:()=>mr,DEFAULT_STORE_NAME:()=>dr,DEFAULT_SYMM_ALG:()=>oe,DEFAULT_SYMM_LEN:()=>Ce,DEFAULT_WRITE_KEY_NAME:()=>gr,ECC_EXCHANGE_ALG:()=>Ke,ECC_WRITE_ALG:()=>Se,RSA_EXCHANGE_ALG:()=>_e,RSA_WRITE_ALG:()=>Ae,SALT_LENGTH:()=>qe,default:()=>oa});var Ke="ECDH",Se="ECDSA",_e="RSA-OAEP",Ae="RSASSA-PKCS1-v1_5",qe=128,yr="ecc",me=Fe.P_256,mr=ze.B2048,oe=ne.AES_CTR,Ce=ke.B256,Je=64,fe=Ye.SHA_256,ie=we.B16,dr="keystore",hr="exchange-key",gr="write-key",oa={ECC_EXCHANGE_ALG:Ke,ECC_WRITE_ALG:Se,RSA_EXCHANGE_ALG:_e,RSA_WRITE_ALG:Ae,SALT_LENGTH:qe,DEFAULT_CRYPTOSYSTEM:yr,DEFAULT_ECC_CURVE:me,DEFAULT_RSA_SIZE:mr,DEFAULT_SYMM_ALG:oe,DEFAULT_CTR_LEN:Je,DEFAULT_HASH_ALG:fe,DEFAULT_CHAR_SIZE:ie,DEFAULT_STORE_NAME:dr,DEFAULT_EXCHANGE_KEY_NAME:hr,DEFAULT_WRITE_KEY_NAME:gr};async function bn(n,e){Ie(e);let t=e===D.Exchange?Ke:Se,a=e===D.Exchange?["deriveKey","deriveBits"]:["sign","verify"];return U.subtle.generateKey({name:t,namedCurve:n},!1,a)}async function wn(n,e,t){Ie(t);let a=t===D.Exchange?Ke:Se,u=t===D.Exchange?[]:["verify"],p=K.base64ToArrBuf(n);return U.subtle.importKey("raw",p,{name:a,namedCurve:e},!0,u)}var ae={makeKeypair:bn,importPublicKey:wn};async function ia(n){return U.subtle.generateKey({name:n?.alg||oe,length:n?.length||Ce},!0,["encrypt","decrypt"])}async function aa(n,e){let t=K.base64ToArrBuf(n);return U.subtle.importKey("raw",t,{name:e?.alg||oe,length:e?.length||Ce},!0,["encrypt","decrypt"])}var Ze={makeKey:ia,importKey:aa};async function xn(n,e,t){let a=K.normalizeUtf16ToBuf(n),u=typeof e=="string"?await Ze.importKey(e,t):e,p=t?.alg||oe,b=t?.iv||K.randomBuf(16),x=await U.subtle.encrypt({name:p,iv:p===ne.AES_CTR?void 0:b,counter:p===ne.AES_CTR?new Uint8Array(b):void 0,length:p===ne.AES_CTR?Je:void 0},u,a);return K.joinBufs(b,x)}async function En(n,e,t){let a=K.normalizeBase64ToBuf(n),u=typeof e=="string"?await Ze.importKey(e,t):e,p=t?.alg||oe,b=a.slice(0,16),x=a.slice(16);return await U.subtle.decrypt({name:p,iv:p===ne.AES_CTR?void 0:b,counter:p===ne.AES_CTR?new Uint8Array(b):void 0,length:p===ne.AES_CTR?Je:void 0},u,x)}async function sa(n,e,t){let a=await xn(n,e,t);return K.arrBufToBase64(a)}async function ca(n,e,t){let a=await En(n,e,t);return K.arrBufToStr(a,16)}async function fa(n){let e=await U.subtle.exportKey("raw",n);return K.arrBufToBase64(e)}var Sn={encryptBytes:xn,decryptBytes:En,encrypt:sa,decrypt:ca,exportKey:fa};var de={...Ze,...Sn};async function _n(n,e,t=ie,a=fe){return U.subtle.sign({name:Se,hash:{name:a}},e,ye(n,t))}async function An(n,e,t,a=ie,u=me,p=fe){return U.subtle.verify({name:Se,hash:{name:p}},typeof t=="string"?await ae.importPublicKey(t,u,D.Write):t,Ee(e),ye(n,a))}async function Cn(n,e,t,a=ie,u=me,p){let b=typeof t=="string"?await ae.importPublicKey(t,u,D.Exchange):t,x=await vr(e,b,p);return de.encryptBytes(ye(n,a),x,p)}async function Pn(n,e,t,a=me,u){let p=typeof t=="string"?await ae.importPublicKey(t,a,D.Exchange):t,b=await vr(e,p,u);return de.decryptBytes(Ee(n),b,u)}async function Kn(n){let e=await U.subtle.exportKey("raw",n.publicKey);return K.arrBufToBase64(e)}async function vr(n,e,t){return U.subtle.deriveKey({name:Ke,public:e},n,{name:t?.alg||oe,length:t?.length||Ce},!1,["encrypt","decrypt"])}var he={sign:_n,verify:An,encrypt:Cn,decrypt:Pn,getPublicKey:Kn,getSharedKey:vr};var at={};W(at,{default:()=>M,defaultConfig:()=>br,eccEnabled:()=>Bn,merge:()=>In,normalize:()=>Tn,symmKeyOpts:()=>Dn});var br={type:yr,curve:me,rsaSize:mr,symmAlg:oe,symmLen:Ce,hashAlg:fe,charSize:ie,storeName:dr,exchangeKeyName:hr,writeKeyName:gr};function Tn(n,e=!0){let t;return n?t={...br,...n}:t=br,n?.type||(t.type=e?Z.ECC:Z.RSA),t}async function Bn(){let n=await ae.makeKeypair(me,D.Exchange);try{await K.structuralClone(n)}catch(e){return!1}return!0}function In(n,e={}){return{...n,...e}}function Dn(n){return{alg:n.symmAlg,length:n.symmLen}}var M={defaultConfig:br,normalize:Tn,eccEnabled:Bn,merge:In,symmKeyOpts:Dn};var Re=class{constructor(e,t){this.cfg=e,this.store=t}async writeKey(){let e=await H.getKeypair(this.cfg.writeKeyName,this.store);return He(e)}async exchangeKey(){let e=await H.getKeypair(this.cfg.exchangeKeyName,this.store);return He(e)}async getSymmKey(e,t){let a=M.merge(this.cfg,t),u=await H.getKey(e,this.store);if(u!==null)return u;let p=await de.makeKey(M.symmKeyOpts(a));return await H.put(e,p,this.store),p}async keyExists(e){return await H.getKey(e,this.store)!==null}async deleteKey(e){return H.rm(e,this.store)}async destroy(){return H.dropStore(this.store)}async importSymmKey(e,t,a){let u=M.merge(this.cfg,a),p=await de.importKey(e,M.symmKeyOpts(u));await H.put(t,p,this.store)}async exportSymmKey(e,t){let a=await this.getSymmKey(e,t);return de.exportKey(a)}async encryptWithSymmKey(e,t,a){let u=M.merge(this.cfg,a),p=await this.getSymmKey(t,a),b=await de.encryptBytes(K.strToArrBuf(e,u.charSize),p,M.symmKeyOpts(u));return K.arrBufToBase64(b)}async decryptWithSymmKey(e,t,a){let u=M.merge(this.cfg,a),p=await this.getSymmKey(t,a),b=await de.decryptBytes(K.base64ToArrBuf(e),p,M.symmKeyOpts(u));return K.arrBufToStr(b,u.charSize)}};var er=class extends Re{static async init(e){let t=M.normalize({...e||{},type:Z.ECC}),{curve:a,storeName:u,exchangeKeyName:p,writeKeyName:b}=t,x=H.createStore(u);return await H.createIfDoesNotExist(p,()=>ae.makeKeypair(a,D.Exchange),x),await H.createIfDoesNotExist(b,()=>ae.makeKeypair(a,D.Write),x),new er(t,x)}async sign(e,t){let a=M.merge(this.cfg,t),u=await this.writeKey();return K.arrBufToBase64(await he.sign(e,u.privateKey,a.charSize,a.hashAlg))}async verify(e,t,a,u){let p=M.merge(this.cfg,u);return he.verify(e,t,a,p.charSize,p.curve,p.hashAlg)}async encrypt(e,t,a){let u=M.merge(this.cfg,a),p=await this.exchangeKey();return K.arrBufToBase64(await he.encrypt(e,p.privateKey,t,u.charSize,u.curve))}async decrypt(e,t,a){let u=M.merge(this.cfg,a),p=await this.exchangeKey();return K.arrBufToStr(await he.decrypt(e,p.privateKey,t,u.curve),u.charSize)}async publicExchangeKey(){let e=await this.exchangeKey();return he.getPublicKey(e)}async publicWriteKey(){let e=await this.writeKey();return he.getPublicKey(e)}},wr=er;async function Nn(n,e,t){Ie(t);let a=t===D.Exchange?_e:Ae,u=t===D.Exchange?["encrypt","decrypt"]:["sign","verify"];return U.subtle.generateKey({name:a,modulusLength:n,publicExponent:K.publicExponent(),hash:{name:e}},!1,u)}function ua(n){return n.replace(`-----BEGIN PUBLIC KEY----- | ||
`;var rt={...Yr,...Hr,...Gr,...Wr,...Vr,...$r,...Xr,...Qr,...qr},ss={...Zr,...et};function hn(n,e,t,a){return{name:n,prefix:e,encoder:{name:n,prefix:e,encode:t},decoder:{decode:a}}}var gn=hn("utf8","u",n=>{let e=new TextDecoder("utf8");return"u"+e.decode(n)},n=>new TextEncoder().encode(n.substring(1))),tt=hn("ascii","a",n=>{let e="a";for(let t=0;t<n.length;t++)e+=String.fromCharCode(n[t]);return e},n=>{n=n.substring(1);let e=new Uint8Array(n.length);for(let t=0;t<n.length;t++)e[t]=n.charCodeAt(t);return e}),ia={utf8:gn,"utf-8":gn,hex:rt.base16,latin1:tt,ascii:tt,binary:tt,...rt},lr=ia;function nt(n,e="utf8"){let t=lr[e];if(!t)throw new Error(`Unsupported encoding "${e}"`);return t.decoder.decode(`${t.prefix}${n}`)}function ot(n,e="utf8"){let t=lr[e];if(!t)throw new Error(`Unsupported encoding "${e}"`);return t.encoder.encode(n).substring(1)}function vn(n,e){let t=e===8?new Uint8Array(n):new Uint16Array(n);return Array.from(t).map(a=>String.fromCharCode(a)).join("")}function bn(n){return ot(new Uint8Array(n),"base64pad")}function pr(n,e){let t=e===8?new Uint8Array(n.length):new Uint16Array(n.length);for(let a=0,u=n.length;a<u;a++)t[a]=n.charCodeAt(a);return t.buffer}function it(n){return nt(n,"base64pad").buffer}function wn(){return new Uint8Array([1,0,1])}function xn(n,{max:e}={max:255}){if(e<1||e>255)throw kt.InvalidMaxValue;let t=new Uint8Array(n);if(e==255)return U.getRandomValues(t),t.buffer;let a=0,u=e+1,p=Math.floor(256/u)*u,b=new Uint8Array(1);for(;a<t.length;)U.getRandomValues(b),b[0]<p&&(t[a]=b[0]%u,a++);return t.buffer}function En(n,e){let t=new Uint8Array(n),a=new Uint8Array(e),u=new Uint8Array(t.length+a.length);return u.set(t),u.set(a,t.length),u.buffer}var at=n=>Qe(n,e=>pr(e,we.B8)),st=n=>Qe(n,e=>pr(e,we.B16)),Ee=n=>Qe(n,it),ye=(n,e)=>{switch(e){case 8:return at(n);default:return st(n)}},Qe=(n,e)=>{if(typeof n=="string")return e(n);if(typeof n=="object"&&n.byteLength!==void 0)return new Uint8Array(n).buffer;throw new Error("Improper value. Must be a string, ArrayBuffer, Uint8Array")};async function Sn(n){return new Promise(e=>{let{port1:t,port2:a}=new MessageChannel;a.onmessage=u=>e(u.data),t.postMessage(n)})}var K={arrBufToStr:vn,arrBufToBase64:bn,strToArrBuf:pr,base64ToArrBuf:it,publicExponent:wn,randomBuf:xn,joinBufs:En,normalizeUtf8ToBuf:at,normalizeUtf16ToBuf:st,normalizeBase64ToBuf:Ee,normalizeToBuf:Qe,structuralClone:Sn};var ft={};W(ft,{DEFAULT_CHAR_SIZE:()=>ie,DEFAULT_CRYPTOSYSTEM:()=>yr,DEFAULT_CTR_LEN:()=>Je,DEFAULT_ECC_CURVE:()=>me,DEFAULT_EXCHANGE_KEY_NAME:()=>hr,DEFAULT_HASH_ALG:()=>fe,DEFAULT_RSA_SIZE:()=>mr,DEFAULT_STORE_NAME:()=>dr,DEFAULT_SYMM_ALG:()=>oe,DEFAULT_SYMM_LEN:()=>Ce,DEFAULT_WRITE_KEY_NAME:()=>gr,ECC_EXCHANGE_ALG:()=>Te,ECC_WRITE_ALG:()=>Se,RSA_EXCHANGE_ALG:()=>Ae,RSA_WRITE_ALG:()=>_e,SALT_LENGTH:()=>qe,default:()=>aa});var Te="ECDH",Se="ECDSA",Ae="RSA-OAEP",_e="RSASSA-PKCS1-v1_5",qe=128,yr="ecc",me=ze.P_256,mr=ke.B2048,oe=ne.AES_CTR,Ce=Ye.B256,Je=64,fe=He.SHA_256,ie=we.B16,dr="keystore",hr="exchange-key",gr="write-key",aa={ECC_EXCHANGE_ALG:Te,ECC_WRITE_ALG:Se,RSA_EXCHANGE_ALG:Ae,RSA_WRITE_ALG:_e,SALT_LENGTH:qe,DEFAULT_CRYPTOSYSTEM:yr,DEFAULT_ECC_CURVE:me,DEFAULT_RSA_SIZE:mr,DEFAULT_SYMM_ALG:oe,DEFAULT_CTR_LEN:Je,DEFAULT_HASH_ALG:fe,DEFAULT_CHAR_SIZE:ie,DEFAULT_STORE_NAME:dr,DEFAULT_EXCHANGE_KEY_NAME:hr,DEFAULT_WRITE_KEY_NAME:gr};async function An(n,e){Ke(e);let t=e===D.Exchange?Te:Se,a=e===D.Exchange?["deriveKey","deriveBits"]:["sign","verify"];return U.subtle.generateKey({name:t,namedCurve:n},!1,a)}async function _n(n,e,t){Ke(t);let a=t===D.Exchange?Te:Se,u=t===D.Exchange?[]:["verify"],p=K.base64ToArrBuf(n);return U.subtle.importKey("raw",p,{name:a,namedCurve:e},!0,u)}var ae={makeKeypair:An,importPublicKey:_n};async function sa(n){return U.subtle.generateKey({name:n?.alg||oe,length:n?.length||Ce},!0,["encrypt","decrypt"])}async function ca(n,e){let t=K.base64ToArrBuf(n);return U.subtle.importKey("raw",t,{name:e?.alg||oe,length:e?.length||Ce},!0,["encrypt","decrypt"])}var Ze={makeKey:sa,importKey:ca};async function Cn(n,e,t){let a=K.normalizeUtf16ToBuf(n),u=typeof e=="string"?await Ze.importKey(e,t):e,p=t?.alg||oe,b=t?.iv||K.randomBuf(16),x=await U.subtle.encrypt({name:p,iv:p===ne.AES_CTR?void 0:b,counter:p===ne.AES_CTR?new Uint8Array(b):void 0,length:p===ne.AES_CTR?Je:void 0},u,a);return K.joinBufs(b,x)}async function Pn(n,e,t){let a=K.normalizeBase64ToBuf(n),u=typeof e=="string"?await Ze.importKey(e,t):e,p=t?.alg||oe,b=a.slice(0,16),x=a.slice(16);return await U.subtle.decrypt({name:p,iv:p===ne.AES_CTR?void 0:b,counter:p===ne.AES_CTR?new Uint8Array(b):void 0,length:p===ne.AES_CTR?Je:void 0},u,x)}async function fa(n,e,t){let a=await Cn(n,e,t);return K.arrBufToBase64(a)}async function ua(n,e,t){let a=await Pn(n,e,t);return K.arrBufToStr(a,16)}async function la(n){let e=await U.subtle.exportKey("raw",n);return K.arrBufToBase64(e)}var Kn={encryptBytes:Cn,decryptBytes:Pn,encrypt:fa,decrypt:ua,exportKey:la};var de={...Ze,...Kn};async function Tn(n,e,t=ie,a=fe){return U.subtle.sign({name:Se,hash:{name:a}},e,ye(n,t))}async function Bn(n,e,t,a=ie,u=me,p=fe){return U.subtle.verify({name:Se,hash:{name:p}},typeof t=="string"?await ae.importPublicKey(t,u,D.Write):t,Ee(e),ye(n,a))}async function In(n,e,t,a=ie,u=me,p){let b=typeof t=="string"?await ae.importPublicKey(t,u,D.Exchange):t,x=await vr(e,b,p);return de.encryptBytes(ye(n,a),x,p)}async function Dn(n,e,t,a=me,u){let p=typeof t=="string"?await ae.importPublicKey(t,a,D.Exchange):t,b=await vr(e,p,u);return de.decryptBytes(Ee(n),b,u)}async function Nn(n){let e=await U.subtle.exportKey("raw",n.publicKey);return K.arrBufToBase64(e)}async function vr(n,e,t){return U.subtle.deriveKey({name:Te,public:e},n,{name:t?.alg||oe,length:t?.length||Ce},!1,["encrypt","decrypt"])}var he={sign:Tn,verify:Bn,encrypt:In,decrypt:Dn,getPublicKey:Nn,getSharedKey:vr};var ut={};W(ut,{default:()=>M,defaultConfig:()=>br,eccEnabled:()=>Rn,merge:()=>jn,normalize:()=>Ln,symmKeyOpts:()=>Un});var br={type:yr,curve:me,rsaSize:mr,symmAlg:oe,symmLen:Ce,hashAlg:fe,charSize:ie,storeName:dr,exchangeKeyName:hr,writeKeyName:gr};function Ln(n,e=!0){let t;return n?t={...br,...n}:t=br,n?.type||(t.type=e?Z.ECC:Z.RSA),t}async function Rn(){let n=await ae.makeKeypair(me,D.Exchange);try{await K.structuralClone(n)}catch(e){return!1}return!0}function jn(n,e={}){return{...n,...e}}function Un(n){return{alg:n.symmAlg,length:n.symmLen}}var M={defaultConfig:br,normalize:Ln,eccEnabled:Rn,merge:jn,symmKeyOpts:Un};var je=class{constructor(e,t){this.cfg=e,this.store=t}async writeKey(){let e=await H.getKeypair(this.cfg.writeKeyName,this.store);return De(e)}async exchangeKey(){let e=await H.getKeypair(this.cfg.exchangeKeyName,this.store);return De(e)}async getSymmKey(e,t){let a=M.merge(this.cfg,t),u=await H.getKey(e,this.store);if(u!==null)return u;let p=await de.makeKey(M.symmKeyOpts(a));return await H.put(e,p,this.store),p}async keyExists(e){return await H.getKey(e,this.store)!==null}async deleteKey(e){return H.rm(e,this.store)}async destroy(){return H.dropStore(this.store)}async importSymmKey(e,t,a){let u=M.merge(this.cfg,a),p=await de.importKey(e,M.symmKeyOpts(u));await H.put(t,p,this.store)}async exportSymmKey(e,t){let a=await this.getSymmKey(e,t);return de.exportKey(a)}async encryptWithSymmKey(e,t,a){let u=M.merge(this.cfg,a),p=await this.getSymmKey(t,a),b=await de.encryptBytes(K.strToArrBuf(e,u.charSize),p,M.symmKeyOpts(u));return K.arrBufToBase64(b)}async decryptWithSymmKey(e,t,a){let u=M.merge(this.cfg,a),p=await this.getSymmKey(t,a),b=await de.decryptBytes(K.base64ToArrBuf(e),p,M.symmKeyOpts(u));return K.arrBufToStr(b,u.charSize)}};var er=class extends je{static async init(e){let t=M.normalize({...e||{},type:Z.ECC}),{curve:a,storeName:u,exchangeKeyName:p,writeKeyName:b}=t,x=H.createStore(u);return await H.createIfDoesNotExist(p,()=>ae.makeKeypair(a,D.Exchange),x),await H.createIfDoesNotExist(b,()=>ae.makeKeypair(a,D.Write),x),new er(t,x)}async sign(e,t){let a=M.merge(this.cfg,t),u=await this.writeKey();return K.arrBufToBase64(await he.sign(e,u.privateKey,a.charSize,a.hashAlg))}async verify(e,t,a,u){let p=M.merge(this.cfg,u);return he.verify(e,t,a,p.charSize,p.curve,p.hashAlg)}async encrypt(e,t,a){let u=M.merge(this.cfg,a),p=await this.exchangeKey();return K.arrBufToBase64(await he.encrypt(e,p.privateKey,t,u.charSize,u.curve))}async decrypt(e,t,a){let u=M.merge(this.cfg,a),p=await this.exchangeKey();return K.arrBufToStr(await he.decrypt(e,p.privateKey,t,u.curve),u.charSize)}async publicExchangeKey(){let e=await this.exchangeKey();return he.getPublicKey(e)}async publicWriteKey(){let e=await this.writeKey();return he.getPublicKey(e)}},wr=er;async function Mn(n,e,t){Ke(t);let a=t===D.Exchange?Ae:_e,u=t===D.Exchange?["encrypt","decrypt"]:["sign","verify"];return U.subtle.generateKey({name:a,modulusLength:n,publicExponent:K.publicExponent(),hash:{name:e}},!1,u)}function pa(n){return n.replace(`-----BEGIN PUBLIC KEY----- | ||
`,"").replace(` | ||
-----END PUBLIC KEY-----`,"")}async function Ln(n,e,t){Ie(t);let a=t===D.Exchange?_e:Ae,u=t===D.Exchange?["encrypt"]:["verify"],p=K.base64ToArrBuf(ua(n));return U.subtle.importKey("spki",p,{name:a,hash:{name:e}},!0,u)}var Pe={makeKeypair:Nn,importPublicKey:Ln};async function Rn(n,e,t=ie){return U.subtle.sign({name:Ae,saltLength:qe},e,ye(n,t))}async function jn(n,e,t,a=ie,u=fe){return U.subtle.verify({name:Ae,saltLength:qe},typeof t=="string"?await Pe.importPublicKey(t,u,D.Write):t,Ee(e),ye(n,a))}async function Un(n,e,t=ie,a=fe){return U.subtle.encrypt({name:_e},typeof e=="string"?await Pe.importPublicKey(e,a,D.Exchange):e,ye(n,t))}async function Mn(n,e){let t=Ee(n);return U.subtle.decrypt({name:_e},e,t)}async function On(n){let e=await U.subtle.exportKey("spki",n.publicKey);return K.arrBufToBase64(e)}var ge={sign:Rn,verify:jn,encrypt:Un,decrypt:Mn,getPublicKey:On};var rr=class extends Re{static async init(e){let t=M.normalize({...e||{},type:Z.RSA}),{rsaSize:a,hashAlg:u,storeName:p,exchangeKeyName:b,writeKeyName:x}=t,E=H.createStore(p);return await H.createIfDoesNotExist(b,()=>Pe.makeKeypair(a,u,D.Exchange),E),await H.createIfDoesNotExist(x,()=>Pe.makeKeypair(a,u,D.Write),E),new rr(t,E)}async sign(e,t){let a=M.merge(this.cfg,t),u=await this.writeKey();return K.arrBufToBase64(await ge.sign(e,u.privateKey,a.charSize))}async verify(e,t,a,u){let p=M.merge(this.cfg,u);return ge.verify(e,t,a,p.charSize,p.hashAlg)}async encrypt(e,t,a){let u=M.merge(this.cfg,a);return K.arrBufToBase64(await ge.encrypt(e,t,u.charSize,u.hashAlg))}async decrypt(e,t,a){let u=await this.exchangeKey(),p=M.merge(this.cfg,a);return K.arrBufToStr(await ge.decrypt(e,u.privateKey),p.charSize)}async publicExchangeKey(){let e=await this.exchangeKey();return ge.getPublicKey(e)}async publicWriteKey(){let e=await this.writeKey();return ge.getPublicKey(e)}},xr=rr;async function Fn(n){let e=await M.eccEnabled();if(!e&&n?.type==="ecc")throw Lt;let t=M.normalize(n,e);return jt(t.type),t.type==="ecc"?wr.init(t):xr.init(t)}async function zn(){return H.clear()}var st={};W(st,{ECCKeyStore:()=>er,decrypt:()=>Pn,default:()=>la,encrypt:()=>Cn,getPublicKey:()=>Kn,getSharedKey:()=>vr,importPublicKey:()=>wn,makeKeypair:()=>bn,sign:()=>_n,verify:()=>An});var la={...ae,...he,...wr};var ct={};W(ct,{RSAKeyStore:()=>rr,decrypt:()=>Mn,default:()=>pa,encrypt:()=>Un,getPublicKey:()=>On,importPublicKey:()=>Ln,makeKeypair:()=>Nn,sign:()=>Rn,verify:()=>jn});var pa={...Pe,...ge,...xr};var ya={init:Fn,clear:zn,...Nr,...it,...at,...ot,ecc:st,rsa:ct,idb:Mr};return ma;})(); | ||
-----END PUBLIC KEY-----`,"")}async function On(n,e,t){Ke(t);let a=t===D.Exchange?Ae:_e,u=t===D.Exchange?["encrypt"]:["verify"],p=K.base64ToArrBuf(pa(n));return U.subtle.importKey("spki",p,{name:a,hash:{name:e}},!0,u)}var Pe={makeKeypair:Mn,importPublicKey:On};async function Fn(n,e,t=ie){return U.subtle.sign({name:_e,saltLength:qe},e,ye(n,t))}async function zn(n,e,t,a=ie,u=fe){return U.subtle.verify({name:_e,saltLength:qe},typeof t=="string"?await Pe.importPublicKey(t,u,D.Write):t,Ee(e),ye(n,a))}async function kn(n,e,t=ie,a=fe){return U.subtle.encrypt({name:Ae},typeof e=="string"?await Pe.importPublicKey(e,a,D.Exchange):e,ye(n,t))}async function Yn(n,e){let t=Ee(n);return U.subtle.decrypt({name:Ae},e,t)}async function Hn(n){let e=await U.subtle.exportKey("spki",n.publicKey);return K.arrBufToBase64(e)}var ge={sign:Fn,verify:zn,encrypt:kn,decrypt:Yn,getPublicKey:Hn};var rr=class extends je{static async init(e){let t=M.normalize({...e||{},type:Z.RSA}),{rsaSize:a,hashAlg:u,storeName:p,exchangeKeyName:b,writeKeyName:x}=t,E=H.createStore(p);return await H.createIfDoesNotExist(b,()=>Pe.makeKeypair(a,u,D.Exchange),E),await H.createIfDoesNotExist(x,()=>Pe.makeKeypair(a,u,D.Write),E),new rr(t,E)}async sign(e,t){let a=M.merge(this.cfg,t),u=await this.writeKey();return K.arrBufToBase64(await ge.sign(e,u.privateKey,a.charSize))}async verify(e,t,a,u){let p=M.merge(this.cfg,u);return ge.verify(e,t,a,p.charSize,p.hashAlg)}async encrypt(e,t,a){let u=M.merge(this.cfg,a);return K.arrBufToBase64(await ge.encrypt(e,t,u.charSize,u.hashAlg))}async decrypt(e,t,a){let u=await this.exchangeKey(),p=M.merge(this.cfg,a);return K.arrBufToStr(await ge.decrypt(e,u.privateKey),p.charSize)}async publicExchangeKey(){let e=await this.exchangeKey();return ge.getPublicKey(e)}async publicWriteKey(){let e=await this.writeKey();return ge.getPublicKey(e)}},xr=rr;async function Gn(n){let e=await M.eccEnabled();if(!e&&n?.type==="ecc")throw Rr;let t=M.normalize(n,e);return Ur(t.type),t.type==="ecc"?wr.init(t):xr.init(t)}async function Wn(){return H.clear()}var lt={};W(lt,{ECCKeyStore:()=>er,decrypt:()=>Dn,default:()=>ya,encrypt:()=>In,getPublicKey:()=>Nn,getSharedKey:()=>vr,importPublicKey:()=>_n,makeKeypair:()=>An,sign:()=>Tn,verify:()=>Bn});var ya={...ae,...he,...wr};var pt={};W(pt,{RSAKeyStore:()=>rr,decrypt:()=>Yn,default:()=>ma,encrypt:()=>kn,getPublicKey:()=>Hn,importPublicKey:()=>On,makeKeypair:()=>Mn,sign:()=>Fn,verify:()=>zn});var ma={...Pe,...ge,...xr};var da={init:Gn,clear:Wn,...Nr,...ft,...ut,...ct,ecc:lt,rsa:pt,idb:kr};return ha;})(); | ||
/*! | ||
@@ -35,0 +35,0 @@ localForage -- Offline Storage, Improved |
@@ -8,2 +8,3 @@ import { KeyUse, CryptoSystem } from './types.js'; | ||
export declare const InvalidKeyUse: Error; | ||
export declare const InvalidMaxValue: Error; | ||
export declare function checkIsKeyPair(keypair: any): CryptoKeyPair; | ||
@@ -24,3 +25,4 @@ export declare function checkIsKey(key: any): CryptoKey; | ||
checkValidKeyUse: typeof checkValidKeyUse; | ||
InvalidMaxValue: Error; | ||
}; | ||
export default _default; |
@@ -8,2 +8,3 @@ import { KeyUse, CryptoSystem } from './types.js'; | ||
export const InvalidKeyUse = new Error("Invalid key use. Please use 'exchange' or 'write"); | ||
export const InvalidMaxValue = new Error("Max must be less than 256 and greater than 0"); | ||
export function checkIsKeyPair(keypair) { | ||
@@ -50,3 +51,4 @@ if (!keypair || keypair === null) { | ||
checkValidKeyUse, | ||
InvalidMaxValue, | ||
}; | ||
//# sourceMappingURL=errors.js.map |
@@ -16,3 +16,5 @@ import { init, clear } from './keystore/index.js'; | ||
publicExponent(): Uint8Array; | ||
randomBuf(length: number): ArrayBuffer; | ||
randomBuf(length: number, { max }?: { | ||
max: number; | ||
}): ArrayBuffer; | ||
joinBufs(fst: ArrayBuffer, snd: ArrayBuffer): ArrayBuffer; | ||
@@ -19,0 +21,0 @@ structuralClone(obj: any): Promise<unknown>; |
@@ -7,3 +7,5 @@ import { CharSize, Msg } from './types.js'; | ||
export declare function publicExponent(): Uint8Array; | ||
export declare function randomBuf(length: number): ArrayBuffer; | ||
export declare function randomBuf(length: number, { max }?: { | ||
max: number; | ||
}): ArrayBuffer; | ||
export declare function joinBufs(fst: ArrayBuffer, snd: ArrayBuffer): ArrayBuffer; | ||
@@ -10,0 +12,0 @@ export declare const normalizeUtf8ToBuf: (msg: Msg) => ArrayBuffer; |
import { webcrypto } from 'one-webcrypto'; | ||
import * as uint8arrays from 'uint8arrays'; | ||
import errors from './errors.js'; | ||
import { CharSize } from './types.js'; | ||
@@ -26,5 +27,22 @@ export function arrBufToStr(buf, charSize) { | ||
} | ||
export function randomBuf(length) { | ||
export function randomBuf(length, { max } = { max: 255 }) { | ||
if (max < 1 || max > 255) { | ||
throw errors.InvalidMaxValue; | ||
} | ||
const arr = new Uint8Array(length); | ||
webcrypto.getRandomValues(arr); | ||
if (max == 255) { | ||
webcrypto.getRandomValues(arr); | ||
return arr.buffer; | ||
} | ||
let index = 0; | ||
const interval = max + 1; | ||
const divisibleMax = Math.floor(256 / interval) * interval; | ||
const tmp = new Uint8Array(1); | ||
while (index < arr.length) { | ||
webcrypto.getRandomValues(tmp); | ||
if (tmp[0] < divisibleMax) { | ||
arr[index] = tmp[0] % interval; | ||
index++; | ||
} | ||
} | ||
return arr.buffer; | ||
@@ -31,0 +49,0 @@ } |
{ | ||
"name": "keystore-idb", | ||
"version": "0.15.4", | ||
"version": "0.15.5", | ||
"description": "In-browser key management with IndexedDB and the Web Crypto API", | ||
@@ -5,0 +5,0 @@ "keywords": [], |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
398473
1486
67
3