tinybase 4.3.8 → 4.3.10

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 (243) hide show
  1. package/lib/checkpoints.js +1 -1
  2. package/lib/checkpoints.js.gz +0 -0
  3. package/lib/cjs/checkpoints.cjs +1 -1
  4. package/lib/cjs/checkpoints.cjs.gz +0 -0
  5. package/lib/cjs/indexes.cjs +1 -1
  6. package/lib/cjs/indexes.cjs.gz +0 -0
  7. package/lib/cjs/metrics.cjs +1 -1
  8. package/lib/cjs/metrics.cjs.gz +0 -0
  9. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  10. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  11. package/lib/cjs/persisters/persister-expo-sqlite.cjs +1 -1
  12. package/lib/cjs/persisters/persister-expo-sqlite.cjs.gz +0 -0
  13. package/lib/cjs/persisters/persister-indexed-db.cjs +1 -1
  14. package/lib/cjs/persisters/persister-indexed-db.cjs.gz +0 -0
  15. package/lib/cjs/persisters/persister-partykit-client.cjs +1 -1
  16. package/lib/cjs/persisters/persister-partykit-client.cjs.gz +0 -0
  17. package/lib/cjs/persisters/persister-partykit-server.cjs +1 -1
  18. package/lib/cjs/persisters/persister-partykit-server.cjs.gz +0 -0
  19. package/lib/cjs/persisters/persister-sqlite-wasm.cjs +1 -1
  20. package/lib/cjs/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  21. package/lib/cjs/persisters/persister-sqlite3.cjs +1 -1
  22. package/lib/cjs/persisters/persister-sqlite3.cjs.gz +0 -0
  23. package/lib/cjs/persisters/persister-yjs.cjs +1 -1
  24. package/lib/cjs/persisters/persister-yjs.cjs.gz +0 -0
  25. package/lib/cjs/queries.cjs +1 -1
  26. package/lib/cjs/queries.cjs.gz +0 -0
  27. package/lib/cjs/relationships.cjs +1 -1
  28. package/lib/cjs/relationships.cjs.gz +0 -0
  29. package/lib/cjs/store.cjs +1 -1
  30. package/lib/cjs/store.cjs.gz +0 -0
  31. package/lib/cjs/tinybase.cjs +1 -1
  32. package/lib/cjs/tinybase.cjs.gz +0 -0
  33. package/lib/cjs/tools.cjs +1 -1
  34. package/lib/cjs/tools.cjs.gz +0 -0
  35. package/lib/cjs/ui-react-dom-debug.cjs +1 -1
  36. package/lib/cjs/ui-react-dom-debug.cjs.gz +0 -0
  37. package/lib/cjs/ui-react.cjs +1 -1
  38. package/lib/cjs/ui-react.cjs.gz +0 -0
  39. package/lib/cjs-es6/checkpoints.cjs +1 -1
  40. package/lib/cjs-es6/checkpoints.cjs.gz +0 -0
  41. package/lib/cjs-es6/indexes.cjs +1 -1
  42. package/lib/cjs-es6/indexes.cjs.gz +0 -0
  43. package/lib/cjs-es6/metrics.cjs +1 -1
  44. package/lib/cjs-es6/metrics.cjs.gz +0 -0
  45. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  46. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  47. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs +1 -1
  48. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs.gz +0 -0
  49. package/lib/cjs-es6/persisters/persister-indexed-db.cjs +1 -1
  50. package/lib/cjs-es6/persisters/persister-indexed-db.cjs.gz +0 -0
  51. package/lib/cjs-es6/persisters/persister-partykit-client.cjs +1 -1
  52. package/lib/cjs-es6/persisters/persister-partykit-client.cjs.gz +0 -0
  53. package/lib/cjs-es6/persisters/persister-partykit-server.cjs +1 -1
  54. package/lib/cjs-es6/persisters/persister-partykit-server.cjs.gz +0 -0
  55. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs +1 -1
  56. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  57. package/lib/cjs-es6/persisters/persister-sqlite3.cjs +1 -1
  58. package/lib/cjs-es6/persisters/persister-sqlite3.cjs.gz +0 -0
  59. package/lib/cjs-es6/persisters/persister-yjs.cjs +1 -1
  60. package/lib/cjs-es6/persisters/persister-yjs.cjs.gz +0 -0
  61. package/lib/cjs-es6/queries.cjs +1 -1
  62. package/lib/cjs-es6/queries.cjs.gz +0 -0
  63. package/lib/cjs-es6/relationships.cjs +1 -1
  64. package/lib/cjs-es6/relationships.cjs.gz +0 -0
  65. package/lib/cjs-es6/store.cjs +1 -1
  66. package/lib/cjs-es6/store.cjs.gz +0 -0
  67. package/lib/cjs-es6/tinybase.cjs +1 -1
  68. package/lib/cjs-es6/tinybase.cjs.gz +0 -0
  69. package/lib/cjs-es6/tools.cjs +1 -1
  70. package/lib/cjs-es6/tools.cjs.gz +0 -0
  71. package/lib/cjs-es6/ui-react-dom-debug.cjs +1 -1
  72. package/lib/cjs-es6/ui-react-dom-debug.cjs.gz +0 -0
  73. package/lib/cjs-es6/ui-react.cjs +1 -1
  74. package/lib/cjs-es6/ui-react.cjs.gz +0 -0
  75. package/lib/debug/checkpoints.js +12 -12
  76. package/lib/debug/indexes.js +9 -9
  77. package/lib/debug/metrics.js +9 -9
  78. package/lib/debug/persisters/persister-automerge.js +6 -6
  79. package/lib/debug/persisters/persister-browser.js +2 -2
  80. package/lib/debug/persisters/persister-cr-sqlite-wasm.js +5 -5
  81. package/lib/debug/persisters/persister-expo-sqlite.js +5 -5
  82. package/lib/debug/persisters/persister-file.js +2 -2
  83. package/lib/debug/persisters/persister-indexed-db.js +6 -6
  84. package/lib/debug/persisters/persister-partykit-client.js +15 -5
  85. package/lib/debug/persisters/persister-partykit-server.js +44 -30
  86. package/lib/debug/persisters/persister-remote.js +2 -2
  87. package/lib/debug/persisters/persister-sqlite-wasm.js +5 -5
  88. package/lib/debug/persisters/persister-sqlite3.js +5 -5
  89. package/lib/debug/persisters/persister-yjs.js +9 -9
  90. package/lib/debug/persisters.js +2 -2
  91. package/lib/debug/queries.js +15 -15
  92. package/lib/debug/relationships.js +9 -9
  93. package/lib/debug/store.js +9 -9
  94. package/lib/debug/tinybase.js +15 -15
  95. package/lib/debug/tools.js +6 -7
  96. package/lib/debug/ui-react-dom.js +10 -10
  97. package/lib/debug/ui-react.js +2 -2
  98. package/lib/es6/checkpoints.js +1 -1
  99. package/lib/es6/checkpoints.js.gz +0 -0
  100. package/lib/es6/indexes.js +1 -1
  101. package/lib/es6/indexes.js.gz +0 -0
  102. package/lib/es6/metrics.js +1 -1
  103. package/lib/es6/metrics.js.gz +0 -0
  104. package/lib/es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  105. package/lib/es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  106. package/lib/es6/persisters/persister-expo-sqlite.js +1 -1
  107. package/lib/es6/persisters/persister-expo-sqlite.js.gz +0 -0
  108. package/lib/es6/persisters/persister-indexed-db.js +1 -1
  109. package/lib/es6/persisters/persister-indexed-db.js.gz +0 -0
  110. package/lib/es6/persisters/persister-partykit-client.js +1 -1
  111. package/lib/es6/persisters/persister-partykit-client.js.gz +0 -0
  112. package/lib/es6/persisters/persister-partykit-server.js +1 -1
  113. package/lib/es6/persisters/persister-partykit-server.js.gz +0 -0
  114. package/lib/es6/persisters/persister-sqlite-wasm.js +1 -1
  115. package/lib/es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  116. package/lib/es6/persisters/persister-sqlite3.js +1 -1
  117. package/lib/es6/persisters/persister-sqlite3.js.gz +0 -0
  118. package/lib/es6/persisters/persister-yjs.js +1 -1
  119. package/lib/es6/persisters/persister-yjs.js.gz +0 -0
  120. package/lib/es6/queries.js +1 -1
  121. package/lib/es6/queries.js.gz +0 -0
  122. package/lib/es6/relationships.js +1 -1
  123. package/lib/es6/relationships.js.gz +0 -0
  124. package/lib/es6/store.js +1 -1
  125. package/lib/es6/store.js.gz +0 -0
  126. package/lib/es6/tinybase.js +1 -1
  127. package/lib/es6/tinybase.js.gz +0 -0
  128. package/lib/es6/tools.js +1 -1
  129. package/lib/es6/tools.js.gz +0 -0
  130. package/lib/es6/ui-react-dom-debug.js +1 -1
  131. package/lib/es6/ui-react-dom-debug.js.gz +0 -0
  132. package/lib/es6/ui-react.js +1 -1
  133. package/lib/es6/ui-react.js.gz +0 -0
  134. package/lib/indexes.js +1 -1
  135. package/lib/indexes.js.gz +0 -0
  136. package/lib/metrics.js +1 -1
  137. package/lib/metrics.js.gz +0 -0
  138. package/lib/persisters/persister-cr-sqlite-wasm.js +1 -1
  139. package/lib/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  140. package/lib/persisters/persister-expo-sqlite.js +1 -1
  141. package/lib/persisters/persister-expo-sqlite.js.gz +0 -0
  142. package/lib/persisters/persister-indexed-db.js +1 -1
  143. package/lib/persisters/persister-indexed-db.js.gz +0 -0
  144. package/lib/persisters/persister-partykit-client.js +1 -1
  145. package/lib/persisters/persister-partykit-client.js.gz +0 -0
  146. package/lib/persisters/persister-partykit-server.js +1 -1
  147. package/lib/persisters/persister-partykit-server.js.gz +0 -0
  148. package/lib/persisters/persister-sqlite-wasm.js +1 -1
  149. package/lib/persisters/persister-sqlite-wasm.js.gz +0 -0
  150. package/lib/persisters/persister-sqlite3.js +1 -1
  151. package/lib/persisters/persister-sqlite3.js.gz +0 -0
  152. package/lib/persisters/persister-yjs.js +1 -1
  153. package/lib/persisters/persister-yjs.js.gz +0 -0
  154. package/lib/queries.js +1 -1
  155. package/lib/queries.js.gz +0 -0
  156. package/lib/relationships.js +1 -1
  157. package/lib/relationships.js.gz +0 -0
  158. package/lib/store.js +1 -1
  159. package/lib/store.js.gz +0 -0
  160. package/lib/tinybase.js +1 -1
  161. package/lib/tinybase.js.gz +0 -0
  162. package/lib/tools.js +1 -1
  163. package/lib/tools.js.gz +0 -0
  164. package/lib/types/persisters/persister-partykit-client.d.ts +43 -4
  165. package/lib/types/persisters/persister-partykit-server.d.ts +66 -0
  166. package/lib/types/with-schemas/persisters/persister-partykit-client.d.ts +44 -5
  167. package/lib/types/with-schemas/persisters/persister-partykit-server.d.ts +66 -0
  168. package/lib/ui-react.js +1 -1
  169. package/lib/ui-react.js.gz +0 -0
  170. package/lib/umd/checkpoints.js +1 -1
  171. package/lib/umd/checkpoints.js.gz +0 -0
  172. package/lib/umd/indexes.js +1 -1
  173. package/lib/umd/indexes.js.gz +0 -0
  174. package/lib/umd/metrics.js +1 -1
  175. package/lib/umd/metrics.js.gz +0 -0
  176. package/lib/umd/persisters/persister-cr-sqlite-wasm.js +1 -1
  177. package/lib/umd/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  178. package/lib/umd/persisters/persister-expo-sqlite.js +1 -1
  179. package/lib/umd/persisters/persister-expo-sqlite.js.gz +0 -0
  180. package/lib/umd/persisters/persister-indexed-db.js +1 -1
  181. package/lib/umd/persisters/persister-indexed-db.js.gz +0 -0
  182. package/lib/umd/persisters/persister-partykit-client.js +1 -1
  183. package/lib/umd/persisters/persister-partykit-client.js.gz +0 -0
  184. package/lib/umd/persisters/persister-partykit-server.js +1 -1
  185. package/lib/umd/persisters/persister-partykit-server.js.gz +0 -0
  186. package/lib/umd/persisters/persister-sqlite-wasm.js +1 -1
  187. package/lib/umd/persisters/persister-sqlite-wasm.js.gz +0 -0
  188. package/lib/umd/persisters/persister-sqlite3.js +1 -1
  189. package/lib/umd/persisters/persister-sqlite3.js.gz +0 -0
  190. package/lib/umd/persisters/persister-yjs.js +1 -1
  191. package/lib/umd/persisters/persister-yjs.js.gz +0 -0
  192. package/lib/umd/queries.js +1 -1
  193. package/lib/umd/queries.js.gz +0 -0
  194. package/lib/umd/relationships.js +1 -1
  195. package/lib/umd/relationships.js.gz +0 -0
  196. package/lib/umd/store.js +1 -1
  197. package/lib/umd/store.js.gz +0 -0
  198. package/lib/umd/tinybase.js +1 -1
  199. package/lib/umd/tinybase.js.gz +0 -0
  200. package/lib/umd/tools.js +1 -1
  201. package/lib/umd/tools.js.gz +0 -0
  202. package/lib/umd/ui-react-dom-debug.js +1 -1
  203. package/lib/umd/ui-react-dom-debug.js.gz +0 -0
  204. package/lib/umd/ui-react.js +1 -1
  205. package/lib/umd/ui-react.js.gz +0 -0
  206. package/lib/umd-es6/checkpoints.js +1 -1
  207. package/lib/umd-es6/checkpoints.js.gz +0 -0
  208. package/lib/umd-es6/indexes.js +1 -1
  209. package/lib/umd-es6/indexes.js.gz +0 -0
  210. package/lib/umd-es6/metrics.js +1 -1
  211. package/lib/umd-es6/metrics.js.gz +0 -0
  212. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  213. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  214. package/lib/umd-es6/persisters/persister-expo-sqlite.js +1 -1
  215. package/lib/umd-es6/persisters/persister-expo-sqlite.js.gz +0 -0
  216. package/lib/umd-es6/persisters/persister-indexed-db.js +1 -1
  217. package/lib/umd-es6/persisters/persister-indexed-db.js.gz +0 -0
  218. package/lib/umd-es6/persisters/persister-partykit-client.js +1 -1
  219. package/lib/umd-es6/persisters/persister-partykit-client.js.gz +0 -0
  220. package/lib/umd-es6/persisters/persister-partykit-server.js +1 -1
  221. package/lib/umd-es6/persisters/persister-partykit-server.js.gz +0 -0
  222. package/lib/umd-es6/persisters/persister-sqlite-wasm.js +1 -1
  223. package/lib/umd-es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  224. package/lib/umd-es6/persisters/persister-sqlite3.js +1 -1
  225. package/lib/umd-es6/persisters/persister-sqlite3.js.gz +0 -0
  226. package/lib/umd-es6/persisters/persister-yjs.js +1 -1
  227. package/lib/umd-es6/persisters/persister-yjs.js.gz +0 -0
  228. package/lib/umd-es6/queries.js +1 -1
  229. package/lib/umd-es6/queries.js.gz +0 -0
  230. package/lib/umd-es6/relationships.js +1 -1
  231. package/lib/umd-es6/relationships.js.gz +0 -0
  232. package/lib/umd-es6/store.js +1 -1
  233. package/lib/umd-es6/store.js.gz +0 -0
  234. package/lib/umd-es6/tinybase.js +1 -1
  235. package/lib/umd-es6/tinybase.js.gz +0 -0
  236. package/lib/umd-es6/tools.js +1 -1
  237. package/lib/umd-es6/tools.js.gz +0 -0
  238. package/lib/umd-es6/ui-react-dom-debug.js +1 -1
  239. package/lib/umd-es6/ui-react-dom-debug.js.gz +0 -0
  240. package/lib/umd-es6/ui-react.js +1 -1
  241. package/lib/umd-es6/ui-react.js.gz +0 -0
  242. package/package.json +8 -8
  243. package/readme.md +2 -2
package/lib/metrics.js CHANGED
@@ -1 +1 @@
1
- const e=e=>typeof e,t="",r=e(t),n=e(e),s=Math.max,i=Math.min,o=isFinite,a=e=>null==e,c=(e,t,r)=>a(e)?r?.():t(e),d=e=>Array.isArray(e),l=()=>{},u=(e,t)=>e.forEach(t),v=e=>M(e,((e,t)=>e+t),0),h=e=>e.length,M=(e,t,r)=>e.reduce(t,r),f=(e,...t)=>e.push(...t),g=Object.freeze,L=e=>e?.size??0,m=(e,t)=>e?.has(t)??!1,w=e=>a(e)||0==L(e),y=e=>[...e?.values()??[]],p=e=>e.clear(),b=(e,t)=>e?.forEach(t),I=(e,t)=>e?.delete(t),x=e=>new Map(e),E=(e,t)=>e?.get(t),R=(e,t)=>b(e,((e,r)=>t(r,e))),S=(e,t,r)=>a(r)?(I(e,t),e):e?.set(t,r),T=(e,t,r)=>(m(e,t)||S(e,t,r()),E(e,t)),k=(e,t,r,n,s=0)=>c((r?T:E)(e,t[s],s>h(t)-2?r:x),(i=>{if(s>h(t)-2)return n?.(i)&&S(e,t[s]),i;const o=k(i,t,r,n,s+1);return w(i)&&S(e,t[s]),o})),z=x([["avg",[(e,t)=>v(e)/t,(e,t,r)=>e+(t-e)/(r+1),(e,t,r)=>e+(e-t)/(r-1),(e,t,r,n)=>e+(t-r)/n]],["max",[e=>s(...e),(e,t)=>s(t,e),(e,t)=>t==e?void 0:e,(e,t,r)=>r==e?void 0:s(t,e)]],["min",[e=>i(...e),(e,t)=>i(t,e),(e,t)=>t==e?void 0:e,(e,t,r)=>r==e?void 0:i(t,e)]],["sum",[e=>v(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,r)=>e-r+t]]]),A=e=>new Set(d(e)||a(e)?e:[e]),D=(e,t)=>e?.add(t),N=/^\d+$/,j=(s=>{const i=new WeakMap;return s=>(i.has(s)||i.set(s,(s=>{const i=x(),[v,M,j]=(e=>{let r;const[n,s]=(()=>{const e=[];let r=0;return[n=>(n?e.shift():null)??t+r++,t=>{N.test(t)&&h(e)<1e3&&f(e,t)}]})(),i=x();return[(e,s,o,a=[],c=(()=>[]))=>{r??=P;const d=n(1);return S(i,d,[e,s,o,a,c]),D(k(s,o??[t],A),d),d},(e,n,...s)=>u(((e,r=[t])=>{const n=[],s=(e,t)=>t==h(r)?f(n,e):null===r[t]?b(e,(e=>s(e,t+1))):u([r[t],null],(r=>s(E(e,r),t+1)));return s(e,0),n})(e,n),(e=>b(e,(e=>E(i,e)[0](r,...n??[],...s))))),e=>c(E(i,e),(([,r,n])=>(k(r,n??[t],void 0,(t=>(I(t,e),w(t)?1:0))),S(i,e),s(e),n))),e=>c(E(i,e),(([e,,t=[],n,s])=>{const i=(...o)=>{const c=h(o);c==h(t)?e(r,...o,...s(o)):a(t[c])?u(n[c]?.(...o)??[],(e=>i(...o,e))):i(...o,t[c])};i()}))]})(),[C,F,O,W,$,q,B,,G,H,J,K]=((e,r,n,s,i)=>{const o=e.hasRow,l=x(),v=x(),M=x(),f=x(),g=x(),L=x(),k=(t,r,...n)=>{const s=T(L,t,A);return u(n,(t=>D(s,t)&&r&&e.callListener(t))),n},z=(t,...r)=>c(E(L,t),(n=>{u(0==h(r)?y(n):r,(t=>{e.delListener(t),I(n,t)})),w(n)&&S(L,t)})),N=(e,t)=>{S(l,e,t),m(v,e)||(S(v,e,r()),S(f,e,x()),S(g,e,x()),i(M))},j=e=>{S(l,e),S(v,e),S(f,e),S(g,e),z(e),i(M)};return[()=>e,()=>{return e=l,[...e?.keys()??[]];var e},e=>R(v,e),e=>m(v,e),e=>E(l,e),e=>E(v,e),(e,t)=>S(v,e,t),N,(r,n,s,i,c)=>{N(r,n);const l=x(),v=x(),M=E(f,r),L=E(g,r),w=r=>{const s=t=>e.getCell(n,r,t),u=E(M,r),f=o(n,r)?(g=i(s,r),isNaN(g)||a(g)||!0===g||!1===g||g===t?void 0:1*g):void 0;var g,m,w,y;if(u===f||d(u)&&d(f)&&(w=f,h(m=u)===h(w)&&(y=(e,t)=>w[t]===e,m.every(y)))||S(l,r,[u,f]),!a(c)){const e=E(L,r),t=o(n,r)?c(s,r):void 0;e!=t&&S(v,r,t)}},y=e=>{s((()=>{b(l,(([,e],t)=>S(M,t,e))),b(v,((e,t)=>S(L,t,e)))}),l,v,M,L,e),p(l),p(v)};R(M,w),e.hasTable(n)&&u(e.getRowIds(n),(e=>{m(M,e)||w(e)})),y(!0),z(r),k(r,0,e.addRowListener(n,null,((e,t,r)=>w(r))),e.addTableListener(n,(()=>y())))},j,e=>s(e,M),()=>R(L,j),k,z]})(s,l,0,v,M),P={setMetricDefinition:(t,s,c,d,l,u,v)=>{const h=e(c)==n?[c,l,u,v]:E(z,c)??E(z,"sum");return G(t,s,((e,r,n,s,c,d)=>{const l=q(t),u=L(s);d||=a(l),e();let v=((e,t,r,n,s,i=!1)=>{if(w(r))return;const[o,c,d,l]=s;return i||=a(e),b(n,(([r,n])=>{i||(e=a(r)?c?.(e,n,t++):a(n)?d?.(e,r,t--):l?.(e,n,r,t),i||=a(e))})),i?o(y(r),L(r)):e})(l,u,s,r,h,d);o(v)||(v=void 0),v!=l&&(B(t,v),M(i,[t],v,l))}),(1,e(f=d)==r?e=>e(f):f??(()=>1))),P;var f},delMetricDefinition:e=>(H(e),P),getStore:C,getMetricIds:F,forEachMetric:O,hasMetric:W,getTableId:$,getMetric:q,addMetricIdsListener:J,addMetricListener:(e,t)=>v(t,i,[e]),delListener:e=>(j(e),P),destroy:K,getListenerStats:()=>({})};return g(P)})(s)),i.get(s))})();export{j as createMetrics};
1
+ const e=e=>typeof e,t="",r=e(t),n=e(e),s=Math.max,i=Math.min,o=isFinite,a=e=>null==e,c=(e,t,r)=>a(e)?r?.():t(e),d=e=>Array.isArray(e),l=e=>e.length,u=()=>{},v=(e,t)=>e.forEach(t),h=e=>M(e,((e,t)=>e+t),0),M=(e,t,r)=>e.reduce(t,r),f=(e,...t)=>e.push(...t),g=Object.freeze,L=e=>e?.size??0,m=(e,t)=>e?.has(t)??!1,w=e=>a(e)||0==L(e),y=e=>[...e?.values()??[]],p=e=>e.clear(),b=(e,t)=>e?.forEach(t),I=(e,t)=>e?.delete(t),x=e=>new Map(e),E=(e,t)=>e?.get(t),R=(e,t)=>b(e,((e,r)=>t(r,e))),S=(e,t,r)=>a(r)?(I(e,t),e):e?.set(t,r),T=(e,t,r)=>(m(e,t)||S(e,t,r()),E(e,t)),k=(e,t,r,n,s=0)=>c((r?T:E)(e,t[s],s>l(t)-2?r:x),(i=>{if(s>l(t)-2)return n?.(i)&&S(e,t[s]),i;const o=k(i,t,r,n,s+1);return w(i)&&S(e,t[s]),o})),z=x([["avg",[(e,t)=>h(e)/t,(e,t,r)=>e+(t-e)/(r+1),(e,t,r)=>e+(e-t)/(r-1),(e,t,r,n)=>e+(t-r)/n]],["max",[e=>s(...e),(e,t)=>s(t,e),(e,t)=>t==e?void 0:e,(e,t,r)=>r==e?void 0:s(t,e)]],["min",[e=>i(...e),(e,t)=>i(t,e),(e,t)=>t==e?void 0:e,(e,t,r)=>r==e?void 0:i(t,e)]],["sum",[e=>h(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,r)=>e-r+t]]]),A=e=>new Set(d(e)||a(e)?e:[e]),D=(e,t)=>e?.add(t),N=/^\d+$/,j=(s=>{const i=new WeakMap;return s=>(i.has(s)||i.set(s,(s=>{const i=x(),[h,M,j]=(e=>{let r;const[n,s]=(()=>{const e=[];let r=0;return[n=>(n?e.shift():null)??t+r++,t=>{N.test(t)&&l(e)<1e3&&f(e,t)}]})(),i=x();return[(e,s,o,a=[],c=(()=>[]))=>{r??=P;const d=n(1);return S(i,d,[e,s,o,a,c]),D(k(s,o??[t],A),d),d},(e,n,...s)=>v(((e,r=[t])=>{const n=[],s=(e,t)=>t==l(r)?f(n,e):null===r[t]?b(e,(e=>s(e,t+1))):v([r[t],null],(r=>s(E(e,r),t+1)));return s(e,0),n})(e,n),(e=>b(e,(e=>E(i,e)[0](r,...n??[],...s))))),e=>c(E(i,e),(([,r,n])=>(k(r,n??[t],void 0,(t=>(I(t,e),w(t)?1:0))),S(i,e),s(e),n))),e=>c(E(i,e),(([e,,t=[],n,s])=>{const i=(...o)=>{const c=l(o);c==l(t)?e(r,...o,...s(o)):a(t[c])?v(n[c]?.(...o)??[],(e=>i(...o,e))):i(...o,t[c])};i()}))]})(),[C,F,O,W,$,q,B,,G,H,J,K]=((e,r,n,s,i)=>{const o=e.hasRow,u=x(),h=x(),M=x(),f=x(),g=x(),L=x(),k=(t,r,...n)=>{const s=T(L,t,A);return v(n,(t=>D(s,t)&&r&&e.callListener(t))),n},z=(t,...r)=>c(E(L,t),(n=>{v(0==l(r)?y(n):r,(t=>{e.delListener(t),I(n,t)})),w(n)&&S(L,t)})),N=(e,t)=>{S(u,e,t),m(h,e)||(S(h,e,r()),S(f,e,x()),S(g,e,x()),i(M))},j=e=>{S(u,e),S(h,e),S(f,e),S(g,e),z(e),i(M)};return[()=>e,()=>{return e=u,[...e?.keys()??[]];var e},e=>R(h,e),e=>m(h,e),e=>E(u,e),e=>E(h,e),(e,t)=>S(h,e,t),N,(r,n,s,i,c)=>{N(r,n);const u=x(),h=x(),M=E(f,r),L=E(g,r),w=r=>{const s=t=>e.getCell(n,r,t),v=E(M,r),f=o(n,r)?(g=i(s,r),isNaN(g)||a(g)||!0===g||!1===g||g===t?void 0:1*g):void 0;var g,m,w,y;if(v===f||d(v)&&d(f)&&(w=f,l(m=v)===l(w)&&(y=(e,t)=>w[t]===e,m.every(y)))||S(u,r,[v,f]),!a(c)){const e=E(L,r),t=o(n,r)?c(s,r):void 0;e!=t&&S(h,r,t)}},y=e=>{s((()=>{b(u,(([,e],t)=>S(M,t,e))),b(h,((e,t)=>S(L,t,e)))}),u,h,M,L,e),p(u),p(h)};R(M,w),e.hasTable(n)&&v(e.getRowIds(n),(e=>{m(M,e)||w(e)})),y(!0),z(r),k(r,0,e.addRowListener(n,null,((e,t,r)=>w(r))),e.addTableListener(n,(()=>y())))},j,e=>s(e,M),()=>R(L,j),k,z]})(s,u,0,h,M),P={setMetricDefinition:(t,s,c,d,l,u,v)=>{const h=e(c)==n?[c,l,u,v]:E(z,c)??E(z,"sum");return G(t,s,((e,r,n,s,c,d)=>{const l=q(t),u=L(s);d||=a(l),e();let v=((e,t,r,n,s,i=!1)=>{if(w(r))return;const[o,c,d,l]=s;return i||=a(e),b(n,(([r,n])=>{i||(e=a(r)?c?.(e,n,t++):a(n)?d?.(e,r,t--):l?.(e,n,r,t),i||=a(e))})),i?o(y(r),L(r)):e})(l,u,s,r,h,d);o(v)||(v=void 0),v!=l&&(B(t,v),M(i,[t],v,l))}),(1,e(f=d)==r?e=>e(f):f??(()=>1))),P;var f},delMetricDefinition:e=>(H(e),P),getStore:C,getMetricIds:F,forEachMetric:O,hasMetric:W,getTableId:$,getMetric:q,addMetricIdsListener:J,addMetricListener:(e,t)=>h(t,i,[e]),delListener:e=>(j(e),P),destroy:K,getListenerStats:()=>({})};return g(P)})(s)),i.get(s))})();export{j as createMetrics};
package/lib/metrics.js.gz CHANGED
Binary file
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t)=>a.repeat(t),i=Promise,c=setInterval,o=clearInterval,r=(a,t)=>a instanceof t,w=a=>null==a,l=(a,t,e)=>w(a)?e?.():t(a),y=t=>a(t)==s,E=(a,t,e)=>a.slice(t,e),u=async a=>i.all(a),d=(a,t="")=>a.join(t),T=(a,t)=>a.map(t),v=a=>a.length,m=a=>0==v(a),A=(a,t)=>a.filter(t),L=(a,...t)=>a.push(...t),p=(a,t)=>a?.has(t)??!1,f=a=>[...a?.values()??[]],h=(a,t)=>a?.delete(t),N=Object,O=N.keys,R=N.freeze,C=(a=[])=>N.fromEntries(a),S=(...a)=>N.assign({},...a),D=(a,t)=>T(N.entries(a),(([a,e])=>t(e,a))),I=a=>N.values(a),g=a=>v(O(a)),b=a=>(a=>r(a,N)&&a.constructor==N)(a)&&0==g(a),F=a=>new Map(a),M=a=>[...a?.keys()??[]],$=(a,t)=>a?.get(t),_=(a,t)=>T([...a?.entries()??[]],(([a,e])=>t(e,a))),P=(a,t,e)=>w(e)?(h(a,t),a):a?.set(t,e),B=(a,t,e)=>(p(a,t)||P(a,t,e()),$(a,t)),H=(a,t,e,s=P)=>(D(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!w(((a,t)=>l(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),W=a=>new Set(Array.isArray(a)||w(a)?a:[a]),j=(a,t)=>a?.add(t),x="_",U="_id",k=a=>`"${a.replace(/"/g,'""')}"`,J="FROM pragma_table_",Y="WHERE",z=(a,t,s)=>{const n=F();return[async()=>H(n,C(await u(T(await a("SELECT name "+J+"list WHERE schema='main'AND type='table'AND name IN("+K(t)+")",t),(async({name:t})=>[t,C(T(await a("SELECT name,type "+J+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>P(n,t,H(B(n,t,F),e,((a,t,e)=>{e!=$(a,t)&&P(a,t,e)}),((a,t)=>P(a,t))))),((a,t)=>P(n,t))),async(t,e)=>((a,t)=>!w($($(n,a),t)))(t,e)?C(A(T(await a("SELECT*FROM"+k(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!w(a)&&!b(t)))):{},async(t,s,i,c,o,r=!1)=>{const l=W();D(i??{},(a=>T(O(a??{}),(a=>j(l,a)))));const y=f(l);if(!r&&o&&m(y)&&p(n,t))return await a("DROP TABLE"+k(t)),void P(n,t);if(m(y)||p(n,t)){const e=$(n,t),i=W(M(e));await u([...T(y,(async s=>{h(i,s)||(await a(`ALTER TABLE${k(t)}ADD${k(s)}`),P(e,s,""))})),...!r&&c?T(f(i),(async n=>{n!=s&&(await a(`ALTER TABLE${k(t)}DROP${k(n)}`),P(e,n))})):[]])}else await a(`CREATE TABLE${k(t)}(${k(s)} PRIMARY KEY ON CONFLICT REPLACE${d(T(y,(a=>e+k(a))))});`),P(n,t,F([[s,""],...T(y,(a=>[a,""]))]));if(r)w(i)?await a("DELETE FROM"+k(t)+"WHERE 1"):await u(D(i,(async(e,n)=>{w(e)?await a("DELETE FROM"+k(t)+Y+k(s)+"=?",[n]):m(y)||await G(a,t,s,O(e),[n,...I(e)])})));else if(m(y))p(n,t)&&await a("DELETE FROM"+k(t)+"WHERE 1");else{const e=A(M($(n,t)),(a=>a!=s)),c=[],o=[];D(i??{},((a,t)=>{L(c,t,...T(e,(t=>a?.[t]))),L(o,t)})),await G(a,t,s,e,c),await a("DELETE FROM"+k(t)+Y+k(s)+"NOT IN("+K(o)+")",o)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},G=async(a,t,s,i,c)=>await a("INSERT INTO"+k(t)+"("+k(s)+d(T(i,(a=>e+k(a))))+")VALUES"+E(n(`,(?${n(",?",v(i))})`,v(c)/(v(i)+1)),1)+"ON CONFLICT("+k(s)+")DO UPDATE SET"+d(T(i,(a=>k(a)+"=excluded."+k(a))),e),c),K=a=>d(T(a,(()=>"?")),e),V=JSON.parse,q=F(),Q=F(),X=(a,t,e,s,n,i,c=[])=>{let o,r,y,E=0,u=0;B(q,c,(()=>0)),B(Q,c,(()=>[]));const d=async a=>(2!=E&&(E=1,await T.schedule((async()=>{await a(),E=0}))),T),T={load:async(e,s)=>await d((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(T.stopAutoLoad(),await T.load(e,n),u=1,y=s((async(e,s)=>{if(s){const t=s();await d((async()=>a.setTransactionChanges(t)))}else await d((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),T),stopAutoLoad:()=>(u&&(n(y),y=void 0,u=0),T),save:async t=>(1!=E&&(E=2,await T.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}E=0}))),T),startAutoSave:async()=>(await T.stopAutoSave().save(),o=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();b(e)&&b(s)||T.save((()=>[e,s]))})),T),stopAutoSave:()=>(l(o,a.delListener),T),schedule:async(...a)=>(L($(Q,c),...a),await(async()=>{if(!$(q,c)){for(P(q,c,1);!w((a=$(Q,c),r=a.shift()));)try{await r()}catch(a){i?.(a)}P(q,c,0)}var a})(),T),getStore:()=>a,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return R(T)},Z="store",aa=(a,t,e,s,n,[i],c,o)=>{const[w,l,y,E]=z(t,c,n);return X(a,(async()=>await E((async()=>(await w(),V((await l(i,U))[x]?.[Z]??"null"))))),(async a=>await E((async()=>{var t;await w(),await y(i,U,{[x]:{[Z]:(t=a()??null,JSON.stringify(t,((a,t)=>r(t,Map)?N.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,o)},ta=(a,t,e,s,n,[i,c,[o,r,l]],y,E)=>{const[d,T,v,m]=z(t,y,n),L=async(a,t)=>await u(_(c,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await v(e,s,o,n,i,t)}))),p=async(a,t)=>r?await v(l,U,{[x]:a},!0,!0,t):null;return X(a,(async()=>await m((async()=>{await d();const a=await(async()=>C(A(await u(_(i,(async([a,t],e)=>[a,await T(e,t)]))),(a=>!b(a[1])))))(),t=await(async()=>o?(await T(l,U))[x]:{})();return b(a)&&w(t)?void 0:[a,t]}))),(async(a,t)=>await m((async()=>{if(await d(),w(t)){const[t,e]=a();await L(t),await p(e)}else{const[a,e]=t();await L(a,!0),await p(e,!0)}}))),e,s,n,E)},ea="json",sa="autoLoadIntervalSeconds",na="rowIdColumnName",ia="tableId",ca="tableName",oa={mode:ea,[sa]:1},ra={load:0,save:0,[ca]:t+"_values"},wa=(a,t,e,s)=>{const n=F();return D(a,((a,i)=>{const c=E(I(S(t,y(a)?{[e]:a}:a)),0,g(t));w(c[0])||s(i,c[0])||P(n,i,c)})),n},la="pragma ",ya="data_version",Ea="schema_version",ua=(a,e,s,n,i,r,w,l)=>{let u,d;const[T,v,m,A]=(a=>{const e=(a=>S(oa,y(a)?{storeTableName:a}:a??{}))(a),s=e[sa];if(e.mode==ea){const{storeTableName:a=t}=e;return[1,s,[a],W(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=e,o=E(I(S(ra,c)),0,g(ra)),r=o[2],w=W(r);return[0,s,[wa(n,{[ia]:null,[na]:U},ia,(a=>j(w,a)&&a==r)),wa(i,{[ca]:null,[na]:U,deleteEmptyColumns:0,deleteEmptyTable:0},ca,((a,t)=>j(w,t)&&t==r)),o],w]})(e);return(T?aa:ta)(a,r?async(a,t)=>(r(a,t),await s(a,t)):s,(a=>[c((async()=>{try{const t=(await s(la+ya))[0][ya],e=(await s(la+Ea))[0][Ea];t==(u??=t)&&e==(d??=e)||(a(),u=t,d=e)}catch{}}),1e3*v),n((t=>A.has(t)?a():0))]),(([a,t])=>{o(a),u=d=null,i(t)}),w,m,f(A),l)},da=(a,t,e,s,n)=>ua(a,e,(async(a,e=[])=>await t.execO(a,e)),(a=>t.onUpdate(((t,e,s)=>a(s)))),(a=>a()),s,n,t);export{da as createCrSqliteWasmPersister};
1
+ const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t)=>a.repeat(t),i=Promise,c=setInterval,o=clearInterval,r=(a,t)=>a instanceof t,w=a=>null==a,l=(a,t,e)=>w(a)?e?.():t(a),y=t=>a(t)==s,E=(a,t,e)=>a.slice(t,e),u=a=>a.length,d=async a=>i.all(a),T=(a,t="")=>a.join(t),v=(a,t)=>a.map(t),m=a=>0==u(a),A=(a,t)=>a.filter(t),L=(a,...t)=>a.push(...t),p=(a,t)=>a?.has(t)??!1,f=a=>[...a?.values()??[]],h=(a,t)=>a?.delete(t),N=Object,O=N.keys,R=N.freeze,C=(a=[])=>N.fromEntries(a),S=(...a)=>N.assign({},...a),D=(a,t)=>v(N.entries(a),(([a,e])=>t(e,a))),I=a=>N.values(a),g=a=>u(O(a)),b=a=>(a=>r(a,N)&&a.constructor==N)(a)&&0==g(a),F=a=>new Map(a),M=a=>[...a?.keys()??[]],$=(a,t)=>a?.get(t),_=(a,t)=>v([...a?.entries()??[]],(([a,e])=>t(e,a))),P=(a,t,e)=>w(e)?(h(a,t),a):a?.set(t,e),B=(a,t,e)=>(p(a,t)||P(a,t,e()),$(a,t)),H=(a,t,e,s=P)=>(D(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!w(((a,t)=>l(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),W=a=>new Set(Array.isArray(a)||w(a)?a:[a]),j=(a,t)=>a?.add(t),x="_",U="_id",k=a=>`"${a.replace(/"/g,'""')}"`,J="FROM pragma_table_",Y="WHERE",z=(a,t,s)=>{const n=F();return[async()=>H(n,C(await d(v(await a("SELECT name "+J+"list WHERE schema='main'AND type='table'AND name IN("+K(t)+")",t),(async({name:t})=>[t,C(v(await a("SELECT name,type "+J+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>P(n,t,H(B(n,t,F),e,((a,t,e)=>{e!=$(a,t)&&P(a,t,e)}),((a,t)=>P(a,t))))),((a,t)=>P(n,t))),async(t,e)=>((a,t)=>!w($($(n,a),t)))(t,e)?C(A(v(await a("SELECT*FROM"+k(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!w(a)&&!b(t)))):{},async(t,s,i,c,o,r=!1)=>{const l=W();D(i??{},(a=>v(O(a??{}),(a=>j(l,a)))));const y=f(l);if(!r&&o&&m(y)&&p(n,t))return await a("DROP TABLE"+k(t)),void P(n,t);if(m(y)||p(n,t)){const e=$(n,t),i=W(M(e));await d([...v(y,(async s=>{h(i,s)||(await a(`ALTER TABLE${k(t)}ADD${k(s)}`),P(e,s,""))})),...!r&&c?v(f(i),(async n=>{n!=s&&(await a(`ALTER TABLE${k(t)}DROP${k(n)}`),P(e,n))})):[]])}else await a(`CREATE TABLE${k(t)}(${k(s)} PRIMARY KEY ON CONFLICT REPLACE${T(v(y,(a=>e+k(a))))});`),P(n,t,F([[s,""],...v(y,(a=>[a,""]))]));if(r)w(i)?await a("DELETE FROM"+k(t)+"WHERE 1"):await d(D(i,(async(e,n)=>{w(e)?await a("DELETE FROM"+k(t)+Y+k(s)+"=?",[n]):m(y)||await G(a,t,s,O(e),[n,...I(e)])})));else if(m(y))p(n,t)&&await a("DELETE FROM"+k(t)+"WHERE 1");else{const e=A(M($(n,t)),(a=>a!=s)),c=[],o=[];D(i??{},((a,t)=>{L(c,t,...v(e,(t=>a?.[t]))),L(o,t)})),await G(a,t,s,e,c),await a("DELETE FROM"+k(t)+Y+k(s)+"NOT IN("+K(o)+")",o)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},G=async(a,t,s,i,c)=>await a("INSERT INTO"+k(t)+"("+k(s)+T(v(i,(a=>e+k(a))))+")VALUES"+E(n(`,(?${n(",?",u(i))})`,u(c)/(u(i)+1)),1)+"ON CONFLICT("+k(s)+")DO UPDATE SET"+T(v(i,(a=>k(a)+"=excluded."+k(a))),e),c),K=a=>T(v(a,(()=>"?")),e),V=JSON.parse,q=F(),Q=F(),X=(a,t,e,s,n,i,c=[])=>{let o,r,y,E=0,u=0;B(q,c,(()=>0)),B(Q,c,(()=>[]));const d=async a=>(2!=E&&(E=1,await T.schedule((async()=>{await a(),E=0}))),T),T={load:async(e,s)=>await d((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(T.stopAutoLoad(),await T.load(e,n),u=1,y=s((async(e,s)=>{if(s){const t=s();await d((async()=>a.setTransactionChanges(t)))}else await d((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),T),stopAutoLoad:()=>(u&&(n(y),y=void 0,u=0),T),save:async t=>(1!=E&&(E=2,await T.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}E=0}))),T),startAutoSave:async()=>(await T.stopAutoSave().save(),o=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();b(e)&&b(s)||T.save((()=>[e,s]))})),T),stopAutoSave:()=>(l(o,a.delListener),T),schedule:async(...a)=>(L($(Q,c),...a),await(async()=>{if(!$(q,c)){for(P(q,c,1);!w((a=$(Q,c),r=a.shift()));)try{await r()}catch(a){i?.(a)}P(q,c,0)}var a})(),T),getStore:()=>a,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return R(T)},Z="store",aa=(a,t,e,s,n,[i],c,o)=>{const[w,l,y,E]=z(t,c,n);return X(a,(async()=>await E((async()=>(await w(),V((await l(i,U))[x]?.[Z]??"null"))))),(async a=>await E((async()=>{var t;await w(),await y(i,U,{[x]:{[Z]:(t=a()??null,JSON.stringify(t,((a,t)=>r(t,Map)?N.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,o)},ta=(a,t,e,s,n,[i,c,[o,r,l]],y,E)=>{const[u,T,v,m]=z(t,y,n),L=async(a,t)=>await d(_(c,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await v(e,s,o,n,i,t)}))),p=async(a,t)=>r?await v(l,U,{[x]:a},!0,!0,t):null;return X(a,(async()=>await m((async()=>{await u();const a=await(async()=>C(A(await d(_(i,(async([a,t],e)=>[a,await T(e,t)]))),(a=>!b(a[1])))))(),t=await(async()=>o?(await T(l,U))[x]:{})();return b(a)&&w(t)?void 0:[a,t]}))),(async(a,t)=>await m((async()=>{if(await u(),w(t)){const[t,e]=a();await L(t),await p(e)}else{const[a,e]=t();await L(a,!0),await p(e,!0)}}))),e,s,n,E)},ea="json",sa="autoLoadIntervalSeconds",na="rowIdColumnName",ia="tableId",ca="tableName",oa={mode:ea,[sa]:1},ra={load:0,save:0,[ca]:t+"_values"},wa=(a,t,e,s)=>{const n=F();return D(a,((a,i)=>{const c=E(I(S(t,y(a)?{[e]:a}:a)),0,g(t));w(c[0])||s(i,c[0])||P(n,i,c)})),n},la="pragma ",ya="data_version",Ea="schema_version",ua=(a,e,s,n,i,r,w,l)=>{let u,d;const[T,v,m,A]=(a=>{const e=(a=>S(oa,y(a)?{storeTableName:a}:a??{}))(a),s=e[sa];if(e.mode==ea){const{storeTableName:a=t}=e;return[1,s,[a],W(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=e,o=E(I(S(ra,c)),0,g(ra)),r=o[2],w=W(r);return[0,s,[wa(n,{[ia]:null,[na]:U},ia,(a=>j(w,a)&&a==r)),wa(i,{[ca]:null,[na]:U,deleteEmptyColumns:0,deleteEmptyTable:0},ca,((a,t)=>j(w,t)&&t==r)),o],w]})(e);return(T?aa:ta)(a,r?async(a,t)=>(r(a,t),await s(a,t)):s,(a=>[c((async()=>{try{const t=(await s(la+ya))[0][ya],e=(await s(la+Ea))[0][Ea];t==(u??=t)&&e==(d??=e)||(a(),u=t,d=e)}catch{}}),1e3*v),n((t=>A.has(t)?a():0))]),(([a,t])=>{o(a),u=d=null,i(t)}),w,m,f(A),l)},da=(a,t,e,s,n)=>ua(a,e,(async(a,e=[])=>await t.execO(a,e)),(a=>t.onUpdate(((t,e,s)=>a(s)))),(a=>a()),s,n,t);export{da as createCrSqliteWasmPersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t)=>a.repeat(t),i=Promise,c=setInterval,o=clearInterval,r=(a,t)=>a instanceof t,w=a=>null==a,l=(a,t,e)=>w(a)?e?.():t(a),y=t=>a(t)==s,E=(a,t,e)=>a.slice(t,e),u=async a=>i.all(a),d=(a,t="")=>a.join(t),m=(a,t)=>a.map(t),v=a=>a.length,T=a=>0==v(a),A=(a,t)=>a.filter(t),L=(a,...t)=>a.push(...t),p=(a,t)=>a?.has(t)??!1,h=a=>[...a?.values()??[]],N=(a,t)=>a?.delete(t),f=Object,R=f.keys,O=f.freeze,C=(a=[])=>f.fromEntries(a),S=(...a)=>f.assign({},...a),D=(a,t)=>m(f.entries(a),(([a,e])=>t(e,a))),g=a=>f.values(a),I=a=>v(R(a)),b=a=>(a=>r(a,f)&&a.constructor==f)(a)&&0==I(a),F=a=>new Map(a),M=a=>[...a?.keys()??[]],$=(a,t)=>a?.get(t),_=(a,t)=>m([...a?.entries()??[]],(([a,e])=>t(e,a))),P=(a,t,e)=>w(e)?(N(a,t),a):a?.set(t,e),B=(a,t,e)=>(p(a,t)||P(a,t,e()),$(a,t)),H=(a,t,e,s=P)=>(D(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!w(((a,t)=>l(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),W=a=>new Set(Array.isArray(a)||w(a)?a:[a]),j=(a,t)=>a?.add(t),x="_",k="_id",J=a=>`"${a.replace(/"/g,'""')}"`,U="FROM pragma_table_",Y="WHERE",q=(a,t,s)=>{const n=F();return[async()=>H(n,C(await u(m(await a("SELECT name "+U+"list WHERE schema='main'AND type='table'AND name IN("+G(t)+")",t),(async({name:t})=>[t,C(m(await a("SELECT name,type "+U+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>P(n,t,H(B(n,t,F),e,((a,t,e)=>{e!=$(a,t)&&P(a,t,e)}),((a,t)=>P(a,t))))),((a,t)=>P(n,t))),async(t,e)=>((a,t)=>!w($($(n,a),t)))(t,e)?C(A(m(await a("SELECT*FROM"+J(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!w(a)&&!b(t)))):{},async(t,s,i,c,o,r=!1)=>{const l=W();D(i??{},(a=>m(R(a??{}),(a=>j(l,a)))));const y=h(l);if(!r&&o&&T(y)&&p(n,t))return await a("DROP TABLE"+J(t)),void P(n,t);if(T(y)||p(n,t)){const e=$(n,t),i=W(M(e));await u([...m(y,(async s=>{N(i,s)||(await a(`ALTER TABLE${J(t)}ADD${J(s)}`),P(e,s,""))})),...!r&&c?m(h(i),(async n=>{n!=s&&(await a(`ALTER TABLE${J(t)}DROP${J(n)}`),P(e,n))})):[]])}else await a(`CREATE TABLE${J(t)}(${J(s)} PRIMARY KEY ON CONFLICT REPLACE${d(m(y,(a=>e+J(a))))});`),P(n,t,F([[s,""],...m(y,(a=>[a,""]))]));if(r)w(i)?await a("DELETE FROM"+J(t)+"WHERE 1"):await u(D(i,(async(e,n)=>{w(e)?await a("DELETE FROM"+J(t)+Y+J(s)+"=?",[n]):T(y)||await z(a,t,s,R(e),[n,...g(e)])})));else if(T(y))p(n,t)&&await a("DELETE FROM"+J(t)+"WHERE 1");else{const e=A(M($(n,t)),(a=>a!=s)),c=[],o=[];D(i??{},((a,t)=>{L(c,t,...m(e,(t=>a?.[t]))),L(o,t)})),await z(a,t,s,e,c),await a("DELETE FROM"+J(t)+Y+J(s)+"NOT IN("+G(o)+")",o)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},z=async(a,t,s,i,c)=>await a("INSERT INTO"+J(t)+"("+J(s)+d(m(i,(a=>e+J(a))))+")VALUES"+E(n(`,(?${n(",?",v(i))})`,v(c)/(v(i)+1)),1)+"ON CONFLICT("+J(s)+")DO UPDATE SET"+d(m(i,(a=>J(a)+"=excluded."+J(a))),e),c),G=a=>d(m(a,(()=>"?")),e),K=JSON.parse,V=F(),Q=F(),X=(a,t,e,s,n,i,c=[])=>{let o,r,y,E=0,u=0;B(V,c,(()=>0)),B(Q,c,(()=>[]));const d=async a=>(2!=E&&(E=1,await m.schedule((async()=>{await a(),E=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),u=1,y=s((async(e,s)=>{if(s){const t=s();await d((async()=>a.setTransactionChanges(t)))}else await d((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),m),stopAutoLoad:()=>(u&&(n(y),y=void 0,u=0),m),save:async t=>(1!=E&&(E=2,await m.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}E=0}))),m),startAutoSave:async()=>(await m.stopAutoSave().save(),o=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();b(e)&&b(s)||m.save((()=>[e,s]))})),m),stopAutoSave:()=>(l(o,a.delListener),m),schedule:async(...a)=>(L($(Q,c),...a),await(async()=>{if(!$(V,c)){for(P(V,c,1);!w((a=$(Q,c),r=a.shift()));)try{await r()}catch(a){i?.(a)}P(V,c,0)}var a})(),m),getStore:()=>a,destroy:()=>m.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return O(m)},Z="store",aa=(a,t,e,s,n,[i],c,o)=>{const[w,l,y,E]=q(t,c,n);return X(a,(async()=>await E((async()=>(await w(),K((await l(i,k))[x]?.[Z]??"null"))))),(async a=>await E((async()=>{var t;await w(),await y(i,k,{[x]:{[Z]:(t=a()??null,JSON.stringify(t,((a,t)=>r(t,Map)?f.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,o)},ta=(a,t,e,s,n,[i,c,[o,r,l]],y,E)=>{const[d,m,v,T]=q(t,y,n),L=async(a,t)=>await u(_(c,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await v(e,s,o,n,i,t)}))),p=async(a,t)=>r?await v(l,k,{[x]:a},!0,!0,t):null;return X(a,(async()=>await T((async()=>{await d();const a=await(async()=>C(A(await u(_(i,(async([a,t],e)=>[a,await m(e,t)]))),(a=>!b(a[1])))))(),t=await(async()=>o?(await m(l,k))[x]:{})();return b(a)&&w(t)?void 0:[a,t]}))),(async(a,t)=>await T((async()=>{if(await d(),w(t)){const[t,e]=a();await L(t),await p(e)}else{const[a,e]=t();await L(a,!0),await p(e,!0)}}))),e,s,n,E)},ea="json",sa="autoLoadIntervalSeconds",na="rowIdColumnName",ia="tableId",ca="tableName",oa={mode:ea,[sa]:1},ra={load:0,save:0,[ca]:t+"_values"},wa=(a,t,e,s)=>{const n=F();return D(a,((a,i)=>{const c=E(g(S(t,y(a)?{[e]:a}:a)),0,I(t));w(c[0])||s(i,c[0])||P(n,i,c)})),n},la="pragma ",ya="data_version",Ea="schema_version",ua=(a,e,s,n,i,r,w,l)=>{let u,d;const[m,v,T,A]=(a=>{const e=(a=>S(oa,y(a)?{storeTableName:a}:a??{}))(a),s=e[sa];if(e.mode==ea){const{storeTableName:a=t}=e;return[1,s,[a],W(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=e,o=E(g(S(ra,c)),0,I(ra)),r=o[2],w=W(r);return[0,s,[wa(n,{[ia]:null,[na]:k},ia,(a=>j(w,a)&&a==r)),wa(i,{[ca]:null,[na]:k,deleteEmptyColumns:0,deleteEmptyTable:0},ca,((a,t)=>j(w,t)&&t==r)),o],w]})(e);return(m?aa:ta)(a,r?async(a,t)=>(r(a,t),await s(a,t)):s,(a=>[c((async()=>{try{const t=(await s(la+ya))[0][ya],e=(await s(la+Ea))[0][Ea];t==(u??=t)&&e==(d??=e)||(a(),u=t,d=e)}catch{}}),1e3*v),n((t=>A.has(t)?a():0))]),(([a,t])=>{o(a),u=d=null,i(t)}),w,T,h(A),l)},da=(a,t,e,s,n)=>ua(a,e,(async(a,e=[])=>(await t.execAsync([{sql:a,args:e}],!1))[0].rows),(a=>t.onDatabaseChange((({tableName:t})=>a(t)))),(a=>a.remove()),s,n,t);export{da as createExpoSqlitePersister};
1
+ const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t)=>a.repeat(t),i=Promise,c=setInterval,o=clearInterval,r=(a,t)=>a instanceof t,w=a=>null==a,l=(a,t,e)=>w(a)?e?.():t(a),y=t=>a(t)==s,E=(a,t,e)=>a.slice(t,e),u=a=>a.length,d=async a=>i.all(a),m=(a,t="")=>a.join(t),v=(a,t)=>a.map(t),T=a=>0==u(a),A=(a,t)=>a.filter(t),L=(a,...t)=>a.push(...t),p=(a,t)=>a?.has(t)??!1,h=a=>[...a?.values()??[]],N=(a,t)=>a?.delete(t),f=Object,R=f.keys,O=f.freeze,C=(a=[])=>f.fromEntries(a),S=(...a)=>f.assign({},...a),D=(a,t)=>v(f.entries(a),(([a,e])=>t(e,a))),g=a=>f.values(a),I=a=>u(R(a)),b=a=>(a=>r(a,f)&&a.constructor==f)(a)&&0==I(a),F=a=>new Map(a),M=a=>[...a?.keys()??[]],$=(a,t)=>a?.get(t),_=(a,t)=>v([...a?.entries()??[]],(([a,e])=>t(e,a))),P=(a,t,e)=>w(e)?(N(a,t),a):a?.set(t,e),B=(a,t,e)=>(p(a,t)||P(a,t,e()),$(a,t)),H=(a,t,e,s=P)=>(D(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!w(((a,t)=>l(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),W=a=>new Set(Array.isArray(a)||w(a)?a:[a]),j=(a,t)=>a?.add(t),x="_",k="_id",J=a=>`"${a.replace(/"/g,'""')}"`,U="FROM pragma_table_",Y="WHERE",q=(a,t,s)=>{const n=F();return[async()=>H(n,C(await d(v(await a("SELECT name "+U+"list WHERE schema='main'AND type='table'AND name IN("+G(t)+")",t),(async({name:t})=>[t,C(v(await a("SELECT name,type "+U+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>P(n,t,H(B(n,t,F),e,((a,t,e)=>{e!=$(a,t)&&P(a,t,e)}),((a,t)=>P(a,t))))),((a,t)=>P(n,t))),async(t,e)=>((a,t)=>!w($($(n,a),t)))(t,e)?C(A(v(await a("SELECT*FROM"+J(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!w(a)&&!b(t)))):{},async(t,s,i,c,o,r=!1)=>{const l=W();D(i??{},(a=>v(R(a??{}),(a=>j(l,a)))));const y=h(l);if(!r&&o&&T(y)&&p(n,t))return await a("DROP TABLE"+J(t)),void P(n,t);if(T(y)||p(n,t)){const e=$(n,t),i=W(M(e));await d([...v(y,(async s=>{N(i,s)||(await a(`ALTER TABLE${J(t)}ADD${J(s)}`),P(e,s,""))})),...!r&&c?v(h(i),(async n=>{n!=s&&(await a(`ALTER TABLE${J(t)}DROP${J(n)}`),P(e,n))})):[]])}else await a(`CREATE TABLE${J(t)}(${J(s)} PRIMARY KEY ON CONFLICT REPLACE${m(v(y,(a=>e+J(a))))});`),P(n,t,F([[s,""],...v(y,(a=>[a,""]))]));if(r)w(i)?await a("DELETE FROM"+J(t)+"WHERE 1"):await d(D(i,(async(e,n)=>{w(e)?await a("DELETE FROM"+J(t)+Y+J(s)+"=?",[n]):T(y)||await z(a,t,s,R(e),[n,...g(e)])})));else if(T(y))p(n,t)&&await a("DELETE FROM"+J(t)+"WHERE 1");else{const e=A(M($(n,t)),(a=>a!=s)),c=[],o=[];D(i??{},((a,t)=>{L(c,t,...v(e,(t=>a?.[t]))),L(o,t)})),await z(a,t,s,e,c),await a("DELETE FROM"+J(t)+Y+J(s)+"NOT IN("+G(o)+")",o)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},z=async(a,t,s,i,c)=>await a("INSERT INTO"+J(t)+"("+J(s)+m(v(i,(a=>e+J(a))))+")VALUES"+E(n(`,(?${n(",?",u(i))})`,u(c)/(u(i)+1)),1)+"ON CONFLICT("+J(s)+")DO UPDATE SET"+m(v(i,(a=>J(a)+"=excluded."+J(a))),e),c),G=a=>m(v(a,(()=>"?")),e),K=JSON.parse,V=F(),Q=F(),X=(a,t,e,s,n,i,c=[])=>{let o,r,y,E=0,u=0;B(V,c,(()=>0)),B(Q,c,(()=>[]));const d=async a=>(2!=E&&(E=1,await m.schedule((async()=>{await a(),E=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),u=1,y=s((async(e,s)=>{if(s){const t=s();await d((async()=>a.setTransactionChanges(t)))}else await d((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),m),stopAutoLoad:()=>(u&&(n(y),y=void 0,u=0),m),save:async t=>(1!=E&&(E=2,await m.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}E=0}))),m),startAutoSave:async()=>(await m.stopAutoSave().save(),o=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();b(e)&&b(s)||m.save((()=>[e,s]))})),m),stopAutoSave:()=>(l(o,a.delListener),m),schedule:async(...a)=>(L($(Q,c),...a),await(async()=>{if(!$(V,c)){for(P(V,c,1);!w((a=$(Q,c),r=a.shift()));)try{await r()}catch(a){i?.(a)}P(V,c,0)}var a})(),m),getStore:()=>a,destroy:()=>m.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return O(m)},Z="store",aa=(a,t,e,s,n,[i],c,o)=>{const[w,l,y,E]=q(t,c,n);return X(a,(async()=>await E((async()=>(await w(),K((await l(i,k))[x]?.[Z]??"null"))))),(async a=>await E((async()=>{var t;await w(),await y(i,k,{[x]:{[Z]:(t=a()??null,JSON.stringify(t,((a,t)=>r(t,Map)?f.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,o)},ta=(a,t,e,s,n,[i,c,[o,r,l]],y,E)=>{const[u,m,v,T]=q(t,y,n),L=async(a,t)=>await d(_(c,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await v(e,s,o,n,i,t)}))),p=async(a,t)=>r?await v(l,k,{[x]:a},!0,!0,t):null;return X(a,(async()=>await T((async()=>{await u();const a=await(async()=>C(A(await d(_(i,(async([a,t],e)=>[a,await m(e,t)]))),(a=>!b(a[1])))))(),t=await(async()=>o?(await m(l,k))[x]:{})();return b(a)&&w(t)?void 0:[a,t]}))),(async(a,t)=>await T((async()=>{if(await u(),w(t)){const[t,e]=a();await L(t),await p(e)}else{const[a,e]=t();await L(a,!0),await p(e,!0)}}))),e,s,n,E)},ea="json",sa="autoLoadIntervalSeconds",na="rowIdColumnName",ia="tableId",ca="tableName",oa={mode:ea,[sa]:1},ra={load:0,save:0,[ca]:t+"_values"},wa=(a,t,e,s)=>{const n=F();return D(a,((a,i)=>{const c=E(g(S(t,y(a)?{[e]:a}:a)),0,I(t));w(c[0])||s(i,c[0])||P(n,i,c)})),n},la="pragma ",ya="data_version",Ea="schema_version",ua=(a,e,s,n,i,r,w,l)=>{let u,d;const[m,v,T,A]=(a=>{const e=(a=>S(oa,y(a)?{storeTableName:a}:a??{}))(a),s=e[sa];if(e.mode==ea){const{storeTableName:a=t}=e;return[1,s,[a],W(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=e,o=E(g(S(ra,c)),0,I(ra)),r=o[2],w=W(r);return[0,s,[wa(n,{[ia]:null,[na]:k},ia,(a=>j(w,a)&&a==r)),wa(i,{[ca]:null,[na]:k,deleteEmptyColumns:0,deleteEmptyTable:0},ca,((a,t)=>j(w,t)&&t==r)),o],w]})(e);return(m?aa:ta)(a,r?async(a,t)=>(r(a,t),await s(a,t)):s,(a=>[c((async()=>{try{const t=(await s(la+ya))[0][ya],e=(await s(la+Ea))[0][Ea];t==(u??=t)&&e==(d??=e)||(a(),u=t,d=e)}catch{}}),1e3*v),n((t=>A.has(t)?a():0))]),(([a,t])=>{o(a),u=d=null,i(t)}),w,T,h(A),l)},da=(a,t,e,s,n)=>ua(a,e,(async(a,e=[])=>(await t.execAsync([{sql:a,args:e}],!1))[0].rows),(a=>t.onDatabaseChange((({tableName:t})=>a(t)))),(a=>a.remove()),s,n,t);export{da as createExpoSqlitePersister};
@@ -1 +1 @@
1
- const t=(t,a)=>t.map(a),a=(t,...a)=>t.push(...a),e=Promise,s=setInterval,n=clearInterval,o=t=>null==t,c=(t,a,e)=>o(t)?e?.():a(t),r=t=>new e(t),i=async t=>e.all(t),y=Object,l=y.keys,d=y.freeze,u=t=>(t=>t instanceof y&&t.constructor==y)(t)&&0==(t=>l(t).length)(t),w=t=>new Map(t),h=(t,a)=>t?.get(a),v=(t,a,e)=>{return o(e)?(s=t,n=a,s?.delete(n),t):t?.set(a,e);var s,n},p=(t,a,e)=>{var s,n;return s=t,n=a,s?.has(n)||v(t,a,e()),h(t,a)},g=w(),A=w(),S=globalThis.window,f=["t","v"],L={keyPath:"k"},b=async(e,s)=>{const n=((a,s)=>t(y.entries(a),(([t,a])=>k(e,"put",{k:t,v:a}))))(s);t(await k(e,"getAllKeys"),(t=>((t,a)=>!o(((t,a)=>c(t,(t=>t[a])))(t,a)))(s,t)?0:a(n,k(e,"delete",t)))),await i(n)},k=async(t,a,e)=>r(((s,n)=>{const o=t[a](e);o.onsuccess=()=>s(o.result),o.onerror=()=>n(`objectStore.${a} error`)})),C=(e,l,w=1,C)=>{const j=async(a,e=[],s=0)=>r(((n,o)=>{const c=S.indexedDB.open(l,s?2:void 0);c.onupgradeneeded=()=>s&&t(f,(t=>{try{c.result.createObjectStore(t,L)}catch{}})),c.onsuccess=async()=>{try{const s=c.result.transaction(f,"readwrite"),o=await i(t(f,(async(t,n)=>await a(s.objectStore(t),e[n]))));c.result.close(),n(o)}catch(t){o(t)}},c.onerror=()=>o("indexedDB.open error")}));return((t,e,s,n,r,i,y=[])=>{let l,w,S,f=0,L=0;p(g,y,(()=>0)),p(A,y,(()=>[]));const b=async t=>(2!=f&&(f=1,await k.schedule((async()=>{await t(),f=0}))),k),k={load:async(a,s)=>await b((async()=>{try{t.setContent(await e())}catch{t.setContent([a,s])}})),startAutoLoad:async(a={},s={})=>(k.stopAutoLoad(),await k.load(a,s),L=1,S=n((async(a,s)=>{if(s){const a=s();await b((async()=>t.setTransactionChanges(a)))}else await b((async()=>{try{t.setContent(a?.()??await e())}catch(t){i?.(t)}}))})),k),stopAutoLoad:()=>(L&&(r(S),S=void 0,L=0),k),save:async a=>(1!=f&&(f=2,await k.schedule((async()=>{try{await s(t.getContent,a)}catch(t){i?.(t)}f=0}))),k),startAutoSave:async()=>(await k.stopAutoSave().save(),l=t.addDidFinishTransactionListener(((t,a)=>{const[e,s]=a();u(e)&&u(s)||k.save((()=>[e,s]))})),k),stopAutoSave:()=>(c(l,t.delListener),k),schedule:async(...t)=>(a(h(A,y),...t),await(async()=>{if(!h(g,y)){for(v(g,y,1);!o((t=h(A,y),w=t.shift()));)try{await w()}catch(t){i?.(t)}v(g,y,0)}var t})(),k),getStore:()=>t,destroy:()=>k.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return d(k)})(e,(async()=>await j((async a=>((t=[])=>y.fromEntries(t))(t(await k(a,"getAll"),(({k:t,v:a})=>[t,a])))))),(async t=>await j((async(t,a)=>await b(t,a)),t(),1)),(t=>s(t,1e3*w)),(t=>n(t)),C)};export{C as createIndexedDbPersister,b as objectStoreMatch};
1
+ const t=Promise,a=setInterval,e=clearInterval,s=t=>null==t,n=(t,a,e)=>s(t)?e?.():a(t),o=a=>new t(a),c=async a=>t.all(a),r=(t,a)=>t.map(a),i=(t,...a)=>t.push(...a),y=Object,l=y.keys,d=y.freeze,u=t=>(t=>t instanceof y&&t.constructor==y)(t)&&0==(t=>l(t).length)(t),w=t=>new Map(t),h=(t,a)=>t?.get(a),v=(t,a,e)=>{return s(e)?(n=t,o=a,n?.delete(o),t):t?.set(a,e);var n,o},p=(t,a,e)=>{var s,n;return s=t,n=a,s?.has(n)||v(t,a,e()),h(t,a)},g=w(),A=w(),S=globalThis.window,f=["t","v"],L={keyPath:"k"},b=async(t,a)=>{const e=((a,e)=>r(y.entries(a),(([a,e])=>k(t,"put",{k:a,v:e}))))(a);r(await k(t,"getAllKeys"),(o=>((t,a)=>!s(((t,a)=>n(t,(t=>t[a])))(t,a)))(a,o)?0:i(e,k(t,"delete",o)))),await c(e)},k=async(t,a,e)=>o(((s,n)=>{const o=t[a](e);o.onsuccess=()=>s(o.result),o.onerror=()=>n(`objectStore.${a} error`)})),C=(t,l,w=1,C)=>{const j=async(t,a=[],e=0)=>o(((s,n)=>{const o=S.indexedDB.open(l,e?2:void 0);o.onupgradeneeded=()=>e&&r(f,(t=>{try{o.result.createObjectStore(t,L)}catch{}})),o.onsuccess=async()=>{try{const e=o.result.transaction(f,"readwrite"),n=await c(r(f,(async(s,n)=>await t(e.objectStore(s),a[n]))));o.result.close(),s(n)}catch(t){n(t)}},o.onerror=()=>n("indexedDB.open error")}));return((t,a,e,o,c,r,y=[])=>{let l,w,S,f=0,L=0;p(g,y,(()=>0)),p(A,y,(()=>[]));const b=async t=>(2!=f&&(f=1,await k.schedule((async()=>{await t(),f=0}))),k),k={load:async(e,s)=>await b((async()=>{try{t.setContent(await a())}catch{t.setContent([e,s])}})),startAutoLoad:async(e={},s={})=>(k.stopAutoLoad(),await k.load(e,s),L=1,S=o((async(e,s)=>{if(s){const a=s();await b((async()=>t.setTransactionChanges(a)))}else await b((async()=>{try{t.setContent(e?.()??await a())}catch(t){r?.(t)}}))})),k),stopAutoLoad:()=>(L&&(c(S),S=void 0,L=0),k),save:async a=>(1!=f&&(f=2,await k.schedule((async()=>{try{await e(t.getContent,a)}catch(t){r?.(t)}f=0}))),k),startAutoSave:async()=>(await k.stopAutoSave().save(),l=t.addDidFinishTransactionListener(((t,a)=>{const[e,s]=a();u(e)&&u(s)||k.save((()=>[e,s]))})),k),stopAutoSave:()=>(n(l,t.delListener),k),schedule:async(...t)=>(i(h(A,y),...t),await(async()=>{if(!h(g,y)){for(v(g,y,1);!s((t=h(A,y),w=t.shift()));)try{await w()}catch(t){r?.(t)}v(g,y,0)}var t})(),k),getStore:()=>t,destroy:()=>k.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return d(k)})(t,(async()=>await j((async t=>((t=[])=>y.fromEntries(t))(r(await k(t,"getAll"),(({k:t,v:a})=>[t,a])))))),(async t=>await j((async(t,a)=>await b(t,a)),t(),1)),(t=>a(t,1e3*w)),(t=>e(t)),C)};export{C as createIndexedDbPersister,b as objectStoreMatch};
@@ -1 +1 @@
1
- const t=t=>typeof t,a=t(""),e=(t,a)=>t instanceof a,s=t=>null==t,n=Object,o=n.keys,r=n.freeze,c=t=>(t=>e(t,n)&&t.constructor==n)(t)&&0==(t=>o(t).length)(t),i=t=>JSON.stringify(t,((t,a)=>e(a,Map)?n.fromEntries([...a]):a)),y=JSON.parse,d=t=>new Map(t),u=(t,a)=>t?.get(a),h=(t,a,e)=>{return s(e)?(n=t,o=a,n?.delete(o),t):t?.set(a,e);var n,o},v=(t,a,e)=>{var s,n;return s=t,n=a,s?.has(n)||h(t,a,e()),u(t,a)},w=d(),p=d(),l="message",f=(e,n,o="https",d)=>{const{host:f,room:S}=n.partySocketOptions,g=o+"://"+f+"/parties/"+(n.name??"main")+"/"+S+"/store",m=async t=>await(await fetch(g,{...t?{method:"PUT",body:i(t)}:{},mode:"cors",cache:"no-store"})).json();return((t,a,e,n,o,i,y=[])=>{let d,l,f,S=0,g=0;v(w,y,(()=>0)),v(p,y,(()=>[]));const m=async t=>(2!=S&&(S=1,await A.schedule((async()=>{await t(),S=0}))),A),A={load:async(e,s)=>await m((async()=>{try{t.setContent(await a())}catch{t.setContent([e,s])}})),startAutoLoad:async(e={},s={})=>(A.stopAutoLoad(),await A.load(e,s),g=1,f=n((async(e,s)=>{if(s){const a=s();await m((async()=>t.setTransactionChanges(a)))}else await m((async()=>{try{t.setContent(e?.()??await a())}catch(t){i?.(t)}}))})),A),stopAutoLoad:()=>(g&&(o(f),f=void 0,g=0),A),save:async a=>(1!=S&&(S=2,await A.schedule((async()=>{try{await e(t.getContent,a)}catch(t){i?.(t)}S=0}))),A),startAutoSave:async()=>(await A.stopAutoSave().save(),d=t.addDidFinishTransactionListener(((t,a)=>{const[e,s]=a();c(e)&&c(s)||A.save((()=>[e,s]))})),A),stopAutoSave:()=>{var a,e;return a=d,e=t.delListener,s(a)||e(a),A},schedule:async(...t)=>(((t,...a)=>{t.push(...a)})(u(p,y),...t),await(async()=>{if(!u(w,y)){for(h(w,y,1);!s((t=u(p,y),l=t.shift()));)try{await l()}catch(t){i?.(t)}h(w,y,0)}var t})(),A),getStore:()=>t,destroy:()=>A.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return r(A)})(e,(async()=>await m()),(async(e,s)=>{var o;s?n.send(("s",o=s(),"s"+(t(o)==a?o:i(o)))):await m(e())}),(t=>{const a=a=>{const[e,s]=[(c=a.data)[0],y((n=c,o=1,n.slice(o,r)))];var n,o,r,c;"s"==e&&t(void 0,(()=>s))};return n.addEventListener(l,a),a}),(t=>{n.removeEventListener(l,t)}),d)};export{f as createPartyKitPersister};
1
+ const t=t=>typeof t,a=t(""),e=(t,a)=>t instanceof a,s=t=>null==t,o=e=>t(e)==a,n=Object,r=n.keys,c=n.freeze,i=t=>(t=>e(t,n)&&t.constructor==n)(t)&&0==(t=>r(t).length)(t),y=t=>JSON.stringify(t,((t,a)=>e(a,Map)?n.fromEntries([...a]):a)),d=JSON.parse,h=t=>new Map(t),u=(t,a)=>t?.get(a),v=(t,a,e)=>{return s(e)?(o=t,n=a,o?.delete(n),t):t?.set(a,e);var o,n},w=(t,a,e)=>{var s,o;return s=t,o=a,s?.has(o)||v(t,a,e()),u(t,a)},l=h(),p=h(),f="message",S={storeProtocol:"https",storePath:"/store"},g=(t,a,e,n)=>{const{host:r,room:h}=a.partySocketOptions,{storeProtocol:g,storePath:m}={...S,...o(e)?{storeProtocol:e}:e},A=g+"://"+r+"/parties/"+(a.name??"main")+"/"+h+m,L=async t=>await(await fetch(A,{...t?{method:"PUT",body:y(t)}:{},mode:"cors",cache:"no-store"})).json();return((t,a,e,o,n,r,y=[])=>{let d,h,f,S=0,g=0;w(l,y,(()=>0)),w(p,y,(()=>[]));const m=async t=>(2!=S&&(S=1,await A.schedule((async()=>{await t(),S=0}))),A),A={load:async(e,s)=>await m((async()=>{try{t.setContent(await a())}catch{t.setContent([e,s])}})),startAutoLoad:async(e={},s={})=>(A.stopAutoLoad(),await A.load(e,s),g=1,f=o((async(e,s)=>{if(s){const a=s();await m((async()=>t.setTransactionChanges(a)))}else await m((async()=>{try{t.setContent(e?.()??await a())}catch(t){r?.(t)}}))})),A),stopAutoLoad:()=>(g&&(n(f),f=void 0,g=0),A),save:async a=>(1!=S&&(S=2,await A.schedule((async()=>{try{await e(t.getContent,a)}catch(t){r?.(t)}S=0}))),A),startAutoSave:async()=>(await A.stopAutoSave().save(),d=t.addDidFinishTransactionListener(((t,a)=>{const[e,s]=a();i(e)&&i(s)||A.save((()=>[e,s]))})),A),stopAutoSave:()=>{var a,e;return a=d,e=t.delListener,s(a)||e(a),A},schedule:async(...t)=>(((t,...a)=>{t.push(...a)})(u(p,y),...t),await(async()=>{if(!u(l,y)){for(v(l,y,1);!s((t=u(p,y),h=t.shift()));)try{await h()}catch(t){r?.(t)}v(l,y,0)}var t})(),A),getStore:()=>t,destroy:()=>A.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c(A)})(t,(async()=>await L()),(async(t,e)=>{var s;e?a.send((s=e(),"s"+(o(s)?s:y(s)))):await L(t())}),(t=>{const e=a=>{const[e,s]=[(c=a.data)[0],d((o=c,n=1,o.slice(n,r)))];var o,n,r,c;"s"==e&&t(void 0,(()=>s))};return a.addEventListener(f,e),e}),(t=>{a.removeEventListener(f,t)}),n)};export{g as createPartyKitPersister};
@@ -1 +1 @@
1
- const t=t=>typeof t,s=t(""),a="t",e=Promise,r=t=>null==t,n=(t,s,a)=>t.slice(s,a),i=(t,s)=>t.map(s),o=(t,...s)=>t.push(...s),c=Object,l=(t=[])=>c.fromEntries(t),h=(t,s)=>i(c.entries(t),(([t,a])=>s(a,t))),p=(t,s,a)=>(((t,s)=>!r(((t,s)=>{return e=t=>t[s],r(a=t)?void 0:e(a);var a,e})(t,s)))(t,s)||(t[s]=a()),t[s]),u=t=>JSON.stringify(t,((t,s)=>s instanceof Map?c.fromEntries([...s]):s)),y=JSON.parse,w=(t,s)=>[t[0],s?y(n(t,1)):n(t,1)],d=(t,s)=>((t,s)=>t?.forEach(s))(t,((t,a)=>s(a,t))),f="hasStore",g=l(i(["Origin","Methods","Headers"],(t=>["Access-Control-Allow-"+t,"*"]))),m=async t=>await t.get(f),v=async(t,s)=>{const n=[t.put(f,1)],i=[];h(s[0],((s,e)=>r(s)?((t,...s)=>t.unshift(...s))(i,O(a,e)):h(s,((s,c)=>r(s)?o(i,O(a,e,c)):h(s,((s,r)=>E(n,t,O(a,e,c,r),s))))))),h(s[1],((s,a)=>E(n,t,"v"+a,s))),0!=i.length&&d(await t.list(),(s=>i.every((a=>!s.startsWith(a)||E(n,t,s)&&!1)))),await(async t=>e.all(t))(n)},O=(t,...s)=>t+n(u(s),1,-1),E=(t,s,a,e)=>o(t,r(e)?s.delete(a):s.put(a,e)),M=(t,s=null)=>new Response(s,{status:t,headers:g});class S{constructor(t){this.party=t}async onRequest(t){const s=this.party.storage;if(t.url.endsWith("/store")){const e=await m(s),r=await t.text();return"PUT"==t.method?e?M(205):(await v(this.party.storage,y(r)),M(201)):M(200,e?u(await(async t=>{const s={},e={};return d(await t.list(),((t,r)=>{const[n,i]=w(t);if(n==a){const[t,a,e]=y("["+i+"]");p(p(s,t,l),a,l)[e]=r}else"v"==n&&(e[i]=r)})),[s,e]})(s)):"")}return M(404)}async onMessage(a,e){const r=this.party.storage,[n,i]=w(a,1);"s"==n&&await m(r)&&(await v(r,i),this.party.broadcast(((a,e)=>"s"+(t(e)==s?e:u(e)))(0,i),[e.id]))}}export{S as TinyBasePartyKitServer};
1
+ const t=t=>typeof t,s=t(""),e="t",a=Promise,i=t=>null==t,r=(t,s,e)=>t.slice(s,e),n=t=>t.length,o=(t,s)=>t.map(s),c=(t,...s)=>t.push(...s),h=Object,p=(t=[])=>h.fromEntries(t),f=(t,s)=>o(h.entries(t),(([t,e])=>s(e,t))),l=(t,s,e)=>(((t,s)=>!i(((t,s)=>{return a=t=>t[s],i(e=t)?void 0:a(e);var e,a})(t,s)))(t,s)||(t[s]=e()),t[s]),g=t=>JSON.stringify(t,((t,s)=>s instanceof Map?h.fromEntries([...s]):s)),u=JSON.parse,w=(t,s)=>[t[0],s?u(r(t,1)):r(t,1)],y=(t,s)=>((t,s)=>t?.forEach(s))(t,((t,e)=>s(e,t))),d="hasStore",R=p(o(["Origin","Methods","Headers"],(t=>["Access-Control-Allow-"+t,"*"]))),m=async(t,s)=>await t.get(s+d),v=async(t,s,r)=>{const o=[t.put(s+d,1)],h=[];f(r[0],((a,r)=>i(a)?((t,...s)=>t.unshift(...s))(h,s+P(e,r)):f(a,((a,n)=>i(a)?c(h,s+P(e,r,n)):f(a,((a,i)=>x(o,t,s+P(e,r,n,i),a))))))),f(r[1],((e,a)=>x(o,t,s+"v"+a,e))),0!=n(h)&&y(await t.list(),(s=>h.every((e=>!s.startsWith(e)||x(o,t,s)&&!1)))),await(async t=>a.all(t))(o)},P=(t,...s)=>t+r(g(s),1,-1),x=(t,s,e,a)=>c(t,i(a)?s.delete(e):s.put(e,a));class O{constructor(t){this.party=t,this.config={},this.createResponse=(t,s=null)=>new Response(s,{status:t,headers:this.config.responseHeaders??R})}async onRequest(t){const s=this.party.storage,a=this.config.storagePrefix??"",i=this.config.storePath??"/store";if(new URL(t.url).pathname.endsWith(i)){const i=await m(s,a),o=await t.text();return"PUT"==t.method?i?this.createResponse(205):(await v(s,a,u(o)),this.createResponse(201)):this.createResponse(200,i?g(await(async(t,s)=>{const a={},i={};return y(await t.list(),((t,o)=>{if(t.startsWith(s)){t=r(t,n(s));const[c,h]=w(t);if(c==e){const[t,s,e]=u("["+h+"]");l(l(a,t,p),s,p)[e]=o}else"v"==c&&(i[h]=o)}})),[a,i]})(s,a)):"")}return this.createResponse(404)}async onMessage(e,a){const i=this.party.storage,r=this.config.storagePrefix??"",[n,o]=w(e,1);"s"==n&&await m(i,r)&&(await v(i,r,o),this.party.broadcast(((e,a)=>"s"+(t(a)==s?a:g(a)))(0,o),[a.id]))}}export{O as TinyBasePartyKitServer};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t)=>a.repeat(t),i=Promise,c=setInterval,o=clearInterval,r=(a,t)=>a instanceof t,l=a=>null==a,w=(a,t,e)=>l(a)?e?.():t(a),y=t=>a(t)==s,E=(a,t,e)=>a.slice(t,e),u=async a=>i.all(a),d=(a,t="")=>a.join(t),p=(a,t)=>a.map(t),T=a=>a.length,m=a=>0==T(a),v=(a,t)=>a.filter(t),A=(a,...t)=>a.push(...t),L=(a,t)=>a?.has(t)??!1,h=a=>[...a?.values()??[]],R=(a,t)=>a?.delete(t),f=Object,N=f.keys,O=f.freeze,C=(a=[])=>f.fromEntries(a),S=(...a)=>f.assign({},...a),D=(a,t)=>p(f.entries(a),(([a,e])=>t(e,a))),I=a=>f.values(a),b=a=>T(N(a)),g=a=>(a=>r(a,f)&&a.constructor==f)(a)&&0==b(a),_=a=>new Map(a),M=a=>[...a?.keys()??[]],F=(a,t)=>a?.get(t),$=(a,t)=>p([...a?.entries()??[]],(([a,e])=>t(e,a))),P=(a,t,e)=>l(e)?(R(a,t),a):a?.set(t,e),B=(a,t,e)=>(L(a,t)||P(a,t,e()),F(a,t)),j=(a,t,e,s=P)=>(D(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!l(((a,t)=>w(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),k=a=>new Set(Array.isArray(a)||l(a)?a:[a]),H=(a,t)=>a?.add(t),W="_",x="_id",q=a=>`"${a.replace(/"/g,'""')}"`,J="FROM pragma_table_",U="WHERE",V=(a,t,s)=>{const n=_();return[async()=>j(n,C(await u(p(await a("SELECT name "+J+"list WHERE schema='main'AND type='table'AND name IN("+z(t)+")",t),(async({name:t})=>[t,C(p(await a("SELECT name,type "+J+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>P(n,t,j(B(n,t,_),e,((a,t,e)=>{e!=F(a,t)&&P(a,t,e)}),((a,t)=>P(a,t))))),((a,t)=>P(n,t))),async(t,e)=>((a,t)=>!l(F(F(n,a),t)))(t,e)?C(v(p(await a("SELECT*FROM"+q(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!l(a)&&!g(t)))):{},async(t,s,i,c,o,r=!1)=>{const w=k();D(i??{},(a=>p(N(a??{}),(a=>H(w,a)))));const y=h(w);if(!r&&o&&m(y)&&L(n,t))return await a("DROP TABLE"+q(t)),void P(n,t);if(m(y)||L(n,t)){const e=F(n,t),i=k(M(e));await u([...p(y,(async s=>{R(i,s)||(await a(`ALTER TABLE${q(t)}ADD${q(s)}`),P(e,s,""))})),...!r&&c?p(h(i),(async n=>{n!=s&&(await a(`ALTER TABLE${q(t)}DROP${q(n)}`),P(e,n))})):[]])}else await a(`CREATE TABLE${q(t)}(${q(s)} PRIMARY KEY ON CONFLICT REPLACE${d(p(y,(a=>e+q(a))))});`),P(n,t,_([[s,""],...p(y,(a=>[a,""]))]));if(r)l(i)?await a("DELETE FROM"+q(t)+"WHERE 1"):await u(D(i,(async(e,n)=>{l(e)?await a("DELETE FROM"+q(t)+U+q(s)+"=?",[n]):m(y)||await Y(a,t,s,N(e),[n,...I(e)])})));else if(m(y))L(n,t)&&await a("DELETE FROM"+q(t)+"WHERE 1");else{const e=v(M(F(n,t)),(a=>a!=s)),c=[],o=[];D(i??{},((a,t)=>{A(c,t,...p(e,(t=>a?.[t]))),A(o,t)})),await Y(a,t,s,e,c),await a("DELETE FROM"+q(t)+U+q(s)+"NOT IN("+z(o)+")",o)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},Y=async(a,t,s,i,c)=>await a("INSERT INTO"+q(t)+"("+q(s)+d(p(i,(a=>e+q(a))))+")VALUES"+E(n(`,(?${n(",?",T(i))})`,T(c)/(T(i)+1)),1)+"ON CONFLICT("+q(s)+")DO UPDATE SET"+d(p(i,(a=>q(a)+"=excluded."+q(a))),e),c),z=a=>d(p(a,(()=>"?")),e),G=JSON.parse,K=_(),Q=_(),X=(a,t,e,s,n,i,c=[])=>{let o,r,y,E=0,u=0;B(K,c,(()=>0)),B(Q,c,(()=>[]));const d=async a=>(2!=E&&(E=1,await p.schedule((async()=>{await a(),E=0}))),p),p={load:async(e,s)=>await d((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(p.stopAutoLoad(),await p.load(e,n),u=1,y=s((async(e,s)=>{if(s){const t=s();await d((async()=>a.setTransactionChanges(t)))}else await d((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),p),stopAutoLoad:()=>(u&&(n(y),y=void 0,u=0),p),save:async t=>(1!=E&&(E=2,await p.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}E=0}))),p),startAutoSave:async()=>(await p.stopAutoSave().save(),o=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();g(e)&&g(s)||p.save((()=>[e,s]))})),p),stopAutoSave:()=>(w(o,a.delListener),p),schedule:async(...a)=>(A(F(Q,c),...a),await(async()=>{if(!F(K,c)){for(P(K,c,1);!l((a=F(Q,c),r=a.shift()));)try{await r()}catch(a){i?.(a)}P(K,c,0)}var a})(),p),getStore:()=>a,destroy:()=>p.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return O(p)},Z="store",aa=(a,t,e,s,n,[i],c,o)=>{const[l,w,y,E]=V(t,c,n);return X(a,(async()=>await E((async()=>(await l(),G((await w(i,x))[W]?.[Z]??"null"))))),(async a=>await E((async()=>{var t;await l(),await y(i,x,{[W]:{[Z]:(t=a()??null,JSON.stringify(t,((a,t)=>r(t,Map)?f.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,o)},ta=(a,t,e,s,n,[i,c,[o,r,w]],y,E)=>{const[d,p,T,m]=V(t,y,n),A=async(a,t)=>await u($(c,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await T(e,s,o,n,i,t)}))),L=async(a,t)=>r?await T(w,x,{[W]:a},!0,!0,t):null;return X(a,(async()=>await m((async()=>{await d();const a=await(async()=>C(v(await u($(i,(async([a,t],e)=>[a,await p(e,t)]))),(a=>!g(a[1])))))(),t=await(async()=>o?(await p(w,x))[W]:{})();return g(a)&&l(t)?void 0:[a,t]}))),(async(a,t)=>await m((async()=>{if(await d(),l(t)){const[t,e]=a();await A(t),await L(e)}else{const[a,e]=t();await A(a,!0),await L(e,!0)}}))),e,s,n,E)},ea="json",sa="autoLoadIntervalSeconds",na="rowIdColumnName",ia="tableId",ca="tableName",oa={mode:ea,[sa]:1},ra={load:0,save:0,[ca]:t+"_values"},la=(a,t,e,s)=>{const n=_();return D(a,((a,i)=>{const c=E(I(S(t,y(a)?{[e]:a}:a)),0,b(t));l(c[0])||s(i,c[0])||P(n,i,c)})),n},wa="pragma ",ya="data_version",Ea="schema_version",ua=(a,e,s,n,i,r,l,w)=>{let u,d;const[p,T,m,v]=(a=>{const e=(a=>S(oa,y(a)?{storeTableName:a}:a??{}))(a),s=e[sa];if(e.mode==ea){const{storeTableName:a=t}=e;return[1,s,[a],k(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=e,o=E(I(S(ra,c)),0,b(ra)),r=o[2],l=k(r);return[0,s,[la(n,{[ia]:null,[na]:x},ia,(a=>H(l,a)&&a==r)),la(i,{[ca]:null,[na]:x,deleteEmptyColumns:0,deleteEmptyTable:0},ca,((a,t)=>H(l,t)&&t==r)),o],l]})(e);return(p?aa:ta)(a,r?async(a,t)=>(r(a,t),await s(a,t)):s,(a=>[c((async()=>{try{const t=(await s(wa+ya))[0][ya],e=(await s(wa+Ea))[0][Ea];t==(u??=t)&&e==(d??=e)||(a(),u=t,d=e)}catch{}}),1e3*T),n((t=>v.has(t)?a():0))]),(([a,t])=>{o(a),u=d=null,i(t)}),l,m,h(v),w)},da=(a,t,e,s,n,i)=>ua(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,i,e);export{da as createSqliteWasmPersister};
1
+ const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t)=>a.repeat(t),i=Promise,c=setInterval,o=clearInterval,r=(a,t)=>a instanceof t,l=a=>null==a,w=(a,t,e)=>l(a)?e?.():t(a),y=t=>a(t)==s,E=(a,t,e)=>a.slice(t,e),u=a=>a.length,d=async a=>i.all(a),p=(a,t="")=>a.join(t),T=(a,t)=>a.map(t),m=a=>0==u(a),v=(a,t)=>a.filter(t),A=(a,...t)=>a.push(...t),L=(a,t)=>a?.has(t)??!1,h=a=>[...a?.values()??[]],R=(a,t)=>a?.delete(t),f=Object,N=f.keys,O=f.freeze,C=(a=[])=>f.fromEntries(a),S=(...a)=>f.assign({},...a),D=(a,t)=>T(f.entries(a),(([a,e])=>t(e,a))),I=a=>f.values(a),b=a=>u(N(a)),g=a=>(a=>r(a,f)&&a.constructor==f)(a)&&0==b(a),_=a=>new Map(a),M=a=>[...a?.keys()??[]],F=(a,t)=>a?.get(t),$=(a,t)=>T([...a?.entries()??[]],(([a,e])=>t(e,a))),P=(a,t,e)=>l(e)?(R(a,t),a):a?.set(t,e),B=(a,t,e)=>(L(a,t)||P(a,t,e()),F(a,t)),j=(a,t,e,s=P)=>(D(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!l(((a,t)=>w(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),k=a=>new Set(Array.isArray(a)||l(a)?a:[a]),H=(a,t)=>a?.add(t),W="_",x="_id",q=a=>`"${a.replace(/"/g,'""')}"`,J="FROM pragma_table_",U="WHERE",V=(a,t,s)=>{const n=_();return[async()=>j(n,C(await d(T(await a("SELECT name "+J+"list WHERE schema='main'AND type='table'AND name IN("+z(t)+")",t),(async({name:t})=>[t,C(T(await a("SELECT name,type "+J+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>P(n,t,j(B(n,t,_),e,((a,t,e)=>{e!=F(a,t)&&P(a,t,e)}),((a,t)=>P(a,t))))),((a,t)=>P(n,t))),async(t,e)=>((a,t)=>!l(F(F(n,a),t)))(t,e)?C(v(T(await a("SELECT*FROM"+q(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!l(a)&&!g(t)))):{},async(t,s,i,c,o,r=!1)=>{const w=k();D(i??{},(a=>T(N(a??{}),(a=>H(w,a)))));const y=h(w);if(!r&&o&&m(y)&&L(n,t))return await a("DROP TABLE"+q(t)),void P(n,t);if(m(y)||L(n,t)){const e=F(n,t),i=k(M(e));await d([...T(y,(async s=>{R(i,s)||(await a(`ALTER TABLE${q(t)}ADD${q(s)}`),P(e,s,""))})),...!r&&c?T(h(i),(async n=>{n!=s&&(await a(`ALTER TABLE${q(t)}DROP${q(n)}`),P(e,n))})):[]])}else await a(`CREATE TABLE${q(t)}(${q(s)} PRIMARY KEY ON CONFLICT REPLACE${p(T(y,(a=>e+q(a))))});`),P(n,t,_([[s,""],...T(y,(a=>[a,""]))]));if(r)l(i)?await a("DELETE FROM"+q(t)+"WHERE 1"):await d(D(i,(async(e,n)=>{l(e)?await a("DELETE FROM"+q(t)+U+q(s)+"=?",[n]):m(y)||await Y(a,t,s,N(e),[n,...I(e)])})));else if(m(y))L(n,t)&&await a("DELETE FROM"+q(t)+"WHERE 1");else{const e=v(M(F(n,t)),(a=>a!=s)),c=[],o=[];D(i??{},((a,t)=>{A(c,t,...T(e,(t=>a?.[t]))),A(o,t)})),await Y(a,t,s,e,c),await a("DELETE FROM"+q(t)+U+q(s)+"NOT IN("+z(o)+")",o)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},Y=async(a,t,s,i,c)=>await a("INSERT INTO"+q(t)+"("+q(s)+p(T(i,(a=>e+q(a))))+")VALUES"+E(n(`,(?${n(",?",u(i))})`,u(c)/(u(i)+1)),1)+"ON CONFLICT("+q(s)+")DO UPDATE SET"+p(T(i,(a=>q(a)+"=excluded."+q(a))),e),c),z=a=>p(T(a,(()=>"?")),e),G=JSON.parse,K=_(),Q=_(),X=(a,t,e,s,n,i,c=[])=>{let o,r,y,E=0,u=0;B(K,c,(()=>0)),B(Q,c,(()=>[]));const d=async a=>(2!=E&&(E=1,await p.schedule((async()=>{await a(),E=0}))),p),p={load:async(e,s)=>await d((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(p.stopAutoLoad(),await p.load(e,n),u=1,y=s((async(e,s)=>{if(s){const t=s();await d((async()=>a.setTransactionChanges(t)))}else await d((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),p),stopAutoLoad:()=>(u&&(n(y),y=void 0,u=0),p),save:async t=>(1!=E&&(E=2,await p.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}E=0}))),p),startAutoSave:async()=>(await p.stopAutoSave().save(),o=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();g(e)&&g(s)||p.save((()=>[e,s]))})),p),stopAutoSave:()=>(w(o,a.delListener),p),schedule:async(...a)=>(A(F(Q,c),...a),await(async()=>{if(!F(K,c)){for(P(K,c,1);!l((a=F(Q,c),r=a.shift()));)try{await r()}catch(a){i?.(a)}P(K,c,0)}var a})(),p),getStore:()=>a,destroy:()=>p.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return O(p)},Z="store",aa=(a,t,e,s,n,[i],c,o)=>{const[l,w,y,E]=V(t,c,n);return X(a,(async()=>await E((async()=>(await l(),G((await w(i,x))[W]?.[Z]??"null"))))),(async a=>await E((async()=>{var t;await l(),await y(i,x,{[W]:{[Z]:(t=a()??null,JSON.stringify(t,((a,t)=>r(t,Map)?f.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,o)},ta=(a,t,e,s,n,[i,c,[o,r,w]],y,E)=>{const[u,p,T,m]=V(t,y,n),A=async(a,t)=>await d($(c,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await T(e,s,o,n,i,t)}))),L=async(a,t)=>r?await T(w,x,{[W]:a},!0,!0,t):null;return X(a,(async()=>await m((async()=>{await u();const a=await(async()=>C(v(await d($(i,(async([a,t],e)=>[a,await p(e,t)]))),(a=>!g(a[1])))))(),t=await(async()=>o?(await p(w,x))[W]:{})();return g(a)&&l(t)?void 0:[a,t]}))),(async(a,t)=>await m((async()=>{if(await u(),l(t)){const[t,e]=a();await A(t),await L(e)}else{const[a,e]=t();await A(a,!0),await L(e,!0)}}))),e,s,n,E)},ea="json",sa="autoLoadIntervalSeconds",na="rowIdColumnName",ia="tableId",ca="tableName",oa={mode:ea,[sa]:1},ra={load:0,save:0,[ca]:t+"_values"},la=(a,t,e,s)=>{const n=_();return D(a,((a,i)=>{const c=E(I(S(t,y(a)?{[e]:a}:a)),0,b(t));l(c[0])||s(i,c[0])||P(n,i,c)})),n},wa="pragma ",ya="data_version",Ea="schema_version",ua=(a,e,s,n,i,r,l,w)=>{let u,d;const[p,T,m,v]=(a=>{const e=(a=>S(oa,y(a)?{storeTableName:a}:a??{}))(a),s=e[sa];if(e.mode==ea){const{storeTableName:a=t}=e;return[1,s,[a],k(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=e,o=E(I(S(ra,c)),0,b(ra)),r=o[2],l=k(r);return[0,s,[la(n,{[ia]:null,[na]:x},ia,(a=>H(l,a)&&a==r)),la(i,{[ca]:null,[na]:x,deleteEmptyColumns:0,deleteEmptyTable:0},ca,((a,t)=>H(l,t)&&t==r)),o],l]})(e);return(p?aa:ta)(a,r?async(a,t)=>(r(a,t),await s(a,t)):s,(a=>[c((async()=>{try{const t=(await s(wa+ya))[0][ya],e=(await s(wa+Ea))[0][Ea];t==(u??=t)&&e==(d??=e)||(a(),u=t,d=e)}catch{}}),1e3*T),n((t=>v.has(t)?a():0))]),(([a,t])=>{o(a),u=d=null,i(t)}),l,m,h(v),w)},da=(a,t,e,s,n,i)=>ua(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,i,e);export{da as createSqliteWasmPersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t)=>a.repeat(t),i=Promise,c=setInterval,o=clearInterval,r=(a,t)=>a instanceof t,w=a=>null==a,l=(a,t,e)=>w(a)?e?.():t(a),y=t=>a(t)==s,E=(a,t,e)=>a.slice(t,e),u=async a=>i.all(a),d=(a,t="")=>a.join(t),v=(a,t)=>a.map(t),T=a=>a.length,m=a=>0==T(a),A=(a,t)=>a.filter(t),L=(a,...t)=>a.push(...t),p=(a,t)=>a?.has(t)??!1,f=a=>[...a?.values()??[]],h=(a,t)=>a?.delete(t),N=Object,R=N.keys,O=N.freeze,C=(a=[])=>N.fromEntries(a),S=(...a)=>N.assign({},...a),D=(a,t)=>v(N.entries(a),(([a,e])=>t(e,a))),I=a=>N.values(a),g=a=>T(R(a)),b=a=>(a=>r(a,N)&&a.constructor==N)(a)&&0==g(a),F=a=>new Map(a),M=a=>[...a?.keys()??[]],$=(a,t)=>a?.get(t),_=(a,t)=>v([...a?.entries()??[]],(([a,e])=>t(e,a))),P=(a,t,e)=>w(e)?(h(a,t),a):a?.set(t,e),B=(a,t,e)=>(p(a,t)||P(a,t,e()),$(a,t)),H=(a,t,e,s=P)=>(D(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!w(((a,t)=>l(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),W=a=>new Set(Array.isArray(a)||w(a)?a:[a]),j=(a,t)=>a?.add(t),k="_",x="_id",J=a=>`"${a.replace(/"/g,'""')}"`,U="FROM pragma_table_",Y="WHERE",z=(a,t,s)=>{const n=F();return[async()=>H(n,C(await u(v(await a("SELECT name "+U+"list WHERE schema='main'AND type='table'AND name IN("+K(t)+")",t),(async({name:t})=>[t,C(v(await a("SELECT name,type "+U+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>P(n,t,H(B(n,t,F),e,((a,t,e)=>{e!=$(a,t)&&P(a,t,e)}),((a,t)=>P(a,t))))),((a,t)=>P(n,t))),async(t,e)=>((a,t)=>!w($($(n,a),t)))(t,e)?C(A(v(await a("SELECT*FROM"+J(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!w(a)&&!b(t)))):{},async(t,s,i,c,o,r=!1)=>{const l=W();D(i??{},(a=>v(R(a??{}),(a=>j(l,a)))));const y=f(l);if(!r&&o&&m(y)&&p(n,t))return await a("DROP TABLE"+J(t)),void P(n,t);if(m(y)||p(n,t)){const e=$(n,t),i=W(M(e));await u([...v(y,(async s=>{h(i,s)||(await a(`ALTER TABLE${J(t)}ADD${J(s)}`),P(e,s,""))})),...!r&&c?v(f(i),(async n=>{n!=s&&(await a(`ALTER TABLE${J(t)}DROP${J(n)}`),P(e,n))})):[]])}else await a(`CREATE TABLE${J(t)}(${J(s)} PRIMARY KEY ON CONFLICT REPLACE${d(v(y,(a=>e+J(a))))});`),P(n,t,F([[s,""],...v(y,(a=>[a,""]))]));if(r)w(i)?await a("DELETE FROM"+J(t)+"WHERE 1"):await u(D(i,(async(e,n)=>{w(e)?await a("DELETE FROM"+J(t)+Y+J(s)+"=?",[n]):m(y)||await G(a,t,s,R(e),[n,...I(e)])})));else if(m(y))p(n,t)&&await a("DELETE FROM"+J(t)+"WHERE 1");else{const e=A(M($(n,t)),(a=>a!=s)),c=[],o=[];D(i??{},((a,t)=>{L(c,t,...v(e,(t=>a?.[t]))),L(o,t)})),await G(a,t,s,e,c),await a("DELETE FROM"+J(t)+Y+J(s)+"NOT IN("+K(o)+")",o)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},G=async(a,t,s,i,c)=>await a("INSERT INTO"+J(t)+"("+J(s)+d(v(i,(a=>e+J(a))))+")VALUES"+E(n(`,(?${n(",?",T(i))})`,T(c)/(T(i)+1)),1)+"ON CONFLICT("+J(s)+")DO UPDATE SET"+d(v(i,(a=>J(a)+"=excluded."+J(a))),e),c),K=a=>d(v(a,(()=>"?")),e),V=JSON.parse,q=F(),Q=F(),X=(a,t,e,s,n,i,c=[])=>{let o,r,y,E=0,u=0;B(q,c,(()=>0)),B(Q,c,(()=>[]));const d=async a=>(2!=E&&(E=1,await v.schedule((async()=>{await a(),E=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),u=1,y=s((async(e,s)=>{if(s){const t=s();await d((async()=>a.setTransactionChanges(t)))}else await d((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),v),stopAutoLoad:()=>(u&&(n(y),y=void 0,u=0),v),save:async t=>(1!=E&&(E=2,await v.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}E=0}))),v),startAutoSave:async()=>(await v.stopAutoSave().save(),o=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();b(e)&&b(s)||v.save((()=>[e,s]))})),v),stopAutoSave:()=>(l(o,a.delListener),v),schedule:async(...a)=>(L($(Q,c),...a),await(async()=>{if(!$(q,c)){for(P(q,c,1);!w((a=$(Q,c),r=a.shift()));)try{await r()}catch(a){i?.(a)}P(q,c,0)}var a})(),v),getStore:()=>a,destroy:()=>v.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return O(v)},Z="store",aa=(a,t,e,s,n,[i],c,o)=>{const[w,l,y,E]=z(t,c,n);return X(a,(async()=>await E((async()=>(await w(),V((await l(i,x))[k]?.[Z]??"null"))))),(async a=>await E((async()=>{var t;await w(),await y(i,x,{[k]:{[Z]:(t=a()??null,JSON.stringify(t,((a,t)=>r(t,Map)?N.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,o)},ta=(a,t,e,s,n,[i,c,[o,r,l]],y,E)=>{const[d,v,T,m]=z(t,y,n),L=async(a,t)=>await u(_(c,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await T(e,s,o,n,i,t)}))),p=async(a,t)=>r?await T(l,x,{[k]:a},!0,!0,t):null;return X(a,(async()=>await m((async()=>{await d();const a=await(async()=>C(A(await u(_(i,(async([a,t],e)=>[a,await v(e,t)]))),(a=>!b(a[1])))))(),t=await(async()=>o?(await v(l,x))[k]:{})();return b(a)&&w(t)?void 0:[a,t]}))),(async(a,t)=>await m((async()=>{if(await d(),w(t)){const[t,e]=a();await L(t),await p(e)}else{const[a,e]=t();await L(a,!0),await p(e,!0)}}))),e,s,n,E)},ea="json",sa="autoLoadIntervalSeconds",na="rowIdColumnName",ia="tableId",ca="tableName",oa={mode:ea,[sa]:1},ra={load:0,save:0,[ca]:t+"_values"},wa=(a,t,e,s)=>{const n=F();return D(a,((a,i)=>{const c=E(I(S(t,y(a)?{[e]:a}:a)),0,g(t));w(c[0])||s(i,c[0])||P(n,i,c)})),n},la="pragma ",ya="data_version",Ea="schema_version",ua=(a,e,s,n,i,r,w,l)=>{let u,d;const[v,T,m,A]=(a=>{const e=(a=>S(oa,y(a)?{storeTableName:a}:a??{}))(a),s=e[sa];if(e.mode==ea){const{storeTableName:a=t}=e;return[1,s,[a],W(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=e,o=E(I(S(ra,c)),0,g(ra)),r=o[2],w=W(r);return[0,s,[wa(n,{[ia]:null,[na]:x},ia,(a=>j(w,a)&&a==r)),wa(i,{[ca]:null,[na]:x,deleteEmptyColumns:0,deleteEmptyTable:0},ca,((a,t)=>j(w,t)&&t==r)),o],w]})(e);return(v?aa:ta)(a,r?async(a,t)=>(r(a,t),await s(a,t)):s,(a=>[c((async()=>{try{const t=(await s(la+ya))[0][ya],e=(await s(la+Ea))[0][Ea];t==(u??=t)&&e==(d??=e)||(a(),u=t,d=e)}catch{}}),1e3*T),n((t=>A.has(t)?a():0))]),(([a,t])=>{o(a),u=d=null,i(t)}),w,m,f(A),l)},da="change",va=(a,t,e,s,n)=>ua(a,e,(async(a,e=[])=>{return await(s=(s,n)=>t.all(a,e,((a,t)=>a?n(a):s(t.map((a=>({...a})))))),new i(s));var s}),(a=>{const e=(t,e,s)=>a(s);return t.on(da,e),e}),(a=>t.off(da,a)),s,n,t);export{va as createSqlite3Persister};
1
+ const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t)=>a.repeat(t),i=Promise,c=setInterval,o=clearInterval,r=(a,t)=>a instanceof t,w=a=>null==a,l=(a,t,e)=>w(a)?e?.():t(a),y=t=>a(t)==s,E=(a,t,e)=>a.slice(t,e),u=a=>a.length,d=async a=>i.all(a),v=(a,t="")=>a.join(t),T=(a,t)=>a.map(t),m=a=>0==u(a),A=(a,t)=>a.filter(t),L=(a,...t)=>a.push(...t),p=(a,t)=>a?.has(t)??!1,f=a=>[...a?.values()??[]],h=(a,t)=>a?.delete(t),N=Object,R=N.keys,O=N.freeze,C=(a=[])=>N.fromEntries(a),S=(...a)=>N.assign({},...a),D=(a,t)=>T(N.entries(a),(([a,e])=>t(e,a))),I=a=>N.values(a),g=a=>u(R(a)),b=a=>(a=>r(a,N)&&a.constructor==N)(a)&&0==g(a),F=a=>new Map(a),M=a=>[...a?.keys()??[]],$=(a,t)=>a?.get(t),_=(a,t)=>T([...a?.entries()??[]],(([a,e])=>t(e,a))),P=(a,t,e)=>w(e)?(h(a,t),a):a?.set(t,e),B=(a,t,e)=>(p(a,t)||P(a,t,e()),$(a,t)),H=(a,t,e,s=P)=>(D(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!w(((a,t)=>l(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),W=a=>new Set(Array.isArray(a)||w(a)?a:[a]),j=(a,t)=>a?.add(t),k="_",x="_id",J=a=>`"${a.replace(/"/g,'""')}"`,U="FROM pragma_table_",Y="WHERE",z=(a,t,s)=>{const n=F();return[async()=>H(n,C(await d(T(await a("SELECT name "+U+"list WHERE schema='main'AND type='table'AND name IN("+K(t)+")",t),(async({name:t})=>[t,C(T(await a("SELECT name,type "+U+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>P(n,t,H(B(n,t,F),e,((a,t,e)=>{e!=$(a,t)&&P(a,t,e)}),((a,t)=>P(a,t))))),((a,t)=>P(n,t))),async(t,e)=>((a,t)=>!w($($(n,a),t)))(t,e)?C(A(T(await a("SELECT*FROM"+J(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!w(a)&&!b(t)))):{},async(t,s,i,c,o,r=!1)=>{const l=W();D(i??{},(a=>T(R(a??{}),(a=>j(l,a)))));const y=f(l);if(!r&&o&&m(y)&&p(n,t))return await a("DROP TABLE"+J(t)),void P(n,t);if(m(y)||p(n,t)){const e=$(n,t),i=W(M(e));await d([...T(y,(async s=>{h(i,s)||(await a(`ALTER TABLE${J(t)}ADD${J(s)}`),P(e,s,""))})),...!r&&c?T(f(i),(async n=>{n!=s&&(await a(`ALTER TABLE${J(t)}DROP${J(n)}`),P(e,n))})):[]])}else await a(`CREATE TABLE${J(t)}(${J(s)} PRIMARY KEY ON CONFLICT REPLACE${v(T(y,(a=>e+J(a))))});`),P(n,t,F([[s,""],...T(y,(a=>[a,""]))]));if(r)w(i)?await a("DELETE FROM"+J(t)+"WHERE 1"):await d(D(i,(async(e,n)=>{w(e)?await a("DELETE FROM"+J(t)+Y+J(s)+"=?",[n]):m(y)||await G(a,t,s,R(e),[n,...I(e)])})));else if(m(y))p(n,t)&&await a("DELETE FROM"+J(t)+"WHERE 1");else{const e=A(M($(n,t)),(a=>a!=s)),c=[],o=[];D(i??{},((a,t)=>{L(c,t,...T(e,(t=>a?.[t]))),L(o,t)})),await G(a,t,s,e,c),await a("DELETE FROM"+J(t)+Y+J(s)+"NOT IN("+K(o)+")",o)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},G=async(a,t,s,i,c)=>await a("INSERT INTO"+J(t)+"("+J(s)+v(T(i,(a=>e+J(a))))+")VALUES"+E(n(`,(?${n(",?",u(i))})`,u(c)/(u(i)+1)),1)+"ON CONFLICT("+J(s)+")DO UPDATE SET"+v(T(i,(a=>J(a)+"=excluded."+J(a))),e),c),K=a=>v(T(a,(()=>"?")),e),V=JSON.parse,q=F(),Q=F(),X=(a,t,e,s,n,i,c=[])=>{let o,r,y,E=0,u=0;B(q,c,(()=>0)),B(Q,c,(()=>[]));const d=async a=>(2!=E&&(E=1,await v.schedule((async()=>{await a(),E=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),u=1,y=s((async(e,s)=>{if(s){const t=s();await d((async()=>a.setTransactionChanges(t)))}else await d((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),v),stopAutoLoad:()=>(u&&(n(y),y=void 0,u=0),v),save:async t=>(1!=E&&(E=2,await v.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}E=0}))),v),startAutoSave:async()=>(await v.stopAutoSave().save(),o=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();b(e)&&b(s)||v.save((()=>[e,s]))})),v),stopAutoSave:()=>(l(o,a.delListener),v),schedule:async(...a)=>(L($(Q,c),...a),await(async()=>{if(!$(q,c)){for(P(q,c,1);!w((a=$(Q,c),r=a.shift()));)try{await r()}catch(a){i?.(a)}P(q,c,0)}var a})(),v),getStore:()=>a,destroy:()=>v.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return O(v)},Z="store",aa=(a,t,e,s,n,[i],c,o)=>{const[w,l,y,E]=z(t,c,n);return X(a,(async()=>await E((async()=>(await w(),V((await l(i,x))[k]?.[Z]??"null"))))),(async a=>await E((async()=>{var t;await w(),await y(i,x,{[k]:{[Z]:(t=a()??null,JSON.stringify(t,((a,t)=>r(t,Map)?N.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,o)},ta=(a,t,e,s,n,[i,c,[o,r,l]],y,E)=>{const[u,v,T,m]=z(t,y,n),L=async(a,t)=>await d(_(c,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await T(e,s,o,n,i,t)}))),p=async(a,t)=>r?await T(l,x,{[k]:a},!0,!0,t):null;return X(a,(async()=>await m((async()=>{await u();const a=await(async()=>C(A(await d(_(i,(async([a,t],e)=>[a,await v(e,t)]))),(a=>!b(a[1])))))(),t=await(async()=>o?(await v(l,x))[k]:{})();return b(a)&&w(t)?void 0:[a,t]}))),(async(a,t)=>await m((async()=>{if(await u(),w(t)){const[t,e]=a();await L(t),await p(e)}else{const[a,e]=t();await L(a,!0),await p(e,!0)}}))),e,s,n,E)},ea="json",sa="autoLoadIntervalSeconds",na="rowIdColumnName",ia="tableId",ca="tableName",oa={mode:ea,[sa]:1},ra={load:0,save:0,[ca]:t+"_values"},wa=(a,t,e,s)=>{const n=F();return D(a,((a,i)=>{const c=E(I(S(t,y(a)?{[e]:a}:a)),0,g(t));w(c[0])||s(i,c[0])||P(n,i,c)})),n},la="pragma ",ya="data_version",Ea="schema_version",ua=(a,e,s,n,i,r,w,l)=>{let u,d;const[v,T,m,A]=(a=>{const e=(a=>S(oa,y(a)?{storeTableName:a}:a??{}))(a),s=e[sa];if(e.mode==ea){const{storeTableName:a=t}=e;return[1,s,[a],W(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=e,o=E(I(S(ra,c)),0,g(ra)),r=o[2],w=W(r);return[0,s,[wa(n,{[ia]:null,[na]:x},ia,(a=>j(w,a)&&a==r)),wa(i,{[ca]:null,[na]:x,deleteEmptyColumns:0,deleteEmptyTable:0},ca,((a,t)=>j(w,t)&&t==r)),o],w]})(e);return(v?aa:ta)(a,r?async(a,t)=>(r(a,t),await s(a,t)):s,(a=>[c((async()=>{try{const t=(await s(la+ya))[0][ya],e=(await s(la+Ea))[0][Ea];t==(u??=t)&&e==(d??=e)||(a(),u=t,d=e)}catch{}}),1e3*T),n((t=>A.has(t)?a():0))]),(([a,t])=>{o(a),u=d=null,i(t)}),w,m,f(A),l)},da="change",va=(a,t,e,s,n)=>ua(a,e,(async(a,e=[])=>{return await(s=(s,n)=>t.all(a,e,((a,t)=>a?n(a):s(t.map((a=>({...a})))))),new i(s));var s}),(a=>{const e=(t,e,s)=>a(s);return t.on(da,e),e}),(a=>t.off(da,a)),s,n,t);export{va as createSqlite3Persister};
@@ -1 +1 @@
1
- import{Map as t}from"yjs";const e="t",a="v",s=t=>t.length,n=t=>t.shift(),o=t=>null==t,c=(t,e,a)=>o(t)?a?.():e(t),r=Object,i=r.keys,l=r.freeze,u=(t=[])=>r.fromEntries(t),d=(t,e)=>!o(((t,e)=>c(t,(t=>t[e])))(t,e)),g=(t,e)=>((t,e)=>t.map(e))(r.entries(t),(([t,a])=>e(a,t))),y=t=>(t=>t instanceof r&&t.constructor==r)(t)&&0==(t=>s(i(t)))(t),h=(t,e,a)=>(d(t,e)||(t[e]=a()),t[e]),v=t=>new Map(t),p=(t,e)=>t?.get(e),w=(t,e)=>((t,e)=>t?.forEach(e))(t,((t,a)=>e(a,t))),f=(t,e,a)=>{return o(a)?(s=t,n=e,s?.delete(n),t):t?.set(e,a);var s,n},S=(t,e,a)=>{var s,n;return s=t,n=e,s?.has(n)||f(t,e,a()),p(t,e)},A=v(),O=v(),J="delete",L=t=>[t.get(e),t.get(a)],N=(e,a,s,n)=>{const c=o(a)?e:e.get(a)??e.set(a,new t);let r;return g(s,((t,e)=>{n(c,e,t)&&(r=1)})),c.forEach(((t,e)=>{d(s,e)||(c.delete(e),r=1)})),o(a)||c.size||e.delete(a),r},C=(r,i,d="tinybase",v)=>{const C=i.getMap(d);return((t,e,a,s,r,i,u=[])=>{let d,g,h,v=0,w=0;S(A,u,(()=>0)),S(O,u,(()=>[]));const J=async t=>(2!=v&&(v=1,await L.schedule((async()=>{await t(),v=0}))),L),L={load:async(a,s)=>await J((async()=>{try{t.setContent(await e())}catch{t.setContent([a,s])}})),startAutoLoad:async(a={},n={})=>(L.stopAutoLoad(),await L.load(a,n),w=1,h=s((async(a,s)=>{if(s){const e=s();await J((async()=>t.setTransactionChanges(e)))}else await J((async()=>{try{t.setContent(a?.()??await e())}catch(t){i?.(t)}}))})),L),stopAutoLoad:()=>(w&&(r(h),h=void 0,w=0),L),save:async e=>(1!=v&&(v=2,await L.schedule((async()=>{try{await a(t.getContent,e)}catch(t){i?.(t)}v=0}))),L),startAutoSave:async()=>(await L.stopAutoSave().save(),d=t.addDidFinishTransactionListener(((t,e)=>{const[a,s]=e();y(a)&&y(s)||L.save((()=>[a,s]))})),L),stopAutoSave:()=>(c(d,t.delListener),L),schedule:async(...t)=>(((t,...e)=>{t.push(...e)})(p(O,u),...t),await(async()=>{if(!p(A,u)){for(f(A,u,1);!o(g=n(p(O,u)));)try{await g()}catch(t){i?.(t)}f(A,u,0)}})(),L),getStore:()=>t,destroy:()=>L.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return l(L)})(r,(async()=>C.size?[C.get(e).toJSON(),C.get(a).toJSON()]:void 0),(async(s,n)=>i.transact((()=>((s,n,r)=>{s.size||(s.set(e,new t),s.set(a,new t));const[i,l]=L(s),u=()=>{d=1};let d=1;if(c(r?.(),(([t,e])=>{d=0,g(t,((t,e)=>d?0:o(t)?i.delete(e):c(i.get(e),(e=>g(t,((t,a)=>d?0:o(t)?e.delete(a):c(e.get(a),(e=>g(t,((t,a)=>o(t)?e.delete(a):e.set(a,t)))),u)))),u))),g(e,((t,e)=>d?0:o(t)?l.delete(e):l.set(e,t)))})),d){const[t,e]=n();N(i,void 0,t,((t,e,a)=>N(i,e,a,((t,e,a)=>N(t,e,a,((t,e,a)=>{if(t.get(e)!==a)return t.set(e,a),1})))))),N(l,void 0,e,((t,e,a)=>{l.get(e)!==a&&l.set(e,a)}))}})(C,s,n)))),(t=>{const o=o=>t(void 0,(()=>((t,o)=>{if(1==s(o)&&(r=o[0].path,0==s(r)))return[t.get(e).toJSON(),t.get(a).toJSON()];var r;const[i,l]=L(t),d={},g={};return((t,a)=>{t.forEach((({path:t,changes:{keys:a}})=>n(t)==e?c(n(t),(e=>{const s=h(d,e,u),o=i.get(e);c(n(t),(t=>{const e=h(s,t,u),n=o.get(t);w(a,((t,{action:a})=>e[t]=a==J?null:n.get(t)))}),(()=>w(a,((t,{action:e})=>s[t]=e==J?null:o.get(t)?.toJSON()))))}),(()=>w(a,((t,{action:e})=>d[t]=e==J?null:i.get(t)?.toJSON())))):w(a,((t,{action:e})=>g[t]=e==J?null:l.get(t)))))})(o),[d,g]})(C,o)));return C.observeDeep(o),o}),(t=>{C.unobserveDeep(t)}),v)};export{C as createYjsPersister};
1
+ import{Map as t}from"yjs";const e="t",a="v",s=t=>null==t,n=(t,e,a)=>s(t)?a?.():e(t),o=t=>t.length,c=t=>t.shift(),r=Object,i=r.keys,l=r.freeze,u=(t=[])=>r.fromEntries(t),d=(t,e)=>!s(((t,e)=>n(t,(t=>t[e])))(t,e)),g=(t,e)=>((t,e)=>t.map(e))(r.entries(t),(([t,a])=>e(a,t))),y=t=>(t=>t instanceof r&&t.constructor==r)(t)&&0==(t=>o(i(t)))(t),h=(t,e,a)=>(d(t,e)||(t[e]=a()),t[e]),v=t=>new Map(t),p=(t,e)=>t?.get(e),w=(t,e)=>((t,e)=>t?.forEach(e))(t,((t,a)=>e(a,t))),f=(t,e,a)=>{return s(a)?(n=t,o=e,n?.delete(o),t):t?.set(e,a);var n,o},S=(t,e,a)=>{var s,n;return s=t,n=e,s?.has(n)||f(t,e,a()),p(t,e)},A=v(),O=v(),J="delete",L=t=>[t.get(e),t.get(a)],N=(e,a,n,o)=>{const c=s(a)?e:e.get(a)??e.set(a,new t);let r;return g(n,((t,e)=>{o(c,e,t)&&(r=1)})),c.forEach(((t,e)=>{d(n,e)||(c.delete(e),r=1)})),s(a)||c.size||e.delete(a),r},C=(r,i,d="tinybase",v)=>{const C=i.getMap(d);return((t,e,a,o,r,i,u=[])=>{let d,g,h,v=0,w=0;S(A,u,(()=>0)),S(O,u,(()=>[]));const J=async t=>(2!=v&&(v=1,await L.schedule((async()=>{await t(),v=0}))),L),L={load:async(a,s)=>await J((async()=>{try{t.setContent(await e())}catch{t.setContent([a,s])}})),startAutoLoad:async(a={},s={})=>(L.stopAutoLoad(),await L.load(a,s),w=1,h=o((async(a,s)=>{if(s){const e=s();await J((async()=>t.setTransactionChanges(e)))}else await J((async()=>{try{t.setContent(a?.()??await e())}catch(t){i?.(t)}}))})),L),stopAutoLoad:()=>(w&&(r(h),h=void 0,w=0),L),save:async e=>(1!=v&&(v=2,await L.schedule((async()=>{try{await a(t.getContent,e)}catch(t){i?.(t)}v=0}))),L),startAutoSave:async()=>(await L.stopAutoSave().save(),d=t.addDidFinishTransactionListener(((t,e)=>{const[a,s]=e();y(a)&&y(s)||L.save((()=>[a,s]))})),L),stopAutoSave:()=>(n(d,t.delListener),L),schedule:async(...t)=>(((t,...e)=>{t.push(...e)})(p(O,u),...t),await(async()=>{if(!p(A,u)){for(f(A,u,1);!s(g=c(p(O,u)));)try{await g()}catch(t){i?.(t)}f(A,u,0)}})(),L),getStore:()=>t,destroy:()=>L.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return l(L)})(r,(async()=>C.size?[C.get(e).toJSON(),C.get(a).toJSON()]:void 0),(async(o,c)=>i.transact((()=>((o,c,r)=>{o.size||(o.set(e,new t),o.set(a,new t));const[i,l]=L(o),u=()=>{d=1};let d=1;if(n(r?.(),(([t,e])=>{d=0,g(t,((t,e)=>d?0:s(t)?i.delete(e):n(i.get(e),(e=>g(t,((t,a)=>d?0:s(t)?e.delete(a):n(e.get(a),(e=>g(t,((t,a)=>s(t)?e.delete(a):e.set(a,t)))),u)))),u))),g(e,((t,e)=>d?0:s(t)?l.delete(e):l.set(e,t)))})),d){const[t,e]=c();N(i,void 0,t,((t,e,a)=>N(i,e,a,((t,e,a)=>N(t,e,a,((t,e,a)=>{if(t.get(e)!==a)return t.set(e,a),1})))))),N(l,void 0,e,((t,e,a)=>{l.get(e)!==a&&l.set(e,a)}))}})(C,o,c)))),(t=>{const s=s=>t(void 0,(()=>((t,s)=>{if(1==o(s)&&(r=s[0].path,0==o(r)))return[t.get(e).toJSON(),t.get(a).toJSON()];var r;const[i,l]=L(t),d={},g={};return((t,a)=>{t.forEach((({path:t,changes:{keys:a}})=>c(t)==e?n(c(t),(e=>{const s=h(d,e,u),o=i.get(e);n(c(t),(t=>{const e=h(s,t,u),n=o.get(t);w(a,((t,{action:a})=>e[t]=a==J?null:n.get(t)))}),(()=>w(a,((t,{action:e})=>s[t]=e==J?null:o.get(t)?.toJSON()))))}),(()=>w(a,((t,{action:e})=>d[t]=e==J?null:i.get(t)?.toJSON())))):w(a,((t,{action:e})=>g[t]=e==J?null:l.get(t)))))})(s),[d,g]})(C,s)));return C.observeDeep(s),s}),(t=>{C.unobserveDeep(t)}),v)};export{C as createYjsPersister};
Binary file
package/lib/queries.js CHANGED
@@ -1 +1 @@
1
- const e=e=>typeof e,t=e(""),n=e(!0),s=e(0),r=e(e),o="Listener",a="Result",l="Ids",i="Table",d="Row",c=d+"Count",u=d+l,h="Sorted"+d+l,g="Cell",v=g+l,w=(e,t)=>e.every(t),L=(e,t)=>e.forEach(t),f=e=>T(e,((e,t)=>e+t),0),R=e=>e.length,y=e=>0==R(e),T=(e,t,n)=>e.reduce(t,n),b=(e,...t)=>e.push(...t),C=Math.max,p=Math.min,S=isFinite,m=e=>null==e,I=(e,t,n)=>m(e)?n?.():t(e),Q=t=>e(t)==r,E=e=>Array.isArray(e),M=()=>{},x=Object,D=x.freeze,j=e=>e?.size??0,k=(e,t)=>e?.has(t)??!1,z=e=>m(e)||0==j(e),A=e=>[...e?.values()??[]],F=e=>e.clear(),O=(e,t)=>e?.forEach(t),W=(e,t)=>e?.delete(t),q=e=>new Map(e),B=(e,t)=>e?.get(t),G=(e,t)=>O(e,((e,n)=>t(n,e))),H=(e,t,n)=>m(n)?(W(e,t),e):e?.set(t,n),J=(e,t,n)=>(k(e,t)||H(e,t,n()),B(e,t)),K=(e,t,n,s,r=0)=>I((n?J:B)(e,t[r],r>R(t)-2?n:q),(o=>{if(r>R(t)-2)return s?.(o)&&H(e,t[r]),o;const a=K(o,t,n,s,r+1);return z(o)&&H(e,t[r]),a})),N=e=>new Set(E(e)||m(e)?e:[e]),P=(e,t)=>e?.add(t),U=q([["avg",[(e,t)=>f(e)/t,(e,t,n)=>e+(t-e)/(n+1),(e,t,n)=>e+(e-t)/(n-1),(e,t,n,s)=>e+(t-n)/s]],["max",[e=>C(...e),(e,t)=>C(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:C(t,e)]],["min",[e=>p(...e),(e,t)=>p(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:p(t,e)]],["sum",[e=>f(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,n)=>e-n+t]]]),V=(r=>{const l=new WeakMap;return r=>(l.has(r)||l.set(r,(r=>{const l=r.createStore,f=l(),T=l(),C=q(),{addListener:p,callListeners:V,delListener:X}=T,[Y,Z,$,_,ee,,,te,,ne,se,re,oe,ae]=((e,t,n,s,r)=>{const o=e.hasRow,a=q(),l=q(),i=q(),d=q(),c=q(),u=q(),h=(t,n,...s)=>{const r=J(u,t,N);return L(s,(t=>P(r,t)&&n&&e.callListener(t))),s},g=(t,...n)=>I(B(u,t),(s=>{L(y(n)?A(s):n,(t=>{e.delListener(t),W(s,t)})),z(s)&&H(u,t)})),v=(e,t)=>{H(a,e,t),k(l,e)||(H(l,e,!0),H(d,e,q()),H(c,e,q()),r(i))},f=e=>{H(a,e),H(l,e),H(d,e),H(c,e),g(e),r(i)};return[()=>e,()=>{return e=a,[...e?.keys()??[]];var e},e=>G(l,e),e=>k(l,e),e=>B(a,e),e=>B(l,e),(e,t)=>H(l,e,t),v,(t,s,r,a,l)=>{v(t,s);const i=q(),u=q(),f=B(d,t),y=B(c,t),T=t=>{const r=n=>e.getCell(s,t,n),d=B(f,t),c=o(s,t)?n(a(r,t)):void 0;var h,g;if(d===c||E(d)&&E(c)&&(g=c,R(h=d)===R(g)&&w(h,((e,t)=>g[t]===e)))||H(i,t,[d,c]),!m(l)){const e=B(y,t),n=o(s,t)?l(r,t):void 0;e!=n&&H(u,t,n)}},b=e=>{r((()=>{O(i,(([,e],t)=>H(f,t,e))),O(u,((e,t)=>H(y,t,e)))}),i,u,f,y,e),F(i),F(u)};G(f,T),e.hasTable(s)&&L(e.getRowIds(s),(e=>{k(f,e)||T(e)})),b(!0),g(t),h(t,0,e.addRowListener(s,null,((e,t,n)=>T(n))),e.addTableListener(s,(()=>b())))},f,e=>s(e,i),()=>G(u,f),h,g]})(r,0,M,p,V),le=(e,t,...n)=>L(n,(n=>P(J(J(C,t,q),e,N),n))),ie=e=>{I(B(C,e),(e=>{G(e,((e,t)=>O(t,(t=>e.delListener(t))))),F(e)})),L([T,f],(t=>t.delTable(e)))},de=(e,t,n)=>le(t,e,t.addStartTransactionListener(n.startTransaction),t.addDidFinishTransactionListener((()=>n.finishTransaction()))),ce={setQueryDefinition:(o,a,l)=>{te(o,a),ie(o);const i=[],d=[[null,[a,null,null,[],q()]]],c=[],u=[],h=[];l({select:(e,t)=>{const n=Q(e)?[R(i)+"",e]:[m(t)?e:t,n=>n(e,t)];return b(i,n),{as:e=>n[0]=e}},join:(e,t,n)=>{const s=m(n)||Q(t)?null:t,r=m(s)?t:n,o=[e,[e,s,Q(r)?r:e=>e(r),[],q()]];return b(d,o),{as:e=>o[0]=e}},where:(e,t,n)=>b(c,Q(e)?e:m(n)?n=>n(e)===t:s=>s(e,t)===n),group:(e,t,n,s,r)=>{const o=[e,[e,Q(t)?[t,n,s,r]:B(U,t)??[(e,t)=>t]]];return b(u,o),{as:e=>o[0]=e}},having:(e,t)=>b(h,Q(e)?e:n=>n(e)===t)});const g=q(i);if(z(g))return ce;const v=q(d);G(v,((e,[,t])=>I(B(v,t),(({3:t})=>m(e)?0:b(t,e)))));const C=q(u);let p=f;if(z(C)&&y(h))p=T;else{de(o,p,T);const r=q();G(C,((e,[t,n])=>P(J(r,t,N),[e,n])));const a=N();G(g,(e=>k(r,e)?0:P(a,e)));const l=q(),i=(a,l,i,d)=>I(a,(([c,u,g,v])=>{G(l,((o,[a])=>{const l=J(c,o,q),u=B(l,i),h=d?void 0:a;if(u!==h){const a=N([[u,h]]),d=j(l);H(l,i,h),O(B(r,o),(([r,o])=>{const i=((e,t,n,s,r,o=!1)=>{if(z(n))return;const[a,l,i,d]=r;return o||=m(e),O(s,(([n,s])=>{o||(e=m(n)?l?.(e,s,t++):m(s)?i?.(e,n,t--):d?.(e,s,n,t),o||=m(e))})),o?a(A(n),j(n)):e})(v[r],d,l,a,o);v[r]=m((r=>{const o=e(r);return(e=>e==t||e==n)(o)||o==s&&S(r)?o:void 0})(i))?null:i}))}})),z(u)||!w(h,(e=>e((e=>v[e]))))?T.delRow(o,g):m(g)?a[2]=T.addRow(o,v):T.setRow(o,g,v)}));le(p,o,p.addRowListener(o,null,((e,t,n,s)=>{const d=[],c=[],u=q(),h=p.hasRow(o,n);let g=!h;O(a,(e=>{const[t,r,a]=s(o,n,e);b(d,r),b(c,a),g||=t})),G(r,(e=>{const[t,,r]=s(o,n,e);(g||t)&&H(u,e,[r])})),g&&i(K(l,d,void 0,(([,e])=>(W(e,n),z(e)))),u,n,1),h&&i(K(l,c,(()=>{const e={};return O(a,(t=>e[t]=p.getCell(o,n,t))),[q(),N(),void 0,e]}),(([,e])=>{P(e,n)})),u,n)})))}de(o,r,p);const E=(e,t,n,s)=>{const l=e=>r.getCell(t,n,e);L(s,(t=>{const[n,,s,a,i]=B(v,t),d=s?.(l,e),[c,u]=B(i,e)??[];d!=c&&(m(u)||ae(o,u),H(i,e,m(d)?null:[d,...oe(o,1,r.addRowListener(n,d,(()=>E(e,n,d,a))))]))})),(e=>{const t=(t,n)=>r.getCell(...m(n)?[a,e,t]:t===a?[a,e,n]:[B(v,t)?.[0],B(B(v,t)?.[4],e)?.[0],n]);p.transaction((()=>w(c,(e=>e(t)))?G(g,((n,s)=>((e,t,n,s,r)=>m(r)?e.delCell(t,n,s,!0):e.setCell(t,n,s,r))(p,o,e,n,s(t,e)))):p.delRow(o,e)))})(e)},{3:M}=B(v,null);return p.transaction((()=>oe(o,1,r.addRowListener(a,null,((e,t,n)=>{r.hasRow(a,n)?E(n,a,n,M):(p.delRow(o,n),O(v,(({4:e})=>I(B(e,n),(([,t])=>{ae(o,t),H(e,n)})))))}))))),ce},delQueryDefinition:e=>(ie(e),ne(e),ce),getStore:Y,getQueryIds:Z,forEachQuery:$,hasQuery:_,getTableId:ee,addQueryIdsListener:e=>se((()=>e(ce))),delListener:e=>(X(e),ce),destroy:re,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:n,...s}=T.getListenerStats();return s}};var ue,he;return ue={[i]:[1,1],[i+v]:[0,1],[c]:[0,1],[u]:[0,1],[h]:[0,5],[d]:[1,2],[v]:[0,2],[g]:[1,3]},he=([e,t],n)=>{L(e?["get","has","forEach"]:["get"],(e=>ce[e+a+n]=(...t)=>T[e+n](...t))),ce["add"+a+n+o]=(...e)=>{return T["add"+n+o](...(s=e,0,r=t,s.slice(0,r)),((n,...s)=>e[t](ce,...s)),!0);var s,r}},((e,t)=>{e.map(t)})(x.entries(ue),(([e,t])=>he(t,e))),D(ce)})(r)),l.get(r))})();export{V as createQueries};
1
+ const e=e=>typeof e,t=e(""),n=e(!0),s=e(0),r=e(e),o="Listener",a="Result",l="Ids",i="Table",d="Row",c=d+"Count",u=d+l,h="Sorted"+d+l,g="Cell",v=g+l,w=Math.max,L=Math.min,f=isFinite,R=e=>null==e,y=(e,t,n)=>R(e)?n?.():t(e),T=t=>e(t)==r,b=e=>Array.isArray(e),C=e=>e.length,p=()=>{},S=(e,t)=>e.every(t),m=(e,t)=>e.forEach(t),I=e=>E(e,((e,t)=>e+t),0),Q=e=>0==C(e),E=(e,t,n)=>e.reduce(t,n),M=(e,...t)=>e.push(...t),x=Object,D=x.freeze,j=e=>e?.size??0,k=(e,t)=>e?.has(t)??!1,z=e=>R(e)||0==j(e),A=e=>[...e?.values()??[]],F=e=>e.clear(),O=(e,t)=>e?.forEach(t),W=(e,t)=>e?.delete(t),q=e=>new Map(e),B=(e,t)=>e?.get(t),G=(e,t)=>O(e,((e,n)=>t(n,e))),H=(e,t,n)=>R(n)?(W(e,t),e):e?.set(t,n),J=(e,t,n)=>(k(e,t)||H(e,t,n()),B(e,t)),K=(e,t,n,s,r=0)=>y((n?J:B)(e,t[r],r>C(t)-2?n:q),(o=>{if(r>C(t)-2)return s?.(o)&&H(e,t[r]),o;const a=K(o,t,n,s,r+1);return z(o)&&H(e,t[r]),a})),N=e=>new Set(b(e)||R(e)?e:[e]),P=(e,t)=>e?.add(t),U=q([["avg",[(e,t)=>I(e)/t,(e,t,n)=>e+(t-e)/(n+1),(e,t,n)=>e+(e-t)/(n-1),(e,t,n,s)=>e+(t-n)/s]],["max",[e=>w(...e),(e,t)=>w(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:w(t,e)]],["min",[e=>L(...e),(e,t)=>L(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:L(t,e)]],["sum",[e=>I(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,n)=>e-n+t]]]),V=(r=>{const l=new WeakMap;return r=>(l.has(r)||l.set(r,(r=>{const l=r.createStore,w=l(),L=l(),I=q(),{addListener:E,callListeners:V,delListener:X}=L,[Y,Z,$,_,ee,,,te,,ne,se,re,oe,ae]=((e,t,n,s,r)=>{const o=e.hasRow,a=q(),l=q(),i=q(),d=q(),c=q(),u=q(),h=(t,n,...s)=>{const r=J(u,t,N);return m(s,(t=>P(r,t)&&n&&e.callListener(t))),s},g=(t,...n)=>y(B(u,t),(s=>{m(Q(n)?A(s):n,(t=>{e.delListener(t),W(s,t)})),z(s)&&H(u,t)})),v=(e,t)=>{H(a,e,t),k(l,e)||(H(l,e,!0),H(d,e,q()),H(c,e,q()),r(i))},w=e=>{H(a,e),H(l,e),H(d,e),H(c,e),g(e),r(i)};return[()=>e,()=>{return e=a,[...e?.keys()??[]];var e},e=>G(l,e),e=>k(l,e),e=>B(a,e),e=>B(l,e),(e,t)=>H(l,e,t),v,(t,s,r,a,l)=>{v(t,s);const i=q(),u=q(),w=B(d,t),L=B(c,t),f=t=>{const r=n=>e.getCell(s,t,n),d=B(w,t),c=o(s,t)?n(a(r,t)):void 0;var h,g;if(d===c||b(d)&&b(c)&&(g=c,C(h=d)===C(g)&&S(h,((e,t)=>g[t]===e)))||H(i,t,[d,c]),!R(l)){const e=B(L,t),n=o(s,t)?l(r,t):void 0;e!=n&&H(u,t,n)}},y=e=>{r((()=>{O(i,(([,e],t)=>H(w,t,e))),O(u,((e,t)=>H(L,t,e)))}),i,u,w,L,e),F(i),F(u)};G(w,f),e.hasTable(s)&&m(e.getRowIds(s),(e=>{k(w,e)||f(e)})),y(!0),g(t),h(t,0,e.addRowListener(s,null,((e,t,n)=>f(n))),e.addTableListener(s,(()=>y())))},w,e=>s(e,i),()=>G(u,w),h,g]})(r,0,p,E,V),le=(e,t,...n)=>m(n,(n=>P(J(J(I,t,q),e,N),n))),ie=e=>{y(B(I,e),(e=>{G(e,((e,t)=>O(t,(t=>e.delListener(t))))),F(e)})),m([L,w],(t=>t.delTable(e)))},de=(e,t,n)=>le(t,e,t.addStartTransactionListener(n.startTransaction),t.addDidFinishTransactionListener((()=>n.finishTransaction()))),ce={setQueryDefinition:(o,a,l)=>{te(o,a),ie(o);const i=[],d=[[null,[a,null,null,[],q()]]],c=[],u=[],h=[];l({select:(e,t)=>{const n=T(e)?[C(i)+"",e]:[R(t)?e:t,n=>n(e,t)];return M(i,n),{as:e=>n[0]=e}},join:(e,t,n)=>{const s=R(n)||T(t)?null:t,r=R(s)?t:n,o=[e,[e,s,T(r)?r:e=>e(r),[],q()]];return M(d,o),{as:e=>o[0]=e}},where:(e,t,n)=>M(c,T(e)?e:R(n)?n=>n(e)===t:s=>s(e,t)===n),group:(e,t,n,s,r)=>{const o=[e,[e,T(t)?[t,n,s,r]:B(U,t)??[(e,t)=>t]]];return M(u,o),{as:e=>o[0]=e}},having:(e,t)=>M(h,T(e)?e:n=>n(e)===t)});const g=q(i);if(z(g))return ce;const v=q(d);G(v,((e,[,t])=>y(B(v,t),(({3:t})=>R(e)?0:M(t,e)))));const b=q(u);let p=w;if(z(b)&&Q(h))p=L;else{de(o,p,L);const r=q();G(b,((e,[t,n])=>P(J(r,t,N),[e,n])));const a=N();G(g,(e=>k(r,e)?0:P(a,e)));const l=q(),i=(a,l,i,d)=>y(a,(([c,u,g,v])=>{G(l,((o,[a])=>{const l=J(c,o,q),u=B(l,i),h=d?void 0:a;if(u!==h){const a=N([[u,h]]),d=j(l);H(l,i,h),O(B(r,o),(([r,o])=>{const i=((e,t,n,s,r,o=!1)=>{if(z(n))return;const[a,l,i,d]=r;return o||=R(e),O(s,(([n,s])=>{o||(e=R(n)?l?.(e,s,t++):R(s)?i?.(e,n,t--):d?.(e,s,n,t),o||=R(e))})),o?a(A(n),j(n)):e})(v[r],d,l,a,o);v[r]=R((r=>{const o=e(r);return(e=>e==t||e==n)(o)||o==s&&f(r)?o:void 0})(i))?null:i}))}})),z(u)||!S(h,(e=>e((e=>v[e]))))?L.delRow(o,g):R(g)?a[2]=L.addRow(o,v):L.setRow(o,g,v)}));le(p,o,p.addRowListener(o,null,((e,t,n,s)=>{const d=[],c=[],u=q(),h=p.hasRow(o,n);let g=!h;O(a,(e=>{const[t,r,a]=s(o,n,e);M(d,r),M(c,a),g||=t})),G(r,(e=>{const[t,,r]=s(o,n,e);(g||t)&&H(u,e,[r])})),g&&i(K(l,d,void 0,(([,e])=>(W(e,n),z(e)))),u,n,1),h&&i(K(l,c,(()=>{const e={};return O(a,(t=>e[t]=p.getCell(o,n,t))),[q(),N(),void 0,e]}),(([,e])=>{P(e,n)})),u,n)})))}de(o,r,p);const I=(e,t,n,s)=>{const l=e=>r.getCell(t,n,e);m(s,(t=>{const[n,,s,a,i]=B(v,t),d=s?.(l,e),[c,u]=B(i,e)??[];d!=c&&(R(u)||ae(o,u),H(i,e,R(d)?null:[d,...oe(o,1,r.addRowListener(n,d,(()=>I(e,n,d,a))))]))})),(e=>{const t=(t,n)=>r.getCell(...R(n)?[a,e,t]:t===a?[a,e,n]:[B(v,t)?.[0],B(B(v,t)?.[4],e)?.[0],n]);p.transaction((()=>S(c,(e=>e(t)))?G(g,((n,s)=>((e,t,n,s,r)=>R(r)?e.delCell(t,n,s,!0):e.setCell(t,n,s,r))(p,o,e,n,s(t,e)))):p.delRow(o,e)))})(e)},{3:E}=B(v,null);return p.transaction((()=>oe(o,1,r.addRowListener(a,null,((e,t,n)=>{r.hasRow(a,n)?I(n,a,n,E):(p.delRow(o,n),O(v,(({4:e})=>y(B(e,n),(([,t])=>{ae(o,t),H(e,n)})))))}))))),ce},delQueryDefinition:e=>(ie(e),ne(e),ce),getStore:Y,getQueryIds:Z,forEachQuery:$,hasQuery:_,getTableId:ee,addQueryIdsListener:e=>se((()=>e(ce))),delListener:e=>(X(e),ce),destroy:re,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:n,...s}=L.getListenerStats();return s}};var ue,he;return ue={[i]:[1,1],[i+v]:[0,1],[c]:[0,1],[u]:[0,1],[h]:[0,5],[d]:[1,2],[v]:[0,2],[g]:[1,3]},he=([e,t],n)=>{m(e?["get","has","forEach"]:["get"],(e=>ce[e+a+n]=(...t)=>L[e+n](...t))),ce["add"+a+n+o]=(...e)=>{return L["add"+n+o](...(s=e,0,r=t,s.slice(0,r)),((n,...s)=>e[t](ce,...s)),!0);var s,r}},((e,t)=>{e.map(t)})(x.entries(ue),(([e,t])=>he(t,e))),D(ce)})(r)),l.get(r))})();export{V as createQueries};
package/lib/queries.js.gz CHANGED
Binary file
@@ -1 +1 @@
1
- const e=e=>typeof e,t="",n=e(t),s=e=>null==e,r=(e,t,n)=>s(e)?n?.():t(e),o=e=>Array.isArray(e),i=(e,t)=>e.forEach(t),a=e=>e.length,l=(e,...t)=>e.push(...t),d=Object.freeze,c=(e,t)=>e?.has(t)??!1,u=e=>s(e)||0==(e=>e?.size??0)(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)=>s(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,s,o=0)=>r((n?v:w)(e,t[o],o>a(t)-2?n:g),(r=>{if(o>a(t)-2)return s?.(r)&&I(e,t[o]),r;const i=y(r,t,n,s,o+1);return u(r)&&I(e,t[o]),i})),b=e=>new Set(o(e)||s(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]=(e=>{let n;const[o,d]=(()=>{const e=[];let n=0;return[s=>(s?e.shift():null)??t+n++,t=>{E.test(t)&&a(e)<1e3&&l(e,t)}]})(),c=g();return[(e,s,r,i=[],a=(()=>[]))=>{n??=P;const l=o(1);return I(c,l,[e,s,r,i,a]),k(y(s,r??[t],b),l),l},(e,s,...r)=>i(((e,n=[t])=>{const s=[],r=(e,t)=>t==a(n)?l(s,e):null===n[t]?f(e,(e=>r(e,t+1))):i([n[t],null],(n=>r(w(e,n),t+1)));return r(e,0),s})(e,s),(e=>f(e,(e=>w(c,e)[0](n,...s??[],...r))))),e=>r(w(c,e),(([,n,s])=>(y(n,s??[t],void 0,(t=>(L(t,e),u(t)?1:0))),I(c,e),d(e),s))),e=>r(w(c,e),(([e,,t=[],r,o])=>{const l=(...d)=>{const c=a(d);c==a(t)?e(n,...d,...o(d)):s(t[c])?i(r[c]?.(...d)??[],(e=>l(...d,e))):l(...d,t[c])};l()}))]})(),[x,C,O,W,$,q,,,B,F,G,H]=((e,n,l,d,y)=>{const E=e.hasRow,T=g(),m=g(),S=g(),z=g(),A=g(),D=g(),M=(t,n,...s)=>{const r=v(D,t,b);return i(s,(t=>k(r,t)&&n&&e.callListener(t))),s},j=(t,...n)=>r(w(D,t),(s=>{i(0==a(n)?R(s):n,(t=>{e.delListener(t),L(s,t)})),u(s)&&I(D,t)})),x=(e,t)=>{I(T,e,t),c(m,e)||(I(m,e,[g(),g(),g(),g()]),I(z,e,g()),I(A,e,g()),y(S))},C=e=>{I(T,e),I(m,e),I(z,e),I(A,e),j(e),y(S)};return[()=>e,()=>{return e=T,[...e?.keys()??[]];var e},e=>p(m,e),e=>c(m,e),e=>w(T,e),e=>w(m,e),(e,t)=>I(m,e,t),x,(n,r,l,d,u)=>{x(n,r);const R=g(),L=g(),v=w(z,n),y=w(A,n),b=n=>{const i=t=>e.getCell(r,n,t),l=w(v,n),c=E(r,n)?(h=d(i,n),s(h)?void 0:h+t):void 0;var h,f,g,p;if(l===c||o(l)&&o(c)&&(g=c,a(f=l)===a(g)&&(p=(e,t)=>g[t]===e,f.every(p)))||I(R,n,[l,c]),!s(u)){const e=w(y,n),t=E(r,n)?u(i,n):void 0;e!=t&&I(L,n,t)}},k=e=>{l((()=>{f(R,(([,e],t)=>I(v,t,e))),f(L,((e,t)=>I(y,t,e)))}),R,L,v,y,e),h(R),h(L)};p(v,b),e.hasTable(r)&&i(e.getRowIds(r),(e=>{c(v,e)||b(e)})),k(!0),j(n),M(n,0,e.addRowListener(r,null,((e,t,n)=>b(n))),e.addTableListener(r,(()=>k())))},C,e=>d(e,S),()=>p(D,C),M,j]})(T,0,0,D,M),J=(e,t,n)=>r(q(e),(([r,,o])=>{if(!c(o,t)){const i=b();if($(e)!=N(e))k(i,t);else{let e=t;for(;!s(e)&&!c(i,e);)k(i,e),e=w(r,e)}if(n)return i;I(o,t,i)}return w(o,t)})),K=(e,t)=>r(q(e),(([,,e])=>I(e,t))),N=e=>w(m,e),P={setRelationshipDefinition:(o,i,a,l)=>{return I(m,o,a),B(o,i,((e,t)=>{const n=b(),i=b(),a=b(),[l,d]=q(o);f(t,(([e,t],R)=>{s(e)||(k(i,e),r(w(d,e),(t=>{L(t,R),u(t)&&I(d,e)}))),s(t)||(k(i,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(J(o,e),R)&&k(a,e)}))})),e(),f(n,(e=>M(S,[o,e]))),f(i,(e=>M(z,[o,e]))),f(a,(e=>{K(o,e),M(A,[o,e])}))}),e(d=l)==n?e=>e(d):d??(()=>t)),P;var d},delRelationshipDefinition:e=>(I(m,e),F(e),P),getStore:x,getRelationshipIds:C,forEachRelationship:e=>O((t=>e(t,(e=>T.forEachRow($(t),e))))),hasRelationship:W,getLocalTableId:$,getRemoteTableId:N,getRemoteRowId:(e,t)=>w(q(e)?.[0],t),getLocalRowIds:(e,t)=>R(w(q(e)?.[1],t)),getLinkedRowIds:(e,t)=>s(q(e))?[t]:R(J(e,t,!0)),addRelationshipIdsListener:G,addRemoteRowIdListener:(e,t,n)=>D(n,S,[e,t]),addLocalRowIdsListener:(e,t,n)=>D(n,z,[e,t]),addLinkedRowIdsListener:(e,t,n)=>(J(e,t),D(n,A,[e,t])),delListener:e=>(K(...j(e)??[]),P),destroy:H,getListenerStats:()=>({})};return d(P)})(T)),m.get(T))})();export{T as createRelationships};
1
+ const e=e=>typeof e,t="",n=e(t),s=e=>null==e,r=(e,t,n)=>s(e)?n?.():t(e),o=e=>Array.isArray(e),i=e=>e.length,a=(e,t)=>e.forEach(t),l=(e,...t)=>e.push(...t),d=Object.freeze,c=(e,t)=>e?.has(t)??!1,u=e=>s(e)||0==(e=>e?.size??0)(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)=>s(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,s,o=0)=>r((n?v:w)(e,t[o],o>i(t)-2?n:g),(r=>{if(o>i(t)-2)return s?.(r)&&I(e,t[o]),r;const a=y(r,t,n,s,o+1);return u(r)&&I(e,t[o]),a})),b=e=>new Set(o(e)||s(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]=(e=>{let n;const[o,d]=(()=>{const e=[];let n=0;return[s=>(s?e.shift():null)??t+n++,t=>{E.test(t)&&i(e)<1e3&&l(e,t)}]})(),c=g();return[(e,s,r,i=[],a=(()=>[]))=>{n??=P;const l=o(1);return I(c,l,[e,s,r,i,a]),k(y(s,r??[t],b),l),l},(e,s,...r)=>a(((e,n=[t])=>{const s=[],r=(e,t)=>t==i(n)?l(s,e):null===n[t]?f(e,(e=>r(e,t+1))):a([n[t],null],(n=>r(w(e,n),t+1)));return r(e,0),s})(e,s),(e=>f(e,(e=>w(c,e)[0](n,...s??[],...r))))),e=>r(w(c,e),(([,n,s])=>(y(n,s??[t],void 0,(t=>(L(t,e),u(t)?1:0))),I(c,e),d(e),s))),e=>r(w(c,e),(([e,,t=[],r,o])=>{const l=(...d)=>{const c=i(d);c==i(t)?e(n,...d,...o(d)):s(t[c])?a(r[c]?.(...d)??[],(e=>l(...d,e))):l(...d,t[c])};l()}))]})(),[x,C,O,W,$,q,,,B,F,G,H]=((e,n,l,d,y)=>{const E=e.hasRow,T=g(),m=g(),S=g(),z=g(),A=g(),D=g(),M=(t,n,...s)=>{const r=v(D,t,b);return a(s,(t=>k(r,t)&&n&&e.callListener(t))),s},j=(t,...n)=>r(w(D,t),(s=>{a(0==i(n)?R(s):n,(t=>{e.delListener(t),L(s,t)})),u(s)&&I(D,t)})),x=(e,t)=>{I(T,e,t),c(m,e)||(I(m,e,[g(),g(),g(),g()]),I(z,e,g()),I(A,e,g()),y(S))},C=e=>{I(T,e),I(m,e),I(z,e),I(A,e),j(e),y(S)};return[()=>e,()=>{return e=T,[...e?.keys()??[]];var e},e=>p(m,e),e=>c(m,e),e=>w(T,e),e=>w(m,e),(e,t)=>I(m,e,t),x,(n,r,l,d,u)=>{x(n,r);const R=g(),L=g(),v=w(z,n),y=w(A,n),b=n=>{const a=t=>e.getCell(r,n,t),l=w(v,n),c=E(r,n)?(h=d(a,n),s(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(R,n,[l,c]),!s(u)){const e=w(y,n),t=E(r,n)?u(a,n):void 0;e!=t&&I(L,n,t)}},k=e=>{l((()=>{f(R,(([,e],t)=>I(v,t,e))),f(L,((e,t)=>I(y,t,e)))}),R,L,v,y,e),h(R),h(L)};p(v,b),e.hasTable(r)&&a(e.getRowIds(r),(e=>{c(v,e)||b(e)})),k(!0),j(n),M(n,0,e.addRowListener(r,null,((e,t,n)=>b(n))),e.addTableListener(r,(()=>k())))},C,e=>d(e,S),()=>p(D,C),M,j]})(T,0,0,D,M),J=(e,t,n)=>r(q(e),(([r,,o])=>{if(!c(o,t)){const i=b();if($(e)!=N(e))k(i,t);else{let e=t;for(;!s(e)&&!c(i,e);)k(i,e),e=w(r,e)}if(n)return i;I(o,t,i)}return w(o,t)})),K=(e,t)=>r(q(e),(([,,e])=>I(e,t))),N=e=>w(m,e),P={setRelationshipDefinition:(o,i,a,l)=>{return I(m,o,a),B(o,i,((e,t)=>{const n=b(),i=b(),a=b(),[l,d]=q(o);f(t,(([e,t],R)=>{s(e)||(k(i,e),r(w(d,e),(t=>{L(t,R),u(t)&&I(d,e)}))),s(t)||(k(i,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(J(o,e),R)&&k(a,e)}))})),e(),f(n,(e=>M(S,[o,e]))),f(i,(e=>M(z,[o,e]))),f(a,(e=>{K(o,e),M(A,[o,e])}))}),e(d=l)==n?e=>e(d):d??(()=>t)),P;var d},delRelationshipDefinition:e=>(I(m,e),F(e),P),getStore:x,getRelationshipIds:C,forEachRelationship:e=>O((t=>e(t,(e=>T.forEachRow($(t),e))))),hasRelationship:W,getLocalTableId:$,getRemoteTableId:N,getRemoteRowId:(e,t)=>w(q(e)?.[0],t),getLocalRowIds:(e,t)=>R(w(q(e)?.[1],t)),getLinkedRowIds:(e,t)=>s(q(e))?[t]:R(J(e,t,!0)),addRelationshipIdsListener:G,addRemoteRowIdListener:(e,t,n)=>D(n,S,[e,t]),addLocalRowIdsListener:(e,t,n)=>D(n,z,[e,t]),addLinkedRowIdsListener:(e,t,n)=>(J(e,t),D(n,A,[e,t])),delListener:e=>(K(...j(e)??[]),P),destroy:H,getListenerStats:()=>({})};return d(P)})(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",g=h+"Count",f=h+c,T="Cell",V=T+c,b="Value",C=b+"s",S=b+c,v=e=>t+e,w=isFinite,I=(e,t)=>e instanceof t,m=e=>null==e,R=(e,t,s)=>m(e)?s?.():t(e),y=e=>e==s||e==l,J=t=>e(t)==a,L=(e,t,s)=>e.slice(t,s),p=(e,t)=>e.forEach(t),E=(e,t)=>e.map(t),F=e=>e.length,z=(e,...t)=>e.push(...t),O=Object,k=O.keys,A=O.isFrozen,M=O.freeze,N=e=>I(e,O)&&e.constructor==O,P=(e,t)=>!m(((e,t)=>R(e,(e=>e[t])))(e,t)),j=(e,t)=>(delete e[t],e),x=(e,t)=>E(O.entries(e),(([e,s])=>t(s,e))),D=e=>N(e)&&0==(e=>F(k(e)))(e),W=e=>e?.size??0,$=(e,t)=>e?.has(t)??!1,q=e=>m(e)||0==W(e),B=e=>e.clear(),G=(e,t)=>e?.forEach(t),H=(e,t)=>e?.delete(t),K=e=>new Map(e),Q=e=>[...e?.keys()??[]],U=(e,t)=>e?.get(t),X=(e,t)=>G(e,((e,s)=>t(s,e))),Y=(e,t,s)=>m(s)?(H(e,t),e):e?.set(t,s),Z=(e,t,s)=>($(e,t)||Y(e,t,s()),U(e,t)),_=(e,t,s,l=Y)=>(x(t,((t,l)=>s(e,l,t))),X(e,(s=>P(t,s)?0:l(e,s))),e),ee=(e,t,s)=>{const l={};return G(e,((e,n)=>{const a=t?t(e,n):e;!s?.(a,e)&&(l[n]=a)})),l},te=(e,t,s)=>ee(e,(e=>ee(e,t,s)),D),se=(e,t,s)=>ee(e,(e=>te(e,t,s)),D),le=(e,t)=>{const s=K();return G(e,((e,l)=>s.set(l,t?.(e)??e))),s},ne=e=>le(e,le),ae=e=>le(e,ne),re=(e,t,s,l,n=0)=>R((s?Z:U)(e,t[n],n>F(t)-2?s:K),(a=>{if(n>F(t)-2)return l?.(a)&&Y(e,t[n]),a;const r=re(a,t,s,l,n+1);return q(a)&&Y(e,t[n]),r})),oe=e=>new Set(Array.isArray(e)||m(e)?e:[e]),ce=(e,t)=>e?.add(t),ie=/^\d+$/,de=()=>{const e=[];let s=0;return[l=>(l?e.shift():null)??t+s++,t=>{ie.test(t)&&F(e)<1e3&&z(e,t)}]},ue=e=>[e,e],he=()=>[K(),K()],ge=e=>[...e],fe=([e,t])=>e===t,Te=t=>{const s=e(t);return y(s)||s==n&&w(t)?s:void 0},Ve=(e,t,s,l,n)=>m(n)?e.delCell(t,s,l,!0):e.setCell(t,s,l,n),be=(e,t,s)=>m(s)?e.delValue(t):e.setValue(t,s),Ce=e=>JSON.stringify(e,((e,t)=>I(t,Map)?O.fromEntries([...t]):t)),Se=JSON.parse,ve=(e,t,s)=>m(e)||!N(e)||D(e)||A(e)?(s?.(),!1):(x(e,((s,l)=>{t(s,l)||j(e,l)})),!D(e)),we=(e,t,s)=>Y(e,t,U(e,t)==-s?void 0:s),Ie=()=>{let e,s,l=!1,a=!1,c=0;const w=K(),I=K(),O=K(),k=K(),A=K(),N=K(),ie=K(),me=K(),Re=K(),ye=K(),Je=K(),Le=K(),pe=K(),Ee=K(),Fe=oe(),ze=K(),Oe=K(),ke=K(),Ae=K(),Me=he(),Ne=he(),Pe=he(),je=he(),xe=he(),De=he(),We=he(),$e=he(),qe=he(),Be=he(),Ge=he(),He=he(),Ke=he(),Qe=he(),Ue=he(),Xe=K(),Ye=he(),[Ze,_e,et,tt]=(e=>{let s;const[l,n]=de(),a=K();return[(e,n,r,o=[],c=(()=>[]))=>{s??=Ts;const i=l(1);return Y(a,i,[e,n,r,o,c]),ce(re(n,r??[t],oe),i),i},(e,l,...n)=>p(((e,s=[t])=>{const l=[],n=(e,t)=>t==F(s)?z(l,e):null===s[t]?G(e,(e=>n(e,t+1))):p([s[t],null],(s=>n(U(e,s),t+1)));return n(e,0),l})(e,l),(e=>G(e,(e=>U(a,e)[0](s,...l??[],...n))))),e=>R(U(a,e),(([,s,l])=>(re(s,l??[t],void 0,(t=>(H(t,e),q(t)?1:0))),Y(a,e),n(e),l))),e=>R(U(a,e),(([e,,t=[],l,n])=>{const a=(...r)=>{const o=F(r);o==F(t)?e(s,...r,...n(r)):m(t[o])?p(l[o]?.(...r)??[],(e=>a(...r,e))):a(...r,t[o])};a()}))]})(),st=e=>{if(!ve(e,((e,t)=>[r,o].includes(t))))return!1;const t=e[r];return!(!y(t)&&t!=n||(Te(e[o])!=t&&j(e,o),0))},lt=(t,s)=>(!e||$(Je,s)||kt(s))&&ve(t,((e,t)=>nt(s,t,e)),(()=>kt(s))),nt=(e,t,s,l)=>ve(l?s:ct(s,e,t),((l,n)=>R(at(e,t,n,l),(e=>(s[n]=e,!0)),(()=>!1))),(()=>kt(e,t))),at=(t,s,l,n)=>e?R(U(U(Je,t),l),(e=>Te(n)!=e[r]?kt(t,s,l,n,e[o]):n),(()=>kt(t,s,l,n))):m(Te(n))?kt(t,s,l,n):n,rt=(e,t)=>ve(t?e:it(e),((t,s)=>R(ot(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>At())),ot=(e,t)=>s?R(U(pe,e),(s=>Te(t)!=s[r]?At(e,t,s[o]):t),(()=>At(e,t))):m(Te(t))?At(e,t):t,ct=(e,t,s)=>(R(U(Le,t),(([l,n])=>{G(l,((t,s)=>{P(e,s)||(e[s]=t)})),G(n,(l=>{P(e,l)||kt(t,s,l)}))})),e),it=e=>(s&&(G(Ee,((t,s)=>{P(e,s)||(e[s]=t)})),G(Fe,(t=>{P(e,t)||At(t)}))),e),dt=e=>_(Je,e,((e,t,s)=>{const l=K(),n=oe();_(Z(Je,t,K),s,((e,t,s)=>{Y(e,t,s),R(s[o],(e=>Y(l,t,e)),(()=>ce(n,t)))})),Y(Le,t,[l,n])}),((e,t)=>{Y(Je,t),Y(Le,t)})),ut=e=>_(pe,e,((e,t,s)=>{Y(pe,t,s),R(s[o],(e=>Y(Ee,t,e)),(()=>ce(Fe,t)))}),((e,t)=>{Y(pe,t),Y(Ee,t),H(Fe,t)})),ht=e=>D(e)?rs():ts(e),gt=e=>_(ke,e,((e,t,s)=>ft(t,s)),((e,t)=>mt(t))),ft=(e,t)=>_(Z(ke,e,(()=>(Lt(e,1),Y(ze,e,de()),Y(Oe,e,K()),K()))),t,((t,s,l)=>Tt(e,t,s,l)),((t,s)=>Rt(e,t,s))),Tt=(e,t,s,l,n)=>_(Z(t,s,(()=>(pt(e,s,1),K()))),l,((t,l,n)=>Vt(e,s,t,l,n)),((l,a)=>yt(e,t,s,l,a,n))),Vt=(e,t,s,l,n)=>{$(s,l)||Et(e,t,l,1);const a=U(s,l);n!==a&&(Ft(e,t,l,a,n),Y(s,l,n))},bt=(e,t,s,l,n)=>R(U(t,s),(t=>Vt(e,s,t,l,n)),(()=>Tt(e,t,s,ct({[l]:n},e,s)))),Ct=e=>D(e)?is():ss(e),St=e=>_(Ae,e,((e,t,s)=>vt(t,s)),((e,t)=>Jt(t))),vt=(e,t)=>{$(Ae,e)||zt(e,1);const s=U(Ae,e);t!==s&&(Ot(e,s,t),Y(Ae,e,t))},wt=(e,t)=>{const[s]=U(ze,e),l=s(t);return $(U(ke,e),l)?wt(e,t):l},It=e=>U(ke,e)??ft(e,{}),mt=e=>ft(e,{}),Rt=(e,t,s)=>{const[,l]=U(ze,e);l(s),Tt(e,t,s,{},!0)},yt=(e,t,s,l,n,a)=>{const r=U(U(Le,e)?.[0],n);if(!m(r)&&!a)return Vt(e,s,l,n,r);const o=t=>{Ft(e,s,t,U(l,t)),Et(e,s,t,-1),Y(l,t)};m(r)?o(n):X(l,o),q(l)&&(pt(e,s,-1),q(Y(t,s))&&(Lt(e,-1),Y(ke,e),Y(ze,e),Y(Oe,e)))},Jt=e=>{const t=U(Ee,e);if(!m(t))return vt(e,t);Ot(e,U(Ae,e)),zt(e,-1),Y(Ae,e)},Lt=(e,t)=>we(w,e,t),pt=(e,t,s)=>we(Z(k,e,K),t,s)&&Y(O,e,Z(O,e,(()=>0))+s),Et=(e,t,s,l)=>{const n=U(Oe,e),a=U(n,s)??0;(0==a&&1==l||1==a&&-1==l)&&we(Z(I,e,K),s,l),Y(n,s,a!=-l?a+l:null),we(Z(Z(A,e,K),t,K),s,l)},Ft=(e,t,s,l,n)=>Z(Z(Z(N,e,K),t,K),s,(()=>[l,0]))[1]=n,zt=(e,t)=>we(ie,e,t),Ot=(e,t,s)=>Z(me,e,(()=>[t,0]))[1]=s,kt=(e,t,s,l,n)=>(z(Z(Z(Z(Re,e,K),t,K),s,(()=>[])),l),n),At=(e,t,s)=>(z(Z(ye,e,(()=>[])),t),s),Mt=(e,t,s)=>R(U(U(U(N,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...ue(Yt(e,t,s))])),Nt=e=>R(U(me,e),(([e,t])=>[!0,e,t]),(()=>[!1,...ue(es(e))])),Pt=e=>q(Re)||q(Ge[e])?0:G(e?ae(Re):Re,((t,s)=>G(t,((t,l)=>G(t,((t,n)=>_e(Ge[e],[s,l,n],t))))))),jt=e=>q(ye)||q(He[e])?0:G(e?le(ye):ye,((t,s)=>_e(He[e],[s],t))),xt=(e,t,s)=>{if(!q(t))return _e(e,s,(()=>ee(t))),1},Dt=e=>{const t=q(We[e]),s=q(qe[e])&&q(je[e])&&q(xe[e])&&q(De[e])&&t&&q(Ne[e]),l=q(Be[e])&&q($e[e])&&q(Pe[e])&&q(Me[e]);if(!s||!l){const n=e?[le(w),ne(I),le(O),ne(k),ae(A),ae(N)]:[w,I,O,k,A,N];if(!s){xt(Ne[e],n[0]),G(n[1],((t,s)=>xt(je[e],t,[s]))),G(n[2],((t,s)=>{0!=t&&_e(xe[e],[s],Kt(s))}));const s=oe();G(n[3],((l,n)=>{xt(De[e],l,[n])&&!t&&(_e(We[e],[n,null]),ce(s,n))})),t||G(n[5],((t,l)=>{if(!$(s,l)){const s=oe();G(t,(e=>G(e,(([t,l],n)=>l!==t?ce(s,n):H(e,n))))),G(s,(t=>_e(We[e],[l,t])))}})),G(n[4],((t,s)=>G(t,((t,l)=>xt(qe[e],t,[s,l])))))}if(!l){let t;G(n[5],((s,l)=>{let n;G(s,((s,a)=>{let r;G(s,(([s,o],c)=>{o!==s&&(_e(Be[e],[l,a,c],o,s,Mt),t=n=r=1)})),r&&_e($e[e],[l,a],Mt)})),n&&_e(Pe[e],[l],Mt)})),t&&_e(Me[e],void 0,Mt)}}},Wt=e=>{const t=q(Qe[e]),s=q(Ue[e])&&q(Ke[e]);if(!t||!s){const l=e?[le(ie),le(me)]:[ie,me];if(t||xt(Qe[e],l[0]),!s){let t;G(l[1],(([s,l],n)=>{l!==s&&(_e(Ue[e],[n],l,s,Nt),t=1)})),t&&_e(Ke[e],void 0,Nt)}}},$t=(e,...t)=>(hs((()=>e(...E(t,v)))),Ts),qt=()=>[ee(N,((e,t)=>-1===U(w,t)?null:ee(e,((e,s)=>-1===U(U(k,t),s)?null:ee(e,(([,e])=>e??null),((e,t)=>fe(t)))),D)),D),ee(me,(([,e])=>e??null),((e,t)=>fe(t)))],Bt=()=>({cellsTouched:l,valuesTouched:a,changedCells:se(N,ge,fe),invalidCells:se(Re),changedValues:ee(me,ge,fe),invalidValues:ee(ye),changedTableIds:ee(w),changedRowIds:te(k),changedCellIds:se(A),changedValueIds:ee(ie)}),Gt=()=>se(ke),Ht=()=>Q(ke),Kt=e=>W(U(ke,v(e))),Qt=e=>Q(U(ke,v(e))),Ut=(e,t,s,l=0,n)=>{return E(L((r=U(ke,v(e)),o=(e,s)=>[m(t)?s:U(e,v(t)),s],a=([e],[t])=>((e??0)<(t??0)?-1:1)*(s?-1:1),E([...r?.entries()??[]],(([e,t])=>o(t,e))).sort(a)),l,m(n)?n:l+n),(([,e])=>e));var a,r,o},Xt=(e,t)=>Q(U(U(ke,v(e)),v(t))),Yt=(e,t,s)=>U(U(U(ke,v(e)),v(t)),v(s)),Zt=()=>ee(Ae),_t=()=>Q(Ae),es=e=>U(Ae,v(e)),ts=e=>$t((()=>(e=>ve(e,lt,kt))(e)?gt(e):0)),ss=e=>$t((()=>rt(e)?St(e):0)),ls=e=>{try{ht(Se(e))}catch{}return Ts},ns=t=>$t((()=>{if((e=ve(t,(e=>ve(e,st))))&&(dt(t),!q(ke))){const e=Gt();rs(),ts(e)}})),as=e=>$t((()=>{if(s=(e=>ve(e,st))(e)){const t=Zt();us(),is(),s=!0,ut(e),ss(t)}})),rs=()=>$t((()=>gt({}))),os=e=>$t((e=>$(ke,e)?mt(e):0),e),cs=(e,t)=>$t(((e,t)=>R(U(ke,e),(s=>$(s,t)?Rt(e,s,t):0))),e,t),is=()=>$t((()=>St({}))),ds=()=>$t((()=>{dt({}),e=!1})),us=()=>$t((()=>{ut({}),s=!1})),hs=(e,t)=>{if(-1!=c){gs();const s=e();return fs(t),s}},gs=()=>(-1!=c&&c++,1==c&&_e(Xe,void 0,qt,Bt),Ts),fs=e=>(c>0&&(c--,0==c&&(l=!q(N),a=!q(me),c=1,Pt(1),l&&Dt(1),jt(1),a&&Wt(1),e?.(qt,Bt)&&(G(N,((e,t)=>G(e,((e,s)=>G(e,(([e],l)=>Ve(Ts,t,s,l,e))))))),G(me,(([e],t)=>be(Ts,t,e))),l=a=!1),_e(Ye[0],void 0,qt,Bt),c=-1,Pt(0),l&&Dt(0),jt(0),a&&Wt(0),_e(Ye[1],void 0,qt,Bt),c=0,l=a=!1,p([w,I,O,k,A,N,Re,ie,me,ye],B))),Ts),Ts={getContent:()=>[Gt(),Zt()],getTables:Gt,getTableIds:Ht,getTable:e=>te(U(ke,v(e))),getTableCellIds:e=>Q(U(Oe,v(e))),getRowCount:Kt,getRowIds:Qt,getSortedRowIds:Ut,getRow:(e,t)=>ee(U(U(ke,v(e)),v(t))),getCellIds:Xt,getCell:Yt,getValues:Zt,getValueIds:_t,getValue:es,hasTables:()=>!q(ke),hasTable:e=>$(ke,v(e)),hasTableCell:(e,t)=>$(U(Oe,v(e)),v(t)),hasRow:(e,t)=>$(U(ke,v(e)),v(t)),hasCell:(e,t,s)=>$(U(U(ke,v(e)),v(t)),v(s)),hasValues:()=>!q(Ae),hasValue:e=>$(Ae,v(e)),getTablesJson:()=>Ce(ke),getValuesJson:()=>Ce(Ae),getJson:()=>Ce([ke,Ae]),getTablesSchemaJson:()=>Ce(Je),getValuesSchemaJson:()=>Ce(pe),getSchemaJson:()=>Ce([Je,pe]),hasTablesSchema:()=>e,hasValuesSchema:()=>s,setContent:([e,t])=>$t((()=>{(D(e)?rs:ts)(e),(D(t)?is:ss)(t)})),setTables:ts,setTable:(e,t)=>$t((e=>lt(t,e)?ft(e,t):0),e),setRow:(e,t,s)=>$t(((e,t)=>nt(e,t,s)?Tt(e,It(e),t,s):0),e,t),addRow:(e,t,s=!0)=>hs((()=>{let l;return nt(e,l,t)&&(e=v(e),Tt(e,It(e),l=wt(e,s?1:0),t)),l})),setPartialRow:(e,t,s)=>$t(((e,t)=>{if(nt(e,t,s,1)){const l=It(e);x(s,((s,n)=>bt(e,l,t,n,s)))}}),e,t),setCell:(e,t,s,l)=>$t(((e,t,s)=>R(at(e,t,s,J(l)?l(Yt(e,t,s)):l),(l=>bt(e,It(e),t,s,l)))),e,t,s),setValues:ss,setPartialValues:e=>$t((()=>rt(e,1)?x(e,((e,t)=>vt(t,e))):0)),setValue:(e,t)=>$t((e=>R(ot(e,J(t)?t(es(e)):t),(t=>vt(e,t)))),e),setTransactionChanges:e=>$t((()=>{x(e[0],((e,t)=>m(e)?os(t):x(e,((e,s)=>m(e)?cs(t,s):x(e,((e,l)=>Ve(Ts,t,s,l,e))))))),x(e[1],((e,t)=>be(Ts,t,e)))})),setTablesJson:ls,setValuesJson:e=>{try{Ct(Se(e))}catch{}return Ts},setJson:e=>$t((()=>{try{const[t,s]=Se(e);ht(t),Ct(s)}catch{ls(e)}})),setTablesSchema:ns,setValuesSchema:as,setSchema:(e,t)=>$t((()=>{ns(e),as(t)})),delTables:rs,delTable:os,delRow:cs,delCell:(e,t,s,l)=>$t(((e,t,s)=>R(U(ke,e),(n=>R(U(n,t),(a=>$(a,s)?yt(e,n,t,a,s,l):0))))),e,t,s),delValues:is,delValue:e=>$t((e=>$(Ae,e)?Jt(e):0),e),delTablesSchema:ds,delValuesSchema:us,delSchema:()=>$t((()=>{ds(),us()})),transaction:hs,startTransaction:gs,finishTransaction:fs,forEachTable:e=>G(ke,((t,s)=>e(s,(e=>G(t,((t,s)=>e(s,(e=>X(t,e))))))))),forEachTableCell:(e,t)=>X(U(Oe,v(e)),t),forEachRow:(e,t)=>G(U(ke,v(e)),((e,s)=>t(s,(t=>X(e,t))))),forEachCell:(e,t,s)=>X(U(U(ke,v(e)),v(t)),s),forEachValue:e=>X(Ae,e),addSortedRowIdsListener:(e,t,s,l,n,a,r)=>{let o=Ut(e,t,s,l,n);return Ze((()=>{const r=Ut(e,t,s,l,n);var c,i,d;i=o,F(c=r)===F(i)&&(d=(e,t)=>i[t]===e,c.every(d))||(o=r,a(Ts,e,t,s,l,n,o))}),We[r?1:0],[e,t],[Ht])},addStartTransactionListener:e=>Ze(e,Xe),addWillFinishTransactionListener:e=>Ze(e,Ye[0]),addDidFinishTransactionListener:e=>Ze(e,Ye[1]),callListener:e=>(tt(e),Ts),delListener:e=>(et(e),Ts),getListenerStats:()=>({}),createStore:Ie,addListener:Ze,callListeners:_e};return x({[d]:[0,Me],[u]:[0,Ne],[i]:[1,Pe,[Ht]],[i+V]:[1,je,[Ht]],[g]:[1,xe,[Ht]],[f]:[1,De,[Ht]],[h]:[2,$e,[Ht,Qt]],[V]:[2,qe,[Ht,Qt]],[T]:[3,Be,[Ht,Qt,Xt],e=>ue(Yt(...e))],InvalidCell:[3,Ge],[C]:[0,Ke],[S]:[0,Qe],[b]:[1,Ue,[_t],e=>ue(es(e[0]))],InvalidValue:[1,He]},(([e,t,s,l],n)=>{Ts["add"+n+"Listener"]=(...n)=>Ze(n[e],t[n[e+1]?1:0],e>0?L(n,0,e):void 0,s,l)})),M(Ts)};export{Ie 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",g=h+"Count",f=h+c,T="Cell",V=T+c,b="Value",C=b+"s",S=b+c,v=e=>t+e,w=isFinite,I=(e,t)=>e instanceof t,m=e=>null==e,R=(e,t,s)=>m(e)?s?.():t(e),y=e=>e==s||e==l,J=t=>e(t)==a,L=(e,t,s)=>e.slice(t,s),p=e=>e.length,E=(e,t)=>e.forEach(t),F=(e,t)=>e.map(t),z=(e,...t)=>e.push(...t),O=Object,k=O.keys,A=O.isFrozen,M=O.freeze,N=e=>I(e,O)&&e.constructor==O,P=(e,t)=>!m(((e,t)=>R(e,(e=>e[t])))(e,t)),j=(e,t)=>(delete e[t],e),x=(e,t)=>F(O.entries(e),(([e,s])=>t(s,e))),D=e=>N(e)&&0==(e=>p(k(e)))(e),W=e=>e?.size??0,$=(e,t)=>e?.has(t)??!1,q=e=>m(e)||0==W(e),B=e=>e.clear(),G=(e,t)=>e?.forEach(t),H=(e,t)=>e?.delete(t),K=e=>new Map(e),Q=e=>[...e?.keys()??[]],U=(e,t)=>e?.get(t),X=(e,t)=>G(e,((e,s)=>t(s,e))),Y=(e,t,s)=>m(s)?(H(e,t),e):e?.set(t,s),Z=(e,t,s)=>($(e,t)||Y(e,t,s()),U(e,t)),_=(e,t,s,l=Y)=>(x(t,((t,l)=>s(e,l,t))),X(e,(s=>P(t,s)?0:l(e,s))),e),ee=(e,t,s)=>{const l={};return G(e,((e,n)=>{const a=t?t(e,n):e;!s?.(a,e)&&(l[n]=a)})),l},te=(e,t,s)=>ee(e,(e=>ee(e,t,s)),D),se=(e,t,s)=>ee(e,(e=>te(e,t,s)),D),le=(e,t)=>{const s=K();return G(e,((e,l)=>s.set(l,t?.(e)??e))),s},ne=e=>le(e,le),ae=e=>le(e,ne),re=(e,t,s,l,n=0)=>R((s?Z:U)(e,t[n],n>p(t)-2?s:K),(a=>{if(n>p(t)-2)return l?.(a)&&Y(e,t[n]),a;const r=re(a,t,s,l,n+1);return q(a)&&Y(e,t[n]),r})),oe=e=>new Set(Array.isArray(e)||m(e)?e:[e]),ce=(e,t)=>e?.add(t),ie=/^\d+$/,de=()=>{const e=[];let s=0;return[l=>(l?e.shift():null)??t+s++,t=>{ie.test(t)&&p(e)<1e3&&z(e,t)}]},ue=e=>[e,e],he=()=>[K(),K()],ge=e=>[...e],fe=([e,t])=>e===t,Te=t=>{const s=e(t);return y(s)||s==n&&w(t)?s:void 0},Ve=(e,t,s,l,n)=>m(n)?e.delCell(t,s,l,!0):e.setCell(t,s,l,n),be=(e,t,s)=>m(s)?e.delValue(t):e.setValue(t,s),Ce=e=>JSON.stringify(e,((e,t)=>I(t,Map)?O.fromEntries([...t]):t)),Se=JSON.parse,ve=(e,t,s)=>m(e)||!N(e)||D(e)||A(e)?(s?.(),!1):(x(e,((s,l)=>{t(s,l)||j(e,l)})),!D(e)),we=(e,t,s)=>Y(e,t,U(e,t)==-s?void 0:s),Ie=()=>{let e,s,l=!1,a=!1,c=0;const w=K(),I=K(),O=K(),k=K(),A=K(),N=K(),ie=K(),me=K(),Re=K(),ye=K(),Je=K(),Le=K(),pe=K(),Ee=K(),Fe=oe(),ze=K(),Oe=K(),ke=K(),Ae=K(),Me=he(),Ne=he(),Pe=he(),je=he(),xe=he(),De=he(),We=he(),$e=he(),qe=he(),Be=he(),Ge=he(),He=he(),Ke=he(),Qe=he(),Ue=he(),Xe=K(),Ye=he(),[Ze,_e,et,tt]=(e=>{let s;const[l,n]=de(),a=K();return[(e,n,r,o=[],c=(()=>[]))=>{s??=Ts;const i=l(1);return Y(a,i,[e,n,r,o,c]),ce(re(n,r??[t],oe),i),i},(e,l,...n)=>E(((e,s=[t])=>{const l=[],n=(e,t)=>t==p(s)?z(l,e):null===s[t]?G(e,(e=>n(e,t+1))):E([s[t],null],(s=>n(U(e,s),t+1)));return n(e,0),l})(e,l),(e=>G(e,(e=>U(a,e)[0](s,...l??[],...n))))),e=>R(U(a,e),(([,s,l])=>(re(s,l??[t],void 0,(t=>(H(t,e),q(t)?1:0))),Y(a,e),n(e),l))),e=>R(U(a,e),(([e,,t=[],l,n])=>{const a=(...r)=>{const o=p(r);o==p(t)?e(s,...r,...n(r)):m(t[o])?E(l[o]?.(...r)??[],(e=>a(...r,e))):a(...r,t[o])};a()}))]})(),st=e=>{if(!ve(e,((e,t)=>[r,o].includes(t))))return!1;const t=e[r];return!(!y(t)&&t!=n||(Te(e[o])!=t&&j(e,o),0))},lt=(t,s)=>(!e||$(Je,s)||kt(s))&&ve(t,((e,t)=>nt(s,t,e)),(()=>kt(s))),nt=(e,t,s,l)=>ve(l?s:ct(s,e,t),((l,n)=>R(at(e,t,n,l),(e=>(s[n]=e,!0)),(()=>!1))),(()=>kt(e,t))),at=(t,s,l,n)=>e?R(U(U(Je,t),l),(e=>Te(n)!=e[r]?kt(t,s,l,n,e[o]):n),(()=>kt(t,s,l,n))):m(Te(n))?kt(t,s,l,n):n,rt=(e,t)=>ve(t?e:it(e),((t,s)=>R(ot(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>At())),ot=(e,t)=>s?R(U(pe,e),(s=>Te(t)!=s[r]?At(e,t,s[o]):t),(()=>At(e,t))):m(Te(t))?At(e,t):t,ct=(e,t,s)=>(R(U(Le,t),(([l,n])=>{G(l,((t,s)=>{P(e,s)||(e[s]=t)})),G(n,(l=>{P(e,l)||kt(t,s,l)}))})),e),it=e=>(s&&(G(Ee,((t,s)=>{P(e,s)||(e[s]=t)})),G(Fe,(t=>{P(e,t)||At(t)}))),e),dt=e=>_(Je,e,((e,t,s)=>{const l=K(),n=oe();_(Z(Je,t,K),s,((e,t,s)=>{Y(e,t,s),R(s[o],(e=>Y(l,t,e)),(()=>ce(n,t)))})),Y(Le,t,[l,n])}),((e,t)=>{Y(Je,t),Y(Le,t)})),ut=e=>_(pe,e,((e,t,s)=>{Y(pe,t,s),R(s[o],(e=>Y(Ee,t,e)),(()=>ce(Fe,t)))}),((e,t)=>{Y(pe,t),Y(Ee,t),H(Fe,t)})),ht=e=>D(e)?rs():ts(e),gt=e=>_(ke,e,((e,t,s)=>ft(t,s)),((e,t)=>mt(t))),ft=(e,t)=>_(Z(ke,e,(()=>(Lt(e,1),Y(ze,e,de()),Y(Oe,e,K()),K()))),t,((t,s,l)=>Tt(e,t,s,l)),((t,s)=>Rt(e,t,s))),Tt=(e,t,s,l,n)=>_(Z(t,s,(()=>(pt(e,s,1),K()))),l,((t,l,n)=>Vt(e,s,t,l,n)),((l,a)=>yt(e,t,s,l,a,n))),Vt=(e,t,s,l,n)=>{$(s,l)||Et(e,t,l,1);const a=U(s,l);n!==a&&(Ft(e,t,l,a,n),Y(s,l,n))},bt=(e,t,s,l,n)=>R(U(t,s),(t=>Vt(e,s,t,l,n)),(()=>Tt(e,t,s,ct({[l]:n},e,s)))),Ct=e=>D(e)?is():ss(e),St=e=>_(Ae,e,((e,t,s)=>vt(t,s)),((e,t)=>Jt(t))),vt=(e,t)=>{$(Ae,e)||zt(e,1);const s=U(Ae,e);t!==s&&(Ot(e,s,t),Y(Ae,e,t))},wt=(e,t)=>{const[s]=U(ze,e),l=s(t);return $(U(ke,e),l)?wt(e,t):l},It=e=>U(ke,e)??ft(e,{}),mt=e=>ft(e,{}),Rt=(e,t,s)=>{const[,l]=U(ze,e);l(s),Tt(e,t,s,{},!0)},yt=(e,t,s,l,n,a)=>{const r=U(U(Le,e)?.[0],n);if(!m(r)&&!a)return Vt(e,s,l,n,r);const o=t=>{Ft(e,s,t,U(l,t)),Et(e,s,t,-1),Y(l,t)};m(r)?o(n):X(l,o),q(l)&&(pt(e,s,-1),q(Y(t,s))&&(Lt(e,-1),Y(ke,e),Y(ze,e),Y(Oe,e)))},Jt=e=>{const t=U(Ee,e);if(!m(t))return vt(e,t);Ot(e,U(Ae,e)),zt(e,-1),Y(Ae,e)},Lt=(e,t)=>we(w,e,t),pt=(e,t,s)=>we(Z(k,e,K),t,s)&&Y(O,e,Z(O,e,(()=>0))+s),Et=(e,t,s,l)=>{const n=U(Oe,e),a=U(n,s)??0;(0==a&&1==l||1==a&&-1==l)&&we(Z(I,e,K),s,l),Y(n,s,a!=-l?a+l:null),we(Z(Z(A,e,K),t,K),s,l)},Ft=(e,t,s,l,n)=>Z(Z(Z(N,e,K),t,K),s,(()=>[l,0]))[1]=n,zt=(e,t)=>we(ie,e,t),Ot=(e,t,s)=>Z(me,e,(()=>[t,0]))[1]=s,kt=(e,t,s,l,n)=>(z(Z(Z(Z(Re,e,K),t,K),s,(()=>[])),l),n),At=(e,t,s)=>(z(Z(ye,e,(()=>[])),t),s),Mt=(e,t,s)=>R(U(U(U(N,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...ue(Yt(e,t,s))])),Nt=e=>R(U(me,e),(([e,t])=>[!0,e,t]),(()=>[!1,...ue(es(e))])),Pt=e=>q(Re)||q(Ge[e])?0:G(e?ae(Re):Re,((t,s)=>G(t,((t,l)=>G(t,((t,n)=>_e(Ge[e],[s,l,n],t))))))),jt=e=>q(ye)||q(He[e])?0:G(e?le(ye):ye,((t,s)=>_e(He[e],[s],t))),xt=(e,t,s)=>{if(!q(t))return _e(e,s,(()=>ee(t))),1},Dt=e=>{const t=q(We[e]),s=q(qe[e])&&q(je[e])&&q(xe[e])&&q(De[e])&&t&&q(Ne[e]),l=q(Be[e])&&q($e[e])&&q(Pe[e])&&q(Me[e]);if(!s||!l){const n=e?[le(w),ne(I),le(O),ne(k),ae(A),ae(N)]:[w,I,O,k,A,N];if(!s){xt(Ne[e],n[0]),G(n[1],((t,s)=>xt(je[e],t,[s]))),G(n[2],((t,s)=>{0!=t&&_e(xe[e],[s],Kt(s))}));const s=oe();G(n[3],((l,n)=>{xt(De[e],l,[n])&&!t&&(_e(We[e],[n,null]),ce(s,n))})),t||G(n[5],((t,l)=>{if(!$(s,l)){const s=oe();G(t,(e=>G(e,(([t,l],n)=>l!==t?ce(s,n):H(e,n))))),G(s,(t=>_e(We[e],[l,t])))}})),G(n[4],((t,s)=>G(t,((t,l)=>xt(qe[e],t,[s,l])))))}if(!l){let t;G(n[5],((s,l)=>{let n;G(s,((s,a)=>{let r;G(s,(([s,o],c)=>{o!==s&&(_e(Be[e],[l,a,c],o,s,Mt),t=n=r=1)})),r&&_e($e[e],[l,a],Mt)})),n&&_e(Pe[e],[l],Mt)})),t&&_e(Me[e],void 0,Mt)}}},Wt=e=>{const t=q(Qe[e]),s=q(Ue[e])&&q(Ke[e]);if(!t||!s){const l=e?[le(ie),le(me)]:[ie,me];if(t||xt(Qe[e],l[0]),!s){let t;G(l[1],(([s,l],n)=>{l!==s&&(_e(Ue[e],[n],l,s,Nt),t=1)})),t&&_e(Ke[e],void 0,Nt)}}},$t=(e,...t)=>(hs((()=>e(...F(t,v)))),Ts),qt=()=>[ee(N,((e,t)=>-1===U(w,t)?null:ee(e,((e,s)=>-1===U(U(k,t),s)?null:ee(e,(([,e])=>e??null),((e,t)=>fe(t)))),D)),D),ee(me,(([,e])=>e??null),((e,t)=>fe(t)))],Bt=()=>({cellsTouched:l,valuesTouched:a,changedCells:se(N,ge,fe),invalidCells:se(Re),changedValues:ee(me,ge,fe),invalidValues:ee(ye),changedTableIds:ee(w),changedRowIds:te(k),changedCellIds:se(A),changedValueIds:ee(ie)}),Gt=()=>se(ke),Ht=()=>Q(ke),Kt=e=>W(U(ke,v(e))),Qt=e=>Q(U(ke,v(e))),Ut=(e,t,s,l=0,n)=>{return F(L((r=U(ke,v(e)),o=(e,s)=>[m(t)?s:U(e,v(t)),s],a=([e],[t])=>((e??0)<(t??0)?-1:1)*(s?-1:1),F([...r?.entries()??[]],(([e,t])=>o(t,e))).sort(a)),l,m(n)?n:l+n),(([,e])=>e));var a,r,o},Xt=(e,t)=>Q(U(U(ke,v(e)),v(t))),Yt=(e,t,s)=>U(U(U(ke,v(e)),v(t)),v(s)),Zt=()=>ee(Ae),_t=()=>Q(Ae),es=e=>U(Ae,v(e)),ts=e=>$t((()=>(e=>ve(e,lt,kt))(e)?gt(e):0)),ss=e=>$t((()=>rt(e)?St(e):0)),ls=e=>{try{ht(Se(e))}catch{}return Ts},ns=t=>$t((()=>{if((e=ve(t,(e=>ve(e,st))))&&(dt(t),!q(ke))){const e=Gt();rs(),ts(e)}})),as=e=>$t((()=>{if(s=(e=>ve(e,st))(e)){const t=Zt();us(),is(),s=!0,ut(e),ss(t)}})),rs=()=>$t((()=>gt({}))),os=e=>$t((e=>$(ke,e)?mt(e):0),e),cs=(e,t)=>$t(((e,t)=>R(U(ke,e),(s=>$(s,t)?Rt(e,s,t):0))),e,t),is=()=>$t((()=>St({}))),ds=()=>$t((()=>{dt({}),e=!1})),us=()=>$t((()=>{ut({}),s=!1})),hs=(e,t)=>{if(-1!=c){gs();const s=e();return fs(t),s}},gs=()=>(-1!=c&&c++,1==c&&_e(Xe,void 0,qt,Bt),Ts),fs=e=>(c>0&&(c--,0==c&&(l=!q(N),a=!q(me),c=1,Pt(1),l&&Dt(1),jt(1),a&&Wt(1),e?.(qt,Bt)&&(G(N,((e,t)=>G(e,((e,s)=>G(e,(([e],l)=>Ve(Ts,t,s,l,e))))))),G(me,(([e],t)=>be(Ts,t,e))),l=a=!1),_e(Ye[0],void 0,qt,Bt),c=-1,Pt(0),l&&Dt(0),jt(0),a&&Wt(0),_e(Ye[1],void 0,qt,Bt),c=0,l=a=!1,E([w,I,O,k,A,N,Re,ie,me,ye],B))),Ts),Ts={getContent:()=>[Gt(),Zt()],getTables:Gt,getTableIds:Ht,getTable:e=>te(U(ke,v(e))),getTableCellIds:e=>Q(U(Oe,v(e))),getRowCount:Kt,getRowIds:Qt,getSortedRowIds:Ut,getRow:(e,t)=>ee(U(U(ke,v(e)),v(t))),getCellIds:Xt,getCell:Yt,getValues:Zt,getValueIds:_t,getValue:es,hasTables:()=>!q(ke),hasTable:e=>$(ke,v(e)),hasTableCell:(e,t)=>$(U(Oe,v(e)),v(t)),hasRow:(e,t)=>$(U(ke,v(e)),v(t)),hasCell:(e,t,s)=>$(U(U(ke,v(e)),v(t)),v(s)),hasValues:()=>!q(Ae),hasValue:e=>$(Ae,v(e)),getTablesJson:()=>Ce(ke),getValuesJson:()=>Ce(Ae),getJson:()=>Ce([ke,Ae]),getTablesSchemaJson:()=>Ce(Je),getValuesSchemaJson:()=>Ce(pe),getSchemaJson:()=>Ce([Je,pe]),hasTablesSchema:()=>e,hasValuesSchema:()=>s,setContent:([e,t])=>$t((()=>{(D(e)?rs:ts)(e),(D(t)?is:ss)(t)})),setTables:ts,setTable:(e,t)=>$t((e=>lt(t,e)?ft(e,t):0),e),setRow:(e,t,s)=>$t(((e,t)=>nt(e,t,s)?Tt(e,It(e),t,s):0),e,t),addRow:(e,t,s=!0)=>hs((()=>{let l;return nt(e,l,t)&&(e=v(e),Tt(e,It(e),l=wt(e,s?1:0),t)),l})),setPartialRow:(e,t,s)=>$t(((e,t)=>{if(nt(e,t,s,1)){const l=It(e);x(s,((s,n)=>bt(e,l,t,n,s)))}}),e,t),setCell:(e,t,s,l)=>$t(((e,t,s)=>R(at(e,t,s,J(l)?l(Yt(e,t,s)):l),(l=>bt(e,It(e),t,s,l)))),e,t,s),setValues:ss,setPartialValues:e=>$t((()=>rt(e,1)?x(e,((e,t)=>vt(t,e))):0)),setValue:(e,t)=>$t((e=>R(ot(e,J(t)?t(es(e)):t),(t=>vt(e,t)))),e),setTransactionChanges:e=>$t((()=>{x(e[0],((e,t)=>m(e)?os(t):x(e,((e,s)=>m(e)?cs(t,s):x(e,((e,l)=>Ve(Ts,t,s,l,e))))))),x(e[1],((e,t)=>be(Ts,t,e)))})),setTablesJson:ls,setValuesJson:e=>{try{Ct(Se(e))}catch{}return Ts},setJson:e=>$t((()=>{try{const[t,s]=Se(e);ht(t),Ct(s)}catch{ls(e)}})),setTablesSchema:ns,setValuesSchema:as,setSchema:(e,t)=>$t((()=>{ns(e),as(t)})),delTables:rs,delTable:os,delRow:cs,delCell:(e,t,s,l)=>$t(((e,t,s)=>R(U(ke,e),(n=>R(U(n,t),(a=>$(a,s)?yt(e,n,t,a,s,l):0))))),e,t,s),delValues:is,delValue:e=>$t((e=>$(Ae,e)?Jt(e):0),e),delTablesSchema:ds,delValuesSchema:us,delSchema:()=>$t((()=>{ds(),us()})),transaction:hs,startTransaction:gs,finishTransaction:fs,forEachTable:e=>G(ke,((t,s)=>e(s,(e=>G(t,((t,s)=>e(s,(e=>X(t,e))))))))),forEachTableCell:(e,t)=>X(U(Oe,v(e)),t),forEachRow:(e,t)=>G(U(ke,v(e)),((e,s)=>t(s,(t=>X(e,t))))),forEachCell:(e,t,s)=>X(U(U(ke,v(e)),v(t)),s),forEachValue:e=>X(Ae,e),addSortedRowIdsListener:(e,t,s,l,n,a,r)=>{let o=Ut(e,t,s,l,n);return Ze((()=>{const r=Ut(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(Ts,e,t,s,l,n,o))}),We[r?1:0],[e,t],[Ht])},addStartTransactionListener:e=>Ze(e,Xe),addWillFinishTransactionListener:e=>Ze(e,Ye[0]),addDidFinishTransactionListener:e=>Ze(e,Ye[1]),callListener:e=>(tt(e),Ts),delListener:e=>(et(e),Ts),getListenerStats:()=>({}),createStore:Ie,addListener:Ze,callListeners:_e};return x({[d]:[0,Me],[u]:[0,Ne],[i]:[1,Pe,[Ht]],[i+V]:[1,je,[Ht]],[g]:[1,xe,[Ht]],[f]:[1,De,[Ht]],[h]:[2,$e,[Ht,Qt]],[V]:[2,qe,[Ht,Qt]],[T]:[3,Be,[Ht,Qt,Xt],e=>ue(Yt(...e))],InvalidCell:[3,Ge],[C]:[0,Ke],[S]:[0,Qe],[b]:[1,Ue,[_t],e=>ue(es(e[0]))],InvalidValue:[1,He]},(([e,t,s,l],n)=>{Ts["add"+n+"Listener"]=(...n)=>Ze(n[e],t[n[e+1]?1:0],e>0?L(n,0,e):void 0,s,l)})),M(Ts)};export{Ie 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),r="type",l="default",i="Listener",c="Result",d="add",u="Ids",h="Table",g=h+"s",f=h+u,L="Row",w=L+"Count",I=L+u,S="Sorted"+L+u,R="Cell",v=R+u,T="Value",y=T+"s",C=T+u,p=e=>t+e,b=Math.max,V=Math.min,m=isFinite,E=(e,t)=>e instanceof t,k=e=>null==e,M=(e,t,s)=>k(e)?s?.():t(e),D=e=>e==s||e==n,J=t=>e(t)==o,A=e=>Array.isArray(e),x=(e,t,s)=>e.slice(t,s),F=()=>{},Q=(e,t)=>e.includes(t),z=(e,t)=>e.every(t),N=(e,t)=>$(e)===$(t)&&z(e,((e,s)=>t[s]===e)),O=(e,t)=>z(e,((s,n)=>0==n||t(e[n-1],s)<=0)),j=(e,t)=>e.sort(t),P=(e,t)=>e.forEach(t),W=(e,t)=>e.map(t),B=e=>G(e,((e,t)=>e+t),0),$=e=>e.length,q=e=>0==$(e),G=(e,t,s)=>e.reduce(t,s),H=(e,...t)=>e.push(...t),K=e=>e.pop(),U=e=>e.shift(),X=Object,Y=X.keys,Z=X.isFrozen,_=X.freeze,ee=e=>E(e,X)&&e.constructor==X,te=(e,t)=>!k(((e,t)=>M(e,(e=>e[t])))(e,t)),se=(e,t)=>(delete e[t],e),ne=(e,t)=>W(X.entries(e),(([e,s])=>t(s,e))),ae=e=>ee(e)&&0==(e=>$(Y(e)))(e),oe=e=>e?.size??0,re=(e,t)=>e?.has(t)??!1,le=e=>k(e)||0==oe(e),ie=e=>[...e?.values()??[]],ce=e=>e.clear(),de=(e,t)=>e?.forEach(t),ue=(e,t)=>e?.delete(t),he=e=>new Map(e),ge=e=>[...e?.keys()??[]],fe=(e,t)=>e?.get(t),Le=(e,t)=>de(e,((e,s)=>t(s,e))),we=(e,t,s)=>k(s)?(ue(e,t),e):e?.set(t,s),Ie=(e,t,s)=>(re(e,t)||we(e,t,s()),fe(e,t)),Se=(e,t,s,n=we)=>(ne(t,((t,n)=>s(e,n,t))),Le(e,(s=>te(t,s)?0:n(e,s))),e),Re=(e,t,s)=>{const n={};return de(e,((e,a)=>{const o=t?t(e,a):e;!s?.(o,e)&&(n[a]=o)})),n},ve=(e,t,s)=>Re(e,(e=>Re(e,t,s)),ae),Te=(e,t,s)=>Re(e,(e=>ve(e,t,s)),ae),ye=(e,t)=>{const s=he();return de(e,((e,n)=>s.set(n,t?.(e)??e))),s},Ce=e=>ye(e,ye),pe=e=>ye(e,Ce),be=(e,t,s,n,a=0)=>M((s?Ie:fe)(e,t[a],a>$(t)-2?s:he),(o=>{if(a>$(t)-2)return n?.(o)&&we(e,t[a]),o;const r=be(o,t,s,n,a+1);return le(o)&&we(e,t[a]),r})),Ve=t=>{const s=e(t);return D(s)||s==a&&m(t)?s:void 0},me=(e,t,s,n,a)=>k(a)?e.delCell(t,s,n,!0):e.setCell(t,s,n,a),Ee=(e,t,s)=>k(s)?e.delValue(t):e.setValue(t,s),ke=e=>new Set(A(e)||k(e)?e:[e]),Me=(e,t)=>e?.add(t),De=(e,t,s,n,a)=>{const o=e.hasRow,r=he(),l=he(),i=he(),c=he(),d=he(),u=he(),h=(t,s,...n)=>{const a=Ie(u,t,ke);return P(n,(t=>Me(a,t)&&s&&e.callListener(t))),n},g=(t,...s)=>M(fe(u,t),(n=>{P(q(s)?ie(n):s,(t=>{e.delListener(t),ue(n,t)})),le(n)&&we(u,t)})),f=(e,s)=>{we(r,e,s),re(l,e)||(we(l,e,t()),we(c,e,he()),we(d,e,he()),a(i))},L=e=>{we(r,e),we(l,e),we(c,e),we(d,e),g(e),a(i)};return[()=>e,()=>ge(r),e=>Le(l,e),e=>re(l,e),e=>fe(r,e),e=>fe(l,e),(e,t)=>we(l,e,t),f,(t,n,a,r,l)=>{f(t,n);const i=he(),u=he(),L=fe(c,t),w=fe(d,t),I=t=>{const a=s=>e.getCell(n,t,s),c=fe(L,t),d=o(n,t)?s(r(a,t)):void 0;if(c===d||A(c)&&A(d)&&N(c,d)||we(i,t,[c,d]),!k(l)){const e=fe(w,t),s=o(n,t)?l(a,t):void 0;e!=s&&we(u,t,s)}},S=e=>{a((()=>{de(i,(([,e],t)=>we(L,t,e))),de(u,((e,t)=>we(w,t,e)))}),i,u,L,w,e),ce(i),ce(u)};Le(L,I),e.hasTable(n)&&P(e.getRowIds(n),(e=>{re(L,e)||I(e)})),S(!0),g(t),h(t,0,e.addRowListener(n,null,((e,t,s)=>I(s))),e.addTableListener(n,(()=>S())))},L,e=>n(e,i),()=>Le(u,L),h,g]},Je=(n,a)=>e(n)==s?e=>e(n):n??(()=>a??t),Ae=e=>{const t=new WeakMap;return s=>(t.has(s)||t.set(s,e(s)),t.get(s))},xe=/^\d+$/,Fe=()=>{const e=[];let s=0;return[n=>(n?U(e):null)??t+s++,t=>{xe.test(t)&&$(e)<1e3&&H(e,t)}]},Qe=e=>{let s;const[n,a]=Fe(),o=he();return[(a,r,l,i=[],c=(()=>[]))=>{s??=e();const d=n(1);return we(o,d,[a,r,l,i,c]),Me(be(r,l??[t],ke),d),d},(e,n,...a)=>P(((e,s=[t])=>{const n=[],a=(e,t)=>t==$(s)?H(n,e):null===s[t]?de(e,(e=>a(e,t+1))):P([s[t],null],(s=>a(fe(e,s),t+1)));return a(e,0),n})(e,n),(e=>de(e,(e=>fe(o,e)[0](s,...n??[],...a))))),e=>M(fe(o,e),(([,s,n])=>(be(s,n??[t],void 0,(t=>(ue(t,e),le(t)?1:0))),we(o,e),a(e),n))),e=>M(fe(o,e),(([e,,t=[],n,a])=>{const o=(...r)=>{const l=$(r);l==$(t)?e(s,...r,...a(r)):k(t[l])?P(n[l]?.(...r)??[],(e=>o(...r,e))):o(...r,t[l])};o()}))]},ze=Ae((e=>{let s,n,a,o=100,r=he(),l=he(),i=1;const c=he(),d=he(),[u,h,g]=Qe((()=>F)),f=he(),L=he(),w=[],I=[],S=(t,s)=>{i=0,e.transaction((()=>{const[n,a]=fe(f,s);de(n,((s,n)=>de(s,((s,a)=>de(s,((s,o)=>me(e,n,a,o,s[t]))))))),de(a,((s,n)=>Ee(e,n,s[t])))})),i=1},R=e=>{we(f,e),we(L,e),h(d,[e])},v=(e,t)=>P(((e,t)=>e.splice(0,t))(e,t??$(e)),R),T=()=>v(w,$(w)-o),y=()=>M(s,(()=>{H(w,s),T(),v(I),s=void 0,a=1})),C=()=>{s=K(w),a=1},p=e.addCellListener(null,null,null,((e,t,s,n,a,o)=>{if(i){y();const e=Ie(r,t,he),l=Ie(e,s,he),i=Ie(l,n,(()=>[o,void 0]));i[1]=a,i[0]===a&&le(we(l,n))&&le(we(e,s))&&le(we(r,t))&&C(),D()}})),b=e.addValueListener(null,((e,t,s,n)=>{if(i){y();const e=Ie(l,t,(()=>[n,void 0]));e[1]=s,e[0]===s&&le(we(l,t))&&C(),D()}})),V=(e="")=>(k(s)&&(s=t+n++,we(f,s,[r,l]),A(s,e),r=he(),l=he(),a=1),s),m=()=>{q(w)||(((e,...t)=>{e.unshift(...t)})(I,V()),S(0,s),s=K(w),a=1)},E=()=>{q(I)||(H(w,s),s=U(I),S(1,s),a=1)},D=()=>{a&&(h(c),a=0)},J=e=>{const t=V(e);return D(),t},A=(e,t)=>(x(e)&&fe(L,e)!==t&&(we(L,e,t),h(d,[e])),F),x=e=>re(f,e),F={setSize:e=>(o=e,T(),F),addCheckpoint:J,setCheckpoint:A,getStore:()=>e,getCheckpointIds:()=>[[...w],s,[...I]],forEachCheckpoint:e=>Le(L,e),hasCheckpoint:x,getCheckpoint:e=>fe(L,e),goBackward:()=>(m(),D(),F),goForward:()=>(E(),D(),F),goTo:e=>{const t=Q(w,e)?m:Q(I,e)?E:null;for(;!k(t)&&e!=s;)t();return D(),F},addCheckpointIdsListener:e=>u(e,c),addCheckpointListener:(e,t)=>u(t,d,[e]),delListener:e=>(g(e),F),clear:()=>(v(w),v(I),k(s)||R(s),s=void 0,n=0,J(),F),destroy:()=>{e.delListener(p),e.delListener(b)},getListenerStats:()=>({})};return _(F.clear())})),Ne=(e,t)=>(e??0)<(t??0)?-1:1,Oe=Ae((e=>{const s=he(),n=he(),[a,o,r]=Qe((()=>R)),[l,i,c,d,u,h,g,,f,L,w,I]=De(e,he,(e=>k(e)?t:A(e)?W(e,p):p(e)),a,o),S=(t,s,n)=>{const a=u(t);de(n,((t,n)=>s(n,(s=>de(t,(t=>s(t,(s=>e.forEachCell(a,t,s)))))))))},R={setIndexDefinition:(e,t,a,r,l,i=Ne)=>{const c=k(l)?void 0:([e],[t])=>l(e,t);return f(e,t,((t,a,l,d,u,f)=>{let L=0;const w=ke(),I=ke(),S=h(e);if(de(a,(([e,t],s)=>{const n=ke(e),a=ke(t);de(n,(e=>ue(a,e)?ue(n,e):0)),de(n,(e=>{Me(w,e),M(fe(S,e),(t=>{ue(t,s),le(t)&&(we(S,e),L=1)}))})),de(a,(e=>{Me(w,e),re(S,e)||(we(S,e,ke()),L=1),Me(fe(S,e),s),k(r)||Me(I,e)}))})),t(),le(u)||(f?Le(S,(e=>Me(I,e))):Le(l,(e=>M(fe(d,e),(e=>Me(I,e))))),de(I,(e=>{const t=(t,s)=>i(fe(u,t),fe(u,s),e),s=[...fe(S,e)];O(s,t)||(we(S,e,ke(j(s,t))),Me(w,e))}))),(L||f)&&!k(c)){const t=[...S];O(t,c)||(g(e,he(j(t,c))),L=1)}L&&o(s,[e]),de(w,(t=>o(n,[e,t])))}),Je(a),M(r,Je)),R},delIndexDefinition:e=>(L(e),R),getStore:l,getIndexIds:i,forEachIndex:e=>c(((t,s)=>e(t,(e=>S(t,e,s))))),forEachSlice:(e,t)=>S(e,t,h(e)),hasIndex:d,hasSlice:(e,t)=>re(h(e),t),getTableId:u,getSliceIds:e=>ge(h(e)),getSliceRowIds:(e,t)=>ie(fe(h(e),t)),addIndexIdsListener:w,addSliceIdsListener:(e,t)=>a(t,s,[e]),addSliceRowIdsListener:(e,t,s)=>a(s,n,[e,t]),delListener:e=>(r(e),R),destroy:I,getListenerStats:()=>({})};return _(R)})),je=he([["avg",[(e,t)=>B(e)/t,(e,t,s)=>e+(t-e)/(s+1),(e,t,s)=>e+(e-t)/(s-1),(e,t,s,n)=>e+(t-s)/n]],["max",[e=>b(...e),(e,t)=>b(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:b(t,e)]],["min",[e=>V(...e),(e,t)=>V(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:V(t,e)]],["sum",[e=>B(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),Pe=(e,t,s,n,a,o=!1)=>{if(le(s))return;const[r,l,i,c]=a;return o||=k(e),de(n,(([s,n])=>{o||(e=k(s)?l?.(e,n,t++):k(n)?i?.(e,s,t--):c?.(e,n,s,t),o||=k(e))})),o?r(ie(s),oe(s)):e},We=Ae((e=>{const s=he(),[n,a,o]=Qe((()=>I)),[r,l,i,c,d,u,h,,g,f,L,w]=De(e,F,(e=>isNaN(e)||k(e)||!0===e||!1===e||e===t?void 0:1*e),n,a),I={setMetricDefinition:(e,t,n,o,r,l,i)=>{const c=J(n)?[n,r,l,i]:fe(je,n)??fe(je,"sum");return g(e,t,((t,n,o,r,l,i)=>{const d=u(e),g=oe(r);i||=k(d),t();let f=Pe(d,g,r,n,c,i);m(f)||(f=void 0),f!=d&&(h(e,f),a(s,[e],f,d))}),Je(o,1)),I},delMetricDefinition:e=>(f(e),I),getStore:r,getMetricIds:l,forEachMetric:i,hasMetric:c,getTableId:d,getMetric:u,addMetricIdsListener:L,addMetricListener:(e,t)=>n(t,s,[e]),delListener:e=>(o(e),I),destroy:w,getListenerStats:()=>({})};return _(I)})),Be=he(),$e=he(),qe=(e,t,s,n,a,o,r=[])=>{let l,i,c,d=0,u=0;Ie(Be,r,(()=>0)),Ie($e,r,(()=>[]));const h=async e=>(2!=d&&(d=1,await g.schedule((async()=>{await e(),d=0}))),g),g={load:async(s,n)=>await h((async()=>{try{e.setContent(await t())}catch{e.setContent([s,n])}})),startAutoLoad:async(s={},a={})=>(g.stopAutoLoad(),await g.load(s,a),u=1,c=n((async(s,n)=>{if(n){const t=n();await h((async()=>e.setTransactionChanges(t)))}else await h((async()=>{try{e.setContent(s?.()??await t())}catch(e){o?.(e)}}))})),g),stopAutoLoad:()=>(u&&(a(c),c=void 0,u=0),g),save:async t=>(1!=d&&(d=2,await g.schedule((async()=>{try{await s(e.getContent,t)}catch(e){o?.(e)}d=0}))),g),startAutoSave:async()=>(await g.stopAutoSave().save(),l=e.addDidFinishTransactionListener(((e,t)=>{const[s,n]=t();ae(s)&&ae(n)||g.save((()=>[s,n]))})),g),stopAutoSave:()=>(M(l,e.delListener),g),schedule:async(...e)=>(H(fe($e,r),...e),await(async()=>{if(!fe(Be,r)){for(we(Be,r,1);!k(i=U(fe($e,r)));)try{await i()}catch(e){o?.(e)}we(Be,r,0)}})(),g),getStore:()=>e,destroy:()=>g.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return _(g)},Ge=Ae((e=>{const s=e.createStore,n=s(),a=s(),o=he(),{addListener:r,callListeners:l,delListener:u}=a,[g,f,T,y,C,,,p,,b,V,m,E,D]=De(e,(()=>!0),F,r,l),A=(e,t,...s)=>P(s,(s=>Me(Ie(Ie(o,t,he),e,ke),s))),Q=e=>{M(fe(o,e),(e=>{Le(e,((e,t)=>de(t,(t=>e.delListener(t))))),ce(e)})),P([a,n],(t=>t.delTable(e)))},N=(e,t,s)=>A(t,e,t.addStartTransactionListener(s.startTransaction),t.addDidFinishTransactionListener((()=>s.finishTransaction()))),O={setQueryDefinition:(s,o,r)=>{p(s,o),Q(s);const l=[],i=[[null,[o,null,null,[],he()]]],c=[],d=[],u=[];r({select:(e,s)=>{const n=J(e)?[$(l)+t,e]:[k(s)?e:s,t=>t(e,s)];return H(l,n),{as:e=>n[0]=e}},join:(e,t,s)=>{const n=k(s)||J(t)?null:t,a=k(n)?t:s,o=[e,[e,n,J(a)?a:e=>e(a),[],he()]];return H(i,o),{as:e=>o[0]=e}},where:(e,t,s)=>H(c,J(e)?e:k(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,a)=>{const o=[e,[e,J(t)?[t,s,n,a]:fe(je,t)??[(e,t)=>t]]];return H(d,o),{as:e=>o[0]=e}},having:(e,t)=>H(u,J(e)?e:s=>s(e)===t)});const h=he(l);if(le(h))return O;const g=he(i);Le(g,((e,[,t])=>M(fe(g,t),(({3:t})=>k(e)?0:H(t,e)))));const f=he(d);let L=n;if(le(f)&&q(u))L=a;else{N(s,L,a);const e=he();Le(f,((t,[s,n])=>Me(Ie(e,s,ke),[t,n])));const t=ke();Le(h,(s=>re(e,s)?0:Me(t,s)));const n=he(),o=(t,n,o,r)=>M(t,(([l,i,c,d])=>{Le(n,((t,[s])=>{const n=Ie(l,t,he),a=fe(n,o),i=r?void 0:s;if(a!==i){const s=ke([[a,i]]),r=oe(n);we(n,o,i),de(fe(e,t),(([e,t])=>{const a=Pe(d[e],r,n,s,t);d[e]=k(Ve(a))?null:a}))}})),le(i)||!z(u,(e=>e((e=>d[e]))))?a.delRow(s,c):k(c)?t[2]=a.addRow(s,d):a.setRow(s,c,d)}));A(L,s,L.addRowListener(s,null,((a,r,l,i)=>{const c=[],d=[],u=he(),h=L.hasRow(s,l);let g=!h;de(t,(e=>{const[t,n,a]=i(s,l,e);H(c,n),H(d,a),g||=t})),Le(e,(e=>{const[t,,n]=i(s,l,e);(g||t)&&we(u,e,[n])})),g&&o(be(n,c,void 0,(([,e])=>(ue(e,l),le(e)))),u,l,1),h&&o(be(n,d,(()=>{const e={};return de(t,(t=>e[t]=L.getCell(s,l,t))),[he(),ke(),void 0,e]}),(([,e])=>{Me(e,l)})),u,l)})))}N(s,e,L);const w=(t,n,a,r)=>{const l=t=>e.getCell(n,a,t);P(r,(n=>{const[a,,o,r,i]=fe(g,n),c=o?.(l,t),[d,u]=fe(i,t)??[];c!=d&&(k(u)||D(s,u),we(i,t,k(c)?null:[c,...E(s,1,e.addRowListener(a,c,(()=>w(t,a,c,r))))]))})),(t=>{const n=(s,n)=>e.getCell(...k(n)?[o,t,s]:s===o?[o,t,n]:[fe(g,s)?.[0],fe(fe(g,s)?.[4],t)?.[0],n]);L.transaction((()=>z(c,(e=>e(n)))?Le(h,((e,a)=>me(L,s,t,e,a(n,t)))):L.delRow(s,t)))})(t)},{3:I}=fe(g,null);return L.transaction((()=>E(s,1,e.addRowListener(o,null,((t,n,a)=>{e.hasRow(o,a)?w(a,o,a,I):(L.delRow(s,a),de(g,(({4:e})=>M(fe(e,a),(([,t])=>{D(s,t),we(e,a)})))))}))))),O},delQueryDefinition:e=>(Q(e),b(e),O),getStore:g,getQueryIds:f,forEachQuery:T,hasQuery:y,getTableId:C,addQueryIdsListener:e=>V((()=>e(O))),delListener:e=>(u(e),O),destroy:m,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=a.getListenerStats();return n}};return ne({[h]:[1,1],[h+v]:[0,1],[w]:[0,1],[I]:[0,1],[S]:[0,5],[L]:[1,2],[v]:[0,2],[R]:[1,3]},(([e,t],s)=>{P(e?["get","has","forEach"]:["get"],(e=>O[e+c+s]=(...t)=>a[e+s](...t))),O[d+c+s+i]=(...e)=>a[d+s+i](...x(e,0,t),((s,...n)=>e[t](O,...n)),!0)})),_(O)})),He=Ae((e=>{const s=he(),n=he(),a=he(),o=he(),[r,l,i]=Qe((()=>y)),[c,d,u,h,g,f,,,L,w,I,S]=De(e,(()=>[he(),he(),he(),he()]),(e=>k(e)?void 0:e+t),r,l),R=(e,t,s)=>M(f(e),(([n,,a])=>{if(!re(a,t)){const o=ke();if(g(e)!=T(e))Me(o,t);else{let e=t;for(;!k(e)&&!re(o,e);)Me(o,e),e=fe(n,e)}if(s)return o;we(a,t,o)}return fe(a,t)})),v=(e,t)=>M(f(e),(([,,e])=>we(e,t))),T=e=>fe(s,e),y={setRelationshipDefinition:(e,t,r,i)=>(we(s,e,r),L(e,t,((t,s)=>{const r=ke(),i=ke(),c=ke(),[d,u]=f(e);de(s,(([t,s],n)=>{k(t)||(Me(i,t),M(fe(u,t),(e=>{ue(e,n),le(e)&&we(u,t)}))),k(s)||(Me(i,s),re(u,s)||we(u,s,ke()),Me(fe(u,s),n)),Me(r,n),we(d,n,s),Le(fe(o,e),(t=>{re(R(e,t),n)&&Me(c,t)}))})),t(),de(r,(t=>l(n,[e,t]))),de(i,(t=>l(a,[e,t]))),de(c,(t=>{v(e,t),l(o,[e,t])}))}),Je(i)),y),delRelationshipDefinition:e=>(we(s,e),w(e),y),getStore:c,getRelationshipIds:d,forEachRelationship:t=>u((s=>t(s,(t=>e.forEachRow(g(s),t))))),hasRelationship:h,getLocalTableId:g,getRemoteTableId:T,getRemoteRowId:(e,t)=>fe(f(e)?.[0],t),getLocalRowIds:(e,t)=>ie(fe(f(e)?.[1],t)),getLinkedRowIds:(e,t)=>k(f(e))?[t]:ie(R(e,t,!0)),addRelationshipIdsListener:I,addRemoteRowIdListener:(e,t,s)=>r(s,n,[e,t]),addLocalRowIdsListener:(e,t,s)=>r(s,a,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(R(e,t),r(s,o,[e,t])),delListener:e=>(v(...i(e)??[]),y),destroy:S,getListenerStats:()=>({})};return _(y)})),Ke=e=>[e,e],Ue=()=>[he(),he()],Xe=e=>[...e],Ye=([e,t])=>e===t,Ze=e=>JSON.stringify(e,((e,t)=>E(t,Map)?X.fromEntries([...t]):t)),_e=JSON.parse,et=(e,t,s)=>k(e)||!ee(e)||ae(e)||Z(e)?(s?.(),!1):(ne(e,((s,n)=>{t(s,n)||se(e,n)})),!ae(e)),tt=(e,t,s)=>we(e,t,fe(e,t)==-s?void 0:s),st=()=>{let e,t,s=!1,n=!1,o=0;const c=he(),u=he(),S=he(),b=he(),V=he(),m=he(),E=he(),A=he(),F=he(),z=he(),O=he(),B=he(),$=he(),q=he(),G=ke(),K=he(),U=he(),X=he(),Y=he(),Z=Ue(),ee=Ue(),ie=Ue(),be=Ue(),De=Ue(),Je=Ue(),Ae=Ue(),xe=Ue(),ze=Ue(),Oe=Ue(),je=Ue(),Pe=Ue(),We=Ue(),Be=Ue(),$e=Ue(),qe=he(),Ge=Ue(),[He,nt,at,ot]=Qe((()=>Rs)),rt=e=>{if(!et(e,((e,t)=>Q([r,l],t))))return!1;const t=e[r];return!(!D(t)&&t!=a||(Ve(e[l])!=t&&se(e,l),0))},lt=(t,s)=>(!e||re(O,s)||zt(s))&&et(t,((e,t)=>it(s,t,e)),(()=>zt(s))),it=(e,t,s,n)=>et(n?s:ht(s,e,t),((n,a)=>M(ct(e,t,a,n),(e=>(s[a]=e,!0)),(()=>!1))),(()=>zt(e,t))),ct=(t,s,n,a)=>e?M(fe(fe(O,t),n),(e=>Ve(a)!=e[r]?zt(t,s,n,a,e[l]):a),(()=>zt(t,s,n,a))):k(Ve(a))?zt(t,s,n,a):a,dt=(e,t)=>et(t?e:gt(e),((t,s)=>M(ut(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>Nt())),ut=(e,s)=>t?M(fe($,e),(t=>Ve(s)!=t[r]?Nt(e,s,t[l]):s),(()=>Nt(e,s))):k(Ve(s))?Nt(e,s):s,ht=(e,t,s)=>(M(fe(B,t),(([n,a])=>{de(n,((t,s)=>{te(e,s)||(e[s]=t)})),de(a,(n=>{te(e,n)||zt(t,s,n)}))})),e),gt=e=>(t&&(de(q,((t,s)=>{te(e,s)||(e[s]=t)})),de(G,(t=>{te(e,t)||Nt(t)}))),e),ft=e=>Se(O,e,((e,t,s)=>{const n=he(),a=ke();Se(Ie(O,t,he),s,((e,t,s)=>{we(e,t,s),M(s[l],(e=>we(n,t,e)),(()=>Me(a,t)))})),we(B,t,[n,a])}),((e,t)=>{we(O,t),we(B,t)})),Lt=e=>Se($,e,((e,t,s)=>{we($,t,s),M(s[l],(e=>we(q,t,e)),(()=>Me(G,t)))}),((e,t)=>{we($,t),we(q,t),ue(G,t)})),wt=e=>ae(e)?ds():os(e),It=e=>Se(X,e,((e,t,s)=>St(t,s)),((e,t)=>mt(t))),St=(e,t)=>Se(Ie(X,e,(()=>(Dt(e,1),we(K,e,Fe()),we(U,e,he()),he()))),t,((t,s,n)=>Rt(e,t,s,n)),((t,s)=>Et(e,t,s))),Rt=(e,t,s,n,a)=>Se(Ie(t,s,(()=>(Jt(e,s,1),he()))),n,((t,n,a)=>vt(e,s,t,n,a)),((n,o)=>kt(e,t,s,n,o,a))),vt=(e,t,s,n,a)=>{re(s,n)||At(e,t,n,1);const o=fe(s,n);a!==o&&(xt(e,t,n,o,a),we(s,n,a))},Tt=(e,t,s,n,a)=>M(fe(t,s),(t=>vt(e,s,t,n,a)),(()=>Rt(e,t,s,ht({[n]:a},e,s)))),yt=e=>ae(e)?gs():rs(e),Ct=e=>Se(Y,e,((e,t,s)=>pt(t,s)),((e,t)=>Mt(t))),pt=(e,t)=>{re(Y,e)||Ft(e,1);const s=fe(Y,e);t!==s&&(Qt(e,s,t),we(Y,e,t))},bt=(e,t)=>{const[s]=fe(K,e),n=s(t);return re(fe(X,e),n)?bt(e,t):n},Vt=e=>fe(X,e)??St(e,{}),mt=e=>St(e,{}),Et=(e,t,s)=>{const[,n]=fe(K,e);n(s),Rt(e,t,s,{},!0)},kt=(e,t,s,n,a,o)=>{const r=fe(fe(B,e)?.[0],a);if(!k(r)&&!o)return vt(e,s,n,a,r);const l=t=>{xt(e,s,t,fe(n,t)),At(e,s,t,-1),we(n,t)};k(r)?l(a):Le(n,l),le(n)&&(Jt(e,s,-1),le(we(t,s))&&(Dt(e,-1),we(X,e),we(K,e),we(U,e)))},Mt=e=>{const t=fe(q,e);if(!k(t))return pt(e,t);Qt(e,fe(Y,e)),Ft(e,-1),we(Y,e)},Dt=(e,t)=>tt(c,e,t),Jt=(e,t,s)=>tt(Ie(b,e,he),t,s)&&we(S,e,Ie(S,e,(()=>0))+s),At=(e,t,s,n)=>{const a=fe(U,e),o=fe(a,s)??0;(0==o&&1==n||1==o&&-1==n)&&tt(Ie(u,e,he),s,n),we(a,s,o!=-n?o+n:null),tt(Ie(Ie(V,e,he),t,he),s,n)},xt=(e,t,s,n,a)=>Ie(Ie(Ie(m,e,he),t,he),s,(()=>[n,0]))[1]=a,Ft=(e,t)=>tt(E,e,t),Qt=(e,t,s)=>Ie(A,e,(()=>[t,0]))[1]=s,zt=(e,t,s,n,a)=>(H(Ie(Ie(Ie(F,e,he),t,he),s,(()=>[])),n),a),Nt=(e,t,s)=>(H(Ie(z,e,(()=>[])),t),s),Ot=(e,t,s)=>M(fe(fe(fe(m,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...Ke(ts(e,t,s))])),jt=e=>M(fe(A,e),(([e,t])=>[!0,e,t]),(()=>[!1,...Ke(as(e))])),Pt=e=>le(F)||le(je[e])?0:de(e?pe(F):F,((t,s)=>de(t,((t,n)=>de(t,((t,a)=>nt(je[e],[s,n,a],t))))))),Wt=e=>le(z)||le(Pe[e])?0:de(e?ye(z):z,((t,s)=>nt(Pe[e],[s],t))),Bt=(e,t,s)=>{if(!le(t))return nt(e,s,(()=>Re(t))),1},$t=e=>{const t=le(Ae[e]),s=le(ze[e])&&le(be[e])&&le(De[e])&&le(Je[e])&&t&&le(ee[e]),n=le(Oe[e])&&le(xe[e])&&le(ie[e])&&le(Z[e]);if(!s||!n){const a=e?[ye(c),Ce(u),ye(S),Ce(b),pe(V),pe(m)]:[c,u,S,b,V,m];if(!s){Bt(ee[e],a[0]),de(a[1],((t,s)=>Bt(be[e],t,[s]))),de(a[2],((t,s)=>{0!=t&&nt(De[e],[s],Yt(s))}));const s=ke();de(a[3],((n,a)=>{Bt(Je[e],n,[a])&&!t&&(nt(Ae[e],[a,null]),Me(s,a))})),t||de(a[5],((t,n)=>{if(!re(s,n)){const s=ke();de(t,(e=>de(e,(([t,n],a)=>n!==t?Me(s,a):ue(e,a))))),de(s,(t=>nt(Ae[e],[n,t])))}})),de(a[4],((t,s)=>de(t,((t,n)=>Bt(ze[e],t,[s,n])))))}if(!n){let t;de(a[5],((s,n)=>{let a;de(s,((s,o)=>{let r;de(s,(([s,l],i)=>{l!==s&&(nt(Oe[e],[n,o,i],l,s,Ot),t=a=r=1)})),r&&nt(xe[e],[n,o],Ot)})),a&&nt(ie[e],[n],Ot)})),t&&nt(Z[e],void 0,Ot)}}},qt=e=>{const t=le(Be[e]),s=le($e[e])&&le(We[e]);if(!t||!s){const n=e?[ye(E),ye(A)]:[E,A];if(t||Bt(Be[e],n[0]),!s){let t;de(n[1],(([s,n],a)=>{n!==s&&(nt($e[e],[a],n,s,jt),t=1)})),t&&nt(We[e],void 0,jt)}}},Gt=(e,...t)=>(ws((()=>e(...W(t,p)))),Rs),Ht=()=>[Re(m,((e,t)=>-1===fe(c,t)?null:Re(e,((e,s)=>-1===fe(fe(b,t),s)?null:Re(e,(([,e])=>e??null),((e,t)=>Ye(t)))),ae)),ae),Re(A,(([,e])=>e??null),((e,t)=>Ye(t)))],Kt=()=>({cellsTouched:s,valuesTouched:n,changedCells:Te(m,Xe,Ye),invalidCells:Te(F),changedValues:Re(A,Xe,Ye),invalidValues:Re(z),changedTableIds:Re(c),changedRowIds:ve(b),changedCellIds:Te(V),changedValueIds:Re(E)}),Ut=()=>Te(X),Xt=()=>ge(X),Yt=e=>oe(fe(X,p(e))),Zt=e=>ge(fe(X,p(e))),_t=(e,t,s,n=0,a)=>{return W(x(j((o=fe(X,p(e)),r=(e,s)=>[k(t)?s:fe(e,p(t)),s],W([...o?.entries()??[]],(([e,t])=>r(t,e)))),(([e],[t])=>Ne(e,t)*(s?-1:1))),n,k(a)?a:n+a),(([,e])=>e));var o,r},es=(e,t)=>ge(fe(fe(X,p(e)),p(t))),ts=(e,t,s)=>fe(fe(fe(X,p(e)),p(t)),p(s)),ss=()=>Re(Y),ns=()=>ge(Y),as=e=>fe(Y,p(e)),os=e=>Gt((()=>(e=>et(e,lt,zt))(e)?It(e):0)),rs=e=>Gt((()=>dt(e)?Ct(e):0)),ls=e=>{try{wt(_e(e))}catch{}return Rs},is=t=>Gt((()=>{if((e=et(t,(e=>et(e,rt))))&&(ft(t),!le(X))){const e=Ut();ds(),os(e)}})),cs=e=>Gt((()=>{if(t=(e=>et(e,rt))(e)){const s=ss();Ls(),gs(),t=!0,Lt(e),rs(s)}})),ds=()=>Gt((()=>It({}))),us=e=>Gt((e=>re(X,e)?mt(e):0),e),hs=(e,t)=>Gt(((e,t)=>M(fe(X,e),(s=>re(s,t)?Et(e,s,t):0))),e,t),gs=()=>Gt((()=>Ct({}))),fs=()=>Gt((()=>{ft({}),e=!1})),Ls=()=>Gt((()=>{Lt({}),t=!1})),ws=(e,t)=>{if(-1!=o){Is();const s=e();return Ss(t),s}},Is=()=>(-1!=o&&o++,1==o&&nt(qe,void 0,Ht,Kt),Rs),Ss=e=>(o>0&&(o--,0==o&&(s=!le(m),n=!le(A),o=1,Pt(1),s&&$t(1),Wt(1),n&&qt(1),e?.(Ht,Kt)&&(de(m,((e,t)=>de(e,((e,s)=>de(e,(([e],n)=>me(Rs,t,s,n,e))))))),de(A,(([e],t)=>Ee(Rs,t,e))),s=n=!1),nt(Ge[0],void 0,Ht,Kt),o=-1,Pt(0),s&&$t(0),Wt(0),n&&qt(0),nt(Ge[1],void 0,Ht,Kt),o=0,s=n=!1,P([c,u,S,b,V,m,F,E,A,z],ce))),Rs),Rs={getContent:()=>[Ut(),ss()],getTables:Ut,getTableIds:Xt,getTable:e=>ve(fe(X,p(e))),getTableCellIds:e=>ge(fe(U,p(e))),getRowCount:Yt,getRowIds:Zt,getSortedRowIds:_t,getRow:(e,t)=>Re(fe(fe(X,p(e)),p(t))),getCellIds:es,getCell:ts,getValues:ss,getValueIds:ns,getValue:as,hasTables:()=>!le(X),hasTable:e=>re(X,p(e)),hasTableCell:(e,t)=>re(fe(U,p(e)),p(t)),hasRow:(e,t)=>re(fe(X,p(e)),p(t)),hasCell:(e,t,s)=>re(fe(fe(X,p(e)),p(t)),p(s)),hasValues:()=>!le(Y),hasValue:e=>re(Y,p(e)),getTablesJson:()=>Ze(X),getValuesJson:()=>Ze(Y),getJson:()=>Ze([X,Y]),getTablesSchemaJson:()=>Ze(O),getValuesSchemaJson:()=>Ze($),getSchemaJson:()=>Ze([O,$]),hasTablesSchema:()=>e,hasValuesSchema:()=>t,setContent:([e,t])=>Gt((()=>{(ae(e)?ds:os)(e),(ae(t)?gs:rs)(t)})),setTables:os,setTable:(e,t)=>Gt((e=>lt(t,e)?St(e,t):0),e),setRow:(e,t,s)=>Gt(((e,t)=>it(e,t,s)?Rt(e,Vt(e),t,s):0),e,t),addRow:(e,t,s=!0)=>ws((()=>{let n;return it(e,n,t)&&(e=p(e),Rt(e,Vt(e),n=bt(e,s?1:0),t)),n})),setPartialRow:(e,t,s)=>Gt(((e,t)=>{if(it(e,t,s,1)){const n=Vt(e);ne(s,((s,a)=>Tt(e,n,t,a,s)))}}),e,t),setCell:(e,t,s,n)=>Gt(((e,t,s)=>M(ct(e,t,s,J(n)?n(ts(e,t,s)):n),(n=>Tt(e,Vt(e),t,s,n)))),e,t,s),setValues:rs,setPartialValues:e=>Gt((()=>dt(e,1)?ne(e,((e,t)=>pt(t,e))):0)),setValue:(e,t)=>Gt((e=>M(ut(e,J(t)?t(as(e)):t),(t=>pt(e,t)))),e),setTransactionChanges:e=>Gt((()=>{ne(e[0],((e,t)=>k(e)?us(t):ne(e,((e,s)=>k(e)?hs(t,s):ne(e,((e,n)=>me(Rs,t,s,n,e))))))),ne(e[1],((e,t)=>Ee(Rs,t,e)))})),setTablesJson:ls,setValuesJson:e=>{try{yt(_e(e))}catch{}return Rs},setJson:e=>Gt((()=>{try{const[t,s]=_e(e);wt(t),yt(s)}catch{ls(e)}})),setTablesSchema:is,setValuesSchema:cs,setSchema:(e,t)=>Gt((()=>{is(e),cs(t)})),delTables:ds,delTable:us,delRow:hs,delCell:(e,t,s,n)=>Gt(((e,t,s)=>M(fe(X,e),(a=>M(fe(a,t),(o=>re(o,s)?kt(e,a,t,o,s,n):0))))),e,t,s),delValues:gs,delValue:e=>Gt((e=>re(Y,e)?Mt(e):0),e),delTablesSchema:fs,delValuesSchema:Ls,delSchema:()=>Gt((()=>{fs(),Ls()})),transaction:ws,startTransaction:Is,finishTransaction:Ss,forEachTable:e=>de(X,((t,s)=>e(s,(e=>de(t,((t,s)=>e(s,(e=>Le(t,e))))))))),forEachTableCell:(e,t)=>Le(fe(U,p(e)),t),forEachRow:(e,t)=>de(fe(X,p(e)),((e,s)=>t(s,(t=>Le(e,t))))),forEachCell:(e,t,s)=>Le(fe(fe(X,p(e)),p(t)),s),forEachValue:e=>Le(Y,e),addSortedRowIdsListener:(e,t,s,n,a,o,r)=>{let l=_t(e,t,s,n,a);return He((()=>{const r=_t(e,t,s,n,a);N(r,l)||(l=r,o(Rs,e,t,s,n,a,l))}),Ae[r?1:0],[e,t],[Xt])},addStartTransactionListener:e=>He(e,qe),addWillFinishTransactionListener:e=>He(e,Ge[0]),addDidFinishTransactionListener:e=>He(e,Ge[1]),callListener:e=>(ot(e),Rs),delListener:e=>(at(e),Rs),getListenerStats:()=>({}),createStore:st,addListener:He,callListeners:nt};return ne({[g]:[0,Z],[f]:[0,ee],[h]:[1,ie,[Xt]],[h+v]:[1,be,[Xt]],[w]:[1,De,[Xt]],[I]:[1,Je,[Xt]],[L]:[2,xe,[Xt,Zt]],[v]:[2,ze,[Xt,Zt]],[R]:[3,Oe,[Xt,Zt,es],e=>Ke(ts(...e))],InvalidCell:[3,je],[y]:[0,We],[C]:[0,Be],[T]:[1,$e,[ns],e=>Ke(as(e[0]))],InvalidValue:[1,Pe]},(([e,t,s,n],a)=>{Rs[d+a+i]=(...a)=>He(a[e],t[a[e+1]?1:0],e>0?x(a,0,e):void 0,s,n)})),_(Rs)};export{ze as createCheckpoints,qe as createCustomPersister,Oe as createIndexes,We as createMetrics,Ge as createQueries,He as createRelationships,st as createStore,Ne as defaultSorter};
1
+ const e=e=>typeof e,t="",s=e(t),n=e(!0),a=e(0),o=e(e),r="type",l="default",i="Listener",c="Result",d="add",u="Ids",h="Table",g=h+"s",f=h+u,L="Row",w=L+"Count",I=L+u,S="Sorted"+L+u,R="Cell",v=R+u,T="Value",y=T+"s",C=T+u,p=e=>t+e,b=Math.max,V=Math.min,m=isFinite,E=(e,t)=>e instanceof t,k=e=>null==e,M=(e,t,s)=>k(e)?s?.():t(e),D=e=>e==s||e==n,J=t=>e(t)==o,A=e=>Array.isArray(e),x=(e,t,s)=>e.slice(t,s),F=e=>e.length,Q=()=>{},z=(e,t)=>e.includes(t),N=(e,t)=>e.every(t),O=(e,t)=>F(e)===F(t)&&N(e,((e,s)=>t[s]===e)),j=(e,t)=>N(e,((s,n)=>0==n||t(e[n-1],s)<=0)),P=(e,t)=>e.sort(t),W=(e,t)=>e.forEach(t),B=(e,t)=>e.map(t),$=e=>G(e,((e,t)=>e+t),0),q=e=>0==F(e),G=(e,t,s)=>e.reduce(t,s),H=(e,...t)=>e.push(...t),K=e=>e.pop(),U=e=>e.shift(),X=Object,Y=X.keys,Z=X.isFrozen,_=X.freeze,ee=e=>E(e,X)&&e.constructor==X,te=(e,t)=>!k(((e,t)=>M(e,(e=>e[t])))(e,t)),se=(e,t)=>(delete e[t],e),ne=(e,t)=>B(X.entries(e),(([e,s])=>t(s,e))),ae=e=>ee(e)&&0==(e=>F(Y(e)))(e),oe=e=>e?.size??0,re=(e,t)=>e?.has(t)??!1,le=e=>k(e)||0==oe(e),ie=e=>[...e?.values()??[]],ce=e=>e.clear(),de=(e,t)=>e?.forEach(t),ue=(e,t)=>e?.delete(t),he=e=>new Map(e),ge=e=>[...e?.keys()??[]],fe=(e,t)=>e?.get(t),Le=(e,t)=>de(e,((e,s)=>t(s,e))),we=(e,t,s)=>k(s)?(ue(e,t),e):e?.set(t,s),Ie=(e,t,s)=>(re(e,t)||we(e,t,s()),fe(e,t)),Se=(e,t,s,n=we)=>(ne(t,((t,n)=>s(e,n,t))),Le(e,(s=>te(t,s)?0:n(e,s))),e),Re=(e,t,s)=>{const n={};return de(e,((e,a)=>{const o=t?t(e,a):e;!s?.(o,e)&&(n[a]=o)})),n},ve=(e,t,s)=>Re(e,(e=>Re(e,t,s)),ae),Te=(e,t,s)=>Re(e,(e=>ve(e,t,s)),ae),ye=(e,t)=>{const s=he();return de(e,((e,n)=>s.set(n,t?.(e)??e))),s},Ce=e=>ye(e,ye),pe=e=>ye(e,Ce),be=(e,t,s,n,a=0)=>M((s?Ie:fe)(e,t[a],a>F(t)-2?s:he),(o=>{if(a>F(t)-2)return n?.(o)&&we(e,t[a]),o;const r=be(o,t,s,n,a+1);return le(o)&&we(e,t[a]),r})),Ve=t=>{const s=e(t);return D(s)||s==a&&m(t)?s:void 0},me=(e,t,s,n,a)=>k(a)?e.delCell(t,s,n,!0):e.setCell(t,s,n,a),Ee=(e,t,s)=>k(s)?e.delValue(t):e.setValue(t,s),ke=e=>new Set(A(e)||k(e)?e:[e]),Me=(e,t)=>e?.add(t),De=(e,t,s,n,a)=>{const o=e.hasRow,r=he(),l=he(),i=he(),c=he(),d=he(),u=he(),h=(t,s,...n)=>{const a=Ie(u,t,ke);return W(n,(t=>Me(a,t)&&s&&e.callListener(t))),n},g=(t,...s)=>M(fe(u,t),(n=>{W(q(s)?ie(n):s,(t=>{e.delListener(t),ue(n,t)})),le(n)&&we(u,t)})),f=(e,s)=>{we(r,e,s),re(l,e)||(we(l,e,t()),we(c,e,he()),we(d,e,he()),a(i))},L=e=>{we(r,e),we(l,e),we(c,e),we(d,e),g(e),a(i)};return[()=>e,()=>ge(r),e=>Le(l,e),e=>re(l,e),e=>fe(r,e),e=>fe(l,e),(e,t)=>we(l,e,t),f,(t,n,a,r,l)=>{f(t,n);const i=he(),u=he(),L=fe(c,t),w=fe(d,t),I=t=>{const a=s=>e.getCell(n,t,s),c=fe(L,t),d=o(n,t)?s(r(a,t)):void 0;if(c===d||A(c)&&A(d)&&O(c,d)||we(i,t,[c,d]),!k(l)){const e=fe(w,t),s=o(n,t)?l(a,t):void 0;e!=s&&we(u,t,s)}},S=e=>{a((()=>{de(i,(([,e],t)=>we(L,t,e))),de(u,((e,t)=>we(w,t,e)))}),i,u,L,w,e),ce(i),ce(u)};Le(L,I),e.hasTable(n)&&W(e.getRowIds(n),(e=>{re(L,e)||I(e)})),S(!0),g(t),h(t,0,e.addRowListener(n,null,((e,t,s)=>I(s))),e.addTableListener(n,(()=>S())))},L,e=>n(e,i),()=>Le(u,L),h,g]},Je=(n,a)=>e(n)==s?e=>e(n):n??(()=>a??t),Ae=e=>{const t=new WeakMap;return s=>(t.has(s)||t.set(s,e(s)),t.get(s))},xe=/^\d+$/,Fe=()=>{const e=[];let s=0;return[n=>(n?U(e):null)??t+s++,t=>{xe.test(t)&&F(e)<1e3&&H(e,t)}]},Qe=e=>{let s;const[n,a]=Fe(),o=he();return[(a,r,l,i=[],c=(()=>[]))=>{s??=e();const d=n(1);return we(o,d,[a,r,l,i,c]),Me(be(r,l??[t],ke),d),d},(e,n,...a)=>W(((e,s=[t])=>{const n=[],a=(e,t)=>t==F(s)?H(n,e):null===s[t]?de(e,(e=>a(e,t+1))):W([s[t],null],(s=>a(fe(e,s),t+1)));return a(e,0),n})(e,n),(e=>de(e,(e=>fe(o,e)[0](s,...n??[],...a))))),e=>M(fe(o,e),(([,s,n])=>(be(s,n??[t],void 0,(t=>(ue(t,e),le(t)?1:0))),we(o,e),a(e),n))),e=>M(fe(o,e),(([e,,t=[],n,a])=>{const o=(...r)=>{const l=F(r);l==F(t)?e(s,...r,...a(r)):k(t[l])?W(n[l]?.(...r)??[],(e=>o(...r,e))):o(...r,t[l])};o()}))]},ze=Ae((e=>{let s,n,a,o=100,r=he(),l=he(),i=1;const c=he(),d=he(),[u,h,g]=Qe((()=>Q)),f=he(),L=he(),w=[],I=[],S=(t,s)=>{i=0,e.transaction((()=>{const[n,a]=fe(f,s);de(n,((s,n)=>de(s,((s,a)=>de(s,((s,o)=>me(e,n,a,o,s[t]))))))),de(a,((s,n)=>Ee(e,n,s[t])))})),i=1},R=e=>{we(f,e),we(L,e),h(d,[e])},v=(e,t)=>W(((e,t)=>e.splice(0,t))(e,t??F(e)),R),T=()=>v(w,F(w)-o),y=()=>M(s,(()=>{H(w,s),T(),v(I),s=void 0,a=1})),C=()=>{s=K(w),a=1},p=e.addCellListener(null,null,null,((e,t,s,n,a,o)=>{if(i){y();const e=Ie(r,t,he),l=Ie(e,s,he),i=Ie(l,n,(()=>[o,void 0]));i[1]=a,i[0]===a&&le(we(l,n))&&le(we(e,s))&&le(we(r,t))&&C(),D()}})),b=e.addValueListener(null,((e,t,s,n)=>{if(i){y();const e=Ie(l,t,(()=>[n,void 0]));e[1]=s,e[0]===s&&le(we(l,t))&&C(),D()}})),V=(e="")=>(k(s)&&(s=t+n++,we(f,s,[r,l]),A(s,e),r=he(),l=he(),a=1),s),m=()=>{q(w)||(((e,...t)=>{e.unshift(...t)})(I,V()),S(0,s),s=K(w),a=1)},E=()=>{q(I)||(H(w,s),s=U(I),S(1,s),a=1)},D=()=>{a&&(h(c),a=0)},J=e=>{const t=V(e);return D(),t},A=(e,t)=>(x(e)&&fe(L,e)!==t&&(we(L,e,t),h(d,[e])),Q),x=e=>re(f,e),Q={setSize:e=>(o=e,T(),Q),addCheckpoint:J,setCheckpoint:A,getStore:()=>e,getCheckpointIds:()=>[[...w],s,[...I]],forEachCheckpoint:e=>Le(L,e),hasCheckpoint:x,getCheckpoint:e=>fe(L,e),goBackward:()=>(m(),D(),Q),goForward:()=>(E(),D(),Q),goTo:e=>{const t=z(w,e)?m:z(I,e)?E:null;for(;!k(t)&&e!=s;)t();return D(),Q},addCheckpointIdsListener:e=>u(e,c),addCheckpointListener:(e,t)=>u(t,d,[e]),delListener:e=>(g(e),Q),clear:()=>(v(w),v(I),k(s)||R(s),s=void 0,n=0,J(),Q),destroy:()=>{e.delListener(p),e.delListener(b)},getListenerStats:()=>({})};return _(Q.clear())})),Ne=(e,t)=>(e??0)<(t??0)?-1:1,Oe=Ae((e=>{const s=he(),n=he(),[a,o,r]=Qe((()=>R)),[l,i,c,d,u,h,g,,f,L,w,I]=De(e,he,(e=>k(e)?t:A(e)?B(e,p):p(e)),a,o),S=(t,s,n)=>{const a=u(t);de(n,((t,n)=>s(n,(s=>de(t,(t=>s(t,(s=>e.forEachCell(a,t,s)))))))))},R={setIndexDefinition:(e,t,a,r,l,i=Ne)=>{const c=k(l)?void 0:([e],[t])=>l(e,t);return f(e,t,((t,a,l,d,u,f)=>{let L=0;const w=ke(),I=ke(),S=h(e);if(de(a,(([e,t],s)=>{const n=ke(e),a=ke(t);de(n,(e=>ue(a,e)?ue(n,e):0)),de(n,(e=>{Me(w,e),M(fe(S,e),(t=>{ue(t,s),le(t)&&(we(S,e),L=1)}))})),de(a,(e=>{Me(w,e),re(S,e)||(we(S,e,ke()),L=1),Me(fe(S,e),s),k(r)||Me(I,e)}))})),t(),le(u)||(f?Le(S,(e=>Me(I,e))):Le(l,(e=>M(fe(d,e),(e=>Me(I,e))))),de(I,(e=>{const t=(t,s)=>i(fe(u,t),fe(u,s),e),s=[...fe(S,e)];j(s,t)||(we(S,e,ke(P(s,t))),Me(w,e))}))),(L||f)&&!k(c)){const t=[...S];j(t,c)||(g(e,he(P(t,c))),L=1)}L&&o(s,[e]),de(w,(t=>o(n,[e,t])))}),Je(a),M(r,Je)),R},delIndexDefinition:e=>(L(e),R),getStore:l,getIndexIds:i,forEachIndex:e=>c(((t,s)=>e(t,(e=>S(t,e,s))))),forEachSlice:(e,t)=>S(e,t,h(e)),hasIndex:d,hasSlice:(e,t)=>re(h(e),t),getTableId:u,getSliceIds:e=>ge(h(e)),getSliceRowIds:(e,t)=>ie(fe(h(e),t)),addIndexIdsListener:w,addSliceIdsListener:(e,t)=>a(t,s,[e]),addSliceRowIdsListener:(e,t,s)=>a(s,n,[e,t]),delListener:e=>(r(e),R),destroy:I,getListenerStats:()=>({})};return _(R)})),je=he([["avg",[(e,t)=>$(e)/t,(e,t,s)=>e+(t-e)/(s+1),(e,t,s)=>e+(e-t)/(s-1),(e,t,s,n)=>e+(t-s)/n]],["max",[e=>b(...e),(e,t)=>b(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:b(t,e)]],["min",[e=>V(...e),(e,t)=>V(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:V(t,e)]],["sum",[e=>$(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),Pe=(e,t,s,n,a,o=!1)=>{if(le(s))return;const[r,l,i,c]=a;return o||=k(e),de(n,(([s,n])=>{o||(e=k(s)?l?.(e,n,t++):k(n)?i?.(e,s,t--):c?.(e,n,s,t),o||=k(e))})),o?r(ie(s),oe(s)):e},We=Ae((e=>{const s=he(),[n,a,o]=Qe((()=>I)),[r,l,i,c,d,u,h,,g,f,L,w]=De(e,Q,(e=>isNaN(e)||k(e)||!0===e||!1===e||e===t?void 0:1*e),n,a),I={setMetricDefinition:(e,t,n,o,r,l,i)=>{const c=J(n)?[n,r,l,i]:fe(je,n)??fe(je,"sum");return g(e,t,((t,n,o,r,l,i)=>{const d=u(e),g=oe(r);i||=k(d),t();let f=Pe(d,g,r,n,c,i);m(f)||(f=void 0),f!=d&&(h(e,f),a(s,[e],f,d))}),Je(o,1)),I},delMetricDefinition:e=>(f(e),I),getStore:r,getMetricIds:l,forEachMetric:i,hasMetric:c,getTableId:d,getMetric:u,addMetricIdsListener:L,addMetricListener:(e,t)=>n(t,s,[e]),delListener:e=>(o(e),I),destroy:w,getListenerStats:()=>({})};return _(I)})),Be=he(),$e=he(),qe=(e,t,s,n,a,o,r=[])=>{let l,i,c,d=0,u=0;Ie(Be,r,(()=>0)),Ie($e,r,(()=>[]));const h=async e=>(2!=d&&(d=1,await g.schedule((async()=>{await e(),d=0}))),g),g={load:async(s,n)=>await h((async()=>{try{e.setContent(await t())}catch{e.setContent([s,n])}})),startAutoLoad:async(s={},a={})=>(g.stopAutoLoad(),await g.load(s,a),u=1,c=n((async(s,n)=>{if(n){const t=n();await h((async()=>e.setTransactionChanges(t)))}else await h((async()=>{try{e.setContent(s?.()??await t())}catch(e){o?.(e)}}))})),g),stopAutoLoad:()=>(u&&(a(c),c=void 0,u=0),g),save:async t=>(1!=d&&(d=2,await g.schedule((async()=>{try{await s(e.getContent,t)}catch(e){o?.(e)}d=0}))),g),startAutoSave:async()=>(await g.stopAutoSave().save(),l=e.addDidFinishTransactionListener(((e,t)=>{const[s,n]=t();ae(s)&&ae(n)||g.save((()=>[s,n]))})),g),stopAutoSave:()=>(M(l,e.delListener),g),schedule:async(...e)=>(H(fe($e,r),...e),await(async()=>{if(!fe(Be,r)){for(we(Be,r,1);!k(i=U(fe($e,r)));)try{await i()}catch(e){o?.(e)}we(Be,r,0)}})(),g),getStore:()=>e,destroy:()=>g.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return _(g)},Ge=Ae((e=>{const s=e.createStore,n=s(),a=s(),o=he(),{addListener:r,callListeners:l,delListener:u}=a,[g,f,T,y,C,,,p,,b,V,m,E,D]=De(e,(()=>!0),Q,r,l),A=(e,t,...s)=>W(s,(s=>Me(Ie(Ie(o,t,he),e,ke),s))),z=e=>{M(fe(o,e),(e=>{Le(e,((e,t)=>de(t,(t=>e.delListener(t))))),ce(e)})),W([a,n],(t=>t.delTable(e)))},O=(e,t,s)=>A(t,e,t.addStartTransactionListener(s.startTransaction),t.addDidFinishTransactionListener((()=>s.finishTransaction()))),j={setQueryDefinition:(s,o,r)=>{p(s,o),z(s);const l=[],i=[[null,[o,null,null,[],he()]]],c=[],d=[],u=[];r({select:(e,s)=>{const n=J(e)?[F(l)+t,e]:[k(s)?e:s,t=>t(e,s)];return H(l,n),{as:e=>n[0]=e}},join:(e,t,s)=>{const n=k(s)||J(t)?null:t,a=k(n)?t:s,o=[e,[e,n,J(a)?a:e=>e(a),[],he()]];return H(i,o),{as:e=>o[0]=e}},where:(e,t,s)=>H(c,J(e)?e:k(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,a)=>{const o=[e,[e,J(t)?[t,s,n,a]:fe(je,t)??[(e,t)=>t]]];return H(d,o),{as:e=>o[0]=e}},having:(e,t)=>H(u,J(e)?e:s=>s(e)===t)});const h=he(l);if(le(h))return j;const g=he(i);Le(g,((e,[,t])=>M(fe(g,t),(({3:t})=>k(e)?0:H(t,e)))));const f=he(d);let L=n;if(le(f)&&q(u))L=a;else{O(s,L,a);const e=he();Le(f,((t,[s,n])=>Me(Ie(e,s,ke),[t,n])));const t=ke();Le(h,(s=>re(e,s)?0:Me(t,s)));const n=he(),o=(t,n,o,r)=>M(t,(([l,i,c,d])=>{Le(n,((t,[s])=>{const n=Ie(l,t,he),a=fe(n,o),i=r?void 0:s;if(a!==i){const s=ke([[a,i]]),r=oe(n);we(n,o,i),de(fe(e,t),(([e,t])=>{const a=Pe(d[e],r,n,s,t);d[e]=k(Ve(a))?null:a}))}})),le(i)||!N(u,(e=>e((e=>d[e]))))?a.delRow(s,c):k(c)?t[2]=a.addRow(s,d):a.setRow(s,c,d)}));A(L,s,L.addRowListener(s,null,((a,r,l,i)=>{const c=[],d=[],u=he(),h=L.hasRow(s,l);let g=!h;de(t,(e=>{const[t,n,a]=i(s,l,e);H(c,n),H(d,a),g||=t})),Le(e,(e=>{const[t,,n]=i(s,l,e);(g||t)&&we(u,e,[n])})),g&&o(be(n,c,void 0,(([,e])=>(ue(e,l),le(e)))),u,l,1),h&&o(be(n,d,(()=>{const e={};return de(t,(t=>e[t]=L.getCell(s,l,t))),[he(),ke(),void 0,e]}),(([,e])=>{Me(e,l)})),u,l)})))}O(s,e,L);const w=(t,n,a,r)=>{const l=t=>e.getCell(n,a,t);W(r,(n=>{const[a,,o,r,i]=fe(g,n),c=o?.(l,t),[d,u]=fe(i,t)??[];c!=d&&(k(u)||D(s,u),we(i,t,k(c)?null:[c,...E(s,1,e.addRowListener(a,c,(()=>w(t,a,c,r))))]))})),(t=>{const n=(s,n)=>e.getCell(...k(n)?[o,t,s]:s===o?[o,t,n]:[fe(g,s)?.[0],fe(fe(g,s)?.[4],t)?.[0],n]);L.transaction((()=>N(c,(e=>e(n)))?Le(h,((e,a)=>me(L,s,t,e,a(n,t)))):L.delRow(s,t)))})(t)},{3:I}=fe(g,null);return L.transaction((()=>E(s,1,e.addRowListener(o,null,((t,n,a)=>{e.hasRow(o,a)?w(a,o,a,I):(L.delRow(s,a),de(g,(({4:e})=>M(fe(e,a),(([,t])=>{D(s,t),we(e,a)})))))}))))),j},delQueryDefinition:e=>(z(e),b(e),j),getStore:g,getQueryIds:f,forEachQuery:T,hasQuery:y,getTableId:C,addQueryIdsListener:e=>V((()=>e(j))),delListener:e=>(u(e),j),destroy:m,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=a.getListenerStats();return n}};return ne({[h]:[1,1],[h+v]:[0,1],[w]:[0,1],[I]:[0,1],[S]:[0,5],[L]:[1,2],[v]:[0,2],[R]:[1,3]},(([e,t],s)=>{W(e?["get","has","forEach"]:["get"],(e=>j[e+c+s]=(...t)=>a[e+s](...t))),j[d+c+s+i]=(...e)=>a[d+s+i](...x(e,0,t),((s,...n)=>e[t](j,...n)),!0)})),_(j)})),He=Ae((e=>{const s=he(),n=he(),a=he(),o=he(),[r,l,i]=Qe((()=>y)),[c,d,u,h,g,f,,,L,w,I,S]=De(e,(()=>[he(),he(),he(),he()]),(e=>k(e)?void 0:e+t),r,l),R=(e,t,s)=>M(f(e),(([n,,a])=>{if(!re(a,t)){const o=ke();if(g(e)!=T(e))Me(o,t);else{let e=t;for(;!k(e)&&!re(o,e);)Me(o,e),e=fe(n,e)}if(s)return o;we(a,t,o)}return fe(a,t)})),v=(e,t)=>M(f(e),(([,,e])=>we(e,t))),T=e=>fe(s,e),y={setRelationshipDefinition:(e,t,r,i)=>(we(s,e,r),L(e,t,((t,s)=>{const r=ke(),i=ke(),c=ke(),[d,u]=f(e);de(s,(([t,s],n)=>{k(t)||(Me(i,t),M(fe(u,t),(e=>{ue(e,n),le(e)&&we(u,t)}))),k(s)||(Me(i,s),re(u,s)||we(u,s,ke()),Me(fe(u,s),n)),Me(r,n),we(d,n,s),Le(fe(o,e),(t=>{re(R(e,t),n)&&Me(c,t)}))})),t(),de(r,(t=>l(n,[e,t]))),de(i,(t=>l(a,[e,t]))),de(c,(t=>{v(e,t),l(o,[e,t])}))}),Je(i)),y),delRelationshipDefinition:e=>(we(s,e),w(e),y),getStore:c,getRelationshipIds:d,forEachRelationship:t=>u((s=>t(s,(t=>e.forEachRow(g(s),t))))),hasRelationship:h,getLocalTableId:g,getRemoteTableId:T,getRemoteRowId:(e,t)=>fe(f(e)?.[0],t),getLocalRowIds:(e,t)=>ie(fe(f(e)?.[1],t)),getLinkedRowIds:(e,t)=>k(f(e))?[t]:ie(R(e,t,!0)),addRelationshipIdsListener:I,addRemoteRowIdListener:(e,t,s)=>r(s,n,[e,t]),addLocalRowIdsListener:(e,t,s)=>r(s,a,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(R(e,t),r(s,o,[e,t])),delListener:e=>(v(...i(e)??[]),y),destroy:S,getListenerStats:()=>({})};return _(y)})),Ke=e=>[e,e],Ue=()=>[he(),he()],Xe=e=>[...e],Ye=([e,t])=>e===t,Ze=e=>JSON.stringify(e,((e,t)=>E(t,Map)?X.fromEntries([...t]):t)),_e=JSON.parse,et=(e,t,s)=>k(e)||!ee(e)||ae(e)||Z(e)?(s?.(),!1):(ne(e,((s,n)=>{t(s,n)||se(e,n)})),!ae(e)),tt=(e,t,s)=>we(e,t,fe(e,t)==-s?void 0:s),st=()=>{let e,t,s=!1,n=!1,o=0;const c=he(),u=he(),S=he(),b=he(),V=he(),m=he(),E=he(),A=he(),F=he(),Q=he(),N=he(),j=he(),$=he(),q=he(),G=ke(),K=he(),U=he(),X=he(),Y=he(),Z=Ue(),ee=Ue(),ie=Ue(),be=Ue(),De=Ue(),Je=Ue(),Ae=Ue(),xe=Ue(),ze=Ue(),Oe=Ue(),je=Ue(),Pe=Ue(),We=Ue(),Be=Ue(),$e=Ue(),qe=he(),Ge=Ue(),[He,nt,at,ot]=Qe((()=>Rs)),rt=e=>{if(!et(e,((e,t)=>z([r,l],t))))return!1;const t=e[r];return!(!D(t)&&t!=a||(Ve(e[l])!=t&&se(e,l),0))},lt=(t,s)=>(!e||re(N,s)||zt(s))&&et(t,((e,t)=>it(s,t,e)),(()=>zt(s))),it=(e,t,s,n)=>et(n?s:ht(s,e,t),((n,a)=>M(ct(e,t,a,n),(e=>(s[a]=e,!0)),(()=>!1))),(()=>zt(e,t))),ct=(t,s,n,a)=>e?M(fe(fe(N,t),n),(e=>Ve(a)!=e[r]?zt(t,s,n,a,e[l]):a),(()=>zt(t,s,n,a))):k(Ve(a))?zt(t,s,n,a):a,dt=(e,t)=>et(t?e:gt(e),((t,s)=>M(ut(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>Nt())),ut=(e,s)=>t?M(fe($,e),(t=>Ve(s)!=t[r]?Nt(e,s,t[l]):s),(()=>Nt(e,s))):k(Ve(s))?Nt(e,s):s,ht=(e,t,s)=>(M(fe(j,t),(([n,a])=>{de(n,((t,s)=>{te(e,s)||(e[s]=t)})),de(a,(n=>{te(e,n)||zt(t,s,n)}))})),e),gt=e=>(t&&(de(q,((t,s)=>{te(e,s)||(e[s]=t)})),de(G,(t=>{te(e,t)||Nt(t)}))),e),ft=e=>Se(N,e,((e,t,s)=>{const n=he(),a=ke();Se(Ie(N,t,he),s,((e,t,s)=>{we(e,t,s),M(s[l],(e=>we(n,t,e)),(()=>Me(a,t)))})),we(j,t,[n,a])}),((e,t)=>{we(N,t),we(j,t)})),Lt=e=>Se($,e,((e,t,s)=>{we($,t,s),M(s[l],(e=>we(q,t,e)),(()=>Me(G,t)))}),((e,t)=>{we($,t),we(q,t),ue(G,t)})),wt=e=>ae(e)?ds():os(e),It=e=>Se(X,e,((e,t,s)=>St(t,s)),((e,t)=>mt(t))),St=(e,t)=>Se(Ie(X,e,(()=>(Dt(e,1),we(K,e,Fe()),we(U,e,he()),he()))),t,((t,s,n)=>Rt(e,t,s,n)),((t,s)=>Et(e,t,s))),Rt=(e,t,s,n,a)=>Se(Ie(t,s,(()=>(Jt(e,s,1),he()))),n,((t,n,a)=>vt(e,s,t,n,a)),((n,o)=>kt(e,t,s,n,o,a))),vt=(e,t,s,n,a)=>{re(s,n)||At(e,t,n,1);const o=fe(s,n);a!==o&&(xt(e,t,n,o,a),we(s,n,a))},Tt=(e,t,s,n,a)=>M(fe(t,s),(t=>vt(e,s,t,n,a)),(()=>Rt(e,t,s,ht({[n]:a},e,s)))),yt=e=>ae(e)?gs():rs(e),Ct=e=>Se(Y,e,((e,t,s)=>pt(t,s)),((e,t)=>Mt(t))),pt=(e,t)=>{re(Y,e)||Ft(e,1);const s=fe(Y,e);t!==s&&(Qt(e,s,t),we(Y,e,t))},bt=(e,t)=>{const[s]=fe(K,e),n=s(t);return re(fe(X,e),n)?bt(e,t):n},Vt=e=>fe(X,e)??St(e,{}),mt=e=>St(e,{}),Et=(e,t,s)=>{const[,n]=fe(K,e);n(s),Rt(e,t,s,{},!0)},kt=(e,t,s,n,a,o)=>{const r=fe(fe(j,e)?.[0],a);if(!k(r)&&!o)return vt(e,s,n,a,r);const l=t=>{xt(e,s,t,fe(n,t)),At(e,s,t,-1),we(n,t)};k(r)?l(a):Le(n,l),le(n)&&(Jt(e,s,-1),le(we(t,s))&&(Dt(e,-1),we(X,e),we(K,e),we(U,e)))},Mt=e=>{const t=fe(q,e);if(!k(t))return pt(e,t);Qt(e,fe(Y,e)),Ft(e,-1),we(Y,e)},Dt=(e,t)=>tt(c,e,t),Jt=(e,t,s)=>tt(Ie(b,e,he),t,s)&&we(S,e,Ie(S,e,(()=>0))+s),At=(e,t,s,n)=>{const a=fe(U,e),o=fe(a,s)??0;(0==o&&1==n||1==o&&-1==n)&&tt(Ie(u,e,he),s,n),we(a,s,o!=-n?o+n:null),tt(Ie(Ie(V,e,he),t,he),s,n)},xt=(e,t,s,n,a)=>Ie(Ie(Ie(m,e,he),t,he),s,(()=>[n,0]))[1]=a,Ft=(e,t)=>tt(E,e,t),Qt=(e,t,s)=>Ie(A,e,(()=>[t,0]))[1]=s,zt=(e,t,s,n,a)=>(H(Ie(Ie(Ie(F,e,he),t,he),s,(()=>[])),n),a),Nt=(e,t,s)=>(H(Ie(Q,e,(()=>[])),t),s),Ot=(e,t,s)=>M(fe(fe(fe(m,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...Ke(ts(e,t,s))])),jt=e=>M(fe(A,e),(([e,t])=>[!0,e,t]),(()=>[!1,...Ke(as(e))])),Pt=e=>le(F)||le(je[e])?0:de(e?pe(F):F,((t,s)=>de(t,((t,n)=>de(t,((t,a)=>nt(je[e],[s,n,a],t))))))),Wt=e=>le(Q)||le(Pe[e])?0:de(e?ye(Q):Q,((t,s)=>nt(Pe[e],[s],t))),Bt=(e,t,s)=>{if(!le(t))return nt(e,s,(()=>Re(t))),1},$t=e=>{const t=le(Ae[e]),s=le(ze[e])&&le(be[e])&&le(De[e])&&le(Je[e])&&t&&le(ee[e]),n=le(Oe[e])&&le(xe[e])&&le(ie[e])&&le(Z[e]);if(!s||!n){const a=e?[ye(c),Ce(u),ye(S),Ce(b),pe(V),pe(m)]:[c,u,S,b,V,m];if(!s){Bt(ee[e],a[0]),de(a[1],((t,s)=>Bt(be[e],t,[s]))),de(a[2],((t,s)=>{0!=t&&nt(De[e],[s],Yt(s))}));const s=ke();de(a[3],((n,a)=>{Bt(Je[e],n,[a])&&!t&&(nt(Ae[e],[a,null]),Me(s,a))})),t||de(a[5],((t,n)=>{if(!re(s,n)){const s=ke();de(t,(e=>de(e,(([t,n],a)=>n!==t?Me(s,a):ue(e,a))))),de(s,(t=>nt(Ae[e],[n,t])))}})),de(a[4],((t,s)=>de(t,((t,n)=>Bt(ze[e],t,[s,n])))))}if(!n){let t;de(a[5],((s,n)=>{let a;de(s,((s,o)=>{let r;de(s,(([s,l],i)=>{l!==s&&(nt(Oe[e],[n,o,i],l,s,Ot),t=a=r=1)})),r&&nt(xe[e],[n,o],Ot)})),a&&nt(ie[e],[n],Ot)})),t&&nt(Z[e],void 0,Ot)}}},qt=e=>{const t=le(Be[e]),s=le($e[e])&&le(We[e]);if(!t||!s){const n=e?[ye(E),ye(A)]:[E,A];if(t||Bt(Be[e],n[0]),!s){let t;de(n[1],(([s,n],a)=>{n!==s&&(nt($e[e],[a],n,s,jt),t=1)})),t&&nt(We[e],void 0,jt)}}},Gt=(e,...t)=>(ws((()=>e(...B(t,p)))),Rs),Ht=()=>[Re(m,((e,t)=>-1===fe(c,t)?null:Re(e,((e,s)=>-1===fe(fe(b,t),s)?null:Re(e,(([,e])=>e??null),((e,t)=>Ye(t)))),ae)),ae),Re(A,(([,e])=>e??null),((e,t)=>Ye(t)))],Kt=()=>({cellsTouched:s,valuesTouched:n,changedCells:Te(m,Xe,Ye),invalidCells:Te(F),changedValues:Re(A,Xe,Ye),invalidValues:Re(Q),changedTableIds:Re(c),changedRowIds:ve(b),changedCellIds:Te(V),changedValueIds:Re(E)}),Ut=()=>Te(X),Xt=()=>ge(X),Yt=e=>oe(fe(X,p(e))),Zt=e=>ge(fe(X,p(e))),_t=(e,t,s,n=0,a)=>{return B(x(P((o=fe(X,p(e)),r=(e,s)=>[k(t)?s:fe(e,p(t)),s],B([...o?.entries()??[]],(([e,t])=>r(t,e)))),(([e],[t])=>Ne(e,t)*(s?-1:1))),n,k(a)?a:n+a),(([,e])=>e));var o,r},es=(e,t)=>ge(fe(fe(X,p(e)),p(t))),ts=(e,t,s)=>fe(fe(fe(X,p(e)),p(t)),p(s)),ss=()=>Re(Y),ns=()=>ge(Y),as=e=>fe(Y,p(e)),os=e=>Gt((()=>(e=>et(e,lt,zt))(e)?It(e):0)),rs=e=>Gt((()=>dt(e)?Ct(e):0)),ls=e=>{try{wt(_e(e))}catch{}return Rs},is=t=>Gt((()=>{if((e=et(t,(e=>et(e,rt))))&&(ft(t),!le(X))){const e=Ut();ds(),os(e)}})),cs=e=>Gt((()=>{if(t=(e=>et(e,rt))(e)){const s=ss();Ls(),gs(),t=!0,Lt(e),rs(s)}})),ds=()=>Gt((()=>It({}))),us=e=>Gt((e=>re(X,e)?mt(e):0),e),hs=(e,t)=>Gt(((e,t)=>M(fe(X,e),(s=>re(s,t)?Et(e,s,t):0))),e,t),gs=()=>Gt((()=>Ct({}))),fs=()=>Gt((()=>{ft({}),e=!1})),Ls=()=>Gt((()=>{Lt({}),t=!1})),ws=(e,t)=>{if(-1!=o){Is();const s=e();return Ss(t),s}},Is=()=>(-1!=o&&o++,1==o&&nt(qe,void 0,Ht,Kt),Rs),Ss=e=>(o>0&&(o--,0==o&&(s=!le(m),n=!le(A),o=1,Pt(1),s&&$t(1),Wt(1),n&&qt(1),e?.(Ht,Kt)&&(de(m,((e,t)=>de(e,((e,s)=>de(e,(([e],n)=>me(Rs,t,s,n,e))))))),de(A,(([e],t)=>Ee(Rs,t,e))),s=n=!1),nt(Ge[0],void 0,Ht,Kt),o=-1,Pt(0),s&&$t(0),Wt(0),n&&qt(0),nt(Ge[1],void 0,Ht,Kt),o=0,s=n=!1,W([c,u,S,b,V,m,F,E,A,Q],ce))),Rs),Rs={getContent:()=>[Ut(),ss()],getTables:Ut,getTableIds:Xt,getTable:e=>ve(fe(X,p(e))),getTableCellIds:e=>ge(fe(U,p(e))),getRowCount:Yt,getRowIds:Zt,getSortedRowIds:_t,getRow:(e,t)=>Re(fe(fe(X,p(e)),p(t))),getCellIds:es,getCell:ts,getValues:ss,getValueIds:ns,getValue:as,hasTables:()=>!le(X),hasTable:e=>re(X,p(e)),hasTableCell:(e,t)=>re(fe(U,p(e)),p(t)),hasRow:(e,t)=>re(fe(X,p(e)),p(t)),hasCell:(e,t,s)=>re(fe(fe(X,p(e)),p(t)),p(s)),hasValues:()=>!le(Y),hasValue:e=>re(Y,p(e)),getTablesJson:()=>Ze(X),getValuesJson:()=>Ze(Y),getJson:()=>Ze([X,Y]),getTablesSchemaJson:()=>Ze(N),getValuesSchemaJson:()=>Ze($),getSchemaJson:()=>Ze([N,$]),hasTablesSchema:()=>e,hasValuesSchema:()=>t,setContent:([e,t])=>Gt((()=>{(ae(e)?ds:os)(e),(ae(t)?gs:rs)(t)})),setTables:os,setTable:(e,t)=>Gt((e=>lt(t,e)?St(e,t):0),e),setRow:(e,t,s)=>Gt(((e,t)=>it(e,t,s)?Rt(e,Vt(e),t,s):0),e,t),addRow:(e,t,s=!0)=>ws((()=>{let n;return it(e,n,t)&&(e=p(e),Rt(e,Vt(e),n=bt(e,s?1:0),t)),n})),setPartialRow:(e,t,s)=>Gt(((e,t)=>{if(it(e,t,s,1)){const n=Vt(e);ne(s,((s,a)=>Tt(e,n,t,a,s)))}}),e,t),setCell:(e,t,s,n)=>Gt(((e,t,s)=>M(ct(e,t,s,J(n)?n(ts(e,t,s)):n),(n=>Tt(e,Vt(e),t,s,n)))),e,t,s),setValues:rs,setPartialValues:e=>Gt((()=>dt(e,1)?ne(e,((e,t)=>pt(t,e))):0)),setValue:(e,t)=>Gt((e=>M(ut(e,J(t)?t(as(e)):t),(t=>pt(e,t)))),e),setTransactionChanges:e=>Gt((()=>{ne(e[0],((e,t)=>k(e)?us(t):ne(e,((e,s)=>k(e)?hs(t,s):ne(e,((e,n)=>me(Rs,t,s,n,e))))))),ne(e[1],((e,t)=>Ee(Rs,t,e)))})),setTablesJson:ls,setValuesJson:e=>{try{yt(_e(e))}catch{}return Rs},setJson:e=>Gt((()=>{try{const[t,s]=_e(e);wt(t),yt(s)}catch{ls(e)}})),setTablesSchema:is,setValuesSchema:cs,setSchema:(e,t)=>Gt((()=>{is(e),cs(t)})),delTables:ds,delTable:us,delRow:hs,delCell:(e,t,s,n)=>Gt(((e,t,s)=>M(fe(X,e),(a=>M(fe(a,t),(o=>re(o,s)?kt(e,a,t,o,s,n):0))))),e,t,s),delValues:gs,delValue:e=>Gt((e=>re(Y,e)?Mt(e):0),e),delTablesSchema:fs,delValuesSchema:Ls,delSchema:()=>Gt((()=>{fs(),Ls()})),transaction:ws,startTransaction:Is,finishTransaction:Ss,forEachTable:e=>de(X,((t,s)=>e(s,(e=>de(t,((t,s)=>e(s,(e=>Le(t,e))))))))),forEachTableCell:(e,t)=>Le(fe(U,p(e)),t),forEachRow:(e,t)=>de(fe(X,p(e)),((e,s)=>t(s,(t=>Le(e,t))))),forEachCell:(e,t,s)=>Le(fe(fe(X,p(e)),p(t)),s),forEachValue:e=>Le(Y,e),addSortedRowIdsListener:(e,t,s,n,a,o,r)=>{let l=_t(e,t,s,n,a);return He((()=>{const r=_t(e,t,s,n,a);O(r,l)||(l=r,o(Rs,e,t,s,n,a,l))}),Ae[r?1:0],[e,t],[Xt])},addStartTransactionListener:e=>He(e,qe),addWillFinishTransactionListener:e=>He(e,Ge[0]),addDidFinishTransactionListener:e=>He(e,Ge[1]),callListener:e=>(ot(e),Rs),delListener:e=>(at(e),Rs),getListenerStats:()=>({}),createStore:st,addListener:He,callListeners:nt};return ne({[g]:[0,Z],[f]:[0,ee],[h]:[1,ie,[Xt]],[h+v]:[1,be,[Xt]],[w]:[1,De,[Xt]],[I]:[1,Je,[Xt]],[L]:[2,xe,[Xt,Zt]],[v]:[2,ze,[Xt,Zt]],[R]:[3,Oe,[Xt,Zt,es],e=>Ke(ts(...e))],InvalidCell:[3,je],[y]:[0,We],[C]:[0,Be],[T]:[1,$e,[ns],e=>Ke(as(e[0]))],InvalidValue:[1,Pe]},(([e,t,s,n],a)=>{Rs[d+a+i]=(...a)=>He(a[e],t[a[e+1]?1:0],e>0?x(a,0,e):void 0,s,n)})),_(Rs)};export{ze as createCheckpoints,qe as createCustomPersister,Oe as createIndexes,We as createMetrics,Ge as createQueries,He as createRelationships,st as createStore,Ne as defaultSorter};
Binary file