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