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,516 +0,0 @@
1
- const getTypeOf = (thing) => typeof thing;
2
- const EMPTY_STRING = '';
3
- const STRING = getTypeOf(EMPTY_STRING);
4
- const FUNCTION = getTypeOf(getTypeOf);
5
- const SUM = 'sum';
6
- const AVG = 'avg';
7
- const MIN = 'min';
8
- const MAX = 'max';
9
-
10
- const mathMax = Math.max;
11
- const mathMin = Math.min;
12
- const isFiniteNumber = isFinite;
13
- const isUndefined = (thing) => thing == void 0;
14
- const ifNotUndefined = (value, then, otherwise) =>
15
- isUndefined(value) ? otherwise?.() : then(value);
16
- const isString = (thing) => getTypeOf(thing) == STRING;
17
- const isFunction = (thing) => getTypeOf(thing) == FUNCTION;
18
- const isArray = (thing) => Array.isArray(thing);
19
- const size = (arrayOrString) => arrayOrString.length;
20
- const test = (regex, subject) => regex.test(subject);
21
- const getUndefined = () => void 0;
22
-
23
- const arrayEvery = (array, cb) => array.every(cb);
24
- const arrayIsEqual = (array1, array2) =>
25
- size(array1) === size(array2) &&
26
- arrayEvery(array1, (value1, index) => array2[index] === value1);
27
- const arrayForEach = (array, cb) => array.forEach(cb);
28
- const arraySum = (array) => arrayReduce(array, (i, j) => i + j, 0);
29
- const arrayIsEmpty = (array) => size(array) == 0;
30
- const arrayReduce = (array, cb, initial) => array.reduce(cb, initial);
31
- const arrayPush = (array, ...values) => array.push(...values);
32
- const arrayShift = (array) => array.shift();
33
-
34
- const object = Object;
35
- const objFreeze = object.freeze;
36
-
37
- const collSizeN = (collSizer) => (coll) =>
38
- arrayReduce(collValues(coll), (total, coll2) => total + collSizer(coll2), 0);
39
- const collSize = (coll) => coll?.size ?? 0;
40
- const collSize2 = collSizeN(collSize);
41
- const collHas = (coll, keyOrValue) => coll?.has(keyOrValue) ?? false;
42
- const collIsEmpty = (coll) => isUndefined(coll) || collSize(coll) == 0;
43
- const collValues = (coll) => [...(coll?.values() ?? [])];
44
- const collClear = (coll) => coll.clear();
45
- const collForEach = (coll, cb) => coll?.forEach(cb);
46
- const collDel = (coll, keyOrValue) => coll?.delete(keyOrValue);
47
-
48
- const mapNew = (entries) => new Map(entries);
49
- const mapKeys = (map) => [...(map?.keys() ?? [])];
50
- const mapGet = (map, key) => map?.get(key);
51
- const mapForEach = (map, cb) =>
52
- collForEach(map, (value, key) => cb(key, value));
53
- const mapSet = (map, key, value) =>
54
- isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
55
- const mapEnsure = (map, key, getDefaultValue) => {
56
- if (!collHas(map, key)) {
57
- mapSet(map, key, getDefaultValue());
58
- }
59
- return mapGet(map, key);
60
- };
61
- const visitTree = (node, path, ensureLeaf, pruneLeaf, p = 0) =>
62
- ifNotUndefined(
63
- (ensureLeaf ? mapEnsure : mapGet)(
64
- node,
65
- path[p],
66
- p > size(path) - 2 ? ensureLeaf : mapNew,
67
- ),
68
- (nodeOrLeaf) => {
69
- if (p > size(path) - 2) {
70
- if (pruneLeaf?.(nodeOrLeaf)) {
71
- mapSet(node, path[p]);
72
- }
73
- return nodeOrLeaf;
74
- }
75
- const leaf = visitTree(nodeOrLeaf, path, ensureLeaf, pruneLeaf, p + 1);
76
- if (collIsEmpty(nodeOrLeaf)) {
77
- mapSet(node, path[p]);
78
- }
79
- return leaf;
80
- },
81
- );
82
-
83
- const numericAggregators = mapNew([
84
- [
85
- AVG,
86
- [
87
- (numbers, length) => arraySum(numbers) / length,
88
- (metric, add, length) => metric + (add - metric) / (length + 1),
89
- (metric, remove, length) => metric + (metric - remove) / (length - 1),
90
- (metric, add, remove, length) => metric + (add - remove) / length,
91
- ],
92
- ],
93
- [
94
- MAX,
95
- [
96
- (numbers) => mathMax(...numbers),
97
- (metric, add) => mathMax(add, metric),
98
- (metric, remove) => (remove == metric ? void 0 : metric),
99
- (metric, add, remove) =>
100
- remove == metric ? void 0 : mathMax(add, metric),
101
- ],
102
- ],
103
- [
104
- MIN,
105
- [
106
- (numbers) => mathMin(...numbers),
107
- (metric, add) => mathMin(add, metric),
108
- (metric, remove) => (remove == metric ? void 0 : metric),
109
- (metric, add, remove) =>
110
- remove == metric ? void 0 : mathMin(add, metric),
111
- ],
112
- ],
113
- [
114
- SUM,
115
- [
116
- (numbers) => arraySum(numbers),
117
- (metric, add) => metric + add,
118
- (metric, remove) => metric - remove,
119
- (metric, add, remove) => metric - remove + add,
120
- ],
121
- ],
122
- ]);
123
- const getAggregateValue = (
124
- aggregateValue,
125
- oldLength,
126
- newValues,
127
- changedValues,
128
- aggregators,
129
- force = false,
130
- ) => {
131
- if (collIsEmpty(newValues)) {
132
- return void 0;
133
- }
134
- const [aggregate, aggregateAdd, aggregateRemove, aggregateReplace] =
135
- aggregators;
136
- force ||= isUndefined(aggregateValue);
137
- collForEach(changedValues, ([oldValue, newValue]) => {
138
- if (!force) {
139
- aggregateValue = isUndefined(oldValue)
140
- ? aggregateAdd?.(aggregateValue, newValue, oldLength++)
141
- : isUndefined(newValue)
142
- ? aggregateRemove?.(aggregateValue, oldValue, oldLength--)
143
- : aggregateReplace?.(aggregateValue, newValue, oldValue, oldLength);
144
- force ||= isUndefined(aggregateValue);
145
- }
146
- });
147
- return force
148
- ? aggregate(collValues(newValues), collSize(newValues))
149
- : aggregateValue;
150
- };
151
-
152
- const setNew = (entryOrEntries) =>
153
- new Set(
154
- isArray(entryOrEntries) || isUndefined(entryOrEntries)
155
- ? entryOrEntries
156
- : [entryOrEntries],
157
- );
158
- const setAdd = (set, value) => set?.add(value);
159
-
160
- const getDefinableFunctions = (
161
- store,
162
- getDefaultThing,
163
- validateRowValue,
164
- addListener,
165
- callListeners,
166
- ) => {
167
- const hasRow = store.hasRow;
168
- const tableIds = mapNew();
169
- const things = mapNew();
170
- const thingIdListeners = mapNew();
171
- const allRowValues = mapNew();
172
- const allSortKeys = mapNew();
173
- const storeListenerIds = mapNew();
174
- const getStore = () => store;
175
- const getThingIds = () => mapKeys(tableIds);
176
- const forEachThing = (cb) => mapForEach(things, cb);
177
- const hasThing = (id) => collHas(things, id);
178
- const getTableId = (id) => mapGet(tableIds, id);
179
- const getThing = (id) => mapGet(things, id);
180
- const setThing = (id, thing) => mapSet(things, id, thing);
181
- const addStoreListeners = (id, andCall, ...listenerIds) => {
182
- const set = mapEnsure(storeListenerIds, id, setNew);
183
- arrayForEach(
184
- listenerIds,
185
- (listenerId) =>
186
- setAdd(set, listenerId) && andCall && store.callListener(listenerId),
187
- );
188
- return listenerIds;
189
- };
190
- const delStoreListeners = (id, ...listenerIds) =>
191
- ifNotUndefined(mapGet(storeListenerIds, id), (allListenerIds) => {
192
- arrayForEach(
193
- arrayIsEmpty(listenerIds) ? collValues(allListenerIds) : listenerIds,
194
- (listenerId) => {
195
- store.delListener(listenerId);
196
- collDel(allListenerIds, listenerId);
197
- },
198
- );
199
- if (collIsEmpty(allListenerIds)) {
200
- mapSet(storeListenerIds, id);
201
- }
202
- });
203
- const setDefinition = (id, tableId) => {
204
- mapSet(tableIds, id, tableId);
205
- if (!collHas(things, id)) {
206
- mapSet(things, id, getDefaultThing());
207
- mapSet(allRowValues, id, mapNew());
208
- mapSet(allSortKeys, id, mapNew());
209
- callListeners(thingIdListeners);
210
- }
211
- };
212
- const setDefinitionAndListen = (
213
- id,
214
- tableId,
215
- onChanged,
216
- getRowValue,
217
- getSortKey,
218
- ) => {
219
- setDefinition(id, tableId);
220
- const changedRowValues = mapNew();
221
- const changedSortKeys = mapNew();
222
- const rowValues = mapGet(allRowValues, id);
223
- const sortKeys = mapGet(allSortKeys, id);
224
- const processRow = (rowId) => {
225
- const getCell = (cellId) => store.getCell(tableId, rowId, cellId);
226
- const oldRowValue = mapGet(rowValues, rowId);
227
- const newRowValue = hasRow(tableId, rowId)
228
- ? validateRowValue(getRowValue(getCell, rowId))
229
- : void 0;
230
- if (
231
- !(
232
- oldRowValue === newRowValue ||
233
- (isArray(oldRowValue) &&
234
- isArray(newRowValue) &&
235
- arrayIsEqual(oldRowValue, newRowValue))
236
- )
237
- ) {
238
- mapSet(changedRowValues, rowId, [oldRowValue, newRowValue]);
239
- }
240
- if (!isUndefined(getSortKey)) {
241
- const oldSortKey = mapGet(sortKeys, rowId);
242
- const newSortKey = hasRow(tableId, rowId)
243
- ? getSortKey(getCell, rowId)
244
- : void 0;
245
- if (oldSortKey != newSortKey) {
246
- mapSet(changedSortKeys, rowId, newSortKey);
247
- }
248
- }
249
- };
250
- const processTable = (force) => {
251
- onChanged(
252
- () => {
253
- collForEach(changedRowValues, ([, newRowValue], rowId) =>
254
- mapSet(rowValues, rowId, newRowValue),
255
- );
256
- collForEach(changedSortKeys, (newSortKey, rowId) =>
257
- mapSet(sortKeys, rowId, newSortKey),
258
- );
259
- },
260
- changedRowValues,
261
- changedSortKeys,
262
- rowValues,
263
- sortKeys,
264
- force,
265
- );
266
- collClear(changedRowValues);
267
- collClear(changedSortKeys);
268
- };
269
- mapForEach(rowValues, processRow);
270
- if (store.hasTable(tableId)) {
271
- arrayForEach(store.getRowIds(tableId), (rowId) => {
272
- if (!collHas(rowValues, rowId)) {
273
- processRow(rowId);
274
- }
275
- });
276
- }
277
- processTable(true);
278
- delStoreListeners(id);
279
- addStoreListeners(
280
- id,
281
- 0,
282
- store.addRowListener(tableId, null, (_store, _tableId, rowId) =>
283
- processRow(rowId),
284
- ),
285
- store.addTableListener(tableId, () => processTable()),
286
- );
287
- };
288
- const delDefinition = (id) => {
289
- mapSet(tableIds, id);
290
- mapSet(things, id);
291
- mapSet(allRowValues, id);
292
- mapSet(allSortKeys, id);
293
- delStoreListeners(id);
294
- callListeners(thingIdListeners);
295
- };
296
- const addThingIdsListener = (listener) =>
297
- addListener(listener, thingIdListeners);
298
- const destroy = () => mapForEach(storeListenerIds, delDefinition);
299
- return [
300
- getStore,
301
- getThingIds,
302
- forEachThing,
303
- hasThing,
304
- getTableId,
305
- getThing,
306
- setThing,
307
- setDefinition,
308
- setDefinitionAndListen,
309
- delDefinition,
310
- addThingIdsListener,
311
- destroy,
312
- addStoreListeners,
313
- delStoreListeners,
314
- ];
315
- };
316
- const getRowCellFunction = (getRowCell, defaultCellValue) =>
317
- isString(getRowCell)
318
- ? (getCell) => getCell(getRowCell)
319
- : getRowCell ?? (() => defaultCellValue ?? EMPTY_STRING);
320
- const getCreateFunction = (getFunction) => {
321
- const getFunctionsByStore = /* @__PURE__ */ new WeakMap();
322
- return (store) => {
323
- if (!getFunctionsByStore.has(store)) {
324
- getFunctionsByStore.set(store, getFunction(store));
325
- }
326
- return getFunctionsByStore.get(store);
327
- };
328
- };
329
-
330
- const INTEGER = /^\d+$/;
331
- const getPoolFunctions = () => {
332
- const pool = [];
333
- let nextId = 0;
334
- return [
335
- (reuse) => (reuse ? arrayShift(pool) : null) ?? EMPTY_STRING + nextId++,
336
- (id) => {
337
- if (test(INTEGER, id) && size(pool) < 1e3) {
338
- arrayPush(pool, id);
339
- }
340
- },
341
- ];
342
- };
343
-
344
- const getWildcardedLeaves = (deepIdSet, path = [EMPTY_STRING]) => {
345
- const leaves = [];
346
- const deep = (node, p) =>
347
- p == size(path)
348
- ? arrayPush(leaves, node)
349
- : path[p] === null
350
- ? collForEach(node, (node2) => deep(node2, p + 1))
351
- : arrayForEach([path[p], null], (id) => deep(mapGet(node, id), p + 1));
352
- deep(deepIdSet, 0);
353
- return leaves;
354
- };
355
- const getListenerFunctions = (getThing) => {
356
- let thing;
357
- const [getId, releaseId] = getPoolFunctions();
358
- const allListeners = mapNew();
359
- const addListener = (
360
- listener,
361
- idSetNode,
362
- path,
363
- pathGetters = [],
364
- extraArgsGetter = () => [],
365
- ) => {
366
- thing ??= getThing();
367
- const id = getId(1);
368
- mapSet(allListeners, id, [
369
- listener,
370
- idSetNode,
371
- path,
372
- pathGetters,
373
- extraArgsGetter,
374
- ]);
375
- setAdd(visitTree(idSetNode, path ?? [EMPTY_STRING], setNew), id);
376
- return id;
377
- };
378
- const callListeners = (idSetNode, ids, ...extraArgs) =>
379
- arrayForEach(getWildcardedLeaves(idSetNode, ids), (set) =>
380
- collForEach(set, (id) =>
381
- mapGet(allListeners, id)[0](thing, ...(ids ?? []), ...extraArgs),
382
- ),
383
- );
384
- const delListener = (id) =>
385
- ifNotUndefined(mapGet(allListeners, id), ([, idSetNode, idOrNulls]) => {
386
- visitTree(idSetNode, idOrNulls ?? [EMPTY_STRING], void 0, (idSet) => {
387
- collDel(idSet, id);
388
- return collIsEmpty(idSet) ? 1 : 0;
389
- });
390
- mapSet(allListeners, id);
391
- releaseId(id);
392
- return idOrNulls;
393
- });
394
- const callListener = (id) =>
395
- ifNotUndefined(
396
- mapGet(allListeners, id),
397
- ([listener, , path = [], pathGetters, extraArgsGetter]) => {
398
- const callWithIds = (...ids) => {
399
- const index = size(ids);
400
- index == size(path)
401
- ? listener(thing, ...ids, ...extraArgsGetter(ids))
402
- : isUndefined(path[index])
403
- ? arrayForEach(pathGetters[index]?.(...ids) ?? [], (id2) =>
404
- callWithIds(...ids, id2),
405
- )
406
- : callWithIds(...ids, path[index]);
407
- };
408
- callWithIds();
409
- },
410
- );
411
- return [addListener, callListeners, delListener, callListener];
412
- };
413
-
414
- const createMetrics = getCreateFunction((store) => {
415
- const metricListeners = mapNew();
416
- const [addListener, callListeners, delListenerImpl] = getListenerFunctions(
417
- () => metrics,
418
- );
419
- const [
420
- getStore,
421
- getMetricIds,
422
- forEachMetric,
423
- hasMetric,
424
- getTableId,
425
- getMetric,
426
- setMetric,
427
- ,
428
- setDefinitionAndListen,
429
- delDefinition,
430
- addMetricIdsListener,
431
- destroy,
432
- ] = getDefinableFunctions(
433
- store,
434
- getUndefined,
435
- (value) =>
436
- isNaN(value) ||
437
- isUndefined(value) ||
438
- value === true ||
439
- value === false ||
440
- value === EMPTY_STRING
441
- ? void 0
442
- : value * 1,
443
- addListener,
444
- callListeners,
445
- );
446
- const setMetricDefinition = (
447
- metricId,
448
- tableId,
449
- aggregate,
450
- getNumber,
451
- aggregateAdd,
452
- aggregateRemove,
453
- aggregateReplace,
454
- ) => {
455
- const aggregators = isFunction(aggregate)
456
- ? [aggregate, aggregateAdd, aggregateRemove, aggregateReplace]
457
- : mapGet(numericAggregators, aggregate) ??
458
- mapGet(numericAggregators, SUM);
459
- setDefinitionAndListen(
460
- metricId,
461
- tableId,
462
- (change, changedNumbers, _changedSortKeys, numbers, _sortKeys, force) => {
463
- const oldMetric = getMetric(metricId);
464
- const oldLength = collSize(numbers);
465
- force ||= isUndefined(oldMetric);
466
- change();
467
- let newMetric = getAggregateValue(
468
- oldMetric,
469
- oldLength,
470
- numbers,
471
- changedNumbers,
472
- aggregators,
473
- force,
474
- );
475
- if (!isFiniteNumber(newMetric)) {
476
- newMetric = void 0;
477
- }
478
- if (newMetric != oldMetric) {
479
- setMetric(metricId, newMetric);
480
- callListeners(metricListeners, [metricId], newMetric, oldMetric);
481
- }
482
- },
483
- getRowCellFunction(getNumber, 1),
484
- );
485
- return metrics;
486
- };
487
- const delMetricDefinition = (metricId) => {
488
- delDefinition(metricId);
489
- return metrics;
490
- };
491
- const addMetricListener = (metricId, listener) =>
492
- addListener(listener, metricListeners, [metricId]);
493
- const delListener = (listenerId) => {
494
- delListenerImpl(listenerId);
495
- return metrics;
496
- };
497
- const getListenerStats = () => ({metric: collSize2(metricListeners)});
498
- const metrics = {
499
- setMetricDefinition,
500
- delMetricDefinition,
501
- getStore,
502
- getMetricIds,
503
- forEachMetric,
504
- hasMetric,
505
- getTableId,
506
- getMetric,
507
- addMetricIdsListener,
508
- addMetricListener,
509
- delListener,
510
- destroy,
511
- getListenerStats,
512
- };
513
- return objFreeze(metrics);
514
- });
515
-
516
- export {createMetrics};
@@ -1,183 +0,0 @@
1
- const isUndefined = (thing) => thing == void 0;
2
- const ifNotUndefined = (value, then, otherwise) =>
3
- isUndefined(value) ? otherwise?.() : then(value);
4
- const size = (arrayOrString) => arrayOrString.length;
5
-
6
- const arrayPush = (array, ...values) => array.push(...values);
7
- const arrayShift = (array) => array.shift();
8
-
9
- const object = Object;
10
- const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
11
- const objIds = object.keys;
12
- const objFreeze = object.freeze;
13
- const isObject = (obj) =>
14
- !isUndefined(obj) &&
15
- ifNotUndefined(
16
- getPrototypeOf(obj),
17
- (objPrototype) =>
18
- objPrototype == object.prototype ||
19
- isUndefined(getPrototypeOf(objPrototype)),
20
- () => true,
21
- );
22
- const objSize = (obj) => size(objIds(obj));
23
- const objIsEmpty = (obj) => isObject(obj) && objSize(obj) == 0;
24
-
25
- const collHas = (coll, keyOrValue) => coll?.has(keyOrValue) ?? false;
26
- const collDel = (coll, keyOrValue) => coll?.delete(keyOrValue);
27
-
28
- const mapNew = (entries) => new Map(entries);
29
- const mapGet = (map, key) => map?.get(key);
30
- const mapSet = (map, key, value) =>
31
- isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
32
- const mapEnsure = (map, key, getDefaultValue) => {
33
- if (!collHas(map, key)) {
34
- mapSet(map, key, getDefaultValue());
35
- }
36
- return mapGet(map, key);
37
- };
38
-
39
- const scheduleRunning = mapNew();
40
- const scheduleActions = mapNew();
41
- const createCustomPersister = (
42
- store,
43
- getPersisted,
44
- setPersisted,
45
- addPersisterListener,
46
- delPersisterListener,
47
- onIgnoredError,
48
- [getThing, thing] = [],
49
- scheduleId = [],
50
- ) => {
51
- let listenerId;
52
- let loadSave = 0;
53
- let loads = 0;
54
- let saves = 0;
55
- let listening = 0;
56
- let action;
57
- let listeningHandle;
58
- mapEnsure(scheduleRunning, scheduleId, () => 0);
59
- mapEnsure(scheduleActions, scheduleId, () => []);
60
- const run = async () => {
61
- /* istanbul ignore else */
62
- if (!mapGet(scheduleRunning, scheduleId)) {
63
- mapSet(scheduleRunning, scheduleId, 1);
64
- while (
65
- !isUndefined((action = arrayShift(mapGet(scheduleActions, scheduleId))))
66
- ) {
67
- try {
68
- await action();
69
- } catch (error) {
70
- /* istanbul ignore next */
71
- onIgnoredError?.(error);
72
- }
73
- }
74
- mapSet(scheduleRunning, scheduleId, 0);
75
- }
76
- };
77
- const loadLock = async (actions) => {
78
- /* istanbul ignore else */
79
- if (loadSave != 2) {
80
- loadSave = 1;
81
- {
82
- loads++;
83
- }
84
- await persister.schedule(async () => {
85
- await actions();
86
- loadSave = 0;
87
- });
88
- }
89
- return persister;
90
- };
91
- const persister = {
92
- load: async (initialTables, initialValues) =>
93
- await loadLock(async () => {
94
- try {
95
- store.setContent(await getPersisted());
96
- } catch {
97
- store.setContent([initialTables, initialValues]);
98
- }
99
- }),
100
- startAutoLoad: async (initialTables = {}, initialValues = {}) => {
101
- persister.stopAutoLoad();
102
- await persister.load(initialTables, initialValues);
103
- listening = 1;
104
- listeningHandle = addPersisterListener(
105
- async (getContent, getTransactionChanges) => {
106
- if (getTransactionChanges) {
107
- const transactionChanges = getTransactionChanges();
108
- await loadLock(async () =>
109
- store.setTransactionChanges(transactionChanges),
110
- );
111
- } else {
112
- await loadLock(async () => {
113
- try {
114
- store.setContent(getContent?.() ?? (await getPersisted()));
115
- } catch (error) {
116
- onIgnoredError?.(error);
117
- }
118
- });
119
- }
120
- },
121
- );
122
- return persister;
123
- },
124
- stopAutoLoad: () => {
125
- if (listening) {
126
- delPersisterListener(listeningHandle);
127
- listeningHandle = void 0;
128
- listening = 0;
129
- }
130
- return persister;
131
- },
132
- save: async (getTransactionChanges) => {
133
- /* istanbul ignore else */
134
- if (loadSave != 1) {
135
- loadSave = 2;
136
- {
137
- saves++;
138
- }
139
- await persister.schedule(async () => {
140
- try {
141
- await setPersisted(store.getContent, getTransactionChanges);
142
- } catch (error) {
143
- /* istanbul ignore next */
144
- onIgnoredError?.(error);
145
- }
146
- loadSave = 0;
147
- });
148
- }
149
- return persister;
150
- },
151
- startAutoSave: async () => {
152
- await persister.stopAutoSave().save();
153
- listenerId = store.addDidFinishTransactionListener(
154
- (_store, getTransactionChanges) => {
155
- const [tableChanges, valueChanges] = getTransactionChanges();
156
- if (!objIsEmpty(tableChanges) || !objIsEmpty(valueChanges)) {
157
- persister.save(() => [tableChanges, valueChanges]);
158
- }
159
- },
160
- );
161
- return persister;
162
- },
163
- stopAutoSave: () => {
164
- ifNotUndefined(listenerId, store.delListener);
165
- listenerId = void 0;
166
- return persister;
167
- },
168
- schedule: async (...actions) => {
169
- arrayPush(mapGet(scheduleActions, scheduleId), ...actions);
170
- await run();
171
- return persister;
172
- },
173
- getStore: () => store,
174
- destroy: () => persister.stopAutoLoad().stopAutoSave(),
175
- getStats: () => ({loads, saves}),
176
- };
177
- if (getThing) {
178
- persister[getThing] = () => thing;
179
- }
180
- return objFreeze(persister);
181
- };
182
-
183
- export {createCustomPersister};