tinybase 4.0.0-beta.3 → 4.0.0-beta.5

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 (282) hide show
  1. package/lib/cjs/persisters/persister-automerge.cjs +1 -0
  2. package/lib/cjs/persisters/persister-automerge.cjs.gz +0 -0
  3. package/lib/cjs/persisters/persister-browser.cjs +1 -0
  4. package/lib/cjs/persisters/persister-browser.cjs.gz +0 -0
  5. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs +1 -0
  6. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  7. package/lib/cjs/persisters/persister-file.cjs +1 -0
  8. package/lib/cjs/persisters/persister-file.cjs.gz +0 -0
  9. package/lib/cjs/persisters/persister-remote.cjs +1 -0
  10. package/lib/cjs/persisters/persister-remote.cjs.gz +0 -0
  11. package/lib/cjs/persisters/persister-sqlite-wasm.cjs +1 -0
  12. package/lib/cjs/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  13. package/lib/cjs/persisters/persister-sqlite3.cjs +1 -0
  14. package/lib/cjs/persisters/persister-sqlite3.cjs.gz +0 -0
  15. package/lib/cjs/persisters/persister-yjs.cjs +1 -0
  16. package/lib/cjs/persisters/persister-yjs.cjs.gz +0 -0
  17. package/lib/cjs/persisters.cjs +1 -1
  18. package/lib/cjs/persisters.cjs.gz +0 -0
  19. package/lib/cjs/queries.cjs +1 -1
  20. package/lib/cjs/queries.cjs.gz +0 -0
  21. package/lib/cjs/store.cjs +1 -1
  22. package/lib/cjs/store.cjs.gz +0 -0
  23. package/lib/cjs/tinybase.cjs +1 -1
  24. package/lib/cjs/tinybase.cjs.gz +0 -0
  25. package/lib/cjs/tools.cjs +1 -1
  26. package/lib/cjs/tools.cjs.gz +0 -0
  27. package/lib/cjs/ui-react.cjs +1 -1
  28. package/lib/cjs/ui-react.cjs.gz +0 -0
  29. package/lib/cjs-es6/persisters/persister-automerge.cjs +1 -0
  30. package/lib/cjs-es6/persisters/persister-automerge.cjs.gz +0 -0
  31. package/lib/cjs-es6/persisters/persister-browser.cjs +1 -0
  32. package/lib/cjs-es6/persisters/persister-browser.cjs.gz +0 -0
  33. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs +1 -0
  34. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  35. package/lib/cjs-es6/persisters/persister-file.cjs +1 -0
  36. package/lib/cjs-es6/persisters/persister-file.cjs.gz +0 -0
  37. package/lib/cjs-es6/persisters/persister-remote.cjs +1 -0
  38. package/lib/cjs-es6/persisters/persister-remote.cjs.gz +0 -0
  39. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs +1 -0
  40. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  41. package/lib/cjs-es6/persisters/persister-sqlite3.cjs +1 -0
  42. package/lib/cjs-es6/persisters/persister-sqlite3.cjs.gz +0 -0
  43. package/lib/cjs-es6/persisters/persister-yjs.cjs +1 -0
  44. package/lib/cjs-es6/persisters/persister-yjs.cjs.gz +0 -0
  45. package/lib/cjs-es6/persisters.cjs +1 -1
  46. package/lib/cjs-es6/persisters.cjs.gz +0 -0
  47. package/lib/cjs-es6/queries.cjs +1 -1
  48. package/lib/cjs-es6/queries.cjs.gz +0 -0
  49. package/lib/cjs-es6/store.cjs +1 -1
  50. package/lib/cjs-es6/store.cjs.gz +0 -0
  51. package/lib/cjs-es6/tinybase.cjs +1 -1
  52. package/lib/cjs-es6/tinybase.cjs.gz +0 -0
  53. package/lib/cjs-es6/tools.cjs +1 -1
  54. package/lib/cjs-es6/tools.cjs.gz +0 -0
  55. package/lib/cjs-es6/ui-react.cjs +1 -1
  56. package/lib/cjs-es6/ui-react.cjs.gz +0 -0
  57. package/lib/debug/{persister-automerge.js → persisters/persister-automerge.js} +57 -30
  58. package/lib/debug/{persister-browser.js → persisters/persister-browser.js} +48 -19
  59. package/lib/debug/persisters/persister-cr-sqlite-wasm.js +665 -0
  60. package/lib/debug/{persister-file.js → persisters/persister-file.js} +50 -24
  61. package/lib/debug/{persister-remote.js → persisters/persister-remote.js} +47 -18
  62. package/lib/debug/persisters/persister-sqlite-wasm.js +673 -0
  63. package/lib/debug/persisters/persister-sqlite3.js +676 -0
  64. package/lib/debug/{persister-yjs.js → persisters/persister-yjs.js} +48 -19
  65. package/lib/debug/persisters.js +46 -17
  66. package/lib/debug/queries.js +1 -1
  67. package/lib/debug/store.js +104 -40
  68. package/lib/debug/tinybase.js +148 -57
  69. package/lib/debug/tools.js +129 -27
  70. package/lib/debug/ui-react.js +24 -0
  71. package/lib/es6/persisters/persister-automerge.js +1 -0
  72. package/lib/es6/persisters/persister-automerge.js.gz +0 -0
  73. package/lib/es6/persisters/persister-browser.js +1 -0
  74. package/lib/es6/persisters/persister-browser.js.gz +0 -0
  75. package/lib/es6/persisters/persister-cr-sqlite-wasm.js +1 -0
  76. package/lib/es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  77. package/lib/es6/persisters/persister-file.js +1 -0
  78. package/lib/es6/persisters/persister-file.js.gz +0 -0
  79. package/lib/es6/persisters/persister-remote.js +1 -0
  80. package/lib/es6/persisters/persister-remote.js.gz +0 -0
  81. package/lib/es6/persisters/persister-sqlite-wasm.js +1 -0
  82. package/lib/es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  83. package/lib/es6/persisters/persister-sqlite3.js +1 -0
  84. package/lib/es6/persisters/persister-sqlite3.js.gz +0 -0
  85. package/lib/es6/persisters/persister-yjs.js +1 -0
  86. package/lib/es6/persisters/persister-yjs.js.gz +0 -0
  87. package/lib/es6/persisters.js +1 -1
  88. package/lib/es6/persisters.js.gz +0 -0
  89. package/lib/es6/queries.js +1 -1
  90. package/lib/es6/queries.js.gz +0 -0
  91. package/lib/es6/store.js +1 -1
  92. package/lib/es6/store.js.gz +0 -0
  93. package/lib/es6/tinybase.js +1 -1
  94. package/lib/es6/tinybase.js.gz +0 -0
  95. package/lib/es6/tools.js +1 -1
  96. package/lib/es6/tools.js.gz +0 -0
  97. package/lib/es6/ui-react.js +1 -1
  98. package/lib/es6/ui-react.js.gz +0 -0
  99. package/lib/persisters/persister-automerge.js +1 -0
  100. package/lib/persisters/persister-automerge.js.gz +0 -0
  101. package/lib/persisters/persister-browser.js +1 -0
  102. package/lib/persisters/persister-browser.js.gz +0 -0
  103. package/lib/persisters/persister-cr-sqlite-wasm.js +1 -0
  104. package/lib/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  105. package/lib/persisters/persister-file.js +1 -0
  106. package/lib/persisters/persister-file.js.gz +0 -0
  107. package/lib/persisters/persister-remote.js +1 -0
  108. package/lib/persisters/persister-remote.js.gz +0 -0
  109. package/lib/persisters/persister-sqlite-wasm.js +1 -0
  110. package/lib/persisters/persister-sqlite-wasm.js.gz +0 -0
  111. package/lib/persisters/persister-sqlite3.js +1 -0
  112. package/lib/persisters/persister-sqlite3.js.gz +0 -0
  113. package/lib/persisters/persister-yjs.js +1 -0
  114. package/lib/persisters/persister-yjs.js.gz +0 -0
  115. package/lib/persisters.js +1 -1
  116. package/lib/persisters.js.gz +0 -0
  117. package/lib/queries.js +1 -1
  118. package/lib/queries.js.gz +0 -0
  119. package/lib/store.js +1 -1
  120. package/lib/store.js.gz +0 -0
  121. package/lib/tinybase.js +1 -1
  122. package/lib/tinybase.js.gz +0 -0
  123. package/lib/tools.js +1 -1
  124. package/lib/tools.js.gz +0 -0
  125. package/lib/types/checkpoints.d.ts +0 -27
  126. package/lib/types/common.d.ts +0 -9
  127. package/lib/types/indexes.d.ts +0 -26
  128. package/lib/types/metrics.d.ts +0 -23
  129. package/lib/types/{persister-automerge.d.ts → persisters/persister-automerge.d.ts} +4 -6
  130. package/lib/types/{persister-browser.d.ts → persisters/persister-browser.d.ts} +2 -5
  131. package/lib/types/persisters/persister-cr-sqlite-wasm.d.ts +95 -0
  132. package/lib/types/{persister-file.d.ts → persisters/persister-file.d.ts} +3 -5
  133. package/lib/types/{persister-remote.d.ts → persisters/persister-remote.d.ts} +2 -4
  134. package/lib/types/persisters/persister-sqlite-wasm.d.ts +102 -0
  135. package/lib/types/persisters/persister-sqlite3.d.ts +109 -0
  136. package/lib/types/{persister-yjs.d.ts → persisters/persister-yjs.d.ts} +4 -6
  137. package/lib/types/persisters.d.ts +517 -27
  138. package/lib/types/queries.d.ts +52 -127
  139. package/lib/types/relationships.d.ts +0 -26
  140. package/lib/types/store.d.ts +397 -193
  141. package/lib/types/tinybase.d.ts +0 -1
  142. package/lib/types/tools.d.ts +15 -28
  143. package/lib/types/ui-react.d.ts +196 -181
  144. package/lib/types/with-schemas/checkpoints.d.ts +5 -32
  145. package/lib/types/with-schemas/common.d.ts +0 -9
  146. package/lib/types/with-schemas/indexes.d.ts +9 -35
  147. package/lib/types/with-schemas/metrics.d.ts +9 -32
  148. package/lib/types/with-schemas/{persister-automerge.d.ts → persisters/persister-automerge.d.ts} +4 -6
  149. package/lib/types/with-schemas/{persister-browser.d.ts → persisters/persister-browser.d.ts} +2 -5
  150. package/lib/types/with-schemas/persisters/persister-cr-sqlite-wasm.d.ts +105 -0
  151. package/lib/types/with-schemas/{persister-file.d.ts → persisters/persister-file.d.ts} +3 -5
  152. package/lib/types/with-schemas/{persister-remote.d.ts → persisters/persister-remote.d.ts} +2 -4
  153. package/lib/types/with-schemas/persisters/persister-sqlite-wasm.d.ts +113 -0
  154. package/lib/types/with-schemas/persisters/persister-sqlite3.d.ts +119 -0
  155. package/lib/types/with-schemas/{persister-yjs.d.ts → persisters/persister-yjs.d.ts} +4 -6
  156. package/lib/types/with-schemas/persisters.d.ts +534 -29
  157. package/lib/types/with-schemas/queries.d.ts +61 -224
  158. package/lib/types/with-schemas/relationships.d.ts +9 -35
  159. package/lib/types/with-schemas/store.d.ts +544 -236
  160. package/lib/types/with-schemas/tinybase.d.ts +0 -1
  161. package/lib/types/with-schemas/tools.d.ts +19 -32
  162. package/lib/types/with-schemas/ui-react.d.ts +221 -186
  163. package/lib/ui-react.js +1 -1
  164. package/lib/ui-react.js.gz +0 -0
  165. package/lib/umd/persisters/persister-automerge.js +1 -0
  166. package/lib/umd/persisters/persister-automerge.js.gz +0 -0
  167. package/lib/umd/persisters/persister-browser.js +1 -0
  168. package/lib/umd/persisters/persister-browser.js.gz +0 -0
  169. package/lib/umd/persisters/persister-cr-sqlite-wasm.js +1 -0
  170. package/lib/umd/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  171. package/lib/umd/persisters/persister-file.js +1 -0
  172. package/lib/umd/persisters/persister-file.js.gz +0 -0
  173. package/lib/umd/persisters/persister-remote.js +1 -0
  174. package/lib/umd/persisters/persister-remote.js.gz +0 -0
  175. package/lib/umd/persisters/persister-sqlite-wasm.js +1 -0
  176. package/lib/umd/persisters/persister-sqlite-wasm.js.gz +0 -0
  177. package/lib/umd/persisters/persister-sqlite3.js +1 -0
  178. package/lib/umd/persisters/persister-sqlite3.js.gz +0 -0
  179. package/lib/umd/persisters/persister-yjs.js +1 -0
  180. package/lib/umd/persisters/persister-yjs.js.gz +0 -0
  181. package/lib/umd/persisters.js +1 -1
  182. package/lib/umd/persisters.js.gz +0 -0
  183. package/lib/umd/queries.js +1 -1
  184. package/lib/umd/queries.js.gz +0 -0
  185. package/lib/umd/store.js +1 -1
  186. package/lib/umd/store.js.gz +0 -0
  187. package/lib/umd/tinybase.js +1 -1
  188. package/lib/umd/tinybase.js.gz +0 -0
  189. package/lib/umd/tools.js +1 -1
  190. package/lib/umd/tools.js.gz +0 -0
  191. package/lib/umd/ui-react.js +1 -1
  192. package/lib/umd/ui-react.js.gz +0 -0
  193. package/lib/umd-es6/persisters/persister-automerge.js +1 -0
  194. package/lib/umd-es6/persisters/persister-automerge.js.gz +0 -0
  195. package/lib/umd-es6/persisters/persister-browser.js +1 -0
  196. package/lib/umd-es6/persisters/persister-browser.js.gz +0 -0
  197. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js +1 -0
  198. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  199. package/lib/umd-es6/persisters/persister-file.js +1 -0
  200. package/lib/umd-es6/persisters/persister-file.js.gz +0 -0
  201. package/lib/umd-es6/persisters/persister-remote.js +1 -0
  202. package/lib/umd-es6/persisters/persister-remote.js.gz +0 -0
  203. package/lib/umd-es6/persisters/persister-sqlite-wasm.js +1 -0
  204. package/lib/umd-es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  205. package/lib/umd-es6/persisters/persister-sqlite3.js +1 -0
  206. package/lib/umd-es6/persisters/persister-sqlite3.js.gz +0 -0
  207. package/lib/umd-es6/persisters/persister-yjs.js +1 -0
  208. package/lib/umd-es6/persisters/persister-yjs.js.gz +0 -0
  209. package/lib/umd-es6/persisters.js +1 -1
  210. package/lib/umd-es6/persisters.js.gz +0 -0
  211. package/lib/umd-es6/queries.js +1 -1
  212. package/lib/umd-es6/queries.js.gz +0 -0
  213. package/lib/umd-es6/store.js +1 -1
  214. package/lib/umd-es6/store.js.gz +0 -0
  215. package/lib/umd-es6/tinybase.js +1 -1
  216. package/lib/umd-es6/tinybase.js.gz +0 -0
  217. package/lib/umd-es6/tools.js +1 -1
  218. package/lib/umd-es6/tools.js.gz +0 -0
  219. package/lib/umd-es6/ui-react.js +1 -1
  220. package/lib/umd-es6/ui-react.js.gz +0 -0
  221. package/package.json +39 -22
  222. package/readme.md +3 -3
  223. package/lib/cjs/persister-automerge.cjs +0 -1
  224. package/lib/cjs/persister-automerge.cjs.gz +0 -0
  225. package/lib/cjs/persister-browser.cjs +0 -1
  226. package/lib/cjs/persister-browser.cjs.gz +0 -0
  227. package/lib/cjs/persister-file.cjs +0 -1
  228. package/lib/cjs/persister-file.cjs.gz +0 -0
  229. package/lib/cjs/persister-remote.cjs +0 -1
  230. package/lib/cjs/persister-remote.cjs.gz +0 -0
  231. package/lib/cjs/persister-yjs.cjs +0 -1
  232. package/lib/cjs/persister-yjs.cjs.gz +0 -0
  233. package/lib/cjs-es6/persister-automerge.cjs +0 -1
  234. package/lib/cjs-es6/persister-automerge.cjs.gz +0 -0
  235. package/lib/cjs-es6/persister-browser.cjs +0 -1
  236. package/lib/cjs-es6/persister-browser.cjs.gz +0 -0
  237. package/lib/cjs-es6/persister-file.cjs +0 -1
  238. package/lib/cjs-es6/persister-file.cjs.gz +0 -0
  239. package/lib/cjs-es6/persister-remote.cjs +0 -1
  240. package/lib/cjs-es6/persister-remote.cjs.gz +0 -0
  241. package/lib/cjs-es6/persister-yjs.cjs +0 -1
  242. package/lib/cjs-es6/persister-yjs.cjs.gz +0 -0
  243. package/lib/es6/persister-automerge.js +0 -1
  244. package/lib/es6/persister-automerge.js.gz +0 -0
  245. package/lib/es6/persister-browser.js +0 -1
  246. package/lib/es6/persister-browser.js.gz +0 -0
  247. package/lib/es6/persister-file.js +0 -1
  248. package/lib/es6/persister-file.js.gz +0 -0
  249. package/lib/es6/persister-remote.js +0 -1
  250. package/lib/es6/persister-remote.js.gz +0 -0
  251. package/lib/es6/persister-yjs.js +0 -1
  252. package/lib/es6/persister-yjs.js.gz +0 -0
  253. package/lib/persister-automerge.js +0 -1
  254. package/lib/persister-automerge.js.gz +0 -0
  255. package/lib/persister-browser.js +0 -1
  256. package/lib/persister-browser.js.gz +0 -0
  257. package/lib/persister-file.js +0 -1
  258. package/lib/persister-file.js.gz +0 -0
  259. package/lib/persister-remote.js +0 -1
  260. package/lib/persister-remote.js.gz +0 -0
  261. package/lib/persister-yjs.js +0 -1
  262. package/lib/persister-yjs.js.gz +0 -0
  263. package/lib/umd/persister-automerge.js +0 -1
  264. package/lib/umd/persister-automerge.js.gz +0 -0
  265. package/lib/umd/persister-browser.js +0 -1
  266. package/lib/umd/persister-browser.js.gz +0 -0
  267. package/lib/umd/persister-file.js +0 -1
  268. package/lib/umd/persister-file.js.gz +0 -0
  269. package/lib/umd/persister-remote.js +0 -1
  270. package/lib/umd/persister-remote.js.gz +0 -0
  271. package/lib/umd/persister-yjs.js +0 -1
  272. package/lib/umd/persister-yjs.js.gz +0 -0
  273. package/lib/umd-es6/persister-automerge.js +0 -1
  274. package/lib/umd-es6/persister-automerge.js.gz +0 -0
  275. package/lib/umd-es6/persister-browser.js +0 -1
  276. package/lib/umd-es6/persister-browser.js.gz +0 -0
  277. package/lib/umd-es6/persister-file.js +0 -1
  278. package/lib/umd-es6/persister-file.js.gz +0 -0
  279. package/lib/umd-es6/persister-remote.js +0 -1
  280. package/lib/umd-es6/persister-remote.js.gz +0 -0
  281. package/lib/umd-es6/persister-yjs.js +0 -1
  282. package/lib/umd-es6/persister-yjs.js.gz +0 -0
@@ -1 +1 @@
1
- "use strict";var e=require("react");const s=e=>typeof e,t="",o=s(t),r="Ids",l="Table",u=l+"s",n=l+r,d="Row",i=d+r,a="Sorted"+d+r,p="Cell",c=p+r,I="Value",x=I+"s",w=I+r,b=(e,s)=>e.map(s),R=e=>null==e,C=(e,s,t)=>R(e)?null==t?void 0:t():s(e),k=e=>s(e)==o,v=()=>{},{createContext:g,useContext:m}=e,h=g([]),y=(e,s)=>{const t=m(h);return R(e)?t[s]:k(e)?((e,s)=>C(e,(e=>e[s])))(t[s+1],e):e},L=(e,s)=>{const t=y(e,s);return R(e)||k(e)?t:e},V=e=>L(e,0),S=e=>L(e,2),f=e=>L(e,4),T=e=>L(e,6),P=e=>L(e,8),q=e=>L(e,10),{useCallback:O,useEffect:B,useMemo:M,useRef:D,useState:j}=e,A=(e,s,t=[])=>{const o=M((()=>s(e)),[e,...t]);return B((()=>()=>o.destroy()),[o]),o},E=(e,s,t,o=[],r)=>{const[,l]=j(),u=O((()=>{var r,l;return null!=(l=null==(r=null==s?void 0:s["get"+e])?void 0:r.call(s,...o))?l:t}),[s,...o]),[n]=j(u),d=D(n);return M((()=>d.current=u()),[u]),F(e,s,((...e)=>{d.current=R(r)?u():e[r],l([])}),[],o),d.current},F=(e,s,t,o=[],r=[],...l)=>B((()=>{var o;const u=null==(o=null==s?void 0:s["add"+e+"Listener"])?void 0:o.call(s,...r,t,...l);return()=>null==s?void 0:s.delListener(u)}),[s,...r,...o,...l]),G=(e,s,t,o=[],r=v,l=[],...u)=>{const n=V(e);return O((e=>C(n,(o=>C(t(e,o),(e=>r(o["set"+s](...u,e),e)))))),[n,s,...o,...l,...u])},Q=(e,s,t=v,o=[],...r)=>{const l=V(e);return O((()=>t(null==l?void 0:l["del"+s](...r))),[l,s,...o,...r])},U=(e,s,t)=>{const o=q(e);return O((()=>null==o?void 0:o[s](t)),[o,s,t])},z=e=>E(n,V(e),[],[]),H=(e,s)=>E(i,V(s),[],[e]),J=(e,s,t,o=0,r,l)=>E(a,V(l),[],[e,s,t,o,r],6),K=(e,s,t)=>E(c,V(t),[],[e,s]),N=(e,s,t,o)=>E(p,V(o),void 0,[e,s,t],4),W=e=>E(w,V(e),[],[]),X=(e,s)=>E(I,V(s),void 0,[e]),Y=(e,s)=>E("Metric",S(s),void 0,[e]),Z=(e,s)=>E("SliceIds",f(s),[],[e]),$=(e,s,t)=>E("SliceRowIds",f(t),[],[e,s]),_=(e,s,t)=>E("RemoteRowId",T(t),void 0,[e,s]),ee=(e,s,t)=>E("LocalRowIds",T(t),[],[e,s]),se=(e,s,t)=>E("LinkedRowIds",T(t),[],[e,s]),te=(e,s)=>E("ResultRowIds",P(s),[],[e]),oe=(e,s,t,o=0,r,l)=>E("ResultSortedRowIds",P(l),[],[e,s,t,o,r],6),re=(e,s,t)=>E("ResultCellIds",P(t),[],[e,s]),le=(e,s,t,o)=>E("ResultCell",P(o),void 0,[e,s,t]),ue=e=>E("CheckpointIds",q(e),[[],void 0,[]]),ne=(e,s)=>E("Checkpoint",q(s),void 0,[e]),de=e=>U(e,"goBackward"),ie=e=>U(e,"goForward");var ae=Object.defineProperty,pe=Object.defineProperties,ce=Object.getOwnPropertyDescriptors,Ie=Object.getOwnPropertySymbols,xe=Object.prototype.hasOwnProperty,we=Object.prototype.propertyIsEnumerable,be=(e,s,t)=>s in e?ae(e,s,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[s]=t,Re=(e,s)=>{for(var t in s||(s={}))xe.call(s,t)&&be(e,t,s[t]);if(Ie)for(var t of Ie(s))we.call(s,t)&&be(e,t,s[t]);return e},Ce=(e,s)=>pe(e,ce(s)),ke=(e,s)=>{var t={};for(var o in e)xe.call(e,o)&&s.indexOf(o)<0&&(t[o]=e[o]);if(null!=e&&Ie)for(var o of Ie(e))s.indexOf(o)<0&&we.call(e,o)&&(t[o]=e[o]);return t};const{createElement:ve,useMemo:ge}=e,me=({tableId:e,store:s,rowComponent:t=Pe,getRowComponentProps:o,separator:r,debugIds:l},u)=>fe(b(u,(r=>ve(t,Ce(Re({},Se(o,r)),{key:r,tableId:e,rowId:r,store:s,debugIds:l})))),r,l,e),he=({queryId:e,queries:s,resultRowComponent:t=De,getResultRowComponentProps:o,separator:r,debugIds:l},u)=>fe(b(u,(r=>ve(t,Ce(Re({},Se(o,r)),{key:r,queryId:e,rowId:r,queries:s,debugIds:l})))),r,l,e),ye=e=>{const s=T(e);return[s,null==s?void 0:s.getStore()]},Le=({relationshipId:e,relationships:s,rowComponent:t=Pe,getRowComponentProps:o,separator:r,debugIds:l},u,n)=>{const[d,i]=ye(s),a=null==d?void 0:d.getLocalTableId(e),p=u(e,n,d);return fe(b(p,(e=>ve(t,Ce(Re({},Se(o,e)),{key:e,tableId:a,rowId:e,store:i,debugIds:l})))),r,l,n)},Ve=e=>({checkpoints:s,checkpointComponent:t=je,getCheckpointComponentProps:o,separator:r,debugIds:l})=>{const u=q(s);return fe(b(e(ue(u)),(e=>ve(t,Ce(Re({},Se(o,e)),{key:e,checkpoints:u,checkpointId:e,debugIds:l})))),r)},Se=(e,s)=>R(e)?{}:e(s),fe=(e,s,t,o)=>{const r=R(s)||!Array.isArray(e)?e:b(e,((e,t)=>t>0?[s,e]:e));return t?[o,":{",r,"}"]:r},Te=({tableId:e,rowId:s,cellId:o,store:r,debugIds:l})=>{var u;return fe(t+(null!=(u=N(e,s,o,r))?u:t),void 0,l,o)},Pe=({tableId:e,rowId:s,store:t,cellComponent:o=Te,getCellComponentProps:r,separator:l,debugIds:u})=>fe(b(K(e,s,t),(l=>ve(o,Ce(Re({},Se(r,l)),{key:l,tableId:e,rowId:s,cellId:l,store:t,debugIds:u})))),l,u,s),qe=e=>me(e,H(e.tableId,e.store)),Oe=({valueId:e,store:s,debugIds:o})=>{var r;return fe(t+(null!=(r=X(e,s))?r:t),void 0,o,e)},Be=({indexId:e,sliceId:s,indexes:t,rowComponent:o=Pe,getRowComponentProps:r,separator:l,debugIds:u})=>{const n=f(t),d=null==n?void 0:n.getStore(),i=null==n?void 0:n.getTableId(e),a=$(e,s,n);return fe(b(a,(e=>ve(o,Ce(Re({},Se(r,e)),{key:e,tableId:i,rowId:e,store:d,debugIds:u})))),l,u,s)},Me=({queryId:e,rowId:s,cellId:o,queries:r,debugIds:l})=>{var u;return fe(t+(null!=(u=le(e,s,o,r))?u:t),void 0,l,o)},De=({queryId:e,rowId:s,queries:t,resultCellComponent:o=Me,getResultCellComponentProps:r,separator:l,debugIds:u})=>fe(b(re(e,s,t),(l=>ve(o,Ce(Re({},Se(r,l)),{key:l,queryId:e,rowId:s,cellId:l,queries:t,debugIds:u})))),l,u,s),je=({checkpoints:e,checkpointId:s,debugIds:o})=>{var r;return fe(null!=(r=ne(s,e))?r:t,void 0,o,s)},Ae=Ve((e=>e[0])),Ee=Ve((e=>R(e[1])?[]:[e[1]])),Fe=Ve((e=>e[2]));exports.BackwardCheckpointsView=Ae,exports.CellView=Te,exports.CheckpointView=je,exports.CurrentCheckpointView=Ee,exports.ForwardCheckpointsView=Fe,exports.IndexView=({indexId:e,indexes:s,sliceComponent:t=Be,getSliceComponentProps:o,separator:r,debugIds:l})=>fe(b(Z(e,s),(r=>ve(t,Ce(Re({},Se(o,r)),{key:r,indexId:e,sliceId:r,indexes:s,debugIds:l})))),r,l,e),exports.LinkedRowsView=e=>Le(e,se,e.firstRowId),exports.LocalRowsView=e=>Le(e,ee,e.remoteRowId),exports.MetricView=({metricId:e,metrics:s,debugIds:o})=>{var r;return fe(null!=(r=Y(e,s))?r:t,void 0,o,e)},exports.Provider=({store:s,storesById:t,metrics:o,metricsById:r,indexes:l,indexesById:u,relationships:n,relationshipsById:d,queries:i,queriesById:a,checkpoints:p,checkpointsById:c,children:I})=>{const x=e.useContext(h);return ve(h.Provider,{value:ge((()=>[null!=s?s:x[0],Re(Re({},x[1]),t),null!=o?o:x[2],Re(Re({},x[3]),r),null!=l?l:x[4],Re(Re({},x[5]),u),null!=n?n:x[6],Re(Re({},x[7]),d),null!=i?i:x[8],Re(Re({},x[9]),a),null!=p?p:x[10],Re(Re({},x[11]),c)]),[s,t,o,r,l,u,n,d,i,a,p,c,x])},I)},exports.RemoteRowView=({relationshipId:e,localRowId:s,relationships:t,rowComponent:o=Pe,getRowComponentProps:r,debugIds:l})=>{const[u,n]=ye(t),d=null==u?void 0:u.getRemoteTableId(e),i=_(e,s,u);return fe(R(d)||R(i)?null:ve(o,Ce(Re({},Se(r,i)),{key:i,tableId:d,rowId:i,store:n,debugIds:l})),void 0,l,s)},exports.ResultCellView=Me,exports.ResultRowView=De,exports.ResultSortedTableView=e=>{var s=e,{cellId:t,descending:o,offset:r,limit:l}=s,u=ke(s,["cellId","descending","offset","limit"]);return he(u,oe(u.queryId,t,o,r,l,u.queries))},exports.ResultTableView=e=>he(e,te(e.queryId,e.queries)),exports.RowView=Pe,exports.SliceView=Be,exports.SortedTableView=e=>{var s=e,{cellId:t,descending:o,offset:r,limit:l}=s,u=ke(s,["cellId","descending","offset","limit"]);return me(u,J(u.tableId,t,o,r,l,u.store))},exports.TableView=qe,exports.TablesView=({store:e,tableComponent:s=qe,getTableComponentProps:t,separator:o,debugIds:r})=>fe(b(z(e),(o=>ve(s,Ce(Re({},Se(t,o)),{key:o,tableId:o,store:e,debugIds:r})))),o),exports.ValueView=Oe,exports.ValuesView=({store:e,valueComponent:s=Oe,getValueComponentProps:t,separator:o,debugIds:r})=>fe(b(W(e),(o=>ve(s,Ce(Re({},Se(t,o)),{key:o,valueId:o,store:e,debugIds:r})))),o),exports.tableView=me,exports.useAddRowCallback=(e,s,t=[],o,r=v,l=[],u=!0)=>{const n=V(o);return O((t=>C(n,(o=>C(s(t,o),(s=>r(o.addRow(e,s,u),o,s)))))),[n,e,...t,...l,u])},exports.useCell=N,exports.useCellIds=K,exports.useCellIdsListener=(e,s,t,o,r,l)=>F(c,V(l),t,o,[e,s],r),exports.useCellListener=(e,s,t,o,r,l,u)=>F(p,V(u),o,r,[e,s,t],l),exports.useCheckpoint=ne,exports.useCheckpointIds=ue,exports.useCheckpointIdsListener=(e,s,t)=>F("CheckpointIds",q(t),e,s),exports.useCheckpointListener=(e,s,t,o)=>F("Checkpoint",q(o),s,t,[e]),exports.useCheckpoints=e=>y(e,10),exports.useCreateCheckpoints=(e,s,t)=>A(e,s,t),exports.useCreateIndexes=(e,s,t)=>A(e,s,t),exports.useCreateMetrics=(e,s,t)=>A(e,s,t),exports.useCreatePersister=(e,s,t=[],o,r=[])=>{const[,l]=j(),u=M((()=>s(e)),[e,...t]);return B((()=>{var e;return e=function*(){yield null==o?void 0:o(u),l(1)},new Promise(((s,t)=>{var o=s=>{try{l(e.next(s))}catch(e){t(e)}},r=s=>{try{l(e.throw(s))}catch(e){t(e)}},l=e=>e.done?s(e.value):Promise.resolve(e.value).then(o,r);l((e=e.apply(void 0,null)).next())})),()=>{u.destroy()}}),[u,...r]),u},exports.useCreateQueries=(e,s,t)=>A(e,s,t),exports.useCreateRelationships=(e,s,t)=>A(e,s,t),exports.useCreateStore=(e,s=[])=>M(e,s),exports.useDelCellCallback=(e,s,t,o,r,l,u)=>Q(r,p,l,u,e,s,t,o),exports.useDelRowCallback=(e,s,t,o,r)=>Q(t,d,o,r,e,s),exports.useDelTableCallback=(e,s,t,o)=>Q(s,l,t,o,e),exports.useDelTablesCallback=(e,s,t)=>Q(e,u,s,t),exports.useDelValueCallback=(e,s,t,o)=>Q(s,I,t,o,e),exports.useDelValuesCallback=(e,s,t)=>Q(e,x,s,t),exports.useGoBackwardCallback=de,exports.useGoForwardCallback=ie,exports.useGoToCallback=(e,s=[],t,o=v,r=[])=>{const l=q(t);return O((s=>C(l,(t=>C(e(s),(e=>o(t.goTo(e),e)))))),[l,...s,...r])},exports.useIndexes=e=>y(e,4),exports.useLinkedRowIds=se,exports.useLinkedRowIdsListener=(e,s,t,o,r)=>F("LinkedRowIds",T(r),t,o,[e,s]),exports.useLocalRowIds=ee,exports.useLocalRowIdsListener=(e,s,t,o,r)=>F("LocalRowIds",T(r),t,o,[e,s]),exports.useMetric=Y,exports.useMetricListener=(e,s,t,o)=>F("Metric",S(o),s,t,[e]),exports.useMetrics=e=>y(e,2),exports.useQueries=e=>y(e,8),exports.useRedoInformation=e=>{var s;const o=q(e),[,,[r]]=ue(o);return[!R(r),ie(o),r,null!=(s=C(r,(e=>null==o?void 0:o.getCheckpoint(e))))?s:t]},exports.useRelationships=e=>y(e,6),exports.useRemoteRowId=_,exports.useRemoteRowIdListener=(e,s,t,o,r)=>F("RemoteRowId",T(r),t,o,[e,s]),exports.useResultCell=le,exports.useResultCellIds=re,exports.useResultCellIdsListener=(e,s,t,o,r)=>F("ResultCellIds",P(r),t,o,[e,s]),exports.useResultCellListener=(e,s,t,o,r,l)=>F("ResultCell",P(l),o,r,[e,s,t]),exports.useResultRow=(e,s,t)=>E("ResultRow",P(t),{},[e,s]),exports.useResultRowIds=te,exports.useResultRowIdsListener=(e,s,t,o)=>F("ResultRowIds",P(o),s,t,[e]),exports.useResultRowListener=(e,s,t,o,r)=>F("ResultRow",P(r),t,o,[e,s]),exports.useResultSortedRowIds=oe,exports.useResultSortedRowIdsListener=(e,s,t,o,r,l,u,n)=>F("ResultSortedRowIds",P(n),l,u,[e,s,t,o,r]),exports.useResultTable=(e,s)=>E("ResultTable",P(s),{},[e]),exports.useResultTableListener=(e,s,t,o)=>F("ResultTable",P(o),s,t,[e]),exports.useRow=(e,s,t)=>E(d,V(t),{},[e,s]),exports.useRowIds=H,exports.useRowIdsListener=(e,s,t,o,r)=>F(i,V(r),s,t,[e],o),exports.useRowListener=(e,s,t,o,r,l)=>F(d,V(l),t,o,[e,s],r),exports.useSetCellCallback=(e,s,t,o,r,l,u,n)=>G(l,p,o,r,u,n,e,s,t),exports.useSetCheckpointCallback=(e=v,s=[],t,o=v,r=[])=>{const l=q(t);return O((s=>C(l,(t=>{const r=e(s);o(t.addCheckpoint(r),t,r)}))),[l,...s,...r])},exports.useSetPartialRowCallback=(e,s,t,o,r,l,u)=>G(r,"PartialRow",t,o,l,u,e,s),exports.useSetPartialValuesCallback=(e,s,t,o,r)=>G(t,"PartialValues",e,s,o,r),exports.useSetRowCallback=(e,s,t,o,r,l,u)=>G(r,d,t,o,l,u,e,s),exports.useSetTableCallback=(e,s,t,o,r,u)=>G(o,l,s,t,r,u,e),exports.useSetTablesCallback=(e,s,t,o,r)=>G(t,u,e,s,o,r),exports.useSetValueCallback=(e,s,t,o,r,l)=>G(o,I,s,t,r,l,e),exports.useSetValuesCallback=(e,s,t,o,r)=>G(t,x,e,s,o,r),exports.useSliceIds=Z,exports.useSliceIdsListener=(e,s,t,o)=>F("SliceIds",f(o),s,t,[e]),exports.useSliceRowIds=$,exports.useSliceRowIdsListener=(e,s,t,o,r)=>F("SliceRowIds",f(r),t,o,[e,s]),exports.useSortedRowIds=J,exports.useSortedRowIdsListener=(e,s,t,o,r,l,u,n,d)=>F(a,V(d),l,u,[e,s,t,o,r],n),exports.useStore=e=>y(e,0),exports.useTable=(e,s)=>E(l,V(s),{},[e]),exports.useTableIds=z,exports.useTableIdsListener=(e,s,t,o)=>F(n,V(o),e,s,[],t),exports.useTableListener=(e,s,t,o,r)=>F(l,V(r),s,t,[e],o),exports.useTables=e=>E(u,V(e),{}),exports.useTablesListener=(e,s,t,o)=>F(u,V(o),e,s,[],t),exports.useUndoInformation=e=>{var s;const o=q(e),[r,l]=ue(o);return[(u=r,!(0==(e=>e.length)(u))),de(o),l,null!=(s=C(l,(e=>null==o?void 0:o.getCheckpoint(e))))?s:t];var u},exports.useValue=X,exports.useValueIds=W,exports.useValueIdsListener=(e,s,t,o)=>F(w,V(o),e,s,[],t),exports.useValueListener=(e,s,t,o,r)=>F(I,V(r),s,t,[e],o),exports.useValues=e=>E(x,V(e),{}),exports.useValuesListener=(e,s,t,o)=>F(x,V(o),e,s,[],t);
1
+ "use strict";var e=require("react");const s=e=>typeof e,t="",o=s(t),r="Ids",l="Table",u=l+"s",d=l+r,n="Row",i=n+r,a="Sorted"+n+r,p="Cell",c=p+r,I="Value",x=I+"s",w=I+r,b=(e,s)=>e.map(s),R=e=>null==e,C=(e,s,t)=>R(e)?null==t?void 0:t():s(e),k=e=>s(e)==o,v=()=>{},{createContext:g,useContext:m}=e,h=g([]),y=(e,s)=>{const t=m(h);return R(e)?t[s]:k(e)?((e,s)=>C(e,(e=>e[s])))(t[s+1],e):e},L=(e,s)=>{const t=y(e,s);return R(e)||k(e)?t:e},V=e=>L(e,0),S=e=>L(e,2),f=e=>L(e,4),T=e=>L(e,6),P=e=>L(e,8),q=e=>L(e,10),{useCallback:O,useEffect:B,useMemo:M,useRef:D,useState:j}=e,A=(e,s,t=[])=>{const o=M((()=>s(e)),[e,...t]);return B((()=>()=>o.destroy()),[o]),o},E=(e,s,t,o=[],r)=>{const[,l]=j(),u=O((()=>{var r,l;return null!=(l=null==(r=null==s?void 0:s["get"+e])?void 0:r.call(s,...o))?l:t}),[s,...o]),[d]=j(u),n=D(d);return M((()=>n.current=u()),[u]),F(e,s,((...e)=>{n.current=R(r)?u():e[r],l([])}),[],o),n.current},F=(e,s,t,o=[],r=[],...l)=>B((()=>{var o;const u=null==(o=null==s?void 0:s["add"+e+"Listener"])?void 0:o.call(s,...r,t,...l);return()=>null==s?void 0:s.delListener(u)}),[s,...r,...o,...l]),G=(e,s,t,o=[],r=v,l=[],...u)=>{const d=V(e);return O((e=>C(d,(o=>C(t(e,o),(e=>r(o["set"+s](...u,e),e)))))),[d,s,...o,...l,...u])},Q=(e,s,t=v,o=[],...r)=>{const l=V(e);return O((()=>t(null==l?void 0:l["del"+s](...r))),[l,s,...o,...r])},U=(e,s,t)=>{const o=q(e);return O((()=>null==o?void 0:o[s](t)),[o,s,t])},z=e=>E(d,V(e),[],[]),H=(e,s)=>E(i,V(s),[],[e]),J=(e,s,t,o=0,r,l)=>E(a,V(l),[],[e,s,t,o,r],6),K=(e,s,t)=>E(c,V(t),[],[e,s]),N=(e,s,t,o)=>E(p,V(o),void 0,[e,s,t],4),W=e=>E(w,V(e),[],[]),X=(e,s)=>E(I,V(s),void 0,[e]),Y=(e,s)=>E("Metric",S(s),void 0,[e]),Z=(e,s)=>E("SliceIds",f(s),[],[e]),$=(e,s,t)=>E("SliceRowIds",f(t),[],[e,s]),_=(e,s,t)=>E("RemoteRowId",T(t),void 0,[e,s]),ee=(e,s,t)=>E("LocalRowIds",T(t),[],[e,s]),se=(e,s,t)=>E("LinkedRowIds",T(t),[],[e,s]),te=(e,s)=>E("ResultRowIds",P(s),[],[e]),oe=(e,s,t,o=0,r,l)=>E("ResultSortedRowIds",P(l),[],[e,s,t,o,r],6),re=(e,s,t)=>E("ResultCellIds",P(t),[],[e,s]),le=(e,s,t,o)=>E("ResultCell",P(o),void 0,[e,s,t]),ue=e=>E("CheckpointIds",q(e),[[],void 0,[]]),de=(e,s)=>E("Checkpoint",q(s),void 0,[e]),ne=e=>U(e,"goBackward"),ie=e=>U(e,"goForward");var ae=Object.defineProperty,pe=Object.defineProperties,ce=Object.getOwnPropertyDescriptors,Ie=Object.getOwnPropertySymbols,xe=Object.prototype.hasOwnProperty,we=Object.prototype.propertyIsEnumerable,be=(e,s,t)=>s in e?ae(e,s,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[s]=t,Re=(e,s)=>{for(var t in s||(s={}))xe.call(s,t)&&be(e,t,s[t]);if(Ie)for(var t of Ie(s))we.call(s,t)&&be(e,t,s[t]);return e},Ce=(e,s)=>pe(e,ce(s)),ke=(e,s)=>{var t={};for(var o in e)xe.call(e,o)&&s.indexOf(o)<0&&(t[o]=e[o]);if(null!=e&&Ie)for(var o of Ie(e))s.indexOf(o)<0&&we.call(e,o)&&(t[o]=e[o]);return t};const{createElement:ve,useMemo:ge}=e,me=({tableId:e,store:s,rowComponent:t=Pe,getRowComponentProps:o,separator:r,debugIds:l},u)=>fe(b(u,(r=>ve(t,Ce(Re({},Se(o,r)),{key:r,tableId:e,rowId:r,store:s,debugIds:l})))),r,l,e),he=({queryId:e,queries:s,resultRowComponent:t=De,getResultRowComponentProps:o,separator:r,debugIds:l},u)=>fe(b(u,(r=>ve(t,Ce(Re({},Se(o,r)),{key:r,queryId:e,rowId:r,queries:s,debugIds:l})))),r,l,e),ye=e=>{const s=T(e);return[s,null==s?void 0:s.getStore()]},Le=({relationshipId:e,relationships:s,rowComponent:t=Pe,getRowComponentProps:o,separator:r,debugIds:l},u,d)=>{const[n,i]=ye(s),a=null==n?void 0:n.getLocalTableId(e),p=u(e,d,n);return fe(b(p,(e=>ve(t,Ce(Re({},Se(o,e)),{key:e,tableId:a,rowId:e,store:i,debugIds:l})))),r,l,d)},Ve=e=>({checkpoints:s,checkpointComponent:t=je,getCheckpointComponentProps:o,separator:r,debugIds:l})=>{const u=q(s);return fe(b(e(ue(u)),(e=>ve(t,Ce(Re({},Se(o,e)),{key:e,checkpoints:u,checkpointId:e,debugIds:l})))),r)},Se=(e,s)=>R(e)?{}:e(s),fe=(e,s,t,o)=>{const r=R(s)||!Array.isArray(e)?e:b(e,((e,t)=>t>0?[s,e]:e));return t?[o,":{",r,"}"]:r},Te=({tableId:e,rowId:s,cellId:o,store:r,debugIds:l})=>{var u;return fe(t+(null!=(u=N(e,s,o,r))?u:t),void 0,l,o)},Pe=({tableId:e,rowId:s,store:t,cellComponent:o=Te,getCellComponentProps:r,separator:l,debugIds:u})=>fe(b(K(e,s,t),(l=>ve(o,Ce(Re({},Se(r,l)),{key:l,tableId:e,rowId:s,cellId:l,store:t,debugIds:u})))),l,u,s),qe=e=>me(e,H(e.tableId,e.store)),Oe=({valueId:e,store:s,debugIds:o})=>{var r;return fe(t+(null!=(r=X(e,s))?r:t),void 0,o,e)},Be=({indexId:e,sliceId:s,indexes:t,rowComponent:o=Pe,getRowComponentProps:r,separator:l,debugIds:u})=>{const d=f(t),n=null==d?void 0:d.getStore(),i=null==d?void 0:d.getTableId(e),a=$(e,s,d);return fe(b(a,(e=>ve(o,Ce(Re({},Se(r,e)),{key:e,tableId:i,rowId:e,store:n,debugIds:u})))),l,u,s)},Me=({queryId:e,rowId:s,cellId:o,queries:r,debugIds:l})=>{var u;return fe(t+(null!=(u=le(e,s,o,r))?u:t),void 0,l,o)},De=({queryId:e,rowId:s,queries:t,resultCellComponent:o=Me,getResultCellComponentProps:r,separator:l,debugIds:u})=>fe(b(re(e,s,t),(l=>ve(o,Ce(Re({},Se(r,l)),{key:l,queryId:e,rowId:s,cellId:l,queries:t,debugIds:u})))),l,u,s),je=({checkpoints:e,checkpointId:s,debugIds:o})=>{var r;return fe(null!=(r=de(s,e))?r:t,void 0,o,s)},Ae=Ve((e=>e[0])),Ee=Ve((e=>R(e[1])?[]:[e[1]])),Fe=Ve((e=>e[2]));exports.BackwardCheckpointsView=Ae,exports.CellView=Te,exports.CheckpointView=je,exports.CurrentCheckpointView=Ee,exports.ForwardCheckpointsView=Fe,exports.IndexView=({indexId:e,indexes:s,sliceComponent:t=Be,getSliceComponentProps:o,separator:r,debugIds:l})=>fe(b(Z(e,s),(r=>ve(t,Ce(Re({},Se(o,r)),{key:r,indexId:e,sliceId:r,indexes:s,debugIds:l})))),r,l,e),exports.LinkedRowsView=e=>Le(e,se,e.firstRowId),exports.LocalRowsView=e=>Le(e,ee,e.remoteRowId),exports.MetricView=({metricId:e,metrics:s,debugIds:o})=>{var r;return fe(null!=(r=Y(e,s))?r:t,void 0,o,e)},exports.Provider=({store:s,storesById:t,metrics:o,metricsById:r,indexes:l,indexesById:u,relationships:d,relationshipsById:n,queries:i,queriesById:a,checkpoints:p,checkpointsById:c,children:I})=>{const x=e.useContext(h);return ve(h.Provider,{value:ge((()=>[null!=s?s:x[0],Re(Re({},x[1]),t),null!=o?o:x[2],Re(Re({},x[3]),r),null!=l?l:x[4],Re(Re({},x[5]),u),null!=d?d:x[6],Re(Re({},x[7]),n),null!=i?i:x[8],Re(Re({},x[9]),a),null!=p?p:x[10],Re(Re({},x[11]),c)]),[s,t,o,r,l,u,d,n,i,a,p,c,x])},I)},exports.RemoteRowView=({relationshipId:e,localRowId:s,relationships:t,rowComponent:o=Pe,getRowComponentProps:r,debugIds:l})=>{const[u,d]=ye(t),n=null==u?void 0:u.getRemoteTableId(e),i=_(e,s,u);return fe(R(n)||R(i)?null:ve(o,Ce(Re({},Se(r,i)),{key:i,tableId:n,rowId:i,store:d,debugIds:l})),void 0,l,s)},exports.ResultCellView=Me,exports.ResultRowView=De,exports.ResultSortedTableView=e=>{var s=e,{cellId:t,descending:o,offset:r,limit:l}=s,u=ke(s,["cellId","descending","offset","limit"]);return he(u,oe(u.queryId,t,o,r,l,u.queries))},exports.ResultTableView=e=>he(e,te(e.queryId,e.queries)),exports.RowView=Pe,exports.SliceView=Be,exports.SortedTableView=e=>{var s=e,{cellId:t,descending:o,offset:r,limit:l}=s,u=ke(s,["cellId","descending","offset","limit"]);return me(u,J(u.tableId,t,o,r,l,u.store))},exports.TableView=qe,exports.TablesView=({store:e,tableComponent:s=qe,getTableComponentProps:t,separator:o,debugIds:r})=>fe(b(z(e),(o=>ve(s,Ce(Re({},Se(t,o)),{key:o,tableId:o,store:e,debugIds:r})))),o),exports.ValueView=Oe,exports.ValuesView=({store:e,valueComponent:s=Oe,getValueComponentProps:t,separator:o,debugIds:r})=>fe(b(W(e),(o=>ve(s,Ce(Re({},Se(t,o)),{key:o,valueId:o,store:e,debugIds:r})))),o),exports.tableView=me,exports.useAddRowCallback=(e,s,t=[],o,r=v,l=[],u=!0)=>{const d=V(o);return O((t=>C(d,(o=>C(s(t,o),(s=>r(o.addRow(e,s,u),o,s)))))),[d,e,...t,...l,u])},exports.useCell=N,exports.useCellIds=K,exports.useCellIdsListener=(e,s,t,o,r,l)=>F(c,V(l),t,o,[e,s],r),exports.useCellListener=(e,s,t,o,r,l,u)=>F(p,V(u),o,r,[e,s,t],l),exports.useCheckpoint=de,exports.useCheckpointIds=ue,exports.useCheckpointIdsListener=(e,s,t)=>F("CheckpointIds",q(t),e,s),exports.useCheckpointListener=(e,s,t,o)=>F("Checkpoint",q(o),s,t,[e]),exports.useCheckpoints=e=>y(e,10),exports.useCreateCheckpoints=(e,s,t)=>A(e,s,t),exports.useCreateIndexes=(e,s,t)=>A(e,s,t),exports.useCreateMetrics=(e,s,t)=>A(e,s,t),exports.useCreatePersister=(e,s,t=[],o,r=[])=>{const[,l]=j(),u=M((()=>s(e)),[e,...t]);return B((()=>{var e;return e=function*(){yield null==o?void 0:o(u),l(1)},new Promise(((s,t)=>{var o=s=>{try{l(e.next(s))}catch(e){t(e)}},r=s=>{try{l(e.throw(s))}catch(e){t(e)}},l=e=>e.done?s(e.value):Promise.resolve(e.value).then(o,r);l((e=e.apply(void 0,null)).next())})),()=>{u.destroy()}}),[u,...r]),u},exports.useCreateQueries=(e,s,t)=>A(e,s,t),exports.useCreateRelationships=(e,s,t)=>A(e,s,t),exports.useCreateStore=(e,s=[])=>M(e,s),exports.useDelCellCallback=(e,s,t,o,r,l,u)=>Q(r,p,l,u,e,s,t,o),exports.useDelRowCallback=(e,s,t,o,r)=>Q(t,n,o,r,e,s),exports.useDelTableCallback=(e,s,t,o)=>Q(s,l,t,o,e),exports.useDelTablesCallback=(e,s,t)=>Q(e,u,s,t),exports.useDelValueCallback=(e,s,t,o)=>Q(s,I,t,o,e),exports.useDelValuesCallback=(e,s,t)=>Q(e,x,s,t),exports.useGoBackwardCallback=ne,exports.useGoForwardCallback=ie,exports.useGoToCallback=(e,s=[],t,o=v,r=[])=>{const l=q(t);return O((s=>C(l,(t=>C(e(s),(e=>o(t.goTo(e),e)))))),[l,...s,...r])},exports.useIndexes=e=>y(e,4),exports.useLinkedRowIds=se,exports.useLinkedRowIdsListener=(e,s,t,o,r)=>F("LinkedRowIds",T(r),t,o,[e,s]),exports.useLocalRowIds=ee,exports.useLocalRowIdsListener=(e,s,t,o,r)=>F("LocalRowIds",T(r),t,o,[e,s]),exports.useMetric=Y,exports.useMetricListener=(e,s,t,o)=>F("Metric",S(o),s,t,[e]),exports.useMetrics=e=>y(e,2),exports.useQueries=e=>y(e,8),exports.useRedoInformation=e=>{var s;const o=q(e),[,,[r]]=ue(o);return[!R(r),ie(o),r,null!=(s=C(r,(e=>null==o?void 0:o.getCheckpoint(e))))?s:t]},exports.useRelationships=e=>y(e,6),exports.useRemoteRowId=_,exports.useRemoteRowIdListener=(e,s,t,o,r)=>F("RemoteRowId",T(r),t,o,[e,s]),exports.useResultCell=le,exports.useResultCellIds=re,exports.useResultCellIdsListener=(e,s,t,o,r)=>F("ResultCellIds",P(r),t,o,[e,s]),exports.useResultCellListener=(e,s,t,o,r,l)=>F("ResultCell",P(l),o,r,[e,s,t]),exports.useResultRow=(e,s,t)=>E("ResultRow",P(t),{},[e,s]),exports.useResultRowIds=te,exports.useResultRowIdsListener=(e,s,t,o)=>F("ResultRowIds",P(o),s,t,[e]),exports.useResultRowListener=(e,s,t,o,r)=>F("ResultRow",P(r),t,o,[e,s]),exports.useResultSortedRowIds=oe,exports.useResultSortedRowIdsListener=(e,s,t,o,r,l,u,d)=>F("ResultSortedRowIds",P(d),l,u,[e,s,t,o,r]),exports.useResultTable=(e,s)=>E("ResultTable",P(s),{},[e]),exports.useResultTableListener=(e,s,t,o)=>F("ResultTable",P(o),s,t,[e]),exports.useRow=(e,s,t)=>E(n,V(t),{},[e,s]),exports.useRowIds=H,exports.useRowIdsListener=(e,s,t,o,r)=>F(i,V(r),s,t,[e],o),exports.useRowListener=(e,s,t,o,r,l)=>F(n,V(l),t,o,[e,s],r),exports.useSetCellCallback=(e,s,t,o,r,l,u,d)=>G(l,p,o,r,u,d,e,s,t),exports.useSetCheckpointCallback=(e=v,s=[],t,o=v,r=[])=>{const l=q(t);return O((s=>C(l,(t=>{const r=e(s);o(t.addCheckpoint(r),t,r)}))),[l,...s,...r])},exports.useSetPartialRowCallback=(e,s,t,o,r,l,u)=>G(r,"PartialRow",t,o,l,u,e,s),exports.useSetPartialValuesCallback=(e,s,t,o,r)=>G(t,"PartialValues",e,s,o,r),exports.useSetRowCallback=(e,s,t,o,r,l,u)=>G(r,n,t,o,l,u,e,s),exports.useSetTableCallback=(e,s,t,o,r,u)=>G(o,l,s,t,r,u,e),exports.useSetTablesCallback=(e,s,t,o,r)=>G(t,u,e,s,o,r),exports.useSetValueCallback=(e,s,t,o,r,l)=>G(o,I,s,t,r,l,e),exports.useSetValuesCallback=(e,s,t,o,r)=>G(t,x,e,s,o,r),exports.useSliceIds=Z,exports.useSliceIdsListener=(e,s,t,o)=>F("SliceIds",f(o),s,t,[e]),exports.useSliceRowIds=$,exports.useSliceRowIdsListener=(e,s,t,o,r)=>F("SliceRowIds",f(r),t,o,[e,s]),exports.useSortedRowIds=J,exports.useSortedRowIdsListener=(e,s,t,o,r,l,u,d,n)=>F(a,V(n),l,u,[e,s,t,o,r],d),exports.useStore=e=>y(e,0),exports.useTable=(e,s)=>E(l,V(s),{},[e]),exports.useTableCellIds=(e,s)=>E(l+c,V(s),[],[e]),exports.useTableCellIdsListener=(e,s,t,o,r)=>F(l+c,V(r),s,t,[e],o),exports.useTableIds=z,exports.useTableIdsListener=(e,s,t,o)=>F(d,V(o),e,s,[],t),exports.useTableListener=(e,s,t,o,r)=>F(l,V(r),s,t,[e],o),exports.useTables=e=>E(u,V(e),{}),exports.useTablesListener=(e,s,t,o)=>F(u,V(o),e,s,[],t),exports.useUndoInformation=e=>{var s;const o=q(e),[r,l]=ue(o);return[(u=r,!(0==(e=>e.length)(u))),ne(o),l,null!=(s=C(l,(e=>null==o?void 0:o.getCheckpoint(e))))?s:t];var u},exports.useValue=X,exports.useValueIds=W,exports.useValueIdsListener=(e,s,t,o)=>F(w,V(o),e,s,[],t),exports.useValueListener=(e,s,t,o,r)=>F(I,V(r),s,t,[e],o),exports.useValues=e=>E(x,V(e),{}),exports.useValuesListener=(e,s,t,o)=>F(x,V(o),e,s,[],t);
Binary file
@@ -1,6 +1,9 @@
1
+ const TINYBASE = 'tinybase';
2
+
1
3
  const arrayMap = (array, cb) => array.map(cb);
2
4
  const arrayLength = (array) => array.length;
3
- const arrayIsEmpty = (array) => arrayLength(array) == 0;
5
+ const arrayPush = (array, ...values) => array.push(...values);
6
+ const arrayShift = (array) => array.shift();
4
7
 
5
8
  const isInstanceOf = (thing, cls) => thing instanceof cls;
6
9
  const isUndefined = (thing) => thing == void 0;
@@ -14,10 +17,14 @@ const isObject = (obj) =>
14
17
  isInstanceOf(obj, object) && obj.constructor == object;
15
18
  const objGet = (obj, id) => ifNotUndefined(obj, (obj2) => obj2[id]);
16
19
  const objHas = (obj, id) => !isUndefined(objGet(obj, id));
17
- const objDel = (obj, id) => delete obj[id];
20
+ const objDel = (obj, id) => {
21
+ delete obj[id];
22
+ return obj;
23
+ };
18
24
  const objMap = (obj, cb) =>
19
25
  arrayMap(object.entries(obj), ([id, value]) => cb(value, id));
20
- const objIsEmpty = (obj) => isObject(obj) && arrayIsEmpty(objIds(obj));
26
+ const objSize = (obj) => arrayLength(objIds(obj));
27
+ const objIsEmpty = (obj) => isObject(obj) && objSize(obj) == 0;
21
28
  const objEnsure = (obj, id, getDefaultValue) => {
22
29
  if (!objHas(obj, id)) {
23
30
  obj[id] = getDefaultValue();
@@ -36,8 +43,23 @@ const createCustomPersister = (
36
43
  let loadSave = 0;
37
44
  let loads = 0;
38
45
  let saves = 0;
39
- let listening = false;
46
+ let running = 0;
47
+ let listening = 0;
48
+ let action;
40
49
  let listeningHandle;
50
+ const scheduledActions = [];
51
+ const run = async () => {
52
+ /* istanbul ignore else */
53
+ if (!running) {
54
+ running = 1;
55
+ while (!isUndefined((action = arrayShift(scheduledActions)))) {
56
+ try {
57
+ await action();
58
+ } catch {}
59
+ }
60
+ running = 0;
61
+ }
62
+ };
41
63
  const loadLock = async (actions) => {
42
64
  /* istanbul ignore else */
43
65
  if (loadSave != 2) {
@@ -52,18 +74,18 @@ const createCustomPersister = (
52
74
  const persister = {
53
75
  load: async (initialTables = {}, initialValues = {}) => {
54
76
  await loadLock(async () => {
55
- let content;
56
77
  try {
57
- content = await getPersisted();
58
- } catch {}
59
- store.setContent(content ?? [initialTables, initialValues]);
78
+ store.setContent(await getPersisted());
79
+ } catch {
80
+ store.setContent([initialTables, initialValues]);
81
+ }
60
82
  });
61
83
  return persister;
62
84
  },
63
85
  startAutoLoad: async (initialTables = {}, initialValues = {}) => {
64
86
  persister.stopAutoLoad();
65
87
  await persister.load(initialTables, initialValues);
66
- listening = true;
88
+ listening = 1;
67
89
  listeningHandle = addPersisterListener(
68
90
  async (getContent, getTransactionChanges) => {
69
91
  await loadLock(async () => {
@@ -83,27 +105,33 @@ const createCustomPersister = (
83
105
  if (listening) {
84
106
  delPersisterListener(listeningHandle);
85
107
  listeningHandle = void 0;
86
- listening = false;
108
+ listening = 0;
87
109
  }
88
110
  return persister;
89
111
  },
90
112
  save: async (getTransactionChanges) => {
91
- /* istanbul ignore else */
92
- if (loadSave != 1) {
93
- loadSave = 2;
94
- {
95
- saves++;
113
+ await persister.schedule(async () => {
114
+ /* istanbul ignore else */
115
+ if (loadSave != 1) {
116
+ loadSave = 2;
117
+ {
118
+ saves++;
119
+ }
120
+ try {
121
+ await setPersisted(store.getContent, getTransactionChanges);
122
+ } catch {}
123
+ loadSave = 0;
96
124
  }
97
- await setPersisted(store.getContent, getTransactionChanges);
98
- loadSave = 0;
99
- }
125
+ });
100
126
  return persister;
101
127
  },
102
128
  startAutoSave: async () => {
103
129
  await persister.stopAutoSave().save();
104
130
  listenerId = store.addDidFinishTransactionListener(
105
- (_store, getTransactionChanges) =>
106
- persister.save(getTransactionChanges),
131
+ (_store, getTransactionChanges) => {
132
+ const transactionChanges = getTransactionChanges();
133
+ persister.save(() => transactionChanges);
134
+ },
107
135
  );
108
136
  return persister;
109
137
  },
@@ -111,6 +139,11 @@ const createCustomPersister = (
111
139
  ifNotUndefined(listenerId, store.delListener);
112
140
  return persister;
113
141
  },
142
+ schedule: async (...actions) => {
143
+ arrayPush(scheduledActions, ...actions);
144
+ await run();
145
+ return persister;
146
+ },
114
147
  getStore: () => store,
115
148
  destroy: () => persister.stopAutoLoad().stopAutoSave(),
116
149
  getStats: () => ({loads, saves}),
@@ -216,18 +249,13 @@ const docObjMatch = (docObjOrParent, idInParent, obj, set) => {
216
249
  }
217
250
  return changed;
218
251
  };
219
- const createAutomergePersister = (
220
- store,
221
- docHandle,
222
- docObjName = 'tinybase',
223
- ) => {
252
+ const createAutomergePersister = (store, docHandle, docObjName = TINYBASE) => {
224
253
  docHandle.change((doc) => (doc[docObjName] = {}));
225
- const getPersisted = async () => {
226
- return arrayLength(objIds(docHandle.doc[docObjName])) == 2
254
+ const getPersisted = async () =>
255
+ objSize(docHandle.doc[docObjName]) == 2
227
256
  ? getDocContent(docHandle.doc, docObjName)
228
257
  : void 0;
229
- };
230
- const setPersisted = async (getContent, getTransactionChanges) => {
258
+ const setPersisted = async (getContent, getTransactionChanges) =>
231
259
  docHandle.change((doc) =>
232
260
  setTransactionChangesToDoc(
233
261
  doc,
@@ -236,7 +264,6 @@ const createAutomergePersister = (
236
264
  getTransactionChanges,
237
265
  ),
238
266
  );
239
- };
240
267
  const addPersisterListener = (listener) => {
241
268
  const observer = ({doc}) => listener(() => getDocContent(doc, docObjName));
242
269
  docHandle.on('change', observer);
@@ -1,4 +1,6 @@
1
1
  const arrayReduce = (array, cb, initial) => array.reduce(cb, initial);
2
+ const arrayPush = (array, ...values) => array.push(...values);
3
+ const arrayShift = (array) => array.shift();
2
4
 
3
5
  const jsonString = (obj) =>
4
6
  JSON.stringify(obj, (_key, value) =>
@@ -13,6 +15,7 @@ const jsonString = (obj) =>
13
15
  )
14
16
  : value,
15
17
  );
18
+ const jsonParse = JSON.parse;
16
19
  const isInstanceOf = (thing, cls) => thing instanceof cls;
17
20
  const isUndefined = (thing) => thing == void 0;
18
21
  const ifNotUndefined = (value, then, otherwise) =>
@@ -32,8 +35,23 @@ const createCustomPersister = (
32
35
  let loadSave = 0;
33
36
  let loads = 0;
34
37
  let saves = 0;
35
- let listening = false;
38
+ let running = 0;
39
+ let listening = 0;
40
+ let action;
36
41
  let listeningHandle;
42
+ const scheduledActions = [];
43
+ const run = async () => {
44
+ /* istanbul ignore else */
45
+ if (!running) {
46
+ running = 1;
47
+ while (!isUndefined((action = arrayShift(scheduledActions)))) {
48
+ try {
49
+ await action();
50
+ } catch {}
51
+ }
52
+ running = 0;
53
+ }
54
+ };
37
55
  const loadLock = async (actions) => {
38
56
  /* istanbul ignore else */
39
57
  if (loadSave != 2) {
@@ -48,18 +66,18 @@ const createCustomPersister = (
48
66
  const persister = {
49
67
  load: async (initialTables = {}, initialValues = {}) => {
50
68
  await loadLock(async () => {
51
- let content;
52
69
  try {
53
- content = await getPersisted();
54
- } catch {}
55
- store.setContent(content ?? [initialTables, initialValues]);
70
+ store.setContent(await getPersisted());
71
+ } catch {
72
+ store.setContent([initialTables, initialValues]);
73
+ }
56
74
  });
57
75
  return persister;
58
76
  },
59
77
  startAutoLoad: async (initialTables = {}, initialValues = {}) => {
60
78
  persister.stopAutoLoad();
61
79
  await persister.load(initialTables, initialValues);
62
- listening = true;
80
+ listening = 1;
63
81
  listeningHandle = addPersisterListener(
64
82
  async (getContent, getTransactionChanges) => {
65
83
  await loadLock(async () => {
@@ -79,27 +97,33 @@ const createCustomPersister = (
79
97
  if (listening) {
80
98
  delPersisterListener(listeningHandle);
81
99
  listeningHandle = void 0;
82
- listening = false;
100
+ listening = 0;
83
101
  }
84
102
  return persister;
85
103
  },
86
104
  save: async (getTransactionChanges) => {
87
- /* istanbul ignore else */
88
- if (loadSave != 1) {
89
- loadSave = 2;
90
- {
91
- saves++;
105
+ await persister.schedule(async () => {
106
+ /* istanbul ignore else */
107
+ if (loadSave != 1) {
108
+ loadSave = 2;
109
+ {
110
+ saves++;
111
+ }
112
+ try {
113
+ await setPersisted(store.getContent, getTransactionChanges);
114
+ } catch {}
115
+ loadSave = 0;
92
116
  }
93
- await setPersisted(store.getContent, getTransactionChanges);
94
- loadSave = 0;
95
- }
117
+ });
96
118
  return persister;
97
119
  },
98
120
  startAutoSave: async () => {
99
121
  await persister.stopAutoSave().save();
100
122
  listenerId = store.addDidFinishTransactionListener(
101
- (_store, getTransactionChanges) =>
102
- persister.save(getTransactionChanges),
123
+ (_store, getTransactionChanges) => {
124
+ const transactionChanges = getTransactionChanges();
125
+ persister.save(() => transactionChanges);
126
+ },
103
127
  );
104
128
  return persister;
105
129
  },
@@ -107,6 +131,11 @@ const createCustomPersister = (
107
131
  ifNotUndefined(listenerId, store.delListener);
108
132
  return persister;
109
133
  },
134
+ schedule: async (...actions) => {
135
+ arrayPush(scheduledActions, ...actions);
136
+ await run();
137
+ return persister;
138
+ },
110
139
  getStore: () => store,
111
140
  destroy: () => persister.stopAutoLoad().stopAutoSave(),
112
141
  getStats: () => ({loads, saves}),
@@ -117,13 +146,13 @@ const createCustomPersister = (
117
146
  const STORAGE = 'storage';
118
147
  const WINDOW = globalThis.window;
119
148
  const getStoragePersister = (store, storageName, storage) => {
120
- const getPersisted = async () => JSON.parse(storage.getItem(storageName));
149
+ const getPersisted = async () => jsonParse(storage.getItem(storageName));
121
150
  const setPersisted = async (getContent) =>
122
151
  storage.setItem(storageName, jsonString(getContent()));
123
152
  const addPersisterListener = (listener) => {
124
153
  const storeListener = (event) => {
125
154
  if (event.storageArea === storage && event.key === storageName) {
126
- listener(() => JSON.parse(event.newValue));
155
+ listener(() => jsonParse(event.newValue));
127
156
  }
128
157
  };
129
158
  WINDOW.addEventListener(STORAGE, storeListener);