tinybase 5.0.0-beta.2 → 5.0.0-beta.21

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