tinybase 5.3.1 → 5.3.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 (890) hide show
  1. package/cjs/common/index.cjs +5 -7
  2. package/cjs/common/with-schemas/index.cjs +5 -7
  3. package/cjs/es6/common/index.cjs +5 -7
  4. package/cjs/es6/common/with-schemas/index.cjs +5 -7
  5. package/cjs/es6/index.cjs +18 -12
  6. package/cjs/es6/indexes/index.cjs +0 -6
  7. package/cjs/es6/indexes/with-schemas/index.cjs +0 -6
  8. package/cjs/es6/mergeable-store/index.cjs +17 -11
  9. package/cjs/es6/mergeable-store/with-schemas/index.cjs +17 -11
  10. package/cjs/es6/metrics/index.cjs +1 -1
  11. package/cjs/es6/metrics/with-schemas/index.cjs +1 -1
  12. package/cjs/es6/min/common/index.cjs +1 -1
  13. package/cjs/es6/min/common/index.cjs.gz +0 -0
  14. package/cjs/es6/min/common/with-schemas/index.cjs +1 -1
  15. package/cjs/es6/min/common/with-schemas/index.cjs.gz +0 -0
  16. package/cjs/es6/min/index.cjs +1 -1
  17. package/cjs/es6/min/index.cjs.gz +0 -0
  18. package/cjs/es6/min/indexes/index.cjs +1 -1
  19. package/cjs/es6/min/indexes/index.cjs.gz +0 -0
  20. package/cjs/es6/min/indexes/with-schemas/index.cjs +1 -1
  21. package/cjs/es6/min/indexes/with-schemas/index.cjs.gz +0 -0
  22. package/cjs/es6/min/mergeable-store/index.cjs +1 -1
  23. package/cjs/es6/min/mergeable-store/index.cjs.gz +0 -0
  24. package/cjs/es6/min/mergeable-store/with-schemas/index.cjs +1 -1
  25. package/cjs/es6/min/mergeable-store/with-schemas/index.cjs.gz +0 -0
  26. package/cjs/es6/min/persisters/index.cjs +1 -1
  27. package/cjs/es6/min/persisters/index.cjs.gz +0 -0
  28. package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/index.cjs +1 -1
  29. package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/index.cjs.gz +0 -0
  30. package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +1 -1
  31. package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
  32. package/cjs/es6/min/persisters/persister-electric-sql/index.cjs +1 -1
  33. package/cjs/es6/min/persisters/persister-electric-sql/index.cjs.gz +0 -0
  34. package/cjs/es6/min/persisters/persister-electric-sql/with-schemas/index.cjs +1 -1
  35. package/cjs/es6/min/persisters/persister-electric-sql/with-schemas/index.cjs.gz +0 -0
  36. package/cjs/es6/min/persisters/persister-expo-sqlite/index.cjs +1 -1
  37. package/cjs/es6/min/persisters/persister-expo-sqlite/index.cjs.gz +0 -0
  38. package/cjs/es6/min/persisters/persister-expo-sqlite/with-schemas/index.cjs +1 -1
  39. package/cjs/es6/min/persisters/persister-expo-sqlite/with-schemas/index.cjs.gz +0 -0
  40. package/cjs/es6/min/persisters/persister-libsql/index.cjs +1 -1
  41. package/cjs/es6/min/persisters/persister-libsql/index.cjs.gz +0 -0
  42. package/cjs/es6/min/persisters/persister-libsql/with-schemas/index.cjs +1 -1
  43. package/cjs/es6/min/persisters/persister-libsql/with-schemas/index.cjs.gz +0 -0
  44. package/cjs/es6/min/persisters/persister-pglite/index.cjs +1 -1
  45. package/cjs/es6/min/persisters/persister-pglite/index.cjs.gz +0 -0
  46. package/cjs/es6/min/persisters/persister-pglite/with-schemas/index.cjs +1 -1
  47. package/cjs/es6/min/persisters/persister-pglite/with-schemas/index.cjs.gz +0 -0
  48. package/cjs/es6/min/persisters/persister-postgres/index.cjs +1 -1
  49. package/cjs/es6/min/persisters/persister-postgres/index.cjs.gz +0 -0
  50. package/cjs/es6/min/persisters/persister-postgres/with-schemas/index.cjs +1 -1
  51. package/cjs/es6/min/persisters/persister-postgres/with-schemas/index.cjs.gz +0 -0
  52. package/cjs/es6/min/persisters/persister-powersync/index.cjs +1 -1
  53. package/cjs/es6/min/persisters/persister-powersync/index.cjs.gz +0 -0
  54. package/cjs/es6/min/persisters/persister-powersync/with-schemas/index.cjs +1 -1
  55. package/cjs/es6/min/persisters/persister-powersync/with-schemas/index.cjs.gz +0 -0
  56. package/cjs/es6/min/persisters/persister-sqlite-wasm/index.cjs +1 -1
  57. package/cjs/es6/min/persisters/persister-sqlite-wasm/index.cjs.gz +0 -0
  58. package/cjs/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs +1 -1
  59. package/cjs/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
  60. package/cjs/es6/min/persisters/persister-sqlite3/index.cjs +1 -1
  61. package/cjs/es6/min/persisters/persister-sqlite3/index.cjs.gz +0 -0
  62. package/cjs/es6/min/persisters/persister-sqlite3/with-schemas/index.cjs +1 -1
  63. package/cjs/es6/min/persisters/persister-sqlite3/with-schemas/index.cjs.gz +0 -0
  64. package/cjs/es6/min/persisters/with-schemas/index.cjs +1 -1
  65. package/cjs/es6/min/persisters/with-schemas/index.cjs.gz +0 -0
  66. package/cjs/es6/min/store/index.cjs +1 -1
  67. package/cjs/es6/min/store/index.cjs.gz +0 -0
  68. package/cjs/es6/min/store/with-schemas/index.cjs +1 -1
  69. package/cjs/es6/min/store/with-schemas/index.cjs.gz +0 -0
  70. package/cjs/es6/min/synchronizers/index.cjs +1 -1
  71. package/cjs/es6/min/synchronizers/index.cjs.gz +0 -0
  72. package/cjs/es6/min/synchronizers/synchronizer-broadcast-channel/index.cjs +1 -1
  73. package/cjs/es6/min/synchronizers/synchronizer-broadcast-channel/index.cjs.gz +0 -0
  74. package/cjs/es6/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs +1 -1
  75. package/cjs/es6/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs.gz +0 -0
  76. package/cjs/es6/min/synchronizers/synchronizer-local/index.cjs +1 -1
  77. package/cjs/es6/min/synchronizers/synchronizer-local/index.cjs.gz +0 -0
  78. package/cjs/es6/min/synchronizers/synchronizer-local/with-schemas/index.cjs +1 -1
  79. package/cjs/es6/min/synchronizers/synchronizer-local/with-schemas/index.cjs.gz +0 -0
  80. package/cjs/es6/min/synchronizers/synchronizer-ws-client/index.cjs +1 -1
  81. package/cjs/es6/min/synchronizers/synchronizer-ws-client/index.cjs.gz +0 -0
  82. package/cjs/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +1 -1
  83. package/cjs/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.cjs.gz +0 -0
  84. package/cjs/es6/min/synchronizers/synchronizer-ws-server/index.cjs +1 -1
  85. package/cjs/es6/min/synchronizers/synchronizer-ws-server/index.cjs.gz +0 -0
  86. package/cjs/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +1 -1
  87. package/cjs/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs.gz +0 -0
  88. package/cjs/es6/min/synchronizers/with-schemas/index.cjs +1 -1
  89. package/cjs/es6/min/synchronizers/with-schemas/index.cjs.gz +0 -0
  90. package/cjs/es6/min/tools/index.cjs +1 -1
  91. package/cjs/es6/min/tools/index.cjs.gz +0 -0
  92. package/cjs/es6/min/tools/with-schemas/index.cjs +1 -1
  93. package/cjs/es6/min/tools/with-schemas/index.cjs.gz +0 -0
  94. package/cjs/es6/min/ui-react/index.cjs +1 -1
  95. package/cjs/es6/min/ui-react/index.cjs.gz +0 -0
  96. package/cjs/es6/min/ui-react/with-schemas/index.cjs +1 -1
  97. package/cjs/es6/min/ui-react/with-schemas/index.cjs.gz +0 -0
  98. package/cjs/es6/min/ui-react-dom/index.cjs +1 -1
  99. package/cjs/es6/min/ui-react-dom/index.cjs.gz +0 -0
  100. package/cjs/es6/min/ui-react-dom/with-schemas/index.cjs +1 -1
  101. package/cjs/es6/min/ui-react-dom/with-schemas/index.cjs.gz +0 -0
  102. package/cjs/es6/min/ui-react-inspector/index.cjs +1 -1
  103. package/cjs/es6/min/ui-react-inspector/index.cjs.gz +0 -0
  104. package/cjs/es6/min/ui-react-inspector/with-schemas/index.cjs +1 -1
  105. package/cjs/es6/min/ui-react-inspector/with-schemas/index.cjs.gz +0 -0
  106. package/cjs/es6/min/with-schemas/index.cjs +1 -1
  107. package/cjs/es6/min/with-schemas/index.cjs.gz +0 -0
  108. package/cjs/es6/persisters/index.cjs +83 -103
  109. package/cjs/es6/persisters/persister-cr-sqlite-wasm/index.cjs +82 -102
  110. package/cjs/es6/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +82 -102
  111. package/cjs/es6/persisters/persister-electric-sql/index.cjs +82 -102
  112. package/cjs/es6/persisters/persister-electric-sql/with-schemas/index.cjs +82 -102
  113. package/cjs/es6/persisters/persister-expo-sqlite/index.cjs +82 -102
  114. package/cjs/es6/persisters/persister-expo-sqlite/with-schemas/index.cjs +82 -102
  115. package/cjs/es6/persisters/persister-libsql/index.cjs +82 -102
  116. package/cjs/es6/persisters/persister-libsql/with-schemas/index.cjs +82 -102
  117. package/cjs/es6/persisters/persister-pglite/index.cjs +82 -102
  118. package/cjs/es6/persisters/persister-pglite/with-schemas/index.cjs +82 -102
  119. package/cjs/es6/persisters/persister-postgres/index.cjs +81 -101
  120. package/cjs/es6/persisters/persister-postgres/with-schemas/index.cjs +81 -101
  121. package/cjs/es6/persisters/persister-powersync/index.cjs +212 -147
  122. package/cjs/es6/persisters/persister-powersync/with-schemas/index.cjs +212 -147
  123. package/cjs/es6/persisters/persister-sqlite-wasm/index.cjs +82 -102
  124. package/cjs/es6/persisters/persister-sqlite-wasm/with-schemas/index.cjs +82 -102
  125. package/cjs/es6/persisters/persister-sqlite3/index.cjs +82 -102
  126. package/cjs/es6/persisters/persister-sqlite3/with-schemas/index.cjs +82 -102
  127. package/cjs/es6/persisters/with-schemas/index.cjs +83 -103
  128. package/cjs/es6/queries/index.cjs +1 -1
  129. package/cjs/es6/queries/with-schemas/index.cjs +1 -1
  130. package/cjs/es6/store/index.cjs +0 -6
  131. package/cjs/es6/store/with-schemas/index.cjs +0 -6
  132. package/cjs/es6/synchronizers/index.cjs +5 -7
  133. package/cjs/es6/synchronizers/synchronizer-broadcast-channel/index.cjs +5 -7
  134. package/cjs/es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs +5 -7
  135. package/cjs/es6/synchronizers/synchronizer-local/index.cjs +5 -7
  136. package/cjs/es6/synchronizers/synchronizer-local/with-schemas/index.cjs +5 -7
  137. package/cjs/es6/synchronizers/synchronizer-ws-client/index.cjs +5 -7
  138. package/cjs/es6/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +5 -7
  139. package/cjs/es6/synchronizers/synchronizer-ws-server/index.cjs +5 -7
  140. package/cjs/es6/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +5 -7
  141. package/cjs/es6/synchronizers/with-schemas/index.cjs +5 -7
  142. package/cjs/es6/tools/index.cjs +7 -4
  143. package/cjs/es6/tools/with-schemas/index.cjs +7 -4
  144. package/cjs/es6/ui-react/index.cjs +101 -109
  145. package/cjs/es6/ui-react/with-schemas/index.cjs +101 -109
  146. package/cjs/es6/ui-react-dom/index.cjs +14 -8
  147. package/cjs/es6/ui-react-dom/with-schemas/index.cjs +14 -8
  148. package/cjs/es6/ui-react-inspector/index.cjs +17 -17
  149. package/cjs/es6/ui-react-inspector/with-schemas/index.cjs +17 -17
  150. package/cjs/es6/with-schemas/index.cjs +18 -12
  151. package/cjs/index.cjs +18 -12
  152. package/cjs/indexes/index.cjs +0 -6
  153. package/cjs/indexes/with-schemas/index.cjs +0 -6
  154. package/cjs/mergeable-store/index.cjs +17 -11
  155. package/cjs/mergeable-store/with-schemas/index.cjs +17 -11
  156. package/cjs/metrics/index.cjs +1 -1
  157. package/cjs/metrics/with-schemas/index.cjs +1 -1
  158. package/cjs/min/common/index.cjs +1 -1
  159. package/cjs/min/common/index.cjs.gz +0 -0
  160. package/cjs/min/common/with-schemas/index.cjs +1 -1
  161. package/cjs/min/common/with-schemas/index.cjs.gz +0 -0
  162. package/cjs/min/index.cjs +1 -1
  163. package/cjs/min/index.cjs.gz +0 -0
  164. package/cjs/min/indexes/index.cjs +1 -1
  165. package/cjs/min/indexes/index.cjs.gz +0 -0
  166. package/cjs/min/indexes/with-schemas/index.cjs +1 -1
  167. package/cjs/min/indexes/with-schemas/index.cjs.gz +0 -0
  168. package/cjs/min/mergeable-store/index.cjs +1 -1
  169. package/cjs/min/mergeable-store/index.cjs.gz +0 -0
  170. package/cjs/min/mergeable-store/with-schemas/index.cjs +1 -1
  171. package/cjs/min/mergeable-store/with-schemas/index.cjs.gz +0 -0
  172. package/cjs/min/persisters/index.cjs +1 -1
  173. package/cjs/min/persisters/index.cjs.gz +0 -0
  174. package/cjs/min/persisters/persister-cr-sqlite-wasm/index.cjs +1 -1
  175. package/cjs/min/persisters/persister-cr-sqlite-wasm/index.cjs.gz +0 -0
  176. package/cjs/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +1 -1
  177. package/cjs/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
  178. package/cjs/min/persisters/persister-electric-sql/index.cjs +1 -1
  179. package/cjs/min/persisters/persister-electric-sql/index.cjs.gz +0 -0
  180. package/cjs/min/persisters/persister-electric-sql/with-schemas/index.cjs +1 -1
  181. package/cjs/min/persisters/persister-electric-sql/with-schemas/index.cjs.gz +0 -0
  182. package/cjs/min/persisters/persister-expo-sqlite/index.cjs +1 -1
  183. package/cjs/min/persisters/persister-expo-sqlite/index.cjs.gz +0 -0
  184. package/cjs/min/persisters/persister-expo-sqlite/with-schemas/index.cjs +1 -1
  185. package/cjs/min/persisters/persister-expo-sqlite/with-schemas/index.cjs.gz +0 -0
  186. package/cjs/min/persisters/persister-libsql/index.cjs +1 -1
  187. package/cjs/min/persisters/persister-libsql/index.cjs.gz +0 -0
  188. package/cjs/min/persisters/persister-libsql/with-schemas/index.cjs +1 -1
  189. package/cjs/min/persisters/persister-libsql/with-schemas/index.cjs.gz +0 -0
  190. package/cjs/min/persisters/persister-pglite/index.cjs +1 -1
  191. package/cjs/min/persisters/persister-pglite/index.cjs.gz +0 -0
  192. package/cjs/min/persisters/persister-pglite/with-schemas/index.cjs +1 -1
  193. package/cjs/min/persisters/persister-pglite/with-schemas/index.cjs.gz +0 -0
  194. package/cjs/min/persisters/persister-postgres/index.cjs +1 -1
  195. package/cjs/min/persisters/persister-postgres/index.cjs.gz +0 -0
  196. package/cjs/min/persisters/persister-postgres/with-schemas/index.cjs +1 -1
  197. package/cjs/min/persisters/persister-postgres/with-schemas/index.cjs.gz +0 -0
  198. package/cjs/min/persisters/persister-powersync/index.cjs +1 -1
  199. package/cjs/min/persisters/persister-powersync/index.cjs.gz +0 -0
  200. package/cjs/min/persisters/persister-powersync/with-schemas/index.cjs +1 -1
  201. package/cjs/min/persisters/persister-powersync/with-schemas/index.cjs.gz +0 -0
  202. package/cjs/min/persisters/persister-sqlite-wasm/index.cjs +1 -1
  203. package/cjs/min/persisters/persister-sqlite-wasm/index.cjs.gz +0 -0
  204. package/cjs/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs +1 -1
  205. package/cjs/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
  206. package/cjs/min/persisters/persister-sqlite3/index.cjs +1 -1
  207. package/cjs/min/persisters/persister-sqlite3/index.cjs.gz +0 -0
  208. package/cjs/min/persisters/persister-sqlite3/with-schemas/index.cjs +1 -1
  209. package/cjs/min/persisters/persister-sqlite3/with-schemas/index.cjs.gz +0 -0
  210. package/cjs/min/persisters/with-schemas/index.cjs +1 -1
  211. package/cjs/min/persisters/with-schemas/index.cjs.gz +0 -0
  212. package/cjs/min/store/index.cjs +1 -1
  213. package/cjs/min/store/index.cjs.gz +0 -0
  214. package/cjs/min/store/with-schemas/index.cjs +1 -1
  215. package/cjs/min/store/with-schemas/index.cjs.gz +0 -0
  216. package/cjs/min/synchronizers/index.cjs +1 -1
  217. package/cjs/min/synchronizers/index.cjs.gz +0 -0
  218. package/cjs/min/synchronizers/synchronizer-broadcast-channel/index.cjs +1 -1
  219. package/cjs/min/synchronizers/synchronizer-broadcast-channel/index.cjs.gz +0 -0
  220. package/cjs/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs +1 -1
  221. package/cjs/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs.gz +0 -0
  222. package/cjs/min/synchronizers/synchronizer-local/index.cjs +1 -1
  223. package/cjs/min/synchronizers/synchronizer-local/index.cjs.gz +0 -0
  224. package/cjs/min/synchronizers/synchronizer-local/with-schemas/index.cjs +1 -1
  225. package/cjs/min/synchronizers/synchronizer-local/with-schemas/index.cjs.gz +0 -0
  226. package/cjs/min/synchronizers/synchronizer-ws-client/index.cjs +1 -1
  227. package/cjs/min/synchronizers/synchronizer-ws-client/index.cjs.gz +0 -0
  228. package/cjs/min/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +1 -1
  229. package/cjs/min/synchronizers/synchronizer-ws-client/with-schemas/index.cjs.gz +0 -0
  230. package/cjs/min/synchronizers/synchronizer-ws-server/index.cjs +1 -1
  231. package/cjs/min/synchronizers/synchronizer-ws-server/index.cjs.gz +0 -0
  232. package/cjs/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +1 -1
  233. package/cjs/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs.gz +0 -0
  234. package/cjs/min/synchronizers/with-schemas/index.cjs +1 -1
  235. package/cjs/min/synchronizers/with-schemas/index.cjs.gz +0 -0
  236. package/cjs/min/tools/index.cjs +1 -1
  237. package/cjs/min/tools/index.cjs.gz +0 -0
  238. package/cjs/min/tools/with-schemas/index.cjs +1 -1
  239. package/cjs/min/tools/with-schemas/index.cjs.gz +0 -0
  240. package/cjs/min/ui-react/index.cjs +1 -1
  241. package/cjs/min/ui-react/index.cjs.gz +0 -0
  242. package/cjs/min/ui-react/with-schemas/index.cjs +1 -1
  243. package/cjs/min/ui-react/with-schemas/index.cjs.gz +0 -0
  244. package/cjs/min/ui-react-dom/index.cjs +1 -1
  245. package/cjs/min/ui-react-dom/index.cjs.gz +0 -0
  246. package/cjs/min/ui-react-dom/with-schemas/index.cjs +1 -1
  247. package/cjs/min/ui-react-dom/with-schemas/index.cjs.gz +0 -0
  248. package/cjs/min/ui-react-inspector/index.cjs +1 -1
  249. package/cjs/min/ui-react-inspector/index.cjs.gz +0 -0
  250. package/cjs/min/ui-react-inspector/with-schemas/index.cjs +1 -1
  251. package/cjs/min/ui-react-inspector/with-schemas/index.cjs.gz +0 -0
  252. package/cjs/min/with-schemas/index.cjs +1 -1
  253. package/cjs/min/with-schemas/index.cjs.gz +0 -0
  254. package/cjs/persisters/index.cjs +80 -98
  255. package/cjs/persisters/persister-cr-sqlite-wasm/index.cjs +79 -97
  256. package/cjs/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +79 -97
  257. package/cjs/persisters/persister-electric-sql/index.cjs +79 -97
  258. package/cjs/persisters/persister-electric-sql/with-schemas/index.cjs +79 -97
  259. package/cjs/persisters/persister-expo-sqlite/index.cjs +79 -97
  260. package/cjs/persisters/persister-expo-sqlite/with-schemas/index.cjs +79 -97
  261. package/cjs/persisters/persister-libsql/index.cjs +79 -97
  262. package/cjs/persisters/persister-libsql/with-schemas/index.cjs +79 -97
  263. package/cjs/persisters/persister-pglite/index.cjs +79 -97
  264. package/cjs/persisters/persister-pglite/with-schemas/index.cjs +79 -97
  265. package/cjs/persisters/persister-postgres/index.cjs +78 -96
  266. package/cjs/persisters/persister-postgres/with-schemas/index.cjs +78 -96
  267. package/cjs/persisters/persister-powersync/index.cjs +203 -142
  268. package/cjs/persisters/persister-powersync/with-schemas/index.cjs +203 -142
  269. package/cjs/persisters/persister-sqlite-wasm/index.cjs +79 -97
  270. package/cjs/persisters/persister-sqlite-wasm/with-schemas/index.cjs +79 -97
  271. package/cjs/persisters/persister-sqlite3/index.cjs +79 -97
  272. package/cjs/persisters/persister-sqlite3/with-schemas/index.cjs +79 -97
  273. package/cjs/persisters/with-schemas/index.cjs +80 -98
  274. package/cjs/queries/index.cjs +1 -1
  275. package/cjs/queries/with-schemas/index.cjs +1 -1
  276. package/cjs/store/index.cjs +0 -6
  277. package/cjs/store/with-schemas/index.cjs +0 -6
  278. package/cjs/synchronizers/index.cjs +5 -7
  279. package/cjs/synchronizers/synchronizer-broadcast-channel/index.cjs +5 -7
  280. package/cjs/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs +5 -7
  281. package/cjs/synchronizers/synchronizer-local/index.cjs +5 -7
  282. package/cjs/synchronizers/synchronizer-local/with-schemas/index.cjs +5 -7
  283. package/cjs/synchronizers/synchronizer-ws-client/index.cjs +5 -7
  284. package/cjs/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +5 -7
  285. package/cjs/synchronizers/synchronizer-ws-server/index.cjs +5 -7
  286. package/cjs/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +5 -7
  287. package/cjs/synchronizers/with-schemas/index.cjs +5 -7
  288. package/cjs/tools/index.cjs +7 -4
  289. package/cjs/tools/with-schemas/index.cjs +7 -4
  290. package/cjs/ui-react/index.cjs +97 -107
  291. package/cjs/ui-react/with-schemas/index.cjs +97 -107
  292. package/cjs/ui-react-dom/index.cjs +14 -8
  293. package/cjs/ui-react-dom/with-schemas/index.cjs +14 -8
  294. package/cjs/ui-react-inspector/index.cjs +17 -17
  295. package/cjs/ui-react-inspector/with-schemas/index.cjs +17 -17
  296. package/cjs/with-schemas/index.cjs +18 -12
  297. package/common/index.js +5 -7
  298. package/common/with-schemas/index.js +5 -7
  299. package/es6/common/index.js +5 -7
  300. package/es6/common/with-schemas/index.js +5 -7
  301. package/es6/index.js +18 -12
  302. package/es6/indexes/index.js +0 -6
  303. package/es6/indexes/with-schemas/index.js +0 -6
  304. package/es6/mergeable-store/index.js +17 -11
  305. package/es6/mergeable-store/with-schemas/index.js +17 -11
  306. package/es6/metrics/index.js +1 -1
  307. package/es6/metrics/with-schemas/index.js +1 -1
  308. package/es6/min/common/index.js +1 -1
  309. package/es6/min/common/index.js.gz +0 -0
  310. package/es6/min/common/with-schemas/index.js +1 -1
  311. package/es6/min/common/with-schemas/index.js.gz +0 -0
  312. package/es6/min/index.js +1 -1
  313. package/es6/min/index.js.gz +0 -0
  314. package/es6/min/indexes/index.js +1 -1
  315. package/es6/min/indexes/index.js.gz +0 -0
  316. package/es6/min/indexes/with-schemas/index.js +1 -1
  317. package/es6/min/indexes/with-schemas/index.js.gz +0 -0
  318. package/es6/min/mergeable-store/index.js +1 -1
  319. package/es6/min/mergeable-store/index.js.gz +0 -0
  320. package/es6/min/mergeable-store/with-schemas/index.js +1 -1
  321. package/es6/min/mergeable-store/with-schemas/index.js.gz +0 -0
  322. package/es6/min/persisters/index.js +1 -1
  323. package/es6/min/persisters/index.js.gz +0 -0
  324. package/es6/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  325. package/es6/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  326. package/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  327. package/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  328. package/es6/min/persisters/persister-electric-sql/index.js +1 -1
  329. package/es6/min/persisters/persister-electric-sql/index.js.gz +0 -0
  330. package/es6/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  331. package/es6/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  332. package/es6/min/persisters/persister-expo-sqlite/index.js +1 -1
  333. package/es6/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  334. package/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  335. package/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  336. package/es6/min/persisters/persister-libsql/index.js +1 -1
  337. package/es6/min/persisters/persister-libsql/index.js.gz +0 -0
  338. package/es6/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  339. package/es6/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  340. package/es6/min/persisters/persister-pglite/index.js +1 -1
  341. package/es6/min/persisters/persister-pglite/index.js.gz +0 -0
  342. package/es6/min/persisters/persister-pglite/with-schemas/index.js +1 -1
  343. package/es6/min/persisters/persister-pglite/with-schemas/index.js.gz +0 -0
  344. package/es6/min/persisters/persister-postgres/index.js +1 -1
  345. package/es6/min/persisters/persister-postgres/index.js.gz +0 -0
  346. package/es6/min/persisters/persister-postgres/with-schemas/index.js +1 -1
  347. package/es6/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
  348. package/es6/min/persisters/persister-powersync/index.js +1 -1
  349. package/es6/min/persisters/persister-powersync/index.js.gz +0 -0
  350. package/es6/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  351. package/es6/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  352. package/es6/min/persisters/persister-sqlite-wasm/index.js +1 -1
  353. package/es6/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  354. package/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  355. package/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  356. package/es6/min/persisters/persister-sqlite3/index.js +1 -1
  357. package/es6/min/persisters/persister-sqlite3/index.js.gz +0 -0
  358. package/es6/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  359. package/es6/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  360. package/es6/min/persisters/with-schemas/index.js +1 -1
  361. package/es6/min/persisters/with-schemas/index.js.gz +0 -0
  362. package/es6/min/store/index.js +1 -1
  363. package/es6/min/store/index.js.gz +0 -0
  364. package/es6/min/store/with-schemas/index.js +1 -1
  365. package/es6/min/store/with-schemas/index.js.gz +0 -0
  366. package/es6/min/synchronizers/index.js +1 -1
  367. package/es6/min/synchronizers/index.js.gz +0 -0
  368. package/es6/min/synchronizers/synchronizer-broadcast-channel/index.js +1 -1
  369. package/es6/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
  370. package/es6/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -1
  371. package/es6/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
  372. package/es6/min/synchronizers/synchronizer-local/index.js +1 -1
  373. package/es6/min/synchronizers/synchronizer-local/index.js.gz +0 -0
  374. package/es6/min/synchronizers/synchronizer-local/with-schemas/index.js +1 -1
  375. package/es6/min/synchronizers/synchronizer-local/with-schemas/index.js.gz +0 -0
  376. package/es6/min/synchronizers/synchronizer-ws-client/index.js +1 -1
  377. package/es6/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
  378. package/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
  379. package/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
  380. package/es6/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  381. package/es6/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  382. package/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  383. package/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  384. package/es6/min/synchronizers/with-schemas/index.js +1 -1
  385. package/es6/min/synchronizers/with-schemas/index.js.gz +0 -0
  386. package/es6/min/tools/index.js +1 -1
  387. package/es6/min/tools/index.js.gz +0 -0
  388. package/es6/min/tools/with-schemas/index.js +1 -1
  389. package/es6/min/tools/with-schemas/index.js.gz +0 -0
  390. package/es6/min/ui-react/index.js +1 -1
  391. package/es6/min/ui-react/index.js.gz +0 -0
  392. package/es6/min/ui-react/with-schemas/index.js +1 -1
  393. package/es6/min/ui-react/with-schemas/index.js.gz +0 -0
  394. package/es6/min/ui-react-dom/index.js +1 -1
  395. package/es6/min/ui-react-dom/index.js.gz +0 -0
  396. package/es6/min/ui-react-dom/with-schemas/index.js +1 -1
  397. package/es6/min/ui-react-dom/with-schemas/index.js.gz +0 -0
  398. package/es6/min/ui-react-inspector/index.js +1 -1
  399. package/es6/min/ui-react-inspector/index.js.gz +0 -0
  400. package/es6/min/ui-react-inspector/with-schemas/index.js +1 -1
  401. package/es6/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
  402. package/es6/min/with-schemas/index.js +1 -1
  403. package/es6/min/with-schemas/index.js.gz +0 -0
  404. package/es6/persisters/index.js +83 -103
  405. package/es6/persisters/persister-cr-sqlite-wasm/index.js +82 -102
  406. package/es6/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +82 -102
  407. package/es6/persisters/persister-electric-sql/index.js +82 -102
  408. package/es6/persisters/persister-electric-sql/with-schemas/index.js +82 -102
  409. package/es6/persisters/persister-expo-sqlite/index.js +82 -102
  410. package/es6/persisters/persister-expo-sqlite/with-schemas/index.js +82 -102
  411. package/es6/persisters/persister-libsql/index.js +82 -102
  412. package/es6/persisters/persister-libsql/with-schemas/index.js +82 -102
  413. package/es6/persisters/persister-pglite/index.js +82 -102
  414. package/es6/persisters/persister-pglite/with-schemas/index.js +82 -102
  415. package/es6/persisters/persister-postgres/index.js +81 -101
  416. package/es6/persisters/persister-postgres/with-schemas/index.js +81 -101
  417. package/es6/persisters/persister-powersync/index.js +212 -147
  418. package/es6/persisters/persister-powersync/with-schemas/index.js +212 -147
  419. package/es6/persisters/persister-sqlite-wasm/index.js +82 -102
  420. package/es6/persisters/persister-sqlite-wasm/with-schemas/index.js +82 -102
  421. package/es6/persisters/persister-sqlite3/index.js +82 -102
  422. package/es6/persisters/persister-sqlite3/with-schemas/index.js +82 -102
  423. package/es6/persisters/with-schemas/index.js +83 -103
  424. package/es6/queries/index.js +1 -1
  425. package/es6/queries/with-schemas/index.js +1 -1
  426. package/es6/store/index.js +0 -6
  427. package/es6/store/with-schemas/index.js +0 -6
  428. package/es6/synchronizers/index.js +5 -7
  429. package/es6/synchronizers/synchronizer-broadcast-channel/index.js +5 -7
  430. package/es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +5 -7
  431. package/es6/synchronizers/synchronizer-local/index.js +5 -7
  432. package/es6/synchronizers/synchronizer-local/with-schemas/index.js +5 -7
  433. package/es6/synchronizers/synchronizer-ws-client/index.js +5 -7
  434. package/es6/synchronizers/synchronizer-ws-client/with-schemas/index.js +5 -7
  435. package/es6/synchronizers/synchronizer-ws-server/index.js +5 -7
  436. package/es6/synchronizers/synchronizer-ws-server/with-schemas/index.js +5 -7
  437. package/es6/synchronizers/with-schemas/index.js +5 -7
  438. package/es6/tools/index.js +7 -4
  439. package/es6/tools/with-schemas/index.js +7 -4
  440. package/es6/ui-react/index.js +101 -109
  441. package/es6/ui-react/with-schemas/index.js +101 -109
  442. package/es6/ui-react-dom/index.js +14 -8
  443. package/es6/ui-react-dom/with-schemas/index.js +14 -8
  444. package/es6/ui-react-inspector/index.js +17 -17
  445. package/es6/ui-react-inspector/with-schemas/index.js +17 -17
  446. package/es6/with-schemas/index.js +18 -12
  447. package/index.js +18 -12
  448. package/indexes/index.js +0 -6
  449. package/indexes/with-schemas/index.js +0 -6
  450. package/mergeable-store/index.js +17 -11
  451. package/mergeable-store/with-schemas/index.js +17 -11
  452. package/metrics/index.js +1 -1
  453. package/metrics/with-schemas/index.js +1 -1
  454. package/min/common/index.js +1 -1
  455. package/min/common/index.js.gz +0 -0
  456. package/min/common/with-schemas/index.js +1 -1
  457. package/min/common/with-schemas/index.js.gz +0 -0
  458. package/min/index.js +1 -1
  459. package/min/index.js.gz +0 -0
  460. package/min/indexes/index.js +1 -1
  461. package/min/indexes/index.js.gz +0 -0
  462. package/min/indexes/with-schemas/index.js +1 -1
  463. package/min/indexes/with-schemas/index.js.gz +0 -0
  464. package/min/mergeable-store/index.js +1 -1
  465. package/min/mergeable-store/index.js.gz +0 -0
  466. package/min/mergeable-store/with-schemas/index.js +1 -1
  467. package/min/mergeable-store/with-schemas/index.js.gz +0 -0
  468. package/min/persisters/index.js +1 -1
  469. package/min/persisters/index.js.gz +0 -0
  470. package/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  471. package/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  472. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  473. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  474. package/min/persisters/persister-electric-sql/index.js +1 -1
  475. package/min/persisters/persister-electric-sql/index.js.gz +0 -0
  476. package/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  477. package/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  478. package/min/persisters/persister-expo-sqlite/index.js +1 -1
  479. package/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  480. package/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  481. package/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  482. package/min/persisters/persister-libsql/index.js +1 -1
  483. package/min/persisters/persister-libsql/index.js.gz +0 -0
  484. package/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  485. package/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  486. package/min/persisters/persister-pglite/index.js +1 -1
  487. package/min/persisters/persister-pglite/index.js.gz +0 -0
  488. package/min/persisters/persister-pglite/with-schemas/index.js +1 -1
  489. package/min/persisters/persister-pglite/with-schemas/index.js.gz +0 -0
  490. package/min/persisters/persister-postgres/index.js +1 -1
  491. package/min/persisters/persister-postgres/index.js.gz +0 -0
  492. package/min/persisters/persister-postgres/with-schemas/index.js +1 -1
  493. package/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
  494. package/min/persisters/persister-powersync/index.js +1 -1
  495. package/min/persisters/persister-powersync/index.js.gz +0 -0
  496. package/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  497. package/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  498. package/min/persisters/persister-sqlite-wasm/index.js +1 -1
  499. package/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  500. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  501. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  502. package/min/persisters/persister-sqlite3/index.js +1 -1
  503. package/min/persisters/persister-sqlite3/index.js.gz +0 -0
  504. package/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  505. package/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  506. package/min/persisters/with-schemas/index.js +1 -1
  507. package/min/persisters/with-schemas/index.js.gz +0 -0
  508. package/min/store/index.js +1 -1
  509. package/min/store/index.js.gz +0 -0
  510. package/min/store/with-schemas/index.js +1 -1
  511. package/min/store/with-schemas/index.js.gz +0 -0
  512. package/min/synchronizers/index.js +1 -1
  513. package/min/synchronizers/index.js.gz +0 -0
  514. package/min/synchronizers/synchronizer-broadcast-channel/index.js +1 -1
  515. package/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
  516. package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -1
  517. package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
  518. package/min/synchronizers/synchronizer-local/index.js +1 -1
  519. package/min/synchronizers/synchronizer-local/index.js.gz +0 -0
  520. package/min/synchronizers/synchronizer-local/with-schemas/index.js +1 -1
  521. package/min/synchronizers/synchronizer-local/with-schemas/index.js.gz +0 -0
  522. package/min/synchronizers/synchronizer-ws-client/index.js +1 -1
  523. package/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
  524. package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
  525. package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
  526. package/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  527. package/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  528. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  529. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  530. package/min/synchronizers/with-schemas/index.js +1 -1
  531. package/min/synchronizers/with-schemas/index.js.gz +0 -0
  532. package/min/tools/index.js +1 -1
  533. package/min/tools/index.js.gz +0 -0
  534. package/min/tools/with-schemas/index.js +1 -1
  535. package/min/tools/with-schemas/index.js.gz +0 -0
  536. package/min/ui-react/index.js +1 -1
  537. package/min/ui-react/index.js.gz +0 -0
  538. package/min/ui-react/with-schemas/index.js +1 -1
  539. package/min/ui-react/with-schemas/index.js.gz +0 -0
  540. package/min/ui-react-dom/index.js +1 -1
  541. package/min/ui-react-dom/index.js.gz +0 -0
  542. package/min/ui-react-dom/with-schemas/index.js +1 -1
  543. package/min/ui-react-dom/with-schemas/index.js.gz +0 -0
  544. package/min/ui-react-inspector/index.js +1 -1
  545. package/min/ui-react-inspector/index.js.gz +0 -0
  546. package/min/ui-react-inspector/with-schemas/index.js +1 -1
  547. package/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
  548. package/min/with-schemas/index.js +1 -1
  549. package/min/with-schemas/index.js.gz +0 -0
  550. package/package.json +6 -6
  551. package/persisters/index.js +80 -98
  552. package/persisters/persister-cr-sqlite-wasm/index.js +79 -97
  553. package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +79 -97
  554. package/persisters/persister-electric-sql/index.js +79 -97
  555. package/persisters/persister-electric-sql/with-schemas/index.js +79 -97
  556. package/persisters/persister-expo-sqlite/index.js +79 -97
  557. package/persisters/persister-expo-sqlite/with-schemas/index.js +79 -97
  558. package/persisters/persister-libsql/index.js +79 -97
  559. package/persisters/persister-libsql/with-schemas/index.js +79 -97
  560. package/persisters/persister-pglite/index.js +79 -97
  561. package/persisters/persister-pglite/with-schemas/index.js +79 -97
  562. package/persisters/persister-postgres/index.js +78 -96
  563. package/persisters/persister-postgres/with-schemas/index.js +78 -96
  564. package/persisters/persister-powersync/index.js +203 -142
  565. package/persisters/persister-powersync/with-schemas/index.js +203 -142
  566. package/persisters/persister-sqlite-wasm/index.js +79 -97
  567. package/persisters/persister-sqlite-wasm/with-schemas/index.js +79 -97
  568. package/persisters/persister-sqlite3/index.js +79 -97
  569. package/persisters/persister-sqlite3/with-schemas/index.js +79 -97
  570. package/persisters/with-schemas/index.js +80 -98
  571. package/queries/index.js +1 -1
  572. package/queries/with-schemas/index.js +1 -1
  573. package/readme.md +2 -2
  574. package/store/index.js +0 -6
  575. package/store/with-schemas/index.js +0 -6
  576. package/synchronizers/index.js +5 -7
  577. package/synchronizers/synchronizer-broadcast-channel/index.js +5 -7
  578. package/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +5 -7
  579. package/synchronizers/synchronizer-local/index.js +5 -7
  580. package/synchronizers/synchronizer-local/with-schemas/index.js +5 -7
  581. package/synchronizers/synchronizer-ws-client/index.js +5 -7
  582. package/synchronizers/synchronizer-ws-client/with-schemas/index.js +5 -7
  583. package/synchronizers/synchronizer-ws-server/index.js +5 -7
  584. package/synchronizers/synchronizer-ws-server/with-schemas/index.js +5 -7
  585. package/synchronizers/with-schemas/index.js +5 -7
  586. package/tools/index.js +7 -4
  587. package/tools/with-schemas/index.js +7 -4
  588. package/ui-react/index.js +97 -107
  589. package/ui-react/with-schemas/index.js +97 -107
  590. package/ui-react-dom/index.js +14 -8
  591. package/ui-react-dom/with-schemas/index.js +14 -8
  592. package/ui-react-inspector/index.js +17 -17
  593. package/ui-react-inspector/with-schemas/index.js +17 -17
  594. package/umd/common/index.js +5 -7
  595. package/umd/common/with-schemas/index.js +5 -7
  596. package/umd/es6/common/index.js +5 -7
  597. package/umd/es6/common/with-schemas/index.js +5 -7
  598. package/umd/es6/index.js +18 -12
  599. package/umd/es6/indexes/index.js +0 -6
  600. package/umd/es6/indexes/with-schemas/index.js +0 -6
  601. package/umd/es6/mergeable-store/index.js +17 -11
  602. package/umd/es6/mergeable-store/with-schemas/index.js +17 -11
  603. package/umd/es6/metrics/index.js +1 -1
  604. package/umd/es6/metrics/with-schemas/index.js +1 -1
  605. package/umd/es6/min/common/index.js +1 -1
  606. package/umd/es6/min/common/index.js.gz +0 -0
  607. package/umd/es6/min/common/with-schemas/index.js +1 -1
  608. package/umd/es6/min/common/with-schemas/index.js.gz +0 -0
  609. package/umd/es6/min/index.js +1 -1
  610. package/umd/es6/min/index.js.gz +0 -0
  611. package/umd/es6/min/indexes/index.js +1 -1
  612. package/umd/es6/min/indexes/index.js.gz +0 -0
  613. package/umd/es6/min/indexes/with-schemas/index.js +1 -1
  614. package/umd/es6/min/indexes/with-schemas/index.js.gz +0 -0
  615. package/umd/es6/min/mergeable-store/index.js +1 -1
  616. package/umd/es6/min/mergeable-store/index.js.gz +0 -0
  617. package/umd/es6/min/mergeable-store/with-schemas/index.js +1 -1
  618. package/umd/es6/min/mergeable-store/with-schemas/index.js.gz +0 -0
  619. package/umd/es6/min/persisters/index.js +1 -1
  620. package/umd/es6/min/persisters/index.js.gz +0 -0
  621. package/umd/es6/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  622. package/umd/es6/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  623. package/umd/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  624. package/umd/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  625. package/umd/es6/min/persisters/persister-electric-sql/index.js +1 -1
  626. package/umd/es6/min/persisters/persister-electric-sql/index.js.gz +0 -0
  627. package/umd/es6/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  628. package/umd/es6/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  629. package/umd/es6/min/persisters/persister-expo-sqlite/index.js +1 -1
  630. package/umd/es6/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  631. package/umd/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  632. package/umd/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  633. package/umd/es6/min/persisters/persister-libsql/index.js +1 -1
  634. package/umd/es6/min/persisters/persister-libsql/index.js.gz +0 -0
  635. package/umd/es6/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  636. package/umd/es6/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  637. package/umd/es6/min/persisters/persister-pglite/index.js +1 -1
  638. package/umd/es6/min/persisters/persister-pglite/index.js.gz +0 -0
  639. package/umd/es6/min/persisters/persister-pglite/with-schemas/index.js +1 -1
  640. package/umd/es6/min/persisters/persister-pglite/with-schemas/index.js.gz +0 -0
  641. package/umd/es6/min/persisters/persister-postgres/index.js +1 -1
  642. package/umd/es6/min/persisters/persister-postgres/index.js.gz +0 -0
  643. package/umd/es6/min/persisters/persister-postgres/with-schemas/index.js +1 -1
  644. package/umd/es6/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
  645. package/umd/es6/min/persisters/persister-powersync/index.js +1 -1
  646. package/umd/es6/min/persisters/persister-powersync/index.js.gz +0 -0
  647. package/umd/es6/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  648. package/umd/es6/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  649. package/umd/es6/min/persisters/persister-sqlite-wasm/index.js +1 -1
  650. package/umd/es6/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  651. package/umd/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  652. package/umd/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  653. package/umd/es6/min/persisters/persister-sqlite3/index.js +1 -1
  654. package/umd/es6/min/persisters/persister-sqlite3/index.js.gz +0 -0
  655. package/umd/es6/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  656. package/umd/es6/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  657. package/umd/es6/min/persisters/with-schemas/index.js +1 -1
  658. package/umd/es6/min/persisters/with-schemas/index.js.gz +0 -0
  659. package/umd/es6/min/store/index.js +1 -1
  660. package/umd/es6/min/store/index.js.gz +0 -0
  661. package/umd/es6/min/store/with-schemas/index.js +1 -1
  662. package/umd/es6/min/store/with-schemas/index.js.gz +0 -0
  663. package/umd/es6/min/synchronizers/index.js +1 -1
  664. package/umd/es6/min/synchronizers/index.js.gz +0 -0
  665. package/umd/es6/min/synchronizers/synchronizer-broadcast-channel/index.js +1 -1
  666. package/umd/es6/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
  667. package/umd/es6/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -1
  668. package/umd/es6/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
  669. package/umd/es6/min/synchronizers/synchronizer-local/index.js +1 -1
  670. package/umd/es6/min/synchronizers/synchronizer-local/index.js.gz +0 -0
  671. package/umd/es6/min/synchronizers/synchronizer-local/with-schemas/index.js +1 -1
  672. package/umd/es6/min/synchronizers/synchronizer-local/with-schemas/index.js.gz +0 -0
  673. package/umd/es6/min/synchronizers/synchronizer-ws-client/index.js +1 -1
  674. package/umd/es6/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
  675. package/umd/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
  676. package/umd/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
  677. package/umd/es6/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  678. package/umd/es6/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  679. package/umd/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  680. package/umd/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  681. package/umd/es6/min/synchronizers/with-schemas/index.js +1 -1
  682. package/umd/es6/min/synchronizers/with-schemas/index.js.gz +0 -0
  683. package/umd/es6/min/tools/index.js +1 -1
  684. package/umd/es6/min/tools/index.js.gz +0 -0
  685. package/umd/es6/min/tools/with-schemas/index.js +1 -1
  686. package/umd/es6/min/tools/with-schemas/index.js.gz +0 -0
  687. package/umd/es6/min/ui-react/index.js +1 -1
  688. package/umd/es6/min/ui-react/index.js.gz +0 -0
  689. package/umd/es6/min/ui-react/with-schemas/index.js +1 -1
  690. package/umd/es6/min/ui-react/with-schemas/index.js.gz +0 -0
  691. package/umd/es6/min/ui-react-dom/index.js +1 -1
  692. package/umd/es6/min/ui-react-dom/index.js.gz +0 -0
  693. package/umd/es6/min/ui-react-dom/with-schemas/index.js +1 -1
  694. package/umd/es6/min/ui-react-dom/with-schemas/index.js.gz +0 -0
  695. package/umd/es6/min/ui-react-inspector/index.js +1 -1
  696. package/umd/es6/min/ui-react-inspector/index.js.gz +0 -0
  697. package/umd/es6/min/ui-react-inspector/with-schemas/index.js +1 -1
  698. package/umd/es6/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
  699. package/umd/es6/min/with-schemas/index.js +1 -1
  700. package/umd/es6/min/with-schemas/index.js.gz +0 -0
  701. package/umd/es6/persisters/index.js +83 -103
  702. package/umd/es6/persisters/persister-cr-sqlite-wasm/index.js +82 -102
  703. package/umd/es6/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +82 -102
  704. package/umd/es6/persisters/persister-electric-sql/index.js +82 -102
  705. package/umd/es6/persisters/persister-electric-sql/with-schemas/index.js +82 -102
  706. package/umd/es6/persisters/persister-expo-sqlite/index.js +82 -102
  707. package/umd/es6/persisters/persister-expo-sqlite/with-schemas/index.js +82 -102
  708. package/umd/es6/persisters/persister-libsql/index.js +82 -102
  709. package/umd/es6/persisters/persister-libsql/with-schemas/index.js +82 -102
  710. package/umd/es6/persisters/persister-pglite/index.js +82 -102
  711. package/umd/es6/persisters/persister-pglite/with-schemas/index.js +82 -102
  712. package/umd/es6/persisters/persister-postgres/index.js +81 -101
  713. package/umd/es6/persisters/persister-postgres/with-schemas/index.js +81 -101
  714. package/umd/es6/persisters/persister-powersync/index.js +212 -147
  715. package/umd/es6/persisters/persister-powersync/with-schemas/index.js +212 -147
  716. package/umd/es6/persisters/persister-sqlite-wasm/index.js +82 -102
  717. package/umd/es6/persisters/persister-sqlite-wasm/with-schemas/index.js +82 -102
  718. package/umd/es6/persisters/persister-sqlite3/index.js +82 -102
  719. package/umd/es6/persisters/persister-sqlite3/with-schemas/index.js +82 -102
  720. package/umd/es6/persisters/with-schemas/index.js +83 -103
  721. package/umd/es6/queries/index.js +1 -1
  722. package/umd/es6/queries/with-schemas/index.js +1 -1
  723. package/umd/es6/store/index.js +0 -6
  724. package/umd/es6/store/with-schemas/index.js +0 -6
  725. package/umd/es6/synchronizers/index.js +5 -7
  726. package/umd/es6/synchronizers/synchronizer-broadcast-channel/index.js +5 -7
  727. package/umd/es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +5 -7
  728. package/umd/es6/synchronizers/synchronizer-local/index.js +5 -7
  729. package/umd/es6/synchronizers/synchronizer-local/with-schemas/index.js +5 -7
  730. package/umd/es6/synchronizers/synchronizer-ws-client/index.js +5 -7
  731. package/umd/es6/synchronizers/synchronizer-ws-client/with-schemas/index.js +5 -7
  732. package/umd/es6/synchronizers/synchronizer-ws-server/index.js +5 -7
  733. package/umd/es6/synchronizers/synchronizer-ws-server/with-schemas/index.js +5 -7
  734. package/umd/es6/synchronizers/with-schemas/index.js +5 -7
  735. package/umd/es6/tools/index.js +7 -4
  736. package/umd/es6/tools/with-schemas/index.js +7 -4
  737. package/umd/es6/ui-react/index.js +101 -118
  738. package/umd/es6/ui-react/with-schemas/index.js +101 -118
  739. package/umd/es6/ui-react-dom/index.js +14 -8
  740. package/umd/es6/ui-react-dom/with-schemas/index.js +14 -8
  741. package/umd/es6/ui-react-inspector/index.js +17 -17
  742. package/umd/es6/ui-react-inspector/with-schemas/index.js +17 -17
  743. package/umd/es6/with-schemas/index.js +18 -12
  744. package/umd/index.js +18 -12
  745. package/umd/indexes/index.js +0 -6
  746. package/umd/indexes/with-schemas/index.js +0 -6
  747. package/umd/mergeable-store/index.js +17 -11
  748. package/umd/mergeable-store/with-schemas/index.js +17 -11
  749. package/umd/metrics/index.js +1 -1
  750. package/umd/metrics/with-schemas/index.js +1 -1
  751. package/umd/min/common/index.js +1 -1
  752. package/umd/min/common/index.js.gz +0 -0
  753. package/umd/min/common/with-schemas/index.js +1 -1
  754. package/umd/min/common/with-schemas/index.js.gz +0 -0
  755. package/umd/min/index.js +1 -1
  756. package/umd/min/index.js.gz +0 -0
  757. package/umd/min/indexes/index.js +1 -1
  758. package/umd/min/indexes/index.js.gz +0 -0
  759. package/umd/min/indexes/with-schemas/index.js +1 -1
  760. package/umd/min/indexes/with-schemas/index.js.gz +0 -0
  761. package/umd/min/mergeable-store/index.js +1 -1
  762. package/umd/min/mergeable-store/index.js.gz +0 -0
  763. package/umd/min/mergeable-store/with-schemas/index.js +1 -1
  764. package/umd/min/mergeable-store/with-schemas/index.js.gz +0 -0
  765. package/umd/min/persisters/index.js +1 -1
  766. package/umd/min/persisters/index.js.gz +0 -0
  767. package/umd/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  768. package/umd/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  769. package/umd/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  770. package/umd/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  771. package/umd/min/persisters/persister-electric-sql/index.js +1 -1
  772. package/umd/min/persisters/persister-electric-sql/index.js.gz +0 -0
  773. package/umd/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  774. package/umd/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  775. package/umd/min/persisters/persister-expo-sqlite/index.js +1 -1
  776. package/umd/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  777. package/umd/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  778. package/umd/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  779. package/umd/min/persisters/persister-libsql/index.js +1 -1
  780. package/umd/min/persisters/persister-libsql/index.js.gz +0 -0
  781. package/umd/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  782. package/umd/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  783. package/umd/min/persisters/persister-pglite/index.js +1 -1
  784. package/umd/min/persisters/persister-pglite/index.js.gz +0 -0
  785. package/umd/min/persisters/persister-pglite/with-schemas/index.js +1 -1
  786. package/umd/min/persisters/persister-pglite/with-schemas/index.js.gz +0 -0
  787. package/umd/min/persisters/persister-postgres/index.js +1 -1
  788. package/umd/min/persisters/persister-postgres/index.js.gz +0 -0
  789. package/umd/min/persisters/persister-postgres/with-schemas/index.js +1 -1
  790. package/umd/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
  791. package/umd/min/persisters/persister-powersync/index.js +1 -1
  792. package/umd/min/persisters/persister-powersync/index.js.gz +0 -0
  793. package/umd/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  794. package/umd/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  795. package/umd/min/persisters/persister-sqlite-wasm/index.js +1 -1
  796. package/umd/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  797. package/umd/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  798. package/umd/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  799. package/umd/min/persisters/persister-sqlite3/index.js +1 -1
  800. package/umd/min/persisters/persister-sqlite3/index.js.gz +0 -0
  801. package/umd/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  802. package/umd/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  803. package/umd/min/persisters/with-schemas/index.js +1 -1
  804. package/umd/min/persisters/with-schemas/index.js.gz +0 -0
  805. package/umd/min/store/index.js +1 -1
  806. package/umd/min/store/index.js.gz +0 -0
  807. package/umd/min/store/with-schemas/index.js +1 -1
  808. package/umd/min/store/with-schemas/index.js.gz +0 -0
  809. package/umd/min/synchronizers/index.js +1 -1
  810. package/umd/min/synchronizers/index.js.gz +0 -0
  811. package/umd/min/synchronizers/synchronizer-broadcast-channel/index.js +1 -1
  812. package/umd/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
  813. package/umd/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -1
  814. package/umd/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
  815. package/umd/min/synchronizers/synchronizer-local/index.js +1 -1
  816. package/umd/min/synchronizers/synchronizer-local/index.js.gz +0 -0
  817. package/umd/min/synchronizers/synchronizer-local/with-schemas/index.js +1 -1
  818. package/umd/min/synchronizers/synchronizer-local/with-schemas/index.js.gz +0 -0
  819. package/umd/min/synchronizers/synchronizer-ws-client/index.js +1 -1
  820. package/umd/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
  821. package/umd/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
  822. package/umd/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
  823. package/umd/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  824. package/umd/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  825. package/umd/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  826. package/umd/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  827. package/umd/min/synchronizers/with-schemas/index.js +1 -1
  828. package/umd/min/synchronizers/with-schemas/index.js.gz +0 -0
  829. package/umd/min/tools/index.js +1 -1
  830. package/umd/min/tools/index.js.gz +0 -0
  831. package/umd/min/tools/with-schemas/index.js +1 -1
  832. package/umd/min/tools/with-schemas/index.js.gz +0 -0
  833. package/umd/min/ui-react/index.js +1 -1
  834. package/umd/min/ui-react/index.js.gz +0 -0
  835. package/umd/min/ui-react/with-schemas/index.js +1 -1
  836. package/umd/min/ui-react/with-schemas/index.js.gz +0 -0
  837. package/umd/min/ui-react-dom/index.js +1 -1
  838. package/umd/min/ui-react-dom/index.js.gz +0 -0
  839. package/umd/min/ui-react-dom/with-schemas/index.js +1 -1
  840. package/umd/min/ui-react-dom/with-schemas/index.js.gz +0 -0
  841. package/umd/min/ui-react-inspector/index.js +1 -1
  842. package/umd/min/ui-react-inspector/index.js.gz +0 -0
  843. package/umd/min/ui-react-inspector/with-schemas/index.js +1 -1
  844. package/umd/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
  845. package/umd/min/with-schemas/index.js +1 -1
  846. package/umd/min/with-schemas/index.js.gz +0 -0
  847. package/umd/persisters/index.js +80 -98
  848. package/umd/persisters/persister-cr-sqlite-wasm/index.js +79 -97
  849. package/umd/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +79 -97
  850. package/umd/persisters/persister-electric-sql/index.js +79 -97
  851. package/umd/persisters/persister-electric-sql/with-schemas/index.js +79 -97
  852. package/umd/persisters/persister-expo-sqlite/index.js +79 -97
  853. package/umd/persisters/persister-expo-sqlite/with-schemas/index.js +79 -97
  854. package/umd/persisters/persister-libsql/index.js +79 -97
  855. package/umd/persisters/persister-libsql/with-schemas/index.js +79 -97
  856. package/umd/persisters/persister-pglite/index.js +79 -97
  857. package/umd/persisters/persister-pglite/with-schemas/index.js +79 -97
  858. package/umd/persisters/persister-postgres/index.js +78 -96
  859. package/umd/persisters/persister-postgres/with-schemas/index.js +78 -96
  860. package/umd/persisters/persister-powersync/index.js +203 -142
  861. package/umd/persisters/persister-powersync/with-schemas/index.js +203 -142
  862. package/umd/persisters/persister-sqlite-wasm/index.js +79 -97
  863. package/umd/persisters/persister-sqlite-wasm/with-schemas/index.js +79 -97
  864. package/umd/persisters/persister-sqlite3/index.js +79 -97
  865. package/umd/persisters/persister-sqlite3/with-schemas/index.js +79 -97
  866. package/umd/persisters/with-schemas/index.js +80 -98
  867. package/umd/queries/index.js +1 -1
  868. package/umd/queries/with-schemas/index.js +1 -1
  869. package/umd/store/index.js +0 -6
  870. package/umd/store/with-schemas/index.js +0 -6
  871. package/umd/synchronizers/index.js +5 -7
  872. package/umd/synchronizers/synchronizer-broadcast-channel/index.js +5 -7
  873. package/umd/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +5 -7
  874. package/umd/synchronizers/synchronizer-local/index.js +5 -7
  875. package/umd/synchronizers/synchronizer-local/with-schemas/index.js +5 -7
  876. package/umd/synchronizers/synchronizer-ws-client/index.js +5 -7
  877. package/umd/synchronizers/synchronizer-ws-client/with-schemas/index.js +5 -7
  878. package/umd/synchronizers/synchronizer-ws-server/index.js +5 -7
  879. package/umd/synchronizers/synchronizer-ws-server/with-schemas/index.js +5 -7
  880. package/umd/synchronizers/with-schemas/index.js +5 -7
  881. package/umd/tools/index.js +7 -4
  882. package/umd/tools/with-schemas/index.js +7 -4
  883. package/umd/ui-react/index.js +97 -110
  884. package/umd/ui-react/with-schemas/index.js +97 -110
  885. package/umd/ui-react-dom/index.js +14 -8
  886. package/umd/ui-react-dom/with-schemas/index.js +14 -8
  887. package/umd/ui-react-inspector/index.js +17 -17
  888. package/umd/ui-react-inspector/with-schemas/index.js +17 -17
  889. package/umd/with-schemas/index.js +18 -12
  890. package/with-schemas/index.js +18 -12
@@ -24,8 +24,6 @@ const errorNew = (message) => {
24
24
  throw new Error(message);
25
25
  };
26
26
 
27
- const arrayNew = (size2, cb) =>
28
- arrayMap(new Array(size2).fill(0), (_, index) => cb(index));
29
27
  const arrayForEach = (array, cb) => array.forEach(cb);
30
28
  const arrayJoin = (array, sep = EMPTY_STRING) => array.join(sep);
31
29
  const arrayMap = (array, cb) => array.map(cb);
@@ -445,9 +443,11 @@ const getWrappedCommand = (executeCommand, onSqlCommand) =>
445
443
  }
446
444
  : executeCommand;
447
445
  const escapeId = (str) => `"${str.replace(/"/g, '""')}"`;
448
- const getPlaceholders = (array) =>
446
+ const escapeColumnNames = (...columnNames) =>
447
+ arrayJoin(arrayMap(columnNames, escapeId), COMMA);
448
+ const getPlaceholders = (array, offset = [1]) =>
449
449
  arrayJoin(
450
- arrayMap(array, (_, index) => '$' + (index + 1)),
450
+ arrayMap(array, () => '$' + offset[0]++),
451
451
  COMMA,
452
452
  );
453
453
 
@@ -464,7 +464,7 @@ const getCommandFunctions = (
464
464
  querySchema,
465
465
  onIgnoredError,
466
466
  columnType,
467
- orReplace,
467
+ upsert = defaultUpsert,
468
468
  encode,
469
469
  decode,
470
470
  ) => {
@@ -505,26 +505,26 @@ const getCommandFunctions = (
505
505
  deleteEmptyTable,
506
506
  partial = false,
507
507
  ) => {
508
- const tableCellOrValueIds = setNew();
508
+ const settingColumnNameSet = setNew();
509
509
  objToArray(content ?? {}, (contentRow) =>
510
510
  arrayMap(objIds(contentRow ?? {}), (cellOrValueId) =>
511
- setAdd(tableCellOrValueIds, cellOrValueId),
511
+ setAdd(settingColumnNameSet, cellOrValueId),
512
512
  ),
513
513
  );
514
- const tableColumnNames = collValues(tableCellOrValueIds);
514
+ const settingColumnNames = collValues(settingColumnNameSet);
515
515
  if (
516
516
  !partial &&
517
517
  deleteEmptyTable &&
518
- arrayIsEmpty(tableColumnNames) &&
518
+ arrayIsEmpty(settingColumnNames) &&
519
519
  collHas(schemaMap, tableName)
520
520
  ) {
521
521
  await databaseExecuteCommand('DROP ' + TABLE + escapeId(tableName));
522
522
  mapSet(schemaMap, tableName);
523
523
  return;
524
524
  }
525
- const tableSchemaColumns = mapGet(schemaMap, tableName);
526
- const currentColumnNames = setNew(collValues(tableSchemaColumns));
527
- if (!arrayIsEmpty(tableColumnNames)) {
525
+ const currentColumnNames = mapGet(schemaMap, tableName);
526
+ const unaccountedColumnNames = setNew(collValues(currentColumnNames));
527
+ if (!arrayIsEmpty(settingColumnNames)) {
528
528
  if (!collHas(schemaMap, tableName)) {
529
529
  await databaseExecuteCommand(
530
530
  'CREATE ' +
@@ -532,27 +532,28 @@ const getCommandFunctions = (
532
532
  escapeId(tableName) +
533
533
  `(${escapeId(rowIdColumnName)}${columnType} PRIMARY KEY${arrayJoin(
534
534
  arrayMap(
535
- tableColumnNames,
536
- (columnName) => COMMA + escapeId(columnName) + columnType,
535
+ settingColumnNames,
536
+ (settingColumnName) =>
537
+ COMMA + escapeId(settingColumnName) + columnType,
537
538
  ),
538
539
  )});`,
539
540
  );
540
541
  mapSet(
541
542
  schemaMap,
542
543
  tableName,
543
- setNew([rowIdColumnName, ...tableColumnNames]),
544
+ setNew([rowIdColumnName, ...settingColumnNames]),
544
545
  );
545
546
  } else {
546
547
  await promiseAll(
547
548
  arrayMap(
548
- [rowIdColumnName, ...tableColumnNames],
549
- async (columnName, index) => {
550
- if (!collDel(currentColumnNames, columnName)) {
549
+ [rowIdColumnName, ...settingColumnNames],
550
+ async (settingColumnName, index) => {
551
+ if (!collDel(unaccountedColumnNames, settingColumnName)) {
551
552
  await databaseExecuteCommand(
552
553
  ALTER_TABLE +
553
554
  escapeId(tableName) +
554
555
  'ADD' +
555
- escapeId(columnName) +
556
+ escapeId(settingColumnName) +
556
557
  columnType,
557
558
  );
558
559
  if (index == 0) {
@@ -562,7 +563,7 @@ const getCommandFunctions = (
562
563
  `(${escapeId(rowIdColumnName)})`,
563
564
  );
564
565
  }
565
- setAdd(tableSchemaColumns, columnName);
566
+ setAdd(currentColumnNames, settingColumnName);
566
567
  }
567
568
  },
568
569
  ),
@@ -571,17 +572,20 @@ const getCommandFunctions = (
571
572
  }
572
573
  await promiseAll([
573
574
  ...(!partial && deleteEmptyColumns
574
- ? arrayMap(collValues(currentColumnNames), async (columnName) => {
575
- if (columnName != rowIdColumnName) {
576
- await databaseExecuteCommand(
577
- ALTER_TABLE +
578
- escapeId(tableName) +
579
- 'DROP' +
580
- escapeId(columnName),
581
- );
582
- collDel(tableSchemaColumns, columnName);
583
- }
584
- })
575
+ ? arrayMap(
576
+ collValues(unaccountedColumnNames),
577
+ async (unaccountedColumnName) => {
578
+ if (unaccountedColumnName != rowIdColumnName) {
579
+ await databaseExecuteCommand(
580
+ ALTER_TABLE +
581
+ escapeId(tableName) +
582
+ 'DROP' +
583
+ escapeId(unaccountedColumnName),
584
+ );
585
+ collDel(currentColumnNames, unaccountedColumnName);
586
+ }
587
+ },
588
+ )
585
589
  : []),
586
590
  ]);
587
591
  if (partial) {
@@ -601,39 +605,34 @@ const getCommandFunctions = (
601
605
  '=$1',
602
606
  [rowId],
603
607
  );
604
- } else if (!arrayIsEmpty(tableColumnNames)) {
608
+ } else if (!arrayIsEmpty(settingColumnNames)) {
605
609
  await upsert(
606
610
  databaseExecuteCommand,
607
611
  tableName,
608
612
  rowIdColumnName,
609
613
  objIds(row),
610
- [
611
- rowId,
612
- ...(encode
614
+ {
615
+ [rowId]: encode
613
616
  ? arrayMap(objValues(row), encode)
614
- : objValues(row)),
615
- ],
616
- orReplace,
617
+ : objValues(row),
618
+ },
619
+ currentColumnNames,
617
620
  );
618
621
  }
619
622
  }),
620
623
  );
621
624
  }
622
625
  } else {
623
- if (!arrayIsEmpty(tableColumnNames)) {
626
+ if (!arrayIsEmpty(settingColumnNames)) {
624
627
  const changingColumnNames = arrayFilter(
625
628
  collValues(mapGet(schemaMap, tableName)),
626
- (columnName) => columnName != rowIdColumnName,
629
+ (changingColumnName) => changingColumnName != rowIdColumnName,
627
630
  );
628
- const params = [];
631
+ const rows = {};
629
632
  const deleteRowIds = [];
630
633
  objToArray(content ?? {}, (row, rowId) => {
631
- arrayPush(
632
- params,
633
- rowId,
634
- ...arrayMap(changingColumnNames, (cellId) =>
635
- encode ? encode(row?.[cellId]) : row?.[cellId],
636
- ),
634
+ rows[rowId] = arrayMap(changingColumnNames, (cellId) =>
635
+ encode ? encode(row?.[cellId]) : row?.[cellId],
637
636
  );
638
637
  arrayPush(deleteRowIds, rowId);
639
638
  });
@@ -642,8 +641,7 @@ const getCommandFunctions = (
642
641
  tableName,
643
642
  rowIdColumnName,
644
643
  changingColumnNames,
645
- params,
646
- orReplace,
644
+ rows,
647
645
  );
648
646
  await databaseExecuteCommand(
649
647
  DELETE_FROM +
@@ -673,61 +671,45 @@ const getCommandFunctions = (
673
671
  };
674
672
  return [refreshSchema, loadTable, saveTable, transaction];
675
673
  };
676
- const upsert = async (
674
+ const defaultUpsert = async (
677
675
  executeCommand,
678
676
  tableName,
679
677
  rowIdColumnName,
680
678
  changingColumnNames,
681
- params,
682
- orReplace = 0,
683
- ) =>
679
+ rows,
680
+ ) => {
681
+ const offset = [1];
684
682
  await executeCommand(
685
- 'INSERT ' +
686
- (orReplace ? 'OR REPLACE ' : EMPTY_STRING) +
687
- 'INTO' +
683
+ 'INSERT INTO' +
688
684
  escapeId(tableName) +
689
685
  '(' +
686
+ escapeColumnNames(rowIdColumnName, ...changingColumnNames) +
687
+ ')VALUES' +
688
+ arrayJoin(
689
+ objToArray(
690
+ rows,
691
+ (row) =>
692
+ '($' + offset[0]++ + ',' + getPlaceholders(row, offset) + ')',
693
+ ),
694
+ COMMA,
695
+ ) +
696
+ 'ON CONFLICT(' +
690
697
  escapeId(rowIdColumnName) +
698
+ ')DO UPDATE SET' +
691
699
  arrayJoin(
692
700
  arrayMap(
693
701
  changingColumnNames,
694
- (columnName) => COMMA + escapeId(columnName),
702
+ (columnName) =>
703
+ escapeId(columnName) + '=excluded.' + escapeId(columnName),
695
704
  ),
696
- ) +
697
- ')VALUES' +
698
- getUpsertPlaceholders(params, size(changingColumnNames) + 1) +
699
- (orReplace
700
- ? EMPTY_STRING
701
- : 'ON CONFLICT(' +
702
- escapeId(rowIdColumnName) +
703
- ')DO UPDATE SET' +
704
- arrayJoin(
705
- arrayMap(
706
- changingColumnNames,
707
- (columnName) =>
708
- escapeId(columnName) + '=excluded.' + escapeId(columnName),
709
- ),
710
- COMMA,
711
- )),
712
- arrayMap(params, (param) => param ?? null),
713
- );
714
- const getUpsertPlaceholders = (array, columnCount) =>
715
- arrayJoin(
716
- arrayNew(
717
- size(array) / columnCount,
718
- (row) =>
719
- '(' +
720
- arrayJoin(
721
- arrayNew(
722
- columnCount,
723
- (column) => '$' + (row * columnCount + column + 1),
724
- ),
725
- COMMA,
726
- ) +
727
- ')',
728
- ),
729
- COMMA,
705
+ COMMA,
706
+ ),
707
+ objToArray(rows, (row, id) => [
708
+ id,
709
+ ...arrayMap(row, (value) => value ?? null),
710
+ ]).flat(),
730
711
  );
712
+ };
731
713
 
732
714
  const createJsonPersister = (
733
715
  store,
@@ -743,7 +725,7 @@ const createJsonPersister = (
743
725
  thing,
744
726
  getThing,
745
727
  columnType,
746
- orReplace,
728
+ upsert,
747
729
  ) => {
748
730
  const [refreshSchema, loadTable, saveTable, transaction] =
749
731
  getCommandFunctions(
@@ -752,7 +734,7 @@ const createJsonPersister = (
752
734
  querySchema,
753
735
  onIgnoredError,
754
736
  columnType,
755
- orReplace,
737
+ upsert,
756
738
  );
757
739
  const getPersisted = async () =>
758
740
  await transaction(async () => {
@@ -815,7 +797,7 @@ const createTabularPersister = (
815
797
  thing,
816
798
  getThing,
817
799
  columnType,
818
- orReplace,
800
+ upsert,
819
801
  encode,
820
802
  decode,
821
803
  ) => {
@@ -826,7 +808,7 @@ const createTabularPersister = (
826
808
  querySchema,
827
809
  onIgnoredError,
828
810
  columnType,
829
- orReplace,
811
+ upsert,
830
812
  encode,
831
813
  decode,
832
814
  );
@@ -1039,7 +1021,7 @@ const createCustomSqlitePersister = (
1039
1021
  persist,
1040
1022
  thing,
1041
1023
  getThing = 'getDb',
1042
- orReplace,
1024
+ upsert,
1043
1025
  ) => {
1044
1026
  let dataVersion;
1045
1027
  let schemaVersion;
@@ -1108,7 +1090,7 @@ const createCustomSqlitePersister = (
1108
1090
  thing,
1109
1091
  getThing,
1110
1092
  EMPTY_STRING,
1111
- orReplace,
1093
+ upsert,
1112
1094
  (cellOrValue) =>
1113
1095
  cellOrValue === true ? 1 : cellOrValue === false ? 0 : cellOrValue,
1114
1096
  void 0,
@@ -1202,7 +1184,7 @@ const createCustomPostgreSqlPersister = (
1202
1184
  thing,
1203
1185
  getThing,
1204
1186
  'text',
1205
- 0,
1187
+ void 0,
1206
1188
  (cellOrValue) => jsonString(cellOrValue),
1207
1189
  (field) => jsonParse(field),
1208
1190
  );
package/queries/index.js CHANGED
@@ -105,7 +105,7 @@ const setNew = (entryOrEntries) =>
105
105
  );
106
106
  const setAdd = (set, value) => set?.add(value);
107
107
 
108
- const numericAggregators = mapNew([
108
+ const numericAggregators = /* @__PURE__ */ mapNew([
109
109
  [
110
110
  AVG,
111
111
  [
@@ -105,7 +105,7 @@ const setNew = (entryOrEntries) =>
105
105
  );
106
106
  const setAdd = (set, value) => set?.add(value);
107
107
 
108
- const numericAggregators = mapNew([
108
+ const numericAggregators = /* @__PURE__ */ mapNew([
109
109
  [
110
110
  AVG,
111
111
  [
package/readme.md CHANGED
@@ -1,4 +1,4 @@
1
- <section id="hero"><h2 id="the-reactive-data-store-for-local-first-apps">The <em>reactive</em> data store for <span>local-first apps</span>.</h2></section><p><a href="https://tinybase.org/guides/releases/#v5-3"><em>NEW!</em> v5.3 release</a></p><p><span id="one-with">&quot;Adding some missing APIs!&quot;</span></p><p><a class="start" href="https://tinybase.org/guides/the-basics/getting-started/">Get started</a></p><p><a href="https://tinybase.org/demos/">Try the demos</a></p><p><a href="https://tinybase.org/api/store/interfaces/store/store/">Read the docs</a></p><hr><section><h2 id="it-s-reactive">It&#x27;s <em>Reactive</em></h2><p>TinyBase lets you <a href="#register-granular-listeners">listen to changes</a> made to any part of your data. This means your app will be fast, since you only spend rendering cycles on things that change. The optional <a href="#call-hooks-to-bind-to-data">bindings to React</a> and <a href="#pre-built-reactive-components">pre-built components</a> let you easily build fully reactive UIs on top of TinyBase. You even get a built-in <a href="#set-checkpoints-for-an-undo-stack">undo stack</a>, and <a href="#an-inspector-for-your-data">developer tools</a>!</p></section><section><h2 id="it-s-database-like">It&#x27;s <em>Database-Like</em></h2><p>Consumer app? Enterprise app? Or even a game? Model <a href="#start-with-a-simple-key-value-store">key-value data</a> and <a href="#level-up-to-use-tabular-data">tabular data</a> with optional typed <a href="#apply-schemas-to-tables-values">schematization</a>, whatever its data structures. There are built-in <a href="#create-indexes-for-fast-lookups">indexing</a>, <a href="#define-metrics-and-aggregations">metric aggregation</a>, and tabular <a href="#model-table-relationships">relationships</a> APIs - and a powerful <a href="#build-complex-queries-with-tinyql">query engine</a> to select, join, filter, and group data (reactively!) without SQL.</p></section><section><h2 id="it-synchronizes">It <em>Synchronizes</em></h2><p>TinyBase has <a href="#synchronize-between-devices">native CRDT</a> support, meaning that you can deterministically <a href="https://tinybase.org/guides/synchronization/">synchronize</a> and merge data across multiple sources, clients, and servers. And although TinyBase is an in-memory data store, you can easily <a href="#persist-to-storage-databases-more">persist</a> your data to file, <a href="https://tinybase.org/api/persister-browser">browser storage</a>, <a href="https://tinybase.org/api/persister-indexed-db">IndexedDB</a>, <a href="https://tinybase.org/guides/persistence/database-persistence/">SQLite or PostgreSQL databases</a>, and <a href="https://tinybase.org/guides/persistence/third-party-crdt-persistence/">more</a>.</p></section><section><h2 id="it-s-built-for-a-local-first-world">It&#x27;s Built For A <em>Local-First</em> World</h2><p>TinyBase works anywhere that JavaScript does, but it&#x27;s especially great for local-first apps: where data is stored locally on the user&#x27;s device and that can be run offline. It&#x27;s tiny by name, tiny by nature: just <a href="#did-we-say-tiny">5.3kB - 11.4kB</a> and with no dependencies - yet <a href="#well-tested-and-documented">100% tested</a>, <a href="https://tinybase.org/guides/the-basics/getting-started/">fully documented</a>, and of course, <a href="https://github.com/tinyplex/tinybase">open source</a>!</p></section><hr><section id="friends"><h2 id="tinybase-works-great-on-its-own-but-also-plays-well-with-friends">TinyBase works great on its own, but also plays well with friends!</h2><div><a href="https://tinybase.org/guides/building-uis/getting-started-with-ui-react"><img width="48" src="https://tinybase.org/react.svg"> React</a></div><div><a href="https://tinybase.org/api/persister-indexed-db/functions/creation/createindexeddbpersister"><img width="48" src="https://tinybase.org/indexeddb.svg"> IndexedDB</a></div><div><a href="https://tinybase.org/guides/schemas-and-persistence/database-persistence"><img width="48" src="https://tinybase.org/postgresql.svg"> PostgreSQL</a></div><div><a href="https://tinybase.org/guides/schemas-and-persistence/database-persistence"><img width="48" src="https://tinybase.org/pglite.svg"> PGlite</a></div><div><a href="https://tinybase.org/guides/schemas-and-persistence/database-persistence"><img width="48" src="https://tinybase.org/sqlite.svg"> SQLite</a></div><div><a href="https://tinybase.org/guides/schemas-and-persistence/database-persistence"><img width="48" src="https://tinybase.org/expo.svg"> Expo SQLite</a></div><div><a href="https://tinybase.org/guides/schemas-and-persistence/database-persistence"><img width="48" src="https://tinybase.org/electric.svg"> ElectricSQL</a></div><div><a href="https://tinybase.org/guides/schemas-and-persistence/database-persistence"><img width="48" src="https://tinybase.org/turso.svg"> Turso</a></div><div><a href="https://tinybase.org/guides/schemas-and-persistence/database-persistence"><img width="48" src="https://tinybase.org/powersync.svg"> PowerSync</a></div><div><a href="https://tinybase.org/api/persister-partykit-client"><img width="48" src="https://tinybase.org/partykit.svg"> PartyKit</a></div><div><a href="https://tinybase.org/api/persister-yjs/functions/creation/createyjspersister"><img width="48" src="https://tinybase.org/yjs.svg"> YJS</a></div><div><a href="https://tinybase.org/api/persister-cr-sqlite-wasm"><img width="48" src="https://tinybase.org/crsqlite.png"> CR-SQLite</a></div><div><a href="https://tinybase.org/api/persister-automerge"><img width="48" src="https://tinybase.org/automerge.svg"> Automerge</a></div></section><hr><section id="follow"><a href="https://github.com/tinyplex/tinybase" target="_blank"><img src="https://img.shields.io/github/stars/tinyplex/tinybase?style=for-the-badge&amp;logo=GitHub&amp;logoColor=%23fff&amp;label=GitHub&amp;labelColor=%23d81b60&amp;color=%23333"> </a><a href="https://discord.com/invite/mGz3mevwP8" target="_blank"><img src="https://img.shields.io/discord/1027918215323590676?style=for-the-badge&amp;logo=discord&amp;logoColor=%23fff&amp;label=Discord&amp;labelColor=%233131e8&amp;color=%23333"> </a><a href="https://twitter.com/tinybasejs" target="_blank"><img src="https://img.shields.io/twitter/follow/tinybasejs?style=for-the-badge&amp;logo=x&amp;logoColor=%23fff&amp;label=Twitter&amp;labelColor=%23333&amp;color=%23333"></a><br><a href="https://github.com/tinyplex/tinybase/discussions" target="_blank"><img src="https://img.shields.io/github/discussions/tinyplex/tinybase?style=for-the-badge&amp;logo=GitHub&amp;logoColor=%23fff&amp;label=Ideas&amp;labelColor=%23d81b60&amp;color=%23333"> </a><a href="https://github.com/tinyplex/tinybase/issues" target="_blank"><img src="https://img.shields.io/github/issues/tinyplex/tinybase?style=for-the-badge&amp;logo=GitHub&amp;logoColor=%23fff&amp;label=Issues&amp;labelColor=%23d81b60&amp;color=%23333"> </a><a href="#well-tested-and-documented"><img src="https://img.shields.io/badge/Tests-100%25-green?style=for-the-badge&amp;logo=jest&amp;logoColor=%23fff&amp;color=%23333&amp;labelColor=%2387c305"> </a><a href="https://www.npmjs.com/package/tinybase/v/5.3.1" target="_blank"><img src="https://img.shields.io/npm/v/tinybase?style=for-the-badge&amp;logo=npm&amp;logoColor=%23fff&amp;labelColor=%23bd0005&amp;color=%23333"></a></section><hr><section><h2 id="start-with-a-simple-key-value-store">Start with a simple key-value store.</h2><p>Creating a <a href="https://tinybase.org/api/store/interfaces/store/store/"><code>Store</code></a> requires just a simple call to the <a href="https://tinybase.org/api/store/functions/creation/createstore/"><code>createStore</code></a> function. Once you have one, you can easily set <a href="https://tinybase.org/api/store/type-aliases/store/values/"><code>Values</code></a> in it by unique <a href="https://tinybase.org/api/common/type-aliases/identity/id/"><code>Id</code></a>. And of course you can easily get them back out again.</p><p>Read more about using keyed value data in <a href="https://tinybase.org/guides/the-basics/">The Basics</a> guide.</p></section>
1
+ <section id="hero"><h2 id="the-reactive-data-store-for-local-first-apps">The <em>reactive</em> data store for <span>local-first apps</span>.</h2></section><p><a href="https://tinybase.org/guides/releases/#v5-3"><em>NEW!</em> v5.3 release</a></p><p><span id="one-with">&quot;Adding some missing APIs!&quot;</span></p><p><a class="start" href="https://tinybase.org/guides/the-basics/getting-started/">Get started</a></p><p><a href="https://tinybase.org/demos/">Try the demos</a></p><p><a href="https://tinybase.org/api/store/interfaces/store/store/">Read the docs</a></p><hr><section><h2 id="it-s-reactive">It&#x27;s <em>Reactive</em></h2><p>TinyBase lets you <a href="#register-granular-listeners">listen to changes</a> made to any part of your data. This means your app will be fast, since you only spend rendering cycles on things that change. The optional <a href="#call-hooks-to-bind-to-data">bindings to React</a> and <a href="#pre-built-reactive-components">pre-built components</a> let you easily build fully reactive UIs on top of TinyBase. You even get a built-in <a href="#set-checkpoints-for-an-undo-stack">undo stack</a>, and <a href="#an-inspector-for-your-data">developer tools</a>!</p></section><section><h2 id="it-s-database-like">It&#x27;s <em>Database-Like</em></h2><p>Consumer app? Enterprise app? Or even a game? Model <a href="#start-with-a-simple-key-value-store">key-value data</a> and <a href="#level-up-to-use-tabular-data">tabular data</a> with optional typed <a href="#apply-schemas-to-tables-values">schematization</a>, whatever its data structures. There are built-in <a href="#create-indexes-for-fast-lookups">indexing</a>, <a href="#define-metrics-and-aggregations">metric aggregation</a>, and tabular <a href="#model-table-relationships">relationships</a> APIs - and a powerful <a href="#build-complex-queries-with-tinyql">query engine</a> to select, join, filter, and group data (reactively!) without SQL.</p></section><section><h2 id="it-synchronizes">It <em>Synchronizes</em></h2><p>TinyBase has <a href="#synchronize-between-devices">native CRDT</a> support, meaning that you can deterministically <a href="https://tinybase.org/guides/synchronization/">synchronize</a> and merge data across multiple sources, clients, and servers. And although TinyBase is an in-memory data store, you can easily <a href="#persist-to-storage-databases-more">persist</a> your data to file, <a href="https://tinybase.org/api/persister-browser">browser storage</a>, <a href="https://tinybase.org/api/persister-indexed-db">IndexedDB</a>, <a href="https://tinybase.org/guides/persistence/database-persistence/">SQLite or PostgreSQL databases</a>, and <a href="https://tinybase.org/guides/persistence/third-party-crdt-persistence/">more</a>.</p></section><section><h2 id="it-s-built-for-a-local-first-world">It&#x27;s Built For A <em>Local-First</em> World</h2><p>TinyBase works anywhere that JavaScript does, but it&#x27;s especially great for local-first apps: where data is stored locally on the user&#x27;s device and that can be run offline. It&#x27;s tiny by name, tiny by nature: just <a href="#did-we-say-tiny">5.3kB - 11.4kB</a> and with no dependencies - yet <a href="#well-tested-and-documented">100% tested</a>, <a href="https://tinybase.org/guides/the-basics/getting-started/">fully documented</a>, and of course, <a href="https://github.com/tinyplex/tinybase">open source</a>!</p></section><hr><section id="friends"><h2 id="tinybase-works-great-on-its-own-but-also-plays-well-with-friends">TinyBase works great on its own, but also plays well with friends!</h2><div><a href="https://tinybase.org/guides/building-uis/getting-started-with-ui-react"><img width="48" src="https://tinybase.org/react.svg"> React</a></div><div><a href="https://tinybase.org/api/persister-indexed-db/functions/creation/createindexeddbpersister"><img width="48" src="https://tinybase.org/indexeddb.svg"> IndexedDB</a></div><div><a href="https://tinybase.org/guides/schemas-and-persistence/database-persistence"><img width="48" src="https://tinybase.org/postgresql.svg"> PostgreSQL</a></div><div><a href="https://tinybase.org/guides/schemas-and-persistence/database-persistence"><img width="48" src="https://tinybase.org/pglite.svg"> PGlite</a></div><div><a href="https://tinybase.org/guides/schemas-and-persistence/database-persistence"><img width="48" src="https://tinybase.org/sqlite.svg"> SQLite</a></div><div><a href="https://tinybase.org/guides/schemas-and-persistence/database-persistence"><img width="48" src="https://tinybase.org/expo.svg"> Expo SQLite</a></div><div><a href="https://tinybase.org/guides/schemas-and-persistence/database-persistence"><img width="48" src="https://tinybase.org/electric.svg"> ElectricSQL</a></div><div><a href="https://tinybase.org/guides/schemas-and-persistence/database-persistence"><img width="48" src="https://tinybase.org/turso.svg"> Turso</a></div><div><a href="https://tinybase.org/guides/schemas-and-persistence/database-persistence"><img width="48" src="https://tinybase.org/powersync.svg"> PowerSync</a></div><div><a href="https://tinybase.org/api/persister-partykit-client"><img width="48" src="https://tinybase.org/partykit.svg"> PartyKit</a></div><div><a href="https://tinybase.org/api/persister-yjs/functions/creation/createyjspersister"><img width="48" src="https://tinybase.org/yjs.svg"> YJS</a></div><div><a href="https://tinybase.org/api/persister-cr-sqlite-wasm"><img width="48" src="https://tinybase.org/crsqlite.png"> CR-SQLite</a></div><div><a href="https://tinybase.org/api/persister-automerge"><img width="48" src="https://tinybase.org/automerge.svg"> Automerge</a></div></section><hr><section id="follow"><a href="https://github.com/tinyplex/tinybase" target="_blank"><img src="https://img.shields.io/github/stars/tinyplex/tinybase?style=for-the-badge&amp;logo=GitHub&amp;logoColor=%23fff&amp;label=GitHub&amp;labelColor=%23d81b60&amp;color=%23333"> </a><a href="https://discord.com/invite/mGz3mevwP8" target="_blank"><img src="https://img.shields.io/discord/1027918215323590676?style=for-the-badge&amp;logo=discord&amp;logoColor=%23fff&amp;label=Discord&amp;labelColor=%233131e8&amp;color=%23333"> </a><a href="https://twitter.com/tinybasejs" target="_blank"><img src="https://img.shields.io/twitter/follow/tinybasejs?style=for-the-badge&amp;logo=x&amp;logoColor=%23fff&amp;label=Twitter&amp;labelColor=%23333&amp;color=%23333"></a><br><a href="https://github.com/tinyplex/tinybase/discussions" target="_blank"><img src="https://img.shields.io/github/discussions/tinyplex/tinybase?style=for-the-badge&amp;logo=GitHub&amp;logoColor=%23fff&amp;label=Ideas&amp;labelColor=%23d81b60&amp;color=%23333"> </a><a href="https://github.com/tinyplex/tinybase/issues" target="_blank"><img src="https://img.shields.io/github/issues/tinyplex/tinybase?style=for-the-badge&amp;logo=GitHub&amp;logoColor=%23fff&amp;label=Issues&amp;labelColor=%23d81b60&amp;color=%23333"> </a><a href="#well-tested-and-documented"><img src="https://img.shields.io/badge/Tests-100%25-green?style=for-the-badge&amp;logo=jest&amp;logoColor=%23fff&amp;color=%23333&amp;labelColor=%2387c305"> </a><a href="https://www.npmjs.com/package/tinybase/v/5.3.2" target="_blank"><img src="https://img.shields.io/npm/v/tinybase?style=for-the-badge&amp;logo=npm&amp;logoColor=%23fff&amp;labelColor=%23bd0005&amp;color=%23333"></a></section><hr><section><h2 id="start-with-a-simple-key-value-store">Start with a simple key-value store.</h2><p>Creating a <a href="https://tinybase.org/api/store/interfaces/store/store/"><code>Store</code></a> requires just a simple call to the <a href="https://tinybase.org/api/store/functions/creation/createstore/"><code>createStore</code></a> function. Once you have one, you can easily set <a href="https://tinybase.org/api/store/type-aliases/store/values/"><code>Values</code></a> in it by unique <a href="https://tinybase.org/api/common/type-aliases/identity/id/"><code>Id</code></a>. And of course you can easily get them back out again.</p><p>Read more about using keyed value data in <a href="https://tinybase.org/guides/the-basics/">The Basics</a> guide.</p></section>
2
2
 
3
3
  ```js
4
4
  import {createStore} from 'tinybase';
@@ -294,4 +294,4 @@ export const createShop: typeof createShopDecl = () => {
294
294
  };
295
295
  ```
296
296
 
297
- <section><h2 id="did-we-say-tiny">Did we say tiny?</h2><p>If you use the basic <a href="https://tinybase.org/api/store/"><code>store</code></a> module alone, you&#x27;ll only add a gzipped <em>5.3kB</em> to your app. Incrementally add the other modules as you need more functionality, or get it all for <em>11.4kB</em>.</p><p>The optional <a href="https://tinybase.org/api/ui-react/"><code>ui-react</code></a> module is just <em>5.1kB</em>, the ui-react-dom components are another <em>2.5kB</em>, and everything is super fast. Life&#x27;s easy when you have zero dependencies!</p><p>Read more about how TinyBase is structured and packaged in the <a href="https://tinybase.org/guides/how-tinybase-is-built/architecture/">Architecture</a> guide.</p></section><div class="table"><table class="fixed"><tbody><tr><th> </th><th>Minified .js.gz</th><th>Source .js</th></tr><tr><th class="right"><a href="https://tinybase.org/api/store/">tinybase/store</a> (minimal)</th><td>5.3kB</td><td>52.6kB</td></tr><tr><th class="right">tinybase (complete)</th><td>11.4kB</td><td>118.8kB</td></tr><tr><th class="right"><a href="https://tinybase.org/api/ui-react/">ui-react</a></th><td>5.1kB</td><td>54.1kB</td></tr><tr><th class="right"><a href="https://tinybase.org/api/ui-react-dom/">ui-react-dom</a></th><td>2.5kB</td><td>20.4kB</td></tr></tbody></table></div><section><h2 id="well-tested-and-documented">Well tested and documented.</h2><p>TinyBase has <em>100.0%</em> test coverage, including the code throughout the documentation - even on this page! The guides, demos, and API examples are designed to make it as easy as possible for you to get your TinyBase-powered app up and running.</p><p>Read more about how TinyBase is tested in the Unit <a href="https://tinybase.org/guides/how-tinybase-is-built/testing/">Testing</a> guide.</p></section><div class="table"><table class="fixed"><tbody><tr><th width="30%"> </th><th>Total</th><th>Tested</th><th>Coverage</th></tr><tr><th class="right">Lines</th><td>2,282</td><td>2,282</td><td>100.0%</td></tr><tr><th class="right">Statements</th><td>2,465</td><td>2,465</td><td>100.0%</td></tr><tr><th class="right">Functions</th><td>986</td><td>986</td><td>100.0%</td></tr><tr><th class="right">Branches</th><td>854</td><td>854</td><td>100.0%</td></tr><tr><th class="right">Tests</th><td colspan="3">7,456</td></tr><tr><th class="right">Assertions</th><td colspan="3">33,195</td></tr></tbody></table></div><hr><section id="sponsors"><h2 id="proud-to-be-sponsored-by">Proud to be sponsored by:</h2><a href="https://github.com/cpojer" target="_blank"><img title="cpojer" src="https://github.com/cpojer.png?size=48" width="48" height="48"></a><a href="https://github.com/expo" target="_blank"><img title="expo" src="https://github.com/expo.png?size=48" width="48" height="48"></a><a href="https://github.com/beekeeb" target="_blank"><img title="beekeeb" src="https://github.com/beekeeb.png?size=48" width="48" height="48"></a><a href="https://github.com/cancelself" target="_blank"><img title="cancelself" src="https://github.com/cancelself.png?size=48" width="48" height="48"></a><a href="https://github.com/WonderPanda" target="_blank"><img title="WonderPanda" src="https://github.com/WonderPanda.png?size=48" width="48" height="48"></a><a href="https://github.com/arpitBhalla" target="_blank"><img title="arpitBhalla" src="https://github.com/arpitBhalla.png?size=48" width="48" height="48"></a></section><section id="users"><h2 id="excited-to-be-used-by">Excited to be used by:</h2><a href="https://github.com/Apocalypsor" target="_blank"><img title="Apocalypsor" src="https://github.com/Apocalypsor.png?size=48" width="48" height="48"></a><a href="https://github.com/brentvatne" target="_blank"><img title="brentvatne" src="https://github.com/brentvatne.png?size=48" width="48" height="48"></a><a href="https://github.com/byCedric" target="_blank"><img title="byCedric" src="https://github.com/byCedric.png?size=48" width="48" height="48"></a><a href="https://github.com/circadian-risk" target="_blank"><img title="circadian-risk" src="https://github.com/circadian-risk.png?size=48" width="48" height="48"></a><a href="https://github.com/cpojer" target="_blank"><img title="cpojer" src="https://github.com/cpojer.png?size=48" width="48" height="48"></a><a href="https://github.com/cubecull" target="_blank"><img title="cubecull" src="https://github.com/cubecull.png?size=48" width="48" height="48"></a><a href="https://github.com/erwinkn" target="_blank"><img title="erwinkn" src="https://github.com/erwinkn.png?size=48" width="48" height="48"></a><a href="https://github.com/expo" target="_blank"><img title="expo" src="https://github.com/expo.png?size=48" width="48" height="48"></a><a href="https://github.com/ezra-en" target="_blank"><img title="ezra-en" src="https://github.com/ezra-en.png?size=48" width="48" height="48"></a><a href="https://github.com/fdfontes" target="_blank"><img title="fdfontes" src="https://github.com/fdfontes.png?size=48" width="48" height="48"></a><a href="https://github.com/feychenie" target="_blank"><img title="feychenie" src="https://github.com/feychenie.png?size=48" width="48" height="48"></a><a href="https://github.com/flaming-codes" target="_blank"><img title="flaming-codes" src="https://github.com/flaming-codes.png?size=48" width="48" height="48"></a><a href="https://github.com/fostertheweb" target="_blank"><img title="fostertheweb" src="https://github.com/fostertheweb.png?size=48" width="48" height="48"></a><a href="https://github.com/generates" target="_blank"><img title="generates" src="https://github.com/generates.png?size=48" width="48" height="48"></a><a href="https://github.com/Giulio987" target="_blank"><img title="Giulio987" src="https://github.com/Giulio987.png?size=48" width="48" height="48"></a><a href="https://github.com/itsdevcoffee" target="_blank"><img title="itsdevcoffee" src="https://github.com/itsdevcoffee.png?size=48" width="48" height="48"></a><a href="https://github.com/jaysc" target="_blank"><img title="jaysc" src="https://github.com/jaysc.png?size=48" width="48" height="48"></a><a href="https://github.com/jbolda" target="_blank"><img title="jbolda" src="https://github.com/jbolda.png?size=48" width="48" height="48"></a><a href="https://github.com/Kayoo-asso" target="_blank"><img title="Kayoo-asso" src="https://github.com/Kayoo-asso.png?size=48" width="48" height="48"></a><a href="https://github.com/kotofurumiya" target="_blank"><img title="kotofurumiya" src="https://github.com/kotofurumiya.png?size=48" width="48" height="48"></a><a href="https://github.com/Kudo" target="_blank"><img title="Kudo" src="https://github.com/Kudo.png?size=48" width="48" height="48"></a><a href="https://github.com/learn-anything" target="_blank"><img title="learn-anything" src="https://github.com/learn-anything.png?size=48" width="48" height="48"></a><a href="https://github.com/lluc" target="_blank"><img title="lluc" src="https://github.com/lluc.png?size=48" width="48" height="48"></a><a href="https://github.com/marksteve" target="_blank"><img title="marksteve" src="https://github.com/marksteve.png?size=48" width="48" height="48"></a><a href="https://github.com/miking-the-viking" target="_blank"><img title="miking-the-viking" src="https://github.com/miking-the-viking.png?size=48" width="48" height="48"></a><a href="https://github.com/mjamesderocher" target="_blank"><img title="mjamesderocher" src="https://github.com/mjamesderocher.png?size=48" width="48" height="48"></a><a href="https://github.com/mouktardev" target="_blank"><img title="mouktardev" src="https://github.com/mouktardev.png?size=48" width="48" height="48"></a><a href="https://github.com/nickmessing" target="_blank"><img title="nickmessing" src="https://github.com/nickmessing.png?size=48" width="48" height="48"></a><a href="https://github.com/nikitavoloboev" target="_blank"><img title="nikitavoloboev" src="https://github.com/nikitavoloboev.png?size=48" width="48" height="48"></a><a href="https://github.com/nkzw-tech" target="_blank"><img title="nkzw-tech" src="https://github.com/nkzw-tech.png?size=48" width="48" height="48"></a><a href="https://github.com/palerdot" target="_blank"><img title="palerdot" src="https://github.com/palerdot.png?size=48" width="48" height="48"></a><a href="https://github.com/PorcoRosso85" target="_blank"><img title="PorcoRosso85" src="https://github.com/PorcoRosso85.png?size=48" width="48" height="48"></a><a href="https://github.com/primodiumxyz" target="_blank"><img title="primodiumxyz" src="https://github.com/primodiumxyz.png?size=48" width="48" height="48"></a><a href="https://github.com/shaneosullivan" target="_blank"><img title="shaneosullivan" src="https://github.com/shaneosullivan.png?size=48" width="48" height="48"></a><a href="https://github.com/sudo-self" target="_blank"><img title="sudo-self" src="https://github.com/sudo-self.png?size=48" width="48" height="48"></a><a href="https://github.com/SuperSonicHub1" target="_blank"><img title="SuperSonicHub1" src="https://github.com/SuperSonicHub1.png?size=48" width="48" height="48"></a><a href="https://github.com/threepointone" target="_blank"><img title="threepointone" src="https://github.com/threepointone.png?size=48" width="48" height="48"></a><a href="https://github.com/uptonking" target="_blank"><img title="uptonking" src="https://github.com/uptonking.png?size=48" width="48" height="48"></a><a href="https://github.com/ViktorZhurbin" target="_blank"><img title="ViktorZhurbin" src="https://github.com/ViktorZhurbin.png?size=48" width="48" height="48"></a><a href="https://github.com/WonderPanda" target="_blank"><img title="WonderPanda" src="https://github.com/WonderPanda.png?size=48" width="48" height="48"></a></section><hr><p><a class="start" href="https://tinybase.org/guides/the-basics/getting-started/">Get started</a></p><p><a href="https://tinybase.org/demos/">Try the demos</a></p><p><a href="https://tinybase.org/api/store/interfaces/store/store/">Read the docs</a></p><hr><section id="about"><h2 id="about">About</h2><p>Modern apps deserve better. Why trade reactive user experiences to be able to use relational data? Or sacrifice features for bundle size? And why does the cloud do all the work <a href="https://localfirstweb.dev/" target="_blank">anyway</a>?</p><p>Building TinyBase was originally an interesting exercise for <a rel="me" href="https://tripleodeon.com">me</a> in API design, minification, and documentation. But now it has taken on a life of its own, and has grown beyond my wildest expectations.</p><p>It could not have been built without these great <a href="https://tinybase.org/guides/how-tinybase-is-built/credits/#giants">projects</a> and <a href="https://tinybase.org/guides/how-tinybase-is-built/credits/#and-friends">friends</a>, and I hope you enjoy using it as much as I do building it!</p></section><section id="story"><h2 id="the-story">The story</h2><a href="https://youtu.be/hXL7OkW-Prk?t=1232" target="_blank"><img src="https://tinybase.org/youtube.webp"></a></section>
297
+ <section><h2 id="did-we-say-tiny">Did we say tiny?</h2><p>If you use the basic <a href="https://tinybase.org/api/store/"><code>store</code></a> module alone, you&#x27;ll only add a gzipped <em>5.3kB</em> to your app. Incrementally add the other modules as you need more functionality, or get it all for <em>11.4kB</em>.</p><p>The optional <a href="https://tinybase.org/api/ui-react/"><code>ui-react</code></a> module is just <em>4.9kB</em>, the ui-react-dom components are another <em>2.6kB</em>, and everything is super fast. Life&#x27;s easy when you have zero dependencies!</p><p>Read more about how TinyBase is structured and packaged in the <a href="https://tinybase.org/guides/how-tinybase-is-built/architecture/">Architecture</a> guide.</p></section><div class="table"><table class="fixed"><tbody><tr><th> </th><th>Minified .js.gz</th><th>Source .js</th></tr><tr><th class="right"><a href="https://tinybase.org/api/store/">tinybase/store</a> (minimal)</th><td>5.3kB</td><td>52.4kB</td></tr><tr><th class="right">tinybase (complete)</th><td>11.4kB</td><td>119.0kB</td></tr><tr><th class="right"><a href="https://tinybase.org/api/ui-react/">ui-react</a></th><td>4.9kB</td><td>53.5kB</td></tr><tr><th class="right"><a href="https://tinybase.org/api/ui-react-dom/">ui-react-dom</a></th><td>2.6kB</td><td>20.4kB</td></tr></tbody></table></div><section><h2 id="well-tested-and-documented">Well tested and documented.</h2><p>TinyBase has <em>100.0%</em> test coverage, including the code throughout the documentation - even on this page! The guides, demos, and API examples are designed to make it as easy as possible for you to get your TinyBase-powered app up and running.</p><p>Read more about how TinyBase is tested in the Unit <a href="https://tinybase.org/guides/how-tinybase-is-built/testing/">Testing</a> guide.</p></section><div class="table"><table class="fixed"><tbody><tr><th width="30%"> </th><th>Total</th><th>Tested</th><th>Coverage</th></tr><tr><th class="right">Lines</th><td>2,285</td><td>2,285</td><td>100.0%</td></tr><tr><th class="right">Statements</th><td>2,466</td><td>2,466</td><td>100.0%</td></tr><tr><th class="right">Functions</th><td>985</td><td>985</td><td>100.0%</td></tr><tr><th class="right">Branches</th><td>853</td><td>853</td><td>100.0%</td></tr><tr><th class="right">Tests</th><td colspan="3">7,456</td></tr><tr><th class="right">Assertions</th><td colspan="3">33,193</td></tr></tbody></table></div><hr><section id="sponsors"><h2 id="proud-to-be-sponsored-by">Proud to be sponsored by:</h2><a href="https://github.com/cpojer" target="_blank"><img title="cpojer" src="https://github.com/cpojer.png?size=48" width="48" height="48"></a><a href="https://github.com/expo" target="_blank"><img title="expo" src="https://github.com/expo.png?size=48" width="48" height="48"></a><a href="https://github.com/beekeeb" target="_blank"><img title="beekeeb" src="https://github.com/beekeeb.png?size=48" width="48" height="48"></a><a href="https://github.com/cancelself" target="_blank"><img title="cancelself" src="https://github.com/cancelself.png?size=48" width="48" height="48"></a><a href="https://github.com/WonderPanda" target="_blank"><img title="WonderPanda" src="https://github.com/WonderPanda.png?size=48" width="48" height="48"></a><a href="https://github.com/arpitBhalla" target="_blank"><img title="arpitBhalla" src="https://github.com/arpitBhalla.png?size=48" width="48" height="48"></a></section><section id="users"><h2 id="excited-to-be-used-by">Excited to be used by:</h2><a href="https://github.com/Apocalypsor" target="_blank"><img title="Apocalypsor" src="https://github.com/Apocalypsor.png?size=48" width="48" height="48"></a><a href="https://github.com/brentvatne" target="_blank"><img title="brentvatne" src="https://github.com/brentvatne.png?size=48" width="48" height="48"></a><a href="https://github.com/byCedric" target="_blank"><img title="byCedric" src="https://github.com/byCedric.png?size=48" width="48" height="48"></a><a href="https://github.com/circadian-risk" target="_blank"><img title="circadian-risk" src="https://github.com/circadian-risk.png?size=48" width="48" height="48"></a><a href="https://github.com/cpojer" target="_blank"><img title="cpojer" src="https://github.com/cpojer.png?size=48" width="48" height="48"></a><a href="https://github.com/cubecull" target="_blank"><img title="cubecull" src="https://github.com/cubecull.png?size=48" width="48" height="48"></a><a href="https://github.com/erwinkn" target="_blank"><img title="erwinkn" src="https://github.com/erwinkn.png?size=48" width="48" height="48"></a><a href="https://github.com/expo" target="_blank"><img title="expo" src="https://github.com/expo.png?size=48" width="48" height="48"></a><a href="https://github.com/ezra-en" target="_blank"><img title="ezra-en" src="https://github.com/ezra-en.png?size=48" width="48" height="48"></a><a href="https://github.com/fdfontes" target="_blank"><img title="fdfontes" src="https://github.com/fdfontes.png?size=48" width="48" height="48"></a><a href="https://github.com/feychenie" target="_blank"><img title="feychenie" src="https://github.com/feychenie.png?size=48" width="48" height="48"></a><a href="https://github.com/flaming-codes" target="_blank"><img title="flaming-codes" src="https://github.com/flaming-codes.png?size=48" width="48" height="48"></a><a href="https://github.com/fostertheweb" target="_blank"><img title="fostertheweb" src="https://github.com/fostertheweb.png?size=48" width="48" height="48"></a><a href="https://github.com/generates" target="_blank"><img title="generates" src="https://github.com/generates.png?size=48" width="48" height="48"></a><a href="https://github.com/Giulio987" target="_blank"><img title="Giulio987" src="https://github.com/Giulio987.png?size=48" width="48" height="48"></a><a href="https://github.com/itsdevcoffee" target="_blank"><img title="itsdevcoffee" src="https://github.com/itsdevcoffee.png?size=48" width="48" height="48"></a><a href="https://github.com/jaysc" target="_blank"><img title="jaysc" src="https://github.com/jaysc.png?size=48" width="48" height="48"></a><a href="https://github.com/jbolda" target="_blank"><img title="jbolda" src="https://github.com/jbolda.png?size=48" width="48" height="48"></a><a href="https://github.com/Kayoo-asso" target="_blank"><img title="Kayoo-asso" src="https://github.com/Kayoo-asso.png?size=48" width="48" height="48"></a><a href="https://github.com/kotofurumiya" target="_blank"><img title="kotofurumiya" src="https://github.com/kotofurumiya.png?size=48" width="48" height="48"></a><a href="https://github.com/Kudo" target="_blank"><img title="Kudo" src="https://github.com/Kudo.png?size=48" width="48" height="48"></a><a href="https://github.com/learn-anything" target="_blank"><img title="learn-anything" src="https://github.com/learn-anything.png?size=48" width="48" height="48"></a><a href="https://github.com/lluc" target="_blank"><img title="lluc" src="https://github.com/lluc.png?size=48" width="48" height="48"></a><a href="https://github.com/marksteve" target="_blank"><img title="marksteve" src="https://github.com/marksteve.png?size=48" width="48" height="48"></a><a href="https://github.com/miking-the-viking" target="_blank"><img title="miking-the-viking" src="https://github.com/miking-the-viking.png?size=48" width="48" height="48"></a><a href="https://github.com/mjamesderocher" target="_blank"><img title="mjamesderocher" src="https://github.com/mjamesderocher.png?size=48" width="48" height="48"></a><a href="https://github.com/mouktardev" target="_blank"><img title="mouktardev" src="https://github.com/mouktardev.png?size=48" width="48" height="48"></a><a href="https://github.com/nickmessing" target="_blank"><img title="nickmessing" src="https://github.com/nickmessing.png?size=48" width="48" height="48"></a><a href="https://github.com/nikitavoloboev" target="_blank"><img title="nikitavoloboev" src="https://github.com/nikitavoloboev.png?size=48" width="48" height="48"></a><a href="https://github.com/nkzw-tech" target="_blank"><img title="nkzw-tech" src="https://github.com/nkzw-tech.png?size=48" width="48" height="48"></a><a href="https://github.com/palerdot" target="_blank"><img title="palerdot" src="https://github.com/palerdot.png?size=48" width="48" height="48"></a><a href="https://github.com/PorcoRosso85" target="_blank"><img title="PorcoRosso85" src="https://github.com/PorcoRosso85.png?size=48" width="48" height="48"></a><a href="https://github.com/primodiumxyz" target="_blank"><img title="primodiumxyz" src="https://github.com/primodiumxyz.png?size=48" width="48" height="48"></a><a href="https://github.com/shaneosullivan" target="_blank"><img title="shaneosullivan" src="https://github.com/shaneosullivan.png?size=48" width="48" height="48"></a><a href="https://github.com/sudo-self" target="_blank"><img title="sudo-self" src="https://github.com/sudo-self.png?size=48" width="48" height="48"></a><a href="https://github.com/SuperSonicHub1" target="_blank"><img title="SuperSonicHub1" src="https://github.com/SuperSonicHub1.png?size=48" width="48" height="48"></a><a href="https://github.com/threepointone" target="_blank"><img title="threepointone" src="https://github.com/threepointone.png?size=48" width="48" height="48"></a><a href="https://github.com/uptonking" target="_blank"><img title="uptonking" src="https://github.com/uptonking.png?size=48" width="48" height="48"></a><a href="https://github.com/ViktorZhurbin" target="_blank"><img title="ViktorZhurbin" src="https://github.com/ViktorZhurbin.png?size=48" width="48" height="48"></a><a href="https://github.com/WonderPanda" target="_blank"><img title="WonderPanda" src="https://github.com/WonderPanda.png?size=48" width="48" height="48"></a></section><hr><p><a class="start" href="https://tinybase.org/guides/the-basics/getting-started/">Get started</a></p><p><a href="https://tinybase.org/demos/">Try the demos</a></p><p><a href="https://tinybase.org/api/store/interfaces/store/store/">Read the docs</a></p><hr><section id="about"><h2 id="about">About</h2><p>Modern apps deserve better. Why trade reactive user experiences to be able to use relational data? Or sacrifice features for bundle size? And why does the cloud do all the work <a href="https://localfirstweb.dev/" target="_blank">anyway</a>?</p><p>Building TinyBase was originally an interesting exercise for <a rel="me" href="https://tripleodeon.com">me</a> in API design, minification, and documentation. But now it has taken on a life of its own, and has grown beyond my wildest expectations.</p><p>It could not have been built without these great <a href="https://tinybase.org/guides/how-tinybase-is-built/credits/#giants">projects</a> and <a href="https://tinybase.org/guides/how-tinybase-is-built/credits/#and-friends">friends</a>, and I hope you enjoy using it as much as I do building it!</p></section><section id="story"><h2 id="the-story">The story</h2><a href="https://youtu.be/hXL7OkW-Prk?t=1232" target="_blank"><img src="https://tinybase.org/youtube.webp"></a></section>
package/store/index.js CHANGED
@@ -302,12 +302,6 @@ const jsonStringWithMap = (obj) =>
302
302
  isInstanceOf(value, Map) ? object.fromEntries([...value]) : value,
303
303
  );
304
304
 
305
- const ENCODE =
306
- '-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz'.split(
307
- EMPTY_STRING,
308
- );
309
- mapNew(arrayMap(ENCODE, (char, index) => [char, index]));
310
-
311
305
  const defaultSorter = (sortKey1, sortKey2) =>
312
306
  (sortKey1 ?? 0) < (sortKey2 ?? 0) ? -1 : 1;
313
307
 
@@ -302,12 +302,6 @@ const jsonStringWithMap = (obj) =>
302
302
  isInstanceOf(value, Map) ? object.fromEntries([...value]) : value,
303
303
  );
304
304
 
305
- const ENCODE =
306
- '-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz'.split(
307
- EMPTY_STRING,
308
- );
309
- mapNew(arrayMap(ENCODE, (char, index) => [char, index]));
310
-
311
305
  const defaultSorter = (sortKey1, sortKey2) =>
312
306
  (sortKey1 ?? 0) < (sortKey2 ?? 0) ? -1 : 1;
313
307
 
@@ -1,4 +1,6 @@
1
1
  const EMPTY_STRING = '';
2
+ const strSplit = (str, separator = EMPTY_STRING, limit) =>
3
+ str.split(separator, limit);
2
4
 
3
5
  const promise = Promise;
4
6
  const GLOBAL = globalThis;
@@ -91,8 +93,6 @@ const visitTree = (node, path, ensureLeaf, pruneLeaf, p = 0) =>
91
93
  },
92
94
  );
93
95
 
94
- new GLOBAL.TextEncoder();
95
-
96
96
  const newStamp = (value, time) => (time ? [value, time] : [value]);
97
97
  const getLatestTime = (time1, time2) =>
98
98
  /* istanbul ignore next */
@@ -404,11 +404,9 @@ const createCustomPersister = (
404
404
  };
405
405
 
406
406
  const MASK6 = 63;
407
- const ENCODE =
408
- '-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz'.split(
409
- EMPTY_STRING,
410
- );
411
- mapNew(arrayMap(ENCODE, (char, index) => [char, index]));
407
+ const ENCODE = /* @__PURE__ */ strSplit(
408
+ '-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz',
409
+ );
412
410
  const encode = (num) => ENCODE[num & MASK6];
413
411
 
414
412
  const getRandomValues = GLOBAL.crypto
@@ -1,4 +1,6 @@
1
1
  const EMPTY_STRING = '';
2
+ const strSplit = (str, separator = EMPTY_STRING, limit) =>
3
+ str.split(separator, limit);
2
4
 
3
5
  const promise = Promise;
4
6
  const GLOBAL = globalThis;
@@ -91,8 +93,6 @@ const visitTree = (node, path, ensureLeaf, pruneLeaf, p = 0) =>
91
93
  },
92
94
  );
93
95
 
94
- new GLOBAL.TextEncoder();
95
-
96
96
  const newStamp = (value, time) => (time ? [value, time] : [value]);
97
97
  const getLatestTime = (time1, time2) =>
98
98
  /* istanbul ignore next */
@@ -404,11 +404,9 @@ const createCustomPersister = (
404
404
  };
405
405
 
406
406
  const MASK6 = 63;
407
- const ENCODE =
408
- '-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz'.split(
409
- EMPTY_STRING,
410
- );
411
- mapNew(arrayMap(ENCODE, (char, index) => [char, index]));
407
+ const ENCODE = /* @__PURE__ */ strSplit(
408
+ '-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz',
409
+ );
412
410
  const encode = (num) => ENCODE[num & MASK6];
413
411
 
414
412
  const getRandomValues = GLOBAL.crypto
@@ -1,4 +1,6 @@
1
1
  const EMPTY_STRING = '';
2
+ const strSplit = (str, separator = EMPTY_STRING, limit) =>
3
+ str.split(separator, limit);
2
4
 
3
5
  const promise = Promise;
4
6
  const GLOBAL = globalThis;
@@ -91,8 +93,6 @@ const visitTree = (node, path, ensureLeaf, pruneLeaf, p = 0) =>
91
93
  },
92
94
  );
93
95
 
94
- new GLOBAL.TextEncoder();
95
-
96
96
  const newStamp = (value, time) => (time ? [value, time] : [value]);
97
97
  const getLatestTime = (time1, time2) =>
98
98
  /* istanbul ignore next */
@@ -404,11 +404,9 @@ const createCustomPersister = (
404
404
  };
405
405
 
406
406
  const MASK6 = 63;
407
- const ENCODE =
408
- '-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz'.split(
409
- EMPTY_STRING,
410
- );
411
- mapNew(arrayMap(ENCODE, (char, index) => [char, index]));
407
+ const ENCODE = /* @__PURE__ */ strSplit(
408
+ '-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz',
409
+ );
412
410
  const encode = (num) => ENCODE[num & MASK6];
413
411
 
414
412
  const getRandomValues = GLOBAL.crypto