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