tinybase 5.0.0-beta.1 → 5.0.0-beta.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (491) hide show
  1. package/lib/checkpoints.js +1 -1
  2. package/lib/checkpoints.js.gz +0 -0
  3. package/lib/cjs/checkpoints.cjs +1 -1
  4. package/lib/cjs/checkpoints.cjs.gz +0 -0
  5. package/lib/cjs/indexes.cjs +1 -1
  6. package/lib/cjs/indexes.cjs.gz +0 -0
  7. package/lib/cjs/mergeable-store.cjs +1 -0
  8. package/lib/cjs/mergeable-store.cjs.gz +0 -0
  9. package/lib/cjs/metrics.cjs +1 -1
  10. package/lib/cjs/metrics.cjs.gz +0 -0
  11. package/lib/cjs/persisters/persister-automerge.cjs +1 -1
  12. package/lib/cjs/persisters/persister-automerge.cjs.gz +0 -0
  13. package/lib/cjs/persisters/persister-browser.cjs +1 -1
  14. package/lib/cjs/persisters/persister-browser.cjs.gz +0 -0
  15. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  16. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  17. package/lib/cjs/persisters/persister-electric-sql.cjs +1 -1
  18. package/lib/cjs/persisters/persister-electric-sql.cjs.gz +0 -0
  19. package/lib/cjs/persisters/persister-expo-sqlite-next.cjs +1 -1
  20. package/lib/cjs/persisters/persister-expo-sqlite-next.cjs.gz +0 -0
  21. package/lib/cjs/persisters/persister-expo-sqlite.cjs +1 -1
  22. package/lib/cjs/persisters/persister-expo-sqlite.cjs.gz +0 -0
  23. package/lib/cjs/persisters/persister-file.cjs +1 -1
  24. package/lib/cjs/persisters/persister-file.cjs.gz +0 -0
  25. package/lib/cjs/persisters/persister-indexed-db.cjs +1 -1
  26. package/lib/cjs/persisters/persister-indexed-db.cjs.gz +0 -0
  27. package/lib/cjs/persisters/persister-libsql.cjs +1 -0
  28. package/lib/cjs/persisters/persister-libsql.cjs.gz +0 -0
  29. package/lib/cjs/persisters/persister-partykit-client.cjs +1 -1
  30. package/lib/cjs/persisters/persister-partykit-client.cjs.gz +0 -0
  31. package/lib/cjs/persisters/persister-partykit-server.cjs +1 -1
  32. package/lib/cjs/persisters/persister-partykit-server.cjs.gz +0 -0
  33. package/lib/cjs/persisters/persister-powersync.cjs +1 -0
  34. package/lib/cjs/persisters/persister-powersync.cjs.gz +0 -0
  35. package/lib/cjs/persisters/persister-remote.cjs +1 -1
  36. package/lib/cjs/persisters/persister-remote.cjs.gz +0 -0
  37. package/lib/cjs/persisters/persister-sqlite-wasm.cjs +1 -1
  38. package/lib/cjs/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  39. package/lib/cjs/persisters/persister-sqlite3.cjs +1 -1
  40. package/lib/cjs/persisters/persister-sqlite3.cjs.gz +0 -0
  41. package/lib/cjs/persisters/persister-yjs.cjs +1 -1
  42. package/lib/cjs/persisters/persister-yjs.cjs.gz +0 -0
  43. package/lib/cjs/persisters.cjs +1 -1
  44. package/lib/cjs/persisters.cjs.gz +0 -0
  45. package/lib/cjs/queries.cjs +1 -1
  46. package/lib/cjs/queries.cjs.gz +0 -0
  47. package/lib/cjs/relationships.cjs +1 -1
  48. package/lib/cjs/relationships.cjs.gz +0 -0
  49. package/lib/cjs/store.cjs +1 -1
  50. package/lib/cjs/store.cjs.gz +0 -0
  51. package/lib/cjs/synchronizers/synchronizer-local.cjs +1 -0
  52. package/lib/cjs/synchronizers/synchronizer-local.cjs.gz +0 -0
  53. package/lib/cjs/synchronizers/synchronizer-ws-client.cjs +1 -0
  54. package/lib/cjs/synchronizers/synchronizer-ws-client.cjs.gz +0 -0
  55. package/lib/cjs/synchronizers/synchronizer-ws-server.cjs +1 -0
  56. package/lib/cjs/synchronizers/synchronizer-ws-server.cjs.gz +0 -0
  57. package/lib/cjs/synchronizers.cjs +1 -0
  58. package/lib/cjs/synchronizers.cjs.gz +0 -0
  59. package/lib/cjs/tinybase.cjs +1 -1
  60. package/lib/cjs/tinybase.cjs.gz +0 -0
  61. package/lib/cjs/tools.cjs +1 -1
  62. package/lib/cjs/tools.cjs.gz +0 -0
  63. package/lib/cjs/ui-react-dom-debug.cjs +1 -1
  64. package/lib/cjs/ui-react-dom-debug.cjs.gz +0 -0
  65. package/lib/cjs/ui-react-dom.cjs +1 -1
  66. package/lib/cjs/ui-react-dom.cjs.gz +0 -0
  67. package/lib/cjs/ui-react.cjs +1 -1
  68. package/lib/cjs/ui-react.cjs.gz +0 -0
  69. package/lib/cjs-es6/checkpoints.cjs +1 -1
  70. package/lib/cjs-es6/checkpoints.cjs.gz +0 -0
  71. package/lib/cjs-es6/indexes.cjs +1 -1
  72. package/lib/cjs-es6/indexes.cjs.gz +0 -0
  73. package/lib/cjs-es6/mergeable-store.cjs +1 -0
  74. package/lib/cjs-es6/mergeable-store.cjs.gz +0 -0
  75. package/lib/cjs-es6/metrics.cjs +1 -1
  76. package/lib/cjs-es6/metrics.cjs.gz +0 -0
  77. package/lib/cjs-es6/persisters/persister-automerge.cjs +1 -1
  78. package/lib/cjs-es6/persisters/persister-automerge.cjs.gz +0 -0
  79. package/lib/cjs-es6/persisters/persister-browser.cjs +1 -1
  80. package/lib/cjs-es6/persisters/persister-browser.cjs.gz +0 -0
  81. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  82. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  83. package/lib/cjs-es6/persisters/persister-electric-sql.cjs +1 -1
  84. package/lib/cjs-es6/persisters/persister-electric-sql.cjs.gz +0 -0
  85. package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs +1 -1
  86. package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs.gz +0 -0
  87. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs +1 -1
  88. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs.gz +0 -0
  89. package/lib/cjs-es6/persisters/persister-file.cjs +1 -1
  90. package/lib/cjs-es6/persisters/persister-file.cjs.gz +0 -0
  91. package/lib/cjs-es6/persisters/persister-indexed-db.cjs +1 -1
  92. package/lib/cjs-es6/persisters/persister-indexed-db.cjs.gz +0 -0
  93. package/lib/cjs-es6/persisters/persister-libsql.cjs +1 -0
  94. package/lib/cjs-es6/persisters/persister-libsql.cjs.gz +0 -0
  95. package/lib/cjs-es6/persisters/persister-partykit-client.cjs +1 -1
  96. package/lib/cjs-es6/persisters/persister-partykit-client.cjs.gz +0 -0
  97. package/lib/cjs-es6/persisters/persister-partykit-server.cjs +1 -1
  98. package/lib/cjs-es6/persisters/persister-partykit-server.cjs.gz +0 -0
  99. package/lib/cjs-es6/persisters/persister-powersync.cjs +1 -0
  100. package/lib/cjs-es6/persisters/persister-powersync.cjs.gz +0 -0
  101. package/lib/cjs-es6/persisters/persister-remote.cjs +1 -1
  102. package/lib/cjs-es6/persisters/persister-remote.cjs.gz +0 -0
  103. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs +1 -1
  104. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  105. package/lib/cjs-es6/persisters/persister-sqlite3.cjs +1 -1
  106. package/lib/cjs-es6/persisters/persister-sqlite3.cjs.gz +0 -0
  107. package/lib/cjs-es6/persisters/persister-yjs.cjs +1 -1
  108. package/lib/cjs-es6/persisters/persister-yjs.cjs.gz +0 -0
  109. package/lib/cjs-es6/persisters.cjs +1 -1
  110. package/lib/cjs-es6/persisters.cjs.gz +0 -0
  111. package/lib/cjs-es6/queries.cjs +1 -1
  112. package/lib/cjs-es6/queries.cjs.gz +0 -0
  113. package/lib/cjs-es6/relationships.cjs +1 -1
  114. package/lib/cjs-es6/relationships.cjs.gz +0 -0
  115. package/lib/cjs-es6/store.cjs +1 -1
  116. package/lib/cjs-es6/store.cjs.gz +0 -0
  117. package/lib/cjs-es6/synchronizers/synchronizer-local.cjs +1 -0
  118. package/lib/cjs-es6/synchronizers/synchronizer-local.cjs.gz +0 -0
  119. package/lib/cjs-es6/synchronizers/synchronizer-ws-client.cjs +1 -0
  120. package/lib/cjs-es6/synchronizers/synchronizer-ws-client.cjs.gz +0 -0
  121. package/lib/cjs-es6/synchronizers/synchronizer-ws-server.cjs +1 -0
  122. package/lib/cjs-es6/synchronizers/synchronizer-ws-server.cjs.gz +0 -0
  123. package/lib/cjs-es6/synchronizers.cjs +1 -0
  124. package/lib/cjs-es6/synchronizers.cjs.gz +0 -0
  125. package/lib/cjs-es6/tinybase.cjs +1 -1
  126. package/lib/cjs-es6/tinybase.cjs.gz +0 -0
  127. package/lib/cjs-es6/tools.cjs +1 -1
  128. package/lib/cjs-es6/tools.cjs.gz +0 -0
  129. package/lib/cjs-es6/ui-react-dom-debug.cjs +1 -1
  130. package/lib/cjs-es6/ui-react-dom-debug.cjs.gz +0 -0
  131. package/lib/cjs-es6/ui-react-dom.cjs +1 -1
  132. package/lib/cjs-es6/ui-react-dom.cjs.gz +0 -0
  133. package/lib/cjs-es6/ui-react.cjs +1 -1
  134. package/lib/cjs-es6/ui-react.cjs.gz +0 -0
  135. package/lib/debug/checkpoints.js +3 -1
  136. package/lib/debug/indexes.js +3 -1
  137. package/lib/debug/mergeable-store.js +2230 -0
  138. package/lib/debug/metrics.js +3 -1
  139. package/lib/debug/persisters/persister-automerge.js +167 -131
  140. package/lib/debug/persisters/persister-browser.js +155 -102
  141. package/lib/debug/persisters/persister-cr-sqlite-wasm.js +225 -152
  142. package/lib/debug/persisters/persister-electric-sql.js +225 -152
  143. package/lib/debug/persisters/persister-expo-sqlite-next.js +225 -152
  144. package/lib/debug/persisters/persister-expo-sqlite.js +225 -152
  145. package/lib/debug/persisters/persister-file.js +149 -101
  146. package/lib/debug/persisters/persister-indexed-db.js +146 -100
  147. package/lib/debug/persisters/persister-libsql.js +924 -0
  148. package/lib/debug/persisters/persister-partykit-client.js +146 -104
  149. package/lib/debug/persisters/persister-partykit-server.js +17 -25
  150. package/lib/debug/persisters/persister-powersync.js +939 -0
  151. package/lib/debug/persisters/persister-remote.js +141 -97
  152. package/lib/debug/persisters/persister-sqlite-wasm.js +225 -152
  153. package/lib/debug/persisters/persister-sqlite3.js +225 -152
  154. package/lib/debug/persisters/persister-yjs.js +164 -127
  155. package/lib/debug/persisters.js +137 -94
  156. package/lib/debug/queries.js +9 -6
  157. package/lib/debug/relationships.js +3 -1
  158. package/lib/debug/store.js +147 -126
  159. package/lib/debug/synchronizers/synchronizer-local.js +571 -0
  160. package/lib/debug/synchronizers/synchronizer-ws-client.js +598 -0
  161. package/lib/debug/synchronizers/synchronizer-ws-server.js +241 -0
  162. package/lib/debug/synchronizers.js +531 -0
  163. package/lib/debug/tinybase.js +1080 -215
  164. package/lib/debug/tools.js +22 -21
  165. package/lib/debug/ui-react-dom.js +336 -258
  166. package/lib/debug/ui-react.js +55 -6
  167. package/lib/es6/checkpoints.js +1 -1
  168. package/lib/es6/checkpoints.js.gz +0 -0
  169. package/lib/es6/indexes.js +1 -1
  170. package/lib/es6/indexes.js.gz +0 -0
  171. package/lib/es6/mergeable-store.js +1 -0
  172. package/lib/es6/mergeable-store.js.gz +0 -0
  173. package/lib/es6/metrics.js +1 -1
  174. package/lib/es6/metrics.js.gz +0 -0
  175. package/lib/es6/persisters/persister-automerge.js +1 -1
  176. package/lib/es6/persisters/persister-automerge.js.gz +0 -0
  177. package/lib/es6/persisters/persister-browser.js +1 -1
  178. package/lib/es6/persisters/persister-browser.js.gz +0 -0
  179. package/lib/es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  180. package/lib/es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  181. package/lib/es6/persisters/persister-electric-sql.js +1 -1
  182. package/lib/es6/persisters/persister-electric-sql.js.gz +0 -0
  183. package/lib/es6/persisters/persister-expo-sqlite-next.js +1 -1
  184. package/lib/es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
  185. package/lib/es6/persisters/persister-expo-sqlite.js +1 -1
  186. package/lib/es6/persisters/persister-expo-sqlite.js.gz +0 -0
  187. package/lib/es6/persisters/persister-file.js +1 -1
  188. package/lib/es6/persisters/persister-file.js.gz +0 -0
  189. package/lib/es6/persisters/persister-indexed-db.js +1 -1
  190. package/lib/es6/persisters/persister-indexed-db.js.gz +0 -0
  191. package/lib/es6/persisters/persister-libsql.js +1 -0
  192. package/lib/es6/persisters/persister-libsql.js.gz +0 -0
  193. package/lib/es6/persisters/persister-partykit-client.js +1 -1
  194. package/lib/es6/persisters/persister-partykit-client.js.gz +0 -0
  195. package/lib/es6/persisters/persister-partykit-server.js +1 -1
  196. package/lib/es6/persisters/persister-partykit-server.js.gz +0 -0
  197. package/lib/es6/persisters/persister-powersync.js +1 -0
  198. package/lib/es6/persisters/persister-powersync.js.gz +0 -0
  199. package/lib/es6/persisters/persister-remote.js +1 -1
  200. package/lib/es6/persisters/persister-remote.js.gz +0 -0
  201. package/lib/es6/persisters/persister-sqlite-wasm.js +1 -1
  202. package/lib/es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  203. package/lib/es6/persisters/persister-sqlite3.js +1 -1
  204. package/lib/es6/persisters/persister-sqlite3.js.gz +0 -0
  205. package/lib/es6/persisters/persister-yjs.js +1 -1
  206. package/lib/es6/persisters/persister-yjs.js.gz +0 -0
  207. package/lib/es6/persisters.js +1 -1
  208. package/lib/es6/persisters.js.gz +0 -0
  209. package/lib/es6/queries.js +1 -1
  210. package/lib/es6/queries.js.gz +0 -0
  211. package/lib/es6/relationships.js +1 -1
  212. package/lib/es6/relationships.js.gz +0 -0
  213. package/lib/es6/store.js +1 -1
  214. package/lib/es6/store.js.gz +0 -0
  215. package/lib/es6/synchronizers/synchronizer-local.js +1 -0
  216. package/lib/es6/synchronizers/synchronizer-local.js.gz +0 -0
  217. package/lib/es6/synchronizers/synchronizer-ws-client.js +1 -0
  218. package/lib/es6/synchronizers/synchronizer-ws-client.js.gz +0 -0
  219. package/lib/es6/synchronizers/synchronizer-ws-server.js +1 -0
  220. package/lib/es6/synchronizers/synchronizer-ws-server.js.gz +0 -0
  221. package/lib/es6/synchronizers.js +1 -0
  222. package/lib/es6/synchronizers.js.gz +0 -0
  223. package/lib/es6/tinybase.js +1 -1
  224. package/lib/es6/tinybase.js.gz +0 -0
  225. package/lib/es6/tools.js +1 -1
  226. package/lib/es6/tools.js.gz +0 -0
  227. package/lib/es6/ui-react-dom-debug.js +1 -1
  228. package/lib/es6/ui-react-dom-debug.js.gz +0 -0
  229. package/lib/es6/ui-react-dom.js +1 -1
  230. package/lib/es6/ui-react-dom.js.gz +0 -0
  231. package/lib/es6/ui-react.js +1 -1
  232. package/lib/es6/ui-react.js.gz +0 -0
  233. package/lib/indexes.js +1 -1
  234. package/lib/indexes.js.gz +0 -0
  235. package/lib/mergeable-store.js +1 -0
  236. package/lib/mergeable-store.js.gz +0 -0
  237. package/lib/metrics.js +1 -1
  238. package/lib/metrics.js.gz +0 -0
  239. package/lib/persisters/persister-automerge.js +1 -1
  240. package/lib/persisters/persister-automerge.js.gz +0 -0
  241. package/lib/persisters/persister-browser.js +1 -1
  242. package/lib/persisters/persister-browser.js.gz +0 -0
  243. package/lib/persisters/persister-cr-sqlite-wasm.js +1 -1
  244. package/lib/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  245. package/lib/persisters/persister-electric-sql.js +1 -1
  246. package/lib/persisters/persister-electric-sql.js.gz +0 -0
  247. package/lib/persisters/persister-expo-sqlite-next.js +1 -1
  248. package/lib/persisters/persister-expo-sqlite-next.js.gz +0 -0
  249. package/lib/persisters/persister-expo-sqlite.js +1 -1
  250. package/lib/persisters/persister-expo-sqlite.js.gz +0 -0
  251. package/lib/persisters/persister-file.js +1 -1
  252. package/lib/persisters/persister-file.js.gz +0 -0
  253. package/lib/persisters/persister-indexed-db.js +1 -1
  254. package/lib/persisters/persister-indexed-db.js.gz +0 -0
  255. package/lib/persisters/persister-libsql.js +1 -0
  256. package/lib/persisters/persister-libsql.js.gz +0 -0
  257. package/lib/persisters/persister-partykit-client.js +1 -1
  258. package/lib/persisters/persister-partykit-client.js.gz +0 -0
  259. package/lib/persisters/persister-partykit-server.js +1 -1
  260. package/lib/persisters/persister-partykit-server.js.gz +0 -0
  261. package/lib/persisters/persister-powersync.js +1 -0
  262. package/lib/persisters/persister-powersync.js.gz +0 -0
  263. package/lib/persisters/persister-remote.js +1 -1
  264. package/lib/persisters/persister-remote.js.gz +0 -0
  265. package/lib/persisters/persister-sqlite-wasm.js +1 -1
  266. package/lib/persisters/persister-sqlite-wasm.js.gz +0 -0
  267. package/lib/persisters/persister-sqlite3.js +1 -1
  268. package/lib/persisters/persister-sqlite3.js.gz +0 -0
  269. package/lib/persisters/persister-yjs.js +1 -1
  270. package/lib/persisters/persister-yjs.js.gz +0 -0
  271. package/lib/persisters.js +1 -1
  272. package/lib/persisters.js.gz +0 -0
  273. package/lib/queries.js +1 -1
  274. package/lib/queries.js.gz +0 -0
  275. package/lib/relationships.js +1 -1
  276. package/lib/relationships.js.gz +0 -0
  277. package/lib/store.js +1 -1
  278. package/lib/store.js.gz +0 -0
  279. package/lib/synchronizers/synchronizer-local.js +1 -0
  280. package/lib/synchronizers/synchronizer-local.js.gz +0 -0
  281. package/lib/synchronizers/synchronizer-ws-client.js +1 -0
  282. package/lib/synchronizers/synchronizer-ws-client.js.gz +0 -0
  283. package/lib/synchronizers/synchronizer-ws-server.js +1 -0
  284. package/lib/synchronizers/synchronizer-ws-server.js.gz +0 -0
  285. package/lib/synchronizers.js +1 -0
  286. package/lib/synchronizers.js.gz +0 -0
  287. package/lib/tinybase.js +1 -1
  288. package/lib/tinybase.js.gz +0 -0
  289. package/lib/tools.js +1 -1
  290. package/lib/tools.js.gz +0 -0
  291. package/lib/types/checkpoints.d.ts +2 -2
  292. package/lib/types/indexes.d.ts +2 -2
  293. package/lib/types/mergeable-store.d.ts +214 -0
  294. package/lib/types/metrics.d.ts +2 -2
  295. package/lib/types/persisters/persister-automerge.d.ts +11 -7
  296. package/lib/types/persisters/persister-browser.d.ts +13 -4
  297. package/lib/types/persisters/persister-cr-sqlite-wasm.d.ts +4 -0
  298. package/lib/types/persisters/persister-electric-sql.d.ts +4 -0
  299. package/lib/types/persisters/persister-expo-sqlite-next.d.ts +4 -0
  300. package/lib/types/persisters/persister-expo-sqlite.d.ts +4 -0
  301. package/lib/types/persisters/persister-file.d.ts +7 -2
  302. package/lib/types/persisters/persister-indexed-db.d.ts +4 -0
  303. package/lib/types/persisters/persister-libsql.d.ts +142 -0
  304. package/lib/types/persisters/persister-partykit-client.d.ts +4 -0
  305. package/lib/types/persisters/persister-partykit-server.d.ts +12 -8
  306. package/lib/types/persisters/persister-powersync.d.ts +157 -0
  307. package/lib/types/persisters/persister-remote.d.ts +4 -0
  308. package/lib/types/persisters/persister-sqlite-wasm.d.ts +4 -0
  309. package/lib/types/persisters/persister-sqlite3.d.ts +4 -0
  310. package/lib/types/persisters/persister-yjs.d.ts +6 -2
  311. package/lib/types/persisters.d.ts +162 -59
  312. package/lib/types/queries.d.ts +2 -2
  313. package/lib/types/relationships.d.ts +2 -2
  314. package/lib/types/store.d.ts +275 -187
  315. package/lib/types/synchronizers/synchronizer-local.d.ts +27 -0
  316. package/lib/types/synchronizers/synchronizer-ws-client.d.ts +35 -0
  317. package/lib/types/synchronizers/synchronizer-ws-server.d.ts +57 -0
  318. package/lib/types/synchronizers.d.ts +132 -0
  319. package/lib/types/tinybase.d.ts +10 -8
  320. package/lib/types/tools.d.ts +4 -4
  321. package/lib/types/ui-react.d.ts +160 -9
  322. package/lib/types/with-schemas/checkpoints.d.ts +2 -2
  323. package/lib/types/with-schemas/indexes.d.ts +2 -2
  324. package/lib/types/with-schemas/internal/store.d.ts +4 -0
  325. package/lib/types/with-schemas/mergeable-store.d.ts +492 -0
  326. package/lib/types/with-schemas/metrics.d.ts +2 -2
  327. package/lib/types/with-schemas/persisters/persister-automerge.d.ts +12 -8
  328. package/lib/types/with-schemas/persisters/persister-browser.d.ts +17 -8
  329. package/lib/types/with-schemas/persisters/persister-cr-sqlite-wasm.d.ts +5 -1
  330. package/lib/types/with-schemas/persisters/persister-electric-sql.d.ts +5 -1
  331. package/lib/types/with-schemas/persisters/persister-expo-sqlite-next.d.ts +5 -1
  332. package/lib/types/with-schemas/persisters/persister-expo-sqlite.d.ts +5 -1
  333. package/lib/types/with-schemas/persisters/persister-file.d.ts +9 -4
  334. package/lib/types/with-schemas/persisters/persister-indexed-db.d.ts +5 -1
  335. package/lib/types/with-schemas/persisters/persister-libsql.d.ts +155 -0
  336. package/lib/types/with-schemas/persisters/persister-partykit-client.d.ts +5 -1
  337. package/lib/types/with-schemas/persisters/persister-partykit-server.d.ts +15 -11
  338. package/lib/types/with-schemas/persisters/persister-powersync.d.ts +170 -0
  339. package/lib/types/with-schemas/persisters/persister-remote.d.ts +5 -1
  340. package/lib/types/with-schemas/persisters/persister-sqlite-wasm.d.ts +5 -1
  341. package/lib/types/with-schemas/persisters/persister-sqlite3.d.ts +5 -1
  342. package/lib/types/with-schemas/persisters/persister-yjs.d.ts +7 -3
  343. package/lib/types/with-schemas/persisters.d.ts +193 -121
  344. package/lib/types/with-schemas/queries.d.ts +3 -3
  345. package/lib/types/with-schemas/relationships.d.ts +2 -2
  346. package/lib/types/with-schemas/store.d.ts +483 -345
  347. package/lib/types/with-schemas/synchronizers/synchronizer-local.d.ts +29 -0
  348. package/lib/types/with-schemas/synchronizers/synchronizer-ws-client.d.ts +41 -0
  349. package/lib/types/with-schemas/synchronizers/synchronizer-ws-server.d.ts +57 -0
  350. package/lib/types/with-schemas/synchronizers.d.ts +146 -0
  351. package/lib/types/with-schemas/tinybase.d.ts +9 -8
  352. package/lib/types/with-schemas/tools.d.ts +4 -4
  353. package/lib/types/with-schemas/ui-react.d.ts +177 -9
  354. package/lib/ui-react-dom.js +1 -1
  355. package/lib/ui-react-dom.js.gz +0 -0
  356. package/lib/ui-react.js +1 -1
  357. package/lib/ui-react.js.gz +0 -0
  358. package/lib/umd/checkpoints.js +1 -1
  359. package/lib/umd/checkpoints.js.gz +0 -0
  360. package/lib/umd/indexes.js +1 -1
  361. package/lib/umd/indexes.js.gz +0 -0
  362. package/lib/umd/mergeable-store.js +1 -0
  363. package/lib/umd/mergeable-store.js.gz +0 -0
  364. package/lib/umd/metrics.js +1 -1
  365. package/lib/umd/metrics.js.gz +0 -0
  366. package/lib/umd/persisters/persister-automerge.js +1 -1
  367. package/lib/umd/persisters/persister-automerge.js.gz +0 -0
  368. package/lib/umd/persisters/persister-browser.js +1 -1
  369. package/lib/umd/persisters/persister-browser.js.gz +0 -0
  370. package/lib/umd/persisters/persister-cr-sqlite-wasm.js +1 -1
  371. package/lib/umd/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  372. package/lib/umd/persisters/persister-electric-sql.js +1 -1
  373. package/lib/umd/persisters/persister-electric-sql.js.gz +0 -0
  374. package/lib/umd/persisters/persister-expo-sqlite-next.js +1 -1
  375. package/lib/umd/persisters/persister-expo-sqlite-next.js.gz +0 -0
  376. package/lib/umd/persisters/persister-expo-sqlite.js +1 -1
  377. package/lib/umd/persisters/persister-expo-sqlite.js.gz +0 -0
  378. package/lib/umd/persisters/persister-file.js +1 -1
  379. package/lib/umd/persisters/persister-file.js.gz +0 -0
  380. package/lib/umd/persisters/persister-indexed-db.js +1 -1
  381. package/lib/umd/persisters/persister-indexed-db.js.gz +0 -0
  382. package/lib/umd/persisters/persister-libsql.js +1 -0
  383. package/lib/umd/persisters/persister-libsql.js.gz +0 -0
  384. package/lib/umd/persisters/persister-partykit-client.js +1 -1
  385. package/lib/umd/persisters/persister-partykit-client.js.gz +0 -0
  386. package/lib/umd/persisters/persister-partykit-server.js +1 -1
  387. package/lib/umd/persisters/persister-partykit-server.js.gz +0 -0
  388. package/lib/umd/persisters/persister-powersync.js +1 -0
  389. package/lib/umd/persisters/persister-powersync.js.gz +0 -0
  390. package/lib/umd/persisters/persister-remote.js +1 -1
  391. package/lib/umd/persisters/persister-remote.js.gz +0 -0
  392. package/lib/umd/persisters/persister-sqlite-wasm.js +1 -1
  393. package/lib/umd/persisters/persister-sqlite-wasm.js.gz +0 -0
  394. package/lib/umd/persisters/persister-sqlite3.js +1 -1
  395. package/lib/umd/persisters/persister-sqlite3.js.gz +0 -0
  396. package/lib/umd/persisters/persister-yjs.js +1 -1
  397. package/lib/umd/persisters/persister-yjs.js.gz +0 -0
  398. package/lib/umd/persisters.js +1 -1
  399. package/lib/umd/persisters.js.gz +0 -0
  400. package/lib/umd/queries.js +1 -1
  401. package/lib/umd/queries.js.gz +0 -0
  402. package/lib/umd/relationships.js +1 -1
  403. package/lib/umd/relationships.js.gz +0 -0
  404. package/lib/umd/store.js +1 -1
  405. package/lib/umd/store.js.gz +0 -0
  406. package/lib/umd/synchronizers/synchronizer-local.js +1 -0
  407. package/lib/umd/synchronizers/synchronizer-local.js.gz +0 -0
  408. package/lib/umd/synchronizers/synchronizer-ws-client.js +1 -0
  409. package/lib/umd/synchronizers/synchronizer-ws-client.js.gz +0 -0
  410. package/lib/umd/synchronizers/synchronizer-ws-server.js +1 -0
  411. package/lib/umd/synchronizers/synchronizer-ws-server.js.gz +0 -0
  412. package/lib/umd/synchronizers.js +1 -0
  413. package/lib/umd/synchronizers.js.gz +0 -0
  414. package/lib/umd/tinybase.js +1 -1
  415. package/lib/umd/tinybase.js.gz +0 -0
  416. package/lib/umd/tools.js +1 -1
  417. package/lib/umd/tools.js.gz +0 -0
  418. package/lib/umd/ui-react-dom-debug.js +1 -1
  419. package/lib/umd/ui-react-dom-debug.js.gz +0 -0
  420. package/lib/umd/ui-react-dom.js +1 -1
  421. package/lib/umd/ui-react-dom.js.gz +0 -0
  422. package/lib/umd/ui-react.js +1 -1
  423. package/lib/umd/ui-react.js.gz +0 -0
  424. package/lib/umd-es6/checkpoints.js +1 -1
  425. package/lib/umd-es6/checkpoints.js.gz +0 -0
  426. package/lib/umd-es6/indexes.js +1 -1
  427. package/lib/umd-es6/indexes.js.gz +0 -0
  428. package/lib/umd-es6/mergeable-store.js +1 -0
  429. package/lib/umd-es6/mergeable-store.js.gz +0 -0
  430. package/lib/umd-es6/metrics.js +1 -1
  431. package/lib/umd-es6/metrics.js.gz +0 -0
  432. package/lib/umd-es6/persisters/persister-automerge.js +1 -1
  433. package/lib/umd-es6/persisters/persister-automerge.js.gz +0 -0
  434. package/lib/umd-es6/persisters/persister-browser.js +1 -1
  435. package/lib/umd-es6/persisters/persister-browser.js.gz +0 -0
  436. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  437. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  438. package/lib/umd-es6/persisters/persister-electric-sql.js +1 -1
  439. package/lib/umd-es6/persisters/persister-electric-sql.js.gz +0 -0
  440. package/lib/umd-es6/persisters/persister-expo-sqlite-next.js +1 -1
  441. package/lib/umd-es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
  442. package/lib/umd-es6/persisters/persister-expo-sqlite.js +1 -1
  443. package/lib/umd-es6/persisters/persister-expo-sqlite.js.gz +0 -0
  444. package/lib/umd-es6/persisters/persister-file.js +1 -1
  445. package/lib/umd-es6/persisters/persister-file.js.gz +0 -0
  446. package/lib/umd-es6/persisters/persister-indexed-db.js +1 -1
  447. package/lib/umd-es6/persisters/persister-indexed-db.js.gz +0 -0
  448. package/lib/umd-es6/persisters/persister-libsql.js +1 -0
  449. package/lib/umd-es6/persisters/persister-libsql.js.gz +0 -0
  450. package/lib/umd-es6/persisters/persister-partykit-client.js +1 -1
  451. package/lib/umd-es6/persisters/persister-partykit-client.js.gz +0 -0
  452. package/lib/umd-es6/persisters/persister-partykit-server.js +1 -1
  453. package/lib/umd-es6/persisters/persister-partykit-server.js.gz +0 -0
  454. package/lib/umd-es6/persisters/persister-powersync.js +1 -0
  455. package/lib/umd-es6/persisters/persister-powersync.js.gz +0 -0
  456. package/lib/umd-es6/persisters/persister-remote.js +1 -1
  457. package/lib/umd-es6/persisters/persister-remote.js.gz +0 -0
  458. package/lib/umd-es6/persisters/persister-sqlite-wasm.js +1 -1
  459. package/lib/umd-es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  460. package/lib/umd-es6/persisters/persister-sqlite3.js +1 -1
  461. package/lib/umd-es6/persisters/persister-sqlite3.js.gz +0 -0
  462. package/lib/umd-es6/persisters/persister-yjs.js +1 -1
  463. package/lib/umd-es6/persisters/persister-yjs.js.gz +0 -0
  464. package/lib/umd-es6/persisters.js +1 -1
  465. package/lib/umd-es6/persisters.js.gz +0 -0
  466. package/lib/umd-es6/queries.js +1 -1
  467. package/lib/umd-es6/queries.js.gz +0 -0
  468. package/lib/umd-es6/relationships.js +1 -1
  469. package/lib/umd-es6/relationships.js.gz +0 -0
  470. package/lib/umd-es6/store.js +1 -1
  471. package/lib/umd-es6/store.js.gz +0 -0
  472. package/lib/umd-es6/synchronizers/synchronizer-local.js +1 -0
  473. package/lib/umd-es6/synchronizers/synchronizer-local.js.gz +0 -0
  474. package/lib/umd-es6/synchronizers/synchronizer-ws-client.js +1 -0
  475. package/lib/umd-es6/synchronizers/synchronizer-ws-client.js.gz +0 -0
  476. package/lib/umd-es6/synchronizers/synchronizer-ws-server.js +1 -0
  477. package/lib/umd-es6/synchronizers/synchronizer-ws-server.js.gz +0 -0
  478. package/lib/umd-es6/synchronizers.js +1 -0
  479. package/lib/umd-es6/synchronizers.js.gz +0 -0
  480. package/lib/umd-es6/tinybase.js +1 -1
  481. package/lib/umd-es6/tinybase.js.gz +0 -0
  482. package/lib/umd-es6/tools.js +1 -1
  483. package/lib/umd-es6/tools.js.gz +0 -0
  484. package/lib/umd-es6/ui-react-dom-debug.js +1 -1
  485. package/lib/umd-es6/ui-react-dom-debug.js.gz +0 -0
  486. package/lib/umd-es6/ui-react-dom.js +1 -1
  487. package/lib/umd-es6/ui-react-dom.js.gz +0 -0
  488. package/lib/umd-es6/ui-react.js +1 -1
  489. package/lib/umd-es6/ui-react.js.gz +0 -0
  490. package/package.json +65 -45
  491. package/readme.md +2 -2
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t)=>a.repeat(t),i=Promise,c=clearInterval,o=a=>null==a,r=(a,t,e)=>o(a)?e?.():t(a),w=t=>a(t)==s,l=(a,t,e)=>a.slice(t,e),y=a=>a.length,E=async a=>i.all(a),u="_",d="_id",v=a=>`"${a.replace(/"/g,'""')}"`,m="SELECT",A=(a,t="")=>a.join(t),T=(a,t)=>a.map(t),p=a=>0==y(a),L=(a,t)=>a.filter(t),N=(a,...t)=>a.push(...t),O=(a,t)=>a?.has(t)??!1,R=a=>[...a?.values()??[]],f=(a,t)=>a?.delete(t),h=Object,C=a=>h.getPrototypeOf(a),D=h.entries,S=h.keys,g=h.freeze,b=(a=[])=>h.fromEntries(a),I=(...a)=>h.assign({},...a),F=(a,t)=>T(D(a),(([a,e])=>t(e,a))),M=a=>h.values(a),$=a=>y(S(a)),_=a=>(a=>!o(a)&&r(C(a),(a=>a==h.prototype||o(C(a))),(()=>!0)))(a)&&0==$(a),P=a=>new Map(a),B=a=>[...a?.keys()??[]],H=(a,t)=>a?.get(t),W=(a,t)=>T([...a?.entries()??[]],(([a,e])=>t(e,a))),j=(a,t,e)=>o(e)?(f(a,t),a):a?.set(t,e),x=(a,t,e)=>(O(a,t)||j(a,t,e()),H(a,t)),Y=(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)=>!o(((a,t)=>r(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),k=a=>new Set(Array.isArray(a)||o(a)?a:[a]),G=(a,t)=>a?.add(t),J=m+"*FROM",U="FROM pragma_table_",q="WHERE",z=(a,t,s)=>{const n=P();return[async()=>Y(n,b(await E(T(await a("SELECT name "+U+"list WHERE schema='main'AND type='table'AND name IN("+V(t)+")ORDER BY name",t),(async({name:t})=>[t,b(T(await a(m+" name,type "+U+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>j(n,t,Y(x(n,t,P),e,((a,t,e)=>{e!=H(a,t)&&j(a,t,e)}),((a,t)=>j(a,t))))),((a,t)=>j(n,t))),async(t,e)=>((a,t)=>!o(H(H(n,a),t)))(t,e)?b(L(T(await a(J+v(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!o(a)&&!_(t)))):{},async(t,s,i,c,r,w=!1)=>{const l=k();F(i??{},(a=>T(S(a??{}),(a=>G(l,a)))));const y=R(l);if(!w&&r&&p(y)&&O(n,t))return await a("DROP TABLE"+v(t)),void j(n,t);if(p(y)||O(n,t)){const e=H(n,t),i=k(B(e));await E([...T(y,(async s=>{f(i,s)||(await a(`ALTER TABLE${v(t)}ADD${v(s)}`),j(e,s,""))})),...!w&&c?T(R(i),(async n=>{n!=s&&(await a(`ALTER TABLE${v(t)}DROP${v(n)}`),j(e,n))})):[]])}else await a(`CREATE TABLE${v(t)}(${v(s)} PRIMARY KEY ON CONFLICT REPLACE${A(T(y,(a=>e+v(a))))});`),j(n,t,P([[s,""],...T(y,(a=>[a,""]))]));if(w)o(i)?await a("DELETE FROM"+v(t)+"WHERE 1"):await E(F(i,(async(e,n)=>{o(e)?await a("DELETE FROM"+v(t)+q+v(s)+"=?",[n]):p(y)||await K(a,t,s,S(e),[n,...M(e)])})));else if(p(y))O(n,t)&&await a("DELETE FROM"+v(t)+"WHERE 1");else{const e=L(B(H(n,t)),(a=>a!=s)),c=[],o=[];F(i??{},((a,t)=>{N(c,t,...T(e,(t=>a?.[t]))),N(o,t)})),await K(a,t,s,e,c),await a("DELETE FROM"+v(t)+q+v(s)+"NOT IN("+V(o)+")",o)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},K=async(a,t,s,i,c)=>await a("INSERT INTO"+v(t)+"("+v(s)+A(T(i,(a=>e+v(a))))+")VALUES"+l(n(`,(?${n(",?",y(i))})`,y(c)/(y(i)+1)),1)+"ON CONFLICT("+v(s)+")DO UPDATE SET"+A(T(i,(a=>v(a)+"=excluded."+v(a))),e),c),V=a=>A(T(a,(()=>"?")),e),Q=JSON.parse,X=P(),Z=P(),aa=(a,t,e,s,n,i,[c,w]=[],l=[])=>{let y,E,u,d=0,v=0;x(X,l,(()=>0)),x(Z,l,(()=>[]));const m=async a=>(2!=d&&(d=1,await A.schedule((async()=>{await a(),d=0}))),A),A={load:async(e,s)=>await m((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(A.stopAutoLoad(),await A.load(e,n),v=1,u=s((async(e,s)=>{if(s){const t=s();await m((async()=>a.setTransactionChanges(t)))}else await m((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),A),stopAutoLoad:()=>(v&&(n(u),u=void 0,v=0),A),save:async t=>(1!=d&&(d=2,await A.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}d=0}))),A),startAutoSave:async()=>(await A.stopAutoSave().save(),y=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();_(e)&&_(s)||A.save((()=>[e,s]))})),A),stopAutoSave:()=>(r(y,a.delListener),y=void 0,A),schedule:async(...a)=>(N(H(Z,l),...a),await(async()=>{if(!H(X,l)){for(j(X,l,1);!o((a=H(Z,l),E=a.shift()));)try{await E()}catch(a){i?.(a)}j(X,l,0)}var a})(),A),getStore:()=>a,destroy:()=>A.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(A[c]=()=>w),g(A)},ta="store",ea=(a,t,e,s,n,[i],c,o,r)=>{const[w,l,y,E]=z(t,c,n);return aa(a,(async()=>await E((async()=>(await w(),Q((await l(i,d))[u]?.[ta]??"null"))))),(async a=>await E((async()=>{var t;await w(),await y(i,d,{[u]:{[ta]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?h.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,[r,o],o)},sa=(a,t,e,s,n,[i,c,[r,w,l]],y,v,m)=>{const[A,T,p,N]=z(t,y,n),O=async(a,t)=>await E(W(c,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await p(e,s,o,n,i,t)}))),R=async(a,t)=>w?await p(l,d,{[u]:a},!0,!0,t):null;return aa(a,(async()=>await N((async()=>{await A();const a=await(async()=>b(L(await E(W(i,(async([a,t],e)=>[a,await T(e,t)]))),(a=>!_(a[1])))))(),t=await(async()=>r?(await T(l,d))[u]:{})();return _(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await N((async()=>{if(await A(),o(t)){const[t,e]=a();await O(t),await R(e)}else{const[a,e]=t();await O(a,!0),await R(e,!0)}}))),e,s,n,[m,v],v)},na="json",ia="autoLoadIntervalSeconds",ca="rowIdColumnName",oa="tableId",ra="tableName",wa={mode:na,[ia]:1},la={load:0,save:0,[ra]:t+"_values"},ya=(a,t,e,s)=>{const n=P();return F(a,((a,i)=>{const c=l(M(I(t,w(a)?{[e]:a}:a)),0,$(t));o(c[0])||s(i,c[0])||j(n,i,c)})),n},Ea="pragma ",ua="data_version",da="schema_version",va=(a,e,s,n,i,o,r,y,E="getDb")=>{let u,v,A;const[T,p,L,N]=(a=>{const e=(a=>I(wa,w(a)?{storeTableName:a}:a??{}))(a),s=e[ia];if(e.mode==na){const{storeTableName:a=t}=e;return[1,s,[a],k(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=e,o=l(M(I(la,c)),0,$(la)),r=o[2],y=k(r);return[0,s,[ya(n,{[oa]:null,[ca]:d},oa,(a=>G(y,a)&&a==r)),ya(i,{[ra]:null,[ca]:d,deleteEmptyColumns:0,deleteEmptyTable:0},ra,((a,t)=>G(y,t)&&t==r)),o],y]})(e);return(T?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+ua))[0][ua],e=(await s(Ea+da))[0][da],n=(await s(m+" TOTAL_CHANGES() c"))[0].c;t==(u??=t)&&e==(v??=e)&&n==(A??=n)||(a(),u=t,v=e)}catch{}},e=p,t(),setInterval(t,1e3*e)),n((t=>N.has(t)?a():0))];var t,e}),(([a,t])=>{c(a),u=v=null,i(t)}),r,L,R(N),y,E)},ma=(a,t,e,s,n)=>va(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);export{ma as createExpoSqlitePersister};
1
+ const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i=(a,t)=>a.repeat(t),r=Promise,c=clearInterval,o=a=>null==a,l=(a,t,e)=>o(a)?e?.():t(a),w=t=>a(t)==s,y=a=>Array.isArray(a),u=(a,t,e)=>a.slice(t,e),d=a=>a.length,E=async a=>r.all(a),g="_",m="_id",p=a=>`"${a.replace(/"/g,'""')}"`,v="SELECT",C=(a,t="")=>a.join(t),A=(a,t)=>a.map(t),N=a=>0==d(a),T=(a,t)=>a.filter(t),f=(a,...t)=>a.push(...t),h=(a,t)=>a?.has(t)??!1,O=a=>[...a?.values()??[]],b=(a,t)=>a?.delete(t),R=Object,L=a=>R.getPrototypeOf(a),S=R.entries,D=R.keys,I=R.freeze,M=(a=[])=>R.fromEntries(a),P=(...a)=>R.assign({},...a),_=(a,t)=>t in a,F=(a,t)=>A(S(a),(([a,e])=>t(e,a))),j=a=>R.values(a),x=a=>d(D(a)),B=a=>(a=>!o(a)&&l(L(a),(a=>a==R.prototype||o(L(a))),(()=>!0)))(a)&&0==x(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)=>o(e)?(b(a,t),a):a?.set(t,e),J=(a,t,e,n)=>(h(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=>_(t,e)?0:n(a,e))),a),W=a=>new Set(y(a)||o(a)?a:[a]),q=(a,t)=>a?.add(t),z="TABLE",K="ALTER "+z,V="DELETE FROM",Q=v+"*FROM",X="FROM pragma_table_",Z="WHERE",aa=(a,t,s,i)=>{const r=H();return[async()=>U(r,M(await E(A(await a("SELECT name "+X+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+ea(t)+")ORDER BY name",t),(async({name:t})=>[t,M(A(await a(v+" name,type "+X+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>G(r,t,U(J(r,t,H),e,((a,t,e)=>{e!=$(a,t)&&G(a,t,e)}),((a,t)=>G(a,t))))),((a,t)=>G(r,t))),async(t,e)=>((a,t)=>!o($($(r,a),t)))(t,e)?M(T(A(await a(Q+p(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!o(a)&&!B(t)))):{},async(t,s,c,l,w,y=!1)=>{const u=W();F(c??{},(a=>A(D(a??{}),(a=>q(u,a)))));const d=O(u);if(!y&&w&&N(d)&&h(r,t))return await a("DROP "+z+p(t)),void G(r,t);if(N(d)||h(r,t)){const n=$(r,t),i=W(Y(n));await E([...A(d,(async s=>{b(i,s)||(await a(K+p(t)+"ADD"+p(s)),G(n,s,e))})),...!y&&l?A(O(i),(async e=>{e!=s&&(await a(K+p(t)+"DROP"+p(e)),G(n,e))})):[]])}else await a("CREATE "+z+p(t)+"("+p(s)+` PRIMARY KEY ON CONFLICT REPLACE${C(A(d,(a=>n+p(a))))});`),G(r,t,H([[s,e],...A(d,(a=>[a,e]))]));if(y)o(c)?await a(V+p(t)+Z+" 1"):await E(F(c,(async(e,n)=>{o(e)?await a(V+p(t)+Z+p(s)+"=?",[n]):N(d)||await ta(a,t,s,D(e),[n,...j(e)],i)})));else if(N(d))h(r,t)&&await a(V+p(t)+Z+" 1");else{const e=T(Y($(r,t)),(a=>a!=s)),n=[],o=[];F(c??{},((a,t)=>{f(n,t,...A(e,(t=>a?.[t]))),f(o,t)})),await ta(a,t,s,e,n,i),await a(V+p(t)+Z+p(s)+"NOT IN("+ea(o)+")",o)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},ta=async(a,t,s,r,c,o=!0)=>await a("INSERT "+(o?e:"OR REPLACE ")+"INTO"+p(t)+"("+p(s)+C(A(r,(a=>n+p(a))))+")VALUES"+u(i(`,(?${i(",?",d(r))})`,d(c)/(d(r)+1)),1)+(o?"ON CONFLICT("+p(s)+")DO UPDATE SET"+C(A(r,(a=>p(a)+"=excluded."+p(a))),n):e),A(c,(a=>a??null))),ea=a=>C(A(a,(()=>"?")),n),na=JSON.parse,sa=H(),ia=H(),ra=(a,t,e,n,s,i,r,c={},w=[])=>{let u,d,E,g=0;J(sa,w,(()=>0)),J(ia,w,(()=>[]));const[m,p,v,C,A]=((a=1,t)=>a>1&&"getMergeableContent"in t?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!B(a)||!B(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!B(a)||!B(t),t.setContent]:0)(r,a),N=t=>{(m&&y(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},T=async a=>(2!=g&&(g=1,await R((async()=>{try{N(await t())}catch(t){i?.(t),a&&A(a)}g=0}))),L),h=()=>(d&&(s(d),d=void 0),L),O=async a=>(1!=g&&(g=2,await R((async()=>{try{await e(p,a)}catch(a){i?.(a)}g=0}))),L),b=()=>(l(E,a.delListener),E=void 0,L),R=async(...a)=>(f($(ia,w),...a),await(async()=>{if(!$(sa,w)){for(G(sa,w,1);!o((a=$(ia,w),u=a.shift()));)try{await u()}catch(a){i?.(a)}G(sa,w,0)}var a})(),L),L={load:T,startAutoLoad:async a=>(await h().load(a),d=n((async(a,t)=>{t||a?2!=g&&(g=1,N(t??a),g=0):await T()})),L),stopAutoLoad:h,isAutoLoading:()=>!o(d),save:O,startAutoSave:async()=>(await b().save(),E=a.addDidFinishTransactionListener((()=>{const a=v();C(a)&&O(a)})),L),stopAutoSave:b,isAutoSaving:()=>!o(E),schedule:R,getStore:()=>a,destroy:()=>h().stopAutoSave(),getStats:()=>({}),...c};return I(L)},ca="store",oa=(a,t,e,n,s,[i],r,c,o,l)=>{const[w,y,u,d]=aa(t,r,s,l);return ra(a,(async()=>await d((async()=>(await w(),na((await y(i,m))[g]?.[ca]??"null"))))),(async a=>await d((async()=>{var t;await w(),await u(i,m,{[g]:{[ca]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?R.fromEntries([...t]):t)))}},!0,!0)}))),e,n,s,1,{[o]:()=>c},c)},la=(a,t,e,n,s,[i,r,[c,l,w]],y,u,d,p)=>{const[v,C,A,N]=aa(t,y,s,p),f=async(a,t)=>await E(k(r,(async([e,n,s,i],r)=>{t&&!_(a,r)||await A(e,n,a[r],s,i,t)}))),h=async(a,t)=>l?await A(w,m,{[g]:a},!0,!0,t):null;return ra(a,(async()=>await N((async()=>{await v();const a=await(async()=>M(T(await E(k(i,(async([a,t],e)=>[a,await C(e,t)]))),(a=>!B(a[1])))))(),t=await(async()=>c?(await C(w,m))[g]:{})();return B(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await N((async()=>{if(await v(),o(t)){const[t,e]=a();await f(t),await h(e)}else await f(t[0],!0),await h(t[1],!0)}))),e,n,s,1,{[d]:()=>u},u)},wa="json",ya="autoLoadIntervalSeconds",ua="rowIdColumnName",da="tableId",Ea="tableName",ga={mode:wa,[ya]:1},ma={load:0,save:0,[Ea]:t+"_values"},pa=(a,t,e,n)=>{const s=H();return F(a,((a,i)=>{const r=u(j(P(t,w(a)?{[e]:a}:a)),0,x(t));o(r[0])||n(i,r[0])||G(s,i,r)})),s},va="pragma ",Ca="data_version",Aa="schema_version",Na=(a,e,n,s,i,r,o,l,y="getDb",d)=>{let E,g,p;const[C,A,N,T]=(a=>{const e=(a=>P(ga,w(a)?{storeTableName:a}:a??{}))(a),n=e[ya];if(e.mode==wa){const{storeTableName:a=t}=e;return[1,n,[a],W(a)]}const{tables:{load:s={},save:i={}}={},values:r={}}=e,c=u(j(P(ma,r)),0,x(ma)),o=c[2],l=W(o);return[0,n,[pa(s,{[da]:null,[ua]:m},da,(a=>q(l,a)&&a==o)),pa(i,{[Ea]:null,[ua]:m,deleteEmptyColumns:0,deleteEmptyTable:0},Ea,((a,t)=>q(l,t)&&t==o)),c],l]})(e);return(C?oa:la)(a,r?async(a,t)=>(r(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const t=(await n(va+Ca))[0][Ca],e=(await n(va+Aa))[0][Aa],s=(await n(v+" TOTAL_CHANGES() c"))[0].c;t==(E??=t)&&e==(g??=e)&&s==(p??=s)||(a(),E=t,g=e)}catch{}},e=A,t(),setInterval(t,1e3*e)),s((t=>T.has(t)?a():0))];var t,e}),(([a,t])=>{c(a),E=g=null,i(t)}),o,N,O(T),l,y,d)},Ta=(a,t,e,n,s)=>Na(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);export{Ta as createExpoSqlitePersister};
@@ -1 +1 @@
1
- import{watch as t}from"fs";import{readFile as a,writeFile as e}from"fs/promises";const s="utf8",o=t=>null==t,n=(t,a,e)=>o(t)?e?.():a(t),r=Object,c=t=>r.getPrototypeOf(t),i=r.keys,y=r.freeze,u=t=>(t=>!o(t)&&n(c(t),(t=>t==r.prototype||o(c(t))),(()=>!0)))(t)&&0==(t=>i(t).length)(t),d=JSON.parse,p=t=>new Map(t),w=(t,a)=>t?.get(a),f=(t,a,e)=>{return o(e)?(s=t,n=a,s?.delete(n),t):t?.set(a,e);var s,n},h=(t,a,e)=>{var s,o;return s=t,o=a,s?.has(o)||f(t,a,e()),w(t,a)},l=p(),v=p(),g=(c,i,p)=>((t,a,e,s,r,c,[i,d]=[],p=[])=>{let g,A,S,m=0,L=0;h(l,p,(()=>0)),h(v,p,(()=>[]));const C=async t=>(2!=m&&(m=1,await O.schedule((async()=>{await t(),m=0}))),O),O={load:async(e,s)=>await C((async()=>{try{t.setContent(await a())}catch{t.setContent([e,s])}})),startAutoLoad:async(e={},o={})=>(O.stopAutoLoad(),await O.load(e,o),L=1,S=s((async(e,s)=>{if(s){const a=s();await C((async()=>t.setTransactionChanges(a)))}else await C((async()=>{try{t.setContent(e?.()??await a())}catch(t){c?.(t)}}))})),O),stopAutoLoad:()=>(L&&(r(S),S=void 0,L=0),O),save:async a=>(1!=m&&(m=2,await O.schedule((async()=>{try{await e(t.getContent,a)}catch(t){c?.(t)}m=0}))),O),startAutoSave:async()=>(await O.stopAutoSave().save(),g=t.addDidFinishTransactionListener(((t,a)=>{const[e,s]=a();u(e)&&u(s)||O.save((()=>[e,s]))})),O),stopAutoSave:()=>(n(g,t.delListener),g=void 0,O),schedule:async(...t)=>(((t,...a)=>{t.push(...a)})(w(v,p),...t),await(async()=>{if(!w(l,p)){for(f(l,p,1);!o((t=w(v,p),A=t.shift()));)try{await A()}catch(t){c?.(t)}f(l,p,0)}var t})(),O),getStore:()=>t,destroy:()=>O.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return i&&(O[i]=()=>d),y(O)})(c,(async()=>d(await a(i,s))),(async t=>{return await e(i,(a=t(),JSON.stringify(a,((t,a)=>a instanceof Map?r.fromEntries([...a]):a))),s);var a}),(a=>t(i,(()=>a()))),(t=>t?.close()),p,["getFilePath",i]);export{g as createFilePersister};
1
+ import{watch as t}from"fs";import{readFile as a,writeFile as e}from"fs/promises";const n="utf8",s=t=>null==t,r=(t,a,e)=>s(t)?e?.():a(t),o=Object,i=t=>o.getPrototypeOf(t),c=o.keys,g=o.freeze,y=t=>(t=>!s(t)&&r(i(t),(t=>t==o.prototype||s(i(t))),(()=>!0)))(t)&&0==(t=>c(t).length)(t),l=t=>new Map(t),p=(t,a)=>t?.get(a),u=(t,a,e)=>{return s(e)?(n=t,r=a,n?.delete(r),t):t?.set(a,e);var n,r},d=(t,a,e,n)=>{var s,r;return s=t,r=a,s?.has(r)?n?.(p(t,a)):u(t,a,e()),p(t,a)},v=l(),h=l(),f=(o,i,c)=>((t,a,e,n,o,i,c,l={},f=[])=>{let w,C,A,S=0;d(v,f,(()=>0)),d(h,f,(()=>[]));const[b,M,m,L,O]=((t=1,a)=>t>1&&"getMergeableContent"in a?[1,a.getMergeableContent,a.getTransactionMergeableChanges,([[t],[a]])=>!y(t)||!y(a),a.setDefaultContent]:2!=t?[0,a.getContent,a.getTransactionChanges,([t,a])=>!y(t)||!y(a),a.setContent]:0)(c,t),T=a=>{var e;(b&&(e=a?.[0],Array.isArray(e))?1===a?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===a?.[2]?t.applyChanges:t.setContent)(a)},D=async t=>(2!=S&&(S=1,await P((async()=>{try{T(await a())}catch(a){i?.(a),t&&O(t)}S=0}))),j),F=()=>(C&&(o(C),C=void 0),j),J=async t=>(1!=S&&(S=2,await P((async()=>{try{await e(M,t)}catch(t){i?.(t)}S=0}))),j),N=()=>(r(A,t.delListener),A=void 0,j),P=async(...t)=>(((t,...a)=>{t.push(...a)})(p(h,f),...t),await(async()=>{if(!p(v,f)){for(u(v,f,1);!s((t=p(h,f),w=t.shift()));)try{await w()}catch(t){i?.(t)}u(v,f,0)}var t})(),j),j={load:D,startAutoLoad:async t=>(await F().load(t),C=n((async(t,a)=>{a||t?2!=S&&(S=1,T(a??t),S=0):await D()})),j),stopAutoLoad:F,isAutoLoading:()=>!s(C),save:J,startAutoSave:async()=>(await N().save(),A=t.addDidFinishTransactionListener((()=>{const t=m();L(t)&&J(t)})),j),stopAutoSave:N,isAutoSaving:()=>!s(A),schedule:P,getStore:()=>t,destroy:()=>F().stopAutoSave(),getStats:()=>({}),...l};return g(j)})(o,(async()=>{return t=await a(i,n),JSON.parse(t,((t,a)=>""===a?void 0:a));var t}),(async t=>{return await e(i,(a=t(),JSON.stringify(a,((t,a)=>void 0===a?"":a))),n);var a}),(a=>t(i,(()=>a()))),(t=>t?.close()),c,3,{getFilePath:()=>i});export{f as createFilePersister};
Binary file
@@ -1 +1 @@
1
- const t=Promise,a=clearInterval,e=t=>null==t,s=(t,a,s)=>e(t)?s?.():a(t),n=a=>new t(a),o=async a=>t.all(a),c=(t,a)=>t.map(a),r=(t,...a)=>t.push(...a),i=Object,y=t=>i.getPrototypeOf(t),l=i.entries,d=i.keys,u=i.freeze,w=t=>(t=>!e(t)&&s(y(t),(t=>t==i.prototype||e(y(t))),(()=>!0)))(t)&&0==(t=>d(t).length)(t),v=t=>new Map(t),h=(t,a)=>t?.get(a),p=(t,a,s)=>{return e(s)?(n=t,o=a,n?.delete(o),t):t?.set(a,s);var n,o},g=(t,a,e)=>{var s,n;return s=t,n=a,s?.has(n)||p(t,a,e()),h(t,a)},A=v(),S=v(),f=globalThis.window,b=["t","v"],L={keyPath:"k"},k=async(t,a)=>{const n=((a,e)=>c(l(a),(([a,e])=>C(t,"put",{k:a,v:e}))))(a);c(await C(t,"getAllKeys"),(o=>((t,a)=>!e(((t,a)=>s(t,(t=>t[a])))(t,a)))(a,o)?0:r(n,C(t,"delete",o)))),await o(n)},C=async(t,a,e)=>n(((s,n)=>{const o=t[a](e);o.onsuccess=()=>s(o.result),o.onerror=()=>n(`objectStore.${a} error`)})),j=(t,y,l=1,d)=>{const v=async(t,a=[],e=0)=>n(((s,n)=>{const r=f.indexedDB.open(y,e?2:void 0);r.onupgradeneeded=()=>e&&c(b,(t=>{try{r.result.createObjectStore(t,L)}catch{}})),r.onsuccess=async()=>{try{const e=r.result.transaction(b,"readwrite"),n=await o(c(b,(async(s,n)=>await t(e.objectStore(s),a[n]))));r.result.close(),s(n)}catch(t){r.result.close(),n(t)}},r.onerror=()=>n("indexedDB.open error")}));return((t,a,n,o,c,i,[y,l]=[],d=[])=>{let v,f,b,L=0,k=0;g(A,d,(()=>0)),g(S,d,(()=>[]));const C=async t=>(2!=L&&(L=1,await j.schedule((async()=>{await t(),L=0}))),j),j={load:async(e,s)=>await C((async()=>{try{t.setContent(await a())}catch{t.setContent([e,s])}})),startAutoLoad:async(e={},s={})=>(j.stopAutoLoad(),await j.load(e,s),k=1,b=o((async(e,s)=>{if(s){const a=s();await C((async()=>t.setTransactionChanges(a)))}else await C((async()=>{try{t.setContent(e?.()??await a())}catch(t){i?.(t)}}))})),j),stopAutoLoad:()=>(k&&(c(b),b=void 0,k=0),j),save:async a=>(1!=L&&(L=2,await j.schedule((async()=>{try{await n(t.getContent,a)}catch(t){i?.(t)}L=0}))),j),startAutoSave:async()=>(await j.stopAutoSave().save(),v=t.addDidFinishTransactionListener(((t,a)=>{const[e,s]=a();w(e)&&w(s)||j.save((()=>[e,s]))})),j),stopAutoSave:()=>(s(v,t.delListener),v=void 0,j),schedule:async(...t)=>(r(h(S,d),...t),await(async()=>{if(!h(A,d)){for(p(A,d,1);!e((t=h(S,d),f=t.shift()));)try{await f()}catch(t){i?.(t)}p(A,d,0)}var t})(),j),getStore:()=>t,destroy:()=>j.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return y&&(j[y]=()=>l),u(j)})(t,(async()=>await v((async t=>((t=[])=>i.fromEntries(t))(c(await C(t,"getAll"),(({k:t,v:a})=>[t,a])))))),(async t=>await v((async(t,a)=>await k(t,a)),t(),1)),(t=>setInterval(t,1e3*l)),(t=>a(t)),d,["getDbName",y])};export{j as createIndexedDbPersister,k as objectStoreMatch};
1
+ const t=Promise,e=clearInterval,a=t=>null==t,n=(t,e,n)=>a(t)?n?.():e(t),s=e=>new t(e),r=async e=>t.all(e),o=(t,e)=>t.map(e),c=(t,...e)=>t.push(...e),i=Object,l=t=>i.getPrototypeOf(t),y=i.entries,d=i.keys,g=i.freeze,u=t=>(t=>!a(t)&&n(l(t),(t=>t==i.prototype||a(l(t))),(()=>!0)))(t)&&0==(t=>d(t).length)(t),w=t=>new Map(t),p=(t,e)=>t?.get(e),v=(t,e,n)=>{return a(n)?(s=t,r=e,s?.delete(r),t):t?.set(e,n);var s,r},h=(t,e,a,n)=>{var s,r;return s=t,r=e,s?.has(r)?n?.(p(t,e)):v(t,e,a()),p(t,e)},b=w(),A=w(),C=globalThis.window,S=["t","v"],f={keyPath:"k"},D=async(t,e)=>{const a=((e,a)=>o(y(e),(([e,a])=>M(t,"put",{k:e,v:a}))))(e);o(await M(t,"getAllKeys"),(n=>((t,e)=>e in t)(e,n)?0:c(a,M(t,"delete",n)))),await r(a)},M=async(t,e,a)=>s(((n,s)=>{const r=t[e](a);r.onsuccess=()=>n(r.result),r.onerror=()=>s(`objectStore.${e} error`)})),k=(t,l,y=1,d)=>{const w=async(t,e=[],a=0)=>s(((n,s)=>{const c=(C?C.indexedDB:indexedDB).open(l,a?2:void 0);c.onupgradeneeded=()=>a&&o(S,(t=>{try{c.result.createObjectStore(t,f)}catch{}})),c.onsuccess=async()=>{try{const a=c.result.transaction(S,"readwrite"),s=await r(o(S,(async(n,s)=>await t(a.objectStore(n),e[s]))));c.result.close(),n(s)}catch(t){c.result.close(),s(t)}},c.onerror=()=>s("indexedDB.open error")}));return((t,e,s,r,o,i,l,y={},d=[])=>{let w,C,S,f=0;h(b,d,(()=>0)),h(A,d,(()=>[]));const[D,M,k,L,j]=((t=1,e)=>t>1&&"getMergeableContent"in e?[1,e.getMergeableContent,e.getTransactionMergeableChanges,([[t],[e]])=>!u(t)||!u(e),e.setDefaultContent]:2!=t?[0,e.getContent,e.getTransactionChanges,([t,e])=>!u(t)||!u(e),e.setContent]:0)(l,t),m=e=>{var a;(D&&(a=e?.[0],Array.isArray(a))?1===e?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},x=async t=>(2!=f&&(f=1,await P((async()=>{try{m(await e())}catch(e){i?.(e),t&&j(t)}f=0}))),I),T=()=>(C&&(o(C),C=void 0),I),B=async t=>(1!=f&&(f=2,await P((async()=>{try{await s(M,t)}catch(t){i?.(t)}f=0}))),I),O=()=>(n(S,t.delListener),S=void 0,I),P=async(...t)=>(c(p(A,d),...t),await(async()=>{if(!p(b,d)){for(v(b,d,1);!a((t=p(A,d),w=t.shift()));)try{await w()}catch(t){i?.(t)}v(b,d,0)}var t})(),I),I={load:x,startAutoLoad:async t=>(await T().load(t),C=r((async(t,e)=>{e||t?2!=f&&(f=1,m(e??t),f=0):await x()})),I),stopAutoLoad:T,isAutoLoading:()=>!a(C),save:B,startAutoSave:async()=>(await O().save(),S=t.addDidFinishTransactionListener((()=>{const t=k();L(t)&&B(t)})),I),stopAutoSave:O,isAutoSaving:()=>!a(S),schedule:P,getStore:()=>t,destroy:()=>T().stopAutoSave(),getStats:()=>({}),...y};return g(I)})(t,(async()=>await w((async t=>((t=[])=>i.fromEntries(t))(o(await M(t,"getAll"),(({k:t,v:e})=>[t,e])))))),(async t=>await w((async(t,e)=>await D(t,e)),t(),1)),(t=>setInterval(t,1e3*y)),(t=>e(t)),d,1,{getDbName:()=>l})};export{k as createIndexedDbPersister,D as objectStoreMatch};
@@ -0,0 +1 @@
1
+ const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i=(a,t)=>a.repeat(t),r=Promise,c=clearInterval,o=a=>null==a,l=(a,t,e)=>o(a)?e?.():t(a),w=t=>a(t)==s,y=a=>Array.isArray(a),u=(a,t,e)=>a.slice(t,e),d=a=>a.length,E=async a=>r.all(a),g="_",p="_id",v=a=>`"${a.replace(/"/g,'""')}"`,m="SELECT",C=(a,t="")=>a.join(t),A=(a,t)=>a.map(t),T=a=>0==d(a),f=(a,t)=>a.filter(t),N=(a,...t)=>a.push(...t),O=(a,t)=>a?.has(t)??!1,h=a=>[...a?.values()??[]],R=(a,t)=>a?.delete(t),L=Object,b=a=>L.getPrototypeOf(a),S=L.entries,D=L.keys,I=L.freeze,M=(a=[])=>L.fromEntries(a),P=(...a)=>L.assign({},...a),_=(a,t)=>t in a,F=(a,t)=>A(S(a),(([a,e])=>t(e,a))),j=a=>L.values(a),x=a=>d(D(a)),B=a=>(a=>!o(a)&&l(b(a),(a=>a==L.prototype||o(b(a))),(()=>!0)))(a)&&0==x(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)=>o(e)?(R(a,t),a):a?.set(t,e),J=(a,t,e,n)=>(O(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=>_(t,e)?0:n(a,e))),a),W=a=>new Set(y(a)||o(a)?a:[a]),q=(a,t)=>a?.add(t),z="TABLE",K="ALTER "+z,V="DELETE FROM",Q=m+"*FROM",X="FROM pragma_table_",Z="WHERE",aa=(a,t,s,i)=>{const r=H();return[async()=>U(r,M(await E(A(await a("SELECT name "+X+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+ea(t)+")ORDER BY name",t),(async({name:t})=>[t,M(A(await a(m+" name,type "+X+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>G(r,t,U(J(r,t,H),e,((a,t,e)=>{e!=$(a,t)&&G(a,t,e)}),((a,t)=>G(a,t))))),((a,t)=>G(r,t))),async(t,e)=>((a,t)=>!o($($(r,a),t)))(t,e)?M(f(A(await a(Q+v(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!o(a)&&!B(t)))):{},async(t,s,c,l,w,y=!1)=>{const u=W();F(c??{},(a=>A(D(a??{}),(a=>q(u,a)))));const d=h(u);if(!y&&w&&T(d)&&O(r,t))return await a("DROP "+z+v(t)),void G(r,t);if(T(d)||O(r,t)){const n=$(r,t),i=W(Y(n));await E([...A(d,(async s=>{R(i,s)||(await a(K+v(t)+"ADD"+v(s)),G(n,s,e))})),...!y&&l?A(h(i),(async e=>{e!=s&&(await a(K+v(t)+"DROP"+v(e)),G(n,e))})):[]])}else await a("CREATE "+z+v(t)+"("+v(s)+` PRIMARY KEY ON CONFLICT REPLACE${C(A(d,(a=>n+v(a))))});`),G(r,t,H([[s,e],...A(d,(a=>[a,e]))]));if(y)o(c)?await a(V+v(t)+Z+" 1"):await E(F(c,(async(e,n)=>{o(e)?await a(V+v(t)+Z+v(s)+"=?",[n]):T(d)||await ta(a,t,s,D(e),[n,...j(e)],i)})));else if(T(d))O(r,t)&&await a(V+v(t)+Z+" 1");else{const e=f(Y($(r,t)),(a=>a!=s)),n=[],o=[];F(c??{},((a,t)=>{N(n,t,...A(e,(t=>a?.[t]))),N(o,t)})),await ta(a,t,s,e,n,i),await a(V+v(t)+Z+v(s)+"NOT IN("+ea(o)+")",o)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},ta=async(a,t,s,r,c,o=!0)=>await a("INSERT "+(o?e:"OR REPLACE ")+"INTO"+v(t)+"("+v(s)+C(A(r,(a=>n+v(a))))+")VALUES"+u(i(`,(?${i(",?",d(r))})`,d(c)/(d(r)+1)),1)+(o?"ON CONFLICT("+v(s)+")DO UPDATE SET"+C(A(r,(a=>v(a)+"=excluded."+v(a))),n):e),A(c,(a=>a??null))),ea=a=>C(A(a,(()=>"?")),n),na=JSON.parse,sa=H(),ia=H(),ra=(a,t,e,n,s,i,r,c={},w=[])=>{let u,d,E,g=0;J(sa,w,(()=>0)),J(ia,w,(()=>[]));const[p,v,m,C,A]=((a=1,t)=>a>1&&"getMergeableContent"in t?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!B(a)||!B(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!B(a)||!B(t),t.setContent]:0)(r,a),T=t=>{(p&&y(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},f=async a=>(2!=g&&(g=1,await L((async()=>{try{T(await t())}catch(t){i?.(t),a&&A(a)}g=0}))),b),O=()=>(d&&(s(d),d=void 0),b),h=async a=>(1!=g&&(g=2,await L((async()=>{try{await e(v,a)}catch(a){i?.(a)}g=0}))),b),R=()=>(l(E,a.delListener),E=void 0,b),L=async(...a)=>(N($(ia,w),...a),await(async()=>{if(!$(sa,w)){for(G(sa,w,1);!o((a=$(ia,w),u=a.shift()));)try{await u()}catch(a){i?.(a)}G(sa,w,0)}var a})(),b),b={load:f,startAutoLoad:async a=>(await O().load(a),d=n((async(a,t)=>{t||a?2!=g&&(g=1,T(t??a),g=0):await f()})),b),stopAutoLoad:O,isAutoLoading:()=>!o(d),save:h,startAutoSave:async()=>(await R().save(),E=a.addDidFinishTransactionListener((()=>{const a=m();C(a)&&h(a)})),b),stopAutoSave:R,isAutoSaving:()=>!o(E),schedule:L,getStore:()=>a,destroy:()=>O().stopAutoSave(),getStats:()=>({}),...c};return I(b)},ca="store",oa=(a,t,e,n,s,[i],r,c,o,l)=>{const[w,y,u,d]=aa(t,r,s,l);return ra(a,(async()=>await d((async()=>(await w(),na((await y(i,p))[g]?.[ca]??"null"))))),(async a=>await d((async()=>{var t;await w(),await u(i,p,{[g]:{[ca]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?L.fromEntries([...t]):t)))}},!0,!0)}))),e,n,s,1,{[o]:()=>c},c)},la=(a,t,e,n,s,[i,r,[c,l,w]],y,u,d,v)=>{const[m,C,A,T]=aa(t,y,s,v),N=async(a,t)=>await E(k(r,(async([e,n,s,i],r)=>{t&&!_(a,r)||await A(e,n,a[r],s,i,t)}))),O=async(a,t)=>l?await A(w,p,{[g]:a},!0,!0,t):null;return ra(a,(async()=>await T((async()=>{await m();const a=await(async()=>M(f(await E(k(i,(async([a,t],e)=>[a,await C(e,t)]))),(a=>!B(a[1])))))(),t=await(async()=>c?(await C(w,p))[g]:{})();return B(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await T((async()=>{if(await m(),o(t)){const[t,e]=a();await N(t),await O(e)}else await N(t[0],!0),await O(t[1],!0)}))),e,n,s,1,{[d]:()=>u},u)},wa="json",ya="autoLoadIntervalSeconds",ua="rowIdColumnName",da="tableId",Ea="tableName",ga={mode:wa,[ya]:1},pa={load:0,save:0,[Ea]:t+"_values"},va=(a,t,e,n)=>{const s=H();return F(a,((a,i)=>{const r=u(j(P(t,w(a)?{[e]:a}:a)),0,x(t));o(r[0])||n(i,r[0])||G(s,i,r)})),s},ma="pragma ",Ca="data_version",Aa="schema_version",Ta=(a,e,n,s,i,r,o,l,y="getDb",d)=>{let E,g,v;const[C,A,T,f]=(a=>{const e=(a=>P(ga,w(a)?{storeTableName:a}:a??{}))(a),n=e[ya];if(e.mode==wa){const{storeTableName:a=t}=e;return[1,n,[a],W(a)]}const{tables:{load:s={},save:i={}}={},values:r={}}=e,c=u(j(P(pa,r)),0,x(pa)),o=c[2],l=W(o);return[0,n,[va(s,{[da]:null,[ua]:p},da,(a=>q(l,a)&&a==o)),va(i,{[Ea]:null,[ua]:p,deleteEmptyColumns:0,deleteEmptyTable:0},Ea,((a,t)=>q(l,t)&&t==o)),c],l]})(e);return(C?oa:la)(a,r?async(a,t)=>(r(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const t=(await n(ma+Ca))[0][Ca],e=(await n(ma+Aa))[0][Aa],s=(await n(m+" TOTAL_CHANGES() c"))[0].c;t==(E??=t)&&e==(g??=e)&&s==(v??=s)||(a(),E=t,g=e)}catch{}},e=A,t(),setInterval(t,1e3*e)),s((t=>f.has(t)?a():0))];var t,e}),(([a,t])=>{c(a),E=g=null,i(t)}),o,T,h(f),l,y,d)},fa=(a,t,e,n,s)=>Ta(a,e,(async(a,e=[])=>(await t.execute({sql:a,args:e})).rows),(()=>()=>0),(a=>a()),n,s,t,"getClient");export{fa as createLibSqlPersister};
@@ -1 +1 @@
1
- const t=t=>typeof t,a="",e=t(a),s=t=>null==t,o=(t,a,e)=>s(t)?e?.():a(t),n=a=>t(a)==e,r=t=>t.length,c=Object,i=t=>c.getPrototypeOf(t),y=c.keys,d=c.freeze,h=t=>(t=>!s(t)&&o(i(t),(t=>t==c.prototype||s(i(t))),(()=>!0)))(t)&&0==(t=>r(y(t)))(t),v=t=>JSON.stringify(t,((t,a)=>a instanceof Map?c.fromEntries([...a]):a)),p=JSON.parse,u="/store",w=t=>new Map(t),l=(t,a)=>t?.get(a),f=(t,a,e)=>{return s(e)?(o=t,n=a,o?.delete(n),t):t?.set(a,e);var o,n},g=(t,a,e)=>{var s,o;return s=t,o=a,s?.has(o)||f(t,a,e()),l(t,a)},S=w(),m=w(),A="message",L=(t,e,c,i)=>{const{host:y,room:w}=e.partySocketOptions,{storeProtocol:L="https",storePath:C=u,messagePrefix:P=a}={...n(c)?{storeProtocol:c}:c},O=L+"://"+y+"/parties/"+e.name+"/"+w+C,E=async t=>await(await fetch(O,{...t?{method:"PUT",body:v(t)}:{},mode:"cors",cache:"no-store"})).json();return((t,a,e,n,r,c,[i,y]=[],v=[])=>{let p,u,w,A=0,L=0;g(S,v,(()=>0)),g(m,v,(()=>[]));const C=async t=>(2!=A&&(A=1,await P.schedule((async()=>{await t(),A=0}))),P),P={load:async(e,s)=>await C((async()=>{try{t.setContent(await a())}catch{t.setContent([e,s])}})),startAutoLoad:async(e={},s={})=>(P.stopAutoLoad(),await P.load(e,s),L=1,w=n((async(e,s)=>{if(s){const a=s();await C((async()=>t.setTransactionChanges(a)))}else await C((async()=>{try{t.setContent(e?.()??await a())}catch(t){c?.(t)}}))})),P),stopAutoLoad:()=>(L&&(r(w),w=void 0,L=0),P),save:async a=>(1!=A&&(A=2,await P.schedule((async()=>{try{await e(t.getContent,a)}catch(t){c?.(t)}A=0}))),P),startAutoSave:async()=>(await P.stopAutoSave().save(),p=t.addDidFinishTransactionListener(((t,a)=>{const[e,s]=a();h(e)&&h(s)||P.save((()=>[e,s]))})),P),stopAutoSave:()=>(o(p,t.delListener),p=void 0,P),schedule:async(...t)=>(((t,...a)=>{t.push(...a)})(l(m,v),...t),await(async()=>{if(!l(S,v)){for(f(S,v,1);!s((t=l(m,v),u=t.shift()));)try{await u()}catch(t){c?.(t)}f(S,v,0)}var t})(),P),getStore:()=>t,destroy:()=>P.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return i&&(P[i]=()=>y),d(P)})(t,(async()=>await E()),(async(t,a)=>{var s,o;a?e.send((s=P,o=a(),s+"s"+(n(o)?o:v(o)))):await E(t())}),(t=>{const a=a=>o(((t,a,e)=>{const s=r(t);return((t,a)=>t.startsWith(a))(a,t)?[a[s],p((o=a,n=s+1,o.slice(n,void 0)))]:void 0;var o,n})(P,a.data),(([a,e])=>{"s"==a&&t(void 0,(()=>e))}));return e.addEventListener(A,a),a}),(t=>{e.removeEventListener(A,t)}),i,["getConnection",e])};export{L as createPartyKitPersister};
1
+ const t=t=>typeof t,e="",a=t(e),s=t=>null==t,n=(t,e,a)=>s(t)?a?.():e(t),o=e=>t(e)==a,r=t=>t.length,i=Object,c=t=>i.getPrototypeOf(t),y=i.keys,g=i.freeze,d=t=>(t=>!s(t)&&n(c(t),(t=>t==i.prototype||s(c(t))),(()=>!0)))(t)&&0==(t=>r(y(t)))(t),h=t=>JSON.stringify(t,((t,e)=>e instanceof Map?i.fromEntries([...e]):e)),l=JSON.parse,p="/store",v=t=>new Map(t),u=(t,e)=>t?.get(e),w=(t,e,a)=>{return s(a)?(n=t,o=e,n?.delete(o),t):t?.set(e,a);var n,o},f=(t,e,a,s)=>{var n,o;return n=t,o=e,n?.has(o)?s?.(u(t,e)):w(t,e,a()),u(t,e)},C=v(),A=v(),S="message",m=(t,a,i,c)=>{const{host:y,room:v}=a.partySocketOptions,{storeProtocol:m="https",storePath:b=p,messagePrefix:L=e}={...o(i)?{storeProtocol:i}:i},M=m+"://"+y+"/parties/"+a.name+"/"+v+b,P=async t=>await(await fetch(M,{...t?{method:"PUT",body:h(t)}:{},mode:"cors",cache:"no-store"})).json();return((t,e,a,o,r,i,c,y={},h=[])=>{let l,p,v,S=0;f(C,h,(()=>0)),f(A,h,(()=>[]));const[m,b,L,M,P]=((t=1,e)=>t>1&&"getMergeableContent"in e?[1,e.getMergeableContent,e.getTransactionMergeableChanges,([[t],[e]])=>!d(t)||!d(e),e.setDefaultContent]:2!=t?[0,e.getContent,e.getTransactionChanges,([t,e])=>!d(t)||!d(e),e.setContent]:0)(c,t),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)},T=async t=>(2!=S&&(S=1,await x((async()=>{try{O(await e())}catch(e){i?.(e),t&&P(t)}S=0}))),D),E=()=>(p&&(r(p),p=void 0),D),j=async t=>(1!=S&&(S=2,await x((async()=>{try{await a(b,t)}catch(t){i?.(t)}S=0}))),D),k=()=>(n(v,t.delListener),v=void 0,D),x=async(...t)=>(((t,...e)=>{t.push(...e)})(u(A,h),...t),await(async()=>{if(!u(C,h)){for(w(C,h,1);!s((t=u(A,h),l=t.shift()));)try{await l()}catch(t){i?.(t)}w(C,h,0)}var t})(),D),D={load:T,startAutoLoad:async t=>(await E().load(t),p=o((async(t,e)=>{e||t?2!=S&&(S=1,O(e??t),S=0):await T()})),D),stopAutoLoad:E,isAutoLoading:()=>!s(p),save:j,startAutoSave:async()=>(await k().save(),v=t.addDidFinishTransactionListener((()=>{const t=L();M(t)&&j(t)})),D),stopAutoSave:k,isAutoSaving:()=>!s(v),schedule:x,getStore:()=>t,destroy:()=>E().stopAutoSave(),getStats:()=>({}),...y};return g(D)})(t,(async()=>await P()),(async(t,e)=>{var s;e?a.send(L+"s"+(o(s=e)?s:h(s))):await P(t())}),(t=>{const e=e=>n(((t,e,a)=>{const s=r(t);return((t,e)=>t.startsWith(e))(e,t)?[e[s],l((n=e,o=s+1,n.slice(o,void 0)))]:void 0;var n,o})(L,e.data),(([e,a])=>{"s"==e&&t(void 0,a)}));return a.addEventListener(S,e),e}),(t=>{a.removeEventListener(S,t)}),c,1,{getConnection:()=>a})};export{m as createPartyKitPersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t=a(""),e="t",s=(a,t)=>a.startsWith(t),n=Promise,i=a=>null==a,r=(a,t,e)=>i(a)?e?.():t(a),c=(a,t,e)=>a.slice(t,e),o=a=>a.length,l=async a=>n.all(a),w=(a,t)=>a.map(t),h=(a,...t)=>a.push(...t),y=Object,g=y.entries,f=(a=[])=>y.fromEntries(a),u=(a,t)=>w(g(a),(([a,e])=>t(e,a))),p=(a,t,e)=>(((a,t)=>!i(((a,t)=>r(a,(a=>a[t])))(a,t)))(a,t)||(a[t]=e()),a[t]),S=a=>JSON.stringify(a,((a,t)=>t instanceof Map?y.fromEntries([...t]):t)),d=JSON.parse,P=(e,s,n)=>e+s+(a(n)==t?n:S(n)),m=(a,t,e)=>{const n=o(a);return s(t,a)?[t[n],(e?d:String)(c(t,n+1))]:void 0},x=(a,t)=>((a,t)=>a?.forEach(t))(a,((a,e)=>t(e,a))),D="hasStore",R=f(w(["Origin","Methods","Headers"],(a=>["Access-Control-Allow-"+a,"*"]))),b=async(a,t="")=>!!await a.get(t+D),C=async(a,t="")=>{const s={},n={};return x(await a.list(),((a,i)=>r(m(t,a),(([a,t])=>{if(a==e){const[a,e,n]=d("["+t+"]");p(p(s,a,f),e,f)[n]=i}else"v"==a&&(n[t]=i)})))),[s,n]},T=async(a,t,e)=>a.party.broadcast(P(a.config.messagePrefix,"s",t),e),v=async(a,t,n,r)=>{const c=a.party.storage,w=a.config.storagePrefix,y={[w+D]:1},g=[],f=[];await l(u(t[0],(async(t,s)=>i(t)?!n&&await a.canDelTable(s,r)&&((a,...t)=>a.unshift(...t))(f,O(w,e,s)):await a.canSetTable(s,n,r)&&await l(u(t,(async(t,o)=>i(t)?!n&&await a.canDelRow(s,o,r)&&h(f,O(w,e,s,o)):await a.canSetRow(s,o,n,r)&&await l(u(t,(async(t,l)=>{const f=[s,o,l],u=O(w,e,...f);i(t)?!n&&await a.canDelCell(...f,r)&&h(g,u):await a.canSetCell(...f,t,n,r,await c.get(u))&&(y[u]=t)}))))))))),await l(u(t[1],(async(t,e)=>{const s=w+"v"+e;i(t)?!n&&await a.canDelValue(e,r)&&h(g,s):await a.canSetValue(e,t,n,r,await c.get(s))&&(y[s]=t)}))),0!=o(f)&&x(await c.list(),(a=>f.every((t=>!s(a,t)||h(g,a)&&0)))),await c.delete(g),await c.put(y)},O=(a,t,...e)=>P(a,t,c(S(e),1,-1)),V=async(a,t,e=null)=>new Response(e,{status:t,headers:a.config.responseHeaders});class E{constructor(a){this.party=a,this.config={},this.config.storePath??="/store",this.config.messagePrefix??="",this.config.storagePrefix??="",this.config.responseHeaders??=R}async onRequest(a){const{party:{storage:t},config:{storePath:e,storagePrefix:s}}=this;if(new URL(a.url).pathname.endsWith(e)){const e=await b(t,s),n=await a.text();return"PUT"==a.method?e?V(this,205):(await v(this,d(n),!0,a),V(this,201)):V(this,200,e?S(await C(t,s)):"")}return V(this,404)}async onMessage(a,t){const{config:{messagePrefix:e,storagePrefix:s}}=this;await r(m(e,a,1),(async([a,e])=>{"s"==a&&await b(this.party.storage,s)&&(await v(this,e,!1,t),T(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}}export{E as TinyBasePartyKitServer,T as broadcastTransactionChanges,b as hasStoreInStorage,C as loadStoreFromStorage};
1
+ const a=a=>typeof a,t=a(""),e="t",s=(a,t)=>a.startsWith(t),n=Promise,i=a=>null==a,r=(a,t,e)=>i(a)?e?.():t(a),c=(a,t,e)=>a.slice(t,e),o=a=>a.length,l=async a=>n.all(a),w=(a,t)=>a.map(t),h=(a,...t)=>a.push(...t),y=Object,g=y.entries,f=(a=[])=>y.fromEntries(a),u=(a,t)=>w(g(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?y.fromEntries([...t]):t)),d=JSON.parse,P=(e,s,n)=>e+s+(a(n)==t?n:S(n)),m=(a,t,e)=>{const n=o(a);return s(t,a)?[t[n],(e?d:String)(c(t,n+1))]:void 0},x=(a,t)=>((a,t)=>a?.forEach(t))(a,((a,e)=>t(e,a))),D="hasStore",R=f(w(["Origin","Methods","Headers"],(a=>["Access-Control-Allow-"+a,"*"]))),b=async(a,t="")=>!!await a.get(t+D),C=async(a,t="")=>{const s={},n={};return x(await a.list(),((a,i)=>r(m(t,a),(([a,t])=>{if(a==e){const[a,e,n]=d("["+t+"]");p(p(s,a,f),e,f)[n]=i}else"v"==a&&(n[t]=i)})))),[s,n]},T=async(a,t,e)=>a.party.broadcast(P(a.config.messagePrefix,"s",t),e),v=async(a,t,n,r)=>{const c=a.party.storage,w=a.config.storagePrefix,y={[w+D]:1},g=[],f=[];await l(u(t[0],(async(t,s)=>i(t)?!n&&await a.canDelTable(s,r)&&((a,...t)=>a.unshift(...t))(f,O(w,e,s)):await a.canSetTable(s,n,r)&&await l(u(t,(async(t,o)=>i(t)?!n&&await a.canDelRow(s,o,r)&&h(f,O(w,e,s,o)):await a.canSetRow(s,o,n,r)&&await l(u(t,(async(t,l)=>{const f=[s,o,l],u=O(w,e,...f);i(t)?!n&&await a.canDelCell(...f,r)&&h(g,u):await a.canSetCell(...f,t,n,r,await c.get(u))&&(y[u]=t)}))))))))),await l(u(t[1],(async(t,e)=>{const s=w+"v"+e;i(t)?!n&&await a.canDelValue(e,r)&&h(g,s):await a.canSetValue(e,t,n,r,await c.get(s))&&(y[s]=t)}))),0!=o(f)&&x(await c.list(),(a=>f.every((t=>!s(a,t)||h(g,a)&&0)))),await c.delete(g),await c.put(y)},O=(a,t,...e)=>P(a,t,c(S(e),1,-1)),V=async(a,t,e=null)=>new Response(e,{status:t,headers:a.config.responseHeaders});class E{constructor(a){this.party=a,this.config={},this.config.storePath??="/store",this.config.messagePrefix??="",this.config.storagePrefix??="",this.config.responseHeaders??=R}async onRequest(a){const{party:{storage:t},config:{storePath:e,storagePrefix:s}}=this;if(new URL(a.url).pathname.endsWith(e)){const e=await b(t,s),n=await a.text();return"PUT"==a.method?e?V(this,205):(await v(this,d(n),!0,a),V(this,201)):V(this,200,e?S(await C(t,s)):"")}return V(this,404)}async onMessage(a,t){const{config:{messagePrefix:e,storagePrefix:s}}=this;await r(m(e,a,1),(async([a,e])=>{"s"==a&&await b(this.party.storage,s)&&(await v(this,e,!1,t),T(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}}export{E as TinyBasePartyKitServer,T as broadcastChanges,b as hasStoreInStorage,C as loadStoreFromStorage};
@@ -0,0 +1 @@
1
+ const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i=(a,t)=>a.repeat(t),r=Promise,o=clearInterval,c=a=>null==a,l=(a,t,e)=>c(a)?e?.():t(a),w=t=>a(t)==s,y=a=>Array.isArray(a),u=(a,t,e)=>a.slice(t,e),d=a=>a.length,E=async a=>r.all(a),g="_",p="_id",m=a=>`"${a.replace(/"/g,'""')}"`,v="SELECT",C=(a,t="")=>a.join(t),A=(a,t)=>a.map(t),T=a=>0==d(a),f=(a,t)=>a.filter(t),h=(a,...t)=>a.push(...t),N=(a,t)=>a?.has(t)??!1,b=a=>[...a?.values()??[]],O=(a,t)=>a?.delete(t),R=Object,L=a=>R.getPrototypeOf(a),S=R.entries,D=R.keys,I=R.freeze,M=(a=[])=>R.fromEntries(a),P=(...a)=>R.assign({},...a),_=(a,t)=>t in a,F=(a,t)=>A(S(a),(([a,e])=>t(e,a))),j=a=>R.values(a),x=a=>d(D(a)),B=a=>(a=>!c(a)&&l(L(a),(a=>a==R.prototype||c(L(a))),(()=>!0)))(a)&&0==x(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)=>c(e)?(O(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=>_(t,e)?0:n(a,e))),a),W=a=>new Set(y(a)||c(a)?a:[a]),z=(a,t)=>a?.add(t),K="TABLE",V="ALTER "+K,q="DELETE FROM",Q=v+"*FROM",X="FROM pragma_table_",Z="WHERE",aa=(a,t,s,i)=>{const r=H();return[async()=>U(r,M(await E(A(await a("SELECT name "+X+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+ea(t)+")ORDER BY name",t),(async({name:t})=>[t,M(A(await a(v+" name,type "+X+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>G(r,t,U(J(r,t,H),e,((a,t,e)=>{e!=$(a,t)&&G(a,t,e)}),((a,t)=>G(a,t))))),((a,t)=>G(r,t))),async(t,e)=>((a,t)=>!c($($(r,a),t)))(t,e)?M(f(A(await a(Q+m(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!c(a)&&!B(t)))):{},async(t,s,o,l,w,y=!1)=>{const u=W();F(o??{},(a=>A(D(a??{}),(a=>z(u,a)))));const d=b(u);if(!y&&w&&T(d)&&N(r,t))return await a("DROP "+K+m(t)),void G(r,t);if(T(d)||N(r,t)){const n=$(r,t),i=W(Y(n));await E([...A(d,(async s=>{O(i,s)||(await a(V+m(t)+"ADD"+m(s)),G(n,s,e))})),...!y&&l?A(b(i),(async e=>{e!=s&&(await a(V+m(t)+"DROP"+m(e)),G(n,e))})):[]])}else await a("CREATE "+K+m(t)+"("+m(s)+` PRIMARY KEY ON CONFLICT REPLACE${C(A(d,(a=>n+m(a))))});`),G(r,t,H([[s,e],...A(d,(a=>[a,e]))]));if(y)c(o)?await a(q+m(t)+Z+" 1"):await E(F(o,(async(e,n)=>{c(e)?await a(q+m(t)+Z+m(s)+"=?",[n]):T(d)||await ta(a,t,s,D(e),[n,...j(e)],i)})));else if(T(d))N(r,t)&&await a(q+m(t)+Z+" 1");else{const e=f(Y($(r,t)),(a=>a!=s)),n=[],c=[];F(o??{},((a,t)=>{h(n,t,...A(e,(t=>a?.[t]))),h(c,t)})),await ta(a,t,s,e,n,i),await a(q+m(t)+Z+m(s)+"NOT IN("+ea(c)+")",c)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},ta=async(a,t,s,r,o,c=!0)=>await a("INSERT "+(c?e:"OR REPLACE ")+"INTO"+m(t)+"("+m(s)+C(A(r,(a=>n+m(a))))+")VALUES"+u(i(`,(?${i(",?",d(r))})`,d(o)/(d(r)+1)),1)+(c?"ON CONFLICT("+m(s)+")DO UPDATE SET"+C(A(r,(a=>m(a)+"=excluded."+m(a))),n):e),A(o,(a=>a??null))),ea=a=>C(A(a,(()=>"?")),n),na=JSON.parse,sa=H(),ia=H(),ra=(a,t,e,n,s,i,r,o={},w=[])=>{let u,d,E,g=0;J(sa,w,(()=>0)),J(ia,w,(()=>[]));const[p,m,v,C,A]=((a=1,t)=>a>1&&"getMergeableContent"in t?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!B(a)||!B(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!B(a)||!B(t),t.setContent]:0)(r,a),T=t=>{(p&&y(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},f=async a=>(2!=g&&(g=1,await R((async()=>{try{T(await t())}catch(t){i?.(t),a&&A(a)}g=0}))),L),N=()=>(d&&(s(d),d=void 0),L),b=async a=>(1!=g&&(g=2,await R((async()=>{try{await e(m,a)}catch(a){i?.(a)}g=0}))),L),O=()=>(l(E,a.delListener),E=void 0,L),R=async(...a)=>(h($(ia,w),...a),await(async()=>{if(!$(sa,w)){for(G(sa,w,1);!c((a=$(ia,w),u=a.shift()));)try{await u()}catch(a){i?.(a)}G(sa,w,0)}var a})(),L),L={load:f,startAutoLoad:async a=>(await N().load(a),d=n((async(a,t)=>{t||a?2!=g&&(g=1,T(t??a),g=0):await f()})),L),stopAutoLoad:N,isAutoLoading:()=>!c(d),save:b,startAutoSave:async()=>(await O().save(),E=a.addDidFinishTransactionListener((()=>{const a=v();C(a)&&b(a)})),L),stopAutoSave:O,isAutoSaving:()=>!c(E),schedule:R,getStore:()=>a,destroy:()=>N().stopAutoSave(),getStats:()=>({}),...o};return I(L)},oa="store",ca=(a,t,e,n,s,[i],r,o,c,l)=>{const[w,y,u,d]=aa(t,r,s,l);return ra(a,(async()=>await d((async()=>(await w(),na((await y(i,p))[g]?.[oa]??"null"))))),(async a=>await d((async()=>{var t;await w(),await u(i,p,{[g]:{[oa]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?R.fromEntries([...t]):t)))}},!0,!0)}))),e,n,s,1,{[c]:()=>o},o)},la=(a,t,e,n,s,[i,r,[o,l,w]],y,u,d,m)=>{const[v,C,A,T]=aa(t,y,s,m),h=async(a,t)=>await E(k(r,(async([e,n,s,i],r)=>{t&&!_(a,r)||await A(e,n,a[r],s,i,t)}))),N=async(a,t)=>l?await A(w,p,{[g]:a},!0,!0,t):null;return ra(a,(async()=>await T((async()=>{await v();const a=await(async()=>M(f(await E(k(i,(async([a,t],e)=>[a,await C(e,t)]))),(a=>!B(a[1])))))(),t=await(async()=>o?(await C(w,p))[g]:{})();return B(a)&&c(t)?void 0:[a,t]}))),(async(a,t)=>await T((async()=>{if(await v(),c(t)){const[t,e]=a();await h(t),await N(e)}else await h(t[0],!0),await N(t[1],!0)}))),e,n,s,1,{[d]:()=>u},u)},wa="json",ya="autoLoadIntervalSeconds",ua="rowIdColumnName",da="tableId",Ea="tableName",ga={mode:wa,[ya]:1},pa={load:0,save:0,[Ea]:t+"_values"},ma=(a,t,e,n)=>{const s=H();return F(a,((a,i)=>{const r=u(j(P(t,w(a)?{[e]:a}:a)),0,x(t));c(r[0])||n(i,r[0])||G(s,i,r)})),s},va="pragma ",Ca="data_version",Aa="schema_version",Ta=(a,e,n,s,i,r,c,l,y="getDb",d)=>{let E,g,m;const[C,A,T,f]=(a=>{const e=(a=>P(ga,w(a)?{storeTableName:a}:a??{}))(a),n=e[ya];if(e.mode==wa){const{storeTableName:a=t}=e;return[1,n,[a],W(a)]}const{tables:{load:s={},save:i={}}={},values:r={}}=e,o=u(j(P(pa,r)),0,x(pa)),c=o[2],l=W(c);return[0,n,[ma(s,{[da]:null,[ua]:p},da,(a=>z(l,a)&&a==c)),ma(i,{[Ea]:null,[ua]:p,deleteEmptyColumns:0,deleteEmptyTable:0},Ea,((a,t)=>z(l,t)&&t==c)),o],l]})(e);return(C?ca:la)(a,r?async(a,t)=>(r(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const t=(await n(va+Ca))[0][Ca],e=(await n(va+Aa))[0][Aa],s=(await n(v+" TOTAL_CHANGES() c"))[0].c;t==(E??=t)&&e==(g??=e)&&s==(m??=s)||(a(),E=t,g=e)}catch{}},e=A,t(),setInterval(t,1e3*e)),s((t=>f.has(t)?a():0))];var t,e}),(([a,t])=>{o(a),E=g=null,i(t)}),c,T,b(f),l,y,d)},fa=(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);export{fa as createPowerSyncPersister};
@@ -1 +1 @@
1
- const t=clearInterval,a=t=>null==t,e=(t,e,s)=>a(t)?s?.():e(t),s=Object,n=t=>s.getPrototypeOf(t),o=s.keys,r=s.freeze,c=t=>(t=>!a(t)&&e(n(t),(t=>t==s.prototype||a(n(t))),(()=>!0)))(t)&&0==(t=>o(t).length)(t),i=JSON.parse,y=t=>new Map(t),d=(t,a)=>t?.get(a),h=(t,e,s)=>{return a(s)?(n=t,o=e,n?.delete(o),t):t?.set(e,s);var n,o},u=(t,a,e)=>{var s,n;return s=t,n=a,s?.has(n)||h(t,a,e()),d(t,a)},l=y(),w=y(),p=t=>t.headers.get("ETag"),v=(n,o,y,v=5,f)=>{let g;return((t,s,n,o,i,y,[p,v]=[],f=[])=>{let g,A,S,C=0,L=0;u(l,f,(()=>0)),u(w,f,(()=>[]));const O=async t=>(2!=C&&(C=1,await T.schedule((async()=>{await t(),C=0}))),T),T={load:async(a,e)=>await O((async()=>{try{t.setContent(await s())}catch{t.setContent([a,e])}})),startAutoLoad:async(a={},e={})=>(T.stopAutoLoad(),await T.load(a,e),L=1,S=o((async(a,e)=>{if(e){const a=e();await O((async()=>t.setTransactionChanges(a)))}else await O((async()=>{try{t.setContent(a?.()??await s())}catch(t){y?.(t)}}))})),T),stopAutoLoad:()=>(L&&(i(S),S=void 0,L=0),T),save:async a=>(1!=C&&(C=2,await T.schedule((async()=>{try{await n(t.getContent,a)}catch(t){y?.(t)}C=0}))),T),startAutoSave:async()=>(await T.stopAutoSave().save(),g=t.addDidFinishTransactionListener(((t,a)=>{const[e,s]=a();c(e)&&c(s)||T.save((()=>[e,s]))})),T),stopAutoSave:()=>(e(g,t.delListener),g=void 0,T),schedule:async(...t)=>(((t,...a)=>{t.push(...a)})(d(w,f),...t),await(async()=>{if(!d(l,f)){for(h(l,f,1);!a((t=d(w,f),A=t.shift()));)try{await A()}catch(t){y?.(t)}h(l,f,0)}var t})(),T),getStore:()=>t,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return p&&(T[p]=()=>v),r(T)})(n,(async()=>{const t=await fetch(o);return g=p(t),i(await t.text())}),(async t=>{return await fetch(y,{method:"POST",headers:{"Content-Type":"application/json"},body:(a=t(),JSON.stringify(a,((t,a)=>a instanceof Map?s.fromEntries([...a]):a)))});var a}),(t=>setInterval((async()=>{const e=await fetch(o,{method:"HEAD"}),s=p(e);a(g)||a(s)||s==g||(g=s,t())}),1e3*v)),(a=>t(a)),f,["getUrls",[o,y]])};export{v as createRemotePersister};
1
+ const t=clearInterval,e=t=>null==t,a=(t,a,n)=>e(t)?n?.():a(t),n=Object,s=t=>n.getPrototypeOf(t),r=n.keys,o=n.freeze,i=t=>(t=>!e(t)&&a(s(t),(t=>t==n.prototype||e(s(t))),(()=>!0)))(t)&&0==(t=>r(t).length)(t),c=JSON.parse,y=t=>new Map(t),g=(t,e)=>t?.get(e),l=(t,a,n)=>{return e(n)?(s=t,r=a,s?.delete(r),t):t?.set(a,n);var s,r},h=(t,e,a,n)=>{var s,r;return s=t,r=e,s?.has(r)?n?.(g(t,e)):l(t,e,a()),g(t,e)},d=y(),p=y(),u=t=>t.headers.get("ETag"),v=(s,r,y,v=5,w)=>{let f;return((t,n,s,r,c,y,u,v={},w=[])=>{let f,C,A,S=0;h(d,w,(()=>0)),h(p,w,(()=>[]));const[b,M,T,L,O]=((t=1,e)=>t>1&&"getMergeableContent"in e?[1,e.getMergeableContent,e.getTransactionMergeableChanges,([[t],[e]])=>!i(t)||!i(e),e.setDefaultContent]:2!=t?[0,e.getContent,e.getTransactionChanges,([t,e])=>!i(t)||!i(e),e.setContent]:0)(u,t),m=e=>{var a;(b&&(a=e?.[0],Array.isArray(a))?1===e?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},D=async t=>(2!=S&&(S=1,await I((async()=>{try{m(await n())}catch(e){y?.(e),t&&O(t)}S=0}))),J),E=()=>(C&&(c(C),C=void 0),J),j=async t=>(1!=S&&(S=2,await I((async()=>{try{await s(M,t)}catch(t){y?.(t)}S=0}))),J),x=()=>(a(A,t.delListener),A=void 0,J),I=async(...t)=>(((t,...e)=>{t.push(...e)})(g(p,w),...t),await(async()=>{if(!g(d,w)){for(l(d,w,1);!e((t=g(p,w),f=t.shift()));)try{await f()}catch(t){y?.(t)}l(d,w,0)}var t})(),J),J={load:D,startAutoLoad:async t=>(await E().load(t),C=r((async(t,e)=>{e||t?2!=S&&(S=1,m(e??t),S=0):await D()})),J),stopAutoLoad:E,isAutoLoading:()=>!e(C),save:j,startAutoSave:async()=>(await x().save(),A=t.addDidFinishTransactionListener((()=>{const t=T();L(t)&&j(t)})),J),stopAutoSave:x,isAutoSaving:()=>!e(A),schedule:I,getStore:()=>t,destroy:()=>E().stopAutoSave(),getStats:()=>({}),...v};return o(J)})(s,(async()=>{const t=await fetch(r);return f=u(t),c(await t.text())}),(async t=>{return await fetch(y,{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 a=await fetch(r,{method:"HEAD"}),n=u(a);e(f)||e(n)||n==f||(f=n,t())}),1e3*v)),(e=>t(e)),w,1,{getUrls:()=>[r,y]})};export{v as createRemotePersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t)=>a.repeat(t),i=Promise,c=clearInterval,o=a=>null==a,r=(a,t,e)=>o(a)?e?.():t(a),l=t=>a(t)==s,w=(a,t,e)=>a.slice(t,e),y=a=>a.length,E=async a=>i.all(a),u="_",d="_id",p=a=>`"${a.replace(/"/g,'""')}"`,v="SELECT",T=(a,t="")=>a.join(t),m=(a,t)=>a.map(t),A=a=>0==y(a),L=(a,t)=>a.filter(t),R=(a,...t)=>a.push(...t),h=(a,t)=>a?.has(t)??!1,O=a=>[...a?.values()??[]],f=(a,t)=>a?.delete(t),N=Object,C=a=>N.getPrototypeOf(a),D=N.entries,S=N.keys,b=N.freeze,g=(a=[])=>N.fromEntries(a),I=(...a)=>N.assign({},...a),_=(a,t)=>m(D(a),(([a,e])=>t(e,a))),M=a=>N.values(a),F=a=>y(S(a)),$=a=>(a=>!o(a)&&r(C(a),(a=>a==N.prototype||o(C(a))),(()=>!0)))(a)&&0==F(a),P=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))),k=(a,t,e)=>o(e)?(f(a,t),a):a?.set(t,e),W=(a,t,e)=>(h(a,t)||k(a,t,e()),H(a,t)),x=(a,t,e,s=k)=>(_(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!o(((a,t)=>r(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),Y=a=>new Set(Array.isArray(a)||o(a)?a:[a]),q=(a,t)=>a?.add(t),G=v+"*FROM",J="FROM pragma_table_",U="WHERE",V=(a,t,s)=>{const n=P();return[async()=>x(n,g(await E(m(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,g(m(await a(v+" name,type "+J+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>k(n,t,x(W(n,t,P),e,((a,t,e)=>{e!=H(a,t)&&k(a,t,e)}),((a,t)=>k(a,t))))),((a,t)=>k(n,t))),async(t,e)=>((a,t)=>!o(H(H(n,a),t)))(t,e)?g(L(m(await a(G+p(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!o(a)&&!$(t)))):{},async(t,s,i,c,r,l=!1)=>{const w=Y();_(i??{},(a=>m(S(a??{}),(a=>q(w,a)))));const y=O(w);if(!l&&r&&A(y)&&h(n,t))return await a("DROP TABLE"+p(t)),void k(n,t);if(A(y)||h(n,t)){const e=H(n,t),i=Y(B(e));await E([...m(y,(async s=>{f(i,s)||(await a(`ALTER TABLE${p(t)}ADD${p(s)}`),k(e,s,""))})),...!l&&c?m(O(i),(async n=>{n!=s&&(await a(`ALTER TABLE${p(t)}DROP${p(n)}`),k(e,n))})):[]])}else await a(`CREATE TABLE${p(t)}(${p(s)} PRIMARY KEY ON CONFLICT REPLACE${T(m(y,(a=>e+p(a))))});`),k(n,t,P([[s,""],...m(y,(a=>[a,""]))]));if(l)o(i)?await a("DELETE FROM"+p(t)+"WHERE 1"):await E(_(i,(async(e,n)=>{o(e)?await a("DELETE FROM"+p(t)+U+p(s)+"=?",[n]):A(y)||await z(a,t,s,S(e),[n,...M(e)])})));else if(A(y))h(n,t)&&await a("DELETE FROM"+p(t)+"WHERE 1");else{const e=L(B(H(n,t)),(a=>a!=s)),c=[],o=[];_(i??{},((a,t)=>{R(c,t,...m(e,(t=>a?.[t]))),R(o,t)})),await z(a,t,s,e,c),await a("DELETE FROM"+p(t)+U+p(s)+"NOT IN("+K(o)+")",o)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},z=async(a,t,s,i,c)=>await a("INSERT INTO"+p(t)+"("+p(s)+T(m(i,(a=>e+p(a))))+")VALUES"+w(n(`,(?${n(",?",y(i))})`,y(c)/(y(i)+1)),1)+"ON CONFLICT("+p(s)+")DO UPDATE SET"+T(m(i,(a=>p(a)+"=excluded."+p(a))),e),c),K=a=>T(m(a,(()=>"?")),e),Q=JSON.parse,X=P(),Z=P(),aa=(a,t,e,s,n,i,[c,l]=[],w=[])=>{let y,E,u,d=0,p=0;W(X,w,(()=>0)),W(Z,w,(()=>[]));const v=async a=>(2!=d&&(d=1,await T.schedule((async()=>{await a(),d=0}))),T),T={load:async(e,s)=>await v((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(T.stopAutoLoad(),await T.load(e,n),p=1,u=s((async(e,s)=>{if(s){const t=s();await v((async()=>a.setTransactionChanges(t)))}else await v((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),T),stopAutoLoad:()=>(p&&(n(u),u=void 0,p=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(),y=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();$(e)&&$(s)||T.save((()=>[e,s]))})),T),stopAutoSave:()=>(r(y,a.delListener),y=void 0,T),schedule:async(...a)=>(R(H(Z,w),...a),await(async()=>{if(!H(X,w)){for(k(X,w,1);!o((a=H(Z,w),E=a.shift()));)try{await E()}catch(a){i?.(a)}k(X,w,0)}var a})(),T),getStore:()=>a,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(T[c]=()=>l),b(T)},ta="store",ea=(a,t,e,s,n,[i],c,o,r)=>{const[l,w,y,E]=V(t,c,n);return aa(a,(async()=>await E((async()=>(await l(),Q((await w(i,d))[u]?.[ta]??"null"))))),(async a=>await E((async()=>{var t;await l(),await y(i,d,{[u]:{[ta]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?N.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,[r,o],o)},sa=(a,t,e,s,n,[i,c,[r,l,w]],y,p,v)=>{const[T,m,A,R]=V(t,y,n),h=async(a,t)=>await E(j(c,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await A(e,s,o,n,i,t)}))),O=async(a,t)=>l?await A(w,d,{[u]:a},!0,!0,t):null;return aa(a,(async()=>await R((async()=>{await T();const a=await(async()=>g(L(await E(j(i,(async([a,t],e)=>[a,await m(e,t)]))),(a=>!$(a[1])))))(),t=await(async()=>r?(await m(w,d))[u]:{})();return $(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await R((async()=>{if(await T(),o(t)){const[t,e]=a();await h(t),await O(e)}else{const[a,e]=t();await h(a,!0),await O(e,!0)}}))),e,s,n,[v,p],p)},na="json",ia="autoLoadIntervalSeconds",ca="rowIdColumnName",oa="tableId",ra="tableName",la={mode:na,[ia]:1},wa={load:0,save:0,[ra]:t+"_values"},ya=(a,t,e,s)=>{const n=P();return _(a,((a,i)=>{const c=w(M(I(t,l(a)?{[e]:a}:a)),0,F(t));o(c[0])||s(i,c[0])||k(n,i,c)})),n},Ea="pragma ",ua="data_version",da="schema_version",pa=(a,e,s,n,i,o,r,y,E="getDb")=>{let u,p,T;const[m,A,L,R]=(a=>{const e=(a=>I(la,l(a)?{storeTableName:a}:a??{}))(a),s=e[ia];if(e.mode==na){const{storeTableName:a=t}=e;return[1,s,[a],Y(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=e,o=w(M(I(wa,c)),0,F(wa)),r=o[2],y=Y(r);return[0,s,[ya(n,{[oa]:null,[ca]:d},oa,(a=>q(y,a)&&a==r)),ya(i,{[ra]:null,[ca]:d,deleteEmptyColumns:0,deleteEmptyTable:0},ra,((a,t)=>q(y,t)&&t==r)),o],y]})(e);return(m?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+ua))[0][ua],e=(await s(Ea+da))[0][da],n=(await s(v+" TOTAL_CHANGES() c"))[0].c;t==(u??=t)&&e==(p??=e)&&n==(T??=n)||(a(),u=t,p=e)}catch{}},e=A,t(),setInterval(t,1e3*e)),n((t=>R.has(t)?a():0))];var t,e}),(([a,t])=>{c(a),u=p=null,i(t)}),r,L,O(R),y,E)},va=(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);export{va as createSqliteWasmPersister};
1
+ const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i=(a,t)=>a.repeat(t),o=Promise,r=clearInterval,c=a=>null==a,l=(a,t,e)=>c(a)?e?.():t(a),w=t=>a(t)==s,y=a=>Array.isArray(a),u=(a,t,e)=>a.slice(t,e),d=a=>a.length,E=async a=>o.all(a),p="_",g="_id",m=a=>`"${a.replace(/"/g,'""')}"`,v="SELECT",C=(a,t="")=>a.join(t),A=(a,t)=>a.map(t),h=a=>0==d(a),T=(a,t)=>a.filter(t),f=(a,...t)=>a.push(...t),N=(a,t)=>a?.has(t)??!1,O=a=>[...a?.values()??[]],R=(a,t)=>a?.delete(t),b=Object,L=a=>b.getPrototypeOf(a),S=b.entries,D=b.keys,I=b.freeze,M=(a=[])=>b.fromEntries(a),_=(...a)=>b.assign({},...a),P=(a,t)=>t in a,F=(a,t)=>A(S(a),(([a,e])=>t(e,a))),j=a=>b.values(a),k=a=>d(D(a)),x=a=>(a=>!c(a)&&l(L(a),(a=>a==b.prototype||c(L(a))),(()=>!0)))(a)&&0==k(a),B=a=>new Map(a),H=a=>[...a?.keys()??[]],Y=(a,t)=>a?.get(t),$=(a,t)=>A([...a?.entries()??[]],(([a,e])=>t(e,a))),q=(a,t,e)=>c(e)?(R(a,t),a):a?.set(t,e),G=(a,t,e,n)=>(N(a,t)?n?.(Y(a,t)):q(a,t,e()),Y(a,t)),J=(a,t,e,n=q)=>(F(t,((t,n)=>e(a,n,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>P(t,e)?0:n(a,e))),a),U=a=>new Set(y(a)||c(a)?a:[a]),V=(a,t)=>a?.add(t),W="TABLE",z="ALTER "+W,K="DELETE FROM",Q=v+"*FROM",X="FROM pragma_table_",Z="WHERE",aa=(a,t,s,i)=>{const o=B();return[async()=>J(o,M(await E(A(await a("SELECT name "+X+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+ea(t)+")ORDER BY name",t),(async({name:t})=>[t,M(A(await a(v+" name,type "+X+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>q(o,t,J(G(o,t,B),e,((a,t,e)=>{e!=Y(a,t)&&q(a,t,e)}),((a,t)=>q(a,t))))),((a,t)=>q(o,t))),async(t,e)=>((a,t)=>!c(Y(Y(o,a),t)))(t,e)?M(T(A(await a(Q+m(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!c(a)&&!x(t)))):{},async(t,s,r,l,w,y=!1)=>{const u=U();F(r??{},(a=>A(D(a??{}),(a=>V(u,a)))));const d=O(u);if(!y&&w&&h(d)&&N(o,t))return await a("DROP "+W+m(t)),void q(o,t);if(h(d)||N(o,t)){const n=Y(o,t),i=U(H(n));await E([...A(d,(async s=>{R(i,s)||(await a(z+m(t)+"ADD"+m(s)),q(n,s,e))})),...!y&&l?A(O(i),(async e=>{e!=s&&(await a(z+m(t)+"DROP"+m(e)),q(n,e))})):[]])}else await a("CREATE "+W+m(t)+"("+m(s)+` PRIMARY KEY ON CONFLICT REPLACE${C(A(d,(a=>n+m(a))))});`),q(o,t,B([[s,e],...A(d,(a=>[a,e]))]));if(y)c(r)?await a(K+m(t)+Z+" 1"):await E(F(r,(async(e,n)=>{c(e)?await a(K+m(t)+Z+m(s)+"=?",[n]):h(d)||await ta(a,t,s,D(e),[n,...j(e)],i)})));else if(h(d))N(o,t)&&await a(K+m(t)+Z+" 1");else{const e=T(H(Y(o,t)),(a=>a!=s)),n=[],c=[];F(r??{},((a,t)=>{f(n,t,...A(e,(t=>a?.[t]))),f(c,t)})),await ta(a,t,s,e,n,i),await a(K+m(t)+Z+m(s)+"NOT IN("+ea(c)+")",c)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},ta=async(a,t,s,o,r,c=!0)=>await a("INSERT "+(c?e:"OR REPLACE ")+"INTO"+m(t)+"("+m(s)+C(A(o,(a=>n+m(a))))+")VALUES"+u(i(`,(?${i(",?",d(o))})`,d(r)/(d(o)+1)),1)+(c?"ON CONFLICT("+m(s)+")DO UPDATE SET"+C(A(o,(a=>m(a)+"=excluded."+m(a))),n):e),A(r,(a=>a??null))),ea=a=>C(A(a,(()=>"?")),n),na=JSON.parse,sa=B(),ia=B(),oa=(a,t,e,n,s,i,o,r={},w=[])=>{let u,d,E,p=0;G(sa,w,(()=>0)),G(ia,w,(()=>[]));const[g,m,v,C,A]=((a=1,t)=>a>1&&"getMergeableContent"in t?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!x(a)||!x(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!x(a)||!x(t),t.setContent]:0)(o,a),h=t=>{(g&&y(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},T=async a=>(2!=p&&(p=1,await b((async()=>{try{h(await t())}catch(t){i?.(t),a&&A(a)}p=0}))),L),N=()=>(d&&(s(d),d=void 0),L),O=async a=>(1!=p&&(p=2,await b((async()=>{try{await e(m,a)}catch(a){i?.(a)}p=0}))),L),R=()=>(l(E,a.delListener),E=void 0,L),b=async(...a)=>(f(Y(ia,w),...a),await(async()=>{if(!Y(sa,w)){for(q(sa,w,1);!c((a=Y(ia,w),u=a.shift()));)try{await u()}catch(a){i?.(a)}q(sa,w,0)}var a})(),L),L={load:T,startAutoLoad:async a=>(await N().load(a),d=n((async(a,t)=>{t||a?2!=p&&(p=1,h(t??a),p=0):await T()})),L),stopAutoLoad:N,isAutoLoading:()=>!c(d),save:O,startAutoSave:async()=>(await R().save(),E=a.addDidFinishTransactionListener((()=>{const a=v();C(a)&&O(a)})),L),stopAutoSave:R,isAutoSaving:()=>!c(E),schedule:b,getStore:()=>a,destroy:()=>N().stopAutoSave(),getStats:()=>({}),...r};return I(L)},ra="store",ca=(a,t,e,n,s,[i],o,r,c,l)=>{const[w,y,u,d]=aa(t,o,s,l);return oa(a,(async()=>await d((async()=>(await w(),na((await y(i,g))[p]?.[ra]??"null"))))),(async a=>await d((async()=>{var t;await w(),await u(i,g,{[p]:{[ra]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?b.fromEntries([...t]):t)))}},!0,!0)}))),e,n,s,1,{[c]:()=>r},r)},la=(a,t,e,n,s,[i,o,[r,l,w]],y,u,d,m)=>{const[v,C,A,h]=aa(t,y,s,m),f=async(a,t)=>await E($(o,(async([e,n,s,i],o)=>{t&&!P(a,o)||await A(e,n,a[o],s,i,t)}))),N=async(a,t)=>l?await A(w,g,{[p]:a},!0,!0,t):null;return oa(a,(async()=>await h((async()=>{await v();const a=await(async()=>M(T(await E($(i,(async([a,t],e)=>[a,await C(e,t)]))),(a=>!x(a[1])))))(),t=await(async()=>r?(await C(w,g))[p]:{})();return x(a)&&c(t)?void 0:[a,t]}))),(async(a,t)=>await h((async()=>{if(await v(),c(t)){const[t,e]=a();await f(t),await N(e)}else await f(t[0],!0),await N(t[1],!0)}))),e,n,s,1,{[d]:()=>u},u)},wa="json",ya="autoLoadIntervalSeconds",ua="rowIdColumnName",da="tableId",Ea="tableName",pa={mode:wa,[ya]:1},ga={load:0,save:0,[Ea]:t+"_values"},ma=(a,t,e,n)=>{const s=B();return F(a,((a,i)=>{const o=u(j(_(t,w(a)?{[e]:a}:a)),0,k(t));c(o[0])||n(i,o[0])||q(s,i,o)})),s},va="pragma ",Ca="data_version",Aa="schema_version",ha=(a,e,n,s,i,o,c,l,y="getDb",d)=>{let E,p,m;const[C,A,h,T]=(a=>{const e=(a=>_(pa,w(a)?{storeTableName:a}:a??{}))(a),n=e[ya];if(e.mode==wa){const{storeTableName:a=t}=e;return[1,n,[a],U(a)]}const{tables:{load:s={},save:i={}}={},values:o={}}=e,r=u(j(_(ga,o)),0,k(ga)),c=r[2],l=U(c);return[0,n,[ma(s,{[da]:null,[ua]:g},da,(a=>V(l,a)&&a==c)),ma(i,{[Ea]:null,[ua]:g,deleteEmptyColumns:0,deleteEmptyTable:0},Ea,((a,t)=>V(l,t)&&t==c)),r],l]})(e);return(C?ca:la)(a,o?async(a,t)=>(o(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const t=(await n(va+Ca))[0][Ca],e=(await n(va+Aa))[0][Aa],s=(await n(v+" TOTAL_CHANGES() c"))[0].c;t==(E??=t)&&e==(p??=e)&&s==(m??=s)||(a(),E=t,p=e)}catch{}},e=A,t(),setInterval(t,1e3*e)),s((t=>T.has(t)?a():0))];var t,e}),(([a,t])=>{r(a),E=p=null,i(t)}),c,h,O(T),l,y,d)},Ta=(a,t,e,n,s,i)=>ha(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);export{Ta as createSqliteWasmPersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=(a,t)=>a.repeat(t),i=Promise,c=clearInterval,o=a=>null==a,r=(a,t,e)=>o(a)?e?.():t(a),w=t=>a(t)==n,l=(a,t,e)=>a.slice(t,e),y=a=>a.length,E=async a=>i.all(a),u="_",d="_id",v=a=>`"${a.replace(/"/g,'""')}"`,T="SELECT",A=(a,t="")=>a.join(t),m=(a,t)=>a.map(t),p=a=>0==y(a),L=(a,t)=>a.filter(t),f=(a,...t)=>a.push(...t),O=(a,t)=>a?.has(t)??!1,R=a=>[...a?.values()??[]],h=(a,t)=>a?.delete(t),N=Object,C=a=>N.getPrototypeOf(a),D=N.entries,S=N.keys,g=N.freeze,I=(a=[])=>N.fromEntries(a),b=(...a)=>N.assign({},...a),F=(a,t)=>m(D(a),(([a,e])=>t(e,a))),M=a=>N.values(a),$=a=>y(S(a)),_=a=>(a=>!o(a)&&r(C(a),(a=>a==N.prototype||o(C(a))),(()=>!0)))(a)&&0==$(a),P=a=>new Map(a),B=a=>[...a?.keys()??[]],H=(a,t)=>a?.get(t),W=(a,t)=>m([...a?.entries()??[]],(([a,e])=>t(e,a))),j=(a,t,e)=>o(e)?(h(a,t),a):a?.set(t,e),Y=(a,t,e)=>(O(a,t)||j(a,t,e()),H(a,t)),k=(a,t,e,n=j)=>(F(t,((t,n)=>e(a,n,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!o(((a,t)=>r(a,(a=>a[t])))(a,t)))(t,e)?0:n(a,e))),a),x=a=>new Set(Array.isArray(a)||o(a)?a:[a]),G=(a,t)=>a?.add(t),J=T+"*FROM",U="FROM pragma_table_",z="WHERE",K=(a,t,n)=>{const s=P();return[async()=>k(s,I(await E(m(await a("SELECT name "+U+"list WHERE schema='main'AND type='table'AND name IN("+q(t)+")ORDER BY name",t),(async({name:t})=>[t,I(m(await a(T+" name,type "+U+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>j(s,t,k(Y(s,t,P),e,((a,t,e)=>{e!=H(a,t)&&j(a,t,e)}),((a,t)=>j(a,t))))),((a,t)=>j(s,t))),async(t,e)=>((a,t)=>!o(H(H(s,a),t)))(t,e)?I(L(m(await a(J+v(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!o(a)&&!_(t)))):{},async(t,n,i,c,r,w=!1)=>{const l=x();F(i??{},(a=>m(S(a??{}),(a=>G(l,a)))));const y=R(l);if(!w&&r&&p(y)&&O(s,t))return await a("DROP TABLE"+v(t)),void j(s,t);if(p(y)||O(s,t)){const e=H(s,t),i=x(B(e));await E([...m(y,(async n=>{h(i,n)||(await a(`ALTER TABLE${v(t)}ADD${v(n)}`),j(e,n,""))})),...!w&&c?m(R(i),(async s=>{s!=n&&(await a(`ALTER TABLE${v(t)}DROP${v(s)}`),j(e,s))})):[]])}else await a(`CREATE TABLE${v(t)}(${v(n)} PRIMARY KEY ON CONFLICT REPLACE${A(m(y,(a=>e+v(a))))});`),j(s,t,P([[n,""],...m(y,(a=>[a,""]))]));if(w)o(i)?await a("DELETE FROM"+v(t)+"WHERE 1"):await E(F(i,(async(e,s)=>{o(e)?await a("DELETE FROM"+v(t)+z+v(n)+"=?",[s]):p(y)||await V(a,t,n,S(e),[s,...M(e)])})));else if(p(y))O(s,t)&&await a("DELETE FROM"+v(t)+"WHERE 1");else{const e=L(B(H(s,t)),(a=>a!=n)),c=[],o=[];F(i??{},((a,t)=>{f(c,t,...m(e,(t=>a?.[t]))),f(o,t)})),await V(a,t,n,e,c),await a("DELETE FROM"+v(t)+z+v(n)+"NOT IN("+q(o)+")",o)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){n?.(a)}return await a("END"),e}]},V=async(a,t,n,i,c)=>await a("INSERT INTO"+v(t)+"("+v(n)+A(m(i,(a=>e+v(a))))+")VALUES"+l(s(`,(?${s(",?",y(i))})`,y(c)/(y(i)+1)),1)+"ON CONFLICT("+v(n)+")DO UPDATE SET"+A(m(i,(a=>v(a)+"=excluded."+v(a))),e),c),q=a=>A(m(a,(()=>"?")),e),Q=JSON.parse,X=P(),Z=P(),aa=(a,t,e,n,s,i,[c,w]=[],l=[])=>{let y,E,u,d=0,v=0;Y(X,l,(()=>0)),Y(Z,l,(()=>[]));const T=async a=>(2!=d&&(d=1,await A.schedule((async()=>{await a(),d=0}))),A),A={load:async(e,n)=>await T((async()=>{try{a.setContent(await t())}catch{a.setContent([e,n])}})),startAutoLoad:async(e={},s={})=>(A.stopAutoLoad(),await A.load(e,s),v=1,u=n((async(e,n)=>{if(n){const t=n();await T((async()=>a.setTransactionChanges(t)))}else await T((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),A),stopAutoLoad:()=>(v&&(s(u),u=void 0,v=0),A),save:async t=>(1!=d&&(d=2,await A.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}d=0}))),A),startAutoSave:async()=>(await A.stopAutoSave().save(),y=a.addDidFinishTransactionListener(((a,t)=>{const[e,n]=t();_(e)&&_(n)||A.save((()=>[e,n]))})),A),stopAutoSave:()=>(r(y,a.delListener),y=void 0,A),schedule:async(...a)=>(f(H(Z,l),...a),await(async()=>{if(!H(X,l)){for(j(X,l,1);!o((a=H(Z,l),E=a.shift()));)try{await E()}catch(a){i?.(a)}j(X,l,0)}var a})(),A),getStore:()=>a,destroy:()=>A.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(A[c]=()=>w),g(A)},ta="store",ea=(a,t,e,n,s,[i],c,o,r)=>{const[w,l,y,E]=K(t,c,s);return aa(a,(async()=>await E((async()=>(await w(),Q((await l(i,d))[u]?.[ta]??"null"))))),(async a=>await E((async()=>{var t;await w(),await y(i,d,{[u]:{[ta]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?N.fromEntries([...t]):t)))}},!0,!0)}))),e,n,s,[r,o],o)},na=(a,t,e,n,s,[i,c,[r,w,l]],y,v,T)=>{const[A,m,p,f]=K(t,y,s),O=async(a,t)=>await E(W(c,(async([e,n,s,i],c)=>{const o=a[c];t&&void 0===o||await p(e,n,o,s,i,t)}))),R=async(a,t)=>w?await p(l,d,{[u]:a},!0,!0,t):null;return aa(a,(async()=>await f((async()=>{await A();const a=await(async()=>I(L(await E(W(i,(async([a,t],e)=>[a,await m(e,t)]))),(a=>!_(a[1])))))(),t=await(async()=>r?(await m(l,d))[u]:{})();return _(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await f((async()=>{if(await A(),o(t)){const[t,e]=a();await O(t),await R(e)}else{const[a,e]=t();await O(a,!0),await R(e,!0)}}))),e,n,s,[T,v],v)},sa="json",ia="autoLoadIntervalSeconds",ca="rowIdColumnName",oa="tableId",ra="tableName",wa={mode:sa,[ia]:1},la={load:0,save:0,[ra]:t+"_values"},ya=(a,t,e,n)=>{const s=P();return F(a,((a,i)=>{const c=l(M(b(t,w(a)?{[e]:a}:a)),0,$(t));o(c[0])||n(i,c[0])||j(s,i,c)})),s},Ea="pragma ",ua="data_version",da="schema_version",va=(a,e,n,s,i,o,r,y,E="getDb")=>{let u,v,A;const[m,p,L,f]=(a=>{const e=(a=>b(wa,w(a)?{storeTableName:a}:a??{}))(a),n=e[ia];if(e.mode==sa){const{storeTableName:a=t}=e;return[1,n,[a],x(a)]}const{tables:{load:s={},save:i={}}={},values:c={}}=e,o=l(M(b(la,c)),0,$(la)),r=o[2],y=x(r);return[0,n,[ya(s,{[oa]:null,[ca]:d},oa,(a=>G(y,a)&&a==r)),ya(i,{[ra]:null,[ca]:d,deleteEmptyColumns:0,deleteEmptyTable:0},ra,((a,t)=>G(y,t)&&t==r)),o],y]})(e);return(m?ea:na)(a,o?async(a,t)=>(o(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const t=(await n(Ea+ua))[0][ua],e=(await n(Ea+da))[0][da],s=(await n(T+" TOTAL_CHANGES() c"))[0].c;t==(u??=t)&&e==(v??=e)&&s==(A??=s)||(a(),u=t,v=e)}catch{}},e=p,t(),setInterval(t,1e3*e)),s((t=>f.has(t)?a():0))];var t,e}),(([a,t])=>{c(a),u=v=null,i(t)}),r,L,R(f),y,E)},Ta="change",Aa=(a,t,e,n,s)=>va(a,e,(async(a,e=[])=>{return await(n=(n,s)=>t.all(a,e,((a,t)=>a?s(a):n(t))),new i(n));var n}),(a=>{const e=(t,e,n)=>a(n);return t.on(Ta,e),e}),(a=>t.off(Ta,a)),n,s,t);export{Aa as createSqlite3Persister};
1
+ const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i=(a,t)=>a.repeat(t),r=Promise,c=clearInterval,o=a=>null==a,l=(a,t,e)=>o(a)?e?.():t(a),w=t=>a(t)==s,y=a=>Array.isArray(a),u=(a,t,e)=>a.slice(t,e),d=a=>a.length,E=async a=>r.all(a),g="_",p="_id",v=a=>`"${a.replace(/"/g,'""')}"`,m="SELECT",C=(a,t="")=>a.join(t),f=(a,t)=>a.map(t),A=a=>0==d(a),T=(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),L=Object,b=a=>L.getPrototypeOf(a),S=L.entries,D=L.keys,I=L.freeze,M=(a=[])=>L.fromEntries(a),P=(...a)=>L.assign({},...a),_=(a,t)=>t in a,F=(a,t)=>f(S(a),(([a,e])=>t(e,a))),j=a=>L.values(a),B=a=>d(D(a)),H=a=>(a=>!o(a)&&l(b(a),(a=>a==L.prototype||o(b(a))),(()=>!0)))(a)&&0==B(a),Y=a=>new Map(a),$=a=>[...a?.keys()??[]],k=(a,t)=>a?.get(t),x=(a,t)=>f([...a?.entries()??[]],(([a,e])=>t(e,a))),G=(a,t,e)=>o(e)?(R(a,t),a):a?.set(t,e),J=(a,t,e,n)=>(N(a,t)?n?.(k(a,t)):G(a,t,e()),k(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=>_(t,e)?0:n(a,e))),a),W=a=>new Set(y(a)||o(a)?a:[a]),z=(a,t)=>a?.add(t),K="TABLE",V="ALTER "+K,q="DELETE FROM",Q=m+"*FROM",X="FROM pragma_table_",Z="WHERE",aa=(a,t,s,i)=>{const r=Y();return[async()=>U(r,M(await E(f(await a("SELECT name "+X+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+ea(t)+")ORDER BY name",t),(async({name:t})=>[t,M(f(await a(m+" name,type "+X+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>G(r,t,U(J(r,t,Y),e,((a,t,e)=>{e!=k(a,t)&&G(a,t,e)}),((a,t)=>G(a,t))))),((a,t)=>G(r,t))),async(t,e)=>((a,t)=>!o(k(k(r,a),t)))(t,e)?M(T(f(await a(Q+v(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!o(a)&&!H(t)))):{},async(t,s,c,l,w,y=!1)=>{const u=W();F(c??{},(a=>f(D(a??{}),(a=>z(u,a)))));const d=O(u);if(!y&&w&&A(d)&&N(r,t))return await a("DROP "+K+v(t)),void G(r,t);if(A(d)||N(r,t)){const n=k(r,t),i=W($(n));await E([...f(d,(async s=>{R(i,s)||(await a(V+v(t)+"ADD"+v(s)),G(n,s,e))})),...!y&&l?f(O(i),(async e=>{e!=s&&(await a(V+v(t)+"DROP"+v(e)),G(n,e))})):[]])}else await a("CREATE "+K+v(t)+"("+v(s)+` PRIMARY KEY ON CONFLICT REPLACE${C(f(d,(a=>n+v(a))))});`),G(r,t,Y([[s,e],...f(d,(a=>[a,e]))]));if(y)o(c)?await a(q+v(t)+Z+" 1"):await E(F(c,(async(e,n)=>{o(e)?await a(q+v(t)+Z+v(s)+"=?",[n]):A(d)||await ta(a,t,s,D(e),[n,...j(e)],i)})));else if(A(d))N(r,t)&&await a(q+v(t)+Z+" 1");else{const e=T($(k(r,t)),(a=>a!=s)),n=[],o=[];F(c??{},((a,t)=>{h(n,t,...f(e,(t=>a?.[t]))),h(o,t)})),await ta(a,t,s,e,n,i),await a(q+v(t)+Z+v(s)+"NOT IN("+ea(o)+")",o)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},ta=async(a,t,s,r,c,o=!0)=>await a("INSERT "+(o?e:"OR REPLACE ")+"INTO"+v(t)+"("+v(s)+C(f(r,(a=>n+v(a))))+")VALUES"+u(i(`,(?${i(",?",d(r))})`,d(c)/(d(r)+1)),1)+(o?"ON CONFLICT("+v(s)+")DO UPDATE SET"+C(f(r,(a=>v(a)+"=excluded."+v(a))),n):e),f(c,(a=>a??null))),ea=a=>C(f(a,(()=>"?")),n),na=JSON.parse,sa=Y(),ia=Y(),ra=(a,t,e,n,s,i,r,c={},w=[])=>{let u,d,E,g=0;J(sa,w,(()=>0)),J(ia,w,(()=>[]));const[p,v,m,C,f]=((a=1,t)=>a>1&&"getMergeableContent"in t?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!H(a)||!H(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!H(a)||!H(t),t.setContent]:0)(r,a),A=t=>{(p&&y(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},T=async a=>(2!=g&&(g=1,await L((async()=>{try{A(await t())}catch(t){i?.(t),a&&f(a)}g=0}))),b),N=()=>(d&&(s(d),d=void 0),b),O=async a=>(1!=g&&(g=2,await L((async()=>{try{await e(v,a)}catch(a){i?.(a)}g=0}))),b),R=()=>(l(E,a.delListener),E=void 0,b),L=async(...a)=>(h(k(ia,w),...a),await(async()=>{if(!k(sa,w)){for(G(sa,w,1);!o((a=k(ia,w),u=a.shift()));)try{await u()}catch(a){i?.(a)}G(sa,w,0)}var a})(),b),b={load:T,startAutoLoad:async a=>(await N().load(a),d=n((async(a,t)=>{t||a?2!=g&&(g=1,A(t??a),g=0):await T()})),b),stopAutoLoad:N,isAutoLoading:()=>!o(d),save:O,startAutoSave:async()=>(await R().save(),E=a.addDidFinishTransactionListener((()=>{const a=m();C(a)&&O(a)})),b),stopAutoSave:R,isAutoSaving:()=>!o(E),schedule:L,getStore:()=>a,destroy:()=>N().stopAutoSave(),getStats:()=>({}),...c};return I(b)},ca="store",oa=(a,t,e,n,s,[i],r,c,o,l)=>{const[w,y,u,d]=aa(t,r,s,l);return ra(a,(async()=>await d((async()=>(await w(),na((await y(i,p))[g]?.[ca]??"null"))))),(async a=>await d((async()=>{var t;await w(),await u(i,p,{[g]:{[ca]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?L.fromEntries([...t]):t)))}},!0,!0)}))),e,n,s,1,{[o]:()=>c},c)},la=(a,t,e,n,s,[i,r,[c,l,w]],y,u,d,v)=>{const[m,C,f,A]=aa(t,y,s,v),h=async(a,t)=>await E(x(r,(async([e,n,s,i],r)=>{t&&!_(a,r)||await f(e,n,a[r],s,i,t)}))),N=async(a,t)=>l?await f(w,p,{[g]:a},!0,!0,t):null;return ra(a,(async()=>await A((async()=>{await m();const a=await(async()=>M(T(await E(x(i,(async([a,t],e)=>[a,await C(e,t)]))),(a=>!H(a[1])))))(),t=await(async()=>c?(await C(w,p))[g]:{})();return H(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await A((async()=>{if(await m(),o(t)){const[t,e]=a();await h(t),await N(e)}else await h(t[0],!0),await N(t[1],!0)}))),e,n,s,1,{[d]:()=>u},u)},wa="json",ya="autoLoadIntervalSeconds",ua="rowIdColumnName",da="tableId",Ea="tableName",ga={mode:wa,[ya]:1},pa={load:0,save:0,[Ea]:t+"_values"},va=(a,t,e,n)=>{const s=Y();return F(a,((a,i)=>{const r=u(j(P(t,w(a)?{[e]:a}:a)),0,B(t));o(r[0])||n(i,r[0])||G(s,i,r)})),s},ma="pragma ",Ca="data_version",fa="schema_version",Aa=(a,e,n,s,i,r,o,l,y="getDb",d)=>{let E,g,v;const[C,f,A,T]=(a=>{const e=(a=>P(ga,w(a)?{storeTableName:a}:a??{}))(a),n=e[ya];if(e.mode==wa){const{storeTableName:a=t}=e;return[1,n,[a],W(a)]}const{tables:{load:s={},save:i={}}={},values:r={}}=e,c=u(j(P(pa,r)),0,B(pa)),o=c[2],l=W(o);return[0,n,[va(s,{[da]:null,[ua]:p},da,(a=>z(l,a)&&a==o)),va(i,{[Ea]:null,[ua]:p,deleteEmptyColumns:0,deleteEmptyTable:0},Ea,((a,t)=>z(l,t)&&t==o)),c],l]})(e);return(C?oa:la)(a,r?async(a,t)=>(r(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const t=(await n(ma+Ca))[0][Ca],e=(await n(ma+fa))[0][fa],s=(await n(m+" TOTAL_CHANGES() c"))[0].c;t==(E??=t)&&e==(g??=e)&&s==(v??=s)||(a(),E=t,g=e)}catch{}},e=f,t(),setInterval(t,1e3*e)),s((t=>T.has(t)?a():0))];var t,e}),(([a,t])=>{c(a),E=g=null,i(t)}),o,A,O(T),l,y,d)},Ta="change",ha=(a,t,e,n,s)=>Aa(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(Ta,e),e}),(a=>t.off(Ta,a)),n,s,t);export{ha as createSqlite3Persister};
@@ -1 +1 @@
1
- import{Map as t}from"yjs";const e="t",a="v",s=t=>null==t,n=(t,e,a)=>s(t)?a?.():e(t),o=t=>t.length,c=t=>t.shift(),r=Object,i=t=>r.getPrototypeOf(t),l=r.entries,d=r.keys,g=r.freeze,u=(t=[])=>r.fromEntries(t),y=(t,e)=>!s(((t,e)=>n(t,(t=>t[e])))(t,e)),p=(t,e)=>((t,e)=>t.map(e))(l(t),(([t,a])=>e(a,t))),h=t=>(t=>!s(t)&&n(i(t),(t=>t==r.prototype||s(i(t))),(()=>!0)))(t)&&0==(t=>o(d(t)))(t),v=(t,e,a)=>(y(t,e)||(t[e]=a()),t[e]),w=t=>new Map(t),f=(t,e)=>t?.get(e),S=(t,e)=>((t,e)=>t?.forEach(e))(t,((t,a)=>e(a,t))),A=(t,e,a)=>{return s(a)?(n=t,o=e,n?.delete(o),t):t?.set(e,a);var n,o},O=(t,e,a)=>{var s,n;return s=t,n=e,s?.has(n)||A(t,e,a()),f(t,e)},J=w(),L=w(),N="delete",C=t=>[t.get(e),t.get(a)],b=(e,a,n,o)=>{const c=s(a)?e:e.get(a)??e.set(a,new t);let r;return p(n,((t,e)=>{o(c,e,t)&&(r=1)})),c.forEach(((t,e)=>{y(n,e)||(c.delete(e),r=1)})),s(a)||c.size||e.delete(a),r},m=(r,i,l="tinybase",d)=>{const y=i.getMap(l);return((t,e,a,o,r,i,[l,d]=[],u=[])=>{let y,p,v,w=0,S=0;O(J,u,(()=>0)),O(L,u,(()=>[]));const N=async t=>(2!=w&&(w=1,await C.schedule((async()=>{await t(),w=0}))),C),C={load:async(a,s)=>await N((async()=>{try{t.setContent(await e())}catch{t.setContent([a,s])}})),startAutoLoad:async(a={},s={})=>(C.stopAutoLoad(),await C.load(a,s),S=1,v=o((async(a,s)=>{if(s){const e=s();await N((async()=>t.setTransactionChanges(e)))}else await N((async()=>{try{t.setContent(a?.()??await e())}catch(t){i?.(t)}}))})),C),stopAutoLoad:()=>(S&&(r(v),v=void 0,S=0),C),save:async e=>(1!=w&&(w=2,await C.schedule((async()=>{try{await a(t.getContent,e)}catch(t){i?.(t)}w=0}))),C),startAutoSave:async()=>(await C.stopAutoSave().save(),y=t.addDidFinishTransactionListener(((t,e)=>{const[a,s]=e();h(a)&&h(s)||C.save((()=>[a,s]))})),C),stopAutoSave:()=>(n(y,t.delListener),y=void 0,C),schedule:async(...t)=>(((t,...e)=>{t.push(...e)})(f(L,u),...t),await(async()=>{if(!f(J,u)){for(A(J,u,1);!s(p=c(f(L,u)));)try{await p()}catch(t){i?.(t)}A(J,u,0)}})(),C),getStore:()=>t,destroy:()=>C.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return l&&(C[l]=()=>d),g(C)})(r,(async()=>y.size?[y.get(e).toJSON(),y.get(a).toJSON()]:void 0),(async(o,c)=>i.transact((()=>((o,c,r)=>{o.size||(o.set(e,new t),o.set(a,new t));const[i,l]=C(o),d=()=>{g=1};let g=1;if(n(r?.(),(([t,e])=>{g=0,p(t,((t,e)=>g?0:s(t)?i.delete(e):n(i.get(e),(e=>p(t,((t,a)=>g?0:s(t)?e.delete(a):n(e.get(a),(e=>p(t,((t,a)=>s(t)?e.delete(a):e.set(a,t)))),d)))),d))),p(e,((t,e)=>g?0:s(t)?l.delete(e):l.set(e,t)))})),g){const[t,e]=c();b(i,void 0,t,((t,e,a)=>b(i,e,a,((t,e,a)=>b(t,e,a,((t,e,a)=>{if(t.get(e)!==a)return t.set(e,a),1})))))),b(l,void 0,e,((t,e,a)=>{l.get(e)!==a&&l.set(e,a)}))}})(y,o,c)))),(t=>{const s=s=>t(void 0,(()=>((t,s)=>{if(1==o(s)&&(r=s[0].path,0==o(r)))return[t.get(e).toJSON(),t.get(a).toJSON()];var r;const[i,l]=C(t),d={},g={};return((t,a)=>{t.forEach((({path:t,changes:{keys:a}})=>c(t)==e?n(c(t),(e=>{const s=v(d,e,u),o=i.get(e);n(c(t),(t=>{const e=v(s,t,u),n=o.get(t);S(a,((t,{action:a})=>e[t]=a==N?null:n.get(t)))}),(()=>S(a,((t,{action:e})=>s[t]=e==N?null:o.get(t)?.toJSON()))))}),(()=>S(a,((t,{action:e})=>d[t]=e==N?null:i.get(t)?.toJSON())))):S(a,((t,{action:e})=>g[t]=e==N?null:l.get(t)))))})(s),[d,g]})(y,s)));return y.observeDeep(s),s}),(t=>{y.unobserveDeep(t)}),d,["getYDoc",i])};export{m as createYjsPersister};
1
+ import{Map as t}from"yjs";const e="t",a="v",n=t=>null==t,s=(t,e,a)=>n(t)?a?.():e(t),o=t=>t.length,r=t=>t.shift(),i=Object,c=t=>i.getPrototypeOf(t),g=i.entries,l=i.keys,d=i.freeze,u=(t=[])=>i.fromEntries(t),y=(t,e)=>e in t,p=(t,e)=>((t,e)=>t.map(e))(g(t),(([t,a])=>e(a,t))),h=t=>(t=>!n(t)&&s(c(t),(t=>t==i.prototype||n(c(t))),(()=>!0)))(t)&&0==(t=>o(l(t)))(t),v=(t,e,a)=>(y(t,e)||(t[e]=a()),t[e]),f=t=>new Map(t),w=(t,e)=>t?.get(e),S=(t,e)=>((t,e)=>t?.forEach(e))(t,((t,a)=>e(a,t))),C=(t,e,a)=>{return n(a)?(s=t,o=e,s?.delete(o),t):t?.set(e,a);var s,o},b=(t,e,a,n)=>{var s,o;return s=t,o=e,s?.has(o)?n?.(w(t,e)):C(t,e,a()),w(t,e)},A=f(),M=f(),O="delete",J=t=>[t.get(e),t.get(a)],N=(e,a,s,o)=>{const r=n(a)?e:e.get(a)??e.set(a,new t);let i;return p(s,((t,e)=>{o(r,e,t)&&(i=1)})),r.forEach(((t,e)=>{y(s,e)||(r.delete(e),i=1)})),n(a)||r.size||e.delete(a),i},D=(i,c,g="tinybase",l)=>{const y=c.getMap(g);return((t,e,a,o,i,c,g,l={},u=[])=>{let y,p,v,f=0;b(A,u,(()=>0)),b(M,u,(()=>[]));const[S,O,J,N,D]=((t=1,e)=>t>1&&"getMergeableContent"in e?[1,e.getMergeableContent,e.getTransactionMergeableChanges,([[t],[e]])=>!h(t)||!h(e),e.setDefaultContent]:2!=t?[0,e.getContent,e.getTransactionChanges,([t,e])=>!h(t)||!h(e),e.setContent]:0)(g,t),L=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)},m=async t=>(2!=f&&(f=1,await j((async()=>{try{L(await e())}catch(e){c?.(e),t&&D(t)}f=0}))),k),z=()=>(p&&(i(p),p=void 0),k),E=async t=>(1!=f&&(f=2,await j((async()=>{try{await a(O,t)}catch(t){c?.(t)}f=0}))),k),T=()=>(s(v,t.delListener),v=void 0,k),j=async(...t)=>(((t,...e)=>{t.push(...e)})(w(M,u),...t),await(async()=>{if(!w(A,u)){for(C(A,u,1);!n(y=r(w(M,u)));)try{await y()}catch(t){c?.(t)}C(A,u,0)}})(),k),k={load:m,startAutoLoad:async t=>(await z().load(t),p=o((async(t,e)=>{e||t?2!=f&&(f=1,L(e??t),f=0):await m()})),k),stopAutoLoad:z,isAutoLoading:()=>!n(p),save:E,startAutoSave:async()=>(await T().save(),v=t.addDidFinishTransactionListener((()=>{const t=J();N(t)&&E(t)})),k),stopAutoSave:T,isAutoSaving:()=>!n(v),schedule:j,getStore:()=>t,destroy:()=>z().stopAutoSave(),getStats:()=>({}),...l};return d(k)})(i,(async()=>y.size?[y.get(e).toJSON(),y.get(a).toJSON()]:void 0),(async(o,r)=>c.transact((()=>((o,r,i)=>{o.size||(o.set(e,new t),o.set(a,new t));const[c,g]=J(o),l=()=>{d=1};let d=1;if(s(i,(([t,e])=>{d=0,p(t,((t,e)=>d?0:n(t)?c.delete(e):s(c.get(e),(e=>p(t,((t,a)=>d?0:n(t)?e.delete(a):s(e.get(a),(e=>p(t,((t,a)=>n(t)?e.delete(a):e.set(a,t)))),l)))),l))),p(e,((t,e)=>d?0:n(t)?g.delete(e):g.set(e,t)))})),d){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(g,void 0,e,((t,e,a)=>{g.get(e)!==a&&g.set(e,a)}))}})(y,o,r)))),(t=>{const n=n=>t(void 0,((t,n)=>{if(1==o(n)&&(i=n[0].path,0==o(i)))return[t.get(e).toJSON(),t.get(a).toJSON(),1];var i;const[c,g]=J(t),l={},d={};return((t,a)=>{t.forEach((({path:t,changes:{keys:a}})=>r(t)==e?s(r(t),(e=>{const n=v(l,e,u),o=c.get(e);s(r(t),(t=>{const e=v(n,t,u),s=o.get(t);S(a,((t,{action:a})=>e[t]=a==O?null:s.get(t)))}),(()=>S(a,((t,{action:e})=>n[t]=e==O?null:o.get(t)?.toJSON()))))}),(()=>S(a,((t,{action:e})=>l[t]=e==O?null:c.get(t)?.toJSON())))):S(a,((t,{action:e})=>d[t]=e==O?null:g.get(t)))))})(n),[l,d,1]})(y,n));return y.observeDeep(n),n}),(t=>{y.unobserveDeep(t)}),l,1,{getYDoc:()=>c})};export{D as createYjsPersister};
Binary file
package/lib/persisters.js CHANGED
@@ -1 +1 @@
1
- const t=t=>null==t,a=(a,e,s)=>t(a)?s?.():e(a),e=Object,s=t=>e.getPrototypeOf(t),o=e.keys,n=e.freeze,c=n=>(o=>!t(o)&&a(s(o),(a=>a==e.prototype||t(s(a))),(()=>!0)))(n)&&0==(t=>o(t).length)(n),r=t=>new Map(t),i=(t,a)=>t?.get(a),y=(a,e,s)=>{return t(s)?(o=a,n=e,o?.delete(n),a):a?.set(e,s);var o,n},d=(t,a,e)=>{var s,o;return s=t,o=a,s?.has(o)||y(t,a,e()),i(t,a)},u=r(),w=r(),h=(e,s,o,r,h,l,[p,v]=[],A=[])=>{let g,f,L,S=0,C=0;d(u,A,(()=>0)),d(w,A,(()=>[]));const O=async t=>(2!=S&&(S=1,await T.schedule((async()=>{await t(),S=0}))),T),T={load:async(t,a)=>await O((async()=>{try{e.setContent(await s())}catch{e.setContent([t,a])}})),startAutoLoad:async(t={},a={})=>(T.stopAutoLoad(),await T.load(t,a),C=1,L=r((async(t,a)=>{if(a){const t=a();await O((async()=>e.setTransactionChanges(t)))}else await O((async()=>{try{e.setContent(t?.()??await s())}catch(t){l?.(t)}}))})),T),stopAutoLoad:()=>(C&&(h(L),L=void 0,C=0),T),save:async t=>(1!=S&&(S=2,await T.schedule((async()=>{try{await o(e.getContent,t)}catch(t){l?.(t)}S=0}))),T),startAutoSave:async()=>(await T.stopAutoSave().save(),g=e.addDidFinishTransactionListener(((t,a)=>{const[e,s]=a();c(e)&&c(s)||T.save((()=>[e,s]))})),T),stopAutoSave:()=>(a(g,e.delListener),g=void 0,T),schedule:async(...a)=>(((t,...a)=>{t.push(...a)})(i(w,A),...a),await(async()=>{if(!i(u,A)){for(y(u,A,1);!t((a=i(w,A),f=a.shift()));)try{await f()}catch(t){l?.(t)}y(u,A,0)}var a})(),T),getStore:()=>e,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return p&&(T[p]=()=>v),n(T)};export{h as createCustomPersister};
1
+ const t=t=>null==t,e=(e,a,n)=>t(e)?n?.():a(e),a=Object,n=t=>a.getPrototypeOf(t),s=a.keys,o=a.freeze,r=o=>(s=>!t(s)&&e(n(s),(e=>e==a.prototype||t(n(e))),(()=>!0)))(o)&&0==(t=>s(t).length)(o),i=t=>new Map(t),c=(t,e)=>t?.get(e),g=(e,a,n)=>{return t(n)?(s=e,o=a,s?.delete(o),e):e?.set(a,n);var s,o},y=(t,e,a,n)=>{var s,o;return s=t,o=e,s?.has(o)?n?.(c(t,e)):g(t,e,a()),c(t,e)},l=i(),d=i(),u=(a,n,s,i,u,h,p,v={},C=[])=>{let w,A,b,f=0;y(l,C,(()=>0)),y(d,C,(()=>[]));const[M,S,L,T,D]=((t=1,e)=>t>1&&"getMergeableContent"in e?[1,e.getMergeableContent,e.getTransactionMergeableChanges,([[t],[e]])=>!r(t)||!r(e),e.setDefaultContent]:2!=t?[0,e.getContent,e.getTransactionChanges,([t,e])=>!r(t)||!r(e),e.setContent]:0)(p,a),O=t=>{var e;(M&&(e=t?.[0],Array.isArray(e))?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},j=async t=>(2!=f&&(f=1,await F((async()=>{try{O(await n())}catch(e){h?.(e),t&&D(t)}f=0}))),P),k=()=>(A&&(u(A),A=void 0),P),x=async t=>(1!=f&&(f=2,await F((async()=>{try{await s(S,t)}catch(t){h?.(t)}f=0}))),P),z=()=>(e(b,a.delListener),b=void 0,P),F=async(...e)=>(((t,...e)=>{t.push(...e)})(c(d,C),...e),await(async()=>{if(!c(l,C)){for(g(l,C,1);!t((e=c(d,C),w=e.shift()));)try{await w()}catch(t){h?.(t)}g(l,C,0)}var e})(),P),P={load:j,startAutoLoad:async t=>(await k().load(t),A=i((async(t,e)=>{e||t?2!=f&&(f=1,O(e??t),f=0):await j()})),P),stopAutoLoad:k,isAutoLoading:()=>!t(A),save:x,startAutoSave:async()=>(await z().save(),b=a.addDidFinishTransactionListener((()=>{const t=L();T(t)&&x(t)})),P),stopAutoSave:z,isAutoSaving:()=>!t(b),schedule:F,getStore:()=>a,destroy:()=>k().stopAutoSave(),getStats:()=>({}),...v};return o(P)};export{u as createCustomPersister};
Binary file
package/lib/queries.js CHANGED
@@ -1 +1 @@
1
- const e=e=>typeof e,t=e(""),n=e(!0),s=e(0),r=e(e),o="Listener",a="Result",l="Ids",i="Table",d="Row",c=d+"Count",u=d+l,h="Sorted"+d+l,g="Cell",v=g+l,w=Math.max,L=Math.min,f=isFinite,R=e=>null==e,y=(e,t,n)=>R(e)?n?.():t(e),T=t=>e(t)==r,b=e=>Array.isArray(e),C=e=>e.length,p=()=>{},S=(e,t)=>e.every(t),m=(e,t)=>e.forEach(t),I=e=>E(e,((e,t)=>e+t),0),Q=e=>0==C(e),E=(e,t,n)=>e.reduce(t,n),M=(e,...t)=>e.push(...t),x=Object,D=x.entries,j=x.freeze,k=e=>e?.size??0,z=(e,t)=>e?.has(t)??!1,A=e=>R(e)||0==k(e),F=e=>[...e?.values()??[]],O=e=>e.clear(),W=(e,t)=>e?.forEach(t),q=(e,t)=>e?.delete(t),B=e=>new Map(e),G=(e,t)=>e?.get(t),H=(e,t)=>W(e,((e,n)=>t(n,e))),J=(e,t,n)=>R(n)?(q(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)=>y((n?K:G)(e,t[r],r>C(t)-2?n:B),(o=>{if(r>C(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=B([["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=((r,l)=>{const w=new WeakMap;return r=>{w.has(r)||w.set(r,(r=>{const l=r.createStore,w=l(),L=l(),I=B(),{addListener:E,callListeners:x,delListener:X}=L,[Y,Z,$,_,ee,,,te,,ne,se,re,oe,ae]=((e,t,n,s,r)=>{const o=e.hasRow,a=B(),l=B(),i=B(),d=B(),c=B(),u=B(),h=(t,n,...s)=>{const r=K(u,t,P);return m(s,(t=>U(r,t)&&n&&e.callListener(t))),s},g=(t,...n)=>y(G(u,t),(s=>{m(Q(n)?F(s):n,(t=>{e.delListener(t),q(s,t)})),A(s)&&J(u,t)})),v=(e,t)=>{J(a,e,t),z(l,e)||(J(l,e,!0),J(d,e,B()),J(c,e,B()),r(i))},w=e=>{J(a,e),J(l,e),J(d,e),J(c,e),g(e),r(i)};return[()=>e,()=>{return e=a,[...e?.keys()??[]];var e},e=>H(l,e),e=>z(l,e),e=>G(a,e),e=>G(l,e),(e,t)=>J(l,e,t),v,(t,s,r,a,l)=>{v(t,s);const i=B(),u=B(),w=G(d,t),L=G(c,t),f=t=>{const r=n=>e.getCell(s,t,n),d=G(w,t),c=o(s,t)?n(a(r,t)):void 0;var h,g;if(d===c||b(d)&&b(c)&&(g=c,C(h=d)===C(g)&&S(h,((e,t)=>g[t]===e)))||J(i,t,[d,c]),!R(l)){const e=G(L,t),n=o(s,t)?l(r,t):void 0;e!=n&&J(u,t,n)}},y=e=>{r((()=>{W(i,(([,e],t)=>J(w,t,e))),W(u,((e,t)=>J(L,t,e)))}),i,u,w,L,e),O(i),O(u)};H(w,f),e.hasTable(s)&&m(e.getRowIds(s),(e=>{z(w,e)||f(e)})),y(!0),g(t),h(t,0,e.addRowListener(s,null,((e,t,n)=>f(n))),e.addTableListener(s,(()=>y())))},w,e=>s(e,i),()=>H(u,w),h,g]})(r,0,p,E,x),le=(e,t,...n)=>m(n,(n=>U(K(K(I,t,B),e,P),n))),ie=e=>{y(G(I,e),(e=>{H(e,((e,t)=>W(t,(t=>e.delListener(t))))),O(e)})),m([L,w],(t=>t.delTable(e)))},de=(e,t,n)=>le(t,e,t.addStartTransactionListener(n.startTransaction),t.addDidFinishTransactionListener((()=>n.finishTransaction()))),ce={setQueryDefinition:(o,a,l)=>{te(o,a),ie(o);const i=[],d=[[null,[a,null,null,[],B()]]],c=[],u=[],h=[];l({select:(e,t)=>{const n=T(e)?[C(i)+"",e]:[R(t)?e:t,n=>n(e,t)];return M(i,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),[],B()]];return M(d,o),{as:e=>o[0]=e}},where:(e,t,n)=>M(c,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(u,o),{as:e=>o[0]=e}},having:(e,t)=>M(h,T(e)?e:n=>n(e)===t)});const g=B(i);if(A(g))return ce;const v=B(d);H(v,((e,[,t])=>y(G(v,t),(({3:t})=>R(e)?0:M(t,e)))));const b=B(u);let p=w;if(A(b)&&Q(h))p=L;else{de(o,p,L);const r=B();H(b,((e,[t,n])=>U(K(r,t,P),[e,n])));const a=P();H(g,(e=>z(r,e)?0:U(a,e)));const l=B(),i=(a,l,i,d)=>y(a,(([c,u,g,v])=>{H(l,((o,[a])=>{const l=K(c,o,B),u=G(l,i),h=d?void 0:a;if(u!==h){const a=P([[u,h]]),d=k(l);J(l,i,h),W(G(r,o),(([r,o])=>{const i=((e,t,n,s,r,o=!1)=>{if(A(n))return;const[a,l,i,d]=r;return o||=R(e),W(s,(([n,s])=>{o||(e=R(n)?l?.(e,s,t++):R(s)?i?.(e,n,t--):d?.(e,s,n,t),o||=R(e))})),o?a(F(n),k(n)):e})(v[r],d,l,a,o);v[r]=R((r=>{const o=e(r);return(e=>e==t||e==n)(o)||o==s&&f(r)?o:void 0})(i))?null:i}))}})),A(u)||!S(h,(e=>e((e=>v[e]))))?L.delRow(o,g):R(g)?a[2]=L.addRow(o,v):L.setRow(o,g,v)}));le(p,o,p.addRowListener(o,null,((e,t,n,s)=>{const d=[],c=[],u=B(),h=p.hasRow(o,n);let g=!h;W(a,(e=>{const[t,r,a]=s(o,n,e);M(d,r),M(c,a),g||=t})),H(r,(e=>{const[t,,r]=s(o,n,e);(g||t)&&J(u,e,[r])})),g&&i(N(l,d,void 0,(([,e])=>(q(e,n),A(e)))),u,n,1),h&&i(N(l,c,(()=>{const e={};return W(a,(t=>e[t]=p.getCell(o,n,t))),[B(),P(),void 0,e]}),(([,e])=>{U(e,n)})),u,n)})))}de(o,r,p);const I=(e,t,n,s)=>{const l=e=>r.getCell(t,n,e);m(s,(t=>{const[n,,s,a,i]=G(v,t),d=s?.(l,e),[c,u]=G(i,e)??[];d!=c&&(R(u)||ae(o,u),J(i,e,R(d)?null:[d,...oe(o,1,r.addRowListener(n,d,(()=>I(e,n,d,a))))]))})),(e=>{const t=(t,n)=>r.getCell(...R(n)?[a,e,t]:t===a?[a,e,n]:[G(v,t)?.[0],G(G(v,t)?.[4],e)?.[0],n]);p.transaction((()=>S(c,(e=>e(t)))?H(g,((n,s)=>((e,t,n,s,r)=>R(r)?e.delCell(t,n,s,!0):e.setCell(t,n,s,r))(p,o,e,n,s(t,e)))):p.delRow(o,e)))})(e)},{3:E}=G(v,null);return p.transaction((()=>oe(o,1,r.addRowListener(a,null,((e,t,n)=>{r.hasRow(a,n)?I(n,a,n,E):(p.delRow(o,n),W(v,(({4:e})=>y(G(e,n),(([,t])=>{ae(o,t),J(e,n)})))))}))))),ce},delQueryDefinition:e=>(ie(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}=L.getListenerStats();return s}};var ue;return ue=([e,t],n)=>{m(e?["get","has","forEach"]:["get"],(e=>ce[e+a+n]=(...t)=>L[e+n](...t))),ce["add"+a+n+o]=(...e)=>{return L["add"+n+o](...(s=e,0,r=t,s.slice(0,r)),((n,...s)=>e[t](ce,...s)),!0);var s,r}},((e,t)=>{D({[i]:[1,1],[i+v]:[0,1],[c]:[0,1],[u]:[0,1],[h]:[0,5],[d]:[1,2],[v]:[0,2],[g]:[1,3]}).map(t)})(0,(([e,t])=>ue(t,e))),j(ce)})(r));return w.get(r)}})();export{X as createQueries};
1
+ const e=e=>typeof e,t=e(""),n=e(!0),s=e(0),r=e(e),o="Listener",a="Result",l="Ids",i="Table",d="Row",c=d+"Count",u=d+l,h="Sorted"+d+l,g="Cell",v=g+l,w=Math.max,L=Math.min,f=isFinite,R=e=>null==e,y=(e,t,n)=>R(e)?n?.():t(e),T=t=>e(t)==r,b=e=>Array.isArray(e),C=e=>e.length,p=()=>{},S=(e,t)=>e.every(t),m=(e,t)=>e.forEach(t),I=e=>E(e,((e,t)=>e+t),0),Q=e=>0==C(e),E=(e,t,n)=>e.reduce(t,n),M=(e,...t)=>e.push(...t),x=Object,D=x.entries,j=x.freeze,k=e=>e?.size??0,z=(e,t)=>e?.has(t)??!1,A=e=>R(e)||0==k(e),F=e=>[...e?.values()??[]],O=e=>e.clear(),W=(e,t)=>e?.forEach(t),q=(e,t)=>e?.delete(t),B=e=>new Map(e),G=(e,t)=>e?.get(t),H=(e,t)=>W(e,((e,n)=>t(n,e))),J=(e,t,n)=>R(n)?(q(e,t),e):e?.set(t,n),K=(e,t,n,s)=>(z(e,t)?s?.(G(e,t)):J(e,t,n()),G(e,t)),N=(e,t,n,s,r=0)=>y((n?K:G)(e,t[r],r>C(t)-2?n:B),(o=>{if(r>C(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=B([["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=((r,l)=>{const w=new WeakMap;return r=>{w.has(r)||w.set(r,(r=>{const l=r.createStore,w=l(),L=l(),I=B(),{addListener:E,callListeners:x,delListener:X}=L,[Y,Z,$,_,ee,,,te,,ne,se,re,oe,ae]=((e,t,n,s,r)=>{const o=e.hasRow,a=B(),l=B(),i=B(),d=B(),c=B(),u=B(),h=(t,n,...s)=>{const r=K(u,t,P);return m(s,(t=>U(r,t)&&n&&e.callListener(t))),s},g=(t,...n)=>y(G(u,t),(s=>{m(Q(n)?F(s):n,(t=>{e.delListener(t),q(s,t)})),A(s)&&J(u,t)})),v=(e,t)=>{J(a,e,t),z(l,e)||(J(l,e,!0),J(d,e,B()),J(c,e,B()),r(i))},w=e=>{J(a,e),J(l,e),J(d,e),J(c,e),g(e),r(i)};return[()=>e,()=>{return e=a,[...e?.keys()??[]];var e},e=>H(l,e),e=>z(l,e),e=>G(a,e),e=>G(l,e),(e,t)=>J(l,e,t),v,(t,s,r,a,l)=>{v(t,s);const i=B(),u=B(),w=G(d,t),L=G(c,t),f=t=>{const r=n=>e.getCell(s,t,n),d=G(w,t),c=o(s,t)?n(a(r,t)):void 0;var h,g;if(d===c||b(d)&&b(c)&&(g=c,C(h=d)===C(g)&&S(h,((e,t)=>g[t]===e)))||J(i,t,[d,c]),!R(l)){const e=G(L,t),n=o(s,t)?l(r,t):void 0;e!=n&&J(u,t,n)}},y=e=>{r((()=>{W(i,(([,e],t)=>J(w,t,e))),W(u,((e,t)=>J(L,t,e)))}),i,u,w,L,e),O(i),O(u)};H(w,f),e.hasTable(s)&&m(e.getRowIds(s),(e=>{z(w,e)||f(e)})),y(!0),g(t),h(t,0,e.addRowListener(s,null,((e,t,n)=>f(n))),e.addTableListener(s,(()=>y())))},w,e=>s(e,i),()=>H(u,w),h,g]})(r,0,p,E,x),le=(e,t,...n)=>m(n,(n=>U(K(K(I,t,B),e,P),n))),ie=e=>{y(G(I,e),(e=>{H(e,((e,t)=>W(t,(t=>e.delListener(t))))),O(e)})),m([L,w],(t=>t.delTable(e)))},de=(e,t,n)=>le(t,e,t.addStartTransactionListener(n.startTransaction),t.addDidFinishTransactionListener((()=>n.finishTransaction()))),ce={setQueryDefinition:(o,a,l)=>{te(o,a),ie(o);const i=[],d=[[null,[a,null,null,[],B()]]],c=[],u=[],h=[];l({select:(e,t)=>{const n=T(e)?[C(i)+"",e]:[R(t)?e:t,n=>n(e,t)];return M(i,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),[],B()]];return M(d,o),{as:e=>o[0]=e}},where:(e,t,n)=>M(c,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(u,o),{as:e=>o[0]=e}},having:(e,t)=>M(h,T(e)?e:n=>n(e)===t)});const g=B(i);if(A(g))return ce;const v=B(d);H(v,((e,[,t])=>y(G(v,t),(({3:t})=>R(e)?0:M(t,e)))));const b=B(u);let p=w;if(A(b)&&Q(h))p=L;else{de(o,p,L);const r=B();H(b,((e,[t,n])=>U(K(r,t,P),[e,n])));const a=P();H(g,(e=>z(r,e)?0:U(a,e)));const l=B(),i=(a,l,i,d)=>y(a,(([c,u,g,v])=>{H(l,((o,[a])=>{const l=K(c,o,B),u=G(l,i),h=d?void 0:a;if(u!==h){const a=P([[u,h]]),d=k(l);J(l,i,h),W(G(r,o),(([r,o])=>{const i=((e,t,n,s,r,o=!1)=>{if(A(n))return;const[a,l,i,d]=r;return o||=R(e),W(s,(([n,s])=>{o||(e=R(n)?l?.(e,s,t++):R(s)?i?.(e,n,t--):d?.(e,s,n,t),o||=R(e))})),o?a(F(n),k(n)):e})(v[r],d,l,a,o);v[r]=R((r=>{const o=e(r);return(e=>e==t||e==n)(o)||o==s&&f(r)?o:void 0})(i))?null:i}))}})),A(u)||!S(h,(e=>e((e=>v[e]))))?L.delRow(o,g):R(g)?a[2]=L.addRow(o,v):L.setRow(o,g,v)}));le(p,o,p.addRowListener(o,null,((e,t,n,s)=>{const d=[],c=[],u=B(),h=p.hasRow(o,n);let g=!h;W(a,(e=>{const[t,r,a]=s(o,n,e);M(d,r),M(c,a),g||=t})),H(r,(e=>{const[t,,r]=s(o,n,e);(g||t)&&J(u,e,[r])})),g&&i(N(l,d,void 0,(([,e])=>(q(e,n),A(e)))),u,n,1),h&&i(N(l,c,(()=>{const e={};return W(a,(t=>e[t]=p.getCell(o,n,t))),[B(),P(),void 0,e]}),(([,e])=>{U(e,n)})),u,n)})))}de(o,r,p);const I=(e,t,n,s)=>{const l=e=>r.getCell(t,n,e);m(s,(t=>{const[n,,s,a,i]=G(v,t),d=s?.(l,e),[c,u]=G(i,e)??[];d!=c&&(R(u)||ae(o,u),J(i,e,R(d)?null:[d,...oe(o,1,r.addRowListener(n,d,(()=>I(e,n,d,a))))]))})),(e=>{const t=(t,n)=>r.getCell(...R(n)?[a,e,t]:t===a?[a,e,n]:[G(v,t)?.[0],G(G(v,t)?.[4],e)?.[0],n]);p.transaction((()=>S(c,(e=>e(t)))?H(g,((n,s)=>((e,t,n,s,r)=>R(r)?e.delCell(t,n,s,!0):e.setCell(t,n,s,r))(p,o,e,n,s(t,e)))):p.delRow(o,e)))})(e)},{3:E}=G(v,null);return p.transaction((()=>oe(o,1,r.addRowListener(a,null,((e,t,n)=>{r.hasRow(a,n)?I(n,a,n,E):(p.delRow(o,n),W(v,(({4:e})=>y(G(e,n),(([,t])=>{ae(o,t),J(e,n)})))))}))))),ce},delQueryDefinition:e=>(ie(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}=L.getListenerStats();return s}};var ue;return ue=([e,t],n)=>{m(e?["get","has","forEach"]:["get"],(e=>ce[e+a+n]=(...t)=>L[e+n](...t))),ce["add"+a+n+o]=(...e)=>{return L["add"+n+o](...(s=e,0,r=t,s.slice(0,r)),((n,...s)=>e[t](ce,...s)),!0);var s,r}},((e,t)=>{D({[i]:[1,1],[i+v]:[0,1],[c]:[0,1],[u]:[0,1],[h]:[0,5],[d]:[1,2],[v]:[0,2],[g]:[1,3]}).map(t)})(0,(([e,t])=>ue(t,e))),j(ce)})(r));return w.get(r)}})();export{X as createQueries};
package/lib/queries.js.gz CHANGED
Binary file
@@ -1 +1 @@
1
- const e=e=>typeof e,t="",n=e(t),r=e=>null==e,s=(e,t,n)=>r(e)?n?.():t(e),o=e=>Array.isArray(e),i=e=>e.length,a=(e,t)=>e.forEach(t),l=(e,...t)=>e.push(...t),d=Object.freeze,c=(e,t)=>e?.has(t)??!1,u=e=>r(e)||0==(e=>e?.size??0)(e),R=e=>[...e?.values()??[]],h=e=>e.clear(),f=(e,t)=>e?.forEach(t),L=(e,t)=>e?.delete(t),g=e=>new Map(e),w=(e,t)=>e?.get(t),p=(e,t)=>f(e,((e,n)=>t(n,e))),I=(e,t,n)=>r(n)?(L(e,t),e):e?.set(t,n),v=(e,t,n)=>(c(e,t)||I(e,t,n()),w(e,t)),y=(e,t,n,r,o=0)=>s((n?v:w)(e,t[o],o>i(t)-2?n:g),(s=>{if(o>i(t)-2)return r?.(s)&&I(e,t[o]),s;const a=y(s,t,n,r,o+1);return u(s)&&I(e,t[o]),a})),b=e=>new Set(o(e)||r(e)?e:[e]),k=(e,t)=>e?.add(t),E=/^\d+$/,T=((T,m)=>{const S=new WeakMap;return T=>{S.has(T)||S.set(T,(T=>{const m=g(),S=g(),z=g(),A=g(),[D,M,j]=(e=>{let n;const[o,d]=(()=>{const e=[];let n=0;return[r=>(r?e.shift():null)??t+n++,t=>{E.test(t)&&i(e)<1e3&&l(e,t)}]})(),c=g();return[(e,r,s,i=[],a=(()=>[]))=>{n??=P;const l=o(1);return I(c,l,[e,r,s,i,a]),k(y(r,s??[t],b),l),l},(e,r,...s)=>a(((e,n=[t])=>{const r=[],s=(e,t)=>t==i(n)?l(r,e):null===n[t]?f(e,(e=>s(e,t+1))):a([n[t],null],(n=>s(w(e,n),t+1)));return s(e,0),r})(e,r),(e=>f(e,(e=>w(c,e)[0](n,...r??[],...s))))),e=>s(w(c,e),(([,n,r])=>(y(n,r??[t],void 0,(t=>(L(t,e),u(t)?1:0))),I(c,e),d(e),r))),e=>s(w(c,e),(([e,,t=[],s,o])=>{const l=(...d)=>{const c=i(d);c==i(t)?e(n,...d,...o(d)):r(t[c])?a(s[c]?.(...d)??[],(e=>l(...d,e))):l(...d,t[c])};l()}))]})(),[x,C,O,W,$,q,,,B,F,G,H]=((e,n,l,d,y)=>{const E=e.hasRow,T=g(),m=g(),S=g(),z=g(),A=g(),D=g(),M=(t,n,...r)=>{const s=v(D,t,b);return a(r,(t=>k(s,t)&&n&&e.callListener(t))),r},j=(t,...n)=>s(w(D,t),(r=>{a(0==i(n)?R(r):n,(t=>{e.delListener(t),L(r,t)})),u(r)&&I(D,t)})),x=(e,t)=>{I(T,e,t),c(m,e)||(I(m,e,[g(),g(),g(),g()]),I(z,e,g()),I(A,e,g()),y(S))},C=e=>{I(T,e),I(m,e),I(z,e),I(A,e),j(e),y(S)};return[()=>e,()=>{return e=T,[...e?.keys()??[]];var e},e=>p(m,e),e=>c(m,e),e=>w(T,e),e=>w(m,e),(e,t)=>I(m,e,t),x,(n,s,l,d,u)=>{x(n,s);const R=g(),L=g(),v=w(z,n),y=w(A,n),b=n=>{const a=t=>e.getCell(s,n,t),l=w(v,n),c=E(s,n)?(h=d(a,n),r(h)?void 0:h+t):void 0;var h,f,g,p;if(l===c||o(l)&&o(c)&&(g=c,i(f=l)===i(g)&&(p=(e,t)=>g[t]===e,f.every(p)))||I(R,n,[l,c]),!r(u)){const e=w(y,n),t=E(s,n)?u(a,n):void 0;e!=t&&I(L,n,t)}},k=e=>{l((()=>{f(R,(([,e],t)=>I(v,t,e))),f(L,((e,t)=>I(y,t,e)))}),R,L,v,y,e),h(R),h(L)};p(v,b),e.hasTable(s)&&a(e.getRowIds(s),(e=>{c(v,e)||b(e)})),k(!0),j(n),M(n,0,e.addRowListener(s,null,((e,t,n)=>b(n))),e.addTableListener(s,(()=>k())))},C,e=>d(e,S),()=>p(D,C),M,j]})(T,0,0,D,M),J=(e,t,n)=>s(q(e),(([s,,o])=>{if(!c(o,t)){const i=b();if($(e)!=N(e))k(i,t);else{let e=t;for(;!r(e)&&!c(i,e);)k(i,e),e=w(s,e)}if(n)return i;I(o,t,i)}return w(o,t)})),K=(e,t)=>s(q(e),(([,,e])=>I(e,t))),N=e=>w(m,e),P={setRelationshipDefinition:(o,i,a,l)=>{return I(m,o,a),B(o,i,((e,t)=>{const n=b(),i=b(),a=b(),[l,d]=q(o);f(t,(([e,t],R)=>{r(e)||(k(i,e),s(w(d,e),(t=>{L(t,R),u(t)&&I(d,e)}))),r(t)||(k(i,t),c(d,t)||I(d,t,b()),k(w(d,t),R)),k(n,R),I(l,R,t),p(w(A,o),(e=>{c(J(o,e),R)&&k(a,e)}))})),e(),f(n,(e=>M(S,[o,e]))),f(i,(e=>M(z,[o,e]))),f(a,(e=>{K(o,e),M(A,[o,e])}))}),e(d=l)==n?e=>e(d):d??(()=>t)),P;var d},delRelationshipDefinition:e=>(I(m,e),F(e),P),getStore:x,getRelationshipIds:C,forEachRelationship:e=>O((t=>e(t,(e=>T.forEachRow($(t),e))))),hasRelationship:W,getLocalTableId:$,getRemoteTableId:N,getRemoteRowId:(e,t)=>w(q(e)?.[0],t),getLocalRowIds:(e,t)=>R(w(q(e)?.[1],t)),getLinkedRowIds:(e,t)=>r(q(e))?[t]:R(J(e,t,!0)),addRelationshipIdsListener:G,addRemoteRowIdListener:(e,t,n)=>D(n,S,[e,t]),addLocalRowIdsListener:(e,t,n)=>D(n,z,[e,t]),addLinkedRowIdsListener:(e,t,n)=>(J(e,t),D(n,A,[e,t])),delListener:e=>(K(...j(e)??[]),P),destroy:H,getListenerStats:()=>({})};return d(P)})(T));return S.get(T)}})();export{T as createRelationships};
1
+ const e=e=>typeof e,t="",n=e(t),r=e=>null==e,s=(e,t,n)=>r(e)?n?.():t(e),o=e=>Array.isArray(e),i=e=>e.length,a=(e,t)=>e.forEach(t),l=(e,...t)=>e.push(...t),d=Object.freeze,c=(e,t)=>e?.has(t)??!1,u=e=>r(e)||0==(e=>e?.size??0)(e),R=e=>[...e?.values()??[]],h=e=>e.clear(),f=(e,t)=>e?.forEach(t),L=(e,t)=>e?.delete(t),g=e=>new Map(e),w=(e,t)=>e?.get(t),p=(e,t)=>f(e,((e,n)=>t(n,e))),I=(e,t,n)=>r(n)?(L(e,t),e):e?.set(t,n),v=(e,t,n,r)=>(c(e,t)?r?.(w(e,t)):I(e,t,n()),w(e,t)),y=(e,t,n,r,o=0)=>s((n?v:w)(e,t[o],o>i(t)-2?n:g),(s=>{if(o>i(t)-2)return r?.(s)&&I(e,t[o]),s;const a=y(s,t,n,r,o+1);return u(s)&&I(e,t[o]),a})),b=e=>new Set(o(e)||r(e)?e:[e]),k=(e,t)=>e?.add(t),E=/^\d+$/,T=((T,m)=>{const S=new WeakMap;return T=>{S.has(T)||S.set(T,(T=>{const m=g(),S=g(),z=g(),A=g(),[D,M,j]=(e=>{let n;const[o,d]=(()=>{const e=[];let n=0;return[r=>(r?e.shift():null)??t+n++,t=>{E.test(t)&&i(e)<1e3&&l(e,t)}]})(),c=g();return[(e,r,s,i=[],a=(()=>[]))=>{n??=P;const l=o(1);return I(c,l,[e,r,s,i,a]),k(y(r,s??[t],b),l),l},(e,r,...s)=>a(((e,n=[t])=>{const r=[],s=(e,t)=>t==i(n)?l(r,e):null===n[t]?f(e,(e=>s(e,t+1))):a([n[t],null],(n=>s(w(e,n),t+1)));return s(e,0),r})(e,r),(e=>f(e,(e=>w(c,e)[0](n,...r??[],...s))))),e=>s(w(c,e),(([,n,r])=>(y(n,r??[t],void 0,(t=>(L(t,e),u(t)?1:0))),I(c,e),d(e),r))),e=>s(w(c,e),(([e,,t=[],s,o])=>{const l=(...d)=>{const c=i(d);c==i(t)?e(n,...d,...o(d)):r(t[c])?a(s[c]?.(...d)??[],(e=>l(...d,e))):l(...d,t[c])};l()}))]})(),[x,C,O,W,$,q,,,B,F,G,H]=((e,n,l,d,y)=>{const E=e.hasRow,T=g(),m=g(),S=g(),z=g(),A=g(),D=g(),M=(t,n,...r)=>{const s=v(D,t,b);return a(r,(t=>k(s,t)&&n&&e.callListener(t))),r},j=(t,...n)=>s(w(D,t),(r=>{a(0==i(n)?R(r):n,(t=>{e.delListener(t),L(r,t)})),u(r)&&I(D,t)})),x=(e,t)=>{I(T,e,t),c(m,e)||(I(m,e,[g(),g(),g(),g()]),I(z,e,g()),I(A,e,g()),y(S))},C=e=>{I(T,e),I(m,e),I(z,e),I(A,e),j(e),y(S)};return[()=>e,()=>{return e=T,[...e?.keys()??[]];var e},e=>p(m,e),e=>c(m,e),e=>w(T,e),e=>w(m,e),(e,t)=>I(m,e,t),x,(n,s,l,d,u)=>{x(n,s);const R=g(),L=g(),v=w(z,n),y=w(A,n),b=n=>{const a=t=>e.getCell(s,n,t),l=w(v,n),c=E(s,n)?(h=d(a,n),r(h)?void 0:h+t):void 0;var h,f,g,p;if(l===c||o(l)&&o(c)&&(g=c,i(f=l)===i(g)&&(p=(e,t)=>g[t]===e,f.every(p)))||I(R,n,[l,c]),!r(u)){const e=w(y,n),t=E(s,n)?u(a,n):void 0;e!=t&&I(L,n,t)}},k=e=>{l((()=>{f(R,(([,e],t)=>I(v,t,e))),f(L,((e,t)=>I(y,t,e)))}),R,L,v,y,e),h(R),h(L)};p(v,b),e.hasTable(s)&&a(e.getRowIds(s),(e=>{c(v,e)||b(e)})),k(!0),j(n),M(n,0,e.addRowListener(s,null,((e,t,n)=>b(n))),e.addTableListener(s,(()=>k())))},C,e=>d(e,S),()=>p(D,C),M,j]})(T,0,0,D,M),J=(e,t,n)=>s(q(e),(([s,,o])=>{if(!c(o,t)){const i=b();if($(e)!=N(e))k(i,t);else{let e=t;for(;!r(e)&&!c(i,e);)k(i,e),e=w(s,e)}if(n)return i;I(o,t,i)}return w(o,t)})),K=(e,t)=>s(q(e),(([,,e])=>I(e,t))),N=e=>w(m,e),P={setRelationshipDefinition:(o,i,a,l)=>{return I(m,o,a),B(o,i,((e,t)=>{const n=b(),i=b(),a=b(),[l,d]=q(o);f(t,(([e,t],R)=>{r(e)||(k(i,e),s(w(d,e),(t=>{L(t,R),u(t)&&I(d,e)}))),r(t)||(k(i,t),c(d,t)||I(d,t,b()),k(w(d,t),R)),k(n,R),I(l,R,t),p(w(A,o),(e=>{c(J(o,e),R)&&k(a,e)}))})),e(),f(n,(e=>M(S,[o,e]))),f(i,(e=>M(z,[o,e]))),f(a,(e=>{K(o,e),M(A,[o,e])}))}),e(d=l)==n?e=>e(d):d??(()=>t)),P;var d},delRelationshipDefinition:e=>(I(m,e),F(e),P),getStore:x,getRelationshipIds:C,forEachRelationship:e=>O((t=>e(t,(e=>T.forEachRow($(t),e))))),hasRelationship:W,getLocalTableId:$,getRemoteTableId:N,getRemoteRowId:(e,t)=>w(q(e)?.[0],t),getLocalRowIds:(e,t)=>R(w(q(e)?.[1],t)),getLinkedRowIds:(e,t)=>r(q(e))?[t]:R(J(e,t,!0)),addRelationshipIdsListener:G,addRemoteRowIdListener:(e,t,n)=>D(n,S,[e,t]),addLocalRowIdsListener:(e,t,n)=>D(n,z,[e,t]),addLinkedRowIdsListener:(e,t,n)=>(J(e,t),D(n,A,[e,t])),delListener:e=>(K(...j(e)??[]),P),destroy:H,getListenerStats:()=>({})};return d(P)})(T));return S.get(T)}})();export{T as createRelationships};
Binary file
package/lib/store.js CHANGED
@@ -1 +1 @@
1
- const e=e=>typeof e,t="",s=e(t),l=e(!0),n=e(0),a=e(e),o="type",r="default",c="Has",i="Ids",d="Table",u=d+"s",h=d+i,g="Row",f=g+"Count",T=g+i,V="Cell",b=V+i,C="Value",v=C+"s",S=C+i,w=e=>t+e,I=isFinite,m=e=>null==e,y=(e,t,s)=>m(e)?s?.():t(e),R=e=>e==s||e==l,p=t=>e(t)==a,J=(e,t,s)=>e.slice(t,s),L=e=>e.length,E=(e,t)=>e.forEach(t),F=(e,t)=>e.map(t),O=(e,...t)=>e.push(...t),z=Object,P=e=>z.getPrototypeOf(e),k=z.entries,A=z.keys,M=z.isFrozen,N=z.freeze,j=e=>!m(e)&&y(P(e),(e=>e==z.prototype||m(P(e))),(()=>!0)),x=(e,t)=>!m(((e,t)=>y(e,(e=>e[t])))(e,t)),D=(e,t)=>(delete e[t],e),H=(e,t)=>F(k(e),(([e,s])=>t(s,e))),W=e=>j(e)&&0==(e=>L(A(e)))(e),$=e=>e?.size??0,q=(e,t)=>e?.has(t)??!1,B=e=>m(e)||0==$(e),G=e=>e.clear(),K=(e,t)=>e?.forEach(t),Q=(e,t)=>e?.delete(t),U=e=>new Map(e),X=e=>[...e?.keys()??[]],Y=(e,t)=>e?.get(t),Z=(e,t)=>K(e,((e,s)=>t(s,e))),_=(e,t,s)=>m(s)?(Q(e,t),e):e?.set(t,s),ee=(e,t,s)=>(q(e,t)||_(e,t,s()),Y(e,t)),te=(e,t,s,l=_)=>(H(t,((t,l)=>s(e,l,t))),Z(e,(s=>x(t,s)?0:l(e,s))),e),se=(e,t,s)=>{const l={};return K(e,((e,n)=>{const a=t?t(e,n):e;!s?.(a,e)&&(l[n]=a)})),l},le=(e,t,s)=>se(e,(e=>se(e,t,s)),W),ne=(e,t,s)=>se(e,(e=>le(e,t,s)),W),ae=(e,t)=>{const s=U();return K(e,((e,l)=>s.set(l,t?.(e)??e))),s},oe=e=>ae(e,ae),re=e=>ae(e,oe),ce=(e,t,s,l,n=0)=>y((s?ee:Y)(e,t[n],n>L(t)-2?s:U),(a=>{if(n>L(t)-2)return l?.(a)&&_(e,t[n]),a;const o=ce(a,t,s,l,n+1);return B(a)&&_(e,t[n]),o})),ie=e=>new Set(Array.isArray(e)||m(e)?e:[e]),de=(e,t)=>e?.add(t),ue=/^\d+$/,he=()=>{const e=[];let s=0;return[l=>(l?e.shift():null)??t+s++,t=>{ue.test(t)&&L(e)<1e3&&O(e,t)}]},ge=e=>[e,e],fe=()=>[U(),U()],Te=e=>[...e],Ve=([e,t])=>e===t,be=t=>{const s=e(t);return R(s)||s==n&&I(t)?s:void 0},Ce=(e,t,s,l,n)=>m(n)?e.delCell(t,s,l,!0):e.setCell(t,s,l,n),ve=(e,t,s)=>m(s)?e.delValue(t):e.setValue(t,s),Se=e=>JSON.stringify(e,((e,t)=>t instanceof Map?z.fromEntries([...t]):t)),we=JSON.parse,Ie=(e,t,s)=>m(e)||!j(e)||W(e)||M(e)?(s?.(),!1):(H(e,((s,l)=>{t(s,l)||D(e,l)})),!W(e)),me=(e,t,s)=>_(e,t,Y(e,t)==-s?void 0:s),ye=()=>{let e,s,l=!1,a=!1,i=!1,I=!1,z=0;const P=U(),k=U(),A=U(),M=U(),j=U(),ue=U(),Re=U(),pe=U(),Je=U(),Le=U(),Ee=U(),Fe=U(),Oe=U(),ze=U(),Pe=ie(),ke=U(),Ae=U(),Me=U(),Ne=U(),je=fe(),xe=fe(),De=fe(),He=fe(),We=fe(),$e=fe(),qe=fe(),Be=fe(),Ge=fe(),Ke=fe(),Qe=fe(),Ue=fe(),Xe=fe(),Ye=fe(),Ze=fe(),_e=fe(),et=fe(),tt=fe(),st=fe(),lt=fe(),nt=fe(),at=fe(),ot=U(),rt=fe(),[ct,it,dt,ut]=(e=>{let s;const[l,n]=he(),a=U();return[(e,n,o,r=[],c=(()=>[]))=>{s??=Ps;const i=l(1);return _(a,i,[e,n,o,r,c]),de(ce(n,o??[t],ie),i),i},(e,l,...n)=>E(((e,s=[t])=>{const l=[],n=(e,t)=>t==L(s)?O(l,e):null===s[t]?K(e,(e=>n(e,t+1))):E([s[t],null],(s=>n(Y(e,s),t+1)));return n(e,0),l})(e,l),(e=>K(e,(e=>Y(a,e)[0](s,...l??[],...n))))),e=>y(Y(a,e),(([,s,l])=>(ce(s,l??[t],void 0,(t=>(Q(t,e),B(t)?1:0))),_(a,e),n(e),l))),e=>y(Y(a,e),(([e,,t=[],l,n])=>{const a=(...o)=>{const r=L(o);r==L(t)?e(s,...o,...n(o)):m(t[r])?E(l[r]?.(...o)??[],(e=>a(...o,e))):a(...o,t[r])};a()}))]})(),ht=e=>{if(!Ie(e,((e,t)=>[o,r].includes(t))))return!1;const t=e[o];return!(!R(t)&&t!=n||(be(e[r])!=t&&D(e,r),0))},gt=(t,s)=>(!e||q(Ee,s)||$t(s))&&Ie(t,((e,t)=>ft(s,t,e)),(()=>$t(s))),ft=(e,t,s,l)=>Ie(l?s:Ct(s,e,t),((l,n)=>y(Tt(e,t,n,l),(e=>(s[n]=e,!0)),(()=>!1))),(()=>$t(e,t))),Tt=(t,s,l,n)=>e?y(Y(Y(Ee,t),l),(e=>be(n)!=e[o]?$t(t,s,l,n,e[r]):n),(()=>$t(t,s,l,n))):m(be(n))?$t(t,s,l,n):n,Vt=(e,t)=>Ie(t?e:vt(e),((t,s)=>y(bt(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>qt())),bt=(e,t)=>s?y(Y(Oe,e),(s=>be(t)!=s[o]?qt(e,t,s[r]):t),(()=>qt(e,t))):m(be(t))?qt(e,t):t,Ct=(e,t,s)=>(y(Y(Fe,t),(([l,n])=>{K(l,((t,s)=>{x(e,s)||(e[s]=t)})),K(n,(l=>{x(e,l)||$t(t,s,l)}))})),e),vt=e=>(s&&(K(ze,((t,s)=>{x(e,s)||(e[s]=t)})),K(Pe,(t=>{x(e,t)||qt(t)}))),e),St=e=>te(Ee,e,((e,t,s)=>{const l=U(),n=ie();te(ee(Ee,t,U),s,((e,t,s)=>{_(e,t,s),y(s[r],(e=>_(l,t,e)),(()=>de(n,t)))})),_(Fe,t,[l,n])}),((e,t)=>{_(Ee,t),_(Fe,t)})),wt=e=>te(Oe,e,((e,t,s)=>{_(Oe,t,s),y(s[r],(e=>_(ze,t,e)),(()=>de(Pe,t)))}),((e,t)=>{_(Oe,t),_(ze,t),Q(Pe,t)})),It=e=>W(e)?ys():vs(e),mt=e=>te(Me,e,((e,t,s)=>yt(t,s)),((e,t)=>Pt(t))),yt=(e,t)=>te(ee(Me,e,(()=>(Nt(e,1),_(ke,e,he()),_(Ae,e,U()),U()))),t,((t,s,l)=>Rt(e,t,s,l)),((t,s)=>kt(e,t,s))),Rt=(e,t,s,l,n)=>te(ee(t,s,(()=>(jt(e,s,1),U()))),l,((t,l,n)=>pt(e,s,t,l,n)),((l,a)=>At(e,t,s,l,a,n))),pt=(e,t,s,l,n)=>{q(s,l)||xt(e,t,l,1);const a=Y(s,l);n!==a&&(Dt(e,t,l,a,n),_(s,l,n))},Jt=(e,t,s,l,n)=>y(Y(t,s),(t=>pt(e,s,t,l,n)),(()=>Rt(e,t,s,Ct({[l]:n},e,s)))),Lt=e=>W(e)?Js():Ss(e),Et=e=>te(Ne,e,((e,t,s)=>Ft(t,s)),((e,t)=>Mt(t))),Ft=(e,t)=>{q(Ne,e)||Ht(e,1);const s=Y(Ne,e);t!==s&&(Wt(e,s,t),_(Ne,e,t))},Ot=(e,t)=>{const[s]=Y(ke,e),l=s(t);return q(Y(Me,e),l)?Ot(e,t):l},zt=e=>Y(Me,e)??yt(e,{}),Pt=e=>yt(e,{}),kt=(e,t,s)=>{const[,l]=Y(ke,e);l(s),Rt(e,t,s,{},!0)},At=(e,t,s,l,n,a)=>{const o=Y(Y(Fe,e)?.[0],n);if(!m(o)&&!a)return pt(e,s,l,n,o);const r=t=>{Dt(e,s,t,Y(l,t)),xt(e,s,t,-1),_(l,t)};m(o)?r(n):Z(l,r),B(l)&&(jt(e,s,-1),B(_(t,s))&&(Nt(e,-1),_(Me,e),_(ke,e),_(Ae,e)))},Mt=e=>{const t=Y(ze,e);if(!m(t))return Ft(e,t);Wt(e,Y(Ne,e)),Ht(e,-1),_(Ne,e)},Nt=(e,t)=>me(P,e,t),jt=(e,t,s)=>me(ee(M,e,U),t,s)&&_(A,e,ee(A,e,(()=>0))+s),xt=(e,t,s,l)=>{const n=Y(Ae,e),a=Y(n,s)??0;(0==a&&1==l||1==a&&-1==l)&&me(ee(k,e,U),s,l),_(n,s,a!=-l?a+l:null),me(ee(ee(j,e,U),t,U),s,l)},Dt=(e,t,s,l,n)=>ee(ee(ee(ue,e,U),t,U),s,(()=>[l,0]))[1]=n,Ht=(e,t)=>me(Re,e,t),Wt=(e,t,s)=>ee(pe,e,(()=>[t,0]))[1]=s,$t=(e,t,s,l,n)=>(O(ee(ee(ee(Je,e,U),t,U),s,(()=>[])),l),n),qt=(e,t,s)=>(O(ee(Le,e,(()=>[])),t),s),Bt=(e,t,s)=>y(Y(Y(Y(ue,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...ge(cs(e,t,s))])),Gt=e=>y(Y(pe,e),(([e,t])=>[!0,e,t]),(()=>[!1,...ge(us(e))])),Kt=e=>B(Je)||B(_e[e])?0:K(e?re(Je):Je,((t,s)=>K(t,((t,l)=>K(t,((t,n)=>it(_e[e],[s,l,n],t))))))),Qt=e=>B(Le)||B(et[e])?0:K(e?ae(Le):Le,((t,s)=>it(et[e],[s],t))),Ut=(e,t,s,l)=>{if(!B(e))return it(t,l,(()=>se(e))),Z(e,((e,t)=>it(s,[...l??[],e],1==t))),1},Xt=e=>{const t=hs();t!=i&&it(je[e],void 0,t);const s=B(Ke[e]),l=B(Xe[e])&&B(Ye[e])&&B(Ge[e])&&B(Qe[e])&&B($e[e])&&B(qe[e])&&B(Be[e])&&s&&B(De[e])&&B(He[e]),n=B(Ze[e])&&B(Ue[e])&&B(We[e])&&B(xe[e]);if(!l||!n){const t=e?[ae(P),oe(k),ae(A),oe(M),re(j),re(ue)]:[P,k,A,M,j,ue];if(!l){Ut(t[0],De[e],He[e]),K(t[1],((t,s)=>Ut(t,$e[e],qe[e],[s]))),K(t[2],((t,s)=>{0!=t&&it(Be[e],[s],ns(s))}));const l=ie();K(t[3],((t,n)=>{Ut(t,Ge[e],Qe[e],[n])&&!s&&(it(Ke[e],[n,null]),de(l,n))})),s||K(t[5],((t,s)=>{if(!q(l,s)){const l=ie();K(t,(e=>K(e,(([t,s],n)=>s!==t?de(l,n):Q(e,n))))),K(l,(t=>it(Ke[e],[s,t])))}})),K(t[4],((t,s)=>K(t,((t,l)=>Ut(t,Xe[e],Ye[e],[s,l])))))}if(!n){let s;K(t[5],((t,l)=>{let n;K(t,((t,a)=>{let o;K(t,(([t,r],c)=>{r!==t&&(it(Ze[e],[l,a,c],r,t,Bt),s=n=o=1)})),o&&it(Ue[e],[l,a],Bt)})),n&&it(We[e],[l],Bt)})),s&&it(xe[e],void 0,Bt)}}},Yt=e=>{const t=bs();t!=I&&it(tt[e],void 0,t);const s=B(lt[e])&&B(nt[e]),l=B(at[e])&&B(st[e]);if(!s||!l){const t=e?[ae(Re),ae(pe)]:[Re,pe];if(s||Ut(t[0],lt[e],nt[e]),!l){let s;K(t[1],(([t,l],n)=>{l!==t&&(it(at[e],[n],l,t,Gt),s=1)})),s&&it(st[e],void 0,Gt)}}},Zt=(e,...t)=>(Fs((()=>e(...F(t,w)))),Ps),_t=()=>[se(ue,((e,t)=>-1===Y(P,t)?null:se(e,((e,s)=>-1===Y(Y(M,t),s)?null:se(e,(([,e])=>e??null),((e,t)=>Ve(t)))),W)),W),se(pe,(([,e])=>e??null),((e,t)=>Ve(t)))],es=()=>({cellsTouched:l,valuesTouched:a,changedCells:ne(ue,Te,Ve),invalidCells:ne(Je),changedValues:se(pe,Te,Ve),invalidValues:se(Le),changedTableIds:se(P),changedRowIds:le(M),changedCellIds:ne(j),changedValueIds:se(Re)}),ts=()=>ne(Me),ss=()=>X(Me),ls=e=>X(Y(Ae,w(e))),ns=e=>$(Y(Me,w(e))),as=e=>X(Y(Me,w(e))),os=(e,t,s,l=0,n)=>{return F(J((o=Y(Me,w(e)),r=(e,s)=>[m(t)?s:Y(e,w(t)),s],a=([e],[t])=>((e??0)<(t??0)?-1:1)*(s?-1:1),F([...o?.entries()??[]],(([e,t])=>r(t,e))).sort(a)),l,m(n)?n:l+n),(([,e])=>e));var a,o,r},rs=(e,t)=>X(Y(Y(Me,w(e)),w(t))),cs=(e,t,s)=>Y(Y(Y(Me,w(e)),w(t)),w(s)),is=()=>se(Ne),ds=()=>X(Ne),us=e=>Y(Ne,w(e)),hs=()=>!B(Me),gs=e=>q(Me,w(e)),fs=(e,t)=>q(Y(Ae,w(e)),w(t)),Ts=(e,t)=>q(Y(Me,w(e)),w(t)),Vs=(e,t,s)=>q(Y(Y(Me,w(e)),w(t)),w(s)),bs=()=>!B(Ne),Cs=e=>q(Ne,w(e)),vs=e=>Zt((()=>(e=>Ie(e,gt,$t))(e)?mt(e):0)),Ss=e=>Zt((()=>Vt(e)?Et(e):0)),ws=e=>{try{It(we(e))}catch{}return Ps},Is=t=>Zt((()=>{if((e=Ie(t,(e=>Ie(e,ht))))&&(St(t),!B(Me))){const e=ts();ys(),vs(e)}})),ms=e=>Zt((()=>{if(s=(e=>Ie(e,ht))(e)){const t=is();Es(),Js(),s=!0,wt(e),Ss(t)}})),ys=()=>Zt((()=>mt({}))),Rs=e=>Zt((e=>q(Me,e)?Pt(e):0),e),ps=(e,t)=>Zt(((e,t)=>y(Y(Me,e),(s=>q(s,t)?kt(e,s,t):0))),e,t),Js=()=>Zt((()=>Et({}))),Ls=()=>Zt((()=>{St({}),e=!1})),Es=()=>Zt((()=>{wt({}),s=!1})),Fs=(e,t)=>{if(-1!=z){Os();const s=e();return zs(t),s}},Os=()=>(-1!=z&&z++,1==z&&it(ot,void 0,_t,es),Ps),zs=e=>(z>0&&(z--,0==z&&(l=!B(ue),a=!B(pe),z=1,Kt(1),l&&Xt(1),Qt(1),a&&Yt(1),e?.(_t,es)&&(K(ue,((e,t)=>K(e,((e,s)=>K(e,(([e],l)=>Ce(Ps,t,s,l,e))))))),K(pe,(([e],t)=>ve(Ps,t,e))),l=a=!1),it(rt[0],void 0,_t,es),z=-1,Kt(0),l&&Xt(0),Qt(0),a&&Yt(0),it(rt[1],void 0,_t,es),z=0,l=a=!1,i=hs(),I=bs(),E([P,k,A,M,j,ue,Je,Re,pe,Le],G))),Ps),Ps={getContent:()=>[ts(),is()],getTables:ts,getTableIds:ss,getTable:e=>le(Y(Me,w(e))),getTableCellIds:ls,getRowCount:ns,getRowIds:as,getSortedRowIds:os,getRow:(e,t)=>se(Y(Y(Me,w(e)),w(t))),getCellIds:rs,getCell:cs,getValues:is,getValueIds:ds,getValue:us,hasTables:hs,hasTable:gs,hasTableCell:fs,hasRow:Ts,hasCell:Vs,hasValues:bs,hasValue:Cs,getTablesJson:()=>Se(Me),getValuesJson:()=>Se(Ne),getJson:()=>Se([Me,Ne]),getTablesSchemaJson:()=>Se(Ee),getValuesSchemaJson:()=>Se(Oe),getSchemaJson:()=>Se([Ee,Oe]),hasTablesSchema:()=>e,hasValuesSchema:()=>s,setContent:([e,t])=>Zt((()=>{(W(e)?ys:vs)(e),(W(t)?Js:Ss)(t)})),setTables:vs,setTable:(e,t)=>Zt((e=>gt(t,e)?yt(e,t):0),e),setRow:(e,t,s)=>Zt(((e,t)=>ft(e,t,s)?Rt(e,zt(e),t,s):0),e,t),addRow:(e,t,s=!0)=>Fs((()=>{let l;return ft(e,l,t)&&(e=w(e),Rt(e,zt(e),l=Ot(e,s?1:0),t)),l})),setPartialRow:(e,t,s)=>Zt(((e,t)=>{if(ft(e,t,s,1)){const l=zt(e);H(s,((s,n)=>Jt(e,l,t,n,s)))}}),e,t),setCell:(e,t,s,l)=>Zt(((e,t,s)=>y(Tt(e,t,s,p(l)?l(cs(e,t,s)):l),(l=>Jt(e,zt(e),t,s,l)))),e,t,s),setValues:Ss,setPartialValues:e=>Zt((()=>Vt(e,1)?H(e,((e,t)=>Ft(t,e))):0)),setValue:(e,t)=>Zt((e=>y(bt(e,p(t)?t(us(e)):t),(t=>Ft(e,t)))),e),setTransactionChanges:e=>Zt((()=>{H(e[0],((e,t)=>m(e)?Rs(t):H(e,((e,s)=>m(e)?ps(t,s):H(e,((e,l)=>Ce(Ps,t,s,l,e))))))),H(e[1],((e,t)=>ve(Ps,t,e)))})),setTablesJson:ws,setValuesJson:e=>{try{Lt(we(e))}catch{}return Ps},setJson:e=>Zt((()=>{try{const[t,s]=we(e);It(t),Lt(s)}catch{ws(e)}})),setTablesSchema:Is,setValuesSchema:ms,setSchema:(e,t)=>Zt((()=>{Is(e),ms(t)})),delTables:ys,delTable:Rs,delRow:ps,delCell:(e,t,s,l)=>Zt(((e,t,s)=>y(Y(Me,e),(n=>y(Y(n,t),(a=>q(a,s)?At(e,n,t,a,s,l):0))))),e,t,s),delValues:Js,delValue:e=>Zt((e=>q(Ne,e)?Mt(e):0),e),delTablesSchema:Ls,delValuesSchema:Es,delSchema:()=>Zt((()=>{Ls(),Es()})),transaction:Fs,startTransaction:Os,finishTransaction:zs,forEachTable:e=>K(Me,((t,s)=>e(s,(e=>K(t,((t,s)=>e(s,(e=>Z(t,e))))))))),forEachTableCell:(e,t)=>Z(Y(Ae,w(e)),t),forEachRow:(e,t)=>K(Y(Me,w(e)),((e,s)=>t(s,(t=>Z(e,t))))),forEachCell:(e,t,s)=>Z(Y(Y(Me,w(e)),w(t)),s),forEachValue:e=>Z(Ne,e),addSortedRowIdsListener:(e,t,s,l,n,a,o)=>{let r=os(e,t,s,l,n);return ct((()=>{const o=os(e,t,s,l,n);var c,i,d;i=r,L(c=o)===L(i)&&(d=(e,t)=>i[t]===e,c.every(d))||(r=o,a(Ps,e,t,s,l,n,r))}),Ke[o?1:0],[e,t],[ss])},addStartTransactionListener:e=>ct(e,ot),addWillFinishTransactionListener:e=>ct(e,rt[0]),addDidFinishTransactionListener:e=>ct(e,rt[1]),callListener:e=>(ut(e),Ps),delListener:e=>(dt(e),Ps),getListenerStats:()=>({}),createStore:ye,addListener:ct,callListeners:it};return H({[c+u]:[0,je,[],()=>[hs()]],[u]:[0,xe],[h]:[0,De],[c+d]:[1,He,[ss],e=>[gs(...e)]],[d]:[1,We,[ss]],[d+b]:[1,$e,[ss]],[c+d+V]:[2,qe,[ss,ls],e=>[fs(...e)]],[f]:[1,Be,[ss]],[T]:[1,Ge,[ss]],[c+g]:[2,Qe,[ss,as],e=>[Ts(...e)]],[g]:[2,Ue,[ss,as]],[b]:[2,Xe,[ss,as]],[c+V]:[3,Ye,[ss,as,rs],e=>[Vs(...e)]],[V]:[3,Ze,[ss,as,rs],e=>ge(cs(...e))],InvalidCell:[3,_e],[c+v]:[0,tt,[],()=>[bs()]],[v]:[0,st],[S]:[0,lt],[c+C]:[1,nt,[ds],e=>[Cs(...e)]],[C]:[1,at,[ds],e=>ge(us(e[0]))],InvalidValue:[1,et]},(([e,t,s,l],n)=>{Ps["add"+n+"Listener"]=(...n)=>ct(n[e],t[n[e+1]?1:0],e>0?J(n,0,e):void 0,s,l)})),N(Ps)};export{ye as createStore};
1
+ const e=e=>typeof e,t="",s=e(t),n=e(!0),a=e(0),l=e(e),o="type",r="default",c="Has",i="Ids",d="Table",u=d+"s",h=d+i,f="Row",g=f+"Count",T=f+i,b="Cell",V=b+i,C="Value",S=C+"s",v=C+i,w=e=>t+e,y=isFinite,m=e=>null==e,p=(e,t,s)=>m(e)?s?.():t(e),L=e=>e==s||e==n,R=t=>e(t)==l,I=(e,t,s)=>e.slice(t,s),J=e=>e.length,E=(e,t)=>e.forEach(t),F=(e,t)=>e.map(t),O=(e,...t)=>e.push(...t),z=Object,P=e=>z.getPrototypeOf(e),k=z.entries,A=z.isFrozen,M=e=>!m(e)&&p(P(e),(e=>e==z.prototype||m(P(e))),(()=>!0)),N=z.keys,j=z.freeze,x=(e,t)=>t in e,D=(e,t)=>(delete e[t],e),H=(e,t)=>F(k(e),(([e,s])=>t(s,e))),W=e=>M(e)&&0==(e=>J(N(e)))(e),$=(e,t,s,n=0)=>m(e)||!M(e)||!n&&W(e)||A(e)?(s?.(),!1):(H(e,((s,n)=>{t(s,n)||D(e,n)})),!!n||!W(e)),q=e=>e?.size??0,B=(e,t)=>e?.has(t)??!1,G=e=>m(e)||0==q(e),K=e=>e.clear(),Q=(e,t)=>e?.forEach(t),U=(e,t)=>e?.delete(t),X=e=>new Map(e),Y=e=>[...e?.keys()??[]],Z=(e,t)=>e?.get(t),_=(e,t)=>Q(e,((e,s)=>t(s,e))),ee=(e,t,s)=>m(s)?(U(e,t),e):e?.set(t,s),te=(e,t,s,n)=>(B(e,t)?n?.(Z(e,t)):ee(e,t,s()),Z(e,t)),se=(e,t,s,n=ee)=>(H(t,((t,n)=>s(e,n,t))),_(e,(s=>x(t,s)?0:n(e,s))),e),ne=(e,t,s,n)=>{const a={};return Q(e,((e,l)=>{if(!s?.(e,l)){const s=t?t(e,l):e;!n?.(s)&&(a[l]=s)}})),a},ae=(e,t,s)=>ne(e,(e=>ne(e,t,s)),G,W),le=(e,t,s)=>ne(e,(e=>ae(e,t,s)),G,W),oe=(e,t)=>{const s=X();return Q(e,((e,n)=>s.set(n,t?.(e)??e))),s},re=e=>oe(e,oe),ce=e=>oe(e,re),ie=(e,t,s,n,a=0)=>p((s?te:Z)(e,t[a],a>J(t)-2?s:X),(l=>{if(a>J(t)-2)return n?.(l)&&ee(e,t[a]),l;const o=ie(l,t,s,n,a+1);return G(l)&&ee(e,t[a]),o})),de=e=>new Set(Array.isArray(e)||m(e)?e:[e]),ue=(e,t)=>e?.add(t),he=/^\d+$/,fe=()=>{const e=[];let s=0;return[n=>(n?e.shift():null)??t+s++,t=>{he.test(t)&&J(e)<1e3&&O(e,t)}]},ge=e=>[e,e],Te=()=>[X(),X()],be=e=>[...e],Ve=([e,t])=>e===t,Ce=t=>{const s=e(t);return L(s)||s==a&&y(t)?s:void 0},Se=(e,t,s,n,a)=>m(a)?e.delCell(t,s,n,!0):e.setCell(t,s,n,a),ve=(e,t,s)=>m(s)?e.delValue(t):e.setValue(t,s),we=e=>JSON.stringify(e,((e,t)=>t instanceof Map?z.fromEntries([...t]):t)),ye=JSON.parse,me=(e,t,s)=>ee(e,t,Z(e,t)==-s?void 0:s),pe=()=>{let e,s,n=!1,l=!1,i=0,y=[];const z=X(),P=X(),k=X(),A=X(),M=X(),N=X(),he=X(),Le=X(),Re=X(),Ie=X(),Je=X(),Ee=X(),Fe=X(),Oe=X(),ze=de(),Pe=X(),ke=X(),Ae=X(),Me=X(),Ne=Te(),je=Te(),xe=Te(),De=Te(),He=Te(),We=Te(),$e=Te(),qe=Te(),Be=Te(),Ge=Te(),Ke=Te(),Qe=Te(),Ue=Te(),Xe=Te(),Ye=Te(),Ze=Te(),_e=Te(),et=Te(),tt=Te(),st=Te(),nt=Te(),at=Te(),lt=X(),ot=Te(),[rt,ct,it,dt]=(e=>{let s;const[n,a]=fe(),l=X();return[(e,a,o,r=[],c=(()=>[]))=>{s??=Fs;const i=n(1);return ee(l,i,[e,a,o,r,c]),ue(ie(a,o??[t],de),i),i},(e,n,...a)=>E(((e,s=[t])=>{const n=[],a=(e,t)=>t==J(s)?O(n,e):null===s[t]?Q(e,(e=>a(e,t+1))):E([s[t],null],(s=>a(Z(e,s),t+1)));return a(e,0),n})(e,n),(e=>Q(e,(e=>Z(l,e)[0](s,...n??[],...a))))),e=>p(Z(l,e),(([,s,n])=>(ie(s,n??[t],void 0,(t=>(U(t,e),G(t)?1:0))),ee(l,e),a(e),n))),e=>p(Z(l,e),(([e,,t=[],n,a])=>{const l=(...o)=>{const r=J(o);r==J(t)?e(s,...o,...a(o)):m(t[r])?E(n[r]?.(...o)??[],(e=>l(...o,e))):l(...o,t[r])};l()}))]})(),ut=e=>{if(!$(e,((e,t)=>[o,r].includes(t))))return!1;const t=e[o];return!(!L(t)&&t!=a||(Ce(e[r])!=t&&D(e,r),0))},ht=(t,s)=>(!e||B(Je,s)||Wt(s))&&$(t,((e,t)=>ft(s,t,e)),(()=>Wt(s))),ft=(e,t,s,n)=>$(n?s:Vt(s,e,t),((n,a)=>p(gt(e,t,a,n),(e=>(s[a]=e,!0)),(()=>!1))),(()=>Wt(e,t))),gt=(t,s,n,a)=>e?p(Z(Z(Je,t),n),(e=>Ce(a)!=e[o]?Wt(t,s,n,a,e[r]):a),(()=>Wt(t,s,n,a))):m(Ce(a))?Wt(t,s,n,a):a,Tt=(e,t)=>$(t?e:Ct(e),((t,s)=>p(bt(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>$t())),bt=(e,t)=>s?p(Z(Fe,e),(s=>Ce(t)!=s[o]?$t(e,t,s[r]):t),(()=>$t(e,t))):m(Ce(t))?$t(e,t):t,Vt=(e,t,s)=>(p(Z(Ee,t),(([n,a])=>{Q(n,((t,s)=>{x(e,s)||(e[s]=t)})),Q(a,(n=>{x(e,n)||Wt(t,s,n)}))})),e),Ct=e=>(s&&(Q(Oe,((t,s)=>{x(e,s)||(e[s]=t)})),Q(ze,(t=>{x(e,t)||$t(t)}))),e),St=e=>se(Je,e,((e,t,s)=>{const n=X(),a=de();se(te(Je,t,X),s,((e,t,s)=>{ee(e,t,s),p(s[r],(e=>ee(n,t,e)),(()=>ue(a,t)))})),ee(Ee,t,[n,a])}),((e,t)=>{ee(Je,t),ee(Ee,t)})),vt=e=>se(Fe,e,((e,t,s)=>{ee(Fe,t,s),p(s[r],(e=>ee(Oe,t,e)),(()=>ue(ze,t)))}),((e,t)=>{ee(Fe,t),ee(Oe,t),U(ze,t)})),wt=e=>W(e)?ws():bs(e),yt=e=>se(Ae,e,((e,t,s)=>mt(t,s)),((e,t)=>zt(t))),mt=(e,t)=>se(te(Ae,e,(()=>(Mt(e,1),ee(Pe,e,fe()),ee(ke,e,X()),X()))),t,((t,s,n)=>pt(e,t,s,n)),((t,s)=>Pt(e,t,s))),pt=(e,t,s,n,a)=>se(te(t,s,(()=>(Nt(e,s,1),X()))),n,((t,n,a)=>Lt(e,s,t,n,a)),((n,l)=>kt(e,t,s,n,l,a))),Lt=(e,t,s,n,a)=>{B(s,n)||jt(e,t,n,1);const l=Z(s,n);a!==l&&(xt(e,t,n,l,a),ee(s,n,a))},Rt=(e,t,s,n,a)=>p(Z(t,s),(t=>Lt(e,s,t,n,a)),(()=>pt(e,t,s,Vt({[n]:a},e,s)))),It=e=>W(e)?ps():Vs(e),Jt=e=>se(Me,e,((e,t,s)=>Et(t,s)),((e,t)=>At(t))),Et=(e,t)=>{B(Me,e)||Dt(e,1);const s=Z(Me,e);t!==s&&(Ht(e,s,t),ee(Me,e,t))},Ft=(e,t)=>{const[s]=Z(Pe,e),n=s(t);return B(Z(Ae,e),n)?Ft(e,t):n},Ot=e=>Z(Ae,e)??mt(e,{}),zt=e=>mt(e,{}),Pt=(e,t,s)=>{const[,n]=Z(Pe,e);n(s),pt(e,t,s,{},!0)},kt=(e,t,s,n,a,l)=>{const o=Z(Z(Ee,e)?.[0],a);if(!m(o)&&!l)return Lt(e,s,n,a,o);const r=t=>{xt(e,s,t,Z(n,t)),jt(e,s,t,-1),ee(n,t)};m(o)?r(a):_(n,r),G(n)&&(Nt(e,s,-1),G(ee(t,s))&&(Mt(e,-1),ee(Ae,e),ee(Pe,e),ee(ke,e)))},At=e=>{const t=Z(Oe,e);if(!m(t))return Et(e,t);Ht(e,Z(Me,e)),Dt(e,-1),ee(Me,e)},Mt=(e,t)=>me(z,e,t),Nt=(e,t,s)=>me(te(A,e,X),t,s)&&ee(k,e,te(k,e,(()=>0))+s),jt=(e,t,s,n)=>{const a=Z(ke,e),l=Z(a,s)??0;(0==l&&1==n||1==l&&-1==n)&&me(te(P,e,X),s,n),ee(a,s,l!=-n?l+n:null),me(te(te(M,e,X),t,X),s,n)},xt=(e,t,s,n,a)=>{te(te(te(N,e,X),t,X),s,(()=>[n,0]))[1]=a,y[3]?.(e,t,s,a)},Dt=(e,t)=>me(he,e,t),Ht=(e,t,s)=>{te(Le,e,(()=>[t,0]))[1]=s,y[4]?.(e,s)},Wt=(e,t,s,n,a)=>(O(te(te(te(Re,e,X),t,X),s,(()=>[])),n),a),$t=(e,t,s)=>(O(te(Ie,e,(()=>[])),t),s),qt=(e,t,s)=>p(Z(Z(Z(N,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...ge(ls(e,t,s))])),Bt=e=>p(Z(Le,e),(([e,t])=>[!0,e,t]),(()=>[!1,...ge(cs(e))])),Gt=e=>G(Re)||G(Ze[e])?0:Q(e?ce(Re):Re,((t,s)=>Q(t,((t,n)=>Q(t,((t,a)=>ct(Ze[e],[s,n,a],t))))))),Kt=e=>G(Ie)||G(_e[e])?0:Q(e?oe(Ie):Ie,((t,s)=>ct(_e[e],[s],t))),Qt=(e,t,s,n)=>{if(!G(e))return ct(t,n,(()=>ne(e))),_(e,((e,t)=>ct(s,[...n??[],e],1==t))),1},Ut=e=>{const t=is();t!=n&&ct(Ne[e],void 0,t);const s=G(Ge[e]),a=G(Ue[e])&&G(Xe[e])&&G(Be[e])&&G(Ke[e])&&G(We[e])&&G($e[e])&&G(qe[e])&&s&&G(xe[e])&&G(De[e]),l=G(Ye[e])&&G(Qe[e])&&G(He[e])&&G(je[e]);if(!a||!l){const t=e?[oe(z),re(P),oe(k),re(A),ce(M),ce(N)]:[z,P,k,A,M,N];if(!a){Qt(t[0],xe[e],De[e]),Q(t[1],((t,s)=>Qt(t,We[e],$e[e],[s]))),Q(t[2],((t,s)=>{0!=t&&ct(qe[e],[s],ts(s))}));const n=de();Q(t[3],((t,a)=>{Qt(t,Be[e],Ke[e],[a])&&!s&&(ct(Ge[e],[a,null]),ue(n,a))})),s||Q(t[5],((t,s)=>{if(!B(n,s)){const n=de();Q(t,(e=>Q(e,(([t,s],a)=>s!==t?ue(n,a):U(e,a))))),Q(n,(t=>ct(Ge[e],[s,t])))}})),Q(t[4],((t,s)=>Q(t,((t,n)=>Qt(t,Ue[e],Xe[e],[s,n])))))}if(!l){let s;Q(t[5],((t,n)=>{let a;Q(t,((t,l)=>{let o;Q(t,(([t,r],c)=>{r!==t&&(ct(Ye[e],[n,l,c],r,t,qt),s=a=o=1)})),o&&ct(Qe[e],[n,l],qt)})),a&&ct(He[e],[n],qt)})),s&&ct(je[e],void 0,qt)}}},Xt=e=>{const t=gs();t!=l&&ct(et[e],void 0,t);const s=G(st[e])&&G(nt[e]),n=G(at[e])&&G(tt[e]);if(!s||!n){const t=e?[oe(he),oe(Le)]:[he,Le];if(s||Qt(t[0],st[e],nt[e]),!n){let s;Q(t[1],(([t,n],a)=>{n!==t&&(ct(at[e],[a],n,t,Bt),s=1)})),s&&ct(tt[e],void 0,Bt)}}},Yt=(e,...t)=>(Is((()=>e(...F(t,w)))),Fs),Zt=()=>le(Ae),_t=()=>Y(Ae),es=e=>Y(Z(ke,w(e))),ts=e=>q(Z(Ae,w(e))),ss=e=>Y(Z(Ae,w(e))),ns=(e,t,s,n=0,a)=>{return F(I((o=Z(Ae,w(e)),r=(e,s)=>[m(t)?s:Z(e,w(t)),s],l=([e],[t])=>((e??0)<(t??0)?-1:1)*(s?-1:1),F([...o?.entries()??[]],(([e,t])=>r(t,e))).sort(l)),n,m(a)?a:n+a),(([,e])=>e));var l,o,r},as=(e,t)=>Y(Z(Z(Ae,w(e)),w(t))),ls=(e,t,s)=>Z(Z(Z(Ae,w(e)),w(t)),w(s)),os=()=>ne(Me),rs=()=>Y(Me),cs=e=>Z(Me,w(e)),is=()=>!G(Ae),ds=e=>B(Ae,w(e)),us=(e,t)=>B(Z(ke,w(e)),w(t)),hs=(e,t)=>B(Z(Ae,w(e)),w(t)),fs=(e,t,s)=>B(Z(Z(Ae,w(e)),w(t)),w(s)),gs=()=>!G(Me),Ts=e=>B(Me,w(e)),bs=e=>Yt((()=>(e=>$(e,ht,Wt))(e)?yt(e):0)),Vs=e=>Yt((()=>Tt(e)?Jt(e):0)),Cs=e=>{try{wt(ye(e))}catch{}return Fs},Ss=t=>Yt((()=>{if((e=$(t,(e=>$(e,ut))))&&(St(t),!G(Ae))){const e=Zt();ws(),bs(e)}})),vs=e=>Yt((()=>{if(s=(e=>$(e,ut))(e)){const t=os();Rs(),ps(),s=!0,vt(e),Vs(t)}})),ws=()=>Yt((()=>yt({}))),ys=e=>Yt((e=>B(Ae,e)?zt(e):0),e),ms=(e,t)=>Yt(((e,t)=>p(Z(Ae,e),(s=>B(s,t)?Pt(e,s,t):0))),e,t),ps=()=>Yt((()=>Jt({}))),Ls=()=>Yt((()=>{St({}),e=!1})),Rs=()=>Yt((()=>{vt({}),s=!1})),Is=(e,t)=>{if(-1!=i){Js();const s=e();return Es(t),s}},Js=()=>(-1!=i&&i++,1==i&&(y[0]?.(),ct(lt)),Fs),Es=e=>(i>0&&(i--,0==i&&(i=1,Gt(1),G(N)||Ut(1),Kt(1),G(Le)||Xt(1),e?.(Fs)&&(Q(N,((e,t)=>Q(e,((e,s)=>Q(e,(([e],n)=>Se(Fs,t,s,n,e))))))),K(N),Q(Le,(([e],t)=>ve(Fs,t,e))),K(Le)),ct(ot[0],void 0),i=-1,Gt(0),G(N)||Ut(0),Kt(0),G(Le)||Xt(0),y[1]?.(),ct(ot[1],void 0),y[2]?.(),i=0,n=is(),l=gs(),E([z,P,k,A,M,N,Re,he,Le,Ie],K))),Fs),Fs={getContent:()=>[Zt(),os()],getTables:Zt,getTableIds:_t,getTable:e=>ae(Z(Ae,w(e))),getTableCellIds:es,getRowCount:ts,getRowIds:ss,getSortedRowIds:ns,getRow:(e,t)=>ne(Z(Z(Ae,w(e)),w(t))),getCellIds:as,getCell:ls,getValues:os,getValueIds:rs,getValue:cs,hasTables:is,hasTable:ds,hasTableCell:us,hasRow:hs,hasCell:fs,hasValues:gs,hasValue:Ts,getTablesJson:()=>we(Ae),getValuesJson:()=>we(Me),getJson:()=>we([Ae,Me]),getTablesSchemaJson:()=>we(Je),getValuesSchemaJson:()=>we(Fe),getSchemaJson:()=>we([Je,Fe]),hasTablesSchema:()=>e,hasValuesSchema:()=>s,setContent:([e,t])=>Yt((()=>{(W(e)?ws:bs)(e),(W(t)?ps:Vs)(t)})),setTables:bs,setTable:(e,t)=>Yt((e=>ht(t,e)?mt(e,t):0),e),setRow:(e,t,s)=>Yt(((e,t)=>ft(e,t,s)?pt(e,Ot(e),t,s):0),e,t),addRow:(e,t,s=!0)=>Is((()=>{let n;return ft(e,n,t)&&(e=w(e),pt(e,Ot(e),n=Ft(e,s?1:0),t)),n})),setPartialRow:(e,t,s)=>Yt(((e,t)=>{if(ft(e,t,s,1)){const n=Ot(e);H(s,((s,a)=>Rt(e,n,t,a,s)))}}),e,t),setCell:(e,t,s,n)=>Yt(((e,t,s)=>p(gt(e,t,s,R(n)?n(ls(e,t,s)):n),(n=>Rt(e,Ot(e),t,s,n)))),e,t,s),setValues:Vs,setPartialValues:e=>Yt((()=>Tt(e,1)?H(e,((e,t)=>Et(t,e))):0)),setValue:(e,t)=>Yt((e=>p(bt(e,R(t)?t(cs(e)):t),(t=>Et(e,t)))),e),applyChanges:e=>Yt((()=>{H(e[0],((e,t)=>m(e)?ys(t):H(e,((e,s)=>m(e)?ms(t,s):H(e,((e,n)=>Se(Fs,t,s,n,e))))))),H(e[1],((e,t)=>ve(Fs,t,e)))})),setTablesJson:Cs,setValuesJson:e=>{try{It(ye(e))}catch{}return Fs},setJson:e=>Yt((()=>{try{const[t,s]=ye(e);wt(t),It(s)}catch{Cs(e)}})),setTablesSchema:Ss,setValuesSchema:vs,setSchema:(e,t)=>Yt((()=>{Ss(e),vs(t)})),delTables:ws,delTable:ys,delRow:ms,delCell:(e,t,s,n)=>Yt(((e,t,s)=>p(Z(Ae,e),(a=>p(Z(a,t),(l=>B(l,s)?kt(e,a,t,l,s,n):0))))),e,t,s),delValues:ps,delValue:e=>Yt((e=>B(Me,e)?At(e):0),e),delTablesSchema:Ls,delValuesSchema:Rs,delSchema:()=>Yt((()=>{Ls(),Rs()})),transaction:Is,startTransaction:Js,getTransactionChanges:()=>[ne(N,((e,t)=>-1===Z(z,t)?void 0:ne(e,((e,s)=>-1===Z(Z(A,t),s)?void 0:ne(e,(([,e])=>e),(e=>Ve(e)))),G,W)),G,W),ne(Le,(([,e])=>e),(e=>Ve(e))),1],getTransactionLog:()=>[!G(N),!G(Le),le(N,be,Ve),le(Re),ne(Le,be,Ve),ne(Ie),ne(z),ae(A),le(M),ne(he)],finishTransaction:Es,forEachTable:e=>Q(Ae,((t,s)=>e(s,(e=>Q(t,((t,s)=>e(s,(e=>_(t,e))))))))),forEachTableCell:(e,t)=>_(Z(ke,w(e)),t),forEachRow:(e,t)=>Q(Z(Ae,w(e)),((e,s)=>t(s,(t=>_(e,t))))),forEachCell:(e,t,s)=>_(Z(Z(Ae,w(e)),w(t)),s),forEachValue:e=>_(Me,e),addSortedRowIdsListener:(e,t,s,n,a,l,o)=>{let r=ns(e,t,s,n,a);return rt((()=>{const o=ns(e,t,s,n,a);var c,i,d;i=r,J(c=o)===J(i)&&(d=(e,t)=>i[t]===e,c.every(d))||(r=o,l(Fs,e,t,s,n,a,r))}),Ge[o?1:0],[e,t],[_t])},addStartTransactionListener:e=>rt(e,lt),addWillFinishTransactionListener:e=>rt(e,ot[0]),addDidFinishTransactionListener:e=>rt(e,ot[1]),callListener:e=>(dt(e),Fs),delListener:e=>(it(e),Fs),getListenerStats:()=>({}),createStore:pe,addListener:rt,callListeners:ct,setInternalListeners:(e,t,s,n,a)=>y=[e,t,s,n,a]};return H({[c+u]:[0,Ne,[],()=>[is()]],[u]:[0,je],[h]:[0,xe],[c+d]:[1,De,[_t],e=>[ds(...e)]],[d]:[1,He,[_t]],[d+V]:[1,We,[_t]],[c+d+b]:[2,$e,[_t,es],e=>[us(...e)]],[g]:[1,qe,[_t]],[T]:[1,Be,[_t]],[c+f]:[2,Ke,[_t,ss],e=>[hs(...e)]],[f]:[2,Qe,[_t,ss]],[V]:[2,Ue,[_t,ss]],[c+b]:[3,Xe,[_t,ss,as],e=>[fs(...e)]],[b]:[3,Ye,[_t,ss,as],e=>ge(ls(...e))],InvalidCell:[3,Ze],[c+S]:[0,et,[],()=>[gs()]],[S]:[0,tt],[v]:[0,st],[c+C]:[1,nt,[rs],e=>[Ts(...e)]],[C]:[1,at,[rs],e=>ge(cs(e[0]))],InvalidValue:[1,_e]},(([e,t,s,n],a)=>{Fs["add"+a+"Listener"]=(...a)=>rt(a[e],t[a[e+1]?1:0],e>0?I(a,0,e):void 0,s,n)})),j(Fs)};export{pe as createStore};
package/lib/store.js.gz CHANGED
Binary file