tinybase 3.1.6 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/lib/cjs/queries.cjs +1 -1
  2. package/lib/cjs/queries.cjs.gz +0 -0
  3. package/lib/cjs/store.cjs +1 -1
  4. package/lib/cjs/store.cjs.gz +0 -0
  5. package/lib/cjs/tinybase.cjs +1 -1
  6. package/lib/cjs/tinybase.cjs.gz +0 -0
  7. package/lib/cjs/tools.cjs +1 -1
  8. package/lib/cjs/tools.cjs.gz +0 -0
  9. package/lib/cjs-es6/queries.cjs +1 -1
  10. package/lib/cjs-es6/queries.cjs.gz +0 -0
  11. package/lib/cjs-es6/store.cjs +1 -1
  12. package/lib/cjs-es6/store.cjs.gz +0 -0
  13. package/lib/cjs-es6/tinybase.cjs +1 -1
  14. package/lib/cjs-es6/tinybase.cjs.gz +0 -0
  15. package/lib/cjs-es6/tools.cjs +1 -1
  16. package/lib/cjs-es6/tools.cjs.gz +0 -0
  17. package/lib/debug/queries.js +1 -1
  18. package/lib/debug/store.js +19 -11
  19. package/lib/debug/tinybase.js +20 -12
  20. package/lib/debug/tools.js +8 -0
  21. package/lib/es6/queries.js +1 -1
  22. package/lib/es6/queries.js.gz +0 -0
  23. package/lib/es6/store.js +1 -1
  24. package/lib/es6/store.js.gz +0 -0
  25. package/lib/es6/tinybase.js +1 -1
  26. package/lib/es6/tinybase.js.gz +0 -0
  27. package/lib/es6/tools.js +1 -1
  28. package/lib/es6/tools.js.gz +0 -0
  29. package/lib/queries.js +1 -1
  30. package/lib/queries.js.gz +0 -0
  31. package/lib/store.js +1 -1
  32. package/lib/store.js.gz +0 -0
  33. package/lib/tinybase.js +1 -1
  34. package/lib/tinybase.js.gz +0 -0
  35. package/lib/tools.js +1 -1
  36. package/lib/tools.js.gz +0 -0
  37. package/lib/types/store.d.ts +53 -0
  38. package/lib/types/with-schemas/store.d.ts +59 -0
  39. package/lib/umd/queries.js +1 -1
  40. package/lib/umd/queries.js.gz +0 -0
  41. package/lib/umd/store.js +1 -1
  42. package/lib/umd/store.js.gz +0 -0
  43. package/lib/umd/tinybase.js +1 -1
  44. package/lib/umd/tinybase.js.gz +0 -0
  45. package/lib/umd/tools.js +1 -1
  46. package/lib/umd/tools.js.gz +0 -0
  47. package/lib/umd-es6/queries.js +1 -1
  48. package/lib/umd-es6/queries.js.gz +0 -0
  49. package/lib/umd-es6/store.js +1 -1
  50. package/lib/umd-es6/store.js.gz +0 -0
  51. package/lib/umd-es6/tinybase.js +1 -1
  52. package/lib/umd-es6/tinybase.js.gz +0 -0
  53. package/lib/umd-es6/tools.js +1 -1
  54. package/lib/umd-es6/tools.js.gz +0 -0
  55. package/package.json +6 -6
  56. package/readme.md +2 -2
package/lib/tools.js CHANGED
@@ -1 +1 @@
1
- const e=e=>typeof e,t="",l=e(t),a=e(!0),n=e(0),o="type",d="default",r="Listener",s="get",I="add",$="Ids",c="Table",i=c+"s",u=c+$,p="Row",b=p+$,C="Sorted"+p+$,h="Cell",g=h+$,m="Value",w=m+"s",f=m+$,y=(e,t)=>e.every(t),T=(e,t)=>e.sort(t),v=(e,t)=>e.forEach(t),V=(e,t)=>e.map(t),x=e=>e.length,R=e=>0==x(e),k=(e,t)=>e.filter(t),S=(e,...t)=>e.push(...t),P=e=>e.pop(),A=(e,...t)=>e.unshift(...t),E=e=>e.shift(),D=JSON.parse,O=isFinite,N=(e,t)=>e instanceof t,L=e=>null==e,j=e=>e==l||e==a,M=t=>e(t)==l,G=e=>Array.isArray(e),J=t=>{const l=e(t);return j(l)||l==n&&O(t)?l:void 0},z=(e,t)=>e?.has(t)??!1,W=e=>[...e?.values()??[]],B=(e,t)=>e?.forEach(t),F=(e,t)=>e?.delete(t),U=e=>new Map(e),_=(e,t)=>e?.get(t),Z=(e,t)=>B(e,((e,l)=>t(l,e))),H=(e,t)=>V([...e?.entries()??[]],(([e,l])=>t(l,e))),Q=(e,t,l)=>L(l)?(F(e,t),e):e?.set(t,l),q=(e,t,l)=>(z(e,t)||Q(e,t,l()),_(e,t)),K=e=>e.toUpperCase(),X=e=>e.toLowerCase(),Y="a ",ee="A function for",te=", and registers a listener so that any changes to that result will cause a re-render",le="Callback",ae="Del",ne="Deps",oe=ne+"?: React.DependencyList",de="doRollback?: DoRollback",re="actions: () => Return, "+de,se="export",Ie="Id",$e="Invalid",ce="Json",ie=X(r),ue="?: ",pe=" | undefined",be="NonNullable",Ce="Partial",he="Props",ge="Provider",me=`Registers a ${ie} that will be called`,we="Represents",fe="rowId: "+Ie,ye="Schema",Te="Set",ve=", descending?: boolean, offset?: number, limit?: number",Ve="[]",xe="the Store",Re="Transaction",ke=X(Re),Se="Execute a "+ke+" to make multiple mutations",Pe="Explicitly starts a "+ke,Ae="Explicitly finishes a "+ke,Ee="the end of the "+ke,De="void",Oe=" => "+De,Ne="WhenSet",Le=" when setting it",je=Y+"string serialization of",Me=" ",Ge="Gets a callback that can ",Je="the ",ze=" the schema for",We=(e=0,l=0)=>`the ${dt[e]}content of`+(l?Me+xe:t),Be=(e=0,l,a=0)=>at[l]+Me+We(e,1)+(a?" when setting it":t),Fe=(e,t=0)=>we+` a Row when ${t?"s":"g"}etting ${We()} the '${e}' `+c,Ue=(e,t,l=0)=>`Gets ${l?"sorted, paginated":"the"} Ids of the ${e}s in `+t,_e=(e,t)=>`Calls a function for each ${e} in `+t,Ze=e=>"The props passed to a component that renders "+e,He=e=>"A function that takes "+e,Qe=(e,t=0)=>ee+" listening to changes to "+ot[e]+" in "+ot[t],qe=(e,l,a=0)=>me+" whenever "+ot[e]+" in "+ot[l]+" change"+(a?t:"s"),Ke=e=>`the '${e}' `+c,Xe=e=>"the specified Row in "+Ke(e),Ye=(e,t=0)=>at[t]+` ${We()} `+Ke(e),et=(e,t=0)=>at[t]+` ${We()} `+Xe(e),tt=(e,t,l=0)=>at[l]+` the '${t}' Cell for `+Xe(e),lt=(e,t=0)=>at[t]+` the '${e}' Value`,at=["Gets","Checks existence of","Sets","Deletes","Sets part of",we,"Gets "+je,"Sets "+je,me+" whenever",Ge+"set",Ge+"add",Ge+"set part of",Ge+"delete","Renders","Gets "+je+ze,"Sets"+ze,"Deletes"+ze],nt=[s,"has","set","del","set","forEach",I,t],ot=[xe,i,Je+c+Me+$,Y+c,Je+p+Me+$,Y+p,Je+h+Me+$,Y+h,"invalid Cell changes",w,Je+m+Me+$,Y+m,"invalid Value changes",Je+"sorted "+p+Me+$],dt=[t,"tabular ","keyed value "],rt=e=>new Set(G(e)||L(e)?e:[e]),st=(e,t)=>e?.add(t),It=/[^A-Za-z]+/,$t=/[^A-Za-z0-9]+/,ct=/^( *)\/\*\* *(.*?) *\*\/$/gm,it=(e,t,l)=>e.substring(t,l),ut=e=>e.includes(","),pt=(e,t,l,a=1)=>{const n=`${t}${1==a?"":a}`;return z(e,n)?pt(e,t,l,a+1):(Q(e,n,l),n)},bt=e=>e.replace(ct,((e,t,l)=>{const a=77-Ct(t);return`${t}/**\n${l.replace(RegExp(`([^\\n]{1,${a}})(\\s|$)`,"g"),t+" * $1\n")}${t} */`})),Ct=e=>e.length,ht=(e,l=t)=>e.join(l),gt=e=>e.flat(1e3),mt=(e,t=0)=>ht(V(e.split($t),((e,l)=>(l>0||t?K:X)(it(e,0,1))+it(e,1)))),wt=e=>K(ht((e&&!It.test(e[0])?e:" "+e).split($t),"_")),ft=e=>`/** ${e}. */`,yt=(...e)=>ht(k(e,(e=>e)),", "),Tt=(...e)=>"{"+ht(e,"; ")+"}",vt=(...e)=>Tt(...V(e,(e=>"readonly "+e))),Vt=()=>{const e=[U(),U(),U(),U()],l=U(),a=U();return[(...e)=>ht(gt(e),"\n"),(t,l,...a)=>v(a,(a=>v([0,1],(n=>(t??n)==n?st(q(e[n],l,rt),a):0)))),(e,a,n,o=t,d=1)=>pt(l,e,[a,n,o,d]),(e,t,l)=>pt(a,e,G(l)?[`(${t}) => {`,l,"}"]:[`(${t}) => ${l}`]),(e,t)=>_(a,e)===t?e:pt(a,e,t),(l=0)=>V([...T(H(e[l],((e,t)=>`import {${ht(T(W(e)),", ")}} from '${t}';`)),((e,t)=>ut(e)!=ut(t)?ut(e)?-1:1:e>t?1:-1)),t],(e=>e.replace("{React}","React"))),()=>H(l,(([e,l,a,n],o)=>[ft(l),`${n?se+" ":t}type ${o}${a} = ${e};`,t])),()=>H(a,((e,l)=>(e=G(e)?e:[e],S(e,P(e)+";"),[`const ${l} = ${E(e)}`,e,t])))]},xt=Object,Rt=xt.keys,kt=xt.freeze,St=e=>N(e,xt)&&e.constructor==xt,Pt=(e,t)=>V(xt.entries(e),(([e,l])=>t(l,e))),At=e=>St(e)&&R(Rt(e)),Et=e=>{const t=new WeakMap;return l=>(t.has(l)||t.set(l,e(l)),t.get(l))},Dt=(e,t,l)=>[t=>Pt(e,((e,a)=>t(a,mt(a,1),l(wt(a),`'${a}'`)))),(t,a)=>Pt(e[t],((e,t)=>a(t,e[o],e[d],l(wt(t),`'${t}'`),mt(t,1)))),e=>Pt(t,((t,a)=>e(a,t[o],t[d],l(wt(a),`'${a}'`),mt(a,1))))],Ot=(e,l,a,n)=>[(n,o)=>{const d=n+": "+o,s=e(i,Tt(...l((e=>`'${e}'?: {[rowId: Id]: `+Tt(...a(e,((e,l,a)=>`'${e}'${L(a)?"?":t}: ${l}`)))+"}"))),Be(1,5)),I=e(i+Ne,Tt(...l((e=>`'${e}'?: {[rowId: Id]: `+Tt(...a(e,((e,t)=>`'${e}'?: ${t}`)))+"}"))),Be(1,5,1)),$=e(c+Ie,"keyof "+s,"A "+c+" Id in "+xe),m=`<TId extends ${$}>`,w=e(c,be+`<${s}[TId]>`,"A "+c+" in "+xe,m),f=e(c+Ne,be+`<${I}[TId]>`,"A "+c+" in "+xe+Le,m),y=e(p,w+"<TId>[Id]","A "+p+" in a "+c,m),T=e(p+Ne,f+"<TId>[Id]","A "+p+" in a "+c+Le,m),v=e(h+Ie,`Extract<keyof ${y}<TId>, Id>`,"A "+h+" Id in a "+p,m),V=e(h,be+`<${s}[TId]>[Id][CId]`,"A "+h+" in a "+p,`<TId extends ${$}, CId extends ${v}<TId>>`),x=e("CellIdCellArray",`CId extends ${v}<TId> ? [cellId: CId, cell: ${V}<TId, CId>] : never`,h+" Ids and types in a "+p,`<TId extends ${$}, CId = ${v}<TId>>`,0),R=e(h+le,`(...[cellId, cell]: ${x}<TId>)`+Oe,He(Y+h+" Id, and "+h),m),k=e(p+le,"(rowId: Id, forEachCell: (cellCallback: CellCallback<TId>) "+Oe+") "+Oe,He(Y+p+" Id, and a "+h+" iterator"),m),S=e("TableIdForEachRowArray",`TId extends ${$} ? [tableId: TId, forEachRow: (rowCallback: ${k}<TId>)${Oe}] : never`,c+" Ids and callback types",`<TId = ${$}>`,0),P=e(c+le,`(...[tableId, forEachRow]: ${S})`+Oe,He(Y+c+" Id, and a "+p+" iterator"),t),A=e("TableIdRowIdCellIdArray",`TId extends ${$} ? [tableId: TId, rowId: Id, cellId: ${v}<TId>] : never`,"Ids for GetCellChange",`<TId = ${$}>`,0),E=e("GetCellChange",`(...[tableId, rowId, cellId]: ${A}) => CellChange`,ee+" returning information about any Cell's changes during a "+ke),D=e(i+r,`(${d}, getCellChange: ${E}${pe})`+Oe,Qe(1)),O=e(u+r,`(${d})`+Oe,Qe(2)),N=e(c+r,`(${d}, tableId: ${$}, getCellChange: ${E}${pe})`+Oe,Qe(3)),j=e(b+r,`(${d}, tableId: ${$})`+Oe,Qe(4,3)),M=e(C+r,"("+yt(d,"tableId: "+$,"cellId: Id"+pe,"descending: boolean","offset: number","limit: number"+pe,"sortedRowIds: Ids")+")"+Oe,Qe(13,3)),G=e(p+r,"("+yt(""+d,"tableId: "+$,fe,`getCellChange: ${E}${pe}`)+")"+Oe,Qe(5,3)),J=e(g+r,"("+yt(""+d,"tableId: "+$,fe)+")"+Oe,Qe(6,5)),z=e("CellListenerArgsArrayInner",`CId extends ${v}<TId> ? [${d}, tableId: TId, ${fe}, cellId: CId, newCell: ${V}<TId, CId> ${pe}, oldCell: ${V}<TId, CId> ${pe}, getCellChange: ${E} ${pe}] : never`,"Cell args for CellListener",`<TId extends ${$}, CId = ${v}<TId>>`,0),W=e("CellListenerArgsArrayOuter",`TId extends ${$} ? `+z+"<TId> : never","Table args for CellListener",`<TId = ${$}>`,0);return[s,I,$,w,f,y,T,v,V,R,k,P,D,O,N,j,M,G,J,e(h+r,`(...[${n}, tableId, rowId, cellId, newCell, oldCell, getCellChange]: ${W})`+Oe,Qe(7,5)),e($e+h+r,`(${d}, tableId: Id, ${fe}, cellId: Id, invalidCells: any[])`+Oe,Qe(8))]},(l,a)=>{const o=l+": "+a,d=e(w,Tt(...n(((e,l,a)=>`'${e}'${L(a)?"?":t}: ${l}`))),Be(2,5)),s=e(w+Ne,Tt(...n(((e,t)=>`'${e}'?: ${t}`))),Be(2,5,1)),I=e(m+Ie,"keyof "+d,"A "+m+" Id in "+xe),$=e(m,be+`<${d}[VId]>`,"A "+m+" Id in "+xe,`<VId extends ${I}>`),c=e("ValueIdValueArray",`VId extends ${I} ? [valueId: VId, value: ${$}<VId>] : never`,m+" Ids and types in "+xe,`<VId = ${I}>`,0),i=e(m+le,`(...[valueId, value]: ${c})`+Oe,He(Y+m+" Id, and "+m)),u=e("GetValueChange",`(valueId: ${I}) => ValueChange`,ee+" returning information about any Value's changes during a "+ke),p=e(w+r,`(${o}, getValueChange: ${u}${pe})`+Oe,Qe(9)),b=e(f+r,`(${o})`+Oe,Qe(10)),C=e("ValueListenerArgsArray",`VId extends ${I} ? [${o}, valueId: VId, newValue: ${$}<VId> ${pe}, oldValue: ${$}<VId> ${pe}, getValueChange: ${u} ${pe}] : never`,"Value args for ValueListener",`<VId = ${I}>`,0);return[d,s,I,$,i,p,b,e(m+r,`(...[${l}, valueId, newValue, oldValue, getValueChange]: `+C+")"+Oe,Qe(11)),e($e+m+r,`(${o}, valueId: Id, invalidValues: any[])`+Oe,Qe(12))]},(t,l)=>e(Re+r,`(${t}: ${l}, cellsTouched: boolean, valuesTouched: boolean)`+Oe,ee+" listening to the completion of a "+ke)],Nt=(e,l=t,a=t)=>`store.${e}(${l})`+(a?" as "+a:t),Lt=(e,l=t)=>`fluent(() => ${Nt(e,l)})`,jt=(e,l=t,a=t)=>`store.${e}(${l?l+", ":t}proxy(listener)${a?", "+a:t})`,Mt=(e,l,n)=>{const[s,y,T,V,x,R,k,P]=Vt(),[E,D,O]=Dt(e,l,x),[N,j,G]=Ot(T,E,D,O),J=U(),z=(e=0)=>H(J,(([l,a,n,o,d],r)=>{const s=e?[r+`: ${d}(${l}): ${a} => ${n},`]:[r+d+`(${l}): ${a};`];return e||A(s,ft(o)),S(s,t),s})),B=(e,l,a,n,o,d=t)=>pt(J,e,[l,a,n,o,d]),F=(e,l,a,n,o,d=t,r=t,s=t)=>B(nt[e]+l+(4==e?Ce:t)+a,d,n,(n==X?Lt:Nt)(nt[e]+(4==e?Ce:t)+a,r,e?void 0:n),o,s),q=(e,l,a,n=t,o=t,d=1,s=t)=>B(I+e+r,(n?n+", ":t)+ie+": "+l+(d?", mutator?: boolean":t),Ie,jt(I+e+r,o,d?"mutator":t),a,s),K=`./${mt(n)}.d`,X=mt(n,1),Y=mt(X),ee=[],te=U();let ae=[],ne=[];if(y(1,K,X,`create${X} as create${X}Decl`),!At(e)){y(0,"tinybase","CellChange"),y(null,"tinybase",$);const[e,l,n,r,s,I,m,w,f,V,R,k,P,A,O,j,G,J,z,B,Z]=N(Y,X),H=U();E(((e,t)=>{const l=`<'${e}'>`,a=[T(t+c,r+l,we+` the '${e}' `+c),T(t+c+Ne,s+l,we+` the '${e}' `+c+Le),T(t+p,I+l,Fe(e)),T(t+p+Ne,m+l,Fe(e,1)),T(t+h+Ie,w+l,`A Cell Id for the '${e}' `+c),T(t+h+le,V+l,He(`a Cell Id and value from a Row in the '${e}' `+c)),T(t+p+le,R+l,He(`a Row Id from the '${e}' Table, and a Cell iterator`))];Q(H,e,a),y(1,K,...a)})),y(1,K,e,l,n,w,k,P,A,O,j,G,J,z,B,Z),ae=[e,l,n,w,P,A,O,j,G,J,z,B,H],v([[e],[a],[X,"tables: "+l,"tables"],[X]],(([e,l,a],n)=>F(n,t,i,e,Be(1,n),l,a))),F(0,t,u,n+Ve,Ue(c,xe)),F(5,t,c,De,_e(c,xe),"tableCallback: "+k,"tableCallback as any"),E(((e,l,n)=>{const[o,d,r,s,I,i,u]=_(H,e);v([[o],[a],[X,"table: "+d,", table"],[X]],(([a,o,d=t],r)=>F(r,l,c,a,Ye(e,r),o,n+d))),F(0,l,b,$,Ue(p,Ke(e)),t,n),F(0,l,C,$,Ue(p,Ke(e),1),"cellId?: "+I+ve,n+", cellId, descending, offset, limit"),F(5,l,p,De,_e(p,Ke(e)),"rowCallback: "+u,n+", rowCallback as any"),v([[r],[a],[X,", row: "+s,", row"],[X],[X,", partialRow: "+s,", partialRow"]],(([a,o=t,d=t],r)=>F(r,l,p,a,et(e,r),fe+o,n+", rowId"+d))),F(6,l,p,Ie+pe,"Add a new Row to "+Ke(e),"row: "+s+", reuseIds?: boolean",n+", row, reuseIds"),F(0,l,g,I+Ve,Ue(h,Xe(e)),fe,n+", rowId"),F(5,l,h,De,_e(h,Xe(e)),fe+", cellCallback: "+i,n+", rowId, cellCallback as any"),D(e,((o,d,r,s,I)=>{const $="Map"+mt(d,1);Q(te,d,$);const c=d+(L(r)?pe:t);v([[c],[a],[X,`, cell: ${d} | `+$,", cell as any"],[X]],(([a,d=t,r=t],$)=>F($,l+I,h,a,tt(e,o,$),fe+d,n+", rowId, "+s+r)))}))})),F(0,t,i+ce,ce,Be(1,6)),F(2,t,i+ce,X,Be(1,7),"tablesJson: "+ce,"tables"+ce),q(i,P,Be(1,8)+" changes"),q(u,A,qe(2,0,1)),q(c,O,qe(3,0),`tableId: ${n} | null`,"tableId"),q(b,j,qe(4,3,1),`tableId: ${n} | null`,"tableId"),q(C,G,qe(13,3,1),yt("tableId: TId",`cellId: ${w}<TId>`+pe,"descending: boolean","offset: number","limit: number"+pe),yt("tableId","cellId","descending","offset","limit"),1,"<TId extends TableId>"),q(p,J,qe(5,3),`tableId: ${n} | null, rowId: IdOrNull`,"tableId, rowId"),q(g,z,qe(6,5,1),`tableId: ${n} | null, rowId: IdOrNull`,"tableId, rowId"),q(h,B,qe(7,5),`tableId: ${n} | null, rowId: IdOrNull, cellId: ${ht(E((e=>_(H,e)?.[4]??t))," | ")} | null`,"tableId, rowId, cellId"),q($e+h,Z,me+" whenever an invalid Cell change was attempted","tableId: IdOrNull, rowId: IdOrNull, cellId: IdOrNull","tableId, rowId, cellId"),y(1,K,...W(te)),S(ee,".set"+i+ye+"({",gt(E(((e,l,a)=>[`[${a}]: {`,...D(e,((e,l,a,n)=>`[${n}]: {[${x(wt(o),`'${o}'`)}]: ${x(wt(l),`'${l}'`)}${L(a)?t:`, [${x(wt(d),`'${d}'`)}]: `+(M(a)?x(wt(a),`'${a}'`):a)}},`)),"},"]))),"})")}if(!At(l)){const[e,l,n,r,s,I,$,c,i]=j(Y,X);y(1,K,e,l,n,s,I,$,c,i),ne=[e,l,n,I,$,c],v([[e],[a],[X,"values: "+l,"values"],[X],[X,"partialValues: "+l,"partialValues"]],(([e,l,a],n)=>F(n,t,w,e,Be(2,n),l,a))),F(0,t,f,n+Ve,Ue(m,xe)),F(5,t,m,"void",_e(m,xe),"valueCallback: "+s,"valueCallback as any"),O(((e,l,n,o,d)=>{const r="Map"+mt(l,1);Q(te,l,r),v([[l],[a],[X,`value: ${l} | `+r,", value as any"],[X]],(([l,a,n=t],r)=>F(r,d,m,l,lt(e,r),a,o+n)))})),F(0,t,w+ce,ce,Be(2,6)),F(2,t,w+ce,X,Be(2,7),"valuesJson: "+ce,"values"+ce),q(w,I,Be(2,8)+" changes"),q(f,$,qe(10,0,1)),q(m,c,qe(11,0),`valueId: ${n} | null`,"valueId"),q($e+m,i,me+" whenever an invalid Value change was attempted","valueId: IdOrNull","valueId"),y(1,K,...W(te)),y(0,"tinybase","ValueChange"),S(ee,".set"+w+ye+"({",O(((e,l,a,n)=>[`[${n}]: {[${x(wt(o),`'${o}'`)}]: ${x(wt(l),`'${l}'`)}${L(a)?t:`, [${x(wt(d),`'${d}'`)}]: `+(M(a)?x(wt(a),`'${a}'`):a)}},`])),"})")}Z(te,((e,t)=>T(t,`(cell: ${e}${pe}) => `+e,`Takes a ${e} Cell value and returns another`))),y(null,"tinybase","DoRollback",Ie,"IdOrNull",ce,"Store"),F(0,t,ce,ce,Be(0,6)),F(2,t,ce,X,Be(0,7),"tablesAndValuesJson: "+ce,"tablesAndValuesJson"),F(7,t,ke,"Return",Se,re,"actions, doRollback","<Return>"),F(7,t,"start"+Re,X,Pe),F(7,t,"finish"+Re,X,Ae,de,"doRollback");const oe=G(Y,X);return q("WillFinish"+Re,oe,me+" just before "+Ee,t,t,0),q("DidFinish"+Re,oe,me+" just after "+Ee,t,t,0),F(7,t,"call"+r,X,"Manually provoke a listener to be called","listenerId: Id","listenerId"),F(3,t,r,X,"Remove a listener that was previously added to "+xe,"listenerId: Id","listenerId"),B("getStore",t,"Store","store",at[0]+" the underlying Store object"),y(1,"tinybase","createStore"),y(1,K,X,`create${X} as create${X}Decl`,oe),x("store",["createStore()",...ee]),V("fluent","actions: () => Store",["actions();",`return ${Y};`]),V("proxy","listener: any",`(_: Store, ...params: any[]) => listener(${Y}, ...params)`),x(Y,["{",...z(1),"}"]),[s(...R(0),...k(),se+" interface "+X+" {",...z(0),"}",t,ft(`Creates a ${X} object`),se+" function create"+X+"(): "+X+";"),s(...R(1),se+" const create"+X+": typeof create"+X+"Decl = () => {",...P(),`return Object.freeze(${Y});`,"};"),ae,ne]},Gt=e=>s+e,Jt=e=>yt(Gt(e),Gt(e)+ne),zt="debugIds?: boolean",Wt="debugIds={debugIds}",Bt="then"+oe,Ft="Parameter",Ut=": (parameter: "+Ft+", store: Store) => ",_t="const contextValue = useContext(Context);",Zt=", based on a parameter",Ht=": ",Qt="<"+Ft+",>",qt=Ft+"ized"+le+"<"+Ft+">",Kt="rowId",Xt="rowId={rowId}",Yt=", separator, debugIds",el="separator?: ReactElement | string",tl="then?: (store: Store",ll=yt(tl+")"+Oe,Bt),al="then, then"+ne,nl=Kt+Ht+Ie,ol="View",dl=(e,...t)=>yt(...t,ie+": "+e,ie+oe,"mutator?: boolean"),rl=(...e)=>yt(...e,ie,ie+ne,"mutator"),sl=(e,l,a,n,o)=>{const[d,s,I,y,T,v,V,x]=Vt(),[R,k,P]=Dt(e,l,T),E=`./${mt(a)}.d`,D=`./${mt(a)}-ui-react.d`,O="tinybase/ui-react",N=mt(a,1),j=mt(N),M=N+"Or"+N+Ie,G=j+"Or"+N+Ie,J=j+`={${j}}`,z=U(),W=(e,l,a,n,o,d=t)=>(s(1,D,e+" as "+e+"Decl"),pt(z,e,[l,a,n,o,d])),B=(e,l,a,n,o,d=t)=>W("use"+e,l,a,n,o,d),F=(e,l,a,n,o=t,d=t,r=t,I=t,$=t)=>(s(1,O,`use${l} as use${l}Core`),B(e,yt(o,X,I),a,ne+`(${G}, use${l}Core, [`+(d||t)+($?"], ["+$:t)+"]);",n,r)),Z=(e,t,l,a)=>W(e,t,1,l,a),Q=(e=0)=>H(z,(([l,a,n,o,d],r)=>{const s=e?[se+` const ${r}: typeof ${r}Decl = ${d}(${l}): ${1==a?"any":a} =>`,n]:[se+` function ${r}${d}(${l}): ${1==a?"ComponentReturnType":a};`];return e||A(s,ft(o)),S(s,t),s}));s(null,"tinybase",Ie,"Store",le,Ft+"ized"+le),s(0,O,"ComponentReturnType"),s(null,O,"ExtraProps"),s(0,E,N);const q=I(M,N+" | "+Ie,`Used when you need to refer to a ${N} in a React hook or component`),K=I(ge+he,vt(j+ue+N,j+`ById?: {[${j}Id: Id]: ${N}}`),`Used with the ${ge} component, so that a `+N+" can be passed into the context of an application");s(0,"react","ReactElement","ComponentType"),s(1,"react","React"),s(1,D,q,K);const X=G+ue+q;T("{createContext, useContext, useMemo}","React"),T("Context",`createContext<[${N}?, {[${j}Id: Id]: ${N}}?]>([])`),B("Create"+N,`create: () => ${N}, create`+oe,N,"\n// eslint-disable-next-line react-hooks/exhaustive-deps\nuseMemo(create, createDeps)",`Create a ${N} within a React application with convenient memoization`);const ee=B(N,"id?: Id",N+pe,["{",_t,"return id == null ? contextValue[0] : contextValue[1]?.[id];","}"],`Get a reference to a ${N} from within a ${ge} component context`),ne=y("useHook",G+`: ${q} | undefined, hook: (...params: any[]) => any, preParams: any[], postParams: any[] = []`,[`const ${j} = ${ee}(${G} as Id);`,`return hook(...preParams, ((${G} == null || typeof ${G} == 'string')`,`? ${j} : ${G})?.getStore(), ...postParams)`]),de=y("getProps","getProps: ((id: any) => ExtraProps) | undefined, id: Id","(getProps == null) ? ({} as ExtraProps) : getProps(id)"),re=y("wrap",yt("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;"]),$e=T("NullComponent","() => null");if(!At(e)){const[e,l,a,o,d,m,w,f,T,v,V,x,S]=n;s(null,E,e,l,a,d,m,w,f,T,v,V,x),s(0,E,o),s(1,E,N),s(null,"tinybase",$,"IdOrNull");const P=y("tableView",`{${j}, rowComponent, getRowComponentProps`+Yt+"}: any, rowIds: Ids, tableId: Id, defaultRowComponent: React.ComponentType<any>",["const Row = rowComponent ?? defaultRowComponent;",`return ${re}(rowIds.map((rowId) => (`,"<Row","{..."+de+"(getRowComponentProps, rowId)}","key={rowId}","tableId={tableId}",Xt,J,Wt,"/>","))",Yt,", tableId,",");"]),A=y("getDefaultTableComponent","tableId: Id",ht(R(((e,t,l)=>`tableId == ${l} ? ${t}TableView : `)))+$e),O=y("getDefaultCellComponent","tableId: Id, cellId: Id",ht(R(((e,t,l)=>`tableId == ${l} ? ${ht(k(e,((e,l,a,n,o)=>`cellId == ${n} ? `+t+o+"CellView : ")))+$e} : `)))+$e);F(i,i,e,Be(1,0)+te);const M=F(u,u,a+Ve,Ue(c,xe)+te);F(Te+i+le,Te+i+le,qt,Be(1,9)+Zt,yt(Gt(i)+Ut+l,Gt(i)+oe),Jt(i),Qt,yt(tl,`tables: ${l})`+Oe,Bt),al),F(ae+i+le,ae+i+le,le,Be(1,12),t,t,t,ll,al);const G=I(h+he,vt("tableId?: TId","rowId: Id","cellId?: CId",j+ue+N,zt),Ze(Y+h),`<TId extends ${a}, CId extends ${o}<TId>>`),z=I(p+he,vt("tableId?: TId","rowId: Id",j+ue+N,"cellComponents?: {readonly [CId in "+o+`<TId>]?: ComponentType<${G}<TId, CId>>;}`,`getCellComponentProps?: (cellId: ${o}<TId>) => ExtraProps`,el,zt),Ze(Y+p),`<TId extends ${a}>`),W=I(c+he,vt("tableId?: TId",j+ue+N,`rowComponent?: ComponentType<${z}<TId>>`,"getRowComponentProps?: (rowId: Id) => ExtraProps",el,zt),Ze(Y+c),`<TId extends ${a}>`),B=I("Sorted"+c+he,vt("tableId?: TId","cellId?: "+o+"<TId>","descending?: boolean","offset?: number","limit?: number",j+ue+N,`rowComponent?: ComponentType<${z}<TId>>`,"getRowComponentProps?: (rowId: Id) => ExtraProps",el,zt),Ze(Y+"sorted "+c),`<TId extends ${a}>`),U=I(i+he,vt(j+ue+N,"tableComponents?: {readonly [TId in "+a+`]?: ComponentType<${W}<TId>>;}`,`getTableComponentProps?: (tableId: ${a}) => ExtraProps`,el,zt),Ze(We(1,1)));s(1,D,U,W,B,z,G),Z(i+ol,"{"+j+", tableComponents, getTableComponentProps"+Yt+"}: "+U,[re+`(${M}(${j}).map((tableId) => {`,"const Table = (tableComponents?.[tableId] ?? "+A+"(tableId)) as React.ComponentType<TableProps<typeof tableId>>;","return <Table",`{...${de}(getTableComponentProps, tableId)}`,"tableId={tableId}","key={tableId}",J,Wt,"/>;","}), separator)"],Be(1,13)+te),R(((e,l,a)=>{const[n,o,d,r,I]=_(S,e);s(null,E,n,o,d,r,I),F(l+c,c,n,Ye(e)+te,t,a);const i=F(l+b,b,$,Ue(p,Ke(e))+te,t,a),u=F(l+C,C,$,Ue(p,Ke(e),1)+te,"cellId?: "+I+", descending?: boolean, offset?: number, limit?: number",a+", cellId, descending, offset, limit");F(l+p,p,d,et(e)+te,nl,yt(a,Kt));const m=F(l+g,g,I+Ve,Ue(h,Xe(e))+te,nl,yt(a,Kt));F(Te+l+c+le,Te+c+le,qt,Ye(e,9)+Zt,yt(Gt(c)+Ut+o,Gt(c)+oe),yt(a,Jt(c)),Qt,yt(tl,`table: ${o})`+Oe,Bt),al),F(ae+l+c+le,ae+c+le,le,Ye(e,12),t,a,t,ll,al),F(Te+l+p+le,Te+p+le,qt,et(e,9)+Zt,yt(nl,Gt(p)+Ut+r,Gt(p)+oe),yt(a,Kt,Jt(p)),Qt,yt(tl,`row: ${r})`+Oe,Bt),al),F("Add"+l+p+le,"Add"+p+le,qt,et(e,10)+Zt,yt(Gt(p)+Ut+r,Gt(p)+oe),yt(a,Jt(p)),Qt,"then?: ("+yt(nl+pe,"store: Store","row: "+r+")"+Oe,"then"+oe)+", reuseRowIds?: boolean",al+", reuseRowIds"),F(Te+l+Ce+p+le,Te+Ce+p+le,qt,et(e,11)+Zt,yt(nl,Gt(Ce+p)+Ut+r,Gt(Ce+p)+oe),yt(a,Kt,Jt(Ce+p)),Qt,yt(tl,`partialRow: ${r})`+Oe,Bt),al),F(ae+l+p+le,ae+p+le,le,et(e,12),nl,yt(a,Kt),t,ll,al);const w=Z(l+p+ol,"{rowId, "+j+", cellComponents, getCellComponentProps"+Yt+`}: ${z}<'${e}'>`,[re+`(${m}(rowId, ${j}).map((cellId) => {`,"const Cell = (cellComponents?.[cellId] ?? "+O+`(${a}, cellId)) as React.ComponentType<CellProps<typeof `+a+", typeof cellId>>;","return <Cell",`{...${de}(getCellComponentProps, cellId)} `,"key={cellId}",`tableId={${a}}`,Xt,"cellId={cellId}",J,Wt,"/>;","})"+Yt+", rowId)"],et(e,13)+te);Z(l+"Sorted"+c+ol,"{cellId, descending, offset, limit, ...props}: "+B+`<'${e}'>`,P+"(props, "+u+`(cellId, descending, offset, limit, props.${j}), ${a}, ${w});`,Ye(e,13)+", sorted"+te),Z(l+c+ol,`props: ${W}<'${e}'>`,P+"(props, "+i+`(props.${j}), ${a}, ${w});`,Ye(e,13)+te),k(e,((n,o,d,r,I)=>{const $="Map"+mt(o,1);s(0,E,$),s(1,E,$);const c=F(l+I+h,h,o+(L(d)?pe:t),tt(e,n)+te,nl,yt(a,Kt,r));F(Te+l+I+h+le,Te+h+le,qt,tt(e,n,9)+Zt,yt(nl,Gt(h)+Ut+o+" | "+$,Gt(h)+oe),yt(a,Kt,r,Jt(h)),Qt,yt(tl,`cell: ${o} | ${$})`+Oe,Bt),al),F(ae+l+I+h+le,ae+h+le,le,tt(e,n,12),yt(nl,"forceDel?: boolean"),yt(a,Kt,r,"forceDel"),t,ll,al),Z(l+I+h+ol,`{rowId, ${j}, debugIds}: `+G+`<'${e}', '${n}'>`,[re+`('' + ${c}(rowId, `+j+`) ?? '', undefined, debugIds, ${r})`],tt(e,n,13)+te)}))}));const H=ht(R((e=>_(S,e)?.[4]??t))," | ");F(i+r,i+r,De,Be(1,8)+" changes",dl(d),rl()),F(u+r,u+r,De,qe(2,0,1),dl(m),rl()),F(c+r,c+r,De,qe(3,0),dl(w,`tableId: ${a} | null`),rl("tableId")),F(b+r,b+r,De,qe(4,3,1),dl(f,`tableId: ${a} | null`),rl("tableId")),F(C+r,C+r,De,qe(13,3,1),dl(T,`tableId: ${a} | null`,"cellId: "+H+pe,"descending: boolean","offset: number","limit: number"+pe),rl("tableId","cellId","descending","offset","limit")),F(p+r,p+r,De,qe(5,3),dl(v,`tableId: ${a} | null`,Kt+": IdOrNull"),rl("tableId",Kt)),F(g+r,g+r,De,qe(6,5,1),dl(V,`tableId: ${a} | null`,Kt+": IdOrNull"),rl("tableId",Kt)),F(h+r,h+r,De,qe(7,5),dl(x,`tableId: ${a} | null`,Kt+": IdOrNull",`cellId: ${H} | null`),rl("tableId",Kt,"cellId"))}if(!At(l)){const[e,l,a,n,d,$]=o;s(null,E,...o),s(1,E,N);const c=y("getDefaultValueComponent","valueId: Id",ht(P(((e,t,l,a,n)=>`valueId == ${a} ? `+n+"ValueView : ")))+$e);F(w,w,e,Be(2,0)+te);const i=F(f,f,a+Ve,Ue(m,xe)+te);F(Te+w+le,Te+w+le,qt,Be(2,9)+Zt,yt(Gt(w)+Ut+l,Gt(w)+oe),Jt(w),Qt,yt(tl,`values: ${l})`+Oe,Bt),al),F(Te+Ce+w+le,Te+Ce+w+le,qt,Be(2,11)+Zt,yt(Gt(Ce+w)+Ut+l,Gt(Ce+w)+oe),Jt(Ce+w),Qt,yt(tl,`partialValues: ${l})`+Oe,Bt),al),F(ae+w+le,ae+w+le,le,Be(2,12),t,t,t,ll,al);const u=I(m+he,vt("valueId?: VId",j+ue+N,zt),Ze("a Value"),`<VId extends ${a}>`),p=I(w+he,vt(j+ue+N,"valueComponents?: {readonly [VId in "+a+`]?: ComponentType<${u}<VId>>;}`,`getValueComponentProps?: (valueId: ${a}) => ExtraProps`,el,zt),Ze(We(2,1)));s(1,D,p,u),Z(w+ol,"{"+j+", valueComponents, getValueComponentProps"+Yt+"}: "+p,[re+`(${i}(${j}).map((valueId) => {`,"const Value = valueComponents?.[valueId] ?? "+c+"(valueId);","return <Value",`{...${de}(getValueComponentProps, valueId)}`,"key={valueId}",J,Wt,"/>;","}), separator)"],Be(2,13)+te),P(((e,l,a,n,o)=>{const d="Map"+mt(l,1);s(0,E,d),s(1,E,d);const r=F(o+m,m,l,lt(e)+te,t,n);F(Te+o+m+le,Te+m+le,qt,lt(e,9)+Zt,yt(Gt(m)+Ut+l+" | "+d,Gt(m)+oe),yt(n,Jt(m)),Qt,yt(tl,`value: ${l} | ${d})`+Oe,Bt),al),F(ae+o+m+le,ae+m+le,le,lt(e,12),t,n,t,ll,al),Z(o+m+ol,`{${j}, debugIds}: ${u}<'${e}'>`,[re+`('' + ${r}(`+j+`) ?? '', undefined, debugIds, ${n})`],lt(e,13)+te)})),F(w+r,w+r,De,Be(2,8)+" changes",dl(n),rl()),F(f+r,f+r,De,qe(10,0,1),dl(d),rl()),F(m+r,m+r,De,qe(11,0),dl($,`valueId: ${a} | null`),rl("valueId"))}return Z(ge,`{${j}, ${j}ById, children}: `+K+" & {children: React.ReactNode}",["{",_t,"return (","<Context."+ge,"value={useMemo(",`() => [${j} ?? contextValue[0], {...contextValue[1], ...${j}ById}],`,`[${j}, ${j}ById, contextValue],`,")}>","{children}",`</Context.${ge}>`,");","}"],"Wraps part of an application in a context that provides default objects to be used by hooks and components within"),[d(...v(0),...V(),...Q(0)),d(...v(1),...x(),...Q(1))]},Il=(e,l,a)=>{if(At(e)&&At(l))return[t,t,t,t];const[n,o,d,r]=Mt(e,l,a);return[n,o,...sl(e,l,a,d,r)]},$l={parser:"typescript",singleQuote:!0,trailingComma:"all",bracketSpacing:!1,jsdocSingleLineComment:!1},cl=Et((e=>{const t=()=>{const t=D(e.getTablesSchemaJson());return!At(t)||y(e.getTableIds(),(l=>{const a=e.getRowIds(l),n=U();if(y(a,(t=>y(e.getCellIds(l,t),(a=>{const o=e.getCell(l,t,a),d=q(n,a,(()=>[J(o),U(),[0],0])),[r,s,[I]]=d,$=q(s,o,(()=>0))+1;return $>I&&(d[2]=[$,o]),Q(s,o,$),d[3]++,r==J(o)})))))return t[l]={},B(n,(([e,,[,n],r],s)=>{t[l][s]={[o]:e,...r==x(a)?{[d]:n}:{}}})),1}))?t:{}},l=()=>{const t=D(e.getValuesSchemaJson());return At(t)&&e.forEachValue(((e,l)=>{t[e]={[o]:J(l)}})),t},a=e=>Il(t(),l(),e),n=async e=>{const t=["d.ts","ts","d.ts","tsx"];let l;try{l=(await import("prettier")).format}catch(e){l=e=>e}return V(a(e),((e,a)=>bt(l(e,{...$l,filepath:"_."+t[a]}))))};return kt({getStoreStats:t=>{let l=0,a=0,n=0;const o={};return e.forEachTable(((e,d)=>{l++;let r=0,s=0;const I={};d(((e,l)=>{r++;let a=0;l((()=>a++)),s+=a,t&&(I[e]={rowCells:a})})),a+=r,n+=s,t&&(o[e]={tableRows:r,tableCells:s,rows:I})})),{totalTables:l,totalRows:a,totalCells:n,totalValues:x(e.getValueIds()),jsonLength:Ct(e.getJson()),...t?{detail:{tables:o}}:{}}},getStoreTablesSchema:t,getStoreValuesSchema:l,getStoreApi:a,getPrettyStoreApi:n,getStore:()=>e})}));export{cl as createTools};
1
+ const e=e=>typeof e,t="",l=e(t),a=e(!0),n=e(0),o="type",d="default",r="Listener",s="get",I="add",$="Ids",c="Table",i=c+"s",u=c+$,p="Row",b=p+$,C="Sorted"+p+$,h="Cell",g=h+$,m="Value",f=m+"s",w=m+$,y=(e,t)=>e.every(t),T=(e,t)=>e.sort(t),v=(e,t)=>e.forEach(t),V=(e,t)=>e.map(t),x=e=>e.length,R=e=>0==x(e),k=(e,t)=>e.filter(t),S=(e,...t)=>e.push(...t),P=e=>e.pop(),A=(e,...t)=>e.unshift(...t),E=e=>e.shift(),D=JSON.parse,O=isFinite,N=(e,t)=>e instanceof t,j=e=>null==e,L=e=>e==l||e==a,M=t=>e(t)==l,G=e=>Array.isArray(e),J=t=>{const l=e(t);return L(l)||l==n&&O(t)?l:void 0},z=(e,t)=>e?.has(t)??!1,W=e=>[...e?.values()??[]],B=(e,t)=>e?.forEach(t),F=(e,t)=>e?.delete(t),U=e=>new Map(e),_=(e,t)=>e?.get(t),Z=(e,t)=>B(e,((e,l)=>t(l,e))),H=(e,t)=>V([...e?.entries()??[]],(([e,l])=>t(l,e))),Q=(e,t,l)=>j(l)?(F(e,t),e):e?.set(t,l),q=(e,t,l)=>(z(e,t)||Q(e,t,l()),_(e,t)),K=e=>e.toUpperCase(),X=e=>e.toLowerCase(),Y="a ",ee="A function for",te=", and registers a listener so that any changes to that result will cause a re-render",le="Callback",ae="Del",ne="Deps",oe=ne+"?: React.DependencyList",de="doRollback?: DoRollback",re="actions: () => Return, "+de,se="export",Ie="Id",$e="Invalid",ce="Json",ie=X(r),ue="?: ",pe=" | undefined",be="NonNullable",Ce="Partial",he="Props",ge="Provider",me=`Registers a ${ie} that will be called`,fe="Represents",we="rowId: "+Ie,ye="Schema",Te="Set",ve=", descending?: boolean, offset?: number, limit?: number",Ve="[]",xe="the Store",Re="Transaction",ke=X(Re),Se="Execute a "+ke+" to make multiple mutations",Pe="Explicitly starts a "+ke,Ae="Explicitly finishes a "+ke,Ee="the end of the "+ke,De="void",Oe=" => "+De,Ne="WhenSet",je=" when setting it",Le=Y+"string serialization of",Me=" ",Ge="Gets a callback that can ",Je="the ",ze=" the schema for",We=(e=0,l=0)=>`the ${dt[e]}content of`+(l?Me+xe:t),Be=(e=0,l,a=0)=>at[l]+Me+We(e,1)+(a?" when setting it":t),Fe=(e,t=0)=>fe+` a Row when ${t?"s":"g"}etting ${We()} the '${e}' `+c,Ue=(e,t,l=0)=>`Gets ${l?"sorted, paginated":"the"} Ids of the ${e}s in `+t,_e=(e,t)=>`Calls a function for each ${e} in `+t,Ze=e=>"The props passed to a component that renders "+e,He=e=>"A function that takes "+e,Qe=(e,t=0)=>ee+" listening to changes to "+ot[e]+" in "+ot[t],qe=(e,l,a=0)=>me+" whenever "+ot[e]+" in "+ot[l]+" change"+(a?t:"s"),Ke=e=>`the '${e}' `+c,Xe=e=>"the specified Row in "+Ke(e),Ye=(e,t=0)=>at[t]+` ${We()} `+Ke(e),et=(e,t=0)=>at[t]+` ${We()} `+Xe(e),tt=(e,t,l=0)=>at[l]+` the '${t}' Cell for `+Xe(e),lt=(e,t=0)=>at[t]+` the '${e}' Value`,at=["Gets","Checks existence of","Sets","Deletes","Sets part of",fe,"Gets "+Le,"Sets "+Le,me+" whenever",Ge+"set",Ge+"add",Ge+"set part of",Ge+"delete","Renders","Gets "+Le+ze,"Sets"+ze,"Deletes"+ze],nt=[s,"has","set","del","set","forEach",I,t],ot=[xe,i,Je+c+Me+$,Y+c,Je+p+Me+$,Y+p,Je+h+Me+$,Y+h,"invalid Cell changes",f,Je+m+Me+$,Y+m,"invalid Value changes",Je+"sorted "+p+Me+$],dt=[t,"tabular ","keyed value "],rt=e=>new Set(G(e)||j(e)?e:[e]),st=(e,t)=>e?.add(t),It=/[^A-Za-z]+/,$t=/[^A-Za-z0-9]+/,ct=/^( *)\/\*\* *(.*?) *\*\/$/gm,it=(e,t,l)=>e.substring(t,l),ut=e=>e.includes(","),pt=(e,t,l,a=1)=>{const n=`${t}${1==a?"":a}`;return z(e,n)?pt(e,t,l,a+1):(Q(e,n,l),n)},bt=e=>e.replace(ct,((e,t,l)=>{const a=77-Ct(t);return`${t}/**\n${l.replace(RegExp(`([^\\n]{1,${a}})(\\s|$)`,"g"),t+" * $1\n")}${t} */`})),Ct=e=>e.length,ht=(e,l=t)=>e.join(l),gt=e=>e.flat(1e3),mt=(e,t=0)=>ht(V(e.split($t),((e,l)=>(l>0||t?K:X)(it(e,0,1))+it(e,1)))),ft=e=>K(ht((e&&!It.test(e[0])?e:" "+e).split($t),"_")),wt=e=>`/** ${e}. */`,yt=(...e)=>ht(k(e,(e=>e)),", "),Tt=(...e)=>"{"+ht(e,"; ")+"}",vt=(...e)=>Tt(...V(e,(e=>"readonly "+e))),Vt=()=>{const e=[U(),U(),U(),U()],l=U(),a=U();return[(...e)=>ht(gt(e),"\n"),(t,l,...a)=>v(a,(a=>v([0,1],(n=>(t??n)==n?st(q(e[n],l,rt),a):0)))),(e,a,n,o=t,d=1)=>pt(l,e,[a,n,o,d]),(e,t,l)=>pt(a,e,G(l)?[`(${t}) => {`,l,"}"]:[`(${t}) => ${l}`]),(e,t)=>_(a,e)===t?e:pt(a,e,t),(l=0)=>V([...T(H(e[l],((e,t)=>`import {${ht(T(W(e)),", ")}} from '${t}';`)),((e,t)=>ut(e)!=ut(t)?ut(e)?-1:1:e>t?1:-1)),t],(e=>e.replace("{React}","React"))),()=>H(l,(([e,l,a,n],o)=>[wt(l),`${n?se+" ":t}type ${o}${a} = ${e};`,t])),()=>H(a,((e,l)=>(e=G(e)?e:[e],S(e,P(e)+";"),[`const ${l} = ${E(e)}`,e,t])))]},xt=Object,Rt=xt.keys,kt=xt.freeze,St=e=>N(e,xt)&&e.constructor==xt,Pt=(e,t)=>V(xt.entries(e),(([e,l])=>t(l,e))),At=e=>St(e)&&R(Rt(e)),Et=e=>{const t=new WeakMap;return l=>(t.has(l)||t.set(l,e(l)),t.get(l))},Dt=(e,t,l)=>[t=>Pt(e,((e,a)=>t(a,mt(a,1),l(ft(a),`'${a}'`)))),(t,a)=>Pt(e[t],((e,t)=>a(t,e[o],e[d],l(ft(t),`'${t}'`),mt(t,1)))),e=>Pt(t,((t,a)=>e(a,t[o],t[d],l(ft(a),`'${a}'`),mt(a,1))))],Ot=(e,l,a,n)=>[(n,o)=>{const d=n+": "+o,s=e(i,Tt(...l((e=>`'${e}'?: {[rowId: Id]: `+Tt(...a(e,((e,l,a)=>`'${e}'${j(a)?"?":t}: ${l}`)))+"}"))),Be(1,5)),I=e(i+Ne,Tt(...l((e=>`'${e}'?: {[rowId: Id]: `+Tt(...a(e,((e,t)=>`'${e}'?: ${t}`)))+"}"))),Be(1,5,1)),$=e(c+Ie,"keyof "+s,"A "+c+" Id in "+xe),m=`<TId extends ${$}>`,f=e(c,be+`<${s}[TId]>`,"A "+c+" in "+xe,m),w=e(c+Ne,be+`<${I}[TId]>`,"A "+c+" in "+xe+je,m),y=e(p,f+"<TId>[Id]","A "+p+" in a "+c,m),T=e(p+Ne,w+"<TId>[Id]","A "+p+" in a "+c+je,m),v=e(h+Ie,`Extract<keyof ${y}<TId>, Id>`,"A "+h+" Id in a "+p,m),V=e(h,be+`<${s}[TId]>[Id][CId]`,"A "+h+" in a "+p,`<TId extends ${$}, CId extends ${v}<TId>>`),x=e("CellIdCellArray",`CId extends ${v}<TId> ? [cellId: CId, cell: ${V}<TId, CId>] : never`,h+" Ids and types in a "+p,`<TId extends ${$}, CId = ${v}<TId>>`,0),R=e(h+le,`(...[cellId, cell]: ${x}<TId>)`+Oe,He(Y+h+" Id, and "+h),m),k=e(p+le,"(rowId: Id, forEachCell: (cellCallback: CellCallback<TId>) "+Oe+") "+Oe,He(Y+p+" Id, and a "+h+" iterator"),m),S=e("TableIdForEachRowArray",`TId extends ${$} ? [tableId: TId, forEachRow: (rowCallback: ${k}<TId>)${Oe}] : never`,c+" Ids and callback types",`<TId = ${$}>`,0),P=e(c+le,`(...[tableId, forEachRow]: ${S})`+Oe,He(Y+c+" Id, and a "+p+" iterator"),t),A=e("TableIdRowIdCellIdArray",`TId extends ${$} ? [tableId: TId, rowId: Id, cellId: ${v}<TId>] : never`,"Ids for GetCellChange",`<TId = ${$}>`,0),E=e("GetCellChange",`(...[tableId, rowId, cellId]: ${A}) => CellChange`,ee+" returning information about any Cell's changes during a "+ke),D=e(i+r,`(${d}, getCellChange: ${E}${pe})`+Oe,Qe(1)),O=e(u+r,`(${d})`+Oe,Qe(2)),N=e(c+r,`(${d}, tableId: ${$}, getCellChange: ${E}${pe})`+Oe,Qe(3)),L=e(b+r,`(${d}, tableId: ${$})`+Oe,Qe(4,3)),M=e(C+r,"("+yt(d,"tableId: "+$,"cellId: Id"+pe,"descending: boolean","offset: number","limit: number"+pe,"sortedRowIds: Ids")+")"+Oe,Qe(13,3)),G=e(p+r,"("+yt(""+d,"tableId: "+$,we,`getCellChange: ${E}${pe}`)+")"+Oe,Qe(5,3)),J=e(g+r,"("+yt(""+d,"tableId: "+$,we)+")"+Oe,Qe(6,5)),z=e("CellListenerArgsArrayInner",`CId extends ${v}<TId> ? [${d}, tableId: TId, ${we}, cellId: CId, newCell: ${V}<TId, CId> ${pe}, oldCell: ${V}<TId, CId> ${pe}, getCellChange: ${E} ${pe}] : never`,"Cell args for CellListener",`<TId extends ${$}, CId = ${v}<TId>>`,0),W=e("CellListenerArgsArrayOuter",`TId extends ${$} ? `+z+"<TId> : never","Table args for CellListener",`<TId = ${$}>`,0);return[s,I,$,f,w,y,T,v,V,R,k,P,D,O,N,L,M,G,J,e(h+r,`(...[${n}, tableId, rowId, cellId, newCell, oldCell, getCellChange]: ${W})`+Oe,Qe(7,5)),e($e+h+r,`(${d}, tableId: Id, ${we}, cellId: Id, invalidCells: any[])`+Oe,Qe(8))]},(l,a)=>{const o=l+": "+a,d=e(f,Tt(...n(((e,l,a)=>`'${e}'${j(a)?"?":t}: ${l}`))),Be(2,5)),s=e(f+Ne,Tt(...n(((e,t)=>`'${e}'?: ${t}`))),Be(2,5,1)),I=e(m+Ie,"keyof "+d,"A "+m+" Id in "+xe),$=e(m,be+`<${d}[VId]>`,"A "+m+" Id in "+xe,`<VId extends ${I}>`),c=e("ValueIdValueArray",`VId extends ${I} ? [valueId: VId, value: ${$}<VId>] : never`,m+" Ids and types in "+xe,`<VId = ${I}>`,0),i=e(m+le,`(...[valueId, value]: ${c})`+Oe,He(Y+m+" Id, and "+m)),u=e("GetValueChange",`(valueId: ${I}) => ValueChange`,ee+" returning information about any Value's changes during a "+ke),p=e(f+r,`(${o}, getValueChange: ${u}${pe})`+Oe,Qe(9)),b=e(w+r,`(${o})`+Oe,Qe(10)),C=e("ValueListenerArgsArray",`VId extends ${I} ? [${o}, valueId: VId, newValue: ${$}<VId> ${pe}, oldValue: ${$}<VId> ${pe}, getValueChange: ${u} ${pe}] : never`,"Value args for ValueListener",`<VId = ${I}>`,0);return[d,s,I,$,i,p,b,e(m+r,`(...[${l}, valueId, newValue, oldValue, getValueChange]: `+C+")"+Oe,Qe(11)),e($e+m+r,`(${o}, valueId: Id, invalidValues: any[])`+Oe,Qe(12))]},(t,l)=>e(Re+r,`(${t}: ${l}, cellsTouched: boolean, valuesTouched: boolean)`+Oe,ee+" listening to the completion of a "+ke)],Nt=(e,l=t,a=t)=>`store.${e}(${l})`+(a?" as "+a:t),jt=(e,l=t)=>`fluent(() => ${Nt(e,l)})`,Lt=(e,l=t,a=t)=>`store.${e}(${l?l+", ":t}proxy(listener)${a?", "+a:t})`,Mt=(e,l,n)=>{const[s,y,T,V,x,R,k,P]=Vt(),[E,D,O]=Dt(e,l,x),[N,L,G]=Ot(T,E,D,O),J=U(),z=(e=0)=>H(J,(([l,a,n,o,d],r)=>{const s=e?[r+`: ${d}(${l}): ${a} => ${n},`]:[r+d+`(${l}): ${a};`];return e||A(s,wt(o)),S(s,t),s})),B=(e,l,a,n,o,d=t)=>pt(J,e,[l,a,n,o,d]),F=(e,l,a,n,o,d=t,r=t,s=t)=>B(nt[e]+l+(4==e?Ce:t)+a,d,n,(n==X?jt:Nt)(nt[e]+(4==e?Ce:t)+a,r,e?void 0:n),o,s),q=(e,l,a,n=t,o=t,d=1,s=t)=>B(I+e+r,(n?n+", ":t)+ie+": "+l+(d?", mutator?: boolean":t),Ie,Lt(I+e+r,o,d?"mutator":t),a,s),K=`./${mt(n)}.d`,X=mt(n,1),Y=mt(X),ee=[],te=U();let ae=[],ne=[];if(y(1,K,X,`create${X} as create${X}Decl`),!At(e)){y(0,"tinybase","CellChange"),y(null,"tinybase",$);const[e,l,n,r,s,I,m,f,w,V,R,k,P,A,O,L,G,J,z,B,Z]=N(Y,X),H=U();E(((e,t)=>{const l=`<'${e}'>`,a=[T(t+c,r+l,fe+` the '${e}' `+c),T(t+c+Ne,s+l,fe+` the '${e}' `+c+je),T(t+p,I+l,Fe(e)),T(t+p+Ne,m+l,Fe(e,1)),T(t+h+Ie,f+l,`A Cell Id for the '${e}' `+c),T(t+h+le,V+l,He(`a Cell Id and value from a Row in the '${e}' `+c)),T(t+p+le,R+l,He(`a Row Id from the '${e}' Table, and a Cell iterator`))];Q(H,e,a),y(1,K,...a)})),y(1,K,e,l,n,f,k,P,A,O,L,G,J,z,B,Z),ae=[e,l,n,f,P,A,O,L,G,J,z,B,H],v([[e],[a],[X,"tables: "+l,"tables"],[X]],(([e,l,a],n)=>F(n,t,i,e,Be(1,n),l,a))),F(0,t,u,n+Ve,Ue(c,xe)),F(5,t,c,De,_e(c,xe),"tableCallback: "+k,"tableCallback as any"),E(((e,l,n)=>{const[o,d,r,s,I,i,u]=_(H,e);v([[o],[a],[X,"table: "+d,", table"],[X]],(([a,o,d=t],r)=>F(r,l,c,a,Ye(e,r),o,n+d))),F(0,l,b,$,Ue(p,Ke(e)),t,n),F(0,l,C,$,Ue(p,Ke(e),1),"cellId?: "+I+ve,n+", cellId, descending, offset, limit"),F(5,l,p,De,_e(p,Ke(e)),"rowCallback: "+u,n+", rowCallback as any"),v([[r],[a],[X,", row: "+s,", row"],[X],[X,", partialRow: "+s,", partialRow"]],(([a,o=t,d=t],r)=>F(r,l,p,a,et(e,r),we+o,n+", rowId"+d))),F(6,l,p,Ie+pe,"Add a new Row to "+Ke(e),"row: "+s+", reuseIds?: boolean",n+", row, reuseIds"),F(0,l,g,I+Ve,Ue(h,Xe(e)),we,n+", rowId"),F(5,l,h,De,_e(h,Xe(e)),we+", cellCallback: "+i,n+", rowId, cellCallback as any"),D(e,((o,d,r,s,I)=>{const $="Map"+mt(d,1);Q(te,d,$);const c=d+(j(r)?pe:t);v([[c],[a],[X,`, cell: ${d} | `+$,", cell as any"],[X]],(([a,d=t,r=t],$)=>F($,l+I,h,a,tt(e,o,$),we+d,n+", rowId, "+s+r)))}))})),F(0,t,i+ce,ce,Be(1,6)),F(2,t,i+ce,X,Be(1,7),"tablesJson: "+ce,"tables"+ce),q(i,P,Be(1,8)+" changes"),q(u,A,qe(2,0,1)),q(c,O,qe(3,0),`tableId: ${n} | null`,"tableId"),q(b,L,qe(4,3,1),`tableId: ${n} | null`,"tableId"),q(C,G,qe(13,3,1),yt("tableId: TId",`cellId: ${f}<TId>`+pe,"descending: boolean","offset: number","limit: number"+pe),yt("tableId","cellId","descending","offset","limit"),1,"<TId extends TableId>"),q(p,J,qe(5,3),`tableId: ${n} | null, rowId: IdOrNull`,"tableId, rowId"),q(g,z,qe(6,5,1),`tableId: ${n} | null, rowId: IdOrNull`,"tableId, rowId"),q(h,B,qe(7,5),`tableId: ${n} | null, rowId: IdOrNull, cellId: ${ht(E((e=>_(H,e)?.[4]??t))," | ")} | null`,"tableId, rowId, cellId"),q($e+h,Z,me+" whenever an invalid Cell change was attempted","tableId: IdOrNull, rowId: IdOrNull, cellId: IdOrNull","tableId, rowId, cellId"),y(1,K,...W(te)),S(ee,".set"+i+ye+"({",gt(E(((e,l,a)=>[`[${a}]: {`,...D(e,((e,l,a,n)=>`[${n}]: {[${x(ft(o),`'${o}'`)}]: ${x(ft(l),`'${l}'`)}${j(a)?t:`, [${x(ft(d),`'${d}'`)}]: `+(M(a)?x(ft(a),`'${a}'`):a)}},`)),"},"]))),"})")}if(!At(l)){const[e,l,n,r,s,I,$,c,i]=L(Y,X);y(1,K,e,l,n,s,I,$,c,i),ne=[e,l,n,I,$,c],v([[e],[a],[X,"values: "+l,"values"],[X],[X,"partialValues: "+l,"partialValues"]],(([e,l,a],n)=>F(n,t,f,e,Be(2,n),l,a))),F(0,t,w,n+Ve,Ue(m,xe)),F(5,t,m,"void",_e(m,xe),"valueCallback: "+s,"valueCallback as any"),O(((e,l,n,o,d)=>{const r="Map"+mt(l,1);Q(te,l,r),v([[l],[a],[X,`value: ${l} | `+r,", value as any"],[X]],(([l,a,n=t],r)=>F(r,d,m,l,lt(e,r),a,o+n)))})),F(0,t,f+ce,ce,Be(2,6)),F(2,t,f+ce,X,Be(2,7),"valuesJson: "+ce,"values"+ce),q(f,I,Be(2,8)+" changes"),q(w,$,qe(10,0,1)),q(m,c,qe(11,0),`valueId: ${n} | null`,"valueId"),q($e+m,i,me+" whenever an invalid Value change was attempted","valueId: IdOrNull","valueId"),y(1,K,...W(te)),y(0,"tinybase","ValueChange"),S(ee,".set"+f+ye+"({",O(((e,l,a,n)=>[`[${n}]: {[${x(ft(o),`'${o}'`)}]: ${x(ft(l),`'${l}'`)}${j(a)?t:`, [${x(ft(d),`'${d}'`)}]: `+(M(a)?x(ft(a),`'${a}'`):a)}},`])),"})")}Z(te,((e,t)=>T(t,`(cell: ${e}${pe}) => `+e,`Takes a ${e} Cell value and returns another`))),y(null,"tinybase","DoRollback",Ie,"IdOrNull",ce,"Store"),F(0,t,ce,ce,Be(0,6)),F(2,t,ce,X,Be(0,7),"tablesAndValuesJson: "+ce,"tablesAndValuesJson"),F(7,t,ke,"Return",Se,re,"actions, doRollback","<Return>"),F(7,t,"start"+Re,X,Pe),F(7,t,"finish"+Re,X,Ae,de,"doRollback");const oe=G(Y,X);return q("Start"+Re,oe,me+" just before the start of the "+ke,t,t,0),q("WillFinish"+Re,oe,me+" just before "+Ee,t,t,0),q("DidFinish"+Re,oe,me+" just after "+Ee,t,t,0),F(7,t,"call"+r,X,"Manually provoke a listener to be called","listenerId: Id","listenerId"),F(3,t,r,X,"Remove a listener that was previously added to "+xe,"listenerId: Id","listenerId"),B("getStore",t,"Store","store",at[0]+" the underlying Store object"),y(1,"tinybase","createStore"),y(1,K,X,`create${X} as create${X}Decl`,oe),x("store",["createStore()",...ee]),V("fluent","actions: () => Store",["actions();",`return ${Y};`]),V("proxy","listener: any",`(_: Store, ...params: any[]) => listener(${Y}, ...params)`),x(Y,["{",...z(1),"}"]),[s(...R(0),...k(),se+" interface "+X+" {",...z(0),"}",t,wt(`Creates a ${X} object`),se+" function create"+X+"(): "+X+";"),s(...R(1),se+" const create"+X+": typeof create"+X+"Decl = () => {",...P(),`return Object.freeze(${Y});`,"};"),ae,ne]},Gt=e=>s+e,Jt=e=>yt(Gt(e),Gt(e)+ne),zt="debugIds?: boolean",Wt="debugIds={debugIds}",Bt="then"+oe,Ft="Parameter",Ut=": (parameter: "+Ft+", store: Store) => ",_t="const contextValue = useContext(Context);",Zt=", based on a parameter",Ht=": ",Qt="<"+Ft+",>",qt=Ft+"ized"+le+"<"+Ft+">",Kt="rowId",Xt="rowId={rowId}",Yt=", separator, debugIds",el="separator?: ReactElement | string",tl="then?: (store: Store",ll=yt(tl+")"+Oe,Bt),al="then, then"+ne,nl=Kt+Ht+Ie,ol="View",dl=(e,...t)=>yt(...t,ie+": "+e,ie+oe,"mutator?: boolean"),rl=(...e)=>yt(...e,ie,ie+ne,"mutator"),sl=(e,l,a,n,o)=>{const[d,s,I,y,T,v,V,x]=Vt(),[R,k,P]=Dt(e,l,T),E=`./${mt(a)}.d`,D=`./${mt(a)}-ui-react.d`,O="tinybase/ui-react",N=mt(a,1),L=mt(N),M=N+"Or"+N+Ie,G=L+"Or"+N+Ie,J=L+`={${L}}`,z=U(),W=(e,l,a,n,o,d=t)=>(s(1,D,e+" as "+e+"Decl"),pt(z,e,[l,a,n,o,d])),B=(e,l,a,n,o,d=t)=>W("use"+e,l,a,n,o,d),F=(e,l,a,n,o=t,d=t,r=t,I=t,$=t)=>(s(1,O,`use${l} as use${l}Core`),B(e,yt(o,X,I),a,ne+`(${G}, use${l}Core, [`+(d||t)+($?"], ["+$:t)+"]);",n,r)),Z=(e,t,l,a)=>W(e,t,1,l,a),Q=(e=0)=>H(z,(([l,a,n,o,d],r)=>{const s=e?[se+` const ${r}: typeof ${r}Decl = ${d}(${l}): ${1==a?"any":a} =>`,n]:[se+` function ${r}${d}(${l}): ${1==a?"ComponentReturnType":a};`];return e||A(s,wt(o)),S(s,t),s}));s(null,"tinybase",Ie,"Store",le,Ft+"ized"+le),s(0,O,"ComponentReturnType"),s(null,O,"ExtraProps"),s(0,E,N);const q=I(M,N+" | "+Ie,`Used when you need to refer to a ${N} in a React hook or component`),K=I(ge+he,vt(L+ue+N,L+`ById?: {[${L}Id: Id]: ${N}}`),`Used with the ${ge} component, so that a `+N+" can be passed into the context of an application");s(0,"react","ReactElement","ComponentType"),s(1,"react","React"),s(1,D,q,K);const X=G+ue+q;T("{createContext, useContext, useMemo}","React"),T("Context",`createContext<[${N}?, {[${L}Id: Id]: ${N}}?]>([])`),B("Create"+N,`create: () => ${N}, create`+oe,N,"\n// eslint-disable-next-line react-hooks/exhaustive-deps\nuseMemo(create, createDeps)",`Create a ${N} within a React application with convenient memoization`);const ee=B(N,"id?: Id",N+pe,["{",_t,"return id == null ? contextValue[0] : contextValue[1]?.[id];","}"],`Get a reference to a ${N} from within a ${ge} component context`),ne=y("useHook",G+`: ${q} | undefined, hook: (...params: any[]) => any, preParams: any[], postParams: any[] = []`,[`const ${L} = ${ee}(${G} as Id);`,`return hook(...preParams, ((${G} == null || typeof ${G} == 'string')`,`? ${L} : ${G})?.getStore(), ...postParams)`]),de=y("getProps","getProps: ((id: any) => ExtraProps) | undefined, id: Id","(getProps == null) ? ({} as ExtraProps) : getProps(id)"),re=y("wrap",yt("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;"]),$e=T("NullComponent","() => null");if(!At(e)){const[e,l,a,o,d,m,f,w,T,v,V,x,S]=n;s(null,E,e,l,a,d,m,f,w,T,v,V,x),s(0,E,o),s(1,E,N),s(null,"tinybase",$,"IdOrNull");const P=y("tableView",`{${L}, rowComponent, getRowComponentProps`+Yt+"}: any, rowIds: Ids, tableId: Id, defaultRowComponent: React.ComponentType<any>",["const Row = rowComponent ?? defaultRowComponent;",`return ${re}(rowIds.map((rowId) => (`,"<Row","{..."+de+"(getRowComponentProps, rowId)}","key={rowId}","tableId={tableId}",Xt,J,Wt,"/>","))",Yt,", tableId,",");"]),A=y("getDefaultTableComponent","tableId: Id",ht(R(((e,t,l)=>`tableId == ${l} ? ${t}TableView : `)))+$e),O=y("getDefaultCellComponent","tableId: Id, cellId: Id",ht(R(((e,t,l)=>`tableId == ${l} ? ${ht(k(e,((e,l,a,n,o)=>`cellId == ${n} ? `+t+o+"CellView : ")))+$e} : `)))+$e);F(i,i,e,Be(1,0)+te);const M=F(u,u,a+Ve,Ue(c,xe)+te);F(Te+i+le,Te+i+le,qt,Be(1,9)+Zt,yt(Gt(i)+Ut+l,Gt(i)+oe),Jt(i),Qt,yt(tl,`tables: ${l})`+Oe,Bt),al),F(ae+i+le,ae+i+le,le,Be(1,12),t,t,t,ll,al);const G=I(h+he,vt("tableId?: TId","rowId: Id","cellId?: CId",L+ue+N,zt),Ze(Y+h),`<TId extends ${a}, CId extends ${o}<TId>>`),z=I(p+he,vt("tableId?: TId","rowId: Id",L+ue+N,"cellComponents?: {readonly [CId in "+o+`<TId>]?: ComponentType<${G}<TId, CId>>;}`,`getCellComponentProps?: (cellId: ${o}<TId>) => ExtraProps`,el,zt),Ze(Y+p),`<TId extends ${a}>`),W=I(c+he,vt("tableId?: TId",L+ue+N,`rowComponent?: ComponentType<${z}<TId>>`,"getRowComponentProps?: (rowId: Id) => ExtraProps",el,zt),Ze(Y+c),`<TId extends ${a}>`),B=I("Sorted"+c+he,vt("tableId?: TId","cellId?: "+o+"<TId>","descending?: boolean","offset?: number","limit?: number",L+ue+N,`rowComponent?: ComponentType<${z}<TId>>`,"getRowComponentProps?: (rowId: Id) => ExtraProps",el,zt),Ze(Y+"sorted "+c),`<TId extends ${a}>`),U=I(i+he,vt(L+ue+N,"tableComponents?: {readonly [TId in "+a+`]?: ComponentType<${W}<TId>>;}`,`getTableComponentProps?: (tableId: ${a}) => ExtraProps`,el,zt),Ze(We(1,1)));s(1,D,U,W,B,z,G),Z(i+ol,"{"+L+", tableComponents, getTableComponentProps"+Yt+"}: "+U,[re+`(${M}(${L}).map((tableId) => {`,"const Table = (tableComponents?.[tableId] ?? "+A+"(tableId)) as React.ComponentType<TableProps<typeof tableId>>;","return <Table",`{...${de}(getTableComponentProps, tableId)}`,"tableId={tableId}","key={tableId}",J,Wt,"/>;","}), separator)"],Be(1,13)+te),R(((e,l,a)=>{const[n,o,d,r,I]=_(S,e);s(null,E,n,o,d,r,I),F(l+c,c,n,Ye(e)+te,t,a);const i=F(l+b,b,$,Ue(p,Ke(e))+te,t,a),u=F(l+C,C,$,Ue(p,Ke(e),1)+te,"cellId?: "+I+", descending?: boolean, offset?: number, limit?: number",a+", cellId, descending, offset, limit");F(l+p,p,d,et(e)+te,nl,yt(a,Kt));const m=F(l+g,g,I+Ve,Ue(h,Xe(e))+te,nl,yt(a,Kt));F(Te+l+c+le,Te+c+le,qt,Ye(e,9)+Zt,yt(Gt(c)+Ut+o,Gt(c)+oe),yt(a,Jt(c)),Qt,yt(tl,`table: ${o})`+Oe,Bt),al),F(ae+l+c+le,ae+c+le,le,Ye(e,12),t,a,t,ll,al),F(Te+l+p+le,Te+p+le,qt,et(e,9)+Zt,yt(nl,Gt(p)+Ut+r,Gt(p)+oe),yt(a,Kt,Jt(p)),Qt,yt(tl,`row: ${r})`+Oe,Bt),al),F("Add"+l+p+le,"Add"+p+le,qt,et(e,10)+Zt,yt(Gt(p)+Ut+r,Gt(p)+oe),yt(a,Jt(p)),Qt,"then?: ("+yt(nl+pe,"store: Store","row: "+r+")"+Oe,"then"+oe)+", reuseRowIds?: boolean",al+", reuseRowIds"),F(Te+l+Ce+p+le,Te+Ce+p+le,qt,et(e,11)+Zt,yt(nl,Gt(Ce+p)+Ut+r,Gt(Ce+p)+oe),yt(a,Kt,Jt(Ce+p)),Qt,yt(tl,`partialRow: ${r})`+Oe,Bt),al),F(ae+l+p+le,ae+p+le,le,et(e,12),nl,yt(a,Kt),t,ll,al);const f=Z(l+p+ol,"{rowId, "+L+", cellComponents, getCellComponentProps"+Yt+`}: ${z}<'${e}'>`,[re+`(${m}(rowId, ${L}).map((cellId) => {`,"const Cell = (cellComponents?.[cellId] ?? "+O+`(${a}, cellId)) as React.ComponentType<CellProps<typeof `+a+", typeof cellId>>;","return <Cell",`{...${de}(getCellComponentProps, cellId)} `,"key={cellId}",`tableId={${a}}`,Xt,"cellId={cellId}",J,Wt,"/>;","})"+Yt+", rowId)"],et(e,13)+te);Z(l+"Sorted"+c+ol,"{cellId, descending, offset, limit, ...props}: "+B+`<'${e}'>`,P+"(props, "+u+`(cellId, descending, offset, limit, props.${L}), ${a}, ${f});`,Ye(e,13)+", sorted"+te),Z(l+c+ol,`props: ${W}<'${e}'>`,P+"(props, "+i+`(props.${L}), ${a}, ${f});`,Ye(e,13)+te),k(e,((n,o,d,r,I)=>{const $="Map"+mt(o,1);s(0,E,$),s(1,E,$);const c=F(l+I+h,h,o+(j(d)?pe:t),tt(e,n)+te,nl,yt(a,Kt,r));F(Te+l+I+h+le,Te+h+le,qt,tt(e,n,9)+Zt,yt(nl,Gt(h)+Ut+o+" | "+$,Gt(h)+oe),yt(a,Kt,r,Jt(h)),Qt,yt(tl,`cell: ${o} | ${$})`+Oe,Bt),al),F(ae+l+I+h+le,ae+h+le,le,tt(e,n,12),yt(nl,"forceDel?: boolean"),yt(a,Kt,r,"forceDel"),t,ll,al),Z(l+I+h+ol,`{rowId, ${L}, debugIds}: `+G+`<'${e}', '${n}'>`,[re+`('' + ${c}(rowId, `+L+`) ?? '', undefined, debugIds, ${r})`],tt(e,n,13)+te)}))}));const H=ht(R((e=>_(S,e)?.[4]??t))," | ");F(i+r,i+r,De,Be(1,8)+" changes",dl(d),rl()),F(u+r,u+r,De,qe(2,0,1),dl(m),rl()),F(c+r,c+r,De,qe(3,0),dl(f,`tableId: ${a} | null`),rl("tableId")),F(b+r,b+r,De,qe(4,3,1),dl(w,`tableId: ${a} | null`),rl("tableId")),F(C+r,C+r,De,qe(13,3,1),dl(T,`tableId: ${a} | null`,"cellId: "+H+pe,"descending: boolean","offset: number","limit: number"+pe),rl("tableId","cellId","descending","offset","limit")),F(p+r,p+r,De,qe(5,3),dl(v,`tableId: ${a} | null`,Kt+": IdOrNull"),rl("tableId",Kt)),F(g+r,g+r,De,qe(6,5,1),dl(V,`tableId: ${a} | null`,Kt+": IdOrNull"),rl("tableId",Kt)),F(h+r,h+r,De,qe(7,5),dl(x,`tableId: ${a} | null`,Kt+": IdOrNull",`cellId: ${H} | null`),rl("tableId",Kt,"cellId"))}if(!At(l)){const[e,l,a,n,d,$]=o;s(null,E,...o),s(1,E,N);const c=y("getDefaultValueComponent","valueId: Id",ht(P(((e,t,l,a,n)=>`valueId == ${a} ? `+n+"ValueView : ")))+$e);F(f,f,e,Be(2,0)+te);const i=F(w,w,a+Ve,Ue(m,xe)+te);F(Te+f+le,Te+f+le,qt,Be(2,9)+Zt,yt(Gt(f)+Ut+l,Gt(f)+oe),Jt(f),Qt,yt(tl,`values: ${l})`+Oe,Bt),al),F(Te+Ce+f+le,Te+Ce+f+le,qt,Be(2,11)+Zt,yt(Gt(Ce+f)+Ut+l,Gt(Ce+f)+oe),Jt(Ce+f),Qt,yt(tl,`partialValues: ${l})`+Oe,Bt),al),F(ae+f+le,ae+f+le,le,Be(2,12),t,t,t,ll,al);const u=I(m+he,vt("valueId?: VId",L+ue+N,zt),Ze("a Value"),`<VId extends ${a}>`),p=I(f+he,vt(L+ue+N,"valueComponents?: {readonly [VId in "+a+`]?: ComponentType<${u}<VId>>;}`,`getValueComponentProps?: (valueId: ${a}) => ExtraProps`,el,zt),Ze(We(2,1)));s(1,D,p,u),Z(f+ol,"{"+L+", valueComponents, getValueComponentProps"+Yt+"}: "+p,[re+`(${i}(${L}).map((valueId) => {`,"const Value = valueComponents?.[valueId] ?? "+c+"(valueId);","return <Value",`{...${de}(getValueComponentProps, valueId)}`,"key={valueId}",J,Wt,"/>;","}), separator)"],Be(2,13)+te),P(((e,l,a,n,o)=>{const d="Map"+mt(l,1);s(0,E,d),s(1,E,d);const r=F(o+m,m,l,lt(e)+te,t,n);F(Te+o+m+le,Te+m+le,qt,lt(e,9)+Zt,yt(Gt(m)+Ut+l+" | "+d,Gt(m)+oe),yt(n,Jt(m)),Qt,yt(tl,`value: ${l} | ${d})`+Oe,Bt),al),F(ae+o+m+le,ae+m+le,le,lt(e,12),t,n,t,ll,al),Z(o+m+ol,`{${L}, debugIds}: ${u}<'${e}'>`,[re+`('' + ${r}(`+L+`) ?? '', undefined, debugIds, ${n})`],lt(e,13)+te)})),F(f+r,f+r,De,Be(2,8)+" changes",dl(n),rl()),F(w+r,w+r,De,qe(10,0,1),dl(d),rl()),F(m+r,m+r,De,qe(11,0),dl($,`valueId: ${a} | null`),rl("valueId"))}return Z(ge,`{${L}, ${L}ById, children}: `+K+" & {children: React.ReactNode}",["{",_t,"return (","<Context."+ge,"value={useMemo(",`() => [${L} ?? contextValue[0], {...contextValue[1], ...${L}ById}],`,`[${L}, ${L}ById, contextValue],`,")}>","{children}",`</Context.${ge}>`,");","}"],"Wraps part of an application in a context that provides default objects to be used by hooks and components within"),[d(...v(0),...V(),...Q(0)),d(...v(1),...x(),...Q(1))]},Il=(e,l,a)=>{if(At(e)&&At(l))return[t,t,t,t];const[n,o,d,r]=Mt(e,l,a);return[n,o,...sl(e,l,a,d,r)]},$l={parser:"typescript",singleQuote:!0,trailingComma:"all",bracketSpacing:!1,jsdocSingleLineComment:!1},cl=Et((e=>{const t=()=>{const t=D(e.getTablesSchemaJson());return!At(t)||y(e.getTableIds(),(l=>{const a=e.getRowIds(l),n=U();if(y(a,(t=>y(e.getCellIds(l,t),(a=>{const o=e.getCell(l,t,a),d=q(n,a,(()=>[J(o),U(),[0],0])),[r,s,[I]]=d,$=q(s,o,(()=>0))+1;return $>I&&(d[2]=[$,o]),Q(s,o,$),d[3]++,r==J(o)})))))return t[l]={},B(n,(([e,,[,n],r],s)=>{t[l][s]={[o]:e,...r==x(a)?{[d]:n}:{}}})),1}))?t:{}},l=()=>{const t=D(e.getValuesSchemaJson());return At(t)&&e.forEachValue(((e,l)=>{t[e]={[o]:J(l)}})),t},a=e=>Il(t(),l(),e),n=async e=>{const t=["d.ts","ts","d.ts","tsx"];let l;try{l=(await import("prettier")).format}catch(e){l=e=>e}return V(a(e),((e,a)=>bt(l(e,{...$l,filepath:"_."+t[a]}))))};return kt({getStoreStats:t=>{let l=0,a=0,n=0;const o={};return e.forEachTable(((e,d)=>{l++;let r=0,s=0;const I={};d(((e,l)=>{r++;let a=0;l((()=>a++)),s+=a,t&&(I[e]={rowCells:a})})),a+=r,n+=s,t&&(o[e]={tableRows:r,tableCells:s,rows:I})})),{totalTables:l,totalRows:a,totalCells:n,totalValues:x(e.getValueIds()),jsonLength:Ct(e.getJson()),...t?{detail:{tables:o}}:{}}},getStoreTablesSchema:t,getStoreValuesSchema:l,getStoreApi:a,getPrettyStoreApi:n,getStore:()=>e})}));export{cl as createTools};
package/lib/tools.js.gz CHANGED
Binary file
@@ -4882,6 +4882,51 @@ export interface Store {
4882
4882
  mutator?: boolean,
4883
4883
  ): Id;
4884
4884
 
4885
+ /**
4886
+ * The addStartTransactionListener method registers a listener function with
4887
+ * the Store that will be called at the start of a transaction.
4888
+ *
4889
+ * The provided TransactionListener will receive a reference to the Store and
4890
+ * two booleans to indicate whether Cell or Value data has been touched during
4891
+ * the transaction. Since this is called at the start, they will both be
4892
+ * `false`!
4893
+ *
4894
+ * Note that a TransactionListener added to the Store with this method can
4895
+ * mutate the Store, and its changes will be treated as part of the
4896
+ * transaction that is starting.
4897
+ *
4898
+ * @returns A unique Id for the listener that can later be used to remove it.
4899
+ * @example
4900
+ * This example registers a listener that is called at start end of the
4901
+ * transaction, just before its listeners will be called.
4902
+ *
4903
+ * ```js
4904
+ * const store = createStore()
4905
+ * .setTables({
4906
+ * pets: {fido: {species: 'dog', color: 'brown'}},
4907
+ * })
4908
+ * .setValues({open: true, employees: 3});
4909
+ * const listenerId = store.addStartTransactionListener(
4910
+ * (store, cellsTouched, valuesTouched) => {
4911
+ * console.log('Transaction started');
4912
+ * },
4913
+ * );
4914
+ *
4915
+ * store.transaction(() =>
4916
+ * store.setCell('pets', 'fido', 'color', 'brown').setValue('employees', 3),
4917
+ * );
4918
+ * // -> 'Transaction started'
4919
+ *
4920
+ * store.callListener(listenerId);
4921
+ * // -> 'Transaction started'
4922
+ *
4923
+ * store.delListener(listenerId);
4924
+ * ```
4925
+ * @category Listener
4926
+ * @since v3.2.0
4927
+ */
4928
+ addStartTransactionListener(listener: TransactionListener): Id;
4929
+
4885
4930
  /**
4886
4931
  * The addWillFinishTransactionListener method registers a listener function
4887
4932
  * with the Store that will be called just before other non-mutating listeners
@@ -4902,6 +4947,11 @@ export interface Store {
4902
4947
  * value of `cellsTouched` and `valuesTouched` in the listener will be `false`
4903
4948
  * because all changes have been reverted.
4904
4949
  *
4950
+ * Note that a TransactionListener added to the Store with this method can
4951
+ * mutate the Store itself, and its changes will be treated as part of the
4952
+ * transaction that is starting (and may fire non-mutating listeners after
4953
+ * this).
4954
+ *
4905
4955
  * @returns A unique Id for the listener that can later be used to remove it.
4906
4956
  * @example
4907
4957
  * This example registers a listener that is called at the end of the
@@ -4995,6 +5045,9 @@ export interface Store {
4995
5045
  * value of `cellsTouched` and `valuesTouched` in the listener will be `false`
4996
5046
  * because all changes have been reverted.
4997
5047
  *
5048
+ * Note that a TransactionListener added to the Store with this method
5049
+ * _cannot_ mutate the Store itself, and attempts to do so will fail silently.
5050
+ *
4998
5051
  * @returns A unique Id for the listener that can later be used to remove it.
4999
5052
  * @example
5000
5053
  * This example registers a listener that is called at the end of the
@@ -5993,6 +5993,57 @@ export interface Store<in out Schemas extends OptionalSchemas> {
5993
5993
  mutator?: boolean,
5994
5994
  ): Id;
5995
5995
 
5996
+ /**
5997
+ * The addStartTransactionListener method registers a listener function with
5998
+ * the Store that will be called at the start of a transaction.
5999
+ *
6000
+ * This has schema-based typing. The following is a simplified representation:
6001
+ *
6002
+ * ```ts override
6003
+ * addStartTransactionListener(listener: TransactionListener): Id;
6004
+ * ```
6005
+ *
6006
+ * The provided TransactionListener will receive a reference to the Store and
6007
+ * two booleans to indicate whether Cell or Value data has been touched during
6008
+ * the transaction. Since this is called at the start, they will both be
6009
+ * `false`!
6010
+ *
6011
+ * Note that a TransactionListener added to the Store with this method can
6012
+ * mutate the Store, and its changes will be treated as part of the
6013
+ * transaction that is starting.
6014
+ *
6015
+ * @returns A unique Id for the listener that can later be used to remove it.
6016
+ * @example
6017
+ * This example registers a listener that is called at start end of the
6018
+ * transaction, just before its listeners will be called.
6019
+ *
6020
+ * ```js
6021
+ * const store = createStore()
6022
+ * .setTables({
6023
+ * pets: {fido: {species: 'dog', color: 'brown'}},
6024
+ * })
6025
+ * .setValues({open: true, employees: 3});
6026
+ * const listenerId = store.addStartTransactionListener(
6027
+ * (store, cellsTouched, valuesTouched) => {
6028
+ * console.log('Transaction started');
6029
+ * },
6030
+ * );
6031
+ *
6032
+ * store.transaction(() =>
6033
+ * store.setCell('pets', 'fido', 'color', 'brown').setValue('employees', 3),
6034
+ * );
6035
+ * // -> 'Transaction started'
6036
+ *
6037
+ * store.callListener(listenerId);
6038
+ * // -> 'Transaction started'
6039
+ *
6040
+ * store.delListener(listenerId);
6041
+ * ```
6042
+ * @category Listener
6043
+ * @since v3.2.0
6044
+ */
6045
+ addStartTransactionListener(listener: TransactionListener<Schemas>): Id;
6046
+
5996
6047
  /**
5997
6048
  * The addWillFinishTransactionListener method registers a listener function
5998
6049
  * with the Store that will be called just before other non-mutating listeners
@@ -6019,6 +6070,11 @@ export interface Store<in out Schemas extends OptionalSchemas> {
6019
6070
  * value of `cellsTouched` and `valuesTouched` in the listener will be `false`
6020
6071
  * because all changes have been reverted.
6021
6072
  *
6073
+ * Note that a TransactionListener added to the Store with this method can
6074
+ * mutate the Store itself, and its changes will be treated as part of the
6075
+ * transaction that is starting (and may fire non-mutating listeners after
6076
+ * this).
6077
+ *
6022
6078
  * @returns A unique Id for the listener that can later be used to remove it.
6023
6079
  * @example
6024
6080
  * This example registers a listener that is called at the end of the
@@ -6118,6 +6174,9 @@ export interface Store<in out Schemas extends OptionalSchemas> {
6118
6174
  * value of `cellsTouched` and `valuesTouched` in the listener will be `false`
6119
6175
  * because all changes have been reverted.
6120
6176
  *
6177
+ * Note that a TransactionListener added to the Store with this method
6178
+ * _cannot_ mutate the Store itself, and attempts to do so will fail silently.
6179
+ *
6121
6180
  * @returns A unique Id for the listener that can later be used to remove it.
6122
6181
  * @example
6123
6182
  * This example registers a listener that is called at the end of the
@@ -1 +1 @@
1
- var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,n=t(""),s=t(!0),r=t(0),o=t(t),i="Listener",a="Result",l="Ids",d="Row",c=d+l,u="Sorted"+d+l,f="Cell",h=f+l,g=(e,t)=>e.every(t),v=(e,t)=>e.forEach(t),w=e=>R(e,((e,t)=>e+t),0),y=e=>e.length,L=e=>0==y(e),R=(e,t,n)=>e.reduce(t,n),p=(e,...t)=>e.push(...t),T=Math.max,b=Math.min,m=isFinite,C=e=>null==e,Q=(e,t,n)=>C(e)?n?.():t(e),S=e=>t(e)==o,x=e=>Array.isArray(e),I=()=>{},E=e=>e.size,M=(e,t)=>e?.has(t)??!1,j=e=>C(e)||0==E(e),D=e=>[...e?.values()??[]],F=e=>e.clear(),k=(e,t)=>e?.forEach(t),z=(e,t)=>e?.delete(t),A=e=>new Map(e),W=(e,t)=>e?.get(t),B=(e,t)=>k(e,((e,n)=>t(n,e))),O=(e,t,n)=>C(n)?(z(e,t),e):e?.set(t,n),q=(e,t,n)=>(M(e,t)||O(e,t,n()),W(e,t)),G=(e,t,n,s,r=0)=>Q((n?q:W)(e,t[r],r>y(t)-2?n:A),(o=>{if(r>y(t)-2)return s?.(o)&&O(e,t[r]),o;const i=G(o,t,n,s,r+1);return j(o)&&O(e,t[r]),i})),H=e=>new Set(x(e)||C(e)?e:[e]),J=(e,t)=>e?.add(t),K=A([["avg",[(e,t)=>w(e)/t,(e,t,n)=>e+(t-e)/(n+1),(e,t,n)=>e+(e-t)/(n-1),(e,t,n,s)=>e+(t-n)/s]],["max",[e=>T(...e),(e,t)=>T(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:T(t,e)]],["min",[e=>b(...e),(e,t)=>b(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:b(t,e)]],["sum",[e=>w(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,n)=>e-n+t]]]),N=Object,P=N.freeze,U=(e=>{const o=new WeakMap;return e=>(o.has(e)||o.set(e,(e=>{const o=e.createStore,[l,w,R,T,b,,,U,,V,X,Y,Z]=((e,t,n)=>{const s=e.hasRow,r=A(),o=A(),i=A(),a=A(),l=A(),d=(t,n,...s)=>{const r=q(l,t,H);return v(s,(t=>J(r,t)&&n&&e.callListener(t))),s},c=(t,...n)=>Q(W(l,t),(s=>{v(L(n)?D(s):n,(t=>{e.delListener(t),z(s,t)})),j(s)&&O(l,t)})),u=(e,t)=>{O(r,e,t),M(o,e)||(O(o,e,!0),O(i,e,A()),O(a,e,A()))},f=e=>{O(r,e),O(o,e),O(i,e),O(a,e),c(e)};return[()=>e,()=>{return e=r,[...e?.keys()??[]];var e},e=>B(o,e),e=>M(o,e),e=>W(r,e),e=>W(o,e),(e,t)=>O(o,e,t),u,(t,r,o,l,f)=>{u(t,r);const h=A(),w=A(),L=W(i,t),R=W(a,t),p=t=>{const o=n=>e.getCell(r,t,n),i=W(L,t),a=s(r,t)?n(l(o,t)):void 0;var d,c;if(i===a||x(i)&&x(a)&&(c=a,y(d=i)===y(c)&&g(d,((e,t)=>c[t]===e)))||O(h,t,[i,a]),!C(f)){const e=W(R,t),n=s(r,t)?f(o,t):void 0;e!=n&&O(w,t,n)}},T=e=>{o((()=>{k(h,(([,e],t)=>O(L,t,e))),k(w,((e,t)=>O(R,t,e)))}),h,w,L,R,e),F(h),F(w)};B(L,p),e.hasTable(r)&&v(e.getRowIds(r),(e=>{M(L,e)||p(e)})),T(!0),c(t),d(t,0,e.addRowListener(r,null,((e,t,n)=>p(n))),e.addTableListener(r,(()=>T())))},f,()=>B(l,f),d,c]})(e,0,I),$=o(),_=o(),ee=A(),te=(e,t,...n)=>v(n,(n=>J(q(q(ee,t,A),e,H),n))),ne=e=>{Q(W(ee,e),(e=>{B(e,((e,t)=>k(t,(t=>e.delListener(t))))),F(e)})),v([_,$],(t=>t.delTable(e)))},se=(e,t,n)=>te(t,e,t.addWillFinishTransactionListener(n.startTransaction),t.addDidFinishTransactionListener((()=>n.finishTransaction()))),re={setQueryDefinition:(o,i,a)=>{U(o,i),ne(o);const l=[],d=[[null,[i,null,null,[],A()]]],c=[],u=[],f=[];a({select:(e,t)=>{const n=S(e)?[y(l)+"",e]:[C(t)?e:t,n=>n(e,t)];return p(l,n),{as:e=>n[0]=e}},join:(e,t,n)=>{const s=C(n)||S(t)?null:t,r=C(s)?t:n,o=[e,[e,s,S(r)?r:e=>e(r),[],A()]];return p(d,o),{as:e=>o[0]=e}},where:(e,t,n)=>p(c,S(e)?e:C(n)?n=>n(e)===t:s=>s(e,t)===n),group:(e,t,n,s,r)=>{const o=[e,[e,S(t)?[t,n,s,r]:W(K,t)??[(e,t)=>t]]];return p(u,o),{as:e=>o[0]=e}},having:(e,t)=>p(f,S(e)?e:n=>n(e)===t)});const h=A(l);if(j(h))return re;const w=A(d);B(w,((e,[,t])=>Q(W(w,t),(({3:t})=>C(e)?0:p(t,e)))));const R=A(u);let T=$;if(j(R)&&L(f))T=_;else{se(o,T,_);const e=A();B(R,((t,[n,s])=>J(q(e,n,H),[t,s])));const i=H();B(h,(t=>M(e,t)?0:J(i,t)));const a=A(),l=(i,a,l,d)=>Q(i,(([c,u,h,v])=>{B(a,((o,[i])=>{const a=q(c,o,A),u=W(a,l),f=d?void 0:i;if(u!==f){const i=H([[u,f]]),d=E(a);O(a,l,f),k(W(e,o),(([e,o])=>{const l=((e,t,n,s,r,o=!1)=>{if(j(n))return;const[i,a,l,d]=r;return o||=C(e),k(s,(([n,s])=>{o||(e=C(n)?a?.(e,s,t++):C(s)?l?.(e,n,t--):d?.(e,s,n,t),o||=C(e))})),o?i(D(n),E(n)):e})(v[e],d,a,i,o);v[e]=C((e=>{const o=t(e);return(e=>e==n||e==s)(o)||o==r&&m(e)?o:void 0})(l))?null:l}))}})),j(u)||!g(f,(e=>e((e=>v[e]))))?_.delRow(o,h):C(h)?i[2]=_.addRow(o,v):_.setRow(o,h,v)}));te(T,o,T.addRowListener(o,null,((t,n,s,r)=>{const d=[],c=[],u=A(),f=T.hasRow(o,s);let h=!f;k(i,(e=>{const[t,n,i]=r(o,s,e);p(d,n),p(c,i),h||=t})),B(e,(e=>{const[t,,n]=r(o,s,e);(h||t)&&O(u,e,[n])})),h&&l(G(a,d,void 0,(([,e])=>(z(e,s),j(e)))),u,s,1),f&&l(G(a,c,(()=>{const e={};return k(i,(t=>e[t]=T.getCell(o,s,t))),[A(),H(),void 0,e]}),(([,e])=>{J(e,s)})),u,s)})))}se(o,e,T);const b=(t,n,s,r)=>{const a=t=>e.getCell(n,s,t);v(r,(n=>{const[s,,r,i,l]=W(w,n),d=r?.(a,t),[c,u]=W(l,t)??[];d!=c&&(C(u)||Z(o,u),O(l,t,C(d)?null:[d,...Y(o,1,e.addRowListener(s,d,(()=>b(t,s,d,i))))]))})),(t=>{const n=(n,s)=>e.getCell(...C(s)?[i,t,n]:n===i?[i,t,s]:[W(w,n)?.[0],W(W(w,n)?.[4],t)?.[0],s]);T.transaction((()=>g(c,(e=>e(n)))?B(h,((e,s)=>((e,t,n,s,r)=>C(r)?e.delCell(t,n,s,!0):e.setCell(t,n,s,r))(T,o,t,e,s(n,t)))):T.delRow(o,t)))})(t)},{3:x}=W(w,null);return T.transaction((()=>Y(o,1,e.addRowListener(i,null,((t,n,s)=>{e.hasRow(i,s)?b(s,i,s,x):(T.delRow(o,s),k(w,(({4:e})=>Q(W(e,s),(([,t])=>{Z(o,t),O(e,s)})))))}))))),re},delQueryDefinition:e=>(ne(e),V(e),re),getStore:l,getQueryIds:w,forEachQuery:R,hasQuery:T,getTableId:b,delListener:e=>(_.delListener(e),re),destroy:X,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:n,...s}=_.getListenerStats();return s}};var oe,ie;return oe={Table:[1,1],[c]:[0,1],[u]:[0,5],[d]:[1,2],[h]:[0,2],[f]:[1,3]},ie=([e,t],n)=>{v(e?["get","has","forEach"]:["get"],(e=>re[e+a+n]=(...t)=>_[e+n](...t))),re["add"+a+n+i]=(...e)=>{return _["add"+n+i](...(s=e,0,r=t,s.slice(0,r)),((n,...s)=>e[t](re,...s)));var s,r}},((e,t)=>{e.map(t)})(N.entries(oe),(([e,t])=>ie(t,e))),P(re)})(e)),o.get(e))})();e.createQueries=U},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseQueries={});
1
+ var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,n=t(""),s=t(!0),r=t(0),o=t(t),a="Listener",i="Result",l="Ids",d="Row",c=d+l,u="Sorted"+d+l,f="Cell",h=f+l,g=(e,t)=>e.every(t),v=(e,t)=>e.forEach(t),w=e=>R(e,((e,t)=>e+t),0),y=e=>e.length,L=e=>0==y(e),R=(e,t,n)=>e.reduce(t,n),p=(e,...t)=>e.push(...t),T=Math.max,b=Math.min,m=isFinite,C=e=>null==e,Q=(e,t,n)=>C(e)?n?.():t(e),S=e=>t(e)==o,x=e=>Array.isArray(e),I=()=>{},E=e=>e.size,M=(e,t)=>e?.has(t)??!1,j=e=>C(e)||0==E(e),D=e=>[...e?.values()??[]],k=e=>e.clear(),z=(e,t)=>e?.forEach(t),A=(e,t)=>e?.delete(t),F=e=>new Map(e),B=(e,t)=>e?.get(t),O=(e,t)=>z(e,((e,n)=>t(n,e))),W=(e,t,n)=>C(n)?(A(e,t),e):e?.set(t,n),q=(e,t,n)=>(M(e,t)||W(e,t,n()),B(e,t)),G=(e,t,n,s,r=0)=>Q((n?q:B)(e,t[r],r>y(t)-2?n:F),(o=>{if(r>y(t)-2)return s?.(o)&&W(e,t[r]),o;const a=G(o,t,n,s,r+1);return j(o)&&W(e,t[r]),a})),H=e=>new Set(x(e)||C(e)?e:[e]),J=(e,t)=>e?.add(t),K=F([["avg",[(e,t)=>w(e)/t,(e,t,n)=>e+(t-e)/(n+1),(e,t,n)=>e+(e-t)/(n-1),(e,t,n,s)=>e+(t-n)/s]],["max",[e=>T(...e),(e,t)=>T(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:T(t,e)]],["min",[e=>b(...e),(e,t)=>b(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:b(t,e)]],["sum",[e=>w(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,n)=>e-n+t]]]),N=Object,P=N.freeze,U=(e=>{const o=new WeakMap;return e=>(o.has(e)||o.set(e,(e=>{const o=e.createStore,[l,w,R,T,b,,,U,,V,X,Y,Z]=((e,t,n)=>{const s=e.hasRow,r=F(),o=F(),a=F(),i=F(),l=F(),d=(t,n,...s)=>{const r=q(l,t,H);return v(s,(t=>J(r,t)&&n&&e.callListener(t))),s},c=(t,...n)=>Q(B(l,t),(s=>{v(L(n)?D(s):n,(t=>{e.delListener(t),A(s,t)})),j(s)&&W(l,t)})),u=(e,t)=>{W(r,e,t),M(o,e)||(W(o,e,!0),W(a,e,F()),W(i,e,F()))},f=e=>{W(r,e),W(o,e),W(a,e),W(i,e),c(e)};return[()=>e,()=>{return e=r,[...e?.keys()??[]];var e},e=>O(o,e),e=>M(o,e),e=>B(r,e),e=>B(o,e),(e,t)=>W(o,e,t),u,(t,r,o,l,f)=>{u(t,r);const h=F(),w=F(),L=B(a,t),R=B(i,t),p=t=>{const o=n=>e.getCell(r,t,n),a=B(L,t),i=s(r,t)?n(l(o,t)):void 0;var d,c;if(a===i||x(a)&&x(i)&&(c=i,y(d=a)===y(c)&&g(d,((e,t)=>c[t]===e)))||W(h,t,[a,i]),!C(f)){const e=B(R,t),n=s(r,t)?f(o,t):void 0;e!=n&&W(w,t,n)}},T=e=>{o((()=>{z(h,(([,e],t)=>W(L,t,e))),z(w,((e,t)=>W(R,t,e)))}),h,w,L,R,e),k(h),k(w)};O(L,p),e.hasTable(r)&&v(e.getRowIds(r),(e=>{M(L,e)||p(e)})),T(!0),c(t),d(t,0,e.addRowListener(r,null,((e,t,n)=>p(n))),e.addTableListener(r,(()=>T())))},f,()=>O(l,f),d,c]})(e,0,I),$=o(),_=o(),ee=F(),te=(e,t,...n)=>v(n,(n=>J(q(q(ee,t,F),e,H),n))),ne=e=>{Q(B(ee,e),(e=>{O(e,((e,t)=>z(t,(t=>e.delListener(t))))),k(e)})),v([_,$],(t=>t.delTable(e)))},se=(e,t,n)=>te(t,e,t.addStartTransactionListener(n.startTransaction),t.addDidFinishTransactionListener((()=>n.finishTransaction()))),re={setQueryDefinition:(o,a,i)=>{U(o,a),ne(o);const l=[],d=[[null,[a,null,null,[],F()]]],c=[],u=[],f=[];i({select:(e,t)=>{const n=S(e)?[y(l)+"",e]:[C(t)?e:t,n=>n(e,t)];return p(l,n),{as:e=>n[0]=e}},join:(e,t,n)=>{const s=C(n)||S(t)?null:t,r=C(s)?t:n,o=[e,[e,s,S(r)?r:e=>e(r),[],F()]];return p(d,o),{as:e=>o[0]=e}},where:(e,t,n)=>p(c,S(e)?e:C(n)?n=>n(e)===t:s=>s(e,t)===n),group:(e,t,n,s,r)=>{const o=[e,[e,S(t)?[t,n,s,r]:B(K,t)??[(e,t)=>t]]];return p(u,o),{as:e=>o[0]=e}},having:(e,t)=>p(f,S(e)?e:n=>n(e)===t)});const h=F(l);if(j(h))return re;const w=F(d);O(w,((e,[,t])=>Q(B(w,t),(({3:t})=>C(e)?0:p(t,e)))));const R=F(u);let T=$;if(j(R)&&L(f))T=_;else{se(o,T,_);const e=F();O(R,((t,[n,s])=>J(q(e,n,H),[t,s])));const a=H();O(h,(t=>M(e,t)?0:J(a,t)));const i=F(),l=(a,i,l,d)=>Q(a,(([c,u,h,v])=>{O(i,((o,[a])=>{const i=q(c,o,F),u=B(i,l),f=d?void 0:a;if(u!==f){const a=H([[u,f]]),d=E(i);W(i,l,f),z(B(e,o),(([e,o])=>{const l=((e,t,n,s,r,o=!1)=>{if(j(n))return;const[a,i,l,d]=r;return o||=C(e),z(s,(([n,s])=>{o||(e=C(n)?i?.(e,s,t++):C(s)?l?.(e,n,t--):d?.(e,s,n,t),o||=C(e))})),o?a(D(n),E(n)):e})(v[e],d,i,a,o);v[e]=C((e=>{const o=t(e);return(e=>e==n||e==s)(o)||o==r&&m(e)?o:void 0})(l))?null:l}))}})),j(u)||!g(f,(e=>e((e=>v[e]))))?_.delRow(o,h):C(h)?a[2]=_.addRow(o,v):_.setRow(o,h,v)}));te(T,o,T.addRowListener(o,null,((t,n,s,r)=>{const d=[],c=[],u=F(),f=T.hasRow(o,s);let h=!f;z(a,(e=>{const[t,n,a]=r(o,s,e);p(d,n),p(c,a),h||=t})),O(e,(e=>{const[t,,n]=r(o,s,e);(h||t)&&W(u,e,[n])})),h&&l(G(i,d,void 0,(([,e])=>(A(e,s),j(e)))),u,s,1),f&&l(G(i,c,(()=>{const e={};return z(a,(t=>e[t]=T.getCell(o,s,t))),[F(),H(),void 0,e]}),(([,e])=>{J(e,s)})),u,s)})))}se(o,e,T);const b=(t,n,s,r)=>{const i=t=>e.getCell(n,s,t);v(r,(n=>{const[s,,r,a,l]=B(w,n),d=r?.(i,t),[c,u]=B(l,t)??[];d!=c&&(C(u)||Z(o,u),W(l,t,C(d)?null:[d,...Y(o,1,e.addRowListener(s,d,(()=>b(t,s,d,a))))]))})),(t=>{const n=(n,s)=>e.getCell(...C(s)?[a,t,n]:n===a?[a,t,s]:[B(w,n)?.[0],B(B(w,n)?.[4],t)?.[0],s]);T.transaction((()=>g(c,(e=>e(n)))?O(h,((e,s)=>((e,t,n,s,r)=>C(r)?e.delCell(t,n,s,!0):e.setCell(t,n,s,r))(T,o,t,e,s(n,t)))):T.delRow(o,t)))})(t)},{3:x}=B(w,null);return T.transaction((()=>Y(o,1,e.addRowListener(a,null,((t,n,s)=>{e.hasRow(a,s)?b(s,a,s,x):(T.delRow(o,s),z(w,(({4:e})=>Q(B(e,s),(([,t])=>{Z(o,t),W(e,s)})))))}))))),re},delQueryDefinition:e=>(ne(e),V(e),re),getStore:l,getQueryIds:w,forEachQuery:R,hasQuery:T,getTableId:b,delListener:e=>(_.delListener(e),re),destroy:X,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:n,...s}=_.getListenerStats();return s}};var oe,ae;return oe={Table:[1,1],[c]:[0,1],[u]:[0,5],[d]:[1,2],[h]:[0,2],[f]:[1,3]},ae=([e,t],n)=>{v(e?["get","has","forEach"]:["get"],(e=>re[e+i+n]=(...t)=>_[e+n](...t))),re["add"+i+n+a]=(...e)=>{return _["add"+n+a](...(s=e,0,r=t,s.slice(0,r)),((n,...s)=>e[t](re,...s)));var s,r}},((e,t)=>{e.map(t)})(N.entries(oe),(([e,t])=>ae(t,e))),P(re)})(e)),o.get(e))})();e.createQueries=U},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseQueries={});
Binary file
package/lib/umd/store.js CHANGED
@@ -1 +1 @@
1
- var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,s="",n=t(s),l=t(!0),r=t(0),a=t(t),o="type",c="default",i="Ids",u="Table",d=u+"s",f=u+i,h="Row"+i,g="Cell",T=g+i,b="Value",V=b+"s",S=b+i,v=e=>s+e,y=(e,t)=>e.forEach(t),p=(e,t)=>e.map(t),w=e=>e.length,m=(e,t,s)=>e.slice(t,s),R=(e,...t)=>e.push(...t),J=e=>JSON.stringify(e,((e,t)=>{return L(t,Map)?(s=(e,[t,s])=>(e[t]=s,e),n={},[...t].reduce(s,n)):t;var s,n})),C=JSON.parse,I=isFinite,L=(e,t)=>e instanceof t,E=e=>null==e,F=(e,t,s)=>E(e)?s?.():t(e),x=e=>e==n||e==l,z=e=>t(e)==a,O=(e,t)=>e?.has(t)??!1,j=e=>E(e)||0==(e=>e.size)(e),k=e=>e.clear(),A=(e,t)=>e?.forEach(t),M=(e,t)=>e?.delete(t),N=e=>new Map(e),P=e=>[...e?.keys()??[]],B=(e,t)=>e?.get(t),D=(e,t)=>A(e,((e,s)=>t(s,e))),W=(e,t,s)=>E(s)?(M(e,t),e):e?.set(t,s),$=(e,t,s)=>(O(e,t)||W(e,t,s()),B(e,t)),q=(e,t,s)=>{const n={},l=t??(e=>e);return A(e,((e,t)=>F(l(e),(e=>s?.(e)?0:n[t]=e)))),n},G=(e,t)=>{const s=N(),n=t??(e=>e);return A(e,((e,t)=>s.set(t,n(e)))),s},H=e=>G(e,G),K=(e,t,s,n,l=0)=>F((s?$:B)(e,t[l],l>w(t)-2?s:N),(r=>{if(l>w(t)-2)return n?.(r)&&W(e,t[l]),r;const a=K(r,t,s,n,l+1);return j(r)&&W(e,t[l]),a})),Q=e=>new Set(Array.isArray(e)||E(e)?e:[e]),U=(e,t)=>e?.add(t),X=/^\d+$/,Y=()=>{const e=[];let t=0;return[n=>(n?e.shift():null)??s+t++,t=>{X.test(t)&&w(e)<1e3&&R(e,t)}]},Z=Object,_=Z.keys,ee=Z.isFrozen,te=Z.freeze,se=e=>L(e,Z)&&e.constructor==Z,ne=(e,t)=>!E(((e,t)=>F(e,(e=>e[t])))(e,t)),le=(e,t)=>delete e[t],re=(e,t)=>p(Z.entries(e),(([e,s])=>t(s,e))),ae=e=>{return se(e)&&(t=_(e),0==w(t));var t},oe=e=>[e,e],ce=()=>[N(),N()],ie=e=>{const s=t(e);return x(s)||s==r&&I(e)?s:void 0},ue=(e,t,s,n=W)=>(re(t,((t,n)=>s(e,n,t))),D(e,(s=>ne(t,s)?0:n(e,s))),e),de=(e,t,s)=>E(e)||!se(e)||ae(e)||ee(e)?(s?.(),!1):(re(e,((s,n)=>{t(s,n)||le(e,n)})),!ae(e)),fe=(e,t,s)=>W(e,t,B(e,t)==-s?void 0:s),he=()=>{let e,t,n,l,a=0;const i=N(),I=N(),L=N(),X=N(),Z=N(),_=N(),ee=N(),se=N(),ge=N(),Te=N(),be=N(),Ve=N(),Se=Q(),ve=N(),ye=N(),pe=N(),we=ce(),me=ce(),Re=ce(),Je=ce(),Ce=ce(),Ie=ce(),Le=ce(),Ee=ce(),Fe=ce(),xe=ce(),ze=ce(),Oe=ce(),je=ce(),ke=ce(),[Ae,Me,Ne,Pe]=(e=>{let t;const[n,l]=Y(),r=N();return[(e,l,a,o=[],c=(()=>[]))=>{t??=Qt;const i=n(1);return W(r,i,[e,l,a,o,c]),U(K(l,a??[s],Q),i),i},(e,n,...l)=>y(((e,t=[s])=>{const n=[],l=(e,s)=>s==w(t)?R(n,e):null===t[s]?A(e,(e=>l(e,s+1))):y([t[s],null],(t=>l(B(e,t),s+1)));return l(e,0),n})(e,n),(e=>A(e,(e=>B(r,e)[0](t,...n??[],...l))))),e=>F(B(r,e),(([,t,n])=>(K(t,n??[s],void 0,(t=>(M(t,e),j(t)?1:0))),W(r,e),l(e),n))),e=>F(B(r,e),(([e,,s=[],n,l])=>{const r=(...a)=>{const o=w(a);o==w(s)?e(t,...a,...l(a)):E(s[o])?y(n[o]?.(...a)??[],(e=>r(...a,e))):r(...a,s[o])};r()}))]})(),Be=e=>{if(!de(e,((e,t)=>[o,c].includes(t))))return!1;const t=e[o];return!(!x(t)&&t!=r||(ie(e[c])!=t&&le(e,c),0))},De=(t,s)=>(!e||O(ge,s)||Vt(s))&&de(t,((e,t)=>We(s,t,e)),(()=>Vt(s))),We=(e,t,s,n)=>de(n?s:He(s,e,t),((n,l)=>F($e(e,t,l,n),(e=>(s[l]=e,!0)),(()=>!1))),(()=>Vt(e,t))),$e=(t,s,n,l)=>e?F(B(B(ge,t),n),(e=>ie(l)!=e[o]?Vt(t,s,n,l,e[c]):l),(()=>Vt(t,s,n,l))):E(ie(l))?Vt(t,s,n,l):l,qe=(e,t)=>de(t?e:Ke(e),((t,s)=>F(Ge(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>St())),Ge=(e,s)=>t?F(B(be,e),(t=>ie(s)!=t[o]?St(e,s,t[c]):s),(()=>St(e,s))):E(ie(s))?St(e,s):s,He=(e,t,s)=>(F(B(Te,t),(([n,l])=>{A(n,((t,s)=>{ne(e,s)||(e[s]=t)})),A(l,(n=>{ne(e,n)||Vt(t,s,n)}))})),e),Ke=e=>(t&&(A(Ve,((t,s)=>{ne(e,s)||(e[s]=t)})),A(Se,(t=>{ne(e,t)||St(t)}))),e),Qe=e=>ue(ge,e,((e,t,s)=>{const n=N(),l=Q();ue($(ge,t,N),s,((e,t,s)=>{W(e,t,s),F(s[c],(e=>W(n,t,e)),(()=>U(l,t)))})),W(Te,t,[n,l])}),((e,t)=>{W(ge,t),W(Te,t)})),Ue=e=>ue(be,e,((e,t,s)=>{W(be,t,s),F(s[c],(e=>W(Ve,t,e)),(()=>U(Se,t)))}),((e,t)=>{W(be,t),W(Ve,t),M(Se,t)})),Xe=e=>ae(e)?Dt():At(e),Ye=e=>ue(ye,e,((e,t,s)=>Ze(t,s)),((e,t)=>ot(t))),Ze=(e,t)=>ue($(ye,e,(()=>(dt(e,1),N()))),t,((t,s,n)=>_e(e,t,s,n)),((t,s)=>ct(e,t,s))),_e=(e,t,s,n,l)=>ue($(t,s,(()=>(ft(e,s,1),N()))),n,((t,n,l)=>et(e,s,t,n,l)),((n,r)=>it(e,t,s,n,r,l))),et=(e,t,s,n,l)=>{O(s,n)||ht(e,t,n,1);const r=B(s,n);l!==r&&(gt(e,t,n,r,l),W(s,n,l))},tt=(e,t,s,n,l)=>F(B(t,s),(t=>et(e,s,t,n,l)),(()=>_e(e,t,s,He({[n]:l},e,s)))),st=e=>ae(e)?Wt():Mt(e),nt=e=>ue(pe,e,((e,t,s)=>lt(t,s)),((e,t)=>ut(t))),lt=(e,t)=>{O(pe,e)||Tt(e,1);const s=B(pe,e);t!==s&&(bt(e,s,t),W(pe,e,t))},rt=(e,t)=>{const[s]=$(ve,e,Y),n=s(t);return O(B(ye,e),n)?rt(e,t):n},at=e=>B(ye,e)??Ze(e,{}),ot=e=>Ze(e,{}),ct=(e,t,s)=>{const[,n]=$(ve,e,Y);n(s),_e(e,t,s,{},!0)},it=(e,t,s,n,l,r)=>{const a=B(B(Te,e)?.[0],l);if(!E(a)&&!r)return et(e,s,n,l,a);const o=t=>{gt(e,s,t,B(n,t)),ht(e,s,t,-1),W(n,t)};E(a)?o(l):D(n,o),j(n)&&(ft(e,s,-1),j(W(t,s))&&(dt(e,-1),W(ye,e),W(ve,e)))},ut=e=>{const t=B(Ve,e);if(!E(t))return lt(e,t);bt(e,B(pe,e)),Tt(e,-1),W(pe,e)},dt=(e,t)=>fe(i,e,t),ft=(e,t,s)=>fe($(I,e,N),t,s),ht=(e,t,s,n)=>fe($($(L,e,N),t,N),s,n),gt=(e,t,s,n,l)=>$($($(X,e,N),t,N),s,(()=>[n,0]))[1]=l,Tt=(e,t)=>fe(Z,e,t),bt=(e,t,s)=>$(_,e,(()=>[t,0]))[1]=s,Vt=(e,t,s,n,l)=>(R($($($(ee,e,N),t,N),s,(()=>[])),n),l),St=(e,t,s)=>(R($(se,e,(()=>[])),t),s),vt=(e,t,s)=>F(B(B(B(X,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...oe(zt(e,t,s))])),yt=e=>F(B(_,e),(([e,t])=>[!0,e,t]),(()=>[!1,...oe(kt(e))])),pt=e=>j(ee)||j(Fe[e])?0:A(e?G(ee,H):ee,((t,s)=>A(t,((t,n)=>A(t,((t,l)=>Me(Fe[e],[s,n,l],t))))))),wt=e=>j(se)||j(xe[e])?0:A(e?G(se):se,((t,s)=>Me(xe[e],[s],t))),mt=(e,t,s)=>{if(!j(t))return Me(e,s),1},Rt=e=>{const t=j(Ce[e]),s=j(Le[e])&&j(Je[e])&&t&&j(me[e]),n=j(Ee[e])&&j(Ie[e])&&j(Re[e])&&j(we[e]);if(!s||!n){const l=e?[G(i),H(I),G(L,H),G(X,H)]:[i,I,L,X];if(!s){A(l[2],((t,s)=>A(t,((t,n)=>mt(Le[e],t,[s,n])))));const s=Q();A(l[1],((n,l)=>{mt(Je[e],n,[l])&&!t&&(Me(Ce[e],[l,null]),U(s,l))})),t||A(l[3],((t,n)=>{if(!O(s,n)){const s=Q();A(t,(e=>A(e,(([t,n],l)=>n!==t?U(s,l):M(e,l))))),A(s,(t=>Me(Ce[e],[n,t])))}})),mt(me[e],l[0])}if(!n){let t;A(l[3],((s,n)=>{let l;A(s,((s,r)=>{let a;A(s,(([s,o],c)=>{o!==s&&(Me(Ee[e],[n,r,c],o,s,vt),t=l=a=1)})),a&&Me(Ie[e],[n,r],vt)})),l&&Me(Re[e],[n],vt)})),t&&Me(we[e],void 0,vt)}}},Jt=e=>{const t=j(Oe[e]),s=j(je[e])&&j(ze[e]);if(!t||!s){const n=e?[G(Z),G(_)]:[Z,_];if(t||mt(Oe[e],n[0]),!s){let t;A(n[1],(([s,n],l)=>{n!==s&&(Me(je[e],[l],n,s,yt),t=1)})),t&&Me(ze[e],void 0,yt)}}},Ct=(e,...t)=>(Gt((()=>e(...p(t,v)))),Qt),It=()=>q(ye,(e=>q(e,q))),Lt=()=>P(ye),Et=e=>P(B(ye,v(e))),Ft=(e,t,s,n=0,l)=>{return p(m((a=B(ye,v(e)),o=(e,s)=>[E(t)?s:B(e,v(t)),s],r=([e],[t])=>(e<t?-1:1)*(s?-1:1),p([...a?.entries()??[]],(([e,t])=>o(t,e))).sort(r)),n,E(l)?l:n+l),(([,e])=>e));var r,a,o},xt=(e,t)=>P(B(B(ye,v(e)),v(t))),zt=(e,t,s)=>B(B(B(ye,v(e)),v(t)),v(s)),Ot=()=>q(pe),jt=()=>P(pe),kt=e=>B(pe,v(e)),At=e=>Ct((()=>(e=>de(e,De,Vt))(e)?Ye(e):0)),Mt=e=>Ct((()=>qe(e)?nt(e):0)),Nt=e=>{try{Xe(C(e))}catch{}return Qt},Pt=t=>Ct((()=>{if((e=de(t,(e=>de(e,Be))))&&(Qe(t),!j(ye))){const e=It();Dt(),At(e)}})),Bt=e=>Ct((()=>{if(t=(e=>de(e,Be))(e)){const s=Ot();qt(),Wt(),t=!0,Ue(e),Mt(s)}})),Dt=()=>Ct((()=>Ye({}))),Wt=()=>Ct((()=>nt({}))),$t=()=>Ct((()=>{Qe({}),e=!1})),qt=()=>Ct((()=>{Ue({}),t=!1})),Gt=(e,t)=>{if(-1==a)return;Ht();const s=e();return Kt(t),s},Ht=()=>(a++,Qt),Kt=e=>(a>0&&(a--,0==a&&(n=!j(X),l=!j(_),a=1,pt(1),n&&Rt(1),wt(1),l&&Jt(1),a=-1,e?.(q(X,(e=>q(e,(e=>q(e,(e=>[...e]),(([e,t])=>e===t))),ae)),ae),q(ee,(e=>q(e,q))),q(_,(e=>[...e]),(([e,t])=>e===t)),q(se))&&(a=1,A(X,((e,t)=>A(e,((e,s)=>A(e,(([e],n)=>((e,t,s,n,l)=>E(l)?e.delCell(t,s,n,!0):e.setCell(t,s,n,l))(Qt,t,s,n,e))))))),A(_,(([e],t)=>((e,t,s)=>E(s)?e.delValue(t):e.setValue(t,s))(Qt,t,e))),a=-1,n=l=!1),Me(ke[0],void 0,n,l),pt(0),n&&Rt(0),wt(0),l&&Jt(0),Me(ke[1],void 0,n,l),a=0,y([i,I,L,X,ee,Z,_,se],k))),Qt),Qt={getTables:It,getTableIds:Lt,getTable:e=>q(B(ye,v(e)),q),getRowIds:Et,getSortedRowIds:Ft,getRow:(e,t)=>q(B(B(ye,v(e)),v(t))),getCellIds:xt,getCell:zt,getValues:Ot,getValueIds:jt,getValue:kt,hasTables:()=>!j(ye),hasTable:e=>O(ye,v(e)),hasRow:(e,t)=>O(B(ye,v(e)),v(t)),hasCell:(e,t,s)=>O(B(B(ye,v(e)),v(t)),v(s)),hasValues:()=>!j(pe),hasValue:e=>O(pe,v(e)),getTablesJson:()=>J(ye),getValuesJson:()=>J(pe),getJson:()=>J([ye,pe]),getTablesSchemaJson:()=>J(ge),getValuesSchemaJson:()=>J(be),getSchemaJson:()=>J([ge,be]),setTables:At,setTable:(e,t)=>Ct((e=>De(t,e)?Ze(e,t):0),e),setRow:(e,t,s)=>Ct(((e,t)=>We(e,t,s)?_e(e,at(e),t,s):0),e,t),addRow:(e,t,s=!0)=>Gt((()=>{let n;return We(e,n,t)&&(e=v(e),_e(e,at(e),n=rt(e,s?1:0),t)),n})),setPartialRow:(e,t,s)=>Ct(((e,t)=>{if(We(e,t,s,1)){const n=at(e);re(s,((s,l)=>tt(e,n,t,l,s)))}}),e,t),setCell:(e,t,s,n)=>Ct(((e,t,s)=>F($e(e,t,s,z(n)?n(zt(e,t,s)):n),(n=>tt(e,at(e),t,s,n)))),e,t,s),setValues:Mt,setPartialValues:e=>Ct((()=>qe(e,1)?re(e,((e,t)=>lt(t,e))):0)),setValue:(e,t)=>Ct((e=>F(Ge(e,z(t)?t(kt(e)):t),(t=>lt(e,t)))),e),setTablesJson:Nt,setValuesJson:e=>{try{st(C(e))}catch{}return Qt},setJson:e=>{try{const[t,s]=C(e);Xe(t),st(s)}catch{Nt(e)}return Qt},setTablesSchema:Pt,setValuesSchema:Bt,setSchema:(e,t)=>Ct((()=>{Pt(e),Bt(t)})),delTables:Dt,delTable:e=>Ct((e=>O(ye,e)?ot(e):0),e),delRow:(e,t)=>Ct(((e,t)=>F(B(ye,e),(s=>O(s,t)?ct(e,s,t):0))),e,t),delCell:(e,t,s,n)=>Ct(((e,t,s)=>F(B(ye,e),(l=>F(B(l,t),(r=>O(r,s)?it(e,l,t,r,s,n):0))))),e,t,s),delValues:Wt,delValue:e=>Ct((e=>O(pe,e)?ut(e):0),e),delTablesSchema:$t,delValuesSchema:qt,delSchema:()=>Ct((()=>{$t(),qt()})),transaction:Gt,startTransaction:Ht,finishTransaction:Kt,forEachTable:e=>A(ye,((t,s)=>e(s,(e=>A(t,((t,s)=>e(s,(e=>D(t,e))))))))),forEachRow:(e,t)=>A(B(ye,v(e)),((e,s)=>t(s,(t=>D(e,t))))),forEachCell:(e,t,s)=>D(B(B(ye,v(e)),v(t)),s),forEachValue:e=>D(pe,e),addSortedRowIdsListener:(e,t,s,n,l,r,a)=>{let o=Ft(e,t,s,n,l);return Ae((()=>{const a=Ft(e,t,s,n,l);var c,i,u;i=o,w(c=a)===w(i)&&(u=(e,t)=>i[t]===e,c.every(u))||(o=a,r(Qt,e,t,s,n,l,o))}),Ce[a?1:0],[e,t],[Lt])},addWillFinishTransactionListener:e=>Ae(e,ke[0]),addDidFinishTransactionListener:e=>Ae(e,ke[1]),callListener:e=>(Pe(e),Qt),delListener:e=>(Ne(e),Qt),getListenerStats:()=>({}),createStore:he};return re({[d]:[0,we],[f]:[0,me],[u]:[1,Re,[Lt]],[h]:[1,Je,[Lt]],Row:[2,Ie,[Lt,Et]],[T]:[2,Le,[Lt,Et]],[g]:[3,Ee,[Lt,Et,xt],e=>oe(zt(...e))],InvalidCell:[3,Fe],[V]:[0,ze],[S]:[0,Oe],[b]:[1,je,[jt],e=>oe(kt(e[0]))],InvalidValue:[1,xe]},(([e,t,s,n],l)=>{Qt["add"+l+"Listener"]=(...l)=>Ae(l[e],t[l[e+1]?1:0],e>0?m(l,0,e):void 0,s,n)})),te(Qt)};e.createStore=he},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseStore={});
1
+ var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,s="",n=t(s),a=t(!0),r=t(0),l=t(t),o="type",i="default",c="Ids",d="Table",u=d+"s",f=d+c,h="Row"+c,T="Cell",g=T+c,b="Value",V=b+"s",S=b+c,v=e=>s+e,y=(e,t)=>e.forEach(t),p=(e,t)=>e.map(t),w=e=>e.length,m=(e,t,s)=>e.slice(t,s),R=(e,...t)=>e.push(...t),J=e=>JSON.stringify(e,((e,t)=>{return L(t,Map)?(s=(e,[t,s])=>(e[t]=s,e),n={},[...t].reduce(s,n)):t;var s,n})),C=JSON.parse,I=isFinite,L=(e,t)=>e instanceof t,E=e=>null==e,F=(e,t,s)=>E(e)?s?.():t(e),x=e=>e==n||e==a,z=e=>t(e)==l,O=(e,t)=>e?.has(t)??!1,j=e=>E(e)||0==(e=>e.size)(e),k=e=>e.clear(),A=(e,t)=>e?.forEach(t),M=(e,t)=>e?.delete(t),N=e=>new Map(e),P=e=>[...e?.keys()??[]],B=(e,t)=>e?.get(t),D=(e,t)=>A(e,((e,s)=>t(s,e))),W=(e,t,s)=>E(s)?(M(e,t),e):e?.set(t,s),$=(e,t,s)=>(O(e,t)||W(e,t,s()),B(e,t)),q=(e,t,s)=>{const n={},a=t??(e=>e);return A(e,((e,t)=>F(a(e),(e=>s?.(e)?0:n[t]=e)))),n},G=(e,t)=>{const s=N(),n=t??(e=>e);return A(e,((e,t)=>s.set(t,n(e)))),s},H=e=>G(e,G),K=(e,t,s,n,a=0)=>F((s?$:B)(e,t[a],a>w(t)-2?s:N),(r=>{if(a>w(t)-2)return n?.(r)&&W(e,t[a]),r;const l=K(r,t,s,n,a+1);return j(r)&&W(e,t[a]),l})),Q=e=>new Set(Array.isArray(e)||E(e)?e:[e]),U=(e,t)=>e?.add(t),X=/^\d+$/,Y=()=>{const e=[];let t=0;return[n=>(n?e.shift():null)??s+t++,t=>{X.test(t)&&w(e)<1e3&&R(e,t)}]},Z=Object,_=Z.keys,ee=Z.isFrozen,te=Z.freeze,se=e=>L(e,Z)&&e.constructor==Z,ne=(e,t)=>!E(((e,t)=>F(e,(e=>e[t])))(e,t)),ae=(e,t)=>delete e[t],re=(e,t)=>p(Z.entries(e),(([e,s])=>t(s,e))),le=e=>{return se(e)&&(t=_(e),0==w(t));var t},oe=e=>[e,e],ie=()=>[N(),N()],ce=e=>{const s=t(e);return x(s)||s==r&&I(e)?s:void 0},de=(e,t,s,n=W)=>(re(t,((t,n)=>s(e,n,t))),D(e,(s=>ne(t,s)?0:n(e,s))),e),ue=(e,t,s)=>E(e)||!se(e)||le(e)||ee(e)?(s?.(),!1):(re(e,((s,n)=>{t(s,n)||ae(e,n)})),!le(e)),fe=(e,t,s)=>W(e,t,B(e,t)==-s?void 0:s),he=()=>{let e,t,n,a,l=0;const c=N(),I=N(),L=N(),X=N(),Z=N(),_=N(),ee=N(),se=N(),Te=N(),ge=N(),be=N(),Ve=N(),Se=Q(),ve=N(),ye=N(),pe=N(),we=ie(),me=ie(),Re=ie(),Je=ie(),Ce=ie(),Ie=ie(),Le=ie(),Ee=ie(),Fe=ie(),xe=ie(),ze=ie(),Oe=ie(),je=ie(),ke=N(),Ae=ie(),[Me,Ne,Pe,Be]=(e=>{let t;const[n,a]=Y(),r=N();return[(e,a,l,o=[],i=(()=>[]))=>{t??=Ut;const c=n(1);return W(r,c,[e,a,l,o,i]),U(K(a,l??[s],Q),c),c},(e,n,...a)=>y(((e,t=[s])=>{const n=[],a=(e,s)=>s==w(t)?R(n,e):null===t[s]?A(e,(e=>a(e,s+1))):y([t[s],null],(t=>a(B(e,t),s+1)));return a(e,0),n})(e,n),(e=>A(e,(e=>B(r,e)[0](t,...n??[],...a))))),e=>F(B(r,e),(([,t,n])=>(K(t,n??[s],void 0,(t=>(M(t,e),j(t)?1:0))),W(r,e),a(e),n))),e=>F(B(r,e),(([e,,s=[],n,a])=>{const r=(...l)=>{const o=w(l);o==w(s)?e(t,...l,...a(l)):E(s[o])?y(n[o]?.(...l)??[],(e=>r(...l,e))):r(...l,s[o])};r()}))]})(),De=e=>{if(!ue(e,((e,t)=>[o,i].includes(t))))return!1;const t=e[o];return!(!x(t)&&t!=r||(ce(e[i])!=t&&ae(e,i),0))},We=(t,s)=>(!e||O(Te,s)||St(s))&&ue(t,((e,t)=>$e(s,t,e)),(()=>St(s))),$e=(e,t,s,n)=>ue(n?s:Ke(s,e,t),((n,a)=>F(qe(e,t,a,n),(e=>(s[a]=e,!0)),(()=>!1))),(()=>St(e,t))),qe=(t,s,n,a)=>e?F(B(B(Te,t),n),(e=>ce(a)!=e[o]?St(t,s,n,a,e[i]):a),(()=>St(t,s,n,a))):E(ce(a))?St(t,s,n,a):a,Ge=(e,t)=>ue(t?e:Qe(e),((t,s)=>F(He(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>vt())),He=(e,s)=>t?F(B(be,e),(t=>ce(s)!=t[o]?vt(e,s,t[i]):s),(()=>vt(e,s))):E(ce(s))?vt(e,s):s,Ke=(e,t,s)=>(F(B(ge,t),(([n,a])=>{A(n,((t,s)=>{ne(e,s)||(e[s]=t)})),A(a,(n=>{ne(e,n)||St(t,s,n)}))})),e),Qe=e=>(t&&(A(Ve,((t,s)=>{ne(e,s)||(e[s]=t)})),A(Se,(t=>{ne(e,t)||vt(t)}))),e),Ue=e=>de(Te,e,((e,t,s)=>{const n=N(),a=Q();de($(Te,t,N),s,((e,t,s)=>{W(e,t,s),F(s[i],(e=>W(n,t,e)),(()=>U(a,t)))})),W(ge,t,[n,a])}),((e,t)=>{W(Te,t),W(ge,t)})),Xe=e=>de(be,e,((e,t,s)=>{W(be,t,s),F(s[i],(e=>W(Ve,t,e)),(()=>U(Se,t)))}),((e,t)=>{W(be,t),W(Ve,t),M(Se,t)})),Ye=e=>le(e)?Wt():Mt(e),Ze=e=>de(ye,e,((e,t,s)=>_e(t,s)),((e,t)=>it(t))),_e=(e,t)=>de($(ye,e,(()=>(ft(e,1),N()))),t,((t,s,n)=>et(e,t,s,n)),((t,s)=>ct(e,t,s))),et=(e,t,s,n,a)=>de($(t,s,(()=>(ht(e,s,1),N()))),n,((t,n,a)=>tt(e,s,t,n,a)),((n,r)=>dt(e,t,s,n,r,a))),tt=(e,t,s,n,a)=>{O(s,n)||Tt(e,t,n,1);const r=B(s,n);a!==r&&(gt(e,t,n,r,a),W(s,n,a))},st=(e,t,s,n,a)=>F(B(t,s),(t=>tt(e,s,t,n,a)),(()=>et(e,t,s,Ke({[n]:a},e,s)))),nt=e=>le(e)?$t():Nt(e),at=e=>de(pe,e,((e,t,s)=>rt(t,s)),((e,t)=>ut(t))),rt=(e,t)=>{O(pe,e)||bt(e,1);const s=B(pe,e);t!==s&&(Vt(e,s,t),W(pe,e,t))},lt=(e,t)=>{const[s]=$(ve,e,Y),n=s(t);return O(B(ye,e),n)?lt(e,t):n},ot=e=>B(ye,e)??_e(e,{}),it=e=>_e(e,{}),ct=(e,t,s)=>{const[,n]=$(ve,e,Y);n(s),et(e,t,s,{},!0)},dt=(e,t,s,n,a,r)=>{const l=B(B(ge,e)?.[0],a);if(!E(l)&&!r)return tt(e,s,n,a,l);const o=t=>{gt(e,s,t,B(n,t)),Tt(e,s,t,-1),W(n,t)};E(l)?o(a):D(n,o),j(n)&&(ht(e,s,-1),j(W(t,s))&&(ft(e,-1),W(ye,e),W(ve,e)))},ut=e=>{const t=B(Ve,e);if(!E(t))return rt(e,t);Vt(e,B(pe,e)),bt(e,-1),W(pe,e)},ft=(e,t)=>fe(c,e,t),ht=(e,t,s)=>fe($(I,e,N),t,s),Tt=(e,t,s,n)=>fe($($(L,e,N),t,N),s,n),gt=(e,t,s,n,a)=>$($($(X,e,N),t,N),s,(()=>[n,0]))[1]=a,bt=(e,t)=>fe(Z,e,t),Vt=(e,t,s)=>$(_,e,(()=>[t,0]))[1]=s,St=(e,t,s,n,a)=>(R($($($(ee,e,N),t,N),s,(()=>[])),n),a),vt=(e,t,s)=>(R($(se,e,(()=>[])),t),s),yt=(e,t,s)=>F(B(B(B(X,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...oe(Ot(e,t,s))])),pt=e=>F(B(_,e),(([e,t])=>[!0,e,t]),(()=>[!1,...oe(At(e))])),wt=e=>j(ee)||j(Fe[e])?0:A(e?G(ee,H):ee,((t,s)=>A(t,((t,n)=>A(t,((t,a)=>Ne(Fe[e],[s,n,a],t))))))),mt=e=>j(se)||j(xe[e])?0:A(e?G(se):se,((t,s)=>Ne(xe[e],[s],t))),Rt=(e,t,s)=>{if(!j(t))return Ne(e,s),1},Jt=e=>{const t=j(Ce[e]),s=j(Le[e])&&j(Je[e])&&t&&j(me[e]),n=j(Ee[e])&&j(Ie[e])&&j(Re[e])&&j(we[e]);if(!s||!n){const a=e?[G(c),H(I),G(L,H),G(X,H)]:[c,I,L,X];if(!s){A(a[2],((t,s)=>A(t,((t,n)=>Rt(Le[e],t,[s,n])))));const s=Q();A(a[1],((n,a)=>{Rt(Je[e],n,[a])&&!t&&(Ne(Ce[e],[a,null]),U(s,a))})),t||A(a[3],((t,n)=>{if(!O(s,n)){const s=Q();A(t,(e=>A(e,(([t,n],a)=>n!==t?U(s,a):M(e,a))))),A(s,(t=>Ne(Ce[e],[n,t])))}})),Rt(me[e],a[0])}if(!n){let t;A(a[3],((s,n)=>{let a;A(s,((s,r)=>{let l;A(s,(([s,o],i)=>{o!==s&&(Ne(Ee[e],[n,r,i],o,s,yt),t=a=l=1)})),l&&Ne(Ie[e],[n,r],yt)})),a&&Ne(Re[e],[n],yt)})),t&&Ne(we[e],void 0,yt)}}},Ct=e=>{const t=j(Oe[e]),s=j(je[e])&&j(ze[e]);if(!t||!s){const n=e?[G(Z),G(_)]:[Z,_];if(t||Rt(Oe[e],n[0]),!s){let t;A(n[1],(([s,n],a)=>{n!==s&&(Ne(je[e],[a],n,s,pt),t=1)})),t&&Ne(ze[e],void 0,pt)}}},It=(e,...t)=>(Ht((()=>e(...p(t,v)))),Ut),Lt=()=>q(ye,(e=>q(e,q))),Et=()=>P(ye),Ft=e=>P(B(ye,v(e))),xt=(e,t,s,n=0,a)=>{return p(m((l=B(ye,v(e)),o=(e,s)=>[E(t)?s:B(e,v(t)),s],r=([e],[t])=>(e<t?-1:1)*(s?-1:1),p([...l?.entries()??[]],(([e,t])=>o(t,e))).sort(r)),n,E(a)?a:n+a),(([,e])=>e));var r,l,o},zt=(e,t)=>P(B(B(ye,v(e)),v(t))),Ot=(e,t,s)=>B(B(B(ye,v(e)),v(t)),v(s)),jt=()=>q(pe),kt=()=>P(pe),At=e=>B(pe,v(e)),Mt=e=>It((()=>(e=>ue(e,We,St))(e)?Ze(e):0)),Nt=e=>It((()=>Ge(e)?at(e):0)),Pt=e=>{try{Ye(C(e))}catch{}return Ut},Bt=t=>It((()=>{if((e=ue(t,(e=>ue(e,De))))&&(Ue(t),!j(ye))){const e=Lt();Wt(),Mt(e)}})),Dt=e=>It((()=>{if(t=(e=>ue(e,De))(e)){const s=jt();Gt(),$t(),t=!0,Xe(e),Nt(s)}})),Wt=()=>It((()=>Ze({}))),$t=()=>It((()=>at({}))),qt=()=>It((()=>{Ue({}),e=!1})),Gt=()=>It((()=>{Xe({}),t=!1})),Ht=(e,t)=>{if(-1!=l){Kt();const s=e();return Qt(t),s}},Kt=()=>(-1!=l&&l++,1==l&&Ne(ke,void 0,!1,!1),Ut),Qt=e=>(l>0&&(l--,0==l&&(n=!j(X),a=!j(_),l=1,wt(1),n&&Jt(1),mt(1),a&&Ct(1),e?.(q(X,(e=>q(e,(e=>q(e,(e=>[...e]),(([e,t])=>e===t))),le)),le),q(ee,(e=>q(e,q))),q(_,(e=>[...e]),(([e,t])=>e===t)),q(se))&&(A(X,((e,t)=>A(e,((e,s)=>A(e,(([e],n)=>((e,t,s,n,a)=>E(a)?e.delCell(t,s,n,!0):e.setCell(t,s,n,a))(Ut,t,s,n,e))))))),A(_,(([e],t)=>((e,t,s)=>E(s)?e.delValue(t):e.setValue(t,s))(Ut,t,e))),n=a=!1),Ne(Ae[0],void 0,n,a),l=-1,wt(0),n&&Jt(0),mt(0),a&&Ct(0),Ne(Ae[1],void 0,n,a),l=0,y([c,I,L,X,ee,Z,_,se],k))),Ut),Ut={getTables:Lt,getTableIds:Et,getTable:e=>q(B(ye,v(e)),q),getRowIds:Ft,getSortedRowIds:xt,getRow:(e,t)=>q(B(B(ye,v(e)),v(t))),getCellIds:zt,getCell:Ot,getValues:jt,getValueIds:kt,getValue:At,hasTables:()=>!j(ye),hasTable:e=>O(ye,v(e)),hasRow:(e,t)=>O(B(ye,v(e)),v(t)),hasCell:(e,t,s)=>O(B(B(ye,v(e)),v(t)),v(s)),hasValues:()=>!j(pe),hasValue:e=>O(pe,v(e)),getTablesJson:()=>J(ye),getValuesJson:()=>J(pe),getJson:()=>J([ye,pe]),getTablesSchemaJson:()=>J(Te),getValuesSchemaJson:()=>J(be),getSchemaJson:()=>J([Te,be]),setTables:Mt,setTable:(e,t)=>It((e=>We(t,e)?_e(e,t):0),e),setRow:(e,t,s)=>It(((e,t)=>$e(e,t,s)?et(e,ot(e),t,s):0),e,t),addRow:(e,t,s=!0)=>Ht((()=>{let n;return $e(e,n,t)&&(e=v(e),et(e,ot(e),n=lt(e,s?1:0),t)),n})),setPartialRow:(e,t,s)=>It(((e,t)=>{if($e(e,t,s,1)){const n=ot(e);re(s,((s,a)=>st(e,n,t,a,s)))}}),e,t),setCell:(e,t,s,n)=>It(((e,t,s)=>F(qe(e,t,s,z(n)?n(Ot(e,t,s)):n),(n=>st(e,ot(e),t,s,n)))),e,t,s),setValues:Nt,setPartialValues:e=>It((()=>Ge(e,1)?re(e,((e,t)=>rt(t,e))):0)),setValue:(e,t)=>It((e=>F(He(e,z(t)?t(At(e)):t),(t=>rt(e,t)))),e),setTablesJson:Pt,setValuesJson:e=>{try{nt(C(e))}catch{}return Ut},setJson:e=>{try{const[t,s]=C(e);Ye(t),nt(s)}catch{Pt(e)}return Ut},setTablesSchema:Bt,setValuesSchema:Dt,setSchema:(e,t)=>It((()=>{Bt(e),Dt(t)})),delTables:Wt,delTable:e=>It((e=>O(ye,e)?it(e):0),e),delRow:(e,t)=>It(((e,t)=>F(B(ye,e),(s=>O(s,t)?ct(e,s,t):0))),e,t),delCell:(e,t,s,n)=>It(((e,t,s)=>F(B(ye,e),(a=>F(B(a,t),(r=>O(r,s)?dt(e,a,t,r,s,n):0))))),e,t,s),delValues:$t,delValue:e=>It((e=>O(pe,e)?ut(e):0),e),delTablesSchema:qt,delValuesSchema:Gt,delSchema:()=>It((()=>{qt(),Gt()})),transaction:Ht,startTransaction:Kt,finishTransaction:Qt,forEachTable:e=>A(ye,((t,s)=>e(s,(e=>A(t,((t,s)=>e(s,(e=>D(t,e))))))))),forEachRow:(e,t)=>A(B(ye,v(e)),((e,s)=>t(s,(t=>D(e,t))))),forEachCell:(e,t,s)=>D(B(B(ye,v(e)),v(t)),s),forEachValue:e=>D(pe,e),addSortedRowIdsListener:(e,t,s,n,a,r,l)=>{let o=xt(e,t,s,n,a);return Me((()=>{const l=xt(e,t,s,n,a);var i,c,d;c=o,w(i=l)===w(c)&&(d=(e,t)=>c[t]===e,i.every(d))||(o=l,r(Ut,e,t,s,n,a,o))}),Ce[l?1:0],[e,t],[Et])},addStartTransactionListener:e=>Me(e,ke),addWillFinishTransactionListener:e=>Me(e,Ae[0]),addDidFinishTransactionListener:e=>Me(e,Ae[1]),callListener:e=>(Be(e),Ut),delListener:e=>(Pe(e),Ut),getListenerStats:()=>({}),createStore:he};return re({[u]:[0,we],[f]:[0,me],[d]:[1,Re,[Et]],[h]:[1,Je,[Et]],Row:[2,Ie,[Et,Ft]],[g]:[2,Le,[Et,Ft]],[T]:[3,Ee,[Et,Ft,zt],e=>oe(Ot(...e))],InvalidCell:[3,Fe],[V]:[0,ze],[S]:[0,Oe],[b]:[1,je,[kt],e=>oe(At(e[0]))],InvalidValue:[1,xe]},(([e,t,s,n],a)=>{Ut["add"+a+"Listener"]=(...a)=>Me(a[e],t[a[e+1]?1:0],e>0?m(a,0,e):void 0,s,n)})),te(Ut)};e.createStore=he},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseStore={});
Binary file
@@ -1 +1 @@
1
- var e,t;e=this,t=function(e,t){"use strict";const s=e=>typeof e,n="",o=s(n),r=s(!0),a=s(0),i=s(s),l="type",c="default",d="utf8",u="Listener",h="Result",f="add",g="Ids",L="Table",w=L+"s",v=L+g,S="Row",p=S+g,R="Sorted"+S+g,y="Cell",I=y+g,T="Value",b=T+"s",m=T+g,C=e=>n+e,V=(e,t)=>e.includes(t),E=(e,t)=>e.every(t),k=(e,t)=>F(e)===F(t)&&E(e,((e,s)=>t[s]===e)),J=(e,t)=>E(e,((s,n)=>0==n||t(e[n-1],s)<=0)),M=(e,t)=>e.sort(t),x=(e,t)=>e.forEach(t),A=(e,t)=>e.map(t),D=e=>Q(e,((e,t)=>e+t),0),F=e=>e.length,P=e=>0==F(e),Q=(e,t,s)=>e.reduce(t,s),j=(e,t,s)=>e.slice(t,s),z=(e,...t)=>e.push(...t),N=e=>e.pop(),O=e=>e.shift(),W=e=>JSON.stringify(e,((e,t)=>G(t,Map)?Q([...t],((e,[t,s])=>(e[t]=s,e)),{}):t)),B=JSON.parse,q=Math.max,H=Math.min,$=isFinite,G=(e,t)=>e instanceof t,K=e=>null==e,U=(e,t,s)=>K(e)?s?.():t(e),X=e=>e==o||e==r,Y=e=>s(e)==i,Z=e=>Array.isArray(e),_=()=>{},ee=e=>e.size,te=(e,t)=>e?.has(t)??!1,se=e=>K(e)||0==ee(e),ne=e=>[...e?.values()??[]],oe=e=>e.clear(),re=(e,t)=>e?.forEach(t),ae=(e,t)=>e?.delete(t),ie=e=>new Map(e),le=e=>[...e?.keys()??[]],ce=(e,t)=>e?.get(t),de=(e,t)=>re(e,((e,s)=>t(s,e))),ue=(e,t,s)=>K(s)?(ae(e,t),e):e?.set(t,s),he=(e,t,s)=>(te(e,t)||ue(e,t,s()),ce(e,t)),fe=(e,t,s)=>{const n={},o=t??(e=>e);return re(e,((e,t)=>U(o(e),(e=>s?.(e)?0:n[t]=e)))),n},ge=(e,t)=>{const s=ie(),n=t??(e=>e);return re(e,((e,t)=>s.set(t,n(e)))),s},Le=e=>ge(e,ge),we=(e,t,s,n,o=0)=>U((s?he:ce)(e,t[o],o>F(t)-2?s:ie),(r=>{if(o>F(t)-2)return n?.(r)&&ue(e,t[o]),r;const a=we(r,t,s,n,o+1);return se(r)&&ue(e,t[o]),a})),ve=e=>{const t=s(e);return X(t)||t==a&&$(e)?t:void 0},Se=(e,t,s,n,o)=>K(o)?e.delCell(t,s,n,!0):e.setCell(t,s,n,o),pe=(e,t,s)=>K(s)?e.delValue(t):e.setValue(t,s),Re=e=>new Set(Z(e)||K(e)?e:[e]),ye=(e,t)=>e?.add(t),Ie=(e,t,s)=>{const n=e.hasRow,o=ie(),r=ie(),a=ie(),i=ie(),l=ie(),c=(t,s,...n)=>{const o=he(l,t,Re);return x(n,(t=>ye(o,t)&&s&&e.callListener(t))),n},d=(t,...s)=>U(ce(l,t),(n=>{x(P(s)?ne(n):s,(t=>{e.delListener(t),ae(n,t)})),se(n)&&ue(l,t)})),u=(e,s)=>{ue(o,e,s),te(r,e)||(ue(r,e,t()),ue(a,e,ie()),ue(i,e,ie()))},h=e=>{ue(o,e),ue(r,e),ue(a,e),ue(i,e),d(e)};return[()=>e,()=>le(o),e=>de(r,e),e=>te(r,e),e=>ce(o,e),e=>ce(r,e),(e,t)=>ue(r,e,t),u,(t,o,r,l,h)=>{u(t,o);const f=ie(),g=ie(),L=ce(a,t),w=ce(i,t),v=t=>{const r=s=>e.getCell(o,t,s),a=ce(L,t),i=n(o,t)?s(l(r,t)):void 0;if(a===i||Z(a)&&Z(i)&&k(a,i)||ue(f,t,[a,i]),!K(h)){const e=ce(w,t),s=n(o,t)?h(r,t):void 0;e!=s&&ue(g,t,s)}},S=e=>{r((()=>{re(f,(([,e],t)=>ue(L,t,e))),re(g,((e,t)=>ue(w,t,e)))}),f,g,L,w,e),oe(f),oe(g)};de(L,v),e.hasTable(o)&&x(e.getRowIds(o),(e=>{te(L,e)||v(e)})),S(!0),d(t),c(t,0,e.addRowListener(o,null,((e,t,s)=>v(s))),e.addTableListener(o,(()=>S())))},h,()=>de(l,h),c,d]},Te=(e,t)=>s(e)==o?t=>t(e):e??(()=>t??n),be=e=>{const t=new WeakMap;return s=>(t.has(s)||t.set(s,e(s)),t.get(s))},me=/^\d+$/,Ce=()=>{const e=[];let t=0;return[s=>(s?O(e):null)??n+t++,t=>{me.test(t)&&F(e)<1e3&&z(e,t)}]},Ve=e=>{let t;const[s,o]=Ce(),r=ie();return[(o,a,i,l=[],c=(()=>[]))=>{t??=e();const d=s(1);return ue(r,d,[o,a,i,l,c]),ye(we(a,i??[n],Re),d),d},(e,s,...o)=>x(((e,t=[n])=>{const s=[],o=(e,n)=>n==F(t)?z(s,e):null===t[n]?re(e,(e=>o(e,n+1))):x([t[n],null],(t=>o(ce(e,t),n+1)));return o(e,0),s})(e,s),(e=>re(e,(e=>ce(r,e)[0](t,...s??[],...o))))),e=>U(ce(r,e),(([,t,s])=>(we(t,s??[n],void 0,(t=>(ae(t,e),se(t)?1:0))),ue(r,e),o(e),s))),e=>U(ce(r,e),(([e,,s=[],n,o])=>{const r=(...a)=>{const i=F(a);i==F(s)?e(t,...a,...o(a)):K(s[i])?x(n[i]?.(...a)??[],(e=>r(...a,e))):r(...a,s[i])};r()}))]},Ee=Object,ke=Ee.keys,Je=Ee.isFrozen,Me=Ee.freeze,xe=e=>G(e,Ee)&&e.constructor==Ee,Ae=(e,t)=>!K(((e,t)=>U(e,(e=>e[t])))(e,t)),De=(e,t)=>delete e[t],Fe=(e,t)=>A(Ee.entries(e),(([e,s])=>t(s,e))),Pe=e=>xe(e)&&P(ke(e)),Qe=be((e=>{let t,s,o,r=100,a=ie(),i=ie(),l=1;const c=ie(),d=ie(),[u,h,f]=Ve((()=>Q)),g=ie(),L=ie(),w=[],v=[],S=(t,s)=>{l=0,e.transaction((()=>{const[n,o]=ce(g,s);re(n,((s,n)=>re(s,((s,o)=>re(s,((s,r)=>Se(e,n,o,r,s[t]))))))),re(o,((s,n)=>pe(e,n,s[t])))})),l=1},p=e=>{ue(g,e),ue(L,e),h(d,[e])},R=(e,t)=>x(((e,t)=>e.splice(0,t))(e,t??F(e)),p),y=()=>R(w,F(w)-r),I=()=>U(t,(()=>{z(w,t),y(),R(v),t=void 0,o=1})),T=()=>{t=N(w),o=1},b=e.addCellListener(null,null,null,((e,t,s,n,o,r)=>{if(l){I();const e=he(a,t,ie),i=he(e,s,ie),l=he(i,n,(()=>[r,void 0]));l[1]=o,l[0]===o&&se(ue(i,n))&&se(ue(e,s))&&se(ue(a,t))&&T(),J()}})),m=e.addValueListener(null,((e,t,s,n)=>{if(l){I();const e=he(i,t,(()=>[n,void 0]));e[1]=s,e[0]===s&&se(ue(i,t))&&T(),J()}})),C=(e="")=>(K(t)&&(t=n+s++,ue(g,t,[a,i]),A(t,e),a=ie(),i=ie(),o=1),t),E=()=>{P(w)||(((e,...t)=>{e.unshift(...t)})(v,C()),S(0,t),t=N(w),o=1)},k=()=>{P(v)||(z(w,t),t=O(v),S(1,t),o=1)},J=()=>{o&&(h(c),o=0)},M=e=>{const t=C(e);return J(),t},A=(e,t)=>(D(e)&&ce(L,e)!==t&&(ue(L,e,t),h(d,[e])),Q),D=e=>te(g,e),Q={setSize:e=>(r=e,y(),Q),addCheckpoint:M,setCheckpoint:A,getStore:()=>e,getCheckpointIds:()=>[[...w],t,[...v]],forEachCheckpoint:e=>de(L,e),hasCheckpoint:D,getCheckpoint:e=>ce(L,e),goBackward:()=>(E(),J(),Q),goForward:()=>(k(),J(),Q),goTo:e=>{const s=V(w,e)?E:V(v,e)?k:null;for(;!K(s)&&e!=t;)s();return J(),Q},addCheckpointIdsListener:e=>u(e,c),addCheckpointListener:(e,t)=>u(t,d,[e]),delListener:e=>(f(e),Q),clear:()=>(R(w),R(v),K(t)||p(t),t=void 0,s=0,M(),Q),destroy:()=>{e.delListener(b),e.delListener(m)},getListenerStats:()=>({})};return Me(Q.clear())})),je=(e,t)=>e<t?-1:1,ze=be((e=>{const t=ie(),s=ie(),[o,r,a,i,l,c,d,,u,h,f]=Ie(e,ie,(e=>K(e)?n:Z(e)?A(e,C):C(e))),[g,L,w]=Ve((()=>S)),v=(t,s,n)=>{const o=l(t);re(n,((t,n)=>s(n,(s=>re(t,(t=>s(t,(s=>e.forEachCell(o,t,s)))))))))},S={setIndexDefinition:(e,n,o,r,a,i=je)=>{const l=K(a)?void 0:([e],[t])=>a(e,t);return u(e,n,((n,o,a,u,h,f)=>{let g=0;const w=Re(),v=Re(),S=c(e);if(re(o,(([e,t],s)=>{const n=Re(e),o=Re(t);re(n,(e=>ae(o,e)?ae(n,e):0)),re(n,(e=>{ye(w,e),U(ce(S,e),(t=>{ae(t,s),se(t)&&(ue(S,e),g=1)}))})),re(o,(e=>{ye(w,e),te(S,e)||(ue(S,e,Re()),g=1),ye(ce(S,e),s),K(r)||ye(v,e)}))})),n(),se(h)||(f?de(S,(e=>ye(v,e))):de(a,(e=>U(ce(u,e),(e=>ye(v,e))))),re(v,(e=>{const t=(t,s)=>i(ce(h,t),ce(h,s),e),s=[...ce(S,e)];J(s,t)||(ue(S,e,Re(M(s,t))),ye(w,e))}))),(g||f)&&!K(l)){const t=[...S];J(t,l)||(d(e,ie(M(t,l))),g=1)}g&&L(t,[e]),re(w,(t=>L(s,[e,t])))}),Te(o),U(r,Te)),S},delIndexDefinition:e=>(h(e),S),getStore:o,getIndexIds:r,forEachIndex:e=>a(((t,s)=>e(t,(e=>v(t,e,s))))),forEachSlice:(e,t)=>v(e,t,c(e)),hasIndex:i,hasSlice:(e,t)=>te(c(e),t),getTableId:l,getSliceIds:e=>le(c(e)),getSliceRowIds:(e,t)=>ne(ce(c(e),t)),addSliceIdsListener:(e,s)=>g(s,t,[e]),addSliceRowIdsListener:(e,t,n)=>g(n,s,[e,t]),delListener:e=>(w(e),S),destroy:f,getListenerStats:()=>({})};return Me(S)})),Ne=ie([["avg",[(e,t)=>D(e)/t,(e,t,s)=>e+(t-e)/(s+1),(e,t,s)=>e+(e-t)/(s-1),(e,t,s,n)=>e+(t-s)/n]],["max",[e=>q(...e),(e,t)=>q(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:q(t,e)]],["min",[e=>H(...e),(e,t)=>H(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:H(t,e)]],["sum",[e=>D(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),Oe=(e,t,s,n,o,r=!1)=>{if(se(s))return;const[a,i,l,c]=o;return r||=K(e),re(n,(([s,n])=>{r||(e=K(s)?i?.(e,n,t++):K(n)?l?.(e,s,t--):c?.(e,n,s,t),r||=K(e))})),r?a(ne(s),ee(s)):e},We=be((e=>{const t=ie(),[s,o,r,a,i,l,c,,d,u,h]=Ie(e,_,(e=>isNaN(e)||K(e)||!0===e||!1===e||e===n?void 0:1*e)),[f,g,L]=Ve((()=>w)),w={setMetricDefinition:(e,s,n,o,r,a,i)=>{const u=Y(n)?[n,r,a,i]:ce(Ne,n)??ce(Ne,"sum");return d(e,s,((s,n,o,r,a,i)=>{const d=l(e),h=ee(r);i||=K(d),s();let f=Oe(d,h,r,n,u,i);$(f)||(f=void 0),f!=d&&(c(e,f),g(t,[e],f,d))}),Te(o,1)),w},delMetricDefinition:e=>(u(e),w),getStore:s,getMetricIds:o,forEachMetric:r,hasMetric:a,getTableId:i,getMetric:l,addMetricListener:(e,s)=>f(s,t,[e]),delListener:e=>(L(e),w),destroy:h,getListenerStats:()=>({})};return Me(w)})),Be=(e,t,s,o,r)=>{let a,i,l=0;const c={load:async(s={},o={})=>{if(2!=l){l=1;const r=await t();K(r)||r==n?e.transaction((()=>e.setTables(s).setValues(o))):e.setJson(r),l=0}return c},startAutoLoad:async(e={},t={})=>(c.stopAutoLoad(),await c.load(e,t),o(c.load),c),stopAutoLoad:()=>(r(),c),save:async()=>(1!=l&&(l=2,await s(e.getJson()),l=0),c),startAutoSave:async()=>(await c.stopAutoSave().save(),a=e.addTablesListener(c.save),i=e.addValuesListener(c.save),c),stopAutoSave:()=>(U(a,e.delListener),U(i,e.delListener),c),getStore:()=>e,destroy:()=>c.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return Me(c)},qe="storage",He=globalThis.window,$e=(e,t,s)=>{let n;return Be(e,(async()=>s.getItem(t)),(async e=>s.setItem(t,e)),(e=>{n=n=>{n.storageArea===s&&n.key===t&&e()},He.addEventListener(qe,n)}),(()=>{He.removeEventListener(qe,n),n=void 0}))},Ge=e=>e.headers.get("ETag"),Ke=be((e=>{const t=e.createStore,[s,o,r,a,i,,,l,,c,d,g,w]=Ie(e,(()=>!0),_),v=t(),T=t(),b=ie(),m=(e,t,...s)=>x(s,(s=>ye(he(he(b,t,ie),e,Re),s))),C=e=>{U(ce(b,e),(e=>{de(e,((e,t)=>re(t,(t=>e.delListener(t))))),oe(e)})),x([T,v],(t=>t.delTable(e)))},V=(e,t,s)=>m(t,e,t.addWillFinishTransactionListener(s.startTransaction),t.addDidFinishTransactionListener((()=>s.finishTransaction()))),k={setQueryDefinition:(t,s,o)=>{l(t,s),C(t);const r=[],a=[[null,[s,null,null,[],ie()]]],i=[],c=[],d=[];o({select:(e,t)=>{const s=Y(e)?[F(r)+n,e]:[K(t)?e:t,s=>s(e,t)];return z(r,s),{as:e=>s[0]=e}},join:(e,t,s)=>{const n=K(s)||Y(t)?null:t,o=K(n)?t:s,r=[e,[e,n,Y(o)?o:e=>e(o),[],ie()]];return z(a,r),{as:e=>r[0]=e}},where:(e,t,s)=>z(i,Y(e)?e:K(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,o)=>{const r=[e,[e,Y(t)?[t,s,n,o]:ce(Ne,t)??[(e,t)=>t]]];return z(c,r),{as:e=>r[0]=e}},having:(e,t)=>z(d,Y(e)?e:s=>s(e)===t)});const u=ie(r);if(se(u))return k;const h=ie(a);de(h,((e,[,t])=>U(ce(h,t),(({3:t})=>K(e)?0:z(t,e)))));const f=ie(c);let L=v;if(se(f)&&P(d))L=T;else{V(t,L,T);const e=ie();de(f,((t,[s,n])=>ye(he(e,s,Re),[t,n])));const s=Re();de(u,(t=>te(e,t)?0:ye(s,t)));const n=ie(),o=(s,n,o,r)=>U(s,(([a,i,l,c])=>{de(n,((t,[s])=>{const n=he(a,t,ie),i=ce(n,o),l=r?void 0:s;if(i!==l){const s=Re([[i,l]]),r=ee(n);ue(n,o,l),re(ce(e,t),(([e,t])=>{const o=Oe(c[e],r,n,s,t);c[e]=K(ve(o))?null:o}))}})),se(i)||!E(d,(e=>e((e=>c[e]))))?T.delRow(t,l):K(l)?s[2]=T.addRow(t,c):T.setRow(t,l,c)}));m(L,t,L.addRowListener(t,null,((r,a,i,l)=>{const c=[],d=[],u=ie(),h=L.hasRow(t,i);let f=!h;re(s,(e=>{const[s,n,o]=l(t,i,e);z(c,n),z(d,o),f||=s})),de(e,(e=>{const[s,,n]=l(t,i,e);(f||s)&&ue(u,e,[n])})),f&&o(we(n,c,void 0,(([,e])=>(ae(e,i),se(e)))),u,i,1),h&&o(we(n,d,(()=>{const e={};return re(s,(s=>e[s]=L.getCell(t,i,s))),[ie(),Re(),void 0,e]}),(([,e])=>{ye(e,i)})),u,i)})))}V(t,e,L);const S=(n,o,r,a)=>{const l=t=>e.getCell(o,r,t);x(a,(s=>{const[o,,r,a,i]=ce(h,s),c=r?.(l,n),[d,u]=ce(i,n)??[];c!=d&&(K(u)||w(t,u),ue(i,n,K(c)?null:[c,...g(t,1,e.addRowListener(o,c,(()=>S(n,o,c,a))))]))})),(n=>{const o=(t,o)=>e.getCell(...K(o)?[s,n,t]:t===s?[s,n,o]:[ce(h,t)?.[0],ce(ce(h,t)?.[4],n)?.[0],o]);L.transaction((()=>E(i,(e=>e(o)))?de(u,((e,s)=>Se(L,t,n,e,s(o,n)))):L.delRow(t,n)))})(n)},{3:p}=ce(h,null);return L.transaction((()=>g(t,1,e.addRowListener(s,null,((n,o,r)=>{e.hasRow(s,r)?S(r,s,r,p):(L.delRow(t,r),re(h,(({4:e})=>U(ce(e,r),(([,s])=>{w(t,s),ue(e,r)})))))}))))),k},delQueryDefinition:e=>(C(e),c(e),k),getStore:s,getQueryIds:o,forEachQuery:r,hasQuery:a,getTableId:i,delListener:e=>(T.delListener(e),k),destroy:d,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=T.getListenerStats();return n}};return Fe({[L]:[1,1],[p]:[0,1],[R]:[0,5],[S]:[1,2],[I]:[0,2],[y]:[1,3]},(([e,t],s)=>{x(e?["get","has","forEach"]:["get"],(e=>k[e+h+s]=(...t)=>T[e+s](...t))),k[f+h+s+u]=(...e)=>T[f+s+u](...j(e,0,t),((s,...n)=>e[t](k,...n)))})),Me(k)})),Ue=be((e=>{const t=ie(),s=ie(),o=ie(),r=ie(),[a,i,l,c,d,u,,,h,f,g]=Ie(e,(()=>[ie(),ie(),ie(),ie()]),(e=>K(e)?void 0:e+n)),[L,w,v]=Ve((()=>y)),S=(e,t,s)=>U(u(e),(([n,,o])=>{if(!te(o,t)){const r=Re();if(d(e)!=R(e))ye(r,t);else{let e=t;for(;!K(e)&&!te(r,e);)ye(r,e),e=ce(n,e)}if(s)return r;ue(o,t,r)}return ce(o,t)})),p=(e,t)=>U(u(e),(([,,e])=>ue(e,t))),R=e=>ce(t,e),y={setRelationshipDefinition:(e,n,a,i)=>(ue(t,e,a),h(e,n,((t,n)=>{const a=Re(),i=Re(),l=Re(),[c,d]=u(e);re(n,(([t,s],n)=>{K(t)||(ye(i,t),U(ce(d,t),(e=>{ae(e,n),se(e)&&ue(d,t)}))),K(s)||(ye(i,s),te(d,s)||ue(d,s,Re()),ye(ce(d,s),n)),ye(a,n),ue(c,n,s),de(ce(r,e),(t=>{te(S(e,t),n)&&ye(l,t)}))})),t(),re(a,(t=>w(s,[e,t]))),re(i,(t=>w(o,[e,t]))),re(l,(t=>{p(e,t),w(r,[e,t])}))}),Te(i)),y),delRelationshipDefinition:e=>(ue(t,e),f(e),y),getStore:a,getRelationshipIds:i,forEachRelationship:t=>l((s=>t(s,(t=>e.forEachRow(d(s),t))))),hasRelationship:c,getLocalTableId:d,getRemoteTableId:R,getRemoteRowId:(e,t)=>ce(u(e)?.[0],t),getLocalRowIds:(e,t)=>ne(ce(u(e)?.[1],t)),getLinkedRowIds:(e,t)=>K(u(e))?[t]:ne(S(e,t,!0)),addRemoteRowIdListener:(e,t,n)=>L(n,s,[e,t]),addLocalRowIdsListener:(e,t,s)=>L(s,o,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(S(e,t),L(s,r,[e,t])),delListener:e=>(p(...v(e)),y),destroy:g,getListenerStats:()=>({})};return Me(y)})),Xe=e=>[e,e],Ye=()=>[ie(),ie()],Ze=(e,t,s,n=ue)=>(Fe(t,((t,n)=>s(e,n,t))),de(e,(s=>Ae(t,s)?0:n(e,s))),e),_e=(e,t,s)=>K(e)||!xe(e)||Pe(e)||Je(e)?(s?.(),!1):(Fe(e,((s,n)=>{t(s,n)||De(e,n)})),!Pe(e)),et=(e,t,s)=>ue(e,t,ce(e,t)==-s?void 0:s),tt=()=>{let e,t,s,n,o=0;const r=ie(),i=ie(),d=ie(),h=ie(),g=ie(),R=ie(),E=ie(),J=ie(),D=ie(),F=ie(),P=ie(),Q=ie(),N=Re(),O=ie(),q=ie(),H=ie(),$=Ye(),G=Ye(),Z=Ye(),_=Ye(),ee=Ye(),ne=Ye(),we=Ye(),Ie=Ye(),Te=Ye(),be=Ye(),me=Ye(),Ee=Ye(),ke=Ye(),Je=Ye(),[xe,Qe,ze,Ne]=Ve((()=>ts)),Oe=e=>{if(!_e(e,((e,t)=>V([l,c],t))))return!1;const t=e[l];return!(!X(t)&&t!=a||(ve(e[c])!=t&&De(e,c),0))},We=(t,s)=>(!e||te(D,s)||bt(s))&&_e(t,((e,t)=>Be(s,t,e)),(()=>bt(s))),Be=(e,t,s,n)=>_e(n?s:Ge(s,e,t),((n,o)=>U(qe(e,t,o,n),(e=>(s[o]=e,!0)),(()=>!1))),(()=>bt(e,t))),qe=(t,s,n,o)=>e?U(ce(ce(D,t),n),(e=>ve(o)!=e[l]?bt(t,s,n,o,e[c]):o),(()=>bt(t,s,n,o))):K(ve(o))?bt(t,s,n,o):o,He=(e,t)=>_e(t?e:Ke(e),((t,s)=>U($e(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>mt())),$e=(e,s)=>t?U(ce(P,e),(t=>ve(s)!=t[l]?mt(e,s,t[c]):s),(()=>mt(e,s))):K(ve(s))?mt(e,s):s,Ge=(e,t,s)=>(U(ce(F,t),(([n,o])=>{re(n,((t,s)=>{Ae(e,s)||(e[s]=t)})),re(o,(n=>{Ae(e,n)||bt(t,s,n)}))})),e),Ke=e=>(t&&(re(Q,((t,s)=>{Ae(e,s)||(e[s]=t)})),re(N,(t=>{Ae(e,t)||mt(t)}))),e),Ue=e=>Ze(D,e,((e,t,s)=>{const n=ie(),o=Re();Ze(he(D,t,ie),s,((e,t,s)=>{ue(e,t,s),U(s[c],(e=>ue(n,t,e)),(()=>ye(o,t)))})),ue(F,t,[n,o])}),((e,t)=>{ue(D,t),ue(F,t)})),st=e=>Ze(P,e,((e,t,s)=>{ue(P,t,s),U(s[c],(e=>ue(Q,t,e)),(()=>ye(N,t)))}),((e,t)=>{ue(P,t),ue(Q,t),ae(N,t)})),nt=e=>Pe(e)?Kt():Bt(e),ot=e=>Ze(q,e,((e,t,s)=>rt(t,s)),((e,t)=>gt(t))),rt=(e,t)=>Ze(he(q,e,(()=>(St(e,1),ie()))),t,((t,s,n)=>at(e,t,s,n)),((t,s)=>Lt(e,t,s))),at=(e,t,s,n,o)=>Ze(he(t,s,(()=>(pt(e,s,1),ie()))),n,((t,n,o)=>it(e,s,t,n,o)),((n,r)=>wt(e,t,s,n,r,o))),it=(e,t,s,n,o)=>{te(s,n)||Rt(e,t,n,1);const r=ce(s,n);o!==r&&(yt(e,t,n,r,o),ue(s,n,o))},lt=(e,t,s,n,o)=>U(ce(t,s),(t=>it(e,s,t,n,o)),(()=>at(e,t,s,Ge({[n]:o},e,s)))),ct=e=>Pe(e)?Ut():qt(e),dt=e=>Ze(H,e,((e,t,s)=>ut(t,s)),((e,t)=>vt(t))),ut=(e,t)=>{te(H,e)||It(e,1);const s=ce(H,e);t!==s&&(Tt(e,s,t),ue(H,e,t))},ht=(e,t)=>{const[s]=he(O,e,Ce),n=s(t);return te(ce(q,e),n)?ht(e,t):n},ft=e=>ce(q,e)??rt(e,{}),gt=e=>rt(e,{}),Lt=(e,t,s)=>{const[,n]=he(O,e,Ce);n(s),at(e,t,s,{},!0)},wt=(e,t,s,n,o,r)=>{const a=ce(ce(F,e)?.[0],o);if(!K(a)&&!r)return it(e,s,n,o,a);const i=t=>{yt(e,s,t,ce(n,t)),Rt(e,s,t,-1),ue(n,t)};K(a)?i(o):de(n,i),se(n)&&(pt(e,s,-1),se(ue(t,s))&&(St(e,-1),ue(q,e),ue(O,e)))},vt=e=>{const t=ce(Q,e);if(!K(t))return ut(e,t);Tt(e,ce(H,e)),It(e,-1),ue(H,e)},St=(e,t)=>et(r,e,t),pt=(e,t,s)=>et(he(i,e,ie),t,s),Rt=(e,t,s,n)=>et(he(he(d,e,ie),t,ie),s,n),yt=(e,t,s,n,o)=>he(he(he(h,e,ie),t,ie),s,(()=>[n,0]))[1]=o,It=(e,t)=>et(g,e,t),Tt=(e,t,s)=>he(R,e,(()=>[t,0]))[1]=s,bt=(e,t,s,n,o)=>(z(he(he(he(E,e,ie),t,ie),s,(()=>[])),n),o),mt=(e,t,s)=>(z(he(J,e,(()=>[])),t),s),Ct=(e,t,s)=>U(ce(ce(ce(h,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...Xe(zt(e,t,s))])),Vt=e=>U(ce(R,e),(([e,t])=>[!0,e,t]),(()=>[!1,...Xe(Wt(e))])),Et=e=>se(E)||se(Te[e])?0:re(e?ge(E,Le):E,((t,s)=>re(t,((t,n)=>re(t,((t,o)=>Qe(Te[e],[s,n,o],t))))))),kt=e=>se(J)||se(be[e])?0:re(e?ge(J):J,((t,s)=>Qe(be[e],[s],t))),Jt=(e,t,s)=>{if(!se(t))return Qe(e,s),1},Mt=e=>{const t=se(ee[e]),s=se(we[e])&&se(_[e])&&t&&se(G[e]),n=se(Ie[e])&&se(ne[e])&&se(Z[e])&&se($[e]);if(!s||!n){const o=e?[ge(r),Le(i),ge(d,Le),ge(h,Le)]:[r,i,d,h];if(!s){re(o[2],((t,s)=>re(t,((t,n)=>Jt(we[e],t,[s,n])))));const s=Re();re(o[1],((n,o)=>{Jt(_[e],n,[o])&&!t&&(Qe(ee[e],[o,null]),ye(s,o))})),t||re(o[3],((t,n)=>{if(!te(s,n)){const s=Re();re(t,(e=>re(e,(([t,n],o)=>n!==t?ye(s,o):ae(e,o))))),re(s,(t=>Qe(ee[e],[n,t])))}})),Jt(G[e],o[0])}if(!n){let t;re(o[3],((s,n)=>{let o;re(s,((s,r)=>{let a;re(s,(([s,i],l)=>{i!==s&&(Qe(Ie[e],[n,r,l],i,s,Ct),t=o=a=1)})),a&&Qe(ne[e],[n,r],Ct)})),o&&Qe(Z[e],[n],Ct)})),t&&Qe($[e],void 0,Ct)}}},xt=e=>{const t=se(Ee[e]),s=se(ke[e])&&se(me[e]);if(!t||!s){const n=e?[ge(g),ge(R)]:[g,R];if(t||Jt(Ee[e],n[0]),!s){let t;re(n[1],(([s,n],o)=>{n!==s&&(Qe(ke[e],[o],n,s,Vt),t=1)})),t&&Qe(me[e],void 0,Vt)}}},At=(e,...t)=>(Zt((()=>e(...A(t,C)))),ts),Dt=()=>fe(q,(e=>fe(e,fe))),Ft=()=>le(q),Pt=e=>le(ce(q,C(e))),Qt=(e,t,s,n=0,o)=>{return A(j(M((r=ce(q,C(e)),a=(e,s)=>[K(t)?s:ce(e,C(t)),s],A([...r?.entries()??[]],(([e,t])=>a(t,e)))),(([e],[t])=>je(e,t)*(s?-1:1))),n,K(o)?o:n+o),(([,e])=>e));var r,a},jt=(e,t)=>le(ce(ce(q,C(e)),C(t))),zt=(e,t,s)=>ce(ce(ce(q,C(e)),C(t)),C(s)),Nt=()=>fe(H),Ot=()=>le(H),Wt=e=>ce(H,C(e)),Bt=e=>At((()=>(e=>_e(e,We,bt))(e)?ot(e):0)),qt=e=>At((()=>He(e)?dt(e):0)),Ht=e=>{try{nt(B(e))}catch{}return ts},$t=t=>At((()=>{if((e=_e(t,(e=>_e(e,Oe))))&&(Ue(t),!se(q))){const e=Dt();Kt(),Bt(e)}})),Gt=e=>At((()=>{if(t=(e=>_e(e,Oe))(e)){const s=Nt();Yt(),Ut(),t=!0,st(e),qt(s)}})),Kt=()=>At((()=>ot({}))),Ut=()=>At((()=>dt({}))),Xt=()=>At((()=>{Ue({}),e=!1})),Yt=()=>At((()=>{st({}),t=!1})),Zt=(e,t)=>{if(-1==o)return;_t();const s=e();return es(t),s},_t=()=>(o++,ts),es=e=>(o>0&&(o--,0==o&&(s=!se(h),n=!se(R),o=1,Et(1),s&&Mt(1),kt(1),n&&xt(1),o=-1,e?.(fe(h,(e=>fe(e,(e=>fe(e,(e=>[...e]),(([e,t])=>e===t))),Pe)),Pe),fe(E,(e=>fe(e,fe))),fe(R,(e=>[...e]),(([e,t])=>e===t)),fe(J))&&(o=1,re(h,((e,t)=>re(e,((e,s)=>re(e,(([e],n)=>Se(ts,t,s,n,e))))))),re(R,(([e],t)=>pe(ts,t,e))),o=-1,s=n=!1),Qe(Je[0],void 0,s,n),Et(0),s&&Mt(0),kt(0),n&&xt(0),Qe(Je[1],void 0,s,n),o=0,x([r,i,d,h,E,g,R,J],oe))),ts),ts={getTables:Dt,getTableIds:Ft,getTable:e=>fe(ce(q,C(e)),fe),getRowIds:Pt,getSortedRowIds:Qt,getRow:(e,t)=>fe(ce(ce(q,C(e)),C(t))),getCellIds:jt,getCell:zt,getValues:Nt,getValueIds:Ot,getValue:Wt,hasTables:()=>!se(q),hasTable:e=>te(q,C(e)),hasRow:(e,t)=>te(ce(q,C(e)),C(t)),hasCell:(e,t,s)=>te(ce(ce(q,C(e)),C(t)),C(s)),hasValues:()=>!se(H),hasValue:e=>te(H,C(e)),getTablesJson:()=>W(q),getValuesJson:()=>W(H),getJson:()=>W([q,H]),getTablesSchemaJson:()=>W(D),getValuesSchemaJson:()=>W(P),getSchemaJson:()=>W([D,P]),setTables:Bt,setTable:(e,t)=>At((e=>We(t,e)?rt(e,t):0),e),setRow:(e,t,s)=>At(((e,t)=>Be(e,t,s)?at(e,ft(e),t,s):0),e,t),addRow:(e,t,s=!0)=>Zt((()=>{let n;return Be(e,n,t)&&(e=C(e),at(e,ft(e),n=ht(e,s?1:0),t)),n})),setPartialRow:(e,t,s)=>At(((e,t)=>{if(Be(e,t,s,1)){const n=ft(e);Fe(s,((s,o)=>lt(e,n,t,o,s)))}}),e,t),setCell:(e,t,s,n)=>At(((e,t,s)=>U(qe(e,t,s,Y(n)?n(zt(e,t,s)):n),(n=>lt(e,ft(e),t,s,n)))),e,t,s),setValues:qt,setPartialValues:e=>At((()=>He(e,1)?Fe(e,((e,t)=>ut(t,e))):0)),setValue:(e,t)=>At((e=>U($e(e,Y(t)?t(Wt(e)):t),(t=>ut(e,t)))),e),setTablesJson:Ht,setValuesJson:e=>{try{ct(B(e))}catch{}return ts},setJson:e=>{try{const[t,s]=B(e);nt(t),ct(s)}catch{Ht(e)}return ts},setTablesSchema:$t,setValuesSchema:Gt,setSchema:(e,t)=>At((()=>{$t(e),Gt(t)})),delTables:Kt,delTable:e=>At((e=>te(q,e)?gt(e):0),e),delRow:(e,t)=>At(((e,t)=>U(ce(q,e),(s=>te(s,t)?Lt(e,s,t):0))),e,t),delCell:(e,t,s,n)=>At(((e,t,s)=>U(ce(q,e),(o=>U(ce(o,t),(r=>te(r,s)?wt(e,o,t,r,s,n):0))))),e,t,s),delValues:Ut,delValue:e=>At((e=>te(H,e)?vt(e):0),e),delTablesSchema:Xt,delValuesSchema:Yt,delSchema:()=>At((()=>{Xt(),Yt()})),transaction:Zt,startTransaction:_t,finishTransaction:es,forEachTable:e=>re(q,((t,s)=>e(s,(e=>re(t,((t,s)=>e(s,(e=>de(t,e))))))))),forEachRow:(e,t)=>re(ce(q,C(e)),((e,s)=>t(s,(t=>de(e,t))))),forEachCell:(e,t,s)=>de(ce(ce(q,C(e)),C(t)),s),forEachValue:e=>de(H,e),addSortedRowIdsListener:(e,t,s,n,o,r,a)=>{let i=Qt(e,t,s,n,o);return xe((()=>{const a=Qt(e,t,s,n,o);k(a,i)||(i=a,r(ts,e,t,s,n,o,i))}),ee[a?1:0],[e,t],[Ft])},addWillFinishTransactionListener:e=>xe(e,Je[0]),addDidFinishTransactionListener:e=>xe(e,Je[1]),callListener:e=>(Ne(e),ts),delListener:e=>(ze(e),ts),getListenerStats:()=>({}),createStore:tt};return Fe({[w]:[0,$],[v]:[0,G],[L]:[1,Z,[Ft]],[p]:[1,_,[Ft]],[S]:[2,ne,[Ft,Pt]],[I]:[2,we,[Ft,Pt]],[y]:[3,Ie,[Ft,Pt,jt],e=>Xe(zt(...e))],InvalidCell:[3,Te],[b]:[0,me],[m]:[0,Ee],[T]:[1,ke,[Ot],e=>Xe(Wt(e[0]))],InvalidValue:[1,be]},(([e,t,s,n],o)=>{ts[f+o+u]=(...o)=>xe(o[e],t[o[e+1]?1:0],e>0?j(o,0,e):void 0,s,n)})),Me(ts)};e.createCheckpoints=Qe,e.createCustomPersister=Be,e.createFilePersister=(e,s)=>{let n;return Be(e,(async()=>{try{return await t.promises.readFile(s,d)}catch{}}),(async e=>{try{await t.promises.writeFile(s,e,d)}catch{}}),(e=>{n=t.watch(s,e)}),(()=>{n?.close(),n=void 0}))},e.createIndexes=ze,e.createLocalPersister=(e,t)=>$e(e,t,localStorage),e.createMetrics=We,e.createQueries=Ke,e.createRelationships=Ue,e.createRemotePersister=(e,t,s,n)=>{let o,r;return Be(e,(async()=>{const e=await fetch(t);return r=Ge(e),e.text()}),(async e=>await fetch(s,{method:"POST",headers:{"Content-Type":"application/json"},body:e})),(e=>{o=setInterval((async()=>{const s=await fetch(t,{method:"HEAD"}),n=Ge(s);K(r)||K(n)||n==r||(r=n,e())}),1e3*n)}),(()=>{U(o,clearInterval),o=void 0}))},e.createSessionPersister=(e,t)=>$e(e,t,sessionStorage),e.createStore=tt,e.defaultSorter=je},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("fs")):"function"==typeof define&&define.amd?define(["exports","fs"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBase={},e.fs);
1
+ var e,t;e=this,t=function(e,t){"use strict";const s=e=>typeof e,n="",o=s(n),r=s(!0),a=s(0),i=s(s),l="type",c="default",d="utf8",u="Listener",h="Result",f="add",g="Ids",L="Table",w=L+"s",v=L+g,S="Row",p=S+g,R="Sorted"+S+g,y="Cell",T=y+g,I="Value",b=I+"s",m=I+g,C=e=>n+e,V=(e,t)=>e.includes(t),E=(e,t)=>e.every(t),k=(e,t)=>F(e)===F(t)&&E(e,((e,s)=>t[s]===e)),J=(e,t)=>E(e,((s,n)=>0==n||t(e[n-1],s)<=0)),M=(e,t)=>e.sort(t),x=(e,t)=>e.forEach(t),A=(e,t)=>e.map(t),D=e=>Q(e,((e,t)=>e+t),0),F=e=>e.length,P=e=>0==F(e),Q=(e,t,s)=>e.reduce(t,s),j=(e,t,s)=>e.slice(t,s),z=(e,...t)=>e.push(...t),N=e=>e.pop(),O=e=>e.shift(),B=e=>JSON.stringify(e,((e,t)=>G(t,Map)?Q([...t],((e,[t,s])=>(e[t]=s,e)),{}):t)),W=JSON.parse,q=Math.max,H=Math.min,$=isFinite,G=(e,t)=>e instanceof t,K=e=>null==e,U=(e,t,s)=>K(e)?s?.():t(e),X=e=>e==o||e==r,Y=e=>s(e)==i,Z=e=>Array.isArray(e),_=()=>{},ee=e=>e.size,te=(e,t)=>e?.has(t)??!1,se=e=>K(e)||0==ee(e),ne=e=>[...e?.values()??[]],oe=e=>e.clear(),re=(e,t)=>e?.forEach(t),ae=(e,t)=>e?.delete(t),ie=e=>new Map(e),le=e=>[...e?.keys()??[]],ce=(e,t)=>e?.get(t),de=(e,t)=>re(e,((e,s)=>t(s,e))),ue=(e,t,s)=>K(s)?(ae(e,t),e):e?.set(t,s),he=(e,t,s)=>(te(e,t)||ue(e,t,s()),ce(e,t)),fe=(e,t,s)=>{const n={},o=t??(e=>e);return re(e,((e,t)=>U(o(e),(e=>s?.(e)?0:n[t]=e)))),n},ge=(e,t)=>{const s=ie(),n=t??(e=>e);return re(e,((e,t)=>s.set(t,n(e)))),s},Le=e=>ge(e,ge),we=(e,t,s,n,o=0)=>U((s?he:ce)(e,t[o],o>F(t)-2?s:ie),(r=>{if(o>F(t)-2)return n?.(r)&&ue(e,t[o]),r;const a=we(r,t,s,n,o+1);return se(r)&&ue(e,t[o]),a})),ve=e=>{const t=s(e);return X(t)||t==a&&$(e)?t:void 0},Se=(e,t,s,n,o)=>K(o)?e.delCell(t,s,n,!0):e.setCell(t,s,n,o),pe=(e,t,s)=>K(s)?e.delValue(t):e.setValue(t,s),Re=e=>new Set(Z(e)||K(e)?e:[e]),ye=(e,t)=>e?.add(t),Te=(e,t,s)=>{const n=e.hasRow,o=ie(),r=ie(),a=ie(),i=ie(),l=ie(),c=(t,s,...n)=>{const o=he(l,t,Re);return x(n,(t=>ye(o,t)&&s&&e.callListener(t))),n},d=(t,...s)=>U(ce(l,t),(n=>{x(P(s)?ne(n):s,(t=>{e.delListener(t),ae(n,t)})),se(n)&&ue(l,t)})),u=(e,s)=>{ue(o,e,s),te(r,e)||(ue(r,e,t()),ue(a,e,ie()),ue(i,e,ie()))},h=e=>{ue(o,e),ue(r,e),ue(a,e),ue(i,e),d(e)};return[()=>e,()=>le(o),e=>de(r,e),e=>te(r,e),e=>ce(o,e),e=>ce(r,e),(e,t)=>ue(r,e,t),u,(t,o,r,l,h)=>{u(t,o);const f=ie(),g=ie(),L=ce(a,t),w=ce(i,t),v=t=>{const r=s=>e.getCell(o,t,s),a=ce(L,t),i=n(o,t)?s(l(r,t)):void 0;if(a===i||Z(a)&&Z(i)&&k(a,i)||ue(f,t,[a,i]),!K(h)){const e=ce(w,t),s=n(o,t)?h(r,t):void 0;e!=s&&ue(g,t,s)}},S=e=>{r((()=>{re(f,(([,e],t)=>ue(L,t,e))),re(g,((e,t)=>ue(w,t,e)))}),f,g,L,w,e),oe(f),oe(g)};de(L,v),e.hasTable(o)&&x(e.getRowIds(o),(e=>{te(L,e)||v(e)})),S(!0),d(t),c(t,0,e.addRowListener(o,null,((e,t,s)=>v(s))),e.addTableListener(o,(()=>S())))},h,()=>de(l,h),c,d]},Ie=(e,t)=>s(e)==o?t=>t(e):e??(()=>t??n),be=e=>{const t=new WeakMap;return s=>(t.has(s)||t.set(s,e(s)),t.get(s))},me=/^\d+$/,Ce=()=>{const e=[];let t=0;return[s=>(s?O(e):null)??n+t++,t=>{me.test(t)&&F(e)<1e3&&z(e,t)}]},Ve=e=>{let t;const[s,o]=Ce(),r=ie();return[(o,a,i,l=[],c=(()=>[]))=>{t??=e();const d=s(1);return ue(r,d,[o,a,i,l,c]),ye(we(a,i??[n],Re),d),d},(e,s,...o)=>x(((e,t=[n])=>{const s=[],o=(e,n)=>n==F(t)?z(s,e):null===t[n]?re(e,(e=>o(e,n+1))):x([t[n],null],(t=>o(ce(e,t),n+1)));return o(e,0),s})(e,s),(e=>re(e,(e=>ce(r,e)[0](t,...s??[],...o))))),e=>U(ce(r,e),(([,t,s])=>(we(t,s??[n],void 0,(t=>(ae(t,e),se(t)?1:0))),ue(r,e),o(e),s))),e=>U(ce(r,e),(([e,,s=[],n,o])=>{const r=(...a)=>{const i=F(a);i==F(s)?e(t,...a,...o(a)):K(s[i])?x(n[i]?.(...a)??[],(e=>r(...a,e))):r(...a,s[i])};r()}))]},Ee=Object,ke=Ee.keys,Je=Ee.isFrozen,Me=Ee.freeze,xe=e=>G(e,Ee)&&e.constructor==Ee,Ae=(e,t)=>!K(((e,t)=>U(e,(e=>e[t])))(e,t)),De=(e,t)=>delete e[t],Fe=(e,t)=>A(Ee.entries(e),(([e,s])=>t(s,e))),Pe=e=>xe(e)&&P(ke(e)),Qe=be((e=>{let t,s,o,r=100,a=ie(),i=ie(),l=1;const c=ie(),d=ie(),[u,h,f]=Ve((()=>Q)),g=ie(),L=ie(),w=[],v=[],S=(t,s)=>{l=0,e.transaction((()=>{const[n,o]=ce(g,s);re(n,((s,n)=>re(s,((s,o)=>re(s,((s,r)=>Se(e,n,o,r,s[t]))))))),re(o,((s,n)=>pe(e,n,s[t])))})),l=1},p=e=>{ue(g,e),ue(L,e),h(d,[e])},R=(e,t)=>x(((e,t)=>e.splice(0,t))(e,t??F(e)),p),y=()=>R(w,F(w)-r),T=()=>U(t,(()=>{z(w,t),y(),R(v),t=void 0,o=1})),I=()=>{t=N(w),o=1},b=e.addCellListener(null,null,null,((e,t,s,n,o,r)=>{if(l){T();const e=he(a,t,ie),i=he(e,s,ie),l=he(i,n,(()=>[r,void 0]));l[1]=o,l[0]===o&&se(ue(i,n))&&se(ue(e,s))&&se(ue(a,t))&&I(),J()}})),m=e.addValueListener(null,((e,t,s,n)=>{if(l){T();const e=he(i,t,(()=>[n,void 0]));e[1]=s,e[0]===s&&se(ue(i,t))&&I(),J()}})),C=(e="")=>(K(t)&&(t=n+s++,ue(g,t,[a,i]),A(t,e),a=ie(),i=ie(),o=1),t),E=()=>{P(w)||(((e,...t)=>{e.unshift(...t)})(v,C()),S(0,t),t=N(w),o=1)},k=()=>{P(v)||(z(w,t),t=O(v),S(1,t),o=1)},J=()=>{o&&(h(c),o=0)},M=e=>{const t=C(e);return J(),t},A=(e,t)=>(D(e)&&ce(L,e)!==t&&(ue(L,e,t),h(d,[e])),Q),D=e=>te(g,e),Q={setSize:e=>(r=e,y(),Q),addCheckpoint:M,setCheckpoint:A,getStore:()=>e,getCheckpointIds:()=>[[...w],t,[...v]],forEachCheckpoint:e=>de(L,e),hasCheckpoint:D,getCheckpoint:e=>ce(L,e),goBackward:()=>(E(),J(),Q),goForward:()=>(k(),J(),Q),goTo:e=>{const s=V(w,e)?E:V(v,e)?k:null;for(;!K(s)&&e!=t;)s();return J(),Q},addCheckpointIdsListener:e=>u(e,c),addCheckpointListener:(e,t)=>u(t,d,[e]),delListener:e=>(f(e),Q),clear:()=>(R(w),R(v),K(t)||p(t),t=void 0,s=0,M(),Q),destroy:()=>{e.delListener(b),e.delListener(m)},getListenerStats:()=>({})};return Me(Q.clear())})),je=(e,t)=>e<t?-1:1,ze=be((e=>{const t=ie(),s=ie(),[o,r,a,i,l,c,d,,u,h,f]=Te(e,ie,(e=>K(e)?n:Z(e)?A(e,C):C(e))),[g,L,w]=Ve((()=>S)),v=(t,s,n)=>{const o=l(t);re(n,((t,n)=>s(n,(s=>re(t,(t=>s(t,(s=>e.forEachCell(o,t,s)))))))))},S={setIndexDefinition:(e,n,o,r,a,i=je)=>{const l=K(a)?void 0:([e],[t])=>a(e,t);return u(e,n,((n,o,a,u,h,f)=>{let g=0;const w=Re(),v=Re(),S=c(e);if(re(o,(([e,t],s)=>{const n=Re(e),o=Re(t);re(n,(e=>ae(o,e)?ae(n,e):0)),re(n,(e=>{ye(w,e),U(ce(S,e),(t=>{ae(t,s),se(t)&&(ue(S,e),g=1)}))})),re(o,(e=>{ye(w,e),te(S,e)||(ue(S,e,Re()),g=1),ye(ce(S,e),s),K(r)||ye(v,e)}))})),n(),se(h)||(f?de(S,(e=>ye(v,e))):de(a,(e=>U(ce(u,e),(e=>ye(v,e))))),re(v,(e=>{const t=(t,s)=>i(ce(h,t),ce(h,s),e),s=[...ce(S,e)];J(s,t)||(ue(S,e,Re(M(s,t))),ye(w,e))}))),(g||f)&&!K(l)){const t=[...S];J(t,l)||(d(e,ie(M(t,l))),g=1)}g&&L(t,[e]),re(w,(t=>L(s,[e,t])))}),Ie(o),U(r,Ie)),S},delIndexDefinition:e=>(h(e),S),getStore:o,getIndexIds:r,forEachIndex:e=>a(((t,s)=>e(t,(e=>v(t,e,s))))),forEachSlice:(e,t)=>v(e,t,c(e)),hasIndex:i,hasSlice:(e,t)=>te(c(e),t),getTableId:l,getSliceIds:e=>le(c(e)),getSliceRowIds:(e,t)=>ne(ce(c(e),t)),addSliceIdsListener:(e,s)=>g(s,t,[e]),addSliceRowIdsListener:(e,t,n)=>g(n,s,[e,t]),delListener:e=>(w(e),S),destroy:f,getListenerStats:()=>({})};return Me(S)})),Ne=ie([["avg",[(e,t)=>D(e)/t,(e,t,s)=>e+(t-e)/(s+1),(e,t,s)=>e+(e-t)/(s-1),(e,t,s,n)=>e+(t-s)/n]],["max",[e=>q(...e),(e,t)=>q(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:q(t,e)]],["min",[e=>H(...e),(e,t)=>H(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:H(t,e)]],["sum",[e=>D(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),Oe=(e,t,s,n,o,r=!1)=>{if(se(s))return;const[a,i,l,c]=o;return r||=K(e),re(n,(([s,n])=>{r||(e=K(s)?i?.(e,n,t++):K(n)?l?.(e,s,t--):c?.(e,n,s,t),r||=K(e))})),r?a(ne(s),ee(s)):e},Be=be((e=>{const t=ie(),[s,o,r,a,i,l,c,,d,u,h]=Te(e,_,(e=>isNaN(e)||K(e)||!0===e||!1===e||e===n?void 0:1*e)),[f,g,L]=Ve((()=>w)),w={setMetricDefinition:(e,s,n,o,r,a,i)=>{const u=Y(n)?[n,r,a,i]:ce(Ne,n)??ce(Ne,"sum");return d(e,s,((s,n,o,r,a,i)=>{const d=l(e),h=ee(r);i||=K(d),s();let f=Oe(d,h,r,n,u,i);$(f)||(f=void 0),f!=d&&(c(e,f),g(t,[e],f,d))}),Ie(o,1)),w},delMetricDefinition:e=>(u(e),w),getStore:s,getMetricIds:o,forEachMetric:r,hasMetric:a,getTableId:i,getMetric:l,addMetricListener:(e,s)=>f(s,t,[e]),delListener:e=>(L(e),w),destroy:h,getListenerStats:()=>({})};return Me(w)})),We=(e,t,s,o,r)=>{let a,i,l=0;const c={load:async(s={},o={})=>{if(2!=l){l=1;const r=await t();K(r)||r==n?e.transaction((()=>e.setTables(s).setValues(o))):e.setJson(r),l=0}return c},startAutoLoad:async(e={},t={})=>(c.stopAutoLoad(),await c.load(e,t),o(c.load),c),stopAutoLoad:()=>(r(),c),save:async()=>(1!=l&&(l=2,await s(e.getJson()),l=0),c),startAutoSave:async()=>(await c.stopAutoSave().save(),a=e.addTablesListener(c.save),i=e.addValuesListener(c.save),c),stopAutoSave:()=>(U(a,e.delListener),U(i,e.delListener),c),getStore:()=>e,destroy:()=>c.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return Me(c)},qe="storage",He=globalThis.window,$e=(e,t,s)=>{let n;return We(e,(async()=>s.getItem(t)),(async e=>s.setItem(t,e)),(e=>{n=n=>{n.storageArea===s&&n.key===t&&e()},He.addEventListener(qe,n)}),(()=>{He.removeEventListener(qe,n),n=void 0}))},Ge=e=>e.headers.get("ETag"),Ke=be((e=>{const t=e.createStore,[s,o,r,a,i,,,l,,c,d,g,w]=Te(e,(()=>!0),_),v=t(),I=t(),b=ie(),m=(e,t,...s)=>x(s,(s=>ye(he(he(b,t,ie),e,Re),s))),C=e=>{U(ce(b,e),(e=>{de(e,((e,t)=>re(t,(t=>e.delListener(t))))),oe(e)})),x([I,v],(t=>t.delTable(e)))},V=(e,t,s)=>m(t,e,t.addStartTransactionListener(s.startTransaction),t.addDidFinishTransactionListener((()=>s.finishTransaction()))),k={setQueryDefinition:(t,s,o)=>{l(t,s),C(t);const r=[],a=[[null,[s,null,null,[],ie()]]],i=[],c=[],d=[];o({select:(e,t)=>{const s=Y(e)?[F(r)+n,e]:[K(t)?e:t,s=>s(e,t)];return z(r,s),{as:e=>s[0]=e}},join:(e,t,s)=>{const n=K(s)||Y(t)?null:t,o=K(n)?t:s,r=[e,[e,n,Y(o)?o:e=>e(o),[],ie()]];return z(a,r),{as:e=>r[0]=e}},where:(e,t,s)=>z(i,Y(e)?e:K(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,o)=>{const r=[e,[e,Y(t)?[t,s,n,o]:ce(Ne,t)??[(e,t)=>t]]];return z(c,r),{as:e=>r[0]=e}},having:(e,t)=>z(d,Y(e)?e:s=>s(e)===t)});const u=ie(r);if(se(u))return k;const h=ie(a);de(h,((e,[,t])=>U(ce(h,t),(({3:t})=>K(e)?0:z(t,e)))));const f=ie(c);let L=v;if(se(f)&&P(d))L=I;else{V(t,L,I);const e=ie();de(f,((t,[s,n])=>ye(he(e,s,Re),[t,n])));const s=Re();de(u,(t=>te(e,t)?0:ye(s,t)));const n=ie(),o=(s,n,o,r)=>U(s,(([a,i,l,c])=>{de(n,((t,[s])=>{const n=he(a,t,ie),i=ce(n,o),l=r?void 0:s;if(i!==l){const s=Re([[i,l]]),r=ee(n);ue(n,o,l),re(ce(e,t),(([e,t])=>{const o=Oe(c[e],r,n,s,t);c[e]=K(ve(o))?null:o}))}})),se(i)||!E(d,(e=>e((e=>c[e]))))?I.delRow(t,l):K(l)?s[2]=I.addRow(t,c):I.setRow(t,l,c)}));m(L,t,L.addRowListener(t,null,((r,a,i,l)=>{const c=[],d=[],u=ie(),h=L.hasRow(t,i);let f=!h;re(s,(e=>{const[s,n,o]=l(t,i,e);z(c,n),z(d,o),f||=s})),de(e,(e=>{const[s,,n]=l(t,i,e);(f||s)&&ue(u,e,[n])})),f&&o(we(n,c,void 0,(([,e])=>(ae(e,i),se(e)))),u,i,1),h&&o(we(n,d,(()=>{const e={};return re(s,(s=>e[s]=L.getCell(t,i,s))),[ie(),Re(),void 0,e]}),(([,e])=>{ye(e,i)})),u,i)})))}V(t,e,L);const S=(n,o,r,a)=>{const l=t=>e.getCell(o,r,t);x(a,(s=>{const[o,,r,a,i]=ce(h,s),c=r?.(l,n),[d,u]=ce(i,n)??[];c!=d&&(K(u)||w(t,u),ue(i,n,K(c)?null:[c,...g(t,1,e.addRowListener(o,c,(()=>S(n,o,c,a))))]))})),(n=>{const o=(t,o)=>e.getCell(...K(o)?[s,n,t]:t===s?[s,n,o]:[ce(h,t)?.[0],ce(ce(h,t)?.[4],n)?.[0],o]);L.transaction((()=>E(i,(e=>e(o)))?de(u,((e,s)=>Se(L,t,n,e,s(o,n)))):L.delRow(t,n)))})(n)},{3:p}=ce(h,null);return L.transaction((()=>g(t,1,e.addRowListener(s,null,((n,o,r)=>{e.hasRow(s,r)?S(r,s,r,p):(L.delRow(t,r),re(h,(({4:e})=>U(ce(e,r),(([,s])=>{w(t,s),ue(e,r)})))))}))))),k},delQueryDefinition:e=>(C(e),c(e),k),getStore:s,getQueryIds:o,forEachQuery:r,hasQuery:a,getTableId:i,delListener:e=>(I.delListener(e),k),destroy:d,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=I.getListenerStats();return n}};return Fe({[L]:[1,1],[p]:[0,1],[R]:[0,5],[S]:[1,2],[T]:[0,2],[y]:[1,3]},(([e,t],s)=>{x(e?["get","has","forEach"]:["get"],(e=>k[e+h+s]=(...t)=>I[e+s](...t))),k[f+h+s+u]=(...e)=>I[f+s+u](...j(e,0,t),((s,...n)=>e[t](k,...n)))})),Me(k)})),Ue=be((e=>{const t=ie(),s=ie(),o=ie(),r=ie(),[a,i,l,c,d,u,,,h,f,g]=Te(e,(()=>[ie(),ie(),ie(),ie()]),(e=>K(e)?void 0:e+n)),[L,w,v]=Ve((()=>y)),S=(e,t,s)=>U(u(e),(([n,,o])=>{if(!te(o,t)){const r=Re();if(d(e)!=R(e))ye(r,t);else{let e=t;for(;!K(e)&&!te(r,e);)ye(r,e),e=ce(n,e)}if(s)return r;ue(o,t,r)}return ce(o,t)})),p=(e,t)=>U(u(e),(([,,e])=>ue(e,t))),R=e=>ce(t,e),y={setRelationshipDefinition:(e,n,a,i)=>(ue(t,e,a),h(e,n,((t,n)=>{const a=Re(),i=Re(),l=Re(),[c,d]=u(e);re(n,(([t,s],n)=>{K(t)||(ye(i,t),U(ce(d,t),(e=>{ae(e,n),se(e)&&ue(d,t)}))),K(s)||(ye(i,s),te(d,s)||ue(d,s,Re()),ye(ce(d,s),n)),ye(a,n),ue(c,n,s),de(ce(r,e),(t=>{te(S(e,t),n)&&ye(l,t)}))})),t(),re(a,(t=>w(s,[e,t]))),re(i,(t=>w(o,[e,t]))),re(l,(t=>{p(e,t),w(r,[e,t])}))}),Ie(i)),y),delRelationshipDefinition:e=>(ue(t,e),f(e),y),getStore:a,getRelationshipIds:i,forEachRelationship:t=>l((s=>t(s,(t=>e.forEachRow(d(s),t))))),hasRelationship:c,getLocalTableId:d,getRemoteTableId:R,getRemoteRowId:(e,t)=>ce(u(e)?.[0],t),getLocalRowIds:(e,t)=>ne(ce(u(e)?.[1],t)),getLinkedRowIds:(e,t)=>K(u(e))?[t]:ne(S(e,t,!0)),addRemoteRowIdListener:(e,t,n)=>L(n,s,[e,t]),addLocalRowIdsListener:(e,t,s)=>L(s,o,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(S(e,t),L(s,r,[e,t])),delListener:e=>(p(...v(e)),y),destroy:g,getListenerStats:()=>({})};return Me(y)})),Xe=e=>[e,e],Ye=()=>[ie(),ie()],Ze=(e,t,s,n=ue)=>(Fe(t,((t,n)=>s(e,n,t))),de(e,(s=>Ae(t,s)?0:n(e,s))),e),_e=(e,t,s)=>K(e)||!xe(e)||Pe(e)||Je(e)?(s?.(),!1):(Fe(e,((s,n)=>{t(s,n)||De(e,n)})),!Pe(e)),et=(e,t,s)=>ue(e,t,ce(e,t)==-s?void 0:s),tt=()=>{let e,t,s,n,o=0;const r=ie(),i=ie(),d=ie(),h=ie(),g=ie(),R=ie(),E=ie(),J=ie(),D=ie(),F=ie(),P=ie(),Q=ie(),N=Re(),O=ie(),q=ie(),H=ie(),$=Ye(),G=Ye(),Z=Ye(),_=Ye(),ee=Ye(),ne=Ye(),we=Ye(),Te=Ye(),Ie=Ye(),be=Ye(),me=Ye(),Ee=Ye(),ke=Ye(),Je=ie(),xe=Ye(),[Qe,ze,Ne,Oe]=Ve((()=>ss)),Be=e=>{if(!_e(e,((e,t)=>V([l,c],t))))return!1;const t=e[l];return!(!X(t)&&t!=a||(ve(e[c])!=t&&De(e,c),0))},We=(t,s)=>(!e||te(D,s)||mt(s))&&_e(t,((e,t)=>qe(s,t,e)),(()=>mt(s))),qe=(e,t,s,n)=>_e(n?s:Ke(s,e,t),((n,o)=>U(He(e,t,o,n),(e=>(s[o]=e,!0)),(()=>!1))),(()=>mt(e,t))),He=(t,s,n,o)=>e?U(ce(ce(D,t),n),(e=>ve(o)!=e[l]?mt(t,s,n,o,e[c]):o),(()=>mt(t,s,n,o))):K(ve(o))?mt(t,s,n,o):o,$e=(e,t)=>_e(t?e:Ue(e),((t,s)=>U(Ge(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>Ct())),Ge=(e,s)=>t?U(ce(P,e),(t=>ve(s)!=t[l]?Ct(e,s,t[c]):s),(()=>Ct(e,s))):K(ve(s))?Ct(e,s):s,Ke=(e,t,s)=>(U(ce(F,t),(([n,o])=>{re(n,((t,s)=>{Ae(e,s)||(e[s]=t)})),re(o,(n=>{Ae(e,n)||mt(t,s,n)}))})),e),Ue=e=>(t&&(re(Q,((t,s)=>{Ae(e,s)||(e[s]=t)})),re(N,(t=>{Ae(e,t)||Ct(t)}))),e),st=e=>Ze(D,e,((e,t,s)=>{const n=ie(),o=Re();Ze(he(D,t,ie),s,((e,t,s)=>{ue(e,t,s),U(s[c],(e=>ue(n,t,e)),(()=>ye(o,t)))})),ue(F,t,[n,o])}),((e,t)=>{ue(D,t),ue(F,t)})),nt=e=>Ze(P,e,((e,t,s)=>{ue(P,t,s),U(s[c],(e=>ue(Q,t,e)),(()=>ye(N,t)))}),((e,t)=>{ue(P,t),ue(Q,t),ae(N,t)})),ot=e=>Pe(e)?Ut():qt(e),rt=e=>Ze(q,e,((e,t,s)=>at(t,s)),((e,t)=>Lt(t))),at=(e,t)=>Ze(he(q,e,(()=>(pt(e,1),ie()))),t,((t,s,n)=>it(e,t,s,n)),((t,s)=>wt(e,t,s))),it=(e,t,s,n,o)=>Ze(he(t,s,(()=>(Rt(e,s,1),ie()))),n,((t,n,o)=>lt(e,s,t,n,o)),((n,r)=>vt(e,t,s,n,r,o))),lt=(e,t,s,n,o)=>{te(s,n)||yt(e,t,n,1);const r=ce(s,n);o!==r&&(Tt(e,t,n,r,o),ue(s,n,o))},ct=(e,t,s,n,o)=>U(ce(t,s),(t=>lt(e,s,t,n,o)),(()=>it(e,t,s,Ke({[n]:o},e,s)))),dt=e=>Pe(e)?Xt():Ht(e),ut=e=>Ze(H,e,((e,t,s)=>ht(t,s)),((e,t)=>St(t))),ht=(e,t)=>{te(H,e)||It(e,1);const s=ce(H,e);t!==s&&(bt(e,s,t),ue(H,e,t))},ft=(e,t)=>{const[s]=he(O,e,Ce),n=s(t);return te(ce(q,e),n)?ft(e,t):n},gt=e=>ce(q,e)??at(e,{}),Lt=e=>at(e,{}),wt=(e,t,s)=>{const[,n]=he(O,e,Ce);n(s),it(e,t,s,{},!0)},vt=(e,t,s,n,o,r)=>{const a=ce(ce(F,e)?.[0],o);if(!K(a)&&!r)return lt(e,s,n,o,a);const i=t=>{Tt(e,s,t,ce(n,t)),yt(e,s,t,-1),ue(n,t)};K(a)?i(o):de(n,i),se(n)&&(Rt(e,s,-1),se(ue(t,s))&&(pt(e,-1),ue(q,e),ue(O,e)))},St=e=>{const t=ce(Q,e);if(!K(t))return ht(e,t);bt(e,ce(H,e)),It(e,-1),ue(H,e)},pt=(e,t)=>et(r,e,t),Rt=(e,t,s)=>et(he(i,e,ie),t,s),yt=(e,t,s,n)=>et(he(he(d,e,ie),t,ie),s,n),Tt=(e,t,s,n,o)=>he(he(he(h,e,ie),t,ie),s,(()=>[n,0]))[1]=o,It=(e,t)=>et(g,e,t),bt=(e,t,s)=>he(R,e,(()=>[t,0]))[1]=s,mt=(e,t,s,n,o)=>(z(he(he(he(E,e,ie),t,ie),s,(()=>[])),n),o),Ct=(e,t,s)=>(z(he(J,e,(()=>[])),t),s),Vt=(e,t,s)=>U(ce(ce(ce(h,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...Xe(Nt(e,t,s))])),Et=e=>U(ce(R,e),(([e,t])=>[!0,e,t]),(()=>[!1,...Xe(Wt(e))])),kt=e=>se(E)||se(Ie[e])?0:re(e?ge(E,Le):E,((t,s)=>re(t,((t,n)=>re(t,((t,o)=>ze(Ie[e],[s,n,o],t))))))),Jt=e=>se(J)||se(be[e])?0:re(e?ge(J):J,((t,s)=>ze(be[e],[s],t))),Mt=(e,t,s)=>{if(!se(t))return ze(e,s),1},xt=e=>{const t=se(ee[e]),s=se(we[e])&&se(_[e])&&t&&se(G[e]),n=se(Te[e])&&se(ne[e])&&se(Z[e])&&se($[e]);if(!s||!n){const o=e?[ge(r),Le(i),ge(d,Le),ge(h,Le)]:[r,i,d,h];if(!s){re(o[2],((t,s)=>re(t,((t,n)=>Mt(we[e],t,[s,n])))));const s=Re();re(o[1],((n,o)=>{Mt(_[e],n,[o])&&!t&&(ze(ee[e],[o,null]),ye(s,o))})),t||re(o[3],((t,n)=>{if(!te(s,n)){const s=Re();re(t,(e=>re(e,(([t,n],o)=>n!==t?ye(s,o):ae(e,o))))),re(s,(t=>ze(ee[e],[n,t])))}})),Mt(G[e],o[0])}if(!n){let t;re(o[3],((s,n)=>{let o;re(s,((s,r)=>{let a;re(s,(([s,i],l)=>{i!==s&&(ze(Te[e],[n,r,l],i,s,Vt),t=o=a=1)})),a&&ze(ne[e],[n,r],Vt)})),o&&ze(Z[e],[n],Vt)})),t&&ze($[e],void 0,Vt)}}},At=e=>{const t=se(Ee[e]),s=se(ke[e])&&se(me[e]);if(!t||!s){const n=e?[ge(g),ge(R)]:[g,R];if(t||Mt(Ee[e],n[0]),!s){let t;re(n[1],(([s,n],o)=>{n!==s&&(ze(ke[e],[o],n,s,Et),t=1)})),t&&ze(me[e],void 0,Et)}}},Dt=(e,...t)=>(_t((()=>e(...A(t,C)))),ss),Ft=()=>fe(q,(e=>fe(e,fe))),Pt=()=>le(q),Qt=e=>le(ce(q,C(e))),jt=(e,t,s,n=0,o)=>{return A(j(M((r=ce(q,C(e)),a=(e,s)=>[K(t)?s:ce(e,C(t)),s],A([...r?.entries()??[]],(([e,t])=>a(t,e)))),(([e],[t])=>je(e,t)*(s?-1:1))),n,K(o)?o:n+o),(([,e])=>e));var r,a},zt=(e,t)=>le(ce(ce(q,C(e)),C(t))),Nt=(e,t,s)=>ce(ce(ce(q,C(e)),C(t)),C(s)),Ot=()=>fe(H),Bt=()=>le(H),Wt=e=>ce(H,C(e)),qt=e=>Dt((()=>(e=>_e(e,We,mt))(e)?rt(e):0)),Ht=e=>Dt((()=>$e(e)?ut(e):0)),$t=e=>{try{ot(W(e))}catch{}return ss},Gt=t=>Dt((()=>{if((e=_e(t,(e=>_e(e,Be))))&&(st(t),!se(q))){const e=Ft();Ut(),qt(e)}})),Kt=e=>Dt((()=>{if(t=(e=>_e(e,Be))(e)){const s=Ot();Zt(),Xt(),t=!0,nt(e),Ht(s)}})),Ut=()=>Dt((()=>rt({}))),Xt=()=>Dt((()=>ut({}))),Yt=()=>Dt((()=>{st({}),e=!1})),Zt=()=>Dt((()=>{nt({}),t=!1})),_t=(e,t)=>{if(-1!=o){es();const s=e();return ts(t),s}},es=()=>(-1!=o&&o++,1==o&&ze(Je,void 0,!1,!1),ss),ts=e=>(o>0&&(o--,0==o&&(s=!se(h),n=!se(R),o=1,kt(1),s&&xt(1),Jt(1),n&&At(1),e?.(fe(h,(e=>fe(e,(e=>fe(e,(e=>[...e]),(([e,t])=>e===t))),Pe)),Pe),fe(E,(e=>fe(e,fe))),fe(R,(e=>[...e]),(([e,t])=>e===t)),fe(J))&&(re(h,((e,t)=>re(e,((e,s)=>re(e,(([e],n)=>Se(ss,t,s,n,e))))))),re(R,(([e],t)=>pe(ss,t,e))),s=n=!1),ze(xe[0],void 0,s,n),o=-1,kt(0),s&&xt(0),Jt(0),n&&At(0),ze(xe[1],void 0,s,n),o=0,x([r,i,d,h,E,g,R,J],oe))),ss),ss={getTables:Ft,getTableIds:Pt,getTable:e=>fe(ce(q,C(e)),fe),getRowIds:Qt,getSortedRowIds:jt,getRow:(e,t)=>fe(ce(ce(q,C(e)),C(t))),getCellIds:zt,getCell:Nt,getValues:Ot,getValueIds:Bt,getValue:Wt,hasTables:()=>!se(q),hasTable:e=>te(q,C(e)),hasRow:(e,t)=>te(ce(q,C(e)),C(t)),hasCell:(e,t,s)=>te(ce(ce(q,C(e)),C(t)),C(s)),hasValues:()=>!se(H),hasValue:e=>te(H,C(e)),getTablesJson:()=>B(q),getValuesJson:()=>B(H),getJson:()=>B([q,H]),getTablesSchemaJson:()=>B(D),getValuesSchemaJson:()=>B(P),getSchemaJson:()=>B([D,P]),setTables:qt,setTable:(e,t)=>Dt((e=>We(t,e)?at(e,t):0),e),setRow:(e,t,s)=>Dt(((e,t)=>qe(e,t,s)?it(e,gt(e),t,s):0),e,t),addRow:(e,t,s=!0)=>_t((()=>{let n;return qe(e,n,t)&&(e=C(e),it(e,gt(e),n=ft(e,s?1:0),t)),n})),setPartialRow:(e,t,s)=>Dt(((e,t)=>{if(qe(e,t,s,1)){const n=gt(e);Fe(s,((s,o)=>ct(e,n,t,o,s)))}}),e,t),setCell:(e,t,s,n)=>Dt(((e,t,s)=>U(He(e,t,s,Y(n)?n(Nt(e,t,s)):n),(n=>ct(e,gt(e),t,s,n)))),e,t,s),setValues:Ht,setPartialValues:e=>Dt((()=>$e(e,1)?Fe(e,((e,t)=>ht(t,e))):0)),setValue:(e,t)=>Dt((e=>U(Ge(e,Y(t)?t(Wt(e)):t),(t=>ht(e,t)))),e),setTablesJson:$t,setValuesJson:e=>{try{dt(W(e))}catch{}return ss},setJson:e=>{try{const[t,s]=W(e);ot(t),dt(s)}catch{$t(e)}return ss},setTablesSchema:Gt,setValuesSchema:Kt,setSchema:(e,t)=>Dt((()=>{Gt(e),Kt(t)})),delTables:Ut,delTable:e=>Dt((e=>te(q,e)?Lt(e):0),e),delRow:(e,t)=>Dt(((e,t)=>U(ce(q,e),(s=>te(s,t)?wt(e,s,t):0))),e,t),delCell:(e,t,s,n)=>Dt(((e,t,s)=>U(ce(q,e),(o=>U(ce(o,t),(r=>te(r,s)?vt(e,o,t,r,s,n):0))))),e,t,s),delValues:Xt,delValue:e=>Dt((e=>te(H,e)?St(e):0),e),delTablesSchema:Yt,delValuesSchema:Zt,delSchema:()=>Dt((()=>{Yt(),Zt()})),transaction:_t,startTransaction:es,finishTransaction:ts,forEachTable:e=>re(q,((t,s)=>e(s,(e=>re(t,((t,s)=>e(s,(e=>de(t,e))))))))),forEachRow:(e,t)=>re(ce(q,C(e)),((e,s)=>t(s,(t=>de(e,t))))),forEachCell:(e,t,s)=>de(ce(ce(q,C(e)),C(t)),s),forEachValue:e=>de(H,e),addSortedRowIdsListener:(e,t,s,n,o,r,a)=>{let i=jt(e,t,s,n,o);return Qe((()=>{const a=jt(e,t,s,n,o);k(a,i)||(i=a,r(ss,e,t,s,n,o,i))}),ee[a?1:0],[e,t],[Pt])},addStartTransactionListener:e=>Qe(e,Je),addWillFinishTransactionListener:e=>Qe(e,xe[0]),addDidFinishTransactionListener:e=>Qe(e,xe[1]),callListener:e=>(Oe(e),ss),delListener:e=>(Ne(e),ss),getListenerStats:()=>({}),createStore:tt};return Fe({[w]:[0,$],[v]:[0,G],[L]:[1,Z,[Pt]],[p]:[1,_,[Pt]],[S]:[2,ne,[Pt,Qt]],[T]:[2,we,[Pt,Qt]],[y]:[3,Te,[Pt,Qt,zt],e=>Xe(Nt(...e))],InvalidCell:[3,Ie],[b]:[0,me],[m]:[0,Ee],[I]:[1,ke,[Bt],e=>Xe(Wt(e[0]))],InvalidValue:[1,be]},(([e,t,s,n],o)=>{ss[f+o+u]=(...o)=>Qe(o[e],t[o[e+1]?1:0],e>0?j(o,0,e):void 0,s,n)})),Me(ss)};e.createCheckpoints=Qe,e.createCustomPersister=We,e.createFilePersister=(e,s)=>{let n;return We(e,(async()=>{try{return await t.promises.readFile(s,d)}catch{}}),(async e=>{try{await t.promises.writeFile(s,e,d)}catch{}}),(e=>{n=t.watch(s,e)}),(()=>{n?.close(),n=void 0}))},e.createIndexes=ze,e.createLocalPersister=(e,t)=>$e(e,t,localStorage),e.createMetrics=Be,e.createQueries=Ke,e.createRelationships=Ue,e.createRemotePersister=(e,t,s,n)=>{let o,r;return We(e,(async()=>{const e=await fetch(t);return r=Ge(e),e.text()}),(async e=>await fetch(s,{method:"POST",headers:{"Content-Type":"application/json"},body:e})),(e=>{o=setInterval((async()=>{const s=await fetch(t,{method:"HEAD"}),n=Ge(s);K(r)||K(n)||n==r||(r=n,e())}),1e3*n)}),(()=>{U(o,clearInterval),o=void 0}))},e.createSessionPersister=(e,t)=>$e(e,t,sessionStorage),e.createStore=tt,e.defaultSorter=je},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("fs")):"function"==typeof define&&define.amd?define(["exports","fs"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBase={},e.fs);
Binary file