tinybase 4.3.0-beta.0 → 4.3.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/persisters/persister-cr-sqlite-wasm.cjs +1 -1
- package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-expo-sqlite.cjs +1 -1
- package/lib/cjs/persisters/persister-expo-sqlite.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-partykit-client.cjs +1 -0
- package/lib/cjs/persisters/persister-partykit-client.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-partykit-server.cjs +1 -0
- package/lib/cjs/persisters/persister-partykit-server.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-sqlite-wasm.cjs +1 -1
- package/lib/cjs/persisters/persister-sqlite-wasm.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-sqlite3.cjs +1 -1
- package/lib/cjs/persisters/persister-sqlite3.cjs.gz +0 -0
- package/lib/cjs/store.cjs +1 -1
- package/lib/cjs/store.cjs.gz +0 -0
- package/lib/cjs/tinybase.cjs +1 -1
- package/lib/cjs/tinybase.cjs.gz +0 -0
- package/lib/cjs/tools.cjs +1 -1
- package/lib/cjs/tools.cjs.gz +0 -0
- package/lib/cjs/ui-react-dom-debug.cjs +1 -1
- package/lib/cjs/ui-react-dom-debug.cjs.gz +0 -0
- package/lib/cjs/ui-react-dom.cjs +1 -1
- package/lib/cjs/ui-react-dom.cjs.gz +0 -0
- package/lib/cjs/ui-react.cjs +1 -1
- package/lib/cjs/ui-react.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-partykit-client.cjs +1 -0
- package/lib/cjs-es6/persisters/persister-partykit-client.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-partykit-server.cjs +1 -0
- package/lib/cjs-es6/persisters/persister-partykit-server.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-sqlite3.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-sqlite3.cjs.gz +0 -0
- package/lib/cjs-es6/store.cjs +1 -1
- package/lib/cjs-es6/store.cjs.gz +0 -0
- package/lib/cjs-es6/tinybase.cjs +1 -1
- package/lib/cjs-es6/tinybase.cjs.gz +0 -0
- package/lib/cjs-es6/tools.cjs +1 -1
- package/lib/cjs-es6/tools.cjs.gz +0 -0
- package/lib/cjs-es6/ui-react-dom-debug.cjs +1 -1
- package/lib/cjs-es6/ui-react-dom-debug.cjs.gz +0 -0
- package/lib/cjs-es6/ui-react-dom.cjs +1 -1
- package/lib/cjs-es6/ui-react-dom.cjs.gz +0 -0
- package/lib/cjs-es6/ui-react.cjs +1 -1
- package/lib/cjs-es6/ui-react.cjs.gz +0 -0
- package/lib/debug/persisters/persister-cr-sqlite-wasm.js +10 -7
- package/lib/debug/persisters/persister-expo-sqlite.js +10 -7
- package/lib/debug/persisters/persister-partykit-client.js +249 -0
- package/lib/debug/persisters/persister-partykit-server.js +161 -0
- package/lib/debug/persisters/persister-sqlite-wasm.js +10 -7
- package/lib/debug/persisters/persister-sqlite3.js +10 -7
- package/lib/debug/queries.js +2 -2
- package/lib/debug/store.js +13 -13
- package/lib/debug/tinybase.js +14 -14
- package/lib/debug/tools.js +3 -4
- package/lib/debug/ui-react-dom.js +35 -24
- package/lib/debug/ui-react.js +38 -1
- package/lib/es6/persisters/persister-cr-sqlite-wasm.js +1 -1
- package/lib/es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
- package/lib/es6/persisters/persister-expo-sqlite.js +1 -1
- package/lib/es6/persisters/persister-expo-sqlite.js.gz +0 -0
- package/lib/es6/persisters/persister-partykit-client.js +1 -0
- package/lib/es6/persisters/persister-partykit-client.js.gz +0 -0
- package/lib/es6/persisters/persister-partykit-server.js +1 -0
- package/lib/es6/persisters/persister-partykit-server.js.gz +0 -0
- package/lib/es6/persisters/persister-sqlite-wasm.js +1 -1
- package/lib/es6/persisters/persister-sqlite-wasm.js.gz +0 -0
- package/lib/es6/persisters/persister-sqlite3.js +1 -1
- package/lib/es6/persisters/persister-sqlite3.js.gz +0 -0
- package/lib/es6/store.js +1 -1
- package/lib/es6/store.js.gz +0 -0
- package/lib/es6/tinybase.js +1 -1
- package/lib/es6/tinybase.js.gz +0 -0
- package/lib/es6/tools.js +1 -1
- package/lib/es6/tools.js.gz +0 -0
- package/lib/es6/ui-react-dom-debug.js +1 -1
- package/lib/es6/ui-react-dom-debug.js.gz +0 -0
- package/lib/es6/ui-react-dom.js +1 -1
- package/lib/es6/ui-react-dom.js.gz +0 -0
- package/lib/es6/ui-react.js +1 -1
- package/lib/es6/ui-react.js.gz +0 -0
- package/lib/persisters/persister-cr-sqlite-wasm.js +1 -1
- package/lib/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
- package/lib/persisters/persister-expo-sqlite.js +1 -1
- package/lib/persisters/persister-expo-sqlite.js.gz +0 -0
- package/lib/persisters/persister-partykit-client.js +1 -0
- package/lib/persisters/persister-partykit-client.js.gz +0 -0
- package/lib/persisters/persister-partykit-server.js +1 -0
- package/lib/persisters/persister-partykit-server.js.gz +0 -0
- package/lib/persisters/persister-sqlite-wasm.js +1 -1
- package/lib/persisters/persister-sqlite-wasm.js.gz +0 -0
- package/lib/persisters/persister-sqlite3.js +1 -1
- package/lib/persisters/persister-sqlite3.js.gz +0 -0
- package/lib/store.js +1 -1
- package/lib/store.js.gz +0 -0
- package/lib/tinybase.js +1 -1
- package/lib/tinybase.js.gz +0 -0
- package/lib/tools.js +1 -1
- package/lib/tools.js.gz +0 -0
- package/lib/types/persisters/persister-cr-sqlite-wasm.d.ts +2 -0
- package/lib/types/persisters/persister-expo-sqlite.d.ts +2 -0
- package/lib/types/persisters/persister-partykit-client.d.ts +88 -0
- package/lib/types/persisters/persister-partykit-server.d.ts +114 -0
- package/lib/types/persisters/persister-sqlite-wasm.d.ts +2 -0
- package/lib/types/persisters/persister-sqlite3.d.ts +2 -0
- package/lib/types/store.d.ts +6 -0
- package/lib/types/ui-react.d.ts +187 -4
- package/lib/types/with-schemas/persisters/persister-cr-sqlite-wasm.d.ts +2 -0
- package/lib/types/with-schemas/persisters/persister-expo-sqlite.d.ts +2 -0
- package/lib/types/with-schemas/persisters/persister-partykit-client.d.ts +99 -0
- package/lib/types/with-schemas/persisters/persister-partykit-server.d.ts +114 -0
- package/lib/types/with-schemas/persisters/persister-sqlite-wasm.d.ts +2 -0
- package/lib/types/with-schemas/persisters/persister-sqlite3.d.ts +2 -0
- package/lib/types/with-schemas/store.d.ts +6 -0
- package/lib/types/with-schemas/ui-react.d.ts +223 -8
- package/lib/ui-react-dom.js +1 -1
- package/lib/ui-react-dom.js.gz +0 -0
- package/lib/ui-react.js +1 -1
- package/lib/ui-react.js.gz +0 -0
- package/lib/umd/persisters/persister-cr-sqlite-wasm.js +1 -1
- package/lib/umd/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
- package/lib/umd/persisters/persister-expo-sqlite.js +1 -1
- package/lib/umd/persisters/persister-expo-sqlite.js.gz +0 -0
- package/lib/umd/persisters/persister-partykit-client.js +1 -0
- package/lib/umd/persisters/persister-partykit-client.js.gz +0 -0
- package/lib/umd/persisters/persister-partykit-server.js +1 -0
- package/lib/umd/persisters/persister-partykit-server.js.gz +0 -0
- package/lib/umd/persisters/persister-sqlite-wasm.js +1 -1
- package/lib/umd/persisters/persister-sqlite-wasm.js.gz +0 -0
- package/lib/umd/persisters/persister-sqlite3.js +1 -1
- package/lib/umd/persisters/persister-sqlite3.js.gz +0 -0
- package/lib/umd/store.js +1 -1
- package/lib/umd/store.js.gz +0 -0
- package/lib/umd/tinybase.js +1 -1
- package/lib/umd/tinybase.js.gz +0 -0
- package/lib/umd/tools.js +1 -1
- package/lib/umd/tools.js.gz +0 -0
- package/lib/umd/ui-react-dom-debug.js +1 -1
- package/lib/umd/ui-react-dom-debug.js.gz +0 -0
- package/lib/umd/ui-react-dom.js +1 -1
- package/lib/umd/ui-react-dom.js.gz +0 -0
- package/lib/umd/ui-react.js +1 -1
- package/lib/umd/ui-react.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js +1 -1
- package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-expo-sqlite.js +1 -1
- package/lib/umd-es6/persisters/persister-expo-sqlite.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-partykit-client.js +1 -0
- package/lib/umd-es6/persisters/persister-partykit-client.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-partykit-server.js +1 -0
- package/lib/umd-es6/persisters/persister-partykit-server.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-sqlite-wasm.js +1 -1
- package/lib/umd-es6/persisters/persister-sqlite-wasm.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-sqlite3.js +1 -1
- package/lib/umd-es6/persisters/persister-sqlite3.js.gz +0 -0
- package/lib/umd-es6/store.js +1 -1
- package/lib/umd-es6/store.js.gz +0 -0
- package/lib/umd-es6/tinybase.js +1 -1
- package/lib/umd-es6/tinybase.js.gz +0 -0
- package/lib/umd-es6/tools.js +1 -1
- package/lib/umd-es6/tools.js.gz +0 -0
- package/lib/umd-es6/ui-react-dom-debug.js +1 -1
- package/lib/umd-es6/ui-react-dom-debug.js.gz +0 -0
- package/lib/umd-es6/ui-react-dom.js +1 -1
- package/lib/umd-es6/ui-react-dom.js.gz +0 -0
- package/lib/umd-es6/ui-react.js +1 -1
- package/lib/umd-es6/ui-react.js.gz +0 -0
- package/package.json +42 -31
- package/readme.md +13 -13
package/lib/tinybase.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=e=>typeof e,t="",s=e(t),n=e(!0),a=e(0),o=e(e),r="type",l="default",i="Listener",c="Result",d="add",u="Ids",h="Table",g=h+"s",f=h+u,L="Row",w=L+"Count",I=L+u,S="Sorted"+L+u,R="Cell",v=R+u,T="Value",y=T+"s",C=T+u,p=e=>t+e,b=Math.max,V=Math.min,m=isFinite,E=(e,t)=>e instanceof t,k=e=>null==e,M=(e,t,s)=>k(e)?s?.():t(e),D=e=>e==s||e==n,J=t=>e(t)==o,A=e=>Array.isArray(e),x=()=>{},F=(e,t)=>e.includes(t),Q=(e,t)=>e.every(t),z=(e,t)=>B(e)===B(t)&&Q(e,((e,s)=>t[s]===e)),N=(e,t)=>Q(e,((s,n)=>0==n||t(e[n-1],s)<=0)),O=(e,t)=>e.sort(t),j=(e,t)=>e.forEach(t),P=(e,t)=>e.map(t),W=e=>q(e,((e,t)=>e+t),0),B=e=>e.length,$=e=>0==B(e),q=(e,t,s)=>e.reduce(t,s),G=(e,t,s)=>e.slice(t,s),H=(e,...t)=>e.push(...t),K=e=>e.pop(),U=e=>e.shift(),X=Object,Y=X.keys,Z=X.isFrozen,_=X.freeze,ee=e=>E(e,X)&&e.constructor==X,te=(e,t)=>!k(((e,t)=>M(e,(e=>e[t])))(e,t)),se=(e,t)=>(delete e[t],e),ne=(e,t)=>P(X.entries(e),(([e,s])=>t(s,e))),ae=e=>ee(e)&&0==(e=>B(Y(e)))(e),oe=e=>e?.size??0,re=(e,t)=>e?.has(t)??!1,le=e=>k(e)||0==oe(e),ie=e=>[...e?.values()??[]],ce=e=>e.clear(),de=(e,t)=>e?.forEach(t),ue=(e,t)=>e?.delete(t),he=e=>new Map(e),ge=e=>[...e?.keys()??[]],fe=(e,t)=>e?.get(t),Le=(e,t)=>de(e,((e,s)=>t(s,e))),we=(e,t,s)=>k(s)?(ue(e,t),e):e?.set(t,s),Ie=(e,t,s)=>(re(e,t)||we(e,t,s()),fe(e,t)),Se=(e,t,s,n=we)=>(ne(t,((t,n)=>s(e,n,t))),Le(e,(s=>te(t,s)?0:n(e,s))),e),Re=(e,t,s)=>{const n={};return de(e,((e,a)=>{const o=t?t(e,a):e;!s?.(o,e)&&(n[a]=o)})),n},ve=(e,t,s)=>Re(e,(e=>Re(e,t,s)),ae),Te=(e,t,s)=>Re(e,(e=>ve(e,t,s)),ae),ye=(e,t)=>{const s=he();return de(e,((e,n)=>s.set(n,t?.(e)??e))),s},Ce=e=>ye(e,ye),pe=e=>ye(e,Ce),be=(e,t,s,n,a=0)=>M((s?Ie:fe)(e,t[a],a>B(t)-2?s:he),(o=>{if(a>B(t)-2)return n?.(o)&&we(e,t[a]),o;const r=be(o,t,s,n,a+1);return le(o)&&we(e,t[a]),r})),Ve=t=>{const s=e(t);return D(s)||s==a&&m(t)?s:void 0},me=(e,t,s,n,a)=>k(a)?e.delCell(t,s,n,!0):e.setCell(t,s,n,a),Ee=(e,t,s)=>k(s)?e.delValue(t):e.setValue(t,s),ke=e=>new Set(A(e)||k(e)?e:[e]),Me=(e,t)=>e?.add(t),De=(e,t,s,n,a)=>{const o=e.hasRow,r=he(),l=he(),i=he(),c=he(),d=he(),u=he(),h=(t,s,...n)=>{const a=Ie(u,t,ke);return j(n,(t=>Me(a,t)&&s&&e.callListener(t))),n},g=(t,...s)=>M(fe(u,t),(n=>{j($(s)?ie(n):s,(t=>{e.delListener(t),ue(n,t)})),le(n)&&we(u,t)})),f=(e,s)=>{we(r,e,s),re(l,e)||(we(l,e,t()),we(c,e,he()),we(d,e,he()),a(i))},L=e=>{we(r,e),we(l,e),we(c,e),we(d,e),g(e),a(i)};return[()=>e,()=>ge(r),e=>Le(l,e),e=>re(l,e),e=>fe(r,e),e=>fe(l,e),(e,t)=>we(l,e,t),f,(t,n,a,r,l)=>{f(t,n);const i=he(),u=he(),L=fe(c,t),w=fe(d,t),I=t=>{const a=s=>e.getCell(n,t,s),c=fe(L,t),d=o(n,t)?s(r(a,t)):void 0;if(c===d||A(c)&&A(d)&&z(c,d)||we(i,t,[c,d]),!k(l)){const e=fe(w,t),s=o(n,t)?l(a,t):void 0;e!=s&&we(u,t,s)}},S=e=>{a((()=>{de(i,(([,e],t)=>we(L,t,e))),de(u,((e,t)=>we(w,t,e)))}),i,u,L,w,e),ce(i),ce(u)};Le(L,I),e.hasTable(n)&&j(e.getRowIds(n),(e=>{re(L,e)||I(e)})),S(!0),g(t),h(t,0,e.addRowListener(n,null,((e,t,s)=>I(s))),e.addTableListener(n,(()=>S())))},L,e=>n(e,i),()=>Le(u,L),h,g]},Je=(n,a)=>e(n)==s?e=>e(n):n??(()=>a??t),Ae=e=>{const t=new WeakMap;return s=>(t.has(s)||t.set(s,e(s)),t.get(s))},xe=/^\d+$/,Fe=()=>{const e=[];let s=0;return[n=>(n?U(e):null)??t+s++,t=>{xe.test(t)&&B(e)<1e3&&H(e,t)}]},Qe=e=>{let s;const[n,a]=Fe(),o=he();return[(a,r,l,i=[],c=(()=>[]))=>{s??=e();const d=n(1);return we(o,d,[a,r,l,i,c]),Me(be(r,l??[t],ke),d),d},(e,n,...a)=>j(((e,s=[t])=>{const n=[],a=(e,t)=>t==B(s)?H(n,e):null===s[t]?de(e,(e=>a(e,t+1))):j([s[t],null],(s=>a(fe(e,s),t+1)));return a(e,0),n})(e,n),(e=>de(e,(e=>fe(o,e)[0](s,...n??[],...a))))),e=>M(fe(o,e),(([,s,n])=>(be(s,n??[t],void 0,(t=>(ue(t,e),le(t)?1:0))),we(o,e),a(e),n))),e=>M(fe(o,e),(([e,,t=[],n,a])=>{const o=(...r)=>{const l=B(r);l==B(t)?e(s,...r,...a(r)):k(t[l])?j(n[l]?.(...r)??[],(e=>o(...r,e))):o(...r,t[l])};o()}))]},ze=Ae((e=>{let s,n,a,o=100,r=he(),l=he(),i=1;const c=he(),d=he(),[u,h,g]=Qe((()=>Q)),f=he(),L=he(),w=[],I=[],S=(t,s)=>{i=0,e.transaction((()=>{const[n,a]=fe(f,s);de(n,((s,n)=>de(s,((s,a)=>de(s,((s,o)=>me(e,n,a,o,s[t]))))))),de(a,((s,n)=>Ee(e,n,s[t])))})),i=1},R=e=>{we(f,e),we(L,e),h(d,[e])},v=(e,t)=>j(((e,t)=>e.splice(0,t))(e,t??B(e)),R),T=()=>v(w,B(w)-o),y=()=>M(s,(()=>{H(w,s),T(),v(I),s=void 0,a=1})),C=()=>{s=K(w),a=1},p=e.addCellListener(null,null,null,((e,t,s,n,a,o)=>{if(i){y();const e=Ie(r,t,he),l=Ie(e,s,he),i=Ie(l,n,(()=>[o,void 0]));i[1]=a,i[0]===a&&le(we(l,n))&&le(we(e,s))&&le(we(r,t))&&C(),D()}})),b=e.addValueListener(null,((e,t,s,n)=>{if(i){y();const e=Ie(l,t,(()=>[n,void 0]));e[1]=s,e[0]===s&&le(we(l,t))&&C(),D()}})),V=(e="")=>(k(s)&&(s=t+n++,we(f,s,[r,l]),A(s,e),r=he(),l=he(),a=1),s),m=()=>{$(w)||(((e,...t)=>{e.unshift(...t)})(I,V()),S(0,s),s=K(w),a=1)},E=()=>{$(I)||(H(w,s),s=U(I),S(1,s),a=1)},D=()=>{a&&(h(c),a=0)},J=e=>{const t=V(e);return D(),t},A=(e,t)=>(x(e)&&fe(L,e)!==t&&(we(L,e,t),h(d,[e])),Q),x=e=>re(f,e),Q={setSize:e=>(o=e,T(),Q),addCheckpoint:J,setCheckpoint:A,getStore:()=>e,getCheckpointIds:()=>[[...w],s,[...I]],forEachCheckpoint:e=>Le(L,e),hasCheckpoint:x,getCheckpoint:e=>fe(L,e),goBackward:()=>(m(),D(),Q),goForward:()=>(E(),D(),Q),goTo:e=>{const t=F(w,e)?m:F(I,e)?E:null;for(;!k(t)&&e!=s;)t();return D(),Q},addCheckpointIdsListener:e=>u(e,c),addCheckpointListener:(e,t)=>u(t,d,[e]),delListener:e=>(g(e),Q),clear:()=>(v(w),v(I),k(s)||R(s),s=void 0,n=0,J(),Q),destroy:()=>{e.delListener(p),e.delListener(b)},getListenerStats:()=>({})};return _(Q.clear())})),Ne=(e,t)=>(e??0)<(t??0)?-1:1,Oe=Ae((e=>{const s=he(),n=he(),[a,o,r]=Qe((()=>R)),[l,i,c,d,u,h,g,,f,L,w,I]=De(e,he,(e=>k(e)?t:A(e)?P(e,p):p(e)),a,o),S=(t,s,n)=>{const a=u(t);de(n,((t,n)=>s(n,(s=>de(t,(t=>s(t,(s=>e.forEachCell(a,t,s)))))))))},R={setIndexDefinition:(e,t,a,r,l,i=Ne)=>{const c=k(l)?void 0:([e],[t])=>l(e,t);return f(e,t,((t,a,l,d,u,f)=>{let L=0;const w=ke(),I=ke(),S=h(e);if(de(a,(([e,t],s)=>{const n=ke(e),a=ke(t);de(n,(e=>ue(a,e)?ue(n,e):0)),de(n,(e=>{Me(w,e),M(fe(S,e),(t=>{ue(t,s),le(t)&&(we(S,e),L=1)}))})),de(a,(e=>{Me(w,e),re(S,e)||(we(S,e,ke()),L=1),Me(fe(S,e),s),k(r)||Me(I,e)}))})),t(),le(u)||(f?Le(S,(e=>Me(I,e))):Le(l,(e=>M(fe(d,e),(e=>Me(I,e))))),de(I,(e=>{const t=(t,s)=>i(fe(u,t),fe(u,s),e),s=[...fe(S,e)];N(s,t)||(we(S,e,ke(O(s,t))),Me(w,e))}))),(L||f)&&!k(c)){const t=[...S];N(t,c)||(g(e,he(O(t,c))),L=1)}L&&o(s,[e]),de(w,(t=>o(n,[e,t])))}),Je(a),M(r,Je)),R},delIndexDefinition:e=>(L(e),R),getStore:l,getIndexIds:i,forEachIndex:e=>c(((t,s)=>e(t,(e=>S(t,e,s))))),forEachSlice:(e,t)=>S(e,t,h(e)),hasIndex:d,hasSlice:(e,t)=>re(h(e),t),getTableId:u,getSliceIds:e=>ge(h(e)),getSliceRowIds:(e,t)=>ie(fe(h(e),t)),addIndexIdsListener:w,addSliceIdsListener:(e,t)=>a(t,s,[e]),addSliceRowIdsListener:(e,t,s)=>a(s,n,[e,t]),delListener:e=>(r(e),R),destroy:I,getListenerStats:()=>({})};return _(R)})),je=he([["avg",[(e,t)=>W(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=>V(...e),(e,t)=>V(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:V(t,e)]],["sum",[e=>W(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),Pe=(e,t,s,n,a,o=!1)=>{if(le(s))return;const[r,l,i,c]=a;return o||=k(e),de(n,(([s,n])=>{o||(e=k(s)?l?.(e,n,t++):k(n)?i?.(e,s,t--):c?.(e,n,s,t),o||=k(e))})),o?r(ie(s),oe(s)):e},We=Ae((e=>{const s=he(),[n,a,o]=Qe((()=>I)),[r,l,i,c,d,u,h,,g,f,L,w]=De(e,x,(e=>isNaN(e)||k(e)||!0===e||!1===e||e===t?void 0:1*e),n,a),I={setMetricDefinition:(e,t,n,o,r,l,i)=>{const c=J(n)?[n,r,l,i]:fe(je,n)??fe(je,"sum");return g(e,t,((t,n,o,r,l,i)=>{const d=u(e),g=oe(r);i||=k(d),t();let f=Pe(d,g,r,n,c,i);m(f)||(f=void 0),f!=d&&(h(e,f),a(s,[e],f,d))}),Je(o,1)),I},delMetricDefinition:e=>(f(e),I),getStore:r,getMetricIds:l,forEachMetric:i,hasMetric:c,getTableId:d,getMetric:u,addMetricIdsListener:L,addMetricListener:(e,t)=>n(t,s,[e]),delListener:e=>(o(e),I),destroy:w,getListenerStats:()=>({})};return _(I)})),Be=he(),$e=he(),qe=(e,t,s,n,a,o,r=[])=>{let l,i,c,d=0,u=0;Ie(Be,r,(()=>0)),Ie($e,r,(()=>[]));const h=async e=>(2!=d&&(d=1,await g.schedule((async()=>{await e(),d=0}))),g),g={load:async(s,n)=>await h((async()=>{try{e.setContent(await t())}catch{e.setContent([s,n])}})),startAutoLoad:async(s={},a={})=>(g.stopAutoLoad(),await g.load(s,a),u=1,c=n((async(s,n)=>{if(n){const t=n();await h((async()=>e.setTransactionChanges(t)))}else await h((async()=>{try{e.setContent(s?.()??await t())}catch(e){o?.(e)}}))})),g),stopAutoLoad:()=>(u&&(a(c),c=void 0,u=0),g),save:async t=>(1!=d&&(d=2,await g.schedule((async()=>{try{await s(e.getContent,t)}catch(e){o?.(e)}d=0}))),g),startAutoSave:async()=>(await g.stopAutoSave().save(),l=e.addDidFinishTransactionListener(((e,t)=>{const[s,n]=t();ae(s)&&ae(n)||g.save((()=>[s,n]))})),g),stopAutoSave:()=>(M(l,e.delListener),g),schedule:async(...e)=>(H(fe($e,r),...e),await(async()=>{if(!fe(Be,r)){for(we(Be,r,1);!k(i=U(fe($e,r)));)try{await i()}catch(e){o?.(e)}we(Be,r,0)}})(),g),getStore:()=>e,destroy:()=>g.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return _(g)},Ge=Ae((e=>{const s=e.createStore,n=s(),a=s(),o=he(),{addListener:r,callListeners:l,delListener:u}=a,[g,f,T,y,C,,,p,,b,V,m,E,D]=De(e,(()=>!0),x,r,l),A=(e,t,...s)=>j(s,(s=>Me(Ie(Ie(o,t,he),e,ke),s))),F=e=>{M(fe(o,e),(e=>{Le(e,((e,t)=>de(t,(t=>e.delListener(t))))),ce(e)})),j([a,n],(t=>t.delTable(e)))},z=(e,t,s)=>A(t,e,t.addStartTransactionListener(s.startTransaction),t.addDidFinishTransactionListener((()=>s.finishTransaction()))),N={setQueryDefinition:(s,o,r)=>{p(s,o),F(s);const l=[],i=[[null,[o,null,null,[],he()]]],c=[],d=[],u=[];r({select:(e,s)=>{const n=J(e)?[B(l)+t,e]:[k(s)?e:s,t=>t(e,s)];return H(l,n),{as:e=>n[0]=e}},join:(e,t,s)=>{const n=k(s)||J(t)?null:t,a=k(n)?t:s,o=[e,[e,n,J(a)?a:e=>e(a),[],he()]];return H(i,o),{as:e=>o[0]=e}},where:(e,t,s)=>H(c,J(e)?e:k(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,a)=>{const o=[e,[e,J(t)?[t,s,n,a]:fe(je,t)??[(e,t)=>t]]];return H(d,o),{as:e=>o[0]=e}},having:(e,t)=>H(u,J(e)?e:s=>s(e)===t)});const h=he(l);if(le(h))return N;const g=he(i);Le(g,((e,[,t])=>M(fe(g,t),(({3:t})=>k(e)?0:H(t,e)))));const f=he(d);let L=n;if(le(f)&&$(u))L=a;else{z(s,L,a);const e=he();Le(f,((t,[s,n])=>Me(Ie(e,s,ke),[t,n])));const t=ke();Le(h,(s=>re(e,s)?0:Me(t,s)));const n=he(),o=(t,n,o,r)=>M(t,(([l,i,c,d])=>{Le(n,((t,[s])=>{const n=Ie(l,t,he),a=fe(n,o),i=r?void 0:s;if(a!==i){const s=ke([[a,i]]),r=oe(n);we(n,o,i),de(fe(e,t),(([e,t])=>{const a=Pe(d[e],r,n,s,t);d[e]=k(Ve(a))?null:a}))}})),le(i)||!Q(u,(e=>e((e=>d[e]))))?a.delRow(s,c):k(c)?t[2]=a.addRow(s,d):a.setRow(s,c,d)}));A(L,s,L.addRowListener(s,null,((a,r,l,i)=>{const c=[],d=[],u=he(),h=L.hasRow(s,l);let g=!h;de(t,(e=>{const[t,n,a]=i(s,l,e);H(c,n),H(d,a),g||=t})),Le(e,(e=>{const[t,,n]=i(s,l,e);(g||t)&&we(u,e,[n])})),g&&o(be(n,c,void 0,(([,e])=>(ue(e,l),le(e)))),u,l,1),h&&o(be(n,d,(()=>{const e={};return de(t,(t=>e[t]=L.getCell(s,l,t))),[he(),ke(),void 0,e]}),(([,e])=>{Me(e,l)})),u,l)})))}z(s,e,L);const w=(t,n,a,r)=>{const l=t=>e.getCell(n,a,t);j(r,(n=>{const[a,,o,r,i]=fe(g,n),c=o?.(l,t),[d,u]=fe(i,t)??[];c!=d&&(k(u)||D(s,u),we(i,t,k(c)?null:[c,...E(s,1,e.addRowListener(a,c,(()=>w(t,a,c,r))))]))})),(t=>{const n=(s,n)=>e.getCell(...k(n)?[o,t,s]:s===o?[o,t,n]:[fe(g,s)?.[0],fe(fe(g,s)?.[4],t)?.[0],n]);L.transaction((()=>Q(c,(e=>e(n)))?Le(h,((e,a)=>me(L,s,t,e,a(n,t)))):L.delRow(s,t)))})(t)},{3:I}=fe(g,null);return L.transaction((()=>E(s,1,e.addRowListener(o,null,((t,n,a)=>{e.hasRow(o,a)?w(a,o,a,I):(L.delRow(s,a),de(g,(({4:e})=>M(fe(e,a),(([,t])=>{D(s,t),we(e,a)})))))}))))),N},delQueryDefinition:e=>(F(e),b(e),N),getStore:g,getQueryIds:f,forEachQuery:T,hasQuery:y,getTableId:C,addQueryIdsListener:e=>V((()=>e(N))),delListener:e=>(u(e),N),destroy:m,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=a.getListenerStats();return n}};return ne({[h]:[1,1],[h+v]:[0,1],[w]:[0,1],[I]:[0,1],[S]:[0,5],[L]:[1,2],[v]:[0,2],[R]:[1,3]},(([e,t],s)=>{j(e?["get","has","forEach"]:["get"],(e=>N[e+c+s]=(...t)=>a[e+s](...t))),N[d+c+s+i]=(...e)=>a[d+s+i](...G(e,0,t),((s,...n)=>e[t](N,...n)))})),_(N)})),He=Ae((e=>{const s=he(),n=he(),a=he(),o=he(),[r,l,i]=Qe((()=>y)),[c,d,u,h,g,f,,,L,w,I,S]=De(e,(()=>[he(),he(),he(),he()]),(e=>k(e)?void 0:e+t),r,l),R=(e,t,s)=>M(f(e),(([n,,a])=>{if(!re(a,t)){const o=ke();if(g(e)!=T(e))Me(o,t);else{let e=t;for(;!k(e)&&!re(o,e);)Me(o,e),e=fe(n,e)}if(s)return o;we(a,t,o)}return fe(a,t)})),v=(e,t)=>M(f(e),(([,,e])=>we(e,t))),T=e=>fe(s,e),y={setRelationshipDefinition:(e,t,r,i)=>(we(s,e,r),L(e,t,((t,s)=>{const r=ke(),i=ke(),c=ke(),[d,u]=f(e);de(s,(([t,s],n)=>{k(t)||(Me(i,t),M(fe(u,t),(e=>{ue(e,n),le(e)&&we(u,t)}))),k(s)||(Me(i,s),re(u,s)||we(u,s,ke()),Me(fe(u,s),n)),Me(r,n),we(d,n,s),Le(fe(o,e),(t=>{re(R(e,t),n)&&Me(c,t)}))})),t(),de(r,(t=>l(n,[e,t]))),de(i,(t=>l(a,[e,t]))),de(c,(t=>{v(e,t),l(o,[e,t])}))}),Je(i)),y),delRelationshipDefinition:e=>(we(s,e),w(e),y),getStore:c,getRelationshipIds:d,forEachRelationship:t=>u((s=>t(s,(t=>e.forEachRow(g(s),t))))),hasRelationship:h,getLocalTableId:g,getRemoteTableId:T,getRemoteRowId:(e,t)=>fe(f(e)?.[0],t),getLocalRowIds:(e,t)=>ie(fe(f(e)?.[1],t)),getLinkedRowIds:(e,t)=>k(f(e))?[t]:ie(R(e,t,!0)),addRelationshipIdsListener:I,addRemoteRowIdListener:(e,t,s)=>r(s,n,[e,t]),addLocalRowIdsListener:(e,t,s)=>r(s,a,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(R(e,t),r(s,o,[e,t])),delListener:e=>(v(...i(e)??[]),y),destroy:S,getListenerStats:()=>({})};return _(y)})),Ke=e=>[e,e],Ue=()=>[he(),he()],Xe=e=>[...e],Ye=([e,t])=>e===t,Ze=e=>JSON.stringify(e,((e,t)=>E(t,Map)?X.fromEntries([...t]):t)),_e=JSON.parse,et=(e,t,s)=>k(e)||!ee(e)||ae(e)||Z(e)?(s?.(),!1):(ne(e,((s,n)=>{t(s,n)||se(e,n)})),!ae(e)),tt=(e,t,s)=>we(e,t,fe(e,t)==-s?void 0:s),st=()=>{let e,t,s=!1,n=!1,o=0;const c=he(),u=he(),S=he(),b=he(),V=he(),m=he(),E=he(),A=he(),x=he(),Q=he(),N=he(),W=he(),B=he(),$=he(),q=ke(),K=he(),U=he(),X=he(),Y=he(),Z=Ue(),ee=Ue(),ie=Ue(),be=Ue(),De=Ue(),Je=Ue(),Ae=Ue(),xe=Ue(),ze=Ue(),Oe=Ue(),je=Ue(),Pe=Ue(),We=Ue(),Be=Ue(),$e=Ue(),qe=he(),Ge=Ue(),[He,nt,at,ot]=Qe((()=>Rs)),rt=e=>{if(!et(e,((e,t)=>F([r,l],t))))return!1;const t=e[r];return!(!D(t)&&t!=a||(Ve(e[l])!=t&&se(e,l),0))},lt=(t,s)=>(!e||re(N,s)||zt(s))&&et(t,((e,t)=>it(s,t,e)),(()=>zt(s))),it=(e,t,s,n)=>et(n?s:ht(s,e,t),((n,a)=>M(ct(e,t,a,n),(e=>(s[a]=e,!0)),(()=>!1))),(()=>zt(e,t))),ct=(t,s,n,a)=>e?M(fe(fe(N,t),n),(e=>Ve(a)!=e[r]?zt(t,s,n,a,e[l]):a),(()=>zt(t,s,n,a))):k(Ve(a))?zt(t,s,n,a):a,dt=(e,t)=>et(t?e:gt(e),((t,s)=>M(ut(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>Nt())),ut=(e,s)=>t?M(fe(B,e),(t=>Ve(s)!=t[r]?Nt(e,s,t[l]):s),(()=>Nt(e,s))):k(Ve(s))?Nt(e,s):s,ht=(e,t,s)=>(M(fe(W,t),(([n,a])=>{de(n,((t,s)=>{te(e,s)||(e[s]=t)})),de(a,(n=>{te(e,n)||zt(t,s,n)}))})),e),gt=e=>(t&&(de($,((t,s)=>{te(e,s)||(e[s]=t)})),de(q,(t=>{te(e,t)||Nt(t)}))),e),ft=e=>Se(N,e,((e,t,s)=>{const n=he(),a=ke();Se(Ie(N,t,he),s,((e,t,s)=>{we(e,t,s),M(s[l],(e=>we(n,t,e)),(()=>Me(a,t)))})),we(W,t,[n,a])}),((e,t)=>{we(N,t),we(W,t)})),Lt=e=>Se(B,e,((e,t,s)=>{we(B,t,s),M(s[l],(e=>we($,t,e)),(()=>Me(q,t)))}),((e,t)=>{we(B,t),we($,t),ue(q,t)})),wt=e=>ae(e)?ds():os(e),It=e=>Se(X,e,((e,t,s)=>St(t,s)),((e,t)=>mt(t))),St=(e,t)=>Se(Ie(X,e,(()=>(Dt(e,1),we(K,e,Fe()),we(U,e,he()),he()))),t,((t,s,n)=>Rt(e,t,s,n)),((t,s)=>Et(e,t,s))),Rt=(e,t,s,n,a)=>Se(Ie(t,s,(()=>(Jt(e,s,1),he()))),n,((t,n,a)=>vt(e,s,t,n,a)),((n,o)=>kt(e,t,s,n,o,a))),vt=(e,t,s,n,a)=>{re(s,n)||At(e,t,n,1);const o=fe(s,n);a!==o&&(xt(e,t,n,o,a),we(s,n,a))},Tt=(e,t,s,n,a)=>M(fe(t,s),(t=>vt(e,s,t,n,a)),(()=>Rt(e,t,s,ht({[n]:a},e,s)))),yt=e=>ae(e)?gs():rs(e),Ct=e=>Se(Y,e,((e,t,s)=>pt(t,s)),((e,t)=>Mt(t))),pt=(e,t)=>{re(Y,e)||Ft(e,1);const s=fe(Y,e);t!==s&&(Qt(e,s,t),we(Y,e,t))},bt=(e,t)=>{const[s]=fe(K,e),n=s(t);return re(fe(X,e),n)?bt(e,t):n},Vt=e=>fe(X,e)??St(e,{}),mt=e=>St(e,{}),Et=(e,t,s)=>{const[,n]=fe(K,e);n(s),Rt(e,t,s,{},!0)},kt=(e,t,s,n,a,o)=>{const r=fe(fe(W,e)?.[0],a);if(!k(r)&&!o)return vt(e,s,n,a,r);const l=t=>{xt(e,s,t,fe(n,t)),At(e,s,t,-1),we(n,t)};k(r)?l(a):Le(n,l),le(n)&&(Jt(e,s,-1),le(we(t,s))&&(Dt(e,-1),we(X,e),we(K,e),we(U,e)))},Mt=e=>{const t=fe($,e);if(!k(t))return pt(e,t);Qt(e,fe(Y,e)),Ft(e,-1),we(Y,e)},Dt=(e,t)=>tt(c,e,t),Jt=(e,t,s)=>tt(Ie(b,e,he),t,s)&&we(S,e,Ie(S,e,(()=>0))+s),At=(e,t,s,n)=>{const a=fe(U,e),o=fe(a,s)??0;(0==o&&1==n||1==o&&-1==n)&&tt(Ie(u,e,he),s,n),we(a,s,o!=-n?o+n:null),tt(Ie(Ie(V,e,he),t,he),s,n)},xt=(e,t,s,n,a)=>Ie(Ie(Ie(m,e,he),t,he),s,(()=>[n,0]))[1]=a,Ft=(e,t)=>tt(E,e,t),Qt=(e,t,s)=>Ie(A,e,(()=>[t,0]))[1]=s,zt=(e,t,s,n,a)=>(H(Ie(Ie(Ie(x,e,he),t,he),s,(()=>[])),n),a),Nt=(e,t,s)=>(H(Ie(Q,e,(()=>[])),t),s),Ot=(e,t,s)=>M(fe(fe(fe(m,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...Ke(ts(e,t,s))])),jt=e=>M(fe(A,e),(([e,t])=>[!0,e,t]),(()=>[!1,...Ke(as(e))])),Pt=e=>le(x)||le(je[e])?0:de(e?pe(x):x,((t,s)=>de(t,((t,n)=>de(t,((t,a)=>nt(je[e],[s,n,a],t))))))),Wt=e=>le(Q)||le(Pe[e])?0:de(e?ye(Q):Q,((t,s)=>nt(Pe[e],[s],t))),Bt=(e,t,s)=>{if(!le(t))return nt(e,s,(()=>Re(t))),1},$t=e=>{const t=le(Ae[e]),s=le(ze[e])&&le(be[e])&&le(De[e])&&le(Je[e])&&t&&le(ee[e]),n=le(Oe[e])&&le(xe[e])&&le(ie[e])&&le(Z[e]);if(!s||!n){const a=e?[ye(c),Ce(u),ye(S),Ce(b),pe(V),pe(m)]:[c,u,S,b,V,m];if(!s){Bt(ee[e],a[0]),de(a[1],((t,s)=>Bt(be[e],t,[s]))),de(a[2],((t,s)=>{0!=t&&nt(De[e],[s],Yt(s))}));const s=ke();de(a[3],((n,a)=>{Bt(Je[e],n,[a])&&!t&&(nt(Ae[e],[a,null]),Me(s,a))})),t||de(a[5],((t,n)=>{if(!re(s,n)){const s=ke();de(t,(e=>de(e,(([t,n],a)=>n!==t?Me(s,a):ue(e,a))))),de(s,(t=>nt(Ae[e],[n,t])))}})),de(a[4],((t,s)=>de(t,((t,n)=>Bt(ze[e],t,[s,n])))))}if(!n){let t;de(a[5],((s,n)=>{let a;de(s,((s,o)=>{let r;de(s,(([s,l],i)=>{l!==s&&(nt(Oe[e],[n,o,i],l,s,Ot),t=a=r=1)})),r&&nt(xe[e],[n,o],Ot)})),a&&nt(ie[e],[n],Ot)})),t&&nt(Z[e],void 0,Ot)}}},qt=e=>{const t=le(Be[e]),s=le($e[e])&&le(We[e]);if(!t||!s){const n=e?[ye(E),ye(A)]:[E,A];if(t||Bt(Be[e],n[0]),!s){let t;de(n[1],(([s,n],a)=>{n!==s&&(nt($e[e],[a],n,s,jt),t=1)})),t&&nt(We[e],void 0,jt)}}},Gt=(e,...t)=>(ws((()=>e(...P(t,p)))),Rs),Ht=()=>[Re(m,((e,t)=>-1===fe(c,t)?null:Re(e,((e,s)=>-1===fe(fe(b,t),s)?null:Re(e,(([,e])=>e??null),((e,t)=>Ye(t)))),ae)),ae),Re(A,(([,e])=>e??null),((e,t)=>Ye(t)))],Kt=()=>({cellsTouched:s,valuesTouched:n,changedCells:Te(m,Xe,Ye),invalidCells:Te(x),changedValues:Re(A,Xe,Ye),invalidValues:Re(Q),changedTableIds:Re(c),changedRowIds:ve(b),changedCellIds:Te(V),changedValueIds:Re(E)}),Ut=()=>Te(X),Xt=()=>ge(X),Yt=e=>oe(fe(X,p(e))),Zt=e=>ge(fe(X,p(e))),_t=(e,t,s,n=0,a)=>{return P(G(O((o=fe(X,p(e)),r=(e,s)=>[k(t)?s:fe(e,p(t)),s],P([...o?.entries()??[]],(([e,t])=>r(t,e)))),(([e],[t])=>Ne(e,t)*(s?-1:1))),n,k(a)?a:n+a),(([,e])=>e));var o,r},es=(e,t)=>ge(fe(fe(X,p(e)),p(t))),ts=(e,t,s)=>fe(fe(fe(X,p(e)),p(t)),p(s)),ss=()=>Re(Y),ns=()=>ge(Y),as=e=>fe(Y,p(e)),os=e=>Gt((()=>(e=>et(e,lt,zt))(e)?It(e):0)),rs=e=>Gt((()=>dt(e)?Ct(e):0)),ls=e=>{try{wt(_e(e))}catch{}return Rs},is=t=>Gt((()=>{if((e=et(t,(e=>et(e,rt))))&&(ft(t),!le(X))){const e=Ut();ds(),os(e)}})),cs=e=>Gt((()=>{if(t=(e=>et(e,rt))(e)){const s=ss();Ls(),gs(),t=!0,Lt(e),rs(s)}})),ds=()=>Gt((()=>It({}))),us=e=>Gt((e=>re(X,e)?mt(e):0),e),hs=(e,t)=>Gt(((e,t)=>M(fe(X,e),(s=>re(s,t)?Et(e,s,t):0))),e,t),gs=()=>Gt((()=>Ct({}))),fs=()=>Gt((()=>{ft({}),e=!1})),Ls=()=>Gt((()=>{Lt({}),t=!1})),ws=(e,t)=>{if(-1!=o){Is();const s=e();return Ss(t),s}},Is=()=>(-1!=o&&o++,1==o&&nt(qe,void 0,Ht,Kt),Rs),Ss=e=>(o>0&&(o--,0==o&&(s=!le(m),n=!le(A),o=1,Pt(1),s&&$t(1),Wt(1),n&&qt(1),e?.(Ht,Kt)&&(de(m,((e,t)=>de(e,((e,s)=>de(e,(([e],n)=>me(Rs,t,s,n,e))))))),de(A,(([e],t)=>Ee(Rs,t,e))),s=n=!1),nt(Ge[0],void 0,Ht,Kt),o=-1,Pt(0),s&&$t(0),Wt(0),n&&qt(0),nt(Ge[1],void 0,Ht,Kt),o=0,s=n=!1,j([c,u,S,b,V,m,x,E,A,Q],ce))),Rs),Rs={getContent:()=>[Ut(),ss()],getTables:Ut,getTableIds:Xt,getTable:e=>ve(fe(X,p(e))),getTableCellIds:e=>ge(fe(U,p(e))),getRowCount:Yt,getRowIds:Zt,getSortedRowIds:_t,getRow:(e,t)=>Re(fe(fe(X,p(e)),p(t))),getCellIds:es,getCell:ts,getValues:ss,getValueIds:ns,getValue:as,hasTables:()=>!le(X),hasTable:e=>re(X,p(e)),hasTableCell:(e,t)=>re(fe(U,p(e)),p(t)),hasRow:(e,t)=>re(fe(X,p(e)),p(t)),hasCell:(e,t,s)=>re(fe(fe(X,p(e)),p(t)),p(s)),hasValues:()=>!le(Y),hasValue:e=>re(Y,p(e)),getTablesJson:()=>Ze(X),getValuesJson:()=>Ze(Y),getJson:()=>Ze([X,Y]),getTablesSchemaJson:()=>Ze(N),getValuesSchemaJson:()=>Ze(B),getSchemaJson:()=>Ze([N,B]),hasTablesSchema:()=>e,hasValuesSchema:()=>t,setContent:([e,t])=>Gt((()=>{(ae(e)?ds:os)(e),(ae(t)?gs:rs)(t)})),setTables:os,setTable:(e,t)=>Gt((e=>lt(t,e)?St(e,t):0),e),setRow:(e,t,s)=>Gt(((e,t)=>it(e,t,s)?Rt(e,Vt(e),t,s):0),e,t),addRow:(e,t,s=!0)=>ws((()=>{let n;return it(e,n,t)&&(e=p(e),Rt(e,Vt(e),n=bt(e,s?1:0),t)),n})),setPartialRow:(e,t,s)=>Gt(((e,t)=>{if(it(e,t,s,1)){const n=Vt(e);ne(s,((s,a)=>Tt(e,n,t,a,s)))}}),e,t),setCell:(e,t,s,n)=>Gt(((e,t,s)=>M(ct(e,t,s,J(n)?n(ts(e,t,s)):n),(n=>Tt(e,Vt(e),t,s,n)))),e,t,s),setValues:rs,setPartialValues:e=>Gt((()=>dt(e,1)?ne(e,((e,t)=>pt(t,e))):0)),setValue:(e,t)=>Gt((e=>M(ut(e,J(t)?t(as(e)):t),(t=>pt(e,t)))),e),setTransactionChanges:e=>Gt((()=>{ne(e[0],((e,t)=>k(e)?us(t):ne(e,((e,s)=>k(e)?hs(t,s):ne(e,((e,n)=>me(Rs,t,s,n,e))))))),ne(e[1],((e,t)=>Ee(Rs,t,e)))})),setTablesJson:ls,setValuesJson:e=>{try{yt(_e(e))}catch{}return Rs},setJson:e=>{try{const[t,s]=_e(e);wt(t),yt(s)}catch{ls(e)}return Rs},setTablesSchema:is,setValuesSchema:cs,setSchema:(e,t)=>Gt((()=>{is(e),cs(t)})),delTables:ds,delTable:us,delRow:hs,delCell:(e,t,s,n)=>Gt(((e,t,s)=>M(fe(X,e),(a=>M(fe(a,t),(o=>re(o,s)?kt(e,a,t,o,s,n):0))))),e,t,s),delValues:gs,delValue:e=>Gt((e=>re(Y,e)?Mt(e):0),e),delTablesSchema:fs,delValuesSchema:Ls,delSchema:()=>Gt((()=>{fs(),Ls()})),transaction:ws,startTransaction:Is,finishTransaction:Ss,forEachTable:e=>de(X,((t,s)=>e(s,(e=>de(t,((t,s)=>e(s,(e=>Le(t,e))))))))),forEachTableCell:(e,t)=>Le(fe(U,p(e)),t),forEachRow:(e,t)=>de(fe(X,p(e)),((e,s)=>t(s,(t=>Le(e,t))))),forEachCell:(e,t,s)=>Le(fe(fe(X,p(e)),p(t)),s),forEachValue:e=>Le(Y,e),addSortedRowIdsListener:(e,t,s,n,a,o,r)=>{let l=_t(e,t,s,n,a);return He((()=>{const r=_t(e,t,s,n,a);z(r,l)||(l=r,o(Rs,e,t,s,n,a,l))}),Ae[r?1:0],[e,t],[Xt])},addStartTransactionListener:e=>He(e,qe),addWillFinishTransactionListener:e=>He(e,Ge[0]),addDidFinishTransactionListener:e=>He(e,Ge[1]),callListener:e=>(ot(e),Rs),delListener:e=>(at(e),Rs),getListenerStats:()=>({}),createStore:st,addListener:He,callListeners:nt};return ne({[g]:[0,Z],[f]:[0,ee],[h]:[1,ie,[Xt]],[h+v]:[1,be,[Xt]],[w]:[1,De,[Xt]],[I]:[1,Je,[Xt]],[L]:[2,xe,[Xt,Zt]],[v]:[2,ze,[Xt,Zt]],[R]:[3,Oe,[Xt,Zt,es],e=>Ke(ts(...e))],InvalidCell:[3,je],[y]:[0,We],[C]:[0,Be],[T]:[1,$e,[ns],e=>Ke(as(e[0]))],InvalidValue:[1,Pe]},(([e,t,s,n],a)=>{Rs[d+a+i]=(...a)=>He(a[e],t[a[e+1]?1:0],e>0?G(a,0,e):void 0,s,n)})),_(Rs)};export{ze as createCheckpoints,qe as createCustomPersister,Oe as createIndexes,We as createMetrics,Ge as createQueries,He as createRelationships,st as createStore,Ne as defaultSorter};
|
|
1
|
+
const e=e=>typeof e,t="",s=e(t),n=e(!0),a=e(0),o=e(e),r="type",l="default",i="Listener",c="Result",d="add",u="Ids",h="Table",g=h+"s",f=h+u,L="Row",w=L+"Count",I=L+u,S="Sorted"+L+u,R="Cell",v=R+u,T="Value",y=T+"s",C=T+u,p=e=>t+e,b=Math.max,V=Math.min,m=isFinite,E=(e,t)=>e instanceof t,k=e=>null==e,M=(e,t,s)=>k(e)?s?.():t(e),D=e=>e==s||e==n,J=t=>e(t)==o,A=e=>Array.isArray(e),x=(e,t,s)=>e.slice(t,s),F=()=>{},Q=(e,t)=>e.includes(t),z=(e,t)=>e.every(t),N=(e,t)=>$(e)===$(t)&&z(e,((e,s)=>t[s]===e)),O=(e,t)=>z(e,((s,n)=>0==n||t(e[n-1],s)<=0)),j=(e,t)=>e.sort(t),P=(e,t)=>e.forEach(t),W=(e,t)=>e.map(t),B=e=>G(e,((e,t)=>e+t),0),$=e=>e.length,q=e=>0==$(e),G=(e,t,s)=>e.reduce(t,s),H=(e,...t)=>e.push(...t),K=e=>e.pop(),U=e=>e.shift(),X=Object,Y=X.keys,Z=X.isFrozen,_=X.freeze,ee=e=>E(e,X)&&e.constructor==X,te=(e,t)=>!k(((e,t)=>M(e,(e=>e[t])))(e,t)),se=(e,t)=>(delete e[t],e),ne=(e,t)=>W(X.entries(e),(([e,s])=>t(s,e))),ae=e=>ee(e)&&0==(e=>$(Y(e)))(e),oe=e=>e?.size??0,re=(e,t)=>e?.has(t)??!1,le=e=>k(e)||0==oe(e),ie=e=>[...e?.values()??[]],ce=e=>e.clear(),de=(e,t)=>e?.forEach(t),ue=(e,t)=>e?.delete(t),he=e=>new Map(e),ge=e=>[...e?.keys()??[]],fe=(e,t)=>e?.get(t),Le=(e,t)=>de(e,((e,s)=>t(s,e))),we=(e,t,s)=>k(s)?(ue(e,t),e):e?.set(t,s),Ie=(e,t,s)=>(re(e,t)||we(e,t,s()),fe(e,t)),Se=(e,t,s,n=we)=>(ne(t,((t,n)=>s(e,n,t))),Le(e,(s=>te(t,s)?0:n(e,s))),e),Re=(e,t,s)=>{const n={};return de(e,((e,a)=>{const o=t?t(e,a):e;!s?.(o,e)&&(n[a]=o)})),n},ve=(e,t,s)=>Re(e,(e=>Re(e,t,s)),ae),Te=(e,t,s)=>Re(e,(e=>ve(e,t,s)),ae),ye=(e,t)=>{const s=he();return de(e,((e,n)=>s.set(n,t?.(e)??e))),s},Ce=e=>ye(e,ye),pe=e=>ye(e,Ce),be=(e,t,s,n,a=0)=>M((s?Ie:fe)(e,t[a],a>$(t)-2?s:he),(o=>{if(a>$(t)-2)return n?.(o)&&we(e,t[a]),o;const r=be(o,t,s,n,a+1);return le(o)&&we(e,t[a]),r})),Ve=t=>{const s=e(t);return D(s)||s==a&&m(t)?s:void 0},me=(e,t,s,n,a)=>k(a)?e.delCell(t,s,n,!0):e.setCell(t,s,n,a),Ee=(e,t,s)=>k(s)?e.delValue(t):e.setValue(t,s),ke=e=>new Set(A(e)||k(e)?e:[e]),Me=(e,t)=>e?.add(t),De=(e,t,s,n,a)=>{const o=e.hasRow,r=he(),l=he(),i=he(),c=he(),d=he(),u=he(),h=(t,s,...n)=>{const a=Ie(u,t,ke);return P(n,(t=>Me(a,t)&&s&&e.callListener(t))),n},g=(t,...s)=>M(fe(u,t),(n=>{P(q(s)?ie(n):s,(t=>{e.delListener(t),ue(n,t)})),le(n)&&we(u,t)})),f=(e,s)=>{we(r,e,s),re(l,e)||(we(l,e,t()),we(c,e,he()),we(d,e,he()),a(i))},L=e=>{we(r,e),we(l,e),we(c,e),we(d,e),g(e),a(i)};return[()=>e,()=>ge(r),e=>Le(l,e),e=>re(l,e),e=>fe(r,e),e=>fe(l,e),(e,t)=>we(l,e,t),f,(t,n,a,r,l)=>{f(t,n);const i=he(),u=he(),L=fe(c,t),w=fe(d,t),I=t=>{const a=s=>e.getCell(n,t,s),c=fe(L,t),d=o(n,t)?s(r(a,t)):void 0;if(c===d||A(c)&&A(d)&&N(c,d)||we(i,t,[c,d]),!k(l)){const e=fe(w,t),s=o(n,t)?l(a,t):void 0;e!=s&&we(u,t,s)}},S=e=>{a((()=>{de(i,(([,e],t)=>we(L,t,e))),de(u,((e,t)=>we(w,t,e)))}),i,u,L,w,e),ce(i),ce(u)};Le(L,I),e.hasTable(n)&&P(e.getRowIds(n),(e=>{re(L,e)||I(e)})),S(!0),g(t),h(t,0,e.addRowListener(n,null,((e,t,s)=>I(s))),e.addTableListener(n,(()=>S())))},L,e=>n(e,i),()=>Le(u,L),h,g]},Je=(n,a)=>e(n)==s?e=>e(n):n??(()=>a??t),Ae=e=>{const t=new WeakMap;return s=>(t.has(s)||t.set(s,e(s)),t.get(s))},xe=/^\d+$/,Fe=()=>{const e=[];let s=0;return[n=>(n?U(e):null)??t+s++,t=>{xe.test(t)&&$(e)<1e3&&H(e,t)}]},Qe=e=>{let s;const[n,a]=Fe(),o=he();return[(a,r,l,i=[],c=(()=>[]))=>{s??=e();const d=n(1);return we(o,d,[a,r,l,i,c]),Me(be(r,l??[t],ke),d),d},(e,n,...a)=>P(((e,s=[t])=>{const n=[],a=(e,t)=>t==$(s)?H(n,e):null===s[t]?de(e,(e=>a(e,t+1))):P([s[t],null],(s=>a(fe(e,s),t+1)));return a(e,0),n})(e,n),(e=>de(e,(e=>fe(o,e)[0](s,...n??[],...a))))),e=>M(fe(o,e),(([,s,n])=>(be(s,n??[t],void 0,(t=>(ue(t,e),le(t)?1:0))),we(o,e),a(e),n))),e=>M(fe(o,e),(([e,,t=[],n,a])=>{const o=(...r)=>{const l=$(r);l==$(t)?e(s,...r,...a(r)):k(t[l])?P(n[l]?.(...r)??[],(e=>o(...r,e))):o(...r,t[l])};o()}))]},ze=Ae((e=>{let s,n,a,o=100,r=he(),l=he(),i=1;const c=he(),d=he(),[u,h,g]=Qe((()=>F)),f=he(),L=he(),w=[],I=[],S=(t,s)=>{i=0,e.transaction((()=>{const[n,a]=fe(f,s);de(n,((s,n)=>de(s,((s,a)=>de(s,((s,o)=>me(e,n,a,o,s[t]))))))),de(a,((s,n)=>Ee(e,n,s[t])))})),i=1},R=e=>{we(f,e),we(L,e),h(d,[e])},v=(e,t)=>P(((e,t)=>e.splice(0,t))(e,t??$(e)),R),T=()=>v(w,$(w)-o),y=()=>M(s,(()=>{H(w,s),T(),v(I),s=void 0,a=1})),C=()=>{s=K(w),a=1},p=e.addCellListener(null,null,null,((e,t,s,n,a,o)=>{if(i){y();const e=Ie(r,t,he),l=Ie(e,s,he),i=Ie(l,n,(()=>[o,void 0]));i[1]=a,i[0]===a&&le(we(l,n))&&le(we(e,s))&&le(we(r,t))&&C(),D()}})),b=e.addValueListener(null,((e,t,s,n)=>{if(i){y();const e=Ie(l,t,(()=>[n,void 0]));e[1]=s,e[0]===s&&le(we(l,t))&&C(),D()}})),V=(e="")=>(k(s)&&(s=t+n++,we(f,s,[r,l]),A(s,e),r=he(),l=he(),a=1),s),m=()=>{q(w)||(((e,...t)=>{e.unshift(...t)})(I,V()),S(0,s),s=K(w),a=1)},E=()=>{q(I)||(H(w,s),s=U(I),S(1,s),a=1)},D=()=>{a&&(h(c),a=0)},J=e=>{const t=V(e);return D(),t},A=(e,t)=>(x(e)&&fe(L,e)!==t&&(we(L,e,t),h(d,[e])),F),x=e=>re(f,e),F={setSize:e=>(o=e,T(),F),addCheckpoint:J,setCheckpoint:A,getStore:()=>e,getCheckpointIds:()=>[[...w],s,[...I]],forEachCheckpoint:e=>Le(L,e),hasCheckpoint:x,getCheckpoint:e=>fe(L,e),goBackward:()=>(m(),D(),F),goForward:()=>(E(),D(),F),goTo:e=>{const t=Q(w,e)?m:Q(I,e)?E:null;for(;!k(t)&&e!=s;)t();return D(),F},addCheckpointIdsListener:e=>u(e,c),addCheckpointListener:(e,t)=>u(t,d,[e]),delListener:e=>(g(e),F),clear:()=>(v(w),v(I),k(s)||R(s),s=void 0,n=0,J(),F),destroy:()=>{e.delListener(p),e.delListener(b)},getListenerStats:()=>({})};return _(F.clear())})),Ne=(e,t)=>(e??0)<(t??0)?-1:1,Oe=Ae((e=>{const s=he(),n=he(),[a,o,r]=Qe((()=>R)),[l,i,c,d,u,h,g,,f,L,w,I]=De(e,he,(e=>k(e)?t:A(e)?W(e,p):p(e)),a,o),S=(t,s,n)=>{const a=u(t);de(n,((t,n)=>s(n,(s=>de(t,(t=>s(t,(s=>e.forEachCell(a,t,s)))))))))},R={setIndexDefinition:(e,t,a,r,l,i=Ne)=>{const c=k(l)?void 0:([e],[t])=>l(e,t);return f(e,t,((t,a,l,d,u,f)=>{let L=0;const w=ke(),I=ke(),S=h(e);if(de(a,(([e,t],s)=>{const n=ke(e),a=ke(t);de(n,(e=>ue(a,e)?ue(n,e):0)),de(n,(e=>{Me(w,e),M(fe(S,e),(t=>{ue(t,s),le(t)&&(we(S,e),L=1)}))})),de(a,(e=>{Me(w,e),re(S,e)||(we(S,e,ke()),L=1),Me(fe(S,e),s),k(r)||Me(I,e)}))})),t(),le(u)||(f?Le(S,(e=>Me(I,e))):Le(l,(e=>M(fe(d,e),(e=>Me(I,e))))),de(I,(e=>{const t=(t,s)=>i(fe(u,t),fe(u,s),e),s=[...fe(S,e)];O(s,t)||(we(S,e,ke(j(s,t))),Me(w,e))}))),(L||f)&&!k(c)){const t=[...S];O(t,c)||(g(e,he(j(t,c))),L=1)}L&&o(s,[e]),de(w,(t=>o(n,[e,t])))}),Je(a),M(r,Je)),R},delIndexDefinition:e=>(L(e),R),getStore:l,getIndexIds:i,forEachIndex:e=>c(((t,s)=>e(t,(e=>S(t,e,s))))),forEachSlice:(e,t)=>S(e,t,h(e)),hasIndex:d,hasSlice:(e,t)=>re(h(e),t),getTableId:u,getSliceIds:e=>ge(h(e)),getSliceRowIds:(e,t)=>ie(fe(h(e),t)),addIndexIdsListener:w,addSliceIdsListener:(e,t)=>a(t,s,[e]),addSliceRowIdsListener:(e,t,s)=>a(s,n,[e,t]),delListener:e=>(r(e),R),destroy:I,getListenerStats:()=>({})};return _(R)})),je=he([["avg",[(e,t)=>B(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=>V(...e),(e,t)=>V(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:V(t,e)]],["sum",[e=>B(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),Pe=(e,t,s,n,a,o=!1)=>{if(le(s))return;const[r,l,i,c]=a;return o||=k(e),de(n,(([s,n])=>{o||(e=k(s)?l?.(e,n,t++):k(n)?i?.(e,s,t--):c?.(e,n,s,t),o||=k(e))})),o?r(ie(s),oe(s)):e},We=Ae((e=>{const s=he(),[n,a,o]=Qe((()=>I)),[r,l,i,c,d,u,h,,g,f,L,w]=De(e,F,(e=>isNaN(e)||k(e)||!0===e||!1===e||e===t?void 0:1*e),n,a),I={setMetricDefinition:(e,t,n,o,r,l,i)=>{const c=J(n)?[n,r,l,i]:fe(je,n)??fe(je,"sum");return g(e,t,((t,n,o,r,l,i)=>{const d=u(e),g=oe(r);i||=k(d),t();let f=Pe(d,g,r,n,c,i);m(f)||(f=void 0),f!=d&&(h(e,f),a(s,[e],f,d))}),Je(o,1)),I},delMetricDefinition:e=>(f(e),I),getStore:r,getMetricIds:l,forEachMetric:i,hasMetric:c,getTableId:d,getMetric:u,addMetricIdsListener:L,addMetricListener:(e,t)=>n(t,s,[e]),delListener:e=>(o(e),I),destroy:w,getListenerStats:()=>({})};return _(I)})),Be=he(),$e=he(),qe=(e,t,s,n,a,o,r=[])=>{let l,i,c,d=0,u=0;Ie(Be,r,(()=>0)),Ie($e,r,(()=>[]));const h=async e=>(2!=d&&(d=1,await g.schedule((async()=>{await e(),d=0}))),g),g={load:async(s,n)=>await h((async()=>{try{e.setContent(await t())}catch{e.setContent([s,n])}})),startAutoLoad:async(s={},a={})=>(g.stopAutoLoad(),await g.load(s,a),u=1,c=n((async(s,n)=>{if(n){const t=n();await h((async()=>e.setTransactionChanges(t)))}else await h((async()=>{try{e.setContent(s?.()??await t())}catch(e){o?.(e)}}))})),g),stopAutoLoad:()=>(u&&(a(c),c=void 0,u=0),g),save:async t=>(1!=d&&(d=2,await g.schedule((async()=>{try{await s(e.getContent,t)}catch(e){o?.(e)}d=0}))),g),startAutoSave:async()=>(await g.stopAutoSave().save(),l=e.addDidFinishTransactionListener(((e,t)=>{const[s,n]=t();ae(s)&&ae(n)||g.save((()=>[s,n]))})),g),stopAutoSave:()=>(M(l,e.delListener),g),schedule:async(...e)=>(H(fe($e,r),...e),await(async()=>{if(!fe(Be,r)){for(we(Be,r,1);!k(i=U(fe($e,r)));)try{await i()}catch(e){o?.(e)}we(Be,r,0)}})(),g),getStore:()=>e,destroy:()=>g.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return _(g)},Ge=Ae((e=>{const s=e.createStore,n=s(),a=s(),o=he(),{addListener:r,callListeners:l,delListener:u}=a,[g,f,T,y,C,,,p,,b,V,m,E,D]=De(e,(()=>!0),F,r,l),A=(e,t,...s)=>P(s,(s=>Me(Ie(Ie(o,t,he),e,ke),s))),Q=e=>{M(fe(o,e),(e=>{Le(e,((e,t)=>de(t,(t=>e.delListener(t))))),ce(e)})),P([a,n],(t=>t.delTable(e)))},N=(e,t,s)=>A(t,e,t.addStartTransactionListener(s.startTransaction),t.addDidFinishTransactionListener((()=>s.finishTransaction()))),O={setQueryDefinition:(s,o,r)=>{p(s,o),Q(s);const l=[],i=[[null,[o,null,null,[],he()]]],c=[],d=[],u=[];r({select:(e,s)=>{const n=J(e)?[$(l)+t,e]:[k(s)?e:s,t=>t(e,s)];return H(l,n),{as:e=>n[0]=e}},join:(e,t,s)=>{const n=k(s)||J(t)?null:t,a=k(n)?t:s,o=[e,[e,n,J(a)?a:e=>e(a),[],he()]];return H(i,o),{as:e=>o[0]=e}},where:(e,t,s)=>H(c,J(e)?e:k(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,a)=>{const o=[e,[e,J(t)?[t,s,n,a]:fe(je,t)??[(e,t)=>t]]];return H(d,o),{as:e=>o[0]=e}},having:(e,t)=>H(u,J(e)?e:s=>s(e)===t)});const h=he(l);if(le(h))return O;const g=he(i);Le(g,((e,[,t])=>M(fe(g,t),(({3:t})=>k(e)?0:H(t,e)))));const f=he(d);let L=n;if(le(f)&&q(u))L=a;else{N(s,L,a);const e=he();Le(f,((t,[s,n])=>Me(Ie(e,s,ke),[t,n])));const t=ke();Le(h,(s=>re(e,s)?0:Me(t,s)));const n=he(),o=(t,n,o,r)=>M(t,(([l,i,c,d])=>{Le(n,((t,[s])=>{const n=Ie(l,t,he),a=fe(n,o),i=r?void 0:s;if(a!==i){const s=ke([[a,i]]),r=oe(n);we(n,o,i),de(fe(e,t),(([e,t])=>{const a=Pe(d[e],r,n,s,t);d[e]=k(Ve(a))?null:a}))}})),le(i)||!z(u,(e=>e((e=>d[e]))))?a.delRow(s,c):k(c)?t[2]=a.addRow(s,d):a.setRow(s,c,d)}));A(L,s,L.addRowListener(s,null,((a,r,l,i)=>{const c=[],d=[],u=he(),h=L.hasRow(s,l);let g=!h;de(t,(e=>{const[t,n,a]=i(s,l,e);H(c,n),H(d,a),g||=t})),Le(e,(e=>{const[t,,n]=i(s,l,e);(g||t)&&we(u,e,[n])})),g&&o(be(n,c,void 0,(([,e])=>(ue(e,l),le(e)))),u,l,1),h&&o(be(n,d,(()=>{const e={};return de(t,(t=>e[t]=L.getCell(s,l,t))),[he(),ke(),void 0,e]}),(([,e])=>{Me(e,l)})),u,l)})))}N(s,e,L);const w=(t,n,a,r)=>{const l=t=>e.getCell(n,a,t);P(r,(n=>{const[a,,o,r,i]=fe(g,n),c=o?.(l,t),[d,u]=fe(i,t)??[];c!=d&&(k(u)||D(s,u),we(i,t,k(c)?null:[c,...E(s,1,e.addRowListener(a,c,(()=>w(t,a,c,r))))]))})),(t=>{const n=(s,n)=>e.getCell(...k(n)?[o,t,s]:s===o?[o,t,n]:[fe(g,s)?.[0],fe(fe(g,s)?.[4],t)?.[0],n]);L.transaction((()=>z(c,(e=>e(n)))?Le(h,((e,a)=>me(L,s,t,e,a(n,t)))):L.delRow(s,t)))})(t)},{3:I}=fe(g,null);return L.transaction((()=>E(s,1,e.addRowListener(o,null,((t,n,a)=>{e.hasRow(o,a)?w(a,o,a,I):(L.delRow(s,a),de(g,(({4:e})=>M(fe(e,a),(([,t])=>{D(s,t),we(e,a)})))))}))))),O},delQueryDefinition:e=>(Q(e),b(e),O),getStore:g,getQueryIds:f,forEachQuery:T,hasQuery:y,getTableId:C,addQueryIdsListener:e=>V((()=>e(O))),delListener:e=>(u(e),O),destroy:m,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=a.getListenerStats();return n}};return ne({[h]:[1,1],[h+v]:[0,1],[w]:[0,1],[I]:[0,1],[S]:[0,5],[L]:[1,2],[v]:[0,2],[R]:[1,3]},(([e,t],s)=>{P(e?["get","has","forEach"]:["get"],(e=>O[e+c+s]=(...t)=>a[e+s](...t))),O[d+c+s+i]=(...e)=>a[d+s+i](...x(e,0,t),((s,...n)=>e[t](O,...n)))})),_(O)})),He=Ae((e=>{const s=he(),n=he(),a=he(),o=he(),[r,l,i]=Qe((()=>y)),[c,d,u,h,g,f,,,L,w,I,S]=De(e,(()=>[he(),he(),he(),he()]),(e=>k(e)?void 0:e+t),r,l),R=(e,t,s)=>M(f(e),(([n,,a])=>{if(!re(a,t)){const o=ke();if(g(e)!=T(e))Me(o,t);else{let e=t;for(;!k(e)&&!re(o,e);)Me(o,e),e=fe(n,e)}if(s)return o;we(a,t,o)}return fe(a,t)})),v=(e,t)=>M(f(e),(([,,e])=>we(e,t))),T=e=>fe(s,e),y={setRelationshipDefinition:(e,t,r,i)=>(we(s,e,r),L(e,t,((t,s)=>{const r=ke(),i=ke(),c=ke(),[d,u]=f(e);de(s,(([t,s],n)=>{k(t)||(Me(i,t),M(fe(u,t),(e=>{ue(e,n),le(e)&&we(u,t)}))),k(s)||(Me(i,s),re(u,s)||we(u,s,ke()),Me(fe(u,s),n)),Me(r,n),we(d,n,s),Le(fe(o,e),(t=>{re(R(e,t),n)&&Me(c,t)}))})),t(),de(r,(t=>l(n,[e,t]))),de(i,(t=>l(a,[e,t]))),de(c,(t=>{v(e,t),l(o,[e,t])}))}),Je(i)),y),delRelationshipDefinition:e=>(we(s,e),w(e),y),getStore:c,getRelationshipIds:d,forEachRelationship:t=>u((s=>t(s,(t=>e.forEachRow(g(s),t))))),hasRelationship:h,getLocalTableId:g,getRemoteTableId:T,getRemoteRowId:(e,t)=>fe(f(e)?.[0],t),getLocalRowIds:(e,t)=>ie(fe(f(e)?.[1],t)),getLinkedRowIds:(e,t)=>k(f(e))?[t]:ie(R(e,t,!0)),addRelationshipIdsListener:I,addRemoteRowIdListener:(e,t,s)=>r(s,n,[e,t]),addLocalRowIdsListener:(e,t,s)=>r(s,a,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(R(e,t),r(s,o,[e,t])),delListener:e=>(v(...i(e)??[]),y),destroy:S,getListenerStats:()=>({})};return _(y)})),Ke=e=>[e,e],Ue=()=>[he(),he()],Xe=e=>[...e],Ye=([e,t])=>e===t,Ze=e=>JSON.stringify(e,((e,t)=>E(t,Map)?X.fromEntries([...t]):t)),_e=JSON.parse,et=(e,t,s)=>k(e)||!ee(e)||ae(e)||Z(e)?(s?.(),!1):(ne(e,((s,n)=>{t(s,n)||se(e,n)})),!ae(e)),tt=(e,t,s)=>we(e,t,fe(e,t)==-s?void 0:s),st=()=>{let e,t,s=!1,n=!1,o=0;const c=he(),u=he(),S=he(),b=he(),V=he(),m=he(),E=he(),A=he(),F=he(),z=he(),O=he(),B=he(),$=he(),q=he(),G=ke(),K=he(),U=he(),X=he(),Y=he(),Z=Ue(),ee=Ue(),ie=Ue(),be=Ue(),De=Ue(),Je=Ue(),Ae=Ue(),xe=Ue(),ze=Ue(),Oe=Ue(),je=Ue(),Pe=Ue(),We=Ue(),Be=Ue(),$e=Ue(),qe=he(),Ge=Ue(),[He,nt,at,ot]=Qe((()=>Rs)),rt=e=>{if(!et(e,((e,t)=>Q([r,l],t))))return!1;const t=e[r];return!(!D(t)&&t!=a||(Ve(e[l])!=t&&se(e,l),0))},lt=(t,s)=>(!e||re(O,s)||zt(s))&&et(t,((e,t)=>it(s,t,e)),(()=>zt(s))),it=(e,t,s,n)=>et(n?s:ht(s,e,t),((n,a)=>M(ct(e,t,a,n),(e=>(s[a]=e,!0)),(()=>!1))),(()=>zt(e,t))),ct=(t,s,n,a)=>e?M(fe(fe(O,t),n),(e=>Ve(a)!=e[r]?zt(t,s,n,a,e[l]):a),(()=>zt(t,s,n,a))):k(Ve(a))?zt(t,s,n,a):a,dt=(e,t)=>et(t?e:gt(e),((t,s)=>M(ut(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>Nt())),ut=(e,s)=>t?M(fe($,e),(t=>Ve(s)!=t[r]?Nt(e,s,t[l]):s),(()=>Nt(e,s))):k(Ve(s))?Nt(e,s):s,ht=(e,t,s)=>(M(fe(B,t),(([n,a])=>{de(n,((t,s)=>{te(e,s)||(e[s]=t)})),de(a,(n=>{te(e,n)||zt(t,s,n)}))})),e),gt=e=>(t&&(de(q,((t,s)=>{te(e,s)||(e[s]=t)})),de(G,(t=>{te(e,t)||Nt(t)}))),e),ft=e=>Se(O,e,((e,t,s)=>{const n=he(),a=ke();Se(Ie(O,t,he),s,((e,t,s)=>{we(e,t,s),M(s[l],(e=>we(n,t,e)),(()=>Me(a,t)))})),we(B,t,[n,a])}),((e,t)=>{we(O,t),we(B,t)})),Lt=e=>Se($,e,((e,t,s)=>{we($,t,s),M(s[l],(e=>we(q,t,e)),(()=>Me(G,t)))}),((e,t)=>{we($,t),we(q,t),ue(G,t)})),wt=e=>ae(e)?ds():os(e),It=e=>Se(X,e,((e,t,s)=>St(t,s)),((e,t)=>mt(t))),St=(e,t)=>Se(Ie(X,e,(()=>(Dt(e,1),we(K,e,Fe()),we(U,e,he()),he()))),t,((t,s,n)=>Rt(e,t,s,n)),((t,s)=>Et(e,t,s))),Rt=(e,t,s,n,a)=>Se(Ie(t,s,(()=>(Jt(e,s,1),he()))),n,((t,n,a)=>vt(e,s,t,n,a)),((n,o)=>kt(e,t,s,n,o,a))),vt=(e,t,s,n,a)=>{re(s,n)||At(e,t,n,1);const o=fe(s,n);a!==o&&(xt(e,t,n,o,a),we(s,n,a))},Tt=(e,t,s,n,a)=>M(fe(t,s),(t=>vt(e,s,t,n,a)),(()=>Rt(e,t,s,ht({[n]:a},e,s)))),yt=e=>ae(e)?gs():rs(e),Ct=e=>Se(Y,e,((e,t,s)=>pt(t,s)),((e,t)=>Mt(t))),pt=(e,t)=>{re(Y,e)||Ft(e,1);const s=fe(Y,e);t!==s&&(Qt(e,s,t),we(Y,e,t))},bt=(e,t)=>{const[s]=fe(K,e),n=s(t);return re(fe(X,e),n)?bt(e,t):n},Vt=e=>fe(X,e)??St(e,{}),mt=e=>St(e,{}),Et=(e,t,s)=>{const[,n]=fe(K,e);n(s),Rt(e,t,s,{},!0)},kt=(e,t,s,n,a,o)=>{const r=fe(fe(B,e)?.[0],a);if(!k(r)&&!o)return vt(e,s,n,a,r);const l=t=>{xt(e,s,t,fe(n,t)),At(e,s,t,-1),we(n,t)};k(r)?l(a):Le(n,l),le(n)&&(Jt(e,s,-1),le(we(t,s))&&(Dt(e,-1),we(X,e),we(K,e),we(U,e)))},Mt=e=>{const t=fe(q,e);if(!k(t))return pt(e,t);Qt(e,fe(Y,e)),Ft(e,-1),we(Y,e)},Dt=(e,t)=>tt(c,e,t),Jt=(e,t,s)=>tt(Ie(b,e,he),t,s)&&we(S,e,Ie(S,e,(()=>0))+s),At=(e,t,s,n)=>{const a=fe(U,e),o=fe(a,s)??0;(0==o&&1==n||1==o&&-1==n)&&tt(Ie(u,e,he),s,n),we(a,s,o!=-n?o+n:null),tt(Ie(Ie(V,e,he),t,he),s,n)},xt=(e,t,s,n,a)=>Ie(Ie(Ie(m,e,he),t,he),s,(()=>[n,0]))[1]=a,Ft=(e,t)=>tt(E,e,t),Qt=(e,t,s)=>Ie(A,e,(()=>[t,0]))[1]=s,zt=(e,t,s,n,a)=>(H(Ie(Ie(Ie(F,e,he),t,he),s,(()=>[])),n),a),Nt=(e,t,s)=>(H(Ie(z,e,(()=>[])),t),s),Ot=(e,t,s)=>M(fe(fe(fe(m,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...Ke(ts(e,t,s))])),jt=e=>M(fe(A,e),(([e,t])=>[!0,e,t]),(()=>[!1,...Ke(as(e))])),Pt=e=>le(F)||le(je[e])?0:de(e?pe(F):F,((t,s)=>de(t,((t,n)=>de(t,((t,a)=>nt(je[e],[s,n,a],t))))))),Wt=e=>le(z)||le(Pe[e])?0:de(e?ye(z):z,((t,s)=>nt(Pe[e],[s],t))),Bt=(e,t,s)=>{if(!le(t))return nt(e,s,(()=>Re(t))),1},$t=e=>{const t=le(Ae[e]),s=le(ze[e])&&le(be[e])&&le(De[e])&&le(Je[e])&&t&&le(ee[e]),n=le(Oe[e])&&le(xe[e])&&le(ie[e])&&le(Z[e]);if(!s||!n){const a=e?[ye(c),Ce(u),ye(S),Ce(b),pe(V),pe(m)]:[c,u,S,b,V,m];if(!s){Bt(ee[e],a[0]),de(a[1],((t,s)=>Bt(be[e],t,[s]))),de(a[2],((t,s)=>{0!=t&&nt(De[e],[s],Yt(s))}));const s=ke();de(a[3],((n,a)=>{Bt(Je[e],n,[a])&&!t&&(nt(Ae[e],[a,null]),Me(s,a))})),t||de(a[5],((t,n)=>{if(!re(s,n)){const s=ke();de(t,(e=>de(e,(([t,n],a)=>n!==t?Me(s,a):ue(e,a))))),de(s,(t=>nt(Ae[e],[n,t])))}})),de(a[4],((t,s)=>de(t,((t,n)=>Bt(ze[e],t,[s,n])))))}if(!n){let t;de(a[5],((s,n)=>{let a;de(s,((s,o)=>{let r;de(s,(([s,l],i)=>{l!==s&&(nt(Oe[e],[n,o,i],l,s,Ot),t=a=r=1)})),r&&nt(xe[e],[n,o],Ot)})),a&&nt(ie[e],[n],Ot)})),t&&nt(Z[e],void 0,Ot)}}},qt=e=>{const t=le(Be[e]),s=le($e[e])&&le(We[e]);if(!t||!s){const n=e?[ye(E),ye(A)]:[E,A];if(t||Bt(Be[e],n[0]),!s){let t;de(n[1],(([s,n],a)=>{n!==s&&(nt($e[e],[a],n,s,jt),t=1)})),t&&nt(We[e],void 0,jt)}}},Gt=(e,...t)=>(ws((()=>e(...W(t,p)))),Rs),Ht=()=>[Re(m,((e,t)=>-1===fe(c,t)?null:Re(e,((e,s)=>-1===fe(fe(b,t),s)?null:Re(e,(([,e])=>e??null),((e,t)=>Ye(t)))),ae)),ae),Re(A,(([,e])=>e??null),((e,t)=>Ye(t)))],Kt=()=>({cellsTouched:s,valuesTouched:n,changedCells:Te(m,Xe,Ye),invalidCells:Te(F),changedValues:Re(A,Xe,Ye),invalidValues:Re(z),changedTableIds:Re(c),changedRowIds:ve(b),changedCellIds:Te(V),changedValueIds:Re(E)}),Ut=()=>Te(X),Xt=()=>ge(X),Yt=e=>oe(fe(X,p(e))),Zt=e=>ge(fe(X,p(e))),_t=(e,t,s,n=0,a)=>{return W(x(j((o=fe(X,p(e)),r=(e,s)=>[k(t)?s:fe(e,p(t)),s],W([...o?.entries()??[]],(([e,t])=>r(t,e)))),(([e],[t])=>Ne(e,t)*(s?-1:1))),n,k(a)?a:n+a),(([,e])=>e));var o,r},es=(e,t)=>ge(fe(fe(X,p(e)),p(t))),ts=(e,t,s)=>fe(fe(fe(X,p(e)),p(t)),p(s)),ss=()=>Re(Y),ns=()=>ge(Y),as=e=>fe(Y,p(e)),os=e=>Gt((()=>(e=>et(e,lt,zt))(e)?It(e):0)),rs=e=>Gt((()=>dt(e)?Ct(e):0)),ls=e=>{try{wt(_e(e))}catch{}return Rs},is=t=>Gt((()=>{if((e=et(t,(e=>et(e,rt))))&&(ft(t),!le(X))){const e=Ut();ds(),os(e)}})),cs=e=>Gt((()=>{if(t=(e=>et(e,rt))(e)){const s=ss();Ls(),gs(),t=!0,Lt(e),rs(s)}})),ds=()=>Gt((()=>It({}))),us=e=>Gt((e=>re(X,e)?mt(e):0),e),hs=(e,t)=>Gt(((e,t)=>M(fe(X,e),(s=>re(s,t)?Et(e,s,t):0))),e,t),gs=()=>Gt((()=>Ct({}))),fs=()=>Gt((()=>{ft({}),e=!1})),Ls=()=>Gt((()=>{Lt({}),t=!1})),ws=(e,t)=>{if(-1!=o){Is();const s=e();return Ss(t),s}},Is=()=>(-1!=o&&o++,1==o&&nt(qe,void 0,Ht,Kt),Rs),Ss=e=>(o>0&&(o--,0==o&&(s=!le(m),n=!le(A),o=1,Pt(1),s&&$t(1),Wt(1),n&&qt(1),e?.(Ht,Kt)&&(de(m,((e,t)=>de(e,((e,s)=>de(e,(([e],n)=>me(Rs,t,s,n,e))))))),de(A,(([e],t)=>Ee(Rs,t,e))),s=n=!1),nt(Ge[0],void 0,Ht,Kt),o=-1,Pt(0),s&&$t(0),Wt(0),n&&qt(0),nt(Ge[1],void 0,Ht,Kt),o=0,s=n=!1,P([c,u,S,b,V,m,F,E,A,z],ce))),Rs),Rs={getContent:()=>[Ut(),ss()],getTables:Ut,getTableIds:Xt,getTable:e=>ve(fe(X,p(e))),getTableCellIds:e=>ge(fe(U,p(e))),getRowCount:Yt,getRowIds:Zt,getSortedRowIds:_t,getRow:(e,t)=>Re(fe(fe(X,p(e)),p(t))),getCellIds:es,getCell:ts,getValues:ss,getValueIds:ns,getValue:as,hasTables:()=>!le(X),hasTable:e=>re(X,p(e)),hasTableCell:(e,t)=>re(fe(U,p(e)),p(t)),hasRow:(e,t)=>re(fe(X,p(e)),p(t)),hasCell:(e,t,s)=>re(fe(fe(X,p(e)),p(t)),p(s)),hasValues:()=>!le(Y),hasValue:e=>re(Y,p(e)),getTablesJson:()=>Ze(X),getValuesJson:()=>Ze(Y),getJson:()=>Ze([X,Y]),getTablesSchemaJson:()=>Ze(O),getValuesSchemaJson:()=>Ze($),getSchemaJson:()=>Ze([O,$]),hasTablesSchema:()=>e,hasValuesSchema:()=>t,setContent:([e,t])=>Gt((()=>{(ae(e)?ds:os)(e),(ae(t)?gs:rs)(t)})),setTables:os,setTable:(e,t)=>Gt((e=>lt(t,e)?St(e,t):0),e),setRow:(e,t,s)=>Gt(((e,t)=>it(e,t,s)?Rt(e,Vt(e),t,s):0),e,t),addRow:(e,t,s=!0)=>ws((()=>{let n;return it(e,n,t)&&(e=p(e),Rt(e,Vt(e),n=bt(e,s?1:0),t)),n})),setPartialRow:(e,t,s)=>Gt(((e,t)=>{if(it(e,t,s,1)){const n=Vt(e);ne(s,((s,a)=>Tt(e,n,t,a,s)))}}),e,t),setCell:(e,t,s,n)=>Gt(((e,t,s)=>M(ct(e,t,s,J(n)?n(ts(e,t,s)):n),(n=>Tt(e,Vt(e),t,s,n)))),e,t,s),setValues:rs,setPartialValues:e=>Gt((()=>dt(e,1)?ne(e,((e,t)=>pt(t,e))):0)),setValue:(e,t)=>Gt((e=>M(ut(e,J(t)?t(as(e)):t),(t=>pt(e,t)))),e),setTransactionChanges:e=>Gt((()=>{ne(e[0],((e,t)=>k(e)?us(t):ne(e,((e,s)=>k(e)?hs(t,s):ne(e,((e,n)=>me(Rs,t,s,n,e))))))),ne(e[1],((e,t)=>Ee(Rs,t,e)))})),setTablesJson:ls,setValuesJson:e=>{try{yt(_e(e))}catch{}return Rs},setJson:e=>Gt((()=>{try{const[t,s]=_e(e);wt(t),yt(s)}catch{ls(e)}})),setTablesSchema:is,setValuesSchema:cs,setSchema:(e,t)=>Gt((()=>{is(e),cs(t)})),delTables:ds,delTable:us,delRow:hs,delCell:(e,t,s,n)=>Gt(((e,t,s)=>M(fe(X,e),(a=>M(fe(a,t),(o=>re(o,s)?kt(e,a,t,o,s,n):0))))),e,t,s),delValues:gs,delValue:e=>Gt((e=>re(Y,e)?Mt(e):0),e),delTablesSchema:fs,delValuesSchema:Ls,delSchema:()=>Gt((()=>{fs(),Ls()})),transaction:ws,startTransaction:Is,finishTransaction:Ss,forEachTable:e=>de(X,((t,s)=>e(s,(e=>de(t,((t,s)=>e(s,(e=>Le(t,e))))))))),forEachTableCell:(e,t)=>Le(fe(U,p(e)),t),forEachRow:(e,t)=>de(fe(X,p(e)),((e,s)=>t(s,(t=>Le(e,t))))),forEachCell:(e,t,s)=>Le(fe(fe(X,p(e)),p(t)),s),forEachValue:e=>Le(Y,e),addSortedRowIdsListener:(e,t,s,n,a,o,r)=>{let l=_t(e,t,s,n,a);return He((()=>{const r=_t(e,t,s,n,a);N(r,l)||(l=r,o(Rs,e,t,s,n,a,l))}),Ae[r?1:0],[e,t],[Xt])},addStartTransactionListener:e=>He(e,qe),addWillFinishTransactionListener:e=>He(e,Ge[0]),addDidFinishTransactionListener:e=>He(e,Ge[1]),callListener:e=>(ot(e),Rs),delListener:e=>(at(e),Rs),getListenerStats:()=>({}),createStore:st,addListener:He,callListeners:nt};return ne({[g]:[0,Z],[f]:[0,ee],[h]:[1,ie,[Xt]],[h+v]:[1,be,[Xt]],[w]:[1,De,[Xt]],[I]:[1,Je,[Xt]],[L]:[2,xe,[Xt,Zt]],[v]:[2,ze,[Xt,Zt]],[R]:[3,Oe,[Xt,Zt,es],e=>Ke(ts(...e))],InvalidCell:[3,je],[y]:[0,We],[C]:[0,Be],[T]:[1,$e,[ns],e=>Ke(as(e[0]))],InvalidValue:[1,Pe]},(([e,t,s,n],a)=>{Rs[d+a+i]=(...a)=>He(a[e],t[a[e+1]?1:0],e>0?x(a,0,e):void 0,s,n)})),_(Rs)};export{ze as createCheckpoints,qe as createCustomPersister,Oe as createIndexes,We as createMetrics,Ge as createQueries,He as createRelationships,st as createStore,Ne as defaultSorter};
|
package/lib/tinybase.js.gz
CHANGED
|
Binary file
|
package/lib/tools.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=e=>typeof e,t="tinybase",l="",a=",",n=e(l),o=e(!0),d=e(0),s="type",r="default",I="Listener",c="get",$="add",u="Ids",i="Table",p=i+"s",b=i+u,C="Row",h=C+u,m="Sorted"+C+u,g="Cell",f=g+u,w="Value",y=w+"s",T=w+u,v=Promise,V=isFinite,x=(e,t)=>e instanceof t,R=e=>null==e,k=e=>e==n||e==o,S=t=>e(t)==n,P=e=>Array.isArray(e),A=async e=>v.all(e),E=t=>{const l=e(t);return k(l)||l==d&&V(t)?l:void 0},D=(e,t)=>e.every(t),O=(e,t)=>e.sort(t),N=(e,t)=>e.forEach(t),G=(e,t=l)=>e.join(t),L=(e,t)=>e.map(t),j=e=>e.length,M=(e,t)=>e.filter(t),J=(e,...t)=>e.push(...t),z=e=>e.pop(),W=(e,...t)=>e.unshift(...t),B=e=>e.shift(),F=Object,U=F.keys,_=F.freeze,Z=e=>x(e,F)&&e.constructor==F,H=(e,t)=>L(F.entries(e),(([e,l])=>t(l,e))),Q=e=>j(U(e)),q=e=>Z(e)&&0==Q(e),K=(e,t)=>e?.has(t)??!1,X=e=>[...e?.values()??[]],Y=(e,t)=>e?.forEach(t),ee=(e,t)=>e?.delete(t),te=e=>new Map(e),le=(e,t)=>e?.get(t),ae=(e,t)=>Y(e,((e,l)=>t(l,e))),ne=(e,t)=>L([...e?.entries()??[]],(([e,l])=>t(l,e))),oe=(e,t,l)=>R(l)?(ee(e,t),e):e?.set(t,l),de=(e,t,l)=>(K(e,t)||oe(e,t,l()),le(e,t)),se=e=>e.toUpperCase(),re=e=>e.toLowerCase(),Ie="a ",ce="A function for",$e=", and registers a listener so that any changes to that result will cause a re-render",ue="Callback",ie="Del",pe="Deps",be=pe+"?: React.DependencyList",Ce="doRollback?: DoRollback",he="actions: () => Return, "+Ce,me="export",ge="Id",fe="Invalid",we="Json",ye=re(I),Te="?: ",ve=" | undefined",Ve="NonNullable",xe="Partial",Re="Props",ke="Provider",Se=`Registers a ${ye} that will be called`,Pe="Represents",Ae="rowId: "+ge,Ee="Schema",De="Set",Oe=", descending?: boolean, offset?: number, limit?: number",Ne="[]",Ge="the Store",Le="Transaction",je=Le+"Changes",Me=re(Le),Je="Execute a "+Me+" to make multiple mutations",ze="Explicitly starts a "+Me,We="Explicitly finishes a "+Me,Be="the end of the "+Me,Fe="void",Ue=" => "+Fe,_e="WhenSet",Ze=" when setting it",He=Ie+"string serialization of",Qe=" ",qe="Gets a callback that can ",Ke="the ",Xe=" the schema for",Ye=(e=0,t=0)=>`the ${ht[e]}content of`+(t?Qe+Ge:l),et=(e=0,t,a=0)=>pt[t]+Qe+Ye(e,1)+(a?" when setting it":l),tt=(e,t=0)=>Pe+` a Row when ${t?"s":"g"}etting ${Ye()} the '${e}' `+i,lt=(e,t,l=0)=>`Gets ${l?"sorted, paginated":"the"} Ids of the ${e}s in `+t,at=(e,t)=>`Calls a function for each ${e} in `+t,nt=e=>"The props passed to a component that renders "+e,ot=e=>"A function that takes "+e,dt=(e,t=0)=>ce+" listening to changes to "+Ct[e]+" in "+Ct[t],st=(e,t,a=0)=>Se+" whenever "+Ct[e]+" in "+Ct[t]+" change"+(a?l:"s"),rt=e=>`the '${e}' `+i,It=e=>"the specified Row in "+rt(e),ct=(e,t=0)=>pt[t]+` ${Ye()} `+rt(e),$t=(e,t=0)=>pt[t]+` ${Ye()} `+It(e),ut=(e,t,l=0)=>pt[l]+` the '${t}' Cell for `+It(e),it=(e,t=0)=>pt[t]+` the '${e}' Value`,pt=["Gets","Checks existence of","Sets","Deletes","Sets part of",Pe,"Gets "+He,"Sets "+He,Se+" whenever",qe+"set",qe+"add",qe+"set part of",qe+"delete","Renders","Gets "+He+Xe,"Sets"+Xe,"Deletes"+Xe],bt=[c,"has","set","del","set","forEach",$,l],Ct=[Ge,p,Ke+i+Qe+u,Ie+i,Ke+C+Qe+u,Ie+C,Ke+g+Qe+u,Ie+g,"invalid Cell changes",y,Ke+w+Qe+u,Ie+w,"invalid Value changes",Ke+"sorted "+C+Qe+u,Ke+g+Qe+u+" anywhere",Ke+"number of Rows"],ht=[l,"tabular ","keyed value "],mt=e=>new Set(P(e)||R(e)?e:[e]),gt=(e,t)=>e?.add(t),ft=/[^A-Za-z]+/,wt=/[^A-Za-z0-9]+/,yt=/^( *)\/\*\* *(.*?) *\*\/$/gm,Tt=(e,t,l)=>e.substring(t,l),vt=e=>e.includes(a),Vt=(e,t,l,a=1)=>{const n=`${t}${1==a?"":a}`;return K(e,n)?Vt(e,t,l,a+1):(oe(e,n,l),n)},xt=e=>e.replace(yt,((e,t,l)=>{const a=77-Rt(t);return`${t}/**\n${l.replace(RegExp(`([^\\n]{1,${a}})(\\s|$)`,"g"),t+" * $1\n")}${t} */`})),Rt=e=>e.length,kt=e=>e.flat(1e3),St=(e,t=0)=>G(L(e.split(wt),((e,l)=>(l>0||t?se:re)(Tt(e,0,1))+Tt(e,1)))),Pt=e=>se(G((e&&!ft.test(e[0])?e:" "+e).split(wt),"_")),At=e=>`/** ${e}. */`,Et=(...e)=>G(M(e,(e=>e)),", "),Dt=(...e)=>"{"+G(e,"; ")+"}",Ot=(...e)=>Dt(...L(e,(e=>"readonly "+e))),Nt=()=>{const e=[te(),te(),te(),te()],t=te(),a=te(),n=e=>{const t=e.indexOf(" as ");return-1!=t?e.substring(t+4):e};return[(...e)=>G(kt(e),"\n"),(t,l,...a)=>N(a,(a=>N([0,1],(n=>(t??n)==n?gt(de(e[n],l,mt),a):0)))),(e,a,n,o=l,d=1)=>Vt(t,e,[a,n,o,d]),(e,t,l)=>Vt(a,e,P(l)?[`(${t}) => {`,l,"}"]:[`(${t}) => ${l}`]),(e,t)=>le(a,e)===t?e:Vt(a,e,t),(t=0)=>L([...O(ne(e[t],((e,t)=>`import {${G(O(X(e),((e,t)=>n(e)>n(t)?1:-1)),", ")}} from '${t}';`)),((e,t)=>vt(e)!=vt(t)?vt(e)?-1:1:e>t?1:-1)),l],(e=>e.replace("{React}","React"))),()=>ne(t,(([e,t,a,n],o)=>[At(t),`${n?me+" ":l}type ${o}${a} = ${e};`,l])),()=>ne(a,((e,t)=>(e=P(e)?e:[e],J(e,z(e)+";"),[`const ${t} = ${B(e)}`,e,l])))]},Gt=e=>{const t=new WeakMap;return l=>(t.has(l)||t.set(l,e(l)),t.get(l))},Lt=(e,t,l)=>[t=>H(e,((e,a)=>t(a,St(a,1),l(Pt(a),`'${a}'`)))),(t,a)=>H(e[t],((e,t)=>a(t,e[s],e[r],l(Pt(t),`'${t}'`),St(t,1)))),e=>H(t,((t,a)=>e(a,t[s],t[r],l(Pt(a),`'${a}'`),St(a,1))))],jt=(e,t,a,n)=>[(n,o)=>{const d=n+": "+o,s=e(p,Dt(...t((e=>`'${e}'?: {[rowId: Id]: `+Dt(...a(e,((e,t,a)=>`'${e}'${R(a)?"?":l}: ${t}`)))+"}"))),et(1,5)),r=e(p+_e,Dt(...t((e=>`'${e}'?: {[rowId: Id]: `+Dt(...a(e,((e,t)=>`'${e}'?: ${t}`)))+"}"))),et(1,5,1)),c=e(i+ge,"keyof "+s,"A "+i+" Id in "+Ge),$=`<TId extends ${c}>`,u=e(i,Ve+`<${s}[TId]>`,"A "+i+" in "+Ge,$),w=e(i+_e,Ve+`<${r}[TId]>`,"A "+i+" in "+Ge+Ze,$),y=e(C,u+"<TId>[Id]","A "+C+" in a "+i,$),T=e(C+_e,w+"<TId>[Id]","A "+C+" in a "+i+Ze,$),v=e(g+ge,`Extract<keyof ${y}<TId>, Id>`,"A "+g+" Id in a "+C,$),V=e(g,Ve+`<${s}[TId]>[Id][CId]`,"A "+g+" in a "+C,`<TId extends ${c}, CId extends ${v}<TId>>`),x=e("CellIdCellArray",`CId extends ${v}<TId> ? [cellId: CId, cell: ${V}<TId, CId>] : never`,g+" Ids and types in a "+C,`<TId extends ${c}, CId = ${v}<TId>>`,0),k=e(g+ue,`(...[cellId, cell]: ${x}<TId>)`+Ue,ot(Ie+g+" Id, and "+g),$),S=e(C+ue,"(rowId: Id, forEachCell: (cellCallback: CellCallback<TId>) "+Ue+") "+Ue,ot(Ie+C+" Id, and a "+g+" iterator"),$),P=e(i+g+ue,`(cellId: ${v}<TId>, count: number) `+Ue,ot(Ie+g+" Id, and count of how many times it appears"),$),A=e("TableIdForEachRowArray",`TId extends ${c} ? [tableId: TId, forEachRow: (rowCallback: ${S}<TId>)${Ue}] : never`,i+" Ids and callback types",`<TId = ${c}>`,0),E=e(i+ue,`(...[tableId, forEachRow]: ${A})`+Ue,ot(Ie+i+" Id, and a "+C+" iterator"),l),D=e("TableIdRowIdCellIdArray",`TId extends ${c} ? [tableId: TId, rowId: Id, cellId: ${v}<TId>] : never`,"Ids for GetCellChange",`<TId = ${c}>`,0),O=e("GetCellChange",`(...[tableId, rowId, cellId]: ${D}) => CellChange`,ce+" returning information about any Cell's changes during a "+Me),N=e(p+I,`(${d}, getCellChange: ${O}${ve})`+Ue,dt(1)),G=e(b+I,`(${d})`+Ue,dt(2)),L=e(i+I,`(${d}, tableId: ${c}, getCellChange: ${O}${ve})`+Ue,dt(3)),j=e(i+f+I,`(${d}, tableId: ${c})`+Ue,dt(14,3)),M=e(C+"Count"+I,`(${d}, tableId: ${c})`+Ue,dt(15,3)),J=e(h+I,`(${d}, tableId: ${c})`+Ue,dt(4,3)),z=e(m+I,"("+Et(d,"tableId: "+c,"cellId: Id"+ve,"descending: boolean","offset: number","limit: number"+ve,"sortedRowIds: Ids")+")"+Ue,dt(13,3)),W=e(C+I,"("+Et(""+d,"tableId: "+c,Ae,`getCellChange: ${O}${ve}`)+")"+Ue,dt(5,3)),B=e(f+I,"("+Et(""+d,"tableId: "+c,Ae)+")"+Ue,dt(6,5)),F=e("CellListenerArgsArrayInner",`CId extends ${v}<TId> ? [${d}, tableId: TId, ${Ae}, cellId: CId, newCell: ${V}<TId, CId> ${ve}, oldCell: ${V}<TId, CId> ${ve}, getCellChange: ${O} ${ve}] : never`,"Cell args for CellListener",`<TId extends ${c}, CId = ${v}<TId>>`,0),U=e("CellListenerArgsArrayOuter",`TId extends ${c} ? `+F+"<TId> : never","Table args for CellListener",`<TId = ${c}>`,0);return[s,r,c,u,w,y,T,v,V,k,S,P,E,N,G,L,j,M,J,z,W,B,e(g+I,`(...[${n}, tableId, rowId, cellId, newCell, oldCell, getCellChange]: ${U})`+Ue,dt(7,5)),e(fe+g+I,`(${d}, tableId: Id, ${Ae}, cellId: Id, invalidCells: any[])`+Ue,dt(8))]},(t,a)=>{const o=t+": "+a,d=e(y,Dt(...n(((e,t,a)=>`'${e}'${R(a)?"?":l}: ${t}`))),et(2,5)),s=e(y+_e,Dt(...n(((e,t)=>`'${e}'?: ${t}`))),et(2,5,1)),r=e(w+ge,"keyof "+d,"A "+w+" Id in "+Ge),c=e(w,Ve+`<${d}[VId]>`,"A "+w+" Id in "+Ge,`<VId extends ${r}>`),$=e("ValueIdValueArray",`VId extends ${r} ? [valueId: VId, value: ${c}<VId>] : never`,w+" Ids and types in "+Ge,`<VId = ${r}>`,0),u=e(w+ue,`(...[valueId, value]: ${$})`+Ue,ot(Ie+w+" Id, and "+w)),i=e("GetValueChange",`(valueId: ${r}) => ValueChange`,ce+" returning information about any Value's changes during a "+Me),p=e(y+I,`(${o}, getValueChange: ${i}${ve})`+Ue,dt(9)),b=e(T+I,`(${o})`+Ue,dt(10)),C=e("ValueListenerArgsArray",`VId extends ${r} ? [${o}, valueId: VId, newValue: ${c}<VId> ${ve}, oldValue: ${c}<VId> ${ve}, getValueChange: ${i} ${ve}] : never`,"Value args for ValueListener",`<VId = ${r}>`,0);return[d,s,r,c,u,p,b,e(w+I,`(...[${t}, valueId, newValue, oldValue, getValueChange]: `+C+")"+Ue,dt(11)),e(fe+w+I,`(${o}, valueId: Id, invalidValues: any[])`+Ue,dt(12))]},(t,l)=>e(Le+I,`(${t}: ${l}, getTransactionChanges: GetTransactionChanges, getTransactionLog: GetTransactionLog)`+Ue,ce+" listening to the completion of a "+Me)],Mt=(e,t=l,a=l)=>`store.${e}(${t})`+(a?" as "+a:l),Jt=(e,t=l)=>`fluent(() => ${Mt(e,t)})`,zt=(e,t=l,a=l)=>`store.${e}(${t?t+", ":l}proxy(listener)${a?", "+a:l})`,Wt=(e,a,n)=>{const[d,c,v,V,x,k,P,A]=Nt(),[E,D,O]=Lt(e,a,x),[L,j,M]=jt(v,E,D,O),z=te(),B=(e=0)=>ne(z,(([t,a,n,o,d],s)=>{const r=e?[s+`: ${d}(${t}): ${a} => ${n},`]:[s+d+`(${t}): ${a};`];return e||W(r,At(o)),J(r,l),r})),F=(e,t,a,n,o,d=l)=>Vt(z,e,[t,a,n,o,d]),U=(e,t,a,n,o,d=l,s=l,r=l)=>F(bt[e]+t+(4==e?xe:l)+a,d,n,(n==H?Jt:Mt)(bt[e]+(4==e?xe:l)+a,s,e?void 0:n),o,r),_=(e,t,a,n=l,o=l,d=1,s=l)=>F($+e+I,(n?n+", ":l)+ye+": "+t+(d?", mutator?: boolean":l),ge,zt($+e+I,o,d?"mutator":l),a,s),Z=`./${St(n)}.d`,H=St(n,1),Q=St(H),K=[],Y=te();let ee=[],de=[];if(c(1,Z,H,`create${H} as create${H}Decl`),q(e))c(null,t,p);else{c(0,t,"CellChange"),c(null,t,u);const[e,a,n,d,I,$,w,y,T,V,k,P,A,O,j,M,z,W,B,F,q,ae,ne,de]=L(Q,H),se=te();E(((e,t)=>{const l=`<'${e}'>`,a=[v(t+i,d+l,Pe+` the '${e}' `+i),v(t+i+_e,I+l,Pe+` the '${e}' `+i+Ze),v(t+C,$+l,tt(e)),v(t+C+_e,w+l,tt(e,1)),v(t+g+ge,y+l,`A Cell Id for the '${e}' `+i),v(t+g+ue,V+l,ot(`a Cell Id and value from a Row in the '${e}' `+i)),v(t+C+ue,k+l,ot(`a Row Id from the '${e}' Table, and a Cell iterator`)),v(t+i+g+ue,P+l,ot(`a Cell Id from anywhere in the '${e}' Table, and a count of how many times it appears`))];oe(se,e,a),c(1,Z,...a)})),c(1,Z,e,a,n,y,A,O,j,M,z,W,B,F,q,ae,ne,de),ee=[e,a,n,y,O,j,M,z,W,B,F,q,ae,ne,se],N([[e],[o],[H,"tables: "+a,"tables"],[H]],(([e,t,a],n)=>U(n,l,p,e,et(1,n),t,a))),U(0,l,b,n+Ne,lt(i,Ge)),U(5,l,i,Fe,at(i,Ge),"tableCallback: "+A,"tableCallback as any"),E(((e,t,a)=>{const[n,d,s,r,I,c,$,p]=le(se,e);N([[n],[o],[H,"table: "+d,", table"],[H]],(([n,o,d=l],s)=>U(s,t,i,n,ct(e,s),o,a+d))),U(0,t,i+f,u,lt(g,"the whole of "+rt(e)),l,a),U(5,t,i+g,Fe,at(i+g,"the whole of "+rt(e)),"tableCellCallback: "+p,a+", tableCellCallback as any"),U(0,t,C+"Count","number","Gets the number of Rows in the "+rt(e),l,a),U(0,t,h,u,lt(C,rt(e)),l,a),U(0,t,m,u,lt(C,rt(e),1),"cellId?: "+I+Oe,a+", cellId, descending, offset, limit"),U(5,t,C,Fe,at(C,rt(e)),"rowCallback: "+$,a+", rowCallback as any"),N([[s],[o],[H,", row: "+r,", row"],[H],[H,", partialRow: "+r,", partialRow"]],(([n,o=l,d=l],s)=>U(s,t,C,n,$t(e,s),Ae+o,a+", rowId"+d))),U(6,t,C,ge+ve,"Add a new Row to "+rt(e),"row: "+r+", reuseIds?: boolean",a+", row, reuseIds"),U(0,t,f,I+Ne,lt(g,It(e)),Ae,a+", rowId"),U(5,t,g,Fe,at(g,It(e)),Ae+", cellCallback: "+c,a+", rowId, cellCallback as any"),D(e,((n,d,s,r,I)=>{const c="Map"+St(d,1);oe(Y,d,c);const $=d+(R(s)?ve:l);N([[$],[o],[H,`, cell: ${d} | `+c,", cell as any"],[H]],(([o,d=l,s=l],c)=>U(c,t+I,g,o,ut(e,n,c),Ae+d,a+", rowId, "+r+s))),U(1,t+I,i+g,o,pt[1]+` the '${n}' Cell anywhere in `+rt(e),l,a+", "+r)}))})),U(0,l,p+we,we,et(1,6)),U(2,l,p+we,H,et(1,7),"tablesJson: "+we,"tables"+we),_(p,O,et(1,8)+" changes"),_(b,j,st(2,0,1)),_(i,M,st(3,0),`tableId: ${n} | null`,"tableId"),_(i+f,z,st(14,3,1),`tableId: ${n} | null`,"tableId"),_(C+"Count",W,st(15,3),`tableId: ${n} | null`,"tableId"),_(h,B,st(4,3,1),`tableId: ${n} | null`,"tableId"),_(m,F,st(13,3,1),Et("tableId: TId",`cellId: ${y}<TId>`+ve,"descending: boolean","offset: number","limit: number"+ve),Et("tableId","cellId","descending","offset","limit"),1,"<TId extends TableId>"),_(C,q,st(5,3),`tableId: ${n} | null, rowId: IdOrNull`,"tableId, rowId"),_(f,ae,st(6,5,1),`tableId: ${n} | null, rowId: IdOrNull`,"tableId, rowId"),_(g,ne,st(7,5),`tableId: ${n} | null, rowId: IdOrNull, cellId: ${G(E((e=>le(se,e)?.[4]??l))," | ")} | null`,"tableId, rowId, cellId"),_(fe+g,de,Se+" whenever an invalid Cell change was attempted","tableId: IdOrNull, rowId: IdOrNull, cellId: IdOrNull","tableId, rowId, cellId"),c(1,Z,...X(Y)),J(K,".set"+p+Ee+"({",kt(E(((e,t,a)=>[`[${a}]: {`,...D(e,((e,t,a,n)=>`[${n}]: {[${x(Pt(s),`'${s}'`)}]: ${x(Pt(t),`'${t}'`)}${R(a)?l:`, [${x(Pt(r),`'${r}'`)}]: `+(S(a)?x(Pt(a),`'${a}'`):a)}},`)),"},"]))),"})")}if(q(a))c(null,t,y);else{const[e,a,n,d,I,$,u,i,p]=j(Q,H);c(1,Z,e,a,n,I,$,u,i,p),de=[e,a,n,$,u,i],N([[e],[o],[H,"values: "+a,"values"],[H],[H,"partialValues: "+a,"partialValues"]],(([e,t,a],n)=>U(n,l,y,e,et(2,n),t,a))),U(0,l,T,n+Ne,lt(w,Ge)),U(5,l,w,"void",at(w,Ge),"valueCallback: "+I,"valueCallback as any"),O(((e,t,a,n,d)=>{const s="Map"+St(t,1);oe(Y,t,s),N([[t],[o],[H,`value: ${t} | `+s,", value as any"],[H]],(([t,a,o=l],s)=>U(s,d,w,t,it(e,s),a,n+o)))})),U(0,l,y+we,we,et(2,6)),U(2,l,y+we,H,et(2,7),"valuesJson: "+we,"values"+we),_(y,$,et(2,8)+" changes"),_(T,u,st(10,0,1)),_(w,i,st(11,0),`valueId: ${n} | null`,"valueId"),_(fe+w,p,Se+" whenever an invalid Value change was attempted","valueId: IdOrNull","valueId"),c(1,Z,...X(Y)),c(0,t,"ValueChange"),J(K,".set"+y+Ee+"({",O(((e,t,a,n)=>[`[${n}]: {[${x(Pt(s),`'${s}'`)}]: ${x(Pt(t),`'${t}'`)}${R(a)?l:`, [${x(Pt(r),`'${r}'`)}]: `+(S(a)?x(Pt(a),`'${a}'`):a)}},`])),"})")}U(0,l,"Content",`[${p}, ${y}]`,et(0,0)),U(2,l,"Content",H,et(0,2),`[tables, values]: [${p}, ${y}]`,"[tables, values]"),U(2,l,je,H,`Applies a set of ${je} to the Store`,"transactionChanges: "+je,"transactionChanges"),ae(Y,((e,t)=>v(t,`(cell: ${e}${ve}) => `+e,`Takes a ${e} Cell value and returns another`))),c(null,t,"DoRollback",ge,"IdOrNull",we,"Store",je),c(0,t,"Get"+je,"GetTransactionLog"),U(0,l,we,we,et(0,6)),U(2,l,we,H,et(0,7),"tablesAndValuesJson: "+we,"tablesAndValuesJson"),U(7,l,Me,"Return",Je,he,"actions, doRollback","<Return>"),U(7,l,"start"+Le,H,ze),U(7,l,"finish"+Le,H,We,Ce,"doRollback");const se=M(Q,H);return _("Start"+Le,se,Se+" just before the start of the "+Me,l,l,0),_("WillFinish"+Le,se,Se+" just before "+Be,l,l,0),_("DidFinish"+Le,se,Se+" just after "+Be,l,l,0),U(7,l,"call"+I,H,"Manually provoke a listener to be called","listenerId: Id","listenerId"),U(3,l,I,H,"Remove a listener that was previously added to "+Ge,"listenerId: Id","listenerId"),F("getStore",l,"Store","store",pt[0]+" the underlying Store object"),c(1,t,"createStore"),c(1,Z,H,`create${H} as create${H}Decl`,se),x("store",["createStore()",...K]),V("fluent","actions: () => Store",["actions();",`return ${Q};`]),V("proxy","listener: any",`(_: Store, ...params: any[]) => listener(${Q}, ...params)`),x(Q,["{",...B(1),"}"]),[d(...k(0),...P(),me+" interface "+H+" {",...B(0),"}",l,At(`Creates a ${H} object`),me+" function create"+H+"(): "+H+";"),d(...k(1),me+" const create"+H+": typeof create"+H+"Decl = () => {",...A(),`return Object.freeze(${Q});`,"};"),ee,de]},Bt=e=>c+e,Ft=e=>Et(Bt(e),Bt(e)+pe),Ut="debugIds?: boolean",_t="debugIds={debugIds}",Zt="then"+be,Ht="Parameter",Qt=": (parameter: "+Ht+", store: Store) => ",qt="const contextValue = useContext(Context);",Kt=", based on a parameter",Xt=": ",Yt="<"+Ht+",>",el=Ht+"ized"+ue+"<"+Ht+">",tl="rowId",ll="rowId={rowId}",al=", separator, debugIds",nl="separator?: ReactElement | string",ol="then?: (store: Store",dl=Et(ol+")"+Ue,Zt),sl="then, then"+pe,rl=tl+Xt+ge,Il="View",cl=(e,...t)=>Et(...t,ye+": "+e,ye+be,"mutator?: boolean"),$l=(...e)=>Et(...e,ye,ye+pe,"mutator"),ul=(e,a,n,o,d)=>{const[s,r,c,$,v,V,x,k]=Nt(),[S,P,A]=Lt(e,a,v),E=`./${St(n)}.d`,D=`./${St(n)}-ui-react.d`,O="tinybase/ui-react",N=St(n,1),L=St(N),j=N+"Or"+N+ge,M=L+"Or"+N+ge,z=L+`={${L}}`,B=te(),F=(e,t,a,n,o,d=l)=>(r(1,D,e+" as "+e+"Decl"),Vt(B,e,[t,a,n,o,d])),U=(e,t,a,n,o,d=l)=>F("use"+e,t,a,n,o,d),_=(e,t,a,n,o=l,d=l,s=l,I=l,c=l)=>(r(1,O,`use${t} as use${t}Core`),U(e,Et(o,X,I),a,ee+`(${M}, use${t}Core, [`+(d||l)+(c?"], ["+c:l)+"]);",n,s)),Z=(e,t,l,a)=>F(e,t,1,l,a),H=(e=0)=>ne(B,(([t,a,n,o,d],s)=>{const r=e?[me+` const ${s}: typeof ${s}Decl = ${d}(${t}): ${1==a?"any":a} =>`,n]:[me+` function ${s}${d}(${t}): ${1==a?"ComponentReturnType":a};`];return e||W(r,At(o)),J(r,l),r}));r(null,t,ge,"Store",ue,Ht+"ized"+ue),r(0,O,"ComponentReturnType"),r(1,O,"useCellIds"),r(null,O,"ExtraProps"),r(0,E,N);const Q=c(j,N+" | "+ge,`Used when you need to refer to a ${N} in a React hook or component`),K=c(ke+Re,Ot(L+Te+N,L+`ById?: {[${L}Id: Id]: ${N}}`),`Used with the ${ke} component, so that a `+N+" can be passed into the context of an application");r(0,"react","ReactElement","ComponentType"),r(1,"react","React"),r(1,D,Q,K);const X=M+Te+Q;v("{createContext, useContext, useMemo}","React"),v("Context",`createContext<[${N}?, {[${L}Id: Id]: ${N}}?]>([])`),U("Create"+N,`create: () => ${N}, create`+be,N,"\n// eslint-disable-next-line react-hooks/exhaustive-deps\nuseMemo(create, createDeps)",`Create a ${N} within a React application with convenient memoization`);const Y=U(N,"id?: Id",N+ve,["{",qt,"return id == null ? contextValue[0] : contextValue[1]?.[id];","}"],`Get a reference to a ${N} from within a ${ke} component context`),ee=$("useHook",M+`: ${Q} | undefined, hook: (...params: any[]) => any, preParams: any[], postParams: any[] = []`,[`const ${L} = ${Y}(${M} as Id);`,`return hook(...preParams, ((${M} == null || typeof ${M} == 'string')`,`? ${L} : ${M})?.getStore(), ...postParams)`]),ae=$("getProps","getProps: ((id: any) => ExtraProps) | undefined, id: Id","(getProps == null) ? ({} as ExtraProps) : getProps(id)"),oe=$("wrap",Et("children: any","separator?: any","encloseWithId?: boolean","id?: Id"),["const separated = separator==null || !Array.isArray(children)"," ? children"," : children.map((child, c) => (c > 0 ? [separator, child] : child));","return encloseWithId ? [id, ':{', separated, '}'] : separated;"]),de=$("useCustomOrDefaultCellIds",Et("customCellIds: Ids | undefined","tableId: Id","rowId: Id",`${M}?: ${Q} | undefined`),[`const defaultCellIds = ${ee}(${M}, useCellIds, [tableId, rowId]);`,"return customCellIds ?? defaultCellIds;"]),se=v("NullComponent","() => null");if(!q(e)){const[e,a,n,d,s,w,y,T,v,V,x,k,A,O,j]=o;r(null,E,e,a,n,s,w,y,T,v,V,x,k,A,O),r(0,E,d),r(1,E,N),r(null,t,u,"IdOrNull");const M=$("tableView",`{${L}, rowComponent, getRowComponentProps, customCellIds`+al+"}: any, rowIds: Ids, tableId: Id, defaultRowComponent: React.ComponentType<any>",["const Row = rowComponent ?? defaultRowComponent;",`return ${oe}(rowIds.map((rowId) => (`,"<Row","{..."+ae+"(getRowComponentProps, rowId)}","key={rowId}","tableId={tableId}",ll,"customCellIds={customCellIds}",z,_t,"/>","))",al,", tableId,",");"]),J=$("getDefaultTableComponent","tableId: Id",G(S(((e,t,l)=>`tableId == ${l} ? ${t}TableView : `)))+se),W=$("getDefaultCellComponent","tableId: Id, cellId: Id",G(S(((e,t,l)=>`tableId == ${l} ? ${G(P(e,((e,l,a,n,o)=>`cellId == ${n} ? `+t+o+"CellView : ")))+se} : `)))+se);_(p,p,e,et(1,0)+$e);const B=_(b,b,n+Ne,lt(i,Ge)+$e);_(De+p+ue,De+p+ue,el,et(1,9)+Kt,Et(Bt(p)+Qt+a,Bt(p)+be),Ft(p),Yt,Et(ol,`tables: ${a})`+Ue,Zt),sl),_(ie+p+ue,ie+p+ue,ue,et(1,12),l,l,l,dl,sl);const F=c(g+Re,Ot("tableId?: TId","rowId: Id","cellId?: CId",L+Te+N,Ut),nt(Ie+g),`<TId extends ${n}, CId extends ${d}<TId>>`),U=c(C+Re,Ot("tableId?: TId","rowId: Id",L+Te+N,"cellComponents?: {readonly [CId in "+d+`<TId>]?: ComponentType<${F}<TId, CId>>;}`,`getCellComponentProps?: (cellId: ${d}<TId>) => ExtraProps`,`customCellIds?: ${d}<TId>[]`,nl,Ut),nt(Ie+C),`<TId extends ${n}>`),H=c(i+Re,Ot("tableId?: TId",L+Te+N,`rowComponent?: ComponentType<${U}<TId>>`,"getRowComponentProps?: (rowId: Id) => ExtraProps","customCellIds?: CellId<TId>[]",nl,Ut),nt(Ie+i),`<TId extends ${n}>`),Q=c("Sorted"+i+Re,Ot("tableId?: TId","cellId?: "+d+"<TId>","descending?: boolean","offset?: number","limit?: number",L+Te+N,`rowComponent?: ComponentType<${U}<TId>>`,"getRowComponentProps?: (rowId: Id) => ExtraProps","customCellIds?: CellId<TId>[]",nl,Ut),nt(Ie+"sorted "+i),`<TId extends ${n}>`),q=c(p+Re,Ot(L+Te+N,"tableComponents?: {readonly [TId in "+n+`]?: ComponentType<${H}<TId>>;}`,`getTableComponentProps?: (tableId: ${n}) => ExtraProps`,nl,Ut),nt(Ye(1,1)));r(1,D,q,H,Q,U,F),Z(p+Il,"{"+L+", tableComponents, getTableComponentProps"+al+"}: "+q,[oe+`(${B}(${L}).map((tableId) => {`,"const Table = (tableComponents?.[tableId] ?? "+J+"(tableId)) as React.ComponentType<TableProps<typeof tableId>>;","return <Table",`{...${ae}(getTableComponentProps, tableId)}`,"tableId={tableId}","key={tableId}",z,_t,"/>;","}), separator)"],et(1,13)+$e),S(((e,t,a)=>{const[n,o,d,s,I]=le(j,e);r(null,E,n,o,d,s,I),_(t+i,i,n,ct(e)+$e,l,a),_(t+i+f,i+f,u,lt(g,"the whole of "+rt(e))+$e,l,a);const c=_(t+h,h,u,lt(C,rt(e))+$e,l,a),$=_(t+m,m,u,lt(C,rt(e),1)+$e,"cellId?: "+I+", descending?: boolean, offset?: number, limit?: number",a+", cellId, descending, offset, limit");_(t+C,C,d,$t(e)+$e,rl,Et(a,tl)),_(t+f,f,I+Ne,lt(g,It(e))+$e,rl,Et(a,tl)),_(De+t+i+ue,De+i+ue,el,ct(e,9)+Kt,Et(Bt(i)+Qt+o,Bt(i)+be),Et(a,Ft(i)),Yt,Et(ol,`table: ${o})`+Ue,Zt),sl),_(ie+t+i+ue,ie+i+ue,ue,ct(e,12),l,a,l,dl,sl),_(De+t+C+ue,De+C+ue,el,$t(e,9)+Kt,Et(rl,Bt(C)+Qt+s,Bt(C)+be),Et(a,tl,Ft(C)),Yt,Et(ol,`row: ${s})`+Ue,Zt),sl),_("Add"+t+C+ue,"Add"+C+ue,el,$t(e,10)+Kt,Et(Bt(C)+Qt+s,Bt(C)+be),Et(a,Ft(C)),Yt,"then?: ("+Et(rl+ve,"store: Store","row: "+s+")"+Ue,"then"+be)+", reuseRowIds?: boolean",sl+", reuseRowIds"),_(De+t+xe+C+ue,De+xe+C+ue,el,$t(e,11)+Kt,Et(rl,Bt(xe+C)+Qt+s,Bt(xe+C)+be),Et(a,tl,Ft(xe+C)),Yt,Et(ol,`partialRow: ${s})`+Ue,Zt),sl),_(ie+t+C+ue,ie+C+ue,ue,$t(e,12),rl,Et(a,tl),l,dl,sl);const p=Z(t+C+Il,"{rowId, "+L+", cellComponents, getCellComponentProps, customCellIds"+al+`}: ${U}<'${e}'>`,[oe+`(${de}(customCellIds, `+a+`, rowId, ${L}).map((cellId: ${I}) => {`,"const Cell = (cellComponents?.[cellId] ?? "+W+`(${a}, cellId)) as React.ComponentType<CellProps<typeof `+a+", typeof cellId>>;","return <Cell",`{...${ae}(getCellComponentProps, cellId)} `,"key={cellId}",`tableId={${a}}`,ll,"cellId={cellId}",z,_t,"/>;","})"+al+", rowId)"],$t(e,13)+$e);Z(t+"Sorted"+i+Il,"{cellId, descending, offset, limit, ...props}: "+Q+`<'${e}'>`,M+"(props, "+$+`(cellId, descending, offset, limit, props.${L}), ${a}, ${p});`,ct(e,13)+", sorted"+$e),Z(t+i+Il,`props: ${H}<'${e}'>`,M+"(props, "+c+`(props.${L}), ${a}, ${p});`,ct(e,13)+$e),P(e,((n,o,d,s,I)=>{const c="Map"+St(o,1);r(0,E,c),r(1,E,c);const $=_(t+I+g,g,o+(R(d)?ve:l),ut(e,n)+$e,rl,Et(a,tl,s));_(De+t+I+g+ue,De+g+ue,el,ut(e,n,9)+Kt,Et(rl,Bt(g)+Qt+o+" | "+c,Bt(g)+be),Et(a,tl,s,Ft(g)),Yt,Et(ol,`cell: ${o} | ${c})`+Ue,Zt),sl),_(ie+t+I+g+ue,ie+g+ue,ue,ut(e,n,12),Et(rl,"forceDel?: boolean"),Et(a,tl,s,"forceDel"),l,dl,sl),Z(t+I+g+Il,`{rowId, ${L}, debugIds}: `+F+`<'${e}', '${n}'>`,[oe+`('' + ${$}(rowId, `+L+`) ?? '', undefined, debugIds, ${s})`],ut(e,n,13)+$e)}))}));const K=G(S((e=>le(j,e)?.[4]??l))," | ");_(p+I,p+I,Fe,et(1,8)+" changes",cl(s),$l()),_(b+I,b+I,Fe,st(2,0,1),cl(w),$l()),_(i+I,i+I,Fe,st(3,0),cl(y,`tableId: ${n} | null`),$l("tableId")),_(i+f+I,i+f+I,Fe,st(14,3,1),cl(T,`tableId: ${n} | null`),$l("tableId")),_(h+I,h+I,Fe,st(4,3,1),cl(V,`tableId: ${n} | null`),$l("tableId")),_(m+I,m+I,Fe,st(13,3,1),cl(x,`tableId: ${n} | null`,"cellId: "+K+ve,"descending: boolean","offset: number","limit: number"+ve),$l("tableId","cellId","descending","offset","limit")),_(C+I,C+I,Fe,st(5,3),cl(k,`tableId: ${n} | null`,tl+": IdOrNull"),$l("tableId",tl)),_(f+I,f+I,Fe,st(6,5,1),cl(A,`tableId: ${n} | null`,tl+": IdOrNull"),$l("tableId",tl)),_(g+I,g+I,Fe,st(7,5),cl(O,`tableId: ${n} | null`,tl+": IdOrNull",`cellId: ${K} | null`),$l("tableId",tl,"cellId"))}if(!q(a)){const[e,t,a,n,o,s]=d;r(null,E,...d),r(1,E,N);const u=$("getDefaultValueComponent","valueId: Id",G(A(((e,t,l,a,n)=>`valueId == ${a} ? `+n+"ValueView : ")))+se);_(y,y,e,et(2,0)+$e);const i=_(T,T,a+Ne,lt(w,Ge)+$e);_(De+y+ue,De+y+ue,el,et(2,9)+Kt,Et(Bt(y)+Qt+t,Bt(y)+be),Ft(y),Yt,Et(ol,`values: ${t})`+Ue,Zt),sl),_(De+xe+y+ue,De+xe+y+ue,el,et(2,11)+Kt,Et(Bt(xe+y)+Qt+t,Bt(xe+y)+be),Ft(xe+y),Yt,Et(ol,`partialValues: ${t})`+Ue,Zt),sl),_(ie+y+ue,ie+y+ue,ue,et(2,12),l,l,l,dl,sl);const p=c(w+Re,Ot("valueId?: VId",L+Te+N,Ut),nt("a Value"),`<VId extends ${a}>`),b=c(y+Re,Ot(L+Te+N,"valueComponents?: {readonly [VId in "+a+`]?: ComponentType<${p}<VId>>;}`,`getValueComponentProps?: (valueId: ${a}) => ExtraProps`,nl,Ut),nt(Ye(2,1)));r(1,D,b,p),Z(y+Il,"{"+L+", valueComponents, getValueComponentProps"+al+"}: "+b,[oe+`(${i}(${L}).map((valueId) => {`,"const Value = valueComponents?.[valueId] ?? "+u+"(valueId);","return <Value",`{...${ae}(getValueComponentProps, valueId)}`,"key={valueId}",z,_t,"/>;","}), separator)"],et(2,13)+$e),A(((e,t,a,n,o)=>{const d="Map"+St(t,1);r(0,E,d),r(1,E,d);const s=_(o+w,w,t,it(e)+$e,l,n);_(De+o+w+ue,De+w+ue,el,it(e,9)+Kt,Et(Bt(w)+Qt+t+" | "+d,Bt(w)+be),Et(n,Ft(w)),Yt,Et(ol,`value: ${t} | ${d})`+Ue,Zt),sl),_(ie+o+w+ue,ie+w+ue,ue,it(e,12),l,n,l,dl,sl),Z(o+w+Il,`{${L}, debugIds}: ${p}<'${e}'>`,[oe+`('' + ${s}(`+L+`) ?? '', undefined, debugIds, ${n})`],it(e,13)+$e)})),_(y+I,y+I,Fe,et(2,8)+" changes",cl(n),$l()),_(T+I,T+I,Fe,st(10,0,1),cl(o),$l()),_(w+I,w+I,Fe,st(11,0),cl(s,`valueId: ${a} | null`),$l("valueId"))}return Z(ke,`{${L}, ${L}ById, children}: `+K+" & {children: React.ReactNode}",["{",qt,"return (","<Context."+ke,"value={useMemo(",`() => [${L} ?? contextValue[0], {...contextValue[1], ...${L}ById}],`,`[${L}, ${L}ById, contextValue],`,")}>","{children}",`</Context.${ke}>`,");","}"],"Wraps part of an application in a context that provides default objects to be used by hooks and components within"),[s(...V(0),...x(),...H(0)),s(...V(1),...k(),...H(1))]},il=(e,t,a)=>{if(q(e)&&q(t))return[l,l,l,l];const[n,o,d,s]=Wt(e,t,a);return[n,o,...ul(e,t,a,d,s)]},pl=JSON.parse,bl="prettier/",Cl=bl+"plugins/",hl={parser:"typescript",singleQuote:!0,trailingComma:"all",bracketSpacing:!1,jsdocSingleLineComment:!1},ml=Gt((e=>{const t=()=>{const t=pl(e.getTablesSchemaJson());return!q(t)||D(e.getTableIds(),(l=>{const a=e.getRowIds(l),n=te();if(D(a,(t=>D(e.getCellIds(l,t),(a=>{const o=e.getCell(l,t,a),d=de(n,a,(()=>[E(o),te(),[0],0])),[s,r,[I]]=d,c=de(r,o,(()=>0))+1;return c>I&&(d[2]=[c,o]),oe(r,o,c),d[3]++,s==E(o)})))))return t[l]={},Y(n,(([e,,[,n],o],d)=>{t[l][d]={[s]:e,...o==j(a)?{[r]:n}:{}}})),1}))?t:{}},l=()=>{const t=pl(e.getValuesSchemaJson());return q(t)&&e.forEachValue(((e,l)=>{t[e]={[s]:E(l)}})),t},a=e=>il(t(),l(),e),n=async e=>{const t=["d.ts","ts","d.ts","tsx"],l=[];let n;try{n=(await import(bl+"standalone")).format,J(l,await import(Cl+"estree"),await import(Cl+"typescript"))}catch(e){n=async e=>e}return await A(L(a(e),(async(e,a)=>xt(await n(e,{...hl,plugins:l,filepath:"_."+t[a]})))))};return _({getStoreStats:t=>{let l=0,a=0,n=0;const o={};return e.forEachTable(((e,d)=>{l++;let s=0,r=0;const I={};d(((e,l)=>{s++;let a=0;l((()=>a++)),r+=a,t&&(I[e]={rowCells:a})})),a+=s,n+=r,t&&(o[e]={tableRows:s,tableCells:r,rows:I})})),{totalTables:l,totalRows:a,totalCells:n,totalValues:j(e.getValueIds()),jsonLength:Rt(e.getJson()),...t?{detail:{tables:o}}:{}}},getStoreTablesSchema:t,getStoreValuesSchema:l,getStoreApi:a,getPrettyStoreApi:n,getStore:()=>e})}));export{ml as createTools};
|
|
1
|
+
const e=e=>typeof e,t="tinybase",l="",a=",",n=e(l),o=e(!0),d=e(0),s="type",r="default",I="Listener",c="get",$="add",u="Ids",i="Table",p=i+"s",b=i+u,C="Row",h=C+u,m="Sorted"+C+u,g="Cell",f=g+u,w="Value",y=w+"s",T=w+u,v=Promise,V=isFinite,x=(e,t)=>e instanceof t,R=e=>null==e,k=e=>e==n||e==o,S=t=>e(t)==n,P=e=>Array.isArray(e),A=(e,t,l)=>e.slice(t,l),E=async e=>v.all(e),D=t=>{const l=e(t);return k(l)||l==d&&V(t)?l:void 0},O=(e,t)=>e.every(t),N=(e,t)=>e.sort(t),G=(e,t)=>e.forEach(t),L=(e,t=l)=>e.join(t),j=(e,t)=>e.map(t),M=e=>e.length,J=(e,t)=>e.filter(t),z=(e,...t)=>e.push(...t),W=e=>e.pop(),B=(e,...t)=>e.unshift(...t),F=e=>e.shift(),U=Object,_=U.keys,Z=U.freeze,H=e=>x(e,U)&&e.constructor==U,Q=(e,t)=>j(U.entries(e),(([e,l])=>t(l,e))),q=e=>M(_(e)),K=e=>H(e)&&0==q(e),X=(e,t)=>e?.has(t)??!1,Y=e=>[...e?.values()??[]],ee=(e,t)=>e?.forEach(t),te=(e,t)=>e?.delete(t),le=e=>new Map(e),ae=(e,t)=>e?.get(t),ne=(e,t)=>ee(e,((e,l)=>t(l,e))),oe=(e,t)=>j([...e?.entries()??[]],(([e,l])=>t(l,e))),de=(e,t,l)=>R(l)?(te(e,t),e):e?.set(t,l),se=(e,t,l)=>(X(e,t)||de(e,t,l()),ae(e,t)),re=e=>e.toUpperCase(),Ie=e=>e.toLowerCase(),ce="a ",$e="A function for",ue=", and registers a listener so that any changes to that result will cause a re-render",ie="Callback",pe="Del",be="Deps",Ce=be+"?: React.DependencyList",he="doRollback?: DoRollback",me="actions: () => Return, "+he,ge="export",fe="Id",we="Invalid",ye="Json",Te=Ie(I),ve="?: ",Ve=" | undefined",xe="NonNullable",Re="Partial",ke="Props",Se="Provider",Pe=`Registers a ${Te} that will be called`,Ae="Represents",Ee="rowId: "+fe,De="Schema",Oe="Set",Ne=", descending?: boolean, offset?: number, limit?: number",Ge="[]",Le="the Store",je="Transaction",Me=je+"Changes",Je=Ie(je),ze="Execute a "+Je+" to make multiple mutations",We="Explicitly starts a "+Je,Be="Explicitly finishes a "+Je,Fe="the end of the "+Je,Ue="void",_e=" => "+Ue,Ze="WhenSet",He=" when setting it",Qe=ce+"string serialization of",qe=" ",Ke="Gets a callback that can ",Xe="the ",Ye=" the schema for",et=(e=0,t=0)=>`the ${mt[e]}content of`+(t?qe+Le:l),tt=(e=0,t,a=0)=>bt[t]+qe+et(e,1)+(a?" when setting it":l),lt=(e,t=0)=>Ae+` a Row when ${t?"s":"g"}etting ${et()} the '${e}' `+i,at=(e,t,l=0)=>`Gets ${l?"sorted, paginated":"the"} Ids of the ${e}s in `+t,nt=(e,t)=>`Calls a function for each ${e} in `+t,ot=e=>"The props passed to a component that renders "+e,dt=e=>"A function that takes "+e,st=(e,t=0)=>$e+" listening to changes to "+ht[e]+" in "+ht[t],rt=(e,t,a=0)=>Pe+" whenever "+ht[e]+" in "+ht[t]+" change"+(a?l:"s"),It=e=>`the '${e}' `+i,ct=e=>"the specified Row in "+It(e),$t=(e,t=0)=>bt[t]+` ${et()} `+It(e),ut=(e,t=0)=>bt[t]+` ${et()} `+ct(e),it=(e,t,l=0)=>bt[l]+` the '${t}' Cell for `+ct(e),pt=(e,t=0)=>bt[t]+` the '${e}' Value`,bt=["Gets","Checks existence of","Sets","Deletes","Sets part of",Ae,"Gets "+Qe,"Sets "+Qe,Pe+" whenever",Ke+"set",Ke+"add",Ke+"set part of",Ke+"delete","Renders","Gets "+Qe+Ye,"Sets"+Ye,"Deletes"+Ye],Ct=[c,"has","set","del","set","forEach",$,l],ht=[Le,p,Xe+i+qe+u,ce+i,Xe+C+qe+u,ce+C,Xe+g+qe+u,ce+g,"invalid Cell changes",y,Xe+w+qe+u,ce+w,"invalid Value changes",Xe+"sorted "+C+qe+u,Xe+g+qe+u+" anywhere",Xe+"number of Rows"],mt=[l,"tabular ","keyed value "],gt=e=>new Set(P(e)||R(e)?e:[e]),ft=(e,t)=>e?.add(t),wt=/[^A-Za-z]+/,yt=/[^A-Za-z0-9]+/,Tt=/^( *)\/\*\* *(.*?) *\*\/$/gm,vt=e=>e.includes(a),Vt=(e,t,l,a=1)=>{const n=`${t}${1==a?"":a}`;return X(e,n)?Vt(e,t,l,a+1):(de(e,n,l),n)},xt=e=>e.replace(Tt,((e,t,l)=>{const a=77-Rt(t);return`${t}/**\n${l.replace(RegExp(`([^\\n]{1,${a}})(\\s|$)`,"g"),t+" * $1\n")}${t} */`})),Rt=e=>e.length,kt=e=>e.flat(1e3),St=(e,t=0)=>L(j(e.split(yt),((e,l)=>(l>0||t?re:Ie)(A(e,0,1))+A(e,1)))),Pt=e=>re(L((e&&!wt.test(e[0])?e:" "+e).split(yt),"_")),At=e=>`/** ${e}. */`,Et=(...e)=>L(J(e,(e=>e)),", "),Dt=(...e)=>"{"+L(e,"; ")+"}",Ot=(...e)=>Dt(...j(e,(e=>"readonly "+e))),Nt=()=>{const e=[le(),le(),le(),le()],t=le(),a=le(),n=e=>{const t=e.indexOf(" as ");return-1!=t?A(e,t+4):e};return[(...e)=>L(kt(e),"\n"),(t,l,...a)=>G(a,(a=>G([0,1],(n=>(t??n)==n?ft(se(e[n],l,gt),a):0)))),(e,a,n,o=l,d=1)=>Vt(t,e,[a,n,o,d]),(e,t,l)=>Vt(a,e,P(l)?[`(${t}) => {`,l,"}"]:[`(${t}) => ${l}`]),(e,t)=>ae(a,e)===t?e:Vt(a,e,t),(t=0)=>j([...N(oe(e[t],((e,t)=>`import {${L(N(Y(e),((e,t)=>n(e)>n(t)?1:-1)),", ")}} from '${t}';`)),((e,t)=>vt(e)!=vt(t)?vt(e)?-1:1:e>t?1:-1)),l],(e=>e.replace("{React}","React"))),()=>oe(t,(([e,t,a,n],o)=>[At(t),`${n?ge+" ":l}type ${o}${a} = ${e};`,l])),()=>oe(a,((e,t)=>(e=P(e)?e:[e],z(e,W(e)+";"),[`const ${t} = ${F(e)}`,e,l])))]},Gt=e=>{const t=new WeakMap;return l=>(t.has(l)||t.set(l,e(l)),t.get(l))},Lt=(e,t,l)=>[t=>Q(e,((e,a)=>t(a,St(a,1),l(Pt(a),`'${a}'`)))),(t,a)=>Q(e[t],((e,t)=>a(t,e[s],e[r],l(Pt(t),`'${t}'`),St(t,1)))),e=>Q(t,((t,a)=>e(a,t[s],t[r],l(Pt(a),`'${a}'`),St(a,1))))],jt=(e,t,a,n)=>[(n,o)=>{const d=n+": "+o,s=e(p,Dt(...t((e=>`'${e}'?: {[rowId: Id]: `+Dt(...a(e,((e,t,a)=>`'${e}'${R(a)?"?":l}: ${t}`)))+"}"))),tt(1,5)),r=e(p+Ze,Dt(...t((e=>`'${e}'?: {[rowId: Id]: `+Dt(...a(e,((e,t)=>`'${e}'?: ${t}`)))+"}"))),tt(1,5,1)),c=e(i+fe,"keyof "+s,"A "+i+" Id in "+Le),$=`<TId extends ${c}>`,u=e(i,xe+`<${s}[TId]>`,"A "+i+" in "+Le,$),w=e(i+Ze,xe+`<${r}[TId]>`,"A "+i+" in "+Le+He,$),y=e(C,u+"<TId>[Id]","A "+C+" in a "+i,$),T=e(C+Ze,w+"<TId>[Id]","A "+C+" in a "+i+He,$),v=e(g+fe,`Extract<keyof ${y}<TId>, Id>`,"A "+g+" Id in a "+C,$),V=e(g,xe+`<${s}[TId]>[Id][CId]`,"A "+g+" in a "+C,`<TId extends ${c}, CId extends ${v}<TId>>`),x=e("CellIdCellArray",`CId extends ${v}<TId> ? [cellId: CId, cell: ${V}<TId, CId>] : never`,g+" Ids and types in a "+C,`<TId extends ${c}, CId = ${v}<TId>>`,0),k=e(g+ie,`(...[cellId, cell]: ${x}<TId>)`+_e,dt(ce+g+" Id, and "+g),$),S=e(C+ie,"(rowId: Id, forEachCell: (cellCallback: CellCallback<TId>) "+_e+") "+_e,dt(ce+C+" Id, and a "+g+" iterator"),$),P=e(i+g+ie,`(cellId: ${v}<TId>, count: number) `+_e,dt(ce+g+" Id, and count of how many times it appears"),$),A=e("TableIdForEachRowArray",`TId extends ${c} ? [tableId: TId, forEachRow: (rowCallback: ${S}<TId>)${_e}] : never`,i+" Ids and callback types",`<TId = ${c}>`,0),E=e(i+ie,`(...[tableId, forEachRow]: ${A})`+_e,dt(ce+i+" Id, and a "+C+" iterator"),l),D=e("TableIdRowIdCellIdArray",`TId extends ${c} ? [tableId: TId, rowId: Id, cellId: ${v}<TId>] : never`,"Ids for GetCellChange",`<TId = ${c}>`,0),O=e("GetCellChange",`(...[tableId, rowId, cellId]: ${D}) => CellChange`,$e+" returning information about any Cell's changes during a "+Je),N=e(p+I,`(${d}, getCellChange: ${O}${Ve})`+_e,st(1)),G=e(b+I,`(${d})`+_e,st(2)),L=e(i+I,`(${d}, tableId: ${c}, getCellChange: ${O}${Ve})`+_e,st(3)),j=e(i+f+I,`(${d}, tableId: ${c})`+_e,st(14,3)),M=e(C+"Count"+I,`(${d}, tableId: ${c})`+_e,st(15,3)),J=e(h+I,`(${d}, tableId: ${c})`+_e,st(4,3)),z=e(m+I,"("+Et(d,"tableId: "+c,"cellId: Id"+Ve,"descending: boolean","offset: number","limit: number"+Ve,"sortedRowIds: Ids")+")"+_e,st(13,3)),W=e(C+I,"("+Et(""+d,"tableId: "+c,Ee,`getCellChange: ${O}${Ve}`)+")"+_e,st(5,3)),B=e(f+I,"("+Et(""+d,"tableId: "+c,Ee)+")"+_e,st(6,5)),F=e("CellListenerArgsArrayInner",`CId extends ${v}<TId> ? [${d}, tableId: TId, ${Ee}, cellId: CId, newCell: ${V}<TId, CId> ${Ve}, oldCell: ${V}<TId, CId> ${Ve}, getCellChange: ${O} ${Ve}] : never`,"Cell args for CellListener",`<TId extends ${c}, CId = ${v}<TId>>`,0),U=e("CellListenerArgsArrayOuter",`TId extends ${c} ? `+F+"<TId> : never","Table args for CellListener",`<TId = ${c}>`,0);return[s,r,c,u,w,y,T,v,V,k,S,P,E,N,G,L,j,M,J,z,W,B,e(g+I,`(...[${n}, tableId, rowId, cellId, newCell, oldCell, getCellChange]: ${U})`+_e,st(7,5)),e(we+g+I,`(${d}, tableId: Id, ${Ee}, cellId: Id, invalidCells: any[])`+_e,st(8))]},(t,a)=>{const o=t+": "+a,d=e(y,Dt(...n(((e,t,a)=>`'${e}'${R(a)?"?":l}: ${t}`))),tt(2,5)),s=e(y+Ze,Dt(...n(((e,t)=>`'${e}'?: ${t}`))),tt(2,5,1)),r=e(w+fe,"keyof "+d,"A "+w+" Id in "+Le),c=e(w,xe+`<${d}[VId]>`,"A "+w+" Id in "+Le,`<VId extends ${r}>`),$=e("ValueIdValueArray",`VId extends ${r} ? [valueId: VId, value: ${c}<VId>] : never`,w+" Ids and types in "+Le,`<VId = ${r}>`,0),u=e(w+ie,`(...[valueId, value]: ${$})`+_e,dt(ce+w+" Id, and "+w)),i=e("GetValueChange",`(valueId: ${r}) => ValueChange`,$e+" returning information about any Value's changes during a "+Je),p=e(y+I,`(${o}, getValueChange: ${i}${Ve})`+_e,st(9)),b=e(T+I,`(${o})`+_e,st(10)),C=e("ValueListenerArgsArray",`VId extends ${r} ? [${o}, valueId: VId, newValue: ${c}<VId> ${Ve}, oldValue: ${c}<VId> ${Ve}, getValueChange: ${i} ${Ve}] : never`,"Value args for ValueListener",`<VId = ${r}>`,0);return[d,s,r,c,u,p,b,e(w+I,`(...[${t}, valueId, newValue, oldValue, getValueChange]: `+C+")"+_e,st(11)),e(we+w+I,`(${o}, valueId: Id, invalidValues: any[])`+_e,st(12))]},(t,l)=>e(je+I,`(${t}: ${l}, getTransactionChanges: GetTransactionChanges, getTransactionLog: GetTransactionLog)`+_e,$e+" listening to the completion of a "+Je)],Mt=(e,t=l,a=l)=>`store.${e}(${t})`+(a?" as "+a:l),Jt=(e,t=l)=>`fluent(() => ${Mt(e,t)})`,zt=(e,t=l,a=l)=>`store.${e}(${t?t+", ":l}proxy(listener)${a?", "+a:l})`,Wt=(e,a,n)=>{const[d,c,v,V,x,k,P,A]=Nt(),[E,D,O]=Lt(e,a,x),[N,j,M]=jt(v,E,D,O),J=le(),W=(e=0)=>oe(J,(([t,a,n,o,d],s)=>{const r=e?[s+`: ${d}(${t}): ${a} => ${n},`]:[s+d+`(${t}): ${a};`];return e||B(r,At(o)),z(r,l),r})),F=(e,t,a,n,o,d=l)=>Vt(J,e,[t,a,n,o,d]),U=(e,t,a,n,o,d=l,s=l,r=l)=>F(Ct[e]+t+(4==e?Re:l)+a,d,n,(n==H?Jt:Mt)(Ct[e]+(4==e?Re:l)+a,s,e?void 0:n),o,r),_=(e,t,a,n=l,o=l,d=1,s=l)=>F($+e+I,(n?n+", ":l)+Te+": "+t+(d?", mutator?: boolean":l),fe,zt($+e+I,o,d?"mutator":l),a,s),Z=`./${St(n)}.d`,H=St(n,1),Q=St(H),q=[],X=le();let ee=[],te=[];if(c(1,Z,H,`create${H} as create${H}Decl`),K(e))c(null,t,p);else{c(0,t,"CellChange"),c(null,t,u);const[e,a,n,d,I,$,w,y,T,V,k,P,A,O,j,M,J,W,B,F,K,te,ne,oe]=N(Q,H),se=le();E(((e,t)=>{const l=`<'${e}'>`,a=[v(t+i,d+l,Ae+` the '${e}' `+i),v(t+i+Ze,I+l,Ae+` the '${e}' `+i+He),v(t+C,$+l,lt(e)),v(t+C+Ze,w+l,lt(e,1)),v(t+g+fe,y+l,`A Cell Id for the '${e}' `+i),v(t+g+ie,V+l,dt(`a Cell Id and value from a Row in the '${e}' `+i)),v(t+C+ie,k+l,dt(`a Row Id from the '${e}' Table, and a Cell iterator`)),v(t+i+g+ie,P+l,dt(`a Cell Id from anywhere in the '${e}' Table, and a count of how many times it appears`))];de(se,e,a),c(1,Z,...a)})),c(1,Z,e,a,n,y,A,O,j,M,J,W,B,F,K,te,ne,oe),ee=[e,a,n,y,O,j,M,J,W,B,F,K,te,ne,se],G([[e],[o],[H,"tables: "+a,"tables"],[H]],(([e,t,a],n)=>U(n,l,p,e,tt(1,n),t,a))),U(0,l,b,n+Ge,at(i,Le)),U(5,l,i,Ue,nt(i,Le),"tableCallback: "+A,"tableCallback as any"),E(((e,t,a)=>{const[n,d,s,r,I,c,$,p]=ae(se,e);G([[n],[o],[H,"table: "+d,", table"],[H]],(([n,o,d=l],s)=>U(s,t,i,n,$t(e,s),o,a+d))),U(0,t,i+f,u,at(g,"the whole of "+It(e)),l,a),U(5,t,i+g,Ue,nt(i+g,"the whole of "+It(e)),"tableCellCallback: "+p,a+", tableCellCallback as any"),U(0,t,C+"Count","number","Gets the number of Rows in the "+It(e),l,a),U(0,t,h,u,at(C,It(e)),l,a),U(0,t,m,u,at(C,It(e),1),"cellId?: "+I+Ne,a+", cellId, descending, offset, limit"),U(5,t,C,Ue,nt(C,It(e)),"rowCallback: "+$,a+", rowCallback as any"),G([[s],[o],[H,", row: "+r,", row"],[H],[H,", partialRow: "+r,", partialRow"]],(([n,o=l,d=l],s)=>U(s,t,C,n,ut(e,s),Ee+o,a+", rowId"+d))),U(6,t,C,fe+Ve,"Add a new Row to "+It(e),"row: "+r+", reuseIds?: boolean",a+", row, reuseIds"),U(0,t,f,I+Ge,at(g,ct(e)),Ee,a+", rowId"),U(5,t,g,Ue,nt(g,ct(e)),Ee+", cellCallback: "+c,a+", rowId, cellCallback as any"),D(e,((n,d,s,r,I)=>{const c="Map"+St(d,1);de(X,d,c);const $=d+(R(s)?Ve:l);G([[$],[o],[H,`, cell: ${d} | `+c,", cell as any"],[H]],(([o,d=l,s=l],c)=>U(c,t+I,g,o,it(e,n,c),Ee+d,a+", rowId, "+r+s))),U(1,t+I,i+g,o,bt[1]+` the '${n}' Cell anywhere in `+It(e),l,a+", "+r)}))})),U(0,l,p+ye,ye,tt(1,6)),U(2,l,p+ye,H,tt(1,7),"tablesJson: "+ye,"tables"+ye),_(p,O,tt(1,8)+" changes"),_(b,j,rt(2,0,1)),_(i,M,rt(3,0),`tableId: ${n} | null`,"tableId"),_(i+f,J,rt(14,3,1),`tableId: ${n} | null`,"tableId"),_(C+"Count",W,rt(15,3),`tableId: ${n} | null`,"tableId"),_(h,B,rt(4,3,1),`tableId: ${n} | null`,"tableId"),_(m,F,rt(13,3,1),Et("tableId: TId",`cellId: ${y}<TId>`+Ve,"descending: boolean","offset: number","limit: number"+Ve),Et("tableId","cellId","descending","offset","limit"),1,"<TId extends TableId>"),_(C,K,rt(5,3),`tableId: ${n} | null, rowId: IdOrNull`,"tableId, rowId"),_(f,te,rt(6,5,1),`tableId: ${n} | null, rowId: IdOrNull`,"tableId, rowId"),_(g,ne,rt(7,5),`tableId: ${n} | null, rowId: IdOrNull, cellId: ${L(E((e=>ae(se,e)?.[4]??l))," | ")} | null`,"tableId, rowId, cellId"),_(we+g,oe,Pe+" whenever an invalid Cell change was attempted","tableId: IdOrNull, rowId: IdOrNull, cellId: IdOrNull","tableId, rowId, cellId"),c(1,Z,...Y(X)),z(q,".set"+p+De+"({",kt(E(((e,t,a)=>[`[${a}]: {`,...D(e,((e,t,a,n)=>`[${n}]: {[${x(Pt(s),`'${s}'`)}]: ${x(Pt(t),`'${t}'`)}${R(a)?l:`, [${x(Pt(r),`'${r}'`)}]: `+(S(a)?x(Pt(a),`'${a}'`):a)}},`)),"},"]))),"})")}if(K(a))c(null,t,y);else{const[e,a,n,d,I,$,u,i,p]=j(Q,H);c(1,Z,e,a,n,I,$,u,i,p),te=[e,a,n,$,u,i],G([[e],[o],[H,"values: "+a,"values"],[H],[H,"partialValues: "+a,"partialValues"]],(([e,t,a],n)=>U(n,l,y,e,tt(2,n),t,a))),U(0,l,T,n+Ge,at(w,Le)),U(5,l,w,"void",nt(w,Le),"valueCallback: "+I,"valueCallback as any"),O(((e,t,a,n,d)=>{const s="Map"+St(t,1);de(X,t,s),G([[t],[o],[H,`value: ${t} | `+s,", value as any"],[H]],(([t,a,o=l],s)=>U(s,d,w,t,pt(e,s),a,n+o)))})),U(0,l,y+ye,ye,tt(2,6)),U(2,l,y+ye,H,tt(2,7),"valuesJson: "+ye,"values"+ye),_(y,$,tt(2,8)+" changes"),_(T,u,rt(10,0,1)),_(w,i,rt(11,0),`valueId: ${n} | null`,"valueId"),_(we+w,p,Pe+" whenever an invalid Value change was attempted","valueId: IdOrNull","valueId"),c(1,Z,...Y(X)),c(0,t,"ValueChange"),z(q,".set"+y+De+"({",O(((e,t,a,n)=>[`[${n}]: {[${x(Pt(s),`'${s}'`)}]: ${x(Pt(t),`'${t}'`)}${R(a)?l:`, [${x(Pt(r),`'${r}'`)}]: `+(S(a)?x(Pt(a),`'${a}'`):a)}},`])),"})")}U(0,l,"Content",`[${p}, ${y}]`,tt(0,0)),U(2,l,"Content",H,tt(0,2),`[tables, values]: [${p}, ${y}]`,"[tables, values]"),U(2,l,Me,H,`Applies a set of ${Me} to the Store`,"transactionChanges: "+Me,"transactionChanges"),ne(X,((e,t)=>v(t,`(cell: ${e}${Ve}) => `+e,`Takes a ${e} Cell value and returns another`))),c(null,t,"DoRollback",fe,"IdOrNull",ye,"Store",Me),c(0,t,"Get"+Me,"GetTransactionLog"),U(0,l,ye,ye,tt(0,6)),U(2,l,ye,H,tt(0,7),"tablesAndValuesJson: "+ye,"tablesAndValuesJson"),U(7,l,Je,"Return",ze,me,"actions, doRollback","<Return>"),U(7,l,"start"+je,H,We),U(7,l,"finish"+je,H,Be,he,"doRollback");const se=M(Q,H);return _("Start"+je,se,Pe+" just before the start of the "+Je,l,l,0),_("WillFinish"+je,se,Pe+" just before "+Fe,l,l,0),_("DidFinish"+je,se,Pe+" just after "+Fe,l,l,0),U(7,l,"call"+I,H,"Manually provoke a listener to be called","listenerId: Id","listenerId"),U(3,l,I,H,"Remove a listener that was previously added to "+Le,"listenerId: Id","listenerId"),F("getStore",l,"Store","store",bt[0]+" the underlying Store object"),c(1,t,"createStore"),c(1,Z,H,`create${H} as create${H}Decl`,se),x("store",["createStore()",...q]),V("fluent","actions: () => Store",["actions();",`return ${Q};`]),V("proxy","listener: any",`(_: Store, ...params: any[]) => listener(${Q}, ...params)`),x(Q,["{",...W(1),"}"]),[d(...k(0),...P(),ge+" interface "+H+" {",...W(0),"}",l,At(`Creates a ${H} object`),ge+" function create"+H+"(): "+H+";"),d(...k(1),ge+" const create"+H+": typeof create"+H+"Decl = () => {",...A(),`return Object.freeze(${Q});`,"};"),ee,te]},Bt=e=>c+e,Ft=e=>Et(Bt(e),Bt(e)+be),Ut="debugIds?: boolean",_t="debugIds={debugIds}",Zt="then"+Ce,Ht="Parameter",Qt=": (parameter: "+Ht+", store: Store) => ",qt="const contextValue = useContext(Context);",Kt=", based on a parameter",Xt=": ",Yt="<"+Ht+",>",el=Ht+"ized"+ie+"<"+Ht+">",tl="rowId",ll="rowId={rowId}",al=", separator, debugIds",nl="separator?: ReactElement | string",ol="then?: (store: Store",dl=Et(ol+")"+_e,Zt),sl="then, then"+be,rl=tl+Xt+fe,Il="View",cl=(e,...t)=>Et(...t,Te+": "+e,Te+Ce,"mutator?: boolean"),$l=(...e)=>Et(...e,Te,Te+be,"mutator"),ul=(e,a,n,o,d)=>{const[s,r,c,$,v,V,x,k]=Nt(),[S,P,A]=Lt(e,a,v),E=`./${St(n)}.d`,D=`./${St(n)}-ui-react.d`,O="tinybase/ui-react",N=St(n,1),G=St(N),j=N+"Or"+N+fe,M=G+"Or"+N+fe,J=G+`={${G}}`,W=le(),F=(e,t,a,n,o,d=l)=>(r(1,D,e+" as "+e+"Decl"),Vt(W,e,[t,a,n,o,d])),U=(e,t,a,n,o,d=l)=>F("use"+e,t,a,n,o,d),_=(e,t,a,n,o=l,d=l,s=l,I=l,c=l)=>(r(1,O,`use${t} as use${t}Core`),U(e,Et(o,X,I),a,ee+`(${M}, use${t}Core, [`+(d||l)+(c?"], ["+c:l)+"]);",n,s)),Z=(e,t,l,a)=>F(e,t,1,l,a),H=(e=0)=>oe(W,(([t,a,n,o,d],s)=>{const r=e?[ge+` const ${s}: typeof ${s}Decl = ${d}(${t}): ${1==a?"any":a} =>`,n]:[ge+` function ${s}${d}(${t}): ${1==a?"ComponentReturnType":a};`];return e||B(r,At(o)),z(r,l),r}));r(null,t,fe,"Store",ie,Ht+"ized"+ie),r(0,O,"ComponentReturnType"),r(1,O,"useCellIds"),r(null,O,"ExtraProps"),r(0,E,N);const Q=c(j,N+" | "+fe,`Used when you need to refer to a ${N} in a React hook or component`),q=c(Se+ke,Ot(G+ve+N,G+`ById?: {[${G}Id: Id]: ${N}}`),`Used with the ${Se} component, so that a `+N+" can be passed into the context of an application");r(0,"react","ReactElement","ComponentType"),r(1,"react","React"),r(1,D,Q,q);const X=M+ve+Q;v("{createContext, useContext, useMemo}","React"),v("Context",`createContext<[${N}?, {[${G}Id: Id]: ${N}}?]>([])`),U("Create"+N,`create: () => ${N}, create`+Ce,N,"\n// eslint-disable-next-line react-hooks/exhaustive-deps\nuseMemo(create, createDeps)",`Create a ${N} within a React application with convenient memoization`);const Y=U(N,"id?: Id",N+Ve,["{",qt,"return id == null ? contextValue[0] : contextValue[1]?.[id];","}"],`Get a reference to a ${N} from within a ${Se} component context`),ee=$("useHook",M+`: ${Q} | undefined, hook: (...params: any[]) => any, preParams: any[], postParams: any[] = []`,[`const ${G} = ${Y}(${M} as Id);`,`return hook(...preParams, ((${M} == null || typeof ${M} == 'string')`,`? ${G} : ${M})?.getStore(), ...postParams)`]),te=$("getProps","getProps: ((id: any) => ExtraProps) | undefined, id: Id","(getProps == null) ? ({} as ExtraProps) : getProps(id)"),ne=$("wrap",Et("children: any","separator?: any","encloseWithId?: boolean","id?: Id"),["const separated = separator==null || !Array.isArray(children)"," ? children"," : children.map((child, c) => (c > 0 ? [separator, child] : child));","return encloseWithId ? [id, ':{', separated, '}'] : separated;"]),de=$("useCustomOrDefaultCellIds",Et("customCellIds: Ids | undefined","tableId: Id","rowId: Id",`${M}?: ${Q} | undefined`),[`const defaultCellIds = ${ee}(${M}, useCellIds, [tableId, rowId]);`,"return customCellIds ?? defaultCellIds;"]),se=v("NullComponent","() => null");if(!K(e)){const[e,a,n,d,s,w,y,T,v,V,x,k,A,O,j]=o;r(null,E,e,a,n,s,w,y,T,v,V,x,k,A,O),r(0,E,d),r(1,E,N),r(null,t,u,"IdOrNull");const M=$("tableView",`{${G}, rowComponent, getRowComponentProps, customCellIds`+al+"}: any, rowIds: Ids, tableId: Id, defaultRowComponent: React.ComponentType<any>",["const Row = rowComponent ?? defaultRowComponent;",`return ${ne}(rowIds.map((rowId) => (`,"<Row","{..."+te+"(getRowComponentProps, rowId)}","key={rowId}","tableId={tableId}",ll,"customCellIds={customCellIds}",J,_t,"/>","))",al,", tableId,",");"]),z=$("getDefaultTableComponent","tableId: Id",L(S(((e,t,l)=>`tableId == ${l} ? ${t}TableView : `)))+se),W=$("getDefaultCellComponent","tableId: Id, cellId: Id",L(S(((e,t,l)=>`tableId == ${l} ? ${L(P(e,((e,l,a,n,o)=>`cellId == ${n} ? `+t+o+"CellView : ")))+se} : `)))+se);_(p,p,e,tt(1,0)+ue);const B=_(b,b,n+Ge,at(i,Le)+ue);_(Oe+p+ie,Oe+p+ie,el,tt(1,9)+Kt,Et(Bt(p)+Qt+a,Bt(p)+Ce),Ft(p),Yt,Et(ol,`tables: ${a})`+_e,Zt),sl),_(pe+p+ie,pe+p+ie,ie,tt(1,12),l,l,l,dl,sl);const F=c(g+ke,Ot("tableId?: TId","rowId: Id","cellId?: CId",G+ve+N,Ut),ot(ce+g),`<TId extends ${n}, CId extends ${d}<TId>>`),U=c(C+ke,Ot("tableId?: TId","rowId: Id",G+ve+N,"cellComponents?: {readonly [CId in "+d+`<TId>]?: ComponentType<${F}<TId, CId>>;}`,`getCellComponentProps?: (cellId: ${d}<TId>) => ExtraProps`,`customCellIds?: ${d}<TId>[]`,nl,Ut),ot(ce+C),`<TId extends ${n}>`),H=c(i+ke,Ot("tableId?: TId",G+ve+N,`rowComponent?: ComponentType<${U}<TId>>`,"getRowComponentProps?: (rowId: Id) => ExtraProps","customCellIds?: CellId<TId>[]",nl,Ut),ot(ce+i),`<TId extends ${n}>`),Q=c("Sorted"+i+ke,Ot("tableId?: TId","cellId?: "+d+"<TId>","descending?: boolean","offset?: number","limit?: number",G+ve+N,`rowComponent?: ComponentType<${U}<TId>>`,"getRowComponentProps?: (rowId: Id) => ExtraProps","customCellIds?: CellId<TId>[]",nl,Ut),ot(ce+"sorted "+i),`<TId extends ${n}>`),q=c(p+ke,Ot(G+ve+N,"tableComponents?: {readonly [TId in "+n+`]?: ComponentType<${H}<TId>>;}`,`getTableComponentProps?: (tableId: ${n}) => ExtraProps`,nl,Ut),ot(et(1,1)));r(1,D,q,H,Q,U,F),Z(p+Il,"{"+G+", tableComponents, getTableComponentProps"+al+"}: "+q,[ne+`(${B}(${G}).map((tableId) => {`,"const Table = (tableComponents?.[tableId] ?? "+z+"(tableId)) as React.ComponentType<TableProps<typeof tableId>>;","return <Table",`{...${te}(getTableComponentProps, tableId)}`,"tableId={tableId}","key={tableId}",J,_t,"/>;","}), separator)"],tt(1,13)+ue),S(((e,t,a)=>{const[n,o,d,s,I]=ae(j,e);r(null,E,n,o,d,s,I),_(t+i,i,n,$t(e)+ue,l,a),_(t+i+f,i+f,u,at(g,"the whole of "+It(e))+ue,l,a);const c=_(t+h,h,u,at(C,It(e))+ue,l,a),$=_(t+m,m,u,at(C,It(e),1)+ue,"cellId?: "+I+", descending?: boolean, offset?: number, limit?: number",a+", cellId, descending, offset, limit");_(t+C,C,d,ut(e)+ue,rl,Et(a,tl)),_(t+f,f,I+Ge,at(g,ct(e))+ue,rl,Et(a,tl)),_(Oe+t+i+ie,Oe+i+ie,el,$t(e,9)+Kt,Et(Bt(i)+Qt+o,Bt(i)+Ce),Et(a,Ft(i)),Yt,Et(ol,`table: ${o})`+_e,Zt),sl),_(pe+t+i+ie,pe+i+ie,ie,$t(e,12),l,a,l,dl,sl),_(Oe+t+C+ie,Oe+C+ie,el,ut(e,9)+Kt,Et(rl,Bt(C)+Qt+s,Bt(C)+Ce),Et(a,tl,Ft(C)),Yt,Et(ol,`row: ${s})`+_e,Zt),sl),_("Add"+t+C+ie,"Add"+C+ie,el,ut(e,10)+Kt,Et(Bt(C)+Qt+s,Bt(C)+Ce),Et(a,Ft(C)),Yt,"then?: ("+Et(rl+Ve,"store: Store","row: "+s+")"+_e,"then"+Ce)+", reuseRowIds?: boolean",sl+", reuseRowIds"),_(Oe+t+Re+C+ie,Oe+Re+C+ie,el,ut(e,11)+Kt,Et(rl,Bt(Re+C)+Qt+s,Bt(Re+C)+Ce),Et(a,tl,Ft(Re+C)),Yt,Et(ol,`partialRow: ${s})`+_e,Zt),sl),_(pe+t+C+ie,pe+C+ie,ie,ut(e,12),rl,Et(a,tl),l,dl,sl);const p=Z(t+C+Il,"{rowId, "+G+", cellComponents, getCellComponentProps, customCellIds"+al+`}: ${U}<'${e}'>`,[ne+`(${de}(customCellIds, `+a+`, rowId, ${G}).map((cellId: ${I}) => {`,"const Cell = (cellComponents?.[cellId] ?? "+W+`(${a}, cellId)) as React.ComponentType<CellProps<typeof `+a+", typeof cellId>>;","return <Cell",`{...${te}(getCellComponentProps, cellId)} `,"key={cellId}",`tableId={${a}}`,ll,"cellId={cellId}",J,_t,"/>;","})"+al+", rowId)"],ut(e,13)+ue);Z(t+"Sorted"+i+Il,"{cellId, descending, offset, limit, ...props}: "+Q+`<'${e}'>`,M+"(props, "+$+`(cellId, descending, offset, limit, props.${G}), ${a}, ${p});`,$t(e,13)+", sorted"+ue),Z(t+i+Il,`props: ${H}<'${e}'>`,M+"(props, "+c+`(props.${G}), ${a}, ${p});`,$t(e,13)+ue),P(e,((n,o,d,s,I)=>{const c="Map"+St(o,1);r(0,E,c),r(1,E,c);const $=_(t+I+g,g,o+(R(d)?Ve:l),it(e,n)+ue,rl,Et(a,tl,s));_(Oe+t+I+g+ie,Oe+g+ie,el,it(e,n,9)+Kt,Et(rl,Bt(g)+Qt+o+" | "+c,Bt(g)+Ce),Et(a,tl,s,Ft(g)),Yt,Et(ol,`cell: ${o} | ${c})`+_e,Zt),sl),_(pe+t+I+g+ie,pe+g+ie,ie,it(e,n,12),Et(rl,"forceDel?: boolean"),Et(a,tl,s,"forceDel"),l,dl,sl),Z(t+I+g+Il,`{rowId, ${G}, debugIds}: `+F+`<'${e}', '${n}'>`,[ne+`('' + ${$}(rowId, `+G+`) ?? '', undefined, debugIds, ${s})`],it(e,n,13)+ue)}))}));const K=L(S((e=>ae(j,e)?.[4]??l))," | ");_(p+I,p+I,Ue,tt(1,8)+" changes",cl(s),$l()),_(b+I,b+I,Ue,rt(2,0,1),cl(w),$l()),_(i+I,i+I,Ue,rt(3,0),cl(y,`tableId: ${n} | null`),$l("tableId")),_(i+f+I,i+f+I,Ue,rt(14,3,1),cl(T,`tableId: ${n} | null`),$l("tableId")),_(h+I,h+I,Ue,rt(4,3,1),cl(V,`tableId: ${n} | null`),$l("tableId")),_(m+I,m+I,Ue,rt(13,3,1),cl(x,`tableId: ${n} | null`,"cellId: "+K+Ve,"descending: boolean","offset: number","limit: number"+Ve),$l("tableId","cellId","descending","offset","limit")),_(C+I,C+I,Ue,rt(5,3),cl(k,`tableId: ${n} | null`,tl+": IdOrNull"),$l("tableId",tl)),_(f+I,f+I,Ue,rt(6,5,1),cl(A,`tableId: ${n} | null`,tl+": IdOrNull"),$l("tableId",tl)),_(g+I,g+I,Ue,rt(7,5),cl(O,`tableId: ${n} | null`,tl+": IdOrNull",`cellId: ${K} | null`),$l("tableId",tl,"cellId"))}if(!K(a)){const[e,t,a,n,o,s]=d;r(null,E,...d),r(1,E,N);const u=$("getDefaultValueComponent","valueId: Id",L(A(((e,t,l,a,n)=>`valueId == ${a} ? `+n+"ValueView : ")))+se);_(y,y,e,tt(2,0)+ue);const i=_(T,T,a+Ge,at(w,Le)+ue);_(Oe+y+ie,Oe+y+ie,el,tt(2,9)+Kt,Et(Bt(y)+Qt+t,Bt(y)+Ce),Ft(y),Yt,Et(ol,`values: ${t})`+_e,Zt),sl),_(Oe+Re+y+ie,Oe+Re+y+ie,el,tt(2,11)+Kt,Et(Bt(Re+y)+Qt+t,Bt(Re+y)+Ce),Ft(Re+y),Yt,Et(ol,`partialValues: ${t})`+_e,Zt),sl),_(pe+y+ie,pe+y+ie,ie,tt(2,12),l,l,l,dl,sl);const p=c(w+ke,Ot("valueId?: VId",G+ve+N,Ut),ot("a Value"),`<VId extends ${a}>`),b=c(y+ke,Ot(G+ve+N,"valueComponents?: {readonly [VId in "+a+`]?: ComponentType<${p}<VId>>;}`,`getValueComponentProps?: (valueId: ${a}) => ExtraProps`,nl,Ut),ot(et(2,1)));r(1,D,b,p),Z(y+Il,"{"+G+", valueComponents, getValueComponentProps"+al+"}: "+b,[ne+`(${i}(${G}).map((valueId) => {`,"const Value = valueComponents?.[valueId] ?? "+u+"(valueId);","return <Value",`{...${te}(getValueComponentProps, valueId)}`,"key={valueId}",J,_t,"/>;","}), separator)"],tt(2,13)+ue),A(((e,t,a,n,o)=>{const d="Map"+St(t,1);r(0,E,d),r(1,E,d);const s=_(o+w,w,t,pt(e)+ue,l,n);_(Oe+o+w+ie,Oe+w+ie,el,pt(e,9)+Kt,Et(Bt(w)+Qt+t+" | "+d,Bt(w)+Ce),Et(n,Ft(w)),Yt,Et(ol,`value: ${t} | ${d})`+_e,Zt),sl),_(pe+o+w+ie,pe+w+ie,ie,pt(e,12),l,n,l,dl,sl),Z(o+w+Il,`{${G}, debugIds}: ${p}<'${e}'>`,[ne+`('' + ${s}(`+G+`) ?? '', undefined, debugIds, ${n})`],pt(e,13)+ue)})),_(y+I,y+I,Ue,tt(2,8)+" changes",cl(n),$l()),_(T+I,T+I,Ue,rt(10,0,1),cl(o),$l()),_(w+I,w+I,Ue,rt(11,0),cl(s,`valueId: ${a} | null`),$l("valueId"))}return Z(Se,`{${G}, ${G}ById, children}: `+q+" & {children: React.ReactNode}",["{",qt,"return (","<Context."+Se,"value={useMemo(",`() => [${G} ?? contextValue[0], {...contextValue[1], ...${G}ById}],`,`[${G}, ${G}ById, contextValue],`,")}>","{children}",`</Context.${Se}>`,");","}"],"Wraps part of an application in a context that provides default objects to be used by hooks and components within"),[s(...V(0),...x(),...H(0)),s(...V(1),...k(),...H(1))]},il=(e,t,a)=>{if(K(e)&&K(t))return[l,l,l,l];const[n,o,d,s]=Wt(e,t,a);return[n,o,...ul(e,t,a,d,s)]},pl=JSON.parse,bl="prettier/",Cl=bl+"plugins/",hl={parser:"typescript",singleQuote:!0,trailingComma:"all",bracketSpacing:!1,jsdocSingleLineComment:!1},ml=Gt((e=>{const t=()=>{const t=pl(e.getTablesSchemaJson());return!K(t)||O(e.getTableIds(),(l=>{const a=e.getRowIds(l),n=le();if(O(a,(t=>O(e.getCellIds(l,t),(a=>{const o=e.getCell(l,t,a),d=se(n,a,(()=>[D(o),le(),[0],0])),[s,r,[I]]=d,c=se(r,o,(()=>0))+1;return c>I&&(d[2]=[c,o]),de(r,o,c),d[3]++,s==D(o)})))))return t[l]={},ee(n,(([e,,[,n],o],d)=>{t[l][d]={[s]:e,...o==M(a)?{[r]:n}:{}}})),1}))?t:{}},l=()=>{const t=pl(e.getValuesSchemaJson());return K(t)&&e.forEachValue(((e,l)=>{t[e]={[s]:D(l)}})),t},a=e=>il(t(),l(),e),n=async e=>{const t=["d.ts","ts","d.ts","tsx"],l=[];let n;try{n=(await import(bl+"standalone")).format,z(l,await import(Cl+"estree"),await import(Cl+"typescript"))}catch(e){n=async e=>e}return await E(j(a(e),(async(e,a)=>xt(await n(e,{...hl,plugins:l,filepath:"_."+t[a]})))))};return Z({getStoreStats:t=>{let l=0,a=0,n=0;const o={};return e.forEachTable(((e,d)=>{l++;let s=0,r=0;const I={};d(((e,l)=>{s++;let a=0;l((()=>a++)),r+=a,t&&(I[e]={rowCells:a})})),a+=s,n+=r,t&&(o[e]={tableRows:s,tableCells:r,rows:I})})),{totalTables:l,totalRows:a,totalCells:n,totalValues:M(e.getValueIds()),jsonLength:Rt(e.getJson()),...t?{detail:{tables:o}}:{}}},getStoreTablesSchema:t,getStoreValuesSchema:l,getStoreApi:a,getPrettyStoreApi:n,getStore:()=>e})}));export{ml as createTools};
|
package/lib/tools.js.gz
CHANGED
|
Binary file
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* @see Persisting Data guide
|
|
6
6
|
* @packageDocumentation
|
|
7
7
|
* @module persister-cr-sqlite-wasm
|
|
8
|
+
* @since v4.0.0
|
|
8
9
|
*/
|
|
9
10
|
|
|
10
11
|
import {DatabasePersisterConfig, Persister} from '../persisters';
|
|
@@ -95,6 +96,7 @@ import {Store} from '../store';
|
|
|
95
96
|
* persister.destroy();
|
|
96
97
|
* ```
|
|
97
98
|
* @category Creation
|
|
99
|
+
* @since v4.0.0
|
|
98
100
|
*/
|
|
99
101
|
export function createCrSqliteWasmPersister(
|
|
100
102
|
store: Store,
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
* @see Persisting Data guide
|
|
9
9
|
* @packageDocumentation
|
|
10
10
|
* @module persister-expo-sqlite
|
|
11
|
+
* @since v4.0.3
|
|
11
12
|
*/
|
|
12
13
|
|
|
13
14
|
import {DatabasePersisterConfig, Persister} from '../persisters';
|
|
@@ -116,6 +117,7 @@ import {Store} from '../store';
|
|
|
116
117
|
* persister.destroy();
|
|
117
118
|
* ```
|
|
118
119
|
* @category Creation
|
|
120
|
+
* @since v4.0.3
|
|
119
121
|
*/
|
|
120
122
|
export function createExpoSqlitePersister(
|
|
121
123
|
store: Store,
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The persister-partykit-client module of the TinyBase project contains the
|
|
3
|
+
* client portion of the PartyKit integration.
|
|
4
|
+
*
|
|
5
|
+
* It contains a Persister which, when run in a PartyKit client environment,
|
|
6
|
+
* lets you save and load Store data from the client to durable PartyKit cloud
|
|
7
|
+
* storage of a server (that is using the complementary
|
|
8
|
+
* persister-partykit-server module).
|
|
9
|
+
*
|
|
10
|
+
* This enables synchronization of the same Store across multiple clients in a
|
|
11
|
+
* PartyKit party room.
|
|
12
|
+
*
|
|
13
|
+
* Note that both the client and server parts of this Persister are currently
|
|
14
|
+
* experimental as PartyKit is new and still maturing.
|
|
15
|
+
* @see Persisting Data guide
|
|
16
|
+
* @see Todo App v6 (collaboration) demo
|
|
17
|
+
* @packageDocumentation
|
|
18
|
+
* @module persister-partykit-client
|
|
19
|
+
* @since 4.3.0
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
import PartySocket from 'partysocket';
|
|
23
|
+
import {Persister} from '../persisters';
|
|
24
|
+
import {Store} from '../store';
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* The createPartyKitPersister function creates a Persister object that can
|
|
28
|
+
* persist the Store to durable PartyKit storage, enabling synchronization of
|
|
29
|
+
* the same Store across multiple clients.
|
|
30
|
+
*
|
|
31
|
+
* As well as providing a reference to the Store to persist, you must provide a
|
|
32
|
+
* `connection` parameter which is a PartyKit PartySocket that you have already
|
|
33
|
+
* instantiated with details of the host and room.
|
|
34
|
+
*
|
|
35
|
+
* All suitably-equipped TinyBase clients connecting to that room will get to
|
|
36
|
+
* share synchronized Store state.
|
|
37
|
+
*
|
|
38
|
+
* The server room's Store is considered the source of truth. If it is a
|
|
39
|
+
* newly-created room, then calling the save method on this Persister will
|
|
40
|
+
* initiate it. If, however, there is already a Store present on the server, the
|
|
41
|
+
* save method will fail gracefully.
|
|
42
|
+
*
|
|
43
|
+
* In general, you are strongly recommended to use the auto-save and auto-load
|
|
44
|
+
* functionality to stay in sync incrementally with the server, as per the
|
|
45
|
+
* example below. This pattern will handle newly-created servers and
|
|
46
|
+
* newly-created clients - and the synchronization involved in joining rooms,
|
|
47
|
+
* leaving them, or temporarily going offline.
|
|
48
|
+
*
|
|
49
|
+
* See the [PartyKit client socket API
|
|
50
|
+
* documentation](https://docs.partykit.io/reference/partysocket-api/) for more
|
|
51
|
+
* details.
|
|
52
|
+
* @param store The Store to persist.
|
|
53
|
+
* @param connection The PartySocket to use for participating in the PartyKit
|
|
54
|
+
* room.
|
|
55
|
+
* @param storeUrlProtocol The HTTP protocol to use (in addition to the
|
|
56
|
+
* websocket channel). This defaults to 'https' but you may wish to use 'http'
|
|
57
|
+
* for local PartyKit development.
|
|
58
|
+
* @param onIgnoredError An optional handler for the errors that the Persister
|
|
59
|
+
* would otherwise ignore when trying to save or load data. This is suitable for
|
|
60
|
+
* debugging persistence issues in a development environment.
|
|
61
|
+
* @returns A reference to the new Persister object.
|
|
62
|
+
* @example
|
|
63
|
+
* This example creates a Persister object and persists the Store to the
|
|
64
|
+
* browser's IndexedDB storage.
|
|
65
|
+
*
|
|
66
|
+
* ```js yolo
|
|
67
|
+
* const store =
|
|
68
|
+
* createStore()
|
|
69
|
+
* .setTable('pets', {fido: {species: 'dog'}})
|
|
70
|
+
* .setTable('species', {dog: {price: 5}})
|
|
71
|
+
* .setValues({open: true});
|
|
72
|
+
* const partySocket = new PartySocket({host: PARTYKIT_HOST, room: 'my_room'});
|
|
73
|
+
* const persister = createPartyKitPersister(store, partySocket);
|
|
74
|
+
* await persister.startAutoLoad();
|
|
75
|
+
* await persister.startAutoSave();
|
|
76
|
+
* // Store will now be synchronized with the room.
|
|
77
|
+
*
|
|
78
|
+
* persister.destroy();
|
|
79
|
+
* ```
|
|
80
|
+
* @category Creation
|
|
81
|
+
* @since 4.3.0
|
|
82
|
+
*/
|
|
83
|
+
export function createPartyKitPersister(
|
|
84
|
+
store: Store,
|
|
85
|
+
connection: PartySocket,
|
|
86
|
+
storeUrlProtocol?: 'http' | 'https',
|
|
87
|
+
onIgnoredError?: (error: any) => void,
|
|
88
|
+
): Persister;
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The persister-partykit-server module of the TinyBase project contains the
|
|
3
|
+
* server portion of the PartyKit integration.
|
|
4
|
+
*
|
|
5
|
+
* It contains a class which, when run in a PartyKit server environment, lets
|
|
6
|
+
* you save and load Store data from a client (that is using the complementary
|
|
7
|
+
* persister-partykit-client module) to durable PartyKit cloud storage.
|
|
8
|
+
*
|
|
9
|
+
* This enables synchronization of the same Store across multiple clients in a
|
|
10
|
+
* PartyKit party room.
|
|
11
|
+
*
|
|
12
|
+
* Note that both the client and server parts of this Persister are currently
|
|
13
|
+
* experimental as PartyKit is new and still maturing.
|
|
14
|
+
* @see Persisting Data guide
|
|
15
|
+
* @see Todo App v6 (collaboration) demo
|
|
16
|
+
* @packageDocumentation
|
|
17
|
+
* @module persister-partykit-server
|
|
18
|
+
* @since 4.3.0
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
import {Connection, Request, Server} from 'partykit/server';
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* A TinyBasePartyKitServer is the server component for persisting the Store to
|
|
25
|
+
* durable PartyKit storage, enabling synchronization of the same Store across
|
|
26
|
+
* multiple clients.
|
|
27
|
+
*
|
|
28
|
+
* This extends the PartyKit Server class, which provides a selection of methods
|
|
29
|
+
* you are expected to implement. The TinyBasePartyKitServer implements only two
|
|
30
|
+
* of them, the onMessage method and the onRequest method, as well as the
|
|
31
|
+
* constructor.
|
|
32
|
+
*
|
|
33
|
+
* If you wish to use TinyBasePartyKitServer as a general PartyKit server, you
|
|
34
|
+
* can implement other methods. But you must remember to call the super
|
|
35
|
+
* implementations of those methods to ensure the TinyBase synchronization stays
|
|
36
|
+
* supported in addition to your own custom functionality. The same applies to
|
|
37
|
+
* the constructor if you choose to implement that.
|
|
38
|
+
*
|
|
39
|
+
* ```js
|
|
40
|
+
* // This is your PartyKit server entry point.
|
|
41
|
+
*
|
|
42
|
+
* export default class extends TinyBasePartyServer {
|
|
43
|
+
* constructor(party) {
|
|
44
|
+
* super(party);
|
|
45
|
+
* // custom constructor code
|
|
46
|
+
* }
|
|
47
|
+
*
|
|
48
|
+
* async onStart() {
|
|
49
|
+
* // no need to call super.onStart()
|
|
50
|
+
* console.log('Server started');
|
|
51
|
+
* }
|
|
52
|
+
*
|
|
53
|
+
* async onMessage(message, client) {
|
|
54
|
+
* await super.onMessage(message, client);
|
|
55
|
+
* // custom onMessage code
|
|
56
|
+
* }
|
|
57
|
+
*
|
|
58
|
+
* async onRequest(request) {
|
|
59
|
+
* // custom onRequest code, else:
|
|
60
|
+
* return await super.onRequest(request);
|
|
61
|
+
* }
|
|
62
|
+
* }
|
|
63
|
+
* ```
|
|
64
|
+
*
|
|
65
|
+
* See the [PartyKit server API
|
|
66
|
+
* documentation](https://docs.partykit.io/reference/partyserver-api/) for
|
|
67
|
+
* more details.
|
|
68
|
+
*/
|
|
69
|
+
export class TinyBasePartyKitServer implements Server {
|
|
70
|
+
/**
|
|
71
|
+
* The onRequest method is called when a HTTP request is made to the party
|
|
72
|
+
* URL.
|
|
73
|
+
*
|
|
74
|
+
* If you choose to implement additional functionality in this method, you
|
|
75
|
+
* must remember to call the super implementation to ensure the TinyBase
|
|
76
|
+
* synchronization stays supported:
|
|
77
|
+
*
|
|
78
|
+
* ```js
|
|
79
|
+
* export default class extends TinyBasePartyServer {
|
|
80
|
+
* async onRequest(request) {
|
|
81
|
+
* // custom onRequest code, else:
|
|
82
|
+
* return await super.onRequest(request);
|
|
83
|
+
* }
|
|
84
|
+
* }
|
|
85
|
+
* ```
|
|
86
|
+
*
|
|
87
|
+
* See the [PartyKit server API
|
|
88
|
+
* documentation](https://docs.partykit.io/reference/partyserver-api/) for
|
|
89
|
+
* more details.
|
|
90
|
+
*/
|
|
91
|
+
onRequest(request: Request): Promise<Response>;
|
|
92
|
+
/**
|
|
93
|
+
* The onMessage method is called when the server receives a message from a
|
|
94
|
+
* client.
|
|
95
|
+
*
|
|
96
|
+
* If you choose to implement additional functionality in this method, you
|
|
97
|
+
* must remember to call the super implementation to ensure the TinyBase
|
|
98
|
+
* synchronization stays supported:
|
|
99
|
+
*
|
|
100
|
+
* ```js
|
|
101
|
+
* export default class extends TinyBasePartyServer {
|
|
102
|
+
* async onMessage(message, client) {
|
|
103
|
+
* await super.onMessage(message, client);
|
|
104
|
+
* // custom onMessage code
|
|
105
|
+
* }
|
|
106
|
+
* }
|
|
107
|
+
* ```
|
|
108
|
+
*
|
|
109
|
+
* See the [PartyKit server API
|
|
110
|
+
* documentation](https://docs.partykit.io/reference/partyserver-api/) for
|
|
111
|
+
* more details.
|
|
112
|
+
*/
|
|
113
|
+
onMessage(message: string, client: Connection): void;
|
|
114
|
+
}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* @see Persisting Data guide
|
|
6
6
|
* @packageDocumentation
|
|
7
7
|
* @module persister-sqlite-wasm
|
|
8
|
+
* @since v4.0.0
|
|
8
9
|
*/
|
|
9
10
|
|
|
10
11
|
import {DatabasePersisterConfig, Persister} from '../persisters';
|
|
@@ -101,6 +102,7 @@ import {Store} from '../store';
|
|
|
101
102
|
* persister.destroy();
|
|
102
103
|
* ```
|
|
103
104
|
* @category Creation
|
|
105
|
+
* @since v4.0.0
|
|
104
106
|
*/
|
|
105
107
|
export function createSqliteWasmPersister(
|
|
106
108
|
store: Store,
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* @see Persisting Data guide
|
|
6
6
|
* @packageDocumentation
|
|
7
7
|
* @module persister-sqlite3
|
|
8
|
+
* @since v4.0.0
|
|
8
9
|
*/
|
|
9
10
|
|
|
10
11
|
import {DatabasePersisterConfig, Persister} from '../persisters';
|
|
@@ -109,6 +110,7 @@ import {Store} from '../store';
|
|
|
109
110
|
* persister.destroy();
|
|
110
111
|
* ```
|
|
111
112
|
* @category Creation
|
|
113
|
+
* @since v4.0.0
|
|
112
114
|
*/
|
|
113
115
|
export function createSqlite3Persister(
|
|
114
116
|
store: Store,
|
package/lib/types/store.d.ts
CHANGED
|
@@ -5619,6 +5619,8 @@ export interface Store {
|
|
|
5619
5619
|
* Note that a TransactionListener added to the Store with this method can
|
|
5620
5620
|
* mutate the Store, and its changes will be treated as part of the
|
|
5621
5621
|
* transaction that is starting.
|
|
5622
|
+
* @param listener The function that will be called at the start of a
|
|
5623
|
+
* transaction.
|
|
5622
5624
|
* @returns A unique Id for the listener that can later be used to remove it.
|
|
5623
5625
|
* @example
|
|
5624
5626
|
* This example registers a listener that is called at start end of the
|
|
@@ -5675,6 +5677,8 @@ export interface Store {
|
|
|
5675
5677
|
* mutate the Store itself, and its changes will be treated as part of the
|
|
5676
5678
|
* transaction that is starting (and may fire non-mutating listeners after
|
|
5677
5679
|
* this).
|
|
5680
|
+
* @param listener The function that will be called before the end of a
|
|
5681
|
+
* transaction.
|
|
5678
5682
|
* @returns A unique Id for the listener that can later be used to remove it.
|
|
5679
5683
|
* @example
|
|
5680
5684
|
* This example registers a listener that is called at the end of the
|
|
@@ -5771,6 +5775,8 @@ export interface Store {
|
|
|
5771
5775
|
*
|
|
5772
5776
|
* Note that a TransactionListener added to the Store with this method
|
|
5773
5777
|
* _cannot_ mutate the Store itself, and attempts to do so will fail silently.
|
|
5778
|
+
* @param listener The function that will be called after the end of a
|
|
5779
|
+
* transaction.
|
|
5774
5780
|
* @returns A unique Id for the listener that can later be used to remove it.
|
|
5775
5781
|
* @example
|
|
5776
5782
|
* This example registers a listener that is called at the end of the
|