tinybase 5.0.0-beta.0 → 5.0.0-beta.10

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 (493) hide show
  1. package/bin/cli.js +1 -1
  2. package/lib/checkpoints.js +1 -1
  3. package/lib/checkpoints.js.gz +0 -0
  4. package/lib/cjs/checkpoints.cjs +1 -1
  5. package/lib/cjs/checkpoints.cjs.gz +0 -0
  6. package/lib/cjs/indexes.cjs +1 -1
  7. package/lib/cjs/indexes.cjs.gz +0 -0
  8. package/lib/cjs/mergeable-store.cjs +1 -0
  9. package/lib/cjs/mergeable-store.cjs.gz +0 -0
  10. package/lib/cjs/metrics.cjs +1 -1
  11. package/lib/cjs/metrics.cjs.gz +0 -0
  12. package/lib/cjs/persisters/persister-automerge.cjs +1 -1
  13. package/lib/cjs/persisters/persister-automerge.cjs.gz +0 -0
  14. package/lib/cjs/persisters/persister-browser.cjs +1 -1
  15. package/lib/cjs/persisters/persister-browser.cjs.gz +0 -0
  16. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  17. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  18. package/lib/cjs/persisters/persister-electric-sql.cjs +1 -1
  19. package/lib/cjs/persisters/persister-electric-sql.cjs.gz +0 -0
  20. package/lib/cjs/persisters/persister-expo-sqlite-next.cjs +1 -1
  21. package/lib/cjs/persisters/persister-expo-sqlite-next.cjs.gz +0 -0
  22. package/lib/cjs/persisters/persister-expo-sqlite.cjs +1 -1
  23. package/lib/cjs/persisters/persister-expo-sqlite.cjs.gz +0 -0
  24. package/lib/cjs/persisters/persister-file.cjs +1 -1
  25. package/lib/cjs/persisters/persister-file.cjs.gz +0 -0
  26. package/lib/cjs/persisters/persister-indexed-db.cjs +1 -1
  27. package/lib/cjs/persisters/persister-indexed-db.cjs.gz +0 -0
  28. package/lib/cjs/persisters/persister-libsql.cjs +1 -0
  29. package/lib/cjs/persisters/persister-libsql.cjs.gz +0 -0
  30. package/lib/cjs/persisters/persister-partykit-client.cjs +1 -1
  31. package/lib/cjs/persisters/persister-partykit-client.cjs.gz +0 -0
  32. package/lib/cjs/persisters/persister-partykit-server.cjs +1 -1
  33. package/lib/cjs/persisters/persister-partykit-server.cjs.gz +0 -0
  34. package/lib/cjs/persisters/persister-powersync.cjs +1 -0
  35. package/lib/cjs/persisters/persister-powersync.cjs.gz +0 -0
  36. package/lib/cjs/persisters/persister-remote.cjs +1 -1
  37. package/lib/cjs/persisters/persister-remote.cjs.gz +0 -0
  38. package/lib/cjs/persisters/persister-sqlite-wasm.cjs +1 -1
  39. package/lib/cjs/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  40. package/lib/cjs/persisters/persister-sqlite3.cjs +1 -1
  41. package/lib/cjs/persisters/persister-sqlite3.cjs.gz +0 -0
  42. package/lib/cjs/persisters/persister-yjs.cjs +1 -1
  43. package/lib/cjs/persisters/persister-yjs.cjs.gz +0 -0
  44. package/lib/cjs/persisters.cjs +1 -1
  45. package/lib/cjs/persisters.cjs.gz +0 -0
  46. package/lib/cjs/queries.cjs +1 -1
  47. package/lib/cjs/queries.cjs.gz +0 -0
  48. package/lib/cjs/relationships.cjs +1 -1
  49. package/lib/cjs/relationships.cjs.gz +0 -0
  50. package/lib/cjs/store.cjs +1 -1
  51. package/lib/cjs/store.cjs.gz +0 -0
  52. package/lib/cjs/synchronizers/synchronizer-local.cjs +1 -0
  53. package/lib/cjs/synchronizers/synchronizer-local.cjs.gz +0 -0
  54. package/lib/cjs/synchronizers/synchronizer-ws-client.cjs +1 -0
  55. package/lib/cjs/synchronizers/synchronizer-ws-client.cjs.gz +0 -0
  56. package/lib/cjs/synchronizers/synchronizer-ws-server.cjs +1 -0
  57. package/lib/cjs/synchronizers/synchronizer-ws-server.cjs.gz +0 -0
  58. package/lib/cjs/synchronizers.cjs +1 -0
  59. package/lib/cjs/synchronizers.cjs.gz +0 -0
  60. package/lib/cjs/tinybase.cjs +1 -1
  61. package/lib/cjs/tinybase.cjs.gz +0 -0
  62. package/lib/cjs/tools.cjs +1 -1
  63. package/lib/cjs/tools.cjs.gz +0 -0
  64. package/lib/cjs/ui-react-dom-debug.cjs +1 -1
  65. package/lib/cjs/ui-react-dom-debug.cjs.gz +0 -0
  66. package/lib/cjs/ui-react-dom.cjs +1 -1
  67. package/lib/cjs/ui-react-dom.cjs.gz +0 -0
  68. package/lib/cjs/ui-react.cjs +1 -1
  69. package/lib/cjs/ui-react.cjs.gz +0 -0
  70. package/lib/cjs-es6/checkpoints.cjs +1 -1
  71. package/lib/cjs-es6/checkpoints.cjs.gz +0 -0
  72. package/lib/cjs-es6/indexes.cjs +1 -1
  73. package/lib/cjs-es6/indexes.cjs.gz +0 -0
  74. package/lib/cjs-es6/mergeable-store.cjs +1 -0
  75. package/lib/cjs-es6/mergeable-store.cjs.gz +0 -0
  76. package/lib/cjs-es6/metrics.cjs +1 -1
  77. package/lib/cjs-es6/metrics.cjs.gz +0 -0
  78. package/lib/cjs-es6/persisters/persister-automerge.cjs +1 -1
  79. package/lib/cjs-es6/persisters/persister-automerge.cjs.gz +0 -0
  80. package/lib/cjs-es6/persisters/persister-browser.cjs +1 -1
  81. package/lib/cjs-es6/persisters/persister-browser.cjs.gz +0 -0
  82. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  83. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  84. package/lib/cjs-es6/persisters/persister-electric-sql.cjs +1 -1
  85. package/lib/cjs-es6/persisters/persister-electric-sql.cjs.gz +0 -0
  86. package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs +1 -1
  87. package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs.gz +0 -0
  88. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs +1 -1
  89. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs.gz +0 -0
  90. package/lib/cjs-es6/persisters/persister-file.cjs +1 -1
  91. package/lib/cjs-es6/persisters/persister-file.cjs.gz +0 -0
  92. package/lib/cjs-es6/persisters/persister-indexed-db.cjs +1 -1
  93. package/lib/cjs-es6/persisters/persister-indexed-db.cjs.gz +0 -0
  94. package/lib/cjs-es6/persisters/persister-libsql.cjs +1 -0
  95. package/lib/cjs-es6/persisters/persister-libsql.cjs.gz +0 -0
  96. package/lib/cjs-es6/persisters/persister-partykit-client.cjs +1 -1
  97. package/lib/cjs-es6/persisters/persister-partykit-client.cjs.gz +0 -0
  98. package/lib/cjs-es6/persisters/persister-partykit-server.cjs +1 -1
  99. package/lib/cjs-es6/persisters/persister-partykit-server.cjs.gz +0 -0
  100. package/lib/cjs-es6/persisters/persister-powersync.cjs +1 -0
  101. package/lib/cjs-es6/persisters/persister-powersync.cjs.gz +0 -0
  102. package/lib/cjs-es6/persisters/persister-remote.cjs +1 -1
  103. package/lib/cjs-es6/persisters/persister-remote.cjs.gz +0 -0
  104. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs +1 -1
  105. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  106. package/lib/cjs-es6/persisters/persister-sqlite3.cjs +1 -1
  107. package/lib/cjs-es6/persisters/persister-sqlite3.cjs.gz +0 -0
  108. package/lib/cjs-es6/persisters/persister-yjs.cjs +1 -1
  109. package/lib/cjs-es6/persisters/persister-yjs.cjs.gz +0 -0
  110. package/lib/cjs-es6/persisters.cjs +1 -1
  111. package/lib/cjs-es6/persisters.cjs.gz +0 -0
  112. package/lib/cjs-es6/queries.cjs +1 -1
  113. package/lib/cjs-es6/queries.cjs.gz +0 -0
  114. package/lib/cjs-es6/relationships.cjs +1 -1
  115. package/lib/cjs-es6/relationships.cjs.gz +0 -0
  116. package/lib/cjs-es6/store.cjs +1 -1
  117. package/lib/cjs-es6/store.cjs.gz +0 -0
  118. package/lib/cjs-es6/synchronizers/synchronizer-local.cjs +1 -0
  119. package/lib/cjs-es6/synchronizers/synchronizer-local.cjs.gz +0 -0
  120. package/lib/cjs-es6/synchronizers/synchronizer-ws-client.cjs +1 -0
  121. package/lib/cjs-es6/synchronizers/synchronizer-ws-client.cjs.gz +0 -0
  122. package/lib/cjs-es6/synchronizers/synchronizer-ws-server.cjs +1 -0
  123. package/lib/cjs-es6/synchronizers/synchronizer-ws-server.cjs.gz +0 -0
  124. package/lib/cjs-es6/synchronizers.cjs +1 -0
  125. package/lib/cjs-es6/synchronizers.cjs.gz +0 -0
  126. package/lib/cjs-es6/tinybase.cjs +1 -1
  127. package/lib/cjs-es6/tinybase.cjs.gz +0 -0
  128. package/lib/cjs-es6/tools.cjs +1 -1
  129. package/lib/cjs-es6/tools.cjs.gz +0 -0
  130. package/lib/cjs-es6/ui-react-dom-debug.cjs +1 -1
  131. package/lib/cjs-es6/ui-react-dom-debug.cjs.gz +0 -0
  132. package/lib/cjs-es6/ui-react-dom.cjs +1 -1
  133. package/lib/cjs-es6/ui-react-dom.cjs.gz +0 -0
  134. package/lib/cjs-es6/ui-react.cjs +1 -1
  135. package/lib/cjs-es6/ui-react.cjs.gz +0 -0
  136. package/lib/debug/checkpoints.js +254 -235
  137. package/lib/debug/indexes.js +10 -6
  138. package/lib/debug/mergeable-store.js +2230 -0
  139. package/lib/debug/metrics.js +10 -6
  140. package/lib/debug/persisters/persister-automerge.js +113 -87
  141. package/lib/debug/persisters/persister-browser.js +95 -57
  142. package/lib/debug/persisters/persister-cr-sqlite-wasm.js +175 -109
  143. package/lib/debug/persisters/persister-electric-sql.js +176 -109
  144. package/lib/debug/persisters/persister-expo-sqlite-next.js +176 -110
  145. package/lib/debug/persisters/persister-expo-sqlite.js +175 -109
  146. package/lib/debug/persisters/persister-file.js +94 -57
  147. package/lib/debug/persisters/persister-indexed-db.js +94 -57
  148. package/lib/debug/persisters/persister-libsql.js +913 -0
  149. package/lib/debug/persisters/persister-partykit-client.js +90 -59
  150. package/lib/debug/persisters/persister-partykit-server.js +19 -26
  151. package/lib/debug/persisters/persister-powersync.js +928 -0
  152. package/lib/debug/persisters/persister-remote.js +86 -53
  153. package/lib/debug/persisters/persister-sqlite-wasm.js +175 -109
  154. package/lib/debug/persisters/persister-sqlite3.js +175 -109
  155. package/lib/debug/persisters/persister-yjs.js +111 -84
  156. package/lib/debug/persisters.js +82 -50
  157. package/lib/debug/queries.js +18 -12
  158. package/lib/debug/relationships.js +10 -6
  159. package/lib/debug/store.js +150 -127
  160. package/lib/debug/synchronizers/synchronizer-local.js +559 -0
  161. package/lib/debug/synchronizers/synchronizer-ws-client.js +586 -0
  162. package/lib/debug/synchronizers/synchronizer-ws-server.js +96 -0
  163. package/lib/debug/synchronizers.js +519 -0
  164. package/lib/debug/tinybase.js +1281 -409
  165. package/lib/debug/tools.js +41 -64
  166. package/lib/debug/ui-react-dom.js +277 -213
  167. package/lib/debug/ui-react.js +213 -198
  168. package/lib/es6/checkpoints.js +1 -1
  169. package/lib/es6/checkpoints.js.gz +0 -0
  170. package/lib/es6/indexes.js +1 -1
  171. package/lib/es6/indexes.js.gz +0 -0
  172. package/lib/es6/mergeable-store.js +1 -0
  173. package/lib/es6/mergeable-store.js.gz +0 -0
  174. package/lib/es6/metrics.js +1 -1
  175. package/lib/es6/metrics.js.gz +0 -0
  176. package/lib/es6/persisters/persister-automerge.js +1 -1
  177. package/lib/es6/persisters/persister-automerge.js.gz +0 -0
  178. package/lib/es6/persisters/persister-browser.js +1 -1
  179. package/lib/es6/persisters/persister-browser.js.gz +0 -0
  180. package/lib/es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  181. package/lib/es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  182. package/lib/es6/persisters/persister-electric-sql.js +1 -1
  183. package/lib/es6/persisters/persister-electric-sql.js.gz +0 -0
  184. package/lib/es6/persisters/persister-expo-sqlite-next.js +1 -1
  185. package/lib/es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
  186. package/lib/es6/persisters/persister-expo-sqlite.js +1 -1
  187. package/lib/es6/persisters/persister-expo-sqlite.js.gz +0 -0
  188. package/lib/es6/persisters/persister-file.js +1 -1
  189. package/lib/es6/persisters/persister-file.js.gz +0 -0
  190. package/lib/es6/persisters/persister-indexed-db.js +1 -1
  191. package/lib/es6/persisters/persister-indexed-db.js.gz +0 -0
  192. package/lib/es6/persisters/persister-libsql.js +1 -0
  193. package/lib/es6/persisters/persister-libsql.js.gz +0 -0
  194. package/lib/es6/persisters/persister-partykit-client.js +1 -1
  195. package/lib/es6/persisters/persister-partykit-client.js.gz +0 -0
  196. package/lib/es6/persisters/persister-partykit-server.js +1 -1
  197. package/lib/es6/persisters/persister-partykit-server.js.gz +0 -0
  198. package/lib/es6/persisters/persister-powersync.js +1 -0
  199. package/lib/es6/persisters/persister-powersync.js.gz +0 -0
  200. package/lib/es6/persisters/persister-remote.js +1 -1
  201. package/lib/es6/persisters/persister-remote.js.gz +0 -0
  202. package/lib/es6/persisters/persister-sqlite-wasm.js +1 -1
  203. package/lib/es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  204. package/lib/es6/persisters/persister-sqlite3.js +1 -1
  205. package/lib/es6/persisters/persister-sqlite3.js.gz +0 -0
  206. package/lib/es6/persisters/persister-yjs.js +1 -1
  207. package/lib/es6/persisters/persister-yjs.js.gz +0 -0
  208. package/lib/es6/persisters.js +1 -1
  209. package/lib/es6/persisters.js.gz +0 -0
  210. package/lib/es6/queries.js +1 -1
  211. package/lib/es6/queries.js.gz +0 -0
  212. package/lib/es6/relationships.js +1 -1
  213. package/lib/es6/relationships.js.gz +0 -0
  214. package/lib/es6/store.js +1 -1
  215. package/lib/es6/store.js.gz +0 -0
  216. package/lib/es6/synchronizers/synchronizer-local.js +1 -0
  217. package/lib/es6/synchronizers/synchronizer-local.js.gz +0 -0
  218. package/lib/es6/synchronizers/synchronizer-ws-client.js +1 -0
  219. package/lib/es6/synchronizers/synchronizer-ws-client.js.gz +0 -0
  220. package/lib/es6/synchronizers/synchronizer-ws-server.js +1 -0
  221. package/lib/es6/synchronizers/synchronizer-ws-server.js.gz +0 -0
  222. package/lib/es6/synchronizers.js +1 -0
  223. package/lib/es6/synchronizers.js.gz +0 -0
  224. package/lib/es6/tinybase.js +1 -1
  225. package/lib/es6/tinybase.js.gz +0 -0
  226. package/lib/es6/tools.js +1 -1
  227. package/lib/es6/tools.js.gz +0 -0
  228. package/lib/es6/ui-react-dom-debug.js +1 -1
  229. package/lib/es6/ui-react-dom-debug.js.gz +0 -0
  230. package/lib/es6/ui-react-dom.js +1 -1
  231. package/lib/es6/ui-react-dom.js.gz +0 -0
  232. package/lib/es6/ui-react.js +1 -1
  233. package/lib/es6/ui-react.js.gz +0 -0
  234. package/lib/indexes.js +1 -1
  235. package/lib/indexes.js.gz +0 -0
  236. package/lib/mergeable-store.js +1 -0
  237. package/lib/mergeable-store.js.gz +0 -0
  238. package/lib/metrics.js +1 -1
  239. package/lib/metrics.js.gz +0 -0
  240. package/lib/persisters/persister-automerge.js +1 -1
  241. package/lib/persisters/persister-automerge.js.gz +0 -0
  242. package/lib/persisters/persister-browser.js +1 -1
  243. package/lib/persisters/persister-browser.js.gz +0 -0
  244. package/lib/persisters/persister-cr-sqlite-wasm.js +1 -1
  245. package/lib/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  246. package/lib/persisters/persister-electric-sql.js +1 -1
  247. package/lib/persisters/persister-electric-sql.js.gz +0 -0
  248. package/lib/persisters/persister-expo-sqlite-next.js +1 -1
  249. package/lib/persisters/persister-expo-sqlite-next.js.gz +0 -0
  250. package/lib/persisters/persister-expo-sqlite.js +1 -1
  251. package/lib/persisters/persister-expo-sqlite.js.gz +0 -0
  252. package/lib/persisters/persister-file.js +1 -1
  253. package/lib/persisters/persister-file.js.gz +0 -0
  254. package/lib/persisters/persister-indexed-db.js +1 -1
  255. package/lib/persisters/persister-indexed-db.js.gz +0 -0
  256. package/lib/persisters/persister-libsql.js +1 -0
  257. package/lib/persisters/persister-libsql.js.gz +0 -0
  258. package/lib/persisters/persister-partykit-client.js +1 -1
  259. package/lib/persisters/persister-partykit-client.js.gz +0 -0
  260. package/lib/persisters/persister-partykit-server.js +1 -1
  261. package/lib/persisters/persister-partykit-server.js.gz +0 -0
  262. package/lib/persisters/persister-powersync.js +1 -0
  263. package/lib/persisters/persister-powersync.js.gz +0 -0
  264. package/lib/persisters/persister-remote.js +1 -1
  265. package/lib/persisters/persister-remote.js.gz +0 -0
  266. package/lib/persisters/persister-sqlite-wasm.js +1 -1
  267. package/lib/persisters/persister-sqlite-wasm.js.gz +0 -0
  268. package/lib/persisters/persister-sqlite3.js +1 -1
  269. package/lib/persisters/persister-sqlite3.js.gz +0 -0
  270. package/lib/persisters/persister-yjs.js +1 -1
  271. package/lib/persisters/persister-yjs.js.gz +0 -0
  272. package/lib/persisters.js +1 -1
  273. package/lib/persisters.js.gz +0 -0
  274. package/lib/queries.js +1 -1
  275. package/lib/queries.js.gz +0 -0
  276. package/lib/relationships.js +1 -1
  277. package/lib/relationships.js.gz +0 -0
  278. package/lib/store.js +1 -1
  279. package/lib/store.js.gz +0 -0
  280. package/lib/synchronizers/synchronizer-local.js +1 -0
  281. package/lib/synchronizers/synchronizer-local.js.gz +0 -0
  282. package/lib/synchronizers/synchronizer-ws-client.js +1 -0
  283. package/lib/synchronizers/synchronizer-ws-client.js.gz +0 -0
  284. package/lib/synchronizers/synchronizer-ws-server.js +1 -0
  285. package/lib/synchronizers/synchronizer-ws-server.js.gz +0 -0
  286. package/lib/synchronizers.js +1 -0
  287. package/lib/synchronizers.js.gz +0 -0
  288. package/lib/tinybase.js +1 -1
  289. package/lib/tinybase.js.gz +0 -0
  290. package/lib/tools.js +1 -1
  291. package/lib/tools.js.gz +0 -0
  292. package/lib/types/checkpoints.d.ts +2 -2
  293. package/lib/types/indexes.d.ts +2 -2
  294. package/lib/types/mergeable-store.d.ts +214 -0
  295. package/lib/types/metrics.d.ts +2 -2
  296. package/lib/types/persisters/persister-automerge.d.ts +11 -7
  297. package/lib/types/persisters/persister-browser.d.ts +13 -4
  298. package/lib/types/persisters/persister-cr-sqlite-wasm.d.ts +4 -0
  299. package/lib/types/persisters/persister-electric-sql.d.ts +4 -0
  300. package/lib/types/persisters/persister-expo-sqlite-next.d.ts +7 -3
  301. package/lib/types/persisters/persister-expo-sqlite.d.ts +4 -0
  302. package/lib/types/persisters/persister-file.d.ts +7 -2
  303. package/lib/types/persisters/persister-indexed-db.d.ts +4 -0
  304. package/lib/types/persisters/persister-libsql.d.ts +142 -0
  305. package/lib/types/persisters/persister-partykit-client.d.ts +4 -0
  306. package/lib/types/persisters/persister-partykit-server.d.ts +12 -8
  307. package/lib/types/persisters/persister-powersync.d.ts +157 -0
  308. package/lib/types/persisters/persister-remote.d.ts +4 -0
  309. package/lib/types/persisters/persister-sqlite-wasm.d.ts +4 -0
  310. package/lib/types/persisters/persister-sqlite3.d.ts +4 -0
  311. package/lib/types/persisters/persister-yjs.d.ts +6 -2
  312. package/lib/types/persisters.d.ts +125 -48
  313. package/lib/types/queries.d.ts +2 -2
  314. package/lib/types/relationships.d.ts +2 -2
  315. package/lib/types/store.d.ts +275 -187
  316. package/lib/types/synchronizers/synchronizer-local.d.ts +27 -0
  317. package/lib/types/synchronizers/synchronizer-ws-client.d.ts +35 -0
  318. package/lib/types/synchronizers/synchronizer-ws-server.d.ts +36 -0
  319. package/lib/types/synchronizers.d.ts +132 -0
  320. package/lib/types/tinybase.d.ts +10 -8
  321. package/lib/types/tools.d.ts +4 -4
  322. package/lib/types/ui-react.d.ts +235 -95
  323. package/lib/types/with-schemas/checkpoints.d.ts +2 -2
  324. package/lib/types/with-schemas/indexes.d.ts +2 -2
  325. package/lib/types/with-schemas/internal/queries.d.ts +4 -3
  326. package/lib/types/with-schemas/internal/store.d.ts +8 -3
  327. package/lib/types/with-schemas/mergeable-store.d.ts +492 -0
  328. package/lib/types/with-schemas/metrics.d.ts +2 -2
  329. package/lib/types/with-schemas/persisters/persister-automerge.d.ts +12 -8
  330. package/lib/types/with-schemas/persisters/persister-browser.d.ts +17 -8
  331. package/lib/types/with-schemas/persisters/persister-cr-sqlite-wasm.d.ts +5 -1
  332. package/lib/types/with-schemas/persisters/persister-electric-sql.d.ts +5 -1
  333. package/lib/types/with-schemas/persisters/persister-expo-sqlite-next.d.ts +8 -4
  334. package/lib/types/with-schemas/persisters/persister-expo-sqlite.d.ts +5 -1
  335. package/lib/types/with-schemas/persisters/persister-file.d.ts +9 -4
  336. package/lib/types/with-schemas/persisters/persister-indexed-db.d.ts +5 -1
  337. package/lib/types/with-schemas/persisters/persister-libsql.d.ts +155 -0
  338. package/lib/types/with-schemas/persisters/persister-partykit-client.d.ts +5 -1
  339. package/lib/types/with-schemas/persisters/persister-partykit-server.d.ts +15 -11
  340. package/lib/types/with-schemas/persisters/persister-powersync.d.ts +170 -0
  341. package/lib/types/with-schemas/persisters/persister-remote.d.ts +5 -1
  342. package/lib/types/with-schemas/persisters/persister-sqlite-wasm.d.ts +5 -1
  343. package/lib/types/with-schemas/persisters/persister-sqlite3.d.ts +5 -1
  344. package/lib/types/with-schemas/persisters/persister-yjs.d.ts +7 -3
  345. package/lib/types/with-schemas/persisters.d.ts +161 -101
  346. package/lib/types/with-schemas/queries.d.ts +3 -3
  347. package/lib/types/with-schemas/relationships.d.ts +2 -2
  348. package/lib/types/with-schemas/store.d.ts +483 -345
  349. package/lib/types/with-schemas/synchronizers/synchronizer-local.d.ts +29 -0
  350. package/lib/types/with-schemas/synchronizers/synchronizer-ws-client.d.ts +41 -0
  351. package/lib/types/with-schemas/synchronizers/synchronizer-ws-server.d.ts +36 -0
  352. package/lib/types/with-schemas/synchronizers.d.ts +146 -0
  353. package/lib/types/with-schemas/tinybase.d.ts +9 -8
  354. package/lib/types/with-schemas/tools.d.ts +4 -4
  355. package/lib/types/with-schemas/ui-react.d.ts +259 -102
  356. package/lib/ui-react-dom.js +1 -1
  357. package/lib/ui-react-dom.js.gz +0 -0
  358. package/lib/ui-react.js +1 -1
  359. package/lib/ui-react.js.gz +0 -0
  360. package/lib/umd/checkpoints.js +1 -1
  361. package/lib/umd/checkpoints.js.gz +0 -0
  362. package/lib/umd/indexes.js +1 -1
  363. package/lib/umd/indexes.js.gz +0 -0
  364. package/lib/umd/mergeable-store.js +1 -0
  365. package/lib/umd/mergeable-store.js.gz +0 -0
  366. package/lib/umd/metrics.js +1 -1
  367. package/lib/umd/metrics.js.gz +0 -0
  368. package/lib/umd/persisters/persister-automerge.js +1 -1
  369. package/lib/umd/persisters/persister-automerge.js.gz +0 -0
  370. package/lib/umd/persisters/persister-browser.js +1 -1
  371. package/lib/umd/persisters/persister-browser.js.gz +0 -0
  372. package/lib/umd/persisters/persister-cr-sqlite-wasm.js +1 -1
  373. package/lib/umd/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  374. package/lib/umd/persisters/persister-electric-sql.js +1 -1
  375. package/lib/umd/persisters/persister-electric-sql.js.gz +0 -0
  376. package/lib/umd/persisters/persister-expo-sqlite-next.js +1 -1
  377. package/lib/umd/persisters/persister-expo-sqlite-next.js.gz +0 -0
  378. package/lib/umd/persisters/persister-expo-sqlite.js +1 -1
  379. package/lib/umd/persisters/persister-expo-sqlite.js.gz +0 -0
  380. package/lib/umd/persisters/persister-file.js +1 -1
  381. package/lib/umd/persisters/persister-file.js.gz +0 -0
  382. package/lib/umd/persisters/persister-indexed-db.js +1 -1
  383. package/lib/umd/persisters/persister-indexed-db.js.gz +0 -0
  384. package/lib/umd/persisters/persister-libsql.js +1 -0
  385. package/lib/umd/persisters/persister-libsql.js.gz +0 -0
  386. package/lib/umd/persisters/persister-partykit-client.js +1 -1
  387. package/lib/umd/persisters/persister-partykit-client.js.gz +0 -0
  388. package/lib/umd/persisters/persister-partykit-server.js +1 -1
  389. package/lib/umd/persisters/persister-partykit-server.js.gz +0 -0
  390. package/lib/umd/persisters/persister-powersync.js +1 -0
  391. package/lib/umd/persisters/persister-powersync.js.gz +0 -0
  392. package/lib/umd/persisters/persister-remote.js +1 -1
  393. package/lib/umd/persisters/persister-remote.js.gz +0 -0
  394. package/lib/umd/persisters/persister-sqlite-wasm.js +1 -1
  395. package/lib/umd/persisters/persister-sqlite-wasm.js.gz +0 -0
  396. package/lib/umd/persisters/persister-sqlite3.js +1 -1
  397. package/lib/umd/persisters/persister-sqlite3.js.gz +0 -0
  398. package/lib/umd/persisters/persister-yjs.js +1 -1
  399. package/lib/umd/persisters/persister-yjs.js.gz +0 -0
  400. package/lib/umd/persisters.js +1 -1
  401. package/lib/umd/persisters.js.gz +0 -0
  402. package/lib/umd/queries.js +1 -1
  403. package/lib/umd/queries.js.gz +0 -0
  404. package/lib/umd/relationships.js +1 -1
  405. package/lib/umd/relationships.js.gz +0 -0
  406. package/lib/umd/store.js +1 -1
  407. package/lib/umd/store.js.gz +0 -0
  408. package/lib/umd/synchronizers/synchronizer-local.js +1 -0
  409. package/lib/umd/synchronizers/synchronizer-local.js.gz +0 -0
  410. package/lib/umd/synchronizers/synchronizer-ws-client.js +1 -0
  411. package/lib/umd/synchronizers/synchronizer-ws-client.js.gz +0 -0
  412. package/lib/umd/synchronizers/synchronizer-ws-server.js +1 -0
  413. package/lib/umd/synchronizers/synchronizer-ws-server.js.gz +0 -0
  414. package/lib/umd/synchronizers.js +1 -0
  415. package/lib/umd/synchronizers.js.gz +0 -0
  416. package/lib/umd/tinybase.js +1 -1
  417. package/lib/umd/tinybase.js.gz +0 -0
  418. package/lib/umd/tools.js +1 -1
  419. package/lib/umd/tools.js.gz +0 -0
  420. package/lib/umd/ui-react-dom-debug.js +1 -1
  421. package/lib/umd/ui-react-dom-debug.js.gz +0 -0
  422. package/lib/umd/ui-react-dom.js +1 -1
  423. package/lib/umd/ui-react-dom.js.gz +0 -0
  424. package/lib/umd/ui-react.js +1 -1
  425. package/lib/umd/ui-react.js.gz +0 -0
  426. package/lib/umd-es6/checkpoints.js +1 -1
  427. package/lib/umd-es6/checkpoints.js.gz +0 -0
  428. package/lib/umd-es6/indexes.js +1 -1
  429. package/lib/umd-es6/indexes.js.gz +0 -0
  430. package/lib/umd-es6/mergeable-store.js +1 -0
  431. package/lib/umd-es6/mergeable-store.js.gz +0 -0
  432. package/lib/umd-es6/metrics.js +1 -1
  433. package/lib/umd-es6/metrics.js.gz +0 -0
  434. package/lib/umd-es6/persisters/persister-automerge.js +1 -1
  435. package/lib/umd-es6/persisters/persister-automerge.js.gz +0 -0
  436. package/lib/umd-es6/persisters/persister-browser.js +1 -1
  437. package/lib/umd-es6/persisters/persister-browser.js.gz +0 -0
  438. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  439. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  440. package/lib/umd-es6/persisters/persister-electric-sql.js +1 -1
  441. package/lib/umd-es6/persisters/persister-electric-sql.js.gz +0 -0
  442. package/lib/umd-es6/persisters/persister-expo-sqlite-next.js +1 -1
  443. package/lib/umd-es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
  444. package/lib/umd-es6/persisters/persister-expo-sqlite.js +1 -1
  445. package/lib/umd-es6/persisters/persister-expo-sqlite.js.gz +0 -0
  446. package/lib/umd-es6/persisters/persister-file.js +1 -1
  447. package/lib/umd-es6/persisters/persister-file.js.gz +0 -0
  448. package/lib/umd-es6/persisters/persister-indexed-db.js +1 -1
  449. package/lib/umd-es6/persisters/persister-indexed-db.js.gz +0 -0
  450. package/lib/umd-es6/persisters/persister-libsql.js +1 -0
  451. package/lib/umd-es6/persisters/persister-libsql.js.gz +0 -0
  452. package/lib/umd-es6/persisters/persister-partykit-client.js +1 -1
  453. package/lib/umd-es6/persisters/persister-partykit-client.js.gz +0 -0
  454. package/lib/umd-es6/persisters/persister-partykit-server.js +1 -1
  455. package/lib/umd-es6/persisters/persister-partykit-server.js.gz +0 -0
  456. package/lib/umd-es6/persisters/persister-powersync.js +1 -0
  457. package/lib/umd-es6/persisters/persister-powersync.js.gz +0 -0
  458. package/lib/umd-es6/persisters/persister-remote.js +1 -1
  459. package/lib/umd-es6/persisters/persister-remote.js.gz +0 -0
  460. package/lib/umd-es6/persisters/persister-sqlite-wasm.js +1 -1
  461. package/lib/umd-es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  462. package/lib/umd-es6/persisters/persister-sqlite3.js +1 -1
  463. package/lib/umd-es6/persisters/persister-sqlite3.js.gz +0 -0
  464. package/lib/umd-es6/persisters/persister-yjs.js +1 -1
  465. package/lib/umd-es6/persisters/persister-yjs.js.gz +0 -0
  466. package/lib/umd-es6/persisters.js +1 -1
  467. package/lib/umd-es6/persisters.js.gz +0 -0
  468. package/lib/umd-es6/queries.js +1 -1
  469. package/lib/umd-es6/queries.js.gz +0 -0
  470. package/lib/umd-es6/relationships.js +1 -1
  471. package/lib/umd-es6/relationships.js.gz +0 -0
  472. package/lib/umd-es6/store.js +1 -1
  473. package/lib/umd-es6/store.js.gz +0 -0
  474. package/lib/umd-es6/synchronizers/synchronizer-local.js +1 -0
  475. package/lib/umd-es6/synchronizers/synchronizer-local.js.gz +0 -0
  476. package/lib/umd-es6/synchronizers/synchronizer-ws-client.js +1 -0
  477. package/lib/umd-es6/synchronizers/synchronizer-ws-client.js.gz +0 -0
  478. package/lib/umd-es6/synchronizers/synchronizer-ws-server.js +1 -0
  479. package/lib/umd-es6/synchronizers/synchronizer-ws-server.js.gz +0 -0
  480. package/lib/umd-es6/synchronizers.js +1 -0
  481. package/lib/umd-es6/synchronizers.js.gz +0 -0
  482. package/lib/umd-es6/tinybase.js +1 -1
  483. package/lib/umd-es6/tinybase.js.gz +0 -0
  484. package/lib/umd-es6/tools.js +1 -1
  485. package/lib/umd-es6/tools.js.gz +0 -0
  486. package/lib/umd-es6/ui-react-dom-debug.js +1 -1
  487. package/lib/umd-es6/ui-react-dom-debug.js.gz +0 -0
  488. package/lib/umd-es6/ui-react-dom.js +1 -1
  489. package/lib/umd-es6/ui-react-dom.js.gz +0 -0
  490. package/lib/umd-es6/ui-react.js +1 -1
  491. package/lib/umd-es6/ui-react.js.gz +0 -0
  492. package/package.json +68 -48
  493. package/readme.md +2 -2
@@ -1 +1 @@
1
- var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",s=",",n=t(""),i=(a,t)=>a.repeat(t),o=Promise,c=clearInterval,r=a=>null==a,l=(a,t,e)=>r(a)?e?.():t(a),y=a=>t(a)==n,w=(a,t,e)=>a.slice(t,e),E=a=>a.length,d=async a=>o.all(a),u="_",p="_id",f=a=>`"${a.replace(/"/g,'""')}"`,T="SELECT",m=(a,t="")=>a.join(t),v=(a,t)=>a.map(t),A=a=>0==E(a),L=(a,t)=>a.filter(t),h=(a,...t)=>a.push(...t),N=(a,t)=>a?.has(t)??!1,O=a=>[...a?.values()??[]],R=(a,t)=>a?.delete(t),g=Object,D=a=>g.getPrototypeOf(a),S=g.keys,b=g.freeze,C=(a=[])=>g.fromEntries(a),I=(...a)=>g.assign({},...a),F=(a,t)=>v(g.entries(a),(([a,e])=>t(e,a))),M=a=>g.values(a),P=a=>E(S(a)),$=a=>(a=>!r(a)&&l(D(a),(a=>a==g.prototype||r(D(a))),(()=>!0)))(a)&&0==P(a),_=a=>new Map(a),x=a=>[...a?.keys()??[]],B=(a,t)=>a?.get(t),H=(a,t)=>v([...a?.entries()??[]],(([a,e])=>t(e,a))),j=(a,t,e)=>r(e)?(R(a,t),a):a?.set(t,e),W=(a,t,e)=>(N(a,t)||j(a,t,e()),B(a,t)),q=(a,t,e,s=j)=>(F(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!r(((a,t)=>l(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),Y=a=>new Set(Array.isArray(a)||r(a)?a:[a]),k=(a,t)=>a?.add(t),G=T+"*FROM",J="FROM pragma_table_",U="WHERE",z=(a,t,e)=>{const n=_();return[async()=>q(n,C(await d(v(await a("SELECT name "+J+"list WHERE schema='main'AND type='table'AND name IN("+V(t)+")ORDER BY name",t),(async({name:t})=>[t,C(v(await a(T+" name,type "+J+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>j(n,t,q(W(n,t,_),e,((a,t,e)=>{e!=B(a,t)&&j(a,t,e)}),((a,t)=>j(a,t))))),((a,t)=>j(n,t))),async(t,e)=>((a,t)=>!r(B(B(n,a),t)))(t,e)?C(L(v(await a(G+f(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!r(a)&&!$(t)))):{},async(t,e,i,o,c,l=!1)=>{const y=Y();F(i??{},(a=>v(S(a??{}),(a=>k(y,a)))));const w=O(y);if(!l&&c&&A(w)&&N(n,t))return await a("DROP TABLE"+f(t)),void j(n,t);if(A(w)||N(n,t)){const s=B(n,t),i=Y(x(s));await d([...v(w,(async e=>{R(i,e)||(await a(`ALTER TABLE${f(t)}ADD${f(e)}`),j(s,e,""))})),...!l&&o?v(O(i),(async n=>{n!=e&&(await a(`ALTER TABLE${f(t)}DROP${f(n)}`),j(s,n))})):[]])}else await a(`CREATE TABLE${f(t)}(${f(e)} PRIMARY KEY ON CONFLICT REPLACE${m(v(w,(a=>s+f(a))))});`),j(n,t,_([[e,""],...v(w,(a=>[a,""]))]));if(l)r(i)?await a("DELETE FROM"+f(t)+"WHERE 1"):await d(F(i,(async(s,n)=>{r(s)?await a("DELETE FROM"+f(t)+U+f(e)+"=?",[n]):A(w)||await K(a,t,e,S(s),[n,...M(s)])})));else if(A(w))N(n,t)&&await a("DELETE FROM"+f(t)+"WHERE 1");else{const s=L(x(B(n,t)),(a=>a!=e)),o=[],c=[];F(i??{},((a,t)=>{h(o,t,...v(s,(t=>a?.[t]))),h(c,t)})),await K(a,t,e,s,o),await a("DELETE FROM"+f(t)+U+f(e)+"NOT IN("+V(c)+")",c)}},async t=>{let s;await a("BEGIN");try{s=await t()}catch(a){e?.(a)}return await a("END"),s}]},K=async(a,t,e,n,o)=>await a("INSERT INTO"+f(t)+"("+f(e)+m(v(n,(a=>s+f(a))))+")VALUES"+w(i(`,(?${i(",?",E(n))})`,E(o)/(E(n)+1)),1)+"ON CONFLICT("+f(e)+")DO UPDATE SET"+m(v(n,(a=>f(a)+"=excluded."+f(a))),s),o),V=a=>m(v(a,(()=>"?")),s),Q=JSON.parse,X=_(),Z=_(),aa=(a,t,e,s,n,i,[o,c]=[],y=[])=>{let w,E,d,u=0,p=0;W(X,y,(()=>0)),W(Z,y,(()=>[]));const f=async a=>(2!=u&&(u=1,await T.schedule((async()=>{await a(),u=0}))),T),T={load:async(e,s)=>await f((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(T.stopAutoLoad(),await T.load(e,n),p=1,d=s((async(e,s)=>{if(s){const t=s();await f((async()=>a.setTransactionChanges(t)))}else await f((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),T),stopAutoLoad:()=>(p&&(n(d),d=void 0,p=0),T),save:async t=>(1!=u&&(u=2,await T.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}u=0}))),T),startAutoSave:async()=>(await T.stopAutoSave().save(),w=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();$(e)&&$(s)||T.save((()=>[e,s]))})),T),stopAutoSave:()=>(l(w,a.delListener),w=void 0,T),schedule:async(...a)=>(h(B(Z,y),...a),await(async()=>{if(!B(X,y)){for(j(X,y,1);!r((a=B(Z,y),E=a.shift()));)try{await E()}catch(a){i?.(a)}j(X,y,0)}var a})(),T),getStore:()=>a,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return o&&(T[o]=()=>c),b(T)},ta="store",ea=(a,t,e,s,n,[i],o,c)=>{const[r,l,y,w]=z(t,o,n);return aa(a,(async()=>await w((async()=>(await r(),Q((await l(i,p))[u]?.[ta]??"null"))))),(async a=>await w((async()=>{var t;await r(),await y(i,p,{[u]:{[ta]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?g.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,["getDb",c],c)},sa=(a,t,e,s,n,[i,o,[c,l,y]],w,E)=>{const[f,T,m,v]=z(t,w,n),A=async(a,t)=>await d(H(o,(async([e,s,n,i],o)=>{const c=a[o];t&&void 0===c||await m(e,s,c,n,i,t)}))),h=async(a,t)=>l?await m(y,p,{[u]:a},!0,!0,t):null;return aa(a,(async()=>await v((async()=>{await f();const a=await(async()=>C(L(await d(H(i,(async([a,t],e)=>[a,await T(e,t)]))),(a=>!$(a[1])))))(),t=await(async()=>c?(await T(y,p))[u]:{})();return $(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await v((async()=>{if(await f(),r(t)){const[t,e]=a();await A(t),await h(e)}else{const[a,e]=t();await A(a,!0),await h(e,!0)}}))),e,s,n,["getDb",E],E)},na="json",ia="autoLoadIntervalSeconds",oa="rowIdColumnName",ca="tableId",ra="tableName",la={mode:na,[ia]:1},ya={load:0,save:0,[ra]:e+"_values"},wa=(a,t,e,s)=>{const n=_();return F(a,((a,i)=>{const o=w(M(I(t,y(a)?{[e]:a}:a)),0,P(t));r(o[0])||s(i,o[0])||j(n,i,o)})),n},Ea="pragma ",da="data_version",ua="schema_version",pa=(a,t,s,n,i,o,r,l)=>{let E,d,u;const[f,m,v,A]=(a=>{const t=(a=>I(la,y(a)?{storeTableName:a}:a??{}))(a),s=t[ia];if(t.mode==na){const{storeTableName:a=e}=t;return[1,s,[a],Y(a)]}const{tables:{load:n={},save:i={}}={},values:o={}}=t,c=w(M(I(ya,o)),0,P(ya)),r=c[2],l=Y(r);return[0,s,[wa(n,{[ca]:null,[oa]:p},ca,(a=>k(l,a)&&a==r)),wa(i,{[ra]:null,[oa]:p,deleteEmptyColumns:0,deleteEmptyTable:0},ra,((a,t)=>k(l,t)&&t==r)),c],l]})(t);return(f?ea:sa)(a,o?async(a,t)=>(o(a,t),await s(a,t)):s,(a=>{return[(t=async()=>{try{const t=(await s(Ea+da))[0][da],e=(await s(Ea+ua))[0][ua],n=(await s(T+" TOTAL_CHANGES() c"))[0].c;t==(E??=t)&&e==(d??=e)&&n==(u??=n)||(a(),E=t,d=e)}catch{}},e=m,t(),setInterval(t,1e3*e)),n((t=>A.has(t)?a():0))];var t,e}),(([a,t])=>{c(a),E=d=null,i(t)}),r,v,O(A),l)};a.createExpoSqlitePersister=(a,t,e,s,n)=>pa(a,e,(async(a,e=[])=>(await t.execAsync([{sql:a,args:e}],!1))[0].rows),(a=>t.onDatabaseChange((({tableName:t})=>a(t)))),(a=>a.remove()),s,n,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).TinyBasePersisterExpoSqlite={});
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",v=a=>`"${a.replace(/"/g,'""')}"`,m="SELECT",h=(a,t="")=>a.join(t),A=(a,t)=>a.map(t),C=a=>0==p(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),x=(a,t)=>t in a,F=(a,t)=>A(D(a),(([a,e])=>t(e,a))),j=a=>S.values(a),B=a=>p(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)=>(F(t,((t,n)=>e(a,n,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>x(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 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(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,c,r,y,w=!1)=>{const u=W();F(c??{},(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 E([...A(d,(async e=>{L(i,e)||(await a(V+v(t)+"ADD"+v(e)),G(s,e,n))})),...!w&&r?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(c)?await a(Q+v(t)+aa+" 1"):await E(F(c,(async(n,s)=>{l(n)?await a(Q+v(t)+aa+v(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+v(t)+aa+" 1");else{const n=T(Y($(o,t)),(a=>a!=e)),s=[],r=[];F(c??{},((a,t)=>{b(s,t,...A(n,(t=>a?.[t]))),b(r,t)})),await ea(a,t,e,n,s,i),await a(Q+v(t)+aa+v(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"+v(t)+"("+v(e)+h(A(i,(a=>s+v(a))))+")VALUES"+d(o(`,(?${o(",?",p(i))})`,p(c)/(p(i)+1)),1)+(r?"ON CONFLICT("+v(e)+")DO UPDATE SET"+h(A(i,(a=>v(a)+"=excluded."+v(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;J(ia,r,(()=>0)),J(oa,r,(()=>[]));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!=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=v();m(a)&&T.save((()=>a))})),T),stopAutoSave:()=>(y(p,a.delListener),p=void 0,T),isAutoSaving:()=>!l(p),schedule:async(...a)=>(b($(oa,r),...a),await(async()=>{if(!$(ia,r)){for(G(ia,r,1);!l((a=$(oa,r),w=a.shift()));)try{await w()}catch(a){i?.(a)}G(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[v,m,h,A]=ta(t,w,s,p),C=async(a,t)=>await E(k(o,(async([e,n,s,i],o)=>{t&&!x(a,o)||await h(e,n,a[o],s,i,t)}))),b=async(a,t)=>r?await h(y,g,{[f]:a},!0,!0,t):null;return ca(a,(async()=>await A((async()=>{await v();const a=await(async()=>P(T(await E(k(i,(async([a,t],e)=>[a,await m(e,t)]))),(a=>!q(a[1])))))(),t=await(async()=>c?(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",pa="tableId",Ea="tableName",fa={mode:wa,[ua]:1},ga={load:0,save:0,[Ea]:e+"_values"},va=(a,t,e,n)=>{const s=H();return F(a,((a,i)=>{const o=d(j(_(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,c,l,y="getDb",u)=>{let p,E,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,c=d(j(_(ga,o)),0,B(ga)),r=c[2],l=W(r);return[0,n,[va(s,{[pa]:null,[da]:g},pa,(a=>z(l,a)&&a==r)),va(i,{[Ea]:null,[da]:g,deleteEmptyColumns:0,deleteEmptyTable:0},Ea,((a,t)=>z(l,t)&&t==r)),c],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==(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,O(C),l,y,u)};a.createExpoSqlitePersister=(a,t,e,n,s)=>Ca(a,e,(async(a,e=[])=>(await t.execAsync([{sql:a,args:e}],!1))[0].rows),(a=>t.onDatabaseChange((({tableName:t})=>a(t)))),(a=>a.remove()),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).TinyBasePersisterExpoSqlite={});
@@ -1 +1 @@
1
- var t,e;t=this,e=function(t,e,a){"use strict";const s="utf8",n=t=>null==t,o=(t,e,a)=>n(t)?a?.():e(t),i=Object,r=t=>i.getPrototypeOf(t),c=i.keys,y=i.freeze,f=t=>(t=>!n(t)&&o(r(t),(t=>t==i.prototype||n(r(t))),(()=>!0)))(t)&&0==(t=>c(t).length)(t),d=JSON.parse,u=t=>new Map(t),l=(t,e)=>t?.get(e),p=(t,e,a)=>{return n(a)?(s=t,o=e,s?.delete(o),t):t?.set(e,a);var s,o},h=(t,e,a)=>{var s,n;return s=t,n=e,s?.has(n)||p(t,e,a()),l(t,e)},w=u(),v=u();t.createFilePersister=(t,r,c)=>((t,e,a,s,i,r,[c,d]=[],u=[])=>{let g,A,S,m=0,F=0;h(w,u,(()=>0)),h(v,u,(()=>[]));const L=async t=>(2!=m&&(m=1,await C.schedule((async()=>{await t(),m=0}))),C),C={load:async(a,s)=>await L((async()=>{try{t.setContent(await e())}catch{t.setContent([a,s])}})),startAutoLoad:async(a={},n={})=>(C.stopAutoLoad(),await C.load(a,n),F=1,S=s((async(a,s)=>{if(s){const e=s();await L((async()=>t.setTransactionChanges(e)))}else await L((async()=>{try{t.setContent(a?.()??await e())}catch(t){r?.(t)}}))})),C),stopAutoLoad:()=>(F&&(i(S),S=void 0,F=0),C),save:async e=>(1!=m&&(m=2,await C.schedule((async()=>{try{await a(t.getContent,e)}catch(t){r?.(t)}m=0}))),C),startAutoSave:async()=>(await C.stopAutoSave().save(),g=t.addDidFinishTransactionListener(((t,e)=>{const[a,s]=e();f(a)&&f(s)||C.save((()=>[a,s]))})),C),stopAutoSave:()=>(o(g,t.delListener),g=void 0,C),schedule:async(...t)=>(((t,...e)=>{t.push(...e)})(l(v,u),...t),await(async()=>{if(!l(w,u)){for(p(w,u,1);!n((t=l(v,u),A=t.shift()));)try{await A()}catch(t){r?.(t)}p(w,u,0)}var t})(),C),getStore:()=>t,destroy:()=>C.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(C[c]=()=>d),y(C)})(t,(async()=>d(await a.readFile(r,s))),(async t=>{return await a.writeFile(r,(e=t(),JSON.stringify(e,((t,e)=>e instanceof Map?i.fromEntries([...e]):e))),s);var e}),(t=>e.watch(r,(()=>t()))),(t=>t?.close()),c,["getFilePath",r])},"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("fs"),require("fs/promises")):"function"==typeof define&&define.amd?define(["exports","fs","fs/promises"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).TinyBasePersisterFile={},t.fs,t["fs/promises"]);
1
+ var e,t;e=this,t=function(e,t,a){"use strict";const s="utf8",n=e=>null==e,o=(e,t,a)=>n(e)?a?.():t(e),r=Object,i=e=>r.getPrototypeOf(e),c=r.keys,y=r.freeze,l=e=>(e=>!n(e)&&o(i(e),(e=>e==r.prototype||n(i(e))),(()=>!0)))(e)&&0==(e=>c(e).length)(e),d=e=>new Map(e),u=(e,t)=>e?.get(t),f=(e,t,a)=>{return n(a)?(s=e,o=t,s?.delete(o),e):e?.set(t,a);var s,o},p=(e,t,a,s)=>{var n,o;return n=e,o=t,n?.has(o)?s?.(u(e,t)):f(e,t,a()),u(e,t)},g=d(),h=d();e.createFilePersister=(e,r,i)=>((e,t,a,s,r,i,c,d={},v=[])=>{let w,A,C,b=0;p(g,v,(()=>0)),p(h,v,(()=>[]));const[S,L,F,M,T]=((e,t)=>!e||n(t.getMergeableContent)?[0,t.getContent,t.getTransactionChanges,([e,t])=>!l(e)||!l(t),t.setContent]:[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[e],[t]])=>!l(e)||!l(t),t.setDefaultContent])(c,e),m=async e=>(2!=b&&(b=1,await P.schedule((async()=>{await e(),b=0}))),P),O=t=>{var a;(S&&(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 m((async()=>{try{O(await t())}catch(t){i?.(t),e&&T(e)}})),startAutoLoad:async e=>(await P.stopAutoLoad().load(e),A=s((async(e,a)=>{const s=a?.();await m((async()=>{try{O(s??e?.()??await t())}catch(e){i?.(e)}}))})),P),stopAutoLoad:()=>(A&&(r(A),A=void 0),P),isAutoLoading:()=>!n(A),save:async e=>(1!=b&&(b=2,await P.schedule((async()=>{try{await a(L,e)}catch(e){i?.(e)}b=0}))),P),startAutoSave:async()=>(await P.stopAutoSave().save(),C=e.addDidFinishTransactionListener((()=>{const e=F();M(e)&&P.save((()=>e))})),P),stopAutoSave:()=>(o(C,e.delListener),C=void 0,P),isAutoSaving:()=>!n(C),schedule:async(...e)=>(((e,...t)=>{e.push(...t)})(u(h,v),...e),await(async()=>{if(!u(g,v)){for(f(g,v,1);!n((e=u(h,v),w=e.shift()));)try{await w()}catch(e){i?.(e)}f(g,v,0)}var e})(),P),getStore:()=>e,destroy:()=>P.stopAutoLoad().stopAutoSave(),getStats:()=>({}),...d};return y(P)})(e,(async()=>{return e=await a.readFile(r,s),JSON.parse(e,((e,t)=>""===t?void 0:t));var e}),(async e=>{return await a.writeFile(r,(t=e(),JSON.stringify(t,((e,t)=>void 0===t?"":t))),s);var t}),(e=>t.watch(r,(()=>e()))),(e=>e?.close()),i,!0,{getFilePath:()=>r})},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("fs"),require("fs/promises")):"function"==typeof define&&define.amd?define(["exports","fs","fs/promises"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBasePersisterFile={},e.fs,e["fs/promises"]);
@@ -1 +1 @@
1
- var t,e;t=this,e=function(t){"use strict";const e=Promise,a=clearInterval,s=t=>null==t,n=(t,e,a)=>s(t)?a?.():e(t),o=t=>new e(t),r=async t=>e.all(t),c=(t,e)=>t.map(e),i=(t,...e)=>t.push(...e),d=Object,y=t=>d.getPrototypeOf(t),l=d.keys,u=d.freeze,w=t=>(t=>!s(t)&&n(y(t),(t=>t==d.prototype||s(y(t))),(()=>!0)))(t)&&0==(t=>l(t).length)(t),p=t=>new Map(t),h=(t,e)=>t?.get(e),f=(t,e,a)=>{return s(a)?(n=t,o=e,n?.delete(o),t):t?.set(e,a);var n,o},v=(t,e,a)=>{var s,n;return s=t,n=e,s?.has(n)||f(t,e,a()),h(t,e)},g=p(),b=p(),A=globalThis.window,S=["t","v"],x={keyPath:"k"},j=async(t,e)=>{const a=((e,a)=>c(d.entries(e),(([e,a])=>m(t,"put",{k:e,v:a}))))(e);c(await m(t,"getAllKeys"),(o=>((t,e)=>!s(((t,e)=>n(t,(t=>t[e])))(t,e)))(e,o)?0:i(a,m(t,"delete",o)))),await r(a)},m=async(t,e,a)=>o(((s,n)=>{const o=t[e](a);o.onsuccess=()=>s(o.result),o.onerror=()=>n(`objectStore.${e} error`)}));t.createIndexedDbPersister=(t,e,y=1,l)=>{const p=async(t,a=[],s=0)=>o(((n,o)=>{const i=A.indexedDB.open(e,s?2:void 0);i.onupgradeneeded=()=>s&&c(S,(t=>{try{i.result.createObjectStore(t,x)}catch{}})),i.onsuccess=async()=>{try{const e=i.result.transaction(S,"readwrite"),s=await r(c(S,(async(s,n)=>await t(e.objectStore(s),a[n]))));i.result.close(),n(s)}catch(t){o(t)}},i.onerror=()=>o("indexedDB.open error")}));return((t,e,a,o,r,c,[d,y]=[],l=[])=>{let p,A,S,x=0,j=0;v(g,l,(()=>0)),v(b,l,(()=>[]));const m=async t=>(2!=x&&(x=1,await D.schedule((async()=>{await t(),x=0}))),D),D={load:async(a,s)=>await m((async()=>{try{t.setContent(await e())}catch{t.setContent([a,s])}})),startAutoLoad:async(a={},s={})=>(D.stopAutoLoad(),await D.load(a,s),j=1,S=o((async(a,s)=>{if(s){const e=s();await m((async()=>t.setTransactionChanges(e)))}else await m((async()=>{try{t.setContent(a?.()??await e())}catch(t){c?.(t)}}))})),D),stopAutoLoad:()=>(j&&(r(S),S=void 0,j=0),D),save:async e=>(1!=x&&(x=2,await D.schedule((async()=>{try{await a(t.getContent,e)}catch(t){c?.(t)}x=0}))),D),startAutoSave:async()=>(await D.stopAutoSave().save(),p=t.addDidFinishTransactionListener(((t,e)=>{const[a,s]=e();w(a)&&w(s)||D.save((()=>[a,s]))})),D),stopAutoSave:()=>(n(p,t.delListener),p=void 0,D),schedule:async(...t)=>(i(h(b,l),...t),await(async()=>{if(!h(g,l)){for(f(g,l,1);!s((t=h(b,l),A=t.shift()));)try{await A()}catch(t){c?.(t)}f(g,l,0)}var t})(),D),getStore:()=>t,destroy:()=>D.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return d&&(D[d]=()=>y),u(D)})(t,(async()=>await p((async t=>((t=[])=>d.fromEntries(t))(c(await m(t,"getAll"),(({k:t,v:e})=>[t,e])))))),(async t=>await p((async(t,e)=>await j(t,e)),t(),1)),(t=>setInterval(t,1e3*y)),(t=>a(t)),l,["getDbName",e])},t.objectStoreMatch=j},"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).TinyBasePersisterIndexedDb={});
1
+ var e,t;e=this,t=function(e){"use strict";const t=Promise,a=clearInterval,s=e=>null==e,n=(e,t,a)=>s(e)?a?.():t(e),o=e=>new t(e),r=async e=>t.all(e),c=(e,t)=>e.map(t),i=(e,...t)=>e.push(...t),d=Object,l=e=>d.getPrototypeOf(e),y=d.entries,u=d.keys,g=d.freeze,p=e=>(e=>!s(e)&&n(l(e),(e=>e==d.prototype||s(l(e))),(()=>!0)))(e)&&0==(e=>u(e).length)(e),w=e=>new Map(e),h=(e,t)=>e?.get(t),v=(e,t,a)=>{return s(a)?(n=e,o=t,n?.delete(o),e):e?.set(t,a);var n,o},f=(e,t,a,s)=>{var n,o;return n=e,o=t,n?.has(o)?s?.(h(e,t)):v(e,t,a()),h(e,t)},b=w(),A=w(),C=globalThis.window,S=["t","v"],x={keyPath:"k"},D=async(e,t)=>{const a=((t,a)=>c(y(t),(([t,a])=>L(e,"put",{k:t,v:a}))))(t);c(await L(e,"getAllKeys"),(s=>((e,t)=>t in e)(t,s)?0:i(a,L(e,"delete",s)))),await r(a)},L=async(e,t,a)=>o(((s,n)=>{const o=e[t](a);o.onsuccess=()=>s(o.result),o.onerror=()=>n(`objectStore.${t} error`)}));e.createIndexedDbPersister=(e,t,l=1,y)=>{const u=async(e,a=[],s=0)=>o(((n,o)=>{const i=(C?C.indexedDB:indexedDB).open(t,s?2:void 0);i.onupgradeneeded=()=>s&&c(S,(e=>{try{i.result.createObjectStore(e,x)}catch{}})),i.onsuccess=async()=>{try{const t=i.result.transaction(S,"readwrite"),s=await r(c(S,(async(s,n)=>await e(t.objectStore(s),a[n]))));i.result.close(),n(s)}catch(e){i.result.close(),o(e)}},i.onerror=()=>o("indexedDB.open error")}));return((e,t,a,o,r,c,d,l={},y=[])=>{let u,w,C,S=0;f(b,y,(()=>0)),f(A,y,(()=>[]));const[x,D,L,M,T]=((e,t)=>!e||s(t.getMergeableContent)?[0,t.getContent,t.getTransactionChanges,([e,t])=>!p(e)||!p(t),t.setContent]:[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[e],[t]])=>!p(e)||!p(t),t.setDefaultContent])(d,e),j=async e=>(2!=S&&(S=1,await k.schedule((async()=>{await e(),S=0}))),k),m=t=>{var a;(x&&(a=t?.[0],Array.isArray(a))?1===t?.[2]?e.applyMergeableChanges:e.setMergeableContent:1===t?.[2]?e.applyChanges:e.setContent)(t)},k={load:async e=>await j((async()=>{try{m(await t())}catch(t){c?.(t),e&&T(e)}})),startAutoLoad:async e=>(await k.stopAutoLoad().load(e),w=o((async(e,a)=>{const s=a?.();await j((async()=>{try{m(s??e?.()??await t())}catch(e){c?.(e)}}))})),k),stopAutoLoad:()=>(w&&(r(w),w=void 0),k),isAutoLoading:()=>!s(w),save:async e=>(1!=S&&(S=2,await k.schedule((async()=>{try{await a(D,e)}catch(e){c?.(e)}S=0}))),k),startAutoSave:async()=>(await k.stopAutoSave().save(),C=e.addDidFinishTransactionListener((()=>{const e=L();M(e)&&k.save((()=>e))})),k),stopAutoSave:()=>(n(C,e.delListener),C=void 0,k),isAutoSaving:()=>!s(C),schedule:async(...e)=>(i(h(A,y),...e),await(async()=>{if(!h(b,y)){for(v(b,y,1);!s((e=h(A,y),u=e.shift()));)try{await u()}catch(e){c?.(e)}v(b,y,0)}var e})(),k),getStore:()=>e,destroy:()=>k.stopAutoLoad().stopAutoSave(),getStats:()=>({}),...l};return g(k)})(e,(async()=>await u((async e=>((e=[])=>d.fromEntries(e))(c(await L(e,"getAll"),(({k:e,v:t})=>[e,t])))))),(async e=>await u((async(e,t)=>await D(e,t)),e(),1)),(e=>setInterval(e,1e3*l)),(e=>a(e)),y,!1,{getDbName:()=>t})},e.objectStoreMatch=D},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBasePersisterIndexedDb={});
@@ -0,0 +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",v=a=>`"${a.replace(/"/g,'""')}"`,m="SELECT",h=(a,t="")=>a.join(t),A=(a,t)=>a.map(t),C=a=>0==p(a),T=(a,t)=>a.filter(t),b=(a,...t)=>a.push(...t),L=(a,t)=>a?.has(t)??!1,N=a=>[...a?.values()??[]],O=(a,t)=>a?.delete(t),R=Object,S=a=>R.getPrototypeOf(a),D=R.entries,I=R.keys,M=R.freeze,P=(a=[])=>R.fromEntries(a),_=(...a)=>R.assign({},...a),F=(a,t)=>t in a,x=(a,t)=>A(D(a),(([a,e])=>t(e,a))),j=a=>R.values(a),B=a=>p(I(a)),q=a=>(a=>!l(a)&&y(S(a),(a=>a==R.prototype||l(S(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)?(O(a,t),a):a?.set(t,e),J=(a,t,e,n)=>(L(a,t)?n?.($(a,t)):G(a,t,e()),$(a,t)),U=(a,t,e,n=G)=>(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),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 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(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,c,r,y,w=!1)=>{const u=W();x(c??{},(a=>A(I(a??{}),(a=>z(u,a)))));const d=N(u);if(!w&&y&&C(d)&&L(o,t))return await a("DROP "+K+v(t)),void G(o,t);if(C(d)||L(o,t)){const s=$(o,t),i=W(Y(s));await E([...A(d,(async e=>{O(i,e)||(await a(V+v(t)+"ADD"+v(e)),G(s,e,n))})),...!w&&r?A(N(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(c)?await a(Q+v(t)+aa+" 1"):await E(x(c,(async(n,s)=>{l(n)?await a(Q+v(t)+aa+v(e)+"=?",[s]):C(d)||await ea(a,t,e,I(n),[s,...j(n)],i)})));else if(C(d))L(o,t)&&await a(Q+v(t)+aa+" 1");else{const n=T(Y($(o,t)),(a=>a!=e)),s=[],r=[];x(c??{},((a,t)=>{b(s,t,...A(n,(t=>a?.[t]))),b(r,t)})),await ea(a,t,e,n,s,i),await a(Q+v(t)+aa+v(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"+v(t)+"("+v(e)+h(A(i,(a=>s+v(a))))+")VALUES"+d(o(`,(?${o(",?",p(i))})`,p(c)/(p(i)+1)),1)+(r?"ON CONFLICT("+v(e)+")DO UPDATE SET"+h(A(i,(a=>v(a)+"=excluded."+v(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;J(ia,r,(()=>0)),J(oa,r,(()=>[]));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!=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=v();m(a)&&T.save((()=>a))})),T),stopAutoSave:()=>(y(p,a.delListener),p=void 0,T),isAutoSaving:()=>!l(p),schedule:async(...a)=>(b($(oa,r),...a),await(async()=>{if(!$(ia,r)){for(G(ia,r,1);!l((a=$(oa,r),w=a.shift()));)try{await w()}catch(a){i?.(a)}G(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?R.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[v,m,h,A]=ta(t,w,s,p),C=async(a,t)=>await E(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)=>r?await h(y,g,{[f]:a},!0,!0,t):null;return ca(a,(async()=>await A((async()=>{await v();const a=await(async()=>P(T(await E(k(i,(async([a,t],e)=>[a,await m(e,t)]))),(a=>!q(a[1])))))(),t=await(async()=>c?(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",pa="tableId",Ea="tableName",fa={mode:wa,[ua]:1},ga={load:0,save:0,[Ea]:e+"_values"},va=(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])||G(s,i,o)})),s},ma="pragma ",ha="data_version",Aa="schema_version",Ca=(a,t,n,s,i,o,c,l,y="getDb",u)=>{let p,E,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,c=d(j(_(ga,o)),0,B(ga)),r=c[2],l=W(r);return[0,n,[va(s,{[pa]:null,[da]:g},pa,(a=>z(l,a)&&a==r)),va(i,{[Ea]:null,[da]:g,deleteEmptyColumns:0,deleteEmptyTable:0},Ea,((a,t)=>z(l,t)&&t==r)),c],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==(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,N(C),l,y,u)};a.createLibSqlPersister=(a,t,e,n,s)=>Ca(a,e,(async(a,e=[])=>(await t.execute({sql:a,args:e})).rows),(()=>()=>0),(a=>a()),n,s,t,"getClient")},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterLibsql={});
@@ -1 +1 @@
1
- var t,e;t=this,e=function(t){"use strict";const e=t=>typeof t,a="",s=e(a),o=t=>null==t,n=(t,e,a)=>o(t)?a?.():e(t),r=t=>e(t)==s,i=t=>t.length,c=Object,d=t=>c.getPrototypeOf(t),y=c.keys,p=c.freeze,u=t=>(t=>!o(t)&&n(d(t),(t=>t==c.prototype||o(d(t))),(()=>!0)))(t)&&0==(t=>i(y(t)))(t),f=t=>JSON.stringify(t,((t,e)=>e instanceof Map?c.fromEntries([...e]):e)),h=JSON.parse,l="/store",v=t=>new Map(t),w=(t,e)=>t?.get(e),g=(t,e,a)=>{return o(a)?(s=t,n=e,s?.delete(n),t):t?.set(e,a);var s,n},m=(t,e,a)=>{var s,o;return s=t,o=e,s?.has(o)||g(t,e,a()),w(t,e)},P=v(),S=v(),A="message";t.createPartyKitPersister=(t,e,s,c)=>{const{host:d,room:y}=e.partySocketOptions,{storeProtocol:v="https",storePath:L=l,messagePrefix:C=a}={...r(s)?{storeProtocol:s}:s},T=v+"://"+d+"/parties/"+e.name+"/"+y+L,b=async t=>await(await fetch(T,{...t?{method:"PUT",body:f(t)}:{},mode:"cors",cache:"no-store"})).json();return((t,e,a,s,r,i,[c,d]=[],y=[])=>{let f,h,l,v=0,A=0;m(P,y,(()=>0)),m(S,y,(()=>[]));const L=async t=>(2!=v&&(v=1,await C.schedule((async()=>{await t(),v=0}))),C),C={load:async(a,s)=>await L((async()=>{try{t.setContent(await e())}catch{t.setContent([a,s])}})),startAutoLoad:async(a={},o={})=>(C.stopAutoLoad(),await C.load(a,o),A=1,l=s((async(a,s)=>{if(s){const e=s();await L((async()=>t.setTransactionChanges(e)))}else await L((async()=>{try{t.setContent(a?.()??await e())}catch(t){i?.(t)}}))})),C),stopAutoLoad:()=>(A&&(r(l),l=void 0,A=0),C),save:async e=>(1!=v&&(v=2,await C.schedule((async()=>{try{await a(t.getContent,e)}catch(t){i?.(t)}v=0}))),C),startAutoSave:async()=>(await C.stopAutoSave().save(),f=t.addDidFinishTransactionListener(((t,e)=>{const[a,s]=e();u(a)&&u(s)||C.save((()=>[a,s]))})),C),stopAutoSave:()=>(n(f,t.delListener),f=void 0,C),schedule:async(...t)=>(((t,...e)=>{t.push(...e)})(w(S,y),...t),await(async()=>{if(!w(P,y)){for(g(P,y,1);!o((t=w(S,y),h=t.shift()));)try{await h()}catch(t){i?.(t)}g(P,y,0)}var t})(),C),getStore:()=>t,destroy:()=>C.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(C[c]=()=>d),p(C)})(t,(async()=>await b()),(async(t,a)=>{var s,o;a?e.send((s=C,o=a(),s+"s"+(r(o)?o:f(o)))):await b(t())}),(t=>{const a=e=>n(((t,e,a)=>{const s=i(t);return((t,e)=>t.startsWith(e))(e,t)?[e[s],h((o=e,n=s+1,o.slice(n,void 0)))]:void 0;var o,n})(C,e.data),(([e,a])=>{"s"==e&&t(void 0,(()=>a))}));return e.addEventListener(A,a),a}),(t=>{e.removeEventListener(A,t)}),c,["getConnection",e])}},"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).TinyBasePersisterPartyKitClient={});
1
+ var t,e;t=this,e=function(t){"use strict";const e=t=>typeof t,a="",s=e(a),o=t=>null==t,n=(t,e,a)=>o(t)?a?.():e(t),r=t=>e(t)==s,i=t=>t.length,c=Object,y=t=>c.getPrototypeOf(t),d=c.keys,l=c.freeze,p=t=>(t=>!o(t)&&n(y(t),(t=>t==c.prototype||o(y(t))),(()=>!0)))(t)&&0==(t=>i(d(t)))(t),u=t=>JSON.stringify(t,((t,e)=>e instanceof Map?c.fromEntries([...e]):e)),g=JSON.parse,h="/store",f=t=>new Map(t),v=(t,e)=>t?.get(e),w=(t,e,a)=>{return o(a)?(s=t,n=e,s?.delete(n),t):t?.set(e,a);var s,n},C=(t,e,a,s)=>{var o,n;return o=t,n=e,o?.has(n)?s?.(v(t,e)):w(t,e,a()),v(t,e)},A=f(),b=f(),m="message";t.createPartyKitPersister=(t,e,s,c)=>{const{host:y,room:d}=e.partySocketOptions,{storeProtocol:f="https",storePath:P=h,messagePrefix:S=a}={...r(s)?{storeProtocol:s}:s},L=f+"://"+y+"/parties/"+e.name+"/"+d+P,M=async t=>await(await fetch(L,{...t?{method:"PUT",body:u(t)}:{},mode:"cors",cache:"no-store"})).json();return((t,e,a,s,r,i,c,y={},d=[])=>{let u,g,h,f=0;C(A,d,(()=>0)),C(b,d,(()=>[]));const[m,P,S,L,M]=((t,e)=>!t||o(e.getMergeableContent)?[0,e.getContent,e.getTransactionChanges,([t,e])=>!p(t)||!p(e),e.setContent]:[1,e.getMergeableContent,e.getTransactionMergeableChanges,([[t],[e]])=>!p(t)||!p(e),e.setDefaultContent])(c,t),T=async t=>(2!=f&&(f=1,await x.schedule((async()=>{await t(),f=0}))),x),O=e=>{var a;(m&&(a=e?.[0],Array.isArray(a))?1===e?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},x={load:async t=>await T((async()=>{try{O(await e())}catch(e){i?.(e),t&&M(t)}})),startAutoLoad:async t=>(await x.stopAutoLoad().load(t),g=s((async(t,a)=>{const s=a?.();await T((async()=>{try{O(s??t?.()??await e())}catch(t){i?.(t)}}))})),x),stopAutoLoad:()=>(g&&(r(g),g=void 0),x),isAutoLoading:()=>!o(g),save:async t=>(1!=f&&(f=2,await x.schedule((async()=>{try{await a(P,t)}catch(t){i?.(t)}f=0}))),x),startAutoSave:async()=>(await x.stopAutoSave().save(),h=t.addDidFinishTransactionListener((()=>{const t=S();L(t)&&x.save((()=>t))})),x),stopAutoSave:()=>(n(h,t.delListener),h=void 0,x),isAutoSaving:()=>!o(h),schedule:async(...t)=>(((t,...e)=>{t.push(...e)})(v(b,d),...t),await(async()=>{if(!v(A,d)){for(w(A,d,1);!o((t=v(b,d),u=t.shift()));)try{await u()}catch(t){i?.(t)}w(A,d,0)}var t})(),x),getStore:()=>t,destroy:()=>x.stopAutoLoad().stopAutoSave(),getStats:()=>({}),...y};return l(x)})(t,(async()=>await M()),(async(t,a)=>{var s,o;a?e.send((s=S,o=a(),s+"s"+(r(o)?o:u(o)))):await M(t())}),(t=>{const a=e=>n(((t,e,a)=>{const s=i(t);return((t,e)=>t.startsWith(e))(e,t)?[e[s],g((o=e,n=s+1,o.slice(n,void 0)))]:void 0;var o,n})(S,e.data),(([e,a])=>{"s"==e&&t(void 0,(()=>a))}));return e.addEventListener(m,a),a}),(t=>{e.removeEventListener(m,t)}),c,!1,{getConnection:()=>e})}},"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).TinyBasePersisterPartyKitClient={});
@@ -1 +1 @@
1
- var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e=t(""),s="t",n=(a,t)=>a.startsWith(t),i=Promise,r=a=>null==a,o=(a,t,e)=>r(a)?e?.():t(a),c=(a,t,e)=>a.slice(t,e),l=a=>a.length,f=async a=>i.all(a),y=(a,t)=>a.map(t),h=(a,...t)=>a.push(...t),g=Object,w=(a=[])=>g.fromEntries(a),u=(a,t)=>y(g.entries(a),(([a,e])=>t(e,a))),d=(a,t,e)=>(((a,t)=>!r(((a,t)=>o(a,(a=>a[t])))(a,t)))(a,t)||(a[t]=e()),a[t]),p=a=>JSON.stringify(a,((a,t)=>t instanceof Map?g.fromEntries([...t]):t)),S=JSON.parse,P=(a,s,n)=>a+s+(t(n)==e?n:p(n)),m=(a,t,e)=>{const s=l(a);return n(t,a)?[t[s],(e?S:String)(c(t,s+1))]:void 0},x=(a,t)=>((a,t)=>a?.forEach(t))(a,((a,e)=>t(e,a))),b="hasStore",T=w(y(["Origin","Methods","Headers"],(a=>["Access-Control-Allow-"+a,"*"]))),D=async(a,t="")=>!!await a.get(t+b),v=async(a,t="")=>{const e={},n={};return x(await a.list(),((a,i)=>o(m(t,a),(([a,t])=>{if(a==s){const[a,s,n]=S("["+t+"]");d(d(e,a,w),s,w)[n]=i}else"v"==a&&(n[t]=i)})))),[e,n]},R=async(a,t,e)=>a.party.broadcast(P(a.config.messagePrefix,"s",t),e),C=async(a,t,e,i)=>{const o=a.party.storage,c=a.config.storagePrefix,y={[c+b]:1},g=[],w=[];await f(u(t[0],(async(t,n)=>r(t)?!e&&await a.canDelTable(n,i)&&((a,...t)=>a.unshift(...t))(w,O(c,s,n)):await a.canSetTable(n,e,i)&&await f(u(t,(async(t,l)=>r(t)?!e&&await a.canDelRow(n,l,i)&&h(w,O(c,s,n,l)):await a.canSetRow(n,l,e,i)&&await f(u(t,(async(t,f)=>{const w=[n,l,f],u=O(c,s,...w);r(t)?!e&&await a.canDelCell(...w,i)&&h(g,u):await a.canSetCell(...w,t,e,i,await o.get(u))&&(y[u]=t)}))))))))),await f(u(t[1],(async(t,s)=>{const n=c+"v"+s;r(t)?!e&&await a.canDelValue(s,i)&&h(g,n):await a.canSetValue(s,t,e,i,await o.get(n))&&(y[n]=t)}))),0!=l(w)&&x(await o.list(),(a=>w.every((t=>!n(a,t)||h(g,a)&&0)))),await o.delete(g),await o.put(y)},O=(a,t,...e)=>P(a,t,c(p(e),1,-1)),V=async(a,t,e=null)=>new Response(e,{status:t,headers:a.config.responseHeaders});a.TinyBasePartyKitServer=class{constructor(a){this.party=a,this.config={},this.config.storePath??="/store",this.config.messagePrefix??="",this.config.storagePrefix??="",this.config.responseHeaders??=T}async onRequest(a){const{party:{storage:t},config:{storePath:e,storagePrefix:s}}=this;if(new URL(a.url).pathname.endsWith(e)){const e=await D(t,s),n=await a.text();return"PUT"==a.method?e?V(this,205):(await C(this,S(n),!0,a),V(this,201)):V(this,200,e?p(await v(t,s)):"")}return V(this,404)}async onMessage(a,t){const{config:{messagePrefix:e,storagePrefix:s}}=this;await o(m(e,a,1),(async([a,e])=>{"s"==a&&await D(this.party.storage,s)&&(await C(this,e,!1,t),R(this,e,[t.id]))}))}async canSetTable(a,t,e){return!0}async canDelTable(a,t){return!0}async canSetRow(a,t,e,s){return!0}async canDelRow(a,t,e){return!0}async canSetCell(a,t,e,s,n,i,r){return!0}async canDelCell(a,t,e,s){return!0}async canSetValue(a,t,e,s,n){return!0}async canDelValue(a,t){return!0}},a.broadcastTransactionChanges=R,a.hasStoreInStorage=D,a.loadStoreFromStorage=v},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterPartyKitServer={});
1
+ var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e=t(""),s="t",n=(a,t)=>a.startsWith(t),i=Promise,r=a=>null==a,o=(a,t,e)=>r(a)?e?.():t(a),c=(a,t,e)=>a.slice(t,e),l=a=>a.length,f=async a=>i.all(a),y=(a,t)=>a.map(t),h=(a,...t)=>a.push(...t),g=Object,w=g.entries,u=(a=[])=>g.fromEntries(a),d=(a,t)=>y(w(a),(([a,e])=>t(e,a))),p=(a,t,e)=>(((a,t)=>t in a)(a,t)||(a[t]=e()),a[t]),S=a=>JSON.stringify(a,((a,t)=>t instanceof Map?g.fromEntries([...t]):t)),P=JSON.parse,m=(a,s,n)=>a+s+(t(n)==e?n:S(n)),x=(a,t,e)=>{const s=l(a);return n(t,a)?[t[s],(e?P:String)(c(t,s+1))]:void 0},b=(a,t)=>((a,t)=>a?.forEach(t))(a,((a,e)=>t(e,a))),T="hasStore",D=u(y(["Origin","Methods","Headers"],(a=>["Access-Control-Allow-"+a,"*"]))),v=async(a,t="")=>!!await a.get(t+T),R=async(a,t="")=>{const e={},n={};return b(await a.list(),((a,i)=>o(x(t,a),(([a,t])=>{if(a==s){const[a,s,n]=P("["+t+"]");p(p(e,a,u),s,u)[n]=i}else"v"==a&&(n[t]=i)})))),[e,n]},C=async(a,t,e)=>a.party.broadcast(m(a.config.messagePrefix,"s",t),e),O=async(a,t,e,i)=>{const o=a.party.storage,c=a.config.storagePrefix,y={[c+T]:1},g=[],w=[];await f(d(t[0],(async(t,n)=>r(t)?!e&&await a.canDelTable(n,i)&&((a,...t)=>a.unshift(...t))(w,V(c,s,n)):await a.canSetTable(n,e,i)&&await f(d(t,(async(t,l)=>r(t)?!e&&await a.canDelRow(n,l,i)&&h(w,V(c,s,n,l)):await a.canSetRow(n,l,e,i)&&await f(d(t,(async(t,f)=>{const w=[n,l,f],u=V(c,s,...w);r(t)?!e&&await a.canDelCell(...w,i)&&h(g,u):await a.canSetCell(...w,t,e,i,await o.get(u))&&(y[u]=t)}))))))))),await f(d(t[1],(async(t,s)=>{const n=c+"v"+s;r(t)?!e&&await a.canDelValue(s,i)&&h(g,n):await a.canSetValue(s,t,e,i,await o.get(n))&&(y[n]=t)}))),0!=l(w)&&b(await o.list(),(a=>w.every((t=>!n(a,t)||h(g,a)&&0)))),await o.delete(g),await o.put(y)},V=(a,t,...e)=>m(a,t,c(S(e),1,-1)),E=async(a,t,e=null)=>new Response(e,{status:t,headers:a.config.responseHeaders});a.TinyBasePartyKitServer=class{constructor(a){this.party=a,this.config={},this.config.storePath??="/store",this.config.messagePrefix??="",this.config.storagePrefix??="",this.config.responseHeaders??=D}async onRequest(a){const{party:{storage:t},config:{storePath:e,storagePrefix:s}}=this;if(new URL(a.url).pathname.endsWith(e)){const e=await v(t,s),n=await a.text();return"PUT"==a.method?e?E(this,205):(await O(this,P(n),!0,a),E(this,201)):E(this,200,e?S(await R(t,s)):"")}return E(this,404)}async onMessage(a,t){const{config:{messagePrefix:e,storagePrefix:s}}=this;await o(x(e,a,1),(async([a,e])=>{"s"==a&&await v(this.party.storage,s)&&(await O(this,e,!1,t),C(this,e,[t.id]))}))}async canSetTable(a,t,e){return!0}async canDelTable(a,t){return!0}async canSetRow(a,t,e,s){return!0}async canDelRow(a,t,e){return!0}async canSetCell(a,t,e,s,n,i,r){return!0}async canDelCell(a,t,e,s){return!0}async canSetValue(a,t,e,s,n){return!0}async canDelValue(a,t){return!0}},a.broadcastChanges=C,a.hasStoreInStorage=v,a.loadStoreFromStorage=R},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterPartyKitServer={});
@@ -0,0 +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),p=a=>a.length,f=async a=>r.all(a),g="_",E="_id",v=a=>`"${a.replace(/"/g,'""')}"`,h="SELECT",m=(a,t="")=>a.join(t),A=(a,t)=>a.map(t),T=a=>0==p(a),C=(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,P=S.freeze,M=(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)),H=a=>(a=>!l(a)&&y(R(a),(a=>a==S.prototype||l(R(a))),(()=>!0)))(a)&&0==B(a),Y=a=>new Map(a),$=a=>[...a?.keys()??[]],k=(a,t)=>a?.get(t),G=(a,t)=>A([...a?.entries()??[]],(([a,e])=>t(e,a))),J=(a,t,e)=>l(e)?(L(a,t),a):a?.set(t,e),U=(a,t,e,n)=>(N(a,t)?n?.(k(a,t)):J(a,t,e()),k(a,t)),W=(a,t,e,n=J)=>(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),z=a=>new Set(u(a)||l(a)?a:[a]),K=(a,t)=>a?.add(t),V="TABLE",q="ALTER "+V,Q="DELETE FROM",X=h+"*FROM",Z="FROM pragma_table_",aa="WHERE",ta=(a,t,e,i)=>{const o=Y();return[async()=>W(o,M(await f(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,M(A(await a(h+" name,type "+Z+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>J(o,t,W(U(o,t,Y),e,((a,t,e)=>{e!=k(a,t)&&J(a,t,e)}),((a,t)=>J(a,t))))),((a,t)=>J(o,t))),async(t,e)=>((a,t)=>!l(k(k(o,a),t)))(t,e)?M(C(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)&&!H(t)))):{},async(t,e,r,c,y,w=!1)=>{const u=z();x(r??{},(a=>A(I(a??{}),(a=>K(u,a)))));const d=O(u);if(!w&&y&&T(d)&&N(o,t))return await a("DROP "+V+v(t)),void J(o,t);if(T(d)||N(o,t)){const s=k(o,t),i=z($(s));await f([...A(d,(async e=>{L(i,e)||(await a(q+v(t)+"ADD"+v(e)),J(s,e,n))})),...!w&&c?A(O(i),(async n=>{n!=e&&(await a(q+v(t)+"DROP"+v(n)),J(s,n))})):[]])}else await a("CREATE "+V+v(t)+"("+v(e)+` PRIMARY KEY ON CONFLICT REPLACE${m(A(d,(a=>s+v(a))))});`),J(o,t,Y([[e,n],...A(d,(a=>[a,n]))]));if(w)l(r)?await a(Q+v(t)+aa+" 1"):await f(x(r,(async(n,s)=>{l(n)?await a(Q+v(t)+aa+v(e)+"=?",[s]):T(d)||await ea(a,t,e,I(n),[s,...j(n)],i)})));else if(T(d))N(o,t)&&await a(Q+v(t)+aa+" 1");else{const n=C($(k(o,t)),(a=>a!=e)),s=[],c=[];x(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)+m(A(i,(a=>s+v(a))))+")VALUES"+d(o(`,(?${o(",?",p(i))})`,p(r)/(p(i)+1)),1)+(c?"ON CONFLICT("+v(e)+")DO UPDATE SET"+m(A(i,(a=>v(a)+"=excluded."+v(a))),s):n),A(r,(a=>a??null))),na=a=>m(A(a,(()=>"?")),s),sa=JSON.parse,ia=Y(),oa=Y(),ra=(a,t,e,n,s,i,o,r={},c=[])=>{let w,d,p,f=0;U(ia,c,(()=>0)),U(oa,c,(()=>[]));const[g,E,v,h,m]=((a,t)=>!a||l(t.getMergeableContent)?[0,t.getContent,t.getTransactionChanges,([a,t])=>!H(a)||!H(t),t.setContent]:[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!H(a)||!H(t),t.setDefaultContent])(o,a),A=async a=>(2!=f&&(f=1,await C.schedule((async()=>{await a(),f=0}))),C),T=t=>{(g&&u(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},C={load:async a=>await A((async()=>{try{T(await t())}catch(t){i?.(t),a&&m(a)}})),startAutoLoad:async a=>(await C.stopAutoLoad().load(a),d=n((async(a,e)=>{const n=e?.();await A((async()=>{try{T(n??a?.()??await t())}catch(a){i?.(a)}}))})),C),stopAutoLoad:()=>(d&&(s(d),d=void 0),C),isAutoLoading:()=>!l(d),save:async a=>(1!=f&&(f=2,await C.schedule((async()=>{try{await e(E,a)}catch(a){i?.(a)}f=0}))),C),startAutoSave:async()=>(await C.stopAutoSave().save(),p=a.addDidFinishTransactionListener((()=>{const a=v();h(a)&&C.save((()=>a))})),C),stopAutoSave:()=>(y(p,a.delListener),p=void 0,C),isAutoSaving:()=>!l(p),schedule:async(...a)=>(b(k(oa,c),...a),await(async()=>{if(!k(ia,c)){for(J(ia,c,1);!l((a=k(oa,c),w=a.shift()));)try{await w()}catch(a){i?.(a)}J(ia,c,0)}var a})(),C),getStore:()=>a,destroy:()=>C.stopAutoLoad().stopAutoSave(),getStats:()=>({}),...r};return P(C)},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,E))[g]?.[ca]??"null"))))),(async a=>await d((async()=>{var t;await y(),await u(i,E,{[g]:{[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,p)=>{const[v,h,m,A]=ta(t,w,s,p),T=async(a,t)=>await f(G(o,(async([e,n,s,i],o)=>{t&&!F(a,o)||await m(e,n,a[o],s,i,t)}))),b=async(a,t)=>c?await m(y,E,{[g]:a},!0,!0,t):null;return ra(a,(async()=>await A((async()=>{await v();const a=await(async()=>M(C(await f(G(i,(async([a,t],e)=>[a,await h(e,t)]))),(a=>!H(a[1])))))(),t=await(async()=>r?(await h(y,E))[g]:{})();return H(a)&&l(t)?void 0:[a,t]}))),(async(a,t)=>await A((async()=>{if(await v(),l(t)){const[t,e]=a();await T(t),await b(e)}else{const[a,e]=t();await T(a,!0),await b(e,!0)}}))),e,n,s,!1,{[d]:()=>u},u)},wa="json",ua="autoLoadIntervalSeconds",da="rowIdColumnName",pa="tableId",fa="tableName",ga={mode:wa,[ua]:1},Ea={load:0,save:0,[fa]:e+"_values"},va=(a,t,e,n)=>{const s=Y();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])||J(s,i,o)})),s},ha="pragma ",ma="data_version",Aa="schema_version",Ta=(a,t,n,s,i,o,r,l,y="getDb",u)=>{let p,f,g;const[v,m,A,T]=(a=>{const t=(a=>_(ga,w(a)?{storeTableName:a}:a??{}))(a),n=t[ua];if(t.mode==wa){const{storeTableName:a=e}=t;return[1,n,[a],z(a)]}const{tables:{load:s={},save:i={}}={},values:o={}}=t,r=d(j(_(Ea,o)),0,B(Ea)),c=r[2],l=z(c);return[0,n,[va(s,{[pa]:null,[da]:E},pa,(a=>K(l,a)&&a==c)),va(i,{[fa]:null,[da]:E,deleteEmptyColumns:0,deleteEmptyTable:0},fa,((a,t)=>K(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(ha+ma))[0][ma],e=(await n(ha+Aa))[0][Aa],s=(await n(h+" TOTAL_CHANGES() c"))[0].c;t==(p??=t)&&e==(f??=e)&&s==(g??=s)||(a(),p=t,f=e)}catch{}},e=m,t(),setInterval(t,1e3*e)),s((t=>T.has(t)?a():0))];var t,e}),(([a,t])=>{c(a),p=f=null,i(t)}),r,A,O(T),l,y,u)};a.createPowerSyncPersister=(a,t,e,n,s,i=!1)=>Ta(a,e,(async(a,e=[])=>t.execute(a,e).then((a=>a.rows?._array??[]))),(a=>{const e=new AbortController,n=t.onChange({rawTableNames:!0,signal:e.signal});return(async()=>{for await(const t of n)A(t.changedTables,a)})(),e}),(a=>a.abort()),n,s,t,"getPowerSync",i)},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterPowersync={});
@@ -1 +1 @@
1
- var t,e;t=this,e=function(t){"use strict";const e=clearInterval,a=t=>null==t,s=(t,e,s)=>a(t)?s?.():e(t),n=Object,o=t=>n.getPrototypeOf(t),r=n.keys,i=n.freeze,c=t=>(t=>!a(t)&&s(o(t),(t=>t==n.prototype||a(o(t))),(()=>!0)))(t)&&0==(t=>r(t).length)(t),y=JSON.parse,d=t=>new Map(t),u=(t,e)=>t?.get(e),f=(t,e,s)=>{return a(s)?(n=t,o=e,n?.delete(o),t):t?.set(e,s);var n,o},l=(t,e,a)=>{var s,n;return s=t,n=e,s?.has(n)||f(t,e,a()),u(t,e)},h=d(),p=d(),w=t=>t.headers.get("ETag");t.createRemotePersister=(t,o,r,d=5,v)=>{let g;return((t,e,n,o,r,y,[d,w]=[],v=[])=>{let g,A,S,T=0,m=0;l(h,v,(()=>0)),l(p,v,(()=>[]));const C=async t=>(2!=T&&(T=1,await L.schedule((async()=>{await t(),T=0}))),L),L={load:async(a,s)=>await C((async()=>{try{t.setContent(await e())}catch{t.setContent([a,s])}})),startAutoLoad:async(a={},s={})=>(L.stopAutoLoad(),await L.load(a,s),m=1,S=o((async(a,s)=>{if(s){const e=s();await C((async()=>t.setTransactionChanges(e)))}else await C((async()=>{try{t.setContent(a?.()??await e())}catch(t){y?.(t)}}))})),L),stopAutoLoad:()=>(m&&(r(S),S=void 0,m=0),L),save:async e=>(1!=T&&(T=2,await L.schedule((async()=>{try{await n(t.getContent,e)}catch(t){y?.(t)}T=0}))),L),startAutoSave:async()=>(await L.stopAutoSave().save(),g=t.addDidFinishTransactionListener(((t,e)=>{const[a,s]=e();c(a)&&c(s)||L.save((()=>[a,s]))})),L),stopAutoSave:()=>(s(g,t.delListener),g=void 0,L),schedule:async(...t)=>(((t,...e)=>{t.push(...e)})(u(p,v),...t),await(async()=>{if(!u(h,v)){for(f(h,v,1);!a((t=u(p,v),A=t.shift()));)try{await A()}catch(t){y?.(t)}f(h,v,0)}var t})(),L),getStore:()=>t,destroy:()=>L.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return d&&(L[d]=()=>w),i(L)})(t,(async()=>{const t=await fetch(o);return g=w(t),y(await t.text())}),(async t=>{return await fetch(r,{method:"POST",headers:{"Content-Type":"application/json"},body:(e=t(),JSON.stringify(e,((t,e)=>e instanceof Map?n.fromEntries([...e]):e)))});var e}),(t=>setInterval((async()=>{const e=await fetch(o,{method:"HEAD"}),s=w(e);a(g)||a(s)||s==g||(g=s,t())}),1e3*d)),(t=>e(t)),v,["getUrls",[o,r]])}},"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).TinyBasePersisterRemote={});
1
+ var t,e;t=this,e=function(t){"use strict";const e=clearInterval,a=t=>null==t,s=(t,e,s)=>a(t)?s?.():e(t),n=Object,o=t=>n.getPrototypeOf(t),r=n.keys,i=n.freeze,c=t=>(t=>!a(t)&&s(o(t),(t=>t==n.prototype||a(o(t))),(()=>!0)))(t)&&0==(t=>r(t).length)(t),y=JSON.parse,d=t=>new Map(t),l=(t,e)=>t?.get(e),u=(t,e,s)=>{return a(s)?(n=t,o=e,n?.delete(o),t):t?.set(e,s);var n,o},g=(t,e,a,s)=>{var n,o;return n=t,o=e,n?.has(o)?s?.(l(t,e)):u(t,e,a()),l(t,e)},p=d(),h=d(),f=t=>t.headers.get("ETag");t.createRemotePersister=(t,o,r,d=5,v)=>{let w;return((t,e,n,o,r,y,d,f={},v=[])=>{let w,A,C,b=0;g(p,v,(()=>0)),g(h,v,(()=>[]));const[S,T,m,L,M]=((t,e)=>!t||a(e.getMergeableContent)?[0,e.getContent,e.getTransactionChanges,([t,e])=>!c(t)||!c(e),e.setContent]:[1,e.getMergeableContent,e.getTransactionMergeableChanges,([[t],[e]])=>!c(t)||!c(e),e.setDefaultContent])(d,t),O=async t=>(2!=b&&(b=1,await P.schedule((async()=>{await t(),b=0}))),P),x=e=>{var a;(S&&(a=e?.[0],Array.isArray(a))?1===e?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},P={load:async t=>await O((async()=>{try{x(await e())}catch(e){y?.(e),t&&M(t)}})),startAutoLoad:async t=>(await P.stopAutoLoad().load(t),A=o((async(t,a)=>{const s=a?.();await O((async()=>{try{x(s??t?.()??await e())}catch(t){y?.(t)}}))})),P),stopAutoLoad:()=>(A&&(r(A),A=void 0),P),isAutoLoading:()=>!a(A),save:async t=>(1!=b&&(b=2,await P.schedule((async()=>{try{await n(T,t)}catch(t){y?.(t)}b=0}))),P),startAutoSave:async()=>(await P.stopAutoSave().save(),C=t.addDidFinishTransactionListener((()=>{const t=m();L(t)&&P.save((()=>t))})),P),stopAutoSave:()=>(s(C,t.delListener),C=void 0,P),isAutoSaving:()=>!a(C),schedule:async(...t)=>(((t,...e)=>{t.push(...e)})(l(h,v),...t),await(async()=>{if(!l(p,v)){for(u(p,v,1);!a((t=l(h,v),w=t.shift()));)try{await w()}catch(t){y?.(t)}u(p,v,0)}var t})(),P),getStore:()=>t,destroy:()=>P.stopAutoLoad().stopAutoSave(),getStats:()=>({}),...f};return i(P)})(t,(async()=>{const t=await fetch(o);return w=f(t),y(await t.text())}),(async t=>{return await fetch(r,{method:"POST",headers:{"Content-Type":"application/json"},body:(e=t(),JSON.stringify(e,((t,e)=>e instanceof Map?n.fromEntries([...e]):e)))});var e}),(t=>setInterval((async()=>{const e=await fetch(o,{method:"HEAD"}),s=f(e);a(w)||a(s)||s==w||(w=s,t())}),1e3*d)),(t=>e(t)),v,!1,{getUrls:()=>[o,r]})}},"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).TinyBasePersisterRemote={});
@@ -1 +1 @@
1
- var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",s=",",n=t(""),i=(a,t)=>a.repeat(t),o=Promise,c=clearInterval,r=a=>null==a,l=(a,t,e)=>r(a)?e?.():t(a),y=a=>t(a)==n,w=(a,t,e)=>a.slice(t,e),u=a=>a.length,d=async a=>o.all(a),E="_",p="_id",f=a=>`"${a.replace(/"/g,'""')}"`,m="SELECT",T=(a,t="")=>a.join(t),v=(a,t)=>a.map(t),A=a=>0==u(a),h=(a,t)=>a.filter(t),L=(a,...t)=>a.push(...t),R=(a,t)=>a?.has(t)??!1,O=a=>[...a?.values()??[]],N=(a,t)=>a?.delete(t),S=Object,b=a=>S.getPrototypeOf(a),D=S.keys,g=S.freeze,C=(a=[])=>S.fromEntries(a),I=(...a)=>S.assign({},...a),_=(a,t)=>v(S.entries(a),(([a,e])=>t(e,a))),M=a=>S.values(a),F=a=>u(D(a)),P=a=>(a=>!r(a)&&l(b(a),(a=>a==S.prototype||r(b(a))),(()=>!0)))(a)&&0==F(a),$=a=>new Map(a),B=a=>[...a?.keys()??[]],W=(a,t)=>a?.get(t),j=(a,t)=>v([...a?.entries()??[]],(([a,e])=>t(e,a))),x=(a,t,e)=>r(e)?(N(a,t),a):a?.set(t,e),H=(a,t,e)=>(R(a,t)||x(a,t,e()),W(a,t)),k=(a,t,e,s=x)=>(_(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!r(((a,t)=>l(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),q=a=>new Set(Array.isArray(a)||r(a)?a:[a]),Y=(a,t)=>a?.add(t),G=m+"*FROM",J="FROM pragma_table_",U="WHERE",V=(a,t,e)=>{const n=$();return[async()=>k(n,C(await d(v(await a("SELECT name "+J+"list WHERE schema='main'AND type='table'AND name IN("+K(t)+")ORDER BY name",t),(async({name:t})=>[t,C(v(await a(m+" name,type "+J+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>x(n,t,k(H(n,t,$),e,((a,t,e)=>{e!=W(a,t)&&x(a,t,e)}),((a,t)=>x(a,t))))),((a,t)=>x(n,t))),async(t,e)=>((a,t)=>!r(W(W(n,a),t)))(t,e)?C(h(v(await a(G+f(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!r(a)&&!P(t)))):{},async(t,e,i,o,c,l=!1)=>{const y=q();_(i??{},(a=>v(D(a??{}),(a=>Y(y,a)))));const w=O(y);if(!l&&c&&A(w)&&R(n,t))return await a("DROP TABLE"+f(t)),void x(n,t);if(A(w)||R(n,t)){const s=W(n,t),i=q(B(s));await d([...v(w,(async e=>{N(i,e)||(await a(`ALTER TABLE${f(t)}ADD${f(e)}`),x(s,e,""))})),...!l&&o?v(O(i),(async n=>{n!=e&&(await a(`ALTER TABLE${f(t)}DROP${f(n)}`),x(s,n))})):[]])}else await a(`CREATE TABLE${f(t)}(${f(e)} PRIMARY KEY ON CONFLICT REPLACE${T(v(w,(a=>s+f(a))))});`),x(n,t,$([[e,""],...v(w,(a=>[a,""]))]));if(l)r(i)?await a("DELETE FROM"+f(t)+"WHERE 1"):await d(_(i,(async(s,n)=>{r(s)?await a("DELETE FROM"+f(t)+U+f(e)+"=?",[n]):A(w)||await z(a,t,e,D(s),[n,...M(s)])})));else if(A(w))R(n,t)&&await a("DELETE FROM"+f(t)+"WHERE 1");else{const s=h(B(W(n,t)),(a=>a!=e)),o=[],c=[];_(i??{},((a,t)=>{L(o,t,...v(s,(t=>a?.[t]))),L(c,t)})),await z(a,t,e,s,o),await a("DELETE FROM"+f(t)+U+f(e)+"NOT IN("+K(c)+")",c)}},async t=>{let s;await a("BEGIN");try{s=await t()}catch(a){e?.(a)}return await a("END"),s}]},z=async(a,t,e,n,o)=>await a("INSERT INTO"+f(t)+"("+f(e)+T(v(n,(a=>s+f(a))))+")VALUES"+w(i(`,(?${i(",?",u(n))})`,u(o)/(u(n)+1)),1)+"ON CONFLICT("+f(e)+")DO UPDATE SET"+T(v(n,(a=>f(a)+"=excluded."+f(a))),s),o),K=a=>T(v(a,(()=>"?")),s),Q=JSON.parse,X=$(),Z=$(),aa=(a,t,e,s,n,i,[o,c]=[],y=[])=>{let w,u,d,E=0,p=0;H(X,y,(()=>0)),H(Z,y,(()=>[]));const f=async a=>(2!=E&&(E=1,await m.schedule((async()=>{await a(),E=0}))),m),m={load:async(e,s)=>await f((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(m.stopAutoLoad(),await m.load(e,n),p=1,d=s((async(e,s)=>{if(s){const t=s();await f((async()=>a.setTransactionChanges(t)))}else await f((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),m),stopAutoLoad:()=>(p&&(n(d),d=void 0,p=0),m),save:async t=>(1!=E&&(E=2,await m.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}E=0}))),m),startAutoSave:async()=>(await m.stopAutoSave().save(),w=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();P(e)&&P(s)||m.save((()=>[e,s]))})),m),stopAutoSave:()=>(l(w,a.delListener),w=void 0,m),schedule:async(...a)=>(L(W(Z,y),...a),await(async()=>{if(!W(X,y)){for(x(X,y,1);!r((a=W(Z,y),u=a.shift()));)try{await u()}catch(a){i?.(a)}x(X,y,0)}var a})(),m),getStore:()=>a,destroy:()=>m.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return o&&(m[o]=()=>c),g(m)},ta="store",ea=(a,t,e,s,n,[i],o,c)=>{const[r,l,y,w]=V(t,o,n);return aa(a,(async()=>await w((async()=>(await r(),Q((await l(i,p))[E]?.[ta]??"null"))))),(async a=>await w((async()=>{var t;await r(),await y(i,p,{[E]:{[ta]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?S.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,["getDb",c],c)},sa=(a,t,e,s,n,[i,o,[c,l,y]],w,u)=>{const[f,m,T,v]=V(t,w,n),A=async(a,t)=>await d(j(o,(async([e,s,n,i],o)=>{const c=a[o];t&&void 0===c||await T(e,s,c,n,i,t)}))),L=async(a,t)=>l?await T(y,p,{[E]:a},!0,!0,t):null;return aa(a,(async()=>await v((async()=>{await f();const a=await(async()=>C(h(await d(j(i,(async([a,t],e)=>[a,await m(e,t)]))),(a=>!P(a[1])))))(),t=await(async()=>c?(await m(y,p))[E]:{})();return P(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await v((async()=>{if(await f(),r(t)){const[t,e]=a();await A(t),await L(e)}else{const[a,e]=t();await A(a,!0),await L(e,!0)}}))),e,s,n,["getDb",u],u)},na="json",ia="autoLoadIntervalSeconds",oa="rowIdColumnName",ca="tableId",ra="tableName",la={mode:na,[ia]:1},ya={load:0,save:0,[ra]:e+"_values"},wa=(a,t,e,s)=>{const n=$();return _(a,((a,i)=>{const o=w(M(I(t,y(a)?{[e]:a}:a)),0,F(t));r(o[0])||s(i,o[0])||x(n,i,o)})),n},ua="pragma ",da="data_version",Ea="schema_version",pa=(a,t,s,n,i,o,r,l)=>{let u,d,E;const[f,T,v,A]=(a=>{const t=(a=>I(la,y(a)?{storeTableName:a}:a??{}))(a),s=t[ia];if(t.mode==na){const{storeTableName:a=e}=t;return[1,s,[a],q(a)]}const{tables:{load:n={},save:i={}}={},values:o={}}=t,c=w(M(I(ya,o)),0,F(ya)),r=c[2],l=q(r);return[0,s,[wa(n,{[ca]:null,[oa]:p},ca,(a=>Y(l,a)&&a==r)),wa(i,{[ra]:null,[oa]:p,deleteEmptyColumns:0,deleteEmptyTable:0},ra,((a,t)=>Y(l,t)&&t==r)),c],l]})(t);return(f?ea:sa)(a,o?async(a,t)=>(o(a,t),await s(a,t)):s,(a=>{return[(t=async()=>{try{const t=(await s(ua+da))[0][da],e=(await s(ua+Ea))[0][Ea],n=(await s(m+" TOTAL_CHANGES() c"))[0].c;t==(u??=t)&&e==(d??=e)&&n==(E??=n)||(a(),u=t,d=e)}catch{}},e=T,t(),setInterval(t,1e3*e)),n((t=>A.has(t)?a():0))];var t,e}),(([a,t])=>{c(a),u=d=null,i(t)}),r,v,O(A),l)};a.createSqliteWasmPersister=(a,t,e,s,n,i)=>pa(a,s,(async(a,t=[])=>e.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}).map((a=>({...a})))),(a=>t.capi.sqlite3_update_hook(e,((t,e,s,n)=>a(n)),0)),(()=>t.capi.sqlite3_update_hook(e,(()=>0),0)),n,i,e)},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterSqliteWasm={});
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="_",m="_id",g=a=>`"${a.replace(/"/g,'""')}"`,v="SELECT",h=(a,t="")=>a.join(t),A=(a,t)=>a.map(t),T=a=>0==p(a),C=(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),R=Object,S=a=>R.getPrototypeOf(a),D=R.entries,I=R.keys,M=R.freeze,_=(a=[])=>R.fromEntries(a),P=(...a)=>R.assign({},...a),F=(a,t)=>t in a,j=(a,t)=>A(D(a),(([a,e])=>t(e,a))),x=a=>R.values(a),k=a=>p(I(a)),q=a=>(a=>!l(a)&&y(S(a),(a=>a==R.prototype||l(S(a))),(()=>!0)))(a)&&0==k(a),B=a=>new Map(a),W=a=>[...a?.keys()??[]],H=(a,t)=>a?.get(t),Y=(a,t)=>A([...a?.entries()??[]],(([a,e])=>t(e,a))),$=(a,t,e)=>l(e)?(L(a,t),a):a?.set(t,e),G=(a,t,e,n)=>(N(a,t)?n?.(H(a,t)):$(a,t,e()),H(a,t)),J=(a,t,e,n=$)=>(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),U=a=>new Set(u(a)||l(a)?a:[a]),V=(a,t)=>a?.add(t),z="TABLE",K="ALTER "+z,Q="DELETE FROM",X=v+"*FROM",Z="FROM pragma_table_",aa="WHERE",ta=(a,t,e,i)=>{const o=B();return[async()=>J(o,_(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,_(A(await a(v+" name,type "+Z+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>$(o,t,J(G(o,t,B),e,((a,t,e)=>{e!=H(a,t)&&$(a,t,e)}),((a,t)=>$(a,t))))),((a,t)=>$(o,t))),async(t,e)=>((a,t)=>!l(H(H(o,a),t)))(t,e)?_(C(A(await a(X+g(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,c,r,y,w=!1)=>{const u=U();j(c??{},(a=>A(I(a??{}),(a=>V(u,a)))));const d=O(u);if(!w&&y&&T(d)&&N(o,t))return await a("DROP "+z+g(t)),void $(o,t);if(T(d)||N(o,t)){const s=H(o,t),i=U(W(s));await E([...A(d,(async e=>{L(i,e)||(await a(K+g(t)+"ADD"+g(e)),$(s,e,n))})),...!w&&r?A(O(i),(async n=>{n!=e&&(await a(K+g(t)+"DROP"+g(n)),$(s,n))})):[]])}else await a("CREATE "+z+g(t)+"("+g(e)+` PRIMARY KEY ON CONFLICT REPLACE${h(A(d,(a=>s+g(a))))});`),$(o,t,B([[e,n],...A(d,(a=>[a,n]))]));if(w)l(c)?await a(Q+g(t)+aa+" 1"):await E(j(c,(async(n,s)=>{l(n)?await a(Q+g(t)+aa+g(e)+"=?",[s]):T(d)||await ea(a,t,e,I(n),[s,...x(n)],i)})));else if(T(d))N(o,t)&&await a(Q+g(t)+aa+" 1");else{const n=C(W(H(o,t)),(a=>a!=e)),s=[],r=[];j(c??{},((a,t)=>{b(s,t,...A(n,(t=>a?.[t]))),b(r,t)})),await ea(a,t,e,n,s,i),await a(Q+g(t)+aa+g(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"+g(t)+"("+g(e)+h(A(i,(a=>s+g(a))))+")VALUES"+d(o(`,(?${o(",?",p(i))})`,p(c)/(p(i)+1)),1)+(r?"ON CONFLICT("+g(e)+")DO UPDATE SET"+h(A(i,(a=>g(a)+"=excluded."+g(a))),s):n),A(c,(a=>a??null))),na=a=>h(A(a,(()=>"?")),s),sa=JSON.parse,ia=B(),oa=B(),ca=(a,t,e,n,s,i,o,c={},r=[])=>{let w,d,p,E=0;G(ia,r,(()=>0)),G(oa,r,(()=>[]));const[f,m,g,v,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!=E&&(E=1,await C.schedule((async()=>{await a(),E=0}))),C),T=t=>{(f&&u(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},C={load:async a=>await A((async()=>{try{T(await t())}catch(t){i?.(t),a&&h(a)}})),startAutoLoad:async a=>(await C.stopAutoLoad().load(a),d=n((async(a,e)=>{const n=e?.();await A((async()=>{try{T(n??a?.()??await t())}catch(a){i?.(a)}}))})),C),stopAutoLoad:()=>(d&&(s(d),d=void 0),C),isAutoLoading:()=>!l(d),save:async a=>(1!=E&&(E=2,await C.schedule((async()=>{try{await e(m,a)}catch(a){i?.(a)}E=0}))),C),startAutoSave:async()=>(await C.stopAutoSave().save(),p=a.addDidFinishTransactionListener((()=>{const a=g();v(a)&&C.save((()=>a))})),C),stopAutoSave:()=>(y(p,a.delListener),p=void 0,C),isAutoSaving:()=>!l(p),schedule:async(...a)=>(b(H(oa,r),...a),await(async()=>{if(!H(ia,r)){for($(ia,r,1);!l((a=H(oa,r),w=a.shift()));)try{await w()}catch(a){i?.(a)}$(ia,r,0)}var a})(),C),getStore:()=>a,destroy:()=>C.stopAutoLoad().stopAutoSave(),getStats:()=>({}),...c};return M(C)},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,m))[f]?.[ra]??"null"))))),(async a=>await d((async()=>{var t;await y(),await u(i,m,{[f]:{[ra]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?R.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[g,v,h,A]=ta(t,w,s,p),T=async(a,t)=>await E(Y(o,(async([e,n,s,i],o)=>{t&&!F(a,o)||await h(e,n,a[o],s,i,t)}))),b=async(a,t)=>r?await h(y,m,{[f]:a},!0,!0,t):null;return ca(a,(async()=>await A((async()=>{await g();const a=await(async()=>_(C(await E(Y(i,(async([a,t],e)=>[a,await v(e,t)]))),(a=>!q(a[1])))))(),t=await(async()=>c?(await v(y,m))[f]:{})();return q(a)&&l(t)?void 0:[a,t]}))),(async(a,t)=>await A((async()=>{if(await g(),l(t)){const[t,e]=a();await T(t),await b(e)}else{const[a,e]=t();await T(a,!0),await b(e,!0)}}))),e,n,s,!1,{[d]:()=>u},u)},wa="json",ua="autoLoadIntervalSeconds",da="rowIdColumnName",pa="tableId",Ea="tableName",fa={mode:wa,[ua]:1},ma={load:0,save:0,[Ea]:e+"_values"},ga=(a,t,e,n)=>{const s=B();return j(a,((a,i)=>{const o=d(x(P(t,w(a)?{[e]:a}:a)),0,k(t));l(o[0])||n(i,o[0])||$(s,i,o)})),s},va="pragma ",ha="data_version",Aa="schema_version",Ta=(a,t,n,s,i,o,c,l,y="getDb",u)=>{let p,E,f;const[g,h,A,T]=(a=>{const t=(a=>P(fa,w(a)?{storeTableName:a}:a??{}))(a),n=t[ua];if(t.mode==wa){const{storeTableName:a=e}=t;return[1,n,[a],U(a)]}const{tables:{load:s={},save:i={}}={},values:o={}}=t,c=d(x(P(ma,o)),0,k(ma)),r=c[2],l=U(r);return[0,n,[ga(s,{[pa]:null,[da]:m},pa,(a=>V(l,a)&&a==r)),ga(i,{[Ea]:null,[da]:m,deleteEmptyColumns:0,deleteEmptyTable:0},Ea,((a,t)=>V(l,t)&&t==r)),c],l]})(t);return(g?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=>T.has(t)?a():0))];var t,e}),(([a,t])=>{r(a),p=E=null,i(t)}),c,A,O(T),l,y,u)};a.createSqliteWasmPersister=(a,t,e,n,s,i)=>Ta(a,n,(async(a,t=[])=>e.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}).map((a=>({...a})))),(a=>t.capi.sqlite3_update_hook(e,((t,e,n,s)=>a(s)),0)),(()=>t.capi.sqlite3_update_hook(e,(()=>0),0)),s,i,e)},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterSqliteWasm={});
@@ -1 +1 @@
1
- var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",s=",",n=t(""),i=(a,t)=>a.repeat(t),o=Promise,c=clearInterval,r=a=>null==a,l=(a,t,e)=>r(a)?e?.():t(a),y=a=>t(a)==n,w=(a,t,e)=>a.slice(t,e),u=a=>a.length,E=async a=>o.all(a),d="_",f="_id",p=a=>`"${a.replace(/"/g,'""')}"`,T="SELECT",v=(a,t="")=>a.join(t),m=(a,t)=>a.map(t),A=a=>0==u(a),L=(a,t)=>a.filter(t),h=(a,...t)=>a.push(...t),O=(a,t)=>a?.has(t)??!1,R=a=>[...a?.values()??[]],N=(a,t)=>a?.delete(t),S=Object,g=a=>S.getPrototypeOf(a),D=S.keys,C=S.freeze,b=(a=[])=>S.fromEntries(a),I=(...a)=>S.assign({},...a),F=(a,t)=>m(S.entries(a),(([a,e])=>t(e,a))),M=a=>S.values(a),P=a=>u(D(a)),$=a=>(a=>!r(a)&&l(g(a),(a=>a==S.prototype||r(g(a))),(()=>!0)))(a)&&0==P(a),_=a=>new Map(a),B=a=>[...a?.keys()??[]],H=(a,t)=>a?.get(t),j=(a,t)=>m([...a?.entries()??[]],(([a,e])=>t(e,a))),x=(a,t,e)=>r(e)?(N(a,t),a):a?.set(t,e),W=(a,t,e)=>(O(a,t)||x(a,t,e()),H(a,t)),Y=(a,t,e,s=x)=>(F(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!r(((a,t)=>l(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),k=a=>new Set(Array.isArray(a)||r(a)?a:[a]),q=(a,t)=>a?.add(t),G=T+"*FROM",J="FROM pragma_table_",U="WHERE",z=(a,t,e)=>{const n=_();return[async()=>Y(n,b(await E(m(await a("SELECT name "+J+"list WHERE schema='main'AND type='table'AND name IN("+V(t)+")ORDER BY name",t),(async({name:t})=>[t,b(m(await a(T+" name,type "+J+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>x(n,t,Y(W(n,t,_),e,((a,t,e)=>{e!=H(a,t)&&x(a,t,e)}),((a,t)=>x(a,t))))),((a,t)=>x(n,t))),async(t,e)=>((a,t)=>!r(H(H(n,a),t)))(t,e)?b(L(m(await a(G+p(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!r(a)&&!$(t)))):{},async(t,e,i,o,c,l=!1)=>{const y=k();F(i??{},(a=>m(D(a??{}),(a=>q(y,a)))));const w=R(y);if(!l&&c&&A(w)&&O(n,t))return await a("DROP TABLE"+p(t)),void x(n,t);if(A(w)||O(n,t)){const s=H(n,t),i=k(B(s));await E([...m(w,(async e=>{N(i,e)||(await a(`ALTER TABLE${p(t)}ADD${p(e)}`),x(s,e,""))})),...!l&&o?m(R(i),(async n=>{n!=e&&(await a(`ALTER TABLE${p(t)}DROP${p(n)}`),x(s,n))})):[]])}else await a(`CREATE TABLE${p(t)}(${p(e)} PRIMARY KEY ON CONFLICT REPLACE${v(m(w,(a=>s+p(a))))});`),x(n,t,_([[e,""],...m(w,(a=>[a,""]))]));if(l)r(i)?await a("DELETE FROM"+p(t)+"WHERE 1"):await E(F(i,(async(s,n)=>{r(s)?await a("DELETE FROM"+p(t)+U+p(e)+"=?",[n]):A(w)||await K(a,t,e,D(s),[n,...M(s)])})));else if(A(w))O(n,t)&&await a("DELETE FROM"+p(t)+"WHERE 1");else{const s=L(B(H(n,t)),(a=>a!=e)),o=[],c=[];F(i??{},((a,t)=>{h(o,t,...m(s,(t=>a?.[t]))),h(c,t)})),await K(a,t,e,s,o),await a("DELETE FROM"+p(t)+U+p(e)+"NOT IN("+V(c)+")",c)}},async t=>{let s;await a("BEGIN");try{s=await t()}catch(a){e?.(a)}return await a("END"),s}]},K=async(a,t,e,n,o)=>await a("INSERT INTO"+p(t)+"("+p(e)+v(m(n,(a=>s+p(a))))+")VALUES"+w(i(`,(?${i(",?",u(n))})`,u(o)/(u(n)+1)),1)+"ON CONFLICT("+p(e)+")DO UPDATE SET"+v(m(n,(a=>p(a)+"=excluded."+p(a))),s),o),V=a=>v(m(a,(()=>"?")),s),Q=JSON.parse,X=_(),Z=_(),aa=(a,t,e,s,n,i,[o,c]=[],y=[])=>{let w,u,E,d=0,f=0;W(X,y,(()=>0)),W(Z,y,(()=>[]));const p=async a=>(2!=d&&(d=1,await T.schedule((async()=>{await a(),d=0}))),T),T={load:async(e,s)=>await p((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(T.stopAutoLoad(),await T.load(e,n),f=1,E=s((async(e,s)=>{if(s){const t=s();await p((async()=>a.setTransactionChanges(t)))}else await p((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),T),stopAutoLoad:()=>(f&&(n(E),E=void 0,f=0),T),save:async t=>(1!=d&&(d=2,await T.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}d=0}))),T),startAutoSave:async()=>(await T.stopAutoSave().save(),w=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();$(e)&&$(s)||T.save((()=>[e,s]))})),T),stopAutoSave:()=>(l(w,a.delListener),w=void 0,T),schedule:async(...a)=>(h(H(Z,y),...a),await(async()=>{if(!H(X,y)){for(x(X,y,1);!r((a=H(Z,y),u=a.shift()));)try{await u()}catch(a){i?.(a)}x(X,y,0)}var a})(),T),getStore:()=>a,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return o&&(T[o]=()=>c),C(T)},ta="store",ea=(a,t,e,s,n,[i],o,c)=>{const[r,l,y,w]=z(t,o,n);return aa(a,(async()=>await w((async()=>(await r(),Q((await l(i,f))[d]?.[ta]??"null"))))),(async a=>await w((async()=>{var t;await r(),await y(i,f,{[d]:{[ta]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?S.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,["getDb",c],c)},sa=(a,t,e,s,n,[i,o,[c,l,y]],w,u)=>{const[p,T,v,m]=z(t,w,n),A=async(a,t)=>await E(j(o,(async([e,s,n,i],o)=>{const c=a[o];t&&void 0===c||await v(e,s,c,n,i,t)}))),h=async(a,t)=>l?await v(y,f,{[d]:a},!0,!0,t):null;return aa(a,(async()=>await m((async()=>{await p();const a=await(async()=>b(L(await E(j(i,(async([a,t],e)=>[a,await T(e,t)]))),(a=>!$(a[1])))))(),t=await(async()=>c?(await T(y,f))[d]:{})();return $(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await m((async()=>{if(await p(),r(t)){const[t,e]=a();await A(t),await h(e)}else{const[a,e]=t();await A(a,!0),await h(e,!0)}}))),e,s,n,["getDb",u],u)},na="json",ia="autoLoadIntervalSeconds",oa="rowIdColumnName",ca="tableId",ra="tableName",la={mode:na,[ia]:1},ya={load:0,save:0,[ra]:e+"_values"},wa=(a,t,e,s)=>{const n=_();return F(a,((a,i)=>{const o=w(M(I(t,y(a)?{[e]:a}:a)),0,P(t));r(o[0])||s(i,o[0])||x(n,i,o)})),n},ua="pragma ",Ea="data_version",da="schema_version",fa=(a,t,s,n,i,o,r,l)=>{let u,E,d;const[p,v,m,A]=(a=>{const t=(a=>I(la,y(a)?{storeTableName:a}:a??{}))(a),s=t[ia];if(t.mode==na){const{storeTableName:a=e}=t;return[1,s,[a],k(a)]}const{tables:{load:n={},save:i={}}={},values:o={}}=t,c=w(M(I(ya,o)),0,P(ya)),r=c[2],l=k(r);return[0,s,[wa(n,{[ca]:null,[oa]:f},ca,(a=>q(l,a)&&a==r)),wa(i,{[ra]:null,[oa]:f,deleteEmptyColumns:0,deleteEmptyTable:0},ra,((a,t)=>q(l,t)&&t==r)),c],l]})(t);return(p?ea:sa)(a,o?async(a,t)=>(o(a,t),await s(a,t)):s,(a=>{return[(t=async()=>{try{const t=(await s(ua+Ea))[0][Ea],e=(await s(ua+da))[0][da],n=(await s(T+" TOTAL_CHANGES() c"))[0].c;t==(u??=t)&&e==(E??=e)&&n==(d??=n)||(a(),u=t,E=e)}catch{}},e=v,t(),setInterval(t,1e3*e)),n((t=>A.has(t)?a():0))];var t,e}),(([a,t])=>{c(a),u=E=null,i(t)}),r,m,R(A),l)},pa="change";a.createSqlite3Persister=(a,t,e,s,n)=>fa(a,e,(async(a,e=[])=>{return await(s=(s,n)=>t.all(a,e,((a,t)=>a?n(a):s(t))),new o(s));var s}),(a=>{const e=(t,e,s)=>a(s);return t.on(pa,e),e}),(a=>t.off(pa,a)),s,n,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).TinyBasePersisterSqlite3={});
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),p=a=>a.length,f=async a=>r.all(a),E="_",g="_id",v=a=>`"${a.replace(/"/g,'""')}"`,m="SELECT",h=(a,t="")=>a.join(t),A=(a,t)=>a.map(t),T=a=>0==p(a),C=(a,t)=>a.filter(t),N=(a,...t)=>a.push(...t),O=(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,j=(a,t)=>A(D(a),(([a,e])=>t(e,a))),x=a=>S.values(a),B=a=>p(I(a)),H=a=>(a=>!l(a)&&y(R(a),(a=>a==S.prototype||l(R(a))),(()=>!0)))(a)&&0==B(a),Y=a=>new Map(a),$=a=>[...a?.keys()??[]],k=(a,t)=>a?.get(t),q=(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)=>(O(a,t)?n?.(k(a,t)):G(a,t,e()),k(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=Y();return[async()=>U(o,P(await f(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,Y),e,((a,t,e)=>{e!=k(a,t)&&G(a,t,e)}),((a,t)=>G(a,t))))),((a,t)=>G(o,t))),async(t,e)=>((a,t)=>!l(k(k(o,a),t)))(t,e)?P(C(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)&&!H(t)))):{},async(t,e,r,c,y,w=!1)=>{const u=W();j(r??{},(a=>A(I(a??{}),(a=>z(u,a)))));const d=b(u);if(!w&&y&&T(d)&&O(o,t))return await a("DROP "+K+v(t)),void G(o,t);if(T(d)||O(o,t)){const s=k(o,t),i=W($(s));await f([...A(d,(async e=>{L(i,e)||(await a(V+v(t)+"ADD"+v(e)),G(s,e,n))})),...!w&&c?A(b(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,Y([[e,n],...A(d,(a=>[a,n]))]));if(w)l(r)?await a(Q+v(t)+aa+" 1"):await f(j(r,(async(n,s)=>{l(n)?await a(Q+v(t)+aa+v(e)+"=?",[s]):T(d)||await ea(a,t,e,I(n),[s,...x(n)],i)})));else if(T(d))O(o,t)&&await a(Q+v(t)+aa+" 1");else{const n=C($(k(o,t)),(a=>a!=e)),s=[],c=[];j(r??{},((a,t)=>{N(s,t,...A(n,(t=>a?.[t]))),N(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(",?",p(i))})`,p(r)/(p(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=Y(),oa=Y(),ra=(a,t,e,n,s,i,o,r={},c=[])=>{let w,d,p,f=0;J(ia,c,(()=>0)),J(oa,c,(()=>[]));const[E,g,v,m,h]=((a,t)=>!a||l(t.getMergeableContent)?[0,t.getContent,t.getTransactionChanges,([a,t])=>!H(a)||!H(t),t.setContent]:[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!H(a)||!H(t),t.setDefaultContent])(o,a),A=async a=>(2!=f&&(f=1,await C.schedule((async()=>{await a(),f=0}))),C),T=t=>{(E&&u(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},C={load:async a=>await A((async()=>{try{T(await t())}catch(t){i?.(t),a&&h(a)}})),startAutoLoad:async a=>(await C.stopAutoLoad().load(a),d=n((async(a,e)=>{const n=e?.();await A((async()=>{try{T(n??a?.()??await t())}catch(a){i?.(a)}}))})),C),stopAutoLoad:()=>(d&&(s(d),d=void 0),C),isAutoLoading:()=>!l(d),save:async a=>(1!=f&&(f=2,await C.schedule((async()=>{try{await e(g,a)}catch(a){i?.(a)}f=0}))),C),startAutoSave:async()=>(await C.stopAutoSave().save(),p=a.addDidFinishTransactionListener((()=>{const a=v();m(a)&&C.save((()=>a))})),C),stopAutoSave:()=>(y(p,a.delListener),p=void 0,C),isAutoSaving:()=>!l(p),schedule:async(...a)=>(N(k(oa,c),...a),await(async()=>{if(!k(ia,c)){for(G(ia,c,1);!l((a=k(oa,c),w=a.shift()));)try{await w()}catch(a){i?.(a)}G(ia,c,0)}var a})(),C),getStore:()=>a,destroy:()=>C.stopAutoLoad().stopAutoSave(),getStats:()=>({}),...r};return M(C)},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))[E]?.[ca]??"null"))))),(async a=>await d((async()=>{var t;await y(),await u(i,g,{[E]:{[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,p)=>{const[v,m,h,A]=ta(t,w,s,p),T=async(a,t)=>await f(q(o,(async([e,n,s,i],o)=>{t&&!F(a,o)||await h(e,n,a[o],s,i,t)}))),N=async(a,t)=>c?await h(y,g,{[E]:a},!0,!0,t):null;return ra(a,(async()=>await A((async()=>{await v();const a=await(async()=>P(C(await f(q(i,(async([a,t],e)=>[a,await m(e,t)]))),(a=>!H(a[1])))))(),t=await(async()=>r?(await m(y,g))[E]:{})();return H(a)&&l(t)?void 0:[a,t]}))),(async(a,t)=>await A((async()=>{if(await v(),l(t)){const[t,e]=a();await T(t),await N(e)}else{const[a,e]=t();await T(a,!0),await N(e,!0)}}))),e,n,s,!1,{[d]:()=>u},u)},wa="json",ua="autoLoadIntervalSeconds",da="rowIdColumnName",pa="tableId",fa="tableName",Ea={mode:wa,[ua]:1},ga={load:0,save:0,[fa]:e+"_values"},va=(a,t,e,n)=>{const s=Y();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",Ta=(a,t,n,s,i,o,r,l,y="getDb",u)=>{let p,f,E;const[v,h,A,T]=(a=>{const t=(a=>_(Ea,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,{[pa]:null,[da]:g},pa,(a=>z(l,a)&&a==c)),va(i,{[fa]:null,[da]:g,deleteEmptyColumns:0,deleteEmptyTable:0},fa,((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==(p??=t)&&e==(f??=e)&&s==(E??=s)||(a(),p=t,f=e)}catch{}},e=h,t(),setInterval(t,1e3*e)),s((t=>T.has(t)?a():0))];var t,e}),(([a,t])=>{c(a),p=f=null,i(t)}),r,A,b(T),l,y,u)},Ca="change";a.createSqlite3Persister=(a,t,e,n,s)=>Ta(a,e,(async(a,e=[])=>{return await(n=(n,s)=>t.all(a,e,((a,t)=>a?s(a):n(t))),new r(n));var n}),(a=>{const e=(t,e,n)=>a(n);return t.on(Ca,e),e}),(a=>t.off(Ca,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).TinyBasePersisterSqlite3={});
@@ -1 +1 @@
1
- var t,e;t=this,e=function(t,e){"use strict";const a="t",s="v",n=t=>null==t,o=(t,e,a)=>n(t)?a?.():e(t),r=t=>t.length,i=t=>t.shift(),c=Object,d=t=>c.getPrototypeOf(t),l=c.keys,u=c.freeze,y=(t=[])=>c.fromEntries(t),g=(t,e)=>!n(((t,e)=>o(t,(t=>t[e])))(t,e)),p=(t,e)=>((t,e)=>t.map(e))(c.entries(t),(([t,a])=>e(a,t))),f=t=>(t=>!n(t)&&o(d(t),(t=>t==c.prototype||n(d(t))),(()=>!0)))(t)&&0==(t=>r(l(t)))(t),h=(t,e,a)=>(g(t,e)||(t[e]=a()),t[e]),v=t=>new Map(t),w=(t,e)=>t?.get(e),S=(t,e)=>((t,e)=>t?.forEach(e))(t,((t,a)=>e(a,t))),A=(t,e,a)=>{return n(a)?(s=t,o=e,s?.delete(o),t):t?.set(e,a);var s,o},O=(t,e,a)=>{var s,n;return s=t,n=e,s?.has(n)||A(t,e,a()),w(t,e)},b=v(),j=v(),J="delete",L=t=>[t.get(a),t.get(s)],N=(t,a,s,o)=>{const r=n(a)?t:t.get(a)??t.set(a,new e.Map);let i;return p(s,((t,e)=>{o(r,e,t)&&(i=1)})),r.forEach(((t,e)=>{g(s,e)||(r.delete(e),i=1)})),n(a)||r.size||t.delete(a),i};t.createYjsPersister=(t,c,d="tinybase",l)=>{const g=c.getMap(d);return((t,e,a,s,r,c,[d,l]=[],y=[])=>{let g,p,h,v=0,S=0;O(b,y,(()=>0)),O(j,y,(()=>[]));const J=async t=>(2!=v&&(v=1,await L.schedule((async()=>{await t(),v=0}))),L),L={load:async(a,s)=>await J((async()=>{try{t.setContent(await e())}catch{t.setContent([a,s])}})),startAutoLoad:async(a={},n={})=>(L.stopAutoLoad(),await L.load(a,n),S=1,h=s((async(a,s)=>{if(s){const e=s();await J((async()=>t.setTransactionChanges(e)))}else await J((async()=>{try{t.setContent(a?.()??await e())}catch(t){c?.(t)}}))})),L),stopAutoLoad:()=>(S&&(r(h),h=void 0,S=0),L),save:async e=>(1!=v&&(v=2,await L.schedule((async()=>{try{await a(t.getContent,e)}catch(t){c?.(t)}v=0}))),L),startAutoSave:async()=>(await L.stopAutoSave().save(),g=t.addDidFinishTransactionListener(((t,e)=>{const[a,s]=e();f(a)&&f(s)||L.save((()=>[a,s]))})),L),stopAutoSave:()=>(o(g,t.delListener),g=void 0,L),schedule:async(...t)=>(((t,...e)=>{t.push(...e)})(w(j,y),...t),await(async()=>{if(!w(b,y)){for(A(b,y,1);!n(p=i(w(j,y)));)try{await p()}catch(t){c?.(t)}A(b,y,0)}})(),L),getStore:()=>t,destroy:()=>L.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return d&&(L[d]=()=>l),u(L)})(t,(async()=>g.size?[g.get(a).toJSON(),g.get(s).toJSON()]:void 0),(async(t,r)=>c.transact((()=>((t,r,i)=>{t.size||(t.set(a,new e.Map),t.set(s,new e.Map));const[c,d]=L(t),l=()=>{u=1};let u=1;if(o(i?.(),(([t,e])=>{u=0,p(t,((t,e)=>u?0:n(t)?c.delete(e):o(c.get(e),(e=>p(t,((t,a)=>u?0:n(t)?e.delete(a):o(e.get(a),(e=>p(t,((t,a)=>n(t)?e.delete(a):e.set(a,t)))),l)))),l))),p(e,((t,e)=>u?0:n(t)?d.delete(e):d.set(e,t)))})),u){const[t,e]=r();N(c,void 0,t,((t,e,a)=>N(c,e,a,((t,e,a)=>N(t,e,a,((t,e,a)=>{if(t.get(e)!==a)return t.set(e,a),1})))))),N(d,void 0,e,((t,e,a)=>{d.get(e)!==a&&d.set(e,a)}))}})(g,t,r)))),(t=>{const e=e=>t(void 0,(()=>((t,e)=>{if(1==r(e)&&(n=e[0].path,0==r(n)))return[t.get(a).toJSON(),t.get(s).toJSON()];var n;const[c,d]=L(t),l={},u={};return((t,e)=>{t.forEach((({path:t,changes:{keys:e}})=>i(t)==a?o(i(t),(a=>{const s=h(l,a,y),n=c.get(a);o(i(t),(t=>{const a=h(s,t,y),o=n.get(t);S(e,((t,{action:e})=>a[t]=e==J?null:o.get(t)))}),(()=>S(e,((t,{action:e})=>s[t]=e==J?null:n.get(t)?.toJSON()))))}),(()=>S(e,((t,{action:e})=>l[t]=e==J?null:c.get(t)?.toJSON())))):S(e,((t,{action:e})=>u[t]=e==J?null:d.get(t)))))})(e),[l,u]})(g,e)));return g.observeDeep(e),e}),(t=>{g.unobserveDeep(t)}),l,["getYDoc",c])}},"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("yjs")):"function"==typeof define&&define.amd?define(["exports","yjs"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).TinyBasePersisterYjs={},t.yjs);
1
+ var e,t;e=this,t=function(e,t){"use strict";const a="t",s="v",n=e=>null==e,o=(e,t,a)=>n(e)?a?.():t(e),r=e=>e.length,i=e=>e.shift(),c=Object,g=e=>c.getPrototypeOf(e),l=c.entries,d=c.keys,u=c.freeze,y=(e=[])=>c.fromEntries(e),p=(e,t)=>t in e,f=(e,t)=>((e,t)=>e.map(t))(l(e),(([e,a])=>t(a,e))),h=e=>(e=>!n(e)&&o(g(e),(e=>e==c.prototype||n(g(e))),(()=>!0)))(e)&&0==(e=>r(d(e)))(e),v=(e,t,a)=>(p(e,t)||(e[t]=a()),e[t]),w=e=>new Map(e),S=(e,t)=>e?.get(t),b=(e,t)=>((e,t)=>e?.forEach(t))(e,((e,a)=>t(a,e))),A=(e,t,a)=>{return n(a)?(s=e,o=t,s?.delete(o),e):e?.set(t,a);var s,o},C=(e,t,a,s)=>{var n,o;return n=e,o=t,n?.has(o)?s?.(S(e,t)):A(e,t,a()),S(e,t)},M=w(),O=w(),j="delete",L=e=>[e.get(a),e.get(s)],J=(e,a,s,o)=>{const r=n(a)?e:e.get(a)??e.set(a,new t.Map);let i;return f(s,((e,t)=>{o(r,t,e)&&(i=1)})),r.forEach(((e,t)=>{p(s,t)||(r.delete(t),i=1)})),n(a)||r.size||e.delete(a),i};e.createYjsPersister=(e,c,g="tinybase",l)=>{const d=c.getMap(g);return((e,t,a,s,r,c,g,l={},d=[])=>{let y,p,f,v=0;C(M,d,(()=>0)),C(O,d,(()=>[]));const[w,b,j,L,J]=((e,t)=>!e||n(t.getMergeableContent)?[0,t.getContent,t.getTransactionChanges,([e,t])=>!h(e)||!h(t),t.setContent]:[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[e],[t]])=>!h(e)||!h(t),t.setDefaultContent])(g,e),N=async e=>(2!=v&&(v=1,await D.schedule((async()=>{await e(),v=0}))),D),T=t=>{var a;(w&&(a=t?.[0],Array.isArray(a))?1===t?.[2]?e.applyMergeableChanges:e.setMergeableContent:1===t?.[2]?e.applyChanges:e.setContent)(t)},D={load:async e=>await N((async()=>{try{T(await t())}catch(t){c?.(t),e&&J(e)}})),startAutoLoad:async e=>(await D.stopAutoLoad().load(e),p=s((async(e,a)=>{const s=a?.();await N((async()=>{try{T(s??e?.()??await t())}catch(e){c?.(e)}}))})),D),stopAutoLoad:()=>(p&&(r(p),p=void 0),D),isAutoLoading:()=>!n(p),save:async e=>(1!=v&&(v=2,await D.schedule((async()=>{try{await a(b,e)}catch(e){c?.(e)}v=0}))),D),startAutoSave:async()=>(await D.stopAutoSave().save(),f=e.addDidFinishTransactionListener((()=>{const e=j();L(e)&&D.save((()=>e))})),D),stopAutoSave:()=>(o(f,e.delListener),f=void 0,D),isAutoSaving:()=>!n(f),schedule:async(...e)=>(((e,...t)=>{e.push(...t)})(S(O,d),...e),await(async()=>{if(!S(M,d)){for(A(M,d,1);!n(y=i(S(O,d)));)try{await y()}catch(e){c?.(e)}A(M,d,0)}})(),D),getStore:()=>e,destroy:()=>D.stopAutoLoad().stopAutoSave(),getStats:()=>({}),...l};return u(D)})(e,(async()=>d.size?[d.get(a).toJSON(),d.get(s).toJSON()]:void 0),(async(e,r)=>c.transact((()=>((e,r,i)=>{e.size||(e.set(a,new t.Map),e.set(s,new t.Map));const[c,g]=L(e),l=()=>{d=1};let d=1;if(o(i?.(),(([e,t])=>{d=0,f(e,((e,t)=>d?0:n(e)?c.delete(t):o(c.get(t),(t=>f(e,((e,a)=>d?0:n(e)?t.delete(a):o(t.get(a),(t=>f(e,((e,a)=>n(e)?t.delete(a):t.set(a,e)))),l)))),l))),f(t,((e,t)=>d?0:n(e)?g.delete(t):g.set(t,e)))})),d){const[e,t]=r();J(c,void 0,e,((e,t,a)=>J(c,t,a,((e,t,a)=>J(e,t,a,((e,t,a)=>{if(e.get(t)!==a)return e.set(t,a),1})))))),J(g,void 0,t,((e,t,a)=>{g.get(t)!==a&&g.set(t,a)}))}})(d,e,r)))),(e=>{const t=t=>e(void 0,(()=>((e,t)=>{if(1==r(t)&&(n=t[0].path,0==r(n)))return[e.get(a).toJSON(),e.get(s).toJSON(),1];var n;const[c,g]=L(e),l={},d={};return((e,t)=>{e.forEach((({path:e,changes:{keys:t}})=>i(e)==a?o(i(e),(a=>{const s=v(l,a,y),n=c.get(a);o(i(e),(e=>{const a=v(s,e,y),o=n.get(e);b(t,((e,{action:t})=>a[e]=t==j?null:o.get(e)))}),(()=>b(t,((e,{action:t})=>s[e]=t==j?null:n.get(e)?.toJSON()))))}),(()=>b(t,((e,{action:t})=>l[e]=t==j?null:c.get(e)?.toJSON())))):b(t,((e,{action:t})=>d[e]=t==j?null:g.get(e)))))})(t),[l,d,1]})(d,t)));return d.observeDeep(t),t}),(e=>{d.unobserveDeep(e)}),l,!1,{getYDoc:()=>c})}},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("yjs")):"function"==typeof define&&define.amd?define(["exports","yjs"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBasePersisterYjs={},e.yjs);
@@ -1 +1 @@
1
- var t,e;t=this,e=function(t){"use strict";const e=t=>null==t,a=(t,a,s)=>e(t)?s?.():a(t),s=Object,o=t=>s.getPrototypeOf(t),n=s.keys,i=s.freeze,c=t=>(t=>!e(t)&&a(o(t),(t=>t==s.prototype||e(o(t))),(()=>!0)))(t)&&0==(t=>n(t).length)(t),r=t=>new Map(t),d=(t,e)=>t?.get(e),y=(t,a,s)=>{return e(s)?(o=t,n=a,o?.delete(n),t):t?.set(a,s);var o,n},u=(t,e,a)=>{var s,o;return s=t,o=e,s?.has(o)||y(t,e,a()),d(t,e)},f=r(),l=r();t.createCustomPersister=(t,s,o,n,r,p,[h,w]=[],v=[])=>{let g,A,C,L=0,S=0;u(f,v,(()=>0)),u(l,v,(()=>[]));const T=async t=>(2!=L&&(L=1,await b.schedule((async()=>{await t(),L=0}))),b),b={load:async(e,a)=>await T((async()=>{try{t.setContent(await s())}catch{t.setContent([e,a])}})),startAutoLoad:async(e={},a={})=>(b.stopAutoLoad(),await b.load(e,a),S=1,C=n((async(e,a)=>{if(a){const e=a();await T((async()=>t.setTransactionChanges(e)))}else await T((async()=>{try{t.setContent(e?.()??await s())}catch(t){p?.(t)}}))})),b),stopAutoLoad:()=>(S&&(r(C),C=void 0,S=0),b),save:async e=>(1!=L&&(L=2,await b.schedule((async()=>{try{await o(t.getContent,e)}catch(t){p?.(t)}L=0}))),b),startAutoSave:async()=>(await b.stopAutoSave().save(),g=t.addDidFinishTransactionListener(((t,e)=>{const[a,s]=e();c(a)&&c(s)||b.save((()=>[a,s]))})),b),stopAutoSave:()=>(a(g,t.delListener),g=void 0,b),schedule:async(...t)=>(((t,...e)=>{t.push(...e)})(d(l,v),...t),await(async()=>{if(!d(f,v)){for(y(f,v,1);!e((t=d(l,v),A=t.shift()));)try{await A()}catch(t){p?.(t)}y(f,v,0)}var t})(),b),getStore:()=>t,destroy:()=>b.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return h&&(b[h]=()=>w),i(b)}},"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).TinyBasePersisters={});
1
+ var t,e;t=this,e=function(t){"use strict";const e=t=>null==t,a=(t,a,s)=>e(t)?s?.():a(t),s=Object,n=t=>s.getPrototypeOf(t),o=s.keys,r=s.freeze,i=t=>(t=>!e(t)&&a(n(t),(t=>t==s.prototype||e(n(t))),(()=>!0)))(t)&&0==(t=>o(t).length)(t),c=t=>new Map(t),y=(t,e)=>t?.get(e),d=(t,a,s)=>{return e(s)?(n=t,o=a,n?.delete(o),t):t?.set(a,s);var n,o},u=(t,e,a,s)=>{var n,o;return n=t,o=e,n?.has(o)?s?.(y(t,e)):d(t,e,a()),y(t,e)},l=c(),g=c();t.createCustomPersister=(t,s,n,o,c,p,h,f={},v=[])=>{let w,A,C,b=0;u(l,v,(()=>0)),u(g,v,(()=>[]));const[L,S,M,T,m]=((t,a)=>!t||e(a.getMergeableContent)?[0,a.getContent,a.getTransactionChanges,([t,e])=>!i(t)||!i(e),a.setContent]:[1,a.getMergeableContent,a.getTransactionMergeableChanges,([[t],[e]])=>!i(t)||!i(e),a.setDefaultContent])(h,t),x=async t=>(2!=b&&(b=1,await j.schedule((async()=>{await t(),b=0}))),j),P=e=>{var a;(L&&(a=e?.[0],Array.isArray(a))?1===e?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},j={load:async t=>await x((async()=>{try{P(await s())}catch(e){p?.(e),t&&m(t)}})),startAutoLoad:async t=>(await j.stopAutoLoad().load(t),A=o((async(t,e)=>{const a=e?.();await x((async()=>{try{P(a??t?.()??await s())}catch(t){p?.(t)}}))})),j),stopAutoLoad:()=>(A&&(c(A),A=void 0),j),isAutoLoading:()=>!e(A),save:async t=>(1!=b&&(b=2,await j.schedule((async()=>{try{await n(S,t)}catch(t){p?.(t)}b=0}))),j),startAutoSave:async()=>(await j.stopAutoSave().save(),C=t.addDidFinishTransactionListener((()=>{const t=M();T(t)&&j.save((()=>t))})),j),stopAutoSave:()=>(a(C,t.delListener),C=void 0,j),isAutoSaving:()=>!e(C),schedule:async(...t)=>(((t,...e)=>{t.push(...e)})(y(g,v),...t),await(async()=>{if(!y(l,v)){for(d(l,v,1);!e((t=y(g,v),w=t.shift()));)try{await w()}catch(t){p?.(t)}d(l,v,0)}var t})(),j),getStore:()=>t,destroy:()=>j.stopAutoLoad().stopAutoSave(),getStats:()=>({}),...f};return r(j)}},"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).TinyBasePersisters={});
Binary file
@@ -1 +1 @@
1
- var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,n=t(""),s=t(!0),r=t(0),o=t(t),a="Listener",i="Result",l="Ids",d="Table",c="Row",u=c+"Count",f=c+l,h="Sorted"+c+l,g="Cell",v=g+l,w=Math.max,L=Math.min,y=isFinite,R=e=>null==e,p=(e,t,n)=>R(e)?n?.():t(e),T=e=>t(e)==o,b=e=>Array.isArray(e),m=e=>e.length,C=()=>{},Q=(e,t)=>e.every(t),S=(e,t)=>e.forEach(t),I=e=>E(e,((e,t)=>e+t),0),x=e=>0==m(e),E=(e,t,n)=>e.reduce(t,n),M=(e,...t)=>e.push(...t),j=Object,D=j.freeze,k=e=>e?.size??0,z=(e,t)=>e?.has(t)??!1,A=e=>R(e)||0==k(e),F=e=>[...e?.values()??[]],B=e=>e.clear(),O=(e,t)=>e?.forEach(t),W=(e,t)=>e?.delete(t),q=e=>new Map(e),G=(e,t)=>e?.get(t),H=(e,t)=>O(e,((e,n)=>t(n,e))),J=(e,t,n)=>R(n)?(W(e,t),e):e?.set(t,n),K=(e,t,n)=>(z(e,t)||J(e,t,n()),G(e,t)),N=(e,t,n,s,r=0)=>p((n?K:G)(e,t[r],r>m(t)-2?n:q),(o=>{if(r>m(t)-2)return s?.(o)&&J(e,t[r]),o;const a=N(o,t,n,s,r+1);return A(o)&&J(e,t[r]),a})),P=e=>new Set(b(e)||R(e)?e:[e]),U=(e,t)=>e?.add(t),V=q([["avg",[(e,t)=>I(e)/t,(e,t,n)=>e+(t-e)/(n+1),(e,t,n)=>e+(e-t)/(n-1),(e,t,n,s)=>e+(t-n)/s]],["max",[e=>w(...e),(e,t)=>w(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:w(t,e)]],["min",[e=>L(...e),(e,t)=>L(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:L(t,e)]],["sum",[e=>I(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,n)=>e-n+t]]]),X=(e=>{const o=new WeakMap;return e=>(o.has(e)||o.set(e,(e=>{const o=e.createStore,l=o(),w=o(),L=q(),{addListener:I,callListeners:E,delListener:X}=w,[Y,Z,$,_,ee,,,te,,ne,se,re,oe,ae]=((e,t,n,s,r)=>{const o=e.hasRow,a=q(),i=q(),l=q(),d=q(),c=q(),u=q(),f=(t,n,...s)=>{const r=K(u,t,P);return S(s,(t=>U(r,t)&&n&&e.callListener(t))),s},h=(t,...n)=>p(G(u,t),(s=>{S(x(n)?F(s):n,(t=>{e.delListener(t),W(s,t)})),A(s)&&J(u,t)})),g=(e,t)=>{J(a,e,t),z(i,e)||(J(i,e,!0),J(d,e,q()),J(c,e,q()),r(l))},v=e=>{J(a,e),J(i,e),J(d,e),J(c,e),h(e),r(l)};return[()=>e,()=>{return e=a,[...e?.keys()??[]];var e},e=>H(i,e),e=>z(i,e),e=>G(a,e),e=>G(i,e),(e,t)=>J(i,e,t),g,(t,s,r,a,i)=>{g(t,s);const l=q(),u=q(),v=G(d,t),w=G(c,t),L=t=>{const r=n=>e.getCell(s,t,n),d=G(v,t),c=o(s,t)?n(a(r,t)):void 0;var f,h;if(d===c||b(d)&&b(c)&&(h=c,m(f=d)===m(h)&&Q(f,((e,t)=>h[t]===e)))||J(l,t,[d,c]),!R(i)){const e=G(w,t),n=o(s,t)?i(r,t):void 0;e!=n&&J(u,t,n)}},y=e=>{r((()=>{O(l,(([,e],t)=>J(v,t,e))),O(u,((e,t)=>J(w,t,e)))}),l,u,v,w,e),B(l),B(u)};H(v,L),e.hasTable(s)&&S(e.getRowIds(s),(e=>{z(v,e)||L(e)})),y(!0),h(t),f(t,0,e.addRowListener(s,null,((e,t,n)=>L(n))),e.addTableListener(s,(()=>y())))},v,e=>s(e,l),()=>H(u,v),f,h]})(e,0,C,I,E),ie=(e,t,...n)=>S(n,(n=>U(K(K(L,t,q),e,P),n))),le=e=>{p(G(L,e),(e=>{H(e,((e,t)=>O(t,(t=>e.delListener(t))))),B(e)})),S([w,l],(t=>t.delTable(e)))},de=(e,t,n)=>ie(t,e,t.addStartTransactionListener(n.startTransaction),t.addDidFinishTransactionListener((()=>n.finishTransaction()))),ce={setQueryDefinition:(o,a,i)=>{te(o,a),le(o);const d=[],c=[[null,[a,null,null,[],q()]]],u=[],f=[],h=[];i({select:(e,t)=>{const n=T(e)?[m(d)+"",e]:[R(t)?e:t,n=>n(e,t)];return M(d,n),{as:e=>n[0]=e}},join:(e,t,n)=>{const s=R(n)||T(t)?null:t,r=R(s)?t:n,o=[e,[e,s,T(r)?r:e=>e(r),[],q()]];return M(c,o),{as:e=>o[0]=e}},where:(e,t,n)=>M(u,T(e)?e:R(n)?n=>n(e)===t:s=>s(e,t)===n),group:(e,t,n,s,r)=>{const o=[e,[e,T(t)?[t,n,s,r]:G(V,t)??[(e,t)=>t]]];return M(f,o),{as:e=>o[0]=e}},having:(e,t)=>M(h,T(e)?e:n=>n(e)===t)});const g=q(d);if(A(g))return ce;const v=q(c);H(v,((e,[,t])=>p(G(v,t),(({3:t})=>R(e)?0:M(t,e)))));const L=q(f);let b=l;if(A(L)&&x(h))b=w;else{de(o,b,w);const e=q();H(L,((t,[n,s])=>U(K(e,n,P),[t,s])));const a=P();H(g,(t=>z(e,t)?0:U(a,t)));const i=q(),l=(a,i,l,d)=>p(a,(([c,u,f,g])=>{H(i,((o,[a])=>{const i=K(c,o,q),u=G(i,l),f=d?void 0:a;if(u!==f){const a=P([[u,f]]),d=k(i);J(i,l,f),O(G(e,o),(([e,o])=>{const l=((e,t,n,s,r,o=!1)=>{if(A(n))return;const[a,i,l,d]=r;return o||=R(e),O(s,(([n,s])=>{o||(e=R(n)?i?.(e,s,t++):R(s)?l?.(e,n,t--):d?.(e,s,n,t),o||=R(e))})),o?a(F(n),k(n)):e})(g[e],d,i,a,o);g[e]=R((e=>{const o=t(e);return(e=>e==n||e==s)(o)||o==r&&y(e)?o:void 0})(l))?null:l}))}})),A(u)||!Q(h,(e=>e((e=>g[e]))))?w.delRow(o,f):R(f)?a[2]=w.addRow(o,g):w.setRow(o,f,g)}));ie(b,o,b.addRowListener(o,null,((t,n,s,r)=>{const d=[],c=[],u=q(),f=b.hasRow(o,s);let h=!f;O(a,(e=>{const[t,n,a]=r(o,s,e);M(d,n),M(c,a),h||=t})),H(e,(e=>{const[t,,n]=r(o,s,e);(h||t)&&J(u,e,[n])})),h&&l(N(i,d,void 0,(([,e])=>(W(e,s),A(e)))),u,s,1),f&&l(N(i,c,(()=>{const e={};return O(a,(t=>e[t]=b.getCell(o,s,t))),[q(),P(),void 0,e]}),(([,e])=>{U(e,s)})),u,s)})))}de(o,e,b);const C=(t,n,s,r)=>{const i=t=>e.getCell(n,s,t);S(r,(n=>{const[s,,r,a,l]=G(v,n),d=r?.(i,t),[c,u]=G(l,t)??[];d!=c&&(R(u)||ae(o,u),J(l,t,R(d)?null:[d,...oe(o,1,e.addRowListener(s,d,(()=>C(t,s,d,a))))]))})),(t=>{const n=(n,s)=>e.getCell(...R(s)?[a,t,n]:n===a?[a,t,s]:[G(v,n)?.[0],G(G(v,n)?.[4],t)?.[0],s]);b.transaction((()=>Q(u,(e=>e(n)))?H(g,((e,s)=>((e,t,n,s,r)=>R(r)?e.delCell(t,n,s,!0):e.setCell(t,n,s,r))(b,o,t,e,s(n,t)))):b.delRow(o,t)))})(t)},{3:I}=G(v,null);return b.transaction((()=>oe(o,1,e.addRowListener(a,null,((t,n,s)=>{e.hasRow(a,s)?C(s,a,s,I):(b.delRow(o,s),O(v,(({4:e})=>p(G(e,s),(([,t])=>{ae(o,t),J(e,s)})))))}))))),ce},delQueryDefinition:e=>(le(e),ne(e),ce),getStore:Y,getQueryIds:Z,forEachQuery:$,hasQuery:_,getTableId:ee,addQueryIdsListener:e=>se((()=>e(ce))),delListener:e=>(X(e),ce),destroy:re,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:n,...s}=w.getListenerStats();return s}};var ue,fe;return ue={[d]:[1,1],[d+v]:[0,1],[u]:[0,1],[f]:[0,1],[h]:[0,5],[c]:[1,2],[v]:[0,2],[g]:[1,3]},fe=([e,t],n)=>{S(e?["get","has","forEach"]:["get"],(e=>ce[e+i+n]=(...t)=>w[e+n](...t))),ce["add"+i+n+a]=(...e)=>{return w["add"+n+a](...(s=e,0,r=t,s.slice(0,r)),((n,...s)=>e[t](ce,...s)),!0);var s,r}},((e,t)=>{e.map(t)})(j.entries(ue),(([e,t])=>fe(t,e))),D(ce)})(e)),o.get(e))})();e.createQueries=X},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseQueries={});
1
+ var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,n=t(""),s=t(!0),r=t(0),o=t(t),a="Listener",i="Result",l="Ids",d="Table",c="Row",u=c+"Count",f=c+l,h="Sorted"+c+l,g="Cell",v=g+l,w=Math.max,L=Math.min,y=isFinite,R=e=>null==e,p=(e,t,n)=>R(e)?n?.():t(e),T=e=>t(e)==o,b=e=>Array.isArray(e),m=e=>e.length,C=()=>{},Q=(e,t)=>e.every(t),S=(e,t)=>e.forEach(t),I=e=>E(e,((e,t)=>e+t),0),x=e=>0==m(e),E=(e,t,n)=>e.reduce(t,n),M=(e,...t)=>e.push(...t),j=Object,D=j.entries,k=j.freeze,z=e=>e?.size??0,A=(e,t)=>e?.has(t)??!1,F=e=>R(e)||0==z(e),B=e=>[...e?.values()??[]],O=e=>e.clear(),W=(e,t)=>e?.forEach(t),q=(e,t)=>e?.delete(t),G=e=>new Map(e),H=(e,t)=>e?.get(t),J=(e,t)=>W(e,((e,n)=>t(n,e))),K=(e,t,n)=>R(n)?(q(e,t),e):e?.set(t,n),N=(e,t,n,s)=>(A(e,t)?s?.(H(e,t)):K(e,t,n()),H(e,t)),P=(e,t,n,s,r=0)=>p((n?N:H)(e,t[r],r>m(t)-2?n:G),(o=>{if(r>m(t)-2)return s?.(o)&&K(e,t[r]),o;const a=P(o,t,n,s,r+1);return F(o)&&K(e,t[r]),a})),U=e=>new Set(b(e)||R(e)?e:[e]),V=(e,t)=>e?.add(t),X=G([["avg",[(e,t)=>I(e)/t,(e,t,n)=>e+(t-e)/(n+1),(e,t,n)=>e+(e-t)/(n-1),(e,t,n,s)=>e+(t-n)/s]],["max",[e=>w(...e),(e,t)=>w(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:w(t,e)]],["min",[e=>L(...e),(e,t)=>L(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:L(t,e)]],["sum",[e=>I(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,n)=>e-n+t]]]),Y=((e,o)=>{const l=new WeakMap;return e=>{l.has(e)||l.set(e,(e=>{const o=e.createStore,l=o(),w=o(),L=G(),{addListener:I,callListeners:E,delListener:j}=w,[Y,Z,$,_,ee,,,te,,ne,se,re,oe,ae]=((e,t,n,s,r)=>{const o=e.hasRow,a=G(),i=G(),l=G(),d=G(),c=G(),u=G(),f=(t,n,...s)=>{const r=N(u,t,U);return S(s,(t=>V(r,t)&&n&&e.callListener(t))),s},h=(t,...n)=>p(H(u,t),(s=>{S(x(n)?B(s):n,(t=>{e.delListener(t),q(s,t)})),F(s)&&K(u,t)})),g=(e,t)=>{K(a,e,t),A(i,e)||(K(i,e,!0),K(d,e,G()),K(c,e,G()),r(l))},v=e=>{K(a,e),K(i,e),K(d,e),K(c,e),h(e),r(l)};return[()=>e,()=>{return e=a,[...e?.keys()??[]];var e},e=>J(i,e),e=>A(i,e),e=>H(a,e),e=>H(i,e),(e,t)=>K(i,e,t),g,(t,s,r,a,i)=>{g(t,s);const l=G(),u=G(),v=H(d,t),w=H(c,t),L=t=>{const r=n=>e.getCell(s,t,n),d=H(v,t),c=o(s,t)?n(a(r,t)):void 0;var f,h;if(d===c||b(d)&&b(c)&&(h=c,m(f=d)===m(h)&&Q(f,((e,t)=>h[t]===e)))||K(l,t,[d,c]),!R(i)){const e=H(w,t),n=o(s,t)?i(r,t):void 0;e!=n&&K(u,t,n)}},y=e=>{r((()=>{W(l,(([,e],t)=>K(v,t,e))),W(u,((e,t)=>K(w,t,e)))}),l,u,v,w,e),O(l),O(u)};J(v,L),e.hasTable(s)&&S(e.getRowIds(s),(e=>{A(v,e)||L(e)})),y(!0),h(t),f(t,0,e.addRowListener(s,null,((e,t,n)=>L(n))),e.addTableListener(s,(()=>y())))},v,e=>s(e,l),()=>J(u,v),f,h]})(e,0,C,I,E),ie=(e,t,...n)=>S(n,(n=>V(N(N(L,t,G),e,U),n))),le=e=>{p(H(L,e),(e=>{J(e,((e,t)=>W(t,(t=>e.delListener(t))))),O(e)})),S([w,l],(t=>t.delTable(e)))},de=(e,t,n)=>ie(t,e,t.addStartTransactionListener(n.startTransaction),t.addDidFinishTransactionListener((()=>n.finishTransaction()))),ce={setQueryDefinition:(o,a,i)=>{te(o,a),le(o);const d=[],c=[[null,[a,null,null,[],G()]]],u=[],f=[],h=[];i({select:(e,t)=>{const n=T(e)?[m(d)+"",e]:[R(t)?e:t,n=>n(e,t)];return M(d,n),{as:e=>n[0]=e}},join:(e,t,n)=>{const s=R(n)||T(t)?null:t,r=R(s)?t:n,o=[e,[e,s,T(r)?r:e=>e(r),[],G()]];return M(c,o),{as:e=>o[0]=e}},where:(e,t,n)=>M(u,T(e)?e:R(n)?n=>n(e)===t:s=>s(e,t)===n),group:(e,t,n,s,r)=>{const o=[e,[e,T(t)?[t,n,s,r]:H(X,t)??[(e,t)=>t]]];return M(f,o),{as:e=>o[0]=e}},having:(e,t)=>M(h,T(e)?e:n=>n(e)===t)});const g=G(d);if(F(g))return ce;const v=G(c);J(v,((e,[,t])=>p(H(v,t),(({3:t})=>R(e)?0:M(t,e)))));const L=G(f);let b=l;if(F(L)&&x(h))b=w;else{de(o,b,w);const e=G();J(L,((t,[n,s])=>V(N(e,n,U),[t,s])));const a=U();J(g,(t=>A(e,t)?0:V(a,t)));const i=G(),l=(a,i,l,d)=>p(a,(([c,u,f,g])=>{J(i,((o,[a])=>{const i=N(c,o,G),u=H(i,l),f=d?void 0:a;if(u!==f){const a=U([[u,f]]),d=z(i);K(i,l,f),W(H(e,o),(([e,o])=>{const l=((e,t,n,s,r,o=!1)=>{if(F(n))return;const[a,i,l,d]=r;return o||=R(e),W(s,(([n,s])=>{o||(e=R(n)?i?.(e,s,t++):R(s)?l?.(e,n,t--):d?.(e,s,n,t),o||=R(e))})),o?a(B(n),z(n)):e})(g[e],d,i,a,o);g[e]=R((e=>{const o=t(e);return(e=>e==n||e==s)(o)||o==r&&y(e)?o:void 0})(l))?null:l}))}})),F(u)||!Q(h,(e=>e((e=>g[e]))))?w.delRow(o,f):R(f)?a[2]=w.addRow(o,g):w.setRow(o,f,g)}));ie(b,o,b.addRowListener(o,null,((t,n,s,r)=>{const d=[],c=[],u=G(),f=b.hasRow(o,s);let h=!f;W(a,(e=>{const[t,n,a]=r(o,s,e);M(d,n),M(c,a),h||=t})),J(e,(e=>{const[t,,n]=r(o,s,e);(h||t)&&K(u,e,[n])})),h&&l(P(i,d,void 0,(([,e])=>(q(e,s),F(e)))),u,s,1),f&&l(P(i,c,(()=>{const e={};return W(a,(t=>e[t]=b.getCell(o,s,t))),[G(),U(),void 0,e]}),(([,e])=>{V(e,s)})),u,s)})))}de(o,e,b);const C=(t,n,s,r)=>{const i=t=>e.getCell(n,s,t);S(r,(n=>{const[s,,r,a,l]=H(v,n),d=r?.(i,t),[c,u]=H(l,t)??[];d!=c&&(R(u)||ae(o,u),K(l,t,R(d)?null:[d,...oe(o,1,e.addRowListener(s,d,(()=>C(t,s,d,a))))]))})),(t=>{const n=(n,s)=>e.getCell(...R(s)?[a,t,n]:n===a?[a,t,s]:[H(v,n)?.[0],H(H(v,n)?.[4],t)?.[0],s]);b.transaction((()=>Q(u,(e=>e(n)))?J(g,((e,s)=>((e,t,n,s,r)=>R(r)?e.delCell(t,n,s,!0):e.setCell(t,n,s,r))(b,o,t,e,s(n,t)))):b.delRow(o,t)))})(t)},{3:I}=H(v,null);return b.transaction((()=>oe(o,1,e.addRowListener(a,null,((t,n,s)=>{e.hasRow(a,s)?C(s,a,s,I):(b.delRow(o,s),W(v,(({4:e})=>p(H(e,s),(([,t])=>{ae(o,t),K(e,s)})))))}))))),ce},delQueryDefinition:e=>(le(e),ne(e),ce),getStore:Y,getQueryIds:Z,forEachQuery:$,hasQuery:_,getTableId:ee,addQueryIdsListener:e=>se((()=>e(ce))),delListener:e=>(j(e),ce),destroy:re,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:n,...s}=w.getListenerStats();return s}};var ue;return ue=([e,t],n)=>{S(e?["get","has","forEach"]:["get"],(e=>ce[e+i+n]=(...t)=>w[e+n](...t))),ce["add"+i+n+a]=(...e)=>{return w["add"+n+a](...(s=e,0,r=t,s.slice(0,r)),((n,...s)=>e[t](ce,...s)),!0);var s,r}},((e,t)=>{e.map(t)})(D({[d]:[1,1],[d+v]:[0,1],[u]:[0,1],[f]:[0,1],[h]:[0,5],[c]:[1,2],[v]:[0,2],[g]:[1,3]}),(([e,t])=>ue(t,e))),k(ce)})(e));return l.get(e)}})();e.createQueries=Y},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseQueries={});
Binary file
@@ -1 +1 @@
1
- var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,n="",s=t(n),o=e=>null==e,r=(e,t,n)=>o(e)?n?.():t(e),i=e=>Array.isArray(e),a=e=>e.length,d=(e,t)=>e.forEach(t),l=(e,...t)=>e.push(...t),c=Object.freeze,f=(e,t)=>e?.has(t)??!1,u=e=>o(e)||0==(e=>e?.size??0)(e),h=e=>[...e?.values()??[]],R=e=>e.clear(),p=(e,t)=>e?.forEach(t),g=(e,t)=>e?.delete(t),L=e=>new Map(e),w=(e,t)=>e?.get(t),y=(e,t)=>p(e,((e,n)=>t(n,e))),I=(e,t,n)=>o(n)?(g(e,t),e):e?.set(t,n),v=(e,t,n)=>(f(e,t)||I(e,t,n()),w(e,t)),b=(e,t,n,s,o=0)=>r((n?v:w)(e,t[o],o>a(t)-2?n:L),(r=>{if(o>a(t)-2)return s?.(r)&&I(e,t[o]),r;const i=b(r,t,n,s,o+1);return u(r)&&I(e,t[o]),i})),T=e=>new Set(i(e)||o(e)?e:[e]),m=(e,t)=>e?.add(t),k=/^\d+$/,E=(e=>{const E=new WeakMap;return e=>(E.has(e)||E.set(e,(e=>{const E=L(),x=L(),S=L(),j=L(),[z,A,D]=(e=>{let t;const[s,i]=(()=>{const e=[];let t=0;return[s=>(s?e.shift():null)??n+t++,t=>{k.test(t)&&a(e)<1e3&&l(e,t)}]})(),c=L();return[(e,o,r,i=[],a=(()=>[]))=>{t??=P;const d=s(1);return I(c,d,[e,o,r,i,a]),m(b(o,r??[n],T),d),d},(e,s,...o)=>d(((e,t=[n])=>{const s=[],o=(e,n)=>n==a(t)?l(s,e):null===t[n]?p(e,(e=>o(e,n+1))):d([t[n],null],(t=>o(w(e,t),n+1)));return o(e,0),s})(e,s),(e=>p(e,(e=>w(c,e)[0](t,...s??[],...o))))),e=>r(w(c,e),(([,t,s])=>(b(t,s??[n],void 0,(t=>(g(t,e),u(t)?1:0))),I(c,e),i(e),s))),e=>r(w(c,e),(([e,,n=[],s,r])=>{const i=(...l)=>{const c=a(l);c==a(n)?e(t,...l,...r(l)):o(n[c])?d(s[c]?.(...l)??[],(e=>i(...l,e))):i(...l,n[c])};i()}))]})(),[M,B,C,O,W,$,,,q,F,G,H]=((e,t,s,l,c)=>{const b=e.hasRow,k=L(),E=L(),x=L(),S=L(),j=L(),z=L(),A=(t,n,...s)=>{const o=v(z,t,T);return d(s,(t=>m(o,t)&&n&&e.callListener(t))),s},D=(t,...n)=>r(w(z,t),(s=>{d(0==a(n)?h(s):n,(t=>{e.delListener(t),g(s,t)})),u(s)&&I(z,t)})),M=(e,t)=>{I(k,e,t),f(E,e)||(I(E,e,[L(),L(),L(),L()]),I(S,e,L()),I(j,e,L()),c(x))},B=e=>{I(k,e),I(E,e),I(S,e),I(j,e),D(e),c(x)};return[()=>e,()=>{return e=k,[...e?.keys()??[]];var e},e=>y(E,e),e=>f(E,e),e=>w(k,e),e=>w(E,e),(e,t)=>I(E,e,t),M,(t,s,r,l,c)=>{M(t,s);const u=L(),h=L(),g=w(S,t),v=w(j,t),T=t=>{const r=n=>e.getCell(s,t,n),d=w(g,t),f=b(s,t)?(R=l(r,t),o(R)?void 0:R+n):void 0;var R,p,L,y;if(d===f||i(d)&&i(f)&&(L=f,a(p=d)===a(L)&&(y=(e,t)=>L[t]===e,p.every(y)))||I(u,t,[d,f]),!o(c)){const e=w(v,t),n=b(s,t)?c(r,t):void 0;e!=n&&I(h,t,n)}},m=e=>{r((()=>{p(u,(([,e],t)=>I(g,t,e))),p(h,((e,t)=>I(v,t,e)))}),u,h,g,v,e),R(u),R(h)};y(g,T),e.hasTable(s)&&d(e.getRowIds(s),(e=>{f(g,e)||T(e)})),m(!0),D(t),A(t,0,e.addRowListener(s,null,((e,t,n)=>T(n))),e.addTableListener(s,(()=>m())))},B,e=>l(e,x),()=>y(z,B),A,D]})(e,0,0,z,A),J=(e,t,n)=>r($(e),(([s,,r])=>{if(!f(r,t)){const i=T();if(W(e)!=N(e))m(i,t);else{let e=t;for(;!o(e)&&!f(i,e);)m(i,e),e=w(s,e)}if(n)return i;I(r,t,i)}return w(r,t)})),K=(e,t)=>r($(e),(([,,e])=>I(e,t))),N=e=>w(E,e),P={setRelationshipDefinition:(e,i,a,d)=>{return I(E,e,a),q(e,i,((t,n)=>{const s=T(),i=T(),a=T(),[d,l]=$(e);p(n,(([t,n],c)=>{o(t)||(m(i,t),r(w(l,t),(e=>{g(e,c),u(e)&&I(l,t)}))),o(n)||(m(i,n),f(l,n)||I(l,n,T()),m(w(l,n),c)),m(s,c),I(d,c,n),y(w(j,e),(t=>{f(J(e,t),c)&&m(a,t)}))})),t(),p(s,(t=>A(x,[e,t]))),p(i,(t=>A(S,[e,t]))),p(a,(t=>{K(e,t),A(j,[e,t])}))}),t(l=d)==s?e=>e(l):l??(()=>n)),P;var l},delRelationshipDefinition:e=>(I(E,e),F(e),P),getStore:M,getRelationshipIds:B,forEachRelationship:t=>C((n=>t(n,(t=>e.forEachRow(W(n),t))))),hasRelationship:O,getLocalTableId:W,getRemoteTableId:N,getRemoteRowId:(e,t)=>w($(e)?.[0],t),getLocalRowIds:(e,t)=>h(w($(e)?.[1],t)),getLinkedRowIds:(e,t)=>o($(e))?[t]:h(J(e,t,!0)),addRelationshipIdsListener:G,addRemoteRowIdListener:(e,t,n)=>z(n,x,[e,t]),addLocalRowIdsListener:(e,t,n)=>z(n,S,[e,t]),addLinkedRowIdsListener:(e,t,n)=>(J(e,t),z(n,j,[e,t])),delListener:e=>(K(...D(e)??[]),P),destroy:H,getListenerStats:()=>({})};return c(P)})(e)),E.get(e))})();e.createRelationships=E},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseRelationships={});
1
+ var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,n="",s=t(n),o=e=>null==e,r=(e,t,n)=>o(e)?n?.():t(e),i=e=>Array.isArray(e),a=e=>e.length,d=(e,t)=>e.forEach(t),l=(e,...t)=>e.push(...t),c=Object.freeze,u=(e,t)=>e?.has(t)??!1,f=e=>o(e)||0==(e=>e?.size??0)(e),h=e=>[...e?.values()??[]],R=e=>e.clear(),p=(e,t)=>e?.forEach(t),g=(e,t)=>e?.delete(t),L=e=>new Map(e),w=(e,t)=>e?.get(t),y=(e,t)=>p(e,((e,n)=>t(n,e))),I=(e,t,n)=>o(n)?(g(e,t),e):e?.set(t,n),v=(e,t,n,s)=>(u(e,t)?s?.(w(e,t)):I(e,t,n()),w(e,t)),b=(e,t,n,s,o=0)=>r((n?v:w)(e,t[o],o>a(t)-2?n:L),(r=>{if(o>a(t)-2)return s?.(r)&&I(e,t[o]),r;const i=b(r,t,n,s,o+1);return f(r)&&I(e,t[o]),i})),T=e=>new Set(i(e)||o(e)?e:[e]),m=(e,t)=>e?.add(t),k=/^\d+$/,E=((e,E)=>{const x=new WeakMap;return e=>{x.has(e)||x.set(e,(e=>{const E=L(),x=L(),S=L(),j=L(),[z,A,D]=(e=>{let t;const[s,i]=(()=>{const e=[];let t=0;return[s=>(s?e.shift():null)??n+t++,t=>{k.test(t)&&a(e)<1e3&&l(e,t)}]})(),c=L();return[(e,o,r,i=[],a=(()=>[]))=>{t??=P;const d=s(1);return I(c,d,[e,o,r,i,a]),m(b(o,r??[n],T),d),d},(e,s,...o)=>d(((e,t=[n])=>{const s=[],o=(e,n)=>n==a(t)?l(s,e):null===t[n]?p(e,(e=>o(e,n+1))):d([t[n],null],(t=>o(w(e,t),n+1)));return o(e,0),s})(e,s),(e=>p(e,(e=>w(c,e)[0](t,...s??[],...o))))),e=>r(w(c,e),(([,t,s])=>(b(t,s??[n],void 0,(t=>(g(t,e),f(t)?1:0))),I(c,e),i(e),s))),e=>r(w(c,e),(([e,,n=[],s,r])=>{const i=(...l)=>{const c=a(l);c==a(n)?e(t,...l,...r(l)):o(n[c])?d(s[c]?.(...l)??[],(e=>i(...l,e))):i(...l,n[c])};i()}))]})(),[M,B,C,O,W,$,,,q,F,G,H]=((e,t,s,l,c)=>{const b=e.hasRow,k=L(),E=L(),x=L(),S=L(),j=L(),z=L(),A=(t,n,...s)=>{const o=v(z,t,T);return d(s,(t=>m(o,t)&&n&&e.callListener(t))),s},D=(t,...n)=>r(w(z,t),(s=>{d(0==a(n)?h(s):n,(t=>{e.delListener(t),g(s,t)})),f(s)&&I(z,t)})),M=(e,t)=>{I(k,e,t),u(E,e)||(I(E,e,[L(),L(),L(),L()]),I(S,e,L()),I(j,e,L()),c(x))},B=e=>{I(k,e),I(E,e),I(S,e),I(j,e),D(e),c(x)};return[()=>e,()=>{return e=k,[...e?.keys()??[]];var e},e=>y(E,e),e=>u(E,e),e=>w(k,e),e=>w(E,e),(e,t)=>I(E,e,t),M,(t,s,r,l,c)=>{M(t,s);const f=L(),h=L(),g=w(S,t),v=w(j,t),T=t=>{const r=n=>e.getCell(s,t,n),d=w(g,t),u=b(s,t)?(R=l(r,t),o(R)?void 0:R+n):void 0;var R,p,L,y;if(d===u||i(d)&&i(u)&&(L=u,a(p=d)===a(L)&&(y=(e,t)=>L[t]===e,p.every(y)))||I(f,t,[d,u]),!o(c)){const e=w(v,t),n=b(s,t)?c(r,t):void 0;e!=n&&I(h,t,n)}},m=e=>{r((()=>{p(f,(([,e],t)=>I(g,t,e))),p(h,((e,t)=>I(v,t,e)))}),f,h,g,v,e),R(f),R(h)};y(g,T),e.hasTable(s)&&d(e.getRowIds(s),(e=>{u(g,e)||T(e)})),m(!0),D(t),A(t,0,e.addRowListener(s,null,((e,t,n)=>T(n))),e.addTableListener(s,(()=>m())))},B,e=>l(e,x),()=>y(z,B),A,D]})(e,0,0,z,A),J=(e,t,n)=>r($(e),(([s,,r])=>{if(!u(r,t)){const i=T();if(W(e)!=N(e))m(i,t);else{let e=t;for(;!o(e)&&!u(i,e);)m(i,e),e=w(s,e)}if(n)return i;I(r,t,i)}return w(r,t)})),K=(e,t)=>r($(e),(([,,e])=>I(e,t))),N=e=>w(E,e),P={setRelationshipDefinition:(e,i,a,d)=>{return I(E,e,a),q(e,i,((t,n)=>{const s=T(),i=T(),a=T(),[d,l]=$(e);p(n,(([t,n],c)=>{o(t)||(m(i,t),r(w(l,t),(e=>{g(e,c),f(e)&&I(l,t)}))),o(n)||(m(i,n),u(l,n)||I(l,n,T()),m(w(l,n),c)),m(s,c),I(d,c,n),y(w(j,e),(t=>{u(J(e,t),c)&&m(a,t)}))})),t(),p(s,(t=>A(x,[e,t]))),p(i,(t=>A(S,[e,t]))),p(a,(t=>{K(e,t),A(j,[e,t])}))}),t(l=d)==s?e=>e(l):l??(()=>n)),P;var l},delRelationshipDefinition:e=>(I(E,e),F(e),P),getStore:M,getRelationshipIds:B,forEachRelationship:t=>C((n=>t(n,(t=>e.forEachRow(W(n),t))))),hasRelationship:O,getLocalTableId:W,getRemoteTableId:N,getRemoteRowId:(e,t)=>w($(e)?.[0],t),getLocalRowIds:(e,t)=>h(w($(e)?.[1],t)),getLinkedRowIds:(e,t)=>o($(e))?[t]:h(J(e,t,!0)),addRelationshipIdsListener:G,addRemoteRowIdListener:(e,t,n)=>z(n,x,[e,t]),addLocalRowIdsListener:(e,t,n)=>z(n,S,[e,t]),addLinkedRowIdsListener:(e,t,n)=>(J(e,t),z(n,j,[e,t])),delListener:e=>(K(...D(e)??[]),P),destroy:H,getListenerStats:()=>({})};return c(P)})(e));return x.get(e)}})();e.createRelationships=E},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseRelationships={});
Binary file