tinybase 4.4.0-beta.0 → 4.4.0-beta.2

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 (347) hide show
  1. package/lib/checkpoints.js +1 -1
  2. package/lib/checkpoints.js.gz +0 -0
  3. package/lib/cjs/checkpoints.cjs +1 -1
  4. package/lib/cjs/checkpoints.cjs.gz +0 -0
  5. package/lib/cjs/indexes.cjs +1 -1
  6. package/lib/cjs/indexes.cjs.gz +0 -0
  7. package/lib/cjs/metrics.cjs +1 -1
  8. package/lib/cjs/metrics.cjs.gz +0 -0
  9. package/lib/cjs/persisters/persister-automerge.cjs +1 -1
  10. package/lib/cjs/persisters/persister-automerge.cjs.gz +0 -0
  11. package/lib/cjs/persisters/persister-browser.cjs +1 -1
  12. package/lib/cjs/persisters/persister-browser.cjs.gz +0 -0
  13. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  14. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  15. package/lib/cjs/persisters/persister-expo-sqlite.cjs +1 -1
  16. package/lib/cjs/persisters/persister-expo-sqlite.cjs.gz +0 -0
  17. package/lib/cjs/persisters/persister-file.cjs +1 -1
  18. package/lib/cjs/persisters/persister-file.cjs.gz +0 -0
  19. package/lib/cjs/persisters/persister-indexed-db.cjs +1 -1
  20. package/lib/cjs/persisters/persister-indexed-db.cjs.gz +0 -0
  21. package/lib/cjs/persisters/persister-partykit-client.cjs +1 -1
  22. package/lib/cjs/persisters/persister-partykit-client.cjs.gz +0 -0
  23. package/lib/cjs/persisters/persister-partykit-server.cjs +1 -1
  24. package/lib/cjs/persisters/persister-partykit-server.cjs.gz +0 -0
  25. package/lib/cjs/persisters/persister-remote.cjs +1 -1
  26. package/lib/cjs/persisters/persister-remote.cjs.gz +0 -0
  27. package/lib/cjs/persisters/persister-sqlite-wasm.cjs +1 -1
  28. package/lib/cjs/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  29. package/lib/cjs/persisters/persister-sqlite3.cjs +1 -1
  30. package/lib/cjs/persisters/persister-sqlite3.cjs.gz +0 -0
  31. package/lib/cjs/persisters/persister-yjs.cjs +1 -1
  32. package/lib/cjs/persisters/persister-yjs.cjs.gz +0 -0
  33. package/lib/cjs/persisters.cjs +1 -1
  34. package/lib/cjs/persisters.cjs.gz +0 -0
  35. package/lib/cjs/queries.cjs +1 -1
  36. package/lib/cjs/queries.cjs.gz +0 -0
  37. package/lib/cjs/relationships.cjs +1 -1
  38. package/lib/cjs/relationships.cjs.gz +0 -0
  39. package/lib/cjs/store.cjs +1 -1
  40. package/lib/cjs/store.cjs.gz +0 -0
  41. package/lib/cjs/tinybase.cjs +1 -1
  42. package/lib/cjs/tinybase.cjs.gz +0 -0
  43. package/lib/cjs/tools.cjs +1 -1
  44. package/lib/cjs/tools.cjs.gz +0 -0
  45. package/lib/cjs/ui-react-dom-debug.cjs +1 -1
  46. package/lib/cjs/ui-react-dom-debug.cjs.gz +0 -0
  47. package/lib/cjs/ui-react-dom.cjs +1 -1
  48. package/lib/cjs/ui-react-dom.cjs.gz +0 -0
  49. package/lib/cjs/ui-react.cjs +1 -1
  50. package/lib/cjs/ui-react.cjs.gz +0 -0
  51. package/lib/cjs-es6/checkpoints.cjs +1 -1
  52. package/lib/cjs-es6/checkpoints.cjs.gz +0 -0
  53. package/lib/cjs-es6/indexes.cjs +1 -1
  54. package/lib/cjs-es6/indexes.cjs.gz +0 -0
  55. package/lib/cjs-es6/metrics.cjs +1 -1
  56. package/lib/cjs-es6/metrics.cjs.gz +0 -0
  57. package/lib/cjs-es6/persisters/persister-automerge.cjs +1 -1
  58. package/lib/cjs-es6/persisters/persister-automerge.cjs.gz +0 -0
  59. package/lib/cjs-es6/persisters/persister-browser.cjs +1 -1
  60. package/lib/cjs-es6/persisters/persister-browser.cjs.gz +0 -0
  61. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  62. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  63. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs +1 -1
  64. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs.gz +0 -0
  65. package/lib/cjs-es6/persisters/persister-file.cjs +1 -1
  66. package/lib/cjs-es6/persisters/persister-file.cjs.gz +0 -0
  67. package/lib/cjs-es6/persisters/persister-indexed-db.cjs +1 -1
  68. package/lib/cjs-es6/persisters/persister-indexed-db.cjs.gz +0 -0
  69. package/lib/cjs-es6/persisters/persister-partykit-client.cjs +1 -1
  70. package/lib/cjs-es6/persisters/persister-partykit-client.cjs.gz +0 -0
  71. package/lib/cjs-es6/persisters/persister-partykit-server.cjs +1 -1
  72. package/lib/cjs-es6/persisters/persister-partykit-server.cjs.gz +0 -0
  73. package/lib/cjs-es6/persisters/persister-remote.cjs +1 -1
  74. package/lib/cjs-es6/persisters/persister-remote.cjs.gz +0 -0
  75. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs +1 -1
  76. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  77. package/lib/cjs-es6/persisters/persister-sqlite3.cjs +1 -1
  78. package/lib/cjs-es6/persisters/persister-sqlite3.cjs.gz +0 -0
  79. package/lib/cjs-es6/persisters/persister-yjs.cjs +1 -1
  80. package/lib/cjs-es6/persisters/persister-yjs.cjs.gz +0 -0
  81. package/lib/cjs-es6/persisters.cjs +1 -1
  82. package/lib/cjs-es6/persisters.cjs.gz +0 -0
  83. package/lib/cjs-es6/queries.cjs +1 -1
  84. package/lib/cjs-es6/queries.cjs.gz +0 -0
  85. package/lib/cjs-es6/relationships.cjs +1 -1
  86. package/lib/cjs-es6/relationships.cjs.gz +0 -0
  87. package/lib/cjs-es6/store.cjs +1 -1
  88. package/lib/cjs-es6/store.cjs.gz +0 -0
  89. package/lib/cjs-es6/tinybase.cjs +1 -1
  90. package/lib/cjs-es6/tinybase.cjs.gz +0 -0
  91. package/lib/cjs-es6/tools.cjs +1 -1
  92. package/lib/cjs-es6/tools.cjs.gz +0 -0
  93. package/lib/cjs-es6/ui-react-dom-debug.cjs +1 -1
  94. package/lib/cjs-es6/ui-react-dom-debug.cjs.gz +0 -0
  95. package/lib/cjs-es6/ui-react-dom.cjs +1 -1
  96. package/lib/cjs-es6/ui-react-dom.cjs.gz +0 -0
  97. package/lib/cjs-es6/ui-react.cjs +1 -1
  98. package/lib/cjs-es6/ui-react.cjs.gz +0 -0
  99. package/lib/debug/checkpoints.js +12 -12
  100. package/lib/debug/indexes.js +9 -9
  101. package/lib/debug/metrics.js +9 -9
  102. package/lib/debug/persisters/persister-automerge.js +21 -8
  103. package/lib/debug/persisters/persister-browser.js +17 -3
  104. package/lib/debug/persisters/persister-cr-sqlite-wasm.js +27 -12
  105. package/lib/debug/persisters/persister-expo-sqlite.js +27 -12
  106. package/lib/debug/persisters/persister-file.js +17 -3
  107. package/lib/debug/persisters/persister-indexed-db.js +21 -8
  108. package/lib/debug/persisters/persister-partykit-client.js +54 -20
  109. package/lib/debug/persisters/persister-partykit-server.js +173 -77
  110. package/lib/debug/persisters/persister-remote.js +17 -3
  111. package/lib/debug/persisters/persister-sqlite-wasm.js +27 -12
  112. package/lib/debug/persisters/persister-sqlite3.js +28 -13
  113. package/lib/debug/persisters/persister-yjs.js +23 -10
  114. package/lib/debug/persisters.js +16 -4
  115. package/lib/debug/queries.js +16 -15
  116. package/lib/debug/relationships.js +9 -9
  117. package/lib/debug/store.js +130 -35
  118. package/lib/debug/tinybase.js +142 -41
  119. package/lib/debug/tools.js +17 -9
  120. package/lib/debug/ui-react-dom.js +262 -150
  121. package/lib/debug/ui-react.js +288 -67
  122. package/lib/es6/checkpoints.js +1 -1
  123. package/lib/es6/checkpoints.js.gz +0 -0
  124. package/lib/es6/indexes.js +1 -1
  125. package/lib/es6/indexes.js.gz +0 -0
  126. package/lib/es6/metrics.js +1 -1
  127. package/lib/es6/metrics.js.gz +0 -0
  128. package/lib/es6/persisters/persister-automerge.js +1 -1
  129. package/lib/es6/persisters/persister-automerge.js.gz +0 -0
  130. package/lib/es6/persisters/persister-browser.js +1 -1
  131. package/lib/es6/persisters/persister-browser.js.gz +0 -0
  132. package/lib/es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  133. package/lib/es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  134. package/lib/es6/persisters/persister-expo-sqlite.js +1 -1
  135. package/lib/es6/persisters/persister-expo-sqlite.js.gz +0 -0
  136. package/lib/es6/persisters/persister-file.js +1 -1
  137. package/lib/es6/persisters/persister-file.js.gz +0 -0
  138. package/lib/es6/persisters/persister-indexed-db.js +1 -1
  139. package/lib/es6/persisters/persister-indexed-db.js.gz +0 -0
  140. package/lib/es6/persisters/persister-partykit-client.js +1 -1
  141. package/lib/es6/persisters/persister-partykit-client.js.gz +0 -0
  142. package/lib/es6/persisters/persister-partykit-server.js +1 -1
  143. package/lib/es6/persisters/persister-partykit-server.js.gz +0 -0
  144. package/lib/es6/persisters/persister-remote.js +1 -1
  145. package/lib/es6/persisters/persister-remote.js.gz +0 -0
  146. package/lib/es6/persisters/persister-sqlite-wasm.js +1 -1
  147. package/lib/es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  148. package/lib/es6/persisters/persister-sqlite3.js +1 -1
  149. package/lib/es6/persisters/persister-sqlite3.js.gz +0 -0
  150. package/lib/es6/persisters/persister-yjs.js +1 -1
  151. package/lib/es6/persisters/persister-yjs.js.gz +0 -0
  152. package/lib/es6/persisters.js +1 -1
  153. package/lib/es6/persisters.js.gz +0 -0
  154. package/lib/es6/queries.js +1 -1
  155. package/lib/es6/queries.js.gz +0 -0
  156. package/lib/es6/relationships.js +1 -1
  157. package/lib/es6/relationships.js.gz +0 -0
  158. package/lib/es6/store.js +1 -1
  159. package/lib/es6/store.js.gz +0 -0
  160. package/lib/es6/tinybase.js +1 -1
  161. package/lib/es6/tinybase.js.gz +0 -0
  162. package/lib/es6/tools.js +1 -1
  163. package/lib/es6/tools.js.gz +0 -0
  164. package/lib/es6/ui-react-dom-debug.js +1 -1
  165. package/lib/es6/ui-react-dom-debug.js.gz +0 -0
  166. package/lib/es6/ui-react-dom.js +1 -1
  167. package/lib/es6/ui-react-dom.js.gz +0 -0
  168. package/lib/es6/ui-react.js +1 -1
  169. package/lib/es6/ui-react.js.gz +0 -0
  170. package/lib/indexes.js +1 -1
  171. package/lib/indexes.js.gz +0 -0
  172. package/lib/metrics.js +1 -1
  173. package/lib/metrics.js.gz +0 -0
  174. package/lib/persisters/persister-automerge.js +1 -1
  175. package/lib/persisters/persister-automerge.js.gz +0 -0
  176. package/lib/persisters/persister-browser.js +1 -1
  177. package/lib/persisters/persister-browser.js.gz +0 -0
  178. package/lib/persisters/persister-cr-sqlite-wasm.js +1 -1
  179. package/lib/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  180. package/lib/persisters/persister-expo-sqlite.js +1 -1
  181. package/lib/persisters/persister-expo-sqlite.js.gz +0 -0
  182. package/lib/persisters/persister-file.js +1 -1
  183. package/lib/persisters/persister-file.js.gz +0 -0
  184. package/lib/persisters/persister-indexed-db.js +1 -1
  185. package/lib/persisters/persister-indexed-db.js.gz +0 -0
  186. package/lib/persisters/persister-partykit-client.js +1 -1
  187. package/lib/persisters/persister-partykit-client.js.gz +0 -0
  188. package/lib/persisters/persister-partykit-server.js +1 -1
  189. package/lib/persisters/persister-partykit-server.js.gz +0 -0
  190. package/lib/persisters/persister-remote.js +1 -1
  191. package/lib/persisters/persister-remote.js.gz +0 -0
  192. package/lib/persisters/persister-sqlite-wasm.js +1 -1
  193. package/lib/persisters/persister-sqlite-wasm.js.gz +0 -0
  194. package/lib/persisters/persister-sqlite3.js +1 -1
  195. package/lib/persisters/persister-sqlite3.js.gz +0 -0
  196. package/lib/persisters/persister-yjs.js +1 -1
  197. package/lib/persisters/persister-yjs.js.gz +0 -0
  198. package/lib/persisters.js +1 -1
  199. package/lib/persisters.js.gz +0 -0
  200. package/lib/queries.js +1 -1
  201. package/lib/queries.js.gz +0 -0
  202. package/lib/relationships.js +1 -1
  203. package/lib/relationships.js.gz +0 -0
  204. package/lib/store.js +1 -1
  205. package/lib/store.js.gz +0 -0
  206. package/lib/tinybase.js +1 -1
  207. package/lib/tinybase.js.gz +0 -0
  208. package/lib/tools.js +1 -1
  209. package/lib/tools.js.gz +0 -0
  210. package/lib/types/persisters/persister-automerge.d.ts +36 -3
  211. package/lib/types/persisters/persister-browser.d.ts +71 -8
  212. package/lib/types/persisters/persister-cr-sqlite-wasm.d.ts +42 -8
  213. package/lib/types/persisters/persister-expo-sqlite.d.ts +40 -7
  214. package/lib/types/persisters/persister-file.d.ts +34 -3
  215. package/lib/types/persisters/persister-indexed-db.d.ts +40 -9
  216. package/lib/types/persisters/persister-partykit-client.d.ts +99 -13
  217. package/lib/types/persisters/persister-partykit-server.d.ts +414 -9
  218. package/lib/types/persisters/persister-remote.d.ts +40 -4
  219. package/lib/types/persisters/persister-sqlite-wasm.d.ts +46 -7
  220. package/lib/types/persisters/persister-sqlite3.d.ts +40 -7
  221. package/lib/types/persisters/persister-yjs.d.ts +37 -5
  222. package/lib/types/persisters.d.ts +10 -10
  223. package/lib/types/queries.d.ts +24 -0
  224. package/lib/types/store.d.ts +912 -32
  225. package/lib/types/tools.d.ts +4 -6
  226. package/lib/types/ui-react-dom.d.ts +13 -2
  227. package/lib/types/ui-react.d.ts +1176 -44
  228. package/lib/types/with-schemas/persisters/persister-automerge.d.ts +38 -4
  229. package/lib/types/with-schemas/persisters/persister-browser.d.ts +75 -10
  230. package/lib/types/with-schemas/persisters/persister-cr-sqlite-wasm.d.ts +44 -9
  231. package/lib/types/with-schemas/persisters/persister-expo-sqlite.d.ts +42 -8
  232. package/lib/types/with-schemas/persisters/persister-file.d.ts +36 -4
  233. package/lib/types/with-schemas/persisters/persister-indexed-db.d.ts +42 -10
  234. package/lib/types/with-schemas/persisters/persister-partykit-client.d.ts +102 -15
  235. package/lib/types/with-schemas/persisters/persister-partykit-server.d.ts +447 -9
  236. package/lib/types/with-schemas/persisters/persister-remote.d.ts +42 -5
  237. package/lib/types/with-schemas/persisters/persister-sqlite-wasm.d.ts +48 -8
  238. package/lib/types/with-schemas/persisters/persister-sqlite3.d.ts +41 -7
  239. package/lib/types/with-schemas/persisters/persister-yjs.d.ts +39 -6
  240. package/lib/types/with-schemas/persisters.d.ts +10 -10
  241. package/lib/types/with-schemas/queries.d.ts +24 -0
  242. package/lib/types/with-schemas/store.d.ts +1180 -36
  243. package/lib/types/with-schemas/tools.d.ts +4 -6
  244. package/lib/types/with-schemas/ui-react-dom.d.ts +21 -4
  245. package/lib/types/with-schemas/ui-react.d.ts +1382 -71
  246. package/lib/ui-react-dom.js +1 -1
  247. package/lib/ui-react-dom.js.gz +0 -0
  248. package/lib/ui-react.js +1 -1
  249. package/lib/ui-react.js.gz +0 -0
  250. package/lib/umd/checkpoints.js +1 -1
  251. package/lib/umd/checkpoints.js.gz +0 -0
  252. package/lib/umd/indexes.js +1 -1
  253. package/lib/umd/indexes.js.gz +0 -0
  254. package/lib/umd/metrics.js +1 -1
  255. package/lib/umd/metrics.js.gz +0 -0
  256. package/lib/umd/persisters/persister-automerge.js +1 -1
  257. package/lib/umd/persisters/persister-automerge.js.gz +0 -0
  258. package/lib/umd/persisters/persister-browser.js +1 -1
  259. package/lib/umd/persisters/persister-browser.js.gz +0 -0
  260. package/lib/umd/persisters/persister-cr-sqlite-wasm.js +1 -1
  261. package/lib/umd/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  262. package/lib/umd/persisters/persister-expo-sqlite.js +1 -1
  263. package/lib/umd/persisters/persister-expo-sqlite.js.gz +0 -0
  264. package/lib/umd/persisters/persister-file.js +1 -1
  265. package/lib/umd/persisters/persister-file.js.gz +0 -0
  266. package/lib/umd/persisters/persister-indexed-db.js +1 -1
  267. package/lib/umd/persisters/persister-indexed-db.js.gz +0 -0
  268. package/lib/umd/persisters/persister-partykit-client.js +1 -1
  269. package/lib/umd/persisters/persister-partykit-client.js.gz +0 -0
  270. package/lib/umd/persisters/persister-partykit-server.js +1 -1
  271. package/lib/umd/persisters/persister-partykit-server.js.gz +0 -0
  272. package/lib/umd/persisters/persister-remote.js +1 -1
  273. package/lib/umd/persisters/persister-remote.js.gz +0 -0
  274. package/lib/umd/persisters/persister-sqlite-wasm.js +1 -1
  275. package/lib/umd/persisters/persister-sqlite-wasm.js.gz +0 -0
  276. package/lib/umd/persisters/persister-sqlite3.js +1 -1
  277. package/lib/umd/persisters/persister-sqlite3.js.gz +0 -0
  278. package/lib/umd/persisters/persister-yjs.js +1 -1
  279. package/lib/umd/persisters/persister-yjs.js.gz +0 -0
  280. package/lib/umd/persisters.js +1 -1
  281. package/lib/umd/persisters.js.gz +0 -0
  282. package/lib/umd/queries.js +1 -1
  283. package/lib/umd/queries.js.gz +0 -0
  284. package/lib/umd/relationships.js +1 -1
  285. package/lib/umd/relationships.js.gz +0 -0
  286. package/lib/umd/store.js +1 -1
  287. package/lib/umd/store.js.gz +0 -0
  288. package/lib/umd/tinybase.js +1 -1
  289. package/lib/umd/tinybase.js.gz +0 -0
  290. package/lib/umd/tools.js +1 -1
  291. package/lib/umd/tools.js.gz +0 -0
  292. package/lib/umd/ui-react-dom-debug.js +1 -1
  293. package/lib/umd/ui-react-dom-debug.js.gz +0 -0
  294. package/lib/umd/ui-react-dom.js +1 -1
  295. package/lib/umd/ui-react-dom.js.gz +0 -0
  296. package/lib/umd/ui-react.js +1 -1
  297. package/lib/umd/ui-react.js.gz +0 -0
  298. package/lib/umd-es6/checkpoints.js +1 -1
  299. package/lib/umd-es6/checkpoints.js.gz +0 -0
  300. package/lib/umd-es6/indexes.js +1 -1
  301. package/lib/umd-es6/indexes.js.gz +0 -0
  302. package/lib/umd-es6/metrics.js +1 -1
  303. package/lib/umd-es6/metrics.js.gz +0 -0
  304. package/lib/umd-es6/persisters/persister-automerge.js +1 -1
  305. package/lib/umd-es6/persisters/persister-automerge.js.gz +0 -0
  306. package/lib/umd-es6/persisters/persister-browser.js +1 -1
  307. package/lib/umd-es6/persisters/persister-browser.js.gz +0 -0
  308. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  309. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  310. package/lib/umd-es6/persisters/persister-expo-sqlite.js +1 -1
  311. package/lib/umd-es6/persisters/persister-expo-sqlite.js.gz +0 -0
  312. package/lib/umd-es6/persisters/persister-file.js +1 -1
  313. package/lib/umd-es6/persisters/persister-file.js.gz +0 -0
  314. package/lib/umd-es6/persisters/persister-indexed-db.js +1 -1
  315. package/lib/umd-es6/persisters/persister-indexed-db.js.gz +0 -0
  316. package/lib/umd-es6/persisters/persister-partykit-client.js +1 -1
  317. package/lib/umd-es6/persisters/persister-partykit-client.js.gz +0 -0
  318. package/lib/umd-es6/persisters/persister-partykit-server.js +1 -1
  319. package/lib/umd-es6/persisters/persister-partykit-server.js.gz +0 -0
  320. package/lib/umd-es6/persisters/persister-remote.js +1 -1
  321. package/lib/umd-es6/persisters/persister-remote.js.gz +0 -0
  322. package/lib/umd-es6/persisters/persister-sqlite-wasm.js +1 -1
  323. package/lib/umd-es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  324. package/lib/umd-es6/persisters/persister-sqlite3.js +1 -1
  325. package/lib/umd-es6/persisters/persister-sqlite3.js.gz +0 -0
  326. package/lib/umd-es6/persisters/persister-yjs.js +1 -1
  327. package/lib/umd-es6/persisters/persister-yjs.js.gz +0 -0
  328. package/lib/umd-es6/persisters.js +1 -1
  329. package/lib/umd-es6/persisters.js.gz +0 -0
  330. package/lib/umd-es6/queries.js +1 -1
  331. package/lib/umd-es6/queries.js.gz +0 -0
  332. package/lib/umd-es6/relationships.js +1 -1
  333. package/lib/umd-es6/relationships.js.gz +0 -0
  334. package/lib/umd-es6/store.js +1 -1
  335. package/lib/umd-es6/store.js.gz +0 -0
  336. package/lib/umd-es6/tinybase.js +1 -1
  337. package/lib/umd-es6/tinybase.js.gz +0 -0
  338. package/lib/umd-es6/tools.js +1 -1
  339. package/lib/umd-es6/tools.js.gz +0 -0
  340. package/lib/umd-es6/ui-react-dom-debug.js +1 -1
  341. package/lib/umd-es6/ui-react-dom-debug.js.gz +0 -0
  342. package/lib/umd-es6/ui-react-dom.js +1 -1
  343. package/lib/umd-es6/ui-react-dom.js.gz +0 -0
  344. package/lib/umd-es6/ui-react.js +1 -1
  345. package/lib/umd-es6/ui-react.js.gz +0 -0
  346. package/package.json +42 -40
  347. package/readme.md +2 -2
@@ -15,6 +15,40 @@ import {OptionalSchemas, Store} from '../store';
15
15
  import {DocHandle} from 'automerge-repo';
16
16
  import {Persister} from '../persisters';
17
17
 
18
+ /**
19
+ * The AutomergePersister interface is a minor extension to the Persister
20
+ * interface.
21
+ *
22
+ * It simply provides an extra getDocHandle method for accessing the Automerge
23
+ * document handler the Store is being persisted to.
24
+ * @since v4.3.14
25
+ */
26
+ export interface AutomergePersister<Schemas extends OptionalSchemas>
27
+ extends Persister<Schemas> {
28
+ /**
29
+ * The getDocHandle method returns the Automerge document handler the Store is
30
+ * being persisted to.
31
+ * @returns The Automerge document handler.
32
+ * @example
33
+ * This example creates a Persister object against a newly-created Store and
34
+ * then gets the Automerge document handler back out again.
35
+ *
36
+ * ```js
37
+ * const docHandler = new AutomergeRepo.Repo({network: []}).create();
38
+ * const store = createStore().setTables({pets: {fido: {species: 'dog'}}});
39
+ * const persister = createAutomergePersister(store, docHandler);
40
+ *
41
+ * console.log(persister.getDocHandle() == docHandler);
42
+ * // -> true
43
+ *
44
+ * persister.destroy();
45
+ * ```
46
+ * @category Getter
47
+ * @since v4.3.14
48
+ */
49
+ getDocHandle: () => DocHandle<any>;
50
+ }
51
+
18
52
  /**
19
53
  * The createAutomergePersister function creates a Persister object that can
20
54
  * persist the Store to an Automerge document.
@@ -27,7 +61,7 @@ import {Persister} from '../persisters';
27
61
  * docHandle: DocHandle<any>,
28
62
  * docMapName?: string,
29
63
  * onIgnoredError?: (error: any) => void,
30
- * ): Persister;
64
+ * ): AutomergePersister;
31
65
  * ```
32
66
  *
33
67
  * As well as providing a reference to the Store to persist, you must provide
@@ -39,9 +73,9 @@ import {Persister} from '../persisters';
39
73
  * @param onIgnoredError An optional handler for the errors that the Persister
40
74
  * would otherwise ignore when trying to save or load data. This is suitable for
41
75
  * debugging persistence issues in a development environment, since v4.0.4.
42
- * @returns A reference to the new Persister object.
76
+ * @returns A reference to the new AutomergePersister object.
43
77
  * @example
44
- * This example creates a Persister object and persists the Store to an
78
+ * This example creates a AutomergePersister object and persists the Store to an
45
79
  * Automerge document.
46
80
  *
47
81
  * ```js
@@ -120,4 +154,4 @@ export function createAutomergePersister<Schemas extends OptionalSchemas>(
120
154
  docHandle: DocHandle<any>,
121
155
  docMapName?: string,
122
156
  onIgnoredError?: (error: any) => void,
123
- ): Persister<Schemas>;
157
+ ): AutomergePersister<Schemas>;
@@ -17,6 +17,71 @@
17
17
  import {OptionalSchemas, Store} from '../store';
18
18
  import {Persister} from '../persisters';
19
19
 
20
+ /**
21
+ * The SessionPersister interface is a minor extension to the Persister
22
+ * interface.
23
+ *
24
+ * It simply provides an extra getStorageName method for accessing the unique
25
+ * key of the storage location the Store is being persisted to.
26
+ * @since v4.3.14
27
+ */
28
+ export interface SessionPersister<Schemas extends OptionalSchemas>
29
+ extends Persister<Schemas> {
30
+ /**
31
+ * The getStorageName method returns the unique key of the storage location
32
+ * the Store is being persisted to.
33
+ * @returns The unique key of the storage location.
34
+ * @example
35
+ * This example creates a Persister object against a newly-created Store and
36
+ * then gets the unique key of the storage location back out again.
37
+ *
38
+ * ```js
39
+ * const store = createStore().setTables({pets: {fido: {species: 'dog'}}});
40
+ * const persister = createSessionPersister(store, 'pets');
41
+ *
42
+ * console.log(persister.getStorageName());
43
+ * // -> 'pets'
44
+ *
45
+ * persister.destroy();
46
+ * ```
47
+ * @category Getter
48
+ * @since v4.3.14
49
+ */
50
+ getStorageName: () => string;
51
+ }
52
+
53
+ /**
54
+ * The LocalPersister interface is a minor extension to the Persister interface.
55
+ *
56
+ * It simply provides an extra getStorageName method for accessing the unique
57
+ * key of the storage location the Store is being persisted to.
58
+ * @since v4.3.14
59
+ */
60
+ export interface LocalPersister<Schemas extends OptionalSchemas>
61
+ extends Persister<Schemas> {
62
+ /**
63
+ * The getStorageName method returns the unique key of the storage location
64
+ * the Store is being persisted to.
65
+ * @returns The unique key of the storage location.
66
+ * @example
67
+ * This example creates a Persister object against a newly-created Store and
68
+ * then gets the unique key of the storage location back out again.
69
+ *
70
+ * ```js
71
+ * const store = createStore().setTables({pets: {fido: {species: 'dog'}}});
72
+ * const persister = createLocalPersister(store, 'pets');
73
+ *
74
+ * console.log(persister.getStorageName());
75
+ * // -> 'pets'
76
+ *
77
+ * persister.destroy();
78
+ * ```
79
+ * @category Getter
80
+ * @since v4.3.14
81
+ */
82
+ getStorageName: () => string;
83
+ }
84
+
20
85
  /**
21
86
  * The createSessionPersister function creates a Persister object that can
22
87
  * persist the Store to the browser's session storage.
@@ -28,7 +93,7 @@ import {Persister} from '../persisters';
28
93
  * store: Store,
29
94
  * storageName: string,
30
95
  * onIgnoredError?: (error: any) => void,
31
- * ): Persister;
96
+ * ): SessionPersister;
32
97
  * ```
33
98
  *
34
99
  * As well as providing a reference to the Store to persist, you must provide a
@@ -39,9 +104,9 @@ import {Persister} from '../persisters';
39
104
  * @param onIgnoredError An optional handler for the errors that the Persister
40
105
  * would otherwise ignore when trying to save or load data. This is suitable for
41
106
  * debugging persistence issues in a development environment, since v4.0.4.
42
- * @returns A reference to the new Persister object.
107
+ * @returns A reference to the new SessionPersister object.
43
108
  * @example
44
- * This example creates a Persister object and persists the Store to the
109
+ * This example creates a SessionPersister object and persists the Store to the
45
110
  * browser's session storage.
46
111
  *
47
112
  * ```js
@@ -61,11 +126,11 @@ export function createSessionPersister<Schemas extends OptionalSchemas>(
61
126
  store: Store<Schemas>,
62
127
  storageName: string,
63
128
  onIgnoredError?: (error: any) => void,
64
- ): Persister<Schemas>;
129
+ ): SessionPersister<Schemas>;
65
130
 
66
131
  /**
67
- * The createLocalPersister function creates a Persister object that can
68
- * persist the Store to the browser's local storage.
132
+ * The createLocalPersister function creates a Persister object that can persist
133
+ * the Store to the browser's local storage.
69
134
  *
70
135
  * This has schema-based typing. The following is a simplified representation:
71
136
  *
@@ -74,7 +139,7 @@ export function createSessionPersister<Schemas extends OptionalSchemas>(
74
139
  * store: Store,
75
140
  * storageName: string,
76
141
  * onIgnoredError?: (error: any) => void,
77
- * ): Persister;
142
+ * ): LocalPersister;
78
143
  * ```
79
144
  *
80
145
  * As well as providing a reference to the Store to persist, you must provide a
@@ -85,9 +150,9 @@ export function createSessionPersister<Schemas extends OptionalSchemas>(
85
150
  * @param onIgnoredError An optional handler for the errors that the Persister
86
151
  * would otherwise ignore when trying to save or load data. This is suitable for
87
152
  * debugging persistence issues in a development environment, since v4.0.4.
88
- * @returns A reference to the new Persister object.
153
+ * @returns A reference to the new LocalPersister object.
89
154
  * @example
90
- * This example creates a Persister object and persists the Store to the
155
+ * This example creates a LocalPersister object and persists the Store to the
91
156
  * browser's local storage.
92
157
  *
93
158
  * ```js
@@ -107,4 +172,4 @@ export function createLocalPersister<Schemas extends OptionalSchemas>(
107
172
  store: Store<Schemas>,
108
173
  storageName: string,
109
174
  onIgnoredError?: (error: any) => void,
110
- ): Persister<Schemas>;
175
+ ): LocalPersister<Schemas>;
@@ -12,6 +12,41 @@ import {DatabasePersisterConfig, Persister} from '../persisters';
12
12
  import {OptionalSchemas, Store} from '../store';
13
13
  import {DB} from '@vlcn.io/crsqlite-wasm';
14
14
 
15
+ /**
16
+ * The CrSqliteWasmPersister interface is a minor extension to the Persister
17
+ * interface.
18
+ *
19
+ * It simply provides an extra getDb method for accessing a reference to the
20
+ * database instance the Store is being persisted to.
21
+ * @since v4.3.14
22
+ */
23
+ export interface CrSqliteWasmPersister<Schemas extends OptionalSchemas>
24
+ extends Persister<Schemas> {
25
+ /**
26
+ * The getDb method returns a reference to the database instance the Store is
27
+ * being persisted to.
28
+ * @returns A reference to the database instance.
29
+ * @example
30
+ * This example creates a Persister object against a newly-created Store and
31
+ * then gets the database instance back out again.
32
+ *
33
+ * ```js
34
+ * const crSqlite3 = await initWasm();
35
+ * const db = await crSqlite3.open();
36
+ * const store = createStore().setTables({pets: {fido: {species: 'dog'}}});
37
+ * const persister = createCrSqliteWasmPersister(store, db, 'my_tinybase');
38
+ *
39
+ * console.log(persister.getDb() == db);
40
+ * // -> true
41
+ *
42
+ * persister.destroy();
43
+ * ```
44
+ * @category Getter
45
+ * @since v4.3.14
46
+ */
47
+ getDb: () => DB;
48
+ }
49
+
15
50
  /**
16
51
  * The createCrSqliteWasmPersister function creates a Persister object that can
17
52
  * persist the Store to a local CR-SQLite database (in an appropriate
@@ -26,7 +61,7 @@ import {DB} from '@vlcn.io/crsqlite-wasm';
26
61
  * configOrStoreTableName?: DatabasePersisterConfig | string,
27
62
  * onSqlCommand?: (sql: string, args?: any[]) => void,
28
63
  * onIgnoredError?: (error: any) => void,
29
- * ): Persister;
64
+ * ): CrSqliteWasmPersister;
30
65
  * ```
31
66
  *
32
67
  * As well as providing a reference to the Store to persist, you must provide a
@@ -54,12 +89,12 @@ import {DB} from '@vlcn.io/crsqlite-wasm';
54
89
  * @param onIgnoredError An optional handler for the errors that the Persister
55
90
  * would otherwise ignore when trying to save or load data. This is suitable for
56
91
  * debugging persistence issues in a development environment, since v4.0.4.
57
- * @returns A reference to the new Persister object.
92
+ * @returns A reference to the new CrSqliteWasmPersister object.
58
93
  * @example
59
- * This example creates a Persister object and persists the Store to a local
60
- * CR-SQLite database as a JSON serialization into the `my_tinybase` table. It
61
- * makes a change to the database directly and then reloads it back into the
62
- * Store.
94
+ * This example creates a CrSqliteWasmPersister object and persists the Store to
95
+ * a local CR-SQLite database as a JSON serialization into the `my_tinybase`
96
+ * table. It makes a change to the database directly and then reloads it back
97
+ * into the Store.
63
98
  *
64
99
  * ```js
65
100
  * const crSqlite3 = await initWasm();
@@ -84,8 +119,8 @@ import {DB} from '@vlcn.io/crsqlite-wasm';
84
119
  * persister.destroy();
85
120
  * ```
86
121
  * @example
87
- * This example creates a Persister object and persists the Store to a local
88
- * SQLite database with tabular mapping.
122
+ * This example creates a CrSqliteWasmPersister object and persists the Store to
123
+ * a local SQLite database with tabular mapping.
89
124
  *
90
125
  * ```js
91
126
  * const crSqlite3 = await initWasm();
@@ -116,4 +151,4 @@ export function createCrSqliteWasmPersister<Schemas extends OptionalSchemas>(
116
151
  configOrStoreTableName?: DatabasePersisterConfig<Schemas> | string,
117
152
  onSqlCommand?: (sql: string, args?: any[]) => void,
118
153
  onIgnoredError?: (error: any) => void,
119
- ): Persister<Schemas>;
154
+ ): CrSqliteWasmPersister<Schemas>;
@@ -15,6 +15,40 @@ import {DatabasePersisterConfig, Persister} from '../persisters';
15
15
  import {OptionalSchemas, Store} from '../store';
16
16
  import {SQLiteDatabase} from 'expo-sqlite';
17
17
 
18
+ /**
19
+ * The ExpoSqlitePersister interface is a minor extension to the Persister
20
+ * interface.
21
+ *
22
+ * It simply provides an extra getDb method for accessing a reference to the
23
+ * database instance the Store is being persisted to.
24
+ * @since v4.3.14
25
+ */
26
+ export interface ExpoSqlitePersister<Schemas extends OptionalSchemas>
27
+ extends Persister<Schemas> {
28
+ /**
29
+ * The getDb method returns a reference to the database instance the Store is
30
+ * being persisted to.
31
+ * @returns A reference to the database instance.
32
+ * @example
33
+ * This example creates a Persister object against a newly-created Store and
34
+ * then gets the database instance back out again.
35
+ *
36
+ * ```js yolo
37
+ * const db = SQLite.openDatabase('my.db');
38
+ * const store = createStore().setTables({pets: {fido: {species: 'dog'}}});
39
+ * const persister = createExpoSqlitePersister(store, db, 'my_tinybase');
40
+ *
41
+ * console.log(persister.getDb() == db);
42
+ * // -> true
43
+ *
44
+ * persister.destroy();
45
+ * ```
46
+ * @category Getter
47
+ * @since v4.3.14
48
+ */
49
+ getDb: () => SQLiteDatabase;
50
+ }
51
+
18
52
  /**
19
53
  * The createExpoSqlitePersister function creates a Persister object that can
20
54
  * persist the Store to a local Expo-SQLite database (in an appropriate React
@@ -29,7 +63,7 @@ import {SQLiteDatabase} from 'expo-sqlite';
29
63
  * configOrStoreTableName?: DatabasePersisterConfig | string,
30
64
  * onSqlCommand?: (sql: string, args?: any[]) => void,
31
65
  * onIgnoredError?: (error: any) => void,
32
- * ): Persister;
66
+ * ): ExpoSqlitePersister;
33
67
  * ```
34
68
  *
35
69
  * Note that this Persister is currently experimental as Expo themselves iterate
@@ -61,11 +95,11 @@ import {SQLiteDatabase} from 'expo-sqlite';
61
95
  * @param onIgnoredError An optional handler for the errors that the Persister
62
96
  * would otherwise ignore when trying to save or load data. This is suitable for
63
97
  * debugging persistence issues in a development environment, since v4.0.4.
64
- * @returns A reference to the new Persister object.
98
+ * @returns A reference to the new ExpoSqlitePersister object.
65
99
  * @example
66
- * This example creates a Persister object and persists the Store to a local
67
- * SQLite database as a JSON serialization into the `my_tinybase` table. It
68
- * makes a change to the database directly and then reloads it back into the
100
+ * This example creates a ExpoSqlitePersister object and persists the Store to a
101
+ * local SQLite database as a JSON serialization into the `my_tinybase` table.
102
+ * It makes a change to the database directly and then reloads it back into the
69
103
  * Store.
70
104
  *
71
105
  * ```js yolo
@@ -97,8 +131,8 @@ import {SQLiteDatabase} from 'expo-sqlite';
97
131
  * persister.destroy();
98
132
  * ```
99
133
  * @example
100
- * This example creates a Persister object and persists the Store to a local
101
- * SQLite database with tabular mapping.
134
+ * This example creates a ExpoSqlitePersister object and persists the Store to a
135
+ * local SQLite database with tabular mapping.
102
136
  *
103
137
  * ```js yolo
104
138
  * const db = SQLite.openDatabase('my.db');
@@ -137,4 +171,4 @@ export function createExpoSqlitePersister<Schemas extends OptionalSchemas>(
137
171
  configOrStoreTableName?: DatabasePersisterConfig<Schemas> | string,
138
172
  onSqlCommand?: (sql: string, args?: any[]) => void,
139
173
  onIgnoredError?: (error: any) => void,
140
- ): Persister<Schemas>;
174
+ ): ExpoSqlitePersister<Schemas>;
@@ -9,6 +9,38 @@
9
9
  import {OptionalSchemas, Store} from '../store';
10
10
  import {Persister} from '../persisters';
11
11
 
12
+ /**
13
+ * The FilePersister interface is a minor extension to the Persister interface.
14
+ *
15
+ * It simply provides an extra getFilePath method for accessing the location of
16
+ * the local file the Store is being persisted to.
17
+ * @since v4.3.14
18
+ */
19
+ export interface FilePersister<Schemas extends OptionalSchemas>
20
+ extends Persister<Schemas> {
21
+ /**
22
+ * The getFilePath method returns the location of the local file the Store is
23
+ * being persisted to.
24
+ * @returns The location of the local file.
25
+ * @example
26
+ * This example creates a Persister object against a newly-created Store and
27
+ * then gets the file location back out again.
28
+ *
29
+ * ```js
30
+ * const store = createStore().setTables({pets: {fido: {species: 'dog'}}});
31
+ * const persister = createFilePersister(store, '/app/persisted.json');
32
+ *
33
+ * console.log(persister.getFilePath());
34
+ * // -> '/app/persisted.json'
35
+ *
36
+ * persister.destroy();
37
+ * ```
38
+ * @category Getter
39
+ * @since v4.3.14
40
+ */
41
+ getFilePath: () => string;
42
+ }
43
+
12
44
  /**
13
45
  * The createFilePersister function creates a Persister object that can persist
14
46
  * the Store to a local file (in an appropriate environment).
@@ -20,7 +52,7 @@ import {Persister} from '../persisters';
20
52
  * store: Store,
21
53
  * filePath: string,
22
54
  * onIgnoredError?: (error: any) => void,
23
- * ): Persister;
55
+ * ): FilePersister;
24
56
  * ```
25
57
  *
26
58
  * As well as providing a reference to the Store to persist, you must provide a
@@ -30,9 +62,9 @@ import {Persister} from '../persisters';
30
62
  * @param onIgnoredError An optional handler for the errors that the Persister
31
63
  * would otherwise ignore when trying to save or load data. This is suitable for
32
64
  * debugging persistence issues in a development environment, since v4.0.4.
33
- * @returns A reference to the new Persister object.
65
+ * @returns A reference to the new FilePersister object.
34
66
  * @example
35
- * This example creates a Persister object and persists the Store to a local
67
+ * This example creates a FilePersister object and persists the Store to a local
36
68
  * file.
37
69
  *
38
70
  * ```js yolo
@@ -53,4 +85,4 @@ export function createFilePersister<Schemas extends OptionalSchemas>(
53
85
  store: Store<Schemas>,
54
86
  filePath: string,
55
87
  onIgnoredError?: (error: any) => void,
56
- ): Persister<Schemas>;
88
+ ): FilePersister<Schemas>;
@@ -9,6 +9,39 @@
9
9
  import {OptionalSchemas, Store} from '../store';
10
10
  import {Persister} from '../persisters';
11
11
 
12
+ /**
13
+ * The IndexedDbPersister interface is a minor extension to the Persister
14
+ * interface.
15
+ *
16
+ * It simply provides an extra getDbName method for accessing the unique key of
17
+ * the IndexedDB the Store is being persisted to.
18
+ * @since v4.3.14
19
+ */
20
+ export interface IndexedDbPersister<Schemas extends OptionalSchemas>
21
+ extends Persister<Schemas> {
22
+ /**
23
+ * The getDbName method returns the unique key of the IndexedDB the Store is
24
+ * being persisted to.
25
+ * @returns The unique key of the IndexedDB.
26
+ * @example
27
+ * This example creates a Persister object against a newly-created Store and
28
+ * then gets the unique key of the IndexedDB back out again.
29
+ *
30
+ * ```js
31
+ * const store = createStore().setTables({pets: {fido: {species: 'dog'}}});
32
+ * const persister = createIndexedDbPersister(store, 'petStore');
33
+ *
34
+ * console.log(persister.getDbName());
35
+ * // -> 'petStore'
36
+ *
37
+ * persister.destroy();
38
+ * ```
39
+ * @category Getter
40
+ * @since v4.3.14
41
+ */
42
+ getDbName: () => string;
43
+ }
44
+
12
45
  /**
13
46
  * The createIndexedDbPersister function creates a Persister object that can
14
47
  * persist the Store to the browser's IndexedDB storage.
@@ -21,7 +54,7 @@ import {Persister} from '../persisters';
21
54
  * dbName: string,
22
55
  * autoLoadIntervalSeconds?: number,
23
56
  * onIgnoredError?: (error: any) => void,
24
- * ): Persister;
57
+ * ): IndexedDbPersister;
25
58
  * ```
26
59
  *
27
60
  * As well as providing a reference to the Store to persist, you must provide a
@@ -45,17 +78,16 @@ import {Persister} from '../persisters';
45
78
  * @param onIgnoredError An optional handler for the errors that the Persister
46
79
  * would otherwise ignore when trying to save or load data. This is suitable for
47
80
  * debugging persistence issues in a development environment.
48
- * @returns A reference to the new Persister object.
81
+ * @returns A reference to the new IndexedDbPersister object.
49
82
  * @example
50
- * This example creates a Persister object and persists the Store to the
51
- * browser's IndexedDB storage.
83
+ * This example creates a IndexedDbPersister object and persists the Store to
84
+ * the browser's IndexedDB storage.
52
85
  *
53
86
  * ```js
54
- * const store =
55
- * createStore()
56
- * .setTable('pets', {fido: {species: 'dog'}})
57
- * .setTable('species', {dog: {price: 5}})
58
- * .setValues({open: true});
87
+ * const store = createStore()
88
+ * .setTable('pets', {fido: {species: 'dog'}})
89
+ * .setTable('species', {dog: {price: 5}})
90
+ * .setValues({open: true});
59
91
  * const persister = createIndexedDbPersister(store, 'petStore');
60
92
  *
61
93
  * await persister.save();
@@ -83,4 +115,4 @@ export function createIndexedDbPersister<Schemas extends OptionalSchemas>(
83
115
  dbName: string,
84
116
  autoLoadIntervalSeconds?: number,
85
117
  onIgnoredError?: (error: any) => void,
86
- ): Persister<Schemas>;
118
+ ): IndexedDbPersister<Schemas>;
@@ -23,6 +23,91 @@ import {OptionalSchemas, Store} from '../store';
23
23
  import PartySocket from 'partysocket';
24
24
  import {Persister} from '../persisters';
25
25
 
26
+ /**
27
+ * The PartyKitPersister interface is a minor extension to the Persister
28
+ * interface.
29
+ *
30
+ * It simply provides an extra getConnection method for accessing the
31
+ * PartySocket the Store is being persisted to.
32
+ * @since v4.3.14
33
+ */
34
+ export interface PartyKitPersister<Schemas extends OptionalSchemas>
35
+ extends Persister<Schemas> {
36
+ /**
37
+ * The getConnection method returns the PartySocket the Store is being
38
+ * persisted to.
39
+ * @returns The PartySocket.
40
+ * @example
41
+ * This example creates a Persister object against a newly-created Store and
42
+ * then gets the PartySocket back out again.
43
+ *
44
+ * ```js yolo
45
+ * const partySocket = new PartySocket({
46
+ * host: PARTYKIT_HOST,
47
+ * room: 'my_room',
48
+ * });
49
+ * const store = createStore().setTables({pets: {fido: {species: 'dog'}}});
50
+ * const persister = createPartyKitPersister(store, partySocket);
51
+ *
52
+ * console.log(persister.getConnection() == partySocket);
53
+ * // -> true
54
+ *
55
+ * persister.destroy();
56
+ * ```
57
+ * @category Getter
58
+ * @since v4.3.14
59
+ */
60
+ getConnection: () => PartySocket;
61
+ }
62
+
63
+ /**
64
+ * The PartyKitPersisterConfig type describes the configuration of a PartyKit
65
+ * Persister on the client side.
66
+ *
67
+ * The defaults (if used on both the server and client) will work fine, but if
68
+ * you are building more complex PartyKit apps and you need to configure path
69
+ * names, for example, then this is the thing to use.
70
+ * @example
71
+ * When applied to a PartyKit Persister, this PartyKitPersisterConfig will load
72
+ * and save a JSON serialization from and to an end point in your room called
73
+ * `/my_tinybase`, and use HTTP (rather than the default HTTPS) as the protocol.
74
+ *
75
+ * Note that this would require you to also add the matching storePath setting
76
+ * to the TinyBasePartyKitServerConfig on the server side.
77
+ *
78
+ * ```js
79
+ * const partyKitPersisterConfig = {
80
+ * storeProtocol: 'http',
81
+ * storePath: '/my_tinybase',
82
+ * };
83
+ * ```
84
+ * @category Configuration
85
+ * @since v4.3.9
86
+ */
87
+ export type PartyKitPersisterConfig = {
88
+ /**
89
+ * The HTTP protocol to use (in addition to the websocket channel). This
90
+ * defaults to 'https' but you may wish to use 'http' for local PartyKit
91
+ * development.
92
+ */
93
+ storeProtocol?: 'http' | 'https';
94
+ /**
95
+ * The path used to set and get the whole Store over HTTP(S) on the server.
96
+ * This must match the storePath property of the TinyBasePartyKitServerConfig
97
+ * object used on the server. Both default to '/store'.
98
+ */
99
+ storePath?: string;
100
+ /**
101
+ * The prefix at the beginning of the web socket messages sent between the
102
+ * client and the server when synchronizing the Store. Use this to make sure
103
+ * they do not collide with any other message syntax that your room is using.
104
+ * This must match the messagePrefix property of the
105
+ * TinyBasePartyKitServerConfig object used on the server. Both default to an
106
+ * empty string.
107
+ */
108
+ messagePrefix?: string;
109
+ };
110
+
26
111
  /**
27
112
  * The createPartyKitPersister function creates a Persister object that can
28
113
  * persist the Store to durable PartyKit storage, enabling synchronization of
@@ -34,9 +119,9 @@ import {Persister} from '../persisters';
34
119
  * createPartyKitPersister(
35
120
  * store: Store,
36
121
  * connection: PartySocket,
37
- * storeUrlProtocol?: 'http' | 'https',
122
+ * configOrStoreProtocol?: PartyKitPersisterConfig | 'http' | 'https',
38
123
  * onIgnoredError?: (error: any) => void,
39
- * ): Persister;
124
+ * ): PartyKitPersister;
40
125
  * ```
41
126
  *
42
127
  * As well as providing a reference to the Store to persist, you must provide a
@@ -63,24 +148,26 @@ import {Persister} from '../persisters';
63
148
  * @param store The Store to persist.
64
149
  * @param connection The PartySocket to use for participating in the PartyKit
65
150
  * room.
66
- * @param storeUrlProtocol The HTTP protocol to use (in addition to the
67
- * websocket channel). This defaults to 'https' but you may wish to use 'http'
68
- * for local PartyKit development.
151
+ * @param configOrStoreProtocol The PartyKitPersisterConfig configuration for
152
+ * the Persister, (or a string to specify a HTTP protocol to use, defaulting to
153
+ * 'https').
69
154
  * @param onIgnoredError An optional handler for the errors that the Persister
70
155
  * would otherwise ignore when trying to save or load data. This is suitable for
71
156
  * debugging persistence issues in a development environment.
72
- * @returns A reference to the new Persister object.
157
+ * @returns A reference to the new PartyKitPersister object.
73
158
  * @example
74
- * This example creates a Persister object and persists the Store to the
159
+ * This example creates a PartyKitPersister object and persists the Store to the
75
160
  * browser's IndexedDB storage.
76
161
  *
77
162
  * ```js yolo
78
- * const store =
79
- * createStore()
80
- * .setTable('pets', {fido: {species: 'dog'}})
81
- * .setTable('species', {dog: {price: 5}})
82
- * .setValues({open: true});
83
- * const partySocket = new PartySocket({host: PARTYKIT_HOST, room: 'my_room'});
163
+ * const store = createStore()
164
+ * .setTable('pets', {fido: {species: 'dog'}})
165
+ * .setTable('species', {dog: {price: 5}})
166
+ * .setValues({open: true});
167
+ * const partySocket = new PartySocket({
168
+ * host: PARTYKIT_HOST,
169
+ * room: 'my_room',
170
+ * });
84
171
  * const persister = createPartyKitPersister(store, partySocket);
85
172
  * await persister.startAutoLoad();
86
173
  * await persister.startAutoSave();
@@ -94,6 +181,6 @@ import {Persister} from '../persisters';
94
181
  export function createPartyKitPersister<Schemas extends OptionalSchemas>(
95
182
  store: Store<Schemas>,
96
183
  connection: PartySocket,
97
- storeUrlProtocol?: 'http' | 'https',
184
+ configOrStoreProtocol?: PartyKitPersisterConfig | 'http' | 'https',
98
185
  onIgnoredError?: (error: any) => void,
99
- ): Persister<Schemas>;
186
+ ): PartyKitPersister<Schemas>;