diff --git a/benchmarking/public/runner/index.html b/benchmarking/public/runner/index.html index dc17b704..94416010 100644 --- a/benchmarking/public/runner/index.html +++ b/benchmarking/public/runner/index.html @@ -57,7 +57,7 @@ `+r).join("")):""}var U0=["Unknown","Constraint","Data","TransactionInactive","ReadOnly","Version","NotFound","InvalidState","InvalidAccess","Abort","Timeout","QuotaExceeded","Syntax","DataClone"],_h=["Modify","Bulk","OpenFailed","VersionChange","Schema","Upgrade","InvalidTable","MissingAPI","NoSuchDatabase","InvalidArgument","SubTransaction","Unsupported","Internal","DatabaseClosed","PrematureCommit","ForeignAwait"].concat(U0),KI={VersionChanged:"Database version changed by other database connection",DatabaseClosed:"Database has been closed",Abort:"Transaction aborted",TransactionInactive:"Transaction has already completed or failed",MissingAPI:"IndexedDB API missing. Please visit https://tinyurl.com/y2uuvskb"};function Ji(t,e){this._e=mi(),this.name=t,this.message=e}function j0(t,e){return t+". Errors: "+Object.keys(e).map(n=>e[n].toString()).filter((n,r,i)=>i.indexOf(n)===r).join(` `)}function ql(t,e,n,r){this._e=mi(),this.failures=e,this.failedKeys=r,this.successCount=n,this.message=j0(t,e)}function qs(t,e){this._e=mi(),this.name="BulkError",this.failures=Object.keys(e).map(n=>e[n]),this.failuresByPos=e,this.message=j0(t,e)}Gi(Ji).from(Error).extend({stack:{get:function(){return this._stack||(this._stack=this.name+": "+this.message+Ed(this._e,2))}},toString:function(){return this.name+": "+this.message}}),Gi(ql).from(Ji),Gi(qs).from(Ji);var wh=_h.reduce((t,e)=>(t[e]=e+"Error",t),{});const WI=Ji;var A=_h.reduce((t,e)=>{var n=e+"Error";function r(i,s){this._e=mi(),this.name=n,i?typeof i=="string"?(this.message=`${i}${s?` `+s:""}`,this.inner=s||null):typeof i=="object"&&(this.message=`${i.name} ${i.message}`,this.inner=i):(this.message=KI[e]||n,this.inner=null)}return Gi(r).from(WI),t[e]=r,t},{});A.Syntax=SyntaxError,A.Type=TypeError,A.Range=RangeError;var dy=U0.reduce((t,e)=>(t[e+"Error"]=A[e],t),{}),za=_h.reduce((t,e)=>(["Syntax","Type","Range"].indexOf(e)===-1&&(t[e+"Error"]=A[e]),t),{});function ue(){}function No(t){return t}function QI(t,e){return t==null||t===No?e:function(n){return e(t(n))}}function di(t,e){return function(){t.apply(this,arguments),e.apply(this,arguments)}}function YI(t,e){return t===ue?e:function(){var n=t.apply(this,arguments);n!==void 0&&(arguments[0]=n);var r=this.onsuccess,i=this.onerror;this.onsuccess=null,this.onerror=null;var s=e.apply(this,arguments);return r&&(this.onsuccess=this.onsuccess?di(r,this.onsuccess):r),i&&(this.onerror=this.onerror?di(i,this.onerror):i),s!==void 0?s:n}}function HI(t,e){return t===ue?e:function(){t.apply(this,arguments);var n=this.onsuccess,r=this.onerror;this.onsuccess=this.onerror=null,e.apply(this,arguments),n&&(this.onsuccess=this.onsuccess?di(n,this.onsuccess):n),r&&(this.onerror=this.onerror?di(r,this.onerror):r)}}function qI(t,e){return t===ue?e:function(n){var r=t.apply(this,arguments);it(n,r);var i=this.onsuccess,s=this.onerror;this.onsuccess=null,this.onerror=null;var o=e.apply(this,arguments);return i&&(this.onsuccess=this.onsuccess?di(i,this.onsuccess):i),s&&(this.onerror=this.onerror?di(s,this.onerror):s),r===void 0?o===void 0?void 0:o:it(r,o)}}function GI(t,e){return t===ue?e:function(){return e.apply(this,arguments)!==!1&&t.apply(this,arguments)}}function Sh(t,e){return t===ue?e:function(){var n=t.apply(this,arguments);if(n&&typeof n.then=="function"){for(var r=this,i=arguments.length,s=new Array(i);i--;)s[i]=arguments[i];return n.then(function(){return e.apply(r,s)})}return e.apply(this,arguments)}}za.ModifyError=ql,za.DexieError=Ji,za.BulkError=qs;var Ro={};const z0=100,[kd,Gl,Td]=typeof Promise>"u"?[]:(()=>{let t=Promise.resolve();if(typeof crypto>"u"||!crypto.subtle)return[t,To(t),t];const e=crypto.subtle.digest("SHA-512",new Uint8Array([0]));return[e,To(e),t]})(),$0=Gl&&Gl.then,$a=kd&&kd.constructor,bh=!!Td;var Nd=!1,JI=Td?()=>{Td.then(ya)}:ye.setImmediate?setImmediate.bind(null,ya):ye.MutationObserver?()=>{var t=document.createElement("div");new MutationObserver(()=>{ya(),t=null}).observe(t,{attributes:!0}),t.setAttribute("i","1")}:()=>{setTimeout(ya,0)},Gs=function(t,e){Ps.push([t,e]),Jl&&(JI(),Jl=!1)},Rd=!0,Jl=!0,ni=[],Va=[],Od=null,Fd=No,Xi={id:"global",global:!0,ref:0,unhandleds:[],onunhandled:py,pgp:!1,env:{},finalize:function(){this.unhandleds.forEach(t=>{try{py(t[0],t[1])}catch{}})}},D=Xi,Ps=[],ri=0,Ka=[];function B(t){if(typeof this!="object")throw new TypeError("Promises must be constructed via new");this._listeners=[],this.onuncatched=ue,this._lib=!1;var e=this._PSD=D;if(Tn&&(this._stackHolder=mi(),this._prev=null,this._numPrev=0),typeof t!="function"){if(t!==Ro)throw new TypeError("Not a function");return this._state=arguments[1],this._value=arguments[2],void(this._state===!1&&Dd(this,this._value))}this._state=null,this._value=null,++e.ref,K0(this,t)}const Bd={get:function(){var t=D,e=Xl;function n(r,i){var s=!t.global&&(t!==D||e!==Xl);const o=s&&!qn();var a=new B((l,u)=>{Ih(this,new V0(Zl(r,t,s,o),Zl(i,t,s,o),l,u,t))});return Tn&&Y0(a,this),a}return n.prototype=Ro,n},set:function(t){$n(this,"then",t&&t.prototype===Ro?Bd:{get:function(){return t},set:Bd.set})}};function V0(t,e,n,r,i){this.onFulfilled=typeof t=="function"?t:null,this.onRejected=typeof e=="function"?e:null,this.resolve=n,this.reject=r,this.psd=i}function K0(t,e){try{e(n=>{if(t._state===null){if(n===t)throw new TypeError("A promise cannot be resolved with itself.");var r=t._lib&&Ko();n&&typeof n.then=="function"?K0(t,(i,s)=>{n instanceof B?n._then(i,s):n.then(i,s)}):(t._state=!0,t._value=n,W0(t)),r&&Wo()}},Dd.bind(null,t))}catch(n){Dd(t,n)}}function Dd(t,e){if(Va.push(e),t._state===null){var n=t._lib&&Ko();e=Fd(e),t._state=!1,t._value=e,Tn&&e!==null&&typeof e=="object"&&!e._promise&&function(r,i,s){try{r.apply(null,s)}catch(o){i&&i(o)}}(()=>{var r=gh(e,"stack");e._promise=t,$n(e,"stack",{get:()=>Nd?r&&(r.get?r.get.apply(e):r.value):t.stack})}),function(r){ni.some(i=>i._value===r._value)||ni.push(r)}(t),W0(t),n&&Wo()}}function W0(t){var e=t._listeners;t._listeners=[];for(var n=0,r=e.length;n{--ri==0&&Eh()},[]))}function Ih(t,e){if(t._state!==null){var n=t._state?e.onFulfilled:e.onRejected;if(n===null)return(t._state?e.resolve:e.reject)(t._value);++e.psd.ref,++ri,Gs(XI,[n,t,e])}else t._listeners.push(e)}function XI(t,e,n){try{Od=e;var r,i=e._value;e._state?r=t(i):(Va.length&&(Va=[]),r=t(i),Va.indexOf(i)===-1&&function(s){for(var o=ni.length;o;)if(ni[--o]._value===s._value)return void ni.splice(o,1)}(e)),n.resolve(r)}catch(s){n.reject(s)}finally{Od=null,--ri==0&&Eh(),--n.psd.ref||n.psd.finalize()}}function Q0(t,e,n){if(e.length===n)return e;var r="";if(t._state===!1){var i,s,o=t._value;o!=null?(i=o.name||"Error",s=o.message||o,r=Ed(o,0)):(i=o,s=""),e.push(i+(s?": "+s:"")+r)}return Tn&&((r=Ed(t._stackHolder,2))&&e.indexOf(r)===-1&&e.push(r),t._prev&&Q0(t._prev,e,n)),e}function Y0(t,e){var n=e?e._numPrev+1:0;n<100&&(t._prev=e,t._numPrev=n)}function ya(){Ko()&&Wo()}function Ko(){var t=Rd;return Rd=!1,Jl=!1,t}function Wo(){var t,e,n;do for(;Ps.length>0;)for(t=Ps,Ps=[],n=t.length,e=0;e0);Rd=!0,Jl=!0}function Eh(){var t=ni;ni=[],t.forEach(r=>{r._PSD.onunhandled.call(null,r._value,r)});for(var e=Ka.slice(0),n=e.length;n;)e[--n]()}function ma(t){return new B(Ro,!1,t)}function ve(t,e){var n=D;return function(){var r=Ko(),i=D;try{return Or(n,!0),t.apply(this,arguments)}catch(s){e&&e(s)}finally{Or(i,!1),r&&Wo()}}}hs(B.prototype,{then:Bd,_then:function(t,e){Ih(this,new V0(null,null,t,e,D))},catch:function(t){if(arguments.length===1)return this.then(null,t);var e=arguments[0],n=arguments[1];return typeof e=="function"?this.then(null,r=>r instanceof e?n(r):ma(r)):this.then(null,r=>r&&r.name===e?n(r):ma(r))},finally:function(t){return this.then(e=>(t(),e),e=>(t(),ma(e)))},stack:{get:function(){if(this._stack)return this._stack;try{Nd=!0;var t=Q0(this,[],20).join(` -From previous: `);return this._state!==null&&(this._stack=t),t}finally{Nd=!1}}},timeout:function(t,e){return t<1/0?new B((n,r)=>{var i=setTimeout(()=>r(new A.Timeout(e)),t);this.then(n,r).finally(clearTimeout.bind(null,i))}):this}}),typeof Symbol<"u"&&Symbol.toStringTag&&$n(B.prototype,Symbol.toStringTag,"Dexie.Promise"),Xi.env=H0(),hs(B,{all:function(){var t=Mn.apply(null,arguments).map(ga);return new B(function(e,n){t.length===0&&e([]);var r=t.length;t.forEach((i,s)=>B.resolve(i).then(o=>{t[s]=o,--r||e(t)},n))})},resolve:t=>{if(t instanceof B)return t;if(t&&typeof t.then=="function")return new B((n,r)=>{t.then(n,r)});var e=new B(Ro,!0,t);return Y0(e,Od),e},reject:ma,race:function(){var t=Mn.apply(null,arguments).map(ga);return new B((e,n)=>{t.map(r=>B.resolve(r).then(e,n))})},PSD:{get:()=>D,set:t=>D=t},totalEchoes:{get:()=>Xl},newPSD:Rr,usePSD:ws,scheduler:{get:()=>Gs,set:t=>{Gs=t}},rejectionMapper:{get:()=>Fd,set:t=>{Fd=t}},follow:(t,e)=>new B((n,r)=>Rr((i,s)=>{var o=D;o.unhandleds=[],o.onunhandled=s,o.finalize=di(function(){(function(a){function l(){a(),Ka.splice(Ka.indexOf(l),1)}Ka.push(l),++ri,Gs(()=>{--ri==0&&Eh()},[])})(()=>{this.unhandleds.length===0?i():s(this.unhandleds[0])})},o.finalize),t()},e,n,r))}),$a&&($a.allSettled&&$n(B,"allSettled",function(){const t=Mn.apply(null,arguments).map(ga);return new B(e=>{t.length===0&&e([]);let n=t.length;const r=new Array(n);t.forEach((i,s)=>B.resolve(i).then(o=>r[s]={status:"fulfilled",value:o},o=>r[s]={status:"rejected",reason:o}).then(()=>--n||e(r)))})}),$a.any&&typeof AggregateError<"u"&&$n(B,"any",function(){const t=Mn.apply(null,arguments).map(ga);return new B((e,n)=>{t.length===0&&n(new AggregateError([]));let r=t.length;const i=new Array(r);t.forEach((s,o)=>B.resolve(s).then(a=>e(a),a=>{i[o]=a,--r||n(new AggregateError(i))}))})}));const qe={awaits:0,echoes:0,id:0};var ZI=0,Wa=[],rc=0,Xl=0,eE=0;function Rr(t,e,n,r){var i=D,s=Object.create(i);s.parent=i,s.ref=0,s.global=!1,s.id=++eE;var o=Xi.env;s.env=bh?{Promise:B,PromiseProp:{value:B,configurable:!0,writable:!0},all:B.all,race:B.race,allSettled:B.allSettled,any:B.any,resolve:B.resolve,reject:B.reject,nthen:fy(o.nthen,s),gthen:fy(o.gthen,s)}:{},e&&it(s,e),++i.ref,s.finalize=function(){--this.parent.ref||this.parent.finalize()};var a=ws(s,t,n,r);return s.ref===0&&s.finalize(),a}function _s(){return qe.id||(qe.id=++ZI),++qe.awaits,qe.echoes+=z0,qe.id}function qn(){return!!qe.awaits&&(--qe.awaits==0&&(qe.id=0),qe.echoes=qe.awaits*z0,!0)}function ga(t){return qe.echoes&&t&&t.constructor===$a?(_s(),t.then(e=>(qn(),e),e=>(qn(),Me(e)))):t}function tE(t){++Xl,qe.echoes&&--qe.echoes!=0||(qe.echoes=qe.id=0),Wa.push(D),Or(t,!0)}function nE(){var t=Wa[Wa.length-1];Wa.pop(),Or(t,!1)}function Or(t,e){var n=D;if((e?!qe.echoes||rc++&&t===D:!rc||--rc&&t===D)||q0(e?tE.bind(null,t):nE),t!==D&&(D=t,n===Xi&&(Xi.env=H0()),bh)){var r=Xi.env.Promise,i=t.env;Gl.then=i.nthen,r.prototype.then=i.gthen,(n.global||t.global)&&(Object.defineProperty(ye,"Promise",i.PromiseProp),r.all=i.all,r.race=i.race,r.resolve=i.resolve,r.reject=i.reject,i.allSettled&&(r.allSettled=i.allSettled),i.any&&(r.any=i.any))}}function H0(){var t=ye.Promise;return bh?{Promise:t,PromiseProp:Object.getOwnPropertyDescriptor(ye,"Promise"),all:t.all,race:t.race,allSettled:t.allSettled,any:t.any,resolve:t.resolve,reject:t.reject,nthen:Gl.then,gthen:t.prototype.then}:{}}function ws(t,e,n,r,i){var s=D;try{return Or(t,!0),e(n,r,i)}finally{Or(s,!1)}}function q0(t){$0.call(kd,t)}function Zl(t,e,n,r){return typeof t!="function"?t:function(){var i=D;n&&_s(),Or(e,!0);try{return t.apply(this,arguments)}finally{Or(i,!1),r&&q0(qn)}}}function fy(t,e){return function(n,r){return t.call(this,Zl(n,e),Zl(r,e))}}(""+$0).indexOf("[native code]")===-1&&(_s=qn=ue);const hy="unhandledrejection";function py(t,e){var n;try{n=e.onuncatched(t)}catch{}if(n!==!1)try{var r,i={promise:e,reason:t};if(ye.document&&document.createEvent?((r=document.createEvent("Event")).initEvent(hy,!0,!0),it(r,i)):ye.CustomEvent&&it(r=new CustomEvent(hy,{detail:i}),i),r&&ye.dispatchEvent&&(dispatchEvent(r),!ye.PromiseRejectionEvent&&ye.onunhandledrejection))try{ye.onunhandledrejection(r)}catch{}Tn&&r&&!r.defaultPrevented&&console.warn(`Unhandled rejection: ${t.stack||t}`)}catch{}}var Me=B.reject;function Ad(t,e,n,r){if(t.idbdb&&(t._state.openComplete||D.letThrough||t._vip)){var i=t._createTransaction(e,n,t._dbSchema);try{i.create(),t._state.PR1398_maxLoop=3}catch(s){return s.name===wh.InvalidState&&t.isOpen()&&--t._state.PR1398_maxLoop>0?(console.warn("Dexie: Need to reopen db"),t._close(),t.open().then(()=>Ad(t,e,n,r))):Me(s)}return i._promise(e,(s,o)=>Rr(()=>(D.trans=i,r(s,o,i)))).then(s=>i._completion.then(()=>s))}if(t._state.openComplete)return Me(new A.DatabaseClosed(t._state.dbOpenError));if(!t._state.isBeingOpened){if(!t._options.autoOpen)return Me(new A.DatabaseClosed);t.open().catch(ue)}return t._state.dbReadyPromise.then(()=>Ad(t,e,n,r))}const yy="3.2.4",Xr=String.fromCharCode(65535),xd=-1/0,Nn="Invalid key provided. Keys must be of type string, number, Date or Array.",G0="String expected.",Js=[],bu=typeof navigator<"u"&&/(MSIE|Trident|Edge)/.test(navigator.userAgent),rE=bu,iE=bu,J0=t=>!/(dexie\.js|dexie\.min\.js)/.test(t),Iu="__dbnames",ic="readonly",sc="readwrite";function fi(t,e){return t?e?function(){return t.apply(this,arguments)&&e.apply(this,arguments)}:t:e}const X0={type:3,lower:-1/0,lowerOpen:!1,upper:[[]],upperOpen:!1};function va(t){return typeof t!="string"||/\./.test(t)?e=>e:e=>(e[t]===void 0&&t in e&&delete(e=Vo(e))[t],e)}class sE{_trans(e,n,r){const i=this._tx||D.trans,s=this.name;function o(l,u,c){if(!c.schema[s])throw new A.NotFound("Table "+s+" not part of transaction");return n(c.idbtrans,c)}const a=Ko();try{return i&&i.db===this.db?i===D.trans?i._promise(e,o,r):Rr(()=>i._promise(e,o,r),{trans:i,transless:D.transless||D}):Ad(this.db,e,[this.name],o)}finally{a&&Wo()}}get(e,n){return e&&e.constructor===Object?this.where(e).first(n):this._trans("readonly",r=>this.core.get({trans:r,key:e}).then(i=>this.hook.reading.fire(i))).then(n)}where(e){if(typeof e=="string")return new this.db.WhereClause(this,e);if(Ge(e))return new this.db.WhereClause(this,`[${e.join("+")}]`);const n=Be(e);if(n.length===1)return this.where(n[0]).equals(e[n[0]]);const r=this.schema.indexes.concat(this.schema.primKey).filter(u=>u.compound&&n.every(c=>u.keyPath.indexOf(c)>=0)&&u.keyPath.every(c=>n.indexOf(c)>=0))[0];if(r&&this.db._maxKey!==Xr)return this.where(r.name).equals(r.keyPath.map(u=>e[u]));!r&&Tn&&console.warn(`The query ${JSON.stringify(e)} on ${this.name} would benefit of a compound index [${n.join("+")}]`);const{idxByName:i}=this.schema,s=this.db._deps.indexedDB;function o(u,c){try{return s.cmp(u,c)===0}catch{return!1}}const[a,l]=n.reduce(([u,c],h)=>{const d=i[h],m=e[h];return[u||d,u||!d?fi(c,d&&d.multi?_=>{const v=Vn(_,h);return Ge(v)&&v.some(S=>o(m,S))}:_=>o(m,Vn(_,h))):c]},[null,null]);return a?this.where(a.name).equals(e[a.keyPath]).filter(l):r?this.filter(l):this.where(n).equals("")}filter(e){return this.toCollection().and(e)}count(e){return this.toCollection().count(e)}offset(e){return this.toCollection().offset(e)}limit(e){return this.toCollection().limit(e)}each(e){return this.toCollection().each(e)}toArray(e){return this.toCollection().toArray(e)}toCollection(){return new this.db.Collection(new this.db.WhereClause(this))}orderBy(e){return new this.db.Collection(new this.db.WhereClause(this,Ge(e)?`[${e.join("+")}]`:e))}reverse(){return this.toCollection().reverse()}mapToClass(e){this.schema.mappedClass=e;const n=r=>{if(!r)return r;const i=Object.create(e.prototype);for(var s in r)if(Bt(r,s))try{i[s]=r[s]}catch{}return i};return this.schema.readHook&&this.hook.reading.unsubscribe(this.schema.readHook),this.schema.readHook=n,this.hook("reading",n),e}defineClass(){return this.mapToClass(function(e){it(this,e)})}add(e,n){const{auto:r,keyPath:i}=this.schema.primKey;let s=e;return i&&r&&(s=va(i)(e)),this._trans("readwrite",o=>this.core.mutate({trans:o,type:"add",keys:n!=null?[n]:null,values:[s]})).then(o=>o.numFailures?B.reject(o.failures[0]):o.lastResult).then(o=>{if(i)try{en(e,i,o)}catch{}return o})}update(e,n){if(typeof e!="object"||Ge(e))return this.where(":id").equals(e).modify(n);{const r=Vn(e,this.schema.primKey.keyPath);if(r===void 0)return Me(new A.InvalidArgument("Given object does not contain its primary key"));try{typeof n!="function"?Be(n).forEach(i=>{en(e,i,n[i])}):n(e,{value:e,primKey:r})}catch{}return this.where(":id").equals(r).modify(n)}}put(e,n){const{auto:r,keyPath:i}=this.schema.primKey;let s=e;return i&&r&&(s=va(i)(e)),this._trans("readwrite",o=>this.core.mutate({trans:o,type:"put",values:[s],keys:n!=null?[n]:null})).then(o=>o.numFailures?B.reject(o.failures[0]):o.lastResult).then(o=>{if(i)try{en(e,i,o)}catch{}return o})}delete(e){return this._trans("readwrite",n=>this.core.mutate({trans:n,type:"delete",keys:[e]})).then(n=>n.numFailures?B.reject(n.failures[0]):void 0)}clear(){return this._trans("readwrite",e=>this.core.mutate({trans:e,type:"deleteRange",range:X0})).then(e=>e.numFailures?B.reject(e.failures[0]):void 0)}bulkGet(e){return this._trans("readonly",n=>this.core.getMany({keys:e,trans:n}).then(r=>r.map(i=>this.hook.reading.fire(i))))}bulkAdd(e,n,r){const i=Array.isArray(n)?n:void 0,s=(r=r||(i?void 0:n))?r.allKeys:void 0;return this._trans("readwrite",o=>{const{auto:a,keyPath:l}=this.schema.primKey;if(l&&i)throw new A.InvalidArgument("bulkAdd(): keys argument invalid on tables with inbound keys");if(i&&i.length!==e.length)throw new A.InvalidArgument("Arguments objects and keys must have the same length");const u=e.length;let c=l&&a?e.map(va(l)):e;return this.core.mutate({trans:o,type:"add",keys:i,values:c,wantResults:s}).then(({numFailures:h,results:d,lastResult:m,failures:_})=>{if(h===0)return s?d:m;throw new qs(`${this.name}.bulkAdd(): ${h} of ${u} operations failed`,_)})})}bulkPut(e,n,r){const i=Array.isArray(n)?n:void 0,s=(r=r||(i?void 0:n))?r.allKeys:void 0;return this._trans("readwrite",o=>{const{auto:a,keyPath:l}=this.schema.primKey;if(l&&i)throw new A.InvalidArgument("bulkPut(): keys argument invalid on tables with inbound keys");if(i&&i.length!==e.length)throw new A.InvalidArgument("Arguments objects and keys must have the same length");const u=e.length;let c=l&&a?e.map(va(l)):e;return this.core.mutate({trans:o,type:"put",keys:i,values:c,wantResults:s}).then(({numFailures:h,results:d,lastResult:m,failures:_})=>{if(h===0)return s?d:m;throw new qs(`${this.name}.bulkPut(): ${h} of ${u} operations failed`,_)})})}bulkDelete(e){const n=e.length;return this._trans("readwrite",r=>this.core.mutate({trans:r,type:"delete",keys:e})).then(({numFailures:r,lastResult:i,failures:s})=>{if(r===0)return i;throw new qs(`${this.name}.bulkDelete(): ${r} of ${n} operations failed`,s)})}}function Xs(t){var e={},n=function(o,a){if(a){for(var l=arguments.length,u=new Array(l-1);--l;)u[l-1]=arguments[l];return e[o].subscribe.apply(null,u),t}if(typeof o=="string")return e[o]};n.addEventType=s;for(var r=1,i=arguments.length;rfi(r(),e()):e,t.justLimit=n&&!r}function Qa(t,e){if(t.isPrimKey)return e.primaryKey;const n=e.getIndexByKeyPath(t.index);if(!n)throw new A.Schema("KeyPath "+t.index+" on object store "+e.name+" is not indexed");return n}function my(t,e,n){const r=Qa(t,e.schema);return e.openCursor({trans:n,values:!t.keysOnly,reverse:t.dir==="prev",unique:!!t.unique,query:{index:r,range:t.range}})}function _a(t,e,n,r){const i=t.replayFilter?fi(t.filter,t.replayFilter()):t.filter;if(t.or){const s={},o=(a,l,u)=>{if(!i||i(l,u,d=>l.stop(d),d=>l.fail(d))){var c=l.primaryKey,h=""+c;h==="[object ArrayBuffer]"&&(h=""+new Uint8Array(c)),Bt(s,h)||(s[h]=!0,e(a,l,u))}};return Promise.all([t.or._iterate(o,n),gy(my(t,r,n),t.algorithm,o,!t.keysOnly&&t.valueMapper)])}return gy(my(t,r,n),fi(t.algorithm,i),e,!t.keysOnly&&t.valueMapper)}function gy(t,e,n,r){var i=ve(r?(s,o,a)=>n(r(s),o,a):n);return t.then(s=>{if(s)return s.start(()=>{var o=()=>s.continue();e&&!e(s,a=>o=a,a=>{s.stop(a),o=ue},a=>{s.fail(a),o=ue})||i(s.value,s,a=>o=a),o()})})}function nt(t,e){try{const n=vy(t),r=vy(e);if(n!==r)return n==="Array"?1:r==="Array"?-1:n==="binary"?1:r==="binary"?-1:n==="string"?1:r==="string"?-1:n==="Date"?1:r!=="Date"?NaN:-1;switch(n){case"number":case"Date":case"string":return t>e?1:t_a(n,e,r,n.table.core))}count(e){return this._read(n=>{const r=this._ctx,i=r.table.core;if(_i(r,!0))return i.count({trans:n,query:{index:Qa(r,i.schema),range:r.range}}).then(o=>Math.min(o,r.limit));var s=0;return _a(r,()=>(++s,!1),n,i).then(()=>s)}).then(e)}sortBy(e,n){const r=e.split(".").reverse(),i=r[0],s=r.length-1;function o(u,c){return c?o(u[r[c]],c-1):u[i]}var a=this._ctx.dir==="next"?1:-1;function l(u,c){var h=o(u,s),d=o(c,s);return hd?a:0}return this.toArray(function(u){return u.sort(l)}).then(n)}toArray(e){return this._read(n=>{var r=this._ctx;if(r.dir==="next"&&_i(r,!0)&&r.limit>0){const{valueMapper:i}=r,s=Qa(r,r.table.core.schema);return r.table.core.query({trans:n,limit:r.limit,values:!0,query:{index:s,range:r.range}}).then(({result:o})=>i?o.map(i):o)}{const i=[];return _a(r,s=>i.push(s),n,r.table.core).then(()=>i)}},e)}offset(e){var n=this._ctx;return e<=0||(n.offset+=e,_i(n)?ac(n,()=>{var r=e;return(i,s)=>r===0||(r===1?(--r,!1):(s(()=>{i.advance(r),r=0}),!1))}):ac(n,()=>{var r=e;return()=>--r<0})),this}limit(e){return this._ctx.limit=Math.min(this._ctx.limit,e),ac(this._ctx,()=>{var n=e;return function(r,i,s){return--n<=0&&i(s),n>=0}},!0),this}until(e,n){return oc(this._ctx,function(r,i,s){return!e(r.value)||(i(s),n)}),this}first(e){return this.limit(1).toArray(function(n){return n[0]}).then(e)}last(e){return this.reverse().first(e)}filter(e){var n,r;return oc(this._ctx,function(i){return e(i.value)}),n=this._ctx,r=e,n.isMatch=fi(n.isMatch,r),this}and(e){return this.filter(e)}or(e){return new this.db.WhereClause(this._ctx.table,e,this)}reverse(){return this._ctx.dir=this._ctx.dir==="prev"?"next":"prev",this._ondirectionchange&&this._ondirectionchange(this._ctx.dir),this}desc(){return this.reverse()}eachKey(e){var n=this._ctx;return n.keysOnly=!n.isMatch,this.each(function(r,i){e(i.key,i)})}eachUniqueKey(e){return this._ctx.unique="unique",this.eachKey(e)}eachPrimaryKey(e){var n=this._ctx;return n.keysOnly=!n.isMatch,this.each(function(r,i){e(i.primaryKey,i)})}keys(e){var n=this._ctx;n.keysOnly=!n.isMatch;var r=[];return this.each(function(i,s){r.push(s.key)}).then(function(){return r}).then(e)}primaryKeys(e){var n=this._ctx;if(n.dir==="next"&&_i(n,!0)&&n.limit>0)return this._read(i=>{var s=Qa(n,n.table.core.schema);return n.table.core.query({trans:i,values:!1,limit:n.limit,query:{index:s,range:n.range}})}).then(({result:i})=>i).then(e);n.keysOnly=!n.isMatch;var r=[];return this.each(function(i,s){r.push(s.primaryKey)}).then(function(){return r}).then(e)}uniqueKeys(e){return this._ctx.unique="unique",this.keys(e)}firstKey(e){return this.limit(1).keys(function(n){return n[0]}).then(e)}lastKey(e){return this.reverse().firstKey(e)}distinct(){var e=this._ctx,n=e.index&&e.table.schema.idxByName[e.index];if(!n||!n.multi)return this;var r={};return oc(this._ctx,function(i){var s=i.primaryKey.toString(),o=Bt(r,s);return r[s]=!0,!o}),this}modify(e){var n=this._ctx;return this._write(r=>{var i;if(typeof e=="function")i=e;else{var s=Be(e),o=s.length;i=function(v){for(var S=!1,p=0;p{const{failures:p,numFailures:f}=S;d+=v-f;for(let y of Be(p))h.push(p[y])};return this.clone().primaryKeys().then(v=>{const S=p=>{const f=Math.min(c,v.length-p);return a.getMany({trans:r,keys:v.slice(p,p+f),cache:"immutable"}).then(y=>{const w=[],I=[],E=l?[]:null,b=[];for(let k=0;k0&&a.mutate({trans:r,type:"add",values:w}).then(k=>{for(let O in k.failures)b.splice(parseInt(O),1);_(w.length,k)})).then(()=>(I.length>0||T&&typeof e=="object")&&a.mutate({trans:r,type:"put",keys:E,values:I,criteria:T,changeSpec:typeof e!="function"&&e}).then(k=>_(I.length,k))).then(()=>(b.length>0||T&&e===lc)&&a.mutate({trans:r,type:"delete",keys:b,criteria:T}).then(k=>_(b.length,k))).then(()=>v.length>p+f&&S(p+c))})};return S(0).then(()=>{if(h.length>0)throw new ql("Error modifying one or more objects",h,d,m);return v.length})})})}delete(){var e=this._ctx,n=e.range;return _i(e)&&(e.isPrimKey&&!iE||n.type===3)?this._write(r=>{const{primaryKey:i}=e.table.core.schema,s=n;return e.table.core.count({trans:r,query:{index:i,range:s}}).then(o=>e.table.core.mutate({trans:r,type:"deleteRange",range:s}).then(({failures:a,lastResult:l,results:u,numFailures:c})=>{if(c)throw new ql("Could not delete some values",Object.keys(a).map(h=>a[h]),o-c);return o-c}))}):this.modify(lc)}}const lc=(t,e)=>e.value=null;function aE(t,e){return te?-1:t===e?0:1}function wt(t,e,n){var r=t instanceof e_?new t.Collection(t):t;return r._ctx.error=n?new n(e):new TypeError(e),r}function wi(t){return new t.Collection(t,()=>Z0("")).limit(0)}function uE(t,e,n,r,i,s){for(var o=Math.min(t.length,r.length),a=-1,l=0;l=0?t.substr(0,a)+e[a]+n.substr(a+1):null;i(t[l],u)<0&&(a=l)}return otypeof v=="string"))return wt(t,G0);function d(v){i=function(p){return p==="next"?f=>f.toUpperCase():f=>f.toLowerCase()}(v),s=function(p){return p==="next"?f=>f.toLowerCase():f=>f.toUpperCase()}(v),o=v==="next"?aE:lE;var S=n.map(function(p){return{lower:s(p),upper:i(p)}}).sort(function(p,f){return o(p.lower,f.lower)});a=S.map(function(p){return p.upper}),l=S.map(function(p){return p.lower}),u=v,c=v==="next"?"":r}d("next");var m=new t.Collection(t,()=>nr(a[0],l[h-1]+r));m._ondirectionchange=function(v){d(v)};var _=0;return m._addAlgorithm(function(v,S,p){var f=v.key;if(typeof f!="string")return!1;var y=s(f);if(e(y,l,_))return!0;for(var w=null,I=_;I0)&&(w=E)}return S(w!==null?function(){v.continue(w+c)}:p),!1}),m}function nr(t,e,n,r){return{type:2,lower:t,upper:e,lowerOpen:n,upperOpen:r}}function Z0(t){return{type:1,lower:t,upper:t}}class e_{get Collection(){return this._ctx.table.db.Collection}between(e,n,r,i){r=r!==!1,i=i===!0;try{return this._cmp(e,n)>0||this._cmp(e,n)===0&&(r||i)&&(!r||!i)?wi(this):new this.Collection(this,()=>nr(e,n,!r,!i))}catch{return wt(this,Nn)}}equals(e){return e==null?wt(this,Nn):new this.Collection(this,()=>Z0(e))}above(e){return e==null?wt(this,Nn):new this.Collection(this,()=>nr(e,void 0,!0))}aboveOrEqual(e){return e==null?wt(this,Nn):new this.Collection(this,()=>nr(e,void 0,!1))}below(e){return e==null?wt(this,Nn):new this.Collection(this,()=>nr(void 0,e,!1,!0))}belowOrEqual(e){return e==null?wt(this,Nn):new this.Collection(this,()=>nr(void 0,e))}startsWith(e){return typeof e!="string"?wt(this,G0):this.between(e,e+Xr,!0,!0)}startsWithIgnoreCase(e){return e===""?this.startsWith(e):wa(this,(n,r)=>n.indexOf(r[0])===0,[e],Xr)}equalsIgnoreCase(e){return wa(this,(n,r)=>n===r[0],[e],"")}anyOfIgnoreCase(){var e=Mn.apply(ki,arguments);return e.length===0?wi(this):wa(this,(n,r)=>r.indexOf(n)!==-1,e,"")}startsWithAnyOfIgnoreCase(){var e=Mn.apply(ki,arguments);return e.length===0?wi(this):wa(this,(n,r)=>r.some(i=>n.indexOf(i)===0),e,Xr)}anyOf(){const e=Mn.apply(ki,arguments);let n=this._cmp;try{e.sort(n)}catch{return wt(this,Nn)}if(e.length===0)return wi(this);const r=new this.Collection(this,()=>nr(e[0],e[e.length-1]));r._ondirectionchange=s=>{n=s==="next"?this._ascending:this._descending,e.sort(n)};let i=0;return r._addAlgorithm((s,o,a)=>{const l=s.key;for(;n(l,e[i])>0;)if(++i,i===e.length)return o(a),!1;return n(l,e[i])===0||(o(()=>{s.continue(e[i])}),!1)}),r}notEqual(e){return this.inAnyRange([[xd,e],[e,this.db._maxKey]],{includeLowers:!1,includeUppers:!1})}noneOf(){const e=Mn.apply(ki,arguments);if(e.length===0)return new this.Collection(this);try{e.sort(this._ascending)}catch{return wt(this,Nn)}const n=e.reduce((r,i)=>r?r.concat([[r[r.length-1][1],i]]):[[xd,i]],null);return n.push([e[e.length-1],this.db._maxKey]),this.inAnyRange(n,{includeLowers:!1,includeUppers:!1})}inAnyRange(e,n){const r=this._cmp,i=this._ascending,s=this._descending,o=this._min,a=this._max;if(e.length===0)return wi(this);if(!e.every(f=>f[0]!==void 0&&f[1]!==void 0&&i(f[0],f[1])<=0))return wt(this,"First argument to inAnyRange() must be an Array of two-value Arrays [lower,upper] where upper must not be lower than lower",A.InvalidArgument);const l=!n||n.includeLowers!==!1,u=n&&n.includeUppers===!0;let c,h=i;function d(f,y){return h(f[0],y[0])}try{c=e.reduce(function(f,y){let w=0,I=f.length;for(;w0){E[0]=o(E[0],y[0]),E[1]=a(E[1],y[1]);break}}return w===I&&f.push(y),f},[]),c.sort(d)}catch{return wt(this,Nn)}let m=0;const _=u?f=>i(f,c[m][1])>0:f=>i(f,c[m][1])>=0,v=l?f=>s(f,c[m][0])>0:f=>s(f,c[m][0])>=0;let S=_;const p=new this.Collection(this,()=>nr(c[0][0],c[c.length-1][1],!l,!u));return p._ondirectionchange=f=>{f==="next"?(S=_,h=i):(S=v,h=s),c.sort(d)},p._addAlgorithm((f,y,w)=>{for(var I=f.key;S(I);)if(++m,m===c.length)return y(w),!1;return!!function(E){return!_(E)&&!v(E)}(I)||(this._cmp(I,c[m][1])===0||this._cmp(I,c[m][0])===0||y(()=>{h===i?f.continue(c[m][0]):f.continue(c[m][1])}),!1)}),p}startsWithAnyOf(){const e=Mn.apply(ki,arguments);return e.every(n=>typeof n=="string")?e.length===0?wi(this):this.inAnyRange(e.map(n=>[n,n+Xr])):wt(this,"startsWithAnyOf() only works with strings")}}function dn(t){return ve(function(e){return Oo(e),t(e.target.error),!1})}function Oo(t){t.stopPropagation&&t.stopPropagation(),t.preventDefault&&t.preventDefault()}const Fo="storagemutated",cr="x-storagemutated-1",Fr=Xs(null,Fo);class cE{_lock(){return Ms(!D.global),++this._reculock,this._reculock!==1||D.global||(D.lockOwnerFor=this),this}_unlock(){if(Ms(!D.global),--this._reculock==0)for(D.global||(D.lockOwnerFor=null);this._blockedFuncs.length>0&&!this._locked();){var e=this._blockedFuncs.shift();try{ws(e[1],e[0])}catch{}}return this}_locked(){return this._reculock&&D.lockOwnerFor!==this}create(e){if(!this.mode)return this;const n=this.db.idbdb,r=this.db._state.dbOpenError;if(Ms(!this.idbtrans),!e&&!n)switch(r&&r.name){case"DatabaseClosedError":throw new A.DatabaseClosed(r);case"MissingAPIError":throw new A.MissingAPI(r.message,r);default:throw new A.OpenFailed(r)}if(!this.active)throw new A.TransactionInactive;return Ms(this._completion._state===null),(e=this.idbtrans=e||(this.db.core?this.db.core.transaction(this.storeNames,this.mode,{durability:this.chromeTransactionDurability}):n.transaction(this.storeNames,this.mode,{durability:this.chromeTransactionDurability}))).onerror=ve(i=>{Oo(i),this._reject(e.error)}),e.onabort=ve(i=>{Oo(i),this.active&&this._reject(new A.Abort(e.error)),this.active=!1,this.on("abort").fire(i)}),e.oncomplete=ve(()=>{this.active=!1,this._resolve(),"mutatedParts"in e&&Fr.storagemutated.fire(e.mutatedParts)}),this}_promise(e,n,r){if(e==="readwrite"&&this.mode!=="readwrite")return Me(new A.ReadOnly("Transaction is readonly"));if(!this.active)return Me(new A.TransactionInactive);if(this._locked())return new B((s,o)=>{this._blockedFuncs.push([()=>{this._promise(e,n,r).then(s,o)},D])});if(r)return Rr(()=>{var s=new B((o,a)=>{this._lock();const l=n(o,a,this);l&&l.then&&l.then(o,a)});return s.finally(()=>this._unlock()),s._lib=!0,s});var i=new B((s,o)=>{var a=n(s,o,this);a&&a.then&&a.then(s,o)});return i._lib=!0,i}_root(){return this.parent?this.parent._root():this}waitFor(e){var n=this._root();const r=B.resolve(e);if(n._waitingFor)n._waitingFor=n._waitingFor.then(()=>r);else{n._waitingFor=r,n._waitingQueue=[];var i=n.idbtrans.objectStore(n.storeNames[0]);(function o(){for(++n._spinCount;n._waitingQueue.length;)n._waitingQueue.shift()();n._waitingFor&&(i.get(-1/0).onsuccess=o)})()}var s=n._waitingFor;return new B((o,a)=>{r.then(l=>n._waitingQueue.push(ve(o.bind(null,l))),l=>n._waitingQueue.push(ve(a.bind(null,l)))).finally(()=>{n._waitingFor===s&&(n._waitingFor=null)})})}abort(){this.active&&(this.active=!1,this.idbtrans&&this.idbtrans.abort(),this._reject(new A.Abort))}table(e){const n=this._memoizedTables||(this._memoizedTables={});if(Bt(n,e))return n[e];const r=this.schema[e];if(!r)throw new A.NotFound("Table "+e+" not part of transaction");const i=new this.db.Table(e,r,this);return i.core=this.db.core.table(e),n[e]=i,i}}function Cd(t,e,n,r,i,s,o){return{name:t,keyPath:e,unique:n,multi:r,auto:i,compound:s,src:(n&&!o?"&":"")+(r?"*":"")+(i?"++":"")+t_(e)}}function t_(t){return typeof t=="string"?t:t?"["+[].join.call(t,"+")+"]":""}function n_(t,e,n){return{name:t,primKey:e,indexes:n,mappedClass:null,idxByName:A0(n,r=>[r.name,r])}}let Bo=t=>{try{return t.only([[]]),Bo=()=>[[]],[[]]}catch{return Bo=()=>Xr,Xr}};function Ld(t){return t==null?()=>{}:typeof t=="string"?function(e){return e.split(".").length===1?r=>r[e]:r=>Vn(r,e)}(t):e=>Vn(e,t)}function wy(t){return[].slice.call(t)}let dE=0;function Zs(t){return t==null?":id":typeof t=="string"?t:`[${t.join("+")}]`}function fE(t,e,n){function r(l){if(l.type===3)return null;if(l.type===4)throw new Error("Cannot convert never type to IDBKeyRange");const{lower:u,upper:c,lowerOpen:h,upperOpen:d}=l;return u===void 0?c===void 0?null:e.upperBound(c,!!d):c===void 0?e.lowerBound(u,!!h):e.bound(u,c,!!h,!!d)}const{schema:i,hasGetAll:s}=function(l,u){const c=wy(l.objectStoreNames);return{schema:{name:l.name,tables:c.map(h=>u.objectStore(h)).map(h=>{const{keyPath:d,autoIncrement:m}=h,_=Ge(d),v=d==null,S={},p={name:h.name,primaryKey:{name:null,isPrimaryKey:!0,outbound:v,compound:_,keyPath:d,autoIncrement:m,unique:!0,extractKey:Ld(d)},indexes:wy(h.indexNames).map(f=>h.index(f)).map(f=>{const{name:y,unique:w,multiEntry:I,keyPath:E}=f,b={name:y,compound:Ge(E),keyPath:E,unique:w,multiEntry:I,extractKey:Ld(E)};return S[Zs(E)]=b,b}),getIndexByKeyPath:f=>S[Zs(f)]};return S[":id"]=p.primaryKey,d!=null&&(S[Zs(d)]=p.primaryKey),p})},hasGetAll:c.length>0&&"getAll"in u.objectStore(c[0])&&!(typeof navigator<"u"&&/Safari/.test(navigator.userAgent)&&!/(Chrome\/|Edge\/)/.test(navigator.userAgent)&&[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]<604)}}(t,n),o=i.tables.map(l=>function(u){const c=u.name;return{name:c,schema:u,mutate:function({trans:h,type:d,keys:m,values:_,range:v}){return new Promise((S,p)=>{S=ve(S);const f=h.objectStore(c),y=f.keyPath==null,w=d==="put"||d==="add";if(!w&&d!=="delete"&&d!=="deleteRange")throw new Error("Invalid operation type: "+d);const{length:I}=m||_||{length:1};if(m&&_&&m.length!==_.length)throw new Error("Given keys array must have same length as given values array.");if(I===0)return S({numFailures:0,failures:{},results:[],lastResult:void 0});let E;const b=[],T=[];let k=0;const O=we=>{++k,Oo(we)};if(d==="deleteRange"){if(v.type===4)return S({numFailures:k,failures:T,results:[],lastResult:void 0});v.type===3?b.push(E=f.clear()):b.push(E=f.delete(r(v)))}else{const[we,Te]=w?y?[_,m]:[_,null]:[m,null];if(w)for(let he=0;he{const Te=we.target.result;b.forEach((he,Zn)=>he.error!=null&&(T[Zn]=he.error)),S({numFailures:k,failures:T,results:d==="delete"?m:b.map(he=>he.result),lastResult:Te})};E.onerror=we=>{O(we),C(we)},E.onsuccess=C})},getMany:({trans:h,keys:d})=>new Promise((m,_)=>{m=ve(m);const v=h.objectStore(c),S=d.length,p=new Array(S);let f,y=0,w=0;const I=b=>{const T=b.target;p[T._pos]=T.result,++w===y&&m(p)},E=dn(_);for(let b=0;bnew Promise((m,_)=>{m=ve(m);const v=h.objectStore(c).get(d);v.onsuccess=S=>m(S.target.result),v.onerror=dn(_)}),query:function(h){return d=>new Promise((m,_)=>{m=ve(m);const{trans:v,values:S,limit:p,query:f}=d,y=p===1/0?void 0:p,{index:w,range:I}=f,E=v.objectStore(c),b=w.isPrimaryKey?E:E.index(w.name),T=r(I);if(p===0)return m({result:[]});if(h){const k=S?b.getAll(T,y):b.getAllKeys(T,y);k.onsuccess=O=>m({result:O.target.result}),k.onerror=dn(_)}else{let k=0;const O=S||!("openKeyCursor"in b)?b.openCursor(T):b.openKeyCursor(T),C=[];O.onsuccess=we=>{const Te=O.result;return Te?(C.push(S?Te.value:Te.primaryKey),++k===p?m({result:C}):void Te.continue()):m({result:C})},O.onerror=dn(_)}})}(s),openCursor:function({trans:h,values:d,query:m,reverse:_,unique:v}){return new Promise((S,p)=>{S=ve(S);const{index:f,range:y}=m,w=h.objectStore(c),I=f.isPrimaryKey?w:w.index(f.name),E=_?v?"prevunique":"prev":v?"nextunique":"next",b=d||!("openKeyCursor"in I)?I.openCursor(r(y),E):I.openKeyCursor(r(y),E);b.onerror=dn(p),b.onsuccess=ve(T=>{const k=b.result;if(!k)return void S(null);k.___id=++dE,k.done=!1;const O=k.continue.bind(k);let C=k.continuePrimaryKey;C&&(C=C.bind(k));const we=k.advance.bind(k),Te=()=>{throw new Error("Cursor not stopped")};k.trans=h,k.stop=k.continue=k.continuePrimaryKey=k.advance=()=>{throw new Error("Cursor not started")},k.fail=ve(p),k.next=function(){let he=1;return this.start(()=>he--?this.continue():this.stop()).then(()=>this)},k.start=he=>{const Zn=new Promise((Pe,R)=>{Pe=ve(Pe),b.onerror=dn(R),k.fail=R,k.stop=x=>{k.stop=k.continue=k.continuePrimaryKey=k.advance=Te,Pe(x)}}),sn=()=>{if(b.result)try{he()}catch(Pe){k.fail(Pe)}else k.done=!0,k.start=()=>{throw new Error("Cursor behind last entry")},k.stop()};return b.onsuccess=ve(Pe=>{b.onsuccess=sn,sn()}),k.continue=O,k.continuePrimaryKey=C,k.advance=we,sn(),Zn},S(k)},p)})},count({query:h,trans:d}){const{index:m,range:_}=h;return new Promise((v,S)=>{const p=d.objectStore(c),f=m.isPrimaryKey?p:p.index(m.name),y=r(_),w=y?f.count(y):f.count();w.onsuccess=ve(I=>v(I.target.result)),w.onerror=dn(S)})}}}(l)),a={};return o.forEach(l=>a[l.name]=l),{stack:"dbcore",transaction:t.transaction.bind(t),table(l){if(!a[l])throw new Error(`Table '${l}' not found`);return a[l]},MIN_KEY:-1/0,MAX_KEY:Bo(e),schema:i}}function Md({_novip:t},e){const n=e.db,r=function(i,s,{IDBKeyRange:o,indexedDB:a},l){return{dbcore:function(c,h){return h.reduce((d,{create:m})=>({...d,...m(d)}),c)}(fE(s,o,l),i.dbcore)}}(t._middlewares,n,t._deps,e);t.core=r.dbcore,t.tables.forEach(i=>{const s=i.name;t.core.schema.tables.some(o=>o.name===s)&&(i.core=t.core.table(s),t[s]instanceof t.Table&&(t[s].core=i.core))})}function eu({_novip:t},e,n,r){n.forEach(i=>{const s=r[i];e.forEach(o=>{const a=gh(o,i);(!a||"value"in a&&a.value===void 0)&&(o===t.Transaction.prototype||o instanceof t.Transaction?$n(o,i,{get(){return this.table(i)},set(l){F0(this,i,{value:l,writable:!0,configurable:!0,enumerable:!0})}}):o[i]=new t.Table(i,s))})})}function Pd({_novip:t},e){e.forEach(n=>{for(let r in n)n[r]instanceof t.Table&&delete n[r]})}function hE(t,e){return t._cfg.version-e._cfg.version}function pE(t,e,n,r){const i=t._dbSchema,s=t._createTransaction("readwrite",t._storeNames,i);s.create(n),s._completion.catch(r);const o=s._reject.bind(s),a=D.transless||D;Rr(()=>{D.trans=s,D.transless=a,e===0?(Be(i).forEach(l=>{uc(n,l,i[l].primKey,i[l].indexes)}),Md(t,n),B.follow(()=>t.on.populate.fire(s)).catch(o)):function({_novip:l},u,c,h){const d=[],m=l._versions;let _=l._dbSchema=jd(l,l.idbdb,h),v=!1;const S=m.filter(f=>f._cfg.version>=u);function p(){return d.length?B.resolve(d.shift()(c.idbtrans)).then(p):B.resolve()}return S.forEach(f=>{d.push(()=>{const y=_,w=f._cfg.dbschema;zd(l,y,h),zd(l,w,h),_=l._dbSchema=w;const I=r_(y,w);I.add.forEach(b=>{uc(h,b[0],b[1].primKey,b[1].indexes)}),I.change.forEach(b=>{if(b.recreate)throw new A.Upgrade("Not yet support for changing primary key");{const T=h.objectStore(b.name);b.add.forEach(k=>Ud(T,k)),b.change.forEach(k=>{T.deleteIndex(k.name),Ud(T,k)}),b.del.forEach(k=>T.deleteIndex(k))}});const E=f._cfg.contentUpgrade;if(E&&f._cfg.version>u){Md(l,h),c._memoizedTables={},v=!0;let b=x0(w);I.del.forEach(C=>{b[C]=y[C]}),Pd(l,[l.Transaction.prototype]),eu(l,[l.Transaction.prototype],Be(b),b),c.schema=b;const T=vh(E);let k;T&&_s();const O=B.follow(()=>{if(k=E(c),k&&T){var C=qn.bind(null,null);k.then(C,C)}});return k&&typeof k.then=="function"?B.resolve(k):O.then(()=>k)}}),d.push(y=>{(!v||!rE)&&function(w,I){[].slice.call(I.db.objectStoreNames).forEach(E=>w[E]==null&&I.db.deleteObjectStore(E))}(f._cfg.dbschema,y),Pd(l,[l.Transaction.prototype]),eu(l,[l.Transaction.prototype],l._storeNames,l._dbSchema),c.schema=l._dbSchema})}),p().then(()=>{var f,y;y=h,Be(f=_).forEach(w=>{y.db.objectStoreNames.contains(w)||uc(y,w,f[w].primKey,f[w].indexes)})})}(t,e,s,n).catch(o)})}function r_(t,e){const n={del:[],add:[],change:[]};let r;for(r in t)e[r]||n.del.push(r);for(r in e){const i=t[r],s=e[r];if(i){const o={name:r,def:s,recreate:!1,del:[],add:[],change:[]};if(""+(i.primKey.keyPath||"")!=""+(s.primKey.keyPath||"")||i.primKey.auto!==s.primKey.auto&&!bu)o.recreate=!0,n.change.push(o);else{const a=i.idxByName,l=s.idxByName;let u;for(u in a)l[u]||o.del.push(u);for(u in l){const c=a[u],h=l[u];c?c.src!==h.src&&o.change.push(h):o.add.push(h)}(o.del.length>0||o.add.length>0||o.change.length>0)&&n.change.push(o)}}else n.add.push([r,s])}return n}function uc(t,e,n,r){const i=t.db.createObjectStore(e,n.keyPath?{keyPath:n.keyPath,autoIncrement:n.auto}:{autoIncrement:n.auto});return r.forEach(s=>Ud(i,s)),i}function Ud(t,e){t.createIndex(e.name,e.keyPath,{unique:e.unique,multiEntry:e.multi})}function jd(t,e,n){const r={};return Hl(e.objectStoreNames,0).forEach(i=>{const s=n.objectStore(i);let o=s.keyPath;const a=Cd(t_(o),o||"",!1,!1,!!s.autoIncrement,o&&typeof o!="string",!0),l=[];for(let c=0;c{if(e[r]!==null){var i=e[r].split(",").map((o,a)=>{const l=(o=o.trim()).replace(/([&*]|\+\+)/g,""),u=/^\[/.test(l)?l.match(/^\[(.*)\]$/)[1].split("+"):l;return Cd(l,u||null,/\&/.test(o),/\*/.test(o),/\+\+/.test(o),Ge(u),a===0)}),s=i.shift();if(s.multi)throw new A.Schema("Primary key cannot be multi-valued");i.forEach(o=>{if(o.auto)throw new A.Schema("Only primary key can be marked as autoIncrement (++)");if(!o.keyPath)throw new A.Schema("Index must have a name and cannot be an empty string")}),n[r]=n_(r,s,i)}})}stores(e){const n=this.db;this._cfg.storesSource=this._cfg.storesSource?it(this._cfg.storesSource,e):e;const r=n._versions,i={};let s={};return r.forEach(o=>{it(i,o._cfg.storesSource),s=o._cfg.dbschema={},o._parseStoresSpec(i,s)}),n._dbSchema=s,Pd(n,[n._allTables,n,n.Transaction.prototype]),eu(n,[n._allTables,n,n.Transaction.prototype,this._cfg.tables],Be(s),s),n._storeNames=Be(s),this}upgrade(e){return this._cfg.contentUpgrade=Sh(this._cfg.contentUpgrade||ue,e),this}}function kh(t,e){let n=t._dbNamesDB;return n||(n=t._dbNamesDB=new ii(Iu,{addons:[],indexedDB:t,IDBKeyRange:e}),n.version(1).stores({dbnames:"name"})),n.table("dbnames")}function Th(t){return t&&typeof t.databases=="function"}function $d(t){return Rr(function(){return D.letThrough=!0,t()})}function mE(){var t;return!navigator.userAgentData&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\//.test(navigator.userAgent)&&indexedDB.databases?new Promise(function(e){var n=function(){return indexedDB.databases().finally(e)};t=setInterval(n,100),n()}).finally(function(){return clearInterval(t)}):Promise.resolve()}function gE(t){const e=t._state,{indexedDB:n}=t._deps;if(e.isBeingOpened||t.idbdb)return e.dbReadyPromise.then(()=>e.dbOpenError?Me(e.dbOpenError):t);Tn&&(e.openCanceller._stackHolder=mi()),e.isBeingOpened=!0,e.dbOpenError=null,e.openComplete=!1;const r=e.openCanceller;function i(){if(e.openCanceller!==r)throw new A.DatabaseClosed("db.open() was cancelled")}let s=e.dbReadyResolve,o=null,a=!1;return B.race([r,(typeof navigator>"u"?B.resolve():mE()).then(()=>new B((l,u)=>{if(i(),!n)throw new A.MissingAPI;const c=t.name,h=e.autoSchema?n.open(c):n.open(c,Math.round(10*t.verno));if(!h)throw new A.MissingAPI;h.onerror=dn(u),h.onblocked=ve(t._fireOnBlocked),h.onupgradeneeded=ve(d=>{if(o=h.transaction,e.autoSchema&&!t._options.allowEmptyDB){h.onerror=Oo,o.abort(),h.result.close();const _=n.deleteDatabase(c);_.onsuccess=_.onerror=ve(()=>{u(new A.NoSuchDatabase(`Database ${c} doesnt exist`))})}else{o.onerror=dn(u);var m=d.oldVersion>Math.pow(2,62)?0:d.oldVersion;a=m<1,t._novip.idbdb=h.result,pE(t,m/10,o,u)}},u),h.onsuccess=ve(()=>{o=null;const d=t._novip.idbdb=h.result,m=Hl(d.objectStoreNames);if(m.length>0)try{const v=d.transaction((_=m).length===1?_[0]:_,"readonly");e.autoSchema?function({_novip:S},p,f){S.verno=p.version/10;const y=S._dbSchema=jd(0,p,f);S._storeNames=Hl(p.objectStoreNames,0),eu(S,[S._allTables],Be(y),y)}(t,d,v):(zd(t,t._dbSchema,v),function(S,p){const f=r_(jd(0,S.idbdb,p),S._dbSchema);return!(f.add.length||f.change.some(y=>y.add.length||y.change.length))}(t,v)||console.warn("Dexie SchemaDiff: Schema was extended without increasing the number passed to db.version(). Some queries may fail.")),Md(t,v)}catch{}var _;Js.push(t),d.onversionchange=ve(v=>{e.vcFired=!0,t.on("versionchange").fire(v)}),d.onclose=ve(v=>{t.on("close").fire(v)}),a&&function({indexedDB:v,IDBKeyRange:S},p){!Th(v)&&p!==Iu&&kh(v,S).put({name:p}).catch(ue)}(t._deps,c),l()},u)}))]).then(()=>(i(),e.onReadyBeingFired=[],B.resolve($d(()=>t.on.ready.fire(t.vip))).then(function l(){if(e.onReadyBeingFired.length>0){let u=e.onReadyBeingFired.reduce(Sh,ue);return e.onReadyBeingFired=[],B.resolve($d(()=>u(t.vip))).then(l)}}))).finally(()=>{e.onReadyBeingFired=null,e.isBeingOpened=!1}).then(()=>t).catch(l=>{e.dbOpenError=l;try{o&&o.abort()}catch{}return r===e.openCanceller&&t._close(),Me(l)}).finally(()=>{e.openComplete=!0,s()})}function Vd(t){var e=s=>t.next(s),n=i(e),r=i(s=>t.throw(s));function i(s){return o=>{var a=s(o),l=a.value;return a.done?l:l&&typeof l.then=="function"?l.then(n,r):Ge(l)?Promise.all(l).then(n,r):n(l)}}return i(e)()}function vE(t,e,n){var r=arguments.length;if(r<2)throw new A.InvalidArgument("Too few arguments");for(var i=new Array(r-1);--r;)i[r-1]=arguments[r];return n=i.pop(),[t,C0(i),n]}function i_(t,e,n,r,i){return B.resolve().then(()=>{const s=D.transless||D,o=t._createTransaction(e,n,t._dbSchema,r),a={trans:o,transless:s};if(r)o.idbtrans=r.idbtrans;else try{o.create(),t._state.PR1398_maxLoop=3}catch(h){return h.name===wh.InvalidState&&t.isOpen()&&--t._state.PR1398_maxLoop>0?(console.warn("Dexie: Need to reopen db"),t._close(),t.open().then(()=>i_(t,e,n,null,i))):Me(h)}const l=vh(i);let u;l&&_s();const c=B.follow(()=>{if(u=i.call(o,o),u)if(l){var h=qn.bind(null,null);u.then(h,h)}else typeof u.next=="function"&&typeof u.throw=="function"&&(u=Vd(u))},a);return(u&&typeof u.then=="function"?B.resolve(u).then(h=>o.active?h:Me(new A.PrematureCommit("Transaction committed too early. See http://bit.ly/2kdckMn"))):c.then(()=>u)).then(h=>(r&&o._resolve(),o._completion.then(()=>h))).catch(h=>(o._reject(h),Me(h)))})}function Sa(t,e,n){const r=Ge(t)?t.slice():[t];for(let i=0;i0,p={...d,isVirtual:S,keyTail:h,keyLength:v,extractKey:Ld(c),unique:!S&&d.unique};return _.push(p),p.isPrimaryKey||s.push(p),v>1&&o(v===2?c[0]:c.slice(0,v-1),h+1,d),_.sort((f,y)=>f.keyTail-y.keyTail),p}const a=o(r.primaryKey.keyPath,0,r.primaryKey);i[":id"]=[a];for(const c of r.indexes)o(c.keyPath,0,c);function l(c){const h=c.query.index;return h.isVirtual?{...c,query:{index:h,range:(d=c.query.range,m=h.keyTail,{type:d.type===1?2:d.type,lower:Sa(d.lower,d.lowerOpen?t.MAX_KEY:t.MIN_KEY,m),lowerOpen:!0,upper:Sa(d.upper,d.upperOpen?t.MIN_KEY:t.MAX_KEY,m),upperOpen:!0})}}:c;var d,m}return{...n,schema:{...r,primaryKey:a,indexes:s,getIndexByKeyPath:function(c){const h=i[Zs(c)];return h&&h[0]}},count:c=>n.count(l(c)),query:c=>n.query(l(c)),openCursor(c){const{keyTail:h,isVirtual:d,keyLength:m}=c.query.index;return d?n.openCursor(l(c)).then(_=>_&&function(v){return Object.create(v,{continue:{value:function(p){p!=null?v.continue(Sa(p,c.reverse?t.MAX_KEY:t.MIN_KEY,h)):c.unique?v.continue(v.key.slice(0,m).concat(c.reverse?t.MIN_KEY:t.MAX_KEY,h)):v.continue()}},continuePrimaryKey:{value(p,f){v.continuePrimaryKey(Sa(p,t.MAX_KEY,h),f)}},primaryKey:{get:()=>v.primaryKey},key:{get(){const p=v.key;return m===1?p[0]:p.slice(0,m)}},value:{get:()=>v.value}})}(_)):n.openCursor(c)}}}}}};function Nh(t,e,n,r){return n=n||{},r=r||"",Be(t).forEach(i=>{if(Bt(e,i)){var s=t[i],o=e[i];if(typeof s=="object"&&typeof o=="object"&&s&&o){const a=bd(s);a!==bd(o)?n[r+i]=e[i]:a==="Object"?Nh(s,o,n,r+i+"."):s!==o&&(n[r+i]=e[i])}else s!==o&&(n[r+i]=e[i])}else n[r+i]=void 0}),Be(e).forEach(i=>{Bt(t,i)||(n[r+i]=e[i])}),n}const wE={stack:"dbcore",name:"HooksMiddleware",level:2,create:t=>({...t,table(e){const n=t.table(e),{primaryKey:r}=n.schema;return{...n,mutate(s){const o=D.trans,{deleting:a,creating:l,updating:u}=o.table(e).hook;switch(s.type){case"add":if(l.fire===ue)break;return o._promise("readwrite",()=>c(s),!0);case"put":if(l.fire===ue&&u.fire===ue)break;return o._promise("readwrite",()=>c(s),!0);case"delete":if(a.fire===ue)break;return o._promise("readwrite",()=>c(s),!0);case"deleteRange":if(a.fire===ue)break;return o._promise("readwrite",()=>function(d){return h(d.trans,d.range,1e4)}(s),!0)}return n.mutate(s);function c(d){const m=D.trans,_=d.keys||function(v,S){return S.type==="delete"?S.keys:S.keys||S.values.map(v.extractKey)}(r,d);if(!_)throw new Error("Keys missing");return(d=d.type==="add"||d.type==="put"?{...d,keys:_}:{...d}).type!=="delete"&&(d.values=[...d.values]),d.keys&&(d.keys=[...d.keys]),function(v,S,p){return S.type==="add"?Promise.resolve([]):v.getMany({trans:S.trans,keys:p,cache:"immutable"})}(n,d,_).then(v=>{const S=_.map((p,f)=>{const y=v[f],w={onerror:null,onsuccess:null};if(d.type==="delete")a.fire.call(w,p,y,m);else if(d.type==="add"||y===void 0){const I=l.fire.call(w,p,d.values[f],m);p==null&&I!=null&&(p=I,d.keys[f]=p,r.outbound||en(d.values[f],r.keyPath,p))}else{const I=Nh(y,d.values[f]),E=u.fire.call(w,I,p,y,m);if(E){const b=d.values[f];Object.keys(E).forEach(T=>{Bt(b,T)?b[T]=E[T]:en(b,T,E[T])})}}return w});return n.mutate(d).then(({failures:p,results:f,numFailures:y,lastResult:w})=>{for(let I=0;I<_.length;++I){const E=f?f[I]:_[I],b=S[I];E==null?b.onerror&&b.onerror(p[I]):b.onsuccess&&b.onsuccess(d.type==="put"&&v[I]?d.values[I]:E)}return{failures:p,results:f,numFailures:y,lastResult:w}}).catch(p=>(S.forEach(f=>f.onerror&&f.onerror(p)),Promise.reject(p)))})}function h(d,m,_){return n.query({trans:d,values:!1,query:{index:r,range:m},limit:_}).then(({result:v})=>c({type:"delete",keys:v,trans:d}).then(S=>S.numFailures>0?Promise.reject(S.failures[0]):v.length<_?{failures:[],numFailures:0,lastResult:void 0}:h(d,{...m,lower:v[v.length-1],lowerOpen:!0},_)))}}}}})};function s_(t,e,n){try{if(!e||e.keys.length({table:e=>{const n=t.table(e);return{...n,getMany:r=>{if(!r.cache)return n.getMany(r);const i=s_(r.keys,r.trans._cache,r.cache==="clone");return i?B.resolve(i):n.getMany(r).then(s=>(r.trans._cache={keys:r.keys,values:r.cache==="clone"?Vo(s):s},s))},mutate:r=>(r.type!=="add"&&(r.trans._cache=null),n.mutate(r))}}})};function Rh(t){return!("from"in t)}const xn=function(t,e){if(!this){const n=new xn;return t&&"d"in t&&it(n,t),n}it(this,arguments.length?{d:1,from:t,to:arguments.length>1?e:t}:{d:0})};function Do(t,e,n){const r=nt(e,n);if(isNaN(r))return;if(r>0)throw RangeError();if(Rh(t))return it(t,{from:e,to:n,d:1});const i=t.l,s=t.r;if(nt(n,t.from)<0)return i?Do(i,e,n):t.l={from:e,to:n,d:1,l:null,r:null},Sy(t);if(nt(e,t.to)>0)return s?Do(s,e,n):t.r={from:e,to:n,d:1,l:null,r:null},Sy(t);nt(e,t.from)<0&&(t.from=e,t.l=null,t.d=s?s.d+1:1),nt(n,t.to)>0&&(t.to=n,t.r=null,t.d=t.l?t.l.d+1:1);const o=!t.r;i&&!t.l&&tu(t,i),s&&o&&tu(t,s)}function tu(t,e){Rh(e)||function n(r,{from:i,to:s,l:o,r:a}){Do(r,i,s),o&&n(r,o),a&&n(r,a)}(t,e)}function bE(t,e){const n=Kd(e);let r=n.next();if(r.done)return!1;let i=r.value;const s=Kd(t);let o=s.next(i.from),a=o.value;for(;!r.done&&!o.done;){if(nt(a.from,i.to)<=0&&nt(a.to,i.from)>=0)return!0;nt(i.from,a.from)<0?i=(r=n.next(a.from)).value:a=(o=s.next(i.from)).value}return!1}function Kd(t){let e=Rh(t)?null:{s:0,n:t};return{next(n){const r=arguments.length>0;for(;e;)switch(e.s){case 0:if(e.s=1,r)for(;e.n.l&&nt(n,e.n.from)<0;)e={up:e,n:e.n.l,s:1};else for(;e.n.l;)e={up:e,n:e.n.l,s:1};case 1:if(e.s=2,!r||nt(n,e.n.to)<=0)return{value:e.n,done:!1};case 2:if(e.n.r){e.s=3,e={up:e,n:e.n.r,s:0};continue}case 3:e=e.up}return{done:!0}}}}function Sy(t){var e,n;const r=(((e=t.r)===null||e===void 0?void 0:e.d)||0)-(((n=t.l)===null||n===void 0?void 0:n.d)||0),i=r>1?"r":r<-1?"l":"";if(i){const s=i==="r"?"l":"r",o={...t},a=t[i];t.from=a.from,t.to=a.to,t[i]=a[i],o[i]=a[s],t[s]=o,o.d=by(o)}t.d=by(t)}function by({r:t,l:e}){return(t?e?Math.max(t.d,e.d):t.d:e?e.d:0)+1}hs(xn.prototype,{add(t){return tu(this,t),this},addKey(t){return Do(this,t,t),this},addKeys(t){return t.forEach(e=>Do(this,e,e)),this},[Id](){return Kd(this)}});const IE={stack:"dbcore",level:0,create:t=>{const e=t.schema.name,n=new xn(t.MIN_KEY,t.MAX_KEY);return{...t,table:r=>{const i=t.table(r),{schema:s}=i,{primaryKey:o}=s,{extractKey:a,outbound:l}=o,u={...i,mutate:d=>{const m=d.trans,_=m.mutatedParts||(m.mutatedParts={}),v=E=>{const b=`idb://${e}/${r}/${E}`;return _[b]||(_[b]=new xn)},S=v(""),p=v(":dels"),{type:f}=d;let[y,w]=d.type==="deleteRange"?[d.range]:d.type==="delete"?[d.keys]:d.values.length<50?[[],d.values]:[];const I=d.trans._cache;return i.mutate(d).then(E=>{if(Ge(y)){f!=="delete"&&(y=E.results),S.addKeys(y);const b=s_(y,I);b||f==="add"||p.addKeys(y),(b||w)&&function(T,k,O,C){function we(Te){const he=T(Te.name||"");function Zn(Pe){return Pe!=null?Te.extractKey(Pe):null}const sn=Pe=>Te.multiEntry&&Ge(Pe)?Pe.forEach(R=>he.addKey(R)):he.addKey(Pe);(O||C).forEach((Pe,R)=>{const x=O&&Zn(O[R]),W=C&&Zn(C[R]);nt(x,W)!==0&&(x!=null&&sn(x),W!=null&&sn(W))})}k.indexes.forEach(we)}(v,s,b,w)}else if(y){const b={from:y.lower,to:y.upper};p.add(b),S.add(b)}else S.add(n),p.add(n),s.indexes.forEach(b=>v(b.name).add(n));return E})}},c=({query:{index:d,range:m}})=>{var _,v;return[d,new xn((_=m.lower)!==null&&_!==void 0?_:t.MIN_KEY,(v=m.upper)!==null&&v!==void 0?v:t.MAX_KEY)]},h={get:d=>[o,new xn(d.key)],getMany:d=>[o,new xn().addKeys(d.keys)],count:c,query:c,openCursor:c};return Be(h).forEach(d=>{u[d]=function(m){const{subscr:_}=D;if(_){const v=w=>{const I=`idb://${e}/${r}/${w}`;return _[I]||(_[I]=new xn)},S=v(""),p=v(":dels"),[f,y]=h[d](m);if(v(f.name||"").add(y),!f.isPrimaryKey){if(d!=="count"){const w=d==="query"&&l&&m.values&&i.query({...m,values:!1});return i[d].apply(this,arguments).then(I=>{if(d==="query"){if(l&&m.values)return w.then(({result:b})=>(S.addKeys(b),I));const E=m.values?I.result.map(a):I.result;m.values?S.addKeys(E):p.addKeys(E)}else if(d==="openCursor"){const E=I,b=m.values;return E&&Object.create(E,{key:{get:()=>(p.addKey(E.primaryKey),E.key)},primaryKey:{get(){const T=E.primaryKey;return p.addKey(T),T}},value:{get:()=>(b&&S.addKey(E.primaryKey),E.value)}})}return I})}p.add(n)}}return i[d].apply(this,arguments)}}),u}}}};class ii{constructor(e,n){this._middlewares={},this.verno=0;const r=ii.dependencies;this._options=n={addons:ii.addons,autoOpen:!0,indexedDB:r.indexedDB,IDBKeyRange:r.IDBKeyRange,...n},this._deps={indexedDB:n.indexedDB,IDBKeyRange:n.IDBKeyRange};const{addons:i}=n;this._dbSchema={},this._versions=[],this._storeNames=[],this._allTables={},this.idbdb=null,this._novip=this;const s={dbOpenError:null,isBeingOpened:!1,onReadyBeingFired:null,openComplete:!1,dbReadyResolve:ue,dbReadyPromise:null,cancelOpen:ue,openCanceller:null,autoSchema:!0,PR1398_maxLoop:3};var o;s.dbReadyPromise=new B(a=>{s.dbReadyResolve=a}),s.openCanceller=new B((a,l)=>{s.cancelOpen=l}),this._state=s,this.name=e,this.on=Xs(this,"populate","blocked","versionchange","close",{ready:[Sh,ue]}),this.on.ready.subscribe=B0(this.on.ready.subscribe,a=>(l,u)=>{ii.vip(()=>{const c=this._state;if(c.openComplete)c.dbOpenError||B.resolve().then(l),u&&a(l);else if(c.onReadyBeingFired)c.onReadyBeingFired.push(l),u&&a(l);else{a(l);const h=this;u||a(function d(){h.on.ready.unsubscribe(l),h.on.ready.unsubscribe(d)})}})}),this.Collection=(o=this,Bs(oE.prototype,function(a,l){this.db=o;let u=X0,c=null;if(l)try{u=l()}catch(_){c=_}const h=a._ctx,d=h.table,m=d.hook.reading.fire;this._ctx={table:d,index:h.index,isPrimKey:!h.index||d.schema.primKey.keyPath&&h.index===d.schema.primKey.name,range:u,keysOnly:!1,dir:"next",unique:"",algorithm:null,filter:null,replayFilter:null,justLimit:!0,isMatch:null,offset:0,limit:1/0,error:c,or:h.or,valueMapper:m!==No?m:null}})),this.Table=function(a){return Bs(sE.prototype,function(l,u,c){this.db=a,this._tx=c,this.name=l,this.schema=u,this.hook=a._allTables[l]?a._allTables[l].hook:Xs(null,{creating:[YI,ue],reading:[QI,No],updating:[qI,ue],deleting:[HI,ue]})})}(this),this.Transaction=function(a){return Bs(cE.prototype,function(l,u,c,h,d){this.db=a,this.mode=l,this.storeNames=u,this.schema=c,this.chromeTransactionDurability=h,this.idbtrans=null,this.on=Xs(this,"complete","error","abort"),this.parent=d||null,this.active=!0,this._reculock=0,this._blockedFuncs=[],this._resolve=null,this._reject=null,this._waitingFor=null,this._waitingQueue=null,this._spinCount=0,this._completion=new B((m,_)=>{this._resolve=m,this._reject=_}),this._completion.then(()=>{this.active=!1,this.on.complete.fire()},m=>{var _=this.active;return this.active=!1,this.on.error.fire(m),this.parent?this.parent._reject(m):_&&this.idbtrans&&this.idbtrans.abort(),Me(m)})})}(this),this.Version=function(a){return Bs(yE.prototype,function(l){this.db=a,this._cfg={version:l,storesSource:null,dbschema:{},tables:{},contentUpgrade:null}})}(this),this.WhereClause=function(a){return Bs(e_.prototype,function(l,u,c){this.db=a,this._ctx={table:l,index:u===":id"?null:u,or:c};const h=a._deps.indexedDB;if(!h)throw new A.MissingAPI;this._cmp=this._ascending=h.cmp.bind(h),this._descending=(d,m)=>h.cmp(m,d),this._max=(d,m)=>h.cmp(d,m)>0?d:m,this._min=(d,m)=>h.cmp(d,m)<0?d:m,this._IDBKeyRange=a._deps.IDBKeyRange})}(this),this.on("versionchange",a=>{a.newVersion>0?console.warn(`Another connection wants to upgrade database '${this.name}'. Closing db now to resume the upgrade.`):console.warn(`Another connection wants to delete database '${this.name}'. Closing db now to resume the delete request.`),this.close()}),this.on("blocked",a=>{!a.newVersion||a.newVersionnew this.Transaction(a,l,u,this._options.chromeTransactionDurability,c),this._fireOnBlocked=a=>{this.on("blocked").fire(a),Js.filter(l=>l.name===this.name&&l!==this&&!l._state.vcFired).map(l=>l.on("versionchange").fire(a))},this.use(_E),this.use(wE),this.use(IE),this.use(SE),this.vip=Object.create(this,{_vip:{value:!0}}),i.forEach(a=>a(this))}version(e){if(isNaN(e)||e<.1)throw new A.Type("Given version is not a positive number");if(e=Math.round(10*e)/10,this.idbdb||this._state.isBeingOpened)throw new A.Schema("Cannot add version when database is open");this.verno=Math.max(this.verno,e);const n=this._versions;var r=n.filter(i=>i._cfg.version===e)[0];return r||(r=new this.Version(e),n.push(r),n.sort(hE),r.stores({}),this._state.autoSchema=!1,r)}_whenReady(e){return this.idbdb&&(this._state.openComplete||D.letThrough||this._vip)?e():new B((n,r)=>{if(this._state.openComplete)return r(new A.DatabaseClosed(this._state.dbOpenError));if(!this._state.isBeingOpened){if(!this._options.autoOpen)return void r(new A.DatabaseClosed);this.open().catch(ue)}this._state.dbReadyPromise.then(n,r)}).then(e)}use({stack:e,create:n,level:r,name:i}){i&&this.unuse({stack:e,name:i});const s=this._middlewares[e]||(this._middlewares[e]=[]);return s.push({stack:e,create:n,level:r??10,name:i}),s.sort((o,a)=>o.level-a.level),this}unuse({stack:e,name:n,create:r}){return e&&this._middlewares[e]&&(this._middlewares[e]=this._middlewares[e].filter(i=>r?i.create!==r:!!n&&i.name!==n)),this}open(){return gE(this)}_close(){const e=this._state,n=Js.indexOf(this);if(n>=0&&Js.splice(n,1),this.idbdb){try{this.idbdb.close()}catch{}this._novip.idbdb=null}e.dbReadyPromise=new B(r=>{e.dbReadyResolve=r}),e.openCanceller=new B((r,i)=>{e.cancelOpen=i})}close(){this._close();const e=this._state;this._options.autoOpen=!1,e.dbOpenError=new A.DatabaseClosed,e.isBeingOpened&&e.cancelOpen(e.dbOpenError)}delete(){const e=arguments.length>0,n=this._state;return new B((r,i)=>{const s=()=>{this.close();var o=this._deps.indexedDB.deleteDatabase(this.name);o.onsuccess=ve(()=>{(function({indexedDB:a,IDBKeyRange:l},u){!Th(a)&&u!==Iu&&kh(a,l).delete(u).catch(ue)})(this._deps,this.name),r()}),o.onerror=dn(i),o.onblocked=this._fireOnBlocked};if(e)throw new A.InvalidArgument("Arguments not allowed in db.delete()");n.isBeingOpened?n.dbReadyPromise.then(s):s()})}backendDB(){return this.idbdb}isOpen(){return this.idbdb!==null}hasBeenClosed(){const e=this._state.dbOpenError;return e&&e.name==="DatabaseClosed"}hasFailed(){return this._state.dbOpenError!==null}dynamicallyOpened(){return this._state.autoSchema}get tables(){return Be(this._allTables).map(e=>this._allTables[e])}transaction(){const e=vE.apply(this,arguments);return this._transaction.apply(this,e)}_transaction(e,n,r){let i=D.trans;i&&i.db===this&&e.indexOf("!")===-1||(i=null);const s=e.indexOf("?")!==-1;let o,a;e=e.replace("!","").replace("?","");try{if(a=n.map(u=>{var c=u instanceof this.Table?u.name:u;if(typeof c!="string")throw new TypeError("Invalid table argument to Dexie.transaction(). Only Table or String are allowed");return c}),e=="r"||e===ic)o=ic;else{if(e!="rw"&&e!=sc)throw new A.InvalidArgument("Invalid transaction mode: "+e);o=sc}if(i){if(i.mode===ic&&o===sc){if(!s)throw new A.SubTransaction("Cannot enter a sub-transaction with READWRITE mode when parent transaction is READONLY");i=null}i&&a.forEach(u=>{if(i&&i.storeNames.indexOf(u)===-1){if(!s)throw new A.SubTransaction("Table "+u+" not included in parent transaction.");i=null}}),s&&i&&!i.active&&(i=null)}}catch(u){return i?i._promise(null,(c,h)=>{h(u)}):Me(u)}const l=i_.bind(null,this,o,a,i,r);return i?i._promise(o,l,"lock"):D.trans?ws(D.transless,()=>this._whenReady(l)):this._whenReady(l)}table(e){if(!Bt(this._allTables,e))throw new A.InvalidTable(`Table ${e} does not exist`);return this._allTables[e]}}const EE=typeof Symbol<"u"&&"observable"in Symbol?Symbol.observable:"@@observable";class kE{constructor(e){this._subscribe=e}subscribe(e,n,r){return this._subscribe(e&&typeof e!="function"?e:{next:e,error:n,complete:r})}[EE](){return this}}function o_(t,e){return Be(e).forEach(n=>{tu(t[n]||(t[n]=new xn),e[n])}),t}function TE(t){let e,n=!1;const r=new kE(i=>{const s=vh(t);let o=!1,a={},l={};const u={get closed(){return o},unsubscribe:()=>{o=!0,Fr.storagemutated.unsubscribe(m)}};i.start&&i.start(u);let c=!1,h=!1;function d(){return Be(l).some(v=>a[v]&&bE(a[v],l[v]))}const m=v=>{o_(a,v),d()&&_()},_=()=>{if(c||o)return;a={};const v={},S=function(p){s&&_s();const f=()=>Rr(t,{subscr:p,trans:null}),y=D.trans?ws(D.transless,f):f();return s&&y.then(qn,qn),y}(v);h||(Fr(Fo,m),h=!0),c=!0,Promise.resolve(S).then(p=>{n=!0,e=p,c=!1,o||(d()?_():(a={},l=v,i.next&&i.next(p)))},p=>{c=!1,n=!1,i.error&&i.error(p),u.unsubscribe()})};return _(),u});return r.hasValue=()=>n,r.getValue=()=>e,r}let Wd;try{Wd={indexedDB:ye.indexedDB||ye.mozIndexedDB||ye.webkitIndexedDB||ye.msIndexedDB,IDBKeyRange:ye.IDBKeyRange||ye.webkitIDBKeyRange}}catch{Wd={indexedDB:null,IDBKeyRange:null}}const jr=ii;function Ya(t){let e=jn;try{jn=!0,Fr.storagemutated.fire(t)}finally{jn=e}}hs(jr,{...za,delete:t=>new jr(t,{addons:[]}).delete(),exists:t=>new jr(t,{addons:[]}).open().then(e=>(e.close(),!0)).catch("NoSuchDatabaseError",()=>!1),getDatabaseNames(t){try{return function({indexedDB:e,IDBKeyRange:n}){return Th(e)?Promise.resolve(e.databases()).then(r=>r.map(i=>i.name).filter(i=>i!==Iu)):kh(e,n).toCollection().primaryKeys()}(jr.dependencies).then(t)}catch{return Me(new A.MissingAPI)}},defineClass:()=>function(t){it(this,t)},ignoreTransaction:t=>D.trans?ws(D.transless,t):t(),vip:$d,async:function(t){return function(){try{var e=Vd(t.apply(this,arguments));return e&&typeof e.then=="function"?e:B.resolve(e)}catch(n){return Me(n)}}},spawn:function(t,e,n){try{var r=Vd(t.apply(n,e||[]));return r&&typeof r.then=="function"?r:B.resolve(r)}catch(i){return Me(i)}},currentTransaction:{get:()=>D.trans||null},waitFor:function(t,e){const n=B.resolve(typeof t=="function"?jr.ignoreTransaction(t):t).timeout(e||6e4);return D.trans?D.trans.waitFor(n):n},Promise:B,debug:{get:()=>Tn,set:t=>{M0(t,t==="dexie"?()=>!0:J0)}},derive:Gi,extend:it,props:hs,override:B0,Events:Xs,on:Fr,liveQuery:TE,extendObservabilitySet:o_,getByKeyPath:Vn,setByKeyPath:en,delByKeyPath:function(t,e){typeof e=="string"?en(t,e,void 0):"length"in e&&[].map.call(e,function(n){en(t,n,void 0)})},shallowClone:x0,deepClone:Vo,getObjectDiff:Nh,cmp:nt,asap:D0,minKey:xd,addons:[],connections:Js,errnames:wh,dependencies:Wd,semVer:yy,version:yy.split(".").map(t=>parseInt(t)).reduce((t,e,n)=>t+e/Math.pow(10,2*n))}),jr.maxKey=Bo(jr.dependencies.IDBKeyRange),typeof dispatchEvent<"u"&&typeof addEventListener<"u"&&(Fr(Fo,t=>{if(!jn){let e;bu?(e=document.createEvent("CustomEvent"),e.initCustomEvent(cr,!0,!0,t)):e=new CustomEvent(cr,{detail:t}),jn=!0,dispatchEvent(e),jn=!1}}),addEventListener(cr,({detail:t})=>{jn||Ya(t)}));let jn=!1;if(typeof BroadcastChannel<"u"){const t=new BroadcastChannel(cr);typeof t.unref=="function"&&t.unref(),Fr(Fo,e=>{jn||t.postMessage(e)}),t.onmessage=e=>{e.data&&Ya(e.data)}}else if(typeof self<"u"&&typeof navigator<"u"){Fr(Fo,e=>{try{jn||(typeof localStorage<"u"&&localStorage.setItem(cr,JSON.stringify({trig:Math.random(),changedParts:e})),typeof self.clients=="object"&&[...self.clients.matchAll({includeUncontrolled:!0})].forEach(n=>n.postMessage({type:cr,changedParts:e})))}catch{}}),typeof addEventListener<"u"&&addEventListener("storage",e=>{if(e.key===cr){const n=JSON.parse(e.newValue);n&&Ya(n.changedParts)}});const t=self.document&&navigator.serviceWorker;t&&t.addEventListener("message",function({data:e}){e&&e.type===cr&&Ya(e.changedParts)})}B.rejectionMapper=function(t,e){if(!t||t instanceof Ji||t instanceof TypeError||t instanceof SyntaxError||!t.name||!dy[t.name])return t;var n=new dy[t.name](e||t.message,t);return"stack"in t&&$n(n,"stack",{get:function(){return this.inner.stack}}),n},M0(Tn,J0);class NE extends ii{constructor(){super("MeerkatDatabase");q(this,"tablesKey");q(this,"files");this.version(1).stores({tablesKey:"&tableName",files:"&fileName"}),this.tablesKey=this.table("tablesKey"),this.files=this.table("files")}}const RE=500*1024*1024;class OE{constructor({fetchTableFileBuffers:e,instanceManager:n,options:r,logger:i,onEvent:s}){q(this,"indexedDB");q(this,"instanceManager");q(this,"fileRegisterer");q(this,"configurationOptions");q(this,"logger");q(this,"onEvent");q(this,"fetchTableFileBuffers");this.fetchTableFileBuffers=e,this.indexedDB=new NE,this.instanceManager=n,this.fileRegisterer=new CI({instanceManager:n}),this.configurationOptions=r,this.logger=i,this.onEvent=s}async _flushDB(){await this.indexedDB.tablesKey.clear(),await this.indexedDB.files.clear()}async initializeDB(){}async bulkRegisterFileBuffer(e){const n=Array.from(new Set(e.map(a=>a.tableName))),r=await this.indexedDB.tablesKey.toArray(),i=uy(e,r),s=n.map(a=>{var l;return{tableName:a,files:((l=i.get(a))==null?void 0:l.files)??[]}}),o=e.map(a=>({buffer:a.buffer,fileName:a.fileName}));await this.indexedDB.transaction("rw",this.indexedDB.tablesKey,this.indexedDB.files,async()=>{await this.indexedDB.tablesKey.bulkPut(s),await this.indexedDB.files.bulkPut(o)}).catch(a=>{console.error(a)})}async registerFileBuffer(e){const{buffer:n,fileName:r,tableName:i}=e,s=await this.indexedDB.tablesKey.toArray(),o=uy([e],s);await this.indexedDB.transaction("rw",this.indexedDB.tablesKey,this.indexedDB.files,async()=>{var a;await this.indexedDB.tablesKey.put({tableName:e.tableName,files:((a=o.get(i))==null?void 0:a.files)??[]}),await this.indexedDB.files.put({fileName:r,buffer:n})}).catch(a=>{console.error(a)})}async bulkRegisterJSON(e){const n=await Promise.all(e.map(async r=>{const{json:i,tableName:s,...o}=r;return{buffer:await ay({instanceManager:this.instanceManager,json:i,tableName:s,logger:this.logger,onEvent:this.onEvent,metadata:r.metadata}),tableName:s,...o}}));await this.bulkRegisterFileBuffer(n)}async registerJSON(e){const{json:n,tableName:r,...i}=e,s=await ay({instanceManager:this.instanceManager,json:n,tableName:r,logger:this.logger,onEvent:this.onEvent,metadata:e.metadata});await this.registerFileBuffer({buffer:s,tableName:r,...i})}async getFileBuffer(e){const n=await this.indexedDB.files.get(e);return n==null?void 0:n.buffer}async getFilesNameForTables(e){const n=e.map(i=>i.name),r=(await this.indexedDB.tablesKey.bulkGet(n)).filter(ly).reduce((i,s)=>(i[s.tableName]=s,i),{});return e.map(i=>{var s;return{tableName:i.name,files:cy(((s=r[i.name])==null?void 0:s.files)??[],i.partitions)}})}async fileCleanUpIfRequired(e){var i;const n=((i=this.configurationOptions)==null?void 0:i.maxFileSize)??RE;if(this.fileRegisterer.totalByteLength()>n){const s=this.fileRegisterer.getAllFilesInDB(),o=[];for(const a of e)for(const l of(a==null?void 0:a.files)??[])s.includes(l.fileName)||o.push(l.fileName);for(const a of o)await this.fileRegisterer.registerEmptyFileBuffer(a)}}async mountFileBufferByTables(e){const n=await this.getFilesNameForTables(e);console.log("tableData",n),this.fileCleanUpIfRequired(n);const r=n.map(async i=>{var u;const o=((i==null?void 0:i.files)||[]).map(c=>c.fileName).filter(c=>!this.fileRegisterer.isFileRegisteredInDB(c));console.log("filesList",o);const a=Array.from(new Set(o)),l=await((u=this.indexedDB)==null?void 0:u.files.bulkGet(a));await Promise.all(l.filter(ly).map(async c=>{await this.fileRegisterer.registerFileBuffer(c.fileName,c.buffer)}))});await Promise.all(r)}async getTableData(e){const n=await this.indexedDB.tablesKey.get(e.name);if(n)return{...n,files:cy((n==null?void 0:n.files)??[],e.partitions)}}async setTableMetadata(e,n){await this.indexedDB.tablesKey.update(e,{metadata:n})}async dropFilesByTableName(e,n){const r=await this.indexedDB.tablesKey.get(e);if(r){const i=r.files.filter(s=>!n.includes(s.fileName));await this.indexedDB.tablesKey.put({tableName:e,files:i})}await this.indexedDB.files.bulkDelete(n)}async onDBShutdownHandler(){this.fileRegisterer.flushFileCache()}}class FE extends OE{constructor(e){super(e)}async initializeDB(){}async bulkRegisterFileBuffer(e){}async registerFileBuffer(e){}async bulkRegisterJSON(e){}async registerJSON(e){}async setTableMetadata(e,n){}async dropFilesByTableName(e,n){}}var a_={exports:{}};(function(t){(function(e,n){t.exports?t.exports=n():e.log=n()})(f_,function(){var e=function(){},n="undefined",r=typeof window!==n&&typeof window.navigator!==n&&/Trident\/|MSIE /.test(window.navigator.userAgent),i=["trace","debug","info","warn","error"];function s(v,S){var p=v[S];if(typeof p.bind=="function")return p.bind(v);try{return Function.prototype.bind.call(p,v)}catch{return function(){return Function.prototype.apply.apply(p,[v,arguments])}}}function o(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function a(v){return v==="debug"&&(v="log"),typeof console===n?!1:v==="trace"&&r?o:console[v]!==void 0?s(console,v):console.log!==void 0?s(console,"log"):e}function l(v,S){for(var p=0;p=0&&k<=f.levels.SILENT){if(y=k,O!==!1&&I(k),l.call(f,k,v),typeof console===n&&k()=>(e||t((e={exports:{}}).exports,e),e.exports),PE=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of xE(e))!LE.call(t,i)&&i!==n&&l_(t,i,{get:()=>e[i],enumerable:!(r=AE(e,i))||r.enumerable});return t},UE=(t,e,n)=>(n=t!=null?DE(CE(t)):{},PE(e||!t||!t.__esModule?l_(n,"default",{value:t,enumerable:!0}):n,t)),jE=ME((t,e)=>{e.exports=Worker}),zE=(t=>(t[t.UNDEFINED=0]="UNDEFINED",t[t.AUTOMATIC=1]="AUTOMATIC",t[t.READ_ONLY=2]="READ_ONLY",t[t.READ_WRITE=3]="READ_WRITE",t))(zE||{}),$E=(t=>(t[t.IDENTIFIER=0]="IDENTIFIER",t[t.NUMERIC_CONSTANT=1]="NUMERIC_CONSTANT",t[t.STRING_CONSTANT=2]="STRING_CONSTANT",t[t.OPERATOR=3]="OPERATOR",t[t.KEYWORD=4]="KEYWORD",t[t.COMMENT=5]="COMMENT",t))($E||{}),VE=(t=>(t[t.NONE=0]="NONE",t[t.DEBUG=1]="DEBUG",t[t.INFO=2]="INFO",t[t.WARNING=3]="WARNING",t[t.ERROR=4]="ERROR",t))(VE||{}),KE=(t=>(t[t.NONE=0]="NONE",t[t.CONNECT=1]="CONNECT",t[t.DISCONNECT=2]="DISCONNECT",t[t.OPEN=3]="OPEN",t[t.QUERY=4]="QUERY",t[t.INSTANTIATE=5]="INSTANTIATE",t))(KE||{}),WE=(t=>(t[t.NONE=0]="NONE",t[t.OK=1]="OK",t[t.ERROR=2]="ERROR",t[t.START=3]="START",t[t.RUN=4]="RUN",t[t.CAPTURE=5]="CAPTURE",t))(WE||{}),QE=(t=>(t[t.NONE=0]="NONE",t[t.WEB_WORKER=1]="WEB_WORKER",t[t.NODE_WORKER=2]="NODE_WORKER",t[t.BINDINGS=3]="BINDINGS",t[t.ASYNC_DUCKDB=4]="ASYNC_DUCKDB",t))(QE||{}),YE=(t=>(t[t.SUCCESS=0]="SUCCESS",t))(YE||{}),HE=class{constructor(t,e){this._bindings=t,this._conn=e}get bindings(){return this._bindings}async close(){return this._bindings.disconnect(this._conn)}useUnsafe(t){return t(this._bindings,this._conn)}async query(t){this._bindings.logger.log({timestamp:new Date,level:2,origin:4,topic:4,event:4,value:t});let e=await this._bindings.runQuery(this._conn,t),n=$t.from(e);return console.assert(n.isSync(),"Reader is not sync"),console.assert(n.isFile(),"Reader is not file"),new Ze(n)}async send(t){this._bindings.logger.log({timestamp:new Date,level:2,origin:4,topic:4,event:4,value:t});let e=await this._bindings.startPendingQuery(this._conn,t);for(;e==null;)e=await this._bindings.pollPendingQuery(this._conn);let n=new u_(this._bindings,this._conn,e),r=await $t.from(n);return console.assert(r.isAsync()),console.assert(r.isStream()),r}async cancelSent(){return await this._bindings.cancelPendingQuery(this._conn)}async getTableNames(t){return await this._bindings.getTableNames(this._conn,t)}async prepare(t){let e=await this._bindings.createPrepared(this._conn,t);return new qE(this._bindings,this._conn,e)}async insertArrowTable(t,e){let n=FI(t,"stream");await this.insertArrowFromIPCStream(n,e)}async insertArrowFromIPCStream(t,e){await this._bindings.insertArrowFromIPCStream(this._conn,t,e)}async insertCSVFromPath(t,e){await this._bindings.insertCSVFromPath(this._conn,t,e)}async insertJSONFromPath(t,e){await this._bindings.insertJSONFromPath(this._conn,t,e)}},u_=class{constructor(t,e,n){this.db=t,this.conn=e,this.header=n,this._first=!0,this._depleted=!1,this._inFlight=null}async next(){if(this._first)return this._first=!1,{done:!1,value:this.header};if(this._depleted)return{done:!0,value:null};let t;return this._inFlight!=null?(t=await this._inFlight,this._inFlight=null):t=await this.db.fetchQueryResults(this.conn),this._depleted=t.length==0,this._depleted||(this._inFlight=this.db.fetchQueryResults(this.conn)),{done:this._depleted,value:t}}[Symbol.asyncIterator](){return this}},qE=class{constructor(t,e,n){this.bindings=t,this.connectionId=e,this.statementId=n}async close(){await this.bindings.closePrepared(this.connectionId,this.statementId)}async query(...t){let e=await this.bindings.runPrepared(this.connectionId,this.statementId,t),n=$t.from(e);return console.assert(n.isSync()),console.assert(n.isFile()),new Ze(n)}async send(...t){let e=await this.bindings.sendPrepared(this.connectionId,this.statementId,t),n=new u_(this.bindings,this.connectionId,e),r=await $t.from(n);return console.assert(r.isAsync()),console.assert(r.isStream()),r}},GE=(t=>(t.CANCEL_PENDING_QUERY="CANCEL_PENDING_QUERY",t.CLOSE_PREPARED="CLOSE_PREPARED",t.COLLECT_FILE_STATISTICS="COLLECT_FILE_STATISTICS",t.CONNECT="CONNECT",t.COPY_FILE_TO_BUFFER="COPY_FILE_TO_BUFFER",t.COPY_FILE_TO_PATH="COPY_FILE_TO_PATH",t.CREATE_PREPARED="CREATE_PREPARED",t.DISCONNECT="DISCONNECT",t.DROP_FILE="DROP_FILE",t.DROP_FILES="DROP_FILES",t.EXPORT_FILE_STATISTICS="EXPORT_FILE_STATISTICS",t.FETCH_QUERY_RESULTS="FETCH_QUERY_RESULTS",t.FLUSH_FILES="FLUSH_FILES",t.GET_FEATURE_FLAGS="GET_FEATURE_FLAGS",t.GET_TABLE_NAMES="GET_TABLE_NAMES",t.GET_VERSION="GET_VERSION",t.GLOB_FILE_INFOS="GLOB_FILE_INFOS",t.INSERT_ARROW_FROM_IPC_STREAM="INSERT_ARROW_FROM_IPC_STREAM",t.INSERT_CSV_FROM_PATH="IMPORT_CSV_FROM_PATH",t.INSERT_JSON_FROM_PATH="IMPORT_JSON_FROM_PATH",t.INSTANTIATE="INSTANTIATE",t.OPEN="OPEN",t.PING="PING",t.POLL_PENDING_QUERY="POLL_PENDING_QUERY",t.REGISTER_FILE_BUFFER="REGISTER_FILE_BUFFER",t.REGISTER_FILE_HANDLE="REGISTER_FILE_HANDLE",t.REGISTER_FILE_URL="REGISTER_FILE_URL",t.RESET="RESET",t.RUN_PREPARED="RUN_PREPARED",t.RUN_QUERY="RUN_QUERY",t.SEND_PREPARED="SEND_PREPARED",t.START_PENDING_QUERY="START_PENDING_QUERY",t.TOKENIZE="TOKENIZE",t))(GE||{}),JE=(t=>(t.CONNECTION_INFO="CONNECTION_INFO",t.ERROR="ERROR",t.FEATURE_FLAGS="FEATURE_FLAGS",t.FILE_BUFFER="FILE_BUFFER",t.FILE_INFOS="FILE_INFOS",t.FILE_SIZE="FILE_SIZE",t.FILE_STATISTICS="FILE_STATISTICS",t.INSTANTIATE_PROGRESS="INSTANTIATE_PROGRESS",t.LOG="LOG",t.OK="OK",t.PREPARED_STATEMENT_ID="PREPARED_STATEMENT_ID",t.QUERY_PLAN="QUERY_PLAN",t.QUERY_RESULT="QUERY_RESULT",t.QUERY_RESULT_CHUNK="QUERY_RESULT_CHUNK",t.QUERY_RESULT_HEADER="QUERY_RESULT_HEADER",t.QUERY_RESULT_HEADER_OR_NULL="QUERY_RESULT_HEADER_OR_NULL",t.REGISTERED_FILE="REGISTERED_FILE",t.SCRIPT_TOKENS="SCRIPT_TOKENS",t.SUCCESS="SUCCESS",t.TABLE_NAMES="TABLE_NAMES",t.VERSION_STRING="VERSION_STRING",t))(JE||{}),Z=class{constructor(t,e){this.promiseResolver=()=>{},this.promiseRejecter=()=>{},this.type=t,this.data=e,this.promise=new Promise((n,r)=>{this.promiseResolver=n,this.promiseRejecter=r})}};function Ha(t){switch(t.typeId){case g.Binary:return{sqlType:"binary"};case g.Bool:return{sqlType:"bool"};case g.Date:return{sqlType:"date"};case g.DateDay:return{sqlType:"date32[d]"};case g.DateMillisecond:return{sqlType:"date64[ms]"};case g.Decimal:{let e=t;return{sqlType:"decimal",precision:e.precision,scale:e.scale}}case g.Float:return{sqlType:"float"};case g.Float16:return{sqlType:"float16"};case g.Float32:return{sqlType:"float32"};case g.Float64:return{sqlType:"float64"};case g.Int:return{sqlType:"int32"};case g.Int16:return{sqlType:"int16"};case g.Int32:return{sqlType:"int32"};case g.Int64:return{sqlType:"int64"};case g.Uint16:return{sqlType:"uint16"};case g.Uint32:return{sqlType:"uint32"};case g.Uint64:return{sqlType:"uint64"};case g.Uint8:return{sqlType:"uint8"};case g.IntervalDayTime:return{sqlType:"interval[dt]"};case g.IntervalYearMonth:return{sqlType:"interval[m]"};case g.List:return{sqlType:"list",valueType:Ha(t.valueType)};case g.FixedSizeBinary:return{sqlType:"fixedsizebinary",byteWidth:t.byteWidth};case g.Null:return{sqlType:"null"};case g.Utf8:return{sqlType:"utf8"};case g.Struct:return{sqlType:"struct",fields:t.children.map(e=>Qd(e.name,e.type))};case g.Map:{let e=t;return{sqlType:"map",keyType:Ha(e.keyType),valueType:Ha(e.valueType)}}case g.Time:return{sqlType:"time[s]"};case g.TimeMicrosecond:return{sqlType:"time[us]"};case g.TimeMillisecond:return{sqlType:"time[ms]"};case g.TimeNanosecond:return{sqlType:"time[ns]"};case g.TimeSecond:return{sqlType:"time[s]"};case g.Timestamp:return{sqlType:"timestamp",timezone:t.timezone||void 0};case g.TimestampSecond:return{sqlType:"timestamp[s]",timezone:t.timezone||void 0};case g.TimestampMicrosecond:return{sqlType:"timestamp[us]",timezone:t.timezone||void 0};case g.TimestampNanosecond:return{sqlType:"timestamp[ns]",timezone:t.timezone||void 0};case g.TimestampMillisecond:return{sqlType:"timestamp[ms]",timezone:t.timezone||void 0}}throw new Error("unsupported arrow type: ".concat(t.toString()))}function Qd(t,e){let n=Ha(e);return n.name=t,n}var XE=new TextEncoder,ZE=class{constructor(t,e=null){this._onInstantiationProgress=[],this._worker=null,this._workerShutdownPromise=null,this._workerShutdownResolver=()=>{},this._nextMessageId=0,this._pendingRequests=new Map,this._logger=t,this._onMessageHandler=this.onMessage.bind(this),this._onErrorHandler=this.onError.bind(this),this._onCloseHandler=this.onClose.bind(this),e!=null&&this.attach(e)}get logger(){return this._logger}attach(t){this._worker=t,this._worker.addEventListener("message",this._onMessageHandler),this._worker.addEventListener("error",this._onErrorHandler),this._worker.addEventListener("close",this._onCloseHandler),this._workerShutdownPromise=new Promise((e,n)=>{this._workerShutdownResolver=e})}detach(){this._worker&&(this._worker.removeEventListener("message",this._onMessageHandler),this._worker.removeEventListener("error",this._onErrorHandler),this._worker.removeEventListener("close",this._onCloseHandler),this._worker=null,this._workerShutdownResolver(null),this._workerShutdownPromise=null,this._workerShutdownResolver=()=>{})}async terminate(){this._worker&&(this._worker.terminate(),this._worker=null,this._workerShutdownPromise=null,this._workerShutdownResolver=()=>{})}async postTask(t,e=[]){if(!this._worker){console.error("cannot send a message since the worker is not set!");return}let n=this._nextMessageId++;return this._pendingRequests.set(n,t),this._worker.postMessage({messageId:n,type:t.type,data:t.data},e),await t.promise}onMessage(t){var e;let n=t.data;switch(n.type){case"LOG":{this._logger.log(n.data);return}case"INSTANTIATE_PROGRESS":{for(let i of this._onInstantiationProgress)i(n.data);return}}let r=this._pendingRequests.get(n.requestId);if(!r){console.warn("unassociated response: [".concat(n.requestId,", ").concat(n.type.toString(),"]"));return}if(this._pendingRequests.delete(n.requestId),n.type=="ERROR"){let i=new Error(n.data.message);i.name=n.data.name,(e=Object.getOwnPropertyDescriptor(i,"stack"))!=null&&e.writable&&(i.stack=n.data.stack),r.promiseRejecter(i);return}switch(r.type){case"CLOSE_PREPARED":case"COLLECT_FILE_STATISTICS":case"COPY_FILE_TO_PATH":case"DISCONNECT":case"DROP_FILE":case"DROP_FILES":case"FLUSH_FILES":case"INSERT_ARROW_FROM_IPC_STREAM":case"IMPORT_CSV_FROM_PATH":case"IMPORT_JSON_FROM_PATH":case"OPEN":case"PING":case"REGISTER_FILE_BUFFER":case"REGISTER_FILE_HANDLE":case"REGISTER_FILE_URL":case"RESET":if(n.type=="OK"){r.promiseResolver(n.data);return}break;case"INSTANTIATE":if(this._onInstantiationProgress=[],n.type=="OK"){r.promiseResolver(n.data);return}break;case"GLOB_FILE_INFOS":if(n.type=="FILE_INFOS"){r.promiseResolver(n.data);return}break;case"GET_VERSION":if(n.type=="VERSION_STRING"){r.promiseResolver(n.data);return}break;case"GET_FEATURE_FLAGS":if(n.type=="FEATURE_FLAGS"){r.promiseResolver(n.data);return}break;case"GET_TABLE_NAMES":if(n.type=="TABLE_NAMES"){r.promiseResolver(n.data);return}break;case"TOKENIZE":if(n.type=="SCRIPT_TOKENS"){r.promiseResolver(n.data);return}break;case"COPY_FILE_TO_BUFFER":if(n.type=="FILE_BUFFER"){r.promiseResolver(n.data);return}break;case"EXPORT_FILE_STATISTICS":if(n.type=="FILE_STATISTICS"){r.promiseResolver(n.data);return}break;case"CONNECT":if(n.type=="CONNECTION_INFO"){r.promiseResolver(n.data);return}break;case"RUN_PREPARED":case"RUN_QUERY":if(n.type=="QUERY_RESULT"){r.promiseResolver(n.data);return}break;case"SEND_PREPARED":if(n.type=="QUERY_RESULT_HEADER"){r.promiseResolver(n.data);return}break;case"START_PENDING_QUERY":if(n.type=="QUERY_RESULT_HEADER_OR_NULL"){r.promiseResolver(n.data);return}break;case"POLL_PENDING_QUERY":if(n.type=="QUERY_RESULT_HEADER_OR_NULL"){r.promiseResolver(n.data);return}break;case"CANCEL_PENDING_QUERY":if(this._onInstantiationProgress=[],n.type=="SUCCESS"){r.promiseResolver(n.data);return}break;case"FETCH_QUERY_RESULTS":if(n.type=="QUERY_RESULT_CHUNK"){r.promiseResolver(n.data);return}break;case"CREATE_PREPARED":if(n.type=="PREPARED_STATEMENT_ID"){r.promiseResolver(n.data);return}break}r.promiseRejecter(new Error("unexpected response type: ".concat(n.type.toString())))}onError(t){console.error(t),console.error("error in duckdb worker: ".concat(t.message)),this._pendingRequests.clear()}onClose(){if(this._workerShutdownResolver(null),this._pendingRequests.size!=0){console.warn("worker terminated with ".concat(this._pendingRequests.size," pending requests"));return}this._pendingRequests.clear()}async reset(){let t=new Z("RESET",null);return await this.postTask(t)}async ping(){let t=new Z("PING",null);await this.postTask(t)}async dropFile(t){let e=new Z("DROP_FILE",t);return await this.postTask(e)}async dropFiles(){let t=new Z("DROP_FILES",null);return await this.postTask(t)}async flushFiles(){let t=new Z("FLUSH_FILES",null);return await this.postTask(t)}async instantiate(t,e=null,n=r=>{}){this._onInstantiationProgress.push(n);let r=new Z("INSTANTIATE",[t,e]);return await this.postTask(r)}async getVersion(){let t=new Z("GET_VERSION",null);return await this.postTask(t)}async getFeatureFlags(){let t=new Z("GET_FEATURE_FLAGS",null);return await this.postTask(t)}async open(t){let e=new Z("OPEN",t);await this.postTask(e)}async tokenize(t){let e=new Z("TOKENIZE",t);return await this.postTask(e)}async connectInternal(){let t=new Z("CONNECT",null);return await this.postTask(t)}async connect(){let t=await this.connectInternal();return new HE(this,t)}async disconnect(t){let e=new Z("DISCONNECT",t);await this.postTask(e)}async runQuery(t,e){let n=new Z("RUN_QUERY",[t,e]);return await this.postTask(n)}async startPendingQuery(t,e){let n=new Z("START_PENDING_QUERY",[t,e]);return await this.postTask(n)}async pollPendingQuery(t){let e=new Z("POLL_PENDING_QUERY",t);return await this.postTask(e)}async cancelPendingQuery(t){let e=new Z("CANCEL_PENDING_QUERY",t);return await this.postTask(e)}async fetchQueryResults(t){let e=new Z("FETCH_QUERY_RESULTS",t);return await this.postTask(e)}async getTableNames(t,e){let n=new Z("GET_TABLE_NAMES",[t,e]);return await this.postTask(n)}async createPrepared(t,e){let n=new Z("CREATE_PREPARED",[t,e]);return await this.postTask(n)}async closePrepared(t,e){let n=new Z("CLOSE_PREPARED",[t,e]);await this.postTask(n)}async runPrepared(t,e,n){let r=new Z("RUN_PREPARED",[t,e,n]);return await this.postTask(r)}async sendPrepared(t,e,n){let r=new Z("SEND_PREPARED",[t,e,n]);return await this.postTask(r)}async globFiles(t){let e=new Z("GLOB_FILE_INFOS",t);return await this.postTask(e)}async registerFileText(t,e){let n=XE.encode(e);await this.registerFileBuffer(t,n)}async registerFileURL(t,e,n,r){e===void 0&&(e=t);let i=new Z("REGISTER_FILE_URL",[t,e,n,r]);await this.postTask(i)}async registerEmptyFileBuffer(t){let e=new Z("REGISTER_FILE_BUFFER",[t,new Uint8Array]);await this.postTask(e)}async registerFileBuffer(t,e){let n=new Z("REGISTER_FILE_BUFFER",[t,e]);await this.postTask(n,[e.buffer])}async registerFileHandle(t,e,n,r){let i=new Z("REGISTER_FILE_HANDLE",[t,e,n,r]);await this.postTask(i,[])}async collectFileStatistics(t,e){let n=new Z("COLLECT_FILE_STATISTICS",[t,e]);await this.postTask(n,[])}async exportFileStatistics(t){let e=new Z("EXPORT_FILE_STATISTICS",t);return await this.postTask(e,[])}async copyFileToBuffer(t){let e=new Z("COPY_FILE_TO_BUFFER",t);return await this.postTask(e)}async copyFileToPath(t,e){let n=new Z("COPY_FILE_TO_PATH",[t,e]);await this.postTask(n)}async insertArrowFromIPCStream(t,e,n){if(e.length==0)return;let r=new Z("INSERT_ARROW_FROM_IPC_STREAM",[t,e,n]);await this.postTask(r,[e.buffer])}async insertCSVFromPath(t,e,n){if(n.columns!==void 0){let i=[];for(let s in n.columns){let o=n.columns[s];i.push(Qd(s,o))}n.columnsFlat=i,delete n.columns}let r=new Z("IMPORT_CSV_FROM_PATH",[t,e,n]);await this.postTask(r)}async insertJSONFromPath(t,e,n){if(n.columns!==void 0){let i=[];for(let s in n.columns){let o=n.columns[s];i.push(Qd(s,o))}n.columnsFlat=i,delete n.columns}let r=new Z("IMPORT_JSON_FROM_PATH",[t,e,n]);await this.postTask(r)}},ek=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,3,1,0,1,10,14,1,12,0,65,0,65,0,65,0,252,10,0,0,11])),tk=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,8,1,6,0,6,64,25,11,11])),nk=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,10,1,8,0,65,0,253,15,253,98,11])),rk=()=>(async t=>{try{return typeof MessageChannel<"u"&&new MessageChannel().port1.postMessage(new SharedArrayBuffer(1)),WebAssembly.validate(t)}catch{return!1}})(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,4,1,3,1,1,10,11,1,9,0,65,0,254,16,2,0,26,11])),Oh={name:"@duckdb/duckdb-wasm",version:"1.28.0",description:"DuckDB powered by WebAssembly",license:"MIT",repository:{type:"git",url:"https://github.com/duckdb/duckdb-wasm.git"},keywords:["sql","duckdb","relational","database","data","query","wasm","analytics","olap","arrow","parquet","json","csv"],dependencies:{"apache-arrow":"^13.0.0"},devDependencies:{"@types/emscripten":"^1.39.8","@types/jasmine":"^4.3.1","@typescript-eslint/eslint-plugin":"^6.5.0","@typescript-eslint/parser":"^6.7.3",esbuild:"^0.19.5",eslint:"^8.50.0","eslint-plugin-jasmine":"^4.1.3","eslint-plugin-react":"^7.33.2","fast-glob":"^3.3.1",jasmine:"^5.1.0","jasmine-core":"^5.1.1","jasmine-spec-reporter":"^7.0.0","js-sha256":"^0.9.0",karma:"^6.4.2","karma-chrome-launcher":"^3.2.0","karma-coverage":"^2.2.1","karma-firefox-launcher":"^2.1.2","karma-jasmine":"^5.1.0","karma-jasmine-html-reporter":"^2.1.0","karma-sourcemap-loader":"^0.4.0","karma-spec-reporter":"^0.0.36","make-dir":"^4.0.0",nyc:"^15.1.0",prettier:"^3.0.2",puppeteer:"^21.1.1",rimraf:"^5.0.5",s3rver:"^3.7.1",typedoc:"^0.25.2",typescript:"^5.2.2","wasm-feature-detect":"^1.5.1","web-worker":"^1.2.0"},scripts:{"build:debug":"node bundle.mjs debug && tsc --emitDeclarationOnly","build:release":"node bundle.mjs release && tsc --emitDeclarationOnly",docs:"typedoc",report:"node ./coverage.mjs","test:node":"node --enable-source-maps ../../node_modules/jasmine/bin/jasmine ./dist/tests-node.cjs","test:node:debug":"node --inspect-brk --enable-source-maps ../../node_modules/jasmine/bin/jasmine ./dist/tests-node.cjs","test:node:coverage":"nyc -r json --report-dir ./coverage/node node ../../node_modules/jasmine/bin/jasmine ./dist/tests-node.cjs","test:firefox":"karma start ./karma/tests-firefox.cjs","test:chrome":"karma start ./karma/tests-chrome.cjs","test:chrome:eh":"karma start ./karma/tests-chrome-eh.cjs","test:chrome:coverage":"karma start ./karma/tests-chrome-coverage.cjs","test:browser":"karma start ./karma/tests-all.cjs","test:browser:debug":"karma start ./karma/tests-debug.cjs",test:"npm run test:chrome && npm run test:node","test:coverage":"npm run test:chrome:coverage && npm run test:node:coverage && npm run report",lint:"eslint src test"},files:["dist","!dist/types/test"],main:"dist/duckdb-browser.cjs",module:"dist/duckdb-browser.mjs",types:"dist/duckdb-browser.d.ts",jsdelivr:"dist/duckdb-browser.cjs",unpkg:"dist/duckdb-browser.mjs",sideEffects:!1,browser:{fs:!1,path:!1,perf_hooks:!1,os:!1,worker_threads:!1},exports:{"./dist/duckdb-mvp.wasm":"./dist/duckdb-mvp.wasm","./dist/duckdb-eh.wasm":"./dist/duckdb-eh.wasm","./dist/duckdb-coi.wasm":"./dist/duckdb-coi.wasm","./dist/duckdb-browser":"./dist/duckdb-browser.mjs","./dist/duckdb-browser.cjs":"./dist/duckdb-browser.cjs","./dist/duckdb-browser.mjs":"./dist/duckdb-browser.mjs","./dist/duckdb-browser-blocking":"./dist/duckdb-browser-blocking.mjs","./dist/duckdb-browser-blocking.mjs":"./dist/duckdb-browser-blocking.mjs","./dist/duckdb-browser-blocking.cjs":"./dist/duckdb-browser-blocking.cjs","./dist/duckdb-browser-coi.pthread.worker.js":"./dist/duckdb-browser-coi.pthread.worker.js","./dist/duckdb-browser-coi.worker.js":"./dist/duckdb-browser-coi.worker.js","./dist/duckdb-browser-eh.worker.js":"./dist/duckdb-browser-eh.worker.js","./dist/duckdb-browser-mvp.worker.js":"./dist/duckdb-browser-mvp.worker.js","./dist/duckdb-node":"./dist/duckdb-node.cjs","./dist/duckdb-node.cjs":"./dist/duckdb-node.cjs","./dist/duckdb-node-blocking":"./dist/duckdb-node-blocking.cjs","./dist/duckdb-node-blocking.cjs":"./dist/duckdb-node-blocking.cjs","./dist/duckdb-node-eh.worker.cjs":"./dist/duckdb-node-eh.worker.cjs","./dist/duckdb-node-mvp.worker.cjs":"./dist/duckdb-node-mvp.worker.cjs","./blocking":{browser:{types:"./dist/duckdb-browser-blocking.d.ts",import:"./dist/duckdb-browser-blocking.mjs",require:"./dist/duckdb-browser-blocking.cjs"},node:{types:"./dist/duckdb-node-blocking.d.ts",require:"./dist/duckdb-node-blocking.cjs",import:"./dist/duckdb-node-blocking.cjs"},types:"./dist/duckdb-browser-blocking.d.ts",import:"./dist/duckdb-browser-blocking.mjs",require:"./dist/duckdb-browser-blocking.cjs"},".":{browser:{types:"./dist/duckdb-browser.d.ts",import:"./dist/duckdb-browser.mjs",require:"./dist/duckdb-browser.cjs"},node:{types:"./dist/duckdb-node.d.ts",import:"./dist/duckdb-node.cjs",require:"./dist/duckdb-node.cjs"},types:"./dist/duckdb-browser.d.ts",import:"./dist/duckdb-browser.mjs",require:"./dist/duckdb-browser.cjs"}}},ik=Oh.name,sk=Oh.version,Fh=Oh.version.split(".");Fh[0];Fh[1];Fh[2];var ok=()=>typeof navigator>"u";function ak(){let t="https://cdn.jsdelivr.net/npm/".concat(ik,"@").concat(sk,"/dist/");return{mvp:{mainModule:"".concat(t,"duckdb-mvp.wasm"),mainWorker:"".concat(t,"duckdb-browser-mvp.worker.js")},eh:{mainModule:"".concat(t,"duckdb-eh.wasm"),mainWorker:"".concat(t,"duckdb-browser-eh.worker.js")}}}var cc=null,dc=null,fc=null,hc=null,pc=null;async function lk(){return cc==null&&(cc=typeof BigInt64Array<"u"),dc==null&&(dc=await tk()),fc==null&&(fc=await rk()),hc==null&&(hc=await nk()),pc==null&&(pc=await ek()),{bigInt64Array:cc,crossOriginIsolated:ok()||globalThis.crossOriginIsolated||!1,wasmExceptions:dc,wasmSIMD:hc,wasmThreads:fc,wasmBulkMemory:pc}}async function uk(t){let e=await lk();if(e.wasmExceptions){if(e.wasmSIMD&&e.wasmThreads&&e.crossOriginIsolated&&t.coi)return{mainModule:t.coi.mainModule,mainWorker:t.coi.mainWorker,pthreadWorker:t.coi.pthreadWorker};if(t.eh)return{mainModule:t.eh.mainModule,mainWorker:t.eh.mainWorker,pthreadWorker:null}}return{mainModule:t.mvp.mainModule,mainWorker:t.mvp.mainWorker,pthreadWorker:null}}UE(jE());function ck(){let t=new TextDecoder;return e=>(typeof SharedArrayBuffer<"u"&&e.buffer instanceof SharedArrayBuffer&&(e=new Uint8Array(e)),t.decode(e))}ck();var dk=(t=>(t[t.BUFFER=0]="BUFFER",t[t.NODE_FS=1]="NODE_FS",t[t.BROWSER_FILEREADER=2]="BROWSER_FILEREADER",t[t.BROWSER_FSACCESS=3]="BROWSER_FSACCESS",t[t.HTTP=4]="HTTP",t[t.S3=5]="S3",t))(dk||{});const fk=ak();class hk{constructor(){q(this,"db",null)}async initDB(){const e=await uk(fk),n=URL.createObjectURL(new Blob([`importScripts("${e.mainWorker}");`],{type:"text/javascript"})),r=new Worker(n),i={log:o=>console.log(o)},s=new ZE(i,r);return await s.instantiate(e.mainModule,e.pthreadWorker),URL.revokeObjectURL(n),s}async getDB(){return this.db||(console.info("Creating new DB"),this.db=await this.initDB()),this.db}async terminateDB(){var e;console.info("terminateDB"),await((e=this.db)==null?void 0:e.terminate()),this.db=null}}function Ey(t){const e=Et.useRef(),n=Et.useRef(!1),r=Et.useRef(!1),[,i]=Et.useState(0);n.current&&(r.current=!0),Et.useEffect(()=>(n.current||(e.current=t(),n.current=!0),i(s=>s+1),()=>{r.current&&e.current&&e.current()}),[])}function pk(){const t=Et.useRef(!1),e=Et.useRef(),n=Et.useRef(),r=Et.useRef(),i=Et.useRef(),s=new URLSearchParams(window.location.search),o=s.get("uuid")??"",a=s.get("origin");return e.current||(e.current=new Q1({app_name:V1(o),origin:a,targetApp:K1(o),targetWindow:window.parent})),n.current||(n.current=new hk),r.current||(r.current=new FE({instanceManager:n.current,fetchTableFileBuffers:async()=>[],logger:Iy,onEvent:l=>{var u;(u=e.current)==null||u.sendRequestWithoutResponse({type:Os.RUNNER_ON_EVENT,payload:l})}})),i.current||(i.current=new $1({instanceManager:n.current,fileManager:r.current,logger:Iy,onEvent:l=>{var u;(u=e.current)==null||u.sendRequestWithoutResponse({type:Os.RUNNER_ON_EVENT,payload:l})}})),Ey(()=>{var l;t.current||((l=e.current)==null||l.onMessage(u=>{var c;switch(u.message.type){case Os.EXEC_QUERY:(c=i.current)==null||c.queryWithTables({...u.message.payload,options:{...u.message.payload.options,preQuery:async h=>{var _,v;const d=await((_=e.current)==null?void 0:_.sendRequest({type:Os.RUNNER_PRE_QUERY,payload:{runnerId:o,tableWiseFiles:h}})),m=(d==null?void 0:d.message)??[];for(const S of m)await((v=i.current)==null?void 0:v.query(S))}}}).then(h=>{var d;(d=e.current)==null||d.sendResponse(u.uuid,{data:xI(h),isError:!1,error:null})}).catch(h=>{var d;(d=e.current)==null||d.sendResponse(u.uuid,{data:null,isError:!0,error:h})});break}}),t.current=!0)}),Ey(()=>{(async()=>{var l,u;await((l=i.current)==null?void 0:l.query("SELECT 1")),(u=e.current)==null||u.sendRequestWithoutResponse({type:Os.RUNNER_ON_READY})})()}),yc.jsx("div",{children:"Runners "})}const yk=Ug(document.getElementById("root"));yk.render(yc.jsx(Et.StrictMode,{children:yc.jsx(pk,{})})); +From previous: `);return this._state!==null&&(this._stack=t),t}finally{Nd=!1}}},timeout:function(t,e){return t<1/0?new B((n,r)=>{var i=setTimeout(()=>r(new A.Timeout(e)),t);this.then(n,r).finally(clearTimeout.bind(null,i))}):this}}),typeof Symbol<"u"&&Symbol.toStringTag&&$n(B.prototype,Symbol.toStringTag,"Dexie.Promise"),Xi.env=H0(),hs(B,{all:function(){var t=Mn.apply(null,arguments).map(ga);return new B(function(e,n){t.length===0&&e([]);var r=t.length;t.forEach((i,s)=>B.resolve(i).then(o=>{t[s]=o,--r||e(t)},n))})},resolve:t=>{if(t instanceof B)return t;if(t&&typeof t.then=="function")return new B((n,r)=>{t.then(n,r)});var e=new B(Ro,!0,t);return Y0(e,Od),e},reject:ma,race:function(){var t=Mn.apply(null,arguments).map(ga);return new B((e,n)=>{t.map(r=>B.resolve(r).then(e,n))})},PSD:{get:()=>D,set:t=>D=t},totalEchoes:{get:()=>Xl},newPSD:Rr,usePSD:ws,scheduler:{get:()=>Gs,set:t=>{Gs=t}},rejectionMapper:{get:()=>Fd,set:t=>{Fd=t}},follow:(t,e)=>new B((n,r)=>Rr((i,s)=>{var o=D;o.unhandleds=[],o.onunhandled=s,o.finalize=di(function(){(function(a){function l(){a(),Ka.splice(Ka.indexOf(l),1)}Ka.push(l),++ri,Gs(()=>{--ri==0&&Eh()},[])})(()=>{this.unhandleds.length===0?i():s(this.unhandleds[0])})},o.finalize),t()},e,n,r))}),$a&&($a.allSettled&&$n(B,"allSettled",function(){const t=Mn.apply(null,arguments).map(ga);return new B(e=>{t.length===0&&e([]);let n=t.length;const r=new Array(n);t.forEach((i,s)=>B.resolve(i).then(o=>r[s]={status:"fulfilled",value:o},o=>r[s]={status:"rejected",reason:o}).then(()=>--n||e(r)))})}),$a.any&&typeof AggregateError<"u"&&$n(B,"any",function(){const t=Mn.apply(null,arguments).map(ga);return new B((e,n)=>{t.length===0&&n(new AggregateError([]));let r=t.length;const i=new Array(r);t.forEach((s,o)=>B.resolve(s).then(a=>e(a),a=>{i[o]=a,--r||n(new AggregateError(i))}))})}));const qe={awaits:0,echoes:0,id:0};var ZI=0,Wa=[],rc=0,Xl=0,eE=0;function Rr(t,e,n,r){var i=D,s=Object.create(i);s.parent=i,s.ref=0,s.global=!1,s.id=++eE;var o=Xi.env;s.env=bh?{Promise:B,PromiseProp:{value:B,configurable:!0,writable:!0},all:B.all,race:B.race,allSettled:B.allSettled,any:B.any,resolve:B.resolve,reject:B.reject,nthen:fy(o.nthen,s),gthen:fy(o.gthen,s)}:{},e&&it(s,e),++i.ref,s.finalize=function(){--this.parent.ref||this.parent.finalize()};var a=ws(s,t,n,r);return s.ref===0&&s.finalize(),a}function _s(){return qe.id||(qe.id=++ZI),++qe.awaits,qe.echoes+=z0,qe.id}function qn(){return!!qe.awaits&&(--qe.awaits==0&&(qe.id=0),qe.echoes=qe.awaits*z0,!0)}function ga(t){return qe.echoes&&t&&t.constructor===$a?(_s(),t.then(e=>(qn(),e),e=>(qn(),Me(e)))):t}function tE(t){++Xl,qe.echoes&&--qe.echoes!=0||(qe.echoes=qe.id=0),Wa.push(D),Or(t,!0)}function nE(){var t=Wa[Wa.length-1];Wa.pop(),Or(t,!1)}function Or(t,e){var n=D;if((e?!qe.echoes||rc++&&t===D:!rc||--rc&&t===D)||q0(e?tE.bind(null,t):nE),t!==D&&(D=t,n===Xi&&(Xi.env=H0()),bh)){var r=Xi.env.Promise,i=t.env;Gl.then=i.nthen,r.prototype.then=i.gthen,(n.global||t.global)&&(Object.defineProperty(ye,"Promise",i.PromiseProp),r.all=i.all,r.race=i.race,r.resolve=i.resolve,r.reject=i.reject,i.allSettled&&(r.allSettled=i.allSettled),i.any&&(r.any=i.any))}}function H0(){var t=ye.Promise;return bh?{Promise:t,PromiseProp:Object.getOwnPropertyDescriptor(ye,"Promise"),all:t.all,race:t.race,allSettled:t.allSettled,any:t.any,resolve:t.resolve,reject:t.reject,nthen:Gl.then,gthen:t.prototype.then}:{}}function ws(t,e,n,r,i){var s=D;try{return Or(t,!0),e(n,r,i)}finally{Or(s,!1)}}function q0(t){$0.call(kd,t)}function Zl(t,e,n,r){return typeof t!="function"?t:function(){var i=D;n&&_s(),Or(e,!0);try{return t.apply(this,arguments)}finally{Or(i,!1),r&&q0(qn)}}}function fy(t,e){return function(n,r){return t.call(this,Zl(n,e),Zl(r,e))}}(""+$0).indexOf("[native code]")===-1&&(_s=qn=ue);const hy="unhandledrejection";function py(t,e){var n;try{n=e.onuncatched(t)}catch{}if(n!==!1)try{var r,i={promise:e,reason:t};if(ye.document&&document.createEvent?((r=document.createEvent("Event")).initEvent(hy,!0,!0),it(r,i)):ye.CustomEvent&&it(r=new CustomEvent(hy,{detail:i}),i),r&&ye.dispatchEvent&&(dispatchEvent(r),!ye.PromiseRejectionEvent&&ye.onunhandledrejection))try{ye.onunhandledrejection(r)}catch{}Tn&&r&&!r.defaultPrevented&&console.warn(`Unhandled rejection: ${t.stack||t}`)}catch{}}var Me=B.reject;function Ad(t,e,n,r){if(t.idbdb&&(t._state.openComplete||D.letThrough||t._vip)){var i=t._createTransaction(e,n,t._dbSchema);try{i.create(),t._state.PR1398_maxLoop=3}catch(s){return s.name===wh.InvalidState&&t.isOpen()&&--t._state.PR1398_maxLoop>0?(console.warn("Dexie: Need to reopen db"),t._close(),t.open().then(()=>Ad(t,e,n,r))):Me(s)}return i._promise(e,(s,o)=>Rr(()=>(D.trans=i,r(s,o,i)))).then(s=>i._completion.then(()=>s))}if(t._state.openComplete)return Me(new A.DatabaseClosed(t._state.dbOpenError));if(!t._state.isBeingOpened){if(!t._options.autoOpen)return Me(new A.DatabaseClosed);t.open().catch(ue)}return t._state.dbReadyPromise.then(()=>Ad(t,e,n,r))}const yy="3.2.4",Xr=String.fromCharCode(65535),xd=-1/0,Nn="Invalid key provided. Keys must be of type string, number, Date or Array.",G0="String expected.",Js=[],bu=typeof navigator<"u"&&/(MSIE|Trident|Edge)/.test(navigator.userAgent),rE=bu,iE=bu,J0=t=>!/(dexie\.js|dexie\.min\.js)/.test(t),Iu="__dbnames",ic="readonly",sc="readwrite";function fi(t,e){return t?e?function(){return t.apply(this,arguments)&&e.apply(this,arguments)}:t:e}const X0={type:3,lower:-1/0,lowerOpen:!1,upper:[[]],upperOpen:!1};function va(t){return typeof t!="string"||/\./.test(t)?e=>e:e=>(e[t]===void 0&&t in e&&delete(e=Vo(e))[t],e)}class sE{_trans(e,n,r){const i=this._tx||D.trans,s=this.name;function o(l,u,c){if(!c.schema[s])throw new A.NotFound("Table "+s+" not part of transaction");return n(c.idbtrans,c)}const a=Ko();try{return i&&i.db===this.db?i===D.trans?i._promise(e,o,r):Rr(()=>i._promise(e,o,r),{trans:i,transless:D.transless||D}):Ad(this.db,e,[this.name],o)}finally{a&&Wo()}}get(e,n){return e&&e.constructor===Object?this.where(e).first(n):this._trans("readonly",r=>this.core.get({trans:r,key:e}).then(i=>this.hook.reading.fire(i))).then(n)}where(e){if(typeof e=="string")return new this.db.WhereClause(this,e);if(Ge(e))return new this.db.WhereClause(this,`[${e.join("+")}]`);const n=Be(e);if(n.length===1)return this.where(n[0]).equals(e[n[0]]);const r=this.schema.indexes.concat(this.schema.primKey).filter(u=>u.compound&&n.every(c=>u.keyPath.indexOf(c)>=0)&&u.keyPath.every(c=>n.indexOf(c)>=0))[0];if(r&&this.db._maxKey!==Xr)return this.where(r.name).equals(r.keyPath.map(u=>e[u]));!r&&Tn&&console.warn(`The query ${JSON.stringify(e)} on ${this.name} would benefit of a compound index [${n.join("+")}]`);const{idxByName:i}=this.schema,s=this.db._deps.indexedDB;function o(u,c){try{return s.cmp(u,c)===0}catch{return!1}}const[a,l]=n.reduce(([u,c],h)=>{const d=i[h],m=e[h];return[u||d,u||!d?fi(c,d&&d.multi?_=>{const v=Vn(_,h);return Ge(v)&&v.some(S=>o(m,S))}:_=>o(m,Vn(_,h))):c]},[null,null]);return a?this.where(a.name).equals(e[a.keyPath]).filter(l):r?this.filter(l):this.where(n).equals("")}filter(e){return this.toCollection().and(e)}count(e){return this.toCollection().count(e)}offset(e){return this.toCollection().offset(e)}limit(e){return this.toCollection().limit(e)}each(e){return this.toCollection().each(e)}toArray(e){return this.toCollection().toArray(e)}toCollection(){return new this.db.Collection(new this.db.WhereClause(this))}orderBy(e){return new this.db.Collection(new this.db.WhereClause(this,Ge(e)?`[${e.join("+")}]`:e))}reverse(){return this.toCollection().reverse()}mapToClass(e){this.schema.mappedClass=e;const n=r=>{if(!r)return r;const i=Object.create(e.prototype);for(var s in r)if(Bt(r,s))try{i[s]=r[s]}catch{}return i};return this.schema.readHook&&this.hook.reading.unsubscribe(this.schema.readHook),this.schema.readHook=n,this.hook("reading",n),e}defineClass(){return this.mapToClass(function(e){it(this,e)})}add(e,n){const{auto:r,keyPath:i}=this.schema.primKey;let s=e;return i&&r&&(s=va(i)(e)),this._trans("readwrite",o=>this.core.mutate({trans:o,type:"add",keys:n!=null?[n]:null,values:[s]})).then(o=>o.numFailures?B.reject(o.failures[0]):o.lastResult).then(o=>{if(i)try{en(e,i,o)}catch{}return o})}update(e,n){if(typeof e!="object"||Ge(e))return this.where(":id").equals(e).modify(n);{const r=Vn(e,this.schema.primKey.keyPath);if(r===void 0)return Me(new A.InvalidArgument("Given object does not contain its primary key"));try{typeof n!="function"?Be(n).forEach(i=>{en(e,i,n[i])}):n(e,{value:e,primKey:r})}catch{}return this.where(":id").equals(r).modify(n)}}put(e,n){const{auto:r,keyPath:i}=this.schema.primKey;let s=e;return i&&r&&(s=va(i)(e)),this._trans("readwrite",o=>this.core.mutate({trans:o,type:"put",values:[s],keys:n!=null?[n]:null})).then(o=>o.numFailures?B.reject(o.failures[0]):o.lastResult).then(o=>{if(i)try{en(e,i,o)}catch{}return o})}delete(e){return this._trans("readwrite",n=>this.core.mutate({trans:n,type:"delete",keys:[e]})).then(n=>n.numFailures?B.reject(n.failures[0]):void 0)}clear(){return this._trans("readwrite",e=>this.core.mutate({trans:e,type:"deleteRange",range:X0})).then(e=>e.numFailures?B.reject(e.failures[0]):void 0)}bulkGet(e){return this._trans("readonly",n=>this.core.getMany({keys:e,trans:n}).then(r=>r.map(i=>this.hook.reading.fire(i))))}bulkAdd(e,n,r){const i=Array.isArray(n)?n:void 0,s=(r=r||(i?void 0:n))?r.allKeys:void 0;return this._trans("readwrite",o=>{const{auto:a,keyPath:l}=this.schema.primKey;if(l&&i)throw new A.InvalidArgument("bulkAdd(): keys argument invalid on tables with inbound keys");if(i&&i.length!==e.length)throw new A.InvalidArgument("Arguments objects and keys must have the same length");const u=e.length;let c=l&&a?e.map(va(l)):e;return this.core.mutate({trans:o,type:"add",keys:i,values:c,wantResults:s}).then(({numFailures:h,results:d,lastResult:m,failures:_})=>{if(h===0)return s?d:m;throw new qs(`${this.name}.bulkAdd(): ${h} of ${u} operations failed`,_)})})}bulkPut(e,n,r){const i=Array.isArray(n)?n:void 0,s=(r=r||(i?void 0:n))?r.allKeys:void 0;return this._trans("readwrite",o=>{const{auto:a,keyPath:l}=this.schema.primKey;if(l&&i)throw new A.InvalidArgument("bulkPut(): keys argument invalid on tables with inbound keys");if(i&&i.length!==e.length)throw new A.InvalidArgument("Arguments objects and keys must have the same length");const u=e.length;let c=l&&a?e.map(va(l)):e;return this.core.mutate({trans:o,type:"put",keys:i,values:c,wantResults:s}).then(({numFailures:h,results:d,lastResult:m,failures:_})=>{if(h===0)return s?d:m;throw new qs(`${this.name}.bulkPut(): ${h} of ${u} operations failed`,_)})})}bulkDelete(e){const n=e.length;return this._trans("readwrite",r=>this.core.mutate({trans:r,type:"delete",keys:e})).then(({numFailures:r,lastResult:i,failures:s})=>{if(r===0)return i;throw new qs(`${this.name}.bulkDelete(): ${r} of ${n} operations failed`,s)})}}function Xs(t){var e={},n=function(o,a){if(a){for(var l=arguments.length,u=new Array(l-1);--l;)u[l-1]=arguments[l];return e[o].subscribe.apply(null,u),t}if(typeof o=="string")return e[o]};n.addEventType=s;for(var r=1,i=arguments.length;rfi(r(),e()):e,t.justLimit=n&&!r}function Qa(t,e){if(t.isPrimKey)return e.primaryKey;const n=e.getIndexByKeyPath(t.index);if(!n)throw new A.Schema("KeyPath "+t.index+" on object store "+e.name+" is not indexed");return n}function my(t,e,n){const r=Qa(t,e.schema);return e.openCursor({trans:n,values:!t.keysOnly,reverse:t.dir==="prev",unique:!!t.unique,query:{index:r,range:t.range}})}function _a(t,e,n,r){const i=t.replayFilter?fi(t.filter,t.replayFilter()):t.filter;if(t.or){const s={},o=(a,l,u)=>{if(!i||i(l,u,d=>l.stop(d),d=>l.fail(d))){var c=l.primaryKey,h=""+c;h==="[object ArrayBuffer]"&&(h=""+new Uint8Array(c)),Bt(s,h)||(s[h]=!0,e(a,l,u))}};return Promise.all([t.or._iterate(o,n),gy(my(t,r,n),t.algorithm,o,!t.keysOnly&&t.valueMapper)])}return gy(my(t,r,n),fi(t.algorithm,i),e,!t.keysOnly&&t.valueMapper)}function gy(t,e,n,r){var i=ve(r?(s,o,a)=>n(r(s),o,a):n);return t.then(s=>{if(s)return s.start(()=>{var o=()=>s.continue();e&&!e(s,a=>o=a,a=>{s.stop(a),o=ue},a=>{s.fail(a),o=ue})||i(s.value,s,a=>o=a),o()})})}function nt(t,e){try{const n=vy(t),r=vy(e);if(n!==r)return n==="Array"?1:r==="Array"?-1:n==="binary"?1:r==="binary"?-1:n==="string"?1:r==="string"?-1:n==="Date"?1:r!=="Date"?NaN:-1;switch(n){case"number":case"Date":case"string":return t>e?1:t_a(n,e,r,n.table.core))}count(e){return this._read(n=>{const r=this._ctx,i=r.table.core;if(_i(r,!0))return i.count({trans:n,query:{index:Qa(r,i.schema),range:r.range}}).then(o=>Math.min(o,r.limit));var s=0;return _a(r,()=>(++s,!1),n,i).then(()=>s)}).then(e)}sortBy(e,n){const r=e.split(".").reverse(),i=r[0],s=r.length-1;function o(u,c){return c?o(u[r[c]],c-1):u[i]}var a=this._ctx.dir==="next"?1:-1;function l(u,c){var h=o(u,s),d=o(c,s);return hd?a:0}return this.toArray(function(u){return u.sort(l)}).then(n)}toArray(e){return this._read(n=>{var r=this._ctx;if(r.dir==="next"&&_i(r,!0)&&r.limit>0){const{valueMapper:i}=r,s=Qa(r,r.table.core.schema);return r.table.core.query({trans:n,limit:r.limit,values:!0,query:{index:s,range:r.range}}).then(({result:o})=>i?o.map(i):o)}{const i=[];return _a(r,s=>i.push(s),n,r.table.core).then(()=>i)}},e)}offset(e){var n=this._ctx;return e<=0||(n.offset+=e,_i(n)?ac(n,()=>{var r=e;return(i,s)=>r===0||(r===1?(--r,!1):(s(()=>{i.advance(r),r=0}),!1))}):ac(n,()=>{var r=e;return()=>--r<0})),this}limit(e){return this._ctx.limit=Math.min(this._ctx.limit,e),ac(this._ctx,()=>{var n=e;return function(r,i,s){return--n<=0&&i(s),n>=0}},!0),this}until(e,n){return oc(this._ctx,function(r,i,s){return!e(r.value)||(i(s),n)}),this}first(e){return this.limit(1).toArray(function(n){return n[0]}).then(e)}last(e){return this.reverse().first(e)}filter(e){var n,r;return oc(this._ctx,function(i){return e(i.value)}),n=this._ctx,r=e,n.isMatch=fi(n.isMatch,r),this}and(e){return this.filter(e)}or(e){return new this.db.WhereClause(this._ctx.table,e,this)}reverse(){return this._ctx.dir=this._ctx.dir==="prev"?"next":"prev",this._ondirectionchange&&this._ondirectionchange(this._ctx.dir),this}desc(){return this.reverse()}eachKey(e){var n=this._ctx;return n.keysOnly=!n.isMatch,this.each(function(r,i){e(i.key,i)})}eachUniqueKey(e){return this._ctx.unique="unique",this.eachKey(e)}eachPrimaryKey(e){var n=this._ctx;return n.keysOnly=!n.isMatch,this.each(function(r,i){e(i.primaryKey,i)})}keys(e){var n=this._ctx;n.keysOnly=!n.isMatch;var r=[];return this.each(function(i,s){r.push(s.key)}).then(function(){return r}).then(e)}primaryKeys(e){var n=this._ctx;if(n.dir==="next"&&_i(n,!0)&&n.limit>0)return this._read(i=>{var s=Qa(n,n.table.core.schema);return n.table.core.query({trans:i,values:!1,limit:n.limit,query:{index:s,range:n.range}})}).then(({result:i})=>i).then(e);n.keysOnly=!n.isMatch;var r=[];return this.each(function(i,s){r.push(s.primaryKey)}).then(function(){return r}).then(e)}uniqueKeys(e){return this._ctx.unique="unique",this.keys(e)}firstKey(e){return this.limit(1).keys(function(n){return n[0]}).then(e)}lastKey(e){return this.reverse().firstKey(e)}distinct(){var e=this._ctx,n=e.index&&e.table.schema.idxByName[e.index];if(!n||!n.multi)return this;var r={};return oc(this._ctx,function(i){var s=i.primaryKey.toString(),o=Bt(r,s);return r[s]=!0,!o}),this}modify(e){var n=this._ctx;return this._write(r=>{var i;if(typeof e=="function")i=e;else{var s=Be(e),o=s.length;i=function(v){for(var S=!1,p=0;p{const{failures:p,numFailures:f}=S;d+=v-f;for(let y of Be(p))h.push(p[y])};return this.clone().primaryKeys().then(v=>{const S=p=>{const f=Math.min(c,v.length-p);return a.getMany({trans:r,keys:v.slice(p,p+f),cache:"immutable"}).then(y=>{const w=[],I=[],E=l?[]:null,b=[];for(let k=0;k0&&a.mutate({trans:r,type:"add",values:w}).then(k=>{for(let O in k.failures)b.splice(parseInt(O),1);_(w.length,k)})).then(()=>(I.length>0||T&&typeof e=="object")&&a.mutate({trans:r,type:"put",keys:E,values:I,criteria:T,changeSpec:typeof e!="function"&&e}).then(k=>_(I.length,k))).then(()=>(b.length>0||T&&e===lc)&&a.mutate({trans:r,type:"delete",keys:b,criteria:T}).then(k=>_(b.length,k))).then(()=>v.length>p+f&&S(p+c))})};return S(0).then(()=>{if(h.length>0)throw new ql("Error modifying one or more objects",h,d,m);return v.length})})})}delete(){var e=this._ctx,n=e.range;return _i(e)&&(e.isPrimKey&&!iE||n.type===3)?this._write(r=>{const{primaryKey:i}=e.table.core.schema,s=n;return e.table.core.count({trans:r,query:{index:i,range:s}}).then(o=>e.table.core.mutate({trans:r,type:"deleteRange",range:s}).then(({failures:a,lastResult:l,results:u,numFailures:c})=>{if(c)throw new ql("Could not delete some values",Object.keys(a).map(h=>a[h]),o-c);return o-c}))}):this.modify(lc)}}const lc=(t,e)=>e.value=null;function aE(t,e){return te?-1:t===e?0:1}function wt(t,e,n){var r=t instanceof e_?new t.Collection(t):t;return r._ctx.error=n?new n(e):new TypeError(e),r}function wi(t){return new t.Collection(t,()=>Z0("")).limit(0)}function uE(t,e,n,r,i,s){for(var o=Math.min(t.length,r.length),a=-1,l=0;l=0?t.substr(0,a)+e[a]+n.substr(a+1):null;i(t[l],u)<0&&(a=l)}return otypeof v=="string"))return wt(t,G0);function d(v){i=function(p){return p==="next"?f=>f.toUpperCase():f=>f.toLowerCase()}(v),s=function(p){return p==="next"?f=>f.toLowerCase():f=>f.toUpperCase()}(v),o=v==="next"?aE:lE;var S=n.map(function(p){return{lower:s(p),upper:i(p)}}).sort(function(p,f){return o(p.lower,f.lower)});a=S.map(function(p){return p.upper}),l=S.map(function(p){return p.lower}),u=v,c=v==="next"?"":r}d("next");var m=new t.Collection(t,()=>nr(a[0],l[h-1]+r));m._ondirectionchange=function(v){d(v)};var _=0;return m._addAlgorithm(function(v,S,p){var f=v.key;if(typeof f!="string")return!1;var y=s(f);if(e(y,l,_))return!0;for(var w=null,I=_;I0)&&(w=E)}return S(w!==null?function(){v.continue(w+c)}:p),!1}),m}function nr(t,e,n,r){return{type:2,lower:t,upper:e,lowerOpen:n,upperOpen:r}}function Z0(t){return{type:1,lower:t,upper:t}}class e_{get Collection(){return this._ctx.table.db.Collection}between(e,n,r,i){r=r!==!1,i=i===!0;try{return this._cmp(e,n)>0||this._cmp(e,n)===0&&(r||i)&&(!r||!i)?wi(this):new this.Collection(this,()=>nr(e,n,!r,!i))}catch{return wt(this,Nn)}}equals(e){return e==null?wt(this,Nn):new this.Collection(this,()=>Z0(e))}above(e){return e==null?wt(this,Nn):new this.Collection(this,()=>nr(e,void 0,!0))}aboveOrEqual(e){return e==null?wt(this,Nn):new this.Collection(this,()=>nr(e,void 0,!1))}below(e){return e==null?wt(this,Nn):new this.Collection(this,()=>nr(void 0,e,!1,!0))}belowOrEqual(e){return e==null?wt(this,Nn):new this.Collection(this,()=>nr(void 0,e))}startsWith(e){return typeof e!="string"?wt(this,G0):this.between(e,e+Xr,!0,!0)}startsWithIgnoreCase(e){return e===""?this.startsWith(e):wa(this,(n,r)=>n.indexOf(r[0])===0,[e],Xr)}equalsIgnoreCase(e){return wa(this,(n,r)=>n===r[0],[e],"")}anyOfIgnoreCase(){var e=Mn.apply(ki,arguments);return e.length===0?wi(this):wa(this,(n,r)=>r.indexOf(n)!==-1,e,"")}startsWithAnyOfIgnoreCase(){var e=Mn.apply(ki,arguments);return e.length===0?wi(this):wa(this,(n,r)=>r.some(i=>n.indexOf(i)===0),e,Xr)}anyOf(){const e=Mn.apply(ki,arguments);let n=this._cmp;try{e.sort(n)}catch{return wt(this,Nn)}if(e.length===0)return wi(this);const r=new this.Collection(this,()=>nr(e[0],e[e.length-1]));r._ondirectionchange=s=>{n=s==="next"?this._ascending:this._descending,e.sort(n)};let i=0;return r._addAlgorithm((s,o,a)=>{const l=s.key;for(;n(l,e[i])>0;)if(++i,i===e.length)return o(a),!1;return n(l,e[i])===0||(o(()=>{s.continue(e[i])}),!1)}),r}notEqual(e){return this.inAnyRange([[xd,e],[e,this.db._maxKey]],{includeLowers:!1,includeUppers:!1})}noneOf(){const e=Mn.apply(ki,arguments);if(e.length===0)return new this.Collection(this);try{e.sort(this._ascending)}catch{return wt(this,Nn)}const n=e.reduce((r,i)=>r?r.concat([[r[r.length-1][1],i]]):[[xd,i]],null);return n.push([e[e.length-1],this.db._maxKey]),this.inAnyRange(n,{includeLowers:!1,includeUppers:!1})}inAnyRange(e,n){const r=this._cmp,i=this._ascending,s=this._descending,o=this._min,a=this._max;if(e.length===0)return wi(this);if(!e.every(f=>f[0]!==void 0&&f[1]!==void 0&&i(f[0],f[1])<=0))return wt(this,"First argument to inAnyRange() must be an Array of two-value Arrays [lower,upper] where upper must not be lower than lower",A.InvalidArgument);const l=!n||n.includeLowers!==!1,u=n&&n.includeUppers===!0;let c,h=i;function d(f,y){return h(f[0],y[0])}try{c=e.reduce(function(f,y){let w=0,I=f.length;for(;w0){E[0]=o(E[0],y[0]),E[1]=a(E[1],y[1]);break}}return w===I&&f.push(y),f},[]),c.sort(d)}catch{return wt(this,Nn)}let m=0;const _=u?f=>i(f,c[m][1])>0:f=>i(f,c[m][1])>=0,v=l?f=>s(f,c[m][0])>0:f=>s(f,c[m][0])>=0;let S=_;const p=new this.Collection(this,()=>nr(c[0][0],c[c.length-1][1],!l,!u));return p._ondirectionchange=f=>{f==="next"?(S=_,h=i):(S=v,h=s),c.sort(d)},p._addAlgorithm((f,y,w)=>{for(var I=f.key;S(I);)if(++m,m===c.length)return y(w),!1;return!!function(E){return!_(E)&&!v(E)}(I)||(this._cmp(I,c[m][1])===0||this._cmp(I,c[m][0])===0||y(()=>{h===i?f.continue(c[m][0]):f.continue(c[m][1])}),!1)}),p}startsWithAnyOf(){const e=Mn.apply(ki,arguments);return e.every(n=>typeof n=="string")?e.length===0?wi(this):this.inAnyRange(e.map(n=>[n,n+Xr])):wt(this,"startsWithAnyOf() only works with strings")}}function dn(t){return ve(function(e){return Oo(e),t(e.target.error),!1})}function Oo(t){t.stopPropagation&&t.stopPropagation(),t.preventDefault&&t.preventDefault()}const Fo="storagemutated",cr="x-storagemutated-1",Fr=Xs(null,Fo);class cE{_lock(){return Ms(!D.global),++this._reculock,this._reculock!==1||D.global||(D.lockOwnerFor=this),this}_unlock(){if(Ms(!D.global),--this._reculock==0)for(D.global||(D.lockOwnerFor=null);this._blockedFuncs.length>0&&!this._locked();){var e=this._blockedFuncs.shift();try{ws(e[1],e[0])}catch{}}return this}_locked(){return this._reculock&&D.lockOwnerFor!==this}create(e){if(!this.mode)return this;const n=this.db.idbdb,r=this.db._state.dbOpenError;if(Ms(!this.idbtrans),!e&&!n)switch(r&&r.name){case"DatabaseClosedError":throw new A.DatabaseClosed(r);case"MissingAPIError":throw new A.MissingAPI(r.message,r);default:throw new A.OpenFailed(r)}if(!this.active)throw new A.TransactionInactive;return Ms(this._completion._state===null),(e=this.idbtrans=e||(this.db.core?this.db.core.transaction(this.storeNames,this.mode,{durability:this.chromeTransactionDurability}):n.transaction(this.storeNames,this.mode,{durability:this.chromeTransactionDurability}))).onerror=ve(i=>{Oo(i),this._reject(e.error)}),e.onabort=ve(i=>{Oo(i),this.active&&this._reject(new A.Abort(e.error)),this.active=!1,this.on("abort").fire(i)}),e.oncomplete=ve(()=>{this.active=!1,this._resolve(),"mutatedParts"in e&&Fr.storagemutated.fire(e.mutatedParts)}),this}_promise(e,n,r){if(e==="readwrite"&&this.mode!=="readwrite")return Me(new A.ReadOnly("Transaction is readonly"));if(!this.active)return Me(new A.TransactionInactive);if(this._locked())return new B((s,o)=>{this._blockedFuncs.push([()=>{this._promise(e,n,r).then(s,o)},D])});if(r)return Rr(()=>{var s=new B((o,a)=>{this._lock();const l=n(o,a,this);l&&l.then&&l.then(o,a)});return s.finally(()=>this._unlock()),s._lib=!0,s});var i=new B((s,o)=>{var a=n(s,o,this);a&&a.then&&a.then(s,o)});return i._lib=!0,i}_root(){return this.parent?this.parent._root():this}waitFor(e){var n=this._root();const r=B.resolve(e);if(n._waitingFor)n._waitingFor=n._waitingFor.then(()=>r);else{n._waitingFor=r,n._waitingQueue=[];var i=n.idbtrans.objectStore(n.storeNames[0]);(function o(){for(++n._spinCount;n._waitingQueue.length;)n._waitingQueue.shift()();n._waitingFor&&(i.get(-1/0).onsuccess=o)})()}var s=n._waitingFor;return new B((o,a)=>{r.then(l=>n._waitingQueue.push(ve(o.bind(null,l))),l=>n._waitingQueue.push(ve(a.bind(null,l)))).finally(()=>{n._waitingFor===s&&(n._waitingFor=null)})})}abort(){this.active&&(this.active=!1,this.idbtrans&&this.idbtrans.abort(),this._reject(new A.Abort))}table(e){const n=this._memoizedTables||(this._memoizedTables={});if(Bt(n,e))return n[e];const r=this.schema[e];if(!r)throw new A.NotFound("Table "+e+" not part of transaction");const i=new this.db.Table(e,r,this);return i.core=this.db.core.table(e),n[e]=i,i}}function Cd(t,e,n,r,i,s,o){return{name:t,keyPath:e,unique:n,multi:r,auto:i,compound:s,src:(n&&!o?"&":"")+(r?"*":"")+(i?"++":"")+t_(e)}}function t_(t){return typeof t=="string"?t:t?"["+[].join.call(t,"+")+"]":""}function n_(t,e,n){return{name:t,primKey:e,indexes:n,mappedClass:null,idxByName:A0(n,r=>[r.name,r])}}let Bo=t=>{try{return t.only([[]]),Bo=()=>[[]],[[]]}catch{return Bo=()=>Xr,Xr}};function Ld(t){return t==null?()=>{}:typeof t=="string"?function(e){return e.split(".").length===1?r=>r[e]:r=>Vn(r,e)}(t):e=>Vn(e,t)}function wy(t){return[].slice.call(t)}let dE=0;function Zs(t){return t==null?":id":typeof t=="string"?t:`[${t.join("+")}]`}function fE(t,e,n){function r(l){if(l.type===3)return null;if(l.type===4)throw new Error("Cannot convert never type to IDBKeyRange");const{lower:u,upper:c,lowerOpen:h,upperOpen:d}=l;return u===void 0?c===void 0?null:e.upperBound(c,!!d):c===void 0?e.lowerBound(u,!!h):e.bound(u,c,!!h,!!d)}const{schema:i,hasGetAll:s}=function(l,u){const c=wy(l.objectStoreNames);return{schema:{name:l.name,tables:c.map(h=>u.objectStore(h)).map(h=>{const{keyPath:d,autoIncrement:m}=h,_=Ge(d),v=d==null,S={},p={name:h.name,primaryKey:{name:null,isPrimaryKey:!0,outbound:v,compound:_,keyPath:d,autoIncrement:m,unique:!0,extractKey:Ld(d)},indexes:wy(h.indexNames).map(f=>h.index(f)).map(f=>{const{name:y,unique:w,multiEntry:I,keyPath:E}=f,b={name:y,compound:Ge(E),keyPath:E,unique:w,multiEntry:I,extractKey:Ld(E)};return S[Zs(E)]=b,b}),getIndexByKeyPath:f=>S[Zs(f)]};return S[":id"]=p.primaryKey,d!=null&&(S[Zs(d)]=p.primaryKey),p})},hasGetAll:c.length>0&&"getAll"in u.objectStore(c[0])&&!(typeof navigator<"u"&&/Safari/.test(navigator.userAgent)&&!/(Chrome\/|Edge\/)/.test(navigator.userAgent)&&[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]<604)}}(t,n),o=i.tables.map(l=>function(u){const c=u.name;return{name:c,schema:u,mutate:function({trans:h,type:d,keys:m,values:_,range:v}){return new Promise((S,p)=>{S=ve(S);const f=h.objectStore(c),y=f.keyPath==null,w=d==="put"||d==="add";if(!w&&d!=="delete"&&d!=="deleteRange")throw new Error("Invalid operation type: "+d);const{length:I}=m||_||{length:1};if(m&&_&&m.length!==_.length)throw new Error("Given keys array must have same length as given values array.");if(I===0)return S({numFailures:0,failures:{},results:[],lastResult:void 0});let E;const b=[],T=[];let k=0;const O=we=>{++k,Oo(we)};if(d==="deleteRange"){if(v.type===4)return S({numFailures:k,failures:T,results:[],lastResult:void 0});v.type===3?b.push(E=f.clear()):b.push(E=f.delete(r(v)))}else{const[we,Te]=w?y?[_,m]:[_,null]:[m,null];if(w)for(let he=0;he{const Te=we.target.result;b.forEach((he,Zn)=>he.error!=null&&(T[Zn]=he.error)),S({numFailures:k,failures:T,results:d==="delete"?m:b.map(he=>he.result),lastResult:Te})};E.onerror=we=>{O(we),C(we)},E.onsuccess=C})},getMany:({trans:h,keys:d})=>new Promise((m,_)=>{m=ve(m);const v=h.objectStore(c),S=d.length,p=new Array(S);let f,y=0,w=0;const I=b=>{const T=b.target;p[T._pos]=T.result,++w===y&&m(p)},E=dn(_);for(let b=0;bnew Promise((m,_)=>{m=ve(m);const v=h.objectStore(c).get(d);v.onsuccess=S=>m(S.target.result),v.onerror=dn(_)}),query:function(h){return d=>new Promise((m,_)=>{m=ve(m);const{trans:v,values:S,limit:p,query:f}=d,y=p===1/0?void 0:p,{index:w,range:I}=f,E=v.objectStore(c),b=w.isPrimaryKey?E:E.index(w.name),T=r(I);if(p===0)return m({result:[]});if(h){const k=S?b.getAll(T,y):b.getAllKeys(T,y);k.onsuccess=O=>m({result:O.target.result}),k.onerror=dn(_)}else{let k=0;const O=S||!("openKeyCursor"in b)?b.openCursor(T):b.openKeyCursor(T),C=[];O.onsuccess=we=>{const Te=O.result;return Te?(C.push(S?Te.value:Te.primaryKey),++k===p?m({result:C}):void Te.continue()):m({result:C})},O.onerror=dn(_)}})}(s),openCursor:function({trans:h,values:d,query:m,reverse:_,unique:v}){return new Promise((S,p)=>{S=ve(S);const{index:f,range:y}=m,w=h.objectStore(c),I=f.isPrimaryKey?w:w.index(f.name),E=_?v?"prevunique":"prev":v?"nextunique":"next",b=d||!("openKeyCursor"in I)?I.openCursor(r(y),E):I.openKeyCursor(r(y),E);b.onerror=dn(p),b.onsuccess=ve(T=>{const k=b.result;if(!k)return void S(null);k.___id=++dE,k.done=!1;const O=k.continue.bind(k);let C=k.continuePrimaryKey;C&&(C=C.bind(k));const we=k.advance.bind(k),Te=()=>{throw new Error("Cursor not stopped")};k.trans=h,k.stop=k.continue=k.continuePrimaryKey=k.advance=()=>{throw new Error("Cursor not started")},k.fail=ve(p),k.next=function(){let he=1;return this.start(()=>he--?this.continue():this.stop()).then(()=>this)},k.start=he=>{const Zn=new Promise((Pe,R)=>{Pe=ve(Pe),b.onerror=dn(R),k.fail=R,k.stop=x=>{k.stop=k.continue=k.continuePrimaryKey=k.advance=Te,Pe(x)}}),sn=()=>{if(b.result)try{he()}catch(Pe){k.fail(Pe)}else k.done=!0,k.start=()=>{throw new Error("Cursor behind last entry")},k.stop()};return b.onsuccess=ve(Pe=>{b.onsuccess=sn,sn()}),k.continue=O,k.continuePrimaryKey=C,k.advance=we,sn(),Zn},S(k)},p)})},count({query:h,trans:d}){const{index:m,range:_}=h;return new Promise((v,S)=>{const p=d.objectStore(c),f=m.isPrimaryKey?p:p.index(m.name),y=r(_),w=y?f.count(y):f.count();w.onsuccess=ve(I=>v(I.target.result)),w.onerror=dn(S)})}}}(l)),a={};return o.forEach(l=>a[l.name]=l),{stack:"dbcore",transaction:t.transaction.bind(t),table(l){if(!a[l])throw new Error(`Table '${l}' not found`);return a[l]},MIN_KEY:-1/0,MAX_KEY:Bo(e),schema:i}}function Md({_novip:t},e){const n=e.db,r=function(i,s,{IDBKeyRange:o,indexedDB:a},l){return{dbcore:function(c,h){return h.reduce((d,{create:m})=>({...d,...m(d)}),c)}(fE(s,o,l),i.dbcore)}}(t._middlewares,n,t._deps,e);t.core=r.dbcore,t.tables.forEach(i=>{const s=i.name;t.core.schema.tables.some(o=>o.name===s)&&(i.core=t.core.table(s),t[s]instanceof t.Table&&(t[s].core=i.core))})}function eu({_novip:t},e,n,r){n.forEach(i=>{const s=r[i];e.forEach(o=>{const a=gh(o,i);(!a||"value"in a&&a.value===void 0)&&(o===t.Transaction.prototype||o instanceof t.Transaction?$n(o,i,{get(){return this.table(i)},set(l){F0(this,i,{value:l,writable:!0,configurable:!0,enumerable:!0})}}):o[i]=new t.Table(i,s))})})}function Pd({_novip:t},e){e.forEach(n=>{for(let r in n)n[r]instanceof t.Table&&delete n[r]})}function hE(t,e){return t._cfg.version-e._cfg.version}function pE(t,e,n,r){const i=t._dbSchema,s=t._createTransaction("readwrite",t._storeNames,i);s.create(n),s._completion.catch(r);const o=s._reject.bind(s),a=D.transless||D;Rr(()=>{D.trans=s,D.transless=a,e===0?(Be(i).forEach(l=>{uc(n,l,i[l].primKey,i[l].indexes)}),Md(t,n),B.follow(()=>t.on.populate.fire(s)).catch(o)):function({_novip:l},u,c,h){const d=[],m=l._versions;let _=l._dbSchema=jd(l,l.idbdb,h),v=!1;const S=m.filter(f=>f._cfg.version>=u);function p(){return d.length?B.resolve(d.shift()(c.idbtrans)).then(p):B.resolve()}return S.forEach(f=>{d.push(()=>{const y=_,w=f._cfg.dbschema;zd(l,y,h),zd(l,w,h),_=l._dbSchema=w;const I=r_(y,w);I.add.forEach(b=>{uc(h,b[0],b[1].primKey,b[1].indexes)}),I.change.forEach(b=>{if(b.recreate)throw new A.Upgrade("Not yet support for changing primary key");{const T=h.objectStore(b.name);b.add.forEach(k=>Ud(T,k)),b.change.forEach(k=>{T.deleteIndex(k.name),Ud(T,k)}),b.del.forEach(k=>T.deleteIndex(k))}});const E=f._cfg.contentUpgrade;if(E&&f._cfg.version>u){Md(l,h),c._memoizedTables={},v=!0;let b=x0(w);I.del.forEach(C=>{b[C]=y[C]}),Pd(l,[l.Transaction.prototype]),eu(l,[l.Transaction.prototype],Be(b),b),c.schema=b;const T=vh(E);let k;T&&_s();const O=B.follow(()=>{if(k=E(c),k&&T){var C=qn.bind(null,null);k.then(C,C)}});return k&&typeof k.then=="function"?B.resolve(k):O.then(()=>k)}}),d.push(y=>{(!v||!rE)&&function(w,I){[].slice.call(I.db.objectStoreNames).forEach(E=>w[E]==null&&I.db.deleteObjectStore(E))}(f._cfg.dbschema,y),Pd(l,[l.Transaction.prototype]),eu(l,[l.Transaction.prototype],l._storeNames,l._dbSchema),c.schema=l._dbSchema})}),p().then(()=>{var f,y;y=h,Be(f=_).forEach(w=>{y.db.objectStoreNames.contains(w)||uc(y,w,f[w].primKey,f[w].indexes)})})}(t,e,s,n).catch(o)})}function r_(t,e){const n={del:[],add:[],change:[]};let r;for(r in t)e[r]||n.del.push(r);for(r in e){const i=t[r],s=e[r];if(i){const o={name:r,def:s,recreate:!1,del:[],add:[],change:[]};if(""+(i.primKey.keyPath||"")!=""+(s.primKey.keyPath||"")||i.primKey.auto!==s.primKey.auto&&!bu)o.recreate=!0,n.change.push(o);else{const a=i.idxByName,l=s.idxByName;let u;for(u in a)l[u]||o.del.push(u);for(u in l){const c=a[u],h=l[u];c?c.src!==h.src&&o.change.push(h):o.add.push(h)}(o.del.length>0||o.add.length>0||o.change.length>0)&&n.change.push(o)}}else n.add.push([r,s])}return n}function uc(t,e,n,r){const i=t.db.createObjectStore(e,n.keyPath?{keyPath:n.keyPath,autoIncrement:n.auto}:{autoIncrement:n.auto});return r.forEach(s=>Ud(i,s)),i}function Ud(t,e){t.createIndex(e.name,e.keyPath,{unique:e.unique,multiEntry:e.multi})}function jd(t,e,n){const r={};return Hl(e.objectStoreNames,0).forEach(i=>{const s=n.objectStore(i);let o=s.keyPath;const a=Cd(t_(o),o||"",!1,!1,!!s.autoIncrement,o&&typeof o!="string",!0),l=[];for(let c=0;c{if(e[r]!==null){var i=e[r].split(",").map((o,a)=>{const l=(o=o.trim()).replace(/([&*]|\+\+)/g,""),u=/^\[/.test(l)?l.match(/^\[(.*)\]$/)[1].split("+"):l;return Cd(l,u||null,/\&/.test(o),/\*/.test(o),/\+\+/.test(o),Ge(u),a===0)}),s=i.shift();if(s.multi)throw new A.Schema("Primary key cannot be multi-valued");i.forEach(o=>{if(o.auto)throw new A.Schema("Only primary key can be marked as autoIncrement (++)");if(!o.keyPath)throw new A.Schema("Index must have a name and cannot be an empty string")}),n[r]=n_(r,s,i)}})}stores(e){const n=this.db;this._cfg.storesSource=this._cfg.storesSource?it(this._cfg.storesSource,e):e;const r=n._versions,i={};let s={};return r.forEach(o=>{it(i,o._cfg.storesSource),s=o._cfg.dbschema={},o._parseStoresSpec(i,s)}),n._dbSchema=s,Pd(n,[n._allTables,n,n.Transaction.prototype]),eu(n,[n._allTables,n,n.Transaction.prototype,this._cfg.tables],Be(s),s),n._storeNames=Be(s),this}upgrade(e){return this._cfg.contentUpgrade=Sh(this._cfg.contentUpgrade||ue,e),this}}function kh(t,e){let n=t._dbNamesDB;return n||(n=t._dbNamesDB=new ii(Iu,{addons:[],indexedDB:t,IDBKeyRange:e}),n.version(1).stores({dbnames:"name"})),n.table("dbnames")}function Th(t){return t&&typeof t.databases=="function"}function $d(t){return Rr(function(){return D.letThrough=!0,t()})}function mE(){var t;return!navigator.userAgentData&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\//.test(navigator.userAgent)&&indexedDB.databases?new Promise(function(e){var n=function(){return indexedDB.databases().finally(e)};t=setInterval(n,100),n()}).finally(function(){return clearInterval(t)}):Promise.resolve()}function gE(t){const e=t._state,{indexedDB:n}=t._deps;if(e.isBeingOpened||t.idbdb)return e.dbReadyPromise.then(()=>e.dbOpenError?Me(e.dbOpenError):t);Tn&&(e.openCanceller._stackHolder=mi()),e.isBeingOpened=!0,e.dbOpenError=null,e.openComplete=!1;const r=e.openCanceller;function i(){if(e.openCanceller!==r)throw new A.DatabaseClosed("db.open() was cancelled")}let s=e.dbReadyResolve,o=null,a=!1;return B.race([r,(typeof navigator>"u"?B.resolve():mE()).then(()=>new B((l,u)=>{if(i(),!n)throw new A.MissingAPI;const c=t.name,h=e.autoSchema?n.open(c):n.open(c,Math.round(10*t.verno));if(!h)throw new A.MissingAPI;h.onerror=dn(u),h.onblocked=ve(t._fireOnBlocked),h.onupgradeneeded=ve(d=>{if(o=h.transaction,e.autoSchema&&!t._options.allowEmptyDB){h.onerror=Oo,o.abort(),h.result.close();const _=n.deleteDatabase(c);_.onsuccess=_.onerror=ve(()=>{u(new A.NoSuchDatabase(`Database ${c} doesnt exist`))})}else{o.onerror=dn(u);var m=d.oldVersion>Math.pow(2,62)?0:d.oldVersion;a=m<1,t._novip.idbdb=h.result,pE(t,m/10,o,u)}},u),h.onsuccess=ve(()=>{o=null;const d=t._novip.idbdb=h.result,m=Hl(d.objectStoreNames);if(m.length>0)try{const v=d.transaction((_=m).length===1?_[0]:_,"readonly");e.autoSchema?function({_novip:S},p,f){S.verno=p.version/10;const y=S._dbSchema=jd(0,p,f);S._storeNames=Hl(p.objectStoreNames,0),eu(S,[S._allTables],Be(y),y)}(t,d,v):(zd(t,t._dbSchema,v),function(S,p){const f=r_(jd(0,S.idbdb,p),S._dbSchema);return!(f.add.length||f.change.some(y=>y.add.length||y.change.length))}(t,v)||console.warn("Dexie SchemaDiff: Schema was extended without increasing the number passed to db.version(). Some queries may fail.")),Md(t,v)}catch{}var _;Js.push(t),d.onversionchange=ve(v=>{e.vcFired=!0,t.on("versionchange").fire(v)}),d.onclose=ve(v=>{t.on("close").fire(v)}),a&&function({indexedDB:v,IDBKeyRange:S},p){!Th(v)&&p!==Iu&&kh(v,S).put({name:p}).catch(ue)}(t._deps,c),l()},u)}))]).then(()=>(i(),e.onReadyBeingFired=[],B.resolve($d(()=>t.on.ready.fire(t.vip))).then(function l(){if(e.onReadyBeingFired.length>0){let u=e.onReadyBeingFired.reduce(Sh,ue);return e.onReadyBeingFired=[],B.resolve($d(()=>u(t.vip))).then(l)}}))).finally(()=>{e.onReadyBeingFired=null,e.isBeingOpened=!1}).then(()=>t).catch(l=>{e.dbOpenError=l;try{o&&o.abort()}catch{}return r===e.openCanceller&&t._close(),Me(l)}).finally(()=>{e.openComplete=!0,s()})}function Vd(t){var e=s=>t.next(s),n=i(e),r=i(s=>t.throw(s));function i(s){return o=>{var a=s(o),l=a.value;return a.done?l:l&&typeof l.then=="function"?l.then(n,r):Ge(l)?Promise.all(l).then(n,r):n(l)}}return i(e)()}function vE(t,e,n){var r=arguments.length;if(r<2)throw new A.InvalidArgument("Too few arguments");for(var i=new Array(r-1);--r;)i[r-1]=arguments[r];return n=i.pop(),[t,C0(i),n]}function i_(t,e,n,r,i){return B.resolve().then(()=>{const s=D.transless||D,o=t._createTransaction(e,n,t._dbSchema,r),a={trans:o,transless:s};if(r)o.idbtrans=r.idbtrans;else try{o.create(),t._state.PR1398_maxLoop=3}catch(h){return h.name===wh.InvalidState&&t.isOpen()&&--t._state.PR1398_maxLoop>0?(console.warn("Dexie: Need to reopen db"),t._close(),t.open().then(()=>i_(t,e,n,null,i))):Me(h)}const l=vh(i);let u;l&&_s();const c=B.follow(()=>{if(u=i.call(o,o),u)if(l){var h=qn.bind(null,null);u.then(h,h)}else typeof u.next=="function"&&typeof u.throw=="function"&&(u=Vd(u))},a);return(u&&typeof u.then=="function"?B.resolve(u).then(h=>o.active?h:Me(new A.PrematureCommit("Transaction committed too early. See http://bit.ly/2kdckMn"))):c.then(()=>u)).then(h=>(r&&o._resolve(),o._completion.then(()=>h))).catch(h=>(o._reject(h),Me(h)))})}function Sa(t,e,n){const r=Ge(t)?t.slice():[t];for(let i=0;i0,p={...d,isVirtual:S,keyTail:h,keyLength:v,extractKey:Ld(c),unique:!S&&d.unique};return _.push(p),p.isPrimaryKey||s.push(p),v>1&&o(v===2?c[0]:c.slice(0,v-1),h+1,d),_.sort((f,y)=>f.keyTail-y.keyTail),p}const a=o(r.primaryKey.keyPath,0,r.primaryKey);i[":id"]=[a];for(const c of r.indexes)o(c.keyPath,0,c);function l(c){const h=c.query.index;return h.isVirtual?{...c,query:{index:h,range:(d=c.query.range,m=h.keyTail,{type:d.type===1?2:d.type,lower:Sa(d.lower,d.lowerOpen?t.MAX_KEY:t.MIN_KEY,m),lowerOpen:!0,upper:Sa(d.upper,d.upperOpen?t.MIN_KEY:t.MAX_KEY,m),upperOpen:!0})}}:c;var d,m}return{...n,schema:{...r,primaryKey:a,indexes:s,getIndexByKeyPath:function(c){const h=i[Zs(c)];return h&&h[0]}},count:c=>n.count(l(c)),query:c=>n.query(l(c)),openCursor(c){const{keyTail:h,isVirtual:d,keyLength:m}=c.query.index;return d?n.openCursor(l(c)).then(_=>_&&function(v){return Object.create(v,{continue:{value:function(p){p!=null?v.continue(Sa(p,c.reverse?t.MAX_KEY:t.MIN_KEY,h)):c.unique?v.continue(v.key.slice(0,m).concat(c.reverse?t.MIN_KEY:t.MAX_KEY,h)):v.continue()}},continuePrimaryKey:{value(p,f){v.continuePrimaryKey(Sa(p,t.MAX_KEY,h),f)}},primaryKey:{get:()=>v.primaryKey},key:{get(){const p=v.key;return m===1?p[0]:p.slice(0,m)}},value:{get:()=>v.value}})}(_)):n.openCursor(c)}}}}}};function Nh(t,e,n,r){return n=n||{},r=r||"",Be(t).forEach(i=>{if(Bt(e,i)){var s=t[i],o=e[i];if(typeof s=="object"&&typeof o=="object"&&s&&o){const a=bd(s);a!==bd(o)?n[r+i]=e[i]:a==="Object"?Nh(s,o,n,r+i+"."):s!==o&&(n[r+i]=e[i])}else s!==o&&(n[r+i]=e[i])}else n[r+i]=void 0}),Be(e).forEach(i=>{Bt(t,i)||(n[r+i]=e[i])}),n}const wE={stack:"dbcore",name:"HooksMiddleware",level:2,create:t=>({...t,table(e){const n=t.table(e),{primaryKey:r}=n.schema;return{...n,mutate(s){const o=D.trans,{deleting:a,creating:l,updating:u}=o.table(e).hook;switch(s.type){case"add":if(l.fire===ue)break;return o._promise("readwrite",()=>c(s),!0);case"put":if(l.fire===ue&&u.fire===ue)break;return o._promise("readwrite",()=>c(s),!0);case"delete":if(a.fire===ue)break;return o._promise("readwrite",()=>c(s),!0);case"deleteRange":if(a.fire===ue)break;return o._promise("readwrite",()=>function(d){return h(d.trans,d.range,1e4)}(s),!0)}return n.mutate(s);function c(d){const m=D.trans,_=d.keys||function(v,S){return S.type==="delete"?S.keys:S.keys||S.values.map(v.extractKey)}(r,d);if(!_)throw new Error("Keys missing");return(d=d.type==="add"||d.type==="put"?{...d,keys:_}:{...d}).type!=="delete"&&(d.values=[...d.values]),d.keys&&(d.keys=[...d.keys]),function(v,S,p){return S.type==="add"?Promise.resolve([]):v.getMany({trans:S.trans,keys:p,cache:"immutable"})}(n,d,_).then(v=>{const S=_.map((p,f)=>{const y=v[f],w={onerror:null,onsuccess:null};if(d.type==="delete")a.fire.call(w,p,y,m);else if(d.type==="add"||y===void 0){const I=l.fire.call(w,p,d.values[f],m);p==null&&I!=null&&(p=I,d.keys[f]=p,r.outbound||en(d.values[f],r.keyPath,p))}else{const I=Nh(y,d.values[f]),E=u.fire.call(w,I,p,y,m);if(E){const b=d.values[f];Object.keys(E).forEach(T=>{Bt(b,T)?b[T]=E[T]:en(b,T,E[T])})}}return w});return n.mutate(d).then(({failures:p,results:f,numFailures:y,lastResult:w})=>{for(let I=0;I<_.length;++I){const E=f?f[I]:_[I],b=S[I];E==null?b.onerror&&b.onerror(p[I]):b.onsuccess&&b.onsuccess(d.type==="put"&&v[I]?d.values[I]:E)}return{failures:p,results:f,numFailures:y,lastResult:w}}).catch(p=>(S.forEach(f=>f.onerror&&f.onerror(p)),Promise.reject(p)))})}function h(d,m,_){return n.query({trans:d,values:!1,query:{index:r,range:m},limit:_}).then(({result:v})=>c({type:"delete",keys:v,trans:d}).then(S=>S.numFailures>0?Promise.reject(S.failures[0]):v.length<_?{failures:[],numFailures:0,lastResult:void 0}:h(d,{...m,lower:v[v.length-1],lowerOpen:!0},_)))}}}}})};function s_(t,e,n){try{if(!e||e.keys.length({table:e=>{const n=t.table(e);return{...n,getMany:r=>{if(!r.cache)return n.getMany(r);const i=s_(r.keys,r.trans._cache,r.cache==="clone");return i?B.resolve(i):n.getMany(r).then(s=>(r.trans._cache={keys:r.keys,values:r.cache==="clone"?Vo(s):s},s))},mutate:r=>(r.type!=="add"&&(r.trans._cache=null),n.mutate(r))}}})};function Rh(t){return!("from"in t)}const xn=function(t,e){if(!this){const n=new xn;return t&&"d"in t&&it(n,t),n}it(this,arguments.length?{d:1,from:t,to:arguments.length>1?e:t}:{d:0})};function Do(t,e,n){const r=nt(e,n);if(isNaN(r))return;if(r>0)throw RangeError();if(Rh(t))return it(t,{from:e,to:n,d:1});const i=t.l,s=t.r;if(nt(n,t.from)<0)return i?Do(i,e,n):t.l={from:e,to:n,d:1,l:null,r:null},Sy(t);if(nt(e,t.to)>0)return s?Do(s,e,n):t.r={from:e,to:n,d:1,l:null,r:null},Sy(t);nt(e,t.from)<0&&(t.from=e,t.l=null,t.d=s?s.d+1:1),nt(n,t.to)>0&&(t.to=n,t.r=null,t.d=t.l?t.l.d+1:1);const o=!t.r;i&&!t.l&&tu(t,i),s&&o&&tu(t,s)}function tu(t,e){Rh(e)||function n(r,{from:i,to:s,l:o,r:a}){Do(r,i,s),o&&n(r,o),a&&n(r,a)}(t,e)}function bE(t,e){const n=Kd(e);let r=n.next();if(r.done)return!1;let i=r.value;const s=Kd(t);let o=s.next(i.from),a=o.value;for(;!r.done&&!o.done;){if(nt(a.from,i.to)<=0&&nt(a.to,i.from)>=0)return!0;nt(i.from,a.from)<0?i=(r=n.next(a.from)).value:a=(o=s.next(i.from)).value}return!1}function Kd(t){let e=Rh(t)?null:{s:0,n:t};return{next(n){const r=arguments.length>0;for(;e;)switch(e.s){case 0:if(e.s=1,r)for(;e.n.l&&nt(n,e.n.from)<0;)e={up:e,n:e.n.l,s:1};else for(;e.n.l;)e={up:e,n:e.n.l,s:1};case 1:if(e.s=2,!r||nt(n,e.n.to)<=0)return{value:e.n,done:!1};case 2:if(e.n.r){e.s=3,e={up:e,n:e.n.r,s:0};continue}case 3:e=e.up}return{done:!0}}}}function Sy(t){var e,n;const r=(((e=t.r)===null||e===void 0?void 0:e.d)||0)-(((n=t.l)===null||n===void 0?void 0:n.d)||0),i=r>1?"r":r<-1?"l":"";if(i){const s=i==="r"?"l":"r",o={...t},a=t[i];t.from=a.from,t.to=a.to,t[i]=a[i],o[i]=a[s],t[s]=o,o.d=by(o)}t.d=by(t)}function by({r:t,l:e}){return(t?e?Math.max(t.d,e.d):t.d:e?e.d:0)+1}hs(xn.prototype,{add(t){return tu(this,t),this},addKey(t){return Do(this,t,t),this},addKeys(t){return t.forEach(e=>Do(this,e,e)),this},[Id](){return Kd(this)}});const IE={stack:"dbcore",level:0,create:t=>{const e=t.schema.name,n=new xn(t.MIN_KEY,t.MAX_KEY);return{...t,table:r=>{const i=t.table(r),{schema:s}=i,{primaryKey:o}=s,{extractKey:a,outbound:l}=o,u={...i,mutate:d=>{const m=d.trans,_=m.mutatedParts||(m.mutatedParts={}),v=E=>{const b=`idb://${e}/${r}/${E}`;return _[b]||(_[b]=new xn)},S=v(""),p=v(":dels"),{type:f}=d;let[y,w]=d.type==="deleteRange"?[d.range]:d.type==="delete"?[d.keys]:d.values.length<50?[[],d.values]:[];const I=d.trans._cache;return i.mutate(d).then(E=>{if(Ge(y)){f!=="delete"&&(y=E.results),S.addKeys(y);const b=s_(y,I);b||f==="add"||p.addKeys(y),(b||w)&&function(T,k,O,C){function we(Te){const he=T(Te.name||"");function Zn(Pe){return Pe!=null?Te.extractKey(Pe):null}const sn=Pe=>Te.multiEntry&&Ge(Pe)?Pe.forEach(R=>he.addKey(R)):he.addKey(Pe);(O||C).forEach((Pe,R)=>{const x=O&&Zn(O[R]),W=C&&Zn(C[R]);nt(x,W)!==0&&(x!=null&&sn(x),W!=null&&sn(W))})}k.indexes.forEach(we)}(v,s,b,w)}else if(y){const b={from:y.lower,to:y.upper};p.add(b),S.add(b)}else S.add(n),p.add(n),s.indexes.forEach(b=>v(b.name).add(n));return E})}},c=({query:{index:d,range:m}})=>{var _,v;return[d,new xn((_=m.lower)!==null&&_!==void 0?_:t.MIN_KEY,(v=m.upper)!==null&&v!==void 0?v:t.MAX_KEY)]},h={get:d=>[o,new xn(d.key)],getMany:d=>[o,new xn().addKeys(d.keys)],count:c,query:c,openCursor:c};return Be(h).forEach(d=>{u[d]=function(m){const{subscr:_}=D;if(_){const v=w=>{const I=`idb://${e}/${r}/${w}`;return _[I]||(_[I]=new xn)},S=v(""),p=v(":dels"),[f,y]=h[d](m);if(v(f.name||"").add(y),!f.isPrimaryKey){if(d!=="count"){const w=d==="query"&&l&&m.values&&i.query({...m,values:!1});return i[d].apply(this,arguments).then(I=>{if(d==="query"){if(l&&m.values)return w.then(({result:b})=>(S.addKeys(b),I));const E=m.values?I.result.map(a):I.result;m.values?S.addKeys(E):p.addKeys(E)}else if(d==="openCursor"){const E=I,b=m.values;return E&&Object.create(E,{key:{get:()=>(p.addKey(E.primaryKey),E.key)},primaryKey:{get(){const T=E.primaryKey;return p.addKey(T),T}},value:{get:()=>(b&&S.addKey(E.primaryKey),E.value)}})}return I})}p.add(n)}}return i[d].apply(this,arguments)}}),u}}}};class ii{constructor(e,n){this._middlewares={},this.verno=0;const r=ii.dependencies;this._options=n={addons:ii.addons,autoOpen:!0,indexedDB:r.indexedDB,IDBKeyRange:r.IDBKeyRange,...n},this._deps={indexedDB:n.indexedDB,IDBKeyRange:n.IDBKeyRange};const{addons:i}=n;this._dbSchema={},this._versions=[],this._storeNames=[],this._allTables={},this.idbdb=null,this._novip=this;const s={dbOpenError:null,isBeingOpened:!1,onReadyBeingFired:null,openComplete:!1,dbReadyResolve:ue,dbReadyPromise:null,cancelOpen:ue,openCanceller:null,autoSchema:!0,PR1398_maxLoop:3};var o;s.dbReadyPromise=new B(a=>{s.dbReadyResolve=a}),s.openCanceller=new B((a,l)=>{s.cancelOpen=l}),this._state=s,this.name=e,this.on=Xs(this,"populate","blocked","versionchange","close",{ready:[Sh,ue]}),this.on.ready.subscribe=B0(this.on.ready.subscribe,a=>(l,u)=>{ii.vip(()=>{const c=this._state;if(c.openComplete)c.dbOpenError||B.resolve().then(l),u&&a(l);else if(c.onReadyBeingFired)c.onReadyBeingFired.push(l),u&&a(l);else{a(l);const h=this;u||a(function d(){h.on.ready.unsubscribe(l),h.on.ready.unsubscribe(d)})}})}),this.Collection=(o=this,Bs(oE.prototype,function(a,l){this.db=o;let u=X0,c=null;if(l)try{u=l()}catch(_){c=_}const h=a._ctx,d=h.table,m=d.hook.reading.fire;this._ctx={table:d,index:h.index,isPrimKey:!h.index||d.schema.primKey.keyPath&&h.index===d.schema.primKey.name,range:u,keysOnly:!1,dir:"next",unique:"",algorithm:null,filter:null,replayFilter:null,justLimit:!0,isMatch:null,offset:0,limit:1/0,error:c,or:h.or,valueMapper:m!==No?m:null}})),this.Table=function(a){return Bs(sE.prototype,function(l,u,c){this.db=a,this._tx=c,this.name=l,this.schema=u,this.hook=a._allTables[l]?a._allTables[l].hook:Xs(null,{creating:[YI,ue],reading:[QI,No],updating:[qI,ue],deleting:[HI,ue]})})}(this),this.Transaction=function(a){return Bs(cE.prototype,function(l,u,c,h,d){this.db=a,this.mode=l,this.storeNames=u,this.schema=c,this.chromeTransactionDurability=h,this.idbtrans=null,this.on=Xs(this,"complete","error","abort"),this.parent=d||null,this.active=!0,this._reculock=0,this._blockedFuncs=[],this._resolve=null,this._reject=null,this._waitingFor=null,this._waitingQueue=null,this._spinCount=0,this._completion=new B((m,_)=>{this._resolve=m,this._reject=_}),this._completion.then(()=>{this.active=!1,this.on.complete.fire()},m=>{var _=this.active;return this.active=!1,this.on.error.fire(m),this.parent?this.parent._reject(m):_&&this.idbtrans&&this.idbtrans.abort(),Me(m)})})}(this),this.Version=function(a){return Bs(yE.prototype,function(l){this.db=a,this._cfg={version:l,storesSource:null,dbschema:{},tables:{},contentUpgrade:null}})}(this),this.WhereClause=function(a){return Bs(e_.prototype,function(l,u,c){this.db=a,this._ctx={table:l,index:u===":id"?null:u,or:c};const h=a._deps.indexedDB;if(!h)throw new A.MissingAPI;this._cmp=this._ascending=h.cmp.bind(h),this._descending=(d,m)=>h.cmp(m,d),this._max=(d,m)=>h.cmp(d,m)>0?d:m,this._min=(d,m)=>h.cmp(d,m)<0?d:m,this._IDBKeyRange=a._deps.IDBKeyRange})}(this),this.on("versionchange",a=>{a.newVersion>0?console.warn(`Another connection wants to upgrade database '${this.name}'. Closing db now to resume the upgrade.`):console.warn(`Another connection wants to delete database '${this.name}'. Closing db now to resume the delete request.`),this.close()}),this.on("blocked",a=>{!a.newVersion||a.newVersionnew this.Transaction(a,l,u,this._options.chromeTransactionDurability,c),this._fireOnBlocked=a=>{this.on("blocked").fire(a),Js.filter(l=>l.name===this.name&&l!==this&&!l._state.vcFired).map(l=>l.on("versionchange").fire(a))},this.use(_E),this.use(wE),this.use(IE),this.use(SE),this.vip=Object.create(this,{_vip:{value:!0}}),i.forEach(a=>a(this))}version(e){if(isNaN(e)||e<.1)throw new A.Type("Given version is not a positive number");if(e=Math.round(10*e)/10,this.idbdb||this._state.isBeingOpened)throw new A.Schema("Cannot add version when database is open");this.verno=Math.max(this.verno,e);const n=this._versions;var r=n.filter(i=>i._cfg.version===e)[0];return r||(r=new this.Version(e),n.push(r),n.sort(hE),r.stores({}),this._state.autoSchema=!1,r)}_whenReady(e){return this.idbdb&&(this._state.openComplete||D.letThrough||this._vip)?e():new B((n,r)=>{if(this._state.openComplete)return r(new A.DatabaseClosed(this._state.dbOpenError));if(!this._state.isBeingOpened){if(!this._options.autoOpen)return void r(new A.DatabaseClosed);this.open().catch(ue)}this._state.dbReadyPromise.then(n,r)}).then(e)}use({stack:e,create:n,level:r,name:i}){i&&this.unuse({stack:e,name:i});const s=this._middlewares[e]||(this._middlewares[e]=[]);return s.push({stack:e,create:n,level:r??10,name:i}),s.sort((o,a)=>o.level-a.level),this}unuse({stack:e,name:n,create:r}){return e&&this._middlewares[e]&&(this._middlewares[e]=this._middlewares[e].filter(i=>r?i.create!==r:!!n&&i.name!==n)),this}open(){return gE(this)}_close(){const e=this._state,n=Js.indexOf(this);if(n>=0&&Js.splice(n,1),this.idbdb){try{this.idbdb.close()}catch{}this._novip.idbdb=null}e.dbReadyPromise=new B(r=>{e.dbReadyResolve=r}),e.openCanceller=new B((r,i)=>{e.cancelOpen=i})}close(){this._close();const e=this._state;this._options.autoOpen=!1,e.dbOpenError=new A.DatabaseClosed,e.isBeingOpened&&e.cancelOpen(e.dbOpenError)}delete(){const e=arguments.length>0,n=this._state;return new B((r,i)=>{const s=()=>{this.close();var o=this._deps.indexedDB.deleteDatabase(this.name);o.onsuccess=ve(()=>{(function({indexedDB:a,IDBKeyRange:l},u){!Th(a)&&u!==Iu&&kh(a,l).delete(u).catch(ue)})(this._deps,this.name),r()}),o.onerror=dn(i),o.onblocked=this._fireOnBlocked};if(e)throw new A.InvalidArgument("Arguments not allowed in db.delete()");n.isBeingOpened?n.dbReadyPromise.then(s):s()})}backendDB(){return this.idbdb}isOpen(){return this.idbdb!==null}hasBeenClosed(){const e=this._state.dbOpenError;return e&&e.name==="DatabaseClosed"}hasFailed(){return this._state.dbOpenError!==null}dynamicallyOpened(){return this._state.autoSchema}get tables(){return Be(this._allTables).map(e=>this._allTables[e])}transaction(){const e=vE.apply(this,arguments);return this._transaction.apply(this,e)}_transaction(e,n,r){let i=D.trans;i&&i.db===this&&e.indexOf("!")===-1||(i=null);const s=e.indexOf("?")!==-1;let o,a;e=e.replace("!","").replace("?","");try{if(a=n.map(u=>{var c=u instanceof this.Table?u.name:u;if(typeof c!="string")throw new TypeError("Invalid table argument to Dexie.transaction(). Only Table or String are allowed");return c}),e=="r"||e===ic)o=ic;else{if(e!="rw"&&e!=sc)throw new A.InvalidArgument("Invalid transaction mode: "+e);o=sc}if(i){if(i.mode===ic&&o===sc){if(!s)throw new A.SubTransaction("Cannot enter a sub-transaction with READWRITE mode when parent transaction is READONLY");i=null}i&&a.forEach(u=>{if(i&&i.storeNames.indexOf(u)===-1){if(!s)throw new A.SubTransaction("Table "+u+" not included in parent transaction.");i=null}}),s&&i&&!i.active&&(i=null)}}catch(u){return i?i._promise(null,(c,h)=>{h(u)}):Me(u)}const l=i_.bind(null,this,o,a,i,r);return i?i._promise(o,l,"lock"):D.trans?ws(D.transless,()=>this._whenReady(l)):this._whenReady(l)}table(e){if(!Bt(this._allTables,e))throw new A.InvalidTable(`Table ${e} does not exist`);return this._allTables[e]}}const EE=typeof Symbol<"u"&&"observable"in Symbol?Symbol.observable:"@@observable";class kE{constructor(e){this._subscribe=e}subscribe(e,n,r){return this._subscribe(e&&typeof e!="function"?e:{next:e,error:n,complete:r})}[EE](){return this}}function o_(t,e){return Be(e).forEach(n=>{tu(t[n]||(t[n]=new xn),e[n])}),t}function TE(t){let e,n=!1;const r=new kE(i=>{const s=vh(t);let o=!1,a={},l={};const u={get closed(){return o},unsubscribe:()=>{o=!0,Fr.storagemutated.unsubscribe(m)}};i.start&&i.start(u);let c=!1,h=!1;function d(){return Be(l).some(v=>a[v]&&bE(a[v],l[v]))}const m=v=>{o_(a,v),d()&&_()},_=()=>{if(c||o)return;a={};const v={},S=function(p){s&&_s();const f=()=>Rr(t,{subscr:p,trans:null}),y=D.trans?ws(D.transless,f):f();return s&&y.then(qn,qn),y}(v);h||(Fr(Fo,m),h=!0),c=!0,Promise.resolve(S).then(p=>{n=!0,e=p,c=!1,o||(d()?_():(a={},l=v,i.next&&i.next(p)))},p=>{c=!1,n=!1,i.error&&i.error(p),u.unsubscribe()})};return _(),u});return r.hasValue=()=>n,r.getValue=()=>e,r}let Wd;try{Wd={indexedDB:ye.indexedDB||ye.mozIndexedDB||ye.webkitIndexedDB||ye.msIndexedDB,IDBKeyRange:ye.IDBKeyRange||ye.webkitIDBKeyRange}}catch{Wd={indexedDB:null,IDBKeyRange:null}}const jr=ii;function Ya(t){let e=jn;try{jn=!0,Fr.storagemutated.fire(t)}finally{jn=e}}hs(jr,{...za,delete:t=>new jr(t,{addons:[]}).delete(),exists:t=>new jr(t,{addons:[]}).open().then(e=>(e.close(),!0)).catch("NoSuchDatabaseError",()=>!1),getDatabaseNames(t){try{return function({indexedDB:e,IDBKeyRange:n}){return Th(e)?Promise.resolve(e.databases()).then(r=>r.map(i=>i.name).filter(i=>i!==Iu)):kh(e,n).toCollection().primaryKeys()}(jr.dependencies).then(t)}catch{return Me(new A.MissingAPI)}},defineClass:()=>function(t){it(this,t)},ignoreTransaction:t=>D.trans?ws(D.transless,t):t(),vip:$d,async:function(t){return function(){try{var e=Vd(t.apply(this,arguments));return e&&typeof e.then=="function"?e:B.resolve(e)}catch(n){return Me(n)}}},spawn:function(t,e,n){try{var r=Vd(t.apply(n,e||[]));return r&&typeof r.then=="function"?r:B.resolve(r)}catch(i){return Me(i)}},currentTransaction:{get:()=>D.trans||null},waitFor:function(t,e){const n=B.resolve(typeof t=="function"?jr.ignoreTransaction(t):t).timeout(e||6e4);return D.trans?D.trans.waitFor(n):n},Promise:B,debug:{get:()=>Tn,set:t=>{M0(t,t==="dexie"?()=>!0:J0)}},derive:Gi,extend:it,props:hs,override:B0,Events:Xs,on:Fr,liveQuery:TE,extendObservabilitySet:o_,getByKeyPath:Vn,setByKeyPath:en,delByKeyPath:function(t,e){typeof e=="string"?en(t,e,void 0):"length"in e&&[].map.call(e,function(n){en(t,n,void 0)})},shallowClone:x0,deepClone:Vo,getObjectDiff:Nh,cmp:nt,asap:D0,minKey:xd,addons:[],connections:Js,errnames:wh,dependencies:Wd,semVer:yy,version:yy.split(".").map(t=>parseInt(t)).reduce((t,e,n)=>t+e/Math.pow(10,2*n))}),jr.maxKey=Bo(jr.dependencies.IDBKeyRange),typeof dispatchEvent<"u"&&typeof addEventListener<"u"&&(Fr(Fo,t=>{if(!jn){let e;bu?(e=document.createEvent("CustomEvent"),e.initCustomEvent(cr,!0,!0,t)):e=new CustomEvent(cr,{detail:t}),jn=!0,dispatchEvent(e),jn=!1}}),addEventListener(cr,({detail:t})=>{jn||Ya(t)}));let jn=!1;if(typeof BroadcastChannel<"u"){const t=new BroadcastChannel(cr);typeof t.unref=="function"&&t.unref(),Fr(Fo,e=>{jn||t.postMessage(e)}),t.onmessage=e=>{e.data&&Ya(e.data)}}else if(typeof self<"u"&&typeof navigator<"u"){Fr(Fo,e=>{try{jn||(typeof localStorage<"u"&&localStorage.setItem(cr,JSON.stringify({trig:Math.random(),changedParts:e})),typeof self.clients=="object"&&[...self.clients.matchAll({includeUncontrolled:!0})].forEach(n=>n.postMessage({type:cr,changedParts:e})))}catch{}}),typeof addEventListener<"u"&&addEventListener("storage",e=>{if(e.key===cr){const n=JSON.parse(e.newValue);n&&Ya(n.changedParts)}});const t=self.document&&navigator.serviceWorker;t&&t.addEventListener("message",function({data:e}){e&&e.type===cr&&Ya(e.changedParts)})}B.rejectionMapper=function(t,e){if(!t||t instanceof Ji||t instanceof TypeError||t instanceof SyntaxError||!t.name||!dy[t.name])return t;var n=new dy[t.name](e||t.message,t);return"stack"in t&&$n(n,"stack",{get:function(){return this.inner.stack}}),n},M0(Tn,J0);class NE extends ii{constructor(){super("MeerkatDatabase");q(this,"tablesKey");q(this,"files");this.version(1).stores({tablesKey:"&tableName",files:"&fileName"}),this.tablesKey=this.table("tablesKey"),this.files=this.table("files")}}const RE=500*1024*1024;class OE{constructor({fetchTableFileBuffers:e,instanceManager:n,options:r,logger:i,onEvent:s}){q(this,"indexedDB");q(this,"instanceManager");q(this,"fileRegisterer");q(this,"configurationOptions");q(this,"logger");q(this,"onEvent");q(this,"fetchTableFileBuffers");this.fetchTableFileBuffers=e,this.indexedDB=new NE,this.instanceManager=n,this.fileRegisterer=new CI({instanceManager:n}),this.configurationOptions=r,this.logger=i,this.onEvent=s}async _flushDB(){await this.indexedDB.tablesKey.clear(),await this.indexedDB.files.clear()}async initializeDB(){}async bulkRegisterFileBuffer(e){const n=Array.from(new Set(e.map(a=>a.tableName))),r=await this.indexedDB.tablesKey.toArray(),i=uy(e,r),s=n.map(a=>{var l;return{tableName:a,files:((l=i.get(a))==null?void 0:l.files)??[]}}),o=e.map(a=>({buffer:a.buffer,fileName:a.fileName}));await this.indexedDB.transaction("rw",this.indexedDB.tablesKey,this.indexedDB.files,async()=>{await this.indexedDB.tablesKey.bulkPut(s),await this.indexedDB.files.bulkPut(o)}).catch(a=>{console.error(a)})}async registerFileBuffer(e){const{buffer:n,fileName:r,tableName:i}=e,s=await this.indexedDB.tablesKey.toArray(),o=uy([e],s);await this.indexedDB.transaction("rw",this.indexedDB.tablesKey,this.indexedDB.files,async()=>{var a;await this.indexedDB.tablesKey.put({tableName:e.tableName,files:((a=o.get(i))==null?void 0:a.files)??[]}),await this.indexedDB.files.put({fileName:r,buffer:n})}).catch(a=>{console.error(a)})}async bulkRegisterJSON(e){const n=await Promise.all(e.map(async r=>{const{json:i,tableName:s,...o}=r;return{buffer:await ay({instanceManager:this.instanceManager,json:i,tableName:s,logger:this.logger,onEvent:this.onEvent,metadata:r.metadata}),tableName:s,...o}}));await this.bulkRegisterFileBuffer(n)}async registerJSON(e){const{json:n,tableName:r,...i}=e,s=await ay({instanceManager:this.instanceManager,json:n,tableName:r,logger:this.logger,onEvent:this.onEvent,metadata:e.metadata});await this.registerFileBuffer({buffer:s,tableName:r,...i})}async getFileBuffer(e){const n=await this.indexedDB.files.get(e);return n==null?void 0:n.buffer}async getFilesNameForTables(e){const n=e.map(i=>i.name),r=(await this.indexedDB.tablesKey.bulkGet(n)).filter(ly).reduce((i,s)=>(i[s.tableName]=s,i),{});return e.map(i=>{var s;return{tableName:i.name,files:cy(((s=r[i.name])==null?void 0:s.files)??[],i.partitions)}})}async fileCleanUpIfRequired(e){var i;const n=((i=this.configurationOptions)==null?void 0:i.maxFileSize)??RE;if(this.fileRegisterer.totalByteLength()>n){const s=this.fileRegisterer.getAllFilesInDB(),o=[];for(const a of e)for(const l of(a==null?void 0:a.files)??[])s.includes(l.fileName)||o.push(l.fileName);for(const a of o)await this.fileRegisterer.registerEmptyFileBuffer(a)}}async mountFileBufferByTables(e){const n=await this.getFilesNameForTables(e);console.log("tableData",n),this.fileCleanUpIfRequired(n);const r=n.map(async i=>{var u;const o=((i==null?void 0:i.files)||[]).map(c=>c.fileName).filter(c=>!this.fileRegisterer.isFileRegisteredInDB(c));console.log("filesList",o);const a=Array.from(new Set(o)),l=await((u=this.indexedDB)==null?void 0:u.files.bulkGet(a));await Promise.all(l.filter(ly).map(async c=>{await this.fileRegisterer.registerFileBuffer(c.fileName,c.buffer)}))});await Promise.all(r)}async getTableData(e){const n=await this.indexedDB.tablesKey.get(e.name);if(n)return{...n,files:cy((n==null?void 0:n.files)??[],e.partitions)}}async setTableMetadata(e,n){await this.indexedDB.tablesKey.update(e,{metadata:n})}async dropFilesByTableName(e,n){const r=await this.indexedDB.tablesKey.get(e);if(r){const i=r.files.filter(s=>!n.includes(s.fileName));await this.indexedDB.tablesKey.put({tableName:e,files:i})}await this.indexedDB.files.bulkDelete(n)}async onDBShutdownHandler(){this.fileRegisterer.flushFileCache()}}class FE extends OE{constructor(e){super(e)}async initializeDB(){}async bulkRegisterFileBuffer(e){}async registerFileBuffer(e){}async bulkRegisterJSON(e){}async registerJSON(e){}async setTableMetadata(e,n){}async dropFilesByTableName(e,n){}}var a_={exports:{}};(function(t){(function(e,n){t.exports?t.exports=n():e.log=n()})(f_,function(){var e=function(){},n="undefined",r=typeof window!==n&&typeof window.navigator!==n&&/Trident\/|MSIE /.test(window.navigator.userAgent),i=["trace","debug","info","warn","error"];function s(v,S){var p=v[S];if(typeof p.bind=="function")return p.bind(v);try{return Function.prototype.bind.call(p,v)}catch{return function(){return Function.prototype.apply.apply(p,[v,arguments])}}}function o(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function a(v){return v==="debug"&&(v="log"),typeof console===n?!1:v==="trace"&&r?o:console[v]!==void 0?s(console,v):console.log!==void 0?s(console,"log"):e}function l(v,S){for(var p=0;p=0&&k<=f.levels.SILENT){if(y=k,O!==!1&&I(k),l.call(f,k,v),typeof console===n&&k()=>(e||t((e={exports:{}}).exports,e),e.exports),PE=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of xE(e))!LE.call(t,i)&&i!==n&&l_(t,i,{get:()=>e[i],enumerable:!(r=AE(e,i))||r.enumerable});return t},UE=(t,e,n)=>(n=t!=null?DE(CE(t)):{},PE(e||!t||!t.__esModule?l_(n,"default",{value:t,enumerable:!0}):n,t)),jE=ME((t,e)=>{e.exports=Worker}),zE=(t=>(t[t.UNDEFINED=0]="UNDEFINED",t[t.AUTOMATIC=1]="AUTOMATIC",t[t.READ_ONLY=2]="READ_ONLY",t[t.READ_WRITE=3]="READ_WRITE",t))(zE||{}),$E=(t=>(t[t.IDENTIFIER=0]="IDENTIFIER",t[t.NUMERIC_CONSTANT=1]="NUMERIC_CONSTANT",t[t.STRING_CONSTANT=2]="STRING_CONSTANT",t[t.OPERATOR=3]="OPERATOR",t[t.KEYWORD=4]="KEYWORD",t[t.COMMENT=5]="COMMENT",t))($E||{}),VE=(t=>(t[t.NONE=0]="NONE",t[t.DEBUG=1]="DEBUG",t[t.INFO=2]="INFO",t[t.WARNING=3]="WARNING",t[t.ERROR=4]="ERROR",t))(VE||{}),KE=(t=>(t[t.NONE=0]="NONE",t[t.CONNECT=1]="CONNECT",t[t.DISCONNECT=2]="DISCONNECT",t[t.OPEN=3]="OPEN",t[t.QUERY=4]="QUERY",t[t.INSTANTIATE=5]="INSTANTIATE",t))(KE||{}),WE=(t=>(t[t.NONE=0]="NONE",t[t.OK=1]="OK",t[t.ERROR=2]="ERROR",t[t.START=3]="START",t[t.RUN=4]="RUN",t[t.CAPTURE=5]="CAPTURE",t))(WE||{}),QE=(t=>(t[t.NONE=0]="NONE",t[t.WEB_WORKER=1]="WEB_WORKER",t[t.NODE_WORKER=2]="NODE_WORKER",t[t.BINDINGS=3]="BINDINGS",t[t.ASYNC_DUCKDB=4]="ASYNC_DUCKDB",t))(QE||{}),YE=(t=>(t[t.SUCCESS=0]="SUCCESS",t))(YE||{}),HE=class{constructor(t,e){this._bindings=t,this._conn=e}get bindings(){return this._bindings}async close(){return this._bindings.disconnect(this._conn)}useUnsafe(t){return t(this._bindings,this._conn)}async query(t){this._bindings.logger.log({timestamp:new Date,level:2,origin:4,topic:4,event:4,value:t});let e=await this._bindings.runQuery(this._conn,t),n=$t.from(e);return console.assert(n.isSync(),"Reader is not sync"),console.assert(n.isFile(),"Reader is not file"),new Ze(n)}async send(t){this._bindings.logger.log({timestamp:new Date,level:2,origin:4,topic:4,event:4,value:t});let e=await this._bindings.startPendingQuery(this._conn,t);for(;e==null;)e=await this._bindings.pollPendingQuery(this._conn);let n=new u_(this._bindings,this._conn,e),r=await $t.from(n);return console.assert(r.isAsync()),console.assert(r.isStream()),r}async cancelSent(){return await this._bindings.cancelPendingQuery(this._conn)}async getTableNames(t){return await this._bindings.getTableNames(this._conn,t)}async prepare(t){let e=await this._bindings.createPrepared(this._conn,t);return new qE(this._bindings,this._conn,e)}async insertArrowTable(t,e){let n=FI(t,"stream");await this.insertArrowFromIPCStream(n,e)}async insertArrowFromIPCStream(t,e){await this._bindings.insertArrowFromIPCStream(this._conn,t,e)}async insertCSVFromPath(t,e){await this._bindings.insertCSVFromPath(this._conn,t,e)}async insertJSONFromPath(t,e){await this._bindings.insertJSONFromPath(this._conn,t,e)}},u_=class{constructor(t,e,n){this.db=t,this.conn=e,this.header=n,this._first=!0,this._depleted=!1,this._inFlight=null}async next(){if(this._first)return this._first=!1,{done:!1,value:this.header};if(this._depleted)return{done:!0,value:null};let t;return this._inFlight!=null?(t=await this._inFlight,this._inFlight=null):t=await this.db.fetchQueryResults(this.conn),this._depleted=t.length==0,this._depleted||(this._inFlight=this.db.fetchQueryResults(this.conn)),{done:this._depleted,value:t}}[Symbol.asyncIterator](){return this}},qE=class{constructor(t,e,n){this.bindings=t,this.connectionId=e,this.statementId=n}async close(){await this.bindings.closePrepared(this.connectionId,this.statementId)}async query(...t){let e=await this.bindings.runPrepared(this.connectionId,this.statementId,t),n=$t.from(e);return console.assert(n.isSync()),console.assert(n.isFile()),new Ze(n)}async send(...t){let e=await this.bindings.sendPrepared(this.connectionId,this.statementId,t),n=new u_(this.bindings,this.connectionId,e),r=await $t.from(n);return console.assert(r.isAsync()),console.assert(r.isStream()),r}},GE=(t=>(t.CANCEL_PENDING_QUERY="CANCEL_PENDING_QUERY",t.CLOSE_PREPARED="CLOSE_PREPARED",t.COLLECT_FILE_STATISTICS="COLLECT_FILE_STATISTICS",t.CONNECT="CONNECT",t.COPY_FILE_TO_BUFFER="COPY_FILE_TO_BUFFER",t.COPY_FILE_TO_PATH="COPY_FILE_TO_PATH",t.CREATE_PREPARED="CREATE_PREPARED",t.DISCONNECT="DISCONNECT",t.DROP_FILE="DROP_FILE",t.DROP_FILES="DROP_FILES",t.EXPORT_FILE_STATISTICS="EXPORT_FILE_STATISTICS",t.FETCH_QUERY_RESULTS="FETCH_QUERY_RESULTS",t.FLUSH_FILES="FLUSH_FILES",t.GET_FEATURE_FLAGS="GET_FEATURE_FLAGS",t.GET_TABLE_NAMES="GET_TABLE_NAMES",t.GET_VERSION="GET_VERSION",t.GLOB_FILE_INFOS="GLOB_FILE_INFOS",t.INSERT_ARROW_FROM_IPC_STREAM="INSERT_ARROW_FROM_IPC_STREAM",t.INSERT_CSV_FROM_PATH="IMPORT_CSV_FROM_PATH",t.INSERT_JSON_FROM_PATH="IMPORT_JSON_FROM_PATH",t.INSTANTIATE="INSTANTIATE",t.OPEN="OPEN",t.PING="PING",t.POLL_PENDING_QUERY="POLL_PENDING_QUERY",t.REGISTER_FILE_BUFFER="REGISTER_FILE_BUFFER",t.REGISTER_FILE_HANDLE="REGISTER_FILE_HANDLE",t.REGISTER_FILE_URL="REGISTER_FILE_URL",t.RESET="RESET",t.RUN_PREPARED="RUN_PREPARED",t.RUN_QUERY="RUN_QUERY",t.SEND_PREPARED="SEND_PREPARED",t.START_PENDING_QUERY="START_PENDING_QUERY",t.TOKENIZE="TOKENIZE",t))(GE||{}),JE=(t=>(t.CONNECTION_INFO="CONNECTION_INFO",t.ERROR="ERROR",t.FEATURE_FLAGS="FEATURE_FLAGS",t.FILE_BUFFER="FILE_BUFFER",t.FILE_INFOS="FILE_INFOS",t.FILE_SIZE="FILE_SIZE",t.FILE_STATISTICS="FILE_STATISTICS",t.INSTANTIATE_PROGRESS="INSTANTIATE_PROGRESS",t.LOG="LOG",t.OK="OK",t.PREPARED_STATEMENT_ID="PREPARED_STATEMENT_ID",t.QUERY_PLAN="QUERY_PLAN",t.QUERY_RESULT="QUERY_RESULT",t.QUERY_RESULT_CHUNK="QUERY_RESULT_CHUNK",t.QUERY_RESULT_HEADER="QUERY_RESULT_HEADER",t.QUERY_RESULT_HEADER_OR_NULL="QUERY_RESULT_HEADER_OR_NULL",t.REGISTERED_FILE="REGISTERED_FILE",t.SCRIPT_TOKENS="SCRIPT_TOKENS",t.SUCCESS="SUCCESS",t.TABLE_NAMES="TABLE_NAMES",t.VERSION_STRING="VERSION_STRING",t))(JE||{}),Z=class{constructor(t,e){this.promiseResolver=()=>{},this.promiseRejecter=()=>{},this.type=t,this.data=e,this.promise=new Promise((n,r)=>{this.promiseResolver=n,this.promiseRejecter=r})}};function Ha(t){switch(t.typeId){case g.Binary:return{sqlType:"binary"};case g.Bool:return{sqlType:"bool"};case g.Date:return{sqlType:"date"};case g.DateDay:return{sqlType:"date32[d]"};case g.DateMillisecond:return{sqlType:"date64[ms]"};case g.Decimal:{let e=t;return{sqlType:"decimal",precision:e.precision,scale:e.scale}}case g.Float:return{sqlType:"float"};case g.Float16:return{sqlType:"float16"};case g.Float32:return{sqlType:"float32"};case g.Float64:return{sqlType:"float64"};case g.Int:return{sqlType:"int32"};case g.Int16:return{sqlType:"int16"};case g.Int32:return{sqlType:"int32"};case g.Int64:return{sqlType:"int64"};case g.Uint16:return{sqlType:"uint16"};case g.Uint32:return{sqlType:"uint32"};case g.Uint64:return{sqlType:"uint64"};case g.Uint8:return{sqlType:"uint8"};case g.IntervalDayTime:return{sqlType:"interval[dt]"};case g.IntervalYearMonth:return{sqlType:"interval[m]"};case g.List:return{sqlType:"list",valueType:Ha(t.valueType)};case g.FixedSizeBinary:return{sqlType:"fixedsizebinary",byteWidth:t.byteWidth};case g.Null:return{sqlType:"null"};case g.Utf8:return{sqlType:"utf8"};case g.Struct:return{sqlType:"struct",fields:t.children.map(e=>Qd(e.name,e.type))};case g.Map:{let e=t;return{sqlType:"map",keyType:Ha(e.keyType),valueType:Ha(e.valueType)}}case g.Time:return{sqlType:"time[s]"};case g.TimeMicrosecond:return{sqlType:"time[us]"};case g.TimeMillisecond:return{sqlType:"time[ms]"};case g.TimeNanosecond:return{sqlType:"time[ns]"};case g.TimeSecond:return{sqlType:"time[s]"};case g.Timestamp:return{sqlType:"timestamp",timezone:t.timezone||void 0};case g.TimestampSecond:return{sqlType:"timestamp[s]",timezone:t.timezone||void 0};case g.TimestampMicrosecond:return{sqlType:"timestamp[us]",timezone:t.timezone||void 0};case g.TimestampNanosecond:return{sqlType:"timestamp[ns]",timezone:t.timezone||void 0};case g.TimestampMillisecond:return{sqlType:"timestamp[ms]",timezone:t.timezone||void 0}}throw new Error("unsupported arrow type: ".concat(t.toString()))}function Qd(t,e){let n=Ha(e);return n.name=t,n}var XE=new TextEncoder,ZE=class{constructor(t,e=null){this._onInstantiationProgress=[],this._worker=null,this._workerShutdownPromise=null,this._workerShutdownResolver=()=>{},this._nextMessageId=0,this._pendingRequests=new Map,this._logger=t,this._onMessageHandler=this.onMessage.bind(this),this._onErrorHandler=this.onError.bind(this),this._onCloseHandler=this.onClose.bind(this),e!=null&&this.attach(e)}get logger(){return this._logger}attach(t){this._worker=t,this._worker.addEventListener("message",this._onMessageHandler),this._worker.addEventListener("error",this._onErrorHandler),this._worker.addEventListener("close",this._onCloseHandler),this._workerShutdownPromise=new Promise((e,n)=>{this._workerShutdownResolver=e})}detach(){this._worker&&(this._worker.removeEventListener("message",this._onMessageHandler),this._worker.removeEventListener("error",this._onErrorHandler),this._worker.removeEventListener("close",this._onCloseHandler),this._worker=null,this._workerShutdownResolver(null),this._workerShutdownPromise=null,this._workerShutdownResolver=()=>{})}async terminate(){this._worker&&(this._worker.terminate(),this._worker=null,this._workerShutdownPromise=null,this._workerShutdownResolver=()=>{})}async postTask(t,e=[]){if(!this._worker){console.error("cannot send a message since the worker is not set!");return}let n=this._nextMessageId++;return this._pendingRequests.set(n,t),this._worker.postMessage({messageId:n,type:t.type,data:t.data},e),await t.promise}onMessage(t){var e;let n=t.data;switch(n.type){case"LOG":{this._logger.log(n.data);return}case"INSTANTIATE_PROGRESS":{for(let i of this._onInstantiationProgress)i(n.data);return}}let r=this._pendingRequests.get(n.requestId);if(!r){console.warn("unassociated response: [".concat(n.requestId,", ").concat(n.type.toString(),"]"));return}if(this._pendingRequests.delete(n.requestId),n.type=="ERROR"){let i=new Error(n.data.message);i.name=n.data.name,(e=Object.getOwnPropertyDescriptor(i,"stack"))!=null&&e.writable&&(i.stack=n.data.stack),r.promiseRejecter(i);return}switch(r.type){case"CLOSE_PREPARED":case"COLLECT_FILE_STATISTICS":case"COPY_FILE_TO_PATH":case"DISCONNECT":case"DROP_FILE":case"DROP_FILES":case"FLUSH_FILES":case"INSERT_ARROW_FROM_IPC_STREAM":case"IMPORT_CSV_FROM_PATH":case"IMPORT_JSON_FROM_PATH":case"OPEN":case"PING":case"REGISTER_FILE_BUFFER":case"REGISTER_FILE_HANDLE":case"REGISTER_FILE_URL":case"RESET":if(n.type=="OK"){r.promiseResolver(n.data);return}break;case"INSTANTIATE":if(this._onInstantiationProgress=[],n.type=="OK"){r.promiseResolver(n.data);return}break;case"GLOB_FILE_INFOS":if(n.type=="FILE_INFOS"){r.promiseResolver(n.data);return}break;case"GET_VERSION":if(n.type=="VERSION_STRING"){r.promiseResolver(n.data);return}break;case"GET_FEATURE_FLAGS":if(n.type=="FEATURE_FLAGS"){r.promiseResolver(n.data);return}break;case"GET_TABLE_NAMES":if(n.type=="TABLE_NAMES"){r.promiseResolver(n.data);return}break;case"TOKENIZE":if(n.type=="SCRIPT_TOKENS"){r.promiseResolver(n.data);return}break;case"COPY_FILE_TO_BUFFER":if(n.type=="FILE_BUFFER"){r.promiseResolver(n.data);return}break;case"EXPORT_FILE_STATISTICS":if(n.type=="FILE_STATISTICS"){r.promiseResolver(n.data);return}break;case"CONNECT":if(n.type=="CONNECTION_INFO"){r.promiseResolver(n.data);return}break;case"RUN_PREPARED":case"RUN_QUERY":if(n.type=="QUERY_RESULT"){r.promiseResolver(n.data);return}break;case"SEND_PREPARED":if(n.type=="QUERY_RESULT_HEADER"){r.promiseResolver(n.data);return}break;case"START_PENDING_QUERY":if(n.type=="QUERY_RESULT_HEADER_OR_NULL"){r.promiseResolver(n.data);return}break;case"POLL_PENDING_QUERY":if(n.type=="QUERY_RESULT_HEADER_OR_NULL"){r.promiseResolver(n.data);return}break;case"CANCEL_PENDING_QUERY":if(this._onInstantiationProgress=[],n.type=="SUCCESS"){r.promiseResolver(n.data);return}break;case"FETCH_QUERY_RESULTS":if(n.type=="QUERY_RESULT_CHUNK"){r.promiseResolver(n.data);return}break;case"CREATE_PREPARED":if(n.type=="PREPARED_STATEMENT_ID"){r.promiseResolver(n.data);return}break}r.promiseRejecter(new Error("unexpected response type: ".concat(n.type.toString())))}onError(t){console.error(t),console.error("error in duckdb worker: ".concat(t.message)),this._pendingRequests.clear()}onClose(){if(this._workerShutdownResolver(null),this._pendingRequests.size!=0){console.warn("worker terminated with ".concat(this._pendingRequests.size," pending requests"));return}this._pendingRequests.clear()}async reset(){let t=new Z("RESET",null);return await this.postTask(t)}async ping(){let t=new Z("PING",null);await this.postTask(t)}async dropFile(t){let e=new Z("DROP_FILE",t);return await this.postTask(e)}async dropFiles(){let t=new Z("DROP_FILES",null);return await this.postTask(t)}async flushFiles(){let t=new Z("FLUSH_FILES",null);return await this.postTask(t)}async instantiate(t,e=null,n=r=>{}){this._onInstantiationProgress.push(n);let r=new Z("INSTANTIATE",[t,e]);return await this.postTask(r)}async getVersion(){let t=new Z("GET_VERSION",null);return await this.postTask(t)}async getFeatureFlags(){let t=new Z("GET_FEATURE_FLAGS",null);return await this.postTask(t)}async open(t){let e=new Z("OPEN",t);await this.postTask(e)}async tokenize(t){let e=new Z("TOKENIZE",t);return await this.postTask(e)}async connectInternal(){let t=new Z("CONNECT",null);return await this.postTask(t)}async connect(){let t=await this.connectInternal();return new HE(this,t)}async disconnect(t){let e=new Z("DISCONNECT",t);await this.postTask(e)}async runQuery(t,e){let n=new Z("RUN_QUERY",[t,e]);return await this.postTask(n)}async startPendingQuery(t,e){let n=new Z("START_PENDING_QUERY",[t,e]);return await this.postTask(n)}async pollPendingQuery(t){let e=new Z("POLL_PENDING_QUERY",t);return await this.postTask(e)}async cancelPendingQuery(t){let e=new Z("CANCEL_PENDING_QUERY",t);return await this.postTask(e)}async fetchQueryResults(t){let e=new Z("FETCH_QUERY_RESULTS",t);return await this.postTask(e)}async getTableNames(t,e){let n=new Z("GET_TABLE_NAMES",[t,e]);return await this.postTask(n)}async createPrepared(t,e){let n=new Z("CREATE_PREPARED",[t,e]);return await this.postTask(n)}async closePrepared(t,e){let n=new Z("CLOSE_PREPARED",[t,e]);await this.postTask(n)}async runPrepared(t,e,n){let r=new Z("RUN_PREPARED",[t,e,n]);return await this.postTask(r)}async sendPrepared(t,e,n){let r=new Z("SEND_PREPARED",[t,e,n]);return await this.postTask(r)}async globFiles(t){let e=new Z("GLOB_FILE_INFOS",t);return await this.postTask(e)}async registerFileText(t,e){let n=XE.encode(e);await this.registerFileBuffer(t,n)}async registerFileURL(t,e,n,r){e===void 0&&(e=t);let i=new Z("REGISTER_FILE_URL",[t,e,n,r]);await this.postTask(i)}async registerEmptyFileBuffer(t){let e=new Z("REGISTER_FILE_BUFFER",[t,new Uint8Array]);await this.postTask(e)}async registerFileBuffer(t,e){let n=new Z("REGISTER_FILE_BUFFER",[t,e]);await this.postTask(n,[e.buffer])}async registerFileHandle(t,e,n,r){let i=new Z("REGISTER_FILE_HANDLE",[t,e,n,r]);await this.postTask(i,[])}async collectFileStatistics(t,e){let n=new Z("COLLECT_FILE_STATISTICS",[t,e]);await this.postTask(n,[])}async exportFileStatistics(t){let e=new Z("EXPORT_FILE_STATISTICS",t);return await this.postTask(e,[])}async copyFileToBuffer(t){let e=new Z("COPY_FILE_TO_BUFFER",t);return await this.postTask(e)}async copyFileToPath(t,e){let n=new Z("COPY_FILE_TO_PATH",[t,e]);await this.postTask(n)}async insertArrowFromIPCStream(t,e,n){if(e.length==0)return;let r=new Z("INSERT_ARROW_FROM_IPC_STREAM",[t,e,n]);await this.postTask(r,[e.buffer])}async insertCSVFromPath(t,e,n){if(n.columns!==void 0){let i=[];for(let s in n.columns){let o=n.columns[s];i.push(Qd(s,o))}n.columnsFlat=i,delete n.columns}let r=new Z("IMPORT_CSV_FROM_PATH",[t,e,n]);await this.postTask(r)}async insertJSONFromPath(t,e,n){if(n.columns!==void 0){let i=[];for(let s in n.columns){let o=n.columns[s];i.push(Qd(s,o))}n.columnsFlat=i,delete n.columns}let r=new Z("IMPORT_JSON_FROM_PATH",[t,e,n]);await this.postTask(r)}},ek=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,3,1,0,1,10,14,1,12,0,65,0,65,0,65,0,252,10,0,0,11])),tk=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,8,1,6,0,6,64,25,11,11])),nk=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,10,1,8,0,65,0,253,15,253,98,11])),rk=()=>(async t=>{try{return typeof MessageChannel<"u"&&new MessageChannel().port1.postMessage(new SharedArrayBuffer(1)),WebAssembly.validate(t)}catch{return!1}})(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,4,1,3,1,1,10,11,1,9,0,65,0,254,16,2,0,26,11])),Oh={name:"@devrev/duckdb-wasm",version:"1.14.3",description:"DevRev fork of DuckDB powered by WebAssembly",license:"MIT",repository:{type:"git",url:"git+https://github.com/devrev/duckdb-wasm.git"},publishConfig:{registry:"https://registry.npmjs.org"},author:"devrev",keywords:["sql","duckdb","relational","database","data","query","wasm","analytics","olap","arrow","parquet","json","csv"],dependencies:{"apache-arrow":"^13.0.0"},devDependencies:{"@types/emscripten":"^1.39.7","@types/jasmine":"^4.3.1","@typescript-eslint/eslint-plugin":"^6.5.0","@typescript-eslint/parser":"^6.4.1",esbuild:"^0.18.13",eslint:"^8.47.0","eslint-plugin-jasmine":"^4.1.3","eslint-plugin-react":"^7.33.2","fast-glob":"^3.3.1",jasmine:"^5.1.0","jasmine-core":"^5.0.0","jasmine-spec-reporter":"^7.0.0","js-sha256":"^0.9.0",karma:"^6.4.2","karma-chrome-launcher":"^3.2.0","karma-coverage":"^2.2.1","karma-firefox-launcher":"^2.1.2","karma-jasmine":"^5.1.0","karma-jasmine-html-reporter":"^2.1.0","karma-sourcemap-loader":"^0.4.0","karma-spec-reporter":"^0.0.36","make-dir":"^4.0.0",nyc:"^15.1.0",prettier:"^3.0.2",puppeteer:"^21.1.1",rimraf:"^5.0.1",s3rver:"^3.7.1",typedoc:"^0.25.0",typescript:"^5.1.6","wasm-feature-detect":"^1.5.1","web-worker":"^1.2.0"},scripts:{"build:debug":"node bundle.mjs debug && tsc --emitDeclarationOnly","build:release":"node bundle.mjs release && tsc --emitDeclarationOnly",docs:"typedoc",report:"node ./coverage.mjs","test:node":"node --enable-source-maps ../../node_modules/jasmine/bin/jasmine ./dist/tests-node.cjs","test:node:debug":"node --inspect-brk --enable-source-maps ../../node_modules/jasmine/bin/jasmine ./dist/tests-node.cjs","test:node:coverage":"nyc -r json --report-dir ./coverage/node node ../../node_modules/jasmine/bin/jasmine ./dist/tests-node.cjs","test:firefox":"karma start ./karma/tests-firefox.cjs","test:chrome":"karma start ./karma/tests-chrome.cjs","test:chrome:eh":"karma start ./karma/tests-chrome-eh.cjs","test:chrome:coverage":"karma start ./karma/tests-chrome-coverage.cjs","test:browser":"karma start ./karma/tests-all.cjs","test:browser:debug":"karma start ./karma/tests-debug.cjs",test:"npm run test:chrome && npm run test:node","test:coverage":"npm run test:chrome:coverage && npm run test:node:coverage && npm run report",lint:"eslint src test"},files:["dist","!dist/types/test"],main:"dist/duckdb-browser.cjs",module:"dist/duckdb-browser.mjs",types:"dist/duckdb-browser.d.ts",jsdelivr:"dist/duckdb-browser.cjs",unpkg:"dist/duckdb-browser.mjs",sideEffects:!1,browser:{fs:!1,path:!1,perf_hooks:!1,os:!1,worker_threads:!1},exports:{"./dist/duckdb-mvp.wasm":"./dist/duckdb-mvp.wasm","./dist/duckdb-eh.wasm":"./dist/duckdb-eh.wasm","./dist/duckdb-coi.wasm":"./dist/duckdb-coi.wasm","./dist/duckdb-browser":"./dist/duckdb-browser.mjs","./dist/duckdb-browser.cjs":"./dist/duckdb-browser.cjs","./dist/duckdb-browser.mjs":"./dist/duckdb-browser.mjs","./dist/duckdb-browser-blocking":"./dist/duckdb-browser-blocking.mjs","./dist/duckdb-browser-blocking.mjs":"./dist/duckdb-browser-blocking.mjs","./dist/duckdb-browser-blocking.cjs":"./dist/duckdb-browser-blocking.cjs","./dist/duckdb-browser-coi.pthread.worker.js":"./dist/duckdb-browser-coi.pthread.worker.js","./dist/duckdb-browser-coi.worker.js":"./dist/duckdb-browser-coi.worker.js","./dist/duckdb-browser-eh.worker.js":"./dist/duckdb-browser-eh.worker.js","./dist/duckdb-browser-mvp.worker.js":"./dist/duckdb-browser-mvp.worker.js","./dist/duckdb-node":"./dist/duckdb-node.cjs","./dist/duckdb-node.cjs":"./dist/duckdb-node.cjs","./dist/duckdb-node-blocking":"./dist/duckdb-node-blocking.cjs","./dist/duckdb-node-blocking.cjs":"./dist/duckdb-node-blocking.cjs","./dist/duckdb-node-eh.worker.cjs":"./dist/duckdb-node-eh.worker.cjs","./dist/duckdb-node-mvp.worker.cjs":"./dist/duckdb-node-mvp.worker.cjs","./blocking":{browser:{types:"./dist/duckdb-browser-blocking.d.ts",import:"./dist/duckdb-browser-blocking.mjs",require:"./dist/duckdb-browser-blocking.cjs"},node:{types:"./dist/duckdb-node-blocking.d.ts",require:"./dist/duckdb-node-blocking.cjs",import:"./dist/duckdb-node-blocking.cjs"},types:"./dist/duckdb-browser-blocking.d.ts",import:"./dist/duckdb-browser-blocking.mjs",require:"./dist/duckdb-browser-blocking.cjs"},".":{browser:{types:"./dist/duckdb-browser.d.ts",import:"./dist/duckdb-browser.mjs",require:"./dist/duckdb-browser.cjs"},node:{types:"./dist/duckdb-node.d.ts",import:"./dist/duckdb-node.cjs",require:"./dist/duckdb-node.cjs"},types:"./dist/duckdb-browser.d.ts",import:"./dist/duckdb-browser.mjs",require:"./dist/duckdb-browser.cjs"}}},ik=Oh.name,sk=Oh.version,Fh=Oh.version.split(".");Fh[0];Fh[1];Fh[2];var ok=()=>typeof navigator>"u";function ak(){let t="https://cdn.jsdelivr.net/npm/".concat(ik,"@").concat(sk,"/dist/");return{mvp:{mainModule:"".concat(t,"duckdb-mvp.wasm"),mainWorker:"".concat(t,"duckdb-browser-mvp.worker.js")},eh:{mainModule:"".concat(t,"duckdb-eh.wasm"),mainWorker:"".concat(t,"duckdb-browser-eh.worker.js")}}}var cc=null,dc=null,fc=null,hc=null,pc=null;async function lk(){return cc==null&&(cc=typeof BigInt64Array<"u"),dc==null&&(dc=await tk()),fc==null&&(fc=await rk()),hc==null&&(hc=await nk()),pc==null&&(pc=await ek()),{bigInt64Array:cc,crossOriginIsolated:ok()||globalThis.crossOriginIsolated||!1,wasmExceptions:dc,wasmSIMD:hc,wasmThreads:fc,wasmBulkMemory:pc}}async function uk(t){let e=await lk();if(e.wasmExceptions){if(e.wasmSIMD&&e.wasmThreads&&e.crossOriginIsolated&&t.coi)return{mainModule:t.coi.mainModule,mainWorker:t.coi.mainWorker,pthreadWorker:t.coi.pthreadWorker};if(t.eh)return{mainModule:t.eh.mainModule,mainWorker:t.eh.mainWorker,pthreadWorker:null}}return{mainModule:t.mvp.mainModule,mainWorker:t.mvp.mainWorker,pthreadWorker:null}}UE(jE());function ck(){let t=new TextDecoder;return e=>(typeof SharedArrayBuffer<"u"&&e.buffer instanceof SharedArrayBuffer&&(e=new Uint8Array(e)),t.decode(e))}ck();var dk=(t=>(t[t.BUFFER=0]="BUFFER",t[t.NODE_FS=1]="NODE_FS",t[t.BROWSER_FILEREADER=2]="BROWSER_FILEREADER",t[t.BROWSER_FSACCESS=3]="BROWSER_FSACCESS",t[t.HTTP=4]="HTTP",t[t.S3=5]="S3",t))(dk||{});const fk=ak();class hk{constructor(){q(this,"db",null)}async initDB(){const e=await uk(fk),n=URL.createObjectURL(new Blob([`importScripts("${e.mainWorker}");`],{type:"text/javascript"})),r=new Worker(n),i={log:o=>console.log(o)},s=new ZE(i,r);return await s.instantiate(e.mainModule,e.pthreadWorker),URL.revokeObjectURL(n),s}async getDB(){return this.db||(console.info("Creating new DB"),this.db=await this.initDB()),this.db}async terminateDB(){var e;console.info("terminateDB"),await((e=this.db)==null?void 0:e.terminate()),this.db=null}}function Ey(t){const e=Et.useRef(),n=Et.useRef(!1),r=Et.useRef(!1),[,i]=Et.useState(0);n.current&&(r.current=!0),Et.useEffect(()=>(n.current||(e.current=t(),n.current=!0),i(s=>s+1),()=>{r.current&&e.current&&e.current()}),[])}function pk(){const t=Et.useRef(!1),e=Et.useRef(),n=Et.useRef(),r=Et.useRef(),i=Et.useRef(),s=new URLSearchParams(window.location.search),o=s.get("uuid")??"",a=s.get("origin");return e.current||(e.current=new Q1({app_name:V1(o),origin:a,targetApp:K1(o),targetWindow:window.parent})),n.current||(n.current=new hk),r.current||(r.current=new FE({instanceManager:n.current,fetchTableFileBuffers:async()=>[],logger:Iy,onEvent:l=>{var u;(u=e.current)==null||u.sendRequestWithoutResponse({type:Os.RUNNER_ON_EVENT,payload:l})}})),i.current||(i.current=new $1({instanceManager:n.current,fileManager:r.current,logger:Iy,onEvent:l=>{var u;(u=e.current)==null||u.sendRequestWithoutResponse({type:Os.RUNNER_ON_EVENT,payload:l})}})),Ey(()=>{var l;t.current||((l=e.current)==null||l.onMessage(u=>{var c;switch(u.message.type){case Os.EXEC_QUERY:(c=i.current)==null||c.queryWithTables({...u.message.payload,options:{...u.message.payload.options,preQuery:async h=>{var _,v;const d=await((_=e.current)==null?void 0:_.sendRequest({type:Os.RUNNER_PRE_QUERY,payload:{runnerId:o,tableWiseFiles:h}})),m=(d==null?void 0:d.message)??[];for(const S of m)await((v=i.current)==null?void 0:v.query(S))}}}).then(h=>{var d;(d=e.current)==null||d.sendResponse(u.uuid,{data:xI(h),isError:!1,error:null})}).catch(h=>{var d;(d=e.current)==null||d.sendResponse(u.uuid,{data:null,isError:!0,error:h})});break}}),t.current=!0)}),Ey(()=>{(async()=>{var l,u;await((l=i.current)==null?void 0:l.query("SELECT 1")),(u=e.current)==null||u.sendRequestWithoutResponse({type:Os.RUNNER_ON_READY})})()}),yc.jsx("div",{children:"Runners "})}const yk=Ug(document.getElementById("root"));yk.render(yc.jsx(Et.StrictMode,{children:yc.jsx(pk,{})}));