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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (491) hide show
  1. package/lib/checkpoints.js +1 -1
  2. package/lib/checkpoints.js.gz +0 -0
  3. package/lib/cjs/checkpoints.cjs +1 -1
  4. package/lib/cjs/checkpoints.cjs.gz +0 -0
  5. package/lib/cjs/indexes.cjs +1 -1
  6. package/lib/cjs/indexes.cjs.gz +0 -0
  7. package/lib/cjs/mergeable-store.cjs +1 -0
  8. package/lib/cjs/mergeable-store.cjs.gz +0 -0
  9. package/lib/cjs/metrics.cjs +1 -1
  10. package/lib/cjs/metrics.cjs.gz +0 -0
  11. package/lib/cjs/persisters/persister-automerge.cjs +1 -1
  12. package/lib/cjs/persisters/persister-automerge.cjs.gz +0 -0
  13. package/lib/cjs/persisters/persister-browser.cjs +1 -1
  14. package/lib/cjs/persisters/persister-browser.cjs.gz +0 -0
  15. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  16. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  17. package/lib/cjs/persisters/persister-electric-sql.cjs +1 -1
  18. package/lib/cjs/persisters/persister-electric-sql.cjs.gz +0 -0
  19. package/lib/cjs/persisters/persister-expo-sqlite-next.cjs +1 -1
  20. package/lib/cjs/persisters/persister-expo-sqlite-next.cjs.gz +0 -0
  21. package/lib/cjs/persisters/persister-expo-sqlite.cjs +1 -1
  22. package/lib/cjs/persisters/persister-expo-sqlite.cjs.gz +0 -0
  23. package/lib/cjs/persisters/persister-file.cjs +1 -1
  24. package/lib/cjs/persisters/persister-file.cjs.gz +0 -0
  25. package/lib/cjs/persisters/persister-indexed-db.cjs +1 -1
  26. package/lib/cjs/persisters/persister-indexed-db.cjs.gz +0 -0
  27. package/lib/cjs/persisters/persister-libsql.cjs +1 -0
  28. package/lib/cjs/persisters/persister-libsql.cjs.gz +0 -0
  29. package/lib/cjs/persisters/persister-partykit-client.cjs +1 -1
  30. package/lib/cjs/persisters/persister-partykit-client.cjs.gz +0 -0
  31. package/lib/cjs/persisters/persister-partykit-server.cjs +1 -1
  32. package/lib/cjs/persisters/persister-partykit-server.cjs.gz +0 -0
  33. package/lib/cjs/persisters/persister-powersync.cjs +1 -0
  34. package/lib/cjs/persisters/persister-powersync.cjs.gz +0 -0
  35. package/lib/cjs/persisters/persister-remote.cjs +1 -1
  36. package/lib/cjs/persisters/persister-remote.cjs.gz +0 -0
  37. package/lib/cjs/persisters/persister-sqlite-wasm.cjs +1 -1
  38. package/lib/cjs/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  39. package/lib/cjs/persisters/persister-sqlite3.cjs +1 -1
  40. package/lib/cjs/persisters/persister-sqlite3.cjs.gz +0 -0
  41. package/lib/cjs/persisters/persister-yjs.cjs +1 -1
  42. package/lib/cjs/persisters/persister-yjs.cjs.gz +0 -0
  43. package/lib/cjs/persisters.cjs +1 -1
  44. package/lib/cjs/persisters.cjs.gz +0 -0
  45. package/lib/cjs/queries.cjs +1 -1
  46. package/lib/cjs/queries.cjs.gz +0 -0
  47. package/lib/cjs/relationships.cjs +1 -1
  48. package/lib/cjs/relationships.cjs.gz +0 -0
  49. package/lib/cjs/store.cjs +1 -1
  50. package/lib/cjs/store.cjs.gz +0 -0
  51. package/lib/cjs/synchronizers/synchronizer-local.cjs +1 -0
  52. package/lib/cjs/synchronizers/synchronizer-local.cjs.gz +0 -0
  53. package/lib/cjs/synchronizers/synchronizer-ws-client.cjs +1 -0
  54. package/lib/cjs/synchronizers/synchronizer-ws-client.cjs.gz +0 -0
  55. package/lib/cjs/synchronizers/synchronizer-ws-server.cjs +1 -0
  56. package/lib/cjs/synchronizers/synchronizer-ws-server.cjs.gz +0 -0
  57. package/lib/cjs/synchronizers.cjs +1 -0
  58. package/lib/cjs/synchronizers.cjs.gz +0 -0
  59. package/lib/cjs/tinybase.cjs +1 -1
  60. package/lib/cjs/tinybase.cjs.gz +0 -0
  61. package/lib/cjs/tools.cjs +1 -1
  62. package/lib/cjs/tools.cjs.gz +0 -0
  63. package/lib/cjs/ui-react-dom-debug.cjs +1 -1
  64. package/lib/cjs/ui-react-dom-debug.cjs.gz +0 -0
  65. package/lib/cjs/ui-react-dom.cjs +1 -1
  66. package/lib/cjs/ui-react-dom.cjs.gz +0 -0
  67. package/lib/cjs/ui-react.cjs +1 -1
  68. package/lib/cjs/ui-react.cjs.gz +0 -0
  69. package/lib/cjs-es6/checkpoints.cjs +1 -1
  70. package/lib/cjs-es6/checkpoints.cjs.gz +0 -0
  71. package/lib/cjs-es6/indexes.cjs +1 -1
  72. package/lib/cjs-es6/indexes.cjs.gz +0 -0
  73. package/lib/cjs-es6/mergeable-store.cjs +1 -0
  74. package/lib/cjs-es6/mergeable-store.cjs.gz +0 -0
  75. package/lib/cjs-es6/metrics.cjs +1 -1
  76. package/lib/cjs-es6/metrics.cjs.gz +0 -0
  77. package/lib/cjs-es6/persisters/persister-automerge.cjs +1 -1
  78. package/lib/cjs-es6/persisters/persister-automerge.cjs.gz +0 -0
  79. package/lib/cjs-es6/persisters/persister-browser.cjs +1 -1
  80. package/lib/cjs-es6/persisters/persister-browser.cjs.gz +0 -0
  81. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  82. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  83. package/lib/cjs-es6/persisters/persister-electric-sql.cjs +1 -1
  84. package/lib/cjs-es6/persisters/persister-electric-sql.cjs.gz +0 -0
  85. package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs +1 -1
  86. package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs.gz +0 -0
  87. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs +1 -1
  88. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs.gz +0 -0
  89. package/lib/cjs-es6/persisters/persister-file.cjs +1 -1
  90. package/lib/cjs-es6/persisters/persister-file.cjs.gz +0 -0
  91. package/lib/cjs-es6/persisters/persister-indexed-db.cjs +1 -1
  92. package/lib/cjs-es6/persisters/persister-indexed-db.cjs.gz +0 -0
  93. package/lib/cjs-es6/persisters/persister-libsql.cjs +1 -0
  94. package/lib/cjs-es6/persisters/persister-libsql.cjs.gz +0 -0
  95. package/lib/cjs-es6/persisters/persister-partykit-client.cjs +1 -1
  96. package/lib/cjs-es6/persisters/persister-partykit-client.cjs.gz +0 -0
  97. package/lib/cjs-es6/persisters/persister-partykit-server.cjs +1 -1
  98. package/lib/cjs-es6/persisters/persister-partykit-server.cjs.gz +0 -0
  99. package/lib/cjs-es6/persisters/persister-powersync.cjs +1 -0
  100. package/lib/cjs-es6/persisters/persister-powersync.cjs.gz +0 -0
  101. package/lib/cjs-es6/persisters/persister-remote.cjs +1 -1
  102. package/lib/cjs-es6/persisters/persister-remote.cjs.gz +0 -0
  103. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs +1 -1
  104. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  105. package/lib/cjs-es6/persisters/persister-sqlite3.cjs +1 -1
  106. package/lib/cjs-es6/persisters/persister-sqlite3.cjs.gz +0 -0
  107. package/lib/cjs-es6/persisters/persister-yjs.cjs +1 -1
  108. package/lib/cjs-es6/persisters/persister-yjs.cjs.gz +0 -0
  109. package/lib/cjs-es6/persisters.cjs +1 -1
  110. package/lib/cjs-es6/persisters.cjs.gz +0 -0
  111. package/lib/cjs-es6/queries.cjs +1 -1
  112. package/lib/cjs-es6/queries.cjs.gz +0 -0
  113. package/lib/cjs-es6/relationships.cjs +1 -1
  114. package/lib/cjs-es6/relationships.cjs.gz +0 -0
  115. package/lib/cjs-es6/store.cjs +1 -1
  116. package/lib/cjs-es6/store.cjs.gz +0 -0
  117. package/lib/cjs-es6/synchronizers/synchronizer-local.cjs +1 -0
  118. package/lib/cjs-es6/synchronizers/synchronizer-local.cjs.gz +0 -0
  119. package/lib/cjs-es6/synchronizers/synchronizer-ws-client.cjs +1 -0
  120. package/lib/cjs-es6/synchronizers/synchronizer-ws-client.cjs.gz +0 -0
  121. package/lib/cjs-es6/synchronizers/synchronizer-ws-server.cjs +1 -0
  122. package/lib/cjs-es6/synchronizers/synchronizer-ws-server.cjs.gz +0 -0
  123. package/lib/cjs-es6/synchronizers.cjs +1 -0
  124. package/lib/cjs-es6/synchronizers.cjs.gz +0 -0
  125. package/lib/cjs-es6/tinybase.cjs +1 -1
  126. package/lib/cjs-es6/tinybase.cjs.gz +0 -0
  127. package/lib/cjs-es6/tools.cjs +1 -1
  128. package/lib/cjs-es6/tools.cjs.gz +0 -0
  129. package/lib/cjs-es6/ui-react-dom-debug.cjs +1 -1
  130. package/lib/cjs-es6/ui-react-dom-debug.cjs.gz +0 -0
  131. package/lib/cjs-es6/ui-react-dom.cjs +1 -1
  132. package/lib/cjs-es6/ui-react-dom.cjs.gz +0 -0
  133. package/lib/cjs-es6/ui-react.cjs +1 -1
  134. package/lib/cjs-es6/ui-react.cjs.gz +0 -0
  135. package/lib/debug/checkpoints.js +3 -1
  136. package/lib/debug/indexes.js +3 -1
  137. package/lib/debug/mergeable-store.js +2230 -0
  138. package/lib/debug/metrics.js +3 -1
  139. package/lib/debug/persisters/persister-automerge.js +167 -131
  140. package/lib/debug/persisters/persister-browser.js +155 -102
  141. package/lib/debug/persisters/persister-cr-sqlite-wasm.js +225 -152
  142. package/lib/debug/persisters/persister-electric-sql.js +225 -152
  143. package/lib/debug/persisters/persister-expo-sqlite-next.js +225 -152
  144. package/lib/debug/persisters/persister-expo-sqlite.js +225 -152
  145. package/lib/debug/persisters/persister-file.js +149 -101
  146. package/lib/debug/persisters/persister-indexed-db.js +146 -100
  147. package/lib/debug/persisters/persister-libsql.js +924 -0
  148. package/lib/debug/persisters/persister-partykit-client.js +146 -104
  149. package/lib/debug/persisters/persister-partykit-server.js +17 -25
  150. package/lib/debug/persisters/persister-powersync.js +939 -0
  151. package/lib/debug/persisters/persister-remote.js +141 -97
  152. package/lib/debug/persisters/persister-sqlite-wasm.js +225 -152
  153. package/lib/debug/persisters/persister-sqlite3.js +225 -152
  154. package/lib/debug/persisters/persister-yjs.js +164 -127
  155. package/lib/debug/persisters.js +137 -94
  156. package/lib/debug/queries.js +9 -6
  157. package/lib/debug/relationships.js +3 -1
  158. package/lib/debug/store.js +147 -126
  159. package/lib/debug/synchronizers/synchronizer-local.js +571 -0
  160. package/lib/debug/synchronizers/synchronizer-ws-client.js +598 -0
  161. package/lib/debug/synchronizers/synchronizer-ws-server.js +241 -0
  162. package/lib/debug/synchronizers.js +531 -0
  163. package/lib/debug/tinybase.js +1080 -215
  164. package/lib/debug/tools.js +22 -21
  165. package/lib/debug/ui-react-dom.js +336 -258
  166. package/lib/debug/ui-react.js +55 -6
  167. package/lib/es6/checkpoints.js +1 -1
  168. package/lib/es6/checkpoints.js.gz +0 -0
  169. package/lib/es6/indexes.js +1 -1
  170. package/lib/es6/indexes.js.gz +0 -0
  171. package/lib/es6/mergeable-store.js +1 -0
  172. package/lib/es6/mergeable-store.js.gz +0 -0
  173. package/lib/es6/metrics.js +1 -1
  174. package/lib/es6/metrics.js.gz +0 -0
  175. package/lib/es6/persisters/persister-automerge.js +1 -1
  176. package/lib/es6/persisters/persister-automerge.js.gz +0 -0
  177. package/lib/es6/persisters/persister-browser.js +1 -1
  178. package/lib/es6/persisters/persister-browser.js.gz +0 -0
  179. package/lib/es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  180. package/lib/es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  181. package/lib/es6/persisters/persister-electric-sql.js +1 -1
  182. package/lib/es6/persisters/persister-electric-sql.js.gz +0 -0
  183. package/lib/es6/persisters/persister-expo-sqlite-next.js +1 -1
  184. package/lib/es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
  185. package/lib/es6/persisters/persister-expo-sqlite.js +1 -1
  186. package/lib/es6/persisters/persister-expo-sqlite.js.gz +0 -0
  187. package/lib/es6/persisters/persister-file.js +1 -1
  188. package/lib/es6/persisters/persister-file.js.gz +0 -0
  189. package/lib/es6/persisters/persister-indexed-db.js +1 -1
  190. package/lib/es6/persisters/persister-indexed-db.js.gz +0 -0
  191. package/lib/es6/persisters/persister-libsql.js +1 -0
  192. package/lib/es6/persisters/persister-libsql.js.gz +0 -0
  193. package/lib/es6/persisters/persister-partykit-client.js +1 -1
  194. package/lib/es6/persisters/persister-partykit-client.js.gz +0 -0
  195. package/lib/es6/persisters/persister-partykit-server.js +1 -1
  196. package/lib/es6/persisters/persister-partykit-server.js.gz +0 -0
  197. package/lib/es6/persisters/persister-powersync.js +1 -0
  198. package/lib/es6/persisters/persister-powersync.js.gz +0 -0
  199. package/lib/es6/persisters/persister-remote.js +1 -1
  200. package/lib/es6/persisters/persister-remote.js.gz +0 -0
  201. package/lib/es6/persisters/persister-sqlite-wasm.js +1 -1
  202. package/lib/es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  203. package/lib/es6/persisters/persister-sqlite3.js +1 -1
  204. package/lib/es6/persisters/persister-sqlite3.js.gz +0 -0
  205. package/lib/es6/persisters/persister-yjs.js +1 -1
  206. package/lib/es6/persisters/persister-yjs.js.gz +0 -0
  207. package/lib/es6/persisters.js +1 -1
  208. package/lib/es6/persisters.js.gz +0 -0
  209. package/lib/es6/queries.js +1 -1
  210. package/lib/es6/queries.js.gz +0 -0
  211. package/lib/es6/relationships.js +1 -1
  212. package/lib/es6/relationships.js.gz +0 -0
  213. package/lib/es6/store.js +1 -1
  214. package/lib/es6/store.js.gz +0 -0
  215. package/lib/es6/synchronizers/synchronizer-local.js +1 -0
  216. package/lib/es6/synchronizers/synchronizer-local.js.gz +0 -0
  217. package/lib/es6/synchronizers/synchronizer-ws-client.js +1 -0
  218. package/lib/es6/synchronizers/synchronizer-ws-client.js.gz +0 -0
  219. package/lib/es6/synchronizers/synchronizer-ws-server.js +1 -0
  220. package/lib/es6/synchronizers/synchronizer-ws-server.js.gz +0 -0
  221. package/lib/es6/synchronizers.js +1 -0
  222. package/lib/es6/synchronizers.js.gz +0 -0
  223. package/lib/es6/tinybase.js +1 -1
  224. package/lib/es6/tinybase.js.gz +0 -0
  225. package/lib/es6/tools.js +1 -1
  226. package/lib/es6/tools.js.gz +0 -0
  227. package/lib/es6/ui-react-dom-debug.js +1 -1
  228. package/lib/es6/ui-react-dom-debug.js.gz +0 -0
  229. package/lib/es6/ui-react-dom.js +1 -1
  230. package/lib/es6/ui-react-dom.js.gz +0 -0
  231. package/lib/es6/ui-react.js +1 -1
  232. package/lib/es6/ui-react.js.gz +0 -0
  233. package/lib/indexes.js +1 -1
  234. package/lib/indexes.js.gz +0 -0
  235. package/lib/mergeable-store.js +1 -0
  236. package/lib/mergeable-store.js.gz +0 -0
  237. package/lib/metrics.js +1 -1
  238. package/lib/metrics.js.gz +0 -0
  239. package/lib/persisters/persister-automerge.js +1 -1
  240. package/lib/persisters/persister-automerge.js.gz +0 -0
  241. package/lib/persisters/persister-browser.js +1 -1
  242. package/lib/persisters/persister-browser.js.gz +0 -0
  243. package/lib/persisters/persister-cr-sqlite-wasm.js +1 -1
  244. package/lib/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  245. package/lib/persisters/persister-electric-sql.js +1 -1
  246. package/lib/persisters/persister-electric-sql.js.gz +0 -0
  247. package/lib/persisters/persister-expo-sqlite-next.js +1 -1
  248. package/lib/persisters/persister-expo-sqlite-next.js.gz +0 -0
  249. package/lib/persisters/persister-expo-sqlite.js +1 -1
  250. package/lib/persisters/persister-expo-sqlite.js.gz +0 -0
  251. package/lib/persisters/persister-file.js +1 -1
  252. package/lib/persisters/persister-file.js.gz +0 -0
  253. package/lib/persisters/persister-indexed-db.js +1 -1
  254. package/lib/persisters/persister-indexed-db.js.gz +0 -0
  255. package/lib/persisters/persister-libsql.js +1 -0
  256. package/lib/persisters/persister-libsql.js.gz +0 -0
  257. package/lib/persisters/persister-partykit-client.js +1 -1
  258. package/lib/persisters/persister-partykit-client.js.gz +0 -0
  259. package/lib/persisters/persister-partykit-server.js +1 -1
  260. package/lib/persisters/persister-partykit-server.js.gz +0 -0
  261. package/lib/persisters/persister-powersync.js +1 -0
  262. package/lib/persisters/persister-powersync.js.gz +0 -0
  263. package/lib/persisters/persister-remote.js +1 -1
  264. package/lib/persisters/persister-remote.js.gz +0 -0
  265. package/lib/persisters/persister-sqlite-wasm.js +1 -1
  266. package/lib/persisters/persister-sqlite-wasm.js.gz +0 -0
  267. package/lib/persisters/persister-sqlite3.js +1 -1
  268. package/lib/persisters/persister-sqlite3.js.gz +0 -0
  269. package/lib/persisters/persister-yjs.js +1 -1
  270. package/lib/persisters/persister-yjs.js.gz +0 -0
  271. package/lib/persisters.js +1 -1
  272. package/lib/persisters.js.gz +0 -0
  273. package/lib/queries.js +1 -1
  274. package/lib/queries.js.gz +0 -0
  275. package/lib/relationships.js +1 -1
  276. package/lib/relationships.js.gz +0 -0
  277. package/lib/store.js +1 -1
  278. package/lib/store.js.gz +0 -0
  279. package/lib/synchronizers/synchronizer-local.js +1 -0
  280. package/lib/synchronizers/synchronizer-local.js.gz +0 -0
  281. package/lib/synchronizers/synchronizer-ws-client.js +1 -0
  282. package/lib/synchronizers/synchronizer-ws-client.js.gz +0 -0
  283. package/lib/synchronizers/synchronizer-ws-server.js +1 -0
  284. package/lib/synchronizers/synchronizer-ws-server.js.gz +0 -0
  285. package/lib/synchronizers.js +1 -0
  286. package/lib/synchronizers.js.gz +0 -0
  287. package/lib/tinybase.js +1 -1
  288. package/lib/tinybase.js.gz +0 -0
  289. package/lib/tools.js +1 -1
  290. package/lib/tools.js.gz +0 -0
  291. package/lib/types/checkpoints.d.ts +2 -2
  292. package/lib/types/indexes.d.ts +2 -2
  293. package/lib/types/mergeable-store.d.ts +214 -0
  294. package/lib/types/metrics.d.ts +2 -2
  295. package/lib/types/persisters/persister-automerge.d.ts +11 -7
  296. package/lib/types/persisters/persister-browser.d.ts +13 -4
  297. package/lib/types/persisters/persister-cr-sqlite-wasm.d.ts +4 -0
  298. package/lib/types/persisters/persister-electric-sql.d.ts +4 -0
  299. package/lib/types/persisters/persister-expo-sqlite-next.d.ts +4 -0
  300. package/lib/types/persisters/persister-expo-sqlite.d.ts +4 -0
  301. package/lib/types/persisters/persister-file.d.ts +7 -2
  302. package/lib/types/persisters/persister-indexed-db.d.ts +4 -0
  303. package/lib/types/persisters/persister-libsql.d.ts +142 -0
  304. package/lib/types/persisters/persister-partykit-client.d.ts +4 -0
  305. package/lib/types/persisters/persister-partykit-server.d.ts +12 -8
  306. package/lib/types/persisters/persister-powersync.d.ts +157 -0
  307. package/lib/types/persisters/persister-remote.d.ts +4 -0
  308. package/lib/types/persisters/persister-sqlite-wasm.d.ts +4 -0
  309. package/lib/types/persisters/persister-sqlite3.d.ts +4 -0
  310. package/lib/types/persisters/persister-yjs.d.ts +6 -2
  311. package/lib/types/persisters.d.ts +162 -59
  312. package/lib/types/queries.d.ts +2 -2
  313. package/lib/types/relationships.d.ts +2 -2
  314. package/lib/types/store.d.ts +275 -187
  315. package/lib/types/synchronizers/synchronizer-local.d.ts +27 -0
  316. package/lib/types/synchronizers/synchronizer-ws-client.d.ts +35 -0
  317. package/lib/types/synchronizers/synchronizer-ws-server.d.ts +57 -0
  318. package/lib/types/synchronizers.d.ts +132 -0
  319. package/lib/types/tinybase.d.ts +10 -8
  320. package/lib/types/tools.d.ts +4 -4
  321. package/lib/types/ui-react.d.ts +160 -9
  322. package/lib/types/with-schemas/checkpoints.d.ts +2 -2
  323. package/lib/types/with-schemas/indexes.d.ts +2 -2
  324. package/lib/types/with-schemas/internal/store.d.ts +4 -0
  325. package/lib/types/with-schemas/mergeable-store.d.ts +492 -0
  326. package/lib/types/with-schemas/metrics.d.ts +2 -2
  327. package/lib/types/with-schemas/persisters/persister-automerge.d.ts +12 -8
  328. package/lib/types/with-schemas/persisters/persister-browser.d.ts +17 -8
  329. package/lib/types/with-schemas/persisters/persister-cr-sqlite-wasm.d.ts +5 -1
  330. package/lib/types/with-schemas/persisters/persister-electric-sql.d.ts +5 -1
  331. package/lib/types/with-schemas/persisters/persister-expo-sqlite-next.d.ts +5 -1
  332. package/lib/types/with-schemas/persisters/persister-expo-sqlite.d.ts +5 -1
  333. package/lib/types/with-schemas/persisters/persister-file.d.ts +9 -4
  334. package/lib/types/with-schemas/persisters/persister-indexed-db.d.ts +5 -1
  335. package/lib/types/with-schemas/persisters/persister-libsql.d.ts +155 -0
  336. package/lib/types/with-schemas/persisters/persister-partykit-client.d.ts +5 -1
  337. package/lib/types/with-schemas/persisters/persister-partykit-server.d.ts +15 -11
  338. package/lib/types/with-schemas/persisters/persister-powersync.d.ts +170 -0
  339. package/lib/types/with-schemas/persisters/persister-remote.d.ts +5 -1
  340. package/lib/types/with-schemas/persisters/persister-sqlite-wasm.d.ts +5 -1
  341. package/lib/types/with-schemas/persisters/persister-sqlite3.d.ts +5 -1
  342. package/lib/types/with-schemas/persisters/persister-yjs.d.ts +7 -3
  343. package/lib/types/with-schemas/persisters.d.ts +193 -121
  344. package/lib/types/with-schemas/queries.d.ts +3 -3
  345. package/lib/types/with-schemas/relationships.d.ts +2 -2
  346. package/lib/types/with-schemas/store.d.ts +483 -345
  347. package/lib/types/with-schemas/synchronizers/synchronizer-local.d.ts +29 -0
  348. package/lib/types/with-schemas/synchronizers/synchronizer-ws-client.d.ts +41 -0
  349. package/lib/types/with-schemas/synchronizers/synchronizer-ws-server.d.ts +57 -0
  350. package/lib/types/with-schemas/synchronizers.d.ts +146 -0
  351. package/lib/types/with-schemas/tinybase.d.ts +9 -8
  352. package/lib/types/with-schemas/tools.d.ts +4 -4
  353. package/lib/types/with-schemas/ui-react.d.ts +177 -9
  354. package/lib/ui-react-dom.js +1 -1
  355. package/lib/ui-react-dom.js.gz +0 -0
  356. package/lib/ui-react.js +1 -1
  357. package/lib/ui-react.js.gz +0 -0
  358. package/lib/umd/checkpoints.js +1 -1
  359. package/lib/umd/checkpoints.js.gz +0 -0
  360. package/lib/umd/indexes.js +1 -1
  361. package/lib/umd/indexes.js.gz +0 -0
  362. package/lib/umd/mergeable-store.js +1 -0
  363. package/lib/umd/mergeable-store.js.gz +0 -0
  364. package/lib/umd/metrics.js +1 -1
  365. package/lib/umd/metrics.js.gz +0 -0
  366. package/lib/umd/persisters/persister-automerge.js +1 -1
  367. package/lib/umd/persisters/persister-automerge.js.gz +0 -0
  368. package/lib/umd/persisters/persister-browser.js +1 -1
  369. package/lib/umd/persisters/persister-browser.js.gz +0 -0
  370. package/lib/umd/persisters/persister-cr-sqlite-wasm.js +1 -1
  371. package/lib/umd/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  372. package/lib/umd/persisters/persister-electric-sql.js +1 -1
  373. package/lib/umd/persisters/persister-electric-sql.js.gz +0 -0
  374. package/lib/umd/persisters/persister-expo-sqlite-next.js +1 -1
  375. package/lib/umd/persisters/persister-expo-sqlite-next.js.gz +0 -0
  376. package/lib/umd/persisters/persister-expo-sqlite.js +1 -1
  377. package/lib/umd/persisters/persister-expo-sqlite.js.gz +0 -0
  378. package/lib/umd/persisters/persister-file.js +1 -1
  379. package/lib/umd/persisters/persister-file.js.gz +0 -0
  380. package/lib/umd/persisters/persister-indexed-db.js +1 -1
  381. package/lib/umd/persisters/persister-indexed-db.js.gz +0 -0
  382. package/lib/umd/persisters/persister-libsql.js +1 -0
  383. package/lib/umd/persisters/persister-libsql.js.gz +0 -0
  384. package/lib/umd/persisters/persister-partykit-client.js +1 -1
  385. package/lib/umd/persisters/persister-partykit-client.js.gz +0 -0
  386. package/lib/umd/persisters/persister-partykit-server.js +1 -1
  387. package/lib/umd/persisters/persister-partykit-server.js.gz +0 -0
  388. package/lib/umd/persisters/persister-powersync.js +1 -0
  389. package/lib/umd/persisters/persister-powersync.js.gz +0 -0
  390. package/lib/umd/persisters/persister-remote.js +1 -1
  391. package/lib/umd/persisters/persister-remote.js.gz +0 -0
  392. package/lib/umd/persisters/persister-sqlite-wasm.js +1 -1
  393. package/lib/umd/persisters/persister-sqlite-wasm.js.gz +0 -0
  394. package/lib/umd/persisters/persister-sqlite3.js +1 -1
  395. package/lib/umd/persisters/persister-sqlite3.js.gz +0 -0
  396. package/lib/umd/persisters/persister-yjs.js +1 -1
  397. package/lib/umd/persisters/persister-yjs.js.gz +0 -0
  398. package/lib/umd/persisters.js +1 -1
  399. package/lib/umd/persisters.js.gz +0 -0
  400. package/lib/umd/queries.js +1 -1
  401. package/lib/umd/queries.js.gz +0 -0
  402. package/lib/umd/relationships.js +1 -1
  403. package/lib/umd/relationships.js.gz +0 -0
  404. package/lib/umd/store.js +1 -1
  405. package/lib/umd/store.js.gz +0 -0
  406. package/lib/umd/synchronizers/synchronizer-local.js +1 -0
  407. package/lib/umd/synchronizers/synchronizer-local.js.gz +0 -0
  408. package/lib/umd/synchronizers/synchronizer-ws-client.js +1 -0
  409. package/lib/umd/synchronizers/synchronizer-ws-client.js.gz +0 -0
  410. package/lib/umd/synchronizers/synchronizer-ws-server.js +1 -0
  411. package/lib/umd/synchronizers/synchronizer-ws-server.js.gz +0 -0
  412. package/lib/umd/synchronizers.js +1 -0
  413. package/lib/umd/synchronizers.js.gz +0 -0
  414. package/lib/umd/tinybase.js +1 -1
  415. package/lib/umd/tinybase.js.gz +0 -0
  416. package/lib/umd/tools.js +1 -1
  417. package/lib/umd/tools.js.gz +0 -0
  418. package/lib/umd/ui-react-dom-debug.js +1 -1
  419. package/lib/umd/ui-react-dom-debug.js.gz +0 -0
  420. package/lib/umd/ui-react-dom.js +1 -1
  421. package/lib/umd/ui-react-dom.js.gz +0 -0
  422. package/lib/umd/ui-react.js +1 -1
  423. package/lib/umd/ui-react.js.gz +0 -0
  424. package/lib/umd-es6/checkpoints.js +1 -1
  425. package/lib/umd-es6/checkpoints.js.gz +0 -0
  426. package/lib/umd-es6/indexes.js +1 -1
  427. package/lib/umd-es6/indexes.js.gz +0 -0
  428. package/lib/umd-es6/mergeable-store.js +1 -0
  429. package/lib/umd-es6/mergeable-store.js.gz +0 -0
  430. package/lib/umd-es6/metrics.js +1 -1
  431. package/lib/umd-es6/metrics.js.gz +0 -0
  432. package/lib/umd-es6/persisters/persister-automerge.js +1 -1
  433. package/lib/umd-es6/persisters/persister-automerge.js.gz +0 -0
  434. package/lib/umd-es6/persisters/persister-browser.js +1 -1
  435. package/lib/umd-es6/persisters/persister-browser.js.gz +0 -0
  436. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  437. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  438. package/lib/umd-es6/persisters/persister-electric-sql.js +1 -1
  439. package/lib/umd-es6/persisters/persister-electric-sql.js.gz +0 -0
  440. package/lib/umd-es6/persisters/persister-expo-sqlite-next.js +1 -1
  441. package/lib/umd-es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
  442. package/lib/umd-es6/persisters/persister-expo-sqlite.js +1 -1
  443. package/lib/umd-es6/persisters/persister-expo-sqlite.js.gz +0 -0
  444. package/lib/umd-es6/persisters/persister-file.js +1 -1
  445. package/lib/umd-es6/persisters/persister-file.js.gz +0 -0
  446. package/lib/umd-es6/persisters/persister-indexed-db.js +1 -1
  447. package/lib/umd-es6/persisters/persister-indexed-db.js.gz +0 -0
  448. package/lib/umd-es6/persisters/persister-libsql.js +1 -0
  449. package/lib/umd-es6/persisters/persister-libsql.js.gz +0 -0
  450. package/lib/umd-es6/persisters/persister-partykit-client.js +1 -1
  451. package/lib/umd-es6/persisters/persister-partykit-client.js.gz +0 -0
  452. package/lib/umd-es6/persisters/persister-partykit-server.js +1 -1
  453. package/lib/umd-es6/persisters/persister-partykit-server.js.gz +0 -0
  454. package/lib/umd-es6/persisters/persister-powersync.js +1 -0
  455. package/lib/umd-es6/persisters/persister-powersync.js.gz +0 -0
  456. package/lib/umd-es6/persisters/persister-remote.js +1 -1
  457. package/lib/umd-es6/persisters/persister-remote.js.gz +0 -0
  458. package/lib/umd-es6/persisters/persister-sqlite-wasm.js +1 -1
  459. package/lib/umd-es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  460. package/lib/umd-es6/persisters/persister-sqlite3.js +1 -1
  461. package/lib/umd-es6/persisters/persister-sqlite3.js.gz +0 -0
  462. package/lib/umd-es6/persisters/persister-yjs.js +1 -1
  463. package/lib/umd-es6/persisters/persister-yjs.js.gz +0 -0
  464. package/lib/umd-es6/persisters.js +1 -1
  465. package/lib/umd-es6/persisters.js.gz +0 -0
  466. package/lib/umd-es6/queries.js +1 -1
  467. package/lib/umd-es6/queries.js.gz +0 -0
  468. package/lib/umd-es6/relationships.js +1 -1
  469. package/lib/umd-es6/relationships.js.gz +0 -0
  470. package/lib/umd-es6/store.js +1 -1
  471. package/lib/umd-es6/store.js.gz +0 -0
  472. package/lib/umd-es6/synchronizers/synchronizer-local.js +1 -0
  473. package/lib/umd-es6/synchronizers/synchronizer-local.js.gz +0 -0
  474. package/lib/umd-es6/synchronizers/synchronizer-ws-client.js +1 -0
  475. package/lib/umd-es6/synchronizers/synchronizer-ws-client.js.gz +0 -0
  476. package/lib/umd-es6/synchronizers/synchronizer-ws-server.js +1 -0
  477. package/lib/umd-es6/synchronizers/synchronizer-ws-server.js.gz +0 -0
  478. package/lib/umd-es6/synchronizers.js +1 -0
  479. package/lib/umd-es6/synchronizers.js.gz +0 -0
  480. package/lib/umd-es6/tinybase.js +1 -1
  481. package/lib/umd-es6/tinybase.js.gz +0 -0
  482. package/lib/umd-es6/tools.js +1 -1
  483. package/lib/umd-es6/tools.js.gz +0 -0
  484. package/lib/umd-es6/ui-react-dom-debug.js +1 -1
  485. package/lib/umd-es6/ui-react-dom-debug.js.gz +0 -0
  486. package/lib/umd-es6/ui-react-dom.js +1 -1
  487. package/lib/umd-es6/ui-react-dom.js.gz +0 -0
  488. package/lib/umd-es6/ui-react.js +1 -1
  489. package/lib/umd-es6/ui-react.js.gz +0 -0
  490. package/package.json +65 -45
  491. package/readme.md +2 -2
@@ -10,7 +10,8 @@
10
10
  * @module store
11
11
  */
12
12
 
13
- import {Id, IdOrNull, Ids, Json} from './common.d';
13
+ import {Id, IdOrNull, Ids, Json} from './common.d.ts';
14
+ import {StoreAlias} from './internal/store.d.ts';
14
15
 
15
16
  /**
16
17
  * The TablesSchema type describes the tabular structure of a Store in terms of
@@ -155,6 +156,37 @@ export type OptionalSchemas = [OptionalTablesSchema, OptionalValuesSchema];
155
156
  */
156
157
  export type NoSchemas = [NoTablesSchema, NoValuesSchema];
157
158
 
159
+ /**
160
+ * The Content type describes both the Tables and Values in a Store.
161
+ *
162
+ * It is an array of two objects, representing tabular and keyed value content.
163
+ * @example
164
+ * The following is a valid Content array:
165
+ * ```json
166
+ * [
167
+ * {
168
+ * "pets": {
169
+ * "fido": {
170
+ * "sold": false,
171
+ * "price": 4,
172
+ * },
173
+ * "felix": {
174
+ * "sold": true,
175
+ * "price": 5,
176
+ * },
177
+ * },
178
+ * },
179
+ * {
180
+ * open: true,
181
+ * employees: 3,
182
+ * },
183
+ * ]
184
+ * ```
185
+ * @category Store
186
+ * @since v5.0.0
187
+ */
188
+ export type Content = [Tables, Values];
189
+
158
190
  /**
159
191
  * The Tables type is the data structure representing all of the data in a
160
192
  * Store.
@@ -489,20 +521,13 @@ export type ChangedValueIds = {[valueId: Id]: IdAddedOrRemoved};
489
521
  * A DoRollback can be provided when calling the transaction method or the
490
522
  * finishTransaction method. See those methods for specific examples.
491
523
  *
492
- * Since v4.0, this function is provided only with two functions that you can
493
- * call to get information about the changes made within the transaction (in
494
- * order to decide whether to do the rollback). See the GetTransactionChanges
495
- * and GetTransactionLog function types for more details.
496
- * @param getTransactionChanges A function to be called to get the changes made
497
- * to the Store during the transaction, since v4.0.
498
- * @param getTransactionChanges A function to be called to get a more detailed
499
- * log of the changes made or attempted during the transaction, since v4.0.
524
+ * Since v5.0, this function is called with the Store as a single argument. You
525
+ * can use the getTransactionChanges method and getTransactionLog method of the
526
+ * Store directly to decide whether to do the rollback.
527
+ * @param store A reference to the Store that is completing a transaction.
500
528
  * @category Callback
501
529
  */
502
- export type DoRollback = (
503
- getTransactionChanges: GetTransactionChanges,
504
- getTransactionLog: GetTransactionLog,
505
- ) => boolean;
530
+ export type DoRollback = (store: Store) => boolean;
506
531
 
507
532
  /**
508
533
  * The TransactionListener type describes a function that is used to listen to
@@ -512,21 +537,15 @@ export type DoRollback = (
512
537
  * addWillFinishTransactionListener and addDidFinishTransactionListener methods.
513
538
  * See those methods for specific examples.
514
539
  *
515
- * When called, a TransactionListener is simply given a reference to the Store
516
- * and, since v4.0, two functions that you can call to get information about the
517
- * changes made within the transaction. See the GetTransactionChanges and
518
- * GetTransactionLog function types for more details.
540
+ * Since v5.0, this listener is called with no arguments other than the Store.
541
+ * You can use the getTransactionChanges method and getTransactionLog method of
542
+ * the Store directly to get information about the changes made within the
543
+ * transaction.
519
544
  * @param store A reference to the Store that is completing a transaction.
520
- * @param getTransactionChanges A function to be called to get the changes made
521
- * to the Store during the transaction, since v4.0.
522
- * @param getTransactionChanges A function to be called to get a more detailed
523
- * log of the changes made or attempted during the transaction, since v4.0.
524
545
  * @category Listener
525
546
  */
526
- export type TransactionListener = (
547
+ export type TransactionListener<Store extends StoreAlias = StoreAlias> = (
527
548
  store: Store,
528
- getTransactionChanges: GetTransactionChanges,
529
- getTransactionLog: GetTransactionLog,
530
549
  ) => void;
531
550
 
532
551
  /**
@@ -544,7 +563,10 @@ export type TransactionListener = (
544
563
  * @category Listener
545
564
  * @since v4.4.0
546
565
  */
547
- export type HasTablesListener = (store: Store, hasTables: boolean) => void;
566
+ export type HasTablesListener<Store extends StoreAlias = StoreAlias> = (
567
+ store: Store,
568
+ hasTables: boolean,
569
+ ) => void;
548
570
 
549
571
  /**
550
572
  * The TablesListener type describes a function that is used to listen to
@@ -565,7 +587,7 @@ export type HasTablesListener = (store: Store, hasTables: boolean) => void;
565
587
  * changes.
566
588
  * @category Listener
567
589
  */
568
- export type TablesListener = (
590
+ export type TablesListener<Store extends StoreAlias = StoreAlias> = (
569
591
  store: Store,
570
592
  getCellChange: GetCellChange | undefined,
571
593
  ) => void;
@@ -586,7 +608,7 @@ export type TablesListener = (
586
608
  * since v3.3.
587
609
  * @category Listener
588
610
  */
589
- export type TableIdsListener = (
611
+ export type TableIdsListener<Store extends StoreAlias = StoreAlias> = (
590
612
  store: Store,
591
613
  getIdChanges: GetIdChanges | undefined,
592
614
  ) => void;
@@ -608,7 +630,7 @@ export type TableIdsListener = (
608
630
  * @category Listener
609
631
  * @since v4.4.0
610
632
  */
611
- export type HasTableListener = (
633
+ export type HasTableListener<Store extends StoreAlias = StoreAlias> = (
612
634
  store: Store,
613
635
  tableId: Id,
614
636
  hasTable: boolean,
@@ -634,7 +656,7 @@ export type HasTableListener = (
634
656
  * changes.
635
657
  * @category Listener
636
658
  */
637
- export type TableListener = (
659
+ export type TableListener<Store extends StoreAlias = StoreAlias> = (
638
660
  store: Store,
639
661
  tableId: Id,
640
662
  getCellChange: GetCellChange | undefined,
@@ -656,7 +678,7 @@ export type TableListener = (
656
678
  * @category Listener
657
679
  * @since v3.3.0
658
680
  */
659
- export type TableCellIdsListener = (
681
+ export type TableCellIdsListener<Store extends StoreAlias = StoreAlias> = (
660
682
  store: Store,
661
683
  tableId: Id,
662
684
  getIdChanges: GetIdChanges | undefined,
@@ -680,7 +702,7 @@ export type TableCellIdsListener = (
680
702
  * @category Listener
681
703
  * @since v4.4.0
682
704
  */
683
- export type HasTableCellListener = (
705
+ export type HasTableCellListener<Store extends StoreAlias = StoreAlias> = (
684
706
  store: Store,
685
707
  tableId: Id,
686
708
  cellId: Id,
@@ -702,7 +724,7 @@ export type HasTableCellListener = (
702
724
  * @category Listener
703
725
  * @since v4.1.0
704
726
  */
705
- export type RowCountListener = (
727
+ export type RowCountListener<Store extends StoreAlias = StoreAlias> = (
706
728
  store: Store,
707
729
  tableId: Id,
708
730
  count: number,
@@ -726,7 +748,7 @@ export type RowCountListener = (
726
748
  * since v3.3.
727
749
  * @category Listener
728
750
  */
729
- export type RowIdsListener = (
751
+ export type RowIdsListener<Store extends StoreAlias = StoreAlias> = (
730
752
  store: Store,
731
753
  tableId: Id,
732
754
  getIdChanges: GetIdChanges | undefined,
@@ -755,7 +777,7 @@ export type RowIdsListener = (
755
777
  * @category Listener
756
778
  * @since v2.0.0
757
779
  */
758
- export type SortedRowIdsListener = (
780
+ export type SortedRowIdsListener<Store extends StoreAlias = StoreAlias> = (
759
781
  store: Store,
760
782
  tableId: Id,
761
783
  cellId: Id | undefined,
@@ -783,7 +805,7 @@ export type SortedRowIdsListener = (
783
805
  * @category Listener
784
806
  * @since v4.4.0
785
807
  */
786
- export type HasRowListener = (
808
+ export type HasRowListener<Store extends StoreAlias = StoreAlias> = (
787
809
  store: Store,
788
810
  tableId: Id,
789
811
  rowId: Id,
@@ -812,7 +834,7 @@ export type HasRowListener = (
812
834
  * changes.
813
835
  * @category Listener
814
836
  */
815
- export type RowListener = (
837
+ export type RowListener<Store extends StoreAlias = StoreAlias> = (
816
838
  store: Store,
817
839
  tableId: Id,
818
840
  rowId: Id,
@@ -838,7 +860,7 @@ export type RowListener = (
838
860
  * since v3.3.
839
861
  * @category Listener
840
862
  */
841
- export type CellIdsListener = (
863
+ export type CellIdsListener<Store extends StoreAlias = StoreAlias> = (
842
864
  store: Store,
843
865
  tableId: Id,
844
866
  rowId: Id,
@@ -864,7 +886,7 @@ export type CellIdsListener = (
864
886
  * @category Listener
865
887
  * @since v4.4.0
866
888
  */
867
- export type HasCellListener = (
889
+ export type HasCellListener<Store extends StoreAlias = StoreAlias> = (
868
890
  store: Store,
869
891
  tableId: Id,
870
892
  rowId: Id,
@@ -899,7 +921,7 @@ export type HasCellListener = (
899
921
  * changes.
900
922
  * @category Listener
901
923
  */
902
- export type CellListener = (
924
+ export type CellListener<Store extends StoreAlias = StoreAlias> = (
903
925
  store: Store,
904
926
  tableId: Id,
905
927
  rowId: Id,
@@ -924,7 +946,10 @@ export type CellListener = (
924
946
  * @category Listener
925
947
  * @since v4.4.0
926
948
  */
927
- export type HasValuesListener = (store: Store, hasValues: boolean) => void;
949
+ export type HasValuesListener<Store extends StoreAlias = StoreAlias> = (
950
+ store: Store,
951
+ hasValues: boolean,
952
+ ) => void;
928
953
 
929
954
  /**
930
955
  * The ValuesListener type describes a function that is used to listen to
@@ -945,7 +970,7 @@ export type HasValuesListener = (store: Store, hasValues: boolean) => void;
945
970
  * changes.
946
971
  * @category Listener
947
972
  */
948
- export type ValuesListener = (
973
+ export type ValuesListener<Store extends StoreAlias = StoreAlias> = (
949
974
  store: Store,
950
975
  getValueChange: GetValueChange | undefined,
951
976
  ) => void;
@@ -966,7 +991,7 @@ export type ValuesListener = (
966
991
  * since v3.3.
967
992
  * @category Listener
968
993
  */
969
- export type ValueIdsListener = (
994
+ export type ValueIdsListener<Store extends StoreAlias = StoreAlias> = (
970
995
  store: Store,
971
996
  getIdChanges: GetIdChanges | undefined,
972
997
  ) => void;
@@ -988,7 +1013,7 @@ export type ValueIdsListener = (
988
1013
  * @category Listener
989
1014
  * @since v4.4.0
990
1015
  */
991
- export type HasValueListener = (
1016
+ export type HasValueListener<Store extends StoreAlias = StoreAlias> = (
992
1017
  store: Store,
993
1018
  valueId: Id,
994
1019
  hasValue: boolean,
@@ -1019,7 +1044,7 @@ export type HasValueListener = (
1019
1044
  * @category Listener
1020
1045
  * @since v3.0.0
1021
1046
  */
1022
- export type ValueListener = (
1047
+ export type ValueListener<Store extends StoreAlias = StoreAlias> = (
1023
1048
  store: Store,
1024
1049
  valueId: Id,
1025
1050
  newValue: Value,
@@ -1048,7 +1073,7 @@ export type ValueListener = (
1048
1073
  * @category Listener
1049
1074
  * @since v1.1.0
1050
1075
  */
1051
- export type InvalidCellListener = (
1076
+ export type InvalidCellListener<Store extends StoreAlias = StoreAlias> = (
1052
1077
  store: Store,
1053
1078
  tableId: Id,
1054
1079
  rowId: Id,
@@ -1075,7 +1100,7 @@ export type InvalidCellListener = (
1075
1100
  * @category Listener
1076
1101
  * @since v3.0.0
1077
1102
  */
1078
- export type InvalidValueListener = (
1103
+ export type InvalidValueListener<Store extends StoreAlias = StoreAlias> = (
1079
1104
  store: Store,
1080
1105
  valueId: Id,
1081
1106
  invalidValues: any[],
@@ -1205,7 +1230,7 @@ export type ChangedCells = {
1205
1230
  * @category Transaction
1206
1231
  * @since v1.2.0
1207
1232
  */
1208
- export type ChangedCell = [CellOrUndefined, CellOrUndefined];
1233
+ export type ChangedCell = [oldCell: CellOrUndefined, newCell: CellOrUndefined];
1209
1234
 
1210
1235
  /**
1211
1236
  * The InvalidCells type describes the invalid Cell values that have been
@@ -1273,7 +1298,10 @@ export type ChangedValues = {
1273
1298
  * @category Transaction
1274
1299
  * @since v3.0.0
1275
1300
  */
1276
- export type ChangedValue = [ValueOrUndefined, ValueOrUndefined];
1301
+ export type ChangedValue = [
1302
+ oldValue: ValueOrUndefined,
1303
+ newValue: ValueOrUndefined,
1304
+ ];
1277
1305
 
1278
1306
  /**
1279
1307
  * The InvalidValues type describes the invalid Values that have been attempted
@@ -1293,8 +1321,8 @@ export type ChangedValue = [ValueOrUndefined, ValueOrUndefined];
1293
1321
  export type InvalidValues = {[valueId: Id]: any[]};
1294
1322
 
1295
1323
  /**
1296
- * The TransactionChanges type describes the net meaningful changes that were
1297
- * made to a Store during a transaction.
1324
+ * The Changes type describes the net meaningful changes that were made to a
1325
+ * Store during a transaction.
1298
1326
  *
1299
1327
  * This contains mostly equivalent information to a TransactionLog, but in a
1300
1328
  * form that can be more efficiently parsed and serialized (for example in the
@@ -1317,8 +1345,11 @@ export type InvalidValues = {[valueId: Id]: any[]};
1317
1345
  * If not empty, the second object has an entry for each Value in a Store that
1318
1346
  * has had a change. If the entry is null, the Value was deleted, otherwise it
1319
1347
  * will contain the new Value it was changed to during the transaction.
1348
+ *
1349
+ * A third, required, item in the array is the digit `1`, so that instances of
1350
+ * Content and Changes types can be disambiguated.
1320
1351
  * @example
1321
- * The following is a valid TransactionChanges array that conveys the following:
1352
+ * The following is a valid Changes array that conveys the following:
1322
1353
  * ```json
1323
1354
  * [
1324
1355
  * { // changes to tabular data in the Store
@@ -1332,33 +1363,27 @@ export type InvalidValues = {[valueId: Id]: any[]};
1332
1363
  * "pendingSales": null, // this Table was deleted
1333
1364
  * },
1334
1365
  * {}, // no changes to keyed value data in the Store
1366
+ * 1, // indicates that this is a Changes array
1335
1367
  * ]
1336
1368
  * ```
1337
1369
  * @category Transaction
1338
1370
  * @since v4.0.0
1339
1371
  */
1340
- export type TransactionChanges = [
1341
- {[tableId: Id]: {[rowId: Id]: {[cellId: Id]: Cell | null} | null} | null},
1342
- {[valueId: Id]: Value | null},
1372
+ export type Changes = [
1373
+ changedTables: {
1374
+ [tableId: Id]:
1375
+ | {[rowId: Id]: {[cellId: Id]: CellOrUndefined} | undefined}
1376
+ | undefined;
1377
+ },
1378
+ changedValues: {[valueId: Id]: ValueOrUndefined},
1379
+ isChanges: 1,
1343
1380
  ];
1344
1381
 
1345
- /**
1346
- * The GetTransactionChanges type describes a function that returns the net
1347
- * meaningful changes that were made to a Store during a transaction.
1348
- *
1349
- * It is provided to the DoRollback callback and to a TransactionListener
1350
- * listener when a transaction completes. See the TransactionChanges type for
1351
- * more information and an example of the returned data structure.
1352
- * @category Transaction
1353
- * @since v4.0.0
1354
- */
1355
- export type GetTransactionChanges = () => TransactionChanges;
1356
-
1357
1382
  /**
1358
1383
  * The TransactionLog type describes the changes that were made to a Store
1359
1384
  * during a transaction in detail.
1360
1385
  *
1361
- * This contains equivalent information to a TransactionChanges object, but also
1386
+ * This contains equivalent information to a Changes object, but also
1362
1387
  * information about what the previous state of the Store was. The changedCells
1363
1388
  * and changedValues entries contain information about all changes to those
1364
1389
  * parts of the Store, with their before and after values, for example.
@@ -1374,34 +1399,25 @@ export type GetTransactionChanges = () => TransactionChanges;
1374
1399
  * of `cellsTouched` and `valuesTouched` in the listener will be `false` because
1375
1400
  * all changes have been reverted.
1376
1401
  *
1377
- * See the documentation for the types of the inner objects for other details.
1378
- * @category Transaction
1379
- * @since v4.0.0
1380
- */
1381
- export type TransactionLog = {
1382
- cellsTouched: boolean;
1383
- valuesTouched: boolean;
1384
- changedCells: ChangedCells;
1385
- invalidCells: InvalidCells;
1386
- changedValues: ChangedValues;
1387
- invalidValues: InvalidValues;
1388
- changedTableIds: ChangedTableIds;
1389
- changedRowIds: ChangedRowIds;
1390
- changedCellIds: ChangedCellIds;
1391
- changedValueIds: ChangedValueIds;
1392
- };
1393
-
1394
- /**
1395
- * The GetTransactionLog type describes a function that returns the changes that
1396
- * were made to a Store during a transaction in detail.
1402
+ * In v5.0, this type changed from an object to an array, but still contains the
1403
+ * same values.
1397
1404
  *
1398
- * It is provided to the DoRollback callback and to a TransactionListener
1399
- * listener when a transaction completes. See the TransactionLog type for more
1400
- * information.
1405
+ * See the documentation for the types of the inner objects for other details.
1401
1406
  * @category Transaction
1402
1407
  * @since v4.0.0
1403
1408
  */
1404
- export type GetTransactionLog = () => TransactionLog;
1409
+ export type TransactionLog = [
1410
+ cellsTouched: boolean,
1411
+ valuesTouched: boolean,
1412
+ changedCells: ChangedCells,
1413
+ invalidCells: InvalidCells,
1414
+ changedValues: ChangedValues,
1415
+ invalidValues: InvalidValues,
1416
+ changedTableIds: ChangedTableIds,
1417
+ changedRowIds: ChangedRowIds,
1418
+ changedCellIds: ChangedCellIds,
1419
+ changedValueIds: ChangedValueIds,
1420
+ ];
1405
1421
 
1406
1422
  /**
1407
1423
  * The StoreListenerStats type describes the number of listeners registered with
@@ -1736,7 +1752,7 @@ export interface Store {
1736
1752
  * @category Getter
1737
1753
  * @since v4.0.0
1738
1754
  */
1739
- getContent(): [Tables, Values];
1755
+ getContent(): Content;
1740
1756
 
1741
1757
  /**
1742
1758
  * The getTables method returns a Tables object containing the entire tabular
@@ -2657,7 +2673,7 @@ export interface Store {
2657
2673
  * @category Setter
2658
2674
  * @since v4.0.0
2659
2675
  */
2660
- setContent([tables, values]: [Tables, Values]): Store;
2676
+ setContent(content: Content): this;
2661
2677
 
2662
2678
  /**
2663
2679
  * The setTables method takes an object and sets the entire tabular data of
@@ -2705,7 +2721,7 @@ export interface Store {
2705
2721
  * ```
2706
2722
  * @category Setter
2707
2723
  */
2708
- setTables(tables: Tables): Store;
2724
+ setTables(tables: Tables): this;
2709
2725
 
2710
2726
  /**
2711
2727
  * The setTable method takes an object and sets the entire data of a single
@@ -2755,7 +2771,7 @@ export interface Store {
2755
2771
  * ```
2756
2772
  * @category Setter
2757
2773
  */
2758
- setTable(tableId: Id, table: Table): Store;
2774
+ setTable(tableId: Id, table: Table): this;
2759
2775
 
2760
2776
  /**
2761
2777
  * The setRow method takes an object and sets the entire data of a single Row
@@ -2804,7 +2820,7 @@ export interface Store {
2804
2820
  * ```
2805
2821
  * @category Setter
2806
2822
  */
2807
- setRow(tableId: Id, rowId: Id, row: Row): Store;
2823
+ setRow(tableId: Id, rowId: Id, row: Row): this;
2808
2824
 
2809
2825
  /**
2810
2826
  * The addRow method takes an object and creates a new Row in the Store,
@@ -2916,7 +2932,7 @@ export interface Store {
2916
2932
  * ```
2917
2933
  * @category Setter
2918
2934
  */
2919
- setPartialRow(tableId: Id, rowId: Id, partialRow: Row): Store;
2935
+ setPartialRow(tableId: Id, rowId: Id, partialRow: Row): this;
2920
2936
 
2921
2937
  /**
2922
2938
  * The setCell method sets the value of a single Cell in the Store.
@@ -2973,7 +2989,7 @@ export interface Store {
2973
2989
  * ```
2974
2990
  * @category Setter
2975
2991
  */
2976
- setCell(tableId: Id, rowId: Id, cellId: Id, cell: Cell | MapCell): Store;
2992
+ setCell(tableId: Id, rowId: Id, cellId: Id, cell: Cell | MapCell): this;
2977
2993
 
2978
2994
  /**
2979
2995
  * The setValues method takes an object and sets all the Values in the Store.
@@ -3020,7 +3036,7 @@ export interface Store {
3020
3036
  * @category Setter
3021
3037
  * @since v3.0.0
3022
3038
  */
3023
- setValues(values: Values): Store;
3039
+ setValues(values: Values): this;
3024
3040
 
3025
3041
  /**
3026
3042
  * The setPartialValues method takes an object and sets its Values in the
@@ -3069,7 +3085,7 @@ export interface Store {
3069
3085
  * @category Setter
3070
3086
  * @since v3.0.0
3071
3087
  */
3072
- setPartialValues(partialValues: Values): Store;
3088
+ setPartialValues(partialValues: Values): this;
3073
3089
 
3074
3090
  /**
3075
3091
  * The setValue method sets a single keyed Value in the Store.
@@ -3122,28 +3138,29 @@ export interface Store {
3122
3138
  * @category Setter
3123
3139
  * @since v3.0.0
3124
3140
  */
3125
- setValue(valueId: Id, value: Value | MapValue): Store;
3141
+ setValue(valueId: Id, value: Value | MapValue): this;
3126
3142
 
3127
3143
  /**
3128
- * The setTransactionChanges method applies a set of TransactionChanges to the
3129
- * Store.
3144
+ * The applyChanges method applies a set of Changes to the Store.
3130
3145
  *
3131
- * This method will take a TransactionChanges object (which is available at
3132
- * the end of a transaction) and apply it to a Store. The most likely need to
3133
- * do this is to take the changes made during the transaction of one Store,
3134
- * and apply it to the content of _another_ Store - such as when persisting
3135
- * and synchronizing data.
3146
+ * This method will take a Changes object (which is available at the end of a
3147
+ * transaction) and apply it to a Store. The most likely need to do this is to
3148
+ * take the changes made during the transaction of one Store, and apply it to
3149
+ * the content of _another_ Store - such as when persisting and synchronizing
3150
+ * data.
3136
3151
  *
3137
- * Any part of the provided TransactionChanges object are invalid (either
3138
- * because of its type, or because it does not match the schemas associated
3139
- * with the Store) will be ignored silently.
3152
+ * Any part of the provided Changes object are invalid (either because of its
3153
+ * type, or because it does not match the schemas associated with the Store)
3154
+ * will be ignored silently.
3140
3155
  *
3141
3156
  * The method returns a reference to the Store so that subsequent operations
3142
3157
  * can be chained in a fluent style.
3143
- * @param transactionChanges The TransactionChanges to apply to the Store.
3158
+ *
3159
+ * Prior to v5.0, this method was named `setTransactionChanges`.
3160
+ * @param changes The Changes to apply to the Store.
3144
3161
  * @returns A reference to the Store.
3145
3162
  * @example
3146
- * This example applies a TransactionChanges object that sets a Cell and
3163
+ * This example applies a Changes object that sets a Cell and
3147
3164
  * removes a Value.
3148
3165
  *
3149
3166
  * ```js
@@ -3151,19 +3168,16 @@ export interface Store {
3151
3168
  * .setTables({pets: {fido: {species: 'dog', color: 'brown'}}})
3152
3169
  * .setValues({open: true});
3153
3170
  *
3154
- * store.setTransactionChanges([
3155
- * {pets: {fido: {color: 'black'}}},
3156
- * {open: null},
3157
- * ]);
3171
+ * store.applyChanges([{pets: {fido: {color: 'black'}}}, {open: null}]);
3158
3172
  * console.log(store.getTables());
3159
3173
  * // -> {pets: {fido: {species: 'dog', color: 'black'}}}
3160
3174
  * console.log(store.getValues());
3161
3175
  * // -> {}
3162
3176
  * ```
3163
3177
  * @category Setter
3164
- * @since v4.0.0
3178
+ * @since v5.0.0
3165
3179
  */
3166
- setTransactionChanges(transactionChanges: TransactionChanges): Store;
3180
+ applyChanges(changes: Changes): this;
3167
3181
 
3168
3182
  /**
3169
3183
  * The setTablesJson method takes a string serialization of all of the Tables
@@ -3197,7 +3211,7 @@ export interface Store {
3197
3211
  * @category Setter
3198
3212
  * @since v3.0.0
3199
3213
  */
3200
- setTablesJson(tablesJson: Json): Store;
3214
+ setTablesJson(tablesJson: Json): this;
3201
3215
 
3202
3216
  /**
3203
3217
  * The setValuesJson method takes a string serialization of all of the Values
@@ -3231,7 +3245,7 @@ export interface Store {
3231
3245
  * @category Setter
3232
3246
  * @since v3.0.0
3233
3247
  */
3234
- setValuesJson(valuesJson: Json): Store;
3248
+ setValuesJson(valuesJson: Json): this;
3235
3249
 
3236
3250
  /**
3237
3251
  * The setJson method takes a string serialization of all of the Tables and
@@ -3289,7 +3303,7 @@ export interface Store {
3289
3303
  * ```
3290
3304
  * @category Setter
3291
3305
  */
3292
- setJson(tablesAndValuesJson: Json): Store;
3306
+ setJson(tablesAndValuesJson: Json): this;
3293
3307
 
3294
3308
  /**
3295
3309
  * The setTablesSchema method lets you specify the TablesSchema of the tabular
@@ -3321,7 +3335,7 @@ export interface Store {
3321
3335
  * @category Setter
3322
3336
  * @since v3.0.0
3323
3337
  */
3324
- setTablesSchema(tablesSchema: TablesSchema): Store;
3338
+ setTablesSchema(tablesSchema: TablesSchema): this;
3325
3339
 
3326
3340
  /**
3327
3341
  * The setValuesSchema method lets you specify the ValuesSchema of the keyed
@@ -3350,7 +3364,7 @@ export interface Store {
3350
3364
  * @category Setter
3351
3365
  * @since v3.0.0
3352
3366
  */
3353
- setValuesSchema(valuesSchema: ValuesSchema): Store;
3367
+ setValuesSchema(valuesSchema: ValuesSchema): this;
3354
3368
 
3355
3369
  /**
3356
3370
  * The setSchema method lets you specify the TablesSchema and ValuesSchema of
@@ -3408,7 +3422,7 @@ export interface Store {
3408
3422
  * ```
3409
3423
  * @category Setter
3410
3424
  */
3411
- setSchema(tablesSchema: TablesSchema, valuesSchema?: ValuesSchema): Store;
3425
+ setSchema(tablesSchema: TablesSchema, valuesSchema?: ValuesSchema): this;
3412
3426
 
3413
3427
  /**
3414
3428
  * The delTables method lets you remove all of the data in a Store.
@@ -3425,7 +3439,7 @@ export interface Store {
3425
3439
  * ```
3426
3440
  * @category Deleter
3427
3441
  */
3428
- delTables(): Store;
3442
+ delTables(): this;
3429
3443
 
3430
3444
  /**
3431
3445
  * The delTable method lets you remove a single Table from the Store.
@@ -3446,7 +3460,7 @@ export interface Store {
3446
3460
  * ```
3447
3461
  * @category Deleter
3448
3462
  */
3449
- delTable(tableId: Id): Store;
3463
+ delTable(tableId: Id): this;
3450
3464
 
3451
3465
  /**
3452
3466
  * The delRow method lets you remove a single Row from a Table.
@@ -3469,7 +3483,7 @@ export interface Store {
3469
3483
  * ```
3470
3484
  * @category Deleter
3471
3485
  */
3472
- delRow(tableId: Id, rowId: Id): Store;
3486
+ delRow(tableId: Id, rowId: Id): this;
3473
3487
 
3474
3488
  /**
3475
3489
  * The delCell method lets you remove a single Cell from a Row.
@@ -3552,7 +3566,7 @@ export interface Store {
3552
3566
  * ```
3553
3567
  * @category Deleter
3554
3568
  */
3555
- delCell(tableId: Id, rowId: Id, cellId: Id, forceDel?: boolean): Store;
3569
+ delCell(tableId: Id, rowId: Id, cellId: Id, forceDel?: boolean): this;
3556
3570
 
3557
3571
  /**
3558
3572
  * The delValues method lets you remove all the Values from a Store.
@@ -3590,7 +3604,7 @@ export interface Store {
3590
3604
  * @category Deleter
3591
3605
  * @since v3.0.0
3592
3606
  */
3593
- delValues(): Store;
3607
+ delValues(): this;
3594
3608
 
3595
3609
  /**
3596
3610
  * The delValue method lets you remove a single Value from a Store.
@@ -3629,7 +3643,7 @@ export interface Store {
3629
3643
  * @category Deleter
3630
3644
  * @since v3.0.0
3631
3645
  */
3632
- delValue(valueId: Id): Store;
3646
+ delValue(valueId: Id): this;
3633
3647
 
3634
3648
  /**
3635
3649
  * The delTablesSchema method lets you remove the TablesSchema of the Store.
@@ -3647,7 +3661,7 @@ export interface Store {
3647
3661
  * ```
3648
3662
  * @category Deleter
3649
3663
  */
3650
- delTablesSchema(): Store;
3664
+ delTablesSchema(): this;
3651
3665
 
3652
3666
  /**
3653
3667
  * The delValuesSchema method lets you remove the ValuesSchema of the Store.
@@ -3666,7 +3680,7 @@ export interface Store {
3666
3680
  * @category Deleter
3667
3681
  * @since v3.0.0
3668
3682
  */
3669
- delValuesSchema(): Store;
3683
+ delValuesSchema(): this;
3670
3684
 
3671
3685
  /**
3672
3686
  * The delSchema method lets you remove both the TablesSchema and ValuesSchema
@@ -3692,7 +3706,7 @@ export interface Store {
3692
3706
  * @category Deleter
3693
3707
  * @since v3.0.0
3694
3708
  */
3695
- delSchema(): Store;
3709
+ delSchema(): this;
3696
3710
 
3697
3711
  /**
3698
3712
  * The transaction method takes a function that makes multiple mutations to
@@ -3718,10 +3732,7 @@ export interface Store {
3718
3732
  *
3719
3733
  * The second, optional parameter, `doRollback` is a DoRollback callback that
3720
3734
  * you can use to rollback the transaction if it did not complete to your
3721
- * satisfaction. It is called with `getTransactionChanges` and
3722
- * `getTransactionLog` parameters, which inform you of the net changes that
3723
- * have been made during the transaction, at different levels of detail. See
3724
- * the DoRollback documentation for more details.
3735
+ * satisfaction. See the DoRollback documentation for more details.
3725
3736
  * @param actions The function to be executed as a transaction.
3726
3737
  * @param doRollback An optional callback that should return `true` if you
3727
3738
  * want to rollback the transaction at the end. Since v1.2.
@@ -3797,9 +3808,9 @@ export interface Store {
3797
3808
  * .setCell('pets', 'fido', 'info', {sold: null})
3798
3809
  * .setValue('open', false)
3799
3810
  * .setValue('employees', ['alice', 'bob']),
3800
- * (_, getTransactionLog) => {
3801
- * const {changedCells, invalidCells, changedValues, invalidValues} =
3802
- * getTransactionLog();
3811
+ * () => {
3812
+ * const [, , changedCells, invalidCells, changedValues, invalidValues] =
3813
+ * store.getTransactionLog();
3803
3814
  * console.log(store.getTables());
3804
3815
  * console.log(changedCells);
3805
3816
  * console.log(invalidCells);
@@ -3871,7 +3882,82 @@ export interface Store {
3871
3882
  * @category Transaction
3872
3883
  * @since v1.3.0
3873
3884
  */
3874
- startTransaction(): Store;
3885
+ startTransaction(): this;
3886
+
3887
+ /**
3888
+ * The getTransactionChanges method returns the net meaningful changes that
3889
+ * have been made to a Store during a transaction.
3890
+ *
3891
+ * This is useful for deciding whether to rollback a transaction, for example.
3892
+ * The returned object is only meaningful if the method is called when the
3893
+ * Store is in a transaction - such as in a TransactionListener.
3894
+ * @example
3895
+ * This example makes changes to the Store. At the end of the transaction,
3896
+ * detail about what changed is enumerated.
3897
+ *
3898
+ * ```js
3899
+ * const store = createStore()
3900
+ * .setTables({pets: {fido: {species: 'dog', color: 'brown'}}})
3901
+ * .setValues({open: true});
3902
+ *
3903
+ * store
3904
+ * .startTransaction()
3905
+ * .setCell('pets', 'fido', 'color', 'black')
3906
+ * .setValue('open', false)
3907
+ * .finishTransaction(() => {
3908
+ * const [changedCells, changedValues] = store.getTransactionChanges();
3909
+ * console.log(changedCells);
3910
+ * console.log(changedValues);
3911
+ * });
3912
+ * // -> {pets: {fido: {color: 'black'}}}
3913
+ * // -> {open: false}
3914
+ * ```
3915
+ * @category Transaction
3916
+ * @since v5.0.0
3917
+ */
3918
+ getTransactionChanges(): Changes;
3919
+
3920
+ /**
3921
+ * The getTransactionLog method returns the changes that were made to a Store
3922
+ * during a transaction in more detail, including invalid changes, and what
3923
+ * previous values were.
3924
+ *
3925
+ * This is useful for deciding whether to rollback a transaction, for example.
3926
+ * The returned object is only meaningful if the method is called when the
3927
+ * Store is in a transaction - such as in a TransactionListener.
3928
+ * @example
3929
+ * This example makes changes to the Store. At the end of the transaction,
3930
+ * detail about what changed is enumerated.
3931
+ *
3932
+ * ```js
3933
+ * const store = createStore()
3934
+ * .setTables({pets: {fido: {species: 'dog', color: 'brown'}}})
3935
+ * .setValues({open: true});
3936
+ *
3937
+ * store
3938
+ * .startTransaction()
3939
+ * .setCell('pets', 'fido', 'color', 'black')
3940
+ * .setCell('pets', 'fido', 'eyes', ['left', 'right'])
3941
+ * .setCell('pets', 'fido', 'info', {sold: null})
3942
+ * .setValue('open', false)
3943
+ * .setValue('employees', ['alice', 'bob'])
3944
+ * .finishTransaction(() => {
3945
+ * const [, , changedCells, invalidCells, changedValues, invalidValues] =
3946
+ * store.getTransactionLog();
3947
+ * console.log(changedCells);
3948
+ * console.log(invalidCells);
3949
+ * console.log(changedValues);
3950
+ * console.log(invalidValues);
3951
+ * });
3952
+ * // -> {pets: {fido: {color: ['brown', 'black']}}}
3953
+ * // -> {pets: {fido: {eyes: [['left', 'right']], info: [{sold: null}]}}}
3954
+ * // -> {open: [true, false]}
3955
+ * // -> {employees: [['alice', 'bob']]}
3956
+ * ```
3957
+ * @category Transaction
3958
+ * @since v5.0.0
3959
+ */
3960
+ getTransactionLog(): TransactionLog;
3875
3961
 
3876
3962
  /**
3877
3963
  * The finishTransaction method allows you to explicitly finish a transaction
@@ -3944,9 +4030,9 @@ export interface Store {
3944
4030
  * .setCell('pets', 'fido', 'info', {sold: null})
3945
4031
  * .setValue('open', false)
3946
4032
  * .setValue('employees', ['alice', 'bob'])
3947
- * .finishTransaction((_, getTransactionLog) => {
3948
- * const {changedCells, invalidCells, changedValues, invalidValues} =
3949
- * getTransactionLog();
4033
+ * .finishTransaction(() => {
4034
+ * const [, , changedCells, invalidCells, changedValues, invalidValues] =
4035
+ * store.getTransactionLog();
3950
4036
  * console.log(store.getTables());
3951
4037
  * console.log(changedCells);
3952
4038
  * console.log(invalidCells);
@@ -3968,7 +4054,7 @@ export interface Store {
3968
4054
  * @category Transaction
3969
4055
  * @since v1.3.0
3970
4056
  */
3971
- finishTransaction(doRollback?: DoRollback): Store;
4057
+ finishTransaction(doRollback?: DoRollback): this;
3972
4058
 
3973
4059
  /**
3974
4060
  * The forEachTable method takes a function that it will then call for each
@@ -4179,7 +4265,10 @@ export interface Store {
4179
4265
  * @category Listener
4180
4266
  * @since v4.4.0
4181
4267
  */
4182
- addHasTablesListener(listener: HasTablesListener, mutator?: boolean): Id;
4268
+ addHasTablesListener(
4269
+ listener: HasTablesListener<this>,
4270
+ mutator?: boolean,
4271
+ ): Id;
4183
4272
 
4184
4273
  /**
4185
4274
  * The addTablesListener method registers a listener function with the Store
@@ -4242,7 +4331,7 @@ export interface Store {
4242
4331
  * ```
4243
4332
  * @category Listener
4244
4333
  */
4245
- addTablesListener(listener: TablesListener, mutator?: boolean): Id;
4334
+ addTablesListener(listener: TablesListener<this>, mutator?: boolean): Id;
4246
4335
 
4247
4336
  /**
4248
4337
  * The addTableIdsListener method registers a listener function with the Store
@@ -4304,7 +4393,7 @@ export interface Store {
4304
4393
  * ```
4305
4394
  * @category Listener
4306
4395
  */
4307
- addTableIdsListener(listener: TableIdsListener, mutator?: boolean): Id;
4396
+ addTableIdsListener(listener: TableIdsListener<this>, mutator?: boolean): Id;
4308
4397
 
4309
4398
  /**
4310
4399
  * The addHasTableListener method registers a listener function with the Store
@@ -4403,7 +4492,7 @@ export interface Store {
4403
4492
  */
4404
4493
  addHasTableListener(
4405
4494
  tableId: IdOrNull,
4406
- listener: HasTableListener,
4495
+ listener: HasTableListener<this>,
4407
4496
  mutator?: boolean,
4408
4497
  ): Id;
4409
4498
 
@@ -4499,7 +4588,7 @@ export interface Store {
4499
4588
  */
4500
4589
  addTableListener(
4501
4590
  tableId: IdOrNull,
4502
- listener: TableListener,
4591
+ listener: TableListener<this>,
4503
4592
  mutator?: boolean,
4504
4593
  ): Id;
4505
4594
 
@@ -4603,7 +4692,7 @@ export interface Store {
4603
4692
  */
4604
4693
  addTableCellIdsListener(
4605
4694
  tableId: IdOrNull,
4606
- listener: TableCellIdsListener,
4695
+ listener: TableCellIdsListener<this>,
4607
4696
  mutator?: boolean,
4608
4697
  ): Id;
4609
4698
 
@@ -4722,7 +4811,7 @@ export interface Store {
4722
4811
  addHasTableCellListener(
4723
4812
  tableId: IdOrNull,
4724
4813
  cellId: IdOrNull,
4725
- listener: HasTableCellListener,
4814
+ listener: HasTableCellListener<this>,
4726
4815
  mutator?: boolean,
4727
4816
  ): Id;
4728
4817
 
@@ -4815,7 +4904,7 @@ export interface Store {
4815
4904
  */
4816
4905
  addRowCountListener(
4817
4906
  tableId: IdOrNull,
4818
- listener: RowCountListener,
4907
+ listener: RowCountListener<this>,
4819
4908
  mutator?: boolean,
4820
4909
  ): Id;
4821
4910
 
@@ -4906,7 +4995,7 @@ export interface Store {
4906
4995
  */
4907
4996
  addRowIdsListener(
4908
4997
  tableId: IdOrNull,
4909
- listener: RowIdsListener,
4998
+ listener: RowIdsListener<this>,
4910
4999
  mutator?: boolean,
4911
5000
  ): Id;
4912
5001
 
@@ -5131,7 +5220,7 @@ export interface Store {
5131
5220
  descending: boolean,
5132
5221
  offset: number,
5133
5222
  limit: number | undefined,
5134
- listener: SortedRowIdsListener,
5223
+ listener: SortedRowIdsListener<this>,
5135
5224
  mutator?: boolean,
5136
5225
  ): Id;
5137
5226
 
@@ -5248,7 +5337,7 @@ export interface Store {
5248
5337
  addHasRowListener(
5249
5338
  tableId: IdOrNull,
5250
5339
  rowId: IdOrNull,
5251
- listener: HasRowListener,
5340
+ listener: HasRowListener<this>,
5252
5341
  mutator?: boolean,
5253
5342
  ): Id;
5254
5343
 
@@ -5357,7 +5446,7 @@ export interface Store {
5357
5446
  addRowListener(
5358
5447
  tableId: IdOrNull,
5359
5448
  rowId: IdOrNull,
5360
- listener: RowListener,
5449
+ listener: RowListener<this>,
5361
5450
  mutator?: boolean,
5362
5451
  ): Id;
5363
5452
 
@@ -5462,7 +5551,7 @@ export interface Store {
5462
5551
  addCellIdsListener(
5463
5552
  tableId: IdOrNull,
5464
5553
  rowId: IdOrNull,
5465
- listener: CellIdsListener,
5554
+ listener: CellIdsListener<this>,
5466
5555
  mutator?: boolean,
5467
5556
  ): Id;
5468
5557
 
@@ -5586,7 +5675,7 @@ export interface Store {
5586
5675
  tableId: IdOrNull,
5587
5676
  rowId: IdOrNull,
5588
5677
  cellId: IdOrNull,
5589
- listener: HasCellListener,
5678
+ listener: HasCellListener<this>,
5590
5679
  mutator?: boolean,
5591
5680
  ): Id;
5592
5681
 
@@ -5705,7 +5794,7 @@ export interface Store {
5705
5794
  tableId: IdOrNull,
5706
5795
  rowId: IdOrNull,
5707
5796
  cellId: IdOrNull,
5708
- listener: CellListener,
5797
+ listener: CellListener<this>,
5709
5798
  mutator?: boolean,
5710
5799
  ): Id;
5711
5800
 
@@ -5770,7 +5859,10 @@ export interface Store {
5770
5859
  * @category Listener
5771
5860
  * @since v4.4.0
5772
5861
  */
5773
- addHasValuesListener(listener: HasValuesListener, mutator?: boolean): Id;
5862
+ addHasValuesListener(
5863
+ listener: HasValuesListener<this>,
5864
+ mutator?: boolean,
5865
+ ): Id;
5774
5866
 
5775
5867
  /**
5776
5868
  * The addValuesListener method registers a listener function with the Store
@@ -5830,7 +5922,7 @@ export interface Store {
5830
5922
  * @category Listener
5831
5923
  * @since v3.0.0
5832
5924
  */
5833
- addValuesListener(listener: ValuesListener, mutator?: boolean): Id;
5925
+ addValuesListener(listener: ValuesListener<this>, mutator?: boolean): Id;
5834
5926
 
5835
5927
  /**
5836
5928
  * The addValueIdsListener method registers a listener function with the Store
@@ -5893,7 +5985,7 @@ export interface Store {
5893
5985
  * @category Listener
5894
5986
  * @since v3.0.0
5895
5987
  */
5896
- addValueIdsListener(listener: ValueIdsListener, mutator?: boolean): Id;
5988
+ addValueIdsListener(listener: ValueIdsListener<this>, mutator?: boolean): Id;
5897
5989
 
5898
5990
  /**
5899
5991
  * The addHasValueListener method registers a listener function with the Store
@@ -5986,7 +6078,7 @@ export interface Store {
5986
6078
  */
5987
6079
  addHasValueListener(
5988
6080
  valueId: IdOrNull,
5989
- listener: HasValueListener,
6081
+ listener: HasValueListener<this>,
5990
6082
  mutator?: boolean,
5991
6083
  ): Id;
5992
6084
 
@@ -6078,7 +6170,7 @@ export interface Store {
6078
6170
  */
6079
6171
  addValueListener(
6080
6172
  valueId: IdOrNull,
6081
- listener: ValueListener,
6173
+ listener: ValueListener<this>,
6082
6174
  mutator?: boolean,
6083
6175
  ): Id;
6084
6176
 
@@ -6308,7 +6400,7 @@ export interface Store {
6308
6400
  tableId: IdOrNull,
6309
6401
  rowId: IdOrNull,
6310
6402
  cellId: IdOrNull,
6311
- listener: InvalidCellListener,
6403
+ listener: InvalidCellListener<this>,
6312
6404
  mutator?: boolean,
6313
6405
  ): Id;
6314
6406
 
@@ -6483,7 +6575,7 @@ export interface Store {
6483
6575
  */
6484
6576
  addInvalidValueListener(
6485
6577
  valueId: IdOrNull,
6486
- listener: InvalidValueListener,
6578
+ listener: InvalidValueListener<this>,
6487
6579
  mutator?: boolean,
6488
6580
  ): Id;
6489
6581
 
@@ -6531,7 +6623,7 @@ export interface Store {
6531
6623
  * @category Listener
6532
6624
  * @since v3.2.0
6533
6625
  */
6534
- addStartTransactionListener(listener: TransactionListener): Id;
6626
+ addStartTransactionListener(listener: TransactionListener<this>): Id;
6535
6627
 
6536
6628
  /**
6537
6629
  * The addWillFinishTransactionListener method registers a listener function
@@ -6572,12 +6664,10 @@ export interface Store {
6572
6664
  * pets: {fido: {species: 'dog', color: 'brown'}},
6573
6665
  * })
6574
6666
  * .setValues({open: true, employees: 3});
6575
- * const listenerId = store.addWillFinishTransactionListener(
6576
- * (store, _, getTransactionLog) => {
6577
- * const {cellsTouched, valuesTouched} = getTransactionLog?.() ?? {};
6578
- * console.log(`Cells/Values touched: ${cellsTouched}/${valuesTouched}`);
6579
- * },
6580
- * );
6667
+ * const listenerId = store.addWillFinishTransactionListener((store) => {
6668
+ * const [cellsTouched, valuesTouched] = store.getTransactionLog() ?? {};
6669
+ * console.log(`Cells/Values touched: ${cellsTouched}/${valuesTouched}`);
6670
+ * });
6581
6671
  * const listenerId2 = store.addTablesListener(() =>
6582
6672
  * console.log('Tables changed'),
6583
6673
  * );
@@ -6619,7 +6709,7 @@ export interface Store {
6619
6709
  * // Transaction was rolled back.
6620
6710
  *
6621
6711
  * store.callListener(listenerId);
6622
- * // -> 'Cells/Values touched: undefined/undefined'
6712
+ * // -> 'Cells/Values touched: false/false'
6623
6713
  * // It is meaningless to call this listener directly.
6624
6714
  *
6625
6715
  * store
@@ -6630,7 +6720,7 @@ export interface Store {
6630
6720
  * @category Listener
6631
6721
  * @since v1.3.0
6632
6722
  */
6633
- addWillFinishTransactionListener(listener: TransactionListener): Id;
6723
+ addWillFinishTransactionListener(listener: TransactionListener<this>): Id;
6634
6724
 
6635
6725
  /**
6636
6726
  * The addDidFinishTransactionListener method registers a listener function
@@ -6670,12 +6760,10 @@ export interface Store {
6670
6760
  * pets: {fido: {species: 'dog', color: 'brown'}},
6671
6761
  * })
6672
6762
  * .setValues({open: true, employees: 3});
6673
- * const listenerId = store.addDidFinishTransactionListener(
6674
- * (store, _, getTransactionLog) => {
6675
- * const {cellsTouched, valuesTouched} = getTransactionLog?.() ?? {};
6676
- * console.log(`Cells/Values touched: ${cellsTouched}/${valuesTouched}`);
6677
- * },
6678
- * );
6763
+ * const listenerId = store.addDidFinishTransactionListener((store) => {
6764
+ * const [cellsTouched, valuesTouched] = store.getTransactionLog() ?? {};
6765
+ * console.log(`Cells/Values touched: ${cellsTouched}/${valuesTouched}`);
6766
+ * });
6679
6767
  * const listenerId2 = store.addTablesListener(() =>
6680
6768
  * console.log('Tables changed'),
6681
6769
  * );
@@ -6717,7 +6805,7 @@ export interface Store {
6717
6805
  * // Transaction was rolled back.
6718
6806
  *
6719
6807
  * store.callListener(listenerId);
6720
- * // -> 'Cells/Values touched: undefined/undefined'
6808
+ * // -> 'Cells/Values touched: false/false'
6721
6809
  * // It is meaningless to call this listener directly.
6722
6810
  *
6723
6811
  * store
@@ -6728,7 +6816,7 @@ export interface Store {
6728
6816
  * @category Listener
6729
6817
  * @since v1.3.0
6730
6818
  */
6731
- addDidFinishTransactionListener(listener: TransactionListener): Id;
6819
+ addDidFinishTransactionListener(listener: TransactionListener<this>): Id;
6732
6820
 
6733
6821
  /**
6734
6822
  * The callListener method provides a way for you to manually provoke a
@@ -6844,7 +6932,7 @@ export interface Store {
6844
6932
  * ```
6845
6933
  * @category Listener
6846
6934
  */
6847
- callListener(listenerId: Id): Store;
6935
+ callListener(listenerId: Id): this;
6848
6936
 
6849
6937
  /**
6850
6938
  * The delListener method removes a listener that was previously added to the
@@ -6876,7 +6964,7 @@ export interface Store {
6876
6964
  * ```
6877
6965
  * @category Listener
6878
6966
  */
6879
- delListener(listenerId: Id): Store;
6967
+ delListener(listenerId: Id): this;
6880
6968
 
6881
6969
  /**
6882
6970
  * The getListenerStats method provides a set of statistics about the