tinybase 5.2.0-beta.1 → 5.2.0-beta.3

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 (729) hide show
  1. package/@types/common/index.d.cts +34 -2
  2. package/@types/common/index.d.ts +34 -2
  3. package/@types/common/with-schemas/index.d.cts +34 -2
  4. package/@types/common/with-schemas/index.d.ts +34 -2
  5. package/@types/synchronizers/synchronizer-local/index.d.cts +1 -0
  6. package/@types/synchronizers/synchronizer-local/index.d.ts +1 -0
  7. package/@types/synchronizers/synchronizer-local/with-schemas/index.d.cts +1 -0
  8. package/@types/synchronizers/synchronizer-local/with-schemas/index.d.ts +1 -0
  9. package/@types/synchronizers/synchronizer-ws-server/index.d.cts +4 -1
  10. package/@types/synchronizers/synchronizer-ws-server/index.d.ts +4 -1
  11. package/@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.cts +6 -1
  12. package/@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.ts +6 -1
  13. package/checkpoints/index.js +9 -7
  14. package/checkpoints/with-schemas/index.js +9 -7
  15. package/cjs/checkpoints/index.cjs +9 -7
  16. package/cjs/checkpoints/with-schemas/index.cjs +9 -7
  17. package/cjs/es6/checkpoints/index.cjs +15 -13
  18. package/cjs/es6/checkpoints/with-schemas/index.cjs +15 -13
  19. package/cjs/es6/index.cjs +28 -20
  20. package/cjs/es6/indexes/index.cjs +15 -13
  21. package/cjs/es6/indexes/with-schemas/index.cjs +15 -13
  22. package/cjs/es6/mergeable-store/index.cjs +23 -17
  23. package/cjs/es6/mergeable-store/with-schemas/index.cjs +23 -17
  24. package/cjs/es6/metrics/index.cjs +15 -13
  25. package/cjs/es6/metrics/with-schemas/index.cjs +15 -13
  26. package/cjs/es6/min/index.cjs +1 -1
  27. package/cjs/es6/min/index.cjs.gz +0 -0
  28. package/cjs/es6/min/mergeable-store/index.cjs +1 -1
  29. package/cjs/es6/min/mergeable-store/index.cjs.gz +0 -0
  30. package/cjs/es6/min/mergeable-store/with-schemas/index.cjs +1 -1
  31. package/cjs/es6/min/mergeable-store/with-schemas/index.cjs.gz +0 -0
  32. package/cjs/es6/min/persisters/persister-automerge/index.cjs +1 -1
  33. package/cjs/es6/min/persisters/persister-automerge/index.cjs.gz +0 -0
  34. package/cjs/es6/min/persisters/persister-automerge/with-schemas/index.cjs +1 -1
  35. package/cjs/es6/min/persisters/persister-automerge/with-schemas/index.cjs.gz +0 -0
  36. package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/index.cjs +1 -1
  37. package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/index.cjs.gz +0 -0
  38. package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +1 -1
  39. package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
  40. package/cjs/es6/min/persisters/persister-electric-sql/index.cjs +1 -1
  41. package/cjs/es6/min/persisters/persister-electric-sql/index.cjs.gz +0 -0
  42. package/cjs/es6/min/persisters/persister-electric-sql/with-schemas/index.cjs +1 -1
  43. package/cjs/es6/min/persisters/persister-electric-sql/with-schemas/index.cjs.gz +0 -0
  44. package/cjs/es6/min/persisters/persister-expo-sqlite/index.cjs +1 -1
  45. package/cjs/es6/min/persisters/persister-expo-sqlite/index.cjs.gz +0 -0
  46. package/cjs/es6/min/persisters/persister-expo-sqlite/with-schemas/index.cjs +1 -1
  47. package/cjs/es6/min/persisters/persister-expo-sqlite/with-schemas/index.cjs.gz +0 -0
  48. package/cjs/es6/min/persisters/persister-libsql/index.cjs +1 -1
  49. package/cjs/es6/min/persisters/persister-libsql/index.cjs.gz +0 -0
  50. package/cjs/es6/min/persisters/persister-libsql/with-schemas/index.cjs +1 -1
  51. package/cjs/es6/min/persisters/persister-libsql/with-schemas/index.cjs.gz +0 -0
  52. package/cjs/es6/min/persisters/persister-postgres/index.cjs +1 -1
  53. package/cjs/es6/min/persisters/persister-postgres/index.cjs.gz +0 -0
  54. package/cjs/es6/min/persisters/persister-postgres/with-schemas/index.cjs +1 -1
  55. package/cjs/es6/min/persisters/persister-postgres/with-schemas/index.cjs.gz +0 -0
  56. package/cjs/es6/min/persisters/persister-powersync/index.cjs +1 -1
  57. package/cjs/es6/min/persisters/persister-powersync/index.cjs.gz +0 -0
  58. package/cjs/es6/min/persisters/persister-powersync/with-schemas/index.cjs +1 -1
  59. package/cjs/es6/min/persisters/persister-powersync/with-schemas/index.cjs.gz +0 -0
  60. package/cjs/es6/min/persisters/persister-sqlite-wasm/index.cjs +1 -1
  61. package/cjs/es6/min/persisters/persister-sqlite-wasm/index.cjs.gz +0 -0
  62. package/cjs/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs +1 -1
  63. package/cjs/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
  64. package/cjs/es6/min/persisters/persister-sqlite3/index.cjs +1 -1
  65. package/cjs/es6/min/persisters/persister-sqlite3/index.cjs.gz +0 -0
  66. package/cjs/es6/min/persisters/persister-sqlite3/with-schemas/index.cjs +1 -1
  67. package/cjs/es6/min/persisters/persister-sqlite3/with-schemas/index.cjs.gz +0 -0
  68. package/cjs/es6/min/store/index.cjs +1 -1
  69. package/cjs/es6/min/store/index.cjs.gz +0 -0
  70. package/cjs/es6/min/store/with-schemas/index.cjs +1 -1
  71. package/cjs/es6/min/store/with-schemas/index.cjs.gz +0 -0
  72. package/cjs/es6/min/synchronizers/synchronizer-ws-server/index.cjs +1 -1
  73. package/cjs/es6/min/synchronizers/synchronizer-ws-server/index.cjs.gz +0 -0
  74. package/cjs/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +1 -1
  75. package/cjs/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs.gz +0 -0
  76. package/cjs/es6/min/ui-react-inspector/index.cjs +1 -1
  77. package/cjs/es6/min/ui-react-inspector/index.cjs.gz +0 -0
  78. package/cjs/es6/min/ui-react-inspector/with-schemas/index.cjs +1 -1
  79. package/cjs/es6/min/ui-react-inspector/with-schemas/index.cjs.gz +0 -0
  80. package/cjs/es6/min/with-schemas/index.cjs +1 -1
  81. package/cjs/es6/min/with-schemas/index.cjs.gz +0 -0
  82. package/cjs/es6/persisters/index.cjs +5 -3
  83. package/cjs/es6/persisters/persister-automerge/index.cjs +7 -4
  84. package/cjs/es6/persisters/persister-automerge/with-schemas/index.cjs +7 -4
  85. package/cjs/es6/persisters/persister-browser/index.cjs +5 -3
  86. package/cjs/es6/persisters/persister-browser/with-schemas/index.cjs +5 -3
  87. package/cjs/es6/persisters/persister-cr-sqlite-wasm/index.cjs +82 -45
  88. package/cjs/es6/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +82 -45
  89. package/cjs/es6/persisters/persister-electric-sql/index.cjs +82 -45
  90. package/cjs/es6/persisters/persister-electric-sql/with-schemas/index.cjs +82 -45
  91. package/cjs/es6/persisters/persister-expo-sqlite/index.cjs +82 -45
  92. package/cjs/es6/persisters/persister-expo-sqlite/with-schemas/index.cjs +82 -45
  93. package/cjs/es6/persisters/persister-file/index.cjs +5 -3
  94. package/cjs/es6/persisters/persister-file/with-schemas/index.cjs +5 -3
  95. package/cjs/es6/persisters/persister-indexed-db/index.cjs +5 -3
  96. package/cjs/es6/persisters/persister-indexed-db/with-schemas/index.cjs +5 -3
  97. package/cjs/es6/persisters/persister-libsql/index.cjs +82 -45
  98. package/cjs/es6/persisters/persister-libsql/with-schemas/index.cjs +82 -45
  99. package/cjs/es6/persisters/persister-partykit-client/index.cjs +5 -3
  100. package/cjs/es6/persisters/persister-partykit-client/with-schemas/index.cjs +5 -3
  101. package/cjs/es6/persisters/persister-partykit-server/index.cjs +36 -22
  102. package/cjs/es6/persisters/persister-partykit-server/with-schemas/index.cjs +36 -22
  103. package/cjs/es6/persisters/persister-postgres/index.cjs +108 -37
  104. package/cjs/es6/persisters/persister-postgres/with-schemas/index.cjs +108 -37
  105. package/cjs/es6/persisters/persister-powersync/index.cjs +82 -45
  106. package/cjs/es6/persisters/persister-powersync/with-schemas/index.cjs +82 -45
  107. package/cjs/es6/persisters/persister-remote/index.cjs +5 -3
  108. package/cjs/es6/persisters/persister-remote/with-schemas/index.cjs +5 -3
  109. package/cjs/es6/persisters/persister-sqlite-wasm/index.cjs +82 -45
  110. package/cjs/es6/persisters/persister-sqlite-wasm/with-schemas/index.cjs +82 -45
  111. package/cjs/es6/persisters/persister-sqlite3/index.cjs +82 -45
  112. package/cjs/es6/persisters/persister-sqlite3/with-schemas/index.cjs +82 -45
  113. package/cjs/es6/persisters/persister-yjs/index.cjs +5 -3
  114. package/cjs/es6/persisters/persister-yjs/with-schemas/index.cjs +5 -3
  115. package/cjs/es6/persisters/with-schemas/index.cjs +5 -3
  116. package/cjs/es6/relationships/index.cjs +15 -13
  117. package/cjs/es6/relationships/with-schemas/index.cjs +15 -13
  118. package/cjs/es6/store/index.cjs +23 -17
  119. package/cjs/es6/store/with-schemas/index.cjs +23 -17
  120. package/cjs/es6/synchronizers/index.cjs +5 -3
  121. package/cjs/es6/synchronizers/synchronizer-broadcast-channel/index.cjs +5 -3
  122. package/cjs/es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs +5 -3
  123. package/cjs/es6/synchronizers/synchronizer-local/index.cjs +5 -3
  124. package/cjs/es6/synchronizers/synchronizer-local/with-schemas/index.cjs +5 -3
  125. package/cjs/es6/synchronizers/synchronizer-ws-client/index.cjs +8 -6
  126. package/cjs/es6/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +8 -6
  127. package/cjs/es6/synchronizers/synchronizer-ws-server/index.cjs +113 -103
  128. package/cjs/es6/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +113 -103
  129. package/cjs/es6/synchronizers/with-schemas/index.cjs +5 -3
  130. package/cjs/es6/ui-react-inspector/index.cjs +30 -21
  131. package/cjs/es6/ui-react-inspector/with-schemas/index.cjs +30 -21
  132. package/cjs/es6/with-schemas/index.cjs +28 -20
  133. package/cjs/index.cjs +22 -12
  134. package/cjs/indexes/index.cjs +9 -7
  135. package/cjs/indexes/with-schemas/index.cjs +9 -7
  136. package/cjs/mergeable-store/index.cjs +17 -9
  137. package/cjs/mergeable-store/with-schemas/index.cjs +17 -9
  138. package/cjs/metrics/index.cjs +9 -7
  139. package/cjs/metrics/with-schemas/index.cjs +9 -7
  140. package/cjs/min/index.cjs +1 -1
  141. package/cjs/min/index.cjs.gz +0 -0
  142. package/cjs/min/mergeable-store/index.cjs +1 -1
  143. package/cjs/min/mergeable-store/index.cjs.gz +0 -0
  144. package/cjs/min/mergeable-store/with-schemas/index.cjs +1 -1
  145. package/cjs/min/mergeable-store/with-schemas/index.cjs.gz +0 -0
  146. package/cjs/min/persisters/persister-automerge/index.cjs +1 -1
  147. package/cjs/min/persisters/persister-automerge/index.cjs.gz +0 -0
  148. package/cjs/min/persisters/persister-automerge/with-schemas/index.cjs +1 -1
  149. package/cjs/min/persisters/persister-automerge/with-schemas/index.cjs.gz +0 -0
  150. package/cjs/min/persisters/persister-cr-sqlite-wasm/index.cjs +1 -1
  151. package/cjs/min/persisters/persister-cr-sqlite-wasm/index.cjs.gz +0 -0
  152. package/cjs/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +1 -1
  153. package/cjs/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
  154. package/cjs/min/persisters/persister-electric-sql/index.cjs +1 -1
  155. package/cjs/min/persisters/persister-electric-sql/index.cjs.gz +0 -0
  156. package/cjs/min/persisters/persister-electric-sql/with-schemas/index.cjs +1 -1
  157. package/cjs/min/persisters/persister-electric-sql/with-schemas/index.cjs.gz +0 -0
  158. package/cjs/min/persisters/persister-expo-sqlite/index.cjs +1 -1
  159. package/cjs/min/persisters/persister-expo-sqlite/index.cjs.gz +0 -0
  160. package/cjs/min/persisters/persister-expo-sqlite/with-schemas/index.cjs +1 -1
  161. package/cjs/min/persisters/persister-expo-sqlite/with-schemas/index.cjs.gz +0 -0
  162. package/cjs/min/persisters/persister-libsql/index.cjs +1 -1
  163. package/cjs/min/persisters/persister-libsql/index.cjs.gz +0 -0
  164. package/cjs/min/persisters/persister-libsql/with-schemas/index.cjs +1 -1
  165. package/cjs/min/persisters/persister-libsql/with-schemas/index.cjs.gz +0 -0
  166. package/cjs/min/persisters/persister-postgres/index.cjs +1 -1
  167. package/cjs/min/persisters/persister-postgres/index.cjs.gz +0 -0
  168. package/cjs/min/persisters/persister-postgres/with-schemas/index.cjs +1 -1
  169. package/cjs/min/persisters/persister-postgres/with-schemas/index.cjs.gz +0 -0
  170. package/cjs/min/persisters/persister-powersync/index.cjs +1 -1
  171. package/cjs/min/persisters/persister-powersync/index.cjs.gz +0 -0
  172. package/cjs/min/persisters/persister-powersync/with-schemas/index.cjs +1 -1
  173. package/cjs/min/persisters/persister-powersync/with-schemas/index.cjs.gz +0 -0
  174. package/cjs/min/persisters/persister-sqlite-wasm/index.cjs +1 -1
  175. package/cjs/min/persisters/persister-sqlite-wasm/index.cjs.gz +0 -0
  176. package/cjs/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs +1 -1
  177. package/cjs/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
  178. package/cjs/min/persisters/persister-sqlite3/index.cjs +1 -1
  179. package/cjs/min/persisters/persister-sqlite3/index.cjs.gz +0 -0
  180. package/cjs/min/persisters/persister-sqlite3/with-schemas/index.cjs +1 -1
  181. package/cjs/min/persisters/persister-sqlite3/with-schemas/index.cjs.gz +0 -0
  182. package/cjs/min/store/index.cjs +1 -1
  183. package/cjs/min/store/index.cjs.gz +0 -0
  184. package/cjs/min/store/with-schemas/index.cjs +1 -1
  185. package/cjs/min/store/with-schemas/index.cjs.gz +0 -0
  186. package/cjs/min/synchronizers/synchronizer-ws-server/index.cjs +1 -1
  187. package/cjs/min/synchronizers/synchronizer-ws-server/index.cjs.gz +0 -0
  188. package/cjs/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +1 -1
  189. package/cjs/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs.gz +0 -0
  190. package/cjs/min/tools/index.cjs +1 -1
  191. package/cjs/min/tools/index.cjs.gz +0 -0
  192. package/cjs/min/tools/with-schemas/index.cjs +1 -1
  193. package/cjs/min/tools/with-schemas/index.cjs.gz +0 -0
  194. package/cjs/min/ui-react-inspector/index.cjs +1 -1
  195. package/cjs/min/ui-react-inspector/index.cjs.gz +0 -0
  196. package/cjs/min/ui-react-inspector/with-schemas/index.cjs +1 -1
  197. package/cjs/min/ui-react-inspector/with-schemas/index.cjs.gz +0 -0
  198. package/cjs/min/with-schemas/index.cjs +1 -1
  199. package/cjs/min/with-schemas/index.cjs.gz +0 -0
  200. package/cjs/persisters/index.cjs +5 -3
  201. package/cjs/persisters/persister-automerge/index.cjs +7 -4
  202. package/cjs/persisters/persister-automerge/with-schemas/index.cjs +7 -4
  203. package/cjs/persisters/persister-browser/index.cjs +5 -3
  204. package/cjs/persisters/persister-browser/with-schemas/index.cjs +5 -3
  205. package/cjs/persisters/persister-cr-sqlite-wasm/index.cjs +52 -37
  206. package/cjs/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +52 -37
  207. package/cjs/persisters/persister-electric-sql/index.cjs +52 -37
  208. package/cjs/persisters/persister-electric-sql/with-schemas/index.cjs +52 -37
  209. package/cjs/persisters/persister-expo-sqlite/index.cjs +52 -37
  210. package/cjs/persisters/persister-expo-sqlite/with-schemas/index.cjs +52 -37
  211. package/cjs/persisters/persister-file/index.cjs +5 -3
  212. package/cjs/persisters/persister-file/with-schemas/index.cjs +5 -3
  213. package/cjs/persisters/persister-indexed-db/index.cjs +5 -3
  214. package/cjs/persisters/persister-indexed-db/with-schemas/index.cjs +5 -3
  215. package/cjs/persisters/persister-libsql/index.cjs +52 -37
  216. package/cjs/persisters/persister-libsql/with-schemas/index.cjs +52 -37
  217. package/cjs/persisters/persister-partykit-client/index.cjs +5 -3
  218. package/cjs/persisters/persister-partykit-client/with-schemas/index.cjs +5 -3
  219. package/cjs/persisters/persister-partykit-server/index.cjs +36 -25
  220. package/cjs/persisters/persister-partykit-server/with-schemas/index.cjs +36 -25
  221. package/cjs/persisters/persister-postgres/index.cjs +77 -31
  222. package/cjs/persisters/persister-postgres/with-schemas/index.cjs +77 -31
  223. package/cjs/persisters/persister-powersync/index.cjs +52 -37
  224. package/cjs/persisters/persister-powersync/with-schemas/index.cjs +52 -37
  225. package/cjs/persisters/persister-remote/index.cjs +5 -3
  226. package/cjs/persisters/persister-remote/with-schemas/index.cjs +5 -3
  227. package/cjs/persisters/persister-sqlite-wasm/index.cjs +52 -37
  228. package/cjs/persisters/persister-sqlite-wasm/with-schemas/index.cjs +52 -37
  229. package/cjs/persisters/persister-sqlite3/index.cjs +52 -37
  230. package/cjs/persisters/persister-sqlite3/with-schemas/index.cjs +52 -37
  231. package/cjs/persisters/persister-yjs/index.cjs +5 -3
  232. package/cjs/persisters/persister-yjs/with-schemas/index.cjs +5 -3
  233. package/cjs/persisters/with-schemas/index.cjs +5 -3
  234. package/cjs/relationships/index.cjs +9 -7
  235. package/cjs/relationships/with-schemas/index.cjs +9 -7
  236. package/cjs/store/index.cjs +17 -9
  237. package/cjs/store/with-schemas/index.cjs +17 -9
  238. package/cjs/synchronizers/index.cjs +5 -3
  239. package/cjs/synchronizers/synchronizer-broadcast-channel/index.cjs +5 -3
  240. package/cjs/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs +5 -3
  241. package/cjs/synchronizers/synchronizer-local/index.cjs +5 -3
  242. package/cjs/synchronizers/synchronizer-local/with-schemas/index.cjs +5 -3
  243. package/cjs/synchronizers/synchronizer-ws-client/index.cjs +8 -6
  244. package/cjs/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +8 -6
  245. package/cjs/synchronizers/synchronizer-ws-server/index.cjs +60 -50
  246. package/cjs/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +60 -50
  247. package/cjs/synchronizers/with-schemas/index.cjs +5 -3
  248. package/cjs/tools/index.cjs +1 -1
  249. package/cjs/tools/with-schemas/index.cjs +1 -1
  250. package/cjs/ui-react-inspector/index.cjs +24 -13
  251. package/cjs/ui-react-inspector/with-schemas/index.cjs +24 -13
  252. package/cjs/with-schemas/index.cjs +22 -12
  253. package/es6/checkpoints/index.js +15 -13
  254. package/es6/checkpoints/with-schemas/index.js +15 -13
  255. package/es6/index.js +28 -20
  256. package/es6/indexes/index.js +15 -13
  257. package/es6/indexes/with-schemas/index.js +15 -13
  258. package/es6/mergeable-store/index.js +23 -17
  259. package/es6/mergeable-store/with-schemas/index.js +23 -17
  260. package/es6/metrics/index.js +15 -13
  261. package/es6/metrics/with-schemas/index.js +15 -13
  262. package/es6/min/index.js +1 -1
  263. package/es6/min/index.js.gz +0 -0
  264. package/es6/min/mergeable-store/index.js +1 -1
  265. package/es6/min/mergeable-store/index.js.gz +0 -0
  266. package/es6/min/mergeable-store/with-schemas/index.js +1 -1
  267. package/es6/min/mergeable-store/with-schemas/index.js.gz +0 -0
  268. package/es6/min/persisters/persister-automerge/index.js +1 -1
  269. package/es6/min/persisters/persister-automerge/index.js.gz +0 -0
  270. package/es6/min/persisters/persister-automerge/with-schemas/index.js +1 -1
  271. package/es6/min/persisters/persister-automerge/with-schemas/index.js.gz +0 -0
  272. package/es6/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  273. package/es6/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  274. package/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  275. package/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  276. package/es6/min/persisters/persister-electric-sql/index.js +1 -1
  277. package/es6/min/persisters/persister-electric-sql/index.js.gz +0 -0
  278. package/es6/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  279. package/es6/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  280. package/es6/min/persisters/persister-expo-sqlite/index.js +1 -1
  281. package/es6/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  282. package/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  283. package/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  284. package/es6/min/persisters/persister-libsql/index.js +1 -1
  285. package/es6/min/persisters/persister-libsql/index.js.gz +0 -0
  286. package/es6/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  287. package/es6/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  288. package/es6/min/persisters/persister-postgres/index.js +1 -1
  289. package/es6/min/persisters/persister-postgres/index.js.gz +0 -0
  290. package/es6/min/persisters/persister-postgres/with-schemas/index.js +1 -1
  291. package/es6/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
  292. package/es6/min/persisters/persister-powersync/index.js +1 -1
  293. package/es6/min/persisters/persister-powersync/index.js.gz +0 -0
  294. package/es6/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  295. package/es6/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  296. package/es6/min/persisters/persister-sqlite-wasm/index.js +1 -1
  297. package/es6/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  298. package/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  299. package/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  300. package/es6/min/persisters/persister-sqlite3/index.js +1 -1
  301. package/es6/min/persisters/persister-sqlite3/index.js.gz +0 -0
  302. package/es6/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  303. package/es6/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  304. package/es6/min/store/index.js +1 -1
  305. package/es6/min/store/index.js.gz +0 -0
  306. package/es6/min/store/with-schemas/index.js +1 -1
  307. package/es6/min/store/with-schemas/index.js.gz +0 -0
  308. package/es6/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  309. package/es6/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  310. package/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  311. package/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  312. package/es6/min/ui-react-inspector/index.js +1 -1
  313. package/es6/min/ui-react-inspector/index.js.gz +0 -0
  314. package/es6/min/ui-react-inspector/with-schemas/index.js +1 -1
  315. package/es6/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
  316. package/es6/min/with-schemas/index.js +1 -1
  317. package/es6/min/with-schemas/index.js.gz +0 -0
  318. package/es6/persisters/index.js +5 -3
  319. package/es6/persisters/persister-automerge/index.js +7 -4
  320. package/es6/persisters/persister-automerge/with-schemas/index.js +7 -4
  321. package/es6/persisters/persister-browser/index.js +5 -3
  322. package/es6/persisters/persister-browser/with-schemas/index.js +5 -3
  323. package/es6/persisters/persister-cr-sqlite-wasm/index.js +82 -45
  324. package/es6/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +82 -45
  325. package/es6/persisters/persister-electric-sql/index.js +82 -45
  326. package/es6/persisters/persister-electric-sql/with-schemas/index.js +82 -45
  327. package/es6/persisters/persister-expo-sqlite/index.js +82 -45
  328. package/es6/persisters/persister-expo-sqlite/with-schemas/index.js +82 -45
  329. package/es6/persisters/persister-file/index.js +5 -3
  330. package/es6/persisters/persister-file/with-schemas/index.js +5 -3
  331. package/es6/persisters/persister-indexed-db/index.js +5 -3
  332. package/es6/persisters/persister-indexed-db/with-schemas/index.js +5 -3
  333. package/es6/persisters/persister-libsql/index.js +82 -45
  334. package/es6/persisters/persister-libsql/with-schemas/index.js +82 -45
  335. package/es6/persisters/persister-partykit-client/index.js +5 -3
  336. package/es6/persisters/persister-partykit-client/with-schemas/index.js +5 -3
  337. package/es6/persisters/persister-partykit-server/index.js +36 -22
  338. package/es6/persisters/persister-partykit-server/with-schemas/index.js +36 -22
  339. package/es6/persisters/persister-postgres/index.js +108 -37
  340. package/es6/persisters/persister-postgres/with-schemas/index.js +108 -37
  341. package/es6/persisters/persister-powersync/index.js +82 -45
  342. package/es6/persisters/persister-powersync/with-schemas/index.js +82 -45
  343. package/es6/persisters/persister-remote/index.js +5 -3
  344. package/es6/persisters/persister-remote/with-schemas/index.js +5 -3
  345. package/es6/persisters/persister-sqlite-wasm/index.js +82 -45
  346. package/es6/persisters/persister-sqlite-wasm/with-schemas/index.js +82 -45
  347. package/es6/persisters/persister-sqlite3/index.js +82 -45
  348. package/es6/persisters/persister-sqlite3/with-schemas/index.js +82 -45
  349. package/es6/persisters/persister-yjs/index.js +5 -3
  350. package/es6/persisters/persister-yjs/with-schemas/index.js +5 -3
  351. package/es6/persisters/with-schemas/index.js +5 -3
  352. package/es6/relationships/index.js +15 -13
  353. package/es6/relationships/with-schemas/index.js +15 -13
  354. package/es6/store/index.js +23 -17
  355. package/es6/store/with-schemas/index.js +23 -17
  356. package/es6/synchronizers/index.js +5 -3
  357. package/es6/synchronizers/synchronizer-broadcast-channel/index.js +5 -3
  358. package/es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +5 -3
  359. package/es6/synchronizers/synchronizer-local/index.js +5 -3
  360. package/es6/synchronizers/synchronizer-local/with-schemas/index.js +5 -3
  361. package/es6/synchronizers/synchronizer-ws-client/index.js +8 -6
  362. package/es6/synchronizers/synchronizer-ws-client/with-schemas/index.js +8 -6
  363. package/es6/synchronizers/synchronizer-ws-server/index.js +113 -103
  364. package/es6/synchronizers/synchronizer-ws-server/with-schemas/index.js +113 -103
  365. package/es6/synchronizers/with-schemas/index.js +5 -3
  366. package/es6/ui-react-inspector/index.js +30 -21
  367. package/es6/ui-react-inspector/with-schemas/index.js +30 -21
  368. package/es6/with-schemas/index.js +28 -20
  369. package/index.js +22 -12
  370. package/indexes/index.js +9 -7
  371. package/indexes/with-schemas/index.js +9 -7
  372. package/mergeable-store/index.js +17 -9
  373. package/mergeable-store/with-schemas/index.js +17 -9
  374. package/metrics/index.js +9 -7
  375. package/metrics/with-schemas/index.js +9 -7
  376. package/min/index.js +1 -1
  377. package/min/index.js.gz +0 -0
  378. package/min/mergeable-store/index.js +1 -1
  379. package/min/mergeable-store/index.js.gz +0 -0
  380. package/min/mergeable-store/with-schemas/index.js +1 -1
  381. package/min/mergeable-store/with-schemas/index.js.gz +0 -0
  382. package/min/persisters/persister-automerge/index.js +1 -1
  383. package/min/persisters/persister-automerge/index.js.gz +0 -0
  384. package/min/persisters/persister-automerge/with-schemas/index.js +1 -1
  385. package/min/persisters/persister-automerge/with-schemas/index.js.gz +0 -0
  386. package/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  387. package/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  388. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  389. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  390. package/min/persisters/persister-electric-sql/index.js +1 -1
  391. package/min/persisters/persister-electric-sql/index.js.gz +0 -0
  392. package/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  393. package/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  394. package/min/persisters/persister-expo-sqlite/index.js +1 -1
  395. package/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  396. package/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  397. package/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  398. package/min/persisters/persister-libsql/index.js +1 -1
  399. package/min/persisters/persister-libsql/index.js.gz +0 -0
  400. package/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  401. package/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  402. package/min/persisters/persister-postgres/index.js +1 -1
  403. package/min/persisters/persister-postgres/index.js.gz +0 -0
  404. package/min/persisters/persister-postgres/with-schemas/index.js +1 -1
  405. package/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
  406. package/min/persisters/persister-powersync/index.js +1 -1
  407. package/min/persisters/persister-powersync/index.js.gz +0 -0
  408. package/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  409. package/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  410. package/min/persisters/persister-sqlite-wasm/index.js +1 -1
  411. package/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  412. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  413. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  414. package/min/persisters/persister-sqlite3/index.js +1 -1
  415. package/min/persisters/persister-sqlite3/index.js.gz +0 -0
  416. package/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  417. package/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  418. package/min/store/index.js +1 -1
  419. package/min/store/index.js.gz +0 -0
  420. package/min/store/with-schemas/index.js +1 -1
  421. package/min/store/with-schemas/index.js.gz +0 -0
  422. package/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  423. package/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  424. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  425. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  426. package/min/tools/index.js +1 -1
  427. package/min/tools/index.js.gz +0 -0
  428. package/min/tools/with-schemas/index.js +1 -1
  429. package/min/tools/with-schemas/index.js.gz +0 -0
  430. package/min/ui-react-inspector/index.js +1 -1
  431. package/min/ui-react-inspector/index.js.gz +0 -0
  432. package/min/ui-react-inspector/with-schemas/index.js +1 -1
  433. package/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
  434. package/min/with-schemas/index.js +1 -1
  435. package/min/with-schemas/index.js.gz +0 -0
  436. package/package.json +3 -3
  437. package/persisters/index.js +5 -3
  438. package/persisters/persister-automerge/index.js +7 -4
  439. package/persisters/persister-automerge/with-schemas/index.js +7 -4
  440. package/persisters/persister-browser/index.js +5 -3
  441. package/persisters/persister-browser/with-schemas/index.js +5 -3
  442. package/persisters/persister-cr-sqlite-wasm/index.js +52 -37
  443. package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +52 -37
  444. package/persisters/persister-electric-sql/index.js +52 -37
  445. package/persisters/persister-electric-sql/with-schemas/index.js +52 -37
  446. package/persisters/persister-expo-sqlite/index.js +52 -37
  447. package/persisters/persister-expo-sqlite/with-schemas/index.js +52 -37
  448. package/persisters/persister-file/index.js +5 -3
  449. package/persisters/persister-file/with-schemas/index.js +5 -3
  450. package/persisters/persister-indexed-db/index.js +5 -3
  451. package/persisters/persister-indexed-db/with-schemas/index.js +5 -3
  452. package/persisters/persister-libsql/index.js +52 -37
  453. package/persisters/persister-libsql/with-schemas/index.js +52 -37
  454. package/persisters/persister-partykit-client/index.js +5 -3
  455. package/persisters/persister-partykit-client/with-schemas/index.js +5 -3
  456. package/persisters/persister-partykit-server/index.js +36 -25
  457. package/persisters/persister-partykit-server/with-schemas/index.js +36 -25
  458. package/persisters/persister-postgres/index.js +77 -31
  459. package/persisters/persister-postgres/with-schemas/index.js +77 -31
  460. package/persisters/persister-powersync/index.js +52 -37
  461. package/persisters/persister-powersync/with-schemas/index.js +52 -37
  462. package/persisters/persister-remote/index.js +5 -3
  463. package/persisters/persister-remote/with-schemas/index.js +5 -3
  464. package/persisters/persister-sqlite-wasm/index.js +52 -37
  465. package/persisters/persister-sqlite-wasm/with-schemas/index.js +52 -37
  466. package/persisters/persister-sqlite3/index.js +52 -37
  467. package/persisters/persister-sqlite3/with-schemas/index.js +52 -37
  468. package/persisters/persister-yjs/index.js +5 -3
  469. package/persisters/persister-yjs/with-schemas/index.js +5 -3
  470. package/persisters/with-schemas/index.js +5 -3
  471. package/readme.md +3 -3
  472. package/relationships/index.js +9 -7
  473. package/relationships/with-schemas/index.js +9 -7
  474. package/releases.md +4 -4
  475. package/store/index.js +17 -9
  476. package/store/with-schemas/index.js +17 -9
  477. package/synchronizers/index.js +5 -3
  478. package/synchronizers/synchronizer-broadcast-channel/index.js +5 -3
  479. package/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +5 -3
  480. package/synchronizers/synchronizer-local/index.js +5 -3
  481. package/synchronizers/synchronizer-local/with-schemas/index.js +5 -3
  482. package/synchronizers/synchronizer-ws-client/index.js +8 -6
  483. package/synchronizers/synchronizer-ws-client/with-schemas/index.js +8 -6
  484. package/synchronizers/synchronizer-ws-server/index.js +60 -50
  485. package/synchronizers/synchronizer-ws-server/with-schemas/index.js +60 -50
  486. package/synchronizers/with-schemas/index.js +5 -3
  487. package/tools/index.js +1 -1
  488. package/tools/with-schemas/index.js +1 -1
  489. package/ui-react-inspector/index.js +24 -13
  490. package/ui-react-inspector/with-schemas/index.js +24 -13
  491. package/umd/checkpoints/index.js +9 -7
  492. package/umd/checkpoints/with-schemas/index.js +9 -7
  493. package/umd/es6/checkpoints/index.js +15 -13
  494. package/umd/es6/checkpoints/with-schemas/index.js +15 -13
  495. package/umd/es6/index.js +28 -20
  496. package/umd/es6/indexes/index.js +15 -13
  497. package/umd/es6/indexes/with-schemas/index.js +15 -13
  498. package/umd/es6/mergeable-store/index.js +23 -17
  499. package/umd/es6/mergeable-store/with-schemas/index.js +23 -17
  500. package/umd/es6/metrics/index.js +15 -13
  501. package/umd/es6/metrics/with-schemas/index.js +15 -13
  502. package/umd/es6/min/index.js +1 -1
  503. package/umd/es6/min/index.js.gz +0 -0
  504. package/umd/es6/min/mergeable-store/index.js +1 -1
  505. package/umd/es6/min/mergeable-store/index.js.gz +0 -0
  506. package/umd/es6/min/mergeable-store/with-schemas/index.js +1 -1
  507. package/umd/es6/min/mergeable-store/with-schemas/index.js.gz +0 -0
  508. package/umd/es6/min/persisters/persister-automerge/index.js +1 -1
  509. package/umd/es6/min/persisters/persister-automerge/index.js.gz +0 -0
  510. package/umd/es6/min/persisters/persister-automerge/with-schemas/index.js +1 -1
  511. package/umd/es6/min/persisters/persister-automerge/with-schemas/index.js.gz +0 -0
  512. package/umd/es6/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  513. package/umd/es6/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  514. package/umd/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  515. package/umd/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  516. package/umd/es6/min/persisters/persister-electric-sql/index.js +1 -1
  517. package/umd/es6/min/persisters/persister-electric-sql/index.js.gz +0 -0
  518. package/umd/es6/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  519. package/umd/es6/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  520. package/umd/es6/min/persisters/persister-expo-sqlite/index.js +1 -1
  521. package/umd/es6/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  522. package/umd/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  523. package/umd/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  524. package/umd/es6/min/persisters/persister-libsql/index.js +1 -1
  525. package/umd/es6/min/persisters/persister-libsql/index.js.gz +0 -0
  526. package/umd/es6/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  527. package/umd/es6/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  528. package/umd/es6/min/persisters/persister-postgres/index.js +1 -1
  529. package/umd/es6/min/persisters/persister-postgres/index.js.gz +0 -0
  530. package/umd/es6/min/persisters/persister-postgres/with-schemas/index.js +1 -1
  531. package/umd/es6/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
  532. package/umd/es6/min/persisters/persister-powersync/index.js +1 -1
  533. package/umd/es6/min/persisters/persister-powersync/index.js.gz +0 -0
  534. package/umd/es6/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  535. package/umd/es6/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  536. package/umd/es6/min/persisters/persister-sqlite-wasm/index.js +1 -1
  537. package/umd/es6/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  538. package/umd/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  539. package/umd/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  540. package/umd/es6/min/persisters/persister-sqlite3/index.js +1 -1
  541. package/umd/es6/min/persisters/persister-sqlite3/index.js.gz +0 -0
  542. package/umd/es6/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  543. package/umd/es6/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  544. package/umd/es6/min/store/index.js +1 -1
  545. package/umd/es6/min/store/index.js.gz +0 -0
  546. package/umd/es6/min/store/with-schemas/index.js +1 -1
  547. package/umd/es6/min/store/with-schemas/index.js.gz +0 -0
  548. package/umd/es6/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  549. package/umd/es6/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  550. package/umd/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  551. package/umd/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  552. package/umd/es6/min/ui-react-inspector/index.js +1 -1
  553. package/umd/es6/min/ui-react-inspector/index.js.gz +0 -0
  554. package/umd/es6/min/ui-react-inspector/with-schemas/index.js +1 -1
  555. package/umd/es6/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
  556. package/umd/es6/min/with-schemas/index.js +1 -1
  557. package/umd/es6/min/with-schemas/index.js.gz +0 -0
  558. package/umd/es6/persisters/index.js +5 -3
  559. package/umd/es6/persisters/persister-automerge/index.js +7 -4
  560. package/umd/es6/persisters/persister-automerge/with-schemas/index.js +7 -4
  561. package/umd/es6/persisters/persister-browser/index.js +5 -3
  562. package/umd/es6/persisters/persister-browser/with-schemas/index.js +5 -3
  563. package/umd/es6/persisters/persister-cr-sqlite-wasm/index.js +86 -47
  564. package/umd/es6/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +86 -47
  565. package/umd/es6/persisters/persister-electric-sql/index.js +86 -47
  566. package/umd/es6/persisters/persister-electric-sql/with-schemas/index.js +86 -47
  567. package/umd/es6/persisters/persister-expo-sqlite/index.js +86 -47
  568. package/umd/es6/persisters/persister-expo-sqlite/with-schemas/index.js +86 -47
  569. package/umd/es6/persisters/persister-file/index.js +5 -3
  570. package/umd/es6/persisters/persister-file/with-schemas/index.js +5 -3
  571. package/umd/es6/persisters/persister-indexed-db/index.js +5 -3
  572. package/umd/es6/persisters/persister-indexed-db/with-schemas/index.js +5 -3
  573. package/umd/es6/persisters/persister-libsql/index.js +86 -47
  574. package/umd/es6/persisters/persister-libsql/with-schemas/index.js +86 -47
  575. package/umd/es6/persisters/persister-partykit-client/index.js +5 -3
  576. package/umd/es6/persisters/persister-partykit-client/with-schemas/index.js +5 -3
  577. package/umd/es6/persisters/persister-partykit-server/index.js +36 -22
  578. package/umd/es6/persisters/persister-partykit-server/with-schemas/index.js +36 -22
  579. package/umd/es6/persisters/persister-postgres/index.js +108 -37
  580. package/umd/es6/persisters/persister-postgres/with-schemas/index.js +108 -37
  581. package/umd/es6/persisters/persister-powersync/index.js +86 -47
  582. package/umd/es6/persisters/persister-powersync/with-schemas/index.js +86 -47
  583. package/umd/es6/persisters/persister-remote/index.js +5 -3
  584. package/umd/es6/persisters/persister-remote/with-schemas/index.js +5 -3
  585. package/umd/es6/persisters/persister-sqlite-wasm/index.js +86 -47
  586. package/umd/es6/persisters/persister-sqlite-wasm/with-schemas/index.js +86 -47
  587. package/umd/es6/persisters/persister-sqlite3/index.js +86 -47
  588. package/umd/es6/persisters/persister-sqlite3/with-schemas/index.js +86 -47
  589. package/umd/es6/persisters/persister-yjs/index.js +5 -3
  590. package/umd/es6/persisters/persister-yjs/with-schemas/index.js +5 -3
  591. package/umd/es6/persisters/with-schemas/index.js +5 -3
  592. package/umd/es6/relationships/index.js +15 -13
  593. package/umd/es6/relationships/with-schemas/index.js +15 -13
  594. package/umd/es6/store/index.js +23 -17
  595. package/umd/es6/store/with-schemas/index.js +23 -17
  596. package/umd/es6/synchronizers/index.js +5 -3
  597. package/umd/es6/synchronizers/synchronizer-broadcast-channel/index.js +5 -3
  598. package/umd/es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +5 -3
  599. package/umd/es6/synchronizers/synchronizer-local/index.js +5 -3
  600. package/umd/es6/synchronizers/synchronizer-local/with-schemas/index.js +5 -3
  601. package/umd/es6/synchronizers/synchronizer-ws-client/index.js +8 -6
  602. package/umd/es6/synchronizers/synchronizer-ws-client/with-schemas/index.js +8 -6
  603. package/umd/es6/synchronizers/synchronizer-ws-server/index.js +113 -109
  604. package/umd/es6/synchronizers/synchronizer-ws-server/with-schemas/index.js +113 -109
  605. package/umd/es6/synchronizers/with-schemas/index.js +5 -3
  606. package/umd/es6/ui-react-inspector/index.js +30 -21
  607. package/umd/es6/ui-react-inspector/with-schemas/index.js +30 -21
  608. package/umd/es6/with-schemas/index.js +28 -20
  609. package/umd/index.js +22 -12
  610. package/umd/indexes/index.js +9 -7
  611. package/umd/indexes/with-schemas/index.js +9 -7
  612. package/umd/mergeable-store/index.js +17 -9
  613. package/umd/mergeable-store/with-schemas/index.js +17 -9
  614. package/umd/metrics/index.js +9 -7
  615. package/umd/metrics/with-schemas/index.js +9 -7
  616. package/umd/min/index.js +1 -1
  617. package/umd/min/index.js.gz +0 -0
  618. package/umd/min/mergeable-store/index.js +1 -1
  619. package/umd/min/mergeable-store/index.js.gz +0 -0
  620. package/umd/min/mergeable-store/with-schemas/index.js +1 -1
  621. package/umd/min/mergeable-store/with-schemas/index.js.gz +0 -0
  622. package/umd/min/persisters/persister-automerge/index.js +1 -1
  623. package/umd/min/persisters/persister-automerge/index.js.gz +0 -0
  624. package/umd/min/persisters/persister-automerge/with-schemas/index.js +1 -1
  625. package/umd/min/persisters/persister-automerge/with-schemas/index.js.gz +0 -0
  626. package/umd/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  627. package/umd/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  628. package/umd/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  629. package/umd/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  630. package/umd/min/persisters/persister-electric-sql/index.js +1 -1
  631. package/umd/min/persisters/persister-electric-sql/index.js.gz +0 -0
  632. package/umd/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  633. package/umd/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  634. package/umd/min/persisters/persister-expo-sqlite/index.js +1 -1
  635. package/umd/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  636. package/umd/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  637. package/umd/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  638. package/umd/min/persisters/persister-libsql/index.js +1 -1
  639. package/umd/min/persisters/persister-libsql/index.js.gz +0 -0
  640. package/umd/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  641. package/umd/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  642. package/umd/min/persisters/persister-postgres/index.js +1 -1
  643. package/umd/min/persisters/persister-postgres/index.js.gz +0 -0
  644. package/umd/min/persisters/persister-postgres/with-schemas/index.js +1 -1
  645. package/umd/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
  646. package/umd/min/persisters/persister-powersync/index.js +1 -1
  647. package/umd/min/persisters/persister-powersync/index.js.gz +0 -0
  648. package/umd/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  649. package/umd/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  650. package/umd/min/persisters/persister-sqlite-wasm/index.js +1 -1
  651. package/umd/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  652. package/umd/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  653. package/umd/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  654. package/umd/min/persisters/persister-sqlite3/index.js +1 -1
  655. package/umd/min/persisters/persister-sqlite3/index.js.gz +0 -0
  656. package/umd/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  657. package/umd/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  658. package/umd/min/store/index.js +1 -1
  659. package/umd/min/store/index.js.gz +0 -0
  660. package/umd/min/store/with-schemas/index.js +1 -1
  661. package/umd/min/store/with-schemas/index.js.gz +0 -0
  662. package/umd/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  663. package/umd/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  664. package/umd/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  665. package/umd/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  666. package/umd/min/tools/index.js +1 -1
  667. package/umd/min/tools/index.js.gz +0 -0
  668. package/umd/min/tools/with-schemas/index.js +1 -1
  669. package/umd/min/tools/with-schemas/index.js.gz +0 -0
  670. package/umd/min/ui-react-inspector/index.js +1 -1
  671. package/umd/min/ui-react-inspector/index.js.gz +0 -0
  672. package/umd/min/ui-react-inspector/with-schemas/index.js +1 -1
  673. package/umd/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
  674. package/umd/min/with-schemas/index.js +1 -1
  675. package/umd/min/with-schemas/index.js.gz +0 -0
  676. package/umd/persisters/index.js +5 -3
  677. package/umd/persisters/persister-automerge/index.js +7 -4
  678. package/umd/persisters/persister-automerge/with-schemas/index.js +7 -4
  679. package/umd/persisters/persister-browser/index.js +5 -3
  680. package/umd/persisters/persister-browser/with-schemas/index.js +5 -3
  681. package/umd/persisters/persister-cr-sqlite-wasm/index.js +52 -37
  682. package/umd/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +52 -37
  683. package/umd/persisters/persister-electric-sql/index.js +52 -37
  684. package/umd/persisters/persister-electric-sql/with-schemas/index.js +52 -37
  685. package/umd/persisters/persister-expo-sqlite/index.js +52 -37
  686. package/umd/persisters/persister-expo-sqlite/with-schemas/index.js +52 -37
  687. package/umd/persisters/persister-file/index.js +5 -3
  688. package/umd/persisters/persister-file/with-schemas/index.js +5 -3
  689. package/umd/persisters/persister-indexed-db/index.js +5 -3
  690. package/umd/persisters/persister-indexed-db/with-schemas/index.js +5 -3
  691. package/umd/persisters/persister-libsql/index.js +52 -37
  692. package/umd/persisters/persister-libsql/with-schemas/index.js +52 -37
  693. package/umd/persisters/persister-partykit-client/index.js +5 -3
  694. package/umd/persisters/persister-partykit-client/with-schemas/index.js +5 -3
  695. package/umd/persisters/persister-partykit-server/index.js +36 -25
  696. package/umd/persisters/persister-partykit-server/with-schemas/index.js +36 -25
  697. package/umd/persisters/persister-postgres/index.js +77 -31
  698. package/umd/persisters/persister-postgres/with-schemas/index.js +77 -31
  699. package/umd/persisters/persister-powersync/index.js +52 -37
  700. package/umd/persisters/persister-powersync/with-schemas/index.js +52 -37
  701. package/umd/persisters/persister-remote/index.js +5 -3
  702. package/umd/persisters/persister-remote/with-schemas/index.js +5 -3
  703. package/umd/persisters/persister-sqlite-wasm/index.js +52 -37
  704. package/umd/persisters/persister-sqlite-wasm/with-schemas/index.js +52 -37
  705. package/umd/persisters/persister-sqlite3/index.js +52 -37
  706. package/umd/persisters/persister-sqlite3/with-schemas/index.js +52 -37
  707. package/umd/persisters/persister-yjs/index.js +5 -3
  708. package/umd/persisters/persister-yjs/with-schemas/index.js +5 -3
  709. package/umd/persisters/with-schemas/index.js +5 -3
  710. package/umd/relationships/index.js +9 -7
  711. package/umd/relationships/with-schemas/index.js +9 -7
  712. package/umd/store/index.js +17 -9
  713. package/umd/store/with-schemas/index.js +17 -9
  714. package/umd/synchronizers/index.js +5 -3
  715. package/umd/synchronizers/synchronizer-broadcast-channel/index.js +5 -3
  716. package/umd/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +5 -3
  717. package/umd/synchronizers/synchronizer-local/index.js +5 -3
  718. package/umd/synchronizers/synchronizer-local/with-schemas/index.js +5 -3
  719. package/umd/synchronizers/synchronizer-ws-client/index.js +8 -6
  720. package/umd/synchronizers/synchronizer-ws-client/with-schemas/index.js +8 -6
  721. package/umd/synchronizers/synchronizer-ws-server/index.js +62 -50
  722. package/umd/synchronizers/synchronizer-ws-server/with-schemas/index.js +62 -50
  723. package/umd/synchronizers/with-schemas/index.js +5 -3
  724. package/umd/tools/index.js +1 -1
  725. package/umd/tools/with-schemas/index.js +1 -1
  726. package/umd/ui-react-inspector/index.js +24 -13
  727. package/umd/ui-react-inspector/with-schemas/index.js +24 -13
  728. package/umd/with-schemas/index.js +22 -12
  729. package/with-schemas/index.js +22 -12
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,i=clearInterval,r=a=>null==a,o=(a,t,e)=>r(a)?e?.():t(a),c=t=>a(t)==n,l=a=>Array.isArray(a),w=(a,t,e)=>a.slice(t,e),y=a=>a.length,u=async a=>s.all(a),d=a=>{throw Error(a)},v=(a,t)=>E(Array(a).fill(0),((a,e)=>t(e))),p=(a,t="")=>a.join(t),E=(a,t)=>a.map(t),g=a=>0==y(a),A=(a,t)=>a.filter(t),m=(a,...t)=>a.push(...t),N="_",h="_id",C="SELECT",O="WHERE",T="TABLE",$="ALTER "+T,S="DELETE FROM",f=C+"*FROM",I="pragma_",R="data_version",b="schema_version",L="pragma_table_",D=a=>`"${a.replace(/"/g,'""')}"`,M=a=>p(E(a,((a,t)=>"$"+(t+1))),e),_=(a,t)=>a?.has(t)??!1,P=a=>[...a?.values()??[]],F=(a,t)=>a?.delete(t),j=Object,x=a=>j.getPrototypeOf(a),U=j.entries,B=j.keys,J=j.freeze,Y=(a=[])=>j.fromEntries(a),k=(...a)=>j.assign({},...a),G=(a,t)=>E(U(a),(([a,e])=>t(e,a))),H=a=>j.values(a),q=a=>y(B(a)),z=a=>(a=>!r(a)&&o(x(a),(a=>a==j.prototype||r(x(a))),(()=>!0)))(a)&&0==q(a),K=a=>new Map(a),Q=(a,t)=>a?.get(t),V=(a,t)=>E([...a?.entries()??[]],(([a,e])=>t(e,a))),W=(a,t,e)=>r(e)?(F(a,t),a):a?.set(t,e),X=(a,t,e,n)=>(_(a,t)||W(a,t,e()),Q(a,t)),Z=K(),aa=K(),ta=(a,t,e,n,s,i,c,w={},y=[])=>{let u,v,p,E=0,g=0,A=0;X(Z,y,(()=>0)),X(aa,y,(()=>[]));const[N,h,C,O,T]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!z(a)||!z(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!z(a)||!z(t),t.setContent]:d("Store type not supported by this Persister"))(c,a),$=t=>{(N&&l(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},S=async a=>(2!=E&&(E=1,g++,await b((async()=>{try{const a=await t();l(a)?$(a):d("Content is not an array "+a)}catch(t){i?.(t),a&&T(a)}E=0}))),L),f=()=>(v&&(s(v),v=void 0),L),I=async a=>(1!=E&&(E=2,A++,await b((async()=>{try{await e(h,a)}catch(a){i?.(a)}E=0}))),L),R=()=>(o(p,a.delListener),p=void 0,L),b=async(...a)=>(m(Q(aa,y),...a),await(async()=>{if(!Q(Z,y)){for(W(Z,y,1);!r((a=Q(aa,y),u=a.shift()));)try{await u()}catch(a){i?.(a)}W(Z,y,0)}var a})(),L),L={load:S,startAutoLoad:async a=>{await f().load(a);try{v=await n((async(a,t)=>{t||a?2!=E&&(E=1,g++,$(t??a),E=0):await S()}))}catch(a){i?.(a)}return L},stopAutoLoad:f,isAutoLoading:()=>!r(v),save:I,startAutoSave:async()=>(await R().save(),p=a.addDidFinishTransactionListener((()=>{const a=C();O(a)&&I(a)})),L),stopAutoSave:R,isAutoSaving:()=>!r(p),schedule:b,getStore:()=>a,destroy:()=>(Q(aa,y).splice(0,void 0),f().stopAutoSave()),getStats:()=>({loads:g,saves:A}),...w};return J(L)},ea=a=>new Set(l(a)||r(a)?a:[a]),na=(a,t)=>a?.add(t),sa=(a,t,n,s,i)=>{const o=K();return[async()=>{o.clear(),E(await n(a,t),(({tn:a,cn:t})=>na(X(o,a,ea),t)))},async(t,e)=>((a,t)=>_(Q(o,a),t))(t,e)?Y(A(E(await a(f+D(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!r(a)&&!z(t)))):{},async(t,n,s,c,l,w=!1)=>{const y=ea();G(s??{},(a=>E(B(a??{}),(a=>na(y,a)))));const d=P(y);if(!w&&l&&g(d)&&_(o,t))return await a("DROP "+T+D(t)),void W(o,t);const v=Q(o,t),N=ea(P(v));if(g(d)||(_(o,t)?await u(E([n,...d],(async(e,s)=>{F(N,e)||(await a($+D(t)+"ADD"+D(e)+(0==s?"text":"json")),0==s&&await a("CREATE UNIQUE INDEX pk ON "+D(t)+`(${D(n)})`),na(v,e))}))):(await a("CREATE "+T+D(t)+`(${D(n)}text PRIMARY KEY${p(E(d,(a=>e+D(a)+"json")))});`),W(o,t,ea([n,...d])))),await u([...!w&&c?E(P(N),(async e=>{e!=n&&(await a($+D(t)+"DROP"+D(e)),F(v,e))})):[]]),w)r(s)?await a(S+D(t)+O+" true"):await u(G(s,(async(e,s)=>{r(e)?await a(S+D(t)+O+D(n)+"=$1",[s]):g(d)||await ia(a,t,n,B(e),[s,...H(e)],i)})));else if(g(d))_(o,t)&&await a(S+D(t)+O+" true");else{const e=A(P(Q(o,t)),(a=>a!=n)),r=[],c=[];G(s??{},((a,t)=>{m(r,t,...E(e,(t=>a?.[t]))),m(c,t)})),await ia(a,t,n,e,r,i),await a(S+D(t)+O+D(n)+`NOT IN(${M(c)})`,c)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},ia=async(a,t,n,s,i,r=!0)=>await a("INSERT "+(r?"":"OR REPLACE ")+"INTO"+D(t)+"("+D(n)+p(E(s,(a=>e+D(a))))+")VALUES"+ra(i,y(s)+1)+(r?"ON CONFLICT("+D(n)+")DO UPDATE SET"+p(E(s,(a=>D(a)+"=excluded."+D(a))),e):""),E(i,(a=>a??null))),ra=(a,t)=>p(v(y(a)/t,(a=>"("+p(v(t,(e=>"$"+(a*t+e+1))),e)+")")),e),oa=(a,t,e,n,s,i,r,[o,c,l],w,y,u,d,v)=>{const[p,E,g,A]=sa(t,w,y,s,v),m=ta(a,(async()=>await A((async()=>{return await p(),a=(await E(o,c))[N]?.[l]??"null",JSON.parse(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await A((async()=>{var t;await p(),await g(o,c,{[N]:{[l]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,r,{[d]:()=>u,destroy:()=>(m.stopAutoLoad().stopAutoSave(),i(),m)},u);return m},ca=(a,t,e,n,s,i,o,[c,l,[w,y,d]],v,p,E,g,m)=>{const[C,O,T,$]=sa(t,v,p,s,m),S=async(a,t)=>await u(V(l,(async([e,n,s,i],r)=>{t&&!(r in a)||await T(e,n,a[r],s,i,t)}))),f=async(a,t)=>y?await T(d,h,{[N]:a},!0,!0,t):null,I=ta(a,(async()=>await $((async()=>{await C();const a=await(async()=>Y(A(await u(V(c,(async([a,t],e)=>[a,await O(e,t)]))),(a=>!z(a[1])))))(),t=await(async()=>w?(await O(d,h))[N]:{})();return z(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await $((async()=>{if(await C(),r(t)){const[t,e]=a();await S(t),await f(e)}else await S(t[0],!0),await f(t[1],!0)}))),e,n,s,o,{[g]:()=>E,destroy:()=>(I.stopAutoLoad().stopAutoSave(),i(),I)},E);return I},la="ColumnName",wa="store",ya="json",ua=wa+"TableName",da=wa+"Id"+la,va=wa+la,pa="autoLoadIntervalSeconds",Ea="rowId"+la,ga="tableId",Aa="tableName",ma="deleteEmptyColumns",Na="deleteEmptyTable",ha={mode:ya,[pa]:1},Ca={load:0,save:0,[Aa]:t+"_values"},Oa=(a,t,e,n,s)=>{const i=K();return G(a,((a,o)=>{const l=w(H(k(t,c(a)?{[e]:a}:a)),0,q(t));r(l[0])||n(o,l[0])||(s(o,l[0]),W(i,o,l))})),i},Ta=(a,e,n,s,r)=>((a,e,n,s,r,o,l,y,u,d="getDb",v)=>{let p,E,g;const[A,m,N,T]=(a=>{const e=(a=>k(ha,c(a)?{[ua]:a}:a??{}))(a),n=e[pa];if(e.mode==ya){const a=e[ua]??t;return[1,n,[a,e[da]??h,e[va]??wa],ea(a)]}const{tables:{load:s={},save:i={}}={},values:r={}}=e,o=w(H(k(Ca,r)),0,q(Ca)),l=o[2],y=ea(l),u=ea(l);return[0,n,[Oa(s,{[ga]:null,[Ea]:h},ga,(a=>_(u,a)),(a=>na(y,a))),Oa(i,{[Aa]:null,[Ea]:h,[ma]:0,[Na]:0},Aa,((a,t)=>_(u,t)),((a,t)=>na(y,t))),o],y]})(e);return(A?oa:ca)(a,o?async(a,t)=>(o(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const[{d:t,s:e,c:s}]=await n(C+` ${R} d,${b} s,TOTAL_CHANGES() c FROM ${I}${R} JOIN ${I}${b}`);t==(p??=t)&&e==(E??=e)&&s==(g??=s)||(a(),p=t,E=e)}catch{}},e=m,t(),setInterval(t,1e3*e)),s((t=>T.has(t)?a():0))];var t,e}),(([a,t])=>{i(a),p=E=g=null,r(t)}),l,(()=>0),y,N,P(T),(async(a,t)=>await a(`${C} t.name tn,c.name cn FROM ${L}list()t,${L}info(t.name)c ${O} t.schema='main'AND t.type IN('table','view')AND t.name IN(${M(t)})ORDER BY t.name,c.name`,t)),u,d,v)})(a,n,(async(a,t=[])=>(await e.execute({sql:a,args:t})).rows),(()=>()=>0),(a=>a()),s,r,1,e,"getClient");export{Ta as createLibSqlPersister};
1
+ const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,i=clearInterval,o=a=>null==a,r=(a,t,e)=>o(a)?e?.():t(a),c=t=>a(t)==n,l=a=>Array.isArray(a),w=(a,t,e)=>a.slice(t,e),y=a=>a.length,u=async a=>s.all(a),d=a=>{throw Error(a)},v=(a,t)=>E(Array(a).fill(0),((a,e)=>t(e))),p=(a,t="")=>a.join(t),E=(a,t)=>a.map(t),g=a=>0==y(a),A=(a,t)=>a.filter(t),m=(a,...t)=>a.push(...t),N="_",h="_id",C="SELECT",O="WHERE",$="TABLE",T="ALTER "+$,S="DELETE FROM",f=C+"*FROM",I="pragma_",R="data_version",b="schema_version",L="pragma_table_",D=a=>`"${a.replace(/"/g,'""')}"`,M=a=>p(E(a,((a,t)=>"$"+(t+1))),e),_=(a,t)=>a?.has(t)??!1,P=a=>[...a?.values()??[]],F=(a,t)=>a?.delete(t),j=Object,x=a=>j.getPrototypeOf(a),U=j.entries,B=j.keys,J=j.freeze,Y=(a=[])=>j.fromEntries(a),k=(...a)=>j.assign({},...a),G=(a,t)=>E(U(a),(([a,e])=>t(e,a))),H=a=>j.values(a),q=a=>y(B(a)),z=a=>(a=>!o(a)&&r(x(a),(a=>a==j.prototype||o(x(a))),(()=>!0)))(a)&&0==q(a),K=a=>new Map(a),Q=(a,t)=>a?.get(t),V=(a,t)=>E([...a?.entries()??[]],(([a,e])=>t(e,a))),W=(a,t,e)=>o(e)?(F(a,t),a):a?.set(t,e),X=(a,t,e,n)=>(_(a,t)||W(a,t,e()),Q(a,t)),Z=K(),aa=K(),ta=(a,t,e,n,s,i,c,w={},y=[])=>{let u,v,p,E=0,g=0,A=0;X(Z,y,(()=>0)),X(aa,y,(()=>[]));const[N,h,C,O,$]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!z(a)||!z(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!z(a)||!z(t),t.setContent]:d("Store type not supported by this Persister"))(c,a),T=t=>{(N&&l(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},S=async a=>(2!=E&&(E=1,g++,await b((async()=>{try{const a=await t();l(a)?T(a):d("Content is not an array "+a)}catch(t){i?.(t),a&&$(a)}E=0}))),L),f=()=>(v&&(s(v),v=void 0),L),I=async a=>(1!=E&&(E=2,A++,await b((async()=>{try{await e(h,a)}catch(a){i?.(a)}E=0}))),L),R=()=>(r(p,a.delListener),p=void 0,L),b=async(...a)=>(m(Q(aa,y),...a),await(async()=>{if(!Q(Z,y)){for(W(Z,y,1);!o((a=Q(aa,y),u=a.shift()));)try{await u()}catch(a){i?.(a)}W(Z,y,0)}var a})(),L),L={load:S,startAutoLoad:async a=>{await f().load(a);try{v=await n((async(a,t)=>{t||a?2!=E&&(E=1,g++,T(t??a),E=0):await S()}))}catch(a){i?.(a)}return L},stopAutoLoad:f,isAutoLoading:()=>!o(v),save:I,startAutoSave:async()=>(await R().save(),p=a.addDidFinishTransactionListener((()=>{const a=C();O(a)&&I(a)})),L),stopAutoSave:R,isAutoSaving:()=>!o(p),schedule:b,getStore:()=>a,destroy:()=>(Q(aa,y).splice(0,void 0),f().stopAutoSave()),getStats:()=>({loads:g,saves:A}),...w};return J(L)},ea=a=>new Set(l(a)||o(a)?a:[a]),na=(a,t)=>a?.add(t),sa=(a,t,n,s,i)=>{const r=K();return[async()=>{r.clear(),E(await n(a,t),(({tn:a,cn:t})=>na(X(r,a,ea),t)))},async(t,e)=>((a,t)=>_(Q(r,a),t))(t,e)?Y(A(E(await a(f+D(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!o(a)&&!z(t)))):{},async(t,n,s,c,l,w=!1)=>{const y=ea();G(s??{},(a=>E(B(a??{}),(a=>na(y,a)))));const d=P(y);if(!w&&l&&g(d)&&_(r,t))return await a("DROP "+$+D(t)),void W(r,t);const v=Q(r,t),N=ea(P(v));if(g(d)||(_(r,t)?await u(E([n,...d],(async(e,s)=>{F(N,e)||(await a(T+D(t)+"ADD"+D(e)+(0==s?"text":"json")),0==s&&await a("CREATE UNIQUE INDEX pk ON "+D(t)+`(${D(n)})`),na(v,e))}))):(await a("CREATE "+$+D(t)+`(${D(n)}text PRIMARY KEY${p(E(d,(a=>e+D(a)+"json")))});`),W(r,t,ea([n,...d])))),await u([...!w&&c?E(P(N),(async e=>{e!=n&&(await a(T+D(t)+"DROP"+D(e)),F(v,e))})):[]]),w)o(s)?await a(S+D(t)+O+" true"):await u(G(s,(async(e,s)=>{o(e)?await a(S+D(t)+O+D(n)+"=$1",[s]):g(d)||await ia(a,t,n,B(e),[s,...H(e)],i)})));else if(g(d))_(r,t)&&await a(S+D(t)+O+" true");else{const e=A(P(Q(r,t)),(a=>a!=n)),o=[],c=[];G(s??{},((a,t)=>{m(o,t,...E(e,(t=>a?.[t]))),m(c,t)})),await ia(a,t,n,e,o,i),await a(S+D(t)+O+D(n)+`NOT IN(${M(c)})`,c)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},ia=async(a,t,n,s,i,o=!0)=>await a("INSERT "+(o?"":"OR REPLACE ")+"INTO"+D(t)+"("+D(n)+p(E(s,(a=>e+D(a))))+")VALUES"+oa(i,y(s)+1)+(o?"ON CONFLICT("+D(n)+")DO UPDATE SET"+p(E(s,(a=>D(a)+"=excluded."+D(a))),e):""),E(i,(a=>a??null))),oa=(a,t)=>p(v(y(a)/t,(a=>"("+p(v(t,(e=>"$"+(a*t+e+1))),e)+")")),e),ra=(a,t,e,n,s,i,o,[r,c,l],w,y,u,d,v)=>{const[p,E,g,A]=sa(t,w,y,s,v),m=ta(a,(async()=>await A((async()=>{return await p(),a=(await E(r,c))[N]?.[l]??"null",JSON.parse(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await A((async()=>{var t;await p(),await g(r,c,{[N]:{[l]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,o,{[d]:()=>u,destroy:()=>(m.stopAutoLoad().stopAutoSave(),i(),m)},u);return m},ca=(a,t,e,n,s,i,r,[c,l,[w,y,d]],v,p,E,g,m)=>{const[C,O,$,T]=sa(t,v,p,s,m),S=async(a,t)=>await u(V(l,(async([e,n,s,i],o)=>{t&&!(o in a)||await $(e,n,a[o],s,i,t)}))),f=async(a,t)=>y?await $(d,h,{[N]:a},!0,!0,t):null,I=ta(a,(async()=>await T((async()=>{await C();const a=await(async()=>Y(A(await u(V(c,(async([a,t],e)=>[a,await O(e,t)]))),(a=>!z(a[1])))))(),t=await(async()=>w?(await O(d,h))[N]:{})();return z(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await T((async()=>{if(await C(),o(t)){const[t,e]=a();await S(t),await f(e)}else await S(t[0],!0),await f(t[1],!0)}))),e,n,s,r,{[g]:()=>E,destroy:()=>(I.stopAutoLoad().stopAutoSave(),i(),I)},E);return I},la="ColumnName",wa="store",ya="json",ua=wa+"TableName",da=wa+"Id"+la,va=wa+la,pa="autoLoadIntervalSeconds",Ea="rowId"+la,ga="tableId",Aa="tableName",ma="deleteEmptyColumns",Na="deleteEmptyTable",ha={mode:ya,[pa]:1},Ca={load:0,save:0,[Aa]:t+"_values"},Oa=(a,t,e,n,s)=>{const i=K();return G(a,((a,r)=>{const l=w(H(k(t,c(a)?{[e]:a}:a)),0,q(t));o(l[0])||n(r,l[0])||(s(r,l[0]),W(i,r,l))})),i},$a=(a,e,n,s,o,r,l,y,u,d="getDb",v)=>{let p,E,g;const A=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(n,r),[m,N,$,T]=(a=>{const e=(a=>k(ha,c(a)?{[ua]:a}:a??{}))(a),n=e[pa];if(e.mode==ya){const a=e[ua]??t;return[1,n,[a,e[da]??h,e[va]??wa],ea(a)]}const{tables:{load:s={},save:i={}}={},values:o={}}=e,r=w(H(k(Ca,o)),0,q(Ca)),l=r[2],y=ea(l),u=ea(l);return[0,n,[Oa(s,{[ga]:null,[Ea]:h},ga,(a=>_(u,a)),(a=>na(y,a))),Oa(i,{[Aa]:null,[Ea]:h,[ma]:0,[Na]:0},Aa,((a,t)=>_(u,t)),((a,t)=>na(y,t))),r],y]})(e);return(m?ra:ca)(a,A,(a=>{let t;const e=()=>t=setInterval((async()=>{try{const[{d:t,s:e,c:n}]=await A(`${C} ${R} d,${b} s,TOTAL_CHANGES() c FROM ${I}${R} JOIN ${I}${b}`);t==p&&e==E&&n==g||(null!=p&&a(),p=t,E=e,g=n)}catch{}}),1e3*N),n=()=>{p=E=g=null,i(t)},r=s((t=>{T.has(t)&&(n(),a(),e())}));return e(),()=>{n(),o(r)}}),(a=>a()),l,(()=>0),y,$,P(T),(async(a,t)=>await a(`${C} t.name tn,c.name cn FROM ${L}list()t,${L}info(t.name)c ${O} t.schema='main'AND t.type IN('table','view')AND t.name IN(${M(t)})ORDER BY t.name,c.name`,t)),u,d,v)},Ta=(a,t,e,n,s)=>$a(a,e,(async(a,e=[])=>(await t.execute({sql:a,args:e})).rows),(()=>()=>0),(a=>a()),n,s,1,t,"getClient");export{Ta as createLibSqlPersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,i=a=>null==a,o=(a,t,e)=>i(a)?e?.():t(a),r=t=>a(t)==n,c=a=>Array.isArray(a),l=(a,t,e)=>a.slice(t,e),w=a=>a.length,y=async a=>s.all(a),E=a=>{throw Error(a)},u=(a,t)=>A(Array(a).fill(0),((a,e)=>t(e))),d=(a,t="")=>a.join(t),A=(a,t)=>a.map(t),R=a=>0==w(a),T=(a,t)=>a.filter(t),p=(a,...t)=>a.push(...t),N="_",g="_id",v="SELECT",C="WHERE",O="TABLE",L="ALTER "+O,S="DELETE FROM",h=v+"*FROM",I=a=>`"${a.replace(/"/g,'""')}"`,$=a=>d(A(a,((a,t)=>"$"+(t+1))),e),f=(a,t)=>a?.has(t)??!1,m=a=>[...a?.values()??[]],b=(a,t)=>a?.delete(t),D=Object,M=a=>D.getPrototypeOf(a),P=D.entries,U=D.keys,_=D.freeze,F=(a=[])=>D.fromEntries(a),G=(...a)=>D.assign({},...a),j=(a,t)=>A(P(a),(([a,e])=>t(e,a))),x=a=>D.values(a),B=a=>w(U(a)),Y=a=>(a=>!i(a)&&o(M(a),(a=>a==D.prototype||i(M(a))),(()=>!0)))(a)&&0==B(a),X=a=>new Map(a),k=(a,t)=>a?.get(t),q=(a,t)=>A([...a?.entries()??[]],(([a,e])=>t(e,a))),J=(a,t,e)=>i(e)?(b(a,t),a):a?.set(t,e),K=(a,t,e,n)=>(f(a,t)||J(a,t,e()),k(a,t)),z=X(),H=X(),Q=(a,t,e,n,s,r,l,w={},y=[])=>{let u,d,A,R=0,T=0,N=0;K(z,y,(()=>0)),K(H,y,(()=>[]));const[g,v,C,O,L]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!Y(a)||!Y(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!Y(a)||!Y(t),t.setContent]:E("Store type not supported by this Persister"))(l,a),S=t=>{(g&&c(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},h=async a=>(2!=R&&(R=1,T++,await m((async()=>{try{const a=await t();c(a)?S(a):E("Content is not an array "+a)}catch(t){r?.(t),a&&L(a)}R=0}))),b),I=()=>(d&&(s(d),d=void 0),b),$=async a=>(1!=R&&(R=2,N++,await m((async()=>{try{await e(v,a)}catch(a){r?.(a)}R=0}))),b),f=()=>(o(A,a.delListener),A=void 0,b),m=async(...a)=>(p(k(H,y),...a),await(async()=>{if(!k(z,y)){for(J(z,y,1);!i((a=k(H,y),u=a.shift()));)try{await u()}catch(a){r?.(a)}J(z,y,0)}var a})(),b),b={load:h,startAutoLoad:async a=>{await I().load(a);try{d=await n((async(a,t)=>{t||a?2!=R&&(R=1,T++,S(t??a),R=0):await h()}))}catch(a){r?.(a)}return b},stopAutoLoad:I,isAutoLoading:()=>!i(d),save:$,startAutoSave:async()=>(await f().save(),A=a.addDidFinishTransactionListener((()=>{const a=C();O(a)&&$(a)})),b),stopAutoSave:f,isAutoSaving:()=>!i(A),schedule:m,getStore:()=>a,destroy:()=>(k(H,y).splice(0,void 0),I().stopAutoSave()),getStats:()=>({loads:T,saves:N}),...w};return _(b)},V=a=>new Set(c(a)||i(a)?a:[a]),W=(a,t)=>a?.add(t),Z=(a,t,n,s,o)=>{const r=X();return[async()=>{r.clear(),A(await n(a,t),(({tn:a,cn:t})=>W(K(r,a,V),t)))},async(t,e)=>((a,t)=>f(k(r,a),t))(t,e)?F(T(A(await a(h+I(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!i(a)&&!Y(t)))):{},async(t,n,s,c,l,w=!1)=>{const E=V();j(s??{},(a=>A(U(a??{}),(a=>W(E,a)))));const u=m(E);if(!w&&l&&R(u)&&f(r,t))return await a("DROP "+O+I(t)),void J(r,t);const N=k(r,t),g=V(m(N));if(R(u)||(f(r,t)?await y(A([n,...u],(async(e,s)=>{b(g,e)||(await a(L+I(t)+"ADD"+I(e)+(0==s?"text":"json")),0==s&&await a("CREATE UNIQUE INDEX pk ON "+I(t)+`(${I(n)})`),W(N,e))}))):(await a("CREATE "+O+I(t)+`(${I(n)}text PRIMARY KEY${d(A(u,(a=>e+I(a)+"json")))});`),J(r,t,V([n,...u])))),await y([...!w&&c?A(m(g),(async e=>{e!=n&&(await a(L+I(t)+"DROP"+I(e)),b(N,e))})):[]]),w)i(s)?await a(S+I(t)+C+" true"):await y(j(s,(async(e,s)=>{i(e)?await a(S+I(t)+C+I(n)+"=$1",[s]):R(u)||await aa(a,t,n,U(e),[s,...x(e)],o)})));else if(R(u))f(r,t)&&await a(S+I(t)+C+" true");else{const e=T(m(k(r,t)),(a=>a!=n)),i=[],c=[];j(s??{},((a,t)=>{p(i,t,...A(e,(t=>a?.[t]))),p(c,t)})),await aa(a,t,n,e,i,o),await a(S+I(t)+C+I(n)+`NOT IN(${$(c)})`,c)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},aa=async(a,t,n,s,i,o=!0)=>await a("INSERT "+(o?"":"OR REPLACE ")+"INTO"+I(t)+"("+I(n)+d(A(s,(a=>e+I(a))))+")VALUES"+ta(i,w(s)+1)+(o?"ON CONFLICT("+I(n)+")DO UPDATE SET"+d(A(s,(a=>I(a)+"=excluded."+I(a))),e):""),A(i,(a=>a??null))),ta=(a,t)=>d(u(w(a)/t,(a=>"("+d(u(t,(e=>"$"+(a*t+e+1))),e)+")")),e),ea=(a,t,e,n,s,i,o,[r,c,l],w,y,E,u,d)=>{const[A,R,T,p]=Z(t,w,y,s,d),g=Q(a,(async()=>await p((async()=>{return await A(),a=(await R(r,c))[N]?.[l]??"null",JSON.parse(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await p((async()=>{var t;await A(),await T(r,c,{[N]:{[l]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,o,{[u]:()=>E,destroy:()=>(g.stopAutoLoad().stopAutoSave(),i(),g)},E);return g},na=(a,t,e,n,s,o,r,[c,l,[w,E,u]],d,A,R,p,v)=>{const[C,O,L,S]=Z(t,d,A,s,v),h=async(a,t)=>await y(q(l,(async([e,n,s,i],o)=>{t&&!(o in a)||await L(e,n,a[o],s,i,t)}))),I=async(a,t)=>E?await L(u,g,{[N]:a},!0,!0,t):null,$=Q(a,(async()=>await S((async()=>{await C();const a=await(async()=>F(T(await y(q(c,(async([a,t],e)=>[a,await O(e,t)]))),(a=>!Y(a[1])))))(),t=await(async()=>w?(await O(u,g))[N]:{})();return Y(a)&&i(t)?void 0:[a,t]}))),(async(a,t)=>await S((async()=>{if(await C(),i(t)){const[t,e]=a();await h(t),await I(e)}else await h(t[0],!0),await I(t[1],!0)}))),e,n,s,r,{[p]:()=>R,destroy:()=>($.stopAutoLoad().stopAutoSave(),o(),$)},R);return $},sa="ColumnName",ia="store",oa="json",ra=ia+"TableName",ca=ia+"Id"+sa,la=ia+sa,wa="autoLoadIntervalSeconds",ya="rowId"+sa,Ea="tableId",ua="tableName",da="deleteEmptyColumns",Aa="deleteEmptyTable",Ra={mode:oa,[wa]:1},Ta={load:0,save:0,[ua]:t+"_values"},pa=(a,t,e,n,s)=>{const o=X();return j(a,((a,c)=>{const w=l(x(G(t,r(a)?{[e]:a}:a)),0,B(t));i(w[0])||n(c,w[0])||(s(c,w[0]),J(o,c,w))})),o},Na=t,ga=async(a,e,n,s,i)=>{const o=await(e.reserve?.());return((a,e,n,s,i,o,c,w,y,E,u="getDb")=>{const[d,,A,R]=(a=>{const e=(a=>G(Ra,r(a)?{[ra]:a}:a??{}))(a),n=e[wa];if(e.mode==oa){const a=e[ra]??t;return[1,n,[a,e[ca]??g,e[la]??ia],V(a)]}const{tables:{load:s={},save:i={}}={},values:o={}}=e,c=l(x(G(Ta,o)),0,B(Ta)),w=c[2],y=V(w),E=V(w);return[0,n,[pa(s,{[Ea]:null,[ya]:g},Ea,(a=>f(E,a)),(a=>W(y,a))),pa(i,{[ua]:null,[ya]:g,[da]:0,[Aa]:0},ua,((a,t)=>f(E,t)),((a,t)=>W(y,t))),c],y]})(e);return(d?ea:na)(a,o?async(a,t)=>(o(a,t),await n(a,t)):n,(async a=>await s((t=>R.has(t)?a():0),R)),i,c,w,y,A,m(R),(async(a,t)=>await a(`${v} table_name tn,column_name cn FROM information_schema.columns ${C} table_schema='public'AND table_name IN(${$(t)})`,t)),E,u)})(a,n,o?.unsafe,(async(a,t)=>{const n=await e.listen(Na,(t=>a?.(t)));return await(e`CREATE OR REPLACE FUNCTION ${e(Na)}()RETURNS trigger AS $t$ BEGIN PERFORM pg_notify('${e.unsafe(Na)}',TG_TABLE_NAME);RETURN NULL;END;$t$ LANGUAGE plpgsql;`),await y(A(m(t),(async a=>{await(e`CREATE TABLE IF NOT EXISTS ${e(a)}("_id"text PRIMARY KEY)`),await(e`CREATE OR REPLACE TRIGGER ${e(Na+a)} AFTER INSERT OR UPDATE OR DELETE ON ${e(a)} EXECUTE FUNCTION ${e(Na)}()`)}))),n}),(a=>a.unlisten().catch((()=>0))),s,i,(()=>o?.release?.()),3,e,"getSql")};export{ga as createPostgresPersister};
1
+ const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,i=a=>null==a,r=(a,t,e)=>i(a)?e?.():t(a),o=t=>a(t)==n,c=a=>Array.isArray(a),E=(a,t,e)=>a.slice(t,e),l=a=>a.length,w=async a=>s.all(a),y=a=>{throw Error(a)},d=(a,t)=>R(Array(a).fill(0),((a,e)=>t(e))),u=(a,t="")=>a.join(t),R=(a,t)=>a.map(t),A=a=>0==l(a),T=(a,t)=>a.filter(t),N=(a,...t)=>a.push(...t),g="_",C="_id",p="SELECT",O="WHERE",L="TABLE",v="ALTER "+L,$="DELETE FROM",I=p+"*FROM",m=a=>`"${a.replace(/"/g,'""')}"`,S=a=>u(R(a,((a,t)=>"$"+(t+1))),e),_=(a,t)=>a?.has(t)??!1,h=a=>[...a?.values()??[]],b=(a,t)=>a?.delete(t),f=Object,D=a=>f.getPrototypeOf(a),P=f.entries,U=f.keys,F=f.freeze,M=(a=[])=>f.fromEntries(a),G=(...a)=>f.assign({},...a),B=(a,t)=>R(P(a),(([a,e])=>t(e,a))),j=a=>f.values(a),x=a=>l(U(a)),X=a=>(a=>!i(a)&&r(D(a),(a=>a==f.prototype||i(D(a))),(()=>!0)))(a)&&0==x(a),Y=a=>new Map(a),q=(a,t)=>a?.get(t),H=(a,t)=>R([...a?.entries()??[]],(([a,e])=>t(e,a))),W=(a,t,e)=>i(e)?(b(a,t),a):a?.set(t,e),k=(a,t,e,n)=>(_(a,t)||W(a,t,e()),q(a,t)),J=Y(),K=Y(),V=(a,t,e,n,s,o,E,l={},w=[])=>{let d,u,R,A=0,T=0,g=0;k(J,w,(()=>0)),k(K,w,(()=>[]));const[C,p,O,L,v]=((a=1,t)=>1!=a&&t.isMergeable()?[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]:y("Store type not supported by this Persister"))(E,a),$=t=>{(C&&c(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},I=async a=>(2!=A&&(A=1,T++,await h((async()=>{try{const a=await t();c(a)?$(a):y("Content is not an array "+a)}catch(t){o?.(t),a&&v(a)}A=0}))),b),m=()=>(u&&(s(u),u=void 0),b),S=async a=>(1!=A&&(A=2,g++,await h((async()=>{try{await e(p,a)}catch(a){o?.(a)}A=0}))),b),_=()=>(r(R,a.delListener),R=void 0,b),h=async(...a)=>(N(q(K,w),...a),await(async()=>{if(!q(J,w)){for(W(J,w,1);!i((a=q(K,w),d=a.shift()));)try{await d()}catch(a){o?.(a)}W(J,w,0)}var a})(),b),b={load:I,startAutoLoad:async a=>{await m().load(a);try{u=await n((async(a,t)=>{t||a?2!=A&&(A=1,T++,$(t??a),A=0):await I()}))}catch(a){o?.(a)}return b},stopAutoLoad:m,isAutoLoading:()=>!i(u),save:S,startAutoSave:async()=>(await _().save(),R=a.addDidFinishTransactionListener((()=>{const a=O();L(a)&&S(a)})),b),stopAutoSave:_,isAutoSaving:()=>!i(R),schedule:h,getStore:()=>a,destroy:()=>(q(K,w).splice(0,void 0),m().stopAutoSave()),getStats:()=>({loads:T,saves:g}),...l};return F(b)},z=a=>new Set(c(a)||i(a)?a:[a]),Q=(a,t)=>a?.add(t),Z=(a,t,n,s,r)=>{const o=Y();return[async()=>{o.clear(),R(await n(a,t),(({tn:a,cn:t})=>Q(k(o,a,z),t)))},async(t,e)=>((a,t)=>_(q(o,a),t))(t,e)?M(T(R(await a(I+m(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!i(a)&&!X(t)))):{},async(t,n,s,c,E,l=!1)=>{const y=z();B(s??{},(a=>R(U(a??{}),(a=>Q(y,a)))));const d=h(y);if(!l&&E&&A(d)&&_(o,t))return await a("DROP "+L+m(t)),void W(o,t);const g=q(o,t),C=z(h(g));if(A(d)||(_(o,t)?await w(R([n,...d],(async(e,s)=>{b(C,e)||(await a(v+m(t)+"ADD"+m(e)+(0==s?"text":"json")),0==s&&await a("CREATE UNIQUE INDEX pk ON "+m(t)+`(${m(n)})`),Q(g,e))}))):(await a("CREATE "+L+m(t)+`(${m(n)}text PRIMARY KEY${u(R(d,(a=>e+m(a)+"json")))});`),W(o,t,z([n,...d])))),await w([...!l&&c?R(h(C),(async e=>{e!=n&&(await a(v+m(t)+"DROP"+m(e)),b(g,e))})):[]]),l)i(s)?await a($+m(t)+O+" true"):await w(B(s,(async(e,s)=>{i(e)?await a($+m(t)+O+m(n)+"=$1",[s]):A(d)||await aa(a,t,n,U(e),[s,...j(e)],r)})));else if(A(d))_(o,t)&&await a($+m(t)+O+" true");else{const e=T(h(q(o,t)),(a=>a!=n)),i=[],c=[];B(s??{},((a,t)=>{N(i,t,...R(e,(t=>a?.[t]))),N(c,t)})),await aa(a,t,n,e,i,r),await a($+m(t)+O+m(n)+`NOT IN(${S(c)})`,c)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},aa=async(a,t,n,s,i,r=!0)=>await a("INSERT "+(r?"":"OR REPLACE ")+"INTO"+m(t)+"("+m(n)+u(R(s,(a=>e+m(a))))+")VALUES"+ta(i,l(s)+1)+(r?"ON CONFLICT("+m(n)+")DO UPDATE SET"+u(R(s,(a=>m(a)+"=excluded."+m(a))),e):""),R(i,(a=>a??null))),ta=(a,t)=>u(d(l(a)/t,(a=>"("+u(d(t,(e=>"$"+(a*t+e+1))),e)+")")),e),ea=(a,t,e,n,s,i,r,[o,c,E],l,w,y,d,u)=>{const[R,A,T,N]=Z(t,l,w,s,u),C=V(a,(async()=>await N((async()=>{return await R(),a=(await A(o,c))[g]?.[E]??"null",JSON.parse(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await N((async()=>{var t;await R(),await T(o,c,{[g]:{[E]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,r,{[d]:()=>y,destroy:()=>(C.stopAutoLoad().stopAutoSave(),i(),C)},y);return C},na=(a,t,e,n,s,r,o,[c,E,[l,y,d]],u,R,A,N,p)=>{const[O,L,v,$]=Z(t,u,R,s,p),I=async(a,t)=>await w(H(E,(async([e,n,s,i],r)=>{t&&!(r in a)||await v(e,n,a[r],s,i,t)}))),m=async(a,t)=>y?await v(d,C,{[g]:a},!0,!0,t):null,S=V(a,(async()=>await $((async()=>{await O();const a=await(async()=>M(T(await w(H(c,(async([a,t],e)=>[a,await L(e,t)]))),(a=>!X(a[1])))))(),t=await(async()=>l?(await L(d,C))[g]:{})();return X(a)&&i(t)?void 0:[a,t]}))),(async(a,t)=>await $((async()=>{if(await O(),i(t)){const[t,e]=a();await I(t),await m(e)}else await I(t[0],!0),await m(t[1],!0)}))),e,n,s,o,{[N]:()=>A,destroy:()=>(S.stopAutoLoad().stopAutoSave(),r(),S)},A);return S},sa="ColumnName",ia="store",ra="json",oa=ia+"TableName",ca=ia+"Id"+sa,Ea=ia+sa,la="autoLoadIntervalSeconds",wa="rowId"+sa,ya="tableId",da="tableName",ua="deleteEmptyColumns",Ra="deleteEmptyTable",Aa={mode:ra,[la]:1},Ta={load:0,save:0,[da]:t+"_values"},Na=(a,t,e,n,s)=>{const r=Y();return B(a,((a,c)=>{const l=E(j(G(t,o(a)?{[e]:a}:a)),0,x(t));i(l[0])||n(c,l[0])||(s(c,l[0]),W(r,c,l))})),r},ga=t,Ca=/^([cd]:)(.+)/,pa=t+"_data",Oa=t+"_table",La=async(a,e,n,s,i)=>{const c=await(e.reserve?.());return((a,e,n,s,i,c,l,y,d,u,A="getDb")=>{const T=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(n,c),[N,,g,L]=(a=>{const e=(a=>G(Aa,o(a)?{[oa]:a}:a??{}))(a),n=e[la];if(e.mode==ra){const a=e[oa]??t;return[1,n,[a,e[ca]??C,e[Ea]??ia],z(a)]}const{tables:{load:s={},save:i={}}={},values:r={}}=e,c=E(j(G(Ta,r)),0,x(Ta)),l=c[2],w=z(l),y=z(l);return[0,n,[Na(s,{[ya]:null,[wa]:C},ya,(a=>_(y,a)),(a=>Q(w,a))),Na(i,{[da]:null,[wa]:C,[ua]:0,[Ra]:0},da,((a,t)=>_(y,t)),((a,t)=>Q(w,t))),c],w]})(e),v=async a=>{await T(`CREATE OR REPLACE TRIGGER ${m(pa+"_"+a)} AFTER INSERT OR UPDATE OR DELETE ON ${m(a)} EXECUTE FUNCTION ${pa}()`)};return(N?ea:na)(a,T,(async a=>{await T(`CREATE OR REPLACE FUNCTION ${Oa}()RETURNS event_trigger AS $t2$ DECLARE row record; BEGIN FOR row IN SELECT object_identity FROM pg_event_trigger_ddl_commands()WHERE command_tag='CREATE TABLE' LOOP PERFORM pg_notify('${ga}','c:'||SPLIT_PART(row.object_identity,'.',2));END LOOP;END;$t2$ LANGUAGE plpgsql;`);try{await T(`CREATE EVENT TRIGGER ${Oa} ON ddl_command_end WHEN TAG IN('CREATE TABLE')EXECUTE FUNCTION ${Oa}();`)}catch{}return await T(`CREATE OR REPLACE FUNCTION ${pa}()RETURNS trigger AS $t1$ BEGIN PERFORM pg_notify('${ga}','d:'||TG_TABLE_NAME);RETURN NULL;END;$t1$ LANGUAGE plpgsql;`),await w(R(h(L),(async a=>{await T(`CREATE TABLE IF NOT EXISTS ${m(a)}("_id"text PRIMARY KEY)`),await v(a)}))),await s(ga,(async t=>{return await r((e=t,n=Ca,e?.match(n)),(async([,t,e])=>{_(L,e)&&("c:"==t&&await v(e),a())}));var e,n}))}),i,l,y,d,g,h(L),(async(a,t)=>await a(`${p} table_name tn,column_name cn FROM information_schema.columns ${O} table_schema='public'AND table_name IN(${S(t)})`,t)),u,A)})(a,n,c?.unsafe,(async(a,t)=>e.listen(a,t)),(async a=>{try{await a.unlisten()}catch(a){i?.(a)}}),s,i,(()=>c?.release?.()),3,e,"getSql")};export{La as createPostgresPersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,i=a=>null==a,o=(a,t,e)=>i(a)?e?.():t(a),r=t=>a(t)==n,c=a=>Array.isArray(a),l=(a,t,e)=>a.slice(t,e),w=a=>a.length,y=async a=>s.all(a),E=a=>{throw Error(a)},u=(a,t)=>A(Array(a).fill(0),((a,e)=>t(e))),d=(a,t="")=>a.join(t),A=(a,t)=>a.map(t),R=a=>0==w(a),T=(a,t)=>a.filter(t),p=(a,...t)=>a.push(...t),N="_",g="_id",v="SELECT",C="WHERE",O="TABLE",L="ALTER "+O,S="DELETE FROM",h=v+"*FROM",I=a=>`"${a.replace(/"/g,'""')}"`,$=a=>d(A(a,((a,t)=>"$"+(t+1))),e),f=(a,t)=>a?.has(t)??!1,m=a=>[...a?.values()??[]],b=(a,t)=>a?.delete(t),D=Object,M=a=>D.getPrototypeOf(a),P=D.entries,U=D.keys,_=D.freeze,F=(a=[])=>D.fromEntries(a),G=(...a)=>D.assign({},...a),j=(a,t)=>A(P(a),(([a,e])=>t(e,a))),x=a=>D.values(a),B=a=>w(U(a)),Y=a=>(a=>!i(a)&&o(M(a),(a=>a==D.prototype||i(M(a))),(()=>!0)))(a)&&0==B(a),X=a=>new Map(a),k=(a,t)=>a?.get(t),q=(a,t)=>A([...a?.entries()??[]],(([a,e])=>t(e,a))),J=(a,t,e)=>i(e)?(b(a,t),a):a?.set(t,e),K=(a,t,e,n)=>(f(a,t)||J(a,t,e()),k(a,t)),z=X(),H=X(),Q=(a,t,e,n,s,r,l,w={},y=[])=>{let u,d,A,R=0,T=0,N=0;K(z,y,(()=>0)),K(H,y,(()=>[]));const[g,v,C,O,L]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!Y(a)||!Y(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!Y(a)||!Y(t),t.setContent]:E("Store type not supported by this Persister"))(l,a),S=t=>{(g&&c(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},h=async a=>(2!=R&&(R=1,T++,await m((async()=>{try{const a=await t();c(a)?S(a):E("Content is not an array "+a)}catch(t){r?.(t),a&&L(a)}R=0}))),b),I=()=>(d&&(s(d),d=void 0),b),$=async a=>(1!=R&&(R=2,N++,await m((async()=>{try{await e(v,a)}catch(a){r?.(a)}R=0}))),b),f=()=>(o(A,a.delListener),A=void 0,b),m=async(...a)=>(p(k(H,y),...a),await(async()=>{if(!k(z,y)){for(J(z,y,1);!i((a=k(H,y),u=a.shift()));)try{await u()}catch(a){r?.(a)}J(z,y,0)}var a})(),b),b={load:h,startAutoLoad:async a=>{await I().load(a);try{d=await n((async(a,t)=>{t||a?2!=R&&(R=1,T++,S(t??a),R=0):await h()}))}catch(a){r?.(a)}return b},stopAutoLoad:I,isAutoLoading:()=>!i(d),save:$,startAutoSave:async()=>(await f().save(),A=a.addDidFinishTransactionListener((()=>{const a=C();O(a)&&$(a)})),b),stopAutoSave:f,isAutoSaving:()=>!i(A),schedule:m,getStore:()=>a,destroy:()=>(k(H,y).splice(0,void 0),I().stopAutoSave()),getStats:()=>({loads:T,saves:N}),...w};return _(b)},V=a=>new Set(c(a)||i(a)?a:[a]),W=(a,t)=>a?.add(t),Z=(a,t,n,s,o)=>{const r=X();return[async()=>{r.clear(),A(await n(a,t),(({tn:a,cn:t})=>W(K(r,a,V),t)))},async(t,e)=>((a,t)=>f(k(r,a),t))(t,e)?F(T(A(await a(h+I(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!i(a)&&!Y(t)))):{},async(t,n,s,c,l,w=!1)=>{const E=V();j(s??{},(a=>A(U(a??{}),(a=>W(E,a)))));const u=m(E);if(!w&&l&&R(u)&&f(r,t))return await a("DROP "+O+I(t)),void J(r,t);const N=k(r,t),g=V(m(N));if(R(u)||(f(r,t)?await y(A([n,...u],(async(e,s)=>{b(g,e)||(await a(L+I(t)+"ADD"+I(e)+(0==s?"text":"json")),0==s&&await a("CREATE UNIQUE INDEX pk ON "+I(t)+`(${I(n)})`),W(N,e))}))):(await a("CREATE "+O+I(t)+`(${I(n)}text PRIMARY KEY${d(A(u,(a=>e+I(a)+"json")))});`),J(r,t,V([n,...u])))),await y([...!w&&c?A(m(g),(async e=>{e!=n&&(await a(L+I(t)+"DROP"+I(e)),b(N,e))})):[]]),w)i(s)?await a(S+I(t)+C+" true"):await y(j(s,(async(e,s)=>{i(e)?await a(S+I(t)+C+I(n)+"=$1",[s]):R(u)||await aa(a,t,n,U(e),[s,...x(e)],o)})));else if(R(u))f(r,t)&&await a(S+I(t)+C+" true");else{const e=T(m(k(r,t)),(a=>a!=n)),i=[],c=[];j(s??{},((a,t)=>{p(i,t,...A(e,(t=>a?.[t]))),p(c,t)})),await aa(a,t,n,e,i,o),await a(S+I(t)+C+I(n)+`NOT IN(${$(c)})`,c)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},aa=async(a,t,n,s,i,o=!0)=>await a("INSERT "+(o?"":"OR REPLACE ")+"INTO"+I(t)+"("+I(n)+d(A(s,(a=>e+I(a))))+")VALUES"+ta(i,w(s)+1)+(o?"ON CONFLICT("+I(n)+")DO UPDATE SET"+d(A(s,(a=>I(a)+"=excluded."+I(a))),e):""),A(i,(a=>a??null))),ta=(a,t)=>d(u(w(a)/t,(a=>"("+d(u(t,(e=>"$"+(a*t+e+1))),e)+")")),e),ea=(a,t,e,n,s,i,o,[r,c,l],w,y,E,u,d)=>{const[A,R,T,p]=Z(t,w,y,s,d),g=Q(a,(async()=>await p((async()=>{return await A(),a=(await R(r,c))[N]?.[l]??"null",JSON.parse(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await p((async()=>{var t;await A(),await T(r,c,{[N]:{[l]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,o,{[u]:()=>E,destroy:()=>(g.stopAutoLoad().stopAutoSave(),i(),g)},E);return g},na=(a,t,e,n,s,o,r,[c,l,[w,E,u]],d,A,R,p,v)=>{const[C,O,L,S]=Z(t,d,A,s,v),h=async(a,t)=>await y(q(l,(async([e,n,s,i],o)=>{t&&!(o in a)||await L(e,n,a[o],s,i,t)}))),I=async(a,t)=>E?await L(u,g,{[N]:a},!0,!0,t):null,$=Q(a,(async()=>await S((async()=>{await C();const a=await(async()=>F(T(await y(q(c,(async([a,t],e)=>[a,await O(e,t)]))),(a=>!Y(a[1])))))(),t=await(async()=>w?(await O(u,g))[N]:{})();return Y(a)&&i(t)?void 0:[a,t]}))),(async(a,t)=>await S((async()=>{if(await C(),i(t)){const[t,e]=a();await h(t),await I(e)}else await h(t[0],!0),await I(t[1],!0)}))),e,n,s,r,{[p]:()=>R,destroy:()=>($.stopAutoLoad().stopAutoSave(),o(),$)},R);return $},sa="ColumnName",ia="store",oa="json",ra=ia+"TableName",ca=ia+"Id"+sa,la=ia+sa,wa="autoLoadIntervalSeconds",ya="rowId"+sa,Ea="tableId",ua="tableName",da="deleteEmptyColumns",Aa="deleteEmptyTable",Ra={mode:oa,[wa]:1},Ta={load:0,save:0,[ua]:t+"_values"},pa=(a,t,e,n,s)=>{const o=X();return j(a,((a,c)=>{const w=l(x(G(t,r(a)?{[e]:a}:a)),0,B(t));i(w[0])||n(c,w[0])||(s(c,w[0]),J(o,c,w))})),o},Na=t,ga=async(a,e,n,s,i)=>{const o=await(e.reserve?.());return((a,e,n,s,i,o,c,w,y,E,u="getDb")=>{const[d,,A,R]=(a=>{const e=(a=>G(Ra,r(a)?{[ra]:a}:a??{}))(a),n=e[wa];if(e.mode==oa){const a=e[ra]??t;return[1,n,[a,e[ca]??g,e[la]??ia],V(a)]}const{tables:{load:s={},save:i={}}={},values:o={}}=e,c=l(x(G(Ta,o)),0,B(Ta)),w=c[2],y=V(w),E=V(w);return[0,n,[pa(s,{[Ea]:null,[ya]:g},Ea,(a=>f(E,a)),(a=>W(y,a))),pa(i,{[ua]:null,[ya]:g,[da]:0,[Aa]:0},ua,((a,t)=>f(E,t)),((a,t)=>W(y,t))),c],y]})(e);return(d?ea:na)(a,o?async(a,t)=>(o(a,t),await n(a,t)):n,(async a=>await s((t=>R.has(t)?a():0),R)),i,c,w,y,A,m(R),(async(a,t)=>await a(`${v} table_name tn,column_name cn FROM information_schema.columns ${C} table_schema='public'AND table_name IN(${$(t)})`,t)),E,u)})(a,n,o?.unsafe,(async(a,t)=>{const n=await e.listen(Na,(t=>a?.(t)));return await(e`CREATE OR REPLACE FUNCTION ${e(Na)}()RETURNS trigger AS $t$ BEGIN PERFORM pg_notify('${e.unsafe(Na)}',TG_TABLE_NAME);RETURN NULL;END;$t$ LANGUAGE plpgsql;`),await y(A(m(t),(async a=>{await(e`CREATE TABLE IF NOT EXISTS ${e(a)}("_id"text PRIMARY KEY)`),await(e`CREATE OR REPLACE TRIGGER ${e(Na+a)} AFTER INSERT OR UPDATE OR DELETE ON ${e(a)} EXECUTE FUNCTION ${e(Na)}()`)}))),n}),(a=>a.unlisten().catch((()=>0))),s,i,(()=>o?.release?.()),3,e,"getSql")};export{ga as createPostgresPersister};
1
+ const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,i=a=>null==a,r=(a,t,e)=>i(a)?e?.():t(a),o=t=>a(t)==n,c=a=>Array.isArray(a),E=(a,t,e)=>a.slice(t,e),l=a=>a.length,w=async a=>s.all(a),y=a=>{throw Error(a)},d=(a,t)=>R(Array(a).fill(0),((a,e)=>t(e))),u=(a,t="")=>a.join(t),R=(a,t)=>a.map(t),A=a=>0==l(a),T=(a,t)=>a.filter(t),N=(a,...t)=>a.push(...t),g="_",C="_id",p="SELECT",O="WHERE",L="TABLE",v="ALTER "+L,$="DELETE FROM",I=p+"*FROM",m=a=>`"${a.replace(/"/g,'""')}"`,S=a=>u(R(a,((a,t)=>"$"+(t+1))),e),_=(a,t)=>a?.has(t)??!1,h=a=>[...a?.values()??[]],b=(a,t)=>a?.delete(t),f=Object,D=a=>f.getPrototypeOf(a),P=f.entries,U=f.keys,F=f.freeze,M=(a=[])=>f.fromEntries(a),G=(...a)=>f.assign({},...a),B=(a,t)=>R(P(a),(([a,e])=>t(e,a))),j=a=>f.values(a),x=a=>l(U(a)),X=a=>(a=>!i(a)&&r(D(a),(a=>a==f.prototype||i(D(a))),(()=>!0)))(a)&&0==x(a),Y=a=>new Map(a),q=(a,t)=>a?.get(t),H=(a,t)=>R([...a?.entries()??[]],(([a,e])=>t(e,a))),W=(a,t,e)=>i(e)?(b(a,t),a):a?.set(t,e),k=(a,t,e,n)=>(_(a,t)||W(a,t,e()),q(a,t)),J=Y(),K=Y(),V=(a,t,e,n,s,o,E,l={},w=[])=>{let d,u,R,A=0,T=0,g=0;k(J,w,(()=>0)),k(K,w,(()=>[]));const[C,p,O,L,v]=((a=1,t)=>1!=a&&t.isMergeable()?[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]:y("Store type not supported by this Persister"))(E,a),$=t=>{(C&&c(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},I=async a=>(2!=A&&(A=1,T++,await h((async()=>{try{const a=await t();c(a)?$(a):y("Content is not an array "+a)}catch(t){o?.(t),a&&v(a)}A=0}))),b),m=()=>(u&&(s(u),u=void 0),b),S=async a=>(1!=A&&(A=2,g++,await h((async()=>{try{await e(p,a)}catch(a){o?.(a)}A=0}))),b),_=()=>(r(R,a.delListener),R=void 0,b),h=async(...a)=>(N(q(K,w),...a),await(async()=>{if(!q(J,w)){for(W(J,w,1);!i((a=q(K,w),d=a.shift()));)try{await d()}catch(a){o?.(a)}W(J,w,0)}var a})(),b),b={load:I,startAutoLoad:async a=>{await m().load(a);try{u=await n((async(a,t)=>{t||a?2!=A&&(A=1,T++,$(t??a),A=0):await I()}))}catch(a){o?.(a)}return b},stopAutoLoad:m,isAutoLoading:()=>!i(u),save:S,startAutoSave:async()=>(await _().save(),R=a.addDidFinishTransactionListener((()=>{const a=O();L(a)&&S(a)})),b),stopAutoSave:_,isAutoSaving:()=>!i(R),schedule:h,getStore:()=>a,destroy:()=>(q(K,w).splice(0,void 0),m().stopAutoSave()),getStats:()=>({loads:T,saves:g}),...l};return F(b)},z=a=>new Set(c(a)||i(a)?a:[a]),Q=(a,t)=>a?.add(t),Z=(a,t,n,s,r)=>{const o=Y();return[async()=>{o.clear(),R(await n(a,t),(({tn:a,cn:t})=>Q(k(o,a,z),t)))},async(t,e)=>((a,t)=>_(q(o,a),t))(t,e)?M(T(R(await a(I+m(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!i(a)&&!X(t)))):{},async(t,n,s,c,E,l=!1)=>{const y=z();B(s??{},(a=>R(U(a??{}),(a=>Q(y,a)))));const d=h(y);if(!l&&E&&A(d)&&_(o,t))return await a("DROP "+L+m(t)),void W(o,t);const g=q(o,t),C=z(h(g));if(A(d)||(_(o,t)?await w(R([n,...d],(async(e,s)=>{b(C,e)||(await a(v+m(t)+"ADD"+m(e)+(0==s?"text":"json")),0==s&&await a("CREATE UNIQUE INDEX pk ON "+m(t)+`(${m(n)})`),Q(g,e))}))):(await a("CREATE "+L+m(t)+`(${m(n)}text PRIMARY KEY${u(R(d,(a=>e+m(a)+"json")))});`),W(o,t,z([n,...d])))),await w([...!l&&c?R(h(C),(async e=>{e!=n&&(await a(v+m(t)+"DROP"+m(e)),b(g,e))})):[]]),l)i(s)?await a($+m(t)+O+" true"):await w(B(s,(async(e,s)=>{i(e)?await a($+m(t)+O+m(n)+"=$1",[s]):A(d)||await aa(a,t,n,U(e),[s,...j(e)],r)})));else if(A(d))_(o,t)&&await a($+m(t)+O+" true");else{const e=T(h(q(o,t)),(a=>a!=n)),i=[],c=[];B(s??{},((a,t)=>{N(i,t,...R(e,(t=>a?.[t]))),N(c,t)})),await aa(a,t,n,e,i,r),await a($+m(t)+O+m(n)+`NOT IN(${S(c)})`,c)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},aa=async(a,t,n,s,i,r=!0)=>await a("INSERT "+(r?"":"OR REPLACE ")+"INTO"+m(t)+"("+m(n)+u(R(s,(a=>e+m(a))))+")VALUES"+ta(i,l(s)+1)+(r?"ON CONFLICT("+m(n)+")DO UPDATE SET"+u(R(s,(a=>m(a)+"=excluded."+m(a))),e):""),R(i,(a=>a??null))),ta=(a,t)=>u(d(l(a)/t,(a=>"("+u(d(t,(e=>"$"+(a*t+e+1))),e)+")")),e),ea=(a,t,e,n,s,i,r,[o,c,E],l,w,y,d,u)=>{const[R,A,T,N]=Z(t,l,w,s,u),C=V(a,(async()=>await N((async()=>{return await R(),a=(await A(o,c))[g]?.[E]??"null",JSON.parse(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await N((async()=>{var t;await R(),await T(o,c,{[g]:{[E]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,r,{[d]:()=>y,destroy:()=>(C.stopAutoLoad().stopAutoSave(),i(),C)},y);return C},na=(a,t,e,n,s,r,o,[c,E,[l,y,d]],u,R,A,N,p)=>{const[O,L,v,$]=Z(t,u,R,s,p),I=async(a,t)=>await w(H(E,(async([e,n,s,i],r)=>{t&&!(r in a)||await v(e,n,a[r],s,i,t)}))),m=async(a,t)=>y?await v(d,C,{[g]:a},!0,!0,t):null,S=V(a,(async()=>await $((async()=>{await O();const a=await(async()=>M(T(await w(H(c,(async([a,t],e)=>[a,await L(e,t)]))),(a=>!X(a[1])))))(),t=await(async()=>l?(await L(d,C))[g]:{})();return X(a)&&i(t)?void 0:[a,t]}))),(async(a,t)=>await $((async()=>{if(await O(),i(t)){const[t,e]=a();await I(t),await m(e)}else await I(t[0],!0),await m(t[1],!0)}))),e,n,s,o,{[N]:()=>A,destroy:()=>(S.stopAutoLoad().stopAutoSave(),r(),S)},A);return S},sa="ColumnName",ia="store",ra="json",oa=ia+"TableName",ca=ia+"Id"+sa,Ea=ia+sa,la="autoLoadIntervalSeconds",wa="rowId"+sa,ya="tableId",da="tableName",ua="deleteEmptyColumns",Ra="deleteEmptyTable",Aa={mode:ra,[la]:1},Ta={load:0,save:0,[da]:t+"_values"},Na=(a,t,e,n,s)=>{const r=Y();return B(a,((a,c)=>{const l=E(j(G(t,o(a)?{[e]:a}:a)),0,x(t));i(l[0])||n(c,l[0])||(s(c,l[0]),W(r,c,l))})),r},ga=t,Ca=/^([cd]:)(.+)/,pa=t+"_data",Oa=t+"_table",La=async(a,e,n,s,i)=>{const c=await(e.reserve?.());return((a,e,n,s,i,c,l,y,d,u,A="getDb")=>{const T=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(n,c),[N,,g,L]=(a=>{const e=(a=>G(Aa,o(a)?{[oa]:a}:a??{}))(a),n=e[la];if(e.mode==ra){const a=e[oa]??t;return[1,n,[a,e[ca]??C,e[Ea]??ia],z(a)]}const{tables:{load:s={},save:i={}}={},values:r={}}=e,c=E(j(G(Ta,r)),0,x(Ta)),l=c[2],w=z(l),y=z(l);return[0,n,[Na(s,{[ya]:null,[wa]:C},ya,(a=>_(y,a)),(a=>Q(w,a))),Na(i,{[da]:null,[wa]:C,[ua]:0,[Ra]:0},da,((a,t)=>_(y,t)),((a,t)=>Q(w,t))),c],w]})(e),v=async a=>{await T(`CREATE OR REPLACE TRIGGER ${m(pa+"_"+a)} AFTER INSERT OR UPDATE OR DELETE ON ${m(a)} EXECUTE FUNCTION ${pa}()`)};return(N?ea:na)(a,T,(async a=>{await T(`CREATE OR REPLACE FUNCTION ${Oa}()RETURNS event_trigger AS $t2$ DECLARE row record; BEGIN FOR row IN SELECT object_identity FROM pg_event_trigger_ddl_commands()WHERE command_tag='CREATE TABLE' LOOP PERFORM pg_notify('${ga}','c:'||SPLIT_PART(row.object_identity,'.',2));END LOOP;END;$t2$ LANGUAGE plpgsql;`);try{await T(`CREATE EVENT TRIGGER ${Oa} ON ddl_command_end WHEN TAG IN('CREATE TABLE')EXECUTE FUNCTION ${Oa}();`)}catch{}return await T(`CREATE OR REPLACE FUNCTION ${pa}()RETURNS trigger AS $t1$ BEGIN PERFORM pg_notify('${ga}','d:'||TG_TABLE_NAME);RETURN NULL;END;$t1$ LANGUAGE plpgsql;`),await w(R(h(L),(async a=>{await T(`CREATE TABLE IF NOT EXISTS ${m(a)}("_id"text PRIMARY KEY)`),await v(a)}))),await s(ga,(async t=>{return await r((e=t,n=Ca,e?.match(n)),(async([,t,e])=>{_(L,e)&&("c:"==t&&await v(e),a())}));var e,n}))}),i,l,y,d,g,h(L),(async(a,t)=>await a(`${p} table_name tn,column_name cn FROM information_schema.columns ${O} table_schema='public'AND table_name IN(${S(t)})`,t)),u,A)})(a,n,c?.unsafe,(async(a,t)=>e.listen(a,t)),(async a=>{try{await a.unlisten()}catch(a){i?.(a)}}),s,i,(()=>c?.release?.()),3,e,"getSql")};export{La as createPostgresPersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,r=clearInterval,o=a=>null==a,i=(a,t,e)=>o(a)?e?.():t(a),c=t=>a(t)==n,l=a=>Array.isArray(a),w=(a,t,e)=>a.slice(t,e),y=a=>a.length,u=async a=>s.all(a),d=a=>{throw Error(a)},v=(a,t)=>p(Array(a).fill(0),((a,e)=>t(e))),g=(a,t="")=>a.join(t),p=(a,t)=>a.map(t),E=a=>0==y(a),A=(a,t)=>a.filter(t),h=(a,...t)=>a.push(...t),m="_",N="_id",C="SELECT",T="WHERE",b="TABLE",O="ALTER "+b,f="DELETE FROM",S=C+"*FROM",$="pragma_",I="data_version",R="schema_version",L="pragma_table_",D=a=>`"${a.replace(/"/g,'""')}"`,M=a=>g(p(a,((a,t)=>"$"+(t+1))),e),_=(a,t)=>a?.has(t)??!1,P=a=>[...a?.values()??[]],F=(a,t)=>a?.delete(t),j=Object,x=a=>j.getPrototypeOf(a),U=j.entries,B=j.keys,J=j.freeze,Y=(a=[])=>j.fromEntries(a),k=(...a)=>j.assign({},...a),G=(a,t)=>p(U(a),(([a,e])=>t(e,a))),H=a=>j.values(a),z=a=>y(B(a)),K=a=>(a=>!o(a)&&i(x(a),(a=>a==j.prototype||o(x(a))),(()=>!0)))(a)&&0==z(a),Q=a=>new Map(a),V=(a,t)=>a?.get(t),W=(a,t)=>p([...a?.entries()??[]],(([a,e])=>t(e,a))),X=(a,t,e)=>o(e)?(F(a,t),a):a?.set(t,e),q=(a,t,e,n)=>(_(a,t)||X(a,t,e()),V(a,t)),Z=Q(),aa=Q(),ta=(a,t,e,n,s,r,c,w={},y=[])=>{let u,v,g,p=0,E=0,A=0;q(Z,y,(()=>0)),q(aa,y,(()=>[]));const[m,N,C,T,b]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!K(a)||!K(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!K(a)||!K(t),t.setContent]:d("Store type not supported by this Persister"))(c,a),O=t=>{(m&&l(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},f=async a=>(2!=p&&(p=1,E++,await R((async()=>{try{const a=await t();l(a)?O(a):d("Content is not an array "+a)}catch(t){r?.(t),a&&b(a)}p=0}))),L),S=()=>(v&&(s(v),v=void 0),L),$=async a=>(1!=p&&(p=2,A++,await R((async()=>{try{await e(N,a)}catch(a){r?.(a)}p=0}))),L),I=()=>(i(g,a.delListener),g=void 0,L),R=async(...a)=>(h(V(aa,y),...a),await(async()=>{if(!V(Z,y)){for(X(Z,y,1);!o((a=V(aa,y),u=a.shift()));)try{await u()}catch(a){r?.(a)}X(Z,y,0)}var a})(),L),L={load:f,startAutoLoad:async a=>{await S().load(a);try{v=await n((async(a,t)=>{t||a?2!=p&&(p=1,E++,O(t??a),p=0):await f()}))}catch(a){r?.(a)}return L},stopAutoLoad:S,isAutoLoading:()=>!o(v),save:$,startAutoSave:async()=>(await I().save(),g=a.addDidFinishTransactionListener((()=>{const a=C();T(a)&&$(a)})),L),stopAutoSave:I,isAutoSaving:()=>!o(g),schedule:R,getStore:()=>a,destroy:()=>(V(aa,y).splice(0,void 0),S().stopAutoSave()),getStats:()=>({loads:E,saves:A}),...w};return J(L)},ea=a=>new Set(l(a)||o(a)?a:[a]),na=(a,t)=>a?.add(t),sa=(a,t,n,s,r)=>{const i=Q();return[async()=>{i.clear(),p(await n(a,t),(({tn:a,cn:t})=>na(q(i,a,ea),t)))},async(t,e)=>((a,t)=>_(V(i,a),t))(t,e)?Y(A(p(await a(S+D(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!o(a)&&!K(t)))):{},async(t,n,s,c,l,w=!1)=>{const y=ea();G(s??{},(a=>p(B(a??{}),(a=>na(y,a)))));const d=P(y);if(!w&&l&&E(d)&&_(i,t))return await a("DROP "+b+D(t)),void X(i,t);const v=V(i,t),m=ea(P(v));if(E(d)||(_(i,t)?await u(p([n,...d],(async(e,s)=>{F(m,e)||(await a(O+D(t)+"ADD"+D(e)+(0==s?"text":"json")),0==s&&await a("CREATE UNIQUE INDEX pk ON "+D(t)+`(${D(n)})`),na(v,e))}))):(await a("CREATE "+b+D(t)+`(${D(n)}text PRIMARY KEY${g(p(d,(a=>e+D(a)+"json")))});`),X(i,t,ea([n,...d])))),await u([...!w&&c?p(P(m),(async e=>{e!=n&&(await a(O+D(t)+"DROP"+D(e)),F(v,e))})):[]]),w)o(s)?await a(f+D(t)+T+" true"):await u(G(s,(async(e,s)=>{o(e)?await a(f+D(t)+T+D(n)+"=$1",[s]):E(d)||await ra(a,t,n,B(e),[s,...H(e)],r)})));else if(E(d))_(i,t)&&await a(f+D(t)+T+" true");else{const e=A(P(V(i,t)),(a=>a!=n)),o=[],c=[];G(s??{},((a,t)=>{h(o,t,...p(e,(t=>a?.[t]))),h(c,t)})),await ra(a,t,n,e,o,r),await a(f+D(t)+T+D(n)+`NOT IN(${M(c)})`,c)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},ra=async(a,t,n,s,r,o=!0)=>await a("INSERT "+(o?"":"OR REPLACE ")+"INTO"+D(t)+"("+D(n)+g(p(s,(a=>e+D(a))))+")VALUES"+oa(r,y(s)+1)+(o?"ON CONFLICT("+D(n)+")DO UPDATE SET"+g(p(s,(a=>D(a)+"=excluded."+D(a))),e):""),p(r,(a=>a??null))),oa=(a,t)=>g(v(y(a)/t,(a=>"("+g(v(t,(e=>"$"+(a*t+e+1))),e)+")")),e),ia=(a,t,e,n,s,r,o,[i,c,l],w,y,u,d,v)=>{const[g,p,E,A]=sa(t,w,y,s,v),h=ta(a,(async()=>await A((async()=>{return await g(),a=(await p(i,c))[m]?.[l]??"null",JSON.parse(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await A((async()=>{var t;await g(),await E(i,c,{[m]:{[l]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,o,{[d]:()=>u,destroy:()=>(h.stopAutoLoad().stopAutoSave(),r(),h)},u);return h},ca=(a,t,e,n,s,r,i,[c,l,[w,y,d]],v,g,p,E,h)=>{const[C,T,b,O]=sa(t,v,g,s,h),f=async(a,t)=>await u(W(l,(async([e,n,s,r],o)=>{t&&!(o in a)||await b(e,n,a[o],s,r,t)}))),S=async(a,t)=>y?await b(d,N,{[m]:a},!0,!0,t):null,$=ta(a,(async()=>await O((async()=>{await C();const a=await(async()=>Y(A(await u(W(c,(async([a,t],e)=>[a,await T(e,t)]))),(a=>!K(a[1])))))(),t=await(async()=>w?(await T(d,N))[m]:{})();return K(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await O((async()=>{if(await C(),o(t)){const[t,e]=a();await f(t),await S(e)}else await f(t[0],!0),await S(t[1],!0)}))),e,n,s,i,{[E]:()=>p,destroy:()=>($.stopAutoLoad().stopAutoSave(),r(),$)},p);return $},la="ColumnName",wa="store",ya="json",ua=wa+"TableName",da=wa+"Id"+la,va=wa+la,ga="autoLoadIntervalSeconds",pa="rowId"+la,Ea="tableId",Aa="tableName",ha="deleteEmptyColumns",ma="deleteEmptyTable",Na={mode:ya,[ga]:1},Ca={load:0,save:0,[Aa]:t+"_values"},Ta=(a,t,e,n,s)=>{const r=Q();return G(a,((a,i)=>{const l=w(H(k(t,c(a)?{[e]:a}:a)),0,z(t));o(l[0])||n(i,l[0])||(s(i,l[0]),X(r,i,l))})),r},ba=(a,e,n,s,o,i=!1)=>((a,e,n,s,o,i,l,y,u,d="getDb",v)=>{let g,p,E;const[A,h,m,b]=(a=>{const e=(a=>k(Na,c(a)?{[ua]:a}:a??{}))(a),n=e[ga];if(e.mode==ya){const a=e[ua]??t;return[1,n,[a,e[da]??N,e[va]??wa],ea(a)]}const{tables:{load:s={},save:r={}}={},values:o={}}=e,i=w(H(k(Ca,o)),0,z(Ca)),l=i[2],y=ea(l),u=ea(l);return[0,n,[Ta(s,{[Ea]:null,[pa]:N},Ea,(a=>_(u,a)),(a=>na(y,a))),Ta(r,{[Aa]:null,[pa]:N,[ha]:0,[ma]:0},Aa,((a,t)=>_(u,t)),((a,t)=>na(y,t))),i],y]})(e);return(A?ia:ca)(a,i?async(a,t)=>(i(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const[{d:t,s:e,c:s}]=await n(C+` ${I} d,${R} s,TOTAL_CHANGES() c FROM ${$}${I} JOIN ${$}${R}`);t==(g??=t)&&e==(p??=e)&&s==(E??=s)||(a(),g=t,p=e)}catch{}},e=h,t(),setInterval(t,1e3*e)),s((t=>b.has(t)?a():0))];var t,e}),(([a,t])=>{r(a),g=p=E=null,o(t)}),l,(()=>0),y,m,P(b),(async(a,t)=>await a(`${C} t.name tn,c.name cn FROM ${L}list()t,${L}info(t.name)c ${T} t.schema='main'AND t.type IN('table','view')AND t.name IN(${M(t)})ORDER BY t.name,c.name`,t)),u,d,v)})(a,n,(async(a,t=[])=>e.execute(a,t).then((a=>a.rows?._array??[]))),(a=>{const t=new AbortController,n=e.onChange({rawTableNames:!0,signal:t.signal});return(async()=>{for await(const t of n)p(t.changedTables,a)})(),t}),(a=>a.abort()),s,o,1,e,"getPowerSync",i);export{ba as createPowerSyncPersister};
1
+ const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,o=clearInterval,r=a=>null==a,i=(a,t,e)=>r(a)?e?.():t(a),c=t=>a(t)==n,l=a=>Array.isArray(a),w=(a,t,e)=>a.slice(t,e),y=a=>a.length,u=async a=>s.all(a),d=a=>{throw Error(a)},v=(a,t)=>p(Array(a).fill(0),((a,e)=>t(e))),g=(a,t="")=>a.join(t),p=(a,t)=>a.map(t),E=a=>0==y(a),A=(a,t)=>a.filter(t),h=(a,...t)=>a.push(...t),m="_",N="_id",C="SELECT",T="WHERE",b="TABLE",O="ALTER "+b,$="DELETE FROM",f=C+"*FROM",S="pragma_",I="data_version",R="schema_version",L="pragma_table_",D=a=>`"${a.replace(/"/g,'""')}"`,M=a=>g(p(a,((a,t)=>"$"+(t+1))),e),_=(a,t)=>a?.has(t)??!1,P=a=>[...a?.values()??[]],F=(a,t)=>a?.delete(t),j=Object,x=a=>j.getPrototypeOf(a),U=j.entries,B=j.keys,J=j.freeze,Y=(a=[])=>j.fromEntries(a),k=(...a)=>j.assign({},...a),G=(a,t)=>p(U(a),(([a,e])=>t(e,a))),H=a=>j.values(a),z=a=>y(B(a)),K=a=>(a=>!r(a)&&i(x(a),(a=>a==j.prototype||r(x(a))),(()=>!0)))(a)&&0==z(a),Q=a=>new Map(a),V=(a,t)=>a?.get(t),W=(a,t)=>p([...a?.entries()??[]],(([a,e])=>t(e,a))),X=(a,t,e)=>r(e)?(F(a,t),a):a?.set(t,e),q=(a,t,e,n)=>(_(a,t)||X(a,t,e()),V(a,t)),Z=Q(),aa=Q(),ta=(a,t,e,n,s,o,c,w={},y=[])=>{let u,v,g,p=0,E=0,A=0;q(Z,y,(()=>0)),q(aa,y,(()=>[]));const[m,N,C,T,b]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!K(a)||!K(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!K(a)||!K(t),t.setContent]:d("Store type not supported by this Persister"))(c,a),O=t=>{(m&&l(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},$=async a=>(2!=p&&(p=1,E++,await R((async()=>{try{const a=await t();l(a)?O(a):d("Content is not an array "+a)}catch(t){o?.(t),a&&b(a)}p=0}))),L),f=()=>(v&&(s(v),v=void 0),L),S=async a=>(1!=p&&(p=2,A++,await R((async()=>{try{await e(N,a)}catch(a){o?.(a)}p=0}))),L),I=()=>(i(g,a.delListener),g=void 0,L),R=async(...a)=>(h(V(aa,y),...a),await(async()=>{if(!V(Z,y)){for(X(Z,y,1);!r((a=V(aa,y),u=a.shift()));)try{await u()}catch(a){o?.(a)}X(Z,y,0)}var a})(),L),L={load:$,startAutoLoad:async a=>{await f().load(a);try{v=await n((async(a,t)=>{t||a?2!=p&&(p=1,E++,O(t??a),p=0):await $()}))}catch(a){o?.(a)}return L},stopAutoLoad:f,isAutoLoading:()=>!r(v),save:S,startAutoSave:async()=>(await I().save(),g=a.addDidFinishTransactionListener((()=>{const a=C();T(a)&&S(a)})),L),stopAutoSave:I,isAutoSaving:()=>!r(g),schedule:R,getStore:()=>a,destroy:()=>(V(aa,y).splice(0,void 0),f().stopAutoSave()),getStats:()=>({loads:E,saves:A}),...w};return J(L)},ea=a=>new Set(l(a)||r(a)?a:[a]),na=(a,t)=>a?.add(t),sa=(a,t,n,s,o)=>{const i=Q();return[async()=>{i.clear(),p(await n(a,t),(({tn:a,cn:t})=>na(q(i,a,ea),t)))},async(t,e)=>((a,t)=>_(V(i,a),t))(t,e)?Y(A(p(await a(f+D(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!r(a)&&!K(t)))):{},async(t,n,s,c,l,w=!1)=>{const y=ea();G(s??{},(a=>p(B(a??{}),(a=>na(y,a)))));const d=P(y);if(!w&&l&&E(d)&&_(i,t))return await a("DROP "+b+D(t)),void X(i,t);const v=V(i,t),m=ea(P(v));if(E(d)||(_(i,t)?await u(p([n,...d],(async(e,s)=>{F(m,e)||(await a(O+D(t)+"ADD"+D(e)+(0==s?"text":"json")),0==s&&await a("CREATE UNIQUE INDEX pk ON "+D(t)+`(${D(n)})`),na(v,e))}))):(await a("CREATE "+b+D(t)+`(${D(n)}text PRIMARY KEY${g(p(d,(a=>e+D(a)+"json")))});`),X(i,t,ea([n,...d])))),await u([...!w&&c?p(P(m),(async e=>{e!=n&&(await a(O+D(t)+"DROP"+D(e)),F(v,e))})):[]]),w)r(s)?await a($+D(t)+T+" true"):await u(G(s,(async(e,s)=>{r(e)?await a($+D(t)+T+D(n)+"=$1",[s]):E(d)||await oa(a,t,n,B(e),[s,...H(e)],o)})));else if(E(d))_(i,t)&&await a($+D(t)+T+" true");else{const e=A(P(V(i,t)),(a=>a!=n)),r=[],c=[];G(s??{},((a,t)=>{h(r,t,...p(e,(t=>a?.[t]))),h(c,t)})),await oa(a,t,n,e,r,o),await a($+D(t)+T+D(n)+`NOT IN(${M(c)})`,c)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},oa=async(a,t,n,s,o,r=!0)=>await a("INSERT "+(r?"":"OR REPLACE ")+"INTO"+D(t)+"("+D(n)+g(p(s,(a=>e+D(a))))+")VALUES"+ra(o,y(s)+1)+(r?"ON CONFLICT("+D(n)+")DO UPDATE SET"+g(p(s,(a=>D(a)+"=excluded."+D(a))),e):""),p(o,(a=>a??null))),ra=(a,t)=>g(v(y(a)/t,(a=>"("+g(v(t,(e=>"$"+(a*t+e+1))),e)+")")),e),ia=(a,t,e,n,s,o,r,[i,c,l],w,y,u,d,v)=>{const[g,p,E,A]=sa(t,w,y,s,v),h=ta(a,(async()=>await A((async()=>{return await g(),a=(await p(i,c))[m]?.[l]??"null",JSON.parse(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await A((async()=>{var t;await g(),await E(i,c,{[m]:{[l]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,r,{[d]:()=>u,destroy:()=>(h.stopAutoLoad().stopAutoSave(),o(),h)},u);return h},ca=(a,t,e,n,s,o,i,[c,l,[w,y,d]],v,g,p,E,h)=>{const[C,T,b,O]=sa(t,v,g,s,h),$=async(a,t)=>await u(W(l,(async([e,n,s,o],r)=>{t&&!(r in a)||await b(e,n,a[r],s,o,t)}))),f=async(a,t)=>y?await b(d,N,{[m]:a},!0,!0,t):null,S=ta(a,(async()=>await O((async()=>{await C();const a=await(async()=>Y(A(await u(W(c,(async([a,t],e)=>[a,await T(e,t)]))),(a=>!K(a[1])))))(),t=await(async()=>w?(await T(d,N))[m]:{})();return K(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await O((async()=>{if(await C(),r(t)){const[t,e]=a();await $(t),await f(e)}else await $(t[0],!0),await f(t[1],!0)}))),e,n,s,i,{[E]:()=>p,destroy:()=>(S.stopAutoLoad().stopAutoSave(),o(),S)},p);return S},la="ColumnName",wa="store",ya="json",ua=wa+"TableName",da=wa+"Id"+la,va=wa+la,ga="autoLoadIntervalSeconds",pa="rowId"+la,Ea="tableId",Aa="tableName",ha="deleteEmptyColumns",ma="deleteEmptyTable",Na={mode:ya,[ga]:1},Ca={load:0,save:0,[Aa]:t+"_values"},Ta=(a,t,e,n,s)=>{const o=Q();return G(a,((a,i)=>{const l=w(H(k(t,c(a)?{[e]:a}:a)),0,z(t));r(l[0])||n(i,l[0])||(s(i,l[0]),X(o,i,l))})),o},ba=(a,e,n,s,r,i,l,y,u,d="getDb",v)=>{let g,p,E;const A=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(n,i),[h,m,b,O]=(a=>{const e=(a=>k(Na,c(a)?{[ua]:a}:a??{}))(a),n=e[ga];if(e.mode==ya){const a=e[ua]??t;return[1,n,[a,e[da]??N,e[va]??wa],ea(a)]}const{tables:{load:s={},save:o={}}={},values:r={}}=e,i=w(H(k(Ca,r)),0,z(Ca)),l=i[2],y=ea(l),u=ea(l);return[0,n,[Ta(s,{[Ea]:null,[pa]:N},Ea,(a=>_(u,a)),(a=>na(y,a))),Ta(o,{[Aa]:null,[pa]:N,[ha]:0,[ma]:0},Aa,((a,t)=>_(u,t)),((a,t)=>na(y,t))),i],y]})(e);return(h?ia:ca)(a,A,(a=>{let t;const e=()=>t=setInterval((async()=>{try{const[{d:t,s:e,c:n}]=await A(`${C} ${I} d,${R} s,TOTAL_CHANGES() c FROM ${S}${I} JOIN ${S}${R}`);t==g&&e==p&&n==E||(null!=g&&a(),g=t,p=e,E=n)}catch{}}),1e3*m),n=()=>{g=p=E=null,o(t)},i=s((t=>{O.has(t)&&(n(),a(),e())}));return e(),()=>{n(),r(i)}}),(a=>a()),l,(()=>0),y,b,P(O),(async(a,t)=>await a(`${C} t.name tn,c.name cn FROM ${L}list()t,${L}info(t.name)c ${T} t.schema='main'AND t.type IN('table','view')AND t.name IN(${M(t)})ORDER BY t.name,c.name`,t)),u,d,v)},Oa=(a,t,e,n,s,o=!1)=>ba(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)p(t.changedTables,a)})(),e}),(a=>a.abort()),n,s,1,t,"getPowerSync",o);export{Oa as createPowerSyncPersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,r=clearInterval,o=a=>null==a,i=(a,t,e)=>o(a)?e?.():t(a),c=t=>a(t)==n,l=a=>Array.isArray(a),w=(a,t,e)=>a.slice(t,e),y=a=>a.length,u=async a=>s.all(a),d=a=>{throw Error(a)},v=(a,t)=>p(Array(a).fill(0),((a,e)=>t(e))),g=(a,t="")=>a.join(t),p=(a,t)=>a.map(t),E=a=>0==y(a),A=(a,t)=>a.filter(t),h=(a,...t)=>a.push(...t),m="_",N="_id",C="SELECT",T="WHERE",b="TABLE",O="ALTER "+b,f="DELETE FROM",S=C+"*FROM",$="pragma_",I="data_version",R="schema_version",L="pragma_table_",D=a=>`"${a.replace(/"/g,'""')}"`,M=a=>g(p(a,((a,t)=>"$"+(t+1))),e),_=(a,t)=>a?.has(t)??!1,P=a=>[...a?.values()??[]],F=(a,t)=>a?.delete(t),j=Object,x=a=>j.getPrototypeOf(a),U=j.entries,B=j.keys,J=j.freeze,Y=(a=[])=>j.fromEntries(a),k=(...a)=>j.assign({},...a),G=(a,t)=>p(U(a),(([a,e])=>t(e,a))),H=a=>j.values(a),z=a=>y(B(a)),K=a=>(a=>!o(a)&&i(x(a),(a=>a==j.prototype||o(x(a))),(()=>!0)))(a)&&0==z(a),Q=a=>new Map(a),V=(a,t)=>a?.get(t),W=(a,t)=>p([...a?.entries()??[]],(([a,e])=>t(e,a))),X=(a,t,e)=>o(e)?(F(a,t),a):a?.set(t,e),q=(a,t,e,n)=>(_(a,t)||X(a,t,e()),V(a,t)),Z=Q(),aa=Q(),ta=(a,t,e,n,s,r,c,w={},y=[])=>{let u,v,g,p=0,E=0,A=0;q(Z,y,(()=>0)),q(aa,y,(()=>[]));const[m,N,C,T,b]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!K(a)||!K(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!K(a)||!K(t),t.setContent]:d("Store type not supported by this Persister"))(c,a),O=t=>{(m&&l(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},f=async a=>(2!=p&&(p=1,E++,await R((async()=>{try{const a=await t();l(a)?O(a):d("Content is not an array "+a)}catch(t){r?.(t),a&&b(a)}p=0}))),L),S=()=>(v&&(s(v),v=void 0),L),$=async a=>(1!=p&&(p=2,A++,await R((async()=>{try{await e(N,a)}catch(a){r?.(a)}p=0}))),L),I=()=>(i(g,a.delListener),g=void 0,L),R=async(...a)=>(h(V(aa,y),...a),await(async()=>{if(!V(Z,y)){for(X(Z,y,1);!o((a=V(aa,y),u=a.shift()));)try{await u()}catch(a){r?.(a)}X(Z,y,0)}var a})(),L),L={load:f,startAutoLoad:async a=>{await S().load(a);try{v=await n((async(a,t)=>{t||a?2!=p&&(p=1,E++,O(t??a),p=0):await f()}))}catch(a){r?.(a)}return L},stopAutoLoad:S,isAutoLoading:()=>!o(v),save:$,startAutoSave:async()=>(await I().save(),g=a.addDidFinishTransactionListener((()=>{const a=C();T(a)&&$(a)})),L),stopAutoSave:I,isAutoSaving:()=>!o(g),schedule:R,getStore:()=>a,destroy:()=>(V(aa,y).splice(0,void 0),S().stopAutoSave()),getStats:()=>({loads:E,saves:A}),...w};return J(L)},ea=a=>new Set(l(a)||o(a)?a:[a]),na=(a,t)=>a?.add(t),sa=(a,t,n,s,r)=>{const i=Q();return[async()=>{i.clear(),p(await n(a,t),(({tn:a,cn:t})=>na(q(i,a,ea),t)))},async(t,e)=>((a,t)=>_(V(i,a),t))(t,e)?Y(A(p(await a(S+D(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!o(a)&&!K(t)))):{},async(t,n,s,c,l,w=!1)=>{const y=ea();G(s??{},(a=>p(B(a??{}),(a=>na(y,a)))));const d=P(y);if(!w&&l&&E(d)&&_(i,t))return await a("DROP "+b+D(t)),void X(i,t);const v=V(i,t),m=ea(P(v));if(E(d)||(_(i,t)?await u(p([n,...d],(async(e,s)=>{F(m,e)||(await a(O+D(t)+"ADD"+D(e)+(0==s?"text":"json")),0==s&&await a("CREATE UNIQUE INDEX pk ON "+D(t)+`(${D(n)})`),na(v,e))}))):(await a("CREATE "+b+D(t)+`(${D(n)}text PRIMARY KEY${g(p(d,(a=>e+D(a)+"json")))});`),X(i,t,ea([n,...d])))),await u([...!w&&c?p(P(m),(async e=>{e!=n&&(await a(O+D(t)+"DROP"+D(e)),F(v,e))})):[]]),w)o(s)?await a(f+D(t)+T+" true"):await u(G(s,(async(e,s)=>{o(e)?await a(f+D(t)+T+D(n)+"=$1",[s]):E(d)||await ra(a,t,n,B(e),[s,...H(e)],r)})));else if(E(d))_(i,t)&&await a(f+D(t)+T+" true");else{const e=A(P(V(i,t)),(a=>a!=n)),o=[],c=[];G(s??{},((a,t)=>{h(o,t,...p(e,(t=>a?.[t]))),h(c,t)})),await ra(a,t,n,e,o,r),await a(f+D(t)+T+D(n)+`NOT IN(${M(c)})`,c)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},ra=async(a,t,n,s,r,o=!0)=>await a("INSERT "+(o?"":"OR REPLACE ")+"INTO"+D(t)+"("+D(n)+g(p(s,(a=>e+D(a))))+")VALUES"+oa(r,y(s)+1)+(o?"ON CONFLICT("+D(n)+")DO UPDATE SET"+g(p(s,(a=>D(a)+"=excluded."+D(a))),e):""),p(r,(a=>a??null))),oa=(a,t)=>g(v(y(a)/t,(a=>"("+g(v(t,(e=>"$"+(a*t+e+1))),e)+")")),e),ia=(a,t,e,n,s,r,o,[i,c,l],w,y,u,d,v)=>{const[g,p,E,A]=sa(t,w,y,s,v),h=ta(a,(async()=>await A((async()=>{return await g(),a=(await p(i,c))[m]?.[l]??"null",JSON.parse(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await A((async()=>{var t;await g(),await E(i,c,{[m]:{[l]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,o,{[d]:()=>u,destroy:()=>(h.stopAutoLoad().stopAutoSave(),r(),h)},u);return h},ca=(a,t,e,n,s,r,i,[c,l,[w,y,d]],v,g,p,E,h)=>{const[C,T,b,O]=sa(t,v,g,s,h),f=async(a,t)=>await u(W(l,(async([e,n,s,r],o)=>{t&&!(o in a)||await b(e,n,a[o],s,r,t)}))),S=async(a,t)=>y?await b(d,N,{[m]:a},!0,!0,t):null,$=ta(a,(async()=>await O((async()=>{await C();const a=await(async()=>Y(A(await u(W(c,(async([a,t],e)=>[a,await T(e,t)]))),(a=>!K(a[1])))))(),t=await(async()=>w?(await T(d,N))[m]:{})();return K(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await O((async()=>{if(await C(),o(t)){const[t,e]=a();await f(t),await S(e)}else await f(t[0],!0),await S(t[1],!0)}))),e,n,s,i,{[E]:()=>p,destroy:()=>($.stopAutoLoad().stopAutoSave(),r(),$)},p);return $},la="ColumnName",wa="store",ya="json",ua=wa+"TableName",da=wa+"Id"+la,va=wa+la,ga="autoLoadIntervalSeconds",pa="rowId"+la,Ea="tableId",Aa="tableName",ha="deleteEmptyColumns",ma="deleteEmptyTable",Na={mode:ya,[ga]:1},Ca={load:0,save:0,[Aa]:t+"_values"},Ta=(a,t,e,n,s)=>{const r=Q();return G(a,((a,i)=>{const l=w(H(k(t,c(a)?{[e]:a}:a)),0,z(t));o(l[0])||n(i,l[0])||(s(i,l[0]),X(r,i,l))})),r},ba=(a,e,n,s,o,i=!1)=>((a,e,n,s,o,i,l,y,u,d="getDb",v)=>{let g,p,E;const[A,h,m,b]=(a=>{const e=(a=>k(Na,c(a)?{[ua]:a}:a??{}))(a),n=e[ga];if(e.mode==ya){const a=e[ua]??t;return[1,n,[a,e[da]??N,e[va]??wa],ea(a)]}const{tables:{load:s={},save:r={}}={},values:o={}}=e,i=w(H(k(Ca,o)),0,z(Ca)),l=i[2],y=ea(l),u=ea(l);return[0,n,[Ta(s,{[Ea]:null,[pa]:N},Ea,(a=>_(u,a)),(a=>na(y,a))),Ta(r,{[Aa]:null,[pa]:N,[ha]:0,[ma]:0},Aa,((a,t)=>_(u,t)),((a,t)=>na(y,t))),i],y]})(e);return(A?ia:ca)(a,i?async(a,t)=>(i(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const[{d:t,s:e,c:s}]=await n(C+` ${I} d,${R} s,TOTAL_CHANGES() c FROM ${$}${I} JOIN ${$}${R}`);t==(g??=t)&&e==(p??=e)&&s==(E??=s)||(a(),g=t,p=e)}catch{}},e=h,t(),setInterval(t,1e3*e)),s((t=>b.has(t)?a():0))];var t,e}),(([a,t])=>{r(a),g=p=E=null,o(t)}),l,(()=>0),y,m,P(b),(async(a,t)=>await a(`${C} t.name tn,c.name cn FROM ${L}list()t,${L}info(t.name)c ${T} t.schema='main'AND t.type IN('table','view')AND t.name IN(${M(t)})ORDER BY t.name,c.name`,t)),u,d,v)})(a,n,(async(a,t=[])=>e.execute(a,t).then((a=>a.rows?._array??[]))),(a=>{const t=new AbortController,n=e.onChange({rawTableNames:!0,signal:t.signal});return(async()=>{for await(const t of n)p(t.changedTables,a)})(),t}),(a=>a.abort()),s,o,1,e,"getPowerSync",i);export{ba as createPowerSyncPersister};
1
+ const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,o=clearInterval,r=a=>null==a,i=(a,t,e)=>r(a)?e?.():t(a),c=t=>a(t)==n,l=a=>Array.isArray(a),w=(a,t,e)=>a.slice(t,e),y=a=>a.length,u=async a=>s.all(a),d=a=>{throw Error(a)},v=(a,t)=>p(Array(a).fill(0),((a,e)=>t(e))),g=(a,t="")=>a.join(t),p=(a,t)=>a.map(t),E=a=>0==y(a),A=(a,t)=>a.filter(t),h=(a,...t)=>a.push(...t),m="_",N="_id",C="SELECT",T="WHERE",b="TABLE",O="ALTER "+b,$="DELETE FROM",f=C+"*FROM",S="pragma_",I="data_version",R="schema_version",L="pragma_table_",D=a=>`"${a.replace(/"/g,'""')}"`,M=a=>g(p(a,((a,t)=>"$"+(t+1))),e),_=(a,t)=>a?.has(t)??!1,P=a=>[...a?.values()??[]],F=(a,t)=>a?.delete(t),j=Object,x=a=>j.getPrototypeOf(a),U=j.entries,B=j.keys,J=j.freeze,Y=(a=[])=>j.fromEntries(a),k=(...a)=>j.assign({},...a),G=(a,t)=>p(U(a),(([a,e])=>t(e,a))),H=a=>j.values(a),z=a=>y(B(a)),K=a=>(a=>!r(a)&&i(x(a),(a=>a==j.prototype||r(x(a))),(()=>!0)))(a)&&0==z(a),Q=a=>new Map(a),V=(a,t)=>a?.get(t),W=(a,t)=>p([...a?.entries()??[]],(([a,e])=>t(e,a))),X=(a,t,e)=>r(e)?(F(a,t),a):a?.set(t,e),q=(a,t,e,n)=>(_(a,t)||X(a,t,e()),V(a,t)),Z=Q(),aa=Q(),ta=(a,t,e,n,s,o,c,w={},y=[])=>{let u,v,g,p=0,E=0,A=0;q(Z,y,(()=>0)),q(aa,y,(()=>[]));const[m,N,C,T,b]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!K(a)||!K(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!K(a)||!K(t),t.setContent]:d("Store type not supported by this Persister"))(c,a),O=t=>{(m&&l(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},$=async a=>(2!=p&&(p=1,E++,await R((async()=>{try{const a=await t();l(a)?O(a):d("Content is not an array "+a)}catch(t){o?.(t),a&&b(a)}p=0}))),L),f=()=>(v&&(s(v),v=void 0),L),S=async a=>(1!=p&&(p=2,A++,await R((async()=>{try{await e(N,a)}catch(a){o?.(a)}p=0}))),L),I=()=>(i(g,a.delListener),g=void 0,L),R=async(...a)=>(h(V(aa,y),...a),await(async()=>{if(!V(Z,y)){for(X(Z,y,1);!r((a=V(aa,y),u=a.shift()));)try{await u()}catch(a){o?.(a)}X(Z,y,0)}var a})(),L),L={load:$,startAutoLoad:async a=>{await f().load(a);try{v=await n((async(a,t)=>{t||a?2!=p&&(p=1,E++,O(t??a),p=0):await $()}))}catch(a){o?.(a)}return L},stopAutoLoad:f,isAutoLoading:()=>!r(v),save:S,startAutoSave:async()=>(await I().save(),g=a.addDidFinishTransactionListener((()=>{const a=C();T(a)&&S(a)})),L),stopAutoSave:I,isAutoSaving:()=>!r(g),schedule:R,getStore:()=>a,destroy:()=>(V(aa,y).splice(0,void 0),f().stopAutoSave()),getStats:()=>({loads:E,saves:A}),...w};return J(L)},ea=a=>new Set(l(a)||r(a)?a:[a]),na=(a,t)=>a?.add(t),sa=(a,t,n,s,o)=>{const i=Q();return[async()=>{i.clear(),p(await n(a,t),(({tn:a,cn:t})=>na(q(i,a,ea),t)))},async(t,e)=>((a,t)=>_(V(i,a),t))(t,e)?Y(A(p(await a(f+D(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!r(a)&&!K(t)))):{},async(t,n,s,c,l,w=!1)=>{const y=ea();G(s??{},(a=>p(B(a??{}),(a=>na(y,a)))));const d=P(y);if(!w&&l&&E(d)&&_(i,t))return await a("DROP "+b+D(t)),void X(i,t);const v=V(i,t),m=ea(P(v));if(E(d)||(_(i,t)?await u(p([n,...d],(async(e,s)=>{F(m,e)||(await a(O+D(t)+"ADD"+D(e)+(0==s?"text":"json")),0==s&&await a("CREATE UNIQUE INDEX pk ON "+D(t)+`(${D(n)})`),na(v,e))}))):(await a("CREATE "+b+D(t)+`(${D(n)}text PRIMARY KEY${g(p(d,(a=>e+D(a)+"json")))});`),X(i,t,ea([n,...d])))),await u([...!w&&c?p(P(m),(async e=>{e!=n&&(await a(O+D(t)+"DROP"+D(e)),F(v,e))})):[]]),w)r(s)?await a($+D(t)+T+" true"):await u(G(s,(async(e,s)=>{r(e)?await a($+D(t)+T+D(n)+"=$1",[s]):E(d)||await oa(a,t,n,B(e),[s,...H(e)],o)})));else if(E(d))_(i,t)&&await a($+D(t)+T+" true");else{const e=A(P(V(i,t)),(a=>a!=n)),r=[],c=[];G(s??{},((a,t)=>{h(r,t,...p(e,(t=>a?.[t]))),h(c,t)})),await oa(a,t,n,e,r,o),await a($+D(t)+T+D(n)+`NOT IN(${M(c)})`,c)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},oa=async(a,t,n,s,o,r=!0)=>await a("INSERT "+(r?"":"OR REPLACE ")+"INTO"+D(t)+"("+D(n)+g(p(s,(a=>e+D(a))))+")VALUES"+ra(o,y(s)+1)+(r?"ON CONFLICT("+D(n)+")DO UPDATE SET"+g(p(s,(a=>D(a)+"=excluded."+D(a))),e):""),p(o,(a=>a??null))),ra=(a,t)=>g(v(y(a)/t,(a=>"("+g(v(t,(e=>"$"+(a*t+e+1))),e)+")")),e),ia=(a,t,e,n,s,o,r,[i,c,l],w,y,u,d,v)=>{const[g,p,E,A]=sa(t,w,y,s,v),h=ta(a,(async()=>await A((async()=>{return await g(),a=(await p(i,c))[m]?.[l]??"null",JSON.parse(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await A((async()=>{var t;await g(),await E(i,c,{[m]:{[l]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,r,{[d]:()=>u,destroy:()=>(h.stopAutoLoad().stopAutoSave(),o(),h)},u);return h},ca=(a,t,e,n,s,o,i,[c,l,[w,y,d]],v,g,p,E,h)=>{const[C,T,b,O]=sa(t,v,g,s,h),$=async(a,t)=>await u(W(l,(async([e,n,s,o],r)=>{t&&!(r in a)||await b(e,n,a[r],s,o,t)}))),f=async(a,t)=>y?await b(d,N,{[m]:a},!0,!0,t):null,S=ta(a,(async()=>await O((async()=>{await C();const a=await(async()=>Y(A(await u(W(c,(async([a,t],e)=>[a,await T(e,t)]))),(a=>!K(a[1])))))(),t=await(async()=>w?(await T(d,N))[m]:{})();return K(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await O((async()=>{if(await C(),r(t)){const[t,e]=a();await $(t),await f(e)}else await $(t[0],!0),await f(t[1],!0)}))),e,n,s,i,{[E]:()=>p,destroy:()=>(S.stopAutoLoad().stopAutoSave(),o(),S)},p);return S},la="ColumnName",wa="store",ya="json",ua=wa+"TableName",da=wa+"Id"+la,va=wa+la,ga="autoLoadIntervalSeconds",pa="rowId"+la,Ea="tableId",Aa="tableName",ha="deleteEmptyColumns",ma="deleteEmptyTable",Na={mode:ya,[ga]:1},Ca={load:0,save:0,[Aa]:t+"_values"},Ta=(a,t,e,n,s)=>{const o=Q();return G(a,((a,i)=>{const l=w(H(k(t,c(a)?{[e]:a}:a)),0,z(t));r(l[0])||n(i,l[0])||(s(i,l[0]),X(o,i,l))})),o},ba=(a,e,n,s,r,i,l,y,u,d="getDb",v)=>{let g,p,E;const A=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(n,i),[h,m,b,O]=(a=>{const e=(a=>k(Na,c(a)?{[ua]:a}:a??{}))(a),n=e[ga];if(e.mode==ya){const a=e[ua]??t;return[1,n,[a,e[da]??N,e[va]??wa],ea(a)]}const{tables:{load:s={},save:o={}}={},values:r={}}=e,i=w(H(k(Ca,r)),0,z(Ca)),l=i[2],y=ea(l),u=ea(l);return[0,n,[Ta(s,{[Ea]:null,[pa]:N},Ea,(a=>_(u,a)),(a=>na(y,a))),Ta(o,{[Aa]:null,[pa]:N,[ha]:0,[ma]:0},Aa,((a,t)=>_(u,t)),((a,t)=>na(y,t))),i],y]})(e);return(h?ia:ca)(a,A,(a=>{let t;const e=()=>t=setInterval((async()=>{try{const[{d:t,s:e,c:n}]=await A(`${C} ${I} d,${R} s,TOTAL_CHANGES() c FROM ${S}${I} JOIN ${S}${R}`);t==g&&e==p&&n==E||(null!=g&&a(),g=t,p=e,E=n)}catch{}}),1e3*m),n=()=>{g=p=E=null,o(t)},i=s((t=>{O.has(t)&&(n(),a(),e())}));return e(),()=>{n(),r(i)}}),(a=>a()),l,(()=>0),y,b,P(O),(async(a,t)=>await a(`${C} t.name tn,c.name cn FROM ${L}list()t,${L}info(t.name)c ${T} t.schema='main'AND t.type IN('table','view')AND t.name IN(${M(t)})ORDER BY t.name,c.name`,t)),u,d,v)},Oa=(a,t,e,n,s,o=!1)=>ba(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)p(t.changedTables,a)})(),e}),(a=>a.abort()),n,s,1,t,"getPowerSync",o);export{Oa as createPowerSyncPersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,i=clearInterval,o=a=>null==a,r=(a,t,e)=>o(a)?e?.():t(a),c=t=>a(t)==n,l=a=>Array.isArray(a),w=(a,t,e)=>a.slice(t,e),y=a=>a.length,u=async a=>s.all(a),d=a=>{throw Error(a)},p=(a,t)=>E(Array(a).fill(0),((a,e)=>t(e))),v=(a,t="")=>a.join(t),E=(a,t)=>a.map(t),A=a=>0==y(a),g=(a,t)=>a.filter(t),m=(a,...t)=>a.push(...t),h="_",N="_id",C="SELECT",O="WHERE",T="TABLE",$="ALTER "+T,b="DELETE FROM",R=C+"*FROM",S="pragma_",f="data_version",I="schema_version",L="pragma_table_",D=a=>`"${a.replace(/"/g,'""')}"`,_=a=>v(E(a,((a,t)=>"$"+(t+1))),e),M=(a,t)=>a?.has(t)??!1,P=a=>[...a?.values()??[]],j=(a,t)=>a?.delete(t),F=Object,x=a=>F.getPrototypeOf(a),k=F.entries,U=F.keys,B=F.freeze,J=(a=[])=>F.fromEntries(a),Y=(...a)=>F.assign({},...a),q=(a,t)=>E(k(a),(([a,e])=>t(e,a))),G=a=>F.values(a),H=a=>y(U(a)),V=a=>(a=>!o(a)&&r(x(a),(a=>a==F.prototype||o(x(a))),(()=>!0)))(a)&&0==H(a),z=a=>new Map(a),K=(a,t)=>a?.get(t),Q=(a,t)=>E([...a?.entries()??[]],(([a,e])=>t(e,a))),W=(a,t,e)=>o(e)?(j(a,t),a):a?.set(t,e),X=(a,t,e,n)=>(M(a,t)||W(a,t,e()),K(a,t)),Z=z(),aa=z(),ta=(a,t,e,n,s,i,c,w={},y=[])=>{let u,p,v,E=0,A=0,g=0;X(Z,y,(()=>0)),X(aa,y,(()=>[]));const[h,N,C,O,T]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!V(a)||!V(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!V(a)||!V(t),t.setContent]:d("Store type not supported by this Persister"))(c,a),$=t=>{(h&&l(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},b=async a=>(2!=E&&(E=1,A++,await I((async()=>{try{const a=await t();l(a)?$(a):d("Content is not an array "+a)}catch(t){i?.(t),a&&T(a)}E=0}))),L),R=()=>(p&&(s(p),p=void 0),L),S=async a=>(1!=E&&(E=2,g++,await I((async()=>{try{await e(N,a)}catch(a){i?.(a)}E=0}))),L),f=()=>(r(v,a.delListener),v=void 0,L),I=async(...a)=>(m(K(aa,y),...a),await(async()=>{if(!K(Z,y)){for(W(Z,y,1);!o((a=K(aa,y),u=a.shift()));)try{await u()}catch(a){i?.(a)}W(Z,y,0)}var a})(),L),L={load:b,startAutoLoad:async a=>{await R().load(a);try{p=await n((async(a,t)=>{t||a?2!=E&&(E=1,A++,$(t??a),E=0):await b()}))}catch(a){i?.(a)}return L},stopAutoLoad:R,isAutoLoading:()=>!o(p),save:S,startAutoSave:async()=>(await f().save(),v=a.addDidFinishTransactionListener((()=>{const a=C();O(a)&&S(a)})),L),stopAutoSave:f,isAutoSaving:()=>!o(v),schedule:I,getStore:()=>a,destroy:()=>(K(aa,y).splice(0,void 0),R().stopAutoSave()),getStats:()=>({loads:A,saves:g}),...w};return B(L)},ea=a=>new Set(l(a)||o(a)?a:[a]),na=(a,t)=>a?.add(t),sa=(a,t,n,s,i)=>{const r=z();return[async()=>{r.clear(),E(await n(a,t),(({tn:a,cn:t})=>na(X(r,a,ea),t)))},async(t,e)=>((a,t)=>M(K(r,a),t))(t,e)?J(g(E(await a(R+D(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!o(a)&&!V(t)))):{},async(t,n,s,c,l,w=!1)=>{const y=ea();q(s??{},(a=>E(U(a??{}),(a=>na(y,a)))));const d=P(y);if(!w&&l&&A(d)&&M(r,t))return await a("DROP "+T+D(t)),void W(r,t);const p=K(r,t),h=ea(P(p));if(A(d)||(M(r,t)?await u(E([n,...d],(async(e,s)=>{j(h,e)||(await a($+D(t)+"ADD"+D(e)+(0==s?"text":"json")),0==s&&await a("CREATE UNIQUE INDEX pk ON "+D(t)+`(${D(n)})`),na(p,e))}))):(await a("CREATE "+T+D(t)+`(${D(n)}text PRIMARY KEY${v(E(d,(a=>e+D(a)+"json")))});`),W(r,t,ea([n,...d])))),await u([...!w&&c?E(P(h),(async e=>{e!=n&&(await a($+D(t)+"DROP"+D(e)),j(p,e))})):[]]),w)o(s)?await a(b+D(t)+O+" true"):await u(q(s,(async(e,s)=>{o(e)?await a(b+D(t)+O+D(n)+"=$1",[s]):A(d)||await ia(a,t,n,U(e),[s,...G(e)],i)})));else if(A(d))M(r,t)&&await a(b+D(t)+O+" true");else{const e=g(P(K(r,t)),(a=>a!=n)),o=[],c=[];q(s??{},((a,t)=>{m(o,t,...E(e,(t=>a?.[t]))),m(c,t)})),await ia(a,t,n,e,o,i),await a(b+D(t)+O+D(n)+`NOT IN(${_(c)})`,c)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},ia=async(a,t,n,s,i,o=!0)=>await a("INSERT "+(o?"":"OR REPLACE ")+"INTO"+D(t)+"("+D(n)+v(E(s,(a=>e+D(a))))+")VALUES"+oa(i,y(s)+1)+(o?"ON CONFLICT("+D(n)+")DO UPDATE SET"+v(E(s,(a=>D(a)+"=excluded."+D(a))),e):""),E(i,(a=>a??null))),oa=(a,t)=>v(p(y(a)/t,(a=>"("+v(p(t,(e=>"$"+(a*t+e+1))),e)+")")),e),ra=(a,t,e,n,s,i,o,[r,c,l],w,y,u,d,p)=>{const[v,E,A,g]=sa(t,w,y,s,p),m=ta(a,(async()=>await g((async()=>{return await v(),a=(await E(r,c))[h]?.[l]??"null",JSON.parse(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await g((async()=>{var t;await v(),await A(r,c,{[h]:{[l]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,o,{[d]:()=>u,destroy:()=>(m.stopAutoLoad().stopAutoSave(),i(),m)},u);return m},ca=(a,t,e,n,s,i,r,[c,l,[w,y,d]],p,v,E,A,m)=>{const[C,O,T,$]=sa(t,p,v,s,m),b=async(a,t)=>await u(Q(l,(async([e,n,s,i],o)=>{t&&!(o in a)||await T(e,n,a[o],s,i,t)}))),R=async(a,t)=>y?await T(d,N,{[h]:a},!0,!0,t):null,S=ta(a,(async()=>await $((async()=>{await C();const a=await(async()=>J(g(await u(Q(c,(async([a,t],e)=>[a,await O(e,t)]))),(a=>!V(a[1])))))(),t=await(async()=>w?(await O(d,N))[h]:{})();return V(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await $((async()=>{if(await C(),o(t)){const[t,e]=a();await b(t),await R(e)}else await b(t[0],!0),await R(t[1],!0)}))),e,n,s,r,{[A]:()=>E,destroy:()=>(S.stopAutoLoad().stopAutoSave(),i(),S)},E);return S},la="ColumnName",wa="store",ya="json",ua=wa+"TableName",da=wa+"Id"+la,pa=wa+la,va="autoLoadIntervalSeconds",Ea="rowId"+la,Aa="tableId",ga="tableName",ma="deleteEmptyColumns",ha="deleteEmptyTable",Na={mode:ya,[va]:1},Ca={load:0,save:0,[ga]:t+"_values"},Oa=(a,t,e,n,s)=>{const i=z();return q(a,((a,r)=>{const l=w(G(Y(t,c(a)?{[e]:a}:a)),0,H(t));o(l[0])||n(r,l[0])||(s(r,l[0]),W(i,r,l))})),i},Ta=(a,e,n,s,o,r)=>((a,e,n,s,o,r,l,y,u,d="getDb",p)=>{let v,E,A;const[g,m,h,T]=(a=>{const e=(a=>Y(Na,c(a)?{[ua]:a}:a??{}))(a),n=e[va];if(e.mode==ya){const a=e[ua]??t;return[1,n,[a,e[da]??N,e[pa]??wa],ea(a)]}const{tables:{load:s={},save:i={}}={},values:o={}}=e,r=w(G(Y(Ca,o)),0,H(Ca)),l=r[2],y=ea(l),u=ea(l);return[0,n,[Oa(s,{[Aa]:null,[Ea]:N},Aa,(a=>M(u,a)),(a=>na(y,a))),Oa(i,{[ga]:null,[Ea]:N,[ma]:0,[ha]:0},ga,((a,t)=>M(u,t)),((a,t)=>na(y,t))),r],y]})(e);return(g?ra:ca)(a,r?async(a,t)=>(r(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const[{d:t,s:e,c:s}]=await n(C+` ${f} d,${I} s,TOTAL_CHANGES() c FROM ${S}${f} JOIN ${S}${I}`);t==(v??=t)&&e==(E??=e)&&s==(A??=s)||(a(),v=t,E=e)}catch{}},e=m,t(),setInterval(t,1e3*e)),s((t=>T.has(t)?a():0))];var t,e}),(([a,t])=>{i(a),v=E=A=null,o(t)}),l,(()=>0),y,h,P(T),(async(a,t)=>await a(`${C} t.name tn,c.name cn FROM ${L}list()t,${L}info(t.name)c ${O} t.schema='main'AND t.type IN('table','view')AND t.name IN(${_(t)})ORDER BY t.name,c.name`,t)),u,d,p)})(a,s,(async(a,t=[])=>n.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}).map((a=>({...a})))),(a=>e.capi.sqlite3_update_hook(n,((t,e,n,s)=>a(s)),0)),(()=>e.capi.sqlite3_update_hook(n,(()=>0),0)),o,r,3,n);export{Ta as createSqliteWasmPersister};
1
+ const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,i=clearInterval,o=a=>null==a,r=(a,t,e)=>o(a)?e?.():t(a),c=t=>a(t)==n,l=a=>Array.isArray(a),w=(a,t,e)=>a.slice(t,e),y=a=>a.length,u=async a=>s.all(a),d=a=>{throw Error(a)},p=(a,t)=>E(Array(a).fill(0),((a,e)=>t(e))),v=(a,t="")=>a.join(t),E=(a,t)=>a.map(t),A=a=>0==y(a),g=(a,t)=>a.filter(t),m=(a,...t)=>a.push(...t),h="_",N="_id",C="SELECT",O="WHERE",$="TABLE",T="ALTER "+$,b="DELETE FROM",R=C+"*FROM",S="pragma_",f="data_version",I="schema_version",L="pragma_table_",D=a=>`"${a.replace(/"/g,'""')}"`,_=a=>v(E(a,((a,t)=>"$"+(t+1))),e),M=(a,t)=>a?.has(t)??!1,P=a=>[...a?.values()??[]],j=(a,t)=>a?.delete(t),F=Object,x=a=>F.getPrototypeOf(a),k=F.entries,U=F.keys,B=F.freeze,J=(a=[])=>F.fromEntries(a),Y=(...a)=>F.assign({},...a),q=(a,t)=>E(k(a),(([a,e])=>t(e,a))),G=a=>F.values(a),H=a=>y(U(a)),V=a=>(a=>!o(a)&&r(x(a),(a=>a==F.prototype||o(x(a))),(()=>!0)))(a)&&0==H(a),z=a=>new Map(a),K=(a,t)=>a?.get(t),Q=(a,t)=>E([...a?.entries()??[]],(([a,e])=>t(e,a))),W=(a,t,e)=>o(e)?(j(a,t),a):a?.set(t,e),X=(a,t,e,n)=>(M(a,t)||W(a,t,e()),K(a,t)),Z=z(),aa=z(),ta=(a,t,e,n,s,i,c,w={},y=[])=>{let u,p,v,E=0,A=0,g=0;X(Z,y,(()=>0)),X(aa,y,(()=>[]));const[h,N,C,O,$]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!V(a)||!V(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!V(a)||!V(t),t.setContent]:d("Store type not supported by this Persister"))(c,a),T=t=>{(h&&l(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},b=async a=>(2!=E&&(E=1,A++,await I((async()=>{try{const a=await t();l(a)?T(a):d("Content is not an array "+a)}catch(t){i?.(t),a&&$(a)}E=0}))),L),R=()=>(p&&(s(p),p=void 0),L),S=async a=>(1!=E&&(E=2,g++,await I((async()=>{try{await e(N,a)}catch(a){i?.(a)}E=0}))),L),f=()=>(r(v,a.delListener),v=void 0,L),I=async(...a)=>(m(K(aa,y),...a),await(async()=>{if(!K(Z,y)){for(W(Z,y,1);!o((a=K(aa,y),u=a.shift()));)try{await u()}catch(a){i?.(a)}W(Z,y,0)}var a})(),L),L={load:b,startAutoLoad:async a=>{await R().load(a);try{p=await n((async(a,t)=>{t||a?2!=E&&(E=1,A++,T(t??a),E=0):await b()}))}catch(a){i?.(a)}return L},stopAutoLoad:R,isAutoLoading:()=>!o(p),save:S,startAutoSave:async()=>(await f().save(),v=a.addDidFinishTransactionListener((()=>{const a=C();O(a)&&S(a)})),L),stopAutoSave:f,isAutoSaving:()=>!o(v),schedule:I,getStore:()=>a,destroy:()=>(K(aa,y).splice(0,void 0),R().stopAutoSave()),getStats:()=>({loads:A,saves:g}),...w};return B(L)},ea=a=>new Set(l(a)||o(a)?a:[a]),na=(a,t)=>a?.add(t),sa=(a,t,n,s,i)=>{const r=z();return[async()=>{r.clear(),E(await n(a,t),(({tn:a,cn:t})=>na(X(r,a,ea),t)))},async(t,e)=>((a,t)=>M(K(r,a),t))(t,e)?J(g(E(await a(R+D(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!o(a)&&!V(t)))):{},async(t,n,s,c,l,w=!1)=>{const y=ea();q(s??{},(a=>E(U(a??{}),(a=>na(y,a)))));const d=P(y);if(!w&&l&&A(d)&&M(r,t))return await a("DROP "+$+D(t)),void W(r,t);const p=K(r,t),h=ea(P(p));if(A(d)||(M(r,t)?await u(E([n,...d],(async(e,s)=>{j(h,e)||(await a(T+D(t)+"ADD"+D(e)+(0==s?"text":"json")),0==s&&await a("CREATE UNIQUE INDEX pk ON "+D(t)+`(${D(n)})`),na(p,e))}))):(await a("CREATE "+$+D(t)+`(${D(n)}text PRIMARY KEY${v(E(d,(a=>e+D(a)+"json")))});`),W(r,t,ea([n,...d])))),await u([...!w&&c?E(P(h),(async e=>{e!=n&&(await a(T+D(t)+"DROP"+D(e)),j(p,e))})):[]]),w)o(s)?await a(b+D(t)+O+" true"):await u(q(s,(async(e,s)=>{o(e)?await a(b+D(t)+O+D(n)+"=$1",[s]):A(d)||await ia(a,t,n,U(e),[s,...G(e)],i)})));else if(A(d))M(r,t)&&await a(b+D(t)+O+" true");else{const e=g(P(K(r,t)),(a=>a!=n)),o=[],c=[];q(s??{},((a,t)=>{m(o,t,...E(e,(t=>a?.[t]))),m(c,t)})),await ia(a,t,n,e,o,i),await a(b+D(t)+O+D(n)+`NOT IN(${_(c)})`,c)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},ia=async(a,t,n,s,i,o=!0)=>await a("INSERT "+(o?"":"OR REPLACE ")+"INTO"+D(t)+"("+D(n)+v(E(s,(a=>e+D(a))))+")VALUES"+oa(i,y(s)+1)+(o?"ON CONFLICT("+D(n)+")DO UPDATE SET"+v(E(s,(a=>D(a)+"=excluded."+D(a))),e):""),E(i,(a=>a??null))),oa=(a,t)=>v(p(y(a)/t,(a=>"("+v(p(t,(e=>"$"+(a*t+e+1))),e)+")")),e),ra=(a,t,e,n,s,i,o,[r,c,l],w,y,u,d,p)=>{const[v,E,A,g]=sa(t,w,y,s,p),m=ta(a,(async()=>await g((async()=>{return await v(),a=(await E(r,c))[h]?.[l]??"null",JSON.parse(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await g((async()=>{var t;await v(),await A(r,c,{[h]:{[l]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,o,{[d]:()=>u,destroy:()=>(m.stopAutoLoad().stopAutoSave(),i(),m)},u);return m},ca=(a,t,e,n,s,i,r,[c,l,[w,y,d]],p,v,E,A,m)=>{const[C,O,$,T]=sa(t,p,v,s,m),b=async(a,t)=>await u(Q(l,(async([e,n,s,i],o)=>{t&&!(o in a)||await $(e,n,a[o],s,i,t)}))),R=async(a,t)=>y?await $(d,N,{[h]:a},!0,!0,t):null,S=ta(a,(async()=>await T((async()=>{await C();const a=await(async()=>J(g(await u(Q(c,(async([a,t],e)=>[a,await O(e,t)]))),(a=>!V(a[1])))))(),t=await(async()=>w?(await O(d,N))[h]:{})();return V(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await T((async()=>{if(await C(),o(t)){const[t,e]=a();await b(t),await R(e)}else await b(t[0],!0),await R(t[1],!0)}))),e,n,s,r,{[A]:()=>E,destroy:()=>(S.stopAutoLoad().stopAutoSave(),i(),S)},E);return S},la="ColumnName",wa="store",ya="json",ua=wa+"TableName",da=wa+"Id"+la,pa=wa+la,va="autoLoadIntervalSeconds",Ea="rowId"+la,Aa="tableId",ga="tableName",ma="deleteEmptyColumns",ha="deleteEmptyTable",Na={mode:ya,[va]:1},Ca={load:0,save:0,[ga]:t+"_values"},Oa=(a,t,e,n,s)=>{const i=z();return q(a,((a,r)=>{const l=w(G(Y(t,c(a)?{[e]:a}:a)),0,H(t));o(l[0])||n(r,l[0])||(s(r,l[0]),W(i,r,l))})),i},$a=(a,e,n,s,o,r,l,y,u,d="getDb",p)=>{let v,E,A;const g=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(n,r),[m,h,$,T]=(a=>{const e=(a=>Y(Na,c(a)?{[ua]:a}:a??{}))(a),n=e[va];if(e.mode==ya){const a=e[ua]??t;return[1,n,[a,e[da]??N,e[pa]??wa],ea(a)]}const{tables:{load:s={},save:i={}}={},values:o={}}=e,r=w(G(Y(Ca,o)),0,H(Ca)),l=r[2],y=ea(l),u=ea(l);return[0,n,[Oa(s,{[Aa]:null,[Ea]:N},Aa,(a=>M(u,a)),(a=>na(y,a))),Oa(i,{[ga]:null,[Ea]:N,[ma]:0,[ha]:0},ga,((a,t)=>M(u,t)),((a,t)=>na(y,t))),r],y]})(e);return(m?ra:ca)(a,g,(a=>{let t;const e=()=>t=setInterval((async()=>{try{const[{d:t,s:e,c:n}]=await g(`${C} ${f} d,${I} s,TOTAL_CHANGES() c FROM ${S}${f} JOIN ${S}${I}`);t==v&&e==E&&n==A||(null!=v&&a(),v=t,E=e,A=n)}catch{}}),1e3*h),n=()=>{v=E=A=null,i(t)},r=s((t=>{T.has(t)&&(n(),a(),e())}));return e(),()=>{n(),o(r)}}),(a=>a()),l,(()=>0),y,$,P(T),(async(a,t)=>await a(`${C} t.name tn,c.name cn FROM ${L}list()t,${L}info(t.name)c ${O} t.schema='main'AND t.type IN('table','view')AND t.name IN(${_(t)})ORDER BY t.name,c.name`,t)),u,d,p)},Ta=(a,t,e,n,s,i)=>$a(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,3,e);export{Ta as createSqliteWasmPersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,i=clearInterval,o=a=>null==a,r=(a,t,e)=>o(a)?e?.():t(a),c=t=>a(t)==n,l=a=>Array.isArray(a),w=(a,t,e)=>a.slice(t,e),y=a=>a.length,u=async a=>s.all(a),d=a=>{throw Error(a)},p=(a,t)=>E(Array(a).fill(0),((a,e)=>t(e))),v=(a,t="")=>a.join(t),E=(a,t)=>a.map(t),A=a=>0==y(a),g=(a,t)=>a.filter(t),m=(a,...t)=>a.push(...t),h="_",N="_id",C="SELECT",O="WHERE",T="TABLE",$="ALTER "+T,b="DELETE FROM",R=C+"*FROM",S="pragma_",f="data_version",I="schema_version",L="pragma_table_",D=a=>`"${a.replace(/"/g,'""')}"`,_=a=>v(E(a,((a,t)=>"$"+(t+1))),e),M=(a,t)=>a?.has(t)??!1,P=a=>[...a?.values()??[]],j=(a,t)=>a?.delete(t),F=Object,x=a=>F.getPrototypeOf(a),k=F.entries,U=F.keys,B=F.freeze,J=(a=[])=>F.fromEntries(a),Y=(...a)=>F.assign({},...a),q=(a,t)=>E(k(a),(([a,e])=>t(e,a))),G=a=>F.values(a),H=a=>y(U(a)),V=a=>(a=>!o(a)&&r(x(a),(a=>a==F.prototype||o(x(a))),(()=>!0)))(a)&&0==H(a),z=a=>new Map(a),K=(a,t)=>a?.get(t),Q=(a,t)=>E([...a?.entries()??[]],(([a,e])=>t(e,a))),W=(a,t,e)=>o(e)?(j(a,t),a):a?.set(t,e),X=(a,t,e,n)=>(M(a,t)||W(a,t,e()),K(a,t)),Z=z(),aa=z(),ta=(a,t,e,n,s,i,c,w={},y=[])=>{let u,p,v,E=0,A=0,g=0;X(Z,y,(()=>0)),X(aa,y,(()=>[]));const[h,N,C,O,T]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!V(a)||!V(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!V(a)||!V(t),t.setContent]:d("Store type not supported by this Persister"))(c,a),$=t=>{(h&&l(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},b=async a=>(2!=E&&(E=1,A++,await I((async()=>{try{const a=await t();l(a)?$(a):d("Content is not an array "+a)}catch(t){i?.(t),a&&T(a)}E=0}))),L),R=()=>(p&&(s(p),p=void 0),L),S=async a=>(1!=E&&(E=2,g++,await I((async()=>{try{await e(N,a)}catch(a){i?.(a)}E=0}))),L),f=()=>(r(v,a.delListener),v=void 0,L),I=async(...a)=>(m(K(aa,y),...a),await(async()=>{if(!K(Z,y)){for(W(Z,y,1);!o((a=K(aa,y),u=a.shift()));)try{await u()}catch(a){i?.(a)}W(Z,y,0)}var a})(),L),L={load:b,startAutoLoad:async a=>{await R().load(a);try{p=await n((async(a,t)=>{t||a?2!=E&&(E=1,A++,$(t??a),E=0):await b()}))}catch(a){i?.(a)}return L},stopAutoLoad:R,isAutoLoading:()=>!o(p),save:S,startAutoSave:async()=>(await f().save(),v=a.addDidFinishTransactionListener((()=>{const a=C();O(a)&&S(a)})),L),stopAutoSave:f,isAutoSaving:()=>!o(v),schedule:I,getStore:()=>a,destroy:()=>(K(aa,y).splice(0,void 0),R().stopAutoSave()),getStats:()=>({loads:A,saves:g}),...w};return B(L)},ea=a=>new Set(l(a)||o(a)?a:[a]),na=(a,t)=>a?.add(t),sa=(a,t,n,s,i)=>{const r=z();return[async()=>{r.clear(),E(await n(a,t),(({tn:a,cn:t})=>na(X(r,a,ea),t)))},async(t,e)=>((a,t)=>M(K(r,a),t))(t,e)?J(g(E(await a(R+D(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!o(a)&&!V(t)))):{},async(t,n,s,c,l,w=!1)=>{const y=ea();q(s??{},(a=>E(U(a??{}),(a=>na(y,a)))));const d=P(y);if(!w&&l&&A(d)&&M(r,t))return await a("DROP "+T+D(t)),void W(r,t);const p=K(r,t),h=ea(P(p));if(A(d)||(M(r,t)?await u(E([n,...d],(async(e,s)=>{j(h,e)||(await a($+D(t)+"ADD"+D(e)+(0==s?"text":"json")),0==s&&await a("CREATE UNIQUE INDEX pk ON "+D(t)+`(${D(n)})`),na(p,e))}))):(await a("CREATE "+T+D(t)+`(${D(n)}text PRIMARY KEY${v(E(d,(a=>e+D(a)+"json")))});`),W(r,t,ea([n,...d])))),await u([...!w&&c?E(P(h),(async e=>{e!=n&&(await a($+D(t)+"DROP"+D(e)),j(p,e))})):[]]),w)o(s)?await a(b+D(t)+O+" true"):await u(q(s,(async(e,s)=>{o(e)?await a(b+D(t)+O+D(n)+"=$1",[s]):A(d)||await ia(a,t,n,U(e),[s,...G(e)],i)})));else if(A(d))M(r,t)&&await a(b+D(t)+O+" true");else{const e=g(P(K(r,t)),(a=>a!=n)),o=[],c=[];q(s??{},((a,t)=>{m(o,t,...E(e,(t=>a?.[t]))),m(c,t)})),await ia(a,t,n,e,o,i),await a(b+D(t)+O+D(n)+`NOT IN(${_(c)})`,c)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},ia=async(a,t,n,s,i,o=!0)=>await a("INSERT "+(o?"":"OR REPLACE ")+"INTO"+D(t)+"("+D(n)+v(E(s,(a=>e+D(a))))+")VALUES"+oa(i,y(s)+1)+(o?"ON CONFLICT("+D(n)+")DO UPDATE SET"+v(E(s,(a=>D(a)+"=excluded."+D(a))),e):""),E(i,(a=>a??null))),oa=(a,t)=>v(p(y(a)/t,(a=>"("+v(p(t,(e=>"$"+(a*t+e+1))),e)+")")),e),ra=(a,t,e,n,s,i,o,[r,c,l],w,y,u,d,p)=>{const[v,E,A,g]=sa(t,w,y,s,p),m=ta(a,(async()=>await g((async()=>{return await v(),a=(await E(r,c))[h]?.[l]??"null",JSON.parse(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await g((async()=>{var t;await v(),await A(r,c,{[h]:{[l]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,o,{[d]:()=>u,destroy:()=>(m.stopAutoLoad().stopAutoSave(),i(),m)},u);return m},ca=(a,t,e,n,s,i,r,[c,l,[w,y,d]],p,v,E,A,m)=>{const[C,O,T,$]=sa(t,p,v,s,m),b=async(a,t)=>await u(Q(l,(async([e,n,s,i],o)=>{t&&!(o in a)||await T(e,n,a[o],s,i,t)}))),R=async(a,t)=>y?await T(d,N,{[h]:a},!0,!0,t):null,S=ta(a,(async()=>await $((async()=>{await C();const a=await(async()=>J(g(await u(Q(c,(async([a,t],e)=>[a,await O(e,t)]))),(a=>!V(a[1])))))(),t=await(async()=>w?(await O(d,N))[h]:{})();return V(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await $((async()=>{if(await C(),o(t)){const[t,e]=a();await b(t),await R(e)}else await b(t[0],!0),await R(t[1],!0)}))),e,n,s,r,{[A]:()=>E,destroy:()=>(S.stopAutoLoad().stopAutoSave(),i(),S)},E);return S},la="ColumnName",wa="store",ya="json",ua=wa+"TableName",da=wa+"Id"+la,pa=wa+la,va="autoLoadIntervalSeconds",Ea="rowId"+la,Aa="tableId",ga="tableName",ma="deleteEmptyColumns",ha="deleteEmptyTable",Na={mode:ya,[va]:1},Ca={load:0,save:0,[ga]:t+"_values"},Oa=(a,t,e,n,s)=>{const i=z();return q(a,((a,r)=>{const l=w(G(Y(t,c(a)?{[e]:a}:a)),0,H(t));o(l[0])||n(r,l[0])||(s(r,l[0]),W(i,r,l))})),i},Ta=(a,e,n,s,o,r)=>((a,e,n,s,o,r,l,y,u,d="getDb",p)=>{let v,E,A;const[g,m,h,T]=(a=>{const e=(a=>Y(Na,c(a)?{[ua]:a}:a??{}))(a),n=e[va];if(e.mode==ya){const a=e[ua]??t;return[1,n,[a,e[da]??N,e[pa]??wa],ea(a)]}const{tables:{load:s={},save:i={}}={},values:o={}}=e,r=w(G(Y(Ca,o)),0,H(Ca)),l=r[2],y=ea(l),u=ea(l);return[0,n,[Oa(s,{[Aa]:null,[Ea]:N},Aa,(a=>M(u,a)),(a=>na(y,a))),Oa(i,{[ga]:null,[Ea]:N,[ma]:0,[ha]:0},ga,((a,t)=>M(u,t)),((a,t)=>na(y,t))),r],y]})(e);return(g?ra:ca)(a,r?async(a,t)=>(r(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const[{d:t,s:e,c:s}]=await n(C+` ${f} d,${I} s,TOTAL_CHANGES() c FROM ${S}${f} JOIN ${S}${I}`);t==(v??=t)&&e==(E??=e)&&s==(A??=s)||(a(),v=t,E=e)}catch{}},e=m,t(),setInterval(t,1e3*e)),s((t=>T.has(t)?a():0))];var t,e}),(([a,t])=>{i(a),v=E=A=null,o(t)}),l,(()=>0),y,h,P(T),(async(a,t)=>await a(`${C} t.name tn,c.name cn FROM ${L}list()t,${L}info(t.name)c ${O} t.schema='main'AND t.type IN('table','view')AND t.name IN(${_(t)})ORDER BY t.name,c.name`,t)),u,d,p)})(a,s,(async(a,t=[])=>n.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}).map((a=>({...a})))),(a=>e.capi.sqlite3_update_hook(n,((t,e,n,s)=>a(s)),0)),(()=>e.capi.sqlite3_update_hook(n,(()=>0),0)),o,r,3,n);export{Ta as createSqliteWasmPersister};
1
+ const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,i=clearInterval,o=a=>null==a,r=(a,t,e)=>o(a)?e?.():t(a),c=t=>a(t)==n,l=a=>Array.isArray(a),w=(a,t,e)=>a.slice(t,e),y=a=>a.length,u=async a=>s.all(a),d=a=>{throw Error(a)},p=(a,t)=>E(Array(a).fill(0),((a,e)=>t(e))),v=(a,t="")=>a.join(t),E=(a,t)=>a.map(t),A=a=>0==y(a),g=(a,t)=>a.filter(t),m=(a,...t)=>a.push(...t),h="_",N="_id",C="SELECT",O="WHERE",$="TABLE",T="ALTER "+$,b="DELETE FROM",R=C+"*FROM",S="pragma_",f="data_version",I="schema_version",L="pragma_table_",D=a=>`"${a.replace(/"/g,'""')}"`,_=a=>v(E(a,((a,t)=>"$"+(t+1))),e),M=(a,t)=>a?.has(t)??!1,P=a=>[...a?.values()??[]],j=(a,t)=>a?.delete(t),F=Object,x=a=>F.getPrototypeOf(a),k=F.entries,U=F.keys,B=F.freeze,J=(a=[])=>F.fromEntries(a),Y=(...a)=>F.assign({},...a),q=(a,t)=>E(k(a),(([a,e])=>t(e,a))),G=a=>F.values(a),H=a=>y(U(a)),V=a=>(a=>!o(a)&&r(x(a),(a=>a==F.prototype||o(x(a))),(()=>!0)))(a)&&0==H(a),z=a=>new Map(a),K=(a,t)=>a?.get(t),Q=(a,t)=>E([...a?.entries()??[]],(([a,e])=>t(e,a))),W=(a,t,e)=>o(e)?(j(a,t),a):a?.set(t,e),X=(a,t,e,n)=>(M(a,t)||W(a,t,e()),K(a,t)),Z=z(),aa=z(),ta=(a,t,e,n,s,i,c,w={},y=[])=>{let u,p,v,E=0,A=0,g=0;X(Z,y,(()=>0)),X(aa,y,(()=>[]));const[h,N,C,O,$]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!V(a)||!V(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!V(a)||!V(t),t.setContent]:d("Store type not supported by this Persister"))(c,a),T=t=>{(h&&l(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},b=async a=>(2!=E&&(E=1,A++,await I((async()=>{try{const a=await t();l(a)?T(a):d("Content is not an array "+a)}catch(t){i?.(t),a&&$(a)}E=0}))),L),R=()=>(p&&(s(p),p=void 0),L),S=async a=>(1!=E&&(E=2,g++,await I((async()=>{try{await e(N,a)}catch(a){i?.(a)}E=0}))),L),f=()=>(r(v,a.delListener),v=void 0,L),I=async(...a)=>(m(K(aa,y),...a),await(async()=>{if(!K(Z,y)){for(W(Z,y,1);!o((a=K(aa,y),u=a.shift()));)try{await u()}catch(a){i?.(a)}W(Z,y,0)}var a})(),L),L={load:b,startAutoLoad:async a=>{await R().load(a);try{p=await n((async(a,t)=>{t||a?2!=E&&(E=1,A++,T(t??a),E=0):await b()}))}catch(a){i?.(a)}return L},stopAutoLoad:R,isAutoLoading:()=>!o(p),save:S,startAutoSave:async()=>(await f().save(),v=a.addDidFinishTransactionListener((()=>{const a=C();O(a)&&S(a)})),L),stopAutoSave:f,isAutoSaving:()=>!o(v),schedule:I,getStore:()=>a,destroy:()=>(K(aa,y).splice(0,void 0),R().stopAutoSave()),getStats:()=>({loads:A,saves:g}),...w};return B(L)},ea=a=>new Set(l(a)||o(a)?a:[a]),na=(a,t)=>a?.add(t),sa=(a,t,n,s,i)=>{const r=z();return[async()=>{r.clear(),E(await n(a,t),(({tn:a,cn:t})=>na(X(r,a,ea),t)))},async(t,e)=>((a,t)=>M(K(r,a),t))(t,e)?J(g(E(await a(R+D(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!o(a)&&!V(t)))):{},async(t,n,s,c,l,w=!1)=>{const y=ea();q(s??{},(a=>E(U(a??{}),(a=>na(y,a)))));const d=P(y);if(!w&&l&&A(d)&&M(r,t))return await a("DROP "+$+D(t)),void W(r,t);const p=K(r,t),h=ea(P(p));if(A(d)||(M(r,t)?await u(E([n,...d],(async(e,s)=>{j(h,e)||(await a(T+D(t)+"ADD"+D(e)+(0==s?"text":"json")),0==s&&await a("CREATE UNIQUE INDEX pk ON "+D(t)+`(${D(n)})`),na(p,e))}))):(await a("CREATE "+$+D(t)+`(${D(n)}text PRIMARY KEY${v(E(d,(a=>e+D(a)+"json")))});`),W(r,t,ea([n,...d])))),await u([...!w&&c?E(P(h),(async e=>{e!=n&&(await a(T+D(t)+"DROP"+D(e)),j(p,e))})):[]]),w)o(s)?await a(b+D(t)+O+" true"):await u(q(s,(async(e,s)=>{o(e)?await a(b+D(t)+O+D(n)+"=$1",[s]):A(d)||await ia(a,t,n,U(e),[s,...G(e)],i)})));else if(A(d))M(r,t)&&await a(b+D(t)+O+" true");else{const e=g(P(K(r,t)),(a=>a!=n)),o=[],c=[];q(s??{},((a,t)=>{m(o,t,...E(e,(t=>a?.[t]))),m(c,t)})),await ia(a,t,n,e,o,i),await a(b+D(t)+O+D(n)+`NOT IN(${_(c)})`,c)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},ia=async(a,t,n,s,i,o=!0)=>await a("INSERT "+(o?"":"OR REPLACE ")+"INTO"+D(t)+"("+D(n)+v(E(s,(a=>e+D(a))))+")VALUES"+oa(i,y(s)+1)+(o?"ON CONFLICT("+D(n)+")DO UPDATE SET"+v(E(s,(a=>D(a)+"=excluded."+D(a))),e):""),E(i,(a=>a??null))),oa=(a,t)=>v(p(y(a)/t,(a=>"("+v(p(t,(e=>"$"+(a*t+e+1))),e)+")")),e),ra=(a,t,e,n,s,i,o,[r,c,l],w,y,u,d,p)=>{const[v,E,A,g]=sa(t,w,y,s,p),m=ta(a,(async()=>await g((async()=>{return await v(),a=(await E(r,c))[h]?.[l]??"null",JSON.parse(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await g((async()=>{var t;await v(),await A(r,c,{[h]:{[l]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,o,{[d]:()=>u,destroy:()=>(m.stopAutoLoad().stopAutoSave(),i(),m)},u);return m},ca=(a,t,e,n,s,i,r,[c,l,[w,y,d]],p,v,E,A,m)=>{const[C,O,$,T]=sa(t,p,v,s,m),b=async(a,t)=>await u(Q(l,(async([e,n,s,i],o)=>{t&&!(o in a)||await $(e,n,a[o],s,i,t)}))),R=async(a,t)=>y?await $(d,N,{[h]:a},!0,!0,t):null,S=ta(a,(async()=>await T((async()=>{await C();const a=await(async()=>J(g(await u(Q(c,(async([a,t],e)=>[a,await O(e,t)]))),(a=>!V(a[1])))))(),t=await(async()=>w?(await O(d,N))[h]:{})();return V(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await T((async()=>{if(await C(),o(t)){const[t,e]=a();await b(t),await R(e)}else await b(t[0],!0),await R(t[1],!0)}))),e,n,s,r,{[A]:()=>E,destroy:()=>(S.stopAutoLoad().stopAutoSave(),i(),S)},E);return S},la="ColumnName",wa="store",ya="json",ua=wa+"TableName",da=wa+"Id"+la,pa=wa+la,va="autoLoadIntervalSeconds",Ea="rowId"+la,Aa="tableId",ga="tableName",ma="deleteEmptyColumns",ha="deleteEmptyTable",Na={mode:ya,[va]:1},Ca={load:0,save:0,[ga]:t+"_values"},Oa=(a,t,e,n,s)=>{const i=z();return q(a,((a,r)=>{const l=w(G(Y(t,c(a)?{[e]:a}:a)),0,H(t));o(l[0])||n(r,l[0])||(s(r,l[0]),W(i,r,l))})),i},$a=(a,e,n,s,o,r,l,y,u,d="getDb",p)=>{let v,E,A;const g=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(n,r),[m,h,$,T]=(a=>{const e=(a=>Y(Na,c(a)?{[ua]:a}:a??{}))(a),n=e[va];if(e.mode==ya){const a=e[ua]??t;return[1,n,[a,e[da]??N,e[pa]??wa],ea(a)]}const{tables:{load:s={},save:i={}}={},values:o={}}=e,r=w(G(Y(Ca,o)),0,H(Ca)),l=r[2],y=ea(l),u=ea(l);return[0,n,[Oa(s,{[Aa]:null,[Ea]:N},Aa,(a=>M(u,a)),(a=>na(y,a))),Oa(i,{[ga]:null,[Ea]:N,[ma]:0,[ha]:0},ga,((a,t)=>M(u,t)),((a,t)=>na(y,t))),r],y]})(e);return(m?ra:ca)(a,g,(a=>{let t;const e=()=>t=setInterval((async()=>{try{const[{d:t,s:e,c:n}]=await g(`${C} ${f} d,${I} s,TOTAL_CHANGES() c FROM ${S}${f} JOIN ${S}${I}`);t==v&&e==E&&n==A||(null!=v&&a(),v=t,E=e,A=n)}catch{}}),1e3*h),n=()=>{v=E=A=null,i(t)},r=s((t=>{T.has(t)&&(n(),a(),e())}));return e(),()=>{n(),o(r)}}),(a=>a()),l,(()=>0),y,$,P(T),(async(a,t)=>await a(`${C} t.name tn,c.name cn FROM ${L}list()t,${L}info(t.name)c ${O} t.schema='main'AND t.type IN('table','view')AND t.name IN(${_(t)})ORDER BY t.name,c.name`,t)),u,d,p)},Ta=(a,t,e,n,s,i)=>$a(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,3,e);export{Ta as createSqliteWasmPersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,i=clearInterval,r=a=>null==a,o=(a,t,e)=>r(a)?e?.():t(a),c=t=>a(t)==n,l=a=>Array.isArray(a),w=(a,t,e)=>a.slice(t,e),y=a=>a.length,u=async a=>s.all(a),d=a=>{throw Error(a)},v=(a,t)=>E(Array(a).fill(0),((a,e)=>t(e))),p=(a,t="")=>a.join(t),E=(a,t)=>a.map(t),g=a=>0==y(a),A=(a,t)=>a.filter(t),m=(a,...t)=>a.push(...t),h="_",N="_id",C="SELECT",O="WHERE",f="TABLE",T="ALTER "+f,$="DELETE FROM",S=C+"*FROM",I="pragma_",R="data_version",b="schema_version",L="pragma_table_",D=a=>`"${a.replace(/"/g,'""')}"`,M=a=>p(E(a,((a,t)=>"$"+(t+1))),e),_=(a,t)=>a?.has(t)??!1,P=a=>[...a?.values()??[]],F=(a,t)=>a?.delete(t),j=Object,x=a=>j.getPrototypeOf(a),U=j.entries,B=j.keys,J=j.freeze,Y=(a=[])=>j.fromEntries(a),k=(...a)=>j.assign({},...a),G=(a,t)=>E(U(a),(([a,e])=>t(e,a))),H=a=>j.values(a),z=a=>y(B(a)),K=a=>(a=>!r(a)&&o(x(a),(a=>a==j.prototype||r(x(a))),(()=>!0)))(a)&&0==z(a),Q=a=>new Map(a),V=(a,t)=>a?.get(t),W=(a,t)=>E([...a?.entries()??[]],(([a,e])=>t(e,a))),X=(a,t,e)=>r(e)?(F(a,t),a):a?.set(t,e),q=(a,t,e,n)=>(_(a,t)||X(a,t,e()),V(a,t)),Z=Q(),aa=Q(),ta=(a,t,e,n,s,i,c,w={},y=[])=>{let u,v,p,E=0,g=0,A=0;q(Z,y,(()=>0)),q(aa,y,(()=>[]));const[h,N,C,O,f]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!K(a)||!K(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!K(a)||!K(t),t.setContent]:d("Store type not supported by this Persister"))(c,a),T=t=>{(h&&l(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},$=async a=>(2!=E&&(E=1,g++,await b((async()=>{try{const a=await t();l(a)?T(a):d("Content is not an array "+a)}catch(t){i?.(t),a&&f(a)}E=0}))),L),S=()=>(v&&(s(v),v=void 0),L),I=async a=>(1!=E&&(E=2,A++,await b((async()=>{try{await e(N,a)}catch(a){i?.(a)}E=0}))),L),R=()=>(o(p,a.delListener),p=void 0,L),b=async(...a)=>(m(V(aa,y),...a),await(async()=>{if(!V(Z,y)){for(X(Z,y,1);!r((a=V(aa,y),u=a.shift()));)try{await u()}catch(a){i?.(a)}X(Z,y,0)}var a})(),L),L={load:$,startAutoLoad:async a=>{await S().load(a);try{v=await n((async(a,t)=>{t||a?2!=E&&(E=1,g++,T(t??a),E=0):await $()}))}catch(a){i?.(a)}return L},stopAutoLoad:S,isAutoLoading:()=>!r(v),save:I,startAutoSave:async()=>(await R().save(),p=a.addDidFinishTransactionListener((()=>{const a=C();O(a)&&I(a)})),L),stopAutoSave:R,isAutoSaving:()=>!r(p),schedule:b,getStore:()=>a,destroy:()=>(V(aa,y).splice(0,void 0),S().stopAutoSave()),getStats:()=>({loads:g,saves:A}),...w};return J(L)},ea=a=>new Set(l(a)||r(a)?a:[a]),na=(a,t)=>a?.add(t),sa=(a,t,n,s,i)=>{const o=Q();return[async()=>{o.clear(),E(await n(a,t),(({tn:a,cn:t})=>na(q(o,a,ea),t)))},async(t,e)=>((a,t)=>_(V(o,a),t))(t,e)?Y(A(E(await a(S+D(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!r(a)&&!K(t)))):{},async(t,n,s,c,l,w=!1)=>{const y=ea();G(s??{},(a=>E(B(a??{}),(a=>na(y,a)))));const d=P(y);if(!w&&l&&g(d)&&_(o,t))return await a("DROP "+f+D(t)),void X(o,t);const v=V(o,t),h=ea(P(v));if(g(d)||(_(o,t)?await u(E([n,...d],(async(e,s)=>{F(h,e)||(await a(T+D(t)+"ADD"+D(e)+(0==s?"text":"json")),0==s&&await a("CREATE UNIQUE INDEX pk ON "+D(t)+`(${D(n)})`),na(v,e))}))):(await a("CREATE "+f+D(t)+`(${D(n)}text PRIMARY KEY${p(E(d,(a=>e+D(a)+"json")))});`),X(o,t,ea([n,...d])))),await u([...!w&&c?E(P(h),(async e=>{e!=n&&(await a(T+D(t)+"DROP"+D(e)),F(v,e))})):[]]),w)r(s)?await a($+D(t)+O+" true"):await u(G(s,(async(e,s)=>{r(e)?await a($+D(t)+O+D(n)+"=$1",[s]):g(d)||await ia(a,t,n,B(e),[s,...H(e)],i)})));else if(g(d))_(o,t)&&await a($+D(t)+O+" true");else{const e=A(P(V(o,t)),(a=>a!=n)),r=[],c=[];G(s??{},((a,t)=>{m(r,t,...E(e,(t=>a?.[t]))),m(c,t)})),await ia(a,t,n,e,r,i),await a($+D(t)+O+D(n)+`NOT IN(${M(c)})`,c)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},ia=async(a,t,n,s,i,r=!0)=>await a("INSERT "+(r?"":"OR REPLACE ")+"INTO"+D(t)+"("+D(n)+p(E(s,(a=>e+D(a))))+")VALUES"+ra(i,y(s)+1)+(r?"ON CONFLICT("+D(n)+")DO UPDATE SET"+p(E(s,(a=>D(a)+"=excluded."+D(a))),e):""),E(i,(a=>a??null))),ra=(a,t)=>p(v(y(a)/t,(a=>"("+p(v(t,(e=>"$"+(a*t+e+1))),e)+")")),e),oa=(a,t,e,n,s,i,r,[o,c,l],w,y,u,d,v)=>{const[p,E,g,A]=sa(t,w,y,s,v),m=ta(a,(async()=>await A((async()=>{return await p(),a=(await E(o,c))[h]?.[l]??"null",JSON.parse(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await A((async()=>{var t;await p(),await g(o,c,{[h]:{[l]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,r,{[d]:()=>u,destroy:()=>(m.stopAutoLoad().stopAutoSave(),i(),m)},u);return m},ca=(a,t,e,n,s,i,o,[c,l,[w,y,d]],v,p,E,g,m)=>{const[C,O,f,T]=sa(t,v,p,s,m),$=async(a,t)=>await u(W(l,(async([e,n,s,i],r)=>{t&&!(r in a)||await f(e,n,a[r],s,i,t)}))),S=async(a,t)=>y?await f(d,N,{[h]:a},!0,!0,t):null,I=ta(a,(async()=>await T((async()=>{await C();const a=await(async()=>Y(A(await u(W(c,(async([a,t],e)=>[a,await O(e,t)]))),(a=>!K(a[1])))))(),t=await(async()=>w?(await O(d,N))[h]:{})();return K(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await T((async()=>{if(await C(),r(t)){const[t,e]=a();await $(t),await S(e)}else await $(t[0],!0),await S(t[1],!0)}))),e,n,s,o,{[g]:()=>E,destroy:()=>(I.stopAutoLoad().stopAutoSave(),i(),I)},E);return I},la="ColumnName",wa="store",ya="json",ua=wa+"TableName",da=wa+"Id"+la,va=wa+la,pa="autoLoadIntervalSeconds",Ea="rowId"+la,ga="tableId",Aa="tableName",ma="deleteEmptyColumns",ha="deleteEmptyTable",Na={mode:ya,[pa]:1},Ca={load:0,save:0,[Aa]:t+"_values"},Oa=(a,t,e,n,s)=>{const i=Q();return G(a,((a,o)=>{const l=w(H(k(t,c(a)?{[e]:a}:a)),0,z(t));r(l[0])||n(o,l[0])||(s(o,l[0]),X(i,o,l))})),i},fa="change",Ta=(a,e,n,r,o)=>((a,e,n,s,r,o,l,y,u,d="getDb",v)=>{let p,E,g;const[A,m,h,f]=(a=>{const e=(a=>k(Na,c(a)?{[ua]:a}:a??{}))(a),n=e[pa];if(e.mode==ya){const a=e[ua]??t;return[1,n,[a,e[da]??N,e[va]??wa],ea(a)]}const{tables:{load:s={},save:i={}}={},values:r={}}=e,o=w(H(k(Ca,r)),0,z(Ca)),l=o[2],y=ea(l),u=ea(l);return[0,n,[Oa(s,{[ga]:null,[Ea]:N},ga,(a=>_(u,a)),(a=>na(y,a))),Oa(i,{[Aa]:null,[Ea]:N,[ma]:0,[ha]:0},Aa,((a,t)=>_(u,t)),((a,t)=>na(y,t))),o],y]})(e);return(A?oa:ca)(a,o?async(a,t)=>(o(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const[{d:t,s:e,c:s}]=await n(C+` ${R} d,${b} s,TOTAL_CHANGES() c FROM ${I}${R} JOIN ${I}${b}`);t==(p??=t)&&e==(E??=e)&&s==(g??=s)||(a(),p=t,E=e)}catch{}},e=m,t(),setInterval(t,1e3*e)),s((t=>f.has(t)?a():0))];var t,e}),(([a,t])=>{i(a),p=E=g=null,r(t)}),l,(()=>0),y,h,P(f),(async(a,t)=>await a(`${C} t.name tn,c.name cn FROM ${L}list()t,${L}info(t.name)c ${O} t.schema='main'AND t.type IN('table','view')AND t.name IN(${M(t)})ORDER BY t.name,c.name`,t)),u,d,v)})(a,n,(async(a,t=[])=>{return await(n=(n,s)=>e.all(a,t,((a,t)=>a?s(a):n(t))),new s(n));var n}),(a=>{const t=(t,e,n)=>a(n);return e.on(fa,t),t}),(a=>e.off(fa,a)),r,o,3,e);export{Ta as createSqlite3Persister};
1
+ const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,i=clearInterval,o=a=>null==a,r=(a,t,e)=>o(a)?e?.():t(a),c=t=>a(t)==n,l=a=>Array.isArray(a),w=(a,t,e)=>a.slice(t,e),y=a=>a.length,u=async a=>s.all(a),d=a=>{throw Error(a)},v=(a,t)=>E(Array(a).fill(0),((a,e)=>t(e))),p=(a,t="")=>a.join(t),E=(a,t)=>a.map(t),g=a=>0==y(a),A=(a,t)=>a.filter(t),m=(a,...t)=>a.push(...t),h="_",N="_id",C="SELECT",O="WHERE",$="TABLE",f="ALTER "+$,T="DELETE FROM",S=C+"*FROM",I="pragma_",R="data_version",b="schema_version",L="pragma_table_",D=a=>`"${a.replace(/"/g,'""')}"`,M=a=>p(E(a,((a,t)=>"$"+(t+1))),e),_=(a,t)=>a?.has(t)??!1,P=a=>[...a?.values()??[]],F=(a,t)=>a?.delete(t),j=Object,x=a=>j.getPrototypeOf(a),U=j.entries,B=j.keys,J=j.freeze,Y=(a=[])=>j.fromEntries(a),k=(...a)=>j.assign({},...a),G=(a,t)=>E(U(a),(([a,e])=>t(e,a))),H=a=>j.values(a),z=a=>y(B(a)),K=a=>(a=>!o(a)&&r(x(a),(a=>a==j.prototype||o(x(a))),(()=>!0)))(a)&&0==z(a),Q=a=>new Map(a),V=(a,t)=>a?.get(t),W=(a,t)=>E([...a?.entries()??[]],(([a,e])=>t(e,a))),X=(a,t,e)=>o(e)?(F(a,t),a):a?.set(t,e),q=(a,t,e,n)=>(_(a,t)||X(a,t,e()),V(a,t)),Z=Q(),aa=Q(),ta=(a,t,e,n,s,i,c,w={},y=[])=>{let u,v,p,E=0,g=0,A=0;q(Z,y,(()=>0)),q(aa,y,(()=>[]));const[h,N,C,O,$]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!K(a)||!K(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!K(a)||!K(t),t.setContent]:d("Store type not supported by this Persister"))(c,a),f=t=>{(h&&l(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},T=async a=>(2!=E&&(E=1,g++,await b((async()=>{try{const a=await t();l(a)?f(a):d("Content is not an array "+a)}catch(t){i?.(t),a&&$(a)}E=0}))),L),S=()=>(v&&(s(v),v=void 0),L),I=async a=>(1!=E&&(E=2,A++,await b((async()=>{try{await e(N,a)}catch(a){i?.(a)}E=0}))),L),R=()=>(r(p,a.delListener),p=void 0,L),b=async(...a)=>(m(V(aa,y),...a),await(async()=>{if(!V(Z,y)){for(X(Z,y,1);!o((a=V(aa,y),u=a.shift()));)try{await u()}catch(a){i?.(a)}X(Z,y,0)}var a})(),L),L={load:T,startAutoLoad:async a=>{await S().load(a);try{v=await n((async(a,t)=>{t||a?2!=E&&(E=1,g++,f(t??a),E=0):await T()}))}catch(a){i?.(a)}return L},stopAutoLoad:S,isAutoLoading:()=>!o(v),save:I,startAutoSave:async()=>(await R().save(),p=a.addDidFinishTransactionListener((()=>{const a=C();O(a)&&I(a)})),L),stopAutoSave:R,isAutoSaving:()=>!o(p),schedule:b,getStore:()=>a,destroy:()=>(V(aa,y).splice(0,void 0),S().stopAutoSave()),getStats:()=>({loads:g,saves:A}),...w};return J(L)},ea=a=>new Set(l(a)||o(a)?a:[a]),na=(a,t)=>a?.add(t),sa=(a,t,n,s,i)=>{const r=Q();return[async()=>{r.clear(),E(await n(a,t),(({tn:a,cn:t})=>na(q(r,a,ea),t)))},async(t,e)=>((a,t)=>_(V(r,a),t))(t,e)?Y(A(E(await a(S+D(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!o(a)&&!K(t)))):{},async(t,n,s,c,l,w=!1)=>{const y=ea();G(s??{},(a=>E(B(a??{}),(a=>na(y,a)))));const d=P(y);if(!w&&l&&g(d)&&_(r,t))return await a("DROP "+$+D(t)),void X(r,t);const v=V(r,t),h=ea(P(v));if(g(d)||(_(r,t)?await u(E([n,...d],(async(e,s)=>{F(h,e)||(await a(f+D(t)+"ADD"+D(e)+(0==s?"text":"json")),0==s&&await a("CREATE UNIQUE INDEX pk ON "+D(t)+`(${D(n)})`),na(v,e))}))):(await a("CREATE "+$+D(t)+`(${D(n)}text PRIMARY KEY${p(E(d,(a=>e+D(a)+"json")))});`),X(r,t,ea([n,...d])))),await u([...!w&&c?E(P(h),(async e=>{e!=n&&(await a(f+D(t)+"DROP"+D(e)),F(v,e))})):[]]),w)o(s)?await a(T+D(t)+O+" true"):await u(G(s,(async(e,s)=>{o(e)?await a(T+D(t)+O+D(n)+"=$1",[s]):g(d)||await ia(a,t,n,B(e),[s,...H(e)],i)})));else if(g(d))_(r,t)&&await a(T+D(t)+O+" true");else{const e=A(P(V(r,t)),(a=>a!=n)),o=[],c=[];G(s??{},((a,t)=>{m(o,t,...E(e,(t=>a?.[t]))),m(c,t)})),await ia(a,t,n,e,o,i),await a(T+D(t)+O+D(n)+`NOT IN(${M(c)})`,c)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},ia=async(a,t,n,s,i,o=!0)=>await a("INSERT "+(o?"":"OR REPLACE ")+"INTO"+D(t)+"("+D(n)+p(E(s,(a=>e+D(a))))+")VALUES"+oa(i,y(s)+1)+(o?"ON CONFLICT("+D(n)+")DO UPDATE SET"+p(E(s,(a=>D(a)+"=excluded."+D(a))),e):""),E(i,(a=>a??null))),oa=(a,t)=>p(v(y(a)/t,(a=>"("+p(v(t,(e=>"$"+(a*t+e+1))),e)+")")),e),ra=(a,t,e,n,s,i,o,[r,c,l],w,y,u,d,v)=>{const[p,E,g,A]=sa(t,w,y,s,v),m=ta(a,(async()=>await A((async()=>{return await p(),a=(await E(r,c))[h]?.[l]??"null",JSON.parse(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await A((async()=>{var t;await p(),await g(r,c,{[h]:{[l]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,o,{[d]:()=>u,destroy:()=>(m.stopAutoLoad().stopAutoSave(),i(),m)},u);return m},ca=(a,t,e,n,s,i,r,[c,l,[w,y,d]],v,p,E,g,m)=>{const[C,O,$,f]=sa(t,v,p,s,m),T=async(a,t)=>await u(W(l,(async([e,n,s,i],o)=>{t&&!(o in a)||await $(e,n,a[o],s,i,t)}))),S=async(a,t)=>y?await $(d,N,{[h]:a},!0,!0,t):null,I=ta(a,(async()=>await f((async()=>{await C();const a=await(async()=>Y(A(await u(W(c,(async([a,t],e)=>[a,await O(e,t)]))),(a=>!K(a[1])))))(),t=await(async()=>w?(await O(d,N))[h]:{})();return K(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await f((async()=>{if(await C(),o(t)){const[t,e]=a();await T(t),await S(e)}else await T(t[0],!0),await S(t[1],!0)}))),e,n,s,r,{[g]:()=>E,destroy:()=>(I.stopAutoLoad().stopAutoSave(),i(),I)},E);return I},la="ColumnName",wa="store",ya="json",ua=wa+"TableName",da=wa+"Id"+la,va=wa+la,pa="autoLoadIntervalSeconds",Ea="rowId"+la,ga="tableId",Aa="tableName",ma="deleteEmptyColumns",ha="deleteEmptyTable",Na={mode:ya,[pa]:1},Ca={load:0,save:0,[Aa]:t+"_values"},Oa=(a,t,e,n,s)=>{const i=Q();return G(a,((a,r)=>{const l=w(H(k(t,c(a)?{[e]:a}:a)),0,z(t));o(l[0])||n(r,l[0])||(s(r,l[0]),X(i,r,l))})),i},$a=(a,e,n,s,o,r,l,y,u,d="getDb",v)=>{let p,E,g;const A=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(n,r),[m,h,$,f]=(a=>{const e=(a=>k(Na,c(a)?{[ua]:a}:a??{}))(a),n=e[pa];if(e.mode==ya){const a=e[ua]??t;return[1,n,[a,e[da]??N,e[va]??wa],ea(a)]}const{tables:{load:s={},save:i={}}={},values:o={}}=e,r=w(H(k(Ca,o)),0,z(Ca)),l=r[2],y=ea(l),u=ea(l);return[0,n,[Oa(s,{[ga]:null,[Ea]:N},ga,(a=>_(u,a)),(a=>na(y,a))),Oa(i,{[Aa]:null,[Ea]:N,[ma]:0,[ha]:0},Aa,((a,t)=>_(u,t)),((a,t)=>na(y,t))),r],y]})(e);return(m?ra:ca)(a,A,(a=>{let t;const e=()=>t=setInterval((async()=>{try{const[{d:t,s:e,c:n}]=await A(`${C} ${R} d,${b} s,TOTAL_CHANGES() c FROM ${I}${R} JOIN ${I}${b}`);t==p&&e==E&&n==g||(null!=p&&a(),p=t,E=e,g=n)}catch{}}),1e3*h),n=()=>{p=E=g=null,i(t)},r=s((t=>{f.has(t)&&(n(),a(),e())}));return e(),()=>{n(),o(r)}}),(a=>a()),l,(()=>0),y,$,P(f),(async(a,t)=>await a(`${C} t.name tn,c.name cn FROM ${L}list()t,${L}info(t.name)c ${O} t.schema='main'AND t.type IN('table','view')AND t.name IN(${M(t)})ORDER BY t.name,c.name`,t)),u,d,v)},fa="change",Ta=(a,t,e,n,i)=>$a(a,e,(async(a,e=[])=>{return await(n=(n,s)=>t.all(a,e,((a,t)=>a?s(a):n(t))),new s(n));var n}),(a=>{const e=(t,e,n)=>a(n);return t.on(fa,e),e}),(a=>t.off(fa,a)),n,i,3,t);export{Ta as createSqlite3Persister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,i=clearInterval,r=a=>null==a,o=(a,t,e)=>r(a)?e?.():t(a),c=t=>a(t)==n,l=a=>Array.isArray(a),w=(a,t,e)=>a.slice(t,e),y=a=>a.length,u=async a=>s.all(a),d=a=>{throw Error(a)},v=(a,t)=>E(Array(a).fill(0),((a,e)=>t(e))),p=(a,t="")=>a.join(t),E=(a,t)=>a.map(t),g=a=>0==y(a),A=(a,t)=>a.filter(t),m=(a,...t)=>a.push(...t),h="_",N="_id",C="SELECT",O="WHERE",f="TABLE",T="ALTER "+f,$="DELETE FROM",S=C+"*FROM",I="pragma_",R="data_version",b="schema_version",L="pragma_table_",D=a=>`"${a.replace(/"/g,'""')}"`,M=a=>p(E(a,((a,t)=>"$"+(t+1))),e),_=(a,t)=>a?.has(t)??!1,P=a=>[...a?.values()??[]],F=(a,t)=>a?.delete(t),j=Object,x=a=>j.getPrototypeOf(a),U=j.entries,B=j.keys,J=j.freeze,Y=(a=[])=>j.fromEntries(a),k=(...a)=>j.assign({},...a),G=(a,t)=>E(U(a),(([a,e])=>t(e,a))),H=a=>j.values(a),z=a=>y(B(a)),K=a=>(a=>!r(a)&&o(x(a),(a=>a==j.prototype||r(x(a))),(()=>!0)))(a)&&0==z(a),Q=a=>new Map(a),V=(a,t)=>a?.get(t),W=(a,t)=>E([...a?.entries()??[]],(([a,e])=>t(e,a))),X=(a,t,e)=>r(e)?(F(a,t),a):a?.set(t,e),q=(a,t,e,n)=>(_(a,t)||X(a,t,e()),V(a,t)),Z=Q(),aa=Q(),ta=(a,t,e,n,s,i,c,w={},y=[])=>{let u,v,p,E=0,g=0,A=0;q(Z,y,(()=>0)),q(aa,y,(()=>[]));const[h,N,C,O,f]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!K(a)||!K(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!K(a)||!K(t),t.setContent]:d("Store type not supported by this Persister"))(c,a),T=t=>{(h&&l(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},$=async a=>(2!=E&&(E=1,g++,await b((async()=>{try{const a=await t();l(a)?T(a):d("Content is not an array "+a)}catch(t){i?.(t),a&&f(a)}E=0}))),L),S=()=>(v&&(s(v),v=void 0),L),I=async a=>(1!=E&&(E=2,A++,await b((async()=>{try{await e(N,a)}catch(a){i?.(a)}E=0}))),L),R=()=>(o(p,a.delListener),p=void 0,L),b=async(...a)=>(m(V(aa,y),...a),await(async()=>{if(!V(Z,y)){for(X(Z,y,1);!r((a=V(aa,y),u=a.shift()));)try{await u()}catch(a){i?.(a)}X(Z,y,0)}var a})(),L),L={load:$,startAutoLoad:async a=>{await S().load(a);try{v=await n((async(a,t)=>{t||a?2!=E&&(E=1,g++,T(t??a),E=0):await $()}))}catch(a){i?.(a)}return L},stopAutoLoad:S,isAutoLoading:()=>!r(v),save:I,startAutoSave:async()=>(await R().save(),p=a.addDidFinishTransactionListener((()=>{const a=C();O(a)&&I(a)})),L),stopAutoSave:R,isAutoSaving:()=>!r(p),schedule:b,getStore:()=>a,destroy:()=>(V(aa,y).splice(0,void 0),S().stopAutoSave()),getStats:()=>({loads:g,saves:A}),...w};return J(L)},ea=a=>new Set(l(a)||r(a)?a:[a]),na=(a,t)=>a?.add(t),sa=(a,t,n,s,i)=>{const o=Q();return[async()=>{o.clear(),E(await n(a,t),(({tn:a,cn:t})=>na(q(o,a,ea),t)))},async(t,e)=>((a,t)=>_(V(o,a),t))(t,e)?Y(A(E(await a(S+D(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!r(a)&&!K(t)))):{},async(t,n,s,c,l,w=!1)=>{const y=ea();G(s??{},(a=>E(B(a??{}),(a=>na(y,a)))));const d=P(y);if(!w&&l&&g(d)&&_(o,t))return await a("DROP "+f+D(t)),void X(o,t);const v=V(o,t),h=ea(P(v));if(g(d)||(_(o,t)?await u(E([n,...d],(async(e,s)=>{F(h,e)||(await a(T+D(t)+"ADD"+D(e)+(0==s?"text":"json")),0==s&&await a("CREATE UNIQUE INDEX pk ON "+D(t)+`(${D(n)})`),na(v,e))}))):(await a("CREATE "+f+D(t)+`(${D(n)}text PRIMARY KEY${p(E(d,(a=>e+D(a)+"json")))});`),X(o,t,ea([n,...d])))),await u([...!w&&c?E(P(h),(async e=>{e!=n&&(await a(T+D(t)+"DROP"+D(e)),F(v,e))})):[]]),w)r(s)?await a($+D(t)+O+" true"):await u(G(s,(async(e,s)=>{r(e)?await a($+D(t)+O+D(n)+"=$1",[s]):g(d)||await ia(a,t,n,B(e),[s,...H(e)],i)})));else if(g(d))_(o,t)&&await a($+D(t)+O+" true");else{const e=A(P(V(o,t)),(a=>a!=n)),r=[],c=[];G(s??{},((a,t)=>{m(r,t,...E(e,(t=>a?.[t]))),m(c,t)})),await ia(a,t,n,e,r,i),await a($+D(t)+O+D(n)+`NOT IN(${M(c)})`,c)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},ia=async(a,t,n,s,i,r=!0)=>await a("INSERT "+(r?"":"OR REPLACE ")+"INTO"+D(t)+"("+D(n)+p(E(s,(a=>e+D(a))))+")VALUES"+ra(i,y(s)+1)+(r?"ON CONFLICT("+D(n)+")DO UPDATE SET"+p(E(s,(a=>D(a)+"=excluded."+D(a))),e):""),E(i,(a=>a??null))),ra=(a,t)=>p(v(y(a)/t,(a=>"("+p(v(t,(e=>"$"+(a*t+e+1))),e)+")")),e),oa=(a,t,e,n,s,i,r,[o,c,l],w,y,u,d,v)=>{const[p,E,g,A]=sa(t,w,y,s,v),m=ta(a,(async()=>await A((async()=>{return await p(),a=(await E(o,c))[h]?.[l]??"null",JSON.parse(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await A((async()=>{var t;await p(),await g(o,c,{[h]:{[l]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,r,{[d]:()=>u,destroy:()=>(m.stopAutoLoad().stopAutoSave(),i(),m)},u);return m},ca=(a,t,e,n,s,i,o,[c,l,[w,y,d]],v,p,E,g,m)=>{const[C,O,f,T]=sa(t,v,p,s,m),$=async(a,t)=>await u(W(l,(async([e,n,s,i],r)=>{t&&!(r in a)||await f(e,n,a[r],s,i,t)}))),S=async(a,t)=>y?await f(d,N,{[h]:a},!0,!0,t):null,I=ta(a,(async()=>await T((async()=>{await C();const a=await(async()=>Y(A(await u(W(c,(async([a,t],e)=>[a,await O(e,t)]))),(a=>!K(a[1])))))(),t=await(async()=>w?(await O(d,N))[h]:{})();return K(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await T((async()=>{if(await C(),r(t)){const[t,e]=a();await $(t),await S(e)}else await $(t[0],!0),await S(t[1],!0)}))),e,n,s,o,{[g]:()=>E,destroy:()=>(I.stopAutoLoad().stopAutoSave(),i(),I)},E);return I},la="ColumnName",wa="store",ya="json",ua=wa+"TableName",da=wa+"Id"+la,va=wa+la,pa="autoLoadIntervalSeconds",Ea="rowId"+la,ga="tableId",Aa="tableName",ma="deleteEmptyColumns",ha="deleteEmptyTable",Na={mode:ya,[pa]:1},Ca={load:0,save:0,[Aa]:t+"_values"},Oa=(a,t,e,n,s)=>{const i=Q();return G(a,((a,o)=>{const l=w(H(k(t,c(a)?{[e]:a}:a)),0,z(t));r(l[0])||n(o,l[0])||(s(o,l[0]),X(i,o,l))})),i},fa="change",Ta=(a,e,n,r,o)=>((a,e,n,s,r,o,l,y,u,d="getDb",v)=>{let p,E,g;const[A,m,h,f]=(a=>{const e=(a=>k(Na,c(a)?{[ua]:a}:a??{}))(a),n=e[pa];if(e.mode==ya){const a=e[ua]??t;return[1,n,[a,e[da]??N,e[va]??wa],ea(a)]}const{tables:{load:s={},save:i={}}={},values:r={}}=e,o=w(H(k(Ca,r)),0,z(Ca)),l=o[2],y=ea(l),u=ea(l);return[0,n,[Oa(s,{[ga]:null,[Ea]:N},ga,(a=>_(u,a)),(a=>na(y,a))),Oa(i,{[Aa]:null,[Ea]:N,[ma]:0,[ha]:0},Aa,((a,t)=>_(u,t)),((a,t)=>na(y,t))),o],y]})(e);return(A?oa:ca)(a,o?async(a,t)=>(o(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const[{d:t,s:e,c:s}]=await n(C+` ${R} d,${b} s,TOTAL_CHANGES() c FROM ${I}${R} JOIN ${I}${b}`);t==(p??=t)&&e==(E??=e)&&s==(g??=s)||(a(),p=t,E=e)}catch{}},e=m,t(),setInterval(t,1e3*e)),s((t=>f.has(t)?a():0))];var t,e}),(([a,t])=>{i(a),p=E=g=null,r(t)}),l,(()=>0),y,h,P(f),(async(a,t)=>await a(`${C} t.name tn,c.name cn FROM ${L}list()t,${L}info(t.name)c ${O} t.schema='main'AND t.type IN('table','view')AND t.name IN(${M(t)})ORDER BY t.name,c.name`,t)),u,d,v)})(a,n,(async(a,t=[])=>{return await(n=(n,s)=>e.all(a,t,((a,t)=>a?s(a):n(t))),new s(n));var n}),(a=>{const t=(t,e,n)=>a(n);return e.on(fa,t),t}),(a=>e.off(fa,a)),r,o,3,e);export{Ta as createSqlite3Persister};
1
+ const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,i=clearInterval,o=a=>null==a,r=(a,t,e)=>o(a)?e?.():t(a),c=t=>a(t)==n,l=a=>Array.isArray(a),w=(a,t,e)=>a.slice(t,e),y=a=>a.length,u=async a=>s.all(a),d=a=>{throw Error(a)},v=(a,t)=>E(Array(a).fill(0),((a,e)=>t(e))),p=(a,t="")=>a.join(t),E=(a,t)=>a.map(t),g=a=>0==y(a),A=(a,t)=>a.filter(t),m=(a,...t)=>a.push(...t),h="_",N="_id",C="SELECT",O="WHERE",$="TABLE",f="ALTER "+$,T="DELETE FROM",S=C+"*FROM",I="pragma_",R="data_version",b="schema_version",L="pragma_table_",D=a=>`"${a.replace(/"/g,'""')}"`,M=a=>p(E(a,((a,t)=>"$"+(t+1))),e),_=(a,t)=>a?.has(t)??!1,P=a=>[...a?.values()??[]],F=(a,t)=>a?.delete(t),j=Object,x=a=>j.getPrototypeOf(a),U=j.entries,B=j.keys,J=j.freeze,Y=(a=[])=>j.fromEntries(a),k=(...a)=>j.assign({},...a),G=(a,t)=>E(U(a),(([a,e])=>t(e,a))),H=a=>j.values(a),z=a=>y(B(a)),K=a=>(a=>!o(a)&&r(x(a),(a=>a==j.prototype||o(x(a))),(()=>!0)))(a)&&0==z(a),Q=a=>new Map(a),V=(a,t)=>a?.get(t),W=(a,t)=>E([...a?.entries()??[]],(([a,e])=>t(e,a))),X=(a,t,e)=>o(e)?(F(a,t),a):a?.set(t,e),q=(a,t,e,n)=>(_(a,t)||X(a,t,e()),V(a,t)),Z=Q(),aa=Q(),ta=(a,t,e,n,s,i,c,w={},y=[])=>{let u,v,p,E=0,g=0,A=0;q(Z,y,(()=>0)),q(aa,y,(()=>[]));const[h,N,C,O,$]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!K(a)||!K(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!K(a)||!K(t),t.setContent]:d("Store type not supported by this Persister"))(c,a),f=t=>{(h&&l(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},T=async a=>(2!=E&&(E=1,g++,await b((async()=>{try{const a=await t();l(a)?f(a):d("Content is not an array "+a)}catch(t){i?.(t),a&&$(a)}E=0}))),L),S=()=>(v&&(s(v),v=void 0),L),I=async a=>(1!=E&&(E=2,A++,await b((async()=>{try{await e(N,a)}catch(a){i?.(a)}E=0}))),L),R=()=>(r(p,a.delListener),p=void 0,L),b=async(...a)=>(m(V(aa,y),...a),await(async()=>{if(!V(Z,y)){for(X(Z,y,1);!o((a=V(aa,y),u=a.shift()));)try{await u()}catch(a){i?.(a)}X(Z,y,0)}var a})(),L),L={load:T,startAutoLoad:async a=>{await S().load(a);try{v=await n((async(a,t)=>{t||a?2!=E&&(E=1,g++,f(t??a),E=0):await T()}))}catch(a){i?.(a)}return L},stopAutoLoad:S,isAutoLoading:()=>!o(v),save:I,startAutoSave:async()=>(await R().save(),p=a.addDidFinishTransactionListener((()=>{const a=C();O(a)&&I(a)})),L),stopAutoSave:R,isAutoSaving:()=>!o(p),schedule:b,getStore:()=>a,destroy:()=>(V(aa,y).splice(0,void 0),S().stopAutoSave()),getStats:()=>({loads:g,saves:A}),...w};return J(L)},ea=a=>new Set(l(a)||o(a)?a:[a]),na=(a,t)=>a?.add(t),sa=(a,t,n,s,i)=>{const r=Q();return[async()=>{r.clear(),E(await n(a,t),(({tn:a,cn:t})=>na(q(r,a,ea),t)))},async(t,e)=>((a,t)=>_(V(r,a),t))(t,e)?Y(A(E(await a(S+D(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!o(a)&&!K(t)))):{},async(t,n,s,c,l,w=!1)=>{const y=ea();G(s??{},(a=>E(B(a??{}),(a=>na(y,a)))));const d=P(y);if(!w&&l&&g(d)&&_(r,t))return await a("DROP "+$+D(t)),void X(r,t);const v=V(r,t),h=ea(P(v));if(g(d)||(_(r,t)?await u(E([n,...d],(async(e,s)=>{F(h,e)||(await a(f+D(t)+"ADD"+D(e)+(0==s?"text":"json")),0==s&&await a("CREATE UNIQUE INDEX pk ON "+D(t)+`(${D(n)})`),na(v,e))}))):(await a("CREATE "+$+D(t)+`(${D(n)}text PRIMARY KEY${p(E(d,(a=>e+D(a)+"json")))});`),X(r,t,ea([n,...d])))),await u([...!w&&c?E(P(h),(async e=>{e!=n&&(await a(f+D(t)+"DROP"+D(e)),F(v,e))})):[]]),w)o(s)?await a(T+D(t)+O+" true"):await u(G(s,(async(e,s)=>{o(e)?await a(T+D(t)+O+D(n)+"=$1",[s]):g(d)||await ia(a,t,n,B(e),[s,...H(e)],i)})));else if(g(d))_(r,t)&&await a(T+D(t)+O+" true");else{const e=A(P(V(r,t)),(a=>a!=n)),o=[],c=[];G(s??{},((a,t)=>{m(o,t,...E(e,(t=>a?.[t]))),m(c,t)})),await ia(a,t,n,e,o,i),await a(T+D(t)+O+D(n)+`NOT IN(${M(c)})`,c)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},ia=async(a,t,n,s,i,o=!0)=>await a("INSERT "+(o?"":"OR REPLACE ")+"INTO"+D(t)+"("+D(n)+p(E(s,(a=>e+D(a))))+")VALUES"+oa(i,y(s)+1)+(o?"ON CONFLICT("+D(n)+")DO UPDATE SET"+p(E(s,(a=>D(a)+"=excluded."+D(a))),e):""),E(i,(a=>a??null))),oa=(a,t)=>p(v(y(a)/t,(a=>"("+p(v(t,(e=>"$"+(a*t+e+1))),e)+")")),e),ra=(a,t,e,n,s,i,o,[r,c,l],w,y,u,d,v)=>{const[p,E,g,A]=sa(t,w,y,s,v),m=ta(a,(async()=>await A((async()=>{return await p(),a=(await E(r,c))[h]?.[l]??"null",JSON.parse(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await A((async()=>{var t;await p(),await g(r,c,{[h]:{[l]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,o,{[d]:()=>u,destroy:()=>(m.stopAutoLoad().stopAutoSave(),i(),m)},u);return m},ca=(a,t,e,n,s,i,r,[c,l,[w,y,d]],v,p,E,g,m)=>{const[C,O,$,f]=sa(t,v,p,s,m),T=async(a,t)=>await u(W(l,(async([e,n,s,i],o)=>{t&&!(o in a)||await $(e,n,a[o],s,i,t)}))),S=async(a,t)=>y?await $(d,N,{[h]:a},!0,!0,t):null,I=ta(a,(async()=>await f((async()=>{await C();const a=await(async()=>Y(A(await u(W(c,(async([a,t],e)=>[a,await O(e,t)]))),(a=>!K(a[1])))))(),t=await(async()=>w?(await O(d,N))[h]:{})();return K(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await f((async()=>{if(await C(),o(t)){const[t,e]=a();await T(t),await S(e)}else await T(t[0],!0),await S(t[1],!0)}))),e,n,s,r,{[g]:()=>E,destroy:()=>(I.stopAutoLoad().stopAutoSave(),i(),I)},E);return I},la="ColumnName",wa="store",ya="json",ua=wa+"TableName",da=wa+"Id"+la,va=wa+la,pa="autoLoadIntervalSeconds",Ea="rowId"+la,ga="tableId",Aa="tableName",ma="deleteEmptyColumns",ha="deleteEmptyTable",Na={mode:ya,[pa]:1},Ca={load:0,save:0,[Aa]:t+"_values"},Oa=(a,t,e,n,s)=>{const i=Q();return G(a,((a,r)=>{const l=w(H(k(t,c(a)?{[e]:a}:a)),0,z(t));o(l[0])||n(r,l[0])||(s(r,l[0]),X(i,r,l))})),i},$a=(a,e,n,s,o,r,l,y,u,d="getDb",v)=>{let p,E,g;const A=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(n,r),[m,h,$,f]=(a=>{const e=(a=>k(Na,c(a)?{[ua]:a}:a??{}))(a),n=e[pa];if(e.mode==ya){const a=e[ua]??t;return[1,n,[a,e[da]??N,e[va]??wa],ea(a)]}const{tables:{load:s={},save:i={}}={},values:o={}}=e,r=w(H(k(Ca,o)),0,z(Ca)),l=r[2],y=ea(l),u=ea(l);return[0,n,[Oa(s,{[ga]:null,[Ea]:N},ga,(a=>_(u,a)),(a=>na(y,a))),Oa(i,{[Aa]:null,[Ea]:N,[ma]:0,[ha]:0},Aa,((a,t)=>_(u,t)),((a,t)=>na(y,t))),r],y]})(e);return(m?ra:ca)(a,A,(a=>{let t;const e=()=>t=setInterval((async()=>{try{const[{d:t,s:e,c:n}]=await A(`${C} ${R} d,${b} s,TOTAL_CHANGES() c FROM ${I}${R} JOIN ${I}${b}`);t==p&&e==E&&n==g||(null!=p&&a(),p=t,E=e,g=n)}catch{}}),1e3*h),n=()=>{p=E=g=null,i(t)},r=s((t=>{f.has(t)&&(n(),a(),e())}));return e(),()=>{n(),o(r)}}),(a=>a()),l,(()=>0),y,$,P(f),(async(a,t)=>await a(`${C} t.name tn,c.name cn FROM ${L}list()t,${L}info(t.name)c ${O} t.schema='main'AND t.type IN('table','view')AND t.name IN(${M(t)})ORDER BY t.name,c.name`,t)),u,d,v)},fa="change",Ta=(a,t,e,n,i)=>$a(a,e,(async(a,e=[])=>{return await(n=(n,s)=>t.all(a,e,((a,t)=>a?s(a):n(t))),new s(n));var n}),(a=>{const e=(t,e,n)=>a(n);return t.on(fa,e),e}),(a=>t.off(fa,a)),n,i,3,t);export{Ta as createSqlite3Persister};
@@ -1 +1 @@
1
- const e=e=>typeof e,t="",s=e(t),a=e(!0),l=e(0),n=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",V=C+"s",w=C+i,S=e=>t+e,I=isFinite,p=e=>null==e,y=(e,t,s)=>p(e)?s?.():t(e),R=e=>e==s||e==a,m=t=>e(t)==n,L=e=>Array.isArray(e),J=(e,t,s)=>e.slice(t,s),E=e=>e.length,F=(e,t)=>e.forEach(t),O=(e,t)=>e.map(t),z=(e,...t)=>e.push(...t),M=Object,P=e=>M.getPrototypeOf(e),k=M.entries,A=M.isFrozen,N=e=>!p(e)&&y(P(e),(e=>e==M.prototype||p(P(e))),(()=>!0)),j=M.keys,x=M.freeze,D=(e,t)=>t in e,H=(e,t)=>(delete e[t],e),W=(e,t)=>O(k(e),(([e,s])=>t(s,e))),q=e=>N(e)&&0==(e=>E(j(e)))(e),B=(e,t,s,a=0)=>p(e)||!N(e)||!a&&q(e)||A(e)?(s?.(),!1):(W(e,((s,a)=>{t(s,a)||H(e,a)})),!!a||!q(e)),G=e=>t=>{return s=(t,s)=>t+e(s),$(t).reduce(s,0);var s},K=e=>e?.size??0,Q=G(K),U=G(Q),X=G(U),Y=(e,t)=>e?.has(t)??!1,Z=e=>p(e)||0==K(e),$=e=>[...e?.values()??[]],_=e=>e.clear(),ee=(e,t)=>e?.forEach(t),te=(e,t)=>e?.delete(t),se=e=>new Map(e),ae=e=>[...e?.keys()??[]],le=(e,t)=>e?.get(t),ne=(e,t)=>ee(e,((e,s)=>t(s,e))),oe=(e,t,s)=>p(s)?(te(e,t),e):e?.set(t,s),re=(e,t,s,a)=>(Y(e,t)?a?.(le(e,t)):oe(e,t,s()),le(e,t)),ce=(e,t,s,a=oe)=>(W(t,((t,a)=>s(e,a,t))),ne(e,(s=>D(t,s)?0:a(e,s))),e),ie=(e,t,s,a)=>{const l={};return ee(e,((e,n)=>{if(!s?.(e,n)){const s=t?t(e,n):e;!a?.(s)&&(l[n]=s)}})),l},de=(e,t,s)=>ie(e,(e=>ie(e,t,s)),Z,q),ue=(e,t,s)=>ie(e,(e=>de(e,t,s)),Z,q),he=(e,t)=>{const s=se();return ee(e,((e,a)=>s.set(a,t?.(e)??e))),s},fe=e=>he(e,he),ge=e=>he(e,fe),Te=(e,t,s,a,l=0)=>y((s?re:le)(e,t[l],l>E(t)-2?s:se),(n=>{if(l>E(t)-2)return a?.(n)&&oe(e,t[l]),n;const o=Te(n,t,s,a,l+1);return Z(n)&&oe(e,t[l]),o})),be=e=>new Set(L(e)||p(e)?e:[e]),ve=(e,t)=>e?.add(t),Ce=/^\d+$/,Ve=()=>{const e=[];let s=0;return[a=>(a?e.shift():null)??t+s++,t=>{Ce.test(t)&&E(e)<1e3&&z(e,t)}]},we=e=>[e,e],Se=(e,t=Q)=>t(e[0])+t(e[1]),Ie=()=>[se(),se()],pe=e=>[...e],ye=([e,t])=>e===t,Re=t=>{const s=e(t);return R(s)||s==l&&I(t)?s:void 0},me=(e,t,s,a,l)=>p(l)?e.delCell(t,s,a,!0):e.setCell(t,s,a,l),Le=(e,t,s)=>p(s)?e.delValue(t):e.setValue(t,s),Je=e=>JSON.stringify(e,((e,t)=>t instanceof Map?M.fromEntries([...t]):t)),Ee=JSON.parse;se(O("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".split(t),((e,t)=>[e,t])));const Fe=(e,t,s)=>oe(e,t,le(e,t)==-s?void 0:s),Oe=()=>{let e,s,a=!1,n=!1,i=0,I=[];const M=se(),P=se(),k=se(),A=se(),N=se(),j=se(),G=se(),$=se(),Ce=se(),ze=se(),Me=se(),Pe=se(),ke=se(),Ae=se(),Ne=be(),je=se(),xe=se(),De=se(),He=se(),We=Ie(),qe=Ie(),Be=Ie(),Ge=Ie(),Ke=Ie(),Qe=Ie(),Ue=Ie(),Xe=Ie(),Ye=Ie(),Ze=Ie(),$e=Ie(),_e=Ie(),et=Ie(),tt=Ie(),st=Ie(),at=Ie(),lt=Ie(),nt=Ie(),ot=Ie(),rt=Ie(),ct=Ie(),it=Ie(),dt=se(),ut=Ie(),[ht,ft,gt,Tt]=(()=>{let e;const[s,a]=Ve(),l=se();return[(a,n,o,r=[],c=()=>[])=>{e??=As;const i=s(1);return oe(l,i,[a,n,o,r,c]),ve(Te(n,o??[t],be),i),i},(s,a,...n)=>F(((e,s=[t])=>{const a=[],l=(e,t)=>t==E(s)?z(a,e):null===s[t]?ee(e,(e=>l(e,t+1))):F([s[t],null],(s=>l(le(e,s),t+1)));return l(e,0),a})(s,a),(t=>ee(t,(t=>le(l,t)[0](e,...a??[],...n))))),e=>y(le(l,e),(([,s,n])=>(Te(s,n??[t],void 0,(t=>(te(t,e),Z(t)?1:0))),oe(l,e),a(e),n))),t=>y(le(l,t),(([t,,s=[],a,l])=>{const n=(...o)=>{const r=E(o);r==E(s)?t(e,...o,...l(o)):p(s[r])?F(a[r]?.(...o)??[],(e=>n(...o,e))):n(...o,s[r])};n()}))]})(),bt=e=>{if(!B(e,((e,t)=>[o,r].includes(t))))return!1;const t=e[o];return!(!R(t)&&t!=l||(Re(e[r])!=t&&H(e,r),0))},vt=L,Ct=(t,s)=>(!e||Y(Me,s)||Ut(s))&&B(t,((e,t)=>Vt(s,t,e)),(()=>Ut(s))),Vt=(e,t,s,a)=>B(a?s:pt(s,e,t),((a,l)=>y(wt(e,t,l,a),(e=>(s[l]=e,!0)),(()=>!1))),(()=>Ut(e,t))),wt=(t,s,a,l)=>e?y(le(le(Me,t),a),(e=>Re(l)!=e[o]?Ut(t,s,a,l,e[r]):l),(()=>Ut(t,s,a,l))):p(Re(l))?Ut(t,s,a,l):l,St=(e,t)=>B(t?e:yt(e),((t,s)=>y(It(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>Xt())),It=(e,t)=>s?y(le(ke,e),(s=>Re(t)!=s[o]?Xt(e,t,s[r]):t),(()=>Xt(e,t))):p(Re(t))?Xt(e,t):t,pt=(e,t,s)=>(y(le(Pe,t),(([a,l])=>{ee(a,((t,s)=>{D(e,s)||(e[s]=t)})),ee(l,(a=>{D(e,a)||Ut(t,s,a)}))})),e),yt=e=>(s&&(ee(Ae,((t,s)=>{D(e,s)||(e[s]=t)})),ee(Ne,(t=>{D(e,t)||Xt(t)}))),e),Rt=e=>ce(Me,e,((e,t,s)=>{const a=se(),l=be();ce(re(Me,t,se),s,((e,t,s)=>{oe(e,t,s),y(s[r],(e=>oe(a,t,e)),(()=>ve(l,t)))})),oe(Pe,t,[a,l])}),((e,t)=>{oe(Me,t),oe(Pe,t)})),mt=e=>ce(ke,e,((e,t,s)=>{oe(ke,t,s),y(s[r],(e=>oe(Ae,t,e)),(()=>ve(Ne,t)))}),((e,t)=>{oe(ke,t),oe(Ae,t),te(Ne,t)})),Lt=e=>q(e)?Ls():Is(e),Jt=e=>ce(De,e,((e,t,s)=>Et(t,s)),((e,t)=>jt(t))),Et=(e,t)=>ce(re(De,e,(()=>(Wt(e,1),oe(je,e,Ve()),oe(xe,e,se()),se()))),t,((t,s,a)=>Ft(e,t,s,a)),((t,s)=>xt(e,t,s))),Ft=(e,t,s,a,l)=>ce(re(t,s,(()=>(qt(e,s,1),se()))),a,((t,a,l)=>Ot(e,s,t,a,l)),((a,n)=>Dt(e,t,s,a,n,l))),Ot=(e,t,s,a,l)=>{Y(s,a)||Bt(e,t,a,1);const n=le(s,a);l!==n&&(Gt(e,t,a,n,l),oe(s,a,l))},zt=(e,t,s,a,l)=>y(le(t,s),(t=>Ot(e,s,t,a,l)),(()=>Ft(e,t,s,pt({[a]:l},e,s)))),Mt=e=>q(e)?Fs():ps(e),Pt=e=>ce(He,e,((e,t,s)=>kt(t,s)),((e,t)=>Ht(t))),kt=(e,t)=>{Y(He,e)||Kt(e,1);const s=le(He,e);t!==s&&(Qt(e,s,t),oe(He,e,t))},At=(e,t)=>{const[s]=le(je,e),a=s(t);return Y(le(De,e),a)?At(e,t):a},Nt=e=>le(De,e)??Et(e,{}),jt=e=>Et(e,{}),xt=(e,t,s)=>{const[,a]=le(je,e);a(s),Ft(e,t,s,{},!0)},Dt=(e,t,s,a,l,n)=>{const o=le(le(Pe,e)?.[0],l);if(!p(o)&&!n)return Ot(e,s,a,l,o);const r=t=>{Gt(e,s,t,le(a,t)),Bt(e,s,t,-1),oe(a,t)};p(o)?r(l):ne(a,r),Z(a)&&(qt(e,s,-1),Z(oe(t,s))&&(Wt(e,-1),oe(De,e),oe(je,e),oe(xe,e)))},Ht=e=>{const t=le(Ae,e);if(!p(t))return kt(e,t);Qt(e,le(He,e)),Kt(e,-1),oe(He,e)},Wt=(e,t)=>Fe(M,e,t),qt=(e,t,s)=>Fe(re(A,e,se),t,s)&&oe(k,e,re(k,e,(()=>0))+s),Bt=(e,t,s,a)=>{const l=le(xe,e),n=le(l,s)??0;(0==n&&1==a||1==n&&-1==a)&&Fe(re(P,e,se),s,a),oe(l,s,n!=-a?n+a:null),Fe(re(re(N,e,se),t,se),s,a)},Gt=(e,t,s,a,l)=>{re(re(re(j,e,se),t,se),s,(()=>[a,0]))[1]=l,I[3]?.(e,t,s,l)},Kt=(e,t)=>Fe(G,e,t),Qt=(e,t,s)=>{re($,e,(()=>[t,0]))[1]=s,I[4]?.(e,s)},Ut=(e,t,s,a,l)=>(z(re(re(re(Ce,e,se),t,se),s,(()=>[])),a),l),Xt=(e,t,s)=>(z(re(ze,e,(()=>[])),t),s),Yt=(e,t,s)=>y(le(le(le(j,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...we(us(e,t,s))])),Zt=e=>y(le($,e),(([e,t])=>[!0,e,t]),(()=>[!1,...we(gs(e))])),$t=e=>Z(Ce)||Z(at[e])?0:ee(e?ge(Ce):Ce,((t,s)=>ee(t,((t,a)=>ee(t,((t,l)=>ft(at[e],[s,a,l],t))))))),_t=e=>Z(ze)||Z(lt[e])?0:ee(e?he(ze):ze,((t,s)=>ft(lt[e],[s],t))),es=(e,t,s,a)=>{if(!Z(e))return ft(t,a,(()=>ie(e))),ne(e,((e,t)=>ft(s,[...a??[],e],1==t))),1},ts=e=>{const t=Ts();t!=a&&ft(We[e],void 0,t);const s=Z(Ze[e]),l=Z(et[e])&&Z(tt[e])&&Z(Ye[e])&&Z($e[e])&&Z(Qe[e])&&Z(Ue[e])&&Z(Xe[e])&&s&&Z(Be[e])&&Z(Ge[e]),n=Z(st[e])&&Z(_e[e])&&Z(Ke[e])&&Z(qe[e]);if(!l||!n){const t=e?[he(M),fe(P),he(k),fe(A),ge(N),ge(j)]:[M,P,k,A,N,j];if(!l){es(t[0],Be[e],Ge[e]),ee(t[1],((t,s)=>es(t,Qe[e],Ue[e],[s]))),ee(t[2],((t,s)=>{0!=t&&ft(Xe[e],[s],rs(s))}));const a=be();ee(t[3],((t,l)=>{es(t,Ye[e],$e[e],[l])&&!s&&(ft(Ze[e],[l,null]),ve(a,l))})),s||ee(t[5],((t,s)=>{if(!Y(a,s)){const a=be();ee(t,(e=>ee(e,(([t,s],l)=>s!==t?ve(a,l):te(e,l))))),ee(a,(t=>ft(Ze[e],[s,t])))}})),ee(t[4],((t,s)=>ee(t,((t,a)=>es(t,et[e],tt[e],[s,a])))))}if(!n){let s;ee(t[5],((t,a)=>{let l;ee(t,((t,n)=>{let o;ee(t,(([t,r],c)=>{r!==t&&(ft(st[e],[a,n,c],r,t,Yt),s=l=o=1)})),o&&ft(_e[e],[a,n],Yt)})),l&&ft(Ke[e],[a],Yt)})),s&&ft(qe[e],void 0,Yt)}}},ss=e=>{const t=ws();t!=n&&ft(nt[e],void 0,t);const s=Z(rt[e])&&Z(ct[e]),a=Z(it[e])&&Z(ot[e]);if(!s||!a){const t=e?[he(G),he($)]:[G,$];if(s||es(t[0],rt[e],ct[e]),!a){let s;ee(t[1],(([t,a],l)=>{a!==t&&(ft(it[e],[l],a,t,Zt),s=1)})),s&&ft(ot[e],void 0,Zt)}}},as=(e,...t)=>(Ms((()=>e(...O(t,S)))),As),ls=()=>ue(De),ns=()=>ae(De),os=e=>ae(le(xe,S(e))),rs=e=>K(le(De,S(e))),cs=e=>ae(le(De,S(e))),is=(e,t,s,a=0,l)=>{return O(J((o=le(De,S(e)),r=(e,s)=>[p(t)?s:le(e,S(t)),s],n=([e],[t])=>((e??0)<(t??0)?-1:1)*(s?-1:1),O([...o?.entries()??[]],(([e,t])=>r(t,e))).sort(n)),a,p(l)?l:a+l),(([,e])=>e));var n,o,r},ds=(e,t)=>ae(le(le(De,S(e)),S(t))),us=(e,t,s)=>le(le(le(De,S(e)),S(t)),S(s)),hs=()=>ie(He),fs=()=>ae(He),gs=e=>le(He,S(e)),Ts=()=>!Z(De),bs=e=>Y(De,S(e)),vs=(e,t)=>Y(le(xe,S(e)),S(t)),Cs=(e,t)=>Y(le(De,S(e)),S(t)),Vs=(e,t,s)=>Y(le(le(De,S(e)),S(t)),S(s)),ws=()=>!Z(He),Ss=e=>Y(He,S(e)),Is=e=>as((()=>(e=>B(e,Ct,Ut))(e)?Jt(e):0)),ps=e=>as((()=>St(e)?Pt(e):0)),ys=e=>{try{Lt(Ee(e))}catch{}return As},Rs=t=>as((()=>{if((e=B(t,(e=>B(e,bt))))&&(Rt(t),!Z(De))){const e=ls();Ls(),Is(e)}})),ms=e=>as((()=>{if(s=(e=>B(e,bt))(e)){const t=hs();zs(),Fs(),s=!0,mt(e),ps(t)}})),Ls=()=>as((()=>Jt({}))),Js=e=>as((e=>Y(De,e)?jt(e):0),e),Es=(e,t)=>as(((e,t)=>y(le(De,e),(s=>Y(s,t)?xt(e,s,t):0))),e,t),Fs=()=>as((()=>Pt({}))),Os=()=>as((()=>{Rt({}),e=!1})),zs=()=>as((()=>{mt({}),s=!1})),Ms=(e,t)=>{if(-1!=i){Ps();const s=e();return ks(t),s}},Ps=()=>(-1!=i&&i++,1==i&&(I[0]?.(),ft(dt)),As),ks=e=>(i>0&&(i--,0==i&&(i=1,$t(1),Z(j)||ts(1),_t(1),Z($)||ss(1),e?.(As)&&(ee(j,((e,t)=>ee(e,((e,s)=>ee(e,(([e],a)=>me(As,t,s,a,e))))))),_(j),ee($,(([e],t)=>Le(As,t,e))),_($)),ft(ut[0],void 0),i=-1,$t(0),Z(j)||ts(0),_t(0),Z($)||ss(0),I[1]?.(),ft(ut[1],void 0),I[2]?.(),i=0,a=Ts(),n=ws(),F([M,P,k,A,N,j,Ce,G,$,ze],_))),As),As={getContent:()=>[ls(),hs()],getTables:ls,getTableIds:ns,getTable:e=>de(le(De,S(e))),getTableCellIds:os,getRowCount:rs,getRowIds:cs,getSortedRowIds:is,getRow:(e,t)=>ie(le(le(De,S(e)),S(t))),getCellIds:ds,getCell:us,getValues:hs,getValueIds:fs,getValue:gs,hasTables:Ts,hasTable:bs,hasTableCell:vs,hasRow:Cs,hasCell:Vs,hasValues:ws,hasValue:Ss,getTablesJson:()=>Je(De),getValuesJson:()=>Je(He),getJson:()=>Je([De,He]),getTablesSchemaJson:()=>Je(Me),getValuesSchemaJson:()=>Je(ke),getSchemaJson:()=>Je([Me,ke]),hasTablesSchema:()=>e,hasValuesSchema:()=>s,setContent:e=>as((()=>vt(e)?(([e,t])=>{(q(e)?Ls:Is)(e),(q(t)?Fs:ps)(t)})(e):0)),setTables:Is,setTable:(e,t)=>as((e=>Ct(t,e)?Et(e,t):0),e),setRow:(e,t,s)=>as(((e,t)=>Vt(e,t,s)?Ft(e,Nt(e),t,s):0),e,t),addRow:(e,t,s=!0)=>Ms((()=>{let a;return Vt(e,a,t)&&(e=S(e),Ft(e,Nt(e),a=At(e,s?1:0),t)),a})),setPartialRow:(e,t,s)=>as(((e,t)=>{if(Vt(e,t,s,1)){const a=Nt(e);W(s,((s,l)=>zt(e,a,t,l,s)))}}),e,t),setCell:(e,t,s,a)=>as(((e,t,s)=>y(wt(e,t,s,m(a)?a(us(e,t,s)):a),(a=>zt(e,Nt(e),t,s,a)))),e,t,s),setValues:ps,setPartialValues:e=>as((()=>St(e,1)?W(e,((e,t)=>kt(t,e))):0)),setValue:(e,t)=>as((e=>y(It(e,m(t)?t(gs(e)):t),(t=>kt(e,t)))),e),applyChanges:e=>as((()=>{W(e[0],((e,t)=>p(e)?Js(t):W(e,((e,s)=>p(e)?Es(t,s):W(e,((e,a)=>me(As,t,s,a,e))))))),W(e[1],((e,t)=>Le(As,t,e)))})),setTablesJson:ys,setValuesJson:e=>{try{Mt(Ee(e))}catch{}return As},setJson:e=>as((()=>{try{const[t,s]=Ee(e);Lt(t),Mt(s)}catch{ys(e)}})),setTablesSchema:Rs,setValuesSchema:ms,setSchema:(e,t)=>as((()=>{Rs(e),ms(t)})),delTables:Ls,delTable:Js,delRow:Es,delCell:(e,t,s,a)=>as(((e,t,s)=>y(le(De,e),(l=>y(le(l,t),(n=>Y(n,s)?Dt(e,l,t,n,s,a):0))))),e,t,s),delValues:Fs,delValue:e=>as((e=>Y(He,e)?Ht(e):0),e),delTablesSchema:Os,delValuesSchema:zs,delSchema:()=>as((()=>{Os(),zs()})),transaction:Ms,startTransaction:Ps,getTransactionChanges:()=>[ie(j,((e,t)=>-1===le(M,t)?void 0:ie(e,((e,s)=>-1===le(le(A,t),s)?void 0:ie(e,(([,e])=>e),(e=>ye(e)))),Z,q)),Z,q),ie($,(([,e])=>e),(e=>ye(e))),1],getTransactionLog:()=>[!Z(j),!Z($),ue(j,pe,ye),ue(Ce),ie($,pe,ye),ie(ze),ie(M),de(A),ue(N),ie(G)],finishTransaction:ks,forEachTable:e=>ee(De,((t,s)=>e(s,(e=>ee(t,((t,s)=>e(s,(e=>ne(t,e))))))))),forEachTableCell:(e,t)=>ne(le(xe,S(e)),t),forEachRow:(e,t)=>ee(le(De,S(e)),((e,s)=>t(s,(t=>ne(e,t))))),forEachCell:(e,t,s)=>ne(le(le(De,S(e)),S(t)),s),forEachValue:e=>ne(He,e),addSortedRowIdsListener:(e,t,s,a,l,n,o)=>{let r=is(e,t,s,a,l);return ht((()=>{const o=is(e,t,s,a,l);var c,i,d;i=r,E(c=o)===E(i)&&(d=(e,t)=>i[t]===e,c.every(d))||(r=o,n(As,e,t,s,a,l,r))}),Ze[o?1:0],[e,t],[ns])},addStartTransactionListener:e=>ht(e,dt),addWillFinishTransactionListener:e=>ht(e,ut[0]),addDidFinishTransactionListener:e=>ht(e,ut[1]),callListener:e=>(Tt(e),As),delListener:e=>(gt(e),As),getListenerStats:()=>({hasTables:Se(We),tables:Se(qe),tableIds:Se(Be),hasTable:Se(Ge),table:Se(Ke),tableCellIds:Se(Qe),hasTableCell:Se(Ue,U),rowCount:Se(Xe),rowIds:Se(Ye),sortedRowIds:Se(Ze),hasRow:Se($e,U),row:Se(_e,U),cellIds:Se(et,U),hasCell:Se(tt,X),cell:Se(st,X),invalidCell:Se(at,X),hasValues:Se(nt),values:Se(ot),valueIds:Se(rt),hasValue:Se(ct),value:Se(it),invalidValue:Se(lt),transaction:Q(dt)+Se(ut)}),isMergeable:()=>!1,createStore:Oe,addListener:ht,callListeners:ft,setInternalListeners:(e,t,s,a,l)=>I=[e,t,s,a,l]};return W({[c+u]:[0,We,[],()=>[Ts()]],[u]:[0,qe],[h]:[0,Be],[c+d]:[1,Ge,[ns],e=>[bs(...e)]],[d]:[1,Ke,[ns]],[d+v]:[1,Qe,[ns]],[c+d+b]:[2,Ue,[ns,os],e=>[vs(...e)]],[g]:[1,Xe,[ns]],[T]:[1,Ye,[ns]],[c+f]:[2,$e,[ns,cs],e=>[Cs(...e)]],[f]:[2,_e,[ns,cs]],[v]:[2,et,[ns,cs]],[c+b]:[3,tt,[ns,cs,ds],e=>[Vs(...e)]],[b]:[3,st,[ns,cs,ds],e=>we(us(...e))],InvalidCell:[3,at],[c+V]:[0,nt,[],()=>[ws()]],[V]:[0,ot],[w]:[0,rt],[c+C]:[1,ct,[fs],e=>[Ss(...e)]],[C]:[1,it,[fs],e=>we(gs(e[0]))],InvalidValue:[1,lt]},(([e,t,s,a],l)=>{As["add"+l+"Listener"]=(...l)=>ht(l[e],t[l[e+1]?1:0],e>0?J(l,0,e):void 0,s,a)})),x(As)};export{Oe as createStore};
1
+ const e=e=>typeof e,t="",s=e(t),a=e(!0),l=e(0),n=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",V=C+"s",w=C+i,S=e=>t+e,I=isFinite,p=e=>null==e,y=(e,t,s)=>p(e)?s?.():t(e),R=e=>e==s||e==a,m=t=>e(t)==n,L=e=>Array.isArray(e),J=(e,t,s)=>e.slice(t,s),E=e=>e.length,F=(e,t)=>e.forEach(t),O=(e,t)=>e.map(t),z=(e,...t)=>e.push(...t),M=Object,P=e=>M.getPrototypeOf(e),k=M.entries,A=M.isFrozen,N=e=>!p(e)&&y(P(e),(e=>e==M.prototype||p(P(e))),(()=>!0)),j=M.keys,x=M.freeze,D=(e,t)=>t in e,H=(e,t)=>(delete e[t],e),W=(e,t)=>O(k(e),(([e,s])=>t(s,e))),q=e=>N(e)&&0==(e=>E(j(e)))(e),B=(e,t,s,a=0)=>p(e)||!N(e)||!a&&q(e)||A(e)?(s?.(),!1):(W(e,((s,a)=>{t(s,a)||H(e,a)})),!!a||!q(e)),G=e=>t=>{return s=(t,s)=>t+e(s),$(t).reduce(s,0);var s},K=e=>e?.size??0,Q=G(K),U=G(Q),X=G(U),Y=(e,t)=>e?.has(t)??!1,Z=e=>p(e)||0==K(e),$=e=>[...e?.values()??[]],_=e=>e.clear(),ee=(e,t)=>e?.forEach(t),te=(e,t)=>e?.delete(t),se=e=>new Map(e),ae=e=>[...e?.keys()??[]],le=(e,t)=>e?.get(t),ne=(e,t)=>ee(e,((e,s)=>t(s,e))),oe=(e,t,s)=>p(s)?(te(e,t),e):e?.set(t,s),re=(e,t,s,a)=>(Y(e,t)?a?.(le(e,t)):oe(e,t,s()),le(e,t)),ce=(e,t,s,a=oe)=>(W(t,((t,a)=>s(e,a,t))),ne(e,(s=>D(t,s)?0:a(e,s))),e),ie=(e,t,s,a)=>{const l={};return ee(e,((e,n)=>{if(!s?.(e,n)){const s=t?t(e,n):e;a?.(s)||(l[n]=s)}})),l},de=(e,t,s)=>ie(e,(e=>ie(e,t,s)),Z,q),ue=(e,t,s)=>ie(e,(e=>de(e,t,s)),Z,q),he=(e,t)=>{const s=se();return ee(e,((e,a)=>s.set(a,t?.(e)??e))),s},fe=e=>he(e,he),ge=e=>he(e,fe),Te=(e,t,s,a,l=0)=>y((s?re:le)(e,t[l],l>E(t)-2?s:se),(n=>{if(l>E(t)-2)return a?.(n)&&oe(e,t[l]),n;const o=Te(n,t,s,a,l+1);return Z(n)&&oe(e,t[l]),o})),be=e=>new Set(L(e)||p(e)?e:[e]),ve=(e,t)=>e?.add(t),Ce=/^\d+$/,Ve=()=>{const e=[];let s=0;return[a=>(a?e.shift():null)??t+s++,t=>{Ce.test(t)&&E(e)<1e3&&z(e,t)}]},we=e=>[e,e],Se=(e,t=Q)=>t(e[0])+t(e[1]),Ie=()=>[se(),se()],pe=e=>[...e],ye=([e,t])=>e===t,Re=t=>{const s=e(t);return R(s)||s==l&&I(t)?s:void 0},me=(e,t,s,a,l)=>p(l)?e.delCell(t,s,a,!0):e.setCell(t,s,a,l),Le=(e,t,s)=>p(s)?e.delValue(t):e.setValue(t,s),Je=e=>JSON.stringify(e,((e,t)=>t instanceof Map?M.fromEntries([...t]):t)),Ee=JSON.parse;se(O("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".split(t),((e,t)=>[e,t])));const Fe=(e,t,s)=>oe(e,t,le(e,t)==-s?void 0:s),Oe=()=>{let e,s,a=!1,n=!1,i=0,I=[];const M=se(),P=se(),k=se(),A=se(),N=se(),j=se(),G=se(),$=se(),Ce=se(),ze=se(),Me=se(),Pe=se(),ke=se(),Ae=se(),Ne=be(),je=se(),xe=se(),De=se(),He=se(),We=Ie(),qe=Ie(),Be=Ie(),Ge=Ie(),Ke=Ie(),Qe=Ie(),Ue=Ie(),Xe=Ie(),Ye=Ie(),Ze=Ie(),$e=Ie(),_e=Ie(),et=Ie(),tt=Ie(),st=Ie(),at=Ie(),lt=Ie(),nt=Ie(),ot=Ie(),rt=Ie(),ct=Ie(),it=Ie(),dt=se(),ut=Ie(),[ht,ft,gt,Tt]=(()=>{let e;const[s,a]=Ve(),l=se();return[(a,n,o,r=[],c=()=>[])=>{e??=As;const i=s(1);return oe(l,i,[a,n,o,r,c]),ve(Te(n,o??[t],be),i),i},(s,a,...n)=>F(((e,s=[t])=>{const a=[],l=(e,t)=>t==E(s)?z(a,e):null===s[t]?ee(e,(e=>l(e,t+1))):F([s[t],null],(s=>l(le(e,s),t+1)));return l(e,0),a})(s,a),(t=>ee(t,(t=>le(l,t)[0](e,...a??[],...n))))),e=>y(le(l,e),(([,s,n])=>(Te(s,n??[t],void 0,(t=>(te(t,e),Z(t)?1:0))),oe(l,e),a(e),n))),t=>y(le(l,t),(([t,,s=[],a,l])=>{const n=(...o)=>{const r=E(o);r==E(s)?t(e,...o,...l(o)):p(s[r])?F(a[r]?.(...o)??[],(e=>n(...o,e))):n(...o,s[r])};n()}))]})(),bt=e=>{if(!B(e,((e,t)=>[o,r].includes(t))))return!1;const t=e[o];return!(!R(t)&&t!=l||(Re(e[r])!=t&&H(e,r),0))},vt=L,Ct=(t,s)=>(!e||Y(Me,s)||Ut(s))&&B(t,((e,t)=>Vt(s,t,e)),(()=>Ut(s))),Vt=(e,t,s,a)=>B(a?s:pt(s,e,t),((a,l)=>y(wt(e,t,l,a),(e=>(s[l]=e,!0)),(()=>!1))),(()=>Ut(e,t))),wt=(t,s,a,l)=>e?y(le(le(Me,t),a),(e=>Re(l)!=e[o]?Ut(t,s,a,l,e[r]):l),(()=>Ut(t,s,a,l))):p(Re(l))?Ut(t,s,a,l):l,St=(e,t)=>B(t?e:yt(e),((t,s)=>y(It(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>Xt())),It=(e,t)=>s?y(le(ke,e),(s=>Re(t)!=s[o]?Xt(e,t,s[r]):t),(()=>Xt(e,t))):p(Re(t))?Xt(e,t):t,pt=(e,t,s)=>(y(le(Pe,t),(([a,l])=>{ee(a,((t,s)=>{D(e,s)||(e[s]=t)})),ee(l,(a=>{D(e,a)||Ut(t,s,a)}))})),e),yt=e=>(s&&(ee(Ae,((t,s)=>{D(e,s)||(e[s]=t)})),ee(Ne,(t=>{D(e,t)||Xt(t)}))),e),Rt=e=>ce(Me,e,((e,t,s)=>{const a=se(),l=be();ce(re(Me,t,se),s,((e,t,s)=>{oe(e,t,s),y(s[r],(e=>oe(a,t,e)),(()=>ve(l,t)))})),oe(Pe,t,[a,l])}),((e,t)=>{oe(Me,t),oe(Pe,t)})),mt=e=>ce(ke,e,((e,t,s)=>{oe(ke,t,s),y(s[r],(e=>oe(Ae,t,e)),(()=>ve(Ne,t)))}),((e,t)=>{oe(ke,t),oe(Ae,t),te(Ne,t)})),Lt=e=>q(e)?Ls():Is(e),Jt=e=>ce(De,e,((e,t,s)=>Et(t,s)),((e,t)=>jt(t))),Et=(e,t)=>ce(re(De,e,(()=>(Wt(e,1),oe(je,e,Ve()),oe(xe,e,se()),se()))),t,((t,s,a)=>Ft(e,t,s,a)),((t,s)=>xt(e,t,s))),Ft=(e,t,s,a,l)=>ce(re(t,s,(()=>(qt(e,s,1),se()))),a,((t,a,l)=>Ot(e,s,t,a,l)),((a,n)=>Dt(e,t,s,a,n,l))),Ot=(e,t,s,a,l)=>{Y(s,a)||Bt(e,t,a,1);const n=le(s,a);l!==n&&(Gt(e,t,a,n,l),oe(s,a,l))},zt=(e,t,s,a,l)=>y(le(t,s),(t=>Ot(e,s,t,a,l)),(()=>Ft(e,t,s,pt({[a]:l},e,s)))),Mt=e=>q(e)?Fs():ps(e),Pt=e=>ce(He,e,((e,t,s)=>kt(t,s)),((e,t)=>Ht(t))),kt=(e,t)=>{Y(He,e)||Kt(e,1);const s=le(He,e);t!==s&&(Qt(e,s,t),oe(He,e,t))},At=(e,t)=>{const[s]=le(je,e),a=s(t);return Y(le(De,e),a)?At(e,t):a},Nt=e=>le(De,e)??Et(e,{}),jt=e=>Et(e,{}),xt=(e,t,s)=>{const[,a]=le(je,e);a(s),Ft(e,t,s,{},!0)},Dt=(e,t,s,a,l,n)=>{const o=le(le(Pe,e)?.[0],l);if(!p(o)&&!n)return Ot(e,s,a,l,o);const r=t=>{Gt(e,s,t,le(a,t)),Bt(e,s,t,-1),oe(a,t)};p(o)?r(l):ne(a,r),Z(a)&&(qt(e,s,-1),Z(oe(t,s))&&(Wt(e,-1),oe(De,e),oe(je,e),oe(xe,e)))},Ht=e=>{const t=le(Ae,e);if(!p(t))return kt(e,t);Qt(e,le(He,e)),Kt(e,-1),oe(He,e)},Wt=(e,t)=>Fe(M,e,t),qt=(e,t,s)=>Fe(re(A,e,se),t,s)&&oe(k,e,re(k,e,(()=>0))+s),Bt=(e,t,s,a)=>{const l=le(xe,e),n=le(l,s)??0;(0==n&&1==a||1==n&&-1==a)&&Fe(re(P,e,se),s,a),oe(l,s,n!=-a?n+a:null),Fe(re(re(N,e,se),t,se),s,a)},Gt=(e,t,s,a,l)=>{re(re(re(j,e,se),t,se),s,(()=>[a,0]))[1]=l,I[3]?.(e,t,s,l)},Kt=(e,t)=>Fe(G,e,t),Qt=(e,t,s)=>{re($,e,(()=>[t,0]))[1]=s,I[4]?.(e,s)},Ut=(e,t,s,a,l)=>(z(re(re(re(Ce,e,se),t,se),s,(()=>[])),a),l),Xt=(e,t,s)=>(z(re(ze,e,(()=>[])),t),s),Yt=(e,t,s)=>y(le(le(le(j,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...we(us(e,t,s))])),Zt=e=>y(le($,e),(([e,t])=>[!0,e,t]),(()=>[!1,...we(gs(e))])),$t=e=>Z(Ce)||Z(at[e])?0:ee(e?ge(Ce):Ce,((t,s)=>ee(t,((t,a)=>ee(t,((t,l)=>ft(at[e],[s,a,l],t))))))),_t=e=>Z(ze)||Z(lt[e])?0:ee(e?he(ze):ze,((t,s)=>ft(lt[e],[s],t))),es=(e,t,s,a)=>{if(!Z(e))return ft(t,a,(()=>ie(e))),ne(e,((e,t)=>ft(s,[...a??[],e],1==t))),1},ts=e=>{const t=Ts();t!=a&&ft(We[e],void 0,t);const s=Z(Ze[e]),l=Z(et[e])&&Z(tt[e])&&Z(Ye[e])&&Z($e[e])&&Z(Qe[e])&&Z(Ue[e])&&Z(Xe[e])&&s&&Z(Be[e])&&Z(Ge[e]),n=Z(st[e])&&Z(_e[e])&&Z(Ke[e])&&Z(qe[e]);if(!l||!n){const t=e?[he(M),fe(P),he(k),fe(A),ge(N),ge(j)]:[M,P,k,A,N,j];if(!l){es(t[0],Be[e],Ge[e]),ee(t[1],((t,s)=>es(t,Qe[e],Ue[e],[s]))),ee(t[2],((t,s)=>{0!=t&&ft(Xe[e],[s],rs(s))}));const a=be();ee(t[3],((t,l)=>{es(t,Ye[e],$e[e],[l])&&!s&&(ft(Ze[e],[l,null]),ve(a,l))})),s||ee(t[5],((t,s)=>{if(!Y(a,s)){const a=be();ee(t,(e=>ee(e,(([t,s],l)=>s!==t?ve(a,l):te(e,l))))),ee(a,(t=>ft(Ze[e],[s,t])))}})),ee(t[4],((t,s)=>ee(t,((t,a)=>es(t,et[e],tt[e],[s,a])))))}if(!n){let s;ee(t[5],((t,a)=>{let l;ee(t,((t,n)=>{let o;ee(t,(([t,r],c)=>{r!==t&&(ft(st[e],[a,n,c],r,t,Yt),s=l=o=1)})),o&&ft(_e[e],[a,n],Yt)})),l&&ft(Ke[e],[a],Yt)})),s&&ft(qe[e],void 0,Yt)}}},ss=e=>{const t=ws();t!=n&&ft(nt[e],void 0,t);const s=Z(rt[e])&&Z(ct[e]),a=Z(it[e])&&Z(ot[e]);if(!s||!a){const t=e?[he(G),he($)]:[G,$];if(s||es(t[0],rt[e],ct[e]),!a){let s;ee(t[1],(([t,a],l)=>{a!==t&&(ft(it[e],[l],a,t,Zt),s=1)})),s&&ft(ot[e],void 0,Zt)}}},as=(e,...t)=>(Ms((()=>e(...O(t,S)))),As),ls=()=>ue(De),ns=()=>ae(De),os=e=>ae(le(xe,S(e))),rs=e=>K(le(De,S(e))),cs=e=>ae(le(De,S(e))),is=(e,t,s,a=0,l)=>{return O(J((o=le(De,S(e)),r=(e,s)=>[p(t)?s:le(e,S(t)),s],n=([e],[t])=>((e??0)<(t??0)?-1:1)*(s?-1:1),O([...o?.entries()??[]],(([e,t])=>r(t,e))).sort(n)),a,p(l)?l:a+l),(([,e])=>e));var n,o,r},ds=(e,t)=>ae(le(le(De,S(e)),S(t))),us=(e,t,s)=>le(le(le(De,S(e)),S(t)),S(s)),hs=()=>ie(He),fs=()=>ae(He),gs=e=>le(He,S(e)),Ts=()=>!Z(De),bs=e=>Y(De,S(e)),vs=(e,t)=>Y(le(xe,S(e)),S(t)),Cs=(e,t)=>Y(le(De,S(e)),S(t)),Vs=(e,t,s)=>Y(le(le(De,S(e)),S(t)),S(s)),ws=()=>!Z(He),Ss=e=>Y(He,S(e)),Is=e=>as((()=>(e=>B(e,Ct,Ut))(e)?Jt(e):0)),ps=e=>as((()=>St(e)?Pt(e):0)),ys=e=>{try{Lt(Ee(e))}catch{}return As},Rs=t=>as((()=>{if((e=B(t,(e=>B(e,bt))))&&(Rt(t),!Z(De))){const e=ls();Ls(),Is(e)}})),ms=e=>as((()=>{if(s=(e=>B(e,bt))(e)){const t=hs();zs(),Fs(),s=!0,mt(e),ps(t)}})),Ls=()=>as((()=>Jt({}))),Js=e=>as((e=>Y(De,e)?jt(e):0),e),Es=(e,t)=>as(((e,t)=>y(le(De,e),(s=>Y(s,t)?xt(e,s,t):0))),e,t),Fs=()=>as((()=>Pt({}))),Os=()=>as((()=>{Rt({}),e=!1})),zs=()=>as((()=>{mt({}),s=!1})),Ms=(e,t)=>{if(-1!=i){Ps();const s=e();return ks(t),s}},Ps=()=>(-1!=i&&i++,1==i&&(I[0]?.(),ft(dt)),As),ks=e=>(i>0&&(i--,0==i&&(i=1,$t(1),Z(j)||ts(1),_t(1),Z($)||ss(1),e?.(As)&&(ee(j,((e,t)=>ee(e,((e,s)=>ee(e,(([e],a)=>me(As,t,s,a,e))))))),_(j),ee($,(([e],t)=>Le(As,t,e))),_($)),ft(ut[0],void 0),i=-1,$t(0),Z(j)||ts(0),_t(0),Z($)||ss(0),I[1]?.(),ft(ut[1],void 0),I[2]?.(),i=0,a=Ts(),n=ws(),F([M,P,k,A,N,j,Ce,G,$,ze],_))),As),As={getContent:()=>[ls(),hs()],getTables:ls,getTableIds:ns,getTable:e=>de(le(De,S(e))),getTableCellIds:os,getRowCount:rs,getRowIds:cs,getSortedRowIds:is,getRow:(e,t)=>ie(le(le(De,S(e)),S(t))),getCellIds:ds,getCell:us,getValues:hs,getValueIds:fs,getValue:gs,hasTables:Ts,hasTable:bs,hasTableCell:vs,hasRow:Cs,hasCell:Vs,hasValues:ws,hasValue:Ss,getTablesJson:()=>Je(De),getValuesJson:()=>Je(He),getJson:()=>Je([De,He]),getTablesSchemaJson:()=>Je(Me),getValuesSchemaJson:()=>Je(ke),getSchemaJson:()=>Je([Me,ke]),hasTablesSchema:()=>e,hasValuesSchema:()=>s,setContent:e=>as((()=>vt(e)?(([e,t])=>{(q(e)?Ls:Is)(e),(q(t)?Fs:ps)(t)})(e):0)),setTables:Is,setTable:(e,t)=>as((e=>Ct(t,e)?Et(e,t):0),e),setRow:(e,t,s)=>as(((e,t)=>Vt(e,t,s)?Ft(e,Nt(e),t,s):0),e,t),addRow:(e,t,s=!0)=>Ms((()=>{let a;return Vt(e,a,t)&&(e=S(e),Ft(e,Nt(e),a=At(e,s?1:0),t)),a})),setPartialRow:(e,t,s)=>as(((e,t)=>{if(Vt(e,t,s,1)){const a=Nt(e);W(s,((s,l)=>zt(e,a,t,l,s)))}}),e,t),setCell:(e,t,s,a)=>as(((e,t,s)=>y(wt(e,t,s,m(a)?a(us(e,t,s)):a),(a=>zt(e,Nt(e),t,s,a)))),e,t,s),setValues:ps,setPartialValues:e=>as((()=>St(e,1)?W(e,((e,t)=>kt(t,e))):0)),setValue:(e,t)=>as((e=>y(It(e,m(t)?t(gs(e)):t),(t=>kt(e,t)))),e),applyChanges:e=>as((()=>{W(e[0],((e,t)=>p(e)?Js(t):W(e,((e,s)=>p(e)?Es(t,s):W(e,((e,a)=>me(As,t,s,a,e))))))),W(e[1],((e,t)=>Le(As,t,e)))})),setTablesJson:ys,setValuesJson:e=>{try{Mt(Ee(e))}catch{}return As},setJson:e=>as((()=>{try{const[t,s]=Ee(e);Lt(t),Mt(s)}catch{ys(e)}})),setTablesSchema:Rs,setValuesSchema:ms,setSchema:(e,t)=>as((()=>{Rs(e),ms(t)})),delTables:Ls,delTable:Js,delRow:Es,delCell:(e,t,s,a)=>as(((e,t,s)=>y(le(De,e),(l=>y(le(l,t),(n=>Y(n,s)?Dt(e,l,t,n,s,a):0))))),e,t,s),delValues:Fs,delValue:e=>as((e=>Y(He,e)?Ht(e):0),e),delTablesSchema:Os,delValuesSchema:zs,delSchema:()=>as((()=>{Os(),zs()})),transaction:Ms,startTransaction:Ps,getTransactionChanges:()=>[ie(j,((e,t)=>-1===le(M,t)?void 0:ie(e,((e,s)=>-1===le(le(A,t),s)?void 0:ie(e,(([,e])=>e),(e=>ye(e)))),Z,q)),Z,q),ie($,(([,e])=>e),(e=>ye(e))),1],getTransactionLog:()=>[!Z(j),!Z($),ue(j,pe,ye),ue(Ce),ie($,pe,ye),ie(ze),ie(M),de(A),ue(N),ie(G)],finishTransaction:ks,forEachTable:e=>ee(De,((t,s)=>e(s,(e=>ee(t,((t,s)=>e(s,(e=>ne(t,e))))))))),forEachTableCell:(e,t)=>ne(le(xe,S(e)),t),forEachRow:(e,t)=>ee(le(De,S(e)),((e,s)=>t(s,(t=>ne(e,t))))),forEachCell:(e,t,s)=>ne(le(le(De,S(e)),S(t)),s),forEachValue:e=>ne(He,e),addSortedRowIdsListener:(e,t,s,a,l,n,o)=>{let r=is(e,t,s,a,l);return ht((()=>{const o=is(e,t,s,a,l);var c,i,d;i=r,E(c=o)===E(i)&&(d=(e,t)=>i[t]===e,c.every(d))||(r=o,n(As,e,t,s,a,l,r))}),Ze[o?1:0],[e,t],[ns])},addStartTransactionListener:e=>ht(e,dt),addWillFinishTransactionListener:e=>ht(e,ut[0]),addDidFinishTransactionListener:e=>ht(e,ut[1]),callListener:e=>(Tt(e),As),delListener:e=>(gt(e),As),getListenerStats:()=>({hasTables:Se(We),tables:Se(qe),tableIds:Se(Be),hasTable:Se(Ge),table:Se(Ke),tableCellIds:Se(Qe),hasTableCell:Se(Ue,U),rowCount:Se(Xe),rowIds:Se(Ye),sortedRowIds:Se(Ze),hasRow:Se($e,U),row:Se(_e,U),cellIds:Se(et,U),hasCell:Se(tt,X),cell:Se(st,X),invalidCell:Se(at,X),hasValues:Se(nt),values:Se(ot),valueIds:Se(rt),hasValue:Se(ct),value:Se(it),invalidValue:Se(lt),transaction:Q(dt)+Se(ut)}),isMergeable:()=>!1,createStore:Oe,addListener:ht,callListeners:ft,setInternalListeners:(e,t,s,a,l)=>I=[e,t,s,a,l]};return W({[c+u]:[0,We,[],()=>[Ts()]],[u]:[0,qe],[h]:[0,Be],[c+d]:[1,Ge,[ns],e=>[bs(...e)]],[d]:[1,Ke,[ns]],[d+v]:[1,Qe,[ns]],[c+d+b]:[2,Ue,[ns,os],e=>[vs(...e)]],[g]:[1,Xe,[ns]],[T]:[1,Ye,[ns]],[c+f]:[2,$e,[ns,cs],e=>[Cs(...e)]],[f]:[2,_e,[ns,cs]],[v]:[2,et,[ns,cs]],[c+b]:[3,tt,[ns,cs,ds],e=>[Vs(...e)]],[b]:[3,st,[ns,cs,ds],e=>we(us(...e))],InvalidCell:[3,at],[c+V]:[0,nt,[],()=>[ws()]],[V]:[0,ot],[w]:[0,rt],[c+C]:[1,ct,[fs],e=>[Ss(...e)]],[C]:[1,it,[fs],e=>we(gs(e[0]))],InvalidValue:[1,lt]},(([e,t,s,a],l)=>{As["add"+l+"Listener"]=(...l)=>ht(l[e],t[l[e+1]?1:0],e>0?J(l,0,e):void 0,s,a)})),x(As)};export{Oe as createStore};
Binary file