tinybase 3.1.1 → 4.0.0-beta.0
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/lib/cjs/persister-yjs.cjs +1 -0
- package/lib/cjs/persister-yjs.cjs.gz +0 -0
- package/lib/cjs/persisters.cjs +1 -1
- package/lib/cjs/persisters.cjs.gz +0 -0
- package/lib/cjs/tinybase.cjs +1 -1
- package/lib/cjs/tinybase.cjs.gz +0 -0
- package/lib/cjs-es6/persister-yjs.cjs +1 -0
- package/lib/cjs-es6/persister-yjs.cjs.gz +0 -0
- package/lib/cjs-es6/persisters.cjs +1 -1
- package/lib/cjs-es6/persisters.cjs.gz +0 -0
- package/lib/cjs-es6/tinybase.cjs +1 -1
- package/lib/cjs-es6/tinybase.cjs.gz +0 -0
- package/lib/debug/persister-yjs.js +110 -0
- package/lib/debug/persisters.js +17 -23
- package/lib/debug/tinybase.js +17 -23
- package/lib/es6/persister-yjs.js +1 -0
- package/lib/es6/persister-yjs.js.gz +0 -0
- package/lib/es6/persisters.js +1 -1
- package/lib/es6/persisters.js.gz +0 -0
- package/lib/es6/tinybase.js +1 -1
- package/lib/es6/tinybase.js.gz +0 -0
- package/lib/persister-yjs.js +1 -0
- package/lib/persister-yjs.js.gz +0 -0
- package/lib/persisters.js +1 -1
- package/lib/persisters.js.gz +0 -0
- package/lib/tinybase.js +1 -1
- package/lib/tinybase.js.gz +0 -0
- package/lib/types/persister-yjs.d.ts +44 -0
- package/lib/types/persisters.d.ts +10 -8
- package/lib/types/with-schemas/persister-yjs.d.ts +53 -0
- package/lib/types/with-schemas/persisters.d.ts +16 -11
- package/lib/umd/persister-yjs.js +1 -0
- package/lib/umd/persister-yjs.js.gz +0 -0
- package/lib/umd/persisters.js +1 -1
- package/lib/umd/persisters.js.gz +0 -0
- package/lib/umd/tinybase.js +1 -1
- package/lib/umd/tinybase.js.gz +0 -0
- package/lib/umd-es6/persister-yjs.js +1 -0
- package/lib/umd-es6/persister-yjs.js.gz +0 -0
- package/lib/umd-es6/persisters.js +1 -1
- package/lib/umd-es6/persisters.js.gz +0 -0
- package/lib/umd-es6/tinybase.js +1 -1
- package/lib/umd-es6/tinybase.js.gz +0 -0
- package/package.json +9 -4
- package/readme.md +14 -14
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";const t=t=>null==t,e=(e,s,a)=>t(e)?a?.():s(e),s=Object.freeze;exports.createYjsPersister=(a,o)=>{const n=o.getMap("tinybase/store");return((a,o,r,u,c)=>{let d,i,l,v=0,p=!1;const y={load:async(e,s)=>{if(2!=v){v=1;const o=await(async()=>n.get("json"))();t(o)||""==o?a.transaction((()=>a.setTables(e).setValues(s))):a.setJson(o),v=0}return y},startAutoLoad:async(t,e)=>(y.stopAutoLoad(),await y.load(t,e),p=!0,l=(t=>{const e=()=>t();return n.observe(e),e})(y.load),y),stopAutoLoad:()=>{return p&&(t=l,n.unobserve(t),l=void 0,p=!1),y;var t},save:async()=>(1!=v&&(v=2,await(async t=>{n.set("json",t)})(a.getJson()),v=0),y),startAutoSave:async()=>(await y.stopAutoSave().save(),d=a.addTablesListener(y.save),i=a.addValuesListener(y.save),y),stopAutoSave:()=>(e(d,a.delListener),e(i,a.delListener),y),getStore:()=>a,destroy:()=>y.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return s(y)})(a)};
|
|
Binary file
|
package/lib/cjs/persisters.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e=require("fs");const t=e=>null==e,s=(e,s,a)=>t(e)?a?.():s(e),a=Object.freeze,r=(e,r,o,n,
|
|
1
|
+
"use strict";var e=require("fs");const t=e=>null==e,s=(e,s,a)=>t(e)?a?.():s(e),a=Object.freeze,r=(e,r,o,n,c)=>{let i,l,d,u=0,y=!1;const p={load:async(s,a)=>{if(2!=u){u=1;const o=await r();t(o)||""==o?e.transaction((()=>e.setTables(s).setValues(a))):e.setJson(o),u=0}return p},startAutoLoad:async(e,t)=>(p.stopAutoLoad(),await p.load(e,t),y=!0,d=n(p.load),p),stopAutoLoad:()=>(y&&(c(d),d=void 0,y=!1),p),save:async()=>(1!=u&&(u=2,await o(e.getJson()),u=0),p),startAutoSave:async()=>(await p.stopAutoSave().save(),i=e.addTablesListener(p.save),l=e.addValuesListener(p.save),p),stopAutoSave:()=>(s(i,e.delListener),s(l,e.delListener),p),getStore:()=>e,destroy:()=>p.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return a(p)},o=globalThis.window,n=(e,t,s)=>r(e,(async()=>s.getItem(t)),(async e=>s.setItem(t,e)),(e=>{const a=a=>{a.storageArea===s&&a.key===t&&e()};return o.addEventListener("storage",a),a}),(e=>o.removeEventListener("storage",e))),c=e=>e.headers.get("ETag");exports.createCustomPersister=r,exports.createFilePersister=(t,s)=>r(t,(async()=>{try{return await e.promises.readFile(s,"utf8")}catch{}}),(async t=>{try{await e.promises.writeFile(s,t,"utf8")}catch{}}),(t=>e.watch(s,t)),(e=>e?.close())),exports.createLocalPersister=(e,t)=>n(e,t,localStorage),exports.createRemotePersister=(e,s,a,o)=>{let n;return r(e,(async()=>{const e=await fetch(s);return n=c(e),e.text()}),(async e=>await fetch(a,{method:"POST",headers:{"Content-Type":"application/json"},body:e})),(e=>setInterval((async()=>{const a=await fetch(s,{method:"HEAD"}),r=c(a);t(n)||t(r)||r==n||(n=r,e())}),1e3*o)),(e=>clearInterval(e)))},exports.createSessionPersister=(e,t)=>n(e,t,sessionStorage);
|
|
Binary file
|
package/lib/cjs/tinybase.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e=require("fs");const t=e=>typeof e,s=t(""),n=t(!0),r=t(0),o=t(t),a=e=>""+e,l=(e,t)=>e.includes(t),i=(e,t)=>e.every(t),c=(e,t)=>L(e)===L(t)&&i(e,((e,s)=>t[s]===e)),d=(e,t)=>i(e,((s,n)=>0==n||t(e[n-1],s)<=0)),u=(e,t)=>e.sort(t),h=(e,t)=>e.forEach(t),f=(e,t)=>e.map(t),g=e=>p(e,((e,t)=>e+t),0),L=e=>e.length,w=e=>0==L(e),p=(e,t,s)=>e.reduce(t,s),v=(e,t,s)=>e.slice(t,s),R=(e,...t)=>e.push(...t),I=e=>e.pop(),S=e=>e.shift(),T=e=>JSON.stringify(e,((e,t)=>V(t,Map)?p([...t],((e,[t,s])=>(e[t]=s,e)),{}):t)),y=JSON.parse,b=Math.max,C=Math.min,m=isFinite,V=(e,t)=>e instanceof t,x=e=>null==e,E=(e,t,s)=>x(e)?s?.():t(e),k=e=>e==s||e==n,J=e=>t(e)==o,M=e=>Array.isArray(e),A=()=>{},D=e=>e.size,F=(e,t)=>e?.has(t)??!1,P=e=>x(e)||0==D(e),Q=e=>[...e?.values()??[]],z=e=>e.clear(),N=(e,t)=>e?.forEach(t),O=(e,t)=>e?.delete(t),j=e=>new Map(e),W=e=>[...e?.keys()??[]],q=(e,t)=>e?.get(t),B=(e,t)=>N(e,((e,s)=>t(s,e))),H=(e,t,s)=>x(s)?(O(e,t),e):e?.set(t,s),$=(e,t,s)=>(F(e,t)||H(e,t,s()),q(e,t)),G=(e,t,s)=>{const n={},r=t??(e=>e);return N(e,((e,t)=>E(r(e),(e=>s?.(e)?0:n[t]=e)))),n},K=(e,t)=>{const s=j(),n=t??(e=>e);return N(e,((e,t)=>s.set(t,n(e)))),s},U=e=>K(e,K),X=(e,t,s,n,r=0)=>E((s?$:q)(e,t[r],r>L(t)-2?s:j),(o=>{if(r>L(t)-2)return n?.(o)&&H(e,t[r]),o;const a=X(o,t,s,n,r+1);return P(o)&&H(e,t[r]),a})),Y=e=>{const s=t(e);return k(s)||s==r&&m(e)?s:void 0},Z=(e,t,s,n,r)=>x(r)?e.delCell(t,s,n,!0):e.setCell(t,s,n,r),_=(e,t,s)=>x(s)?e.delValue(t):e.setValue(t,s),ee=e=>new Set(M(e)||x(e)?e:[e]),te=(e,t)=>e?.add(t),se=(e,t,s)=>{const n=e.hasRow,r=j(),o=j(),a=j(),l=j(),i=j(),d=(t,s,...n)=>{const r=$(i,t,ee);return h(n,(t=>te(r,t)&&s&&e.callListener(t))),n},u=(t,...s)=>E(q(i,t),(n=>{h(w(s)?Q(n):s,(t=>{e.delListener(t),O(n,t)})),P(n)&&H(i,t)})),f=(e,s)=>{H(r,e,s),F(o,e)||(H(o,e,t()),H(a,e,j()),H(l,e,j()))},g=e=>{H(r,e),H(o,e),H(a,e),H(l,e),u(e)};return[()=>e,()=>W(r),e=>B(o,e),e=>F(o,e),e=>q(r,e),e=>q(o,e),(e,t)=>H(o,e,t),f,(t,r,o,i,g)=>{f(t,r);const L=j(),w=j(),p=q(a,t),v=q(l,t),R=t=>{const o=s=>e.getCell(r,t,s),a=q(p,t),l=n(r,t)?s(i(o,t)):void 0;if(a===l||M(a)&&M(l)&&c(a,l)||H(L,t,[a,l]),!x(g)){const e=q(v,t),s=n(r,t)?g(o,t):void 0;e!=s&&H(w,t,s)}},I=e=>{o((()=>{N(L,(([,e],t)=>H(p,t,e))),N(w,((e,t)=>H(v,t,e)))}),L,w,p,v,e),z(L),z(w)};B(p,R),e.hasTable(r)&&h(e.getRowIds(r),(e=>{F(p,e)||R(e)})),I(!0),u(t),d(t,0,e.addRowListener(r,null,((e,t,s)=>R(s))),e.addTableListener(r,(()=>I())))},g,()=>B(i,g),d,u]},ne=(e,n)=>t(e)==s?t=>t(e):e??(()=>n??""),re=e=>{const t=new WeakMap;return s=>(t.has(s)||t.set(s,e(s)),t.get(s))},oe=/^\d+$/,ae=()=>{const e=[];let t=0;return[s=>(s?S(e):null)??""+t++,t=>{oe.test(t)&&L(e)<1e3&&R(e,t)}]},le=e=>{let t;const[s,n]=ae(),r=j();return[(n,o,a,l=[],i=(()=>[]))=>{t??=e();const c=s(1);return H(r,c,[n,o,a,l,i]),te(X(o,a??[""],ee),c),c},(e,s,...n)=>h(((e,t=[""])=>{const s=[],n=(e,r)=>r==L(t)?R(s,e):null===t[r]?N(e,(e=>n(e,r+1))):h([t[r],null],(t=>n(q(e,t),r+1)));return n(e,0),s})(e,s),(e=>N(e,(e=>q(r,e)[0](t,...s??[],...n))))),e=>E(q(r,e),(([,t,s])=>(X(t,s??[""],void 0,(t=>(O(t,e),P(t)?1:0))),H(r,e),n(e),s))),e=>E(q(r,e),(([e,,s=[],n,r])=>{const o=(...a)=>{const l=L(a);l==L(s)?e(t,...a,...r(a)):x(s[l])?h(n[l]?.(...a)??[],(e=>o(...a,e))):o(...a,s[l])};o()}))]},ie=Object,ce=ie.keys,de=ie.isFrozen,ue=ie.freeze,he=e=>V(e,ie)&&e.constructor==ie,fe=(e,t)=>!x(((e,t)=>E(e,(e=>e[t])))(e,t)),ge=(e,t)=>delete e[t],Le=(e,t)=>f(ie.entries(e),(([e,s])=>t(s,e))),we=e=>he(e)&&w(ce(e)),pe=re((e=>{let t,s,n,r=100,o=j(),a=j(),i=1;const c=j(),d=j(),[u,f,g]=le((()=>U)),p=j(),v=j(),T=[],y=[],b=(t,s)=>{i=0,e.transaction((()=>{const[n,r]=q(p,s);N(n,((s,n)=>N(s,((s,r)=>N(s,((s,o)=>Z(e,n,r,o,s[t]))))))),N(r,((s,n)=>_(e,n,s[t])))})),i=1},C=e=>{H(p,e),H(v,e),f(d,[e])},m=(e,t)=>h(((e,t)=>e.splice(0,t))(e,t??L(e)),C),V=()=>m(T,L(T)-r),k=()=>E(t,(()=>{R(T,t),V(),m(y),t=void 0,n=1})),J=()=>{t=I(T),n=1},M=e.addCellListener(null,null,null,((e,t,s,n,r,a)=>{if(i){k();const e=$(o,t,j),l=$(e,s,j),i=$(l,n,(()=>[a,void 0]));i[1]=r,i[0]===r&&P(H(l,n))&&P(H(e,s))&&P(H(o,t))&&J(),O()}})),A=e.addValueListener(null,((e,t,s,n)=>{if(i){k();const e=$(a,t,(()=>[n,void 0]));e[1]=s,e[0]===s&&P(H(a,t))&&J(),O()}})),D=(e="")=>(x(t)&&(t=""+s++,H(p,t,[o,a]),G(t,e),o=j(),a=j(),n=1),t),Q=()=>{w(T)||(((e,...t)=>{e.unshift(...t)})(y,D()),b(0,t),t=I(T),n=1)},z=()=>{w(y)||(R(T,t),t=S(y),b(1,t),n=1)},O=()=>{n&&(f(c),n=0)},W=e=>{const t=D(e);return O(),t},G=(e,t)=>(K(e)&&q(v,e)!==t&&(H(v,e,t),f(d,[e])),U),K=e=>F(p,e),U={setSize:e=>(r=e,V(),U),addCheckpoint:W,setCheckpoint:G,getStore:()=>e,getCheckpointIds:()=>[[...T],t,[...y]],forEachCheckpoint:e=>B(v,e),hasCheckpoint:K,getCheckpoint:e=>q(v,e),goBackward:()=>(Q(),O(),U),goForward:()=>(z(),O(),U),goTo:e=>{const s=l(T,e)?Q:l(y,e)?z:null;for(;!x(s)&&e!=t;)s();return O(),U},addCheckpointIdsListener:e=>u(e,c),addCheckpointListener:(e,t)=>u(t,d,[e]),delListener:e=>(g(e),U),clear:()=>(m(T),m(y),x(t)||C(t),t=void 0,s=0,W(),U),destroy:()=>{e.delListener(M),e.delListener(A)},getListenerStats:()=>({})};return ue(U.clear())})),ve=(e,t)=>e<t?-1:1,Re=re((e=>{const t=j(),s=j(),[n,r,o,l,i,c,h,,g,L,w]=se(e,j,(e=>x(e)?"":M(e)?f(e,a):a(e))),[p,v,R]=le((()=>S)),I=(t,s,n)=>{const r=i(t);N(n,((t,n)=>s(n,(s=>N(t,(t=>s(t,(s=>e.forEachCell(r,t,s)))))))))},S={setIndexDefinition:(e,n,r,o,a,l=ve)=>{const i=x(a)?void 0:([e],[t])=>a(e,t);return g(e,n,((n,r,a,f,g,L)=>{let w=0;const p=ee(),R=ee(),I=c(e);if(N(r,(([e,t],s)=>{const n=ee(e),r=ee(t);N(n,(e=>O(r,e)?O(n,e):0)),N(n,(e=>{te(p,e),E(q(I,e),(t=>{O(t,s),P(t)&&(H(I,e),w=1)}))})),N(r,(e=>{te(p,e),F(I,e)||(H(I,e,ee()),w=1),te(q(I,e),s),x(o)||te(R,e)}))})),n(),P(g)||(L?B(I,(e=>te(R,e))):B(a,(e=>E(q(f,e),(e=>te(R,e))))),N(R,(e=>{const t=(t,s)=>l(q(g,t),q(g,s),e),s=[...q(I,e)];d(s,t)||(H(I,e,ee(u(s,t))),te(p,e))}))),(w||L)&&!x(i)){const t=[...I];d(t,i)||(h(e,j(u(t,i))),w=1)}w&&v(t,[e]),N(p,(t=>v(s,[e,t])))}),ne(r),E(o,ne)),S},delIndexDefinition:e=>(L(e),S),getStore:n,getIndexIds:r,forEachIndex:e=>o(((t,s)=>e(t,(e=>I(t,e,s))))),forEachSlice:(e,t)=>I(e,t,c(e)),hasIndex:l,hasSlice:(e,t)=>F(c(e),t),getTableId:i,getSliceIds:e=>W(c(e)),getSliceRowIds:(e,t)=>Q(q(c(e),t)),addSliceIdsListener:(e,s)=>p(s,t,[e]),addSliceRowIdsListener:(e,t,n)=>p(n,s,[e,t]),delListener:e=>(R(e),S),destroy:w,getListenerStats:()=>({})};return ue(S)})),Ie=j([["avg",[(e,t)=>g(e)/t,(e,t,s)=>e+(t-e)/(s+1),(e,t,s)=>e+(e-t)/(s-1),(e,t,s,n)=>e+(t-s)/n]],["max",[e=>b(...e),(e,t)=>b(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:b(t,e)]],["min",[e=>C(...e),(e,t)=>C(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:C(t,e)]],["sum",[e=>g(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),Se=(e,t,s,n,r,o=!1)=>{if(P(s))return;const[a,l,i,c]=r;return o||=x(e),N(n,(([s,n])=>{o||(e=x(s)?l?.(e,n,t++):x(n)?i?.(e,s,t--):c?.(e,n,s,t),o||=x(e))})),o?a(Q(s),D(s)):e},Te=re((e=>{const t=j(),[s,n,r,o,a,l,i,,c,d,u]=se(e,A,(e=>isNaN(e)||x(e)||!0===e||!1===e||""===e?void 0:1*e)),[h,f,g]=le((()=>L)),L={setMetricDefinition:(e,s,n,r,o,a,d)=>{const u=J(n)?[n,o,a,d]:q(Ie,n)??q(Ie,"sum");return c(e,s,((s,n,r,o,a,c)=>{const d=l(e),h=D(o);c||=x(d),s();let g=Se(d,h,o,n,u,c);m(g)||(g=void 0),g!=d&&(i(e,g),f(t,[e],g,d))}),ne(r,1)),L},delMetricDefinition:e=>(d(e),L),getStore:s,getMetricIds:n,forEachMetric:r,hasMetric:o,getTableId:a,getMetric:l,addMetricListener:(e,s)=>h(s,t,[e]),delListener:e=>(g(e),L),destroy:u,getListenerStats:()=>({})};return ue(L)})),ye=(e,t,s,n,r)=>{let o,a,l=0;const i={load:async(s,n)=>{if(2!=l){l=1;const r=await t();x(r)||""==r?e.transaction((()=>e.setTables(s).setValues(n))):e.setJson(r),l=0}return i},startAutoLoad:async(e,t)=>(i.stopAutoLoad(),await i.load(e,t),n(i.load),i),stopAutoLoad:()=>(r(),i),save:async()=>(1!=l&&(l=2,await s(e.getJson()),l=0),i),startAutoSave:async()=>(await i.stopAutoSave().save(),o=e.addTablesListener(i.save),a=e.addValuesListener(i.save),i),stopAutoSave:()=>(E(o,e.delListener),E(a,e.delListener),i),getStore:()=>e,destroy:()=>i.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return ue(i)},be=globalThis.window,Ce=(e,t,s)=>{let n;return ye(e,(async()=>s.getItem(t)),(async e=>s.setItem(t,e)),(e=>{n=n=>{n.storageArea===s&&n.key===t&&e()},be.addEventListener("storage",n)}),(()=>{be.removeEventListener("storage",n),n=void 0}))},me=e=>e.headers.get("ETag"),Ve=re((e=>{const t=e.createStore,[s,n,r,o,a,,,l,,c,d,u,f]=se(e,(()=>!0),A),g=t(),p=t(),I=j(),S=(e,t,...s)=>h(s,(s=>te($($(I,t,j),e,ee),s))),T=e=>{E(q(I,e),(e=>{B(e,((e,t)=>N(t,(t=>e.delListener(t))))),z(e)})),h([p,g],(t=>t.delTable(e)))},y=(e,t,s)=>S(t,e,t.addWillFinishTransactionListener(s.startTransaction),t.addDidFinishTransactionListener((()=>s.finishTransaction()))),b={setQueryDefinition:(t,s,n)=>{l(t,s),T(t);const r=[],o=[[null,[s,null,null,[],j()]]],a=[],c=[],d=[];n({select:(e,t)=>{const s=J(e)?[L(r)+"",e]:[x(t)?e:t,s=>s(e,t)];return R(r,s),{as:e=>s[0]=e}},join:(e,t,s)=>{const n=x(s)||J(t)?null:t,r=x(n)?t:s,a=[e,[e,n,J(r)?r:e=>e(r),[],j()]];return R(o,a),{as:e=>a[0]=e}},where:(e,t,s)=>R(a,J(e)?e:x(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,r)=>{const o=[e,[e,J(t)?[t,s,n,r]:q(Ie,t)??[(e,t)=>t]]];return R(c,o),{as:e=>o[0]=e}},having:(e,t)=>R(d,J(e)?e:s=>s(e)===t)});const v=j(r);if(P(v))return b;const I=j(o);B(I,((e,[,t])=>E(q(I,t),(({3:t})=>x(e)?0:R(t,e)))));const C=j(c);let m=g;if(P(C)&&w(d))m=p;else{y(t,m,p);const e=j();B(C,((t,[s,n])=>te($(e,s,ee),[t,n])));const s=ee();B(v,(t=>F(e,t)?0:te(s,t)));const n=j(),r=(s,n,r,o)=>E(s,(([a,l,c,u])=>{B(n,((t,[s])=>{const n=$(a,t,j),l=q(n,r),i=o?void 0:s;if(l!==i){const s=ee([[l,i]]),o=D(n);H(n,r,i),N(q(e,t),(([e,t])=>{const r=Se(u[e],o,n,s,t);u[e]=x(Y(r))?null:r}))}})),P(l)||!i(d,(e=>e((e=>u[e]))))?p.delRow(t,c):x(c)?s[2]=p.addRow(t,u):p.setRow(t,c,u)}));S(m,t,m.addRowListener(t,null,((o,a,l,i)=>{const c=[],d=[],u=j(),h=m.hasRow(t,l);let f=!h;N(s,(e=>{const[s,n,r]=i(t,l,e);R(c,n),R(d,r),f||=s})),B(e,(e=>{const[s,,n]=i(t,l,e);(f||s)&&H(u,e,[n])})),f&&r(X(n,c,void 0,(([,e])=>(O(e,l),P(e)))),u,l,1),h&&r(X(n,d,(()=>{const e={};return N(s,(s=>e[s]=m.getCell(t,l,s))),[j(),ee(),void 0,e]}),(([,e])=>{te(e,l)})),u,l)})))}y(t,e,m);const V=(n,r,o,l)=>{const c=t=>e.getCell(r,o,t);h(l,(s=>{const[r,,o,a,l]=q(I,s),i=o?.(c,n),[d,h]=q(l,n)??[];i!=d&&(x(h)||f(t,h),H(l,n,x(i)?null:[i,...u(t,1,e.addRowListener(r,i,(()=>V(n,r,i,a))))]))})),(n=>{const r=(t,r)=>e.getCell(...x(r)?[s,n,t]:t===s?[s,n,r]:[q(I,t)?.[0],q(q(I,t)?.[4],n)?.[0],r]);m.transaction((()=>i(a,(e=>e(r)))?B(v,((e,s)=>Z(m,t,n,e,s(r,n)))):m.delRow(t,n)))})(n)},{3:k}=q(I,null);return m.transaction((()=>u(t,1,e.addRowListener(s,null,((n,r,o)=>{e.hasRow(s,o)?V(o,s,o,k):(m.delRow(t,o),N(I,(({4:e})=>E(q(e,o),(([,s])=>{f(t,s),H(e,o)})))))}))))),b},delQueryDefinition:e=>(T(e),c(e),b),getStore:s,getQueryIds:n,forEachQuery:r,hasQuery:o,getTableId:a,delListener:e=>(p.delListener(e),b),destroy:d,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=p.getListenerStats();return n}};return Le({Table:[1,1],RowIds:[0,1],SortedRowIds:[0,5],Row:[1,2],CellIds:[0,2],Cell:[1,3]},(([e,t],s)=>{h(e?["get","has","forEach"]:["get"],(e=>b[e+"Result"+s]=(...t)=>p[e+s](...t))),b["addResult"+s+"Listener"]=(...e)=>p["add"+s+"Listener"](...v(e,0,t),((s,...n)=>e[t](b,...n)))})),ue(b)})),xe=re((e=>{const t=j(),s=j(),n=j(),r=j(),[o,a,l,i,c,d,,,u,h,f]=se(e,(()=>[j(),j(),j(),j()]),(e=>x(e)?void 0:e+"")),[g,L,w]=le((()=>I)),p=(e,t,s)=>E(d(e),(([n,,r])=>{if(!F(r,t)){const o=ee();if(c(e)!=R(e))te(o,t);else{let e=t;for(;!x(e)&&!F(o,e);)te(o,e),e=q(n,e)}if(s)return o;H(r,t,o)}return q(r,t)})),v=(e,t)=>E(d(e),(([,,e])=>H(e,t))),R=e=>q(t,e),I={setRelationshipDefinition:(e,o,a,l)=>(H(t,e,a),u(e,o,((t,o)=>{const a=ee(),l=ee(),i=ee(),[c,u]=d(e);N(o,(([t,s],n)=>{x(t)||(te(l,t),E(q(u,t),(e=>{O(e,n),P(e)&&H(u,t)}))),x(s)||(te(l,s),F(u,s)||H(u,s,ee()),te(q(u,s),n)),te(a,n),H(c,n,s),B(q(r,e),(t=>{F(p(e,t),n)&&te(i,t)}))})),t(),N(a,(t=>L(s,[e,t]))),N(l,(t=>L(n,[e,t]))),N(i,(t=>{v(e,t),L(r,[e,t])}))}),ne(l)),I),delRelationshipDefinition:e=>(H(t,e),h(e),I),getStore:o,getRelationshipIds:a,forEachRelationship:t=>l((s=>t(s,(t=>e.forEachRow(c(s),t))))),hasRelationship:i,getLocalTableId:c,getRemoteTableId:R,getRemoteRowId:(e,t)=>q(d(e)?.[0],t),getLocalRowIds:(e,t)=>Q(q(d(e)?.[1],t)),getLinkedRowIds:(e,t)=>x(d(e))?[t]:Q(p(e,t,!0)),addRemoteRowIdListener:(e,t,n)=>g(n,s,[e,t]),addLocalRowIdsListener:(e,t,s)=>g(s,n,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(p(e,t),g(s,r,[e,t])),delListener:e=>(v(...w(e)),I),destroy:f,getListenerStats:()=>({})};return ue(I)})),Ee=e=>[e,e],ke=()=>[j(),j()],Je=(e,t,s,n=H)=>{const r=(o=e=>!fe(t,e),W(e).filter(o));var o;return h(ce(t),(n=>s(e,n,t[n]))),h(r,(t=>n(e,t))),e},Me=(e,t,s)=>x(e)||!he(e)||we(e)||de(e)?(s?.(),!1):(Le(e,((s,n)=>{t(s,n)||ge(e,n)})),!we(e)),Ae=(e,t,s)=>H(e,t,q(e,t)==-s?void 0:s),De=()=>{let e,t,s,n,o=0;const i=j(),d=j(),g=j(),L=j(),w=j(),p=j(),I=j(),S=j(),b=j(),C=j(),m=j(),V=j(),M=ee(),A=j(),D=j(),Q=j(),X=ke(),se=ke(),ne=ke(),re=ke(),oe=ke(),ie=ke(),ce=ke(),de=ke(),he=ke(),pe=ke(),Re=ke(),Ie=ke(),Se=ke(),Te=ke(),[ye,be,Ce,me]=le((()=>jt)),Ve=e=>{if(!Me(e,((e,t)=>l(["type","default"],t))))return!1;const t=e.type;return!(!k(t)&&t!=r||(Y(e.default)!=t&&ge(e,"default"),0))},xe=(t,s)=>(!e||F(b,s)||dt(s))&&Me(t,((e,t)=>Fe(s,t,e)),(()=>dt(s))),Fe=(e,t,s,n)=>Me(n?s:Ne(s,e,t),((n,r)=>E(Pe(e,t,r,n),(e=>(s[r]=e,!0)),(()=>!1))),(()=>dt(e,t))),Pe=(t,s,n,r)=>e?E(q(q(b,t),n),(e=>Y(r)!=e.type?dt(t,s,n,r,e.default):r),(()=>dt(t,s,n,r))):x(Y(r))?dt(t,s,n,r):r,Qe=(e,t)=>Me(t?e:Oe(e),((t,s)=>E(ze(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>ut())),ze=(e,s)=>t?E(q(m,e),(t=>Y(s)!=t.type?ut(e,s,t.default):s),(()=>ut(e,s))):x(Y(s))?ut(e,s):s,Ne=(e,t,s)=>(E(q(C,t),(([n,r])=>{N(n,((t,s)=>{fe(e,s)||(e[s]=t)})),N(r,(n=>{fe(e,n)||dt(t,s,n)}))})),e),Oe=e=>(t&&(N(V,((t,s)=>{fe(e,s)||(e[s]=t)})),N(M,(t=>{fe(e,t)||ut(t)}))),e),je=e=>Je(b,e,((e,t,s)=>{const n=j(),r=ee();Je($(b,t,j),s,((e,t,s)=>{H(e,t,s),E(s.default,(e=>H(n,t,e)),(()=>te(r,t)))})),H(C,t,[n,r])}),((e,t)=>{H(b,t),H(C,t)})),We=e=>Je(m,e,((e,t,s)=>{H(m,t,s),E(s.default,(e=>H(V,t,e)),(()=>te(M,t)))}),((e,t)=>{H(m,t),H(V,t),O(M,t)})),qe=e=>we(e)?Dt():Et(e),Be=e=>Je(D,e,((e,t,s)=>He(t,s)),((e,t)=>et(t))),He=(e,t)=>Je($(D,e,(()=>(rt(e,1),j()))),t,((t,s,n)=>$e(e,t,s,n)),((t,s)=>tt(e,t,s))),$e=(e,t,s,n,r)=>Je($(t,s,(()=>(ot(e,s,1),j()))),n,((t,n,r)=>Ge(e,s,t,n,r)),((n,o)=>st(e,t,s,n,o,r))),Ge=(e,t,s,n,r)=>{F(s,n)||at(e,t,n,1);const o=q(s,n);r!==o&&(lt(e,t,n,o,r),H(s,n,r))},Ke=(e,t,s,n,r)=>E(q(t,s),(t=>Ge(e,s,t,n,r)),(()=>$e(e,t,s,Ne({[n]:r},e,s)))),Ue=e=>we(e)?Ft():kt(e),Xe=e=>Je(Q,e,((e,t,s)=>Ye(t,s)),((e,t)=>nt(t))),Ye=(e,t)=>{F(Q,e)||it(e,1);const s=q(Q,e);t!==s&&(ct(e,s,t),H(Q,e,t))},Ze=(e,t)=>{const[s]=$(A,e,ae),n=s(t);return F(q(D,e),n)?Ze(e,t):n},_e=e=>q(D,e)??He(e,{}),et=e=>He(e,{}),tt=(e,t,s)=>{const[,n]=$(A,e,ae);n(s),$e(e,t,s,{},!0)},st=(e,t,s,n,r,o)=>{const a=q(q(C,e)?.[0],r);if(!x(a)&&!o)return Ge(e,s,n,r,a);const l=t=>{lt(e,s,t,q(n,t)),at(e,s,t,-1),H(n,t)};x(a)?l(r):B(n,l),P(n)&&(ot(e,s,-1),P(H(t,s))&&(rt(e,-1),H(D,e),H(A,e)))},nt=e=>{const t=q(V,e);if(!x(t))return Ye(e,t);ct(e,q(Q,e)),it(e,-1),H(Q,e)},rt=(e,t)=>Ae(i,e,t),ot=(e,t,s)=>Ae($(d,e,j),t,s),at=(e,t,s,n)=>Ae($($(g,e,j),t,j),s,n),lt=(e,t,s,n,r)=>$($($(L,e,j),t,j),s,(()=>[n,0]))[1]=r,it=(e,t)=>Ae(w,e,t),ct=(e,t,s)=>$(p,e,(()=>[t,0]))[1]=s,dt=(e,t,s,n,r)=>(R($($($(I,e,j),t,j),s,(()=>[])),n),r),ut=(e,t,s)=>(R($(S,e,(()=>[])),t),s),ht=(e,t,s)=>E(q(q(q(L,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...Ee(Ct(e,t,s))])),ft=e=>E(q(p,e),(([e,t])=>[!0,e,t]),(()=>[!1,...Ee(xt(e))])),gt=e=>P(I)||P(he[e])?0:N(e?K(I,U):I,((t,s)=>N(t,((t,n)=>N(t,((t,r)=>be(he[e],[s,n,r],t))))))),Lt=e=>P(S)||P(pe[e])?0:N(e?K(S):S,((t,s)=>be(pe[e],[s],t))),wt=(e,t,s)=>{if(!P(t))return be(e,s),1},pt=e=>{const t=P(oe[e]),s=P(ce[e])&&P(re[e])&&t&&P(se[e]),n=P(de[e])&&P(ie[e])&&P(ne[e])&&P(X[e]);if(!s||!n){const r=e?[K(i),U(d),K(g,U),K(L,U)]:[i,d,g,L];if(!s){N(r[2],((t,s)=>N(t,((t,n)=>wt(ce[e],t,[s,n])))));const s=ee();N(r[1],((n,r)=>{wt(re[e],n,[r])&&!t&&(be(oe[e],[r,null]),te(s,r))})),t||N(r[3],((t,n)=>{if(!F(s,n)){const s=ee();N(t,(e=>N(e,(([t,n],r)=>n!==t?te(s,r):O(e,r))))),N(s,(t=>be(oe[e],[n,t])))}})),wt(se[e],r[0])}if(!n){let t;N(r[3],((s,n)=>{let r;N(s,((s,o)=>{let a;N(s,(([s,l],i)=>{l!==s&&(be(de[e],[n,o,i],l,s,ht),t=r=a=1)})),a&&be(ie[e],[n,o],ht)})),r&&be(ne[e],[n],ht)})),t&&be(X[e],void 0,ht)}}},vt=e=>{const t=P(Ie[e]),s=P(Se[e])&&P(Re[e]);if(!t||!s){const n=e?[K(w),K(p)]:[w,p];if(t||wt(Ie[e],n[0]),!s){let t;N(n[1],(([s,n],r)=>{n!==s&&(be(Se[e],[r],n,s,ft),t=1)})),t&&be(Re[e],void 0,ft)}}},Rt=(e,...t)=>(zt((()=>e(...f(t,a)))),jt),It=()=>G(D,(e=>G(e,G))),St=()=>W(D),Tt=e=>W(q(D,a(e))),yt=(e,t,s,n=0,r)=>{return f(v(u((o=q(D,a(e)),l=(e,s)=>[x(t)?s:q(e,a(t)),s],f([...o?.entries()??[]],(([e,t])=>l(t,e)))),(([e],[t])=>ve(e,t)*(s?-1:1))),n,x(r)?r:n+r),(([,e])=>e));var o,l},bt=(e,t)=>W(q(q(D,a(e)),a(t))),Ct=(e,t,s)=>q(q(q(D,a(e)),a(t)),a(s)),mt=()=>G(Q),Vt=()=>W(Q),xt=e=>q(Q,a(e)),Et=e=>Rt((()=>(e=>Me(e,xe,dt))(e)?Be(e):0)),kt=e=>Rt((()=>Qe(e)?Xe(e):0)),Jt=e=>{try{qe(y(e))}catch{}return jt},Mt=t=>Rt((()=>{if((e=Me(t,(e=>Me(e,Ve))))&&(je(t),!P(D))){const e=It();Dt(),Et(e)}})),At=e=>Rt((()=>{if(t=(e=>Me(e,Ve))(e)){const s=mt();Qt(),Ft(),t=!0,We(e),kt(s)}})),Dt=()=>Rt((()=>Be({}))),Ft=()=>Rt((()=>Xe({}))),Pt=()=>Rt((()=>{je({}),e=!1})),Qt=()=>Rt((()=>{We({}),t=!1})),zt=(e,t)=>{if(-1==o)return;Nt();const s=e();return Ot(t),s},Nt=()=>(o++,jt),Ot=e=>(o>0&&(o--,0==o&&(s=!P(L),n=!P(p),o=1,gt(1),s&&pt(1),Lt(1),n&&vt(1),o=-1,e?.(G(L,(e=>G(e,(e=>G(e,(e=>[...e]),(([e,t])=>e===t))),we)),we),G(I,(e=>G(e,G))),G(p,(e=>[...e]),(([e,t])=>e===t)),G(S))&&(o=1,N(L,((e,t)=>N(e,((e,s)=>N(e,(([e],n)=>Z(jt,t,s,n,e))))))),N(p,(([e],t)=>_(jt,t,e))),o=-1,s=n=!1),be(Te[0],void 0,s,n),gt(0),s&&pt(0),Lt(0),n&&vt(0),be(Te[1],void 0,s,n),o=0,h([i,d,g,L,I,w,p,S],z))),jt),jt={getTables:It,getTableIds:St,getTable:e=>G(q(D,a(e)),G),getRowIds:Tt,getSortedRowIds:yt,getRow:(e,t)=>G(q(q(D,a(e)),a(t))),getCellIds:bt,getCell:Ct,getValues:mt,getValueIds:Vt,getValue:xt,hasTables:()=>!P(D),hasTable:e=>F(D,a(e)),hasRow:(e,t)=>F(q(D,a(e)),a(t)),hasCell:(e,t,s)=>F(q(q(D,a(e)),a(t)),a(s)),hasValues:()=>!P(Q),hasValue:e=>F(Q,a(e)),getTablesJson:()=>T(D),getValuesJson:()=>T(Q),getJson:()=>T([D,Q]),getTablesSchemaJson:()=>T(b),getValuesSchemaJson:()=>T(m),getSchemaJson:()=>T([b,m]),setTables:Et,setTable:(e,t)=>Rt((e=>xe(t,e)?He(e,t):0),e),setRow:(e,t,s)=>Rt(((e,t)=>Fe(e,t,s)?$e(e,_e(e),t,s):0),e,t),addRow:(e,t,s=!0)=>zt((()=>{let n;return Fe(e,n,t)&&(e=a(e),$e(e,_e(e),n=Ze(e,s?1:0),t)),n})),setPartialRow:(e,t,s)=>Rt(((e,t)=>{if(Fe(e,t,s,1)){const n=_e(e);Le(s,((s,r)=>Ke(e,n,t,r,s)))}}),e,t),setCell:(e,t,s,n)=>Rt(((e,t,s)=>E(Pe(e,t,s,J(n)?n(Ct(e,t,s)):n),(n=>Ke(e,_e(e),t,s,n)))),e,t,s),setValues:kt,setPartialValues:e=>Rt((()=>Qe(e,1)?Le(e,((e,t)=>Ye(t,e))):0)),setValue:(e,t)=>Rt((e=>E(ze(e,J(t)?t(xt(e)):t),(t=>Ye(e,t)))),e),setTablesJson:Jt,setValuesJson:e=>{try{Ue(y(e))}catch{}return jt},setJson:e=>{try{const[t,s]=y(e);qe(t),Ue(s)}catch{Jt(e)}return jt},setTablesSchema:Mt,setValuesSchema:At,setSchema:(e,t)=>Rt((()=>{Mt(e),At(t)})),delTables:Dt,delTable:e=>Rt((e=>F(D,e)?et(e):0),e),delRow:(e,t)=>Rt(((e,t)=>E(q(D,e),(s=>F(s,t)?tt(e,s,t):0))),e,t),delCell:(e,t,s,n)=>Rt(((e,t,s)=>E(q(D,e),(r=>E(q(r,t),(o=>F(o,s)?st(e,r,t,o,s,n):0))))),e,t,s),delValues:Ft,delValue:e=>Rt((e=>F(Q,e)?nt(e):0),e),delTablesSchema:Pt,delValuesSchema:Qt,delSchema:()=>Rt((()=>{Pt(),Qt()})),transaction:zt,startTransaction:Nt,finishTransaction:Ot,forEachTable:e=>N(D,((t,s)=>e(s,(e=>N(t,((t,s)=>e(s,(e=>B(t,e))))))))),forEachRow:(e,t)=>N(q(D,a(e)),((e,s)=>t(s,(t=>B(e,t))))),forEachCell:(e,t,s)=>B(q(q(D,a(e)),a(t)),s),forEachValue:e=>B(Q,e),addSortedRowIdsListener:(e,t,s,n,r,o,a)=>{let l=yt(e,t,s,n,r);return ye((()=>{const a=yt(e,t,s,n,r);c(a,l)||(l=a,o(jt,e,t,s,n,r,l))}),oe[a?1:0],[e,t],[St])},addWillFinishTransactionListener:e=>ye(e,Te[0]),addDidFinishTransactionListener:e=>ye(e,Te[1]),callListener:e=>(me(e),jt),delListener:e=>(Ce(e),jt),getListenerStats:()=>({}),createStore:De};return Le({Tables:[0,X],TableIds:[0,se],Table:[1,ne,[St]],RowIds:[1,re,[St]],Row:[2,ie,[St,Tt]],CellIds:[2,ce,[St,Tt]],Cell:[3,de,[St,Tt,bt],e=>Ee(Ct(...e))],InvalidCell:[3,he],Values:[0,Re],ValueIds:[0,Ie],Value:[1,Se,[Vt],e=>Ee(xt(e[0]))],InvalidValue:[1,pe]},(([e,t,s,n],r)=>{jt["add"+r+"Listener"]=(...r)=>ye(r[e],t[r[e+1]?1:0],e>0?v(r,0,e):void 0,s,n)})),ue(jt)};exports.createCheckpoints=pe,exports.createCustomPersister=ye,exports.createFilePersister=(t,s)=>{let n;return ye(t,(async()=>{try{return await e.promises.readFile(s,"utf8")}catch{}}),(async t=>{try{await e.promises.writeFile(s,t,"utf8")}catch{}}),(t=>{n=e.watch(s,t)}),(()=>{n?.close(),n=void 0}))},exports.createIndexes=Re,exports.createLocalPersister=(e,t)=>Ce(e,t,localStorage),exports.createMetrics=Te,exports.createQueries=Ve,exports.createRelationships=xe,exports.createRemotePersister=(e,t,s,n)=>{let r,o;return ye(e,(async()=>{const e=await fetch(t);return o=me(e),e.text()}),(async e=>await fetch(s,{method:"POST",headers:{"Content-Type":"application/json"},body:e})),(e=>{r=setInterval((async()=>{const s=await fetch(t,{method:"HEAD"}),n=me(s);x(o)||x(n)||n==o||(o=n,e())}),1e3*n)}),(()=>{E(r,clearInterval),r=void 0}))},exports.createSessionPersister=(e,t)=>Ce(e,t,sessionStorage),exports.createStore=De,exports.defaultSorter=ve;
|
|
1
|
+
"use strict";var e=require("fs");const t=e=>typeof e,s=t(""),n=t(!0),r=t(0),o=t(t),a=e=>""+e,l=(e,t)=>e.includes(t),i=(e,t)=>e.every(t),c=(e,t)=>L(e)===L(t)&&i(e,((e,s)=>t[s]===e)),d=(e,t)=>i(e,((s,n)=>0==n||t(e[n-1],s)<=0)),u=(e,t)=>e.sort(t),h=(e,t)=>e.forEach(t),f=(e,t)=>e.map(t),g=e=>p(e,((e,t)=>e+t),0),L=e=>e.length,w=e=>0==L(e),p=(e,t,s)=>e.reduce(t,s),R=(e,t,s)=>e.slice(t,s),v=(e,...t)=>e.push(...t),I=e=>e.pop(),S=e=>e.shift(),T=e=>JSON.stringify(e,((e,t)=>V(t,Map)?p([...t],((e,[t,s])=>(e[t]=s,e)),{}):t)),y=JSON.parse,b=Math.max,C=Math.min,m=isFinite,V=(e,t)=>e instanceof t,x=e=>null==e,E=(e,t,s)=>x(e)?s?.():t(e),k=e=>e==s||e==n,J=e=>t(e)==o,M=e=>Array.isArray(e),A=()=>{},D=e=>e.size,F=(e,t)=>e?.has(t)??!1,P=e=>x(e)||0==D(e),Q=e=>[...e?.values()??[]],z=e=>e.clear(),N=(e,t)=>e?.forEach(t),O=(e,t)=>e?.delete(t),j=e=>new Map(e),W=e=>[...e?.keys()??[]],q=(e,t)=>e?.get(t),B=(e,t)=>N(e,((e,s)=>t(s,e))),H=(e,t,s)=>x(s)?(O(e,t),e):e?.set(t,s),$=(e,t,s)=>(F(e,t)||H(e,t,s()),q(e,t)),G=(e,t,s)=>{const n={},r=t??(e=>e);return N(e,((e,t)=>E(r(e),(e=>s?.(e)?0:n[t]=e)))),n},K=(e,t)=>{const s=j(),n=t??(e=>e);return N(e,((e,t)=>s.set(t,n(e)))),s},U=e=>K(e,K),X=(e,t,s,n,r=0)=>E((s?$:q)(e,t[r],r>L(t)-2?s:j),(o=>{if(r>L(t)-2)return n?.(o)&&H(e,t[r]),o;const a=X(o,t,s,n,r+1);return P(o)&&H(e,t[r]),a})),Y=e=>{const s=t(e);return k(s)||s==r&&m(e)?s:void 0},Z=(e,t,s,n,r)=>x(r)?e.delCell(t,s,n,!0):e.setCell(t,s,n,r),_=(e,t,s)=>x(s)?e.delValue(t):e.setValue(t,s),ee=e=>new Set(M(e)||x(e)?e:[e]),te=(e,t)=>e?.add(t),se=(e,t,s)=>{const n=e.hasRow,r=j(),o=j(),a=j(),l=j(),i=j(),d=(t,s,...n)=>{const r=$(i,t,ee);return h(n,(t=>te(r,t)&&s&&e.callListener(t))),n},u=(t,...s)=>E(q(i,t),(n=>{h(w(s)?Q(n):s,(t=>{e.delListener(t),O(n,t)})),P(n)&&H(i,t)})),f=(e,s)=>{H(r,e,s),F(o,e)||(H(o,e,t()),H(a,e,j()),H(l,e,j()))},g=e=>{H(r,e),H(o,e),H(a,e),H(l,e),u(e)};return[()=>e,()=>W(r),e=>B(o,e),e=>F(o,e),e=>q(r,e),e=>q(o,e),(e,t)=>H(o,e,t),f,(t,r,o,i,g)=>{f(t,r);const L=j(),w=j(),p=q(a,t),R=q(l,t),v=t=>{const o=s=>e.getCell(r,t,s),a=q(p,t),l=n(r,t)?s(i(o,t)):void 0;if(a===l||M(a)&&M(l)&&c(a,l)||H(L,t,[a,l]),!x(g)){const e=q(R,t),s=n(r,t)?g(o,t):void 0;e!=s&&H(w,t,s)}},I=e=>{o((()=>{N(L,(([,e],t)=>H(p,t,e))),N(w,((e,t)=>H(R,t,e)))}),L,w,p,R,e),z(L),z(w)};B(p,v),e.hasTable(r)&&h(e.getRowIds(r),(e=>{F(p,e)||v(e)})),I(!0),u(t),d(t,0,e.addRowListener(r,null,((e,t,s)=>v(s))),e.addTableListener(r,(()=>I())))},g,()=>B(i,g),d,u]},ne=(e,n)=>t(e)==s?t=>t(e):e??(()=>n??""),re=e=>{const t=new WeakMap;return s=>(t.has(s)||t.set(s,e(s)),t.get(s))},oe=/^\d+$/,ae=()=>{const e=[];let t=0;return[s=>(s?S(e):null)??""+t++,t=>{oe.test(t)&&L(e)<1e3&&v(e,t)}]},le=e=>{let t;const[s,n]=ae(),r=j();return[(n,o,a,l=[],i=(()=>[]))=>{t??=e();const c=s(1);return H(r,c,[n,o,a,l,i]),te(X(o,a??[""],ee),c),c},(e,s,...n)=>h(((e,t=[""])=>{const s=[],n=(e,r)=>r==L(t)?v(s,e):null===t[r]?N(e,(e=>n(e,r+1))):h([t[r],null],(t=>n(q(e,t),r+1)));return n(e,0),s})(e,s),(e=>N(e,(e=>q(r,e)[0](t,...s??[],...n))))),e=>E(q(r,e),(([,t,s])=>(X(t,s??[""],void 0,(t=>(O(t,e),P(t)?1:0))),H(r,e),n(e),s))),e=>E(q(r,e),(([e,,s=[],n,r])=>{const o=(...a)=>{const l=L(a);l==L(s)?e(t,...a,...r(a)):x(s[l])?h(n[l]?.(...a)??[],(e=>o(...a,e))):o(...a,s[l])};o()}))]},ie=Object,ce=ie.keys,de=ie.isFrozen,ue=ie.freeze,he=e=>V(e,ie)&&e.constructor==ie,fe=(e,t)=>!x(((e,t)=>E(e,(e=>e[t])))(e,t)),ge=(e,t)=>delete e[t],Le=(e,t)=>f(ie.entries(e),(([e,s])=>t(s,e))),we=e=>he(e)&&w(ce(e)),pe=re((e=>{let t,s,n,r=100,o=j(),a=j(),i=1;const c=j(),d=j(),[u,f,g]=le((()=>U)),p=j(),R=j(),T=[],y=[],b=(t,s)=>{i=0,e.transaction((()=>{const[n,r]=q(p,s);N(n,((s,n)=>N(s,((s,r)=>N(s,((s,o)=>Z(e,n,r,o,s[t]))))))),N(r,((s,n)=>_(e,n,s[t])))})),i=1},C=e=>{H(p,e),H(R,e),f(d,[e])},m=(e,t)=>h(((e,t)=>e.splice(0,t))(e,t??L(e)),C),V=()=>m(T,L(T)-r),k=()=>E(t,(()=>{v(T,t),V(),m(y),t=void 0,n=1})),J=()=>{t=I(T),n=1},M=e.addCellListener(null,null,null,((e,t,s,n,r,a)=>{if(i){k();const e=$(o,t,j),l=$(e,s,j),i=$(l,n,(()=>[a,void 0]));i[1]=r,i[0]===r&&P(H(l,n))&&P(H(e,s))&&P(H(o,t))&&J(),O()}})),A=e.addValueListener(null,((e,t,s,n)=>{if(i){k();const e=$(a,t,(()=>[n,void 0]));e[1]=s,e[0]===s&&P(H(a,t))&&J(),O()}})),D=(e="")=>(x(t)&&(t=""+s++,H(p,t,[o,a]),G(t,e),o=j(),a=j(),n=1),t),Q=()=>{w(T)||(((e,...t)=>{e.unshift(...t)})(y,D()),b(0,t),t=I(T),n=1)},z=()=>{w(y)||(v(T,t),t=S(y),b(1,t),n=1)},O=()=>{n&&(f(c),n=0)},W=e=>{const t=D(e);return O(),t},G=(e,t)=>(K(e)&&q(R,e)!==t&&(H(R,e,t),f(d,[e])),U),K=e=>F(p,e),U={setSize:e=>(r=e,V(),U),addCheckpoint:W,setCheckpoint:G,getStore:()=>e,getCheckpointIds:()=>[[...T],t,[...y]],forEachCheckpoint:e=>B(R,e),hasCheckpoint:K,getCheckpoint:e=>q(R,e),goBackward:()=>(Q(),O(),U),goForward:()=>(z(),O(),U),goTo:e=>{const s=l(T,e)?Q:l(y,e)?z:null;for(;!x(s)&&e!=t;)s();return O(),U},addCheckpointIdsListener:e=>u(e,c),addCheckpointListener:(e,t)=>u(t,d,[e]),delListener:e=>(g(e),U),clear:()=>(m(T),m(y),x(t)||C(t),t=void 0,s=0,W(),U),destroy:()=>{e.delListener(M),e.delListener(A)},getListenerStats:()=>({})};return ue(U.clear())})),Re=(e,t)=>e<t?-1:1,ve=re((e=>{const t=j(),s=j(),[n,r,o,l,i,c,h,,g,L,w]=se(e,j,(e=>x(e)?"":M(e)?f(e,a):a(e))),[p,R,v]=le((()=>S)),I=(t,s,n)=>{const r=i(t);N(n,((t,n)=>s(n,(s=>N(t,(t=>s(t,(s=>e.forEachCell(r,t,s)))))))))},S={setIndexDefinition:(e,n,r,o,a,l=Re)=>{const i=x(a)?void 0:([e],[t])=>a(e,t);return g(e,n,((n,r,a,f,g,L)=>{let w=0;const p=ee(),v=ee(),I=c(e);if(N(r,(([e,t],s)=>{const n=ee(e),r=ee(t);N(n,(e=>O(r,e)?O(n,e):0)),N(n,(e=>{te(p,e),E(q(I,e),(t=>{O(t,s),P(t)&&(H(I,e),w=1)}))})),N(r,(e=>{te(p,e),F(I,e)||(H(I,e,ee()),w=1),te(q(I,e),s),x(o)||te(v,e)}))})),n(),P(g)||(L?B(I,(e=>te(v,e))):B(a,(e=>E(q(f,e),(e=>te(v,e))))),N(v,(e=>{const t=(t,s)=>l(q(g,t),q(g,s),e),s=[...q(I,e)];d(s,t)||(H(I,e,ee(u(s,t))),te(p,e))}))),(w||L)&&!x(i)){const t=[...I];d(t,i)||(h(e,j(u(t,i))),w=1)}w&&R(t,[e]),N(p,(t=>R(s,[e,t])))}),ne(r),E(o,ne)),S},delIndexDefinition:e=>(L(e),S),getStore:n,getIndexIds:r,forEachIndex:e=>o(((t,s)=>e(t,(e=>I(t,e,s))))),forEachSlice:(e,t)=>I(e,t,c(e)),hasIndex:l,hasSlice:(e,t)=>F(c(e),t),getTableId:i,getSliceIds:e=>W(c(e)),getSliceRowIds:(e,t)=>Q(q(c(e),t)),addSliceIdsListener:(e,s)=>p(s,t,[e]),addSliceRowIdsListener:(e,t,n)=>p(n,s,[e,t]),delListener:e=>(v(e),S),destroy:w,getListenerStats:()=>({})};return ue(S)})),Ie=j([["avg",[(e,t)=>g(e)/t,(e,t,s)=>e+(t-e)/(s+1),(e,t,s)=>e+(e-t)/(s-1),(e,t,s,n)=>e+(t-s)/n]],["max",[e=>b(...e),(e,t)=>b(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:b(t,e)]],["min",[e=>C(...e),(e,t)=>C(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:C(t,e)]],["sum",[e=>g(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),Se=(e,t,s,n,r,o=!1)=>{if(P(s))return;const[a,l,i,c]=r;return o||=x(e),N(n,(([s,n])=>{o||(e=x(s)?l?.(e,n,t++):x(n)?i?.(e,s,t--):c?.(e,n,s,t),o||=x(e))})),o?a(Q(s),D(s)):e},Te=re((e=>{const t=j(),[s,n,r,o,a,l,i,,c,d,u]=se(e,A,(e=>isNaN(e)||x(e)||!0===e||!1===e||""===e?void 0:1*e)),[h,f,g]=le((()=>L)),L={setMetricDefinition:(e,s,n,r,o,a,d)=>{const u=J(n)?[n,o,a,d]:q(Ie,n)??q(Ie,"sum");return c(e,s,((s,n,r,o,a,c)=>{const d=l(e),h=D(o);c||=x(d),s();let g=Se(d,h,o,n,u,c);m(g)||(g=void 0),g!=d&&(i(e,g),f(t,[e],g,d))}),ne(r,1)),L},delMetricDefinition:e=>(d(e),L),getStore:s,getMetricIds:n,forEachMetric:r,hasMetric:o,getTableId:a,getMetric:l,addMetricListener:(e,s)=>h(s,t,[e]),delListener:e=>(g(e),L),destroy:u,getListenerStats:()=>({})};return ue(L)})),ye=(e,t,s,n,r)=>{let o,a,l,i=0,c=!1;const d={load:async(s,n)=>{if(2!=i){i=1;const r=await t();x(r)||""==r?e.transaction((()=>e.setTables(s).setValues(n))):e.setJson(r),i=0}return d},startAutoLoad:async(e,t)=>(d.stopAutoLoad(),await d.load(e,t),c=!0,l=n(d.load),d),stopAutoLoad:()=>(c&&(r(l),l=void 0,c=!1),d),save:async()=>(1!=i&&(i=2,await s(e.getJson()),i=0),d),startAutoSave:async()=>(await d.stopAutoSave().save(),o=e.addTablesListener(d.save),a=e.addValuesListener(d.save),d),stopAutoSave:()=>(E(o,e.delListener),E(a,e.delListener),d),getStore:()=>e,destroy:()=>d.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return ue(d)},be=globalThis.window,Ce=(e,t,s)=>ye(e,(async()=>s.getItem(t)),(async e=>s.setItem(t,e)),(e=>{const n=n=>{n.storageArea===s&&n.key===t&&e()};return be.addEventListener("storage",n),n}),(e=>be.removeEventListener("storage",e))),me=e=>e.headers.get("ETag"),Ve=re((e=>{const t=e.createStore,[s,n,r,o,a,,,l,,c,d,u,f]=se(e,(()=>!0),A),g=t(),p=t(),I=j(),S=(e,t,...s)=>h(s,(s=>te($($(I,t,j),e,ee),s))),T=e=>{E(q(I,e),(e=>{B(e,((e,t)=>N(t,(t=>e.delListener(t))))),z(e)})),h([p,g],(t=>t.delTable(e)))},y=(e,t,s)=>S(t,e,t.addWillFinishTransactionListener(s.startTransaction),t.addDidFinishTransactionListener((()=>s.finishTransaction()))),b={setQueryDefinition:(t,s,n)=>{l(t,s),T(t);const r=[],o=[[null,[s,null,null,[],j()]]],a=[],c=[],d=[];n({select:(e,t)=>{const s=J(e)?[L(r)+"",e]:[x(t)?e:t,s=>s(e,t)];return v(r,s),{as:e=>s[0]=e}},join:(e,t,s)=>{const n=x(s)||J(t)?null:t,r=x(n)?t:s,a=[e,[e,n,J(r)?r:e=>e(r),[],j()]];return v(o,a),{as:e=>a[0]=e}},where:(e,t,s)=>v(a,J(e)?e:x(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,r)=>{const o=[e,[e,J(t)?[t,s,n,r]:q(Ie,t)??[(e,t)=>t]]];return v(c,o),{as:e=>o[0]=e}},having:(e,t)=>v(d,J(e)?e:s=>s(e)===t)});const R=j(r);if(P(R))return b;const I=j(o);B(I,((e,[,t])=>E(q(I,t),(({3:t})=>x(e)?0:v(t,e)))));const C=j(c);let m=g;if(P(C)&&w(d))m=p;else{y(t,m,p);const e=j();B(C,((t,[s,n])=>te($(e,s,ee),[t,n])));const s=ee();B(R,(t=>F(e,t)?0:te(s,t)));const n=j(),r=(s,n,r,o)=>E(s,(([a,l,c,u])=>{B(n,((t,[s])=>{const n=$(a,t,j),l=q(n,r),i=o?void 0:s;if(l!==i){const s=ee([[l,i]]),o=D(n);H(n,r,i),N(q(e,t),(([e,t])=>{const r=Se(u[e],o,n,s,t);u[e]=x(Y(r))?null:r}))}})),P(l)||!i(d,(e=>e((e=>u[e]))))?p.delRow(t,c):x(c)?s[2]=p.addRow(t,u):p.setRow(t,c,u)}));S(m,t,m.addRowListener(t,null,((o,a,l,i)=>{const c=[],d=[],u=j(),h=m.hasRow(t,l);let f=!h;N(s,(e=>{const[s,n,r]=i(t,l,e);v(c,n),v(d,r),f||=s})),B(e,(e=>{const[s,,n]=i(t,l,e);(f||s)&&H(u,e,[n])})),f&&r(X(n,c,void 0,(([,e])=>(O(e,l),P(e)))),u,l,1),h&&r(X(n,d,(()=>{const e={};return N(s,(s=>e[s]=m.getCell(t,l,s))),[j(),ee(),void 0,e]}),(([,e])=>{te(e,l)})),u,l)})))}y(t,e,m);const V=(n,r,o,l)=>{const c=t=>e.getCell(r,o,t);h(l,(s=>{const[r,,o,a,l]=q(I,s),i=o?.(c,n),[d,h]=q(l,n)??[];i!=d&&(x(h)||f(t,h),H(l,n,x(i)?null:[i,...u(t,1,e.addRowListener(r,i,(()=>V(n,r,i,a))))]))})),(n=>{const r=(t,r)=>e.getCell(...x(r)?[s,n,t]:t===s?[s,n,r]:[q(I,t)?.[0],q(q(I,t)?.[4],n)?.[0],r]);m.transaction((()=>i(a,(e=>e(r)))?B(R,((e,s)=>Z(m,t,n,e,s(r,n)))):m.delRow(t,n)))})(n)},{3:k}=q(I,null);return m.transaction((()=>u(t,1,e.addRowListener(s,null,((n,r,o)=>{e.hasRow(s,o)?V(o,s,o,k):(m.delRow(t,o),N(I,(({4:e})=>E(q(e,o),(([,s])=>{f(t,s),H(e,o)})))))}))))),b},delQueryDefinition:e=>(T(e),c(e),b),getStore:s,getQueryIds:n,forEachQuery:r,hasQuery:o,getTableId:a,delListener:e=>(p.delListener(e),b),destroy:d,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=p.getListenerStats();return n}};return Le({Table:[1,1],RowIds:[0,1],SortedRowIds:[0,5],Row:[1,2],CellIds:[0,2],Cell:[1,3]},(([e,t],s)=>{h(e?["get","has","forEach"]:["get"],(e=>b[e+"Result"+s]=(...t)=>p[e+s](...t))),b["addResult"+s+"Listener"]=(...e)=>p["add"+s+"Listener"](...R(e,0,t),((s,...n)=>e[t](b,...n)))})),ue(b)})),xe=re((e=>{const t=j(),s=j(),n=j(),r=j(),[o,a,l,i,c,d,,,u,h,f]=se(e,(()=>[j(),j(),j(),j()]),(e=>x(e)?void 0:e+"")),[g,L,w]=le((()=>I)),p=(e,t,s)=>E(d(e),(([n,,r])=>{if(!F(r,t)){const o=ee();if(c(e)!=v(e))te(o,t);else{let e=t;for(;!x(e)&&!F(o,e);)te(o,e),e=q(n,e)}if(s)return o;H(r,t,o)}return q(r,t)})),R=(e,t)=>E(d(e),(([,,e])=>H(e,t))),v=e=>q(t,e),I={setRelationshipDefinition:(e,o,a,l)=>(H(t,e,a),u(e,o,((t,o)=>{const a=ee(),l=ee(),i=ee(),[c,u]=d(e);N(o,(([t,s],n)=>{x(t)||(te(l,t),E(q(u,t),(e=>{O(e,n),P(e)&&H(u,t)}))),x(s)||(te(l,s),F(u,s)||H(u,s,ee()),te(q(u,s),n)),te(a,n),H(c,n,s),B(q(r,e),(t=>{F(p(e,t),n)&&te(i,t)}))})),t(),N(a,(t=>L(s,[e,t]))),N(l,(t=>L(n,[e,t]))),N(i,(t=>{R(e,t),L(r,[e,t])}))}),ne(l)),I),delRelationshipDefinition:e=>(H(t,e),h(e),I),getStore:o,getRelationshipIds:a,forEachRelationship:t=>l((s=>t(s,(t=>e.forEachRow(c(s),t))))),hasRelationship:i,getLocalTableId:c,getRemoteTableId:v,getRemoteRowId:(e,t)=>q(d(e)?.[0],t),getLocalRowIds:(e,t)=>Q(q(d(e)?.[1],t)),getLinkedRowIds:(e,t)=>x(d(e))?[t]:Q(p(e,t,!0)),addRemoteRowIdListener:(e,t,n)=>g(n,s,[e,t]),addLocalRowIdsListener:(e,t,s)=>g(s,n,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(p(e,t),g(s,r,[e,t])),delListener:e=>(R(...w(e)),I),destroy:f,getListenerStats:()=>({})};return ue(I)})),Ee=e=>[e,e],ke=()=>[j(),j()],Je=(e,t,s,n=H)=>{const r=(o=e=>!fe(t,e),W(e).filter(o));var o;return h(ce(t),(n=>s(e,n,t[n]))),h(r,(t=>n(e,t))),e},Me=(e,t,s)=>x(e)||!he(e)||we(e)||de(e)?(s?.(),!1):(Le(e,((s,n)=>{t(s,n)||ge(e,n)})),!we(e)),Ae=(e,t,s)=>H(e,t,q(e,t)==-s?void 0:s),De=()=>{let e,t,s,n,o=0;const i=j(),d=j(),g=j(),L=j(),w=j(),p=j(),I=j(),S=j(),b=j(),C=j(),m=j(),V=j(),M=ee(),A=j(),D=j(),Q=j(),X=ke(),se=ke(),ne=ke(),re=ke(),oe=ke(),ie=ke(),ce=ke(),de=ke(),he=ke(),pe=ke(),ve=ke(),Ie=ke(),Se=ke(),Te=ke(),[ye,be,Ce,me]=le((()=>jt)),Ve=e=>{if(!Me(e,((e,t)=>l(["type","default"],t))))return!1;const t=e.type;return!(!k(t)&&t!=r||(Y(e.default)!=t&&ge(e,"default"),0))},xe=(t,s)=>(!e||F(b,s)||dt(s))&&Me(t,((e,t)=>Fe(s,t,e)),(()=>dt(s))),Fe=(e,t,s,n)=>Me(n?s:Ne(s,e,t),((n,r)=>E(Pe(e,t,r,n),(e=>(s[r]=e,!0)),(()=>!1))),(()=>dt(e,t))),Pe=(t,s,n,r)=>e?E(q(q(b,t),n),(e=>Y(r)!=e.type?dt(t,s,n,r,e.default):r),(()=>dt(t,s,n,r))):x(Y(r))?dt(t,s,n,r):r,Qe=(e,t)=>Me(t?e:Oe(e),((t,s)=>E(ze(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>ut())),ze=(e,s)=>t?E(q(m,e),(t=>Y(s)!=t.type?ut(e,s,t.default):s),(()=>ut(e,s))):x(Y(s))?ut(e,s):s,Ne=(e,t,s)=>(E(q(C,t),(([n,r])=>{N(n,((t,s)=>{fe(e,s)||(e[s]=t)})),N(r,(n=>{fe(e,n)||dt(t,s,n)}))})),e),Oe=e=>(t&&(N(V,((t,s)=>{fe(e,s)||(e[s]=t)})),N(M,(t=>{fe(e,t)||ut(t)}))),e),je=e=>Je(b,e,((e,t,s)=>{const n=j(),r=ee();Je($(b,t,j),s,((e,t,s)=>{H(e,t,s),E(s.default,(e=>H(n,t,e)),(()=>te(r,t)))})),H(C,t,[n,r])}),((e,t)=>{H(b,t),H(C,t)})),We=e=>Je(m,e,((e,t,s)=>{H(m,t,s),E(s.default,(e=>H(V,t,e)),(()=>te(M,t)))}),((e,t)=>{H(m,t),H(V,t),O(M,t)})),qe=e=>we(e)?Dt():Et(e),Be=e=>Je(D,e,((e,t,s)=>He(t,s)),((e,t)=>et(t))),He=(e,t)=>Je($(D,e,(()=>(rt(e,1),j()))),t,((t,s,n)=>$e(e,t,s,n)),((t,s)=>tt(e,t,s))),$e=(e,t,s,n,r)=>Je($(t,s,(()=>(ot(e,s,1),j()))),n,((t,n,r)=>Ge(e,s,t,n,r)),((n,o)=>st(e,t,s,n,o,r))),Ge=(e,t,s,n,r)=>{F(s,n)||at(e,t,n,1);const o=q(s,n);r!==o&&(lt(e,t,n,o,r),H(s,n,r))},Ke=(e,t,s,n,r)=>E(q(t,s),(t=>Ge(e,s,t,n,r)),(()=>$e(e,t,s,Ne({[n]:r},e,s)))),Ue=e=>we(e)?Ft():kt(e),Xe=e=>Je(Q,e,((e,t,s)=>Ye(t,s)),((e,t)=>nt(t))),Ye=(e,t)=>{F(Q,e)||it(e,1);const s=q(Q,e);t!==s&&(ct(e,s,t),H(Q,e,t))},Ze=(e,t)=>{const[s]=$(A,e,ae),n=s(t);return F(q(D,e),n)?Ze(e,t):n},_e=e=>q(D,e)??He(e,{}),et=e=>He(e,{}),tt=(e,t,s)=>{const[,n]=$(A,e,ae);n(s),$e(e,t,s,{},!0)},st=(e,t,s,n,r,o)=>{const a=q(q(C,e)?.[0],r);if(!x(a)&&!o)return Ge(e,s,n,r,a);const l=t=>{lt(e,s,t,q(n,t)),at(e,s,t,-1),H(n,t)};x(a)?l(r):B(n,l),P(n)&&(ot(e,s,-1),P(H(t,s))&&(rt(e,-1),H(D,e),H(A,e)))},nt=e=>{const t=q(V,e);if(!x(t))return Ye(e,t);ct(e,q(Q,e)),it(e,-1),H(Q,e)},rt=(e,t)=>Ae(i,e,t),ot=(e,t,s)=>Ae($(d,e,j),t,s),at=(e,t,s,n)=>Ae($($(g,e,j),t,j),s,n),lt=(e,t,s,n,r)=>$($($(L,e,j),t,j),s,(()=>[n,0]))[1]=r,it=(e,t)=>Ae(w,e,t),ct=(e,t,s)=>$(p,e,(()=>[t,0]))[1]=s,dt=(e,t,s,n,r)=>(v($($($(I,e,j),t,j),s,(()=>[])),n),r),ut=(e,t,s)=>(v($(S,e,(()=>[])),t),s),ht=(e,t,s)=>E(q(q(q(L,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...Ee(Ct(e,t,s))])),ft=e=>E(q(p,e),(([e,t])=>[!0,e,t]),(()=>[!1,...Ee(xt(e))])),gt=e=>P(I)||P(he[e])?0:N(e?K(I,U):I,((t,s)=>N(t,((t,n)=>N(t,((t,r)=>be(he[e],[s,n,r],t))))))),Lt=e=>P(S)||P(pe[e])?0:N(e?K(S):S,((t,s)=>be(pe[e],[s],t))),wt=(e,t,s)=>{if(!P(t))return be(e,s),1},pt=e=>{const t=P(oe[e]),s=P(ce[e])&&P(re[e])&&t&&P(se[e]),n=P(de[e])&&P(ie[e])&&P(ne[e])&&P(X[e]);if(!s||!n){const r=e?[K(i),U(d),K(g,U),K(L,U)]:[i,d,g,L];if(!s){N(r[2],((t,s)=>N(t,((t,n)=>wt(ce[e],t,[s,n])))));const s=ee();N(r[1],((n,r)=>{wt(re[e],n,[r])&&!t&&(be(oe[e],[r,null]),te(s,r))})),t||N(r[3],((t,n)=>{if(!F(s,n)){const s=ee();N(t,(e=>N(e,(([t,n],r)=>n!==t?te(s,r):O(e,r))))),N(s,(t=>be(oe[e],[n,t])))}})),wt(se[e],r[0])}if(!n){let t;N(r[3],((s,n)=>{let r;N(s,((s,o)=>{let a;N(s,(([s,l],i)=>{l!==s&&(be(de[e],[n,o,i],l,s,ht),t=r=a=1)})),a&&be(ie[e],[n,o],ht)})),r&&be(ne[e],[n],ht)})),t&&be(X[e],void 0,ht)}}},Rt=e=>{const t=P(Ie[e]),s=P(Se[e])&&P(ve[e]);if(!t||!s){const n=e?[K(w),K(p)]:[w,p];if(t||wt(Ie[e],n[0]),!s){let t;N(n[1],(([s,n],r)=>{n!==s&&(be(Se[e],[r],n,s,ft),t=1)})),t&&be(ve[e],void 0,ft)}}},vt=(e,...t)=>(zt((()=>e(...f(t,a)))),jt),It=()=>G(D,(e=>G(e,G))),St=()=>W(D),Tt=e=>W(q(D,a(e))),yt=(e,t,s,n=0,r)=>{return f(R(u((o=q(D,a(e)),l=(e,s)=>[x(t)?s:q(e,a(t)),s],f([...o?.entries()??[]],(([e,t])=>l(t,e)))),(([e],[t])=>Re(e,t)*(s?-1:1))),n,x(r)?r:n+r),(([,e])=>e));var o,l},bt=(e,t)=>W(q(q(D,a(e)),a(t))),Ct=(e,t,s)=>q(q(q(D,a(e)),a(t)),a(s)),mt=()=>G(Q),Vt=()=>W(Q),xt=e=>q(Q,a(e)),Et=e=>vt((()=>(e=>Me(e,xe,dt))(e)?Be(e):0)),kt=e=>vt((()=>Qe(e)?Xe(e):0)),Jt=e=>{try{qe(y(e))}catch{}return jt},Mt=t=>vt((()=>{if((e=Me(t,(e=>Me(e,Ve))))&&(je(t),!P(D))){const e=It();Dt(),Et(e)}})),At=e=>vt((()=>{if(t=(e=>Me(e,Ve))(e)){const s=mt();Qt(),Ft(),t=!0,We(e),kt(s)}})),Dt=()=>vt((()=>Be({}))),Ft=()=>vt((()=>Xe({}))),Pt=()=>vt((()=>{je({}),e=!1})),Qt=()=>vt((()=>{We({}),t=!1})),zt=(e,t)=>{if(-1==o)return;Nt();const s=e();return Ot(t),s},Nt=()=>(o++,jt),Ot=e=>(o>0&&(o--,0==o&&(s=!P(L),n=!P(p),o=1,gt(1),s&&pt(1),Lt(1),n&&Rt(1),o=-1,e?.(G(L,(e=>G(e,(e=>G(e,(e=>[...e]),(([e,t])=>e===t))),we)),we),G(I,(e=>G(e,G))),G(p,(e=>[...e]),(([e,t])=>e===t)),G(S))&&(o=1,N(L,((e,t)=>N(e,((e,s)=>N(e,(([e],n)=>Z(jt,t,s,n,e))))))),N(p,(([e],t)=>_(jt,t,e))),o=-1,s=n=!1),be(Te[0],void 0,s,n),gt(0),s&&pt(0),Lt(0),n&&Rt(0),be(Te[1],void 0,s,n),o=0,h([i,d,g,L,I,w,p,S],z))),jt),jt={getTables:It,getTableIds:St,getTable:e=>G(q(D,a(e)),G),getRowIds:Tt,getSortedRowIds:yt,getRow:(e,t)=>G(q(q(D,a(e)),a(t))),getCellIds:bt,getCell:Ct,getValues:mt,getValueIds:Vt,getValue:xt,hasTables:()=>!P(D),hasTable:e=>F(D,a(e)),hasRow:(e,t)=>F(q(D,a(e)),a(t)),hasCell:(e,t,s)=>F(q(q(D,a(e)),a(t)),a(s)),hasValues:()=>!P(Q),hasValue:e=>F(Q,a(e)),getTablesJson:()=>T(D),getValuesJson:()=>T(Q),getJson:()=>T([D,Q]),getTablesSchemaJson:()=>T(b),getValuesSchemaJson:()=>T(m),getSchemaJson:()=>T([b,m]),setTables:Et,setTable:(e,t)=>vt((e=>xe(t,e)?He(e,t):0),e),setRow:(e,t,s)=>vt(((e,t)=>Fe(e,t,s)?$e(e,_e(e),t,s):0),e,t),addRow:(e,t,s=!0)=>zt((()=>{let n;return Fe(e,n,t)&&(e=a(e),$e(e,_e(e),n=Ze(e,s?1:0),t)),n})),setPartialRow:(e,t,s)=>vt(((e,t)=>{if(Fe(e,t,s,1)){const n=_e(e);Le(s,((s,r)=>Ke(e,n,t,r,s)))}}),e,t),setCell:(e,t,s,n)=>vt(((e,t,s)=>E(Pe(e,t,s,J(n)?n(Ct(e,t,s)):n),(n=>Ke(e,_e(e),t,s,n)))),e,t,s),setValues:kt,setPartialValues:e=>vt((()=>Qe(e,1)?Le(e,((e,t)=>Ye(t,e))):0)),setValue:(e,t)=>vt((e=>E(ze(e,J(t)?t(xt(e)):t),(t=>Ye(e,t)))),e),setTablesJson:Jt,setValuesJson:e=>{try{Ue(y(e))}catch{}return jt},setJson:e=>{try{const[t,s]=y(e);qe(t),Ue(s)}catch{Jt(e)}return jt},setTablesSchema:Mt,setValuesSchema:At,setSchema:(e,t)=>vt((()=>{Mt(e),At(t)})),delTables:Dt,delTable:e=>vt((e=>F(D,e)?et(e):0),e),delRow:(e,t)=>vt(((e,t)=>E(q(D,e),(s=>F(s,t)?tt(e,s,t):0))),e,t),delCell:(e,t,s,n)=>vt(((e,t,s)=>E(q(D,e),(r=>E(q(r,t),(o=>F(o,s)?st(e,r,t,o,s,n):0))))),e,t,s),delValues:Ft,delValue:e=>vt((e=>F(Q,e)?nt(e):0),e),delTablesSchema:Pt,delValuesSchema:Qt,delSchema:()=>vt((()=>{Pt(),Qt()})),transaction:zt,startTransaction:Nt,finishTransaction:Ot,forEachTable:e=>N(D,((t,s)=>e(s,(e=>N(t,((t,s)=>e(s,(e=>B(t,e))))))))),forEachRow:(e,t)=>N(q(D,a(e)),((e,s)=>t(s,(t=>B(e,t))))),forEachCell:(e,t,s)=>B(q(q(D,a(e)),a(t)),s),forEachValue:e=>B(Q,e),addSortedRowIdsListener:(e,t,s,n,r,o,a)=>{let l=yt(e,t,s,n,r);return ye((()=>{const a=yt(e,t,s,n,r);c(a,l)||(l=a,o(jt,e,t,s,n,r,l))}),oe[a?1:0],[e,t],[St])},addWillFinishTransactionListener:e=>ye(e,Te[0]),addDidFinishTransactionListener:e=>ye(e,Te[1]),callListener:e=>(me(e),jt),delListener:e=>(Ce(e),jt),getListenerStats:()=>({}),createStore:De};return Le({Tables:[0,X],TableIds:[0,se],Table:[1,ne,[St]],RowIds:[1,re,[St]],Row:[2,ie,[St,Tt]],CellIds:[2,ce,[St,Tt]],Cell:[3,de,[St,Tt,bt],e=>Ee(Ct(...e))],InvalidCell:[3,he],Values:[0,ve],ValueIds:[0,Ie],Value:[1,Se,[Vt],e=>Ee(xt(e[0]))],InvalidValue:[1,pe]},(([e,t,s,n],r)=>{jt["add"+r+"Listener"]=(...r)=>ye(r[e],t[r[e+1]?1:0],e>0?R(r,0,e):void 0,s,n)})),ue(jt)};exports.createCheckpoints=pe,exports.createCustomPersister=ye,exports.createFilePersister=(t,s)=>ye(t,(async()=>{try{return await e.promises.readFile(s,"utf8")}catch{}}),(async t=>{try{await e.promises.writeFile(s,t,"utf8")}catch{}}),(t=>e.watch(s,t)),(e=>e?.close())),exports.createIndexes=ve,exports.createLocalPersister=(e,t)=>Ce(e,t,localStorage),exports.createMetrics=Te,exports.createQueries=Ve,exports.createRelationships=xe,exports.createRemotePersister=(e,t,s,n)=>{let r;return ye(e,(async()=>{const e=await fetch(t);return r=me(e),e.text()}),(async e=>await fetch(s,{method:"POST",headers:{"Content-Type":"application/json"},body:e})),(e=>setInterval((async()=>{const s=await fetch(t,{method:"HEAD"}),n=me(s);x(r)||x(n)||n==r||(r=n,e())}),1e3*n)),(e=>clearInterval(e)))},exports.createSessionPersister=(e,t)=>Ce(e,t,sessionStorage),exports.createStore=De,exports.defaultSorter=Re;
|
package/lib/cjs/tinybase.cjs.gz
CHANGED
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";const e=e=>null==e,t=(t,o,n)=>e(t)?null==n?void 0:n():o(t),o=Object.freeze;var n=(e,t,o)=>new Promise(((n,r)=>{var s=e=>{try{u(o.next(e))}catch(e){r(e)}},a=e=>{try{u(o.throw(e))}catch(e){r(e)}},u=e=>e.done?n(e.value):Promise.resolve(e.value).then(s,a);u((o=o.apply(e,t)).next())})),r=(e,t,o)=>new Promise(((n,r)=>{var s=e=>{try{u(o.next(e))}catch(e){r(e)}},a=e=>{try{u(o.throw(e))}catch(e){r(e)}},u=e=>e.done?n(e.value):Promise.resolve(e.value).then(s,a);u((o=o.apply(e,t)).next())}));exports.createYjsPersister=(s,a)=>{const u=a.getMap("tinybase/store");return((s,a,l,i,v)=>{let d,c,p,y=0,f=!1;const h={load:(t,o)=>n(void 0,null,(function*(){if(2!=y){y=1;const n=yield r(void 0,null,(function*(){return u.get("json")}));e(n)||""==n?s.transaction((()=>s.setTables(t).setValues(o))):s.setJson(n),y=0}return h})),startAutoLoad:(e,t)=>n(void 0,null,(function*(){return h.stopAutoLoad(),yield h.load(e,t),f=!0,p=(e=>{const t=()=>e();return u.observe(t),t})(h.load),h})),stopAutoLoad:()=>{return f&&(e=p,u.unobserve(e),p=void 0,f=!1),h;var e},save:()=>n(void 0,null,(function*(){return 1!=y&&(y=2,yield(e=s.getJson(),r(void 0,null,(function*(){u.set("json",e)}))),y=0),h;var e})),startAutoSave:()=>n(void 0,null,(function*(){return yield h.stopAutoSave().save(),d=s.addTablesListener(h.save),c=s.addValuesListener(h.save),h})),stopAutoSave:()=>(t(d,s.delListener),t(c,s.delListener),h),getStore:()=>s,destroy:()=>h.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return o(h)})(s)};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e=require("fs");const t=e=>null==e,r=(e,r,o)=>t(e)?null==o?void 0:o():r(e),o=Object.freeze;var n=(e,t,r)=>new Promise(((o,n)=>{var s=e=>{try{l(r.next(e))}catch(e){n(e)}},a=e=>{try{l(r.throw(e))}catch(e){n(e)}},l=e=>e.done?o(e.value):Promise.resolve(e.value).then(s,a);l((r=r.apply(e,t)).next())}));const s=(e,s,a,l,i)=>{let u,c,d=0;const
|
|
1
|
+
"use strict";var e=require("fs");const t=e=>null==e,r=(e,r,o)=>t(e)?null==o?void 0:o():r(e),o=Object.freeze;var n=(e,t,r)=>new Promise(((o,n)=>{var s=e=>{try{l(r.next(e))}catch(e){n(e)}},a=e=>{try{l(r.throw(e))}catch(e){n(e)}},l=e=>e.done?o(e.value):Promise.resolve(e.value).then(s,a);l((r=r.apply(e,t)).next())}));const s=(e,s,a,l,i)=>{let u,c,d,v=0,h=!1;const y={load:(r,o)=>n(void 0,null,(function*(){if(2!=v){v=1;const n=yield s();t(n)||""==n?e.transaction((()=>e.setTables(r).setValues(o))):e.setJson(n),v=0}return y})),startAutoLoad:(e,t)=>n(void 0,null,(function*(){return y.stopAutoLoad(),yield y.load(e,t),h=!0,d=l(y.load),y})),stopAutoLoad:()=>(h&&(i(d),d=void 0,h=!1),y),save:()=>n(void 0,null,(function*(){return 1!=v&&(v=2,yield a(e.getJson()),v=0),y})),startAutoSave:()=>n(void 0,null,(function*(){return yield y.stopAutoSave().save(),u=e.addTablesListener(y.save),c=e.addValuesListener(y.save),y})),stopAutoSave:()=>(r(u,e.delListener),r(c,e.delListener),y),getStore:()=>e,destroy:()=>y.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return o(y)};var a=(e,t,r)=>new Promise(((o,n)=>{var s=e=>{try{l(r.next(e))}catch(e){n(e)}},a=e=>{try{l(r.throw(e))}catch(e){n(e)}},l=e=>e.done?o(e.value):Promise.resolve(e.value).then(s,a);l((r=r.apply(e,t)).next())}));const l=globalThis.window,i=(e,t,r)=>s(e,(()=>a(void 0,null,(function*(){return r.getItem(t)}))),(e=>a(void 0,null,(function*(){return r.setItem(t,e)}))),(e=>{const o=o=>{o.storageArea===r&&o.key===t&&e()};return l.addEventListener("storage",o),o}),(e=>l.removeEventListener("storage",e)));var u=(e,t,r)=>new Promise(((o,n)=>{var s=e=>{try{l(r.next(e))}catch(e){n(e)}},a=e=>{try{l(r.throw(e))}catch(e){n(e)}},l=e=>e.done?o(e.value):Promise.resolve(e.value).then(s,a);l((r=r.apply(e,t)).next())})),c=(e,t,r)=>new Promise(((o,n)=>{var s=e=>{try{l(r.next(e))}catch(e){n(e)}},a=e=>{try{l(r.throw(e))}catch(e){n(e)}},l=e=>e.done?o(e.value):Promise.resolve(e.value).then(s,a);l((r=r.apply(e,t)).next())}));const d=e=>e.headers.get("ETag");exports.createCustomPersister=s,exports.createFilePersister=(t,r)=>s(t,(()=>u(void 0,null,(function*(){try{return yield e.promises.readFile(r,"utf8")}catch(e){}}))),(t=>u(void 0,null,(function*(){try{yield e.promises.writeFile(r,t,"utf8")}catch(e){}}))),(t=>e.watch(r,t)),(e=>null==e?void 0:e.close())),exports.createLocalPersister=(e,t)=>i(e,t,localStorage),exports.createRemotePersister=(e,r,o,n)=>{let a;return s(e,(()=>c(void 0,null,(function*(){const e=yield fetch(r);return a=d(e),e.text()}))),(e=>c(void 0,null,(function*(){return yield fetch(o,{method:"POST",headers:{"Content-Type":"application/json"},body:e})}))),(e=>setInterval((()=>c(void 0,null,(function*(){const o=yield fetch(r,{method:"HEAD"}),n=d(o);t(a)||t(n)||n==a||(a=n,e())}))),1e3*n)),(e=>clearInterval(e)))},exports.createSessionPersister=(e,t)=>i(e,t,sessionStorage);
|
|
Binary file
|
package/lib/cjs-es6/tinybase.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e=require("fs");const t=e=>typeof e,n=t(""),s=t(!0),r=t(0),l=t(t),o=e=>""+e,a=(e,t)=>e.includes(t),i=(e,t)=>e.every(t),d=(e,t)=>g(e)===g(t)&&i(e,((e,n)=>t[n]===e)),c=(e,t)=>i(e,((n,s)=>0==s||t(e[s-1],n)<=0)),u=(e,t)=>e.sort(t),v=(e,t)=>e.forEach(t),h=(e,t)=>e.map(t),f=e=>L(e,((e,t)=>e+t),0),g=e=>e.length,p=e=>0==g(e),L=(e,t,n)=>e.reduce(t,n),w=(e,t,n)=>e.slice(t,n),y=(e,...t)=>e.push(...t),I=e=>e.pop(),R=e=>e.shift(),S=e=>JSON.stringify(e,((e,t)=>C(t,Map)?L([...t],((e,[t,n])=>(e[t]=n,e)),{}):t)),T=JSON.parse,b=Math.max,m=Math.min,x=isFinite,C=(e,t)=>e instanceof t,V=e=>null==e,E=(e,t,n)=>V(e)?null==n?void 0:n():t(e),P=e=>e==n||e==s,k=e=>t(e)==l,J=e=>Array.isArray(e),M=()=>{},A=e=>e.size,D=(e,t)=>{var n;return null!=(n=null==e?void 0:e.has(t))&&n},O=e=>V(e)||0==A(e),F=e=>{var t;return[...null!=(t=null==e?void 0:e.values())?t:[]]},j=e=>e.clear(),Q=(e,t)=>null==e?void 0:e.forEach(t),z=(e,t)=>null==e?void 0:e.delete(t),N=e=>new Map(e),W=e=>{var t;return[...null!=(t=null==e?void 0:e.keys())?t:[]]},q=(e,t)=>null==e?void 0:e.get(t),B=(e,t)=>Q(e,((e,n)=>t(n,e))),H=(e,t,n)=>V(n)?(z(e,t),e):null==e?void 0:e.set(t,n),$=(e,t,n)=>(D(e,t)||H(e,t,n()),q(e,t)),G=(e,t,n)=>{const s={},r=null!=t?t:e=>e;return Q(e,((e,t)=>E(r(e),(e=>(null==n?void 0:n(e))?0:s[t]=e)))),s},K=(e,t)=>{const n=N(),s=null!=t?t:e=>e;return Q(e,((e,t)=>n.set(t,s(e)))),n},U=e=>K(e,K),X=(e,t,n,s,r=0)=>E((n?$:q)(e,t[r],r>g(t)-2?n:N),(l=>{if(r>g(t)-2)return(null==s?void 0:s(l))&&H(e,t[r]),l;const o=X(l,t,n,s,r+1);return O(l)&&H(e,t[r]),o})),Y=e=>{const n=t(e);return P(n)||n==r&&x(e)?n:void 0},Z=(e,t,n,s,r)=>V(r)?e.delCell(t,n,s,!0):e.setCell(t,n,s,r),_=(e,t,n)=>V(n)?e.delValue(t):e.setValue(t,n),ee=e=>new Set(J(e)||V(e)?e:[e]),te=(e,t)=>null==e?void 0:e.add(t),ne=(e,t,n)=>{const s=e.hasRow,r=N(),l=N(),o=N(),a=N(),i=N(),c=(t,n,...s)=>{const r=$(i,t,ee);return v(s,(t=>te(r,t)&&n&&e.callListener(t))),s},u=(t,...n)=>E(q(i,t),(s=>{v(p(n)?F(s):n,(t=>{e.delListener(t),z(s,t)})),O(s)&&H(i,t)})),h=(e,n)=>{H(r,e,n),D(l,e)||(H(l,e,t()),H(o,e,N()),H(a,e,N()))},f=e=>{H(r,e),H(l,e),H(o,e),H(a,e),u(e)};return[()=>e,()=>W(r),e=>B(l,e),e=>D(l,e),e=>q(r,e),e=>q(l,e),(e,t)=>H(l,e,t),h,(t,r,l,i,f)=>{h(t,r);const g=N(),p=N(),L=q(o,t),w=q(a,t),y=t=>{const l=n=>e.getCell(r,t,n),o=q(L,t),a=s(r,t)?n(i(l,t)):void 0;if(o===a||J(o)&&J(a)&&d(o,a)||H(g,t,[o,a]),!V(f)){const e=q(w,t),n=s(r,t)?f(l,t):void 0;e!=n&&H(p,t,n)}},I=e=>{l((()=>{Q(g,(([,e],t)=>H(L,t,e))),Q(p,((e,t)=>H(w,t,e)))}),g,p,L,w,e),j(g),j(p)};B(L,y),e.hasTable(r)&&v(e.getRowIds(r),(e=>{D(L,e)||y(e)})),I(!0),u(t),c(t,0,e.addRowListener(r,null,((e,t,n)=>y(n))),e.addTableListener(r,(()=>I())))},f,()=>B(i,f),c,u]},se=(e,s)=>t(e)==n?t=>t(e):null!=e?e:()=>null!=s?s:"",re=e=>{const t=new WeakMap;return n=>(t.has(n)||t.set(n,e(n)),t.get(n))},le=/^\d+$/,oe=()=>{const e=[];let t=0;return[n=>{var s;return null!=(s=n?R(e):null)?s:""+t++},t=>{le.test(t)&&g(e)<1e3&&y(e,t)}]},ae=e=>{let t;const[n,s]=oe(),r=N();return[(s,l,o,a=[],i=(()=>[]))=>{null!=t||(t=e());const d=n(1);return H(r,d,[s,l,o,a,i]),te(X(l,null!=o?o:[""],ee),d),d},(e,n,...s)=>v(((e,t=[""])=>{const n=[],s=(e,r)=>r==g(t)?y(n,e):null===t[r]?Q(e,(e=>s(e,r+1))):v([t[r],null],(t=>s(q(e,t),r+1)));return s(e,0),n})(e,n),(e=>Q(e,(e=>q(r,e)[0](t,...null!=n?n:[],...s))))),e=>E(q(r,e),(([,t,n])=>(X(t,null!=n?n:[""],void 0,(t=>(z(t,e),O(t)?1:0))),H(r,e),s(e),n))),e=>E(q(r,e),(([e,,n=[],s,r])=>{const l=(...o)=>{var a,i;const d=g(o);d==g(n)?e(t,...o,...r(o)):V(n[d])?v(null!=(i=null==(a=s[d])?void 0:a.call(s,...o))?i:[],(e=>l(...o,e))):l(...o,n[d])};l()}))]},ie=Object,de=ie.keys,ce=ie.isFrozen,ue=ie.freeze,ve=e=>C(e,ie)&&e.constructor==ie,he=(e,t)=>!V(((e,t)=>E(e,(e=>e[t])))(e,t)),fe=(e,t)=>delete e[t],ge=(e,t)=>h(ie.entries(e),(([e,n])=>t(n,e))),pe=e=>ve(e)&&p(de(e)),Le=re((e=>{let t,n,s,r=100,l=N(),o=N(),i=1;const d=N(),c=N(),[u,h,f]=ae((()=>U)),L=N(),w=N(),S=[],T=[],b=(t,n)=>{i=0,e.transaction((()=>{const[s,r]=q(L,n);Q(s,((n,s)=>Q(n,((n,r)=>Q(n,((n,l)=>Z(e,s,r,l,n[t]))))))),Q(r,((n,s)=>_(e,s,n[t])))})),i=1},m=e=>{H(L,e),H(w,e),h(c,[e])},x=(e,t)=>v(((e,t)=>e.splice(0,t))(e,null!=t?t:g(e)),m),C=()=>x(S,g(S)-r),P=()=>E(t,(()=>{y(S,t),C(),x(T),t=void 0,s=1})),k=()=>{t=I(S),s=1},J=e.addCellListener(null,null,null,((e,t,n,s,r,o)=>{if(i){P();const e=$(l,t,N),a=$(e,n,N),i=$(a,s,(()=>[o,void 0]));i[1]=r,i[0]===r&&O(H(a,s))&&O(H(e,n))&&O(H(l,t))&&k(),z()}})),M=e.addValueListener(null,((e,t,n,s)=>{if(i){P();const e=$(o,t,(()=>[s,void 0]));e[1]=n,e[0]===n&&O(H(o,t))&&k(),z()}})),A=(e="")=>(V(t)&&(t=""+n++,H(L,t,[l,o]),G(t,e),l=N(),o=N(),s=1),t),F=()=>{p(S)||(((e,...t)=>{e.unshift(...t)})(T,A()),b(0,t),t=I(S),s=1)},j=()=>{p(T)||(y(S,t),t=R(T),b(1,t),s=1)},z=()=>{s&&(h(d),s=0)},W=e=>{const t=A(e);return z(),t},G=(e,t)=>(K(e)&&q(w,e)!==t&&(H(w,e,t),h(c,[e])),U),K=e=>D(L,e),U={setSize:e=>(r=e,C(),U),addCheckpoint:W,setCheckpoint:G,getStore:()=>e,getCheckpointIds:()=>[[...S],t,[...T]],forEachCheckpoint:e=>B(w,e),hasCheckpoint:K,getCheckpoint:e=>q(w,e),goBackward:()=>(F(),z(),U),goForward:()=>(j(),z(),U),goTo:e=>{const n=a(S,e)?F:a(T,e)?j:null;for(;!V(n)&&e!=t;)n();return z(),U},addCheckpointIdsListener:e=>u(e,d),addCheckpointListener:(e,t)=>u(t,c,[e]),delListener:e=>(f(e),U),clear:()=>(x(S),x(T),V(t)||m(t),t=void 0,n=0,W(),U),destroy:()=>{e.delListener(J),e.delListener(M)},getListenerStats:()=>({})};return ue(U.clear())})),we=(e,t)=>e<t?-1:1,ye=re((e=>{const t=N(),n=N(),[s,r,l,a,i,d,v,,f,g,p]=ne(e,N,(e=>V(e)?"":J(e)?h(e,o):o(e))),[L,w,y]=ae((()=>R)),I=(t,n,s)=>{const r=i(t);Q(s,((t,s)=>n(s,(n=>Q(t,(t=>n(t,(n=>e.forEachCell(r,t,n)))))))))},R={setIndexDefinition:(e,s,r,l,o,a=we)=>{const i=V(o)?void 0:([e],[t])=>o(e,t);return f(e,s,((s,r,o,h,f,g)=>{let p=0;const L=ee(),y=ee(),I=d(e);if(Q(r,(([e,t],n)=>{const s=ee(e),r=ee(t);Q(s,(e=>z(r,e)?z(s,e):0)),Q(s,(e=>{te(L,e),E(q(I,e),(t=>{z(t,n),O(t)&&(H(I,e),p=1)}))})),Q(r,(e=>{te(L,e),D(I,e)||(H(I,e,ee()),p=1),te(q(I,e),n),V(l)||te(y,e)}))})),s(),O(f)||(g?B(I,(e=>te(y,e))):B(o,(e=>E(q(h,e),(e=>te(y,e))))),Q(y,(e=>{const t=(t,n)=>a(q(f,t),q(f,n),e),n=[...q(I,e)];c(n,t)||(H(I,e,ee(u(n,t))),te(L,e))}))),(p||g)&&!V(i)){const t=[...I];c(t,i)||(v(e,N(u(t,i))),p=1)}p&&w(t,[e]),Q(L,(t=>w(n,[e,t])))}),se(r),E(l,se)),R},delIndexDefinition:e=>(g(e),R),getStore:s,getIndexIds:r,forEachIndex:e=>l(((t,n)=>e(t,(e=>I(t,e,n))))),forEachSlice:(e,t)=>I(e,t,d(e)),hasIndex:a,hasSlice:(e,t)=>D(d(e),t),getTableId:i,getSliceIds:e=>W(d(e)),getSliceRowIds:(e,t)=>F(q(d(e),t)),addSliceIdsListener:(e,n)=>L(n,t,[e]),addSliceRowIdsListener:(e,t,s)=>L(s,n,[e,t]),delListener:e=>(y(e),R),destroy:p,getListenerStats:()=>({})};return ue(R)})),Ie=N([["avg",[(e,t)=>f(e)/t,(e,t,n)=>e+(t-e)/(n+1),(e,t,n)=>e+(e-t)/(n-1),(e,t,n,s)=>e+(t-n)/s]],["max",[e=>b(...e),(e,t)=>b(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:b(t,e)]],["min",[e=>m(...e),(e,t)=>m(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:m(t,e)]],["sum",[e=>f(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,n)=>e-n+t]]]),Re=(e,t,n,s,r,l=!1)=>{if(O(n))return;const[o,a,i,d]=r;return l||(l=V(e)),Q(s,(([n,s])=>{l||(e=V(n)?null==a?void 0:a(e,s,t++):V(s)?null==i?void 0:i(e,n,t--):null==d?void 0:d(e,s,n,t),l||(l=V(e)))})),l?o(F(n),A(n)):e},Se=re((e=>{const t=N(),[n,s,r,l,o,a,i,,d,c,u]=ne(e,M,(e=>isNaN(e)||V(e)||!0===e||!1===e||""===e?void 0:1*e)),[v,h,f]=ae((()=>g)),g={setMetricDefinition:(e,n,s,r,l,o,c)=>{var u;const v=k(s)?[s,l,o,c]:null!=(u=q(Ie,s))?u:q(Ie,"sum");return d(e,n,((n,s,r,l,o,d)=>{const c=a(e),u=A(l);d||(d=V(c)),n();let f=Re(c,u,l,s,v,d);x(f)||(f=void 0),f!=c&&(i(e,f),h(t,[e],f,c))}),se(r,1)),g},delMetricDefinition:e=>(c(e),g),getStore:n,getMetricIds:s,forEachMetric:r,hasMetric:l,getTableId:o,getMetric:a,addMetricListener:(e,n)=>v(n,t,[e]),delListener:e=>(f(e),g),destroy:u,getListenerStats:()=>({})};return ue(g)}));var Te=(e,t,n)=>new Promise(((s,r)=>{var l=e=>{try{a(n.next(e))}catch(e){r(e)}},o=e=>{try{a(n.throw(e))}catch(e){r(e)}},a=e=>e.done?s(e.value):Promise.resolve(e.value).then(l,o);a((n=n.apply(e,t)).next())}));const be=(e,t,n,s,r)=>{let l,o,a=0;const i={load:(n,s)=>Te(void 0,null,(function*(){if(2!=a){a=1;const r=yield t();V(r)||""==r?e.transaction((()=>e.setTables(n).setValues(s))):e.setJson(r),a=0}return i})),startAutoLoad:(e,t)=>Te(void 0,null,(function*(){return i.stopAutoLoad(),yield i.load(e,t),s(i.load),i})),stopAutoLoad:()=>(r(),i),save:()=>Te(void 0,null,(function*(){return 1!=a&&(a=2,yield n(e.getJson()),a=0),i})),startAutoSave:()=>Te(void 0,null,(function*(){return yield i.stopAutoSave().save(),l=e.addTablesListener(i.save),o=e.addValuesListener(i.save),i})),stopAutoSave:()=>(E(l,e.delListener),E(o,e.delListener),i),getStore:()=>e,destroy:()=>i.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return ue(i)};var me=(e,t,n)=>new Promise(((s,r)=>{var l=e=>{try{a(n.next(e))}catch(e){r(e)}},o=e=>{try{a(n.throw(e))}catch(e){r(e)}},a=e=>e.done?s(e.value):Promise.resolve(e.value).then(l,o);a((n=n.apply(e,t)).next())}));const xe=globalThis.window,Ce=(e,t,n)=>{let s;return be(e,(()=>me(void 0,null,(function*(){return n.getItem(t)}))),(e=>me(void 0,null,(function*(){return n.setItem(t,e)}))),(e=>{s=s=>{s.storageArea===n&&s.key===t&&e()},xe.addEventListener("storage",s)}),(()=>{xe.removeEventListener("storage",s),s=void 0}))};var Ve=(e,t,n)=>new Promise(((s,r)=>{var l=e=>{try{a(n.next(e))}catch(e){r(e)}},o=e=>{try{a(n.throw(e))}catch(e){r(e)}},a=e=>e.done?s(e.value):Promise.resolve(e.value).then(l,o);a((n=n.apply(e,t)).next())})),Ee=(e,t,n)=>new Promise(((s,r)=>{var l=e=>{try{a(n.next(e))}catch(e){r(e)}},o=e=>{try{a(n.throw(e))}catch(e){r(e)}},a=e=>e.done?s(e.value):Promise.resolve(e.value).then(l,o);a((n=n.apply(e,t)).next())}));const Pe=e=>e.headers.get("ETag");var ke=Object.getOwnPropertySymbols,Je=Object.prototype.hasOwnProperty,Me=Object.prototype.propertyIsEnumerable;const Ae=re((e=>{const t=e.createStore,[n,s,r,l,o,,,a,,d,c,u,h]=ne(e,(()=>!0),M),f=t(),L=t(),I=N(),R=(e,t,...n)=>v(n,(n=>te($($(I,t,N),e,ee),n))),S=e=>{E(q(I,e),(e=>{B(e,((e,t)=>Q(t,(t=>e.delListener(t))))),j(e)})),v([L,f],(t=>t.delTable(e)))},T=(e,t,n)=>R(t,e,t.addWillFinishTransactionListener(n.startTransaction),t.addDidFinishTransactionListener((()=>n.finishTransaction()))),b={setQueryDefinition:(t,n,s)=>{a(t,n),S(t);const r=[],l=[[null,[n,null,null,[],N()]]],o=[],d=[],c=[];s({select:(e,t)=>{const n=k(e)?[g(r)+"",e]:[V(t)?e:t,n=>n(e,t)];return y(r,n),{as:e=>n[0]=e}},join:(e,t,n)=>{const s=V(n)||k(t)?null:t,r=V(s)?t:n,o=[e,[e,s,k(r)?r:e=>e(r),[],N()]];return y(l,o),{as:e=>o[0]=e}},where:(e,t,n)=>y(o,k(e)?e:V(n)?n=>n(e)===t:s=>s(e,t)===n),group:(e,t,n,s,r)=>{var l;const o=[e,[e,k(t)?[t,n,s,r]:null!=(l=q(Ie,t))?l:[(e,t)=>t]]];return y(d,o),{as:e=>o[0]=e}},having:(e,t)=>y(c,k(e)?e:n=>n(e)===t)});const w=N(r);if(O(w))return b;const I=N(l);B(I,((e,[,t])=>E(q(I,t),(({3:t})=>V(e)?0:y(t,e)))));const m=N(d);let x=f;if(O(m)&&p(c))x=L;else{T(t,x,L);const e=N();B(m,((t,[n,s])=>te($(e,n,ee),[t,s])));const n=ee();B(w,(t=>D(e,t)?0:te(n,t)));const s=N(),r=(n,s,r,l)=>E(n,(([o,a,d,u])=>{B(s,((t,[n])=>{const s=$(o,t,N),a=q(s,r),i=l?void 0:n;if(a!==i){const n=ee([[a,i]]),l=A(s);H(s,r,i),Q(q(e,t),(([e,t])=>{const r=Re(u[e],l,s,n,t);u[e]=V(Y(r))?null:r}))}})),O(a)||!i(c,(e=>e((e=>u[e]))))?L.delRow(t,d):V(d)?n[2]=L.addRow(t,u):L.setRow(t,d,u)}));R(x,t,x.addRowListener(t,null,((l,o,a,i)=>{const d=[],c=[],u=N(),v=x.hasRow(t,a);let h=!v;Q(n,(e=>{const[n,s,r]=i(t,a,e);y(d,s),y(c,r),h||(h=n)})),B(e,(e=>{const[n,,s]=i(t,a,e);(h||n)&&H(u,e,[s])})),h&&r(X(s,d,void 0,(([,e])=>(z(e,a),O(e)))),u,a,1),v&&r(X(s,c,(()=>{const e={};return Q(n,(n=>e[n]=x.getCell(t,a,n))),[N(),ee(),void 0,e]}),(([,e])=>{te(e,a)})),u,a)})))}T(t,e,x);const C=(s,r,l,a)=>{const d=t=>e.getCell(r,l,t);v(a,(n=>{var r;const[l,,o,a,i]=q(I,n),c=null==o?void 0:o(d,s),[v,f]=null!=(r=q(i,s))?r:[];c!=v&&(V(f)||h(t,f),H(i,s,V(c)?null:[c,...u(t,1,e.addRowListener(l,c,(()=>C(s,l,c,a))))]))})),(s=>{const r=(t,r)=>{var l,o,a;return e.getCell(...V(r)?[n,s,t]:t===n?[n,s,r]:[null==(l=q(I,t))?void 0:l[0],null==(a=q(null==(o=q(I,t))?void 0:o[4],s))?void 0:a[0],r])};x.transaction((()=>i(o,(e=>e(r)))?B(w,((e,n)=>Z(x,t,s,e,n(r,s)))):x.delRow(t,s)))})(s)},{3:P}=q(I,null);return x.transaction((()=>u(t,1,e.addRowListener(n,null,((s,r,l)=>{e.hasRow(n,l)?C(l,n,l,P):(x.delRow(t,l),Q(I,(({4:e})=>E(q(e,l),(([,n])=>{h(t,n),H(e,l)})))))}))))),b},delQueryDefinition:e=>(S(e),d(e),b),getStore:n,getQueryIds:s,forEachQuery:r,hasQuery:l,getTableId:o,delListener:e=>(L.delListener(e),b),destroy:c,getListenerStats:()=>((e,t)=>{var n={};for(var s in e)Je.call(e,s)&&t.indexOf(s)<0&&(n[s]=e[s]);if(null!=e&&ke)for(var s of ke(e))t.indexOf(s)<0&&Me.call(e,s)&&(n[s]=e[s]);return n})(L.getListenerStats(),["tables","tableIds","transaction"])};return ge({Table:[1,1],RowIds:[0,1],SortedRowIds:[0,5],Row:[1,2],CellIds:[0,2],Cell:[1,3]},(([e,t],n)=>{v(e?["get","has","forEach"]:["get"],(e=>b[e+"Result"+n]=(...t)=>L[e+n](...t))),b["addResult"+n+"Listener"]=(...e)=>L["add"+n+"Listener"](...w(e,0,t),((n,...s)=>e[t](b,...s)))})),ue(b)})),De=re((e=>{const t=N(),n=N(),s=N(),r=N(),[l,o,a,i,d,c,,,u,v,h]=ne(e,(()=>[N(),N(),N(),N()]),(e=>V(e)?void 0:e+"")),[f,g,p]=ae((()=>I)),L=(e,t,n)=>E(c(e),(([s,,r])=>{if(!D(r,t)){const l=ee();if(d(e)!=y(e))te(l,t);else{let e=t;for(;!V(e)&&!D(l,e);)te(l,e),e=q(s,e)}if(n)return l;H(r,t,l)}return q(r,t)})),w=(e,t)=>E(c(e),(([,,e])=>H(e,t))),y=e=>q(t,e),I={setRelationshipDefinition:(e,l,o,a)=>(H(t,e,o),u(e,l,((t,l)=>{const o=ee(),a=ee(),i=ee(),[d,u]=c(e);Q(l,(([t,n],s)=>{V(t)||(te(a,t),E(q(u,t),(e=>{z(e,s),O(e)&&H(u,t)}))),V(n)||(te(a,n),D(u,n)||H(u,n,ee()),te(q(u,n),s)),te(o,s),H(d,s,n),B(q(r,e),(t=>{D(L(e,t),s)&&te(i,t)}))})),t(),Q(o,(t=>g(n,[e,t]))),Q(a,(t=>g(s,[e,t]))),Q(i,(t=>{w(e,t),g(r,[e,t])}))}),se(a)),I),delRelationshipDefinition:e=>(H(t,e),v(e),I),getStore:l,getRelationshipIds:o,forEachRelationship:t=>a((n=>t(n,(t=>e.forEachRow(d(n),t))))),hasRelationship:i,getLocalTableId:d,getRemoteTableId:y,getRemoteRowId:(e,t)=>{var n;return q(null==(n=c(e))?void 0:n[0],t)},getLocalRowIds:(e,t)=>{var n;return F(q(null==(n=c(e))?void 0:n[1],t))},getLinkedRowIds:(e,t)=>V(c(e))?[t]:F(L(e,t,!0)),addRemoteRowIdListener:(e,t,s)=>f(s,n,[e,t]),addLocalRowIdsListener:(e,t,n)=>f(n,s,[e,t]),addLinkedRowIdsListener:(e,t,n)=>(L(e,t),f(n,r,[e,t])),delListener:e=>(w(...p(e)),I),destroy:h,getListenerStats:()=>({})};return ue(I)})),Oe=e=>[e,e],Fe=()=>[N(),N()],je=(e,t,n,s=H)=>{const r=(l=e=>!he(t,e),W(e).filter(l));var l;return v(de(t),(s=>n(e,s,t[s]))),v(r,(t=>s(e,t))),e},Qe=(e,t,n)=>V(e)||!ve(e)||pe(e)||ce(e)?(null==n||n(),!1):(ge(e,((n,s)=>{t(n,s)||fe(e,s)})),!pe(e)),ze=(e,t,n)=>H(e,t,q(e,t)==-n?void 0:n),Ne=()=>{let e,t,n,s,l=0;const i=N(),c=N(),f=N(),g=N(),p=N(),L=N(),I=N(),R=N(),b=N(),m=N(),x=N(),C=N(),J=ee(),M=N(),A=N(),F=N(),X=Fe(),ne=Fe(),se=Fe(),re=Fe(),le=Fe(),ie=Fe(),de=Fe(),ce=Fe(),ve=Fe(),Le=Fe(),ye=Fe(),Ie=Fe(),Re=Fe(),Se=Fe(),[Te,be,me,xe]=ae((()=>Nt)),Ce=e=>{if(!Qe(e,((e,t)=>a(["type","default"],t))))return!1;const t=e.type;return!(!P(t)&&t!=r||(Y(e.default)!=t&&fe(e,"default"),0))},Ve=(t,n)=>(!e||D(b,n)||ct(n))&&Qe(t,((e,t)=>Ee(n,t,e)),(()=>ct(n))),Ee=(e,t,n,s)=>Qe(s?n:Me(n,e,t),((s,r)=>E(Pe(e,t,r,s),(e=>(n[r]=e,!0)),(()=>!1))),(()=>ct(e,t))),Pe=(t,n,s,r)=>e?E(q(q(b,t),s),(e=>Y(r)!=e.type?ct(t,n,s,r,e.default):r),(()=>ct(t,n,s,r))):V(Y(r))?ct(t,n,s,r):r,ke=(e,t)=>Qe(t?e:Ae(e),((t,n)=>E(Je(n,t),(t=>(e[n]=t,!0)),(()=>!1))),(()=>ut())),Je=(e,n)=>t?E(q(x,e),(t=>Y(n)!=t.type?ut(e,n,t.default):n),(()=>ut(e,n))):V(Y(n))?ut(e,n):n,Me=(e,t,n)=>(E(q(m,t),(([s,r])=>{Q(s,((t,n)=>{he(e,n)||(e[n]=t)})),Q(r,(s=>{he(e,s)||ct(t,n,s)}))})),e),Ae=e=>(t&&(Q(C,((t,n)=>{he(e,n)||(e[n]=t)})),Q(J,(t=>{he(e,t)||ut(t)}))),e),De=e=>je(b,e,((e,t,n)=>{const s=N(),r=ee();je($(b,t,N),n,((e,t,n)=>{H(e,t,n),E(n.default,(e=>H(s,t,e)),(()=>te(r,t)))})),H(m,t,[s,r])}),((e,t)=>{H(b,t),H(m,t)})),We=e=>je(x,e,((e,t,n)=>{H(x,t,n),E(n.default,(e=>H(C,t,e)),(()=>te(J,t)))}),((e,t)=>{H(x,t),H(C,t),z(J,t)})),qe=e=>pe(e)?At():Et(e),Be=e=>je(A,e,((e,t,n)=>He(t,n)),((e,t)=>et(t))),He=(e,t)=>je($(A,e,(()=>(rt(e,1),N()))),t,((t,n,s)=>$e(e,t,n,s)),((t,n)=>tt(e,t,n))),$e=(e,t,n,s,r)=>je($(t,n,(()=>(lt(e,n,1),N()))),s,((t,s,r)=>Ge(e,n,t,s,r)),((s,l)=>nt(e,t,n,s,l,r))),Ge=(e,t,n,s,r)=>{D(n,s)||ot(e,t,s,1);const l=q(n,s);r!==l&&(at(e,t,s,l,r),H(n,s,r))},Ke=(e,t,n,s,r)=>E(q(t,n),(t=>Ge(e,n,t,s,r)),(()=>$e(e,t,n,Me({[s]:r},e,n)))),Ue=e=>pe(e)?Dt():Pt(e),Xe=e=>je(F,e,((e,t,n)=>Ye(t,n)),((e,t)=>st(t))),Ye=(e,t)=>{D(F,e)||it(e,1);const n=q(F,e);t!==n&&(dt(e,n,t),H(F,e,t))},Ze=(e,t)=>{const[n]=$(M,e,oe),s=n(t);return D(q(A,e),s)?Ze(e,t):s},_e=e=>{var t;return null!=(t=q(A,e))?t:He(e,{})},et=e=>He(e,{}),tt=(e,t,n)=>{const[,s]=$(M,e,oe);s(n),$e(e,t,n,{},!0)},nt=(e,t,n,s,r,l)=>{var o;const a=q(null==(o=q(m,e))?void 0:o[0],r);if(!V(a)&&!l)return Ge(e,n,s,r,a);const i=t=>{at(e,n,t,q(s,t)),ot(e,n,t,-1),H(s,t)};V(a)?i(r):B(s,i),O(s)&&(lt(e,n,-1),O(H(t,n))&&(rt(e,-1),H(A,e),H(M,e)))},st=e=>{const t=q(C,e);if(!V(t))return Ye(e,t);dt(e,q(F,e)),it(e,-1),H(F,e)},rt=(e,t)=>ze(i,e,t),lt=(e,t,n)=>ze($(c,e,N),t,n),ot=(e,t,n,s)=>ze($($(f,e,N),t,N),n,s),at=(e,t,n,s,r)=>$($($(g,e,N),t,N),n,(()=>[s,0]))[1]=r,it=(e,t)=>ze(p,e,t),dt=(e,t,n)=>$(L,e,(()=>[t,0]))[1]=n,ct=(e,t,n,s,r)=>(y($($($(I,e,N),t,N),n,(()=>[])),s),r),ut=(e,t,n)=>(y($(R,e,(()=>[])),t),n),vt=(e,t,n)=>E(q(q(q(g,e),t),n),(([e,t])=>[!0,e,t]),(()=>[!1,...Oe(mt(e,t,n))])),ht=e=>E(q(L,e),(([e,t])=>[!0,e,t]),(()=>[!1,...Oe(Vt(e))])),ft=e=>O(I)||O(ve[e])?0:Q(e?K(I,U):I,((t,n)=>Q(t,((t,s)=>Q(t,((t,r)=>be(ve[e],[n,s,r],t))))))),gt=e=>O(R)||O(Le[e])?0:Q(e?K(R):R,((t,n)=>be(Le[e],[n],t))),pt=(e,t,n)=>{if(!O(t))return be(e,n),1},Lt=e=>{const t=O(le[e]),n=O(de[e])&&O(re[e])&&t&&O(ne[e]),s=O(ce[e])&&O(ie[e])&&O(se[e])&&O(X[e]);if(!n||!s){const r=e?[K(i),U(c),K(f,U),K(g,U)]:[i,c,f,g];if(!n){Q(r[2],((t,n)=>Q(t,((t,s)=>pt(de[e],t,[n,s])))));const n=ee();Q(r[1],((s,r)=>{pt(re[e],s,[r])&&!t&&(be(le[e],[r,null]),te(n,r))})),t||Q(r[3],((t,s)=>{if(!D(n,s)){const n=ee();Q(t,(e=>Q(e,(([t,s],r)=>s!==t?te(n,r):z(e,r))))),Q(n,(t=>be(le[e],[s,t])))}})),pt(ne[e],r[0])}if(!s){let t;Q(r[3],((n,s)=>{let r;Q(n,((n,l)=>{let o;Q(n,(([n,a],i)=>{a!==n&&(be(ce[e],[s,l,i],a,n,vt),t=r=o=1)})),o&&be(ie[e],[s,l],vt)})),r&&be(se[e],[s],vt)})),t&&be(X[e],void 0,vt)}}},wt=e=>{const t=O(Ie[e]),n=O(Re[e])&&O(ye[e]);if(!t||!n){const s=e?[K(p),K(L)]:[p,L];if(t||pt(Ie[e],s[0]),!n){let t;Q(s[1],(([n,s],r)=>{s!==n&&(be(Re[e],[r],s,n,ht),t=1)})),t&&be(ye[e],void 0,ht)}}},yt=(e,...t)=>(jt((()=>e(...h(t,o)))),Nt),It=()=>G(A,(e=>G(e,G))),Rt=()=>W(A),St=e=>W(q(A,o(e))),Tt=(e,t,n,s=0,r)=>{return h(w(u((l=q(A,o(e)),a=(e,n)=>[V(t)?n:q(e,o(t)),n],h([...null!=(i=null==l?void 0:l.entries())?i:[]],(([e,t])=>a(t,e)))),(([e],[t])=>we(e,t)*(n?-1:1))),s,V(r)?r:s+r),(([,e])=>e));var l,a,i},bt=(e,t)=>W(q(q(A,o(e)),o(t))),mt=(e,t,n)=>q(q(q(A,o(e)),o(t)),o(n)),xt=()=>G(F),Ct=()=>W(F),Vt=e=>q(F,o(e)),Et=e=>yt((()=>(e=>Qe(e,Ve,ct))(e)?Be(e):0)),Pt=e=>yt((()=>ke(e)?Xe(e):0)),kt=e=>{try{qe(T(e))}catch(e){}return Nt},Jt=t=>yt((()=>{if((e=Qe(t,(e=>Qe(e,Ce))))&&(De(t),!O(A))){const e=It();At(),Et(e)}})),Mt=e=>yt((()=>{if(t=(e=>Qe(e,Ce))(e)){const n=xt();Ft(),Dt(),t=!0,We(e),Pt(n)}})),At=()=>yt((()=>Be({}))),Dt=()=>yt((()=>Xe({}))),Ot=()=>yt((()=>{De({}),e=!1})),Ft=()=>yt((()=>{We({}),t=!1})),jt=(e,t)=>{if(-1==l)return;Qt();const n=e();return zt(t),n},Qt=()=>(l++,Nt),zt=e=>(l>0&&(l--,0==l&&(n=!O(g),s=!O(L),l=1,ft(1),n&&Lt(1),gt(1),s&&wt(1),l=-1,(null==e?void 0:e(G(g,(e=>G(e,(e=>G(e,(e=>[...e]),(([e,t])=>e===t))),pe)),pe),G(I,(e=>G(e,G))),G(L,(e=>[...e]),(([e,t])=>e===t)),G(R)))&&(l=1,Q(g,((e,t)=>Q(e,((e,n)=>Q(e,(([e],s)=>Z(Nt,t,n,s,e))))))),Q(L,(([e],t)=>_(Nt,t,e))),l=-1,n=s=!1),be(Se[0],void 0,n,s),ft(0),n&&Lt(0),gt(0),s&&wt(0),be(Se[1],void 0,n,s),l=0,v([i,c,f,g,I,p,L,R],j))),Nt),Nt={getTables:It,getTableIds:Rt,getTable:e=>G(q(A,o(e)),G),getRowIds:St,getSortedRowIds:Tt,getRow:(e,t)=>G(q(q(A,o(e)),o(t))),getCellIds:bt,getCell:mt,getValues:xt,getValueIds:Ct,getValue:Vt,hasTables:()=>!O(A),hasTable:e=>D(A,o(e)),hasRow:(e,t)=>D(q(A,o(e)),o(t)),hasCell:(e,t,n)=>D(q(q(A,o(e)),o(t)),o(n)),hasValues:()=>!O(F),hasValue:e=>D(F,o(e)),getTablesJson:()=>S(A),getValuesJson:()=>S(F),getJson:()=>S([A,F]),getTablesSchemaJson:()=>S(b),getValuesSchemaJson:()=>S(x),getSchemaJson:()=>S([b,x]),setTables:Et,setTable:(e,t)=>yt((e=>Ve(t,e)?He(e,t):0),e),setRow:(e,t,n)=>yt(((e,t)=>Ee(e,t,n)?$e(e,_e(e),t,n):0),e,t),addRow:(e,t,n=!0)=>jt((()=>{let s;return Ee(e,s,t)&&(e=o(e),$e(e,_e(e),s=Ze(e,n?1:0),t)),s})),setPartialRow:(e,t,n)=>yt(((e,t)=>{if(Ee(e,t,n,1)){const s=_e(e);ge(n,((n,r)=>Ke(e,s,t,r,n)))}}),e,t),setCell:(e,t,n,s)=>yt(((e,t,n)=>E(Pe(e,t,n,k(s)?s(mt(e,t,n)):s),(s=>Ke(e,_e(e),t,n,s)))),e,t,n),setValues:Pt,setPartialValues:e=>yt((()=>ke(e,1)?ge(e,((e,t)=>Ye(t,e))):0)),setValue:(e,t)=>yt((e=>E(Je(e,k(t)?t(Vt(e)):t),(t=>Ye(e,t)))),e),setTablesJson:kt,setValuesJson:e=>{try{Ue(T(e))}catch(e){}return Nt},setJson:e=>{try{const[t,n]=T(e);qe(t),Ue(n)}catch(t){kt(e)}return Nt},setTablesSchema:Jt,setValuesSchema:Mt,setSchema:(e,t)=>yt((()=>{Jt(e),Mt(t)})),delTables:At,delTable:e=>yt((e=>D(A,e)?et(e):0),e),delRow:(e,t)=>yt(((e,t)=>E(q(A,e),(n=>D(n,t)?tt(e,n,t):0))),e,t),delCell:(e,t,n,s)=>yt(((e,t,n)=>E(q(A,e),(r=>E(q(r,t),(l=>D(l,n)?nt(e,r,t,l,n,s):0))))),e,t,n),delValues:Dt,delValue:e=>yt((e=>D(F,e)?st(e):0),e),delTablesSchema:Ot,delValuesSchema:Ft,delSchema:()=>yt((()=>{Ot(),Ft()})),transaction:jt,startTransaction:Qt,finishTransaction:zt,forEachTable:e=>Q(A,((t,n)=>e(n,(e=>Q(t,((t,n)=>e(n,(e=>B(t,e))))))))),forEachRow:(e,t)=>Q(q(A,o(e)),((e,n)=>t(n,(t=>B(e,t))))),forEachCell:(e,t,n)=>B(q(q(A,o(e)),o(t)),n),forEachValue:e=>B(F,e),addSortedRowIdsListener:(e,t,n,s,r,l,o)=>{let a=Tt(e,t,n,s,r);return Te((()=>{const o=Tt(e,t,n,s,r);d(o,a)||(a=o,l(Nt,e,t,n,s,r,a))}),le[o?1:0],[e,t],[Rt])},addWillFinishTransactionListener:e=>Te(e,Se[0]),addDidFinishTransactionListener:e=>Te(e,Se[1]),callListener:e=>(xe(e),Nt),delListener:e=>(me(e),Nt),getListenerStats:()=>({}),createStore:Ne};return ge({Tables:[0,X],TableIds:[0,ne],Table:[1,se,[Rt]],RowIds:[1,re,[Rt]],Row:[2,ie,[Rt,St]],CellIds:[2,de,[Rt,St]],Cell:[3,ce,[Rt,St,bt],e=>Oe(mt(...e))],InvalidCell:[3,ve],Values:[0,ye],ValueIds:[0,Ie],Value:[1,Re,[Ct],e=>Oe(Vt(e[0]))],InvalidValue:[1,Le]},(([e,t,n,s],r)=>{Nt["add"+r+"Listener"]=(...r)=>Te(r[e],t[r[e+1]?1:0],e>0?w(r,0,e):void 0,n,s)})),ue(Nt)};exports.createCheckpoints=Le,exports.createCustomPersister=be,exports.createFilePersister=(t,n)=>{let s;return be(t,(()=>Ve(void 0,null,(function*(){try{return yield e.promises.readFile(n,"utf8")}catch(e){}}))),(t=>Ve(void 0,null,(function*(){try{yield e.promises.writeFile(n,t,"utf8")}catch(e){}}))),(t=>{s=e.watch(n,t)}),(()=>{null==s||s.close(),s=void 0}))},exports.createIndexes=ye,exports.createLocalPersister=(e,t)=>Ce(e,t,localStorage),exports.createMetrics=Se,exports.createQueries=Ae,exports.createRelationships=De,exports.createRemotePersister=(e,t,n,s)=>{let r,l;return be(e,(()=>Ee(void 0,null,(function*(){const e=yield fetch(t);return l=Pe(e),e.text()}))),(e=>Ee(void 0,null,(function*(){return yield fetch(n,{method:"POST",headers:{"Content-Type":"application/json"},body:e})}))),(e=>{r=setInterval((()=>Ee(void 0,null,(function*(){const n=yield fetch(t,{method:"HEAD"}),s=Pe(n);V(l)||V(s)||s==l||(l=s,e())}))),1e3*s)}),(()=>{E(r,clearInterval),r=void 0}))},exports.createSessionPersister=(e,t)=>Ce(e,t,sessionStorage),exports.createStore=Ne,exports.defaultSorter=we;
|
|
1
|
+
"use strict";var e=require("fs");const t=e=>typeof e,n=t(""),s=t(!0),r=t(0),l=t(t),o=e=>""+e,a=(e,t)=>e.includes(t),i=(e,t)=>e.every(t),d=(e,t)=>g(e)===g(t)&&i(e,((e,n)=>t[n]===e)),c=(e,t)=>i(e,((n,s)=>0==s||t(e[s-1],n)<=0)),u=(e,t)=>e.sort(t),v=(e,t)=>e.forEach(t),h=(e,t)=>e.map(t),f=e=>L(e,((e,t)=>e+t),0),g=e=>e.length,p=e=>0==g(e),L=(e,t,n)=>e.reduce(t,n),w=(e,t,n)=>e.slice(t,n),y=(e,...t)=>e.push(...t),I=e=>e.pop(),R=e=>e.shift(),S=e=>JSON.stringify(e,((e,t)=>C(t,Map)?L([...t],((e,[t,n])=>(e[t]=n,e)),{}):t)),T=JSON.parse,b=Math.max,m=Math.min,x=isFinite,C=(e,t)=>e instanceof t,V=e=>null==e,E=(e,t,n)=>V(e)?null==n?void 0:n():t(e),P=e=>e==n||e==s,k=e=>t(e)==l,J=e=>Array.isArray(e),M=()=>{},A=e=>e.size,D=(e,t)=>{var n;return null!=(n=null==e?void 0:e.has(t))&&n},O=e=>V(e)||0==A(e),F=e=>{var t;return[...null!=(t=null==e?void 0:e.values())?t:[]]},j=e=>e.clear(),Q=(e,t)=>null==e?void 0:e.forEach(t),z=(e,t)=>null==e?void 0:e.delete(t),N=e=>new Map(e),W=e=>{var t;return[...null!=(t=null==e?void 0:e.keys())?t:[]]},q=(e,t)=>null==e?void 0:e.get(t),B=(e,t)=>Q(e,((e,n)=>t(n,e))),H=(e,t,n)=>V(n)?(z(e,t),e):null==e?void 0:e.set(t,n),$=(e,t,n)=>(D(e,t)||H(e,t,n()),q(e,t)),G=(e,t,n)=>{const s={},r=null!=t?t:e=>e;return Q(e,((e,t)=>E(r(e),(e=>(null==n?void 0:n(e))?0:s[t]=e)))),s},K=(e,t)=>{const n=N(),s=null!=t?t:e=>e;return Q(e,((e,t)=>n.set(t,s(e)))),n},U=e=>K(e,K),X=(e,t,n,s,r=0)=>E((n?$:q)(e,t[r],r>g(t)-2?n:N),(l=>{if(r>g(t)-2)return(null==s?void 0:s(l))&&H(e,t[r]),l;const o=X(l,t,n,s,r+1);return O(l)&&H(e,t[r]),o})),Y=e=>{const n=t(e);return P(n)||n==r&&x(e)?n:void 0},Z=(e,t,n,s,r)=>V(r)?e.delCell(t,n,s,!0):e.setCell(t,n,s,r),_=(e,t,n)=>V(n)?e.delValue(t):e.setValue(t,n),ee=e=>new Set(J(e)||V(e)?e:[e]),te=(e,t)=>null==e?void 0:e.add(t),ne=(e,t,n)=>{const s=e.hasRow,r=N(),l=N(),o=N(),a=N(),i=N(),c=(t,n,...s)=>{const r=$(i,t,ee);return v(s,(t=>te(r,t)&&n&&e.callListener(t))),s},u=(t,...n)=>E(q(i,t),(s=>{v(p(n)?F(s):n,(t=>{e.delListener(t),z(s,t)})),O(s)&&H(i,t)})),h=(e,n)=>{H(r,e,n),D(l,e)||(H(l,e,t()),H(o,e,N()),H(a,e,N()))},f=e=>{H(r,e),H(l,e),H(o,e),H(a,e),u(e)};return[()=>e,()=>W(r),e=>B(l,e),e=>D(l,e),e=>q(r,e),e=>q(l,e),(e,t)=>H(l,e,t),h,(t,r,l,i,f)=>{h(t,r);const g=N(),p=N(),L=q(o,t),w=q(a,t),y=t=>{const l=n=>e.getCell(r,t,n),o=q(L,t),a=s(r,t)?n(i(l,t)):void 0;if(o===a||J(o)&&J(a)&&d(o,a)||H(g,t,[o,a]),!V(f)){const e=q(w,t),n=s(r,t)?f(l,t):void 0;e!=n&&H(p,t,n)}},I=e=>{l((()=>{Q(g,(([,e],t)=>H(L,t,e))),Q(p,((e,t)=>H(w,t,e)))}),g,p,L,w,e),j(g),j(p)};B(L,y),e.hasTable(r)&&v(e.getRowIds(r),(e=>{D(L,e)||y(e)})),I(!0),u(t),c(t,0,e.addRowListener(r,null,((e,t,n)=>y(n))),e.addTableListener(r,(()=>I())))},f,()=>B(i,f),c,u]},se=(e,s)=>t(e)==n?t=>t(e):null!=e?e:()=>null!=s?s:"",re=e=>{const t=new WeakMap;return n=>(t.has(n)||t.set(n,e(n)),t.get(n))},le=/^\d+$/,oe=()=>{const e=[];let t=0;return[n=>{var s;return null!=(s=n?R(e):null)?s:""+t++},t=>{le.test(t)&&g(e)<1e3&&y(e,t)}]},ae=e=>{let t;const[n,s]=oe(),r=N();return[(s,l,o,a=[],i=(()=>[]))=>{null!=t||(t=e());const d=n(1);return H(r,d,[s,l,o,a,i]),te(X(l,null!=o?o:[""],ee),d),d},(e,n,...s)=>v(((e,t=[""])=>{const n=[],s=(e,r)=>r==g(t)?y(n,e):null===t[r]?Q(e,(e=>s(e,r+1))):v([t[r],null],(t=>s(q(e,t),r+1)));return s(e,0),n})(e,n),(e=>Q(e,(e=>q(r,e)[0](t,...null!=n?n:[],...s))))),e=>E(q(r,e),(([,t,n])=>(X(t,null!=n?n:[""],void 0,(t=>(z(t,e),O(t)?1:0))),H(r,e),s(e),n))),e=>E(q(r,e),(([e,,n=[],s,r])=>{const l=(...o)=>{var a,i;const d=g(o);d==g(n)?e(t,...o,...r(o)):V(n[d])?v(null!=(i=null==(a=s[d])?void 0:a.call(s,...o))?i:[],(e=>l(...o,e))):l(...o,n[d])};l()}))]},ie=Object,de=ie.keys,ce=ie.isFrozen,ue=ie.freeze,ve=e=>C(e,ie)&&e.constructor==ie,he=(e,t)=>!V(((e,t)=>E(e,(e=>e[t])))(e,t)),fe=(e,t)=>delete e[t],ge=(e,t)=>h(ie.entries(e),(([e,n])=>t(n,e))),pe=e=>ve(e)&&p(de(e)),Le=re((e=>{let t,n,s,r=100,l=N(),o=N(),i=1;const d=N(),c=N(),[u,h,f]=ae((()=>U)),L=N(),w=N(),S=[],T=[],b=(t,n)=>{i=0,e.transaction((()=>{const[s,r]=q(L,n);Q(s,((n,s)=>Q(n,((n,r)=>Q(n,((n,l)=>Z(e,s,r,l,n[t]))))))),Q(r,((n,s)=>_(e,s,n[t])))})),i=1},m=e=>{H(L,e),H(w,e),h(c,[e])},x=(e,t)=>v(((e,t)=>e.splice(0,t))(e,null!=t?t:g(e)),m),C=()=>x(S,g(S)-r),P=()=>E(t,(()=>{y(S,t),C(),x(T),t=void 0,s=1})),k=()=>{t=I(S),s=1},J=e.addCellListener(null,null,null,((e,t,n,s,r,o)=>{if(i){P();const e=$(l,t,N),a=$(e,n,N),i=$(a,s,(()=>[o,void 0]));i[1]=r,i[0]===r&&O(H(a,s))&&O(H(e,n))&&O(H(l,t))&&k(),z()}})),M=e.addValueListener(null,((e,t,n,s)=>{if(i){P();const e=$(o,t,(()=>[s,void 0]));e[1]=n,e[0]===n&&O(H(o,t))&&k(),z()}})),A=(e="")=>(V(t)&&(t=""+n++,H(L,t,[l,o]),G(t,e),l=N(),o=N(),s=1),t),F=()=>{p(S)||(((e,...t)=>{e.unshift(...t)})(T,A()),b(0,t),t=I(S),s=1)},j=()=>{p(T)||(y(S,t),t=R(T),b(1,t),s=1)},z=()=>{s&&(h(d),s=0)},W=e=>{const t=A(e);return z(),t},G=(e,t)=>(K(e)&&q(w,e)!==t&&(H(w,e,t),h(c,[e])),U),K=e=>D(L,e),U={setSize:e=>(r=e,C(),U),addCheckpoint:W,setCheckpoint:G,getStore:()=>e,getCheckpointIds:()=>[[...S],t,[...T]],forEachCheckpoint:e=>B(w,e),hasCheckpoint:K,getCheckpoint:e=>q(w,e),goBackward:()=>(F(),z(),U),goForward:()=>(j(),z(),U),goTo:e=>{const n=a(S,e)?F:a(T,e)?j:null;for(;!V(n)&&e!=t;)n();return z(),U},addCheckpointIdsListener:e=>u(e,d),addCheckpointListener:(e,t)=>u(t,c,[e]),delListener:e=>(f(e),U),clear:()=>(x(S),x(T),V(t)||m(t),t=void 0,n=0,W(),U),destroy:()=>{e.delListener(J),e.delListener(M)},getListenerStats:()=>({})};return ue(U.clear())})),we=(e,t)=>e<t?-1:1,ye=re((e=>{const t=N(),n=N(),[s,r,l,a,i,d,v,,f,g,p]=ne(e,N,(e=>V(e)?"":J(e)?h(e,o):o(e))),[L,w,y]=ae((()=>R)),I=(t,n,s)=>{const r=i(t);Q(s,((t,s)=>n(s,(n=>Q(t,(t=>n(t,(n=>e.forEachCell(r,t,n)))))))))},R={setIndexDefinition:(e,s,r,l,o,a=we)=>{const i=V(o)?void 0:([e],[t])=>o(e,t);return f(e,s,((s,r,o,h,f,g)=>{let p=0;const L=ee(),y=ee(),I=d(e);if(Q(r,(([e,t],n)=>{const s=ee(e),r=ee(t);Q(s,(e=>z(r,e)?z(s,e):0)),Q(s,(e=>{te(L,e),E(q(I,e),(t=>{z(t,n),O(t)&&(H(I,e),p=1)}))})),Q(r,(e=>{te(L,e),D(I,e)||(H(I,e,ee()),p=1),te(q(I,e),n),V(l)||te(y,e)}))})),s(),O(f)||(g?B(I,(e=>te(y,e))):B(o,(e=>E(q(h,e),(e=>te(y,e))))),Q(y,(e=>{const t=(t,n)=>a(q(f,t),q(f,n),e),n=[...q(I,e)];c(n,t)||(H(I,e,ee(u(n,t))),te(L,e))}))),(p||g)&&!V(i)){const t=[...I];c(t,i)||(v(e,N(u(t,i))),p=1)}p&&w(t,[e]),Q(L,(t=>w(n,[e,t])))}),se(r),E(l,se)),R},delIndexDefinition:e=>(g(e),R),getStore:s,getIndexIds:r,forEachIndex:e=>l(((t,n)=>e(t,(e=>I(t,e,n))))),forEachSlice:(e,t)=>I(e,t,d(e)),hasIndex:a,hasSlice:(e,t)=>D(d(e),t),getTableId:i,getSliceIds:e=>W(d(e)),getSliceRowIds:(e,t)=>F(q(d(e),t)),addSliceIdsListener:(e,n)=>L(n,t,[e]),addSliceRowIdsListener:(e,t,s)=>L(s,n,[e,t]),delListener:e=>(y(e),R),destroy:p,getListenerStats:()=>({})};return ue(R)})),Ie=N([["avg",[(e,t)=>f(e)/t,(e,t,n)=>e+(t-e)/(n+1),(e,t,n)=>e+(e-t)/(n-1),(e,t,n,s)=>e+(t-n)/s]],["max",[e=>b(...e),(e,t)=>b(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:b(t,e)]],["min",[e=>m(...e),(e,t)=>m(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:m(t,e)]],["sum",[e=>f(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,n)=>e-n+t]]]),Re=(e,t,n,s,r,l=!1)=>{if(O(n))return;const[o,a,i,d]=r;return l||(l=V(e)),Q(s,(([n,s])=>{l||(e=V(n)?null==a?void 0:a(e,s,t++):V(s)?null==i?void 0:i(e,n,t--):null==d?void 0:d(e,s,n,t),l||(l=V(e)))})),l?o(F(n),A(n)):e},Se=re((e=>{const t=N(),[n,s,r,l,o,a,i,,d,c,u]=ne(e,M,(e=>isNaN(e)||V(e)||!0===e||!1===e||""===e?void 0:1*e)),[v,h,f]=ae((()=>g)),g={setMetricDefinition:(e,n,s,r,l,o,c)=>{var u;const v=k(s)?[s,l,o,c]:null!=(u=q(Ie,s))?u:q(Ie,"sum");return d(e,n,((n,s,r,l,o,d)=>{const c=a(e),u=A(l);d||(d=V(c)),n();let f=Re(c,u,l,s,v,d);x(f)||(f=void 0),f!=c&&(i(e,f),h(t,[e],f,c))}),se(r,1)),g},delMetricDefinition:e=>(c(e),g),getStore:n,getMetricIds:s,forEachMetric:r,hasMetric:l,getTableId:o,getMetric:a,addMetricListener:(e,n)=>v(n,t,[e]),delListener:e=>(f(e),g),destroy:u,getListenerStats:()=>({})};return ue(g)}));var Te=(e,t,n)=>new Promise(((s,r)=>{var l=e=>{try{a(n.next(e))}catch(e){r(e)}},o=e=>{try{a(n.throw(e))}catch(e){r(e)}},a=e=>e.done?s(e.value):Promise.resolve(e.value).then(l,o);a((n=n.apply(e,t)).next())}));const be=(e,t,n,s,r)=>{let l,o,a,i=0,d=!1;const c={load:(n,s)=>Te(void 0,null,(function*(){if(2!=i){i=1;const r=yield t();V(r)||""==r?e.transaction((()=>e.setTables(n).setValues(s))):e.setJson(r),i=0}return c})),startAutoLoad:(e,t)=>Te(void 0,null,(function*(){return c.stopAutoLoad(),yield c.load(e,t),d=!0,a=s(c.load),c})),stopAutoLoad:()=>(d&&(r(a),a=void 0,d=!1),c),save:()=>Te(void 0,null,(function*(){return 1!=i&&(i=2,yield n(e.getJson()),i=0),c})),startAutoSave:()=>Te(void 0,null,(function*(){return yield c.stopAutoSave().save(),l=e.addTablesListener(c.save),o=e.addValuesListener(c.save),c})),stopAutoSave:()=>(E(l,e.delListener),E(o,e.delListener),c),getStore:()=>e,destroy:()=>c.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return ue(c)};var me=(e,t,n)=>new Promise(((s,r)=>{var l=e=>{try{a(n.next(e))}catch(e){r(e)}},o=e=>{try{a(n.throw(e))}catch(e){r(e)}},a=e=>e.done?s(e.value):Promise.resolve(e.value).then(l,o);a((n=n.apply(e,t)).next())}));const xe=globalThis.window,Ce=(e,t,n)=>be(e,(()=>me(void 0,null,(function*(){return n.getItem(t)}))),(e=>me(void 0,null,(function*(){return n.setItem(t,e)}))),(e=>{const s=s=>{s.storageArea===n&&s.key===t&&e()};return xe.addEventListener("storage",s),s}),(e=>xe.removeEventListener("storage",e)));var Ve=(e,t,n)=>new Promise(((s,r)=>{var l=e=>{try{a(n.next(e))}catch(e){r(e)}},o=e=>{try{a(n.throw(e))}catch(e){r(e)}},a=e=>e.done?s(e.value):Promise.resolve(e.value).then(l,o);a((n=n.apply(e,t)).next())})),Ee=(e,t,n)=>new Promise(((s,r)=>{var l=e=>{try{a(n.next(e))}catch(e){r(e)}},o=e=>{try{a(n.throw(e))}catch(e){r(e)}},a=e=>e.done?s(e.value):Promise.resolve(e.value).then(l,o);a((n=n.apply(e,t)).next())}));const Pe=e=>e.headers.get("ETag");var ke=Object.getOwnPropertySymbols,Je=Object.prototype.hasOwnProperty,Me=Object.prototype.propertyIsEnumerable;const Ae=re((e=>{const t=e.createStore,[n,s,r,l,o,,,a,,d,c,u,h]=ne(e,(()=>!0),M),f=t(),L=t(),I=N(),R=(e,t,...n)=>v(n,(n=>te($($(I,t,N),e,ee),n))),S=e=>{E(q(I,e),(e=>{B(e,((e,t)=>Q(t,(t=>e.delListener(t))))),j(e)})),v([L,f],(t=>t.delTable(e)))},T=(e,t,n)=>R(t,e,t.addWillFinishTransactionListener(n.startTransaction),t.addDidFinishTransactionListener((()=>n.finishTransaction()))),b={setQueryDefinition:(t,n,s)=>{a(t,n),S(t);const r=[],l=[[null,[n,null,null,[],N()]]],o=[],d=[],c=[];s({select:(e,t)=>{const n=k(e)?[g(r)+"",e]:[V(t)?e:t,n=>n(e,t)];return y(r,n),{as:e=>n[0]=e}},join:(e,t,n)=>{const s=V(n)||k(t)?null:t,r=V(s)?t:n,o=[e,[e,s,k(r)?r:e=>e(r),[],N()]];return y(l,o),{as:e=>o[0]=e}},where:(e,t,n)=>y(o,k(e)?e:V(n)?n=>n(e)===t:s=>s(e,t)===n),group:(e,t,n,s,r)=>{var l;const o=[e,[e,k(t)?[t,n,s,r]:null!=(l=q(Ie,t))?l:[(e,t)=>t]]];return y(d,o),{as:e=>o[0]=e}},having:(e,t)=>y(c,k(e)?e:n=>n(e)===t)});const w=N(r);if(O(w))return b;const I=N(l);B(I,((e,[,t])=>E(q(I,t),(({3:t})=>V(e)?0:y(t,e)))));const m=N(d);let x=f;if(O(m)&&p(c))x=L;else{T(t,x,L);const e=N();B(m,((t,[n,s])=>te($(e,n,ee),[t,s])));const n=ee();B(w,(t=>D(e,t)?0:te(n,t)));const s=N(),r=(n,s,r,l)=>E(n,(([o,a,d,u])=>{B(s,((t,[n])=>{const s=$(o,t,N),a=q(s,r),i=l?void 0:n;if(a!==i){const n=ee([[a,i]]),l=A(s);H(s,r,i),Q(q(e,t),(([e,t])=>{const r=Re(u[e],l,s,n,t);u[e]=V(Y(r))?null:r}))}})),O(a)||!i(c,(e=>e((e=>u[e]))))?L.delRow(t,d):V(d)?n[2]=L.addRow(t,u):L.setRow(t,d,u)}));R(x,t,x.addRowListener(t,null,((l,o,a,i)=>{const d=[],c=[],u=N(),v=x.hasRow(t,a);let h=!v;Q(n,(e=>{const[n,s,r]=i(t,a,e);y(d,s),y(c,r),h||(h=n)})),B(e,(e=>{const[n,,s]=i(t,a,e);(h||n)&&H(u,e,[s])})),h&&r(X(s,d,void 0,(([,e])=>(z(e,a),O(e)))),u,a,1),v&&r(X(s,c,(()=>{const e={};return Q(n,(n=>e[n]=x.getCell(t,a,n))),[N(),ee(),void 0,e]}),(([,e])=>{te(e,a)})),u,a)})))}T(t,e,x);const C=(s,r,l,a)=>{const d=t=>e.getCell(r,l,t);v(a,(n=>{var r;const[l,,o,a,i]=q(I,n),c=null==o?void 0:o(d,s),[v,f]=null!=(r=q(i,s))?r:[];c!=v&&(V(f)||h(t,f),H(i,s,V(c)?null:[c,...u(t,1,e.addRowListener(l,c,(()=>C(s,l,c,a))))]))})),(s=>{const r=(t,r)=>{var l,o,a;return e.getCell(...V(r)?[n,s,t]:t===n?[n,s,r]:[null==(l=q(I,t))?void 0:l[0],null==(a=q(null==(o=q(I,t))?void 0:o[4],s))?void 0:a[0],r])};x.transaction((()=>i(o,(e=>e(r)))?B(w,((e,n)=>Z(x,t,s,e,n(r,s)))):x.delRow(t,s)))})(s)},{3:P}=q(I,null);return x.transaction((()=>u(t,1,e.addRowListener(n,null,((s,r,l)=>{e.hasRow(n,l)?C(l,n,l,P):(x.delRow(t,l),Q(I,(({4:e})=>E(q(e,l),(([,n])=>{h(t,n),H(e,l)})))))}))))),b},delQueryDefinition:e=>(S(e),d(e),b),getStore:n,getQueryIds:s,forEachQuery:r,hasQuery:l,getTableId:o,delListener:e=>(L.delListener(e),b),destroy:c,getListenerStats:()=>((e,t)=>{var n={};for(var s in e)Je.call(e,s)&&t.indexOf(s)<0&&(n[s]=e[s]);if(null!=e&&ke)for(var s of ke(e))t.indexOf(s)<0&&Me.call(e,s)&&(n[s]=e[s]);return n})(L.getListenerStats(),["tables","tableIds","transaction"])};return ge({Table:[1,1],RowIds:[0,1],SortedRowIds:[0,5],Row:[1,2],CellIds:[0,2],Cell:[1,3]},(([e,t],n)=>{v(e?["get","has","forEach"]:["get"],(e=>b[e+"Result"+n]=(...t)=>L[e+n](...t))),b["addResult"+n+"Listener"]=(...e)=>L["add"+n+"Listener"](...w(e,0,t),((n,...s)=>e[t](b,...s)))})),ue(b)})),De=re((e=>{const t=N(),n=N(),s=N(),r=N(),[l,o,a,i,d,c,,,u,v,h]=ne(e,(()=>[N(),N(),N(),N()]),(e=>V(e)?void 0:e+"")),[f,g,p]=ae((()=>I)),L=(e,t,n)=>E(c(e),(([s,,r])=>{if(!D(r,t)){const l=ee();if(d(e)!=y(e))te(l,t);else{let e=t;for(;!V(e)&&!D(l,e);)te(l,e),e=q(s,e)}if(n)return l;H(r,t,l)}return q(r,t)})),w=(e,t)=>E(c(e),(([,,e])=>H(e,t))),y=e=>q(t,e),I={setRelationshipDefinition:(e,l,o,a)=>(H(t,e,o),u(e,l,((t,l)=>{const o=ee(),a=ee(),i=ee(),[d,u]=c(e);Q(l,(([t,n],s)=>{V(t)||(te(a,t),E(q(u,t),(e=>{z(e,s),O(e)&&H(u,t)}))),V(n)||(te(a,n),D(u,n)||H(u,n,ee()),te(q(u,n),s)),te(o,s),H(d,s,n),B(q(r,e),(t=>{D(L(e,t),s)&&te(i,t)}))})),t(),Q(o,(t=>g(n,[e,t]))),Q(a,(t=>g(s,[e,t]))),Q(i,(t=>{w(e,t),g(r,[e,t])}))}),se(a)),I),delRelationshipDefinition:e=>(H(t,e),v(e),I),getStore:l,getRelationshipIds:o,forEachRelationship:t=>a((n=>t(n,(t=>e.forEachRow(d(n),t))))),hasRelationship:i,getLocalTableId:d,getRemoteTableId:y,getRemoteRowId:(e,t)=>{var n;return q(null==(n=c(e))?void 0:n[0],t)},getLocalRowIds:(e,t)=>{var n;return F(q(null==(n=c(e))?void 0:n[1],t))},getLinkedRowIds:(e,t)=>V(c(e))?[t]:F(L(e,t,!0)),addRemoteRowIdListener:(e,t,s)=>f(s,n,[e,t]),addLocalRowIdsListener:(e,t,n)=>f(n,s,[e,t]),addLinkedRowIdsListener:(e,t,n)=>(L(e,t),f(n,r,[e,t])),delListener:e=>(w(...p(e)),I),destroy:h,getListenerStats:()=>({})};return ue(I)})),Oe=e=>[e,e],Fe=()=>[N(),N()],je=(e,t,n,s=H)=>{const r=(l=e=>!he(t,e),W(e).filter(l));var l;return v(de(t),(s=>n(e,s,t[s]))),v(r,(t=>s(e,t))),e},Qe=(e,t,n)=>V(e)||!ve(e)||pe(e)||ce(e)?(null==n||n(),!1):(ge(e,((n,s)=>{t(n,s)||fe(e,s)})),!pe(e)),ze=(e,t,n)=>H(e,t,q(e,t)==-n?void 0:n),Ne=()=>{let e,t,n,s,l=0;const i=N(),c=N(),f=N(),g=N(),p=N(),L=N(),I=N(),R=N(),b=N(),m=N(),x=N(),C=N(),J=ee(),M=N(),A=N(),F=N(),X=Fe(),ne=Fe(),se=Fe(),re=Fe(),le=Fe(),ie=Fe(),de=Fe(),ce=Fe(),ve=Fe(),Le=Fe(),ye=Fe(),Ie=Fe(),Re=Fe(),Se=Fe(),[Te,be,me,xe]=ae((()=>Nt)),Ce=e=>{if(!Qe(e,((e,t)=>a(["type","default"],t))))return!1;const t=e.type;return!(!P(t)&&t!=r||(Y(e.default)!=t&&fe(e,"default"),0))},Ve=(t,n)=>(!e||D(b,n)||ct(n))&&Qe(t,((e,t)=>Ee(n,t,e)),(()=>ct(n))),Ee=(e,t,n,s)=>Qe(s?n:Me(n,e,t),((s,r)=>E(Pe(e,t,r,s),(e=>(n[r]=e,!0)),(()=>!1))),(()=>ct(e,t))),Pe=(t,n,s,r)=>e?E(q(q(b,t),s),(e=>Y(r)!=e.type?ct(t,n,s,r,e.default):r),(()=>ct(t,n,s,r))):V(Y(r))?ct(t,n,s,r):r,ke=(e,t)=>Qe(t?e:Ae(e),((t,n)=>E(Je(n,t),(t=>(e[n]=t,!0)),(()=>!1))),(()=>ut())),Je=(e,n)=>t?E(q(x,e),(t=>Y(n)!=t.type?ut(e,n,t.default):n),(()=>ut(e,n))):V(Y(n))?ut(e,n):n,Me=(e,t,n)=>(E(q(m,t),(([s,r])=>{Q(s,((t,n)=>{he(e,n)||(e[n]=t)})),Q(r,(s=>{he(e,s)||ct(t,n,s)}))})),e),Ae=e=>(t&&(Q(C,((t,n)=>{he(e,n)||(e[n]=t)})),Q(J,(t=>{he(e,t)||ut(t)}))),e),De=e=>je(b,e,((e,t,n)=>{const s=N(),r=ee();je($(b,t,N),n,((e,t,n)=>{H(e,t,n),E(n.default,(e=>H(s,t,e)),(()=>te(r,t)))})),H(m,t,[s,r])}),((e,t)=>{H(b,t),H(m,t)})),We=e=>je(x,e,((e,t,n)=>{H(x,t,n),E(n.default,(e=>H(C,t,e)),(()=>te(J,t)))}),((e,t)=>{H(x,t),H(C,t),z(J,t)})),qe=e=>pe(e)?At():Et(e),Be=e=>je(A,e,((e,t,n)=>He(t,n)),((e,t)=>et(t))),He=(e,t)=>je($(A,e,(()=>(rt(e,1),N()))),t,((t,n,s)=>$e(e,t,n,s)),((t,n)=>tt(e,t,n))),$e=(e,t,n,s,r)=>je($(t,n,(()=>(lt(e,n,1),N()))),s,((t,s,r)=>Ge(e,n,t,s,r)),((s,l)=>nt(e,t,n,s,l,r))),Ge=(e,t,n,s,r)=>{D(n,s)||ot(e,t,s,1);const l=q(n,s);r!==l&&(at(e,t,s,l,r),H(n,s,r))},Ke=(e,t,n,s,r)=>E(q(t,n),(t=>Ge(e,n,t,s,r)),(()=>$e(e,t,n,Me({[s]:r},e,n)))),Ue=e=>pe(e)?Dt():Pt(e),Xe=e=>je(F,e,((e,t,n)=>Ye(t,n)),((e,t)=>st(t))),Ye=(e,t)=>{D(F,e)||it(e,1);const n=q(F,e);t!==n&&(dt(e,n,t),H(F,e,t))},Ze=(e,t)=>{const[n]=$(M,e,oe),s=n(t);return D(q(A,e),s)?Ze(e,t):s},_e=e=>{var t;return null!=(t=q(A,e))?t:He(e,{})},et=e=>He(e,{}),tt=(e,t,n)=>{const[,s]=$(M,e,oe);s(n),$e(e,t,n,{},!0)},nt=(e,t,n,s,r,l)=>{var o;const a=q(null==(o=q(m,e))?void 0:o[0],r);if(!V(a)&&!l)return Ge(e,n,s,r,a);const i=t=>{at(e,n,t,q(s,t)),ot(e,n,t,-1),H(s,t)};V(a)?i(r):B(s,i),O(s)&&(lt(e,n,-1),O(H(t,n))&&(rt(e,-1),H(A,e),H(M,e)))},st=e=>{const t=q(C,e);if(!V(t))return Ye(e,t);dt(e,q(F,e)),it(e,-1),H(F,e)},rt=(e,t)=>ze(i,e,t),lt=(e,t,n)=>ze($(c,e,N),t,n),ot=(e,t,n,s)=>ze($($(f,e,N),t,N),n,s),at=(e,t,n,s,r)=>$($($(g,e,N),t,N),n,(()=>[s,0]))[1]=r,it=(e,t)=>ze(p,e,t),dt=(e,t,n)=>$(L,e,(()=>[t,0]))[1]=n,ct=(e,t,n,s,r)=>(y($($($(I,e,N),t,N),n,(()=>[])),s),r),ut=(e,t,n)=>(y($(R,e,(()=>[])),t),n),vt=(e,t,n)=>E(q(q(q(g,e),t),n),(([e,t])=>[!0,e,t]),(()=>[!1,...Oe(mt(e,t,n))])),ht=e=>E(q(L,e),(([e,t])=>[!0,e,t]),(()=>[!1,...Oe(Vt(e))])),ft=e=>O(I)||O(ve[e])?0:Q(e?K(I,U):I,((t,n)=>Q(t,((t,s)=>Q(t,((t,r)=>be(ve[e],[n,s,r],t))))))),gt=e=>O(R)||O(Le[e])?0:Q(e?K(R):R,((t,n)=>be(Le[e],[n],t))),pt=(e,t,n)=>{if(!O(t))return be(e,n),1},Lt=e=>{const t=O(le[e]),n=O(de[e])&&O(re[e])&&t&&O(ne[e]),s=O(ce[e])&&O(ie[e])&&O(se[e])&&O(X[e]);if(!n||!s){const r=e?[K(i),U(c),K(f,U),K(g,U)]:[i,c,f,g];if(!n){Q(r[2],((t,n)=>Q(t,((t,s)=>pt(de[e],t,[n,s])))));const n=ee();Q(r[1],((s,r)=>{pt(re[e],s,[r])&&!t&&(be(le[e],[r,null]),te(n,r))})),t||Q(r[3],((t,s)=>{if(!D(n,s)){const n=ee();Q(t,(e=>Q(e,(([t,s],r)=>s!==t?te(n,r):z(e,r))))),Q(n,(t=>be(le[e],[s,t])))}})),pt(ne[e],r[0])}if(!s){let t;Q(r[3],((n,s)=>{let r;Q(n,((n,l)=>{let o;Q(n,(([n,a],i)=>{a!==n&&(be(ce[e],[s,l,i],a,n,vt),t=r=o=1)})),o&&be(ie[e],[s,l],vt)})),r&&be(se[e],[s],vt)})),t&&be(X[e],void 0,vt)}}},wt=e=>{const t=O(Ie[e]),n=O(Re[e])&&O(ye[e]);if(!t||!n){const s=e?[K(p),K(L)]:[p,L];if(t||pt(Ie[e],s[0]),!n){let t;Q(s[1],(([n,s],r)=>{s!==n&&(be(Re[e],[r],s,n,ht),t=1)})),t&&be(ye[e],void 0,ht)}}},yt=(e,...t)=>(jt((()=>e(...h(t,o)))),Nt),It=()=>G(A,(e=>G(e,G))),Rt=()=>W(A),St=e=>W(q(A,o(e))),Tt=(e,t,n,s=0,r)=>{return h(w(u((l=q(A,o(e)),a=(e,n)=>[V(t)?n:q(e,o(t)),n],h([...null!=(i=null==l?void 0:l.entries())?i:[]],(([e,t])=>a(t,e)))),(([e],[t])=>we(e,t)*(n?-1:1))),s,V(r)?r:s+r),(([,e])=>e));var l,a,i},bt=(e,t)=>W(q(q(A,o(e)),o(t))),mt=(e,t,n)=>q(q(q(A,o(e)),o(t)),o(n)),xt=()=>G(F),Ct=()=>W(F),Vt=e=>q(F,o(e)),Et=e=>yt((()=>(e=>Qe(e,Ve,ct))(e)?Be(e):0)),Pt=e=>yt((()=>ke(e)?Xe(e):0)),kt=e=>{try{qe(T(e))}catch(e){}return Nt},Jt=t=>yt((()=>{if((e=Qe(t,(e=>Qe(e,Ce))))&&(De(t),!O(A))){const e=It();At(),Et(e)}})),Mt=e=>yt((()=>{if(t=(e=>Qe(e,Ce))(e)){const n=xt();Ft(),Dt(),t=!0,We(e),Pt(n)}})),At=()=>yt((()=>Be({}))),Dt=()=>yt((()=>Xe({}))),Ot=()=>yt((()=>{De({}),e=!1})),Ft=()=>yt((()=>{We({}),t=!1})),jt=(e,t)=>{if(-1==l)return;Qt();const n=e();return zt(t),n},Qt=()=>(l++,Nt),zt=e=>(l>0&&(l--,0==l&&(n=!O(g),s=!O(L),l=1,ft(1),n&&Lt(1),gt(1),s&&wt(1),l=-1,(null==e?void 0:e(G(g,(e=>G(e,(e=>G(e,(e=>[...e]),(([e,t])=>e===t))),pe)),pe),G(I,(e=>G(e,G))),G(L,(e=>[...e]),(([e,t])=>e===t)),G(R)))&&(l=1,Q(g,((e,t)=>Q(e,((e,n)=>Q(e,(([e],s)=>Z(Nt,t,n,s,e))))))),Q(L,(([e],t)=>_(Nt,t,e))),l=-1,n=s=!1),be(Se[0],void 0,n,s),ft(0),n&&Lt(0),gt(0),s&&wt(0),be(Se[1],void 0,n,s),l=0,v([i,c,f,g,I,p,L,R],j))),Nt),Nt={getTables:It,getTableIds:Rt,getTable:e=>G(q(A,o(e)),G),getRowIds:St,getSortedRowIds:Tt,getRow:(e,t)=>G(q(q(A,o(e)),o(t))),getCellIds:bt,getCell:mt,getValues:xt,getValueIds:Ct,getValue:Vt,hasTables:()=>!O(A),hasTable:e=>D(A,o(e)),hasRow:(e,t)=>D(q(A,o(e)),o(t)),hasCell:(e,t,n)=>D(q(q(A,o(e)),o(t)),o(n)),hasValues:()=>!O(F),hasValue:e=>D(F,o(e)),getTablesJson:()=>S(A),getValuesJson:()=>S(F),getJson:()=>S([A,F]),getTablesSchemaJson:()=>S(b),getValuesSchemaJson:()=>S(x),getSchemaJson:()=>S([b,x]),setTables:Et,setTable:(e,t)=>yt((e=>Ve(t,e)?He(e,t):0),e),setRow:(e,t,n)=>yt(((e,t)=>Ee(e,t,n)?$e(e,_e(e),t,n):0),e,t),addRow:(e,t,n=!0)=>jt((()=>{let s;return Ee(e,s,t)&&(e=o(e),$e(e,_e(e),s=Ze(e,n?1:0),t)),s})),setPartialRow:(e,t,n)=>yt(((e,t)=>{if(Ee(e,t,n,1)){const s=_e(e);ge(n,((n,r)=>Ke(e,s,t,r,n)))}}),e,t),setCell:(e,t,n,s)=>yt(((e,t,n)=>E(Pe(e,t,n,k(s)?s(mt(e,t,n)):s),(s=>Ke(e,_e(e),t,n,s)))),e,t,n),setValues:Pt,setPartialValues:e=>yt((()=>ke(e,1)?ge(e,((e,t)=>Ye(t,e))):0)),setValue:(e,t)=>yt((e=>E(Je(e,k(t)?t(Vt(e)):t),(t=>Ye(e,t)))),e),setTablesJson:kt,setValuesJson:e=>{try{Ue(T(e))}catch(e){}return Nt},setJson:e=>{try{const[t,n]=T(e);qe(t),Ue(n)}catch(t){kt(e)}return Nt},setTablesSchema:Jt,setValuesSchema:Mt,setSchema:(e,t)=>yt((()=>{Jt(e),Mt(t)})),delTables:At,delTable:e=>yt((e=>D(A,e)?et(e):0),e),delRow:(e,t)=>yt(((e,t)=>E(q(A,e),(n=>D(n,t)?tt(e,n,t):0))),e,t),delCell:(e,t,n,s)=>yt(((e,t,n)=>E(q(A,e),(r=>E(q(r,t),(l=>D(l,n)?nt(e,r,t,l,n,s):0))))),e,t,n),delValues:Dt,delValue:e=>yt((e=>D(F,e)?st(e):0),e),delTablesSchema:Ot,delValuesSchema:Ft,delSchema:()=>yt((()=>{Ot(),Ft()})),transaction:jt,startTransaction:Qt,finishTransaction:zt,forEachTable:e=>Q(A,((t,n)=>e(n,(e=>Q(t,((t,n)=>e(n,(e=>B(t,e))))))))),forEachRow:(e,t)=>Q(q(A,o(e)),((e,n)=>t(n,(t=>B(e,t))))),forEachCell:(e,t,n)=>B(q(q(A,o(e)),o(t)),n),forEachValue:e=>B(F,e),addSortedRowIdsListener:(e,t,n,s,r,l,o)=>{let a=Tt(e,t,n,s,r);return Te((()=>{const o=Tt(e,t,n,s,r);d(o,a)||(a=o,l(Nt,e,t,n,s,r,a))}),le[o?1:0],[e,t],[Rt])},addWillFinishTransactionListener:e=>Te(e,Se[0]),addDidFinishTransactionListener:e=>Te(e,Se[1]),callListener:e=>(xe(e),Nt),delListener:e=>(me(e),Nt),getListenerStats:()=>({}),createStore:Ne};return ge({Tables:[0,X],TableIds:[0,ne],Table:[1,se,[Rt]],RowIds:[1,re,[Rt]],Row:[2,ie,[Rt,St]],CellIds:[2,de,[Rt,St]],Cell:[3,ce,[Rt,St,bt],e=>Oe(mt(...e))],InvalidCell:[3,ve],Values:[0,ye],ValueIds:[0,Ie],Value:[1,Re,[Ct],e=>Oe(Vt(e[0]))],InvalidValue:[1,Le]},(([e,t,n,s],r)=>{Nt["add"+r+"Listener"]=(...r)=>Te(r[e],t[r[e+1]?1:0],e>0?w(r,0,e):void 0,n,s)})),ue(Nt)};exports.createCheckpoints=Le,exports.createCustomPersister=be,exports.createFilePersister=(t,n)=>be(t,(()=>Ve(void 0,null,(function*(){try{return yield e.promises.readFile(n,"utf8")}catch(e){}}))),(t=>Ve(void 0,null,(function*(){try{yield e.promises.writeFile(n,t,"utf8")}catch(e){}}))),(t=>e.watch(n,t)),(e=>null==e?void 0:e.close())),exports.createIndexes=ye,exports.createLocalPersister=(e,t)=>Ce(e,t,localStorage),exports.createMetrics=Se,exports.createQueries=Ae,exports.createRelationships=De,exports.createRemotePersister=(e,t,n,s)=>{let r;return be(e,(()=>Ee(void 0,null,(function*(){const e=yield fetch(t);return r=Pe(e),e.text()}))),(e=>Ee(void 0,null,(function*(){return yield fetch(n,{method:"POST",headers:{"Content-Type":"application/json"},body:e})}))),(e=>setInterval((()=>Ee(void 0,null,(function*(){const n=yield fetch(t,{method:"HEAD"}),s=Pe(n);V(r)||V(s)||s==r||(r=s,e())}))),1e3*s)),(e=>clearInterval(e)))},exports.createSessionPersister=(e,t)=>Ce(e,t,sessionStorage),exports.createStore=Ne,exports.defaultSorter=we;
|
|
Binary file
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
const EMPTY_STRING = '';
|
|
2
|
+
|
|
3
|
+
const isUndefined = (thing) => thing == void 0;
|
|
4
|
+
const ifNotUndefined = (value, then, otherwise) =>
|
|
5
|
+
isUndefined(value) ? otherwise?.() : then(value);
|
|
6
|
+
|
|
7
|
+
const object = Object;
|
|
8
|
+
const objFreeze = object.freeze;
|
|
9
|
+
|
|
10
|
+
const createCustomPersister = (
|
|
11
|
+
store,
|
|
12
|
+
getPersisted,
|
|
13
|
+
setPersisted,
|
|
14
|
+
startListeningToPersisted,
|
|
15
|
+
stopListeningToPersisted,
|
|
16
|
+
) => {
|
|
17
|
+
let tablesListenerId;
|
|
18
|
+
let valuesListenerId;
|
|
19
|
+
let loadSave = 0;
|
|
20
|
+
let loads = 0;
|
|
21
|
+
let saves = 0;
|
|
22
|
+
let listening = false;
|
|
23
|
+
let listeningHandle;
|
|
24
|
+
const persister = {
|
|
25
|
+
load: async (initialTables, initialValues) => {
|
|
26
|
+
/* istanbul ignore else */
|
|
27
|
+
if (loadSave != 2) {
|
|
28
|
+
loadSave = 1;
|
|
29
|
+
{
|
|
30
|
+
loads++;
|
|
31
|
+
}
|
|
32
|
+
const body = await getPersisted();
|
|
33
|
+
if (!isUndefined(body) && body != EMPTY_STRING) {
|
|
34
|
+
store.setJson(body);
|
|
35
|
+
} else {
|
|
36
|
+
store.transaction(() =>
|
|
37
|
+
store.setTables(initialTables).setValues(initialValues),
|
|
38
|
+
);
|
|
39
|
+
}
|
|
40
|
+
loadSave = 0;
|
|
41
|
+
}
|
|
42
|
+
return persister;
|
|
43
|
+
},
|
|
44
|
+
startAutoLoad: async (initialTables, initialValues) => {
|
|
45
|
+
persister.stopAutoLoad();
|
|
46
|
+
await persister.load(initialTables, initialValues);
|
|
47
|
+
listening = true;
|
|
48
|
+
listeningHandle = startListeningToPersisted(persister.load);
|
|
49
|
+
return persister;
|
|
50
|
+
},
|
|
51
|
+
stopAutoLoad: () => {
|
|
52
|
+
if (listening) {
|
|
53
|
+
stopListeningToPersisted(listeningHandle);
|
|
54
|
+
listeningHandle = void 0;
|
|
55
|
+
listening = false;
|
|
56
|
+
}
|
|
57
|
+
return persister;
|
|
58
|
+
},
|
|
59
|
+
save: async () => {
|
|
60
|
+
/* istanbul ignore else */
|
|
61
|
+
if (loadSave != 1) {
|
|
62
|
+
loadSave = 2;
|
|
63
|
+
{
|
|
64
|
+
saves++;
|
|
65
|
+
}
|
|
66
|
+
await setPersisted(store.getJson());
|
|
67
|
+
loadSave = 0;
|
|
68
|
+
}
|
|
69
|
+
return persister;
|
|
70
|
+
},
|
|
71
|
+
startAutoSave: async () => {
|
|
72
|
+
await persister.stopAutoSave().save();
|
|
73
|
+
tablesListenerId = store.addTablesListener(persister.save);
|
|
74
|
+
valuesListenerId = store.addValuesListener(persister.save);
|
|
75
|
+
return persister;
|
|
76
|
+
},
|
|
77
|
+
stopAutoSave: () => {
|
|
78
|
+
ifNotUndefined(tablesListenerId, store.delListener);
|
|
79
|
+
ifNotUndefined(valuesListenerId, store.delListener);
|
|
80
|
+
return persister;
|
|
81
|
+
},
|
|
82
|
+
getStore: () => store,
|
|
83
|
+
destroy: () => persister.stopAutoLoad().stopAutoSave(),
|
|
84
|
+
getStats: () => ({loads, saves}),
|
|
85
|
+
};
|
|
86
|
+
return objFreeze(persister);
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
const createYjsPersister = (store, yDoc) => {
|
|
90
|
+
const map = yDoc.getMap('tinybase/store');
|
|
91
|
+
const getPersisted = async () => map.get('json');
|
|
92
|
+
const setPersisted = async (json) => {
|
|
93
|
+
map.set('json', json);
|
|
94
|
+
};
|
|
95
|
+
const startListeningToPersisted = (didChange) => {
|
|
96
|
+
const observer = () => didChange();
|
|
97
|
+
map.observe(observer);
|
|
98
|
+
return observer;
|
|
99
|
+
};
|
|
100
|
+
const stopListeningToPersisted = (observer) => map.unobserve(observer);
|
|
101
|
+
return createCustomPersister(
|
|
102
|
+
store,
|
|
103
|
+
getPersisted,
|
|
104
|
+
setPersisted,
|
|
105
|
+
startListeningToPersisted,
|
|
106
|
+
stopListeningToPersisted,
|
|
107
|
+
);
|
|
108
|
+
};
|
|
109
|
+
|
|
110
|
+
export {createYjsPersister};
|
package/lib/debug/persisters.js
CHANGED
|
@@ -22,6 +22,8 @@ const createCustomPersister = (
|
|
|
22
22
|
let loadSave = 0;
|
|
23
23
|
let loads = 0;
|
|
24
24
|
let saves = 0;
|
|
25
|
+
let listening = false;
|
|
26
|
+
let listeningHandle;
|
|
25
27
|
const persister = {
|
|
26
28
|
load: async (initialTables, initialValues) => {
|
|
27
29
|
/* istanbul ignore else */
|
|
@@ -45,11 +47,16 @@ const createCustomPersister = (
|
|
|
45
47
|
startAutoLoad: async (initialTables, initialValues) => {
|
|
46
48
|
persister.stopAutoLoad();
|
|
47
49
|
await persister.load(initialTables, initialValues);
|
|
48
|
-
|
|
50
|
+
listening = true;
|
|
51
|
+
listeningHandle = startListeningToPersisted(persister.load);
|
|
49
52
|
return persister;
|
|
50
53
|
},
|
|
51
54
|
stopAutoLoad: () => {
|
|
52
|
-
|
|
55
|
+
if (listening) {
|
|
56
|
+
stopListeningToPersisted(listeningHandle);
|
|
57
|
+
listeningHandle = void 0;
|
|
58
|
+
listening = false;
|
|
59
|
+
}
|
|
53
60
|
return persister;
|
|
54
61
|
},
|
|
55
62
|
save: async () => {
|
|
@@ -85,21 +92,19 @@ const createCustomPersister = (
|
|
|
85
92
|
const STORAGE = 'storage';
|
|
86
93
|
const WINDOW = globalThis.window;
|
|
87
94
|
const getStoragePersister = (store, storageName, storage) => {
|
|
88
|
-
let listener;
|
|
89
95
|
const getPersisted = async () => storage.getItem(storageName);
|
|
90
96
|
const setPersisted = async (json) => storage.setItem(storageName, json);
|
|
91
97
|
const startListeningToPersisted = (didChange) => {
|
|
92
|
-
listener = (event) => {
|
|
98
|
+
const listener = (event) => {
|
|
93
99
|
if (event.storageArea === storage && event.key === storageName) {
|
|
94
100
|
didChange();
|
|
95
101
|
}
|
|
96
102
|
};
|
|
97
103
|
WINDOW.addEventListener(STORAGE, listener);
|
|
104
|
+
return listener;
|
|
98
105
|
};
|
|
99
|
-
const stopListeningToPersisted = () =>
|
|
106
|
+
const stopListeningToPersisted = (listener) =>
|
|
100
107
|
WINDOW.removeEventListener(STORAGE, listener);
|
|
101
|
-
listener = void 0;
|
|
102
|
-
};
|
|
103
108
|
return createCustomPersister(
|
|
104
109
|
store,
|
|
105
110
|
getPersisted,
|
|
@@ -114,7 +119,6 @@ const createSessionPersister = (store, storageName) =>
|
|
|
114
119
|
getStoragePersister(store, storageName, sessionStorage);
|
|
115
120
|
|
|
116
121
|
const createFilePersister = (store, filePath) => {
|
|
117
|
-
let watcher;
|
|
118
122
|
const getPersisted = async () => {
|
|
119
123
|
try {
|
|
120
124
|
return await promises.readFile(filePath, UTF8);
|
|
@@ -125,13 +129,8 @@ const createFilePersister = (store, filePath) => {
|
|
|
125
129
|
await promises.writeFile(filePath, json, UTF8);
|
|
126
130
|
} catch {}
|
|
127
131
|
};
|
|
128
|
-
const startListeningToPersisted = (didChange) =>
|
|
129
|
-
|
|
130
|
-
};
|
|
131
|
-
const stopListeningToPersisted = () => {
|
|
132
|
-
watcher?.close();
|
|
133
|
-
watcher = void 0;
|
|
134
|
-
};
|
|
132
|
+
const startListeningToPersisted = (didChange) => watch(filePath, didChange);
|
|
133
|
+
const stopListeningToPersisted = (watcher) => watcher?.close();
|
|
135
134
|
return createCustomPersister(
|
|
136
135
|
store,
|
|
137
136
|
getPersisted,
|
|
@@ -148,7 +147,6 @@ const createRemotePersister = (
|
|
|
148
147
|
saveUrl,
|
|
149
148
|
autoLoadIntervalSeconds,
|
|
150
149
|
) => {
|
|
151
|
-
let interval;
|
|
152
150
|
let lastEtag;
|
|
153
151
|
const getPersisted = async () => {
|
|
154
152
|
const response = await fetch(loadUrl);
|
|
@@ -161,8 +159,8 @@ const createRemotePersister = (
|
|
|
161
159
|
headers: {'Content-Type': 'application/json'},
|
|
162
160
|
body: json,
|
|
163
161
|
});
|
|
164
|
-
const startListeningToPersisted = (didChange) =>
|
|
165
|
-
|
|
162
|
+
const startListeningToPersisted = (didChange) =>
|
|
163
|
+
setInterval(async () => {
|
|
166
164
|
const response = await fetch(loadUrl, {method: 'HEAD'});
|
|
167
165
|
const currentEtag = getETag(response);
|
|
168
166
|
if (
|
|
@@ -174,11 +172,7 @@ const createRemotePersister = (
|
|
|
174
172
|
didChange();
|
|
175
173
|
}
|
|
176
174
|
}, autoLoadIntervalSeconds * 1e3);
|
|
177
|
-
|
|
178
|
-
const stopListeningToPersisted = () => {
|
|
179
|
-
ifNotUndefined(interval, clearInterval);
|
|
180
|
-
interval = void 0;
|
|
181
|
-
};
|
|
175
|
+
const stopListeningToPersisted = (interval) => clearInterval(interval);
|
|
182
176
|
return createCustomPersister(
|
|
183
177
|
store,
|
|
184
178
|
getPersisted,
|
package/lib/debug/tinybase.js
CHANGED
|
@@ -1024,6 +1024,8 @@ const createCustomPersister = (
|
|
|
1024
1024
|
let loadSave = 0;
|
|
1025
1025
|
let loads = 0;
|
|
1026
1026
|
let saves = 0;
|
|
1027
|
+
let listening = false;
|
|
1028
|
+
let listeningHandle;
|
|
1027
1029
|
const persister = {
|
|
1028
1030
|
load: async (initialTables, initialValues) => {
|
|
1029
1031
|
/* istanbul ignore else */
|
|
@@ -1047,11 +1049,16 @@ const createCustomPersister = (
|
|
|
1047
1049
|
startAutoLoad: async (initialTables, initialValues) => {
|
|
1048
1050
|
persister.stopAutoLoad();
|
|
1049
1051
|
await persister.load(initialTables, initialValues);
|
|
1050
|
-
|
|
1052
|
+
listening = true;
|
|
1053
|
+
listeningHandle = startListeningToPersisted(persister.load);
|
|
1051
1054
|
return persister;
|
|
1052
1055
|
},
|
|
1053
1056
|
stopAutoLoad: () => {
|
|
1054
|
-
|
|
1057
|
+
if (listening) {
|
|
1058
|
+
stopListeningToPersisted(listeningHandle);
|
|
1059
|
+
listeningHandle = void 0;
|
|
1060
|
+
listening = false;
|
|
1061
|
+
}
|
|
1055
1062
|
return persister;
|
|
1056
1063
|
},
|
|
1057
1064
|
save: async () => {
|
|
@@ -1087,21 +1094,19 @@ const createCustomPersister = (
|
|
|
1087
1094
|
const STORAGE = 'storage';
|
|
1088
1095
|
const WINDOW = globalThis.window;
|
|
1089
1096
|
const getStoragePersister = (store, storageName, storage) => {
|
|
1090
|
-
let listener;
|
|
1091
1097
|
const getPersisted = async () => storage.getItem(storageName);
|
|
1092
1098
|
const setPersisted = async (json) => storage.setItem(storageName, json);
|
|
1093
1099
|
const startListeningToPersisted = (didChange) => {
|
|
1094
|
-
listener = (event) => {
|
|
1100
|
+
const listener = (event) => {
|
|
1095
1101
|
if (event.storageArea === storage && event.key === storageName) {
|
|
1096
1102
|
didChange();
|
|
1097
1103
|
}
|
|
1098
1104
|
};
|
|
1099
1105
|
WINDOW.addEventListener(STORAGE, listener);
|
|
1106
|
+
return listener;
|
|
1100
1107
|
};
|
|
1101
|
-
const stopListeningToPersisted = () =>
|
|
1108
|
+
const stopListeningToPersisted = (listener) =>
|
|
1102
1109
|
WINDOW.removeEventListener(STORAGE, listener);
|
|
1103
|
-
listener = void 0;
|
|
1104
|
-
};
|
|
1105
1110
|
return createCustomPersister(
|
|
1106
1111
|
store,
|
|
1107
1112
|
getPersisted,
|
|
@@ -1116,7 +1121,6 @@ const createSessionPersister = (store, storageName) =>
|
|
|
1116
1121
|
getStoragePersister(store, storageName, sessionStorage);
|
|
1117
1122
|
|
|
1118
1123
|
const createFilePersister = (store, filePath) => {
|
|
1119
|
-
let watcher;
|
|
1120
1124
|
const getPersisted = async () => {
|
|
1121
1125
|
try {
|
|
1122
1126
|
return await promises.readFile(filePath, UTF8);
|
|
@@ -1127,13 +1131,8 @@ const createFilePersister = (store, filePath) => {
|
|
|
1127
1131
|
await promises.writeFile(filePath, json, UTF8);
|
|
1128
1132
|
} catch {}
|
|
1129
1133
|
};
|
|
1130
|
-
const startListeningToPersisted = (didChange) =>
|
|
1131
|
-
|
|
1132
|
-
};
|
|
1133
|
-
const stopListeningToPersisted = () => {
|
|
1134
|
-
watcher?.close();
|
|
1135
|
-
watcher = void 0;
|
|
1136
|
-
};
|
|
1134
|
+
const startListeningToPersisted = (didChange) => watch(filePath, didChange);
|
|
1135
|
+
const stopListeningToPersisted = (watcher) => watcher?.close();
|
|
1137
1136
|
return createCustomPersister(
|
|
1138
1137
|
store,
|
|
1139
1138
|
getPersisted,
|
|
@@ -1150,7 +1149,6 @@ const createRemotePersister = (
|
|
|
1150
1149
|
saveUrl,
|
|
1151
1150
|
autoLoadIntervalSeconds,
|
|
1152
1151
|
) => {
|
|
1153
|
-
let interval;
|
|
1154
1152
|
let lastEtag;
|
|
1155
1153
|
const getPersisted = async () => {
|
|
1156
1154
|
const response = await fetch(loadUrl);
|
|
@@ -1163,8 +1161,8 @@ const createRemotePersister = (
|
|
|
1163
1161
|
headers: {'Content-Type': 'application/json'},
|
|
1164
1162
|
body: json,
|
|
1165
1163
|
});
|
|
1166
|
-
const startListeningToPersisted = (didChange) =>
|
|
1167
|
-
|
|
1164
|
+
const startListeningToPersisted = (didChange) =>
|
|
1165
|
+
setInterval(async () => {
|
|
1168
1166
|
const response = await fetch(loadUrl, {method: 'HEAD'});
|
|
1169
1167
|
const currentEtag = getETag(response);
|
|
1170
1168
|
if (
|
|
@@ -1176,11 +1174,7 @@ const createRemotePersister = (
|
|
|
1176
1174
|
didChange();
|
|
1177
1175
|
}
|
|
1178
1176
|
}, autoLoadIntervalSeconds * 1e3);
|
|
1179
|
-
|
|
1180
|
-
const stopListeningToPersisted = () => {
|
|
1181
|
-
ifNotUndefined(interval, clearInterval);
|
|
1182
|
-
interval = void 0;
|
|
1183
|
-
};
|
|
1177
|
+
const stopListeningToPersisted = (interval) => clearInterval(interval);
|
|
1184
1178
|
return createCustomPersister(
|
|
1185
1179
|
store,
|
|
1186
1180
|
getPersisted,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=e=>null==e,t=(t,o,n)=>e(t)?null==n?void 0:n():o(t),o=Object.freeze;var n=(e,t,o)=>new Promise(((n,r)=>{var s=e=>{try{l(o.next(e))}catch(e){r(e)}},a=e=>{try{l(o.throw(e))}catch(e){r(e)}},l=e=>e.done?n(e.value):Promise.resolve(e.value).then(s,a);l((o=o.apply(e,t)).next())})),r=(e,t,o)=>new Promise(((n,r)=>{var s=e=>{try{l(o.next(e))}catch(e){r(e)}},a=e=>{try{l(o.throw(e))}catch(e){r(e)}},l=e=>e.done?n(e.value):Promise.resolve(e.value).then(s,a);l((o=o.apply(e,t)).next())}));const s=(s,a)=>{const l=a.getMap("tinybase/store");return((s,a,u,i,v)=>{let d,c,p,y=0,f=!1;const h={load:(t,o)=>n(void 0,null,(function*(){if(2!=y){y=1;const n=yield r(void 0,null,(function*(){return l.get("json")}));e(n)||""==n?s.transaction((()=>s.setTables(t).setValues(o))):s.setJson(n),y=0}return h})),startAutoLoad:(e,t)=>n(void 0,null,(function*(){return h.stopAutoLoad(),yield h.load(e,t),f=!0,p=(e=>{const t=()=>e();return l.observe(t),t})(h.load),h})),stopAutoLoad:()=>{return f&&(e=p,l.unobserve(e),p=void 0,f=!1),h;var e},save:()=>n(void 0,null,(function*(){return 1!=y&&(y=2,yield(e=s.getJson(),r(void 0,null,(function*(){l.set("json",e)}))),y=0),h;var e})),startAutoSave:()=>n(void 0,null,(function*(){return yield h.stopAutoSave().save(),d=s.addTablesListener(h.save),c=s.addValuesListener(h.save),h})),stopAutoSave:()=>(t(d,s.delListener),t(c,s.delListener),h),getStore:()=>s,destroy:()=>h.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return o(h)})(s)};export{s as createYjsPersister};
|
|
Binary file
|