tinybase 4.8.14 → 4.8.16

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 (356) hide show
  1. package/package.json +21 -22
  2. package/readme.md +1 -1
  3. package/lib/checkpoints.js +0 -1
  4. package/lib/checkpoints.js.gz +0 -0
  5. package/lib/cjs/checkpoints.cjs +0 -1
  6. package/lib/cjs/checkpoints.cjs.gz +0 -0
  7. package/lib/cjs/common.cjs +0 -1
  8. package/lib/cjs/common.cjs.gz +0 -0
  9. package/lib/cjs/indexes.cjs +0 -1
  10. package/lib/cjs/indexes.cjs.gz +0 -0
  11. package/lib/cjs/metrics.cjs +0 -1
  12. package/lib/cjs/metrics.cjs.gz +0 -0
  13. package/lib/cjs/persisters/persister-automerge.cjs +0 -1
  14. package/lib/cjs/persisters/persister-automerge.cjs.gz +0 -0
  15. package/lib/cjs/persisters/persister-browser.cjs +0 -1
  16. package/lib/cjs/persisters/persister-browser.cjs.gz +0 -0
  17. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs +0 -1
  18. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  19. package/lib/cjs/persisters/persister-electric-sql.cjs +0 -1
  20. package/lib/cjs/persisters/persister-electric-sql.cjs.gz +0 -0
  21. package/lib/cjs/persisters/persister-expo-sqlite-next.cjs +0 -1
  22. package/lib/cjs/persisters/persister-expo-sqlite-next.cjs.gz +0 -0
  23. package/lib/cjs/persisters/persister-expo-sqlite.cjs +0 -1
  24. package/lib/cjs/persisters/persister-expo-sqlite.cjs.gz +0 -0
  25. package/lib/cjs/persisters/persister-file.cjs +0 -1
  26. package/lib/cjs/persisters/persister-file.cjs.gz +0 -0
  27. package/lib/cjs/persisters/persister-indexed-db.cjs +0 -1
  28. package/lib/cjs/persisters/persister-indexed-db.cjs.gz +0 -0
  29. package/lib/cjs/persisters/persister-libsql.cjs +0 -1
  30. package/lib/cjs/persisters/persister-libsql.cjs.gz +0 -0
  31. package/lib/cjs/persisters/persister-partykit-client.cjs +0 -1
  32. package/lib/cjs/persisters/persister-partykit-client.cjs.gz +0 -0
  33. package/lib/cjs/persisters/persister-partykit-server.cjs +0 -1
  34. package/lib/cjs/persisters/persister-partykit-server.cjs.gz +0 -0
  35. package/lib/cjs/persisters/persister-powersync.cjs +0 -1
  36. package/lib/cjs/persisters/persister-powersync.cjs.gz +0 -0
  37. package/lib/cjs/persisters/persister-remote.cjs +0 -1
  38. package/lib/cjs/persisters/persister-remote.cjs.gz +0 -0
  39. package/lib/cjs/persisters/persister-sqlite-wasm.cjs +0 -1
  40. package/lib/cjs/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  41. package/lib/cjs/persisters/persister-sqlite3.cjs +0 -1
  42. package/lib/cjs/persisters/persister-sqlite3.cjs.gz +0 -0
  43. package/lib/cjs/persisters/persister-yjs.cjs +0 -1
  44. package/lib/cjs/persisters/persister-yjs.cjs.gz +0 -0
  45. package/lib/cjs/persisters.cjs +0 -1
  46. package/lib/cjs/persisters.cjs.gz +0 -0
  47. package/lib/cjs/queries.cjs +0 -1
  48. package/lib/cjs/queries.cjs.gz +0 -0
  49. package/lib/cjs/relationships.cjs +0 -1
  50. package/lib/cjs/relationships.cjs.gz +0 -0
  51. package/lib/cjs/store.cjs +0 -1
  52. package/lib/cjs/store.cjs.gz +0 -0
  53. package/lib/cjs/tinybase.cjs +0 -1
  54. package/lib/cjs/tinybase.cjs.gz +0 -0
  55. package/lib/cjs/tools.cjs +0 -1
  56. package/lib/cjs/tools.cjs.gz +0 -0
  57. package/lib/cjs/ui-react-dom-debug.cjs +0 -1
  58. package/lib/cjs/ui-react-dom-debug.cjs.gz +0 -0
  59. package/lib/cjs/ui-react-dom.cjs +0 -1
  60. package/lib/cjs/ui-react-dom.cjs.gz +0 -0
  61. package/lib/cjs/ui-react.cjs +0 -1
  62. package/lib/cjs/ui-react.cjs.gz +0 -0
  63. package/lib/cjs-es6/checkpoints.cjs +0 -1
  64. package/lib/cjs-es6/checkpoints.cjs.gz +0 -0
  65. package/lib/cjs-es6/common.cjs +0 -1
  66. package/lib/cjs-es6/common.cjs.gz +0 -0
  67. package/lib/cjs-es6/indexes.cjs +0 -1
  68. package/lib/cjs-es6/indexes.cjs.gz +0 -0
  69. package/lib/cjs-es6/metrics.cjs +0 -1
  70. package/lib/cjs-es6/metrics.cjs.gz +0 -0
  71. package/lib/cjs-es6/persisters/persister-automerge.cjs +0 -1
  72. package/lib/cjs-es6/persisters/persister-automerge.cjs.gz +0 -0
  73. package/lib/cjs-es6/persisters/persister-browser.cjs +0 -1
  74. package/lib/cjs-es6/persisters/persister-browser.cjs.gz +0 -0
  75. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs +0 -1
  76. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  77. package/lib/cjs-es6/persisters/persister-electric-sql.cjs +0 -1
  78. package/lib/cjs-es6/persisters/persister-electric-sql.cjs.gz +0 -0
  79. package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs +0 -1
  80. package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs.gz +0 -0
  81. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs +0 -1
  82. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs.gz +0 -0
  83. package/lib/cjs-es6/persisters/persister-file.cjs +0 -1
  84. package/lib/cjs-es6/persisters/persister-file.cjs.gz +0 -0
  85. package/lib/cjs-es6/persisters/persister-indexed-db.cjs +0 -1
  86. package/lib/cjs-es6/persisters/persister-indexed-db.cjs.gz +0 -0
  87. package/lib/cjs-es6/persisters/persister-libsql.cjs +0 -1
  88. package/lib/cjs-es6/persisters/persister-libsql.cjs.gz +0 -0
  89. package/lib/cjs-es6/persisters/persister-partykit-client.cjs +0 -1
  90. package/lib/cjs-es6/persisters/persister-partykit-client.cjs.gz +0 -0
  91. package/lib/cjs-es6/persisters/persister-partykit-server.cjs +0 -1
  92. package/lib/cjs-es6/persisters/persister-partykit-server.cjs.gz +0 -0
  93. package/lib/cjs-es6/persisters/persister-powersync.cjs +0 -1
  94. package/lib/cjs-es6/persisters/persister-powersync.cjs.gz +0 -0
  95. package/lib/cjs-es6/persisters/persister-remote.cjs +0 -1
  96. package/lib/cjs-es6/persisters/persister-remote.cjs.gz +0 -0
  97. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs +0 -1
  98. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  99. package/lib/cjs-es6/persisters/persister-sqlite3.cjs +0 -1
  100. package/lib/cjs-es6/persisters/persister-sqlite3.cjs.gz +0 -0
  101. package/lib/cjs-es6/persisters/persister-yjs.cjs +0 -1
  102. package/lib/cjs-es6/persisters/persister-yjs.cjs.gz +0 -0
  103. package/lib/cjs-es6/persisters.cjs +0 -1
  104. package/lib/cjs-es6/persisters.cjs.gz +0 -0
  105. package/lib/cjs-es6/queries.cjs +0 -1
  106. package/lib/cjs-es6/queries.cjs.gz +0 -0
  107. package/lib/cjs-es6/relationships.cjs +0 -1
  108. package/lib/cjs-es6/relationships.cjs.gz +0 -0
  109. package/lib/cjs-es6/store.cjs +0 -1
  110. package/lib/cjs-es6/store.cjs.gz +0 -0
  111. package/lib/cjs-es6/tinybase.cjs +0 -1
  112. package/lib/cjs-es6/tinybase.cjs.gz +0 -0
  113. package/lib/cjs-es6/tools.cjs +0 -1
  114. package/lib/cjs-es6/tools.cjs.gz +0 -0
  115. package/lib/cjs-es6/ui-react-dom-debug.cjs +0 -1
  116. package/lib/cjs-es6/ui-react-dom-debug.cjs.gz +0 -0
  117. package/lib/cjs-es6/ui-react-dom.cjs +0 -1
  118. package/lib/cjs-es6/ui-react-dom.cjs.gz +0 -0
  119. package/lib/cjs-es6/ui-react.cjs +0 -1
  120. package/lib/cjs-es6/ui-react.cjs.gz +0 -0
  121. package/lib/common.js +0 -1
  122. package/lib/common.js.gz +0 -0
  123. package/lib/debug/checkpoints.js +0 -412
  124. package/lib/debug/common.js +0 -4
  125. package/lib/debug/indexes.js +0 -544
  126. package/lib/debug/metrics.js +0 -516
  127. package/lib/debug/persisters.js +0 -183
  128. package/lib/debug/queries.js +0 -807
  129. package/lib/debug/relationships.js +0 -526
  130. package/lib/debug/store.js +0 -1602
  131. package/lib/es6/checkpoints.js +0 -1
  132. package/lib/es6/checkpoints.js.gz +0 -0
  133. package/lib/es6/common.js +0 -1
  134. package/lib/es6/common.js.gz +0 -0
  135. package/lib/es6/indexes.js +0 -1
  136. package/lib/es6/indexes.js.gz +0 -0
  137. package/lib/es6/metrics.js +0 -1
  138. package/lib/es6/metrics.js.gz +0 -0
  139. package/lib/es6/persisters/persister-automerge.js +0 -1
  140. package/lib/es6/persisters/persister-automerge.js.gz +0 -0
  141. package/lib/es6/persisters/persister-browser.js +0 -1
  142. package/lib/es6/persisters/persister-browser.js.gz +0 -0
  143. package/lib/es6/persisters/persister-cr-sqlite-wasm.js +0 -1
  144. package/lib/es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  145. package/lib/es6/persisters/persister-electric-sql.js +0 -1
  146. package/lib/es6/persisters/persister-electric-sql.js.gz +0 -0
  147. package/lib/es6/persisters/persister-expo-sqlite-next.js +0 -1
  148. package/lib/es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
  149. package/lib/es6/persisters/persister-expo-sqlite.js +0 -1
  150. package/lib/es6/persisters/persister-expo-sqlite.js.gz +0 -0
  151. package/lib/es6/persisters/persister-file.js +0 -1
  152. package/lib/es6/persisters/persister-file.js.gz +0 -0
  153. package/lib/es6/persisters/persister-indexed-db.js +0 -1
  154. package/lib/es6/persisters/persister-indexed-db.js.gz +0 -0
  155. package/lib/es6/persisters/persister-libsql.js +0 -1
  156. package/lib/es6/persisters/persister-libsql.js.gz +0 -0
  157. package/lib/es6/persisters/persister-partykit-client.js +0 -1
  158. package/lib/es6/persisters/persister-partykit-client.js.gz +0 -0
  159. package/lib/es6/persisters/persister-partykit-server.js +0 -1
  160. package/lib/es6/persisters/persister-partykit-server.js.gz +0 -0
  161. package/lib/es6/persisters/persister-powersync.js +0 -1
  162. package/lib/es6/persisters/persister-powersync.js.gz +0 -0
  163. package/lib/es6/persisters/persister-remote.js +0 -1
  164. package/lib/es6/persisters/persister-remote.js.gz +0 -0
  165. package/lib/es6/persisters/persister-sqlite-wasm.js +0 -1
  166. package/lib/es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  167. package/lib/es6/persisters/persister-sqlite3.js +0 -1
  168. package/lib/es6/persisters/persister-sqlite3.js.gz +0 -0
  169. package/lib/es6/persisters/persister-yjs.js +0 -1
  170. package/lib/es6/persisters/persister-yjs.js.gz +0 -0
  171. package/lib/es6/persisters.js +0 -1
  172. package/lib/es6/persisters.js.gz +0 -0
  173. package/lib/es6/queries.js +0 -1
  174. package/lib/es6/queries.js.gz +0 -0
  175. package/lib/es6/relationships.js +0 -1
  176. package/lib/es6/relationships.js.gz +0 -0
  177. package/lib/es6/store.js +0 -1
  178. package/lib/es6/store.js.gz +0 -0
  179. package/lib/es6/tinybase.js +0 -1
  180. package/lib/es6/tinybase.js.gz +0 -0
  181. package/lib/es6/tools.js +0 -1
  182. package/lib/es6/tools.js.gz +0 -0
  183. package/lib/es6/ui-react-dom-debug.js +0 -1
  184. package/lib/es6/ui-react-dom-debug.js.gz +0 -0
  185. package/lib/es6/ui-react-dom.js +0 -1
  186. package/lib/es6/ui-react-dom.js.gz +0 -0
  187. package/lib/es6/ui-react.js +0 -1
  188. package/lib/es6/ui-react.js.gz +0 -0
  189. package/lib/indexes.js +0 -1
  190. package/lib/indexes.js.gz +0 -0
  191. package/lib/metrics.js +0 -1
  192. package/lib/metrics.js.gz +0 -0
  193. package/lib/persisters/persister-automerge.js +0 -1
  194. package/lib/persisters/persister-automerge.js.gz +0 -0
  195. package/lib/persisters/persister-browser.js +0 -1
  196. package/lib/persisters/persister-browser.js.gz +0 -0
  197. package/lib/persisters/persister-cr-sqlite-wasm.js +0 -1
  198. package/lib/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  199. package/lib/persisters/persister-electric-sql.js +0 -1
  200. package/lib/persisters/persister-electric-sql.js.gz +0 -0
  201. package/lib/persisters/persister-expo-sqlite-next.js +0 -1
  202. package/lib/persisters/persister-expo-sqlite-next.js.gz +0 -0
  203. package/lib/persisters/persister-expo-sqlite.js +0 -1
  204. package/lib/persisters/persister-expo-sqlite.js.gz +0 -0
  205. package/lib/persisters/persister-file.js +0 -1
  206. package/lib/persisters/persister-file.js.gz +0 -0
  207. package/lib/persisters/persister-indexed-db.js +0 -1
  208. package/lib/persisters/persister-indexed-db.js.gz +0 -0
  209. package/lib/persisters/persister-libsql.js +0 -1
  210. package/lib/persisters/persister-libsql.js.gz +0 -0
  211. package/lib/persisters/persister-partykit-client.js +0 -1
  212. package/lib/persisters/persister-partykit-client.js.gz +0 -0
  213. package/lib/persisters/persister-partykit-server.js +0 -1
  214. package/lib/persisters/persister-partykit-server.js.gz +0 -0
  215. package/lib/persisters/persister-powersync.js +0 -1
  216. package/lib/persisters/persister-powersync.js.gz +0 -0
  217. package/lib/persisters/persister-remote.js +0 -1
  218. package/lib/persisters/persister-remote.js.gz +0 -0
  219. package/lib/persisters/persister-sqlite-wasm.js +0 -1
  220. package/lib/persisters/persister-sqlite-wasm.js.gz +0 -0
  221. package/lib/persisters/persister-sqlite3.js +0 -1
  222. package/lib/persisters/persister-sqlite3.js.gz +0 -0
  223. package/lib/persisters/persister-yjs.js +0 -1
  224. package/lib/persisters/persister-yjs.js.gz +0 -0
  225. package/lib/persisters.js +0 -1
  226. package/lib/persisters.js.gz +0 -0
  227. package/lib/queries.js +0 -1
  228. package/lib/queries.js.gz +0 -0
  229. package/lib/relationships.js +0 -1
  230. package/lib/relationships.js.gz +0 -0
  231. package/lib/store.js +0 -1
  232. package/lib/store.js.gz +0 -0
  233. package/lib/tinybase.js +0 -1
  234. package/lib/tinybase.js.gz +0 -0
  235. package/lib/tools.js +0 -1
  236. package/lib/tools.js.gz +0 -0
  237. package/lib/ui-react-dom.js +0 -1
  238. package/lib/ui-react-dom.js.gz +0 -0
  239. package/lib/ui-react.js +0 -1
  240. package/lib/ui-react.js.gz +0 -0
  241. package/lib/umd/checkpoints.js +0 -1
  242. package/lib/umd/checkpoints.js.gz +0 -0
  243. package/lib/umd/common.js +0 -1
  244. package/lib/umd/common.js.gz +0 -0
  245. package/lib/umd/indexes.js +0 -1
  246. package/lib/umd/indexes.js.gz +0 -0
  247. package/lib/umd/metrics.js +0 -1
  248. package/lib/umd/metrics.js.gz +0 -0
  249. package/lib/umd/persisters/persister-automerge.js +0 -1
  250. package/lib/umd/persisters/persister-automerge.js.gz +0 -0
  251. package/lib/umd/persisters/persister-browser.js +0 -1
  252. package/lib/umd/persisters/persister-browser.js.gz +0 -0
  253. package/lib/umd/persisters/persister-cr-sqlite-wasm.js +0 -1
  254. package/lib/umd/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  255. package/lib/umd/persisters/persister-electric-sql.js +0 -1
  256. package/lib/umd/persisters/persister-electric-sql.js.gz +0 -0
  257. package/lib/umd/persisters/persister-expo-sqlite-next.js +0 -1
  258. package/lib/umd/persisters/persister-expo-sqlite-next.js.gz +0 -0
  259. package/lib/umd/persisters/persister-expo-sqlite.js +0 -1
  260. package/lib/umd/persisters/persister-expo-sqlite.js.gz +0 -0
  261. package/lib/umd/persisters/persister-file.js +0 -1
  262. package/lib/umd/persisters/persister-file.js.gz +0 -0
  263. package/lib/umd/persisters/persister-indexed-db.js +0 -1
  264. package/lib/umd/persisters/persister-indexed-db.js.gz +0 -0
  265. package/lib/umd/persisters/persister-libsql.js +0 -1
  266. package/lib/umd/persisters/persister-libsql.js.gz +0 -0
  267. package/lib/umd/persisters/persister-partykit-client.js +0 -1
  268. package/lib/umd/persisters/persister-partykit-client.js.gz +0 -0
  269. package/lib/umd/persisters/persister-partykit-server.js +0 -1
  270. package/lib/umd/persisters/persister-partykit-server.js.gz +0 -0
  271. package/lib/umd/persisters/persister-powersync.js +0 -1
  272. package/lib/umd/persisters/persister-powersync.js.gz +0 -0
  273. package/lib/umd/persisters/persister-remote.js +0 -1
  274. package/lib/umd/persisters/persister-remote.js.gz +0 -0
  275. package/lib/umd/persisters/persister-sqlite-wasm.js +0 -1
  276. package/lib/umd/persisters/persister-sqlite-wasm.js.gz +0 -0
  277. package/lib/umd/persisters/persister-sqlite3.js +0 -1
  278. package/lib/umd/persisters/persister-sqlite3.js.gz +0 -0
  279. package/lib/umd/persisters/persister-yjs.js +0 -1
  280. package/lib/umd/persisters/persister-yjs.js.gz +0 -0
  281. package/lib/umd/persisters.js +0 -1
  282. package/lib/umd/persisters.js.gz +0 -0
  283. package/lib/umd/queries.js +0 -1
  284. package/lib/umd/queries.js.gz +0 -0
  285. package/lib/umd/relationships.js +0 -1
  286. package/lib/umd/relationships.js.gz +0 -0
  287. package/lib/umd/store.js +0 -1
  288. package/lib/umd/store.js.gz +0 -0
  289. package/lib/umd/tinybase.js +0 -1
  290. package/lib/umd/tinybase.js.gz +0 -0
  291. package/lib/umd/tools.js +0 -1
  292. package/lib/umd/tools.js.gz +0 -0
  293. package/lib/umd/ui-react-dom-debug.js +0 -1
  294. package/lib/umd/ui-react-dom-debug.js.gz +0 -0
  295. package/lib/umd/ui-react-dom.js +0 -1
  296. package/lib/umd/ui-react-dom.js.gz +0 -0
  297. package/lib/umd/ui-react.js +0 -1
  298. package/lib/umd/ui-react.js.gz +0 -0
  299. package/lib/umd-es6/checkpoints.js +0 -1
  300. package/lib/umd-es6/checkpoints.js.gz +0 -0
  301. package/lib/umd-es6/common.js +0 -1
  302. package/lib/umd-es6/common.js.gz +0 -0
  303. package/lib/umd-es6/indexes.js +0 -1
  304. package/lib/umd-es6/indexes.js.gz +0 -0
  305. package/lib/umd-es6/metrics.js +0 -1
  306. package/lib/umd-es6/metrics.js.gz +0 -0
  307. package/lib/umd-es6/persisters/persister-automerge.js +0 -1
  308. package/lib/umd-es6/persisters/persister-automerge.js.gz +0 -0
  309. package/lib/umd-es6/persisters/persister-browser.js +0 -1
  310. package/lib/umd-es6/persisters/persister-browser.js.gz +0 -0
  311. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js +0 -1
  312. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  313. package/lib/umd-es6/persisters/persister-electric-sql.js +0 -1
  314. package/lib/umd-es6/persisters/persister-electric-sql.js.gz +0 -0
  315. package/lib/umd-es6/persisters/persister-expo-sqlite-next.js +0 -1
  316. package/lib/umd-es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
  317. package/lib/umd-es6/persisters/persister-expo-sqlite.js +0 -1
  318. package/lib/umd-es6/persisters/persister-expo-sqlite.js.gz +0 -0
  319. package/lib/umd-es6/persisters/persister-file.js +0 -1
  320. package/lib/umd-es6/persisters/persister-file.js.gz +0 -0
  321. package/lib/umd-es6/persisters/persister-indexed-db.js +0 -1
  322. package/lib/umd-es6/persisters/persister-indexed-db.js.gz +0 -0
  323. package/lib/umd-es6/persisters/persister-libsql.js +0 -1
  324. package/lib/umd-es6/persisters/persister-libsql.js.gz +0 -0
  325. package/lib/umd-es6/persisters/persister-partykit-client.js +0 -1
  326. package/lib/umd-es6/persisters/persister-partykit-client.js.gz +0 -0
  327. package/lib/umd-es6/persisters/persister-partykit-server.js +0 -1
  328. package/lib/umd-es6/persisters/persister-partykit-server.js.gz +0 -0
  329. package/lib/umd-es6/persisters/persister-powersync.js +0 -1
  330. package/lib/umd-es6/persisters/persister-powersync.js.gz +0 -0
  331. package/lib/umd-es6/persisters/persister-remote.js +0 -1
  332. package/lib/umd-es6/persisters/persister-remote.js.gz +0 -0
  333. package/lib/umd-es6/persisters/persister-sqlite-wasm.js +0 -1
  334. package/lib/umd-es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  335. package/lib/umd-es6/persisters/persister-sqlite3.js +0 -1
  336. package/lib/umd-es6/persisters/persister-sqlite3.js.gz +0 -0
  337. package/lib/umd-es6/persisters/persister-yjs.js +0 -1
  338. package/lib/umd-es6/persisters/persister-yjs.js.gz +0 -0
  339. package/lib/umd-es6/persisters.js +0 -1
  340. package/lib/umd-es6/persisters.js.gz +0 -0
  341. package/lib/umd-es6/queries.js +0 -1
  342. package/lib/umd-es6/queries.js.gz +0 -0
  343. package/lib/umd-es6/relationships.js +0 -1
  344. package/lib/umd-es6/relationships.js.gz +0 -0
  345. package/lib/umd-es6/store.js +0 -1
  346. package/lib/umd-es6/store.js.gz +0 -0
  347. package/lib/umd-es6/tinybase.js +0 -1
  348. package/lib/umd-es6/tinybase.js.gz +0 -0
  349. package/lib/umd-es6/tools.js +0 -1
  350. package/lib/umd-es6/tools.js.gz +0 -0
  351. package/lib/umd-es6/ui-react-dom-debug.js +0 -1
  352. package/lib/umd-es6/ui-react-dom-debug.js.gz +0 -0
  353. package/lib/umd-es6/ui-react-dom.js +0 -1
  354. package/lib/umd-es6/ui-react-dom.js.gz +0 -0
  355. package/lib/umd-es6/ui-react.js +0 -1
  356. package/lib/umd-es6/ui-react.js.gz +0 -0
@@ -1,807 +0,0 @@
1
- const getTypeOf = (thing) => typeof thing;
2
- const EMPTY_STRING = '';
3
- const STRING = getTypeOf(EMPTY_STRING);
4
- const BOOLEAN = getTypeOf(true);
5
- const NUMBER = getTypeOf(0);
6
- const FUNCTION = getTypeOf(getTypeOf);
7
- const SUM = 'sum';
8
- const AVG = 'avg';
9
- const MIN = 'min';
10
- const MAX = 'max';
11
- const LISTENER = 'Listener';
12
- const RESULT = 'Result';
13
- const GET = 'get';
14
- const ADD = 'add';
15
- const IDS = 'Ids';
16
- const TABLE = 'Table';
17
- const ROW = 'Row';
18
- const ROW_COUNT = ROW + 'Count';
19
- const ROW_IDS = ROW + IDS;
20
- const SORTED_ROW_IDS = 'Sorted' + ROW + IDS;
21
- const CELL = 'Cell';
22
- const CELL_IDS = CELL + IDS;
23
-
24
- const mathMax = Math.max;
25
- const mathMin = Math.min;
26
- const isFiniteNumber = isFinite;
27
- const isUndefined = (thing) => thing == void 0;
28
- const ifNotUndefined = (value, then, otherwise) =>
29
- isUndefined(value) ? otherwise?.() : then(value);
30
- const isTypeStringOrBoolean = (type) => type == STRING || type == BOOLEAN;
31
- const isFunction = (thing) => getTypeOf(thing) == FUNCTION;
32
- const isArray = (thing) => Array.isArray(thing);
33
- const slice = (arrayOrString, start, end) => arrayOrString.slice(start, end);
34
- const size = (arrayOrString) => arrayOrString.length;
35
- const getUndefined = () => void 0;
36
-
37
- const arrayEvery = (array, cb) => array.every(cb);
38
- const arrayIsEqual = (array1, array2) =>
39
- size(array1) === size(array2) &&
40
- arrayEvery(array1, (value1, index) => array2[index] === value1);
41
- const arrayForEach = (array, cb) => array.forEach(cb);
42
- const arrayMap = (array, cb) => array.map(cb);
43
- const arraySum = (array) => arrayReduce(array, (i, j) => i + j, 0);
44
- const arrayIsEmpty = (array) => size(array) == 0;
45
- const arrayReduce = (array, cb, initial) => array.reduce(cb, initial);
46
- const arrayPush = (array, ...values) => array.push(...values);
47
-
48
- const object = Object;
49
- const objFreeze = object.freeze;
50
- const objMap = (obj, cb) =>
51
- arrayMap(object.entries(obj), ([id, value]) => cb(value, id));
52
-
53
- const collSize = (coll) => coll?.size ?? 0;
54
- const collHas = (coll, keyOrValue) => coll?.has(keyOrValue) ?? false;
55
- const collIsEmpty = (coll) => isUndefined(coll) || collSize(coll) == 0;
56
- const collValues = (coll) => [...(coll?.values() ?? [])];
57
- const collClear = (coll) => coll.clear();
58
- const collForEach = (coll, cb) => coll?.forEach(cb);
59
- const collDel = (coll, keyOrValue) => coll?.delete(keyOrValue);
60
-
61
- const mapNew = (entries) => new Map(entries);
62
- const mapKeys = (map) => [...(map?.keys() ?? [])];
63
- const mapGet = (map, key) => map?.get(key);
64
- const mapForEach = (map, cb) =>
65
- collForEach(map, (value, key) => cb(key, value));
66
- const mapSet = (map, key, value) =>
67
- isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
68
- const mapEnsure = (map, key, getDefaultValue) => {
69
- if (!collHas(map, key)) {
70
- mapSet(map, key, getDefaultValue());
71
- }
72
- return mapGet(map, key);
73
- };
74
- const visitTree = (node, path, ensureLeaf, pruneLeaf, p = 0) =>
75
- ifNotUndefined(
76
- (ensureLeaf ? mapEnsure : mapGet)(
77
- node,
78
- path[p],
79
- p > size(path) - 2 ? ensureLeaf : mapNew,
80
- ),
81
- (nodeOrLeaf) => {
82
- if (p > size(path) - 2) {
83
- if (pruneLeaf?.(nodeOrLeaf)) {
84
- mapSet(node, path[p]);
85
- }
86
- return nodeOrLeaf;
87
- }
88
- const leaf = visitTree(nodeOrLeaf, path, ensureLeaf, pruneLeaf, p + 1);
89
- if (collIsEmpty(nodeOrLeaf)) {
90
- mapSet(node, path[p]);
91
- }
92
- return leaf;
93
- },
94
- );
95
-
96
- const setNew = (entryOrEntries) =>
97
- new Set(
98
- isArray(entryOrEntries) || isUndefined(entryOrEntries)
99
- ? entryOrEntries
100
- : [entryOrEntries],
101
- );
102
- const setAdd = (set, value) => set?.add(value);
103
-
104
- const numericAggregators = mapNew([
105
- [
106
- AVG,
107
- [
108
- (numbers, length) => arraySum(numbers) / length,
109
- (metric, add, length) => metric + (add - metric) / (length + 1),
110
- (metric, remove, length) => metric + (metric - remove) / (length - 1),
111
- (metric, add, remove, length) => metric + (add - remove) / length,
112
- ],
113
- ],
114
- [
115
- MAX,
116
- [
117
- (numbers) => mathMax(...numbers),
118
- (metric, add) => mathMax(add, metric),
119
- (metric, remove) => (remove == metric ? void 0 : metric),
120
- (metric, add, remove) =>
121
- remove == metric ? void 0 : mathMax(add, metric),
122
- ],
123
- ],
124
- [
125
- MIN,
126
- [
127
- (numbers) => mathMin(...numbers),
128
- (metric, add) => mathMin(add, metric),
129
- (metric, remove) => (remove == metric ? void 0 : metric),
130
- (metric, add, remove) =>
131
- remove == metric ? void 0 : mathMin(add, metric),
132
- ],
133
- ],
134
- [
135
- SUM,
136
- [
137
- (numbers) => arraySum(numbers),
138
- (metric, add) => metric + add,
139
- (metric, remove) => metric - remove,
140
- (metric, add, remove) => metric - remove + add,
141
- ],
142
- ],
143
- ]);
144
- const getAggregateValue = (
145
- aggregateValue,
146
- oldLength,
147
- newValues,
148
- changedValues,
149
- aggregators,
150
- force = false,
151
- ) => {
152
- if (collIsEmpty(newValues)) {
153
- return void 0;
154
- }
155
- const [aggregate, aggregateAdd, aggregateRemove, aggregateReplace] =
156
- aggregators;
157
- force ||= isUndefined(aggregateValue);
158
- collForEach(changedValues, ([oldValue, newValue]) => {
159
- if (!force) {
160
- aggregateValue = isUndefined(oldValue)
161
- ? aggregateAdd?.(aggregateValue, newValue, oldLength++)
162
- : isUndefined(newValue)
163
- ? aggregateRemove?.(aggregateValue, oldValue, oldLength--)
164
- : aggregateReplace?.(aggregateValue, newValue, oldValue, oldLength);
165
- force ||= isUndefined(aggregateValue);
166
- }
167
- });
168
- return force
169
- ? aggregate(collValues(newValues), collSize(newValues))
170
- : aggregateValue;
171
- };
172
-
173
- const getCellOrValueType = (cell) => {
174
- const type = getTypeOf(cell);
175
- return isTypeStringOrBoolean(type) || (type == NUMBER && isFiniteNumber(cell))
176
- ? type
177
- : void 0;
178
- };
179
- const setOrDelCell = (store, tableId, rowId, cellId, cell) =>
180
- isUndefined(cell)
181
- ? store.delCell(tableId, rowId, cellId, true)
182
- : store.setCell(tableId, rowId, cellId, cell);
183
-
184
- const getDefinableFunctions = (
185
- store,
186
- getDefaultThing,
187
- validateRowValue,
188
- addListener,
189
- callListeners,
190
- ) => {
191
- const hasRow = store.hasRow;
192
- const tableIds = mapNew();
193
- const things = mapNew();
194
- const thingIdListeners = mapNew();
195
- const allRowValues = mapNew();
196
- const allSortKeys = mapNew();
197
- const storeListenerIds = mapNew();
198
- const getStore = () => store;
199
- const getThingIds = () => mapKeys(tableIds);
200
- const forEachThing = (cb) => mapForEach(things, cb);
201
- const hasThing = (id) => collHas(things, id);
202
- const getTableId = (id) => mapGet(tableIds, id);
203
- const getThing = (id) => mapGet(things, id);
204
- const setThing = (id, thing) => mapSet(things, id, thing);
205
- const addStoreListeners = (id, andCall, ...listenerIds) => {
206
- const set = mapEnsure(storeListenerIds, id, setNew);
207
- arrayForEach(
208
- listenerIds,
209
- (listenerId) =>
210
- setAdd(set, listenerId) && andCall && store.callListener(listenerId),
211
- );
212
- return listenerIds;
213
- };
214
- const delStoreListeners = (id, ...listenerIds) =>
215
- ifNotUndefined(mapGet(storeListenerIds, id), (allListenerIds) => {
216
- arrayForEach(
217
- arrayIsEmpty(listenerIds) ? collValues(allListenerIds) : listenerIds,
218
- (listenerId) => {
219
- store.delListener(listenerId);
220
- collDel(allListenerIds, listenerId);
221
- },
222
- );
223
- if (collIsEmpty(allListenerIds)) {
224
- mapSet(storeListenerIds, id);
225
- }
226
- });
227
- const setDefinition = (id, tableId) => {
228
- mapSet(tableIds, id, tableId);
229
- if (!collHas(things, id)) {
230
- mapSet(things, id, getDefaultThing());
231
- mapSet(allRowValues, id, mapNew());
232
- mapSet(allSortKeys, id, mapNew());
233
- callListeners(thingIdListeners);
234
- }
235
- };
236
- const setDefinitionAndListen = (
237
- id,
238
- tableId,
239
- onChanged,
240
- getRowValue,
241
- getSortKey,
242
- ) => {
243
- setDefinition(id, tableId);
244
- const changedRowValues = mapNew();
245
- const changedSortKeys = mapNew();
246
- const rowValues = mapGet(allRowValues, id);
247
- const sortKeys = mapGet(allSortKeys, id);
248
- const processRow = (rowId) => {
249
- const getCell = (cellId) => store.getCell(tableId, rowId, cellId);
250
- const oldRowValue = mapGet(rowValues, rowId);
251
- const newRowValue = hasRow(tableId, rowId)
252
- ? validateRowValue(getRowValue(getCell, rowId))
253
- : void 0;
254
- if (
255
- !(
256
- oldRowValue === newRowValue ||
257
- (isArray(oldRowValue) &&
258
- isArray(newRowValue) &&
259
- arrayIsEqual(oldRowValue, newRowValue))
260
- )
261
- ) {
262
- mapSet(changedRowValues, rowId, [oldRowValue, newRowValue]);
263
- }
264
- if (!isUndefined(getSortKey)) {
265
- const oldSortKey = mapGet(sortKeys, rowId);
266
- const newSortKey = hasRow(tableId, rowId)
267
- ? getSortKey(getCell, rowId)
268
- : void 0;
269
- if (oldSortKey != newSortKey) {
270
- mapSet(changedSortKeys, rowId, newSortKey);
271
- }
272
- }
273
- };
274
- const processTable = (force) => {
275
- onChanged(
276
- () => {
277
- collForEach(changedRowValues, ([, newRowValue], rowId) =>
278
- mapSet(rowValues, rowId, newRowValue),
279
- );
280
- collForEach(changedSortKeys, (newSortKey, rowId) =>
281
- mapSet(sortKeys, rowId, newSortKey),
282
- );
283
- },
284
- changedRowValues,
285
- changedSortKeys,
286
- rowValues,
287
- sortKeys,
288
- force,
289
- );
290
- collClear(changedRowValues);
291
- collClear(changedSortKeys);
292
- };
293
- mapForEach(rowValues, processRow);
294
- if (store.hasTable(tableId)) {
295
- arrayForEach(store.getRowIds(tableId), (rowId) => {
296
- if (!collHas(rowValues, rowId)) {
297
- processRow(rowId);
298
- }
299
- });
300
- }
301
- processTable(true);
302
- delStoreListeners(id);
303
- addStoreListeners(
304
- id,
305
- 0,
306
- store.addRowListener(tableId, null, (_store, _tableId, rowId) =>
307
- processRow(rowId),
308
- ),
309
- store.addTableListener(tableId, () => processTable()),
310
- );
311
- };
312
- const delDefinition = (id) => {
313
- mapSet(tableIds, id);
314
- mapSet(things, id);
315
- mapSet(allRowValues, id);
316
- mapSet(allSortKeys, id);
317
- delStoreListeners(id);
318
- callListeners(thingIdListeners);
319
- };
320
- const addThingIdsListener = (listener) =>
321
- addListener(listener, thingIdListeners);
322
- const destroy = () => mapForEach(storeListenerIds, delDefinition);
323
- return [
324
- getStore,
325
- getThingIds,
326
- forEachThing,
327
- hasThing,
328
- getTableId,
329
- getThing,
330
- setThing,
331
- setDefinition,
332
- setDefinitionAndListen,
333
- delDefinition,
334
- addThingIdsListener,
335
- destroy,
336
- addStoreListeners,
337
- delStoreListeners,
338
- ];
339
- };
340
- const getCreateFunction = (getFunction) => {
341
- const getFunctionsByStore = /* @__PURE__ */ new WeakMap();
342
- return (store) => {
343
- if (!getFunctionsByStore.has(store)) {
344
- getFunctionsByStore.set(store, getFunction(store));
345
- }
346
- return getFunctionsByStore.get(store);
347
- };
348
- };
349
-
350
- const createQueries = getCreateFunction((store) => {
351
- const createStore = store.createStore;
352
- const preStore = createStore();
353
- const resultStore = createStore();
354
- const preStoreListenerIds = mapNew();
355
- const {
356
- addListener,
357
- callListeners,
358
- delListener: delListenerImpl,
359
- } = resultStore;
360
- const [
361
- getStore,
362
- getQueryIds,
363
- forEachQuery,
364
- hasQuery,
365
- getTableId,
366
- ,
367
- ,
368
- setDefinition,
369
- ,
370
- delDefinition,
371
- addQueryIdsListenerImpl,
372
- destroy,
373
- addStoreListeners,
374
- delStoreListeners,
375
- ] = getDefinableFunctions(
376
- store,
377
- () => true,
378
- getUndefined,
379
- addListener,
380
- callListeners,
381
- );
382
- const addPreStoreListener = (preStore2, queryId, ...listenerIds) =>
383
- arrayForEach(listenerIds, (listenerId) =>
384
- setAdd(
385
- mapEnsure(
386
- mapEnsure(preStoreListenerIds, queryId, mapNew),
387
- preStore2,
388
- setNew,
389
- ),
390
- listenerId,
391
- ),
392
- );
393
- const resetPreStores = (queryId) => {
394
- ifNotUndefined(
395
- mapGet(preStoreListenerIds, queryId),
396
- (queryPreStoreListenerIds) => {
397
- mapForEach(queryPreStoreListenerIds, (preStore2, listenerIds) =>
398
- collForEach(listenerIds, (listenerId) =>
399
- preStore2.delListener(listenerId),
400
- ),
401
- );
402
- collClear(queryPreStoreListenerIds);
403
- },
404
- );
405
- arrayForEach([resultStore, preStore], (store2) => store2.delTable(queryId));
406
- };
407
- const synchronizeTransactions = (queryId, fromStore, toStore) =>
408
- addPreStoreListener(
409
- fromStore,
410
- queryId,
411
- fromStore.addStartTransactionListener(toStore.startTransaction),
412
- fromStore.addDidFinishTransactionListener(() =>
413
- toStore.finishTransaction(),
414
- ),
415
- );
416
- const setQueryDefinition = (queryId, tableId, build) => {
417
- setDefinition(queryId, tableId);
418
- resetPreStores(queryId);
419
- const selectEntries = [];
420
- const joinEntries = [[null, [tableId, null, null, [], mapNew()]]];
421
- const wheres = [];
422
- const groupEntries = [];
423
- const havings = [];
424
- const select = (arg1, arg2) => {
425
- const selectEntry = isFunction(arg1)
426
- ? [size(selectEntries) + EMPTY_STRING, arg1]
427
- : [
428
- isUndefined(arg2) ? arg1 : arg2,
429
- (getTableCell) => getTableCell(arg1, arg2),
430
- ];
431
- arrayPush(selectEntries, selectEntry);
432
- return {as: (selectedCellId) => (selectEntry[0] = selectedCellId)};
433
- };
434
- const join = (joinedTableId, arg1, arg2) => {
435
- const fromIntermediateJoinedTableId =
436
- isUndefined(arg2) || isFunction(arg1) ? null : arg1;
437
- const onArg = isUndefined(fromIntermediateJoinedTableId) ? arg1 : arg2;
438
- const joinEntry = [
439
- joinedTableId,
440
- [
441
- joinedTableId,
442
- fromIntermediateJoinedTableId,
443
- isFunction(onArg) ? onArg : (getCell) => getCell(onArg),
444
- [],
445
- mapNew(),
446
- ],
447
- ];
448
- arrayPush(joinEntries, joinEntry);
449
- return {as: (joinedTableId2) => (joinEntry[0] = joinedTableId2)};
450
- };
451
- const where = (arg1, arg2, arg3) =>
452
- arrayPush(
453
- wheres,
454
- isFunction(arg1)
455
- ? arg1
456
- : isUndefined(arg3)
457
- ? (getTableCell) => getTableCell(arg1) === arg2
458
- : (getTableCell) => getTableCell(arg1, arg2) === arg3,
459
- );
460
- const group = (
461
- selectedCellId,
462
- aggregate,
463
- aggregateAdd,
464
- aggregateRemove,
465
- aggregateReplace,
466
- ) => {
467
- const groupEntry = [
468
- selectedCellId,
469
- [
470
- selectedCellId,
471
- isFunction(aggregate)
472
- ? [aggregate, aggregateAdd, aggregateRemove, aggregateReplace]
473
- : mapGet(numericAggregators, aggregate) ?? [
474
- (_cells, length) => length,
475
- ],
476
- ],
477
- ];
478
- arrayPush(groupEntries, groupEntry);
479
- return {as: (groupedCellId) => (groupEntry[0] = groupedCellId)};
480
- };
481
- const having = (arg1, arg2) =>
482
- arrayPush(
483
- havings,
484
- isFunction(arg1)
485
- ? arg1
486
- : (getSelectedOrGroupedCell) =>
487
- getSelectedOrGroupedCell(arg1) === arg2,
488
- );
489
- build({select, join, where, group, having});
490
- const selects = mapNew(selectEntries);
491
- if (collIsEmpty(selects)) {
492
- return queries;
493
- }
494
- const joins = mapNew(joinEntries);
495
- mapForEach(joins, (asTableId, [, fromAsTableId]) =>
496
- ifNotUndefined(mapGet(joins, fromAsTableId), ({3: toAsTableIds}) =>
497
- isUndefined(asTableId) ? 0 : arrayPush(toAsTableIds, asTableId),
498
- ),
499
- );
500
- const groups = mapNew(groupEntries);
501
- let selectJoinWhereStore = preStore;
502
- if (collIsEmpty(groups) && arrayIsEmpty(havings)) {
503
- selectJoinWhereStore = resultStore;
504
- } else {
505
- synchronizeTransactions(queryId, selectJoinWhereStore, resultStore);
506
- const groupedSelectedCellIds = mapNew();
507
- mapForEach(groups, (groupedCellId, [selectedCellId, aggregators]) =>
508
- setAdd(mapEnsure(groupedSelectedCellIds, selectedCellId, setNew), [
509
- groupedCellId,
510
- aggregators,
511
- ]),
512
- );
513
- const groupBySelectedCellIds = setNew();
514
- mapForEach(selects, (selectedCellId) =>
515
- collHas(groupedSelectedCellIds, selectedCellId)
516
- ? 0
517
- : setAdd(groupBySelectedCellIds, selectedCellId),
518
- );
519
- const tree = mapNew();
520
- const writeGroupRow = (
521
- leaf,
522
- changedGroupedSelectedCells,
523
- selectedRowId,
524
- forceRemove,
525
- ) =>
526
- ifNotUndefined(
527
- leaf,
528
- ([selectedCells, selectedRowIds, groupRowId, groupRow]) => {
529
- mapForEach(
530
- changedGroupedSelectedCells,
531
- (selectedCellId, [newCell]) => {
532
- const selectedCell = mapEnsure(
533
- selectedCells,
534
- selectedCellId,
535
- mapNew,
536
- );
537
- const oldLeafCell = mapGet(selectedCell, selectedRowId);
538
- const newLeafCell = forceRemove ? void 0 : newCell;
539
- if (oldLeafCell !== newLeafCell) {
540
- const oldNewSet = setNew([[oldLeafCell, newLeafCell]]);
541
- const oldLength = collSize(selectedCell);
542
- mapSet(selectedCell, selectedRowId, newLeafCell);
543
- collForEach(
544
- mapGet(groupedSelectedCellIds, selectedCellId),
545
- ([groupedCellId, aggregators]) => {
546
- const aggregateValue = getAggregateValue(
547
- groupRow[groupedCellId],
548
- oldLength,
549
- selectedCell,
550
- oldNewSet,
551
- aggregators,
552
- );
553
- groupRow[groupedCellId] = isUndefined(
554
- getCellOrValueType(aggregateValue),
555
- )
556
- ? null
557
- : aggregateValue;
558
- },
559
- );
560
- }
561
- },
562
- );
563
- if (
564
- collIsEmpty(selectedRowIds) ||
565
- !arrayEvery(havings, (having2) =>
566
- having2((cellId) => groupRow[cellId]),
567
- )
568
- ) {
569
- resultStore.delRow(queryId, groupRowId);
570
- } else if (isUndefined(groupRowId)) {
571
- leaf[2] = resultStore.addRow(queryId, groupRow);
572
- } else {
573
- resultStore.setRow(queryId, groupRowId, groupRow);
574
- }
575
- },
576
- );
577
- addPreStoreListener(
578
- selectJoinWhereStore,
579
- queryId,
580
- selectJoinWhereStore.addRowListener(
581
- queryId,
582
- null,
583
- (_store, _tableId, selectedRowId, getCellChange) => {
584
- const oldPath = [];
585
- const newPath = [];
586
- const changedGroupedSelectedCells = mapNew();
587
- const rowExists = selectJoinWhereStore.hasRow(
588
- queryId,
589
- selectedRowId,
590
- );
591
- let changedLeaf = !rowExists;
592
- collForEach(groupBySelectedCellIds, (selectedCellId) => {
593
- const [changed, oldCell, newCell] = getCellChange(
594
- queryId,
595
- selectedRowId,
596
- selectedCellId,
597
- );
598
- arrayPush(oldPath, oldCell);
599
- arrayPush(newPath, newCell);
600
- changedLeaf ||= changed;
601
- });
602
- mapForEach(groupedSelectedCellIds, (selectedCellId) => {
603
- const [changed, , newCell] = getCellChange(
604
- queryId,
605
- selectedRowId,
606
- selectedCellId,
607
- );
608
- if (changedLeaf || changed) {
609
- mapSet(changedGroupedSelectedCells, selectedCellId, [newCell]);
610
- }
611
- });
612
- if (changedLeaf) {
613
- writeGroupRow(
614
- visitTree(tree, oldPath, void 0, ([, selectedRowIds]) => {
615
- collDel(selectedRowIds, selectedRowId);
616
- return collIsEmpty(selectedRowIds);
617
- }),
618
- changedGroupedSelectedCells,
619
- selectedRowId,
620
- 1,
621
- );
622
- }
623
- if (rowExists) {
624
- writeGroupRow(
625
- visitTree(
626
- tree,
627
- newPath,
628
- () => {
629
- const groupRow = {};
630
- collForEach(
631
- groupBySelectedCellIds,
632
- (selectedCellId) =>
633
- (groupRow[selectedCellId] =
634
- selectJoinWhereStore.getCell(
635
- queryId,
636
- selectedRowId,
637
- selectedCellId,
638
- )),
639
- );
640
- return [mapNew(), setNew(), void 0, groupRow];
641
- },
642
- ([, selectedRowIds]) => {
643
- setAdd(selectedRowIds, selectedRowId);
644
- },
645
- ),
646
- changedGroupedSelectedCells,
647
- selectedRowId,
648
- );
649
- }
650
- },
651
- ),
652
- );
653
- }
654
- synchronizeTransactions(queryId, store, selectJoinWhereStore);
655
- const writeSelectRow = (rootRowId) => {
656
- const getTableCell = (arg1, arg2) =>
657
- store.getCell(
658
- ...(isUndefined(arg2)
659
- ? [tableId, rootRowId, arg1]
660
- : arg1 === tableId
661
- ? [tableId, rootRowId, arg2]
662
- : [
663
- mapGet(joins, arg1)?.[0],
664
- mapGet(mapGet(joins, arg1)?.[4], rootRowId)?.[0],
665
- arg2,
666
- ]),
667
- );
668
- selectJoinWhereStore.transaction(() =>
669
- arrayEvery(wheres, (where2) => where2(getTableCell))
670
- ? mapForEach(selects, (asCellId, tableCellGetter) =>
671
- setOrDelCell(
672
- selectJoinWhereStore,
673
- queryId,
674
- rootRowId,
675
- asCellId,
676
- tableCellGetter(getTableCell, rootRowId),
677
- ),
678
- )
679
- : selectJoinWhereStore.delRow(queryId, rootRowId),
680
- );
681
- };
682
- const listenToTable = (rootRowId, tableId2, rowId, joinedTableIds2) => {
683
- const getCell = (cellId) => store.getCell(tableId2, rowId, cellId);
684
- arrayForEach(joinedTableIds2, (remoteAsTableId) => {
685
- const [realJoinedTableId, , on, nextJoinedTableIds, remoteIdPair] =
686
- mapGet(joins, remoteAsTableId);
687
- const remoteRowId = on?.(getCell, rootRowId);
688
- const [previousRemoteRowId, previousRemoteListenerId] =
689
- mapGet(remoteIdPair, rootRowId) ?? [];
690
- if (remoteRowId != previousRemoteRowId) {
691
- if (!isUndefined(previousRemoteListenerId)) {
692
- delStoreListeners(queryId, previousRemoteListenerId);
693
- }
694
- mapSet(
695
- remoteIdPair,
696
- rootRowId,
697
- isUndefined(remoteRowId)
698
- ? null
699
- : [
700
- remoteRowId,
701
- ...addStoreListeners(
702
- queryId,
703
- 1,
704
- store.addRowListener(realJoinedTableId, remoteRowId, () =>
705
- listenToTable(
706
- rootRowId,
707
- realJoinedTableId,
708
- remoteRowId,
709
- nextJoinedTableIds,
710
- ),
711
- ),
712
- ),
713
- ],
714
- );
715
- }
716
- });
717
- writeSelectRow(rootRowId);
718
- };
719
- const {3: joinedTableIds} = mapGet(joins, null);
720
- selectJoinWhereStore.transaction(() =>
721
- addStoreListeners(
722
- queryId,
723
- 1,
724
- store.addRowListener(tableId, null, (_store, _tableId, rootRowId) => {
725
- if (store.hasRow(tableId, rootRowId)) {
726
- listenToTable(rootRowId, tableId, rootRowId, joinedTableIds);
727
- } else {
728
- selectJoinWhereStore.delRow(queryId, rootRowId);
729
- collForEach(joins, ({4: idsByRootRowId}) =>
730
- ifNotUndefined(
731
- mapGet(idsByRootRowId, rootRowId),
732
- ([, listenerId]) => {
733
- delStoreListeners(queryId, listenerId);
734
- mapSet(idsByRootRowId, rootRowId);
735
- },
736
- ),
737
- );
738
- }
739
- }),
740
- ),
741
- );
742
- return queries;
743
- };
744
- const delQueryDefinition = (queryId) => {
745
- resetPreStores(queryId);
746
- delDefinition(queryId);
747
- return queries;
748
- };
749
- const addQueryIdsListener = (listener) =>
750
- addQueryIdsListenerImpl(() => listener(queries));
751
- const delListener = (listenerId) => {
752
- delListenerImpl(listenerId);
753
- return queries;
754
- };
755
- const getListenerStats = () => {
756
- const {
757
- tables: _1,
758
- tableIds: _2,
759
- transaction: _3,
760
- ...stats
761
- } = resultStore.getListenerStats();
762
- return stats;
763
- };
764
- const queries = {
765
- setQueryDefinition,
766
- delQueryDefinition,
767
- getStore,
768
- getQueryIds,
769
- forEachQuery,
770
- hasQuery,
771
- getTableId,
772
- addQueryIdsListener,
773
- delListener,
774
- destroy,
775
- getListenerStats,
776
- };
777
- objMap(
778
- {
779
- [TABLE]: [1, 1],
780
- [TABLE + CELL_IDS]: [0, 1],
781
- [ROW_COUNT]: [0, 1],
782
- [ROW_IDS]: [0, 1],
783
- [SORTED_ROW_IDS]: [0, 5],
784
- [ROW]: [1, 2],
785
- [CELL_IDS]: [0, 2],
786
- [CELL]: [1, 3],
787
- },
788
- ([hasAndForEach, argumentCount], gettable) => {
789
- arrayForEach(
790
- hasAndForEach ? [GET, 'has', 'forEach'] : [GET],
791
- (prefix) =>
792
- (queries[prefix + RESULT + gettable] = (...args) =>
793
- resultStore[prefix + gettable](...args)),
794
- );
795
- queries[ADD + RESULT + gettable + LISTENER] = (...args) =>
796
- resultStore[ADD + gettable + LISTENER](
797
- ...slice(args, 0, argumentCount),
798
- (_store, ...listenerArgs) =>
799
- args[argumentCount](queries, ...listenerArgs),
800
- true,
801
- );
802
- },
803
- );
804
- return objFreeze(queries);
805
- });
806
-
807
- export {createQueries};