tinybase 5.0.0-beta.19 → 5.0.0-beta.20

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 (987) hide show
  1. package/@types/_internal/queries/with-schemas/index.d.cts +22 -0
  2. package/@types/_internal/store/index.d.cts +3 -0
  3. package/@types/_internal/store/with-schemas/index.d.cts +106 -0
  4. package/@types/_internal/ui-react/with-schemas/index.d.cts +813 -0
  5. package/@types/checkpoints/index.d.cts +1033 -0
  6. package/@types/checkpoints/with-schemas/index.d.cts +1125 -0
  7. package/@types/index.d.cts +18 -0
  8. package/@types/indexes/index.d.cts +1037 -0
  9. package/@types/indexes/with-schemas/index.d.cts +1183 -0
  10. package/@types/mergeable-store/index.d.cts +222 -0
  11. package/@types/mergeable-store/with-schemas/index.d.cts +509 -0
  12. package/@types/metrics/index.d.cts +895 -0
  13. package/@types/metrics/with-schemas/index.d.cts +982 -0
  14. package/@types/persisters/index.d.cts +1319 -0
  15. package/@types/persisters/persister-automerge/index.d.cts +162 -0
  16. package/@types/persisters/persister-automerge/with-schemas/index.d.cts +177 -0
  17. package/@types/persisters/persister-browser/index.d.cts +174 -0
  18. package/@types/persisters/persister-browser/with-schemas/index.d.cts +199 -0
  19. package/@types/persisters/persister-cr-sqlite-wasm/index.d.cts +157 -0
  20. package/@types/persisters/persister-cr-sqlite-wasm/with-schemas/index.d.cts +176 -0
  21. package/@types/persisters/persister-electric-sql/index.d.cts +183 -0
  22. package/@types/persisters/persister-electric-sql/with-schemas/index.d.cts +202 -0
  23. package/@types/persisters/persister-expo-sqlite/index.d.cts +186 -0
  24. package/@types/persisters/persister-expo-sqlite/with-schemas/index.d.cts +205 -0
  25. package/@types/persisters/persister-expo-sqlite-next/index.d.cts +187 -0
  26. package/@types/persisters/persister-expo-sqlite-next/with-schemas/index.d.cts +206 -0
  27. package/@types/persisters/persister-file/index.d.cts +88 -0
  28. package/@types/persisters/persister-file/with-schemas/index.d.cts +102 -0
  29. package/@types/persisters/persister-indexed-db/index.d.cts +116 -0
  30. package/@types/persisters/persister-indexed-db/with-schemas/index.d.cts +131 -0
  31. package/@types/persisters/persister-libsql/index.d.cts +154 -0
  32. package/@types/persisters/persister-libsql/with-schemas/index.d.cts +173 -0
  33. package/@types/persisters/persister-partykit-client/index.d.cts +185 -0
  34. package/@types/persisters/persister-partykit-client/with-schemas/index.d.cts +200 -0
  35. package/@types/persisters/persister-partykit-server/index.d.cts +631 -0
  36. package/@types/persisters/persister-partykit-server/with-schemas/index.d.cts +673 -0
  37. package/@types/persisters/persister-powersync/index.d.cts +169 -0
  38. package/@types/persisters/persister-powersync/with-schemas/index.d.cts +188 -0
  39. package/@types/persisters/persister-remote/index.d.cts +113 -0
  40. package/@types/persisters/persister-remote/with-schemas/index.d.cts +129 -0
  41. package/@types/persisters/persister-sqlite-wasm/index.d.cts +170 -0
  42. package/@types/persisters/persister-sqlite-wasm/with-schemas/index.d.cts +190 -0
  43. package/@types/persisters/persister-sqlite3/index.d.cts +171 -0
  44. package/@types/persisters/persister-sqlite3/with-schemas/index.d.cts +190 -0
  45. package/@types/persisters/persister-yjs/index.d.cts +157 -0
  46. package/@types/persisters/persister-yjs/with-schemas/index.d.cts +172 -0
  47. package/@types/persisters/with-schemas/index.d.cts +1393 -0
  48. package/@types/queries/index.d.cts +3640 -0
  49. package/@types/queries/with-schemas/index.d.cts +3961 -0
  50. package/@types/relationships/index.d.cts +1266 -0
  51. package/@types/relationships/with-schemas/index.d.cts +1420 -0
  52. package/@types/store/index.d.cts +7453 -0
  53. package/@types/store/with-schemas/index.d.cts +9131 -0
  54. package/@types/synchronizers/index.d.cts +139 -0
  55. package/@types/synchronizers/synchronizer-local/index.d.cts +27 -0
  56. package/@types/synchronizers/synchronizer-local/with-schemas/index.d.cts +29 -0
  57. package/@types/synchronizers/synchronizer-ws-client/index.d.cts +36 -0
  58. package/@types/synchronizers/synchronizer-ws-client/with-schemas/index.d.cts +42 -0
  59. package/@types/synchronizers/synchronizer-ws-server/index.d.cts +58 -0
  60. package/@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.cts +58 -0
  61. package/@types/synchronizers/with-schemas/index.d.cts +156 -0
  62. package/@types/tools/index.d.cts +556 -0
  63. package/@types/tools/with-schemas/index.d.cts +567 -0
  64. package/@types/ui-react/index.d.cts +15318 -0
  65. package/@types/ui-react/with-schemas/index.d.cts +16235 -0
  66. package/@types/ui-react-dom/index.d.cts +1751 -0
  67. package/@types/ui-react-dom/with-schemas/index.d.cts +1883 -0
  68. package/@types/ui-react-inspector/index.d.cts +77 -0
  69. package/@types/ui-react-inspector/with-schemas/index.d.cts +1871 -0
  70. package/@types/with-schemas/index.d.cts +18 -0
  71. package/cjs/debug/checkpoints/index.cjs +433 -0
  72. package/cjs/debug/checkpoints/with-schemas/index.cjs +433 -0
  73. package/cjs/debug/common/index.cjs +28 -0
  74. package/cjs/debug/common/with-schemas/index.cjs +28 -0
  75. package/cjs/debug/index.cjs +4102 -0
  76. package/cjs/debug/indexes/index.cjs +555 -0
  77. package/cjs/debug/indexes/with-schemas/index.cjs +555 -0
  78. package/cjs/debug/mergeable-store/index.cjs +2249 -0
  79. package/cjs/debug/mergeable-store/with-schemas/index.cjs +2249 -0
  80. package/cjs/debug/metrics/index.cjs +521 -0
  81. package/cjs/debug/metrics/with-schemas/index.cjs +521 -0
  82. package/cjs/debug/persisters/index.cjs +230 -0
  83. package/cjs/debug/persisters/persister-automerge/index.cjs +378 -0
  84. package/cjs/debug/persisters/persister-automerge/with-schemas/index.cjs +378 -0
  85. package/cjs/debug/persisters/persister-browser/index.cjs +282 -0
  86. package/cjs/debug/persisters/persister-browser/with-schemas/index.cjs +282 -0
  87. package/cjs/debug/persisters/persister-cr-sqlite-wasm/index.cjs +929 -0
  88. package/cjs/debug/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +929 -0
  89. package/cjs/debug/persisters/persister-electric-sql/index.cjs +937 -0
  90. package/cjs/debug/persisters/persister-electric-sql/with-schemas/index.cjs +937 -0
  91. package/cjs/debug/persisters/persister-expo-sqlite/index.cjs +930 -0
  92. package/cjs/debug/persisters/persister-expo-sqlite/with-schemas/index.cjs +930 -0
  93. package/cjs/debug/persisters/persister-expo-sqlite-next/index.cjs +932 -0
  94. package/cjs/debug/persisters/persister-expo-sqlite-next/with-schemas/index.cjs +932 -0
  95. package/cjs/debug/persisters/persister-file/index.cjs +265 -0
  96. package/cjs/debug/persisters/persister-file/with-schemas/index.cjs +265 -0
  97. package/cjs/debug/persisters/persister-indexed-db/index.cjs +342 -0
  98. package/cjs/debug/persisters/persister-indexed-db/with-schemas/index.cjs +342 -0
  99. package/cjs/debug/persisters/persister-libsql/index.cjs +930 -0
  100. package/cjs/debug/persisters/persister-libsql/with-schemas/index.cjs +930 -0
  101. package/cjs/debug/persisters/persister-partykit-client/index.cjs +329 -0
  102. package/cjs/debug/persisters/persister-partykit-client/with-schemas/index.cjs +329 -0
  103. package/cjs/debug/persisters/persister-partykit-server/index.cjs +284 -0
  104. package/cjs/debug/persisters/persister-partykit-server/with-schemas/index.cjs +284 -0
  105. package/cjs/debug/persisters/persister-powersync/index.cjs +945 -0
  106. package/cjs/debug/persisters/persister-powersync/with-schemas/index.cjs +945 -0
  107. package/cjs/debug/persisters/persister-remote/index.cjs +287 -0
  108. package/cjs/debug/persisters/persister-remote/with-schemas/index.cjs +287 -0
  109. package/cjs/debug/persisters/persister-sqlite-wasm/index.cjs +938 -0
  110. package/cjs/debug/persisters/persister-sqlite-wasm/with-schemas/index.cjs +938 -0
  111. package/cjs/debug/persisters/persister-sqlite3/index.cjs +940 -0
  112. package/cjs/debug/persisters/persister-sqlite3/with-schemas/index.cjs +940 -0
  113. package/cjs/debug/persisters/persister-yjs/index.cjs +427 -0
  114. package/cjs/debug/persisters/persister-yjs/with-schemas/index.cjs +427 -0
  115. package/cjs/debug/persisters/with-schemas/index.cjs +230 -0
  116. package/cjs/debug/queries/index.cjs +814 -0
  117. package/cjs/debug/queries/with-schemas/index.cjs +814 -0
  118. package/cjs/debug/relationships/index.cjs +531 -0
  119. package/cjs/debug/relationships/with-schemas/index.cjs +531 -0
  120. package/cjs/debug/store/index.cjs +1636 -0
  121. package/cjs/debug/store/with-schemas/index.cjs +1636 -0
  122. package/cjs/debug/synchronizers/index.cjs +466 -0
  123. package/cjs/debug/synchronizers/synchronizer-local/index.cjs +506 -0
  124. package/cjs/debug/synchronizers/synchronizer-local/with-schemas/index.cjs +506 -0
  125. package/cjs/debug/synchronizers/synchronizer-ws-client/index.cjs +529 -0
  126. package/cjs/debug/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +529 -0
  127. package/cjs/debug/synchronizers/synchronizer-ws-server/index.cjs +243 -0
  128. package/cjs/debug/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +243 -0
  129. package/cjs/debug/synchronizers/with-schemas/index.cjs +466 -0
  130. package/cjs/debug/tools/index.cjs +3300 -0
  131. package/cjs/debug/tools/with-schemas/index.cjs +3300 -0
  132. package/cjs/debug/ui-react/index.cjs +1985 -0
  133. package/cjs/debug/ui-react/with-schemas/index.cjs +1985 -0
  134. package/cjs/debug/ui-react-dom/index.cjs +779 -0
  135. package/cjs/debug/ui-react-dom/with-schemas/index.cjs +779 -0
  136. package/cjs/debug/ui-react-inspector/index.cjs +3263 -0
  137. package/cjs/debug/ui-react-inspector/with-schemas/index.cjs +3263 -0
  138. package/cjs/debug/with-schemas/index.cjs +4102 -0
  139. package/cjs/es6/debug/checkpoints/index.cjs +473 -0
  140. package/cjs/es6/debug/checkpoints/with-schemas/index.cjs +473 -0
  141. package/cjs/es6/debug/common/index.cjs +30 -0
  142. package/cjs/es6/debug/common/with-schemas/index.cjs +30 -0
  143. package/cjs/es6/debug/index.cjs +4358 -0
  144. package/cjs/es6/debug/indexes/index.cjs +602 -0
  145. package/cjs/es6/debug/indexes/with-schemas/index.cjs +602 -0
  146. package/cjs/es6/debug/mergeable-store/index.cjs +2349 -0
  147. package/cjs/es6/debug/mergeable-store/with-schemas/index.cjs +2349 -0
  148. package/cjs/es6/debug/metrics/index.cjs +574 -0
  149. package/cjs/es6/debug/metrics/with-schemas/index.cjs +574 -0
  150. package/cjs/es6/debug/persisters/index.cjs +302 -0
  151. package/cjs/es6/debug/persisters/persister-automerge/index.cjs +476 -0
  152. package/cjs/es6/debug/persisters/persister-automerge/with-schemas/index.cjs +476 -0
  153. package/cjs/es6/debug/persisters/persister-browser/index.cjs +384 -0
  154. package/cjs/es6/debug/persisters/persister-browser/with-schemas/index.cjs +384 -0
  155. package/cjs/es6/debug/persisters/persister-cr-sqlite-wasm/index.cjs +1256 -0
  156. package/cjs/es6/debug/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +1256 -0
  157. package/cjs/es6/debug/persisters/persister-electric-sql/index.cjs +1264 -0
  158. package/cjs/es6/debug/persisters/persister-electric-sql/with-schemas/index.cjs +1264 -0
  159. package/cjs/es6/debug/persisters/persister-expo-sqlite/index.cjs +1256 -0
  160. package/cjs/es6/debug/persisters/persister-expo-sqlite/with-schemas/index.cjs +1256 -0
  161. package/cjs/es6/debug/persisters/persister-expo-sqlite-next/index.cjs +1259 -0
  162. package/cjs/es6/debug/persisters/persister-expo-sqlite-next/with-schemas/index.cjs +1259 -0
  163. package/cjs/es6/debug/persisters/persister-file/index.cjs +365 -0
  164. package/cjs/es6/debug/persisters/persister-file/with-schemas/index.cjs +365 -0
  165. package/cjs/es6/debug/persisters/persister-indexed-db/index.cjs +481 -0
  166. package/cjs/es6/debug/persisters/persister-indexed-db/with-schemas/index.cjs +481 -0
  167. package/cjs/es6/debug/persisters/persister-libsql/index.cjs +1257 -0
  168. package/cjs/es6/debug/persisters/persister-libsql/with-schemas/index.cjs +1257 -0
  169. package/cjs/es6/debug/persisters/persister-partykit-client/index.cjs +459 -0
  170. package/cjs/es6/debug/persisters/persister-partykit-client/with-schemas/index.cjs +459 -0
  171. package/cjs/es6/debug/persisters/persister-partykit-server/index.cjs +411 -0
  172. package/cjs/es6/debug/persisters/persister-partykit-server/with-schemas/index.cjs +411 -0
  173. package/cjs/es6/debug/persisters/persister-powersync/index.cjs +1312 -0
  174. package/cjs/es6/debug/persisters/persister-powersync/with-schemas/index.cjs +1312 -0
  175. package/cjs/es6/debug/persisters/persister-remote/index.cjs +389 -0
  176. package/cjs/es6/debug/persisters/persister-remote/with-schemas/index.cjs +389 -0
  177. package/cjs/es6/debug/persisters/persister-sqlite-wasm/index.cjs +1286 -0
  178. package/cjs/es6/debug/persisters/persister-sqlite-wasm/with-schemas/index.cjs +1286 -0
  179. package/cjs/es6/debug/persisters/persister-sqlite3/index.cjs +1266 -0
  180. package/cjs/es6/debug/persisters/persister-sqlite3/with-schemas/index.cjs +1266 -0
  181. package/cjs/es6/debug/persisters/persister-yjs/index.cjs +536 -0
  182. package/cjs/es6/debug/persisters/persister-yjs/with-schemas/index.cjs +536 -0
  183. package/cjs/es6/debug/persisters/with-schemas/index.cjs +302 -0
  184. package/cjs/es6/debug/queries/index.cjs +859 -0
  185. package/cjs/es6/debug/queries/with-schemas/index.cjs +859 -0
  186. package/cjs/es6/debug/relationships/index.cjs +591 -0
  187. package/cjs/es6/debug/relationships/with-schemas/index.cjs +591 -0
  188. package/cjs/es6/debug/store/index.cjs +1716 -0
  189. package/cjs/es6/debug/store/with-schemas/index.cjs +1716 -0
  190. package/cjs/es6/debug/synchronizers/index.cjs +594 -0
  191. package/cjs/es6/debug/synchronizers/synchronizer-local/index.cjs +630 -0
  192. package/cjs/es6/debug/synchronizers/synchronizer-local/with-schemas/index.cjs +630 -0
  193. package/cjs/es6/debug/synchronizers/synchronizer-ws-client/index.cjs +681 -0
  194. package/cjs/es6/debug/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +681 -0
  195. package/cjs/es6/debug/synchronizers/synchronizer-ws-server/index.cjs +292 -0
  196. package/cjs/es6/debug/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +292 -0
  197. package/cjs/es6/debug/synchronizers/with-schemas/index.cjs +594 -0
  198. package/cjs/es6/debug/tools/index.cjs +3423 -0
  199. package/cjs/es6/debug/tools/with-schemas/index.cjs +3423 -0
  200. package/cjs/es6/debug/ui-react/index.cjs +2189 -0
  201. package/cjs/es6/debug/ui-react/with-schemas/index.cjs +2189 -0
  202. package/cjs/es6/debug/ui-react-dom/index.cjs +906 -0
  203. package/cjs/es6/debug/ui-react-dom/with-schemas/index.cjs +906 -0
  204. package/cjs/es6/debug/ui-react-inspector/index.cjs +3654 -0
  205. package/cjs/es6/debug/ui-react-inspector/with-schemas/index.cjs +3654 -0
  206. package/cjs/es6/debug/with-schemas/index.cjs +4358 -0
  207. package/es6/debug/checkpoints/index.js +471 -0
  208. package/es6/debug/checkpoints/with-schemas/index.js +471 -0
  209. package/es6/debug/common/index.js +27 -0
  210. package/es6/debug/common/with-schemas/index.js +27 -0
  211. package/es6/debug/index.js +4358 -0
  212. package/es6/debug/indexes/index.js +600 -0
  213. package/es6/debug/indexes/with-schemas/index.js +600 -0
  214. package/es6/debug/mergeable-store/index.js +2347 -0
  215. package/es6/debug/mergeable-store/with-schemas/index.js +2347 -0
  216. package/es6/debug/metrics/index.js +572 -0
  217. package/es6/debug/metrics/with-schemas/index.js +572 -0
  218. package/es6/debug/persisters/index.js +300 -0
  219. package/es6/debug/persisters/persister-automerge/index.js +474 -0
  220. package/es6/debug/persisters/persister-automerge/with-schemas/index.js +474 -0
  221. package/es6/debug/persisters/persister-browser/index.js +381 -0
  222. package/es6/debug/persisters/persister-browser/with-schemas/index.js +381 -0
  223. package/es6/debug/persisters/persister-cr-sqlite-wasm/index.js +1254 -0
  224. package/es6/debug/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1254 -0
  225. package/es6/debug/persisters/persister-electric-sql/index.js +1262 -0
  226. package/es6/debug/persisters/persister-electric-sql/with-schemas/index.js +1262 -0
  227. package/es6/debug/persisters/persister-expo-sqlite/index.js +1254 -0
  228. package/es6/debug/persisters/persister-expo-sqlite/with-schemas/index.js +1254 -0
  229. package/es6/debug/persisters/persister-expo-sqlite-next/index.js +1257 -0
  230. package/es6/debug/persisters/persister-expo-sqlite-next/with-schemas/index.js +1257 -0
  231. package/es6/debug/persisters/persister-file/index.js +362 -0
  232. package/es6/debug/persisters/persister-file/with-schemas/index.js +362 -0
  233. package/es6/debug/persisters/persister-indexed-db/index.js +478 -0
  234. package/es6/debug/persisters/persister-indexed-db/with-schemas/index.js +478 -0
  235. package/es6/debug/persisters/persister-libsql/index.js +1255 -0
  236. package/es6/debug/persisters/persister-libsql/with-schemas/index.js +1255 -0
  237. package/es6/debug/persisters/persister-partykit-client/index.js +457 -0
  238. package/es6/debug/persisters/persister-partykit-client/with-schemas/index.js +457 -0
  239. package/es6/debug/persisters/persister-partykit-server/index.js +411 -0
  240. package/es6/debug/persisters/persister-partykit-server/with-schemas/index.js +411 -0
  241. package/es6/debug/persisters/persister-powersync/index.js +1310 -0
  242. package/es6/debug/persisters/persister-powersync/with-schemas/index.js +1310 -0
  243. package/es6/debug/persisters/persister-remote/index.js +387 -0
  244. package/es6/debug/persisters/persister-remote/with-schemas/index.js +387 -0
  245. package/es6/debug/persisters/persister-sqlite-wasm/index.js +1284 -0
  246. package/es6/debug/persisters/persister-sqlite-wasm/with-schemas/index.js +1284 -0
  247. package/es6/debug/persisters/persister-sqlite3/index.js +1264 -0
  248. package/es6/debug/persisters/persister-sqlite3/with-schemas/index.js +1264 -0
  249. package/es6/debug/persisters/persister-yjs/index.js +534 -0
  250. package/es6/debug/persisters/persister-yjs/with-schemas/index.js +534 -0
  251. package/es6/debug/persisters/with-schemas/index.js +300 -0
  252. package/es6/debug/queries/index.js +857 -0
  253. package/es6/debug/queries/with-schemas/index.js +857 -0
  254. package/es6/debug/relationships/index.js +589 -0
  255. package/es6/debug/relationships/with-schemas/index.js +589 -0
  256. package/es6/debug/store/index.js +1714 -0
  257. package/es6/debug/store/with-schemas/index.js +1714 -0
  258. package/es6/debug/synchronizers/index.js +592 -0
  259. package/es6/debug/synchronizers/synchronizer-local/index.js +628 -0
  260. package/es6/debug/synchronizers/synchronizer-local/with-schemas/index.js +628 -0
  261. package/es6/debug/synchronizers/synchronizer-ws-client/index.js +679 -0
  262. package/es6/debug/synchronizers/synchronizer-ws-client/with-schemas/index.js +679 -0
  263. package/es6/debug/synchronizers/synchronizer-ws-server/index.js +290 -0
  264. package/es6/debug/synchronizers/synchronizer-ws-server/with-schemas/index.js +290 -0
  265. package/es6/debug/synchronizers/with-schemas/index.js +592 -0
  266. package/es6/debug/tools/index.js +3421 -0
  267. package/es6/debug/tools/with-schemas/index.js +3421 -0
  268. package/es6/debug/ui-react/index.js +2188 -0
  269. package/es6/debug/ui-react/with-schemas/index.js +2188 -0
  270. package/es6/debug/ui-react-dom/index.js +907 -0
  271. package/es6/debug/ui-react-dom/with-schemas/index.js +907 -0
  272. package/es6/debug/ui-react-inspector/index.js +3659 -0
  273. package/es6/debug/ui-react-inspector/with-schemas/index.js +3659 -0
  274. package/es6/debug/with-schemas/index.js +4358 -0
  275. package/package.json +3526 -40
  276. package/readme.md +3 -3
  277. package/releases.md +2 -2
  278. package/umd/debug/checkpoints/index.js +450 -0
  279. package/umd/debug/checkpoints/with-schemas/index.js +450 -0
  280. package/umd/debug/common/index.js +38 -0
  281. package/umd/debug/common/with-schemas/index.js +38 -0
  282. package/umd/debug/index.js +4192 -0
  283. package/umd/debug/indexes/index.js +578 -0
  284. package/umd/debug/indexes/with-schemas/index.js +578 -0
  285. package/umd/debug/mergeable-store/index.js +2312 -0
  286. package/umd/debug/mergeable-store/with-schemas/index.js +2312 -0
  287. package/umd/debug/metrics/index.js +544 -0
  288. package/umd/debug/metrics/with-schemas/index.js +544 -0
  289. package/umd/debug/persisters/index.js +242 -0
  290. package/umd/debug/persisters/persister-automerge/index.js +390 -0
  291. package/umd/debug/persisters/persister-automerge/with-schemas/index.js +390 -0
  292. package/umd/debug/persisters/persister-browser/index.js +296 -0
  293. package/umd/debug/persisters/persister-browser/with-schemas/index.js +296 -0
  294. package/umd/debug/persisters/persister-cr-sqlite-wasm/index.js +959 -0
  295. package/umd/debug/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +959 -0
  296. package/umd/debug/persisters/persister-electric-sql/index.js +967 -0
  297. package/umd/debug/persisters/persister-electric-sql/with-schemas/index.js +967 -0
  298. package/umd/debug/persisters/persister-expo-sqlite/index.js +960 -0
  299. package/umd/debug/persisters/persister-expo-sqlite/with-schemas/index.js +960 -0
  300. package/umd/debug/persisters/persister-expo-sqlite-next/index.js +963 -0
  301. package/umd/debug/persisters/persister-expo-sqlite-next/with-schemas/index.js +963 -0
  302. package/umd/debug/persisters/persister-file/index.js +280 -0
  303. package/umd/debug/persisters/persister-file/with-schemas/index.js +280 -0
  304. package/umd/debug/persisters/persister-indexed-db/index.js +354 -0
  305. package/umd/debug/persisters/persister-indexed-db/with-schemas/index.js +354 -0
  306. package/umd/debug/persisters/persister-libsql/index.js +960 -0
  307. package/umd/debug/persisters/persister-libsql/with-schemas/index.js +960 -0
  308. package/umd/debug/persisters/persister-partykit-client/index.js +341 -0
  309. package/umd/debug/persisters/persister-partykit-client/with-schemas/index.js +341 -0
  310. package/umd/debug/persisters/persister-partykit-server/index.js +312 -0
  311. package/umd/debug/persisters/persister-partykit-server/with-schemas/index.js +312 -0
  312. package/umd/debug/persisters/persister-powersync/index.js +977 -0
  313. package/umd/debug/persisters/persister-powersync/with-schemas/index.js +977 -0
  314. package/umd/debug/persisters/persister-remote/index.js +299 -0
  315. package/umd/debug/persisters/persister-remote/with-schemas/index.js +299 -0
  316. package/umd/debug/persisters/persister-sqlite-wasm/index.js +968 -0
  317. package/umd/debug/persisters/persister-sqlite-wasm/with-schemas/index.js +968 -0
  318. package/umd/debug/persisters/persister-sqlite3/index.js +970 -0
  319. package/umd/debug/persisters/persister-sqlite3/with-schemas/index.js +970 -0
  320. package/umd/debug/persisters/persister-yjs/index.js +439 -0
  321. package/umd/debug/persisters/persister-yjs/with-schemas/index.js +439 -0
  322. package/umd/debug/persisters/with-schemas/index.js +242 -0
  323. package/umd/debug/queries/index.js +828 -0
  324. package/umd/debug/queries/with-schemas/index.js +828 -0
  325. package/umd/debug/relationships/index.js +551 -0
  326. package/umd/debug/relationships/with-schemas/index.js +551 -0
  327. package/umd/debug/store/index.js +1686 -0
  328. package/umd/debug/store/with-schemas/index.js +1686 -0
  329. package/umd/debug/synchronizers/index.js +482 -0
  330. package/umd/debug/synchronizers/synchronizer-local/index.js +522 -0
  331. package/umd/debug/synchronizers/synchronizer-local/with-schemas/index.js +522 -0
  332. package/umd/debug/synchronizers/synchronizer-ws-client/index.js +547 -0
  333. package/umd/debug/synchronizers/synchronizer-ws-client/with-schemas/index.js +547 -0
  334. package/umd/debug/synchronizers/synchronizer-ws-server/index.js +261 -0
  335. package/umd/debug/synchronizers/synchronizer-ws-server/with-schemas/index.js +261 -0
  336. package/umd/debug/synchronizers/with-schemas/index.js +482 -0
  337. package/umd/debug/tools/index.js +3351 -0
  338. package/umd/debug/tools/with-schemas/index.js +3351 -0
  339. package/umd/debug/ui-react/index.js +2036 -0
  340. package/umd/debug/ui-react/with-schemas/index.js +2036 -0
  341. package/umd/debug/ui-react-dom/index.js +802 -0
  342. package/umd/debug/ui-react-dom/with-schemas/index.js +802 -0
  343. package/umd/debug/ui-react-inspector/index.js +3342 -0
  344. package/umd/debug/ui-react-inspector/with-schemas/index.js +3342 -0
  345. package/umd/debug/with-schemas/index.js +4192 -0
  346. package/umd/es6/debug/checkpoints/index.js +492 -0
  347. package/umd/es6/debug/checkpoints/with-schemas/index.js +492 -0
  348. package/umd/es6/debug/common/index.js +40 -0
  349. package/umd/es6/debug/common/with-schemas/index.js +40 -0
  350. package/umd/es6/debug/index.js +4456 -0
  351. package/umd/es6/debug/indexes/index.js +627 -0
  352. package/umd/es6/debug/indexes/with-schemas/index.js +627 -0
  353. package/umd/es6/debug/mergeable-store/index.js +2418 -0
  354. package/umd/es6/debug/mergeable-store/with-schemas/index.js +2418 -0
  355. package/umd/es6/debug/metrics/index.js +599 -0
  356. package/umd/es6/debug/metrics/with-schemas/index.js +599 -0
  357. package/umd/es6/debug/persisters/index.js +316 -0
  358. package/umd/es6/debug/persisters/persister-automerge/index.js +490 -0
  359. package/umd/es6/debug/persisters/persister-automerge/with-schemas/index.js +490 -0
  360. package/umd/es6/debug/persisters/persister-browser/index.js +400 -0
  361. package/umd/es6/debug/persisters/persister-browser/with-schemas/index.js +400 -0
  362. package/umd/es6/debug/persisters/persister-cr-sqlite-wasm/index.js +1295 -0
  363. package/umd/es6/debug/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1295 -0
  364. package/umd/es6/debug/persisters/persister-electric-sql/index.js +1303 -0
  365. package/umd/es6/debug/persisters/persister-electric-sql/with-schemas/index.js +1303 -0
  366. package/umd/es6/debug/persisters/persister-expo-sqlite/index.js +1295 -0
  367. package/umd/es6/debug/persisters/persister-expo-sqlite/with-schemas/index.js +1295 -0
  368. package/umd/es6/debug/persisters/persister-expo-sqlite-next/index.js +1299 -0
  369. package/umd/es6/debug/persisters/persister-expo-sqlite-next/with-schemas/index.js +1299 -0
  370. package/umd/es6/debug/persisters/persister-file/index.js +382 -0
  371. package/umd/es6/debug/persisters/persister-file/with-schemas/index.js +382 -0
  372. package/umd/es6/debug/persisters/persister-indexed-db/index.js +495 -0
  373. package/umd/es6/debug/persisters/persister-indexed-db/with-schemas/index.js +495 -0
  374. package/umd/es6/debug/persisters/persister-libsql/index.js +1296 -0
  375. package/umd/es6/debug/persisters/persister-libsql/with-schemas/index.js +1296 -0
  376. package/umd/es6/debug/persisters/persister-partykit-client/index.js +473 -0
  377. package/umd/es6/debug/persisters/persister-partykit-client/with-schemas/index.js +473 -0
  378. package/umd/es6/debug/persisters/persister-partykit-server/index.js +432 -0
  379. package/umd/es6/debug/persisters/persister-partykit-server/with-schemas/index.js +432 -0
  380. package/umd/es6/debug/persisters/persister-powersync/index.js +1355 -0
  381. package/umd/es6/debug/persisters/persister-powersync/with-schemas/index.js +1355 -0
  382. package/umd/es6/debug/persisters/persister-remote/index.js +403 -0
  383. package/umd/es6/debug/persisters/persister-remote/with-schemas/index.js +403 -0
  384. package/umd/es6/debug/persisters/persister-sqlite-wasm/index.js +1329 -0
  385. package/umd/es6/debug/persisters/persister-sqlite-wasm/with-schemas/index.js +1329 -0
  386. package/umd/es6/debug/persisters/persister-sqlite3/index.js +1305 -0
  387. package/umd/es6/debug/persisters/persister-sqlite3/with-schemas/index.js +1305 -0
  388. package/umd/es6/debug/persisters/persister-yjs/index.js +550 -0
  389. package/umd/es6/debug/persisters/persister-yjs/with-schemas/index.js +550 -0
  390. package/umd/es6/debug/persisters/with-schemas/index.js +316 -0
  391. package/umd/es6/debug/queries/index.js +875 -0
  392. package/umd/es6/debug/queries/with-schemas/index.js +875 -0
  393. package/umd/es6/debug/relationships/index.js +613 -0
  394. package/umd/es6/debug/relationships/with-schemas/index.js +613 -0
  395. package/umd/es6/debug/store/index.js +1770 -0
  396. package/umd/es6/debug/store/with-schemas/index.js +1770 -0
  397. package/umd/es6/debug/synchronizers/index.js +616 -0
  398. package/umd/es6/debug/synchronizers/synchronizer-local/index.js +652 -0
  399. package/umd/es6/debug/synchronizers/synchronizer-local/with-schemas/index.js +652 -0
  400. package/umd/es6/debug/synchronizers/synchronizer-ws-client/index.js +705 -0
  401. package/umd/es6/debug/synchronizers/synchronizer-ws-client/with-schemas/index.js +705 -0
  402. package/umd/es6/debug/synchronizers/synchronizer-ws-server/index.js +314 -0
  403. package/umd/es6/debug/synchronizers/synchronizer-ws-server/with-schemas/index.js +314 -0
  404. package/umd/es6/debug/synchronizers/with-schemas/index.js +616 -0
  405. package/umd/es6/debug/tools/index.js +3481 -0
  406. package/umd/es6/debug/tools/with-schemas/index.js +3481 -0
  407. package/umd/es6/debug/ui-react/index.js +2248 -0
  408. package/umd/es6/debug/ui-react/with-schemas/index.js +2248 -0
  409. package/umd/es6/debug/ui-react-dom/index.js +921 -0
  410. package/umd/es6/debug/ui-react-dom/with-schemas/index.js +921 -0
  411. package/umd/es6/debug/ui-react-inspector/index.js +3735 -0
  412. package/umd/es6/debug/ui-react-inspector/with-schemas/index.js +3735 -0
  413. package/umd/es6/debug/with-schemas/index.js +4456 -0
  414. package/cjs/@types/_internal/queries/index.d.ts +0 -0
  415. package/cjs/@types/_internal/queries/with-schemas/index.d.ts +0 -22
  416. package/cjs/@types/_internal/store/index.d.ts +0 -3
  417. package/cjs/@types/_internal/store/with-schemas/index.d.ts +0 -106
  418. package/cjs/@types/_internal/ui-react/index.d.ts +0 -0
  419. package/cjs/@types/_internal/ui-react/with-schemas/index.d.ts +0 -813
  420. package/cjs/@types/checkpoints/index.d.ts +0 -1033
  421. package/cjs/@types/checkpoints/with-schemas/index.d.ts +0 -1125
  422. package/cjs/@types/common/index.d.ts +0 -117
  423. package/cjs/@types/common/with-schemas/index.d.ts +0 -117
  424. package/cjs/@types/index.d.ts +0 -18
  425. package/cjs/@types/indexes/index.d.ts +0 -1037
  426. package/cjs/@types/indexes/with-schemas/index.d.ts +0 -1183
  427. package/cjs/@types/mergeable-store/index.d.ts +0 -222
  428. package/cjs/@types/mergeable-store/with-schemas/index.d.ts +0 -509
  429. package/cjs/@types/metrics/index.d.ts +0 -895
  430. package/cjs/@types/metrics/with-schemas/index.d.ts +0 -982
  431. package/cjs/@types/persisters/index.d.ts +0 -1319
  432. package/cjs/@types/persisters/persister-automerge/index.d.ts +0 -162
  433. package/cjs/@types/persisters/persister-automerge/with-schemas/index.d.ts +0 -177
  434. package/cjs/@types/persisters/persister-browser/index.d.ts +0 -174
  435. package/cjs/@types/persisters/persister-browser/with-schemas/index.d.ts +0 -199
  436. package/cjs/@types/persisters/persister-cr-sqlite-wasm/index.d.ts +0 -157
  437. package/cjs/@types/persisters/persister-cr-sqlite-wasm/with-schemas/index.d.ts +0 -176
  438. package/cjs/@types/persisters/persister-electric-sql/index.d.ts +0 -183
  439. package/cjs/@types/persisters/persister-electric-sql/with-schemas/index.d.ts +0 -202
  440. package/cjs/@types/persisters/persister-expo-sqlite/index.d.ts +0 -186
  441. package/cjs/@types/persisters/persister-expo-sqlite/with-schemas/index.d.ts +0 -205
  442. package/cjs/@types/persisters/persister-expo-sqlite-next/index.d.ts +0 -187
  443. package/cjs/@types/persisters/persister-expo-sqlite-next/with-schemas/index.d.ts +0 -206
  444. package/cjs/@types/persisters/persister-file/index.d.ts +0 -88
  445. package/cjs/@types/persisters/persister-file/with-schemas/index.d.ts +0 -102
  446. package/cjs/@types/persisters/persister-indexed-db/index.d.ts +0 -116
  447. package/cjs/@types/persisters/persister-indexed-db/with-schemas/index.d.ts +0 -131
  448. package/cjs/@types/persisters/persister-libsql/index.d.ts +0 -154
  449. package/cjs/@types/persisters/persister-libsql/with-schemas/index.d.ts +0 -173
  450. package/cjs/@types/persisters/persister-partykit-client/index.d.ts +0 -185
  451. package/cjs/@types/persisters/persister-partykit-client/with-schemas/index.d.ts +0 -200
  452. package/cjs/@types/persisters/persister-partykit-server/index.d.ts +0 -631
  453. package/cjs/@types/persisters/persister-partykit-server/with-schemas/index.d.ts +0 -673
  454. package/cjs/@types/persisters/persister-powersync/index.d.ts +0 -169
  455. package/cjs/@types/persisters/persister-powersync/with-schemas/index.d.ts +0 -188
  456. package/cjs/@types/persisters/persister-remote/index.d.ts +0 -113
  457. package/cjs/@types/persisters/persister-remote/with-schemas/index.d.ts +0 -129
  458. package/cjs/@types/persisters/persister-sqlite-wasm/index.d.ts +0 -170
  459. package/cjs/@types/persisters/persister-sqlite-wasm/with-schemas/index.d.ts +0 -190
  460. package/cjs/@types/persisters/persister-sqlite3/index.d.ts +0 -171
  461. package/cjs/@types/persisters/persister-sqlite3/with-schemas/index.d.ts +0 -190
  462. package/cjs/@types/persisters/persister-yjs/index.d.ts +0 -157
  463. package/cjs/@types/persisters/persister-yjs/with-schemas/index.d.ts +0 -172
  464. package/cjs/@types/persisters/with-schemas/index.d.ts +0 -1393
  465. package/cjs/@types/queries/index.d.ts +0 -3640
  466. package/cjs/@types/queries/with-schemas/index.d.ts +0 -3961
  467. package/cjs/@types/relationships/index.d.ts +0 -1266
  468. package/cjs/@types/relationships/with-schemas/index.d.ts +0 -1420
  469. package/cjs/@types/store/index.d.ts +0 -7453
  470. package/cjs/@types/store/with-schemas/index.d.ts +0 -9131
  471. package/cjs/@types/synchronizers/index.d.ts +0 -139
  472. package/cjs/@types/synchronizers/synchronizer-local/index.d.ts +0 -27
  473. package/cjs/@types/synchronizers/synchronizer-local/with-schemas/index.d.ts +0 -29
  474. package/cjs/@types/synchronizers/synchronizer-ws-client/index.d.ts +0 -36
  475. package/cjs/@types/synchronizers/synchronizer-ws-client/with-schemas/index.d.ts +0 -42
  476. package/cjs/@types/synchronizers/synchronizer-ws-server/index.d.ts +0 -58
  477. package/cjs/@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.ts +0 -58
  478. package/cjs/@types/synchronizers/with-schemas/index.d.ts +0 -156
  479. package/cjs/@types/tools/index.d.ts +0 -556
  480. package/cjs/@types/tools/with-schemas/index.d.ts +0 -567
  481. package/cjs/@types/ui-react/index.d.ts +0 -15318
  482. package/cjs/@types/ui-react/with-schemas/index.d.ts +0 -16235
  483. package/cjs/@types/ui-react-dom/index.d.ts +0 -1751
  484. package/cjs/@types/ui-react-dom/with-schemas/index.d.ts +0 -1883
  485. package/cjs/@types/ui-react-inspector/index.d.ts +0 -77
  486. package/cjs/@types/ui-react-inspector/with-schemas/index.d.ts +0 -1871
  487. package/cjs/@types/with-schemas/index.d.ts +0 -18
  488. package/cjs-es6/@types/_internal/queries/with-schemas/index.d.ts +0 -22
  489. package/cjs-es6/@types/_internal/store/index.d.ts +0 -3
  490. package/cjs-es6/@types/_internal/store/with-schemas/index.d.ts +0 -106
  491. package/cjs-es6/@types/_internal/ui-react/with-schemas/index.d.ts +0 -813
  492. package/cjs-es6/@types/checkpoints/index.d.ts +0 -1033
  493. package/cjs-es6/@types/checkpoints/with-schemas/index.d.ts +0 -1125
  494. package/cjs-es6/@types/index.d.ts +0 -18
  495. package/cjs-es6/@types/indexes/index.d.ts +0 -1037
  496. package/cjs-es6/@types/indexes/with-schemas/index.d.ts +0 -1183
  497. package/cjs-es6/@types/mergeable-store/index.d.ts +0 -222
  498. package/cjs-es6/@types/mergeable-store/with-schemas/index.d.ts +0 -509
  499. package/cjs-es6/@types/metrics/index.d.ts +0 -895
  500. package/cjs-es6/@types/metrics/with-schemas/index.d.ts +0 -982
  501. package/cjs-es6/@types/persisters/index.d.ts +0 -1319
  502. package/cjs-es6/@types/persisters/persister-automerge/index.d.ts +0 -162
  503. package/cjs-es6/@types/persisters/persister-automerge/with-schemas/index.d.ts +0 -177
  504. package/cjs-es6/@types/persisters/persister-browser/index.d.ts +0 -174
  505. package/cjs-es6/@types/persisters/persister-browser/with-schemas/index.d.ts +0 -199
  506. package/cjs-es6/@types/persisters/persister-cr-sqlite-wasm/index.d.ts +0 -157
  507. package/cjs-es6/@types/persisters/persister-cr-sqlite-wasm/with-schemas/index.d.ts +0 -176
  508. package/cjs-es6/@types/persisters/persister-electric-sql/index.d.ts +0 -183
  509. package/cjs-es6/@types/persisters/persister-electric-sql/with-schemas/index.d.ts +0 -202
  510. package/cjs-es6/@types/persisters/persister-expo-sqlite/index.d.ts +0 -186
  511. package/cjs-es6/@types/persisters/persister-expo-sqlite/with-schemas/index.d.ts +0 -205
  512. package/cjs-es6/@types/persisters/persister-expo-sqlite-next/index.d.ts +0 -187
  513. package/cjs-es6/@types/persisters/persister-expo-sqlite-next/with-schemas/index.d.ts +0 -206
  514. package/cjs-es6/@types/persisters/persister-file/index.d.ts +0 -88
  515. package/cjs-es6/@types/persisters/persister-file/with-schemas/index.d.ts +0 -102
  516. package/cjs-es6/@types/persisters/persister-indexed-db/index.d.ts +0 -116
  517. package/cjs-es6/@types/persisters/persister-indexed-db/with-schemas/index.d.ts +0 -131
  518. package/cjs-es6/@types/persisters/persister-libsql/index.d.ts +0 -154
  519. package/cjs-es6/@types/persisters/persister-libsql/with-schemas/index.d.ts +0 -173
  520. package/cjs-es6/@types/persisters/persister-partykit-client/index.d.ts +0 -185
  521. package/cjs-es6/@types/persisters/persister-partykit-client/with-schemas/index.d.ts +0 -200
  522. package/cjs-es6/@types/persisters/persister-partykit-server/index.d.ts +0 -631
  523. package/cjs-es6/@types/persisters/persister-partykit-server/with-schemas/index.d.ts +0 -673
  524. package/cjs-es6/@types/persisters/persister-powersync/index.d.ts +0 -169
  525. package/cjs-es6/@types/persisters/persister-powersync/with-schemas/index.d.ts +0 -188
  526. package/cjs-es6/@types/persisters/persister-remote/index.d.ts +0 -113
  527. package/cjs-es6/@types/persisters/persister-remote/with-schemas/index.d.ts +0 -129
  528. package/cjs-es6/@types/persisters/persister-sqlite-wasm/index.d.ts +0 -170
  529. package/cjs-es6/@types/persisters/persister-sqlite-wasm/with-schemas/index.d.ts +0 -190
  530. package/cjs-es6/@types/persisters/persister-sqlite3/index.d.ts +0 -171
  531. package/cjs-es6/@types/persisters/persister-sqlite3/with-schemas/index.d.ts +0 -190
  532. package/cjs-es6/@types/persisters/persister-yjs/index.d.ts +0 -157
  533. package/cjs-es6/@types/persisters/persister-yjs/with-schemas/index.d.ts +0 -172
  534. package/cjs-es6/@types/persisters/with-schemas/index.d.ts +0 -1393
  535. package/cjs-es6/@types/queries/index.d.ts +0 -3640
  536. package/cjs-es6/@types/queries/with-schemas/index.d.ts +0 -3961
  537. package/cjs-es6/@types/relationships/index.d.ts +0 -1266
  538. package/cjs-es6/@types/relationships/with-schemas/index.d.ts +0 -1420
  539. package/cjs-es6/@types/store/index.d.ts +0 -7453
  540. package/cjs-es6/@types/store/with-schemas/index.d.ts +0 -9131
  541. package/cjs-es6/@types/synchronizers/index.d.ts +0 -139
  542. package/cjs-es6/@types/synchronizers/synchronizer-local/index.d.ts +0 -27
  543. package/cjs-es6/@types/synchronizers/synchronizer-local/with-schemas/index.d.ts +0 -29
  544. package/cjs-es6/@types/synchronizers/synchronizer-ws-client/index.d.ts +0 -36
  545. package/cjs-es6/@types/synchronizers/synchronizer-ws-client/with-schemas/index.d.ts +0 -42
  546. package/cjs-es6/@types/synchronizers/synchronizer-ws-server/index.d.ts +0 -58
  547. package/cjs-es6/@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.ts +0 -58
  548. package/cjs-es6/@types/synchronizers/with-schemas/index.d.ts +0 -156
  549. package/cjs-es6/@types/tools/index.d.ts +0 -556
  550. package/cjs-es6/@types/tools/with-schemas/index.d.ts +0 -567
  551. package/cjs-es6/@types/ui-react/index.d.ts +0 -15318
  552. package/cjs-es6/@types/ui-react/with-schemas/index.d.ts +0 -16235
  553. package/cjs-es6/@types/ui-react-dom/index.d.ts +0 -1751
  554. package/cjs-es6/@types/ui-react-dom/with-schemas/index.d.ts +0 -1883
  555. package/cjs-es6/@types/ui-react-inspector/index.d.ts +0 -77
  556. package/cjs-es6/@types/ui-react-inspector/with-schemas/index.d.ts +0 -1871
  557. package/cjs-es6/@types/with-schemas/index.d.ts +0 -18
  558. package/es6/@types/_internal/queries/index.d.ts +0 -0
  559. package/es6/@types/_internal/queries/with-schemas/index.d.ts +0 -22
  560. package/es6/@types/_internal/store/index.d.ts +0 -3
  561. package/es6/@types/_internal/store/with-schemas/index.d.ts +0 -106
  562. package/es6/@types/_internal/ui-react/index.d.ts +0 -0
  563. package/es6/@types/_internal/ui-react/with-schemas/index.d.ts +0 -813
  564. package/es6/@types/checkpoints/index.d.ts +0 -1033
  565. package/es6/@types/checkpoints/with-schemas/index.d.ts +0 -1125
  566. package/es6/@types/common/index.d.ts +0 -117
  567. package/es6/@types/common/with-schemas/index.d.ts +0 -117
  568. package/es6/@types/index.d.ts +0 -18
  569. package/es6/@types/indexes/index.d.ts +0 -1037
  570. package/es6/@types/indexes/with-schemas/index.d.ts +0 -1183
  571. package/es6/@types/mergeable-store/index.d.ts +0 -222
  572. package/es6/@types/mergeable-store/with-schemas/index.d.ts +0 -509
  573. package/es6/@types/metrics/index.d.ts +0 -895
  574. package/es6/@types/metrics/with-schemas/index.d.ts +0 -982
  575. package/es6/@types/persisters/index.d.ts +0 -1319
  576. package/es6/@types/persisters/persister-automerge/index.d.ts +0 -162
  577. package/es6/@types/persisters/persister-automerge/with-schemas/index.d.ts +0 -177
  578. package/es6/@types/persisters/persister-browser/index.d.ts +0 -174
  579. package/es6/@types/persisters/persister-browser/with-schemas/index.d.ts +0 -199
  580. package/es6/@types/persisters/persister-cr-sqlite-wasm/index.d.ts +0 -157
  581. package/es6/@types/persisters/persister-cr-sqlite-wasm/with-schemas/index.d.ts +0 -176
  582. package/es6/@types/persisters/persister-electric-sql/index.d.ts +0 -183
  583. package/es6/@types/persisters/persister-electric-sql/with-schemas/index.d.ts +0 -202
  584. package/es6/@types/persisters/persister-expo-sqlite/index.d.ts +0 -186
  585. package/es6/@types/persisters/persister-expo-sqlite/with-schemas/index.d.ts +0 -205
  586. package/es6/@types/persisters/persister-expo-sqlite-next/index.d.ts +0 -187
  587. package/es6/@types/persisters/persister-expo-sqlite-next/with-schemas/index.d.ts +0 -206
  588. package/es6/@types/persisters/persister-file/index.d.ts +0 -88
  589. package/es6/@types/persisters/persister-file/with-schemas/index.d.ts +0 -102
  590. package/es6/@types/persisters/persister-indexed-db/index.d.ts +0 -116
  591. package/es6/@types/persisters/persister-indexed-db/with-schemas/index.d.ts +0 -131
  592. package/es6/@types/persisters/persister-libsql/index.d.ts +0 -154
  593. package/es6/@types/persisters/persister-libsql/with-schemas/index.d.ts +0 -173
  594. package/es6/@types/persisters/persister-partykit-client/index.d.ts +0 -185
  595. package/es6/@types/persisters/persister-partykit-client/with-schemas/index.d.ts +0 -200
  596. package/es6/@types/persisters/persister-partykit-server/index.d.ts +0 -631
  597. package/es6/@types/persisters/persister-partykit-server/with-schemas/index.d.ts +0 -673
  598. package/es6/@types/persisters/persister-powersync/index.d.ts +0 -169
  599. package/es6/@types/persisters/persister-powersync/with-schemas/index.d.ts +0 -188
  600. package/es6/@types/persisters/persister-remote/index.d.ts +0 -113
  601. package/es6/@types/persisters/persister-remote/with-schemas/index.d.ts +0 -129
  602. package/es6/@types/persisters/persister-sqlite-wasm/index.d.ts +0 -170
  603. package/es6/@types/persisters/persister-sqlite-wasm/with-schemas/index.d.ts +0 -190
  604. package/es6/@types/persisters/persister-sqlite3/index.d.ts +0 -171
  605. package/es6/@types/persisters/persister-sqlite3/with-schemas/index.d.ts +0 -190
  606. package/es6/@types/persisters/persister-yjs/index.d.ts +0 -157
  607. package/es6/@types/persisters/persister-yjs/with-schemas/index.d.ts +0 -172
  608. package/es6/@types/persisters/with-schemas/index.d.ts +0 -1393
  609. package/es6/@types/queries/index.d.ts +0 -3640
  610. package/es6/@types/queries/with-schemas/index.d.ts +0 -3961
  611. package/es6/@types/relationships/index.d.ts +0 -1266
  612. package/es6/@types/relationships/with-schemas/index.d.ts +0 -1420
  613. package/es6/@types/store/index.d.ts +0 -7453
  614. package/es6/@types/store/with-schemas/index.d.ts +0 -9131
  615. package/es6/@types/synchronizers/index.d.ts +0 -139
  616. package/es6/@types/synchronizers/synchronizer-local/index.d.ts +0 -27
  617. package/es6/@types/synchronizers/synchronizer-local/with-schemas/index.d.ts +0 -29
  618. package/es6/@types/synchronizers/synchronizer-ws-client/index.d.ts +0 -36
  619. package/es6/@types/synchronizers/synchronizer-ws-client/with-schemas/index.d.ts +0 -42
  620. package/es6/@types/synchronizers/synchronizer-ws-server/index.d.ts +0 -58
  621. package/es6/@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.ts +0 -58
  622. package/es6/@types/synchronizers/with-schemas/index.d.ts +0 -156
  623. package/es6/@types/tools/index.d.ts +0 -556
  624. package/es6/@types/tools/with-schemas/index.d.ts +0 -567
  625. package/es6/@types/ui-react/index.d.ts +0 -15318
  626. package/es6/@types/ui-react/with-schemas/index.d.ts +0 -16235
  627. package/es6/@types/ui-react-dom/index.d.ts +0 -1751
  628. package/es6/@types/ui-react-dom/with-schemas/index.d.ts +0 -1883
  629. package/es6/@types/ui-react-inspector/index.d.ts +0 -77
  630. package/es6/@types/ui-react-inspector/with-schemas/index.d.ts +0 -1871
  631. package/es6/@types/with-schemas/index.d.ts +0 -18
  632. package/umd/@types/_internal/queries/index.d.ts +0 -0
  633. package/umd/@types/_internal/queries/with-schemas/index.d.ts +0 -22
  634. package/umd/@types/_internal/store/index.d.ts +0 -3
  635. package/umd/@types/_internal/store/with-schemas/index.d.ts +0 -106
  636. package/umd/@types/_internal/ui-react/index.d.ts +0 -0
  637. package/umd/@types/_internal/ui-react/with-schemas/index.d.ts +0 -813
  638. package/umd/@types/checkpoints/index.d.ts +0 -1033
  639. package/umd/@types/checkpoints/with-schemas/index.d.ts +0 -1125
  640. package/umd/@types/common/index.d.ts +0 -117
  641. package/umd/@types/common/with-schemas/index.d.ts +0 -117
  642. package/umd/@types/index.d.ts +0 -18
  643. package/umd/@types/indexes/index.d.ts +0 -1037
  644. package/umd/@types/indexes/with-schemas/index.d.ts +0 -1183
  645. package/umd/@types/mergeable-store/index.d.ts +0 -222
  646. package/umd/@types/mergeable-store/with-schemas/index.d.ts +0 -509
  647. package/umd/@types/metrics/index.d.ts +0 -895
  648. package/umd/@types/metrics/with-schemas/index.d.ts +0 -982
  649. package/umd/@types/persisters/index.d.ts +0 -1319
  650. package/umd/@types/persisters/persister-automerge/index.d.ts +0 -162
  651. package/umd/@types/persisters/persister-automerge/with-schemas/index.d.ts +0 -177
  652. package/umd/@types/persisters/persister-browser/index.d.ts +0 -174
  653. package/umd/@types/persisters/persister-browser/with-schemas/index.d.ts +0 -199
  654. package/umd/@types/persisters/persister-cr-sqlite-wasm/index.d.ts +0 -157
  655. package/umd/@types/persisters/persister-cr-sqlite-wasm/with-schemas/index.d.ts +0 -176
  656. package/umd/@types/persisters/persister-electric-sql/index.d.ts +0 -183
  657. package/umd/@types/persisters/persister-electric-sql/with-schemas/index.d.ts +0 -202
  658. package/umd/@types/persisters/persister-expo-sqlite/index.d.ts +0 -186
  659. package/umd/@types/persisters/persister-expo-sqlite/with-schemas/index.d.ts +0 -205
  660. package/umd/@types/persisters/persister-expo-sqlite-next/index.d.ts +0 -187
  661. package/umd/@types/persisters/persister-expo-sqlite-next/with-schemas/index.d.ts +0 -206
  662. package/umd/@types/persisters/persister-file/index.d.ts +0 -88
  663. package/umd/@types/persisters/persister-file/with-schemas/index.d.ts +0 -102
  664. package/umd/@types/persisters/persister-indexed-db/index.d.ts +0 -116
  665. package/umd/@types/persisters/persister-indexed-db/with-schemas/index.d.ts +0 -131
  666. package/umd/@types/persisters/persister-libsql/index.d.ts +0 -154
  667. package/umd/@types/persisters/persister-libsql/with-schemas/index.d.ts +0 -173
  668. package/umd/@types/persisters/persister-partykit-client/index.d.ts +0 -185
  669. package/umd/@types/persisters/persister-partykit-client/with-schemas/index.d.ts +0 -200
  670. package/umd/@types/persisters/persister-partykit-server/index.d.ts +0 -631
  671. package/umd/@types/persisters/persister-partykit-server/with-schemas/index.d.ts +0 -673
  672. package/umd/@types/persisters/persister-powersync/index.d.ts +0 -169
  673. package/umd/@types/persisters/persister-powersync/with-schemas/index.d.ts +0 -188
  674. package/umd/@types/persisters/persister-remote/index.d.ts +0 -113
  675. package/umd/@types/persisters/persister-remote/with-schemas/index.d.ts +0 -129
  676. package/umd/@types/persisters/persister-sqlite-wasm/index.d.ts +0 -170
  677. package/umd/@types/persisters/persister-sqlite-wasm/with-schemas/index.d.ts +0 -190
  678. package/umd/@types/persisters/persister-sqlite3/index.d.ts +0 -171
  679. package/umd/@types/persisters/persister-sqlite3/with-schemas/index.d.ts +0 -190
  680. package/umd/@types/persisters/persister-yjs/index.d.ts +0 -157
  681. package/umd/@types/persisters/persister-yjs/with-schemas/index.d.ts +0 -172
  682. package/umd/@types/persisters/with-schemas/index.d.ts +0 -1393
  683. package/umd/@types/queries/index.d.ts +0 -3640
  684. package/umd/@types/queries/with-schemas/index.d.ts +0 -3961
  685. package/umd/@types/relationships/index.d.ts +0 -1266
  686. package/umd/@types/relationships/with-schemas/index.d.ts +0 -1420
  687. package/umd/@types/store/index.d.ts +0 -7453
  688. package/umd/@types/store/with-schemas/index.d.ts +0 -9131
  689. package/umd/@types/synchronizers/index.d.ts +0 -139
  690. package/umd/@types/synchronizers/synchronizer-local/index.d.ts +0 -27
  691. package/umd/@types/synchronizers/synchronizer-local/with-schemas/index.d.ts +0 -29
  692. package/umd/@types/synchronizers/synchronizer-ws-client/index.d.ts +0 -36
  693. package/umd/@types/synchronizers/synchronizer-ws-client/with-schemas/index.d.ts +0 -42
  694. package/umd/@types/synchronizers/synchronizer-ws-server/index.d.ts +0 -58
  695. package/umd/@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.ts +0 -58
  696. package/umd/@types/synchronizers/with-schemas/index.d.ts +0 -156
  697. package/umd/@types/tools/index.d.ts +0 -556
  698. package/umd/@types/tools/with-schemas/index.d.ts +0 -567
  699. package/umd/@types/ui-react/index.d.ts +0 -15318
  700. package/umd/@types/ui-react/with-schemas/index.d.ts +0 -16235
  701. package/umd/@types/ui-react-dom/index.d.ts +0 -1751
  702. package/umd/@types/ui-react-dom/with-schemas/index.d.ts +0 -1883
  703. package/umd/@types/ui-react-inspector/index.d.ts +0 -77
  704. package/umd/@types/ui-react-inspector/with-schemas/index.d.ts +0 -1871
  705. package/umd/@types/with-schemas/index.d.ts +0 -18
  706. package/umd-es6/@types/_internal/queries/index.d.ts +0 -0
  707. package/umd-es6/@types/_internal/queries/with-schemas/index.d.ts +0 -22
  708. package/umd-es6/@types/_internal/store/index.d.ts +0 -3
  709. package/umd-es6/@types/_internal/store/with-schemas/index.d.ts +0 -106
  710. package/umd-es6/@types/_internal/ui-react/index.d.ts +0 -0
  711. package/umd-es6/@types/_internal/ui-react/with-schemas/index.d.ts +0 -813
  712. package/umd-es6/@types/checkpoints/index.d.ts +0 -1033
  713. package/umd-es6/@types/checkpoints/with-schemas/index.d.ts +0 -1125
  714. package/umd-es6/@types/common/index.d.ts +0 -117
  715. package/umd-es6/@types/common/with-schemas/index.d.ts +0 -117
  716. package/umd-es6/@types/index.d.ts +0 -18
  717. package/umd-es6/@types/indexes/index.d.ts +0 -1037
  718. package/umd-es6/@types/indexes/with-schemas/index.d.ts +0 -1183
  719. package/umd-es6/@types/mergeable-store/index.d.ts +0 -222
  720. package/umd-es6/@types/mergeable-store/with-schemas/index.d.ts +0 -509
  721. package/umd-es6/@types/metrics/index.d.ts +0 -895
  722. package/umd-es6/@types/metrics/with-schemas/index.d.ts +0 -982
  723. package/umd-es6/@types/persisters/index.d.ts +0 -1319
  724. package/umd-es6/@types/persisters/persister-automerge/index.d.ts +0 -162
  725. package/umd-es6/@types/persisters/persister-automerge/with-schemas/index.d.ts +0 -177
  726. package/umd-es6/@types/persisters/persister-browser/index.d.ts +0 -174
  727. package/umd-es6/@types/persisters/persister-browser/with-schemas/index.d.ts +0 -199
  728. package/umd-es6/@types/persisters/persister-cr-sqlite-wasm/index.d.ts +0 -157
  729. package/umd-es6/@types/persisters/persister-cr-sqlite-wasm/with-schemas/index.d.ts +0 -176
  730. package/umd-es6/@types/persisters/persister-electric-sql/index.d.ts +0 -183
  731. package/umd-es6/@types/persisters/persister-electric-sql/with-schemas/index.d.ts +0 -202
  732. package/umd-es6/@types/persisters/persister-expo-sqlite/index.d.ts +0 -186
  733. package/umd-es6/@types/persisters/persister-expo-sqlite/with-schemas/index.d.ts +0 -205
  734. package/umd-es6/@types/persisters/persister-expo-sqlite-next/index.d.ts +0 -187
  735. package/umd-es6/@types/persisters/persister-expo-sqlite-next/with-schemas/index.d.ts +0 -206
  736. package/umd-es6/@types/persisters/persister-file/index.d.ts +0 -88
  737. package/umd-es6/@types/persisters/persister-file/with-schemas/index.d.ts +0 -102
  738. package/umd-es6/@types/persisters/persister-indexed-db/index.d.ts +0 -116
  739. package/umd-es6/@types/persisters/persister-indexed-db/with-schemas/index.d.ts +0 -131
  740. package/umd-es6/@types/persisters/persister-libsql/index.d.ts +0 -154
  741. package/umd-es6/@types/persisters/persister-libsql/with-schemas/index.d.ts +0 -173
  742. package/umd-es6/@types/persisters/persister-partykit-client/index.d.ts +0 -185
  743. package/umd-es6/@types/persisters/persister-partykit-client/with-schemas/index.d.ts +0 -200
  744. package/umd-es6/@types/persisters/persister-partykit-server/index.d.ts +0 -631
  745. package/umd-es6/@types/persisters/persister-partykit-server/with-schemas/index.d.ts +0 -673
  746. package/umd-es6/@types/persisters/persister-powersync/index.d.ts +0 -169
  747. package/umd-es6/@types/persisters/persister-powersync/with-schemas/index.d.ts +0 -188
  748. package/umd-es6/@types/persisters/persister-remote/index.d.ts +0 -113
  749. package/umd-es6/@types/persisters/persister-remote/with-schemas/index.d.ts +0 -129
  750. package/umd-es6/@types/persisters/persister-sqlite-wasm/index.d.ts +0 -170
  751. package/umd-es6/@types/persisters/persister-sqlite-wasm/with-schemas/index.d.ts +0 -190
  752. package/umd-es6/@types/persisters/persister-sqlite3/index.d.ts +0 -171
  753. package/umd-es6/@types/persisters/persister-sqlite3/with-schemas/index.d.ts +0 -190
  754. package/umd-es6/@types/persisters/persister-yjs/index.d.ts +0 -157
  755. package/umd-es6/@types/persisters/persister-yjs/with-schemas/index.d.ts +0 -172
  756. package/umd-es6/@types/persisters/with-schemas/index.d.ts +0 -1393
  757. package/umd-es6/@types/queries/index.d.ts +0 -3640
  758. package/umd-es6/@types/queries/with-schemas/index.d.ts +0 -3961
  759. package/umd-es6/@types/relationships/index.d.ts +0 -1266
  760. package/umd-es6/@types/relationships/with-schemas/index.d.ts +0 -1420
  761. package/umd-es6/@types/store/index.d.ts +0 -7453
  762. package/umd-es6/@types/store/with-schemas/index.d.ts +0 -9131
  763. package/umd-es6/@types/synchronizers/index.d.ts +0 -139
  764. package/umd-es6/@types/synchronizers/synchronizer-local/index.d.ts +0 -27
  765. package/umd-es6/@types/synchronizers/synchronizer-local/with-schemas/index.d.ts +0 -29
  766. package/umd-es6/@types/synchronizers/synchronizer-ws-client/index.d.ts +0 -36
  767. package/umd-es6/@types/synchronizers/synchronizer-ws-client/with-schemas/index.d.ts +0 -42
  768. package/umd-es6/@types/synchronizers/synchronizer-ws-server/index.d.ts +0 -58
  769. package/umd-es6/@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.ts +0 -58
  770. package/umd-es6/@types/synchronizers/with-schemas/index.d.ts +0 -156
  771. package/umd-es6/@types/tools/index.d.ts +0 -556
  772. package/umd-es6/@types/tools/with-schemas/index.d.ts +0 -567
  773. package/umd-es6/@types/ui-react/index.d.ts +0 -15318
  774. package/umd-es6/@types/ui-react/with-schemas/index.d.ts +0 -16235
  775. package/umd-es6/@types/ui-react-dom/index.d.ts +0 -1751
  776. package/umd-es6/@types/ui-react-dom/with-schemas/index.d.ts +0 -1883
  777. package/umd-es6/@types/ui-react-inspector/index.d.ts +0 -77
  778. package/umd-es6/@types/ui-react-inspector/with-schemas/index.d.ts +0 -1871
  779. package/umd-es6/@types/with-schemas/index.d.ts +0 -18
  780. /package/{cjs-es6/@types/_internal/queries/index.d.ts → @types/_internal/queries/index.d.cts} +0 -0
  781. /package/{cjs-es6/@types/_internal/ui-react/index.d.ts → @types/_internal/ui-react/index.d.cts} +0 -0
  782. /package/{cjs-es6/@types/common/index.d.ts → @types/common/index.d.cts} +0 -0
  783. /package/{cjs-es6/@types/common/with-schemas/index.d.ts → @types/common/with-schemas/index.d.cts} +0 -0
  784. /package/{cjs-es6 → cjs/es6}/checkpoints/index.cjs +0 -0
  785. /package/{cjs-es6 → cjs/es6}/checkpoints/index.cjs.gz +0 -0
  786. /package/{cjs-es6 → cjs/es6}/checkpoints/with-schemas/index.cjs +0 -0
  787. /package/{cjs-es6 → cjs/es6}/common/index.cjs +0 -0
  788. /package/{cjs-es6 → cjs/es6}/common/index.cjs.gz +0 -0
  789. /package/{cjs-es6 → cjs/es6}/common/with-schemas/index.cjs +0 -0
  790. /package/{cjs-es6 → cjs/es6}/index.cjs +0 -0
  791. /package/{cjs-es6 → cjs/es6}/index.cjs.gz +0 -0
  792. /package/{cjs-es6 → cjs/es6}/indexes/index.cjs +0 -0
  793. /package/{cjs-es6 → cjs/es6}/indexes/index.cjs.gz +0 -0
  794. /package/{cjs-es6 → cjs/es6}/indexes/with-schemas/index.cjs +0 -0
  795. /package/{cjs-es6 → cjs/es6}/mergeable-store/index.cjs +0 -0
  796. /package/{cjs-es6 → cjs/es6}/mergeable-store/index.cjs.gz +0 -0
  797. /package/{cjs-es6 → cjs/es6}/mergeable-store/with-schemas/index.cjs +0 -0
  798. /package/{cjs-es6 → cjs/es6}/metrics/index.cjs +0 -0
  799. /package/{cjs-es6 → cjs/es6}/metrics/index.cjs.gz +0 -0
  800. /package/{cjs-es6 → cjs/es6}/metrics/with-schemas/index.cjs +0 -0
  801. /package/{cjs-es6 → cjs/es6}/persisters/index.cjs +0 -0
  802. /package/{cjs-es6 → cjs/es6}/persisters/index.cjs.gz +0 -0
  803. /package/{cjs-es6 → cjs/es6}/persisters/persister-automerge/index.cjs +0 -0
  804. /package/{cjs-es6 → cjs/es6}/persisters/persister-automerge/index.cjs.gz +0 -0
  805. /package/{cjs-es6 → cjs/es6}/persisters/persister-automerge/with-schemas/index.cjs +0 -0
  806. /package/{cjs-es6 → cjs/es6}/persisters/persister-browser/index.cjs +0 -0
  807. /package/{cjs-es6 → cjs/es6}/persisters/persister-browser/index.cjs.gz +0 -0
  808. /package/{cjs-es6 → cjs/es6}/persisters/persister-browser/with-schemas/index.cjs +0 -0
  809. /package/{cjs-es6 → cjs/es6}/persisters/persister-cr-sqlite-wasm/index.cjs +0 -0
  810. /package/{cjs-es6 → cjs/es6}/persisters/persister-cr-sqlite-wasm/index.cjs.gz +0 -0
  811. /package/{cjs-es6 → cjs/es6}/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +0 -0
  812. /package/{cjs-es6 → cjs/es6}/persisters/persister-electric-sql/index.cjs +0 -0
  813. /package/{cjs-es6 → cjs/es6}/persisters/persister-electric-sql/index.cjs.gz +0 -0
  814. /package/{cjs-es6 → cjs/es6}/persisters/persister-electric-sql/with-schemas/index.cjs +0 -0
  815. /package/{cjs-es6 → cjs/es6}/persisters/persister-expo-sqlite/index.cjs +0 -0
  816. /package/{cjs-es6 → cjs/es6}/persisters/persister-expo-sqlite/index.cjs.gz +0 -0
  817. /package/{cjs-es6 → cjs/es6}/persisters/persister-expo-sqlite/with-schemas/index.cjs +0 -0
  818. /package/{cjs-es6 → cjs/es6}/persisters/persister-expo-sqlite-next/index.cjs +0 -0
  819. /package/{cjs-es6 → cjs/es6}/persisters/persister-expo-sqlite-next/index.cjs.gz +0 -0
  820. /package/{cjs-es6 → cjs/es6}/persisters/persister-expo-sqlite-next/with-schemas/index.cjs +0 -0
  821. /package/{cjs-es6 → cjs/es6}/persisters/persister-file/index.cjs +0 -0
  822. /package/{cjs-es6 → cjs/es6}/persisters/persister-file/index.cjs.gz +0 -0
  823. /package/{cjs-es6 → cjs/es6}/persisters/persister-file/with-schemas/index.cjs +0 -0
  824. /package/{cjs-es6 → cjs/es6}/persisters/persister-indexed-db/index.cjs +0 -0
  825. /package/{cjs-es6 → cjs/es6}/persisters/persister-indexed-db/index.cjs.gz +0 -0
  826. /package/{cjs-es6 → cjs/es6}/persisters/persister-indexed-db/with-schemas/index.cjs +0 -0
  827. /package/{cjs-es6 → cjs/es6}/persisters/persister-libsql/index.cjs +0 -0
  828. /package/{cjs-es6 → cjs/es6}/persisters/persister-libsql/index.cjs.gz +0 -0
  829. /package/{cjs-es6 → cjs/es6}/persisters/persister-libsql/with-schemas/index.cjs +0 -0
  830. /package/{cjs-es6 → cjs/es6}/persisters/persister-partykit-client/index.cjs +0 -0
  831. /package/{cjs-es6 → cjs/es6}/persisters/persister-partykit-client/index.cjs.gz +0 -0
  832. /package/{cjs-es6 → cjs/es6}/persisters/persister-partykit-client/with-schemas/index.cjs +0 -0
  833. /package/{cjs-es6 → cjs/es6}/persisters/persister-partykit-server/index.cjs +0 -0
  834. /package/{cjs-es6 → cjs/es6}/persisters/persister-partykit-server/index.cjs.gz +0 -0
  835. /package/{cjs-es6 → cjs/es6}/persisters/persister-partykit-server/with-schemas/index.cjs +0 -0
  836. /package/{cjs-es6 → cjs/es6}/persisters/persister-powersync/index.cjs +0 -0
  837. /package/{cjs-es6 → cjs/es6}/persisters/persister-powersync/index.cjs.gz +0 -0
  838. /package/{cjs-es6 → cjs/es6}/persisters/persister-powersync/with-schemas/index.cjs +0 -0
  839. /package/{cjs-es6 → cjs/es6}/persisters/persister-remote/index.cjs +0 -0
  840. /package/{cjs-es6 → cjs/es6}/persisters/persister-remote/index.cjs.gz +0 -0
  841. /package/{cjs-es6 → cjs/es6}/persisters/persister-remote/with-schemas/index.cjs +0 -0
  842. /package/{cjs-es6 → cjs/es6}/persisters/persister-sqlite-wasm/index.cjs +0 -0
  843. /package/{cjs-es6 → cjs/es6}/persisters/persister-sqlite-wasm/index.cjs.gz +0 -0
  844. /package/{cjs-es6 → cjs/es6}/persisters/persister-sqlite-wasm/with-schemas/index.cjs +0 -0
  845. /package/{cjs-es6 → cjs/es6}/persisters/persister-sqlite3/index.cjs +0 -0
  846. /package/{cjs-es6 → cjs/es6}/persisters/persister-sqlite3/index.cjs.gz +0 -0
  847. /package/{cjs-es6 → cjs/es6}/persisters/persister-sqlite3/with-schemas/index.cjs +0 -0
  848. /package/{cjs-es6 → cjs/es6}/persisters/persister-yjs/index.cjs +0 -0
  849. /package/{cjs-es6 → cjs/es6}/persisters/persister-yjs/index.cjs.gz +0 -0
  850. /package/{cjs-es6 → cjs/es6}/persisters/persister-yjs/with-schemas/index.cjs +0 -0
  851. /package/{cjs-es6 → cjs/es6}/persisters/with-schemas/index.cjs +0 -0
  852. /package/{cjs-es6 → cjs/es6}/queries/index.cjs +0 -0
  853. /package/{cjs-es6 → cjs/es6}/queries/index.cjs.gz +0 -0
  854. /package/{cjs-es6 → cjs/es6}/queries/with-schemas/index.cjs +0 -0
  855. /package/{cjs-es6 → cjs/es6}/relationships/index.cjs +0 -0
  856. /package/{cjs-es6 → cjs/es6}/relationships/index.cjs.gz +0 -0
  857. /package/{cjs-es6 → cjs/es6}/relationships/with-schemas/index.cjs +0 -0
  858. /package/{cjs-es6 → cjs/es6}/store/index.cjs +0 -0
  859. /package/{cjs-es6 → cjs/es6}/store/index.cjs.gz +0 -0
  860. /package/{cjs-es6 → cjs/es6}/store/with-schemas/index.cjs +0 -0
  861. /package/{cjs-es6 → cjs/es6}/synchronizers/index.cjs +0 -0
  862. /package/{cjs-es6 → cjs/es6}/synchronizers/index.cjs.gz +0 -0
  863. /package/{cjs-es6 → cjs/es6}/synchronizers/synchronizer-local/index.cjs +0 -0
  864. /package/{cjs-es6 → cjs/es6}/synchronizers/synchronizer-local/index.cjs.gz +0 -0
  865. /package/{cjs-es6 → cjs/es6}/synchronizers/synchronizer-local/with-schemas/index.cjs +0 -0
  866. /package/{cjs-es6 → cjs/es6}/synchronizers/synchronizer-ws-client/index.cjs +0 -0
  867. /package/{cjs-es6 → cjs/es6}/synchronizers/synchronizer-ws-client/index.cjs.gz +0 -0
  868. /package/{cjs-es6 → cjs/es6}/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +0 -0
  869. /package/{cjs-es6 → cjs/es6}/synchronizers/synchronizer-ws-server/index.cjs +0 -0
  870. /package/{cjs-es6 → cjs/es6}/synchronizers/synchronizer-ws-server/index.cjs.gz +0 -0
  871. /package/{cjs-es6 → cjs/es6}/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +0 -0
  872. /package/{cjs-es6 → cjs/es6}/synchronizers/with-schemas/index.cjs +0 -0
  873. /package/{cjs-es6 → cjs/es6}/tools/index.cjs +0 -0
  874. /package/{cjs-es6 → cjs/es6}/tools/index.cjs.gz +0 -0
  875. /package/{cjs-es6 → cjs/es6}/tools/with-schemas/index.cjs +0 -0
  876. /package/{cjs-es6 → cjs/es6}/ui-react/index.cjs +0 -0
  877. /package/{cjs-es6 → cjs/es6}/ui-react/index.cjs.gz +0 -0
  878. /package/{cjs-es6 → cjs/es6}/ui-react/with-schemas/index.cjs +0 -0
  879. /package/{cjs-es6 → cjs/es6}/ui-react-dom/index.cjs +0 -0
  880. /package/{cjs-es6 → cjs/es6}/ui-react-dom/index.cjs.gz +0 -0
  881. /package/{cjs-es6 → cjs/es6}/ui-react-dom/with-schemas/index.cjs +0 -0
  882. /package/{cjs-es6 → cjs/es6}/ui-react-inspector/index.cjs +0 -0
  883. /package/{cjs-es6 → cjs/es6}/ui-react-inspector/index.cjs.gz +0 -0
  884. /package/{cjs-es6 → cjs/es6}/ui-react-inspector/with-schemas/index.cjs +0 -0
  885. /package/{cjs-es6 → cjs/es6}/with-schemas/index.cjs +0 -0
  886. /package/{umd-es6 → umd/es6}/checkpoints/index.js +0 -0
  887. /package/{umd-es6 → umd/es6}/checkpoints/index.js.gz +0 -0
  888. /package/{umd-es6 → umd/es6}/checkpoints/with-schemas/index.js +0 -0
  889. /package/{umd-es6 → umd/es6}/common/index.js +0 -0
  890. /package/{umd-es6 → umd/es6}/common/index.js.gz +0 -0
  891. /package/{umd-es6 → umd/es6}/common/with-schemas/index.js +0 -0
  892. /package/{umd-es6 → umd/es6}/index.js +0 -0
  893. /package/{umd-es6 → umd/es6}/index.js.gz +0 -0
  894. /package/{umd-es6 → umd/es6}/indexes/index.js +0 -0
  895. /package/{umd-es6 → umd/es6}/indexes/index.js.gz +0 -0
  896. /package/{umd-es6 → umd/es6}/indexes/with-schemas/index.js +0 -0
  897. /package/{umd-es6 → umd/es6}/mergeable-store/index.js +0 -0
  898. /package/{umd-es6 → umd/es6}/mergeable-store/index.js.gz +0 -0
  899. /package/{umd-es6 → umd/es6}/mergeable-store/with-schemas/index.js +0 -0
  900. /package/{umd-es6 → umd/es6}/metrics/index.js +0 -0
  901. /package/{umd-es6 → umd/es6}/metrics/index.js.gz +0 -0
  902. /package/{umd-es6 → umd/es6}/metrics/with-schemas/index.js +0 -0
  903. /package/{umd-es6 → umd/es6}/persisters/index.js +0 -0
  904. /package/{umd-es6 → umd/es6}/persisters/index.js.gz +0 -0
  905. /package/{umd-es6 → umd/es6}/persisters/persister-automerge/index.js +0 -0
  906. /package/{umd-es6 → umd/es6}/persisters/persister-automerge/index.js.gz +0 -0
  907. /package/{umd-es6 → umd/es6}/persisters/persister-automerge/with-schemas/index.js +0 -0
  908. /package/{umd-es6 → umd/es6}/persisters/persister-browser/index.js +0 -0
  909. /package/{umd-es6 → umd/es6}/persisters/persister-browser/index.js.gz +0 -0
  910. /package/{umd-es6 → umd/es6}/persisters/persister-browser/with-schemas/index.js +0 -0
  911. /package/{umd-es6 → umd/es6}/persisters/persister-cr-sqlite-wasm/index.js +0 -0
  912. /package/{umd-es6 → umd/es6}/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  913. /package/{umd-es6 → umd/es6}/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +0 -0
  914. /package/{umd-es6 → umd/es6}/persisters/persister-electric-sql/index.js +0 -0
  915. /package/{umd-es6 → umd/es6}/persisters/persister-electric-sql/index.js.gz +0 -0
  916. /package/{umd-es6 → umd/es6}/persisters/persister-electric-sql/with-schemas/index.js +0 -0
  917. /package/{umd-es6 → umd/es6}/persisters/persister-expo-sqlite/index.js +0 -0
  918. /package/{umd-es6 → umd/es6}/persisters/persister-expo-sqlite/index.js.gz +0 -0
  919. /package/{umd-es6 → umd/es6}/persisters/persister-expo-sqlite/with-schemas/index.js +0 -0
  920. /package/{umd-es6 → umd/es6}/persisters/persister-expo-sqlite-next/index.js +0 -0
  921. /package/{umd-es6 → umd/es6}/persisters/persister-expo-sqlite-next/index.js.gz +0 -0
  922. /package/{umd-es6 → umd/es6}/persisters/persister-expo-sqlite-next/with-schemas/index.js +0 -0
  923. /package/{umd-es6 → umd/es6}/persisters/persister-file/index.js +0 -0
  924. /package/{umd-es6 → umd/es6}/persisters/persister-file/index.js.gz +0 -0
  925. /package/{umd-es6 → umd/es6}/persisters/persister-file/with-schemas/index.js +0 -0
  926. /package/{umd-es6 → umd/es6}/persisters/persister-indexed-db/index.js +0 -0
  927. /package/{umd-es6 → umd/es6}/persisters/persister-indexed-db/index.js.gz +0 -0
  928. /package/{umd-es6 → umd/es6}/persisters/persister-indexed-db/with-schemas/index.js +0 -0
  929. /package/{umd-es6 → umd/es6}/persisters/persister-libsql/index.js +0 -0
  930. /package/{umd-es6 → umd/es6}/persisters/persister-libsql/index.js.gz +0 -0
  931. /package/{umd-es6 → umd/es6}/persisters/persister-libsql/with-schemas/index.js +0 -0
  932. /package/{umd-es6 → umd/es6}/persisters/persister-partykit-client/index.js +0 -0
  933. /package/{umd-es6 → umd/es6}/persisters/persister-partykit-client/index.js.gz +0 -0
  934. /package/{umd-es6 → umd/es6}/persisters/persister-partykit-client/with-schemas/index.js +0 -0
  935. /package/{umd-es6 → umd/es6}/persisters/persister-partykit-server/index.js +0 -0
  936. /package/{umd-es6 → umd/es6}/persisters/persister-partykit-server/index.js.gz +0 -0
  937. /package/{umd-es6 → umd/es6}/persisters/persister-partykit-server/with-schemas/index.js +0 -0
  938. /package/{umd-es6 → umd/es6}/persisters/persister-powersync/index.js +0 -0
  939. /package/{umd-es6 → umd/es6}/persisters/persister-powersync/index.js.gz +0 -0
  940. /package/{umd-es6 → umd/es6}/persisters/persister-powersync/with-schemas/index.js +0 -0
  941. /package/{umd-es6 → umd/es6}/persisters/persister-remote/index.js +0 -0
  942. /package/{umd-es6 → umd/es6}/persisters/persister-remote/index.js.gz +0 -0
  943. /package/{umd-es6 → umd/es6}/persisters/persister-remote/with-schemas/index.js +0 -0
  944. /package/{umd-es6 → umd/es6}/persisters/persister-sqlite-wasm/index.js +0 -0
  945. /package/{umd-es6 → umd/es6}/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  946. /package/{umd-es6 → umd/es6}/persisters/persister-sqlite-wasm/with-schemas/index.js +0 -0
  947. /package/{umd-es6 → umd/es6}/persisters/persister-sqlite3/index.js +0 -0
  948. /package/{umd-es6 → umd/es6}/persisters/persister-sqlite3/index.js.gz +0 -0
  949. /package/{umd-es6 → umd/es6}/persisters/persister-sqlite3/with-schemas/index.js +0 -0
  950. /package/{umd-es6 → umd/es6}/persisters/persister-yjs/index.js +0 -0
  951. /package/{umd-es6 → umd/es6}/persisters/persister-yjs/index.js.gz +0 -0
  952. /package/{umd-es6 → umd/es6}/persisters/persister-yjs/with-schemas/index.js +0 -0
  953. /package/{umd-es6 → umd/es6}/persisters/with-schemas/index.js +0 -0
  954. /package/{umd-es6 → umd/es6}/queries/index.js +0 -0
  955. /package/{umd-es6 → umd/es6}/queries/index.js.gz +0 -0
  956. /package/{umd-es6 → umd/es6}/queries/with-schemas/index.js +0 -0
  957. /package/{umd-es6 → umd/es6}/relationships/index.js +0 -0
  958. /package/{umd-es6 → umd/es6}/relationships/index.js.gz +0 -0
  959. /package/{umd-es6 → umd/es6}/relationships/with-schemas/index.js +0 -0
  960. /package/{umd-es6 → umd/es6}/store/index.js +0 -0
  961. /package/{umd-es6 → umd/es6}/store/index.js.gz +0 -0
  962. /package/{umd-es6 → umd/es6}/store/with-schemas/index.js +0 -0
  963. /package/{umd-es6 → umd/es6}/synchronizers/index.js +0 -0
  964. /package/{umd-es6 → umd/es6}/synchronizers/index.js.gz +0 -0
  965. /package/{umd-es6 → umd/es6}/synchronizers/synchronizer-local/index.js +0 -0
  966. /package/{umd-es6 → umd/es6}/synchronizers/synchronizer-local/index.js.gz +0 -0
  967. /package/{umd-es6 → umd/es6}/synchronizers/synchronizer-local/with-schemas/index.js +0 -0
  968. /package/{umd-es6 → umd/es6}/synchronizers/synchronizer-ws-client/index.js +0 -0
  969. /package/{umd-es6 → umd/es6}/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
  970. /package/{umd-es6 → umd/es6}/synchronizers/synchronizer-ws-client/with-schemas/index.js +0 -0
  971. /package/{umd-es6 → umd/es6}/synchronizers/synchronizer-ws-server/index.js +0 -0
  972. /package/{umd-es6 → umd/es6}/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  973. /package/{umd-es6 → umd/es6}/synchronizers/synchronizer-ws-server/with-schemas/index.js +0 -0
  974. /package/{umd-es6 → umd/es6}/synchronizers/with-schemas/index.js +0 -0
  975. /package/{umd-es6 → umd/es6}/tools/index.js +0 -0
  976. /package/{umd-es6 → umd/es6}/tools/index.js.gz +0 -0
  977. /package/{umd-es6 → umd/es6}/tools/with-schemas/index.js +0 -0
  978. /package/{umd-es6 → umd/es6}/ui-react/index.js +0 -0
  979. /package/{umd-es6 → umd/es6}/ui-react/index.js.gz +0 -0
  980. /package/{umd-es6 → umd/es6}/ui-react/with-schemas/index.js +0 -0
  981. /package/{umd-es6 → umd/es6}/ui-react-dom/index.js +0 -0
  982. /package/{umd-es6 → umd/es6}/ui-react-dom/index.js.gz +0 -0
  983. /package/{umd-es6 → umd/es6}/ui-react-dom/with-schemas/index.js +0 -0
  984. /package/{umd-es6 → umd/es6}/ui-react-inspector/index.js +0 -0
  985. /package/{umd-es6 → umd/es6}/ui-react-inspector/index.js.gz +0 -0
  986. /package/{umd-es6 → umd/es6}/ui-react-inspector/with-schemas/index.js +0 -0
  987. /package/{umd-es6 → umd/es6}/with-schemas/index.js +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
+ };