tinybase 5.0.0-beta.10 → 5.0.0-beta.11

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 (322) hide show
  1. package/lib/cjs/mergeable-store.cjs +1 -1
  2. package/lib/cjs/mergeable-store.cjs.gz +0 -0
  3. package/lib/cjs/persisters/persister-automerge.cjs +1 -1
  4. package/lib/cjs/persisters/persister-automerge.cjs.gz +0 -0
  5. package/lib/cjs/persisters/persister-browser.cjs +1 -1
  6. package/lib/cjs/persisters/persister-browser.cjs.gz +0 -0
  7. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  8. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  9. package/lib/cjs/persisters/persister-electric-sql.cjs +1 -1
  10. package/lib/cjs/persisters/persister-electric-sql.cjs.gz +0 -0
  11. package/lib/cjs/persisters/persister-expo-sqlite-next.cjs +1 -1
  12. package/lib/cjs/persisters/persister-expo-sqlite-next.cjs.gz +0 -0
  13. package/lib/cjs/persisters/persister-expo-sqlite.cjs +1 -1
  14. package/lib/cjs/persisters/persister-expo-sqlite.cjs.gz +0 -0
  15. package/lib/cjs/persisters/persister-file.cjs +1 -1
  16. package/lib/cjs/persisters/persister-file.cjs.gz +0 -0
  17. package/lib/cjs/persisters/persister-indexed-db.cjs +1 -1
  18. package/lib/cjs/persisters/persister-indexed-db.cjs.gz +0 -0
  19. package/lib/cjs/persisters/persister-libsql.cjs +1 -1
  20. package/lib/cjs/persisters/persister-libsql.cjs.gz +0 -0
  21. package/lib/cjs/persisters/persister-partykit-client.cjs +1 -1
  22. package/lib/cjs/persisters/persister-partykit-client.cjs.gz +0 -0
  23. package/lib/cjs/persisters/persister-powersync.cjs +1 -1
  24. package/lib/cjs/persisters/persister-powersync.cjs.gz +0 -0
  25. package/lib/cjs/persisters/persister-remote.cjs +1 -1
  26. package/lib/cjs/persisters/persister-remote.cjs.gz +0 -0
  27. package/lib/cjs/persisters/persister-sqlite-wasm.cjs +1 -1
  28. package/lib/cjs/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  29. package/lib/cjs/persisters/persister-sqlite3.cjs +1 -1
  30. package/lib/cjs/persisters/persister-sqlite3.cjs.gz +0 -0
  31. package/lib/cjs/persisters/persister-yjs.cjs +1 -1
  32. package/lib/cjs/persisters/persister-yjs.cjs.gz +0 -0
  33. package/lib/cjs/persisters.cjs +1 -1
  34. package/lib/cjs/persisters.cjs.gz +0 -0
  35. package/lib/cjs/store.cjs +1 -1
  36. package/lib/cjs/store.cjs.gz +0 -0
  37. package/lib/cjs/synchronizers/synchronizer-local.cjs +1 -1
  38. package/lib/cjs/synchronizers/synchronizer-local.cjs.gz +0 -0
  39. package/lib/cjs/synchronizers/synchronizer-ws-client.cjs +1 -1
  40. package/lib/cjs/synchronizers/synchronizer-ws-client.cjs.gz +0 -0
  41. package/lib/cjs/synchronizers/synchronizer-ws-server.cjs +1 -1
  42. package/lib/cjs/synchronizers/synchronizer-ws-server.cjs.gz +0 -0
  43. package/lib/cjs/synchronizers.cjs +1 -1
  44. package/lib/cjs/synchronizers.cjs.gz +0 -0
  45. package/lib/cjs/tinybase.cjs +1 -1
  46. package/lib/cjs/tinybase.cjs.gz +0 -0
  47. package/lib/cjs/ui-react-dom-debug.cjs +1 -1
  48. package/lib/cjs/ui-react-dom-debug.cjs.gz +0 -0
  49. package/lib/cjs-es6/mergeable-store.cjs +1 -1
  50. package/lib/cjs-es6/mergeable-store.cjs.gz +0 -0
  51. package/lib/cjs-es6/persisters/persister-automerge.cjs +1 -1
  52. package/lib/cjs-es6/persisters/persister-automerge.cjs.gz +0 -0
  53. package/lib/cjs-es6/persisters/persister-browser.cjs +1 -1
  54. package/lib/cjs-es6/persisters/persister-browser.cjs.gz +0 -0
  55. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  56. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  57. package/lib/cjs-es6/persisters/persister-electric-sql.cjs +1 -1
  58. package/lib/cjs-es6/persisters/persister-electric-sql.cjs.gz +0 -0
  59. package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs +1 -1
  60. package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs.gz +0 -0
  61. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs +1 -1
  62. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs.gz +0 -0
  63. package/lib/cjs-es6/persisters/persister-file.cjs +1 -1
  64. package/lib/cjs-es6/persisters/persister-file.cjs.gz +0 -0
  65. package/lib/cjs-es6/persisters/persister-indexed-db.cjs +1 -1
  66. package/lib/cjs-es6/persisters/persister-indexed-db.cjs.gz +0 -0
  67. package/lib/cjs-es6/persisters/persister-libsql.cjs +1 -1
  68. package/lib/cjs-es6/persisters/persister-libsql.cjs.gz +0 -0
  69. package/lib/cjs-es6/persisters/persister-partykit-client.cjs +1 -1
  70. package/lib/cjs-es6/persisters/persister-partykit-client.cjs.gz +0 -0
  71. package/lib/cjs-es6/persisters/persister-powersync.cjs +1 -1
  72. package/lib/cjs-es6/persisters/persister-powersync.cjs.gz +0 -0
  73. package/lib/cjs-es6/persisters/persister-remote.cjs +1 -1
  74. package/lib/cjs-es6/persisters/persister-remote.cjs.gz +0 -0
  75. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs +1 -1
  76. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  77. package/lib/cjs-es6/persisters/persister-sqlite3.cjs +1 -1
  78. package/lib/cjs-es6/persisters/persister-sqlite3.cjs.gz +0 -0
  79. package/lib/cjs-es6/persisters/persister-yjs.cjs +1 -1
  80. package/lib/cjs-es6/persisters/persister-yjs.cjs.gz +0 -0
  81. package/lib/cjs-es6/persisters.cjs +1 -1
  82. package/lib/cjs-es6/persisters.cjs.gz +0 -0
  83. package/lib/cjs-es6/store.cjs +1 -1
  84. package/lib/cjs-es6/store.cjs.gz +0 -0
  85. package/lib/cjs-es6/synchronizers/synchronizer-local.cjs +1 -1
  86. package/lib/cjs-es6/synchronizers/synchronizer-local.cjs.gz +0 -0
  87. package/lib/cjs-es6/synchronizers/synchronizer-ws-client.cjs +1 -1
  88. package/lib/cjs-es6/synchronizers/synchronizer-ws-client.cjs.gz +0 -0
  89. package/lib/cjs-es6/synchronizers/synchronizer-ws-server.cjs +1 -1
  90. package/lib/cjs-es6/synchronizers/synchronizer-ws-server.cjs.gz +0 -0
  91. package/lib/cjs-es6/synchronizers.cjs +1 -1
  92. package/lib/cjs-es6/synchronizers.cjs.gz +0 -0
  93. package/lib/cjs-es6/tinybase.cjs +1 -1
  94. package/lib/cjs-es6/tinybase.cjs.gz +0 -0
  95. package/lib/cjs-es6/ui-react-dom-debug.cjs +1 -1
  96. package/lib/cjs-es6/ui-react-dom-debug.cjs.gz +0 -0
  97. package/lib/debug/mergeable-store.js +1 -1
  98. package/lib/debug/persisters/persister-automerge.js +113 -101
  99. package/lib/debug/persisters/persister-browser.js +113 -97
  100. package/lib/debug/persisters/persister-cr-sqlite-wasm.js +113 -102
  101. package/lib/debug/persisters/persister-electric-sql.js +113 -102
  102. package/lib/debug/persisters/persister-expo-sqlite-next.js +113 -102
  103. package/lib/debug/persisters/persister-expo-sqlite.js +113 -102
  104. package/lib/debug/persisters/persister-file.js +108 -96
  105. package/lib/debug/persisters/persister-indexed-db.js +108 -96
  106. package/lib/debug/persisters/persister-libsql.js +113 -102
  107. package/lib/debug/persisters/persister-partykit-client.js +112 -100
  108. package/lib/debug/persisters/persister-powersync.js +113 -102
  109. package/lib/debug/persisters/persister-remote.js +108 -96
  110. package/lib/debug/persisters/persister-sqlite-wasm.js +113 -102
  111. package/lib/debug/persisters/persister-sqlite3.js +113 -102
  112. package/lib/debug/persisters/persister-yjs.js +113 -101
  113. package/lib/debug/persisters.js +107 -95
  114. package/lib/debug/store.js +1 -1
  115. package/lib/debug/synchronizers/synchronizer-local.js +114 -102
  116. package/lib/debug/synchronizers/synchronizer-ws-client.js +113 -101
  117. package/lib/debug/synchronizers/synchronizer-ws-server.js +151 -6
  118. package/lib/debug/synchronizers.js +113 -101
  119. package/lib/debug/tinybase.js +114 -102
  120. package/lib/debug/ui-react-dom.js +114 -98
  121. package/lib/es6/mergeable-store.js +1 -1
  122. package/lib/es6/mergeable-store.js.gz +0 -0
  123. package/lib/es6/persisters/persister-automerge.js +1 -1
  124. package/lib/es6/persisters/persister-automerge.js.gz +0 -0
  125. package/lib/es6/persisters/persister-browser.js +1 -1
  126. package/lib/es6/persisters/persister-browser.js.gz +0 -0
  127. package/lib/es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  128. package/lib/es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  129. package/lib/es6/persisters/persister-electric-sql.js +1 -1
  130. package/lib/es6/persisters/persister-electric-sql.js.gz +0 -0
  131. package/lib/es6/persisters/persister-expo-sqlite-next.js +1 -1
  132. package/lib/es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
  133. package/lib/es6/persisters/persister-expo-sqlite.js +1 -1
  134. package/lib/es6/persisters/persister-expo-sqlite.js.gz +0 -0
  135. package/lib/es6/persisters/persister-file.js +1 -1
  136. package/lib/es6/persisters/persister-file.js.gz +0 -0
  137. package/lib/es6/persisters/persister-indexed-db.js +1 -1
  138. package/lib/es6/persisters/persister-indexed-db.js.gz +0 -0
  139. package/lib/es6/persisters/persister-libsql.js +1 -1
  140. package/lib/es6/persisters/persister-libsql.js.gz +0 -0
  141. package/lib/es6/persisters/persister-partykit-client.js +1 -1
  142. package/lib/es6/persisters/persister-partykit-client.js.gz +0 -0
  143. package/lib/es6/persisters/persister-powersync.js +1 -1
  144. package/lib/es6/persisters/persister-powersync.js.gz +0 -0
  145. package/lib/es6/persisters/persister-remote.js +1 -1
  146. package/lib/es6/persisters/persister-remote.js.gz +0 -0
  147. package/lib/es6/persisters/persister-sqlite-wasm.js +1 -1
  148. package/lib/es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  149. package/lib/es6/persisters/persister-sqlite3.js +1 -1
  150. package/lib/es6/persisters/persister-sqlite3.js.gz +0 -0
  151. package/lib/es6/persisters/persister-yjs.js +1 -1
  152. package/lib/es6/persisters/persister-yjs.js.gz +0 -0
  153. package/lib/es6/persisters.js +1 -1
  154. package/lib/es6/persisters.js.gz +0 -0
  155. package/lib/es6/store.js +1 -1
  156. package/lib/es6/store.js.gz +0 -0
  157. package/lib/es6/synchronizers/synchronizer-local.js +1 -1
  158. package/lib/es6/synchronizers/synchronizer-local.js.gz +0 -0
  159. package/lib/es6/synchronizers/synchronizer-ws-client.js +1 -1
  160. package/lib/es6/synchronizers/synchronizer-ws-client.js.gz +0 -0
  161. package/lib/es6/synchronizers/synchronizer-ws-server.js +1 -1
  162. package/lib/es6/synchronizers/synchronizer-ws-server.js.gz +0 -0
  163. package/lib/es6/synchronizers.js +1 -1
  164. package/lib/es6/synchronizers.js.gz +0 -0
  165. package/lib/es6/tinybase.js +1 -1
  166. package/lib/es6/tinybase.js.gz +0 -0
  167. package/lib/es6/ui-react-dom-debug.js +1 -1
  168. package/lib/es6/ui-react-dom-debug.js.gz +0 -0
  169. package/lib/mergeable-store.js +1 -1
  170. package/lib/mergeable-store.js.gz +0 -0
  171. package/lib/persisters/persister-automerge.js +1 -1
  172. package/lib/persisters/persister-automerge.js.gz +0 -0
  173. package/lib/persisters/persister-browser.js +1 -1
  174. package/lib/persisters/persister-browser.js.gz +0 -0
  175. package/lib/persisters/persister-cr-sqlite-wasm.js +1 -1
  176. package/lib/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  177. package/lib/persisters/persister-electric-sql.js +1 -1
  178. package/lib/persisters/persister-electric-sql.js.gz +0 -0
  179. package/lib/persisters/persister-expo-sqlite-next.js +1 -1
  180. package/lib/persisters/persister-expo-sqlite-next.js.gz +0 -0
  181. package/lib/persisters/persister-expo-sqlite.js +1 -1
  182. package/lib/persisters/persister-expo-sqlite.js.gz +0 -0
  183. package/lib/persisters/persister-file.js +1 -1
  184. package/lib/persisters/persister-file.js.gz +0 -0
  185. package/lib/persisters/persister-indexed-db.js +1 -1
  186. package/lib/persisters/persister-indexed-db.js.gz +0 -0
  187. package/lib/persisters/persister-libsql.js +1 -1
  188. package/lib/persisters/persister-libsql.js.gz +0 -0
  189. package/lib/persisters/persister-partykit-client.js +1 -1
  190. package/lib/persisters/persister-partykit-client.js.gz +0 -0
  191. package/lib/persisters/persister-powersync.js +1 -1
  192. package/lib/persisters/persister-powersync.js.gz +0 -0
  193. package/lib/persisters/persister-remote.js +1 -1
  194. package/lib/persisters/persister-remote.js.gz +0 -0
  195. package/lib/persisters/persister-sqlite-wasm.js +1 -1
  196. package/lib/persisters/persister-sqlite-wasm.js.gz +0 -0
  197. package/lib/persisters/persister-sqlite3.js +1 -1
  198. package/lib/persisters/persister-sqlite3.js.gz +0 -0
  199. package/lib/persisters/persister-yjs.js +1 -1
  200. package/lib/persisters/persister-yjs.js.gz +0 -0
  201. package/lib/persisters.js +1 -1
  202. package/lib/persisters.js.gz +0 -0
  203. package/lib/store.js +1 -1
  204. package/lib/store.js.gz +0 -0
  205. package/lib/synchronizers/synchronizer-local.js +1 -1
  206. package/lib/synchronizers/synchronizer-local.js.gz +0 -0
  207. package/lib/synchronizers/synchronizer-ws-client.js +1 -1
  208. package/lib/synchronizers/synchronizer-ws-client.js.gz +0 -0
  209. package/lib/synchronizers/synchronizer-ws-server.js +1 -1
  210. package/lib/synchronizers/synchronizer-ws-server.js.gz +0 -0
  211. package/lib/synchronizers.js +1 -1
  212. package/lib/synchronizers.js.gz +0 -0
  213. package/lib/tinybase.js +1 -1
  214. package/lib/tinybase.js.gz +0 -0
  215. package/lib/types/persisters/persister-browser.d.ts +2 -2
  216. package/lib/types/persisters/persister-file.d.ts +1 -1
  217. package/lib/types/persisters.d.ts +73 -47
  218. package/lib/types/synchronizers/synchronizer-ws-server.d.ts +24 -3
  219. package/lib/types/synchronizers.d.ts +1 -1
  220. package/lib/types/with-schemas/persisters/persister-browser.d.ts +2 -2
  221. package/lib/types/with-schemas/persisters/persister-file.d.ts +1 -1
  222. package/lib/types/with-schemas/persisters.d.ts +99 -87
  223. package/lib/types/with-schemas/synchronizers/synchronizer-ws-server.d.ts +24 -3
  224. package/lib/types/with-schemas/synchronizers.d.ts +1 -1
  225. package/lib/umd/mergeable-store.js +1 -1
  226. package/lib/umd/mergeable-store.js.gz +0 -0
  227. package/lib/umd/persisters/persister-automerge.js +1 -1
  228. package/lib/umd/persisters/persister-automerge.js.gz +0 -0
  229. package/lib/umd/persisters/persister-browser.js +1 -1
  230. package/lib/umd/persisters/persister-browser.js.gz +0 -0
  231. package/lib/umd/persisters/persister-cr-sqlite-wasm.js +1 -1
  232. package/lib/umd/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  233. package/lib/umd/persisters/persister-electric-sql.js +1 -1
  234. package/lib/umd/persisters/persister-electric-sql.js.gz +0 -0
  235. package/lib/umd/persisters/persister-expo-sqlite-next.js +1 -1
  236. package/lib/umd/persisters/persister-expo-sqlite-next.js.gz +0 -0
  237. package/lib/umd/persisters/persister-expo-sqlite.js +1 -1
  238. package/lib/umd/persisters/persister-expo-sqlite.js.gz +0 -0
  239. package/lib/umd/persisters/persister-file.js +1 -1
  240. package/lib/umd/persisters/persister-file.js.gz +0 -0
  241. package/lib/umd/persisters/persister-indexed-db.js +1 -1
  242. package/lib/umd/persisters/persister-indexed-db.js.gz +0 -0
  243. package/lib/umd/persisters/persister-libsql.js +1 -1
  244. package/lib/umd/persisters/persister-libsql.js.gz +0 -0
  245. package/lib/umd/persisters/persister-partykit-client.js +1 -1
  246. package/lib/umd/persisters/persister-partykit-client.js.gz +0 -0
  247. package/lib/umd/persisters/persister-powersync.js +1 -1
  248. package/lib/umd/persisters/persister-powersync.js.gz +0 -0
  249. package/lib/umd/persisters/persister-remote.js +1 -1
  250. package/lib/umd/persisters/persister-remote.js.gz +0 -0
  251. package/lib/umd/persisters/persister-sqlite-wasm.js +1 -1
  252. package/lib/umd/persisters/persister-sqlite-wasm.js.gz +0 -0
  253. package/lib/umd/persisters/persister-sqlite3.js +1 -1
  254. package/lib/umd/persisters/persister-sqlite3.js.gz +0 -0
  255. package/lib/umd/persisters/persister-yjs.js +1 -1
  256. package/lib/umd/persisters/persister-yjs.js.gz +0 -0
  257. package/lib/umd/persisters.js +1 -1
  258. package/lib/umd/persisters.js.gz +0 -0
  259. package/lib/umd/store.js +1 -1
  260. package/lib/umd/store.js.gz +0 -0
  261. package/lib/umd/synchronizers/synchronizer-local.js +1 -1
  262. package/lib/umd/synchronizers/synchronizer-local.js.gz +0 -0
  263. package/lib/umd/synchronizers/synchronizer-ws-client.js +1 -1
  264. package/lib/umd/synchronizers/synchronizer-ws-client.js.gz +0 -0
  265. package/lib/umd/synchronizers/synchronizer-ws-server.js +1 -1
  266. package/lib/umd/synchronizers/synchronizer-ws-server.js.gz +0 -0
  267. package/lib/umd/synchronizers.js +1 -1
  268. package/lib/umd/synchronizers.js.gz +0 -0
  269. package/lib/umd/tinybase.js +1 -1
  270. package/lib/umd/tinybase.js.gz +0 -0
  271. package/lib/umd/ui-react-dom-debug.js +1 -1
  272. package/lib/umd/ui-react-dom-debug.js.gz +0 -0
  273. package/lib/umd-es6/mergeable-store.js +1 -1
  274. package/lib/umd-es6/mergeable-store.js.gz +0 -0
  275. package/lib/umd-es6/persisters/persister-automerge.js +1 -1
  276. package/lib/umd-es6/persisters/persister-automerge.js.gz +0 -0
  277. package/lib/umd-es6/persisters/persister-browser.js +1 -1
  278. package/lib/umd-es6/persisters/persister-browser.js.gz +0 -0
  279. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  280. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  281. package/lib/umd-es6/persisters/persister-electric-sql.js +1 -1
  282. package/lib/umd-es6/persisters/persister-electric-sql.js.gz +0 -0
  283. package/lib/umd-es6/persisters/persister-expo-sqlite-next.js +1 -1
  284. package/lib/umd-es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
  285. package/lib/umd-es6/persisters/persister-expo-sqlite.js +1 -1
  286. package/lib/umd-es6/persisters/persister-expo-sqlite.js.gz +0 -0
  287. package/lib/umd-es6/persisters/persister-file.js +1 -1
  288. package/lib/umd-es6/persisters/persister-file.js.gz +0 -0
  289. package/lib/umd-es6/persisters/persister-indexed-db.js +1 -1
  290. package/lib/umd-es6/persisters/persister-indexed-db.js.gz +0 -0
  291. package/lib/umd-es6/persisters/persister-libsql.js +1 -1
  292. package/lib/umd-es6/persisters/persister-libsql.js.gz +0 -0
  293. package/lib/umd-es6/persisters/persister-partykit-client.js +1 -1
  294. package/lib/umd-es6/persisters/persister-partykit-client.js.gz +0 -0
  295. package/lib/umd-es6/persisters/persister-powersync.js +1 -1
  296. package/lib/umd-es6/persisters/persister-powersync.js.gz +0 -0
  297. package/lib/umd-es6/persisters/persister-remote.js +1 -1
  298. package/lib/umd-es6/persisters/persister-remote.js.gz +0 -0
  299. package/lib/umd-es6/persisters/persister-sqlite-wasm.js +1 -1
  300. package/lib/umd-es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  301. package/lib/umd-es6/persisters/persister-sqlite3.js +1 -1
  302. package/lib/umd-es6/persisters/persister-sqlite3.js.gz +0 -0
  303. package/lib/umd-es6/persisters/persister-yjs.js +1 -1
  304. package/lib/umd-es6/persisters/persister-yjs.js.gz +0 -0
  305. package/lib/umd-es6/persisters.js +1 -1
  306. package/lib/umd-es6/persisters.js.gz +0 -0
  307. package/lib/umd-es6/store.js +1 -1
  308. package/lib/umd-es6/store.js.gz +0 -0
  309. package/lib/umd-es6/synchronizers/synchronizer-local.js +1 -1
  310. package/lib/umd-es6/synchronizers/synchronizer-local.js.gz +0 -0
  311. package/lib/umd-es6/synchronizers/synchronizer-ws-client.js +1 -1
  312. package/lib/umd-es6/synchronizers/synchronizer-ws-client.js.gz +0 -0
  313. package/lib/umd-es6/synchronizers/synchronizer-ws-server.js +1 -1
  314. package/lib/umd-es6/synchronizers/synchronizer-ws-server.js.gz +0 -0
  315. package/lib/umd-es6/synchronizers.js +1 -1
  316. package/lib/umd-es6/synchronizers.js.gz +0 -0
  317. package/lib/umd-es6/tinybase.js +1 -1
  318. package/lib/umd-es6/tinybase.js.gz +0 -0
  319. package/lib/umd-es6/ui-react-dom-debug.js +1 -1
  320. package/lib/umd-es6/ui-react-dom-debug.js.gz +0 -0
  321. package/package.json +1 -1
  322. package/readme.md +2 -2
@@ -31,7 +31,7 @@ import {Persister} from '../persisters';
31
31
  * @since v4.3.14
32
32
  */
33
33
  export interface SessionPersister<Schemas extends OptionalSchemas>
34
- extends Persister<Schemas, true> {
34
+ extends Persister<Schemas, 3> {
35
35
  /**
36
36
  * The getStorageName method returns the unique key of the storage location
37
37
  * the Store is being persisted to.
@@ -67,7 +67,7 @@ export interface SessionPersister<Schemas extends OptionalSchemas>
67
67
  * @since v4.3.14
68
68
  */
69
69
  export interface LocalPersister<Schemas extends OptionalSchemas>
70
- extends Persister<Schemas, true> {
70
+ extends Persister<Schemas, 3> {
71
71
  /**
72
72
  * The getStorageName method returns the unique key of the storage location
73
73
  * the Store is being persisted to.
@@ -22,7 +22,7 @@ import {Persister} from '../persisters';
22
22
  * @since v4.3.14
23
23
  */
24
24
  export interface FilePersister<Schemas extends OptionalSchemas>
25
- extends Persister<Schemas, true> {
25
+ extends Persister<Schemas, 3> {
26
26
  /**
27
27
  * The getFilePath method returns the location of the local file the Store is
28
28
  * being persisted to.
@@ -55,23 +55,48 @@ import {
55
55
  import {TableIdFromSchema} from './internal/store';
56
56
 
57
57
  /**
58
- * The PersisterStats type describes the number of times a Persister object has
59
- * loaded or saved data.
60
- *
61
- * A PersisterStats object is returned from the getStats method, and is only
62
- * populated in a debug build.
63
- * @category Development
58
+ * The StoreTypes type
64
59
  */
65
- export type PersisterStats = {
66
- /**
67
- * The number of times data has been loaded.
68
- */
69
- loads?: number;
70
- /**
71
- * The number of times data has been saved.
72
- */
73
- saves?: number;
74
- };
60
+ export type StoreTypes =
61
+ | 1 // Store only
62
+ | 2 // MergeableStore only
63
+ | 3; // Store and MergeableStore
64
+
65
+ /**
66
+ * The PersistedStore type
67
+ */
68
+ export type PersistedStore<
69
+ Schemas extends OptionalSchemas,
70
+ StoreType extends StoreTypes = 1,
71
+ > = StoreType extends 3
72
+ ? Store<Schemas> | MergeableStore<Schemas>
73
+ : StoreType extends 2
74
+ ? MergeableStore<Schemas>
75
+ : Store<Schemas>;
76
+
77
+ /**
78
+ * The PersistedContent type
79
+ */
80
+ export type PersistedContent<
81
+ Schemas extends OptionalSchemas,
82
+ StoreType extends StoreTypes = 1,
83
+ > = StoreType extends 3
84
+ ? Content<Schemas> | MergeableContent<Schemas>
85
+ : StoreType extends 2
86
+ ? MergeableContent<Schemas>
87
+ : Content<Schemas>;
88
+
89
+ /**
90
+ * The PersistedChanges type
91
+ */
92
+ export type PersistedChanges<
93
+ Schemas extends OptionalSchemas,
94
+ StoreType extends StoreTypes = 1,
95
+ > = StoreType extends 3
96
+ ? Changes<Schemas> | MergeableChanges<Schemas>
97
+ : StoreType extends 2
98
+ ? MergeableChanges<Schemas>
99
+ : Changes<Schemas>;
75
100
 
76
101
  /**
77
102
  * A PersisterListener is a callback that lets a Persister inform the Store that
@@ -80,41 +105,52 @@ export type PersisterStats = {
80
105
  * This has schema-based typing. The following is a simplified representation:
81
106
  *
82
107
  * ```ts override
83
- * export type PersisterListener<SupportsMergeableStore extends boolean = false> =
84
- * (
85
- * getContent?: () =>
86
- * | Content
87
- * | (SupportsMergeableStore extends true ? MergeableContent : never),
88
- * getChanges?: () =>
89
- * | Changes
90
- * | (SupportsMergeableStore extends true ? MergeableChanges : never),
91
- * ) => void;
108
+ * export type PersisterListener<StoreType extends StoreTypes = 1> = (
109
+ * content?: PersistedContent<StoreType>,
110
+ * changes?: PersistedChanges<StoreType>,
111
+ * ) => void;
92
112
  * ```
93
113
  *
94
- * If the listener has the `getChanges` parameter, it will be used to make an
95
- * incremental change to the Store. If not, but the `getContent` function _is_
96
- * available, that will be used to make a wholesale change to the Store. If
97
- * neither are present, the content will be loaded from the Persister's load
98
- * method.
99
- * @param getContent An optional function that, if provided, returns an array of
100
- * Store content and can be used to immediately wholesale update the Store.
101
- * @param getChanges An optional function that, if provided, returns a Changes
102
- * object and can be used to immediately incrementally update the Store.
114
+ * If the listener is called with the `changes` parameter, it will be used to
115
+ * make an incremental change to the Store. If not, but the `content` parameter
116
+ * is available, that will be used to make a wholesale change to the Store. If
117
+ * neither are present, the content will be loaded using the Persister's load
118
+ * method. Prior to v5.0, these parameters were callbacks.
119
+ * @param content If provided, this is a Content object from the the Persister
120
+ * that will be used to immediately wholesale update the Store.
121
+ * @param changes If provided, this is a Changes object from the the Persister
122
+ * that will be used to immediately incrementally update the Store. This takes
123
+ * priority over the content argument above if present.
103
124
  * @category Creation
104
125
  * @since v4.0.0
105
126
  */
106
127
  export type PersisterListener<
107
128
  Schemas extends OptionalSchemas,
108
- SupportsMergeableStore extends boolean = false,
129
+ StoreType extends StoreTypes = 1,
109
130
  > = (
110
- getContent?: () =>
111
- | Content<Schemas, true>
112
- | (SupportsMergeableStore extends true ? MergeableContent<Schemas> : never),
113
- getChanges?: () =>
114
- | Changes<Schemas>
115
- | (SupportsMergeableStore extends true ? MergeableChanges<Schemas> : never),
131
+ content?: PersistedContent<Schemas, StoreType>,
132
+ changes?: PersistedChanges<Schemas, StoreType>,
116
133
  ) => void;
117
134
 
135
+ /**
136
+ * The PersisterStats type describes the number of times a Persister object has
137
+ * loaded or saved data.
138
+ *
139
+ * A PersisterStats object is returned from the getStats method, and is only
140
+ * populated in a debug build.
141
+ * @category Development
142
+ */
143
+ export type PersisterStats = {
144
+ /**
145
+ * The number of times data has been loaded.
146
+ */
147
+ loads?: number;
148
+ /**
149
+ * The number of times data has been saved.
150
+ */
151
+ saves?: number;
152
+ };
153
+
118
154
  /**
119
155
  * The DatabasePersisterConfig type describes the configuration of a
120
156
  * database-oriented Persister, such as those for SQLite.
@@ -683,7 +719,7 @@ export type DpcTabularValues = {
683
719
  */
684
720
  export interface Persister<
685
721
  in out Schemas extends OptionalSchemas,
686
- SupportsMergeableStore extends boolean = false,
722
+ StoreType extends StoreTypes = 1,
687
723
  > {
688
724
  /**
689
725
  * The load method gets persisted data from storage, and loads it into the
@@ -1063,9 +1099,7 @@ export interface Persister<
1063
1099
  * This has schema-based typing. The following is a simplified representation:
1064
1100
  *
1065
1101
  * ```ts override
1066
- * getStore(): SupportsMergeableStore extends true
1067
- * ? Store | MergeableStore
1068
- * : Store;
1102
+ * getStore(): PersistedStore<StoreType>;
1069
1103
  * ```
1070
1104
  *
1071
1105
  * ```js
@@ -1081,9 +1115,7 @@ export interface Persister<
1081
1115
  * ```
1082
1116
  * @category Getter
1083
1117
  */
1084
- getStore(): SupportsMergeableStore extends true
1085
- ? Store<Schemas> | MergeableStore<Schemas>
1086
- : Store<Schemas>;
1118
+ getStore(): PersistedStore<Schemas, StoreType>;
1087
1119
 
1088
1120
  /**
1089
1121
  * The destroy method should be called when this Persister object is no longer
@@ -1169,29 +1201,21 @@ export interface Persister<
1169
1201
  * ```ts override
1170
1202
  * createCustomPersister<
1171
1203
  * ListeningHandle,
1172
- * SupportsMergeableStore extends boolean = false,
1204
+ * StoreType extends StoreTypes = 1,
1173
1205
  * >(
1174
- * store: Store | (SupportsMergeableStore extends true ? MergeableStore : never),
1175
- * getPersisted: () => Promise<
1176
- * | Content
1177
- * | (SupportsMergeableStore extends true ? MergeableContent : never)
1178
- * | undefined
1179
- * >,
1206
+ * store: PersistedStore<StoreType>,
1207
+ * getPersisted: () => Promise<PersistedContent<StoreType> | undefined>,
1180
1208
  * setPersisted: (
1181
- * getContent: () =>
1182
- * | Content
1183
- * | (SupportsMergeableStore extends true ? MergeableContent : never),
1184
- * getChanges?: () =>
1185
- * | Changes
1186
- * | (SupportsMergeableStore extends true ? MergeableChanges : never),
1209
+ * getContent: () => PersistedContent<StoreType>,
1210
+ * changes?: PersistedChanges<StoreType>,
1187
1211
  * ) => Promise<void>,
1188
1212
  * addPersisterListener: (
1189
- * listener: PersisterListener<SupportsMergeableStore>,
1213
+ * listener: PersisterListener<StoreType>,
1190
1214
  * ) => ListeningHandle,
1191
1215
  * delPersisterListener: (listeningHandle: ListeningHandle) => void,
1192
1216
  * onIgnoredError?: (error: any) => void,
1193
- * supportsMergeableStore?: SupportsMergeableStore,
1194
- * ): Persister<SupportsMergeableStore>;
1217
+ * supportedStoreType?: StoreType,
1218
+ * ): Persister<StoreType>;
1195
1219
  * ```
1196
1220
  *
1197
1221
  * As well as providing a reference to the Store to persist, you must provide
@@ -1216,7 +1240,9 @@ export interface Persister<
1216
1240
  * the persistence layer (or `undefined` if not present).
1217
1241
  * @param setPersisted An asynchronous function which will send content to the
1218
1242
  * persistence layer. Since v4.0, it receives functions for getting the Store
1219
- * content and information about the changes made during a transaction.
1243
+ * content and information about the changes made during a transaction. Since
1244
+ * v5.0, the changes are received directly by reference, rather than an
1245
+ * accessor.
1220
1246
  * @param addPersisterListener A function that will register a `listener`
1221
1247
  * listener on underlying changes to the persistence layer. You can return a
1222
1248
  * listening handle that will be provided again when `delPersisterListener` is
@@ -1271,32 +1297,18 @@ export interface Persister<
1271
1297
  export function createCustomPersister<
1272
1298
  Schemas extends OptionalSchemas,
1273
1299
  ListeningHandle,
1274
- SupportsMergeableStore extends boolean,
1300
+ StoreType extends StoreTypes = 1,
1275
1301
  >(
1276
- store:
1277
- | Store<Schemas>
1278
- | (SupportsMergeableStore extends true ? MergeableStore<Schemas> : never),
1279
- getPersisted: () => Promise<
1280
- | Content<Schemas>
1281
- | (SupportsMergeableStore extends true ? MergeableContent<Schemas> : never)
1282
- | undefined
1283
- >,
1302
+ store: PersistedStore<Schemas, StoreType>,
1303
+ getPersisted: () => Promise<PersistedContent<Schemas, StoreType> | undefined>,
1284
1304
  setPersisted: (
1285
- getContent: () =>
1286
- | Content<Schemas>
1287
- | (SupportsMergeableStore extends true
1288
- ? MergeableContent<Schemas>
1289
- : never),
1290
- getChanges?: () =>
1291
- | Changes<Schemas>
1292
- | (SupportsMergeableStore extends true
1293
- ? MergeableChanges<Schemas>
1294
- : never),
1305
+ getContent: () => PersistedContent<Schemas, StoreType>,
1306
+ changes?: PersistedChanges<Schemas, StoreType>,
1295
1307
  ) => Promise<void>,
1296
1308
  addPersisterListener: (
1297
- listener: PersisterListener<Schemas>,
1309
+ listener: PersisterListener<Schemas, StoreType>,
1298
1310
  ) => ListeningHandle,
1299
1311
  delPersisterListener: (listeningHandle: ListeningHandle) => void,
1300
1312
  onIgnoredError?: (error: any) => void,
1301
- supportsMergeableStore?: SupportsMergeableStore,
1302
- ): Persister<Schemas, SupportsMergeableStore>;
1313
+ supportedStoreType?: StoreType,
1314
+ ): Persister<Schemas, StoreType>;
@@ -7,9 +7,27 @@
7
7
  * @since v5.0.0
8
8
  */
9
9
 
10
- import {Ids} from '../common';
10
+ import {Id, IdOrNull, Ids} from '../common';
11
+ import {GetIdChanges} from '../store';
11
12
  import {WebSocketServer} from 'ws';
12
13
 
14
+ /**
15
+ * The PathIdsListener type
16
+ */
17
+ export type PathIdsListener<> = (
18
+ wsServer: WsServer,
19
+ getIdChanges: GetIdChanges<Id>,
20
+ ) => void;
21
+
22
+ /**
23
+ * The ClientIdsListener type
24
+ */
25
+ export type ClientIdsListener<> = (
26
+ wsServer: WsServer,
27
+ pathId: Id,
28
+ getIdChanges: GetIdChanges<Id>,
29
+ ) => void;
30
+
13
31
  /**
14
32
  * The WsServerStats type
15
33
  */
@@ -23,8 +41,11 @@ export type WsServerStats = {
23
41
  */
24
42
  export interface WsServer {
25
43
  getWebSocketServer: () => WebSocketServer;
26
- getPaths: () => string[];
27
- getClientIds: (path: string) => Ids;
44
+ getPathIds: () => Ids;
45
+ getClientIds: (pathId: Id) => Ids;
46
+ addPathIdsListener: (listener: PathIdsListener) => Id;
47
+ addClientIdsListener: (pathId: IdOrNull, listener: ClientIdsListener) => Id;
48
+ delListener(listenerId: Id): WsServer;
28
49
  getStats: () => WsServerStats;
29
50
  destroy: () => void;
30
51
  }
@@ -61,7 +61,7 @@ export type SynchronizerStats = {
61
61
  * @since v5.0.0
62
62
  */
63
63
  export interface Synchronizer<Schemas extends OptionalSchemas>
64
- extends Persister<Schemas, true> {
64
+ extends Persister<Schemas, 2> {
65
65
  /**
66
66
  * The startSync method
67
67
  * @category Synchronization
@@ -1 +1 @@
1
- var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,s="",n=t(s),a=t(!0),l=t(0),r=t(t),o="type",c="default",i="Has",d="Ids",u="Table",g=u+"s",h=u+d,f="Row",b=f+"Count",C=f+d,T="Cell",p=T+d,v="Value",V=v+"s",y=v+d,w=e=>s+e,S=(e,t)=>e.startsWith(t),M=(e,t)=>e.endsWith(t),m=Math.max,I=isFinite,R=e=>null==e,L=(e,t,s)=>R(e)?s?.():t(e),H=e=>e==n||e==a,J=e=>t(e)==r,E=e=>Array.isArray(e),D=(e,t,s)=>e.slice(t,s),x=e=>e.length,F=(e,t)=>e.forEach(t),O=(e,t)=>e.map(t),z=(e,...t)=>e.push(...t),A=Object,P=e=>A.getPrototypeOf(e),W=A.entries,j=A.isFrozen,k=e=>!R(e)&&L(P(e),(e=>e==A.prototype||R(P(e))),(()=>!0)),N=A.keys,B=A.freeze,$=(e=[])=>A.fromEntries(e),q=(e,t)=>t in e,G=(e,t)=>(delete e[t],e),K=(e,t)=>F(W(e),(([e,s])=>t(s,e))),Q=(e,t)=>O(W(e),(([e,s])=>t(s,e))),U=e=>k(e)&&0==(e=>x(N(e)))(e),X=(e,t,s)=>(q(e,t)||(e[t]=s()),e[t]),Y=(e,t,s,n=0)=>R(e)||!k(e)||!n&&U(e)||j(e)?(s?.(),!1):(Q(e,((s,n)=>{t(s,n)||G(e,n)})),!!n||!U(e)),Z=e=>new Set(E(e)||R(e)?e:[e]),_=(e,t)=>e?.add(t),ee=e=>e?.size??0,te=(e,t)=>e?.has(t)??!1,se=e=>R(e)||0==ee(e),ne=e=>e.clear(),ae=(e,t)=>e?.forEach(t),le=(e,t)=>e?.delete(t),re=e=>new Map(e),oe=e=>[...e?.keys()??[]],ce=(e,t)=>e?.get(t),ie=(e,t)=>ae(e,((e,s)=>t(s,e))),de=(e,t,s)=>R(s)?(le(e,t),e):e?.set(t,s),ue=(e,t,s,n)=>(te(e,t)?n?.(ce(e,t)):de(e,t,s()),ce(e,t)),ge=(e,t,s,n=de)=>(Q(t,((t,n)=>s(e,n,t))),ie(e,(s=>q(t,s)?0:n(e,s))),e),he=(e,t,s,n)=>{const a={};return ae(e,((e,l)=>{if(!s?.(e,l)){const s=t?t(e,l):e;!n?.(s)&&(a[l]=s)}})),a},fe=(e,t,s)=>he(e,(e=>he(e,t,s)),se,U),be=(e,t,s)=>he(e,(e=>fe(e,t,s)),se,U),Ce=(e,t)=>{const s=re();return ae(e,((e,n)=>s.set(n,t?.(e)??e))),s},Te=e=>Ce(e,Ce),pe=e=>Ce(e,Te),ve=(e,t,s,n,a=0)=>L((s?ue:ce)(e,t[a],a>x(t)-2?s:re),(l=>{if(a>x(t)-2)return n?.(l)&&de(e,t[a]),l;const r=ve(l,t,s,n,a+1);return se(l)&&de(e,t[a]),r})),Ve=new globalThis.TextEncoder,ye=e=>{let t=2166136261;return F(Ve.encode(e),(e=>{t^=e,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)})),t>>>0},we=([e,t,s])=>[e,t,s],Se=([e,t])=>Me(e,t),Me=(e,t)=>t?[e,t]:[e],me=e=>e[2],Ie=(e,t)=>ye(e+":"+t),Re=(e,t)=>t>e?(e?ye(e):0)^ye(t):0,Le=(e,t)=>((e??"")>(t??"")?e:t)??"",He=(e,t,s)=>{e[2]=t>>>0,s>e[1]&&(e[1]=s)},Je=(e=s)=>Me($(),e),Ee=(e=s)=>[re(),e,0],De=([e,t,s],n=we)=>[he(e,n),t,s],xe=([e,t],s=Se)=>Me(he(e,s),t),Fe=(e,s)=>{return E(e)&&3==x(e)&&(a=e[1],t(a)==n)&&t(e[2])==l&&I(e[2])&&s(e[0]);var a},Oe=/^\d+$/,ze=()=>{const e=[];let t=0;return[n=>(n?e.shift():null)??s+t++,t=>{Oe.test(t)&&x(e)<1e3&&z(e,t)}]},Ae=e=>[e,e],Pe=()=>[re(),re()],We=e=>[...e],je=([e,t])=>e===t,ke=e=>{const s=t(e);return H(s)||s==l&&I(e)?s:void 0},Ne=e=>R(e)||!R(ke(e)),Be=(e,t,s,n,a)=>R(a)?e.delCell(t,s,n,!0):e.setCell(t,s,n,a),$e=(e,t,s)=>R(s)?e.delValue(t):e.setValue(t,s),qe=e=>JSON.stringify(e,((e,t)=>t instanceof Map?A.fromEntries([...t]):t)),Ge=JSON.parse,Ke=(e,t,s)=>de(e,t,ce(e,t)==-s?void 0:s),Qe=()=>{let e,t,n=!1,a=!1,r=0,d=[];const S=re(),M=re(),m=re(),I=re(),E=re(),A=re(),P=re(),W=re(),j=re(),k=re(),N=re(),$=re(),K=re(),X=re(),Ve=Z(),ye=re(),we=re(),Se=re(),Me=re(),me=Pe(),Ie=Pe(),Re=Pe(),Le=Pe(),He=Pe(),Je=Pe(),Ee=Pe(),De=Pe(),xe=Pe(),Fe=Pe(),Oe=Pe(),Ne=Pe(),Ue=Pe(),Xe=Pe(),Ye=Pe(),Ze=Pe(),_e=Pe(),et=Pe(),tt=Pe(),st=Pe(),nt=Pe(),at=Pe(),lt=re(),rt=Pe(),[ot,ct,it,dt]=(e=>{let t;const[n,a]=ze(),l=re();return[(e,a,r,o=[],c=(()=>[]))=>{t??=Js;const i=n(1);return de(l,i,[e,a,r,o,c]),_(ve(a,r??[s],Z),i),i},(e,n,...a)=>F(((e,t=[s])=>{const n=[],a=(e,s)=>s==x(t)?z(n,e):null===t[s]?ae(e,(e=>a(e,s+1))):F([t[s],null],(t=>a(ce(e,t),s+1)));return a(e,0),n})(e,n),(e=>ae(e,(e=>ce(l,e)[0](t,...n??[],...a))))),e=>L(ce(l,e),(([,t,n])=>(ve(t,n??[s],void 0,(t=>(le(t,e),se(t)?1:0))),de(l,e),a(e),n))),e=>L(ce(l,e),(([e,,s=[],n,a])=>{const l=(...r)=>{const o=x(r);o==x(s)?e(t,...r,...a(r)):R(s[o])?F(n[o]?.(...r)??[],(e=>l(...r,e))):l(...r,s[o])};l()}))]})(),ut=e=>{if(!Y(e,((e,t)=>[o,c].includes(t))))return!1;const t=e[o];return!(!H(t)&&t!=l||(ke(e[c])!=t&&G(e,c),0))},gt=(t,s)=>(!e||te(N,s)||Nt(s))&&Y(t,((e,t)=>ht(s,t,e)),(()=>Nt(s))),ht=(e,t,s,n)=>Y(n?s:Tt(s,e,t),((n,a)=>L(ft(e,t,a,n),(e=>(s[a]=e,!0)),(()=>!1))),(()=>Nt(e,t))),ft=(t,s,n,a)=>e?L(ce(ce(N,t),n),(e=>ke(a)!=e[o]?Nt(t,s,n,a,e[c]):a),(()=>Nt(t,s,n,a))):R(ke(a))?Nt(t,s,n,a):a,bt=(e,t)=>Y(t?e:pt(e),((t,s)=>L(Ct(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>Bt())),Ct=(e,s)=>t?L(ce(K,e),(t=>ke(s)!=t[o]?Bt(e,s,t[c]):s),(()=>Bt(e,s))):R(ke(s))?Bt(e,s):s,Tt=(e,t,s)=>(L(ce($,t),(([n,a])=>{ae(n,((t,s)=>{q(e,s)||(e[s]=t)})),ae(a,(n=>{q(e,n)||Nt(t,s,n)}))})),e),pt=e=>(t&&(ae(X,((t,s)=>{q(e,s)||(e[s]=t)})),ae(Ve,(t=>{q(e,t)||Bt(t)}))),e),vt=e=>ge(N,e,((e,t,s)=>{const n=re(),a=Z();ge(ue(N,t,re),s,((e,t,s)=>{de(e,t,s),L(s[c],(e=>de(n,t,e)),(()=>_(a,t)))})),de($,t,[n,a])}),((e,t)=>{de(N,t),de($,t)})),Vt=e=>ge(K,e,((e,t,s)=>{de(K,t,s),L(s[c],(e=>de(X,t,e)),(()=>_(Ve,t)))}),((e,t)=>{de(K,t),de(X,t),le(Ve,t)})),yt=e=>U(e)?ys():Cs(e),wt=e=>ge(Se,e,((e,t,s)=>St(t,s)),((e,t)=>Dt(t))),St=(e,t)=>ge(ue(Se,e,(()=>(zt(e,1),de(ye,e,ze()),de(we,e,re()),re()))),t,((t,s,n)=>Mt(e,t,s,n)),((t,s)=>xt(e,t,s))),Mt=(e,t,s,n,a)=>ge(ue(t,s,(()=>(At(e,s,1),re()))),n,((t,n,a)=>mt(e,s,t,n,a)),((n,l)=>Ft(e,t,s,n,l,a))),mt=(e,t,s,n,a)=>{te(s,n)||Pt(e,t,n,1);const l=ce(s,n);a!==l&&(Wt(e,t,n,l,a),de(s,n,a))},It=(e,t,s,n,a)=>L(ce(t,s),(t=>mt(e,s,t,n,a)),(()=>Mt(e,t,s,Tt({[n]:a},e,s)))),Rt=e=>U(e)?Ms():Ts(e),Lt=e=>ge(Me,e,((e,t,s)=>Ht(t,s)),((e,t)=>Ot(t))),Ht=(e,t)=>{te(Me,e)||jt(e,1);const s=ce(Me,e);t!==s&&(kt(e,s,t),de(Me,e,t))},Jt=(e,t)=>{const[s]=ce(ye,e),n=s(t);return te(ce(Se,e),n)?Jt(e,t):n},Et=e=>ce(Se,e)??St(e,{}),Dt=e=>St(e,{}),xt=(e,t,s)=>{const[,n]=ce(ye,e);n(s),Mt(e,t,s,{},!0)},Ft=(e,t,s,n,a,l)=>{const r=ce(ce($,e)?.[0],a);if(!R(r)&&!l)return mt(e,s,n,a,r);const o=t=>{Wt(e,s,t,ce(n,t)),Pt(e,s,t,-1),de(n,t)};R(r)?o(a):ie(n,o),se(n)&&(At(e,s,-1),se(de(t,s))&&(zt(e,-1),de(Se,e),de(ye,e),de(we,e)))},Ot=e=>{const t=ce(X,e);if(!R(t))return Ht(e,t);kt(e,ce(Me,e)),jt(e,-1),de(Me,e)},zt=(e,t)=>Ke(S,e,t),At=(e,t,s)=>Ke(ue(I,e,re),t,s)&&de(m,e,ue(m,e,(()=>0))+s),Pt=(e,t,s,n)=>{const a=ce(we,e),l=ce(a,s)??0;(0==l&&1==n||1==l&&-1==n)&&Ke(ue(M,e,re),s,n),de(a,s,l!=-n?l+n:null),Ke(ue(ue(E,e,re),t,re),s,n)},Wt=(e,t,s,n,a)=>{ue(ue(ue(A,e,re),t,re),s,(()=>[n,0]))[1]=a,d[3]?.(e,t,s,a)},jt=(e,t)=>Ke(P,e,t),kt=(e,t,s)=>{ue(W,e,(()=>[t,0]))[1]=s,d[4]?.(e,s)},Nt=(e,t,s,n,a)=>(z(ue(ue(ue(j,e,re),t,re),s,(()=>[])),n),a),Bt=(e,t,s)=>(z(ue(k,e,(()=>[])),t),s),$t=(e,t,s)=>L(ce(ce(ce(A,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...Ae(ls(e,t,s))])),qt=e=>L(ce(W,e),(([e,t])=>[!0,e,t]),(()=>[!1,...Ae(cs(e))])),Gt=e=>se(j)||se(Ze[e])?0:ae(e?pe(j):j,((t,s)=>ae(t,((t,n)=>ae(t,((t,a)=>ct(Ze[e],[s,n,a],t))))))),Kt=e=>se(k)||se(_e[e])?0:ae(e?Ce(k):k,((t,s)=>ct(_e[e],[s],t))),Qt=(e,t,s,n)=>{if(!se(e))return ct(t,n,(()=>he(e))),ie(e,((e,t)=>ct(s,[...n??[],e],1==t))),1},Ut=e=>{const t=is();t!=n&&ct(me[e],void 0,t);const s=se(Fe[e]),a=se(Ue[e])&&se(Xe[e])&&se(xe[e])&&se(Oe[e])&&se(Je[e])&&se(Ee[e])&&se(De[e])&&s&&se(Re[e])&&se(Le[e]),l=se(Ye[e])&&se(Ne[e])&&se(He[e])&&se(Ie[e]);if(!a||!l){const t=e?[Ce(S),Te(M),Ce(m),Te(I),pe(E),pe(A)]:[S,M,m,I,E,A];if(!a){Qt(t[0],Re[e],Le[e]),ae(t[1],((t,s)=>Qt(t,Je[e],Ee[e],[s]))),ae(t[2],((t,s)=>{0!=t&&ct(De[e],[s],ts(s))}));const n=Z();ae(t[3],((t,a)=>{Qt(t,xe[e],Oe[e],[a])&&!s&&(ct(Fe[e],[a,null]),_(n,a))})),s||ae(t[5],((t,s)=>{if(!te(n,s)){const n=Z();ae(t,(e=>ae(e,(([t,s],a)=>s!==t?_(n,a):le(e,a))))),ae(n,(t=>ct(Fe[e],[s,t])))}})),ae(t[4],((t,s)=>ae(t,((t,n)=>Qt(t,Ue[e],Xe[e],[s,n])))))}if(!l){let s;ae(t[5],((t,n)=>{let a;ae(t,((t,l)=>{let r;ae(t,(([t,o],c)=>{o!==t&&(ct(Ye[e],[n,l,c],o,t,$t),s=a=r=1)})),r&&ct(Ne[e],[n,l],$t)})),a&&ct(He[e],[n],$t)})),s&&ct(Ie[e],void 0,$t)}}},Xt=e=>{const t=fs();t!=a&&ct(et[e],void 0,t);const s=se(st[e])&&se(nt[e]),n=se(at[e])&&se(tt[e]);if(!s||!n){const t=e?[Ce(P),Ce(W)]:[P,W];if(s||Qt(t[0],st[e],nt[e]),!n){let s;ae(t[1],(([t,n],a)=>{n!==t&&(ct(at[e],[a],n,t,qt),s=1)})),s&&ct(tt[e],void 0,qt)}}},Yt=(e,...t)=>(Rs((()=>e(...O(t,w)))),Js),Zt=()=>be(Se),_t=()=>oe(Se),es=e=>oe(ce(we,w(e))),ts=e=>ee(ce(Se,w(e))),ss=e=>oe(ce(Se,w(e))),ns=(e,t,s,n=0,a)=>{return O(D((r=ce(Se,w(e)),o=(e,s)=>[R(t)?s:ce(e,w(t)),s],l=([e],[t])=>((e??0)<(t??0)?-1:1)*(s?-1:1),O([...r?.entries()??[]],(([e,t])=>o(t,e))).sort(l)),n,R(a)?a:n+a),(([,e])=>e));var l,r,o},as=(e,t)=>oe(ce(ce(Se,w(e)),w(t))),ls=(e,t,s)=>ce(ce(ce(Se,w(e)),w(t)),w(s)),rs=()=>he(Me),os=()=>oe(Me),cs=e=>ce(Me,w(e)),is=()=>!se(Se),ds=e=>te(Se,w(e)),us=(e,t)=>te(ce(we,w(e)),w(t)),gs=(e,t)=>te(ce(Se,w(e)),w(t)),hs=(e,t,s)=>te(ce(ce(Se,w(e)),w(t)),w(s)),fs=()=>!se(Me),bs=e=>te(Me,w(e)),Cs=e=>Yt((()=>(e=>Y(e,gt,Nt))(e)?wt(e):0)),Ts=e=>Yt((()=>bt(e)?Lt(e):0)),ps=e=>{try{yt(Ge(e))}catch{}return Js},vs=t=>Yt((()=>{if((e=Y(t,(e=>Y(e,ut))))&&(vt(t),!se(Se))){const e=Zt();ys(),Cs(e)}})),Vs=e=>Yt((()=>{if(t=(e=>Y(e,ut))(e)){const s=rs();Is(),Ms(),t=!0,Vt(e),Ts(s)}})),ys=()=>Yt((()=>wt({}))),ws=e=>Yt((e=>te(Se,e)?Dt(e):0),e),Ss=(e,t)=>Yt(((e,t)=>L(ce(Se,e),(s=>te(s,t)?xt(e,s,t):0))),e,t),Ms=()=>Yt((()=>Lt({}))),ms=()=>Yt((()=>{vt({}),e=!1})),Is=()=>Yt((()=>{Vt({}),t=!1})),Rs=(e,t)=>{if(-1!=r){Ls();const s=e();return Hs(t),s}},Ls=()=>(-1!=r&&r++,1==r&&(d[0]?.(),ct(lt,void 0)),Js),Hs=e=>(r>0&&(r--,0==r&&(r=1,Gt(1),se(A)||Ut(1),Kt(1),se(W)||Xt(1),e?.(Js)&&(ae(A,((e,t)=>ae(e,((e,s)=>ae(e,(([e],n)=>Be(Js,t,s,n,e))))))),ne(A),ae(W,(([e],t)=>$e(Js,t,e))),ne(W)),ct(rt[0],void 0),r=-1,Gt(0),se(A)||Ut(0),Kt(0),se(W)||Xt(0),d[1]?.(),ct(rt[1],void 0),d[2]?.(),r=0,n=is(),a=fs(),F([S,M,m,I,E,A,j,P,W,k],ne))),Js),Js={getContent:()=>[Zt(),rs()],getTables:Zt,getTableIds:_t,getTable:e=>fe(ce(Se,w(e))),getTableCellIds:es,getRowCount:ts,getRowIds:ss,getSortedRowIds:ns,getRow:(e,t)=>he(ce(ce(Se,w(e)),w(t))),getCellIds:as,getCell:ls,getValues:rs,getValueIds:os,getValue:cs,hasTables:is,hasTable:ds,hasTableCell:us,hasRow:gs,hasCell:hs,hasValues:fs,hasValue:bs,getTablesJson:()=>qe(Se),getValuesJson:()=>qe(Me),getJson:()=>qe([Se,Me]),getTablesSchemaJson:()=>qe(N),getValuesSchemaJson:()=>qe(K),getSchemaJson:()=>qe([N,K]),hasTablesSchema:()=>e,hasValuesSchema:()=>t,setContent:([e,t])=>Yt((()=>{(U(e)?ys:Cs)(e),(U(t)?Ms:Ts)(t)})),setTables:Cs,setTable:(e,t)=>Yt((e=>gt(t,e)?St(e,t):0),e),setRow:(e,t,s)=>Yt(((e,t)=>ht(e,t,s)?Mt(e,Et(e),t,s):0),e,t),addRow:(e,t,s=!0)=>Rs((()=>{let n;return ht(e,n,t)&&(e=w(e),Mt(e,Et(e),n=Jt(e,s?1:0),t)),n})),setPartialRow:(e,t,s)=>Yt(((e,t)=>{if(ht(e,t,s,1)){const n=Et(e);Q(s,((s,a)=>It(e,n,t,a,s)))}}),e,t),setCell:(e,t,s,n)=>Yt(((e,t,s)=>L(ft(e,t,s,J(n)?n(ls(e,t,s)):n),(n=>It(e,Et(e),t,s,n)))),e,t,s),setValues:Ts,setPartialValues:e=>Yt((()=>bt(e,1)?Q(e,((e,t)=>Ht(t,e))):0)),setValue:(e,t)=>Yt((e=>L(Ct(e,J(t)?t(cs(e)):t),(t=>Ht(e,t)))),e),applyChanges:e=>Yt((()=>{Q(e[0],((e,t)=>R(e)?ws(t):Q(e,((e,s)=>R(e)?Ss(t,s):Q(e,((e,n)=>Be(Js,t,s,n,e))))))),Q(e[1],((e,t)=>$e(Js,t,e)))})),setTablesJson:ps,setValuesJson:e=>{try{Rt(Ge(e))}catch{}return Js},setJson:e=>Yt((()=>{try{const[t,s]=Ge(e);yt(t),Rt(s)}catch{ps(e)}})),setTablesSchema:vs,setValuesSchema:Vs,setSchema:(e,t)=>Yt((()=>{vs(e),Vs(t)})),delTables:ys,delTable:ws,delRow:Ss,delCell:(e,t,s,n)=>Yt(((e,t,s)=>L(ce(Se,e),(a=>L(ce(a,t),(l=>te(l,s)?Ft(e,a,t,l,s,n):0))))),e,t,s),delValues:Ms,delValue:e=>Yt((e=>te(Me,e)?Ot(e):0),e),delTablesSchema:ms,delValuesSchema:Is,delSchema:()=>Yt((()=>{ms(),Is()})),transaction:Rs,startTransaction:Ls,getTransactionChanges:()=>[he(A,((e,t)=>-1===ce(S,t)?void 0:he(e,((e,s)=>-1===ce(ce(I,t),s)?void 0:he(e,(([,e])=>e),(e=>je(e)))),se,U)),se,U),he(W,(([,e])=>e),(e=>je(e))),1],getTransactionLog:()=>[!se(A),!se(W),be(A,We,je),be(j),he(W,We,je),he(k),he(S),fe(I),be(E),he(P)],finishTransaction:Hs,forEachTable:e=>ae(Se,((t,s)=>e(s,(e=>ae(t,((t,s)=>e(s,(e=>ie(t,e))))))))),forEachTableCell:(e,t)=>ie(ce(we,w(e)),t),forEachRow:(e,t)=>ae(ce(Se,w(e)),((e,s)=>t(s,(t=>ie(e,t))))),forEachCell:(e,t,s)=>ie(ce(ce(Se,w(e)),w(t)),s),forEachValue:e=>ie(Me,e),addSortedRowIdsListener:(e,t,s,n,a,l,r)=>{let o=ns(e,t,s,n,a);return ot((()=>{const r=ns(e,t,s,n,a);var c,i,d;i=o,x(c=r)===x(i)&&(d=(e,t)=>i[t]===e,c.every(d))||(o=r,l(Js,e,t,s,n,a,o))}),Fe[r?1:0],[e,t],[_t])},addStartTransactionListener:e=>ot(e,lt),addWillFinishTransactionListener:e=>ot(e,rt[0]),addDidFinishTransactionListener:e=>ot(e,rt[1]),callListener:e=>(dt(e),Js),delListener:e=>(it(e),Js),getListenerStats:()=>({}),createStore:Qe,addListener:ot,callListeners:ct,setInternalListeners:(e,t,s,n,a)=>d=[e,t,s,n,a]};return Q({[i+g]:[0,me,[],()=>[is()]],[g]:[0,Ie],[h]:[0,Re],[i+u]:[1,Le,[_t],e=>[ds(...e)]],[u]:[1,He,[_t]],[u+p]:[1,Je,[_t]],[i+u+T]:[2,Ee,[_t,es],e=>[us(...e)]],[b]:[1,De,[_t]],[C]:[1,xe,[_t]],[i+f]:[2,Oe,[_t,ss],e=>[gs(...e)]],[f]:[2,Ne,[_t,ss]],[p]:[2,Ue,[_t,ss]],[i+T]:[3,Xe,[_t,ss,as],e=>[hs(...e)]],[T]:[3,Ye,[_t,ss,as],e=>Ae(ls(...e))],InvalidCell:[3,Ze],[i+V]:[0,et,[],()=>[fs()]],[V]:[0,tt],[y]:[0,st],[i+v]:[1,nt,[os],e=>[bs(...e)]],[v]:[1,at,[os],e=>Ae(cs(e[0]))],InvalidValue:[1,_e]},(([e,t,s,n],a)=>{Js["add"+a+"Listener"]=(...a)=>ot(a[e],t[a[e+1]?1:0],e>0?D(a,0,e):void 0,s,n)})),B(Js)},Ue=2**36,Xe=2**30,Ye=2**24,Ze=2**18,_e=4096,et=64,tt=e=>String.fromCharCode(48+(63&e)),st=(e,t)=>((e,t)=>e.charCodeAt(t))(e,t)-48,nt={HasTable:1,Table:1,TableCellIds:1,HasTableCell:2,RowCount:1,RowIds:1,SortedRowIds:5,HasRow:2,Row:2,CellIds:2,HasCell:3,Cell:3,HasValue:1,Value:1,InvalidCell:3,InvalidValue:1},at=(e=s)=>[Ee(e),Ee(e)];e.createMergeableStore=e=>{let t=1,n=at(),a=0;const l=re(),r=Z(),[o,c]=(e=>{let t=0,s=-1;const n=ye(e),a=e=>{const n=t,[a,l]=R(e)||""==e?[0,0]:[st(r=e,0)*Ue+st(r,1)*Xe+st(r,2)*Ye+st(r,3)*Ze+st(r,4)*_e+st(r,5)*et+st(r,6),st(r,7)*Ze+st(r,8)*_e+st(r,9)*et+st(r,10),st(r,11)*Ye+st(r,12)*Ze+st(r,13)*_e+st(r,14)*et+st(r,15)];var r;t=m(n,a,Date.now()),s=t==n?t==a?m(s,l):s:t==a?l:-1};return[()=>{return a(),l=++s,r=n,tt((e=t)/Ue)+tt(e/Xe)+tt(e/Ye)+tt(e/Ze)+tt(e/_e)+tt(e/et)+tt(e)+tt(l/Ze)+tt(l/_e)+tt(l/et)+tt(l)+tt(r/Ye)+tt(r/Ze)+tt(r/_e)+tt(r/et)+tt(r);var e,l,r},a]})(e),i=Qe(),d=e=>{const s=t;return t=0,e(),t=s,b},u=(e,t=0)=>{const a={},l={},[[r,o=s,i=0],d]=e,[u,h]=n,[f,b,C]=u;let T=t?i:C,p=o;K(r,(([e,n=s,l=0],r)=>{const o=ue(f,r,Ee),[c,i,d]=o;let u=t?l:d,h=n;K(e,((e,s)=>{const[n,l,o]=g(e,ue(c,s,Ee),X(X(a,r,$),s,$),t);u^=t?0:(l?Ie(s,l):0)^Ie(s,o),h=Le(h,n)})),u^=t?0:Re(i,n),He(o,u,n),T^=t?0:(d?Ie(r,d):0)^Ie(r,o[2]),p=Le(p,h)})),T^=t?0:Re(b,o),He(u,T,o);const[v]=g(d,h,l,t);return c(Le(p,v)),[a,l,1]},g=(e,t,n,a)=>{const[l,r=s,o=0]=e,[c,i,d]=t;let u=r,g=a?o:d;return K(l,(([e,t,l=0],r)=>{const o=ue(c,r,(()=>[void 0,s,0])),[,i,d]=o;(!i||t>i)&&(He(o,a?l:ye(qe(e??null)+":"+t),t),o[0]=e,n[r]=e,g^=a?0:Ie(r,d)^Ie(r,o[2]),u=Le(u,t))})),g^=a?0:Re(i,r),He(t,g,r),[u,d,t[2]]},h=()=>[De(n[0],(e=>De(e,(e=>De(e))))),De(n[1])],f=e=>d((()=>i.applyChanges(u(e)))),b={getId:()=>e,getMergeableContent:h,getMergeableContentHashes:()=>[n[0][2],n[1][2]],getMergeableTableHashes:()=>he(n[0][0],me),getMergeableTableDiff:e=>{const t=Je(n[0][1]),s={};return ie(n[0][0],((n,[a,l,r])=>q(e,n)?r!=e[n]?s[n]=r:0:t[0][n]=xe([a,l],(e=>xe(e))))),[t,s]},getMergeableRowHashes:e=>{const t={};return K(e,((e,s)=>L(ce(n[0][0],s),(([n,,a])=>a!=e?ie(n,((e,[,,n])=>X(t,s,$)[e]=n)):0)))),t},getMergeableRowDiff:e=>{const t=Je(n[0][1]),s={};return K(e,((e,a)=>ie(ce(n[0][0],a)?.[0],((n,[l,r,o])=>q(e,n)?o!==e[n]?X(s,a,$)[n]=o:0:X(t[0],a,Je)[0][n]=xe([l,r]))))),[t,s]},getMergeableCellHashes:e=>{const t={};return K(e,((e,s)=>L(ce(n[0][0],s),(([n])=>K(e,((e,a)=>L(ce(n,a),(([n,,l])=>l!==e?ie(n,((e,[,,n])=>X(X(t,s,$),a,$)[e]=n)):0)))))))),t},getMergeableCellDiff:e=>{const[[t,s]]=n,a={};return K(e,((e,s)=>K(e,((e,n)=>L(ce(t,s),(([t,l])=>L(ce(t,n),(([t,r])=>ie(t,((t,[o,c,i])=>i!==e[t]?X(X(a,s,(()=>Je(l)))[0],n,(()=>Je(r)))[0][t]=[o,c]:0)))))))))),Me(a,s)},getMergeableValuesHashes:()=>he(n[1][0],me),getMergeableValueDiff:e=>{const[,[t,s]]=n,a=he(t,Se,(([,,t],s)=>t==e?.[s]));return Me(a,s)},setMergeableContent:e=>d((()=>(e=>E(e)&&2==x(e)&&Fe(e[0],(e=>Y(e,(e=>Fe(e,(e=>Y(e,(e=>Fe(e,(e=>Y(e,(e=>Fe(e,Ne)),void 0,1)))),void 0,1)))),void 0,1)))&&Fe(e[1],(e=>Y(e,(e=>Fe(e,Ne)),void 0,1))))(e)?i.transaction((()=>{i.delTables().delValues(),n=at(),i.applyChanges(u(e,1))})):0)),setDefaultContent:e=>(i.transaction((()=>{a=1,i.setContent(e),a=0})),b),getTransactionMergeableChanges:()=>{const[[e,t],[s,a]]=n,o={};ae(l,((t,s)=>L(ce(e,s),(([e,n])=>{const a={};ae(t,((t,s)=>L(ce(e,s),(([e,n])=>{const l={};ae(t,(t=>{L(ce(e,t),(([e,s])=>l[t]=Me(e,s)))})),a[s]=Me(l,n)})))),o[s]=Me(a,n)}))));const c={};return ae(r,(e=>L(ce(s,e),(([t,s])=>c[e]=Me(t,s))))),[Me(o,t),Me(c,a),1]},applyMergeableChanges:f,merge:e=>{const t=h(),s=e.getMergeableContent();return e.applyMergeableChanges(t),f(s)}};return i.setInternalListeners((()=>{}),(()=>{}),(()=>{ne(l),ne(r)}),((e,n,r,c)=>{_(ue(ue(l,e,re),n,Z),r),t&&u([[{[e]:[{[n]:[{[r]:[c,a?s:o()]}]}]}],[{}],1])}),((e,n)=>{_(r,e),t&&u([[{}],[{[e]:[n,a?s:o()]}],1])})),Q(i,((e,t)=>b[t]=S(t,"set")||S(t,"del")||S(t,"apply")||M(t,"Transaction")||"callListener"==t?(...t)=>(e(...t),b):S(t,"add")&&M(t,"Listener")?(...s)=>{const n=nt[D(t,3,-8)]??0,a=s[n];return s[n]=(e,...t)=>a(b,...t),e(...s)}:e)),B(b)}},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseMergeableStore={});
1
+ var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,s="",n=t(s),a=t(!0),l=t(0),r=t(t),o="type",c="default",i="Has",d="Ids",u="Table",g=u+"s",h=u+d,f="Row",b=f+"Count",C=f+d,T="Cell",p=T+d,v="Value",V=v+"s",y=v+d,w=e=>s+e,S=(e,t)=>e.startsWith(t),M=(e,t)=>e.endsWith(t),m=Math.max,I=isFinite,R=e=>null==e,L=(e,t,s)=>R(e)?s?.():t(e),H=e=>e==n||e==a,J=e=>t(e)==r,E=e=>Array.isArray(e),D=(e,t,s)=>e.slice(t,s),x=e=>e.length,F=(e,t)=>e.forEach(t),O=(e,t)=>e.map(t),z=(e,...t)=>e.push(...t),A=Object,P=e=>A.getPrototypeOf(e),W=A.entries,j=A.isFrozen,k=e=>!R(e)&&L(P(e),(e=>e==A.prototype||R(P(e))),(()=>!0)),N=A.keys,B=A.freeze,$=(e=[])=>A.fromEntries(e),q=(e,t)=>t in e,G=(e,t)=>(delete e[t],e),K=(e,t)=>F(W(e),(([e,s])=>t(s,e))),Q=(e,t)=>O(W(e),(([e,s])=>t(s,e))),U=e=>k(e)&&0==(e=>x(N(e)))(e),X=(e,t,s)=>(q(e,t)||(e[t]=s()),e[t]),Y=(e,t,s,n=0)=>R(e)||!k(e)||!n&&U(e)||j(e)?(s?.(),!1):(Q(e,((s,n)=>{t(s,n)||G(e,n)})),!!n||!U(e)),Z=e=>new Set(E(e)||R(e)?e:[e]),_=(e,t)=>e?.add(t),ee=e=>e?.size??0,te=(e,t)=>e?.has(t)??!1,se=e=>R(e)||0==ee(e),ne=e=>e.clear(),ae=(e,t)=>e?.forEach(t),le=(e,t)=>e?.delete(t),re=e=>new Map(e),oe=e=>[...e?.keys()??[]],ce=(e,t)=>e?.get(t),ie=(e,t)=>ae(e,((e,s)=>t(s,e))),de=(e,t,s)=>R(s)?(le(e,t),e):e?.set(t,s),ue=(e,t,s,n)=>(te(e,t)?n?.(ce(e,t)):de(e,t,s()),ce(e,t)),ge=(e,t,s,n=de)=>(Q(t,((t,n)=>s(e,n,t))),ie(e,(s=>q(t,s)?0:n(e,s))),e),he=(e,t,s,n)=>{const a={};return ae(e,((e,l)=>{if(!s?.(e,l)){const s=t?t(e,l):e;!n?.(s)&&(a[l]=s)}})),a},fe=(e,t,s)=>he(e,(e=>he(e,t,s)),se,U),be=(e,t,s)=>he(e,(e=>fe(e,t,s)),se,U),Ce=(e,t)=>{const s=re();return ae(e,((e,n)=>s.set(n,t?.(e)??e))),s},Te=e=>Ce(e,Ce),pe=e=>Ce(e,Te),ve=(e,t,s,n,a=0)=>L((s?ue:ce)(e,t[a],a>x(t)-2?s:re),(l=>{if(a>x(t)-2)return n?.(l)&&de(e,t[a]),l;const r=ve(l,t,s,n,a+1);return se(l)&&de(e,t[a]),r})),Ve=new globalThis.TextEncoder,ye=e=>{let t=2166136261;return F(Ve.encode(e),(e=>{t^=e,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)})),t>>>0},we=([e,t,s])=>[e,t,s],Se=([e,t])=>Me(e,t),Me=(e,t)=>t?[e,t]:[e],me=e=>e[2],Ie=(e,t)=>ye(e+":"+t),Re=(e,t)=>t>e?(e?ye(e):0)^ye(t):0,Le=(e,t)=>((e??"")>(t??"")?e:t)??"",He=(e,t,s)=>{e[2]=t>>>0,s>e[1]&&(e[1]=s)},Je=(e=s)=>Me($(),e),Ee=(e=s)=>[re(),e,0],De=([e,t,s],n=we)=>[he(e,n),t,s],xe=([e,t],s=Se)=>Me(he(e,s),t),Fe=(e,s)=>{return E(e)&&3==x(e)&&(a=e[1],t(a)==n)&&t(e[2])==l&&I(e[2])&&s(e[0]);var a},Oe=/^\d+$/,ze=()=>{const e=[];let t=0;return[n=>(n?e.shift():null)??s+t++,t=>{Oe.test(t)&&x(e)<1e3&&z(e,t)}]},Ae=e=>[e,e],Pe=()=>[re(),re()],We=e=>[...e],je=([e,t])=>e===t,ke=e=>{const s=t(e);return H(s)||s==l&&I(e)?s:void 0},Ne=e=>R(e)||!R(ke(e)),Be=(e,t,s,n,a)=>R(a)?e.delCell(t,s,n,!0):e.setCell(t,s,n,a),$e=(e,t,s)=>R(s)?e.delValue(t):e.setValue(t,s),qe=e=>JSON.stringify(e,((e,t)=>t instanceof Map?A.fromEntries([...t]):t)),Ge=JSON.parse,Ke=(e,t,s)=>de(e,t,ce(e,t)==-s?void 0:s),Qe=()=>{let e,t,n=!1,a=!1,r=0,d=[];const S=re(),M=re(),m=re(),I=re(),E=re(),A=re(),P=re(),W=re(),j=re(),k=re(),N=re(),$=re(),K=re(),X=re(),Ve=Z(),ye=re(),we=re(),Se=re(),Me=re(),me=Pe(),Ie=Pe(),Re=Pe(),Le=Pe(),He=Pe(),Je=Pe(),Ee=Pe(),De=Pe(),xe=Pe(),Fe=Pe(),Oe=Pe(),Ne=Pe(),Ue=Pe(),Xe=Pe(),Ye=Pe(),Ze=Pe(),_e=Pe(),et=Pe(),tt=Pe(),st=Pe(),nt=Pe(),at=Pe(),lt=re(),rt=Pe(),[ot,ct,it,dt]=(e=>{let t;const[n,a]=ze(),l=re();return[(e,a,r,o=[],c=(()=>[]))=>{t??=Js;const i=n(1);return de(l,i,[e,a,r,o,c]),_(ve(a,r??[s],Z),i),i},(e,n,...a)=>F(((e,t=[s])=>{const n=[],a=(e,s)=>s==x(t)?z(n,e):null===t[s]?ae(e,(e=>a(e,s+1))):F([t[s],null],(t=>a(ce(e,t),s+1)));return a(e,0),n})(e,n),(e=>ae(e,(e=>ce(l,e)[0](t,...n??[],...a))))),e=>L(ce(l,e),(([,t,n])=>(ve(t,n??[s],void 0,(t=>(le(t,e),se(t)?1:0))),de(l,e),a(e),n))),e=>L(ce(l,e),(([e,,s=[],n,a])=>{const l=(...r)=>{const o=x(r);o==x(s)?e(t,...r,...a(r)):R(s[o])?F(n[o]?.(...r)??[],(e=>l(...r,e))):l(...r,s[o])};l()}))]})(),ut=e=>{if(!Y(e,((e,t)=>[o,c].includes(t))))return!1;const t=e[o];return!(!H(t)&&t!=l||(ke(e[c])!=t&&G(e,c),0))},gt=(t,s)=>(!e||te(N,s)||Nt(s))&&Y(t,((e,t)=>ht(s,t,e)),(()=>Nt(s))),ht=(e,t,s,n)=>Y(n?s:Tt(s,e,t),((n,a)=>L(ft(e,t,a,n),(e=>(s[a]=e,!0)),(()=>!1))),(()=>Nt(e,t))),ft=(t,s,n,a)=>e?L(ce(ce(N,t),n),(e=>ke(a)!=e[o]?Nt(t,s,n,a,e[c]):a),(()=>Nt(t,s,n,a))):R(ke(a))?Nt(t,s,n,a):a,bt=(e,t)=>Y(t?e:pt(e),((t,s)=>L(Ct(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>Bt())),Ct=(e,s)=>t?L(ce(K,e),(t=>ke(s)!=t[o]?Bt(e,s,t[c]):s),(()=>Bt(e,s))):R(ke(s))?Bt(e,s):s,Tt=(e,t,s)=>(L(ce($,t),(([n,a])=>{ae(n,((t,s)=>{q(e,s)||(e[s]=t)})),ae(a,(n=>{q(e,n)||Nt(t,s,n)}))})),e),pt=e=>(t&&(ae(X,((t,s)=>{q(e,s)||(e[s]=t)})),ae(Ve,(t=>{q(e,t)||Bt(t)}))),e),vt=e=>ge(N,e,((e,t,s)=>{const n=re(),a=Z();ge(ue(N,t,re),s,((e,t,s)=>{de(e,t,s),L(s[c],(e=>de(n,t,e)),(()=>_(a,t)))})),de($,t,[n,a])}),((e,t)=>{de(N,t),de($,t)})),Vt=e=>ge(K,e,((e,t,s)=>{de(K,t,s),L(s[c],(e=>de(X,t,e)),(()=>_(Ve,t)))}),((e,t)=>{de(K,t),de(X,t),le(Ve,t)})),yt=e=>U(e)?ys():Cs(e),wt=e=>ge(Se,e,((e,t,s)=>St(t,s)),((e,t)=>Dt(t))),St=(e,t)=>ge(ue(Se,e,(()=>(zt(e,1),de(ye,e,ze()),de(we,e,re()),re()))),t,((t,s,n)=>Mt(e,t,s,n)),((t,s)=>xt(e,t,s))),Mt=(e,t,s,n,a)=>ge(ue(t,s,(()=>(At(e,s,1),re()))),n,((t,n,a)=>mt(e,s,t,n,a)),((n,l)=>Ft(e,t,s,n,l,a))),mt=(e,t,s,n,a)=>{te(s,n)||Pt(e,t,n,1);const l=ce(s,n);a!==l&&(Wt(e,t,n,l,a),de(s,n,a))},It=(e,t,s,n,a)=>L(ce(t,s),(t=>mt(e,s,t,n,a)),(()=>Mt(e,t,s,Tt({[n]:a},e,s)))),Rt=e=>U(e)?Ms():Ts(e),Lt=e=>ge(Me,e,((e,t,s)=>Ht(t,s)),((e,t)=>Ot(t))),Ht=(e,t)=>{te(Me,e)||jt(e,1);const s=ce(Me,e);t!==s&&(kt(e,s,t),de(Me,e,t))},Jt=(e,t)=>{const[s]=ce(ye,e),n=s(t);return te(ce(Se,e),n)?Jt(e,t):n},Et=e=>ce(Se,e)??St(e,{}),Dt=e=>St(e,{}),xt=(e,t,s)=>{const[,n]=ce(ye,e);n(s),Mt(e,t,s,{},!0)},Ft=(e,t,s,n,a,l)=>{const r=ce(ce($,e)?.[0],a);if(!R(r)&&!l)return mt(e,s,n,a,r);const o=t=>{Wt(e,s,t,ce(n,t)),Pt(e,s,t,-1),de(n,t)};R(r)?o(a):ie(n,o),se(n)&&(At(e,s,-1),se(de(t,s))&&(zt(e,-1),de(Se,e),de(ye,e),de(we,e)))},Ot=e=>{const t=ce(X,e);if(!R(t))return Ht(e,t);kt(e,ce(Me,e)),jt(e,-1),de(Me,e)},zt=(e,t)=>Ke(S,e,t),At=(e,t,s)=>Ke(ue(I,e,re),t,s)&&de(m,e,ue(m,e,(()=>0))+s),Pt=(e,t,s,n)=>{const a=ce(we,e),l=ce(a,s)??0;(0==l&&1==n||1==l&&-1==n)&&Ke(ue(M,e,re),s,n),de(a,s,l!=-n?l+n:null),Ke(ue(ue(E,e,re),t,re),s,n)},Wt=(e,t,s,n,a)=>{ue(ue(ue(A,e,re),t,re),s,(()=>[n,0]))[1]=a,d[3]?.(e,t,s,a)},jt=(e,t)=>Ke(P,e,t),kt=(e,t,s)=>{ue(W,e,(()=>[t,0]))[1]=s,d[4]?.(e,s)},Nt=(e,t,s,n,a)=>(z(ue(ue(ue(j,e,re),t,re),s,(()=>[])),n),a),Bt=(e,t,s)=>(z(ue(k,e,(()=>[])),t),s),$t=(e,t,s)=>L(ce(ce(ce(A,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...Ae(ls(e,t,s))])),qt=e=>L(ce(W,e),(([e,t])=>[!0,e,t]),(()=>[!1,...Ae(cs(e))])),Gt=e=>se(j)||se(Ze[e])?0:ae(e?pe(j):j,((t,s)=>ae(t,((t,n)=>ae(t,((t,a)=>ct(Ze[e],[s,n,a],t))))))),Kt=e=>se(k)||se(_e[e])?0:ae(e?Ce(k):k,((t,s)=>ct(_e[e],[s],t))),Qt=(e,t,s,n)=>{if(!se(e))return ct(t,n,(()=>he(e))),ie(e,((e,t)=>ct(s,[...n??[],e],1==t))),1},Ut=e=>{const t=is();t!=n&&ct(me[e],void 0,t);const s=se(Fe[e]),a=se(Ue[e])&&se(Xe[e])&&se(xe[e])&&se(Oe[e])&&se(Je[e])&&se(Ee[e])&&se(De[e])&&s&&se(Re[e])&&se(Le[e]),l=se(Ye[e])&&se(Ne[e])&&se(He[e])&&se(Ie[e]);if(!a||!l){const t=e?[Ce(S),Te(M),Ce(m),Te(I),pe(E),pe(A)]:[S,M,m,I,E,A];if(!a){Qt(t[0],Re[e],Le[e]),ae(t[1],((t,s)=>Qt(t,Je[e],Ee[e],[s]))),ae(t[2],((t,s)=>{0!=t&&ct(De[e],[s],ts(s))}));const n=Z();ae(t[3],((t,a)=>{Qt(t,xe[e],Oe[e],[a])&&!s&&(ct(Fe[e],[a,null]),_(n,a))})),s||ae(t[5],((t,s)=>{if(!te(n,s)){const n=Z();ae(t,(e=>ae(e,(([t,s],a)=>s!==t?_(n,a):le(e,a))))),ae(n,(t=>ct(Fe[e],[s,t])))}})),ae(t[4],((t,s)=>ae(t,((t,n)=>Qt(t,Ue[e],Xe[e],[s,n])))))}if(!l){let s;ae(t[5],((t,n)=>{let a;ae(t,((t,l)=>{let r;ae(t,(([t,o],c)=>{o!==t&&(ct(Ye[e],[n,l,c],o,t,$t),s=a=r=1)})),r&&ct(Ne[e],[n,l],$t)})),a&&ct(He[e],[n],$t)})),s&&ct(Ie[e],void 0,$t)}}},Xt=e=>{const t=fs();t!=a&&ct(et[e],void 0,t);const s=se(st[e])&&se(nt[e]),n=se(at[e])&&se(tt[e]);if(!s||!n){const t=e?[Ce(P),Ce(W)]:[P,W];if(s||Qt(t[0],st[e],nt[e]),!n){let s;ae(t[1],(([t,n],a)=>{n!==t&&(ct(at[e],[a],n,t,qt),s=1)})),s&&ct(tt[e],void 0,qt)}}},Yt=(e,...t)=>(Rs((()=>e(...O(t,w)))),Js),Zt=()=>be(Se),_t=()=>oe(Se),es=e=>oe(ce(we,w(e))),ts=e=>ee(ce(Se,w(e))),ss=e=>oe(ce(Se,w(e))),ns=(e,t,s,n=0,a)=>{return O(D((r=ce(Se,w(e)),o=(e,s)=>[R(t)?s:ce(e,w(t)),s],l=([e],[t])=>((e??0)<(t??0)?-1:1)*(s?-1:1),O([...r?.entries()??[]],(([e,t])=>o(t,e))).sort(l)),n,R(a)?a:n+a),(([,e])=>e));var l,r,o},as=(e,t)=>oe(ce(ce(Se,w(e)),w(t))),ls=(e,t,s)=>ce(ce(ce(Se,w(e)),w(t)),w(s)),rs=()=>he(Me),os=()=>oe(Me),cs=e=>ce(Me,w(e)),is=()=>!se(Se),ds=e=>te(Se,w(e)),us=(e,t)=>te(ce(we,w(e)),w(t)),gs=(e,t)=>te(ce(Se,w(e)),w(t)),hs=(e,t,s)=>te(ce(ce(Se,w(e)),w(t)),w(s)),fs=()=>!se(Me),bs=e=>te(Me,w(e)),Cs=e=>Yt((()=>(e=>Y(e,gt,Nt))(e)?wt(e):0)),Ts=e=>Yt((()=>bt(e)?Lt(e):0)),ps=e=>{try{yt(Ge(e))}catch{}return Js},vs=t=>Yt((()=>{if((e=Y(t,(e=>Y(e,ut))))&&(vt(t),!se(Se))){const e=Zt();ys(),Cs(e)}})),Vs=e=>Yt((()=>{if(t=(e=>Y(e,ut))(e)){const s=rs();Is(),Ms(),t=!0,Vt(e),Ts(s)}})),ys=()=>Yt((()=>wt({}))),ws=e=>Yt((e=>te(Se,e)?Dt(e):0),e),Ss=(e,t)=>Yt(((e,t)=>L(ce(Se,e),(s=>te(s,t)?xt(e,s,t):0))),e,t),Ms=()=>Yt((()=>Lt({}))),ms=()=>Yt((()=>{vt({}),e=!1})),Is=()=>Yt((()=>{Vt({}),t=!1})),Rs=(e,t)=>{if(-1!=r){Ls();const s=e();return Hs(t),s}},Ls=()=>(-1!=r&&r++,1==r&&(d[0]?.(),ct(lt)),Js),Hs=e=>(r>0&&(r--,0==r&&(r=1,Gt(1),se(A)||Ut(1),Kt(1),se(W)||Xt(1),e?.(Js)&&(ae(A,((e,t)=>ae(e,((e,s)=>ae(e,(([e],n)=>Be(Js,t,s,n,e))))))),ne(A),ae(W,(([e],t)=>$e(Js,t,e))),ne(W)),ct(rt[0],void 0),r=-1,Gt(0),se(A)||Ut(0),Kt(0),se(W)||Xt(0),d[1]?.(),ct(rt[1],void 0),d[2]?.(),r=0,n=is(),a=fs(),F([S,M,m,I,E,A,j,P,W,k],ne))),Js),Js={getContent:()=>[Zt(),rs()],getTables:Zt,getTableIds:_t,getTable:e=>fe(ce(Se,w(e))),getTableCellIds:es,getRowCount:ts,getRowIds:ss,getSortedRowIds:ns,getRow:(e,t)=>he(ce(ce(Se,w(e)),w(t))),getCellIds:as,getCell:ls,getValues:rs,getValueIds:os,getValue:cs,hasTables:is,hasTable:ds,hasTableCell:us,hasRow:gs,hasCell:hs,hasValues:fs,hasValue:bs,getTablesJson:()=>qe(Se),getValuesJson:()=>qe(Me),getJson:()=>qe([Se,Me]),getTablesSchemaJson:()=>qe(N),getValuesSchemaJson:()=>qe(K),getSchemaJson:()=>qe([N,K]),hasTablesSchema:()=>e,hasValuesSchema:()=>t,setContent:([e,t])=>Yt((()=>{(U(e)?ys:Cs)(e),(U(t)?Ms:Ts)(t)})),setTables:Cs,setTable:(e,t)=>Yt((e=>gt(t,e)?St(e,t):0),e),setRow:(e,t,s)=>Yt(((e,t)=>ht(e,t,s)?Mt(e,Et(e),t,s):0),e,t),addRow:(e,t,s=!0)=>Rs((()=>{let n;return ht(e,n,t)&&(e=w(e),Mt(e,Et(e),n=Jt(e,s?1:0),t)),n})),setPartialRow:(e,t,s)=>Yt(((e,t)=>{if(ht(e,t,s,1)){const n=Et(e);Q(s,((s,a)=>It(e,n,t,a,s)))}}),e,t),setCell:(e,t,s,n)=>Yt(((e,t,s)=>L(ft(e,t,s,J(n)?n(ls(e,t,s)):n),(n=>It(e,Et(e),t,s,n)))),e,t,s),setValues:Ts,setPartialValues:e=>Yt((()=>bt(e,1)?Q(e,((e,t)=>Ht(t,e))):0)),setValue:(e,t)=>Yt((e=>L(Ct(e,J(t)?t(cs(e)):t),(t=>Ht(e,t)))),e),applyChanges:e=>Yt((()=>{Q(e[0],((e,t)=>R(e)?ws(t):Q(e,((e,s)=>R(e)?Ss(t,s):Q(e,((e,n)=>Be(Js,t,s,n,e))))))),Q(e[1],((e,t)=>$e(Js,t,e)))})),setTablesJson:ps,setValuesJson:e=>{try{Rt(Ge(e))}catch{}return Js},setJson:e=>Yt((()=>{try{const[t,s]=Ge(e);yt(t),Rt(s)}catch{ps(e)}})),setTablesSchema:vs,setValuesSchema:Vs,setSchema:(e,t)=>Yt((()=>{vs(e),Vs(t)})),delTables:ys,delTable:ws,delRow:Ss,delCell:(e,t,s,n)=>Yt(((e,t,s)=>L(ce(Se,e),(a=>L(ce(a,t),(l=>te(l,s)?Ft(e,a,t,l,s,n):0))))),e,t,s),delValues:Ms,delValue:e=>Yt((e=>te(Me,e)?Ot(e):0),e),delTablesSchema:ms,delValuesSchema:Is,delSchema:()=>Yt((()=>{ms(),Is()})),transaction:Rs,startTransaction:Ls,getTransactionChanges:()=>[he(A,((e,t)=>-1===ce(S,t)?void 0:he(e,((e,s)=>-1===ce(ce(I,t),s)?void 0:he(e,(([,e])=>e),(e=>je(e)))),se,U)),se,U),he(W,(([,e])=>e),(e=>je(e))),1],getTransactionLog:()=>[!se(A),!se(W),be(A,We,je),be(j),he(W,We,je),he(k),he(S),fe(I),be(E),he(P)],finishTransaction:Hs,forEachTable:e=>ae(Se,((t,s)=>e(s,(e=>ae(t,((t,s)=>e(s,(e=>ie(t,e))))))))),forEachTableCell:(e,t)=>ie(ce(we,w(e)),t),forEachRow:(e,t)=>ae(ce(Se,w(e)),((e,s)=>t(s,(t=>ie(e,t))))),forEachCell:(e,t,s)=>ie(ce(ce(Se,w(e)),w(t)),s),forEachValue:e=>ie(Me,e),addSortedRowIdsListener:(e,t,s,n,a,l,r)=>{let o=ns(e,t,s,n,a);return ot((()=>{const r=ns(e,t,s,n,a);var c,i,d;i=o,x(c=r)===x(i)&&(d=(e,t)=>i[t]===e,c.every(d))||(o=r,l(Js,e,t,s,n,a,o))}),Fe[r?1:0],[e,t],[_t])},addStartTransactionListener:e=>ot(e,lt),addWillFinishTransactionListener:e=>ot(e,rt[0]),addDidFinishTransactionListener:e=>ot(e,rt[1]),callListener:e=>(dt(e),Js),delListener:e=>(it(e),Js),getListenerStats:()=>({}),createStore:Qe,addListener:ot,callListeners:ct,setInternalListeners:(e,t,s,n,a)=>d=[e,t,s,n,a]};return Q({[i+g]:[0,me,[],()=>[is()]],[g]:[0,Ie],[h]:[0,Re],[i+u]:[1,Le,[_t],e=>[ds(...e)]],[u]:[1,He,[_t]],[u+p]:[1,Je,[_t]],[i+u+T]:[2,Ee,[_t,es],e=>[us(...e)]],[b]:[1,De,[_t]],[C]:[1,xe,[_t]],[i+f]:[2,Oe,[_t,ss],e=>[gs(...e)]],[f]:[2,Ne,[_t,ss]],[p]:[2,Ue,[_t,ss]],[i+T]:[3,Xe,[_t,ss,as],e=>[hs(...e)]],[T]:[3,Ye,[_t,ss,as],e=>Ae(ls(...e))],InvalidCell:[3,Ze],[i+V]:[0,et,[],()=>[fs()]],[V]:[0,tt],[y]:[0,st],[i+v]:[1,nt,[os],e=>[bs(...e)]],[v]:[1,at,[os],e=>Ae(cs(e[0]))],InvalidValue:[1,_e]},(([e,t,s,n],a)=>{Js["add"+a+"Listener"]=(...a)=>ot(a[e],t[a[e+1]?1:0],e>0?D(a,0,e):void 0,s,n)})),B(Js)},Ue=2**36,Xe=2**30,Ye=2**24,Ze=2**18,_e=4096,et=64,tt=e=>String.fromCharCode(48+(63&e)),st=(e,t)=>((e,t)=>e.charCodeAt(t))(e,t)-48,nt={HasTable:1,Table:1,TableCellIds:1,HasTableCell:2,RowCount:1,RowIds:1,SortedRowIds:5,HasRow:2,Row:2,CellIds:2,HasCell:3,Cell:3,HasValue:1,Value:1,InvalidCell:3,InvalidValue:1},at=(e=s)=>[Ee(e),Ee(e)];e.createMergeableStore=e=>{let t=1,n=at(),a=0;const l=re(),r=Z(),[o,c]=(e=>{let t=0,s=-1;const n=ye(e),a=e=>{const n=t,[a,l]=R(e)||""==e?[0,0]:[st(r=e,0)*Ue+st(r,1)*Xe+st(r,2)*Ye+st(r,3)*Ze+st(r,4)*_e+st(r,5)*et+st(r,6),st(r,7)*Ze+st(r,8)*_e+st(r,9)*et+st(r,10),st(r,11)*Ye+st(r,12)*Ze+st(r,13)*_e+st(r,14)*et+st(r,15)];var r;t=m(n,a,Date.now()),s=t==n?t==a?m(s,l):s:t==a?l:-1};return[()=>{return a(),l=++s,r=n,tt((e=t)/Ue)+tt(e/Xe)+tt(e/Ye)+tt(e/Ze)+tt(e/_e)+tt(e/et)+tt(e)+tt(l/Ze)+tt(l/_e)+tt(l/et)+tt(l)+tt(r/Ye)+tt(r/Ze)+tt(r/_e)+tt(r/et)+tt(r);var e,l,r},a]})(e),i=Qe(),d=e=>{const s=t;return t=0,e(),t=s,b},u=(e,t=0)=>{const a={},l={},[[r,o=s,i=0],d]=e,[u,h]=n,[f,b,C]=u;let T=t?i:C,p=o;K(r,(([e,n=s,l=0],r)=>{const o=ue(f,r,Ee),[c,i,d]=o;let u=t?l:d,h=n;K(e,((e,s)=>{const[n,l,o]=g(e,ue(c,s,Ee),X(X(a,r,$),s,$),t);u^=t?0:(l?Ie(s,l):0)^Ie(s,o),h=Le(h,n)})),u^=t?0:Re(i,n),He(o,u,n),T^=t?0:(d?Ie(r,d):0)^Ie(r,o[2]),p=Le(p,h)})),T^=t?0:Re(b,o),He(u,T,o);const[v]=g(d,h,l,t);return c(Le(p,v)),[a,l,1]},g=(e,t,n,a)=>{const[l,r=s,o=0]=e,[c,i,d]=t;let u=r,g=a?o:d;return K(l,(([e,t,l=0],r)=>{const o=ue(c,r,(()=>[void 0,s,0])),[,i,d]=o;(!i||t>i)&&(He(o,a?l:ye(qe(e??null)+":"+t),t),o[0]=e,n[r]=e,g^=a?0:Ie(r,d)^Ie(r,o[2]),u=Le(u,t))})),g^=a?0:Re(i,r),He(t,g,r),[u,d,t[2]]},h=()=>[De(n[0],(e=>De(e,(e=>De(e))))),De(n[1])],f=e=>d((()=>i.applyChanges(u(e)))),b={getId:()=>e,getMergeableContent:h,getMergeableContentHashes:()=>[n[0][2],n[1][2]],getMergeableTableHashes:()=>he(n[0][0],me),getMergeableTableDiff:e=>{const t=Je(n[0][1]),s={};return ie(n[0][0],((n,[a,l,r])=>q(e,n)?r!=e[n]?s[n]=r:0:t[0][n]=xe([a,l],(e=>xe(e))))),[t,s]},getMergeableRowHashes:e=>{const t={};return K(e,((e,s)=>L(ce(n[0][0],s),(([n,,a])=>a!=e?ie(n,((e,[,,n])=>X(t,s,$)[e]=n)):0)))),t},getMergeableRowDiff:e=>{const t=Je(n[0][1]),s={};return K(e,((e,a)=>ie(ce(n[0][0],a)?.[0],((n,[l,r,o])=>q(e,n)?o!==e[n]?X(s,a,$)[n]=o:0:X(t[0],a,Je)[0][n]=xe([l,r]))))),[t,s]},getMergeableCellHashes:e=>{const t={};return K(e,((e,s)=>L(ce(n[0][0],s),(([n])=>K(e,((e,a)=>L(ce(n,a),(([n,,l])=>l!==e?ie(n,((e,[,,n])=>X(X(t,s,$),a,$)[e]=n)):0)))))))),t},getMergeableCellDiff:e=>{const[[t,s]]=n,a={};return K(e,((e,s)=>K(e,((e,n)=>L(ce(t,s),(([t,l])=>L(ce(t,n),(([t,r])=>ie(t,((t,[o,c,i])=>i!==e[t]?X(X(a,s,(()=>Je(l)))[0],n,(()=>Je(r)))[0][t]=[o,c]:0)))))))))),Me(a,s)},getMergeableValuesHashes:()=>he(n[1][0],me),getMergeableValueDiff:e=>{const[,[t,s]]=n,a=he(t,Se,(([,,t],s)=>t==e?.[s]));return Me(a,s)},setMergeableContent:e=>d((()=>(e=>E(e)&&2==x(e)&&Fe(e[0],(e=>Y(e,(e=>Fe(e,(e=>Y(e,(e=>Fe(e,(e=>Y(e,(e=>Fe(e,Ne)),void 0,1)))),void 0,1)))),void 0,1)))&&Fe(e[1],(e=>Y(e,(e=>Fe(e,Ne)),void 0,1))))(e)?i.transaction((()=>{i.delTables().delValues(),n=at(),i.applyChanges(u(e,1))})):0)),setDefaultContent:e=>(i.transaction((()=>{a=1,i.setContent(e),a=0})),b),getTransactionMergeableChanges:()=>{const[[e,t],[s,a]]=n,o={};ae(l,((t,s)=>L(ce(e,s),(([e,n])=>{const a={};ae(t,((t,s)=>L(ce(e,s),(([e,n])=>{const l={};ae(t,(t=>{L(ce(e,t),(([e,s])=>l[t]=Me(e,s)))})),a[s]=Me(l,n)})))),o[s]=Me(a,n)}))));const c={};return ae(r,(e=>L(ce(s,e),(([t,s])=>c[e]=Me(t,s))))),[Me(o,t),Me(c,a),1]},applyMergeableChanges:f,merge:e=>{const t=h(),s=e.getMergeableContent();return e.applyMergeableChanges(t),f(s)}};return i.setInternalListeners((()=>{}),(()=>{}),(()=>{ne(l),ne(r)}),((e,n,r,c)=>{_(ue(ue(l,e,re),n,Z),r),t&&u([[{[e]:[{[n]:[{[r]:[c,a?s:o()]}]}]}],[{}],1])}),((e,n)=>{_(r,e),t&&u([[{}],[{[e]:[n,a?s:o()]}],1])})),Q(i,((e,t)=>b[t]=S(t,"set")||S(t,"del")||S(t,"apply")||M(t,"Transaction")||"callListener"==t?(...t)=>(e(...t),b):S(t,"add")&&M(t,"Listener")?(...s)=>{const n=nt[D(t,3,-8)]??0,a=s[n];return s[n]=(e,...t)=>a(b,...t),e(...s)}:e)),B(b)}},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseMergeableStore={});
Binary file
@@ -1 +1 @@
1
- var e,t;e=this,t=function(e){"use strict";const t=e=>null==e,a=(e,a,n)=>t(e)?n?.():a(e),n=Object,s=e=>n.getPrototypeOf(e),o=n.entries,r=n.keys,i=n.freeze,c=(e,t)=>a(e,(e=>e[t])),d=(e,t)=>t in e,y=(e,t)=>(delete e[t],e),u=(e,t)=>((e,t)=>e.map(t))(o(e),(([e,a])=>t(a,e))),g=e=>r(e).length,l=e=>(e=>!t(e)&&a(s(e),(e=>e==n.prototype||t(s(e))),(()=>!0)))(e)&&0==g(e),h=e=>new Map(e),p=(e,t)=>e?.get(t),v=(e,a,n)=>{return t(n)?(s=e,o=a,s?.delete(o),e):e?.set(a,n);var s,o},f=(e,t,a,n)=>{var s,o;return s=e,o=t,s?.has(o)?n?.(p(e,t)):v(e,t,a()),p(e,t)},w=h(),A=h(),C=(e,t)=>[e[t].t,e[t].v],b=(e,a,n,s)=>{const o=t(a)?e:((e,t,a)=>(d(e,t)||(e[t]={}),e[t]))(e,a);let r;return u(n,((e,t)=>{s(o,t,e)&&(r=1)})),u(o,((e,t)=>{d(n,t)||(y(o,t),r=1)})),!t(a)&&l(o)&&y(e,a),r};e.createAutomergePersister=(e,n,s="tinybase",o)=>(n.change((e=>e[s]={})),((e,n,s,o,r,c,d,y={},u=[])=>{let g,h,C,b=0;f(w,u,(()=>0)),f(A,u,(()=>[]));const[L,S,m,M,T]=((e,a)=>!e||t(a.getMergeableContent)?[0,a.getContent,a.getTransactionChanges,([e,t])=>!l(e)||!l(t),a.setContent]:[1,a.getMergeableContent,a.getTransactionMergeableChanges,([[e],[t]])=>!l(e)||!l(t),a.setDefaultContent])(d,e),x=async e=>(2!=b&&(b=1,await P.schedule((async()=>{await e(),b=0}))),P),D=t=>{var a;(L&&(a=t?.[0],Array.isArray(a))?1===t?.[2]?e.applyMergeableChanges:e.setMergeableContent:1===t?.[2]?e.applyChanges:e.setContent)(t)},P={load:async e=>await x((async()=>{try{D(await n())}catch(t){c?.(t),e&&T(e)}})),startAutoLoad:async e=>(await P.stopAutoLoad().load(e),h=o((async(e,t)=>{const a=t?.();await x((async()=>{try{D(a??e?.()??await n())}catch(e){c?.(e)}}))})),P),stopAutoLoad:()=>(h&&(r(h),h=void 0),P),isAutoLoading:()=>!t(h),save:async e=>(1!=b&&(b=2,await P.schedule((async()=>{try{await s(S,e)}catch(e){c?.(e)}b=0}))),P),startAutoSave:async()=>(await P.stopAutoSave().save(),C=e.addDidFinishTransactionListener((()=>{const e=m();M(e)&&P.save((()=>e))})),P),stopAutoSave:()=>(a(C,e.delListener),C=void 0,P),isAutoSaving:()=>!t(C),schedule:async(...e)=>(((e,...t)=>{e.push(...t)})(p(A,u),...e),await(async()=>{if(!p(w,u)){for(v(w,u,1);!t((e=p(A,u),g=e.shift()));)try{await g()}catch(e){c?.(e)}v(w,u,0)}var e})(),P),getStore:()=>e,destroy:()=>P.stopAutoLoad().stopAutoSave(),getStats:()=>({}),...y};return i(P)})(e,(async()=>{const e=await n.doc();return 2==g(e[s])?C(e,s):void 0}),(async(e,o)=>n.change((n=>((e,n,s,o)=>{((e,t)=>{l(e[t])&&(e[t]={t:{},v:{}})})(e,n);const[r,i]=C(e,n),d=()=>{g=1};let g=1;if(a(o?.(),(([e,n])=>{g=0,u(e,((e,n)=>g?0:t(e)?y(r,n):a(r[n],(n=>u(e,((e,s)=>g?0:t(e)?y(n,s):a(c(n,s),(a=>u(e,((e,n)=>t(e)?y(a,n):a[n]=e))),d)))),d))),u(n,((e,a)=>g?0:t(e)?y(i,a):i[a]=e))})),g){const[e,t]=s();b(r,void 0,e,((e,t,a)=>b(r,t,a,((e,t,a)=>b(e,t,a,((e,t,a)=>{if(c(e,t)!==a)return e[t]=a,1})))))),b(i,void 0,t,((e,t,a)=>{c(i,t)!==a&&(i[t]=a)}))}})(n,s,e,o)))),(e=>{const t=({doc:t})=>e((()=>C(t,s)));return n.on("change",t),t}),(e=>{n.removeListener("change",e)}),o,!1,{getDocHandle:()=>n}))},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBasePersisterAutomerge={});
1
+ var e,t;e=this,t=function(e){"use strict";const t=e=>null==e,a=(e,a,n)=>t(e)?n?.():a(e),n=Object,s=e=>n.getPrototypeOf(e),o=n.entries,r=n.keys,i=n.freeze,c=(e,t)=>a(e,(e=>e[t])),d=(e,t)=>t in e,g=(e,t)=>(delete e[t],e),y=(e,t)=>((e,t)=>e.map(t))(o(e),(([e,a])=>t(a,e))),l=e=>r(e).length,u=e=>(e=>!t(e)&&a(s(e),(e=>e==n.prototype||t(s(e))),(()=>!0)))(e)&&0==l(e),f=e=>new Map(e),h=(e,t)=>e?.get(t),p=(e,a,n)=>{return t(n)?(s=e,o=a,s?.delete(o),e):e?.set(a,n);var s,o},v=(e,t,a,n)=>{var s,o;return s=e,o=t,s?.has(o)?n?.(h(e,t)):p(e,t,a()),h(e,t)},w=f(),A=f(),C=(e,t)=>[e[t].t,e[t].v],b=(e,a,n,s)=>{const o=t(a)?e:((e,t,a)=>(d(e,t)||(e[t]={}),e[t]))(e,a);let r;return y(n,((e,t)=>{s(o,t,e)&&(r=1)})),y(o,((e,t)=>{d(n,t)||(g(o,t),r=1)})),!t(a)&&u(o)&&g(e,a),r};e.createAutomergePersister=(e,n,s="tinybase",o)=>(n.change((e=>e[s]={})),((e,n,s,o,r,c,d,g={},y=[])=>{let l,f,C,b=0;v(w,y,(()=>0)),v(A,y,(()=>[]));const[m,L,M,S,T]=((e=1,t)=>e>1&&"getMergeableContent"in t?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[e],[t]])=>!u(e)||!u(t),t.setDefaultContent]:2!=e?[0,t.getContent,t.getTransactionChanges,([e,t])=>!u(e)||!u(t),t.setContent]:0)(d,e),x=t=>{var a;(m&&(a=t?.[0],Array.isArray(a))?1===t?.[2]?e.applyMergeableChanges:e.setMergeableContent:1===t?.[2]?e.applyChanges:e.setContent)(t)},D=async e=>(2!=b&&(b=1,await k((async()=>{try{x(await n())}catch(t){c?.(t),e&&T(e)}b=0}))),z),P=()=>(f&&(r(f),f=void 0),z),j=async e=>(1!=b&&(b=2,await k((async()=>{try{await s(L,e)}catch(e){c?.(e)}b=0}))),z),O=()=>(a(C,e.delListener),C=void 0,z),k=async(...e)=>(((e,...t)=>{e.push(...t)})(h(A,y),...e),await(async()=>{if(!h(w,y)){for(p(w,y,1);!t((e=h(A,y),l=e.shift()));)try{await l()}catch(e){c?.(e)}p(w,y,0)}var e})(),z),z={load:D,startAutoLoad:async e=>(await P().load(e),f=o((async(e,t)=>{t||e?2!=b&&(b=1,x(t??e),b=0):await D()})),z),stopAutoLoad:P,isAutoLoading:()=>!t(f),save:j,startAutoSave:async()=>(await O().save(),C=e.addDidFinishTransactionListener((()=>{const e=M();S(e)&&j(e)})),z),stopAutoSave:O,isAutoSaving:()=>!t(C),schedule:k,getStore:()=>e,destroy:()=>P().stopAutoSave(),getStats:()=>({}),...g};return i(z)})(e,(async()=>{const e=await n.doc();return 2==l(e[s])?C(e,s):void 0}),(async(e,o)=>n.change((n=>((e,n,s,o)=>{((e,t)=>{u(e[t])&&(e[t]={t:{},v:{}})})(e,n);const[r,i]=C(e,n),d=()=>{l=1};let l=1;if(a(o,(([e,n])=>{l=0,y(e,((e,n)=>l?0:t(e)?g(r,n):a(r[n],(n=>y(e,((e,s)=>l?0:t(e)?g(n,s):a(c(n,s),(a=>y(e,((e,n)=>t(e)?g(a,n):a[n]=e))),d)))),d))),y(n,((e,a)=>l?0:t(e)?g(i,a):i[a]=e))})),l){const[e,t]=s();b(r,void 0,e,((e,t,a)=>b(r,t,a,((e,t,a)=>b(e,t,a,((e,t,a)=>{if(c(e,t)!==a)return e[t]=a,1})))))),b(i,void 0,t,((e,t,a)=>{c(i,t)!==a&&(i[t]=a)}))}})(n,s,e,o)))),(e=>{const t=({doc:t})=>e(C(t,s));return n.on("change",t),t}),(e=>{n.removeListener("change",e)}),o,1,{getDocHandle:()=>n}))},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBasePersisterAutomerge={});
@@ -1 +1 @@
1
- var e,t;e=this,t=function(e){"use strict";const t=e=>null==e,a=(e,a,s)=>t(e)?s?.():a(e),s=Object,n=e=>s.getPrototypeOf(e),o=s.keys,r=s.freeze,i=e=>(e=>!t(e)&&a(n(e),(e=>e==s.prototype||t(n(e))),(()=>!0)))(e)&&0==(e=>o(e).length)(e),c=JSON.parse,y=e=>new Map(e),d=(e,t)=>e?.get(t),g=(e,a,s)=>{return t(s)?(n=e,o=a,n?.delete(o),e):e?.set(a,s);var n,o},l=(e,t,a,s)=>{var n,o;return n=e,o=t,n?.has(o)?s?.(d(e,t)):g(e,t,a()),d(e,t)},u=y(),p=y(),v="storage",h=globalThis.window,f=(e,s,n,o)=>((e,s,n,o,c,y,v,h={},f=[])=>{let w,S,A,C=0;l(u,f,(()=>0)),l(p,f,(()=>[]));const[b,L,T,m,M]=((e,a)=>!e||t(a.getMergeableContent)?[0,a.getContent,a.getTransactionChanges,([e,t])=>!i(e)||!i(t),a.setContent]:[1,a.getMergeableContent,a.getTransactionMergeableChanges,([[e],[t]])=>!i(e)||!i(t),a.setDefaultContent])(v,e),O=async e=>(2!=C&&(C=1,await P.schedule((async()=>{await e(),C=0}))),P),N=t=>{var a;(b&&(a=t?.[0],Array.isArray(a))?1===t?.[2]?e.applyMergeableChanges:e.setMergeableContent:1===t?.[2]?e.applyChanges:e.setContent)(t)},P={load:async e=>await O((async()=>{try{N(await s())}catch(t){y?.(t),e&&M(e)}})),startAutoLoad:async e=>(await P.stopAutoLoad().load(e),S=o((async(e,t)=>{const a=t?.();await O((async()=>{try{N(a??e?.()??await s())}catch(e){y?.(e)}}))})),P),stopAutoLoad:()=>(S&&(c(S),S=void 0),P),isAutoLoading:()=>!t(S),save:async e=>(1!=C&&(C=2,await P.schedule((async()=>{try{await n(L,e)}catch(e){y?.(e)}C=0}))),P),startAutoSave:async()=>(await P.stopAutoSave().save(),A=e.addDidFinishTransactionListener((()=>{const e=T();m(e)&&P.save((()=>e))})),P),stopAutoSave:()=>(a(A,e.delListener),A=void 0,P),isAutoSaving:()=>!t(A),schedule:async(...e)=>(((e,...t)=>{e.push(...t)})(d(p,f),...e),await(async()=>{if(!d(u,f)){for(g(u,f,1);!t((e=d(p,f),w=e.shift()));)try{await w()}catch(e){y?.(e)}g(u,f,0)}var e})(),P),getStore:()=>e,destroy:()=>P.stopAutoLoad().stopAutoSave(),getStats:()=>({}),...h};return r(P)})(e,(async()=>{return e=n.getItem(s),JSON.parse(e,((e,t)=>""===t?void 0:t));var e}),(async e=>{return n.setItem(s,(t=e(),JSON.stringify(t,((e,t)=>void 0===t?"":t))));var t}),(e=>{const t=t=>{t.storageArea===n&&t.key===s&&e((()=>c(t.newValue)))};return h.addEventListener(v,t),t}),(e=>h.removeEventListener(v,e)),o,!0,{getStorageName:()=>s});e.createLocalPersister=(e,t,a)=>f(e,t,localStorage,a),e.createSessionPersister=(e,t,a)=>f(e,t,sessionStorage,a)},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBasePersisterBrowser={});
1
+ var e,t;e=this,t=function(e){"use strict";const t=e=>null==e,a=(e,a,s)=>t(e)?s?.():a(e),s=Object,n=e=>s.getPrototypeOf(e),r=s.keys,o=s.freeze,i=e=>(e=>!t(e)&&a(n(e),(e=>e==s.prototype||t(n(e))),(()=>!0)))(e)&&0==(e=>r(e).length)(e),c=JSON.parse,g=e=>new Map(e),y=(e,t)=>e?.get(t),l=(e,a,s)=>{return t(s)?(n=e,r=a,n?.delete(r),e):e?.set(a,s);var n,r},d=(e,t,a,s)=>{var n,r;return n=e,r=t,n?.has(r)?s?.(y(e,t)):l(e,t,a()),y(e,t)},u=g(),p=g(),f="storage",v=globalThis.window,h=(e,s,n,r)=>((e,s,n,r,c,g,f,v={},h=[])=>{let w,S,C,b=0;d(u,h,(()=>0)),d(p,h,(()=>[]));const[A,L,T,m,M]=((e=1,t)=>e>1&&"getMergeableContent"in t?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[e],[t]])=>!i(e)||!i(t),t.setDefaultContent]:2!=e?[0,t.getContent,t.getTransactionChanges,([e,t])=>!i(e)||!i(t),t.setContent]:0)(f,e),O=t=>{var a;(A&&(a=t?.[0],Array.isArray(a))?1===t?.[2]?e.applyMergeableChanges:e.setMergeableContent:1===t?.[2]?e.applyChanges:e.setContent)(t)},N=async e=>(2!=b&&(b=1,await j((async()=>{try{O(await s())}catch(t){g?.(t),e&&M(e)}b=0}))),k),P=()=>(S&&(c(S),S=void 0),k),x=async e=>(1!=b&&(b=2,await j((async()=>{try{await n(L,e)}catch(e){g?.(e)}b=0}))),k),J=()=>(a(C,e.delListener),C=void 0,k),j=async(...e)=>(((e,...t)=>{e.push(...t)})(y(p,h),...e),await(async()=>{if(!y(u,h)){for(l(u,h,1);!t((e=y(p,h),w=e.shift()));)try{await w()}catch(e){g?.(e)}l(u,h,0)}var e})(),k),k={load:N,startAutoLoad:async e=>(await P().load(e),S=r((async(e,t)=>{t||e?2!=b&&(b=1,O(t??e),b=0):await N()})),k),stopAutoLoad:P,isAutoLoading:()=>!t(S),save:x,startAutoSave:async()=>(await J().save(),C=e.addDidFinishTransactionListener((()=>{const e=T();m(e)&&x(e)})),k),stopAutoSave:J,isAutoSaving:()=>!t(C),schedule:j,getStore:()=>e,destroy:()=>P().stopAutoSave(),getStats:()=>({}),...v};return o(k)})(e,(async()=>{return e=n.getItem(s),JSON.parse(e,((e,t)=>""===t?void 0:t));var e}),(async e=>{return n.setItem(s,(t=e(),JSON.stringify(t,((e,t)=>void 0===t?"":t))));var t}),(e=>{const t=t=>{if(t.storageArea===n&&t.key===s)try{e(c(t.newValue))}catch{e()}};return v.addEventListener(f,t),t}),(e=>v.removeEventListener(f,e)),r,3,{getStorageName:()=>s});e.createLocalPersister=(e,t,a)=>h(e,t,localStorage,a),e.createSessionPersister=(e,t,a)=>h(e,t,sessionStorage,a)},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBasePersisterBrowser={});
@@ -1 +1 @@
1
- var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",n="",s=",",i=t(n),o=(a,t)=>a.repeat(t),c=Promise,r=clearInterval,l=a=>null==a,y=(a,t,e)=>l(a)?e?.():t(a),w=a=>t(a)==i,u=a=>Array.isArray(a),d=(a,t,e)=>a.slice(t,e),p=a=>a.length,E=async a=>c.all(a),f="_",g="_id",m=a=>`"${a.replace(/"/g,'""')}"`,v="SELECT",h=(a,t="")=>a.join(t),A=(a,t)=>a.map(t),C=a=>0==p(a),T=(a,t)=>a.filter(t),O=(a,...t)=>a.push(...t),N=(a,t)=>a?.has(t)??!1,b=a=>[...a?.values()??[]],L=(a,t)=>a?.delete(t),S=Object,R=a=>S.getPrototypeOf(a),D=S.entries,I=S.keys,M=S.freeze,P=(a=[])=>S.fromEntries(a),_=(...a)=>S.assign({},...a),F=(a,t)=>t in a,x=(a,t)=>A(D(a),(([a,e])=>t(e,a))),j=a=>S.values(a),B=a=>p(I(a)),W=a=>(a=>!l(a)&&y(R(a),(a=>a==S.prototype||l(R(a))),(()=>!0)))(a)&&0==B(a),H=a=>new Map(a),U=a=>[...a?.keys()??[]],Y=(a,t)=>a?.get(t),$=(a,t)=>A([...a?.entries()??[]],(([a,e])=>t(e,a))),k=(a,t,e)=>l(e)?(L(a,t),a):a?.set(t,e),q=(a,t,e,n)=>(N(a,t)?n?.(Y(a,t)):k(a,t,e()),Y(a,t)),G=(a,t,e,n=k)=>(x(t,((t,n)=>e(a,n,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>F(t,e)?0:n(a,e))),a),J=a=>new Set(u(a)||l(a)?a:[a]),z=(a,t)=>a?.add(t),K="TABLE",V="ALTER "+K,Q="DELETE FROM",X=v+"*FROM",Z="FROM pragma_table_",aa="WHERE",ta=(a,t,e,i)=>{const o=H();return[async()=>G(o,P(await E(A(await a("SELECT name "+Z+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+na(t)+")ORDER BY name",t),(async({name:t})=>[t,P(A(await a(v+" name,type "+Z+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>k(o,t,G(q(o,t,H),e,((a,t,e)=>{e!=Y(a,t)&&k(a,t,e)}),((a,t)=>k(a,t))))),((a,t)=>k(o,t))),async(t,e)=>((a,t)=>!l(Y(Y(o,a),t)))(t,e)?P(T(A(await a(X+m(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!l(a)&&!W(t)))):{},async(t,e,c,r,y,w=!1)=>{const u=J();x(c??{},(a=>A(I(a??{}),(a=>z(u,a)))));const d=b(u);if(!w&&y&&C(d)&&N(o,t))return await a("DROP "+K+m(t)),void k(o,t);if(C(d)||N(o,t)){const s=Y(o,t),i=J(U(s));await E([...A(d,(async e=>{L(i,e)||(await a(V+m(t)+"ADD"+m(e)),k(s,e,n))})),...!w&&r?A(b(i),(async n=>{n!=e&&(await a(V+m(t)+"DROP"+m(n)),k(s,n))})):[]])}else await a("CREATE "+K+m(t)+"("+m(e)+` PRIMARY KEY ON CONFLICT REPLACE${h(A(d,(a=>s+m(a))))});`),k(o,t,H([[e,n],...A(d,(a=>[a,n]))]));if(w)l(c)?await a(Q+m(t)+aa+" 1"):await E(x(c,(async(n,s)=>{l(n)?await a(Q+m(t)+aa+m(e)+"=?",[s]):C(d)||await ea(a,t,e,I(n),[s,...j(n)],i)})));else if(C(d))N(o,t)&&await a(Q+m(t)+aa+" 1");else{const n=T(U(Y(o,t)),(a=>a!=e)),s=[],r=[];x(c??{},((a,t)=>{O(s,t,...A(n,(t=>a?.[t]))),O(r,t)})),await ea(a,t,e,n,s,i),await a(Q+m(t)+aa+m(e)+"NOT IN("+na(r)+")",r)}},async t=>{let n;await a("BEGIN");try{n=await t()}catch(a){e?.(a)}return await a("END"),n}]},ea=async(a,t,e,i,c,r=!0)=>await a("INSERT "+(r?n:"OR REPLACE ")+"INTO"+m(t)+"("+m(e)+h(A(i,(a=>s+m(a))))+")VALUES"+d(o(`,(?${o(",?",p(i))})`,p(c)/(p(i)+1)),1)+(r?"ON CONFLICT("+m(e)+")DO UPDATE SET"+h(A(i,(a=>m(a)+"=excluded."+m(a))),s):n),A(c,(a=>a??null))),na=a=>h(A(a,(()=>"?")),s),sa=JSON.parse,ia=H(),oa=H(),ca=(a,t,e,n,s,i,o,c={},r=[])=>{let w,d,p,E=0;q(ia,r,(()=>0)),q(oa,r,(()=>[]));const[f,g,m,v,h]=((a,t)=>!a||l(t.getMergeableContent)?[0,t.getContent,t.getTransactionChanges,([a,t])=>!W(a)||!W(t),t.setContent]:[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!W(a)||!W(t),t.setDefaultContent])(o,a),A=async a=>(2!=E&&(E=1,await T.schedule((async()=>{await a(),E=0}))),T),C=t=>{(f&&u(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},T={load:async a=>await A((async()=>{try{C(await t())}catch(t){i?.(t),a&&h(a)}})),startAutoLoad:async a=>(await T.stopAutoLoad().load(a),d=n((async(a,e)=>{const n=e?.();await A((async()=>{try{C(n??a?.()??await t())}catch(a){i?.(a)}}))})),T),stopAutoLoad:()=>(d&&(s(d),d=void 0),T),isAutoLoading:()=>!l(d),save:async a=>(1!=E&&(E=2,await T.schedule((async()=>{try{await e(g,a)}catch(a){i?.(a)}E=0}))),T),startAutoSave:async()=>(await T.stopAutoSave().save(),p=a.addDidFinishTransactionListener((()=>{const a=m();v(a)&&T.save((()=>a))})),T),stopAutoSave:()=>(y(p,a.delListener),p=void 0,T),isAutoSaving:()=>!l(p),schedule:async(...a)=>(O(Y(oa,r),...a),await(async()=>{if(!Y(ia,r)){for(k(ia,r,1);!l((a=Y(oa,r),w=a.shift()));)try{await w()}catch(a){i?.(a)}k(ia,r,0)}var a})(),T),getStore:()=>a,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({}),...c};return M(T)},ra="store",la=(a,t,e,n,s,[i],o,c,r,l)=>{const[y,w,u,d]=ta(t,o,s,l);return ca(a,(async()=>await d((async()=>(await y(),sa((await w(i,g))[f]?.[ra]??"null"))))),(async a=>await d((async()=>{var t;await y(),await u(i,g,{[f]:{[ra]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?S.fromEntries([...t]):t)))}},!0,!0)}))),e,n,s,!1,{[r]:()=>c},c)},ya=(a,t,e,n,s,[i,o,[c,r,y]],w,u,d,p)=>{const[m,v,h,A]=ta(t,w,s,p),C=async(a,t)=>await E($(o,(async([e,n,s,i],o)=>{t&&!F(a,o)||await h(e,n,a[o],s,i,t)}))),O=async(a,t)=>r?await h(y,g,{[f]:a},!0,!0,t):null;return ca(a,(async()=>await A((async()=>{await m();const a=await(async()=>P(T(await E($(i,(async([a,t],e)=>[a,await v(e,t)]))),(a=>!W(a[1])))))(),t=await(async()=>c?(await v(y,g))[f]:{})();return W(a)&&l(t)?void 0:[a,t]}))),(async(a,t)=>await A((async()=>{if(await m(),l(t)){const[t,e]=a();await C(t),await O(e)}else{const[a,e]=t();await C(a,!0),await O(e,!0)}}))),e,n,s,!1,{[d]:()=>u},u)},wa="json",ua="autoLoadIntervalSeconds",da="rowIdColumnName",pa="tableId",Ea="tableName",fa={mode:wa,[ua]:1},ga={load:0,save:0,[Ea]:e+"_values"},ma=(a,t,e,n)=>{const s=H();return x(a,((a,i)=>{const o=d(j(_(t,w(a)?{[e]:a}:a)),0,B(t));l(o[0])||n(i,o[0])||k(s,i,o)})),s},va="pragma ",ha="data_version",Aa="schema_version",Ca=(a,t,n,s,i,o,c,l,y="getDb",u)=>{let p,E,f;const[m,h,A,C]=(a=>{const t=(a=>_(fa,w(a)?{storeTableName:a}:a??{}))(a),n=t[ua];if(t.mode==wa){const{storeTableName:a=e}=t;return[1,n,[a],J(a)]}const{tables:{load:s={},save:i={}}={},values:o={}}=t,c=d(j(_(ga,o)),0,B(ga)),r=c[2],l=J(r);return[0,n,[ma(s,{[pa]:null,[da]:g},pa,(a=>z(l,a)&&a==r)),ma(i,{[Ea]:null,[da]:g,deleteEmptyColumns:0,deleteEmptyTable:0},Ea,((a,t)=>z(l,t)&&t==r)),c],l]})(t);return(m?la:ya)(a,o?async(a,t)=>(o(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const t=(await n(va+ha))[0][ha],e=(await n(va+Aa))[0][Aa],s=(await n(v+" TOTAL_CHANGES() c"))[0].c;t==(p??=t)&&e==(E??=e)&&s==(f??=s)||(a(),p=t,E=e)}catch{}},e=h,t(),setInterval(t,1e3*e)),s((t=>C.has(t)?a():0))];var t,e}),(([a,t])=>{r(a),p=E=null,i(t)}),c,A,b(C),l,y,u)};a.createCrSqliteWasmPersister=(a,t,e,n,s)=>Ca(a,e,(async(a,e=[])=>await t.execO(a,e)),(a=>t.onUpdate(((t,e,n)=>a(n)))),(a=>a()),n,s,t)},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterCrSqliteWasm={});
1
+ var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",n="",s=",",i=t(n),r=(a,t)=>a.repeat(t),o=Promise,c=clearInterval,l=a=>null==a,y=(a,t,e)=>l(a)?e?.():t(a),w=a=>t(a)==i,u=a=>Array.isArray(a),d=(a,t,e)=>a.slice(t,e),p=a=>a.length,E=async a=>o.all(a),f="_",g="_id",m=a=>`"${a.replace(/"/g,'""')}"`,v="SELECT",C=(a,t="")=>a.join(t),T=(a,t)=>a.map(t),h=a=>0==p(a),A=(a,t)=>a.filter(t),O=(a,...t)=>a.push(...t),N=(a,t)=>a?.has(t)??!1,b=a=>[...a?.values()??[]],R=(a,t)=>a?.delete(t),S=Object,L=a=>S.getPrototypeOf(a),D=S.entries,I=S.keys,M=S.freeze,P=(a=[])=>S.fromEntries(a),_=(...a)=>S.assign({},...a),F=(a,t)=>t in a,x=(a,t)=>T(D(a),(([a,e])=>t(e,a))),j=a=>S.values(a),B=a=>p(I(a)),W=a=>(a=>!l(a)&&y(L(a),(a=>a==S.prototype||l(L(a))),(()=>!0)))(a)&&0==B(a),H=a=>new Map(a),U=a=>[...a?.keys()??[]],Y=(a,t)=>a?.get(t),$=(a,t)=>T([...a?.entries()??[]],(([a,e])=>t(e,a))),k=(a,t,e)=>l(e)?(R(a,t),a):a?.set(t,e),q=(a,t,e,n)=>(N(a,t)?n?.(Y(a,t)):k(a,t,e()),Y(a,t)),G=(a,t,e,n=k)=>(x(t,((t,n)=>e(a,n,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>F(t,e)?0:n(a,e))),a),J=a=>new Set(u(a)||l(a)?a:[a]),z=(a,t)=>a?.add(t),K="TABLE",V="ALTER "+K,Q="DELETE FROM",X=v+"*FROM",Z="FROM pragma_table_",aa="WHERE",ta=(a,t,e,i)=>{const r=H();return[async()=>G(r,P(await E(T(await a("SELECT name "+Z+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+na(t)+")ORDER BY name",t),(async({name:t})=>[t,P(T(await a(v+" name,type "+Z+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>k(r,t,G(q(r,t,H),e,((a,t,e)=>{e!=Y(a,t)&&k(a,t,e)}),((a,t)=>k(a,t))))),((a,t)=>k(r,t))),async(t,e)=>((a,t)=>!l(Y(Y(r,a),t)))(t,e)?P(A(T(await a(X+m(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!l(a)&&!W(t)))):{},async(t,e,o,c,y,w=!1)=>{const u=J();x(o??{},(a=>T(I(a??{}),(a=>z(u,a)))));const d=b(u);if(!w&&y&&h(d)&&N(r,t))return await a("DROP "+K+m(t)),void k(r,t);if(h(d)||N(r,t)){const s=Y(r,t),i=J(U(s));await E([...T(d,(async e=>{R(i,e)||(await a(V+m(t)+"ADD"+m(e)),k(s,e,n))})),...!w&&c?T(b(i),(async n=>{n!=e&&(await a(V+m(t)+"DROP"+m(n)),k(s,n))})):[]])}else await a("CREATE "+K+m(t)+"("+m(e)+` PRIMARY KEY ON CONFLICT REPLACE${C(T(d,(a=>s+m(a))))});`),k(r,t,H([[e,n],...T(d,(a=>[a,n]))]));if(w)l(o)?await a(Q+m(t)+aa+" 1"):await E(x(o,(async(n,s)=>{l(n)?await a(Q+m(t)+aa+m(e)+"=?",[s]):h(d)||await ea(a,t,e,I(n),[s,...j(n)],i)})));else if(h(d))N(r,t)&&await a(Q+m(t)+aa+" 1");else{const n=A(U(Y(r,t)),(a=>a!=e)),s=[],c=[];x(o??{},((a,t)=>{O(s,t,...T(n,(t=>a?.[t]))),O(c,t)})),await ea(a,t,e,n,s,i),await a(Q+m(t)+aa+m(e)+"NOT IN("+na(c)+")",c)}},async t=>{let n;await a("BEGIN");try{n=await t()}catch(a){e?.(a)}return await a("END"),n}]},ea=async(a,t,e,i,o,c=!0)=>await a("INSERT "+(c?n:"OR REPLACE ")+"INTO"+m(t)+"("+m(e)+C(T(i,(a=>s+m(a))))+")VALUES"+d(r(`,(?${r(",?",p(i))})`,p(o)/(p(i)+1)),1)+(c?"ON CONFLICT("+m(e)+")DO UPDATE SET"+C(T(i,(a=>m(a)+"=excluded."+m(a))),s):n),T(o,(a=>a??null))),na=a=>C(T(a,(()=>"?")),s),sa=JSON.parse,ia=H(),ra=H(),oa=(a,t,e,n,s,i,r,o={},c=[])=>{let w,d,p,E=0;q(ia,c,(()=>0)),q(ra,c,(()=>[]));const[f,g,m,v,C]=((a=1,t)=>a>1&&"getMergeableContent"in t?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!W(a)||!W(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!W(a)||!W(t),t.setContent]:0)(r,a),T=t=>{(f&&u(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},h=async a=>(2!=E&&(E=1,await R((async()=>{try{T(await t())}catch(t){i?.(t),a&&C(a)}E=0}))),S),A=()=>(d&&(s(d),d=void 0),S),N=async a=>(1!=E&&(E=2,await R((async()=>{try{await e(g,a)}catch(a){i?.(a)}E=0}))),S),b=()=>(y(p,a.delListener),p=void 0,S),R=async(...a)=>(O(Y(ra,c),...a),await(async()=>{if(!Y(ia,c)){for(k(ia,c,1);!l((a=Y(ra,c),w=a.shift()));)try{await w()}catch(a){i?.(a)}k(ia,c,0)}var a})(),S),S={load:h,startAutoLoad:async a=>(await A().load(a),d=n((async(a,t)=>{t||a?2!=E&&(E=1,T(t??a),E=0):await h()})),S),stopAutoLoad:A,isAutoLoading:()=>!l(d),save:N,startAutoSave:async()=>(await b().save(),p=a.addDidFinishTransactionListener((()=>{const a=m();v(a)&&N(a)})),S),stopAutoSave:b,isAutoSaving:()=>!l(p),schedule:R,getStore:()=>a,destroy:()=>A().stopAutoSave(),getStats:()=>({}),...o};return M(S)},ca="store",la=(a,t,e,n,s,[i],r,o,c,l)=>{const[y,w,u,d]=ta(t,r,s,l);return oa(a,(async()=>await d((async()=>(await y(),sa((await w(i,g))[f]?.[ca]??"null"))))),(async a=>await d((async()=>{var t;await y(),await u(i,g,{[f]:{[ca]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?S.fromEntries([...t]):t)))}},!0,!0)}))),e,n,s,1,{[c]:()=>o},o)},ya=(a,t,e,n,s,[i,r,[o,c,y]],w,u,d,p)=>{const[m,v,C,T]=ta(t,w,s,p),h=async(a,t)=>await E($(r,(async([e,n,s,i],r)=>{t&&!F(a,r)||await C(e,n,a[r],s,i,t)}))),O=async(a,t)=>c?await C(y,g,{[f]:a},!0,!0,t):null;return oa(a,(async()=>await T((async()=>{await m();const a=await(async()=>P(A(await E($(i,(async([a,t],e)=>[a,await v(e,t)]))),(a=>!W(a[1])))))(),t=await(async()=>o?(await v(y,g))[f]:{})();return W(a)&&l(t)?void 0:[a,t]}))),(async(a,t)=>await T((async()=>{if(await m(),l(t)){const[t,e]=a();await h(t),await O(e)}else await h(t[0],!0),await O(t[1],!0)}))),e,n,s,1,{[d]:()=>u},u)},wa="json",ua="autoLoadIntervalSeconds",da="rowIdColumnName",pa="tableId",Ea="tableName",fa={mode:wa,[ua]:1},ga={load:0,save:0,[Ea]:e+"_values"},ma=(a,t,e,n)=>{const s=H();return x(a,((a,i)=>{const r=d(j(_(t,w(a)?{[e]:a}:a)),0,B(t));l(r[0])||n(i,r[0])||k(s,i,r)})),s},va="pragma ",Ca="data_version",Ta="schema_version",ha=(a,t,n,s,i,r,o,l,y="getDb",u)=>{let p,E,f;const[m,C,T,h]=(a=>{const t=(a=>_(fa,w(a)?{storeTableName:a}:a??{}))(a),n=t[ua];if(t.mode==wa){const{storeTableName:a=e}=t;return[1,n,[a],J(a)]}const{tables:{load:s={},save:i={}}={},values:r={}}=t,o=d(j(_(ga,r)),0,B(ga)),c=o[2],l=J(c);return[0,n,[ma(s,{[pa]:null,[da]:g},pa,(a=>z(l,a)&&a==c)),ma(i,{[Ea]:null,[da]:g,deleteEmptyColumns:0,deleteEmptyTable:0},Ea,((a,t)=>z(l,t)&&t==c)),o],l]})(t);return(m?la:ya)(a,r?async(a,t)=>(r(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const t=(await n(va+Ca))[0][Ca],e=(await n(va+Ta))[0][Ta],s=(await n(v+" TOTAL_CHANGES() c"))[0].c;t==(p??=t)&&e==(E??=e)&&s==(f??=s)||(a(),p=t,E=e)}catch{}},e=C,t(),setInterval(t,1e3*e)),s((t=>h.has(t)?a():0))];var t,e}),(([a,t])=>{c(a),p=E=null,i(t)}),o,T,b(h),l,y,u)};a.createCrSqliteWasmPersister=(a,t,e,n,s)=>ha(a,e,(async(a,e=[])=>await t.execO(a,e)),(a=>t.onUpdate(((t,e,n)=>a(n)))),(a=>a()),n,s,t)},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterCrSqliteWasm={});
@@ -1 +1 @@
1
- var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",n="",s=",",i=t(n),o=(a,t)=>a.repeat(t),r=Promise,c=clearInterval,l=a=>null==a,y=(a,t,e)=>l(a)?e?.():t(a),w=a=>t(a)==i,u=a=>Array.isArray(a),d=(a,t,e)=>a.slice(t,e),E=a=>a.length,p=async a=>r.all(a),f="_",g="_id",v=a=>`"${a.replace(/"/g,'""')}"`,m="SELECT",h=(a,t="")=>a.join(t),A=(a,t)=>a.map(t),C=a=>0==E(a),T=(a,t)=>a.filter(t),b=(a,...t)=>a.push(...t),N=(a,t)=>a?.has(t)??!1,O=a=>[...a?.values()??[]],L=(a,t)=>a?.delete(t),S=Object,R=a=>S.getPrototypeOf(a),D=S.entries,I=S.keys,M=S.freeze,P=(a=[])=>S.fromEntries(a),_=(...a)=>S.assign({},...a),F=(a,t)=>t in a,j=(a,t)=>A(D(a),(([a,e])=>t(e,a))),x=a=>S.values(a),B=a=>E(I(a)),q=a=>(a=>!l(a)&&y(R(a),(a=>a==S.prototype||l(R(a))),(()=>!0)))(a)&&0==B(a),H=a=>new Map(a),Y=a=>[...a?.keys()??[]],$=(a,t)=>a?.get(t),k=(a,t)=>A([...a?.entries()??[]],(([a,e])=>t(e,a))),G=(a,t,e)=>l(e)?(L(a,t),a):a?.set(t,e),J=(a,t,e,n)=>(N(a,t)?n?.($(a,t)):G(a,t,e()),$(a,t)),U=(a,t,e,n=G)=>(j(t,((t,n)=>e(a,n,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>F(t,e)?0:n(a,e))),a),W=a=>new Set(u(a)||l(a)?a:[a]),z=(a,t)=>a?.add(t),K="TABLE",V="ALTER "+K,Q="DELETE FROM",X=m+"*FROM",Z="FROM pragma_table_",aa="WHERE",ta=(a,t,e,i)=>{const o=H();return[async()=>U(o,P(await p(A(await a("SELECT name "+Z+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+na(t)+")ORDER BY name",t),(async({name:t})=>[t,P(A(await a(m+" name,type "+Z+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>G(o,t,U(J(o,t,H),e,((a,t,e)=>{e!=$(a,t)&&G(a,t,e)}),((a,t)=>G(a,t))))),((a,t)=>G(o,t))),async(t,e)=>((a,t)=>!l($($(o,a),t)))(t,e)?P(T(A(await a(X+v(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!l(a)&&!q(t)))):{},async(t,e,r,c,y,w=!1)=>{const u=W();j(r??{},(a=>A(I(a??{}),(a=>z(u,a)))));const d=O(u);if(!w&&y&&C(d)&&N(o,t))return await a("DROP "+K+v(t)),void G(o,t);if(C(d)||N(o,t)){const s=$(o,t),i=W(Y(s));await p([...A(d,(async e=>{L(i,e)||(await a(V+v(t)+"ADD"+v(e)),G(s,e,n))})),...!w&&c?A(O(i),(async n=>{n!=e&&(await a(V+v(t)+"DROP"+v(n)),G(s,n))})):[]])}else await a("CREATE "+K+v(t)+"("+v(e)+` PRIMARY KEY ON CONFLICT REPLACE${h(A(d,(a=>s+v(a))))});`),G(o,t,H([[e,n],...A(d,(a=>[a,n]))]));if(w)l(r)?await a(Q+v(t)+aa+" 1"):await p(j(r,(async(n,s)=>{l(n)?await a(Q+v(t)+aa+v(e)+"=?",[s]):C(d)||await ea(a,t,e,I(n),[s,...x(n)],i)})));else if(C(d))N(o,t)&&await a(Q+v(t)+aa+" 1");else{const n=T(Y($(o,t)),(a=>a!=e)),s=[],c=[];j(r??{},((a,t)=>{b(s,t,...A(n,(t=>a?.[t]))),b(c,t)})),await ea(a,t,e,n,s,i),await a(Q+v(t)+aa+v(e)+"NOT IN("+na(c)+")",c)}},async t=>{let n;await a("BEGIN");try{n=await t()}catch(a){e?.(a)}return await a("END"),n}]},ea=async(a,t,e,i,r,c=!0)=>await a("INSERT "+(c?n:"OR REPLACE ")+"INTO"+v(t)+"("+v(e)+h(A(i,(a=>s+v(a))))+")VALUES"+d(o(`,(?${o(",?",E(i))})`,E(r)/(E(i)+1)),1)+(c?"ON CONFLICT("+v(e)+")DO UPDATE SET"+h(A(i,(a=>v(a)+"=excluded."+v(a))),s):n),A(r,(a=>a??null))),na=a=>h(A(a,(()=>"?")),s),sa=JSON.parse,ia=H(),oa=H(),ra=(a,t,e,n,s,i,o,r={},c=[])=>{let w,d,E,p=0;J(ia,c,(()=>0)),J(oa,c,(()=>[]));const[f,g,v,m,h]=((a,t)=>!a||l(t.getMergeableContent)?[0,t.getContent,t.getTransactionChanges,([a,t])=>!q(a)||!q(t),t.setContent]:[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!q(a)||!q(t),t.setDefaultContent])(o,a),A=async a=>(2!=p&&(p=1,await T.schedule((async()=>{await a(),p=0}))),T),C=t=>{(f&&u(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},T={load:async a=>await A((async()=>{try{C(await t())}catch(t){i?.(t),a&&h(a)}})),startAutoLoad:async a=>(await T.stopAutoLoad().load(a),d=n((async(a,e)=>{const n=e?.();await A((async()=>{try{C(n??a?.()??await t())}catch(a){i?.(a)}}))})),T),stopAutoLoad:()=>(d&&(s(d),d=void 0),T),isAutoLoading:()=>!l(d),save:async a=>(1!=p&&(p=2,await T.schedule((async()=>{try{await e(g,a)}catch(a){i?.(a)}p=0}))),T),startAutoSave:async()=>(await T.stopAutoSave().save(),E=a.addDidFinishTransactionListener((()=>{const a=v();m(a)&&T.save((()=>a))})),T),stopAutoSave:()=>(y(E,a.delListener),E=void 0,T),isAutoSaving:()=>!l(E),schedule:async(...a)=>(b($(oa,c),...a),await(async()=>{if(!$(ia,c)){for(G(ia,c,1);!l((a=$(oa,c),w=a.shift()));)try{await w()}catch(a){i?.(a)}G(ia,c,0)}var a})(),T),getStore:()=>a,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({}),...r};return M(T)},ca="store",la=(a,t,e,n,s,[i],o,r,c,l)=>{const[y,w,u,d]=ta(t,o,s,l);return ra(a,(async()=>await d((async()=>(await y(),sa((await w(i,g))[f]?.[ca]??"null"))))),(async a=>await d((async()=>{var t;await y(),await u(i,g,{[f]:{[ca]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?S.fromEntries([...t]):t)))}},!0,!0)}))),e,n,s,!1,{[c]:()=>r},r)},ya=(a,t,e,n,s,[i,o,[r,c,y]],w,u,d,E)=>{const[v,m,h,A]=ta(t,w,s,E),C=async(a,t)=>await p(k(o,(async([e,n,s,i],o)=>{t&&!F(a,o)||await h(e,n,a[o],s,i,t)}))),b=async(a,t)=>c?await h(y,g,{[f]:a},!0,!0,t):null;return ra(a,(async()=>await A((async()=>{await v();const a=await(async()=>P(T(await p(k(i,(async([a,t],e)=>[a,await m(e,t)]))),(a=>!q(a[1])))))(),t=await(async()=>r?(await m(y,g))[f]:{})();return q(a)&&l(t)?void 0:[a,t]}))),(async(a,t)=>await A((async()=>{if(await v(),l(t)){const[t,e]=a();await C(t),await b(e)}else{const[a,e]=t();await C(a,!0),await b(e,!0)}}))),e,n,s,!1,{[d]:()=>u},u)},wa="json",ua="autoLoadIntervalSeconds",da="rowIdColumnName",Ea="tableId",pa="tableName",fa={mode:wa,[ua]:1},ga={load:0,save:0,[pa]:e+"_values"},va=(a,t,e,n)=>{const s=H();return j(a,((a,i)=>{const o=d(x(_(t,w(a)?{[e]:a}:a)),0,B(t));l(o[0])||n(i,o[0])||G(s,i,o)})),s},ma="pragma ",ha="data_version",Aa="schema_version",Ca=(a,t,n,s,i,o,r,l,y="getDb",u)=>{let E,p,f;const[v,h,A,C]=(a=>{const t=(a=>_(fa,w(a)?{storeTableName:a}:a??{}))(a),n=t[ua];if(t.mode==wa){const{storeTableName:a=e}=t;return[1,n,[a],W(a)]}const{tables:{load:s={},save:i={}}={},values:o={}}=t,r=d(x(_(ga,o)),0,B(ga)),c=r[2],l=W(c);return[0,n,[va(s,{[Ea]:null,[da]:g},Ea,(a=>z(l,a)&&a==c)),va(i,{[pa]:null,[da]:g,deleteEmptyColumns:0,deleteEmptyTable:0},pa,((a,t)=>z(l,t)&&t==c)),r],l]})(t);return(v?la:ya)(a,o?async(a,t)=>(o(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const t=(await n(ma+ha))[0][ha],e=(await n(ma+Aa))[0][Aa],s=(await n(m+" TOTAL_CHANGES() c"))[0].c;t==(E??=t)&&e==(p??=e)&&s==(f??=s)||(a(),E=t,p=e)}catch{}},e=h,t(),setInterval(t,1e3*e)),s((t=>C.has(t)?a():0))];var t,e}),(([a,t])=>{c(a),E=p=null,i(t)}),r,A,O(C),l,y,u)};a.createElectricSqlPersister=(a,t,e,n,s)=>Ca(a,e,(async(a,e=[])=>await t.db.raw({sql:a,args:e})),(a=>t.notifier.subscribeToDataChanges((e=>{return n=({tablename:t})=>a(t),t.notifier.alias(e).forEach(n);var n}))),(a=>a()),n,s,t,"getElectricClient")},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterElectricSql={});
1
+ var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",n="",s=",",i=t(n),r=(a,t)=>a.repeat(t),o=Promise,c=clearInterval,l=a=>null==a,y=(a,t,e)=>l(a)?e?.():t(a),w=a=>t(a)==i,u=a=>Array.isArray(a),d=(a,t,e)=>a.slice(t,e),E=a=>a.length,f=async a=>o.all(a),p="_",g="_id",m=a=>`"${a.replace(/"/g,'""')}"`,v="SELECT",C=(a,t="")=>a.join(t),T=(a,t)=>a.map(t),h=a=>0==E(a),b=(a,t)=>a.filter(t),A=(a,...t)=>a.push(...t),N=(a,t)=>a?.has(t)??!1,O=a=>[...a?.values()??[]],R=(a,t)=>a?.delete(t),S=Object,L=a=>S.getPrototypeOf(a),D=S.entries,I=S.keys,M=S.freeze,P=(a=[])=>S.fromEntries(a),_=(...a)=>S.assign({},...a),F=(a,t)=>t in a,j=(a,t)=>T(D(a),(([a,e])=>t(e,a))),x=a=>S.values(a),B=a=>E(I(a)),q=a=>(a=>!l(a)&&y(L(a),(a=>a==S.prototype||l(L(a))),(()=>!0)))(a)&&0==B(a),H=a=>new Map(a),Y=a=>[...a?.keys()??[]],$=(a,t)=>a?.get(t),k=(a,t)=>T([...a?.entries()??[]],(([a,e])=>t(e,a))),G=(a,t,e)=>l(e)?(R(a,t),a):a?.set(t,e),J=(a,t,e,n)=>(N(a,t)?n?.($(a,t)):G(a,t,e()),$(a,t)),U=(a,t,e,n=G)=>(j(t,((t,n)=>e(a,n,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>F(t,e)?0:n(a,e))),a),W=a=>new Set(u(a)||l(a)?a:[a]),z=(a,t)=>a?.add(t),K="TABLE",V="ALTER "+K,Q="DELETE FROM",X=v+"*FROM",Z="FROM pragma_table_",aa="WHERE",ta=(a,t,e,i)=>{const r=H();return[async()=>U(r,P(await f(T(await a("SELECT name "+Z+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+na(t)+")ORDER BY name",t),(async({name:t})=>[t,P(T(await a(v+" name,type "+Z+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>G(r,t,U(J(r,t,H),e,((a,t,e)=>{e!=$(a,t)&&G(a,t,e)}),((a,t)=>G(a,t))))),((a,t)=>G(r,t))),async(t,e)=>((a,t)=>!l($($(r,a),t)))(t,e)?P(b(T(await a(X+m(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!l(a)&&!q(t)))):{},async(t,e,o,c,y,w=!1)=>{const u=W();j(o??{},(a=>T(I(a??{}),(a=>z(u,a)))));const d=O(u);if(!w&&y&&h(d)&&N(r,t))return await a("DROP "+K+m(t)),void G(r,t);if(h(d)||N(r,t)){const s=$(r,t),i=W(Y(s));await f([...T(d,(async e=>{R(i,e)||(await a(V+m(t)+"ADD"+m(e)),G(s,e,n))})),...!w&&c?T(O(i),(async n=>{n!=e&&(await a(V+m(t)+"DROP"+m(n)),G(s,n))})):[]])}else await a("CREATE "+K+m(t)+"("+m(e)+` PRIMARY KEY ON CONFLICT REPLACE${C(T(d,(a=>s+m(a))))});`),G(r,t,H([[e,n],...T(d,(a=>[a,n]))]));if(w)l(o)?await a(Q+m(t)+aa+" 1"):await f(j(o,(async(n,s)=>{l(n)?await a(Q+m(t)+aa+m(e)+"=?",[s]):h(d)||await ea(a,t,e,I(n),[s,...x(n)],i)})));else if(h(d))N(r,t)&&await a(Q+m(t)+aa+" 1");else{const n=b(Y($(r,t)),(a=>a!=e)),s=[],c=[];j(o??{},((a,t)=>{A(s,t,...T(n,(t=>a?.[t]))),A(c,t)})),await ea(a,t,e,n,s,i),await a(Q+m(t)+aa+m(e)+"NOT IN("+na(c)+")",c)}},async t=>{let n;await a("BEGIN");try{n=await t()}catch(a){e?.(a)}return await a("END"),n}]},ea=async(a,t,e,i,o,c=!0)=>await a("INSERT "+(c?n:"OR REPLACE ")+"INTO"+m(t)+"("+m(e)+C(T(i,(a=>s+m(a))))+")VALUES"+d(r(`,(?${r(",?",E(i))})`,E(o)/(E(i)+1)),1)+(c?"ON CONFLICT("+m(e)+")DO UPDATE SET"+C(T(i,(a=>m(a)+"=excluded."+m(a))),s):n),T(o,(a=>a??null))),na=a=>C(T(a,(()=>"?")),s),sa=JSON.parse,ia=H(),ra=H(),oa=(a,t,e,n,s,i,r,o={},c=[])=>{let w,d,E,f=0;J(ia,c,(()=>0)),J(ra,c,(()=>[]));const[p,g,m,v,C]=((a=1,t)=>a>1&&"getMergeableContent"in t?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!q(a)||!q(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!q(a)||!q(t),t.setContent]:0)(r,a),T=t=>{(p&&u(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},h=async a=>(2!=f&&(f=1,await R((async()=>{try{T(await t())}catch(t){i?.(t),a&&C(a)}f=0}))),S),b=()=>(d&&(s(d),d=void 0),S),N=async a=>(1!=f&&(f=2,await R((async()=>{try{await e(g,a)}catch(a){i?.(a)}f=0}))),S),O=()=>(y(E,a.delListener),E=void 0,S),R=async(...a)=>(A($(ra,c),...a),await(async()=>{if(!$(ia,c)){for(G(ia,c,1);!l((a=$(ra,c),w=a.shift()));)try{await w()}catch(a){i?.(a)}G(ia,c,0)}var a})(),S),S={load:h,startAutoLoad:async a=>(await b().load(a),d=n((async(a,t)=>{t||a?2!=f&&(f=1,T(t??a),f=0):await h()})),S),stopAutoLoad:b,isAutoLoading:()=>!l(d),save:N,startAutoSave:async()=>(await O().save(),E=a.addDidFinishTransactionListener((()=>{const a=m();v(a)&&N(a)})),S),stopAutoSave:O,isAutoSaving:()=>!l(E),schedule:R,getStore:()=>a,destroy:()=>b().stopAutoSave(),getStats:()=>({}),...o};return M(S)},ca="store",la=(a,t,e,n,s,[i],r,o,c,l)=>{const[y,w,u,d]=ta(t,r,s,l);return oa(a,(async()=>await d((async()=>(await y(),sa((await w(i,g))[p]?.[ca]??"null"))))),(async a=>await d((async()=>{var t;await y(),await u(i,g,{[p]:{[ca]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?S.fromEntries([...t]):t)))}},!0,!0)}))),e,n,s,1,{[c]:()=>o},o)},ya=(a,t,e,n,s,[i,r,[o,c,y]],w,u,d,E)=>{const[m,v,C,T]=ta(t,w,s,E),h=async(a,t)=>await f(k(r,(async([e,n,s,i],r)=>{t&&!F(a,r)||await C(e,n,a[r],s,i,t)}))),A=async(a,t)=>c?await C(y,g,{[p]:a},!0,!0,t):null;return oa(a,(async()=>await T((async()=>{await m();const a=await(async()=>P(b(await f(k(i,(async([a,t],e)=>[a,await v(e,t)]))),(a=>!q(a[1])))))(),t=await(async()=>o?(await v(y,g))[p]:{})();return q(a)&&l(t)?void 0:[a,t]}))),(async(a,t)=>await T((async()=>{if(await m(),l(t)){const[t,e]=a();await h(t),await A(e)}else await h(t[0],!0),await A(t[1],!0)}))),e,n,s,1,{[d]:()=>u},u)},wa="json",ua="autoLoadIntervalSeconds",da="rowIdColumnName",Ea="tableId",fa="tableName",pa={mode:wa,[ua]:1},ga={load:0,save:0,[fa]:e+"_values"},ma=(a,t,e,n)=>{const s=H();return j(a,((a,i)=>{const r=d(x(_(t,w(a)?{[e]:a}:a)),0,B(t));l(r[0])||n(i,r[0])||G(s,i,r)})),s},va="pragma ",Ca="data_version",Ta="schema_version",ha=(a,t,n,s,i,r,o,l,y="getDb",u)=>{let E,f,p;const[m,C,T,h]=(a=>{const t=(a=>_(pa,w(a)?{storeTableName:a}:a??{}))(a),n=t[ua];if(t.mode==wa){const{storeTableName:a=e}=t;return[1,n,[a],W(a)]}const{tables:{load:s={},save:i={}}={},values:r={}}=t,o=d(x(_(ga,r)),0,B(ga)),c=o[2],l=W(c);return[0,n,[ma(s,{[Ea]:null,[da]:g},Ea,(a=>z(l,a)&&a==c)),ma(i,{[fa]:null,[da]:g,deleteEmptyColumns:0,deleteEmptyTable:0},fa,((a,t)=>z(l,t)&&t==c)),o],l]})(t);return(m?la:ya)(a,r?async(a,t)=>(r(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const t=(await n(va+Ca))[0][Ca],e=(await n(va+Ta))[0][Ta],s=(await n(v+" TOTAL_CHANGES() c"))[0].c;t==(E??=t)&&e==(f??=e)&&s==(p??=s)||(a(),E=t,f=e)}catch{}},e=C,t(),setInterval(t,1e3*e)),s((t=>h.has(t)?a():0))];var t,e}),(([a,t])=>{c(a),E=f=null,i(t)}),o,T,O(h),l,y,u)};a.createElectricSqlPersister=(a,t,e,n,s)=>ha(a,e,(async(a,e=[])=>await t.db.raw({sql:a,args:e})),(a=>t.notifier.subscribeToDataChanges((e=>{return n=({tablename:t})=>a(t),t.notifier.alias(e).forEach(n);var n}))),(a=>a()),n,s,t,"getElectricClient")},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterElectricSql={});