tinybase 4.0.0 → 4.0.2

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 (188) hide show
  1. package/bin/cli.js +1 -1
  2. package/lib/checkpoints.js +1 -1
  3. package/lib/checkpoints.js.gz +0 -0
  4. package/lib/cjs/checkpoints.cjs +1 -1
  5. package/lib/cjs/checkpoints.cjs.gz +0 -0
  6. package/lib/cjs/indexes.cjs +1 -1
  7. package/lib/cjs/indexes.cjs.gz +0 -0
  8. package/lib/cjs/metrics.cjs +1 -1
  9. package/lib/cjs/metrics.cjs.gz +0 -0
  10. package/lib/cjs/persisters/persister-browser.cjs +1 -1
  11. package/lib/cjs/persisters/persister-browser.cjs.gz +0 -0
  12. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  13. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  14. package/lib/cjs/persisters/persister-file.cjs +1 -1
  15. package/lib/cjs/persisters/persister-file.cjs.gz +0 -0
  16. package/lib/cjs/persisters/persister-remote.cjs +1 -1
  17. package/lib/cjs/persisters/persister-remote.cjs.gz +0 -0
  18. package/lib/cjs/persisters/persister-sqlite-wasm.cjs +1 -1
  19. package/lib/cjs/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  20. package/lib/cjs/persisters/persister-sqlite3.cjs +1 -1
  21. package/lib/cjs/persisters/persister-sqlite3.cjs.gz +0 -0
  22. package/lib/cjs/relationships.cjs +1 -1
  23. package/lib/cjs/relationships.cjs.gz +0 -0
  24. package/lib/cjs/store.cjs +1 -1
  25. package/lib/cjs/store.cjs.gz +0 -0
  26. package/lib/cjs/tinybase.cjs +1 -1
  27. package/lib/cjs/tinybase.cjs.gz +0 -0
  28. package/lib/cjs/tools.cjs +1 -1
  29. package/lib/cjs/tools.cjs.gz +0 -0
  30. package/lib/cjs/ui-react.cjs +1 -1
  31. package/lib/cjs/ui-react.cjs.gz +0 -0
  32. package/lib/cjs-es6/checkpoints.cjs +1 -1
  33. package/lib/cjs-es6/checkpoints.cjs.gz +0 -0
  34. package/lib/cjs-es6/indexes.cjs +1 -1
  35. package/lib/cjs-es6/indexes.cjs.gz +0 -0
  36. package/lib/cjs-es6/metrics.cjs +1 -1
  37. package/lib/cjs-es6/metrics.cjs.gz +0 -0
  38. package/lib/cjs-es6/persisters/persister-browser.cjs +1 -1
  39. package/lib/cjs-es6/persisters/persister-browser.cjs.gz +0 -0
  40. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  41. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  42. package/lib/cjs-es6/persisters/persister-file.cjs +1 -1
  43. package/lib/cjs-es6/persisters/persister-file.cjs.gz +0 -0
  44. package/lib/cjs-es6/persisters/persister-remote.cjs +1 -1
  45. package/lib/cjs-es6/persisters/persister-remote.cjs.gz +0 -0
  46. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs +1 -1
  47. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  48. package/lib/cjs-es6/persisters/persister-sqlite3.cjs +1 -1
  49. package/lib/cjs-es6/persisters/persister-sqlite3.cjs.gz +0 -0
  50. package/lib/cjs-es6/relationships.cjs +1 -1
  51. package/lib/cjs-es6/relationships.cjs.gz +0 -0
  52. package/lib/cjs-es6/store.cjs +1 -1
  53. package/lib/cjs-es6/store.cjs.gz +0 -0
  54. package/lib/cjs-es6/tinybase.cjs +1 -1
  55. package/lib/cjs-es6/tinybase.cjs.gz +0 -0
  56. package/lib/cjs-es6/tools.cjs +1 -1
  57. package/lib/cjs-es6/tools.cjs.gz +0 -0
  58. package/lib/cjs-es6/ui-react.cjs +1 -1
  59. package/lib/cjs-es6/ui-react.cjs.gz +0 -0
  60. package/lib/debug/checkpoints.js +6 -6
  61. package/lib/debug/indexes.js +7 -7
  62. package/lib/debug/metrics.js +12 -12
  63. package/lib/debug/persisters/persister-browser.js +10 -19
  64. package/lib/debug/persisters/persister-cr-sqlite-wasm.js +183 -132
  65. package/lib/debug/persisters/persister-file.js +10 -19
  66. package/lib/debug/persisters/persister-remote.js +10 -19
  67. package/lib/debug/persisters/persister-sqlite-wasm.js +178 -131
  68. package/lib/debug/persisters/persister-sqlite3.js +178 -132
  69. package/lib/debug/persisters.js +4 -4
  70. package/lib/debug/relationships.js +7 -7
  71. package/lib/debug/store.js +16 -24
  72. package/lib/debug/tinybase.js +20 -28
  73. package/lib/debug/tools.js +14 -13
  74. package/lib/debug/ui-react.js +4 -4
  75. package/lib/es6/checkpoints.js +1 -1
  76. package/lib/es6/checkpoints.js.gz +0 -0
  77. package/lib/es6/indexes.js +1 -1
  78. package/lib/es6/indexes.js.gz +0 -0
  79. package/lib/es6/metrics.js +1 -1
  80. package/lib/es6/metrics.js.gz +0 -0
  81. package/lib/es6/persisters/persister-browser.js +1 -1
  82. package/lib/es6/persisters/persister-browser.js.gz +0 -0
  83. package/lib/es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  84. package/lib/es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  85. package/lib/es6/persisters/persister-file.js +1 -1
  86. package/lib/es6/persisters/persister-file.js.gz +0 -0
  87. package/lib/es6/persisters/persister-remote.js +1 -1
  88. package/lib/es6/persisters/persister-remote.js.gz +0 -0
  89. package/lib/es6/persisters/persister-sqlite-wasm.js +1 -1
  90. package/lib/es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  91. package/lib/es6/persisters/persister-sqlite3.js +1 -1
  92. package/lib/es6/persisters/persister-sqlite3.js.gz +0 -0
  93. package/lib/es6/relationships.js +1 -1
  94. package/lib/es6/relationships.js.gz +0 -0
  95. package/lib/es6/store.js +1 -1
  96. package/lib/es6/store.js.gz +0 -0
  97. package/lib/es6/tinybase.js +1 -1
  98. package/lib/es6/tinybase.js.gz +0 -0
  99. package/lib/es6/tools.js +1 -1
  100. package/lib/es6/tools.js.gz +0 -0
  101. package/lib/es6/ui-react.js +1 -1
  102. package/lib/es6/ui-react.js.gz +0 -0
  103. package/lib/indexes.js +1 -1
  104. package/lib/indexes.js.gz +0 -0
  105. package/lib/metrics.js +1 -1
  106. package/lib/metrics.js.gz +0 -0
  107. package/lib/persisters/persister-browser.js +1 -1
  108. package/lib/persisters/persister-browser.js.gz +0 -0
  109. package/lib/persisters/persister-cr-sqlite-wasm.js +1 -1
  110. package/lib/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  111. package/lib/persisters/persister-file.js +1 -1
  112. package/lib/persisters/persister-file.js.gz +0 -0
  113. package/lib/persisters/persister-remote.js +1 -1
  114. package/lib/persisters/persister-remote.js.gz +0 -0
  115. package/lib/persisters/persister-sqlite-wasm.js +1 -1
  116. package/lib/persisters/persister-sqlite-wasm.js.gz +0 -0
  117. package/lib/persisters/persister-sqlite3.js +1 -1
  118. package/lib/persisters/persister-sqlite3.js.gz +0 -0
  119. package/lib/relationships.js +1 -1
  120. package/lib/relationships.js.gz +0 -0
  121. package/lib/store.js +1 -1
  122. package/lib/store.js.gz +0 -0
  123. package/lib/tinybase.js +1 -1
  124. package/lib/tinybase.js.gz +0 -0
  125. package/lib/tools.js +1 -1
  126. package/lib/tools.js.gz +0 -0
  127. package/lib/types/persisters.d.ts +7 -0
  128. package/lib/types/with-schemas/persisters.d.ts +7 -0
  129. package/lib/ui-react.js +1 -1
  130. package/lib/ui-react.js.gz +0 -0
  131. package/lib/umd/checkpoints.js +1 -1
  132. package/lib/umd/checkpoints.js.gz +0 -0
  133. package/lib/umd/indexes.js +1 -1
  134. package/lib/umd/indexes.js.gz +0 -0
  135. package/lib/umd/metrics.js +1 -1
  136. package/lib/umd/metrics.js.gz +0 -0
  137. package/lib/umd/persisters/persister-browser.js +1 -1
  138. package/lib/umd/persisters/persister-browser.js.gz +0 -0
  139. package/lib/umd/persisters/persister-cr-sqlite-wasm.js +1 -1
  140. package/lib/umd/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  141. package/lib/umd/persisters/persister-file.js +1 -1
  142. package/lib/umd/persisters/persister-file.js.gz +0 -0
  143. package/lib/umd/persisters/persister-remote.js +1 -1
  144. package/lib/umd/persisters/persister-remote.js.gz +0 -0
  145. package/lib/umd/persisters/persister-sqlite-wasm.js +1 -1
  146. package/lib/umd/persisters/persister-sqlite-wasm.js.gz +0 -0
  147. package/lib/umd/persisters/persister-sqlite3.js +1 -1
  148. package/lib/umd/persisters/persister-sqlite3.js.gz +0 -0
  149. package/lib/umd/relationships.js +1 -1
  150. package/lib/umd/relationships.js.gz +0 -0
  151. package/lib/umd/store.js +1 -1
  152. package/lib/umd/store.js.gz +0 -0
  153. package/lib/umd/tinybase.js +1 -1
  154. package/lib/umd/tinybase.js.gz +0 -0
  155. package/lib/umd/tools.js +1 -1
  156. package/lib/umd/tools.js.gz +0 -0
  157. package/lib/umd/ui-react.js +1 -1
  158. package/lib/umd/ui-react.js.gz +0 -0
  159. package/lib/umd-es6/checkpoints.js +1 -1
  160. package/lib/umd-es6/checkpoints.js.gz +0 -0
  161. package/lib/umd-es6/indexes.js +1 -1
  162. package/lib/umd-es6/indexes.js.gz +0 -0
  163. package/lib/umd-es6/metrics.js +1 -1
  164. package/lib/umd-es6/metrics.js.gz +0 -0
  165. package/lib/umd-es6/persisters/persister-browser.js +1 -1
  166. package/lib/umd-es6/persisters/persister-browser.js.gz +0 -0
  167. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  168. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  169. package/lib/umd-es6/persisters/persister-file.js +1 -1
  170. package/lib/umd-es6/persisters/persister-file.js.gz +0 -0
  171. package/lib/umd-es6/persisters/persister-remote.js +1 -1
  172. package/lib/umd-es6/persisters/persister-remote.js.gz +0 -0
  173. package/lib/umd-es6/persisters/persister-sqlite-wasm.js +1 -1
  174. package/lib/umd-es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  175. package/lib/umd-es6/persisters/persister-sqlite3.js +1 -1
  176. package/lib/umd-es6/persisters/persister-sqlite3.js.gz +0 -0
  177. package/lib/umd-es6/relationships.js +1 -1
  178. package/lib/umd-es6/relationships.js.gz +0 -0
  179. package/lib/umd-es6/store.js +1 -1
  180. package/lib/umd-es6/store.js.gz +0 -0
  181. package/lib/umd-es6/tinybase.js +1 -1
  182. package/lib/umd-es6/tinybase.js.gz +0 -0
  183. package/lib/umd-es6/tools.js +1 -1
  184. package/lib/umd-es6/tools.js.gz +0 -0
  185. package/lib/umd-es6/ui-react.js +1 -1
  186. package/lib/umd-es6/ui-react.js.gz +0 -0
  187. package/package.json +33 -33
  188. package/readme.md +5 -5
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t="")=>a.join(t),c=(a,t)=>a.map(t),o=a=>a.length,i=a=>0==o(a),r=(a,t)=>a.filter(t),l=(a,t,e)=>a.slice(t,e),y=(a,...t)=>a.push(...t),w=Promise,u=JSON.parse,d=(a,t)=>a instanceof t,E=a=>null==a,p=(a,t,e)=>E(a)?e?.():t(a),v=t=>a(t)==s,m=async a=>w.all(a),A=(a,t)=>a?.has(t)??!1,T=a=>[...a?.values()??[]],L=(a,t)=>a?.delete(t),h=Object,N=h.keys,f=h.freeze,C=(a=[])=>h.fromEntries(a),O=(...a)=>h.assign({},...a),R=(a,t)=>(delete a[t],a),S=(a,t)=>c(h.entries(a),(([a,e])=>t(e,a))),_=a=>h.values(a),b=a=>o(N(a)),I=a=>(a=>d(a,h)&&a.constructor==h)(a)&&0==b(a),g=a=>new Map(a),D=a=>[...a?.keys()??[]],$=(a,t)=>a?.get(t),M=(a,t)=>c([...a?.entries()??[]],(([a,e])=>t(e,a))),F=(a,t,e)=>E(e)?(L(a,t),a):a?.set(t,e),P=(a,t,e,s=F)=>(S(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!E(((a,t)=>p(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),j="_id",k=a=>`"${a.replace(/"/g,'""')}"`,B=a=>new Set(Array.isArray(a)||E(a)?a:[a]),x=(a,t)=>a?.add(t),q="SELECT*FROM",H="FROM pragma_table_",J="WHERE",U=(a,t)=>{const s=g(),l=(a,t)=>!E($($(s,a),t)),w=async(t,l,w,u,d)=>{const E=B();S(d??{},(a=>c(N(a),(a=>x(E,a)))));const p=T(E);if(i(p)&&A(s,t)&&u)return await a("DROP TABLE"+k(t)),void F(s,t);if(i(p)||A(s,t)){const e=$(s,t),n=B(D(e));await m([...c(p,(async s=>{L(n,s)||(await a(`ALTER TABLE${k(t)}ADD${k(s)}`),F(e,s,""))})),...w?c(T(n),(async s=>{s!=l&&(await a(`ALTER TABLE${k(t)}DROP${k(s)}`),F(e,s))})):[]])}else await a(`CREATE TABLE${k(t)}(${k(l)} PRIMARY KEY ON CONFLICT REPLACE${n(c(p,(a=>e+k(a))))});`),F(s,t,g([[l,""],...c(p,(a=>[a,""]))]));if(i(p))A(s,t)&&await a("DELETE FROM"+k(t));else{const i=[],w=[],u=[],E=r(D($(s,t)),(a=>a!=l));S(d,((a,t)=>{var e;y(i,`(?${e=o(E),",?".repeat(e)})`),y(w,t,...c(E,(t=>a[t]))),y(u,t)})),await a("INSERT INTO"+k(t)+"("+k(l)+n(c(E,(a=>e+k(a))))+")VALUES"+n(i,e)+"ON CONFLICT("+k(l)+")DO UPDATE SET"+n(c(E,(a=>k(a)+"=excluded."+k(a))),e),w),await a("DELETE FROM"+k(t)+J+k(l)+"NOT IN("+V(u)+")",u)}};return[async()=>P(s,C(await m(c(await a("SELECT name "+H+"list WHERE schema='main'AND type='table'AND name IN("+V(t)+")",t),(async({name:t})=>[t,C(c(await a("SELECT name,type "+H+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>{return F(s,t,P((o=g,A(n=s,c=t)||F(n,c,o()),$(n,c)),e,((a,t,e)=>{e!=$(a,t)&&F(a,t,e)}),((a,t)=>F(a,t))));var n,c,o}),((a,t)=>F(s,t))),async(t,e)=>{const s=l(t,e)?await a(q+k(t)+J+k(e)+"=?",["_"]):[];return i(s)?null:R(s[0],e)},async(a,t,e,s)=>await w(a,t,!0,!0,{[e]:s}),async(t,e)=>l(t,e)?C(r(c(await a(q+k(t)),(a=>[a[e],R({...a},e)])),(([a,t])=>!E(a)&&!I(t)))):{},w]},V=a=>n(c(a,(()=>"?")),e),W=(a,t,e,s,n)=>{let c,o,i,r=0,l=0,w=0;const u=[],d=async a=>(2!=r&&(r=1,await v.schedule((async()=>{await a(),r=0}))),v),v={load:async(e,s)=>await d((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(v.stopAutoLoad(),await v.load(e,n),w=1,i=s((async(e,s)=>await d((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}})))),v),stopAutoLoad:()=>(w&&(n(i),i=void 0,w=0),v),save:async t=>(1!=r&&(r=2,await v.schedule((async()=>{try{await e(a.getContent,t)}catch{}r=0}))),v),startAutoSave:async()=>(await v.stopAutoSave().save(),c=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();I(e)&&I(s)||v.save((()=>[e,s]))})),v),stopAutoSave:()=>(p(c,a.delListener),v),schedule:async(...a)=>(y(u,...a),await(async()=>{if(!l){for(l=1;!E((a=u,o=a.shift()));)try{await o()}catch{}l=0}var a})(),v),getStore:()=>a,destroy:()=>v.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return f(v)},Y="store",z=(a,t,e,s,[n],c)=>{const[o,i,r]=U(t,c),l=W(a,(async()=>(await o(),u((await i(n,j)??{})[Y]))),(async a=>l.schedule(o,(async()=>{var t;await r(n,j,"_",{[Y]:(t=a(),JSON.stringify(t,((a,t)=>{return d(t,Map)?(e=(a,[t,e])=>(a[t]=e,a),s={},[...t].reduce(e,s)):t;var e,s})))})}))),e,s);return l},K=(a,t,e,s,[n,c,[o,i,l]],y)=>{const[w,u,d,p,v]=U(t,y);return W(a,(async()=>{await w();const a=await(async()=>C(r(await m(M(n,(async([a,t],e)=>[a,await p(e,t)]))),(a=>!I(a[1])))))(),t=await(async()=>o?await u(l,j):{})();return I(a)&&E(t)?void 0:[a,t]}),(async a=>{const[t,e]=a();await w(),await(async a=>await m(M(c,(async([t,e,s,n],c)=>await v(t,e,s,n,a[c])))))(t),await(async a=>i?await d(l,j,"_",a):null)(e)}),e,s)},G="json",Q="autoLoadIntervalSeconds",X="rowIdColumnName",Z="tableId",aa="tableName",ta={mode:G,[Q]:1},ea={load:0,save:0,[aa]:t+"_values"},sa=(a,t,e,s)=>{const n=g();return S(a,((a,c)=>{const o=l(_(O(t,v(a)?{[e]:a}:a)),0,b(t));E(o[0])||s(c,o[0])||F(n,c,o)})),n},na="pragma ",ca="data_version",oa="schema_version",ia=(a,e,s,n,c)=>{let o,i;const[r,y,w,u]=(a=>{const e=(a=>O(ta,v(a)?{storeTableName:a}:a??{}))(a),s=e[Q];if(e.mode==G){const{storeTableName:a=t}=e;return[1,s,[a],B(a)]}const{tables:{load:n={},save:c={}}={},values:o={}}=e,i=l(_(O(ea,o)),0,b(ea)),r=i[2],y=B(r);return[0,s,[sa(n,{[Z]:null,[X]:j},Z,(a=>x(y,a)&&a==r)),sa(c,{[aa]:null,[X]:j,deleteEmptyColumns:0,deleteEmptyTable:0},aa,((a,t)=>x(y,t)&&t==r)),i],y]})(e);return(r?z:K)(a,s,(a=>[setInterval((async()=>{try{const t=(await s(na+ca))[0][ca],e=(await s(na+oa))[0][oa];t==(o??=t)&&e==(i??=e)||(a(),o=t,i=e)}catch{}}),1e3*y),n((t=>u.has(t)?a():0))]),(([a,t])=>{clearInterval(a),o=i=null,c(t)}),w,T(u))},ra=(a,t,e,s)=>ia(a,s,(async(a,t=[])=>e.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}).map((a=>({...a})))),(a=>t.capi.sqlite3_update_hook(e,((t,e,s,n)=>a(n)),0)),(()=>t.capi.sqlite3_update_hook(e,(()=>0),0)));export{ra as createSqliteWasmPersister};
1
+ const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t)=>a.repeat(t),i=(a,t="")=>a.join(t),o=(a,t)=>a.map(t),c=a=>a.length,r=a=>0==c(a),l=(a,t)=>a.filter(t),w=(a,t,e)=>a.slice(t,e),y=(a,...t)=>a.push(...t),E=Promise,u=(a,t)=>a instanceof t,d=a=>null==a,p=(a,t,e)=>d(a)?e?.():t(a),v=t=>a(t)==s,T=async a=>E.all(a),m=(a,t)=>a?.has(t)??!1,A=a=>[...a?.values()??[]],L=(a,t)=>a?.delete(t),h=Object,R=h.keys,f=h.freeze,O=(a=[])=>h.fromEntries(a),N=(...a)=>h.assign({},...a),C=(a,t)=>o(h.entries(a),(([a,e])=>t(e,a))),S=a=>h.values(a),b=a=>c(R(a)),D=a=>(a=>u(a,h)&&a.constructor==h)(a)&&0==b(a),g=a=>new Map(a),I=a=>[...a?.keys()??[]],_=(a,t)=>a?.get(t),M=(a,t)=>o([...a?.entries()??[]],(([a,e])=>t(e,a))),F=(a,t,e)=>d(e)?(L(a,t),a):a?.set(t,e),$=(a,t,e,s=F)=>(C(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!d(((a,t)=>p(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),P=a=>new Set(Array.isArray(a)||d(a)?a:[a]),j=(a,t)=>a?.add(t),k="_",B="_id",H=a=>`"${a.replace(/"/g,'""')}"`,W="FROM pragma_table_",x="WHERE",q=(a,t)=>{const s=g();return[async()=>$(s,O(await T(o(await a("SELECT name "+W+"list WHERE schema='main'AND type='table'AND name IN("+U(t)+")",t),(async({name:t})=>[t,O(o(await a("SELECT name,type "+W+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>{return F(s,t,$((o=g,m(n=s,i=t)||F(n,i,o()),_(n,i)),e,((a,t,e)=>{e!=_(a,t)&&F(a,t,e)}),((a,t)=>F(a,t))));var n,i,o}),((a,t)=>F(s,t))),async(t,e)=>((a,t)=>!d(_(_(s,a),t)))(t,e)?O(l(o(await a("SELECT*FROM"+H(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!d(a)&&!D(t)))):{},async(t,n,c,w,E,u=!1)=>{const p=P();C(c??{},(a=>o(R(a??{}),(a=>j(p,a)))));const v=A(p);if(!u&&E&&r(v)&&m(s,t))return await a("DROP TABLE"+H(t)),void F(s,t);if(r(v)||m(s,t)){const e=_(s,t),i=P(I(e));await T([...o(v,(async s=>{L(i,s)||(await a(`ALTER TABLE${H(t)}ADD${H(s)}`),F(e,s,""))})),...!u&&w?o(A(i),(async s=>{s!=n&&(await a(`ALTER TABLE${H(t)}DROP${H(s)}`),F(e,s))})):[]])}else await a(`CREATE TABLE${H(t)}(${H(n)} PRIMARY KEY ON CONFLICT REPLACE${i(o(v,(a=>e+H(a))))});`),F(s,t,g([[n,""],...o(v,(a=>[a,""]))]));if(u)d(c)?await a("DELETE FROM"+H(t)+"WHERE 1"):await T(C(c,(async(e,s)=>{d(e)?await a("DELETE FROM"+H(t)+x+H(n)+"=?",[s]):r(v)||await J(a,t,n,R(e),[s,...S(e)])})));else if(r(v))m(s,t)&&await a("DELETE FROM"+H(t)+"WHERE 1");else{const e=l(I(_(s,t)),(a=>a!=n)),i=[],r=[];C(c??{},((a,t)=>{y(i,t,...o(e,(t=>a?.[t]))),y(r,t)})),await J(a,t,n,e,i),await a("DELETE FROM"+H(t)+x+H(n)+"NOT IN("+U(r)+")",r)}}]},J=async(a,t,s,r,l)=>await a("INSERT INTO"+H(t)+"("+H(s)+i(o(r,(a=>e+H(a))))+")VALUES"+n(`,(?${n(",?",c(r))})`,c(l)/(c(r)+1)).substring(1)+"ON CONFLICT("+H(s)+")DO UPDATE SET"+i(o(r,(a=>H(a)+"=excluded."+H(a))),e),l),U=a=>i(o(a,(()=>"?")),e),V=JSON.parse,Y=(a,t,e,s,n)=>{let i,o,c,r=0,l=0,w=0;const E=[],u=async a=>(2!=r&&(r=1,await v.schedule((async()=>{await a(),r=0}))),v),v={load:async(e,s)=>await u((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(v.stopAutoLoad(),await v.load(e,n),w=1,c=s((async(e,s)=>await u((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}})))),v),stopAutoLoad:()=>(w&&(n(c),c=void 0,w=0),v),save:async t=>(1!=r&&(r=2,await v.schedule((async()=>{try{await e(a.getContent,t)}catch{}r=0}))),v),startAutoSave:async()=>(await v.stopAutoSave().save(),i=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();D(e)&&D(s)||v.save((()=>[e,s]))})),v),stopAutoSave:()=>(p(i,a.delListener),v),schedule:async(...a)=>(y(E,...a),await(async()=>{if(!l){for(l=1;!d((a=E,o=a.shift()));)try{await o()}catch{}l=0}var a})(),v),getStore:()=>a,destroy:()=>v.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return f(v)},z="store",K=(a,t,e,s,[n],i)=>{const[o,c,r]=q(t,i),l=Y(a,(async()=>(await o(),V((await c(n,B))[k]?.[z]))),(async a=>l.schedule(o,(async()=>{var t;await r(n,B,{[k]:{[z]:(t=a(),JSON.stringify(t,((a,t)=>u(t,Map)?h.fromEntries([...t]):t)))}},!0,!0)}))),e,s);return l},G=(a,t,e,s,[n,i,[o,c,r]],w)=>{const[y,E,u]=q(t,w),p=async(a,t)=>await T(M(i,(async([e,s,n,i],o)=>{const c=a[o];t&&void 0===c||await u(e,s,c,n,i,t)}))),v=async(a,t)=>c?await u(r,B,{[k]:a},!0,!0,t):null;return Y(a,(async()=>{await y();const a=await(async()=>O(l(await T(M(n,(async([a,t],e)=>[a,await E(e,t)]))),(a=>!D(a[1])))))(),t=await(async()=>o?(await E(r,B))[k]:{})();return D(a)&&d(t)?void 0:[a,t]}),(async(a,t)=>{if(await y(),d(t)){const[t,e]=a();await p(t),await v(e)}else{const[a,e]=t();await p(a,!0),await v(e,!0)}}),e,s)},Q="json",X="autoLoadIntervalSeconds",Z="rowIdColumnName",aa="tableId",ta="tableName",ea={mode:Q,[X]:1},sa={load:0,save:0,[ta]:t+"_values"},na=(a,t,e,s)=>{const n=g();return C(a,((a,i)=>{const o=w(S(N(t,v(a)?{[e]:a}:a)),0,b(t));d(o[0])||s(i,o[0])||F(n,i,o)})),n},ia="pragma ",oa="data_version",ca="schema_version",ra=(a,e,s,n,i,o)=>{let c,r;const[l,y,E,u]=(a=>{const e=(a=>N(ea,v(a)?{storeTableName:a}:a??{}))(a),s=e[X];if(e.mode==Q){const{storeTableName:a=t}=e;return[1,s,[a],P(a)]}const{tables:{load:n={},save:i={}}={},values:o={}}=e,c=w(S(N(sa,o)),0,b(sa)),r=c[2],l=P(r);return[0,s,[na(n,{[aa]:null,[Z]:B},aa,(a=>j(l,a)&&a==r)),na(i,{[ta]:null,[Z]:B,deleteEmptyColumns:0,deleteEmptyTable:0},ta,((a,t)=>j(l,t)&&t==r)),c],l]})(e);return(l?K:G)(a,o?async(a,t)=>(o(a,t),await s(a,t)):s,(a=>[setInterval((async()=>{try{const t=(await s(ia+oa))[0][oa],e=(await s(ia+ca))[0][ca];t==(c??=t)&&e==(r??=e)||(a(),c=t,r=e)}catch{}}),1e3*y),n((t=>u.has(t)?a():0))]),(([a,t])=>{clearInterval(a),c=r=null,i(t)}),E,A(u))},la=(a,t,e,s,n)=>ra(a,s,(async(a,t=[])=>e.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}).map((a=>({...a})))),(a=>t.capi.sqlite3_update_hook(e,((t,e,s,n)=>a(n)),0)),(()=>t.capi.sqlite3_update_hook(e,(()=>0),0)),n);export{la as createSqliteWasmPersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t="")=>a.join(t),c=(a,t)=>a.map(t),o=a=>a.length,i=a=>0==o(a),r=(a,t)=>a.filter(t),l=(a,t,e)=>a.slice(t,e),y=(a,...t)=>a.push(...t),w=Promise,u=JSON.parse,d=(a,t)=>a instanceof t,E=a=>null==a,v=(a,t,e)=>E(a)?e?.():t(a),m=t=>a(t)==s,A=async a=>w.all(a),T=(a,t)=>a?.has(t)??!1,p=a=>[...a?.values()??[]],L=(a,t)=>a?.delete(t),h=Object,f=h.keys,N=h.freeze,C=(a=[])=>h.fromEntries(a),O=(...a)=>h.assign({},...a),S=(a,t)=>(delete a[t],a),R=(a,t)=>c(h.entries(a),(([a,e])=>t(e,a))),g=a=>h.values(a),I=a=>o(f(a)),D=a=>(a=>d(a,h)&&a.constructor==h)(a)&&0==I(a),b=a=>new Map(a),$=a=>[...a?.keys()??[]],_=(a,t)=>a?.get(t),F=(a,t)=>c([...a?.entries()??[]],(([a,e])=>t(e,a))),M=(a,t,e)=>E(e)?(L(a,t),a):a?.set(t,e),P=(a,t,e,s=M)=>(R(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!E(((a,t)=>v(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),B="_id",j=a=>`"${a.replace(/"/g,'""')}"`,k=a=>new Set(Array.isArray(a)||E(a)?a:[a]),x=(a,t)=>a?.add(t),H="SELECT*FROM",J="FROM pragma_table_",U="WHERE",W=(a,t)=>{const s=b(),l=(a,t)=>!E(_(_(s,a),t)),w=async(t,l,w,u,d)=>{const E=k();R(d??{},(a=>c(f(a),(a=>x(E,a)))));const v=p(E);if(i(v)&&T(s,t)&&u)return await a("DROP TABLE"+j(t)),void M(s,t);if(i(v)||T(s,t)){const e=_(s,t),n=k($(e));await A([...c(v,(async s=>{L(n,s)||(await a(`ALTER TABLE${j(t)}ADD${j(s)}`),M(e,s,""))})),...w?c(p(n),(async s=>{s!=l&&(await a(`ALTER TABLE${j(t)}DROP${j(s)}`),M(e,s))})):[]])}else await a(`CREATE TABLE${j(t)}(${j(l)} PRIMARY KEY ON CONFLICT REPLACE${n(c(v,(a=>e+j(a))))});`),M(s,t,b([[l,""],...c(v,(a=>[a,""]))]));if(i(v))T(s,t)&&await a("DELETE FROM"+j(t));else{const i=[],w=[],u=[],E=r($(_(s,t)),(a=>a!=l));R(d,((a,t)=>{var e;y(i,`(?${e=o(E),",?".repeat(e)})`),y(w,t,...c(E,(t=>a[t]))),y(u,t)})),await a("INSERT INTO"+j(t)+"("+j(l)+n(c(E,(a=>e+j(a))))+")VALUES"+n(i,e)+"ON CONFLICT("+j(l)+")DO UPDATE SET"+n(c(E,(a=>j(a)+"=excluded."+j(a))),e),w),await a("DELETE FROM"+j(t)+U+j(l)+"NOT IN("+Y(u)+")",u)}};return[async()=>P(s,C(await A(c(await a("SELECT name "+J+"list WHERE schema='main'AND type='table'AND name IN("+Y(t)+")",t),(async({name:t})=>[t,C(c(await a("SELECT name,type "+J+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>{return M(s,t,P((o=b,T(n=s,c=t)||M(n,c,o()),_(n,c)),e,((a,t,e)=>{e!=_(a,t)&&M(a,t,e)}),((a,t)=>M(a,t))));var n,c,o}),((a,t)=>M(s,t))),async(t,e)=>{const s=l(t,e)?await a(H+j(t)+U+j(e)+"=?",["_"]):[];return i(s)?null:S(s[0],e)},async(a,t,e,s)=>await w(a,t,!0,!0,{[e]:s}),async(t,e)=>l(t,e)?C(r(c(await a(H+j(t)),(a=>[a[e],S({...a},e)])),(([a,t])=>!E(a)&&!D(t)))):{},w]},Y=a=>n(c(a,(()=>"?")),e),z=(a,t,e,s,n)=>{let c,o,i,r=0,l=0,w=0;const u=[],d=async a=>(2!=r&&(r=1,await m.schedule((async()=>{await a(),r=0}))),m),m={load:async(e,s)=>await d((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(m.stopAutoLoad(),await m.load(e,n),w=1,i=s((async(e,s)=>await d((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}})))),m),stopAutoLoad:()=>(w&&(n(i),i=void 0,w=0),m),save:async t=>(1!=r&&(r=2,await m.schedule((async()=>{try{await e(a.getContent,t)}catch{}r=0}))),m),startAutoSave:async()=>(await m.stopAutoSave().save(),c=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();D(e)&&D(s)||m.save((()=>[e,s]))})),m),stopAutoSave:()=>(v(c,a.delListener),m),schedule:async(...a)=>(y(u,...a),await(async()=>{if(!l){for(l=1;!E((a=u,o=a.shift()));)try{await o()}catch{}l=0}var a})(),m),getStore:()=>a,destroy:()=>m.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return N(m)},K="store",V=(a,t,e,s,[n],c)=>{const[o,i,r]=W(t,c),l=z(a,(async()=>(await o(),u((await i(n,B)??{})[K]))),(async a=>l.schedule(o,(async()=>{var t;await r(n,B,"_",{[K]:(t=a(),JSON.stringify(t,((a,t)=>{return d(t,Map)?(e=(a,[t,e])=>(a[t]=e,a),s={},[...t].reduce(e,s)):t;var e,s})))})}))),e,s);return l},q=(a,t,e,s,[n,c,[o,i,l]],y)=>{const[w,u,d,v,m]=W(t,y);return z(a,(async()=>{await w();const a=await(async()=>C(r(await A(F(n,(async([a,t],e)=>[a,await v(e,t)]))),(a=>!D(a[1])))))(),t=await(async()=>o?await u(l,B):{})();return D(a)&&E(t)?void 0:[a,t]}),(async a=>{const[t,e]=a();await w(),await(async a=>await A(F(c,(async([t,e,s,n],c)=>await m(t,e,s,n,a[c])))))(t),await(async a=>i?await d(l,B,"_",a):null)(e)}),e,s)},G="json",Q="autoLoadIntervalSeconds",X="rowIdColumnName",Z="tableId",aa="tableName",ta={mode:G,[Q]:1},ea={load:0,save:0,[aa]:t+"_values"},sa=(a,t,e,s)=>{const n=b();return R(a,((a,c)=>{const o=l(g(O(t,m(a)?{[e]:a}:a)),0,I(t));E(o[0])||s(c,o[0])||M(n,c,o)})),n},na="pragma ",ca="data_version",oa="schema_version",ia=(a,e,s,n,c)=>{let o,i;const[r,y,w,u]=(a=>{const e=(a=>O(ta,m(a)?{storeTableName:a}:a??{}))(a),s=e[Q];if(e.mode==G){const{storeTableName:a=t}=e;return[1,s,[a],k(a)]}const{tables:{load:n={},save:c={}}={},values:o={}}=e,i=l(g(O(ea,o)),0,I(ea)),r=i[2],y=k(r);return[0,s,[sa(n,{[Z]:null,[X]:B},Z,(a=>x(y,a)&&a==r)),sa(c,{[aa]:null,[X]:B,deleteEmptyColumns:0,deleteEmptyTable:0},aa,((a,t)=>x(y,t)&&t==r)),i],y]})(e);return(r?V:q)(a,s,(a=>[setInterval((async()=>{try{const t=(await s(na+ca))[0][ca],e=(await s(na+oa))[0][oa];t==(o??=t)&&e==(i??=e)||(a(),o=t,i=e)}catch{}}),1e3*y),n((t=>u.has(t)?a():0))]),(([a,t])=>{clearInterval(a),o=i=null,c(t)}),w,p(u))},ra="change",la=(a,t,e)=>ia(a,e,((a,e=[])=>new w(((s,n)=>t.all(a,e,((a,t)=>a?n(a):s(t.map((a=>({...a}))))))))),(a=>{const e=(t,e,s)=>a(s);return t.on(ra,e),e}),(a=>t.off(ra,a)));export{la as createSqlite3Persister};
1
+ const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t)=>a.repeat(t),i=(a,t="")=>a.join(t),c=(a,t)=>a.map(t),o=a=>a.length,r=a=>0==o(a),l=(a,t)=>a.filter(t),w=(a,t,e)=>a.slice(t,e),y=(a,...t)=>a.push(...t),E=Promise,u=(a,t)=>a instanceof t,d=a=>null==a,v=(a,t,e)=>d(a)?e?.():t(a),T=t=>a(t)==s,m=async a=>E.all(a),A=(a,t)=>a?.has(t)??!1,L=a=>[...a?.values()??[]],p=(a,t)=>a?.delete(t),f=Object,h=f.keys,R=f.freeze,O=(a=[])=>f.fromEntries(a),N=(...a)=>f.assign({},...a),C=(a,t)=>c(f.entries(a),(([a,e])=>t(e,a))),S=a=>f.values(a),g=a=>o(h(a)),D=a=>(a=>u(a,f)&&a.constructor==f)(a)&&0==g(a),I=a=>new Map(a),b=a=>[...a?.keys()??[]],F=(a,t)=>a?.get(t),M=(a,t)=>c([...a?.entries()??[]],(([a,e])=>t(e,a))),$=(a,t,e)=>d(e)?(p(a,t),a):a?.set(t,e),_=(a,t,e,s=$)=>(C(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!d(((a,t)=>v(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),P=a=>new Set(Array.isArray(a)||d(a)?a:[a]),B=(a,t)=>a?.add(t),H="_",W="_id",j=a=>`"${a.replace(/"/g,'""')}"`,k="FROM pragma_table_",x="WHERE",J=(a,t)=>{const s=I();return[async()=>_(s,O(await m(c(await a("SELECT name "+k+"list WHERE schema='main'AND type='table'AND name IN("+Y(t)+")",t),(async({name:t})=>[t,O(c(await a("SELECT name,type "+k+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>{return $(s,t,_((c=I,A(n=s,i=t)||$(n,i,c()),F(n,i)),e,((a,t,e)=>{e!=F(a,t)&&$(a,t,e)}),((a,t)=>$(a,t))));var n,i,c}),((a,t)=>$(s,t))),async(t,e)=>((a,t)=>!d(F(F(s,a),t)))(t,e)?O(l(c(await a("SELECT*FROM"+j(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!d(a)&&!D(t)))):{},async(t,n,o,w,E,u=!1)=>{const v=P();C(o??{},(a=>c(h(a??{}),(a=>B(v,a)))));const T=L(v);if(!u&&E&&r(T)&&A(s,t))return await a("DROP TABLE"+j(t)),void $(s,t);if(r(T)||A(s,t)){const e=F(s,t),i=P(b(e));await m([...c(T,(async s=>{p(i,s)||(await a(`ALTER TABLE${j(t)}ADD${j(s)}`),$(e,s,""))})),...!u&&w?c(L(i),(async s=>{s!=n&&(await a(`ALTER TABLE${j(t)}DROP${j(s)}`),$(e,s))})):[]])}else await a(`CREATE TABLE${j(t)}(${j(n)} PRIMARY KEY ON CONFLICT REPLACE${i(c(T,(a=>e+j(a))))});`),$(s,t,I([[n,""],...c(T,(a=>[a,""]))]));if(u)d(o)?await a("DELETE FROM"+j(t)+"WHERE 1"):await m(C(o,(async(e,s)=>{d(e)?await a("DELETE FROM"+j(t)+x+j(n)+"=?",[s]):r(T)||await U(a,t,n,h(e),[s,...S(e)])})));else if(r(T))A(s,t)&&await a("DELETE FROM"+j(t)+"WHERE 1");else{const e=l(b(F(s,t)),(a=>a!=n)),i=[],r=[];C(o??{},((a,t)=>{y(i,t,...c(e,(t=>a?.[t]))),y(r,t)})),await U(a,t,n,e,i),await a("DELETE FROM"+j(t)+x+j(n)+"NOT IN("+Y(r)+")",r)}}]},U=async(a,t,s,r,l)=>await a("INSERT INTO"+j(t)+"("+j(s)+i(c(r,(a=>e+j(a))))+")VALUES"+n(`,(?${n(",?",o(r))})`,o(l)/(o(r)+1)).substring(1)+"ON CONFLICT("+j(s)+")DO UPDATE SET"+i(c(r,(a=>j(a)+"=excluded."+j(a))),e),l),Y=a=>i(c(a,(()=>"?")),e),z=JSON.parse,K=(a,t,e,s,n)=>{let i,c,o,r=0,l=0,w=0;const E=[],u=async a=>(2!=r&&(r=1,await T.schedule((async()=>{await a(),r=0}))),T),T={load:async(e,s)=>await u((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(T.stopAutoLoad(),await T.load(e,n),w=1,o=s((async(e,s)=>await u((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}})))),T),stopAutoLoad:()=>(w&&(n(o),o=void 0,w=0),T),save:async t=>(1!=r&&(r=2,await T.schedule((async()=>{try{await e(a.getContent,t)}catch{}r=0}))),T),startAutoSave:async()=>(await T.stopAutoSave().save(),i=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();D(e)&&D(s)||T.save((()=>[e,s]))})),T),stopAutoSave:()=>(v(i,a.delListener),T),schedule:async(...a)=>(y(E,...a),await(async()=>{if(!l){for(l=1;!d((a=E,c=a.shift()));)try{await c()}catch{}l=0}var a})(),T),getStore:()=>a,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return R(T)},V="store",q=(a,t,e,s,[n],i)=>{const[c,o,r]=J(t,i),l=K(a,(async()=>(await c(),z((await o(n,W))[H]?.[V]))),(async a=>l.schedule(c,(async()=>{var t;await r(n,W,{[H]:{[V]:(t=a(),JSON.stringify(t,((a,t)=>u(t,Map)?f.fromEntries([...t]):t)))}},!0,!0)}))),e,s);return l},G=(a,t,e,s,[n,i,[c,o,r]],w)=>{const[y,E,u]=J(t,w),v=async(a,t)=>await m(M(i,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await u(e,s,o,n,i,t)}))),T=async(a,t)=>o?await u(r,W,{[H]:a},!0,!0,t):null;return K(a,(async()=>{await y();const a=await(async()=>O(l(await m(M(n,(async([a,t],e)=>[a,await E(e,t)]))),(a=>!D(a[1])))))(),t=await(async()=>c?(await E(r,W))[H]:{})();return D(a)&&d(t)?void 0:[a,t]}),(async(a,t)=>{if(await y(),d(t)){const[t,e]=a();await v(t),await T(e)}else{const[a,e]=t();await v(a,!0),await T(e,!0)}}),e,s)},Q="json",X="autoLoadIntervalSeconds",Z="rowIdColumnName",aa="tableId",ta="tableName",ea={mode:Q,[X]:1},sa={load:0,save:0,[ta]:t+"_values"},na=(a,t,e,s)=>{const n=I();return C(a,((a,i)=>{const c=w(S(N(t,T(a)?{[e]:a}:a)),0,g(t));d(c[0])||s(i,c[0])||$(n,i,c)})),n},ia="pragma ",ca="data_version",oa="schema_version",ra=(a,e,s,n,i,c)=>{let o,r;const[l,y,E,u]=(a=>{const e=(a=>N(ea,T(a)?{storeTableName:a}:a??{}))(a),s=e[X];if(e.mode==Q){const{storeTableName:a=t}=e;return[1,s,[a],P(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=e,o=w(S(N(sa,c)),0,g(sa)),r=o[2],l=P(r);return[0,s,[na(n,{[aa]:null,[Z]:W},aa,(a=>B(l,a)&&a==r)),na(i,{[ta]:null,[Z]:W,deleteEmptyColumns:0,deleteEmptyTable:0},ta,((a,t)=>B(l,t)&&t==r)),o],l]})(e);return(l?q:G)(a,c?async(a,t)=>(c(a,t),await s(a,t)):s,(a=>[setInterval((async()=>{try{const t=(await s(ia+ca))[0][ca],e=(await s(ia+oa))[0][oa];t==(o??=t)&&e==(r??=e)||(a(),o=t,r=e)}catch{}}),1e3*y),n((t=>u.has(t)?a():0))]),(([a,t])=>{clearInterval(a),o=r=null,i(t)}),E,L(u))},la="change",wa=(a,t,e,s)=>ra(a,e,((a,e=[])=>new E(((s,n)=>t.all(a,e,((a,t)=>a?n(a):s(t.map((a=>({...a}))))))))),(a=>{const e=(t,e,s)=>a(s);return t.on(la,e),e}),(a=>t.off(la,a)),s);export{wa as createSqlite3Persister};
@@ -1 +1 @@
1
- const e=e=>typeof e,t="",n=e(t),r=(e,t)=>e.forEach(t),s=e=>e.length,o=(e,...t)=>e.push(...t),a=e=>null==e,i=(e,t,n)=>a(e)?n?.():t(e),l=e=>Array.isArray(e),d=Object.freeze,c=(e,t)=>e?.has(t)??!1,u=e=>a(e)||0==(e=>e.size)(e),R=e=>[...e?.values()??[]],h=e=>e.clear(),f=(e,t)=>e?.forEach(t),L=(e,t)=>e?.delete(t),g=e=>new Map(e),w=(e,t)=>e?.get(t),p=(e,t)=>f(e,((e,n)=>t(n,e))),I=(e,t,n)=>a(n)?(L(e,t),e):e?.set(t,n),v=(e,t,n)=>(c(e,t)||I(e,t,n()),w(e,t)),y=(e,t,n,r,o=0)=>i((n?v:w)(e,t[o],o>s(t)-2?n:g),(a=>{if(o>s(t)-2)return r?.(a)&&I(e,t[o]),a;const i=y(a,t,n,r,o+1);return u(a)&&I(e,t[o]),i})),b=e=>new Set(l(e)||a(e)?e:[e]),k=(e,t)=>e?.add(t),E=/^\d+$/,T=(T=>{const m=new WeakMap;return T=>(m.has(T)||m.set(T,(T=>{const m=g(),S=g(),z=g(),A=g(),[D,M,j,x,C,O,,,W,$,q]=((e,n,o)=>{const d=e.hasRow,y=g(),E=g(),T=g(),m=g(),S=g(),z=(t,n,...s)=>{const o=v(S,t,b);return r(s,(t=>k(o,t)&&n&&e.callListener(t))),s},A=(t,...n)=>i(w(S,t),(o=>{r(0==s(n)?R(o):n,(t=>{e.delListener(t),L(o,t)})),u(o)&&I(S,t)})),D=(e,t)=>{I(y,e,t),c(E,e)||(I(E,e,[g(),g(),g(),g()]),I(T,e,g()),I(m,e,g()))},M=e=>{I(y,e),I(E,e),I(T,e),I(m,e),A(e)};return[()=>e,()=>{return e=y,[...e?.keys()??[]];var e},e=>p(E,e),e=>c(E,e),e=>w(y,e),e=>w(E,e),(e,t)=>I(E,e,t),D,(n,o,i,u,R)=>{D(n,o);const L=g(),v=g(),y=w(T,n),b=w(m,n),k=n=>{const r=t=>e.getCell(o,n,t),i=w(y,n),c=d(o,n)?(h=u(r,n),a(h)?void 0:h+t):void 0;var h,f,g,p;if(i===c||l(i)&&l(c)&&(g=c,s(f=i)===s(g)&&(p=(e,t)=>g[t]===e,f.every(p)))||I(L,n,[i,c]),!a(R)){const e=w(b,n),t=d(o,n)?R(r,n):void 0;e!=t&&I(v,n,t)}},E=e=>{i((()=>{f(L,(([,e],t)=>I(y,t,e))),f(v,((e,t)=>I(b,t,e)))}),L,v,y,b,e),h(L),h(v)};p(y,k),e.hasTable(o)&&r(e.getRowIds(o),(e=>{c(y,e)||k(e)})),E(!0),A(n),z(n,0,e.addRowListener(o,null,((e,t,n)=>k(n))),e.addTableListener(o,(()=>E())))},M,()=>p(S,M),z,A]})(T),[B,F,G]=(e=>{let n;const[l,d]=(()=>{const e=[];let n=0;return[r=>(r?e.shift():null)??t+n++,t=>{E.test(t)&&s(e)<1e3&&o(e,t)}]})(),c=g();return[(e,r,s,o=[],a=(()=>[]))=>{n??=N;const i=l(1);return I(c,i,[e,r,s,o,a]),k(y(r,s??[t],b),i),i},(e,a,...i)=>r(((e,n=[t])=>{const a=[],i=(e,t)=>t==s(n)?o(a,e):null===n[t]?f(e,(e=>i(e,t+1))):r([n[t],null],(n=>i(w(e,n),t+1)));return i(e,0),a})(e,a),(e=>f(e,(e=>w(c,e)[0](n,...a??[],...i))))),e=>i(w(c,e),(([,n,r])=>(y(n,r??[t],void 0,(t=>(L(t,e),u(t)?1:0))),I(c,e),d(e),r))),e=>i(w(c,e),(([e,,t=[],o,i])=>{const l=(...d)=>{const c=s(d);c==s(t)?e(n,...d,...i(d)):a(t[c])?r(o[c]?.(...d)??[],(e=>l(...d,e))):l(...d,t[c])};l()}))]})(),H=(e,t,n)=>i(O(e),(([r,,s])=>{if(!c(s,t)){const o=b();if(C(e)!=K(e))k(o,t);else{let e=t;for(;!a(e)&&!c(o,e);)k(o,e),e=w(r,e)}if(n)return o;I(s,t,o)}return w(s,t)})),J=(e,t)=>i(O(e),(([,,e])=>I(e,t))),K=e=>w(m,e),N={setRelationshipDefinition:(r,s,o,l)=>{return I(m,r,o),W(r,s,((e,t)=>{const n=b(),s=b(),o=b(),[l,d]=O(r);f(t,(([e,t],R)=>{a(e)||(k(s,e),i(w(d,e),(t=>{L(t,R),u(t)&&I(d,e)}))),a(t)||(k(s,t),c(d,t)||I(d,t,b()),k(w(d,t),R)),k(n,R),I(l,R,t),p(w(A,r),(e=>{c(H(r,e),R)&&k(o,e)}))})),e(),f(n,(e=>F(S,[r,e]))),f(s,(e=>F(z,[r,e]))),f(o,(e=>{J(r,e),F(A,[r,e])}))}),e(d=l)==n?e=>e(d):d??(()=>t)),N;var d},delRelationshipDefinition:e=>(I(m,e),$(e),N),getStore:D,getRelationshipIds:M,forEachRelationship:e=>j((t=>e(t,(e=>T.forEachRow(C(t),e))))),hasRelationship:x,getLocalTableId:C,getRemoteTableId:K,getRemoteRowId:(e,t)=>w(O(e)?.[0],t),getLocalRowIds:(e,t)=>R(w(O(e)?.[1],t)),getLinkedRowIds:(e,t)=>a(O(e))?[t]:R(H(e,t,!0)),addRemoteRowIdListener:(e,t,n)=>B(n,S,[e,t]),addLocalRowIdsListener:(e,t,n)=>B(n,z,[e,t]),addLinkedRowIdsListener:(e,t,n)=>(H(e,t),B(n,A,[e,t])),delListener:e=>(J(...G(e)),N),destroy:q,getListenerStats:()=>({})};return d(N)})(T)),m.get(T))})();export{T as createRelationships};
1
+ const e=e=>typeof e,t="",n=e(t),r=e=>null==e,s=(e,t,n)=>r(e)?n?.():t(e),o=e=>Array.isArray(e),a=(e,t)=>e.forEach(t),i=e=>e.length,l=(e,...t)=>e.push(...t),d=Object.freeze,c=(e,t)=>e?.has(t)??!1,u=e=>r(e)||0==(e=>e.size)(e),R=e=>[...e?.values()??[]],h=e=>e.clear(),f=(e,t)=>e?.forEach(t),L=(e,t)=>e?.delete(t),g=e=>new Map(e),w=(e,t)=>e?.get(t),p=(e,t)=>f(e,((e,n)=>t(n,e))),I=(e,t,n)=>r(n)?(L(e,t),e):e?.set(t,n),v=(e,t,n)=>(c(e,t)||I(e,t,n()),w(e,t)),y=(e,t,n,r,o=0)=>s((n?v:w)(e,t[o],o>i(t)-2?n:g),(s=>{if(o>i(t)-2)return r?.(s)&&I(e,t[o]),s;const a=y(s,t,n,r,o+1);return u(s)&&I(e,t[o]),a})),b=e=>new Set(o(e)||r(e)?e:[e]),k=(e,t)=>e?.add(t),E=/^\d+$/,T=(T=>{const m=new WeakMap;return T=>(m.has(T)||m.set(T,(T=>{const m=g(),S=g(),z=g(),A=g(),[D,M,j,x,C,O,,,W,$,q]=((e,n,l)=>{const d=e.hasRow,y=g(),E=g(),T=g(),m=g(),S=g(),z=(t,n,...r)=>{const s=v(S,t,b);return a(r,(t=>k(s,t)&&n&&e.callListener(t))),r},A=(t,...n)=>s(w(S,t),(r=>{a(0==i(n)?R(r):n,(t=>{e.delListener(t),L(r,t)})),u(r)&&I(S,t)})),D=(e,t)=>{I(y,e,t),c(E,e)||(I(E,e,[g(),g(),g(),g()]),I(T,e,g()),I(m,e,g()))},M=e=>{I(y,e),I(E,e),I(T,e),I(m,e),A(e)};return[()=>e,()=>{return e=y,[...e?.keys()??[]];var e},e=>p(E,e),e=>c(E,e),e=>w(y,e),e=>w(E,e),(e,t)=>I(E,e,t),D,(n,s,l,u,R)=>{D(n,s);const L=g(),v=g(),y=w(T,n),b=w(m,n),k=n=>{const a=t=>e.getCell(s,n,t),l=w(y,n),c=d(s,n)?(h=u(a,n),r(h)?void 0:h+t):void 0;var h,f,g,p;if(l===c||o(l)&&o(c)&&(g=c,i(f=l)===i(g)&&(p=(e,t)=>g[t]===e,f.every(p)))||I(L,n,[l,c]),!r(R)){const e=w(b,n),t=d(s,n)?R(a,n):void 0;e!=t&&I(v,n,t)}},E=e=>{l((()=>{f(L,(([,e],t)=>I(y,t,e))),f(v,((e,t)=>I(b,t,e)))}),L,v,y,b,e),h(L),h(v)};p(y,k),e.hasTable(s)&&a(e.getRowIds(s),(e=>{c(y,e)||k(e)})),E(!0),A(n),z(n,0,e.addRowListener(s,null,((e,t,n)=>k(n))),e.addTableListener(s,(()=>E())))},M,()=>p(S,M),z,A]})(T),[B,F,G]=(e=>{let n;const[o,d]=(()=>{const e=[];let n=0;return[r=>(r?e.shift():null)??t+n++,t=>{E.test(t)&&i(e)<1e3&&l(e,t)}]})(),c=g();return[(e,r,s,a=[],i=(()=>[]))=>{n??=N;const l=o(1);return I(c,l,[e,r,s,a,i]),k(y(r,s??[t],b),l),l},(e,r,...s)=>a(((e,n=[t])=>{const r=[],s=(e,t)=>t==i(n)?l(r,e):null===n[t]?f(e,(e=>s(e,t+1))):a([n[t],null],(n=>s(w(e,n),t+1)));return s(e,0),r})(e,r),(e=>f(e,(e=>w(c,e)[0](n,...r??[],...s))))),e=>s(w(c,e),(([,n,r])=>(y(n,r??[t],void 0,(t=>(L(t,e),u(t)?1:0))),I(c,e),d(e),r))),e=>s(w(c,e),(([e,,t=[],s,o])=>{const l=(...d)=>{const c=i(d);c==i(t)?e(n,...d,...o(d)):r(t[c])?a(s[c]?.(...d)??[],(e=>l(...d,e))):l(...d,t[c])};l()}))]})(),H=(e,t,n)=>s(O(e),(([s,,o])=>{if(!c(o,t)){const a=b();if(C(e)!=K(e))k(a,t);else{let e=t;for(;!r(e)&&!c(a,e);)k(a,e),e=w(s,e)}if(n)return a;I(o,t,a)}return w(o,t)})),J=(e,t)=>s(O(e),(([,,e])=>I(e,t))),K=e=>w(m,e),N={setRelationshipDefinition:(o,a,i,l)=>{return I(m,o,i),W(o,a,((e,t)=>{const n=b(),a=b(),i=b(),[l,d]=O(o);f(t,(([e,t],R)=>{r(e)||(k(a,e),s(w(d,e),(t=>{L(t,R),u(t)&&I(d,e)}))),r(t)||(k(a,t),c(d,t)||I(d,t,b()),k(w(d,t),R)),k(n,R),I(l,R,t),p(w(A,o),(e=>{c(H(o,e),R)&&k(i,e)}))})),e(),f(n,(e=>F(S,[o,e]))),f(a,(e=>F(z,[o,e]))),f(i,(e=>{J(o,e),F(A,[o,e])}))}),e(d=l)==n?e=>e(d):d??(()=>t)),N;var d},delRelationshipDefinition:e=>(I(m,e),$(e),N),getStore:D,getRelationshipIds:M,forEachRelationship:e=>j((t=>e(t,(e=>T.forEachRow(C(t),e))))),hasRelationship:x,getLocalTableId:C,getRemoteTableId:K,getRemoteRowId:(e,t)=>w(O(e)?.[0],t),getLocalRowIds:(e,t)=>R(w(O(e)?.[1],t)),getLinkedRowIds:(e,t)=>r(O(e))?[t]:R(H(e,t,!0)),addRemoteRowIdListener:(e,t,n)=>B(n,S,[e,t]),addLocalRowIdsListener:(e,t,n)=>B(n,z,[e,t]),addLinkedRowIdsListener:(e,t,n)=>(H(e,t),B(n,A,[e,t])),delListener:e=>(J(...G(e)),N),destroy:q,getListenerStats:()=>({})};return d(N)})(T)),m.get(T))})();export{T as createRelationships};
Binary file
package/lib/store.js CHANGED
@@ -1 +1 @@
1
- const e=e=>typeof e,t="",s=e(t),l=e(!0),n=e(0),a=e(e),r="type",o="default",c="Ids",i="Table",d=i+"s",u=i+c,h="Row"+c,g="Cell",f=g+c,T="Value",V=T+"s",b=T+c,C=e=>t+e,v=(e,t)=>e.forEach(t),S=(e,t)=>e.map(t),w=e=>e.length,I=(e,t,s)=>e.slice(t,s),R=(e,...t)=>e.push(...t),y=e=>JSON.stringify(e,((e,t)=>{return p(t,Map)?(s=(e,[t,s])=>(e[t]=s,e),l={},[...t].reduce(s,l)):t;var s,l})),J=JSON.parse,m=isFinite,p=(e,t)=>e instanceof t,L=e=>null==e,E=(e,t,s)=>L(e)?s?.():t(e),F=e=>e==s||e==l,z=t=>e(t)==a,O=Object,k=O.keys,A=O.isFrozen,M=O.freeze,N=e=>p(e,O)&&e.constructor==O,P=(e,t)=>!L(((e,t)=>E(e,(e=>e[t])))(e,t)),j=(e,t)=>(delete e[t],e),x=(e,t)=>S(O.entries(e),(([e,s])=>t(s,e))),D=e=>N(e)&&0==(e=>w(k(e)))(e),W=(e,t)=>e?.has(t)??!1,$=e=>L(e)||0==(e=>e.size)(e),q=e=>e.clear(),B=(e,t)=>e?.forEach(t),G=(e,t)=>e?.delete(t),H=e=>new Map(e),K=e=>[...e?.keys()??[]],Q=(e,t)=>e?.get(t),U=(e,t)=>B(e,((e,s)=>t(s,e))),X=(e,t,s)=>L(s)?(G(e,t),e):e?.set(t,s),Y=(e,t,s)=>(W(e,t)||X(e,t,s()),Q(e,t)),Z=(e,t,s,l=X)=>(x(t,((t,l)=>s(e,l,t))),U(e,(s=>P(t,s)?0:l(e,s))),e),_=(e,t,s)=>{const l={};return B(e,((e,n)=>{const a=t?t(e,n):e;!s?.(a,e)&&(l[n]=a)})),l},ee=(e,t,s)=>_(e,(e=>_(e,t,s)),D),te=(e,t,s)=>_(e,(e=>ee(e,t,s)),D),se=(e,t)=>{const s=H();return B(e,((e,l)=>s.set(l,t?.(e)??e))),s},le=e=>se(e,se),ne=e=>se(e,le),ae=(e,t,s,l,n=0)=>E((s?Y:Q)(e,t[n],n>w(t)-2?s:H),(a=>{if(n>w(t)-2)return l?.(a)&&X(e,t[n]),a;const r=ae(a,t,s,l,n+1);return $(a)&&X(e,t[n]),r})),re=e=>new Set(Array.isArray(e)||L(e)?e:[e]),oe=(e,t)=>e?.add(t),ce=/^\d+$/,ie=()=>{const e=[];let s=0;return[l=>(l?e.shift():null)??t+s++,t=>{ce.test(t)&&w(e)<1e3&&R(e,t)}]},de=e=>[e,e],ue=()=>[H(),H()],he=e=>[...e],ge=([e,t])=>e===t,fe=t=>{const s=e(t);return F(s)||s==n&&m(t)?s:void 0},Te=(e,t,s,l,n)=>L(n)?e.delCell(t,s,l,!0):e.setCell(t,s,l,n),Ve=(e,t,s)=>L(s)?e.delValue(t):e.setValue(t,s),be=(e,t,s)=>L(e)||!N(e)||D(e)||A(e)?(s?.(),!1):(x(e,((s,l)=>{t(s,l)||j(e,l)})),!D(e)),Ce=(e,t,s)=>X(e,t,Q(e,t)==-s?void 0:s),ve=()=>{let e,s,l=!1,a=!1,c=0;const m=H(),p=H(),O=H(),k=H(),A=H(),N=H(),ce=H(),Se=H(),we=H(),Ie=H(),Re=H(),ye=H(),Je=H(),me=re(),pe=H(),Le=H(),Ee=H(),Fe=H(),ze=ue(),Oe=ue(),ke=ue(),Ae=ue(),Me=ue(),Ne=ue(),Pe=ue(),je=ue(),xe=ue(),De=ue(),We=ue(),$e=ue(),qe=ue(),Be=ue(),Ge=H(),He=ue(),[Ke,Qe,Ue,Xe]=(e=>{let s;const[l,n]=ie(),a=H();return[(e,n,r,o=[],c=(()=>[]))=>{s??=is;const i=l(1);return X(a,i,[e,n,r,o,c]),oe(ae(n,r??[t],re),i),i},(e,l,...n)=>v(((e,s=[t])=>{const l=[],n=(e,t)=>t==w(s)?R(l,e):null===s[t]?B(e,(e=>n(e,t+1))):v([s[t],null],(s=>n(Q(e,s),t+1)));return n(e,0),l})(e,l),(e=>B(e,(e=>Q(a,e)[0](s,...l??[],...n))))),e=>E(Q(a,e),(([,s,l])=>(ae(s,l??[t],void 0,(t=>(G(t,e),$(t)?1:0))),X(a,e),n(e),l))),e=>E(Q(a,e),(([e,,t=[],l,n])=>{const a=(...r)=>{const o=w(r);o==w(t)?e(s,...r,...n(r)):L(t[o])?v(l[o]?.(...r)??[],(e=>a(...r,e))):a(...r,t[o])};a()}))]})(),Ye=e=>{if(!be(e,((e,t)=>[r,o].includes(t))))return!1;const t=e[r];return!(!F(t)&&t!=n||(fe(e[o])!=t&&j(e,o),0))},Ze=(t,s)=>(!e||W(Ie,s)||Lt(s))&&be(t,((e,t)=>_e(s,t,e)),(()=>Lt(s))),_e=(e,t,s,l)=>be(l?s:lt(s,e,t),((l,n)=>E(et(e,t,n,l),(e=>(s[n]=e,!0)),(()=>!1))),(()=>Lt(e,t))),et=(t,s,l,n)=>e?E(Q(Q(Ie,t),l),(e=>fe(n)!=e[r]?Lt(t,s,l,n,e[o]):n),(()=>Lt(t,s,l,n))):L(fe(n))?Lt(t,s,l,n):n,tt=(e,t)=>be(t?e:nt(e),((t,s)=>E(st(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>Et())),st=(e,t)=>s?E(Q(ye,e),(s=>fe(t)!=s[r]?Et(e,t,s[o]):t),(()=>Et(e,t))):L(fe(t))?Et(e,t):t,lt=(e,t,s)=>(E(Q(Re,t),(([l,n])=>{B(l,((t,s)=>{P(e,s)||(e[s]=t)})),B(n,(l=>{P(e,l)||Lt(t,s,l)}))})),e),nt=e=>(s&&(B(Je,((t,s)=>{P(e,s)||(e[s]=t)})),B(me,(t=>{P(e,t)||Et(t)}))),e),at=e=>Z(Ie,e,((e,t,s)=>{const l=H(),n=re();Z(Y(Ie,t,H),s,((e,t,s)=>{X(e,t,s),E(s[o],(e=>X(l,t,e)),(()=>oe(n,t)))})),X(Re,t,[l,n])}),((e,t)=>{X(Ie,t),X(Re,t)})),rt=e=>Z(ye,e,((e,t,s)=>{X(ye,t,s),E(s[o],(e=>X(Je,t,e)),(()=>oe(me,t)))}),((e,t)=>{X(ye,t),X(Je,t),G(me,t)})),ot=e=>D(e)?es():Ut(e),ct=e=>Z(Ee,e,((e,t,s)=>it(t,s)),((e,t)=>Ct(t))),it=(e,t)=>Z(Y(Ee,e,(()=>(It(e,1),X(pe,e,ie()),X(Le,e,H()),H()))),t,((t,s,l)=>dt(e,t,s,l)),((t,s)=>vt(e,t,s))),dt=(e,t,s,l,n)=>Z(Y(t,s,(()=>(Rt(e,s,1),H()))),l,((t,l,n)=>ut(e,s,t,l,n)),((l,a)=>St(e,t,s,l,a,n))),ut=(e,t,s,l,n)=>{W(s,l)||yt(e,t,l,1);const a=Q(s,l);n!==a&&(Jt(e,t,l,a,n),X(s,l,n))},ht=(e,t,s,l,n)=>E(Q(t,s),(t=>ut(e,s,t,l,n)),(()=>dt(e,t,s,lt({[l]:n},e,s)))),gt=e=>D(e)?ls():Xt(e),ft=e=>Z(Fe,e,((e,t,s)=>Tt(t,s)),((e,t)=>wt(t))),Tt=(e,t)=>{W(Fe,e)||mt(e,1);const s=Q(Fe,e);t!==s&&(pt(e,s,t),X(Fe,e,t))},Vt=(e,t)=>{const[s]=Q(pe,e),l=s(t);return W(Q(Ee,e),l)?Vt(e,t):l},bt=e=>Q(Ee,e)??it(e,{}),Ct=e=>it(e,{}),vt=(e,t,s)=>{const[,l]=Q(pe,e);l(s),dt(e,t,s,{},!0)},St=(e,t,s,l,n,a)=>{const r=Q(Q(Re,e)?.[0],n);if(!L(r)&&!a)return ut(e,s,l,n,r);const o=t=>{Jt(e,s,t,Q(l,t)),yt(e,s,t,-1),X(l,t)};L(r)?o(n):U(l,o),$(l)&&(Rt(e,s,-1),$(X(t,s))&&(It(e,-1),X(Ee,e),X(pe,e),X(Le,e)))},wt=e=>{const t=Q(Je,e);if(!L(t))return Tt(e,t);pt(e,Q(Fe,e)),mt(e,-1),X(Fe,e)},It=(e,t)=>Ce(m,e,t),Rt=(e,t,s)=>Ce(Y(O,e,H),t,s),yt=(e,t,s,l)=>{const n=Q(Le,e),a=Q(n,s)??0;(0==a&&1==l||1==a&&-1==l)&&Ce(Y(p,e,H),s,l),X(n,s,a!=-l?a+l:null),Ce(Y(Y(k,e,H),t,H),s,l)},Jt=(e,t,s,l,n)=>Y(Y(Y(A,e,H),t,H),s,(()=>[l,0]))[1]=n,mt=(e,t)=>Ce(N,e,t),pt=(e,t,s)=>Y(ce,e,(()=>[t,0]))[1]=s,Lt=(e,t,s,l,n)=>(R(Y(Y(Y(Se,e,H),t,H),s,(()=>[])),l),n),Et=(e,t,s)=>(R(Y(we,e,(()=>[])),t),s),Ft=(e,t,s)=>E(Q(Q(Q(A,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...de(Gt(e,t,s))])),zt=e=>E(Q(ce,e),(([e,t])=>[!0,e,t]),(()=>[!1,...de(Qt(e))])),Ot=e=>$(Se)||$(De[e])?0:B(e?ne(Se):Se,((t,s)=>B(t,((t,l)=>B(t,((t,n)=>Qe(De[e],[s,l,n],t))))))),kt=e=>$(we)||$(We[e])?0:B(e?se(we):we,((t,s)=>Qe(We[e],[s],t))),At=(e,t,s)=>{if(!$(t))return Qe(e,s,(()=>_(t))),1},Mt=e=>{const t=$(Ne[e]),s=$(je[e])&&$(Ae[e])&&$(Me[e])&&t&&$(Oe[e]),l=$(xe[e])&&$(Pe[e])&&$(ke[e])&&$(ze[e]);if(!s||!l){const n=e?[se(m),le(p),le(O),ne(k),ne(A)]:[m,p,O,k,A];if(!s){At(Oe[e],n[0]),B(n[1],((t,s)=>At(Ae[e],t,[s])));const s=re();B(n[2],((l,n)=>{At(Me[e],l,[n])&&!t&&(Qe(Ne[e],[n,null]),oe(s,n))})),t||B(n[4],((t,l)=>{if(!W(s,l)){const s=re();B(t,(e=>B(e,(([t,l],n)=>l!==t?oe(s,n):G(e,n))))),B(s,(t=>Qe(Ne[e],[l,t])))}})),B(n[3],((t,s)=>B(t,((t,l)=>At(je[e],t,[s,l])))))}if(!l){let t;B(n[4],((s,l)=>{let n;B(s,((s,a)=>{let r;B(s,(([s,o],c)=>{o!==s&&(Qe(xe[e],[l,a,c],o,s,Ft),t=n=r=1)})),r&&Qe(Pe[e],[l,a],Ft)})),n&&Qe(ke[e],[l],Ft)})),t&&Qe(ze[e],void 0,Ft)}}},Nt=e=>{const t=$(qe[e]),s=$(Be[e])&&$($e[e]);if(!t||!s){const l=e?[se(N),se(ce)]:[N,ce];if(t||At(qe[e],l[0]),!s){let t;B(l[1],(([s,l],n)=>{l!==s&&(Qe(Be[e],[n],l,s,zt),t=1)})),t&&Qe($e[e],void 0,zt)}}},Pt=(e,...t)=>(rs((()=>e(...S(t,C)))),is),jt=()=>[_(A,((e,t)=>-1===Q(m,t)?null:_(e,((e,s)=>-1===Q(Q(O,t),s)?null:_(e,(([,e])=>e??null),((e,t)=>ge(t)))),D)),D),_(ce,(([,e])=>e??null),((e,t)=>ge(t)))],xt=()=>({cellsTouched:l,valuesTouched:a,changedCells:te(A,he,ge),invalidCells:te(Se),changedValues:_(ce,he,ge),invalidValues:_(we),changedTableIds:_(m),changedRowIds:ee(O),changedCellIds:te(k),changedValueIds:_(N)}),Dt=()=>te(Ee),Wt=()=>K(Ee),$t=e=>K(Q(Ee,C(e))),qt=(e,t,s,l=0,n)=>{return S(I((r=Q(Ee,C(e)),o=(e,s)=>[L(t)?s:Q(e,C(t)),s],a=([e],[t])=>(e<t?-1:1)*(s?-1:1),S([...r?.entries()??[]],(([e,t])=>o(t,e))).sort(a)),l,L(n)?n:l+n),(([,e])=>e));var a,r,o},Bt=(e,t)=>K(Q(Q(Ee,C(e)),C(t))),Gt=(e,t,s)=>Q(Q(Q(Ee,C(e)),C(t)),C(s)),Ht=()=>_(Fe),Kt=()=>K(Fe),Qt=e=>Q(Fe,C(e)),Ut=e=>Pt((()=>(e=>be(e,Ze,Lt))(e)?ct(e):0)),Xt=e=>Pt((()=>tt(e)?ft(e):0)),Yt=e=>{try{ot(J(e))}catch{}return is},Zt=t=>Pt((()=>{if((e=be(t,(e=>be(e,Ye))))&&(at(t),!$(Ee))){const e=Dt();es(),Ut(e)}})),_t=e=>Pt((()=>{if(s=(e=>be(e,Ye))(e)){const t=Ht();as(),ls(),s=!0,rt(e),Xt(t)}})),es=()=>Pt((()=>ct({}))),ts=e=>Pt((e=>W(Ee,e)?Ct(e):0),e),ss=(e,t)=>Pt(((e,t)=>E(Q(Ee,e),(s=>W(s,t)?vt(e,s,t):0))),e,t),ls=()=>Pt((()=>ft({}))),ns=()=>Pt((()=>{at({}),e=!1})),as=()=>Pt((()=>{rt({}),s=!1})),rs=(e,t)=>{if(-1!=c){os();const s=e();return cs(t),s}},os=()=>(-1!=c&&c++,1==c&&Qe(Ge,void 0,jt,xt),is),cs=e=>(c>0&&(c--,0==c&&(l=!$(A),a=!$(ce),c=1,Ot(1),l&&Mt(1),kt(1),a&&Nt(1),e?.(jt,xt)&&(B(A,((e,t)=>B(e,((e,s)=>B(e,(([e],l)=>Te(is,t,s,l,e))))))),B(ce,(([e],t)=>Ve(is,t,e))),l=a=!1),Qe(He[0],void 0,jt,xt),c=-1,Ot(0),l&&Mt(0),kt(0),a&&Nt(0),Qe(He[1],void 0,jt,xt),c=0,l=a=!1,v([m,p,O,k,A,Se,N,ce,we],q))),is),is={getContent:()=>[Dt(),Ht()],getTables:Dt,getTableIds:Wt,getTable:e=>ee(Q(Ee,C(e))),getTableCellIds:e=>K(Q(Le,C(e))),getRowIds:$t,getSortedRowIds:qt,getRow:(e,t)=>_(Q(Q(Ee,C(e)),C(t))),getCellIds:Bt,getCell:Gt,getValues:Ht,getValueIds:Kt,getValue:Qt,hasTables:()=>!$(Ee),hasTable:e=>W(Ee,C(e)),hasTableCell:(e,t)=>W(Q(Le,C(e)),C(t)),hasRow:(e,t)=>W(Q(Ee,C(e)),C(t)),hasCell:(e,t,s)=>W(Q(Q(Ee,C(e)),C(t)),C(s)),hasValues:()=>!$(Fe),hasValue:e=>W(Fe,C(e)),getTablesJson:()=>y(Ee),getValuesJson:()=>y(Fe),getJson:()=>y([Ee,Fe]),getTablesSchemaJson:()=>y(Ie),getValuesSchemaJson:()=>y(ye),getSchemaJson:()=>y([Ie,ye]),setContent:([e,t])=>Pt((()=>{(D(e)?es:Ut)(e),(D(t)?ls:Xt)(t)})),setTables:Ut,setTable:(e,t)=>Pt((e=>Ze(t,e)?it(e,t):0),e),setRow:(e,t,s)=>Pt(((e,t)=>_e(e,t,s)?dt(e,bt(e),t,s):0),e,t),addRow:(e,t,s=!0)=>rs((()=>{let l;return _e(e,l,t)&&(e=C(e),dt(e,bt(e),l=Vt(e,s?1:0),t)),l})),setPartialRow:(e,t,s)=>Pt(((e,t)=>{if(_e(e,t,s,1)){const l=bt(e);x(s,((s,n)=>ht(e,l,t,n,s)))}}),e,t),setCell:(e,t,s,l)=>Pt(((e,t,s)=>E(et(e,t,s,z(l)?l(Gt(e,t,s)):l),(l=>ht(e,bt(e),t,s,l)))),e,t,s),setValues:Xt,setPartialValues:e=>Pt((()=>tt(e,1)?x(e,((e,t)=>Tt(t,e))):0)),setValue:(e,t)=>Pt((e=>E(st(e,z(t)?t(Qt(e)):t),(t=>Tt(e,t)))),e),setTransactionChanges:e=>Pt((()=>{x(e[0],((e,t)=>L(e)?ts(t):x(e,((e,s)=>L(e)?ss(t,s):x(e,((e,l)=>Te(is,t,s,l,e))))))),x(e[1],((e,t)=>Ve(is,t,e)))})),setTablesJson:Yt,setValuesJson:e=>{try{gt(J(e))}catch{}return is},setJson:e=>{try{const[t,s]=J(e);ot(t),gt(s)}catch{Yt(e)}return is},setTablesSchema:Zt,setValuesSchema:_t,setSchema:(e,t)=>Pt((()=>{Zt(e),_t(t)})),delTables:es,delTable:ts,delRow:ss,delCell:(e,t,s,l)=>Pt(((e,t,s)=>E(Q(Ee,e),(n=>E(Q(n,t),(a=>W(a,s)?St(e,n,t,a,s,l):0))))),e,t,s),delValues:ls,delValue:e=>Pt((e=>W(Fe,e)?wt(e):0),e),delTablesSchema:ns,delValuesSchema:as,delSchema:()=>Pt((()=>{ns(),as()})),transaction:rs,startTransaction:os,finishTransaction:cs,forEachTable:e=>B(Ee,((t,s)=>e(s,(e=>B(t,((t,s)=>e(s,(e=>U(t,e))))))))),forEachTableCell:(e,t)=>U(Q(Le,C(e)),t),forEachRow:(e,t)=>B(Q(Ee,C(e)),((e,s)=>t(s,(t=>U(e,t))))),forEachCell:(e,t,s)=>U(Q(Q(Ee,C(e)),C(t)),s),forEachValue:e=>U(Fe,e),addSortedRowIdsListener:(e,t,s,l,n,a,r)=>{let o=qt(e,t,s,l,n);return Ke((()=>{const r=qt(e,t,s,l,n);var c,i,d;i=o,w(c=r)===w(i)&&(d=(e,t)=>i[t]===e,c.every(d))||(o=r,a(is,e,t,s,l,n,o))}),Ne[r?1:0],[e,t],[Wt])},addStartTransactionListener:e=>Ke(e,Ge),addWillFinishTransactionListener:e=>Ke(e,He[0]),addDidFinishTransactionListener:e=>Ke(e,He[1]),callListener:e=>(Xe(e),is),delListener:e=>(Ue(e),is),getListenerStats:()=>({}),createStore:ve};return x({[d]:[0,ze],[u]:[0,Oe],[i]:[1,ke,[Wt]],[i+f]:[1,Ae,[Wt]],[h]:[1,Me,[Wt]],Row:[2,Pe,[Wt,$t]],[f]:[2,je,[Wt,$t]],[g]:[3,xe,[Wt,$t,Bt],e=>de(Gt(...e))],InvalidCell:[3,De],[V]:[0,$e],[b]:[0,qe],[T]:[1,Be,[Kt],e=>de(Qt(e[0]))],InvalidValue:[1,We]},(([e,t,s,l],n)=>{is["add"+n+"Listener"]=(...n)=>Ke(n[e],t[n[e+1]?1:0],e>0?I(n,0,e):void 0,s,l)})),M(is)};export{ve as createStore};
1
+ const e=e=>typeof e,t="",s=e(t),l=e(!0),n=e(0),a=e(e),r="type",o="default",c="Ids",i="Table",d=i+"s",u=i+c,h="Row"+c,f="Cell",g=f+c,T="Value",V=T+"s",b=T+c,C=e=>t+e,v=isFinite,S=(e,t)=>e instanceof t,w=e=>null==e,I=(e,t,s)=>w(e)?s?.():t(e),R=e=>e==s||e==l,m=t=>e(t)==a,y=(e,t)=>e.forEach(t),J=(e,t)=>e.map(t),p=e=>e.length,E=(e,t,s)=>e.slice(t,s),L=(e,...t)=>e.push(...t),F=Object,z=F.keys,O=F.isFrozen,k=F.freeze,A=e=>S(e,F)&&e.constructor==F,M=(e,t)=>!w(((e,t)=>I(e,(e=>e[t])))(e,t)),N=(e,t)=>(delete e[t],e),P=(e,t)=>J(F.entries(e),(([e,s])=>t(s,e))),j=e=>A(e)&&0==(e=>p(z(e)))(e),x=(e,t)=>e?.has(t)??!1,D=e=>w(e)||0==(e=>e.size)(e),W=e=>e.clear(),$=(e,t)=>e?.forEach(t),q=(e,t)=>e?.delete(t),B=e=>new Map(e),G=e=>[...e?.keys()??[]],H=(e,t)=>e?.get(t),K=(e,t)=>$(e,((e,s)=>t(s,e))),Q=(e,t,s)=>w(s)?(q(e,t),e):e?.set(t,s),U=(e,t,s)=>(x(e,t)||Q(e,t,s()),H(e,t)),X=(e,t,s,l=Q)=>(P(t,((t,l)=>s(e,l,t))),K(e,(s=>M(t,s)?0:l(e,s))),e),Y=(e,t,s)=>{const l={};return $(e,((e,n)=>{const a=t?t(e,n):e;!s?.(a,e)&&(l[n]=a)})),l},Z=(e,t,s)=>Y(e,(e=>Y(e,t,s)),j),_=(e,t,s)=>Y(e,(e=>Z(e,t,s)),j),ee=(e,t)=>{const s=B();return $(e,((e,l)=>s.set(l,t?.(e)??e))),s},te=e=>ee(e,ee),se=e=>ee(e,te),le=(e,t,s,l,n=0)=>I((s?U:H)(e,t[n],n>p(t)-2?s:B),(a=>{if(n>p(t)-2)return l?.(a)&&Q(e,t[n]),a;const r=le(a,t,s,l,n+1);return D(a)&&Q(e,t[n]),r})),ne=e=>new Set(Array.isArray(e)||w(e)?e:[e]),ae=(e,t)=>e?.add(t),re=/^\d+$/,oe=()=>{const e=[];let s=0;return[l=>(l?e.shift():null)??t+s++,t=>{re.test(t)&&p(e)<1e3&&L(e,t)}]},ce=e=>[e,e],ie=()=>[B(),B()],de=e=>[...e],ue=([e,t])=>e===t,he=t=>{const s=e(t);return R(s)||s==n&&v(t)?s:void 0},fe=(e,t,s,l,n)=>w(n)?e.delCell(t,s,l,!0):e.setCell(t,s,l,n),ge=(e,t,s)=>w(s)?e.delValue(t):e.setValue(t,s),Te=e=>JSON.stringify(e,((e,t)=>S(t,Map)?F.fromEntries([...t]):t)),Ve=JSON.parse,be=(e,t,s)=>w(e)||!A(e)||j(e)||O(e)?(s?.(),!1):(P(e,((s,l)=>{t(s,l)||N(e,l)})),!j(e)),Ce=(e,t,s)=>Q(e,t,H(e,t)==-s?void 0:s),ve=()=>{let e,s,l=!1,a=!1,c=0;const v=B(),S=B(),F=B(),z=B(),O=B(),A=B(),re=B(),Se=B(),we=B(),Ie=B(),Re=B(),me=B(),ye=B(),Je=ne(),pe=B(),Ee=B(),Le=B(),Fe=B(),ze=ie(),Oe=ie(),ke=ie(),Ae=ie(),Me=ie(),Ne=ie(),Pe=ie(),je=ie(),xe=ie(),De=ie(),We=ie(),$e=ie(),qe=ie(),Be=ie(),Ge=B(),He=ie(),[Ke,Qe,Ue,Xe]=(e=>{let s;const[l,n]=oe(),a=B();return[(e,n,r,o=[],c=(()=>[]))=>{s??=is;const i=l(1);return Q(a,i,[e,n,r,o,c]),ae(le(n,r??[t],ne),i),i},(e,l,...n)=>y(((e,s=[t])=>{const l=[],n=(e,t)=>t==p(s)?L(l,e):null===s[t]?$(e,(e=>n(e,t+1))):y([s[t],null],(s=>n(H(e,s),t+1)));return n(e,0),l})(e,l),(e=>$(e,(e=>H(a,e)[0](s,...l??[],...n))))),e=>I(H(a,e),(([,s,l])=>(le(s,l??[t],void 0,(t=>(q(t,e),D(t)?1:0))),Q(a,e),n(e),l))),e=>I(H(a,e),(([e,,t=[],l,n])=>{const a=(...r)=>{const o=p(r);o==p(t)?e(s,...r,...n(r)):w(t[o])?y(l[o]?.(...r)??[],(e=>a(...r,e))):a(...r,t[o])};a()}))]})(),Ye=e=>{if(!be(e,((e,t)=>[r,o].includes(t))))return!1;const t=e[r];return!(!R(t)&&t!=n||(he(e[o])!=t&&N(e,o),0))},Ze=(t,s)=>(!e||x(Ie,s)||Et(s))&&be(t,((e,t)=>_e(s,t,e)),(()=>Et(s))),_e=(e,t,s,l)=>be(l?s:lt(s,e,t),((l,n)=>I(et(e,t,n,l),(e=>(s[n]=e,!0)),(()=>!1))),(()=>Et(e,t))),et=(t,s,l,n)=>e?I(H(H(Ie,t),l),(e=>he(n)!=e[r]?Et(t,s,l,n,e[o]):n),(()=>Et(t,s,l,n))):w(he(n))?Et(t,s,l,n):n,tt=(e,t)=>be(t?e:nt(e),((t,s)=>I(st(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>Lt())),st=(e,t)=>s?I(H(me,e),(s=>he(t)!=s[r]?Lt(e,t,s[o]):t),(()=>Lt(e,t))):w(he(t))?Lt(e,t):t,lt=(e,t,s)=>(I(H(Re,t),(([l,n])=>{$(l,((t,s)=>{M(e,s)||(e[s]=t)})),$(n,(l=>{M(e,l)||Et(t,s,l)}))})),e),nt=e=>(s&&($(ye,((t,s)=>{M(e,s)||(e[s]=t)})),$(Je,(t=>{M(e,t)||Lt(t)}))),e),at=e=>X(Ie,e,((e,t,s)=>{const l=B(),n=ne();X(U(Ie,t,B),s,((e,t,s)=>{Q(e,t,s),I(s[o],(e=>Q(l,t,e)),(()=>ae(n,t)))})),Q(Re,t,[l,n])}),((e,t)=>{Q(Ie,t),Q(Re,t)})),rt=e=>X(me,e,((e,t,s)=>{Q(me,t,s),I(s[o],(e=>Q(ye,t,e)),(()=>ae(Je,t)))}),((e,t)=>{Q(me,t),Q(ye,t),q(Je,t)})),ot=e=>j(e)?es():Ut(e),ct=e=>X(Le,e,((e,t,s)=>it(t,s)),((e,t)=>Ct(t))),it=(e,t)=>X(U(Le,e,(()=>(It(e,1),Q(pe,e,oe()),Q(Ee,e,B()),B()))),t,((t,s,l)=>dt(e,t,s,l)),((t,s)=>vt(e,t,s))),dt=(e,t,s,l,n)=>X(U(t,s,(()=>(Rt(e,s,1),B()))),l,((t,l,n)=>ut(e,s,t,l,n)),((l,a)=>St(e,t,s,l,a,n))),ut=(e,t,s,l,n)=>{x(s,l)||mt(e,t,l,1);const a=H(s,l);n!==a&&(yt(e,t,l,a,n),Q(s,l,n))},ht=(e,t,s,l,n)=>I(H(t,s),(t=>ut(e,s,t,l,n)),(()=>dt(e,t,s,lt({[l]:n},e,s)))),ft=e=>j(e)?ls():Xt(e),gt=e=>X(Fe,e,((e,t,s)=>Tt(t,s)),((e,t)=>wt(t))),Tt=(e,t)=>{x(Fe,e)||Jt(e,1);const s=H(Fe,e);t!==s&&(pt(e,s,t),Q(Fe,e,t))},Vt=(e,t)=>{const[s]=H(pe,e),l=s(t);return x(H(Le,e),l)?Vt(e,t):l},bt=e=>H(Le,e)??it(e,{}),Ct=e=>it(e,{}),vt=(e,t,s)=>{const[,l]=H(pe,e);l(s),dt(e,t,s,{},!0)},St=(e,t,s,l,n,a)=>{const r=H(H(Re,e)?.[0],n);if(!w(r)&&!a)return ut(e,s,l,n,r);const o=t=>{yt(e,s,t,H(l,t)),mt(e,s,t,-1),Q(l,t)};w(r)?o(n):K(l,o),D(l)&&(Rt(e,s,-1),D(Q(t,s))&&(It(e,-1),Q(Le,e),Q(pe,e),Q(Ee,e)))},wt=e=>{const t=H(ye,e);if(!w(t))return Tt(e,t);pt(e,H(Fe,e)),Jt(e,-1),Q(Fe,e)},It=(e,t)=>Ce(v,e,t),Rt=(e,t,s)=>Ce(U(F,e,B),t,s),mt=(e,t,s,l)=>{const n=H(Ee,e),a=H(n,s)??0;(0==a&&1==l||1==a&&-1==l)&&Ce(U(S,e,B),s,l),Q(n,s,a!=-l?a+l:null),Ce(U(U(z,e,B),t,B),s,l)},yt=(e,t,s,l,n)=>U(U(U(O,e,B),t,B),s,(()=>[l,0]))[1]=n,Jt=(e,t)=>Ce(A,e,t),pt=(e,t,s)=>U(re,e,(()=>[t,0]))[1]=s,Et=(e,t,s,l,n)=>(L(U(U(U(Se,e,B),t,B),s,(()=>[])),l),n),Lt=(e,t,s)=>(L(U(we,e,(()=>[])),t),s),Ft=(e,t,s)=>I(H(H(H(O,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...ce(Gt(e,t,s))])),zt=e=>I(H(re,e),(([e,t])=>[!0,e,t]),(()=>[!1,...ce(Qt(e))])),Ot=e=>D(Se)||D(De[e])?0:$(e?se(Se):Se,((t,s)=>$(t,((t,l)=>$(t,((t,n)=>Qe(De[e],[s,l,n],t))))))),kt=e=>D(we)||D(We[e])?0:$(e?ee(we):we,((t,s)=>Qe(We[e],[s],t))),At=(e,t,s)=>{if(!D(t))return Qe(e,s,(()=>Y(t))),1},Mt=e=>{const t=D(Ne[e]),s=D(je[e])&&D(Ae[e])&&D(Me[e])&&t&&D(Oe[e]),l=D(xe[e])&&D(Pe[e])&&D(ke[e])&&D(ze[e]);if(!s||!l){const n=e?[ee(v),te(S),te(F),se(z),se(O)]:[v,S,F,z,O];if(!s){At(Oe[e],n[0]),$(n[1],((t,s)=>At(Ae[e],t,[s])));const s=ne();$(n[2],((l,n)=>{At(Me[e],l,[n])&&!t&&(Qe(Ne[e],[n,null]),ae(s,n))})),t||$(n[4],((t,l)=>{if(!x(s,l)){const s=ne();$(t,(e=>$(e,(([t,l],n)=>l!==t?ae(s,n):q(e,n))))),$(s,(t=>Qe(Ne[e],[l,t])))}})),$(n[3],((t,s)=>$(t,((t,l)=>At(je[e],t,[s,l])))))}if(!l){let t;$(n[4],((s,l)=>{let n;$(s,((s,a)=>{let r;$(s,(([s,o],c)=>{o!==s&&(Qe(xe[e],[l,a,c],o,s,Ft),t=n=r=1)})),r&&Qe(Pe[e],[l,a],Ft)})),n&&Qe(ke[e],[l],Ft)})),t&&Qe(ze[e],void 0,Ft)}}},Nt=e=>{const t=D(qe[e]),s=D(Be[e])&&D($e[e]);if(!t||!s){const l=e?[ee(A),ee(re)]:[A,re];if(t||At(qe[e],l[0]),!s){let t;$(l[1],(([s,l],n)=>{l!==s&&(Qe(Be[e],[n],l,s,zt),t=1)})),t&&Qe($e[e],void 0,zt)}}},Pt=(e,...t)=>(rs((()=>e(...J(t,C)))),is),jt=()=>[Y(O,((e,t)=>-1===H(v,t)?null:Y(e,((e,s)=>-1===H(H(F,t),s)?null:Y(e,(([,e])=>e??null),((e,t)=>ue(t)))),j)),j),Y(re,(([,e])=>e??null),((e,t)=>ue(t)))],xt=()=>({cellsTouched:l,valuesTouched:a,changedCells:_(O,de,ue),invalidCells:_(Se),changedValues:Y(re,de,ue),invalidValues:Y(we),changedTableIds:Y(v),changedRowIds:Z(F),changedCellIds:_(z),changedValueIds:Y(A)}),Dt=()=>_(Le),Wt=()=>G(Le),$t=e=>G(H(Le,C(e))),qt=(e,t,s,l=0,n)=>{return J(E((r=H(Le,C(e)),o=(e,s)=>[w(t)?s:H(e,C(t)),s],a=([e],[t])=>(e<t?-1:1)*(s?-1:1),J([...r?.entries()??[]],(([e,t])=>o(t,e))).sort(a)),l,w(n)?n:l+n),(([,e])=>e));var a,r,o},Bt=(e,t)=>G(H(H(Le,C(e)),C(t))),Gt=(e,t,s)=>H(H(H(Le,C(e)),C(t)),C(s)),Ht=()=>Y(Fe),Kt=()=>G(Fe),Qt=e=>H(Fe,C(e)),Ut=e=>Pt((()=>(e=>be(e,Ze,Et))(e)?ct(e):0)),Xt=e=>Pt((()=>tt(e)?gt(e):0)),Yt=e=>{try{ot(Ve(e))}catch{}return is},Zt=t=>Pt((()=>{if((e=be(t,(e=>be(e,Ye))))&&(at(t),!D(Le))){const e=Dt();es(),Ut(e)}})),_t=e=>Pt((()=>{if(s=(e=>be(e,Ye))(e)){const t=Ht();as(),ls(),s=!0,rt(e),Xt(t)}})),es=()=>Pt((()=>ct({}))),ts=e=>Pt((e=>x(Le,e)?Ct(e):0),e),ss=(e,t)=>Pt(((e,t)=>I(H(Le,e),(s=>x(s,t)?vt(e,s,t):0))),e,t),ls=()=>Pt((()=>gt({}))),ns=()=>Pt((()=>{at({}),e=!1})),as=()=>Pt((()=>{rt({}),s=!1})),rs=(e,t)=>{if(-1!=c){os();const s=e();return cs(t),s}},os=()=>(-1!=c&&c++,1==c&&Qe(Ge,void 0,jt,xt),is),cs=e=>(c>0&&(c--,0==c&&(l=!D(O),a=!D(re),c=1,Ot(1),l&&Mt(1),kt(1),a&&Nt(1),e?.(jt,xt)&&($(O,((e,t)=>$(e,((e,s)=>$(e,(([e],l)=>fe(is,t,s,l,e))))))),$(re,(([e],t)=>ge(is,t,e))),l=a=!1),Qe(He[0],void 0,jt,xt),c=-1,Ot(0),l&&Mt(0),kt(0),a&&Nt(0),Qe(He[1],void 0,jt,xt),c=0,l=a=!1,y([v,S,F,z,O,Se,A,re,we],W))),is),is={getContent:()=>[Dt(),Ht()],getTables:Dt,getTableIds:Wt,getTable:e=>Z(H(Le,C(e))),getTableCellIds:e=>G(H(Ee,C(e))),getRowIds:$t,getSortedRowIds:qt,getRow:(e,t)=>Y(H(H(Le,C(e)),C(t))),getCellIds:Bt,getCell:Gt,getValues:Ht,getValueIds:Kt,getValue:Qt,hasTables:()=>!D(Le),hasTable:e=>x(Le,C(e)),hasTableCell:(e,t)=>x(H(Ee,C(e)),C(t)),hasRow:(e,t)=>x(H(Le,C(e)),C(t)),hasCell:(e,t,s)=>x(H(H(Le,C(e)),C(t)),C(s)),hasValues:()=>!D(Fe),hasValue:e=>x(Fe,C(e)),getTablesJson:()=>Te(Le),getValuesJson:()=>Te(Fe),getJson:()=>Te([Le,Fe]),getTablesSchemaJson:()=>Te(Ie),getValuesSchemaJson:()=>Te(me),getSchemaJson:()=>Te([Ie,me]),setContent:([e,t])=>Pt((()=>{(j(e)?es:Ut)(e),(j(t)?ls:Xt)(t)})),setTables:Ut,setTable:(e,t)=>Pt((e=>Ze(t,e)?it(e,t):0),e),setRow:(e,t,s)=>Pt(((e,t)=>_e(e,t,s)?dt(e,bt(e),t,s):0),e,t),addRow:(e,t,s=!0)=>rs((()=>{let l;return _e(e,l,t)&&(e=C(e),dt(e,bt(e),l=Vt(e,s?1:0),t)),l})),setPartialRow:(e,t,s)=>Pt(((e,t)=>{if(_e(e,t,s,1)){const l=bt(e);P(s,((s,n)=>ht(e,l,t,n,s)))}}),e,t),setCell:(e,t,s,l)=>Pt(((e,t,s)=>I(et(e,t,s,m(l)?l(Gt(e,t,s)):l),(l=>ht(e,bt(e),t,s,l)))),e,t,s),setValues:Xt,setPartialValues:e=>Pt((()=>tt(e,1)?P(e,((e,t)=>Tt(t,e))):0)),setValue:(e,t)=>Pt((e=>I(st(e,m(t)?t(Qt(e)):t),(t=>Tt(e,t)))),e),setTransactionChanges:e=>Pt((()=>{P(e[0],((e,t)=>w(e)?ts(t):P(e,((e,s)=>w(e)?ss(t,s):P(e,((e,l)=>fe(is,t,s,l,e))))))),P(e[1],((e,t)=>ge(is,t,e)))})),setTablesJson:Yt,setValuesJson:e=>{try{ft(Ve(e))}catch{}return is},setJson:e=>{try{const[t,s]=Ve(e);ot(t),ft(s)}catch{Yt(e)}return is},setTablesSchema:Zt,setValuesSchema:_t,setSchema:(e,t)=>Pt((()=>{Zt(e),_t(t)})),delTables:es,delTable:ts,delRow:ss,delCell:(e,t,s,l)=>Pt(((e,t,s)=>I(H(Le,e),(n=>I(H(n,t),(a=>x(a,s)?St(e,n,t,a,s,l):0))))),e,t,s),delValues:ls,delValue:e=>Pt((e=>x(Fe,e)?wt(e):0),e),delTablesSchema:ns,delValuesSchema:as,delSchema:()=>Pt((()=>{ns(),as()})),transaction:rs,startTransaction:os,finishTransaction:cs,forEachTable:e=>$(Le,((t,s)=>e(s,(e=>$(t,((t,s)=>e(s,(e=>K(t,e))))))))),forEachTableCell:(e,t)=>K(H(Ee,C(e)),t),forEachRow:(e,t)=>$(H(Le,C(e)),((e,s)=>t(s,(t=>K(e,t))))),forEachCell:(e,t,s)=>K(H(H(Le,C(e)),C(t)),s),forEachValue:e=>K(Fe,e),addSortedRowIdsListener:(e,t,s,l,n,a,r)=>{let o=qt(e,t,s,l,n);return Ke((()=>{const r=qt(e,t,s,l,n);var c,i,d;i=o,p(c=r)===p(i)&&(d=(e,t)=>i[t]===e,c.every(d))||(o=r,a(is,e,t,s,l,n,o))}),Ne[r?1:0],[e,t],[Wt])},addStartTransactionListener:e=>Ke(e,Ge),addWillFinishTransactionListener:e=>Ke(e,He[0]),addDidFinishTransactionListener:e=>Ke(e,He[1]),callListener:e=>(Xe(e),is),delListener:e=>(Ue(e),is),getListenerStats:()=>({}),createStore:ve};return P({[d]:[0,ze],[u]:[0,Oe],[i]:[1,ke,[Wt]],[i+g]:[1,Ae,[Wt]],[h]:[1,Me,[Wt]],Row:[2,Pe,[Wt,$t]],[g]:[2,je,[Wt,$t]],[f]:[3,xe,[Wt,$t,Bt],e=>ce(Gt(...e))],InvalidCell:[3,De],[V]:[0,$e],[b]:[0,qe],[T]:[1,Be,[Kt],e=>ce(Qt(e[0]))],InvalidValue:[1,We]},(([e,t,s,l],n)=>{is["add"+n+"Listener"]=(...n)=>Ke(n[e],t[n[e+1]?1:0],e>0?E(n,0,e):void 0,s,l)})),k(is)};export{ve as createStore};
package/lib/store.js.gz CHANGED
Binary file
package/lib/tinybase.js CHANGED
@@ -1 +1 @@
1
- const e=e=>typeof e,t="",s=e(t),n=e(!0),a=e(0),o=e(e),l="type",r="default",i="Listener",c="Result",d="add",u="Ids",h="Table",g=h+"s",f=h+u,L="Row",w=L+u,v="Sorted"+L+u,S="Cell",R=S+u,T="Value",I=T+"s",y=T+u,C=e=>t+e,p=(e,t)=>e.includes(t),b=(e,t)=>e.every(t),V=(e,t)=>J(e)===J(t)&&b(e,((e,s)=>t[s]===e)),m=(e,t)=>b(e,((s,n)=>0==n||t(e[n-1],s)<=0)),E=(e,t)=>e.sort(t),k=(e,t)=>e.forEach(t),M=(e,t)=>e.map(t),D=e=>x(e,((e,t)=>e+t),0),J=e=>e.length,A=e=>0==J(e),x=(e,t,s)=>e.reduce(t,s),F=(e,t,s)=>e.slice(t,s),Q=(e,...t)=>e.push(...t),z=e=>e.pop(),N=e=>e.shift(),O=e=>JSON.stringify(e,((e,t)=>$(t,Map)?x([...t],((e,[t,s])=>(e[t]=s,e)),{}):t)),j=JSON.parse,P=Math.max,W=Math.min,B=isFinite,$=(e,t)=>e instanceof t,q=e=>null==e,G=(e,t,s)=>q(e)?s?.():t(e),H=e=>e==s||e==n,K=t=>e(t)==o,U=e=>Array.isArray(e),X=()=>{},Y=Object,Z=Y.keys,_=Y.isFrozen,ee=Y.freeze,te=e=>$(e,Y)&&e.constructor==Y,se=(e,t)=>!q(((e,t)=>G(e,(e=>e[t])))(e,t)),ne=(e,t)=>(delete e[t],e),ae=(e,t)=>M(Y.entries(e),(([e,s])=>t(s,e))),oe=e=>te(e)&&0==(e=>J(Z(e)))(e),le=e=>e.size,re=(e,t)=>e?.has(t)??!1,ie=e=>q(e)||0==le(e),ce=e=>[...e?.values()??[]],de=e=>e.clear(),ue=(e,t)=>e?.forEach(t),he=(e,t)=>e?.delete(t),ge=e=>new Map(e),fe=e=>[...e?.keys()??[]],Le=(e,t)=>e?.get(t),we=(e,t)=>ue(e,((e,s)=>t(s,e))),ve=(e,t,s)=>q(s)?(he(e,t),e):e?.set(t,s),Se=(e,t,s)=>(re(e,t)||ve(e,t,s()),Le(e,t)),Re=(e,t,s,n=ve)=>(ae(t,((t,n)=>s(e,n,t))),we(e,(s=>se(t,s)?0:n(e,s))),e),Te=(e,t,s)=>{const n={};return ue(e,((e,a)=>{const o=t?t(e,a):e;!s?.(o,e)&&(n[a]=o)})),n},Ie=(e,t,s)=>Te(e,(e=>Te(e,t,s)),oe),ye=(e,t,s)=>Te(e,(e=>Ie(e,t,s)),oe),Ce=(e,t)=>{const s=ge();return ue(e,((e,n)=>s.set(n,t?.(e)??e))),s},pe=e=>Ce(e,Ce),be=e=>Ce(e,pe),Ve=(e,t,s,n,a=0)=>G((s?Se:Le)(e,t[a],a>J(t)-2?s:ge),(o=>{if(a>J(t)-2)return n?.(o)&&ve(e,t[a]),o;const l=Ve(o,t,s,n,a+1);return ie(o)&&ve(e,t[a]),l})),me=t=>{const s=e(t);return H(s)||s==a&&B(t)?s:void 0},Ee=(e,t,s,n,a)=>q(a)?e.delCell(t,s,n,!0):e.setCell(t,s,n,a),ke=(e,t,s)=>q(s)?e.delValue(t):e.setValue(t,s),Me=e=>new Set(U(e)||q(e)?e:[e]),De=(e,t)=>e?.add(t),Je=(e,t,s)=>{const n=e.hasRow,a=ge(),o=ge(),l=ge(),r=ge(),i=ge(),c=(t,s,...n)=>{const a=Se(i,t,Me);return k(n,(t=>De(a,t)&&s&&e.callListener(t))),n},d=(t,...s)=>G(Le(i,t),(n=>{k(A(s)?ce(n):s,(t=>{e.delListener(t),he(n,t)})),ie(n)&&ve(i,t)})),u=(e,s)=>{ve(a,e,s),re(o,e)||(ve(o,e,t()),ve(l,e,ge()),ve(r,e,ge()))},h=e=>{ve(a,e),ve(o,e),ve(l,e),ve(r,e),d(e)};return[()=>e,()=>fe(a),e=>we(o,e),e=>re(o,e),e=>Le(a,e),e=>Le(o,e),(e,t)=>ve(o,e,t),u,(t,a,o,i,h)=>{u(t,a);const g=ge(),f=ge(),L=Le(l,t),w=Le(r,t),v=t=>{const o=s=>e.getCell(a,t,s),l=Le(L,t),r=n(a,t)?s(i(o,t)):void 0;if(l===r||U(l)&&U(r)&&V(l,r)||ve(g,t,[l,r]),!q(h)){const e=Le(w,t),s=n(a,t)?h(o,t):void 0;e!=s&&ve(f,t,s)}},S=e=>{o((()=>{ue(g,(([,e],t)=>ve(L,t,e))),ue(f,((e,t)=>ve(w,t,e)))}),g,f,L,w,e),de(g),de(f)};we(L,v),e.hasTable(a)&&k(e.getRowIds(a),(e=>{re(L,e)||v(e)})),S(!0),d(t),c(t,0,e.addRowListener(a,null,((e,t,s)=>v(s))),e.addTableListener(a,(()=>S())))},h,()=>we(i,h),c,d]},Ae=(n,a)=>e(n)==s?e=>e(n):n??(()=>a??t),xe=e=>{const t=new WeakMap;return s=>(t.has(s)||t.set(s,e(s)),t.get(s))},Fe=/^\d+$/,Qe=()=>{const e=[];let s=0;return[n=>(n?N(e):null)??t+s++,t=>{Fe.test(t)&&J(e)<1e3&&Q(e,t)}]},ze=e=>{let s;const[n,a]=Qe(),o=ge();return[(a,l,r,i=[],c=(()=>[]))=>{s??=e();const d=n(1);return ve(o,d,[a,l,r,i,c]),De(Ve(l,r??[t],Me),d),d},(e,n,...a)=>k(((e,s=[t])=>{const n=[],a=(e,t)=>t==J(s)?Q(n,e):null===s[t]?ue(e,(e=>a(e,t+1))):k([s[t],null],(s=>a(Le(e,s),t+1)));return a(e,0),n})(e,n),(e=>ue(e,(e=>Le(o,e)[0](s,...n??[],...a))))),e=>G(Le(o,e),(([,s,n])=>(Ve(s,n??[t],void 0,(t=>(he(t,e),ie(t)?1:0))),ve(o,e),a(e),n))),e=>G(Le(o,e),(([e,,t=[],n,a])=>{const o=(...l)=>{const r=J(l);r==J(t)?e(s,...l,...a(l)):q(t[r])?k(n[r]?.(...l)??[],(e=>o(...l,e))):o(...l,t[r])};o()}))]},Ne=xe((e=>{let s,n,a,o=100,l=ge(),r=ge(),i=1;const c=ge(),d=ge(),[u,h,g]=ze((()=>j)),f=ge(),L=ge(),w=[],v=[],S=(t,s)=>{i=0,e.transaction((()=>{const[n,a]=Le(f,s);ue(n,((s,n)=>ue(s,((s,a)=>ue(s,((s,o)=>Ee(e,n,a,o,s[t]))))))),ue(a,((s,n)=>ke(e,n,s[t])))})),i=1},R=e=>{ve(f,e),ve(L,e),h(d,[e])},T=(e,t)=>k(((e,t)=>e.splice(0,t))(e,t??J(e)),R),I=()=>T(w,J(w)-o),y=()=>G(s,(()=>{Q(w,s),I(),T(v),s=void 0,a=1})),C=()=>{s=z(w),a=1},b=e.addCellListener(null,null,null,((e,t,s,n,a,o)=>{if(i){y();const e=Se(l,t,ge),r=Se(e,s,ge),i=Se(r,n,(()=>[o,void 0]));i[1]=a,i[0]===a&&ie(ve(r,n))&&ie(ve(e,s))&&ie(ve(l,t))&&C(),D()}})),V=e.addValueListener(null,((e,t,s,n)=>{if(i){y();const e=Se(r,t,(()=>[n,void 0]));e[1]=s,e[0]===s&&ie(ve(r,t))&&C(),D()}})),m=(e="")=>(q(s)&&(s=t+n++,ve(f,s,[l,r]),F(s,e),l=ge(),r=ge(),a=1),s),E=()=>{A(w)||(((e,...t)=>{e.unshift(...t)})(v,m()),S(0,s),s=z(w),a=1)},M=()=>{A(v)||(Q(w,s),s=N(v),S(1,s),a=1)},D=()=>{a&&(h(c),a=0)},x=e=>{const t=m(e);return D(),t},F=(e,t)=>(O(e)&&Le(L,e)!==t&&(ve(L,e,t),h(d,[e])),j),O=e=>re(f,e),j={setSize:e=>(o=e,I(),j),addCheckpoint:x,setCheckpoint:F,getStore:()=>e,getCheckpointIds:()=>[[...w],s,[...v]],forEachCheckpoint:e=>we(L,e),hasCheckpoint:O,getCheckpoint:e=>Le(L,e),goBackward:()=>(E(),D(),j),goForward:()=>(M(),D(),j),goTo:e=>{const t=p(w,e)?E:p(v,e)?M:null;for(;!q(t)&&e!=s;)t();return D(),j},addCheckpointIdsListener:e=>u(e,c),addCheckpointListener:(e,t)=>u(t,d,[e]),delListener:e=>(g(e),j),clear:()=>(T(w),T(v),q(s)||R(s),s=void 0,n=0,x(),j),destroy:()=>{e.delListener(b),e.delListener(V)},getListenerStats:()=>({})};return ee(j.clear())})),Oe=(e,t)=>e<t?-1:1,je=xe((e=>{const s=ge(),n=ge(),[a,o,l,r,i,c,d,,u,h,g]=Je(e,ge,(e=>q(e)?t:U(e)?M(e,C):C(e))),[f,L,w]=ze((()=>S)),v=(t,s,n)=>{const a=i(t);ue(n,((t,n)=>s(n,(s=>ue(t,(t=>s(t,(s=>e.forEachCell(a,t,s)))))))))},S={setIndexDefinition:(e,t,a,o,l,r=Oe)=>{const i=q(l)?void 0:([e],[t])=>l(e,t);return u(e,t,((t,a,l,u,h,g)=>{let f=0;const w=Me(),v=Me(),S=c(e);if(ue(a,(([e,t],s)=>{const n=Me(e),a=Me(t);ue(n,(e=>he(a,e)?he(n,e):0)),ue(n,(e=>{De(w,e),G(Le(S,e),(t=>{he(t,s),ie(t)&&(ve(S,e),f=1)}))})),ue(a,(e=>{De(w,e),re(S,e)||(ve(S,e,Me()),f=1),De(Le(S,e),s),q(o)||De(v,e)}))})),t(),ie(h)||(g?we(S,(e=>De(v,e))):we(l,(e=>G(Le(u,e),(e=>De(v,e))))),ue(v,(e=>{const t=(t,s)=>r(Le(h,t),Le(h,s),e),s=[...Le(S,e)];m(s,t)||(ve(S,e,Me(E(s,t))),De(w,e))}))),(f||g)&&!q(i)){const t=[...S];m(t,i)||(d(e,ge(E(t,i))),f=1)}f&&L(s,[e]),ue(w,(t=>L(n,[e,t])))}),Ae(a),G(o,Ae)),S},delIndexDefinition:e=>(h(e),S),getStore:a,getIndexIds:o,forEachIndex:e=>l(((t,s)=>e(t,(e=>v(t,e,s))))),forEachSlice:(e,t)=>v(e,t,c(e)),hasIndex:r,hasSlice:(e,t)=>re(c(e),t),getTableId:i,getSliceIds:e=>fe(c(e)),getSliceRowIds:(e,t)=>ce(Le(c(e),t)),addSliceIdsListener:(e,t)=>f(t,s,[e]),addSliceRowIdsListener:(e,t,s)=>f(s,n,[e,t]),delListener:e=>(w(e),S),destroy:g,getListenerStats:()=>({})};return ee(S)})),Pe=ge([["avg",[(e,t)=>D(e)/t,(e,t,s)=>e+(t-e)/(s+1),(e,t,s)=>e+(e-t)/(s-1),(e,t,s,n)=>e+(t-s)/n]],["max",[e=>P(...e),(e,t)=>P(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:P(t,e)]],["min",[e=>W(...e),(e,t)=>W(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:W(t,e)]],["sum",[e=>D(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),We=(e,t,s,n,a,o=!1)=>{if(ie(s))return;const[l,r,i,c]=a;return o||=q(e),ue(n,(([s,n])=>{o||(e=q(s)?r?.(e,n,t++):q(n)?i?.(e,s,t--):c?.(e,n,s,t),o||=q(e))})),o?l(ce(s),le(s)):e},Be=xe((e=>{const s=ge(),[n,a,o,l,r,i,c,,d,u,h]=Je(e,X,(e=>isNaN(e)||q(e)||!0===e||!1===e||e===t?void 0:1*e)),[g,f,L]=ze((()=>w)),w={setMetricDefinition:(e,t,n,a,o,l,r)=>{const u=K(n)?[n,o,l,r]:Le(Pe,n)??Le(Pe,"sum");return d(e,t,((t,n,a,o,l,r)=>{const d=i(e),h=le(o);r||=q(d),t();let g=We(d,h,o,n,u,r);B(g)||(g=void 0),g!=d&&(c(e,g),f(s,[e],g,d))}),Ae(a,1)),w},delMetricDefinition:e=>(u(e),w),getStore:n,getMetricIds:a,forEachMetric:o,hasMetric:l,getTableId:r,getMetric:i,addMetricListener:(e,t)=>g(t,s,[e]),delListener:e=>(L(e),w),destroy:h,getListenerStats:()=>({})};return ee(w)})),$e=(e,t,s,n,a)=>{let o,l,r,i=0,c=0,d=0;const u=[],h=async e=>(2!=i&&(i=1,await g.schedule((async()=>{await e(),i=0}))),g),g={load:async(s,n)=>await h((async()=>{try{e.setContent(await t())}catch{e.setContent([s,n])}})),startAutoLoad:async(s={},a={})=>(g.stopAutoLoad(),await g.load(s,a),d=1,r=n((async(s,n)=>await h((async()=>{if(n)e.setTransactionChanges(n());else try{e.setContent(s?.()??await t())}catch{}})))),g),stopAutoLoad:()=>(d&&(a(r),r=void 0,d=0),g),save:async t=>(1!=i&&(i=2,await g.schedule((async()=>{try{await s(e.getContent,t)}catch{}i=0}))),g),startAutoSave:async()=>(await g.stopAutoSave().save(),o=e.addDidFinishTransactionListener(((e,t)=>{const[s,n]=t();oe(s)&&oe(n)||g.save((()=>[s,n]))})),g),stopAutoSave:()=>(G(o,e.delListener),g),schedule:async(...e)=>(Q(u,...e),await(async()=>{if(!c){for(c=1;!q(l=N(u));)try{await l()}catch{}c=0}})(),g),getStore:()=>e,destroy:()=>g.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return ee(g)},qe=xe((e=>{const s=e.createStore,[n,a,o,l,r,,,u,,g,f,T,I]=Je(e,(()=>!0),X),y=s(),C=s(),p=ge(),V=(e,t,...s)=>k(s,(s=>De(Se(Se(p,t,ge),e,Me),s))),m=e=>{G(Le(p,e),(e=>{we(e,((e,t)=>ue(t,(t=>e.delListener(t))))),de(e)})),k([C,y],(t=>t.delTable(e)))},E=(e,t,s)=>V(t,e,t.addStartTransactionListener(s.startTransaction),t.addDidFinishTransactionListener((()=>s.finishTransaction()))),M={setQueryDefinition:(s,n,a)=>{u(s,n),m(s);const o=[],l=[[null,[n,null,null,[],ge()]]],r=[],i=[],c=[];a({select:(e,s)=>{const n=K(e)?[J(o)+t,e]:[q(s)?e:s,t=>t(e,s)];return Q(o,n),{as:e=>n[0]=e}},join:(e,t,s)=>{const n=q(s)||K(t)?null:t,a=q(n)?t:s,o=[e,[e,n,K(a)?a:e=>e(a),[],ge()]];return Q(l,o),{as:e=>o[0]=e}},where:(e,t,s)=>Q(r,K(e)?e:q(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,a)=>{const o=[e,[e,K(t)?[t,s,n,a]:Le(Pe,t)??[(e,t)=>t]]];return Q(i,o),{as:e=>o[0]=e}},having:(e,t)=>Q(c,K(e)?e:s=>s(e)===t)});const d=ge(o);if(ie(d))return M;const h=ge(l);we(h,((e,[,t])=>G(Le(h,t),(({3:t})=>q(e)?0:Q(t,e)))));const g=ge(i);let f=y;if(ie(g)&&A(c))f=C;else{E(s,f,C);const e=ge();we(g,((t,[s,n])=>De(Se(e,s,Me),[t,n])));const t=Me();we(d,(s=>re(e,s)?0:De(t,s)));const n=ge(),a=(t,n,a,o)=>G(t,(([l,r,i,d])=>{we(n,((t,[s])=>{const n=Se(l,t,ge),r=Le(n,a),i=o?void 0:s;if(r!==i){const s=Me([[r,i]]),o=le(n);ve(n,a,i),ue(Le(e,t),(([e,t])=>{const a=We(d[e],o,n,s,t);d[e]=q(me(a))?null:a}))}})),ie(r)||!b(c,(e=>e((e=>d[e]))))?C.delRow(s,i):q(i)?t[2]=C.addRow(s,d):C.setRow(s,i,d)}));V(f,s,f.addRowListener(s,null,((o,l,r,i)=>{const c=[],d=[],u=ge(),h=f.hasRow(s,r);let g=!h;ue(t,(e=>{const[t,n,a]=i(s,r,e);Q(c,n),Q(d,a),g||=t})),we(e,(e=>{const[t,,n]=i(s,r,e);(g||t)&&ve(u,e,[n])})),g&&a(Ve(n,c,void 0,(([,e])=>(he(e,r),ie(e)))),u,r,1),h&&a(Ve(n,d,(()=>{const e={};return ue(t,(t=>e[t]=f.getCell(s,r,t))),[ge(),Me(),void 0,e]}),(([,e])=>{De(e,r)})),u,r)})))}E(s,e,f);const L=(t,a,o,l)=>{const i=t=>e.getCell(a,o,t);k(l,(n=>{const[a,,o,l,r]=Le(h,n),c=o?.(i,t),[d,u]=Le(r,t)??[];c!=d&&(q(u)||I(s,u),ve(r,t,q(c)?null:[c,...T(s,1,e.addRowListener(a,c,(()=>L(t,a,c,l))))]))})),(t=>{const a=(s,a)=>e.getCell(...q(a)?[n,t,s]:s===n?[n,t,a]:[Le(h,s)?.[0],Le(Le(h,s)?.[4],t)?.[0],a]);f.transaction((()=>b(r,(e=>e(a)))?we(d,((e,n)=>Ee(f,s,t,e,n(a,t)))):f.delRow(s,t)))})(t)},{3:w}=Le(h,null);return f.transaction((()=>T(s,1,e.addRowListener(n,null,((t,a,o)=>{e.hasRow(n,o)?L(o,n,o,w):(f.delRow(s,o),ue(h,(({4:e})=>G(Le(e,o),(([,t])=>{I(s,t),ve(e,o)})))))}))))),M},delQueryDefinition:e=>(m(e),g(e),M),getStore:n,getQueryIds:a,forEachQuery:o,hasQuery:l,getTableId:r,delListener:e=>(C.delListener(e),M),destroy:f,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=C.getListenerStats();return n}};return ae({[h]:[1,1],[w]:[0,1],[v]:[0,5],[L]:[1,2],[R]:[0,2],[S]:[1,3]},(([e,t],s)=>{k(e?["get","has","forEach"]:["get"],(e=>M[e+c+s]=(...t)=>C[e+s](...t))),M[d+c+s+i]=(...e)=>C[d+s+i](...F(e,0,t),((s,...n)=>e[t](M,...n)))})),ee(M)})),Ge=xe((e=>{const s=ge(),n=ge(),a=ge(),o=ge(),[l,r,i,c,d,u,,,h,g,f]=Je(e,(()=>[ge(),ge(),ge(),ge()]),(e=>q(e)?void 0:e+t)),[L,w,v]=ze((()=>I)),S=(e,t,s)=>G(u(e),(([n,,a])=>{if(!re(a,t)){const o=Me();if(d(e)!=T(e))De(o,t);else{let e=t;for(;!q(e)&&!re(o,e);)De(o,e),e=Le(n,e)}if(s)return o;ve(a,t,o)}return Le(a,t)})),R=(e,t)=>G(u(e),(([,,e])=>ve(e,t))),T=e=>Le(s,e),I={setRelationshipDefinition:(e,t,l,r)=>(ve(s,e,l),h(e,t,((t,s)=>{const l=Me(),r=Me(),i=Me(),[c,d]=u(e);ue(s,(([t,s],n)=>{q(t)||(De(r,t),G(Le(d,t),(e=>{he(e,n),ie(e)&&ve(d,t)}))),q(s)||(De(r,s),re(d,s)||ve(d,s,Me()),De(Le(d,s),n)),De(l,n),ve(c,n,s),we(Le(o,e),(t=>{re(S(e,t),n)&&De(i,t)}))})),t(),ue(l,(t=>w(n,[e,t]))),ue(r,(t=>w(a,[e,t]))),ue(i,(t=>{R(e,t),w(o,[e,t])}))}),Ae(r)),I),delRelationshipDefinition:e=>(ve(s,e),g(e),I),getStore:l,getRelationshipIds:r,forEachRelationship:t=>i((s=>t(s,(t=>e.forEachRow(d(s),t))))),hasRelationship:c,getLocalTableId:d,getRemoteTableId:T,getRemoteRowId:(e,t)=>Le(u(e)?.[0],t),getLocalRowIds:(e,t)=>ce(Le(u(e)?.[1],t)),getLinkedRowIds:(e,t)=>q(u(e))?[t]:ce(S(e,t,!0)),addRemoteRowIdListener:(e,t,s)=>L(s,n,[e,t]),addLocalRowIdsListener:(e,t,s)=>L(s,a,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(S(e,t),L(s,o,[e,t])),delListener:e=>(R(...v(e)),I),destroy:f,getListenerStats:()=>({})};return ee(I)})),He=e=>[e,e],Ke=()=>[ge(),ge()],Ue=e=>[...e],Xe=([e,t])=>e===t,Ye=(e,t,s)=>q(e)||!te(e)||oe(e)||_(e)?(s?.(),!1):(ae(e,((s,n)=>{t(s,n)||ne(e,n)})),!oe(e)),Ze=(e,t,s)=>ve(e,t,Le(e,t)==-s?void 0:s),_e=()=>{let e,t,s=!1,n=!1,o=0;const c=ge(),u=ge(),v=ge(),b=ge(),m=ge(),D=ge(),J=ge(),A=ge(),x=ge(),z=ge(),N=ge(),P=ge(),W=ge(),B=Me(),$=ge(),U=ge(),X=ge(),Y=ge(),Z=Ke(),_=Ke(),te=Ke(),le=Ke(),ce=Ke(),Ve=Ke(),Je=Ke(),Ae=Ke(),xe=Ke(),Fe=Ke(),Ne=Ke(),je=Ke(),Pe=Ke(),We=Ke(),Be=ge(),$e=Ke(),[qe,Ge,et,tt]=ze((()=>fs)),st=e=>{if(!Ye(e,((e,t)=>p([l,r],t))))return!1;const t=e[l];return!(!H(t)&&t!=a||(me(e[r])!=t&&ne(e,r),0))},nt=(t,s)=>(!e||re(z,s)||At(s))&&Ye(t,((e,t)=>at(s,t,e)),(()=>At(s))),at=(e,t,s,n)=>Ye(n?s:it(s,e,t),((n,a)=>G(ot(e,t,a,n),(e=>(s[a]=e,!0)),(()=>!1))),(()=>At(e,t))),ot=(t,s,n,a)=>e?G(Le(Le(z,t),n),(e=>me(a)!=e[l]?At(t,s,n,a,e[r]):a),(()=>At(t,s,n,a))):q(me(a))?At(t,s,n,a):a,lt=(e,t)=>Ye(t?e:ct(e),((t,s)=>G(rt(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>xt())),rt=(e,s)=>t?G(Le(P,e),(t=>me(s)!=t[l]?xt(e,s,t[r]):s),(()=>xt(e,s))):q(me(s))?xt(e,s):s,it=(e,t,s)=>(G(Le(N,t),(([n,a])=>{ue(n,((t,s)=>{se(e,s)||(e[s]=t)})),ue(a,(n=>{se(e,n)||At(t,s,n)}))})),e),ct=e=>(t&&(ue(W,((t,s)=>{se(e,s)||(e[s]=t)})),ue(B,(t=>{se(e,t)||xt(t)}))),e),dt=e=>Re(z,e,((e,t,s)=>{const n=ge(),a=Me();Re(Se(z,t,ge),s,((e,t,s)=>{ve(e,t,s),G(s[r],(e=>ve(n,t,e)),(()=>De(a,t)))})),ve(N,t,[n,a])}),((e,t)=>{ve(z,t),ve(N,t)})),ut=e=>Re(P,e,((e,t,s)=>{ve(P,t,s),G(s[r],(e=>ve(W,t,e)),(()=>De(B,t)))}),((e,t)=>{ve(P,t),ve(W,t),he(B,t)})),ht=e=>oe(e)?os():es(e),gt=e=>Re(X,e,((e,t,s)=>ft(t,s)),((e,t)=>Ct(t))),ft=(e,t)=>Re(Se(X,e,(()=>(mt(e,1),ve($,e,Qe()),ve(U,e,ge()),ge()))),t,((t,s,n)=>Lt(e,t,s,n)),((t,s)=>pt(e,t,s))),Lt=(e,t,s,n,a)=>Re(Se(t,s,(()=>(Et(e,s,1),ge()))),n,((t,n,a)=>wt(e,s,t,n,a)),((n,o)=>bt(e,t,s,n,o,a))),wt=(e,t,s,n,a)=>{re(s,n)||kt(e,t,n,1);const o=Le(s,n);a!==o&&(Mt(e,t,n,o,a),ve(s,n,a))},vt=(e,t,s,n,a)=>G(Le(t,s),(t=>wt(e,s,t,n,a)),(()=>Lt(e,t,s,it({[n]:a},e,s)))),St=e=>oe(e)?is():ts(e),Rt=e=>Re(Y,e,((e,t,s)=>Tt(t,s)),((e,t)=>Vt(t))),Tt=(e,t)=>{re(Y,e)||Dt(e,1);const s=Le(Y,e);t!==s&&(Jt(e,s,t),ve(Y,e,t))},It=(e,t)=>{const[s]=Le($,e),n=s(t);return re(Le(X,e),n)?It(e,t):n},yt=e=>Le(X,e)??ft(e,{}),Ct=e=>ft(e,{}),pt=(e,t,s)=>{const[,n]=Le($,e);n(s),Lt(e,t,s,{},!0)},bt=(e,t,s,n,a,o)=>{const l=Le(Le(N,e)?.[0],a);if(!q(l)&&!o)return wt(e,s,n,a,l);const r=t=>{Mt(e,s,t,Le(n,t)),kt(e,s,t,-1),ve(n,t)};q(l)?r(a):we(n,r),ie(n)&&(Et(e,s,-1),ie(ve(t,s))&&(mt(e,-1),ve(X,e),ve($,e),ve(U,e)))},Vt=e=>{const t=Le(W,e);if(!q(t))return Tt(e,t);Jt(e,Le(Y,e)),Dt(e,-1),ve(Y,e)},mt=(e,t)=>Ze(c,e,t),Et=(e,t,s)=>Ze(Se(v,e,ge),t,s),kt=(e,t,s,n)=>{const a=Le(U,e),o=Le(a,s)??0;(0==o&&1==n||1==o&&-1==n)&&Ze(Se(u,e,ge),s,n),ve(a,s,o!=-n?o+n:null),Ze(Se(Se(b,e,ge),t,ge),s,n)},Mt=(e,t,s,n,a)=>Se(Se(Se(m,e,ge),t,ge),s,(()=>[n,0]))[1]=a,Dt=(e,t)=>Ze(D,e,t),Jt=(e,t,s)=>Se(J,e,(()=>[t,0]))[1]=s,At=(e,t,s,n,a)=>(Q(Se(Se(Se(A,e,ge),t,ge),s,(()=>[])),n),a),xt=(e,t,s)=>(Q(Se(x,e,(()=>[])),t),s),Ft=(e,t,s)=>G(Le(Le(Le(m,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...He(Xt(e,t,s))])),Qt=e=>G(Le(J,e),(([e,t])=>[!0,e,t]),(()=>[!1,...He(_t(e))])),zt=e=>ie(A)||ie(Fe[e])?0:ue(e?be(A):A,((t,s)=>ue(t,((t,n)=>ue(t,((t,a)=>Ge(Fe[e],[s,n,a],t))))))),Nt=e=>ie(x)||ie(Ne[e])?0:ue(e?Ce(x):x,((t,s)=>Ge(Ne[e],[s],t))),Ot=(e,t,s)=>{if(!ie(t))return Ge(e,s,(()=>Te(t))),1},jt=e=>{const t=ie(Ve[e]),s=ie(Ae[e])&&ie(le[e])&&ie(ce[e])&&t&&ie(_[e]),n=ie(xe[e])&&ie(Je[e])&&ie(te[e])&&ie(Z[e]);if(!s||!n){const a=e?[Ce(c),pe(u),pe(v),be(b),be(m)]:[c,u,v,b,m];if(!s){Ot(_[e],a[0]),ue(a[1],((t,s)=>Ot(le[e],t,[s])));const s=Me();ue(a[2],((n,a)=>{Ot(ce[e],n,[a])&&!t&&(Ge(Ve[e],[a,null]),De(s,a))})),t||ue(a[4],((t,n)=>{if(!re(s,n)){const s=Me();ue(t,(e=>ue(e,(([t,n],a)=>n!==t?De(s,a):he(e,a))))),ue(s,(t=>Ge(Ve[e],[n,t])))}})),ue(a[3],((t,s)=>ue(t,((t,n)=>Ot(Ae[e],t,[s,n])))))}if(!n){let t;ue(a[4],((s,n)=>{let a;ue(s,((s,o)=>{let l;ue(s,(([s,r],i)=>{r!==s&&(Ge(xe[e],[n,o,i],r,s,Ft),t=a=l=1)})),l&&Ge(Je[e],[n,o],Ft)})),a&&Ge(te[e],[n],Ft)})),t&&Ge(Z[e],void 0,Ft)}}},Pt=e=>{const t=ie(Pe[e]),s=ie(We[e])&&ie(je[e]);if(!t||!s){const n=e?[Ce(D),Ce(J)]:[D,J];if(t||Ot(Pe[e],n[0]),!s){let t;ue(n[1],(([s,n],a)=>{n!==s&&(Ge(We[e],[a],n,s,Qt),t=1)})),t&&Ge(je[e],void 0,Qt)}}},Wt=(e,...t)=>(us((()=>e(...M(t,C)))),fs),Bt=()=>[Te(m,((e,t)=>-1===Le(c,t)?null:Te(e,((e,s)=>-1===Le(Le(v,t),s)?null:Te(e,(([,e])=>e??null),((e,t)=>Xe(t)))),oe)),oe),Te(J,(([,e])=>e??null),((e,t)=>Xe(t)))],$t=()=>({cellsTouched:s,valuesTouched:n,changedCells:ye(m,Ue,Xe),invalidCells:ye(A),changedValues:Te(J,Ue,Xe),invalidValues:Te(x),changedTableIds:Te(c),changedRowIds:Ie(v),changedCellIds:ye(b),changedValueIds:Te(D)}),qt=()=>ye(X),Gt=()=>fe(X),Ht=e=>fe(Le(X,C(e))),Kt=(e,t,s,n=0,a)=>{return M(F(E((o=Le(X,C(e)),l=(e,s)=>[q(t)?s:Le(e,C(t)),s],M([...o?.entries()??[]],(([e,t])=>l(t,e)))),(([e],[t])=>Oe(e,t)*(s?-1:1))),n,q(a)?a:n+a),(([,e])=>e));var o,l},Ut=(e,t)=>fe(Le(Le(X,C(e)),C(t))),Xt=(e,t,s)=>Le(Le(Le(X,C(e)),C(t)),C(s)),Yt=()=>Te(Y),Zt=()=>fe(Y),_t=e=>Le(Y,C(e)),es=e=>Wt((()=>(e=>Ye(e,nt,At))(e)?gt(e):0)),ts=e=>Wt((()=>lt(e)?Rt(e):0)),ss=e=>{try{ht(j(e))}catch{}return fs},ns=t=>Wt((()=>{if((e=Ye(t,(e=>Ye(e,st))))&&(dt(t),!ie(X))){const e=qt();os(),es(e)}})),as=e=>Wt((()=>{if(t=(e=>Ye(e,st))(e)){const s=Yt();ds(),is(),t=!0,ut(e),ts(s)}})),os=()=>Wt((()=>gt({}))),ls=e=>Wt((e=>re(X,e)?Ct(e):0),e),rs=(e,t)=>Wt(((e,t)=>G(Le(X,e),(s=>re(s,t)?pt(e,s,t):0))),e,t),is=()=>Wt((()=>Rt({}))),cs=()=>Wt((()=>{dt({}),e=!1})),ds=()=>Wt((()=>{ut({}),t=!1})),us=(e,t)=>{if(-1!=o){hs();const s=e();return gs(t),s}},hs=()=>(-1!=o&&o++,1==o&&Ge(Be,void 0,Bt,$t),fs),gs=e=>(o>0&&(o--,0==o&&(s=!ie(m),n=!ie(J),o=1,zt(1),s&&jt(1),Nt(1),n&&Pt(1),e?.(Bt,$t)&&(ue(m,((e,t)=>ue(e,((e,s)=>ue(e,(([e],n)=>Ee(fs,t,s,n,e))))))),ue(J,(([e],t)=>ke(fs,t,e))),s=n=!1),Ge($e[0],void 0,Bt,$t),o=-1,zt(0),s&&jt(0),Nt(0),n&&Pt(0),Ge($e[1],void 0,Bt,$t),o=0,s=n=!1,k([c,u,v,b,m,A,D,J,x],de))),fs),fs={getContent:()=>[qt(),Yt()],getTables:qt,getTableIds:Gt,getTable:e=>Ie(Le(X,C(e))),getTableCellIds:e=>fe(Le(U,C(e))),getRowIds:Ht,getSortedRowIds:Kt,getRow:(e,t)=>Te(Le(Le(X,C(e)),C(t))),getCellIds:Ut,getCell:Xt,getValues:Yt,getValueIds:Zt,getValue:_t,hasTables:()=>!ie(X),hasTable:e=>re(X,C(e)),hasTableCell:(e,t)=>re(Le(U,C(e)),C(t)),hasRow:(e,t)=>re(Le(X,C(e)),C(t)),hasCell:(e,t,s)=>re(Le(Le(X,C(e)),C(t)),C(s)),hasValues:()=>!ie(Y),hasValue:e=>re(Y,C(e)),getTablesJson:()=>O(X),getValuesJson:()=>O(Y),getJson:()=>O([X,Y]),getTablesSchemaJson:()=>O(z),getValuesSchemaJson:()=>O(P),getSchemaJson:()=>O([z,P]),setContent:([e,t])=>Wt((()=>{(oe(e)?os:es)(e),(oe(t)?is:ts)(t)})),setTables:es,setTable:(e,t)=>Wt((e=>nt(t,e)?ft(e,t):0),e),setRow:(e,t,s)=>Wt(((e,t)=>at(e,t,s)?Lt(e,yt(e),t,s):0),e,t),addRow:(e,t,s=!0)=>us((()=>{let n;return at(e,n,t)&&(e=C(e),Lt(e,yt(e),n=It(e,s?1:0),t)),n})),setPartialRow:(e,t,s)=>Wt(((e,t)=>{if(at(e,t,s,1)){const n=yt(e);ae(s,((s,a)=>vt(e,n,t,a,s)))}}),e,t),setCell:(e,t,s,n)=>Wt(((e,t,s)=>G(ot(e,t,s,K(n)?n(Xt(e,t,s)):n),(n=>vt(e,yt(e),t,s,n)))),e,t,s),setValues:ts,setPartialValues:e=>Wt((()=>lt(e,1)?ae(e,((e,t)=>Tt(t,e))):0)),setValue:(e,t)=>Wt((e=>G(rt(e,K(t)?t(_t(e)):t),(t=>Tt(e,t)))),e),setTransactionChanges:e=>Wt((()=>{ae(e[0],((e,t)=>q(e)?ls(t):ae(e,((e,s)=>q(e)?rs(t,s):ae(e,((e,n)=>Ee(fs,t,s,n,e))))))),ae(e[1],((e,t)=>ke(fs,t,e)))})),setTablesJson:ss,setValuesJson:e=>{try{St(j(e))}catch{}return fs},setJson:e=>{try{const[t,s]=j(e);ht(t),St(s)}catch{ss(e)}return fs},setTablesSchema:ns,setValuesSchema:as,setSchema:(e,t)=>Wt((()=>{ns(e),as(t)})),delTables:os,delTable:ls,delRow:rs,delCell:(e,t,s,n)=>Wt(((e,t,s)=>G(Le(X,e),(a=>G(Le(a,t),(o=>re(o,s)?bt(e,a,t,o,s,n):0))))),e,t,s),delValues:is,delValue:e=>Wt((e=>re(Y,e)?Vt(e):0),e),delTablesSchema:cs,delValuesSchema:ds,delSchema:()=>Wt((()=>{cs(),ds()})),transaction:us,startTransaction:hs,finishTransaction:gs,forEachTable:e=>ue(X,((t,s)=>e(s,(e=>ue(t,((t,s)=>e(s,(e=>we(t,e))))))))),forEachTableCell:(e,t)=>we(Le(U,C(e)),t),forEachRow:(e,t)=>ue(Le(X,C(e)),((e,s)=>t(s,(t=>we(e,t))))),forEachCell:(e,t,s)=>we(Le(Le(X,C(e)),C(t)),s),forEachValue:e=>we(Y,e),addSortedRowIdsListener:(e,t,s,n,a,o,l)=>{let r=Kt(e,t,s,n,a);return qe((()=>{const l=Kt(e,t,s,n,a);V(l,r)||(r=l,o(fs,e,t,s,n,a,r))}),Ve[l?1:0],[e,t],[Gt])},addStartTransactionListener:e=>qe(e,Be),addWillFinishTransactionListener:e=>qe(e,$e[0]),addDidFinishTransactionListener:e=>qe(e,$e[1]),callListener:e=>(tt(e),fs),delListener:e=>(et(e),fs),getListenerStats:()=>({}),createStore:_e};return ae({[g]:[0,Z],[f]:[0,_],[h]:[1,te,[Gt]],[h+R]:[1,le,[Gt]],[w]:[1,ce,[Gt]],[L]:[2,Je,[Gt,Ht]],[R]:[2,Ae,[Gt,Ht]],[S]:[3,xe,[Gt,Ht,Ut],e=>He(Xt(...e))],InvalidCell:[3,Fe],[I]:[0,je],[y]:[0,Pe],[T]:[1,We,[Zt],e=>He(_t(e[0]))],InvalidValue:[1,Ne]},(([e,t,s,n],a)=>{fs[d+a+i]=(...a)=>qe(a[e],t[a[e+1]?1:0],e>0?F(a,0,e):void 0,s,n)})),ee(fs)};export{Ne as createCheckpoints,$e as createCustomPersister,je as createIndexes,Be as createMetrics,qe as createQueries,Ge as createRelationships,_e as createStore,Oe as defaultSorter};
1
+ const e=e=>typeof e,t="",s=e(t),n=e(!0),a=e(0),o=e(e),r="type",l="default",i="Listener",c="Result",d="add",u="Ids",h="Table",g=h+"s",f=h+u,L="Row",w=L+u,v="Sorted"+L+u,S="Cell",R=S+u,T="Value",I=T+"s",y=T+u,C=e=>t+e,p=Math.max,b=Math.min,V=isFinite,m=(e,t)=>e instanceof t,E=e=>null==e,k=(e,t,s)=>E(e)?s?.():t(e),M=e=>e==s||e==n,D=t=>e(t)==o,J=e=>Array.isArray(e),A=()=>{},x=(e,t)=>e.includes(t),F=(e,t)=>e.every(t),Q=(e,t)=>W(e)===W(t)&&F(e,((e,s)=>t[s]===e)),z=(e,t)=>F(e,((s,n)=>0==n||t(e[n-1],s)<=0)),N=(e,t)=>e.sort(t),O=(e,t)=>e.forEach(t),j=(e,t)=>e.map(t),P=e=>$(e,((e,t)=>e+t),0),W=e=>e.length,B=e=>0==W(e),$=(e,t,s)=>e.reduce(t,s),q=(e,t,s)=>e.slice(t,s),G=(e,...t)=>e.push(...t),H=e=>e.pop(),K=e=>e.shift(),U=Object,X=U.keys,Y=U.isFrozen,Z=U.freeze,_=e=>m(e,U)&&e.constructor==U,ee=(e,t)=>!E(((e,t)=>k(e,(e=>e[t])))(e,t)),te=(e,t)=>(delete e[t],e),se=(e,t)=>j(U.entries(e),(([e,s])=>t(s,e))),ne=e=>_(e)&&0==(e=>W(X(e)))(e),ae=e=>e.size,oe=(e,t)=>e?.has(t)??!1,re=e=>E(e)||0==ae(e),le=e=>[...e?.values()??[]],ie=e=>e.clear(),ce=(e,t)=>e?.forEach(t),de=(e,t)=>e?.delete(t),ue=e=>new Map(e),he=e=>[...e?.keys()??[]],ge=(e,t)=>e?.get(t),fe=(e,t)=>ce(e,((e,s)=>t(s,e))),Le=(e,t,s)=>E(s)?(de(e,t),e):e?.set(t,s),we=(e,t,s)=>(oe(e,t)||Le(e,t,s()),ge(e,t)),ve=(e,t,s,n=Le)=>(se(t,((t,n)=>s(e,n,t))),fe(e,(s=>ee(t,s)?0:n(e,s))),e),Se=(e,t,s)=>{const n={};return ce(e,((e,a)=>{const o=t?t(e,a):e;!s?.(o,e)&&(n[a]=o)})),n},Re=(e,t,s)=>Se(e,(e=>Se(e,t,s)),ne),Te=(e,t,s)=>Se(e,(e=>Re(e,t,s)),ne),Ie=(e,t)=>{const s=ue();return ce(e,((e,n)=>s.set(n,t?.(e)??e))),s},ye=e=>Ie(e,Ie),Ce=e=>Ie(e,ye),pe=(e,t,s,n,a=0)=>k((s?we:ge)(e,t[a],a>W(t)-2?s:ue),(o=>{if(a>W(t)-2)return n?.(o)&&Le(e,t[a]),o;const r=pe(o,t,s,n,a+1);return re(o)&&Le(e,t[a]),r})),be=t=>{const s=e(t);return M(s)||s==a&&V(t)?s:void 0},Ve=(e,t,s,n,a)=>E(a)?e.delCell(t,s,n,!0):e.setCell(t,s,n,a),me=(e,t,s)=>E(s)?e.delValue(t):e.setValue(t,s),Ee=e=>new Set(J(e)||E(e)?e:[e]),ke=(e,t)=>e?.add(t),Me=(e,t,s)=>{const n=e.hasRow,a=ue(),o=ue(),r=ue(),l=ue(),i=ue(),c=(t,s,...n)=>{const a=we(i,t,Ee);return O(n,(t=>ke(a,t)&&s&&e.callListener(t))),n},d=(t,...s)=>k(ge(i,t),(n=>{O(B(s)?le(n):s,(t=>{e.delListener(t),de(n,t)})),re(n)&&Le(i,t)})),u=(e,s)=>{Le(a,e,s),oe(o,e)||(Le(o,e,t()),Le(r,e,ue()),Le(l,e,ue()))},h=e=>{Le(a,e),Le(o,e),Le(r,e),Le(l,e),d(e)};return[()=>e,()=>he(a),e=>fe(o,e),e=>oe(o,e),e=>ge(a,e),e=>ge(o,e),(e,t)=>Le(o,e,t),u,(t,a,o,i,h)=>{u(t,a);const g=ue(),f=ue(),L=ge(r,t),w=ge(l,t),v=t=>{const o=s=>e.getCell(a,t,s),r=ge(L,t),l=n(a,t)?s(i(o,t)):void 0;if(r===l||J(r)&&J(l)&&Q(r,l)||Le(g,t,[r,l]),!E(h)){const e=ge(w,t),s=n(a,t)?h(o,t):void 0;e!=s&&Le(f,t,s)}},S=e=>{o((()=>{ce(g,(([,e],t)=>Le(L,t,e))),ce(f,((e,t)=>Le(w,t,e)))}),g,f,L,w,e),ie(g),ie(f)};fe(L,v),e.hasTable(a)&&O(e.getRowIds(a),(e=>{oe(L,e)||v(e)})),S(!0),d(t),c(t,0,e.addRowListener(a,null,((e,t,s)=>v(s))),e.addTableListener(a,(()=>S())))},h,()=>fe(i,h),c,d]},De=(n,a)=>e(n)==s?e=>e(n):n??(()=>a??t),Je=e=>{const t=new WeakMap;return s=>(t.has(s)||t.set(s,e(s)),t.get(s))},Ae=/^\d+$/,xe=()=>{const e=[];let s=0;return[n=>(n?K(e):null)??t+s++,t=>{Ae.test(t)&&W(e)<1e3&&G(e,t)}]},Fe=e=>{let s;const[n,a]=xe(),o=ue();return[(a,r,l,i=[],c=(()=>[]))=>{s??=e();const d=n(1);return Le(o,d,[a,r,l,i,c]),ke(pe(r,l??[t],Ee),d),d},(e,n,...a)=>O(((e,s=[t])=>{const n=[],a=(e,t)=>t==W(s)?G(n,e):null===s[t]?ce(e,(e=>a(e,t+1))):O([s[t],null],(s=>a(ge(e,s),t+1)));return a(e,0),n})(e,n),(e=>ce(e,(e=>ge(o,e)[0](s,...n??[],...a))))),e=>k(ge(o,e),(([,s,n])=>(pe(s,n??[t],void 0,(t=>(de(t,e),re(t)?1:0))),Le(o,e),a(e),n))),e=>k(ge(o,e),(([e,,t=[],n,a])=>{const o=(...r)=>{const l=W(r);l==W(t)?e(s,...r,...a(r)):E(t[l])?O(n[l]?.(...r)??[],(e=>o(...r,e))):o(...r,t[l])};o()}))]},Qe=Je((e=>{let s,n,a,o=100,r=ue(),l=ue(),i=1;const c=ue(),d=ue(),[u,h,g]=Fe((()=>Q)),f=ue(),L=ue(),w=[],v=[],S=(t,s)=>{i=0,e.transaction((()=>{const[n,a]=ge(f,s);ce(n,((s,n)=>ce(s,((s,a)=>ce(s,((s,o)=>Ve(e,n,a,o,s[t]))))))),ce(a,((s,n)=>me(e,n,s[t])))})),i=1},R=e=>{Le(f,e),Le(L,e),h(d,[e])},T=(e,t)=>O(((e,t)=>e.splice(0,t))(e,t??W(e)),R),I=()=>T(w,W(w)-o),y=()=>k(s,(()=>{G(w,s),I(),T(v),s=void 0,a=1})),C=()=>{s=H(w),a=1},p=e.addCellListener(null,null,null,((e,t,s,n,a,o)=>{if(i){y();const e=we(r,t,ue),l=we(e,s,ue),i=we(l,n,(()=>[o,void 0]));i[1]=a,i[0]===a&&re(Le(l,n))&&re(Le(e,s))&&re(Le(r,t))&&C(),D()}})),b=e.addValueListener(null,((e,t,s,n)=>{if(i){y();const e=we(l,t,(()=>[n,void 0]));e[1]=s,e[0]===s&&re(Le(l,t))&&C(),D()}})),V=(e="")=>(E(s)&&(s=t+n++,Le(f,s,[r,l]),A(s,e),r=ue(),l=ue(),a=1),s),m=()=>{B(w)||(((e,...t)=>{e.unshift(...t)})(v,V()),S(0,s),s=H(w),a=1)},M=()=>{B(v)||(G(w,s),s=K(v),S(1,s),a=1)},D=()=>{a&&(h(c),a=0)},J=e=>{const t=V(e);return D(),t},A=(e,t)=>(F(e)&&ge(L,e)!==t&&(Le(L,e,t),h(d,[e])),Q),F=e=>oe(f,e),Q={setSize:e=>(o=e,I(),Q),addCheckpoint:J,setCheckpoint:A,getStore:()=>e,getCheckpointIds:()=>[[...w],s,[...v]],forEachCheckpoint:e=>fe(L,e),hasCheckpoint:F,getCheckpoint:e=>ge(L,e),goBackward:()=>(m(),D(),Q),goForward:()=>(M(),D(),Q),goTo:e=>{const t=x(w,e)?m:x(v,e)?M:null;for(;!E(t)&&e!=s;)t();return D(),Q},addCheckpointIdsListener:e=>u(e,c),addCheckpointListener:(e,t)=>u(t,d,[e]),delListener:e=>(g(e),Q),clear:()=>(T(w),T(v),E(s)||R(s),s=void 0,n=0,J(),Q),destroy:()=>{e.delListener(p),e.delListener(b)},getListenerStats:()=>({})};return Z(Q.clear())})),ze=(e,t)=>e<t?-1:1,Ne=Je((e=>{const s=ue(),n=ue(),[a,o,r,l,i,c,d,,u,h,g]=Me(e,ue,(e=>E(e)?t:J(e)?j(e,C):C(e))),[f,L,w]=Fe((()=>S)),v=(t,s,n)=>{const a=i(t);ce(n,((t,n)=>s(n,(s=>ce(t,(t=>s(t,(s=>e.forEachCell(a,t,s)))))))))},S={setIndexDefinition:(e,t,a,o,r,l=ze)=>{const i=E(r)?void 0:([e],[t])=>r(e,t);return u(e,t,((t,a,r,u,h,g)=>{let f=0;const w=Ee(),v=Ee(),S=c(e);if(ce(a,(([e,t],s)=>{const n=Ee(e),a=Ee(t);ce(n,(e=>de(a,e)?de(n,e):0)),ce(n,(e=>{ke(w,e),k(ge(S,e),(t=>{de(t,s),re(t)&&(Le(S,e),f=1)}))})),ce(a,(e=>{ke(w,e),oe(S,e)||(Le(S,e,Ee()),f=1),ke(ge(S,e),s),E(o)||ke(v,e)}))})),t(),re(h)||(g?fe(S,(e=>ke(v,e))):fe(r,(e=>k(ge(u,e),(e=>ke(v,e))))),ce(v,(e=>{const t=(t,s)=>l(ge(h,t),ge(h,s),e),s=[...ge(S,e)];z(s,t)||(Le(S,e,Ee(N(s,t))),ke(w,e))}))),(f||g)&&!E(i)){const t=[...S];z(t,i)||(d(e,ue(N(t,i))),f=1)}f&&L(s,[e]),ce(w,(t=>L(n,[e,t])))}),De(a),k(o,De)),S},delIndexDefinition:e=>(h(e),S),getStore:a,getIndexIds:o,forEachIndex:e=>r(((t,s)=>e(t,(e=>v(t,e,s))))),forEachSlice:(e,t)=>v(e,t,c(e)),hasIndex:l,hasSlice:(e,t)=>oe(c(e),t),getTableId:i,getSliceIds:e=>he(c(e)),getSliceRowIds:(e,t)=>le(ge(c(e),t)),addSliceIdsListener:(e,t)=>f(t,s,[e]),addSliceRowIdsListener:(e,t,s)=>f(s,n,[e,t]),delListener:e=>(w(e),S),destroy:g,getListenerStats:()=>({})};return Z(S)})),Oe=ue([["avg",[(e,t)=>P(e)/t,(e,t,s)=>e+(t-e)/(s+1),(e,t,s)=>e+(e-t)/(s-1),(e,t,s,n)=>e+(t-s)/n]],["max",[e=>p(...e),(e,t)=>p(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:p(t,e)]],["min",[e=>b(...e),(e,t)=>b(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:b(t,e)]],["sum",[e=>P(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),je=(e,t,s,n,a,o=!1)=>{if(re(s))return;const[r,l,i,c]=a;return o||=E(e),ce(n,(([s,n])=>{o||(e=E(s)?l?.(e,n,t++):E(n)?i?.(e,s,t--):c?.(e,n,s,t),o||=E(e))})),o?r(le(s),ae(s)):e},Pe=Je((e=>{const s=ue(),[n,a,o,r,l,i,c,,d,u,h]=Me(e,A,(e=>isNaN(e)||E(e)||!0===e||!1===e||e===t?void 0:1*e)),[g,f,L]=Fe((()=>w)),w={setMetricDefinition:(e,t,n,a,o,r,l)=>{const u=D(n)?[n,o,r,l]:ge(Oe,n)??ge(Oe,"sum");return d(e,t,((t,n,a,o,r,l)=>{const d=i(e),h=ae(o);l||=E(d),t();let g=je(d,h,o,n,u,l);V(g)||(g=void 0),g!=d&&(c(e,g),f(s,[e],g,d))}),De(a,1)),w},delMetricDefinition:e=>(u(e),w),getStore:n,getMetricIds:a,forEachMetric:o,hasMetric:r,getTableId:l,getMetric:i,addMetricListener:(e,t)=>g(t,s,[e]),delListener:e=>(L(e),w),destroy:h,getListenerStats:()=>({})};return Z(w)})),We=(e,t,s,n,a)=>{let o,r,l,i=0,c=0,d=0;const u=[],h=async e=>(2!=i&&(i=1,await g.schedule((async()=>{await e(),i=0}))),g),g={load:async(s,n)=>await h((async()=>{try{e.setContent(await t())}catch{e.setContent([s,n])}})),startAutoLoad:async(s={},a={})=>(g.stopAutoLoad(),await g.load(s,a),d=1,l=n((async(s,n)=>await h((async()=>{if(n)e.setTransactionChanges(n());else try{e.setContent(s?.()??await t())}catch{}})))),g),stopAutoLoad:()=>(d&&(a(l),l=void 0,d=0),g),save:async t=>(1!=i&&(i=2,await g.schedule((async()=>{try{await s(e.getContent,t)}catch{}i=0}))),g),startAutoSave:async()=>(await g.stopAutoSave().save(),o=e.addDidFinishTransactionListener(((e,t)=>{const[s,n]=t();ne(s)&&ne(n)||g.save((()=>[s,n]))})),g),stopAutoSave:()=>(k(o,e.delListener),g),schedule:async(...e)=>(G(u,...e),await(async()=>{if(!c){for(c=1;!E(r=K(u));)try{await r()}catch{}c=0}})(),g),getStore:()=>e,destroy:()=>g.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return Z(g)},Be=Je((e=>{const s=e.createStore,[n,a,o,r,l,,,u,,g,f,T,I]=Me(e,(()=>!0),A),y=s(),C=s(),p=ue(),b=(e,t,...s)=>O(s,(s=>ke(we(we(p,t,ue),e,Ee),s))),V=e=>{k(ge(p,e),(e=>{fe(e,((e,t)=>ce(t,(t=>e.delListener(t))))),ie(e)})),O([C,y],(t=>t.delTable(e)))},m=(e,t,s)=>b(t,e,t.addStartTransactionListener(s.startTransaction),t.addDidFinishTransactionListener((()=>s.finishTransaction()))),M={setQueryDefinition:(s,n,a)=>{u(s,n),V(s);const o=[],r=[[null,[n,null,null,[],ue()]]],l=[],i=[],c=[];a({select:(e,s)=>{const n=D(e)?[W(o)+t,e]:[E(s)?e:s,t=>t(e,s)];return G(o,n),{as:e=>n[0]=e}},join:(e,t,s)=>{const n=E(s)||D(t)?null:t,a=E(n)?t:s,o=[e,[e,n,D(a)?a:e=>e(a),[],ue()]];return G(r,o),{as:e=>o[0]=e}},where:(e,t,s)=>G(l,D(e)?e:E(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,a)=>{const o=[e,[e,D(t)?[t,s,n,a]:ge(Oe,t)??[(e,t)=>t]]];return G(i,o),{as:e=>o[0]=e}},having:(e,t)=>G(c,D(e)?e:s=>s(e)===t)});const d=ue(o);if(re(d))return M;const h=ue(r);fe(h,((e,[,t])=>k(ge(h,t),(({3:t})=>E(e)?0:G(t,e)))));const g=ue(i);let f=y;if(re(g)&&B(c))f=C;else{m(s,f,C);const e=ue();fe(g,((t,[s,n])=>ke(we(e,s,Ee),[t,n])));const t=Ee();fe(d,(s=>oe(e,s)?0:ke(t,s)));const n=ue(),a=(t,n,a,o)=>k(t,(([r,l,i,d])=>{fe(n,((t,[s])=>{const n=we(r,t,ue),l=ge(n,a),i=o?void 0:s;if(l!==i){const s=Ee([[l,i]]),o=ae(n);Le(n,a,i),ce(ge(e,t),(([e,t])=>{const a=je(d[e],o,n,s,t);d[e]=E(be(a))?null:a}))}})),re(l)||!F(c,(e=>e((e=>d[e]))))?C.delRow(s,i):E(i)?t[2]=C.addRow(s,d):C.setRow(s,i,d)}));b(f,s,f.addRowListener(s,null,((o,r,l,i)=>{const c=[],d=[],u=ue(),h=f.hasRow(s,l);let g=!h;ce(t,(e=>{const[t,n,a]=i(s,l,e);G(c,n),G(d,a),g||=t})),fe(e,(e=>{const[t,,n]=i(s,l,e);(g||t)&&Le(u,e,[n])})),g&&a(pe(n,c,void 0,(([,e])=>(de(e,l),re(e)))),u,l,1),h&&a(pe(n,d,(()=>{const e={};return ce(t,(t=>e[t]=f.getCell(s,l,t))),[ue(),Ee(),void 0,e]}),(([,e])=>{ke(e,l)})),u,l)})))}m(s,e,f);const L=(t,a,o,r)=>{const i=t=>e.getCell(a,o,t);O(r,(n=>{const[a,,o,r,l]=ge(h,n),c=o?.(i,t),[d,u]=ge(l,t)??[];c!=d&&(E(u)||I(s,u),Le(l,t,E(c)?null:[c,...T(s,1,e.addRowListener(a,c,(()=>L(t,a,c,r))))]))})),(t=>{const a=(s,a)=>e.getCell(...E(a)?[n,t,s]:s===n?[n,t,a]:[ge(h,s)?.[0],ge(ge(h,s)?.[4],t)?.[0],a]);f.transaction((()=>F(l,(e=>e(a)))?fe(d,((e,n)=>Ve(f,s,t,e,n(a,t)))):f.delRow(s,t)))})(t)},{3:w}=ge(h,null);return f.transaction((()=>T(s,1,e.addRowListener(n,null,((t,a,o)=>{e.hasRow(n,o)?L(o,n,o,w):(f.delRow(s,o),ce(h,(({4:e})=>k(ge(e,o),(([,t])=>{I(s,t),Le(e,o)})))))}))))),M},delQueryDefinition:e=>(V(e),g(e),M),getStore:n,getQueryIds:a,forEachQuery:o,hasQuery:r,getTableId:l,delListener:e=>(C.delListener(e),M),destroy:f,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=C.getListenerStats();return n}};return se({[h]:[1,1],[w]:[0,1],[v]:[0,5],[L]:[1,2],[R]:[0,2],[S]:[1,3]},(([e,t],s)=>{O(e?["get","has","forEach"]:["get"],(e=>M[e+c+s]=(...t)=>C[e+s](...t))),M[d+c+s+i]=(...e)=>C[d+s+i](...q(e,0,t),((s,...n)=>e[t](M,...n)))})),Z(M)})),$e=Je((e=>{const s=ue(),n=ue(),a=ue(),o=ue(),[r,l,i,c,d,u,,,h,g,f]=Me(e,(()=>[ue(),ue(),ue(),ue()]),(e=>E(e)?void 0:e+t)),[L,w,v]=Fe((()=>I)),S=(e,t,s)=>k(u(e),(([n,,a])=>{if(!oe(a,t)){const o=Ee();if(d(e)!=T(e))ke(o,t);else{let e=t;for(;!E(e)&&!oe(o,e);)ke(o,e),e=ge(n,e)}if(s)return o;Le(a,t,o)}return ge(a,t)})),R=(e,t)=>k(u(e),(([,,e])=>Le(e,t))),T=e=>ge(s,e),I={setRelationshipDefinition:(e,t,r,l)=>(Le(s,e,r),h(e,t,((t,s)=>{const r=Ee(),l=Ee(),i=Ee(),[c,d]=u(e);ce(s,(([t,s],n)=>{E(t)||(ke(l,t),k(ge(d,t),(e=>{de(e,n),re(e)&&Le(d,t)}))),E(s)||(ke(l,s),oe(d,s)||Le(d,s,Ee()),ke(ge(d,s),n)),ke(r,n),Le(c,n,s),fe(ge(o,e),(t=>{oe(S(e,t),n)&&ke(i,t)}))})),t(),ce(r,(t=>w(n,[e,t]))),ce(l,(t=>w(a,[e,t]))),ce(i,(t=>{R(e,t),w(o,[e,t])}))}),De(l)),I),delRelationshipDefinition:e=>(Le(s,e),g(e),I),getStore:r,getRelationshipIds:l,forEachRelationship:t=>i((s=>t(s,(t=>e.forEachRow(d(s),t))))),hasRelationship:c,getLocalTableId:d,getRemoteTableId:T,getRemoteRowId:(e,t)=>ge(u(e)?.[0],t),getLocalRowIds:(e,t)=>le(ge(u(e)?.[1],t)),getLinkedRowIds:(e,t)=>E(u(e))?[t]:le(S(e,t,!0)),addRemoteRowIdListener:(e,t,s)=>L(s,n,[e,t]),addLocalRowIdsListener:(e,t,s)=>L(s,a,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(S(e,t),L(s,o,[e,t])),delListener:e=>(R(...v(e)),I),destroy:f,getListenerStats:()=>({})};return Z(I)})),qe=e=>[e,e],Ge=()=>[ue(),ue()],He=e=>[...e],Ke=([e,t])=>e===t,Ue=e=>JSON.stringify(e,((e,t)=>m(t,Map)?U.fromEntries([...t]):t)),Xe=JSON.parse,Ye=(e,t,s)=>E(e)||!_(e)||ne(e)||Y(e)?(s?.(),!1):(se(e,((s,n)=>{t(s,n)||te(e,n)})),!ne(e)),Ze=(e,t,s)=>Le(e,t,ge(e,t)==-s?void 0:s),_e=()=>{let e,t,s=!1,n=!1,o=0;const c=ue(),u=ue(),v=ue(),p=ue(),b=ue(),V=ue(),m=ue(),J=ue(),A=ue(),F=ue(),z=ue(),P=ue(),W=ue(),B=Ee(),$=ue(),H=ue(),K=ue(),U=ue(),X=Ge(),Y=Ge(),_=Ge(),ae=Ge(),le=Ge(),pe=Ge(),Me=Ge(),De=Ge(),Je=Ge(),Ae=Ge(),Qe=Ge(),Ne=Ge(),Oe=Ge(),je=Ge(),Pe=ue(),We=Ge(),[Be,$e,et,tt]=Fe((()=>fs)),st=e=>{if(!Ye(e,((e,t)=>x([r,l],t))))return!1;const t=e[r];return!(!M(t)&&t!=a||(be(e[l])!=t&&te(e,l),0))},nt=(t,s)=>(!e||oe(F,s)||At(s))&&Ye(t,((e,t)=>at(s,t,e)),(()=>At(s))),at=(e,t,s,n)=>Ye(n?s:it(s,e,t),((n,a)=>k(ot(e,t,a,n),(e=>(s[a]=e,!0)),(()=>!1))),(()=>At(e,t))),ot=(t,s,n,a)=>e?k(ge(ge(F,t),n),(e=>be(a)!=e[r]?At(t,s,n,a,e[l]):a),(()=>At(t,s,n,a))):E(be(a))?At(t,s,n,a):a,rt=(e,t)=>Ye(t?e:ct(e),((t,s)=>k(lt(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>xt())),lt=(e,s)=>t?k(ge(P,e),(t=>be(s)!=t[r]?xt(e,s,t[l]):s),(()=>xt(e,s))):E(be(s))?xt(e,s):s,it=(e,t,s)=>(k(ge(z,t),(([n,a])=>{ce(n,((t,s)=>{ee(e,s)||(e[s]=t)})),ce(a,(n=>{ee(e,n)||At(t,s,n)}))})),e),ct=e=>(t&&(ce(W,((t,s)=>{ee(e,s)||(e[s]=t)})),ce(B,(t=>{ee(e,t)||xt(t)}))),e),dt=e=>ve(F,e,((e,t,s)=>{const n=ue(),a=Ee();ve(we(F,t,ue),s,((e,t,s)=>{Le(e,t,s),k(s[l],(e=>Le(n,t,e)),(()=>ke(a,t)))})),Le(z,t,[n,a])}),((e,t)=>{Le(F,t),Le(z,t)})),ut=e=>ve(P,e,((e,t,s)=>{Le(P,t,s),k(s[l],(e=>Le(W,t,e)),(()=>ke(B,t)))}),((e,t)=>{Le(P,t),Le(W,t),de(B,t)})),ht=e=>ne(e)?os():es(e),gt=e=>ve(K,e,((e,t,s)=>ft(t,s)),((e,t)=>Ct(t))),ft=(e,t)=>ve(we(K,e,(()=>(mt(e,1),Le($,e,xe()),Le(H,e,ue()),ue()))),t,((t,s,n)=>Lt(e,t,s,n)),((t,s)=>pt(e,t,s))),Lt=(e,t,s,n,a)=>ve(we(t,s,(()=>(Et(e,s,1),ue()))),n,((t,n,a)=>wt(e,s,t,n,a)),((n,o)=>bt(e,t,s,n,o,a))),wt=(e,t,s,n,a)=>{oe(s,n)||kt(e,t,n,1);const o=ge(s,n);a!==o&&(Mt(e,t,n,o,a),Le(s,n,a))},vt=(e,t,s,n,a)=>k(ge(t,s),(t=>wt(e,s,t,n,a)),(()=>Lt(e,t,s,it({[n]:a},e,s)))),St=e=>ne(e)?is():ts(e),Rt=e=>ve(U,e,((e,t,s)=>Tt(t,s)),((e,t)=>Vt(t))),Tt=(e,t)=>{oe(U,e)||Dt(e,1);const s=ge(U,e);t!==s&&(Jt(e,s,t),Le(U,e,t))},It=(e,t)=>{const[s]=ge($,e),n=s(t);return oe(ge(K,e),n)?It(e,t):n},yt=e=>ge(K,e)??ft(e,{}),Ct=e=>ft(e,{}),pt=(e,t,s)=>{const[,n]=ge($,e);n(s),Lt(e,t,s,{},!0)},bt=(e,t,s,n,a,o)=>{const r=ge(ge(z,e)?.[0],a);if(!E(r)&&!o)return wt(e,s,n,a,r);const l=t=>{Mt(e,s,t,ge(n,t)),kt(e,s,t,-1),Le(n,t)};E(r)?l(a):fe(n,l),re(n)&&(Et(e,s,-1),re(Le(t,s))&&(mt(e,-1),Le(K,e),Le($,e),Le(H,e)))},Vt=e=>{const t=ge(W,e);if(!E(t))return Tt(e,t);Jt(e,ge(U,e)),Dt(e,-1),Le(U,e)},mt=(e,t)=>Ze(c,e,t),Et=(e,t,s)=>Ze(we(v,e,ue),t,s),kt=(e,t,s,n)=>{const a=ge(H,e),o=ge(a,s)??0;(0==o&&1==n||1==o&&-1==n)&&Ze(we(u,e,ue),s,n),Le(a,s,o!=-n?o+n:null),Ze(we(we(p,e,ue),t,ue),s,n)},Mt=(e,t,s,n,a)=>we(we(we(b,e,ue),t,ue),s,(()=>[n,0]))[1]=a,Dt=(e,t)=>Ze(V,e,t),Jt=(e,t,s)=>we(m,e,(()=>[t,0]))[1]=s,At=(e,t,s,n,a)=>(G(we(we(we(J,e,ue),t,ue),s,(()=>[])),n),a),xt=(e,t,s)=>(G(we(A,e,(()=>[])),t),s),Ft=(e,t,s)=>k(ge(ge(ge(b,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...qe(Xt(e,t,s))])),Qt=e=>k(ge(m,e),(([e,t])=>[!0,e,t]),(()=>[!1,...qe(_t(e))])),zt=e=>re(J)||re(Ae[e])?0:ce(e?Ce(J):J,((t,s)=>ce(t,((t,n)=>ce(t,((t,a)=>$e(Ae[e],[s,n,a],t))))))),Nt=e=>re(A)||re(Qe[e])?0:ce(e?Ie(A):A,((t,s)=>$e(Qe[e],[s],t))),Ot=(e,t,s)=>{if(!re(t))return $e(e,s,(()=>Se(t))),1},jt=e=>{const t=re(pe[e]),s=re(De[e])&&re(ae[e])&&re(le[e])&&t&&re(Y[e]),n=re(Je[e])&&re(Me[e])&&re(_[e])&&re(X[e]);if(!s||!n){const a=e?[Ie(c),ye(u),ye(v),Ce(p),Ce(b)]:[c,u,v,p,b];if(!s){Ot(Y[e],a[0]),ce(a[1],((t,s)=>Ot(ae[e],t,[s])));const s=Ee();ce(a[2],((n,a)=>{Ot(le[e],n,[a])&&!t&&($e(pe[e],[a,null]),ke(s,a))})),t||ce(a[4],((t,n)=>{if(!oe(s,n)){const s=Ee();ce(t,(e=>ce(e,(([t,n],a)=>n!==t?ke(s,a):de(e,a))))),ce(s,(t=>$e(pe[e],[n,t])))}})),ce(a[3],((t,s)=>ce(t,((t,n)=>Ot(De[e],t,[s,n])))))}if(!n){let t;ce(a[4],((s,n)=>{let a;ce(s,((s,o)=>{let r;ce(s,(([s,l],i)=>{l!==s&&($e(Je[e],[n,o,i],l,s,Ft),t=a=r=1)})),r&&$e(Me[e],[n,o],Ft)})),a&&$e(_[e],[n],Ft)})),t&&$e(X[e],void 0,Ft)}}},Pt=e=>{const t=re(Oe[e]),s=re(je[e])&&re(Ne[e]);if(!t||!s){const n=e?[Ie(V),Ie(m)]:[V,m];if(t||Ot(Oe[e],n[0]),!s){let t;ce(n[1],(([s,n],a)=>{n!==s&&($e(je[e],[a],n,s,Qt),t=1)})),t&&$e(Ne[e],void 0,Qt)}}},Wt=(e,...t)=>(us((()=>e(...j(t,C)))),fs),Bt=()=>[Se(b,((e,t)=>-1===ge(c,t)?null:Se(e,((e,s)=>-1===ge(ge(v,t),s)?null:Se(e,(([,e])=>e??null),((e,t)=>Ke(t)))),ne)),ne),Se(m,(([,e])=>e??null),((e,t)=>Ke(t)))],$t=()=>({cellsTouched:s,valuesTouched:n,changedCells:Te(b,He,Ke),invalidCells:Te(J),changedValues:Se(m,He,Ke),invalidValues:Se(A),changedTableIds:Se(c),changedRowIds:Re(v),changedCellIds:Te(p),changedValueIds:Se(V)}),qt=()=>Te(K),Gt=()=>he(K),Ht=e=>he(ge(K,C(e))),Kt=(e,t,s,n=0,a)=>{return j(q(N((o=ge(K,C(e)),r=(e,s)=>[E(t)?s:ge(e,C(t)),s],j([...o?.entries()??[]],(([e,t])=>r(t,e)))),(([e],[t])=>ze(e,t)*(s?-1:1))),n,E(a)?a:n+a),(([,e])=>e));var o,r},Ut=(e,t)=>he(ge(ge(K,C(e)),C(t))),Xt=(e,t,s)=>ge(ge(ge(K,C(e)),C(t)),C(s)),Yt=()=>Se(U),Zt=()=>he(U),_t=e=>ge(U,C(e)),es=e=>Wt((()=>(e=>Ye(e,nt,At))(e)?gt(e):0)),ts=e=>Wt((()=>rt(e)?Rt(e):0)),ss=e=>{try{ht(Xe(e))}catch{}return fs},ns=t=>Wt((()=>{if((e=Ye(t,(e=>Ye(e,st))))&&(dt(t),!re(K))){const e=qt();os(),es(e)}})),as=e=>Wt((()=>{if(t=(e=>Ye(e,st))(e)){const s=Yt();ds(),is(),t=!0,ut(e),ts(s)}})),os=()=>Wt((()=>gt({}))),rs=e=>Wt((e=>oe(K,e)?Ct(e):0),e),ls=(e,t)=>Wt(((e,t)=>k(ge(K,e),(s=>oe(s,t)?pt(e,s,t):0))),e,t),is=()=>Wt((()=>Rt({}))),cs=()=>Wt((()=>{dt({}),e=!1})),ds=()=>Wt((()=>{ut({}),t=!1})),us=(e,t)=>{if(-1!=o){hs();const s=e();return gs(t),s}},hs=()=>(-1!=o&&o++,1==o&&$e(Pe,void 0,Bt,$t),fs),gs=e=>(o>0&&(o--,0==o&&(s=!re(b),n=!re(m),o=1,zt(1),s&&jt(1),Nt(1),n&&Pt(1),e?.(Bt,$t)&&(ce(b,((e,t)=>ce(e,((e,s)=>ce(e,(([e],n)=>Ve(fs,t,s,n,e))))))),ce(m,(([e],t)=>me(fs,t,e))),s=n=!1),$e(We[0],void 0,Bt,$t),o=-1,zt(0),s&&jt(0),Nt(0),n&&Pt(0),$e(We[1],void 0,Bt,$t),o=0,s=n=!1,O([c,u,v,p,b,J,V,m,A],ie))),fs),fs={getContent:()=>[qt(),Yt()],getTables:qt,getTableIds:Gt,getTable:e=>Re(ge(K,C(e))),getTableCellIds:e=>he(ge(H,C(e))),getRowIds:Ht,getSortedRowIds:Kt,getRow:(e,t)=>Se(ge(ge(K,C(e)),C(t))),getCellIds:Ut,getCell:Xt,getValues:Yt,getValueIds:Zt,getValue:_t,hasTables:()=>!re(K),hasTable:e=>oe(K,C(e)),hasTableCell:(e,t)=>oe(ge(H,C(e)),C(t)),hasRow:(e,t)=>oe(ge(K,C(e)),C(t)),hasCell:(e,t,s)=>oe(ge(ge(K,C(e)),C(t)),C(s)),hasValues:()=>!re(U),hasValue:e=>oe(U,C(e)),getTablesJson:()=>Ue(K),getValuesJson:()=>Ue(U),getJson:()=>Ue([K,U]),getTablesSchemaJson:()=>Ue(F),getValuesSchemaJson:()=>Ue(P),getSchemaJson:()=>Ue([F,P]),setContent:([e,t])=>Wt((()=>{(ne(e)?os:es)(e),(ne(t)?is:ts)(t)})),setTables:es,setTable:(e,t)=>Wt((e=>nt(t,e)?ft(e,t):0),e),setRow:(e,t,s)=>Wt(((e,t)=>at(e,t,s)?Lt(e,yt(e),t,s):0),e,t),addRow:(e,t,s=!0)=>us((()=>{let n;return at(e,n,t)&&(e=C(e),Lt(e,yt(e),n=It(e,s?1:0),t)),n})),setPartialRow:(e,t,s)=>Wt(((e,t)=>{if(at(e,t,s,1)){const n=yt(e);se(s,((s,a)=>vt(e,n,t,a,s)))}}),e,t),setCell:(e,t,s,n)=>Wt(((e,t,s)=>k(ot(e,t,s,D(n)?n(Xt(e,t,s)):n),(n=>vt(e,yt(e),t,s,n)))),e,t,s),setValues:ts,setPartialValues:e=>Wt((()=>rt(e,1)?se(e,((e,t)=>Tt(t,e))):0)),setValue:(e,t)=>Wt((e=>k(lt(e,D(t)?t(_t(e)):t),(t=>Tt(e,t)))),e),setTransactionChanges:e=>Wt((()=>{se(e[0],((e,t)=>E(e)?rs(t):se(e,((e,s)=>E(e)?ls(t,s):se(e,((e,n)=>Ve(fs,t,s,n,e))))))),se(e[1],((e,t)=>me(fs,t,e)))})),setTablesJson:ss,setValuesJson:e=>{try{St(Xe(e))}catch{}return fs},setJson:e=>{try{const[t,s]=Xe(e);ht(t),St(s)}catch{ss(e)}return fs},setTablesSchema:ns,setValuesSchema:as,setSchema:(e,t)=>Wt((()=>{ns(e),as(t)})),delTables:os,delTable:rs,delRow:ls,delCell:(e,t,s,n)=>Wt(((e,t,s)=>k(ge(K,e),(a=>k(ge(a,t),(o=>oe(o,s)?bt(e,a,t,o,s,n):0))))),e,t,s),delValues:is,delValue:e=>Wt((e=>oe(U,e)?Vt(e):0),e),delTablesSchema:cs,delValuesSchema:ds,delSchema:()=>Wt((()=>{cs(),ds()})),transaction:us,startTransaction:hs,finishTransaction:gs,forEachTable:e=>ce(K,((t,s)=>e(s,(e=>ce(t,((t,s)=>e(s,(e=>fe(t,e))))))))),forEachTableCell:(e,t)=>fe(ge(H,C(e)),t),forEachRow:(e,t)=>ce(ge(K,C(e)),((e,s)=>t(s,(t=>fe(e,t))))),forEachCell:(e,t,s)=>fe(ge(ge(K,C(e)),C(t)),s),forEachValue:e=>fe(U,e),addSortedRowIdsListener:(e,t,s,n,a,o,r)=>{let l=Kt(e,t,s,n,a);return Be((()=>{const r=Kt(e,t,s,n,a);Q(r,l)||(l=r,o(fs,e,t,s,n,a,l))}),pe[r?1:0],[e,t],[Gt])},addStartTransactionListener:e=>Be(e,Pe),addWillFinishTransactionListener:e=>Be(e,We[0]),addDidFinishTransactionListener:e=>Be(e,We[1]),callListener:e=>(tt(e),fs),delListener:e=>(et(e),fs),getListenerStats:()=>({}),createStore:_e};return se({[g]:[0,X],[f]:[0,Y],[h]:[1,_,[Gt]],[h+R]:[1,ae,[Gt]],[w]:[1,le,[Gt]],[L]:[2,Me,[Gt,Ht]],[R]:[2,De,[Gt,Ht]],[S]:[3,Je,[Gt,Ht,Ut],e=>qe(Xt(...e))],InvalidCell:[3,Ae],[I]:[0,Ne],[y]:[0,Oe],[T]:[1,je,[Zt],e=>qe(_t(e[0]))],InvalidValue:[1,Qe]},(([e,t,s,n],a)=>{fs[d+a+i]=(...a)=>Be(a[e],t[a[e+1]?1:0],e>0?q(a,0,e):void 0,s,n)})),Z(fs)};export{Qe as createCheckpoints,We as createCustomPersister,Ne as createIndexes,Pe as createMetrics,Be as createQueries,$e as createRelationships,_e as createStore,ze as defaultSorter};
Binary file
package/lib/tools.js CHANGED
@@ -1 +1 @@
1
- const e=e=>typeof e,t="tinybase",l="",a=",",n=e(l),o=e(!0),d=e(0),r="type",s="default",I="Listener",$="get",c="add",i="Ids",u="Table",p=u+"s",b=u+i,C="Row",h=C+i,g="Sorted"+C+i,m="Cell",f=m+i,w="Value",y=w+"s",T=w+i,v=(e,t)=>e.every(t),V=(e,t)=>e.sort(t),x=(e,t)=>e.forEach(t),R=(e,t=l)=>e.join(t),k=(e,t)=>e.map(t),S=e=>e.length,A=(e,t)=>e.filter(t),P=(e,...t)=>e.push(...t),E=e=>e.pop(),D=(e,...t)=>e.unshift(...t),O=e=>e.shift(),N=JSON.parse,L=isFinite,G=(e,t)=>e instanceof t,j=e=>null==e,M=e=>e==n||e==o,J=t=>e(t)==n,z=e=>Array.isArray(e),W=t=>{const l=e(t);return M(l)||l==d&&L(t)?l:void 0},B=Object,F=B.keys,U=B.freeze,_=e=>G(e,B)&&e.constructor==B,Z=(e,t)=>k(B.entries(e),(([e,l])=>t(l,e))),H=e=>S(F(e)),Q=e=>_(e)&&0==H(e),q=(e,t)=>e?.has(t)??!1,K=e=>[...e?.values()??[]],X=(e,t)=>e?.forEach(t),Y=(e,t)=>e?.delete(t),ee=e=>new Map(e),te=(e,t)=>e?.get(t),le=(e,t)=>X(e,((e,l)=>t(l,e))),ae=(e,t)=>k([...e?.entries()??[]],(([e,l])=>t(l,e))),ne=(e,t,l)=>j(l)?(Y(e,t),e):e?.set(t,l),oe=(e,t,l)=>(q(e,t)||ne(e,t,l()),te(e,t)),de=e=>e.toUpperCase(),re=e=>e.toLowerCase(),se="a ",Ie="A function for",$e=", and registers a listener so that any changes to that result will cause a re-render",ce="Callback",ie="Del",ue="Deps",pe=ue+"?: React.DependencyList",be="doRollback?: DoRollback",Ce="actions: () => Return, "+be,he="export",ge="Id",me="Invalid",fe="Json",we=re(I),ye="?: ",Te=" | undefined",ve="NonNullable",Ve="Partial",xe="Props",Re="Provider",ke=`Registers a ${we} that will be called`,Se="Represents",Ae="rowId: "+ge,Pe="Schema",Ee="Set",De=", descending?: boolean, offset?: number, limit?: number",Oe="[]",Ne="the Store",Le="Transaction",Ge=Le+"Changes",je=re(Le),Me="Execute a "+je+" to make multiple mutations",Je="Explicitly starts a "+je,ze="Explicitly finishes a "+je,We="the end of the "+je,Be="void",Fe=" => "+Be,Ue="WhenSet",_e=" when setting it",Ze=se+"string serialization of",He=" ",Qe="Gets a callback that can ",qe="the ",Ke=" the schema for",Xe=(e=0,t=0)=>`the ${Ct[e]}content of`+(t?He+Ne:l),Ye=(e=0,t,a=0)=>ut[t]+He+Xe(e,1)+(a?" when setting it":l),et=(e,t=0)=>Se+` a Row when ${t?"s":"g"}etting ${Xe()} the '${e}' `+u,tt=(e,t,l=0)=>`Gets ${l?"sorted, paginated":"the"} Ids of the ${e}s in `+t,lt=(e,t)=>`Calls a function for each ${e} in `+t,at=e=>"The props passed to a component that renders "+e,nt=e=>"A function that takes "+e,ot=(e,t=0)=>Ie+" listening to changes to "+bt[e]+" in "+bt[t],dt=(e,t,a=0)=>ke+" whenever "+bt[e]+" in "+bt[t]+" change"+(a?l:"s"),rt=e=>`the '${e}' `+u,st=e=>"the specified Row in "+rt(e),It=(e,t=0)=>ut[t]+` ${Xe()} `+rt(e),$t=(e,t=0)=>ut[t]+` ${Xe()} `+st(e),ct=(e,t,l=0)=>ut[l]+` the '${t}' Cell for `+st(e),it=(e,t=0)=>ut[t]+` the '${e}' Value`,ut=["Gets","Checks existence of","Sets","Deletes","Sets part of",Se,"Gets "+Ze,"Sets "+Ze,ke+" whenever",Qe+"set",Qe+"add",Qe+"set part of",Qe+"delete","Renders","Gets "+Ze+Ke,"Sets"+Ke,"Deletes"+Ke],pt=[$,"has","set","del","set","forEach",c,l],bt=[Ne,p,qe+u+He+i,se+u,qe+C+He+i,se+C,qe+m+He+i,se+m,"invalid Cell changes",y,qe+w+He+i,se+w,"invalid Value changes",qe+"sorted "+C+He+i,qe+m+He+i+" anywhere"],Ct=[l,"tabular ","keyed value "],ht=e=>new Set(z(e)||j(e)?e:[e]),gt=(e,t)=>e?.add(t),mt=/[^A-Za-z]+/,ft=/[^A-Za-z0-9]+/,wt=/^( *)\/\*\* *(.*?) *\*\/$/gm,yt=(e,t,l)=>e.substring(t,l),Tt=e=>e.includes(a),vt=(e,t,l,a=1)=>{const n=`${t}${1==a?"":a}`;return q(e,n)?vt(e,t,l,a+1):(ne(e,n,l),n)},Vt=e=>e.replace(wt,((e,t,l)=>{const a=77-xt(t);return`${t}/**\n${l.replace(RegExp(`([^\\n]{1,${a}})(\\s|$)`,"g"),t+" * $1\n")}${t} */`})),xt=e=>e.length,Rt=e=>e.flat(1e3),kt=(e,t=0)=>R(k(e.split(ft),((e,l)=>(l>0||t?de:re)(yt(e,0,1))+yt(e,1)))),St=e=>de(R((e&&!mt.test(e[0])?e:" "+e).split(ft),"_")),At=e=>`/** ${e}. */`,Pt=(...e)=>R(A(e,(e=>e)),", "),Et=(...e)=>"{"+R(e,"; ")+"}",Dt=(...e)=>Et(...k(e,(e=>"readonly "+e))),Ot=()=>{const e=[ee(),ee(),ee(),ee()],t=ee(),a=ee(),n=e=>{const t=e.indexOf(" as ");return-1!=t?e.substring(t+4):e};return[(...e)=>R(Rt(e),"\n"),(t,l,...a)=>x(a,(a=>x([0,1],(n=>(t??n)==n?gt(oe(e[n],l,ht),a):0)))),(e,a,n,o=l,d=1)=>vt(t,e,[a,n,o,d]),(e,t,l)=>vt(a,e,z(l)?[`(${t}) => {`,l,"}"]:[`(${t}) => ${l}`]),(e,t)=>te(a,e)===t?e:vt(a,e,t),(t=0)=>k([...V(ae(e[t],((e,t)=>`import {${R(V(K(e),((e,t)=>n(e)>n(t)?1:-1)),", ")}} from '${t}';`)),((e,t)=>Tt(e)!=Tt(t)?Tt(e)?-1:1:e>t?1:-1)),l],(e=>e.replace("{React}","React"))),()=>ae(t,(([e,t,a,n],o)=>[At(t),`${n?he+" ":l}type ${o}${a} = ${e};`,l])),()=>ae(a,((e,t)=>(e=z(e)?e:[e],P(e,E(e)+";"),[`const ${t} = ${O(e)}`,e,l])))]},Nt=e=>{const t=new WeakMap;return l=>(t.has(l)||t.set(l,e(l)),t.get(l))},Lt=(e,t,l)=>[t=>Z(e,((e,a)=>t(a,kt(a,1),l(St(a),`'${a}'`)))),(t,a)=>Z(e[t],((e,t)=>a(t,e[r],e[s],l(St(t),`'${t}'`),kt(t,1)))),e=>Z(t,((t,a)=>e(a,t[r],t[s],l(St(a),`'${a}'`),kt(a,1))))],Gt=(e,t,a,n)=>[(n,o)=>{const d=n+": "+o,r=e(p,Et(...t((e=>`'${e}'?: {[rowId: Id]: `+Et(...a(e,((e,t,a)=>`'${e}'${j(a)?"?":l}: ${t}`)))+"}"))),Ye(1,5)),s=e(p+Ue,Et(...t((e=>`'${e}'?: {[rowId: Id]: `+Et(...a(e,((e,t)=>`'${e}'?: ${t}`)))+"}"))),Ye(1,5,1)),$=e(u+ge,"keyof "+r,"A "+u+" Id in "+Ne),c=`<TId extends ${$}>`,i=e(u,ve+`<${r}[TId]>`,"A "+u+" in "+Ne,c),w=e(u+Ue,ve+`<${s}[TId]>`,"A "+u+" in "+Ne+_e,c),y=e(C,i+"<TId>[Id]","A "+C+" in a "+u,c),T=e(C+Ue,w+"<TId>[Id]","A "+C+" in a "+u+_e,c),v=e(m+ge,`Extract<keyof ${y}<TId>, Id>`,"A "+m+" Id in a "+C,c),V=e(m,ve+`<${r}[TId]>[Id][CId]`,"A "+m+" in a "+C,`<TId extends ${$}, CId extends ${v}<TId>>`),x=e("CellIdCellArray",`CId extends ${v}<TId> ? [cellId: CId, cell: ${V}<TId, CId>] : never`,m+" Ids and types in a "+C,`<TId extends ${$}, CId = ${v}<TId>>`,0),R=e(m+ce,`(...[cellId, cell]: ${x}<TId>)`+Fe,nt(se+m+" Id, and "+m),c),k=e(C+ce,"(rowId: Id, forEachCell: (cellCallback: CellCallback<TId>) "+Fe+") "+Fe,nt(se+C+" Id, and a "+m+" iterator"),c),S=e(u+m+ce,`(cellId: ${v}<TId>, count: number) `+Fe,nt(se+m+" Id, and count of how many times it appears"),c),A=e("TableIdForEachRowArray",`TId extends ${$} ? [tableId: TId, forEachRow: (rowCallback: ${k}<TId>)${Fe}] : never`,u+" Ids and callback types",`<TId = ${$}>`,0),P=e(u+ce,`(...[tableId, forEachRow]: ${A})`+Fe,nt(se+u+" Id, and a "+C+" iterator"),l),E=e("TableIdRowIdCellIdArray",`TId extends ${$} ? [tableId: TId, rowId: Id, cellId: ${v}<TId>] : never`,"Ids for GetCellChange",`<TId = ${$}>`,0),D=e("GetCellChange",`(...[tableId, rowId, cellId]: ${E}) => CellChange`,Ie+" returning information about any Cell's changes during a "+je),O=e(p+I,`(${d}, getCellChange: ${D}${Te})`+Fe,ot(1)),N=e(b+I,`(${d})`+Fe,ot(2)),L=e(u+I,`(${d}, tableId: ${$}, getCellChange: ${D}${Te})`+Fe,ot(3)),G=e(u+f+I,`(${d}, tableId: ${$})`+Fe,ot(14,3)),M=e(h+I,`(${d}, tableId: ${$})`+Fe,ot(4,3)),J=e(g+I,"("+Pt(d,"tableId: "+$,"cellId: Id"+Te,"descending: boolean","offset: number","limit: number"+Te,"sortedRowIds: Ids")+")"+Fe,ot(13,3)),z=e(C+I,"("+Pt(""+d,"tableId: "+$,Ae,`getCellChange: ${D}${Te}`)+")"+Fe,ot(5,3)),W=e(f+I,"("+Pt(""+d,"tableId: "+$,Ae)+")"+Fe,ot(6,5)),B=e("CellListenerArgsArrayInner",`CId extends ${v}<TId> ? [${d}, tableId: TId, ${Ae}, cellId: CId, newCell: ${V}<TId, CId> ${Te}, oldCell: ${V}<TId, CId> ${Te}, getCellChange: ${D} ${Te}] : never`,"Cell args for CellListener",`<TId extends ${$}, CId = ${v}<TId>>`,0),F=e("CellListenerArgsArrayOuter",`TId extends ${$} ? `+B+"<TId> : never","Table args for CellListener",`<TId = ${$}>`,0);return[r,s,$,i,w,y,T,v,V,R,k,S,P,O,N,L,G,M,J,z,W,e(m+I,`(...[${n}, tableId, rowId, cellId, newCell, oldCell, getCellChange]: ${F})`+Fe,ot(7,5)),e(me+m+I,`(${d}, tableId: Id, ${Ae}, cellId: Id, invalidCells: any[])`+Fe,ot(8))]},(t,a)=>{const o=t+": "+a,d=e(y,Et(...n(((e,t,a)=>`'${e}'${j(a)?"?":l}: ${t}`))),Ye(2,5)),r=e(y+Ue,Et(...n(((e,t)=>`'${e}'?: ${t}`))),Ye(2,5,1)),s=e(w+ge,"keyof "+d,"A "+w+" Id in "+Ne),$=e(w,ve+`<${d}[VId]>`,"A "+w+" Id in "+Ne,`<VId extends ${s}>`),c=e("ValueIdValueArray",`VId extends ${s} ? [valueId: VId, value: ${$}<VId>] : never`,w+" Ids and types in "+Ne,`<VId = ${s}>`,0),i=e(w+ce,`(...[valueId, value]: ${c})`+Fe,nt(se+w+" Id, and "+w)),u=e("GetValueChange",`(valueId: ${s}) => ValueChange`,Ie+" returning information about any Value's changes during a "+je),p=e(y+I,`(${o}, getValueChange: ${u}${Te})`+Fe,ot(9)),b=e(T+I,`(${o})`+Fe,ot(10)),C=e("ValueListenerArgsArray",`VId extends ${s} ? [${o}, valueId: VId, newValue: ${$}<VId> ${Te}, oldValue: ${$}<VId> ${Te}, getValueChange: ${u} ${Te}] : never`,"Value args for ValueListener",`<VId = ${s}>`,0);return[d,r,s,$,i,p,b,e(w+I,`(...[${t}, valueId, newValue, oldValue, getValueChange]: `+C+")"+Fe,ot(11)),e(me+w+I,`(${o}, valueId: Id, invalidValues: any[])`+Fe,ot(12))]},(t,l)=>e(Le+I,`(${t}: ${l}, getTransactionChanges: GetTransactionChanges, getTransactionLog: GetTransactionLog)`+Fe,Ie+" listening to the completion of a "+je)],jt=(e,t=l,a=l)=>`store.${e}(${t})`+(a?" as "+a:l),Mt=(e,t=l)=>`fluent(() => ${jt(e,t)})`,Jt=(e,t=l,a=l)=>`store.${e}(${t?t+", ":l}proxy(listener)${a?", "+a:l})`,zt=(e,a,n)=>{const[d,$,v,V,k,S,A,E]=Ot(),[O,N,L]=Lt(e,a,k),[G,M,z]=Gt(v,O,N,L),W=ee(),B=(e=0)=>ae(W,(([t,a,n,o,d],r)=>{const s=e?[r+`: ${d}(${t}): ${a} => ${n},`]:[r+d+`(${t}): ${a};`];return e||D(s,At(o)),P(s,l),s})),F=(e,t,a,n,o,d=l)=>vt(W,e,[t,a,n,o,d]),U=(e,t,a,n,o,d=l,r=l,s=l)=>F(pt[e]+t+(4==e?Ve:l)+a,d,n,(n==H?Mt:jt)(pt[e]+(4==e?Ve:l)+a,r,e?void 0:n),o,s),_=(e,t,a,n=l,o=l,d=1,r=l)=>F(c+e+I,(n?n+", ":l)+we+": "+t+(d?", mutator?: boolean":l),ge,Jt(c+e+I,o,d?"mutator":l),a,r),Z=`./${kt(n)}.d`,H=kt(n,1),q=kt(H),X=[],Y=ee();let oe=[],de=[];if($(1,Z,H,`create${H} as create${H}Decl`),Q(e))$(null,t,p);else{$(0,t,"CellChange"),$(null,t,i);const[e,a,n,d,I,c,w,y,T,V,S,A,E,D,L,M,z,W,B,F,Q,le,ae]=G(q,H),de=ee();O(((e,t)=>{const l=`<'${e}'>`,a=[v(t+u,d+l,Se+` the '${e}' `+u),v(t+u+Ue,I+l,Se+` the '${e}' `+u+_e),v(t+C,c+l,et(e)),v(t+C+Ue,w+l,et(e,1)),v(t+m+ge,y+l,`A Cell Id for the '${e}' `+u),v(t+m+ce,V+l,nt(`a Cell Id and value from a Row in the '${e}' `+u)),v(t+C+ce,S+l,nt(`a Row Id from the '${e}' Table, and a Cell iterator`)),v(t+u+m+ce,A+l,nt(`a Cell Id from anywhere in the '${e}' Table, and a count of how many times it appears`))];ne(de,e,a),$(1,Z,...a)})),$(1,Z,e,a,n,y,E,D,L,M,z,W,B,F,Q,le,ae),oe=[e,a,n,y,D,L,M,z,W,B,F,Q,le,de],x([[e],[o],[H,"tables: "+a,"tables"],[H]],(([e,t,a],n)=>U(n,l,p,e,Ye(1,n),t,a))),U(0,l,b,n+Oe,tt(u,Ne)),U(5,l,u,Be,lt(u,Ne),"tableCallback: "+E,"tableCallback as any"),O(((e,t,a)=>{const[n,d,r,s,I,$,c,p]=te(de,e);x([[n],[o],[H,"table: "+d,", table"],[H]],(([n,o,d=l],r)=>U(r,t,u,n,It(e,r),o,a+d))),U(0,t,u+f,i,tt(m,"the whole of "+rt(e)),l,a),U(5,t,u+m,Be,lt(u+m,"the whole of "+rt(e)),"tableCellCallback: "+p,a+", tableCellCallback as any"),U(0,t,h,i,tt(C,rt(e)),l,a),U(0,t,g,i,tt(C,rt(e),1),"cellId?: "+I+De,a+", cellId, descending, offset, limit"),U(5,t,C,Be,lt(C,rt(e)),"rowCallback: "+c,a+", rowCallback as any"),x([[r],[o],[H,", row: "+s,", row"],[H],[H,", partialRow: "+s,", partialRow"]],(([n,o=l,d=l],r)=>U(r,t,C,n,$t(e,r),Ae+o,a+", rowId"+d))),U(6,t,C,ge+Te,"Add a new Row to "+rt(e),"row: "+s+", reuseIds?: boolean",a+", row, reuseIds"),U(0,t,f,I+Oe,tt(m,st(e)),Ae,a+", rowId"),U(5,t,m,Be,lt(m,st(e)),Ae+", cellCallback: "+$,a+", rowId, cellCallback as any"),N(e,((n,d,r,s,I)=>{const $="Map"+kt(d,1);ne(Y,d,$);const c=d+(j(r)?Te:l);x([[c],[o],[H,`, cell: ${d} | `+$,", cell as any"],[H]],(([o,d=l,r=l],$)=>U($,t+I,m,o,ct(e,n,$),Ae+d,a+", rowId, "+s+r))),U(1,t+I,u+m,o,ut[1]+` the '${n}' Cell anywhere in `+rt(e),l,a+", "+s)}))})),U(0,l,p+fe,fe,Ye(1,6)),U(2,l,p+fe,H,Ye(1,7),"tablesJson: "+fe,"tables"+fe),_(p,D,Ye(1,8)+" changes"),_(b,L,dt(2,0,1)),_(u,M,dt(3,0),`tableId: ${n} | null`,"tableId"),_(u+f,z,dt(14,3,1),`tableId: ${n} | null`,"tableId"),_(h,W,dt(4,3,1),`tableId: ${n} | null`,"tableId"),_(g,B,dt(13,3,1),Pt("tableId: TId",`cellId: ${y}<TId>`+Te,"descending: boolean","offset: number","limit: number"+Te),Pt("tableId","cellId","descending","offset","limit"),1,"<TId extends TableId>"),_(C,F,dt(5,3),`tableId: ${n} | null, rowId: IdOrNull`,"tableId, rowId"),_(f,Q,dt(6,5,1),`tableId: ${n} | null, rowId: IdOrNull`,"tableId, rowId"),_(m,le,dt(7,5),`tableId: ${n} | null, rowId: IdOrNull, cellId: ${R(O((e=>te(de,e)?.[4]??l))," | ")} | null`,"tableId, rowId, cellId"),_(me+m,ae,ke+" whenever an invalid Cell change was attempted","tableId: IdOrNull, rowId: IdOrNull, cellId: IdOrNull","tableId, rowId, cellId"),$(1,Z,...K(Y)),P(X,".set"+p+Pe+"({",Rt(O(((e,t,a)=>[`[${a}]: {`,...N(e,((e,t,a,n)=>`[${n}]: {[${k(St(r),`'${r}'`)}]: ${k(St(t),`'${t}'`)}${j(a)?l:`, [${k(St(s),`'${s}'`)}]: `+(J(a)?k(St(a),`'${a}'`):a)}},`)),"},"]))),"})")}if(Q(a))$(null,t,y);else{const[e,a,n,d,I,c,i,u,p]=M(q,H);$(1,Z,e,a,n,I,c,i,u,p),de=[e,a,n,c,i,u],x([[e],[o],[H,"values: "+a,"values"],[H],[H,"partialValues: "+a,"partialValues"]],(([e,t,a],n)=>U(n,l,y,e,Ye(2,n),t,a))),U(0,l,T,n+Oe,tt(w,Ne)),U(5,l,w,"void",lt(w,Ne),"valueCallback: "+I,"valueCallback as any"),L(((e,t,a,n,d)=>{const r="Map"+kt(t,1);ne(Y,t,r),x([[t],[o],[H,`value: ${t} | `+r,", value as any"],[H]],(([t,a,o=l],r)=>U(r,d,w,t,it(e,r),a,n+o)))})),U(0,l,y+fe,fe,Ye(2,6)),U(2,l,y+fe,H,Ye(2,7),"valuesJson: "+fe,"values"+fe),_(y,c,Ye(2,8)+" changes"),_(T,i,dt(10,0,1)),_(w,u,dt(11,0),`valueId: ${n} | null`,"valueId"),_(me+w,p,ke+" whenever an invalid Value change was attempted","valueId: IdOrNull","valueId"),$(1,Z,...K(Y)),$(0,t,"ValueChange"),P(X,".set"+y+Pe+"({",L(((e,t,a,n)=>[`[${n}]: {[${k(St(r),`'${r}'`)}]: ${k(St(t),`'${t}'`)}${j(a)?l:`, [${k(St(s),`'${s}'`)}]: `+(J(a)?k(St(a),`'${a}'`):a)}},`])),"})")}U(0,l,"Content",`[${p}, ${y}]`,Ye(0,0)),U(2,l,"Content",H,Ye(0,2),`[tables, values]: [${p}, ${y}]`,"[tables, values]"),U(2,l,Ge,H,`Applies a set of ${Ge} to the Store`,"transactionChanges: "+Ge,"transactionChanges"),le(Y,((e,t)=>v(t,`(cell: ${e}${Te}) => `+e,`Takes a ${e} Cell value and returns another`))),$(null,t,"DoRollback",ge,"IdOrNull",fe,"Store",Ge),$(0,t,"Get"+Ge,"GetTransactionLog"),U(0,l,fe,fe,Ye(0,6)),U(2,l,fe,H,Ye(0,7),"tablesAndValuesJson: "+fe,"tablesAndValuesJson"),U(7,l,je,"Return",Me,Ce,"actions, doRollback","<Return>"),U(7,l,"start"+Le,H,Je),U(7,l,"finish"+Le,H,ze,be,"doRollback");const re=z(q,H);return _("Start"+Le,re,ke+" just before the start of the "+je,l,l,0),_("WillFinish"+Le,re,ke+" just before "+We,l,l,0),_("DidFinish"+Le,re,ke+" just after "+We,l,l,0),U(7,l,"call"+I,H,"Manually provoke a listener to be called","listenerId: Id","listenerId"),U(3,l,I,H,"Remove a listener that was previously added to "+Ne,"listenerId: Id","listenerId"),F("getStore",l,"Store","store",ut[0]+" the underlying Store object"),$(1,t,"createStore"),$(1,Z,H,`create${H} as create${H}Decl`,re),k("store",["createStore()",...X]),V("fluent","actions: () => Store",["actions();",`return ${q};`]),V("proxy","listener: any",`(_: Store, ...params: any[]) => listener(${q}, ...params)`),k(q,["{",...B(1),"}"]),[d(...S(0),...A(),he+" interface "+H+" {",...B(0),"}",l,At(`Creates a ${H} object`),he+" function create"+H+"(): "+H+";"),d(...S(1),he+" const create"+H+": typeof create"+H+"Decl = () => {",...E(),`return Object.freeze(${q});`,"};"),oe,de]},Wt=e=>$+e,Bt=e=>Pt(Wt(e),Wt(e)+ue),Ft="debugIds?: boolean",Ut="debugIds={debugIds}",_t="then"+pe,Zt="Parameter",Ht=": (parameter: "+Zt+", store: Store) => ",Qt="const contextValue = useContext(Context);",qt=", based on a parameter",Kt=": ",Xt="<"+Zt+",>",Yt=Zt+"ized"+ce+"<"+Zt+">",el="rowId",tl="rowId={rowId}",ll=", separator, debugIds",al="separator?: ReactElement | string",nl="then?: (store: Store",ol=Pt(nl+")"+Fe,_t),dl="then, then"+ue,rl=el+Kt+ge,sl="View",Il=(e,...t)=>Pt(...t,we+": "+e,we+pe,"mutator?: boolean"),$l=(...e)=>Pt(...e,we,we+ue,"mutator"),cl=(e,a,n,o,d)=>{const[r,s,$,c,v,V,x,k]=Ot(),[S,A,E]=Lt(e,a,v),O=`./${kt(n)}.d`,N=`./${kt(n)}-ui-react.d`,L="tinybase/ui-react",G=kt(n,1),M=kt(G),J=G+"Or"+G+ge,z=M+"Or"+G+ge,W=M+`={${M}}`,B=ee(),F=(e,t,a,n,o,d=l)=>(s(1,N,e+" as "+e+"Decl"),vt(B,e,[t,a,n,o,d])),U=(e,t,a,n,o,d=l)=>F("use"+e,t,a,n,o,d),_=(e,t,a,n,o=l,d=l,r=l,I=l,$=l)=>(s(1,L,`use${t} as use${t}Core`),U(e,Pt(o,X,I),a,le+`(${z}, use${t}Core, [`+(d||l)+($?"], ["+$:l)+"]);",n,r)),Z=(e,t,l,a)=>F(e,t,1,l,a),H=(e=0)=>ae(B,(([t,a,n,o,d],r)=>{const s=e?[he+` const ${r}: typeof ${r}Decl = ${d}(${t}): ${1==a?"any":a} =>`,n]:[he+` function ${r}${d}(${t}): ${1==a?"ComponentReturnType":a};`];return e||D(s,At(o)),P(s,l),s}));s(null,t,ge,"Store",ce,Zt+"ized"+ce),s(0,L,"ComponentReturnType"),s(null,L,"ExtraProps"),s(0,O,G);const q=$(J,G+" | "+ge,`Used when you need to refer to a ${G} in a React hook or component`),K=$(Re+xe,Dt(M+ye+G,M+`ById?: {[${M}Id: Id]: ${G}}`),`Used with the ${Re} component, so that a `+G+" can be passed into the context of an application");s(0,"react","ReactElement","ComponentType"),s(1,"react","React"),s(1,N,q,K);const X=z+ye+q;v("{createContext, useContext, useMemo}","React"),v("Context",`createContext<[${G}?, {[${M}Id: Id]: ${G}}?]>([])`),U("Create"+G,`create: () => ${G}, create`+pe,G,"\n// eslint-disable-next-line react-hooks/exhaustive-deps\nuseMemo(create, createDeps)",`Create a ${G} within a React application with convenient memoization`);const Y=U(G,"id?: Id",G+Te,["{",Qt,"return id == null ? contextValue[0] : contextValue[1]?.[id];","}"],`Get a reference to a ${G} from within a ${Re} component context`),le=c("useHook",z+`: ${q} | undefined, hook: (...params: any[]) => any, preParams: any[], postParams: any[] = []`,[`const ${M} = ${Y}(${z} as Id);`,`return hook(...preParams, ((${z} == null || typeof ${z} == 'string')`,`? ${M} : ${z})?.getStore(), ...postParams)`]),ne=c("getProps","getProps: ((id: any) => ExtraProps) | undefined, id: Id","(getProps == null) ? ({} as ExtraProps) : getProps(id)"),oe=c("wrap",Pt("children: any","separator?: any","encloseWithId?: boolean","id?: Id"),["const separated = separator==null || !Array.isArray(children)"," ? children"," : children.map((child, c) => (c > 0 ? [separator, child] : child));","return encloseWithId ? [id, ':{', separated, '}'] : separated;"]),de=v("NullComponent","() => null");if(!Q(e)){const[e,a,n,d,r,w,y,T,v,V,x,k,P,E]=o;s(null,O,e,a,n,r,w,y,T,v,V,x,k,P),s(0,O,d),s(1,O,G),s(null,t,i,"IdOrNull");const D=c("tableView",`{${M}, rowComponent, getRowComponentProps`+ll+"}: any, rowIds: Ids, tableId: Id, defaultRowComponent: React.ComponentType<any>",["const Row = rowComponent ?? defaultRowComponent;",`return ${oe}(rowIds.map((rowId) => (`,"<Row","{..."+ne+"(getRowComponentProps, rowId)}","key={rowId}","tableId={tableId}",tl,W,Ut,"/>","))",ll,", tableId,",");"]),L=c("getDefaultTableComponent","tableId: Id",R(S(((e,t,l)=>`tableId == ${l} ? ${t}TableView : `)))+de),J=c("getDefaultCellComponent","tableId: Id, cellId: Id",R(S(((e,t,l)=>`tableId == ${l} ? ${R(A(e,((e,l,a,n,o)=>`cellId == ${n} ? `+t+o+"CellView : ")))+de} : `)))+de);_(p,p,e,Ye(1,0)+$e);const z=_(b,b,n+Oe,tt(u,Ne)+$e);_(Ee+p+ce,Ee+p+ce,Yt,Ye(1,9)+qt,Pt(Wt(p)+Ht+a,Wt(p)+pe),Bt(p),Xt,Pt(nl,`tables: ${a})`+Fe,_t),dl),_(ie+p+ce,ie+p+ce,ce,Ye(1,12),l,l,l,ol,dl);const B=$(m+xe,Dt("tableId?: TId","rowId: Id","cellId?: CId",M+ye+G,Ft),at(se+m),`<TId extends ${n}, CId extends ${d}<TId>>`),F=$(C+xe,Dt("tableId?: TId","rowId: Id",M+ye+G,"cellComponents?: {readonly [CId in "+d+`<TId>]?: ComponentType<${B}<TId, CId>>;}`,`getCellComponentProps?: (cellId: ${d}<TId>) => ExtraProps`,al,Ft),at(se+C),`<TId extends ${n}>`),U=$(u+xe,Dt("tableId?: TId",M+ye+G,`rowComponent?: ComponentType<${F}<TId>>`,"getRowComponentProps?: (rowId: Id) => ExtraProps",al,Ft),at(se+u),`<TId extends ${n}>`),H=$("Sorted"+u+xe,Dt("tableId?: TId","cellId?: "+d+"<TId>","descending?: boolean","offset?: number","limit?: number",M+ye+G,`rowComponent?: ComponentType<${F}<TId>>`,"getRowComponentProps?: (rowId: Id) => ExtraProps",al,Ft),at(se+"sorted "+u),`<TId extends ${n}>`),Q=$(p+xe,Dt(M+ye+G,"tableComponents?: {readonly [TId in "+n+`]?: ComponentType<${U}<TId>>;}`,`getTableComponentProps?: (tableId: ${n}) => ExtraProps`,al,Ft),at(Xe(1,1)));s(1,N,Q,U,H,F,B),Z(p+sl,"{"+M+", tableComponents, getTableComponentProps"+ll+"}: "+Q,[oe+`(${z}(${M}).map((tableId) => {`,"const Table = (tableComponents?.[tableId] ?? "+L+"(tableId)) as React.ComponentType<TableProps<typeof tableId>>;","return <Table",`{...${ne}(getTableComponentProps, tableId)}`,"tableId={tableId}","key={tableId}",W,Ut,"/>;","}), separator)"],Ye(1,13)+$e),S(((e,t,a)=>{const[n,o,d,r,I]=te(E,e);s(null,O,n,o,d,r,I),_(t+u,u,n,It(e)+$e,l,a),_(t+u+f,u+f,i,tt(m,"the whole of "+rt(e))+$e,l,a);const $=_(t+h,h,i,tt(C,rt(e))+$e,l,a),c=_(t+g,g,i,tt(C,rt(e),1)+$e,"cellId?: "+I+", descending?: boolean, offset?: number, limit?: number",a+", cellId, descending, offset, limit");_(t+C,C,d,$t(e)+$e,rl,Pt(a,el));const p=_(t+f,f,I+Oe,tt(m,st(e))+$e,rl,Pt(a,el));_(Ee+t+u+ce,Ee+u+ce,Yt,It(e,9)+qt,Pt(Wt(u)+Ht+o,Wt(u)+pe),Pt(a,Bt(u)),Xt,Pt(nl,`table: ${o})`+Fe,_t),dl),_(ie+t+u+ce,ie+u+ce,ce,It(e,12),l,a,l,ol,dl),_(Ee+t+C+ce,Ee+C+ce,Yt,$t(e,9)+qt,Pt(rl,Wt(C)+Ht+r,Wt(C)+pe),Pt(a,el,Bt(C)),Xt,Pt(nl,`row: ${r})`+Fe,_t),dl),_("Add"+t+C+ce,"Add"+C+ce,Yt,$t(e,10)+qt,Pt(Wt(C)+Ht+r,Wt(C)+pe),Pt(a,Bt(C)),Xt,"then?: ("+Pt(rl+Te,"store: Store","row: "+r+")"+Fe,"then"+pe)+", reuseRowIds?: boolean",dl+", reuseRowIds"),_(Ee+t+Ve+C+ce,Ee+Ve+C+ce,Yt,$t(e,11)+qt,Pt(rl,Wt(Ve+C)+Ht+r,Wt(Ve+C)+pe),Pt(a,el,Bt(Ve+C)),Xt,Pt(nl,`partialRow: ${r})`+Fe,_t),dl),_(ie+t+C+ce,ie+C+ce,ce,$t(e,12),rl,Pt(a,el),l,ol,dl);const b=Z(t+C+sl,"{rowId, "+M+", cellComponents, getCellComponentProps"+ll+`}: ${F}<'${e}'>`,[oe+`(${p}(rowId, ${M}).map((cellId) => {`,"const Cell = (cellComponents?.[cellId] ?? "+J+`(${a}, cellId)) as React.ComponentType<CellProps<typeof `+a+", typeof cellId>>;","return <Cell",`{...${ne}(getCellComponentProps, cellId)} `,"key={cellId}",`tableId={${a}}`,tl,"cellId={cellId}",W,Ut,"/>;","})"+ll+", rowId)"],$t(e,13)+$e);Z(t+"Sorted"+u+sl,"{cellId, descending, offset, limit, ...props}: "+H+`<'${e}'>`,D+"(props, "+c+`(cellId, descending, offset, limit, props.${M}), ${a}, ${b});`,It(e,13)+", sorted"+$e),Z(t+u+sl,`props: ${U}<'${e}'>`,D+"(props, "+$+`(props.${M}), ${a}, ${b});`,It(e,13)+$e),A(e,((n,o,d,r,I)=>{const $="Map"+kt(o,1);s(0,O,$),s(1,O,$);const c=_(t+I+m,m,o+(j(d)?Te:l),ct(e,n)+$e,rl,Pt(a,el,r));_(Ee+t+I+m+ce,Ee+m+ce,Yt,ct(e,n,9)+qt,Pt(rl,Wt(m)+Ht+o+" | "+$,Wt(m)+pe),Pt(a,el,r,Bt(m)),Xt,Pt(nl,`cell: ${o} | ${$})`+Fe,_t),dl),_(ie+t+I+m+ce,ie+m+ce,ce,ct(e,n,12),Pt(rl,"forceDel?: boolean"),Pt(a,el,r,"forceDel"),l,ol,dl),Z(t+I+m+sl,`{rowId, ${M}, debugIds}: `+B+`<'${e}', '${n}'>`,[oe+`('' + ${c}(rowId, `+M+`) ?? '', undefined, debugIds, ${r})`],ct(e,n,13)+$e)}))}));const q=R(S((e=>te(E,e)?.[4]??l))," | ");_(p+I,p+I,Be,Ye(1,8)+" changes",Il(r),$l()),_(b+I,b+I,Be,dt(2,0,1),Il(w),$l()),_(u+I,u+I,Be,dt(3,0),Il(y,`tableId: ${n} | null`),$l("tableId")),_(u+f+I,u+f+I,Be,dt(14,3,1),Il(T,`tableId: ${n} | null`),$l("tableId")),_(h+I,h+I,Be,dt(4,3,1),Il(v,`tableId: ${n} | null`),$l("tableId")),_(g+I,g+I,Be,dt(13,3,1),Il(V,`tableId: ${n} | null`,"cellId: "+q+Te,"descending: boolean","offset: number","limit: number"+Te),$l("tableId","cellId","descending","offset","limit")),_(C+I,C+I,Be,dt(5,3),Il(x,`tableId: ${n} | null`,el+": IdOrNull"),$l("tableId",el)),_(f+I,f+I,Be,dt(6,5,1),Il(k,`tableId: ${n} | null`,el+": IdOrNull"),$l("tableId",el)),_(m+I,m+I,Be,dt(7,5),Il(P,`tableId: ${n} | null`,el+": IdOrNull",`cellId: ${q} | null`),$l("tableId",el,"cellId"))}if(!Q(a)){const[e,t,a,n,o,r]=d;s(null,O,...d),s(1,O,G);const i=c("getDefaultValueComponent","valueId: Id",R(E(((e,t,l,a,n)=>`valueId == ${a} ? `+n+"ValueView : ")))+de);_(y,y,e,Ye(2,0)+$e);const u=_(T,T,a+Oe,tt(w,Ne)+$e);_(Ee+y+ce,Ee+y+ce,Yt,Ye(2,9)+qt,Pt(Wt(y)+Ht+t,Wt(y)+pe),Bt(y),Xt,Pt(nl,`values: ${t})`+Fe,_t),dl),_(Ee+Ve+y+ce,Ee+Ve+y+ce,Yt,Ye(2,11)+qt,Pt(Wt(Ve+y)+Ht+t,Wt(Ve+y)+pe),Bt(Ve+y),Xt,Pt(nl,`partialValues: ${t})`+Fe,_t),dl),_(ie+y+ce,ie+y+ce,ce,Ye(2,12),l,l,l,ol,dl);const p=$(w+xe,Dt("valueId?: VId",M+ye+G,Ft),at("a Value"),`<VId extends ${a}>`),b=$(y+xe,Dt(M+ye+G,"valueComponents?: {readonly [VId in "+a+`]?: ComponentType<${p}<VId>>;}`,`getValueComponentProps?: (valueId: ${a}) => ExtraProps`,al,Ft),at(Xe(2,1)));s(1,N,b,p),Z(y+sl,"{"+M+", valueComponents, getValueComponentProps"+ll+"}: "+b,[oe+`(${u}(${M}).map((valueId) => {`,"const Value = valueComponents?.[valueId] ?? "+i+"(valueId);","return <Value",`{...${ne}(getValueComponentProps, valueId)}`,"key={valueId}",W,Ut,"/>;","}), separator)"],Ye(2,13)+$e),E(((e,t,a,n,o)=>{const d="Map"+kt(t,1);s(0,O,d),s(1,O,d);const r=_(o+w,w,t,it(e)+$e,l,n);_(Ee+o+w+ce,Ee+w+ce,Yt,it(e,9)+qt,Pt(Wt(w)+Ht+t+" | "+d,Wt(w)+pe),Pt(n,Bt(w)),Xt,Pt(nl,`value: ${t} | ${d})`+Fe,_t),dl),_(ie+o+w+ce,ie+w+ce,ce,it(e,12),l,n,l,ol,dl),Z(o+w+sl,`{${M}, debugIds}: ${p}<'${e}'>`,[oe+`('' + ${r}(`+M+`) ?? '', undefined, debugIds, ${n})`],it(e,13)+$e)})),_(y+I,y+I,Be,Ye(2,8)+" changes",Il(n),$l()),_(T+I,T+I,Be,dt(10,0,1),Il(o),$l()),_(w+I,w+I,Be,dt(11,0),Il(r,`valueId: ${a} | null`),$l("valueId"))}return Z(Re,`{${M}, ${M}ById, children}: `+K+" & {children: React.ReactNode}",["{",Qt,"return (","<Context."+Re,"value={useMemo(",`() => [${M} ?? contextValue[0], {...contextValue[1], ...${M}ById}],`,`[${M}, ${M}ById, contextValue],`,")}>","{children}",`</Context.${Re}>`,");","}"],"Wraps part of an application in a context that provides default objects to be used by hooks and components within"),[r(...V(0),...x(),...H(0)),r(...V(1),...k(),...H(1))]},il=(e,t,a)=>{if(Q(e)&&Q(t))return[l,l,l,l];const[n,o,d,r]=zt(e,t,a);return[n,o,...cl(e,t,a,d,r)]},ul={parser:"typescript",singleQuote:!0,trailingComma:"all",bracketSpacing:!1,jsdocSingleLineComment:!1},pl=Nt((e=>{const t=()=>{const t=N(e.getTablesSchemaJson());return!Q(t)||v(e.getTableIds(),(l=>{const a=e.getRowIds(l),n=ee();if(v(a,(t=>v(e.getCellIds(l,t),(a=>{const o=e.getCell(l,t,a),d=oe(n,a,(()=>[W(o),ee(),[0],0])),[r,s,[I]]=d,$=oe(s,o,(()=>0))+1;return $>I&&(d[2]=[$,o]),ne(s,o,$),d[3]++,r==W(o)})))))return t[l]={},X(n,(([e,,[,n],o],d)=>{t[l][d]={[r]:e,...o==S(a)?{[s]:n}:{}}})),1}))?t:{}},l=()=>{const t=N(e.getValuesSchemaJson());return Q(t)&&e.forEachValue(((e,l)=>{t[e]={[r]:W(l)}})),t},a=e=>il(t(),l(),e),n=async e=>{const t=["d.ts","ts","d.ts","tsx"];let l;try{l=(await import("prettier")).format}catch(e){l=e=>e}return k(a(e),((e,a)=>Vt(l(e,{...ul,filepath:"_."+t[a]}))))};return U({getStoreStats:t=>{let l=0,a=0,n=0;const o={};return e.forEachTable(((e,d)=>{l++;let r=0,s=0;const I={};d(((e,l)=>{r++;let a=0;l((()=>a++)),s+=a,t&&(I[e]={rowCells:a})})),a+=r,n+=s,t&&(o[e]={tableRows:r,tableCells:s,rows:I})})),{totalTables:l,totalRows:a,totalCells:n,totalValues:S(e.getValueIds()),jsonLength:xt(e.getJson()),...t?{detail:{tables:o}}:{}}},getStoreTablesSchema:t,getStoreValuesSchema:l,getStoreApi:a,getPrettyStoreApi:n,getStore:()=>e})}));export{pl as createTools};
1
+ const e=e=>typeof e,t="tinybase",l="",a=",",n=e(l),o=e(!0),d=e(0),r="type",s="default",I="Listener",$="get",c="add",i="Ids",u="Table",p=u+"s",b=u+i,C="Row",h=C+i,g="Sorted"+C+i,m="Cell",f=m+i,w="Value",y=w+"s",T=w+i,v=isFinite,V=(e,t)=>e instanceof t,x=e=>null==e,R=e=>e==n||e==o,k=t=>e(t)==n,S=e=>Array.isArray(e),A=t=>{const l=e(t);return R(l)||l==d&&v(t)?l:void 0},P=(e,t)=>e.every(t),E=(e,t)=>e.sort(t),D=(e,t)=>e.forEach(t),O=(e,t=l)=>e.join(t),N=(e,t)=>e.map(t),L=e=>e.length,G=(e,t)=>e.filter(t),j=(e,...t)=>e.push(...t),M=e=>e.pop(),J=(e,...t)=>e.unshift(...t),z=e=>e.shift(),W=Object,B=W.keys,F=W.freeze,U=e=>V(e,W)&&e.constructor==W,_=(e,t)=>N(W.entries(e),(([e,l])=>t(l,e))),Z=e=>L(B(e)),H=e=>U(e)&&0==Z(e),Q=(e,t)=>e?.has(t)??!1,q=e=>[...e?.values()??[]],K=(e,t)=>e?.forEach(t),X=(e,t)=>e?.delete(t),Y=e=>new Map(e),ee=(e,t)=>e?.get(t),te=(e,t)=>K(e,((e,l)=>t(l,e))),le=(e,t)=>N([...e?.entries()??[]],(([e,l])=>t(l,e))),ae=(e,t,l)=>x(l)?(X(e,t),e):e?.set(t,l),ne=(e,t,l)=>(Q(e,t)||ae(e,t,l()),ee(e,t)),oe=e=>e.toUpperCase(),de=e=>e.toLowerCase(),re="a ",se="A function for",Ie=", and registers a listener so that any changes to that result will cause a re-render",$e="Callback",ce="Del",ie="Deps",ue=ie+"?: React.DependencyList",pe="doRollback?: DoRollback",be="actions: () => Return, "+pe,Ce="export",he="Id",ge="Invalid",me="Json",fe=de(I),we="?: ",ye=" | undefined",Te="NonNullable",ve="Partial",Ve="Props",xe="Provider",Re=`Registers a ${fe} that will be called`,ke="Represents",Se="rowId: "+he,Ae="Schema",Pe="Set",Ee=", descending?: boolean, offset?: number, limit?: number",De="[]",Oe="the Store",Ne="Transaction",Le=Ne+"Changes",Ge=de(Ne),je="Execute a "+Ge+" to make multiple mutations",Me="Explicitly starts a "+Ge,Je="Explicitly finishes a "+Ge,ze="the end of the "+Ge,We="void",Be=" => "+We,Fe="WhenSet",Ue=" when setting it",_e=re+"string serialization of",Ze=" ",He="Gets a callback that can ",Qe="the ",qe=" the schema for",Ke=(e=0,t=0)=>`the ${bt[e]}content of`+(t?Ze+Oe:l),Xe=(e=0,t,a=0)=>it[t]+Ze+Ke(e,1)+(a?" when setting it":l),Ye=(e,t=0)=>ke+` a Row when ${t?"s":"g"}etting ${Ke()} the '${e}' `+u,et=(e,t,l=0)=>`Gets ${l?"sorted, paginated":"the"} Ids of the ${e}s in `+t,tt=(e,t)=>`Calls a function for each ${e} in `+t,lt=e=>"The props passed to a component that renders "+e,at=e=>"A function that takes "+e,nt=(e,t=0)=>se+" listening to changes to "+pt[e]+" in "+pt[t],ot=(e,t,a=0)=>Re+" whenever "+pt[e]+" in "+pt[t]+" change"+(a?l:"s"),dt=e=>`the '${e}' `+u,rt=e=>"the specified Row in "+dt(e),st=(e,t=0)=>it[t]+` ${Ke()} `+dt(e),It=(e,t=0)=>it[t]+` ${Ke()} `+rt(e),$t=(e,t,l=0)=>it[l]+` the '${t}' Cell for `+rt(e),ct=(e,t=0)=>it[t]+` the '${e}' Value`,it=["Gets","Checks existence of","Sets","Deletes","Sets part of",ke,"Gets "+_e,"Sets "+_e,Re+" whenever",He+"set",He+"add",He+"set part of",He+"delete","Renders","Gets "+_e+qe,"Sets"+qe,"Deletes"+qe],ut=[$,"has","set","del","set","forEach",c,l],pt=[Oe,p,Qe+u+Ze+i,re+u,Qe+C+Ze+i,re+C,Qe+m+Ze+i,re+m,"invalid Cell changes",y,Qe+w+Ze+i,re+w,"invalid Value changes",Qe+"sorted "+C+Ze+i,Qe+m+Ze+i+" anywhere"],bt=[l,"tabular ","keyed value "],Ct=e=>new Set(S(e)||x(e)?e:[e]),ht=(e,t)=>e?.add(t),gt=/[^A-Za-z]+/,mt=/[^A-Za-z0-9]+/,ft=/^( *)\/\*\* *(.*?) *\*\/$/gm,wt=(e,t,l)=>e.substring(t,l),yt=e=>e.includes(a),Tt=(e,t,l,a=1)=>{const n=`${t}${1==a?"":a}`;return Q(e,n)?Tt(e,t,l,a+1):(ae(e,n,l),n)},vt=e=>e.replace(ft,((e,t,l)=>{const a=77-Vt(t);return`${t}/**\n${l.replace(RegExp(`([^\\n]{1,${a}})(\\s|$)`,"g"),t+" * $1\n")}${t} */`})),Vt=e=>e.length,xt=e=>e.flat(1e3),Rt=(e,t=0)=>O(N(e.split(mt),((e,l)=>(l>0||t?oe:de)(wt(e,0,1))+wt(e,1)))),kt=e=>oe(O((e&&!gt.test(e[0])?e:" "+e).split(mt),"_")),St=e=>`/** ${e}. */`,At=(...e)=>O(G(e,(e=>e)),", "),Pt=(...e)=>"{"+O(e,"; ")+"}",Et=(...e)=>Pt(...N(e,(e=>"readonly "+e))),Dt=()=>{const e=[Y(),Y(),Y(),Y()],t=Y(),a=Y(),n=e=>{const t=e.indexOf(" as ");return-1!=t?e.substring(t+4):e};return[(...e)=>O(xt(e),"\n"),(t,l,...a)=>D(a,(a=>D([0,1],(n=>(t??n)==n?ht(ne(e[n],l,Ct),a):0)))),(e,a,n,o=l,d=1)=>Tt(t,e,[a,n,o,d]),(e,t,l)=>Tt(a,e,S(l)?[`(${t}) => {`,l,"}"]:[`(${t}) => ${l}`]),(e,t)=>ee(a,e)===t?e:Tt(a,e,t),(t=0)=>N([...E(le(e[t],((e,t)=>`import {${O(E(q(e),((e,t)=>n(e)>n(t)?1:-1)),", ")}} from '${t}';`)),((e,t)=>yt(e)!=yt(t)?yt(e)?-1:1:e>t?1:-1)),l],(e=>e.replace("{React}","React"))),()=>le(t,(([e,t,a,n],o)=>[St(t),`${n?Ce+" ":l}type ${o}${a} = ${e};`,l])),()=>le(a,((e,t)=>(e=S(e)?e:[e],j(e,M(e)+";"),[`const ${t} = ${z(e)}`,e,l])))]},Ot=e=>{const t=new WeakMap;return l=>(t.has(l)||t.set(l,e(l)),t.get(l))},Nt=(e,t,l)=>[t=>_(e,((e,a)=>t(a,Rt(a,1),l(kt(a),`'${a}'`)))),(t,a)=>_(e[t],((e,t)=>a(t,e[r],e[s],l(kt(t),`'${t}'`),Rt(t,1)))),e=>_(t,((t,a)=>e(a,t[r],t[s],l(kt(a),`'${a}'`),Rt(a,1))))],Lt=(e,t,a,n)=>[(n,o)=>{const d=n+": "+o,r=e(p,Pt(...t((e=>`'${e}'?: {[rowId: Id]: `+Pt(...a(e,((e,t,a)=>`'${e}'${x(a)?"?":l}: ${t}`)))+"}"))),Xe(1,5)),s=e(p+Fe,Pt(...t((e=>`'${e}'?: {[rowId: Id]: `+Pt(...a(e,((e,t)=>`'${e}'?: ${t}`)))+"}"))),Xe(1,5,1)),$=e(u+he,"keyof "+r,"A "+u+" Id in "+Oe),c=`<TId extends ${$}>`,i=e(u,Te+`<${r}[TId]>`,"A "+u+" in "+Oe,c),w=e(u+Fe,Te+`<${s}[TId]>`,"A "+u+" in "+Oe+Ue,c),y=e(C,i+"<TId>[Id]","A "+C+" in a "+u,c),T=e(C+Fe,w+"<TId>[Id]","A "+C+" in a "+u+Ue,c),v=e(m+he,`Extract<keyof ${y}<TId>, Id>`,"A "+m+" Id in a "+C,c),V=e(m,Te+`<${r}[TId]>[Id][CId]`,"A "+m+" in a "+C,`<TId extends ${$}, CId extends ${v}<TId>>`),R=e("CellIdCellArray",`CId extends ${v}<TId> ? [cellId: CId, cell: ${V}<TId, CId>] : never`,m+" Ids and types in a "+C,`<TId extends ${$}, CId = ${v}<TId>>`,0),k=e(m+$e,`(...[cellId, cell]: ${R}<TId>)`+Be,at(re+m+" Id, and "+m),c),S=e(C+$e,"(rowId: Id, forEachCell: (cellCallback: CellCallback<TId>) "+Be+") "+Be,at(re+C+" Id, and a "+m+" iterator"),c),A=e(u+m+$e,`(cellId: ${v}<TId>, count: number) `+Be,at(re+m+" Id, and count of how many times it appears"),c),P=e("TableIdForEachRowArray",`TId extends ${$} ? [tableId: TId, forEachRow: (rowCallback: ${S}<TId>)${Be}] : never`,u+" Ids and callback types",`<TId = ${$}>`,0),E=e(u+$e,`(...[tableId, forEachRow]: ${P})`+Be,at(re+u+" Id, and a "+C+" iterator"),l),D=e("TableIdRowIdCellIdArray",`TId extends ${$} ? [tableId: TId, rowId: Id, cellId: ${v}<TId>] : never`,"Ids for GetCellChange",`<TId = ${$}>`,0),O=e("GetCellChange",`(...[tableId, rowId, cellId]: ${D}) => CellChange`,se+" returning information about any Cell's changes during a "+Ge),N=e(p+I,`(${d}, getCellChange: ${O}${ye})`+Be,nt(1)),L=e(b+I,`(${d})`+Be,nt(2)),G=e(u+I,`(${d}, tableId: ${$}, getCellChange: ${O}${ye})`+Be,nt(3)),j=e(u+f+I,`(${d}, tableId: ${$})`+Be,nt(14,3)),M=e(h+I,`(${d}, tableId: ${$})`+Be,nt(4,3)),J=e(g+I,"("+At(d,"tableId: "+$,"cellId: Id"+ye,"descending: boolean","offset: number","limit: number"+ye,"sortedRowIds: Ids")+")"+Be,nt(13,3)),z=e(C+I,"("+At(""+d,"tableId: "+$,Se,`getCellChange: ${O}${ye}`)+")"+Be,nt(5,3)),W=e(f+I,"("+At(""+d,"tableId: "+$,Se)+")"+Be,nt(6,5)),B=e("CellListenerArgsArrayInner",`CId extends ${v}<TId> ? [${d}, tableId: TId, ${Se}, cellId: CId, newCell: ${V}<TId, CId> ${ye}, oldCell: ${V}<TId, CId> ${ye}, getCellChange: ${O} ${ye}] : never`,"Cell args for CellListener",`<TId extends ${$}, CId = ${v}<TId>>`,0),F=e("CellListenerArgsArrayOuter",`TId extends ${$} ? `+B+"<TId> : never","Table args for CellListener",`<TId = ${$}>`,0);return[r,s,$,i,w,y,T,v,V,k,S,A,E,N,L,G,j,M,J,z,W,e(m+I,`(...[${n}, tableId, rowId, cellId, newCell, oldCell, getCellChange]: ${F})`+Be,nt(7,5)),e(ge+m+I,`(${d}, tableId: Id, ${Se}, cellId: Id, invalidCells: any[])`+Be,nt(8))]},(t,a)=>{const o=t+": "+a,d=e(y,Pt(...n(((e,t,a)=>`'${e}'${x(a)?"?":l}: ${t}`))),Xe(2,5)),r=e(y+Fe,Pt(...n(((e,t)=>`'${e}'?: ${t}`))),Xe(2,5,1)),s=e(w+he,"keyof "+d,"A "+w+" Id in "+Oe),$=e(w,Te+`<${d}[VId]>`,"A "+w+" Id in "+Oe,`<VId extends ${s}>`),c=e("ValueIdValueArray",`VId extends ${s} ? [valueId: VId, value: ${$}<VId>] : never`,w+" Ids and types in "+Oe,`<VId = ${s}>`,0),i=e(w+$e,`(...[valueId, value]: ${c})`+Be,at(re+w+" Id, and "+w)),u=e("GetValueChange",`(valueId: ${s}) => ValueChange`,se+" returning information about any Value's changes during a "+Ge),p=e(y+I,`(${o}, getValueChange: ${u}${ye})`+Be,nt(9)),b=e(T+I,`(${o})`+Be,nt(10)),C=e("ValueListenerArgsArray",`VId extends ${s} ? [${o}, valueId: VId, newValue: ${$}<VId> ${ye}, oldValue: ${$}<VId> ${ye}, getValueChange: ${u} ${ye}] : never`,"Value args for ValueListener",`<VId = ${s}>`,0);return[d,r,s,$,i,p,b,e(w+I,`(...[${t}, valueId, newValue, oldValue, getValueChange]: `+C+")"+Be,nt(11)),e(ge+w+I,`(${o}, valueId: Id, invalidValues: any[])`+Be,nt(12))]},(t,l)=>e(Ne+I,`(${t}: ${l}, getTransactionChanges: GetTransactionChanges, getTransactionLog: GetTransactionLog)`+Be,se+" listening to the completion of a "+Ge)],Gt=(e,t=l,a=l)=>`store.${e}(${t})`+(a?" as "+a:l),jt=(e,t=l)=>`fluent(() => ${Gt(e,t)})`,Mt=(e,t=l,a=l)=>`store.${e}(${t?t+", ":l}proxy(listener)${a?", "+a:l})`,Jt=(e,a,n)=>{const[d,$,v,V,R,S,A,P]=Dt(),[E,N,L]=Nt(e,a,R),[G,M,z]=Lt(v,E,N,L),W=Y(),B=(e=0)=>le(W,(([t,a,n,o,d],r)=>{const s=e?[r+`: ${d}(${t}): ${a} => ${n},`]:[r+d+`(${t}): ${a};`];return e||J(s,St(o)),j(s,l),s})),F=(e,t,a,n,o,d=l)=>Tt(W,e,[t,a,n,o,d]),U=(e,t,a,n,o,d=l,r=l,s=l)=>F(ut[e]+t+(4==e?ve:l)+a,d,n,(n==Q?jt:Gt)(ut[e]+(4==e?ve:l)+a,r,e?void 0:n),o,s),_=(e,t,a,n=l,o=l,d=1,r=l)=>F(c+e+I,(n?n+", ":l)+fe+": "+t+(d?", mutator?: boolean":l),he,Mt(c+e+I,o,d?"mutator":l),a,r),Z=`./${Rt(n)}.d`,Q=Rt(n,1),K=Rt(Q),X=[],ne=Y();let oe=[],de=[];if($(1,Z,Q,`create${Q} as create${Q}Decl`),H(e))$(null,t,p);else{$(0,t,"CellChange"),$(null,t,i);const[e,a,n,d,I,c,w,y,T,V,S,A,P,L,M,J,z,W,B,F,H,te,le]=G(K,Q),de=Y();E(((e,t)=>{const l=`<'${e}'>`,a=[v(t+u,d+l,ke+` the '${e}' `+u),v(t+u+Fe,I+l,ke+` the '${e}' `+u+Ue),v(t+C,c+l,Ye(e)),v(t+C+Fe,w+l,Ye(e,1)),v(t+m+he,y+l,`A Cell Id for the '${e}' `+u),v(t+m+$e,V+l,at(`a Cell Id and value from a Row in the '${e}' `+u)),v(t+C+$e,S+l,at(`a Row Id from the '${e}' Table, and a Cell iterator`)),v(t+u+m+$e,A+l,at(`a Cell Id from anywhere in the '${e}' Table, and a count of how many times it appears`))];ae(de,e,a),$(1,Z,...a)})),$(1,Z,e,a,n,y,P,L,M,J,z,W,B,F,H,te,le),oe=[e,a,n,y,L,M,J,z,W,B,F,H,te,de],D([[e],[o],[Q,"tables: "+a,"tables"],[Q]],(([e,t,a],n)=>U(n,l,p,e,Xe(1,n),t,a))),U(0,l,b,n+De,et(u,Oe)),U(5,l,u,We,tt(u,Oe),"tableCallback: "+P,"tableCallback as any"),E(((e,t,a)=>{const[n,d,r,s,I,$,c,p]=ee(de,e);D([[n],[o],[Q,"table: "+d,", table"],[Q]],(([n,o,d=l],r)=>U(r,t,u,n,st(e,r),o,a+d))),U(0,t,u+f,i,et(m,"the whole of "+dt(e)),l,a),U(5,t,u+m,We,tt(u+m,"the whole of "+dt(e)),"tableCellCallback: "+p,a+", tableCellCallback as any"),U(0,t,h,i,et(C,dt(e)),l,a),U(0,t,g,i,et(C,dt(e),1),"cellId?: "+I+Ee,a+", cellId, descending, offset, limit"),U(5,t,C,We,tt(C,dt(e)),"rowCallback: "+c,a+", rowCallback as any"),D([[r],[o],[Q,", row: "+s,", row"],[Q],[Q,", partialRow: "+s,", partialRow"]],(([n,o=l,d=l],r)=>U(r,t,C,n,It(e,r),Se+o,a+", rowId"+d))),U(6,t,C,he+ye,"Add a new Row to "+dt(e),"row: "+s+", reuseIds?: boolean",a+", row, reuseIds"),U(0,t,f,I+De,et(m,rt(e)),Se,a+", rowId"),U(5,t,m,We,tt(m,rt(e)),Se+", cellCallback: "+$,a+", rowId, cellCallback as any"),N(e,((n,d,r,s,I)=>{const $="Map"+Rt(d,1);ae(ne,d,$);const c=d+(x(r)?ye:l);D([[c],[o],[Q,`, cell: ${d} | `+$,", cell as any"],[Q]],(([o,d=l,r=l],$)=>U($,t+I,m,o,$t(e,n,$),Se+d,a+", rowId, "+s+r))),U(1,t+I,u+m,o,it[1]+` the '${n}' Cell anywhere in `+dt(e),l,a+", "+s)}))})),U(0,l,p+me,me,Xe(1,6)),U(2,l,p+me,Q,Xe(1,7),"tablesJson: "+me,"tables"+me),_(p,L,Xe(1,8)+" changes"),_(b,M,ot(2,0,1)),_(u,J,ot(3,0),`tableId: ${n} | null`,"tableId"),_(u+f,z,ot(14,3,1),`tableId: ${n} | null`,"tableId"),_(h,W,ot(4,3,1),`tableId: ${n} | null`,"tableId"),_(g,B,ot(13,3,1),At("tableId: TId",`cellId: ${y}<TId>`+ye,"descending: boolean","offset: number","limit: number"+ye),At("tableId","cellId","descending","offset","limit"),1,"<TId extends TableId>"),_(C,F,ot(5,3),`tableId: ${n} | null, rowId: IdOrNull`,"tableId, rowId"),_(f,H,ot(6,5,1),`tableId: ${n} | null, rowId: IdOrNull`,"tableId, rowId"),_(m,te,ot(7,5),`tableId: ${n} | null, rowId: IdOrNull, cellId: ${O(E((e=>ee(de,e)?.[4]??l))," | ")} | null`,"tableId, rowId, cellId"),_(ge+m,le,Re+" whenever an invalid Cell change was attempted","tableId: IdOrNull, rowId: IdOrNull, cellId: IdOrNull","tableId, rowId, cellId"),$(1,Z,...q(ne)),j(X,".set"+p+Ae+"({",xt(E(((e,t,a)=>[`[${a}]: {`,...N(e,((e,t,a,n)=>`[${n}]: {[${R(kt(r),`'${r}'`)}]: ${R(kt(t),`'${t}'`)}${x(a)?l:`, [${R(kt(s),`'${s}'`)}]: `+(k(a)?R(kt(a),`'${a}'`):a)}},`)),"},"]))),"})")}if(H(a))$(null,t,y);else{const[e,a,n,d,I,c,i,u,p]=M(K,Q);$(1,Z,e,a,n,I,c,i,u,p),de=[e,a,n,c,i,u],D([[e],[o],[Q,"values: "+a,"values"],[Q],[Q,"partialValues: "+a,"partialValues"]],(([e,t,a],n)=>U(n,l,y,e,Xe(2,n),t,a))),U(0,l,T,n+De,et(w,Oe)),U(5,l,w,"void",tt(w,Oe),"valueCallback: "+I,"valueCallback as any"),L(((e,t,a,n,d)=>{const r="Map"+Rt(t,1);ae(ne,t,r),D([[t],[o],[Q,`value: ${t} | `+r,", value as any"],[Q]],(([t,a,o=l],r)=>U(r,d,w,t,ct(e,r),a,n+o)))})),U(0,l,y+me,me,Xe(2,6)),U(2,l,y+me,Q,Xe(2,7),"valuesJson: "+me,"values"+me),_(y,c,Xe(2,8)+" changes"),_(T,i,ot(10,0,1)),_(w,u,ot(11,0),`valueId: ${n} | null`,"valueId"),_(ge+w,p,Re+" whenever an invalid Value change was attempted","valueId: IdOrNull","valueId"),$(1,Z,...q(ne)),$(0,t,"ValueChange"),j(X,".set"+y+Ae+"({",L(((e,t,a,n)=>[`[${n}]: {[${R(kt(r),`'${r}'`)}]: ${R(kt(t),`'${t}'`)}${x(a)?l:`, [${R(kt(s),`'${s}'`)}]: `+(k(a)?R(kt(a),`'${a}'`):a)}},`])),"})")}U(0,l,"Content",`[${p}, ${y}]`,Xe(0,0)),U(2,l,"Content",Q,Xe(0,2),`[tables, values]: [${p}, ${y}]`,"[tables, values]"),U(2,l,Le,Q,`Applies a set of ${Le} to the Store`,"transactionChanges: "+Le,"transactionChanges"),te(ne,((e,t)=>v(t,`(cell: ${e}${ye}) => `+e,`Takes a ${e} Cell value and returns another`))),$(null,t,"DoRollback",he,"IdOrNull",me,"Store",Le),$(0,t,"Get"+Le,"GetTransactionLog"),U(0,l,me,me,Xe(0,6)),U(2,l,me,Q,Xe(0,7),"tablesAndValuesJson: "+me,"tablesAndValuesJson"),U(7,l,Ge,"Return",je,be,"actions, doRollback","<Return>"),U(7,l,"start"+Ne,Q,Me),U(7,l,"finish"+Ne,Q,Je,pe,"doRollback");const re=z(K,Q);return _("Start"+Ne,re,Re+" just before the start of the "+Ge,l,l,0),_("WillFinish"+Ne,re,Re+" just before "+ze,l,l,0),_("DidFinish"+Ne,re,Re+" just after "+ze,l,l,0),U(7,l,"call"+I,Q,"Manually provoke a listener to be called","listenerId: Id","listenerId"),U(3,l,I,Q,"Remove a listener that was previously added to "+Oe,"listenerId: Id","listenerId"),F("getStore",l,"Store","store",it[0]+" the underlying Store object"),$(1,t,"createStore"),$(1,Z,Q,`create${Q} as create${Q}Decl`,re),R("store",["createStore()",...X]),V("fluent","actions: () => Store",["actions();",`return ${K};`]),V("proxy","listener: any",`(_: Store, ...params: any[]) => listener(${K}, ...params)`),R(K,["{",...B(1),"}"]),[d(...S(0),...A(),Ce+" interface "+Q+" {",...B(0),"}",l,St(`Creates a ${Q} object`),Ce+" function create"+Q+"(): "+Q+";"),d(...S(1),Ce+" const create"+Q+": typeof create"+Q+"Decl = () => {",...P(),`return Object.freeze(${K});`,"};"),oe,de]},zt=e=>$+e,Wt=e=>At(zt(e),zt(e)+ie),Bt="debugIds?: boolean",Ft="debugIds={debugIds}",Ut="then"+ue,_t="Parameter",Zt=": (parameter: "+_t+", store: Store) => ",Ht="const contextValue = useContext(Context);",Qt=", based on a parameter",qt=": ",Kt="<"+_t+",>",Xt=_t+"ized"+$e+"<"+_t+">",Yt="rowId",el="rowId={rowId}",tl=", separator, debugIds",ll="separator?: ReactElement | string",al="then?: (store: Store",nl=At(al+")"+Be,Ut),ol="then, then"+ie,dl=Yt+qt+he,rl="View",sl=(e,...t)=>At(...t,fe+": "+e,fe+ue,"mutator?: boolean"),Il=(...e)=>At(...e,fe,fe+ie,"mutator"),$l=(e,a,n,o,d)=>{const[r,s,$,c,v,V,R,k]=Dt(),[S,A,P]=Nt(e,a,v),E=`./${Rt(n)}.d`,D=`./${Rt(n)}-ui-react.d`,N="tinybase/ui-react",L=Rt(n,1),G=Rt(L),M=L+"Or"+L+he,z=G+"Or"+L+he,W=G+`={${G}}`,B=Y(),F=(e,t,a,n,o,d=l)=>(s(1,D,e+" as "+e+"Decl"),Tt(B,e,[t,a,n,o,d])),U=(e,t,a,n,o,d=l)=>F("use"+e,t,a,n,o,d),_=(e,t,a,n,o=l,d=l,r=l,I=l,$=l)=>(s(1,N,`use${t} as use${t}Core`),U(e,At(o,X,I),a,ae+`(${z}, use${t}Core, [`+(d||l)+($?"], ["+$:l)+"]);",n,r)),Z=(e,t,l,a)=>F(e,t,1,l,a),Q=(e=0)=>le(B,(([t,a,n,o,d],r)=>{const s=e?[Ce+` const ${r}: typeof ${r}Decl = ${d}(${t}): ${1==a?"any":a} =>`,n]:[Ce+` function ${r}${d}(${t}): ${1==a?"ComponentReturnType":a};`];return e||J(s,St(o)),j(s,l),s}));s(null,t,he,"Store",$e,_t+"ized"+$e),s(0,N,"ComponentReturnType"),s(null,N,"ExtraProps"),s(0,E,L);const q=$(M,L+" | "+he,`Used when you need to refer to a ${L} in a React hook or component`),K=$(xe+Ve,Et(G+we+L,G+`ById?: {[${G}Id: Id]: ${L}}`),`Used with the ${xe} component, so that a `+L+" 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=z+we+q;v("{createContext, useContext, useMemo}","React"),v("Context",`createContext<[${L}?, {[${G}Id: Id]: ${L}}?]>([])`),U("Create"+L,`create: () => ${L}, create`+ue,L,"\n// eslint-disable-next-line react-hooks/exhaustive-deps\nuseMemo(create, createDeps)",`Create a ${L} within a React application with convenient memoization`);const te=U(L,"id?: Id",L+ye,["{",Ht,"return id == null ? contextValue[0] : contextValue[1]?.[id];","}"],`Get a reference to a ${L} from within a ${xe} component context`),ae=c("useHook",z+`: ${q} | undefined, hook: (...params: any[]) => any, preParams: any[], postParams: any[] = []`,[`const ${G} = ${te}(${z} as Id);`,`return hook(...preParams, ((${z} == null || typeof ${z} == 'string')`,`? ${G} : ${z})?.getStore(), ...postParams)`]),ne=c("getProps","getProps: ((id: any) => ExtraProps) | undefined, id: Id","(getProps == null) ? ({} as ExtraProps) : getProps(id)"),oe=c("wrap",At("children: any","separator?: any","encloseWithId?: boolean","id?: Id"),["const separated = separator==null || !Array.isArray(children)"," ? children"," : children.map((child, c) => (c > 0 ? [separator, child] : child));","return encloseWithId ? [id, ':{', separated, '}'] : separated;"]),de=v("NullComponent","() => null");if(!H(e)){const[e,a,n,d,r,w,y,T,v,V,R,k,P,N]=o;s(null,E,e,a,n,r,w,y,T,v,V,R,k,P),s(0,E,d),s(1,E,L),s(null,t,i,"IdOrNull");const j=c("tableView",`{${G}, rowComponent, getRowComponentProps`+tl+"}: any, rowIds: Ids, tableId: Id, defaultRowComponent: React.ComponentType<any>",["const Row = rowComponent ?? defaultRowComponent;",`return ${oe}(rowIds.map((rowId) => (`,"<Row","{..."+ne+"(getRowComponentProps, rowId)}","key={rowId}","tableId={tableId}",el,W,Ft,"/>","))",tl,", tableId,",");"]),M=c("getDefaultTableComponent","tableId: Id",O(S(((e,t,l)=>`tableId == ${l} ? ${t}TableView : `)))+de),J=c("getDefaultCellComponent","tableId: Id, cellId: Id",O(S(((e,t,l)=>`tableId == ${l} ? ${O(A(e,((e,l,a,n,o)=>`cellId == ${n} ? `+t+o+"CellView : ")))+de} : `)))+de);_(p,p,e,Xe(1,0)+Ie);const z=_(b,b,n+De,et(u,Oe)+Ie);_(Pe+p+$e,Pe+p+$e,Xt,Xe(1,9)+Qt,At(zt(p)+Zt+a,zt(p)+ue),Wt(p),Kt,At(al,`tables: ${a})`+Be,Ut),ol),_(ce+p+$e,ce+p+$e,$e,Xe(1,12),l,l,l,nl,ol);const B=$(m+Ve,Et("tableId?: TId","rowId: Id","cellId?: CId",G+we+L,Bt),lt(re+m),`<TId extends ${n}, CId extends ${d}<TId>>`),F=$(C+Ve,Et("tableId?: TId","rowId: Id",G+we+L,"cellComponents?: {readonly [CId in "+d+`<TId>]?: ComponentType<${B}<TId, CId>>;}`,`getCellComponentProps?: (cellId: ${d}<TId>) => ExtraProps`,ll,Bt),lt(re+C),`<TId extends ${n}>`),U=$(u+Ve,Et("tableId?: TId",G+we+L,`rowComponent?: ComponentType<${F}<TId>>`,"getRowComponentProps?: (rowId: Id) => ExtraProps",ll,Bt),lt(re+u),`<TId extends ${n}>`),H=$("Sorted"+u+Ve,Et("tableId?: TId","cellId?: "+d+"<TId>","descending?: boolean","offset?: number","limit?: number",G+we+L,`rowComponent?: ComponentType<${F}<TId>>`,"getRowComponentProps?: (rowId: Id) => ExtraProps",ll,Bt),lt(re+"sorted "+u),`<TId extends ${n}>`),Q=$(p+Ve,Et(G+we+L,"tableComponents?: {readonly [TId in "+n+`]?: ComponentType<${U}<TId>>;}`,`getTableComponentProps?: (tableId: ${n}) => ExtraProps`,ll,Bt),lt(Ke(1,1)));s(1,D,Q,U,H,F,B),Z(p+rl,"{"+G+", tableComponents, getTableComponentProps"+tl+"}: "+Q,[oe+`(${z}(${G}).map((tableId) => {`,"const Table = (tableComponents?.[tableId] ?? "+M+"(tableId)) as React.ComponentType<TableProps<typeof tableId>>;","return <Table",`{...${ne}(getTableComponentProps, tableId)}`,"tableId={tableId}","key={tableId}",W,Ft,"/>;","}), separator)"],Xe(1,13)+Ie),S(((e,t,a)=>{const[n,o,d,r,I]=ee(N,e);s(null,E,n,o,d,r,I),_(t+u,u,n,st(e)+Ie,l,a),_(t+u+f,u+f,i,et(m,"the whole of "+dt(e))+Ie,l,a);const $=_(t+h,h,i,et(C,dt(e))+Ie,l,a),c=_(t+g,g,i,et(C,dt(e),1)+Ie,"cellId?: "+I+", descending?: boolean, offset?: number, limit?: number",a+", cellId, descending, offset, limit");_(t+C,C,d,It(e)+Ie,dl,At(a,Yt));const p=_(t+f,f,I+De,et(m,rt(e))+Ie,dl,At(a,Yt));_(Pe+t+u+$e,Pe+u+$e,Xt,st(e,9)+Qt,At(zt(u)+Zt+o,zt(u)+ue),At(a,Wt(u)),Kt,At(al,`table: ${o})`+Be,Ut),ol),_(ce+t+u+$e,ce+u+$e,$e,st(e,12),l,a,l,nl,ol),_(Pe+t+C+$e,Pe+C+$e,Xt,It(e,9)+Qt,At(dl,zt(C)+Zt+r,zt(C)+ue),At(a,Yt,Wt(C)),Kt,At(al,`row: ${r})`+Be,Ut),ol),_("Add"+t+C+$e,"Add"+C+$e,Xt,It(e,10)+Qt,At(zt(C)+Zt+r,zt(C)+ue),At(a,Wt(C)),Kt,"then?: ("+At(dl+ye,"store: Store","row: "+r+")"+Be,"then"+ue)+", reuseRowIds?: boolean",ol+", reuseRowIds"),_(Pe+t+ve+C+$e,Pe+ve+C+$e,Xt,It(e,11)+Qt,At(dl,zt(ve+C)+Zt+r,zt(ve+C)+ue),At(a,Yt,Wt(ve+C)),Kt,At(al,`partialRow: ${r})`+Be,Ut),ol),_(ce+t+C+$e,ce+C+$e,$e,It(e,12),dl,At(a,Yt),l,nl,ol);const b=Z(t+C+rl,"{rowId, "+G+", cellComponents, getCellComponentProps"+tl+`}: ${F}<'${e}'>`,[oe+`(${p}(rowId, ${G}).map((cellId) => {`,"const Cell = (cellComponents?.[cellId] ?? "+J+`(${a}, cellId)) as React.ComponentType<CellProps<typeof `+a+", typeof cellId>>;","return <Cell",`{...${ne}(getCellComponentProps, cellId)} `,"key={cellId}",`tableId={${a}}`,el,"cellId={cellId}",W,Ft,"/>;","})"+tl+", rowId)"],It(e,13)+Ie);Z(t+"Sorted"+u+rl,"{cellId, descending, offset, limit, ...props}: "+H+`<'${e}'>`,j+"(props, "+c+`(cellId, descending, offset, limit, props.${G}), ${a}, ${b});`,st(e,13)+", sorted"+Ie),Z(t+u+rl,`props: ${U}<'${e}'>`,j+"(props, "+$+`(props.${G}), ${a}, ${b});`,st(e,13)+Ie),A(e,((n,o,d,r,I)=>{const $="Map"+Rt(o,1);s(0,E,$),s(1,E,$);const c=_(t+I+m,m,o+(x(d)?ye:l),$t(e,n)+Ie,dl,At(a,Yt,r));_(Pe+t+I+m+$e,Pe+m+$e,Xt,$t(e,n,9)+Qt,At(dl,zt(m)+Zt+o+" | "+$,zt(m)+ue),At(a,Yt,r,Wt(m)),Kt,At(al,`cell: ${o} | ${$})`+Be,Ut),ol),_(ce+t+I+m+$e,ce+m+$e,$e,$t(e,n,12),At(dl,"forceDel?: boolean"),At(a,Yt,r,"forceDel"),l,nl,ol),Z(t+I+m+rl,`{rowId, ${G}, debugIds}: `+B+`<'${e}', '${n}'>`,[oe+`('' + ${c}(rowId, `+G+`) ?? '', undefined, debugIds, ${r})`],$t(e,n,13)+Ie)}))}));const q=O(S((e=>ee(N,e)?.[4]??l))," | ");_(p+I,p+I,We,Xe(1,8)+" changes",sl(r),Il()),_(b+I,b+I,We,ot(2,0,1),sl(w),Il()),_(u+I,u+I,We,ot(3,0),sl(y,`tableId: ${n} | null`),Il("tableId")),_(u+f+I,u+f+I,We,ot(14,3,1),sl(T,`tableId: ${n} | null`),Il("tableId")),_(h+I,h+I,We,ot(4,3,1),sl(v,`tableId: ${n} | null`),Il("tableId")),_(g+I,g+I,We,ot(13,3,1),sl(V,`tableId: ${n} | null`,"cellId: "+q+ye,"descending: boolean","offset: number","limit: number"+ye),Il("tableId","cellId","descending","offset","limit")),_(C+I,C+I,We,ot(5,3),sl(R,`tableId: ${n} | null`,Yt+": IdOrNull"),Il("tableId",Yt)),_(f+I,f+I,We,ot(6,5,1),sl(k,`tableId: ${n} | null`,Yt+": IdOrNull"),Il("tableId",Yt)),_(m+I,m+I,We,ot(7,5),sl(P,`tableId: ${n} | null`,Yt+": IdOrNull",`cellId: ${q} | null`),Il("tableId",Yt,"cellId"))}if(!H(a)){const[e,t,a,n,o,r]=d;s(null,E,...d),s(1,E,L);const i=c("getDefaultValueComponent","valueId: Id",O(P(((e,t,l,a,n)=>`valueId == ${a} ? `+n+"ValueView : ")))+de);_(y,y,e,Xe(2,0)+Ie);const u=_(T,T,a+De,et(w,Oe)+Ie);_(Pe+y+$e,Pe+y+$e,Xt,Xe(2,9)+Qt,At(zt(y)+Zt+t,zt(y)+ue),Wt(y),Kt,At(al,`values: ${t})`+Be,Ut),ol),_(Pe+ve+y+$e,Pe+ve+y+$e,Xt,Xe(2,11)+Qt,At(zt(ve+y)+Zt+t,zt(ve+y)+ue),Wt(ve+y),Kt,At(al,`partialValues: ${t})`+Be,Ut),ol),_(ce+y+$e,ce+y+$e,$e,Xe(2,12),l,l,l,nl,ol);const p=$(w+Ve,Et("valueId?: VId",G+we+L,Bt),lt("a Value"),`<VId extends ${a}>`),b=$(y+Ve,Et(G+we+L,"valueComponents?: {readonly [VId in "+a+`]?: ComponentType<${p}<VId>>;}`,`getValueComponentProps?: (valueId: ${a}) => ExtraProps`,ll,Bt),lt(Ke(2,1)));s(1,D,b,p),Z(y+rl,"{"+G+", valueComponents, getValueComponentProps"+tl+"}: "+b,[oe+`(${u}(${G}).map((valueId) => {`,"const Value = valueComponents?.[valueId] ?? "+i+"(valueId);","return <Value",`{...${ne}(getValueComponentProps, valueId)}`,"key={valueId}",W,Ft,"/>;","}), separator)"],Xe(2,13)+Ie),P(((e,t,a,n,o)=>{const d="Map"+Rt(t,1);s(0,E,d),s(1,E,d);const r=_(o+w,w,t,ct(e)+Ie,l,n);_(Pe+o+w+$e,Pe+w+$e,Xt,ct(e,9)+Qt,At(zt(w)+Zt+t+" | "+d,zt(w)+ue),At(n,Wt(w)),Kt,At(al,`value: ${t} | ${d})`+Be,Ut),ol),_(ce+o+w+$e,ce+w+$e,$e,ct(e,12),l,n,l,nl,ol),Z(o+w+rl,`{${G}, debugIds}: ${p}<'${e}'>`,[oe+`('' + ${r}(`+G+`) ?? '', undefined, debugIds, ${n})`],ct(e,13)+Ie)})),_(y+I,y+I,We,Xe(2,8)+" changes",sl(n),Il()),_(T+I,T+I,We,ot(10,0,1),sl(o),Il()),_(w+I,w+I,We,ot(11,0),sl(r,`valueId: ${a} | null`),Il("valueId"))}return Z(xe,`{${G}, ${G}ById, children}: `+K+" & {children: React.ReactNode}",["{",Ht,"return (","<Context."+xe,"value={useMemo(",`() => [${G} ?? contextValue[0], {...contextValue[1], ...${G}ById}],`,`[${G}, ${G}ById, contextValue],`,")}>","{children}",`</Context.${xe}>`,");","}"],"Wraps part of an application in a context that provides default objects to be used by hooks and components within"),[r(...V(0),...R(),...Q(0)),r(...V(1),...k(),...Q(1))]},cl=(e,t,a)=>{if(H(e)&&H(t))return[l,l,l,l];const[n,o,d,r]=Jt(e,t,a);return[n,o,...$l(e,t,a,d,r)]},il=JSON.parse,ul={parser:"typescript",singleQuote:!0,trailingComma:"all",bracketSpacing:!1,jsdocSingleLineComment:!1},pl=Ot((e=>{const t=()=>{const t=il(e.getTablesSchemaJson());return!H(t)||P(e.getTableIds(),(l=>{const a=e.getRowIds(l),n=Y();if(P(a,(t=>P(e.getCellIds(l,t),(a=>{const o=e.getCell(l,t,a),d=ne(n,a,(()=>[A(o),Y(),[0],0])),[r,s,[I]]=d,$=ne(s,o,(()=>0))+1;return $>I&&(d[2]=[$,o]),ae(s,o,$),d[3]++,r==A(o)})))))return t[l]={},K(n,(([e,,[,n],o],d)=>{t[l][d]={[r]:e,...o==L(a)?{[s]:n}:{}}})),1}))?t:{}},l=()=>{const t=il(e.getValuesSchemaJson());return H(t)&&e.forEachValue(((e,l)=>{t[e]={[r]:A(l)}})),t},a=e=>cl(t(),l(),e),n=async e=>{const t=["d.ts","ts","d.ts","tsx"];let l;try{l=(await import("prettier")).format}catch(e){l=e=>e}return N(a(e),((e,a)=>vt(l(e,{...ul,filepath:"_."+t[a]}))))};return F({getStoreStats:t=>{let l=0,a=0,n=0;const o={};return e.forEachTable(((e,d)=>{l++;let r=0,s=0;const I={};d(((e,l)=>{r++;let a=0;l((()=>a++)),s+=a,t&&(I[e]={rowCells:a})})),a+=r,n+=s,t&&(o[e]={tableRows:r,tableCells:s,rows:I})})),{totalTables:l,totalRows:a,totalCells:n,totalValues:L(e.getValueIds()),jsonLength:Vt(e.getJson()),...t?{detail:{tables:o}}:{}}},getStoreTablesSchema:t,getStoreValuesSchema:l,getStoreApi:a,getPrettyStoreApi:n,getStore:()=>e})}));export{pl as createTools};
package/lib/tools.js.gz CHANGED
Binary file
@@ -392,6 +392,13 @@ export type DpcTabularLoad = {
392
392
  * enable the `deleteEmptyColumns` or `deleteEmptyTable` settings, you can
393
393
  * simply provide the name of the database table instead of the whole object.
394
394
  *
395
+ * `deleteEmptyColumns` and `deleteEmptyTable` only have a guaranteed effect
396
+ * when an explicit call is made to the Persister's save method. Columns and
397
+ * tables will not necessarily be removed when the Persister is incrementally
398
+ * 'autoSaving', due to performance reasons. If you want to be sure that your
399
+ * database table matches a TinyBase Table without any extraneous columns,
400
+ * simply call the save method at an idle moment.
401
+ *
395
402
  * The 'Dpc' prefix indicates that this type is used within the
396
403
  * DatabasePersisterConfig type.
397
404
  * @example
@@ -416,6 +416,13 @@ export type DpcTabularLoad<Schema extends OptionalTablesSchema> = {
416
416
  * enable the `deleteEmptyColumns` or `deleteEmptyTable` settings, you can
417
417
  * simply provide the name of the database table instead of the whole object.
418
418
  *
419
+ * `deleteEmptyColumns` and `deleteEmptyTable` only have a guaranteed effect
420
+ * when an explicit call is made to the Persister's save method. Columns and
421
+ * tables will not necessarily be removed when the Persister is incrementally
422
+ * 'autoSaving', due to performance reasons. If you want to be sure that your
423
+ * database table matches a TinyBase Table without any extraneous columns,
424
+ * simply call the save method at an idle moment.
425
+ *
419
426
  * The 'Dpc' prefix indicates that this type is used within the
420
427
  * DatabasePersisterConfig type.
421
428
  * @example
package/lib/ui-react.js CHANGED
@@ -1 +1 @@
1
- import e,{useContext as o}from"react";const t=e=>typeof e,s="",d=t(s),r="Ids",n="Table",l=n+"s",I=n+r,u="Row",i=u+r,c="Sorted"+u+r,a="Cell",p=a+r,g="Value",b=g+"s",w=g+r,R=(e,o)=>e.map(o),C=e=>null==e,m=(e,o,t)=>C(e)?t?.():o(e),k=e=>t(e)==d,y=()=>{},{createContext:h,useContext:v}=e,q=h([]),P=(e,o)=>{const t=v(q);return C(e)?t[o]:k(e)?((e,o)=>m(e,(e=>e[o])))(t[o+1],e):e},x=(e,o)=>{const t=P(e,o);return C(e)||k(e)?t:e},S=e=>P(e,0),f=e=>P(e,2),T=e=>P(e,4),B=e=>P(e,6),L=e=>P(e,8),M=e=>P(e,10),V=e=>x(e,0),A=e=>x(e,2),E=e=>x(e,4),F=e=>x(e,6),j=e=>x(e,8),z=e=>x(e,10),{useCallback:D,useEffect:G,useMemo:H,useRef:J,useState:K}=e,N=(e,o,t=[])=>{const s=H((()=>o(e)),[e,...t]);return G((()=>()=>s.destroy()),[s]),s},O=(e,o,t,s=[],d)=>{const[,r]=K(),n=D((()=>o?.["get"+e]?.(...s)??t),[o,...s]),[l]=K(n),I=J(l);return H((()=>I.current=n()),[n]),Q(e,o,((...e)=>{I.current=C(d)?n():e[d],r([])}),[],s),I.current},Q=(e,o,t,s=[],d=[],...r)=>G((()=>{const s=o?.["add"+e+"Listener"]?.(...d,t,...r);return()=>o?.delListener(s)}),[o,...d,...s,...r]),U=(e,o,t,s=[],d=y,r=[],...n)=>{const l=V(e);return D((e=>m(l,(s=>m(t(e,s),(e=>d(s["set"+o](...n,e),e)))))),[l,o,...s,...r,...n])},W=(e,o,t=y,s=[],...d)=>{const r=V(e);return D((()=>t(r?.["del"+o](...d))),[r,o,...s,...d])},X=(e,o,t)=>{const s=z(e);return D((()=>s?.[o](t)),[s,o,t])},Y=(e,o=[])=>H(e,o),Z=e=>O(l,V(e),{}),$=e=>O(I,V(e),[],[]),_=(e,o)=>O(n,V(o),{},[e]),ee=(e,o)=>O(n+p,V(o),[],[e]),oe=(e,o)=>O(i,V(o),[],[e]),te=(e,o,t,s=0,d,r)=>O(c,V(r),[],[e,o,t,s,d],6),se=(e,o,t)=>O(u,V(t),{},[e,o]),de=(e,o,t)=>O(p,V(t),[],[e,o]),re=(e,o,t,s)=>O(a,V(s),void 0,[e,o,t],4),ne=e=>O(b,V(e),{}),le=e=>O(w,V(e),[],[]),Ie=(e,o)=>O(g,V(o),void 0,[e]),ue=(e,o,t,s,d)=>U(t,l,e,o,s,d),ie=(e,o,t,s,d,r)=>U(s,n,o,t,d,r,e),ce=(e,o,t,s,d,r,n)=>U(d,u,t,s,r,n,e,o),ae=(e,o,t=[],s,d=y,r=[],n=!0)=>{const l=V(s);return D((t=>m(l,(s=>m(o(t,s),(o=>d(s.addRow(e,o,n),s,o)))))),[l,e,...t,...r,n])},pe=(e,o,t,s,d,r,n)=>U(d,"PartialRow",t,s,r,n,e,o),ge=(e,o,t,s,d,r,n,l)=>U(r,a,s,d,n,l,e,o,t),be=(e,o,t,s,d)=>U(t,b,e,o,s,d),we=(e,o,t,s,d)=>U(t,"PartialValues",e,o,s,d),Re=(e,o,t,s,d,r)=>U(s,g,o,t,d,r,e),Ce=(e,o,t)=>W(e,l,o,t),me=(e,o,t,s)=>W(o,n,t,s,e),ke=(e,o,t,s,d)=>W(t,u,s,d,e,o),ye=(e,o,t,s,d,r,n)=>W(d,a,r,n,e,o,t,s),he=(e,o,t)=>W(e,b,o,t),ve=(e,o,t,s)=>W(o,g,t,s,e),qe=(e,o,t,s)=>Q(l,V(s),e,o,[],t),Pe=(e,o,t,s)=>Q(I,V(s),e,o,[],t),xe=(e,o,t,s,d)=>Q(n,V(d),o,t,[e],s),Se=(e,o,t,s,d)=>Q(n+p,V(d),o,t,[e],s),fe=(e,o,t,s,d)=>Q(i,V(d),o,t,[e],s),Te=(e,o,t,s,d,r,n,l,I)=>Q(c,V(I),r,n,[e,o,t,s,d],l),Be=(e,o,t,s,d,r)=>Q(u,V(r),t,s,[e,o],d),Le=(e,o,t,s,d,r)=>Q(p,V(r),t,s,[e,o],d),Me=(e,o,t,s,d,r,n)=>Q(a,V(n),s,d,[e,o,t],r),Ve=(e,o,t,s)=>Q(b,V(s),e,o,[],t),Ae=(e,o,t,s)=>Q(w,V(s),e,o,[],t),Ee=(e,o,t,s,d)=>Q(g,V(d),o,t,[e],s),Fe=(e,o,t)=>N(e,o,t),je=(e,o)=>O("Metric",A(o),void 0,[e]),ze=(e,o,t,s)=>Q("Metric",A(s),o,t,[e]),De=(e,o,t)=>N(e,o,t),Ge=(e,o)=>O("SliceIds",E(o),[],[e]),He=(e,o,t)=>O("SliceRowIds",E(t),[],[e,o]),Je=(e,o,t,s)=>Q("SliceIds",E(s),o,t,[e]),Ke=(e,o,t,s,d)=>Q("SliceRowIds",E(d),t,s,[e,o]),Ne=(e,o,t)=>N(e,o,t),Oe=(e,o,t)=>O("RemoteRowId",F(t),void 0,[e,o]),Qe=(e,o,t)=>O("LocalRowIds",F(t),[],[e,o]),Ue=(e,o,t)=>O("LinkedRowIds",F(t),[],[e,o]),We=(e,o,t,s,d)=>Q("RemoteRowId",F(d),t,s,[e,o]),Xe=(e,o,t,s,d)=>Q("LocalRowIds",F(d),t,s,[e,o]),Ye=(e,o,t,s,d)=>Q("LinkedRowIds",F(d),t,s,[e,o]),Ze=(e,o,t)=>N(e,o,t),$e=(e,o)=>O("ResultTable",j(o),{},[e]),_e=(e,o)=>O("ResultRowIds",j(o),[],[e]),eo=(e,o,t,s=0,d,r)=>O("ResultSortedRowIds",j(r),[],[e,o,t,s,d],6),oo=(e,o,t)=>O("ResultRow",j(t),{},[e,o]),to=(e,o,t)=>O("ResultCellIds",j(t),[],[e,o]),so=(e,o,t,s)=>O("ResultCell",j(s),void 0,[e,o,t]),ro=(e,o,t,s)=>Q("ResultTable",j(s),o,t,[e]),no=(e,o,t,s)=>Q("ResultRowIds",j(s),o,t,[e]),lo=(e,o,t,s,d,r,n,l)=>Q("ResultSortedRowIds",j(l),r,n,[e,o,t,s,d]),Io=(e,o,t,s,d)=>Q("ResultRow",j(d),t,s,[e,o]),uo=(e,o,t,s,d)=>Q("ResultCellIds",j(d),t,s,[e,o]),io=(e,o,t,s,d,r)=>Q("ResultCell",j(r),s,d,[e,o,t]),co=(e,o,t)=>N(e,o,t),ao=e=>O("CheckpointIds",z(e),[[],void 0,[]]),po=(e,o)=>O("Checkpoint",z(o),void 0,[e]),go=(e=y,o=[],t,s=y,d=[])=>{const r=z(t);return D((o=>m(r,(t=>{const d=e(o);s(t.addCheckpoint(d),t,d)}))),[r,...o,...d])},bo=e=>X(e,"goBackward"),wo=e=>X(e,"goForward"),Ro=(e,o=[],t,s=y,d=[])=>{const r=z(t);return D((o=>m(r,(t=>m(e(o),(e=>s(t.goTo(e),e)))))),[r,...o,...d])},Co=e=>{const o=z(e),[t,d]=ao(o);return[(r=t,!(0==(e=>e.length)(r))),bo(o),d,m(d,(e=>o?.getCheckpoint(e)))??s];var r},mo=e=>{const o=z(e),[,,[t]]=ao(o);return[!C(t),wo(o),t,m(t,(e=>o?.getCheckpoint(e)))??s]},ko=(e,o,t)=>Q("CheckpointIds",z(t),e,o),yo=(e,o,t,s)=>Q("Checkpoint",z(s),o,t,[e]),ho=(e,o,t=[],s,d=[])=>{const[,r]=K(),n=H((()=>o(e)),[e,...t]);return G((()=>((async()=>{await(s?.(n)),r(1)})(),()=>{n.destroy()})),[n,...d]),n},{createElement:vo,useMemo:qo}=e,Po=({tableId:e,store:o,rowComponent:t=Ao,getRowComponentProps:s,separator:d,debugIds:r},n)=>Mo(R(n,(d=>vo(t,{...Bo(s,d),key:d,tableId:e,rowId:d,store:o,debugIds:r}))),d,r,e),xo=({queryId:e,queries:o,resultRowComponent:t=Uo,getResultRowComponentProps:s,separator:d,debugIds:r},n)=>Mo(R(n,(d=>vo(t,{...Bo(s,d),key:d,queryId:e,rowId:d,queries:o,debugIds:r}))),d,r,e),So=e=>{const o=F(e);return[o,o?.getStore()]},fo=({relationshipId:e,relationships:o,rowComponent:t=Ao,getRowComponentProps:s,separator:d,debugIds:r},n,l)=>{const[I,u]=So(o),i=I?.getLocalTableId(e),c=n(e,l,I);return Mo(R(c,(e=>vo(t,{...Bo(s,e),key:e,tableId:i,rowId:e,store:u,debugIds:r}))),d,r,l)},To=e=>({checkpoints:o,checkpointComponent:t=Yo,getCheckpointComponentProps:s,separator:d,debugIds:r})=>{const n=z(o);return Mo(R(e(ao(n)),(e=>vo(t,{...Bo(s,e),key:e,checkpoints:n,checkpointId:e,debugIds:r}))),d)},Bo=(e,o)=>C(e)?{}:e(o),Lo=({store:e,storesById:t,metrics:s,metricsById:d,indexes:r,indexesById:n,relationships:l,relationshipsById:I,queries:u,queriesById:i,checkpoints:c,checkpointsById:a,children:p})=>{const g=o(q);return vo(q.Provider,{value:qo((()=>[e??g[0],{...g[1],...t},s??g[2],{...g[3],...d},r??g[4],{...g[5],...n},l??g[6],{...g[7],...I},u??g[8],{...g[9],...i},c??g[10],{...g[11],...a}]),[e,t,s,d,r,n,l,I,u,i,c,a,g])},p)},Mo=(e,o,t,s)=>{const d=C(o)||!Array.isArray(e)?e:R(e,((e,t)=>t>0?[o,e]:e));return t?[s,":{",d,"}"]:d},Vo=({tableId:e,rowId:o,cellId:t,store:d,debugIds:r})=>Mo(s+(re(e,o,t,d)??s),void 0,r,t),Ao=({tableId:e,rowId:o,store:t,cellComponent:s=Vo,getCellComponentProps:d,separator:r,debugIds:n})=>Mo(R(de(e,o,t),(r=>vo(s,{...Bo(d,r),key:r,tableId:e,rowId:o,cellId:r,store:t,debugIds:n}))),r,n,o),Eo=e=>Po(e,oe(e.tableId,e.store)),Fo=({cellId:e,descending:o,offset:t,limit:s,...d})=>Po(d,te(d.tableId,e,o,t,s,d.store)),jo=({store:e,tableComponent:o=Eo,getTableComponentProps:t,separator:s,debugIds:d})=>Mo(R($(e),(s=>vo(o,{...Bo(t,s),key:s,tableId:s,store:e,debugIds:d}))),s),zo=({valueId:e,store:o,debugIds:t})=>Mo(s+(Ie(e,o)??s),void 0,t,e),Do=({store:e,valueComponent:o=zo,getValueComponentProps:t,separator:s,debugIds:d})=>Mo(R(le(e),(s=>vo(o,{...Bo(t,s),key:s,valueId:s,store:e,debugIds:d}))),s),Go=({metricId:e,metrics:o,debugIds:t})=>Mo(je(e,o)??s,void 0,t,e),Ho=({indexId:e,sliceId:o,indexes:t,rowComponent:s=Ao,getRowComponentProps:d,separator:r,debugIds:n})=>{const l=E(t),I=l?.getStore(),u=l?.getTableId(e),i=He(e,o,l);return Mo(R(i,(e=>vo(s,{...Bo(d,e),key:e,tableId:u,rowId:e,store:I,debugIds:n}))),r,n,o)},Jo=({indexId:e,indexes:o,sliceComponent:t=Ho,getSliceComponentProps:s,separator:d,debugIds:r})=>Mo(R(Ge(e,o),(d=>vo(t,{...Bo(s,d),key:d,indexId:e,sliceId:d,indexes:o,debugIds:r}))),d,r,e),Ko=({relationshipId:e,localRowId:o,relationships:t,rowComponent:s=Ao,getRowComponentProps:d,debugIds:r})=>{const[n,l]=So(t),I=n?.getRemoteTableId(e),u=Oe(e,o,n);return Mo(C(I)||C(u)?null:vo(s,{...Bo(d,u),key:u,tableId:I,rowId:u,store:l,debugIds:r}),void 0,r,o)},No=e=>fo(e,Qe,e.remoteRowId),Oo=e=>fo(e,Ue,e.firstRowId),Qo=({queryId:e,rowId:o,cellId:t,queries:d,debugIds:r})=>Mo(s+(so(e,o,t,d)??s),void 0,r,t),Uo=({queryId:e,rowId:o,queries:t,resultCellComponent:s=Qo,getResultCellComponentProps:d,separator:r,debugIds:n})=>Mo(R(to(e,o,t),(r=>vo(s,{...Bo(d,r),key:r,queryId:e,rowId:o,cellId:r,queries:t,debugIds:n}))),r,n,o),Wo=e=>xo(e,_e(e.queryId,e.queries)),Xo=({cellId:e,descending:o,offset:t,limit:s,...d})=>xo(d,eo(d.queryId,e,o,t,s,d.queries)),Yo=({checkpoints:e,checkpointId:o,debugIds:t})=>Mo(po(o,e)??s,void 0,t,o),Zo=To((e=>e[0])),$o=To((e=>C(e[1])?[]:[e[1]])),_o=To((e=>e[2]));export{Zo as BackwardCheckpointsView,Vo as CellView,Yo as CheckpointView,$o as CurrentCheckpointView,_o as ForwardCheckpointsView,Jo as IndexView,Oo as LinkedRowsView,No as LocalRowsView,Go as MetricView,Lo as Provider,Ko as RemoteRowView,Qo as ResultCellView,Uo as ResultRowView,Xo as ResultSortedTableView,Wo as ResultTableView,Ao as RowView,Ho as SliceView,Fo as SortedTableView,Eo as TableView,jo as TablesView,zo as ValueView,Do as ValuesView,Po as tableView,ae as useAddRowCallback,re as useCell,de as useCellIds,Le as useCellIdsListener,Me as useCellListener,po as useCheckpoint,ao as useCheckpointIds,ko as useCheckpointIdsListener,yo as useCheckpointListener,M as useCheckpoints,co as useCreateCheckpoints,De as useCreateIndexes,Fe as useCreateMetrics,ho as useCreatePersister,Ze as useCreateQueries,Ne as useCreateRelationships,Y as useCreateStore,ye as useDelCellCallback,ke as useDelRowCallback,me as useDelTableCallback,Ce as useDelTablesCallback,ve as useDelValueCallback,he as useDelValuesCallback,bo as useGoBackwardCallback,wo as useGoForwardCallback,Ro as useGoToCallback,T as useIndexes,Ue as useLinkedRowIds,Ye as useLinkedRowIdsListener,Qe as useLocalRowIds,Xe as useLocalRowIdsListener,je as useMetric,ze as useMetricListener,f as useMetrics,L as useQueries,mo as useRedoInformation,B as useRelationships,Oe as useRemoteRowId,We as useRemoteRowIdListener,so as useResultCell,to as useResultCellIds,uo as useResultCellIdsListener,io as useResultCellListener,oo as useResultRow,_e as useResultRowIds,no as useResultRowIdsListener,Io as useResultRowListener,eo as useResultSortedRowIds,lo as useResultSortedRowIdsListener,$e as useResultTable,ro as useResultTableListener,se as useRow,oe as useRowIds,fe as useRowIdsListener,Be as useRowListener,ge as useSetCellCallback,go as useSetCheckpointCallback,pe as useSetPartialRowCallback,we as useSetPartialValuesCallback,ce as useSetRowCallback,ie as useSetTableCallback,ue as useSetTablesCallback,Re as useSetValueCallback,be as useSetValuesCallback,Ge as useSliceIds,Je as useSliceIdsListener,He as useSliceRowIds,Ke as useSliceRowIdsListener,te as useSortedRowIds,Te as useSortedRowIdsListener,S as useStore,_ as useTable,ee as useTableCellIds,Se as useTableCellIdsListener,$ as useTableIds,Pe as useTableIdsListener,xe as useTableListener,Z as useTables,qe as useTablesListener,Co as useUndoInformation,Ie as useValue,le as useValueIds,Ae as useValueIdsListener,Ee as useValueListener,ne as useValues,Ve as useValuesListener};
1
+ import e,{useContext as o}from"react";const t=e=>typeof e,s="",d=t(s),r="Ids",n="Table",l=n+"s",I=n+r,u="Row",i=u+r,c="Sorted"+u+r,a="Cell",p=a+r,g="Value",b=g+"s",w=g+r,R=e=>null==e,C=(e,o,t)=>R(e)?t?.():o(e),m=e=>t(e)==d,k=()=>{},y=(e,o)=>e.map(o),{createContext:h,useContext:v}=e,q=h([]),P=(e,o)=>{const t=v(q);return R(e)?t[o]:m(e)?((e,o)=>C(e,(e=>e[o])))(t[o+1],e):e},x=(e,o)=>{const t=P(e,o);return R(e)||m(e)?t:e},S=e=>P(e,0),f=e=>P(e,2),T=e=>P(e,4),B=e=>P(e,6),L=e=>P(e,8),M=e=>P(e,10),V=e=>x(e,0),A=e=>x(e,2),E=e=>x(e,4),F=e=>x(e,6),j=e=>x(e,8),z=e=>x(e,10),{useCallback:D,useEffect:G,useMemo:H,useRef:J,useState:K}=e,N=(e,o,t=[])=>{const s=H((()=>o(e)),[e,...t]);return G((()=>()=>s.destroy()),[s]),s},O=(e,o,t,s=[],d)=>{const[,r]=K(),n=D((()=>o?.["get"+e]?.(...s)??t),[o,...s]),[l]=K(n),I=J(l);return H((()=>I.current=n()),[n]),Q(e,o,((...e)=>{I.current=R(d)?n():e[d],r([])}),[],s),I.current},Q=(e,o,t,s=[],d=[],...r)=>G((()=>{const s=o?.["add"+e+"Listener"]?.(...d,t,...r);return()=>o?.delListener(s)}),[o,...d,...s,...r]),U=(e,o,t,s=[],d=k,r=[],...n)=>{const l=V(e);return D((e=>C(l,(s=>C(t(e,s),(e=>d(s["set"+o](...n,e),e)))))),[l,o,...s,...r,...n])},W=(e,o,t=k,s=[],...d)=>{const r=V(e);return D((()=>t(r?.["del"+o](...d))),[r,o,...s,...d])},X=(e,o,t)=>{const s=z(e);return D((()=>s?.[o](t)),[s,o,t])},Y=(e,o=[])=>H(e,o),Z=e=>O(l,V(e),{}),$=e=>O(I,V(e),[],[]),_=(e,o)=>O(n,V(o),{},[e]),ee=(e,o)=>O(n+p,V(o),[],[e]),oe=(e,o)=>O(i,V(o),[],[e]),te=(e,o,t,s=0,d,r)=>O(c,V(r),[],[e,o,t,s,d],6),se=(e,o,t)=>O(u,V(t),{},[e,o]),de=(e,o,t)=>O(p,V(t),[],[e,o]),re=(e,o,t,s)=>O(a,V(s),void 0,[e,o,t],4),ne=e=>O(b,V(e),{}),le=e=>O(w,V(e),[],[]),Ie=(e,o)=>O(g,V(o),void 0,[e]),ue=(e,o,t,s,d)=>U(t,l,e,o,s,d),ie=(e,o,t,s,d,r)=>U(s,n,o,t,d,r,e),ce=(e,o,t,s,d,r,n)=>U(d,u,t,s,r,n,e,o),ae=(e,o,t=[],s,d=k,r=[],n=!0)=>{const l=V(s);return D((t=>C(l,(s=>C(o(t,s),(o=>d(s.addRow(e,o,n),s,o)))))),[l,e,...t,...r,n])},pe=(e,o,t,s,d,r,n)=>U(d,"PartialRow",t,s,r,n,e,o),ge=(e,o,t,s,d,r,n,l)=>U(r,a,s,d,n,l,e,o,t),be=(e,o,t,s,d)=>U(t,b,e,o,s,d),we=(e,o,t,s,d)=>U(t,"PartialValues",e,o,s,d),Re=(e,o,t,s,d,r)=>U(s,g,o,t,d,r,e),Ce=(e,o,t)=>W(e,l,o,t),me=(e,o,t,s)=>W(o,n,t,s,e),ke=(e,o,t,s,d)=>W(t,u,s,d,e,o),ye=(e,o,t,s,d,r,n)=>W(d,a,r,n,e,o,t,s),he=(e,o,t)=>W(e,b,o,t),ve=(e,o,t,s)=>W(o,g,t,s,e),qe=(e,o,t,s)=>Q(l,V(s),e,o,[],t),Pe=(e,o,t,s)=>Q(I,V(s),e,o,[],t),xe=(e,o,t,s,d)=>Q(n,V(d),o,t,[e],s),Se=(e,o,t,s,d)=>Q(n+p,V(d),o,t,[e],s),fe=(e,o,t,s,d)=>Q(i,V(d),o,t,[e],s),Te=(e,o,t,s,d,r,n,l,I)=>Q(c,V(I),r,n,[e,o,t,s,d],l),Be=(e,o,t,s,d,r)=>Q(u,V(r),t,s,[e,o],d),Le=(e,o,t,s,d,r)=>Q(p,V(r),t,s,[e,o],d),Me=(e,o,t,s,d,r,n)=>Q(a,V(n),s,d,[e,o,t],r),Ve=(e,o,t,s)=>Q(b,V(s),e,o,[],t),Ae=(e,o,t,s)=>Q(w,V(s),e,o,[],t),Ee=(e,o,t,s,d)=>Q(g,V(d),o,t,[e],s),Fe=(e,o,t)=>N(e,o,t),je=(e,o)=>O("Metric",A(o),void 0,[e]),ze=(e,o,t,s)=>Q("Metric",A(s),o,t,[e]),De=(e,o,t)=>N(e,o,t),Ge=(e,o)=>O("SliceIds",E(o),[],[e]),He=(e,o,t)=>O("SliceRowIds",E(t),[],[e,o]),Je=(e,o,t,s)=>Q("SliceIds",E(s),o,t,[e]),Ke=(e,o,t,s,d)=>Q("SliceRowIds",E(d),t,s,[e,o]),Ne=(e,o,t)=>N(e,o,t),Oe=(e,o,t)=>O("RemoteRowId",F(t),void 0,[e,o]),Qe=(e,o,t)=>O("LocalRowIds",F(t),[],[e,o]),Ue=(e,o,t)=>O("LinkedRowIds",F(t),[],[e,o]),We=(e,o,t,s,d)=>Q("RemoteRowId",F(d),t,s,[e,o]),Xe=(e,o,t,s,d)=>Q("LocalRowIds",F(d),t,s,[e,o]),Ye=(e,o,t,s,d)=>Q("LinkedRowIds",F(d),t,s,[e,o]),Ze=(e,o,t)=>N(e,o,t),$e=(e,o)=>O("ResultTable",j(o),{},[e]),_e=(e,o)=>O("ResultRowIds",j(o),[],[e]),eo=(e,o,t,s=0,d,r)=>O("ResultSortedRowIds",j(r),[],[e,o,t,s,d],6),oo=(e,o,t)=>O("ResultRow",j(t),{},[e,o]),to=(e,o,t)=>O("ResultCellIds",j(t),[],[e,o]),so=(e,o,t,s)=>O("ResultCell",j(s),void 0,[e,o,t]),ro=(e,o,t,s)=>Q("ResultTable",j(s),o,t,[e]),no=(e,o,t,s)=>Q("ResultRowIds",j(s),o,t,[e]),lo=(e,o,t,s,d,r,n,l)=>Q("ResultSortedRowIds",j(l),r,n,[e,o,t,s,d]),Io=(e,o,t,s,d)=>Q("ResultRow",j(d),t,s,[e,o]),uo=(e,o,t,s,d)=>Q("ResultCellIds",j(d),t,s,[e,o]),io=(e,o,t,s,d,r)=>Q("ResultCell",j(r),s,d,[e,o,t]),co=(e,o,t)=>N(e,o,t),ao=e=>O("CheckpointIds",z(e),[[],void 0,[]]),po=(e,o)=>O("Checkpoint",z(o),void 0,[e]),go=(e=k,o=[],t,s=k,d=[])=>{const r=z(t);return D((o=>C(r,(t=>{const d=e(o);s(t.addCheckpoint(d),t,d)}))),[r,...o,...d])},bo=e=>X(e,"goBackward"),wo=e=>X(e,"goForward"),Ro=(e,o=[],t,s=k,d=[])=>{const r=z(t);return D((o=>C(r,(t=>C(e(o),(e=>s(t.goTo(e),e)))))),[r,...o,...d])},Co=e=>{const o=z(e),[t,d]=ao(o);return[(r=t,!(0==(e=>e.length)(r))),bo(o),d,C(d,(e=>o?.getCheckpoint(e)))??s];var r},mo=e=>{const o=z(e),[,,[t]]=ao(o);return[!R(t),wo(o),t,C(t,(e=>o?.getCheckpoint(e)))??s]},ko=(e,o,t)=>Q("CheckpointIds",z(t),e,o),yo=(e,o,t,s)=>Q("Checkpoint",z(s),o,t,[e]),ho=(e,o,t=[],s,d=[])=>{const[,r]=K(),n=H((()=>o(e)),[e,...t]);return G((()=>((async()=>{await(s?.(n)),r(1)})(),()=>{n.destroy()})),[n,...d]),n},{createElement:vo,useMemo:qo}=e,Po=({tableId:e,store:o,rowComponent:t=Ao,getRowComponentProps:s,separator:d,debugIds:r},n)=>Mo(y(n,(d=>vo(t,{...Bo(s,d),key:d,tableId:e,rowId:d,store:o,debugIds:r}))),d,r,e),xo=({queryId:e,queries:o,resultRowComponent:t=Uo,getResultRowComponentProps:s,separator:d,debugIds:r},n)=>Mo(y(n,(d=>vo(t,{...Bo(s,d),key:d,queryId:e,rowId:d,queries:o,debugIds:r}))),d,r,e),So=e=>{const o=F(e);return[o,o?.getStore()]},fo=({relationshipId:e,relationships:o,rowComponent:t=Ao,getRowComponentProps:s,separator:d,debugIds:r},n,l)=>{const[I,u]=So(o),i=I?.getLocalTableId(e),c=n(e,l,I);return Mo(y(c,(e=>vo(t,{...Bo(s,e),key:e,tableId:i,rowId:e,store:u,debugIds:r}))),d,r,l)},To=e=>({checkpoints:o,checkpointComponent:t=Yo,getCheckpointComponentProps:s,separator:d,debugIds:r})=>{const n=z(o);return Mo(y(e(ao(n)),(e=>vo(t,{...Bo(s,e),key:e,checkpoints:n,checkpointId:e,debugIds:r}))),d)},Bo=(e,o)=>R(e)?{}:e(o),Lo=({store:e,storesById:t,metrics:s,metricsById:d,indexes:r,indexesById:n,relationships:l,relationshipsById:I,queries:u,queriesById:i,checkpoints:c,checkpointsById:a,children:p})=>{const g=o(q);return vo(q.Provider,{value:qo((()=>[e??g[0],{...g[1],...t},s??g[2],{...g[3],...d},r??g[4],{...g[5],...n},l??g[6],{...g[7],...I},u??g[8],{...g[9],...i},c??g[10],{...g[11],...a}]),[e,t,s,d,r,n,l,I,u,i,c,a,g])},p)},Mo=(e,o,t,s)=>{const d=R(o)||!Array.isArray(e)?e:y(e,((e,t)=>t>0?[o,e]:e));return t?[s,":{",d,"}"]:d},Vo=({tableId:e,rowId:o,cellId:t,store:d,debugIds:r})=>Mo(s+(re(e,o,t,d)??s),void 0,r,t),Ao=({tableId:e,rowId:o,store:t,cellComponent:s=Vo,getCellComponentProps:d,separator:r,debugIds:n})=>Mo(y(de(e,o,t),(r=>vo(s,{...Bo(d,r),key:r,tableId:e,rowId:o,cellId:r,store:t,debugIds:n}))),r,n,o),Eo=e=>Po(e,oe(e.tableId,e.store)),Fo=({cellId:e,descending:o,offset:t,limit:s,...d})=>Po(d,te(d.tableId,e,o,t,s,d.store)),jo=({store:e,tableComponent:o=Eo,getTableComponentProps:t,separator:s,debugIds:d})=>Mo(y($(e),(s=>vo(o,{...Bo(t,s),key:s,tableId:s,store:e,debugIds:d}))),s),zo=({valueId:e,store:o,debugIds:t})=>Mo(s+(Ie(e,o)??s),void 0,t,e),Do=({store:e,valueComponent:o=zo,getValueComponentProps:t,separator:s,debugIds:d})=>Mo(y(le(e),(s=>vo(o,{...Bo(t,s),key:s,valueId:s,store:e,debugIds:d}))),s),Go=({metricId:e,metrics:o,debugIds:t})=>Mo(je(e,o)??s,void 0,t,e),Ho=({indexId:e,sliceId:o,indexes:t,rowComponent:s=Ao,getRowComponentProps:d,separator:r,debugIds:n})=>{const l=E(t),I=l?.getStore(),u=l?.getTableId(e),i=He(e,o,l);return Mo(y(i,(e=>vo(s,{...Bo(d,e),key:e,tableId:u,rowId:e,store:I,debugIds:n}))),r,n,o)},Jo=({indexId:e,indexes:o,sliceComponent:t=Ho,getSliceComponentProps:s,separator:d,debugIds:r})=>Mo(y(Ge(e,o),(d=>vo(t,{...Bo(s,d),key:d,indexId:e,sliceId:d,indexes:o,debugIds:r}))),d,r,e),Ko=({relationshipId:e,localRowId:o,relationships:t,rowComponent:s=Ao,getRowComponentProps:d,debugIds:r})=>{const[n,l]=So(t),I=n?.getRemoteTableId(e),u=Oe(e,o,n);return Mo(R(I)||R(u)?null:vo(s,{...Bo(d,u),key:u,tableId:I,rowId:u,store:l,debugIds:r}),void 0,r,o)},No=e=>fo(e,Qe,e.remoteRowId),Oo=e=>fo(e,Ue,e.firstRowId),Qo=({queryId:e,rowId:o,cellId:t,queries:d,debugIds:r})=>Mo(s+(so(e,o,t,d)??s),void 0,r,t),Uo=({queryId:e,rowId:o,queries:t,resultCellComponent:s=Qo,getResultCellComponentProps:d,separator:r,debugIds:n})=>Mo(y(to(e,o,t),(r=>vo(s,{...Bo(d,r),key:r,queryId:e,rowId:o,cellId:r,queries:t,debugIds:n}))),r,n,o),Wo=e=>xo(e,_e(e.queryId,e.queries)),Xo=({cellId:e,descending:o,offset:t,limit:s,...d})=>xo(d,eo(d.queryId,e,o,t,s,d.queries)),Yo=({checkpoints:e,checkpointId:o,debugIds:t})=>Mo(po(o,e)??s,void 0,t,o),Zo=To((e=>e[0])),$o=To((e=>R(e[1])?[]:[e[1]])),_o=To((e=>e[2]));export{Zo as BackwardCheckpointsView,Vo as CellView,Yo as CheckpointView,$o as CurrentCheckpointView,_o as ForwardCheckpointsView,Jo as IndexView,Oo as LinkedRowsView,No as LocalRowsView,Go as MetricView,Lo as Provider,Ko as RemoteRowView,Qo as ResultCellView,Uo as ResultRowView,Xo as ResultSortedTableView,Wo as ResultTableView,Ao as RowView,Ho as SliceView,Fo as SortedTableView,Eo as TableView,jo as TablesView,zo as ValueView,Do as ValuesView,Po as tableView,ae as useAddRowCallback,re as useCell,de as useCellIds,Le as useCellIdsListener,Me as useCellListener,po as useCheckpoint,ao as useCheckpointIds,ko as useCheckpointIdsListener,yo as useCheckpointListener,M as useCheckpoints,co as useCreateCheckpoints,De as useCreateIndexes,Fe as useCreateMetrics,ho as useCreatePersister,Ze as useCreateQueries,Ne as useCreateRelationships,Y as useCreateStore,ye as useDelCellCallback,ke as useDelRowCallback,me as useDelTableCallback,Ce as useDelTablesCallback,ve as useDelValueCallback,he as useDelValuesCallback,bo as useGoBackwardCallback,wo as useGoForwardCallback,Ro as useGoToCallback,T as useIndexes,Ue as useLinkedRowIds,Ye as useLinkedRowIdsListener,Qe as useLocalRowIds,Xe as useLocalRowIdsListener,je as useMetric,ze as useMetricListener,f as useMetrics,L as useQueries,mo as useRedoInformation,B as useRelationships,Oe as useRemoteRowId,We as useRemoteRowIdListener,so as useResultCell,to as useResultCellIds,uo as useResultCellIdsListener,io as useResultCellListener,oo as useResultRow,_e as useResultRowIds,no as useResultRowIdsListener,Io as useResultRowListener,eo as useResultSortedRowIds,lo as useResultSortedRowIdsListener,$e as useResultTable,ro as useResultTableListener,se as useRow,oe as useRowIds,fe as useRowIdsListener,Be as useRowListener,ge as useSetCellCallback,go as useSetCheckpointCallback,pe as useSetPartialRowCallback,we as useSetPartialValuesCallback,ce as useSetRowCallback,ie as useSetTableCallback,ue as useSetTablesCallback,Re as useSetValueCallback,be as useSetValuesCallback,Ge as useSliceIds,Je as useSliceIdsListener,He as useSliceRowIds,Ke as useSliceRowIdsListener,te as useSortedRowIds,Te as useSortedRowIdsListener,S as useStore,_ as useTable,ee as useTableCellIds,Se as useTableCellIdsListener,$ as useTableIds,Pe as useTableIdsListener,xe as useTableListener,Z as useTables,qe as useTablesListener,Co as useUndoInformation,Ie as useValue,le as useValueIds,Ae as useValueIdsListener,Ee as useValueListener,ne as useValues,Ve as useValuesListener};
Binary file