tinybase 5.5.0-beta.0 → 6.0.0-beta.1

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