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