tinybase 6.0.0-beta.0 → 6.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1206) hide show
  1. package/@types/synchronizers/synchronizer-ws-server/index.d.cts +1 -2
  2. package/@types/synchronizers/synchronizer-ws-server/index.d.ts +1 -2
  3. package/@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.cts +1 -2
  4. package/@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.ts +1 -2
  5. package/min/ui-react/index.js +1 -1
  6. package/min/ui-react/index.js.gz +0 -0
  7. package/min/ui-react/with-schemas/index.js +1 -1
  8. package/min/ui-react/with-schemas/index.js.gz +0 -0
  9. package/min/ui-react-dom/index.js +1 -1
  10. package/min/ui-react-dom/index.js.gz +0 -0
  11. package/min/ui-react-dom/with-schemas/index.js +1 -1
  12. package/min/ui-react-dom/with-schemas/index.js.gz +0 -0
  13. package/min/ui-react-inspector/index.js +1 -1
  14. package/min/ui-react-inspector/index.js.gz +0 -0
  15. package/min/ui-react-inspector/with-schemas/index.js +1 -1
  16. package/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
  17. package/package.json +263 -2954
  18. package/readme.md +2 -2
  19. package/releases.md +1 -1
  20. package/ui-react/index.js +184 -155
  21. package/ui-react/with-schemas/index.js +184 -155
  22. package/ui-react-dom/index.js +285 -282
  23. package/ui-react-dom/with-schemas/index.js +285 -282
  24. package/ui-react-inspector/index.js +566 -583
  25. package/ui-react-inspector/with-schemas/index.js +566 -583
  26. package/@types/tools/index.d.cts +0 -588
  27. package/@types/tools/index.d.ts +0 -588
  28. package/@types/tools/with-schemas/index.d.cts +0 -599
  29. package/@types/tools/with-schemas/index.d.ts +0 -599
  30. package/cjs/checkpoints/index.cjs +0 -435
  31. package/cjs/checkpoints/with-schemas/index.cjs +0 -435
  32. package/cjs/common/index.cjs +0 -34
  33. package/cjs/common/with-schemas/index.cjs +0 -34
  34. package/cjs/es6/checkpoints/index.cjs +0 -475
  35. package/cjs/es6/checkpoints/with-schemas/index.cjs +0 -475
  36. package/cjs/es6/common/index.cjs +0 -36
  37. package/cjs/es6/common/with-schemas/index.cjs +0 -36
  38. package/cjs/es6/index.cjs +0 -3900
  39. package/cjs/es6/indexes/index.cjs +0 -598
  40. package/cjs/es6/indexes/with-schemas/index.cjs +0 -598
  41. package/cjs/es6/mergeable-store/index.cjs +0 -2385
  42. package/cjs/es6/mergeable-store/with-schemas/index.cjs +0 -2385
  43. package/cjs/es6/metrics/index.cjs +0 -579
  44. package/cjs/es6/metrics/with-schemas/index.cjs +0 -579
  45. package/cjs/es6/min/checkpoints/index.cjs +0 -1
  46. package/cjs/es6/min/checkpoints/index.cjs.gz +0 -0
  47. package/cjs/es6/min/checkpoints/with-schemas/index.cjs +0 -1
  48. package/cjs/es6/min/checkpoints/with-schemas/index.cjs.gz +0 -0
  49. package/cjs/es6/min/common/index.cjs +0 -1
  50. package/cjs/es6/min/common/index.cjs.gz +0 -0
  51. package/cjs/es6/min/common/with-schemas/index.cjs +0 -1
  52. package/cjs/es6/min/common/with-schemas/index.cjs.gz +0 -0
  53. package/cjs/es6/min/index.cjs +0 -1
  54. package/cjs/es6/min/index.cjs.gz +0 -0
  55. package/cjs/es6/min/indexes/index.cjs +0 -1
  56. package/cjs/es6/min/indexes/index.cjs.gz +0 -0
  57. package/cjs/es6/min/indexes/with-schemas/index.cjs +0 -1
  58. package/cjs/es6/min/indexes/with-schemas/index.cjs.gz +0 -0
  59. package/cjs/es6/min/mergeable-store/index.cjs +0 -1
  60. package/cjs/es6/min/mergeable-store/index.cjs.gz +0 -0
  61. package/cjs/es6/min/mergeable-store/with-schemas/index.cjs +0 -1
  62. package/cjs/es6/min/mergeable-store/with-schemas/index.cjs.gz +0 -0
  63. package/cjs/es6/min/metrics/index.cjs +0 -1
  64. package/cjs/es6/min/metrics/index.cjs.gz +0 -0
  65. package/cjs/es6/min/metrics/with-schemas/index.cjs +0 -1
  66. package/cjs/es6/min/metrics/with-schemas/index.cjs.gz +0 -0
  67. package/cjs/es6/min/persisters/index.cjs +0 -1
  68. package/cjs/es6/min/persisters/index.cjs.gz +0 -0
  69. package/cjs/es6/min/persisters/persister-automerge/index.cjs +0 -1
  70. package/cjs/es6/min/persisters/persister-automerge/index.cjs.gz +0 -0
  71. package/cjs/es6/min/persisters/persister-automerge/with-schemas/index.cjs +0 -1
  72. package/cjs/es6/min/persisters/persister-automerge/with-schemas/index.cjs.gz +0 -0
  73. package/cjs/es6/min/persisters/persister-browser/index.cjs +0 -1
  74. package/cjs/es6/min/persisters/persister-browser/index.cjs.gz +0 -0
  75. package/cjs/es6/min/persisters/persister-browser/with-schemas/index.cjs +0 -1
  76. package/cjs/es6/min/persisters/persister-browser/with-schemas/index.cjs.gz +0 -0
  77. package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/index.cjs +0 -1
  78. package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/index.cjs.gz +0 -0
  79. package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +0 -1
  80. package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
  81. package/cjs/es6/min/persisters/persister-durable-object-storage/index.cjs +0 -1
  82. package/cjs/es6/min/persisters/persister-durable-object-storage/index.cjs.gz +0 -0
  83. package/cjs/es6/min/persisters/persister-durable-object-storage/with-schemas/index.cjs +0 -1
  84. package/cjs/es6/min/persisters/persister-durable-object-storage/with-schemas/index.cjs.gz +0 -0
  85. package/cjs/es6/min/persisters/persister-electric-sql/index.cjs +0 -1
  86. package/cjs/es6/min/persisters/persister-electric-sql/index.cjs.gz +0 -0
  87. package/cjs/es6/min/persisters/persister-electric-sql/with-schemas/index.cjs +0 -1
  88. package/cjs/es6/min/persisters/persister-electric-sql/with-schemas/index.cjs.gz +0 -0
  89. package/cjs/es6/min/persisters/persister-expo-sqlite/index.cjs +0 -1
  90. package/cjs/es6/min/persisters/persister-expo-sqlite/index.cjs.gz +0 -0
  91. package/cjs/es6/min/persisters/persister-expo-sqlite/with-schemas/index.cjs +0 -1
  92. package/cjs/es6/min/persisters/persister-expo-sqlite/with-schemas/index.cjs.gz +0 -0
  93. package/cjs/es6/min/persisters/persister-file/index.cjs +0 -1
  94. package/cjs/es6/min/persisters/persister-file/index.cjs.gz +0 -0
  95. package/cjs/es6/min/persisters/persister-file/with-schemas/index.cjs +0 -1
  96. package/cjs/es6/min/persisters/persister-file/with-schemas/index.cjs.gz +0 -0
  97. package/cjs/es6/min/persisters/persister-indexed-db/index.cjs +0 -1
  98. package/cjs/es6/min/persisters/persister-indexed-db/index.cjs.gz +0 -0
  99. package/cjs/es6/min/persisters/persister-indexed-db/with-schemas/index.cjs +0 -1
  100. package/cjs/es6/min/persisters/persister-indexed-db/with-schemas/index.cjs.gz +0 -0
  101. package/cjs/es6/min/persisters/persister-libsql/index.cjs +0 -1
  102. package/cjs/es6/min/persisters/persister-libsql/index.cjs.gz +0 -0
  103. package/cjs/es6/min/persisters/persister-libsql/with-schemas/index.cjs +0 -1
  104. package/cjs/es6/min/persisters/persister-libsql/with-schemas/index.cjs.gz +0 -0
  105. package/cjs/es6/min/persisters/persister-partykit-client/index.cjs +0 -1
  106. package/cjs/es6/min/persisters/persister-partykit-client/index.cjs.gz +0 -0
  107. package/cjs/es6/min/persisters/persister-partykit-client/with-schemas/index.cjs +0 -1
  108. package/cjs/es6/min/persisters/persister-partykit-client/with-schemas/index.cjs.gz +0 -0
  109. package/cjs/es6/min/persisters/persister-partykit-server/index.cjs +0 -1
  110. package/cjs/es6/min/persisters/persister-partykit-server/index.cjs.gz +0 -0
  111. package/cjs/es6/min/persisters/persister-partykit-server/with-schemas/index.cjs +0 -1
  112. package/cjs/es6/min/persisters/persister-partykit-server/with-schemas/index.cjs.gz +0 -0
  113. package/cjs/es6/min/persisters/persister-pglite/index.cjs +0 -1
  114. package/cjs/es6/min/persisters/persister-pglite/index.cjs.gz +0 -0
  115. package/cjs/es6/min/persisters/persister-pglite/with-schemas/index.cjs +0 -1
  116. package/cjs/es6/min/persisters/persister-pglite/with-schemas/index.cjs.gz +0 -0
  117. package/cjs/es6/min/persisters/persister-postgres/index.cjs +0 -1
  118. package/cjs/es6/min/persisters/persister-postgres/index.cjs.gz +0 -0
  119. package/cjs/es6/min/persisters/persister-postgres/with-schemas/index.cjs +0 -1
  120. package/cjs/es6/min/persisters/persister-postgres/with-schemas/index.cjs.gz +0 -0
  121. package/cjs/es6/min/persisters/persister-powersync/index.cjs +0 -1
  122. package/cjs/es6/min/persisters/persister-powersync/index.cjs.gz +0 -0
  123. package/cjs/es6/min/persisters/persister-powersync/with-schemas/index.cjs +0 -1
  124. package/cjs/es6/min/persisters/persister-powersync/with-schemas/index.cjs.gz +0 -0
  125. package/cjs/es6/min/persisters/persister-remote/index.cjs +0 -1
  126. package/cjs/es6/min/persisters/persister-remote/index.cjs.gz +0 -0
  127. package/cjs/es6/min/persisters/persister-remote/with-schemas/index.cjs +0 -1
  128. package/cjs/es6/min/persisters/persister-remote/with-schemas/index.cjs.gz +0 -0
  129. package/cjs/es6/min/persisters/persister-sqlite-wasm/index.cjs +0 -1
  130. package/cjs/es6/min/persisters/persister-sqlite-wasm/index.cjs.gz +0 -0
  131. package/cjs/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs +0 -1
  132. package/cjs/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
  133. package/cjs/es6/min/persisters/persister-sqlite3/index.cjs +0 -1
  134. package/cjs/es6/min/persisters/persister-sqlite3/index.cjs.gz +0 -0
  135. package/cjs/es6/min/persisters/persister-sqlite3/with-schemas/index.cjs +0 -1
  136. package/cjs/es6/min/persisters/persister-sqlite3/with-schemas/index.cjs.gz +0 -0
  137. package/cjs/es6/min/persisters/persister-yjs/index.cjs +0 -1
  138. package/cjs/es6/min/persisters/persister-yjs/index.cjs.gz +0 -0
  139. package/cjs/es6/min/persisters/persister-yjs/with-schemas/index.cjs +0 -1
  140. package/cjs/es6/min/persisters/persister-yjs/with-schemas/index.cjs.gz +0 -0
  141. package/cjs/es6/min/persisters/with-schemas/index.cjs +0 -1
  142. package/cjs/es6/min/persisters/with-schemas/index.cjs.gz +0 -0
  143. package/cjs/es6/min/queries/index.cjs +0 -1
  144. package/cjs/es6/min/queries/index.cjs.gz +0 -0
  145. package/cjs/es6/min/queries/with-schemas/index.cjs +0 -1
  146. package/cjs/es6/min/queries/with-schemas/index.cjs.gz +0 -0
  147. package/cjs/es6/min/relationships/index.cjs +0 -1
  148. package/cjs/es6/min/relationships/index.cjs.gz +0 -0
  149. package/cjs/es6/min/relationships/with-schemas/index.cjs +0 -1
  150. package/cjs/es6/min/relationships/with-schemas/index.cjs.gz +0 -0
  151. package/cjs/es6/min/store/index.cjs +0 -1
  152. package/cjs/es6/min/store/index.cjs.gz +0 -0
  153. package/cjs/es6/min/store/with-schemas/index.cjs +0 -1
  154. package/cjs/es6/min/store/with-schemas/index.cjs.gz +0 -0
  155. package/cjs/es6/min/synchronizers/index.cjs +0 -1
  156. package/cjs/es6/min/synchronizers/index.cjs.gz +0 -0
  157. package/cjs/es6/min/synchronizers/synchronizer-broadcast-channel/index.cjs +0 -1
  158. package/cjs/es6/min/synchronizers/synchronizer-broadcast-channel/index.cjs.gz +0 -0
  159. package/cjs/es6/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs +0 -1
  160. package/cjs/es6/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs.gz +0 -0
  161. package/cjs/es6/min/synchronizers/synchronizer-local/index.cjs +0 -1
  162. package/cjs/es6/min/synchronizers/synchronizer-local/index.cjs.gz +0 -0
  163. package/cjs/es6/min/synchronizers/synchronizer-local/with-schemas/index.cjs +0 -1
  164. package/cjs/es6/min/synchronizers/synchronizer-local/with-schemas/index.cjs.gz +0 -0
  165. package/cjs/es6/min/synchronizers/synchronizer-ws-client/index.cjs +0 -1
  166. package/cjs/es6/min/synchronizers/synchronizer-ws-client/index.cjs.gz +0 -0
  167. package/cjs/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +0 -1
  168. package/cjs/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.cjs.gz +0 -0
  169. package/cjs/es6/min/synchronizers/synchronizer-ws-server/index.cjs +0 -1
  170. package/cjs/es6/min/synchronizers/synchronizer-ws-server/index.cjs.gz +0 -0
  171. package/cjs/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +0 -1
  172. package/cjs/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs.gz +0 -0
  173. package/cjs/es6/min/synchronizers/synchronizer-ws-server-durable-object/index.cjs +0 -1
  174. package/cjs/es6/min/synchronizers/synchronizer-ws-server-durable-object/index.cjs.gz +0 -0
  175. package/cjs/es6/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.cjs +0 -1
  176. package/cjs/es6/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.cjs.gz +0 -0
  177. package/cjs/es6/min/synchronizers/synchronizer-ws-server-simple/index.cjs +0 -1
  178. package/cjs/es6/min/synchronizers/synchronizer-ws-server-simple/index.cjs.gz +0 -0
  179. package/cjs/es6/min/synchronizers/synchronizer-ws-server-simple/with-schemas/index.cjs +0 -1
  180. package/cjs/es6/min/synchronizers/synchronizer-ws-server-simple/with-schemas/index.cjs.gz +0 -0
  181. package/cjs/es6/min/synchronizers/with-schemas/index.cjs +0 -1
  182. package/cjs/es6/min/synchronizers/with-schemas/index.cjs.gz +0 -0
  183. package/cjs/es6/min/tools/index.cjs +0 -1
  184. package/cjs/es6/min/tools/index.cjs.gz +0 -0
  185. package/cjs/es6/min/tools/with-schemas/index.cjs +0 -1
  186. package/cjs/es6/min/tools/with-schemas/index.cjs.gz +0 -0
  187. package/cjs/es6/min/ui-react/index.cjs +0 -1
  188. package/cjs/es6/min/ui-react/index.cjs.gz +0 -0
  189. package/cjs/es6/min/ui-react/with-schemas/index.cjs +0 -1
  190. package/cjs/es6/min/ui-react/with-schemas/index.cjs.gz +0 -0
  191. package/cjs/es6/min/ui-react-dom/index.cjs +0 -1
  192. package/cjs/es6/min/ui-react-dom/index.cjs.gz +0 -0
  193. package/cjs/es6/min/ui-react-dom/with-schemas/index.cjs +0 -1
  194. package/cjs/es6/min/ui-react-dom/with-schemas/index.cjs.gz +0 -0
  195. package/cjs/es6/min/ui-react-inspector/index.cjs +0 -1
  196. package/cjs/es6/min/ui-react-inspector/index.cjs.gz +0 -0
  197. package/cjs/es6/min/ui-react-inspector/with-schemas/index.cjs +0 -1
  198. package/cjs/es6/min/ui-react-inspector/with-schemas/index.cjs.gz +0 -0
  199. package/cjs/es6/min/with-schemas/index.cjs +0 -1
  200. package/cjs/es6/min/with-schemas/index.cjs.gz +0 -0
  201. package/cjs/es6/persisters/index.cjs +0 -1562
  202. package/cjs/es6/persisters/persister-automerge/index.cjs +0 -669
  203. package/cjs/es6/persisters/persister-automerge/with-schemas/index.cjs +0 -669
  204. package/cjs/es6/persisters/persister-browser/index.cjs +0 -576
  205. package/cjs/es6/persisters/persister-browser/with-schemas/index.cjs +0 -576
  206. package/cjs/es6/persisters/persister-cr-sqlite-wasm/index.cjs +0 -1471
  207. package/cjs/es6/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +0 -1471
  208. package/cjs/es6/persisters/persister-durable-object-storage/index.cjs +0 -687
  209. package/cjs/es6/persisters/persister-durable-object-storage/with-schemas/index.cjs +0 -687
  210. package/cjs/es6/persisters/persister-electric-sql/index.cjs +0 -1478
  211. package/cjs/es6/persisters/persister-electric-sql/with-schemas/index.cjs +0 -1478
  212. package/cjs/es6/persisters/persister-expo-sqlite/index.cjs +0 -1476
  213. package/cjs/es6/persisters/persister-expo-sqlite/with-schemas/index.cjs +0 -1476
  214. package/cjs/es6/persisters/persister-file/index.cjs +0 -561
  215. package/cjs/es6/persisters/persister-file/with-schemas/index.cjs +0 -561
  216. package/cjs/es6/persisters/persister-indexed-db/index.cjs +0 -673
  217. package/cjs/es6/persisters/persister-indexed-db/with-schemas/index.cjs +0 -673
  218. package/cjs/es6/persisters/persister-libsql/index.cjs +0 -1472
  219. package/cjs/es6/persisters/persister-libsql/with-schemas/index.cjs +0 -1472
  220. package/cjs/es6/persisters/persister-partykit-client/index.cjs +0 -652
  221. package/cjs/es6/persisters/persister-partykit-client/with-schemas/index.cjs +0 -652
  222. package/cjs/es6/persisters/persister-partykit-server/index.cjs +0 -426
  223. package/cjs/es6/persisters/persister-partykit-server/with-schemas/index.cjs +0 -426
  224. package/cjs/es6/persisters/persister-pglite/index.cjs +0 -1481
  225. package/cjs/es6/persisters/persister-pglite/with-schemas/index.cjs +0 -1481
  226. package/cjs/es6/persisters/persister-postgres/index.cjs +0 -1485
  227. package/cjs/es6/persisters/persister-postgres/with-schemas/index.cjs +0 -1485
  228. package/cjs/es6/persisters/persister-powersync/index.cjs +0 -1612
  229. package/cjs/es6/persisters/persister-powersync/with-schemas/index.cjs +0 -1612
  230. package/cjs/es6/persisters/persister-remote/index.cjs +0 -582
  231. package/cjs/es6/persisters/persister-remote/with-schemas/index.cjs +0 -582
  232. package/cjs/es6/persisters/persister-sqlite-wasm/index.cjs +0 -1505
  233. package/cjs/es6/persisters/persister-sqlite-wasm/with-schemas/index.cjs +0 -1505
  234. package/cjs/es6/persisters/persister-sqlite3/index.cjs +0 -1481
  235. package/cjs/es6/persisters/persister-sqlite3/with-schemas/index.cjs +0 -1481
  236. package/cjs/es6/persisters/persister-yjs/index.cjs +0 -726
  237. package/cjs/es6/persisters/persister-yjs/with-schemas/index.cjs +0 -726
  238. package/cjs/es6/persisters/with-schemas/index.cjs +0 -1562
  239. package/cjs/es6/queries/index.cjs +0 -864
  240. package/cjs/es6/queries/with-schemas/index.cjs +0 -864
  241. package/cjs/es6/relationships/index.cjs +0 -593
  242. package/cjs/es6/relationships/with-schemas/index.cjs +0 -593
  243. package/cjs/es6/store/index.cjs +0 -1729
  244. package/cjs/es6/store/with-schemas/index.cjs +0 -1729
  245. package/cjs/es6/synchronizers/index.cjs +0 -834
  246. package/cjs/es6/synchronizers/synchronizer-broadcast-channel/index.cjs +0 -858
  247. package/cjs/es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs +0 -858
  248. package/cjs/es6/synchronizers/synchronizer-local/index.cjs +0 -859
  249. package/cjs/es6/synchronizers/synchronizer-local/with-schemas/index.cjs +0 -859
  250. package/cjs/es6/synchronizers/synchronizer-ws-client/index.cjs +0 -929
  251. package/cjs/es6/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +0 -929
  252. package/cjs/es6/synchronizers/synchronizer-ws-server/index.cjs +0 -1063
  253. package/cjs/es6/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +0 -1063
  254. package/cjs/es6/synchronizers/synchronizer-ws-server-durable-object/index.cjs +0 -1080
  255. package/cjs/es6/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.cjs +0 -1080
  256. package/cjs/es6/synchronizers/synchronizer-ws-server-simple/index.cjs +0 -130
  257. package/cjs/es6/synchronizers/synchronizer-ws-server-simple/with-schemas/index.cjs +0 -130
  258. package/cjs/es6/synchronizers/with-schemas/index.cjs +0 -834
  259. package/cjs/es6/tools/index.cjs +0 -3426
  260. package/cjs/es6/tools/with-schemas/index.cjs +0 -3426
  261. package/cjs/es6/ui-react/index.cjs +0 -2434
  262. package/cjs/es6/ui-react/with-schemas/index.cjs +0 -2434
  263. package/cjs/es6/ui-react-dom/index.cjs +0 -914
  264. package/cjs/es6/ui-react-dom/with-schemas/index.cjs +0 -914
  265. package/cjs/es6/ui-react-inspector/index.cjs +0 -3711
  266. package/cjs/es6/ui-react-inspector/with-schemas/index.cjs +0 -3711
  267. package/cjs/es6/with-schemas/index.cjs +0 -3900
  268. package/cjs/index.cjs +0 -3754
  269. package/cjs/indexes/index.cjs +0 -551
  270. package/cjs/indexes/with-schemas/index.cjs +0 -551
  271. package/cjs/mergeable-store/index.cjs +0 -2285
  272. package/cjs/mergeable-store/with-schemas/index.cjs +0 -2285
  273. package/cjs/metrics/index.cjs +0 -526
  274. package/cjs/metrics/with-schemas/index.cjs +0 -526
  275. package/cjs/min/checkpoints/index.cjs +0 -1
  276. package/cjs/min/checkpoints/index.cjs.gz +0 -0
  277. package/cjs/min/checkpoints/with-schemas/index.cjs +0 -1
  278. package/cjs/min/checkpoints/with-schemas/index.cjs.gz +0 -0
  279. package/cjs/min/common/index.cjs +0 -1
  280. package/cjs/min/common/index.cjs.gz +0 -0
  281. package/cjs/min/common/with-schemas/index.cjs +0 -1
  282. package/cjs/min/common/with-schemas/index.cjs.gz +0 -0
  283. package/cjs/min/index.cjs +0 -1
  284. package/cjs/min/index.cjs.gz +0 -0
  285. package/cjs/min/indexes/index.cjs +0 -1
  286. package/cjs/min/indexes/index.cjs.gz +0 -0
  287. package/cjs/min/indexes/with-schemas/index.cjs +0 -1
  288. package/cjs/min/indexes/with-schemas/index.cjs.gz +0 -0
  289. package/cjs/min/mergeable-store/index.cjs +0 -1
  290. package/cjs/min/mergeable-store/index.cjs.gz +0 -0
  291. package/cjs/min/mergeable-store/with-schemas/index.cjs +0 -1
  292. package/cjs/min/mergeable-store/with-schemas/index.cjs.gz +0 -0
  293. package/cjs/min/metrics/index.cjs +0 -1
  294. package/cjs/min/metrics/index.cjs.gz +0 -0
  295. package/cjs/min/metrics/with-schemas/index.cjs +0 -1
  296. package/cjs/min/metrics/with-schemas/index.cjs.gz +0 -0
  297. package/cjs/min/persisters/index.cjs +0 -1
  298. package/cjs/min/persisters/index.cjs.gz +0 -0
  299. package/cjs/min/persisters/persister-automerge/index.cjs +0 -1
  300. package/cjs/min/persisters/persister-automerge/index.cjs.gz +0 -0
  301. package/cjs/min/persisters/persister-automerge/with-schemas/index.cjs +0 -1
  302. package/cjs/min/persisters/persister-automerge/with-schemas/index.cjs.gz +0 -0
  303. package/cjs/min/persisters/persister-browser/index.cjs +0 -1
  304. package/cjs/min/persisters/persister-browser/index.cjs.gz +0 -0
  305. package/cjs/min/persisters/persister-browser/with-schemas/index.cjs +0 -1
  306. package/cjs/min/persisters/persister-browser/with-schemas/index.cjs.gz +0 -0
  307. package/cjs/min/persisters/persister-cr-sqlite-wasm/index.cjs +0 -1
  308. package/cjs/min/persisters/persister-cr-sqlite-wasm/index.cjs.gz +0 -0
  309. package/cjs/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +0 -1
  310. package/cjs/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
  311. package/cjs/min/persisters/persister-durable-object-storage/index.cjs +0 -1
  312. package/cjs/min/persisters/persister-durable-object-storage/index.cjs.gz +0 -0
  313. package/cjs/min/persisters/persister-durable-object-storage/with-schemas/index.cjs +0 -1
  314. package/cjs/min/persisters/persister-durable-object-storage/with-schemas/index.cjs.gz +0 -0
  315. package/cjs/min/persisters/persister-electric-sql/index.cjs +0 -1
  316. package/cjs/min/persisters/persister-electric-sql/index.cjs.gz +0 -0
  317. package/cjs/min/persisters/persister-electric-sql/with-schemas/index.cjs +0 -1
  318. package/cjs/min/persisters/persister-electric-sql/with-schemas/index.cjs.gz +0 -0
  319. package/cjs/min/persisters/persister-expo-sqlite/index.cjs +0 -1
  320. package/cjs/min/persisters/persister-expo-sqlite/index.cjs.gz +0 -0
  321. package/cjs/min/persisters/persister-expo-sqlite/with-schemas/index.cjs +0 -1
  322. package/cjs/min/persisters/persister-expo-sqlite/with-schemas/index.cjs.gz +0 -0
  323. package/cjs/min/persisters/persister-file/index.cjs +0 -1
  324. package/cjs/min/persisters/persister-file/index.cjs.gz +0 -0
  325. package/cjs/min/persisters/persister-file/with-schemas/index.cjs +0 -1
  326. package/cjs/min/persisters/persister-file/with-schemas/index.cjs.gz +0 -0
  327. package/cjs/min/persisters/persister-indexed-db/index.cjs +0 -1
  328. package/cjs/min/persisters/persister-indexed-db/index.cjs.gz +0 -0
  329. package/cjs/min/persisters/persister-indexed-db/with-schemas/index.cjs +0 -1
  330. package/cjs/min/persisters/persister-indexed-db/with-schemas/index.cjs.gz +0 -0
  331. package/cjs/min/persisters/persister-libsql/index.cjs +0 -1
  332. package/cjs/min/persisters/persister-libsql/index.cjs.gz +0 -0
  333. package/cjs/min/persisters/persister-libsql/with-schemas/index.cjs +0 -1
  334. package/cjs/min/persisters/persister-libsql/with-schemas/index.cjs.gz +0 -0
  335. package/cjs/min/persisters/persister-partykit-client/index.cjs +0 -1
  336. package/cjs/min/persisters/persister-partykit-client/index.cjs.gz +0 -0
  337. package/cjs/min/persisters/persister-partykit-client/with-schemas/index.cjs +0 -1
  338. package/cjs/min/persisters/persister-partykit-client/with-schemas/index.cjs.gz +0 -0
  339. package/cjs/min/persisters/persister-partykit-server/index.cjs +0 -1
  340. package/cjs/min/persisters/persister-partykit-server/index.cjs.gz +0 -0
  341. package/cjs/min/persisters/persister-partykit-server/with-schemas/index.cjs +0 -1
  342. package/cjs/min/persisters/persister-partykit-server/with-schemas/index.cjs.gz +0 -0
  343. package/cjs/min/persisters/persister-pglite/index.cjs +0 -1
  344. package/cjs/min/persisters/persister-pglite/index.cjs.gz +0 -0
  345. package/cjs/min/persisters/persister-pglite/with-schemas/index.cjs +0 -1
  346. package/cjs/min/persisters/persister-pglite/with-schemas/index.cjs.gz +0 -0
  347. package/cjs/min/persisters/persister-postgres/index.cjs +0 -1
  348. package/cjs/min/persisters/persister-postgres/index.cjs.gz +0 -0
  349. package/cjs/min/persisters/persister-postgres/with-schemas/index.cjs +0 -1
  350. package/cjs/min/persisters/persister-postgres/with-schemas/index.cjs.gz +0 -0
  351. package/cjs/min/persisters/persister-powersync/index.cjs +0 -1
  352. package/cjs/min/persisters/persister-powersync/index.cjs.gz +0 -0
  353. package/cjs/min/persisters/persister-powersync/with-schemas/index.cjs +0 -1
  354. package/cjs/min/persisters/persister-powersync/with-schemas/index.cjs.gz +0 -0
  355. package/cjs/min/persisters/persister-remote/index.cjs +0 -1
  356. package/cjs/min/persisters/persister-remote/index.cjs.gz +0 -0
  357. package/cjs/min/persisters/persister-remote/with-schemas/index.cjs +0 -1
  358. package/cjs/min/persisters/persister-remote/with-schemas/index.cjs.gz +0 -0
  359. package/cjs/min/persisters/persister-sqlite-wasm/index.cjs +0 -1
  360. package/cjs/min/persisters/persister-sqlite-wasm/index.cjs.gz +0 -0
  361. package/cjs/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs +0 -1
  362. package/cjs/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
  363. package/cjs/min/persisters/persister-sqlite3/index.cjs +0 -1
  364. package/cjs/min/persisters/persister-sqlite3/index.cjs.gz +0 -0
  365. package/cjs/min/persisters/persister-sqlite3/with-schemas/index.cjs +0 -1
  366. package/cjs/min/persisters/persister-sqlite3/with-schemas/index.cjs.gz +0 -0
  367. package/cjs/min/persisters/persister-yjs/index.cjs +0 -1
  368. package/cjs/min/persisters/persister-yjs/index.cjs.gz +0 -0
  369. package/cjs/min/persisters/persister-yjs/with-schemas/index.cjs +0 -1
  370. package/cjs/min/persisters/persister-yjs/with-schemas/index.cjs.gz +0 -0
  371. package/cjs/min/persisters/with-schemas/index.cjs +0 -1
  372. package/cjs/min/persisters/with-schemas/index.cjs.gz +0 -0
  373. package/cjs/min/queries/index.cjs +0 -1
  374. package/cjs/min/queries/index.cjs.gz +0 -0
  375. package/cjs/min/queries/with-schemas/index.cjs +0 -1
  376. package/cjs/min/queries/with-schemas/index.cjs.gz +0 -0
  377. package/cjs/min/relationships/index.cjs +0 -1
  378. package/cjs/min/relationships/index.cjs.gz +0 -0
  379. package/cjs/min/relationships/with-schemas/index.cjs +0 -1
  380. package/cjs/min/relationships/with-schemas/index.cjs.gz +0 -0
  381. package/cjs/min/store/index.cjs +0 -1
  382. package/cjs/min/store/index.cjs.gz +0 -0
  383. package/cjs/min/store/with-schemas/index.cjs +0 -1
  384. package/cjs/min/store/with-schemas/index.cjs.gz +0 -0
  385. package/cjs/min/synchronizers/index.cjs +0 -1
  386. package/cjs/min/synchronizers/index.cjs.gz +0 -0
  387. package/cjs/min/synchronizers/synchronizer-broadcast-channel/index.cjs +0 -1
  388. package/cjs/min/synchronizers/synchronizer-broadcast-channel/index.cjs.gz +0 -0
  389. package/cjs/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs +0 -1
  390. package/cjs/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs.gz +0 -0
  391. package/cjs/min/synchronizers/synchronizer-local/index.cjs +0 -1
  392. package/cjs/min/synchronizers/synchronizer-local/index.cjs.gz +0 -0
  393. package/cjs/min/synchronizers/synchronizer-local/with-schemas/index.cjs +0 -1
  394. package/cjs/min/synchronizers/synchronizer-local/with-schemas/index.cjs.gz +0 -0
  395. package/cjs/min/synchronizers/synchronizer-ws-client/index.cjs +0 -1
  396. package/cjs/min/synchronizers/synchronizer-ws-client/index.cjs.gz +0 -0
  397. package/cjs/min/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +0 -1
  398. package/cjs/min/synchronizers/synchronizer-ws-client/with-schemas/index.cjs.gz +0 -0
  399. package/cjs/min/synchronizers/synchronizer-ws-server/index.cjs +0 -1
  400. package/cjs/min/synchronizers/synchronizer-ws-server/index.cjs.gz +0 -0
  401. package/cjs/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +0 -1
  402. package/cjs/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs.gz +0 -0
  403. package/cjs/min/synchronizers/synchronizer-ws-server-durable-object/index.cjs +0 -1
  404. package/cjs/min/synchronizers/synchronizer-ws-server-durable-object/index.cjs.gz +0 -0
  405. package/cjs/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.cjs +0 -1
  406. package/cjs/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.cjs.gz +0 -0
  407. package/cjs/min/synchronizers/synchronizer-ws-server-simple/index.cjs +0 -1
  408. package/cjs/min/synchronizers/synchronizer-ws-server-simple/index.cjs.gz +0 -0
  409. package/cjs/min/synchronizers/synchronizer-ws-server-simple/with-schemas/index.cjs +0 -1
  410. package/cjs/min/synchronizers/synchronizer-ws-server-simple/with-schemas/index.cjs.gz +0 -0
  411. package/cjs/min/synchronizers/with-schemas/index.cjs +0 -1
  412. package/cjs/min/synchronizers/with-schemas/index.cjs.gz +0 -0
  413. package/cjs/min/tools/index.cjs +0 -1
  414. package/cjs/min/tools/index.cjs.gz +0 -0
  415. package/cjs/min/tools/with-schemas/index.cjs +0 -1
  416. package/cjs/min/tools/with-schemas/index.cjs.gz +0 -0
  417. package/cjs/min/ui-react/index.cjs +0 -1
  418. package/cjs/min/ui-react/index.cjs.gz +0 -0
  419. package/cjs/min/ui-react/with-schemas/index.cjs +0 -1
  420. package/cjs/min/ui-react/with-schemas/index.cjs.gz +0 -0
  421. package/cjs/min/ui-react-dom/index.cjs +0 -1
  422. package/cjs/min/ui-react-dom/index.cjs.gz +0 -0
  423. package/cjs/min/ui-react-dom/with-schemas/index.cjs +0 -1
  424. package/cjs/min/ui-react-dom/with-schemas/index.cjs.gz +0 -0
  425. package/cjs/min/ui-react-inspector/index.cjs +0 -1
  426. package/cjs/min/ui-react-inspector/index.cjs.gz +0 -0
  427. package/cjs/min/ui-react-inspector/with-schemas/index.cjs +0 -1
  428. package/cjs/min/ui-react-inspector/with-schemas/index.cjs.gz +0 -0
  429. package/cjs/min/with-schemas/index.cjs +0 -1
  430. package/cjs/min/with-schemas/index.cjs.gz +0 -0
  431. package/cjs/persisters/index.cjs +0 -1213
  432. package/cjs/persisters/persister-automerge/index.cjs +0 -544
  433. package/cjs/persisters/persister-automerge/with-schemas/index.cjs +0 -544
  434. package/cjs/persisters/persister-browser/index.cjs +0 -447
  435. package/cjs/persisters/persister-browser/with-schemas/index.cjs +0 -447
  436. package/cjs/persisters/persister-cr-sqlite-wasm/index.cjs +0 -1126
  437. package/cjs/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +0 -1126
  438. package/cjs/persisters/persister-durable-object-storage/index.cjs +0 -542
  439. package/cjs/persisters/persister-durable-object-storage/with-schemas/index.cjs +0 -542
  440. package/cjs/persisters/persister-electric-sql/index.cjs +0 -1133
  441. package/cjs/persisters/persister-electric-sql/with-schemas/index.cjs +0 -1133
  442. package/cjs/persisters/persister-expo-sqlite/index.cjs +0 -1131
  443. package/cjs/persisters/persister-expo-sqlite/with-schemas/index.cjs +0 -1131
  444. package/cjs/persisters/persister-file/index.cjs +0 -434
  445. package/cjs/persisters/persister-file/with-schemas/index.cjs +0 -434
  446. package/cjs/persisters/persister-indexed-db/index.cjs +0 -507
  447. package/cjs/persisters/persister-indexed-db/with-schemas/index.cjs +0 -507
  448. package/cjs/persisters/persister-libsql/index.cjs +0 -1127
  449. package/cjs/persisters/persister-libsql/with-schemas/index.cjs +0 -1127
  450. package/cjs/persisters/persister-partykit-client/index.cjs +0 -492
  451. package/cjs/persisters/persister-partykit-client/with-schemas/index.cjs +0 -492
  452. package/cjs/persisters/persister-partykit-server/index.cjs +0 -296
  453. package/cjs/persisters/persister-partykit-server/with-schemas/index.cjs +0 -296
  454. package/cjs/persisters/persister-pglite/index.cjs +0 -1130
  455. package/cjs/persisters/persister-pglite/with-schemas/index.cjs +0 -1130
  456. package/cjs/persisters/persister-postgres/index.cjs +0 -1131
  457. package/cjs/persisters/persister-postgres/with-schemas/index.cjs +0 -1131
  458. package/cjs/persisters/persister-powersync/index.cjs +0 -1223
  459. package/cjs/persisters/persister-powersync/with-schemas/index.cjs +0 -1223
  460. package/cjs/persisters/persister-remote/index.cjs +0 -453
  461. package/cjs/persisters/persister-remote/with-schemas/index.cjs +0 -453
  462. package/cjs/persisters/persister-sqlite-wasm/index.cjs +0 -1135
  463. package/cjs/persisters/persister-sqlite-wasm/with-schemas/index.cjs +0 -1135
  464. package/cjs/persisters/persister-sqlite3/index.cjs +0 -1137
  465. package/cjs/persisters/persister-sqlite3/with-schemas/index.cjs +0 -1137
  466. package/cjs/persisters/persister-yjs/index.cjs +0 -590
  467. package/cjs/persisters/persister-yjs/with-schemas/index.cjs +0 -590
  468. package/cjs/persisters/with-schemas/index.cjs +0 -1213
  469. package/cjs/queries/index.cjs +0 -818
  470. package/cjs/queries/with-schemas/index.cjs +0 -818
  471. package/cjs/relationships/index.cjs +0 -533
  472. package/cjs/relationships/with-schemas/index.cjs +0 -533
  473. package/cjs/store/index.cjs +0 -1651
  474. package/cjs/store/with-schemas/index.cjs +0 -1651
  475. package/cjs/synchronizers/index.cjs +0 -673
  476. package/cjs/synchronizers/synchronizer-broadcast-channel/index.cjs +0 -697
  477. package/cjs/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs +0 -697
  478. package/cjs/synchronizers/synchronizer-local/index.cjs +0 -695
  479. package/cjs/synchronizers/synchronizer-local/with-schemas/index.cjs +0 -695
  480. package/cjs/synchronizers/synchronizer-ws-client/index.cjs +0 -741
  481. package/cjs/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +0 -741
  482. package/cjs/synchronizers/synchronizer-ws-server/index.cjs +0 -855
  483. package/cjs/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +0 -855
  484. package/cjs/synchronizers/synchronizer-ws-server-durable-object/index.cjs +0 -797
  485. package/cjs/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.cjs +0 -797
  486. package/cjs/synchronizers/synchronizer-ws-server-simple/index.cjs +0 -89
  487. package/cjs/synchronizers/synchronizer-ws-server-simple/with-schemas/index.cjs +0 -89
  488. package/cjs/synchronizers/with-schemas/index.cjs +0 -673
  489. package/cjs/tools/index.cjs +0 -3303
  490. package/cjs/tools/with-schemas/index.cjs +0 -3303
  491. package/cjs/ui-react/index.cjs +0 -2226
  492. package/cjs/ui-react/with-schemas/index.cjs +0 -2226
  493. package/cjs/ui-react-dom/index.cjs +0 -787
  494. package/cjs/ui-react-dom/with-schemas/index.cjs +0 -787
  495. package/cjs/ui-react-inspector/index.cjs +0 -3322
  496. package/cjs/ui-react-inspector/with-schemas/index.cjs +0 -3322
  497. package/cjs/with-schemas/index.cjs +0 -3754
  498. package/cli/index.js +0 -93
  499. package/es6/checkpoints/index.js +0 -473
  500. package/es6/checkpoints/with-schemas/index.js +0 -473
  501. package/es6/common/index.js +0 -33
  502. package/es6/common/with-schemas/index.js +0 -33
  503. package/es6/index.js +0 -3900
  504. package/es6/indexes/index.js +0 -596
  505. package/es6/indexes/with-schemas/index.js +0 -596
  506. package/es6/mergeable-store/index.js +0 -2383
  507. package/es6/mergeable-store/with-schemas/index.js +0 -2383
  508. package/es6/metrics/index.js +0 -577
  509. package/es6/metrics/with-schemas/index.js +0 -577
  510. package/es6/min/checkpoints/index.js +0 -1
  511. package/es6/min/checkpoints/index.js.gz +0 -0
  512. package/es6/min/checkpoints/with-schemas/index.js +0 -1
  513. package/es6/min/checkpoints/with-schemas/index.js.gz +0 -0
  514. package/es6/min/common/index.js +0 -1
  515. package/es6/min/common/index.js.gz +0 -0
  516. package/es6/min/common/with-schemas/index.js +0 -1
  517. package/es6/min/common/with-schemas/index.js.gz +0 -0
  518. package/es6/min/index.js +0 -1
  519. package/es6/min/index.js.gz +0 -0
  520. package/es6/min/indexes/index.js +0 -1
  521. package/es6/min/indexes/index.js.gz +0 -0
  522. package/es6/min/indexes/with-schemas/index.js +0 -1
  523. package/es6/min/indexes/with-schemas/index.js.gz +0 -0
  524. package/es6/min/mergeable-store/index.js +0 -1
  525. package/es6/min/mergeable-store/index.js.gz +0 -0
  526. package/es6/min/mergeable-store/with-schemas/index.js +0 -1
  527. package/es6/min/mergeable-store/with-schemas/index.js.gz +0 -0
  528. package/es6/min/metrics/index.js +0 -1
  529. package/es6/min/metrics/index.js.gz +0 -0
  530. package/es6/min/metrics/with-schemas/index.js +0 -1
  531. package/es6/min/metrics/with-schemas/index.js.gz +0 -0
  532. package/es6/min/persisters/index.js +0 -1
  533. package/es6/min/persisters/index.js.gz +0 -0
  534. package/es6/min/persisters/persister-automerge/index.js +0 -1
  535. package/es6/min/persisters/persister-automerge/index.js.gz +0 -0
  536. package/es6/min/persisters/persister-automerge/with-schemas/index.js +0 -1
  537. package/es6/min/persisters/persister-automerge/with-schemas/index.js.gz +0 -0
  538. package/es6/min/persisters/persister-browser/index.js +0 -1
  539. package/es6/min/persisters/persister-browser/index.js.gz +0 -0
  540. package/es6/min/persisters/persister-browser/with-schemas/index.js +0 -1
  541. package/es6/min/persisters/persister-browser/with-schemas/index.js.gz +0 -0
  542. package/es6/min/persisters/persister-cr-sqlite-wasm/index.js +0 -1
  543. package/es6/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  544. package/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +0 -1
  545. package/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  546. package/es6/min/persisters/persister-durable-object-storage/index.js +0 -1
  547. package/es6/min/persisters/persister-durable-object-storage/index.js.gz +0 -0
  548. package/es6/min/persisters/persister-durable-object-storage/with-schemas/index.js +0 -1
  549. package/es6/min/persisters/persister-durable-object-storage/with-schemas/index.js.gz +0 -0
  550. package/es6/min/persisters/persister-electric-sql/index.js +0 -1
  551. package/es6/min/persisters/persister-electric-sql/index.js.gz +0 -0
  552. package/es6/min/persisters/persister-electric-sql/with-schemas/index.js +0 -1
  553. package/es6/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  554. package/es6/min/persisters/persister-expo-sqlite/index.js +0 -1
  555. package/es6/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  556. package/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js +0 -1
  557. package/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  558. package/es6/min/persisters/persister-file/index.js +0 -1
  559. package/es6/min/persisters/persister-file/index.js.gz +0 -0
  560. package/es6/min/persisters/persister-file/with-schemas/index.js +0 -1
  561. package/es6/min/persisters/persister-file/with-schemas/index.js.gz +0 -0
  562. package/es6/min/persisters/persister-indexed-db/index.js +0 -1
  563. package/es6/min/persisters/persister-indexed-db/index.js.gz +0 -0
  564. package/es6/min/persisters/persister-indexed-db/with-schemas/index.js +0 -1
  565. package/es6/min/persisters/persister-indexed-db/with-schemas/index.js.gz +0 -0
  566. package/es6/min/persisters/persister-libsql/index.js +0 -1
  567. package/es6/min/persisters/persister-libsql/index.js.gz +0 -0
  568. package/es6/min/persisters/persister-libsql/with-schemas/index.js +0 -1
  569. package/es6/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  570. package/es6/min/persisters/persister-partykit-client/index.js +0 -1
  571. package/es6/min/persisters/persister-partykit-client/index.js.gz +0 -0
  572. package/es6/min/persisters/persister-partykit-client/with-schemas/index.js +0 -1
  573. package/es6/min/persisters/persister-partykit-client/with-schemas/index.js.gz +0 -0
  574. package/es6/min/persisters/persister-partykit-server/index.js +0 -1
  575. package/es6/min/persisters/persister-partykit-server/index.js.gz +0 -0
  576. package/es6/min/persisters/persister-partykit-server/with-schemas/index.js +0 -1
  577. package/es6/min/persisters/persister-partykit-server/with-schemas/index.js.gz +0 -0
  578. package/es6/min/persisters/persister-pglite/index.js +0 -1
  579. package/es6/min/persisters/persister-pglite/index.js.gz +0 -0
  580. package/es6/min/persisters/persister-pglite/with-schemas/index.js +0 -1
  581. package/es6/min/persisters/persister-pglite/with-schemas/index.js.gz +0 -0
  582. package/es6/min/persisters/persister-postgres/index.js +0 -1
  583. package/es6/min/persisters/persister-postgres/index.js.gz +0 -0
  584. package/es6/min/persisters/persister-postgres/with-schemas/index.js +0 -1
  585. package/es6/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
  586. package/es6/min/persisters/persister-powersync/index.js +0 -1
  587. package/es6/min/persisters/persister-powersync/index.js.gz +0 -0
  588. package/es6/min/persisters/persister-powersync/with-schemas/index.js +0 -1
  589. package/es6/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  590. package/es6/min/persisters/persister-remote/index.js +0 -1
  591. package/es6/min/persisters/persister-remote/index.js.gz +0 -0
  592. package/es6/min/persisters/persister-remote/with-schemas/index.js +0 -1
  593. package/es6/min/persisters/persister-remote/with-schemas/index.js.gz +0 -0
  594. package/es6/min/persisters/persister-sqlite-wasm/index.js +0 -1
  595. package/es6/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  596. package/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js +0 -1
  597. package/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  598. package/es6/min/persisters/persister-sqlite3/index.js +0 -1
  599. package/es6/min/persisters/persister-sqlite3/index.js.gz +0 -0
  600. package/es6/min/persisters/persister-sqlite3/with-schemas/index.js +0 -1
  601. package/es6/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  602. package/es6/min/persisters/persister-yjs/index.js +0 -1
  603. package/es6/min/persisters/persister-yjs/index.js.gz +0 -0
  604. package/es6/min/persisters/persister-yjs/with-schemas/index.js +0 -1
  605. package/es6/min/persisters/persister-yjs/with-schemas/index.js.gz +0 -0
  606. package/es6/min/persisters/with-schemas/index.js +0 -1
  607. package/es6/min/persisters/with-schemas/index.js.gz +0 -0
  608. package/es6/min/queries/index.js +0 -1
  609. package/es6/min/queries/index.js.gz +0 -0
  610. package/es6/min/queries/with-schemas/index.js +0 -1
  611. package/es6/min/queries/with-schemas/index.js.gz +0 -0
  612. package/es6/min/relationships/index.js +0 -1
  613. package/es6/min/relationships/index.js.gz +0 -0
  614. package/es6/min/relationships/with-schemas/index.js +0 -1
  615. package/es6/min/relationships/with-schemas/index.js.gz +0 -0
  616. package/es6/min/store/index.js +0 -1
  617. package/es6/min/store/index.js.gz +0 -0
  618. package/es6/min/store/with-schemas/index.js +0 -1
  619. package/es6/min/store/with-schemas/index.js.gz +0 -0
  620. package/es6/min/synchronizers/index.js +0 -1
  621. package/es6/min/synchronizers/index.js.gz +0 -0
  622. package/es6/min/synchronizers/synchronizer-broadcast-channel/index.js +0 -1
  623. package/es6/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
  624. package/es6/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +0 -1
  625. package/es6/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
  626. package/es6/min/synchronizers/synchronizer-local/index.js +0 -1
  627. package/es6/min/synchronizers/synchronizer-local/index.js.gz +0 -0
  628. package/es6/min/synchronizers/synchronizer-local/with-schemas/index.js +0 -1
  629. package/es6/min/synchronizers/synchronizer-local/with-schemas/index.js.gz +0 -0
  630. package/es6/min/synchronizers/synchronizer-ws-client/index.js +0 -1
  631. package/es6/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
  632. package/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +0 -1
  633. package/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
  634. package/es6/min/synchronizers/synchronizer-ws-server/index.js +0 -1
  635. package/es6/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  636. package/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +0 -1
  637. package/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  638. package/es6/min/synchronizers/synchronizer-ws-server-durable-object/index.js +0 -1
  639. package/es6/min/synchronizers/synchronizer-ws-server-durable-object/index.js.gz +0 -0
  640. package/es6/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +0 -1
  641. package/es6/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js.gz +0 -0
  642. package/es6/min/synchronizers/synchronizer-ws-server-simple/index.js +0 -1
  643. package/es6/min/synchronizers/synchronizer-ws-server-simple/index.js.gz +0 -0
  644. package/es6/min/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js +0 -1
  645. package/es6/min/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js.gz +0 -0
  646. package/es6/min/synchronizers/with-schemas/index.js +0 -1
  647. package/es6/min/synchronizers/with-schemas/index.js.gz +0 -0
  648. package/es6/min/tools/index.js +0 -1
  649. package/es6/min/tools/index.js.gz +0 -0
  650. package/es6/min/tools/with-schemas/index.js +0 -1
  651. package/es6/min/tools/with-schemas/index.js.gz +0 -0
  652. package/es6/min/ui-react/index.js +0 -1
  653. package/es6/min/ui-react/index.js.gz +0 -0
  654. package/es6/min/ui-react/with-schemas/index.js +0 -1
  655. package/es6/min/ui-react/with-schemas/index.js.gz +0 -0
  656. package/es6/min/ui-react-dom/index.js +0 -1
  657. package/es6/min/ui-react-dom/index.js.gz +0 -0
  658. package/es6/min/ui-react-dom/with-schemas/index.js +0 -1
  659. package/es6/min/ui-react-dom/with-schemas/index.js.gz +0 -0
  660. package/es6/min/ui-react-inspector/index.js +0 -1
  661. package/es6/min/ui-react-inspector/index.js.gz +0 -0
  662. package/es6/min/ui-react-inspector/with-schemas/index.js +0 -1
  663. package/es6/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
  664. package/es6/min/with-schemas/index.js +0 -1
  665. package/es6/min/with-schemas/index.js.gz +0 -0
  666. package/es6/persisters/index.js +0 -1562
  667. package/es6/persisters/persister-automerge/index.js +0 -667
  668. package/es6/persisters/persister-automerge/with-schemas/index.js +0 -667
  669. package/es6/persisters/persister-browser/index.js +0 -573
  670. package/es6/persisters/persister-browser/with-schemas/index.js +0 -573
  671. package/es6/persisters/persister-cr-sqlite-wasm/index.js +0 -1469
  672. package/es6/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +0 -1469
  673. package/es6/persisters/persister-durable-object-storage/index.js +0 -684
  674. package/es6/persisters/persister-durable-object-storage/with-schemas/index.js +0 -684
  675. package/es6/persisters/persister-electric-sql/index.js +0 -1476
  676. package/es6/persisters/persister-electric-sql/with-schemas/index.js +0 -1476
  677. package/es6/persisters/persister-expo-sqlite/index.js +0 -1472
  678. package/es6/persisters/persister-expo-sqlite/with-schemas/index.js +0 -1472
  679. package/es6/persisters/persister-file/index.js +0 -559
  680. package/es6/persisters/persister-file/with-schemas/index.js +0 -559
  681. package/es6/persisters/persister-indexed-db/index.js +0 -670
  682. package/es6/persisters/persister-indexed-db/with-schemas/index.js +0 -670
  683. package/es6/persisters/persister-libsql/index.js +0 -1470
  684. package/es6/persisters/persister-libsql/with-schemas/index.js +0 -1470
  685. package/es6/persisters/persister-partykit-client/index.js +0 -650
  686. package/es6/persisters/persister-partykit-client/with-schemas/index.js +0 -650
  687. package/es6/persisters/persister-partykit-server/index.js +0 -426
  688. package/es6/persisters/persister-partykit-server/with-schemas/index.js +0 -426
  689. package/es6/persisters/persister-pglite/index.js +0 -1479
  690. package/es6/persisters/persister-pglite/with-schemas/index.js +0 -1479
  691. package/es6/persisters/persister-postgres/index.js +0 -1483
  692. package/es6/persisters/persister-postgres/with-schemas/index.js +0 -1483
  693. package/es6/persisters/persister-powersync/index.js +0 -1610
  694. package/es6/persisters/persister-powersync/with-schemas/index.js +0 -1610
  695. package/es6/persisters/persister-remote/index.js +0 -580
  696. package/es6/persisters/persister-remote/with-schemas/index.js +0 -580
  697. package/es6/persisters/persister-sqlite-wasm/index.js +0 -1503
  698. package/es6/persisters/persister-sqlite-wasm/with-schemas/index.js +0 -1503
  699. package/es6/persisters/persister-sqlite3/index.js +0 -1479
  700. package/es6/persisters/persister-sqlite3/with-schemas/index.js +0 -1479
  701. package/es6/persisters/persister-yjs/index.js +0 -724
  702. package/es6/persisters/persister-yjs/with-schemas/index.js +0 -724
  703. package/es6/persisters/with-schemas/index.js +0 -1562
  704. package/es6/queries/index.js +0 -862
  705. package/es6/queries/with-schemas/index.js +0 -862
  706. package/es6/relationships/index.js +0 -591
  707. package/es6/relationships/with-schemas/index.js +0 -591
  708. package/es6/store/index.js +0 -1727
  709. package/es6/store/with-schemas/index.js +0 -1727
  710. package/es6/synchronizers/index.js +0 -831
  711. package/es6/synchronizers/synchronizer-broadcast-channel/index.js +0 -856
  712. package/es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +0 -856
  713. package/es6/synchronizers/synchronizer-local/index.js +0 -857
  714. package/es6/synchronizers/synchronizer-local/with-schemas/index.js +0 -857
  715. package/es6/synchronizers/synchronizer-ws-client/index.js +0 -927
  716. package/es6/synchronizers/synchronizer-ws-client/with-schemas/index.js +0 -927
  717. package/es6/synchronizers/synchronizer-ws-server/index.js +0 -1061
  718. package/es6/synchronizers/synchronizer-ws-server/with-schemas/index.js +0 -1061
  719. package/es6/synchronizers/synchronizer-ws-server-durable-object/index.js +0 -1077
  720. package/es6/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +0 -1077
  721. package/es6/synchronizers/synchronizer-ws-server-simple/index.js +0 -128
  722. package/es6/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js +0 -128
  723. package/es6/synchronizers/with-schemas/index.js +0 -831
  724. package/es6/tools/index.js +0 -3424
  725. package/es6/tools/with-schemas/index.js +0 -3424
  726. package/es6/ui-react/index.js +0 -2433
  727. package/es6/ui-react/with-schemas/index.js +0 -2433
  728. package/es6/ui-react-dom/index.js +0 -915
  729. package/es6/ui-react-dom/with-schemas/index.js +0 -915
  730. package/es6/ui-react-inspector/index.js +0 -3716
  731. package/es6/ui-react-inspector/with-schemas/index.js +0 -3716
  732. package/es6/with-schemas/index.js +0 -3900
  733. package/min/tools/index.js +0 -1
  734. package/min/tools/index.js.gz +0 -0
  735. package/min/tools/with-schemas/index.js +0 -1
  736. package/min/tools/with-schemas/index.js.gz +0 -0
  737. package/tools/index.js +0 -3301
  738. package/tools/with-schemas/index.js +0 -3301
  739. package/umd/checkpoints/index.js +0 -452
  740. package/umd/checkpoints/with-schemas/index.js +0 -452
  741. package/umd/common/index.js +0 -44
  742. package/umd/common/with-schemas/index.js +0 -44
  743. package/umd/es6/checkpoints/index.js +0 -498
  744. package/umd/es6/checkpoints/with-schemas/index.js +0 -498
  745. package/umd/es6/common/index.js +0 -46
  746. package/umd/es6/common/with-schemas/index.js +0 -46
  747. package/umd/es6/index.js +0 -3991
  748. package/umd/es6/indexes/index.js +0 -627
  749. package/umd/es6/indexes/with-schemas/index.js +0 -627
  750. package/umd/es6/mergeable-store/index.js +0 -2455
  751. package/umd/es6/mergeable-store/with-schemas/index.js +0 -2455
  752. package/umd/es6/metrics/index.js +0 -608
  753. package/umd/es6/metrics/with-schemas/index.js +0 -608
  754. package/umd/es6/min/checkpoints/index.js +0 -1
  755. package/umd/es6/min/checkpoints/index.js.gz +0 -0
  756. package/umd/es6/min/checkpoints/with-schemas/index.js +0 -1
  757. package/umd/es6/min/checkpoints/with-schemas/index.js.gz +0 -0
  758. package/umd/es6/min/common/index.js +0 -1
  759. package/umd/es6/min/common/index.js.gz +0 -0
  760. package/umd/es6/min/common/with-schemas/index.js +0 -1
  761. package/umd/es6/min/common/with-schemas/index.js.gz +0 -0
  762. package/umd/es6/min/index.js +0 -1
  763. package/umd/es6/min/index.js.gz +0 -0
  764. package/umd/es6/min/indexes/index.js +0 -1
  765. package/umd/es6/min/indexes/index.js.gz +0 -0
  766. package/umd/es6/min/indexes/with-schemas/index.js +0 -1
  767. package/umd/es6/min/indexes/with-schemas/index.js.gz +0 -0
  768. package/umd/es6/min/mergeable-store/index.js +0 -1
  769. package/umd/es6/min/mergeable-store/index.js.gz +0 -0
  770. package/umd/es6/min/mergeable-store/with-schemas/index.js +0 -1
  771. package/umd/es6/min/mergeable-store/with-schemas/index.js.gz +0 -0
  772. package/umd/es6/min/metrics/index.js +0 -1
  773. package/umd/es6/min/metrics/index.js.gz +0 -0
  774. package/umd/es6/min/metrics/with-schemas/index.js +0 -1
  775. package/umd/es6/min/metrics/with-schemas/index.js.gz +0 -0
  776. package/umd/es6/min/persisters/index.js +0 -1
  777. package/umd/es6/min/persisters/index.js.gz +0 -0
  778. package/umd/es6/min/persisters/persister-automerge/index.js +0 -1
  779. package/umd/es6/min/persisters/persister-automerge/index.js.gz +0 -0
  780. package/umd/es6/min/persisters/persister-automerge/with-schemas/index.js +0 -1
  781. package/umd/es6/min/persisters/persister-automerge/with-schemas/index.js.gz +0 -0
  782. package/umd/es6/min/persisters/persister-browser/index.js +0 -1
  783. package/umd/es6/min/persisters/persister-browser/index.js.gz +0 -0
  784. package/umd/es6/min/persisters/persister-browser/with-schemas/index.js +0 -1
  785. package/umd/es6/min/persisters/persister-browser/with-schemas/index.js.gz +0 -0
  786. package/umd/es6/min/persisters/persister-cr-sqlite-wasm/index.js +0 -1
  787. package/umd/es6/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  788. package/umd/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +0 -1
  789. package/umd/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  790. package/umd/es6/min/persisters/persister-durable-object-storage/index.js +0 -1
  791. package/umd/es6/min/persisters/persister-durable-object-storage/index.js.gz +0 -0
  792. package/umd/es6/min/persisters/persister-durable-object-storage/with-schemas/index.js +0 -1
  793. package/umd/es6/min/persisters/persister-durable-object-storage/with-schemas/index.js.gz +0 -0
  794. package/umd/es6/min/persisters/persister-electric-sql/index.js +0 -1
  795. package/umd/es6/min/persisters/persister-electric-sql/index.js.gz +0 -0
  796. package/umd/es6/min/persisters/persister-electric-sql/with-schemas/index.js +0 -1
  797. package/umd/es6/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  798. package/umd/es6/min/persisters/persister-expo-sqlite/index.js +0 -1
  799. package/umd/es6/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  800. package/umd/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js +0 -1
  801. package/umd/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  802. package/umd/es6/min/persisters/persister-file/index.js +0 -1
  803. package/umd/es6/min/persisters/persister-file/index.js.gz +0 -0
  804. package/umd/es6/min/persisters/persister-file/with-schemas/index.js +0 -1
  805. package/umd/es6/min/persisters/persister-file/with-schemas/index.js.gz +0 -0
  806. package/umd/es6/min/persisters/persister-indexed-db/index.js +0 -1
  807. package/umd/es6/min/persisters/persister-indexed-db/index.js.gz +0 -0
  808. package/umd/es6/min/persisters/persister-indexed-db/with-schemas/index.js +0 -1
  809. package/umd/es6/min/persisters/persister-indexed-db/with-schemas/index.js.gz +0 -0
  810. package/umd/es6/min/persisters/persister-libsql/index.js +0 -1
  811. package/umd/es6/min/persisters/persister-libsql/index.js.gz +0 -0
  812. package/umd/es6/min/persisters/persister-libsql/with-schemas/index.js +0 -1
  813. package/umd/es6/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  814. package/umd/es6/min/persisters/persister-partykit-client/index.js +0 -1
  815. package/umd/es6/min/persisters/persister-partykit-client/index.js.gz +0 -0
  816. package/umd/es6/min/persisters/persister-partykit-client/with-schemas/index.js +0 -1
  817. package/umd/es6/min/persisters/persister-partykit-client/with-schemas/index.js.gz +0 -0
  818. package/umd/es6/min/persisters/persister-partykit-server/index.js +0 -1
  819. package/umd/es6/min/persisters/persister-partykit-server/index.js.gz +0 -0
  820. package/umd/es6/min/persisters/persister-partykit-server/with-schemas/index.js +0 -1
  821. package/umd/es6/min/persisters/persister-partykit-server/with-schemas/index.js.gz +0 -0
  822. package/umd/es6/min/persisters/persister-pglite/index.js +0 -1
  823. package/umd/es6/min/persisters/persister-pglite/index.js.gz +0 -0
  824. package/umd/es6/min/persisters/persister-pglite/with-schemas/index.js +0 -1
  825. package/umd/es6/min/persisters/persister-pglite/with-schemas/index.js.gz +0 -0
  826. package/umd/es6/min/persisters/persister-postgres/index.js +0 -1
  827. package/umd/es6/min/persisters/persister-postgres/index.js.gz +0 -0
  828. package/umd/es6/min/persisters/persister-postgres/with-schemas/index.js +0 -1
  829. package/umd/es6/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
  830. package/umd/es6/min/persisters/persister-powersync/index.js +0 -1
  831. package/umd/es6/min/persisters/persister-powersync/index.js.gz +0 -0
  832. package/umd/es6/min/persisters/persister-powersync/with-schemas/index.js +0 -1
  833. package/umd/es6/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  834. package/umd/es6/min/persisters/persister-remote/index.js +0 -1
  835. package/umd/es6/min/persisters/persister-remote/index.js.gz +0 -0
  836. package/umd/es6/min/persisters/persister-remote/with-schemas/index.js +0 -1
  837. package/umd/es6/min/persisters/persister-remote/with-schemas/index.js.gz +0 -0
  838. package/umd/es6/min/persisters/persister-sqlite-wasm/index.js +0 -1
  839. package/umd/es6/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  840. package/umd/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js +0 -1
  841. package/umd/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  842. package/umd/es6/min/persisters/persister-sqlite3/index.js +0 -1
  843. package/umd/es6/min/persisters/persister-sqlite3/index.js.gz +0 -0
  844. package/umd/es6/min/persisters/persister-sqlite3/with-schemas/index.js +0 -1
  845. package/umd/es6/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  846. package/umd/es6/min/persisters/persister-yjs/index.js +0 -1
  847. package/umd/es6/min/persisters/persister-yjs/index.js.gz +0 -0
  848. package/umd/es6/min/persisters/persister-yjs/with-schemas/index.js +0 -1
  849. package/umd/es6/min/persisters/persister-yjs/with-schemas/index.js.gz +0 -0
  850. package/umd/es6/min/persisters/with-schemas/index.js +0 -1
  851. package/umd/es6/min/persisters/with-schemas/index.js.gz +0 -0
  852. package/umd/es6/min/queries/index.js +0 -1
  853. package/umd/es6/min/queries/index.js.gz +0 -0
  854. package/umd/es6/min/queries/with-schemas/index.js +0 -1
  855. package/umd/es6/min/queries/with-schemas/index.js.gz +0 -0
  856. package/umd/es6/min/relationships/index.js +0 -1
  857. package/umd/es6/min/relationships/index.js.gz +0 -0
  858. package/umd/es6/min/relationships/with-schemas/index.js +0 -1
  859. package/umd/es6/min/relationships/with-schemas/index.js.gz +0 -0
  860. package/umd/es6/min/store/index.js +0 -1
  861. package/umd/es6/min/store/index.js.gz +0 -0
  862. package/umd/es6/min/store/with-schemas/index.js +0 -1
  863. package/umd/es6/min/store/with-schemas/index.js.gz +0 -0
  864. package/umd/es6/min/synchronizers/index.js +0 -1
  865. package/umd/es6/min/synchronizers/index.js.gz +0 -0
  866. package/umd/es6/min/synchronizers/synchronizer-broadcast-channel/index.js +0 -1
  867. package/umd/es6/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
  868. package/umd/es6/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +0 -1
  869. package/umd/es6/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
  870. package/umd/es6/min/synchronizers/synchronizer-local/index.js +0 -1
  871. package/umd/es6/min/synchronizers/synchronizer-local/index.js.gz +0 -0
  872. package/umd/es6/min/synchronizers/synchronizer-local/with-schemas/index.js +0 -1
  873. package/umd/es6/min/synchronizers/synchronizer-local/with-schemas/index.js.gz +0 -0
  874. package/umd/es6/min/synchronizers/synchronizer-ws-client/index.js +0 -1
  875. package/umd/es6/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
  876. package/umd/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +0 -1
  877. package/umd/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
  878. package/umd/es6/min/synchronizers/synchronizer-ws-server/index.js +0 -1
  879. package/umd/es6/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  880. package/umd/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +0 -1
  881. package/umd/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  882. package/umd/es6/min/synchronizers/synchronizer-ws-server-durable-object/index.js +0 -1
  883. package/umd/es6/min/synchronizers/synchronizer-ws-server-durable-object/index.js.gz +0 -0
  884. package/umd/es6/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +0 -1
  885. package/umd/es6/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js.gz +0 -0
  886. package/umd/es6/min/synchronizers/synchronizer-ws-server-simple/index.js +0 -1
  887. package/umd/es6/min/synchronizers/synchronizer-ws-server-simple/index.js.gz +0 -0
  888. package/umd/es6/min/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js +0 -1
  889. package/umd/es6/min/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js.gz +0 -0
  890. package/umd/es6/min/synchronizers/with-schemas/index.js +0 -1
  891. package/umd/es6/min/synchronizers/with-schemas/index.js.gz +0 -0
  892. package/umd/es6/min/tools/index.js +0 -1
  893. package/umd/es6/min/tools/index.js.gz +0 -0
  894. package/umd/es6/min/tools/with-schemas/index.js +0 -1
  895. package/umd/es6/min/tools/with-schemas/index.js.gz +0 -0
  896. package/umd/es6/min/ui-react/index.js +0 -1
  897. package/umd/es6/min/ui-react/index.js.gz +0 -0
  898. package/umd/es6/min/ui-react/with-schemas/index.js +0 -1
  899. package/umd/es6/min/ui-react/with-schemas/index.js.gz +0 -0
  900. package/umd/es6/min/ui-react-dom/index.js +0 -1
  901. package/umd/es6/min/ui-react-dom/index.js.gz +0 -0
  902. package/umd/es6/min/ui-react-dom/with-schemas/index.js +0 -1
  903. package/umd/es6/min/ui-react-dom/with-schemas/index.js.gz +0 -0
  904. package/umd/es6/min/ui-react-inspector/index.js +0 -1
  905. package/umd/es6/min/ui-react-inspector/index.js.gz +0 -0
  906. package/umd/es6/min/ui-react-inspector/with-schemas/index.js +0 -1
  907. package/umd/es6/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
  908. package/umd/es6/min/with-schemas/index.js +0 -1
  909. package/umd/es6/min/with-schemas/index.js.gz +0 -0
  910. package/umd/es6/persisters/index.js +0 -1589
  911. package/umd/es6/persisters/persister-automerge/index.js +0 -685
  912. package/umd/es6/persisters/persister-automerge/with-schemas/index.js +0 -685
  913. package/umd/es6/persisters/persister-browser/index.js +0 -592
  914. package/umd/es6/persisters/persister-browser/with-schemas/index.js +0 -592
  915. package/umd/es6/persisters/persister-cr-sqlite-wasm/index.js +0 -1499
  916. package/umd/es6/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +0 -1499
  917. package/umd/es6/persisters/persister-durable-object-storage/index.js +0 -707
  918. package/umd/es6/persisters/persister-durable-object-storage/with-schemas/index.js +0 -707
  919. package/umd/es6/persisters/persister-electric-sql/index.js +0 -1506
  920. package/umd/es6/persisters/persister-electric-sql/with-schemas/index.js +0 -1506
  921. package/umd/es6/persisters/persister-expo-sqlite/index.js +0 -1505
  922. package/umd/es6/persisters/persister-expo-sqlite/with-schemas/index.js +0 -1505
  923. package/umd/es6/persisters/persister-file/index.js +0 -578
  924. package/umd/es6/persisters/persister-file/with-schemas/index.js +0 -578
  925. package/umd/es6/persisters/persister-indexed-db/index.js +0 -689
  926. package/umd/es6/persisters/persister-indexed-db/with-schemas/index.js +0 -689
  927. package/umd/es6/persisters/persister-libsql/index.js +0 -1500
  928. package/umd/es6/persisters/persister-libsql/with-schemas/index.js +0 -1500
  929. package/umd/es6/persisters/persister-partykit-client/index.js +0 -668
  930. package/umd/es6/persisters/persister-partykit-client/with-schemas/index.js +0 -668
  931. package/umd/es6/persisters/persister-partykit-server/index.js +0 -447
  932. package/umd/es6/persisters/persister-partykit-server/with-schemas/index.js +0 -447
  933. package/umd/es6/persisters/persister-pglite/index.js +0 -1504
  934. package/umd/es6/persisters/persister-pglite/with-schemas/index.js +0 -1504
  935. package/umd/es6/persisters/persister-postgres/index.js +0 -1511
  936. package/umd/es6/persisters/persister-postgres/with-schemas/index.js +0 -1511
  937. package/umd/es6/persisters/persister-powersync/index.js +0 -1644
  938. package/umd/es6/persisters/persister-powersync/with-schemas/index.js +0 -1644
  939. package/umd/es6/persisters/persister-remote/index.js +0 -598
  940. package/umd/es6/persisters/persister-remote/with-schemas/index.js +0 -598
  941. package/umd/es6/persisters/persister-sqlite-wasm/index.js +0 -1533
  942. package/umd/es6/persisters/persister-sqlite-wasm/with-schemas/index.js +0 -1533
  943. package/umd/es6/persisters/persister-sqlite3/index.js +0 -1509
  944. package/umd/es6/persisters/persister-sqlite3/with-schemas/index.js +0 -1509
  945. package/umd/es6/persisters/persister-yjs/index.js +0 -742
  946. package/umd/es6/persisters/persister-yjs/with-schemas/index.js +0 -742
  947. package/umd/es6/persisters/with-schemas/index.js +0 -1589
  948. package/umd/es6/queries/index.js +0 -884
  949. package/umd/es6/queries/with-schemas/index.js +0 -884
  950. package/umd/es6/relationships/index.js +0 -619
  951. package/umd/es6/relationships/with-schemas/index.js +0 -619
  952. package/umd/es6/store/index.js +0 -1783
  953. package/umd/es6/store/with-schemas/index.js +0 -1783
  954. package/umd/es6/synchronizers/index.js +0 -854
  955. package/umd/es6/synchronizers/synchronizer-broadcast-channel/index.js +0 -879
  956. package/umd/es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +0 -879
  957. package/umd/es6/synchronizers/synchronizer-local/index.js +0 -884
  958. package/umd/es6/synchronizers/synchronizer-local/with-schemas/index.js +0 -884
  959. package/umd/es6/synchronizers/synchronizer-ws-client/index.js +0 -949
  960. package/umd/es6/synchronizers/synchronizer-ws-client/with-schemas/index.js +0 -949
  961. package/umd/es6/synchronizers/synchronizer-ws-server/index.js +0 -1089
  962. package/umd/es6/synchronizers/synchronizer-ws-server/with-schemas/index.js +0 -1089
  963. package/umd/es6/synchronizers/synchronizer-ws-server-durable-object/index.js +0 -1103
  964. package/umd/es6/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +0 -1103
  965. package/umd/es6/synchronizers/synchronizer-ws-server-simple/index.js +0 -144
  966. package/umd/es6/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js +0 -144
  967. package/umd/es6/synchronizers/with-schemas/index.js +0 -854
  968. package/umd/es6/tools/index.js +0 -3484
  969. package/umd/es6/tools/with-schemas/index.js +0 -3484
  970. package/umd/es6/ui-react/index.js +0 -2492
  971. package/umd/es6/ui-react/with-schemas/index.js +0 -2492
  972. package/umd/es6/ui-react-dom/index.js +0 -929
  973. package/umd/es6/ui-react-dom/with-schemas/index.js +0 -929
  974. package/umd/es6/ui-react-inspector/index.js +0 -3791
  975. package/umd/es6/ui-react-inspector/with-schemas/index.js +0 -3791
  976. package/umd/es6/with-schemas/index.js +0 -3991
  977. package/umd/index.js +0 -3838
  978. package/umd/indexes/index.js +0 -574
  979. package/umd/indexes/with-schemas/index.js +0 -574
  980. package/umd/mergeable-store/index.js +0 -2348
  981. package/umd/mergeable-store/with-schemas/index.js +0 -2348
  982. package/umd/metrics/index.js +0 -549
  983. package/umd/metrics/with-schemas/index.js +0 -549
  984. package/umd/min/checkpoints/index.js +0 -1
  985. package/umd/min/checkpoints/index.js.gz +0 -0
  986. package/umd/min/checkpoints/with-schemas/index.js +0 -1
  987. package/umd/min/checkpoints/with-schemas/index.js.gz +0 -0
  988. package/umd/min/common/index.js +0 -1
  989. package/umd/min/common/index.js.gz +0 -0
  990. package/umd/min/common/with-schemas/index.js +0 -1
  991. package/umd/min/common/with-schemas/index.js.gz +0 -0
  992. package/umd/min/index.js +0 -1
  993. package/umd/min/index.js.gz +0 -0
  994. package/umd/min/indexes/index.js +0 -1
  995. package/umd/min/indexes/index.js.gz +0 -0
  996. package/umd/min/indexes/with-schemas/index.js +0 -1
  997. package/umd/min/indexes/with-schemas/index.js.gz +0 -0
  998. package/umd/min/mergeable-store/index.js +0 -1
  999. package/umd/min/mergeable-store/index.js.gz +0 -0
  1000. package/umd/min/mergeable-store/with-schemas/index.js +0 -1
  1001. package/umd/min/mergeable-store/with-schemas/index.js.gz +0 -0
  1002. package/umd/min/metrics/index.js +0 -1
  1003. package/umd/min/metrics/index.js.gz +0 -0
  1004. package/umd/min/metrics/with-schemas/index.js +0 -1
  1005. package/umd/min/metrics/with-schemas/index.js.gz +0 -0
  1006. package/umd/min/persisters/index.js +0 -1
  1007. package/umd/min/persisters/index.js.gz +0 -0
  1008. package/umd/min/persisters/persister-automerge/index.js +0 -1
  1009. package/umd/min/persisters/persister-automerge/index.js.gz +0 -0
  1010. package/umd/min/persisters/persister-automerge/with-schemas/index.js +0 -1
  1011. package/umd/min/persisters/persister-automerge/with-schemas/index.js.gz +0 -0
  1012. package/umd/min/persisters/persister-browser/index.js +0 -1
  1013. package/umd/min/persisters/persister-browser/index.js.gz +0 -0
  1014. package/umd/min/persisters/persister-browser/with-schemas/index.js +0 -1
  1015. package/umd/min/persisters/persister-browser/with-schemas/index.js.gz +0 -0
  1016. package/umd/min/persisters/persister-cr-sqlite-wasm/index.js +0 -1
  1017. package/umd/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  1018. package/umd/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +0 -1
  1019. package/umd/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  1020. package/umd/min/persisters/persister-durable-object-storage/index.js +0 -1
  1021. package/umd/min/persisters/persister-durable-object-storage/index.js.gz +0 -0
  1022. package/umd/min/persisters/persister-durable-object-storage/with-schemas/index.js +0 -1
  1023. package/umd/min/persisters/persister-durable-object-storage/with-schemas/index.js.gz +0 -0
  1024. package/umd/min/persisters/persister-electric-sql/index.js +0 -1
  1025. package/umd/min/persisters/persister-electric-sql/index.js.gz +0 -0
  1026. package/umd/min/persisters/persister-electric-sql/with-schemas/index.js +0 -1
  1027. package/umd/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  1028. package/umd/min/persisters/persister-expo-sqlite/index.js +0 -1
  1029. package/umd/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  1030. package/umd/min/persisters/persister-expo-sqlite/with-schemas/index.js +0 -1
  1031. package/umd/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  1032. package/umd/min/persisters/persister-file/index.js +0 -1
  1033. package/umd/min/persisters/persister-file/index.js.gz +0 -0
  1034. package/umd/min/persisters/persister-file/with-schemas/index.js +0 -1
  1035. package/umd/min/persisters/persister-file/with-schemas/index.js.gz +0 -0
  1036. package/umd/min/persisters/persister-indexed-db/index.js +0 -1
  1037. package/umd/min/persisters/persister-indexed-db/index.js.gz +0 -0
  1038. package/umd/min/persisters/persister-indexed-db/with-schemas/index.js +0 -1
  1039. package/umd/min/persisters/persister-indexed-db/with-schemas/index.js.gz +0 -0
  1040. package/umd/min/persisters/persister-libsql/index.js +0 -1
  1041. package/umd/min/persisters/persister-libsql/index.js.gz +0 -0
  1042. package/umd/min/persisters/persister-libsql/with-schemas/index.js +0 -1
  1043. package/umd/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  1044. package/umd/min/persisters/persister-partykit-client/index.js +0 -1
  1045. package/umd/min/persisters/persister-partykit-client/index.js.gz +0 -0
  1046. package/umd/min/persisters/persister-partykit-client/with-schemas/index.js +0 -1
  1047. package/umd/min/persisters/persister-partykit-client/with-schemas/index.js.gz +0 -0
  1048. package/umd/min/persisters/persister-partykit-server/index.js +0 -1
  1049. package/umd/min/persisters/persister-partykit-server/index.js.gz +0 -0
  1050. package/umd/min/persisters/persister-partykit-server/with-schemas/index.js +0 -1
  1051. package/umd/min/persisters/persister-partykit-server/with-schemas/index.js.gz +0 -0
  1052. package/umd/min/persisters/persister-pglite/index.js +0 -1
  1053. package/umd/min/persisters/persister-pglite/index.js.gz +0 -0
  1054. package/umd/min/persisters/persister-pglite/with-schemas/index.js +0 -1
  1055. package/umd/min/persisters/persister-pglite/with-schemas/index.js.gz +0 -0
  1056. package/umd/min/persisters/persister-postgres/index.js +0 -1
  1057. package/umd/min/persisters/persister-postgres/index.js.gz +0 -0
  1058. package/umd/min/persisters/persister-postgres/with-schemas/index.js +0 -1
  1059. package/umd/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
  1060. package/umd/min/persisters/persister-powersync/index.js +0 -1
  1061. package/umd/min/persisters/persister-powersync/index.js.gz +0 -0
  1062. package/umd/min/persisters/persister-powersync/with-schemas/index.js +0 -1
  1063. package/umd/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  1064. package/umd/min/persisters/persister-remote/index.js +0 -1
  1065. package/umd/min/persisters/persister-remote/index.js.gz +0 -0
  1066. package/umd/min/persisters/persister-remote/with-schemas/index.js +0 -1
  1067. package/umd/min/persisters/persister-remote/with-schemas/index.js.gz +0 -0
  1068. package/umd/min/persisters/persister-sqlite-wasm/index.js +0 -1
  1069. package/umd/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  1070. package/umd/min/persisters/persister-sqlite-wasm/with-schemas/index.js +0 -1
  1071. package/umd/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  1072. package/umd/min/persisters/persister-sqlite3/index.js +0 -1
  1073. package/umd/min/persisters/persister-sqlite3/index.js.gz +0 -0
  1074. package/umd/min/persisters/persister-sqlite3/with-schemas/index.js +0 -1
  1075. package/umd/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  1076. package/umd/min/persisters/persister-yjs/index.js +0 -1
  1077. package/umd/min/persisters/persister-yjs/index.js.gz +0 -0
  1078. package/umd/min/persisters/persister-yjs/with-schemas/index.js +0 -1
  1079. package/umd/min/persisters/persister-yjs/with-schemas/index.js.gz +0 -0
  1080. package/umd/min/persisters/with-schemas/index.js +0 -1
  1081. package/umd/min/persisters/with-schemas/index.js.gz +0 -0
  1082. package/umd/min/queries/index.js +0 -1
  1083. package/umd/min/queries/index.js.gz +0 -0
  1084. package/umd/min/queries/with-schemas/index.js +0 -1
  1085. package/umd/min/queries/with-schemas/index.js.gz +0 -0
  1086. package/umd/min/relationships/index.js +0 -1
  1087. package/umd/min/relationships/index.js.gz +0 -0
  1088. package/umd/min/relationships/with-schemas/index.js +0 -1
  1089. package/umd/min/relationships/with-schemas/index.js.gz +0 -0
  1090. package/umd/min/store/index.js +0 -1
  1091. package/umd/min/store/index.js.gz +0 -0
  1092. package/umd/min/store/with-schemas/index.js +0 -1
  1093. package/umd/min/store/with-schemas/index.js.gz +0 -0
  1094. package/umd/min/synchronizers/index.js +0 -1
  1095. package/umd/min/synchronizers/index.js.gz +0 -0
  1096. package/umd/min/synchronizers/synchronizer-broadcast-channel/index.js +0 -1
  1097. package/umd/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
  1098. package/umd/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +0 -1
  1099. package/umd/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
  1100. package/umd/min/synchronizers/synchronizer-local/index.js +0 -1
  1101. package/umd/min/synchronizers/synchronizer-local/index.js.gz +0 -0
  1102. package/umd/min/synchronizers/synchronizer-local/with-schemas/index.js +0 -1
  1103. package/umd/min/synchronizers/synchronizer-local/with-schemas/index.js.gz +0 -0
  1104. package/umd/min/synchronizers/synchronizer-ws-client/index.js +0 -1
  1105. package/umd/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
  1106. package/umd/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +0 -1
  1107. package/umd/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
  1108. package/umd/min/synchronizers/synchronizer-ws-server/index.js +0 -1
  1109. package/umd/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  1110. package/umd/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +0 -1
  1111. package/umd/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  1112. package/umd/min/synchronizers/synchronizer-ws-server-durable-object/index.js +0 -1
  1113. package/umd/min/synchronizers/synchronizer-ws-server-durable-object/index.js.gz +0 -0
  1114. package/umd/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +0 -1
  1115. package/umd/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js.gz +0 -0
  1116. package/umd/min/synchronizers/synchronizer-ws-server-simple/index.js +0 -1
  1117. package/umd/min/synchronizers/synchronizer-ws-server-simple/index.js.gz +0 -0
  1118. package/umd/min/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js +0 -1
  1119. package/umd/min/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js.gz +0 -0
  1120. package/umd/min/synchronizers/with-schemas/index.js +0 -1
  1121. package/umd/min/synchronizers/with-schemas/index.js.gz +0 -0
  1122. package/umd/min/tools/index.js +0 -1
  1123. package/umd/min/tools/index.js.gz +0 -0
  1124. package/umd/min/tools/with-schemas/index.js +0 -1
  1125. package/umd/min/tools/with-schemas/index.js.gz +0 -0
  1126. package/umd/min/ui-react/index.js +0 -1
  1127. package/umd/min/ui-react/index.js.gz +0 -0
  1128. package/umd/min/ui-react/with-schemas/index.js +0 -1
  1129. package/umd/min/ui-react/with-schemas/index.js.gz +0 -0
  1130. package/umd/min/ui-react-dom/index.js +0 -1
  1131. package/umd/min/ui-react-dom/index.js.gz +0 -0
  1132. package/umd/min/ui-react-dom/with-schemas/index.js +0 -1
  1133. package/umd/min/ui-react-dom/with-schemas/index.js.gz +0 -0
  1134. package/umd/min/ui-react-inspector/index.js +0 -1
  1135. package/umd/min/ui-react-inspector/index.js.gz +0 -0
  1136. package/umd/min/ui-react-inspector/with-schemas/index.js +0 -1
  1137. package/umd/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
  1138. package/umd/min/with-schemas/index.js +0 -1
  1139. package/umd/min/with-schemas/index.js.gz +0 -0
  1140. package/umd/persisters/index.js +0 -1231
  1141. package/umd/persisters/persister-automerge/index.js +0 -560
  1142. package/umd/persisters/persister-automerge/with-schemas/index.js +0 -560
  1143. package/umd/persisters/persister-browser/index.js +0 -463
  1144. package/umd/persisters/persister-browser/with-schemas/index.js +0 -463
  1145. package/umd/persisters/persister-cr-sqlite-wasm/index.js +0 -1145
  1146. package/umd/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +0 -1145
  1147. package/umd/persisters/persister-durable-object-storage/index.js +0 -562
  1148. package/umd/persisters/persister-durable-object-storage/with-schemas/index.js +0 -562
  1149. package/umd/persisters/persister-electric-sql/index.js +0 -1152
  1150. package/umd/persisters/persister-electric-sql/with-schemas/index.js +0 -1152
  1151. package/umd/persisters/persister-expo-sqlite/index.js +0 -1151
  1152. package/umd/persisters/persister-expo-sqlite/with-schemas/index.js +0 -1151
  1153. package/umd/persisters/persister-file/index.js +0 -451
  1154. package/umd/persisters/persister-file/with-schemas/index.js +0 -451
  1155. package/umd/persisters/persister-indexed-db/index.js +0 -523
  1156. package/umd/persisters/persister-indexed-db/with-schemas/index.js +0 -523
  1157. package/umd/persisters/persister-libsql/index.js +0 -1146
  1158. package/umd/persisters/persister-libsql/with-schemas/index.js +0 -1146
  1159. package/umd/persisters/persister-partykit-client/index.js +0 -508
  1160. package/umd/persisters/persister-partykit-client/with-schemas/index.js +0 -508
  1161. package/umd/persisters/persister-partykit-server/index.js +0 -324
  1162. package/umd/persisters/persister-partykit-server/with-schemas/index.js +0 -324
  1163. package/umd/persisters/persister-pglite/index.js +0 -1148
  1164. package/umd/persisters/persister-pglite/with-schemas/index.js +0 -1148
  1165. package/umd/persisters/persister-postgres/index.js +0 -1149
  1166. package/umd/persisters/persister-postgres/with-schemas/index.js +0 -1149
  1167. package/umd/persisters/persister-powersync/index.js +0 -1242
  1168. package/umd/persisters/persister-powersync/with-schemas/index.js +0 -1242
  1169. package/umd/persisters/persister-remote/index.js +0 -469
  1170. package/umd/persisters/persister-remote/with-schemas/index.js +0 -469
  1171. package/umd/persisters/persister-sqlite-wasm/index.js +0 -1158
  1172. package/umd/persisters/persister-sqlite-wasm/with-schemas/index.js +0 -1158
  1173. package/umd/persisters/persister-sqlite3/index.js +0 -1156
  1174. package/umd/persisters/persister-sqlite3/with-schemas/index.js +0 -1156
  1175. package/umd/persisters/persister-yjs/index.js +0 -606
  1176. package/umd/persisters/persister-yjs/with-schemas/index.js +0 -606
  1177. package/umd/persisters/with-schemas/index.js +0 -1231
  1178. package/umd/queries/index.js +0 -832
  1179. package/umd/queries/with-schemas/index.js +0 -832
  1180. package/umd/relationships/index.js +0 -553
  1181. package/umd/relationships/with-schemas/index.js +0 -553
  1182. package/umd/store/index.js +0 -1701
  1183. package/umd/store/with-schemas/index.js +0 -1701
  1184. package/umd/synchronizers/index.js +0 -690
  1185. package/umd/synchronizers/synchronizer-broadcast-channel/index.js +0 -715
  1186. package/umd/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +0 -715
  1187. package/umd/synchronizers/synchronizer-local/index.js +0 -717
  1188. package/umd/synchronizers/synchronizer-local/with-schemas/index.js +0 -717
  1189. package/umd/synchronizers/synchronizer-ws-client/index.js +0 -758
  1190. package/umd/synchronizers/synchronizer-ws-client/with-schemas/index.js +0 -758
  1191. package/umd/synchronizers/synchronizer-ws-server/index.js +0 -881
  1192. package/umd/synchronizers/synchronizer-ws-server/with-schemas/index.js +0 -881
  1193. package/umd/synchronizers/synchronizer-ws-server-durable-object/index.js +0 -815
  1194. package/umd/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +0 -815
  1195. package/umd/synchronizers/synchronizer-ws-server-simple/index.js +0 -102
  1196. package/umd/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js +0 -102
  1197. package/umd/synchronizers/with-schemas/index.js +0 -690
  1198. package/umd/tools/index.js +0 -3354
  1199. package/umd/tools/with-schemas/index.js +0 -3354
  1200. package/umd/ui-react/index.js +0 -2283
  1201. package/umd/ui-react/with-schemas/index.js +0 -2283
  1202. package/umd/ui-react-dom/index.js +0 -810
  1203. package/umd/ui-react-dom/with-schemas/index.js +0 -810
  1204. package/umd/ui-react-inspector/index.js +0 -3402
  1205. package/umd/ui-react-inspector/with-schemas/index.js +0 -3402
  1206. package/umd/with-schemas/index.js +0 -3838
package/umd/index.js DELETED
@@ -1,3838 +0,0 @@
1
- (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined'
3
- ? factory(exports)
4
- : typeof define === 'function' && define.amd
5
- ? define(['exports'], factory)
6
- : ((global =
7
- typeof globalThis !== 'undefined' ? globalThis : global || self),
8
- factory((global.TinyBase = {})));
9
- })(this, function (exports) {
10
- 'use strict';
11
-
12
- const getTypeOf = (thing) => typeof thing;
13
- const EMPTY_STRING = '';
14
- const STRING = getTypeOf(EMPTY_STRING);
15
- const BOOLEAN = getTypeOf(true);
16
- const NUMBER = getTypeOf(0);
17
- const FUNCTION = getTypeOf(getTypeOf);
18
- const TYPE = 'type';
19
- const DEFAULT = 'default';
20
- const SUM = 'sum';
21
- const AVG = 'avg';
22
- const MIN = 'min';
23
- const MAX = 'max';
24
- const LISTENER = 'Listener';
25
- const RESULT = 'Result';
26
- const GET = 'get';
27
- const SET = 'set';
28
- const ADD = 'add';
29
- const DEL = 'del';
30
- const HAS = 'Has';
31
- const IDS = 'Ids';
32
- const TABLE = 'Table';
33
- const TABLES = TABLE + 's';
34
- const TABLE_IDS = TABLE + IDS;
35
- const ROW = 'Row';
36
- const ROW_COUNT = ROW + 'Count';
37
- const ROW_IDS = ROW + IDS;
38
- const SORTED_ROW_IDS = 'Sorted' + ROW + IDS;
39
- const CELL = 'Cell';
40
- const CELL_IDS = CELL + IDS;
41
- const VALUE = 'Value';
42
- const VALUES = VALUE + 's';
43
- const VALUE_IDS = VALUE + IDS;
44
- const TRANSACTION = 'Transaction';
45
- const id = (key) => EMPTY_STRING + key;
46
- const strStartsWith = (str, prefix) => str.startsWith(prefix);
47
- const strEndsWith = (str, suffix) => str.endsWith(suffix);
48
- const strSplit = (str, separator = EMPTY_STRING, limit) =>
49
- str.split(separator, limit);
50
-
51
- const GLOBAL = globalThis;
52
- const math = Math;
53
- const mathMax = math.max;
54
- const mathMin = math.min;
55
- const mathFloor = math.floor;
56
- const isFiniteNumber = isFinite;
57
- const isInstanceOf = (thing, cls) => thing instanceof cls;
58
- const isUndefined = (thing) => thing == void 0;
59
- const ifNotUndefined = (value, then, otherwise) =>
60
- isUndefined(value) ? otherwise?.() : then(value);
61
- const isTypeStringOrBoolean = (type) => type == STRING || type == BOOLEAN;
62
- const isString = (thing) => getTypeOf(thing) == STRING;
63
- const isFunction = (thing) => getTypeOf(thing) == FUNCTION;
64
- const isArray = (thing) => Array.isArray(thing);
65
- const slice = (arrayOrString, start, end) => arrayOrString.slice(start, end);
66
- const size = (arrayOrString) => arrayOrString.length;
67
- const test = (regex, subject) => regex.test(subject);
68
- const getUndefined = () => void 0;
69
-
70
- const arrayHas = (array, value) => array.includes(value);
71
- const arrayEvery = (array, cb) => array.every(cb);
72
- const arrayIsEqual = (array1, array2) =>
73
- size(array1) === size(array2) &&
74
- arrayEvery(array1, (value1, index) => array2[index] === value1);
75
- const arrayIsSorted = (array, sorter) =>
76
- arrayEvery(
77
- array,
78
- (value, index) => index == 0 || sorter(array[index - 1], value) <= 0,
79
- );
80
- const arraySort = (array, sorter) => array.sort(sorter);
81
- const arrayForEach = (array, cb) => array.forEach(cb);
82
- const arrayMap = (array, cb) => array.map(cb);
83
- const arraySum = (array) => arrayReduce(array, (i, j) => i + j, 0);
84
- const arrayIsEmpty = (array) => size(array) == 0;
85
- const arrayReduce = (array, cb, initial) => array.reduce(cb, initial);
86
- const arrayClear = (array, to) => array.splice(0, to);
87
- const arrayPush = (array, ...values) => array.push(...values);
88
- const arrayPop = (array) => array.pop();
89
- const arrayUnshift = (array, ...values) => array.unshift(...values);
90
- const arrayShift = (array) => array.shift();
91
-
92
- const object = Object;
93
- const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
94
- const objEntries = object.entries;
95
- const objFrozen = object.isFrozen;
96
- const isObject = (obj) =>
97
- !isUndefined(obj) &&
98
- ifNotUndefined(
99
- getPrototypeOf(obj),
100
- (objPrototype) =>
101
- objPrototype == object.prototype ||
102
- isUndefined(getPrototypeOf(objPrototype)),
103
-
104
- /* istanbul ignore next */
105
- () => true,
106
- );
107
- const objIds = object.keys;
108
- const objFreeze = object.freeze;
109
- const objNew = (entries = []) => object.fromEntries(entries);
110
- const objHas = (obj, id) => id in obj;
111
- const objDel = (obj, id) => {
112
- delete obj[id];
113
- return obj;
114
- };
115
- const objForEach = (obj, cb) =>
116
- arrayForEach(objEntries(obj), ([id, value]) => cb(value, id));
117
- const objToArray = (obj, cb) =>
118
- arrayMap(objEntries(obj), ([id, value]) => cb(value, id));
119
- const objMap = (obj, cb) =>
120
- objNew(objToArray(obj, (value, id) => [id, cb(value, id)]));
121
- const objSize = (obj) => size(objIds(obj));
122
- const objIsEmpty = (obj) => isObject(obj) && objSize(obj) == 0;
123
- const objEnsure = (obj, id, getDefaultValue) => {
124
- if (!objHas(obj, id)) {
125
- obj[id] = getDefaultValue();
126
- }
127
- return obj[id];
128
- };
129
- const objValidate = (obj, validateChild, onInvalidObj, emptyIsValid = 0) => {
130
- if (
131
- isUndefined(obj) ||
132
- !isObject(obj) ||
133
- (!emptyIsValid && objIsEmpty(obj)) ||
134
- objFrozen(obj)
135
- ) {
136
- onInvalidObj?.();
137
- return false;
138
- }
139
- objForEach(obj, (child, id) => {
140
- if (!validateChild(child, id)) {
141
- objDel(obj, id);
142
- }
143
- });
144
- return emptyIsValid ? true : !objIsEmpty(obj);
145
- };
146
-
147
- const collSizeN = (collSizer) => (coll) =>
148
- arrayReduce(
149
- collValues(coll),
150
- (total, coll2) => total + collSizer(coll2),
151
- 0,
152
- );
153
- const collSize = (coll) => coll?.size ?? 0;
154
- const collSize2 = collSizeN(collSize);
155
- const collSize3 = collSizeN(collSize2);
156
- const collSize4 = collSizeN(collSize3);
157
- const collHas = (coll, keyOrValue) => coll?.has(keyOrValue) ?? false;
158
- const collIsEmpty = (coll) => isUndefined(coll) || collSize(coll) == 0;
159
- const collValues = (coll) => [...(coll?.values() ?? [])];
160
- const collClear = (coll) => coll.clear();
161
- const collForEach = (coll, cb) => coll?.forEach(cb);
162
- const collDel = (coll, keyOrValue) => coll?.delete(keyOrValue);
163
-
164
- const mapNew = (entries) => new Map(entries);
165
- const mapKeys = (map) => [...(map?.keys() ?? [])];
166
- const mapGet = (map, key) => map?.get(key);
167
- const mapForEach = (map, cb) =>
168
- collForEach(map, (value, key) => cb(key, value));
169
- const mapMap = (coll, cb) =>
170
- arrayMap([...(coll?.entries() ?? [])], ([key, value]) => cb(value, key));
171
- const mapSet = (map, key, value) =>
172
- isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
173
- const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
174
- if (!collHas(map, key)) {
175
- mapSet(map, key, getDefaultValue());
176
- } else {
177
- hadExistingValue?.(mapGet(map, key));
178
- }
179
- return mapGet(map, key);
180
- };
181
- const mapMatch = (map, obj, set, del = mapSet) => {
182
- objMap(obj, (value, id) => set(map, id, value));
183
- mapForEach(map, (id) => (objHas(obj, id) ? 0 : del(map, id)));
184
- return map;
185
- };
186
- const mapToObj = (map, valueMapper, excludeMapValue, excludeObjValue) => {
187
- const obj = {};
188
- collForEach(map, (mapValue, id) => {
189
- if (!excludeMapValue?.(mapValue, id)) {
190
- const objValue = valueMapper ? valueMapper(mapValue, id) : mapValue;
191
- if (!excludeObjValue?.(objValue)) {
192
- obj[id] = objValue;
193
- }
194
- }
195
- });
196
- return obj;
197
- };
198
- const mapToObj2 = (map, valueMapper, excludeMapValue) =>
199
- mapToObj(
200
- map,
201
- (childMap) => mapToObj(childMap, valueMapper, excludeMapValue),
202
- collIsEmpty,
203
- objIsEmpty,
204
- );
205
- const mapToObj3 = (map, valueMapper, excludeMapValue) =>
206
- mapToObj(
207
- map,
208
- (childMap) => mapToObj2(childMap, valueMapper, excludeMapValue),
209
- collIsEmpty,
210
- objIsEmpty,
211
- );
212
- const mapClone = (map, mapValue) => {
213
- const map2 = mapNew();
214
- collForEach(map, (value, key) => map2.set(key, mapValue?.(value) ?? value));
215
- return map2;
216
- };
217
- const mapClone2 = (map) => mapClone(map, mapClone);
218
- const mapClone3 = (map) => mapClone(map, mapClone2);
219
- const visitTree = (node, path, ensureLeaf, pruneLeaf, p = 0) =>
220
- ifNotUndefined(
221
- (ensureLeaf ? mapEnsure : mapGet)(
222
- node,
223
- path[p],
224
- p > size(path) - 2 ? ensureLeaf : mapNew,
225
- ),
226
- (nodeOrLeaf) => {
227
- if (p > size(path) - 2) {
228
- if (pruneLeaf?.(nodeOrLeaf)) {
229
- mapSet(node, path[p]);
230
- }
231
- return nodeOrLeaf;
232
- }
233
- const leaf = visitTree(nodeOrLeaf, path, ensureLeaf, pruneLeaf, p + 1);
234
- if (collIsEmpty(nodeOrLeaf)) {
235
- mapSet(node, path[p]);
236
- }
237
- return leaf;
238
- },
239
- );
240
-
241
- const getCellOrValueType = (cellOrValue) => {
242
- const type = getTypeOf(cellOrValue);
243
- return isTypeStringOrBoolean(type) ||
244
- (type == NUMBER && isFiniteNumber(cellOrValue))
245
- ? type
246
- : void 0;
247
- };
248
- const isCellOrValueOrNullOrUndefined = (cellOrValue) =>
249
- isUndefined(cellOrValue) || !isUndefined(getCellOrValueType(cellOrValue));
250
- const setOrDelCell = (store, tableId, rowId, cellId, cell) =>
251
- isUndefined(cell)
252
- ? store.delCell(tableId, rowId, cellId, true)
253
- : store.setCell(tableId, rowId, cellId, cell);
254
- const setOrDelValue = (store, valueId, value) =>
255
- isUndefined(value)
256
- ? store.delValue(valueId)
257
- : store.setValue(valueId, value);
258
-
259
- const setNew = (entryOrEntries) =>
260
- new Set(
261
- isArray(entryOrEntries) || isUndefined(entryOrEntries)
262
- ? entryOrEntries
263
- : [entryOrEntries],
264
- );
265
- const setAdd = (set, value) => set?.add(value);
266
-
267
- const getDefinableFunctions = (
268
- store,
269
- getDefaultThing,
270
- validateRowValue,
271
- addListener,
272
- callListeners,
273
- ) => {
274
- const hasRow = store.hasRow;
275
- const tableIds = mapNew();
276
- const things = mapNew();
277
- const thingIdListeners = mapNew();
278
- const allRowValues = mapNew();
279
- const allSortKeys = mapNew();
280
- const storeListenerIds = mapNew();
281
- const getStore = () => store;
282
- const getThingIds = () => mapKeys(tableIds);
283
- const forEachThing = (cb) => mapForEach(things, cb);
284
- const hasThing = (id) => collHas(things, id);
285
- const getTableId = (id) => mapGet(tableIds, id);
286
- const getThing = (id) => mapGet(things, id);
287
- const setThing = (id, thing) => mapSet(things, id, thing);
288
- const addStoreListeners = (id, andCall, ...listenerIds) => {
289
- const set = mapEnsure(storeListenerIds, id, setNew);
290
- arrayForEach(
291
- listenerIds,
292
- (listenerId) =>
293
- setAdd(set, listenerId) && andCall && store.callListener(listenerId),
294
- );
295
- return listenerIds;
296
- };
297
- const delStoreListeners = (id, ...listenerIds) =>
298
- ifNotUndefined(mapGet(storeListenerIds, id), (allListenerIds) => {
299
- arrayForEach(
300
- arrayIsEmpty(listenerIds) ? collValues(allListenerIds) : listenerIds,
301
- (listenerId) => {
302
- store.delListener(listenerId);
303
- collDel(allListenerIds, listenerId);
304
- },
305
- );
306
- if (collIsEmpty(allListenerIds)) {
307
- mapSet(storeListenerIds, id);
308
- }
309
- });
310
- const setDefinition = (id, tableId) => {
311
- mapSet(tableIds, id, tableId);
312
- if (!collHas(things, id)) {
313
- mapSet(things, id, getDefaultThing());
314
- mapSet(allRowValues, id, mapNew());
315
- mapSet(allSortKeys, id, mapNew());
316
- callListeners(thingIdListeners);
317
- }
318
- };
319
- const setDefinitionAndListen = (
320
- id,
321
- tableId,
322
- onChanged,
323
- getRowValue,
324
- getSortKey,
325
- ) => {
326
- setDefinition(id, tableId);
327
- const changedRowValues = mapNew();
328
- const changedSortKeys = mapNew();
329
- const rowValues = mapGet(allRowValues, id);
330
- const sortKeys = mapGet(allSortKeys, id);
331
- const processRow = (rowId) => {
332
- const getCell = (cellId) => store.getCell(tableId, rowId, cellId);
333
- const oldRowValue = mapGet(rowValues, rowId);
334
- const newRowValue = hasRow(tableId, rowId)
335
- ? validateRowValue(getRowValue(getCell, rowId))
336
- : void 0;
337
- if (
338
- !(
339
- oldRowValue === newRowValue ||
340
- (isArray(oldRowValue) &&
341
- isArray(newRowValue) &&
342
- arrayIsEqual(oldRowValue, newRowValue))
343
- )
344
- ) {
345
- mapSet(changedRowValues, rowId, [oldRowValue, newRowValue]);
346
- }
347
- if (!isUndefined(getSortKey)) {
348
- const oldSortKey = mapGet(sortKeys, rowId);
349
- const newSortKey = hasRow(tableId, rowId)
350
- ? getSortKey(getCell, rowId)
351
- : void 0;
352
- if (oldSortKey != newSortKey) {
353
- mapSet(changedSortKeys, rowId, newSortKey);
354
- }
355
- }
356
- };
357
- const processTable = (force) => {
358
- onChanged(
359
- () => {
360
- collForEach(changedRowValues, ([, newRowValue], rowId) =>
361
- mapSet(rowValues, rowId, newRowValue),
362
- );
363
- collForEach(changedSortKeys, (newSortKey, rowId) =>
364
- mapSet(sortKeys, rowId, newSortKey),
365
- );
366
- },
367
- changedRowValues,
368
- changedSortKeys,
369
- rowValues,
370
- sortKeys,
371
- force,
372
- );
373
- collClear(changedRowValues);
374
- collClear(changedSortKeys);
375
- };
376
- mapForEach(rowValues, processRow);
377
- if (store.hasTable(tableId)) {
378
- arrayForEach(store.getRowIds(tableId), (rowId) => {
379
- if (!collHas(rowValues, rowId)) {
380
- processRow(rowId);
381
- }
382
- });
383
- }
384
- processTable(true);
385
- delStoreListeners(id);
386
- addStoreListeners(
387
- id,
388
- 0,
389
- store.addRowListener(tableId, null, (_store, _tableId, rowId) =>
390
- processRow(rowId),
391
- ),
392
- store.addTableListener(tableId, () => processTable()),
393
- );
394
- };
395
- const delDefinition = (id) => {
396
- mapSet(tableIds, id);
397
- mapSet(things, id);
398
- mapSet(allRowValues, id);
399
- mapSet(allSortKeys, id);
400
- delStoreListeners(id);
401
- callListeners(thingIdListeners);
402
- };
403
- const addThingIdsListener = (listener) =>
404
- addListener(listener, thingIdListeners);
405
- const destroy = () => mapForEach(storeListenerIds, delDefinition);
406
- return [
407
- getStore,
408
- getThingIds,
409
- forEachThing,
410
- hasThing,
411
- getTableId,
412
- getThing,
413
- setThing,
414
- setDefinition,
415
- setDefinitionAndListen,
416
- delDefinition,
417
- addThingIdsListener,
418
- destroy,
419
- addStoreListeners,
420
- delStoreListeners,
421
- ];
422
- };
423
- const getRowCellFunction = (getRowCell, defaultCellValue) =>
424
- isString(getRowCell)
425
- ? (getCell) => getCell(getRowCell)
426
- : (getRowCell ?? (() => defaultCellValue ?? EMPTY_STRING));
427
- const getCreateFunction = (getFunction, initFunction) => {
428
- const thingsByStore = /* @__PURE__ */ new WeakMap();
429
- return (store) => {
430
- if (!thingsByStore.has(store)) {
431
- thingsByStore.set(store, getFunction(store));
432
- }
433
- const thing = thingsByStore.get(store);
434
- initFunction?.(thing);
435
- return thing;
436
- };
437
- };
438
-
439
- const INTEGER = /^\d+$/;
440
- const getPoolFunctions = () => {
441
- const pool = [];
442
- let nextId = 0;
443
- return [
444
- (reuse) => (reuse ? arrayShift(pool) : null) ?? EMPTY_STRING + nextId++,
445
- (id) => {
446
- if (test(INTEGER, id) && size(pool) < 1e3) {
447
- arrayPush(pool, id);
448
- }
449
- },
450
- ];
451
- };
452
-
453
- const getWildcardedLeaves = (deepIdSet, path = [EMPTY_STRING]) => {
454
- const leaves = [];
455
- const deep = (node, p) =>
456
- p == size(path)
457
- ? arrayPush(leaves, node)
458
- : path[p] === null
459
- ? collForEach(node, (node2) => deep(node2, p + 1))
460
- : arrayForEach([path[p], null], (id) =>
461
- deep(mapGet(node, id), p + 1),
462
- );
463
- deep(deepIdSet, 0);
464
- return leaves;
465
- };
466
- const getListenerFunctions = (getThing) => {
467
- let thing;
468
- const [getId, releaseId] = getPoolFunctions();
469
- const allListeners = mapNew();
470
- const addListener = (
471
- listener,
472
- idSetNode,
473
- path,
474
- pathGetters = [],
475
- extraArgsGetter = () => [],
476
- ) => {
477
- thing ??= getThing();
478
- const id = getId(1);
479
- mapSet(allListeners, id, [
480
- listener,
481
- idSetNode,
482
- path,
483
- pathGetters,
484
- extraArgsGetter,
485
- ]);
486
- setAdd(visitTree(idSetNode, path ?? [EMPTY_STRING], setNew), id);
487
- return id;
488
- };
489
- const callListeners = (idSetNode, ids, ...extraArgs) =>
490
- arrayForEach(getWildcardedLeaves(idSetNode, ids), (set) =>
491
- collForEach(set, (id) =>
492
- mapGet(allListeners, id)[0](thing, ...(ids ?? []), ...extraArgs),
493
- ),
494
- );
495
- const delListener = (id) =>
496
- ifNotUndefined(mapGet(allListeners, id), ([, idSetNode, idOrNulls]) => {
497
- visitTree(idSetNode, idOrNulls ?? [EMPTY_STRING], void 0, (idSet) => {
498
- collDel(idSet, id);
499
- return collIsEmpty(idSet) ? 1 : 0;
500
- });
501
- mapSet(allListeners, id);
502
- releaseId(id);
503
- return idOrNulls;
504
- });
505
- const callListener = (id) =>
506
- ifNotUndefined(
507
- mapGet(allListeners, id),
508
- ([listener, , path = [], pathGetters, extraArgsGetter]) => {
509
- const callWithIds = (...ids) => {
510
- const index = size(ids);
511
- if (index == size(path)) {
512
- listener(thing, ...ids, ...extraArgsGetter(ids));
513
- } else if (isUndefined(path[index])) {
514
- arrayForEach(pathGetters[index]?.(...ids) ?? [], (id2) =>
515
- callWithIds(...ids, id2),
516
- );
517
- } else {
518
- callWithIds(...ids, path[index]);
519
- }
520
- };
521
- callWithIds();
522
- },
523
- );
524
- return [addListener, callListeners, delListener, callListener];
525
- };
526
-
527
- const createCheckpoints = getCreateFunction(
528
- (store) => {
529
- let backwardIdsSize = 100;
530
- let currentId;
531
- let cellsDelta = mapNew();
532
- let valuesDelta = mapNew();
533
- let listening = 1;
534
- let nextCheckpointId;
535
- let checkpointsChanged;
536
- const checkpointIdsListeners = mapNew();
537
- const checkpointListeners = mapNew();
538
- const [addListener, callListeners, delListenerImpl] =
539
- getListenerFunctions(() => checkpoints);
540
- const deltas = mapNew();
541
- const labels = mapNew();
542
- const backwardIds = [];
543
- const forwardIds = [];
544
- const updateStore = (oldOrNew, checkpointId) => {
545
- listening = 0;
546
- store.transaction(() => {
547
- const [cellsDelta2, valuesDelta2] = mapGet(deltas, checkpointId);
548
- collForEach(cellsDelta2, (table, tableId) =>
549
- collForEach(table, (row, rowId) =>
550
- collForEach(row, (oldNew, cellId) =>
551
- setOrDelCell(store, tableId, rowId, cellId, oldNew[oldOrNew]),
552
- ),
553
- ),
554
- );
555
- collForEach(valuesDelta2, (oldNew, valueId) =>
556
- setOrDelValue(store, valueId, oldNew[oldOrNew]),
557
- );
558
- });
559
- listening = 1;
560
- };
561
- const clearCheckpointId = (checkpointId) => {
562
- mapSet(deltas, checkpointId);
563
- mapSet(labels, checkpointId);
564
- callListeners(checkpointListeners, [checkpointId]);
565
- };
566
- const clearCheckpointIds = (checkpointIds, to) =>
567
- arrayForEach(
568
- arrayClear(checkpointIds, to ?? size(checkpointIds)),
569
- clearCheckpointId,
570
- );
571
- const trimBackwardsIds = () =>
572
- clearCheckpointIds(backwardIds, size(backwardIds) - backwardIdsSize);
573
- const storeChanged = () =>
574
- ifNotUndefined(currentId, () => {
575
- arrayPush(backwardIds, currentId);
576
- trimBackwardsIds();
577
- clearCheckpointIds(forwardIds);
578
- currentId = void 0;
579
- checkpointsChanged = 1;
580
- });
581
- const storeUnchanged = () => {
582
- currentId = arrayPop(backwardIds);
583
- checkpointsChanged = 1;
584
- };
585
- let cellListenerId;
586
- let valueListenerId;
587
- const addCheckpointImpl = (label = EMPTY_STRING) => {
588
- if (isUndefined(currentId)) {
589
- currentId = EMPTY_STRING + nextCheckpointId++;
590
- mapSet(deltas, currentId, [cellsDelta, valuesDelta]);
591
- setCheckpoint(currentId, label);
592
- cellsDelta = mapNew();
593
- valuesDelta = mapNew();
594
- checkpointsChanged = 1;
595
- }
596
- return currentId;
597
- };
598
- const goBackwardImpl = () => {
599
- if (!arrayIsEmpty(backwardIds)) {
600
- arrayUnshift(forwardIds, addCheckpointImpl());
601
- updateStore(0, currentId);
602
- currentId = arrayPop(backwardIds);
603
- checkpointsChanged = 1;
604
- }
605
- };
606
- const goForwardImpl = () => {
607
- if (!arrayIsEmpty(forwardIds)) {
608
- arrayPush(backwardIds, currentId);
609
- currentId = arrayShift(forwardIds);
610
- updateStore(1, currentId);
611
- checkpointsChanged = 1;
612
- }
613
- };
614
- const callListenersIfChanged = () => {
615
- if (checkpointsChanged) {
616
- callListeners(checkpointIdsListeners);
617
- checkpointsChanged = 0;
618
- }
619
- };
620
- const setSize = (size2) => {
621
- backwardIdsSize = size2;
622
- trimBackwardsIds();
623
- return checkpoints;
624
- };
625
- const addCheckpoint = (label) => {
626
- const id = addCheckpointImpl(label);
627
- callListenersIfChanged();
628
- return id;
629
- };
630
- const setCheckpoint = (checkpointId, label) => {
631
- if (
632
- hasCheckpoint(checkpointId) &&
633
- mapGet(labels, checkpointId) !== label
634
- ) {
635
- mapSet(labels, checkpointId, label);
636
- callListeners(checkpointListeners, [checkpointId]);
637
- }
638
- return checkpoints;
639
- };
640
- const getStore = () => store;
641
- const getCheckpointIds = () => [
642
- [...backwardIds],
643
- currentId,
644
- [...forwardIds],
645
- ];
646
- const forEachCheckpoint = (checkpointCallback) =>
647
- mapForEach(labels, checkpointCallback);
648
- const hasCheckpoint = (checkpointId) => collHas(deltas, checkpointId);
649
- const getCheckpoint = (checkpointId) => mapGet(labels, checkpointId);
650
- const goBackward = () => {
651
- goBackwardImpl();
652
- callListenersIfChanged();
653
- return checkpoints;
654
- };
655
- const goForward = () => {
656
- goForwardImpl();
657
- callListenersIfChanged();
658
- return checkpoints;
659
- };
660
- const goTo = (checkpointId) => {
661
- const action = arrayHas(backwardIds, checkpointId)
662
- ? goBackwardImpl
663
- : arrayHas(forwardIds, checkpointId)
664
- ? goForwardImpl
665
- : null;
666
- while (!isUndefined(action) && checkpointId != currentId) {
667
- action();
668
- }
669
- callListenersIfChanged();
670
- return checkpoints;
671
- };
672
- const addCheckpointIdsListener = (listener) =>
673
- addListener(listener, checkpointIdsListeners);
674
- const addCheckpointListener = (checkpointId, listener) =>
675
- addListener(listener, checkpointListeners, [checkpointId]);
676
- const delListener = (listenerId) => {
677
- delListenerImpl(listenerId);
678
- return checkpoints;
679
- };
680
- const clear = () => {
681
- clearCheckpointIds(backwardIds);
682
- clearCheckpointIds(forwardIds);
683
- if (!isUndefined(currentId)) {
684
- clearCheckpointId(currentId);
685
- }
686
- currentId = void 0;
687
- nextCheckpointId = 0;
688
- addCheckpoint();
689
- return checkpoints;
690
- };
691
- const clearForward = () => {
692
- if (!arrayIsEmpty(forwardIds)) {
693
- clearCheckpointIds(forwardIds);
694
- callListeners(checkpointIdsListeners);
695
- }
696
- return checkpoints;
697
- };
698
- const destroy = () => {
699
- store.delListener(cellListenerId);
700
- store.delListener(valueListenerId);
701
- };
702
- const getListenerStats = () => ({
703
- checkpointIds: collSize2(checkpointIdsListeners),
704
- checkpoint: collSize2(checkpointListeners),
705
- });
706
- const _registerListeners = () => {
707
- cellListenerId = store.addCellListener(
708
- null,
709
- null,
710
- null,
711
- (_store, tableId, rowId, cellId, newCell, oldCell) => {
712
- if (listening) {
713
- storeChanged();
714
- const table = mapEnsure(cellsDelta, tableId, mapNew);
715
- const row = mapEnsure(table, rowId, mapNew);
716
- const oldNew = mapEnsure(row, cellId, () => [oldCell, void 0]);
717
- oldNew[1] = newCell;
718
- if (
719
- oldNew[0] === newCell &&
720
- collIsEmpty(mapSet(row, cellId)) &&
721
- collIsEmpty(mapSet(table, rowId)) &&
722
- collIsEmpty(mapSet(cellsDelta, tableId))
723
- ) {
724
- storeUnchanged();
725
- }
726
- callListenersIfChanged();
727
- }
728
- },
729
- );
730
- valueListenerId = store.addValueListener(
731
- null,
732
- (_store, valueId, newValue, oldValue) => {
733
- if (listening) {
734
- storeChanged();
735
- const oldNew = mapEnsure(valuesDelta, valueId, () => [
736
- oldValue,
737
- void 0,
738
- ]);
739
- oldNew[1] = newValue;
740
- if (
741
- oldNew[0] === newValue &&
742
- collIsEmpty(mapSet(valuesDelta, valueId))
743
- ) {
744
- storeUnchanged();
745
- }
746
- callListenersIfChanged();
747
- }
748
- },
749
- );
750
- };
751
- const checkpoints = {
752
- setSize,
753
- addCheckpoint,
754
- setCheckpoint,
755
- getStore,
756
- getCheckpointIds,
757
- forEachCheckpoint,
758
- hasCheckpoint,
759
- getCheckpoint,
760
- goBackward,
761
- goForward,
762
- goTo,
763
- addCheckpointIdsListener,
764
- addCheckpointListener,
765
- delListener,
766
- clear,
767
- clearForward,
768
- destroy,
769
- getListenerStats,
770
- _registerListeners,
771
- };
772
- return objFreeze(checkpoints.clear());
773
- },
774
- (checkpoints) => checkpoints._registerListeners(),
775
- );
776
-
777
- const MASK6 = 63;
778
- const ENCODE = /* @__PURE__ */ strSplit(
779
- '-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz',
780
- );
781
- const DECODE = /* @__PURE__ */ mapNew(
782
- /* @__PURE__ */ arrayMap(ENCODE, (char, index) => [char, index]),
783
- );
784
- const encode = (num) => ENCODE[num & MASK6];
785
- const decode = (str, pos) => mapGet(DECODE, str[pos]) ?? 0;
786
-
787
- const getRandomValues = GLOBAL.crypto
788
- ? (array) => GLOBAL.crypto.getRandomValues(array)
789
- : /* istanbul ignore next */
790
- (array) => arrayMap(array, () => mathFloor(math.random() * 256));
791
- const defaultSorter = (sortKey1, sortKey2) =>
792
- (sortKey1 ?? 0) < (sortKey2 ?? 0) ? -1 : 1;
793
- const getUniqueId = (length = 16) =>
794
- arrayReduce(
795
- getRandomValues(new Uint8Array(length)),
796
- (uniqueId, number) => uniqueId + encode(number),
797
- '',
798
- );
799
-
800
- const createIndexes = getCreateFunction((store) => {
801
- const sliceIdsListeners = mapNew();
802
- const sliceRowIdsListeners = mapNew();
803
- const [addListener, callListeners, delListenerImpl] = getListenerFunctions(
804
- () => indexes,
805
- );
806
- const [
807
- getStore,
808
- getIndexIds,
809
- forEachIndexImpl,
810
- hasIndex,
811
- getTableId,
812
- getIndex,
813
- setIndex,
814
- ,
815
- setDefinitionAndListen,
816
- delDefinition,
817
- addIndexIdsListener,
818
- destroy,
819
- ] = getDefinableFunctions(
820
- store,
821
- mapNew,
822
- (value) =>
823
- isUndefined(value)
824
- ? EMPTY_STRING
825
- : isArray(value)
826
- ? arrayMap(value, id)
827
- : id(value),
828
- addListener,
829
- callListeners,
830
- );
831
- const hasSlice = (indexId, sliceId) => collHas(getIndex(indexId), sliceId);
832
- const setIndexDefinition = (
833
- indexId,
834
- tableId,
835
- getSliceIdOrIds,
836
- getSortKey,
837
- sliceIdSorter,
838
- rowIdSorter = defaultSorter,
839
- ) => {
840
- const sliceIdArraySorter = isUndefined(sliceIdSorter)
841
- ? void 0
842
- : ([id1], [id2]) => sliceIdSorter(id1, id2);
843
- setDefinitionAndListen(
844
- indexId,
845
- tableId,
846
- (
847
- change,
848
- changedSliceIds,
849
- changedSortKeys,
850
- sliceIds,
851
- sortKeys,
852
- force,
853
- ) => {
854
- let sliceIdsChanged = 0;
855
- const changedSlices = setNew();
856
- const unsortedSlices = setNew();
857
- const index = getIndex(indexId);
858
- collForEach(
859
- changedSliceIds,
860
- ([oldSliceIdOrIds, newSliceIdOrIds], rowId) => {
861
- const oldSliceIds = setNew(oldSliceIdOrIds);
862
- const newSliceIds = setNew(newSliceIdOrIds);
863
- collForEach(oldSliceIds, (oldSliceId) =>
864
- collDel(newSliceIds, oldSliceId)
865
- ? collDel(oldSliceIds, oldSliceId)
866
- : 0,
867
- );
868
- collForEach(oldSliceIds, (oldSliceId) => {
869
- setAdd(changedSlices, oldSliceId);
870
- ifNotUndefined(mapGet(index, oldSliceId), (oldSlice) => {
871
- collDel(oldSlice, rowId);
872
- if (collIsEmpty(oldSlice)) {
873
- mapSet(index, oldSliceId);
874
- sliceIdsChanged = 1;
875
- }
876
- });
877
- });
878
- collForEach(newSliceIds, (newSliceId) => {
879
- setAdd(changedSlices, newSliceId);
880
- if (!collHas(index, newSliceId)) {
881
- mapSet(index, newSliceId, setNew());
882
- sliceIdsChanged = 1;
883
- }
884
- setAdd(mapGet(index, newSliceId), rowId);
885
- if (!isUndefined(getSortKey)) {
886
- setAdd(unsortedSlices, newSliceId);
887
- }
888
- });
889
- },
890
- );
891
- change();
892
- if (!collIsEmpty(sortKeys)) {
893
- if (force) {
894
- mapForEach(index, (sliceId) => setAdd(unsortedSlices, sliceId));
895
- } else {
896
- mapForEach(changedSortKeys, (rowId) =>
897
- ifNotUndefined(mapGet(sliceIds, rowId), (sliceId) =>
898
- setAdd(unsortedSlices, sliceId),
899
- ),
900
- );
901
- }
902
- collForEach(unsortedSlices, (sliceId) => {
903
- const rowIdArraySorter = (rowId1, rowId2) =>
904
- rowIdSorter(
905
- mapGet(sortKeys, rowId1),
906
- mapGet(sortKeys, rowId2),
907
- sliceId,
908
- );
909
- const sliceArray = [...mapGet(index, sliceId)];
910
- if (!arrayIsSorted(sliceArray, rowIdArraySorter)) {
911
- mapSet(
912
- index,
913
- sliceId,
914
- setNew(arraySort(sliceArray, rowIdArraySorter)),
915
- );
916
- setAdd(changedSlices, sliceId);
917
- }
918
- });
919
- }
920
- if (sliceIdsChanged || force) {
921
- if (!isUndefined(sliceIdArraySorter)) {
922
- const indexArray = [...index];
923
- if (!arrayIsSorted(indexArray, sliceIdArraySorter)) {
924
- setIndex(
925
- indexId,
926
- mapNew(arraySort(indexArray, sliceIdArraySorter)),
927
- );
928
- sliceIdsChanged = 1;
929
- }
930
- }
931
- }
932
- if (sliceIdsChanged) {
933
- callListeners(sliceIdsListeners, [indexId]);
934
- }
935
- collForEach(changedSlices, (sliceId) =>
936
- callListeners(sliceRowIdsListeners, [indexId, sliceId]),
937
- );
938
- },
939
- getRowCellFunction(getSliceIdOrIds),
940
- ifNotUndefined(getSortKey, getRowCellFunction),
941
- );
942
- return indexes;
943
- };
944
- const forEachIndex = (indexCallback) =>
945
- forEachIndexImpl((indexId, slices) =>
946
- indexCallback(indexId, (sliceCallback) =>
947
- forEachSliceImpl(indexId, sliceCallback, slices),
948
- ),
949
- );
950
- const forEachSlice = (indexId, sliceCallback) =>
951
- forEachSliceImpl(indexId, sliceCallback, getIndex(indexId));
952
- const forEachSliceImpl = (indexId, sliceCallback, slices) => {
953
- const tableId = getTableId(indexId);
954
- collForEach(slices, (rowIds, sliceId) =>
955
- sliceCallback(sliceId, (rowCallback) =>
956
- collForEach(rowIds, (rowId) =>
957
- rowCallback(rowId, (cellCallback) =>
958
- store.forEachCell(tableId, rowId, cellCallback),
959
- ),
960
- ),
961
- ),
962
- );
963
- };
964
- const delIndexDefinition = (indexId) => {
965
- delDefinition(indexId);
966
- return indexes;
967
- };
968
- const getSliceIds = (indexId) => mapKeys(getIndex(indexId));
969
- const getSliceRowIds = (indexId, sliceId) =>
970
- collValues(mapGet(getIndex(indexId), sliceId));
971
- const addSliceIdsListener = (indexId, listener) =>
972
- addListener(listener, sliceIdsListeners, [indexId]);
973
- const addSliceRowIdsListener = (indexId, sliceId, listener) =>
974
- addListener(listener, sliceRowIdsListeners, [indexId, sliceId]);
975
- const delListener = (listenerId) => {
976
- delListenerImpl(listenerId);
977
- return indexes;
978
- };
979
- const getListenerStats = () => ({
980
- sliceIds: collSize2(sliceIdsListeners),
981
- sliceRowIds: collSize3(sliceRowIdsListeners),
982
- });
983
- const indexes = {
984
- setIndexDefinition,
985
- delIndexDefinition,
986
- getStore,
987
- getIndexIds,
988
- forEachIndex,
989
- forEachSlice,
990
- hasIndex,
991
- hasSlice,
992
- getTableId,
993
- getSliceIds,
994
- getSliceRowIds,
995
- addIndexIdsListener,
996
- addSliceIdsListener,
997
- addSliceRowIdsListener,
998
- delListener,
999
- destroy,
1000
- getListenerStats,
1001
- };
1002
- return objFreeze(indexes);
1003
- });
1004
-
1005
- const numericAggregators = /* @__PURE__ */ mapNew([
1006
- [
1007
- AVG,
1008
- [
1009
- (numbers, length) => arraySum(numbers) / length,
1010
- (metric, add, length) => metric + (add - metric) / (length + 1),
1011
- (metric, remove, length) => metric + (metric - remove) / (length - 1),
1012
- (metric, add, remove, length) => metric + (add - remove) / length,
1013
- ],
1014
- ],
1015
- [
1016
- MAX,
1017
- [
1018
- (numbers) => mathMax(...numbers),
1019
- (metric, add) => mathMax(add, metric),
1020
- (metric, remove) => (remove == metric ? void 0 : metric),
1021
- (metric, add, remove) =>
1022
- remove == metric ? void 0 : mathMax(add, metric),
1023
- ],
1024
- ],
1025
- [
1026
- MIN,
1027
- [
1028
- (numbers) => mathMin(...numbers),
1029
- (metric, add) => mathMin(add, metric),
1030
- (metric, remove) => (remove == metric ? void 0 : metric),
1031
- (metric, add, remove) =>
1032
- remove == metric ? void 0 : mathMin(add, metric),
1033
- ],
1034
- ],
1035
- [
1036
- SUM,
1037
- [
1038
- (numbers) => arraySum(numbers),
1039
- (metric, add) => metric + add,
1040
- (metric, remove) => metric - remove,
1041
- (metric, add, remove) => metric - remove + add,
1042
- ],
1043
- ],
1044
- ]);
1045
- const getAggregateValue = (
1046
- aggregateValue,
1047
- oldLength,
1048
- newValues,
1049
- changedValues,
1050
- aggregators,
1051
- force = false,
1052
- ) => {
1053
- if (collIsEmpty(newValues)) {
1054
- return void 0;
1055
- }
1056
- const [aggregate, aggregateAdd, aggregateRemove, aggregateReplace] =
1057
- aggregators;
1058
- force ||= isUndefined(aggregateValue);
1059
- collForEach(changedValues, ([oldValue, newValue]) => {
1060
- if (!force) {
1061
- aggregateValue = isUndefined(oldValue)
1062
- ? aggregateAdd?.(aggregateValue, newValue, oldLength++)
1063
- : isUndefined(newValue)
1064
- ? aggregateRemove?.(aggregateValue, oldValue, oldLength--)
1065
- : aggregateReplace?.(aggregateValue, newValue, oldValue, oldLength);
1066
- force ||= isUndefined(aggregateValue);
1067
- }
1068
- });
1069
- return force
1070
- ? aggregate(collValues(newValues), collSize(newValues))
1071
- : aggregateValue;
1072
- };
1073
-
1074
- const createMetrics = getCreateFunction((store) => {
1075
- const metricListeners = mapNew();
1076
- const [addListener, callListeners, delListenerImpl] = getListenerFunctions(
1077
- () => metrics,
1078
- );
1079
- const [
1080
- getStore,
1081
- getMetricIds,
1082
- forEachMetric,
1083
- hasMetric,
1084
- getTableId,
1085
- getMetric,
1086
- setMetric,
1087
- ,
1088
- setDefinitionAndListen,
1089
- delDefinition,
1090
- addMetricIdsListener,
1091
- destroy,
1092
- ] = getDefinableFunctions(
1093
- store,
1094
- getUndefined,
1095
- (value) =>
1096
- isNaN(value) ||
1097
- isUndefined(value) ||
1098
- value === true ||
1099
- value === false ||
1100
- value === EMPTY_STRING
1101
- ? void 0
1102
- : value * 1,
1103
- addListener,
1104
- callListeners,
1105
- );
1106
- const setMetricDefinition = (
1107
- metricId,
1108
- tableId,
1109
- aggregate,
1110
- getNumber,
1111
- aggregateAdd,
1112
- aggregateRemove,
1113
- aggregateReplace,
1114
- ) => {
1115
- const aggregators = isFunction(aggregate)
1116
- ? [aggregate, aggregateAdd, aggregateRemove, aggregateReplace]
1117
- : (mapGet(numericAggregators, aggregate) ??
1118
- mapGet(numericAggregators, SUM));
1119
- setDefinitionAndListen(
1120
- metricId,
1121
- tableId,
1122
- (
1123
- change,
1124
- changedNumbers,
1125
- _changedSortKeys,
1126
- numbers,
1127
- _sortKeys,
1128
- force,
1129
- ) => {
1130
- const oldMetric = getMetric(metricId);
1131
- const oldLength = collSize(numbers);
1132
- force ||= isUndefined(oldMetric);
1133
- change();
1134
- let newMetric = getAggregateValue(
1135
- oldMetric,
1136
- oldLength,
1137
- numbers,
1138
- changedNumbers,
1139
- aggregators,
1140
- force,
1141
- );
1142
- if (!isFiniteNumber(newMetric)) {
1143
- newMetric = void 0;
1144
- }
1145
- if (newMetric != oldMetric) {
1146
- setMetric(metricId, newMetric);
1147
- callListeners(metricListeners, [metricId], newMetric, oldMetric);
1148
- }
1149
- },
1150
- getRowCellFunction(getNumber, 1),
1151
- );
1152
- return metrics;
1153
- };
1154
- const delMetricDefinition = (metricId) => {
1155
- delDefinition(metricId);
1156
- return metrics;
1157
- };
1158
- const addMetricListener = (metricId, listener) =>
1159
- addListener(listener, metricListeners, [metricId]);
1160
- const delListener = (listenerId) => {
1161
- delListenerImpl(listenerId);
1162
- return metrics;
1163
- };
1164
- const getListenerStats = () => ({
1165
- metric: collSize2(metricListeners),
1166
- });
1167
- const metrics = {
1168
- setMetricDefinition,
1169
- delMetricDefinition,
1170
- getStore,
1171
- getMetricIds,
1172
- forEachMetric,
1173
- hasMetric,
1174
- getTableId,
1175
- getMetric,
1176
- addMetricIdsListener,
1177
- addMetricListener,
1178
- delListener,
1179
- destroy,
1180
- getListenerStats,
1181
- };
1182
- return objFreeze(metrics);
1183
- });
1184
-
1185
- const createQueries = getCreateFunction((store) => {
1186
- const createStore = store.createStore;
1187
- const preStore = createStore();
1188
- const resultStore = createStore();
1189
- const preStoreListenerIds = mapNew();
1190
- const {
1191
- addListener,
1192
- callListeners,
1193
- delListener: delListenerImpl,
1194
- } = resultStore;
1195
- const [
1196
- getStore,
1197
- getQueryIds,
1198
- forEachQuery,
1199
- hasQuery,
1200
- getTableId,
1201
- ,
1202
- ,
1203
- setDefinition,
1204
- ,
1205
- delDefinition,
1206
- addQueryIdsListenerImpl,
1207
- destroy,
1208
- addStoreListeners,
1209
- delStoreListeners,
1210
- ] = getDefinableFunctions(
1211
- store,
1212
- () => true,
1213
- getUndefined,
1214
- addListener,
1215
- callListeners,
1216
- );
1217
- const addPreStoreListener = (preStore2, queryId, ...listenerIds) =>
1218
- arrayForEach(listenerIds, (listenerId) =>
1219
- setAdd(
1220
- mapEnsure(
1221
- mapEnsure(preStoreListenerIds, queryId, mapNew),
1222
- preStore2,
1223
- setNew,
1224
- ),
1225
- listenerId,
1226
- ),
1227
- );
1228
- const resetPreStores = (queryId) => {
1229
- ifNotUndefined(
1230
- mapGet(preStoreListenerIds, queryId),
1231
- (queryPreStoreListenerIds) => {
1232
- mapForEach(queryPreStoreListenerIds, (preStore2, listenerIds) =>
1233
- collForEach(listenerIds, (listenerId) =>
1234
- preStore2.delListener(listenerId),
1235
- ),
1236
- );
1237
- collClear(queryPreStoreListenerIds);
1238
- },
1239
- );
1240
- arrayForEach([resultStore, preStore], (store2) =>
1241
- store2.delTable(queryId),
1242
- );
1243
- };
1244
- const synchronizeTransactions = (queryId, fromStore, toStore) =>
1245
- addPreStoreListener(
1246
- fromStore,
1247
- queryId,
1248
- fromStore.addStartTransactionListener(toStore.startTransaction),
1249
- fromStore.addDidFinishTransactionListener(() =>
1250
- toStore.finishTransaction(),
1251
- ),
1252
- );
1253
- const setQueryDefinition = (queryId, tableId, build) => {
1254
- setDefinition(queryId, tableId);
1255
- resetPreStores(queryId);
1256
- const selectEntries = [];
1257
- const joinEntries = [[null, [tableId, null, null, [], mapNew()]]];
1258
- const wheres = [];
1259
- const groupEntries = [];
1260
- const havings = [];
1261
- const select = (arg1, arg2) => {
1262
- const selectEntry = isFunction(arg1)
1263
- ? [size(selectEntries) + EMPTY_STRING, arg1]
1264
- : [
1265
- isUndefined(arg2) ? arg1 : arg2,
1266
- (getTableCell) => getTableCell(arg1, arg2),
1267
- ];
1268
- arrayPush(selectEntries, selectEntry);
1269
- return {as: (selectedCellId) => (selectEntry[0] = selectedCellId)};
1270
- };
1271
- const join = (joinedTableId, arg1, arg2) => {
1272
- const fromIntermediateJoinedTableId =
1273
- isUndefined(arg2) || isFunction(arg1) ? null : arg1;
1274
- const onArg = isUndefined(fromIntermediateJoinedTableId) ? arg1 : arg2;
1275
- const joinEntry = [
1276
- joinedTableId,
1277
- [
1278
- joinedTableId,
1279
- fromIntermediateJoinedTableId,
1280
- isFunction(onArg) ? onArg : (getCell) => getCell(onArg),
1281
- [],
1282
- mapNew(),
1283
- ],
1284
- ];
1285
- arrayPush(joinEntries, joinEntry);
1286
- return {as: (joinedTableId2) => (joinEntry[0] = joinedTableId2)};
1287
- };
1288
- const where = (arg1, arg2, arg3) =>
1289
- arrayPush(
1290
- wheres,
1291
- isFunction(arg1)
1292
- ? arg1
1293
- : isUndefined(arg3)
1294
- ? (getTableCell) => getTableCell(arg1) === arg2
1295
- : (getTableCell) => getTableCell(arg1, arg2) === arg3,
1296
- );
1297
- const group = (
1298
- selectedCellId,
1299
- aggregate,
1300
- aggregateAdd,
1301
- aggregateRemove,
1302
- aggregateReplace,
1303
- ) => {
1304
- const groupEntry = [
1305
- selectedCellId,
1306
- [
1307
- selectedCellId,
1308
- isFunction(aggregate)
1309
- ? [aggregate, aggregateAdd, aggregateRemove, aggregateReplace]
1310
- : (mapGet(numericAggregators, aggregate) ?? [
1311
- (_cells, length) => length,
1312
- ]),
1313
- ],
1314
- ];
1315
- arrayPush(groupEntries, groupEntry);
1316
- return {as: (groupedCellId) => (groupEntry[0] = groupedCellId)};
1317
- };
1318
- const having = (arg1, arg2) =>
1319
- arrayPush(
1320
- havings,
1321
- isFunction(arg1)
1322
- ? arg1
1323
- : (getSelectedOrGroupedCell) =>
1324
- getSelectedOrGroupedCell(arg1) === arg2,
1325
- );
1326
- build({select, join, where, group, having});
1327
- const selects = mapNew(selectEntries);
1328
- if (collIsEmpty(selects)) {
1329
- return queries;
1330
- }
1331
- const joins = mapNew(joinEntries);
1332
- mapForEach(joins, (asTableId, [, fromAsTableId]) =>
1333
- ifNotUndefined(mapGet(joins, fromAsTableId), ({3: toAsTableIds}) =>
1334
- isUndefined(asTableId) ? 0 : arrayPush(toAsTableIds, asTableId),
1335
- ),
1336
- );
1337
- const groups = mapNew(groupEntries);
1338
- let selectJoinWhereStore = preStore;
1339
- if (collIsEmpty(groups) && arrayIsEmpty(havings)) {
1340
- selectJoinWhereStore = resultStore;
1341
- } else {
1342
- synchronizeTransactions(queryId, selectJoinWhereStore, resultStore);
1343
- const groupedSelectedCellIds = mapNew();
1344
- mapForEach(groups, (groupedCellId, [selectedCellId, aggregators]) =>
1345
- setAdd(mapEnsure(groupedSelectedCellIds, selectedCellId, setNew), [
1346
- groupedCellId,
1347
- aggregators,
1348
- ]),
1349
- );
1350
- const groupBySelectedCellIds = setNew();
1351
- mapForEach(selects, (selectedCellId) =>
1352
- collHas(groupedSelectedCellIds, selectedCellId)
1353
- ? 0
1354
- : setAdd(groupBySelectedCellIds, selectedCellId),
1355
- );
1356
- const tree = mapNew();
1357
- const writeGroupRow = (
1358
- leaf,
1359
- changedGroupedSelectedCells,
1360
- selectedRowId,
1361
- forceRemove,
1362
- ) =>
1363
- ifNotUndefined(
1364
- leaf,
1365
- ([selectedCells, selectedRowIds, groupRowId, groupRow]) => {
1366
- mapForEach(
1367
- changedGroupedSelectedCells,
1368
- (selectedCellId, [newCell]) => {
1369
- const selectedCell = mapEnsure(
1370
- selectedCells,
1371
- selectedCellId,
1372
- mapNew,
1373
- );
1374
- const oldLeafCell = mapGet(selectedCell, selectedRowId);
1375
- const newLeafCell = forceRemove ? void 0 : newCell;
1376
- if (oldLeafCell !== newLeafCell) {
1377
- const oldNewSet = setNew([[oldLeafCell, newLeafCell]]);
1378
- const oldLength = collSize(selectedCell);
1379
- mapSet(selectedCell, selectedRowId, newLeafCell);
1380
- collForEach(
1381
- mapGet(groupedSelectedCellIds, selectedCellId),
1382
- ([groupedCellId, aggregators]) => {
1383
- const aggregateValue = getAggregateValue(
1384
- groupRow[groupedCellId],
1385
- oldLength,
1386
- selectedCell,
1387
- oldNewSet,
1388
- aggregators,
1389
- );
1390
- groupRow[groupedCellId] = isUndefined(
1391
- getCellOrValueType(aggregateValue),
1392
- )
1393
- ? null
1394
- : aggregateValue;
1395
- },
1396
- );
1397
- }
1398
- },
1399
- );
1400
- if (
1401
- collIsEmpty(selectedRowIds) ||
1402
- !arrayEvery(havings, (having2) =>
1403
- having2((cellId) => groupRow[cellId]),
1404
- )
1405
- ) {
1406
- resultStore.delRow(queryId, groupRowId);
1407
- } else if (isUndefined(groupRowId)) {
1408
- leaf[2] = resultStore.addRow(queryId, groupRow);
1409
- } else {
1410
- resultStore.setRow(queryId, groupRowId, groupRow);
1411
- }
1412
- },
1413
- );
1414
- addPreStoreListener(
1415
- selectJoinWhereStore,
1416
- queryId,
1417
- selectJoinWhereStore.addRowListener(
1418
- queryId,
1419
- null,
1420
- (_store, _tableId, selectedRowId, getCellChange) => {
1421
- const oldPath = [];
1422
- const newPath = [];
1423
- const changedGroupedSelectedCells = mapNew();
1424
- const rowExists = selectJoinWhereStore.hasRow(
1425
- queryId,
1426
- selectedRowId,
1427
- );
1428
- let changedLeaf = !rowExists;
1429
- collForEach(groupBySelectedCellIds, (selectedCellId) => {
1430
- const [changed, oldCell, newCell] = getCellChange(
1431
- queryId,
1432
- selectedRowId,
1433
- selectedCellId,
1434
- );
1435
- arrayPush(oldPath, oldCell);
1436
- arrayPush(newPath, newCell);
1437
- changedLeaf ||= changed;
1438
- });
1439
- mapForEach(groupedSelectedCellIds, (selectedCellId) => {
1440
- const [changed, , newCell] = getCellChange(
1441
- queryId,
1442
- selectedRowId,
1443
- selectedCellId,
1444
- );
1445
- if (changedLeaf || changed) {
1446
- mapSet(changedGroupedSelectedCells, selectedCellId, [
1447
- newCell,
1448
- ]);
1449
- }
1450
- });
1451
- if (changedLeaf) {
1452
- writeGroupRow(
1453
- visitTree(tree, oldPath, void 0, ([, selectedRowIds]) => {
1454
- collDel(selectedRowIds, selectedRowId);
1455
- return collIsEmpty(selectedRowIds);
1456
- }),
1457
- changedGroupedSelectedCells,
1458
- selectedRowId,
1459
- 1,
1460
- );
1461
- }
1462
- if (rowExists) {
1463
- writeGroupRow(
1464
- visitTree(
1465
- tree,
1466
- newPath,
1467
- () => {
1468
- const groupRow = {};
1469
- collForEach(
1470
- groupBySelectedCellIds,
1471
- (selectedCellId) =>
1472
- (groupRow[selectedCellId] =
1473
- selectJoinWhereStore.getCell(
1474
- queryId,
1475
- selectedRowId,
1476
- selectedCellId,
1477
- )),
1478
- );
1479
- return [mapNew(), setNew(), void 0, groupRow];
1480
- },
1481
- ([, selectedRowIds]) => {
1482
- setAdd(selectedRowIds, selectedRowId);
1483
- },
1484
- ),
1485
- changedGroupedSelectedCells,
1486
- selectedRowId,
1487
- );
1488
- }
1489
- },
1490
- ),
1491
- );
1492
- }
1493
- synchronizeTransactions(queryId, store, selectJoinWhereStore);
1494
- const writeSelectRow = (rootRowId) => {
1495
- const getTableCell = (arg1, arg2) =>
1496
- store.getCell(
1497
- ...(isUndefined(arg2)
1498
- ? [tableId, rootRowId, arg1]
1499
- : arg1 === tableId
1500
- ? [tableId, rootRowId, arg2]
1501
- : [
1502
- mapGet(joins, arg1)?.[0],
1503
- mapGet(mapGet(joins, arg1)?.[4], rootRowId)?.[0],
1504
- arg2,
1505
- ]),
1506
- );
1507
- selectJoinWhereStore.transaction(() =>
1508
- arrayEvery(wheres, (where2) => where2(getTableCell))
1509
- ? mapForEach(selects, (asCellId, tableCellGetter) =>
1510
- setOrDelCell(
1511
- selectJoinWhereStore,
1512
- queryId,
1513
- rootRowId,
1514
- asCellId,
1515
- tableCellGetter(getTableCell, rootRowId),
1516
- ),
1517
- )
1518
- : selectJoinWhereStore.delRow(queryId, rootRowId),
1519
- );
1520
- };
1521
- const listenToTable = (rootRowId, tableId2, rowId, joinedTableIds2) => {
1522
- const getCell = (cellId) => store.getCell(tableId2, rowId, cellId);
1523
- arrayForEach(joinedTableIds2, (remoteAsTableId) => {
1524
- const [realJoinedTableId, , on, nextJoinedTableIds, remoteIdPair] =
1525
- mapGet(joins, remoteAsTableId);
1526
- const remoteRowId = on?.(getCell, rootRowId);
1527
- const [previousRemoteRowId, previousRemoteListenerId] =
1528
- mapGet(remoteIdPair, rootRowId) ?? [];
1529
- if (remoteRowId != previousRemoteRowId) {
1530
- if (!isUndefined(previousRemoteListenerId)) {
1531
- delStoreListeners(queryId, previousRemoteListenerId);
1532
- }
1533
- mapSet(
1534
- remoteIdPair,
1535
- rootRowId,
1536
- isUndefined(remoteRowId)
1537
- ? null
1538
- : [
1539
- remoteRowId,
1540
- ...addStoreListeners(
1541
- queryId,
1542
- 1,
1543
- store.addRowListener(realJoinedTableId, remoteRowId, () =>
1544
- listenToTable(
1545
- rootRowId,
1546
- realJoinedTableId,
1547
- remoteRowId,
1548
- nextJoinedTableIds,
1549
- ),
1550
- ),
1551
- ),
1552
- ],
1553
- );
1554
- }
1555
- });
1556
- writeSelectRow(rootRowId);
1557
- };
1558
- const {3: joinedTableIds} = mapGet(joins, null);
1559
- selectJoinWhereStore.transaction(() =>
1560
- addStoreListeners(
1561
- queryId,
1562
- 1,
1563
- store.addRowListener(tableId, null, (_store, _tableId, rootRowId) => {
1564
- if (store.hasRow(tableId, rootRowId)) {
1565
- listenToTable(rootRowId, tableId, rootRowId, joinedTableIds);
1566
- } else {
1567
- selectJoinWhereStore.delRow(queryId, rootRowId);
1568
- collForEach(joins, ({4: idsByRootRowId}) =>
1569
- ifNotUndefined(
1570
- mapGet(idsByRootRowId, rootRowId),
1571
- ([, listenerId]) => {
1572
- delStoreListeners(queryId, listenerId);
1573
- mapSet(idsByRootRowId, rootRowId);
1574
- },
1575
- ),
1576
- );
1577
- }
1578
- }),
1579
- ),
1580
- );
1581
- return queries;
1582
- };
1583
- const delQueryDefinition = (queryId) => {
1584
- resetPreStores(queryId);
1585
- delDefinition(queryId);
1586
- return queries;
1587
- };
1588
- const addQueryIdsListener = (listener) =>
1589
- addQueryIdsListenerImpl(() => listener(queries));
1590
- const delListener = (listenerId) => {
1591
- delListenerImpl(listenerId);
1592
- return queries;
1593
- };
1594
- const getListenerStats = () => {
1595
- const {
1596
- tables: _1,
1597
- tableIds: _2,
1598
- transaction: _3,
1599
- ...stats
1600
- } = resultStore.getListenerStats();
1601
- return stats;
1602
- };
1603
- const queries = {
1604
- setQueryDefinition,
1605
- delQueryDefinition,
1606
- getStore,
1607
- getQueryIds,
1608
- forEachQuery,
1609
- hasQuery,
1610
- getTableId,
1611
- addQueryIdsListener,
1612
- delListener,
1613
- destroy,
1614
- getListenerStats,
1615
- };
1616
- objMap(
1617
- {
1618
- [TABLE]: [1, 1],
1619
- [TABLE + CELL_IDS]: [0, 1],
1620
- [ROW_COUNT]: [0, 1],
1621
- [ROW_IDS]: [0, 1],
1622
- [SORTED_ROW_IDS]: [0, 5],
1623
- [ROW]: [1, 2],
1624
- [CELL_IDS]: [0, 2],
1625
- [CELL]: [1, 3],
1626
- },
1627
- ([hasAndForEach, argumentCount], gettable) => {
1628
- arrayForEach(
1629
- hasAndForEach ? [GET, 'has', 'forEach'] : [GET],
1630
- (prefix) =>
1631
- (queries[prefix + RESULT + gettable] = (...args) =>
1632
- resultStore[prefix + gettable](...args)),
1633
- );
1634
- queries[ADD + RESULT + gettable + LISTENER] = (...args) =>
1635
- resultStore[ADD + gettable + LISTENER](
1636
- ...slice(args, 0, argumentCount),
1637
- (_store, ...listenerArgs) =>
1638
- args[argumentCount](queries, ...listenerArgs),
1639
- true,
1640
- );
1641
- },
1642
- );
1643
- return objFreeze(queries);
1644
- });
1645
-
1646
- const createRelationships = getCreateFunction((store) => {
1647
- const remoteTableIds = mapNew();
1648
- const remoteRowIdListeners = mapNew();
1649
- const localRowIdsListeners = mapNew();
1650
- const linkedRowIdsListeners = mapNew();
1651
- const [addListener, callListeners, delListenerImpl] = getListenerFunctions(
1652
- () => relationships,
1653
- );
1654
- const [
1655
- getStore,
1656
- getRelationshipIds,
1657
- forEachRelationshipImpl,
1658
- hasRelationship,
1659
- getLocalTableId,
1660
- getRelationship,
1661
- ,
1662
- ,
1663
- setDefinitionAndListen,
1664
- delDefinition,
1665
- addRelationshipIdsListener,
1666
- destroy,
1667
- ] = getDefinableFunctions(
1668
- store,
1669
- () => [mapNew(), mapNew(), mapNew(), mapNew()],
1670
- (value) => (isUndefined(value) ? void 0 : value + EMPTY_STRING),
1671
- addListener,
1672
- callListeners,
1673
- );
1674
- const getLinkedRowIdsCache = (relationshipId, firstRowId, skipCache) =>
1675
- ifNotUndefined(
1676
- getRelationship(relationshipId),
1677
- ([remoteRows, , linkedRowsCache]) => {
1678
- if (!collHas(linkedRowsCache, firstRowId)) {
1679
- const linkedRows = setNew();
1680
- if (
1681
- getLocalTableId(relationshipId) !=
1682
- getRemoteTableId(relationshipId)
1683
- ) {
1684
- setAdd(linkedRows, firstRowId);
1685
- } else {
1686
- let rowId = firstRowId;
1687
- while (!isUndefined(rowId) && !collHas(linkedRows, rowId)) {
1688
- setAdd(linkedRows, rowId);
1689
- rowId = mapGet(remoteRows, rowId);
1690
- }
1691
- }
1692
- if (skipCache) {
1693
- return linkedRows;
1694
- }
1695
- mapSet(linkedRowsCache, firstRowId, linkedRows);
1696
- }
1697
- return mapGet(linkedRowsCache, firstRowId);
1698
- },
1699
- );
1700
- const delLinkedRowIdsCache = (relationshipId, firstRowId) =>
1701
- ifNotUndefined(getRelationship(relationshipId), ([, , linkedRowsCache]) =>
1702
- mapSet(linkedRowsCache, firstRowId),
1703
- );
1704
- const setRelationshipDefinition = (
1705
- relationshipId,
1706
- localTableId,
1707
- remoteTableId,
1708
- getRemoteRowId2,
1709
- ) => {
1710
- mapSet(remoteTableIds, relationshipId, remoteTableId);
1711
- setDefinitionAndListen(
1712
- relationshipId,
1713
- localTableId,
1714
- (change, changedRemoteRowIds) => {
1715
- const changedLocalRows = setNew();
1716
- const changedRemoteRows = setNew();
1717
- const changedLinkedRows = setNew();
1718
- const [localRows, remoteRows] = getRelationship(relationshipId);
1719
- collForEach(
1720
- changedRemoteRowIds,
1721
- ([oldRemoteRowId, newRemoteRowId], localRowId) => {
1722
- if (!isUndefined(oldRemoteRowId)) {
1723
- setAdd(changedRemoteRows, oldRemoteRowId);
1724
- ifNotUndefined(
1725
- mapGet(remoteRows, oldRemoteRowId),
1726
- (oldRemoteRow) => {
1727
- collDel(oldRemoteRow, localRowId);
1728
- if (collIsEmpty(oldRemoteRow)) {
1729
- mapSet(remoteRows, oldRemoteRowId);
1730
- }
1731
- },
1732
- );
1733
- }
1734
- if (!isUndefined(newRemoteRowId)) {
1735
- setAdd(changedRemoteRows, newRemoteRowId);
1736
- if (!collHas(remoteRows, newRemoteRowId)) {
1737
- mapSet(remoteRows, newRemoteRowId, setNew());
1738
- }
1739
- setAdd(mapGet(remoteRows, newRemoteRowId), localRowId);
1740
- }
1741
- setAdd(changedLocalRows, localRowId);
1742
- mapSet(localRows, localRowId, newRemoteRowId);
1743
- mapForEach(
1744
- mapGet(linkedRowIdsListeners, relationshipId),
1745
- (firstRowId) => {
1746
- if (
1747
- collHas(
1748
- getLinkedRowIdsCache(relationshipId, firstRowId),
1749
- localRowId,
1750
- )
1751
- ) {
1752
- setAdd(changedLinkedRows, firstRowId);
1753
- }
1754
- },
1755
- );
1756
- },
1757
- );
1758
- change();
1759
- collForEach(changedLocalRows, (localRowId) =>
1760
- callListeners(remoteRowIdListeners, [relationshipId, localRowId]),
1761
- );
1762
- collForEach(changedRemoteRows, (remoteRowId) =>
1763
- callListeners(localRowIdsListeners, [relationshipId, remoteRowId]),
1764
- );
1765
- collForEach(changedLinkedRows, (firstRowId) => {
1766
- delLinkedRowIdsCache(relationshipId, firstRowId);
1767
- callListeners(linkedRowIdsListeners, [relationshipId, firstRowId]);
1768
- });
1769
- },
1770
- getRowCellFunction(getRemoteRowId2),
1771
- );
1772
- return relationships;
1773
- };
1774
- const forEachRelationship = (relationshipCallback) =>
1775
- forEachRelationshipImpl((relationshipId) =>
1776
- relationshipCallback(relationshipId, (rowCallback) =>
1777
- store.forEachRow(getLocalTableId(relationshipId), rowCallback),
1778
- ),
1779
- );
1780
- const delRelationshipDefinition = (relationshipId) => {
1781
- mapSet(remoteTableIds, relationshipId);
1782
- delDefinition(relationshipId);
1783
- return relationships;
1784
- };
1785
- const getRemoteTableId = (relationshipId) =>
1786
- mapGet(remoteTableIds, relationshipId);
1787
- const getRemoteRowId = (relationshipId, localRowId) =>
1788
- mapGet(getRelationship(relationshipId)?.[0], localRowId);
1789
- const getLocalRowIds = (relationshipId, remoteRowId) =>
1790
- collValues(mapGet(getRelationship(relationshipId)?.[1], remoteRowId));
1791
- const getLinkedRowIds = (relationshipId, firstRowId) =>
1792
- isUndefined(getRelationship(relationshipId))
1793
- ? [firstRowId]
1794
- : collValues(getLinkedRowIdsCache(relationshipId, firstRowId, true));
1795
- const addRemoteRowIdListener = (relationshipId, localRowId, listener) =>
1796
- addListener(listener, remoteRowIdListeners, [relationshipId, localRowId]);
1797
- const addLocalRowIdsListener = (relationshipId, remoteRowId, listener) =>
1798
- addListener(listener, localRowIdsListeners, [
1799
- relationshipId,
1800
- remoteRowId,
1801
- ]);
1802
- const addLinkedRowIdsListener = (relationshipId, firstRowId, listener) => {
1803
- getLinkedRowIdsCache(relationshipId, firstRowId);
1804
- return addListener(listener, linkedRowIdsListeners, [
1805
- relationshipId,
1806
- firstRowId,
1807
- ]);
1808
- };
1809
- const delListener = (listenerId) => {
1810
- delLinkedRowIdsCache(...(delListenerImpl(listenerId) ?? []));
1811
- return relationships;
1812
- };
1813
- const getListenerStats = () => ({
1814
- remoteRowId: collSize3(remoteRowIdListeners),
1815
- localRowIds: collSize3(localRowIdsListeners),
1816
- linkedRowIds: collSize3(linkedRowIdsListeners),
1817
- });
1818
- const relationships = {
1819
- setRelationshipDefinition,
1820
- delRelationshipDefinition,
1821
- getStore,
1822
- getRelationshipIds,
1823
- forEachRelationship,
1824
- hasRelationship,
1825
- getLocalTableId,
1826
- getRemoteTableId,
1827
- getRemoteRowId,
1828
- getLocalRowIds,
1829
- getLinkedRowIds,
1830
- addRelationshipIdsListener,
1831
- addRemoteRowIdListener,
1832
- addLocalRowIdsListener,
1833
- addLinkedRowIdsListener,
1834
- delListener,
1835
- destroy,
1836
- getListenerStats,
1837
- };
1838
- return objFreeze(relationships);
1839
- });
1840
-
1841
- const textEncoder = /* @__PURE__ */ new GLOBAL.TextEncoder();
1842
- const getHash = (value) => {
1843
- let hash = 2166136261;
1844
- arrayForEach(textEncoder.encode(value), (char) => {
1845
- hash ^= char;
1846
- hash +=
1847
- (hash << 1) + (hash << 4) + (hash << 7) + (hash << 8) + (hash << 24);
1848
- });
1849
- return hash >>> 0;
1850
- };
1851
-
1852
- const stampClone = ([value, time]) => stampNew(value, time);
1853
- const stampCloneWithHash = ([value, time, hash]) => [value, time, hash];
1854
- const stampNew = (value, time) => (time ? [value, time] : [value]);
1855
- const stampNewWithHash = (value, time, hash) => [value, time, hash];
1856
- const getStampHash = (stamp) => stamp[2];
1857
- const hashIdAndHash = (id, hash) => getHash(id + ':' + hash);
1858
- const replaceTimeHash = (oldTime, newTime) =>
1859
- newTime > oldTime ? (oldTime ? getHash(oldTime) : 0) ^ getHash(newTime) : 0;
1860
- const getLatestTime = (time1, time2) =>
1861
- /* istanbul ignore next */
1862
- ((time1 ?? '') > (time2 ?? '') ? time1 : time2) ?? '';
1863
- const stampUpdate = (stamp, time, hash) => {
1864
- if (time > stamp[1]) {
1865
- stamp[1] = time;
1866
- }
1867
- stamp[2] = hash >>> 0;
1868
- };
1869
- const stampNewObj = (time = EMPTY_STRING) => stampNew(objNew(), time);
1870
- const stampNewMap = (time = EMPTY_STRING) => [mapNew(), time, 0];
1871
- const stampMapToObjWithHash = (
1872
- [map, time, hash],
1873
- mapper = stampCloneWithHash,
1874
- ) => [mapToObj(map, mapper), time, hash];
1875
- const stampMapToObjWithoutHash = ([map, time], mapper = stampClone) =>
1876
- stampNew(mapToObj(map, mapper), time);
1877
- const stampValidate = (stamp, validateThing) =>
1878
- isArray(stamp) &&
1879
- size(stamp) == 3 &&
1880
- isString(stamp[1]) &&
1881
- getTypeOf(stamp[2]) == NUMBER &&
1882
- isFiniteNumber(stamp[2]) &&
1883
- validateThing(stamp[0]);
1884
-
1885
- const pairNew = (value) => [value, value];
1886
- const pairCollSize2 = (pair, func = collSize2) =>
1887
- func(pair[0]) + func(pair[1]);
1888
- const pairNewMap = () => [mapNew(), mapNew()];
1889
- const pairClone = (array) => [...array];
1890
- const pairIsEqual = ([entry1, entry2]) => entry1 === entry2;
1891
-
1892
- const jsonString = JSON.stringify;
1893
- const jsonParse = JSON.parse;
1894
- const jsonStringWithMap = (obj) =>
1895
- jsonString(obj, (_key, value) =>
1896
- isInstanceOf(value, Map) ? object.fromEntries([...value]) : value,
1897
- );
1898
-
1899
- const idsChanged = (changedIds, id2, addedOrRemoved) =>
1900
- mapSet(
1901
- changedIds,
1902
- id2,
1903
- mapGet(changedIds, id2) == -addedOrRemoved ? void 0 : addedOrRemoved,
1904
- );
1905
- const createStore = () => {
1906
- let hasTablesSchema;
1907
- let hasValuesSchema;
1908
- let hadTables = false;
1909
- let hadValues = false;
1910
- let transactions = 0;
1911
- let internalListeners = [];
1912
- const changedTableIds = mapNew();
1913
- const changedTableCellIds = mapNew();
1914
- const changedRowCount = mapNew();
1915
- const changedRowIds = mapNew();
1916
- const changedCellIds = mapNew();
1917
- const changedCells = mapNew();
1918
- const changedValueIds = mapNew();
1919
- const changedValues = mapNew();
1920
- const invalidCells = mapNew();
1921
- const invalidValues = mapNew();
1922
- const tablesSchemaMap = mapNew();
1923
- const tablesSchemaRowCache = mapNew();
1924
- const valuesSchemaMap = mapNew();
1925
- const valuesDefaulted = mapNew();
1926
- const valuesNonDefaulted = setNew();
1927
- const tablePoolFunctions = mapNew();
1928
- const tableCellIds = mapNew();
1929
- const tablesMap = mapNew();
1930
- const valuesMap = mapNew();
1931
- const hasTablesListeners = pairNewMap();
1932
- const tablesListeners = pairNewMap();
1933
- const tableIdsListeners = pairNewMap();
1934
- const hasTableListeners = pairNewMap();
1935
- const tableListeners = pairNewMap();
1936
- const tableCellIdsListeners = pairNewMap();
1937
- const hasTableCellListeners = pairNewMap();
1938
- const rowCountListeners = pairNewMap();
1939
- const rowIdsListeners = pairNewMap();
1940
- const sortedRowIdsListeners = pairNewMap();
1941
- const hasRowListeners = pairNewMap();
1942
- const rowListeners = pairNewMap();
1943
- const cellIdsListeners = pairNewMap();
1944
- const hasCellListeners = pairNewMap();
1945
- const cellListeners = pairNewMap();
1946
- const invalidCellListeners = pairNewMap();
1947
- const invalidValueListeners = pairNewMap();
1948
- const hasValuesListeners = pairNewMap();
1949
- const valuesListeners = pairNewMap();
1950
- const valueIdsListeners = pairNewMap();
1951
- const hasValueListeners = pairNewMap();
1952
- const valueListeners = pairNewMap();
1953
- const startTransactionListeners = mapNew();
1954
- const finishTransactionListeners = pairNewMap();
1955
- const [addListener, callListeners, delListenerImpl, callListenerImpl] =
1956
- getListenerFunctions(() => store);
1957
- const validateTablesSchema = (tableSchema) =>
1958
- objValidate(tableSchema, (tableSchema2) =>
1959
- objValidate(tableSchema2, validateCellOrValueSchema),
1960
- );
1961
- const validateValuesSchema = (valuesSchema) =>
1962
- objValidate(valuesSchema, validateCellOrValueSchema);
1963
- const validateCellOrValueSchema = (schema) => {
1964
- if (
1965
- !objValidate(schema, (_child, id2) => arrayHas([TYPE, DEFAULT], id2))
1966
- ) {
1967
- return false;
1968
- }
1969
- const type = schema[TYPE];
1970
- if (!isTypeStringOrBoolean(type) && type != NUMBER) {
1971
- return false;
1972
- }
1973
- if (getCellOrValueType(schema[DEFAULT]) != type) {
1974
- objDel(schema, DEFAULT);
1975
- }
1976
- return true;
1977
- };
1978
- const validateContent = isArray;
1979
- const validateTables = (tables) =>
1980
- objValidate(tables, validateTable, cellInvalid);
1981
- const validateTable = (table, tableId) =>
1982
- (!hasTablesSchema ||
1983
- collHas(tablesSchemaMap, tableId) ||
1984
- /* istanbul ignore next */
1985
- cellInvalid(tableId)) &&
1986
- objValidate(
1987
- table,
1988
- (row, rowId) => validateRow(tableId, rowId, row),
1989
- () => cellInvalid(tableId),
1990
- );
1991
- const validateRow = (tableId, rowId, row, skipDefaults) =>
1992
- objValidate(
1993
- skipDefaults ? row : addDefaultsToRow(row, tableId, rowId),
1994
- (cell, cellId) =>
1995
- ifNotUndefined(
1996
- getValidatedCell(tableId, rowId, cellId, cell),
1997
- (validCell) => {
1998
- row[cellId] = validCell;
1999
- return true;
2000
- },
2001
- () => false,
2002
- ),
2003
- () => cellInvalid(tableId, rowId),
2004
- );
2005
- const getValidatedCell = (tableId, rowId, cellId, cell) =>
2006
- hasTablesSchema
2007
- ? ifNotUndefined(
2008
- mapGet(mapGet(tablesSchemaMap, tableId), cellId),
2009
- (cellSchema) =>
2010
- getCellOrValueType(cell) != cellSchema[TYPE]
2011
- ? cellInvalid(tableId, rowId, cellId, cell, cellSchema[DEFAULT])
2012
- : cell,
2013
- () => cellInvalid(tableId, rowId, cellId, cell),
2014
- )
2015
- : isUndefined(getCellOrValueType(cell))
2016
- ? cellInvalid(tableId, rowId, cellId, cell)
2017
- : cell;
2018
- const validateValues = (values, skipDefaults) =>
2019
- objValidate(
2020
- skipDefaults ? values : addDefaultsToValues(values),
2021
- (value, valueId) =>
2022
- ifNotUndefined(
2023
- getValidatedValue(valueId, value),
2024
- (validValue) => {
2025
- values[valueId] = validValue;
2026
- return true;
2027
- },
2028
- () => false,
2029
- ),
2030
- () => valueInvalid(),
2031
- );
2032
- const getValidatedValue = (valueId, value) =>
2033
- hasValuesSchema
2034
- ? ifNotUndefined(
2035
- mapGet(valuesSchemaMap, valueId),
2036
- (valueSchema) =>
2037
- getCellOrValueType(value) != valueSchema[TYPE]
2038
- ? valueInvalid(valueId, value, valueSchema[DEFAULT])
2039
- : value,
2040
- () => valueInvalid(valueId, value),
2041
- )
2042
- : isUndefined(getCellOrValueType(value))
2043
- ? valueInvalid(valueId, value)
2044
- : value;
2045
- const addDefaultsToRow = (row, tableId, rowId) => {
2046
- ifNotUndefined(
2047
- mapGet(tablesSchemaRowCache, tableId),
2048
- ([rowDefaulted, rowNonDefaulted]) => {
2049
- collForEach(rowDefaulted, (cell, cellId) => {
2050
- if (!objHas(row, cellId)) {
2051
- row[cellId] = cell;
2052
- }
2053
- });
2054
- collForEach(rowNonDefaulted, (cellId) => {
2055
- if (!objHas(row, cellId)) {
2056
- cellInvalid(tableId, rowId, cellId);
2057
- }
2058
- });
2059
- },
2060
- );
2061
- return row;
2062
- };
2063
- const addDefaultsToValues = (values) => {
2064
- if (hasValuesSchema) {
2065
- collForEach(valuesDefaulted, (value, valueId) => {
2066
- if (!objHas(values, valueId)) {
2067
- values[valueId] = value;
2068
- }
2069
- });
2070
- collForEach(valuesNonDefaulted, (valueId) => {
2071
- if (!objHas(values, valueId)) {
2072
- valueInvalid(valueId);
2073
- }
2074
- });
2075
- }
2076
- return values;
2077
- };
2078
- const setValidTablesSchema = (tablesSchema) =>
2079
- mapMatch(
2080
- tablesSchemaMap,
2081
- tablesSchema,
2082
- (_tablesSchema, tableId, tableSchema) => {
2083
- const rowDefaulted = mapNew();
2084
- const rowNonDefaulted = setNew();
2085
- mapMatch(
2086
- mapEnsure(tablesSchemaMap, tableId, mapNew),
2087
- tableSchema,
2088
- (tableSchemaMap, cellId, cellSchema) => {
2089
- mapSet(tableSchemaMap, cellId, cellSchema);
2090
- ifNotUndefined(
2091
- cellSchema[DEFAULT],
2092
- (def) => mapSet(rowDefaulted, cellId, def),
2093
- () => setAdd(rowNonDefaulted, cellId),
2094
- );
2095
- },
2096
- );
2097
- mapSet(tablesSchemaRowCache, tableId, [
2098
- rowDefaulted,
2099
- rowNonDefaulted,
2100
- ]);
2101
- },
2102
- (_tablesSchema, tableId) => {
2103
- mapSet(tablesSchemaMap, tableId);
2104
- mapSet(tablesSchemaRowCache, tableId);
2105
- },
2106
- );
2107
- const setValidValuesSchema = (valuesSchema) =>
2108
- mapMatch(
2109
- valuesSchemaMap,
2110
- valuesSchema,
2111
- (_valuesSchema, valueId, valueSchema) => {
2112
- mapSet(valuesSchemaMap, valueId, valueSchema);
2113
- ifNotUndefined(
2114
- valueSchema[DEFAULT],
2115
- (def) => mapSet(valuesDefaulted, valueId, def),
2116
- () => setAdd(valuesNonDefaulted, valueId),
2117
- );
2118
- },
2119
- (_valuesSchema, valueId) => {
2120
- mapSet(valuesSchemaMap, valueId);
2121
- mapSet(valuesDefaulted, valueId);
2122
- collDel(valuesNonDefaulted, valueId);
2123
- },
2124
- );
2125
- const setOrDelTables = (tables) =>
2126
- objIsEmpty(tables) ? delTables() : setTables(tables);
2127
- const setValidContent = ([tables, values]) => {
2128
- (objIsEmpty(tables) ? delTables : setTables)(tables);
2129
- (objIsEmpty(values) ? delValues : setValues)(values);
2130
- };
2131
- const setValidTables = (tables) =>
2132
- mapMatch(
2133
- tablesMap,
2134
- tables,
2135
- (_tables, tableId, table) => setValidTable(tableId, table),
2136
- (_tables, tableId) => delValidTable(tableId),
2137
- );
2138
- const setValidTable = (tableId, table) =>
2139
- mapMatch(
2140
- mapEnsure(tablesMap, tableId, () => {
2141
- tableIdsChanged(tableId, 1);
2142
- mapSet(tablePoolFunctions, tableId, getPoolFunctions());
2143
- mapSet(tableCellIds, tableId, mapNew());
2144
- return mapNew();
2145
- }),
2146
- table,
2147
- (tableMap, rowId, row) => setValidRow(tableId, tableMap, rowId, row),
2148
- (tableMap, rowId) => delValidRow(tableId, tableMap, rowId),
2149
- );
2150
- const setValidRow = (tableId, tableMap, rowId, row, forceDel) =>
2151
- mapMatch(
2152
- mapEnsure(tableMap, rowId, () => {
2153
- rowIdsChanged(tableId, rowId, 1);
2154
- return mapNew();
2155
- }),
2156
- row,
2157
- (rowMap, cellId, cell) =>
2158
- setValidCell(tableId, rowId, rowMap, cellId, cell),
2159
- (rowMap, cellId) =>
2160
- delValidCell(tableId, tableMap, rowId, rowMap, cellId, forceDel),
2161
- );
2162
- const setValidCell = (tableId, rowId, rowMap, cellId, cell) => {
2163
- if (!collHas(rowMap, cellId)) {
2164
- cellIdsChanged(tableId, rowId, cellId, 1);
2165
- }
2166
- const oldCell = mapGet(rowMap, cellId);
2167
- if (cell !== oldCell) {
2168
- cellChanged(tableId, rowId, cellId, oldCell, cell);
2169
- mapSet(rowMap, cellId, cell);
2170
- }
2171
- };
2172
- const setCellIntoDefaultRow = (
2173
- tableId,
2174
- tableMap,
2175
- rowId,
2176
- cellId,
2177
- validCell,
2178
- ) =>
2179
- ifNotUndefined(
2180
- mapGet(tableMap, rowId),
2181
- (rowMap) => setValidCell(tableId, rowId, rowMap, cellId, validCell),
2182
- () =>
2183
- setValidRow(
2184
- tableId,
2185
- tableMap,
2186
- rowId,
2187
- addDefaultsToRow({[cellId]: validCell}, tableId, rowId),
2188
- ),
2189
- );
2190
- const setOrDelValues = (values) =>
2191
- objIsEmpty(values) ? delValues() : setValues(values);
2192
- const setValidValues = (values) =>
2193
- mapMatch(
2194
- valuesMap,
2195
- values,
2196
- (_valuesMap, valueId, value) => setValidValue(valueId, value),
2197
- (_valuesMap, valueId) => delValidValue(valueId),
2198
- );
2199
- const setValidValue = (valueId, value) => {
2200
- if (!collHas(valuesMap, valueId)) {
2201
- valueIdsChanged(valueId, 1);
2202
- }
2203
- const oldValue = mapGet(valuesMap, valueId);
2204
- if (value !== oldValue) {
2205
- valueChanged(valueId, oldValue, value);
2206
- mapSet(valuesMap, valueId, value);
2207
- }
2208
- };
2209
- const getNewRowId = (tableId, reuse) => {
2210
- const [getId] = mapGet(tablePoolFunctions, tableId);
2211
- let rowId;
2212
- do {
2213
- rowId = getId(reuse);
2214
- } while (collHas(mapGet(tablesMap, tableId), rowId));
2215
- return rowId;
2216
- };
2217
- const getOrCreateTable = (tableId) =>
2218
- mapGet(tablesMap, tableId) ?? setValidTable(tableId, {});
2219
- const delValidTable = (tableId) => setValidTable(tableId, {});
2220
- const delValidRow = (tableId, tableMap, rowId) => {
2221
- const [, releaseId] = mapGet(tablePoolFunctions, tableId);
2222
- releaseId(rowId);
2223
- setValidRow(tableId, tableMap, rowId, {}, true);
2224
- };
2225
- const delValidCell = (tableId, table, rowId, row, cellId, forceDel) => {
2226
- const defaultCell = mapGet(
2227
- mapGet(tablesSchemaRowCache, tableId)?.[0],
2228
- cellId,
2229
- );
2230
- if (!isUndefined(defaultCell) && !forceDel) {
2231
- return setValidCell(tableId, rowId, row, cellId, defaultCell);
2232
- }
2233
- const delCell2 = (cellId2) => {
2234
- cellChanged(tableId, rowId, cellId2, mapGet(row, cellId2));
2235
- cellIdsChanged(tableId, rowId, cellId2, -1);
2236
- mapSet(row, cellId2);
2237
- };
2238
- if (isUndefined(defaultCell)) {
2239
- delCell2(cellId);
2240
- } else {
2241
- mapForEach(row, delCell2);
2242
- }
2243
- if (collIsEmpty(row)) {
2244
- rowIdsChanged(tableId, rowId, -1);
2245
- if (collIsEmpty(mapSet(table, rowId))) {
2246
- tableIdsChanged(tableId, -1);
2247
- mapSet(tablesMap, tableId);
2248
- mapSet(tablePoolFunctions, tableId);
2249
- mapSet(tableCellIds, tableId);
2250
- }
2251
- }
2252
- };
2253
- const delValidValue = (valueId) => {
2254
- const defaultValue = mapGet(valuesDefaulted, valueId);
2255
- if (!isUndefined(defaultValue)) {
2256
- return setValidValue(valueId, defaultValue);
2257
- }
2258
- valueChanged(valueId, mapGet(valuesMap, valueId));
2259
- valueIdsChanged(valueId, -1);
2260
- mapSet(valuesMap, valueId);
2261
- };
2262
- const tableIdsChanged = (tableId, addedOrRemoved) =>
2263
- idsChanged(changedTableIds, tableId, addedOrRemoved);
2264
- const rowIdsChanged = (tableId, rowId, addedOrRemoved) =>
2265
- idsChanged(
2266
- mapEnsure(changedRowIds, tableId, mapNew),
2267
- rowId,
2268
- addedOrRemoved,
2269
- ) &&
2270
- mapSet(
2271
- changedRowCount,
2272
- tableId,
2273
- mapEnsure(changedRowCount, tableId, () => 0) + addedOrRemoved,
2274
- );
2275
- const cellIdsChanged = (tableId, rowId, cellId, addedOrRemoved) => {
2276
- const cellIds = mapGet(tableCellIds, tableId);
2277
- const count = mapGet(cellIds, cellId) ?? 0;
2278
- if (
2279
- (count == 0 && addedOrRemoved == 1) ||
2280
- (count == 1 && addedOrRemoved == -1)
2281
- ) {
2282
- idsChanged(
2283
- mapEnsure(changedTableCellIds, tableId, mapNew),
2284
- cellId,
2285
- addedOrRemoved,
2286
- );
2287
- }
2288
- mapSet(
2289
- cellIds,
2290
- cellId,
2291
- count != -addedOrRemoved ? count + addedOrRemoved : null,
2292
- );
2293
- idsChanged(
2294
- mapEnsure(mapEnsure(changedCellIds, tableId, mapNew), rowId, mapNew),
2295
- cellId,
2296
- addedOrRemoved,
2297
- );
2298
- };
2299
- const cellChanged = (tableId, rowId, cellId, oldCell, newCell) => {
2300
- mapEnsure(
2301
- mapEnsure(mapEnsure(changedCells, tableId, mapNew), rowId, mapNew),
2302
- cellId,
2303
- () => [oldCell, 0],
2304
- )[1] = newCell;
2305
- internalListeners[3]?.(tableId, rowId, cellId, newCell);
2306
- };
2307
- const valueIdsChanged = (valueId, addedOrRemoved) =>
2308
- idsChanged(changedValueIds, valueId, addedOrRemoved);
2309
- const valueChanged = (valueId, oldValue, newValue) => {
2310
- mapEnsure(changedValues, valueId, () => [oldValue, 0])[1] = newValue;
2311
- internalListeners[4]?.(valueId, newValue);
2312
- };
2313
- const cellInvalid = (
2314
- tableId,
2315
- rowId,
2316
- cellId,
2317
- invalidCell,
2318
- defaultedCell,
2319
- ) => {
2320
- arrayPush(
2321
- mapEnsure(
2322
- mapEnsure(mapEnsure(invalidCells, tableId, mapNew), rowId, mapNew),
2323
- cellId,
2324
- () => [],
2325
- ),
2326
- invalidCell,
2327
- );
2328
- return defaultedCell;
2329
- };
2330
- const valueInvalid = (valueId, invalidValue, defaultedValue) => {
2331
- arrayPush(
2332
- mapEnsure(invalidValues, valueId, () => []),
2333
- invalidValue,
2334
- );
2335
- return defaultedValue;
2336
- };
2337
- const getCellChange = (tableId, rowId, cellId) =>
2338
- ifNotUndefined(
2339
- mapGet(mapGet(mapGet(changedCells, tableId), rowId), cellId),
2340
- ([oldCell, newCell]) => [true, oldCell, newCell],
2341
- () => [false, ...pairNew(getCell(tableId, rowId, cellId))],
2342
- );
2343
- const getValueChange = (valueId) =>
2344
- ifNotUndefined(
2345
- mapGet(changedValues, valueId),
2346
- ([oldValue, newValue]) => [true, oldValue, newValue],
2347
- () => [false, ...pairNew(getValue(valueId))],
2348
- );
2349
- const callInvalidCellListeners = (mutator) =>
2350
- !collIsEmpty(invalidCells) && !collIsEmpty(invalidCellListeners[mutator])
2351
- ? collForEach(
2352
- mutator ? mapClone3(invalidCells) : invalidCells,
2353
- (rows, tableId) =>
2354
- collForEach(rows, (cells, rowId) =>
2355
- collForEach(cells, (invalidCell, cellId) =>
2356
- callListeners(
2357
- invalidCellListeners[mutator],
2358
- [tableId, rowId, cellId],
2359
- invalidCell,
2360
- ),
2361
- ),
2362
- ),
2363
- )
2364
- : 0;
2365
- const callInvalidValueListeners = (mutator) =>
2366
- !collIsEmpty(invalidValues) &&
2367
- !collIsEmpty(invalidValueListeners[mutator])
2368
- ? collForEach(
2369
- mutator ? mapClone(invalidValues) : invalidValues,
2370
- (invalidValue, valueId) =>
2371
- callListeners(
2372
- invalidValueListeners[mutator],
2373
- [valueId],
2374
- invalidValue,
2375
- ),
2376
- )
2377
- : 0;
2378
- const callIdsAndHasListenersIfChanged = (
2379
- changedIds,
2380
- idListeners,
2381
- hasListeners,
2382
- ids,
2383
- ) => {
2384
- if (!collIsEmpty(changedIds)) {
2385
- callListeners(idListeners, ids, () => mapToObj(changedIds));
2386
- mapForEach(changedIds, (changedId, changed) =>
2387
- callListeners(
2388
- hasListeners,
2389
- [...(ids ?? []), changedId],
2390
- changed == 1,
2391
- ),
2392
- );
2393
- return 1;
2394
- }
2395
- };
2396
- const callTabularListenersForChanges = (mutator) => {
2397
- const hasTablesNow = hasTables();
2398
- if (hasTablesNow != hadTables) {
2399
- callListeners(hasTablesListeners[mutator], void 0, hasTablesNow);
2400
- }
2401
- const emptySortedRowIdListeners = collIsEmpty(
2402
- sortedRowIdsListeners[mutator],
2403
- );
2404
- const emptyIdAndHasListeners =
2405
- collIsEmpty(cellIdsListeners[mutator]) &&
2406
- collIsEmpty(hasCellListeners[mutator]) &&
2407
- collIsEmpty(rowIdsListeners[mutator]) &&
2408
- collIsEmpty(hasRowListeners[mutator]) &&
2409
- collIsEmpty(tableCellIdsListeners[mutator]) &&
2410
- collIsEmpty(hasTableCellListeners[mutator]) &&
2411
- collIsEmpty(rowCountListeners[mutator]) &&
2412
- emptySortedRowIdListeners &&
2413
- collIsEmpty(tableIdsListeners[mutator]) &&
2414
- collIsEmpty(hasTableListeners[mutator]);
2415
- const emptyOtherListeners =
2416
- collIsEmpty(cellListeners[mutator]) &&
2417
- collIsEmpty(rowListeners[mutator]) &&
2418
- collIsEmpty(tableListeners[mutator]) &&
2419
- collIsEmpty(tablesListeners[mutator]);
2420
- if (!emptyIdAndHasListeners || !emptyOtherListeners) {
2421
- const changes = mutator
2422
- ? [
2423
- mapClone(changedTableIds),
2424
- mapClone2(changedTableCellIds),
2425
- mapClone(changedRowCount),
2426
- mapClone2(changedRowIds),
2427
- mapClone3(changedCellIds),
2428
- mapClone3(changedCells),
2429
- ]
2430
- : [
2431
- changedTableIds,
2432
- changedTableCellIds,
2433
- changedRowCount,
2434
- changedRowIds,
2435
- changedCellIds,
2436
- changedCells,
2437
- ];
2438
- if (!emptyIdAndHasListeners) {
2439
- callIdsAndHasListenersIfChanged(
2440
- changes[0],
2441
- tableIdsListeners[mutator],
2442
- hasTableListeners[mutator],
2443
- );
2444
- collForEach(changes[1], (changedIds, tableId) =>
2445
- callIdsAndHasListenersIfChanged(
2446
- changedIds,
2447
- tableCellIdsListeners[mutator],
2448
- hasTableCellListeners[mutator],
2449
- [tableId],
2450
- ),
2451
- );
2452
- collForEach(changes[2], (changedCount, tableId) => {
2453
- if (changedCount != 0) {
2454
- callListeners(
2455
- rowCountListeners[mutator],
2456
- [tableId],
2457
- getRowCount(tableId),
2458
- );
2459
- }
2460
- });
2461
- const calledSortableTableIds = setNew();
2462
- collForEach(changes[3], (changedIds, tableId) => {
2463
- if (
2464
- callIdsAndHasListenersIfChanged(
2465
- changedIds,
2466
- rowIdsListeners[mutator],
2467
- hasRowListeners[mutator],
2468
- [tableId],
2469
- ) &&
2470
- !emptySortedRowIdListeners
2471
- ) {
2472
- callListeners(sortedRowIdsListeners[mutator], [tableId, null]);
2473
- setAdd(calledSortableTableIds, tableId);
2474
- }
2475
- });
2476
- if (!emptySortedRowIdListeners) {
2477
- collForEach(changes[5], (rows, tableId) => {
2478
- if (!collHas(calledSortableTableIds, tableId)) {
2479
- const sortableCellIds = setNew();
2480
- collForEach(rows, (cells) =>
2481
- collForEach(cells, ([oldCell, newCell], cellId) =>
2482
- newCell !== oldCell
2483
- ? setAdd(sortableCellIds, cellId)
2484
- : collDel(cells, cellId),
2485
- ),
2486
- );
2487
- collForEach(sortableCellIds, (cellId) =>
2488
- callListeners(sortedRowIdsListeners[mutator], [
2489
- tableId,
2490
- cellId,
2491
- ]),
2492
- );
2493
- }
2494
- });
2495
- }
2496
- collForEach(changes[4], (rowCellIds, tableId) =>
2497
- collForEach(rowCellIds, (changedIds, rowId) =>
2498
- callIdsAndHasListenersIfChanged(
2499
- changedIds,
2500
- cellIdsListeners[mutator],
2501
- hasCellListeners[mutator],
2502
- [tableId, rowId],
2503
- ),
2504
- ),
2505
- );
2506
- }
2507
- if (!emptyOtherListeners) {
2508
- let tablesChanged;
2509
- collForEach(changes[5], (rows, tableId) => {
2510
- let tableChanged;
2511
- collForEach(rows, (cells, rowId) => {
2512
- let rowChanged;
2513
- collForEach(cells, ([oldCell, newCell], cellId) => {
2514
- if (newCell !== oldCell) {
2515
- callListeners(
2516
- cellListeners[mutator],
2517
- [tableId, rowId, cellId],
2518
- newCell,
2519
- oldCell,
2520
- getCellChange,
2521
- );
2522
- tablesChanged = tableChanged = rowChanged = 1;
2523
- }
2524
- });
2525
- if (rowChanged) {
2526
- callListeners(
2527
- rowListeners[mutator],
2528
- [tableId, rowId],
2529
- getCellChange,
2530
- );
2531
- }
2532
- });
2533
- if (tableChanged) {
2534
- callListeners(tableListeners[mutator], [tableId], getCellChange);
2535
- }
2536
- });
2537
- if (tablesChanged) {
2538
- callListeners(tablesListeners[mutator], void 0, getCellChange);
2539
- }
2540
- }
2541
- }
2542
- };
2543
- const callValuesListenersForChanges = (mutator) => {
2544
- const hasValuesNow = hasValues();
2545
- if (hasValuesNow != hadValues) {
2546
- callListeners(hasValuesListeners[mutator], void 0, hasValuesNow);
2547
- }
2548
- const emptyIdAndHasListeners =
2549
- collIsEmpty(valueIdsListeners[mutator]) &&
2550
- collIsEmpty(hasValueListeners[mutator]);
2551
- const emptyOtherListeners =
2552
- collIsEmpty(valueListeners[mutator]) &&
2553
- collIsEmpty(valuesListeners[mutator]);
2554
- if (!emptyIdAndHasListeners || !emptyOtherListeners) {
2555
- const changes = mutator
2556
- ? [mapClone(changedValueIds), mapClone(changedValues)]
2557
- : [changedValueIds, changedValues];
2558
- if (!emptyIdAndHasListeners) {
2559
- callIdsAndHasListenersIfChanged(
2560
- changes[0],
2561
- valueIdsListeners[mutator],
2562
- hasValueListeners[mutator],
2563
- );
2564
- }
2565
- if (!emptyOtherListeners) {
2566
- let valuesChanged;
2567
- collForEach(changes[1], ([oldValue, newValue], valueId) => {
2568
- if (newValue !== oldValue) {
2569
- callListeners(
2570
- valueListeners[mutator],
2571
- [valueId],
2572
- newValue,
2573
- oldValue,
2574
- getValueChange,
2575
- );
2576
- valuesChanged = 1;
2577
- }
2578
- });
2579
- if (valuesChanged) {
2580
- callListeners(valuesListeners[mutator], void 0, getValueChange);
2581
- }
2582
- }
2583
- }
2584
- };
2585
- const fluentTransaction = (actions, ...args) => {
2586
- transaction(() => actions(...arrayMap(args, id)));
2587
- return store;
2588
- };
2589
- const getContent = () => [getTables(), getValues()];
2590
- const getTables = () => mapToObj3(tablesMap);
2591
- const getTableIds = () => mapKeys(tablesMap);
2592
- const getTable = (tableId) => mapToObj2(mapGet(tablesMap, id(tableId)));
2593
- const getTableCellIds = (tableId) =>
2594
- mapKeys(mapGet(tableCellIds, id(tableId)));
2595
- const getRowCount = (tableId) => collSize(mapGet(tablesMap, id(tableId)));
2596
- const getRowIds = (tableId) => mapKeys(mapGet(tablesMap, id(tableId)));
2597
- const getSortedRowIds = (tableId, cellId, descending, offset = 0, limit) =>
2598
- arrayMap(
2599
- slice(
2600
- arraySort(
2601
- mapMap(mapGet(tablesMap, id(tableId)), (row, rowId) => [
2602
- isUndefined(cellId) ? rowId : mapGet(row, id(cellId)),
2603
- rowId,
2604
- ]),
2605
- ([cell1], [cell2]) =>
2606
- defaultSorter(cell1, cell2) * (descending ? -1 : 1),
2607
- ),
2608
- offset,
2609
- isUndefined(limit) ? limit : offset + limit,
2610
- ),
2611
- ([, rowId]) => rowId,
2612
- );
2613
- const getRow = (tableId, rowId) =>
2614
- mapToObj(mapGet(mapGet(tablesMap, id(tableId)), id(rowId)));
2615
- const getCellIds = (tableId, rowId) =>
2616
- mapKeys(mapGet(mapGet(tablesMap, id(tableId)), id(rowId)));
2617
- const getCell = (tableId, rowId, cellId) =>
2618
- mapGet(mapGet(mapGet(tablesMap, id(tableId)), id(rowId)), id(cellId));
2619
- const getValues = () => mapToObj(valuesMap);
2620
- const getValueIds = () => mapKeys(valuesMap);
2621
- const getValue = (valueId) => mapGet(valuesMap, id(valueId));
2622
- const hasTables = () => !collIsEmpty(tablesMap);
2623
- const hasTable = (tableId) => collHas(tablesMap, id(tableId));
2624
- const hasTableCell = (tableId, cellId) =>
2625
- collHas(mapGet(tableCellIds, id(tableId)), id(cellId));
2626
- const hasRow = (tableId, rowId) =>
2627
- collHas(mapGet(tablesMap, id(tableId)), id(rowId));
2628
- const hasCell = (tableId, rowId, cellId) =>
2629
- collHas(mapGet(mapGet(tablesMap, id(tableId)), id(rowId)), id(cellId));
2630
- const hasValues = () => !collIsEmpty(valuesMap);
2631
- const hasValue = (valueId) => collHas(valuesMap, id(valueId));
2632
- const getTablesJson = () => jsonStringWithMap(tablesMap);
2633
- const getValuesJson = () => jsonStringWithMap(valuesMap);
2634
- const getJson = () => jsonStringWithMap([tablesMap, valuesMap]);
2635
- const getTablesSchemaJson = () => jsonStringWithMap(tablesSchemaMap);
2636
- const getValuesSchemaJson = () => jsonStringWithMap(valuesSchemaMap);
2637
- const getSchemaJson = () =>
2638
- jsonStringWithMap([tablesSchemaMap, valuesSchemaMap]);
2639
- const setContent = (content) =>
2640
- fluentTransaction(() => {
2641
- const content2 = isFunction(content) ? content() : content;
2642
- if (validateContent(content2)) {
2643
- setValidContent(content2);
2644
- }
2645
- });
2646
- const setTables = (tables) =>
2647
- fluentTransaction(() =>
2648
- validateTables(tables) ? setValidTables(tables) : 0,
2649
- );
2650
- const setTable = (tableId, table) =>
2651
- fluentTransaction(
2652
- (tableId2) =>
2653
- validateTable(table, tableId2) ? setValidTable(tableId2, table) : 0,
2654
- tableId,
2655
- );
2656
- const setRow = (tableId, rowId, row) =>
2657
- fluentTransaction(
2658
- (tableId2, rowId2) =>
2659
- validateRow(tableId2, rowId2, row)
2660
- ? setValidRow(tableId2, getOrCreateTable(tableId2), rowId2, row)
2661
- : 0,
2662
- tableId,
2663
- rowId,
2664
- );
2665
- const addRow = (tableId, row, reuseRowIds = true) =>
2666
- transaction(() => {
2667
- let rowId = void 0;
2668
- if (validateRow(tableId, rowId, row)) {
2669
- tableId = id(tableId);
2670
- setValidRow(
2671
- tableId,
2672
- getOrCreateTable(tableId),
2673
- (rowId = getNewRowId(tableId, reuseRowIds ? 1 : 0)),
2674
- row,
2675
- );
2676
- }
2677
- return rowId;
2678
- });
2679
- const setPartialRow = (tableId, rowId, partialRow) =>
2680
- fluentTransaction(
2681
- (tableId2, rowId2) => {
2682
- if (validateRow(tableId2, rowId2, partialRow, 1)) {
2683
- const table = getOrCreateTable(tableId2);
2684
- objMap(partialRow, (cell, cellId) =>
2685
- setCellIntoDefaultRow(tableId2, table, rowId2, cellId, cell),
2686
- );
2687
- }
2688
- },
2689
- tableId,
2690
- rowId,
2691
- );
2692
- const setCell = (tableId, rowId, cellId, cell) =>
2693
- fluentTransaction(
2694
- (tableId2, rowId2, cellId2) =>
2695
- ifNotUndefined(
2696
- getValidatedCell(
2697
- tableId2,
2698
- rowId2,
2699
- cellId2,
2700
- isFunction(cell)
2701
- ? cell(getCell(tableId2, rowId2, cellId2))
2702
- : cell,
2703
- ),
2704
- (validCell) =>
2705
- setCellIntoDefaultRow(
2706
- tableId2,
2707
- getOrCreateTable(tableId2),
2708
- rowId2,
2709
- cellId2,
2710
- validCell,
2711
- ),
2712
- ),
2713
- tableId,
2714
- rowId,
2715
- cellId,
2716
- );
2717
- const setValues = (values) =>
2718
- fluentTransaction(() =>
2719
- validateValues(values) ? setValidValues(values) : 0,
2720
- );
2721
- const setPartialValues = (partialValues) =>
2722
- fluentTransaction(() =>
2723
- validateValues(partialValues, 1)
2724
- ? objMap(partialValues, (value, valueId) =>
2725
- setValidValue(valueId, value),
2726
- )
2727
- : 0,
2728
- );
2729
- const setValue = (valueId, value) =>
2730
- fluentTransaction(
2731
- (valueId2) =>
2732
- ifNotUndefined(
2733
- getValidatedValue(
2734
- valueId2,
2735
- isFunction(value) ? value(getValue(valueId2)) : value,
2736
- ),
2737
- (validValue) => setValidValue(valueId2, validValue),
2738
- ),
2739
- valueId,
2740
- );
2741
- const applyChanges = (changes) =>
2742
- fluentTransaction(() => {
2743
- objMap(changes[0], (table, tableId) =>
2744
- isUndefined(table)
2745
- ? delTable(tableId)
2746
- : objMap(table, (row, rowId) =>
2747
- isUndefined(row)
2748
- ? delRow(tableId, rowId)
2749
- : objMap(row, (cell, cellId) =>
2750
- setOrDelCell(store, tableId, rowId, cellId, cell),
2751
- ),
2752
- ),
2753
- );
2754
- objMap(changes[1], (value, valueId) =>
2755
- setOrDelValue(store, valueId, value),
2756
- );
2757
- });
2758
- const setTablesJson = (tablesJson) => {
2759
- try {
2760
- setOrDelTables(jsonParse(tablesJson));
2761
- } catch {}
2762
- return store;
2763
- };
2764
- const setValuesJson = (valuesJson) => {
2765
- try {
2766
- setOrDelValues(jsonParse(valuesJson));
2767
- } catch {}
2768
- return store;
2769
- };
2770
- const setJson = (tablesAndValuesJson) =>
2771
- fluentTransaction(() => {
2772
- try {
2773
- const [tables, values] = jsonParse(tablesAndValuesJson);
2774
- setOrDelTables(tables);
2775
- setOrDelValues(values);
2776
- } catch {
2777
- setTablesJson(tablesAndValuesJson);
2778
- }
2779
- });
2780
- const setTablesSchema = (tablesSchema) =>
2781
- fluentTransaction(() => {
2782
- if ((hasTablesSchema = validateTablesSchema(tablesSchema))) {
2783
- setValidTablesSchema(tablesSchema);
2784
- if (!collIsEmpty(tablesMap)) {
2785
- const tables = getTables();
2786
- delTables();
2787
- setTables(tables);
2788
- }
2789
- }
2790
- });
2791
- const setValuesSchema = (valuesSchema) =>
2792
- fluentTransaction(() => {
2793
- if ((hasValuesSchema = validateValuesSchema(valuesSchema))) {
2794
- const values = getValues();
2795
- delValuesSchema();
2796
- delValues();
2797
- hasValuesSchema = true;
2798
- setValidValuesSchema(valuesSchema);
2799
- setValues(values);
2800
- }
2801
- });
2802
- const setSchema = (tablesSchema, valuesSchema) =>
2803
- fluentTransaction(() => {
2804
- setTablesSchema(tablesSchema);
2805
- setValuesSchema(valuesSchema);
2806
- });
2807
- const delTables = () => fluentTransaction(() => setValidTables({}));
2808
- const delTable = (tableId) =>
2809
- fluentTransaction(
2810
- (tableId2) =>
2811
- collHas(tablesMap, tableId2) ? delValidTable(tableId2) : 0,
2812
- tableId,
2813
- );
2814
- const delRow = (tableId, rowId) =>
2815
- fluentTransaction(
2816
- (tableId2, rowId2) =>
2817
- ifNotUndefined(mapGet(tablesMap, tableId2), (tableMap) =>
2818
- collHas(tableMap, rowId2)
2819
- ? delValidRow(tableId2, tableMap, rowId2)
2820
- : 0,
2821
- ),
2822
- tableId,
2823
- rowId,
2824
- );
2825
- const delCell = (tableId, rowId, cellId, forceDel) =>
2826
- fluentTransaction(
2827
- (tableId2, rowId2, cellId2) =>
2828
- ifNotUndefined(mapGet(tablesMap, tableId2), (tableMap) =>
2829
- ifNotUndefined(mapGet(tableMap, rowId2), (rowMap) =>
2830
- collHas(rowMap, cellId2)
2831
- ? delValidCell(
2832
- tableId2,
2833
- tableMap,
2834
- rowId2,
2835
- rowMap,
2836
- cellId2,
2837
- forceDel,
2838
- )
2839
- : 0,
2840
- ),
2841
- ),
2842
- tableId,
2843
- rowId,
2844
- cellId,
2845
- );
2846
- const delValues = () => fluentTransaction(() => setValidValues({}));
2847
- const delValue = (valueId) =>
2848
- fluentTransaction(
2849
- (valueId2) =>
2850
- collHas(valuesMap, valueId2) ? delValidValue(valueId2) : 0,
2851
- valueId,
2852
- );
2853
- const delTablesSchema = () =>
2854
- fluentTransaction(() => {
2855
- setValidTablesSchema({});
2856
- hasTablesSchema = false;
2857
- });
2858
- const delValuesSchema = () =>
2859
- fluentTransaction(() => {
2860
- setValidValuesSchema({});
2861
- hasValuesSchema = false;
2862
- });
2863
- const delSchema = () =>
2864
- fluentTransaction(() => {
2865
- delTablesSchema();
2866
- delValuesSchema();
2867
- });
2868
- const transaction = (actions, doRollback) => {
2869
- if (transactions != -1) {
2870
- startTransaction();
2871
- const result = actions();
2872
- finishTransaction(doRollback);
2873
- return result;
2874
- }
2875
- };
2876
- const startTransaction = () => {
2877
- if (transactions != -1) {
2878
- transactions++;
2879
- }
2880
- if (transactions == 1) {
2881
- internalListeners[0]?.();
2882
- callListeners(startTransactionListeners);
2883
- }
2884
- return store;
2885
- };
2886
- const getTransactionChanges = () => [
2887
- mapToObj(
2888
- changedCells,
2889
- (table, tableId) =>
2890
- mapGet(changedTableIds, tableId) === -1
2891
- ? void 0
2892
- : mapToObj(
2893
- table,
2894
- (row, rowId) =>
2895
- mapGet(mapGet(changedRowIds, tableId), rowId) === -1
2896
- ? void 0
2897
- : mapToObj(
2898
- row,
2899
- ([, newCell]) => newCell,
2900
- (changedCell) => pairIsEqual(changedCell),
2901
- ),
2902
- collIsEmpty,
2903
- objIsEmpty,
2904
- ),
2905
- collIsEmpty,
2906
- objIsEmpty,
2907
- ),
2908
- mapToObj(
2909
- changedValues,
2910
- ([, newValue]) => newValue,
2911
- (changedValue) => pairIsEqual(changedValue),
2912
- ),
2913
- 1,
2914
- ];
2915
- const getTransactionLog = () => [
2916
- !collIsEmpty(changedCells),
2917
- !collIsEmpty(changedValues),
2918
- mapToObj3(changedCells, pairClone, pairIsEqual),
2919
- mapToObj3(invalidCells),
2920
- mapToObj(changedValues, pairClone, pairIsEqual),
2921
- mapToObj(invalidValues),
2922
- mapToObj(changedTableIds),
2923
- mapToObj2(changedRowIds),
2924
- mapToObj3(changedCellIds),
2925
- mapToObj(changedValueIds),
2926
- ];
2927
- const finishTransaction = (doRollback) => {
2928
- if (transactions > 0) {
2929
- transactions--;
2930
- if (transactions == 0) {
2931
- transactions = 1;
2932
- callInvalidCellListeners(1);
2933
- if (!collIsEmpty(changedCells)) {
2934
- callTabularListenersForChanges(1);
2935
- }
2936
- callInvalidValueListeners(1);
2937
- if (!collIsEmpty(changedValues)) {
2938
- callValuesListenersForChanges(1);
2939
- }
2940
- if (doRollback?.(store)) {
2941
- collForEach(changedCells, (table, tableId) =>
2942
- collForEach(table, (row, rowId) =>
2943
- collForEach(row, ([oldCell], cellId) =>
2944
- setOrDelCell(store, tableId, rowId, cellId, oldCell),
2945
- ),
2946
- ),
2947
- );
2948
- collClear(changedCells);
2949
- collForEach(changedValues, ([oldValue], valueId) =>
2950
- setOrDelValue(store, valueId, oldValue),
2951
- );
2952
- collClear(changedValues);
2953
- }
2954
- callListeners(finishTransactionListeners[0], void 0);
2955
- transactions = -1;
2956
- callInvalidCellListeners(0);
2957
- if (!collIsEmpty(changedCells)) {
2958
- callTabularListenersForChanges(0);
2959
- }
2960
- callInvalidValueListeners(0);
2961
- if (!collIsEmpty(changedValues)) {
2962
- callValuesListenersForChanges(0);
2963
- }
2964
- internalListeners[1]?.();
2965
- callListeners(finishTransactionListeners[1], void 0);
2966
- internalListeners[2]?.();
2967
- transactions = 0;
2968
- hadTables = hasTables();
2969
- hadValues = hasValues();
2970
- arrayForEach(
2971
- [
2972
- changedTableIds,
2973
- changedTableCellIds,
2974
- changedRowCount,
2975
- changedRowIds,
2976
- changedCellIds,
2977
- changedCells,
2978
- invalidCells,
2979
- changedValueIds,
2980
- changedValues,
2981
- invalidValues,
2982
- ],
2983
- collClear,
2984
- );
2985
- }
2986
- }
2987
- return store;
2988
- };
2989
- const forEachTable = (tableCallback) =>
2990
- collForEach(tablesMap, (tableMap, tableId) =>
2991
- tableCallback(tableId, (rowCallback) =>
2992
- collForEach(tableMap, (rowMap, rowId) =>
2993
- rowCallback(rowId, (cellCallback) =>
2994
- mapForEach(rowMap, cellCallback),
2995
- ),
2996
- ),
2997
- ),
2998
- );
2999
- const forEachTableCell = (tableId, tableCellCallback) =>
3000
- mapForEach(mapGet(tableCellIds, id(tableId)), tableCellCallback);
3001
- const forEachRow = (tableId, rowCallback) =>
3002
- collForEach(mapGet(tablesMap, id(tableId)), (rowMap, rowId) =>
3003
- rowCallback(rowId, (cellCallback) => mapForEach(rowMap, cellCallback)),
3004
- );
3005
- const forEachCell = (tableId, rowId, cellCallback) =>
3006
- mapForEach(
3007
- mapGet(mapGet(tablesMap, id(tableId)), id(rowId)),
3008
- cellCallback,
3009
- );
3010
- const forEachValue = (valueCallback) =>
3011
- mapForEach(valuesMap, valueCallback);
3012
- const addSortedRowIdsListener = (
3013
- tableId,
3014
- cellId,
3015
- descending,
3016
- offset,
3017
- limit,
3018
- listener,
3019
- mutator,
3020
- ) => {
3021
- let sortedRowIds = getSortedRowIds(
3022
- tableId,
3023
- cellId,
3024
- descending,
3025
- offset,
3026
- limit,
3027
- );
3028
- return addListener(
3029
- () => {
3030
- const newSortedRowIds = getSortedRowIds(
3031
- tableId,
3032
- cellId,
3033
- descending,
3034
- offset,
3035
- limit,
3036
- );
3037
- if (!arrayIsEqual(newSortedRowIds, sortedRowIds)) {
3038
- sortedRowIds = newSortedRowIds;
3039
- listener(
3040
- store,
3041
- tableId,
3042
- cellId,
3043
- descending,
3044
- offset,
3045
- limit,
3046
- sortedRowIds,
3047
- );
3048
- }
3049
- },
3050
- sortedRowIdsListeners[mutator ? 1 : 0],
3051
- [tableId, cellId],
3052
- [getTableIds],
3053
- );
3054
- };
3055
- const addStartTransactionListener = (listener) =>
3056
- addListener(listener, startTransactionListeners);
3057
- const addWillFinishTransactionListener = (listener) =>
3058
- addListener(listener, finishTransactionListeners[0]);
3059
- const addDidFinishTransactionListener = (listener) =>
3060
- addListener(listener, finishTransactionListeners[1]);
3061
- const callListener = (listenerId) => {
3062
- callListenerImpl(listenerId);
3063
- return store;
3064
- };
3065
- const delListener = (listenerId) => {
3066
- delListenerImpl(listenerId);
3067
- return store;
3068
- };
3069
- const getListenerStats = () => ({
3070
- hasTables: pairCollSize2(hasTablesListeners),
3071
- tables: pairCollSize2(tablesListeners),
3072
- tableIds: pairCollSize2(tableIdsListeners),
3073
- hasTable: pairCollSize2(hasTableListeners),
3074
- table: pairCollSize2(tableListeners),
3075
- tableCellIds: pairCollSize2(tableCellIdsListeners),
3076
- hasTableCell: pairCollSize2(hasTableCellListeners, collSize3),
3077
- rowCount: pairCollSize2(rowCountListeners),
3078
- rowIds: pairCollSize2(rowIdsListeners),
3079
- sortedRowIds: pairCollSize2(sortedRowIdsListeners),
3080
- hasRow: pairCollSize2(hasRowListeners, collSize3),
3081
- row: pairCollSize2(rowListeners, collSize3),
3082
- cellIds: pairCollSize2(cellIdsListeners, collSize3),
3083
- hasCell: pairCollSize2(hasCellListeners, collSize4),
3084
- cell: pairCollSize2(cellListeners, collSize4),
3085
- invalidCell: pairCollSize2(invalidCellListeners, collSize4),
3086
- hasValues: pairCollSize2(hasValuesListeners),
3087
- values: pairCollSize2(valuesListeners),
3088
- valueIds: pairCollSize2(valueIdsListeners),
3089
- hasValue: pairCollSize2(hasValueListeners),
3090
- value: pairCollSize2(valueListeners),
3091
- invalidValue: pairCollSize2(invalidValueListeners),
3092
- transaction:
3093
- collSize2(startTransactionListeners) +
3094
- pairCollSize2(finishTransactionListeners),
3095
- });
3096
- const setInternalListeners = (
3097
- preStartTransaction,
3098
- preFinishTransaction,
3099
- postFinishTransaction,
3100
- cellChanged2,
3101
- valueChanged2,
3102
- ) =>
3103
- (internalListeners = [
3104
- preStartTransaction,
3105
- preFinishTransaction,
3106
- postFinishTransaction,
3107
- cellChanged2,
3108
- valueChanged2,
3109
- ]);
3110
- const store = {
3111
- getContent,
3112
- getTables,
3113
- getTableIds,
3114
- getTable,
3115
- getTableCellIds,
3116
- getRowCount,
3117
- getRowIds,
3118
- getSortedRowIds,
3119
- getRow,
3120
- getCellIds,
3121
- getCell,
3122
- getValues,
3123
- getValueIds,
3124
- getValue,
3125
- hasTables,
3126
- hasTable,
3127
- hasTableCell,
3128
- hasRow,
3129
- hasCell,
3130
- hasValues,
3131
- hasValue,
3132
- getTablesJson,
3133
- getValuesJson,
3134
- getJson,
3135
- getTablesSchemaJson,
3136
- getValuesSchemaJson,
3137
- getSchemaJson,
3138
- hasTablesSchema: () => hasTablesSchema,
3139
- hasValuesSchema: () => hasValuesSchema,
3140
- setContent,
3141
- setTables,
3142
- setTable,
3143
- setRow,
3144
- addRow,
3145
- setPartialRow,
3146
- setCell,
3147
- setValues,
3148
- setPartialValues,
3149
- setValue,
3150
- applyChanges,
3151
- setTablesJson,
3152
- setValuesJson,
3153
- setJson,
3154
- setTablesSchema,
3155
- setValuesSchema,
3156
- setSchema,
3157
- delTables,
3158
- delTable,
3159
- delRow,
3160
- delCell,
3161
- delValues,
3162
- delValue,
3163
- delTablesSchema,
3164
- delValuesSchema,
3165
- delSchema,
3166
- transaction,
3167
- startTransaction,
3168
- getTransactionChanges,
3169
- getTransactionLog,
3170
- finishTransaction,
3171
- forEachTable,
3172
- forEachTableCell,
3173
- forEachRow,
3174
- forEachCell,
3175
- forEachValue,
3176
- addSortedRowIdsListener,
3177
- addStartTransactionListener,
3178
- addWillFinishTransactionListener,
3179
- addDidFinishTransactionListener,
3180
- callListener,
3181
- delListener,
3182
- getListenerStats,
3183
- isMergeable: () => false,
3184
- // only used internally by other modules
3185
- createStore,
3186
- addListener,
3187
- callListeners,
3188
- setInternalListeners,
3189
- };
3190
- objMap(
3191
- {
3192
- [HAS + TABLES]: [0, hasTablesListeners, [], () => [hasTables()]],
3193
- [TABLES]: [0, tablesListeners],
3194
- [TABLE_IDS]: [0, tableIdsListeners],
3195
- [HAS + TABLE]: [
3196
- 1,
3197
- hasTableListeners,
3198
- [getTableIds],
3199
- (ids) => [hasTable(...ids)],
3200
- ],
3201
- [TABLE]: [1, tableListeners, [getTableIds]],
3202
- [TABLE + CELL_IDS]: [1, tableCellIdsListeners, [getTableIds]],
3203
- [HAS + TABLE + CELL]: [
3204
- 2,
3205
- hasTableCellListeners,
3206
- [getTableIds, getTableCellIds],
3207
- (ids) => [hasTableCell(...ids)],
3208
- ],
3209
- [ROW_COUNT]: [1, rowCountListeners, [getTableIds]],
3210
- [ROW_IDS]: [1, rowIdsListeners, [getTableIds]],
3211
- [HAS + ROW]: [
3212
- 2,
3213
- hasRowListeners,
3214
- [getTableIds, getRowIds],
3215
- (ids) => [hasRow(...ids)],
3216
- ],
3217
- [ROW]: [2, rowListeners, [getTableIds, getRowIds]],
3218
- [CELL_IDS]: [2, cellIdsListeners, [getTableIds, getRowIds]],
3219
- [HAS + CELL]: [
3220
- 3,
3221
- hasCellListeners,
3222
- [getTableIds, getRowIds, getCellIds],
3223
- (ids) => [hasCell(...ids)],
3224
- ],
3225
- [CELL]: [
3226
- 3,
3227
- cellListeners,
3228
- [getTableIds, getRowIds, getCellIds],
3229
- (ids) => pairNew(getCell(...ids)),
3230
- ],
3231
- InvalidCell: [3, invalidCellListeners],
3232
- [HAS + VALUES]: [0, hasValuesListeners, [], () => [hasValues()]],
3233
- [VALUES]: [0, valuesListeners],
3234
- [VALUE_IDS]: [0, valueIdsListeners],
3235
- [HAS + VALUE]: [
3236
- 1,
3237
- hasValueListeners,
3238
- [getValueIds],
3239
- (ids) => [hasValue(...ids)],
3240
- ],
3241
- [VALUE]: [
3242
- 1,
3243
- valueListeners,
3244
- [getValueIds],
3245
- (ids) => pairNew(getValue(ids[0])),
3246
- ],
3247
- InvalidValue: [1, invalidValueListeners],
3248
- },
3249
- (
3250
- [argumentCount, idSetNode, pathGetters, extraArgsGetter],
3251
- listenable,
3252
- ) => {
3253
- store[ADD + listenable + LISTENER] = (...args) =>
3254
- addListener(
3255
- args[argumentCount],
3256
- idSetNode[args[argumentCount + 1] ? 1 : 0],
3257
- argumentCount > 0 ? slice(args, 0, argumentCount) : void 0,
3258
- pathGetters,
3259
- extraArgsGetter,
3260
- );
3261
- },
3262
- );
3263
- return objFreeze(store);
3264
- };
3265
-
3266
- const SHIFT36 = 2 ** 36;
3267
- const SHIFT30 = 2 ** 30;
3268
- const SHIFT24 = 2 ** 24;
3269
- const SHIFT18 = 2 ** 18;
3270
- const SHIFT12 = 2 ** 12;
3271
- const SHIFT6 = 2 ** 6;
3272
- const encodeTimeAndCounter = (logicalTime42, counter24) =>
3273
- encode(logicalTime42 / SHIFT36) +
3274
- encode(logicalTime42 / SHIFT30) +
3275
- encode(logicalTime42 / SHIFT24) +
3276
- encode(logicalTime42 / SHIFT18) +
3277
- encode(logicalTime42 / SHIFT12) +
3278
- encode(logicalTime42 / SHIFT6) +
3279
- encode(logicalTime42) +
3280
- encode(counter24 / SHIFT18) +
3281
- encode(counter24 / SHIFT12) +
3282
- encode(counter24 / SHIFT6) +
3283
- encode(counter24);
3284
- const decodeTimeAndCounter = (hlc16) => [
3285
- decode(hlc16, 0) * SHIFT36 +
3286
- decode(hlc16, 1) * SHIFT30 +
3287
- decode(hlc16, 2) * SHIFT24 +
3288
- decode(hlc16, 3) * SHIFT18 +
3289
- decode(hlc16, 4) * SHIFT12 +
3290
- decode(hlc16, 5) * SHIFT6 +
3291
- decode(hlc16, 6),
3292
- decode(hlc16, 7) * SHIFT18 +
3293
- decode(hlc16, 8) * SHIFT12 +
3294
- decode(hlc16, 9) * SHIFT6 +
3295
- decode(hlc16, 10),
3296
- ];
3297
- const getHlcFunctions = (uniqueId) => {
3298
- let logicalTime = 0;
3299
- let lastCounter = -1;
3300
- const clientPart = ifNotUndefined(
3301
- uniqueId,
3302
- (uniqueId2) => {
3303
- const clientHash30 = getHash(uniqueId2);
3304
- return (
3305
- encode(clientHash30 / SHIFT24) +
3306
- encode(clientHash30 / SHIFT18) +
3307
- encode(clientHash30 / SHIFT12) +
3308
- encode(clientHash30 / SHIFT6) +
3309
- encode(clientHash30)
3310
- );
3311
- },
3312
- () => getUniqueId(5),
3313
- );
3314
- const getHlc = () => {
3315
- seenHlc();
3316
- return encodeTimeAndCounter(logicalTime, ++lastCounter) + clientPart;
3317
- };
3318
- const seenHlc = (hlc) => {
3319
- const previousLogicalTime = logicalTime;
3320
- const [remoteLogicalTime, remoteCounter] =
3321
- isUndefined(hlc) || hlc == '' ? [0, 0] : decodeTimeAndCounter(hlc);
3322
- logicalTime = mathMax(
3323
- previousLogicalTime,
3324
- remoteLogicalTime,
3325
- GLOBAL.HLC_TIME ?? Date.now(),
3326
- );
3327
- lastCounter =
3328
- logicalTime == previousLogicalTime
3329
- ? logicalTime == remoteLogicalTime
3330
- ? mathMax(lastCounter, remoteCounter)
3331
- : lastCounter
3332
- : logicalTime == remoteLogicalTime
3333
- ? remoteCounter
3334
- : -1;
3335
- };
3336
- return [getHlc, seenHlc];
3337
- };
3338
-
3339
- const LISTENER_ARGS = {
3340
- HasTable: 1,
3341
- Table: 1,
3342
- TableCellIds: 1,
3343
- HasTableCell: 2,
3344
- RowCount: 1,
3345
- RowIds: 1,
3346
- SortedRowIds: 5,
3347
- HasRow: 2,
3348
- Row: 2,
3349
- CellIds: 2,
3350
- HasCell: 3,
3351
- Cell: 3,
3352
- HasValue: 1,
3353
- Value: 1,
3354
- InvalidCell: 3,
3355
- InvalidValue: 1,
3356
- };
3357
- const newContentStampMap = (time = EMPTY_STRING) => [
3358
- stampNewMap(time),
3359
- stampNewMap(time),
3360
- ];
3361
- const validateMergeableContent = (mergeableContent) =>
3362
- isArray(mergeableContent) &&
3363
- size(mergeableContent) == 2 &&
3364
- stampValidate(mergeableContent[0], (tableStamps) =>
3365
- objValidate(
3366
- tableStamps,
3367
- (tableStamp) =>
3368
- stampValidate(tableStamp, (rowStamps) =>
3369
- objValidate(
3370
- rowStamps,
3371
- (rowStamp) =>
3372
- stampValidate(rowStamp, (cellStamps) =>
3373
- objValidate(
3374
- cellStamps,
3375
- (cellStamp) =>
3376
- stampValidate(cellStamp, isCellOrValueOrNullOrUndefined),
3377
- void 0,
3378
- 1,
3379
- ),
3380
- ),
3381
- void 0,
3382
- 1,
3383
- ),
3384
- ),
3385
- void 0,
3386
- 1,
3387
- ),
3388
- ) &&
3389
- stampValidate(mergeableContent[1], (values) =>
3390
- objValidate(
3391
- values,
3392
- (value) => stampValidate(value, isCellOrValueOrNullOrUndefined),
3393
- void 0,
3394
- 1,
3395
- ),
3396
- );
3397
- const createMergeableStore = (uniqueId) => {
3398
- let listeningToRawStoreChanges = 1;
3399
- let contentStampMap = newContentStampMap();
3400
- let defaultingContent = 0;
3401
- const touchedCells = mapNew();
3402
- const touchedValues = setNew();
3403
- const [getHlc, seenHlc] = getHlcFunctions(uniqueId);
3404
- const store = createStore();
3405
- const disableListeningToRawStoreChanges = (actions) => {
3406
- const wasListening = listeningToRawStoreChanges;
3407
- listeningToRawStoreChanges = 0;
3408
- actions();
3409
- listeningToRawStoreChanges = wasListening;
3410
- return mergeableStore;
3411
- };
3412
- const mergeContentOrChanges = (contentOrChanges, isContent = 0) => {
3413
- const tablesChanges = {};
3414
- const valuesChanges = {};
3415
- const [
3416
- [tablesObj, incomingTablesTime = EMPTY_STRING, incomingTablesHash = 0],
3417
- values,
3418
- ] = contentOrChanges;
3419
- const [tablesStampMap, valuesStampMap] = contentStampMap;
3420
- const [tableStampMaps, oldTablesTime, oldTablesHash] = tablesStampMap;
3421
- let tablesHash = isContent ? incomingTablesHash : oldTablesHash;
3422
- let tablesTime = incomingTablesTime;
3423
- objForEach(
3424
- tablesObj,
3425
- (
3426
- [rowsObj, incomingTableTime = EMPTY_STRING, incomingTableHash = 0],
3427
- tableId,
3428
- ) => {
3429
- const tableStampMap = mapEnsure(tableStampMaps, tableId, stampNewMap);
3430
- const [rowStampMaps, oldTableTime, oldTableHash] = tableStampMap;
3431
- let tableHash = isContent ? incomingTableHash : oldTableHash;
3432
- let tableTime = incomingTableTime;
3433
- objForEach(rowsObj, (row, rowId) => {
3434
- const [rowTime, oldRowHash, rowHash] = mergeCellsOrValues(
3435
- row,
3436
- mapEnsure(rowStampMaps, rowId, stampNewMap),
3437
- objEnsure(
3438
- objEnsure(tablesChanges, tableId, objNew),
3439
- rowId,
3440
- objNew,
3441
- ),
3442
- isContent,
3443
- );
3444
- tableHash ^= isContent
3445
- ? 0
3446
- : (oldRowHash ? hashIdAndHash(rowId, oldRowHash) : 0) ^
3447
- hashIdAndHash(rowId, rowHash);
3448
- tableTime = getLatestTime(tableTime, rowTime);
3449
- });
3450
- tableHash ^= isContent
3451
- ? 0
3452
- : replaceTimeHash(oldTableTime, incomingTableTime);
3453
- stampUpdate(tableStampMap, incomingTableTime, tableHash);
3454
- tablesHash ^= isContent
3455
- ? 0
3456
- : (oldTableHash ? hashIdAndHash(tableId, oldTableHash) : 0) ^
3457
- hashIdAndHash(tableId, tableStampMap[2]);
3458
- tablesTime = getLatestTime(tablesTime, tableTime);
3459
- },
3460
- );
3461
- tablesHash ^= isContent
3462
- ? 0
3463
- : replaceTimeHash(oldTablesTime, incomingTablesTime);
3464
- stampUpdate(tablesStampMap, incomingTablesTime, tablesHash);
3465
- const [valuesTime] = mergeCellsOrValues(
3466
- values,
3467
- valuesStampMap,
3468
- valuesChanges,
3469
- isContent,
3470
- );
3471
- seenHlc(getLatestTime(tablesTime, valuesTime));
3472
- return [tablesChanges, valuesChanges, 1];
3473
- };
3474
- const mergeCellsOrValues = (
3475
- things,
3476
- thingsStampMap,
3477
- thingsChanges,
3478
- isContent,
3479
- ) => {
3480
- const [
3481
- thingsObj,
3482
- incomingThingsTime = EMPTY_STRING,
3483
- incomingThingsHash = 0,
3484
- ] = things;
3485
- const [thingStampMaps, oldThingsTime, oldThingsHash] = thingsStampMap;
3486
- let thingsTime = incomingThingsTime;
3487
- let thingsHash = isContent ? incomingThingsHash : oldThingsHash;
3488
- objForEach(
3489
- thingsObj,
3490
- ([thing, thingTime, incomingThingHash = 0], thingId) => {
3491
- const thingStampMap = mapEnsure(thingStampMaps, thingId, () => [
3492
- void 0,
3493
- EMPTY_STRING,
3494
- 0,
3495
- ]);
3496
- const [, oldThingTime, oldThingHash] = thingStampMap;
3497
- if (!oldThingTime || thingTime > oldThingTime) {
3498
- stampUpdate(
3499
- thingStampMap,
3500
- thingTime,
3501
- isContent
3502
- ? incomingThingHash
3503
- : getHash(jsonStringWithMap(thing ?? null) + ':' + thingTime),
3504
- );
3505
- thingStampMap[0] = thing;
3506
- thingsChanges[thingId] = thing;
3507
- thingsHash ^= isContent
3508
- ? 0
3509
- : hashIdAndHash(thingId, oldThingHash) ^
3510
- hashIdAndHash(thingId, thingStampMap[2]);
3511
- thingsTime = getLatestTime(thingsTime, thingTime);
3512
- }
3513
- },
3514
- );
3515
- thingsHash ^= isContent
3516
- ? 0
3517
- : replaceTimeHash(oldThingsTime, incomingThingsTime);
3518
- stampUpdate(thingsStampMap, incomingThingsTime, thingsHash);
3519
- return [thingsTime, oldThingsHash, thingsStampMap[2]];
3520
- };
3521
- const preStartTransaction = () => {};
3522
- const preFinishTransaction = () => {};
3523
- const postFinishTransaction = () => {
3524
- collClear(touchedCells);
3525
- collClear(touchedValues);
3526
- };
3527
- const cellChanged = (tableId, rowId, cellId, newCell) => {
3528
- setAdd(
3529
- mapEnsure(mapEnsure(touchedCells, tableId, mapNew), rowId, setNew),
3530
- cellId,
3531
- );
3532
- if (listeningToRawStoreChanges) {
3533
- mergeContentOrChanges([
3534
- [
3535
- {
3536
- [tableId]: [
3537
- {
3538
- [rowId]: [
3539
- {
3540
- [cellId]: [
3541
- newCell,
3542
- defaultingContent ? EMPTY_STRING : getHlc(),
3543
- ],
3544
- },
3545
- ],
3546
- },
3547
- ],
3548
- },
3549
- ],
3550
- [{}],
3551
- 1,
3552
- ]);
3553
- }
3554
- };
3555
- const valueChanged = (valueId, newValue) => {
3556
- setAdd(touchedValues, valueId);
3557
- if (listeningToRawStoreChanges) {
3558
- mergeContentOrChanges([
3559
- [{}],
3560
- [
3561
- {
3562
- [valueId]: [
3563
- newValue,
3564
- defaultingContent ? EMPTY_STRING : getHlc(),
3565
- ],
3566
- },
3567
- ],
3568
- 1,
3569
- ]);
3570
- }
3571
- };
3572
- const getMergeableContent = () => [
3573
- stampMapToObjWithHash(contentStampMap[0], (tableStampMap) =>
3574
- stampMapToObjWithHash(tableStampMap, (rowStampMap) =>
3575
- stampMapToObjWithHash(rowStampMap),
3576
- ),
3577
- ),
3578
- stampMapToObjWithHash(contentStampMap[1]),
3579
- ];
3580
- const getMergeableContentHashes = () => [
3581
- contentStampMap[0][2],
3582
- contentStampMap[1][2],
3583
- ];
3584
- const getMergeableTableHashes = () =>
3585
- mapToObj(contentStampMap[0][0], getStampHash);
3586
- const getMergeableTableDiff = (otherTableHashes) => {
3587
- const newTables = stampNewObj(contentStampMap[0][1]);
3588
- const differingTableHashes = {};
3589
- mapForEach(
3590
- contentStampMap[0][0],
3591
- (tableId, [tableStampMap, tableTime, hash]) =>
3592
- objHas(otherTableHashes, tableId)
3593
- ? hash != otherTableHashes[tableId]
3594
- ? (differingTableHashes[tableId] = hash)
3595
- : 0
3596
- : (newTables[0][tableId] = stampMapToObjWithoutHash(
3597
- [tableStampMap, tableTime],
3598
- (rowStampMap) => stampMapToObjWithoutHash(rowStampMap),
3599
- )),
3600
- );
3601
- return [newTables, differingTableHashes];
3602
- };
3603
- const getMergeableRowHashes = (otherTableHashes) => {
3604
- const rowHashes = {};
3605
- objForEach(otherTableHashes, (otherTableHash, tableId) =>
3606
- ifNotUndefined(
3607
- mapGet(contentStampMap[0][0], tableId),
3608
- ([rowStampMaps, , tableHash]) =>
3609
- tableHash != otherTableHash
3610
- ? mapForEach(
3611
- rowStampMaps,
3612
- (rowId, [, , rowHash]) =>
3613
- (objEnsure(rowHashes, tableId, objNew)[rowId] = rowHash),
3614
- )
3615
- : 0,
3616
- ),
3617
- );
3618
- return rowHashes;
3619
- };
3620
- const getMergeableRowDiff = (otherTableRowHashes) => {
3621
- const newRows = stampNewObj(contentStampMap[0][1]);
3622
- const differingRowHashes = {};
3623
- objForEach(otherTableRowHashes, (otherRowHashes, tableId) =>
3624
- mapForEach(
3625
- mapGet(contentStampMap[0][0], tableId)?.[0],
3626
- (rowId, [rowStampMap, rowTime, hash]) =>
3627
- objHas(otherRowHashes, rowId)
3628
- ? hash !== otherRowHashes[rowId]
3629
- ? (objEnsure(differingRowHashes, tableId, objNew)[rowId] = hash)
3630
- : 0
3631
- : (objEnsure(newRows[0], tableId, stampNewObj)[0][rowId] =
3632
- stampMapToObjWithoutHash([rowStampMap, rowTime])),
3633
- ),
3634
- );
3635
- return [newRows, differingRowHashes];
3636
- };
3637
- const getMergeableCellHashes = (otherTableRowHashes) => {
3638
- const cellHashes = {};
3639
- objForEach(otherTableRowHashes, (otherRowHashes, tableId) =>
3640
- ifNotUndefined(
3641
- mapGet(contentStampMap[0][0], tableId),
3642
- ([rowStampMaps]) =>
3643
- objForEach(otherRowHashes, (otherRowHash, rowId) =>
3644
- ifNotUndefined(
3645
- mapGet(rowStampMaps, rowId),
3646
- ([cellStampMaps, , rowHash]) =>
3647
- rowHash !== otherRowHash
3648
- ? mapForEach(
3649
- cellStampMaps,
3650
- (cellId, [, , cellHash]) =>
3651
- (objEnsure(
3652
- objEnsure(cellHashes, tableId, objNew),
3653
- rowId,
3654
- objNew,
3655
- )[cellId] = cellHash),
3656
- )
3657
- : 0,
3658
- ),
3659
- ),
3660
- ),
3661
- );
3662
- return cellHashes;
3663
- };
3664
- const getMergeableCellDiff = (otherTableRowCellHashes) => {
3665
- const [[tableStampMaps, tablesTime]] = contentStampMap;
3666
- const tablesObj = {};
3667
- objForEach(otherTableRowCellHashes, (otherRowCellHashes, tableId) =>
3668
- objForEach(otherRowCellHashes, (otherCellHashes, rowId) =>
3669
- ifNotUndefined(
3670
- mapGet(tableStampMaps, tableId),
3671
- ([rowStampMaps, tableTime]) =>
3672
- ifNotUndefined(
3673
- mapGet(rowStampMaps, rowId),
3674
- ([cellStampMaps, rowTime]) =>
3675
- mapForEach(cellStampMaps, (cellId, [cell, cellTime, hash]) =>
3676
- hash !== otherCellHashes[cellId]
3677
- ? (objEnsure(
3678
- objEnsure(tablesObj, tableId, () =>
3679
- stampNewObj(tableTime),
3680
- )[0],
3681
- rowId,
3682
- () => stampNewObj(rowTime),
3683
- )[0][cellId] = [cell, cellTime])
3684
- : 0,
3685
- ),
3686
- ),
3687
- ),
3688
- ),
3689
- );
3690
- return stampNew(tablesObj, tablesTime);
3691
- };
3692
- const getMergeableValueHashes = () =>
3693
- mapToObj(contentStampMap[1][0], getStampHash);
3694
- const getMergeableValueDiff = (otherValueHashes) => {
3695
- const [, [valueStampMaps, valuesTime]] = contentStampMap;
3696
- const values = mapToObj(
3697
- valueStampMaps,
3698
- stampClone,
3699
- ([, , hash], valueId) => hash == otherValueHashes?.[valueId],
3700
- );
3701
- return stampNew(values, valuesTime);
3702
- };
3703
- const setMergeableContent = (mergeableContent) =>
3704
- disableListeningToRawStoreChanges(() =>
3705
- validateMergeableContent(mergeableContent)
3706
- ? store.transaction(() => {
3707
- store.delTables().delValues();
3708
- contentStampMap = newContentStampMap();
3709
- store.applyChanges(mergeContentOrChanges(mergeableContent, 1));
3710
- })
3711
- : 0,
3712
- );
3713
- const setDefaultContent = (content) => {
3714
- store.transaction(() => {
3715
- defaultingContent = 1;
3716
- store.setContent(content);
3717
- defaultingContent = 0;
3718
- });
3719
- return mergeableStore;
3720
- };
3721
- const getTransactionMergeableChanges = (withHashes = false) => {
3722
- const [
3723
- [tableStampMaps, tablesTime, tablesHash],
3724
- [valueStampMaps, valuesTime, valuesHash],
3725
- ] = contentStampMap;
3726
- const newStamp = withHashes ? stampNewWithHash : stampNew;
3727
- const tablesObj = {};
3728
- collForEach(touchedCells, (touchedTable, tableId) =>
3729
- ifNotUndefined(
3730
- mapGet(tableStampMaps, tableId),
3731
- ([rowStampMaps, tableTime, tableHash]) => {
3732
- const tableObj = {};
3733
- collForEach(touchedTable, (touchedRow, rowId) =>
3734
- ifNotUndefined(
3735
- mapGet(rowStampMaps, rowId),
3736
- ([cellStampMaps, rowTime, rowHash]) => {
3737
- const rowObj = {};
3738
- collForEach(touchedRow, (cellId) => {
3739
- ifNotUndefined(
3740
- mapGet(cellStampMaps, cellId),
3741
- ([cell, time, hash]) =>
3742
- (rowObj[cellId] = newStamp(cell, time, hash)),
3743
- );
3744
- });
3745
- tableObj[rowId] = newStamp(rowObj, rowTime, rowHash);
3746
- },
3747
- ),
3748
- );
3749
- tablesObj[tableId] = newStamp(tableObj, tableTime, tableHash);
3750
- },
3751
- ),
3752
- );
3753
- const valuesObj = {};
3754
- collForEach(touchedValues, (valueId) =>
3755
- ifNotUndefined(
3756
- mapGet(valueStampMaps, valueId),
3757
- ([value, time, hash]) =>
3758
- (valuesObj[valueId] = newStamp(value, time, hash)),
3759
- ),
3760
- );
3761
- return [
3762
- newStamp(tablesObj, tablesTime, tablesHash),
3763
- newStamp(valuesObj, valuesTime, valuesHash),
3764
- 1,
3765
- ];
3766
- };
3767
- const applyMergeableChanges = (mergeableChanges) =>
3768
- disableListeningToRawStoreChanges(() =>
3769
- store.applyChanges(mergeContentOrChanges(mergeableChanges)),
3770
- );
3771
- const merge = (mergeableStore2) => {
3772
- const mergeableChanges = getMergeableContent();
3773
- const mergeableChanges2 = mergeableStore2.getMergeableContent();
3774
- mergeableStore2.applyMergeableChanges(mergeableChanges);
3775
- return applyMergeableChanges(mergeableChanges2);
3776
- };
3777
- const mergeableStore = {
3778
- getMergeableContent,
3779
- getMergeableContentHashes,
3780
- getMergeableTableHashes,
3781
- getMergeableTableDiff,
3782
- getMergeableRowHashes,
3783
- getMergeableRowDiff,
3784
- getMergeableCellHashes,
3785
- getMergeableCellDiff,
3786
- getMergeableValueHashes,
3787
- getMergeableValueDiff,
3788
- setMergeableContent,
3789
- setDefaultContent,
3790
- getTransactionMergeableChanges,
3791
- applyMergeableChanges,
3792
- merge,
3793
- };
3794
- store.setInternalListeners(
3795
- preStartTransaction,
3796
- preFinishTransaction,
3797
- postFinishTransaction,
3798
- cellChanged,
3799
- valueChanged,
3800
- );
3801
- objMap(
3802
- store,
3803
- (method, name) =>
3804
- (mergeableStore[name] = // fluent methods
3805
- strStartsWith(name, SET) ||
3806
- strStartsWith(name, DEL) ||
3807
- strStartsWith(name, 'apply') ||
3808
- strEndsWith(name, TRANSACTION) ||
3809
- name == 'call' + LISTENER
3810
- ? (...args) => {
3811
- method(...args);
3812
- return mergeableStore;
3813
- }
3814
- : strStartsWith(name, ADD) && strEndsWith(name, LISTENER)
3815
- ? (...args) => {
3816
- const listenerArg = LISTENER_ARGS[slice(name, 3, -8)] ?? 0;
3817
- const listener = args[listenerArg];
3818
- args[listenerArg] = (_store, ...args2) =>
3819
- listener(mergeableStore, ...args2);
3820
- return method(...args);
3821
- }
3822
- : name == 'isMergeable'
3823
- ? () => true
3824
- : method),
3825
- );
3826
- return objFreeze(mergeableStore);
3827
- };
3828
-
3829
- exports.createCheckpoints = createCheckpoints;
3830
- exports.createIndexes = createIndexes;
3831
- exports.createMergeableStore = createMergeableStore;
3832
- exports.createMetrics = createMetrics;
3833
- exports.createQueries = createQueries;
3834
- exports.createRelationships = createRelationships;
3835
- exports.createStore = createStore;
3836
- exports.defaultSorter = defaultSorter;
3837
- exports.getUniqueId = getUniqueId;
3838
- });