tinybase 4.8.16 → 4.8.17

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/lib/checkpoints.js +1 -0
  2. package/lib/checkpoints.js.gz +0 -0
  3. package/lib/cjs/checkpoints.cjs +1 -0
  4. package/lib/cjs/checkpoints.cjs.gz +0 -0
  5. package/lib/cjs/common.cjs +1 -0
  6. package/lib/cjs/common.cjs.gz +0 -0
  7. package/lib/cjs/indexes.cjs +1 -0
  8. package/lib/cjs/indexes.cjs.gz +0 -0
  9. package/lib/cjs/metrics.cjs +1 -0
  10. package/lib/cjs/metrics.cjs.gz +0 -0
  11. package/lib/cjs/persisters/persister-automerge.cjs +1 -0
  12. package/lib/cjs/persisters/persister-automerge.cjs.gz +0 -0
  13. package/lib/cjs/persisters/persister-browser.cjs +1 -0
  14. package/lib/cjs/persisters/persister-browser.cjs.gz +0 -0
  15. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs +1 -0
  16. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  17. package/lib/cjs/persisters/persister-electric-sql.cjs +1 -0
  18. package/lib/cjs/persisters/persister-electric-sql.cjs.gz +0 -0
  19. package/lib/cjs/persisters/persister-expo-sqlite-next.cjs +1 -0
  20. package/lib/cjs/persisters/persister-expo-sqlite-next.cjs.gz +0 -0
  21. package/lib/cjs/persisters/persister-expo-sqlite.cjs +1 -0
  22. package/lib/cjs/persisters/persister-expo-sqlite.cjs.gz +0 -0
  23. package/lib/cjs/persisters/persister-file.cjs +1 -0
  24. package/lib/cjs/persisters/persister-file.cjs.gz +0 -0
  25. package/lib/cjs/persisters/persister-indexed-db.cjs +1 -0
  26. package/lib/cjs/persisters/persister-indexed-db.cjs.gz +0 -0
  27. package/lib/cjs/persisters/persister-libsql.cjs +1 -0
  28. package/lib/cjs/persisters/persister-libsql.cjs.gz +0 -0
  29. package/lib/cjs/persisters/persister-partykit-client.cjs +1 -0
  30. package/lib/cjs/persisters/persister-partykit-client.cjs.gz +0 -0
  31. package/lib/cjs/persisters/persister-partykit-server.cjs +1 -0
  32. package/lib/cjs/persisters/persister-partykit-server.cjs.gz +0 -0
  33. package/lib/cjs/persisters/persister-powersync.cjs +1 -0
  34. package/lib/cjs/persisters/persister-powersync.cjs.gz +0 -0
  35. package/lib/cjs/persisters/persister-remote.cjs +1 -0
  36. package/lib/cjs/persisters/persister-remote.cjs.gz +0 -0
  37. package/lib/cjs/persisters/persister-sqlite-wasm.cjs +1 -0
  38. package/lib/cjs/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  39. package/lib/cjs/persisters/persister-sqlite3.cjs +1 -0
  40. package/lib/cjs/persisters/persister-sqlite3.cjs.gz +0 -0
  41. package/lib/cjs/persisters/persister-yjs.cjs +1 -0
  42. package/lib/cjs/persisters/persister-yjs.cjs.gz +0 -0
  43. package/lib/cjs/persisters.cjs +1 -0
  44. package/lib/cjs/persisters.cjs.gz +0 -0
  45. package/lib/cjs/queries.cjs +1 -0
  46. package/lib/cjs/queries.cjs.gz +0 -0
  47. package/lib/cjs/relationships.cjs +1 -0
  48. package/lib/cjs/relationships.cjs.gz +0 -0
  49. package/lib/cjs/store.cjs +1 -0
  50. package/lib/cjs/store.cjs.gz +0 -0
  51. package/lib/cjs/tinybase.cjs +1 -0
  52. package/lib/cjs/tinybase.cjs.gz +0 -0
  53. package/lib/cjs/tools.cjs +1 -0
  54. package/lib/cjs/tools.cjs.gz +0 -0
  55. package/lib/cjs/ui-react-dom-debug.cjs +1 -0
  56. package/lib/cjs/ui-react-dom-debug.cjs.gz +0 -0
  57. package/lib/cjs/ui-react-dom.cjs +1 -0
  58. package/lib/cjs/ui-react-dom.cjs.gz +0 -0
  59. package/lib/cjs/ui-react.cjs +1 -0
  60. package/lib/cjs/ui-react.cjs.gz +0 -0
  61. package/lib/cjs-es6/checkpoints.cjs +1 -0
  62. package/lib/cjs-es6/checkpoints.cjs.gz +0 -0
  63. package/lib/cjs-es6/common.cjs +1 -0
  64. package/lib/cjs-es6/common.cjs.gz +0 -0
  65. package/lib/cjs-es6/indexes.cjs +1 -0
  66. package/lib/cjs-es6/indexes.cjs.gz +0 -0
  67. package/lib/cjs-es6/metrics.cjs +1 -0
  68. package/lib/cjs-es6/metrics.cjs.gz +0 -0
  69. package/lib/cjs-es6/persisters/persister-automerge.cjs +1 -0
  70. package/lib/cjs-es6/persisters/persister-automerge.cjs.gz +0 -0
  71. package/lib/cjs-es6/persisters/persister-browser.cjs +1 -0
  72. package/lib/cjs-es6/persisters/persister-browser.cjs.gz +0 -0
  73. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs +1 -0
  74. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  75. package/lib/cjs-es6/persisters/persister-electric-sql.cjs +1 -0
  76. package/lib/cjs-es6/persisters/persister-electric-sql.cjs.gz +0 -0
  77. package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs +1 -0
  78. package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs.gz +0 -0
  79. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs +1 -0
  80. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs.gz +0 -0
  81. package/lib/cjs-es6/persisters/persister-file.cjs +1 -0
  82. package/lib/cjs-es6/persisters/persister-file.cjs.gz +0 -0
  83. package/lib/cjs-es6/persisters/persister-indexed-db.cjs +1 -0
  84. package/lib/cjs-es6/persisters/persister-indexed-db.cjs.gz +0 -0
  85. package/lib/cjs-es6/persisters/persister-libsql.cjs +1 -0
  86. package/lib/cjs-es6/persisters/persister-libsql.cjs.gz +0 -0
  87. package/lib/cjs-es6/persisters/persister-partykit-client.cjs +1 -0
  88. package/lib/cjs-es6/persisters/persister-partykit-client.cjs.gz +0 -0
  89. package/lib/cjs-es6/persisters/persister-partykit-server.cjs +1 -0
  90. package/lib/cjs-es6/persisters/persister-partykit-server.cjs.gz +0 -0
  91. package/lib/cjs-es6/persisters/persister-powersync.cjs +1 -0
  92. package/lib/cjs-es6/persisters/persister-powersync.cjs.gz +0 -0
  93. package/lib/cjs-es6/persisters/persister-remote.cjs +1 -0
  94. package/lib/cjs-es6/persisters/persister-remote.cjs.gz +0 -0
  95. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs +1 -0
  96. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  97. package/lib/cjs-es6/persisters/persister-sqlite3.cjs +1 -0
  98. package/lib/cjs-es6/persisters/persister-sqlite3.cjs.gz +0 -0
  99. package/lib/cjs-es6/persisters/persister-yjs.cjs +1 -0
  100. package/lib/cjs-es6/persisters/persister-yjs.cjs.gz +0 -0
  101. package/lib/cjs-es6/persisters.cjs +1 -0
  102. package/lib/cjs-es6/persisters.cjs.gz +0 -0
  103. package/lib/cjs-es6/queries.cjs +1 -0
  104. package/lib/cjs-es6/queries.cjs.gz +0 -0
  105. package/lib/cjs-es6/relationships.cjs +1 -0
  106. package/lib/cjs-es6/relationships.cjs.gz +0 -0
  107. package/lib/cjs-es6/store.cjs +1 -0
  108. package/lib/cjs-es6/store.cjs.gz +0 -0
  109. package/lib/cjs-es6/tinybase.cjs +1 -0
  110. package/lib/cjs-es6/tinybase.cjs.gz +0 -0
  111. package/lib/cjs-es6/tools.cjs +1 -0
  112. package/lib/cjs-es6/tools.cjs.gz +0 -0
  113. package/lib/cjs-es6/ui-react-dom-debug.cjs +1 -0
  114. package/lib/cjs-es6/ui-react-dom-debug.cjs.gz +0 -0
  115. package/lib/cjs-es6/ui-react-dom.cjs +1 -0
  116. package/lib/cjs-es6/ui-react-dom.cjs.gz +0 -0
  117. package/lib/cjs-es6/ui-react.cjs +1 -0
  118. package/lib/cjs-es6/ui-react.cjs.gz +0 -0
  119. package/lib/common.js +1 -0
  120. package/lib/common.js.gz +0 -0
  121. package/lib/debug/checkpoints.js +412 -0
  122. package/lib/debug/common.js +4 -0
  123. package/lib/debug/indexes.js +544 -0
  124. package/lib/debug/metrics.js +516 -0
  125. package/lib/debug/persisters.js +183 -0
  126. package/lib/debug/queries.js +807 -0
  127. package/lib/debug/relationships.js +526 -0
  128. package/lib/debug/store.js +1602 -0
  129. package/lib/es6/checkpoints.js +1 -0
  130. package/lib/es6/checkpoints.js.gz +0 -0
  131. package/lib/es6/common.js +1 -0
  132. package/lib/es6/common.js.gz +0 -0
  133. package/lib/es6/indexes.js +1 -0
  134. package/lib/es6/indexes.js.gz +0 -0
  135. package/lib/es6/metrics.js +1 -0
  136. package/lib/es6/metrics.js.gz +0 -0
  137. package/lib/es6/persisters/persister-automerge.js +1 -0
  138. package/lib/es6/persisters/persister-automerge.js.gz +0 -0
  139. package/lib/es6/persisters/persister-browser.js +1 -0
  140. package/lib/es6/persisters/persister-browser.js.gz +0 -0
  141. package/lib/es6/persisters/persister-cr-sqlite-wasm.js +1 -0
  142. package/lib/es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  143. package/lib/es6/persisters/persister-electric-sql.js +1 -0
  144. package/lib/es6/persisters/persister-electric-sql.js.gz +0 -0
  145. package/lib/es6/persisters/persister-expo-sqlite-next.js +1 -0
  146. package/lib/es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
  147. package/lib/es6/persisters/persister-expo-sqlite.js +1 -0
  148. package/lib/es6/persisters/persister-expo-sqlite.js.gz +0 -0
  149. package/lib/es6/persisters/persister-file.js +1 -0
  150. package/lib/es6/persisters/persister-file.js.gz +0 -0
  151. package/lib/es6/persisters/persister-indexed-db.js +1 -0
  152. package/lib/es6/persisters/persister-indexed-db.js.gz +0 -0
  153. package/lib/es6/persisters/persister-libsql.js +1 -0
  154. package/lib/es6/persisters/persister-libsql.js.gz +0 -0
  155. package/lib/es6/persisters/persister-partykit-client.js +1 -0
  156. package/lib/es6/persisters/persister-partykit-client.js.gz +0 -0
  157. package/lib/es6/persisters/persister-partykit-server.js +1 -0
  158. package/lib/es6/persisters/persister-partykit-server.js.gz +0 -0
  159. package/lib/es6/persisters/persister-powersync.js +1 -0
  160. package/lib/es6/persisters/persister-powersync.js.gz +0 -0
  161. package/lib/es6/persisters/persister-remote.js +1 -0
  162. package/lib/es6/persisters/persister-remote.js.gz +0 -0
  163. package/lib/es6/persisters/persister-sqlite-wasm.js +1 -0
  164. package/lib/es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  165. package/lib/es6/persisters/persister-sqlite3.js +1 -0
  166. package/lib/es6/persisters/persister-sqlite3.js.gz +0 -0
  167. package/lib/es6/persisters/persister-yjs.js +1 -0
  168. package/lib/es6/persisters/persister-yjs.js.gz +0 -0
  169. package/lib/es6/persisters.js +1 -0
  170. package/lib/es6/persisters.js.gz +0 -0
  171. package/lib/es6/queries.js +1 -0
  172. package/lib/es6/queries.js.gz +0 -0
  173. package/lib/es6/relationships.js +1 -0
  174. package/lib/es6/relationships.js.gz +0 -0
  175. package/lib/es6/store.js +1 -0
  176. package/lib/es6/store.js.gz +0 -0
  177. package/lib/es6/tinybase.js +1 -0
  178. package/lib/es6/tinybase.js.gz +0 -0
  179. package/lib/es6/tools.js +1 -0
  180. package/lib/es6/tools.js.gz +0 -0
  181. package/lib/es6/ui-react-dom-debug.js +1 -0
  182. package/lib/es6/ui-react-dom-debug.js.gz +0 -0
  183. package/lib/es6/ui-react-dom.js +1 -0
  184. package/lib/es6/ui-react-dom.js.gz +0 -0
  185. package/lib/es6/ui-react.js +1 -0
  186. package/lib/es6/ui-react.js.gz +0 -0
  187. package/lib/indexes.js +1 -0
  188. package/lib/indexes.js.gz +0 -0
  189. package/lib/metrics.js +1 -0
  190. package/lib/metrics.js.gz +0 -0
  191. package/lib/persisters/persister-automerge.js +1 -0
  192. package/lib/persisters/persister-automerge.js.gz +0 -0
  193. package/lib/persisters/persister-browser.js +1 -0
  194. package/lib/persisters/persister-browser.js.gz +0 -0
  195. package/lib/persisters/persister-cr-sqlite-wasm.js +1 -0
  196. package/lib/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  197. package/lib/persisters/persister-electric-sql.js +1 -0
  198. package/lib/persisters/persister-electric-sql.js.gz +0 -0
  199. package/lib/persisters/persister-expo-sqlite-next.js +1 -0
  200. package/lib/persisters/persister-expo-sqlite-next.js.gz +0 -0
  201. package/lib/persisters/persister-expo-sqlite.js +1 -0
  202. package/lib/persisters/persister-expo-sqlite.js.gz +0 -0
  203. package/lib/persisters/persister-file.js +1 -0
  204. package/lib/persisters/persister-file.js.gz +0 -0
  205. package/lib/persisters/persister-indexed-db.js +1 -0
  206. package/lib/persisters/persister-indexed-db.js.gz +0 -0
  207. package/lib/persisters/persister-libsql.js +1 -0
  208. package/lib/persisters/persister-libsql.js.gz +0 -0
  209. package/lib/persisters/persister-partykit-client.js +1 -0
  210. package/lib/persisters/persister-partykit-client.js.gz +0 -0
  211. package/lib/persisters/persister-partykit-server.js +1 -0
  212. package/lib/persisters/persister-partykit-server.js.gz +0 -0
  213. package/lib/persisters/persister-powersync.js +1 -0
  214. package/lib/persisters/persister-powersync.js.gz +0 -0
  215. package/lib/persisters/persister-remote.js +1 -0
  216. package/lib/persisters/persister-remote.js.gz +0 -0
  217. package/lib/persisters/persister-sqlite-wasm.js +1 -0
  218. package/lib/persisters/persister-sqlite-wasm.js.gz +0 -0
  219. package/lib/persisters/persister-sqlite3.js +1 -0
  220. package/lib/persisters/persister-sqlite3.js.gz +0 -0
  221. package/lib/persisters/persister-yjs.js +1 -0
  222. package/lib/persisters/persister-yjs.js.gz +0 -0
  223. package/lib/persisters.js +1 -0
  224. package/lib/persisters.js.gz +0 -0
  225. package/lib/queries.js +1 -0
  226. package/lib/queries.js.gz +0 -0
  227. package/lib/relationships.js +1 -0
  228. package/lib/relationships.js.gz +0 -0
  229. package/lib/store.js +1 -0
  230. package/lib/store.js.gz +0 -0
  231. package/lib/tinybase.js +1 -0
  232. package/lib/tinybase.js.gz +0 -0
  233. package/lib/tools.js +1 -0
  234. package/lib/tools.js.gz +0 -0
  235. package/lib/ui-react-dom.js +1 -0
  236. package/lib/ui-react-dom.js.gz +0 -0
  237. package/lib/ui-react.js +1 -0
  238. package/lib/ui-react.js.gz +0 -0
  239. package/lib/umd/checkpoints.js +1 -0
  240. package/lib/umd/checkpoints.js.gz +0 -0
  241. package/lib/umd/common.js +1 -0
  242. package/lib/umd/common.js.gz +0 -0
  243. package/lib/umd/indexes.js +1 -0
  244. package/lib/umd/indexes.js.gz +0 -0
  245. package/lib/umd/metrics.js +1 -0
  246. package/lib/umd/metrics.js.gz +0 -0
  247. package/lib/umd/persisters/persister-automerge.js +1 -0
  248. package/lib/umd/persisters/persister-automerge.js.gz +0 -0
  249. package/lib/umd/persisters/persister-browser.js +1 -0
  250. package/lib/umd/persisters/persister-browser.js.gz +0 -0
  251. package/lib/umd/persisters/persister-cr-sqlite-wasm.js +1 -0
  252. package/lib/umd/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  253. package/lib/umd/persisters/persister-electric-sql.js +1 -0
  254. package/lib/umd/persisters/persister-electric-sql.js.gz +0 -0
  255. package/lib/umd/persisters/persister-expo-sqlite-next.js +1 -0
  256. package/lib/umd/persisters/persister-expo-sqlite-next.js.gz +0 -0
  257. package/lib/umd/persisters/persister-expo-sqlite.js +1 -0
  258. package/lib/umd/persisters/persister-expo-sqlite.js.gz +0 -0
  259. package/lib/umd/persisters/persister-file.js +1 -0
  260. package/lib/umd/persisters/persister-file.js.gz +0 -0
  261. package/lib/umd/persisters/persister-indexed-db.js +1 -0
  262. package/lib/umd/persisters/persister-indexed-db.js.gz +0 -0
  263. package/lib/umd/persisters/persister-libsql.js +1 -0
  264. package/lib/umd/persisters/persister-libsql.js.gz +0 -0
  265. package/lib/umd/persisters/persister-partykit-client.js +1 -0
  266. package/lib/umd/persisters/persister-partykit-client.js.gz +0 -0
  267. package/lib/umd/persisters/persister-partykit-server.js +1 -0
  268. package/lib/umd/persisters/persister-partykit-server.js.gz +0 -0
  269. package/lib/umd/persisters/persister-powersync.js +1 -0
  270. package/lib/umd/persisters/persister-powersync.js.gz +0 -0
  271. package/lib/umd/persisters/persister-remote.js +1 -0
  272. package/lib/umd/persisters/persister-remote.js.gz +0 -0
  273. package/lib/umd/persisters/persister-sqlite-wasm.js +1 -0
  274. package/lib/umd/persisters/persister-sqlite-wasm.js.gz +0 -0
  275. package/lib/umd/persisters/persister-sqlite3.js +1 -0
  276. package/lib/umd/persisters/persister-sqlite3.js.gz +0 -0
  277. package/lib/umd/persisters/persister-yjs.js +1 -0
  278. package/lib/umd/persisters/persister-yjs.js.gz +0 -0
  279. package/lib/umd/persisters.js +1 -0
  280. package/lib/umd/persisters.js.gz +0 -0
  281. package/lib/umd/queries.js +1 -0
  282. package/lib/umd/queries.js.gz +0 -0
  283. package/lib/umd/relationships.js +1 -0
  284. package/lib/umd/relationships.js.gz +0 -0
  285. package/lib/umd/store.js +1 -0
  286. package/lib/umd/store.js.gz +0 -0
  287. package/lib/umd/tinybase.js +1 -0
  288. package/lib/umd/tinybase.js.gz +0 -0
  289. package/lib/umd/tools.js +1 -0
  290. package/lib/umd/tools.js.gz +0 -0
  291. package/lib/umd/ui-react-dom-debug.js +1 -0
  292. package/lib/umd/ui-react-dom-debug.js.gz +0 -0
  293. package/lib/umd/ui-react-dom.js +1 -0
  294. package/lib/umd/ui-react-dom.js.gz +0 -0
  295. package/lib/umd/ui-react.js +1 -0
  296. package/lib/umd/ui-react.js.gz +0 -0
  297. package/lib/umd-es6/checkpoints.js +1 -0
  298. package/lib/umd-es6/checkpoints.js.gz +0 -0
  299. package/lib/umd-es6/common.js +1 -0
  300. package/lib/umd-es6/common.js.gz +0 -0
  301. package/lib/umd-es6/indexes.js +1 -0
  302. package/lib/umd-es6/indexes.js.gz +0 -0
  303. package/lib/umd-es6/metrics.js +1 -0
  304. package/lib/umd-es6/metrics.js.gz +0 -0
  305. package/lib/umd-es6/persisters/persister-automerge.js +1 -0
  306. package/lib/umd-es6/persisters/persister-automerge.js.gz +0 -0
  307. package/lib/umd-es6/persisters/persister-browser.js +1 -0
  308. package/lib/umd-es6/persisters/persister-browser.js.gz +0 -0
  309. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js +1 -0
  310. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  311. package/lib/umd-es6/persisters/persister-electric-sql.js +1 -0
  312. package/lib/umd-es6/persisters/persister-electric-sql.js.gz +0 -0
  313. package/lib/umd-es6/persisters/persister-expo-sqlite-next.js +1 -0
  314. package/lib/umd-es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
  315. package/lib/umd-es6/persisters/persister-expo-sqlite.js +1 -0
  316. package/lib/umd-es6/persisters/persister-expo-sqlite.js.gz +0 -0
  317. package/lib/umd-es6/persisters/persister-file.js +1 -0
  318. package/lib/umd-es6/persisters/persister-file.js.gz +0 -0
  319. package/lib/umd-es6/persisters/persister-indexed-db.js +1 -0
  320. package/lib/umd-es6/persisters/persister-indexed-db.js.gz +0 -0
  321. package/lib/umd-es6/persisters/persister-libsql.js +1 -0
  322. package/lib/umd-es6/persisters/persister-libsql.js.gz +0 -0
  323. package/lib/umd-es6/persisters/persister-partykit-client.js +1 -0
  324. package/lib/umd-es6/persisters/persister-partykit-client.js.gz +0 -0
  325. package/lib/umd-es6/persisters/persister-partykit-server.js +1 -0
  326. package/lib/umd-es6/persisters/persister-partykit-server.js.gz +0 -0
  327. package/lib/umd-es6/persisters/persister-powersync.js +1 -0
  328. package/lib/umd-es6/persisters/persister-powersync.js.gz +0 -0
  329. package/lib/umd-es6/persisters/persister-remote.js +1 -0
  330. package/lib/umd-es6/persisters/persister-remote.js.gz +0 -0
  331. package/lib/umd-es6/persisters/persister-sqlite-wasm.js +1 -0
  332. package/lib/umd-es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  333. package/lib/umd-es6/persisters/persister-sqlite3.js +1 -0
  334. package/lib/umd-es6/persisters/persister-sqlite3.js.gz +0 -0
  335. package/lib/umd-es6/persisters/persister-yjs.js +1 -0
  336. package/lib/umd-es6/persisters/persister-yjs.js.gz +0 -0
  337. package/lib/umd-es6/persisters.js +1 -0
  338. package/lib/umd-es6/persisters.js.gz +0 -0
  339. package/lib/umd-es6/queries.js +1 -0
  340. package/lib/umd-es6/queries.js.gz +0 -0
  341. package/lib/umd-es6/relationships.js +1 -0
  342. package/lib/umd-es6/relationships.js.gz +0 -0
  343. package/lib/umd-es6/store.js +1 -0
  344. package/lib/umd-es6/store.js.gz +0 -0
  345. package/lib/umd-es6/tinybase.js +1 -0
  346. package/lib/umd-es6/tinybase.js.gz +0 -0
  347. package/lib/umd-es6/tools.js +1 -0
  348. package/lib/umd-es6/tools.js.gz +0 -0
  349. package/lib/umd-es6/ui-react-dom-debug.js +1 -0
  350. package/lib/umd-es6/ui-react-dom-debug.js.gz +0 -0
  351. package/lib/umd-es6/ui-react-dom.js +1 -0
  352. package/lib/umd-es6/ui-react-dom.js.gz +0 -0
  353. package/lib/umd-es6/ui-react.js +1 -0
  354. package/lib/umd-es6/ui-react.js.gz +0 -0
  355. package/package.json +1 -1
  356. package/readme.md +2 -2
@@ -0,0 +1,412 @@
1
+ const EMPTY_STRING = '';
2
+
3
+ const isUndefined = (thing) => thing == void 0;
4
+ const ifNotUndefined = (value, then, otherwise) =>
5
+ isUndefined(value) ? otherwise?.() : then(value);
6
+ const isArray = (thing) => Array.isArray(thing);
7
+ const size = (arrayOrString) => arrayOrString.length;
8
+ const test = (regex, subject) => regex.test(subject);
9
+
10
+ const arrayHas = (array, value) => array.includes(value);
11
+ const arrayForEach = (array, cb) => array.forEach(cb);
12
+ const arrayIsEmpty = (array) => size(array) == 0;
13
+ const arrayReduce = (array, cb, initial) => array.reduce(cb, initial);
14
+ const arrayClear = (array, to) => array.splice(0, to);
15
+ const arrayPush = (array, ...values) => array.push(...values);
16
+ const arrayPop = (array) => array.pop();
17
+ const arrayUnshift = (array, ...values) => array.unshift(...values);
18
+ const arrayShift = (array) => array.shift();
19
+
20
+ const object = Object;
21
+ const objFreeze = object.freeze;
22
+
23
+ const collSizeN = (collSizer) => (coll) =>
24
+ arrayReduce(collValues(coll), (total, coll2) => total + collSizer(coll2), 0);
25
+ const collSize = (coll) => coll?.size ?? 0;
26
+ const collSize2 = collSizeN(collSize);
27
+ const collHas = (coll, keyOrValue) => coll?.has(keyOrValue) ?? false;
28
+ const collIsEmpty = (coll) => isUndefined(coll) || collSize(coll) == 0;
29
+ const collValues = (coll) => [...(coll?.values() ?? [])];
30
+ const collForEach = (coll, cb) => coll?.forEach(cb);
31
+ const collDel = (coll, keyOrValue) => coll?.delete(keyOrValue);
32
+
33
+ const mapNew = (entries) => new Map(entries);
34
+ const mapGet = (map, key) => map?.get(key);
35
+ const mapForEach = (map, cb) =>
36
+ collForEach(map, (value, key) => cb(key, value));
37
+ const mapSet = (map, key, value) =>
38
+ isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
39
+ const mapEnsure = (map, key, getDefaultValue) => {
40
+ if (!collHas(map, key)) {
41
+ mapSet(map, key, getDefaultValue());
42
+ }
43
+ return mapGet(map, key);
44
+ };
45
+ const visitTree = (node, path, ensureLeaf, pruneLeaf, p = 0) =>
46
+ ifNotUndefined(
47
+ (ensureLeaf ? mapEnsure : mapGet)(
48
+ node,
49
+ path[p],
50
+ p > size(path) - 2 ? ensureLeaf : mapNew,
51
+ ),
52
+ (nodeOrLeaf) => {
53
+ if (p > size(path) - 2) {
54
+ if (pruneLeaf?.(nodeOrLeaf)) {
55
+ mapSet(node, path[p]);
56
+ }
57
+ return nodeOrLeaf;
58
+ }
59
+ const leaf = visitTree(nodeOrLeaf, path, ensureLeaf, pruneLeaf, p + 1);
60
+ if (collIsEmpty(nodeOrLeaf)) {
61
+ mapSet(node, path[p]);
62
+ }
63
+ return leaf;
64
+ },
65
+ );
66
+
67
+ const setOrDelCell = (store, tableId, rowId, cellId, cell) =>
68
+ isUndefined(cell)
69
+ ? store.delCell(tableId, rowId, cellId, true)
70
+ : store.setCell(tableId, rowId, cellId, cell);
71
+ const setOrDelValue = (store, valueId, value) =>
72
+ isUndefined(value) ? store.delValue(valueId) : store.setValue(valueId, value);
73
+
74
+ const setNew = (entryOrEntries) =>
75
+ new Set(
76
+ isArray(entryOrEntries) || isUndefined(entryOrEntries)
77
+ ? entryOrEntries
78
+ : [entryOrEntries],
79
+ );
80
+ const setAdd = (set, value) => set?.add(value);
81
+
82
+ const getCreateFunction = (getFunction) => {
83
+ const getFunctionsByStore = /* @__PURE__ */ new WeakMap();
84
+ return (store) => {
85
+ if (!getFunctionsByStore.has(store)) {
86
+ getFunctionsByStore.set(store, getFunction(store));
87
+ }
88
+ return getFunctionsByStore.get(store);
89
+ };
90
+ };
91
+
92
+ const INTEGER = /^\d+$/;
93
+ const getPoolFunctions = () => {
94
+ const pool = [];
95
+ let nextId = 0;
96
+ return [
97
+ (reuse) => (reuse ? arrayShift(pool) : null) ?? EMPTY_STRING + nextId++,
98
+ (id) => {
99
+ if (test(INTEGER, id) && size(pool) < 1e3) {
100
+ arrayPush(pool, id);
101
+ }
102
+ },
103
+ ];
104
+ };
105
+
106
+ const getWildcardedLeaves = (deepIdSet, path = [EMPTY_STRING]) => {
107
+ const leaves = [];
108
+ const deep = (node, p) =>
109
+ p == size(path)
110
+ ? arrayPush(leaves, node)
111
+ : path[p] === null
112
+ ? collForEach(node, (node2) => deep(node2, p + 1))
113
+ : arrayForEach([path[p], null], (id) => deep(mapGet(node, id), p + 1));
114
+ deep(deepIdSet, 0);
115
+ return leaves;
116
+ };
117
+ const getListenerFunctions = (getThing) => {
118
+ let thing;
119
+ const [getId, releaseId] = getPoolFunctions();
120
+ const allListeners = mapNew();
121
+ const addListener = (
122
+ listener,
123
+ idSetNode,
124
+ path,
125
+ pathGetters = [],
126
+ extraArgsGetter = () => [],
127
+ ) => {
128
+ thing ??= getThing();
129
+ const id = getId(1);
130
+ mapSet(allListeners, id, [
131
+ listener,
132
+ idSetNode,
133
+ path,
134
+ pathGetters,
135
+ extraArgsGetter,
136
+ ]);
137
+ setAdd(visitTree(idSetNode, path ?? [EMPTY_STRING], setNew), id);
138
+ return id;
139
+ };
140
+ const callListeners = (idSetNode, ids, ...extraArgs) =>
141
+ arrayForEach(getWildcardedLeaves(idSetNode, ids), (set) =>
142
+ collForEach(set, (id) =>
143
+ mapGet(allListeners, id)[0](thing, ...(ids ?? []), ...extraArgs),
144
+ ),
145
+ );
146
+ const delListener = (id) =>
147
+ ifNotUndefined(mapGet(allListeners, id), ([, idSetNode, idOrNulls]) => {
148
+ visitTree(idSetNode, idOrNulls ?? [EMPTY_STRING], void 0, (idSet) => {
149
+ collDel(idSet, id);
150
+ return collIsEmpty(idSet) ? 1 : 0;
151
+ });
152
+ mapSet(allListeners, id);
153
+ releaseId(id);
154
+ return idOrNulls;
155
+ });
156
+ const callListener = (id) =>
157
+ ifNotUndefined(
158
+ mapGet(allListeners, id),
159
+ ([listener, , path = [], pathGetters, extraArgsGetter]) => {
160
+ const callWithIds = (...ids) => {
161
+ const index = size(ids);
162
+ index == size(path)
163
+ ? listener(thing, ...ids, ...extraArgsGetter(ids))
164
+ : isUndefined(path[index])
165
+ ? arrayForEach(pathGetters[index]?.(...ids) ?? [], (id2) =>
166
+ callWithIds(...ids, id2),
167
+ )
168
+ : callWithIds(...ids, path[index]);
169
+ };
170
+ callWithIds();
171
+ },
172
+ );
173
+ return [addListener, callListeners, delListener, callListener];
174
+ };
175
+
176
+ const createCheckpoints = getCreateFunction((store) => {
177
+ let backwardIdsSize = 100;
178
+ let currentId;
179
+ let cellsDelta = mapNew();
180
+ let valuesDelta = mapNew();
181
+ let listening = 1;
182
+ let nextCheckpointId;
183
+ let checkpointsChanged;
184
+ const checkpointIdsListeners = mapNew();
185
+ const checkpointListeners = mapNew();
186
+ const [addListener, callListeners, delListenerImpl] = getListenerFunctions(
187
+ () => checkpoints,
188
+ );
189
+ const deltas = mapNew();
190
+ const labels = mapNew();
191
+ const backwardIds = [];
192
+ const forwardIds = [];
193
+ const updateStore = (oldOrNew, checkpointId) => {
194
+ listening = 0;
195
+ store.transaction(() => {
196
+ const [cellsDelta2, valuesDelta2] = mapGet(deltas, checkpointId);
197
+ collForEach(cellsDelta2, (table, tableId) =>
198
+ collForEach(table, (row, rowId) =>
199
+ collForEach(row, (oldNew, cellId) =>
200
+ setOrDelCell(store, tableId, rowId, cellId, oldNew[oldOrNew]),
201
+ ),
202
+ ),
203
+ );
204
+ collForEach(valuesDelta2, (oldNew, valueId) =>
205
+ setOrDelValue(store, valueId, oldNew[oldOrNew]),
206
+ );
207
+ });
208
+ listening = 1;
209
+ };
210
+ const clearCheckpointId = (checkpointId) => {
211
+ mapSet(deltas, checkpointId);
212
+ mapSet(labels, checkpointId);
213
+ callListeners(checkpointListeners, [checkpointId]);
214
+ };
215
+ const clearCheckpointIds = (checkpointIds, to) =>
216
+ arrayForEach(
217
+ arrayClear(checkpointIds, to ?? size(checkpointIds)),
218
+ clearCheckpointId,
219
+ );
220
+ const trimBackwardsIds = () =>
221
+ clearCheckpointIds(backwardIds, size(backwardIds) - backwardIdsSize);
222
+ const storeChanged = () =>
223
+ ifNotUndefined(currentId, () => {
224
+ arrayPush(backwardIds, currentId);
225
+ trimBackwardsIds();
226
+ clearCheckpointIds(forwardIds);
227
+ currentId = void 0;
228
+ checkpointsChanged = 1;
229
+ });
230
+ const storeUnchanged = () => {
231
+ currentId = arrayPop(backwardIds);
232
+ checkpointsChanged = 1;
233
+ };
234
+ const cellListenerId = store.addCellListener(
235
+ null,
236
+ null,
237
+ null,
238
+ (_store, tableId, rowId, cellId, newCell, oldCell) => {
239
+ if (listening) {
240
+ storeChanged();
241
+ const table = mapEnsure(cellsDelta, tableId, mapNew);
242
+ const row = mapEnsure(table, rowId, mapNew);
243
+ const oldNew = mapEnsure(row, cellId, () => [oldCell, void 0]);
244
+ oldNew[1] = newCell;
245
+ if (
246
+ oldNew[0] === newCell &&
247
+ collIsEmpty(mapSet(row, cellId)) &&
248
+ collIsEmpty(mapSet(table, rowId)) &&
249
+ collIsEmpty(mapSet(cellsDelta, tableId))
250
+ ) {
251
+ storeUnchanged();
252
+ }
253
+ callListenersIfChanged();
254
+ }
255
+ },
256
+ );
257
+ const valueListenerId = store.addValueListener(
258
+ null,
259
+ (_store, valueId, newValue, oldValue) => {
260
+ if (listening) {
261
+ storeChanged();
262
+ const oldNew = mapEnsure(valuesDelta, valueId, () => [
263
+ oldValue,
264
+ void 0,
265
+ ]);
266
+ oldNew[1] = newValue;
267
+ if (
268
+ oldNew[0] === newValue &&
269
+ collIsEmpty(mapSet(valuesDelta, valueId))
270
+ ) {
271
+ storeUnchanged();
272
+ }
273
+ callListenersIfChanged();
274
+ }
275
+ },
276
+ );
277
+ const addCheckpointImpl = (label = EMPTY_STRING) => {
278
+ if (isUndefined(currentId)) {
279
+ currentId = EMPTY_STRING + nextCheckpointId++;
280
+ mapSet(deltas, currentId, [cellsDelta, valuesDelta]);
281
+ setCheckpoint(currentId, label);
282
+ cellsDelta = mapNew();
283
+ valuesDelta = mapNew();
284
+ checkpointsChanged = 1;
285
+ }
286
+ return currentId;
287
+ };
288
+ const goBackwardImpl = () => {
289
+ if (!arrayIsEmpty(backwardIds)) {
290
+ arrayUnshift(forwardIds, addCheckpointImpl());
291
+ updateStore(0, currentId);
292
+ currentId = arrayPop(backwardIds);
293
+ checkpointsChanged = 1;
294
+ }
295
+ };
296
+ const goForwardImpl = () => {
297
+ if (!arrayIsEmpty(forwardIds)) {
298
+ arrayPush(backwardIds, currentId);
299
+ currentId = arrayShift(forwardIds);
300
+ updateStore(1, currentId);
301
+ checkpointsChanged = 1;
302
+ }
303
+ };
304
+ const callListenersIfChanged = () => {
305
+ if (checkpointsChanged) {
306
+ callListeners(checkpointIdsListeners);
307
+ checkpointsChanged = 0;
308
+ }
309
+ };
310
+ const setSize = (size2) => {
311
+ backwardIdsSize = size2;
312
+ trimBackwardsIds();
313
+ return checkpoints;
314
+ };
315
+ const addCheckpoint = (label) => {
316
+ const id = addCheckpointImpl(label);
317
+ callListenersIfChanged();
318
+ return id;
319
+ };
320
+ const setCheckpoint = (checkpointId, label) => {
321
+ if (hasCheckpoint(checkpointId) && mapGet(labels, checkpointId) !== label) {
322
+ mapSet(labels, checkpointId, label);
323
+ callListeners(checkpointListeners, [checkpointId]);
324
+ }
325
+ return checkpoints;
326
+ };
327
+ const getStore = () => store;
328
+ const getCheckpointIds = () => [[...backwardIds], currentId, [...forwardIds]];
329
+ const forEachCheckpoint = (checkpointCallback) =>
330
+ mapForEach(labels, checkpointCallback);
331
+ const hasCheckpoint = (checkpointId) => collHas(deltas, checkpointId);
332
+ const getCheckpoint = (checkpointId) => mapGet(labels, checkpointId);
333
+ const goBackward = () => {
334
+ goBackwardImpl();
335
+ callListenersIfChanged();
336
+ return checkpoints;
337
+ };
338
+ const goForward = () => {
339
+ goForwardImpl();
340
+ callListenersIfChanged();
341
+ return checkpoints;
342
+ };
343
+ const goTo = (checkpointId) => {
344
+ const action = arrayHas(backwardIds, checkpointId)
345
+ ? goBackwardImpl
346
+ : arrayHas(forwardIds, checkpointId)
347
+ ? goForwardImpl
348
+ : null;
349
+ while (!isUndefined(action) && checkpointId != currentId) {
350
+ action();
351
+ }
352
+ callListenersIfChanged();
353
+ return checkpoints;
354
+ };
355
+ const addCheckpointIdsListener = (listener) =>
356
+ addListener(listener, checkpointIdsListeners);
357
+ const addCheckpointListener = (checkpointId, listener) =>
358
+ addListener(listener, checkpointListeners, [checkpointId]);
359
+ const delListener = (listenerId) => {
360
+ delListenerImpl(listenerId);
361
+ return checkpoints;
362
+ };
363
+ const clear = () => {
364
+ clearCheckpointIds(backwardIds);
365
+ clearCheckpointIds(forwardIds);
366
+ if (!isUndefined(currentId)) {
367
+ clearCheckpointId(currentId);
368
+ }
369
+ currentId = void 0;
370
+ nextCheckpointId = 0;
371
+ addCheckpoint();
372
+ return checkpoints;
373
+ };
374
+ const clearForward = () => {
375
+ if (!arrayIsEmpty(forwardIds)) {
376
+ clearCheckpointIds(forwardIds);
377
+ callListeners(checkpointIdsListeners);
378
+ }
379
+ return checkpoints;
380
+ };
381
+ const destroy = () => {
382
+ store.delListener(cellListenerId);
383
+ store.delListener(valueListenerId);
384
+ };
385
+ const getListenerStats = () => ({
386
+ checkpointIds: collSize2(checkpointIdsListeners),
387
+ checkpoint: collSize2(checkpointListeners),
388
+ });
389
+ const checkpoints = {
390
+ setSize,
391
+ addCheckpoint,
392
+ setCheckpoint,
393
+ getStore,
394
+ getCheckpointIds,
395
+ forEachCheckpoint,
396
+ hasCheckpoint,
397
+ getCheckpoint,
398
+ goBackward,
399
+ goForward,
400
+ goTo,
401
+ addCheckpointIdsListener,
402
+ addCheckpointListener,
403
+ delListener,
404
+ clear,
405
+ clearForward,
406
+ destroy,
407
+ getListenerStats,
408
+ };
409
+ return objFreeze(checkpoints.clear());
410
+ });
411
+
412
+ export {createCheckpoints};
@@ -0,0 +1,4 @@
1
+ const defaultSorter = (sortKey1, sortKey2) =>
2
+ (sortKey1 ?? 0) < (sortKey2 ?? 0) ? -1 : 1;
3
+
4
+ export {defaultSorter};