tinybase 4.1.4 → 4.2.0-beta.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-indexed-db.cjs +1 -0
- package/lib/cjs/persisters/persister-indexed-db.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-remote.cjs +1 -1
- package/lib/cjs/persisters/persister-remote.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-yjs.cjs +1 -1
- package/lib/cjs/persisters/persister-yjs.cjs.gz +0 -0
- package/lib/cjs/tools.cjs +1 -1
- package/lib/cjs/tools.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-indexed-db.cjs +1 -0
- package/lib/cjs-es6/persisters/persister-indexed-db.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-remote.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-remote.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-yjs.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-yjs.cjs.gz +0 -0
- package/lib/cjs-es6/tools.cjs +1 -1
- package/lib/cjs-es6/tools.cjs.gz +0 -0
- package/lib/debug/persisters/persister-browser.js +13 -8
- package/lib/debug/persisters/persister-indexed-db.js +272 -0
- package/lib/debug/persisters/persister-remote.js +1 -1
- package/lib/debug/persisters/persister-yjs.js +10 -16
- package/lib/debug/tools.js +21 -5
- package/lib/debug/ui-react-dom.js +12 -7
- package/lib/es6/persisters/persister-indexed-db.js +1 -0
- package/lib/es6/persisters/persister-indexed-db.js.gz +0 -0
- package/lib/es6/persisters/persister-remote.js +1 -1
- package/lib/es6/persisters/persister-remote.js.gz +0 -0
- package/lib/es6/persisters/persister-yjs.js +1 -1
- package/lib/es6/persisters/persister-yjs.js.gz +0 -0
- package/lib/es6/tools.js +1 -1
- package/lib/es6/tools.js.gz +0 -0
- package/lib/persisters/persister-indexed-db.js +1 -0
- package/lib/persisters/persister-indexed-db.js.gz +0 -0
- package/lib/persisters/persister-remote.js +1 -1
- package/lib/persisters/persister-remote.js.gz +0 -0
- package/lib/persisters/persister-yjs.js +1 -1
- package/lib/persisters/persister-yjs.js.gz +0 -0
- package/lib/tools.js +1 -1
- package/lib/tools.js.gz +0 -0
- package/lib/types/persisters/persister-indexed-db.d.ts +75 -0
- package/lib/types/persisters/persister-remote.d.ts +2 -2
- package/lib/types/persisters.d.ts +1 -0
- package/lib/types/with-schemas/persisters/persister-indexed-db.d.ts +86 -0
- package/lib/types/with-schemas/persisters/persister-remote.d.ts +3 -3
- package/lib/types/with-schemas/persisters.d.ts +1 -0
- package/lib/umd/persisters/persister-indexed-db.js +1 -0
- package/lib/umd/persisters/persister-indexed-db.js.gz +0 -0
- package/lib/umd/persisters/persister-remote.js +1 -1
- package/lib/umd/persisters/persister-remote.js.gz +0 -0
- package/lib/umd/persisters/persister-yjs.js +1 -1
- package/lib/umd/persisters/persister-yjs.js.gz +0 -0
- package/lib/umd/tools.js +1 -1
- package/lib/umd/tools.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-indexed-db.js +1 -0
- package/lib/umd-es6/persisters/persister-indexed-db.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-remote.js +1 -1
- package/lib/umd-es6/persisters/persister-remote.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-yjs.js +1 -1
- package/lib/umd-es6/persisters/persister-yjs.js.gz +0 -0
- package/lib/umd-es6/tools.js +1 -1
- package/lib/umd-es6/tools.js.gz +0 -0
- package/package.json +17 -15
- package/readme.md +13 -13
package/lib/es6/tools.js
CHANGED
|
@@ -1 +1 @@
|
|
|
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",c="get",u="add",$="Ids",i="Table",p=i+"s",b=i+$,C="Row",h=C+$,m="Sorted"+C+$,g="Cell",f=g+$,w="Value",y=w+"s",v=w+$,T=isFinite,V=(e,t)=>e instanceof t,x=e=>null==e,R=e=>e==n||e==o,k=t=>e(t)==n,P=e=>Array.isArray(e),S=t=>{const l=e(t);return R(l)||l==d&&T(t)?l:void 0},A=(e,t)=>e.every(t),O=(e,t)=>e.sort(t),E=(e,t)=>e.forEach(t),D=(e,t=l)=>e.join(t),j=(e,t)=>e.map(t),N=e=>e.length,G=(e,t)=>e.filter(t),L=(e,...t)=>e.push(...t),M=e=>e.pop(),J=(e,...t)=>e.unshift(...t),z=e=>e.shift(),W=Object,B=W.keys,F=W.freeze,U=e=>V(e,W)&&e.constructor==W,_=(e,t)=>j(W.entries(e),(([e,l])=>t(l,e))),Z=e=>N(B(e)),H=e=>U(e)&&0==Z(e),Q=(e,t)=>{var l;return null!=(l=null==e?void 0:e.has(t))&&l},q=e=>{var t;return[...null!=(t=null==e?void 0:e.values())?t:[]]},K=(e,t)=>null==e?void 0:e.forEach(t),X=(e,t)=>null==e?void 0:e.delete(t),Y=e=>new Map(e),ee=(e,t)=>null==e?void 0:e.get(t),te=(e,t)=>K(e,((e,l)=>t(l,e))),le=(e,t)=>{var l;return j([...null!=(l=null==e?void 0:e.entries())?l:[]],(([e,l])=>t(l,e)))},ae=(e,t,l)=>x(l)?(X(e,t),e):null==e?void 0:e.set(t,l),ne=(e,t,l)=>(Q(e,t)||ae(e,t,l()),ee(e,t)),oe=e=>e.toUpperCase(),de=e=>e.toLowerCase(),re="a ",se="A function for",Ie=", and registers a listener so that any changes to that result will cause a re-render",ce="Callback",ue="Del",$e="Deps",ie=$e+"?: React.DependencyList",pe="doRollback?: DoRollback",be="actions: () => Return, "+pe,Ce="export",he="Id",me="Invalid",ge="Json",fe=de(I),we="?: ",ye=" | undefined",ve="NonNullable",Te="Partial",Ve="Props",xe="Provider",Re=`Registers a ${fe} that will be called`,ke="Represents",Pe="rowId: "+he,Se="Schema",Ae="Set",Oe=", descending?: boolean, offset?: number, limit?: number",Ee="[]",De="the Store",je="Transaction",Ne=je+"Changes",Ge=de(je),Le="Execute a "+Ge+" to make multiple mutations",Me="Explicitly starts a "+Ge,Je="Explicitly finishes a "+Ge,ze="the end of the "+Ge,We="void",Be=" => "+We,Fe="WhenSet",Ue=" when setting it",_e=re+"string serialization of",Ze=" ",He="Gets a callback that can ",Qe="the ",qe=" the schema for",Ke=(e=0,t=0)=>`the ${bt[e]}content of`+(t?Ze+De:l),Xe=(e=0,t,a=0)=>$t[t]+Ze+Ke(e,1)+(a?" when setting it":l),Ye=(e,t=0)=>ke+` a Row when ${t?"s":"g"}etting ${Ke()} the '${e}' `+i,et=(e,t,l=0)=>`Gets ${l?"sorted, paginated":"the"} Ids of the ${e}s in `+t,tt=(e,t)=>`Calls a function for each ${e} in `+t,lt=e=>"The props passed to a component that renders "+e,at=e=>"A function that takes "+e,nt=(e,t=0)=>se+" listening to changes to "+pt[e]+" in "+pt[t],ot=(e,t,a=0)=>Re+" whenever "+pt[e]+" in "+pt[t]+" change"+(a?l:"s"),dt=e=>`the '${e}' `+i,rt=e=>"the specified Row in "+dt(e),st=(e,t=0)=>$t[t]+` ${Ke()} `+dt(e),It=(e,t=0)=>$t[t]+` ${Ke()} `+rt(e),ct=(e,t,l=0)=>$t[l]+` the '${t}' Cell for `+rt(e),ut=(e,t=0)=>$t[t]+` the '${e}' Value`,$t=["Gets","Checks existence of","Sets","Deletes","Sets part of",ke,"Gets "+_e,"Sets "+_e,Re+" whenever",He+"set",He+"add",He+"set part of",He+"delete","Renders","Gets "+_e+qe,"Sets"+qe,"Deletes"+qe],it=[c,"has","set","del","set","forEach",u,l],pt=[De,p,Qe+i+Ze+$,re+i,Qe+C+Ze+$,re+C,Qe+g+Ze+$,re+g,"invalid Cell changes",y,Qe+w+Ze+$,re+w,"invalid Value changes",Qe+"sorted "+C+Ze+$,Qe+g+Ze+$+" anywhere",Qe+"number of Rows"],bt=[l,"tabular ","keyed value "],Ct=e=>new Set(P(e)||x(e)?e:[e]),ht=(e,t)=>null==e?void 0:e.add(t),mt=/[^A-Za-z]+/,gt=/[^A-Za-z0-9]+/,ft=/^( *)\/\*\* *(.*?) *\*\/$/gm,wt=(e,t,l)=>e.substring(t,l),yt=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):(ae(e,n,l),n)},Tt=e=>e.replace(ft,((e,t,l)=>{const a=77-Vt(t);return`${t}/**\n${l.replace(RegExp(`([^\\n]{1,${a}})(\\s|$)`,"g"),t+" * $1\n")}${t} */`})),Vt=e=>e.length,xt=e=>e.flat(1e3),Rt=(e,t=0)=>D(j(e.split(gt),((e,l)=>(l>0||t?oe:de)(wt(e,0,1))+wt(e,1)))),kt=e=>oe(D((e&&!mt.test(e[0])?e:" "+e).split(gt),"_")),Pt=e=>`/** ${e}. */`,St=(...e)=>D(G(e,(e=>e)),", "),At=(...e)=>"{"+D(e,"; ")+"}",Ot=(...e)=>At(...j(e,(e=>"readonly "+e))),Et=()=>{const e=[Y(),Y(),Y(),Y()],t=Y(),a=Y(),n=e=>{const t=e.indexOf(" as ");return-1!=t?e.substring(t+4):e};return[(...e)=>D(xt(e),"\n"),(t,l,...a)=>E(a,(a=>E([0,1],(n=>(null!=t?t:n)==n?ht(ne(e[n],l,Ct),a):0)))),(e,a,n,o=l,d=1)=>vt(t,e,[a,n,o,d]),(e,t,l)=>vt(a,e,P(l)?[`(${t}) => {`,l,"}"]:[`(${t}) => ${l}`]),(e,t)=>ee(a,e)===t?e:vt(a,e,t),(t=0)=>j([...O(le(e[t],((e,t)=>`import {${D(O(q(e),((e,t)=>n(e)>n(t)?1:-1)),", ")}} from '${t}';`)),((e,t)=>yt(e)!=yt(t)?yt(e)?-1:1:e>t?1:-1)),l],(e=>e.replace("{React}","React"))),()=>le(t,(([e,t,a,n],o)=>[Pt(t),`${n?Ce+" ":l}type ${o}${a} = ${e};`,l])),()=>le(a,((e,t)=>(e=P(e)?e:[e],L(e,M(e)+";"),[`const ${t} = ${z(e)}`,e,l])))]},Dt=e=>{const t=new WeakMap;return l=>(t.has(l)||t.set(l,e(l)),t.get(l))},jt=(e,t,l)=>[t=>_(e,((e,a)=>t(a,Rt(a,1),l(kt(a),`'${a}'`)))),(t,a)=>_(e[t],((e,t)=>a(t,e[r],e[s],l(kt(t),`'${t}'`),Rt(t,1)))),e=>_(t,((t,a)=>e(a,t[r],t[s],l(kt(a),`'${a}'`),Rt(a,1))))],Nt=(e,t,a,n)=>[(n,o)=>{const d=n+": "+o,r=e(p,At(...t((e=>`'${e}'?: {[rowId: Id]: `+At(...a(e,((e,t,a)=>`'${e}'${x(a)?"?":l}: ${t}`)))+"}"))),Xe(1,5)),s=e(p+Fe,At(...t((e=>`'${e}'?: {[rowId: Id]: `+At(...a(e,((e,t)=>`'${e}'?: ${t}`)))+"}"))),Xe(1,5,1)),c=e(i+he,"keyof "+r,"A "+i+" Id in "+De),u=`<TId extends ${c}>`,$=e(i,ve+`<${r}[TId]>`,"A "+i+" in "+De,u),w=e(i+Fe,ve+`<${s}[TId]>`,"A "+i+" in "+De+Ue,u),y=e(C,$+"<TId>[Id]","A "+C+" in a "+i,u),v=e(C+Fe,w+"<TId>[Id]","A "+C+" in a "+i+Ue,u),T=e(g+he,`Extract<keyof ${y}<TId>, Id>`,"A "+g+" Id in a "+C,u),V=e(g,ve+`<${r}[TId]>[Id][CId]`,"A "+g+" in a "+C,`<TId extends ${c}, CId extends ${T}<TId>>`),R=e("CellIdCellArray",`CId extends ${T}<TId> ? [cellId: CId, cell: ${V}<TId, CId>] : never`,g+" Ids and types in a "+C,`<TId extends ${c}, CId = ${T}<TId>>`,0),k=e(g+ce,`(...[cellId, cell]: ${R}<TId>)`+Be,at(re+g+" Id, and "+g),u),P=e(C+ce,"(rowId: Id, forEachCell: (cellCallback: CellCallback<TId>) "+Be+") "+Be,at(re+C+" Id, and a "+g+" iterator"),u),S=e(i+g+ce,`(cellId: ${T}<TId>, count: number) `+Be,at(re+g+" Id, and count of how many times it appears"),u),A=e("TableIdForEachRowArray",`TId extends ${c} ? [tableId: TId, forEachRow: (rowCallback: ${P}<TId>)${Be}] : never`,i+" Ids and callback types",`<TId = ${c}>`,0),O=e(i+ce,`(...[tableId, forEachRow]: ${A})`+Be,at(re+i+" Id, and a "+C+" iterator"),l),E=e("TableIdRowIdCellIdArray",`TId extends ${c} ? [tableId: TId, rowId: Id, cellId: ${T}<TId>] : never`,"Ids for GetCellChange",`<TId = ${c}>`,0),D=e("GetCellChange",`(...[tableId, rowId, cellId]: ${E}) => CellChange`,se+" returning information about any Cell's changes during a "+Ge),j=e(p+I,`(${d}, getCellChange: ${D}${ye})`+Be,nt(1)),N=e(b+I,`(${d})`+Be,nt(2)),G=e(i+I,`(${d}, tableId: ${c}, getCellChange: ${D}${ye})`+Be,nt(3)),L=e(i+f+I,`(${d}, tableId: ${c})`+Be,nt(14,3)),M=e(C+"Count"+I,`(${d}, tableId: ${c})`+Be,nt(15,3)),J=e(h+I,`(${d}, tableId: ${c})`+Be,nt(4,3)),z=e(m+I,"("+St(d,"tableId: "+c,"cellId: Id"+ye,"descending: boolean","offset: number","limit: number"+ye,"sortedRowIds: Ids")+")"+Be,nt(13,3)),W=e(C+I,"("+St(""+d,"tableId: "+c,Pe,`getCellChange: ${D}${ye}`)+")"+Be,nt(5,3)),B=e(f+I,"("+St(""+d,"tableId: "+c,Pe)+")"+Be,nt(6,5)),F=e("CellListenerArgsArrayInner",`CId extends ${T}<TId> ? [${d}, tableId: TId, ${Pe}, cellId: CId, newCell: ${V}<TId, CId> ${ye}, oldCell: ${V}<TId, CId> ${ye}, getCellChange: ${D} ${ye}] : never`,"Cell args for CellListener",`<TId extends ${c}, CId = ${T}<TId>>`,0),U=e("CellListenerArgsArrayOuter",`TId extends ${c} ? `+F+"<TId> : never","Table args for CellListener",`<TId = ${c}>`,0);return[r,s,c,$,w,y,v,T,V,k,P,S,O,j,N,G,L,M,J,z,W,B,e(g+I,`(...[${n}, tableId, rowId, cellId, newCell, oldCell, getCellChange]: ${U})`+Be,nt(7,5)),e(me+g+I,`(${d}, tableId: Id, ${Pe}, cellId: Id, invalidCells: any[])`+Be,nt(8))]},(t,a)=>{const o=t+": "+a,d=e(y,At(...n(((e,t,a)=>`'${e}'${x(a)?"?":l}: ${t}`))),Xe(2,5)),r=e(y+Fe,At(...n(((e,t)=>`'${e}'?: ${t}`))),Xe(2,5,1)),s=e(w+he,"keyof "+d,"A "+w+" Id in "+De),c=e(w,ve+`<${d}[VId]>`,"A "+w+" Id in "+De,`<VId extends ${s}>`),u=e("ValueIdValueArray",`VId extends ${s} ? [valueId: VId, value: ${c}<VId>] : never`,w+" Ids and types in "+De,`<VId = ${s}>`,0),$=e(w+ce,`(...[valueId, value]: ${u})`+Be,at(re+w+" Id, and "+w)),i=e("GetValueChange",`(valueId: ${s}) => ValueChange`,se+" returning information about any Value's changes during a "+Ge),p=e(y+I,`(${o}, getValueChange: ${i}${ye})`+Be,nt(9)),b=e(v+I,`(${o})`+Be,nt(10)),C=e("ValueListenerArgsArray",`VId extends ${s} ? [${o}, valueId: VId, newValue: ${c}<VId> ${ye}, oldValue: ${c}<VId> ${ye}, getValueChange: ${i} ${ye}] : never`,"Value args for ValueListener",`<VId = ${s}>`,0);return[d,r,s,c,$,p,b,e(w+I,`(...[${t}, valueId, newValue, oldValue, getValueChange]: `+C+")"+Be,nt(11)),e(me+w+I,`(${o}, valueId: Id, invalidValues: any[])`+Be,nt(12))]},(t,l)=>e(je+I,`(${t}: ${l}, getTransactionChanges: GetTransactionChanges, getTransactionLog: GetTransactionLog)`+Be,se+" listening to the completion of a "+Ge)],Gt=(e,t=l,a=l)=>`store.${e}(${t})`+(a?" as "+a:l),Lt=(e,t=l)=>`fluent(() => ${Gt(e,t)})`,Mt=(e,t=l,a=l)=>`store.${e}(${t?t+", ":l}proxy(listener)${a?", "+a:l})`,Jt=(e,a,n)=>{const[d,c,T,V,R,P,S,A]=Et(),[O,j,N]=jt(e,a,R),[G,M,z]=Nt(T,O,j,N),W=Y(),B=(e=0)=>le(W,(([t,a,n,o,d],r)=>{const s=e?[r+`: ${d}(${t}): ${a} => ${n},`]:[r+d+`(${t}): ${a};`];return e||J(s,Pt(o)),L(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(it[e]+t+(4==e?Te:l)+a,d,n,(n==Q?Lt:Gt)(it[e]+(4==e?Te:l)+a,r,e?void 0:n),o,s),_=(e,t,a,n=l,o=l,d=1,r=l)=>F(u+e+I,(n?n+", ":l)+fe+": "+t+(d?", mutator?: boolean":l),he,Mt(u+e+I,o,d?"mutator":l),a,r),Z=`./${Rt(n)}.d`,Q=Rt(n,1),K=Rt(Q),X=[],ne=Y();let oe=[],de=[];if(c(1,Z,Q,`create${Q} as create${Q}Decl`),H(e))c(null,t,p);else{c(0,t,"CellChange"),c(null,t,$);const[e,a,n,d,I,u,w,y,v,V,P,S,A,N,M,J,z,W,B,F,H,te,le,de]=G(K,Q),re=Y();O(((e,t)=>{const l=`<'${e}'>`,a=[T(t+i,d+l,ke+` the '${e}' `+i),T(t+i+Fe,I+l,ke+` the '${e}' `+i+Ue),T(t+C,u+l,Ye(e)),T(t+C+Fe,w+l,Ye(e,1)),T(t+g+he,y+l,`A Cell Id for the '${e}' `+i),T(t+g+ce,V+l,at(`a Cell Id and value from a Row in the '${e}' `+i)),T(t+C+ce,P+l,at(`a Row Id from the '${e}' Table, and a Cell iterator`)),T(t+i+g+ce,S+l,at(`a Cell Id from anywhere in the '${e}' Table, and a count of how many times it appears`))];ae(re,e,a),c(1,Z,...a)})),c(1,Z,e,a,n,y,A,N,M,J,z,W,B,F,H,te,le,de),oe=[e,a,n,y,N,M,J,z,W,B,F,H,te,le,re],E([[e],[o],[Q,"tables: "+a,"tables"],[Q]],(([e,t,a],n)=>U(n,l,p,e,Xe(1,n),t,a))),U(0,l,b,n+Ee,et(i,De)),U(5,l,i,We,tt(i,De),"tableCallback: "+A,"tableCallback as any"),O(((e,t,a)=>{const[n,d,r,s,I,c,u,p]=ee(re,e);E([[n],[o],[Q,"table: "+d,", table"],[Q]],(([n,o,d=l],r)=>U(r,t,i,n,st(e,r),o,a+d))),U(0,t,i+f,$,et(g,"the whole of "+dt(e)),l,a),U(5,t,i+g,We,tt(i+g,"the whole of "+dt(e)),"tableCellCallback: "+p,a+", tableCellCallback as any"),U(0,t,C+"Count","number","Gets the number of Rows in the "+dt(e),l,a),U(0,t,h,$,et(C,dt(e)),l,a),U(0,t,m,$,et(C,dt(e),1),"cellId?: "+I+Oe,a+", cellId, descending, offset, limit"),U(5,t,C,We,tt(C,dt(e)),"rowCallback: "+u,a+", rowCallback as any"),E([[r],[o],[Q,", row: "+s,", row"],[Q],[Q,", partialRow: "+s,", partialRow"]],(([n,o=l,d=l],r)=>U(r,t,C,n,It(e,r),Pe+o,a+", rowId"+d))),U(6,t,C,he+ye,"Add a new Row to "+dt(e),"row: "+s+", reuseIds?: boolean",a+", row, reuseIds"),U(0,t,f,I+Ee,et(g,rt(e)),Pe,a+", rowId"),U(5,t,g,We,tt(g,rt(e)),Pe+", cellCallback: "+c,a+", rowId, cellCallback as any"),j(e,((n,d,r,s,I)=>{const c="Map"+Rt(d,1);ae(ne,d,c);const u=d+(x(r)?ye:l);E([[u],[o],[Q,`, cell: ${d} | `+c,", cell as any"],[Q]],(([o,d=l,r=l],c)=>U(c,t+I,g,o,ct(e,n,c),Pe+d,a+", rowId, "+s+r))),U(1,t+I,i+g,o,$t[1]+` the '${n}' Cell anywhere in `+dt(e),l,a+", "+s)}))})),U(0,l,p+ge,ge,Xe(1,6)),U(2,l,p+ge,Q,Xe(1,7),"tablesJson: "+ge,"tables"+ge),_(p,N,Xe(1,8)+" changes"),_(b,M,ot(2,0,1)),_(i,J,ot(3,0),`tableId: ${n} | null`,"tableId"),_(i+f,z,ot(14,3,1),`tableId: ${n} | null`,"tableId"),_(C+"Count",W,ot(15,3),`tableId: ${n} | null`,"tableId"),_(h,B,ot(4,3,1),`tableId: ${n} | null`,"tableId"),_(m,F,ot(13,3,1),St("tableId: TId",`cellId: ${y}<TId>`+ye,"descending: boolean","offset: number","limit: number"+ye),St("tableId","cellId","descending","offset","limit"),1,"<TId extends TableId>"),_(C,H,ot(5,3),`tableId: ${n} | null, rowId: IdOrNull`,"tableId, rowId"),_(f,te,ot(6,5,1),`tableId: ${n} | null, rowId: IdOrNull`,"tableId, rowId"),_(g,le,ot(7,5),`tableId: ${n} | null, rowId: IdOrNull, cellId: ${D(O((e=>{var t,a;return null!=(a=null==(t=ee(re,e))?void 0:t[4])?a:l}))," | ")} | null`,"tableId, rowId, cellId"),_(me+g,de,Re+" whenever an invalid Cell change was attempted","tableId: IdOrNull, rowId: IdOrNull, cellId: IdOrNull","tableId, rowId, cellId"),c(1,Z,...q(ne)),L(X,".set"+p+Se+"({",xt(O(((e,t,a)=>[`[${a}]: {`,...j(e,((e,t,a,n)=>`[${n}]: {[${R(kt(r),`'${r}'`)}]: ${R(kt(t),`'${t}'`)}${x(a)?l:`, [${R(kt(s),`'${s}'`)}]: `+(k(a)?R(kt(a),`'${a}'`):a)}},`)),"},"]))),"})")}if(H(a))c(null,t,y);else{const[e,a,n,d,I,u,$,i,p]=M(K,Q);c(1,Z,e,a,n,I,u,$,i,p),de=[e,a,n,u,$,i],E([[e],[o],[Q,"values: "+a,"values"],[Q],[Q,"partialValues: "+a,"partialValues"]],(([e,t,a],n)=>U(n,l,y,e,Xe(2,n),t,a))),U(0,l,v,n+Ee,et(w,De)),U(5,l,w,"void",tt(w,De),"valueCallback: "+I,"valueCallback as any"),N(((e,t,a,n,d)=>{const r="Map"+Rt(t,1);ae(ne,t,r),E([[t],[o],[Q,`value: ${t} | `+r,", value as any"],[Q]],(([t,a,o=l],r)=>U(r,d,w,t,ut(e,r),a,n+o)))})),U(0,l,y+ge,ge,Xe(2,6)),U(2,l,y+ge,Q,Xe(2,7),"valuesJson: "+ge,"values"+ge),_(y,u,Xe(2,8)+" changes"),_(v,$,ot(10,0,1)),_(w,i,ot(11,0),`valueId: ${n} | null`,"valueId"),_(me+w,p,Re+" whenever an invalid Value change was attempted","valueId: IdOrNull","valueId"),c(1,Z,...q(ne)),c(0,t,"ValueChange"),L(X,".set"+y+Se+"({",N(((e,t,a,n)=>[`[${n}]: {[${R(kt(r),`'${r}'`)}]: ${R(kt(t),`'${t}'`)}${x(a)?l:`, [${R(kt(s),`'${s}'`)}]: `+(k(a)?R(kt(a),`'${a}'`):a)}},`])),"})")}U(0,l,"Content",`[${p}, ${y}]`,Xe(0,0)),U(2,l,"Content",Q,Xe(0,2),`[tables, values]: [${p}, ${y}]`,"[tables, values]"),U(2,l,Ne,Q,`Applies a set of ${Ne} to the Store`,"transactionChanges: "+Ne,"transactionChanges"),te(ne,((e,t)=>T(t,`(cell: ${e}${ye}) => `+e,`Takes a ${e} Cell value and returns another`))),c(null,t,"DoRollback",he,"IdOrNull",ge,"Store",Ne),c(0,t,"Get"+Ne,"GetTransactionLog"),U(0,l,ge,ge,Xe(0,6)),U(2,l,ge,Q,Xe(0,7),"tablesAndValuesJson: "+ge,"tablesAndValuesJson"),U(7,l,Ge,"Return",Le,be,"actions, doRollback","<Return>"),U(7,l,"start"+je,Q,Me),U(7,l,"finish"+je,Q,Je,pe,"doRollback");const re=z(K,Q);return _("Start"+je,re,Re+" just before the start of the "+Ge,l,l,0),_("WillFinish"+je,re,Re+" just before "+ze,l,l,0),_("DidFinish"+je,re,Re+" just after "+ze,l,l,0),U(7,l,"call"+I,Q,"Manually provoke a listener to be called","listenerId: Id","listenerId"),U(3,l,I,Q,"Remove a listener that was previously added to "+De,"listenerId: Id","listenerId"),F("getStore",l,"Store","store",$t[0]+" the underlying Store object"),c(1,t,"createStore"),c(1,Z,Q,`create${Q} as create${Q}Decl`,re),R("store",["createStore()",...X]),V("fluent","actions: () => Store",["actions();",`return ${K};`]),V("proxy","listener: any",`(_: Store, ...params: any[]) => listener(${K}, ...params)`),R(K,["{",...B(1),"}"]),[d(...P(0),...S(),Ce+" interface "+Q+" {",...B(0),"}",l,Pt(`Creates a ${Q} object`),Ce+" function create"+Q+"(): "+Q+";"),d(...P(1),Ce+" const create"+Q+": typeof create"+Q+"Decl = () => {",...A(),`return Object.freeze(${K});`,"};"),oe,de]},zt=e=>c+e,Wt=e=>St(zt(e),zt(e)+$e),Bt="debugIds?: boolean",Ft="debugIds={debugIds}",Ut="then"+ie,_t="Parameter",Zt=": (parameter: "+_t+", store: Store) => ",Ht="const contextValue = useContext(Context);",Qt=", based on a parameter",qt=": ",Kt="<"+_t+",>",Xt=_t+"ized"+ce+"<"+_t+">",Yt="rowId",el="rowId={rowId}",tl=", separator, debugIds",ll="separator?: ReactElement | string",al="then?: (store: Store",nl=St(al+")"+Be,Ut),ol="then, then"+$e,dl=Yt+qt+he,rl="View",sl=(e,...t)=>St(...t,fe+": "+e,fe+ie,"mutator?: boolean"),Il=(...e)=>St(...e,fe,fe+$e,"mutator"),cl=(e,a,n,o,d)=>{const[r,s,c,u,T,V,R,k]=Et(),[P,S,A]=jt(e,a,T),O=`./${Rt(n)}.d`,E=`./${Rt(n)}-ui-react.d`,j="tinybase/ui-react",N=Rt(n,1),G=Rt(N),M=N+"Or"+N+he,z=G+"Or"+N+he,W=G+`={${G}}`,B=Y(),F=(e,t,a,n,o,d=l)=>(s(1,E,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,c=l)=>(s(1,j,`use${t} as use${t}Core`),U(e,St(o,X,I),a,ae+`(${z}, use${t}Core, [`+(d||l)+(c?"], ["+c:l)+"]);",n,r)),Z=(e,t,l,a)=>F(e,t,1,l,a),Q=(e=0)=>le(B,(([t,a,n,o,d],r)=>{const s=e?[Ce+` const ${r}: typeof ${r}Decl = ${d}(${t}): ${1==a?"any":a} =>`,n]:[Ce+` function ${r}${d}(${t}): ${1==a?"ComponentReturnType":a};`];return e||J(s,Pt(o)),L(s,l),s}));s(null,t,he,"Store",ce,_t+"ized"+ce),s(0,j,"ComponentReturnType"),s(1,j,"useCellIds"),s(null,j,"ExtraProps"),s(0,O,N);const q=c(M,N+" | "+he,`Used when you need to refer to a ${N} in a React hook or component`),K=c(xe+Ve,Ot(G+we+N,G+`ById?: {[${G}Id: Id]: ${N}}`),`Used with the ${xe} 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,E,q,K);const X=z+we+q;T("{createContext, useContext, useMemo}","React"),T("Context",`createContext<[${N}?, {[${G}Id: Id]: ${N}}?]>([])`),U("Create"+N,`create: () => ${N}, create`+ie,N,"\n// eslint-disable-next-line react-hooks/exhaustive-deps\nuseMemo(create, createDeps)",`Create a ${N} within a React application with convenient memoization`);const te=U(N,"id?: Id",N+ye,["{",Ht,"return id == null ? contextValue[0] : contextValue[1]?.[id];","}"],`Get a reference to a ${N} from within a ${xe} component context`),ae=u("useHook",z+`: ${q} | undefined, hook: (...params: any[]) => any, preParams: any[], postParams: any[] = []`,[`const ${G} = ${te}(${z} as Id);`,`return hook(...preParams, ((${z} == null || typeof ${z} == 'string')`,`? ${G} : ${z})?.getStore(), ...postParams)`]),ne=u("getProps","getProps: ((id: any) => ExtraProps) | undefined, id: Id","(getProps == null) ? ({} as ExtraProps) : getProps(id)"),oe=u("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;"]),de=u("useCustomOrDefaultCellIds",St("customCellIds: Ids | undefined","tableId: Id","rowId: Id",`${z}?: ${q} | undefined`),[`const defaultCellIds = ${ae}(${z}, useCellIds, [tableId, rowId]);`,"return customCellIds ?? defaultCellIds;"]),se=T("NullComponent","() => null");if(!H(e)){const[e,a,n,d,r,w,y,v,T,V,R,k,A,j,L]=o;s(null,O,e,a,n,r,w,y,v,T,V,R,k,A,j),s(0,O,d),s(1,O,N),s(null,t,$,"IdOrNull");const M=u("tableView",`{${G}, rowComponent, getRowComponentProps, customCellIds`+tl+"}: 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}",el,"customCellIds={customCellIds}",W,Ft,"/>","))",tl,", tableId,",");"]),J=u("getDefaultTableComponent","tableId: Id",D(P(((e,t,l)=>`tableId == ${l} ? ${t}TableView : `)))+se),z=u("getDefaultCellComponent","tableId: Id, cellId: Id",D(P(((e,t,l)=>`tableId == ${l} ? ${D(S(e,((e,l,a,n,o)=>`cellId == ${n} ? `+t+o+"CellView : ")))+se} : `)))+se);_(p,p,e,Xe(1,0)+Ie);const B=_(b,b,n+Ee,et(i,De)+Ie);_(Ae+p+ce,Ae+p+ce,Xt,Xe(1,9)+Qt,St(zt(p)+Zt+a,zt(p)+ie),Wt(p),Kt,St(al,`tables: ${a})`+Be,Ut),ol),_(ue+p+ce,ue+p+ce,ce,Xe(1,12),l,l,l,nl,ol);const F=c(g+Ve,Ot("tableId?: TId","rowId: Id","cellId?: CId",G+we+N,Bt),lt(re+g),`<TId extends ${n}, CId extends ${d}<TId>>`),U=c(C+Ve,Ot("tableId?: TId","rowId: Id",G+we+N,"cellComponents?: {readonly [CId in "+d+`<TId>]?: ComponentType<${F}<TId, CId>>;}`,`getCellComponentProps?: (cellId: ${d}<TId>) => ExtraProps`,`customCellIds?: ${d}<TId>[]`,ll,Bt),lt(re+C),`<TId extends ${n}>`),H=c(i+Ve,Ot("tableId?: TId",G+we+N,`rowComponent?: ComponentType<${U}<TId>>`,"getRowComponentProps?: (rowId: Id) => ExtraProps","customCellIds?: CellId<TId>[]",ll,Bt),lt(re+i),`<TId extends ${n}>`),Q=c("Sorted"+i+Ve,Ot("tableId?: TId","cellId?: "+d+"<TId>","descending?: boolean","offset?: number","limit?: number",G+we+N,`rowComponent?: ComponentType<${U}<TId>>`,"getRowComponentProps?: (rowId: Id) => ExtraProps","customCellIds?: CellId<TId>[]",ll,Bt),lt(re+"sorted "+i),`<TId extends ${n}>`),q=c(p+Ve,Ot(G+we+N,"tableComponents?: {readonly [TId in "+n+`]?: ComponentType<${H}<TId>>;}`,`getTableComponentProps?: (tableId: ${n}) => ExtraProps`,ll,Bt),lt(Ke(1,1)));s(1,E,q,H,Q,U,F),Z(p+rl,"{"+G+", tableComponents, getTableComponentProps"+tl+"}: "+q,[oe+`(${B}(${G}).map((tableId) => {`,"const Table = (tableComponents?.[tableId] ?? "+J+"(tableId)) as React.ComponentType<TableProps<typeof tableId>>;","return <Table",`{...${ne}(getTableComponentProps, tableId)}`,"tableId={tableId}","key={tableId}",W,Ft,"/>;","}), separator)"],Xe(1,13)+Ie),P(((e,t,a)=>{const[n,o,d,r,I]=ee(L,e);s(null,O,n,o,d,r,I),_(t+i,i,n,st(e)+Ie,l,a),_(t+i+f,i+f,$,et(g,"the whole of "+dt(e))+Ie,l,a);const c=_(t+h,h,$,et(C,dt(e))+Ie,l,a),u=_(t+m,m,$,et(C,dt(e),1)+Ie,"cellId?: "+I+", descending?: boolean, offset?: number, limit?: number",a+", cellId, descending, offset, limit");_(t+C,C,d,It(e)+Ie,dl,St(a,Yt)),_(t+f,f,I+Ee,et(g,rt(e))+Ie,dl,St(a,Yt)),_(Ae+t+i+ce,Ae+i+ce,Xt,st(e,9)+Qt,St(zt(i)+Zt+o,zt(i)+ie),St(a,Wt(i)),Kt,St(al,`table: ${o})`+Be,Ut),ol),_(ue+t+i+ce,ue+i+ce,ce,st(e,12),l,a,l,nl,ol),_(Ae+t+C+ce,Ae+C+ce,Xt,It(e,9)+Qt,St(dl,zt(C)+Zt+r,zt(C)+ie),St(a,Yt,Wt(C)),Kt,St(al,`row: ${r})`+Be,Ut),ol),_("Add"+t+C+ce,"Add"+C+ce,Xt,It(e,10)+Qt,St(zt(C)+Zt+r,zt(C)+ie),St(a,Wt(C)),Kt,"then?: ("+St(dl+ye,"store: Store","row: "+r+")"+Be,"then"+ie)+", reuseRowIds?: boolean",ol+", reuseRowIds"),_(Ae+t+Te+C+ce,Ae+Te+C+ce,Xt,It(e,11)+Qt,St(dl,zt(Te+C)+Zt+r,zt(Te+C)+ie),St(a,Yt,Wt(Te+C)),Kt,St(al,`partialRow: ${r})`+Be,Ut),ol),_(ue+t+C+ce,ue+C+ce,ce,It(e,12),dl,St(a,Yt),l,nl,ol);const p=Z(t+C+rl,"{rowId, "+G+", cellComponents, getCellComponentProps, customCellIds"+tl+`}: ${U}<'${e}'>`,[oe+`(${de}(customCellIds, `+a+`, rowId, ${G}).map((cellId: ${I}) => {`,"const Cell = (cellComponents?.[cellId] ?? "+z+`(${a}, cellId)) as React.ComponentType<CellProps<typeof `+a+", typeof cellId>>;","return <Cell",`{...${ne}(getCellComponentProps, cellId)} `,"key={cellId}",`tableId={${a}}`,el,"cellId={cellId}",W,Ft,"/>;","})"+tl+", rowId)"],It(e,13)+Ie);Z(t+"Sorted"+i+rl,"{cellId, descending, offset, limit, ...props}: "+Q+`<'${e}'>`,M+"(props, "+u+`(cellId, descending, offset, limit, props.${G}), ${a}, ${p});`,st(e,13)+", sorted"+Ie),Z(t+i+rl,`props: ${H}<'${e}'>`,M+"(props, "+c+`(props.${G}), ${a}, ${p});`,st(e,13)+Ie),S(e,((n,o,d,r,I)=>{const c="Map"+Rt(o,1);s(0,O,c),s(1,O,c);const u=_(t+I+g,g,o+(x(d)?ye:l),ct(e,n)+Ie,dl,St(a,Yt,r));_(Ae+t+I+g+ce,Ae+g+ce,Xt,ct(e,n,9)+Qt,St(dl,zt(g)+Zt+o+" | "+c,zt(g)+ie),St(a,Yt,r,Wt(g)),Kt,St(al,`cell: ${o} | ${c})`+Be,Ut),ol),_(ue+t+I+g+ce,ue+g+ce,ce,ct(e,n,12),St(dl,"forceDel?: boolean"),St(a,Yt,r,"forceDel"),l,nl,ol),Z(t+I+g+rl,`{rowId, ${G}, debugIds}: `+F+`<'${e}', '${n}'>`,[oe+`('' + ${u}(rowId, `+G+`) ?? '', undefined, debugIds, ${r})`],ct(e,n,13)+Ie)}))}));const K=D(P((e=>{var t,a;return null!=(a=null==(t=ee(L,e))?void 0:t[4])?a:l}))," | ");_(p+I,p+I,We,Xe(1,8)+" changes",sl(r),Il()),_(b+I,b+I,We,ot(2,0,1),sl(w),Il()),_(i+I,i+I,We,ot(3,0),sl(y,`tableId: ${n} | null`),Il("tableId")),_(i+f+I,i+f+I,We,ot(14,3,1),sl(v,`tableId: ${n} | null`),Il("tableId")),_(h+I,h+I,We,ot(4,3,1),sl(V,`tableId: ${n} | null`),Il("tableId")),_(m+I,m+I,We,ot(13,3,1),sl(R,`tableId: ${n} | null`,"cellId: "+K+ye,"descending: boolean","offset: number","limit: number"+ye),Il("tableId","cellId","descending","offset","limit")),_(C+I,C+I,We,ot(5,3),sl(k,`tableId: ${n} | null`,Yt+": IdOrNull"),Il("tableId",Yt)),_(f+I,f+I,We,ot(6,5,1),sl(A,`tableId: ${n} | null`,Yt+": IdOrNull"),Il("tableId",Yt)),_(g+I,g+I,We,ot(7,5),sl(j,`tableId: ${n} | null`,Yt+": IdOrNull",`cellId: ${K} | null`),Il("tableId",Yt,"cellId"))}if(!H(a)){const[e,t,a,n,o,r]=d;s(null,O,...d),s(1,O,N);const $=u("getDefaultValueComponent","valueId: Id",D(A(((e,t,l,a,n)=>`valueId == ${a} ? `+n+"ValueView : ")))+se);_(y,y,e,Xe(2,0)+Ie);const i=_(v,v,a+Ee,et(w,De)+Ie);_(Ae+y+ce,Ae+y+ce,Xt,Xe(2,9)+Qt,St(zt(y)+Zt+t,zt(y)+ie),Wt(y),Kt,St(al,`values: ${t})`+Be,Ut),ol),_(Ae+Te+y+ce,Ae+Te+y+ce,Xt,Xe(2,11)+Qt,St(zt(Te+y)+Zt+t,zt(Te+y)+ie),Wt(Te+y),Kt,St(al,`partialValues: ${t})`+Be,Ut),ol),_(ue+y+ce,ue+y+ce,ce,Xe(2,12),l,l,l,nl,ol);const p=c(w+Ve,Ot("valueId?: VId",G+we+N,Bt),lt("a Value"),`<VId extends ${a}>`),b=c(y+Ve,Ot(G+we+N,"valueComponents?: {readonly [VId in "+a+`]?: ComponentType<${p}<VId>>;}`,`getValueComponentProps?: (valueId: ${a}) => ExtraProps`,ll,Bt),lt(Ke(2,1)));s(1,E,b,p),Z(y+rl,"{"+G+", valueComponents, getValueComponentProps"+tl+"}: "+b,[oe+`(${i}(${G}).map((valueId) => {`,"const Value = valueComponents?.[valueId] ?? "+$+"(valueId);","return <Value",`{...${ne}(getValueComponentProps, valueId)}`,"key={valueId}",W,Ft,"/>;","}), separator)"],Xe(2,13)+Ie),A(((e,t,a,n,o)=>{const d="Map"+Rt(t,1);s(0,O,d),s(1,O,d);const r=_(o+w,w,t,ut(e)+Ie,l,n);_(Ae+o+w+ce,Ae+w+ce,Xt,ut(e,9)+Qt,St(zt(w)+Zt+t+" | "+d,zt(w)+ie),St(n,Wt(w)),Kt,St(al,`value: ${t} | ${d})`+Be,Ut),ol),_(ue+o+w+ce,ue+w+ce,ce,ut(e,12),l,n,l,nl,ol),Z(o+w+rl,`{${G}, debugIds}: ${p}<'${e}'>`,[oe+`('' + ${r}(`+G+`) ?? '', undefined, debugIds, ${n})`],ut(e,13)+Ie)})),_(y+I,y+I,We,Xe(2,8)+" changes",sl(n),Il()),_(v+I,v+I,We,ot(10,0,1),sl(o),Il()),_(w+I,w+I,We,ot(11,0),sl(r,`valueId: ${a} | null`),Il("valueId"))}return Z(xe,`{${G}, ${G}ById, children}: `+K+" & {children: React.ReactNode}",["{",Ht,"return (","<Context."+xe,"value={useMemo(",`() => [${G} ?? contextValue[0], {...contextValue[1], ...${G}ById}],`,`[${G}, ${G}ById, contextValue],`,")}>","{children}",`</Context.${xe}>`,");","}"],"Wraps part of an application in a context that provides default objects to be used by hooks and components within"),[r(...V(0),...R(),...Q(0)),r(...V(1),...k(),...Q(1))]},ul=(e,t,a)=>{if(H(e)&&H(t))return[l,l,l,l];const[n,o,d,r]=Jt(e,t,a);return[n,o,...cl(e,t,a,d,r)]},$l=JSON.parse;var il=Object.defineProperty,pl=Object.defineProperties,bl=Object.getOwnPropertyDescriptors,Cl=Object.getOwnPropertySymbols,hl=Object.prototype.hasOwnProperty,ml=Object.prototype.propertyIsEnumerable,gl=(e,t,l)=>t in e?il(e,t,{enumerable:!0,configurable:!0,writable:!0,value:l}):e[t]=l,fl=(e,t)=>{for(var l in t||(t={}))hl.call(t,l)&&gl(e,l,t[l]);if(Cl)for(var l of Cl(t))ml.call(t,l)&&gl(e,l,t[l]);return e},wl=(e,t)=>pl(e,bl(t)),yl=(e,t,l)=>new Promise(((a,n)=>{var o=e=>{try{r(l.next(e))}catch(e){n(e)}},d=e=>{try{r(l.throw(e))}catch(e){n(e)}},r=e=>e.done?a(e.value):Promise.resolve(e.value).then(o,d);r((l=l.apply(e,t)).next())}));const vl={parser:"typescript",singleQuote:!0,trailingComma:"all",bracketSpacing:!1,jsdocSingleLineComment:!1},Tl=Dt((e=>{const t=()=>{const t=$l(e.getTablesSchemaJson());return!H(t)||A(e.getTableIds(),(l=>{const a=e.getRowIds(l),n=Y();if(A(a,(t=>A(e.getCellIds(l,t),(a=>{const o=e.getCell(l,t,a),d=ne(n,a,(()=>[S(o),Y(),[0],0])),[r,s,[I]]=d,c=ne(s,o,(()=>0))+1;return c>I&&(d[2]=[c,o]),ae(s,o,c),d[3]++,r==S(o)})))))return t[l]={},K(n,(([e,,[,n],o],d)=>{t[l][d]=fl({[r]:e},o==N(a)?{[s]:n}:{})})),1}))?t:{}},l=()=>{const t=$l(e.getValuesSchemaJson());return H(t)&&e.forEachValue(((e,l)=>{t[e]={[r]:S(l)}})),t},a=e=>ul(t(),l(),e),n=e=>yl(void 0,null,(function*(){const t=["d.ts","ts","d.ts","tsx"];let l;try{l=(yield import("prettier")).format}catch(e){l=e=>e}return j(a(e),((e,a)=>Tt(l(e,wl(fl({},vl),{filepath:"_."+t[a]})))))}));return F({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})})),fl({totalTables:l,totalRows:a,totalCells:n,totalValues:N(e.getValueIds()),jsonLength:Vt(e.getJson())},t?{detail:{tables:o}}:{})},getStoreTablesSchema:t,getStoreValuesSchema:l,getStoreApi:a,getPrettyStoreApi:n,getStore:()=>e})}));export{Tl as createTools};
|
|
1
|
+
const e=e=>typeof e,t="tinybase",l="",n=",",a=e(l),o=e(!0),d=e(0),r="type",s="default",I="Listener",c="get",u="add",i="Ids",$="Table",p=$+"s",b=$+i,C="Row",h=C+i,m="Sorted"+C+i,g="Cell",f=g+i,w="Value",y=w+"s",v=w+i;var T=(e,t,l)=>new Promise(((n,a)=>{var o=e=>{try{r(l.next(e))}catch(e){a(e)}},d=e=>{try{r(l.throw(e))}catch(e){a(e)}},r=e=>e.done?n(e.value):Promise.resolve(e.value).then(o,d);r((l=l.apply(e,t)).next())}));const V=Promise,x=isFinite,R=(e,t)=>e instanceof t,P=e=>null==e,k=e=>e==a||e==o,S=t=>e(t)==a,A=e=>Array.isArray(e),O=e=>T(void 0,null,(function*(){return V.all(e)})),E=t=>{const l=e(t);return k(l)||l==d&&x(t)?l:void 0},D=(e,t)=>e.every(t),j=(e,t)=>e.sort(t),N=(e,t)=>e.forEach(t),G=(e,t=l)=>e.join(t),L=(e,t)=>e.map(t),M=e=>e.length,J=(e,t)=>e.filter(t),z=(e,...t)=>e.push(...t),W=e=>e.pop(),B=(e,...t)=>e.unshift(...t),F=e=>e.shift(),U=Object,_=U.keys,Z=U.freeze,H=e=>R(e,U)&&e.constructor==U,Q=(e,t)=>L(U.entries(e),(([e,l])=>t(l,e))),q=e=>M(_(e)),K=e=>H(e)&&0==q(e),X=(e,t)=>{var l;return null!=(l=null==e?void 0:e.has(t))&&l},Y=e=>{var t;return[...null!=(t=null==e?void 0:e.values())?t:[]]},ee=(e,t)=>null==e?void 0:e.forEach(t),te=(e,t)=>null==e?void 0:e.delete(t),le=e=>new Map(e),ne=(e,t)=>null==e?void 0:e.get(t),ae=(e,t)=>ee(e,((e,l)=>t(l,e))),oe=(e,t)=>{var l;return L([...null!=(l=null==e?void 0:e.entries())?l:[]],(([e,l])=>t(l,e)))},de=(e,t,l)=>P(l)?(te(e,t),e):null==e?void 0:e.set(t,l),re=(e,t,l)=>(X(e,t)||de(e,t,l()),ne(e,t)),se=e=>e.toUpperCase(),Ie=e=>e.toLowerCase(),ce="a ",ue="A function for",ie=", and registers a listener so that any changes to that result will cause a re-render",$e="Callback",pe="Del",be="Deps",Ce=be+"?: React.DependencyList",he="doRollback?: DoRollback",me="actions: () => Return, "+he,ge="export",fe="Id",we="Invalid",ye="Json",ve=Ie(I),Te="?: ",Ve=" | undefined",xe="NonNullable",Re="Partial",Pe="Props",ke="Provider",Se=`Registers a ${ve} that will be called`,Ae="Represents",Oe="rowId: "+fe,Ee="Schema",De="Set",je=", descending?: boolean, offset?: number, limit?: number",Ne="[]",Ge="the Store",Le="Transaction",Me=Le+"Changes",Je=Ie(Le),ze="Execute a "+Je+" to make multiple mutations",We="Explicitly starts a "+Je,Be="Explicitly finishes a "+Je,Fe="the end of the "+Je,Ue="void",_e=" => "+Ue,Ze="WhenSet",He=" when setting it",Qe=ce+"string serialization of",qe=" ",Ke="Gets a callback that can ",Xe="the ",Ye=" the schema for",et=(e=0,t=0)=>`the ${mt[e]}content of`+(t?qe+Ge:l),tt=(e=0,t,n=0)=>bt[t]+qe+et(e,1)+(n?" when setting it":l),lt=(e,t=0)=>Ae+` a Row when ${t?"s":"g"}etting ${et()} the '${e}' `+$,nt=(e,t,l=0)=>`Gets ${l?"sorted, paginated":"the"} Ids of the ${e}s in `+t,at=(e,t)=>`Calls a function for each ${e} in `+t,ot=e=>"The props passed to a component that renders "+e,dt=e=>"A function that takes "+e,rt=(e,t=0)=>ue+" listening to changes to "+ht[e]+" in "+ht[t],st=(e,t,n=0)=>Se+" whenever "+ht[e]+" in "+ht[t]+" change"+(n?l:"s"),It=e=>`the '${e}' `+$,ct=e=>"the specified Row in "+It(e),ut=(e,t=0)=>bt[t]+` ${et()} `+It(e),it=(e,t=0)=>bt[t]+` ${et()} `+ct(e),$t=(e,t,l=0)=>bt[l]+` the '${t}' Cell for `+ct(e),pt=(e,t=0)=>bt[t]+` the '${e}' Value`,bt=["Gets","Checks existence of","Sets","Deletes","Sets part of",Ae,"Gets "+Qe,"Sets "+Qe,Se+" whenever",Ke+"set",Ke+"add",Ke+"set part of",Ke+"delete","Renders","Gets "+Qe+Ye,"Sets"+Ye,"Deletes"+Ye],Ct=[c,"has","set","del","set","forEach",u,l],ht=[Ge,p,Xe+$+qe+i,ce+$,Xe+C+qe+i,ce+C,Xe+g+qe+i,ce+g,"invalid Cell changes",y,Xe+w+qe+i,ce+w,"invalid Value changes",Xe+"sorted "+C+qe+i,Xe+g+qe+i+" anywhere",Xe+"number of Rows"],mt=[l,"tabular ","keyed value "],gt=e=>new Set(A(e)||P(e)?e:[e]),ft=(e,t)=>null==e?void 0:e.add(t),wt=/[^A-Za-z]+/,yt=/[^A-Za-z0-9]+/,vt=/^( *)\/\*\* *(.*?) *\*\/$/gm,Tt=(e,t,l)=>e.substring(t,l),Vt=e=>e.includes(n),xt=(e,t,l,n=1)=>{const a=`${t}${1==n?"":n}`;return X(e,a)?xt(e,t,l,n+1):(de(e,a,l),a)},Rt=e=>e.replace(vt,((e,t,l)=>{const n=77-Pt(t);return`${t}/**\n${l.replace(RegExp(`([^\\n]{1,${n}})(\\s|$)`,"g"),t+" * $1\n")}${t} */`})),Pt=e=>e.length,kt=e=>e.flat(1e3),St=(e,t=0)=>G(L(e.split(yt),((e,l)=>(l>0||t?se:Ie)(Tt(e,0,1))+Tt(e,1)))),At=e=>se(G((e&&!wt.test(e[0])?e:" "+e).split(yt),"_")),Ot=e=>`/** ${e}. */`,Et=(...e)=>G(J(e,(e=>e)),", "),Dt=(...e)=>"{"+G(e,"; ")+"}",jt=(...e)=>Dt(...L(e,(e=>"readonly "+e))),Nt=()=>{const e=[le(),le(),le(),le()],t=le(),n=le(),a=e=>{const t=e.indexOf(" as ");return-1!=t?e.substring(t+4):e};return[(...e)=>G(kt(e),"\n"),(t,l,...n)=>N(n,(n=>N([0,1],(a=>(null!=t?t:a)==a?ft(re(e[a],l,gt),n):0)))),(e,n,a,o=l,d=1)=>xt(t,e,[n,a,o,d]),(e,t,l)=>xt(n,e,A(l)?[`(${t}) => {`,l,"}"]:[`(${t}) => ${l}`]),(e,t)=>ne(n,e)===t?e:xt(n,e,t),(t=0)=>L([...j(oe(e[t],((e,t)=>`import {${G(j(Y(e),((e,t)=>a(e)>a(t)?1:-1)),", ")}} from '${t}';`)),((e,t)=>Vt(e)!=Vt(t)?Vt(e)?-1:1:e>t?1:-1)),l],(e=>e.replace("{React}","React"))),()=>oe(t,(([e,t,n,a],o)=>[Ot(t),`${a?ge+" ":l}type ${o}${n} = ${e};`,l])),()=>oe(n,((e,t)=>(e=A(e)?e:[e],z(e,W(e)+";"),[`const ${t} = ${F(e)}`,e,l])))]},Gt=e=>{const t=new WeakMap;return l=>(t.has(l)||t.set(l,e(l)),t.get(l))},Lt=(e,t,l)=>[t=>Q(e,((e,n)=>t(n,St(n,1),l(At(n),`'${n}'`)))),(t,n)=>Q(e[t],((e,t)=>n(t,e[r],e[s],l(At(t),`'${t}'`),St(t,1)))),e=>Q(t,((t,n)=>e(n,t[r],t[s],l(At(n),`'${n}'`),St(n,1))))],Mt=(e,t,n,a)=>[(a,o)=>{const d=a+": "+o,r=e(p,Dt(...t((e=>`'${e}'?: {[rowId: Id]: `+Dt(...n(e,((e,t,n)=>`'${e}'${P(n)?"?":l}: ${t}`)))+"}"))),tt(1,5)),s=e(p+Ze,Dt(...t((e=>`'${e}'?: {[rowId: Id]: `+Dt(...n(e,((e,t)=>`'${e}'?: ${t}`)))+"}"))),tt(1,5,1)),c=e($+fe,"keyof "+r,"A "+$+" Id in "+Ge),u=`<TId extends ${c}>`,i=e($,xe+`<${r}[TId]>`,"A "+$+" in "+Ge,u),w=e($+Ze,xe+`<${s}[TId]>`,"A "+$+" in "+Ge+He,u),y=e(C,i+"<TId>[Id]","A "+C+" in a "+$,u),v=e(C+Ze,w+"<TId>[Id]","A "+C+" in a "+$+He,u),T=e(g+fe,`Extract<keyof ${y}<TId>, Id>`,"A "+g+" Id in a "+C,u),V=e(g,xe+`<${r}[TId]>[Id][CId]`,"A "+g+" in a "+C,`<TId extends ${c}, CId extends ${T}<TId>>`),x=e("CellIdCellArray",`CId extends ${T}<TId> ? [cellId: CId, cell: ${V}<TId, CId>] : never`,g+" Ids and types in a "+C,`<TId extends ${c}, CId = ${T}<TId>>`,0),R=e(g+$e,`(...[cellId, cell]: ${x}<TId>)`+_e,dt(ce+g+" Id, and "+g),u),k=e(C+$e,"(rowId: Id, forEachCell: (cellCallback: CellCallback<TId>) "+_e+") "+_e,dt(ce+C+" Id, and a "+g+" iterator"),u),S=e($+g+$e,`(cellId: ${T}<TId>, count: number) `+_e,dt(ce+g+" Id, and count of how many times it appears"),u),A=e("TableIdForEachRowArray",`TId extends ${c} ? [tableId: TId, forEachRow: (rowCallback: ${k}<TId>)${_e}] : never`,$+" Ids and callback types",`<TId = ${c}>`,0),O=e($+$e,`(...[tableId, forEachRow]: ${A})`+_e,dt(ce+$+" Id, and a "+C+" iterator"),l),E=e("TableIdRowIdCellIdArray",`TId extends ${c} ? [tableId: TId, rowId: Id, cellId: ${T}<TId>] : never`,"Ids for GetCellChange",`<TId = ${c}>`,0),D=e("GetCellChange",`(...[tableId, rowId, cellId]: ${E}) => CellChange`,ue+" returning information about any Cell's changes during a "+Je),j=e(p+I,`(${d}, getCellChange: ${D}${Ve})`+_e,rt(1)),N=e(b+I,`(${d})`+_e,rt(2)),G=e($+I,`(${d}, tableId: ${c}, getCellChange: ${D}${Ve})`+_e,rt(3)),L=e($+f+I,`(${d}, tableId: ${c})`+_e,rt(14,3)),M=e(C+"Count"+I,`(${d}, tableId: ${c})`+_e,rt(15,3)),J=e(h+I,`(${d}, tableId: ${c})`+_e,rt(4,3)),z=e(m+I,"("+Et(d,"tableId: "+c,"cellId: Id"+Ve,"descending: boolean","offset: number","limit: number"+Ve,"sortedRowIds: Ids")+")"+_e,rt(13,3)),W=e(C+I,"("+Et(""+d,"tableId: "+c,Oe,`getCellChange: ${D}${Ve}`)+")"+_e,rt(5,3)),B=e(f+I,"("+Et(""+d,"tableId: "+c,Oe)+")"+_e,rt(6,5)),F=e("CellListenerArgsArrayInner",`CId extends ${T}<TId> ? [${d}, tableId: TId, ${Oe}, cellId: CId, newCell: ${V}<TId, CId> ${Ve}, oldCell: ${V}<TId, CId> ${Ve}, getCellChange: ${D} ${Ve}] : never`,"Cell args for CellListener",`<TId extends ${c}, CId = ${T}<TId>>`,0),U=e("CellListenerArgsArrayOuter",`TId extends ${c} ? `+F+"<TId> : never","Table args for CellListener",`<TId = ${c}>`,0);return[r,s,c,i,w,y,v,T,V,R,k,S,O,j,N,G,L,M,J,z,W,B,e(g+I,`(...[${a}, tableId, rowId, cellId, newCell, oldCell, getCellChange]: ${U})`+_e,rt(7,5)),e(we+g+I,`(${d}, tableId: Id, ${Oe}, cellId: Id, invalidCells: any[])`+_e,rt(8))]},(t,n)=>{const o=t+": "+n,d=e(y,Dt(...a(((e,t,n)=>`'${e}'${P(n)?"?":l}: ${t}`))),tt(2,5)),r=e(y+Ze,Dt(...a(((e,t)=>`'${e}'?: ${t}`))),tt(2,5,1)),s=e(w+fe,"keyof "+d,"A "+w+" Id in "+Ge),c=e(w,xe+`<${d}[VId]>`,"A "+w+" Id in "+Ge,`<VId extends ${s}>`),u=e("ValueIdValueArray",`VId extends ${s} ? [valueId: VId, value: ${c}<VId>] : never`,w+" Ids and types in "+Ge,`<VId = ${s}>`,0),i=e(w+$e,`(...[valueId, value]: ${u})`+_e,dt(ce+w+" Id, and "+w)),$=e("GetValueChange",`(valueId: ${s}) => ValueChange`,ue+" returning information about any Value's changes during a "+Je),p=e(y+I,`(${o}, getValueChange: ${$}${Ve})`+_e,rt(9)),b=e(v+I,`(${o})`+_e,rt(10)),C=e("ValueListenerArgsArray",`VId extends ${s} ? [${o}, valueId: VId, newValue: ${c}<VId> ${Ve}, oldValue: ${c}<VId> ${Ve}, getValueChange: ${$} ${Ve}] : never`,"Value args for ValueListener",`<VId = ${s}>`,0);return[d,r,s,c,i,p,b,e(w+I,`(...[${t}, valueId, newValue, oldValue, getValueChange]: `+C+")"+_e,rt(11)),e(we+w+I,`(${o}, valueId: Id, invalidValues: any[])`+_e,rt(12))]},(t,l)=>e(Le+I,`(${t}: ${l}, getTransactionChanges: GetTransactionChanges, getTransactionLog: GetTransactionLog)`+_e,ue+" listening to the completion of a "+Je)],Jt=(e,t=l,n=l)=>`store.${e}(${t})`+(n?" as "+n:l),zt=(e,t=l)=>`fluent(() => ${Jt(e,t)})`,Wt=(e,t=l,n=l)=>`store.${e}(${t?t+", ":l}proxy(listener)${n?", "+n:l})`,Bt=(e,n,a)=>{const[d,c,T,V,x,R,k,A]=Nt(),[O,E,D]=Lt(e,n,x),[j,L,M]=Mt(T,O,E,D),J=le(),W=(e=0)=>oe(J,(([t,n,a,o,d],r)=>{const s=e?[r+`: ${d}(${t}): ${n} => ${a},`]:[r+d+`(${t}): ${n};`];return e||B(s,Ot(o)),z(s,l),s})),F=(e,t,n,a,o,d=l)=>xt(J,e,[t,n,a,o,d]),U=(e,t,n,a,o,d=l,r=l,s=l)=>F(Ct[e]+t+(4==e?Re:l)+n,d,a,(a==H?zt:Jt)(Ct[e]+(4==e?Re:l)+n,r,e?void 0:a),o,s),_=(e,t,n,a=l,o=l,d=1,r=l)=>F(u+e+I,(a?a+", ":l)+ve+": "+t+(d?", mutator?: boolean":l),fe,Wt(u+e+I,o,d?"mutator":l),n,r),Z=`./${St(a)}.d`,H=St(a,1),Q=St(H),q=[],X=le();let ee=[],te=[];if(c(1,Z,H,`create${H} as create${H}Decl`),K(e))c(null,t,p);else{c(0,t,"CellChange"),c(null,t,i);const[e,n,a,d,I,u,w,y,v,V,R,k,A,D,L,M,J,W,B,F,K,te,ae,oe]=j(Q,H),re=le();O(((e,t)=>{const l=`<'${e}'>`,n=[T(t+$,d+l,Ae+` the '${e}' `+$),T(t+$+Ze,I+l,Ae+` the '${e}' `+$+He),T(t+C,u+l,lt(e)),T(t+C+Ze,w+l,lt(e,1)),T(t+g+fe,y+l,`A Cell Id for the '${e}' `+$),T(t+g+$e,V+l,dt(`a Cell Id and value from a Row in the '${e}' `+$)),T(t+C+$e,R+l,dt(`a Row Id from the '${e}' Table, and a Cell iterator`)),T(t+$+g+$e,k+l,dt(`a Cell Id from anywhere in the '${e}' Table, and a count of how many times it appears`))];de(re,e,n),c(1,Z,...n)})),c(1,Z,e,n,a,y,A,D,L,M,J,W,B,F,K,te,ae,oe),ee=[e,n,a,y,D,L,M,J,W,B,F,K,te,ae,re],N([[e],[o],[H,"tables: "+n,"tables"],[H]],(([e,t,n],a)=>U(a,l,p,e,tt(1,a),t,n))),U(0,l,b,a+Ne,nt($,Ge)),U(5,l,$,Ue,at($,Ge),"tableCallback: "+A,"tableCallback as any"),O(((e,t,n)=>{const[a,d,r,s,I,c,u,p]=ne(re,e);N([[a],[o],[H,"table: "+d,", table"],[H]],(([a,o,d=l],r)=>U(r,t,$,a,ut(e,r),o,n+d))),U(0,t,$+f,i,nt(g,"the whole of "+It(e)),l,n),U(5,t,$+g,Ue,at($+g,"the whole of "+It(e)),"tableCellCallback: "+p,n+", tableCellCallback as any"),U(0,t,C+"Count","number","Gets the number of Rows in the "+It(e),l,n),U(0,t,h,i,nt(C,It(e)),l,n),U(0,t,m,i,nt(C,It(e),1),"cellId?: "+I+je,n+", cellId, descending, offset, limit"),U(5,t,C,Ue,at(C,It(e)),"rowCallback: "+u,n+", rowCallback as any"),N([[r],[o],[H,", row: "+s,", row"],[H],[H,", partialRow: "+s,", partialRow"]],(([a,o=l,d=l],r)=>U(r,t,C,a,it(e,r),Oe+o,n+", rowId"+d))),U(6,t,C,fe+Ve,"Add a new Row to "+It(e),"row: "+s+", reuseIds?: boolean",n+", row, reuseIds"),U(0,t,f,I+Ne,nt(g,ct(e)),Oe,n+", rowId"),U(5,t,g,Ue,at(g,ct(e)),Oe+", cellCallback: "+c,n+", rowId, cellCallback as any"),E(e,((a,d,r,s,I)=>{const c="Map"+St(d,1);de(X,d,c);const u=d+(P(r)?Ve:l);N([[u],[o],[H,`, cell: ${d} | `+c,", cell as any"],[H]],(([o,d=l,r=l],c)=>U(c,t+I,g,o,$t(e,a,c),Oe+d,n+", rowId, "+s+r))),U(1,t+I,$+g,o,bt[1]+` the '${a}' Cell anywhere in `+It(e),l,n+", "+s)}))})),U(0,l,p+ye,ye,tt(1,6)),U(2,l,p+ye,H,tt(1,7),"tablesJson: "+ye,"tables"+ye),_(p,D,tt(1,8)+" changes"),_(b,L,st(2,0,1)),_($,M,st(3,0),`tableId: ${a} | null`,"tableId"),_($+f,J,st(14,3,1),`tableId: ${a} | null`,"tableId"),_(C+"Count",W,st(15,3),`tableId: ${a} | null`,"tableId"),_(h,B,st(4,3,1),`tableId: ${a} | null`,"tableId"),_(m,F,st(13,3,1),Et("tableId: TId",`cellId: ${y}<TId>`+Ve,"descending: boolean","offset: number","limit: number"+Ve),Et("tableId","cellId","descending","offset","limit"),1,"<TId extends TableId>"),_(C,K,st(5,3),`tableId: ${a} | null, rowId: IdOrNull`,"tableId, rowId"),_(f,te,st(6,5,1),`tableId: ${a} | null, rowId: IdOrNull`,"tableId, rowId"),_(g,ae,st(7,5),`tableId: ${a} | null, rowId: IdOrNull, cellId: ${G(O((e=>{var t,n;return null!=(n=null==(t=ne(re,e))?void 0:t[4])?n:l}))," | ")} | null`,"tableId, rowId, cellId"),_(we+g,oe,Se+" whenever an invalid Cell change was attempted","tableId: IdOrNull, rowId: IdOrNull, cellId: IdOrNull","tableId, rowId, cellId"),c(1,Z,...Y(X)),z(q,".set"+p+Ee+"({",kt(O(((e,t,n)=>[`[${n}]: {`,...E(e,((e,t,n,a)=>`[${a}]: {[${x(At(r),`'${r}'`)}]: ${x(At(t),`'${t}'`)}${P(n)?l:`, [${x(At(s),`'${s}'`)}]: `+(S(n)?x(At(n),`'${n}'`):n)}},`)),"},"]))),"})")}if(K(n))c(null,t,y);else{const[e,n,a,d,I,u,i,$,p]=L(Q,H);c(1,Z,e,n,a,I,u,i,$,p),te=[e,n,a,u,i,$],N([[e],[o],[H,"values: "+n,"values"],[H],[H,"partialValues: "+n,"partialValues"]],(([e,t,n],a)=>U(a,l,y,e,tt(2,a),t,n))),U(0,l,v,a+Ne,nt(w,Ge)),U(5,l,w,"void",at(w,Ge),"valueCallback: "+I,"valueCallback as any"),D(((e,t,n,a,d)=>{const r="Map"+St(t,1);de(X,t,r),N([[t],[o],[H,`value: ${t} | `+r,", value as any"],[H]],(([t,n,o=l],r)=>U(r,d,w,t,pt(e,r),n,a+o)))})),U(0,l,y+ye,ye,tt(2,6)),U(2,l,y+ye,H,tt(2,7),"valuesJson: "+ye,"values"+ye),_(y,u,tt(2,8)+" changes"),_(v,i,st(10,0,1)),_(w,$,st(11,0),`valueId: ${a} | null`,"valueId"),_(we+w,p,Se+" whenever an invalid Value change was attempted","valueId: IdOrNull","valueId"),c(1,Z,...Y(X)),c(0,t,"ValueChange"),z(q,".set"+y+Ee+"({",D(((e,t,n,a)=>[`[${a}]: {[${x(At(r),`'${r}'`)}]: ${x(At(t),`'${t}'`)}${P(n)?l:`, [${x(At(s),`'${s}'`)}]: `+(S(n)?x(At(n),`'${n}'`):n)}},`])),"})")}U(0,l,"Content",`[${p}, ${y}]`,tt(0,0)),U(2,l,"Content",H,tt(0,2),`[tables, values]: [${p}, ${y}]`,"[tables, values]"),U(2,l,Me,H,`Applies a set of ${Me} to the Store`,"transactionChanges: "+Me,"transactionChanges"),ae(X,((e,t)=>T(t,`(cell: ${e}${Ve}) => `+e,`Takes a ${e} Cell value and returns another`))),c(null,t,"DoRollback",fe,"IdOrNull",ye,"Store",Me),c(0,t,"Get"+Me,"GetTransactionLog"),U(0,l,ye,ye,tt(0,6)),U(2,l,ye,H,tt(0,7),"tablesAndValuesJson: "+ye,"tablesAndValuesJson"),U(7,l,Je,"Return",ze,me,"actions, doRollback","<Return>"),U(7,l,"start"+Le,H,We),U(7,l,"finish"+Le,H,Be,he,"doRollback");const re=M(Q,H);return _("Start"+Le,re,Se+" just before the start of the "+Je,l,l,0),_("WillFinish"+Le,re,Se+" just before "+Fe,l,l,0),_("DidFinish"+Le,re,Se+" just after "+Fe,l,l,0),U(7,l,"call"+I,H,"Manually provoke a listener to be called","listenerId: Id","listenerId"),U(3,l,I,H,"Remove a listener that was previously added to "+Ge,"listenerId: Id","listenerId"),F("getStore",l,"Store","store",bt[0]+" the underlying Store object"),c(1,t,"createStore"),c(1,Z,H,`create${H} as create${H}Decl`,re),x("store",["createStore()",...q]),V("fluent","actions: () => Store",["actions();",`return ${Q};`]),V("proxy","listener: any",`(_: Store, ...params: any[]) => listener(${Q}, ...params)`),x(Q,["{",...W(1),"}"]),[d(...R(0),...k(),ge+" interface "+H+" {",...W(0),"}",l,Ot(`Creates a ${H} object`),ge+" function create"+H+"(): "+H+";"),d(...R(1),ge+" const create"+H+": typeof create"+H+"Decl = () => {",...A(),`return Object.freeze(${Q});`,"};"),ee,te]},Ft=e=>c+e,Ut=e=>Et(Ft(e),Ft(e)+be),_t="debugIds?: boolean",Zt="debugIds={debugIds}",Ht="then"+Ce,Qt="Parameter",qt=": (parameter: "+Qt+", store: Store) => ",Kt="const contextValue = useContext(Context);",Xt=", based on a parameter",Yt=": ",el="<"+Qt+",>",tl=Qt+"ized"+$e+"<"+Qt+">",ll="rowId",nl="rowId={rowId}",al=", separator, debugIds",ol="separator?: ReactElement | string",dl="then?: (store: Store",rl=Et(dl+")"+_e,Ht),sl="then, then"+be,Il=ll+Yt+fe,cl="View",ul=(e,...t)=>Et(...t,ve+": "+e,ve+Ce,"mutator?: boolean"),il=(...e)=>Et(...e,ve,ve+be,"mutator"),$l=(e,n,a,o,d)=>{const[r,s,c,u,T,V,x,R]=Nt(),[k,S,A]=Lt(e,n,T),O=`./${St(a)}.d`,E=`./${St(a)}-ui-react.d`,D="tinybase/ui-react",j=St(a,1),N=St(j),L=j+"Or"+j+fe,M=N+"Or"+j+fe,J=N+`={${N}}`,W=le(),F=(e,t,n,a,o,d=l)=>(s(1,E,e+" as "+e+"Decl"),xt(W,e,[t,n,a,o,d])),U=(e,t,n,a,o,d=l)=>F("use"+e,t,n,a,o,d),_=(e,t,n,a,o=l,d=l,r=l,I=l,c=l)=>(s(1,D,`use${t} as use${t}Core`),U(e,Et(o,X,I),n,ee+`(${M}, use${t}Core, [`+(d||l)+(c?"], ["+c:l)+"]);",a,r)),Z=(e,t,l,n)=>F(e,t,1,l,n),H=(e=0)=>oe(W,(([t,n,a,o,d],r)=>{const s=e?[ge+` const ${r}: typeof ${r}Decl = ${d}(${t}): ${1==n?"any":n} =>`,a]:[ge+` function ${r}${d}(${t}): ${1==n?"ComponentReturnType":n};`];return e||B(s,Ot(o)),z(s,l),s}));s(null,t,fe,"Store",$e,Qt+"ized"+$e),s(0,D,"ComponentReturnType"),s(1,D,"useCellIds"),s(null,D,"ExtraProps"),s(0,O,j);const Q=c(L,j+" | "+fe,`Used when you need to refer to a ${j} in a React hook or component`),q=c(ke+Pe,jt(N+Te+j,N+`ById?: {[${N}Id: Id]: ${j}}`),`Used with the ${ke} component, so that a `+j+" can be passed into the context of an application");s(0,"react","ReactElement","ComponentType"),s(1,"react","React"),s(1,E,Q,q);const X=M+Te+Q;T("{createContext, useContext, useMemo}","React"),T("Context",`createContext<[${j}?, {[${N}Id: Id]: ${j}}?]>([])`),U("Create"+j,`create: () => ${j}, create`+Ce,j,"\n// eslint-disable-next-line react-hooks/exhaustive-deps\nuseMemo(create, createDeps)",`Create a ${j} within a React application with convenient memoization`);const Y=U(j,"id?: Id",j+Ve,["{",Kt,"return id == null ? contextValue[0] : contextValue[1]?.[id];","}"],`Get a reference to a ${j} from within a ${ke} component context`),ee=u("useHook",M+`: ${Q} | undefined, hook: (...params: any[]) => any, preParams: any[], postParams: any[] = []`,[`const ${N} = ${Y}(${M} as Id);`,`return hook(...preParams, ((${M} == null || typeof ${M} == 'string')`,`? ${N} : ${M})?.getStore(), ...postParams)`]),te=u("getProps","getProps: ((id: any) => ExtraProps) | undefined, id: Id","(getProps == null) ? ({} as ExtraProps) : getProps(id)"),ae=u("wrap",Et("children: any","separator?: any","encloseWithId?: boolean","id?: Id"),["const separated = separator==null || !Array.isArray(children)"," ? children"," : children.map((child, c) => (c > 0 ? [separator, child] : child));","return encloseWithId ? [id, ':{', separated, '}'] : separated;"]),de=u("useCustomOrDefaultCellIds",Et("customCellIds: Ids | undefined","tableId: Id","rowId: Id",`${M}?: ${Q} | undefined`),[`const defaultCellIds = ${ee}(${M}, useCellIds, [tableId, rowId]);`,"return customCellIds ?? defaultCellIds;"]),re=T("NullComponent","() => null");if(!K(e)){const[e,n,a,d,r,w,y,v,T,V,x,R,A,D,L]=o;s(null,O,e,n,a,r,w,y,v,T,V,x,R,A,D),s(0,O,d),s(1,O,j),s(null,t,i,"IdOrNull");const M=u("tableView",`{${N}, rowComponent, getRowComponentProps, customCellIds`+al+"}: any, rowIds: Ids, tableId: Id, defaultRowComponent: React.ComponentType<any>",["const Row = rowComponent ?? defaultRowComponent;",`return ${ae}(rowIds.map((rowId) => (`,"<Row","{..."+te+"(getRowComponentProps, rowId)}","key={rowId}","tableId={tableId}",nl,"customCellIds={customCellIds}",J,Zt,"/>","))",al,", tableId,",");"]),z=u("getDefaultTableComponent","tableId: Id",G(k(((e,t,l)=>`tableId == ${l} ? ${t}TableView : `)))+re),W=u("getDefaultCellComponent","tableId: Id, cellId: Id",G(k(((e,t,l)=>`tableId == ${l} ? ${G(S(e,((e,l,n,a,o)=>`cellId == ${a} ? `+t+o+"CellView : ")))+re} : `)))+re);_(p,p,e,tt(1,0)+ie);const B=_(b,b,a+Ne,nt($,Ge)+ie);_(De+p+$e,De+p+$e,tl,tt(1,9)+Xt,Et(Ft(p)+qt+n,Ft(p)+Ce),Ut(p),el,Et(dl,`tables: ${n})`+_e,Ht),sl),_(pe+p+$e,pe+p+$e,$e,tt(1,12),l,l,l,rl,sl);const F=c(g+Pe,jt("tableId?: TId","rowId: Id","cellId?: CId",N+Te+j,_t),ot(ce+g),`<TId extends ${a}, CId extends ${d}<TId>>`),U=c(C+Pe,jt("tableId?: TId","rowId: Id",N+Te+j,"cellComponents?: {readonly [CId in "+d+`<TId>]?: ComponentType<${F}<TId, CId>>;}`,`getCellComponentProps?: (cellId: ${d}<TId>) => ExtraProps`,`customCellIds?: ${d}<TId>[]`,ol,_t),ot(ce+C),`<TId extends ${a}>`),H=c($+Pe,jt("tableId?: TId",N+Te+j,`rowComponent?: ComponentType<${U}<TId>>`,"getRowComponentProps?: (rowId: Id) => ExtraProps","customCellIds?: CellId<TId>[]",ol,_t),ot(ce+$),`<TId extends ${a}>`),Q=c("Sorted"+$+Pe,jt("tableId?: TId","cellId?: "+d+"<TId>","descending?: boolean","offset?: number","limit?: number",N+Te+j,`rowComponent?: ComponentType<${U}<TId>>`,"getRowComponentProps?: (rowId: Id) => ExtraProps","customCellIds?: CellId<TId>[]",ol,_t),ot(ce+"sorted "+$),`<TId extends ${a}>`),q=c(p+Pe,jt(N+Te+j,"tableComponents?: {readonly [TId in "+a+`]?: ComponentType<${H}<TId>>;}`,`getTableComponentProps?: (tableId: ${a}) => ExtraProps`,ol,_t),ot(et(1,1)));s(1,E,q,H,Q,U,F),Z(p+cl,"{"+N+", tableComponents, getTableComponentProps"+al+"}: "+q,[ae+`(${B}(${N}).map((tableId) => {`,"const Table = (tableComponents?.[tableId] ?? "+z+"(tableId)) as React.ComponentType<TableProps<typeof tableId>>;","return <Table",`{...${te}(getTableComponentProps, tableId)}`,"tableId={tableId}","key={tableId}",J,Zt,"/>;","}), separator)"],tt(1,13)+ie),k(((e,t,n)=>{const[a,o,d,r,I]=ne(L,e);s(null,O,a,o,d,r,I),_(t+$,$,a,ut(e)+ie,l,n),_(t+$+f,$+f,i,nt(g,"the whole of "+It(e))+ie,l,n);const c=_(t+h,h,i,nt(C,It(e))+ie,l,n),u=_(t+m,m,i,nt(C,It(e),1)+ie,"cellId?: "+I+", descending?: boolean, offset?: number, limit?: number",n+", cellId, descending, offset, limit");_(t+C,C,d,it(e)+ie,Il,Et(n,ll)),_(t+f,f,I+Ne,nt(g,ct(e))+ie,Il,Et(n,ll)),_(De+t+$+$e,De+$+$e,tl,ut(e,9)+Xt,Et(Ft($)+qt+o,Ft($)+Ce),Et(n,Ut($)),el,Et(dl,`table: ${o})`+_e,Ht),sl),_(pe+t+$+$e,pe+$+$e,$e,ut(e,12),l,n,l,rl,sl),_(De+t+C+$e,De+C+$e,tl,it(e,9)+Xt,Et(Il,Ft(C)+qt+r,Ft(C)+Ce),Et(n,ll,Ut(C)),el,Et(dl,`row: ${r})`+_e,Ht),sl),_("Add"+t+C+$e,"Add"+C+$e,tl,it(e,10)+Xt,Et(Ft(C)+qt+r,Ft(C)+Ce),Et(n,Ut(C)),el,"then?: ("+Et(Il+Ve,"store: Store","row: "+r+")"+_e,"then"+Ce)+", reuseRowIds?: boolean",sl+", reuseRowIds"),_(De+t+Re+C+$e,De+Re+C+$e,tl,it(e,11)+Xt,Et(Il,Ft(Re+C)+qt+r,Ft(Re+C)+Ce),Et(n,ll,Ut(Re+C)),el,Et(dl,`partialRow: ${r})`+_e,Ht),sl),_(pe+t+C+$e,pe+C+$e,$e,it(e,12),Il,Et(n,ll),l,rl,sl);const p=Z(t+C+cl,"{rowId, "+N+", cellComponents, getCellComponentProps, customCellIds"+al+`}: ${U}<'${e}'>`,[ae+`(${de}(customCellIds, `+n+`, rowId, ${N}).map((cellId: ${I}) => {`,"const Cell = (cellComponents?.[cellId] ?? "+W+`(${n}, cellId)) as React.ComponentType<CellProps<typeof `+n+", typeof cellId>>;","return <Cell",`{...${te}(getCellComponentProps, cellId)} `,"key={cellId}",`tableId={${n}}`,nl,"cellId={cellId}",J,Zt,"/>;","})"+al+", rowId)"],it(e,13)+ie);Z(t+"Sorted"+$+cl,"{cellId, descending, offset, limit, ...props}: "+Q+`<'${e}'>`,M+"(props, "+u+`(cellId, descending, offset, limit, props.${N}), ${n}, ${p});`,ut(e,13)+", sorted"+ie),Z(t+$+cl,`props: ${H}<'${e}'>`,M+"(props, "+c+`(props.${N}), ${n}, ${p});`,ut(e,13)+ie),S(e,((a,o,d,r,I)=>{const c="Map"+St(o,1);s(0,O,c),s(1,O,c);const u=_(t+I+g,g,o+(P(d)?Ve:l),$t(e,a)+ie,Il,Et(n,ll,r));_(De+t+I+g+$e,De+g+$e,tl,$t(e,a,9)+Xt,Et(Il,Ft(g)+qt+o+" | "+c,Ft(g)+Ce),Et(n,ll,r,Ut(g)),el,Et(dl,`cell: ${o} | ${c})`+_e,Ht),sl),_(pe+t+I+g+$e,pe+g+$e,$e,$t(e,a,12),Et(Il,"forceDel?: boolean"),Et(n,ll,r,"forceDel"),l,rl,sl),Z(t+I+g+cl,`{rowId, ${N}, debugIds}: `+F+`<'${e}', '${a}'>`,[ae+`('' + ${u}(rowId, `+N+`) ?? '', undefined, debugIds, ${r})`],$t(e,a,13)+ie)}))}));const K=G(k((e=>{var t,n;return null!=(n=null==(t=ne(L,e))?void 0:t[4])?n:l}))," | ");_(p+I,p+I,Ue,tt(1,8)+" changes",ul(r),il()),_(b+I,b+I,Ue,st(2,0,1),ul(w),il()),_($+I,$+I,Ue,st(3,0),ul(y,`tableId: ${a} | null`),il("tableId")),_($+f+I,$+f+I,Ue,st(14,3,1),ul(v,`tableId: ${a} | null`),il("tableId")),_(h+I,h+I,Ue,st(4,3,1),ul(V,`tableId: ${a} | null`),il("tableId")),_(m+I,m+I,Ue,st(13,3,1),ul(x,`tableId: ${a} | null`,"cellId: "+K+Ve,"descending: boolean","offset: number","limit: number"+Ve),il("tableId","cellId","descending","offset","limit")),_(C+I,C+I,Ue,st(5,3),ul(R,`tableId: ${a} | null`,ll+": IdOrNull"),il("tableId",ll)),_(f+I,f+I,Ue,st(6,5,1),ul(A,`tableId: ${a} | null`,ll+": IdOrNull"),il("tableId",ll)),_(g+I,g+I,Ue,st(7,5),ul(D,`tableId: ${a} | null`,ll+": IdOrNull",`cellId: ${K} | null`),il("tableId",ll,"cellId"))}if(!K(n)){const[e,t,n,a,o,r]=d;s(null,O,...d),s(1,O,j);const i=u("getDefaultValueComponent","valueId: Id",G(A(((e,t,l,n,a)=>`valueId == ${n} ? `+a+"ValueView : ")))+re);_(y,y,e,tt(2,0)+ie);const $=_(v,v,n+Ne,nt(w,Ge)+ie);_(De+y+$e,De+y+$e,tl,tt(2,9)+Xt,Et(Ft(y)+qt+t,Ft(y)+Ce),Ut(y),el,Et(dl,`values: ${t})`+_e,Ht),sl),_(De+Re+y+$e,De+Re+y+$e,tl,tt(2,11)+Xt,Et(Ft(Re+y)+qt+t,Ft(Re+y)+Ce),Ut(Re+y),el,Et(dl,`partialValues: ${t})`+_e,Ht),sl),_(pe+y+$e,pe+y+$e,$e,tt(2,12),l,l,l,rl,sl);const p=c(w+Pe,jt("valueId?: VId",N+Te+j,_t),ot("a Value"),`<VId extends ${n}>`),b=c(y+Pe,jt(N+Te+j,"valueComponents?: {readonly [VId in "+n+`]?: ComponentType<${p}<VId>>;}`,`getValueComponentProps?: (valueId: ${n}) => ExtraProps`,ol,_t),ot(et(2,1)));s(1,E,b,p),Z(y+cl,"{"+N+", valueComponents, getValueComponentProps"+al+"}: "+b,[ae+`(${$}(${N}).map((valueId) => {`,"const Value = valueComponents?.[valueId] ?? "+i+"(valueId);","return <Value",`{...${te}(getValueComponentProps, valueId)}`,"key={valueId}",J,Zt,"/>;","}), separator)"],tt(2,13)+ie),A(((e,t,n,a,o)=>{const d="Map"+St(t,1);s(0,O,d),s(1,O,d);const r=_(o+w,w,t,pt(e)+ie,l,a);_(De+o+w+$e,De+w+$e,tl,pt(e,9)+Xt,Et(Ft(w)+qt+t+" | "+d,Ft(w)+Ce),Et(a,Ut(w)),el,Et(dl,`value: ${t} | ${d})`+_e,Ht),sl),_(pe+o+w+$e,pe+w+$e,$e,pt(e,12),l,a,l,rl,sl),Z(o+w+cl,`{${N}, debugIds}: ${p}<'${e}'>`,[ae+`('' + ${r}(`+N+`) ?? '', undefined, debugIds, ${a})`],pt(e,13)+ie)})),_(y+I,y+I,Ue,tt(2,8)+" changes",ul(a),il()),_(v+I,v+I,Ue,st(10,0,1),ul(o),il()),_(w+I,w+I,Ue,st(11,0),ul(r,`valueId: ${n} | null`),il("valueId"))}return Z(ke,`{${N}, ${N}ById, children}: `+q+" & {children: React.ReactNode}",["{",Kt,"return (","<Context."+ke,"value={useMemo(",`() => [${N} ?? contextValue[0], {...contextValue[1], ...${N}ById}],`,`[${N}, ${N}ById, contextValue],`,")}>","{children}",`</Context.${ke}>`,");","}"],"Wraps part of an application in a context that provides default objects to be used by hooks and components within"),[r(...V(0),...x(),...H(0)),r(...V(1),...R(),...H(1))]},pl=(e,t,n)=>{if(K(e)&&K(t))return[l,l,l,l];const[a,o,d,r]=Bt(e,t,n);return[a,o,...$l(e,t,n,d,r)]},bl=JSON.parse;var Cl=Object.defineProperty,hl=Object.defineProperties,ml=Object.getOwnPropertyDescriptors,gl=Object.getOwnPropertySymbols,fl=Object.prototype.hasOwnProperty,wl=Object.prototype.propertyIsEnumerable,yl=(e,t,l)=>t in e?Cl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:l}):e[t]=l,vl=(e,t)=>{for(var l in t||(t={}))fl.call(t,l)&&yl(e,l,t[l]);if(gl)for(var l of gl(t))wl.call(t,l)&&yl(e,l,t[l]);return e},Tl=(e,t)=>hl(e,ml(t)),Vl=(e,t,l)=>new Promise(((n,a)=>{var o=e=>{try{r(l.next(e))}catch(e){a(e)}},d=e=>{try{r(l.throw(e))}catch(e){a(e)}},r=e=>e.done?n(e.value):Promise.resolve(e.value).then(o,d);r((l=l.apply(e,t)).next())}));const xl="prettier/",Rl=xl+"plugins/",Pl={parser:"typescript",singleQuote:!0,trailingComma:"all",bracketSpacing:!1,jsdocSingleLineComment:!1},kl=Gt((e=>{const t=()=>{const t=bl(e.getTablesSchemaJson());return!K(t)||D(e.getTableIds(),(l=>{const n=e.getRowIds(l),a=le();if(D(n,(t=>D(e.getCellIds(l,t),(n=>{const o=e.getCell(l,t,n),d=re(a,n,(()=>[E(o),le(),[0],0])),[r,s,[I]]=d,c=re(s,o,(()=>0))+1;return c>I&&(d[2]=[c,o]),de(s,o,c),d[3]++,r==E(o)})))))return t[l]={},ee(a,(([e,,[,a],o],d)=>{t[l][d]=vl({[r]:e},o==M(n)?{[s]:a}:{})})),1}))?t:{}},l=()=>{const t=bl(e.getValuesSchemaJson());return K(t)&&e.forEachValue(((e,l)=>{t[e]={[r]:E(l)}})),t},n=e=>pl(t(),l(),e),a=e=>Vl(void 0,null,(function*(){const t=["d.ts","ts","d.ts","tsx"],l=[];let a;try{a=(yield import(xl+"standalone")).format,z(l,yield import(Rl+"estree"),yield import(Rl+"typescript"))}catch(e){a=e=>Vl(void 0,null,(function*(){return e}))}return yield O(L(n(e),((e,n)=>Vl(void 0,null,(function*(){return Rt(yield a(e,Tl(vl({},Pl),{plugins:l,filepath:"_."+t[n]})))})))))}));return Z({getStoreStats:t=>{let l=0,n=0,a=0;const o={};return e.forEachTable(((e,d)=>{l++;let r=0,s=0;const I={};d(((e,l)=>{r++;let n=0;l((()=>n++)),s+=n,t&&(I[e]={rowCells:n})})),n+=r,a+=s,t&&(o[e]={tableRows:r,tableCells:s,rows:I})})),vl({totalTables:l,totalRows:n,totalCells:a,totalValues:M(e.getValueIds()),jsonLength:Pt(e.getJson())},t?{detail:{tables:o}}:{})},getStoreTablesSchema:t,getStoreValuesSchema:l,getStoreApi:n,getPrettyStoreApi:a,getStore:()=>e})}));export{kl as createTools};
|
package/lib/es6/tools.js.gz
CHANGED
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const t=(t,a)=>t.map(a),a=(t,...a)=>t.push(...a),e=Promise,s=setInterval,n=clearInterval,o=t=>null==t,c=(t,a,e)=>o(t)?e?.():a(t),r=t=>new e(t),i=async t=>e.all(t),y=Object,l=y.keys,d=y.freeze,u=t=>(t=>t instanceof y&&t.constructor==y)(t)&&0==(t=>l(t).length)(t),w=t=>new Map(t),h=(t,a)=>t?.get(a),v=(t,a,e)=>{return o(e)?(s=t,n=a,s?.delete(n),t):t?.set(a,e);var s,n},p=(t,a,e)=>{var s,n;return s=t,n=a,s?.has(n)||v(t,a,e()),h(t,a)},g=w(),A=w(),S=globalThis.window,f=["t","v"],L={keyPath:"k"},b=async(e,s)=>{const n=((a,s)=>t(y.entries(a),(([t,a])=>k(e,"put",{k:t,v:a}))))(s);t(await k(e,"getAllKeys"),(t=>((t,a)=>!o(((t,a)=>c(t,(t=>t[a])))(t,a)))(s,t)?0:a(n,k(e,"delete",t)))),await i(n)},k=async(t,a,e)=>r(((s,n)=>{const o=t[a](e);o.onsuccess=()=>s(o.result),o.onerror=()=>n(`objectStore.${a} error`)})),C=(e,l,w=1,C)=>{const j=async(a,e=[],s=0)=>r(((n,o)=>{const c=S.indexedDB.open(l,1);c.onupgradeneeded=()=>s&&t(f,(t=>c.result.createObjectStore(t,L))),c.onsuccess=async()=>{try{const s=c.result.transaction(f,"readwrite"),o=await i(t(f,(async(t,n)=>await a(s.objectStore(t),e[n]))));c.result.close(),n(o)}catch(t){o(t)}},c.onerror=()=>o("indexedDB.open error")}));return((t,e,s,n,r,i,y=[])=>{let l,w,S,f=0,L=0;p(g,y,(()=>0)),p(A,y,(()=>[]));const b=async t=>(2!=f&&(f=1,await k.schedule((async()=>{await t(),f=0}))),k),k={load:async(a,s)=>await b((async()=>{try{t.setContent(await e())}catch{t.setContent([a,s])}})),startAutoLoad:async(a={},s={})=>(k.stopAutoLoad(),await k.load(a,s),L=1,S=n((async(a,s)=>{if(s){const a=s();await b((async()=>t.setTransactionChanges(a)))}else await b((async()=>{try{t.setContent(a?.()??await e())}catch(t){i?.(t)}}))})),k),stopAutoLoad:()=>(L&&(r(S),S=void 0,L=0),k),save:async a=>(1!=f&&(f=2,await k.schedule((async()=>{try{await s(t.getContent,a)}catch(t){i?.(t)}f=0}))),k),startAutoSave:async()=>(await k.stopAutoSave().save(),l=t.addDidFinishTransactionListener(((t,a)=>{const[e,s]=a();u(e)&&u(s)||k.save((()=>[e,s]))})),k),stopAutoSave:()=>(c(l,t.delListener),k),schedule:async(...t)=>(a(h(A,y),...t),await(async()=>{if(!h(g,y)){for(v(g,y,1);!o((t=h(A,y),w=t.shift()));)try{await w()}catch(t){i?.(t)}v(g,y,0)}var t})(),k),getStore:()=>t,destroy:()=>k.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return d(k)})(e,(async()=>await j((async a=>((t=[])=>y.fromEntries(t))(t(await k(a,"getAll"),(({k:t,v:a})=>[t,a])))))),(async t=>await j((async(t,a)=>await b(t,a)),t(),1)),(t=>s(t,1e3*w)),(t=>n(t)),C)};export{C as createIndexedDbPersister,b as objectStoreMatch};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const t=setInterval,a=clearInterval,e=(t,a)=>t instanceof a,s=t=>null==t,n=Object,o=n.keys,r=n.freeze,c=t=>(t=>e(t,n)&&t.constructor==n)(t)&&0==(t=>o(t).length)(t),i=JSON.parse,y=t=>new Map(t),d=(t,a)=>t?.get(a),u=(t,a,e)=>{return s(e)?(n=t,o=a,n?.delete(o),t):t?.set(a,e);var n,o},h=(t,a,e)=>{var s,n;return s=t,n=a,s?.has(n)||u(t,a,e()),d(t,a)},w=y(),l=y(),v=t=>t.headers.get("ETag"),p=(o,y,p,f,g)=>{let A;return((t,a,e,n,o,i,y=[])=>{let v,p,f,g=0,A=0;h(w,y,(()=>0)),h(l,y,(()=>[]));const S=async t=>(2!=g&&(g=1,await C.schedule((async()=>{await t(),g=0}))),C),C={load:async(e,s)=>await S((async()=>{try{t.setContent(await a())}catch{t.setContent([e,s])}})),startAutoLoad:async(e={},s={})=>(C.stopAutoLoad(),await C.load(e,s),A=1,f=n((async(e,s)=>{if(s){const a=s();await S((async()=>t.setTransactionChanges(a)))}else await S((async()=>{try{t.setContent(e?.()??await a())}catch(t){i?.(t)}}))})),C),stopAutoLoad:()=>(A&&(o(f),f=void 0,A=0),C),save:async a=>(1!=g&&(g=2,await C.schedule((async()=>{try{await e(t.getContent,a)}catch(t){i?.(t)}g=0}))),C),startAutoSave:async()=>(await C.stopAutoSave().save(),v=t.addDidFinishTransactionListener(((t,a)=>{const[e,s]=a();c(e)&&c(s)||C.save((()=>[e,s]))})),C),stopAutoSave:()=>{var a,e;return a=v,e=t.delListener,s(a)||e(a),C},schedule:async(...t)=>(((t,...a)=>{t.push(...a)})(d(l,y),...t),await(async()=>{if(!d(w,y)){for(u(w,y,1);!s((t=d(l,y),p=t.shift()));)try{await p()}catch(t){i?.(t)}u(w,y,0)}var t})(),C),getStore:()=>t,destroy:()=>C.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return r(C)})(o,(async()=>{const t=await fetch(y);return A=v(t),i(await t.text())}),(async t=>{return await fetch(p,{method:"POST",headers:{"Content-Type":"application/json"},body:(a=t(),JSON.stringify(a,((t,a)=>e(a,Map)?n.fromEntries([...a]):a)))});var a}),(a=>t((async()=>{const t=await fetch(y,{method:"HEAD"}),e=v(t);s(A)||s(e)||e==A||(A=e,a())}),1e3*f)),(t=>a(t)),g)};export{p as createRemotePersister};
|
|
1
|
+
const t=setInterval,a=clearInterval,e=(t,a)=>t instanceof a,s=t=>null==t,n=Object,o=n.keys,r=n.freeze,c=t=>(t=>e(t,n)&&t.constructor==n)(t)&&0==(t=>o(t).length)(t),i=JSON.parse,y=t=>new Map(t),d=(t,a)=>t?.get(a),u=(t,a,e)=>{return s(e)?(n=t,o=a,n?.delete(o),t):t?.set(a,e);var n,o},h=(t,a,e)=>{var s,n;return s=t,n=a,s?.has(n)||u(t,a,e()),d(t,a)},w=y(),l=y(),v=t=>t.headers.get("ETag"),p=(o,y,p,f=5,g)=>{let A;return((t,a,e,n,o,i,y=[])=>{let v,p,f,g=0,A=0;h(w,y,(()=>0)),h(l,y,(()=>[]));const S=async t=>(2!=g&&(g=1,await C.schedule((async()=>{await t(),g=0}))),C),C={load:async(e,s)=>await S((async()=>{try{t.setContent(await a())}catch{t.setContent([e,s])}})),startAutoLoad:async(e={},s={})=>(C.stopAutoLoad(),await C.load(e,s),A=1,f=n((async(e,s)=>{if(s){const a=s();await S((async()=>t.setTransactionChanges(a)))}else await S((async()=>{try{t.setContent(e?.()??await a())}catch(t){i?.(t)}}))})),C),stopAutoLoad:()=>(A&&(o(f),f=void 0,A=0),C),save:async a=>(1!=g&&(g=2,await C.schedule((async()=>{try{await e(t.getContent,a)}catch(t){i?.(t)}g=0}))),C),startAutoSave:async()=>(await C.stopAutoSave().save(),v=t.addDidFinishTransactionListener(((t,a)=>{const[e,s]=a();c(e)&&c(s)||C.save((()=>[e,s]))})),C),stopAutoSave:()=>{var a,e;return a=v,e=t.delListener,s(a)||e(a),C},schedule:async(...t)=>(((t,...a)=>{t.push(...a)})(d(l,y),...t),await(async()=>{if(!d(w,y)){for(u(w,y,1);!s((t=d(l,y),p=t.shift()));)try{await p()}catch(t){i?.(t)}u(w,y,0)}var t})(),C),getStore:()=>t,destroy:()=>C.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return r(C)})(o,(async()=>{const t=await fetch(y);return A=v(t),i(await t.text())}),(async t=>{return await fetch(p,{method:"POST",headers:{"Content-Type":"application/json"},body:(a=t(),JSON.stringify(a,((t,a)=>e(a,Map)?n.fromEntries([...a]):a)))});var a}),(a=>t((async()=>{const t=await fetch(y,{method:"HEAD"}),e=v(t);s(A)||s(e)||e==A||(A=e,a())}),1e3*f)),(t=>a(t)),g)};export{p as createRemotePersister};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Map as t}from"yjs";const e=t=>t.length,
|
|
1
|
+
import{Map as t}from"yjs";const e="t",a="v",s=t=>t.length,n=t=>t.shift(),o=t=>null==t,c=(t,e,a)=>o(t)?a?.():e(t),r=Object,i=r.keys,l=r.freeze,u=(t=[])=>r.fromEntries(t),d=(t,e)=>!o(((t,e)=>c(t,(t=>t[e])))(t,e)),g=(t,e)=>((t,e)=>t.map(e))(r.entries(t),(([t,a])=>e(a,t))),y=t=>(t=>t instanceof r&&t.constructor==r)(t)&&0==(t=>s(i(t)))(t),h=(t,e,a)=>(d(t,e)||(t[e]=a()),t[e]),v=t=>new Map(t),p=(t,e)=>t?.get(e),w=(t,e)=>((t,e)=>t?.forEach(e))(t,((t,a)=>e(a,t))),f=(t,e,a)=>{return o(a)?(s=t,n=e,s?.delete(n),t):t?.set(e,a);var s,n},S=(t,e,a)=>{var s,n;return s=t,n=e,s?.has(n)||f(t,e,a()),p(t,e)},A=v(),O=v(),J="delete",L=t=>[t.get(e),t.get(a)],N=(e,a,s,n)=>{const c=o(a)?e:e.get(a)??e.set(a,new t);let r;return g(s,((t,e)=>{n(c,e,t)&&(r=1)})),c.forEach(((t,e)=>{d(s,e)||(c.delete(e),r=1)})),o(a)||c.size||e.delete(a),r},C=(r,i,d="tinybase",v)=>{const C=i.getMap(d);return((t,e,a,s,r,i,u=[])=>{let d,g,h,v=0,w=0;S(A,u,(()=>0)),S(O,u,(()=>[]));const J=async t=>(2!=v&&(v=1,await L.schedule((async()=>{await t(),v=0}))),L),L={load:async(a,s)=>await J((async()=>{try{t.setContent(await e())}catch{t.setContent([a,s])}})),startAutoLoad:async(a={},n={})=>(L.stopAutoLoad(),await L.load(a,n),w=1,h=s((async(a,s)=>{if(s){const e=s();await J((async()=>t.setTransactionChanges(e)))}else await J((async()=>{try{t.setContent(a?.()??await e())}catch(t){i?.(t)}}))})),L),stopAutoLoad:()=>(w&&(r(h),h=void 0,w=0),L),save:async e=>(1!=v&&(v=2,await L.schedule((async()=>{try{await a(t.getContent,e)}catch(t){i?.(t)}v=0}))),L),startAutoSave:async()=>(await L.stopAutoSave().save(),d=t.addDidFinishTransactionListener(((t,e)=>{const[a,s]=e();y(a)&&y(s)||L.save((()=>[a,s]))})),L),stopAutoSave:()=>(c(d,t.delListener),L),schedule:async(...t)=>(((t,...e)=>{t.push(...e)})(p(O,u),...t),await(async()=>{if(!p(A,u)){for(f(A,u,1);!o(g=n(p(O,u)));)try{await g()}catch(t){i?.(t)}f(A,u,0)}})(),L),getStore:()=>t,destroy:()=>L.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return l(L)})(r,(async()=>C.size?[C.get(e).toJSON(),C.get(a).toJSON()]:void 0),(async(s,n)=>i.transact((()=>((s,n,r)=>{s.size||(s.set(e,new t),s.set(a,new t));const[i,l]=L(s),u=()=>{d=1};let d=1;if(c(r?.(),(([t,e])=>{d=0,g(t,((t,e)=>d?0:o(t)?i.delete(e):c(i.get(e),(e=>g(t,((t,a)=>d?0:o(t)?e.delete(a):c(e.get(a),(e=>g(t,((t,a)=>o(t)?e.delete(a):e.set(a,t)))),u)))),u))),g(e,((t,e)=>d?0:o(t)?l.delete(e):l.set(e,t)))})),d){const[t,e]=n();N(i,void 0,t,((t,e,a)=>N(i,e,a,((t,e,a)=>N(t,e,a,((t,e,a)=>{if(t.get(e)!==a)return t.set(e,a),1})))))),N(l,void 0,e,((t,e,a)=>{l.get(e)!==a&&l.set(e,a)}))}})(C,s,n)))),(t=>{const o=o=>t(void 0,(()=>((t,o)=>{if(1==s(o)&&(r=o[0].path,0==s(r)))return[t.get(e).toJSON(),t.get(a).toJSON()];var r;const[i,l]=L(t),d={},g={};return((t,a)=>{t.forEach((({path:t,changes:{keys:a}})=>n(t)==e?c(n(t),(e=>{const s=h(d,e,u),o=i.get(e);c(n(t),(t=>{const e=h(s,t,u),n=o.get(t);w(a,((t,{action:a})=>e[t]=a==J?null:n.get(t)))}),(()=>w(a,((t,{action:e})=>s[t]=e==J?null:o.get(t)?.toJSON()))))}),(()=>w(a,((t,{action:e})=>d[t]=e==J?null:i.get(t)?.toJSON())))):w(a,((t,{action:e})=>g[t]=e==J?null:l.get(t)))))})(o),[d,g]})(C,o)));return C.observeDeep(o),o}),(t=>{C.unobserveDeep(t)}),v)};export{C as createYjsPersister};
|
|
Binary file
|
package/lib/tools.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=e=>typeof e,t="tinybase",l="",a=",",n=e(l),o=e(!0),d=e(0),s="type",r="default",I="Listener",$="get",c="add",u="Ids",i="Table",p=i+"s",b=i+u,C="Row",h=C+u,m="Sorted"+C+u,g="Cell",f=g+u,w="Value",y=w+"s",T=w+u,v=isFinite,V=(e,t)=>e instanceof t,x=e=>null==e,R=e=>e==n||e==o,k=t=>e(t)==n,S=e=>Array.isArray(e),A=t=>{const l=e(t);return R(l)||l==d&&v(t)?l:void 0},P=(e,t)=>e.every(t),E=(e,t)=>e.sort(t),D=(e,t)=>e.forEach(t),O=(e,t=l)=>e.join(t),N=(e,t)=>e.map(t),G=e=>e.length,L=(e,t)=>e.filter(t),j=(e,...t)=>e.push(...t),M=e=>e.pop(),J=(e,...t)=>e.unshift(...t),z=e=>e.shift(),W=Object,B=W.keys,F=W.freeze,U=e=>V(e,W)&&e.constructor==W,_=(e,t)=>N(W.entries(e),(([e,l])=>t(l,e))),Z=e=>G(B(e)),H=e=>U(e)&&0==Z(e),Q=(e,t)=>e?.has(t)??!1,q=e=>[...e?.values()??[]],K=(e,t)=>e?.forEach(t),X=(e,t)=>e?.delete(t),Y=e=>new Map(e),ee=(e,t)=>e?.get(t),te=(e,t)=>K(e,((e,l)=>t(l,e))),le=(e,t)=>N([...e?.entries()??[]],(([e,l])=>t(l,e))),ae=(e,t,l)=>x(l)?(X(e,t),e):e?.set(t,l),ne=(e,t,l)=>(Q(e,t)||ae(e,t,l()),ee(e,t)),oe=e=>e.toUpperCase(),de=e=>e.toLowerCase(),se="a ",re="A function for",Ie=", and registers a listener so that any changes to that result will cause a re-render",$e="Callback",ce="Del",ue="Deps",ie=ue+"?: React.DependencyList",pe="doRollback?: DoRollback",be="actions: () => Return, "+pe,Ce="export",he="Id",me="Invalid",ge="Json",fe=de(I),we="?: ",ye=" | undefined",Te="NonNullable",ve="Partial",Ve="Props",xe="Provider",Re=`Registers a ${fe} that will be called`,ke="Represents",Se="rowId: "+he,Ae="Schema",Pe="Set",Ee=", descending?: boolean, offset?: number, limit?: number",De="[]",Oe="the Store",Ne="Transaction",Ge=Ne+"Changes",Le=de(Ne),je="Execute a "+Le+" to make multiple mutations",Me="Explicitly starts a "+Le,Je="Explicitly finishes a "+Le,ze="the end of the "+Le,We="void",Be=" => "+We,Fe="WhenSet",Ue=" when setting it",_e=se+"string serialization of",Ze=" ",He="Gets a callback that can ",Qe="the ",qe=" the schema for",Ke=(e=0,t=0)=>`the ${bt[e]}content of`+(t?Ze+Oe:l),Xe=(e=0,t,a=0)=>ut[t]+Ze+Ke(e,1)+(a?" when setting it":l),Ye=(e,t=0)=>ke+` a Row when ${t?"s":"g"}etting ${Ke()} the '${e}' `+i,et=(e,t,l=0)=>`Gets ${l?"sorted, paginated":"the"} Ids of the ${e}s in `+t,tt=(e,t)=>`Calls a function for each ${e} in `+t,lt=e=>"The props passed to a component that renders "+e,at=e=>"A function that takes "+e,nt=(e,t=0)=>re+" listening to changes to "+pt[e]+" in "+pt[t],ot=(e,t,a=0)=>Re+" whenever "+pt[e]+" in "+pt[t]+" change"+(a?l:"s"),dt=e=>`the '${e}' `+i,st=e=>"the specified Row in "+dt(e),rt=(e,t=0)=>ut[t]+` ${Ke()} `+dt(e),It=(e,t=0)=>ut[t]+` ${Ke()} `+st(e),$t=(e,t,l=0)=>ut[l]+` the '${t}' Cell for `+st(e),ct=(e,t=0)=>ut[t]+` the '${e}' Value`,ut=["Gets","Checks existence of","Sets","Deletes","Sets part of",ke,"Gets "+_e,"Sets "+_e,Re+" whenever",He+"set",He+"add",He+"set part of",He+"delete","Renders","Gets "+_e+qe,"Sets"+qe,"Deletes"+qe],it=[$,"has","set","del","set","forEach",c,l],pt=[Oe,p,Qe+i+Ze+u,se+i,Qe+C+Ze+u,se+C,Qe+g+Ze+u,se+g,"invalid Cell changes",y,Qe+w+Ze+u,se+w,"invalid Value changes",Qe+"sorted "+C+Ze+u,Qe+g+Ze+u+" anywhere",Qe+"number of Rows"],bt=[l,"tabular ","keyed value "],Ct=e=>new Set(S(e)||x(e)?e:[e]),ht=(e,t)=>e?.add(t),mt=/[^A-Za-z]+/,gt=/[^A-Za-z0-9]+/,ft=/^( *)\/\*\* *(.*?) *\*\/$/gm,wt=(e,t,l)=>e.substring(t,l),yt=e=>e.includes(a),Tt=(e,t,l,a=1)=>{const n=`${t}${1==a?"":a}`;return Q(e,n)?Tt(e,t,l,a+1):(ae(e,n,l),n)},vt=e=>e.replace(ft,((e,t,l)=>{const a=77-Vt(t);return`${t}/**\n${l.replace(RegExp(`([^\\n]{1,${a}})(\\s|$)`,"g"),t+" * $1\n")}${t} */`})),Vt=e=>e.length,xt=e=>e.flat(1e3),Rt=(e,t=0)=>O(N(e.split(gt),((e,l)=>(l>0||t?oe:de)(wt(e,0,1))+wt(e,1)))),kt=e=>oe(O((e&&!mt.test(e[0])?e:" "+e).split(gt),"_")),St=e=>`/** ${e}. */`,At=(...e)=>O(L(e,(e=>e)),", "),Pt=(...e)=>"{"+O(e,"; ")+"}",Et=(...e)=>Pt(...N(e,(e=>"readonly "+e))),Dt=()=>{const e=[Y(),Y(),Y(),Y()],t=Y(),a=Y(),n=e=>{const t=e.indexOf(" as ");return-1!=t?e.substring(t+4):e};return[(...e)=>O(xt(e),"\n"),(t,l,...a)=>D(a,(a=>D([0,1],(n=>(t??n)==n?ht(ne(e[n],l,Ct),a):0)))),(e,a,n,o=l,d=1)=>Tt(t,e,[a,n,o,d]),(e,t,l)=>Tt(a,e,S(l)?[`(${t}) => {`,l,"}"]:[`(${t}) => ${l}`]),(e,t)=>ee(a,e)===t?e:Tt(a,e,t),(t=0)=>N([...E(le(e[t],((e,t)=>`import {${O(E(q(e),((e,t)=>n(e)>n(t)?1:-1)),", ")}} from '${t}';`)),((e,t)=>yt(e)!=yt(t)?yt(e)?-1:1:e>t?1:-1)),l],(e=>e.replace("{React}","React"))),()=>le(t,(([e,t,a,n],o)=>[St(t),`${n?Ce+" ":l}type ${o}${a} = ${e};`,l])),()=>le(a,((e,t)=>(e=S(e)?e:[e],j(e,M(e)+";"),[`const ${t} = ${z(e)}`,e,l])))]},Ot=e=>{const t=new WeakMap;return l=>(t.has(l)||t.set(l,e(l)),t.get(l))},Nt=(e,t,l)=>[t=>_(e,((e,a)=>t(a,Rt(a,1),l(kt(a),`'${a}'`)))),(t,a)=>_(e[t],((e,t)=>a(t,e[s],e[r],l(kt(t),`'${t}'`),Rt(t,1)))),e=>_(t,((t,a)=>e(a,t[s],t[r],l(kt(a),`'${a}'`),Rt(a,1))))],Gt=(e,t,a,n)=>[(n,o)=>{const d=n+": "+o,s=e(p,Pt(...t((e=>`'${e}'?: {[rowId: Id]: `+Pt(...a(e,((e,t,a)=>`'${e}'${x(a)?"?":l}: ${t}`)))+"}"))),Xe(1,5)),r=e(p+Fe,Pt(...t((e=>`'${e}'?: {[rowId: Id]: `+Pt(...a(e,((e,t)=>`'${e}'?: ${t}`)))+"}"))),Xe(1,5,1)),$=e(i+he,"keyof "+s,"A "+i+" Id in "+Oe),c=`<TId extends ${$}>`,u=e(i,Te+`<${s}[TId]>`,"A "+i+" in "+Oe,c),w=e(i+Fe,Te+`<${r}[TId]>`,"A "+i+" in "+Oe+Ue,c),y=e(C,u+"<TId>[Id]","A "+C+" in a "+i,c),T=e(C+Fe,w+"<TId>[Id]","A "+C+" in a "+i+Ue,c),v=e(g+he,`Extract<keyof ${y}<TId>, Id>`,"A "+g+" Id in a "+C,c),V=e(g,Te+`<${s}[TId]>[Id][CId]`,"A "+g+" in a "+C,`<TId extends ${$}, CId extends ${v}<TId>>`),R=e("CellIdCellArray",`CId extends ${v}<TId> ? [cellId: CId, cell: ${V}<TId, CId>] : never`,g+" Ids and types in a "+C,`<TId extends ${$}, CId = ${v}<TId>>`,0),k=e(g+$e,`(...[cellId, cell]: ${R}<TId>)`+Be,at(se+g+" Id, and "+g),c),S=e(C+$e,"(rowId: Id, forEachCell: (cellCallback: CellCallback<TId>) "+Be+") "+Be,at(se+C+" Id, and a "+g+" iterator"),c),A=e(i+g+$e,`(cellId: ${v}<TId>, count: number) `+Be,at(se+g+" Id, and count of how many times it appears"),c),P=e("TableIdForEachRowArray",`TId extends ${$} ? [tableId: TId, forEachRow: (rowCallback: ${S}<TId>)${Be}] : never`,i+" Ids and callback types",`<TId = ${$}>`,0),E=e(i+$e,`(...[tableId, forEachRow]: ${P})`+Be,at(se+i+" Id, and a "+C+" iterator"),l),D=e("TableIdRowIdCellIdArray",`TId extends ${$} ? [tableId: TId, rowId: Id, cellId: ${v}<TId>] : never`,"Ids for GetCellChange",`<TId = ${$}>`,0),O=e("GetCellChange",`(...[tableId, rowId, cellId]: ${D}) => CellChange`,re+" returning information about any Cell's changes during a "+Le),N=e(p+I,`(${d}, getCellChange: ${O}${ye})`+Be,nt(1)),G=e(b+I,`(${d})`+Be,nt(2)),L=e(i+I,`(${d}, tableId: ${$}, getCellChange: ${O}${ye})`+Be,nt(3)),j=e(i+f+I,`(${d}, tableId: ${$})`+Be,nt(14,3)),M=e(C+"Count"+I,`(${d}, tableId: ${$})`+Be,nt(15,3)),J=e(h+I,`(${d}, tableId: ${$})`+Be,nt(4,3)),z=e(m+I,"("+At(d,"tableId: "+$,"cellId: Id"+ye,"descending: boolean","offset: number","limit: number"+ye,"sortedRowIds: Ids")+")"+Be,nt(13,3)),W=e(C+I,"("+At(""+d,"tableId: "+$,Se,`getCellChange: ${O}${ye}`)+")"+Be,nt(5,3)),B=e(f+I,"("+At(""+d,"tableId: "+$,Se)+")"+Be,nt(6,5)),F=e("CellListenerArgsArrayInner",`CId extends ${v}<TId> ? [${d}, tableId: TId, ${Se}, cellId: CId, newCell: ${V}<TId, CId> ${ye}, oldCell: ${V}<TId, CId> ${ye}, getCellChange: ${O} ${ye}] : never`,"Cell args for CellListener",`<TId extends ${$}, CId = ${v}<TId>>`,0),U=e("CellListenerArgsArrayOuter",`TId extends ${$} ? `+F+"<TId> : never","Table args for CellListener",`<TId = ${$}>`,0);return[s,r,$,u,w,y,T,v,V,k,S,A,E,N,G,L,j,M,J,z,W,B,e(g+I,`(...[${n}, tableId, rowId, cellId, newCell, oldCell, getCellChange]: ${U})`+Be,nt(7,5)),e(me+g+I,`(${d}, tableId: Id, ${Se}, cellId: Id, invalidCells: any[])`+Be,nt(8))]},(t,a)=>{const o=t+": "+a,d=e(y,Pt(...n(((e,t,a)=>`'${e}'${x(a)?"?":l}: ${t}`))),Xe(2,5)),s=e(y+Fe,Pt(...n(((e,t)=>`'${e}'?: ${t}`))),Xe(2,5,1)),r=e(w+he,"keyof "+d,"A "+w+" Id in "+Oe),$=e(w,Te+`<${d}[VId]>`,"A "+w+" Id in "+Oe,`<VId extends ${r}>`),c=e("ValueIdValueArray",`VId extends ${r} ? [valueId: VId, value: ${$}<VId>] : never`,w+" Ids and types in "+Oe,`<VId = ${r}>`,0),u=e(w+$e,`(...[valueId, value]: ${c})`+Be,at(se+w+" Id, and "+w)),i=e("GetValueChange",`(valueId: ${r}) => ValueChange`,re+" returning information about any Value's changes during a "+Le),p=e(y+I,`(${o}, getValueChange: ${i}${ye})`+Be,nt(9)),b=e(T+I,`(${o})`+Be,nt(10)),C=e("ValueListenerArgsArray",`VId extends ${r} ? [${o}, valueId: VId, newValue: ${$}<VId> ${ye}, oldValue: ${$}<VId> ${ye}, getValueChange: ${i} ${ye}] : never`,"Value args for ValueListener",`<VId = ${r}>`,0);return[d,s,r,$,u,p,b,e(w+I,`(...[${t}, valueId, newValue, oldValue, getValueChange]: `+C+")"+Be,nt(11)),e(me+w+I,`(${o}, valueId: Id, invalidValues: any[])`+Be,nt(12))]},(t,l)=>e(Ne+I,`(${t}: ${l}, getTransactionChanges: GetTransactionChanges, getTransactionLog: GetTransactionLog)`+Be,re+" listening to the completion of a "+Le)],Lt=(e,t=l,a=l)=>`store.${e}(${t})`+(a?" as "+a:l),jt=(e,t=l)=>`fluent(() => ${Lt(e,t)})`,Mt=(e,t=l,a=l)=>`store.${e}(${t?t+", ":l}proxy(listener)${a?", "+a:l})`,Jt=(e,a,n)=>{const[d,$,v,V,R,S,A,P]=Dt(),[E,N,G]=Nt(e,a,R),[L,M,z]=Gt(v,E,N,G),W=Y(),B=(e=0)=>le(W,(([t,a,n,o,d],s)=>{const r=e?[s+`: ${d}(${t}): ${a} => ${n},`]:[s+d+`(${t}): ${a};`];return e||J(r,St(o)),j(r,l),r})),F=(e,t,a,n,o,d=l)=>Tt(W,e,[t,a,n,o,d]),U=(e,t,a,n,o,d=l,s=l,r=l)=>F(it[e]+t+(4==e?ve:l)+a,d,n,(n==Q?jt:Lt)(it[e]+(4==e?ve:l)+a,s,e?void 0:n),o,r),_=(e,t,a,n=l,o=l,d=1,s=l)=>F(c+e+I,(n?n+", ":l)+fe+": "+t+(d?", mutator?: boolean":l),he,Mt(c+e+I,o,d?"mutator":l),a,s),Z=`./${Rt(n)}.d`,Q=Rt(n,1),K=Rt(Q),X=[],ne=Y();let oe=[],de=[];if($(1,Z,Q,`create${Q} as create${Q}Decl`),H(e))$(null,t,p);else{$(0,t,"CellChange"),$(null,t,u);const[e,a,n,d,I,c,w,y,T,V,S,A,P,G,M,J,z,W,B,F,H,te,le,de]=L(K,Q),se=Y();E(((e,t)=>{const l=`<'${e}'>`,a=[v(t+i,d+l,ke+` the '${e}' `+i),v(t+i+Fe,I+l,ke+` the '${e}' `+i+Ue),v(t+C,c+l,Ye(e)),v(t+C+Fe,w+l,Ye(e,1)),v(t+g+he,y+l,`A Cell Id for the '${e}' `+i),v(t+g+$e,V+l,at(`a Cell Id and value from a Row in the '${e}' `+i)),v(t+C+$e,S+l,at(`a Row Id from the '${e}' Table, and a Cell iterator`)),v(t+i+g+$e,A+l,at(`a Cell Id from anywhere in the '${e}' Table, and a count of how many times it appears`))];ae(se,e,a),$(1,Z,...a)})),$(1,Z,e,a,n,y,P,G,M,J,z,W,B,F,H,te,le,de),oe=[e,a,n,y,G,M,J,z,W,B,F,H,te,le,se],D([[e],[o],[Q,"tables: "+a,"tables"],[Q]],(([e,t,a],n)=>U(n,l,p,e,Xe(1,n),t,a))),U(0,l,b,n+De,et(i,Oe)),U(5,l,i,We,tt(i,Oe),"tableCallback: "+P,"tableCallback as any"),E(((e,t,a)=>{const[n,d,s,r,I,$,c,p]=ee(se,e);D([[n],[o],[Q,"table: "+d,", table"],[Q]],(([n,o,d=l],s)=>U(s,t,i,n,rt(e,s),o,a+d))),U(0,t,i+f,u,et(g,"the whole of "+dt(e)),l,a),U(5,t,i+g,We,tt(i+g,"the whole of "+dt(e)),"tableCellCallback: "+p,a+", tableCellCallback as any"),U(0,t,C+"Count","number","Gets the number of Rows in the "+dt(e),l,a),U(0,t,h,u,et(C,dt(e)),l,a),U(0,t,m,u,et(C,dt(e),1),"cellId?: "+I+Ee,a+", cellId, descending, offset, limit"),U(5,t,C,We,tt(C,dt(e)),"rowCallback: "+c,a+", rowCallback as any"),D([[s],[o],[Q,", row: "+r,", row"],[Q],[Q,", partialRow: "+r,", partialRow"]],(([n,o=l,d=l],s)=>U(s,t,C,n,It(e,s),Se+o,a+", rowId"+d))),U(6,t,C,he+ye,"Add a new Row to "+dt(e),"row: "+r+", reuseIds?: boolean",a+", row, reuseIds"),U(0,t,f,I+De,et(g,st(e)),Se,a+", rowId"),U(5,t,g,We,tt(g,st(e)),Se+", cellCallback: "+$,a+", rowId, cellCallback as any"),N(e,((n,d,s,r,I)=>{const $="Map"+Rt(d,1);ae(ne,d,$);const c=d+(x(s)?ye:l);D([[c],[o],[Q,`, cell: ${d} | `+$,", cell as any"],[Q]],(([o,d=l,s=l],$)=>U($,t+I,g,o,$t(e,n,$),Se+d,a+", rowId, "+r+s))),U(1,t+I,i+g,o,ut[1]+` the '${n}' Cell anywhere in `+dt(e),l,a+", "+r)}))})),U(0,l,p+ge,ge,Xe(1,6)),U(2,l,p+ge,Q,Xe(1,7),"tablesJson: "+ge,"tables"+ge),_(p,G,Xe(1,8)+" changes"),_(b,M,ot(2,0,1)),_(i,J,ot(3,0),`tableId: ${n} | null`,"tableId"),_(i+f,z,ot(14,3,1),`tableId: ${n} | null`,"tableId"),_(C+"Count",W,ot(15,3),`tableId: ${n} | null`,"tableId"),_(h,B,ot(4,3,1),`tableId: ${n} | null`,"tableId"),_(m,F,ot(13,3,1),At("tableId: TId",`cellId: ${y}<TId>`+ye,"descending: boolean","offset: number","limit: number"+ye),At("tableId","cellId","descending","offset","limit"),1,"<TId extends TableId>"),_(C,H,ot(5,3),`tableId: ${n} | null, rowId: IdOrNull`,"tableId, rowId"),_(f,te,ot(6,5,1),`tableId: ${n} | null, rowId: IdOrNull`,"tableId, rowId"),_(g,le,ot(7,5),`tableId: ${n} | null, rowId: IdOrNull, cellId: ${O(E((e=>ee(se,e)?.[4]??l))," | ")} | null`,"tableId, rowId, cellId"),_(me+g,de,Re+" whenever an invalid Cell change was attempted","tableId: IdOrNull, rowId: IdOrNull, cellId: IdOrNull","tableId, rowId, cellId"),$(1,Z,...q(ne)),j(X,".set"+p+Ae+"({",xt(E(((e,t,a)=>[`[${a}]: {`,...N(e,((e,t,a,n)=>`[${n}]: {[${R(kt(s),`'${s}'`)}]: ${R(kt(t),`'${t}'`)}${x(a)?l:`, [${R(kt(r),`'${r}'`)}]: `+(k(a)?R(kt(a),`'${a}'`):a)}},`)),"},"]))),"})")}if(H(a))$(null,t,y);else{const[e,a,n,d,I,c,u,i,p]=M(K,Q);$(1,Z,e,a,n,I,c,u,i,p),de=[e,a,n,c,u,i],D([[e],[o],[Q,"values: "+a,"values"],[Q],[Q,"partialValues: "+a,"partialValues"]],(([e,t,a],n)=>U(n,l,y,e,Xe(2,n),t,a))),U(0,l,T,n+De,et(w,Oe)),U(5,l,w,"void",tt(w,Oe),"valueCallback: "+I,"valueCallback as any"),G(((e,t,a,n,d)=>{const s="Map"+Rt(t,1);ae(ne,t,s),D([[t],[o],[Q,`value: ${t} | `+s,", value as any"],[Q]],(([t,a,o=l],s)=>U(s,d,w,t,ct(e,s),a,n+o)))})),U(0,l,y+ge,ge,Xe(2,6)),U(2,l,y+ge,Q,Xe(2,7),"valuesJson: "+ge,"values"+ge),_(y,c,Xe(2,8)+" changes"),_(T,u,ot(10,0,1)),_(w,i,ot(11,0),`valueId: ${n} | null`,"valueId"),_(me+w,p,Re+" whenever an invalid Value change was attempted","valueId: IdOrNull","valueId"),$(1,Z,...q(ne)),$(0,t,"ValueChange"),j(X,".set"+y+Ae+"({",G(((e,t,a,n)=>[`[${n}]: {[${R(kt(s),`'${s}'`)}]: ${R(kt(t),`'${t}'`)}${x(a)?l:`, [${R(kt(r),`'${r}'`)}]: `+(k(a)?R(kt(a),`'${a}'`):a)}},`])),"})")}U(0,l,"Content",`[${p}, ${y}]`,Xe(0,0)),U(2,l,"Content",Q,Xe(0,2),`[tables, values]: [${p}, ${y}]`,"[tables, values]"),U(2,l,Ge,Q,`Applies a set of ${Ge} to the Store`,"transactionChanges: "+Ge,"transactionChanges"),te(ne,((e,t)=>v(t,`(cell: ${e}${ye}) => `+e,`Takes a ${e} Cell value and returns another`))),$(null,t,"DoRollback",he,"IdOrNull",ge,"Store",Ge),$(0,t,"Get"+Ge,"GetTransactionLog"),U(0,l,ge,ge,Xe(0,6)),U(2,l,ge,Q,Xe(0,7),"tablesAndValuesJson: "+ge,"tablesAndValuesJson"),U(7,l,Le,"Return",je,be,"actions, doRollback","<Return>"),U(7,l,"start"+Ne,Q,Me),U(7,l,"finish"+Ne,Q,Je,pe,"doRollback");const se=z(K,Q);return _("Start"+Ne,se,Re+" just before the start of the "+Le,l,l,0),_("WillFinish"+Ne,se,Re+" just before "+ze,l,l,0),_("DidFinish"+Ne,se,Re+" just after "+ze,l,l,0),U(7,l,"call"+I,Q,"Manually provoke a listener to be called","listenerId: Id","listenerId"),U(3,l,I,Q,"Remove a listener that was previously added to "+Oe,"listenerId: Id","listenerId"),F("getStore",l,"Store","store",ut[0]+" the underlying Store object"),$(1,t,"createStore"),$(1,Z,Q,`create${Q} as create${Q}Decl`,se),R("store",["createStore()",...X]),V("fluent","actions: () => Store",["actions();",`return ${K};`]),V("proxy","listener: any",`(_: Store, ...params: any[]) => listener(${K}, ...params)`),R(K,["{",...B(1),"}"]),[d(...S(0),...A(),Ce+" interface "+Q+" {",...B(0),"}",l,St(`Creates a ${Q} object`),Ce+" function create"+Q+"(): "+Q+";"),d(...S(1),Ce+" const create"+Q+": typeof create"+Q+"Decl = () => {",...P(),`return Object.freeze(${K});`,"};"),oe,de]},zt=e=>$+e,Wt=e=>At(zt(e),zt(e)+ue),Bt="debugIds?: boolean",Ft="debugIds={debugIds}",Ut="then"+ie,_t="Parameter",Zt=": (parameter: "+_t+", store: Store) => ",Ht="const contextValue = useContext(Context);",Qt=", based on a parameter",qt=": ",Kt="<"+_t+",>",Xt=_t+"ized"+$e+"<"+_t+">",Yt="rowId",el="rowId={rowId}",tl=", separator, debugIds",ll="separator?: ReactElement | string",al="then?: (store: Store",nl=At(al+")"+Be,Ut),ol="then, then"+ue,dl=Yt+qt+he,sl="View",rl=(e,...t)=>At(...t,fe+": "+e,fe+ie,"mutator?: boolean"),Il=(...e)=>At(...e,fe,fe+ue,"mutator"),$l=(e,a,n,o,d)=>{const[s,r,$,c,v,V,R,k]=Dt(),[S,A,P]=Nt(e,a,v),E=`./${Rt(n)}.d`,D=`./${Rt(n)}-ui-react.d`,N="tinybase/ui-react",G=Rt(n,1),L=Rt(G),M=G+"Or"+G+he,z=L+"Or"+G+he,W=L+`={${L}}`,B=Y(),F=(e,t,a,n,o,d=l)=>(r(1,D,e+" as "+e+"Decl"),Tt(B,e,[t,a,n,o,d])),U=(e,t,a,n,o,d=l)=>F("use"+e,t,a,n,o,d),_=(e,t,a,n,o=l,d=l,s=l,I=l,$=l)=>(r(1,N,`use${t} as use${t}Core`),U(e,At(o,X,I),a,ae+`(${z}, use${t}Core, [`+(d||l)+($?"], ["+$:l)+"]);",n,s)),Z=(e,t,l,a)=>F(e,t,1,l,a),Q=(e=0)=>le(B,(([t,a,n,o,d],s)=>{const r=e?[Ce+` const ${s}: typeof ${s}Decl = ${d}(${t}): ${1==a?"any":a} =>`,n]:[Ce+` function ${s}${d}(${t}): ${1==a?"ComponentReturnType":a};`];return e||J(r,St(o)),j(r,l),r}));r(null,t,he,"Store",$e,_t+"ized"+$e),r(0,N,"ComponentReturnType"),r(1,N,"useCellIds"),r(null,N,"ExtraProps"),r(0,E,G);const q=$(M,G+" | "+he,`Used when you need to refer to a ${G} in a React hook or component`),K=$(xe+Ve,Et(L+we+G,L+`ById?: {[${L}Id: Id]: ${G}}`),`Used with the ${xe} component, so that a `+G+" can be passed into the context of an application");r(0,"react","ReactElement","ComponentType"),r(1,"react","React"),r(1,D,q,K);const X=z+we+q;v("{createContext, useContext, useMemo}","React"),v("Context",`createContext<[${G}?, {[${L}Id: Id]: ${G}}?]>([])`),U("Create"+G,`create: () => ${G}, create`+ie,G,"\n// eslint-disable-next-line react-hooks/exhaustive-deps\nuseMemo(create, createDeps)",`Create a ${G} within a React application with convenient memoization`);const te=U(G,"id?: Id",G+ye,["{",Ht,"return id == null ? contextValue[0] : contextValue[1]?.[id];","}"],`Get a reference to a ${G} from within a ${xe} component context`),ae=c("useHook",z+`: ${q} | undefined, hook: (...params: any[]) => any, preParams: any[], postParams: any[] = []`,[`const ${L} = ${te}(${z} as Id);`,`return hook(...preParams, ((${z} == null || typeof ${z} == 'string')`,`? ${L} : ${z})?.getStore(), ...postParams)`]),ne=c("getProps","getProps: ((id: any) => ExtraProps) | undefined, id: Id","(getProps == null) ? ({} as ExtraProps) : getProps(id)"),oe=c("wrap",At("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=c("useCustomOrDefaultCellIds",At("customCellIds: Ids | undefined","tableId: Id","rowId: Id",`${z}?: ${q} | undefined`),[`const defaultCellIds = ${ae}(${z}, useCellIds, [tableId, rowId]);`,"return customCellIds ?? defaultCellIds;"]),re=v("NullComponent","() => null");if(!H(e)){const[e,a,n,d,s,w,y,T,v,V,R,k,P,N,j]=o;r(null,E,e,a,n,s,w,y,T,v,V,R,k,P,N),r(0,E,d),r(1,E,G),r(null,t,u,"IdOrNull");const M=c("tableView",`{${L}, rowComponent, getRowComponentProps, customCellIds`+tl+"}: 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}",el,"customCellIds={customCellIds}",W,Ft,"/>","))",tl,", tableId,",");"]),J=c("getDefaultTableComponent","tableId: Id",O(S(((e,t,l)=>`tableId == ${l} ? ${t}TableView : `)))+re),z=c("getDefaultCellComponent","tableId: Id, cellId: Id",O(S(((e,t,l)=>`tableId == ${l} ? ${O(A(e,((e,l,a,n,o)=>`cellId == ${n} ? `+t+o+"CellView : ")))+re} : `)))+re);_(p,p,e,Xe(1,0)+Ie);const B=_(b,b,n+De,et(i,Oe)+Ie);_(Pe+p+$e,Pe+p+$e,Xt,Xe(1,9)+Qt,At(zt(p)+Zt+a,zt(p)+ie),Wt(p),Kt,At(al,`tables: ${a})`+Be,Ut),ol),_(ce+p+$e,ce+p+$e,$e,Xe(1,12),l,l,l,nl,ol);const F=$(g+Ve,Et("tableId?: TId","rowId: Id","cellId?: CId",L+we+G,Bt),lt(se+g),`<TId extends ${n}, CId extends ${d}<TId>>`),U=$(C+Ve,Et("tableId?: TId","rowId: Id",L+we+G,"cellComponents?: {readonly [CId in "+d+`<TId>]?: ComponentType<${F}<TId, CId>>;}`,`getCellComponentProps?: (cellId: ${d}<TId>) => ExtraProps`,`customCellIds?: ${d}<TId>[]`,ll,Bt),lt(se+C),`<TId extends ${n}>`),H=$(i+Ve,Et("tableId?: TId",L+we+G,`rowComponent?: ComponentType<${U}<TId>>`,"getRowComponentProps?: (rowId: Id) => ExtraProps","customCellIds?: CellId<TId>[]",ll,Bt),lt(se+i),`<TId extends ${n}>`),Q=$("Sorted"+i+Ve,Et("tableId?: TId","cellId?: "+d+"<TId>","descending?: boolean","offset?: number","limit?: number",L+we+G,`rowComponent?: ComponentType<${U}<TId>>`,"getRowComponentProps?: (rowId: Id) => ExtraProps","customCellIds?: CellId<TId>[]",ll,Bt),lt(se+"sorted "+i),`<TId extends ${n}>`),q=$(p+Ve,Et(L+we+G,"tableComponents?: {readonly [TId in "+n+`]?: ComponentType<${H}<TId>>;}`,`getTableComponentProps?: (tableId: ${n}) => ExtraProps`,ll,Bt),lt(Ke(1,1)));r(1,D,q,H,Q,U,F),Z(p+sl,"{"+L+", tableComponents, getTableComponentProps"+tl+"}: "+q,[oe+`(${B}(${L}).map((tableId) => {`,"const Table = (tableComponents?.[tableId] ?? "+J+"(tableId)) as React.ComponentType<TableProps<typeof tableId>>;","return <Table",`{...${ne}(getTableComponentProps, tableId)}`,"tableId={tableId}","key={tableId}",W,Ft,"/>;","}), separator)"],Xe(1,13)+Ie),S(((e,t,a)=>{const[n,o,d,s,I]=ee(j,e);r(null,E,n,o,d,s,I),_(t+i,i,n,rt(e)+Ie,l,a),_(t+i+f,i+f,u,et(g,"the whole of "+dt(e))+Ie,l,a);const $=_(t+h,h,u,et(C,dt(e))+Ie,l,a),c=_(t+m,m,u,et(C,dt(e),1)+Ie,"cellId?: "+I+", descending?: boolean, offset?: number, limit?: number",a+", cellId, descending, offset, limit");_(t+C,C,d,It(e)+Ie,dl,At(a,Yt)),_(t+f,f,I+De,et(g,st(e))+Ie,dl,At(a,Yt)),_(Pe+t+i+$e,Pe+i+$e,Xt,rt(e,9)+Qt,At(zt(i)+Zt+o,zt(i)+ie),At(a,Wt(i)),Kt,At(al,`table: ${o})`+Be,Ut),ol),_(ce+t+i+$e,ce+i+$e,$e,rt(e,12),l,a,l,nl,ol),_(Pe+t+C+$e,Pe+C+$e,Xt,It(e,9)+Qt,At(dl,zt(C)+Zt+s,zt(C)+ie),At(a,Yt,Wt(C)),Kt,At(al,`row: ${s})`+Be,Ut),ol),_("Add"+t+C+$e,"Add"+C+$e,Xt,It(e,10)+Qt,At(zt(C)+Zt+s,zt(C)+ie),At(a,Wt(C)),Kt,"then?: ("+At(dl+ye,"store: Store","row: "+s+")"+Be,"then"+ie)+", reuseRowIds?: boolean",ol+", reuseRowIds"),_(Pe+t+ve+C+$e,Pe+ve+C+$e,Xt,It(e,11)+Qt,At(dl,zt(ve+C)+Zt+s,zt(ve+C)+ie),At(a,Yt,Wt(ve+C)),Kt,At(al,`partialRow: ${s})`+Be,Ut),ol),_(ce+t+C+$e,ce+C+$e,$e,It(e,12),dl,At(a,Yt),l,nl,ol);const p=Z(t+C+sl,"{rowId, "+L+", cellComponents, getCellComponentProps, customCellIds"+tl+`}: ${U}<'${e}'>`,[oe+`(${de}(customCellIds, `+a+`, rowId, ${L}).map((cellId: ${I}) => {`,"const Cell = (cellComponents?.[cellId] ?? "+z+`(${a}, cellId)) as React.ComponentType<CellProps<typeof `+a+", typeof cellId>>;","return <Cell",`{...${ne}(getCellComponentProps, cellId)} `,"key={cellId}",`tableId={${a}}`,el,"cellId={cellId}",W,Ft,"/>;","})"+tl+", rowId)"],It(e,13)+Ie);Z(t+"Sorted"+i+sl,"{cellId, descending, offset, limit, ...props}: "+Q+`<'${e}'>`,M+"(props, "+c+`(cellId, descending, offset, limit, props.${L}), ${a}, ${p});`,rt(e,13)+", sorted"+Ie),Z(t+i+sl,`props: ${H}<'${e}'>`,M+"(props, "+$+`(props.${L}), ${a}, ${p});`,rt(e,13)+Ie),A(e,((n,o,d,s,I)=>{const $="Map"+Rt(o,1);r(0,E,$),r(1,E,$);const c=_(t+I+g,g,o+(x(d)?ye:l),$t(e,n)+Ie,dl,At(a,Yt,s));_(Pe+t+I+g+$e,Pe+g+$e,Xt,$t(e,n,9)+Qt,At(dl,zt(g)+Zt+o+" | "+$,zt(g)+ie),At(a,Yt,s,Wt(g)),Kt,At(al,`cell: ${o} | ${$})`+Be,Ut),ol),_(ce+t+I+g+$e,ce+g+$e,$e,$t(e,n,12),At(dl,"forceDel?: boolean"),At(a,Yt,s,"forceDel"),l,nl,ol),Z(t+I+g+sl,`{rowId, ${L}, debugIds}: `+F+`<'${e}', '${n}'>`,[oe+`('' + ${c}(rowId, `+L+`) ?? '', undefined, debugIds, ${s})`],$t(e,n,13)+Ie)}))}));const K=O(S((e=>ee(j,e)?.[4]??l))," | ");_(p+I,p+I,We,Xe(1,8)+" changes",rl(s),Il()),_(b+I,b+I,We,ot(2,0,1),rl(w),Il()),_(i+I,i+I,We,ot(3,0),rl(y,`tableId: ${n} | null`),Il("tableId")),_(i+f+I,i+f+I,We,ot(14,3,1),rl(T,`tableId: ${n} | null`),Il("tableId")),_(h+I,h+I,We,ot(4,3,1),rl(V,`tableId: ${n} | null`),Il("tableId")),_(m+I,m+I,We,ot(13,3,1),rl(R,`tableId: ${n} | null`,"cellId: "+K+ye,"descending: boolean","offset: number","limit: number"+ye),Il("tableId","cellId","descending","offset","limit")),_(C+I,C+I,We,ot(5,3),rl(k,`tableId: ${n} | null`,Yt+": IdOrNull"),Il("tableId",Yt)),_(f+I,f+I,We,ot(6,5,1),rl(P,`tableId: ${n} | null`,Yt+": IdOrNull"),Il("tableId",Yt)),_(g+I,g+I,We,ot(7,5),rl(N,`tableId: ${n} | null`,Yt+": IdOrNull",`cellId: ${K} | null`),Il("tableId",Yt,"cellId"))}if(!H(a)){const[e,t,a,n,o,s]=d;r(null,E,...d),r(1,E,G);const u=c("getDefaultValueComponent","valueId: Id",O(P(((e,t,l,a,n)=>`valueId == ${a} ? `+n+"ValueView : ")))+re);_(y,y,e,Xe(2,0)+Ie);const i=_(T,T,a+De,et(w,Oe)+Ie);_(Pe+y+$e,Pe+y+$e,Xt,Xe(2,9)+Qt,At(zt(y)+Zt+t,zt(y)+ie),Wt(y),Kt,At(al,`values: ${t})`+Be,Ut),ol),_(Pe+ve+y+$e,Pe+ve+y+$e,Xt,Xe(2,11)+Qt,At(zt(ve+y)+Zt+t,zt(ve+y)+ie),Wt(ve+y),Kt,At(al,`partialValues: ${t})`+Be,Ut),ol),_(ce+y+$e,ce+y+$e,$e,Xe(2,12),l,l,l,nl,ol);const p=$(w+Ve,Et("valueId?: VId",L+we+G,Bt),lt("a Value"),`<VId extends ${a}>`),b=$(y+Ve,Et(L+we+G,"valueComponents?: {readonly [VId in "+a+`]?: ComponentType<${p}<VId>>;}`,`getValueComponentProps?: (valueId: ${a}) => ExtraProps`,ll,Bt),lt(Ke(2,1)));r(1,D,b,p),Z(y+sl,"{"+L+", valueComponents, getValueComponentProps"+tl+"}: "+b,[oe+`(${i}(${L}).map((valueId) => {`,"const Value = valueComponents?.[valueId] ?? "+u+"(valueId);","return <Value",`{...${ne}(getValueComponentProps, valueId)}`,"key={valueId}",W,Ft,"/>;","}), separator)"],Xe(2,13)+Ie),P(((e,t,a,n,o)=>{const d="Map"+Rt(t,1);r(0,E,d),r(1,E,d);const s=_(o+w,w,t,ct(e)+Ie,l,n);_(Pe+o+w+$e,Pe+w+$e,Xt,ct(e,9)+Qt,At(zt(w)+Zt+t+" | "+d,zt(w)+ie),At(n,Wt(w)),Kt,At(al,`value: ${t} | ${d})`+Be,Ut),ol),_(ce+o+w+$e,ce+w+$e,$e,ct(e,12),l,n,l,nl,ol),Z(o+w+sl,`{${L}, debugIds}: ${p}<'${e}'>`,[oe+`('' + ${s}(`+L+`) ?? '', undefined, debugIds, ${n})`],ct(e,13)+Ie)})),_(y+I,y+I,We,Xe(2,8)+" changes",rl(n),Il()),_(T+I,T+I,We,ot(10,0,1),rl(o),Il()),_(w+I,w+I,We,ot(11,0),rl(s,`valueId: ${a} | null`),Il("valueId"))}return Z(xe,`{${L}, ${L}ById, children}: `+K+" & {children: React.ReactNode}",["{",Ht,"return (","<Context."+xe,"value={useMemo(",`() => [${L} ?? contextValue[0], {...contextValue[1], ...${L}ById}],`,`[${L}, ${L}ById, contextValue],`,")}>","{children}",`</Context.${xe}>`,");","}"],"Wraps part of an application in a context that provides default objects to be used by hooks and components within"),[s(...V(0),...R(),...Q(0)),s(...V(1),...k(),...Q(1))]},cl=(e,t,a)=>{if(H(e)&&H(t))return[l,l,l,l];const[n,o,d,s]=Jt(e,t,a);return[n,o,...$l(e,t,a,d,s)]},ul=JSON.parse,il={parser:"typescript",singleQuote:!0,trailingComma:"all",bracketSpacing:!1,jsdocSingleLineComment:!1},pl=Ot((e=>{const t=()=>{const t=ul(e.getTablesSchemaJson());return!H(t)||P(e.getTableIds(),(l=>{const a=e.getRowIds(l),n=Y();if(P(a,(t=>P(e.getCellIds(l,t),(a=>{const o=e.getCell(l,t,a),d=ne(n,a,(()=>[A(o),Y(),[0],0])),[s,r,[I]]=d,$=ne(r,o,(()=>0))+1;return $>I&&(d[2]=[$,o]),ae(r,o,$),d[3]++,s==A(o)})))))return t[l]={},K(n,(([e,,[,n],o],d)=>{t[l][d]={[s]:e,...o==G(a)?{[r]:n}:{}}})),1}))?t:{}},l=()=>{const t=ul(e.getValuesSchemaJson());return H(t)&&e.forEachValue(((e,l)=>{t[e]={[s]:A(l)}})),t},a=e=>cl(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 N(a(e),((e,a)=>vt(l(e,{...il,filepath:"_."+t[a]}))))};return F({getStoreStats:t=>{let l=0,a=0,n=0;const o={};return e.forEachTable(((e,d)=>{l++;let s=0,r=0;const I={};d(((e,l)=>{s++;let a=0;l((()=>a++)),r+=a,t&&(I[e]={rowCells:a})})),a+=s,n+=r,t&&(o[e]={tableRows:s,tableCells:r,rows:I})})),{totalTables:l,totalRows:a,totalCells:n,totalValues:G(e.getValueIds()),jsonLength:Vt(e.getJson()),...t?{detail:{tables:o}}:{}}},getStoreTablesSchema:t,getStoreValuesSchema:l,getStoreApi:a,getPrettyStoreApi:n,getStore:()=>e})}));export{pl as createTools};
|
|
1
|
+
const e=e=>typeof e,t="tinybase",l="",a=",",n=e(l),o=e(!0),d=e(0),s="type",r="default",I="Listener",c="get",$="add",u="Ids",i="Table",p=i+"s",b=i+u,C="Row",h=C+u,m="Sorted"+C+u,g="Cell",f=g+u,w="Value",y=w+"s",T=w+u,v=Promise,V=isFinite,x=(e,t)=>e instanceof t,R=e=>null==e,k=e=>e==n||e==o,S=t=>e(t)==n,P=e=>Array.isArray(e),A=async e=>v.all(e),E=t=>{const l=e(t);return k(l)||l==d&&V(t)?l:void 0},D=(e,t)=>e.every(t),O=(e,t)=>e.sort(t),N=(e,t)=>e.forEach(t),G=(e,t=l)=>e.join(t),L=(e,t)=>e.map(t),j=e=>e.length,M=(e,t)=>e.filter(t),J=(e,...t)=>e.push(...t),z=e=>e.pop(),W=(e,...t)=>e.unshift(...t),B=e=>e.shift(),F=Object,U=F.keys,_=F.freeze,Z=e=>x(e,F)&&e.constructor==F,H=(e,t)=>L(F.entries(e),(([e,l])=>t(l,e))),Q=e=>j(U(e)),q=e=>Z(e)&&0==Q(e),K=(e,t)=>e?.has(t)??!1,X=e=>[...e?.values()??[]],Y=(e,t)=>e?.forEach(t),ee=(e,t)=>e?.delete(t),te=e=>new Map(e),le=(e,t)=>e?.get(t),ae=(e,t)=>Y(e,((e,l)=>t(l,e))),ne=(e,t)=>L([...e?.entries()??[]],(([e,l])=>t(l,e))),oe=(e,t,l)=>R(l)?(ee(e,t),e):e?.set(t,l),de=(e,t,l)=>(K(e,t)||oe(e,t,l()),le(e,t)),se=e=>e.toUpperCase(),re=e=>e.toLowerCase(),Ie="a ",ce="A function for",$e=", and registers a listener so that any changes to that result will cause a re-render",ue="Callback",ie="Del",pe="Deps",be=pe+"?: React.DependencyList",Ce="doRollback?: DoRollback",he="actions: () => Return, "+Ce,me="export",ge="Id",fe="Invalid",we="Json",ye=re(I),Te="?: ",ve=" | undefined",Ve="NonNullable",xe="Partial",Re="Props",ke="Provider",Se=`Registers a ${ye} that will be called`,Pe="Represents",Ae="rowId: "+ge,Ee="Schema",De="Set",Oe=", descending?: boolean, offset?: number, limit?: number",Ne="[]",Ge="the Store",Le="Transaction",je=Le+"Changes",Me=re(Le),Je="Execute a "+Me+" to make multiple mutations",ze="Explicitly starts a "+Me,We="Explicitly finishes a "+Me,Be="the end of the "+Me,Fe="void",Ue=" => "+Fe,_e="WhenSet",Ze=" when setting it",He=Ie+"string serialization of",Qe=" ",qe="Gets a callback that can ",Ke="the ",Xe=" the schema for",Ye=(e=0,t=0)=>`the ${ht[e]}content of`+(t?Qe+Ge:l),et=(e=0,t,a=0)=>pt[t]+Qe+Ye(e,1)+(a?" when setting it":l),tt=(e,t=0)=>Pe+` a Row when ${t?"s":"g"}etting ${Ye()} the '${e}' `+i,lt=(e,t,l=0)=>`Gets ${l?"sorted, paginated":"the"} Ids of the ${e}s in `+t,at=(e,t)=>`Calls a function for each ${e} in `+t,nt=e=>"The props passed to a component that renders "+e,ot=e=>"A function that takes "+e,dt=(e,t=0)=>ce+" listening to changes to "+Ct[e]+" in "+Ct[t],st=(e,t,a=0)=>Se+" whenever "+Ct[e]+" in "+Ct[t]+" change"+(a?l:"s"),rt=e=>`the '${e}' `+i,It=e=>"the specified Row in "+rt(e),ct=(e,t=0)=>pt[t]+` ${Ye()} `+rt(e),$t=(e,t=0)=>pt[t]+` ${Ye()} `+It(e),ut=(e,t,l=0)=>pt[l]+` the '${t}' Cell for `+It(e),it=(e,t=0)=>pt[t]+` the '${e}' Value`,pt=["Gets","Checks existence of","Sets","Deletes","Sets part of",Pe,"Gets "+He,"Sets "+He,Se+" whenever",qe+"set",qe+"add",qe+"set part of",qe+"delete","Renders","Gets "+He+Xe,"Sets"+Xe,"Deletes"+Xe],bt=[c,"has","set","del","set","forEach",$,l],Ct=[Ge,p,Ke+i+Qe+u,Ie+i,Ke+C+Qe+u,Ie+C,Ke+g+Qe+u,Ie+g,"invalid Cell changes",y,Ke+w+Qe+u,Ie+w,"invalid Value changes",Ke+"sorted "+C+Qe+u,Ke+g+Qe+u+" anywhere",Ke+"number of Rows"],ht=[l,"tabular ","keyed value "],mt=e=>new Set(P(e)||R(e)?e:[e]),gt=(e,t)=>e?.add(t),ft=/[^A-Za-z]+/,wt=/[^A-Za-z0-9]+/,yt=/^( *)\/\*\* *(.*?) *\*\/$/gm,Tt=(e,t,l)=>e.substring(t,l),vt=e=>e.includes(a),Vt=(e,t,l,a=1)=>{const n=`${t}${1==a?"":a}`;return K(e,n)?Vt(e,t,l,a+1):(oe(e,n,l),n)},xt=e=>e.replace(yt,((e,t,l)=>{const a=77-Rt(t);return`${t}/**\n${l.replace(RegExp(`([^\\n]{1,${a}})(\\s|$)`,"g"),t+" * $1\n")}${t} */`})),Rt=e=>e.length,kt=e=>e.flat(1e3),St=(e,t=0)=>G(L(e.split(wt),((e,l)=>(l>0||t?se:re)(Tt(e,0,1))+Tt(e,1)))),Pt=e=>se(G((e&&!ft.test(e[0])?e:" "+e).split(wt),"_")),At=e=>`/** ${e}. */`,Et=(...e)=>G(M(e,(e=>e)),", "),Dt=(...e)=>"{"+G(e,"; ")+"}",Ot=(...e)=>Dt(...L(e,(e=>"readonly "+e))),Nt=()=>{const e=[te(),te(),te(),te()],t=te(),a=te(),n=e=>{const t=e.indexOf(" as ");return-1!=t?e.substring(t+4):e};return[(...e)=>G(kt(e),"\n"),(t,l,...a)=>N(a,(a=>N([0,1],(n=>(t??n)==n?gt(de(e[n],l,mt),a):0)))),(e,a,n,o=l,d=1)=>Vt(t,e,[a,n,o,d]),(e,t,l)=>Vt(a,e,P(l)?[`(${t}) => {`,l,"}"]:[`(${t}) => ${l}`]),(e,t)=>le(a,e)===t?e:Vt(a,e,t),(t=0)=>L([...O(ne(e[t],((e,t)=>`import {${G(O(X(e),((e,t)=>n(e)>n(t)?1:-1)),", ")}} from '${t}';`)),((e,t)=>vt(e)!=vt(t)?vt(e)?-1:1:e>t?1:-1)),l],(e=>e.replace("{React}","React"))),()=>ne(t,(([e,t,a,n],o)=>[At(t),`${n?me+" ":l}type ${o}${a} = ${e};`,l])),()=>ne(a,((e,t)=>(e=P(e)?e:[e],J(e,z(e)+";"),[`const ${t} = ${B(e)}`,e,l])))]},Gt=e=>{const t=new WeakMap;return l=>(t.has(l)||t.set(l,e(l)),t.get(l))},Lt=(e,t,l)=>[t=>H(e,((e,a)=>t(a,St(a,1),l(Pt(a),`'${a}'`)))),(t,a)=>H(e[t],((e,t)=>a(t,e[s],e[r],l(Pt(t),`'${t}'`),St(t,1)))),e=>H(t,((t,a)=>e(a,t[s],t[r],l(Pt(a),`'${a}'`),St(a,1))))],jt=(e,t,a,n)=>[(n,o)=>{const d=n+": "+o,s=e(p,Dt(...t((e=>`'${e}'?: {[rowId: Id]: `+Dt(...a(e,((e,t,a)=>`'${e}'${R(a)?"?":l}: ${t}`)))+"}"))),et(1,5)),r=e(p+_e,Dt(...t((e=>`'${e}'?: {[rowId: Id]: `+Dt(...a(e,((e,t)=>`'${e}'?: ${t}`)))+"}"))),et(1,5,1)),c=e(i+ge,"keyof "+s,"A "+i+" Id in "+Ge),$=`<TId extends ${c}>`,u=e(i,Ve+`<${s}[TId]>`,"A "+i+" in "+Ge,$),w=e(i+_e,Ve+`<${r}[TId]>`,"A "+i+" in "+Ge+Ze,$),y=e(C,u+"<TId>[Id]","A "+C+" in a "+i,$),T=e(C+_e,w+"<TId>[Id]","A "+C+" in a "+i+Ze,$),v=e(g+ge,`Extract<keyof ${y}<TId>, Id>`,"A "+g+" Id in a "+C,$),V=e(g,Ve+`<${s}[TId]>[Id][CId]`,"A "+g+" in a "+C,`<TId extends ${c}, CId extends ${v}<TId>>`),x=e("CellIdCellArray",`CId extends ${v}<TId> ? [cellId: CId, cell: ${V}<TId, CId>] : never`,g+" Ids and types in a "+C,`<TId extends ${c}, CId = ${v}<TId>>`,0),k=e(g+ue,`(...[cellId, cell]: ${x}<TId>)`+Ue,ot(Ie+g+" Id, and "+g),$),S=e(C+ue,"(rowId: Id, forEachCell: (cellCallback: CellCallback<TId>) "+Ue+") "+Ue,ot(Ie+C+" Id, and a "+g+" iterator"),$),P=e(i+g+ue,`(cellId: ${v}<TId>, count: number) `+Ue,ot(Ie+g+" Id, and count of how many times it appears"),$),A=e("TableIdForEachRowArray",`TId extends ${c} ? [tableId: TId, forEachRow: (rowCallback: ${S}<TId>)${Ue}] : never`,i+" Ids and callback types",`<TId = ${c}>`,0),E=e(i+ue,`(...[tableId, forEachRow]: ${A})`+Ue,ot(Ie+i+" Id, and a "+C+" iterator"),l),D=e("TableIdRowIdCellIdArray",`TId extends ${c} ? [tableId: TId, rowId: Id, cellId: ${v}<TId>] : never`,"Ids for GetCellChange",`<TId = ${c}>`,0),O=e("GetCellChange",`(...[tableId, rowId, cellId]: ${D}) => CellChange`,ce+" returning information about any Cell's changes during a "+Me),N=e(p+I,`(${d}, getCellChange: ${O}${ve})`+Ue,dt(1)),G=e(b+I,`(${d})`+Ue,dt(2)),L=e(i+I,`(${d}, tableId: ${c}, getCellChange: ${O}${ve})`+Ue,dt(3)),j=e(i+f+I,`(${d}, tableId: ${c})`+Ue,dt(14,3)),M=e(C+"Count"+I,`(${d}, tableId: ${c})`+Ue,dt(15,3)),J=e(h+I,`(${d}, tableId: ${c})`+Ue,dt(4,3)),z=e(m+I,"("+Et(d,"tableId: "+c,"cellId: Id"+ve,"descending: boolean","offset: number","limit: number"+ve,"sortedRowIds: Ids")+")"+Ue,dt(13,3)),W=e(C+I,"("+Et(""+d,"tableId: "+c,Ae,`getCellChange: ${O}${ve}`)+")"+Ue,dt(5,3)),B=e(f+I,"("+Et(""+d,"tableId: "+c,Ae)+")"+Ue,dt(6,5)),F=e("CellListenerArgsArrayInner",`CId extends ${v}<TId> ? [${d}, tableId: TId, ${Ae}, cellId: CId, newCell: ${V}<TId, CId> ${ve}, oldCell: ${V}<TId, CId> ${ve}, getCellChange: ${O} ${ve}] : never`,"Cell args for CellListener",`<TId extends ${c}, CId = ${v}<TId>>`,0),U=e("CellListenerArgsArrayOuter",`TId extends ${c} ? `+F+"<TId> : never","Table args for CellListener",`<TId = ${c}>`,0);return[s,r,c,u,w,y,T,v,V,k,S,P,E,N,G,L,j,M,J,z,W,B,e(g+I,`(...[${n}, tableId, rowId, cellId, newCell, oldCell, getCellChange]: ${U})`+Ue,dt(7,5)),e(fe+g+I,`(${d}, tableId: Id, ${Ae}, cellId: Id, invalidCells: any[])`+Ue,dt(8))]},(t,a)=>{const o=t+": "+a,d=e(y,Dt(...n(((e,t,a)=>`'${e}'${R(a)?"?":l}: ${t}`))),et(2,5)),s=e(y+_e,Dt(...n(((e,t)=>`'${e}'?: ${t}`))),et(2,5,1)),r=e(w+ge,"keyof "+d,"A "+w+" Id in "+Ge),c=e(w,Ve+`<${d}[VId]>`,"A "+w+" Id in "+Ge,`<VId extends ${r}>`),$=e("ValueIdValueArray",`VId extends ${r} ? [valueId: VId, value: ${c}<VId>] : never`,w+" Ids and types in "+Ge,`<VId = ${r}>`,0),u=e(w+ue,`(...[valueId, value]: ${$})`+Ue,ot(Ie+w+" Id, and "+w)),i=e("GetValueChange",`(valueId: ${r}) => ValueChange`,ce+" returning information about any Value's changes during a "+Me),p=e(y+I,`(${o}, getValueChange: ${i}${ve})`+Ue,dt(9)),b=e(T+I,`(${o})`+Ue,dt(10)),C=e("ValueListenerArgsArray",`VId extends ${r} ? [${o}, valueId: VId, newValue: ${c}<VId> ${ve}, oldValue: ${c}<VId> ${ve}, getValueChange: ${i} ${ve}] : never`,"Value args for ValueListener",`<VId = ${r}>`,0);return[d,s,r,c,u,p,b,e(w+I,`(...[${t}, valueId, newValue, oldValue, getValueChange]: `+C+")"+Ue,dt(11)),e(fe+w+I,`(${o}, valueId: Id, invalidValues: any[])`+Ue,dt(12))]},(t,l)=>e(Le+I,`(${t}: ${l}, getTransactionChanges: GetTransactionChanges, getTransactionLog: GetTransactionLog)`+Ue,ce+" listening to the completion of a "+Me)],Mt=(e,t=l,a=l)=>`store.${e}(${t})`+(a?" as "+a:l),Jt=(e,t=l)=>`fluent(() => ${Mt(e,t)})`,zt=(e,t=l,a=l)=>`store.${e}(${t?t+", ":l}proxy(listener)${a?", "+a:l})`,Wt=(e,a,n)=>{const[d,c,v,V,x,k,P,A]=Nt(),[E,D,O]=Lt(e,a,x),[L,j,M]=jt(v,E,D,O),z=te(),B=(e=0)=>ne(z,(([t,a,n,o,d],s)=>{const r=e?[s+`: ${d}(${t}): ${a} => ${n},`]:[s+d+`(${t}): ${a};`];return e||W(r,At(o)),J(r,l),r})),F=(e,t,a,n,o,d=l)=>Vt(z,e,[t,a,n,o,d]),U=(e,t,a,n,o,d=l,s=l,r=l)=>F(bt[e]+t+(4==e?xe:l)+a,d,n,(n==H?Jt:Mt)(bt[e]+(4==e?xe:l)+a,s,e?void 0:n),o,r),_=(e,t,a,n=l,o=l,d=1,s=l)=>F($+e+I,(n?n+", ":l)+ye+": "+t+(d?", mutator?: boolean":l),ge,zt($+e+I,o,d?"mutator":l),a,s),Z=`./${St(n)}.d`,H=St(n,1),Q=St(H),K=[],Y=te();let ee=[],de=[];if(c(1,Z,H,`create${H} as create${H}Decl`),q(e))c(null,t,p);else{c(0,t,"CellChange"),c(null,t,u);const[e,a,n,d,I,$,w,y,T,V,k,P,A,O,j,M,z,W,B,F,q,ae,ne,de]=L(Q,H),se=te();E(((e,t)=>{const l=`<'${e}'>`,a=[v(t+i,d+l,Pe+` the '${e}' `+i),v(t+i+_e,I+l,Pe+` the '${e}' `+i+Ze),v(t+C,$+l,tt(e)),v(t+C+_e,w+l,tt(e,1)),v(t+g+ge,y+l,`A Cell Id for the '${e}' `+i),v(t+g+ue,V+l,ot(`a Cell Id and value from a Row in the '${e}' `+i)),v(t+C+ue,k+l,ot(`a Row Id from the '${e}' Table, and a Cell iterator`)),v(t+i+g+ue,P+l,ot(`a Cell Id from anywhere in the '${e}' Table, and a count of how many times it appears`))];oe(se,e,a),c(1,Z,...a)})),c(1,Z,e,a,n,y,A,O,j,M,z,W,B,F,q,ae,ne,de),ee=[e,a,n,y,O,j,M,z,W,B,F,q,ae,ne,se],N([[e],[o],[H,"tables: "+a,"tables"],[H]],(([e,t,a],n)=>U(n,l,p,e,et(1,n),t,a))),U(0,l,b,n+Ne,lt(i,Ge)),U(5,l,i,Fe,at(i,Ge),"tableCallback: "+A,"tableCallback as any"),E(((e,t,a)=>{const[n,d,s,r,I,c,$,p]=le(se,e);N([[n],[o],[H,"table: "+d,", table"],[H]],(([n,o,d=l],s)=>U(s,t,i,n,ct(e,s),o,a+d))),U(0,t,i+f,u,lt(g,"the whole of "+rt(e)),l,a),U(5,t,i+g,Fe,at(i+g,"the whole of "+rt(e)),"tableCellCallback: "+p,a+", tableCellCallback as any"),U(0,t,C+"Count","number","Gets the number of Rows in the "+rt(e),l,a),U(0,t,h,u,lt(C,rt(e)),l,a),U(0,t,m,u,lt(C,rt(e),1),"cellId?: "+I+Oe,a+", cellId, descending, offset, limit"),U(5,t,C,Fe,at(C,rt(e)),"rowCallback: "+$,a+", rowCallback as any"),N([[s],[o],[H,", row: "+r,", row"],[H],[H,", partialRow: "+r,", partialRow"]],(([n,o=l,d=l],s)=>U(s,t,C,n,$t(e,s),Ae+o,a+", rowId"+d))),U(6,t,C,ge+ve,"Add a new Row to "+rt(e),"row: "+r+", reuseIds?: boolean",a+", row, reuseIds"),U(0,t,f,I+Ne,lt(g,It(e)),Ae,a+", rowId"),U(5,t,g,Fe,at(g,It(e)),Ae+", cellCallback: "+c,a+", rowId, cellCallback as any"),D(e,((n,d,s,r,I)=>{const c="Map"+St(d,1);oe(Y,d,c);const $=d+(R(s)?ve:l);N([[$],[o],[H,`, cell: ${d} | `+c,", cell as any"],[H]],(([o,d=l,s=l],c)=>U(c,t+I,g,o,ut(e,n,c),Ae+d,a+", rowId, "+r+s))),U(1,t+I,i+g,o,pt[1]+` the '${n}' Cell anywhere in `+rt(e),l,a+", "+r)}))})),U(0,l,p+we,we,et(1,6)),U(2,l,p+we,H,et(1,7),"tablesJson: "+we,"tables"+we),_(p,O,et(1,8)+" changes"),_(b,j,st(2,0,1)),_(i,M,st(3,0),`tableId: ${n} | null`,"tableId"),_(i+f,z,st(14,3,1),`tableId: ${n} | null`,"tableId"),_(C+"Count",W,st(15,3),`tableId: ${n} | null`,"tableId"),_(h,B,st(4,3,1),`tableId: ${n} | null`,"tableId"),_(m,F,st(13,3,1),Et("tableId: TId",`cellId: ${y}<TId>`+ve,"descending: boolean","offset: number","limit: number"+ve),Et("tableId","cellId","descending","offset","limit"),1,"<TId extends TableId>"),_(C,q,st(5,3),`tableId: ${n} | null, rowId: IdOrNull`,"tableId, rowId"),_(f,ae,st(6,5,1),`tableId: ${n} | null, rowId: IdOrNull`,"tableId, rowId"),_(g,ne,st(7,5),`tableId: ${n} | null, rowId: IdOrNull, cellId: ${G(E((e=>le(se,e)?.[4]??l))," | ")} | null`,"tableId, rowId, cellId"),_(fe+g,de,Se+" whenever an invalid Cell change was attempted","tableId: IdOrNull, rowId: IdOrNull, cellId: IdOrNull","tableId, rowId, cellId"),c(1,Z,...X(Y)),J(K,".set"+p+Ee+"({",kt(E(((e,t,a)=>[`[${a}]: {`,...D(e,((e,t,a,n)=>`[${n}]: {[${x(Pt(s),`'${s}'`)}]: ${x(Pt(t),`'${t}'`)}${R(a)?l:`, [${x(Pt(r),`'${r}'`)}]: `+(S(a)?x(Pt(a),`'${a}'`):a)}},`)),"},"]))),"})")}if(q(a))c(null,t,y);else{const[e,a,n,d,I,$,u,i,p]=j(Q,H);c(1,Z,e,a,n,I,$,u,i,p),de=[e,a,n,$,u,i],N([[e],[o],[H,"values: "+a,"values"],[H],[H,"partialValues: "+a,"partialValues"]],(([e,t,a],n)=>U(n,l,y,e,et(2,n),t,a))),U(0,l,T,n+Ne,lt(w,Ge)),U(5,l,w,"void",at(w,Ge),"valueCallback: "+I,"valueCallback as any"),O(((e,t,a,n,d)=>{const s="Map"+St(t,1);oe(Y,t,s),N([[t],[o],[H,`value: ${t} | `+s,", value as any"],[H]],(([t,a,o=l],s)=>U(s,d,w,t,it(e,s),a,n+o)))})),U(0,l,y+we,we,et(2,6)),U(2,l,y+we,H,et(2,7),"valuesJson: "+we,"values"+we),_(y,$,et(2,8)+" changes"),_(T,u,st(10,0,1)),_(w,i,st(11,0),`valueId: ${n} | null`,"valueId"),_(fe+w,p,Se+" whenever an invalid Value change was attempted","valueId: IdOrNull","valueId"),c(1,Z,...X(Y)),c(0,t,"ValueChange"),J(K,".set"+y+Ee+"({",O(((e,t,a,n)=>[`[${n}]: {[${x(Pt(s),`'${s}'`)}]: ${x(Pt(t),`'${t}'`)}${R(a)?l:`, [${x(Pt(r),`'${r}'`)}]: `+(S(a)?x(Pt(a),`'${a}'`):a)}},`])),"})")}U(0,l,"Content",`[${p}, ${y}]`,et(0,0)),U(2,l,"Content",H,et(0,2),`[tables, values]: [${p}, ${y}]`,"[tables, values]"),U(2,l,je,H,`Applies a set of ${je} to the Store`,"transactionChanges: "+je,"transactionChanges"),ae(Y,((e,t)=>v(t,`(cell: ${e}${ve}) => `+e,`Takes a ${e} Cell value and returns another`))),c(null,t,"DoRollback",ge,"IdOrNull",we,"Store",je),c(0,t,"Get"+je,"GetTransactionLog"),U(0,l,we,we,et(0,6)),U(2,l,we,H,et(0,7),"tablesAndValuesJson: "+we,"tablesAndValuesJson"),U(7,l,Me,"Return",Je,he,"actions, doRollback","<Return>"),U(7,l,"start"+Le,H,ze),U(7,l,"finish"+Le,H,We,Ce,"doRollback");const se=M(Q,H);return _("Start"+Le,se,Se+" just before the start of the "+Me,l,l,0),_("WillFinish"+Le,se,Se+" just before "+Be,l,l,0),_("DidFinish"+Le,se,Se+" just after "+Be,l,l,0),U(7,l,"call"+I,H,"Manually provoke a listener to be called","listenerId: Id","listenerId"),U(3,l,I,H,"Remove a listener that was previously added to "+Ge,"listenerId: Id","listenerId"),F("getStore",l,"Store","store",pt[0]+" the underlying Store object"),c(1,t,"createStore"),c(1,Z,H,`create${H} as create${H}Decl`,se),x("store",["createStore()",...K]),V("fluent","actions: () => Store",["actions();",`return ${Q};`]),V("proxy","listener: any",`(_: Store, ...params: any[]) => listener(${Q}, ...params)`),x(Q,["{",...B(1),"}"]),[d(...k(0),...P(),me+" interface "+H+" {",...B(0),"}",l,At(`Creates a ${H} object`),me+" function create"+H+"(): "+H+";"),d(...k(1),me+" const create"+H+": typeof create"+H+"Decl = () => {",...A(),`return Object.freeze(${Q});`,"};"),ee,de]},Bt=e=>c+e,Ft=e=>Et(Bt(e),Bt(e)+pe),Ut="debugIds?: boolean",_t="debugIds={debugIds}",Zt="then"+be,Ht="Parameter",Qt=": (parameter: "+Ht+", store: Store) => ",qt="const contextValue = useContext(Context);",Kt=", based on a parameter",Xt=": ",Yt="<"+Ht+",>",el=Ht+"ized"+ue+"<"+Ht+">",tl="rowId",ll="rowId={rowId}",al=", separator, debugIds",nl="separator?: ReactElement | string",ol="then?: (store: Store",dl=Et(ol+")"+Ue,Zt),sl="then, then"+pe,rl=tl+Xt+ge,Il="View",cl=(e,...t)=>Et(...t,ye+": "+e,ye+be,"mutator?: boolean"),$l=(...e)=>Et(...e,ye,ye+pe,"mutator"),ul=(e,a,n,o,d)=>{const[s,r,c,$,v,V,x,k]=Nt(),[S,P,A]=Lt(e,a,v),E=`./${St(n)}.d`,D=`./${St(n)}-ui-react.d`,O="tinybase/ui-react",N=St(n,1),L=St(N),j=N+"Or"+N+ge,M=L+"Or"+N+ge,z=L+`={${L}}`,B=te(),F=(e,t,a,n,o,d=l)=>(r(1,D,e+" as "+e+"Decl"),Vt(B,e,[t,a,n,o,d])),U=(e,t,a,n,o,d=l)=>F("use"+e,t,a,n,o,d),_=(e,t,a,n,o=l,d=l,s=l,I=l,c=l)=>(r(1,O,`use${t} as use${t}Core`),U(e,Et(o,X,I),a,ee+`(${M}, use${t}Core, [`+(d||l)+(c?"], ["+c:l)+"]);",n,s)),Z=(e,t,l,a)=>F(e,t,1,l,a),H=(e=0)=>ne(B,(([t,a,n,o,d],s)=>{const r=e?[me+` const ${s}: typeof ${s}Decl = ${d}(${t}): ${1==a?"any":a} =>`,n]:[me+` function ${s}${d}(${t}): ${1==a?"ComponentReturnType":a};`];return e||W(r,At(o)),J(r,l),r}));r(null,t,ge,"Store",ue,Ht+"ized"+ue),r(0,O,"ComponentReturnType"),r(1,O,"useCellIds"),r(null,O,"ExtraProps"),r(0,E,N);const Q=c(j,N+" | "+ge,`Used when you need to refer to a ${N} in a React hook or component`),K=c(ke+Re,Ot(L+Te+N,L+`ById?: {[${L}Id: Id]: ${N}}`),`Used with the ${ke} component, so that a `+N+" can be passed into the context of an application");r(0,"react","ReactElement","ComponentType"),r(1,"react","React"),r(1,D,Q,K);const X=M+Te+Q;v("{createContext, useContext, useMemo}","React"),v("Context",`createContext<[${N}?, {[${L}Id: Id]: ${N}}?]>([])`),U("Create"+N,`create: () => ${N}, create`+be,N,"\n// eslint-disable-next-line react-hooks/exhaustive-deps\nuseMemo(create, createDeps)",`Create a ${N} within a React application with convenient memoization`);const Y=U(N,"id?: Id",N+ve,["{",qt,"return id == null ? contextValue[0] : contextValue[1]?.[id];","}"],`Get a reference to a ${N} from within a ${ke} component context`),ee=$("useHook",M+`: ${Q} | undefined, hook: (...params: any[]) => any, preParams: any[], postParams: any[] = []`,[`const ${L} = ${Y}(${M} as Id);`,`return hook(...preParams, ((${M} == null || typeof ${M} == 'string')`,`? ${L} : ${M})?.getStore(), ...postParams)`]),ae=$("getProps","getProps: ((id: any) => ExtraProps) | undefined, id: Id","(getProps == null) ? ({} as ExtraProps) : getProps(id)"),oe=$("wrap",Et("children: any","separator?: any","encloseWithId?: boolean","id?: Id"),["const separated = separator==null || !Array.isArray(children)"," ? children"," : children.map((child, c) => (c > 0 ? [separator, child] : child));","return encloseWithId ? [id, ':{', separated, '}'] : separated;"]),de=$("useCustomOrDefaultCellIds",Et("customCellIds: Ids | undefined","tableId: Id","rowId: Id",`${M}?: ${Q} | undefined`),[`const defaultCellIds = ${ee}(${M}, useCellIds, [tableId, rowId]);`,"return customCellIds ?? defaultCellIds;"]),se=v("NullComponent","() => null");if(!q(e)){const[e,a,n,d,s,w,y,T,v,V,x,k,A,O,j]=o;r(null,E,e,a,n,s,w,y,T,v,V,x,k,A,O),r(0,E,d),r(1,E,N),r(null,t,u,"IdOrNull");const M=$("tableView",`{${L}, rowComponent, getRowComponentProps, customCellIds`+al+"}: any, rowIds: Ids, tableId: Id, defaultRowComponent: React.ComponentType<any>",["const Row = rowComponent ?? defaultRowComponent;",`return ${oe}(rowIds.map((rowId) => (`,"<Row","{..."+ae+"(getRowComponentProps, rowId)}","key={rowId}","tableId={tableId}",ll,"customCellIds={customCellIds}",z,_t,"/>","))",al,", tableId,",");"]),J=$("getDefaultTableComponent","tableId: Id",G(S(((e,t,l)=>`tableId == ${l} ? ${t}TableView : `)))+se),W=$("getDefaultCellComponent","tableId: Id, cellId: Id",G(S(((e,t,l)=>`tableId == ${l} ? ${G(P(e,((e,l,a,n,o)=>`cellId == ${n} ? `+t+o+"CellView : ")))+se} : `)))+se);_(p,p,e,et(1,0)+$e);const B=_(b,b,n+Ne,lt(i,Ge)+$e);_(De+p+ue,De+p+ue,el,et(1,9)+Kt,Et(Bt(p)+Qt+a,Bt(p)+be),Ft(p),Yt,Et(ol,`tables: ${a})`+Ue,Zt),sl),_(ie+p+ue,ie+p+ue,ue,et(1,12),l,l,l,dl,sl);const F=c(g+Re,Ot("tableId?: TId","rowId: Id","cellId?: CId",L+Te+N,Ut),nt(Ie+g),`<TId extends ${n}, CId extends ${d}<TId>>`),U=c(C+Re,Ot("tableId?: TId","rowId: Id",L+Te+N,"cellComponents?: {readonly [CId in "+d+`<TId>]?: ComponentType<${F}<TId, CId>>;}`,`getCellComponentProps?: (cellId: ${d}<TId>) => ExtraProps`,`customCellIds?: ${d}<TId>[]`,nl,Ut),nt(Ie+C),`<TId extends ${n}>`),H=c(i+Re,Ot("tableId?: TId",L+Te+N,`rowComponent?: ComponentType<${U}<TId>>`,"getRowComponentProps?: (rowId: Id) => ExtraProps","customCellIds?: CellId<TId>[]",nl,Ut),nt(Ie+i),`<TId extends ${n}>`),Q=c("Sorted"+i+Re,Ot("tableId?: TId","cellId?: "+d+"<TId>","descending?: boolean","offset?: number","limit?: number",L+Te+N,`rowComponent?: ComponentType<${U}<TId>>`,"getRowComponentProps?: (rowId: Id) => ExtraProps","customCellIds?: CellId<TId>[]",nl,Ut),nt(Ie+"sorted "+i),`<TId extends ${n}>`),q=c(p+Re,Ot(L+Te+N,"tableComponents?: {readonly [TId in "+n+`]?: ComponentType<${H}<TId>>;}`,`getTableComponentProps?: (tableId: ${n}) => ExtraProps`,nl,Ut),nt(Ye(1,1)));r(1,D,q,H,Q,U,F),Z(p+Il,"{"+L+", tableComponents, getTableComponentProps"+al+"}: "+q,[oe+`(${B}(${L}).map((tableId) => {`,"const Table = (tableComponents?.[tableId] ?? "+J+"(tableId)) as React.ComponentType<TableProps<typeof tableId>>;","return <Table",`{...${ae}(getTableComponentProps, tableId)}`,"tableId={tableId}","key={tableId}",z,_t,"/>;","}), separator)"],et(1,13)+$e),S(((e,t,a)=>{const[n,o,d,s,I]=le(j,e);r(null,E,n,o,d,s,I),_(t+i,i,n,ct(e)+$e,l,a),_(t+i+f,i+f,u,lt(g,"the whole of "+rt(e))+$e,l,a);const c=_(t+h,h,u,lt(C,rt(e))+$e,l,a),$=_(t+m,m,u,lt(C,rt(e),1)+$e,"cellId?: "+I+", descending?: boolean, offset?: number, limit?: number",a+", cellId, descending, offset, limit");_(t+C,C,d,$t(e)+$e,rl,Et(a,tl)),_(t+f,f,I+Ne,lt(g,It(e))+$e,rl,Et(a,tl)),_(De+t+i+ue,De+i+ue,el,ct(e,9)+Kt,Et(Bt(i)+Qt+o,Bt(i)+be),Et(a,Ft(i)),Yt,Et(ol,`table: ${o})`+Ue,Zt),sl),_(ie+t+i+ue,ie+i+ue,ue,ct(e,12),l,a,l,dl,sl),_(De+t+C+ue,De+C+ue,el,$t(e,9)+Kt,Et(rl,Bt(C)+Qt+s,Bt(C)+be),Et(a,tl,Ft(C)),Yt,Et(ol,`row: ${s})`+Ue,Zt),sl),_("Add"+t+C+ue,"Add"+C+ue,el,$t(e,10)+Kt,Et(Bt(C)+Qt+s,Bt(C)+be),Et(a,Ft(C)),Yt,"then?: ("+Et(rl+ve,"store: Store","row: "+s+")"+Ue,"then"+be)+", reuseRowIds?: boolean",sl+", reuseRowIds"),_(De+t+xe+C+ue,De+xe+C+ue,el,$t(e,11)+Kt,Et(rl,Bt(xe+C)+Qt+s,Bt(xe+C)+be),Et(a,tl,Ft(xe+C)),Yt,Et(ol,`partialRow: ${s})`+Ue,Zt),sl),_(ie+t+C+ue,ie+C+ue,ue,$t(e,12),rl,Et(a,tl),l,dl,sl);const p=Z(t+C+Il,"{rowId, "+L+", cellComponents, getCellComponentProps, customCellIds"+al+`}: ${U}<'${e}'>`,[oe+`(${de}(customCellIds, `+a+`, rowId, ${L}).map((cellId: ${I}) => {`,"const Cell = (cellComponents?.[cellId] ?? "+W+`(${a}, cellId)) as React.ComponentType<CellProps<typeof `+a+", typeof cellId>>;","return <Cell",`{...${ae}(getCellComponentProps, cellId)} `,"key={cellId}",`tableId={${a}}`,ll,"cellId={cellId}",z,_t,"/>;","})"+al+", rowId)"],$t(e,13)+$e);Z(t+"Sorted"+i+Il,"{cellId, descending, offset, limit, ...props}: "+Q+`<'${e}'>`,M+"(props, "+$+`(cellId, descending, offset, limit, props.${L}), ${a}, ${p});`,ct(e,13)+", sorted"+$e),Z(t+i+Il,`props: ${H}<'${e}'>`,M+"(props, "+c+`(props.${L}), ${a}, ${p});`,ct(e,13)+$e),P(e,((n,o,d,s,I)=>{const c="Map"+St(o,1);r(0,E,c),r(1,E,c);const $=_(t+I+g,g,o+(R(d)?ve:l),ut(e,n)+$e,rl,Et(a,tl,s));_(De+t+I+g+ue,De+g+ue,el,ut(e,n,9)+Kt,Et(rl,Bt(g)+Qt+o+" | "+c,Bt(g)+be),Et(a,tl,s,Ft(g)),Yt,Et(ol,`cell: ${o} | ${c})`+Ue,Zt),sl),_(ie+t+I+g+ue,ie+g+ue,ue,ut(e,n,12),Et(rl,"forceDel?: boolean"),Et(a,tl,s,"forceDel"),l,dl,sl),Z(t+I+g+Il,`{rowId, ${L}, debugIds}: `+F+`<'${e}', '${n}'>`,[oe+`('' + ${$}(rowId, `+L+`) ?? '', undefined, debugIds, ${s})`],ut(e,n,13)+$e)}))}));const K=G(S((e=>le(j,e)?.[4]??l))," | ");_(p+I,p+I,Fe,et(1,8)+" changes",cl(s),$l()),_(b+I,b+I,Fe,st(2,0,1),cl(w),$l()),_(i+I,i+I,Fe,st(3,0),cl(y,`tableId: ${n} | null`),$l("tableId")),_(i+f+I,i+f+I,Fe,st(14,3,1),cl(T,`tableId: ${n} | null`),$l("tableId")),_(h+I,h+I,Fe,st(4,3,1),cl(V,`tableId: ${n} | null`),$l("tableId")),_(m+I,m+I,Fe,st(13,3,1),cl(x,`tableId: ${n} | null`,"cellId: "+K+ve,"descending: boolean","offset: number","limit: number"+ve),$l("tableId","cellId","descending","offset","limit")),_(C+I,C+I,Fe,st(5,3),cl(k,`tableId: ${n} | null`,tl+": IdOrNull"),$l("tableId",tl)),_(f+I,f+I,Fe,st(6,5,1),cl(A,`tableId: ${n} | null`,tl+": IdOrNull"),$l("tableId",tl)),_(g+I,g+I,Fe,st(7,5),cl(O,`tableId: ${n} | null`,tl+": IdOrNull",`cellId: ${K} | null`),$l("tableId",tl,"cellId"))}if(!q(a)){const[e,t,a,n,o,s]=d;r(null,E,...d),r(1,E,N);const u=$("getDefaultValueComponent","valueId: Id",G(A(((e,t,l,a,n)=>`valueId == ${a} ? `+n+"ValueView : ")))+se);_(y,y,e,et(2,0)+$e);const i=_(T,T,a+Ne,lt(w,Ge)+$e);_(De+y+ue,De+y+ue,el,et(2,9)+Kt,Et(Bt(y)+Qt+t,Bt(y)+be),Ft(y),Yt,Et(ol,`values: ${t})`+Ue,Zt),sl),_(De+xe+y+ue,De+xe+y+ue,el,et(2,11)+Kt,Et(Bt(xe+y)+Qt+t,Bt(xe+y)+be),Ft(xe+y),Yt,Et(ol,`partialValues: ${t})`+Ue,Zt),sl),_(ie+y+ue,ie+y+ue,ue,et(2,12),l,l,l,dl,sl);const p=c(w+Re,Ot("valueId?: VId",L+Te+N,Ut),nt("a Value"),`<VId extends ${a}>`),b=c(y+Re,Ot(L+Te+N,"valueComponents?: {readonly [VId in "+a+`]?: ComponentType<${p}<VId>>;}`,`getValueComponentProps?: (valueId: ${a}) => ExtraProps`,nl,Ut),nt(Ye(2,1)));r(1,D,b,p),Z(y+Il,"{"+L+", valueComponents, getValueComponentProps"+al+"}: "+b,[oe+`(${i}(${L}).map((valueId) => {`,"const Value = valueComponents?.[valueId] ?? "+u+"(valueId);","return <Value",`{...${ae}(getValueComponentProps, valueId)}`,"key={valueId}",z,_t,"/>;","}), separator)"],et(2,13)+$e),A(((e,t,a,n,o)=>{const d="Map"+St(t,1);r(0,E,d),r(1,E,d);const s=_(o+w,w,t,it(e)+$e,l,n);_(De+o+w+ue,De+w+ue,el,it(e,9)+Kt,Et(Bt(w)+Qt+t+" | "+d,Bt(w)+be),Et(n,Ft(w)),Yt,Et(ol,`value: ${t} | ${d})`+Ue,Zt),sl),_(ie+o+w+ue,ie+w+ue,ue,it(e,12),l,n,l,dl,sl),Z(o+w+Il,`{${L}, debugIds}: ${p}<'${e}'>`,[oe+`('' + ${s}(`+L+`) ?? '', undefined, debugIds, ${n})`],it(e,13)+$e)})),_(y+I,y+I,Fe,et(2,8)+" changes",cl(n),$l()),_(T+I,T+I,Fe,st(10,0,1),cl(o),$l()),_(w+I,w+I,Fe,st(11,0),cl(s,`valueId: ${a} | null`),$l("valueId"))}return Z(ke,`{${L}, ${L}ById, children}: `+K+" & {children: React.ReactNode}",["{",qt,"return (","<Context."+ke,"value={useMemo(",`() => [${L} ?? contextValue[0], {...contextValue[1], ...${L}ById}],`,`[${L}, ${L}ById, contextValue],`,")}>","{children}",`</Context.${ke}>`,");","}"],"Wraps part of an application in a context that provides default objects to be used by hooks and components within"),[s(...V(0),...x(),...H(0)),s(...V(1),...k(),...H(1))]},il=(e,t,a)=>{if(q(e)&&q(t))return[l,l,l,l];const[n,o,d,s]=Wt(e,t,a);return[n,o,...ul(e,t,a,d,s)]},pl=JSON.parse,bl="prettier/",Cl=bl+"plugins/",hl={parser:"typescript",singleQuote:!0,trailingComma:"all",bracketSpacing:!1,jsdocSingleLineComment:!1},ml=Gt((e=>{const t=()=>{const t=pl(e.getTablesSchemaJson());return!q(t)||D(e.getTableIds(),(l=>{const a=e.getRowIds(l),n=te();if(D(a,(t=>D(e.getCellIds(l,t),(a=>{const o=e.getCell(l,t,a),d=de(n,a,(()=>[E(o),te(),[0],0])),[s,r,[I]]=d,c=de(r,o,(()=>0))+1;return c>I&&(d[2]=[c,o]),oe(r,o,c),d[3]++,s==E(o)})))))return t[l]={},Y(n,(([e,,[,n],o],d)=>{t[l][d]={[s]:e,...o==j(a)?{[r]:n}:{}}})),1}))?t:{}},l=()=>{const t=pl(e.getValuesSchemaJson());return q(t)&&e.forEachValue(((e,l)=>{t[e]={[s]:E(l)}})),t},a=e=>il(t(),l(),e),n=async e=>{const t=["d.ts","ts","d.ts","tsx"],l=[];let n;try{n=(await import(bl+"standalone")).format,J(l,await import(Cl+"estree"),await import(Cl+"typescript"))}catch(e){n=async e=>e}return await A(L(a(e),(async(e,a)=>xt(await n(e,{...hl,plugins:l,filepath:"_."+t[a]})))))};return _({getStoreStats:t=>{let l=0,a=0,n=0;const o={};return e.forEachTable(((e,d)=>{l++;let s=0,r=0;const I={};d(((e,l)=>{s++;let a=0;l((()=>a++)),r+=a,t&&(I[e]={rowCells:a})})),a+=s,n+=r,t&&(o[e]={tableRows:s,tableCells:r,rows:I})})),{totalTables:l,totalRows:a,totalCells:n,totalValues:j(e.getValueIds()),jsonLength:Rt(e.getJson()),...t?{detail:{tables:o}}:{}}},getStoreTablesSchema:t,getStoreValuesSchema:l,getStoreApi:a,getPrettyStoreApi:n,getStore:()=>e})}));export{ml as createTools};
|
package/lib/tools.js.gz
CHANGED
|
Binary file
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The persister-indexed-db module of the TinyBase project lets you save and
|
|
3
|
+
* load Store data to and from browser IndexedDB storage.
|
|
4
|
+
* @see Persisting Data guide
|
|
5
|
+
* @packageDocumentation
|
|
6
|
+
* @module persister-indexed-db
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import {Persister} from '../persisters';
|
|
10
|
+
import {Store} from '../store';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* The createIndexedDbPersister function creates a Persister object that can
|
|
14
|
+
* persist the Store to the browser's IndexedDB storage.
|
|
15
|
+
*
|
|
16
|
+
* As well as providing a reference to the Store to persist, you must provide a
|
|
17
|
+
* `dbName` parameter which is unique to your application. This is the key used
|
|
18
|
+
* to identify which IndexedDB to use.
|
|
19
|
+
*
|
|
20
|
+
* Within that database, this Persister will create two object stores: one
|
|
21
|
+
* called 't', and one called 'v'. These will contain the Store's tabular and
|
|
22
|
+
* key-value data respectively, using 'k' and 'v' to store the key and value of
|
|
23
|
+
* each entry, as shown in the example.
|
|
24
|
+
*
|
|
25
|
+
* Note that it is not possible to reactively detect changes to a browser's
|
|
26
|
+
* IndexedDB. If you do choose to enable automatic loading for the Persister
|
|
27
|
+
* (with the startAutoLoad method), it needs to poll the database for changes.
|
|
28
|
+
* The `autoLoadIntervalSeconds` method is used to indicate how often to do
|
|
29
|
+
* this.
|
|
30
|
+
* @param store The Store to persist.
|
|
31
|
+
* @param dbName The unique key to identify the IndexedDB to use.
|
|
32
|
+
* @param autoLoadIntervalSeconds How often to poll the database when in
|
|
33
|
+
* 'autoLoad' mode, defaulting to 1.
|
|
34
|
+
* @param onIgnoredError An optional handler for the errors that the Persister
|
|
35
|
+
* would otherwise ignore when trying to save or load data. This is suitable for
|
|
36
|
+
* debugging persistence issues in a development environment.
|
|
37
|
+
* @returns A reference to the new Persister object.
|
|
38
|
+
* @example
|
|
39
|
+
* This example creates a Persister object and persists the Store to the
|
|
40
|
+
* browser's IndexedDB storage.
|
|
41
|
+
*
|
|
42
|
+
* ```js
|
|
43
|
+
* const store =
|
|
44
|
+
* createStore()
|
|
45
|
+
* .setTable('pets', {fido: {species: 'dog'}})
|
|
46
|
+
* .setTable('species', {dog: {price: 5}})
|
|
47
|
+
* .setValues({open: true});
|
|
48
|
+
* const persister = createIndexedDbPersister(store, 'petStore');
|
|
49
|
+
*
|
|
50
|
+
* await persister.save();
|
|
51
|
+
* // IndexedDB ->
|
|
52
|
+
* // database petStore:
|
|
53
|
+
* // objectStore t:
|
|
54
|
+
* // object 0:
|
|
55
|
+
* // k: "pets"
|
|
56
|
+
* // v: {fido: {species: dog}}
|
|
57
|
+
* // object 1:
|
|
58
|
+
* // k: "species"
|
|
59
|
+
* // v: {dog: {price: 5}}
|
|
60
|
+
* // objectStore v:
|
|
61
|
+
* // object 0:
|
|
62
|
+
* // k: "open"
|
|
63
|
+
* // v: true
|
|
64
|
+
*
|
|
65
|
+
* persister.destroy();
|
|
66
|
+
* ```
|
|
67
|
+
* @category Creation
|
|
68
|
+
* @since v4.2.0
|
|
69
|
+
*/
|
|
70
|
+
export function createIndexedDbPersister(
|
|
71
|
+
store: Store,
|
|
72
|
+
dbName: string,
|
|
73
|
+
autoLoadIntervalSeconds?: number,
|
|
74
|
+
onIgnoredError?: (error: any) => void,
|
|
75
|
+
): Persister;
|
|
@@ -25,7 +25,7 @@ import {Store} from '../store';
|
|
|
25
25
|
* @param loadUrl The endpoint that supports a `GET` method to load JSON.
|
|
26
26
|
* @param saveUrl The endpoint that supports a `POST` method to save JSON.
|
|
27
27
|
* @param autoLoadIntervalSeconds How often to poll the `loadUrl` when
|
|
28
|
-
* automatically loading changes from the server.
|
|
28
|
+
* automatically loading changes from the server, defaulting to 5.
|
|
29
29
|
* @param onIgnoredError An optional handler for the errors that the Persister
|
|
30
30
|
* would otherwise ignore when trying to save or load data. This is suitable for
|
|
31
31
|
* debugging persistence issues in a development environment, since v4.0.4.
|
|
@@ -57,6 +57,6 @@ export function createRemotePersister(
|
|
|
57
57
|
store: Store,
|
|
58
58
|
loadUrl: string,
|
|
59
59
|
saveUrl: string,
|
|
60
|
-
autoLoadIntervalSeconds
|
|
60
|
+
autoLoadIntervalSeconds?: number,
|
|
61
61
|
onIgnoredError?: (error: any) => void,
|
|
62
62
|
): Persister;
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
* |-|-|-|
|
|
13
13
|
* |persister-browser|createSessionPersister|Browser session storage|
|
|
14
14
|
* |persister-browser|createLocalPersister|Browser local storage|
|
|
15
|
+
* |persister-indexed-db|createIndexedDbPersister|Browser IndexedDB|
|
|
15
16
|
* |persister-remote|createRemotePersister|Remote server|
|
|
16
17
|
* |persister-file|createFilePersister|Local file (where possible)|
|
|
17
18
|
* |persister-sqlite3|createSqlite3Persister|SQLite in Node, via [sqlite3](https://github.com/TryGhost/node-sqlite3)|
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The persister-indexed-db module of the TinyBase project lets you save and
|
|
3
|
+
* load Store data to and from browser IndexedDB storage.
|
|
4
|
+
* @see Persisting Data guide
|
|
5
|
+
* @packageDocumentation
|
|
6
|
+
* @module persister-indexed-db
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import {OptionalSchemas, Store} from '../store';
|
|
10
|
+
import {Persister} from '../persisters';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* The createIndexedDbPersister function creates a Persister object that can
|
|
14
|
+
* persist the Store to the browser's IndexedDB storage.
|
|
15
|
+
*
|
|
16
|
+
* This has schema-based typing. The following is a simplified representation:
|
|
17
|
+
*
|
|
18
|
+
* ```ts override
|
|
19
|
+
* createIndexedDbPersister(
|
|
20
|
+
* store: Store,
|
|
21
|
+
* dbName: string,
|
|
22
|
+
* autoLoadIntervalSeconds?: number,
|
|
23
|
+
* onIgnoredError?: (error: any) => void,
|
|
24
|
+
* ): Persister;
|
|
25
|
+
* ```
|
|
26
|
+
*
|
|
27
|
+
* As well as providing a reference to the Store to persist, you must provide a
|
|
28
|
+
* `dbName` parameter which is unique to your application. This is the key used
|
|
29
|
+
* to identify which IndexedDB to use.
|
|
30
|
+
*
|
|
31
|
+
* Within that database, this Persister will create two object stores: one
|
|
32
|
+
* called 't', and one called 'v'. These will contain the Store's tabular and
|
|
33
|
+
* key-value data respectively, using 'k' and 'v' to store the key and value of
|
|
34
|
+
* each entry, as shown in the example.
|
|
35
|
+
*
|
|
36
|
+
* Note that it is not possible to reactively detect changes to a browser's
|
|
37
|
+
* IndexedDB. If you do choose to enable automatic loading for the Persister
|
|
38
|
+
* (with the startAutoLoad method), it needs to poll the database for changes.
|
|
39
|
+
* The `autoLoadIntervalSeconds` method is used to indicate how often to do
|
|
40
|
+
* this.
|
|
41
|
+
* @param store The Store to persist.
|
|
42
|
+
* @param dbName The unique key to identify the IndexedDB to use.
|
|
43
|
+
* @param autoLoadIntervalSeconds How often to poll the database when in
|
|
44
|
+
* 'autoLoad' mode, defaulting to 1.
|
|
45
|
+
* @param onIgnoredError An optional handler for the errors that the Persister
|
|
46
|
+
* would otherwise ignore when trying to save or load data. This is suitable for
|
|
47
|
+
* debugging persistence issues in a development environment.
|
|
48
|
+
* @returns A reference to the new Persister object.
|
|
49
|
+
* @example
|
|
50
|
+
* This example creates a Persister object and persists the Store to the
|
|
51
|
+
* browser's IndexedDB storage.
|
|
52
|
+
*
|
|
53
|
+
* ```js
|
|
54
|
+
* const store =
|
|
55
|
+
* createStore()
|
|
56
|
+
* .setTable('pets', {fido: {species: 'dog'}})
|
|
57
|
+
* .setTable('species', {dog: {price: 5}})
|
|
58
|
+
* .setValues({open: true});
|
|
59
|
+
* const persister = createIndexedDbPersister(store, 'petStore');
|
|
60
|
+
*
|
|
61
|
+
* await persister.save();
|
|
62
|
+
* // IndexedDB ->
|
|
63
|
+
* // database petStore:
|
|
64
|
+
* // objectStore t:
|
|
65
|
+
* // object 0:
|
|
66
|
+
* // k: "pets"
|
|
67
|
+
* // v: {fido: {species: dog}}
|
|
68
|
+
* // object 1:
|
|
69
|
+
* // k: "species"
|
|
70
|
+
* // v: {dog: {price: 5}}
|
|
71
|
+
* // objectStore v:
|
|
72
|
+
* // object 0:
|
|
73
|
+
* // k: "open"
|
|
74
|
+
* // v: true
|
|
75
|
+
*
|
|
76
|
+
* persister.destroy();
|
|
77
|
+
* ```
|
|
78
|
+
* @category Creation
|
|
79
|
+
* @since v4.2.0
|
|
80
|
+
*/
|
|
81
|
+
export function createIndexedDbPersister<Schemas extends OptionalSchemas>(
|
|
82
|
+
store: Store<Schemas>,
|
|
83
|
+
dbName: string,
|
|
84
|
+
autoLoadIntervalSeconds?: number,
|
|
85
|
+
onIgnoredError?: (error: any) => void,
|
|
86
|
+
): Persister<Schemas>;
|
|
@@ -20,7 +20,7 @@ import {Persister} from '../persisters';
|
|
|
20
20
|
* store: Store,
|
|
21
21
|
* loadUrl: string,
|
|
22
22
|
* saveUrl: string,
|
|
23
|
-
* autoLoadIntervalSeconds
|
|
23
|
+
* autoLoadIntervalSeconds?: number,
|
|
24
24
|
* onIgnoredError?: (error: any) => void,
|
|
25
25
|
* ): Persister;
|
|
26
26
|
* ```
|
|
@@ -37,7 +37,7 @@ import {Persister} from '../persisters';
|
|
|
37
37
|
* @param loadUrl The endpoint that supports a `GET` method to load JSON.
|
|
38
38
|
* @param saveUrl The endpoint that supports a `POST` method to save JSON.
|
|
39
39
|
* @param autoLoadIntervalSeconds How often to poll the `loadUrl` when
|
|
40
|
-
* automatically loading changes from the server.
|
|
40
|
+
* automatically loading changes from the server, defaulting to 5.
|
|
41
41
|
* @param onIgnoredError An optional handler for the errors that the Persister
|
|
42
42
|
* would otherwise ignore when trying to save or load data. This is suitable for
|
|
43
43
|
* debugging persistence issues in a development environment, since v4.0.4.
|
|
@@ -69,6 +69,6 @@ export function createRemotePersister<Schemas extends OptionalSchemas>(
|
|
|
69
69
|
store: Store<Schemas>,
|
|
70
70
|
loadUrl: string,
|
|
71
71
|
saveUrl: string,
|
|
72
|
-
autoLoadIntervalSeconds
|
|
72
|
+
autoLoadIntervalSeconds?: number,
|
|
73
73
|
onIgnoredError?: (error: any) => void,
|
|
74
74
|
): Persister<Schemas>;
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
* |-|-|-|
|
|
13
13
|
* |persister-browser|createSessionPersister|Browser session storage|
|
|
14
14
|
* |persister-browser|createLocalPersister|Browser local storage|
|
|
15
|
+
* |persister-indexed-db|createIndexedDbPersister|Browser IndexedDB|
|
|
15
16
|
* |persister-remote|createRemotePersister|Remote server|
|
|
16
17
|
* |persister-file|createFilePersister|Local file (where possible)|
|
|
17
18
|
* |persister-sqlite3|createSqlite3Persister|SQLite in Node, via [sqlite3](https://github.com/TryGhost/node-sqlite3)|
|