tinybase 5.0.0-beta.9 → 5.0.0

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