@sprig-technologies/sprig-browser 2.30.2 → 2.30.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core-IYeRexvz.js +12 -0
- package/dist/core-pJaEAG0Z.cjs +12 -0
- package/dist/core.cjs +1 -1
- package/dist/core.d.ts +6 -2
- package/dist/core.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +6 -2
- package/dist/index.js +1 -1
- package/dist/metricsReporter-ChJRb1ed.js +2 -0
- package/dist/metricsReporter-DwcQeyB8.cjs +2 -0
- package/dist/replay.cjs +4 -4
- package/dist/replay.js +5 -5
- package/dist/{view-4ILgM5Tw.cjs → view-C-j1BBYA.cjs} +2 -2
- package/dist/{view-C5kHSC2Q.js → view-CVyjVx3W.js} +2 -2
- package/package.json +1 -1
- package/dist/core-BTd5RhnR.cjs +0 -12
- package/dist/core-BzwoEbTD.js +0 -12
- package/dist/metricsReporter-B6Yx0G8b.js +0 -2
- package/dist/metricsReporter-BIT_adF4.cjs +0 -2
package/dist/replay.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
"use strict";var is=Object.defineProperty;var as=(t,e,n)=>e in t?is(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var
|
|
1
|
+
"use strict";var is=Object.defineProperty;var as=(t,e,n)=>e in t?is(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var Ie=(t,e,n)=>(as(t,typeof e!="symbol"?e+"":e,n),n);const b=require("./metricsReporter-DwcQeyB8.cjs");var ht=(t=>(t[t.DomContentLoaded=0]="DomContentLoaded",t[t.Load=1]="Load",t[t.FullSnapshot=2]="FullSnapshot",t[t.IncrementalSnapshot=3]="IncrementalSnapshot",t[t.Meta=4]="Meta",t[t.Custom=5]="Custom",t[t.Plugin=6]="Plugin",t))(ht||{});class os{constructor(e){Ie(this,"awaitingResolvers",[]);Ie(this,"activeCount",0);this.capacity=e}async acquire(){if(this.activeCount<this.capacity){this.activeCount++;return}return new Promise(e=>{this.awaitingResolvers.push(e)})}release(){const e=this.awaitingResolvers.shift();e&&this.activeCount<=this.capacity?e():this.activeCount--}async execute(e){try{return await this.acquire(),await e()}finally{this.release()}}setLimit(e){this.capacity=e}}const er=new os(2),ls=t=>er.setLimit(t),cs=async t=>er.execute(async()=>{var r;b.info(`Beginning upload of chunk ${t.chunkIndex} for survey: ${t.surveyId}`);const e=await b.sprigFetch(t.uploadUrl,{body:t.data,method:"PUT"});b.info(`Completed upload of chunk ${t.chunkIndex} for survey: ${t.surveyId}`);const n=(r=e.headers)==null?void 0:r.get("ETag");if(!n)throw new Error(`Upload response did not include etag for upload ${t.uploadId}, part ${t.chunkIndex}`);return n}),tr=async({apiUrl:t,surveyId:e,uploadId:n,etags:r,headers:s,responseGroupUuid:i,replayDuration:a,eventDigest:o},l=!1)=>{var c;if(!l&&!n&&!r){b.info(`Cannot mark upload complete: isMobile: ${l} / uploadId: ${n} / etags: ${r}`);return}b.info(`Marking upload complete for survey: ${e}`);const d=await b.sprigFetch(`${t}/sdk/1/completeSessionReplay`,{method:"POST",body:JSON.stringify({etags:r,uploadId:n,responseGroupUuid:i,surveyId:e,replayDuration:a,eventDigest:o,userAgent:(c=window==null?void 0:window.navigator)==null?void 0:c.userAgent}),headers:s,shouldRetryRequest:!0});return b.info(`Done marking upload complete for survey: ${e}`),d},O=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,j=Object.keys,F=Array.isArray;function V(t,e){return typeof e!="object"||j(e).forEach(function(n){t[n]=e[n]}),t}typeof Promise>"u"||O.Promise||(O.Promise=Promise);const Ye=Object.getPrototypeOf,us={}.hasOwnProperty;function W(t,e){return us.call(t,e)}function Be(t,e){typeof e=="function"&&(e=e(Ye(t))),(typeof Reflect>"u"?j:Reflect.ownKeys)(e).forEach(n=>{re(t,n,e[n])})}const nr=Object.defineProperty;function re(t,e,n,r){nr(t,e,V(n&&W(n,"get")&&typeof n.get=="function"?{get:n.get,set:n.set,configurable:!0}:{value:n,configurable:!0,writable:!0},r))}function Re(t){return{from:function(e){return t.prototype=Object.create(e.prototype),re(t.prototype,"constructor",t),{extend:Be.bind(null,t.prototype)}}}}const ds=Object.getOwnPropertyDescriptor;function wn(t,e){let n;return ds(t,e)||(n=Ye(t))&&wn(n,e)}const hs=[].slice;function kt(t,e,n){return hs.call(t,e,n)}function rr(t,e){return e(t)}function Le(t){if(!t)throw new Error("Assertion Failed")}function sr(t){O.setImmediate?setImmediate(t):setTimeout(t,0)}function ir(t,e){return t.reduce((n,r,s)=>{var i=e(r,s);return i&&(n[i[0]]=i[1]),n},{})}function se(t,e){if(typeof e=="string"&&W(t,e))return t[e];if(!e)return t;if(typeof e!="string"){for(var n=[],r=0,s=e.length;r<s;++r){var i=se(t,e[r]);n.push(i)}return n}var a=e.indexOf(".");if(a!==-1){var o=t[e.substr(0,a)];return o==null?void 0:se(o,e.substr(a+1))}}function Y(t,e,n){if(t&&e!==void 0&&(!("isFrozen"in Object)||!Object.isFrozen(t)))if(typeof e!="string"&&"length"in e){Le(typeof n!="string"&&"length"in n);for(var r=0,s=e.length;r<s;++r)Y(t,e[r],n[r])}else{var i=e.indexOf(".");if(i!==-1){var a=e.substr(0,i),o=e.substr(i+1);if(o==="")n===void 0?F(t)&&!isNaN(parseInt(a))?t.splice(a,1):delete t[a]:t[a]=n;else{var l=t[a];l&&W(t,a)||(l=t[a]={}),Y(l,o,n)}}else n===void 0?F(t)&&!isNaN(parseInt(e))?t.splice(e,1):delete t[e]:t[e]=n}}function ar(t){var e={};for(var n in t)W(t,n)&&(e[n]=t[n]);return e}const fs=[].concat;function or(t){return fs.apply([],t)}const lr="BigUint64Array,BigInt64Array,Array,Boolean,String,Date,RegExp,Blob,File,FileList,FileSystemFileHandle,FileSystemDirectoryHandle,ArrayBuffer,DataView,Uint8ClampedArray,ImageBitmap,ImageData,Map,Set,CryptoKey".split(",").concat(or([8,16,32,64].map(t=>["Int","Uint","Float"].map(e=>e+t+"Array")))).filter(t=>O[t]),ps=lr.map(t=>O[t]);ir(lr,t=>[t,!0]);let le=null;function nt(t){le=typeof WeakMap<"u"&&new WeakMap;const e=qt(t);return le=null,e}function qt(t){if(!t||typeof t!="object")return t;let e=le&&le.get(t);if(e)return e;if(F(t)){e=[],le&&le.set(t,e);for(var n=0,r=t.length;n<r;++n)e.push(qt(t[n]))}else if(ps.indexOf(t.constructor)>=0)e=t;else{const i=Ye(t);for(var s in e=i===Object.prototype?{}:Object.create(i),le&&le.set(t,e),t)W(t,s)&&(e[s]=qt(t[s]))}return e}const{toString:ms}={};function Ht(t){return ms.call(t).slice(8,-1)}const Vt=typeof Symbol<"u"?Symbol.iterator:"@@iterator",ys=typeof Vt=="symbol"?function(t){var e;return t!=null&&(e=t[Vt])&&e.apply(t)}:function(){return null},De={};function te(t){var e,n,r,s;if(arguments.length===1){if(F(t))return t.slice();if(this===De&&typeof t=="string")return[t];if(s=ys(t)){for(n=[];!(r=s.next()).done;)n.push(r.value);return n}if(t==null)return[t];if(typeof(e=t.length)=="number"){for(n=new Array(e);e--;)n[e]=t[e];return n}return[t]}for(e=arguments.length,n=new Array(e);e--;)n[e]=arguments[e];return n}const _n=typeof Symbol<"u"?t=>t[Symbol.toStringTag]==="AsyncFunction":()=>!1;var X=typeof location<"u"&&/^(http|https):\/\/(localhost|127\.0\.0\.1)/.test(location.href);function cr(t,e){X=t,ur=e}var ur=()=>!0;const gs=!new Error("").stack;function xe(){if(gs)try{throw xe.arguments,new Error}catch(t){return t}return new Error}function zt(t,e){var n=t.stack;return n?(e=e||0,n.indexOf(t.name)===0&&(e+=(t.name+t.message).split(`
|
|
2
2
|
`).length),n.split(`
|
|
3
3
|
`).slice(e).filter(ur).map(r=>`
|
|
4
4
|
`+r).join("")):""}var dr=["Unknown","Constraint","Data","TransactionInactive","ReadOnly","Version","NotFound","InvalidState","InvalidAccess","Abort","Timeout","QuotaExceeded","Syntax","DataClone"],kn=["Modify","Bulk","OpenFailed","VersionChange","Schema","Upgrade","InvalidTable","MissingAPI","NoSuchDatabase","InvalidArgument","SubTransaction","Unsupported","Internal","DatabaseClosed","PrematureCommit","ForeignAwait"].concat(dr),vs={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 Oe(t,e){this._e=xe(),this.name=t,this.message=e}function hr(t,e){return t+". Errors: "+Object.keys(e).map(n=>e[n].toString()).filter((n,r,s)=>s.indexOf(n)===r).join(`
|
|
5
|
-
`)}function
|
|
6
|
-
`+i:""}`,this.inner=i||null):typeof s=="object"&&(this.message=`${s.name} ${s.message}`,this.inner=s):(this.message=vs[e]||n,this.inner=null)}return
|
|
7
|
-
From previous: `);return this._state!==null&&(this._stack=t),t}finally{Yt=!1}}},timeout:function(t,e){return t<1/0?new S((n,r)=>{var s=setTimeout(()=>r(new I.Timeout(e)),t);this.then(n,r).finally(clearTimeout.bind(null,s))}):this}}),typeof Symbol<"u"&&Symbol.toStringTag&&re(S.prototype,Symbol.toStringTag,"Dexie.Promise"),Re.env=wr(),Ke(S,{all:function(){var t=te.apply(null,arguments).map(ot);return new S(function(e,n){t.length===0&&e([]);var r=t.length;t.forEach((s,i)=>S.resolve(s).then(a=>{t[i]=a,--r||e(t)},n))})},resolve:t=>{if(t instanceof S)return t;if(t&&typeof t.then=="function")return new S((n,r)=>{t.then(n,r)});var e=new S(Je,!0,t);return br(e,Qt),e},reject:at,race:function(){var t=te.apply(null,arguments).map(ot);return new S((e,n)=>{t.map(r=>S.resolve(r).then(e,n))})},PSD:{get:()=>P,set:t=>P=t},totalEchoes:{get:()=>St},newPSD:he,usePSD:Ne,scheduler:{get:()=>He,set:t=>{He=t}},rejectionMapper:{get:()=>Xt,set:t=>{Xt=t}},follow:(t,e)=>new S((n,r)=>he((s,i)=>{var a=P;a.unhandleds=[],a.onunhandled=i,a.finalize=_e(function(){(function(o){function l(){o(),mt.splice(mt.indexOf(l),1)}mt.push(l),++be,He(()=>{--be==0&&Pn()},[])})(()=>{this.unhandleds.length===0?s():i(this.unhandleds[0])})},a.finalize),t()},e,n,r))}),ft&&(ft.allSettled&&re(S,"allSettled",function(){const t=te.apply(null,arguments).map(ot);return new S(e=>{t.length===0&&e([]);let n=t.length;const r=new Array(n);t.forEach((s,i)=>S.resolve(s).then(a=>r[i]={status:"fulfilled",value:a},a=>r[i]={status:"rejected",reason:a}).then(()=>--n||e(r)))})}),ft.any&&typeof AggregateError<"u"&&re(S,"any",function(){const t=te.apply(null,arguments).map(ot);return new S((e,n)=>{t.length===0&&n(new AggregateError([]));let r=t.length;const s=new Array(r);t.forEach((i,a)=>S.resolve(i).then(o=>e(o),o=>{s[a]=o,--r||n(new AggregateError(s))}))})}));const U={awaits:0,echoes:0,id:0};var Ps=0,yt=[],Kt=0,St=0,Is=0;function he(t,e,n,r){var s=P,i=Object.create(s);i.parent=s,i.ref=0,i.global=!1,i.id=++Is;var a=Re.env;i.env=Sn?{Promise:S,PromiseProp:{value:S,configurable:!0,writable:!0},all:S.all,race:S.race,allSettled:S.allSettled,any:S.any,resolve:S.resolve,reject:S.reject,nthen:Nn(a.nthen,i),gthen:Nn(a.gthen,i)}:{},e&&V(i,e),++s.ref,i.finalize=function(){--this.parent.ref||this.parent.finalize()};var o=Ne(i,t,n,r);return i.ref===0&&i.finalize(),o}function Be(){return U.id||(U.id=++Ps),++U.awaits,U.echoes+=fr,U.id}function ie(){return!!U.awaits&&(--U.awaits==0&&(U.id=0),U.echoes=U.awaits*fr,!0)}function ot(t){return U.echoes&&t&&t.constructor===ft?(Be(),t.then(e=>(ie(),e),e=>(ie(),M(e)))):t}function As(t){++St,U.echoes&&--U.echoes!=0||(U.echoes=U.id=0),yt.push(P),fe(t,!0)}function Ts(){var t=yt[yt.length-1];yt.pop(),fe(t,!1)}function fe(t,e){var n=P;if((e?!U.echoes||Kt++&&t===P:!Kt||--Kt&&t===P)||_r(e?As.bind(null,t):Ts),t!==P&&(P=t,n===Re&&(Re.env=wr()),Sn)){var r=Re.env.Promise,s=t.env;Et.then=s.nthen,r.prototype.then=s.gthen,(n.global||t.global)&&(Object.defineProperty(R,"Promise",s.PromiseProp),r.all=s.all,r.race=s.race,r.resolve=s.resolve,r.reject=s.reject,s.allSettled&&(r.allSettled=s.allSettled),s.any&&(r.any=s.any))}}function wr(){var t=R.Promise;return Sn?{Promise:t,PromiseProp:Object.getOwnPropertyDescriptor(R,"Promise"),all:t.all,race:t.race,allSettled:t.allSettled,any:t.any,resolve:t.resolve,reject:t.reject,nthen:Et.then,gthen:t.prototype.then}:{}}function Ne(t,e,n,r,s){var i=P;try{return fe(t,!0),e(n,r,s)}finally{fe(i,!1)}}function _r(t){pr.call(Gt,t)}function Ct(t,e,n,r){return typeof t!="function"?t:function(){var s=P;n&&Be(),fe(e,!0);try{return t.apply(this,arguments)}finally{fe(s,!1),r&&_r(ie)}}}function Nn(t,e){return function(n,r){return t.call(this,Ct(n,e),Ct(r,e))}}(""+pr).indexOf("[native code]")===-1&&(Be=ie=O);const jn="unhandledrejection";function Mn(t,e){var n;try{n=e.onuncatched(t)}catch{}if(n!==!1)try{var r,s={promise:e,reason:t};if(R.document&&document.createEvent?((r=document.createEvent("Event")).initEvent(jn,!0,!0),V(r,s)):R.CustomEvent&&V(r=new CustomEvent(jn,{detail:s}),s),r&&R.dispatchEvent&&(dispatchEvent(r),!R.PromiseRejectionEvent&&R.onunhandledrejection))try{R.onunhandledrejection(r)}catch{}X&&r&&!r.defaultPrevented&&console.warn(`Unhandled rejection: ${t.stack||t}`)}catch{}}var M=S.reject;function tn(t,e,n,r){if(t.idbdb&&(t._state.openComplete||P.letThrough||t._vip)){var s=t._createTransaction(e,n,t._dbSchema);try{s.create(),t._state.PR1398_maxLoop=3}catch(i){return i.name===En.InvalidState&&t.isOpen()&&--t._state.PR1398_maxLoop>0?(console.warn("Dexie: Need to reopen db"),t._close(),t.open().then(()=>tn(t,e,n,r))):M(i)}return s._promise(e,(i,a)=>he(()=>(P.trans=s,r(i,a,s)))).then(i=>s._completion.then(()=>i))}if(t._state.openComplete)return M(new I.DatabaseClosed(t._state.dbOpenError));if(!t._state.isBeingOpened){if(!t._options.autoOpen)return M(new I.DatabaseClosed);t.open().catch(O)}return t._state.dbReadyPromise.then(()=>tn(t,e,n,r))}const $n="3.2.7",ge="",nn=-1/0,Z="Invalid key provided. Keys must be of type string, number, Date or Array<string | number | Date>.",kr="String expected.",Ve=[],Dt=typeof navigator<"u"&&/(MSIE|Trident|Edge)/.test(navigator.userAgent),Ds=Dt,Os=Dt,Er=t=>!/(dexie\.js|dexie\.min\.js)/.test(t),Ot="__dbnames",Bt="readonly",Nt="readwrite";function ke(t,e){return t?e?function(){return t.apply(this,arguments)&&e.apply(this,arguments)}:t:e}const xr={type:3,lower:-1/0,lowerOpen:!1,upper:[[]],upperOpen:!1};function lt(t){return typeof t!="string"||/\./.test(t)?e=>e:e=>(e[t]===void 0&&t in e&&delete(e=nt(e))[t],e)}class Rs{_trans(e,n,r){const s=this._tx||P.trans,i=this.name;function a(l,d,c){if(!c.schema[i])throw new I.NotFound("Table "+i+" not part of transaction");return n(c.idbtrans,c)}const o=rt();try{return s&&s.db===this.db?s===P.trans?s._promise(e,a,r):he(()=>s._promise(e,a,r),{trans:s,transless:P.transless||P}):tn(this.db,e,[this.name],a)}finally{o&&st()}}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(s=>this.hook.reading.fire(s))).then(n)}where(e){if(typeof e=="string")return new this.db.WhereClause(this,e);if(F(e))return new this.db.WhereClause(this,`[${e.join("+")}]`);const n=j(e);if(n.length===1)return this.where(n[0]).equals(e[n[0]]);const r=this.schema.indexes.concat(this.schema.primKey).filter(d=>{if(d.compound&&n.every(c=>d.keyPath.indexOf(c)>=0)){for(let c=0;c<n.length;++c)if(n.indexOf(d.keyPath[c])===-1)return!1;return!0}return!1}).sort((d,c)=>d.keyPath.length-c.keyPath.length)[0];if(r&&this.db._maxKey!==ge){const d=r.keyPath.slice(0,n.length);return this.where(d).equals(d.map(c=>e[c]))}!r&&X&&console.warn(`The query ${JSON.stringify(e)} on ${this.name} would benefit of a compound index [${n.join("+")}]`);const{idxByName:s}=this.schema,i=this.db._deps.indexedDB;function a(d,c){try{return i.cmp(d,c)===0}catch{return!1}}const[o,l]=n.reduce(([d,c],h)=>{const u=s[h],f=e[h];return[d||u,d||!u?ke(c,u&&u.multi?g=>{const y=se(g,h);return F(y)&&y.some(v=>a(f,v))}:g=>a(f,se(g,h))):c]},[null,null]);return o?this.where(o.name).equals(e[o.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,F(e)?`[${e.join("+")}]`:e))}reverse(){return this.toCollection().reverse()}mapToClass(e){this.schema.mappedClass=e;const n=r=>{if(!r)return r;const s=Object.create(e.prototype);for(var i in r)if(W(r,i))try{s[i]=r[i]}catch{}return s};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){V(this,e)})}add(e,n){const{auto:r,keyPath:s}=this.schema.primKey;let i=e;return s&&r&&(i=lt(s)(e)),this._trans("readwrite",a=>this.core.mutate({trans:a,type:"add",keys:n!=null?[n]:null,values:[i]})).then(a=>a.numFailures?S.reject(a.failures[0]):a.lastResult).then(a=>{if(s)try{Y(e,s,a)}catch{}return a})}update(e,n){if(typeof e!="object"||F(e))return this.where(":id").equals(e).modify(n);{const r=se(e,this.schema.primKey.keyPath);if(r===void 0)return M(new I.InvalidArgument("Given object does not contain its primary key"));try{typeof n!="function"?j(n).forEach(s=>{Y(e,s,n[s])}):n(e,{value:e,primKey:r})}catch{}return this.where(":id").equals(r).modify(n)}}put(e,n){const{auto:r,keyPath:s}=this.schema.primKey;let i=e;return s&&r&&(i=lt(s)(e)),this._trans("readwrite",a=>this.core.mutate({trans:a,type:"put",values:[i],keys:n!=null?[n]:null})).then(a=>a.numFailures?S.reject(a.failures[0]):a.lastResult).then(a=>{if(s)try{Y(e,s,a)}catch{}return a})}delete(e){return this._trans("readwrite",n=>this.core.mutate({trans:n,type:"delete",keys:[e]})).then(n=>n.numFailures?S.reject(n.failures[0]):void 0)}clear(){return this._trans("readwrite",e=>this.core.mutate({trans:e,type:"deleteRange",range:xr})).then(e=>e.numFailures?S.reject(e.failures[0]):void 0)}bulkGet(e){return this._trans("readonly",n=>this.core.getMany({keys:e,trans:n}).then(r=>r.map(s=>this.hook.reading.fire(s))))}bulkAdd(e,n,r){const s=Array.isArray(n)?n:void 0,i=(r=r||(s?void 0:n))?r.allKeys:void 0;return this._trans("readwrite",a=>{const{auto:o,keyPath:l}=this.schema.primKey;if(l&&s)throw new I.InvalidArgument("bulkAdd(): keys argument invalid on tables with inbound keys");if(s&&s.length!==e.length)throw new I.InvalidArgument("Arguments objects and keys must have the same length");const d=e.length;let c=l&&o?e.map(lt(l)):e;return this.core.mutate({trans:a,type:"add",keys:s,values:c,wantResults:i}).then(({numFailures:h,results:u,lastResult:f,failures:g})=>{if(h===0)return i?u:f;throw new qe(`${this.name}.bulkAdd(): ${h} of ${d} operations failed`,g)})})}bulkPut(e,n,r){const s=Array.isArray(n)?n:void 0,i=(r=r||(s?void 0:n))?r.allKeys:void 0;return this._trans("readwrite",a=>{const{auto:o,keyPath:l}=this.schema.primKey;if(l&&s)throw new I.InvalidArgument("bulkPut(): keys argument invalid on tables with inbound keys");if(s&&s.length!==e.length)throw new I.InvalidArgument("Arguments objects and keys must have the same length");const d=e.length;let c=l&&o?e.map(lt(l)):e;return this.core.mutate({trans:a,type:"put",keys:s,values:c,wantResults:i}).then(({numFailures:h,results:u,lastResult:f,failures:g})=>{if(h===0)return i?u:f;throw new qe(`${this.name}.bulkPut(): ${h} of ${d} operations failed`,g)})})}bulkDelete(e){const n=e.length;return this._trans("readwrite",r=>this.core.mutate({trans:r,type:"delete",keys:e})).then(({numFailures:r,lastResult:s,failures:i})=>{if(r===0)return s;throw new qe(`${this.name}.bulkDelete(): ${r} of ${n} operations failed`,i)})}}function ze(t){var e={},n=function(a,o){if(o){for(var l=arguments.length,d=new Array(l-1);--l;)d[l-1]=arguments[l];return e[a].subscribe.apply(null,d),t}if(typeof a=="string")return e[a]};n.addEventType=i;for(var r=1,s=arguments.length;r<s;++r)i(arguments[r]);return n;function i(a,o,l){if(typeof a!="object"){var d;o||(o=xs),l||(l=O);var c={subscribers:[],fire:l,subscribe:function(h){c.subscribers.indexOf(h)===-1&&(c.subscribers.push(h),c.fire=o(c.fire,h))},unsubscribe:function(h){c.subscribers=c.subscribers.filter(function(u){return u!==h}),c.fire=c.subscribers.reduce(o,l)}};return e[a]=n[a]=c,c}j(d=a).forEach(function(h){var u=d[h];if(F(u))i(h,d[h][0],d[h][1]);else{if(u!=="asap")throw new I.InvalidArgument("Invalid event config");var f=i(h,Ye,function(){for(var g=arguments.length,y=new Array(g);g--;)y[g]=arguments[g];f.subscribers.forEach(function(v){sr(function(){v.apply(null,y)})})})}})}}function $e(t,e){return De(e).from({prototype:t}),e}function Ie(t,e){return!(t.filter||t.algorithm||t.or)&&(e?t.justLimit:!t.replayFilter)}function jt(t,e){t.filter=ke(t.filter,e)}function Mt(t,e,n){var r=t.replayFilter;t.replayFilter=r?()=>ke(r(),e()):e,t.justLimit=n&&!r}function gt(t,e){if(t.isPrimKey)return e.primaryKey;const n=e.getIndexByKeyPath(t.index);if(!n)throw new I.Schema("KeyPath "+t.index+" on object store "+e.name+" is not indexed");return n}function Un(t,e,n){const r=gt(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 ct(t,e,n,r){const s=t.replayFilter?ke(t.filter,t.replayFilter()):t.filter;if(t.or){const i={},a=(o,l,d)=>{if(!s||s(l,d,u=>l.stop(u),u=>l.fail(u))){var c=l.primaryKey,h=""+c;h==="[object ArrayBuffer]"&&(h=""+new Uint8Array(c)),W(i,h)||(i[h]=!0,e(o,l,d))}};return Promise.all([t.or._iterate(a,n),Fn(Un(t,r,n),t.algorithm,a,!t.keysOnly&&t.valueMapper)])}return Fn(Un(t,r,n),ke(t.algorithm,s),e,!t.keysOnly&&t.valueMapper)}function Fn(t,e,n,r){var s=K(r?(i,a,o)=>n(r(i),a,o):n);return t.then(i=>{if(i)return i.start(()=>{var a=()=>i.continue();e&&!e(i,o=>a=o,o=>{i.stop(o),a=O},o=>{i.fail(o),a=O})||s(i.value,i,o=>a=o),a()})})}function H(t,e){try{const n=Ln(t),r=Ln(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<e?-1:0;case"binary":return function(s,i){const a=s.length,o=i.length,l=a<o?a:o;for(let d=0;d<l;++d)if(s[d]!==i[d])return s[d]<i[d]?-1:1;return a===o?0:a<o?-1:1}(qn(t),qn(e));case"Array":return function(s,i){const a=s.length,o=i.length,l=a<o?a:o;for(let d=0;d<l;++d){const c=H(s[d],i[d]);if(c!==0)return c}return a===o?0:a<o?-1:1}(t,e)}}catch{}return NaN}function Ln(t){const e=typeof t;if(e!=="object")return e;if(ArrayBuffer.isView(t))return"binary";const n=Ht(t);return n==="ArrayBuffer"?"binary":n}function qn(t){return t instanceof Uint8Array?t:ArrayBuffer.isView(t)?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):new Uint8Array(t)}class Ks{_read(e,n){var r=this._ctx;return r.error?r.table._trans(null,M.bind(null,r.error)):r.table._trans("readonly",e).then(n)}_write(e){var n=this._ctx;return n.error?n.table._trans(null,M.bind(null,n.error)):n.table._trans("readwrite",e,"locked")}_addAlgorithm(e){var n=this._ctx;n.algorithm=ke(n.algorithm,e)}_iterate(e,n){return ct(this._ctx,e,n,this._ctx.table.core)}clone(e){var n=Object.create(this.constructor.prototype),r=Object.create(this._ctx);return e&&V(r,e),n._ctx=r,n}raw(){return this._ctx.valueMapper=null,this}each(e){var n=this._ctx;return this._read(r=>ct(n,e,r,n.table.core))}count(e){return this._read(n=>{const r=this._ctx,s=r.table.core;if(Ie(r,!0))return s.count({trans:n,query:{index:gt(r,s.schema),range:r.range}}).then(a=>Math.min(a,r.limit));var i=0;return ct(r,()=>(++i,!1),n,s).then(()=>i)}).then(e)}sortBy(e,n){const r=e.split(".").reverse(),s=r[0],i=r.length-1;function a(d,c){return c?a(d[r[c]],c-1):d[s]}var o=this._ctx.dir==="next"?1:-1;function l(d,c){var h=a(d,i),u=a(c,i);return h<u?-o:h>u?o:0}return this.toArray(function(d){return d.sort(l)}).then(n)}toArray(e){return this._read(n=>{var r=this._ctx;if(r.dir==="next"&&Ie(r,!0)&&r.limit>0){const{valueMapper:s}=r,i=gt(r,r.table.core.schema);return r.table.core.query({trans:n,limit:r.limit,values:!0,query:{index:i,range:r.range}}).then(({result:a})=>s?a.map(s):a)}{const s=[];return ct(r,i=>s.push(i),n,r.table.core).then(()=>s)}},e)}offset(e){var n=this._ctx;return e<=0||(n.offset+=e,Ie(n)?Mt(n,()=>{var r=e;return(s,i)=>r===0||(r===1?(--r,!1):(i(()=>{s.advance(r),r=0}),!1))}):Mt(n,()=>{var r=e;return()=>--r<0})),this}limit(e){return this._ctx.limit=Math.min(this._ctx.limit,e),Mt(this._ctx,()=>{var n=e;return function(r,s,i){return--n<=0&&s(i),n>=0}},!0),this}until(e,n){return jt(this._ctx,function(r,s,i){return!e(r.value)||(s(i),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 jt(this._ctx,function(s){return e(s.value)}),n=this._ctx,r=e,n.isMatch=ke(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,s){e(s.key,s)})}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,s){e(s.primaryKey,s)})}keys(e){var n=this._ctx;n.keysOnly=!n.isMatch;var r=[];return this.each(function(s,i){r.push(i.key)}).then(function(){return r}).then(e)}primaryKeys(e){var n=this._ctx;if(n.dir==="next"&&Ie(n,!0)&&n.limit>0)return this._read(s=>{var i=gt(n,n.table.core.schema);return n.table.core.query({trans:s,values:!1,limit:n.limit,query:{index:i,range:n.range}})}).then(({result:s})=>s).then(e);n.keysOnly=!n.isMatch;var r=[];return this.each(function(s,i){r.push(i.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 jt(this._ctx,function(s){var i=s.primaryKey.toString(),a=W(r,i);return r[i]=!0,!a}),this}modify(e){var n=this._ctx;return this._write(r=>{var s;if(typeof e=="function")s=e;else{var i=j(e),a=i.length;s=function(y){for(var v=!1,m=0;m<a;++m){var p=i[m],_=e[p];se(y,p)!==_&&(Y(y,p,_),v=!0)}return v}}const o=n.table.core,{outbound:l,extractKey:d}=o.schema.primaryKey,c=this.db._options.modifyChunkSize||200,h=[];let u=0;const f=[],g=(y,v)=>{const{failures:m,numFailures:p}=v;u+=y-p;for(let _ of j(m))h.push(m[_])};return this.clone().primaryKeys().then(y=>{const v=m=>{const p=Math.min(c,y.length-m);return o.getMany({trans:r,keys:y.slice(m,m+p),cache:"immutable"}).then(_=>{const x=[],C=[],E=l?[]:null,w=[];for(let k=0;k<p;++k){const B=_[k],D={value:nt(B),primKey:y[m+k]};s.call(D,D.value,D)!==!1&&(D.value==null?w.push(y[m+k]):l||H(d(B),d(D.value))===0?(C.push(D.value),l&&E.push(y[m+k])):(w.push(y[m+k]),x.push(D.value)))}const T=Ie(n)&&n.limit===1/0&&(typeof e!="function"||e===$t)&&{index:n.index,range:n.range};return Promise.resolve(x.length>0&&o.mutate({trans:r,type:"add",values:x}).then(k=>{for(let B in k.failures)w.splice(parseInt(B),1);g(x.length,k)})).then(()=>(C.length>0||T&&typeof e=="object")&&o.mutate({trans:r,type:"put",keys:E,values:C,criteria:T,changeSpec:typeof e!="function"&&e}).then(k=>g(C.length,k))).then(()=>(w.length>0||T&&e===$t)&&o.mutate({trans:r,type:"delete",keys:w,criteria:T}).then(k=>g(w.length,k))).then(()=>y.length>m+p&&v(m+c))})};return v(0).then(()=>{if(h.length>0)throw new kt("Error modifying one or more objects",h,u,f);return y.length})})})}delete(){var e=this._ctx,n=e.range;return Ie(e)&&(e.isPrimKey&&!Os||n.type===3)?this._write(r=>{const{primaryKey:s}=e.table.core.schema,i=n;return e.table.core.count({trans:r,query:{index:s,range:i}}).then(a=>e.table.core.mutate({trans:r,type:"deleteRange",range:i}).then(({failures:o,lastResult:l,results:d,numFailures:c})=>{if(c)throw new kt("Could not delete some values",Object.keys(o).map(h=>o[h]),a-c);return a-c}))}):this.modify($t)}}const $t=(t,e)=>e.value=null;function Bs(t,e){return t<e?-1:t===e?0:1}function Ns(t,e){return t>e?-1:t===e?0:1}function G(t,e,n){var r=t instanceof Cr?new t.Collection(t):t;return r._ctx.error=n?new n(e):new TypeError(e),r}function Ae(t){return new t.Collection(t,()=>Sr("")).limit(0)}function js(t,e,n,r,s,i){for(var a=Math.min(t.length,r.length),o=-1,l=0;l<a;++l){var d=e[l];if(d!==r[l])return s(t[l],n[l])<0?t.substr(0,l)+n[l]+n.substr(l+1):s(t[l],r[l])<0?t.substr(0,l)+r[l]+n.substr(l+1):o>=0?t.substr(0,o)+e[o]+n.substr(o+1):null;s(t[l],d)<0&&(o=l)}return a<r.length&&i==="next"?t+n.substr(t.length):a<t.length&&i==="prev"?t.substr(0,n.length):o<0?null:t.substr(0,o)+r[o]+n.substr(o+1)}function ut(t,e,n,r){var s,i,a,o,l,d,c,h=n.length;if(!n.every(y=>typeof y=="string"))return G(t,kr);function u(y){s=function(m){return m==="next"?p=>p.toUpperCase():p=>p.toLowerCase()}(y),i=function(m){return m==="next"?p=>p.toLowerCase():p=>p.toUpperCase()}(y),a=y==="next"?Bs:Ns;var v=n.map(function(m){return{lower:i(m),upper:s(m)}}).sort(function(m,p){return a(m.lower,p.lower)});o=v.map(function(m){return m.upper}),l=v.map(function(m){return m.lower}),d=y,c=y==="next"?"":r}u("next");var f=new t.Collection(t,()=>oe(o[0],l[h-1]+r));f._ondirectionchange=function(y){u(y)};var g=0;return f._addAlgorithm(function(y,v,m){var p=y.key;if(typeof p!="string")return!1;var _=i(p);if(e(_,l,g))return!0;for(var x=null,C=g;C<h;++C){var E=js(p,_,o[C],l[C],a,d);E===null&&x===null?g=C+1:(x===null||a(x,E)>0)&&(x=E)}return v(x!==null?function(){y.continue(x+c)}:m),!1}),f}function oe(t,e,n,r){return{type:2,lower:t,upper:e,lowerOpen:n,upperOpen:r}}function Sr(t){return{type:1,lower:t,upper:t}}class Cr{get Collection(){return this._ctx.table.db.Collection}between(e,n,r,s){r=r!==!1,s=s===!0;try{return this._cmp(e,n)>0||this._cmp(e,n)===0&&(r||s)&&(!r||!s)?Ae(this):new this.Collection(this,()=>oe(e,n,!r,!s))}catch{return G(this,Z)}}equals(e){return e==null?G(this,Z):new this.Collection(this,()=>Sr(e))}above(e){return e==null?G(this,Z):new this.Collection(this,()=>oe(e,void 0,!0))}aboveOrEqual(e){return e==null?G(this,Z):new this.Collection(this,()=>oe(e,void 0,!1))}below(e){return e==null?G(this,Z):new this.Collection(this,()=>oe(void 0,e,!1,!0))}belowOrEqual(e){return e==null?G(this,Z):new this.Collection(this,()=>oe(void 0,e))}startsWith(e){return typeof e!="string"?G(this,kr):this.between(e,e+ge,!0,!0)}startsWithIgnoreCase(e){return e===""?this.startsWith(e):ut(this,(n,r)=>n.indexOf(r[0])===0,[e],ge)}equalsIgnoreCase(e){return ut(this,(n,r)=>n===r[0],[e],"")}anyOfIgnoreCase(){var e=te.apply(Te,arguments);return e.length===0?Ae(this):ut(this,(n,r)=>r.indexOf(n)!==-1,e,"")}startsWithAnyOfIgnoreCase(){var e=te.apply(Te,arguments);return e.length===0?Ae(this):ut(this,(n,r)=>r.some(s=>n.indexOf(s)===0),e,ge)}anyOf(){const e=te.apply(Te,arguments);let n=this._cmp;try{e.sort(n)}catch{return G(this,Z)}if(e.length===0)return Ae(this);const r=new this.Collection(this,()=>oe(e[0],e[e.length-1]));r._ondirectionchange=i=>{n=i==="next"?this._ascending:this._descending,e.sort(n)};let s=0;return r._addAlgorithm((i,a,o)=>{const l=i.key;for(;n(l,e[s])>0;)if(++s,s===e.length)return a(o),!1;return n(l,e[s])===0||(a(()=>{i.continue(e[s])}),!1)}),r}notEqual(e){return this.inAnyRange([[nn,e],[e,this.db._maxKey]],{includeLowers:!1,includeUppers:!1})}noneOf(){const e=te.apply(Te,arguments);if(e.length===0)return new this.Collection(this);try{e.sort(this._ascending)}catch{return G(this,Z)}const n=e.reduce((r,s)=>r?r.concat([[r[r.length-1][1],s]]):[[nn,s]],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,s=this._ascending,i=this._descending,a=this._min,o=this._max;if(e.length===0)return Ae(this);if(!e.every(p=>p[0]!==void 0&&p[1]!==void 0&&s(p[0],p[1])<=0))return G(this,"First argument to inAnyRange() must be an Array of two-value Arrays [lower,upper] where upper must not be lower than lower",I.InvalidArgument);const l=!n||n.includeLowers!==!1,d=n&&n.includeUppers===!0;let c,h=s;function u(p,_){return h(p[0],_[0])}try{c=e.reduce(function(p,_){let x=0,C=p.length;for(;x<C;++x){const E=p[x];if(r(_[0],E[1])<0&&r(_[1],E[0])>0){E[0]=a(E[0],_[0]),E[1]=o(E[1],_[1]);break}}return x===C&&p.push(_),p},[]),c.sort(u)}catch{return G(this,Z)}let f=0;const g=d?p=>s(p,c[f][1])>0:p=>s(p,c[f][1])>=0,y=l?p=>i(p,c[f][0])>0:p=>i(p,c[f][0])>=0;let v=g;const m=new this.Collection(this,()=>oe(c[0][0],c[c.length-1][1],!l,!d));return m._ondirectionchange=p=>{p==="next"?(v=g,h=s):(v=y,h=i),c.sort(u)},m._addAlgorithm((p,_,x)=>{for(var C=p.key;v(C);)if(++f,f===c.length)return _(x),!1;return!!function(E){return!g(E)&&!y(E)}(C)||(this._cmp(C,c[f][1])===0||this._cmp(C,c[f][0])===0||_(()=>{h===s?p.continue(c[f][0]):p.continue(c[f][1])}),!1)}),m}startsWithAnyOf(){const e=te.apply(Te,arguments);return e.every(n=>typeof n=="string")?e.length===0?Ae(this):this.inAnyRange(e.map(n=>[n,n+ge])):G(this,"startsWithAnyOf() only works with strings")}}function Q(t){return K(function(e){return Qe(e),t(e.target.error),!1})}function Qe(t){t.stopPropagation&&t.stopPropagation(),t.preventDefault&&t.preventDefault()}const Xe="storagemutated",ce="x-storagemutated-1",pe=ze(null,Xe);class Ms{_lock(){return Fe(!P.global),++this._reculock,this._reculock!==1||P.global||(P.lockOwnerFor=this),this}_unlock(){if(Fe(!P.global),--this._reculock==0)for(P.global||(P.lockOwnerFor=null);this._blockedFuncs.length>0&&!this._locked();){var e=this._blockedFuncs.shift();try{Ne(e[1],e[0])}catch{}}return this}_locked(){return this._reculock&&P.lockOwnerFor!==this}create(e){if(!this.mode)return this;const n=this.db.idbdb,r=this.db._state.dbOpenError;if(Fe(!this.idbtrans),!e&&!n)switch(r&&r.name){case"DatabaseClosedError":throw new I.DatabaseClosed(r);case"MissingAPIError":throw new I.MissingAPI(r.message,r);default:throw new I.OpenFailed(r)}if(!this.active)throw new I.TransactionInactive;return Fe(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=K(s=>{Qe(s),this._reject(e.error)}),e.onabort=K(s=>{Qe(s),this.active&&this._reject(new I.Abort(e.error)),this.active=!1,this.on("abort").fire(s)}),e.oncomplete=K(()=>{this.active=!1,this._resolve(),"mutatedParts"in e&&pe.storagemutated.fire(e.mutatedParts)}),this}_promise(e,n,r){if(e==="readwrite"&&this.mode!=="readwrite")return M(new I.ReadOnly("Transaction is readonly"));if(!this.active)return M(new I.TransactionInactive);if(this._locked())return new S((i,a)=>{this._blockedFuncs.push([()=>{this._promise(e,n,r).then(i,a)},P])});if(r)return he(()=>{var i=new S((a,o)=>{this._lock();const l=n(a,o,this);l&&l.then&&l.then(a,o)});return i.finally(()=>this._unlock()),i._lib=!0,i});var s=new S((i,a)=>{var o=n(i,a,this);o&&o.then&&o.then(i,a)});return s._lib=!0,s}_root(){return this.parent?this.parent._root():this}waitFor(e){var n=this._root();const r=S.resolve(e);if(n._waitingFor)n._waitingFor=n._waitingFor.then(()=>r);else{n._waitingFor=r,n._waitingQueue=[];var s=n.idbtrans.objectStore(n.storeNames[0]);(function a(){for(++n._spinCount;n._waitingQueue.length;)n._waitingQueue.shift()();n._waitingFor&&(s.get(-1/0).onsuccess=a)})()}var i=n._waitingFor;return new S((a,o)=>{r.then(l=>n._waitingQueue.push(K(a.bind(null,l))),l=>n._waitingQueue.push(K(o.bind(null,l)))).finally(()=>{n._waitingFor===i&&(n._waitingFor=null)})})}abort(){this.active&&(this.active=!1,this.idbtrans&&this.idbtrans.abort(),this._reject(new I.Abort))}table(e){const n=this._memoizedTables||(this._memoizedTables={});if(W(n,e))return n[e];const r=this.schema[e];if(!r)throw new I.NotFound("Table "+e+" not part of transaction");const s=new this.db.Table(e,r,this);return s.core=this.db.core.table(e),n[e]=s,s}}function rn(t,e,n,r,s,i,a){return{name:t,keyPath:e,unique:n,multi:r,auto:s,compound:i,src:(n&&!a?"&":"")+(r?"*":"")+(s?"++":"")+Pr(e)}}function Pr(t){return typeof t=="string"?t:t?"["+[].join.call(t,"+")+"]":""}function Ir(t,e,n){return{name:t,primKey:e,indexes:n,mappedClass:null,idxByName:ir(n,r=>[r.name,r])}}let Ze=t=>{try{return t.only([[]]),Ze=()=>[[]],[[]]}catch{return Ze=()=>ge,ge}};function sn(t){return t==null?()=>{}:typeof t=="string"?function(e){return e.split(".").length===1?r=>r[e]:r=>se(r,e)}(t):e=>se(e,t)}function Hn(t){return[].slice.call(t)}let $s=0;function Ge(t){return t==null?":id":typeof t=="string"?t:`[${t.join("+")}]`}function Us(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:d,upper:c,lowerOpen:h,upperOpen:u}=l;return d===void 0?c===void 0?null:e.upperBound(c,!!u):c===void 0?e.lowerBound(d,!!h):e.bound(d,c,!!h,!!u)}const{schema:s,hasGetAll:i}=function(l,d){const c=Hn(l.objectStoreNames);return{schema:{name:l.name,tables:c.map(h=>d.objectStore(h)).map(h=>{const{keyPath:u,autoIncrement:f}=h,g=F(u),y=u==null,v={},m={name:h.name,primaryKey:{name:null,isPrimaryKey:!0,outbound:y,compound:g,keyPath:u,autoIncrement:f,unique:!0,extractKey:sn(u)},indexes:Hn(h.indexNames).map(p=>h.index(p)).map(p=>{const{name:_,unique:x,multiEntry:C,keyPath:E}=p,w={name:_,compound:F(E),keyPath:E,unique:x,multiEntry:C,extractKey:sn(E)};return v[Ge(E)]=w,w}),getIndexByKeyPath:p=>v[Ge(p)]};return v[":id"]=m.primaryKey,u!=null&&(v[Ge(u)]=m.primaryKey),m})},hasGetAll:c.length>0&&"getAll"in d.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),a=s.tables.map(l=>function(d){const c=d.name;return{name:c,schema:d,mutate:function({trans:h,type:u,keys:f,values:g,range:y}){return new Promise((v,m)=>{v=K(v);const p=h.objectStore(c),_=p.keyPath==null,x=u==="put"||u==="add";if(!x&&u!=="delete"&&u!=="deleteRange")throw new Error("Invalid operation type: "+u);const{length:C}=f||g||{length:1};if(f&&g&&f.length!==g.length)throw new Error("Given keys array must have same length as given values array.");if(C===0)return v({numFailures:0,failures:{},results:[],lastResult:void 0});let E;const w=[],T=[];let k=0;const B=q=>{++k,Qe(q)};if(u==="deleteRange"){if(y.type===4)return v({numFailures:k,failures:T,results:[],lastResult:void 0});y.type===3?w.push(E=p.clear()):w.push(E=p.delete(r(y)))}else{const[q,$]=x?_?[g,f]:[g,null]:[f,null];if(x)for(let N=0;N<C;++N)w.push(E=$&&$[N]!==void 0?p[u](q[N],$[N]):p[u](q[N])),E.onerror=B;else for(let N=0;N<C;++N)w.push(E=p[u](q[N])),E.onerror=B}const D=q=>{const $=q.target.result;w.forEach((N,Se)=>N.error!=null&&(T[Se]=N.error)),v({numFailures:k,failures:T,results:u==="delete"?f:w.map(N=>N.result),lastResult:$})};E.onerror=q=>{B(q),D(q)},E.onsuccess=D})},getMany:({trans:h,keys:u})=>new Promise((f,g)=>{f=K(f);const y=h.objectStore(c),v=u.length,m=new Array(v);let p,_=0,x=0;const C=w=>{const T=w.target;m[T._pos]=T.result,++x===_&&f(m)},E=Q(g);for(let w=0;w<v;++w)u[w]!=null&&(p=y.get(u[w]),p._pos=w,p.onsuccess=C,p.onerror=E,++_);_===0&&f(m)}),get:({trans:h,key:u})=>new Promise((f,g)=>{f=K(f);const y=h.objectStore(c).get(u);y.onsuccess=v=>f(v.target.result),y.onerror=Q(g)}),query:function(h){return u=>new Promise((f,g)=>{f=K(f);const{trans:y,values:v,limit:m,query:p}=u,_=m===1/0?void 0:m,{index:x,range:C}=p,E=y.objectStore(c),w=x.isPrimaryKey?E:E.index(x.name),T=r(C);if(m===0)return f({result:[]});if(h){const k=v?w.getAll(T,_):w.getAllKeys(T,_);k.onsuccess=B=>f({result:B.target.result}),k.onerror=Q(g)}else{let k=0;const B=v||!("openKeyCursor"in w)?w.openCursor(T):w.openKeyCursor(T),D=[];B.onsuccess=q=>{const $=B.result;return $?(D.push(v?$.value:$.primaryKey),++k===m?f({result:D}):void $.continue()):f({result:D})},B.onerror=Q(g)}})}(i),openCursor:function({trans:h,values:u,query:f,reverse:g,unique:y}){return new Promise((v,m)=>{v=K(v);const{index:p,range:_}=f,x=h.objectStore(c),C=p.isPrimaryKey?x:x.index(p.name),E=g?y?"prevunique":"prev":y?"nextunique":"next",w=u||!("openKeyCursor"in C)?C.openCursor(r(_),E):C.openKeyCursor(r(_),E);w.onerror=Q(m),w.onsuccess=K(T=>{const k=w.result;if(!k)return void v(null);k.___id=++$s,k.done=!1;const B=k.continue.bind(k);let D=k.continuePrimaryKey;D&&(D=D.bind(k));const q=k.advance.bind(k),$=()=>{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=K(m),k.next=function(){let N=1;return this.start(()=>N--?this.continue():this.stop()).then(()=>this)},k.start=N=>{const Se=new Promise((z,me)=>{z=K(z),w.onerror=Q(me),k.fail=me,k.stop=Me=>{k.stop=k.continue=k.continuePrimaryKey=k.advance=$,z(Me)}}),Ce=()=>{if(w.result)try{N()}catch(z){k.fail(z)}else k.done=!0,k.start=()=>{throw new Error("Cursor behind last entry")},k.stop()};return w.onsuccess=K(z=>{w.onsuccess=Ce,Ce()}),k.continue=B,k.continuePrimaryKey=D,k.advance=q,Ce(),Se},v(k)},m)})},count({query:h,trans:u}){const{index:f,range:g}=h;return new Promise((y,v)=>{const m=u.objectStore(c),p=f.isPrimaryKey?m:m.index(f.name),_=r(g),x=_?p.count(_):p.count();x.onsuccess=K(C=>y(C.target.result)),x.onerror=Q(v)})}}}(l)),o={};return a.forEach(l=>o[l.name]=l),{stack:"dbcore",transaction:t.transaction.bind(t),table(l){if(!o[l])throw new Error(`Table '${l}' not found`);return o[l]},MIN_KEY:-1/0,MAX_KEY:Ze(e),schema:s}}function an({_novip:t},e){const n=e.db,r=function(s,i,{IDBKeyRange:a,indexedDB:o},l){return{dbcore:function(c,h){return h.reduce((u,{create:f})=>({...u,...f(u)}),c)}(Us(i,a,l),s.dbcore)}}(t._middlewares,n,t._deps,e);t.core=r.dbcore,t.tables.forEach(s=>{const i=s.name;t.core.schema.tables.some(a=>a.name===i)&&(s.core=t.core.table(i),t[i]instanceof t.Table&&(t[i].core=s.core))})}function Pt({_novip:t},e,n,r){n.forEach(s=>{const i=r[s];e.forEach(a=>{const o=wn(a,s);(!o||"value"in o&&o.value===void 0)&&(a===t.Transaction.prototype||a instanceof t.Transaction?re(a,s,{get(){return this.table(s)},set(l){nr(this,s,{value:l,writable:!0,configurable:!0,enumerable:!0})}}):a[s]=new t.Table(s,i))})})}function on({_novip:t},e){e.forEach(n=>{for(let r in n)n[r]instanceof t.Table&&delete n[r]})}function Fs(t,e){return t._cfg.version-e._cfg.version}function Ls(t,e,n,r){const s=t._dbSchema,i=t._createTransaction("readwrite",t._storeNames,s);i.create(n),i._completion.catch(r);const a=i._reject.bind(i),o=P.transless||P;he(()=>{P.trans=i,P.transless=o,e===0?(j(s).forEach(l=>{Ut(n,l,s[l].primKey,s[l].indexes)}),an(t,n),S.follow(()=>t.on.populate.fire(i)).catch(a)):function({_novip:l},d,c,h){const u=[],f=l._versions;let g=l._dbSchema=cn(l,l.idbdb,h),y=!1;const v=f.filter(p=>p._cfg.version>=d);function m(){return u.length?S.resolve(u.shift()(c.idbtrans)).then(m):S.resolve()}return v.forEach(p=>{u.push(()=>{const _=g,x=p._cfg.dbschema;un(l,_,h),un(l,x,h),g=l._dbSchema=x;const C=Ar(_,x);C.add.forEach(w=>{Ut(h,w[0],w[1].primKey,w[1].indexes)}),C.change.forEach(w=>{if(w.recreate)throw new I.Upgrade("Not yet support for changing primary key");{const T=h.objectStore(w.name);w.add.forEach(k=>ln(T,k)),w.change.forEach(k=>{T.deleteIndex(k.name),ln(T,k)}),w.del.forEach(k=>T.deleteIndex(k))}});const E=p._cfg.contentUpgrade;if(E&&p._cfg.version>d){an(l,h),c._memoizedTables={},y=!0;let w=ar(x);C.del.forEach(D=>{w[D]=_[D]}),on(l,[l.Transaction.prototype]),Pt(l,[l.Transaction.prototype],j(w),w),c.schema=w;const T=_n(E);let k;T&&Be();const B=S.follow(()=>{if(k=E(c),k&&T){var D=ie.bind(null,null);k.then(D,D)}});return k&&typeof k.then=="function"?S.resolve(k):B.then(()=>k)}}),u.push(_=>{(!y||!Ds)&&function(x,C){[].slice.call(C.db.objectStoreNames).forEach(E=>x[E]==null&&C.db.deleteObjectStore(E))}(p._cfg.dbschema,_),on(l,[l.Transaction.prototype]),Pt(l,[l.Transaction.prototype],l._storeNames,l._dbSchema),c.schema=l._dbSchema})}),m().then(()=>{var p,_;_=h,j(p=g).forEach(x=>{_.db.objectStoreNames.contains(x)||Ut(_,x,p[x].primKey,p[x].indexes)})})}(t,e,i,n).catch(a)})}function Ar(t,e){const n={del:[],add:[],change:[]};let r;for(r in t)e[r]||n.del.push(r);for(r in e){const s=t[r],i=e[r];if(s){const a={name:r,def:i,recreate:!1,del:[],add:[],change:[]};if(""+(s.primKey.keyPath||"")!=""+(i.primKey.keyPath||"")||s.primKey.auto!==i.primKey.auto&&!Dt)a.recreate=!0,n.change.push(a);else{const o=s.idxByName,l=i.idxByName;let d;for(d in o)l[d]||a.del.push(d);for(d in l){const c=o[d],h=l[d];c?c.src!==h.src&&a.change.push(h):a.add.push(h)}(a.del.length>0||a.add.length>0||a.change.length>0)&&n.change.push(a)}}else n.add.push([r,i])}return n}function Ut(t,e,n,r){const s=t.db.createObjectStore(e,n.keyPath?{keyPath:n.keyPath,autoIncrement:n.auto}:{autoIncrement:n.auto});return r.forEach(i=>ln(s,i)),s}function ln(t,e){t.createIndex(e.name,e.keyPath,{unique:e.unique,multiEntry:e.multi})}function cn(t,e,n){const r={};return _t(e.objectStoreNames,0).forEach(s=>{const i=n.objectStore(s);let a=i.keyPath;const o=rn(Pr(a),a||"",!1,!1,!!i.autoIncrement,a&&typeof a!="string",!0),l=[];for(let c=0;c<i.indexNames.length;++c){const h=i.index(i.indexNames[c]);a=h.keyPath;var d=rn(h.name,a,!!h.unique,!!h.multiEntry,!1,a&&typeof a!="string",!1);l.push(d)}r[s]=Ir(s,o,l)}),r}function un({_novip:t},e,n){const r=n.db.objectStoreNames;for(let s=0;s<r.length;++s){const i=r[s],a=n.objectStore(i);t._hasGetAll="getAll"in a;for(let o=0;o<a.indexNames.length;++o){const l=a.indexNames[o],d=a.index(l).keyPath,c=typeof d=="string"?d:"["+_t(d).join("+")+"]";if(e[i]){const h=e[i].idxByName[c];h&&(h.name=l,delete e[i].idxByName[c],e[i].idxByName[l]=h)}}}typeof navigator<"u"&&/Safari/.test(navigator.userAgent)&&!/(Chrome\/|Edge\/)/.test(navigator.userAgent)&&R.WorkerGlobalScope&&R instanceof R.WorkerGlobalScope&&[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]<604&&(t._hasGetAll=!1)}class qs{_parseStoresSpec(e,n){j(e).forEach(r=>{if(e[r]!==null){var s=e[r].split(",").map((a,o)=>{const l=(a=a.trim()).replace(/([&*]|\+\+)/g,""),d=/^\[/.test(l)?l.match(/^\[(.*)\]$/)[1].split("+"):l;return rn(l,d||null,/\&/.test(a),/\*/.test(a),/\+\+/.test(a),F(d),o===0)}),i=s.shift();if(i.multi)throw new I.Schema("Primary key cannot be multi-valued");s.forEach(a=>{if(a.auto)throw new I.Schema("Only primary key can be marked as autoIncrement (++)");if(!a.keyPath)throw new I.Schema("Index must have a name and cannot be an empty string")}),n[r]=Ir(r,i,s)}})}stores(e){const n=this.db;this._cfg.storesSource=this._cfg.storesSource?V(this._cfg.storesSource,e):e;const r=n._versions,s={};let i={};return r.forEach(a=>{V(s,a._cfg.storesSource),i=a._cfg.dbschema={},a._parseStoresSpec(s,i)}),n._dbSchema=i,on(n,[n._allTables,n,n.Transaction.prototype]),Pt(n,[n._allTables,n,n.Transaction.prototype,this._cfg.tables],j(i),i),n._storeNames=j(i),this}upgrade(e){return this._cfg.contentUpgrade=xn(this._cfg.contentUpgrade||O,e),this}}function In(t,e){let n=t._dbNamesDB;return n||(n=t._dbNamesDB=new we(Ot,{addons:[],indexedDB:t,IDBKeyRange:e}),n.version(1).stores({dbnames:"name"})),n.table("dbnames")}function An(t){return t&&typeof t.databases=="function"}function dn(t){return he(function(){return P.letThrough=!0,t()})}function Hs(){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 Vs(t){const e=t._state,{indexedDB:n}=t._deps;if(e.isBeingOpened||t.idbdb)return e.dbReadyPromise.then(()=>e.dbOpenError?M(e.dbOpenError):t);X&&(e.openCanceller._stackHolder=xe()),e.isBeingOpened=!0,e.dbOpenError=null,e.openComplete=!1;const r=e.openCanceller;function s(){if(e.openCanceller!==r)throw new I.DatabaseClosed("db.open() was cancelled")}let i=e.dbReadyResolve,a=null,o=!1;const l=()=>new S((d,c)=>{if(s(),!n)throw new I.MissingAPI;const h=t.name,u=e.autoSchema?n.open(h):n.open(h,Math.round(10*t.verno));if(!u)throw new I.MissingAPI;u.onerror=Q(c),u.onblocked=K(t._fireOnBlocked),u.onupgradeneeded=K(f=>{if(a=u.transaction,e.autoSchema&&!t._options.allowEmptyDB){u.onerror=Qe,a.abort(),u.result.close();const y=n.deleteDatabase(h);y.onsuccess=y.onerror=K(()=>{c(new I.NoSuchDatabase(`Database ${h} doesnt exist`))})}else{a.onerror=Q(c);var g=f.oldVersion>Math.pow(2,62)?0:f.oldVersion;o=g<1,t._novip.idbdb=u.result,Ls(t,g/10,a,c)}},c),u.onsuccess=K(()=>{a=null;const f=t._novip.idbdb=u.result,g=_t(f.objectStoreNames);if(g.length>0)try{const v=f.transaction((y=g).length===1?y[0]:y,"readonly");e.autoSchema?function({_novip:m},p,_){m.verno=p.version/10;const x=m._dbSchema=cn(0,p,_);m._storeNames=_t(p.objectStoreNames,0),Pt(m,[m._allTables],j(x),x)}(t,f,v):(un(t,t._dbSchema,v),function(m,p){const _=Ar(cn(0,m.idbdb,p),m._dbSchema);return!(_.add.length||_.change.some(x=>x.add.length||x.change.length))}(t,v)||console.warn("Dexie SchemaDiff: Schema was extended without increasing the number passed to db.version(). Some queries may fail.")),an(t,v)}catch{}var y;Ve.push(t),f.onversionchange=K(v=>{e.vcFired=!0,t.on("versionchange").fire(v)}),f.onclose=K(v=>{t.on("close").fire(v)}),o&&function({indexedDB:v,IDBKeyRange:m},p){!An(v)&&p!==Ot&&In(v,m).put({name:p}).catch(O)}(t._deps,h),d()},c)}).catch(d=>d&&d.name==="UnknownError"&&e.PR1398_maxLoop>0?(e.PR1398_maxLoop--,console.warn("Dexie: Workaround for Chrome UnknownError on open()"),l()):S.reject(d));return S.race([r,(typeof navigator>"u"?S.resolve():Hs()).then(l)]).then(()=>(s(),e.onReadyBeingFired=[],S.resolve(dn(()=>t.on.ready.fire(t.vip))).then(function d(){if(e.onReadyBeingFired.length>0){let c=e.onReadyBeingFired.reduce(xn,O);return e.onReadyBeingFired=[],S.resolve(dn(()=>c(t.vip))).then(d)}}))).finally(()=>{e.onReadyBeingFired=null,e.isBeingOpened=!1}).then(()=>t).catch(d=>{e.dbOpenError=d;try{a&&a.abort()}catch{}return r===e.openCanceller&&t._close(),M(d)}).finally(()=>{e.openComplete=!0,i()})}function hn(t){var e=i=>t.next(i),n=s(e),r=s(i=>t.throw(i));function s(i){return a=>{var o=i(a),l=o.value;return o.done?l:l&&typeof l.then=="function"?l.then(n,r):F(l)?Promise.all(l).then(n,r):n(l)}}return s(e)()}function zs(t,e,n){var r=arguments.length;if(r<2)throw new I.InvalidArgument("Too few arguments");for(var s=new Array(r-1);--r;)s[r-1]=arguments[r];return n=s.pop(),[t,or(s),n]}function Tr(t,e,n,r,s){return S.resolve().then(()=>{const i=P.transless||P,a=t._createTransaction(e,n,t._dbSchema,r),o={trans:a,transless:i};if(r)a.idbtrans=r.idbtrans;else try{a.create(),t._state.PR1398_maxLoop=3}catch(h){return h.name===En.InvalidState&&t.isOpen()&&--t._state.PR1398_maxLoop>0?(console.warn("Dexie: Need to reopen db"),t._close(),t.open().then(()=>Tr(t,e,n,null,s))):M(h)}const l=_n(s);let d;l&&Be();const c=S.follow(()=>{if(d=s.call(a,a),d)if(l){var h=ie.bind(null,null);d.then(h,h)}else typeof d.next=="function"&&typeof d.throw=="function"&&(d=hn(d))},o);return(d&&typeof d.then=="function"?S.resolve(d).then(h=>a.active?h:M(new I.PrematureCommit("Transaction committed too early. See http://bit.ly/2kdckMn"))):c.then(()=>d)).then(h=>(r&&a._resolve(),a._completion.then(()=>h))).catch(h=>(a._reject(h),M(h)))})}function dt(t,e,n){const r=F(t)?t.slice():[t];for(let s=0;s<n;++s)r.push(e);return r}const Gs={stack:"dbcore",name:"VirtualIndexMiddleware",level:1,create:function(t){return{...t,table(e){const n=t.table(e),{schema:r}=n,s={},i=[];function a(c,h,u){const f=Ge(c),g=s[f]=s[f]||[],y=c==null?0:typeof c=="string"?1:c.length,v=h>0,m={...u,isVirtual:v,keyTail:h,keyLength:y,extractKey:sn(c),unique:!v&&u.unique};return g.push(m),m.isPrimaryKey||i.push(m),y>1&&a(y===2?c[0]:c.slice(0,y-1),h+1,u),g.sort((p,_)=>p.keyTail-_.keyTail),m}const o=a(r.primaryKey.keyPath,0,r.primaryKey);s[":id"]=[o];for(const c of r.indexes)a(c.keyPath,0,c);function l(c){const h=c.query.index;return h.isVirtual?{...c,query:{index:h,range:(u=c.query.range,f=h.keyTail,{type:u.type===1?2:u.type,lower:dt(u.lower,u.lowerOpen?t.MAX_KEY:t.MIN_KEY,f),lowerOpen:!0,upper:dt(u.upper,u.upperOpen?t.MIN_KEY:t.MAX_KEY,f),upperOpen:!0})}}:c;var u,f}return{...n,schema:{...r,primaryKey:o,indexes:i,getIndexByKeyPath:function(c){const h=s[Ge(c)];return h&&h[0]}},count:c=>n.count(l(c)),query:c=>n.query(l(c)),openCursor(c){const{keyTail:h,isVirtual:u,keyLength:f}=c.query.index;return u?n.openCursor(l(c)).then(g=>g&&function(y){return Object.create(y,{continue:{value:function(m){m!=null?y.continue(dt(m,c.reverse?t.MAX_KEY:t.MIN_KEY,h)):c.unique?y.continue(y.key.slice(0,f).concat(c.reverse?t.MIN_KEY:t.MAX_KEY,h)):y.continue()}},continuePrimaryKey:{value(m,p){y.continuePrimaryKey(dt(m,t.MAX_KEY,h),p)}},primaryKey:{get:()=>y.primaryKey},key:{get(){const m=y.key;return f===1?m[0]:m.slice(0,f)}},value:{get:()=>y.value}})}(g)):n.openCursor(c)}}}}}};function Tn(t,e,n,r){return n=n||{},r=r||"",j(t).forEach(s=>{if(W(e,s)){var i=t[s],a=e[s];if(typeof i=="object"&&typeof a=="object"&&i&&a){const o=Ht(i);o!==Ht(a)?n[r+s]=e[s]:o==="Object"?Tn(i,a,n,r+s+"."):i!==a&&(n[r+s]=e[s])}else i!==a&&(n[r+s]=e[s])}else n[r+s]=void 0}),j(e).forEach(s=>{W(t,s)||(n[r+s]=e[s])}),n}const Ws={stack:"dbcore",name:"HooksMiddleware",level:2,create:t=>({...t,table(e){const n=t.table(e),{primaryKey:r}=n.schema;return{...n,mutate(i){const a=P.trans,{deleting:o,creating:l,updating:d}=a.table(e).hook;switch(i.type){case"add":if(l.fire===O)break;return a._promise("readwrite",()=>c(i),!0);case"put":if(l.fire===O&&d.fire===O)break;return a._promise("readwrite",()=>c(i),!0);case"delete":if(o.fire===O)break;return a._promise("readwrite",()=>c(i),!0);case"deleteRange":if(o.fire===O)break;return a._promise("readwrite",()=>function(u){return h(u.trans,u.range,1e4)}(i),!0)}return n.mutate(i);function c(u){const f=P.trans,g=u.keys||function(y,v){return v.type==="delete"?v.keys:v.keys||v.values.map(y.extractKey)}(r,u);if(!g)throw new Error("Keys missing");return(u=u.type==="add"||u.type==="put"?{...u,keys:g}:{...u}).type!=="delete"&&(u.values=[...u.values]),u.keys&&(u.keys=[...u.keys]),function(y,v,m){return v.type==="add"?Promise.resolve([]):y.getMany({trans:v.trans,keys:m,cache:"immutable"})}(n,u,g).then(y=>{const v=g.map((m,p)=>{const _=y[p],x={onerror:null,onsuccess:null};if(u.type==="delete")o.fire.call(x,m,_,f);else if(u.type==="add"||_===void 0){const C=l.fire.call(x,m,u.values[p],f);m==null&&C!=null&&(m=C,u.keys[p]=m,r.outbound||Y(u.values[p],r.keyPath,m))}else{const C=Tn(_,u.values[p]),E=d.fire.call(x,C,m,_,f);if(E){const w=u.values[p];Object.keys(E).forEach(T=>{W(w,T)?w[T]=E[T]:Y(w,T,E[T])})}}return x});return n.mutate(u).then(({failures:m,results:p,numFailures:_,lastResult:x})=>{for(let C=0;C<g.length;++C){const E=p?p[C]:g[C],w=v[C];E==null?w.onerror&&w.onerror(m[C]):w.onsuccess&&w.onsuccess(u.type==="put"&&y[C]?u.values[C]:E)}return{failures:m,results:p,numFailures:_,lastResult:x}}).catch(m=>(v.forEach(p=>p.onerror&&p.onerror(m)),Promise.reject(m)))})}function h(u,f,g){return n.query({trans:u,values:!1,query:{index:r,range:f},limit:g}).then(({result:y})=>c({type:"delete",keys:y,trans:u}).then(v=>v.numFailures>0?Promise.reject(v.failures[0]):y.length<g?{failures:[],numFailures:0,lastResult:void 0}:h(u,{...f,lower:y[y.length-1],lowerOpen:!0},g)))}}}}})};function Dr(t,e,n){try{if(!e||e.keys.length<t.length)return null;const r=[];for(let s=0,i=0;s<e.keys.length&&i<t.length;++s)H(e.keys[s],t[i])===0&&(r.push(n?nt(e.values[s]):e.values[s]),++i);return r.length===t.length?r:null}catch{return null}}const Ys={stack:"dbcore",level:-1,create:t=>({table:e=>{const n=t.table(e);return{...n,getMany:r=>{if(!r.cache)return n.getMany(r);const s=Dr(r.keys,r.trans._cache,r.cache==="clone");return s?S.resolve(s):n.getMany(r).then(i=>(r.trans._cache={keys:r.keys,values:r.cache==="clone"?nt(i):i},i))},mutate:r=>(r.type!=="add"&&(r.trans._cache=null),n.mutate(r))}}})};function Dn(t){return!("from"in t)}const ee=function(t,e){if(!this){const n=new ee;return t&&"d"in t&&V(n,t),n}V(this,arguments.length?{d:1,from:t,to:arguments.length>1?e:t}:{d:0})};function et(t,e,n){const r=H(e,n);if(isNaN(r))return;if(r>0)throw RangeError();if(Dn(t))return V(t,{from:e,to:n,d:1});const s=t.l,i=t.r;if(H(n,t.from)<0)return s?et(s,e,n):t.l={from:e,to:n,d:1,l:null,r:null},Vn(t);if(H(e,t.to)>0)return i?et(i,e,n):t.r={from:e,to:n,d:1,l:null,r:null},Vn(t);H(e,t.from)<0&&(t.from=e,t.l=null,t.d=i?i.d+1:1),H(n,t.to)>0&&(t.to=n,t.r=null,t.d=t.l?t.l.d+1:1);const a=!t.r;s&&!t.l&&It(t,s),i&&a&&It(t,i)}function It(t,e){Dn(e)||function n(r,{from:s,to:i,l:a,r:o}){et(r,s,i),a&&n(r,a),o&&n(r,o)}(t,e)}function Js(t,e){const n=fn(e);let r=n.next();if(r.done)return!1;let s=r.value;const i=fn(t);let a=i.next(s.from),o=a.value;for(;!r.done&&!a.done;){if(H(o.from,s.to)<=0&&H(o.to,s.from)>=0)return!0;H(s.from,o.from)<0?s=(r=n.next(o.from)).value:o=(a=i.next(s.from)).value}return!1}function fn(t){let e=Dn(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&&H(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||H(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 Vn(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),s=r>1?"r":r<-1?"l":"";if(s){const i=s==="r"?"l":"r",a={...t},o=t[s];t.from=o.from,t.to=o.to,t[s]=o[s],a[s]=o[i],t[i]=a,a.d=zn(a)}t.d=zn(t)}function zn({r:t,l:e}){return(t?e?Math.max(t.d,e.d):t.d:e?e.d:0)+1}Ke(ee.prototype,{add(t){return It(this,t),this},addKey(t){return et(this,t,t),this},addKeys(t){return t.forEach(e=>et(this,e,e)),this},[Vt](){return fn(this)}});const Qs={stack:"dbcore",level:0,create:t=>{const e=t.schema.name,n=new ee(t.MIN_KEY,t.MAX_KEY);return{...t,table:r=>{const s=t.table(r),{schema:i}=s,{primaryKey:a}=i,{extractKey:o,outbound:l}=a,d={...s,mutate:u=>{const f=u.trans,g=f.mutatedParts||(f.mutatedParts={}),y=E=>{const w=`idb://${e}/${r}/${E}`;return g[w]||(g[w]=new ee)},v=y(""),m=y(":dels"),{type:p}=u;let[_,x]=u.type==="deleteRange"?[u.range]:u.type==="delete"?[u.keys]:u.values.length<50?[[],u.values]:[];const C=u.trans._cache;return s.mutate(u).then(E=>{if(F(_)){p!=="delete"&&(_=E.results),v.addKeys(_);const w=Dr(_,C);w||p==="add"||m.addKeys(_),(w||x)&&function(T,k,B,D){function q($){const N=T($.name||"");function Se(z){return z!=null?$.extractKey(z):null}const Ce=z=>$.multiEntry&&F(z)?z.forEach(me=>N.addKey(me)):N.addKey(z);(B||D).forEach((z,me)=>{const Me=B&&Se(B[me]),Rt=D&&Se(D[me]);H(Me,Rt)!==0&&(Me!=null&&Ce(Me),Rt!=null&&Ce(Rt))})}k.indexes.forEach(q)}(y,i,w,x)}else if(_){const w={from:_.lower,to:_.upper};m.add(w),v.add(w)}else v.add(n),m.add(n),i.indexes.forEach(w=>y(w.name).add(n));return E})}},c=({query:{index:u,range:f}})=>{var g,y;return[u,new ee((g=f.lower)!==null&&g!==void 0?g:t.MIN_KEY,(y=f.upper)!==null&&y!==void 0?y:t.MAX_KEY)]},h={get:u=>[a,new ee(u.key)],getMany:u=>[a,new ee().addKeys(u.keys)],count:c,query:c,openCursor:c};return j(h).forEach(u=>{d[u]=function(f){const{subscr:g}=P;if(g){const y=x=>{const C=`idb://${e}/${r}/${x}`;return g[C]||(g[C]=new ee)},v=y(""),m=y(":dels"),[p,_]=h[u](f);if(y(p.name||"").add(_),!p.isPrimaryKey){if(u!=="count"){const x=u==="query"&&l&&f.values&&s.query({...f,values:!1});return s[u].apply(this,arguments).then(C=>{if(u==="query"){if(l&&f.values)return x.then(({result:w})=>(v.addKeys(w),C));const E=f.values?C.result.map(o):C.result;f.values?v.addKeys(E):m.addKeys(E)}else if(u==="openCursor"){const E=C,w=f.values;return E&&Object.create(E,{key:{get:()=>(m.addKey(E.primaryKey),E.key)},primaryKey:{get(){const T=E.primaryKey;return m.addKey(T),T}},value:{get:()=>(w&&v.addKey(E.primaryKey),E.value)}})}return C})}m.add(n)}}return s[u].apply(this,arguments)}}),d}}}};class we{constructor(e,n){this._middlewares={},this.verno=0;const r=we.dependencies;this._options=n={addons:we.addons,autoOpen:!0,indexedDB:r.indexedDB,IDBKeyRange:r.IDBKeyRange,...n},this._deps={indexedDB:n.indexedDB,IDBKeyRange:n.IDBKeyRange};const{addons:s}=n;this._dbSchema={},this._versions=[],this._storeNames=[],this._allTables={},this.idbdb=null,this._novip=this;const i={dbOpenError:null,isBeingOpened:!1,onReadyBeingFired:null,openComplete:!1,dbReadyResolve:O,dbReadyPromise:null,cancelOpen:O,openCanceller:null,autoSchema:!0,PR1398_maxLoop:3};var a;i.dbReadyPromise=new S(o=>{i.dbReadyResolve=o}),i.openCanceller=new S((o,l)=>{i.cancelOpen=l}),this._state=i,this.name=e,this.on=ze(this,"populate","blocked","versionchange","close",{ready:[xn,O]}),this.on.ready.subscribe=rr(this.on.ready.subscribe,o=>(l,d)=>{we.vip(()=>{const c=this._state;if(c.openComplete)c.dbOpenError||S.resolve().then(l),d&&o(l);else if(c.onReadyBeingFired)c.onReadyBeingFired.push(l),d&&o(l);else{o(l);const h=this;d||o(function u(){h.on.ready.unsubscribe(l),h.on.ready.unsubscribe(u)})}})}),this.Collection=(a=this,$e(Ks.prototype,function(o,l){this.db=a;let d=xr,c=null;if(l)try{d=l()}catch(g){c=g}const h=o._ctx,u=h.table,f=u.hook.reading.fire;this._ctx={table:u,index:h.index,isPrimKey:!h.index||u.schema.primKey.keyPath&&h.index===u.schema.primKey.name,range:d,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:f!==Ye?f:null}})),this.Table=function(o){return $e(Rs.prototype,function(l,d,c){this.db=o,this._tx=c,this.name=l,this.schema=d,this.hook=o._allTables[l]?o._allTables[l].hook:ze(null,{creating:[_s,O],reading:[ws,Ye],updating:[Es,O],deleting:[ks,O]})})}(this),this.Transaction=function(o){return $e(Ms.prototype,function(l,d,c,h,u){this.db=o,this.mode=l,this.storeNames=d,this.schema=c,this.chromeTransactionDurability=h,this.idbtrans=null,this.on=ze(this,"complete","error","abort"),this.parent=u||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 S((f,g)=>{this._resolve=f,this._reject=g}),this._completion.then(()=>{this.active=!1,this.on.complete.fire()},f=>{var g=this.active;return this.active=!1,this.on.error.fire(f),this.parent?this.parent._reject(f):g&&this.idbtrans&&this.idbtrans.abort(),M(f)})})}(this),this.Version=function(o){return $e(qs.prototype,function(l){this.db=o,this._cfg={version:l,storesSource:null,dbschema:{},tables:{},contentUpgrade:null}})}(this),this.WhereClause=function(o){return $e(Cr.prototype,function(l,d,c){this.db=o,this._ctx={table:l,index:d===":id"?null:d,or:c};const h=o._deps.indexedDB;if(!h)throw new I.MissingAPI;this._cmp=this._ascending=h.cmp.bind(h),this._descending=(u,f)=>h.cmp(f,u),this._max=(u,f)=>h.cmp(u,f)>0?u:f,this._min=(u,f)=>h.cmp(u,f)<0?u:f,this._IDBKeyRange=o._deps.IDBKeyRange})}(this),this.on("versionchange",o=>{o.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",o=>{!o.newVersion||o.newVersion<o.oldVersion?console.warn(`Dexie.delete('${this.name}') was blocked`):console.warn(`Upgrade '${this.name}' blocked by other connection holding version ${o.oldVersion/10}`)}),this._maxKey=Ze(n.IDBKeyRange),this._createTransaction=(o,l,d,c)=>new this.Transaction(o,l,d,this._options.chromeTransactionDurability,c),this._fireOnBlocked=o=>{this.on("blocked").fire(o),Ve.filter(l=>l.name===this.name&&l!==this&&!l._state.vcFired).map(l=>l.on("versionchange").fire(o))},this.use(Gs),this.use(Ws),this.use(Qs),this.use(Ys),this.vip=Object.create(this,{_vip:{value:!0}}),s.forEach(o=>o(this))}version(e){if(isNaN(e)||e<.1)throw new I.Type("Given version is not a positive number");if(e=Math.round(10*e)/10,this.idbdb||this._state.isBeingOpened)throw new I.Schema("Cannot add version when database is open");this.verno=Math.max(this.verno,e);const n=this._versions;var r=n.filter(s=>s._cfg.version===e)[0];return r||(r=new this.Version(e),n.push(r),n.sort(Fs),r.stores({}),this._state.autoSchema=!1,r)}_whenReady(e){return this.idbdb&&(this._state.openComplete||P.letThrough||this._vip)?e():new S((n,r)=>{if(this._state.openComplete)return r(new I.DatabaseClosed(this._state.dbOpenError));if(!this._state.isBeingOpened){if(!this._options.autoOpen)return void r(new I.DatabaseClosed);this.open().catch(O)}this._state.dbReadyPromise.then(n,r)}).then(e)}use({stack:e,create:n,level:r,name:s}){s&&this.unuse({stack:e,name:s});const i=this._middlewares[e]||(this._middlewares[e]=[]);return i.push({stack:e,create:n,level:r??10,name:s}),i.sort((a,o)=>a.level-o.level),this}unuse({stack:e,name:n,create:r}){return e&&this._middlewares[e]&&(this._middlewares[e]=this._middlewares[e].filter(s=>r?s.create!==r:!!n&&s.name!==n)),this}open(){return Vs(this)}_close(){const e=this._state,n=Ve.indexOf(this);if(n>=0&&Ve.splice(n,1),this.idbdb){try{this.idbdb.close()}catch{}this._novip.idbdb=null}e.dbReadyPromise=new S(r=>{e.dbReadyResolve=r}),e.openCanceller=new S((r,s)=>{e.cancelOpen=s})}close(){this._close();const e=this._state;this._options.autoOpen=!1,e.dbOpenError=new I.DatabaseClosed,e.isBeingOpened&&e.cancelOpen(e.dbOpenError)}delete(){const e=arguments.length>0,n=this._state;return new S((r,s)=>{const i=()=>{this.close();var a=this._deps.indexedDB.deleteDatabase(this.name);a.onsuccess=K(()=>{(function({indexedDB:o,IDBKeyRange:l},d){!An(o)&&d!==Ot&&In(o,l).delete(d).catch(O)})(this._deps,this.name),r()}),a.onerror=Q(s),a.onblocked=this._fireOnBlocked};if(e)throw new I.InvalidArgument("Arguments not allowed in db.delete()");n.isBeingOpened?n.dbReadyPromise.then(i):i()})}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 j(this._allTables).map(e=>this._allTables[e])}transaction(){const e=zs.apply(this,arguments);return this._transaction.apply(this,e)}_transaction(e,n,r){let s=P.trans;s&&s.db===this&&e.indexOf("!")===-1||(s=null);const i=e.indexOf("?")!==-1;let a,o;e=e.replace("!","").replace("?","");try{if(o=n.map(d=>{var c=d instanceof this.Table?d.name:d;if(typeof c!="string")throw new TypeError("Invalid table argument to Dexie.transaction(). Only Table or String are allowed");return c}),e=="r"||e===Bt)a=Bt;else{if(e!="rw"&&e!=Nt)throw new I.InvalidArgument("Invalid transaction mode: "+e);a=Nt}if(s){if(s.mode===Bt&&a===Nt){if(!i)throw new I.SubTransaction("Cannot enter a sub-transaction with READWRITE mode when parent transaction is READONLY");s=null}s&&o.forEach(d=>{if(s&&s.storeNames.indexOf(d)===-1){if(!i)throw new I.SubTransaction("Table "+d+" not included in parent transaction.");s=null}}),i&&s&&!s.active&&(s=null)}}catch(d){return s?s._promise(null,(c,h)=>{h(d)}):M(d)}const l=Tr.bind(null,this,a,o,s,r);return s?s._promise(a,l,"lock"):P.trans?Ne(P.transless,()=>this._whenReady(l)):this._whenReady(l)}table(e){if(!W(this._allTables,e))throw new I.InvalidTable(`Table ${e} does not exist`);return this._allTables[e]}}const Xs=typeof Symbol<"u"&&"observable"in Symbol?Symbol.observable:"@@observable";class Zs{constructor(e){this._subscribe=e}subscribe(e,n,r){return this._subscribe(e&&typeof e!="function"?e:{next:e,error:n,complete:r})}[Xs](){return this}}function Or(t,e){return j(e).forEach(n=>{It(t[n]||(t[n]=new ee),e[n])}),t}function ei(t){let e,n=!1;const r=new Zs(s=>{const i=_n(t);let a=!1,o={},l={};const d={get closed(){return a},unsubscribe:()=>{a=!0,pe.storagemutated.unsubscribe(f)}};s.start&&s.start(d);let c=!1,h=!1;function u(){return j(l).some(y=>o[y]&&Js(o[y],l[y]))}const f=y=>{Or(o,y),u()&&g()},g=()=>{if(c||a)return;o={};const y={},v=function(m){i&&Be();const p=()=>he(t,{subscr:m,trans:null}),_=P.trans?Ne(P.transless,p):p();return i&&_.then(ie,ie),_}(y);h||(pe(Xe,f),h=!0),c=!0,Promise.resolve(v).then(m=>{n=!0,e=m,c=!1,a||(u()?g():(o={},l=y,s.next&&s.next(m)))},m=>{c=!1,n=!1,s.error&&s.error(m),d.unsubscribe()})};return g(),d});return r.hasValue=()=>n,r.getValue=()=>e,r}let pn;try{pn={indexedDB:R.indexedDB||R.mozIndexedDB||R.webkitIndexedDB||R.msIndexedDB,IDBKeyRange:R.IDBKeyRange||R.webkitIDBKeyRange}}catch{pn={indexedDB:null,IDBKeyRange:null}}const ye=we;function vt(t){let e=ne;try{ne=!0,pe.storagemutated.fire(t)}finally{ne=e}}Ke(ye,{...ht,delete:t=>new ye(t,{addons:[]}).delete(),exists:t=>new ye(t,{addons:[]}).open().then(e=>(e.close(),!0)).catch("NoSuchDatabaseError",()=>!1),getDatabaseNames(t){try{return function({indexedDB:e,IDBKeyRange:n}){return An(e)?Promise.resolve(e.databases()).then(r=>r.map(s=>s.name).filter(s=>s!==Ot)):In(e,n).toCollection().primaryKeys()}(ye.dependencies).then(t)}catch{return M(new I.MissingAPI)}},defineClass:()=>function(t){V(this,t)},ignoreTransaction:t=>P.trans?Ne(P.transless,t):t(),vip:dn,async:function(t){return function(){try{var e=hn(t.apply(this,arguments));return e&&typeof e.then=="function"?e:S.resolve(e)}catch(n){return M(n)}}},spawn:function(t,e,n){try{var r=hn(t.apply(n,e||[]));return r&&typeof r.then=="function"?r:S.resolve(r)}catch(s){return M(s)}},currentTransaction:{get:()=>P.trans||null},waitFor:function(t,e){const n=S.resolve(typeof t=="function"?ye.ignoreTransaction(t):t).timeout(e||6e4);return P.trans?P.trans.waitFor(n):n},Promise:S,debug:{get:()=>X,set:t=>{cr(t,t==="dexie"?()=>!0:Er)}},derive:De,extend:V,props:Ke,override:rr,Events:ze,on:pe,liveQuery:ei,extendObservabilitySet:Or,getByKeyPath:se,setByKeyPath:Y,delByKeyPath:function(t,e){typeof e=="string"?Y(t,e,void 0):"length"in e&&[].map.call(e,function(n){Y(t,n,void 0)})},shallowClone:ar,deepClone:nt,getObjectDiff:Tn,cmp:H,asap:sr,minKey:nn,addons:[],connections:Ve,errnames:En,dependencies:pn,semVer:$n,version:$n.split(".").map(t=>parseInt(t)).reduce((t,e,n)=>t+e/Math.pow(10,2*n))}),ye.maxKey=Ze(ye.dependencies.IDBKeyRange),typeof dispatchEvent<"u"&&typeof addEventListener<"u"&&(pe(Xe,t=>{if(!ne){let e;Dt?(e=document.createEvent("CustomEvent"),e.initCustomEvent(ce,!0,!0,t)):e=new CustomEvent(ce,{detail:t}),ne=!0,dispatchEvent(e),ne=!1}}),addEventListener(ce,({detail:t})=>{ne||vt(t)}));let ne=!1;if(typeof BroadcastChannel<"u"){const t=new BroadcastChannel(ce);typeof t.unref=="function"&&t.unref(),pe(Xe,e=>{ne||t.postMessage(e)}),t.onmessage=e=>{e.data&&vt(e.data)}}else if(typeof self<"u"&&typeof navigator<"u"){pe(Xe,e=>{try{ne||(typeof localStorage<"u"&&localStorage.setItem(ce,JSON.stringify({trig:Math.random(),changedParts:e})),typeof self.clients=="object"&&[...self.clients.matchAll({includeUncontrolled:!0})].forEach(n=>n.postMessage({type:ce,changedParts:e})))}catch{}}),typeof addEventListener<"u"&&addEventListener("storage",e=>{if(e.key===ce){const n=JSON.parse(e.newValue);n&&vt(n.changedParts)}});const t=self.document&&navigator.serviceWorker;t&&t.addEventListener("message",function({data:e}){e&&e.type===ce&&vt(e.changedParts)})}S.rejectionMapper=function(t,e){if(!t||t instanceof Oe||t instanceof TypeError||t instanceof SyntaxError||!t.name||!Bn[t.name])return t;var n=new Bn[t.name](e||t.message,t);return"stack"in t&&re(n,"stack",{get:function(){return this.inner.stack}}),n},cr(X,Er);const Rr=async(t,e)=>{const n=performance.now();try{await t()}finally{const r=performance.now()-n;let s=b.PerformanceMetrics[e];s||(s=b.registerMetric(e)),s.report(r/1e3)}},Kr=(t,e)=>{const n=performance.now();try{t()}finally{const r=performance.now()-n;let s=b.PerformanceMetrics[e];s||(s=b.registerMetric(e)),s.report(r/1e3)}},ti=30,ni=3e4;let Ue=0;const Br=()=>{b.sessionStorageHelper.setItem("sprig.disableReplayRecording","disabled")},Ee=()=>!!b.sessionStorageHelper.getItem("sprig.disableReplayRecording"),ri=["did not allow mutations","called in an invalid security context"],si=t=>{if(!t)return!0;for(const e of ri)if(t.toLowerCase().includes(e))return!1;return!0},ii=(t,e,{reportError:n=!0,extraInfo:r})=>{Ee()||e instanceof Error&&(Br(),si(e==null?void 0:e.message)&&(n&&window.UserLeap.reportError(t,e,r),li()))},ai=async(t,e,{reportError:n}={reportError:!0})=>{var s;let r;try{if(n&&((s=window.navigator.storage)!=null&&s.estimate)){const{quota:i,usage:a}=await window.navigator.storage.estimate();r={availableSpaceInMB:i&&a?(i-a)/(1024*1024):void 0,quota:i,usage:a}}}catch(i){window.UserLeap.reportError("Error getting storage estimate",i,{originalMessage:t,originalError:e})}ii(t,e,{reportError:n,extraInfo:r})},oi=()=>{const t=b.sessionStorageHelper.getItem("sprig.sessionId");if(t)return b.info(`Found saved session id: ${t}`),b.sessionStorageHelper.removeItem("sprig.sessionId"),t;const e=b.v4();return b.info(`Generating new uuid: ${e}`),e},L=oi();window.addEventListener("beforeunload",()=>{b.info(`Before page unload saving session id: ${L}`),b.sessionStorageHelper.setItem("sprig.sessionId",L)});const li=async()=>{A.transaction("rw",A.events,A.chunkUploads,A.pendingCaptures,()=>{A.events.clear(),A.chunkUploads.clear(),A.pendingCaptures.clear()}).catch(()=>{})},Ft=(t,e,n=()=>!0)=>A.table(e).where("timestamp").below(t).and(n).delete(),ci=async(t,e)=>{let n=[];return await Rr(async()=>{n=await A.events.where("[sessionId+timestamp]").between([L,t],[L,e??Date.now()]).toArray()},"sdk_replay_get_events_between_seconds"),n},ui=(t,e,n)=>{const r=new Date,s=r.setMinutes(r.getMinutes()+(n??ti));return A.events.where("[sessionId+timestamp]").between([L,t],[L,e]).modify({expiredAt:s})},di=t=>A.chunkUploads.add({...t,sessionId:t.sessionId??L}),hi=(t,e)=>A.chunkUploads.update(t,{data:null,etag:e,status:"UploadComplete"}),fi=({status:t,uploadId:e})=>e?A.chunkUploads.where({uploadId:e,status:t}).toArray():A.chunkUploads.where({sessionId:L,status:t}).toArray(),pi=t=>A.chunkUploads.where({uploadId:t,status:"UploadComplete"}).toArray(),mi=t=>A.chunkUploads.where({uploadId:t,status:"UploadComplete"}).delete(),yi=t=>A.pendingCaptures.add({...t,sessionId:t.sessionId??L,canUpload:!1}),Nr=async t=>{let e=await A.pendingCaptures.where("sessionId").equals(L).toArray();return t.beforePresent&&(e=e.filter(n=>n.targetTimestamp<Date.now())),t.isHeatmap&&(e=e.filter(n=>n.captureParams.isHeatmap??!1)),e},gi=()=>A.pendingCaptures.where("sessionId").equals(L).toArray(),vi=t=>A.pendingCaptures.where("sessionId").equals(L).and(e=>e.captureParams.responseGroupId===t).modify({canUpload:!0}),bi=async t=>{var e;if((e=window.navigator.storage)!=null&&e.estimate){const{quota:n,usage:r}=await window.navigator.storage.estimate();if(n&&r&&(n-r)/1073741824<t)return!1}return!0},jr=async t=>{if(parseInt(b.sessionStorageHelper.getItem("sprig.pendingCount")??"0")===0)return;const n=Date.now();return ae(async()=>{await A.pendingCaptures.where("sessionId").equals(L).and(r=>r.captureParams.isHeatmap??!1).and(r=>t?t.includes(r.uuid):!0).modify(r=>{r.targetTimestamp=n,r.captureParams.triggerTimestamp=n,r.captureParams.replayParams.replayDurationSeconds=Math.floor((n-r.timestamp)/1e3)})},"Error marking pending heatmaps ready")},wi=async()=>{const e=(await Nr({isHeatmap:!0})).map(r=>({eventId:r.captureParams.eventId,uuid:r.uuid})),n=[];e.forEach(({eventId:r,uuid:s})=>{b.checkUrlStillMatching(r)||n.push(s)}),n.length&&jr(n)},_i=t=>{if(t>1){Ue=0;return}const e=Date.now();if(!Ue){Ue=e;return}e-Ue>=ni&&(jr(),Ue=0)};class ki extends we{constructor(){super("replayStorage",{autoOpen:!1});Pe(this,"events");Pe(this,"chunkUploads");Pe(this,"pendingCaptures")}}const A=new ki;A.version(1).stores({events:"uuid, timestamp, [sessionId+timestamp]",chunkUploads:"uuid, timestamp, [sessionId+status], [uploadId+status], [sessionId+status+uploadId]",pendingCaptures:"uuid, timestamp, [sessionId+targetTimestamp]"});A.open().catch(t=>{b.error(`Error opening replay storage: ${JSON.stringify(t)}`),Br()});const Ei=t=>{if(t instanceof Attr)return null;let e=1;for(let n=t.previousSibling;n;n=n.previousSibling)n.nodeName===t.nodeName&&++e;return e},Mr=t=>{if(t===null)return"";const e=[];if(t instanceof Document)return"/";for(let n=t;n&&!(n instanceof Document)&&n!==null;n=n instanceof Attr?n.ownerElement:n.parentElement){const r=e[e.length]={name:void 0,position:null};switch(n.nodeType){case Node.TEXT_NODE:r.name="text()";break;case Node.ATTRIBUTE_NODE:r.name="@"+n.nodeName;break;case Node.PROCESSING_INSTRUCTION_NODE:r.name="processing-instruction()";break;case Node.COMMENT_NODE:r.name="comment()";break;case Node.ELEMENT_NODE:r.name=n.nodeName;break}r.position=Ei(n)}return"/"+e.reverse().map(n=>n.position!==null?`/${n.name}[${n.position}]`:`/${n.name}`).join("")},ue={capture:!0,passive:!0},xi=["a","button","input","option","li","link"],Si=["Escape","Enter","Backspace","F5","Tab"];let At=!1;const Ci=["label","type","role","title","placeholder","errormessage","valuetext","href"],Gn="aria-",Pi=t=>{if(!t.tagName)return"No tagName";const e=t.getAttribute("type");return e?`${e} ${t.tagName.toLowerCase()}`:t.tagName.toLowerCase()},Wn=t=>{var r;if(((r=t.tagName)==null?void 0:r.toLowerCase())==="html")return{element:"html"};const e=t.textContent,n=e?{text:e}:{};n.element=Pi(t);for(const s of t.attributes){let i=s.name;const a=s.value;i.startsWith(Gn)&&(i=i.substring(Gn.length)),Ci.includes(i)&&(n[i]=a)}return n},Ii=t=>{var s;if(!t)return{};const n={...Wn(t)},r=t.parentElement;if(r&&xi.includes((s=r.tagName)==null?void 0:s.toLowerCase())){const i=Wn(r);Object.assign(n,i)}return n},$r=(t,e)=>{var n;es({x:e.x,y:e.y,type:t,elementAttributes:Ii(e.target),windowHeight:window.innerHeight,windowWidth:window.innerWidth,...e.target instanceof HTMLElement?{rect:(n=e.target)==null?void 0:n.getBoundingClientRect(),xPath:Mr(e.target)}:{}})},Ai=t=>e=>$r(t,e),Ur=t=>{Si.includes(t.key)&&rs({key:t.key})},Ti=()=>{window.performance.getEntriesByType("navigation").map(e=>e.type).includes("reload")&&ts({url:window.location.href,currentPageTitle:document.title})},Di=()=>{window.performance.getEntriesByType("navigation").map(e=>e.type).includes("back_forward")&&ns({curUrl:window.location.href,fromUrl:document.referrer,currentPageTitle:document.title})},Oi=(t,e)=>{let n;return r=>{clearTimeout(n),n=window.setTimeout(()=>t(r),e)}},Ri=t=>{if(!(t.target instanceof HTMLElement||t.target instanceof Document))return;let e=t.target;"scrollTop"in e||(e=e.documentElement),ss({xPath:Mr(e),x:e.scrollLeft,y:e.scrollTop,elementAttributes:{targetScrollWidth:e.scrollWidth,targetClientWidth:e.clientWidth,targetScrollHeight:e.scrollHeight,targetClientHeight:e.clientHeight}})},Fr=Oi(Ri,750),Lr=Ai("left_click"),qr=t=>{t.button===2&&$r("right_click",t)},Ki=()=>{At||(window.addEventListener("click",Lr,ue),window.addEventListener("mousedown",qr,ue),window.addEventListener("keydown",Ur,ue),window.addEventListener("scroll",Fr,ue),At=!0,Ti(),Di())},Bi=()=>{At&&(window.removeEventListener("click",Lr,ue),window.removeEventListener("mousedown",qr,ue),window.removeEventListener("keydown",Ur,ue),window.removeEventListener("scroll",Fr,ue),At=!1)},Ni=async(t,e,n)=>new Promise((r,s)=>{const i=t.createElement("script");i.src=e,i.onload=r,i.onerror=s,n&&(i.nonce=n),t.head.appendChild(i)});let Yn=1,mn=5e3,bt=6e4;const ji=5,Jn=1e3,Hr=30,Tt=Hr+ji;let yn,gn,Vr,Qn=Date.now(),tt=!1,wt;const zr={},Mi=async({viewDocument:t,maxReplayDurationSeconds:e,replayNonce:n,maxInflightRequests:r=2,replaySettings:s,teardownAfter:i=!1})=>{tt||(i&&b.sessionStorageHelper.setItem("sprig.teardownAfterCapture","true"),await ae(async()=>{if(Ee()){b.info("Not initializing replay because recording is disabled");return}if(!e){b.info("Not initializing replay because config didn't specify maxReplayDurationSeconds");return}if(s!=null&&s.minAvailableGb&&(Yn=s.minAvailableGb),!await bi(Yn)){b.warn("Minimum storage not available");return}if(b.info("Initializing replay"),s!=null&&s.minDuration&&(mn=s.minDuration),s!=null&&s.batchDuration&&(bt=s.batchDuration),ls(r),Vi(),Fi(e+Tt,30*60,e+Tt),Li(),!window.rrwebRecord){b.info("Loading recording script");const d=window.UserLeap.replayLibraryURL??"https://cdn.sprig.com/dependencies/record-2.0.0-alpha.6.min.js";await Ni(t,d,n),b.info("Recording script finished loading")}const a=window.rrwebRecord;if(!a){b.warn("Record script failed to set global function");return}let o=!0,l=0;wt=a({checkoutEveryNms:Hr*1e3,sampling:{input:"last",scroll:250,media:800},emit:(d,c)=>{if(Ee())return;if(Qn=Date.now(),c&&d.type===Lt.Meta)l=performance.now();else if(c&&l&&d.type===Lt.FullSnapshot){const u=performance.now()-l;b.reportAndRegister("sdk_replay_snapshot_seconds",u/1e3)}const h=o||!!c;o=!1,$i({uuid:b.v4(),event:JSON.stringify(d),isValidStart:h,timestamp:Date.now()})},...s}),tt=!0,gn||(gn=window.setInterval(()=>{Date.now()-Qn>Jn&&J("Sprig_Noop",{})},Jn)),b.eventEmitter.on("survey.complete",d=>{Zr({id:d,userAgent:window.navigator.userAgent})}),Ki()},"Error initializing replay"))};let de=b.sessionStorageHelper.getItem("sprig.pendingCount"),On=!!b.sessionStorageHelper.getItem("sprig.isCapturingHeatmap"),vn=!1,bn=[];const $i=t=>{var e,n,r,s;if((e=t.event)!=null&&e.includes("Sprig_Scroll")){const i=(s=(r=(n=JSON.parse(t.event))==null?void 0:n.data)==null?void 0:r.payload)==null?void 0:s.xPath;if(!i)return;const a=b.v4();zr[i]=a,t.uuid=a}bn.push(t),vn||Ui()},Gr=t=>{const e=t.map(n=>({...n,sessionId:n.sessionId??L}));if(On&&_i(e.length),e.length!==0)return A.transaction("rw",A.events,()=>{A.events.bulkAdd(e)}).catch(n=>{je("Error storing replay events",n)})},Ui=()=>{vn=!0,setTimeout(async()=>{if(Ee())return;const t=bn;bn=[],vn=!1,Kr(async()=>{await Gr(t)},"sdk_replay_add_event_batch_seconds")},500)},Fi=(t=6*60,e=30*60,n=4*60)=>{yn=window.setInterval(()=>{const r=Date.now();Ee()||(b.debug(`Performing periodic replay data cleanup / Event Seconds ${t} / Chunk Seconds ${e} / Pending Capture Seconds ${n}`),Rr(()=>A.transaction("rw!",A.events,A.chunkUploads,A.pendingCaptures,()=>{Ft(r-t*1e3,"events",s=>s.expiredAt===void 0||s.expiredAt<r-t*1e3),Ft(r-e*1e3,"chunkUploads"),Ft(r-n*1e3,"pendingCaptures",s=>s.canUpload===void 0||s.canUpload===!1)}).catch(s=>{clearInterval(yn),je("Error deleting table rows",s)}),"sdk_replay_cleanup_seconds"),b.info("Cleanup complete"))},30*1e3)},Li=(t=5)=>{Vr=window.setInterval(async()=>{ae(async()=>{const e=parseInt(de??"0");if(e===0)return;const n=await Nr({beforePresent:!0});n!=null&&n.length&&(await Promise.all(n.map(async r=>(await A.pendingCaptures.delete(r.uuid),Jr(r.captureParams,r.canUpload)))),de=(e-n.length).toString(),b.sessionStorageHelper.setItem("sprig.pendingCount",de))},"Error initiating pending captures")},t*1e3)},qi=async(t,e,n,r,s)=>{const i=Math.min(t+s,n),a=`from: ${new Date(t).toLocaleTimeString()} to ${new Date(i).toLocaleTimeString()}`;b.info(`Getting event batch ${a}`);const o=await ci(t,i);if(!(o!=null&&o.length))return b.info(`No events found ${a}`),{validStartFound:r,events:[]};if(!r){b.info(`Searching for valid start in ${o.length} events ${a}`);let l=-1;if(o==null||o.forEach((c,h)=>{if(!c.isValidStart)return;const u=c.timestamp<=e;(l<0||u)&&(l=h)}),l<0)return b.info(`No valid start found in ${o.length} events ${a}`),{validStartFound:r,events:[]};const d=o[l].timestamp;return b.info(`Found valid start at: ${new Date(d).toLocaleTimeString()} in events ${a}`),{validStartFound:!0,events:o==null?void 0:o.slice(l)}}return{validStartFound:r,events:o}},Hi=(t,e,n)=>{const r=t.length,s=e*1024*1024,i=Math.ceil(r/n),a=Math.max(s,i);b.info(`Total file bytes: ${r} / target chunk size: ${a}`);const o=[];let l=0;for(;l<r;)o.push(t.slice(l,l+a)),l+=a;return o},Wr=t=>Promise.all(t.map(async e=>{const n=await cs(e);return await hi(e.uuid,n),e.uploadId})),Yr=async t=>{b.info(`Marking upload complete if finished: ${t}`);const e=await pi(t);if(!(e!=null&&e.length)){b.info(`No finished chunks found for upload: ${t}`);return}const n=e.reduce((i,a)=>(i.find(o=>o.chunkIndex===a.chunkIndex)||i.push(a),i),[]);n.sort((i,a)=>i.chunkIndex-a.chunkIndex);const r=n.map(i=>({ETag:i.etag,PartNumber:i.chunkIndex})).filter(i=>i.ETag!==null),s=n[0];await tr({apiUrl:s.apiUrl,surveyId:s.surveyId,uploadId:t,responseGroupUuid:s.responseGroupId,etags:r,headers:s.completeUploadHeaders,replayDuration:s.replayDuration}),b.info(`Cleaning up chunks for ${t}`),await mi(t),b.info(`Done cleaning up chunks for ${t}`)},Vi=async()=>{ae(async()=>{const t=await fi({status:"ReadyForUpload"});if(!(t!=null&&t.length))return;const e=await Wr(t);b.info(`Finished uploading unfinished chunks for ${e}`),e!=null&&e.length&&await Promise.all(e.map(n=>{if(n)return Yr(n)}))},"Error uploading unfinished chunks")},zi=async(t,e)=>{await Wr(e),b.info(`Done uploading chunks for uploads: ${t.join(",")}`),await Promise.all(t.map(n=>Yr(n)))},Gi=t=>{let e=0;t.forEach(s=>{e+=s.length});const n=new Uint8Array(e);let r=0;return t.forEach(s=>{n.set(s,r),r+=s.length}),n},Xn=async(t,e,n)=>{const r=new TextEncoder;let s=null,i=null,a=null,o=!1,l=!1,[d,c]=[0,0];const h=t-Tt*1e3,u=[];let f=[];b.info(`Getting events between ${new Date(t).toLocaleTimeString()} and ${new Date(e).toLocaleTimeString()}`),b.info(`Using batch duration: ${bt}ms`);for(let y=h;y<e;y+=bt){if({validStartFound:l,events:f}=await qi(y,t,e,l,bt),!(f!=null&&f.length)){b.info("No events found");continue}d===0&&(d=f[0].timestamp),c=f[f.length-1].timestamp,b.info(`Last event time in batch: ${new Date(c).toLocaleTimeString()}`);const v=`${o?",":"["}${f.map(p=>p.event).join(",")}`,m=r.encode(v);n&&i===null&&(b.debug("Attempting compression"),a=new window.CompressionStream("gzip"),i=a.writable.getWriter()),Kr(()=>{n&&i?i.write(m):u.push(m)},"sdk_replay_compression_seconds"),o=!0}if(c-d<mn)return b.info(`Replay duration is shorter than minimum of ${mn}ms / Start:${d} / End:${c}`),null;const g=r.encode("]");return b.debug("Writing final close brace"),i&&a?(i.write(g),i.close(),s=new Uint8Array(await new Response(a.readable).arrayBuffer())):(u.push(g),s=Gi(u)),b.info("Finished generating file data"),s},Wi=async(t,e)=>{const n=window.CompressionStream!==void 0;let r=null;const s=e??Date.now(),i=s-t;try{r=await Xn(i,s,n)}catch(a){a instanceof Error&&window.UserLeap.reportError("Error compressing replay",a),n&&ae(async()=>{await Xn(i,s,!1)},"fileData fallback failed")}return r},Zn=async t=>{const{surveyId:e,responseGroupId:n,visitorId:r,apiUrl:s,completeUploadHeaders:i,replayParams:a,triggerTimestamp:o}=t,l=await Wi(a.replayDurationSeconds*1e3,o);if(l!=null&&l.length)b.info(`Found file data for survey: ${e}`);else{b.info(`File data is empty for survey: ${e}`);return}const d=Hi(l,a.minimumChunkSizeMb,a.signedUrls.length);b.info(`Got ${d.length} chunks for survey: ${e}`);const c=await Promise.all(d.map(async(h,u)=>{const f=b.v4(),g={apiUrl:s,chunkIndex:u+1,completeUploadHeaders:i,etag:null,responseGroupId:n,status:"ReadyForUpload",surveyId:e,timestamp:o,totalChunks:d.length,data:h,uploadId:a.uploadId,uploadUrl:a.signedUrls[u].url,uuid:f,visitorId:r};return b.info(`Recording chunk upload: ${JSON.stringify({index:g.chunkIndex,surveyId:g.surveyId,uploadId:g.uploadId,size:h.length,id:f},null,2)}`),await di(g),b.info(`Done creating chunk upload: ${f}`),g}));b.info(`All chunk records created. Beginning upload for survey: ${e}`),await zi([a.uploadId],c)},Jr=async(t,e)=>{if(b.info(`Attempting replay capture: ${JSON.stringify({isStandalone:t.isStandalone,duration:t.replayParams.replayDurationSeconds,type:t.replayParams.replayDurationType,responseGroupId:t.responseGroupId,surveyId:t.surveyId,triggerTimestamp:t.triggerTimestamp,visitorId:t.visitorId},null,2)}`),Ee()){b.info(`Replay recording is disabled: ${t.surveyId}`);return}b.info(`Replay recording enabled: ${t.surveyId}`);const{isHeatmap:n,isStandalone:r,replayParams:s,triggerTimestamp:i,responseGroupId:a}=t,o=async()=>{setTimeout(()=>b.eventEmitter.removeListener(b.SprigEvent.QuestionAnswered,o),0),ae(async()=>{s.replayDurationType==="before"?await Zn(t):await vi(a)},"Error in schedule/capture callback")};ae(async()=>{if(s.replayDurationType==="after"||s.replayDurationType==="beforeAndAfter"){!r&&!n&&(b.info("Attaching QuestionAnswered listener for non-standalone replay"),b.eventEmitter.on(b.SprigEvent.QuestionAnswered,o)),b.info(`Scheduling capture for replay of type: ${s.replayDurationType}`),await Xr(t);return}if(r||n||e)b.info(`Proceeding to capture replay for survey: ${t.surveyId} / standalone? ${r} / canUpload? ${e}`),await Zn(t),n&&Yi();else{const d=Tt+s.replayDurationSeconds,c=i-d*1e3,h=i;b.info(`Setting expiry minutes to ${s.expirationTimeLimitMinutes} for events from ${new Date(c).toLocaleTimeString()} to ${new Date(h).toLocaleTimeString()}`),await ui(c,h,s.expirationTimeLimitMinutes),b.info("Attaching QuestionAnswered listener"),b.eventEmitter.on(b.SprigEvent.QuestionAnswered,o)}},"Error in scheduling/capturing replay")},Yi=async()=>{parseInt(de??"0")||(b.sessionStorageHelper.removeItem("sprig.isCapturingHeatmap"),On=!1),b.sessionStorageHelper.getItem("sprig.teardownAfterCapture")&&(Rn(),Qr(),b.sessionStorageHelper.removeItem("sprig.teardownAfterCapture"))},Qr=()=>{if(Ee()){b.debug("Not clearing user data, replay is disabled");return}return A.transaction("rw",A.events,A.pendingCaptures,()=>{A.events.where("sessionId").equals(L).delete(),A.pendingCaptures.where("sessionId").equals(L).delete()}).catch(t=>{je("Error clearing session event data",t)})},Xr=async t=>{b.info(`Scheduling replay capture: ${JSON.stringify(t)}`);const{isHeatmap:e,surveyId:n}=t,r=await gi(),s=r==null?void 0:r.filter(o=>o.captureParams.surveyId===n);if(s!=null&&s.length){b.info(`Pending capture exists for survey: ${n}`);return}e&&(On=!0,b.sessionStorageHelper.setItem("sprig.isCapturingHeatmap","true"));const i={...t,replayParams:{...t.replayParams}};t.replayParams.replayDurationType==="beforeAndAfter"&&(i.replayParams.replayDurationSeconds*=2),i.replayParams.replayDurationType="before";const a=t.triggerTimestamp+t.replayParams.replayDurationSeconds*1e3;return i.triggerTimestamp=a,de=de?(parseInt(de)+1).toString():"1",b.sessionStorageHelper.setItem("sprig.pendingCount",de),yi({uuid:b.v4(),targetTimestamp:a,timestamp:Date.now(),captureParams:i})},J=(t,e)=>{var n,r;if(tt)try{(r=(n=window.rrwebRecord)==null?void 0:n.addCustomEvent)==null||r.call(n,t,e)}catch(s){je("Error recording custom event",s)}},ae=async(t,e)=>{try{await t()}catch(n){je(e,n)}},Ji=t=>{t.description&&(t.description=Kn(t.description)),J("Sprig_PageView",t)},Qi=t=>{J("Sprig_TrackEvent",t)},Xi=t=>{J("Sprig_ShowSurvey",t)},Zr=t=>{J("Sprig_SubmitSurvey",t)},es=t=>{var e;(e=t==null?void 0:t.elementAttributes)!=null&&e.text&&(t.elementAttributes.text=Kn(t.elementAttributes.text)),J("Sprig_Click",t)},ts=t=>{J("Sprig_Refresh",t)},ns=t=>{t.currentPageTitle&&(t.currentPageTitle=Kn(t.currentPageTitle)),J("Sprig_BackForward",t)},rs=t=>{J("Sprig_Keystroke",t)},ss=async t=>{const{x:e,xPath:n,y:r}=t,s=zr[n];s?ae(async()=>{var a,o,l,d;const i=await A.events.get(s);if(i!=null&&i.event){const c=JSON.parse(i.event),h=e>((o=(a=c.data)==null?void 0:a.payload)==null?void 0:o.x)||0,u=r>((d=(l=c.data)==null?void 0:l.payload)==null?void 0:d.y)||0;if(!(h||u))return;h&&(c.data.payload.x=e),u&&(c.data.payload.y=r),c.data.payload.elementAttributes=t.elementAttributes,i.event=JSON.stringify(c),A.events.put(i)}else J("Sprig_Scroll",t)},"Error updating scroll event"):J("Sprig_Scroll",t)},Rn=()=>{wt&&(wt(),wt=void 0),tt=!1,[yn,gn,Vr].forEach(t=>{t&&clearInterval(t)}),Bi()},je=(t,e,{reportError:n}={reportError:!0})=>(Rn(),b.error(`${t} - ${JSON.stringify(e)}`),ai(t,e,{reportError:n})),Zi=()=>tt,Kn=t=>t&&t.trim().substring(0,500).replace(/\s\s+/g," ").replace(/\r?\n|\r/g," ").substring(0,250),ea=async({surveyId:t,responseGroupUuid:e,eventDigest:n,headers:r})=>{if(!t||!e)return!1;const s=window.UserLeap._API_URL;try{const i=await tr({surveyId:t,responseGroupUuid:e,eventDigest:n,apiUrl:s,headers:r},!0);return!(i!=null&&i.error)}catch(i){return console.warn("[Sprig] Error with completing session replay"),i instanceof Error&&window.UserLeap.reportError("completeSessionReplay",i),!1}},ta=Object.freeze(Object.defineProperty({__proto__:null,RecordBackForward:ns,RecordClick:es,RecordEvent:Qi,RecordKeystroke:rs,RecordPageView:Ji,RecordRefresh:ts,RecordScroll:ss,RecordSurveyComplete:Zr,RecordSurveyShown:Xi,_completeSessionReplay:ea,batchStoreEvents:Gr,checkPendingHeatmapsUrl:wi,clearUserReplayData:Qr,disableRecording:je,initializeReplay:Mi,isReplayRecording:Zi,scheduleCapture:Xr,scheduleOrCaptureReplay:Jr,teardownReplay:Rn,tryReplayAction:ae},Symbol.toStringTag,{value:"Module"}));b.registerReplay(ta);
|
|
5
|
+
`)}function Et(t,e,n,r){this._e=xe(),this.failures=e,this.failedKeys=r,this.successCount=n,this.message=hr(t,e)}function He(t,e){this._e=xe(),this.name="BulkError",this.failures=Object.keys(e).map(n=>e[n]),this.failuresByPos=e,this.message=hr(t,e)}Re(Oe).from(Error).extend({stack:{get:function(){return this._stack||(this._stack=this.name+": "+this.message+zt(this._e,2))}},toString:function(){return this.name+": "+this.message}}),Re(Et).from(Oe),Re(He).from(Oe);var En=kn.reduce((t,e)=>(t[e]=e+"Error",t),{});const bs=Oe;var I=kn.reduce((t,e)=>{var n=e+"Error";function r(s,i){this._e=xe(),this.name=n,s?typeof s=="string"?(this.message=`${s}${i?`
|
|
6
|
+
`+i:""}`,this.inner=i||null):typeof s=="object"&&(this.message=`${s.name} ${s.message}`,this.inner=s):(this.message=vs[e]||n,this.inner=null)}return Re(r).from(bs),t[e]=r,t},{});I.Syntax=SyntaxError,I.Type=TypeError,I.Range=RangeError;var Bn=dr.reduce((t,e)=>(t[e+"Error"]=I[e],t),{}),ft=kn.reduce((t,e)=>(["Syntax","Type","Range"].indexOf(e)===-1&&(t[e+"Error"]=I[e]),t),{});function R(){}function Je(t){return t}function ws(t,e){return t==null||t===Je?e:function(n){return e(t(n))}}function _e(t,e){return function(){t.apply(this,arguments),e.apply(this,arguments)}}function _s(t,e){return t===R?e:function(){var n=t.apply(this,arguments);n!==void 0&&(arguments[0]=n);var r=this.onsuccess,s=this.onerror;this.onsuccess=null,this.onerror=null;var i=e.apply(this,arguments);return r&&(this.onsuccess=this.onsuccess?_e(r,this.onsuccess):r),s&&(this.onerror=this.onerror?_e(s,this.onerror):s),i!==void 0?i:n}}function ks(t,e){return t===R?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?_e(n,this.onsuccess):n),r&&(this.onerror=this.onerror?_e(r,this.onerror):r)}}function Es(t,e){return t===R?e:function(n){var r=t.apply(this,arguments);V(n,r);var s=this.onsuccess,i=this.onerror;this.onsuccess=null,this.onerror=null;var a=e.apply(this,arguments);return s&&(this.onsuccess=this.onsuccess?_e(s,this.onsuccess):s),i&&(this.onerror=this.onerror?_e(i,this.onerror):i),r===void 0?a===void 0?void 0:a:V(r,a)}}function xs(t,e){return t===R?e:function(){return e.apply(this,arguments)!==!1&&t.apply(this,arguments)}}function xn(t,e){return t===R?e:function(){var n=t.apply(this,arguments);if(n&&typeof n.then=="function"){for(var r=this,s=arguments.length,i=new Array(s);s--;)i[s]=arguments[s];return n.then(function(){return e.apply(r,i)})}return e.apply(this,arguments)}}ft.ModifyError=Et,ft.DexieError=Oe,ft.BulkError=He;var Qe={};const fr=100,[Gt,xt,Wt]=typeof Promise>"u"?[]:(()=>{let t=Promise.resolve();if(typeof crypto>"u"||!crypto.subtle)return[t,Ye(t),t];const e=crypto.subtle.digest("SHA-512",new Uint8Array([0]));return[e,Ye(e),t]})(),pr=xt&&xt.then,pt=Gt&&Gt.constructor,Sn=!!Wt;var Yt=!1,Ss=Wt?()=>{Wt.then(it)}:O.setImmediate?setImmediate.bind(null,it):O.MutationObserver?()=>{var t=document.createElement("div");new MutationObserver(()=>{it(),t=null}).observe(t,{attributes:!0}),t.setAttribute("i","1")}:()=>{setTimeout(it,0)},Ve=function(t,e){qe.push([t,e]),St&&(Ss(),St=!1)},Jt=!0,St=!0,ve=[],mt=[],Qt=null,Xt=Je,Ke={id:"global",global:!0,ref:0,unhandleds:[],onunhandled:Mn,pgp:!1,env:{},finalize:function(){this.unhandleds.forEach(t=>{try{Mn(t[0],t[1])}catch{}})}},P=Ke,qe=[],be=0,yt=[];function S(t){if(typeof this!="object")throw new TypeError("Promises must be constructed via new");this._listeners=[],this.onuncatched=R,this._lib=!1;var e=this._PSD=P;if(X&&(this._stackHolder=xe(),this._prev=null,this._numPrev=0),typeof t!="function"){if(t!==Qe)throw new TypeError("Not a function");return this._state=arguments[1],this._value=arguments[2],void(this._state===!1&&en(this,this._value))}this._state=null,this._value=null,++e.ref,yr(this,t)}const Zt={get:function(){var t=P,e=Ct;function n(r,s){var i=!t.global&&(t!==P||e!==Ct);const a=i&&!ie();var o=new S((l,d)=>{Cn(this,new mr(Pt(r,t,i,a),Pt(s,t,i,a),l,d,t))});return X&&br(o,this),o}return n.prototype=Qe,n},set:function(t){re(this,"then",t&&t.prototype===Qe?Zt:{get:function(){return t},set:Zt.set})}};function mr(t,e,n,r,s){this.onFulfilled=typeof t=="function"?t:null,this.onRejected=typeof e=="function"?e:null,this.resolve=n,this.reject=r,this.psd=s}function yr(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&&rt();n&&typeof n.then=="function"?yr(t,(s,i)=>{n instanceof S?n._then(s,i):n.then(s,i)}):(t._state=!0,t._value=n,gr(t)),r&&st()}},en.bind(null,t))}catch(n){en(t,n)}}function en(t,e){if(mt.push(e),t._state===null){var n=t._lib&&rt();e=Xt(e),t._state=!1,t._value=e,X&&e!==null&&typeof e=="object"&&!e._promise&&function(r,s,i){try{r.apply(null,i)}catch{}}(()=>{var r=wn(e,"stack");e._promise=t,re(e,"stack",{get:()=>Yt?r&&(r.get?r.get.apply(e):r.value):t.stack})}),function(r){ve.some(s=>s._value===r._value)||ve.push(r)}(t),gr(t),n&&st()}}function gr(t){var e=t._listeners;t._listeners=[];for(var n=0,r=e.length;n<r;++n)Cn(t,e[n]);var s=t._PSD;--s.ref||s.finalize(),be===0&&(++be,Ve(()=>{--be==0&&Pn()},[]))}function Cn(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,++be,Ve(Cs,[n,t,e])}else t._listeners.push(e)}function Cs(t,e,n){try{Qt=e;var r,s=e._value;e._state?r=t(s):(mt.length&&(mt=[]),r=t(s),mt.indexOf(s)===-1&&function(i){for(var a=ve.length;a;)if(ve[--a]._value===i._value)return void ve.splice(a,1)}(e)),n.resolve(r)}catch(i){n.reject(i)}finally{Qt=null,--be==0&&Pn(),--n.psd.ref||n.psd.finalize()}}function vr(t,e,n){if(e.length===n)return e;var r="";if(t._state===!1){var s,i,a=t._value;a!=null?(s=a.name||"Error",i=a.message||a,r=zt(a,0)):(s=a,i=""),e.push(s+(i?": "+i:"")+r)}return X&&((r=zt(t._stackHolder,2))&&e.indexOf(r)===-1&&e.push(r),t._prev&&vr(t._prev,e,n)),e}function br(t,e){var n=e?e._numPrev+1:0;n<100&&(t._prev=e,t._numPrev=n)}function it(){rt()&&st()}function rt(){var t=Jt;return Jt=!1,St=!1,t}function st(){var t,e,n;do for(;qe.length>0;)for(t=qe,qe=[],n=t.length,e=0;e<n;++e){var r=t[e];r[0].apply(null,r[1])}while(qe.length>0);Jt=!0,St=!0}function Pn(){var t=ve;ve=[],t.forEach(r=>{r._PSD.onunhandled.call(null,r._value,r)});for(var e=yt.slice(0),n=e.length;n;)e[--n]()}function at(t){return new S(Qe,!1,t)}function K(t,e){var n=P;return function(){var r=rt(),s=P;try{return fe(n,!0),t.apply(this,arguments)}catch(i){e&&e(i)}finally{fe(s,!1),r&&st()}}}Be(S.prototype,{then:Zt,_then:function(t,e){Cn(this,new mr(null,null,t,e,P))},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):at(r)):this.then(null,r=>r&&r.name===e?n(r):at(r))},finally:function(t){return this.then(e=>(t(),e),e=>(t(),at(e)))},stack:{get:function(){if(this._stack)return this._stack;try{Yt=!0;var t=vr(this,[],20).join(`
|
|
7
|
+
From previous: `);return this._state!==null&&(this._stack=t),t}finally{Yt=!1}}},timeout:function(t,e){return t<1/0?new S((n,r)=>{var s=setTimeout(()=>r(new I.Timeout(e)),t);this.then(n,r).finally(clearTimeout.bind(null,s))}):this}}),typeof Symbol<"u"&&Symbol.toStringTag&&re(S.prototype,Symbol.toStringTag,"Dexie.Promise"),Ke.env=wr(),Be(S,{all:function(){var t=te.apply(null,arguments).map(ot);return new S(function(e,n){t.length===0&&e([]);var r=t.length;t.forEach((s,i)=>S.resolve(s).then(a=>{t[i]=a,--r||e(t)},n))})},resolve:t=>{if(t instanceof S)return t;if(t&&typeof t.then=="function")return new S((n,r)=>{t.then(n,r)});var e=new S(Qe,!0,t);return br(e,Qt),e},reject:at,race:function(){var t=te.apply(null,arguments).map(ot);return new S((e,n)=>{t.map(r=>S.resolve(r).then(e,n))})},PSD:{get:()=>P,set:t=>P=t},totalEchoes:{get:()=>Ct},newPSD:he,usePSD:Me,scheduler:{get:()=>Ve,set:t=>{Ve=t}},rejectionMapper:{get:()=>Xt,set:t=>{Xt=t}},follow:(t,e)=>new S((n,r)=>he((s,i)=>{var a=P;a.unhandleds=[],a.onunhandled=i,a.finalize=_e(function(){(function(o){function l(){o(),yt.splice(yt.indexOf(l),1)}yt.push(l),++be,Ve(()=>{--be==0&&Pn()},[])})(()=>{this.unhandleds.length===0?s():i(this.unhandleds[0])})},a.finalize),t()},e,n,r))}),pt&&(pt.allSettled&&re(S,"allSettled",function(){const t=te.apply(null,arguments).map(ot);return new S(e=>{t.length===0&&e([]);let n=t.length;const r=new Array(n);t.forEach((s,i)=>S.resolve(s).then(a=>r[i]={status:"fulfilled",value:a},a=>r[i]={status:"rejected",reason:a}).then(()=>--n||e(r)))})}),pt.any&&typeof AggregateError<"u"&&re(S,"any",function(){const t=te.apply(null,arguments).map(ot);return new S((e,n)=>{t.length===0&&n(new AggregateError([]));let r=t.length;const s=new Array(r);t.forEach((i,a)=>S.resolve(i).then(o=>e(o),o=>{s[a]=o,--r||n(new AggregateError(s))}))})}));const U={awaits:0,echoes:0,id:0};var Ps=0,gt=[],Bt=0,Ct=0,Is=0;function he(t,e,n,r){var s=P,i=Object.create(s);i.parent=s,i.ref=0,i.global=!1,i.id=++Is;var a=Ke.env;i.env=Sn?{Promise:S,PromiseProp:{value:S,configurable:!0,writable:!0},all:S.all,race:S.race,allSettled:S.allSettled,any:S.any,resolve:S.resolve,reject:S.reject,nthen:Nn(a.nthen,i),gthen:Nn(a.gthen,i)}:{},e&&V(i,e),++s.ref,i.finalize=function(){--this.parent.ref||this.parent.finalize()};var o=Me(i,t,n,r);return i.ref===0&&i.finalize(),o}function je(){return U.id||(U.id=++Ps),++U.awaits,U.echoes+=fr,U.id}function ie(){return!!U.awaits&&(--U.awaits==0&&(U.id=0),U.echoes=U.awaits*fr,!0)}function ot(t){return U.echoes&&t&&t.constructor===pt?(je(),t.then(e=>(ie(),e),e=>(ie(),M(e)))):t}function As(t){++Ct,U.echoes&&--U.echoes!=0||(U.echoes=U.id=0),gt.push(P),fe(t,!0)}function Ts(){var t=gt[gt.length-1];gt.pop(),fe(t,!1)}function fe(t,e){var n=P;if((e?!U.echoes||Bt++&&t===P:!Bt||--Bt&&t===P)||_r(e?As.bind(null,t):Ts),t!==P&&(P=t,n===Ke&&(Ke.env=wr()),Sn)){var r=Ke.env.Promise,s=t.env;xt.then=s.nthen,r.prototype.then=s.gthen,(n.global||t.global)&&(Object.defineProperty(O,"Promise",s.PromiseProp),r.all=s.all,r.race=s.race,r.resolve=s.resolve,r.reject=s.reject,s.allSettled&&(r.allSettled=s.allSettled),s.any&&(r.any=s.any))}}function wr(){var t=O.Promise;return Sn?{Promise:t,PromiseProp:Object.getOwnPropertyDescriptor(O,"Promise"),all:t.all,race:t.race,allSettled:t.allSettled,any:t.any,resolve:t.resolve,reject:t.reject,nthen:xt.then,gthen:t.prototype.then}:{}}function Me(t,e,n,r,s){var i=P;try{return fe(t,!0),e(n,r,s)}finally{fe(i,!1)}}function _r(t){pr.call(Gt,t)}function Pt(t,e,n,r){return typeof t!="function"?t:function(){var s=P;n&&je(),fe(e,!0);try{return t.apply(this,arguments)}finally{fe(s,!1),r&&_r(ie)}}}function Nn(t,e){return function(n,r){return t.call(this,Pt(n,e),Pt(r,e))}}(""+pr).indexOf("[native code]")===-1&&(je=ie=R);const jn="unhandledrejection";function Mn(t,e){var n;try{n=e.onuncatched(t)}catch{}if(n!==!1)try{var r,s={promise:e,reason:t};if(O.document&&document.createEvent?((r=document.createEvent("Event")).initEvent(jn,!0,!0),V(r,s)):O.CustomEvent&&V(r=new CustomEvent(jn,{detail:s}),s),r&&O.dispatchEvent&&(dispatchEvent(r),!O.PromiseRejectionEvent&&O.onunhandledrejection))try{O.onunhandledrejection(r)}catch{}X&&r&&!r.defaultPrevented&&console.warn(`Unhandled rejection: ${t.stack||t}`)}catch{}}var M=S.reject;function tn(t,e,n,r){if(t.idbdb&&(t._state.openComplete||P.letThrough||t._vip)){var s=t._createTransaction(e,n,t._dbSchema);try{s.create(),t._state.PR1398_maxLoop=3}catch(i){return i.name===En.InvalidState&&t.isOpen()&&--t._state.PR1398_maxLoop>0?(console.warn("Dexie: Need to reopen db"),t._close(),t.open().then(()=>tn(t,e,n,r))):M(i)}return s._promise(e,(i,a)=>he(()=>(P.trans=s,r(i,a,s)))).then(i=>s._completion.then(()=>i))}if(t._state.openComplete)return M(new I.DatabaseClosed(t._state.dbOpenError));if(!t._state.isBeingOpened){if(!t._options.autoOpen)return M(new I.DatabaseClosed);t.open().catch(R)}return t._state.dbReadyPromise.then(()=>tn(t,e,n,r))}const $n="3.2.7",ge="",nn=-1/0,Z="Invalid key provided. Keys must be of type string, number, Date or Array<string | number | Date>.",kr="String expected.",ze=[],Rt=typeof navigator<"u"&&/(MSIE|Trident|Edge)/.test(navigator.userAgent),Ds=Rt,Rs=Rt,Er=t=>!/(dexie\.js|dexie\.min\.js)/.test(t),Ot="__dbnames",Nt="readonly",jt="readwrite";function ke(t,e){return t?e?function(){return t.apply(this,arguments)&&e.apply(this,arguments)}:t:e}const xr={type:3,lower:-1/0,lowerOpen:!1,upper:[[]],upperOpen:!1};function lt(t){return typeof t!="string"||/\./.test(t)?e=>e:e=>(e[t]===void 0&&t in e&&delete(e=nt(e))[t],e)}class Os{_trans(e,n,r){const s=this._tx||P.trans,i=this.name;function a(l,d,c){if(!c.schema[i])throw new I.NotFound("Table "+i+" not part of transaction");return n(c.idbtrans,c)}const o=rt();try{return s&&s.db===this.db?s===P.trans?s._promise(e,a,r):he(()=>s._promise(e,a,r),{trans:s,transless:P.transless||P}):tn(this.db,e,[this.name],a)}finally{o&&st()}}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(s=>this.hook.reading.fire(s))).then(n)}where(e){if(typeof e=="string")return new this.db.WhereClause(this,e);if(F(e))return new this.db.WhereClause(this,`[${e.join("+")}]`);const n=j(e);if(n.length===1)return this.where(n[0]).equals(e[n[0]]);const r=this.schema.indexes.concat(this.schema.primKey).filter(d=>{if(d.compound&&n.every(c=>d.keyPath.indexOf(c)>=0)){for(let c=0;c<n.length;++c)if(n.indexOf(d.keyPath[c])===-1)return!1;return!0}return!1}).sort((d,c)=>d.keyPath.length-c.keyPath.length)[0];if(r&&this.db._maxKey!==ge){const d=r.keyPath.slice(0,n.length);return this.where(d).equals(d.map(c=>e[c]))}!r&&X&&console.warn(`The query ${JSON.stringify(e)} on ${this.name} would benefit of a compound index [${n.join("+")}]`);const{idxByName:s}=this.schema,i=this.db._deps.indexedDB;function a(d,c){try{return i.cmp(d,c)===0}catch{return!1}}const[o,l]=n.reduce(([d,c],h)=>{const u=s[h],f=e[h];return[d||u,d||!u?ke(c,u&&u.multi?g=>{const y=se(g,h);return F(y)&&y.some(v=>a(f,v))}:g=>a(f,se(g,h))):c]},[null,null]);return o?this.where(o.name).equals(e[o.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,F(e)?`[${e.join("+")}]`:e))}reverse(){return this.toCollection().reverse()}mapToClass(e){this.schema.mappedClass=e;const n=r=>{if(!r)return r;const s=Object.create(e.prototype);for(var i in r)if(W(r,i))try{s[i]=r[i]}catch{}return s};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){V(this,e)})}add(e,n){const{auto:r,keyPath:s}=this.schema.primKey;let i=e;return s&&r&&(i=lt(s)(e)),this._trans("readwrite",a=>this.core.mutate({trans:a,type:"add",keys:n!=null?[n]:null,values:[i]})).then(a=>a.numFailures?S.reject(a.failures[0]):a.lastResult).then(a=>{if(s)try{Y(e,s,a)}catch{}return a})}update(e,n){if(typeof e!="object"||F(e))return this.where(":id").equals(e).modify(n);{const r=se(e,this.schema.primKey.keyPath);if(r===void 0)return M(new I.InvalidArgument("Given object does not contain its primary key"));try{typeof n!="function"?j(n).forEach(s=>{Y(e,s,n[s])}):n(e,{value:e,primKey:r})}catch{}return this.where(":id").equals(r).modify(n)}}put(e,n){const{auto:r,keyPath:s}=this.schema.primKey;let i=e;return s&&r&&(i=lt(s)(e)),this._trans("readwrite",a=>this.core.mutate({trans:a,type:"put",values:[i],keys:n!=null?[n]:null})).then(a=>a.numFailures?S.reject(a.failures[0]):a.lastResult).then(a=>{if(s)try{Y(e,s,a)}catch{}return a})}delete(e){return this._trans("readwrite",n=>this.core.mutate({trans:n,type:"delete",keys:[e]})).then(n=>n.numFailures?S.reject(n.failures[0]):void 0)}clear(){return this._trans("readwrite",e=>this.core.mutate({trans:e,type:"deleteRange",range:xr})).then(e=>e.numFailures?S.reject(e.failures[0]):void 0)}bulkGet(e){return this._trans("readonly",n=>this.core.getMany({keys:e,trans:n}).then(r=>r.map(s=>this.hook.reading.fire(s))))}bulkAdd(e,n,r){const s=Array.isArray(n)?n:void 0,i=(r=r||(s?void 0:n))?r.allKeys:void 0;return this._trans("readwrite",a=>{const{auto:o,keyPath:l}=this.schema.primKey;if(l&&s)throw new I.InvalidArgument("bulkAdd(): keys argument invalid on tables with inbound keys");if(s&&s.length!==e.length)throw new I.InvalidArgument("Arguments objects and keys must have the same length");const d=e.length;let c=l&&o?e.map(lt(l)):e;return this.core.mutate({trans:a,type:"add",keys:s,values:c,wantResults:i}).then(({numFailures:h,results:u,lastResult:f,failures:g})=>{if(h===0)return i?u:f;throw new He(`${this.name}.bulkAdd(): ${h} of ${d} operations failed`,g)})})}bulkPut(e,n,r){const s=Array.isArray(n)?n:void 0,i=(r=r||(s?void 0:n))?r.allKeys:void 0;return this._trans("readwrite",a=>{const{auto:o,keyPath:l}=this.schema.primKey;if(l&&s)throw new I.InvalidArgument("bulkPut(): keys argument invalid on tables with inbound keys");if(s&&s.length!==e.length)throw new I.InvalidArgument("Arguments objects and keys must have the same length");const d=e.length;let c=l&&o?e.map(lt(l)):e;return this.core.mutate({trans:a,type:"put",keys:s,values:c,wantResults:i}).then(({numFailures:h,results:u,lastResult:f,failures:g})=>{if(h===0)return i?u:f;throw new He(`${this.name}.bulkPut(): ${h} of ${d} operations failed`,g)})})}bulkDelete(e){const n=e.length;return this._trans("readwrite",r=>this.core.mutate({trans:r,type:"delete",keys:e})).then(({numFailures:r,lastResult:s,failures:i})=>{if(r===0)return s;throw new He(`${this.name}.bulkDelete(): ${r} of ${n} operations failed`,i)})}}function Ge(t){var e={},n=function(a,o){if(o){for(var l=arguments.length,d=new Array(l-1);--l;)d[l-1]=arguments[l];return e[a].subscribe.apply(null,d),t}if(typeof a=="string")return e[a]};n.addEventType=i;for(var r=1,s=arguments.length;r<s;++r)i(arguments[r]);return n;function i(a,o,l){if(typeof a!="object"){var d;o||(o=xs),l||(l=R);var c={subscribers:[],fire:l,subscribe:function(h){c.subscribers.indexOf(h)===-1&&(c.subscribers.push(h),c.fire=o(c.fire,h))},unsubscribe:function(h){c.subscribers=c.subscribers.filter(function(u){return u!==h}),c.fire=c.subscribers.reduce(o,l)}};return e[a]=n[a]=c,c}j(d=a).forEach(function(h){var u=d[h];if(F(u))i(h,d[h][0],d[h][1]);else{if(u!=="asap")throw new I.InvalidArgument("Invalid event config");var f=i(h,Je,function(){for(var g=arguments.length,y=new Array(g);g--;)y[g]=arguments[g];f.subscribers.forEach(function(v){sr(function(){v.apply(null,y)})})})}})}}function Ue(t,e){return Re(e).from({prototype:t}),e}function Ae(t,e){return!(t.filter||t.algorithm||t.or)&&(e?t.justLimit:!t.replayFilter)}function Mt(t,e){t.filter=ke(t.filter,e)}function $t(t,e,n){var r=t.replayFilter;t.replayFilter=r?()=>ke(r(),e()):e,t.justLimit=n&&!r}function vt(t,e){if(t.isPrimKey)return e.primaryKey;const n=e.getIndexByKeyPath(t.index);if(!n)throw new I.Schema("KeyPath "+t.index+" on object store "+e.name+" is not indexed");return n}function Un(t,e,n){const r=vt(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 ct(t,e,n,r){const s=t.replayFilter?ke(t.filter,t.replayFilter()):t.filter;if(t.or){const i={},a=(o,l,d)=>{if(!s||s(l,d,u=>l.stop(u),u=>l.fail(u))){var c=l.primaryKey,h=""+c;h==="[object ArrayBuffer]"&&(h=""+new Uint8Array(c)),W(i,h)||(i[h]=!0,e(o,l,d))}};return Promise.all([t.or._iterate(a,n),Fn(Un(t,r,n),t.algorithm,a,!t.keysOnly&&t.valueMapper)])}return Fn(Un(t,r,n),ke(t.algorithm,s),e,!t.keysOnly&&t.valueMapper)}function Fn(t,e,n,r){var s=K(r?(i,a,o)=>n(r(i),a,o):n);return t.then(i=>{if(i)return i.start(()=>{var a=()=>i.continue();e&&!e(i,o=>a=o,o=>{i.stop(o),a=R},o=>{i.fail(o),a=R})||s(i.value,i,o=>a=o),a()})})}function H(t,e){try{const n=Ln(t),r=Ln(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<e?-1:0;case"binary":return function(s,i){const a=s.length,o=i.length,l=a<o?a:o;for(let d=0;d<l;++d)if(s[d]!==i[d])return s[d]<i[d]?-1:1;return a===o?0:a<o?-1:1}(qn(t),qn(e));case"Array":return function(s,i){const a=s.length,o=i.length,l=a<o?a:o;for(let d=0;d<l;++d){const c=H(s[d],i[d]);if(c!==0)return c}return a===o?0:a<o?-1:1}(t,e)}}catch{}return NaN}function Ln(t){const e=typeof t;if(e!=="object")return e;if(ArrayBuffer.isView(t))return"binary";const n=Ht(t);return n==="ArrayBuffer"?"binary":n}function qn(t){return t instanceof Uint8Array?t:ArrayBuffer.isView(t)?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):new Uint8Array(t)}class Ks{_read(e,n){var r=this._ctx;return r.error?r.table._trans(null,M.bind(null,r.error)):r.table._trans("readonly",e).then(n)}_write(e){var n=this._ctx;return n.error?n.table._trans(null,M.bind(null,n.error)):n.table._trans("readwrite",e,"locked")}_addAlgorithm(e){var n=this._ctx;n.algorithm=ke(n.algorithm,e)}_iterate(e,n){return ct(this._ctx,e,n,this._ctx.table.core)}clone(e){var n=Object.create(this.constructor.prototype),r=Object.create(this._ctx);return e&&V(r,e),n._ctx=r,n}raw(){return this._ctx.valueMapper=null,this}each(e){var n=this._ctx;return this._read(r=>ct(n,e,r,n.table.core))}count(e){return this._read(n=>{const r=this._ctx,s=r.table.core;if(Ae(r,!0))return s.count({trans:n,query:{index:vt(r,s.schema),range:r.range}}).then(a=>Math.min(a,r.limit));var i=0;return ct(r,()=>(++i,!1),n,s).then(()=>i)}).then(e)}sortBy(e,n){const r=e.split(".").reverse(),s=r[0],i=r.length-1;function a(d,c){return c?a(d[r[c]],c-1):d[s]}var o=this._ctx.dir==="next"?1:-1;function l(d,c){var h=a(d,i),u=a(c,i);return h<u?-o:h>u?o:0}return this.toArray(function(d){return d.sort(l)}).then(n)}toArray(e){return this._read(n=>{var r=this._ctx;if(r.dir==="next"&&Ae(r,!0)&&r.limit>0){const{valueMapper:s}=r,i=vt(r,r.table.core.schema);return r.table.core.query({trans:n,limit:r.limit,values:!0,query:{index:i,range:r.range}}).then(({result:a})=>s?a.map(s):a)}{const s=[];return ct(r,i=>s.push(i),n,r.table.core).then(()=>s)}},e)}offset(e){var n=this._ctx;return e<=0||(n.offset+=e,Ae(n)?$t(n,()=>{var r=e;return(s,i)=>r===0||(r===1?(--r,!1):(i(()=>{s.advance(r),r=0}),!1))}):$t(n,()=>{var r=e;return()=>--r<0})),this}limit(e){return this._ctx.limit=Math.min(this._ctx.limit,e),$t(this._ctx,()=>{var n=e;return function(r,s,i){return--n<=0&&s(i),n>=0}},!0),this}until(e,n){return Mt(this._ctx,function(r,s,i){return!e(r.value)||(s(i),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 Mt(this._ctx,function(s){return e(s.value)}),n=this._ctx,r=e,n.isMatch=ke(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,s){e(s.key,s)})}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,s){e(s.primaryKey,s)})}keys(e){var n=this._ctx;n.keysOnly=!n.isMatch;var r=[];return this.each(function(s,i){r.push(i.key)}).then(function(){return r}).then(e)}primaryKeys(e){var n=this._ctx;if(n.dir==="next"&&Ae(n,!0)&&n.limit>0)return this._read(s=>{var i=vt(n,n.table.core.schema);return n.table.core.query({trans:s,values:!1,limit:n.limit,query:{index:i,range:n.range}})}).then(({result:s})=>s).then(e);n.keysOnly=!n.isMatch;var r=[];return this.each(function(s,i){r.push(i.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 Mt(this._ctx,function(s){var i=s.primaryKey.toString(),a=W(r,i);return r[i]=!0,!a}),this}modify(e){var n=this._ctx;return this._write(r=>{var s;if(typeof e=="function")s=e;else{var i=j(e),a=i.length;s=function(y){for(var v=!1,m=0;m<a;++m){var p=i[m],_=e[p];se(y,p)!==_&&(Y(y,p,_),v=!0)}return v}}const o=n.table.core,{outbound:l,extractKey:d}=o.schema.primaryKey,c=this.db._options.modifyChunkSize||200,h=[];let u=0;const f=[],g=(y,v)=>{const{failures:m,numFailures:p}=v;u+=y-p;for(let _ of j(m))h.push(m[_])};return this.clone().primaryKeys().then(y=>{const v=m=>{const p=Math.min(c,y.length-m);return o.getMany({trans:r,keys:y.slice(m,m+p),cache:"immutable"}).then(_=>{const x=[],C=[],E=l?[]:null,w=[];for(let k=0;k<p;++k){const B=_[k],D={value:nt(B),primKey:y[m+k]};s.call(D,D.value,D)!==!1&&(D.value==null?w.push(y[m+k]):l||H(d(B),d(D.value))===0?(C.push(D.value),l&&E.push(y[m+k])):(w.push(y[m+k]),x.push(D.value)))}const T=Ae(n)&&n.limit===1/0&&(typeof e!="function"||e===Ut)&&{index:n.index,range:n.range};return Promise.resolve(x.length>0&&o.mutate({trans:r,type:"add",values:x}).then(k=>{for(let B in k.failures)w.splice(parseInt(B),1);g(x.length,k)})).then(()=>(C.length>0||T&&typeof e=="object")&&o.mutate({trans:r,type:"put",keys:E,values:C,criteria:T,changeSpec:typeof e!="function"&&e}).then(k=>g(C.length,k))).then(()=>(w.length>0||T&&e===Ut)&&o.mutate({trans:r,type:"delete",keys:w,criteria:T}).then(k=>g(w.length,k))).then(()=>y.length>m+p&&v(m+c))})};return v(0).then(()=>{if(h.length>0)throw new Et("Error modifying one or more objects",h,u,f);return y.length})})})}delete(){var e=this._ctx,n=e.range;return Ae(e)&&(e.isPrimKey&&!Rs||n.type===3)?this._write(r=>{const{primaryKey:s}=e.table.core.schema,i=n;return e.table.core.count({trans:r,query:{index:s,range:i}}).then(a=>e.table.core.mutate({trans:r,type:"deleteRange",range:i}).then(({failures:o,lastResult:l,results:d,numFailures:c})=>{if(c)throw new Et("Could not delete some values",Object.keys(o).map(h=>o[h]),a-c);return a-c}))}):this.modify(Ut)}}const Ut=(t,e)=>e.value=null;function Bs(t,e){return t<e?-1:t===e?0:1}function Ns(t,e){return t>e?-1:t===e?0:1}function G(t,e,n){var r=t instanceof Cr?new t.Collection(t):t;return r._ctx.error=n?new n(e):new TypeError(e),r}function Te(t){return new t.Collection(t,()=>Sr("")).limit(0)}function js(t,e,n,r,s,i){for(var a=Math.min(t.length,r.length),o=-1,l=0;l<a;++l){var d=e[l];if(d!==r[l])return s(t[l],n[l])<0?t.substr(0,l)+n[l]+n.substr(l+1):s(t[l],r[l])<0?t.substr(0,l)+r[l]+n.substr(l+1):o>=0?t.substr(0,o)+e[o]+n.substr(o+1):null;s(t[l],d)<0&&(o=l)}return a<r.length&&i==="next"?t+n.substr(t.length):a<t.length&&i==="prev"?t.substr(0,n.length):o<0?null:t.substr(0,o)+r[o]+n.substr(o+1)}function ut(t,e,n,r){var s,i,a,o,l,d,c,h=n.length;if(!n.every(y=>typeof y=="string"))return G(t,kr);function u(y){s=function(m){return m==="next"?p=>p.toUpperCase():p=>p.toLowerCase()}(y),i=function(m){return m==="next"?p=>p.toLowerCase():p=>p.toUpperCase()}(y),a=y==="next"?Bs:Ns;var v=n.map(function(m){return{lower:i(m),upper:s(m)}}).sort(function(m,p){return a(m.lower,p.lower)});o=v.map(function(m){return m.upper}),l=v.map(function(m){return m.lower}),d=y,c=y==="next"?"":r}u("next");var f=new t.Collection(t,()=>oe(o[0],l[h-1]+r));f._ondirectionchange=function(y){u(y)};var g=0;return f._addAlgorithm(function(y,v,m){var p=y.key;if(typeof p!="string")return!1;var _=i(p);if(e(_,l,g))return!0;for(var x=null,C=g;C<h;++C){var E=js(p,_,o[C],l[C],a,d);E===null&&x===null?g=C+1:(x===null||a(x,E)>0)&&(x=E)}return v(x!==null?function(){y.continue(x+c)}:m),!1}),f}function oe(t,e,n,r){return{type:2,lower:t,upper:e,lowerOpen:n,upperOpen:r}}function Sr(t){return{type:1,lower:t,upper:t}}class Cr{get Collection(){return this._ctx.table.db.Collection}between(e,n,r,s){r=r!==!1,s=s===!0;try{return this._cmp(e,n)>0||this._cmp(e,n)===0&&(r||s)&&(!r||!s)?Te(this):new this.Collection(this,()=>oe(e,n,!r,!s))}catch{return G(this,Z)}}equals(e){return e==null?G(this,Z):new this.Collection(this,()=>Sr(e))}above(e){return e==null?G(this,Z):new this.Collection(this,()=>oe(e,void 0,!0))}aboveOrEqual(e){return e==null?G(this,Z):new this.Collection(this,()=>oe(e,void 0,!1))}below(e){return e==null?G(this,Z):new this.Collection(this,()=>oe(void 0,e,!1,!0))}belowOrEqual(e){return e==null?G(this,Z):new this.Collection(this,()=>oe(void 0,e))}startsWith(e){return typeof e!="string"?G(this,kr):this.between(e,e+ge,!0,!0)}startsWithIgnoreCase(e){return e===""?this.startsWith(e):ut(this,(n,r)=>n.indexOf(r[0])===0,[e],ge)}equalsIgnoreCase(e){return ut(this,(n,r)=>n===r[0],[e],"")}anyOfIgnoreCase(){var e=te.apply(De,arguments);return e.length===0?Te(this):ut(this,(n,r)=>r.indexOf(n)!==-1,e,"")}startsWithAnyOfIgnoreCase(){var e=te.apply(De,arguments);return e.length===0?Te(this):ut(this,(n,r)=>r.some(s=>n.indexOf(s)===0),e,ge)}anyOf(){const e=te.apply(De,arguments);let n=this._cmp;try{e.sort(n)}catch{return G(this,Z)}if(e.length===0)return Te(this);const r=new this.Collection(this,()=>oe(e[0],e[e.length-1]));r._ondirectionchange=i=>{n=i==="next"?this._ascending:this._descending,e.sort(n)};let s=0;return r._addAlgorithm((i,a,o)=>{const l=i.key;for(;n(l,e[s])>0;)if(++s,s===e.length)return a(o),!1;return n(l,e[s])===0||(a(()=>{i.continue(e[s])}),!1)}),r}notEqual(e){return this.inAnyRange([[nn,e],[e,this.db._maxKey]],{includeLowers:!1,includeUppers:!1})}noneOf(){const e=te.apply(De,arguments);if(e.length===0)return new this.Collection(this);try{e.sort(this._ascending)}catch{return G(this,Z)}const n=e.reduce((r,s)=>r?r.concat([[r[r.length-1][1],s]]):[[nn,s]],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,s=this._ascending,i=this._descending,a=this._min,o=this._max;if(e.length===0)return Te(this);if(!e.every(p=>p[0]!==void 0&&p[1]!==void 0&&s(p[0],p[1])<=0))return G(this,"First argument to inAnyRange() must be an Array of two-value Arrays [lower,upper] where upper must not be lower than lower",I.InvalidArgument);const l=!n||n.includeLowers!==!1,d=n&&n.includeUppers===!0;let c,h=s;function u(p,_){return h(p[0],_[0])}try{c=e.reduce(function(p,_){let x=0,C=p.length;for(;x<C;++x){const E=p[x];if(r(_[0],E[1])<0&&r(_[1],E[0])>0){E[0]=a(E[0],_[0]),E[1]=o(E[1],_[1]);break}}return x===C&&p.push(_),p},[]),c.sort(u)}catch{return G(this,Z)}let f=0;const g=d?p=>s(p,c[f][1])>0:p=>s(p,c[f][1])>=0,y=l?p=>i(p,c[f][0])>0:p=>i(p,c[f][0])>=0;let v=g;const m=new this.Collection(this,()=>oe(c[0][0],c[c.length-1][1],!l,!d));return m._ondirectionchange=p=>{p==="next"?(v=g,h=s):(v=y,h=i),c.sort(u)},m._addAlgorithm((p,_,x)=>{for(var C=p.key;v(C);)if(++f,f===c.length)return _(x),!1;return!!function(E){return!g(E)&&!y(E)}(C)||(this._cmp(C,c[f][1])===0||this._cmp(C,c[f][0])===0||_(()=>{h===s?p.continue(c[f][0]):p.continue(c[f][1])}),!1)}),m}startsWithAnyOf(){const e=te.apply(De,arguments);return e.every(n=>typeof n=="string")?e.length===0?Te(this):this.inAnyRange(e.map(n=>[n,n+ge])):G(this,"startsWithAnyOf() only works with strings")}}function Q(t){return K(function(e){return Xe(e),t(e.target.error),!1})}function Xe(t){t.stopPropagation&&t.stopPropagation(),t.preventDefault&&t.preventDefault()}const Ze="storagemutated",ce="x-storagemutated-1",pe=Ge(null,Ze);class Ms{_lock(){return Le(!P.global),++this._reculock,this._reculock!==1||P.global||(P.lockOwnerFor=this),this}_unlock(){if(Le(!P.global),--this._reculock==0)for(P.global||(P.lockOwnerFor=null);this._blockedFuncs.length>0&&!this._locked();){var e=this._blockedFuncs.shift();try{Me(e[1],e[0])}catch{}}return this}_locked(){return this._reculock&&P.lockOwnerFor!==this}create(e){if(!this.mode)return this;const n=this.db.idbdb,r=this.db._state.dbOpenError;if(Le(!this.idbtrans),!e&&!n)switch(r&&r.name){case"DatabaseClosedError":throw new I.DatabaseClosed(r);case"MissingAPIError":throw new I.MissingAPI(r.message,r);default:throw new I.OpenFailed(r)}if(!this.active)throw new I.TransactionInactive;return Le(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=K(s=>{Xe(s),this._reject(e.error)}),e.onabort=K(s=>{Xe(s),this.active&&this._reject(new I.Abort(e.error)),this.active=!1,this.on("abort").fire(s)}),e.oncomplete=K(()=>{this.active=!1,this._resolve(),"mutatedParts"in e&&pe.storagemutated.fire(e.mutatedParts)}),this}_promise(e,n,r){if(e==="readwrite"&&this.mode!=="readwrite")return M(new I.ReadOnly("Transaction is readonly"));if(!this.active)return M(new I.TransactionInactive);if(this._locked())return new S((i,a)=>{this._blockedFuncs.push([()=>{this._promise(e,n,r).then(i,a)},P])});if(r)return he(()=>{var i=new S((a,o)=>{this._lock();const l=n(a,o,this);l&&l.then&&l.then(a,o)});return i.finally(()=>this._unlock()),i._lib=!0,i});var s=new S((i,a)=>{var o=n(i,a,this);o&&o.then&&o.then(i,a)});return s._lib=!0,s}_root(){return this.parent?this.parent._root():this}waitFor(e){var n=this._root();const r=S.resolve(e);if(n._waitingFor)n._waitingFor=n._waitingFor.then(()=>r);else{n._waitingFor=r,n._waitingQueue=[];var s=n.idbtrans.objectStore(n.storeNames[0]);(function a(){for(++n._spinCount;n._waitingQueue.length;)n._waitingQueue.shift()();n._waitingFor&&(s.get(-1/0).onsuccess=a)})()}var i=n._waitingFor;return new S((a,o)=>{r.then(l=>n._waitingQueue.push(K(a.bind(null,l))),l=>n._waitingQueue.push(K(o.bind(null,l)))).finally(()=>{n._waitingFor===i&&(n._waitingFor=null)})})}abort(){this.active&&(this.active=!1,this.idbtrans&&this.idbtrans.abort(),this._reject(new I.Abort))}table(e){const n=this._memoizedTables||(this._memoizedTables={});if(W(n,e))return n[e];const r=this.schema[e];if(!r)throw new I.NotFound("Table "+e+" not part of transaction");const s=new this.db.Table(e,r,this);return s.core=this.db.core.table(e),n[e]=s,s}}function rn(t,e,n,r,s,i,a){return{name:t,keyPath:e,unique:n,multi:r,auto:s,compound:i,src:(n&&!a?"&":"")+(r?"*":"")+(s?"++":"")+Pr(e)}}function Pr(t){return typeof t=="string"?t:t?"["+[].join.call(t,"+")+"]":""}function Ir(t,e,n){return{name:t,primKey:e,indexes:n,mappedClass:null,idxByName:ir(n,r=>[r.name,r])}}let et=t=>{try{return t.only([[]]),et=()=>[[]],[[]]}catch{return et=()=>ge,ge}};function sn(t){return t==null?()=>{}:typeof t=="string"?function(e){return e.split(".").length===1?r=>r[e]:r=>se(r,e)}(t):e=>se(e,t)}function Hn(t){return[].slice.call(t)}let $s=0;function We(t){return t==null?":id":typeof t=="string"?t:`[${t.join("+")}]`}function Us(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:d,upper:c,lowerOpen:h,upperOpen:u}=l;return d===void 0?c===void 0?null:e.upperBound(c,!!u):c===void 0?e.lowerBound(d,!!h):e.bound(d,c,!!h,!!u)}const{schema:s,hasGetAll:i}=function(l,d){const c=Hn(l.objectStoreNames);return{schema:{name:l.name,tables:c.map(h=>d.objectStore(h)).map(h=>{const{keyPath:u,autoIncrement:f}=h,g=F(u),y=u==null,v={},m={name:h.name,primaryKey:{name:null,isPrimaryKey:!0,outbound:y,compound:g,keyPath:u,autoIncrement:f,unique:!0,extractKey:sn(u)},indexes:Hn(h.indexNames).map(p=>h.index(p)).map(p=>{const{name:_,unique:x,multiEntry:C,keyPath:E}=p,w={name:_,compound:F(E),keyPath:E,unique:x,multiEntry:C,extractKey:sn(E)};return v[We(E)]=w,w}),getIndexByKeyPath:p=>v[We(p)]};return v[":id"]=m.primaryKey,u!=null&&(v[We(u)]=m.primaryKey),m})},hasGetAll:c.length>0&&"getAll"in d.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),a=s.tables.map(l=>function(d){const c=d.name;return{name:c,schema:d,mutate:function({trans:h,type:u,keys:f,values:g,range:y}){return new Promise((v,m)=>{v=K(v);const p=h.objectStore(c),_=p.keyPath==null,x=u==="put"||u==="add";if(!x&&u!=="delete"&&u!=="deleteRange")throw new Error("Invalid operation type: "+u);const{length:C}=f||g||{length:1};if(f&&g&&f.length!==g.length)throw new Error("Given keys array must have same length as given values array.");if(C===0)return v({numFailures:0,failures:{},results:[],lastResult:void 0});let E;const w=[],T=[];let k=0;const B=q=>{++k,Xe(q)};if(u==="deleteRange"){if(y.type===4)return v({numFailures:k,failures:T,results:[],lastResult:void 0});y.type===3?w.push(E=p.clear()):w.push(E=p.delete(r(y)))}else{const[q,$]=x?_?[g,f]:[g,null]:[f,null];if(x)for(let N=0;N<C;++N)w.push(E=$&&$[N]!==void 0?p[u](q[N],$[N]):p[u](q[N])),E.onerror=B;else for(let N=0;N<C;++N)w.push(E=p[u](q[N])),E.onerror=B}const D=q=>{const $=q.target.result;w.forEach((N,Ce)=>N.error!=null&&(T[Ce]=N.error)),v({numFailures:k,failures:T,results:u==="delete"?f:w.map(N=>N.result),lastResult:$})};E.onerror=q=>{B(q),D(q)},E.onsuccess=D})},getMany:({trans:h,keys:u})=>new Promise((f,g)=>{f=K(f);const y=h.objectStore(c),v=u.length,m=new Array(v);let p,_=0,x=0;const C=w=>{const T=w.target;m[T._pos]=T.result,++x===_&&f(m)},E=Q(g);for(let w=0;w<v;++w)u[w]!=null&&(p=y.get(u[w]),p._pos=w,p.onsuccess=C,p.onerror=E,++_);_===0&&f(m)}),get:({trans:h,key:u})=>new Promise((f,g)=>{f=K(f);const y=h.objectStore(c).get(u);y.onsuccess=v=>f(v.target.result),y.onerror=Q(g)}),query:function(h){return u=>new Promise((f,g)=>{f=K(f);const{trans:y,values:v,limit:m,query:p}=u,_=m===1/0?void 0:m,{index:x,range:C}=p,E=y.objectStore(c),w=x.isPrimaryKey?E:E.index(x.name),T=r(C);if(m===0)return f({result:[]});if(h){const k=v?w.getAll(T,_):w.getAllKeys(T,_);k.onsuccess=B=>f({result:B.target.result}),k.onerror=Q(g)}else{let k=0;const B=v||!("openKeyCursor"in w)?w.openCursor(T):w.openKeyCursor(T),D=[];B.onsuccess=q=>{const $=B.result;return $?(D.push(v?$.value:$.primaryKey),++k===m?f({result:D}):void $.continue()):f({result:D})},B.onerror=Q(g)}})}(i),openCursor:function({trans:h,values:u,query:f,reverse:g,unique:y}){return new Promise((v,m)=>{v=K(v);const{index:p,range:_}=f,x=h.objectStore(c),C=p.isPrimaryKey?x:x.index(p.name),E=g?y?"prevunique":"prev":y?"nextunique":"next",w=u||!("openKeyCursor"in C)?C.openCursor(r(_),E):C.openKeyCursor(r(_),E);w.onerror=Q(m),w.onsuccess=K(T=>{const k=w.result;if(!k)return void v(null);k.___id=++$s,k.done=!1;const B=k.continue.bind(k);let D=k.continuePrimaryKey;D&&(D=D.bind(k));const q=k.advance.bind(k),$=()=>{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=K(m),k.next=function(){let N=1;return this.start(()=>N--?this.continue():this.stop()).then(()=>this)},k.start=N=>{const Ce=new Promise((z,me)=>{z=K(z),w.onerror=Q(me),k.fail=me,k.stop=$e=>{k.stop=k.continue=k.continuePrimaryKey=k.advance=$,z($e)}}),Pe=()=>{if(w.result)try{N()}catch(z){k.fail(z)}else k.done=!0,k.start=()=>{throw new Error("Cursor behind last entry")},k.stop()};return w.onsuccess=K(z=>{w.onsuccess=Pe,Pe()}),k.continue=B,k.continuePrimaryKey=D,k.advance=q,Pe(),Ce},v(k)},m)})},count({query:h,trans:u}){const{index:f,range:g}=h;return new Promise((y,v)=>{const m=u.objectStore(c),p=f.isPrimaryKey?m:m.index(f.name),_=r(g),x=_?p.count(_):p.count();x.onsuccess=K(C=>y(C.target.result)),x.onerror=Q(v)})}}}(l)),o={};return a.forEach(l=>o[l.name]=l),{stack:"dbcore",transaction:t.transaction.bind(t),table(l){if(!o[l])throw new Error(`Table '${l}' not found`);return o[l]},MIN_KEY:-1/0,MAX_KEY:et(e),schema:s}}function an({_novip:t},e){const n=e.db,r=function(s,i,{IDBKeyRange:a,indexedDB:o},l){return{dbcore:function(c,h){return h.reduce((u,{create:f})=>({...u,...f(u)}),c)}(Us(i,a,l),s.dbcore)}}(t._middlewares,n,t._deps,e);t.core=r.dbcore,t.tables.forEach(s=>{const i=s.name;t.core.schema.tables.some(a=>a.name===i)&&(s.core=t.core.table(i),t[i]instanceof t.Table&&(t[i].core=s.core))})}function It({_novip:t},e,n,r){n.forEach(s=>{const i=r[s];e.forEach(a=>{const o=wn(a,s);(!o||"value"in o&&o.value===void 0)&&(a===t.Transaction.prototype||a instanceof t.Transaction?re(a,s,{get(){return this.table(s)},set(l){nr(this,s,{value:l,writable:!0,configurable:!0,enumerable:!0})}}):a[s]=new t.Table(s,i))})})}function on({_novip:t},e){e.forEach(n=>{for(let r in n)n[r]instanceof t.Table&&delete n[r]})}function Fs(t,e){return t._cfg.version-e._cfg.version}function Ls(t,e,n,r){const s=t._dbSchema,i=t._createTransaction("readwrite",t._storeNames,s);i.create(n),i._completion.catch(r);const a=i._reject.bind(i),o=P.transless||P;he(()=>{P.trans=i,P.transless=o,e===0?(j(s).forEach(l=>{Ft(n,l,s[l].primKey,s[l].indexes)}),an(t,n),S.follow(()=>t.on.populate.fire(i)).catch(a)):function({_novip:l},d,c,h){const u=[],f=l._versions;let g=l._dbSchema=cn(l,l.idbdb,h),y=!1;const v=f.filter(p=>p._cfg.version>=d);function m(){return u.length?S.resolve(u.shift()(c.idbtrans)).then(m):S.resolve()}return v.forEach(p=>{u.push(()=>{const _=g,x=p._cfg.dbschema;un(l,_,h),un(l,x,h),g=l._dbSchema=x;const C=Ar(_,x);C.add.forEach(w=>{Ft(h,w[0],w[1].primKey,w[1].indexes)}),C.change.forEach(w=>{if(w.recreate)throw new I.Upgrade("Not yet support for changing primary key");{const T=h.objectStore(w.name);w.add.forEach(k=>ln(T,k)),w.change.forEach(k=>{T.deleteIndex(k.name),ln(T,k)}),w.del.forEach(k=>T.deleteIndex(k))}});const E=p._cfg.contentUpgrade;if(E&&p._cfg.version>d){an(l,h),c._memoizedTables={},y=!0;let w=ar(x);C.del.forEach(D=>{w[D]=_[D]}),on(l,[l.Transaction.prototype]),It(l,[l.Transaction.prototype],j(w),w),c.schema=w;const T=_n(E);let k;T&&je();const B=S.follow(()=>{if(k=E(c),k&&T){var D=ie.bind(null,null);k.then(D,D)}});return k&&typeof k.then=="function"?S.resolve(k):B.then(()=>k)}}),u.push(_=>{(!y||!Ds)&&function(x,C){[].slice.call(C.db.objectStoreNames).forEach(E=>x[E]==null&&C.db.deleteObjectStore(E))}(p._cfg.dbschema,_),on(l,[l.Transaction.prototype]),It(l,[l.Transaction.prototype],l._storeNames,l._dbSchema),c.schema=l._dbSchema})}),m().then(()=>{var p,_;_=h,j(p=g).forEach(x=>{_.db.objectStoreNames.contains(x)||Ft(_,x,p[x].primKey,p[x].indexes)})})}(t,e,i,n).catch(a)})}function Ar(t,e){const n={del:[],add:[],change:[]};let r;for(r in t)e[r]||n.del.push(r);for(r in e){const s=t[r],i=e[r];if(s){const a={name:r,def:i,recreate:!1,del:[],add:[],change:[]};if(""+(s.primKey.keyPath||"")!=""+(i.primKey.keyPath||"")||s.primKey.auto!==i.primKey.auto&&!Rt)a.recreate=!0,n.change.push(a);else{const o=s.idxByName,l=i.idxByName;let d;for(d in o)l[d]||a.del.push(d);for(d in l){const c=o[d],h=l[d];c?c.src!==h.src&&a.change.push(h):a.add.push(h)}(a.del.length>0||a.add.length>0||a.change.length>0)&&n.change.push(a)}}else n.add.push([r,i])}return n}function Ft(t,e,n,r){const s=t.db.createObjectStore(e,n.keyPath?{keyPath:n.keyPath,autoIncrement:n.auto}:{autoIncrement:n.auto});return r.forEach(i=>ln(s,i)),s}function ln(t,e){t.createIndex(e.name,e.keyPath,{unique:e.unique,multiEntry:e.multi})}function cn(t,e,n){const r={};return kt(e.objectStoreNames,0).forEach(s=>{const i=n.objectStore(s);let a=i.keyPath;const o=rn(Pr(a),a||"",!1,!1,!!i.autoIncrement,a&&typeof a!="string",!0),l=[];for(let c=0;c<i.indexNames.length;++c){const h=i.index(i.indexNames[c]);a=h.keyPath;var d=rn(h.name,a,!!h.unique,!!h.multiEntry,!1,a&&typeof a!="string",!1);l.push(d)}r[s]=Ir(s,o,l)}),r}function un({_novip:t},e,n){const r=n.db.objectStoreNames;for(let s=0;s<r.length;++s){const i=r[s],a=n.objectStore(i);t._hasGetAll="getAll"in a;for(let o=0;o<a.indexNames.length;++o){const l=a.indexNames[o],d=a.index(l).keyPath,c=typeof d=="string"?d:"["+kt(d).join("+")+"]";if(e[i]){const h=e[i].idxByName[c];h&&(h.name=l,delete e[i].idxByName[c],e[i].idxByName[l]=h)}}}typeof navigator<"u"&&/Safari/.test(navigator.userAgent)&&!/(Chrome\/|Edge\/)/.test(navigator.userAgent)&&O.WorkerGlobalScope&&O instanceof O.WorkerGlobalScope&&[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]<604&&(t._hasGetAll=!1)}class qs{_parseStoresSpec(e,n){j(e).forEach(r=>{if(e[r]!==null){var s=e[r].split(",").map((a,o)=>{const l=(a=a.trim()).replace(/([&*]|\+\+)/g,""),d=/^\[/.test(l)?l.match(/^\[(.*)\]$/)[1].split("+"):l;return rn(l,d||null,/\&/.test(a),/\*/.test(a),/\+\+/.test(a),F(d),o===0)}),i=s.shift();if(i.multi)throw new I.Schema("Primary key cannot be multi-valued");s.forEach(a=>{if(a.auto)throw new I.Schema("Only primary key can be marked as autoIncrement (++)");if(!a.keyPath)throw new I.Schema("Index must have a name and cannot be an empty string")}),n[r]=Ir(r,i,s)}})}stores(e){const n=this.db;this._cfg.storesSource=this._cfg.storesSource?V(this._cfg.storesSource,e):e;const r=n._versions,s={};let i={};return r.forEach(a=>{V(s,a._cfg.storesSource),i=a._cfg.dbschema={},a._parseStoresSpec(s,i)}),n._dbSchema=i,on(n,[n._allTables,n,n.Transaction.prototype]),It(n,[n._allTables,n,n.Transaction.prototype,this._cfg.tables],j(i),i),n._storeNames=j(i),this}upgrade(e){return this._cfg.contentUpgrade=xn(this._cfg.contentUpgrade||R,e),this}}function In(t,e){let n=t._dbNamesDB;return n||(n=t._dbNamesDB=new we(Ot,{addons:[],indexedDB:t,IDBKeyRange:e}),n.version(1).stores({dbnames:"name"})),n.table("dbnames")}function An(t){return t&&typeof t.databases=="function"}function dn(t){return he(function(){return P.letThrough=!0,t()})}function Hs(){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 Vs(t){const e=t._state,{indexedDB:n}=t._deps;if(e.isBeingOpened||t.idbdb)return e.dbReadyPromise.then(()=>e.dbOpenError?M(e.dbOpenError):t);X&&(e.openCanceller._stackHolder=xe()),e.isBeingOpened=!0,e.dbOpenError=null,e.openComplete=!1;const r=e.openCanceller;function s(){if(e.openCanceller!==r)throw new I.DatabaseClosed("db.open() was cancelled")}let i=e.dbReadyResolve,a=null,o=!1;const l=()=>new S((d,c)=>{if(s(),!n)throw new I.MissingAPI;const h=t.name,u=e.autoSchema?n.open(h):n.open(h,Math.round(10*t.verno));if(!u)throw new I.MissingAPI;u.onerror=Q(c),u.onblocked=K(t._fireOnBlocked),u.onupgradeneeded=K(f=>{if(a=u.transaction,e.autoSchema&&!t._options.allowEmptyDB){u.onerror=Xe,a.abort(),u.result.close();const y=n.deleteDatabase(h);y.onsuccess=y.onerror=K(()=>{c(new I.NoSuchDatabase(`Database ${h} doesnt exist`))})}else{a.onerror=Q(c);var g=f.oldVersion>Math.pow(2,62)?0:f.oldVersion;o=g<1,t._novip.idbdb=u.result,Ls(t,g/10,a,c)}},c),u.onsuccess=K(()=>{a=null;const f=t._novip.idbdb=u.result,g=kt(f.objectStoreNames);if(g.length>0)try{const v=f.transaction((y=g).length===1?y[0]:y,"readonly");e.autoSchema?function({_novip:m},p,_){m.verno=p.version/10;const x=m._dbSchema=cn(0,p,_);m._storeNames=kt(p.objectStoreNames,0),It(m,[m._allTables],j(x),x)}(t,f,v):(un(t,t._dbSchema,v),function(m,p){const _=Ar(cn(0,m.idbdb,p),m._dbSchema);return!(_.add.length||_.change.some(x=>x.add.length||x.change.length))}(t,v)||console.warn("Dexie SchemaDiff: Schema was extended without increasing the number passed to db.version(). Some queries may fail.")),an(t,v)}catch{}var y;ze.push(t),f.onversionchange=K(v=>{e.vcFired=!0,t.on("versionchange").fire(v)}),f.onclose=K(v=>{t.on("close").fire(v)}),o&&function({indexedDB:v,IDBKeyRange:m},p){!An(v)&&p!==Ot&&In(v,m).put({name:p}).catch(R)}(t._deps,h),d()},c)}).catch(d=>d&&d.name==="UnknownError"&&e.PR1398_maxLoop>0?(e.PR1398_maxLoop--,console.warn("Dexie: Workaround for Chrome UnknownError on open()"),l()):S.reject(d));return S.race([r,(typeof navigator>"u"?S.resolve():Hs()).then(l)]).then(()=>(s(),e.onReadyBeingFired=[],S.resolve(dn(()=>t.on.ready.fire(t.vip))).then(function d(){if(e.onReadyBeingFired.length>0){let c=e.onReadyBeingFired.reduce(xn,R);return e.onReadyBeingFired=[],S.resolve(dn(()=>c(t.vip))).then(d)}}))).finally(()=>{e.onReadyBeingFired=null,e.isBeingOpened=!1}).then(()=>t).catch(d=>{e.dbOpenError=d;try{a&&a.abort()}catch{}return r===e.openCanceller&&t._close(),M(d)}).finally(()=>{e.openComplete=!0,i()})}function hn(t){var e=i=>t.next(i),n=s(e),r=s(i=>t.throw(i));function s(i){return a=>{var o=i(a),l=o.value;return o.done?l:l&&typeof l.then=="function"?l.then(n,r):F(l)?Promise.all(l).then(n,r):n(l)}}return s(e)()}function zs(t,e,n){var r=arguments.length;if(r<2)throw new I.InvalidArgument("Too few arguments");for(var s=new Array(r-1);--r;)s[r-1]=arguments[r];return n=s.pop(),[t,or(s),n]}function Tr(t,e,n,r,s){return S.resolve().then(()=>{const i=P.transless||P,a=t._createTransaction(e,n,t._dbSchema,r),o={trans:a,transless:i};if(r)a.idbtrans=r.idbtrans;else try{a.create(),t._state.PR1398_maxLoop=3}catch(h){return h.name===En.InvalidState&&t.isOpen()&&--t._state.PR1398_maxLoop>0?(console.warn("Dexie: Need to reopen db"),t._close(),t.open().then(()=>Tr(t,e,n,null,s))):M(h)}const l=_n(s);let d;l&&je();const c=S.follow(()=>{if(d=s.call(a,a),d)if(l){var h=ie.bind(null,null);d.then(h,h)}else typeof d.next=="function"&&typeof d.throw=="function"&&(d=hn(d))},o);return(d&&typeof d.then=="function"?S.resolve(d).then(h=>a.active?h:M(new I.PrematureCommit("Transaction committed too early. See http://bit.ly/2kdckMn"))):c.then(()=>d)).then(h=>(r&&a._resolve(),a._completion.then(()=>h))).catch(h=>(a._reject(h),M(h)))})}function dt(t,e,n){const r=F(t)?t.slice():[t];for(let s=0;s<n;++s)r.push(e);return r}const Gs={stack:"dbcore",name:"VirtualIndexMiddleware",level:1,create:function(t){return{...t,table(e){const n=t.table(e),{schema:r}=n,s={},i=[];function a(c,h,u){const f=We(c),g=s[f]=s[f]||[],y=c==null?0:typeof c=="string"?1:c.length,v=h>0,m={...u,isVirtual:v,keyTail:h,keyLength:y,extractKey:sn(c),unique:!v&&u.unique};return g.push(m),m.isPrimaryKey||i.push(m),y>1&&a(y===2?c[0]:c.slice(0,y-1),h+1,u),g.sort((p,_)=>p.keyTail-_.keyTail),m}const o=a(r.primaryKey.keyPath,0,r.primaryKey);s[":id"]=[o];for(const c of r.indexes)a(c.keyPath,0,c);function l(c){const h=c.query.index;return h.isVirtual?{...c,query:{index:h,range:(u=c.query.range,f=h.keyTail,{type:u.type===1?2:u.type,lower:dt(u.lower,u.lowerOpen?t.MAX_KEY:t.MIN_KEY,f),lowerOpen:!0,upper:dt(u.upper,u.upperOpen?t.MIN_KEY:t.MAX_KEY,f),upperOpen:!0})}}:c;var u,f}return{...n,schema:{...r,primaryKey:o,indexes:i,getIndexByKeyPath:function(c){const h=s[We(c)];return h&&h[0]}},count:c=>n.count(l(c)),query:c=>n.query(l(c)),openCursor(c){const{keyTail:h,isVirtual:u,keyLength:f}=c.query.index;return u?n.openCursor(l(c)).then(g=>g&&function(y){return Object.create(y,{continue:{value:function(m){m!=null?y.continue(dt(m,c.reverse?t.MAX_KEY:t.MIN_KEY,h)):c.unique?y.continue(y.key.slice(0,f).concat(c.reverse?t.MIN_KEY:t.MAX_KEY,h)):y.continue()}},continuePrimaryKey:{value(m,p){y.continuePrimaryKey(dt(m,t.MAX_KEY,h),p)}},primaryKey:{get:()=>y.primaryKey},key:{get(){const m=y.key;return f===1?m[0]:m.slice(0,f)}},value:{get:()=>y.value}})}(g)):n.openCursor(c)}}}}}};function Tn(t,e,n,r){return n=n||{},r=r||"",j(t).forEach(s=>{if(W(e,s)){var i=t[s],a=e[s];if(typeof i=="object"&&typeof a=="object"&&i&&a){const o=Ht(i);o!==Ht(a)?n[r+s]=e[s]:o==="Object"?Tn(i,a,n,r+s+"."):i!==a&&(n[r+s]=e[s])}else i!==a&&(n[r+s]=e[s])}else n[r+s]=void 0}),j(e).forEach(s=>{W(t,s)||(n[r+s]=e[s])}),n}const Ws={stack:"dbcore",name:"HooksMiddleware",level:2,create:t=>({...t,table(e){const n=t.table(e),{primaryKey:r}=n.schema;return{...n,mutate(i){const a=P.trans,{deleting:o,creating:l,updating:d}=a.table(e).hook;switch(i.type){case"add":if(l.fire===R)break;return a._promise("readwrite",()=>c(i),!0);case"put":if(l.fire===R&&d.fire===R)break;return a._promise("readwrite",()=>c(i),!0);case"delete":if(o.fire===R)break;return a._promise("readwrite",()=>c(i),!0);case"deleteRange":if(o.fire===R)break;return a._promise("readwrite",()=>function(u){return h(u.trans,u.range,1e4)}(i),!0)}return n.mutate(i);function c(u){const f=P.trans,g=u.keys||function(y,v){return v.type==="delete"?v.keys:v.keys||v.values.map(y.extractKey)}(r,u);if(!g)throw new Error("Keys missing");return(u=u.type==="add"||u.type==="put"?{...u,keys:g}:{...u}).type!=="delete"&&(u.values=[...u.values]),u.keys&&(u.keys=[...u.keys]),function(y,v,m){return v.type==="add"?Promise.resolve([]):y.getMany({trans:v.trans,keys:m,cache:"immutable"})}(n,u,g).then(y=>{const v=g.map((m,p)=>{const _=y[p],x={onerror:null,onsuccess:null};if(u.type==="delete")o.fire.call(x,m,_,f);else if(u.type==="add"||_===void 0){const C=l.fire.call(x,m,u.values[p],f);m==null&&C!=null&&(m=C,u.keys[p]=m,r.outbound||Y(u.values[p],r.keyPath,m))}else{const C=Tn(_,u.values[p]),E=d.fire.call(x,C,m,_,f);if(E){const w=u.values[p];Object.keys(E).forEach(T=>{W(w,T)?w[T]=E[T]:Y(w,T,E[T])})}}return x});return n.mutate(u).then(({failures:m,results:p,numFailures:_,lastResult:x})=>{for(let C=0;C<g.length;++C){const E=p?p[C]:g[C],w=v[C];E==null?w.onerror&&w.onerror(m[C]):w.onsuccess&&w.onsuccess(u.type==="put"&&y[C]?u.values[C]:E)}return{failures:m,results:p,numFailures:_,lastResult:x}}).catch(m=>(v.forEach(p=>p.onerror&&p.onerror(m)),Promise.reject(m)))})}function h(u,f,g){return n.query({trans:u,values:!1,query:{index:r,range:f},limit:g}).then(({result:y})=>c({type:"delete",keys:y,trans:u}).then(v=>v.numFailures>0?Promise.reject(v.failures[0]):y.length<g?{failures:[],numFailures:0,lastResult:void 0}:h(u,{...f,lower:y[y.length-1],lowerOpen:!0},g)))}}}}})};function Dr(t,e,n){try{if(!e||e.keys.length<t.length)return null;const r=[];for(let s=0,i=0;s<e.keys.length&&i<t.length;++s)H(e.keys[s],t[i])===0&&(r.push(n?nt(e.values[s]):e.values[s]),++i);return r.length===t.length?r:null}catch{return null}}const Ys={stack:"dbcore",level:-1,create:t=>({table:e=>{const n=t.table(e);return{...n,getMany:r=>{if(!r.cache)return n.getMany(r);const s=Dr(r.keys,r.trans._cache,r.cache==="clone");return s?S.resolve(s):n.getMany(r).then(i=>(r.trans._cache={keys:r.keys,values:r.cache==="clone"?nt(i):i},i))},mutate:r=>(r.type!=="add"&&(r.trans._cache=null),n.mutate(r))}}})};function Dn(t){return!("from"in t)}const ee=function(t,e){if(!this){const n=new ee;return t&&"d"in t&&V(n,t),n}V(this,arguments.length?{d:1,from:t,to:arguments.length>1?e:t}:{d:0})};function tt(t,e,n){const r=H(e,n);if(isNaN(r))return;if(r>0)throw RangeError();if(Dn(t))return V(t,{from:e,to:n,d:1});const s=t.l,i=t.r;if(H(n,t.from)<0)return s?tt(s,e,n):t.l={from:e,to:n,d:1,l:null,r:null},Vn(t);if(H(e,t.to)>0)return i?tt(i,e,n):t.r={from:e,to:n,d:1,l:null,r:null},Vn(t);H(e,t.from)<0&&(t.from=e,t.l=null,t.d=i?i.d+1:1),H(n,t.to)>0&&(t.to=n,t.r=null,t.d=t.l?t.l.d+1:1);const a=!t.r;s&&!t.l&&At(t,s),i&&a&&At(t,i)}function At(t,e){Dn(e)||function n(r,{from:s,to:i,l:a,r:o}){tt(r,s,i),a&&n(r,a),o&&n(r,o)}(t,e)}function Js(t,e){const n=fn(e);let r=n.next();if(r.done)return!1;let s=r.value;const i=fn(t);let a=i.next(s.from),o=a.value;for(;!r.done&&!a.done;){if(H(o.from,s.to)<=0&&H(o.to,s.from)>=0)return!0;H(s.from,o.from)<0?s=(r=n.next(o.from)).value:o=(a=i.next(s.from)).value}return!1}function fn(t){let e=Dn(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&&H(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||H(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 Vn(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),s=r>1?"r":r<-1?"l":"";if(s){const i=s==="r"?"l":"r",a={...t},o=t[s];t.from=o.from,t.to=o.to,t[s]=o[s],a[s]=o[i],t[i]=a,a.d=zn(a)}t.d=zn(t)}function zn({r:t,l:e}){return(t?e?Math.max(t.d,e.d):t.d:e?e.d:0)+1}Be(ee.prototype,{add(t){return At(this,t),this},addKey(t){return tt(this,t,t),this},addKeys(t){return t.forEach(e=>tt(this,e,e)),this},[Vt](){return fn(this)}});const Qs={stack:"dbcore",level:0,create:t=>{const e=t.schema.name,n=new ee(t.MIN_KEY,t.MAX_KEY);return{...t,table:r=>{const s=t.table(r),{schema:i}=s,{primaryKey:a}=i,{extractKey:o,outbound:l}=a,d={...s,mutate:u=>{const f=u.trans,g=f.mutatedParts||(f.mutatedParts={}),y=E=>{const w=`idb://${e}/${r}/${E}`;return g[w]||(g[w]=new ee)},v=y(""),m=y(":dels"),{type:p}=u;let[_,x]=u.type==="deleteRange"?[u.range]:u.type==="delete"?[u.keys]:u.values.length<50?[[],u.values]:[];const C=u.trans._cache;return s.mutate(u).then(E=>{if(F(_)){p!=="delete"&&(_=E.results),v.addKeys(_);const w=Dr(_,C);w||p==="add"||m.addKeys(_),(w||x)&&function(T,k,B,D){function q($){const N=T($.name||"");function Ce(z){return z!=null?$.extractKey(z):null}const Pe=z=>$.multiEntry&&F(z)?z.forEach(me=>N.addKey(me)):N.addKey(z);(B||D).forEach((z,me)=>{const $e=B&&Ce(B[me]),Kt=D&&Ce(D[me]);H($e,Kt)!==0&&($e!=null&&Pe($e),Kt!=null&&Pe(Kt))})}k.indexes.forEach(q)}(y,i,w,x)}else if(_){const w={from:_.lower,to:_.upper};m.add(w),v.add(w)}else v.add(n),m.add(n),i.indexes.forEach(w=>y(w.name).add(n));return E})}},c=({query:{index:u,range:f}})=>{var g,y;return[u,new ee((g=f.lower)!==null&&g!==void 0?g:t.MIN_KEY,(y=f.upper)!==null&&y!==void 0?y:t.MAX_KEY)]},h={get:u=>[a,new ee(u.key)],getMany:u=>[a,new ee().addKeys(u.keys)],count:c,query:c,openCursor:c};return j(h).forEach(u=>{d[u]=function(f){const{subscr:g}=P;if(g){const y=x=>{const C=`idb://${e}/${r}/${x}`;return g[C]||(g[C]=new ee)},v=y(""),m=y(":dels"),[p,_]=h[u](f);if(y(p.name||"").add(_),!p.isPrimaryKey){if(u!=="count"){const x=u==="query"&&l&&f.values&&s.query({...f,values:!1});return s[u].apply(this,arguments).then(C=>{if(u==="query"){if(l&&f.values)return x.then(({result:w})=>(v.addKeys(w),C));const E=f.values?C.result.map(o):C.result;f.values?v.addKeys(E):m.addKeys(E)}else if(u==="openCursor"){const E=C,w=f.values;return E&&Object.create(E,{key:{get:()=>(m.addKey(E.primaryKey),E.key)},primaryKey:{get(){const T=E.primaryKey;return m.addKey(T),T}},value:{get:()=>(w&&v.addKey(E.primaryKey),E.value)}})}return C})}m.add(n)}}return s[u].apply(this,arguments)}}),d}}}};class we{constructor(e,n){this._middlewares={},this.verno=0;const r=we.dependencies;this._options=n={addons:we.addons,autoOpen:!0,indexedDB:r.indexedDB,IDBKeyRange:r.IDBKeyRange,...n},this._deps={indexedDB:n.indexedDB,IDBKeyRange:n.IDBKeyRange};const{addons:s}=n;this._dbSchema={},this._versions=[],this._storeNames=[],this._allTables={},this.idbdb=null,this._novip=this;const i={dbOpenError:null,isBeingOpened:!1,onReadyBeingFired:null,openComplete:!1,dbReadyResolve:R,dbReadyPromise:null,cancelOpen:R,openCanceller:null,autoSchema:!0,PR1398_maxLoop:3};var a;i.dbReadyPromise=new S(o=>{i.dbReadyResolve=o}),i.openCanceller=new S((o,l)=>{i.cancelOpen=l}),this._state=i,this.name=e,this.on=Ge(this,"populate","blocked","versionchange","close",{ready:[xn,R]}),this.on.ready.subscribe=rr(this.on.ready.subscribe,o=>(l,d)=>{we.vip(()=>{const c=this._state;if(c.openComplete)c.dbOpenError||S.resolve().then(l),d&&o(l);else if(c.onReadyBeingFired)c.onReadyBeingFired.push(l),d&&o(l);else{o(l);const h=this;d||o(function u(){h.on.ready.unsubscribe(l),h.on.ready.unsubscribe(u)})}})}),this.Collection=(a=this,Ue(Ks.prototype,function(o,l){this.db=a;let d=xr,c=null;if(l)try{d=l()}catch(g){c=g}const h=o._ctx,u=h.table,f=u.hook.reading.fire;this._ctx={table:u,index:h.index,isPrimKey:!h.index||u.schema.primKey.keyPath&&h.index===u.schema.primKey.name,range:d,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:f!==Je?f:null}})),this.Table=function(o){return Ue(Os.prototype,function(l,d,c){this.db=o,this._tx=c,this.name=l,this.schema=d,this.hook=o._allTables[l]?o._allTables[l].hook:Ge(null,{creating:[_s,R],reading:[ws,Je],updating:[Es,R],deleting:[ks,R]})})}(this),this.Transaction=function(o){return Ue(Ms.prototype,function(l,d,c,h,u){this.db=o,this.mode=l,this.storeNames=d,this.schema=c,this.chromeTransactionDurability=h,this.idbtrans=null,this.on=Ge(this,"complete","error","abort"),this.parent=u||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 S((f,g)=>{this._resolve=f,this._reject=g}),this._completion.then(()=>{this.active=!1,this.on.complete.fire()},f=>{var g=this.active;return this.active=!1,this.on.error.fire(f),this.parent?this.parent._reject(f):g&&this.idbtrans&&this.idbtrans.abort(),M(f)})})}(this),this.Version=function(o){return Ue(qs.prototype,function(l){this.db=o,this._cfg={version:l,storesSource:null,dbschema:{},tables:{},contentUpgrade:null}})}(this),this.WhereClause=function(o){return Ue(Cr.prototype,function(l,d,c){this.db=o,this._ctx={table:l,index:d===":id"?null:d,or:c};const h=o._deps.indexedDB;if(!h)throw new I.MissingAPI;this._cmp=this._ascending=h.cmp.bind(h),this._descending=(u,f)=>h.cmp(f,u),this._max=(u,f)=>h.cmp(u,f)>0?u:f,this._min=(u,f)=>h.cmp(u,f)<0?u:f,this._IDBKeyRange=o._deps.IDBKeyRange})}(this),this.on("versionchange",o=>{o.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",o=>{!o.newVersion||o.newVersion<o.oldVersion?console.warn(`Dexie.delete('${this.name}') was blocked`):console.warn(`Upgrade '${this.name}' blocked by other connection holding version ${o.oldVersion/10}`)}),this._maxKey=et(n.IDBKeyRange),this._createTransaction=(o,l,d,c)=>new this.Transaction(o,l,d,this._options.chromeTransactionDurability,c),this._fireOnBlocked=o=>{this.on("blocked").fire(o),ze.filter(l=>l.name===this.name&&l!==this&&!l._state.vcFired).map(l=>l.on("versionchange").fire(o))},this.use(Gs),this.use(Ws),this.use(Qs),this.use(Ys),this.vip=Object.create(this,{_vip:{value:!0}}),s.forEach(o=>o(this))}version(e){if(isNaN(e)||e<.1)throw new I.Type("Given version is not a positive number");if(e=Math.round(10*e)/10,this.idbdb||this._state.isBeingOpened)throw new I.Schema("Cannot add version when database is open");this.verno=Math.max(this.verno,e);const n=this._versions;var r=n.filter(s=>s._cfg.version===e)[0];return r||(r=new this.Version(e),n.push(r),n.sort(Fs),r.stores({}),this._state.autoSchema=!1,r)}_whenReady(e){return this.idbdb&&(this._state.openComplete||P.letThrough||this._vip)?e():new S((n,r)=>{if(this._state.openComplete)return r(new I.DatabaseClosed(this._state.dbOpenError));if(!this._state.isBeingOpened){if(!this._options.autoOpen)return void r(new I.DatabaseClosed);this.open().catch(R)}this._state.dbReadyPromise.then(n,r)}).then(e)}use({stack:e,create:n,level:r,name:s}){s&&this.unuse({stack:e,name:s});const i=this._middlewares[e]||(this._middlewares[e]=[]);return i.push({stack:e,create:n,level:r??10,name:s}),i.sort((a,o)=>a.level-o.level),this}unuse({stack:e,name:n,create:r}){return e&&this._middlewares[e]&&(this._middlewares[e]=this._middlewares[e].filter(s=>r?s.create!==r:!!n&&s.name!==n)),this}open(){return Vs(this)}_close(){const e=this._state,n=ze.indexOf(this);if(n>=0&&ze.splice(n,1),this.idbdb){try{this.idbdb.close()}catch{}this._novip.idbdb=null}e.dbReadyPromise=new S(r=>{e.dbReadyResolve=r}),e.openCanceller=new S((r,s)=>{e.cancelOpen=s})}close(){this._close();const e=this._state;this._options.autoOpen=!1,e.dbOpenError=new I.DatabaseClosed,e.isBeingOpened&&e.cancelOpen(e.dbOpenError)}delete(){const e=arguments.length>0,n=this._state;return new S((r,s)=>{const i=()=>{this.close();var a=this._deps.indexedDB.deleteDatabase(this.name);a.onsuccess=K(()=>{(function({indexedDB:o,IDBKeyRange:l},d){!An(o)&&d!==Ot&&In(o,l).delete(d).catch(R)})(this._deps,this.name),r()}),a.onerror=Q(s),a.onblocked=this._fireOnBlocked};if(e)throw new I.InvalidArgument("Arguments not allowed in db.delete()");n.isBeingOpened?n.dbReadyPromise.then(i):i()})}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 j(this._allTables).map(e=>this._allTables[e])}transaction(){const e=zs.apply(this,arguments);return this._transaction.apply(this,e)}_transaction(e,n,r){let s=P.trans;s&&s.db===this&&e.indexOf("!")===-1||(s=null);const i=e.indexOf("?")!==-1;let a,o;e=e.replace("!","").replace("?","");try{if(o=n.map(d=>{var c=d instanceof this.Table?d.name:d;if(typeof c!="string")throw new TypeError("Invalid table argument to Dexie.transaction(). Only Table or String are allowed");return c}),e=="r"||e===Nt)a=Nt;else{if(e!="rw"&&e!=jt)throw new I.InvalidArgument("Invalid transaction mode: "+e);a=jt}if(s){if(s.mode===Nt&&a===jt){if(!i)throw new I.SubTransaction("Cannot enter a sub-transaction with READWRITE mode when parent transaction is READONLY");s=null}s&&o.forEach(d=>{if(s&&s.storeNames.indexOf(d)===-1){if(!i)throw new I.SubTransaction("Table "+d+" not included in parent transaction.");s=null}}),i&&s&&!s.active&&(s=null)}}catch(d){return s?s._promise(null,(c,h)=>{h(d)}):M(d)}const l=Tr.bind(null,this,a,o,s,r);return s?s._promise(a,l,"lock"):P.trans?Me(P.transless,()=>this._whenReady(l)):this._whenReady(l)}table(e){if(!W(this._allTables,e))throw new I.InvalidTable(`Table ${e} does not exist`);return this._allTables[e]}}const Xs=typeof Symbol<"u"&&"observable"in Symbol?Symbol.observable:"@@observable";class Zs{constructor(e){this._subscribe=e}subscribe(e,n,r){return this._subscribe(e&&typeof e!="function"?e:{next:e,error:n,complete:r})}[Xs](){return this}}function Rr(t,e){return j(e).forEach(n=>{At(t[n]||(t[n]=new ee),e[n])}),t}function ei(t){let e,n=!1;const r=new Zs(s=>{const i=_n(t);let a=!1,o={},l={};const d={get closed(){return a},unsubscribe:()=>{a=!0,pe.storagemutated.unsubscribe(f)}};s.start&&s.start(d);let c=!1,h=!1;function u(){return j(l).some(y=>o[y]&&Js(o[y],l[y]))}const f=y=>{Rr(o,y),u()&&g()},g=()=>{if(c||a)return;o={};const y={},v=function(m){i&&je();const p=()=>he(t,{subscr:m,trans:null}),_=P.trans?Me(P.transless,p):p();return i&&_.then(ie,ie),_}(y);h||(pe(Ze,f),h=!0),c=!0,Promise.resolve(v).then(m=>{n=!0,e=m,c=!1,a||(u()?g():(o={},l=y,s.next&&s.next(m)))},m=>{c=!1,n=!1,s.error&&s.error(m),d.unsubscribe()})};return g(),d});return r.hasValue=()=>n,r.getValue=()=>e,r}let pn;try{pn={indexedDB:O.indexedDB||O.mozIndexedDB||O.webkitIndexedDB||O.msIndexedDB,IDBKeyRange:O.IDBKeyRange||O.webkitIDBKeyRange}}catch{pn={indexedDB:null,IDBKeyRange:null}}const ye=we;function bt(t){let e=ne;try{ne=!0,pe.storagemutated.fire(t)}finally{ne=e}}Be(ye,{...ft,delete:t=>new ye(t,{addons:[]}).delete(),exists:t=>new ye(t,{addons:[]}).open().then(e=>(e.close(),!0)).catch("NoSuchDatabaseError",()=>!1),getDatabaseNames(t){try{return function({indexedDB:e,IDBKeyRange:n}){return An(e)?Promise.resolve(e.databases()).then(r=>r.map(s=>s.name).filter(s=>s!==Ot)):In(e,n).toCollection().primaryKeys()}(ye.dependencies).then(t)}catch{return M(new I.MissingAPI)}},defineClass:()=>function(t){V(this,t)},ignoreTransaction:t=>P.trans?Me(P.transless,t):t(),vip:dn,async:function(t){return function(){try{var e=hn(t.apply(this,arguments));return e&&typeof e.then=="function"?e:S.resolve(e)}catch(n){return M(n)}}},spawn:function(t,e,n){try{var r=hn(t.apply(n,e||[]));return r&&typeof r.then=="function"?r:S.resolve(r)}catch(s){return M(s)}},currentTransaction:{get:()=>P.trans||null},waitFor:function(t,e){const n=S.resolve(typeof t=="function"?ye.ignoreTransaction(t):t).timeout(e||6e4);return P.trans?P.trans.waitFor(n):n},Promise:S,debug:{get:()=>X,set:t=>{cr(t,t==="dexie"?()=>!0:Er)}},derive:Re,extend:V,props:Be,override:rr,Events:Ge,on:pe,liveQuery:ei,extendObservabilitySet:Rr,getByKeyPath:se,setByKeyPath:Y,delByKeyPath:function(t,e){typeof e=="string"?Y(t,e,void 0):"length"in e&&[].map.call(e,function(n){Y(t,n,void 0)})},shallowClone:ar,deepClone:nt,getObjectDiff:Tn,cmp:H,asap:sr,minKey:nn,addons:[],connections:ze,errnames:En,dependencies:pn,semVer:$n,version:$n.split(".").map(t=>parseInt(t)).reduce((t,e,n)=>t+e/Math.pow(10,2*n))}),ye.maxKey=et(ye.dependencies.IDBKeyRange),typeof dispatchEvent<"u"&&typeof addEventListener<"u"&&(pe(Ze,t=>{if(!ne){let e;Rt?(e=document.createEvent("CustomEvent"),e.initCustomEvent(ce,!0,!0,t)):e=new CustomEvent(ce,{detail:t}),ne=!0,dispatchEvent(e),ne=!1}}),addEventListener(ce,({detail:t})=>{ne||bt(t)}));let ne=!1;if(typeof BroadcastChannel<"u"){const t=new BroadcastChannel(ce);typeof t.unref=="function"&&t.unref(),pe(Ze,e=>{ne||t.postMessage(e)}),t.onmessage=e=>{e.data&&bt(e.data)}}else if(typeof self<"u"&&typeof navigator<"u"){pe(Ze,e=>{try{ne||(typeof localStorage<"u"&&localStorage.setItem(ce,JSON.stringify({trig:Math.random(),changedParts:e})),typeof self.clients=="object"&&[...self.clients.matchAll({includeUncontrolled:!0})].forEach(n=>n.postMessage({type:ce,changedParts:e})))}catch{}}),typeof addEventListener<"u"&&addEventListener("storage",e=>{if(e.key===ce){const n=JSON.parse(e.newValue);n&&bt(n.changedParts)}});const t=self.document&&navigator.serviceWorker;t&&t.addEventListener("message",function({data:e}){e&&e.type===ce&&bt(e.changedParts)})}S.rejectionMapper=function(t,e){if(!t||t instanceof Oe||t instanceof TypeError||t instanceof SyntaxError||!t.name||!Bn[t.name])return t;var n=new Bn[t.name](e||t.message,t);return"stack"in t&&re(n,"stack",{get:function(){return this.inner.stack}}),n},cr(X,Er);const Or=async(t,e)=>{const n=performance.now();try{await t()}finally{const r=performance.now()-n;let s=b.PerformanceMetrics[e];s||(s=b.registerMetric(e)),s.report(r/1e3)}},Kr=(t,e)=>{const n=performance.now();try{t()}finally{const r=performance.now()-n;let s=b.PerformanceMetrics[e];s||(s=b.registerMetric(e)),s.report(r/1e3)}},ti=30,ni=3e4;let Fe=0;const Br=()=>{b.sessionStorageHelper.setItem("sprig.disableReplayRecording","disabled")},Ee=()=>!!b.sessionStorageHelper.getItem("sprig.disableReplayRecording"),ri=["did not allow mutations","called in an invalid security context"],si=t=>{if(!t)return!0;for(const e of ri)if(t.toLowerCase().includes(e))return!1;return!0},ii=(t,e,{reportError:n=!0,extraInfo:r})=>{Ee()||e instanceof Error&&(Br(),si(e==null?void 0:e.message)&&(n&&window.UserLeap.reportError(t,e,r),li()))},ai=async(t,e,{reportError:n}={reportError:!0})=>{var s;let r;try{if(n&&((s=window.navigator.storage)!=null&&s.estimate)){const{quota:i,usage:a}=await window.navigator.storage.estimate();r={availableSpaceInMB:i&&a?(i-a)/(1024*1024):void 0,quota:i,usage:a}}}catch(i){window.UserLeap.reportError("Error getting storage estimate",i,{originalMessage:t,originalError:e})}ii(t,e,{reportError:n,extraInfo:r})},oi=()=>{const t=b.sessionStorageHelper.getItem("sprig.sessionId");if(t)return b.info(`Found saved session id: ${t}`),b.sessionStorageHelper.removeItem("sprig.sessionId"),t;const e=b.v4();return b.info(`Generating new uuid: ${e}`),e},L=oi();window.addEventListener("beforeunload",()=>{b.info(`Before page unload saving session id: ${L}`),b.sessionStorageHelper.setItem("sprig.sessionId",L)});const li=async()=>{A.transaction("rw",A.events,A.chunkUploads,A.pendingCaptures,()=>{A.events.clear(),A.chunkUploads.clear(),A.pendingCaptures.clear()}).catch(()=>{})},Lt=(t,e,n=()=>!0)=>A.table(e).where("timestamp").below(t).and(n).delete(),ci=async(t,e)=>{let n=[];return await Or(async()=>{n=await A.events.where("[sessionId+timestamp]").between([L,t],[L,e??Date.now()]).toArray()},"sdk_replay_get_events_between_seconds"),n},ui=(t,e,n)=>{const r=new Date,s=r.setMinutes(r.getMinutes()+(n??ti));return A.events.where("[sessionId+timestamp]").between([L,t],[L,e]).modify({expiredAt:s})},di=t=>A.chunkUploads.add({...t,sessionId:t.sessionId??L}),hi=(t,e)=>A.chunkUploads.update(t,{data:null,etag:e,status:"UploadComplete"}),fi=({status:t,uploadId:e})=>e?A.chunkUploads.where({uploadId:e,status:t}).toArray():A.chunkUploads.where({sessionId:L,status:t}).toArray(),pi=t=>A.chunkUploads.where({uploadId:t,status:"UploadComplete"}).toArray(),mi=t=>A.chunkUploads.where({uploadId:t,status:"UploadComplete"}).delete(),yi=t=>A.pendingCaptures.add({...t,sessionId:t.sessionId??L,canUpload:!1}),Nr=async t=>{let e=await A.pendingCaptures.where("sessionId").equals(L).toArray();return t.beforePresent&&(e=e.filter(n=>n.targetTimestamp<Date.now())),t.isHeatmap&&(e=e.filter(n=>n.captureParams.isHeatmap??!1)),e},gi=()=>A.pendingCaptures.where("sessionId").equals(L).toArray(),vi=t=>A.pendingCaptures.where("sessionId").equals(L).and(e=>e.captureParams.responseGroupId===t).modify({canUpload:!0}),bi=async t=>{var e;if((e=window.navigator.storage)!=null&&e.estimate){const{quota:n,usage:r}=await window.navigator.storage.estimate();if(n&&r&&(n-r)/1073741824<t)return!1}return!0},jr=async t=>{if(parseInt(b.sessionStorageHelper.getItem("sprig.pendingCount")??"0")===0)return;const n=Date.now();return ae(async()=>{await A.pendingCaptures.where("sessionId").equals(L).and(r=>r.captureParams.isHeatmap??!1).and(r=>t?t.includes(r.uuid):!0).modify(r=>{r.targetTimestamp=n,r.captureParams.triggerTimestamp=n,r.captureParams.replayParams.replayDurationSeconds=Math.floor((n-r.timestamp)/1e3)})},"Error marking pending heatmaps ready")},wi=async()=>{const e=(await Nr({isHeatmap:!0})).map(r=>({eventId:r.captureParams.eventId,uuid:r.uuid})),n=[];e.forEach(({eventId:r,uuid:s})=>{b.checkUrlStillMatching(r)||n.push(s)}),n.length&&jr(n)},_i=t=>{if(t>1){Fe=0;return}const e=Date.now();if(!Fe){Fe=e;return}e-Fe>=ni&&(jr(),Fe=0)};class ki extends we{constructor(){super("replayStorage",{autoOpen:!1});Ie(this,"events");Ie(this,"chunkUploads");Ie(this,"pendingCaptures")}}const A=new ki;A.version(1).stores({events:"uuid, timestamp, [sessionId+timestamp]",chunkUploads:"uuid, timestamp, [sessionId+status], [uploadId+status], [sessionId+status+uploadId]",pendingCaptures:"uuid, timestamp, [sessionId+targetTimestamp]"});A.open().catch(t=>{b.error(`Error opening replay storage: ${JSON.stringify(t)}`),Br()});const Ei=t=>{if(t instanceof Attr)return null;let e=1;for(let n=t.previousSibling;n;n=n.previousSibling)n.nodeName===t.nodeName&&++e;return e},Mr=t=>{if(t===null)return"";const e=[];if(t instanceof Document)return"/";for(let n=t;n&&!(n instanceof Document)&&n!==null;n=n instanceof Attr?n.ownerElement:n.parentElement){const r=e[e.length]={name:void 0,position:null};switch(n.nodeType){case Node.TEXT_NODE:r.name="text()";break;case Node.ATTRIBUTE_NODE:r.name="@"+n.nodeName;break;case Node.PROCESSING_INSTRUCTION_NODE:r.name="processing-instruction()";break;case Node.COMMENT_NODE:r.name="comment()";break;case Node.ELEMENT_NODE:r.name=n.nodeName;break}r.position=Ei(n)}return"/"+e.reverse().map(n=>n.position!==null?`/${n.name}[${n.position}]`:`/${n.name}`).join("")},ue={capture:!0,passive:!0},xi=["a","button","input","option","li","link"],Si=["Escape","Enter","Backspace","F5","Tab"];let Tt=!1;const Ci=["label","type","role","title","placeholder","errormessage","valuetext","href"],Gn="aria-",Pi=t=>{if(!t.tagName)return"No tagName";const e=t.getAttribute("type");return e?`${e} ${t.tagName.toLowerCase()}`:t.tagName.toLowerCase()},Wn=t=>{var r;if(((r=t.tagName)==null?void 0:r.toLowerCase())==="html")return{element:"html"};const e=t.textContent,n=e?{text:e}:{};n.element=Pi(t);for(const s of t.attributes){let i=s.name;const a=s.value;i.startsWith(Gn)&&(i=i.substring(Gn.length)),Ci.includes(i)&&(n[i]=a)}return n},Ii=t=>{var s;if(!t)return{};const n={...Wn(t)},r=t.parentElement;if(r&&xi.includes((s=r.tagName)==null?void 0:s.toLowerCase())){const i=Wn(r);Object.assign(n,i)}return n},$r=(t,e)=>{var n;es({x:e.x,y:e.y,type:t,elementAttributes:Ii(e.target),windowHeight:window.innerHeight,windowWidth:window.innerWidth,...e.target instanceof HTMLElement?{rect:(n=e.target)==null?void 0:n.getBoundingClientRect(),xPath:Mr(e.target)}:{}})},Ai=t=>e=>$r(t,e),Ur=t=>{Si.includes(t.key)&&rs({key:t.key})},Ti=()=>{window.performance.getEntriesByType("navigation").map(e=>e.type).includes("reload")&&ts({url:window.location.href,currentPageTitle:document.title})},Di=()=>{window.performance.getEntriesByType("navigation").map(e=>e.type).includes("back_forward")&&ns({curUrl:window.location.href,fromUrl:document.referrer,currentPageTitle:document.title})},Ri=(t,e)=>{let n;return r=>{clearTimeout(n),n=window.setTimeout(()=>t(r),e)}},Oi=t=>{if(!(t.target instanceof HTMLElement||t.target instanceof Document))return;let e=t.target;"scrollTop"in e||(e=e.documentElement),ss({xPath:Mr(e),x:e.scrollLeft,y:e.scrollTop,elementAttributes:{targetScrollWidth:e.scrollWidth,targetClientWidth:e.clientWidth,targetScrollHeight:e.scrollHeight,targetClientHeight:e.clientHeight}})},Fr=Ri(Oi,750),Lr=Ai("left_click"),qr=t=>{t.button===2&&$r("right_click",t)},Ki=()=>{Tt||(window.addEventListener("click",Lr,ue),window.addEventListener("mousedown",qr,ue),window.addEventListener("keydown",Ur,ue),window.addEventListener("scroll",Fr,ue),Tt=!0,Ti(),Di())},Bi=()=>{Tt&&(window.removeEventListener("click",Lr,ue),window.removeEventListener("mousedown",qr,ue),window.removeEventListener("keydown",Ur,ue),window.removeEventListener("scroll",Fr,ue),Tt=!1)},Ni=async(t,e,n)=>new Promise((r,s)=>{const i=t.createElement("script");i.src=e,i.onload=r,i.onerror=s,n&&(i.nonce=n),t.head.appendChild(i)});let Yn=1,mn=5e3,wt=6e4;const ji=5,Jn=1e3,Hr=30,Dt=Hr+ji;let yn,gn,Vr,Qn=Date.now(),Ne=!1,_t;const zr={},Mi=async({viewDocument:t,maxReplayDurationSeconds:e,replayNonce:n,maxInflightRequests:r=2,replaySettings:s,teardownAfter:i=!1})=>{Ne||(i&&b.sessionStorageHelper.setItem("sprig.teardownAfterCapture","true"),await ae(async()=>{if(Ee()){b.info("Not initializing replay because recording is disabled");return}if(!e){b.info("Not initializing replay because config didn't specify maxReplayDurationSeconds");return}if(s!=null&&s.minAvailableGb&&(Yn=s.minAvailableGb),!await bi(Yn)){b.warn("Minimum storage not available");return}if(b.info("Initializing replay"),s!=null&&s.minDuration&&(mn=s.minDuration),s!=null&&s.batchDuration&&(wt=s.batchDuration),ls(r),Vi(),Fi(e+Dt,30*60,e+Dt),Li(),!window.rrwebRecord){b.info("Loading recording script");const d=window.UserLeap.replayLibraryURL??"https://cdn.sprig.com/dependencies/record-2.0.0-alpha.6.min.js";await Ni(t,d,n),b.info("Recording script finished loading")}const a=window.rrwebRecord;if(!a){b.warn("Record script failed to set global function");return}let o=!0,l=0;_t=a({checkoutEveryNms:Hr*1e3,sampling:{input:"last",scroll:250,media:800},emit:(d,c)=>{if(Ee())return;if(Qn=Date.now(),c&&d.type===ht.Meta)l=performance.now();else if(c&&l&&d.type===ht.FullSnapshot){const u=performance.now()-l;b.reportAndRegister("sdk_replay_snapshot_seconds",u/1e3)}const h=o||!!c&&d.type===ht.Meta;o=!1,$i({uuid:b.v4(),event:JSON.stringify(d),isValidStart:h,timestamp:Date.now()})},...s}),Ne=!0,gn||(gn=window.setInterval(()=>{Date.now()-Qn>Jn&&J("Sprig_Noop",{})},Jn)),b.eventEmitter.on("survey.complete",d=>{Zr({id:d,userAgent:window.navigator.userAgent})}),Ki()},"Error initializing replay"))};let de=b.sessionStorageHelper.getItem("sprig.pendingCount"),Rn=!!b.sessionStorageHelper.getItem("sprig.isCapturingHeatmap"),vn=!1,bn=[];const $i=t=>{var e,n,r,s;if((e=t.event)!=null&&e.includes("Sprig_Scroll")){const i=(s=(r=(n=JSON.parse(t.event))==null?void 0:n.data)==null?void 0:r.payload)==null?void 0:s.xPath;if(!i)return;const a=b.v4();zr[i]=a,t.uuid=a}bn.push(t),vn||Ui()},Gr=t=>{const e=t.map(n=>({...n,sessionId:n.sessionId??L}));if(Rn&&_i(e.length),e.length!==0)return A.transaction("rw",A.events,()=>{A.events.bulkAdd(e)}).catch(n=>{Se("Error storing replay events",n)})},Ui=()=>{vn=!0,setTimeout(async()=>{if(Ee())return;const t=bn;bn=[],vn=!1,Kr(async()=>{await Gr(t)},"sdk_replay_add_event_batch_seconds")},500)},Fi=(t=6*60,e=30*60,n=4*60)=>{yn=window.setInterval(()=>{const r=Date.now();Ee()||(b.debug(`Performing periodic replay data cleanup / Event Seconds ${t} / Chunk Seconds ${e} / Pending Capture Seconds ${n}`),Or(()=>A.transaction("rw!",A.events,A.chunkUploads,A.pendingCaptures,()=>{Lt(r-t*1e3,"events",s=>s.expiredAt===void 0||s.expiredAt<r-t*1e3),Lt(r-e*1e3,"chunkUploads"),Lt(r-n*1e3,"pendingCaptures",s=>s.canUpload===void 0||s.canUpload===!1)}).catch(s=>{clearInterval(yn),Se("Error deleting table rows",s)}),"sdk_replay_cleanup_seconds"),b.info("Cleanup complete"))},30*1e3)},Li=(t=5)=>{Vr=window.setInterval(async()=>{ae(async()=>{const e=parseInt(de??"0");if(e===0)return;const n=await Nr({beforePresent:!0});n!=null&&n.length&&(await Promise.all(n.map(async r=>(await A.pendingCaptures.delete(r.uuid),Jr(r.captureParams,r.canUpload)))),de=(e-n.length).toString(),b.sessionStorageHelper.setItem("sprig.pendingCount",de))},"Error initiating pending captures")},t*1e3)},qi=async(t,e,n,r,s)=>{const i=Math.min(t+s,n),a=`from: ${new Date(t).toLocaleTimeString()} to ${new Date(i).toLocaleTimeString()}`;b.info(`Getting event batch ${a}`);const o=await ci(t,i);if(!(o!=null&&o.length))return b.info(`No events found ${a}`),{validStartFound:r,events:[]};if(!r){b.info(`Searching for valid start in ${o.length} events ${a}`);let l=-1;if(o==null||o.forEach((c,h)=>{if(!c.isValidStart)return;const u=c.timestamp<=e;(l<0||u)&&(l=h)}),l<0)return b.info(`No valid start found in ${o.length} events ${a}`),{validStartFound:r,events:[]};const d=o[l].timestamp;return b.info(`Found valid start at: ${new Date(d).toLocaleTimeString()} in events ${a}`),{validStartFound:!0,events:o==null?void 0:o.slice(l)}}return{validStartFound:r,events:o}},Hi=(t,e,n)=>{const r=t.length,s=e*1024*1024,i=Math.ceil(r/n),a=Math.max(s,i);b.info(`Total file bytes: ${r} / target chunk size: ${a}`);const o=[];let l=0;for(;l<r;)o.push(t.slice(l,l+a)),l+=a;return o},Wr=t=>Promise.all(t.map(async e=>{const n=await cs(e);return await hi(e.uuid,n),e.uploadId})),Yr=async t=>{b.info(`Marking upload complete if finished: ${t}`);const e=await pi(t);if(!(e!=null&&e.length)){b.info(`No finished chunks found for upload: ${t}`);return}const n=e.reduce((i,a)=>(i.find(o=>o.chunkIndex===a.chunkIndex)||i.push(a),i),[]);n.sort((i,a)=>i.chunkIndex-a.chunkIndex);const r=n.map(i=>({ETag:i.etag,PartNumber:i.chunkIndex})).filter(i=>i.ETag!==null),s=n[0];await tr({apiUrl:s.apiUrl,surveyId:s.surveyId,uploadId:t,responseGroupUuid:s.responseGroupId,etags:r,headers:s.completeUploadHeaders,replayDuration:s.replayDuration}),b.info(`Cleaning up chunks for ${t}`),await mi(t),b.info(`Done cleaning up chunks for ${t}`)},Vi=async()=>{ae(async()=>{const t=await fi({status:"ReadyForUpload"});if(!(t!=null&&t.length))return;const e=await Wr(t);b.info(`Finished uploading unfinished chunks for ${e}`),e!=null&&e.length&&await Promise.all(e.map(n=>{if(n)return Yr(n)}))},"Error uploading unfinished chunks")},zi=async(t,e)=>{await Wr(e),b.info(`Done uploading chunks for uploads: ${t.join(",")}`),await Promise.all(t.map(n=>Yr(n)))},Gi=t=>{let e=0;t.forEach(s=>{e+=s.length});const n=new Uint8Array(e);let r=0;return t.forEach(s=>{n.set(s,r),r+=s.length}),n},Xn=async(t,e,n)=>{const r=new TextEncoder;let s=null,i=null,a=null,o=!1,l=!1,[d,c]=[0,0];const h=t-Dt*1e3,u=[];let f=[];b.info(`Getting events between ${new Date(t).toLocaleTimeString()} and ${new Date(e).toLocaleTimeString()}`),b.info(`Using batch duration: ${wt}ms`);for(let y=h;y<e;y+=wt){if({validStartFound:l,events:f}=await qi(y,t,e,l,wt),!(f!=null&&f.length)){b.info("No events found");continue}d===0&&(d=f[0].timestamp),c=f[f.length-1].timestamp,b.info(`Last event time in batch: ${new Date(c).toLocaleTimeString()}`);const v=`${o?",":"["}${f.map(p=>p.event).join(",")}`,m=r.encode(v);n&&i===null&&(b.debug("Attempting compression"),a=new window.CompressionStream("gzip"),i=a.writable.getWriter()),Kr(()=>{n&&i?i.write(m):u.push(m)},"sdk_replay_compression_seconds"),o=!0}if(c-d<mn)return b.info(`Replay duration is shorter than minimum of ${mn}ms / Start:${d} / End:${c}`),null;const g=r.encode("]");return b.debug("Writing final close brace"),i&&a?(i.write(g),i.close(),s=new Uint8Array(await new Response(a.readable).arrayBuffer())):(u.push(g),s=Gi(u)),b.info("Finished generating file data"),s},Wi=async(t,e)=>{const n=window.CompressionStream!==void 0;let r=null;const s=e??Date.now(),i=s-t;try{r=await Xn(i,s,n)}catch(a){a instanceof Error&&window.UserLeap.reportError("Error compressing replay",a),n&&ae(async()=>{await Xn(i,s,!1)},"fileData fallback failed")}return r},Zn=async t=>{const{surveyId:e,responseGroupId:n,visitorId:r,apiUrl:s,completeUploadHeaders:i,replayParams:a,triggerTimestamp:o}=t,l=await Wi(a.replayDurationSeconds*1e3,o);if(l!=null&&l.length)b.info(`Found file data for survey: ${e}`);else{b.info(`File data is empty for survey: ${e}`);return}const d=Hi(l,a.minimumChunkSizeMb,a.signedUrls.length);b.info(`Got ${d.length} chunks for survey: ${e}`);const c=await Promise.all(d.map(async(h,u)=>{const f=b.v4(),g={apiUrl:s,chunkIndex:u+1,completeUploadHeaders:i,etag:null,responseGroupId:n,status:"ReadyForUpload",surveyId:e,timestamp:o,totalChunks:d.length,data:h,uploadId:a.uploadId,uploadUrl:a.signedUrls[u].url,uuid:f,visitorId:r};return b.info(`Recording chunk upload: ${JSON.stringify({index:g.chunkIndex,surveyId:g.surveyId,uploadId:g.uploadId,size:h.length,id:f},null,2)}`),await di(g),b.info(`Done creating chunk upload: ${f}`),g}));b.info(`All chunk records created. Beginning upload for survey: ${e}`),await zi([a.uploadId],c)},Jr=async(t,e)=>{if(b.info(`Attempting replay capture: ${JSON.stringify({isStandalone:t.isStandalone,duration:t.replayParams.replayDurationSeconds,type:t.replayParams.replayDurationType,responseGroupId:t.responseGroupId,surveyId:t.surveyId,triggerTimestamp:t.triggerTimestamp,visitorId:t.visitorId},null,2)}`),Ee()){b.info(`Replay recording is disabled: ${t.surveyId}`);return}b.info(`Replay recording enabled: ${t.surveyId}`);const{isHeatmap:n,isStandalone:r,replayParams:s,triggerTimestamp:i,responseGroupId:a}=t,o=async()=>{setTimeout(()=>b.eventEmitter.removeListener(b.SprigEvent.QuestionAnswered,o),0),ae(async()=>{s.replayDurationType==="before"?await Zn(t):await vi(a)},"Error in schedule/capture callback")};ae(async()=>{if(s.replayDurationType==="after"||s.replayDurationType==="beforeAndAfter"){!r&&!n&&(b.info("Attaching QuestionAnswered listener for non-standalone replay"),b.eventEmitter.on(b.SprigEvent.QuestionAnswered,o)),b.info(`Scheduling capture for replay of type: ${s.replayDurationType}`),await Xr(t);return}if(r||n||e)b.info(`Proceeding to capture replay for survey: ${t.surveyId} / standalone? ${r} / canUpload? ${e}`),await Zn(t),n&&Yi();else{const d=Dt+s.replayDurationSeconds,c=i-d*1e3,h=i;b.info(`Setting expiry minutes to ${s.expirationTimeLimitMinutes} for events from ${new Date(c).toLocaleTimeString()} to ${new Date(h).toLocaleTimeString()}`),await ui(c,h,s.expirationTimeLimitMinutes),b.info("Attaching QuestionAnswered listener"),b.eventEmitter.on(b.SprigEvent.QuestionAnswered,o)}},"Error in scheduling/capturing replay")},Yi=async()=>{parseInt(de??"0")||(b.sessionStorageHelper.removeItem("sprig.isCapturingHeatmap"),Rn=!1),b.sessionStorageHelper.getItem("sprig.teardownAfterCapture")&&(On(),Qr(),b.sessionStorageHelper.removeItem("sprig.teardownAfterCapture"))},Qr=()=>{if(Ee()){b.debug("Not clearing user data, replay is disabled");return}return A.transaction("rw",A.events,A.pendingCaptures,()=>{A.events.where("sessionId").equals(L).delete(),A.pendingCaptures.where("sessionId").equals(L).delete()}).catch(t=>{Se("Error clearing session event data",t)})},Xr=async t=>{b.info(`Scheduling replay capture: ${JSON.stringify(t)}`);const{isHeatmap:e,surveyId:n}=t,r=await gi(),s=r==null?void 0:r.filter(o=>o.captureParams.surveyId===n);if(s!=null&&s.length){b.info(`Pending capture exists for survey: ${n}`);return}e&&(Qi(),Rn=!0,b.sessionStorageHelper.setItem("sprig.isCapturingHeatmap","true"));const i={...t,replayParams:{...t.replayParams}};t.replayParams.replayDurationType==="beforeAndAfter"&&(i.replayParams.replayDurationSeconds*=2),i.replayParams.replayDurationType="before";const a=t.triggerTimestamp+t.replayParams.replayDurationSeconds*1e3;return i.triggerTimestamp=a,de=de?(parseInt(de)+1).toString():"1",b.sessionStorageHelper.setItem("sprig.pendingCount",de),yi({uuid:b.v4(),targetTimestamp:a,timestamp:Date.now(),captureParams:i})},J=(t,e)=>{var n,r;if(Ne)try{(r=(n=window.rrwebRecord)==null?void 0:n.addCustomEvent)==null||r.call(n,t,e)}catch(s){Se("Error recording custom event",s)}},ae=async(t,e)=>{try{await t()}catch(n){Se(e,n)}},Ji=t=>{t.description&&(t.description=Kn(t.description)),J("Sprig_PageView",t)},Qi=()=>{var t,e;if(!(!Ne||!window.rrwebRecord))try{(e=(t=window.rrwebRecord)==null?void 0:t.takeFullSnapshot)==null||e.call(t,!0)}catch(n){Se("Error recording full snapshot",n)}},Xi=t=>{J("Sprig_TrackEvent",t)},Zi=t=>{J("Sprig_ShowSurvey",t)},Zr=t=>{J("Sprig_SubmitSurvey",t)},es=t=>{var e;(e=t==null?void 0:t.elementAttributes)!=null&&e.text&&(t.elementAttributes.text=Kn(t.elementAttributes.text)),J("Sprig_Click",t)},ts=t=>{J("Sprig_Refresh",t)},ns=t=>{t.currentPageTitle&&(t.currentPageTitle=Kn(t.currentPageTitle)),J("Sprig_BackForward",t)},rs=t=>{J("Sprig_Keystroke",t)},ss=async t=>{const{x:e,xPath:n,y:r}=t,s=zr[n];s?ae(async()=>{var a,o,l,d;const i=await A.events.get(s);if(i!=null&&i.event){const c=JSON.parse(i.event),h=e>((o=(a=c.data)==null?void 0:a.payload)==null?void 0:o.x)||0,u=r>((d=(l=c.data)==null?void 0:l.payload)==null?void 0:d.y)||0;if(!(h||u))return;h&&(c.data.payload.x=e),u&&(c.data.payload.y=r),c.data.payload.elementAttributes=t.elementAttributes,i.event=JSON.stringify(c),A.events.put(i)}else J("Sprig_Scroll",t)},"Error updating scroll event"):J("Sprig_Scroll",t)},On=()=>{_t&&(_t(),_t=void 0),Ne=!1,[yn,gn,Vr].forEach(t=>{t&&clearInterval(t)}),Bi()},Se=(t,e,{reportError:n}={reportError:!0})=>(On(),b.error(`${t} - ${JSON.stringify(e)}`),ai(t,e,{reportError:n})),ea=()=>Ne,Kn=t=>t&&t.trim().substring(0,500).replace(/\s\s+/g," ").replace(/\r?\n|\r/g," ").substring(0,250),ta=async({surveyId:t,responseGroupUuid:e,eventDigest:n,headers:r})=>{if(!t||!e)return!1;const s=window.UserLeap._API_URL;try{const i=await tr({surveyId:t,responseGroupUuid:e,eventDigest:n,apiUrl:s,headers:r},!0);return!(i!=null&&i.error)}catch(i){return console.warn("[Sprig] Error with completing session replay"),i instanceof Error&&window.UserLeap.reportError("completeSessionReplay",i),!1}},na=Object.freeze(Object.defineProperty({__proto__:null,RecordBackForward:ns,RecordClick:es,RecordEvent:Xi,RecordKeystroke:rs,RecordPageView:Ji,RecordRefresh:ts,RecordScroll:ss,RecordSurveyComplete:Zr,RecordSurveyShown:Zi,_completeSessionReplay:ta,batchStoreEvents:Gr,checkPendingHeatmapsUrl:wi,clearUserReplayData:Qr,disableRecording:Se,initializeReplay:Mi,isReplayRecording:ea,scheduleCapture:Xr,scheduleOrCaptureReplay:Jr,teardownReplay:On,tryReplayAction:ae},Symbol.toStringTag,{value:"Module"}));b.registerReplay(na);
|