tinybase 4.0.0-beta.4 → 4.0.0-beta.5.1
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-automerge.cjs +1 -0
- package/lib/cjs/persisters/persister-automerge.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-browser.cjs +1 -0
- package/lib/cjs/persisters/persister-browser.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs +1 -0
- package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-file.cjs +1 -0
- package/lib/cjs/persisters/persister-file.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-remote.cjs +1 -0
- package/lib/cjs/persisters/persister-remote.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-sqlite-wasm.cjs +1 -0
- package/lib/cjs/persisters/persister-sqlite-wasm.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-sqlite3.cjs +1 -0
- package/lib/cjs/persisters/persister-sqlite3.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-yjs.cjs +1 -0
- package/lib/cjs/persisters/persister-yjs.cjs.gz +0 -0
- package/lib/cjs/persisters.cjs +1 -1
- package/lib/cjs/persisters.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.cjs +1 -1
- package/lib/cjs/ui-react.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-automerge.cjs +1 -0
- package/lib/cjs-es6/persisters/persister-automerge.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-browser.cjs +1 -0
- package/lib/cjs-es6/persisters/persister-browser.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs +1 -0
- package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-file.cjs +1 -0
- package/lib/cjs-es6/persisters/persister-file.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-remote.cjs +1 -0
- package/lib/cjs-es6/persisters/persister-remote.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs +1 -0
- package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-sqlite3.cjs +1 -0
- package/lib/cjs-es6/persisters/persister-sqlite3.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-yjs.cjs +1 -0
- package/lib/cjs-es6/persisters/persister-yjs.cjs.gz +0 -0
- package/lib/cjs-es6/persisters.cjs +1 -1
- package/lib/cjs-es6/persisters.cjs.gz +0 -0
- package/lib/cjs-es6/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.cjs +1 -1
- package/lib/cjs-es6/ui-react.cjs.gz +0 -0
- package/lib/debug/{persister-automerge.js → persisters/persister-automerge.js} +58 -31
- package/lib/debug/{persister-browser.js → persisters/persister-browser.js} +49 -20
- package/lib/debug/persisters/persister-cr-sqlite-wasm.js +665 -0
- package/lib/debug/{persister-file.js → persisters/persister-file.js} +51 -25
- package/lib/debug/{persister-remote.js → persisters/persister-remote.js} +48 -19
- package/lib/debug/persisters/persister-sqlite-wasm.js +673 -0
- package/lib/debug/persisters/persister-sqlite3.js +676 -0
- package/lib/debug/{persister-yjs.js → persisters/persister-yjs.js} +49 -20
- package/lib/debug/persisters.js +47 -18
- package/lib/debug/store.js +79 -29
- package/lib/debug/tinybase.js +123 -46
- package/lib/debug/tools.js +121 -27
- package/lib/debug/ui-react.js +24 -0
- package/lib/es6/persisters/persister-automerge.js +1 -0
- package/lib/es6/persisters/persister-automerge.js.gz +0 -0
- package/lib/es6/persisters/persister-browser.js +1 -0
- package/lib/es6/persisters/persister-browser.js.gz +0 -0
- package/lib/es6/persisters/persister-cr-sqlite-wasm.js +1 -0
- package/lib/es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
- package/lib/es6/persisters/persister-file.js +1 -0
- package/lib/es6/persisters/persister-file.js.gz +0 -0
- package/lib/es6/persisters/persister-remote.js +1 -0
- package/lib/es6/persisters/persister-remote.js.gz +0 -0
- package/lib/es6/persisters/persister-sqlite-wasm.js +1 -0
- package/lib/es6/persisters/persister-sqlite-wasm.js.gz +0 -0
- package/lib/es6/persisters/persister-sqlite3.js +1 -0
- package/lib/es6/persisters/persister-sqlite3.js.gz +0 -0
- package/lib/es6/persisters/persister-yjs.js +1 -0
- package/lib/es6/persisters/persister-yjs.js.gz +0 -0
- package/lib/es6/persisters.js +1 -1
- package/lib/es6/persisters.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.js +1 -1
- package/lib/es6/ui-react.js.gz +0 -0
- package/lib/persisters/persister-automerge.js +1 -0
- package/lib/persisters/persister-automerge.js.gz +0 -0
- package/lib/persisters/persister-browser.js +1 -0
- package/lib/persisters/persister-browser.js.gz +0 -0
- package/lib/persisters/persister-cr-sqlite-wasm.js +1 -0
- package/lib/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
- package/lib/persisters/persister-file.js +1 -0
- package/lib/persisters/persister-file.js.gz +0 -0
- package/lib/persisters/persister-remote.js +1 -0
- package/lib/persisters/persister-remote.js.gz +0 -0
- package/lib/persisters/persister-sqlite-wasm.js +1 -0
- package/lib/persisters/persister-sqlite-wasm.js.gz +0 -0
- package/lib/persisters/persister-sqlite3.js +1 -0
- package/lib/persisters/persister-sqlite3.js.gz +0 -0
- package/lib/persisters/persister-yjs.js +1 -0
- package/lib/persisters/persister-yjs.js.gz +0 -0
- package/lib/persisters.js +1 -1
- package/lib/persisters.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/checkpoints.d.ts +0 -27
- package/lib/types/common.d.ts +0 -9
- package/lib/types/indexes.d.ts +0 -26
- package/lib/types/metrics.d.ts +0 -23
- package/lib/types/{persister-automerge.d.ts → persisters/persister-automerge.d.ts} +4 -6
- package/lib/types/{persister-browser.d.ts → persisters/persister-browser.d.ts} +2 -5
- package/lib/types/persisters/persister-cr-sqlite-wasm.d.ts +95 -0
- package/lib/types/{persister-file.d.ts → persisters/persister-file.d.ts} +3 -5
- package/lib/types/{persister-remote.d.ts → persisters/persister-remote.d.ts} +2 -4
- package/lib/types/persisters/persister-sqlite-wasm.d.ts +102 -0
- package/lib/types/persisters/persister-sqlite3.d.ts +109 -0
- package/lib/types/{persister-yjs.d.ts → persisters/persister-yjs.d.ts} +4 -6
- package/lib/types/persisters.d.ts +517 -27
- package/lib/types/queries.d.ts +52 -127
- package/lib/types/relationships.d.ts +0 -26
- package/lib/types/store.d.ts +347 -196
- package/lib/types/tinybase.d.ts +0 -1
- package/lib/types/tools.d.ts +15 -28
- package/lib/types/ui-react.d.ts +196 -181
- package/lib/types/with-schemas/checkpoints.d.ts +5 -32
- package/lib/types/with-schemas/common.d.ts +0 -9
- package/lib/types/with-schemas/indexes.d.ts +9 -35
- package/lib/types/with-schemas/metrics.d.ts +9 -32
- package/lib/types/with-schemas/{persister-automerge.d.ts → persisters/persister-automerge.d.ts} +4 -6
- package/lib/types/with-schemas/{persister-browser.d.ts → persisters/persister-browser.d.ts} +2 -5
- package/lib/types/with-schemas/persisters/persister-cr-sqlite-wasm.d.ts +105 -0
- package/lib/types/with-schemas/{persister-file.d.ts → persisters/persister-file.d.ts} +3 -5
- package/lib/types/with-schemas/{persister-remote.d.ts → persisters/persister-remote.d.ts} +2 -4
- package/lib/types/with-schemas/persisters/persister-sqlite-wasm.d.ts +113 -0
- package/lib/types/with-schemas/persisters/persister-sqlite3.d.ts +119 -0
- package/lib/types/with-schemas/{persister-yjs.d.ts → persisters/persister-yjs.d.ts} +4 -6
- package/lib/types/with-schemas/persisters.d.ts +534 -29
- package/lib/types/with-schemas/queries.d.ts +61 -224
- package/lib/types/with-schemas/relationships.d.ts +9 -35
- package/lib/types/with-schemas/store.d.ts +488 -239
- package/lib/types/with-schemas/tinybase.d.ts +0 -1
- package/lib/types/with-schemas/tools.d.ts +19 -32
- package/lib/types/with-schemas/ui-react.d.ts +221 -186
- package/lib/ui-react.js +1 -1
- package/lib/ui-react.js.gz +0 -0
- package/lib/umd/persisters/persister-automerge.js +1 -0
- package/lib/umd/persisters/persister-automerge.js.gz +0 -0
- package/lib/umd/persisters/persister-browser.js +1 -0
- package/lib/umd/persisters/persister-browser.js.gz +0 -0
- package/lib/umd/persisters/persister-cr-sqlite-wasm.js +1 -0
- package/lib/umd/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
- package/lib/umd/persisters/persister-file.js +1 -0
- package/lib/umd/persisters/persister-file.js.gz +0 -0
- package/lib/umd/persisters/persister-remote.js +1 -0
- package/lib/umd/persisters/persister-remote.js.gz +0 -0
- package/lib/umd/persisters/persister-sqlite-wasm.js +1 -0
- package/lib/umd/persisters/persister-sqlite-wasm.js.gz +0 -0
- package/lib/umd/persisters/persister-sqlite3.js +1 -0
- package/lib/umd/persisters/persister-sqlite3.js.gz +0 -0
- package/lib/umd/persisters/persister-yjs.js +1 -0
- package/lib/umd/persisters/persister-yjs.js.gz +0 -0
- package/lib/umd/persisters.js +1 -1
- package/lib/umd/persisters.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.js +1 -1
- package/lib/umd/ui-react.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-automerge.js +1 -0
- package/lib/umd-es6/persisters/persister-automerge.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-browser.js +1 -0
- package/lib/umd-es6/persisters/persister-browser.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js +1 -0
- package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-file.js +1 -0
- package/lib/umd-es6/persisters/persister-file.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-remote.js +1 -0
- package/lib/umd-es6/persisters/persister-remote.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-sqlite-wasm.js +1 -0
- package/lib/umd-es6/persisters/persister-sqlite-wasm.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-sqlite3.js +1 -0
- package/lib/umd-es6/persisters/persister-sqlite3.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-yjs.js +1 -0
- package/lib/umd-es6/persisters/persister-yjs.js.gz +0 -0
- package/lib/umd-es6/persisters.js +1 -1
- package/lib/umd-es6/persisters.js.gz +0 -0
- package/lib/umd-es6/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.js +1 -1
- package/lib/umd-es6/ui-react.js.gz +0 -0
- package/package.json +39 -22
- package/readme.md +3 -3
- package/lib/cjs/persister-automerge.cjs +0 -1
- package/lib/cjs/persister-automerge.cjs.gz +0 -0
- package/lib/cjs/persister-browser.cjs +0 -1
- package/lib/cjs/persister-browser.cjs.gz +0 -0
- package/lib/cjs/persister-file.cjs +0 -1
- package/lib/cjs/persister-file.cjs.gz +0 -0
- package/lib/cjs/persister-remote.cjs +0 -1
- package/lib/cjs/persister-remote.cjs.gz +0 -0
- package/lib/cjs/persister-yjs.cjs +0 -1
- package/lib/cjs/persister-yjs.cjs.gz +0 -0
- package/lib/cjs-es6/persister-automerge.cjs +0 -1
- package/lib/cjs-es6/persister-automerge.cjs.gz +0 -0
- package/lib/cjs-es6/persister-browser.cjs +0 -1
- package/lib/cjs-es6/persister-browser.cjs.gz +0 -0
- package/lib/cjs-es6/persister-file.cjs +0 -1
- package/lib/cjs-es6/persister-file.cjs.gz +0 -0
- package/lib/cjs-es6/persister-remote.cjs +0 -1
- package/lib/cjs-es6/persister-remote.cjs.gz +0 -0
- package/lib/cjs-es6/persister-yjs.cjs +0 -1
- package/lib/cjs-es6/persister-yjs.cjs.gz +0 -0
- package/lib/es6/persister-automerge.js +0 -1
- package/lib/es6/persister-automerge.js.gz +0 -0
- package/lib/es6/persister-browser.js +0 -1
- package/lib/es6/persister-browser.js.gz +0 -0
- package/lib/es6/persister-file.js +0 -1
- package/lib/es6/persister-file.js.gz +0 -0
- package/lib/es6/persister-remote.js +0 -1
- package/lib/es6/persister-remote.js.gz +0 -0
- package/lib/es6/persister-yjs.js +0 -1
- package/lib/es6/persister-yjs.js.gz +0 -0
- package/lib/persister-automerge.js +0 -1
- package/lib/persister-automerge.js.gz +0 -0
- package/lib/persister-browser.js +0 -1
- package/lib/persister-browser.js.gz +0 -0
- package/lib/persister-file.js +0 -1
- package/lib/persister-file.js.gz +0 -0
- package/lib/persister-remote.js +0 -1
- package/lib/persister-remote.js.gz +0 -0
- package/lib/persister-yjs.js +0 -1
- package/lib/persister-yjs.js.gz +0 -0
- package/lib/umd/persister-automerge.js +0 -1
- package/lib/umd/persister-automerge.js.gz +0 -0
- package/lib/umd/persister-browser.js +0 -1
- package/lib/umd/persister-browser.js.gz +0 -0
- package/lib/umd/persister-file.js +0 -1
- package/lib/umd/persister-file.js.gz +0 -0
- package/lib/umd/persister-remote.js +0 -1
- package/lib/umd/persister-remote.js.gz +0 -0
- package/lib/umd/persister-yjs.js +0 -1
- package/lib/umd/persister-yjs.js.gz +0 -0
- package/lib/umd-es6/persister-automerge.js +0 -1
- package/lib/umd-es6/persister-automerge.js.gz +0 -0
- package/lib/umd-es6/persister-browser.js +0 -1
- package/lib/umd-es6/persister-browser.js.gz +0 -0
- package/lib/umd-es6/persister-file.js +0 -1
- package/lib/umd-es6/persister-file.js.gz +0 -0
- package/lib/umd-es6/persister-remote.js +0 -1
- package/lib/umd-es6/persister-remote.js.gz +0 -0
- package/lib/umd-es6/persister-yjs.js +0 -1
- package/lib/umd-es6/persister-yjs.js.gz +0 -0
package/lib/store.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=e=>typeof e,t="",s=e(t),n=e(!0),l=e(0),a=e(e),r="type",o="default",c="Ids",i="Table",d=i+"s",u=i+c,h="Row"+c,g="Cell",f=g+c,T="Value",V=T+"s",v=T+c,b=e=>t+e,S=(e,t)=>e.forEach(t),C=(e,t)=>e.map(t),w=e=>e.length,I=(e,t,s)=>e.slice(t,s),R=(e,...t)=>e.push(...t),y=e=>JSON.stringify(e,((e,t)=>{return p(t,Map)?(s=(e,[t,s])=>(e[t]=s,e),n={},[...t].reduce(s,n)):t;var s,n})),J=JSON.parse,m=isFinite,p=(e,t)=>e instanceof t,L=e=>null==e,E=(e,t,s)=>L(e)?s?.():t(e),F=e=>e==s||e==n,z=t=>e(t)==a,O=Object,k=O.keys,A=O.isFrozen,M=O.freeze,N=e=>p(e,O)&&e.constructor==O,P=(e,t)=>!L(((e,t)=>E(e,(e=>e[t])))(e,t)),j=(e,t)=>delete e[t],x=(e,t)=>C(O.entries(e),(([e,s])=>t(s,e))),D=e=>{return N(e)&&(t=k(e),0==w(t));var t},W=(e,t)=>e?.has(t)??!1,$=e=>L(e)||0==(e=>e.size)(e),q=e=>e.clear(),B=(e,t)=>e?.forEach(t),G=(e,t)=>e?.delete(t),H=e=>new Map(e),K=e=>[...e?.keys()??[]],Q=(e,t)=>e?.get(t),U=(e,t)=>B(e,((e,s)=>t(s,e))),X=(e,t,s)=>L(s)?(G(e,t),e):e?.set(t,s),Y=(e,t,s)=>(W(e,t)||X(e,t,s()),Q(e,t)),Z=(e,t,s)=>{const n={};return B(e,((e,l)=>{const a=t?t(e,l):e;!s?.(a,e)&&(n[l]=a)})),n},_=(e,t,s)=>Z(e,(e=>Z(e,t,s)),D),ee=(e,t,s)=>Z(e,(e=>_(e,t,s)),D),te=(e,t)=>{const s=H();return B(e,((e,n)=>s.set(n,t?.(e)??e))),s},se=e=>te(e,te),ne=e=>te(e,se),le=(e,t,s,n,l=0)=>E((s?Y:Q)(e,t[l],l>w(t)-2?s:H),(a=>{if(l>w(t)-2)return n?.(a)&&X(e,t[l]),a;const r=le(a,t,s,n,l+1);return $(a)&&X(e,t[l]),r})),ae=e=>new Set(Array.isArray(e)||L(e)?e:[e]),re=(e,t)=>e?.add(t),oe=/^\d+$/,ce=()=>{const e=[];let s=0;return[n=>(n?e.shift():null)??t+s++,t=>{oe.test(t)&&w(e)<1e3&&R(e,t)}]},ie=e=>[e,e],de=()=>[H(),H()],ue=e=>[...e],he=([e,t])=>e===t,ge=t=>{const s=e(t);return F(s)||s==l&&m(t)?s:void 0},fe=(e,t,s,n,l)=>L(l)?e.delCell(t,s,n,!0):e.setCell(t,s,n,l),Te=(e,t,s)=>L(s)?e.delValue(t):e.setValue(t,s),Ve=(e,t,s,n=X)=>(x(t,((t,n)=>s(e,n,t))),U(e,(s=>P(t,s)?0:n(e,s))),e),ve=(e,t,s)=>L(e)||!N(e)||D(e)||A(e)?(s?.(),!1):(x(e,((s,n)=>{t(s,n)||j(e,n)})),!D(e)),be=(e,t,s)=>X(e,t,Q(e,t)==-s?void 0:s),Se=()=>{let e,s,n=!1,a=!1,c=0;const m=H(),p=H(),O=H(),k=H(),A=H(),N=H(),oe=H(),Ce=H(),we=H(),Ie=H(),Re=H(),ye=H(),Je=ae(),me=H(),pe=H(),Le=H(),Ee=de(),Fe=de(),ze=de(),Oe=de(),ke=de(),Ae=de(),Me=de(),Ne=de(),Pe=de(),je=de(),xe=de(),De=de(),We=de(),$e=H(),qe=de(),[Be,Ge,He,Ke]=(e=>{let s;const[n,l]=ce(),a=H();return[(e,l,r,o=[],c=(()=>[]))=>{s??=rs;const i=n(1);return X(a,i,[e,l,r,o,c]),re(le(l,r??[t],ae),i),i},(e,n,...l)=>S(((e,s=[t])=>{const n=[],l=(e,t)=>t==w(s)?R(n,e):null===s[t]?B(e,(e=>l(e,t+1))):S([s[t],null],(s=>l(Q(e,s),t+1)));return l(e,0),n})(e,n),(e=>B(e,(e=>Q(a,e)[0](s,...n??[],...l))))),e=>E(Q(a,e),(([,s,n])=>(le(s,n??[t],void 0,(t=>(G(t,e),$(t)?1:0))),X(a,e),l(e),n))),e=>E(Q(a,e),(([e,,t=[],n,l])=>{const a=(...r)=>{const o=w(r);o==w(t)?e(s,...r,...l(r)):L(t[o])?S(n[o]?.(...r)??[],(e=>a(...r,e))):a(...r,t[o])};a()}))]})(),Qe=e=>{if(!ve(e,((e,t)=>[r,o].includes(t))))return!1;const t=e[r];return!(!F(t)&&t!=l||(ge(e[o])!=t&&j(e,o),0))},Ue=(t,s)=>(!e||W(we,s)||Jt(s))&&ve(t,((e,t)=>Xe(s,t,e)),(()=>Jt(s))),Xe=(e,t,s,n)=>ve(n?s:et(s,e,t),((n,l)=>E(Ye(e,t,l,n),(e=>(s[l]=e,!0)),(()=>!1))),(()=>Jt(e,t))),Ye=(t,s,n,l)=>e?E(Q(Q(we,t),n),(e=>ge(l)!=e[r]?Jt(t,s,n,l,e[o]):l),(()=>Jt(t,s,n,l))):L(ge(l))?Jt(t,s,n,l):l,Ze=(e,t)=>ve(t?e:tt(e),((t,s)=>E(_e(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>mt())),_e=(e,t)=>s?E(Q(Re,e),(s=>ge(t)!=s[r]?mt(e,t,s[o]):t),(()=>mt(e,t))):L(ge(t))?mt(e,t):t,et=(e,t,s)=>(E(Q(Ie,t),(([n,l])=>{B(n,((t,s)=>{P(e,s)||(e[s]=t)})),B(l,(n=>{P(e,n)||Jt(t,s,n)}))})),e),tt=e=>(s&&(B(ye,((t,s)=>{P(e,s)||(e[s]=t)})),B(Je,(t=>{P(e,t)||mt(t)}))),e),st=e=>Ve(we,e,((e,t,s)=>{const n=H(),l=ae();Ve(Y(we,t,H),s,((e,t,s)=>{X(e,t,s),E(s[o],(e=>X(n,t,e)),(()=>re(l,t)))})),X(Ie,t,[n,l])}),((e,t)=>{X(we,t),X(Ie,t)})),nt=e=>Ve(Re,e,((e,t,s)=>{X(Re,t,s),E(s[o],(e=>X(ye,t,e)),(()=>re(Je,t)))}),((e,t)=>{X(Re,t),X(ye,t),G(Je,t)})),lt=e=>D(e)?Yt():Ht(e),at=e=>Ve(pe,e,((e,t,s)=>rt(t,s)),((e,t)=>Tt(t))),rt=(e,t)=>Ve(Y(pe,e,(()=>(St(e,1),H()))),t,((t,s,n)=>ot(e,t,s,n)),((t,s)=>Vt(e,t,s))),ot=(e,t,s,n,l)=>Ve(Y(t,s,(()=>(Ct(e,s,1),H()))),n,((t,n,l)=>ct(e,s,t,n,l)),((n,a)=>vt(e,t,s,n,a,l))),ct=(e,t,s,n,l)=>{W(s,n)||wt(e,t,n,1);const a=Q(s,n);l!==a&&(It(e,t,n,a,l),X(s,n,l))},it=(e,t,s,n,l)=>E(Q(t,s),(t=>ct(e,s,t,n,l)),(()=>ot(e,t,s,et({[n]:l},e,s)))),dt=e=>D(e)?es():Kt(e),ut=e=>Ve(Le,e,((e,t,s)=>ht(t,s)),((e,t)=>bt(t))),ht=(e,t)=>{W(Le,e)||Rt(e,1);const s=Q(Le,e);t!==s&&(yt(e,s,t),X(Le,e,t))},gt=(e,t)=>{const[s]=Y(me,e,ce),n=s(t);return W(Q(pe,e),n)?gt(e,t):n},ft=e=>Q(pe,e)??rt(e,{}),Tt=e=>rt(e,{}),Vt=(e,t,s)=>{const[,n]=Y(me,e,ce);n(s),ot(e,t,s,{},!0)},vt=(e,t,s,n,l,a)=>{const r=Q(Q(Ie,e)?.[0],l);if(!L(r)&&!a)return ct(e,s,n,l,r);const o=t=>{It(e,s,t,Q(n,t)),wt(e,s,t,-1),X(n,t)};L(r)?o(l):U(n,o),$(n)&&(Ct(e,s,-1),$(X(t,s))&&(St(e,-1),X(pe,e),X(me,e)))},bt=e=>{const t=Q(ye,e);if(!L(t))return ht(e,t);yt(e,Q(Le,e)),Rt(e,-1),X(Le,e)},St=(e,t)=>be(m,e,t),Ct=(e,t,s)=>be(Y(p,e,H),t,s),wt=(e,t,s,n)=>be(Y(Y(O,e,H),t,H),s,n),It=(e,t,s,n,l)=>Y(Y(Y(k,e,H),t,H),s,(()=>[n,0]))[1]=l,Rt=(e,t)=>be(A,e,t),yt=(e,t,s)=>Y(N,e,(()=>[t,0]))[1]=s,Jt=(e,t,s,n,l)=>(R(Y(Y(Y(oe,e,H),t,H),s,(()=>[])),n),l),mt=(e,t,s)=>(R(Y(Ce,e,(()=>[])),t),s),pt=(e,t,s)=>E(Q(Q(Q(k,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...ie($t(e,t,s))])),Lt=e=>E(Q(N,e),(([e,t])=>[!0,e,t]),(()=>[!1,...ie(Gt(e))])),Et=e=>$(oe)||$(Pe[e])?0:B(e?ne(oe):oe,((t,s)=>B(t,((t,n)=>B(t,((t,l)=>Ge(Pe[e],[s,n,l],t))))))),Ft=e=>$(Ce)||$(je[e])?0:B(e?te(Ce):Ce,((t,s)=>Ge(je[e],[s],t))),zt=(e,t,s)=>{if(!$(t))return Ge(e,s),1},Ot=e=>{const t=$(ke[e]),s=$(Me[e])&&$(Oe[e])&&t&&$(Fe[e]),n=$(Ne[e])&&$(Ae[e])&&$(ze[e])&&$(Ee[e]);if(!s||!n){const l=e?[te(m),se(p),ne(O),ne(k)]:[m,p,O,k];if(!s){B(l[2],((t,s)=>B(t,((t,n)=>zt(Me[e],t,[s,n])))));const s=ae();B(l[1],((n,l)=>{zt(Oe[e],n,[l])&&!t&&(Ge(ke[e],[l,null]),re(s,l))})),t||B(l[3],((t,n)=>{if(!W(s,n)){const s=ae();B(t,(e=>B(e,(([t,n],l)=>n!==t?re(s,l):G(e,l))))),B(s,(t=>Ge(ke[e],[n,t])))}})),zt(Fe[e],l[0])}if(!n){let t;B(l[3],((s,n)=>{let l;B(s,((s,a)=>{let r;B(s,(([s,o],c)=>{o!==s&&(Ge(Ne[e],[n,a,c],o,s,pt),t=l=r=1)})),r&&Ge(Ae[e],[n,a],pt)})),l&&Ge(ze[e],[n],pt)})),t&&Ge(Ee[e],void 0,pt)}}},kt=e=>{const t=$(De[e]),s=$(We[e])&&$(xe[e]);if(!t||!s){const n=e?[te(A),te(N)]:[A,N];if(t||zt(De[e],n[0]),!s){let t;B(n[1],(([s,n],l)=>{n!==s&&(Ge(We[e],[l],n,s,Lt),t=1)})),t&&Ge(xe[e],void 0,Lt)}}},At=(e,...t)=>(ns((()=>e(...C(t,b)))),rs),Mt=()=>[Z(k,((e,t)=>-1===Q(m,t)?null:Z(e,((e,s)=>-1===Q(Q(p,t),s)?null:Z(e,(([,e])=>e??null),((e,t)=>he(t)))),D)),D),Z(N,(([,e])=>e??null),((e,t)=>he(t)))],Nt=()=>({cellsTouched:n,valuesTouched:a,changedCells:ee(k,ue,he),invalidCells:ee(oe),changedValues:Z(N,ue,he),invalidValues:Z(Ce),changedTableIds:Z(m),changedRowIds:_(p),changedCellIds:ee(O),changedValueIds:Z(A)}),Pt=()=>ee(pe),jt=()=>K(pe),xt=e=>K(Q(pe,b(e))),Dt=(e,t,s,n=0,l)=>{return C(I((r=Q(pe,b(e)),o=(e,s)=>[L(t)?s:Q(e,b(t)),s],a=([e],[t])=>(e<t?-1:1)*(s?-1:1),C([...r?.entries()??[]],(([e,t])=>o(t,e))).sort(a)),n,L(l)?l:n+l),(([,e])=>e));var a,r,o},Wt=(e,t)=>K(Q(Q(pe,b(e)),b(t))),$t=(e,t,s)=>Q(Q(Q(pe,b(e)),b(t)),b(s)),qt=()=>Z(Le),Bt=()=>K(Le),Gt=e=>Q(Le,b(e)),Ht=e=>At((()=>(e=>ve(e,Ue,Jt))(e)?at(e):0)),Kt=e=>At((()=>Ze(e)?ut(e):0)),Qt=e=>{try{lt(J(e))}catch{}return rs},Ut=t=>At((()=>{if((e=ve(t,(e=>ve(e,Qe))))&&(st(t),!$(pe))){const e=Pt();Yt(),Ht(e)}})),Xt=e=>At((()=>{if(s=(e=>ve(e,Qe))(e)){const t=qt();ss(),es(),s=!0,nt(e),Kt(t)}})),Yt=()=>At((()=>at({}))),Zt=e=>At((e=>W(pe,e)?Tt(e):0),e),_t=(e,t)=>At(((e,t)=>E(Q(pe,e),(s=>W(s,t)?Vt(e,s,t):0))),e,t),es=()=>At((()=>ut({}))),ts=()=>At((()=>{st({}),e=!1})),ss=()=>At((()=>{nt({}),s=!1})),ns=(e,t)=>{if(-1!=c){ls();const s=e();return as(t),s}},ls=()=>(-1!=c&&c++,1==c&&Ge($e,void 0,Mt,Nt),rs),as=e=>(c>0&&(c--,0==c&&(n=!$(k),a=!$(N),c=1,Et(1),n&&Ot(1),Ft(1),a&&kt(1),e?.(Mt,Nt)&&(B(k,((e,t)=>B(e,((e,s)=>B(e,(([e],n)=>fe(rs,t,s,n,e))))))),B(N,(([e],t)=>Te(rs,t,e))),n=a=!1),Ge(qe[0],void 0,Mt,Nt),c=-1,Et(0),n&&Ot(0),Ft(0),a&&kt(0),Ge(qe[1],void 0,Mt,Nt),c=0,n=a=!1,S([m,p,O,k,oe,A,N,Ce],q))),rs),rs={getContent:()=>[Pt(),qt()],getTables:Pt,getTableIds:jt,getTable:e=>_(Q(pe,b(e))),getRowIds:xt,getSortedRowIds:Dt,getRow:(e,t)=>Z(Q(Q(pe,b(e)),b(t))),getCellIds:Wt,getCell:$t,getValues:qt,getValueIds:Bt,getValue:Gt,hasTables:()=>!$(pe),hasTable:e=>W(pe,b(e)),hasRow:(e,t)=>W(Q(pe,b(e)),b(t)),hasCell:(e,t,s)=>W(Q(Q(pe,b(e)),b(t)),b(s)),hasValues:()=>!$(Le),hasValue:e=>W(Le,b(e)),getTablesJson:()=>y(pe),getValuesJson:()=>y(Le),getJson:()=>y([pe,Le]),getTablesSchemaJson:()=>y(we),getValuesSchemaJson:()=>y(Re),getSchemaJson:()=>y([we,Re]),setContent:([e,t])=>At((()=>{Ht(e),Kt(t)})),setTables:Ht,setTable:(e,t)=>At((e=>Ue(t,e)?rt(e,t):0),e),setRow:(e,t,s)=>At(((e,t)=>Xe(e,t,s)?ot(e,ft(e),t,s):0),e,t),addRow:(e,t,s=!0)=>ns((()=>{let n;return Xe(e,n,t)&&(e=b(e),ot(e,ft(e),n=gt(e,s?1:0),t)),n})),setPartialRow:(e,t,s)=>At(((e,t)=>{if(Xe(e,t,s,1)){const n=ft(e);x(s,((s,l)=>it(e,n,t,l,s)))}}),e,t),setCell:(e,t,s,n)=>At(((e,t,s)=>E(Ye(e,t,s,z(n)?n($t(e,t,s)):n),(n=>it(e,ft(e),t,s,n)))),e,t,s),setValues:Kt,setPartialValues:e=>At((()=>Ze(e,1)?x(e,((e,t)=>ht(t,e))):0)),setValue:(e,t)=>At((e=>E(_e(e,z(t)?t(Gt(e)):t),(t=>ht(e,t)))),e),setTransactionChanges:e=>At((()=>{x(e[0],((e,t)=>L(e)?Zt(t):x(e,((e,s)=>L(e)?_t(t,s):x(e,((e,n)=>fe(rs,t,s,n,e))))))),x(e[1],((e,t)=>Te(rs,t,e)))})),setTablesJson:Qt,setValuesJson:e=>{try{dt(J(e))}catch{}return rs},setJson:e=>{try{const[t,s]=J(e);lt(t),dt(s)}catch{Qt(e)}return rs},setTablesSchema:Ut,setValuesSchema:Xt,setSchema:(e,t)=>At((()=>{Ut(e),Xt(t)})),delTables:Yt,delTable:Zt,delRow:_t,delCell:(e,t,s,n)=>At(((e,t,s)=>E(Q(pe,e),(l=>E(Q(l,t),(a=>W(a,s)?vt(e,l,t,a,s,n):0))))),e,t,s),delValues:es,delValue:e=>At((e=>W(Le,e)?bt(e):0),e),delTablesSchema:ts,delValuesSchema:ss,delSchema:()=>At((()=>{ts(),ss()})),transaction:ns,startTransaction:ls,finishTransaction:as,forEachTable:e=>B(pe,((t,s)=>e(s,(e=>B(t,((t,s)=>e(s,(e=>U(t,e))))))))),forEachRow:(e,t)=>B(Q(pe,b(e)),((e,s)=>t(s,(t=>U(e,t))))),forEachCell:(e,t,s)=>U(Q(Q(pe,b(e)),b(t)),s),forEachValue:e=>U(Le,e),addSortedRowIdsListener:(e,t,s,n,l,a,r)=>{let o=Dt(e,t,s,n,l);return Be((()=>{const r=Dt(e,t,s,n,l);var c,i,d;i=o,w(c=r)===w(i)&&(d=(e,t)=>i[t]===e,c.every(d))||(o=r,a(rs,e,t,s,n,l,o))}),ke[r?1:0],[e,t],[jt])},addStartTransactionListener:e=>Be(e,$e),addWillFinishTransactionListener:e=>Be(e,qe[0]),addDidFinishTransactionListener:e=>Be(e,qe[1]),callListener:e=>(Ke(e),rs),delListener:e=>(He(e),rs),getListenerStats:()=>({}),createStore:Se};return x({[d]:[0,Ee],[u]:[0,Fe],[i]:[1,ze,[jt]],[h]:[1,Oe,[jt]],Row:[2,Ae,[jt,xt]],[f]:[2,Me,[jt,xt]],[g]:[3,Ne,[jt,xt,Wt],e=>ie($t(...e))],InvalidCell:[3,Pe],[V]:[0,xe],[v]:[0,De],[T]:[1,We,[Bt],e=>ie(Gt(e[0]))],InvalidValue:[1,je]},(([e,t,s,n],l)=>{rs["add"+l+"Listener"]=(...l)=>Be(l[e],t[l[e+1]?1:0],e>0?I(l,0,e):void 0,s,n)})),M(rs)};export{Se as createStore};
|
|
1
|
+
const e=e=>typeof e,t="",s=e(t),l=e(!0),n=e(0),a=e(e),r="type",o="default",c="Ids",i="Table",d=i+"s",u=i+c,h="Row"+c,g="Cell",f=g+c,T="Value",V=T+"s",b=T+c,C=e=>t+e,v=(e,t)=>e.forEach(t),S=(e,t)=>e.map(t),w=e=>e.length,I=(e,t,s)=>e.slice(t,s),R=(e,...t)=>e.push(...t),y=e=>JSON.stringify(e,((e,t)=>{return p(t,Map)?(s=(e,[t,s])=>(e[t]=s,e),l={},[...t].reduce(s,l)):t;var s,l})),J=JSON.parse,m=isFinite,p=(e,t)=>e instanceof t,L=e=>null==e,E=(e,t,s)=>L(e)?s?.():t(e),F=e=>e==s||e==l,z=t=>e(t)==a,O=Object,k=O.keys,A=O.isFrozen,M=O.freeze,N=e=>p(e,O)&&e.constructor==O,P=(e,t)=>!L(((e,t)=>E(e,(e=>e[t])))(e,t)),j=(e,t)=>(delete e[t],e),x=(e,t)=>S(O.entries(e),(([e,s])=>t(s,e))),D=e=>N(e)&&0==(e=>w(k(e)))(e),W=(e,t)=>e?.has(t)??!1,$=e=>L(e)||0==(e=>e.size)(e),q=e=>e.clear(),B=(e,t)=>e?.forEach(t),G=(e,t)=>e?.delete(t),H=e=>new Map(e),K=e=>[...e?.keys()??[]],Q=(e,t)=>e?.get(t),U=(e,t)=>B(e,((e,s)=>t(s,e))),X=(e,t,s)=>L(s)?(G(e,t),e):e?.set(t,s),Y=(e,t,s)=>(W(e,t)||X(e,t,s()),Q(e,t)),Z=(e,t,s,l=X)=>(x(t,((t,l)=>s(e,l,t))),U(e,(s=>P(t,s)?0:l(e,s))),e),_=(e,t,s)=>{const l={};return B(e,((e,n)=>{const a=t?t(e,n):e;!s?.(a,e)&&(l[n]=a)})),l},ee=(e,t,s)=>_(e,(e=>_(e,t,s)),D),te=(e,t,s)=>_(e,(e=>ee(e,t,s)),D),se=(e,t)=>{const s=H();return B(e,((e,l)=>s.set(l,t?.(e)??e))),s},le=e=>se(e,se),ne=e=>se(e,le),ae=(e,t,s,l,n=0)=>E((s?Y:Q)(e,t[n],n>w(t)-2?s:H),(a=>{if(n>w(t)-2)return l?.(a)&&X(e,t[n]),a;const r=ae(a,t,s,l,n+1);return $(a)&&X(e,t[n]),r})),re=e=>new Set(Array.isArray(e)||L(e)?e:[e]),oe=(e,t)=>e?.add(t),ce=/^\d+$/,ie=()=>{const e=[];let s=0;return[l=>(l?e.shift():null)??t+s++,t=>{ce.test(t)&&w(e)<1e3&&R(e,t)}]},de=e=>[e,e],ue=()=>[H(),H()],he=e=>[...e],ge=([e,t])=>e===t,fe=t=>{const s=e(t);return F(s)||s==n&&m(t)?s:void 0},Te=(e,t,s,l,n)=>L(n)?e.delCell(t,s,l,!0):e.setCell(t,s,l,n),Ve=(e,t,s)=>L(s)?e.delValue(t):e.setValue(t,s),be=(e,t,s)=>L(e)||!N(e)||D(e)||A(e)?(s?.(),!1):(x(e,((s,l)=>{t(s,l)||j(e,l)})),!D(e)),Ce=(e,t,s)=>X(e,t,Q(e,t)==-s?void 0:s),ve=()=>{let e,s,l=!1,a=!1,c=0;const m=H(),p=H(),O=H(),k=H(),A=H(),N=H(),ce=H(),Se=H(),we=H(),Ie=H(),Re=H(),ye=H(),Je=H(),me=re(),pe=H(),Le=H(),Ee=H(),Fe=H(),ze=ue(),Oe=ue(),ke=ue(),Ae=ue(),Me=ue(),Ne=ue(),Pe=ue(),je=ue(),xe=ue(),De=ue(),We=ue(),$e=ue(),qe=ue(),Be=ue(),Ge=H(),He=ue(),[Ke,Qe,Ue,Xe]=(e=>{let s;const[l,n]=ie(),a=H();return[(e,n,r,o=[],c=(()=>[]))=>{s??=is;const i=l(1);return X(a,i,[e,n,r,o,c]),oe(ae(n,r??[t],re),i),i},(e,l,...n)=>v(((e,s=[t])=>{const l=[],n=(e,t)=>t==w(s)?R(l,e):null===s[t]?B(e,(e=>n(e,t+1))):v([s[t],null],(s=>n(Q(e,s),t+1)));return n(e,0),l})(e,l),(e=>B(e,(e=>Q(a,e)[0](s,...l??[],...n))))),e=>E(Q(a,e),(([,s,l])=>(ae(s,l??[t],void 0,(t=>(G(t,e),$(t)?1:0))),X(a,e),n(e),l))),e=>E(Q(a,e),(([e,,t=[],l,n])=>{const a=(...r)=>{const o=w(r);o==w(t)?e(s,...r,...n(r)):L(t[o])?v(l[o]?.(...r)??[],(e=>a(...r,e))):a(...r,t[o])};a()}))]})(),Ye=e=>{if(!be(e,((e,t)=>[r,o].includes(t))))return!1;const t=e[r];return!(!F(t)&&t!=n||(fe(e[o])!=t&&j(e,o),0))},Ze=(t,s)=>(!e||W(Ie,s)||Lt(s))&&be(t,((e,t)=>_e(s,t,e)),(()=>Lt(s))),_e=(e,t,s,l)=>be(l?s:lt(s,e,t),((l,n)=>E(et(e,t,n,l),(e=>(s[n]=e,!0)),(()=>!1))),(()=>Lt(e,t))),et=(t,s,l,n)=>e?E(Q(Q(Ie,t),l),(e=>fe(n)!=e[r]?Lt(t,s,l,n,e[o]):n),(()=>Lt(t,s,l,n))):L(fe(n))?Lt(t,s,l,n):n,tt=(e,t)=>be(t?e:nt(e),((t,s)=>E(st(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>Et())),st=(e,t)=>s?E(Q(ye,e),(s=>fe(t)!=s[r]?Et(e,t,s[o]):t),(()=>Et(e,t))):L(fe(t))?Et(e,t):t,lt=(e,t,s)=>(E(Q(Re,t),(([l,n])=>{B(l,((t,s)=>{P(e,s)||(e[s]=t)})),B(n,(l=>{P(e,l)||Lt(t,s,l)}))})),e),nt=e=>(s&&(B(Je,((t,s)=>{P(e,s)||(e[s]=t)})),B(me,(t=>{P(e,t)||Et(t)}))),e),at=e=>Z(Ie,e,((e,t,s)=>{const l=H(),n=re();Z(Y(Ie,t,H),s,((e,t,s)=>{X(e,t,s),E(s[o],(e=>X(l,t,e)),(()=>oe(n,t)))})),X(Re,t,[l,n])}),((e,t)=>{X(Ie,t),X(Re,t)})),rt=e=>Z(ye,e,((e,t,s)=>{X(ye,t,s),E(s[o],(e=>X(Je,t,e)),(()=>oe(me,t)))}),((e,t)=>{X(ye,t),X(Je,t),G(me,t)})),ot=e=>D(e)?es():Ut(e),ct=e=>Z(Ee,e,((e,t,s)=>it(t,s)),((e,t)=>Ct(t))),it=(e,t)=>Z(Y(Ee,e,(()=>(It(e,1),X(pe,e,ie()),X(Le,e,H()),H()))),t,((t,s,l)=>dt(e,t,s,l)),((t,s)=>vt(e,t,s))),dt=(e,t,s,l,n)=>Z(Y(t,s,(()=>(Rt(e,s,1),H()))),l,((t,l,n)=>ut(e,s,t,l,n)),((l,a)=>St(e,t,s,l,a,n))),ut=(e,t,s,l,n)=>{W(s,l)||yt(e,t,l,1);const a=Q(s,l);n!==a&&(Jt(e,t,l,a,n),X(s,l,n))},ht=(e,t,s,l,n)=>E(Q(t,s),(t=>ut(e,s,t,l,n)),(()=>dt(e,t,s,lt({[l]:n},e,s)))),gt=e=>D(e)?ls():Xt(e),ft=e=>Z(Fe,e,((e,t,s)=>Tt(t,s)),((e,t)=>wt(t))),Tt=(e,t)=>{W(Fe,e)||mt(e,1);const s=Q(Fe,e);t!==s&&(pt(e,s,t),X(Fe,e,t))},Vt=(e,t)=>{const[s]=Q(pe,e),l=s(t);return W(Q(Ee,e),l)?Vt(e,t):l},bt=e=>Q(Ee,e)??it(e,{}),Ct=e=>it(e,{}),vt=(e,t,s)=>{const[,l]=Q(pe,e);l(s),dt(e,t,s,{},!0)},St=(e,t,s,l,n,a)=>{const r=Q(Q(Re,e)?.[0],n);if(!L(r)&&!a)return ut(e,s,l,n,r);const o=t=>{Jt(e,s,t,Q(l,t)),yt(e,s,t,-1),X(l,t)};L(r)?o(n):U(l,o),$(l)&&(Rt(e,s,-1),$(X(t,s))&&(It(e,-1),X(Ee,e),X(pe,e),X(Le,e)))},wt=e=>{const t=Q(Je,e);if(!L(t))return Tt(e,t);pt(e,Q(Fe,e)),mt(e,-1),X(Fe,e)},It=(e,t)=>Ce(m,e,t),Rt=(e,t,s)=>Ce(Y(O,e,H),t,s),yt=(e,t,s,l)=>{const n=Q(Le,e),a=Q(n,s)??0;(0==a&&1==l||1==a&&-1==l)&&Ce(Y(p,e,H),s,l),X(n,s,a!=-l?a+l:null),Ce(Y(Y(k,e,H),t,H),s,l)},Jt=(e,t,s,l,n)=>Y(Y(Y(A,e,H),t,H),s,(()=>[l,0]))[1]=n,mt=(e,t)=>Ce(N,e,t),pt=(e,t,s)=>Y(ce,e,(()=>[t,0]))[1]=s,Lt=(e,t,s,l,n)=>(R(Y(Y(Y(Se,e,H),t,H),s,(()=>[])),l),n),Et=(e,t,s)=>(R(Y(we,e,(()=>[])),t),s),Ft=(e,t,s)=>E(Q(Q(Q(A,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...de(Gt(e,t,s))])),zt=e=>E(Q(ce,e),(([e,t])=>[!0,e,t]),(()=>[!1,...de(Qt(e))])),Ot=e=>$(Se)||$(De[e])?0:B(e?ne(Se):Se,((t,s)=>B(t,((t,l)=>B(t,((t,n)=>Qe(De[e],[s,l,n],t))))))),kt=e=>$(we)||$(We[e])?0:B(e?se(we):we,((t,s)=>Qe(We[e],[s],t))),At=(e,t,s)=>{if(!$(t))return Qe(e,s,(()=>_(t))),1},Mt=e=>{const t=$(Ne[e]),s=$(je[e])&&$(Ae[e])&&$(Me[e])&&t&&$(Oe[e]),l=$(xe[e])&&$(Pe[e])&&$(ke[e])&&$(ze[e]);if(!s||!l){const n=e?[se(m),le(p),le(O),ne(k),ne(A)]:[m,p,O,k,A];if(!s){At(Oe[e],n[0]),B(n[1],((t,s)=>At(Ae[e],t,[s])));const s=re();B(n[2],((l,n)=>{At(Me[e],l,[n])&&!t&&(Qe(Ne[e],[n,null]),oe(s,n))})),t||B(n[4],((t,l)=>{if(!W(s,l)){const s=re();B(t,(e=>B(e,(([t,l],n)=>l!==t?oe(s,n):G(e,n))))),B(s,(t=>Qe(Ne[e],[l,t])))}})),B(n[3],((t,s)=>B(t,((t,l)=>At(je[e],t,[s,l])))))}if(!l){let t;B(n[4],((s,l)=>{let n;B(s,((s,a)=>{let r;B(s,(([s,o],c)=>{o!==s&&(Qe(xe[e],[l,a,c],o,s,Ft),t=n=r=1)})),r&&Qe(Pe[e],[l,a],Ft)})),n&&Qe(ke[e],[l],Ft)})),t&&Qe(ze[e],void 0,Ft)}}},Nt=e=>{const t=$(qe[e]),s=$(Be[e])&&$($e[e]);if(!t||!s){const l=e?[se(N),se(ce)]:[N,ce];if(t||At(qe[e],l[0]),!s){let t;B(l[1],(([s,l],n)=>{l!==s&&(Qe(Be[e],[n],l,s,zt),t=1)})),t&&Qe($e[e],void 0,zt)}}},Pt=(e,...t)=>(rs((()=>e(...S(t,C)))),is),jt=()=>[_(A,((e,t)=>-1===Q(m,t)?null:_(e,((e,s)=>-1===Q(Q(O,t),s)?null:_(e,(([,e])=>e??null),((e,t)=>ge(t)))),D)),D),_(ce,(([,e])=>e??null),((e,t)=>ge(t)))],xt=()=>({cellsTouched:l,valuesTouched:a,changedCells:te(A,he,ge),invalidCells:te(Se),changedValues:_(ce,he,ge),invalidValues:_(we),changedTableIds:_(m),changedRowIds:ee(O),changedCellIds:te(k),changedValueIds:_(N)}),Dt=()=>te(Ee),Wt=()=>K(Ee),$t=e=>K(Q(Ee,C(e))),qt=(e,t,s,l=0,n)=>{return S(I((r=Q(Ee,C(e)),o=(e,s)=>[L(t)?s:Q(e,C(t)),s],a=([e],[t])=>(e<t?-1:1)*(s?-1:1),S([...r?.entries()??[]],(([e,t])=>o(t,e))).sort(a)),l,L(n)?n:l+n),(([,e])=>e));var a,r,o},Bt=(e,t)=>K(Q(Q(Ee,C(e)),C(t))),Gt=(e,t,s)=>Q(Q(Q(Ee,C(e)),C(t)),C(s)),Ht=()=>_(Fe),Kt=()=>K(Fe),Qt=e=>Q(Fe,C(e)),Ut=e=>Pt((()=>(e=>be(e,Ze,Lt))(e)?ct(e):0)),Xt=e=>Pt((()=>tt(e)?ft(e):0)),Yt=e=>{try{ot(J(e))}catch{}return is},Zt=t=>Pt((()=>{if((e=be(t,(e=>be(e,Ye))))&&(at(t),!$(Ee))){const e=Dt();es(),Ut(e)}})),_t=e=>Pt((()=>{if(s=(e=>be(e,Ye))(e)){const t=Ht();as(),ls(),s=!0,rt(e),Xt(t)}})),es=()=>Pt((()=>ct({}))),ts=e=>Pt((e=>W(Ee,e)?Ct(e):0),e),ss=(e,t)=>Pt(((e,t)=>E(Q(Ee,e),(s=>W(s,t)?vt(e,s,t):0))),e,t),ls=()=>Pt((()=>ft({}))),ns=()=>Pt((()=>{at({}),e=!1})),as=()=>Pt((()=>{rt({}),s=!1})),rs=(e,t)=>{if(-1!=c){os();const s=e();return cs(t),s}},os=()=>(-1!=c&&c++,1==c&&Qe(Ge,void 0,jt,xt),is),cs=e=>(c>0&&(c--,0==c&&(l=!$(A),a=!$(ce),c=1,Ot(1),l&&Mt(1),kt(1),a&&Nt(1),e?.(jt,xt)&&(B(A,((e,t)=>B(e,((e,s)=>B(e,(([e],l)=>Te(is,t,s,l,e))))))),B(ce,(([e],t)=>Ve(is,t,e))),l=a=!1),Qe(He[0],void 0,jt,xt),c=-1,Ot(0),l&&Mt(0),kt(0),a&&Nt(0),Qe(He[1],void 0,jt,xt),c=0,l=a=!1,v([m,p,O,k,A,Se,N,ce,we],q))),is),is={getContent:()=>[Dt(),Ht()],getTables:Dt,getTableIds:Wt,getTable:e=>ee(Q(Ee,C(e))),getTableCellIds:e=>K(Q(Le,C(e))),getRowIds:$t,getSortedRowIds:qt,getRow:(e,t)=>_(Q(Q(Ee,C(e)),C(t))),getCellIds:Bt,getCell:Gt,getValues:Ht,getValueIds:Kt,getValue:Qt,hasTables:()=>!$(Ee),hasTable:e=>W(Ee,C(e)),hasTableCell:(e,t)=>W(Q(Le,C(e)),C(t)),hasRow:(e,t)=>W(Q(Ee,C(e)),C(t)),hasCell:(e,t,s)=>W(Q(Q(Ee,C(e)),C(t)),C(s)),hasValues:()=>!$(Fe),hasValue:e=>W(Fe,C(e)),getTablesJson:()=>y(Ee),getValuesJson:()=>y(Fe),getJson:()=>y([Ee,Fe]),getTablesSchemaJson:()=>y(Ie),getValuesSchemaJson:()=>y(ye),getSchemaJson:()=>y([Ie,ye]),setContent:([e,t])=>Pt((()=>{(D(e)?es:Ut)(e),(D(t)?ls:Xt)(t)})),setTables:Ut,setTable:(e,t)=>Pt((e=>Ze(t,e)?it(e,t):0),e),setRow:(e,t,s)=>Pt(((e,t)=>_e(e,t,s)?dt(e,bt(e),t,s):0),e,t),addRow:(e,t,s=!0)=>rs((()=>{let l;return _e(e,l,t)&&(e=C(e),dt(e,bt(e),l=Vt(e,s?1:0),t)),l})),setPartialRow:(e,t,s)=>Pt(((e,t)=>{if(_e(e,t,s,1)){const l=bt(e);x(s,((s,n)=>ht(e,l,t,n,s)))}}),e,t),setCell:(e,t,s,l)=>Pt(((e,t,s)=>E(et(e,t,s,z(l)?l(Gt(e,t,s)):l),(l=>ht(e,bt(e),t,s,l)))),e,t,s),setValues:Xt,setPartialValues:e=>Pt((()=>tt(e,1)?x(e,((e,t)=>Tt(t,e))):0)),setValue:(e,t)=>Pt((e=>E(st(e,z(t)?t(Qt(e)):t),(t=>Tt(e,t)))),e),setTransactionChanges:e=>Pt((()=>{x(e[0],((e,t)=>L(e)?ts(t):x(e,((e,s)=>L(e)?ss(t,s):x(e,((e,l)=>Te(is,t,s,l,e))))))),x(e[1],((e,t)=>Ve(is,t,e)))})),setTablesJson:Yt,setValuesJson:e=>{try{gt(J(e))}catch{}return is},setJson:e=>{try{const[t,s]=J(e);ot(t),gt(s)}catch{Yt(e)}return is},setTablesSchema:Zt,setValuesSchema:_t,setSchema:(e,t)=>Pt((()=>{Zt(e),_t(t)})),delTables:es,delTable:ts,delRow:ss,delCell:(e,t,s,l)=>Pt(((e,t,s)=>E(Q(Ee,e),(n=>E(Q(n,t),(a=>W(a,s)?St(e,n,t,a,s,l):0))))),e,t,s),delValues:ls,delValue:e=>Pt((e=>W(Fe,e)?wt(e):0),e),delTablesSchema:ns,delValuesSchema:as,delSchema:()=>Pt((()=>{ns(),as()})),transaction:rs,startTransaction:os,finishTransaction:cs,forEachTable:e=>B(Ee,((t,s)=>e(s,(e=>B(t,((t,s)=>e(s,(e=>U(t,e))))))))),forEachTableCell:(e,t)=>U(Q(Le,C(e)),t),forEachRow:(e,t)=>B(Q(Ee,C(e)),((e,s)=>t(s,(t=>U(e,t))))),forEachCell:(e,t,s)=>U(Q(Q(Ee,C(e)),C(t)),s),forEachValue:e=>U(Fe,e),addSortedRowIdsListener:(e,t,s,l,n,a,r)=>{let o=qt(e,t,s,l,n);return Ke((()=>{const r=qt(e,t,s,l,n);var c,i,d;i=o,w(c=r)===w(i)&&(d=(e,t)=>i[t]===e,c.every(d))||(o=r,a(is,e,t,s,l,n,o))}),Ne[r?1:0],[e,t],[Wt])},addStartTransactionListener:e=>Ke(e,Ge),addWillFinishTransactionListener:e=>Ke(e,He[0]),addDidFinishTransactionListener:e=>Ke(e,He[1]),callListener:e=>(Xe(e),is),delListener:e=>(Ue(e),is),getListenerStats:()=>({}),createStore:ve};return x({[d]:[0,ze],[u]:[0,Oe],[i]:[1,ke,[Wt]],[i+f]:[1,Ae,[Wt]],[h]:[1,Me,[Wt]],Row:[2,Pe,[Wt,$t]],[f]:[2,je,[Wt,$t]],[g]:[3,xe,[Wt,$t,Bt],e=>de(Gt(...e))],InvalidCell:[3,De],[V]:[0,$e],[b]:[0,qe],[T]:[1,Be,[Kt],e=>de(Qt(e[0]))],InvalidValue:[1,We]},(([e,t,s,l],n)=>{is["add"+n+"Listener"]=(...n)=>Ke(n[e],t[n[e+1]?1:0],e>0?I(n,0,e):void 0,s,l)})),M(is)};export{ve as createStore};
|
package/lib/store.js.gz
CHANGED
|
Binary file
|
package/lib/tinybase.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=e=>typeof e,t="",s=e(t),n=e(!0),o=e(0),a=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+u,v="Sorted"+L+u,S="Cell",R=S+u,I="Value",T=I+"s",C=I+u,p=e=>t+e,y=(e,t)=>e.includes(t),b=(e,t)=>e.every(t),V=(e,t)=>J(e)===J(t)&&b(e,((e,s)=>t[s]===e)),m=(e,t)=>b(e,((s,n)=>0==n||t(e[n-1],s)<=0)),E=(e,t)=>e.sort(t),k=(e,t)=>e.forEach(t),M=(e,t)=>e.map(t),D=e=>x(e,((e,t)=>e+t),0),J=e=>e.length,A=e=>0==J(e),x=(e,t,s)=>e.reduce(t,s),F=(e,t,s)=>e.slice(t,s),Q=(e,...t)=>e.push(...t),z=e=>e.pop(),N=e=>e.shift(),O=e=>JSON.stringify(e,((e,t)=>$(t,Map)?x([...t],((e,[t,s])=>(e[t]=s,e)),{}):t)),j=JSON.parse,P=Math.max,W=Math.min,B=isFinite,$=(e,t)=>e instanceof t,q=e=>null==e,G=(e,t,s)=>q(e)?s?.():t(e),H=e=>e==s||e==n,K=t=>e(t)==a,U=e=>Array.isArray(e),X=()=>{},Y=Object,Z=Y.keys,_=Y.isFrozen,ee=Y.freeze,te=e=>$(e,Y)&&e.constructor==Y,se=(e,t)=>!q(((e,t)=>G(e,(e=>e[t])))(e,t)),ne=(e,t)=>delete e[t],oe=(e,t)=>M(Y.entries(e),(([e,s])=>t(s,e))),ae=e=>te(e)&&A(Z(e)),re=e=>e.size,le=(e,t)=>e?.has(t)??!1,ie=e=>q(e)||0==re(e),ce=e=>[...e?.values()??[]],de=e=>e.clear(),ue=(e,t)=>e?.forEach(t),he=(e,t)=>e?.delete(t),ge=e=>new Map(e),fe=e=>[...e?.keys()??[]],Le=(e,t)=>e?.get(t),we=(e,t)=>ue(e,((e,s)=>t(s,e))),ve=(e,t,s)=>q(s)?(he(e,t),e):e?.set(t,s),Se=(e,t,s)=>(le(e,t)||ve(e,t,s()),Le(e,t)),Re=(e,t,s)=>{const n={};return ue(e,((e,o)=>{const a=t?t(e,o):e;!s?.(a,e)&&(n[o]=a)})),n},Ie=(e,t,s)=>Re(e,(e=>Re(e,t,s)),ae),Te=(e,t,s)=>Re(e,(e=>Ie(e,t,s)),ae),Ce=(e,t)=>{const s=ge();return ue(e,((e,n)=>s.set(n,t?.(e)??e))),s},pe=e=>Ce(e,Ce),ye=e=>Ce(e,pe),be=(e,t,s,n,o=0)=>G((s?Se:Le)(e,t[o],o>J(t)-2?s:ge),(a=>{if(o>J(t)-2)return n?.(a)&&ve(e,t[o]),a;const r=be(a,t,s,n,o+1);return ie(a)&&ve(e,t[o]),r})),Ve=t=>{const s=e(t);return H(s)||s==o&&B(t)?s:void 0},me=(e,t,s,n,o)=>q(o)?e.delCell(t,s,n,!0):e.setCell(t,s,n,o),Ee=(e,t,s)=>q(s)?e.delValue(t):e.setValue(t,s),ke=e=>new Set(U(e)||q(e)?e:[e]),Me=(e,t)=>e?.add(t),De=(e,t,s)=>{const n=e.hasRow,o=ge(),a=ge(),r=ge(),l=ge(),i=ge(),c=(t,s,...n)=>{const o=Se(i,t,ke);return k(n,(t=>Me(o,t)&&s&&e.callListener(t))),n},d=(t,...s)=>G(Le(i,t),(n=>{k(A(s)?ce(n):s,(t=>{e.delListener(t),he(n,t)})),ie(n)&&ve(i,t)})),u=(e,s)=>{ve(o,e,s),le(a,e)||(ve(a,e,t()),ve(r,e,ge()),ve(l,e,ge()))},h=e=>{ve(o,e),ve(a,e),ve(r,e),ve(l,e),d(e)};return[()=>e,()=>fe(o),e=>we(a,e),e=>le(a,e),e=>Le(o,e),e=>Le(a,e),(e,t)=>ve(a,e,t),u,(t,o,a,i,h)=>{u(t,o);const g=ge(),f=ge(),L=Le(r,t),w=Le(l,t),v=t=>{const a=s=>e.getCell(o,t,s),r=Le(L,t),l=n(o,t)?s(i(a,t)):void 0;if(r===l||U(r)&&U(l)&&V(r,l)||ve(g,t,[r,l]),!q(h)){const e=Le(w,t),s=n(o,t)?h(a,t):void 0;e!=s&&ve(f,t,s)}},S=e=>{a((()=>{ue(g,(([,e],t)=>ve(L,t,e))),ue(f,((e,t)=>ve(w,t,e)))}),g,f,L,w,e),de(g),de(f)};we(L,v),e.hasTable(o)&&k(e.getRowIds(o),(e=>{le(L,e)||v(e)})),S(!0),d(t),c(t,0,e.addRowListener(o,null,((e,t,s)=>v(s))),e.addTableListener(o,(()=>S())))},h,()=>we(i,h),c,d]},Je=(n,o)=>e(n)==s?e=>e(n):n??(()=>o??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?N(e):null)??t+s++,t=>{xe.test(t)&&J(e)<1e3&&Q(e,t)}]},Qe=e=>{let s;const[n,o]=Fe(),a=ge();return[(o,r,l,i=[],c=(()=>[]))=>{s??=e();const d=n(1);return ve(a,d,[o,r,l,i,c]),Me(be(r,l??[t],ke),d),d},(e,n,...o)=>k(((e,s=[t])=>{const n=[],o=(e,t)=>t==J(s)?Q(n,e):null===s[t]?ue(e,(e=>o(e,t+1))):k([s[t],null],(s=>o(Le(e,s),t+1)));return o(e,0),n})(e,n),(e=>ue(e,(e=>Le(a,e)[0](s,...n??[],...o))))),e=>G(Le(a,e),(([,s,n])=>(be(s,n??[t],void 0,(t=>(he(t,e),ie(t)?1:0))),ve(a,e),o(e),n))),e=>G(Le(a,e),(([e,,t=[],n,o])=>{const a=(...r)=>{const l=J(r);l==J(t)?e(s,...r,...o(r)):q(t[l])?k(n[l]?.(...r)??[],(e=>a(...r,e))):a(...r,t[l])};a()}))]},ze=Ae((e=>{let s,n,o,a=100,r=ge(),l=ge(),i=1;const c=ge(),d=ge(),[u,h,g]=Qe((()=>j)),f=ge(),L=ge(),w=[],v=[],S=(t,s)=>{i=0,e.transaction((()=>{const[n,o]=Le(f,s);ue(n,((s,n)=>ue(s,((s,o)=>ue(s,((s,a)=>me(e,n,o,a,s[t]))))))),ue(o,((s,n)=>Ee(e,n,s[t])))})),i=1},R=e=>{ve(f,e),ve(L,e),h(d,[e])},I=(e,t)=>k(((e,t)=>e.splice(0,t))(e,t??J(e)),R),T=()=>I(w,J(w)-a),C=()=>G(s,(()=>{Q(w,s),T(),I(v),s=void 0,o=1})),p=()=>{s=z(w),o=1},b=e.addCellListener(null,null,null,((e,t,s,n,o,a)=>{if(i){C();const e=Se(r,t,ge),l=Se(e,s,ge),i=Se(l,n,(()=>[a,void 0]));i[1]=o,i[0]===o&&ie(ve(l,n))&&ie(ve(e,s))&&ie(ve(r,t))&&p(),D()}})),V=e.addValueListener(null,((e,t,s,n)=>{if(i){C();const e=Se(l,t,(()=>[n,void 0]));e[1]=s,e[0]===s&&ie(ve(l,t))&&p(),D()}})),m=(e="")=>(q(s)&&(s=t+n++,ve(f,s,[r,l]),F(s,e),r=ge(),l=ge(),o=1),s),E=()=>{A(w)||(((e,...t)=>{e.unshift(...t)})(v,m()),S(0,s),s=z(w),o=1)},M=()=>{A(v)||(Q(w,s),s=N(v),S(1,s),o=1)},D=()=>{o&&(h(c),o=0)},x=e=>{const t=m(e);return D(),t},F=(e,t)=>(O(e)&&Le(L,e)!==t&&(ve(L,e,t),h(d,[e])),j),O=e=>le(f,e),j={setSize:e=>(a=e,T(),j),addCheckpoint:x,setCheckpoint:F,getStore:()=>e,getCheckpointIds:()=>[[...w],s,[...v]],forEachCheckpoint:e=>we(L,e),hasCheckpoint:O,getCheckpoint:e=>Le(L,e),goBackward:()=>(E(),D(),j),goForward:()=>(M(),D(),j),goTo:e=>{const t=y(w,e)?E:y(v,e)?M:null;for(;!q(t)&&e!=s;)t();return D(),j},addCheckpointIdsListener:e=>u(e,c),addCheckpointListener:(e,t)=>u(t,d,[e]),delListener:e=>(g(e),j),clear:()=>(I(w),I(v),q(s)||R(s),s=void 0,n=0,x(),j),destroy:()=>{e.delListener(b),e.delListener(V)},getListenerStats:()=>({})};return ee(j.clear())})),Ne=(e,t)=>e<t?-1:1,Oe=Ae((e=>{const s=ge(),n=ge(),[o,a,r,l,i,c,d,,u,h,g]=De(e,ge,(e=>q(e)?t:U(e)?M(e,p):p(e))),[f,L,w]=Qe((()=>S)),v=(t,s,n)=>{const o=i(t);ue(n,((t,n)=>s(n,(s=>ue(t,(t=>s(t,(s=>e.forEachCell(o,t,s)))))))))},S={setIndexDefinition:(e,t,o,a,r,l=Ne)=>{const i=q(r)?void 0:([e],[t])=>r(e,t);return u(e,t,((t,o,r,u,h,g)=>{let f=0;const w=ke(),v=ke(),S=c(e);if(ue(o,(([e,t],s)=>{const n=ke(e),o=ke(t);ue(n,(e=>he(o,e)?he(n,e):0)),ue(n,(e=>{Me(w,e),G(Le(S,e),(t=>{he(t,s),ie(t)&&(ve(S,e),f=1)}))})),ue(o,(e=>{Me(w,e),le(S,e)||(ve(S,e,ke()),f=1),Me(Le(S,e),s),q(a)||Me(v,e)}))})),t(),ie(h)||(g?we(S,(e=>Me(v,e))):we(r,(e=>G(Le(u,e),(e=>Me(v,e))))),ue(v,(e=>{const t=(t,s)=>l(Le(h,t),Le(h,s),e),s=[...Le(S,e)];m(s,t)||(ve(S,e,ke(E(s,t))),Me(w,e))}))),(f||g)&&!q(i)){const t=[...S];m(t,i)||(d(e,ge(E(t,i))),f=1)}f&&L(s,[e]),ue(w,(t=>L(n,[e,t])))}),Je(o),G(a,Je)),S},delIndexDefinition:e=>(h(e),S),getStore:o,getIndexIds:a,forEachIndex:e=>r(((t,s)=>e(t,(e=>v(t,e,s))))),forEachSlice:(e,t)=>v(e,t,c(e)),hasIndex:l,hasSlice:(e,t)=>le(c(e),t),getTableId:i,getSliceIds:e=>fe(c(e)),getSliceRowIds:(e,t)=>ce(Le(c(e),t)),addSliceIdsListener:(e,t)=>f(t,s,[e]),addSliceRowIdsListener:(e,t,s)=>f(s,n,[e,t]),delListener:e=>(w(e),S),destroy:g,getListenerStats:()=>({})};return ee(S)})),je=ge([["avg",[(e,t)=>D(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=>P(...e),(e,t)=>P(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:P(t,e)]],["min",[e=>W(...e),(e,t)=>W(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:W(t,e)]],["sum",[e=>D(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),Pe=(e,t,s,n,o,a=!1)=>{if(ie(s))return;const[r,l,i,c]=o;return a||=q(e),ue(n,(([s,n])=>{a||(e=q(s)?l?.(e,n,t++):q(n)?i?.(e,s,t--):c?.(e,n,s,t),a||=q(e))})),a?r(ce(s),re(s)):e},We=Ae((e=>{const s=ge(),[n,o,a,r,l,i,c,,d,u,h]=De(e,X,(e=>isNaN(e)||q(e)||!0===e||!1===e||e===t?void 0:1*e)),[g,f,L]=Qe((()=>w)),w={setMetricDefinition:(e,t,n,o,a,r,l)=>{const u=K(n)?[n,a,r,l]:Le(je,n)??Le(je,"sum");return d(e,t,((t,n,o,a,r,l)=>{const d=i(e),h=re(a);l||=q(d),t();let g=Pe(d,h,a,n,u,l);B(g)||(g=void 0),g!=d&&(c(e,g),f(s,[e],g,d))}),Je(o,1)),w},delMetricDefinition:e=>(u(e),w),getStore:n,getMetricIds:o,forEachMetric:a,hasMetric:r,getTableId:l,getMetric:i,addMetricListener:(e,t)=>g(t,s,[e]),delListener:e=>(L(e),w),destroy:h,getListenerStats:()=>({})};return ee(w)})),Be=(e,t,s,n,o)=>{let a,r,l=0,i=!1;const c=async e=>{2!=l&&(l=1,await e(),l=0)},d={load:async(s={},n={})=>(await c((async()=>{let o;try{o=await t()}catch{}e.setContent(o??[s,n])})),d),startAutoLoad:async(s={},o={})=>(d.stopAutoLoad(),await d.load(s,o),i=!0,r=n((async(s,n)=>{await c((async()=>{if(n)e.setTransactionChanges(n());else try{e.setContent(s?.()??await t())}catch{}}))})),d),stopAutoLoad:()=>(i&&(o(r),r=void 0,i=!1),d),save:async t=>(1!=l&&(l=2,await s(e.getContent,t),l=0),d),startAutoSave:async()=>(await d.stopAutoSave().save(),a=e.addDidFinishTransactionListener(((e,t)=>d.save(t))),d),stopAutoSave:()=>(G(a,e.delListener),d),getStore:()=>e,destroy:()=>d.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return ee(d)},$e=Ae((e=>{const s=e.createStore,[n,o,a,r,l,,,u,,g,f,I,T]=De(e,(()=>!0),X),C=s(),p=s(),y=ge(),V=(e,t,...s)=>k(s,(s=>Me(Se(Se(y,t,ge),e,ke),s))),m=e=>{G(Le(y,e),(e=>{we(e,((e,t)=>ue(t,(t=>e.delListener(t))))),de(e)})),k([p,C],(t=>t.delTable(e)))},E=(e,t,s)=>V(t,e,t.addStartTransactionListener(s.startTransaction),t.addDidFinishTransactionListener((()=>s.finishTransaction()))),M={setQueryDefinition:(s,n,o)=>{u(s,n),m(s);const a=[],r=[[null,[n,null,null,[],ge()]]],l=[],i=[],c=[];o({select:(e,s)=>{const n=K(e)?[J(a)+t,e]:[q(s)?e:s,t=>t(e,s)];return Q(a,n),{as:e=>n[0]=e}},join:(e,t,s)=>{const n=q(s)||K(t)?null:t,o=q(n)?t:s,a=[e,[e,n,K(o)?o:e=>e(o),[],ge()]];return Q(r,a),{as:e=>a[0]=e}},where:(e,t,s)=>Q(l,K(e)?e:q(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,o)=>{const a=[e,[e,K(t)?[t,s,n,o]:Le(je,t)??[(e,t)=>t]]];return Q(i,a),{as:e=>a[0]=e}},having:(e,t)=>Q(c,K(e)?e:s=>s(e)===t)});const d=ge(a);if(ie(d))return M;const h=ge(r);we(h,((e,[,t])=>G(Le(h,t),(({3:t})=>q(e)?0:Q(t,e)))));const g=ge(i);let f=C;if(ie(g)&&A(c))f=p;else{E(s,f,p);const e=ge();we(g,((t,[s,n])=>Me(Se(e,s,ke),[t,n])));const t=ke();we(d,(s=>le(e,s)?0:Me(t,s)));const n=ge(),o=(t,n,o,a)=>G(t,(([r,l,i,d])=>{we(n,((t,[s])=>{const n=Se(r,t,ge),l=Le(n,o),i=a?void 0:s;if(l!==i){const s=ke([[l,i]]),a=re(n);ve(n,o,i),ue(Le(e,t),(([e,t])=>{const o=Pe(d[e],a,n,s,t);d[e]=q(Ve(o))?null:o}))}})),ie(l)||!b(c,(e=>e((e=>d[e]))))?p.delRow(s,i):q(i)?t[2]=p.addRow(s,d):p.setRow(s,i,d)}));V(f,s,f.addRowListener(s,null,((a,r,l,i)=>{const c=[],d=[],u=ge(),h=f.hasRow(s,l);let g=!h;ue(t,(e=>{const[t,n,o]=i(s,l,e);Q(c,n),Q(d,o),g||=t})),we(e,(e=>{const[t,,n]=i(s,l,e);(g||t)&&ve(u,e,[n])})),g&&o(be(n,c,void 0,(([,e])=>(he(e,l),ie(e)))),u,l,1),h&&o(be(n,d,(()=>{const e={};return ue(t,(t=>e[t]=f.getCell(s,l,t))),[ge(),ke(),void 0,e]}),(([,e])=>{Me(e,l)})),u,l)})))}E(s,e,f);const L=(t,o,a,r)=>{const i=t=>e.getCell(o,a,t);k(r,(n=>{const[o,,a,r,l]=Le(h,n),c=a?.(i,t),[d,u]=Le(l,t)??[];c!=d&&(q(u)||T(s,u),ve(l,t,q(c)?null:[c,...I(s,1,e.addRowListener(o,c,(()=>L(t,o,c,r))))]))})),(t=>{const o=(s,o)=>e.getCell(...q(o)?[n,t,s]:s===n?[n,t,o]:[Le(h,s)?.[0],Le(Le(h,s)?.[4],t)?.[0],o]);f.transaction((()=>b(l,(e=>e(o)))?we(d,((e,n)=>me(f,s,t,e,n(o,t)))):f.delRow(s,t)))})(t)},{3:w}=Le(h,null);return f.transaction((()=>I(s,1,e.addRowListener(n,null,((t,o,a)=>{e.hasRow(n,a)?L(a,n,a,w):(f.delRow(s,a),ue(h,(({4:e})=>G(Le(e,a),(([,t])=>{T(s,t),ve(e,a)})))))}))))),M},delQueryDefinition:e=>(m(e),g(e),M),getStore:n,getQueryIds:o,forEachQuery:a,hasQuery:r,getTableId:l,delListener:e=>(p.delListener(e),M),destroy:f,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=p.getListenerStats();return n}};return oe({[h]:[1,1],[w]:[0,1],[v]:[0,5],[L]:[1,2],[R]:[0,2],[S]:[1,3]},(([e,t],s)=>{k(e?["get","has","forEach"]:["get"],(e=>M[e+c+s]=(...t)=>p[e+s](...t))),M[d+c+s+i]=(...e)=>p[d+s+i](...F(e,0,t),((s,...n)=>e[t](M,...n)))})),ee(M)})),qe=Ae((e=>{const s=ge(),n=ge(),o=ge(),a=ge(),[r,l,i,c,d,u,,,h,g,f]=De(e,(()=>[ge(),ge(),ge(),ge()]),(e=>q(e)?void 0:e+t)),[L,w,v]=Qe((()=>T)),S=(e,t,s)=>G(u(e),(([n,,o])=>{if(!le(o,t)){const a=ke();if(d(e)!=I(e))Me(a,t);else{let e=t;for(;!q(e)&&!le(a,e);)Me(a,e),e=Le(n,e)}if(s)return a;ve(o,t,a)}return Le(o,t)})),R=(e,t)=>G(u(e),(([,,e])=>ve(e,t))),I=e=>Le(s,e),T={setRelationshipDefinition:(e,t,r,l)=>(ve(s,e,r),h(e,t,((t,s)=>{const r=ke(),l=ke(),i=ke(),[c,d]=u(e);ue(s,(([t,s],n)=>{q(t)||(Me(l,t),G(Le(d,t),(e=>{he(e,n),ie(e)&&ve(d,t)}))),q(s)||(Me(l,s),le(d,s)||ve(d,s,ke()),Me(Le(d,s),n)),Me(r,n),ve(c,n,s),we(Le(a,e),(t=>{le(S(e,t),n)&&Me(i,t)}))})),t(),ue(r,(t=>w(n,[e,t]))),ue(l,(t=>w(o,[e,t]))),ue(i,(t=>{R(e,t),w(a,[e,t])}))}),Je(l)),T),delRelationshipDefinition:e=>(ve(s,e),g(e),T),getStore:r,getRelationshipIds:l,forEachRelationship:t=>i((s=>t(s,(t=>e.forEachRow(d(s),t))))),hasRelationship:c,getLocalTableId:d,getRemoteTableId:I,getRemoteRowId:(e,t)=>Le(u(e)?.[0],t),getLocalRowIds:(e,t)=>ce(Le(u(e)?.[1],t)),getLinkedRowIds:(e,t)=>q(u(e))?[t]:ce(S(e,t,!0)),addRemoteRowIdListener:(e,t,s)=>L(s,n,[e,t]),addLocalRowIdsListener:(e,t,s)=>L(s,o,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(S(e,t),L(s,a,[e,t])),delListener:e=>(R(...v(e)),T),destroy:f,getListenerStats:()=>({})};return ee(T)})),Ge=e=>[e,e],He=()=>[ge(),ge()],Ke=e=>[...e],Ue=([e,t])=>e===t,Xe=(e,t,s,n=ve)=>(oe(t,((t,n)=>s(e,n,t))),we(e,(s=>se(t,s)?0:n(e,s))),e),Ye=(e,t,s)=>q(e)||!te(e)||ae(e)||_(e)?(s?.(),!1):(oe(e,((s,n)=>{t(s,n)||ne(e,n)})),!ae(e)),Ze=(e,t,s)=>ve(e,t,Le(e,t)==-s?void 0:s),_e=()=>{let e,t,s=!1,n=!1,a=0;const c=ge(),u=ge(),v=ge(),b=ge(),m=ge(),D=ge(),J=ge(),A=ge(),x=ge(),z=ge(),N=ge(),P=ge(),W=ke(),B=ge(),$=ge(),U=ge(),X=He(),Y=He(),Z=He(),_=He(),te=He(),re=He(),ce=He(),be=He(),De=He(),Je=He(),Ae=He(),xe=He(),ze=He(),Oe=ge(),je=He(),[Pe,We,Be,$e]=Qe((()=>us)),qe=e=>{if(!Ye(e,((e,t)=>y([r,l],t))))return!1;const t=e[r];return!(!H(t)&&t!=o||(Ve(e[l])!=t&&ne(e,l),0))},et=(t,s)=>(!e||le(x,s)||Mt(s))&&Ye(t,((e,t)=>tt(s,t,e)),(()=>Mt(s))),tt=(e,t,s,n)=>Ye(n?s:at(s,e,t),((n,o)=>G(st(e,t,o,n),(e=>(s[o]=e,!0)),(()=>!1))),(()=>Mt(e,t))),st=(t,s,n,o)=>e?G(Le(Le(x,t),n),(e=>Ve(o)!=e[r]?Mt(t,s,n,o,e[l]):o),(()=>Mt(t,s,n,o))):q(Ve(o))?Mt(t,s,n,o):o,nt=(e,t)=>Ye(t?e:rt(e),((t,s)=>G(ot(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>Dt())),ot=(e,s)=>t?G(Le(N,e),(t=>Ve(s)!=t[r]?Dt(e,s,t[l]):s),(()=>Dt(e,s))):q(Ve(s))?Dt(e,s):s,at=(e,t,s)=>(G(Le(z,t),(([n,o])=>{ue(n,((t,s)=>{se(e,s)||(e[s]=t)})),ue(o,(n=>{se(e,n)||Mt(t,s,n)}))})),e),rt=e=>(t&&(ue(P,((t,s)=>{se(e,s)||(e[s]=t)})),ue(W,(t=>{se(e,t)||Dt(t)}))),e),lt=e=>Xe(x,e,((e,t,s)=>{const n=ge(),o=ke();Xe(Se(x,t,ge),s,((e,t,s)=>{ve(e,t,s),G(s[l],(e=>ve(n,t,e)),(()=>Me(o,t)))})),ve(z,t,[n,o])}),((e,t)=>{ve(x,t),ve(z,t)})),it=e=>Xe(N,e,((e,t,s)=>{ve(N,t,s),G(s[l],(e=>ve(P,t,e)),(()=>Me(W,t)))}),((e,t)=>{ve(N,t),ve(P,t),he(W,t)})),ct=e=>ae(e)?ss():Yt(e),dt=e=>Xe($,e,((e,t,s)=>ut(t,s)),((e,t)=>It(t))),ut=(e,t)=>Xe(Se($,e,(()=>(yt(e,1),ge()))),t,((t,s,n)=>ht(e,t,s,n)),((t,s)=>Tt(e,t,s))),ht=(e,t,s,n,o)=>Xe(Se(t,s,(()=>(bt(e,s,1),ge()))),n,((t,n,o)=>gt(e,s,t,n,o)),((n,a)=>Ct(e,t,s,n,a,o))),gt=(e,t,s,n,o)=>{le(s,n)||Vt(e,t,n,1);const a=Le(s,n);o!==a&&(mt(e,t,n,a,o),ve(s,n,o))},ft=(e,t,s,n,o)=>G(Le(t,s),(t=>gt(e,s,t,n,o)),(()=>ht(e,t,s,at({[n]:o},e,s)))),Lt=e=>ae(e)?as():Zt(e),wt=e=>Xe(U,e,((e,t,s)=>vt(t,s)),((e,t)=>pt(t))),vt=(e,t)=>{le(U,e)||Et(e,1);const s=Le(U,e);t!==s&&(kt(e,s,t),ve(U,e,t))},St=(e,t)=>{const[s]=Se(B,e,Fe),n=s(t);return le(Le($,e),n)?St(e,t):n},Rt=e=>Le($,e)??ut(e,{}),It=e=>ut(e,{}),Tt=(e,t,s)=>{const[,n]=Se(B,e,Fe);n(s),ht(e,t,s,{},!0)},Ct=(e,t,s,n,o,a)=>{const r=Le(Le(z,e)?.[0],o);if(!q(r)&&!a)return gt(e,s,n,o,r);const l=t=>{mt(e,s,t,Le(n,t)),Vt(e,s,t,-1),ve(n,t)};q(r)?l(o):we(n,l),ie(n)&&(bt(e,s,-1),ie(ve(t,s))&&(yt(e,-1),ve($,e),ve(B,e)))},pt=e=>{const t=Le(P,e);if(!q(t))return vt(e,t);kt(e,Le(U,e)),Et(e,-1),ve(U,e)},yt=(e,t)=>Ze(c,e,t),bt=(e,t,s)=>Ze(Se(u,e,ge),t,s),Vt=(e,t,s,n)=>Ze(Se(Se(v,e,ge),t,ge),s,n),mt=(e,t,s,n,o)=>Se(Se(Se(b,e,ge),t,ge),s,(()=>[n,0]))[1]=o,Et=(e,t)=>Ze(m,e,t),kt=(e,t,s)=>Se(D,e,(()=>[t,0]))[1]=s,Mt=(e,t,s,n,o)=>(Q(Se(Se(Se(J,e,ge),t,ge),s,(()=>[])),n),o),Dt=(e,t,s)=>(Q(Se(A,e,(()=>[])),t),s),Jt=(e,t,s)=>G(Le(Le(Le(b,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...Ge(Ht(e,t,s))])),At=e=>G(Le(D,e),(([e,t])=>[!0,e,t]),(()=>[!1,...Ge(Xt(e))])),xt=e=>ie(J)||ie(De[e])?0:ue(e?ye(J):J,((t,s)=>ue(t,((t,n)=>ue(t,((t,o)=>We(De[e],[s,n,o],t))))))),Ft=e=>ie(A)||ie(Je[e])?0:ue(e?Ce(A):A,((t,s)=>We(Je[e],[s],t))),Qt=(e,t,s)=>{if(!ie(t))return We(e,s),1},zt=e=>{const t=ie(te[e]),s=ie(ce[e])&&ie(_[e])&&t&&ie(Y[e]),n=ie(be[e])&&ie(re[e])&&ie(Z[e])&&ie(X[e]);if(!s||!n){const o=e?[Ce(c),pe(u),ye(v),ye(b)]:[c,u,v,b];if(!s){ue(o[2],((t,s)=>ue(t,((t,n)=>Qt(ce[e],t,[s,n])))));const s=ke();ue(o[1],((n,o)=>{Qt(_[e],n,[o])&&!t&&(We(te[e],[o,null]),Me(s,o))})),t||ue(o[3],((t,n)=>{if(!le(s,n)){const s=ke();ue(t,(e=>ue(e,(([t,n],o)=>n!==t?Me(s,o):he(e,o))))),ue(s,(t=>We(te[e],[n,t])))}})),Qt(Y[e],o[0])}if(!n){let t;ue(o[3],((s,n)=>{let o;ue(s,((s,a)=>{let r;ue(s,(([s,l],i)=>{l!==s&&(We(be[e],[n,a,i],l,s,Jt),t=o=r=1)})),r&&We(re[e],[n,a],Jt)})),o&&We(Z[e],[n],Jt)})),t&&We(X[e],void 0,Jt)}}},Nt=e=>{const t=ie(xe[e]),s=ie(ze[e])&&ie(Ae[e]);if(!t||!s){const n=e?[Ce(m),Ce(D)]:[m,D];if(t||Qt(xe[e],n[0]),!s){let t;ue(n[1],(([s,n],o)=>{n!==s&&(We(ze[e],[o],n,s,At),t=1)})),t&&We(Ae[e],void 0,At)}}},Ot=(e,...t)=>(is((()=>e(...M(t,p)))),us),jt=()=>[Re(b,((e,t)=>-1===Le(c,t)?null:Re(e,((e,s)=>-1===Le(Le(u,t),s)?null:Re(e,(([,e])=>e??null),((e,t)=>Ue(t)))),ae)),ae),Re(D,(([,e])=>e??null),((e,t)=>Ue(t)))],Pt=()=>({cellsTouched:s,valuesTouched:n,changedCells:Te(b,Ke,Ue),invalidCells:Te(J),changedValues:Re(D,Ke,Ue),invalidValues:Re(A),changedTableIds:Re(c),changedRowIds:Ie(u),changedCellIds:Te(v),changedValueIds:Re(m)}),Wt=()=>Te($),Bt=()=>fe($),$t=e=>fe(Le($,p(e))),qt=(e,t,s,n=0,o)=>{return M(F(E((a=Le($,p(e)),r=(e,s)=>[q(t)?s:Le(e,p(t)),s],M([...a?.entries()??[]],(([e,t])=>r(t,e)))),(([e],[t])=>Ne(e,t)*(s?-1:1))),n,q(o)?o:n+o),(([,e])=>e));var a,r},Gt=(e,t)=>fe(Le(Le($,p(e)),p(t))),Ht=(e,t,s)=>Le(Le(Le($,p(e)),p(t)),p(s)),Kt=()=>Re(U),Ut=()=>fe(U),Xt=e=>Le(U,p(e)),Yt=e=>Ot((()=>(e=>Ye(e,et,Mt))(e)?dt(e):0)),Zt=e=>Ot((()=>nt(e)?wt(e):0)),_t=e=>{try{ct(j(e))}catch{}return us},es=t=>Ot((()=>{if((e=Ye(t,(e=>Ye(e,qe))))&&(lt(t),!ie($))){const e=Wt();ss(),Yt(e)}})),ts=e=>Ot((()=>{if(t=(e=>Ye(e,qe))(e)){const s=Kt();ls(),as(),t=!0,it(e),Zt(s)}})),ss=()=>Ot((()=>dt({}))),ns=e=>Ot((e=>le($,e)?It(e):0),e),os=(e,t)=>Ot(((e,t)=>G(Le($,e),(s=>le(s,t)?Tt(e,s,t):0))),e,t),as=()=>Ot((()=>wt({}))),rs=()=>Ot((()=>{lt({}),e=!1})),ls=()=>Ot((()=>{it({}),t=!1})),is=(e,t)=>{if(-1!=a){cs();const s=e();return ds(t),s}},cs=()=>(-1!=a&&a++,1==a&&We(Oe,void 0,jt,Pt),us),ds=e=>(a>0&&(a--,0==a&&(s=!ie(b),n=!ie(D),a=1,xt(1),s&&zt(1),Ft(1),n&&Nt(1),e?.(jt,Pt)&&(ue(b,((e,t)=>ue(e,((e,s)=>ue(e,(([e],n)=>me(us,t,s,n,e))))))),ue(D,(([e],t)=>Ee(us,t,e))),s=n=!1),We(je[0],void 0,jt,Pt),a=-1,xt(0),s&&zt(0),Ft(0),n&&Nt(0),We(je[1],void 0,jt,Pt),a=0,s=n=!1,k([c,u,v,b,J,m,D,A],de))),us),us={getContent:()=>[Wt(),Kt()],getTables:Wt,getTableIds:Bt,getTable:e=>Ie(Le($,p(e))),getRowIds:$t,getSortedRowIds:qt,getRow:(e,t)=>Re(Le(Le($,p(e)),p(t))),getCellIds:Gt,getCell:Ht,getValues:Kt,getValueIds:Ut,getValue:Xt,hasTables:()=>!ie($),hasTable:e=>le($,p(e)),hasRow:(e,t)=>le(Le($,p(e)),p(t)),hasCell:(e,t,s)=>le(Le(Le($,p(e)),p(t)),p(s)),hasValues:()=>!ie(U),hasValue:e=>le(U,p(e)),getTablesJson:()=>O($),getValuesJson:()=>O(U),getJson:()=>O([$,U]),getTablesSchemaJson:()=>O(x),getValuesSchemaJson:()=>O(N),getSchemaJson:()=>O([x,N]),setContent:([e,t])=>Ot((()=>{Yt(e),Zt(t)})),setTables:Yt,setTable:(e,t)=>Ot((e=>et(t,e)?ut(e,t):0),e),setRow:(e,t,s)=>Ot(((e,t)=>tt(e,t,s)?ht(e,Rt(e),t,s):0),e,t),addRow:(e,t,s=!0)=>is((()=>{let n;return tt(e,n,t)&&(e=p(e),ht(e,Rt(e),n=St(e,s?1:0),t)),n})),setPartialRow:(e,t,s)=>Ot(((e,t)=>{if(tt(e,t,s,1)){const n=Rt(e);oe(s,((s,o)=>ft(e,n,t,o,s)))}}),e,t),setCell:(e,t,s,n)=>Ot(((e,t,s)=>G(st(e,t,s,K(n)?n(Ht(e,t,s)):n),(n=>ft(e,Rt(e),t,s,n)))),e,t,s),setValues:Zt,setPartialValues:e=>Ot((()=>nt(e,1)?oe(e,((e,t)=>vt(t,e))):0)),setValue:(e,t)=>Ot((e=>G(ot(e,K(t)?t(Xt(e)):t),(t=>vt(e,t)))),e),setTransactionChanges:e=>Ot((()=>{oe(e[0],((e,t)=>q(e)?ns(t):oe(e,((e,s)=>q(e)?os(t,s):oe(e,((e,n)=>me(us,t,s,n,e))))))),oe(e[1],((e,t)=>Ee(us,t,e)))})),setTablesJson:_t,setValuesJson:e=>{try{Lt(j(e))}catch{}return us},setJson:e=>{try{const[t,s]=j(e);ct(t),Lt(s)}catch{_t(e)}return us},setTablesSchema:es,setValuesSchema:ts,setSchema:(e,t)=>Ot((()=>{es(e),ts(t)})),delTables:ss,delTable:ns,delRow:os,delCell:(e,t,s,n)=>Ot(((e,t,s)=>G(Le($,e),(o=>G(Le(o,t),(a=>le(a,s)?Ct(e,o,t,a,s,n):0))))),e,t,s),delValues:as,delValue:e=>Ot((e=>le(U,e)?pt(e):0),e),delTablesSchema:rs,delValuesSchema:ls,delSchema:()=>Ot((()=>{rs(),ls()})),transaction:is,startTransaction:cs,finishTransaction:ds,forEachTable:e=>ue($,((t,s)=>e(s,(e=>ue(t,((t,s)=>e(s,(e=>we(t,e))))))))),forEachRow:(e,t)=>ue(Le($,p(e)),((e,s)=>t(s,(t=>we(e,t))))),forEachCell:(e,t,s)=>we(Le(Le($,p(e)),p(t)),s),forEachValue:e=>we(U,e),addSortedRowIdsListener:(e,t,s,n,o,a,r)=>{let l=qt(e,t,s,n,o);return Pe((()=>{const r=qt(e,t,s,n,o);V(r,l)||(l=r,a(us,e,t,s,n,o,l))}),te[r?1:0],[e,t],[Bt])},addStartTransactionListener:e=>Pe(e,Oe),addWillFinishTransactionListener:e=>Pe(e,je[0]),addDidFinishTransactionListener:e=>Pe(e,je[1]),callListener:e=>($e(e),us),delListener:e=>(Be(e),us),getListenerStats:()=>({}),createStore:_e};return oe({[g]:[0,X],[f]:[0,Y],[h]:[1,Z,[Bt]],[w]:[1,_,[Bt]],[L]:[2,re,[Bt,$t]],[R]:[2,ce,[Bt,$t]],[S]:[3,be,[Bt,$t,Gt],e=>Ge(Ht(...e))],InvalidCell:[3,De],[T]:[0,Ae],[C]:[0,xe],[I]:[1,ze,[Ut],e=>Ge(Xt(e[0]))],InvalidValue:[1,Je]},(([e,t,s,n],o)=>{us[d+o+i]=(...o)=>Pe(o[e],t[o[e+1]?1:0],e>0?F(o,0,e):void 0,s,n)})),ee(us)};export{ze as createCheckpoints,Be as createCustomPersister,Oe as createIndexes,We as createMetrics,$e as createQueries,qe as createRelationships,_e 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+u,v="Sorted"+L+u,S="Cell",R=S+u,T="Value",I=T+"s",C=T+u,y=e=>t+e,p=(e,t)=>e.includes(t),b=(e,t)=>e.every(t),V=(e,t)=>J(e)===J(t)&&b(e,((e,s)=>t[s]===e)),m=(e,t)=>b(e,((s,n)=>0==n||t(e[n-1],s)<=0)),E=(e,t)=>e.sort(t),k=(e,t)=>e.forEach(t),M=(e,t)=>e.map(t),D=e=>x(e,((e,t)=>e+t),0),J=e=>e.length,A=e=>0==J(e),x=(e,t,s)=>e.reduce(t,s),F=(e,t,s)=>e.slice(t,s),Q=(e,...t)=>e.push(...t),z=e=>e.pop(),N=e=>e.shift(),O=e=>JSON.stringify(e,((e,t)=>$(t,Map)?x([...t],((e,[t,s])=>(e[t]=s,e)),{}):t)),j=JSON.parse,P=Math.max,W=Math.min,B=isFinite,$=(e,t)=>e instanceof t,q=e=>null==e,G=(e,t,s)=>q(e)?s?.():t(e),H=e=>e==s||e==n,K=t=>e(t)==o,U=e=>Array.isArray(e),X=()=>{},Y=Object,Z=Y.keys,_=Y.isFrozen,ee=Y.freeze,te=e=>$(e,Y)&&e.constructor==Y,se=(e,t)=>!q(((e,t)=>G(e,(e=>e[t])))(e,t)),ne=(e,t)=>(delete e[t],e),ae=(e,t)=>M(Y.entries(e),(([e,s])=>t(s,e))),oe=e=>te(e)&&0==(e=>J(Z(e)))(e),re=e=>e.size,le=(e,t)=>e?.has(t)??!1,ie=e=>q(e)||0==re(e),ce=e=>[...e?.values()??[]],de=e=>e.clear(),ue=(e,t)=>e?.forEach(t),he=(e,t)=>e?.delete(t),ge=e=>new Map(e),fe=e=>[...e?.keys()??[]],Le=(e,t)=>e?.get(t),we=(e,t)=>ue(e,((e,s)=>t(s,e))),ve=(e,t,s)=>q(s)?(he(e,t),e):e?.set(t,s),Se=(e,t,s)=>(le(e,t)||ve(e,t,s()),Le(e,t)),Re=(e,t,s,n=ve)=>(ae(t,((t,n)=>s(e,n,t))),we(e,(s=>se(t,s)?0:n(e,s))),e),Te=(e,t,s)=>{const n={};return ue(e,((e,a)=>{const o=t?t(e,a):e;!s?.(o,e)&&(n[a]=o)})),n},Ie=(e,t,s)=>Te(e,(e=>Te(e,t,s)),oe),Ce=(e,t,s)=>Te(e,(e=>Ie(e,t,s)),oe),ye=(e,t)=>{const s=ge();return ue(e,((e,n)=>s.set(n,t?.(e)??e))),s},pe=e=>ye(e,ye),be=e=>ye(e,pe),Ve=(e,t,s,n,a=0)=>G((s?Se:Le)(e,t[a],a>J(t)-2?s:ge),(o=>{if(a>J(t)-2)return n?.(o)&&ve(e,t[a]),o;const r=Ve(o,t,s,n,a+1);return ie(o)&&ve(e,t[a]),r})),me=t=>{const s=e(t);return H(s)||s==a&&B(t)?s:void 0},Ee=(e,t,s,n,a)=>q(a)?e.delCell(t,s,n,!0):e.setCell(t,s,n,a),ke=(e,t,s)=>q(s)?e.delValue(t):e.setValue(t,s),Me=e=>new Set(U(e)||q(e)?e:[e]),De=(e,t)=>e?.add(t),Je=(e,t,s)=>{const n=e.hasRow,a=ge(),o=ge(),r=ge(),l=ge(),i=ge(),c=(t,s,...n)=>{const a=Se(i,t,Me);return k(n,(t=>De(a,t)&&s&&e.callListener(t))),n},d=(t,...s)=>G(Le(i,t),(n=>{k(A(s)?ce(n):s,(t=>{e.delListener(t),he(n,t)})),ie(n)&&ve(i,t)})),u=(e,s)=>{ve(a,e,s),le(o,e)||(ve(o,e,t()),ve(r,e,ge()),ve(l,e,ge()))},h=e=>{ve(a,e),ve(o,e),ve(r,e),ve(l,e),d(e)};return[()=>e,()=>fe(a),e=>we(o,e),e=>le(o,e),e=>Le(a,e),e=>Le(o,e),(e,t)=>ve(o,e,t),u,(t,a,o,i,h)=>{u(t,a);const g=ge(),f=ge(),L=Le(r,t),w=Le(l,t),v=t=>{const o=s=>e.getCell(a,t,s),r=Le(L,t),l=n(a,t)?s(i(o,t)):void 0;if(r===l||U(r)&&U(l)&&V(r,l)||ve(g,t,[r,l]),!q(h)){const e=Le(w,t),s=n(a,t)?h(o,t):void 0;e!=s&&ve(f,t,s)}},S=e=>{o((()=>{ue(g,(([,e],t)=>ve(L,t,e))),ue(f,((e,t)=>ve(w,t,e)))}),g,f,L,w,e),de(g),de(f)};we(L,v),e.hasTable(a)&&k(e.getRowIds(a),(e=>{le(L,e)||v(e)})),S(!0),d(t),c(t,0,e.addRowListener(a,null,((e,t,s)=>v(s))),e.addTableListener(a,(()=>S())))},h,()=>we(i,h),c,d]},Ae=(n,a)=>e(n)==s?e=>e(n):n??(()=>a??t),xe=e=>{const t=new WeakMap;return s=>(t.has(s)||t.set(s,e(s)),t.get(s))},Fe=/^\d+$/,Qe=()=>{const e=[];let s=0;return[n=>(n?N(e):null)??t+s++,t=>{Fe.test(t)&&J(e)<1e3&&Q(e,t)}]},ze=e=>{let s;const[n,a]=Qe(),o=ge();return[(a,r,l,i=[],c=(()=>[]))=>{s??=e();const d=n(1);return ve(o,d,[a,r,l,i,c]),De(Ve(r,l??[t],Me),d),d},(e,n,...a)=>k(((e,s=[t])=>{const n=[],a=(e,t)=>t==J(s)?Q(n,e):null===s[t]?ue(e,(e=>a(e,t+1))):k([s[t],null],(s=>a(Le(e,s),t+1)));return a(e,0),n})(e,n),(e=>ue(e,(e=>Le(o,e)[0](s,...n??[],...a))))),e=>G(Le(o,e),(([,s,n])=>(Ve(s,n??[t],void 0,(t=>(he(t,e),ie(t)?1:0))),ve(o,e),a(e),n))),e=>G(Le(o,e),(([e,,t=[],n,a])=>{const o=(...r)=>{const l=J(r);l==J(t)?e(s,...r,...a(r)):q(t[l])?k(n[l]?.(...r)??[],(e=>o(...r,e))):o(...r,t[l])};o()}))]},Ne=xe((e=>{let s,n,a,o=100,r=ge(),l=ge(),i=1;const c=ge(),d=ge(),[u,h,g]=ze((()=>j)),f=ge(),L=ge(),w=[],v=[],S=(t,s)=>{i=0,e.transaction((()=>{const[n,a]=Le(f,s);ue(n,((s,n)=>ue(s,((s,a)=>ue(s,((s,o)=>Ee(e,n,a,o,s[t]))))))),ue(a,((s,n)=>ke(e,n,s[t])))})),i=1},R=e=>{ve(f,e),ve(L,e),h(d,[e])},T=(e,t)=>k(((e,t)=>e.splice(0,t))(e,t??J(e)),R),I=()=>T(w,J(w)-o),C=()=>G(s,(()=>{Q(w,s),I(),T(v),s=void 0,a=1})),y=()=>{s=z(w),a=1},b=e.addCellListener(null,null,null,((e,t,s,n,a,o)=>{if(i){C();const e=Se(r,t,ge),l=Se(e,s,ge),i=Se(l,n,(()=>[o,void 0]));i[1]=a,i[0]===a&&ie(ve(l,n))&&ie(ve(e,s))&&ie(ve(r,t))&&y(),D()}})),V=e.addValueListener(null,((e,t,s,n)=>{if(i){C();const e=Se(l,t,(()=>[n,void 0]));e[1]=s,e[0]===s&&ie(ve(l,t))&&y(),D()}})),m=(e="")=>(q(s)&&(s=t+n++,ve(f,s,[r,l]),F(s,e),r=ge(),l=ge(),a=1),s),E=()=>{A(w)||(((e,...t)=>{e.unshift(...t)})(v,m()),S(0,s),s=z(w),a=1)},M=()=>{A(v)||(Q(w,s),s=N(v),S(1,s),a=1)},D=()=>{a&&(h(c),a=0)},x=e=>{const t=m(e);return D(),t},F=(e,t)=>(O(e)&&Le(L,e)!==t&&(ve(L,e,t),h(d,[e])),j),O=e=>le(f,e),j={setSize:e=>(o=e,I(),j),addCheckpoint:x,setCheckpoint:F,getStore:()=>e,getCheckpointIds:()=>[[...w],s,[...v]],forEachCheckpoint:e=>we(L,e),hasCheckpoint:O,getCheckpoint:e=>Le(L,e),goBackward:()=>(E(),D(),j),goForward:()=>(M(),D(),j),goTo:e=>{const t=p(w,e)?E:p(v,e)?M:null;for(;!q(t)&&e!=s;)t();return D(),j},addCheckpointIdsListener:e=>u(e,c),addCheckpointListener:(e,t)=>u(t,d,[e]),delListener:e=>(g(e),j),clear:()=>(T(w),T(v),q(s)||R(s),s=void 0,n=0,x(),j),destroy:()=>{e.delListener(b),e.delListener(V)},getListenerStats:()=>({})};return ee(j.clear())})),Oe=(e,t)=>e<t?-1:1,je=xe((e=>{const s=ge(),n=ge(),[a,o,r,l,i,c,d,,u,h,g]=Je(e,ge,(e=>q(e)?t:U(e)?M(e,y):y(e))),[f,L,w]=ze((()=>S)),v=(t,s,n)=>{const a=i(t);ue(n,((t,n)=>s(n,(s=>ue(t,(t=>s(t,(s=>e.forEachCell(a,t,s)))))))))},S={setIndexDefinition:(e,t,a,o,r,l=Oe)=>{const i=q(r)?void 0:([e],[t])=>r(e,t);return u(e,t,((t,a,r,u,h,g)=>{let f=0;const w=Me(),v=Me(),S=c(e);if(ue(a,(([e,t],s)=>{const n=Me(e),a=Me(t);ue(n,(e=>he(a,e)?he(n,e):0)),ue(n,(e=>{De(w,e),G(Le(S,e),(t=>{he(t,s),ie(t)&&(ve(S,e),f=1)}))})),ue(a,(e=>{De(w,e),le(S,e)||(ve(S,e,Me()),f=1),De(Le(S,e),s),q(o)||De(v,e)}))})),t(),ie(h)||(g?we(S,(e=>De(v,e))):we(r,(e=>G(Le(u,e),(e=>De(v,e))))),ue(v,(e=>{const t=(t,s)=>l(Le(h,t),Le(h,s),e),s=[...Le(S,e)];m(s,t)||(ve(S,e,Me(E(s,t))),De(w,e))}))),(f||g)&&!q(i)){const t=[...S];m(t,i)||(d(e,ge(E(t,i))),f=1)}f&&L(s,[e]),ue(w,(t=>L(n,[e,t])))}),Ae(a),G(o,Ae)),S},delIndexDefinition:e=>(h(e),S),getStore:a,getIndexIds:o,forEachIndex:e=>r(((t,s)=>e(t,(e=>v(t,e,s))))),forEachSlice:(e,t)=>v(e,t,c(e)),hasIndex:l,hasSlice:(e,t)=>le(c(e),t),getTableId:i,getSliceIds:e=>fe(c(e)),getSliceRowIds:(e,t)=>ce(Le(c(e),t)),addSliceIdsListener:(e,t)=>f(t,s,[e]),addSliceRowIdsListener:(e,t,s)=>f(s,n,[e,t]),delListener:e=>(w(e),S),destroy:g,getListenerStats:()=>({})};return ee(S)})),Pe=ge([["avg",[(e,t)=>D(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=>P(...e),(e,t)=>P(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:P(t,e)]],["min",[e=>W(...e),(e,t)=>W(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:W(t,e)]],["sum",[e=>D(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),We=(e,t,s,n,a,o=!1)=>{if(ie(s))return;const[r,l,i,c]=a;return o||=q(e),ue(n,(([s,n])=>{o||(e=q(s)?l?.(e,n,t++):q(n)?i?.(e,s,t--):c?.(e,n,s,t),o||=q(e))})),o?r(ce(s),re(s)):e},Be=xe((e=>{const s=ge(),[n,a,o,r,l,i,c,,d,u,h]=Je(e,X,(e=>isNaN(e)||q(e)||!0===e||!1===e||e===t?void 0:1*e)),[g,f,L]=ze((()=>w)),w={setMetricDefinition:(e,t,n,a,o,r,l)=>{const u=K(n)?[n,o,r,l]:Le(Pe,n)??Le(Pe,"sum");return d(e,t,((t,n,a,o,r,l)=>{const d=i(e),h=re(o);l||=q(d),t();let g=We(d,h,o,n,u,l);B(g)||(g=void 0),g!=d&&(c(e,g),f(s,[e],g,d))}),Ae(a,1)),w},delMetricDefinition:e=>(u(e),w),getStore:n,getMetricIds:a,forEachMetric:o,hasMetric:r,getTableId:l,getMetric:i,addMetricListener:(e,t)=>g(t,s,[e]),delListener:e=>(L(e),w),destroy:h,getListenerStats:()=>({})};return ee(w)})),$e=(e,t,s,n,a)=>{let o,r,l,i=0,c=0,d=0;const u=[],h=async e=>{2!=i&&(i=1,await e(),i=0)},g={load:async(s,n)=>(await h((async()=>{try{e.setContent(await t())}catch{e.setContent([s,n])}})),g),startAutoLoad:async(s={},a={})=>(g.stopAutoLoad(),await g.load(s,a),d=1,l=n((async(s,n)=>{await h((async()=>{if(n)e.setTransactionChanges(n());else try{e.setContent(s?.()??await t())}catch{}}))})),g),stopAutoLoad:()=>(d&&(a(l),l=void 0,d=0),g),save:async t=>(await g.schedule((async()=>{if(1!=i){i=2;try{await s(e.getContent,t)}catch{}i=0}})),g),startAutoSave:async()=>(await g.stopAutoSave().save(),o=e.addDidFinishTransactionListener(((e,t)=>{const s=t();g.save((()=>s))})),g),stopAutoSave:()=>(G(o,e.delListener),g),schedule:async(...e)=>(Q(u,...e),await(async()=>{if(!c){for(c=1;!q(r=N(u));)try{await r()}catch{}c=0}})(),g),getStore:()=>e,destroy:()=>g.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return ee(g)},qe=xe((e=>{const s=e.createStore,[n,a,o,r,l,,,u,,g,f,T,I]=Je(e,(()=>!0),X),C=s(),y=s(),p=ge(),V=(e,t,...s)=>k(s,(s=>De(Se(Se(p,t,ge),e,Me),s))),m=e=>{G(Le(p,e),(e=>{we(e,((e,t)=>ue(t,(t=>e.delListener(t))))),de(e)})),k([y,C],(t=>t.delTable(e)))},E=(e,t,s)=>V(t,e,t.addStartTransactionListener(s.startTransaction),t.addDidFinishTransactionListener((()=>s.finishTransaction()))),M={setQueryDefinition:(s,n,a)=>{u(s,n),m(s);const o=[],r=[[null,[n,null,null,[],ge()]]],l=[],i=[],c=[];a({select:(e,s)=>{const n=K(e)?[J(o)+t,e]:[q(s)?e:s,t=>t(e,s)];return Q(o,n),{as:e=>n[0]=e}},join:(e,t,s)=>{const n=q(s)||K(t)?null:t,a=q(n)?t:s,o=[e,[e,n,K(a)?a:e=>e(a),[],ge()]];return Q(r,o),{as:e=>o[0]=e}},where:(e,t,s)=>Q(l,K(e)?e:q(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,a)=>{const o=[e,[e,K(t)?[t,s,n,a]:Le(Pe,t)??[(e,t)=>t]]];return Q(i,o),{as:e=>o[0]=e}},having:(e,t)=>Q(c,K(e)?e:s=>s(e)===t)});const d=ge(o);if(ie(d))return M;const h=ge(r);we(h,((e,[,t])=>G(Le(h,t),(({3:t})=>q(e)?0:Q(t,e)))));const g=ge(i);let f=C;if(ie(g)&&A(c))f=y;else{E(s,f,y);const e=ge();we(g,((t,[s,n])=>De(Se(e,s,Me),[t,n])));const t=Me();we(d,(s=>le(e,s)?0:De(t,s)));const n=ge(),a=(t,n,a,o)=>G(t,(([r,l,i,d])=>{we(n,((t,[s])=>{const n=Se(r,t,ge),l=Le(n,a),i=o?void 0:s;if(l!==i){const s=Me([[l,i]]),o=re(n);ve(n,a,i),ue(Le(e,t),(([e,t])=>{const a=We(d[e],o,n,s,t);d[e]=q(me(a))?null:a}))}})),ie(l)||!b(c,(e=>e((e=>d[e]))))?y.delRow(s,i):q(i)?t[2]=y.addRow(s,d):y.setRow(s,i,d)}));V(f,s,f.addRowListener(s,null,((o,r,l,i)=>{const c=[],d=[],u=ge(),h=f.hasRow(s,l);let g=!h;ue(t,(e=>{const[t,n,a]=i(s,l,e);Q(c,n),Q(d,a),g||=t})),we(e,(e=>{const[t,,n]=i(s,l,e);(g||t)&&ve(u,e,[n])})),g&&a(Ve(n,c,void 0,(([,e])=>(he(e,l),ie(e)))),u,l,1),h&&a(Ve(n,d,(()=>{const e={};return ue(t,(t=>e[t]=f.getCell(s,l,t))),[ge(),Me(),void 0,e]}),(([,e])=>{De(e,l)})),u,l)})))}E(s,e,f);const L=(t,a,o,r)=>{const i=t=>e.getCell(a,o,t);k(r,(n=>{const[a,,o,r,l]=Le(h,n),c=o?.(i,t),[d,u]=Le(l,t)??[];c!=d&&(q(u)||I(s,u),ve(l,t,q(c)?null:[c,...T(s,1,e.addRowListener(a,c,(()=>L(t,a,c,r))))]))})),(t=>{const a=(s,a)=>e.getCell(...q(a)?[n,t,s]:s===n?[n,t,a]:[Le(h,s)?.[0],Le(Le(h,s)?.[4],t)?.[0],a]);f.transaction((()=>b(l,(e=>e(a)))?we(d,((e,n)=>Ee(f,s,t,e,n(a,t)))):f.delRow(s,t)))})(t)},{3:w}=Le(h,null);return f.transaction((()=>T(s,1,e.addRowListener(n,null,((t,a,o)=>{e.hasRow(n,o)?L(o,n,o,w):(f.delRow(s,o),ue(h,(({4:e})=>G(Le(e,o),(([,t])=>{I(s,t),ve(e,o)})))))}))))),M},delQueryDefinition:e=>(m(e),g(e),M),getStore:n,getQueryIds:a,forEachQuery:o,hasQuery:r,getTableId:l,delListener:e=>(y.delListener(e),M),destroy:f,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=y.getListenerStats();return n}};return ae({[h]:[1,1],[w]:[0,1],[v]:[0,5],[L]:[1,2],[R]:[0,2],[S]:[1,3]},(([e,t],s)=>{k(e?["get","has","forEach"]:["get"],(e=>M[e+c+s]=(...t)=>y[e+s](...t))),M[d+c+s+i]=(...e)=>y[d+s+i](...F(e,0,t),((s,...n)=>e[t](M,...n)))})),ee(M)})),Ge=xe((e=>{const s=ge(),n=ge(),a=ge(),o=ge(),[r,l,i,c,d,u,,,h,g,f]=Je(e,(()=>[ge(),ge(),ge(),ge()]),(e=>q(e)?void 0:e+t)),[L,w,v]=ze((()=>I)),S=(e,t,s)=>G(u(e),(([n,,a])=>{if(!le(a,t)){const o=Me();if(d(e)!=T(e))De(o,t);else{let e=t;for(;!q(e)&&!le(o,e);)De(o,e),e=Le(n,e)}if(s)return o;ve(a,t,o)}return Le(a,t)})),R=(e,t)=>G(u(e),(([,,e])=>ve(e,t))),T=e=>Le(s,e),I={setRelationshipDefinition:(e,t,r,l)=>(ve(s,e,r),h(e,t,((t,s)=>{const r=Me(),l=Me(),i=Me(),[c,d]=u(e);ue(s,(([t,s],n)=>{q(t)||(De(l,t),G(Le(d,t),(e=>{he(e,n),ie(e)&&ve(d,t)}))),q(s)||(De(l,s),le(d,s)||ve(d,s,Me()),De(Le(d,s),n)),De(r,n),ve(c,n,s),we(Le(o,e),(t=>{le(S(e,t),n)&&De(i,t)}))})),t(),ue(r,(t=>w(n,[e,t]))),ue(l,(t=>w(a,[e,t]))),ue(i,(t=>{R(e,t),w(o,[e,t])}))}),Ae(l)),I),delRelationshipDefinition:e=>(ve(s,e),g(e),I),getStore:r,getRelationshipIds:l,forEachRelationship:t=>i((s=>t(s,(t=>e.forEachRow(d(s),t))))),hasRelationship:c,getLocalTableId:d,getRemoteTableId:T,getRemoteRowId:(e,t)=>Le(u(e)?.[0],t),getLocalRowIds:(e,t)=>ce(Le(u(e)?.[1],t)),getLinkedRowIds:(e,t)=>q(u(e))?[t]:ce(S(e,t,!0)),addRemoteRowIdListener:(e,t,s)=>L(s,n,[e,t]),addLocalRowIdsListener:(e,t,s)=>L(s,a,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(S(e,t),L(s,o,[e,t])),delListener:e=>(R(...v(e)),I),destroy:f,getListenerStats:()=>({})};return ee(I)})),He=e=>[e,e],Ke=()=>[ge(),ge()],Ue=e=>[...e],Xe=([e,t])=>e===t,Ye=(e,t,s)=>q(e)||!te(e)||oe(e)||_(e)?(s?.(),!1):(ae(e,((s,n)=>{t(s,n)||ne(e,n)})),!oe(e)),Ze=(e,t,s)=>ve(e,t,Le(e,t)==-s?void 0:s),_e=()=>{let e,t,s=!1,n=!1,o=0;const c=ge(),u=ge(),v=ge(),b=ge(),m=ge(),D=ge(),J=ge(),A=ge(),x=ge(),z=ge(),N=ge(),P=ge(),W=ge(),B=Me(),$=ge(),U=ge(),X=ge(),Y=ge(),Z=Ke(),_=Ke(),te=Ke(),re=Ke(),ce=Ke(),Ve=Ke(),Je=Ke(),Ae=Ke(),xe=Ke(),Fe=Ke(),Ne=Ke(),je=Ke(),Pe=Ke(),We=Ke(),Be=ge(),$e=Ke(),[qe,Ge,et,tt]=ze((()=>fs)),st=e=>{if(!Ye(e,((e,t)=>p([r,l],t))))return!1;const t=e[r];return!(!H(t)&&t!=a||(me(e[l])!=t&&ne(e,l),0))},nt=(t,s)=>(!e||le(z,s)||At(s))&&Ye(t,((e,t)=>at(s,t,e)),(()=>At(s))),at=(e,t,s,n)=>Ye(n?s:it(s,e,t),((n,a)=>G(ot(e,t,a,n),(e=>(s[a]=e,!0)),(()=>!1))),(()=>At(e,t))),ot=(t,s,n,a)=>e?G(Le(Le(z,t),n),(e=>me(a)!=e[r]?At(t,s,n,a,e[l]):a),(()=>At(t,s,n,a))):q(me(a))?At(t,s,n,a):a,rt=(e,t)=>Ye(t?e:ct(e),((t,s)=>G(lt(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>xt())),lt=(e,s)=>t?G(Le(P,e),(t=>me(s)!=t[r]?xt(e,s,t[l]):s),(()=>xt(e,s))):q(me(s))?xt(e,s):s,it=(e,t,s)=>(G(Le(N,t),(([n,a])=>{ue(n,((t,s)=>{se(e,s)||(e[s]=t)})),ue(a,(n=>{se(e,n)||At(t,s,n)}))})),e),ct=e=>(t&&(ue(W,((t,s)=>{se(e,s)||(e[s]=t)})),ue(B,(t=>{se(e,t)||xt(t)}))),e),dt=e=>Re(z,e,((e,t,s)=>{const n=ge(),a=Me();Re(Se(z,t,ge),s,((e,t,s)=>{ve(e,t,s),G(s[l],(e=>ve(n,t,e)),(()=>De(a,t)))})),ve(N,t,[n,a])}),((e,t)=>{ve(z,t),ve(N,t)})),ut=e=>Re(P,e,((e,t,s)=>{ve(P,t,s),G(s[l],(e=>ve(W,t,e)),(()=>De(B,t)))}),((e,t)=>{ve(P,t),ve(W,t),he(B,t)})),ht=e=>oe(e)?os():es(e),gt=e=>Re(X,e,((e,t,s)=>ft(t,s)),((e,t)=>yt(t))),ft=(e,t)=>Re(Se(X,e,(()=>(mt(e,1),ve($,e,Qe()),ve(U,e,ge()),ge()))),t,((t,s,n)=>Lt(e,t,s,n)),((t,s)=>pt(e,t,s))),Lt=(e,t,s,n,a)=>Re(Se(t,s,(()=>(Et(e,s,1),ge()))),n,((t,n,a)=>wt(e,s,t,n,a)),((n,o)=>bt(e,t,s,n,o,a))),wt=(e,t,s,n,a)=>{le(s,n)||kt(e,t,n,1);const o=Le(s,n);a!==o&&(Mt(e,t,n,o,a),ve(s,n,a))},vt=(e,t,s,n,a)=>G(Le(t,s),(t=>wt(e,s,t,n,a)),(()=>Lt(e,t,s,it({[n]:a},e,s)))),St=e=>oe(e)?is():ts(e),Rt=e=>Re(Y,e,((e,t,s)=>Tt(t,s)),((e,t)=>Vt(t))),Tt=(e,t)=>{le(Y,e)||Dt(e,1);const s=Le(Y,e);t!==s&&(Jt(e,s,t),ve(Y,e,t))},It=(e,t)=>{const[s]=Le($,e),n=s(t);return le(Le(X,e),n)?It(e,t):n},Ct=e=>Le(X,e)??ft(e,{}),yt=e=>ft(e,{}),pt=(e,t,s)=>{const[,n]=Le($,e);n(s),Lt(e,t,s,{},!0)},bt=(e,t,s,n,a,o)=>{const r=Le(Le(N,e)?.[0],a);if(!q(r)&&!o)return wt(e,s,n,a,r);const l=t=>{Mt(e,s,t,Le(n,t)),kt(e,s,t,-1),ve(n,t)};q(r)?l(a):we(n,l),ie(n)&&(Et(e,s,-1),ie(ve(t,s))&&(mt(e,-1),ve(X,e),ve($,e),ve(U,e)))},Vt=e=>{const t=Le(W,e);if(!q(t))return Tt(e,t);Jt(e,Le(Y,e)),Dt(e,-1),ve(Y,e)},mt=(e,t)=>Ze(c,e,t),Et=(e,t,s)=>Ze(Se(v,e,ge),t,s),kt=(e,t,s,n)=>{const a=Le(U,e),o=Le(a,s)??0;(0==o&&1==n||1==o&&-1==n)&&Ze(Se(u,e,ge),s,n),ve(a,s,o!=-n?o+n:null),Ze(Se(Se(b,e,ge),t,ge),s,n)},Mt=(e,t,s,n,a)=>Se(Se(Se(m,e,ge),t,ge),s,(()=>[n,0]))[1]=a,Dt=(e,t)=>Ze(D,e,t),Jt=(e,t,s)=>Se(J,e,(()=>[t,0]))[1]=s,At=(e,t,s,n,a)=>(Q(Se(Se(Se(A,e,ge),t,ge),s,(()=>[])),n),a),xt=(e,t,s)=>(Q(Se(x,e,(()=>[])),t),s),Ft=(e,t,s)=>G(Le(Le(Le(m,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...He(Xt(e,t,s))])),Qt=e=>G(Le(J,e),(([e,t])=>[!0,e,t]),(()=>[!1,...He(_t(e))])),zt=e=>ie(A)||ie(Fe[e])?0:ue(e?be(A):A,((t,s)=>ue(t,((t,n)=>ue(t,((t,a)=>Ge(Fe[e],[s,n,a],t))))))),Nt=e=>ie(x)||ie(Ne[e])?0:ue(e?ye(x):x,((t,s)=>Ge(Ne[e],[s],t))),Ot=(e,t,s)=>{if(!ie(t))return Ge(e,s,(()=>Te(t))),1},jt=e=>{const t=ie(Ve[e]),s=ie(Ae[e])&&ie(re[e])&&ie(ce[e])&&t&&ie(_[e]),n=ie(xe[e])&&ie(Je[e])&&ie(te[e])&&ie(Z[e]);if(!s||!n){const a=e?[ye(c),pe(u),pe(v),be(b),be(m)]:[c,u,v,b,m];if(!s){Ot(_[e],a[0]),ue(a[1],((t,s)=>Ot(re[e],t,[s])));const s=Me();ue(a[2],((n,a)=>{Ot(ce[e],n,[a])&&!t&&(Ge(Ve[e],[a,null]),De(s,a))})),t||ue(a[4],((t,n)=>{if(!le(s,n)){const s=Me();ue(t,(e=>ue(e,(([t,n],a)=>n!==t?De(s,a):he(e,a))))),ue(s,(t=>Ge(Ve[e],[n,t])))}})),ue(a[3],((t,s)=>ue(t,((t,n)=>Ot(Ae[e],t,[s,n])))))}if(!n){let t;ue(a[4],((s,n)=>{let a;ue(s,((s,o)=>{let r;ue(s,(([s,l],i)=>{l!==s&&(Ge(xe[e],[n,o,i],l,s,Ft),t=a=r=1)})),r&&Ge(Je[e],[n,o],Ft)})),a&&Ge(te[e],[n],Ft)})),t&&Ge(Z[e],void 0,Ft)}}},Pt=e=>{const t=ie(Pe[e]),s=ie(We[e])&&ie(je[e]);if(!t||!s){const n=e?[ye(D),ye(J)]:[D,J];if(t||Ot(Pe[e],n[0]),!s){let t;ue(n[1],(([s,n],a)=>{n!==s&&(Ge(We[e],[a],n,s,Qt),t=1)})),t&&Ge(je[e],void 0,Qt)}}},Wt=(e,...t)=>(us((()=>e(...M(t,y)))),fs),Bt=()=>[Te(m,((e,t)=>-1===Le(c,t)?null:Te(e,((e,s)=>-1===Le(Le(v,t),s)?null:Te(e,(([,e])=>e??null),((e,t)=>Xe(t)))),oe)),oe),Te(J,(([,e])=>e??null),((e,t)=>Xe(t)))],$t=()=>({cellsTouched:s,valuesTouched:n,changedCells:Ce(m,Ue,Xe),invalidCells:Ce(A),changedValues:Te(J,Ue,Xe),invalidValues:Te(x),changedTableIds:Te(c),changedRowIds:Ie(v),changedCellIds:Ce(b),changedValueIds:Te(D)}),qt=()=>Ce(X),Gt=()=>fe(X),Ht=e=>fe(Le(X,y(e))),Kt=(e,t,s,n=0,a)=>{return M(F(E((o=Le(X,y(e)),r=(e,s)=>[q(t)?s:Le(e,y(t)),s],M([...o?.entries()??[]],(([e,t])=>r(t,e)))),(([e],[t])=>Oe(e,t)*(s?-1:1))),n,q(a)?a:n+a),(([,e])=>e));var o,r},Ut=(e,t)=>fe(Le(Le(X,y(e)),y(t))),Xt=(e,t,s)=>Le(Le(Le(X,y(e)),y(t)),y(s)),Yt=()=>Te(Y),Zt=()=>fe(Y),_t=e=>Le(Y,y(e)),es=e=>Wt((()=>(e=>Ye(e,nt,At))(e)?gt(e):0)),ts=e=>Wt((()=>rt(e)?Rt(e):0)),ss=e=>{try{ht(j(e))}catch{}return fs},ns=t=>Wt((()=>{if((e=Ye(t,(e=>Ye(e,st))))&&(dt(t),!ie(X))){const e=qt();os(),es(e)}})),as=e=>Wt((()=>{if(t=(e=>Ye(e,st))(e)){const s=Yt();ds(),is(),t=!0,ut(e),ts(s)}})),os=()=>Wt((()=>gt({}))),rs=e=>Wt((e=>le(X,e)?yt(e):0),e),ls=(e,t)=>Wt(((e,t)=>G(Le(X,e),(s=>le(s,t)?pt(e,s,t):0))),e,t),is=()=>Wt((()=>Rt({}))),cs=()=>Wt((()=>{dt({}),e=!1})),ds=()=>Wt((()=>{ut({}),t=!1})),us=(e,t)=>{if(-1!=o){hs();const s=e();return gs(t),s}},hs=()=>(-1!=o&&o++,1==o&&Ge(Be,void 0,Bt,$t),fs),gs=e=>(o>0&&(o--,0==o&&(s=!ie(m),n=!ie(J),o=1,zt(1),s&&jt(1),Nt(1),n&&Pt(1),e?.(Bt,$t)&&(ue(m,((e,t)=>ue(e,((e,s)=>ue(e,(([e],n)=>Ee(fs,t,s,n,e))))))),ue(J,(([e],t)=>ke(fs,t,e))),s=n=!1),Ge($e[0],void 0,Bt,$t),o=-1,zt(0),s&&jt(0),Nt(0),n&&Pt(0),Ge($e[1],void 0,Bt,$t),o=0,s=n=!1,k([c,u,v,b,m,A,D,J,x],de))),fs),fs={getContent:()=>[qt(),Yt()],getTables:qt,getTableIds:Gt,getTable:e=>Ie(Le(X,y(e))),getTableCellIds:e=>fe(Le(U,y(e))),getRowIds:Ht,getSortedRowIds:Kt,getRow:(e,t)=>Te(Le(Le(X,y(e)),y(t))),getCellIds:Ut,getCell:Xt,getValues:Yt,getValueIds:Zt,getValue:_t,hasTables:()=>!ie(X),hasTable:e=>le(X,y(e)),hasTableCell:(e,t)=>le(Le(U,y(e)),y(t)),hasRow:(e,t)=>le(Le(X,y(e)),y(t)),hasCell:(e,t,s)=>le(Le(Le(X,y(e)),y(t)),y(s)),hasValues:()=>!ie(Y),hasValue:e=>le(Y,y(e)),getTablesJson:()=>O(X),getValuesJson:()=>O(Y),getJson:()=>O([X,Y]),getTablesSchemaJson:()=>O(z),getValuesSchemaJson:()=>O(P),getSchemaJson:()=>O([z,P]),setContent:([e,t])=>Wt((()=>{(oe(e)?os:es)(e),(oe(t)?is:ts)(t)})),setTables:es,setTable:(e,t)=>Wt((e=>nt(t,e)?ft(e,t):0),e),setRow:(e,t,s)=>Wt(((e,t)=>at(e,t,s)?Lt(e,Ct(e),t,s):0),e,t),addRow:(e,t,s=!0)=>us((()=>{let n;return at(e,n,t)&&(e=y(e),Lt(e,Ct(e),n=It(e,s?1:0),t)),n})),setPartialRow:(e,t,s)=>Wt(((e,t)=>{if(at(e,t,s,1)){const n=Ct(e);ae(s,((s,a)=>vt(e,n,t,a,s)))}}),e,t),setCell:(e,t,s,n)=>Wt(((e,t,s)=>G(ot(e,t,s,K(n)?n(Xt(e,t,s)):n),(n=>vt(e,Ct(e),t,s,n)))),e,t,s),setValues:ts,setPartialValues:e=>Wt((()=>rt(e,1)?ae(e,((e,t)=>Tt(t,e))):0)),setValue:(e,t)=>Wt((e=>G(lt(e,K(t)?t(_t(e)):t),(t=>Tt(e,t)))),e),setTransactionChanges:e=>Wt((()=>{ae(e[0],((e,t)=>q(e)?rs(t):ae(e,((e,s)=>q(e)?ls(t,s):ae(e,((e,n)=>Ee(fs,t,s,n,e))))))),ae(e[1],((e,t)=>ke(fs,t,e)))})),setTablesJson:ss,setValuesJson:e=>{try{St(j(e))}catch{}return fs},setJson:e=>{try{const[t,s]=j(e);ht(t),St(s)}catch{ss(e)}return fs},setTablesSchema:ns,setValuesSchema:as,setSchema:(e,t)=>Wt((()=>{ns(e),as(t)})),delTables:os,delTable:rs,delRow:ls,delCell:(e,t,s,n)=>Wt(((e,t,s)=>G(Le(X,e),(a=>G(Le(a,t),(o=>le(o,s)?bt(e,a,t,o,s,n):0))))),e,t,s),delValues:is,delValue:e=>Wt((e=>le(Y,e)?Vt(e):0),e),delTablesSchema:cs,delValuesSchema:ds,delSchema:()=>Wt((()=>{cs(),ds()})),transaction:us,startTransaction:hs,finishTransaction:gs,forEachTable:e=>ue(X,((t,s)=>e(s,(e=>ue(t,((t,s)=>e(s,(e=>we(t,e))))))))),forEachTableCell:(e,t)=>we(Le(U,y(e)),t),forEachRow:(e,t)=>ue(Le(X,y(e)),((e,s)=>t(s,(t=>we(e,t))))),forEachCell:(e,t,s)=>we(Le(Le(X,y(e)),y(t)),s),forEachValue:e=>we(Y,e),addSortedRowIdsListener:(e,t,s,n,a,o,r)=>{let l=Kt(e,t,s,n,a);return qe((()=>{const r=Kt(e,t,s,n,a);V(r,l)||(l=r,o(fs,e,t,s,n,a,l))}),Ve[r?1:0],[e,t],[Gt])},addStartTransactionListener:e=>qe(e,Be),addWillFinishTransactionListener:e=>qe(e,$e[0]),addDidFinishTransactionListener:e=>qe(e,$e[1]),callListener:e=>(tt(e),fs),delListener:e=>(et(e),fs),getListenerStats:()=>({}),createStore:_e};return ae({[g]:[0,Z],[f]:[0,_],[h]:[1,te,[Gt]],[h+R]:[1,re,[Gt]],[w]:[1,ce,[Gt]],[L]:[2,Je,[Gt,Ht]],[R]:[2,Ae,[Gt,Ht]],[S]:[3,xe,[Gt,Ht,Ut],e=>He(Xt(...e))],InvalidCell:[3,Fe],[I]:[0,je],[C]:[0,Pe],[T]:[1,We,[Zt],e=>He(_t(e[0]))],InvalidValue:[1,Ne]},(([e,t,s,n],a)=>{fs[d+a+i]=(...a)=>qe(a[e],t[a[e+1]?1:0],e>0?F(a,0,e):void 0,s,n)})),ee(fs)};export{Ne as createCheckpoints,$e as createCustomPersister,je as createIndexes,Be as createMetrics,qe as createQueries,Ge as createRelationships,_e as createStore,Oe as defaultSorter};
|
package/lib/tinybase.js.gz
CHANGED
|
Binary file
|
package/lib/tools.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=e=>typeof e,t="",l=e(t),a=e(!0),n=e(0),o="type",d="default",r="Listener",s="get",I="add",$="Ids",c="Table",i=c+"s",u=c+$,p="Row",b=p+$,C="Sorted"+p+$,g="Cell",h=g+$,m="Value",f=m+"s",w=m+$,y=(e,t)=>e.every(t),T=(e,t)=>e.sort(t),v=(e,t)=>e.forEach(t),V=(e,t)=>e.map(t),x=e=>e.length,R=e=>0==x(e),k=(e,t)=>e.filter(t),S=(e,...t)=>e.push(...t),A=e=>e.pop(),P=(e,...t)=>e.unshift(...t),E=e=>e.shift(),D=JSON.parse,O=isFinite,N=(e,t)=>e instanceof t,L=e=>null==e,G=e=>e==l||e==a,j=t=>e(t)==l,M=e=>Array.isArray(e),J=t=>{const l=e(t);return G(l)||l==n&&O(t)?l:void 0},z=Object,W=z.keys,B=z.freeze,F=e=>N(e,z)&&e.constructor==z,U=(e,t)=>V(z.entries(e),(([e,l])=>t(l,e))),_=e=>F(e)&&R(W(e)),Z=(e,t)=>e?.has(t)??!1,H=e=>[...e?.values()??[]],Q=(e,t)=>e?.forEach(t),q=(e,t)=>e?.delete(t),K=e=>new Map(e),X=(e,t)=>e?.get(t),Y=(e,t)=>Q(e,((e,l)=>t(l,e))),ee=(e,t)=>V([...e?.entries()??[]],(([e,l])=>t(l,e))),te=(e,t,l)=>L(l)?(q(e,t),e):e?.set(t,l),le=(e,t,l)=>(Z(e,t)||te(e,t,l()),X(e,t)),ae=e=>e.toUpperCase(),ne=e=>e.toLowerCase(),oe="a ",de="A function for",re=", and registers a listener so that any changes to that result will cause a re-render",se="Callback",Ie="Del",$e="Deps",ce=$e+"?: React.DependencyList",ie="doRollback?: DoRollback",ue="actions: () => Return, "+ie,pe="export",be="Id",Ce="Invalid",ge="Json",he=ne(r),me="?: ",fe=" | undefined",we="NonNullable",ye="Partial",Te="Props",ve="Provider",Ve=`Registers a ${he} that will be called`,xe="Represents",Re="rowId: "+be,ke="Schema",Se="Set",Ae=", descending?: boolean, offset?: number, limit?: number",Pe="[]",Ee="the Store",De="Transaction",Oe=De+"Changes",Ne=ne(De),Le="Execute a "+Ne+" to make multiple mutations",Ge="Explicitly starts a "+Ne,je="Explicitly finishes a "+Ne,Me="the end of the "+Ne,Je="void",ze=" => "+Je,We="WhenSet",Be=" when setting it",Fe=oe+"string serialization of",Ue=" ",_e="Gets a callback that can ",Ze="the ",He=" the schema for",Qe=(e=0,l=0)=>`the ${ut[e]}content of`+(l?Ue+Ee:t),qe=(e=0,l,a=0)=>$t[l]+Ue+Qe(e,1)+(a?" when setting it":t),Ke=(e,t=0)=>xe+` a Row when ${t?"s":"g"}etting ${Qe()} the '${e}' `+c,Xe=(e,t,l=0)=>`Gets ${l?"sorted, paginated":"the"} Ids of the ${e}s in `+t,Ye=(e,t)=>`Calls a function for each ${e} in `+t,et=e=>"The props passed to a component that renders "+e,tt=e=>"A function that takes "+e,lt=(e,t=0)=>de+" listening to changes to "+it[e]+" in "+it[t],at=(e,l,a=0)=>Ve+" whenever "+it[e]+" in "+it[l]+" change"+(a?t:"s"),nt=e=>`the '${e}' `+c,ot=e=>"the specified Row in "+nt(e),dt=(e,t=0)=>$t[t]+` ${Qe()} `+nt(e),rt=(e,t=0)=>$t[t]+` ${Qe()} `+ot(e),st=(e,t,l=0)=>$t[l]+` the '${t}' Cell for `+ot(e),It=(e,t=0)=>$t[t]+` the '${e}' Value`,$t=["Gets","Checks existence of","Sets","Deletes","Sets part of",xe,"Gets "+Fe,"Sets "+Fe,Ve+" whenever",_e+"set",_e+"add",_e+"set part of",_e+"delete","Renders","Gets "+Fe+He,"Sets"+He,"Deletes"+He],ct=[s,"has","set","del","set","forEach",I,t],it=[Ee,i,Ze+c+Ue+$,oe+c,Ze+p+Ue+$,oe+p,Ze+g+Ue+$,oe+g,"invalid Cell changes",f,Ze+m+Ue+$,oe+m,"invalid Value changes",Ze+"sorted "+p+Ue+$],ut=[t,"tabular ","keyed value "],pt=e=>new Set(M(e)||L(e)?e:[e]),bt=(e,t)=>e?.add(t),Ct=/[^A-Za-z]+/,gt=/[^A-Za-z0-9]+/,ht=/^( *)\/\*\* *(.*?) *\*\/$/gm,mt=(e,t,l)=>e.substring(t,l),ft=e=>e.includes(","),wt=(e,t,l,a=1)=>{const n=`${t}${1==a?"":a}`;return Z(e,n)?wt(e,t,l,a+1):(te(e,n,l),n)},yt=e=>e.replace(ht,((e,t,l)=>{const a=77-Tt(t);return`${t}/**\n${l.replace(RegExp(`([^\\n]{1,${a}})(\\s|$)`,"g"),t+" * $1\n")}${t} */`})),Tt=e=>e.length,vt=(e,l=t)=>e.join(l),Vt=e=>e.flat(1e3),xt=(e,t=0)=>vt(V(e.split(gt),((e,l)=>(l>0||t?ae:ne)(mt(e,0,1))+mt(e,1)))),Rt=e=>ae(vt((e&&!Ct.test(e[0])?e:" "+e).split(gt),"_")),kt=e=>`/** ${e}. */`,St=(...e)=>vt(k(e,(e=>e)),", "),At=(...e)=>"{"+vt(e,"; ")+"}",Pt=(...e)=>At(...V(e,(e=>"readonly "+e))),Et=()=>{const e=[K(),K(),K(),K()],l=K(),a=K();return[(...e)=>vt(Vt(e),"\n"),(t,l,...a)=>v(a,(a=>v([0,1],(n=>(t??n)==n?bt(le(e[n],l,pt),a):0)))),(e,a,n,o=t,d=1)=>wt(l,e,[a,n,o,d]),(e,t,l)=>wt(a,e,M(l)?[`(${t}) => {`,l,"}"]:[`(${t}) => ${l}`]),(e,t)=>X(a,e)===t?e:wt(a,e,t),(l=0)=>V([...T(ee(e[l],((e,t)=>`import {${vt(T(H(e)),", ")}} from '${t}';`)),((e,t)=>ft(e)!=ft(t)?ft(e)?-1:1:e>t?1:-1)),t],(e=>e.replace("{React}","React"))),()=>ee(l,(([e,l,a,n],o)=>[kt(l),`${n?pe+" ":t}type ${o}${a} = ${e};`,t])),()=>ee(a,((e,l)=>(e=M(e)?e:[e],S(e,A(e)+";"),[`const ${l} = ${E(e)}`,e,t])))]},Dt=e=>{const t=new WeakMap;return l=>(t.has(l)||t.set(l,e(l)),t.get(l))},Ot=(e,t,l)=>[t=>U(e,((e,a)=>t(a,xt(a,1),l(Rt(a),`'${a}'`)))),(t,a)=>U(e[t],((e,t)=>a(t,e[o],e[d],l(Rt(t),`'${t}'`),xt(t,1)))),e=>U(t,((t,a)=>e(a,t[o],t[d],l(Rt(a),`'${a}'`),xt(a,1))))],Nt=(e,l,a,n)=>[(n,o)=>{const d=n+": "+o,s=e(i,At(...l((e=>`'${e}'?: {[rowId: Id]: `+At(...a(e,((e,l,a)=>`'${e}'${L(a)?"?":t}: ${l}`)))+"}"))),qe(1,5)),I=e(i+We,At(...l((e=>`'${e}'?: {[rowId: Id]: `+At(...a(e,((e,t)=>`'${e}'?: ${t}`)))+"}"))),qe(1,5,1)),$=e(c+be,"keyof "+s,"A "+c+" Id in "+Ee),m=`<TId extends ${$}>`,f=e(c,we+`<${s}[TId]>`,"A "+c+" in "+Ee,m),w=e(c+We,we+`<${I}[TId]>`,"A "+c+" in "+Ee+Be,m),y=e(p,f+"<TId>[Id]","A "+p+" in a "+c,m),T=e(p+We,w+"<TId>[Id]","A "+p+" in a "+c+Be,m),v=e(g+be,`Extract<keyof ${y}<TId>, Id>`,"A "+g+" Id in a "+p,m),V=e(g,we+`<${s}[TId]>[Id][CId]`,"A "+g+" in a "+p,`<TId extends ${$}, CId extends ${v}<TId>>`),x=e("CellIdCellArray",`CId extends ${v}<TId> ? [cellId: CId, cell: ${V}<TId, CId>] : never`,g+" Ids and types in a "+p,`<TId extends ${$}, CId = ${v}<TId>>`,0),R=e(g+se,`(...[cellId, cell]: ${x}<TId>)`+ze,tt(oe+g+" Id, and "+g),m),k=e(p+se,"(rowId: Id, forEachCell: (cellCallback: CellCallback<TId>) "+ze+") "+ze,tt(oe+p+" Id, and a "+g+" iterator"),m),S=e("TableIdForEachRowArray",`TId extends ${$} ? [tableId: TId, forEachRow: (rowCallback: ${k}<TId>)${ze}] : never`,c+" Ids and callback types",`<TId = ${$}>`,0),A=e(c+se,`(...[tableId, forEachRow]: ${S})`+ze,tt(oe+c+" Id, and a "+p+" iterator"),t),P=e("TableIdRowIdCellIdArray",`TId extends ${$} ? [tableId: TId, rowId: Id, cellId: ${v}<TId>] : never`,"Ids for GetCellChange",`<TId = ${$}>`,0),E=e("GetCellChange",`(...[tableId, rowId, cellId]: ${P}) => CellChange`,de+" returning information about any Cell's changes during a "+Ne),D=e(i+r,`(${d}, getCellChange: ${E}${fe})`+ze,lt(1)),O=e(u+r,`(${d})`+ze,lt(2)),N=e(c+r,`(${d}, tableId: ${$}, getCellChange: ${E}${fe})`+ze,lt(3)),G=e(b+r,`(${d}, tableId: ${$})`+ze,lt(4,3)),j=e(C+r,"("+St(d,"tableId: "+$,"cellId: Id"+fe,"descending: boolean","offset: number","limit: number"+fe,"sortedRowIds: Ids")+")"+ze,lt(13,3)),M=e(p+r,"("+St(""+d,"tableId: "+$,Re,`getCellChange: ${E}${fe}`)+")"+ze,lt(5,3)),J=e(h+r,"("+St(""+d,"tableId: "+$,Re)+")"+ze,lt(6,5)),z=e("CellListenerArgsArrayInner",`CId extends ${v}<TId> ? [${d}, tableId: TId, ${Re}, cellId: CId, newCell: ${V}<TId, CId> ${fe}, oldCell: ${V}<TId, CId> ${fe}, getCellChange: ${E} ${fe}] : never`,"Cell args for CellListener",`<TId extends ${$}, CId = ${v}<TId>>`,0),W=e("CellListenerArgsArrayOuter",`TId extends ${$} ? `+z+"<TId> : never","Table args for CellListener",`<TId = ${$}>`,0);return[s,I,$,f,w,y,T,v,V,R,k,A,D,O,N,G,j,M,J,e(g+r,`(...[${n}, tableId, rowId, cellId, newCell, oldCell, getCellChange]: ${W})`+ze,lt(7,5)),e(Ce+g+r,`(${d}, tableId: Id, ${Re}, cellId: Id, invalidCells: any[])`+ze,lt(8))]},(l,a)=>{const o=l+": "+a,d=e(f,At(...n(((e,l,a)=>`'${e}'${L(a)?"?":t}: ${l}`))),qe(2,5)),s=e(f+We,At(...n(((e,t)=>`'${e}'?: ${t}`))),qe(2,5,1)),I=e(m+be,"keyof "+d,"A "+m+" Id in "+Ee),$=e(m,we+`<${d}[VId]>`,"A "+m+" Id in "+Ee,`<VId extends ${I}>`),c=e("ValueIdValueArray",`VId extends ${I} ? [valueId: VId, value: ${$}<VId>] : never`,m+" Ids and types in "+Ee,`<VId = ${I}>`,0),i=e(m+se,`(...[valueId, value]: ${c})`+ze,tt(oe+m+" Id, and "+m)),u=e("GetValueChange",`(valueId: ${I}) => ValueChange`,de+" returning information about any Value's changes during a "+Ne),p=e(f+r,`(${o}, getValueChange: ${u}${fe})`+ze,lt(9)),b=e(w+r,`(${o})`+ze,lt(10)),C=e("ValueListenerArgsArray",`VId extends ${I} ? [${o}, valueId: VId, newValue: ${$}<VId> ${fe}, oldValue: ${$}<VId> ${fe}, getValueChange: ${u} ${fe}] : never`,"Value args for ValueListener",`<VId = ${I}>`,0);return[d,s,I,$,i,p,b,e(m+r,`(...[${l}, valueId, newValue, oldValue, getValueChange]: `+C+")"+ze,lt(11)),e(Ce+m+r,`(${o}, valueId: Id, invalidValues: any[])`+ze,lt(12))]},(t,l)=>e(De+r,`(${t}: ${l}, getTransactionChanges: GetTransactionChanges, getTransactionLog: GetTransactionLog)`+ze,de+" listening to the completion of a "+Ne)],Lt=(e,l=t,a=t)=>`store.${e}(${l})`+(a?" as "+a:t),Gt=(e,l=t)=>`fluent(() => ${Lt(e,l)})`,jt=(e,l=t,a=t)=>`store.${e}(${l?l+", ":t}proxy(listener)${a?", "+a:t})`,Mt=(e,l,n)=>{const[s,y,T,V,x,R,k,A]=Et(),[E,D,O]=Ot(e,l,x),[N,G,M]=Nt(T,E,D,O),J=K(),z=(e=0)=>ee(J,(([l,a,n,o,d],r)=>{const s=e?[r+`: ${d}(${l}): ${a} => ${n},`]:[r+d+`(${l}): ${a};`];return e||P(s,kt(o)),S(s,t),s})),W=(e,l,a,n,o,d=t)=>wt(J,e,[l,a,n,o,d]),B=(e,l,a,n,o,d=t,r=t,s=t)=>W(ct[e]+l+(4==e?ye:t)+a,d,n,(n==Z?Gt:Lt)(ct[e]+(4==e?ye:t)+a,r,e?void 0:n),o,s),F=(e,l,a,n=t,o=t,d=1,s=t)=>W(I+e+r,(n?n+", ":t)+he+": "+l+(d?", mutator?: boolean":t),be,jt(I+e+r,o,d?"mutator":t),a,s),U=`./${xt(n)}.d`,Z=xt(n,1),Q=xt(Z),q=[],le=K();let ae=[],ne=[];if(y(1,U,Z,`create${Z} as create${Z}Decl`),_(e))y(null,"tinybase",i);else{y(0,"tinybase","CellChange"),y(null,"tinybase",$);const[e,l,n,r,s,I,m,f,w,V,R,k,A,P,O,G,M,J,z,W,_]=N(Q,Z),Y=K();E(((e,t)=>{const l=`<'${e}'>`,a=[T(t+c,r+l,xe+` the '${e}' `+c),T(t+c+We,s+l,xe+` the '${e}' `+c+Be),T(t+p,I+l,Ke(e)),T(t+p+We,m+l,Ke(e,1)),T(t+g+be,f+l,`A Cell Id for the '${e}' `+c),T(t+g+se,V+l,tt(`a Cell Id and value from a Row in the '${e}' `+c)),T(t+p+se,R+l,tt(`a Row Id from the '${e}' Table, and a Cell iterator`))];te(Y,e,a),y(1,U,...a)})),y(1,U,e,l,n,f,k,A,P,O,G,M,J,z,W,_),ae=[e,l,n,f,A,P,O,G,M,J,z,W,Y],v([[e],[a],[Z,"tables: "+l,"tables"],[Z]],(([e,l,a],n)=>B(n,t,i,e,qe(1,n),l,a))),B(0,t,u,n+Pe,Xe(c,Ee)),B(5,t,c,Je,Ye(c,Ee),"tableCallback: "+k,"tableCallback as any"),E(((e,l,n)=>{const[o,d,r,s,I,i,u]=X(Y,e);v([[o],[a],[Z,"table: "+d,", table"],[Z]],(([a,o,d=t],r)=>B(r,l,c,a,dt(e,r),o,n+d))),B(0,l,b,$,Xe(p,nt(e)),t,n),B(0,l,C,$,Xe(p,nt(e),1),"cellId?: "+I+Ae,n+", cellId, descending, offset, limit"),B(5,l,p,Je,Ye(p,nt(e)),"rowCallback: "+u,n+", rowCallback as any"),v([[r],[a],[Z,", row: "+s,", row"],[Z],[Z,", partialRow: "+s,", partialRow"]],(([a,o=t,d=t],r)=>B(r,l,p,a,rt(e,r),Re+o,n+", rowId"+d))),B(6,l,p,be+fe,"Add a new Row to "+nt(e),"row: "+s+", reuseIds?: boolean",n+", row, reuseIds"),B(0,l,h,I+Pe,Xe(g,ot(e)),Re,n+", rowId"),B(5,l,g,Je,Ye(g,ot(e)),Re+", cellCallback: "+i,n+", rowId, cellCallback as any"),D(e,((o,d,r,s,I)=>{const $="Map"+xt(d,1);te(le,d,$);const c=d+(L(r)?fe:t);v([[c],[a],[Z,`, cell: ${d} | `+$,", cell as any"],[Z]],(([a,d=t,r=t],$)=>B($,l+I,g,a,st(e,o,$),Re+d,n+", rowId, "+s+r)))}))})),B(0,t,i+ge,ge,qe(1,6)),B(2,t,i+ge,Z,qe(1,7),"tablesJson: "+ge,"tables"+ge),F(i,A,qe(1,8)+" changes"),F(u,P,at(2,0,1)),F(c,O,at(3,0),`tableId: ${n} | null`,"tableId"),F(b,G,at(4,3,1),`tableId: ${n} | null`,"tableId"),F(C,M,at(13,3,1),St("tableId: TId",`cellId: ${f}<TId>`+fe,"descending: boolean","offset: number","limit: number"+fe),St("tableId","cellId","descending","offset","limit"),1,"<TId extends TableId>"),F(p,J,at(5,3),`tableId: ${n} | null, rowId: IdOrNull`,"tableId, rowId"),F(h,z,at(6,5,1),`tableId: ${n} | null, rowId: IdOrNull`,"tableId, rowId"),F(g,W,at(7,5),`tableId: ${n} | null, rowId: IdOrNull, cellId: ${vt(E((e=>X(Y,e)?.[4]??t))," | ")} | null`,"tableId, rowId, cellId"),F(Ce+g,_,Ve+" whenever an invalid Cell change was attempted","tableId: IdOrNull, rowId: IdOrNull, cellId: IdOrNull","tableId, rowId, cellId"),y(1,U,...H(le)),S(q,".set"+i+ke+"({",Vt(E(((e,l,a)=>[`[${a}]: {`,...D(e,((e,l,a,n)=>`[${n}]: {[${x(Rt(o),`'${o}'`)}]: ${x(Rt(l),`'${l}'`)}${L(a)?t:`, [${x(Rt(d),`'${d}'`)}]: `+(j(a)?x(Rt(a),`'${a}'`):a)}},`)),"},"]))),"})")}if(_(l))y(null,"tinybase",f);else{const[e,l,n,r,s,I,$,c,i]=G(Q,Z);y(1,U,e,l,n,s,I,$,c,i),ne=[e,l,n,I,$,c],v([[e],[a],[Z,"values: "+l,"values"],[Z],[Z,"partialValues: "+l,"partialValues"]],(([e,l,a],n)=>B(n,t,f,e,qe(2,n),l,a))),B(0,t,w,n+Pe,Xe(m,Ee)),B(5,t,m,"void",Ye(m,Ee),"valueCallback: "+s,"valueCallback as any"),O(((e,l,n,o,d)=>{const r="Map"+xt(l,1);te(le,l,r),v([[l],[a],[Z,`value: ${l} | `+r,", value as any"],[Z]],(([l,a,n=t],r)=>B(r,d,m,l,It(e,r),a,o+n)))})),B(0,t,f+ge,ge,qe(2,6)),B(2,t,f+ge,Z,qe(2,7),"valuesJson: "+ge,"values"+ge),F(f,I,qe(2,8)+" changes"),F(w,$,at(10,0,1)),F(m,c,at(11,0),`valueId: ${n} | null`,"valueId"),F(Ce+m,i,Ve+" whenever an invalid Value change was attempted","valueId: IdOrNull","valueId"),y(1,U,...H(le)),y(0,"tinybase","ValueChange"),S(q,".set"+f+ke+"({",O(((e,l,a,n)=>[`[${n}]: {[${x(Rt(o),`'${o}'`)}]: ${x(Rt(l),`'${l}'`)}${L(a)?t:`, [${x(Rt(d),`'${d}'`)}]: `+(j(a)?x(Rt(a),`'${a}'`):a)}},`])),"})")}B(0,t,"Content",`[${i}, ${f}]`,qe(0,0)),B(2,t,"Content",Z,qe(0,2),`[tables, values]: [${i}, ${f}]`,"[tables, values]"),B(2,t,Oe,Z,`Applies a set of ${Oe} to the Store`,"transactionChanges: "+Oe,"transactionChanges"),Y(le,((e,t)=>T(t,`(cell: ${e}${fe}) => `+e,`Takes a ${e} Cell value and returns another`))),y(null,"tinybase","DoRollback",be,"IdOrNull",ge,"Store",Oe),y(0,"tinybase","Get"+Oe,"GetTransactionLog"),B(0,t,ge,ge,qe(0,6)),B(2,t,ge,Z,qe(0,7),"tablesAndValuesJson: "+ge,"tablesAndValuesJson"),B(7,t,Ne,"Return",Le,ue,"actions, doRollback","<Return>"),B(7,t,"start"+De,Z,Ge),B(7,t,"finish"+De,Z,je,ie,"doRollback");const oe=M(Q,Z);return F("Start"+De,oe,Ve+" just before the start of the "+Ne,t,t,0),F("WillFinish"+De,oe,Ve+" just before "+Me,t,t,0),F("DidFinish"+De,oe,Ve+" just after "+Me,t,t,0),B(7,t,"call"+r,Z,"Manually provoke a listener to be called","listenerId: Id","listenerId"),B(3,t,r,Z,"Remove a listener that was previously added to "+Ee,"listenerId: Id","listenerId"),W("getStore",t,"Store","store",$t[0]+" the underlying Store object"),y(1,"tinybase","createStore"),y(1,U,Z,`create${Z} as create${Z}Decl`,oe),x("store",["createStore()",...q]),V("fluent","actions: () => Store",["actions();",`return ${Q};`]),V("proxy","listener: any",`(_: Store, ...params: any[]) => listener(${Q}, ...params)`),x(Q,["{",...z(1),"}"]),[s(...R(0),...k(),pe+" interface "+Z+" {",...z(0),"}",t,kt(`Creates a ${Z} object`),pe+" function create"+Z+"(): "+Z+";"),s(...R(1),pe+" const create"+Z+": typeof create"+Z+"Decl = () => {",...A(),`return Object.freeze(${Q});`,"};"),ae,ne]},Jt=e=>s+e,zt=e=>St(Jt(e),Jt(e)+$e),Wt="debugIds?: boolean",Bt="debugIds={debugIds}",Ft="then"+ce,Ut="Parameter",_t=": (parameter: "+Ut+", store: Store) => ",Zt="const contextValue = useContext(Context);",Ht=", based on a parameter",Qt=": ",qt="<"+Ut+",>",Kt=Ut+"ized"+se+"<"+Ut+">",Xt="rowId",Yt="rowId={rowId}",el=", separator, debugIds",tl="separator?: ReactElement | string",ll="then?: (store: Store",al=St(ll+")"+ze,Ft),nl="then, then"+$e,ol=Xt+Qt+be,dl="View",rl=(e,...t)=>St(...t,he+": "+e,he+ce,"mutator?: boolean"),sl=(...e)=>St(...e,he,he+$e,"mutator"),Il=(e,l,a,n,o)=>{const[d,s,I,y,T,v,V,x]=Et(),[R,k,A]=Ot(e,l,T),E=`./${xt(a)}.d`,D=`./${xt(a)}-ui-react.d`,O="tinybase/ui-react",N=xt(a,1),G=xt(N),j=N+"Or"+N+be,M=G+"Or"+N+be,J=G+`={${G}}`,z=K(),W=(e,l,a,n,o,d=t)=>(s(1,D,e+" as "+e+"Decl"),wt(z,e,[l,a,n,o,d])),B=(e,l,a,n,o,d=t)=>W("use"+e,l,a,n,o,d),F=(e,l,a,n,o=t,d=t,r=t,I=t,$=t)=>(s(1,O,`use${l} as use${l}Core`),B(e,St(o,q,I),a,te+`(${M}, use${l}Core, [`+(d||t)+($?"], ["+$:t)+"]);",n,r)),U=(e,t,l,a)=>W(e,t,1,l,a),Z=(e=0)=>ee(z,(([l,a,n,o,d],r)=>{const s=e?[pe+` const ${r}: typeof ${r}Decl = ${d}(${l}): ${1==a?"any":a} =>`,n]:[pe+` function ${r}${d}(${l}): ${1==a?"ComponentReturnType":a};`];return e||P(s,kt(o)),S(s,t),s}));s(null,"tinybase",be,"Store",se,Ut+"ized"+se),s(0,O,"ComponentReturnType"),s(null,O,"ExtraProps"),s(0,E,N);const H=I(j,N+" | "+be,`Used when you need to refer to a ${N} in a React hook or component`),Q=I(ve+Te,Pt(G+me+N,G+`ById?: {[${G}Id: Id]: ${N}}`),`Used with the ${ve} component, so that a `+N+" can be passed into the context of an application");s(0,"react","ReactElement","ComponentType"),s(1,"react","React"),s(1,D,H,Q);const q=M+me+H;T("{createContext, useContext, useMemo}","React"),T("Context",`createContext<[${N}?, {[${G}Id: Id]: ${N}}?]>([])`),B("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=B(N,"id?: Id",N+fe,["{",Zt,"return id == null ? contextValue[0] : contextValue[1]?.[id];","}"],`Get a reference to a ${N} from within a ${ve} component context`),te=y("useHook",M+`: ${H} | 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)`]),le=y("getProps","getProps: ((id: any) => ExtraProps) | undefined, id: Id","(getProps == null) ? ({} as ExtraProps) : getProps(id)"),ae=y("wrap",St("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;"]),ne=T("NullComponent","() => null");if(!_(e)){const[e,l,a,o,d,m,f,w,T,v,V,x,S]=n;s(null,E,e,l,a,d,m,f,w,T,v,V,x),s(0,E,o),s(1,E,N),s(null,"tinybase",$,"IdOrNull");const A=y("tableView",`{${G}, rowComponent, getRowComponentProps`+el+"}: any, rowIds: Ids, tableId: Id, defaultRowComponent: React.ComponentType<any>",["const Row = rowComponent ?? defaultRowComponent;",`return ${ae}(rowIds.map((rowId) => (`,"<Row","{..."+le+"(getRowComponentProps, rowId)}","key={rowId}","tableId={tableId}",Yt,J,Bt,"/>","))",el,", tableId,",");"]),P=y("getDefaultTableComponent","tableId: Id",vt(R(((e,t,l)=>`tableId == ${l} ? ${t}TableView : `)))+ne),O=y("getDefaultCellComponent","tableId: Id, cellId: Id",vt(R(((e,t,l)=>`tableId == ${l} ? ${vt(k(e,((e,l,a,n,o)=>`cellId == ${n} ? `+t+o+"CellView : ")))+ne} : `)))+ne);F(i,i,e,qe(1,0)+re);const j=F(u,u,a+Pe,Xe(c,Ee)+re);F(Se+i+se,Se+i+se,Kt,qe(1,9)+Ht,St(Jt(i)+_t+l,Jt(i)+ce),zt(i),qt,St(ll,`tables: ${l})`+ze,Ft),nl),F(Ie+i+se,Ie+i+se,se,qe(1,12),t,t,t,al,nl);const M=I(g+Te,Pt("tableId?: TId","rowId: Id","cellId?: CId",G+me+N,Wt),et(oe+g),`<TId extends ${a}, CId extends ${o}<TId>>`),z=I(p+Te,Pt("tableId?: TId","rowId: Id",G+me+N,"cellComponents?: {readonly [CId in "+o+`<TId>]?: ComponentType<${M}<TId, CId>>;}`,`getCellComponentProps?: (cellId: ${o}<TId>) => ExtraProps`,tl,Wt),et(oe+p),`<TId extends ${a}>`),W=I(c+Te,Pt("tableId?: TId",G+me+N,`rowComponent?: ComponentType<${z}<TId>>`,"getRowComponentProps?: (rowId: Id) => ExtraProps",tl,Wt),et(oe+c),`<TId extends ${a}>`),B=I("Sorted"+c+Te,Pt("tableId?: TId","cellId?: "+o+"<TId>","descending?: boolean","offset?: number","limit?: number",G+me+N,`rowComponent?: ComponentType<${z}<TId>>`,"getRowComponentProps?: (rowId: Id) => ExtraProps",tl,Wt),et(oe+"sorted "+c),`<TId extends ${a}>`),_=I(i+Te,Pt(G+me+N,"tableComponents?: {readonly [TId in "+a+`]?: ComponentType<${W}<TId>>;}`,`getTableComponentProps?: (tableId: ${a}) => ExtraProps`,tl,Wt),et(Qe(1,1)));s(1,D,_,W,B,z,M),U(i+dl,"{"+G+", tableComponents, getTableComponentProps"+el+"}: "+_,[ae+`(${j}(${G}).map((tableId) => {`,"const Table = (tableComponents?.[tableId] ?? "+P+"(tableId)) as React.ComponentType<TableProps<typeof tableId>>;","return <Table",`{...${le}(getTableComponentProps, tableId)}`,"tableId={tableId}","key={tableId}",J,Bt,"/>;","}), separator)"],qe(1,13)+re),R(((e,l,a)=>{const[n,o,d,r,I]=X(S,e);s(null,E,n,o,d,r,I),F(l+c,c,n,dt(e)+re,t,a);const i=F(l+b,b,$,Xe(p,nt(e))+re,t,a),u=F(l+C,C,$,Xe(p,nt(e),1)+re,"cellId?: "+I+", descending?: boolean, offset?: number, limit?: number",a+", cellId, descending, offset, limit");F(l+p,p,d,rt(e)+re,ol,St(a,Xt));const m=F(l+h,h,I+Pe,Xe(g,ot(e))+re,ol,St(a,Xt));F(Se+l+c+se,Se+c+se,Kt,dt(e,9)+Ht,St(Jt(c)+_t+o,Jt(c)+ce),St(a,zt(c)),qt,St(ll,`table: ${o})`+ze,Ft),nl),F(Ie+l+c+se,Ie+c+se,se,dt(e,12),t,a,t,al,nl),F(Se+l+p+se,Se+p+se,Kt,rt(e,9)+Ht,St(ol,Jt(p)+_t+r,Jt(p)+ce),St(a,Xt,zt(p)),qt,St(ll,`row: ${r})`+ze,Ft),nl),F("Add"+l+p+se,"Add"+p+se,Kt,rt(e,10)+Ht,St(Jt(p)+_t+r,Jt(p)+ce),St(a,zt(p)),qt,"then?: ("+St(ol+fe,"store: Store","row: "+r+")"+ze,"then"+ce)+", reuseRowIds?: boolean",nl+", reuseRowIds"),F(Se+l+ye+p+se,Se+ye+p+se,Kt,rt(e,11)+Ht,St(ol,Jt(ye+p)+_t+r,Jt(ye+p)+ce),St(a,Xt,zt(ye+p)),qt,St(ll,`partialRow: ${r})`+ze,Ft),nl),F(Ie+l+p+se,Ie+p+se,se,rt(e,12),ol,St(a,Xt),t,al,nl);const f=U(l+p+dl,"{rowId, "+G+", cellComponents, getCellComponentProps"+el+`}: ${z}<'${e}'>`,[ae+`(${m}(rowId, ${G}).map((cellId) => {`,"const Cell = (cellComponents?.[cellId] ?? "+O+`(${a}, cellId)) as React.ComponentType<CellProps<typeof `+a+", typeof cellId>>;","return <Cell",`{...${le}(getCellComponentProps, cellId)} `,"key={cellId}",`tableId={${a}}`,Yt,"cellId={cellId}",J,Bt,"/>;","})"+el+", rowId)"],rt(e,13)+re);U(l+"Sorted"+c+dl,"{cellId, descending, offset, limit, ...props}: "+B+`<'${e}'>`,A+"(props, "+u+`(cellId, descending, offset, limit, props.${G}), ${a}, ${f});`,dt(e,13)+", sorted"+re),U(l+c+dl,`props: ${W}<'${e}'>`,A+"(props, "+i+`(props.${G}), ${a}, ${f});`,dt(e,13)+re),k(e,((n,o,d,r,I)=>{const $="Map"+xt(o,1);s(0,E,$),s(1,E,$);const c=F(l+I+g,g,o+(L(d)?fe:t),st(e,n)+re,ol,St(a,Xt,r));F(Se+l+I+g+se,Se+g+se,Kt,st(e,n,9)+Ht,St(ol,Jt(g)+_t+o+" | "+$,Jt(g)+ce),St(a,Xt,r,zt(g)),qt,St(ll,`cell: ${o} | ${$})`+ze,Ft),nl),F(Ie+l+I+g+se,Ie+g+se,se,st(e,n,12),St(ol,"forceDel?: boolean"),St(a,Xt,r,"forceDel"),t,al,nl),U(l+I+g+dl,`{rowId, ${G}, debugIds}: `+M+`<'${e}', '${n}'>`,[ae+`('' + ${c}(rowId, `+G+`) ?? '', undefined, debugIds, ${r})`],st(e,n,13)+re)}))}));const Z=vt(R((e=>X(S,e)?.[4]??t))," | ");F(i+r,i+r,Je,qe(1,8)+" changes",rl(d),sl()),F(u+r,u+r,Je,at(2,0,1),rl(m),sl()),F(c+r,c+r,Je,at(3,0),rl(f,`tableId: ${a} | null`),sl("tableId")),F(b+r,b+r,Je,at(4,3,1),rl(w,`tableId: ${a} | null`),sl("tableId")),F(C+r,C+r,Je,at(13,3,1),rl(T,`tableId: ${a} | null`,"cellId: "+Z+fe,"descending: boolean","offset: number","limit: number"+fe),sl("tableId","cellId","descending","offset","limit")),F(p+r,p+r,Je,at(5,3),rl(v,`tableId: ${a} | null`,Xt+": IdOrNull"),sl("tableId",Xt)),F(h+r,h+r,Je,at(6,5,1),rl(V,`tableId: ${a} | null`,Xt+": IdOrNull"),sl("tableId",Xt)),F(g+r,g+r,Je,at(7,5),rl(x,`tableId: ${a} | null`,Xt+": IdOrNull",`cellId: ${Z} | null`),sl("tableId",Xt,"cellId"))}if(!_(l)){const[e,l,a,n,d,$]=o;s(null,E,...o),s(1,E,N);const c=y("getDefaultValueComponent","valueId: Id",vt(A(((e,t,l,a,n)=>`valueId == ${a} ? `+n+"ValueView : ")))+ne);F(f,f,e,qe(2,0)+re);const i=F(w,w,a+Pe,Xe(m,Ee)+re);F(Se+f+se,Se+f+se,Kt,qe(2,9)+Ht,St(Jt(f)+_t+l,Jt(f)+ce),zt(f),qt,St(ll,`values: ${l})`+ze,Ft),nl),F(Se+ye+f+se,Se+ye+f+se,Kt,qe(2,11)+Ht,St(Jt(ye+f)+_t+l,Jt(ye+f)+ce),zt(ye+f),qt,St(ll,`partialValues: ${l})`+ze,Ft),nl),F(Ie+f+se,Ie+f+se,se,qe(2,12),t,t,t,al,nl);const u=I(m+Te,Pt("valueId?: VId",G+me+N,Wt),et("a Value"),`<VId extends ${a}>`),p=I(f+Te,Pt(G+me+N,"valueComponents?: {readonly [VId in "+a+`]?: ComponentType<${u}<VId>>;}`,`getValueComponentProps?: (valueId: ${a}) => ExtraProps`,tl,Wt),et(Qe(2,1)));s(1,D,p,u),U(f+dl,"{"+G+", valueComponents, getValueComponentProps"+el+"}: "+p,[ae+`(${i}(${G}).map((valueId) => {`,"const Value = valueComponents?.[valueId] ?? "+c+"(valueId);","return <Value",`{...${le}(getValueComponentProps, valueId)}`,"key={valueId}",J,Bt,"/>;","}), separator)"],qe(2,13)+re),A(((e,l,a,n,o)=>{const d="Map"+xt(l,1);s(0,E,d),s(1,E,d);const r=F(o+m,m,l,It(e)+re,t,n);F(Se+o+m+se,Se+m+se,Kt,It(e,9)+Ht,St(Jt(m)+_t+l+" | "+d,Jt(m)+ce),St(n,zt(m)),qt,St(ll,`value: ${l} | ${d})`+ze,Ft),nl),F(Ie+o+m+se,Ie+m+se,se,It(e,12),t,n,t,al,nl),U(o+m+dl,`{${G}, debugIds}: ${u}<'${e}'>`,[ae+`('' + ${r}(`+G+`) ?? '', undefined, debugIds, ${n})`],It(e,13)+re)})),F(f+r,f+r,Je,qe(2,8)+" changes",rl(n),sl()),F(w+r,w+r,Je,at(10,0,1),rl(d),sl()),F(m+r,m+r,Je,at(11,0),rl($,`valueId: ${a} | null`),sl("valueId"))}return U(ve,`{${G}, ${G}ById, children}: `+Q+" & {children: React.ReactNode}",["{",Zt,"return (","<Context."+ve,"value={useMemo(",`() => [${G} ?? contextValue[0], {...contextValue[1], ...${G}ById}],`,`[${G}, ${G}ById, contextValue],`,")}>","{children}",`</Context.${ve}>`,");","}"],"Wraps part of an application in a context that provides default objects to be used by hooks and components within"),[d(...v(0),...V(),...Z(0)),d(...v(1),...x(),...Z(1))]},$l=(e,l,a)=>{if(_(e)&&_(l))return[t,t,t,t];const[n,o,d,r]=Mt(e,l,a);return[n,o,...Il(e,l,a,d,r)]},cl={parser:"typescript",singleQuote:!0,trailingComma:"all",bracketSpacing:!1,jsdocSingleLineComment:!1},il=Dt((e=>{const t=()=>{const t=D(e.getTablesSchemaJson());return!_(t)||y(e.getTableIds(),(l=>{const a=e.getRowIds(l),n=K();if(y(a,(t=>y(e.getCellIds(l,t),(a=>{const o=e.getCell(l,t,a),d=le(n,a,(()=>[J(o),K(),[0],0])),[r,s,[I]]=d,$=le(s,o,(()=>0))+1;return $>I&&(d[2]=[$,o]),te(s,o,$),d[3]++,r==J(o)})))))return t[l]={},Q(n,(([e,,[,n],r],s)=>{t[l][s]={[o]:e,...r==x(a)?{[d]:n}:{}}})),1}))?t:{}},l=()=>{const t=D(e.getValuesSchemaJson());return _(t)&&e.forEachValue(((e,l)=>{t[e]={[o]:J(l)}})),t},a=e=>$l(t(),l(),e),n=async e=>{const t=["d.ts","ts","d.ts","tsx"];let l;try{l=(await import("prettier")).format}catch(e){l=e=>e}return V(a(e),((e,a)=>yt(l(e,{...cl,filepath:"_."+t[a]}))))};return B({getStoreStats:t=>{let l=0,a=0,n=0;const o={};return e.forEachTable(((e,d)=>{l++;let r=0,s=0;const I={};d(((e,l)=>{r++;let a=0;l((()=>a++)),s+=a,t&&(I[e]={rowCells:a})})),a+=r,n+=s,t&&(o[e]={tableRows:r,tableCells:s,rows:I})})),{totalTables:l,totalRows:a,totalCells:n,totalValues:x(e.getValueIds()),jsonLength:Tt(e.getJson()),...t?{detail:{tables:o}}:{}}},getStoreTablesSchema:t,getStoreValuesSchema:l,getStoreApi:a,getPrettyStoreApi:n,getStore:()=>e})}));export{il as createTools};
|
|
1
|
+
const e=e=>typeof e,t="tinybase",l="",a=",",n=e(l),o=e(!0),d=e(0),r="type",s="default",I="Listener",$="get",c="add",i="Ids",u="Table",p=u+"s",b=u+i,C="Row",h=C+i,g="Sorted"+C+i,m="Cell",f=m+i,w="Value",y=w+"s",T=w+i,v=(e,t)=>e.every(t),V=(e,t)=>e.sort(t),x=(e,t)=>e.forEach(t),R=(e,t=l)=>e.join(t),k=(e,t)=>e.map(t),S=e=>e.length,A=(e,t)=>e.filter(t),P=(e,...t)=>e.push(...t),E=e=>e.pop(),D=(e,...t)=>e.unshift(...t),O=e=>e.shift(),N=JSON.parse,L=isFinite,G=(e,t)=>e instanceof t,j=e=>null==e,M=e=>e==n||e==o,J=t=>e(t)==n,z=e=>Array.isArray(e),W=t=>{const l=e(t);return M(l)||l==d&&L(t)?l:void 0},B=Object,F=B.keys,U=B.freeze,_=e=>G(e,B)&&e.constructor==B,Z=(e,t)=>k(B.entries(e),(([e,l])=>t(l,e))),H=e=>S(F(e)),Q=e=>_(e)&&0==H(e),q=(e,t)=>e?.has(t)??!1,K=e=>[...e?.values()??[]],X=(e,t)=>e?.forEach(t),Y=(e,t)=>e?.delete(t),ee=e=>new Map(e),te=(e,t)=>e?.get(t),le=(e,t)=>X(e,((e,l)=>t(l,e))),ae=(e,t)=>k([...e?.entries()??[]],(([e,l])=>t(l,e))),ne=(e,t,l)=>j(l)?(Y(e,t),e):e?.set(t,l),oe=(e,t,l)=>(q(e,t)||ne(e,t,l()),te(e,t)),de=e=>e.toUpperCase(),re=e=>e.toLowerCase(),se="a ",Ie="A function for",$e=", and registers a listener so that any changes to that result will cause a re-render",ce="Callback",ie="Del",ue="Deps",pe=ue+"?: React.DependencyList",be="doRollback?: DoRollback",Ce="actions: () => Return, "+be,he="export",ge="Id",me="Invalid",fe="Json",we=re(I),ye="?: ",Te=" | undefined",ve="NonNullable",Ve="Partial",xe="Props",Re="Provider",ke=`Registers a ${we} that will be called`,Se="Represents",Ae="rowId: "+ge,Pe="Schema",Ee="Set",De=", descending?: boolean, offset?: number, limit?: number",Oe="[]",Ne="the Store",Le="Transaction",Ge=Le+"Changes",je=re(Le),Me="Execute a "+je+" to make multiple mutations",Je="Explicitly starts a "+je,ze="Explicitly finishes a "+je,We="the end of the "+je,Be="void",Fe=" => "+Be,Ue="WhenSet",_e=" when setting it",Ze=se+"string serialization of",He=" ",Qe="Gets a callback that can ",qe="the ",Ke=" the schema for",Xe=(e=0,t=0)=>`the ${Ct[e]}content of`+(t?He+Ne:l),Ye=(e=0,t,a=0)=>ut[t]+He+Xe(e,1)+(a?" when setting it":l),et=(e,t=0)=>Se+` a Row when ${t?"s":"g"}etting ${Xe()} the '${e}' `+u,tt=(e,t,l=0)=>`Gets ${l?"sorted, paginated":"the"} Ids of the ${e}s in `+t,lt=(e,t)=>`Calls a function for each ${e} in `+t,at=e=>"The props passed to a component that renders "+e,nt=e=>"A function that takes "+e,ot=(e,t=0)=>Ie+" listening to changes to "+bt[e]+" in "+bt[t],dt=(e,t,a=0)=>ke+" whenever "+bt[e]+" in "+bt[t]+" change"+(a?l:"s"),rt=e=>`the '${e}' `+u,st=e=>"the specified Row in "+rt(e),It=(e,t=0)=>ut[t]+` ${Xe()} `+rt(e),$t=(e,t=0)=>ut[t]+` ${Xe()} `+st(e),ct=(e,t,l=0)=>ut[l]+` the '${t}' Cell for `+st(e),it=(e,t=0)=>ut[t]+` the '${e}' Value`,ut=["Gets","Checks existence of","Sets","Deletes","Sets part of",Se,"Gets "+Ze,"Sets "+Ze,ke+" whenever",Qe+"set",Qe+"add",Qe+"set part of",Qe+"delete","Renders","Gets "+Ze+Ke,"Sets"+Ke,"Deletes"+Ke],pt=[$,"has","set","del","set","forEach",c,l],bt=[Ne,p,qe+u+He+i,se+u,qe+C+He+i,se+C,qe+m+He+i,se+m,"invalid Cell changes",y,qe+w+He+i,se+w,"invalid Value changes",qe+"sorted "+C+He+i,qe+m+He+i+" anywhere"],Ct=[l,"tabular ","keyed value "],ht=e=>new Set(z(e)||j(e)?e:[e]),gt=(e,t)=>e?.add(t),mt=/[^A-Za-z]+/,ft=/[^A-Za-z0-9]+/,wt=/^( *)\/\*\* *(.*?) *\*\/$/gm,yt=(e,t,l)=>e.substring(t,l),Tt=e=>e.includes(a),vt=(e,t,l,a=1)=>{const n=`${t}${1==a?"":a}`;return q(e,n)?vt(e,t,l,a+1):(ne(e,n,l),n)},Vt=e=>e.replace(wt,((e,t,l)=>{const a=77-xt(t);return`${t}/**\n${l.replace(RegExp(`([^\\n]{1,${a}})(\\s|$)`,"g"),t+" * $1\n")}${t} */`})),xt=e=>e.length,Rt=e=>e.flat(1e3),kt=(e,t=0)=>R(k(e.split(ft),((e,l)=>(l>0||t?de:re)(yt(e,0,1))+yt(e,1)))),St=e=>de(R((e&&!mt.test(e[0])?e:" "+e).split(ft),"_")),At=e=>`/** ${e}. */`,Pt=(...e)=>R(A(e,(e=>e)),", "),Et=(...e)=>"{"+R(e,"; ")+"}",Dt=(...e)=>Et(...k(e,(e=>"readonly "+e))),Ot=()=>{const e=[ee(),ee(),ee(),ee()],t=ee(),a=ee(),n=e=>{const t=e.indexOf(" as ");return-1!=t?e.substring(t+4):e};return[(...e)=>R(Rt(e),"\n"),(t,l,...a)=>x(a,(a=>x([0,1],(n=>(t??n)==n?gt(oe(e[n],l,ht),a):0)))),(e,a,n,o=l,d=1)=>vt(t,e,[a,n,o,d]),(e,t,l)=>vt(a,e,z(l)?[`(${t}) => {`,l,"}"]:[`(${t}) => ${l}`]),(e,t)=>te(a,e)===t?e:vt(a,e,t),(t=0)=>k([...V(ae(e[t],((e,t)=>`import {${R(V(K(e),((e,t)=>n(e)>n(t)?1:-1)),", ")}} from '${t}';`)),((e,t)=>Tt(e)!=Tt(t)?Tt(e)?-1:1:e>t?1:-1)),l],(e=>e.replace("{React}","React"))),()=>ae(t,(([e,t,a,n],o)=>[At(t),`${n?he+" ":l}type ${o}${a} = ${e};`,l])),()=>ae(a,((e,t)=>(e=z(e)?e:[e],P(e,E(e)+";"),[`const ${t} = ${O(e)}`,e,l])))]},Nt=e=>{const t=new WeakMap;return l=>(t.has(l)||t.set(l,e(l)),t.get(l))},Lt=(e,t,l)=>[t=>Z(e,((e,a)=>t(a,kt(a,1),l(St(a),`'${a}'`)))),(t,a)=>Z(e[t],((e,t)=>a(t,e[r],e[s],l(St(t),`'${t}'`),kt(t,1)))),e=>Z(t,((t,a)=>e(a,t[r],t[s],l(St(a),`'${a}'`),kt(a,1))))],Gt=(e,t,a,n)=>[(n,o)=>{const d=n+": "+o,r=e(p,Et(...t((e=>`'${e}'?: {[rowId: Id]: `+Et(...a(e,((e,t,a)=>`'${e}'${j(a)?"?":l}: ${t}`)))+"}"))),Ye(1,5)),s=e(p+Ue,Et(...t((e=>`'${e}'?: {[rowId: Id]: `+Et(...a(e,((e,t)=>`'${e}'?: ${t}`)))+"}"))),Ye(1,5,1)),$=e(u+ge,"keyof "+r,"A "+u+" Id in "+Ne),c=`<TId extends ${$}>`,i=e(u,ve+`<${r}[TId]>`,"A "+u+" in "+Ne,c),w=e(u+Ue,ve+`<${s}[TId]>`,"A "+u+" in "+Ne+_e,c),y=e(C,i+"<TId>[Id]","A "+C+" in a "+u,c),T=e(C+Ue,w+"<TId>[Id]","A "+C+" in a "+u+_e,c),v=e(m+ge,`Extract<keyof ${y}<TId>, Id>`,"A "+m+" Id in a "+C,c),V=e(m,ve+`<${r}[TId]>[Id][CId]`,"A "+m+" in a "+C,`<TId extends ${$}, CId extends ${v}<TId>>`),x=e("CellIdCellArray",`CId extends ${v}<TId> ? [cellId: CId, cell: ${V}<TId, CId>] : never`,m+" Ids and types in a "+C,`<TId extends ${$}, CId = ${v}<TId>>`,0),R=e(m+ce,`(...[cellId, cell]: ${x}<TId>)`+Fe,nt(se+m+" Id, and "+m),c),k=e(C+ce,"(rowId: Id, forEachCell: (cellCallback: CellCallback<TId>) "+Fe+") "+Fe,nt(se+C+" Id, and a "+m+" iterator"),c),S=e(u+m+ce,`(cellId: ${v}<TId>, count: number) `+Fe,nt(se+m+" Id, and count of how many times it appears"),c),A=e("TableIdForEachRowArray",`TId extends ${$} ? [tableId: TId, forEachRow: (rowCallback: ${k}<TId>)${Fe}] : never`,u+" Ids and callback types",`<TId = ${$}>`,0),P=e(u+ce,`(...[tableId, forEachRow]: ${A})`+Fe,nt(se+u+" Id, and a "+C+" iterator"),l),E=e("TableIdRowIdCellIdArray",`TId extends ${$} ? [tableId: TId, rowId: Id, cellId: ${v}<TId>] : never`,"Ids for GetCellChange",`<TId = ${$}>`,0),D=e("GetCellChange",`(...[tableId, rowId, cellId]: ${E}) => CellChange`,Ie+" returning information about any Cell's changes during a "+je),O=e(p+I,`(${d}, getCellChange: ${D}${Te})`+Fe,ot(1)),N=e(b+I,`(${d})`+Fe,ot(2)),L=e(u+I,`(${d}, tableId: ${$}, getCellChange: ${D}${Te})`+Fe,ot(3)),G=e(u+f+I,`(${d}, tableId: ${$})`+Fe,ot(14,3)),M=e(h+I,`(${d}, tableId: ${$})`+Fe,ot(4,3)),J=e(g+I,"("+Pt(d,"tableId: "+$,"cellId: Id"+Te,"descending: boolean","offset: number","limit: number"+Te,"sortedRowIds: Ids")+")"+Fe,ot(13,3)),z=e(C+I,"("+Pt(""+d,"tableId: "+$,Ae,`getCellChange: ${D}${Te}`)+")"+Fe,ot(5,3)),W=e(f+I,"("+Pt(""+d,"tableId: "+$,Ae)+")"+Fe,ot(6,5)),B=e("CellListenerArgsArrayInner",`CId extends ${v}<TId> ? [${d}, tableId: TId, ${Ae}, cellId: CId, newCell: ${V}<TId, CId> ${Te}, oldCell: ${V}<TId, CId> ${Te}, getCellChange: ${D} ${Te}] : never`,"Cell args for CellListener",`<TId extends ${$}, CId = ${v}<TId>>`,0),F=e("CellListenerArgsArrayOuter",`TId extends ${$} ? `+B+"<TId> : never","Table args for CellListener",`<TId = ${$}>`,0);return[r,s,$,i,w,y,T,v,V,R,k,S,P,O,N,L,G,M,J,z,W,e(m+I,`(...[${n}, tableId, rowId, cellId, newCell, oldCell, getCellChange]: ${F})`+Fe,ot(7,5)),e(me+m+I,`(${d}, tableId: Id, ${Ae}, cellId: Id, invalidCells: any[])`+Fe,ot(8))]},(t,a)=>{const o=t+": "+a,d=e(y,Et(...n(((e,t,a)=>`'${e}'${j(a)?"?":l}: ${t}`))),Ye(2,5)),r=e(y+Ue,Et(...n(((e,t)=>`'${e}'?: ${t}`))),Ye(2,5,1)),s=e(w+ge,"keyof "+d,"A "+w+" Id in "+Ne),$=e(w,ve+`<${d}[VId]>`,"A "+w+" Id in "+Ne,`<VId extends ${s}>`),c=e("ValueIdValueArray",`VId extends ${s} ? [valueId: VId, value: ${$}<VId>] : never`,w+" Ids and types in "+Ne,`<VId = ${s}>`,0),i=e(w+ce,`(...[valueId, value]: ${c})`+Fe,nt(se+w+" Id, and "+w)),u=e("GetValueChange",`(valueId: ${s}) => ValueChange`,Ie+" returning information about any Value's changes during a "+je),p=e(y+I,`(${o}, getValueChange: ${u}${Te})`+Fe,ot(9)),b=e(T+I,`(${o})`+Fe,ot(10)),C=e("ValueListenerArgsArray",`VId extends ${s} ? [${o}, valueId: VId, newValue: ${$}<VId> ${Te}, oldValue: ${$}<VId> ${Te}, getValueChange: ${u} ${Te}] : never`,"Value args for ValueListener",`<VId = ${s}>`,0);return[d,r,s,$,i,p,b,e(w+I,`(...[${t}, valueId, newValue, oldValue, getValueChange]: `+C+")"+Fe,ot(11)),e(me+w+I,`(${o}, valueId: Id, invalidValues: any[])`+Fe,ot(12))]},(t,l)=>e(Le+I,`(${t}: ${l}, getTransactionChanges: GetTransactionChanges, getTransactionLog: GetTransactionLog)`+Fe,Ie+" listening to the completion of a "+je)],jt=(e,t=l,a=l)=>`store.${e}(${t})`+(a?" as "+a:l),Mt=(e,t=l)=>`fluent(() => ${jt(e,t)})`,Jt=(e,t=l,a=l)=>`store.${e}(${t?t+", ":l}proxy(listener)${a?", "+a:l})`,zt=(e,a,n)=>{const[d,$,v,V,k,S,A,E]=Ot(),[O,N,L]=Lt(e,a,k),[G,M,z]=Gt(v,O,N,L),W=ee(),B=(e=0)=>ae(W,(([t,a,n,o,d],r)=>{const s=e?[r+`: ${d}(${t}): ${a} => ${n},`]:[r+d+`(${t}): ${a};`];return e||D(s,At(o)),P(s,l),s})),F=(e,t,a,n,o,d=l)=>vt(W,e,[t,a,n,o,d]),U=(e,t,a,n,o,d=l,r=l,s=l)=>F(pt[e]+t+(4==e?Ve:l)+a,d,n,(n==H?Mt:jt)(pt[e]+(4==e?Ve:l)+a,r,e?void 0:n),o,s),_=(e,t,a,n=l,o=l,d=1,r=l)=>F(c+e+I,(n?n+", ":l)+we+": "+t+(d?", mutator?: boolean":l),ge,Jt(c+e+I,o,d?"mutator":l),a,r),Z=`./${kt(n)}.d`,H=kt(n,1),q=kt(H),X=[],Y=ee();let oe=[],de=[];if($(1,Z,H,`create${H} as create${H}Decl`),Q(e))$(null,t,p);else{$(0,t,"CellChange"),$(null,t,i);const[e,a,n,d,I,c,w,y,T,V,S,A,E,D,L,M,z,W,B,F,Q,le,ae]=G(q,H),de=ee();O(((e,t)=>{const l=`<'${e}'>`,a=[v(t+u,d+l,Se+` the '${e}' `+u),v(t+u+Ue,I+l,Se+` the '${e}' `+u+_e),v(t+C,c+l,et(e)),v(t+C+Ue,w+l,et(e,1)),v(t+m+ge,y+l,`A Cell Id for the '${e}' `+u),v(t+m+ce,V+l,nt(`a Cell Id and value from a Row in the '${e}' `+u)),v(t+C+ce,S+l,nt(`a Row Id from the '${e}' Table, and a Cell iterator`)),v(t+u+m+ce,A+l,nt(`a Cell Id from anywhere in the '${e}' Table, and a count of how many times it appears`))];ne(de,e,a),$(1,Z,...a)})),$(1,Z,e,a,n,y,E,D,L,M,z,W,B,F,Q,le,ae),oe=[e,a,n,y,D,L,M,z,W,B,F,Q,le,de],x([[e],[o],[H,"tables: "+a,"tables"],[H]],(([e,t,a],n)=>U(n,l,p,e,Ye(1,n),t,a))),U(0,l,b,n+Oe,tt(u,Ne)),U(5,l,u,Be,lt(u,Ne),"tableCallback: "+E,"tableCallback as any"),O(((e,t,a)=>{const[n,d,r,s,I,$,c,p]=te(de,e);x([[n],[o],[H,"table: "+d,", table"],[H]],(([n,o,d=l],r)=>U(r,t,u,n,It(e,r),o,a+d))),U(0,t,u+f,i,tt(m,"the whole of "+rt(e)),l,a),U(5,t,u+m,Be,lt(u+m,"the whole of "+rt(e)),"tableCellCallback: "+p,a+", tableCellCallback as any"),U(0,t,h,i,tt(C,rt(e)),l,a),U(0,t,g,i,tt(C,rt(e),1),"cellId?: "+I+De,a+", cellId, descending, offset, limit"),U(5,t,C,Be,lt(C,rt(e)),"rowCallback: "+c,a+", rowCallback as any"),x([[r],[o],[H,", row: "+s,", row"],[H],[H,", partialRow: "+s,", partialRow"]],(([n,o=l,d=l],r)=>U(r,t,C,n,$t(e,r),Ae+o,a+", rowId"+d))),U(6,t,C,ge+Te,"Add a new Row to "+rt(e),"row: "+s+", reuseIds?: boolean",a+", row, reuseIds"),U(0,t,f,I+Oe,tt(m,st(e)),Ae,a+", rowId"),U(5,t,m,Be,lt(m,st(e)),Ae+", cellCallback: "+$,a+", rowId, cellCallback as any"),N(e,((n,d,r,s,I)=>{const $="Map"+kt(d,1);ne(Y,d,$);const c=d+(j(r)?Te:l);x([[c],[o],[H,`, cell: ${d} | `+$,", cell as any"],[H]],(([o,d=l,r=l],$)=>U($,t+I,m,o,ct(e,n,$),Ae+d,a+", rowId, "+s+r))),U(1,t+I,u+m,o,ut[1]+` the '${n}' Cell anywhere in `+rt(e),l,a+", "+s)}))})),U(0,l,p+fe,fe,Ye(1,6)),U(2,l,p+fe,H,Ye(1,7),"tablesJson: "+fe,"tables"+fe),_(p,D,Ye(1,8)+" changes"),_(b,L,dt(2,0,1)),_(u,M,dt(3,0),`tableId: ${n} | null`,"tableId"),_(u+f,z,dt(14,3,1),`tableId: ${n} | null`,"tableId"),_(h,W,dt(4,3,1),`tableId: ${n} | null`,"tableId"),_(g,B,dt(13,3,1),Pt("tableId: TId",`cellId: ${y}<TId>`+Te,"descending: boolean","offset: number","limit: number"+Te),Pt("tableId","cellId","descending","offset","limit"),1,"<TId extends TableId>"),_(C,F,dt(5,3),`tableId: ${n} | null, rowId: IdOrNull`,"tableId, rowId"),_(f,Q,dt(6,5,1),`tableId: ${n} | null, rowId: IdOrNull`,"tableId, rowId"),_(m,le,dt(7,5),`tableId: ${n} | null, rowId: IdOrNull, cellId: ${R(O((e=>te(de,e)?.[4]??l))," | ")} | null`,"tableId, rowId, cellId"),_(me+m,ae,ke+" whenever an invalid Cell change was attempted","tableId: IdOrNull, rowId: IdOrNull, cellId: IdOrNull","tableId, rowId, cellId"),$(1,Z,...K(Y)),P(X,".set"+p+Pe+"({",Rt(O(((e,t,a)=>[`[${a}]: {`,...N(e,((e,t,a,n)=>`[${n}]: {[${k(St(r),`'${r}'`)}]: ${k(St(t),`'${t}'`)}${j(a)?l:`, [${k(St(s),`'${s}'`)}]: `+(J(a)?k(St(a),`'${a}'`):a)}},`)),"},"]))),"})")}if(Q(a))$(null,t,y);else{const[e,a,n,d,I,c,i,u,p]=M(q,H);$(1,Z,e,a,n,I,c,i,u,p),de=[e,a,n,c,i,u],x([[e],[o],[H,"values: "+a,"values"],[H],[H,"partialValues: "+a,"partialValues"]],(([e,t,a],n)=>U(n,l,y,e,Ye(2,n),t,a))),U(0,l,T,n+Oe,tt(w,Ne)),U(5,l,w,"void",lt(w,Ne),"valueCallback: "+I,"valueCallback as any"),L(((e,t,a,n,d)=>{const r="Map"+kt(t,1);ne(Y,t,r),x([[t],[o],[H,`value: ${t} | `+r,", value as any"],[H]],(([t,a,o=l],r)=>U(r,d,w,t,it(e,r),a,n+o)))})),U(0,l,y+fe,fe,Ye(2,6)),U(2,l,y+fe,H,Ye(2,7),"valuesJson: "+fe,"values"+fe),_(y,c,Ye(2,8)+" changes"),_(T,i,dt(10,0,1)),_(w,u,dt(11,0),`valueId: ${n} | null`,"valueId"),_(me+w,p,ke+" whenever an invalid Value change was attempted","valueId: IdOrNull","valueId"),$(1,Z,...K(Y)),$(0,t,"ValueChange"),P(X,".set"+y+Pe+"({",L(((e,t,a,n)=>[`[${n}]: {[${k(St(r),`'${r}'`)}]: ${k(St(t),`'${t}'`)}${j(a)?l:`, [${k(St(s),`'${s}'`)}]: `+(J(a)?k(St(a),`'${a}'`):a)}},`])),"})")}U(0,l,"Content",`[${p}, ${y}]`,Ye(0,0)),U(2,l,"Content",H,Ye(0,2),`[tables, values]: [${p}, ${y}]`,"[tables, values]"),U(2,l,Ge,H,`Applies a set of ${Ge} to the Store`,"transactionChanges: "+Ge,"transactionChanges"),le(Y,((e,t)=>v(t,`(cell: ${e}${Te}) => `+e,`Takes a ${e} Cell value and returns another`))),$(null,t,"DoRollback",ge,"IdOrNull",fe,"Store",Ge),$(0,t,"Get"+Ge,"GetTransactionLog"),U(0,l,fe,fe,Ye(0,6)),U(2,l,fe,H,Ye(0,7),"tablesAndValuesJson: "+fe,"tablesAndValuesJson"),U(7,l,je,"Return",Me,Ce,"actions, doRollback","<Return>"),U(7,l,"start"+Le,H,Je),U(7,l,"finish"+Le,H,ze,be,"doRollback");const re=z(q,H);return _("Start"+Le,re,ke+" just before the start of the "+je,l,l,0),_("WillFinish"+Le,re,ke+" just before "+We,l,l,0),_("DidFinish"+Le,re,ke+" just after "+We,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 "+Ne,"listenerId: Id","listenerId"),F("getStore",l,"Store","store",ut[0]+" the underlying Store object"),$(1,t,"createStore"),$(1,Z,H,`create${H} as create${H}Decl`,re),k("store",["createStore()",...X]),V("fluent","actions: () => Store",["actions();",`return ${q};`]),V("proxy","listener: any",`(_: Store, ...params: any[]) => listener(${q}, ...params)`),k(q,["{",...B(1),"}"]),[d(...S(0),...A(),he+" interface "+H+" {",...B(0),"}",l,At(`Creates a ${H} object`),he+" function create"+H+"(): "+H+";"),d(...S(1),he+" const create"+H+": typeof create"+H+"Decl = () => {",...E(),`return Object.freeze(${q});`,"};"),oe,de]},Wt=e=>$+e,Bt=e=>Pt(Wt(e),Wt(e)+ue),Ft="debugIds?: boolean",Ut="debugIds={debugIds}",_t="then"+pe,Zt="Parameter",Ht=": (parameter: "+Zt+", store: Store) => ",Qt="const contextValue = useContext(Context);",qt=", based on a parameter",Kt=": ",Xt="<"+Zt+",>",Yt=Zt+"ized"+ce+"<"+Zt+">",el="rowId",tl="rowId={rowId}",ll=", separator, debugIds",al="separator?: ReactElement | string",nl="then?: (store: Store",ol=Pt(nl+")"+Fe,_t),dl="then, then"+ue,rl=el+Kt+ge,sl="View",Il=(e,...t)=>Pt(...t,we+": "+e,we+pe,"mutator?: boolean"),$l=(...e)=>Pt(...e,we,we+ue,"mutator"),cl=(e,a,n,o,d)=>{const[r,s,$,c,v,V,x,k]=Ot(),[S,A,E]=Lt(e,a,v),O=`./${kt(n)}.d`,N=`./${kt(n)}-ui-react.d`,L="tinybase/ui-react",G=kt(n,1),M=kt(G),J=G+"Or"+G+ge,z=M+"Or"+G+ge,W=M+`={${M}}`,B=ee(),F=(e,t,a,n,o,d=l)=>(s(1,N,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,r=l,I=l,$=l)=>(s(1,L,`use${t} as use${t}Core`),U(e,Pt(o,X,I),a,le+`(${z}, use${t}Core, [`+(d||l)+($?"], ["+$:l)+"]);",n,r)),Z=(e,t,l,a)=>F(e,t,1,l,a),H=(e=0)=>ae(B,(([t,a,n,o,d],r)=>{const s=e?[he+` const ${r}: typeof ${r}Decl = ${d}(${t}): ${1==a?"any":a} =>`,n]:[he+` function ${r}${d}(${t}): ${1==a?"ComponentReturnType":a};`];return e||D(s,At(o)),P(s,l),s}));s(null,t,ge,"Store",ce,Zt+"ized"+ce),s(0,L,"ComponentReturnType"),s(null,L,"ExtraProps"),s(0,O,G);const q=$(J,G+" | "+ge,`Used when you need to refer to a ${G} in a React hook or component`),K=$(Re+xe,Dt(M+ye+G,M+`ById?: {[${M}Id: Id]: ${G}}`),`Used with the ${Re} component, so that a `+G+" can be passed into the context of an application");s(0,"react","ReactElement","ComponentType"),s(1,"react","React"),s(1,N,q,K);const X=z+ye+q;v("{createContext, useContext, useMemo}","React"),v("Context",`createContext<[${G}?, {[${M}Id: Id]: ${G}}?]>([])`),U("Create"+G,`create: () => ${G}, create`+pe,G,"\n// eslint-disable-next-line react-hooks/exhaustive-deps\nuseMemo(create, createDeps)",`Create a ${G} within a React application with convenient memoization`);const Y=U(G,"id?: Id",G+Te,["{",Qt,"return id == null ? contextValue[0] : contextValue[1]?.[id];","}"],`Get a reference to a ${G} from within a ${Re} component context`),le=c("useHook",z+`: ${q} | undefined, hook: (...params: any[]) => any, preParams: any[], postParams: any[] = []`,[`const ${M} = ${Y}(${z} as Id);`,`return hook(...preParams, ((${z} == null || typeof ${z} == 'string')`,`? ${M} : ${z})?.getStore(), ...postParams)`]),ne=c("getProps","getProps: ((id: any) => ExtraProps) | undefined, id: Id","(getProps == null) ? ({} as ExtraProps) : getProps(id)"),oe=c("wrap",Pt("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=v("NullComponent","() => null");if(!Q(e)){const[e,a,n,d,r,w,y,T,v,V,x,k,P,E]=o;s(null,O,e,a,n,r,w,y,T,v,V,x,k,P),s(0,O,d),s(1,O,G),s(null,t,i,"IdOrNull");const D=c("tableView",`{${M}, rowComponent, getRowComponentProps`+ll+"}: any, rowIds: Ids, tableId: Id, defaultRowComponent: React.ComponentType<any>",["const Row = rowComponent ?? defaultRowComponent;",`return ${oe}(rowIds.map((rowId) => (`,"<Row","{..."+ne+"(getRowComponentProps, rowId)}","key={rowId}","tableId={tableId}",tl,W,Ut,"/>","))",ll,", tableId,",");"]),L=c("getDefaultTableComponent","tableId: Id",R(S(((e,t,l)=>`tableId == ${l} ? ${t}TableView : `)))+de),J=c("getDefaultCellComponent","tableId: Id, cellId: Id",R(S(((e,t,l)=>`tableId == ${l} ? ${R(A(e,((e,l,a,n,o)=>`cellId == ${n} ? `+t+o+"CellView : ")))+de} : `)))+de);_(p,p,e,Ye(1,0)+$e);const z=_(b,b,n+Oe,tt(u,Ne)+$e);_(Ee+p+ce,Ee+p+ce,Yt,Ye(1,9)+qt,Pt(Wt(p)+Ht+a,Wt(p)+pe),Bt(p),Xt,Pt(nl,`tables: ${a})`+Fe,_t),dl),_(ie+p+ce,ie+p+ce,ce,Ye(1,12),l,l,l,ol,dl);const B=$(m+xe,Dt("tableId?: TId","rowId: Id","cellId?: CId",M+ye+G,Ft),at(se+m),`<TId extends ${n}, CId extends ${d}<TId>>`),F=$(C+xe,Dt("tableId?: TId","rowId: Id",M+ye+G,"cellComponents?: {readonly [CId in "+d+`<TId>]?: ComponentType<${B}<TId, CId>>;}`,`getCellComponentProps?: (cellId: ${d}<TId>) => ExtraProps`,al,Ft),at(se+C),`<TId extends ${n}>`),U=$(u+xe,Dt("tableId?: TId",M+ye+G,`rowComponent?: ComponentType<${F}<TId>>`,"getRowComponentProps?: (rowId: Id) => ExtraProps",al,Ft),at(se+u),`<TId extends ${n}>`),H=$("Sorted"+u+xe,Dt("tableId?: TId","cellId?: "+d+"<TId>","descending?: boolean","offset?: number","limit?: number",M+ye+G,`rowComponent?: ComponentType<${F}<TId>>`,"getRowComponentProps?: (rowId: Id) => ExtraProps",al,Ft),at(se+"sorted "+u),`<TId extends ${n}>`),Q=$(p+xe,Dt(M+ye+G,"tableComponents?: {readonly [TId in "+n+`]?: ComponentType<${U}<TId>>;}`,`getTableComponentProps?: (tableId: ${n}) => ExtraProps`,al,Ft),at(Xe(1,1)));s(1,N,Q,U,H,F,B),Z(p+sl,"{"+M+", tableComponents, getTableComponentProps"+ll+"}: "+Q,[oe+`(${z}(${M}).map((tableId) => {`,"const Table = (tableComponents?.[tableId] ?? "+L+"(tableId)) as React.ComponentType<TableProps<typeof tableId>>;","return <Table",`{...${ne}(getTableComponentProps, tableId)}`,"tableId={tableId}","key={tableId}",W,Ut,"/>;","}), separator)"],Ye(1,13)+$e),S(((e,t,a)=>{const[n,o,d,r,I]=te(E,e);s(null,O,n,o,d,r,I),_(t+u,u,n,It(e)+$e,l,a),_(t+u+f,u+f,i,tt(m,"the whole of "+rt(e))+$e,l,a);const $=_(t+h,h,i,tt(C,rt(e))+$e,l,a),c=_(t+g,g,i,tt(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,Pt(a,el));const p=_(t+f,f,I+Oe,tt(m,st(e))+$e,rl,Pt(a,el));_(Ee+t+u+ce,Ee+u+ce,Yt,It(e,9)+qt,Pt(Wt(u)+Ht+o,Wt(u)+pe),Pt(a,Bt(u)),Xt,Pt(nl,`table: ${o})`+Fe,_t),dl),_(ie+t+u+ce,ie+u+ce,ce,It(e,12),l,a,l,ol,dl),_(Ee+t+C+ce,Ee+C+ce,Yt,$t(e,9)+qt,Pt(rl,Wt(C)+Ht+r,Wt(C)+pe),Pt(a,el,Bt(C)),Xt,Pt(nl,`row: ${r})`+Fe,_t),dl),_("Add"+t+C+ce,"Add"+C+ce,Yt,$t(e,10)+qt,Pt(Wt(C)+Ht+r,Wt(C)+pe),Pt(a,Bt(C)),Xt,"then?: ("+Pt(rl+Te,"store: Store","row: "+r+")"+Fe,"then"+pe)+", reuseRowIds?: boolean",dl+", reuseRowIds"),_(Ee+t+Ve+C+ce,Ee+Ve+C+ce,Yt,$t(e,11)+qt,Pt(rl,Wt(Ve+C)+Ht+r,Wt(Ve+C)+pe),Pt(a,el,Bt(Ve+C)),Xt,Pt(nl,`partialRow: ${r})`+Fe,_t),dl),_(ie+t+C+ce,ie+C+ce,ce,$t(e,12),rl,Pt(a,el),l,ol,dl);const b=Z(t+C+sl,"{rowId, "+M+", cellComponents, getCellComponentProps"+ll+`}: ${F}<'${e}'>`,[oe+`(${p}(rowId, ${M}).map((cellId) => {`,"const Cell = (cellComponents?.[cellId] ?? "+J+`(${a}, cellId)) as React.ComponentType<CellProps<typeof `+a+", typeof cellId>>;","return <Cell",`{...${ne}(getCellComponentProps, cellId)} `,"key={cellId}",`tableId={${a}}`,tl,"cellId={cellId}",W,Ut,"/>;","})"+ll+", rowId)"],$t(e,13)+$e);Z(t+"Sorted"+u+sl,"{cellId, descending, offset, limit, ...props}: "+H+`<'${e}'>`,D+"(props, "+c+`(cellId, descending, offset, limit, props.${M}), ${a}, ${b});`,It(e,13)+", sorted"+$e),Z(t+u+sl,`props: ${U}<'${e}'>`,D+"(props, "+$+`(props.${M}), ${a}, ${b});`,It(e,13)+$e),A(e,((n,o,d,r,I)=>{const $="Map"+kt(o,1);s(0,O,$),s(1,O,$);const c=_(t+I+m,m,o+(j(d)?Te:l),ct(e,n)+$e,rl,Pt(a,el,r));_(Ee+t+I+m+ce,Ee+m+ce,Yt,ct(e,n,9)+qt,Pt(rl,Wt(m)+Ht+o+" | "+$,Wt(m)+pe),Pt(a,el,r,Bt(m)),Xt,Pt(nl,`cell: ${o} | ${$})`+Fe,_t),dl),_(ie+t+I+m+ce,ie+m+ce,ce,ct(e,n,12),Pt(rl,"forceDel?: boolean"),Pt(a,el,r,"forceDel"),l,ol,dl),Z(t+I+m+sl,`{rowId, ${M}, debugIds}: `+B+`<'${e}', '${n}'>`,[oe+`('' + ${c}(rowId, `+M+`) ?? '', undefined, debugIds, ${r})`],ct(e,n,13)+$e)}))}));const q=R(S((e=>te(E,e)?.[4]??l))," | ");_(p+I,p+I,Be,Ye(1,8)+" changes",Il(r),$l()),_(b+I,b+I,Be,dt(2,0,1),Il(w),$l()),_(u+I,u+I,Be,dt(3,0),Il(y,`tableId: ${n} | null`),$l("tableId")),_(u+f+I,u+f+I,Be,dt(14,3,1),Il(T,`tableId: ${n} | null`),$l("tableId")),_(h+I,h+I,Be,dt(4,3,1),Il(v,`tableId: ${n} | null`),$l("tableId")),_(g+I,g+I,Be,dt(13,3,1),Il(V,`tableId: ${n} | null`,"cellId: "+q+Te,"descending: boolean","offset: number","limit: number"+Te),$l("tableId","cellId","descending","offset","limit")),_(C+I,C+I,Be,dt(5,3),Il(x,`tableId: ${n} | null`,el+": IdOrNull"),$l("tableId",el)),_(f+I,f+I,Be,dt(6,5,1),Il(k,`tableId: ${n} | null`,el+": IdOrNull"),$l("tableId",el)),_(m+I,m+I,Be,dt(7,5),Il(P,`tableId: ${n} | null`,el+": IdOrNull",`cellId: ${q} | null`),$l("tableId",el,"cellId"))}if(!Q(a)){const[e,t,a,n,o,r]=d;s(null,O,...d),s(1,O,G);const i=c("getDefaultValueComponent","valueId: Id",R(E(((e,t,l,a,n)=>`valueId == ${a} ? `+n+"ValueView : ")))+de);_(y,y,e,Ye(2,0)+$e);const u=_(T,T,a+Oe,tt(w,Ne)+$e);_(Ee+y+ce,Ee+y+ce,Yt,Ye(2,9)+qt,Pt(Wt(y)+Ht+t,Wt(y)+pe),Bt(y),Xt,Pt(nl,`values: ${t})`+Fe,_t),dl),_(Ee+Ve+y+ce,Ee+Ve+y+ce,Yt,Ye(2,11)+qt,Pt(Wt(Ve+y)+Ht+t,Wt(Ve+y)+pe),Bt(Ve+y),Xt,Pt(nl,`partialValues: ${t})`+Fe,_t),dl),_(ie+y+ce,ie+y+ce,ce,Ye(2,12),l,l,l,ol,dl);const p=$(w+xe,Dt("valueId?: VId",M+ye+G,Ft),at("a Value"),`<VId extends ${a}>`),b=$(y+xe,Dt(M+ye+G,"valueComponents?: {readonly [VId in "+a+`]?: ComponentType<${p}<VId>>;}`,`getValueComponentProps?: (valueId: ${a}) => ExtraProps`,al,Ft),at(Xe(2,1)));s(1,N,b,p),Z(y+sl,"{"+M+", valueComponents, getValueComponentProps"+ll+"}: "+b,[oe+`(${u}(${M}).map((valueId) => {`,"const Value = valueComponents?.[valueId] ?? "+i+"(valueId);","return <Value",`{...${ne}(getValueComponentProps, valueId)}`,"key={valueId}",W,Ut,"/>;","}), separator)"],Ye(2,13)+$e),E(((e,t,a,n,o)=>{const d="Map"+kt(t,1);s(0,O,d),s(1,O,d);const r=_(o+w,w,t,it(e)+$e,l,n);_(Ee+o+w+ce,Ee+w+ce,Yt,it(e,9)+qt,Pt(Wt(w)+Ht+t+" | "+d,Wt(w)+pe),Pt(n,Bt(w)),Xt,Pt(nl,`value: ${t} | ${d})`+Fe,_t),dl),_(ie+o+w+ce,ie+w+ce,ce,it(e,12),l,n,l,ol,dl),Z(o+w+sl,`{${M}, debugIds}: ${p}<'${e}'>`,[oe+`('' + ${r}(`+M+`) ?? '', undefined, debugIds, ${n})`],it(e,13)+$e)})),_(y+I,y+I,Be,Ye(2,8)+" changes",Il(n),$l()),_(T+I,T+I,Be,dt(10,0,1),Il(o),$l()),_(w+I,w+I,Be,dt(11,0),Il(r,`valueId: ${a} | null`),$l("valueId"))}return Z(Re,`{${M}, ${M}ById, children}: `+K+" & {children: React.ReactNode}",["{",Qt,"return (","<Context."+Re,"value={useMemo(",`() => [${M} ?? contextValue[0], {...contextValue[1], ...${M}ById}],`,`[${M}, ${M}ById, contextValue],`,")}>","{children}",`</Context.${Re}>`,");","}"],"Wraps part of an application in a context that provides default objects to be used by hooks and components within"),[r(...V(0),...x(),...H(0)),r(...V(1),...k(),...H(1))]},il=(e,t,a)=>{if(Q(e)&&Q(t))return[l,l,l,l];const[n,o,d,r]=zt(e,t,a);return[n,o,...cl(e,t,a,d,r)]},ul={parser:"typescript",singleQuote:!0,trailingComma:"all",bracketSpacing:!1,jsdocSingleLineComment:!1},pl=Nt((e=>{const t=()=>{const t=N(e.getTablesSchemaJson());return!Q(t)||v(e.getTableIds(),(l=>{const a=e.getRowIds(l),n=ee();if(v(a,(t=>v(e.getCellIds(l,t),(a=>{const o=e.getCell(l,t,a),d=oe(n,a,(()=>[W(o),ee(),[0],0])),[r,s,[I]]=d,$=oe(s,o,(()=>0))+1;return $>I&&(d[2]=[$,o]),ne(s,o,$),d[3]++,r==W(o)})))))return t[l]={},X(n,(([e,,[,n],o],d)=>{t[l][d]={[r]:e,...o==S(a)?{[s]:n}:{}}})),1}))?t:{}},l=()=>{const t=N(e.getValuesSchemaJson());return Q(t)&&e.forEachValue(((e,l)=>{t[e]={[r]:W(l)}})),t},a=e=>il(t(),l(),e),n=async e=>{const t=["d.ts","ts","d.ts","tsx"];let l;try{l=(await import("prettier")).format}catch(e){l=e=>e}return k(a(e),((e,a)=>Vt(l(e,{...ul,filepath:"_."+t[a]}))))};return U({getStoreStats:t=>{let l=0,a=0,n=0;const o={};return e.forEachTable(((e,d)=>{l++;let r=0,s=0;const I={};d(((e,l)=>{r++;let a=0;l((()=>a++)),s+=a,t&&(I[e]={rowCells:a})})),a+=r,n+=s,t&&(o[e]={tableRows:r,tableCells:s,rows:I})})),{totalTables:l,totalRows:a,totalCells:n,totalValues:S(e.getValueIds()),jsonLength:xt(e.getJson()),...t?{detail:{tables:o}}:{}}},getStoreTablesSchema:t,getStoreValuesSchema:l,getStoreApi:a,getPrettyStoreApi:n,getStore:()=>e})}));export{pl as createTools};
|
package/lib/tools.js.gz
CHANGED
|
Binary file
|
|
@@ -6,7 +6,6 @@
|
|
|
6
6
|
* returns a new Checkpoints object. From there, you can create new checkpoints,
|
|
7
7
|
* go forwards or backwards to others, and register listeners for when the list
|
|
8
8
|
* of checkpoints change.
|
|
9
|
-
*
|
|
10
9
|
* @packageDocumentation
|
|
11
10
|
* @module checkpoints
|
|
12
11
|
*/
|
|
@@ -28,7 +27,6 @@ import {Store} from './store.d';
|
|
|
28
27
|
* - The 'forward' checkpoint Ids that can be rolled forward to (in other words,
|
|
29
28
|
* the checkpoints in the redo stack for this Store). They are in
|
|
30
29
|
* chronological order with the newest checkpoint at the end of the array.
|
|
31
|
-
*
|
|
32
30
|
* @category Identity
|
|
33
31
|
*/
|
|
34
32
|
export type CheckpointIds = [Ids, Id | undefined, Ids];
|
|
@@ -40,7 +38,6 @@ export type CheckpointIds = [Ids, Id | undefined, Ids];
|
|
|
40
38
|
* A CheckpointCallback is provided when using the forEachCheckpoint method,
|
|
41
39
|
* so that you can do something based on every Checkpoint in the Checkpoints
|
|
42
40
|
* object. See that method for specific examples.
|
|
43
|
-
*
|
|
44
41
|
* @param checkpointId The Id of the Checkpoint that the callback can operate
|
|
45
42
|
* on.
|
|
46
43
|
* @category Callback
|
|
@@ -56,7 +53,6 @@ export type CheckpointCallback = (checkpointId: Id, label?: string) => void;
|
|
|
56
53
|
*
|
|
57
54
|
* When called, a CheckpointIdsListener is given a reference to the Checkpoints
|
|
58
55
|
* object.
|
|
59
|
-
*
|
|
60
56
|
* @param checkpoints A reference to the Checkpoints object that changed.
|
|
61
57
|
* @category Listener
|
|
62
58
|
*/
|
|
@@ -71,7 +67,6 @@ export type CheckpointIdsListener = (checkpoints: Checkpoints) => void;
|
|
|
71
67
|
*
|
|
72
68
|
* When called, a CheckpointListener is given a reference to the Checkpoints
|
|
73
69
|
* object, and the Id of the checkpoint whose label changed.
|
|
74
|
-
*
|
|
75
70
|
* @param checkpoints A reference to the Checkpoints object that changed.
|
|
76
71
|
* @param checkpointId The Id of the checkpoint that changed.
|
|
77
72
|
* @category Listener
|
|
@@ -88,7 +83,6 @@ export type CheckpointListener = (
|
|
|
88
83
|
*
|
|
89
84
|
* A CheckpointsListenerStats object is returned from the getListenerStats
|
|
90
85
|
* method, and is only populated in a debug build.
|
|
91
|
-
*
|
|
92
86
|
* @category Development
|
|
93
87
|
*/
|
|
94
88
|
export type CheckpointsListenerStats = {
|
|
@@ -120,9 +114,6 @@ export type CheckpointsListenerStats = {
|
|
|
120
114
|
* Every checkpoint can be given a label which can be used to describe the
|
|
121
115
|
* actions that changed the Store before this checkpoint. This can be useful for
|
|
122
116
|
* interfaces that let users 'Undo [last action]'.
|
|
123
|
-
*
|
|
124
|
-
* You
|
|
125
|
-
*
|
|
126
117
|
* @example
|
|
127
118
|
* This example shows a simple lifecycle of a Checkpoints object: from creation,
|
|
128
119
|
* to adding a checkpoint, getting the list of available checkpoints, and then
|
|
@@ -187,7 +178,6 @@ export interface Checkpoints {
|
|
|
187
178
|
* pruned to make room for more recent ones.
|
|
188
179
|
*
|
|
189
180
|
* The default size for a newly-created Checkpoints object is 100.
|
|
190
|
-
*
|
|
191
181
|
* @param size The number of checkpoints that this Checkpoints object should
|
|
192
182
|
* hold.
|
|
193
183
|
* @returns A reference to the Checkpoints object.
|
|
@@ -233,7 +223,6 @@ export interface Checkpoints {
|
|
|
233
223
|
* The optional `label` parameter can be used to describe the actions that
|
|
234
224
|
* changed the Store before this checkpoint. This can be useful for interfaces
|
|
235
225
|
* that let users 'Undo [last action]'.
|
|
236
|
-
*
|
|
237
226
|
* @param label An optional label to describe the actions leading up to this
|
|
238
227
|
* checkpoint.
|
|
239
228
|
* @returns The Id of the newly-created checkpoint.
|
|
@@ -281,7 +270,6 @@ export interface Checkpoints {
|
|
|
281
270
|
* change the label at a later point.
|
|
282
271
|
*
|
|
283
272
|
* You cannot add a label to a checkpoint that does not yet exist.
|
|
284
|
-
*
|
|
285
273
|
* @param checkpointId The Id of the checkpoint to set the label for.
|
|
286
274
|
* @param label A label to describe the actions leading up to this checkpoint
|
|
287
275
|
* or left undefined if you want to clear the current label.
|
|
@@ -326,7 +314,6 @@ export interface Checkpoints {
|
|
|
326
314
|
/**
|
|
327
315
|
* The getStore method returns a reference to the underlying Store that is
|
|
328
316
|
* backing this Checkpoints object.
|
|
329
|
-
*
|
|
330
317
|
* @returns A reference to the Store.
|
|
331
318
|
* @example
|
|
332
319
|
* This example creates a Checkpoints object against a newly-created Store
|
|
@@ -353,7 +340,6 @@ export interface Checkpoints {
|
|
|
353
340
|
* Together, these are sufficient to understand the state of the Checkpoints
|
|
354
341
|
* object and what movement is possible backward or forward through the
|
|
355
342
|
* checkpoint stack.
|
|
356
|
-
*
|
|
357
343
|
* @returns A CheckpointIds array, containing the checkpoint Ids managed by
|
|
358
344
|
* this Checkpoints object.
|
|
359
345
|
* @example
|
|
@@ -392,7 +378,6 @@ export interface Checkpoints {
|
|
|
392
378
|
* object in a functional style. The `checkpointCallback` parameter is a
|
|
393
379
|
* CheckpointCallback function that will be called with the Id of each
|
|
394
380
|
* Checkpoint.
|
|
395
|
-
*
|
|
396
381
|
* @param checkpointCallback The function that should be called for every
|
|
397
382
|
* Checkpoint.
|
|
398
383
|
* @example
|
|
@@ -417,7 +402,6 @@ export interface Checkpoints {
|
|
|
417
402
|
/**
|
|
418
403
|
* The hasCheckpoint method returns a boolean indicating whether a given
|
|
419
404
|
* Checkpoint exists in the Checkpoints object.
|
|
420
|
-
*
|
|
421
405
|
* @param checkpointId The Id of a possible Checkpoint in the Checkpoints
|
|
422
406
|
* object.
|
|
423
407
|
* @returns Whether a Checkpoint with that Id exists.
|
|
@@ -443,7 +427,6 @@ export interface Checkpoints {
|
|
|
443
427
|
*
|
|
444
428
|
* If the checkpoint has had no label provided, this method will return an
|
|
445
429
|
* empty string.
|
|
446
|
-
*
|
|
447
430
|
* @param checkpointId The Id of the checkpoint to get the label for.
|
|
448
431
|
* @returns A string label for the requested checkpoint, an empty string if it
|
|
449
432
|
* was never set, or `undefined` if the checkpoint does not exist.
|
|
@@ -494,7 +477,6 @@ export interface Checkpoints {
|
|
|
494
477
|
*
|
|
495
478
|
* The provided listener is a CheckpointIdsListener function, and will be
|
|
496
479
|
* called with a reference to the Checkpoints object.
|
|
497
|
-
*
|
|
498
480
|
* @param listener The function that will be called whenever the checkpoints
|
|
499
481
|
* change.
|
|
500
482
|
* @returns A unique Id for the listener that can later be used to remove it.
|
|
@@ -549,7 +531,6 @@ export interface Checkpoints {
|
|
|
549
531
|
* The provided listener is a CheckpointListener function, and will be called
|
|
550
532
|
* with a reference to the Checkpoints object, and the Id of the checkpoint
|
|
551
533
|
* whose label changed.
|
|
552
|
-
*
|
|
553
534
|
* @param checkpointId The Id of the checkpoint to listen to, or `null` as a
|
|
554
535
|
* wildcard.
|
|
555
536
|
* @param listener The function that will be called whenever the checkpoint
|
|
@@ -606,7 +587,6 @@ export interface Checkpoints {
|
|
|
606
587
|
*
|
|
607
588
|
* Use the Id returned by the addCheckpointIdsListener method. Note that the
|
|
608
589
|
* Checkpoints object may re-use this Id for future listeners added to it.
|
|
609
|
-
*
|
|
610
590
|
* @param listenerId The Id of the listener to remove.
|
|
611
591
|
* @returns A reference to the Checkpoints object.
|
|
612
592
|
* @example
|
|
@@ -645,7 +625,6 @@ export interface Checkpoints {
|
|
|
645
625
|
* previous checkpoint, effectively performing an 'undo' on the Store data.
|
|
646
626
|
*
|
|
647
627
|
* If there is no previous checkpoint to return to, this method has no effect.
|
|
648
|
-
*
|
|
649
628
|
* @returns A reference to the Checkpoints object.
|
|
650
629
|
* @example
|
|
651
630
|
* This example creates a Store, a Checkpoints object, makes a change and then
|
|
@@ -683,7 +662,6 @@ export interface Checkpoints {
|
|
|
683
662
|
* changes, the forwards 'redo' stack will only exist while you do not make
|
|
684
663
|
* changes to the Store. In general the goForward method is expected to be
|
|
685
664
|
* used to redo changes that were just undone.
|
|
686
|
-
*
|
|
687
665
|
* @returns A reference to the Checkpoints object.
|
|
688
666
|
* @example
|
|
689
667
|
* This example creates a Store, a Checkpoints object, makes a change and then
|
|
@@ -758,7 +736,6 @@ export interface Checkpoints {
|
|
|
758
736
|
* forwards to a specified checkpoint.
|
|
759
737
|
*
|
|
760
738
|
* If there is no checkpoint with the Id specified, this method has no effect.
|
|
761
|
-
*
|
|
762
739
|
* @param checkpointId The Id of the checkpoint to move to.
|
|
763
740
|
* @returns A reference to the Checkpoints object.
|
|
764
741
|
* @example
|
|
@@ -818,7 +795,6 @@ export interface Checkpoints {
|
|
|
818
795
|
* that is the baseline from which all subsequent changes are tracked.
|
|
819
796
|
*
|
|
820
797
|
* If you are listening to
|
|
821
|
-
*
|
|
822
798
|
* @returns A reference to the Checkpoints object.
|
|
823
799
|
* @example
|
|
824
800
|
* This example creates a Store, a Checkpoints object, adds a listener, makes
|
|
@@ -867,7 +843,6 @@ export interface Checkpoints {
|
|
|
867
843
|
*
|
|
868
844
|
* This guarantees that all of the listeners that the object registered with
|
|
869
845
|
* the underlying Store are removed and it can be correctly garbage collected.
|
|
870
|
-
*
|
|
871
846
|
* @example
|
|
872
847
|
* This example creates a Store, adds a Checkpoints object (that registers a
|
|
873
848
|
* CellListener with the underlying Store), and then destroys it again,
|
|
@@ -901,7 +876,6 @@ export interface Checkpoints {
|
|
|
901
876
|
* return an empty object. The method is intended to be used during
|
|
902
877
|
* development to ensure your application is not leaking listener
|
|
903
878
|
* registrations, for example.
|
|
904
|
-
*
|
|
905
879
|
* @returns A CheckpointsListenerStats object containing Checkpoints listener
|
|
906
880
|
* statistics.
|
|
907
881
|
* @example
|
|
@@ -933,7 +907,6 @@ export interface Checkpoints {
|
|
|
933
907
|
* A given Store can only have one Checkpoints object associated with it. If you
|
|
934
908
|
* call this function twice on the same Store, your second call will return a
|
|
935
909
|
* reference to the Checkpoints object created by the first.
|
|
936
|
-
*
|
|
937
910
|
* @param store The Store for which to set Checkpoints.
|
|
938
911
|
* @returns A reference to the new Checkpoints object.
|
|
939
912
|
* @example
|
package/lib/types/common.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The common module of the TinyBase project provides a small collection of
|
|
3
3
|
* common types used across other modules.
|
|
4
|
-
*
|
|
5
4
|
* @packageDocumentation
|
|
6
5
|
* @module common
|
|
7
6
|
*/
|
|
@@ -9,7 +8,6 @@
|
|
|
9
8
|
/**
|
|
10
9
|
* The Json type is a simple alias for a string, but is used to indicate that
|
|
11
10
|
* the string should be considered to be a JSON serialization of an object.
|
|
12
|
-
*
|
|
13
11
|
* @category General
|
|
14
12
|
*/
|
|
15
13
|
export type Json = string;
|
|
@@ -18,7 +16,6 @@ export type Json = string;
|
|
|
18
16
|
* The Ids type is a simple alias for an array of strings, but is used to
|
|
19
17
|
* indicate that the strings should be considered to be the keys of objects
|
|
20
18
|
* (such as the Row Id strings used in a Table).
|
|
21
|
-
*
|
|
22
19
|
* @category Identity
|
|
23
20
|
*/
|
|
24
21
|
export type Ids = Id[];
|
|
@@ -27,7 +24,6 @@ export type Ids = Id[];
|
|
|
27
24
|
* The Id type is a simple alias for a string, but is used to indicate that the
|
|
28
25
|
* string should be considered to be the key of an object (such as a Row Id
|
|
29
26
|
* string used in a Table).
|
|
30
|
-
*
|
|
31
27
|
* @category Identity
|
|
32
28
|
*/
|
|
33
29
|
export type Id = string;
|
|
@@ -37,7 +33,6 @@ export type Id = string;
|
|
|
37
33
|
* where the string should be considered to be the key of an objects (such as a
|
|
38
34
|
* Row Id string used in a Table), and typically `null` indicates a wildcard -
|
|
39
35
|
* such as when used in the Store addRowListener method.
|
|
40
|
-
*
|
|
41
36
|
* @category Identity
|
|
42
37
|
*/
|
|
43
38
|
export type IdOrNull = Id | null;
|
|
@@ -45,7 +40,6 @@ export type IdOrNull = Id | null;
|
|
|
45
40
|
/**
|
|
46
41
|
* The ParameterizedCallback type represents a generic function that will take
|
|
47
42
|
* an optional parameter - such as the handler of a DOM event.
|
|
48
|
-
*
|
|
49
43
|
* @category Callback
|
|
50
44
|
*/
|
|
51
45
|
export type ParameterizedCallback<Parameter> = (parameter?: Parameter) => void;
|
|
@@ -53,14 +47,12 @@ export type ParameterizedCallback<Parameter> = (parameter?: Parameter) => void;
|
|
|
53
47
|
/**
|
|
54
48
|
* The Callback type represents a function that is used as a callback and which
|
|
55
49
|
* does not take a parameter.
|
|
56
|
-
*
|
|
57
50
|
* @category Callback
|
|
58
51
|
*/
|
|
59
52
|
export type Callback = () => void;
|
|
60
53
|
|
|
61
54
|
/**
|
|
62
55
|
* The SortKey type represents a value that can be used by a sort function.
|
|
63
|
-
*
|
|
64
56
|
* @category Parameter
|
|
65
57
|
*/
|
|
66
58
|
export type SortKey = string | number | boolean;
|
|
@@ -70,7 +62,6 @@ export type SortKey = string | number | boolean;
|
|
|
70
62
|
* alphanumerically, and can be provided to the `sliceIdSorter` and
|
|
71
63
|
* `rowIdSorter` parameters of the setIndexDefinition method in the indexes
|
|
72
64
|
* module, for example.
|
|
73
|
-
*
|
|
74
65
|
* @param sortKey1 The first item of the pair to compare.
|
|
75
66
|
* @param sortKey2 The second item of the pair to compare.
|
|
76
67
|
* @returns A number indicating how to sort the pair.
|