tinybase 5.0.0-beta.1 → 5.0.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (313) hide show
  1. package/lib/cjs/mergeable-store.cjs +1 -0
  2. package/lib/cjs/mergeable-store.cjs.gz +0 -0
  3. package/lib/cjs/persisters/persister-automerge.cjs +1 -1
  4. package/lib/cjs/persisters/persister-automerge.cjs.gz +0 -0
  5. package/lib/cjs/persisters/persister-browser.cjs +1 -1
  6. package/lib/cjs/persisters/persister-browser.cjs.gz +0 -0
  7. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  8. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  9. package/lib/cjs/persisters/persister-electric-sql.cjs +1 -1
  10. package/lib/cjs/persisters/persister-electric-sql.cjs.gz +0 -0
  11. package/lib/cjs/persisters/persister-expo-sqlite-next.cjs +1 -1
  12. package/lib/cjs/persisters/persister-expo-sqlite-next.cjs.gz +0 -0
  13. package/lib/cjs/persisters/persister-expo-sqlite.cjs +1 -1
  14. package/lib/cjs/persisters/persister-expo-sqlite.cjs.gz +0 -0
  15. package/lib/cjs/persisters/persister-file.cjs +1 -1
  16. package/lib/cjs/persisters/persister-file.cjs.gz +0 -0
  17. package/lib/cjs/persisters/persister-indexed-db.cjs +1 -1
  18. package/lib/cjs/persisters/persister-indexed-db.cjs.gz +0 -0
  19. package/lib/cjs/persisters/persister-partykit-client.cjs +1 -1
  20. package/lib/cjs/persisters/persister-partykit-client.cjs.gz +0 -0
  21. package/lib/cjs/persisters/persister-partykit-server.cjs +1 -1
  22. package/lib/cjs/persisters/persister-partykit-server.cjs.gz +0 -0
  23. package/lib/cjs/persisters/persister-remote.cjs +1 -1
  24. package/lib/cjs/persisters/persister-remote.cjs.gz +0 -0
  25. package/lib/cjs/persisters/persister-sqlite-wasm.cjs +1 -1
  26. package/lib/cjs/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  27. package/lib/cjs/persisters/persister-sqlite3.cjs +1 -1
  28. package/lib/cjs/persisters/persister-sqlite3.cjs.gz +0 -0
  29. package/lib/cjs/persisters/persister-yjs.cjs +1 -1
  30. package/lib/cjs/persisters/persister-yjs.cjs.gz +0 -0
  31. package/lib/cjs/persisters.cjs +1 -1
  32. package/lib/cjs/persisters.cjs.gz +0 -0
  33. package/lib/cjs/store.cjs +1 -1
  34. package/lib/cjs/store.cjs.gz +0 -0
  35. package/lib/cjs/tinybase.cjs +1 -1
  36. package/lib/cjs/tinybase.cjs.gz +0 -0
  37. package/lib/cjs/tools.cjs +1 -1
  38. package/lib/cjs/tools.cjs.gz +0 -0
  39. package/lib/cjs/ui-react-dom-debug.cjs +1 -1
  40. package/lib/cjs/ui-react-dom-debug.cjs.gz +0 -0
  41. package/lib/cjs/ui-react-dom.cjs +1 -1
  42. package/lib/cjs/ui-react-dom.cjs.gz +0 -0
  43. package/lib/cjs-es6/mergeable-store.cjs +1 -0
  44. package/lib/cjs-es6/mergeable-store.cjs.gz +0 -0
  45. package/lib/cjs-es6/persisters/persister-automerge.cjs +1 -1
  46. package/lib/cjs-es6/persisters/persister-automerge.cjs.gz +0 -0
  47. package/lib/cjs-es6/persisters/persister-browser.cjs +1 -1
  48. package/lib/cjs-es6/persisters/persister-browser.cjs.gz +0 -0
  49. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  50. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  51. package/lib/cjs-es6/persisters/persister-electric-sql.cjs +1 -1
  52. package/lib/cjs-es6/persisters/persister-electric-sql.cjs.gz +0 -0
  53. package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs +1 -1
  54. package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs.gz +0 -0
  55. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs +1 -1
  56. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs.gz +0 -0
  57. package/lib/cjs-es6/persisters/persister-file.cjs +1 -1
  58. package/lib/cjs-es6/persisters/persister-file.cjs.gz +0 -0
  59. package/lib/cjs-es6/persisters/persister-indexed-db.cjs +1 -1
  60. package/lib/cjs-es6/persisters/persister-indexed-db.cjs.gz +0 -0
  61. package/lib/cjs-es6/persisters/persister-partykit-client.cjs +1 -1
  62. package/lib/cjs-es6/persisters/persister-partykit-client.cjs.gz +0 -0
  63. package/lib/cjs-es6/persisters/persister-partykit-server.cjs +1 -1
  64. package/lib/cjs-es6/persisters/persister-partykit-server.cjs.gz +0 -0
  65. package/lib/cjs-es6/persisters/persister-remote.cjs +1 -1
  66. package/lib/cjs-es6/persisters/persister-remote.cjs.gz +0 -0
  67. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs +1 -1
  68. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  69. package/lib/cjs-es6/persisters/persister-sqlite3.cjs +1 -1
  70. package/lib/cjs-es6/persisters/persister-sqlite3.cjs.gz +0 -0
  71. package/lib/cjs-es6/persisters/persister-yjs.cjs +1 -1
  72. package/lib/cjs-es6/persisters/persister-yjs.cjs.gz +0 -0
  73. package/lib/cjs-es6/persisters.cjs +1 -1
  74. package/lib/cjs-es6/persisters.cjs.gz +0 -0
  75. package/lib/cjs-es6/store.cjs +1 -1
  76. package/lib/cjs-es6/store.cjs.gz +0 -0
  77. package/lib/cjs-es6/tinybase.cjs +1 -1
  78. package/lib/cjs-es6/tinybase.cjs.gz +0 -0
  79. package/lib/cjs-es6/tools.cjs +1 -1
  80. package/lib/cjs-es6/tools.cjs.gz +0 -0
  81. package/lib/cjs-es6/ui-react-dom-debug.cjs +1 -1
  82. package/lib/cjs-es6/ui-react-dom-debug.cjs.gz +0 -0
  83. package/lib/cjs-es6/ui-react-dom.cjs +1 -1
  84. package/lib/cjs-es6/ui-react-dom.cjs.gz +0 -0
  85. package/lib/debug/mergeable-store.js +1863 -0
  86. package/lib/debug/persisters/persister-automerge.js +54 -53
  87. package/lib/debug/persisters/persister-browser.js +28 -18
  88. package/lib/debug/persisters/persister-cr-sqlite-wasm.js +80 -57
  89. package/lib/debug/persisters/persister-electric-sql.js +80 -57
  90. package/lib/debug/persisters/persister-expo-sqlite-next.js +80 -57
  91. package/lib/debug/persisters/persister-expo-sqlite.js +80 -57
  92. package/lib/debug/persisters/persister-file.js +27 -18
  93. package/lib/debug/persisters/persister-indexed-db.js +34 -23
  94. package/lib/debug/persisters/persister-partykit-client.js +26 -23
  95. package/lib/debug/persisters/persister-partykit-server.js +11 -21
  96. package/lib/debug/persisters/persister-remote.js +28 -18
  97. package/lib/debug/persisters/persister-sqlite-wasm.js +80 -57
  98. package/lib/debug/persisters/persister-sqlite3.js +80 -57
  99. package/lib/debug/persisters/persister-yjs.js +50 -48
  100. package/lib/debug/persisters.js +27 -18
  101. package/lib/debug/queries.js +2 -2
  102. package/lib/debug/store.js +63 -71
  103. package/lib/debug/tinybase.js +354 -90
  104. package/lib/debug/tools.js +13 -15
  105. package/lib/debug/ui-react-dom.js +115 -119
  106. package/lib/es6/mergeable-store.js +1 -0
  107. package/lib/es6/mergeable-store.js.gz +0 -0
  108. package/lib/es6/persisters/persister-automerge.js +1 -1
  109. package/lib/es6/persisters/persister-automerge.js.gz +0 -0
  110. package/lib/es6/persisters/persister-browser.js +1 -1
  111. package/lib/es6/persisters/persister-browser.js.gz +0 -0
  112. package/lib/es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  113. package/lib/es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  114. package/lib/es6/persisters/persister-electric-sql.js +1 -1
  115. package/lib/es6/persisters/persister-electric-sql.js.gz +0 -0
  116. package/lib/es6/persisters/persister-expo-sqlite-next.js +1 -1
  117. package/lib/es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
  118. package/lib/es6/persisters/persister-expo-sqlite.js +1 -1
  119. package/lib/es6/persisters/persister-expo-sqlite.js.gz +0 -0
  120. package/lib/es6/persisters/persister-file.js +1 -1
  121. package/lib/es6/persisters/persister-file.js.gz +0 -0
  122. package/lib/es6/persisters/persister-indexed-db.js +1 -1
  123. package/lib/es6/persisters/persister-indexed-db.js.gz +0 -0
  124. package/lib/es6/persisters/persister-partykit-client.js +1 -1
  125. package/lib/es6/persisters/persister-partykit-client.js.gz +0 -0
  126. package/lib/es6/persisters/persister-partykit-server.js +1 -1
  127. package/lib/es6/persisters/persister-partykit-server.js.gz +0 -0
  128. package/lib/es6/persisters/persister-remote.js +1 -1
  129. package/lib/es6/persisters/persister-remote.js.gz +0 -0
  130. package/lib/es6/persisters/persister-sqlite-wasm.js +1 -1
  131. package/lib/es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  132. package/lib/es6/persisters/persister-sqlite3.js +1 -1
  133. package/lib/es6/persisters/persister-sqlite3.js.gz +0 -0
  134. package/lib/es6/persisters/persister-yjs.js +1 -1
  135. package/lib/es6/persisters/persister-yjs.js.gz +0 -0
  136. package/lib/es6/persisters.js +1 -1
  137. package/lib/es6/persisters.js.gz +0 -0
  138. package/lib/es6/store.js +1 -1
  139. package/lib/es6/store.js.gz +0 -0
  140. package/lib/es6/tinybase.js +1 -1
  141. package/lib/es6/tinybase.js.gz +0 -0
  142. package/lib/es6/tools.js +1 -1
  143. package/lib/es6/tools.js.gz +0 -0
  144. package/lib/es6/ui-react-dom-debug.js +1 -1
  145. package/lib/es6/ui-react-dom-debug.js.gz +0 -0
  146. package/lib/es6/ui-react-dom.js +1 -1
  147. package/lib/es6/ui-react-dom.js.gz +0 -0
  148. package/lib/mergeable-store.js +1 -0
  149. package/lib/mergeable-store.js.gz +0 -0
  150. package/lib/persisters/persister-automerge.js +1 -1
  151. package/lib/persisters/persister-automerge.js.gz +0 -0
  152. package/lib/persisters/persister-browser.js +1 -1
  153. package/lib/persisters/persister-browser.js.gz +0 -0
  154. package/lib/persisters/persister-cr-sqlite-wasm.js +1 -1
  155. package/lib/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  156. package/lib/persisters/persister-electric-sql.js +1 -1
  157. package/lib/persisters/persister-electric-sql.js.gz +0 -0
  158. package/lib/persisters/persister-expo-sqlite-next.js +1 -1
  159. package/lib/persisters/persister-expo-sqlite-next.js.gz +0 -0
  160. package/lib/persisters/persister-expo-sqlite.js +1 -1
  161. package/lib/persisters/persister-expo-sqlite.js.gz +0 -0
  162. package/lib/persisters/persister-file.js +1 -1
  163. package/lib/persisters/persister-file.js.gz +0 -0
  164. package/lib/persisters/persister-indexed-db.js +1 -1
  165. package/lib/persisters/persister-indexed-db.js.gz +0 -0
  166. package/lib/persisters/persister-partykit-client.js +1 -1
  167. package/lib/persisters/persister-partykit-client.js.gz +0 -0
  168. package/lib/persisters/persister-partykit-server.js +1 -1
  169. package/lib/persisters/persister-partykit-server.js.gz +0 -0
  170. package/lib/persisters/persister-remote.js +1 -1
  171. package/lib/persisters/persister-remote.js.gz +0 -0
  172. package/lib/persisters/persister-sqlite-wasm.js +1 -1
  173. package/lib/persisters/persister-sqlite-wasm.js.gz +0 -0
  174. package/lib/persisters/persister-sqlite3.js +1 -1
  175. package/lib/persisters/persister-sqlite3.js.gz +0 -0
  176. package/lib/persisters/persister-yjs.js +1 -1
  177. package/lib/persisters/persister-yjs.js.gz +0 -0
  178. package/lib/persisters.js +1 -1
  179. package/lib/persisters.js.gz +0 -0
  180. package/lib/store.js +1 -1
  181. package/lib/store.js.gz +0 -0
  182. package/lib/tinybase.js +1 -1
  183. package/lib/tinybase.js.gz +0 -0
  184. package/lib/tools.js +1 -1
  185. package/lib/tools.js.gz +0 -0
  186. package/lib/types/mergeable-store.d.ts +79 -0
  187. package/lib/types/persisters/persister-automerge.d.ts +8 -7
  188. package/lib/types/persisters/persister-browser.d.ts +2 -0
  189. package/lib/types/persisters/persister-cr-sqlite-wasm.d.ts +1 -0
  190. package/lib/types/persisters/persister-electric-sql.d.ts +1 -0
  191. package/lib/types/persisters/persister-expo-sqlite-next.d.ts +1 -0
  192. package/lib/types/persisters/persister-expo-sqlite.d.ts +1 -0
  193. package/lib/types/persisters/persister-file.d.ts +1 -0
  194. package/lib/types/persisters/persister-indexed-db.d.ts +1 -0
  195. package/lib/types/persisters/persister-partykit-client.d.ts +1 -0
  196. package/lib/types/persisters/persister-partykit-server.d.ts +12 -8
  197. package/lib/types/persisters/persister-remote.d.ts +1 -0
  198. package/lib/types/persisters/persister-sqlite-wasm.d.ts +1 -0
  199. package/lib/types/persisters/persister-sqlite3.d.ts +1 -0
  200. package/lib/types/persisters/persister-yjs.d.ts +1 -0
  201. package/lib/types/persisters.d.ts +50 -30
  202. package/lib/types/store.d.ts +241 -186
  203. package/lib/types/tinybase.d.ts +1 -0
  204. package/lib/types/tools.d.ts +2 -2
  205. package/lib/types/ui-react.d.ts +1 -0
  206. package/lib/types/with-schemas/internal/store.d.ts +4 -0
  207. package/lib/types/with-schemas/mergeable-store.d.ts +112 -0
  208. package/lib/types/with-schemas/persisters/persister-automerge.d.ts +8 -7
  209. package/lib/types/with-schemas/persisters/persister-browser.d.ts +2 -0
  210. package/lib/types/with-schemas/persisters/persister-cr-sqlite-wasm.d.ts +1 -0
  211. package/lib/types/with-schemas/persisters/persister-electric-sql.d.ts +1 -0
  212. package/lib/types/with-schemas/persisters/persister-expo-sqlite-next.d.ts +1 -0
  213. package/lib/types/with-schemas/persisters/persister-expo-sqlite.d.ts +1 -0
  214. package/lib/types/with-schemas/persisters/persister-file.d.ts +1 -0
  215. package/lib/types/with-schemas/persisters/persister-indexed-db.d.ts +1 -0
  216. package/lib/types/with-schemas/persisters/persister-partykit-client.d.ts +1 -0
  217. package/lib/types/with-schemas/persisters/persister-partykit-server.d.ts +15 -11
  218. package/lib/types/with-schemas/persisters/persister-remote.d.ts +1 -0
  219. package/lib/types/with-schemas/persisters/persister-sqlite-wasm.d.ts +1 -0
  220. package/lib/types/with-schemas/persisters/persister-sqlite3.d.ts +1 -0
  221. package/lib/types/with-schemas/persisters/persister-yjs.d.ts +1 -0
  222. package/lib/types/with-schemas/persisters.d.ts +81 -45
  223. package/lib/types/with-schemas/store.d.ts +364 -273
  224. package/lib/types/with-schemas/tinybase.d.ts +1 -0
  225. package/lib/types/with-schemas/tools.d.ts +2 -2
  226. package/lib/ui-react-dom.js +1 -1
  227. package/lib/ui-react-dom.js.gz +0 -0
  228. package/lib/umd/mergeable-store.js +1 -0
  229. package/lib/umd/mergeable-store.js.gz +0 -0
  230. package/lib/umd/persisters/persister-automerge.js +1 -1
  231. package/lib/umd/persisters/persister-automerge.js.gz +0 -0
  232. package/lib/umd/persisters/persister-browser.js +1 -1
  233. package/lib/umd/persisters/persister-browser.js.gz +0 -0
  234. package/lib/umd/persisters/persister-cr-sqlite-wasm.js +1 -1
  235. package/lib/umd/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  236. package/lib/umd/persisters/persister-electric-sql.js +1 -1
  237. package/lib/umd/persisters/persister-electric-sql.js.gz +0 -0
  238. package/lib/umd/persisters/persister-expo-sqlite-next.js +1 -1
  239. package/lib/umd/persisters/persister-expo-sqlite-next.js.gz +0 -0
  240. package/lib/umd/persisters/persister-expo-sqlite.js +1 -1
  241. package/lib/umd/persisters/persister-expo-sqlite.js.gz +0 -0
  242. package/lib/umd/persisters/persister-file.js +1 -1
  243. package/lib/umd/persisters/persister-file.js.gz +0 -0
  244. package/lib/umd/persisters/persister-indexed-db.js +1 -1
  245. package/lib/umd/persisters/persister-indexed-db.js.gz +0 -0
  246. package/lib/umd/persisters/persister-partykit-client.js +1 -1
  247. package/lib/umd/persisters/persister-partykit-client.js.gz +0 -0
  248. package/lib/umd/persisters/persister-partykit-server.js +1 -1
  249. package/lib/umd/persisters/persister-partykit-server.js.gz +0 -0
  250. package/lib/umd/persisters/persister-remote.js +1 -1
  251. package/lib/umd/persisters/persister-remote.js.gz +0 -0
  252. package/lib/umd/persisters/persister-sqlite-wasm.js +1 -1
  253. package/lib/umd/persisters/persister-sqlite-wasm.js.gz +0 -0
  254. package/lib/umd/persisters/persister-sqlite3.js +1 -1
  255. package/lib/umd/persisters/persister-sqlite3.js.gz +0 -0
  256. package/lib/umd/persisters/persister-yjs.js +1 -1
  257. package/lib/umd/persisters/persister-yjs.js.gz +0 -0
  258. package/lib/umd/persisters.js +1 -1
  259. package/lib/umd/persisters.js.gz +0 -0
  260. package/lib/umd/store.js +1 -1
  261. package/lib/umd/store.js.gz +0 -0
  262. package/lib/umd/tinybase.js +1 -1
  263. package/lib/umd/tinybase.js.gz +0 -0
  264. package/lib/umd/tools.js +1 -1
  265. package/lib/umd/tools.js.gz +0 -0
  266. package/lib/umd/ui-react-dom-debug.js +1 -1
  267. package/lib/umd/ui-react-dom-debug.js.gz +0 -0
  268. package/lib/umd/ui-react-dom.js +1 -1
  269. package/lib/umd/ui-react-dom.js.gz +0 -0
  270. package/lib/umd-es6/mergeable-store.js +1 -0
  271. package/lib/umd-es6/mergeable-store.js.gz +0 -0
  272. package/lib/umd-es6/persisters/persister-automerge.js +1 -1
  273. package/lib/umd-es6/persisters/persister-automerge.js.gz +0 -0
  274. package/lib/umd-es6/persisters/persister-browser.js +1 -1
  275. package/lib/umd-es6/persisters/persister-browser.js.gz +0 -0
  276. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  277. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  278. package/lib/umd-es6/persisters/persister-electric-sql.js +1 -1
  279. package/lib/umd-es6/persisters/persister-electric-sql.js.gz +0 -0
  280. package/lib/umd-es6/persisters/persister-expo-sqlite-next.js +1 -1
  281. package/lib/umd-es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
  282. package/lib/umd-es6/persisters/persister-expo-sqlite.js +1 -1
  283. package/lib/umd-es6/persisters/persister-expo-sqlite.js.gz +0 -0
  284. package/lib/umd-es6/persisters/persister-file.js +1 -1
  285. package/lib/umd-es6/persisters/persister-file.js.gz +0 -0
  286. package/lib/umd-es6/persisters/persister-indexed-db.js +1 -1
  287. package/lib/umd-es6/persisters/persister-indexed-db.js.gz +0 -0
  288. package/lib/umd-es6/persisters/persister-partykit-client.js +1 -1
  289. package/lib/umd-es6/persisters/persister-partykit-client.js.gz +0 -0
  290. package/lib/umd-es6/persisters/persister-partykit-server.js +1 -1
  291. package/lib/umd-es6/persisters/persister-partykit-server.js.gz +0 -0
  292. package/lib/umd-es6/persisters/persister-remote.js +1 -1
  293. package/lib/umd-es6/persisters/persister-remote.js.gz +0 -0
  294. package/lib/umd-es6/persisters/persister-sqlite-wasm.js +1 -1
  295. package/lib/umd-es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  296. package/lib/umd-es6/persisters/persister-sqlite3.js +1 -1
  297. package/lib/umd-es6/persisters/persister-sqlite3.js.gz +0 -0
  298. package/lib/umd-es6/persisters/persister-yjs.js +1 -1
  299. package/lib/umd-es6/persisters/persister-yjs.js.gz +0 -0
  300. package/lib/umd-es6/persisters.js +1 -1
  301. package/lib/umd-es6/persisters.js.gz +0 -0
  302. package/lib/umd-es6/store.js +1 -1
  303. package/lib/umd-es6/store.js.gz +0 -0
  304. package/lib/umd-es6/tinybase.js +1 -1
  305. package/lib/umd-es6/tinybase.js.gz +0 -0
  306. package/lib/umd-es6/tools.js +1 -1
  307. package/lib/umd-es6/tools.js.gz +0 -0
  308. package/lib/umd-es6/ui-react-dom-debug.js +1 -1
  309. package/lib/umd-es6/ui-react-dom-debug.js.gz +0 -0
  310. package/lib/umd-es6/ui-react-dom.js +1 -1
  311. package/lib/umd-es6/ui-react-dom.js.gz +0 -0
  312. package/package.json +39 -35
  313. package/readme.md +2 -2
@@ -11,6 +11,7 @@
11
11
  */
12
12
 
13
13
  import {Id, IdOrNull, Ids, Json} from './common.d';
14
+ import {StoreAlias} from './internal/store.d';
14
15
 
15
16
  /**
16
17
  * The TablesSchema type describes the tabular structure of a Store in terms of
@@ -155,6 +156,9 @@ export type OptionalSchemas = [OptionalTablesSchema, OptionalValuesSchema];
155
156
  */
156
157
  export type NoSchemas = [NoTablesSchema, NoValuesSchema];
157
158
 
159
+ // Content
160
+ export type Content = [Tables, Values];
161
+
158
162
  /**
159
163
  * The Tables type is the data structure representing all of the data in a
160
164
  * Store.
@@ -489,20 +493,13 @@ export type ChangedValueIds = {[valueId: Id]: IdAddedOrRemoved};
489
493
  * A DoRollback can be provided when calling the transaction method or the
490
494
  * finishTransaction method. See those methods for specific examples.
491
495
  *
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.
496
+ * Since v5.0, this function is called with the Store as a single argument. You
497
+ * can use the getTransactionChanges method and getTransactionLog method of the
498
+ * Store directly to decide whether to do the rollback.
499
+ * @param store A reference to the Store that is completing a transaction.
500
500
  * @category Callback
501
501
  */
502
- export type DoRollback = (
503
- getTransactionChanges: GetTransactionChanges,
504
- getTransactionLog: GetTransactionLog,
505
- ) => boolean;
502
+ export type DoRollback = (store: Store) => boolean;
506
503
 
507
504
  /**
508
505
  * The TransactionListener type describes a function that is used to listen to
@@ -512,21 +509,15 @@ export type DoRollback = (
512
509
  * addWillFinishTransactionListener and addDidFinishTransactionListener methods.
513
510
  * See those methods for specific examples.
514
511
  *
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.
512
+ * Since v5.0, this listener is called with no arguments other than the Store.
513
+ * You can use the getTransactionChanges method and getTransactionLog method of
514
+ * the Store directly to get information about the changes made within the
515
+ * transaction.
519
516
  * @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
517
  * @category Listener
525
518
  */
526
- export type TransactionListener = (
519
+ export type TransactionListener<Store extends StoreAlias = StoreAlias> = (
527
520
  store: Store,
528
- getTransactionChanges: GetTransactionChanges,
529
- getTransactionLog: GetTransactionLog,
530
521
  ) => void;
531
522
 
532
523
  /**
@@ -544,7 +535,10 @@ export type TransactionListener = (
544
535
  * @category Listener
545
536
  * @since v4.4.0
546
537
  */
547
- export type HasTablesListener = (store: Store, hasTables: boolean) => void;
538
+ export type HasTablesListener<Store extends StoreAlias = StoreAlias> = (
539
+ store: Store,
540
+ hasTables: boolean,
541
+ ) => void;
548
542
 
549
543
  /**
550
544
  * The TablesListener type describes a function that is used to listen to
@@ -565,7 +559,7 @@ export type HasTablesListener = (store: Store, hasTables: boolean) => void;
565
559
  * changes.
566
560
  * @category Listener
567
561
  */
568
- export type TablesListener = (
562
+ export type TablesListener<Store extends StoreAlias = StoreAlias> = (
569
563
  store: Store,
570
564
  getCellChange: GetCellChange | undefined,
571
565
  ) => void;
@@ -586,7 +580,7 @@ export type TablesListener = (
586
580
  * since v3.3.
587
581
  * @category Listener
588
582
  */
589
- export type TableIdsListener = (
583
+ export type TableIdsListener<Store extends StoreAlias = StoreAlias> = (
590
584
  store: Store,
591
585
  getIdChanges: GetIdChanges | undefined,
592
586
  ) => void;
@@ -608,7 +602,7 @@ export type TableIdsListener = (
608
602
  * @category Listener
609
603
  * @since v4.4.0
610
604
  */
611
- export type HasTableListener = (
605
+ export type HasTableListener<Store extends StoreAlias = StoreAlias> = (
612
606
  store: Store,
613
607
  tableId: Id,
614
608
  hasTable: boolean,
@@ -634,7 +628,7 @@ export type HasTableListener = (
634
628
  * changes.
635
629
  * @category Listener
636
630
  */
637
- export type TableListener = (
631
+ export type TableListener<Store extends StoreAlias = StoreAlias> = (
638
632
  store: Store,
639
633
  tableId: Id,
640
634
  getCellChange: GetCellChange | undefined,
@@ -656,7 +650,7 @@ export type TableListener = (
656
650
  * @category Listener
657
651
  * @since v3.3.0
658
652
  */
659
- export type TableCellIdsListener = (
653
+ export type TableCellIdsListener<Store extends StoreAlias = StoreAlias> = (
660
654
  store: Store,
661
655
  tableId: Id,
662
656
  getIdChanges: GetIdChanges | undefined,
@@ -680,7 +674,7 @@ export type TableCellIdsListener = (
680
674
  * @category Listener
681
675
  * @since v4.4.0
682
676
  */
683
- export type HasTableCellListener = (
677
+ export type HasTableCellListener<Store extends StoreAlias = StoreAlias> = (
684
678
  store: Store,
685
679
  tableId: Id,
686
680
  cellId: Id,
@@ -702,7 +696,7 @@ export type HasTableCellListener = (
702
696
  * @category Listener
703
697
  * @since v4.1.0
704
698
  */
705
- export type RowCountListener = (
699
+ export type RowCountListener<Store extends StoreAlias = StoreAlias> = (
706
700
  store: Store,
707
701
  tableId: Id,
708
702
  count: number,
@@ -726,7 +720,7 @@ export type RowCountListener = (
726
720
  * since v3.3.
727
721
  * @category Listener
728
722
  */
729
- export type RowIdsListener = (
723
+ export type RowIdsListener<Store extends StoreAlias = StoreAlias> = (
730
724
  store: Store,
731
725
  tableId: Id,
732
726
  getIdChanges: GetIdChanges | undefined,
@@ -755,7 +749,7 @@ export type RowIdsListener = (
755
749
  * @category Listener
756
750
  * @since v2.0.0
757
751
  */
758
- export type SortedRowIdsListener = (
752
+ export type SortedRowIdsListener<Store extends StoreAlias = StoreAlias> = (
759
753
  store: Store,
760
754
  tableId: Id,
761
755
  cellId: Id | undefined,
@@ -783,7 +777,7 @@ export type SortedRowIdsListener = (
783
777
  * @category Listener
784
778
  * @since v4.4.0
785
779
  */
786
- export type HasRowListener = (
780
+ export type HasRowListener<Store extends StoreAlias = StoreAlias> = (
787
781
  store: Store,
788
782
  tableId: Id,
789
783
  rowId: Id,
@@ -812,7 +806,7 @@ export type HasRowListener = (
812
806
  * changes.
813
807
  * @category Listener
814
808
  */
815
- export type RowListener = (
809
+ export type RowListener<Store extends StoreAlias = StoreAlias> = (
816
810
  store: Store,
817
811
  tableId: Id,
818
812
  rowId: Id,
@@ -838,7 +832,7 @@ export type RowListener = (
838
832
  * since v3.3.
839
833
  * @category Listener
840
834
  */
841
- export type CellIdsListener = (
835
+ export type CellIdsListener<Store extends StoreAlias = StoreAlias> = (
842
836
  store: Store,
843
837
  tableId: Id,
844
838
  rowId: Id,
@@ -864,7 +858,7 @@ export type CellIdsListener = (
864
858
  * @category Listener
865
859
  * @since v4.4.0
866
860
  */
867
- export type HasCellListener = (
861
+ export type HasCellListener<Store extends StoreAlias = StoreAlias> = (
868
862
  store: Store,
869
863
  tableId: Id,
870
864
  rowId: Id,
@@ -899,7 +893,7 @@ export type HasCellListener = (
899
893
  * changes.
900
894
  * @category Listener
901
895
  */
902
- export type CellListener = (
896
+ export type CellListener<Store extends StoreAlias = StoreAlias> = (
903
897
  store: Store,
904
898
  tableId: Id,
905
899
  rowId: Id,
@@ -924,7 +918,10 @@ export type CellListener = (
924
918
  * @category Listener
925
919
  * @since v4.4.0
926
920
  */
927
- export type HasValuesListener = (store: Store, hasValues: boolean) => void;
921
+ export type HasValuesListener<Store extends StoreAlias = StoreAlias> = (
922
+ store: Store,
923
+ hasValues: boolean,
924
+ ) => void;
928
925
 
929
926
  /**
930
927
  * The ValuesListener type describes a function that is used to listen to
@@ -945,7 +942,7 @@ export type HasValuesListener = (store: Store, hasValues: boolean) => void;
945
942
  * changes.
946
943
  * @category Listener
947
944
  */
948
- export type ValuesListener = (
945
+ export type ValuesListener<Store extends StoreAlias = StoreAlias> = (
949
946
  store: Store,
950
947
  getValueChange: GetValueChange | undefined,
951
948
  ) => void;
@@ -966,7 +963,7 @@ export type ValuesListener = (
966
963
  * since v3.3.
967
964
  * @category Listener
968
965
  */
969
- export type ValueIdsListener = (
966
+ export type ValueIdsListener<Store extends StoreAlias = StoreAlias> = (
970
967
  store: Store,
971
968
  getIdChanges: GetIdChanges | undefined,
972
969
  ) => void;
@@ -988,7 +985,7 @@ export type ValueIdsListener = (
988
985
  * @category Listener
989
986
  * @since v4.4.0
990
987
  */
991
- export type HasValueListener = (
988
+ export type HasValueListener<Store extends StoreAlias = StoreAlias> = (
992
989
  store: Store,
993
990
  valueId: Id,
994
991
  hasValue: boolean,
@@ -1019,7 +1016,7 @@ export type HasValueListener = (
1019
1016
  * @category Listener
1020
1017
  * @since v3.0.0
1021
1018
  */
1022
- export type ValueListener = (
1019
+ export type ValueListener<Store extends StoreAlias = StoreAlias> = (
1023
1020
  store: Store,
1024
1021
  valueId: Id,
1025
1022
  newValue: Value,
@@ -1048,7 +1045,7 @@ export type ValueListener = (
1048
1045
  * @category Listener
1049
1046
  * @since v1.1.0
1050
1047
  */
1051
- export type InvalidCellListener = (
1048
+ export type InvalidCellListener<Store extends StoreAlias = StoreAlias> = (
1052
1049
  store: Store,
1053
1050
  tableId: Id,
1054
1051
  rowId: Id,
@@ -1075,7 +1072,7 @@ export type InvalidCellListener = (
1075
1072
  * @category Listener
1076
1073
  * @since v3.0.0
1077
1074
  */
1078
- export type InvalidValueListener = (
1075
+ export type InvalidValueListener<Store extends StoreAlias = StoreAlias> = (
1079
1076
  store: Store,
1080
1077
  valueId: Id,
1081
1078
  invalidValues: any[],
@@ -1205,7 +1202,7 @@ export type ChangedCells = {
1205
1202
  * @category Transaction
1206
1203
  * @since v1.2.0
1207
1204
  */
1208
- export type ChangedCell = [CellOrUndefined, CellOrUndefined];
1205
+ export type ChangedCell = [oldCell: CellOrUndefined, newCell: CellOrUndefined];
1209
1206
 
1210
1207
  /**
1211
1208
  * The InvalidCells type describes the invalid Cell values that have been
@@ -1273,7 +1270,10 @@ export type ChangedValues = {
1273
1270
  * @category Transaction
1274
1271
  * @since v3.0.0
1275
1272
  */
1276
- export type ChangedValue = [ValueOrUndefined, ValueOrUndefined];
1273
+ export type ChangedValue = [
1274
+ oldValue: ValueOrUndefined,
1275
+ newValue: ValueOrUndefined,
1276
+ ];
1277
1277
 
1278
1278
  /**
1279
1279
  * The InvalidValues type describes the invalid Values that have been attempted
@@ -1293,8 +1293,8 @@ export type ChangedValue = [ValueOrUndefined, ValueOrUndefined];
1293
1293
  export type InvalidValues = {[valueId: Id]: any[]};
1294
1294
 
1295
1295
  /**
1296
- * The TransactionChanges type describes the net meaningful changes that were
1297
- * made to a Store during a transaction.
1296
+ * The Changes type describes the net meaningful changes that were made to a
1297
+ * Store during a transaction.
1298
1298
  *
1299
1299
  * This contains mostly equivalent information to a TransactionLog, but in a
1300
1300
  * form that can be more efficiently parsed and serialized (for example in the
@@ -1318,7 +1318,7 @@ export type InvalidValues = {[valueId: Id]: any[]};
1318
1318
  * has had a change. If the entry is null, the Value was deleted, otherwise it
1319
1319
  * will contain the new Value it was changed to during the transaction.
1320
1320
  * @example
1321
- * The following is a valid TransactionChanges array that conveys the following:
1321
+ * The following is a valid Changes array that conveys the following:
1322
1322
  * ```json
1323
1323
  * [
1324
1324
  * { // changes to tabular data in the Store
@@ -1337,28 +1337,20 @@ export type InvalidValues = {[valueId: Id]: any[]};
1337
1337
  * @category Transaction
1338
1338
  * @since v4.0.0
1339
1339
  */
1340
- export type TransactionChanges = [
1341
- {[tableId: Id]: {[rowId: Id]: {[cellId: Id]: Cell | null} | null} | null},
1342
- {[valueId: Id]: Value | null},
1340
+ export type Changes = [
1341
+ changedTables: {
1342
+ [tableId: Id]:
1343
+ | {[rowId: Id]: {[cellId: Id]: CellOrUndefined} | undefined}
1344
+ | undefined;
1345
+ },
1346
+ changedValues: {[valueId: Id]: ValueOrUndefined},
1343
1347
  ];
1344
1348
 
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
1349
  /**
1358
1350
  * The TransactionLog type describes the changes that were made to a Store
1359
1351
  * during a transaction in detail.
1360
1352
  *
1361
- * This contains equivalent information to a TransactionChanges object, but also
1353
+ * This contains equivalent information to a Changes object, but also
1362
1354
  * information about what the previous state of the Store was. The changedCells
1363
1355
  * and changedValues entries contain information about all changes to those
1364
1356
  * parts of the Store, with their before and after values, for example.
@@ -1374,34 +1366,25 @@ export type GetTransactionChanges = () => TransactionChanges;
1374
1366
  * of `cellsTouched` and `valuesTouched` in the listener will be `false` because
1375
1367
  * all changes have been reverted.
1376
1368
  *
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.
1369
+ * In v5.0, this type changed from an object to an array, but still contains the
1370
+ * same values.
1397
1371
  *
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.
1372
+ * See the documentation for the types of the inner objects for other details.
1401
1373
  * @category Transaction
1402
1374
  * @since v4.0.0
1403
1375
  */
1404
- export type GetTransactionLog = () => TransactionLog;
1376
+ export type TransactionLog = [
1377
+ cellsTouched: boolean,
1378
+ valuesTouched: boolean,
1379
+ changedCells: ChangedCells,
1380
+ invalidCells: InvalidCells,
1381
+ changedValues: ChangedValues,
1382
+ invalidValues: InvalidValues,
1383
+ changedTableIds: ChangedTableIds,
1384
+ changedRowIds: ChangedRowIds,
1385
+ changedCellIds: ChangedCellIds,
1386
+ changedValueIds: ChangedValueIds,
1387
+ ];
1405
1388
 
1406
1389
  /**
1407
1390
  * The StoreListenerStats type describes the number of listeners registered with
@@ -1736,7 +1719,7 @@ export interface Store {
1736
1719
  * @category Getter
1737
1720
  * @since v4.0.0
1738
1721
  */
1739
- getContent(): [Tables, Values];
1722
+ getContent(): Content;
1740
1723
 
1741
1724
  /**
1742
1725
  * The getTables method returns a Tables object containing the entire tabular
@@ -2657,7 +2640,7 @@ export interface Store {
2657
2640
  * @category Setter
2658
2641
  * @since v4.0.0
2659
2642
  */
2660
- setContent([tables, values]: [Tables, Values]): Store;
2643
+ setContent(content: Content): this;
2661
2644
 
2662
2645
  /**
2663
2646
  * The setTables method takes an object and sets the entire tabular data of
@@ -2705,7 +2688,7 @@ export interface Store {
2705
2688
  * ```
2706
2689
  * @category Setter
2707
2690
  */
2708
- setTables(tables: Tables): Store;
2691
+ setTables(tables: Tables): this;
2709
2692
 
2710
2693
  /**
2711
2694
  * The setTable method takes an object and sets the entire data of a single
@@ -2755,7 +2738,7 @@ export interface Store {
2755
2738
  * ```
2756
2739
  * @category Setter
2757
2740
  */
2758
- setTable(tableId: Id, table: Table): Store;
2741
+ setTable(tableId: Id, table: Table): this;
2759
2742
 
2760
2743
  /**
2761
2744
  * The setRow method takes an object and sets the entire data of a single Row
@@ -2804,7 +2787,7 @@ export interface Store {
2804
2787
  * ```
2805
2788
  * @category Setter
2806
2789
  */
2807
- setRow(tableId: Id, rowId: Id, row: Row): Store;
2790
+ setRow(tableId: Id, rowId: Id, row: Row): this;
2808
2791
 
2809
2792
  /**
2810
2793
  * The addRow method takes an object and creates a new Row in the Store,
@@ -2916,7 +2899,7 @@ export interface Store {
2916
2899
  * ```
2917
2900
  * @category Setter
2918
2901
  */
2919
- setPartialRow(tableId: Id, rowId: Id, partialRow: Row): Store;
2902
+ setPartialRow(tableId: Id, rowId: Id, partialRow: Row): this;
2920
2903
 
2921
2904
  /**
2922
2905
  * The setCell method sets the value of a single Cell in the Store.
@@ -2973,7 +2956,7 @@ export interface Store {
2973
2956
  * ```
2974
2957
  * @category Setter
2975
2958
  */
2976
- setCell(tableId: Id, rowId: Id, cellId: Id, cell: Cell | MapCell): Store;
2959
+ setCell(tableId: Id, rowId: Id, cellId: Id, cell: Cell | MapCell): this;
2977
2960
 
2978
2961
  /**
2979
2962
  * The setValues method takes an object and sets all the Values in the Store.
@@ -3020,7 +3003,7 @@ export interface Store {
3020
3003
  * @category Setter
3021
3004
  * @since v3.0.0
3022
3005
  */
3023
- setValues(values: Values): Store;
3006
+ setValues(values: Values): this;
3024
3007
 
3025
3008
  /**
3026
3009
  * The setPartialValues method takes an object and sets its Values in the
@@ -3069,7 +3052,7 @@ export interface Store {
3069
3052
  * @category Setter
3070
3053
  * @since v3.0.0
3071
3054
  */
3072
- setPartialValues(partialValues: Values): Store;
3055
+ setPartialValues(partialValues: Values): this;
3073
3056
 
3074
3057
  /**
3075
3058
  * The setValue method sets a single keyed Value in the Store.
@@ -3122,28 +3105,29 @@ export interface Store {
3122
3105
  * @category Setter
3123
3106
  * @since v3.0.0
3124
3107
  */
3125
- setValue(valueId: Id, value: Value | MapValue): Store;
3108
+ setValue(valueId: Id, value: Value | MapValue): this;
3126
3109
 
3127
3110
  /**
3128
- * The setTransactionChanges method applies a set of TransactionChanges to the
3129
- * Store.
3111
+ * The applyChanges method applies a set of Changes to the Store.
3130
3112
  *
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.
3113
+ * This method will take a Changes object (which is available at the end of a
3114
+ * transaction) and apply it to a Store. The most likely need to do this is to
3115
+ * take the changes made during the transaction of one Store, and apply it to
3116
+ * the content of _another_ Store - such as when persisting and synchronizing
3117
+ * data.
3136
3118
  *
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.
3119
+ * Any part of the provided Changes object are invalid (either because of its
3120
+ * type, or because it does not match the schemas associated with the Store)
3121
+ * will be ignored silently.
3140
3122
  *
3141
3123
  * The method returns a reference to the Store so that subsequent operations
3142
3124
  * can be chained in a fluent style.
3143
- * @param transactionChanges The TransactionChanges to apply to the Store.
3125
+ *
3126
+ * Prior to v5.0, this method was named `setTransactionChanges`.
3127
+ * @param changes The Changes to apply to the Store.
3144
3128
  * @returns A reference to the Store.
3145
3129
  * @example
3146
- * This example applies a TransactionChanges object that sets a Cell and
3130
+ * This example applies a Changes object that sets a Cell and
3147
3131
  * removes a Value.
3148
3132
  *
3149
3133
  * ```js
@@ -3151,19 +3135,16 @@ export interface Store {
3151
3135
  * .setTables({pets: {fido: {species: 'dog', color: 'brown'}}})
3152
3136
  * .setValues({open: true});
3153
3137
  *
3154
- * store.setTransactionChanges([
3155
- * {pets: {fido: {color: 'black'}}},
3156
- * {open: null},
3157
- * ]);
3138
+ * store.applyChanges([{pets: {fido: {color: 'black'}}}, {open: null}]);
3158
3139
  * console.log(store.getTables());
3159
3140
  * // -> {pets: {fido: {species: 'dog', color: 'black'}}}
3160
3141
  * console.log(store.getValues());
3161
3142
  * // -> {}
3162
3143
  * ```
3163
3144
  * @category Setter
3164
- * @since v4.0.0
3145
+ * @since v5.0.0
3165
3146
  */
3166
- setTransactionChanges(transactionChanges: TransactionChanges): Store;
3147
+ applyChanges(changes: Changes): this;
3167
3148
 
3168
3149
  /**
3169
3150
  * The setTablesJson method takes a string serialization of all of the Tables
@@ -3197,7 +3178,7 @@ export interface Store {
3197
3178
  * @category Setter
3198
3179
  * @since v3.0.0
3199
3180
  */
3200
- setTablesJson(tablesJson: Json): Store;
3181
+ setTablesJson(tablesJson: Json): this;
3201
3182
 
3202
3183
  /**
3203
3184
  * The setValuesJson method takes a string serialization of all of the Values
@@ -3231,7 +3212,7 @@ export interface Store {
3231
3212
  * @category Setter
3232
3213
  * @since v3.0.0
3233
3214
  */
3234
- setValuesJson(valuesJson: Json): Store;
3215
+ setValuesJson(valuesJson: Json): this;
3235
3216
 
3236
3217
  /**
3237
3218
  * The setJson method takes a string serialization of all of the Tables and
@@ -3289,7 +3270,7 @@ export interface Store {
3289
3270
  * ```
3290
3271
  * @category Setter
3291
3272
  */
3292
- setJson(tablesAndValuesJson: Json): Store;
3273
+ setJson(tablesAndValuesJson: Json): this;
3293
3274
 
3294
3275
  /**
3295
3276
  * The setTablesSchema method lets you specify the TablesSchema of the tabular
@@ -3321,7 +3302,7 @@ export interface Store {
3321
3302
  * @category Setter
3322
3303
  * @since v3.0.0
3323
3304
  */
3324
- setTablesSchema(tablesSchema: TablesSchema): Store;
3305
+ setTablesSchema(tablesSchema: TablesSchema): this;
3325
3306
 
3326
3307
  /**
3327
3308
  * The setValuesSchema method lets you specify the ValuesSchema of the keyed
@@ -3350,7 +3331,7 @@ export interface Store {
3350
3331
  * @category Setter
3351
3332
  * @since v3.0.0
3352
3333
  */
3353
- setValuesSchema(valuesSchema: ValuesSchema): Store;
3334
+ setValuesSchema(valuesSchema: ValuesSchema): this;
3354
3335
 
3355
3336
  /**
3356
3337
  * The setSchema method lets you specify the TablesSchema and ValuesSchema of
@@ -3408,7 +3389,7 @@ export interface Store {
3408
3389
  * ```
3409
3390
  * @category Setter
3410
3391
  */
3411
- setSchema(tablesSchema: TablesSchema, valuesSchema?: ValuesSchema): Store;
3392
+ setSchema(tablesSchema: TablesSchema, valuesSchema?: ValuesSchema): this;
3412
3393
 
3413
3394
  /**
3414
3395
  * The delTables method lets you remove all of the data in a Store.
@@ -3425,7 +3406,7 @@ export interface Store {
3425
3406
  * ```
3426
3407
  * @category Deleter
3427
3408
  */
3428
- delTables(): Store;
3409
+ delTables(): this;
3429
3410
 
3430
3411
  /**
3431
3412
  * The delTable method lets you remove a single Table from the Store.
@@ -3446,7 +3427,7 @@ export interface Store {
3446
3427
  * ```
3447
3428
  * @category Deleter
3448
3429
  */
3449
- delTable(tableId: Id): Store;
3430
+ delTable(tableId: Id): this;
3450
3431
 
3451
3432
  /**
3452
3433
  * The delRow method lets you remove a single Row from a Table.
@@ -3469,7 +3450,7 @@ export interface Store {
3469
3450
  * ```
3470
3451
  * @category Deleter
3471
3452
  */
3472
- delRow(tableId: Id, rowId: Id): Store;
3453
+ delRow(tableId: Id, rowId: Id): this;
3473
3454
 
3474
3455
  /**
3475
3456
  * The delCell method lets you remove a single Cell from a Row.
@@ -3552,7 +3533,7 @@ export interface Store {
3552
3533
  * ```
3553
3534
  * @category Deleter
3554
3535
  */
3555
- delCell(tableId: Id, rowId: Id, cellId: Id, forceDel?: boolean): Store;
3536
+ delCell(tableId: Id, rowId: Id, cellId: Id, forceDel?: boolean): this;
3556
3537
 
3557
3538
  /**
3558
3539
  * The delValues method lets you remove all the Values from a Store.
@@ -3590,7 +3571,7 @@ export interface Store {
3590
3571
  * @category Deleter
3591
3572
  * @since v3.0.0
3592
3573
  */
3593
- delValues(): Store;
3574
+ delValues(): this;
3594
3575
 
3595
3576
  /**
3596
3577
  * The delValue method lets you remove a single Value from a Store.
@@ -3629,7 +3610,7 @@ export interface Store {
3629
3610
  * @category Deleter
3630
3611
  * @since v3.0.0
3631
3612
  */
3632
- delValue(valueId: Id): Store;
3613
+ delValue(valueId: Id): this;
3633
3614
 
3634
3615
  /**
3635
3616
  * The delTablesSchema method lets you remove the TablesSchema of the Store.
@@ -3647,7 +3628,7 @@ export interface Store {
3647
3628
  * ```
3648
3629
  * @category Deleter
3649
3630
  */
3650
- delTablesSchema(): Store;
3631
+ delTablesSchema(): this;
3651
3632
 
3652
3633
  /**
3653
3634
  * The delValuesSchema method lets you remove the ValuesSchema of the Store.
@@ -3666,7 +3647,7 @@ export interface Store {
3666
3647
  * @category Deleter
3667
3648
  * @since v3.0.0
3668
3649
  */
3669
- delValuesSchema(): Store;
3650
+ delValuesSchema(): this;
3670
3651
 
3671
3652
  /**
3672
3653
  * The delSchema method lets you remove both the TablesSchema and ValuesSchema
@@ -3692,7 +3673,7 @@ export interface Store {
3692
3673
  * @category Deleter
3693
3674
  * @since v3.0.0
3694
3675
  */
3695
- delSchema(): Store;
3676
+ delSchema(): this;
3696
3677
 
3697
3678
  /**
3698
3679
  * The transaction method takes a function that makes multiple mutations to
@@ -3718,10 +3699,7 @@ export interface Store {
3718
3699
  *
3719
3700
  * The second, optional parameter, `doRollback` is a DoRollback callback that
3720
3701
  * 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.
3702
+ * satisfaction. See the DoRollback documentation for more details.
3725
3703
  * @param actions The function to be executed as a transaction.
3726
3704
  * @param doRollback An optional callback that should return `true` if you
3727
3705
  * want to rollback the transaction at the end. Since v1.2.
@@ -3797,9 +3775,9 @@ export interface Store {
3797
3775
  * .setCell('pets', 'fido', 'info', {sold: null})
3798
3776
  * .setValue('open', false)
3799
3777
  * .setValue('employees', ['alice', 'bob']),
3800
- * (_, getTransactionLog) => {
3801
- * const {changedCells, invalidCells, changedValues, invalidValues} =
3802
- * getTransactionLog();
3778
+ * () => {
3779
+ * const [, , changedCells, invalidCells, changedValues, invalidValues] =
3780
+ * store.getTransactionLog();
3803
3781
  * console.log(store.getTables());
3804
3782
  * console.log(changedCells);
3805
3783
  * console.log(invalidCells);
@@ -3871,7 +3849,82 @@ export interface Store {
3871
3849
  * @category Transaction
3872
3850
  * @since v1.3.0
3873
3851
  */
3874
- startTransaction(): Store;
3852
+ startTransaction(): this;
3853
+
3854
+ /**
3855
+ * The getTransactionChanges method returns the net meaningful changes that
3856
+ * have been made to a Store during a transaction.
3857
+ *
3858
+ * This is useful for deciding whether to rollback a transaction, for example.
3859
+ * The returned object is only meaningful if the method is called when the
3860
+ * Store is in a transaction - such as in a TransactionListener.
3861
+ * @example
3862
+ * This example makes changes to the Store. At the end of the transaction,
3863
+ * detail about what changed is enumerated.
3864
+ *
3865
+ * ```js
3866
+ * const store = createStore()
3867
+ * .setTables({pets: {fido: {species: 'dog', color: 'brown'}}})
3868
+ * .setValues({open: true});
3869
+ *
3870
+ * store
3871
+ * .startTransaction()
3872
+ * .setCell('pets', 'fido', 'color', 'black')
3873
+ * .setValue('open', false)
3874
+ * .finishTransaction(() => {
3875
+ * const [changedCells, changedValues] = store.getTransactionChanges();
3876
+ * console.log(changedCells);
3877
+ * console.log(changedValues);
3878
+ * });
3879
+ * // -> {pets: {fido: {color: 'black'}}}
3880
+ * // -> {open: false}
3881
+ * ```
3882
+ * @category Transaction
3883
+ * @since v5.0.0
3884
+ */
3885
+ getTransactionChanges(): Changes;
3886
+
3887
+ /**
3888
+ * The getTransactionLog method returns the changes that were made to a Store
3889
+ * during a transaction in more detail, including invalid changes, and what
3890
+ * previous values were.
3891
+ *
3892
+ * This is useful for deciding whether to rollback a transaction, for example.
3893
+ * The returned object is only meaningful if the method is called when the
3894
+ * Store is in a transaction - such as in a TransactionListener.
3895
+ * @example
3896
+ * This example makes changes to the Store. At the end of the transaction,
3897
+ * detail about what changed is enumerated.
3898
+ *
3899
+ * ```js
3900
+ * const store = createStore()
3901
+ * .setTables({pets: {fido: {species: 'dog', color: 'brown'}}})
3902
+ * .setValues({open: true});
3903
+ *
3904
+ * store
3905
+ * .startTransaction()
3906
+ * .setCell('pets', 'fido', 'color', 'black')
3907
+ * .setCell('pets', 'fido', 'eyes', ['left', 'right'])
3908
+ * .setCell('pets', 'fido', 'info', {sold: null})
3909
+ * .setValue('open', false)
3910
+ * .setValue('employees', ['alice', 'bob'])
3911
+ * .finishTransaction(() => {
3912
+ * const [, , changedCells, invalidCells, changedValues, invalidValues] =
3913
+ * store.getTransactionLog();
3914
+ * console.log(changedCells);
3915
+ * console.log(invalidCells);
3916
+ * console.log(changedValues);
3917
+ * console.log(invalidValues);
3918
+ * });
3919
+ * // -> {pets: {fido: {color: ['brown', 'black']}}}
3920
+ * // -> {pets: {fido: {eyes: [['left', 'right']], info: [{sold: null}]}}}
3921
+ * // -> {open: [true, false]}
3922
+ * // -> {employees: [['alice', 'bob']]}
3923
+ * ```
3924
+ * @category Transaction
3925
+ * @since v5.0.0
3926
+ */
3927
+ getTransactionLog(): TransactionLog;
3875
3928
 
3876
3929
  /**
3877
3930
  * The finishTransaction method allows you to explicitly finish a transaction
@@ -3944,9 +3997,9 @@ export interface Store {
3944
3997
  * .setCell('pets', 'fido', 'info', {sold: null})
3945
3998
  * .setValue('open', false)
3946
3999
  * .setValue('employees', ['alice', 'bob'])
3947
- * .finishTransaction((_, getTransactionLog) => {
3948
- * const {changedCells, invalidCells, changedValues, invalidValues} =
3949
- * getTransactionLog();
4000
+ * .finishTransaction(() => {
4001
+ * const [, , changedCells, invalidCells, changedValues, invalidValues] =
4002
+ * store.getTransactionLog();
3950
4003
  * console.log(store.getTables());
3951
4004
  * console.log(changedCells);
3952
4005
  * console.log(invalidCells);
@@ -3968,7 +4021,7 @@ export interface Store {
3968
4021
  * @category Transaction
3969
4022
  * @since v1.3.0
3970
4023
  */
3971
- finishTransaction(doRollback?: DoRollback): Store;
4024
+ finishTransaction(doRollback?: DoRollback): this;
3972
4025
 
3973
4026
  /**
3974
4027
  * The forEachTable method takes a function that it will then call for each
@@ -4179,7 +4232,10 @@ export interface Store {
4179
4232
  * @category Listener
4180
4233
  * @since v4.4.0
4181
4234
  */
4182
- addHasTablesListener(listener: HasTablesListener, mutator?: boolean): Id;
4235
+ addHasTablesListener(
4236
+ listener: HasTablesListener<this>,
4237
+ mutator?: boolean,
4238
+ ): Id;
4183
4239
 
4184
4240
  /**
4185
4241
  * The addTablesListener method registers a listener function with the Store
@@ -4242,7 +4298,7 @@ export interface Store {
4242
4298
  * ```
4243
4299
  * @category Listener
4244
4300
  */
4245
- addTablesListener(listener: TablesListener, mutator?: boolean): Id;
4301
+ addTablesListener(listener: TablesListener<this>, mutator?: boolean): Id;
4246
4302
 
4247
4303
  /**
4248
4304
  * The addTableIdsListener method registers a listener function with the Store
@@ -4304,7 +4360,7 @@ export interface Store {
4304
4360
  * ```
4305
4361
  * @category Listener
4306
4362
  */
4307
- addTableIdsListener(listener: TableIdsListener, mutator?: boolean): Id;
4363
+ addTableIdsListener(listener: TableIdsListener<this>, mutator?: boolean): Id;
4308
4364
 
4309
4365
  /**
4310
4366
  * The addHasTableListener method registers a listener function with the Store
@@ -4403,7 +4459,7 @@ export interface Store {
4403
4459
  */
4404
4460
  addHasTableListener(
4405
4461
  tableId: IdOrNull,
4406
- listener: HasTableListener,
4462
+ listener: HasTableListener<this>,
4407
4463
  mutator?: boolean,
4408
4464
  ): Id;
4409
4465
 
@@ -4499,7 +4555,7 @@ export interface Store {
4499
4555
  */
4500
4556
  addTableListener(
4501
4557
  tableId: IdOrNull,
4502
- listener: TableListener,
4558
+ listener: TableListener<this>,
4503
4559
  mutator?: boolean,
4504
4560
  ): Id;
4505
4561
 
@@ -4603,7 +4659,7 @@ export interface Store {
4603
4659
  */
4604
4660
  addTableCellIdsListener(
4605
4661
  tableId: IdOrNull,
4606
- listener: TableCellIdsListener,
4662
+ listener: TableCellIdsListener<this>,
4607
4663
  mutator?: boolean,
4608
4664
  ): Id;
4609
4665
 
@@ -4722,7 +4778,7 @@ export interface Store {
4722
4778
  addHasTableCellListener(
4723
4779
  tableId: IdOrNull,
4724
4780
  cellId: IdOrNull,
4725
- listener: HasTableCellListener,
4781
+ listener: HasTableCellListener<this>,
4726
4782
  mutator?: boolean,
4727
4783
  ): Id;
4728
4784
 
@@ -4815,7 +4871,7 @@ export interface Store {
4815
4871
  */
4816
4872
  addRowCountListener(
4817
4873
  tableId: IdOrNull,
4818
- listener: RowCountListener,
4874
+ listener: RowCountListener<this>,
4819
4875
  mutator?: boolean,
4820
4876
  ): Id;
4821
4877
 
@@ -4906,7 +4962,7 @@ export interface Store {
4906
4962
  */
4907
4963
  addRowIdsListener(
4908
4964
  tableId: IdOrNull,
4909
- listener: RowIdsListener,
4965
+ listener: RowIdsListener<this>,
4910
4966
  mutator?: boolean,
4911
4967
  ): Id;
4912
4968
 
@@ -5131,7 +5187,7 @@ export interface Store {
5131
5187
  descending: boolean,
5132
5188
  offset: number,
5133
5189
  limit: number | undefined,
5134
- listener: SortedRowIdsListener,
5190
+ listener: SortedRowIdsListener<this>,
5135
5191
  mutator?: boolean,
5136
5192
  ): Id;
5137
5193
 
@@ -5248,7 +5304,7 @@ export interface Store {
5248
5304
  addHasRowListener(
5249
5305
  tableId: IdOrNull,
5250
5306
  rowId: IdOrNull,
5251
- listener: HasRowListener,
5307
+ listener: HasRowListener<this>,
5252
5308
  mutator?: boolean,
5253
5309
  ): Id;
5254
5310
 
@@ -5357,7 +5413,7 @@ export interface Store {
5357
5413
  addRowListener(
5358
5414
  tableId: IdOrNull,
5359
5415
  rowId: IdOrNull,
5360
- listener: RowListener,
5416
+ listener: RowListener<this>,
5361
5417
  mutator?: boolean,
5362
5418
  ): Id;
5363
5419
 
@@ -5462,7 +5518,7 @@ export interface Store {
5462
5518
  addCellIdsListener(
5463
5519
  tableId: IdOrNull,
5464
5520
  rowId: IdOrNull,
5465
- listener: CellIdsListener,
5521
+ listener: CellIdsListener<this>,
5466
5522
  mutator?: boolean,
5467
5523
  ): Id;
5468
5524
 
@@ -5586,7 +5642,7 @@ export interface Store {
5586
5642
  tableId: IdOrNull,
5587
5643
  rowId: IdOrNull,
5588
5644
  cellId: IdOrNull,
5589
- listener: HasCellListener,
5645
+ listener: HasCellListener<this>,
5590
5646
  mutator?: boolean,
5591
5647
  ): Id;
5592
5648
 
@@ -5705,7 +5761,7 @@ export interface Store {
5705
5761
  tableId: IdOrNull,
5706
5762
  rowId: IdOrNull,
5707
5763
  cellId: IdOrNull,
5708
- listener: CellListener,
5764
+ listener: CellListener<this>,
5709
5765
  mutator?: boolean,
5710
5766
  ): Id;
5711
5767
 
@@ -5770,7 +5826,10 @@ export interface Store {
5770
5826
  * @category Listener
5771
5827
  * @since v4.4.0
5772
5828
  */
5773
- addHasValuesListener(listener: HasValuesListener, mutator?: boolean): Id;
5829
+ addHasValuesListener(
5830
+ listener: HasValuesListener<this>,
5831
+ mutator?: boolean,
5832
+ ): Id;
5774
5833
 
5775
5834
  /**
5776
5835
  * The addValuesListener method registers a listener function with the Store
@@ -5830,7 +5889,7 @@ export interface Store {
5830
5889
  * @category Listener
5831
5890
  * @since v3.0.0
5832
5891
  */
5833
- addValuesListener(listener: ValuesListener, mutator?: boolean): Id;
5892
+ addValuesListener(listener: ValuesListener<this>, mutator?: boolean): Id;
5834
5893
 
5835
5894
  /**
5836
5895
  * The addValueIdsListener method registers a listener function with the Store
@@ -5893,7 +5952,7 @@ export interface Store {
5893
5952
  * @category Listener
5894
5953
  * @since v3.0.0
5895
5954
  */
5896
- addValueIdsListener(listener: ValueIdsListener, mutator?: boolean): Id;
5955
+ addValueIdsListener(listener: ValueIdsListener<this>, mutator?: boolean): Id;
5897
5956
 
5898
5957
  /**
5899
5958
  * The addHasValueListener method registers a listener function with the Store
@@ -5986,7 +6045,7 @@ export interface Store {
5986
6045
  */
5987
6046
  addHasValueListener(
5988
6047
  valueId: IdOrNull,
5989
- listener: HasValueListener,
6048
+ listener: HasValueListener<this>,
5990
6049
  mutator?: boolean,
5991
6050
  ): Id;
5992
6051
 
@@ -6078,7 +6137,7 @@ export interface Store {
6078
6137
  */
6079
6138
  addValueListener(
6080
6139
  valueId: IdOrNull,
6081
- listener: ValueListener,
6140
+ listener: ValueListener<this>,
6082
6141
  mutator?: boolean,
6083
6142
  ): Id;
6084
6143
 
@@ -6308,7 +6367,7 @@ export interface Store {
6308
6367
  tableId: IdOrNull,
6309
6368
  rowId: IdOrNull,
6310
6369
  cellId: IdOrNull,
6311
- listener: InvalidCellListener,
6370
+ listener: InvalidCellListener<this>,
6312
6371
  mutator?: boolean,
6313
6372
  ): Id;
6314
6373
 
@@ -6483,7 +6542,7 @@ export interface Store {
6483
6542
  */
6484
6543
  addInvalidValueListener(
6485
6544
  valueId: IdOrNull,
6486
- listener: InvalidValueListener,
6545
+ listener: InvalidValueListener<this>,
6487
6546
  mutator?: boolean,
6488
6547
  ): Id;
6489
6548
 
@@ -6531,7 +6590,7 @@ export interface Store {
6531
6590
  * @category Listener
6532
6591
  * @since v3.2.0
6533
6592
  */
6534
- addStartTransactionListener(listener: TransactionListener): Id;
6593
+ addStartTransactionListener(listener: TransactionListener<this>): Id;
6535
6594
 
6536
6595
  /**
6537
6596
  * The addWillFinishTransactionListener method registers a listener function
@@ -6572,12 +6631,10 @@ export interface Store {
6572
6631
  * pets: {fido: {species: 'dog', color: 'brown'}},
6573
6632
  * })
6574
6633
  * .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
- * );
6634
+ * const listenerId = store.addWillFinishTransactionListener((store) => {
6635
+ * const [cellsTouched, valuesTouched] = store.getTransactionLog() ?? {};
6636
+ * console.log(`Cells/Values touched: ${cellsTouched}/${valuesTouched}`);
6637
+ * });
6581
6638
  * const listenerId2 = store.addTablesListener(() =>
6582
6639
  * console.log('Tables changed'),
6583
6640
  * );
@@ -6619,7 +6676,7 @@ export interface Store {
6619
6676
  * // Transaction was rolled back.
6620
6677
  *
6621
6678
  * store.callListener(listenerId);
6622
- * // -> 'Cells/Values touched: undefined/undefined'
6679
+ * // -> 'Cells/Values touched: false/false'
6623
6680
  * // It is meaningless to call this listener directly.
6624
6681
  *
6625
6682
  * store
@@ -6630,7 +6687,7 @@ export interface Store {
6630
6687
  * @category Listener
6631
6688
  * @since v1.3.0
6632
6689
  */
6633
- addWillFinishTransactionListener(listener: TransactionListener): Id;
6690
+ addWillFinishTransactionListener(listener: TransactionListener<this>): Id;
6634
6691
 
6635
6692
  /**
6636
6693
  * The addDidFinishTransactionListener method registers a listener function
@@ -6670,12 +6727,10 @@ export interface Store {
6670
6727
  * pets: {fido: {species: 'dog', color: 'brown'}},
6671
6728
  * })
6672
6729
  * .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
- * );
6730
+ * const listenerId = store.addDidFinishTransactionListener((store) => {
6731
+ * const [cellsTouched, valuesTouched] = store.getTransactionLog() ?? {};
6732
+ * console.log(`Cells/Values touched: ${cellsTouched}/${valuesTouched}`);
6733
+ * });
6679
6734
  * const listenerId2 = store.addTablesListener(() =>
6680
6735
  * console.log('Tables changed'),
6681
6736
  * );
@@ -6717,7 +6772,7 @@ export interface Store {
6717
6772
  * // Transaction was rolled back.
6718
6773
  *
6719
6774
  * store.callListener(listenerId);
6720
- * // -> 'Cells/Values touched: undefined/undefined'
6775
+ * // -> 'Cells/Values touched: false/false'
6721
6776
  * // It is meaningless to call this listener directly.
6722
6777
  *
6723
6778
  * store
@@ -6728,7 +6783,7 @@ export interface Store {
6728
6783
  * @category Listener
6729
6784
  * @since v1.3.0
6730
6785
  */
6731
- addDidFinishTransactionListener(listener: TransactionListener): Id;
6786
+ addDidFinishTransactionListener(listener: TransactionListener<this>): Id;
6732
6787
 
6733
6788
  /**
6734
6789
  * The callListener method provides a way for you to manually provoke a
@@ -6844,7 +6899,7 @@ export interface Store {
6844
6899
  * ```
6845
6900
  * @category Listener
6846
6901
  */
6847
- callListener(listenerId: Id): Store;
6902
+ callListener(listenerId: Id): this;
6848
6903
 
6849
6904
  /**
6850
6905
  * The delListener method removes a listener that was previously added to the
@@ -6876,7 +6931,7 @@ export interface Store {
6876
6931
  * ```
6877
6932
  * @category Listener
6878
6933
  */
6879
- delListener(listenerId: Id): Store;
6934
+ delListener(listenerId: Id): this;
6880
6935
 
6881
6936
  /**
6882
6937
  * The getListenerStats method provides a set of statistics about the