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
@@ -0,0 +1 @@
1
+ const e=Promise,t=Math.max,a=e=>null==e,n=(e,t,n)=>a(e)?n?.():t(e),o=(e,t)=>e.forEach(t),s=Object,r=e=>s.getPrototypeOf(e),i=s.entries,l=s.keys,c=s.freeze,g=(e,t)=>o(i(e),(([e,a])=>t(a,e))),u=e=>(e=>!a(e)&&n(r(e),(e=>e==s.prototype||a(r(e))),(()=>!0)))(e)&&0==(e=>l(e).length)(e),y=(e,t,a)=>(((e,t)=>t in e)(e,t)||(e[t]=a()),e[t]),d=(e,t)=>e?.delete(t),h=e=>new Map(e),w=(e,t)=>e?.get(t),f=(e,t,n)=>a(n)?(d(e,t),e):e?.set(t,n),v=(e,t,a,n)=>{var o,s;return o=e,s=t,o?.has(s)?n?.(w(e,t)):f(e,t,a()),w(e,t)},b=new globalThis.TextEncoder,C=(e,t)=>t?[e,t]:[e],M=(e,t)=>((e??"")>(t??"")?e:t)??"",p=(e="")=>C(((e=[])=>s.fromEntries(e))(),e),A=h(),S=h(),T=2**36,m=2**30,L=2**24,D=2**18,H=4096,E=64,x=e=>String.fromCharCode(48+(63&e)),z=(e,t)=>((e,t)=>e.charCodeAt(t))(e,t)-48,O=h(),P=(s,r)=>{const i=""+Math.random();return((s,r,i,l,O,P,R={})=>{let V;const[$]=(e=>{let n=0,s=-1;const r=(e=>{let t=2166136261;return o(b.encode(e),(e=>{t^=e,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)})),t>>>0})(e),i=e=>{const o=n,[r,i]=a(e)||""==e?[0,0]:[z(l=e,0)*T+z(l,1)*m+z(l,2)*L+z(l,3)*D+z(l,4)*H+z(l,5)*E+z(l,6),z(l,7)*D+z(l,8)*H+z(l,9)*E+z(l,10),z(l,11)*L+z(l,12)*D+z(l,13)*H+z(l,14)*E+z(l,15)];var l;n=t(o,r,Date.now()),s=n==o?n==r?t(s,i):s:n==r?i:-1};return[()=>{return i(),t=++s,a=r,x((e=n)/T)+x(e/m)+x(e/L)+x(e/D)+x(e/H)+x(e/E)+x(e)+x(t/D)+x(t/H)+x(t/E)+x(t)+x(a/L)+x(a/D)+x(a/H)+x(a/E)+x(a);var e,t,a},i]})(s.getId()),j=h();i(((e,t,o,i)=>{0==o?n(w(j,t),(([t,n])=>a(t)||t==e?n(i,e):0)):2==o&&N.isAutoLoading()?I(e,i).then((e=>{V?.(void 0,e)})):3==o&&N.isAutoLoading()?V?.(void 0,i):n(1==o&&N.isAutoSaving()?s.getMergeableContentHashes():4==o?s.getMergeableTableDiff(i):5==o?s.getMergeableRowDiff(i):6==o?s.getMergeableCellDiff(i):7==o?s.getMergeableValueDiff(i):void 0,(a=>{r(e,t,0,a)}))}));const k=async(t,a,n="")=>new e(((e,o)=>{const s=$(),i=setTimeout((()=>{d(j,s),o(`No response from ${t??"anyone"} to '${a}'`)}),1e3*O);f(j,s,[t,(t,a)=>{clearTimeout(i),d(j,s),e([t,a])}]),r(t,s,a,n)})),F=(e,[t,a])=>{g(t,(([t,a],n)=>{const o=y(e[0],n,p);g(t,(([e,t],a)=>{const n=y(o[0],a,p);g(e,(([e,t],a)=>n[0][a]=C(e,t))),n[1]=M(n[1],t)})),o[1]=M(o[1],a)})),e[1]=M(e[1],a)},I=async(e=null,t)=>{a(t)&&([t,e]=await k(e,1));const[n,o]=t,[r,i]=s.getMergeableContentHashes();let l=p();if(r!=n){const[t,a]=(await k(e,4,s.getMergeableTableHashes()))[0];if(l=t,!u(a)){const[t,n]=(await k(e,5,s.getMergeableRowHashes(a)))[0];if(F(l,t),!u(n)){const t=(await k(e,6,s.getMergeableCellHashes(n)))[0];F(l,t)}}}return[l,i==o?p():(await k(e,7,s.getMergeableValuesHashes()))[0],1]},N=((e,t,o,s,r,i,l,g={},y=[])=>{let d,h,b,C=0;v(A,y,(()=>0)),v(S,y,(()=>[]));const[M,p,T,m,L]=((e=1,t)=>e>1&&"getMergeableContent"in t?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[e],[t]])=>!u(e)||!u(t),t.setDefaultContent]:2!=e?[0,t.getContent,t.getTransactionChanges,([e,t])=>!u(e)||!u(t),t.setContent]:0)(l,e),D=t=>{var a;(M&&(a=t?.[0],Array.isArray(a))?1===t?.[2]?e.applyMergeableChanges:e.setMergeableContent:1===t?.[2]?e.applyChanges:e.setContent)(t)},H=async e=>(2!=C&&(C=1,await O((async()=>{try{D(await t())}catch(t){i?.(t),e&&L(e)}C=0}))),P),E=()=>(h&&(r(h),h=void 0),P),x=async e=>(1!=C&&(C=2,await O((async()=>{try{await o(p,e)}catch(e){i?.(e)}C=0}))),P),z=()=>(n(b,e.delListener),b=void 0,P),O=async(...e)=>(((e,...t)=>{e.push(...t)})(w(S,y),...e),await(async()=>{if(!w(A,y)){for(f(A,y,1);!a((e=w(S,y),d=e.shift()));)try{await d()}catch(e){i?.(e)}f(A,y,0)}var e})(),P),P={load:H,startAutoLoad:async e=>(await E().load(e),h=s((async(e,t)=>{t||e?2!=C&&(C=1,D(t??e),C=0):await H()})),P),stopAutoLoad:E,isAutoLoading:()=>!a(h),save:x,startAutoSave:async()=>(await z().save(),b=e.addDidFinishTransactionListener((()=>{const e=T();m(e)&&x(e)})),P),stopAutoSave:z,isAutoSaving:()=>!a(b),schedule:O,getStore:()=>e,destroy:()=>E().stopAutoSave(),getStats:()=>({}),...g};return c(P)})(s,(async()=>{const e=await I();return u(e[0][0])&&u(e[1][0])?void 0:e}),(async(e,t)=>{t?r(null,null,3,t):r(null,null,2,s.getMergeableContentHashes())}),(e=>V=e),(()=>V=void 0),P,2,{startSync:async e=>await(await N.startAutoLoad(e)).startAutoSave(),stopSync:()=>N.stopAutoLoad().stopAutoSave(),destroy:()=>(l(),N.stopSync()),getSynchronizerStats:()=>({}),...R});return N})(s,((e,t,n,o)=>{setTimeout((()=>{return a(e)?(s=(e,a)=>e!=i?a(i,t,n,o):0,((e,t)=>e?.forEach(t))(O,((e,t)=>s(t,e)))):w(O,e)?.(i,t,n,o);var s}),0)}),(e=>{f(O,i,e)}),(()=>{d(O,i)}),.01,r)};export{P as createLocalSynchronizer};
@@ -0,0 +1 @@
1
+ const e=Promise,t=Math.max,a=e=>null==e,n=(e,t,n)=>a(e)?n?.():t(e),s=(e,t,a)=>e.slice(t,a),o=t=>new e(t),r=(e,t)=>e.forEach(t),i=Object,l=e=>i.getPrototypeOf(e),c=i.entries,g=i.keys,d=i.freeze,u=(e,t)=>r(c(e),(([e,a])=>t(a,e))),y=e=>(e=>!a(e)&&n(l(e),(e=>e==i.prototype||a(l(e))),(()=>!0)))(e)&&0==(e=>g(e).length)(e),h=(e,t,a)=>(((e,t)=>t in e)(e,t)||(e[t]=a()),e[t]),f=(e,t)=>e?.delete(t),v=e=>new Map(e),w=(e,t)=>e?.get(t),b=(e,t,n)=>a(n)?(f(e,t),e):e?.set(t,n),p=(e,t,a,n)=>{var s,o;return s=e,o=t,s?.has(o)?n?.(w(e,t)):b(e,t,a()),w(e,t)},S=new globalThis.TextEncoder,C=(e,t)=>t?[e,t]:[e],M=(e,t)=>((e??"")>(t??"")?e:t)??"",A=(e="")=>C(((e=[])=>i.fromEntries(e))(),e),L=v(),T=v(),m=2**36,D=2**30,H=2**24,O=2**18,E=4096,x=64,N=e=>String.fromCharCode(48+(63&e)),P=(e,t)=>((e,t)=>e.charCodeAt(t))(e,t)-48,k=async(e,i,l=1,c)=>{let g;const k=(e,t)=>i.addEventListener(e,t),z=((e,s,i,l,c,g,k={})=>{let z;const[J]=(e=>{let n=0,s=-1;const o=(e=>{let t=2166136261;return r(S.encode(e),(e=>{t^=e,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)})),t>>>0})(e),i=e=>{const o=n,[r,i]=a(e)||""==e?[0,0]:[P(l=e,0)*m+P(l,1)*D+P(l,2)*H+P(l,3)*O+P(l,4)*E+P(l,5)*x+P(l,6),P(l,7)*O+P(l,8)*E+P(l,9)*x+P(l,10),P(l,11)*H+P(l,12)*O+P(l,13)*E+P(l,14)*x+P(l,15)];var l;n=t(o,r,Date.now()),s=n==o?n==r?t(s,i):s:n==r?i:-1};return[()=>{return i(),t=++s,a=o,N((e=n)/m)+N(e/D)+N(e/H)+N(e/O)+N(e/E)+N(e/x)+N(e)+N(t/O)+N(t/E)+N(t/x)+N(t)+N(a/H)+N(a/O)+N(a/E)+N(a/x)+N(a);var e,t,a},i]})(e.getId()),R=v();i(((t,o,r,i)=>{0==r?n(w(R,o),(([e,n])=>a(e)||e==t?n(i,t):0)):2==r&&F.isAutoLoading()?j(t,i).then((e=>{z?.(void 0,e)})):3==r&&F.isAutoLoading()?z?.(void 0,i):n(1==r&&F.isAutoSaving()?e.getMergeableContentHashes():4==r?e.getMergeableTableDiff(i):5==r?e.getMergeableRowDiff(i):6==r?e.getMergeableCellDiff(i):7==r?e.getMergeableValueDiff(i):void 0,(e=>{s(t,o,0,e)}))}));const V=async(e,t,a="")=>o(((n,o)=>{const r=J(),i=setTimeout((()=>{f(R,r),o(`No response from ${e??"anyone"} to '${t}'`)}),1e3*c);b(R,r,[e,(e,t)=>{clearTimeout(i),f(R,r),n([e,t])}]),s(e,r,t,a)})),$=(e,[t,a])=>{u(t,(([t,a],n)=>{const s=h(e[0],n,A);u(t,(([e,t],a)=>{const n=h(s[0],a,A);u(e,(([e,t],a)=>n[0][a]=C(e,t))),n[1]=M(n[1],t)})),s[1]=M(s[1],a)})),e[1]=M(e[1],a)},j=async(t=null,n)=>{a(n)&&([n,t]=await V(t,1));const[s,o]=n,[r,i]=e.getMergeableContentHashes();let l=A();if(r!=s){const[a,n]=(await V(t,4,e.getMergeableTableHashes()))[0];if(l=a,!y(n)){const[a,s]=(await V(t,5,e.getMergeableRowHashes(n)))[0];if($(l,a),!y(s)){const a=(await V(t,6,e.getMergeableCellHashes(s)))[0];$(l,a)}}}return[l,i==o?A():(await V(t,7,e.getMergeableValuesHashes()))[0],1]},F=((e,t,s,o,r,i,l,c={},g=[])=>{let u,h,f,v=0;p(L,g,(()=>0)),p(T,g,(()=>[]));const[S,C,M,A,m]=((e=1,t)=>e>1&&"getMergeableContent"in t?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[e],[t]])=>!y(e)||!y(t),t.setDefaultContent]:2!=e?[0,t.getContent,t.getTransactionChanges,([e,t])=>!y(e)||!y(t),t.setContent]:0)(l,e),D=t=>{var a;(S&&(a=t?.[0],Array.isArray(a))?1===t?.[2]?e.applyMergeableChanges:e.setMergeableContent:1===t?.[2]?e.applyChanges:e.setContent)(t)},H=async e=>(2!=v&&(v=1,await N((async()=>{try{D(await t())}catch(t){i?.(t),e&&m(e)}v=0}))),P),O=()=>(h&&(r(h),h=void 0),P),E=async e=>(1!=v&&(v=2,await N((async()=>{try{await s(C,e)}catch(e){i?.(e)}v=0}))),P),x=()=>(n(f,e.delListener),f=void 0,P),N=async(...e)=>(((e,...t)=>{e.push(...t)})(w(T,g),...e),await(async()=>{if(!w(L,g)){for(b(L,g,1);!a((e=w(T,g),u=e.shift()));)try{await u()}catch(e){i?.(e)}b(L,g,0)}var e})(),P),P={load:H,startAutoLoad:async e=>(await O().load(e),h=o((async(e,t)=>{t||e?2!=v&&(v=1,D(t??e),v=0):await H()})),P),stopAutoLoad:O,isAutoLoading:()=>!a(h),save:E,startAutoSave:async()=>(await x().save(),f=e.addDidFinishTransactionListener((()=>{const e=M();A(e)&&E(e)})),P),stopAutoSave:x,isAutoSaving:()=>!a(f),schedule:N,getStore:()=>e,destroy:()=>O().stopAutoSave(),getStats:()=>({}),...c};return d(P)})(e,(async()=>{const e=await j();return y(e[0][0])&&y(e[1][0])?void 0:e}),(async(t,a)=>{a?s(null,null,3,a):s(null,null,2,e.getMergeableContentHashes())}),(e=>z=e),(()=>z=void 0),g,2,{startSync:async e=>await(await F.startAutoLoad(e)).startAutoSave(),stopSync:()=>F.stopAutoLoad().stopAutoSave(),destroy:()=>(l(),F.stopSync()),getSynchronizerStats:()=>({}),...k});return F})(e,((e,...t)=>{i.send((e??"")+"\n"+JSON.stringify(t,((e,t)=>void 0===t?"":t)))}),(e=>{g=e}),(()=>{i.close()}),l,c,{getWebSocket:()=>i});return k("message",(({data:e})=>{if(!a(g)){const a=e.toString("utf8").indexOf("\n");-1!==a&&g(s(e,0,a),...(t=s(e,a+1),JSON.parse(t,((e,t)=>""===t?void 0:t))))}var t})),o(((e,t)=>{i.readyState!=i.OPEN?(k("error",t),k("open",(()=>e(z)))):e(z)}))};export{k as createWsSynchronizer};
@@ -0,0 +1 @@
1
+ const e=e=>null==e,t=(t,n,s)=>e(t)?s?.():n(t),n=(e,t,n)=>e.slice(t,n),s=e=>e.length,r=(e,t)=>e.forEach(t),o=(e,...t)=>e.push(...t),c=Object.freeze,a=e=>e?.size??0,d=(l=a,e=>{return t=(e,t)=>e+l(t),u(e).reduce(t,0);var t});var l;const i=t=>e(t)||0==a(t),u=e=>[...e?.values()??[]],h=(e,t)=>e?.forEach(t),v=(e,t)=>e?.delete(t),f=e=>new Map(e),g=e=>[...e?.keys()??[]],y=(e,t)=>e?.get(t),S=(t,n,s)=>e(s)?(v(t,n),t):t?.set(n,s),k=(e,t,n,s)=>{var r,o;return r=e,o=t,r?.has(o)?s?.(y(e,t)):S(e,t,n()),y(e,t)},p=(e,n,r,o,c=0)=>t((r?k:y)(e,n[c],c>s(n)-2?r:f),(t=>{if(c>s(n)-2)return o?.(t)&&S(e,n[c]),t;const a=p(t,n,r,o,c+1);return i(t)&&S(e,n[c]),a})),I=t=>new Set(Array.isArray(t)||e(t)?t:[t]),b=/^\d+$/,w=/\/([^?]*)/,z=l=>{const u=f(),z=f(),L=f(),[m,x,A]=(n=>{let c;const[a,d]=(()=>{const e=[];let t=0;return[n=>(n?e.shift():null)??""+t++,t=>{b.test(t)&&s(e)<1e3&&o(e,t)}]})(),l=f();return[(e,t,n,s=[],r=(()=>[]))=>{c??=C;const o=a(1);var d,i;return S(l,o,[e,t,n,s,r]),d=p(t,n??[""],I),i=o,d?.add(i),o},(e,t,...n)=>r(((e,t=[""])=>{const n=[],c=(e,a)=>a==s(t)?o(n,e):null===t[a]?h(e,(e=>c(e,a+1))):r([t[a],null],(t=>c(y(e,t),a+1)));return c(e,0),n})(e,t),(e=>h(e,(e=>y(l,e)[0](c,...t??[],...n))))),e=>t(y(l,e),(([,t,n])=>(p(t,n??[""],void 0,(t=>(v(t,e),i(t)?1:0))),S(l,e),d(e),n))),n=>t(y(l,n),(([t,,n=[],o,a])=>{const d=(...l)=>{const i=s(l);i==s(n)?t(c,...l,...a(l)):e(n[i])?r(o[i]?.(...l)??[],(e=>d(...l,e))):d(...l,n[i])};d()}))]})();l.on("connection",((e,s)=>t(s.url?.match(w),(([,r])=>t(s.headers["sec-websocket-key"],(t=>{const s=k(L,r,f);S(s,t,e),1==s.size&&x(u,void 0,(()=>({[r]:1}))),x(z,[r],(()=>({[t]:1}))),e.on("message",(e=>{const r=e.toString("utf8"),o=r.indexOf("\n");if(-1!==o){const e=n(r,0,o),a=n(r,o+1);""===e?(c=(e,n)=>e!=t?n.send(t+"\n"+a):0,h(s,((e,t)=>c(t,e)))):y(s,e)?.send(t+"\n"+a)}var c})),e.on("close",(()=>{v(s,t),x(z,[r],(()=>({[t]:-1}))),i(s)&&(v(L,r),x(u,void 0,(()=>({[r]:-1}))))}))}))))));const C={getWebSocketServer:()=>l,getPathIds:()=>g(L),getClientIds:e=>g(y(L,e)),addPathIdsListener:e=>m(e,u),addClientIdsListener:(e,t)=>m(t,z,[e]),delListener:e=>(A(e),C),getStats:()=>({paths:a(L),clients:d(L)}),destroy:()=>{l.close(),L.clear()}};return c(C)};export{z as createWsServer};
@@ -0,0 +1 @@
1
+ const e=Promise,t=Math.max,a=e=>null==e,n=(e,t,n)=>a(e)?n?.():t(e),s=(e,t)=>e.forEach(t),o=Object,r=e=>o.getPrototypeOf(e),i=o.entries,l=o.keys,g=o.freeze,c=(e,t)=>s(i(e),(([e,a])=>t(a,e))),u=e=>(e=>!a(e)&&n(r(e),(e=>e==o.prototype||a(r(e))),(()=>!0)))(e)&&0==(e=>l(e).length)(e),y=(e,t,a)=>(((e,t)=>t in e)(e,t)||(e[t]=a()),e[t]),d=(e,t)=>e?.delete(t),h=e=>new Map(e),w=(e,t)=>e?.get(t),f=(e,t,n)=>a(n)?(d(e,t),e):e?.set(t,n),v=(e,t,a,n)=>{var s,o;return s=e,o=t,s?.has(o)?n?.(w(e,t)):f(e,t,a()),w(e,t)},b=new globalThis.TextEncoder,C=(e,t)=>t?[e,t]:[e],p=(e,t)=>((e??"")>(t??"")?e:t)??"",M=(e="")=>C(((e=[])=>o.fromEntries(e))(),e),A=h(),S=h(),L=2**36,T=2**30,m=2**24,D=2**18,H=4096,x=64,E=e=>String.fromCharCode(48+(63&e)),z=(e,t)=>((e,t)=>e.charCodeAt(t))(e,t)-48,O=(o,r,i,l,O,P,R={})=>{let V;const[$]=(e=>{let n=0,o=-1;const r=(e=>{let t=2166136261;return s(b.encode(e),(e=>{t^=e,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)})),t>>>0})(e),i=e=>{const s=n,[r,i]=a(e)||""==e?[0,0]:[z(l=e,0)*L+z(l,1)*T+z(l,2)*m+z(l,3)*D+z(l,4)*H+z(l,5)*x+z(l,6),z(l,7)*D+z(l,8)*H+z(l,9)*x+z(l,10),z(l,11)*m+z(l,12)*D+z(l,13)*H+z(l,14)*x+z(l,15)];var l;n=t(s,r,Date.now()),o=n==s?n==r?t(o,i):o:n==r?i:-1};return[()=>{return i(),t=++o,a=r,E((e=n)/L)+E(e/T)+E(e/m)+E(e/D)+E(e/H)+E(e/x)+E(e)+E(t/D)+E(t/H)+E(t/x)+E(t)+E(a/m)+E(a/D)+E(a/H)+E(a/x)+E(a);var e,t,a},i]})(o.getId()),j=h();i(((e,t,s,i)=>{0==s?n(w(j,t),(([t,n])=>a(t)||t==e?n(i,e):0)):2==s&&N.isAutoLoading()?I(e,i).then((e=>{V?.(void 0,e)})):3==s&&N.isAutoLoading()?V?.(void 0,i):n(1==s&&N.isAutoSaving()?o.getMergeableContentHashes():4==s?o.getMergeableTableDiff(i):5==s?o.getMergeableRowDiff(i):6==s?o.getMergeableCellDiff(i):7==s?o.getMergeableValueDiff(i):void 0,(a=>{r(e,t,0,a)}))}));const k=async(t,a,n="")=>new e(((e,s)=>{const o=$(),i=setTimeout((()=>{d(j,o),s(`No response from ${t??"anyone"} to '${a}'`)}),1e3*O);f(j,o,[t,(t,a)=>{clearTimeout(i),d(j,o),e([t,a])}]),r(t,o,a,n)})),F=(e,[t,a])=>{c(t,(([t,a],n)=>{const s=y(e[0],n,M);c(t,(([e,t],a)=>{const n=y(s[0],a,M);c(e,(([e,t],a)=>n[0][a]=C(e,t))),n[1]=p(n[1],t)})),s[1]=p(s[1],a)})),e[1]=p(e[1],a)},I=async(e=null,t)=>{a(t)&&([t,e]=await k(e,1));const[n,s]=t,[r,i]=o.getMergeableContentHashes();let l=M();if(r!=n){const[t,a]=(await k(e,4,o.getMergeableTableHashes()))[0];if(l=t,!u(a)){const[t,n]=(await k(e,5,o.getMergeableRowHashes(a)))[0];if(F(l,t),!u(n)){const t=(await k(e,6,o.getMergeableCellHashes(n)))[0];F(l,t)}}}return[l,i==s?M():(await k(e,7,o.getMergeableValuesHashes()))[0],1]},N=((e,t,s,o,r,i,l,c={},y=[])=>{let d,h,b,C=0;v(A,y,(()=>0)),v(S,y,(()=>[]));const[p,M,L,T,m]=((e=1,t)=>e>1&&"getMergeableContent"in t?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[e],[t]])=>!u(e)||!u(t),t.setDefaultContent]:2!=e?[0,t.getContent,t.getTransactionChanges,([e,t])=>!u(e)||!u(t),t.setContent]:0)(l,e),D=t=>{var a;(p&&(a=t?.[0],Array.isArray(a))?1===t?.[2]?e.applyMergeableChanges:e.setMergeableContent:1===t?.[2]?e.applyChanges:e.setContent)(t)},H=async e=>(2!=C&&(C=1,await O((async()=>{try{D(await t())}catch(t){i?.(t),e&&m(e)}C=0}))),P),x=()=>(h&&(r(h),h=void 0),P),E=async e=>(1!=C&&(C=2,await O((async()=>{try{await s(M,e)}catch(e){i?.(e)}C=0}))),P),z=()=>(n(b,e.delListener),b=void 0,P),O=async(...e)=>(((e,...t)=>{e.push(...t)})(w(S,y),...e),await(async()=>{if(!w(A,y)){for(f(A,y,1);!a((e=w(S,y),d=e.shift()));)try{await d()}catch(e){i?.(e)}f(A,y,0)}var e})(),P),P={load:H,startAutoLoad:async e=>(await x().load(e),h=o((async(e,t)=>{t||e?2!=C&&(C=1,D(t??e),C=0):await H()})),P),stopAutoLoad:x,isAutoLoading:()=>!a(h),save:E,startAutoSave:async()=>(await z().save(),b=e.addDidFinishTransactionListener((()=>{const e=L();T(e)&&E(e)})),P),stopAutoSave:z,isAutoSaving:()=>!a(b),schedule:O,getStore:()=>e,destroy:()=>x().stopAutoSave(),getStats:()=>({}),...c};return g(P)})(o,(async()=>{const e=await I();return u(e[0][0])&&u(e[1][0])?void 0:e}),(async(e,t)=>{t?r(null,null,3,t):r(null,null,2,o.getMergeableContentHashes())}),(e=>V=e),(()=>V=void 0),P,2,{startSync:async e=>await(await N.startAutoLoad(e)).startAutoSave(),stopSync:()=>N.stopAutoLoad().stopAutoSave(),destroy:()=>(l(),N.stopSync()),getSynchronizerStats:()=>({}),...R});return N};export{O as createCustomSynchronizer};
Binary file
package/lib/tinybase.js CHANGED
@@ -1 +1 @@
1
- const e=e=>typeof e,t="",s=e(t),n=e(!0),a=e(0),o=e(e),r="type",l="default",i="Listener",c="Result",d="add",u="Has",h="Ids",g="Table",f=g+"s",L=g+h,w="Row",v=w+"Count",I=w+h,S="Sorted"+w+h,R="Cell",T=R+h,y="Value",C=y+"s",p=y+h,b=e=>t+e,V=Math.max,m=Math.min,E=isFinite,k=e=>null==e,M=(e,t,s)=>k(e)?s?.():t(e),D=e=>e==s||e==n,J=t=>e(t)==o,A=e=>Array.isArray(e),x=(e,t,s)=>e.slice(t,s),F=e=>e.length,Q=()=>{},z=(e,t)=>e.includes(t),N=(e,t)=>e.every(t),O=(e,t)=>F(e)===F(t)&&N(e,((e,s)=>t[s]===e)),P=(e,t)=>N(e,((s,n)=>0==n||t(e[n-1],s)<=0)),j=(e,t)=>e.sort(t),W=(e,t)=>e.forEach(t),_=(e,t)=>e.map(t),B=e=>$(e,((e,t)=>e+t),0),H=e=>0==F(e),$=(e,t,s)=>e.reduce(t,s),q=(e,...t)=>e.push(...t),G=e=>e.pop(),K=e=>e.shift(),U=Object,X=e=>U.getPrototypeOf(e),Y=U.entries,Z=U.keys,ee=U.isFrozen,te=U.freeze,se=e=>!k(e)&&M(X(e),(e=>e==U.prototype||k(X(e))),(()=>!0)),ne=(e,t)=>!k(((e,t)=>M(e,(e=>e[t])))(e,t)),ae=(e,t)=>(delete e[t],e),oe=(e,t)=>_(Y(e),(([e,s])=>t(s,e))),re=e=>se(e)&&0==(e=>F(Z(e)))(e),le=e=>e?.size??0,ie=(e,t)=>e?.has(t)??!1,ce=e=>k(e)||0==le(e),de=e=>[...e?.values()??[]],ue=e=>e.clear(),he=(e,t)=>e?.forEach(t),ge=(e,t)=>e?.delete(t),fe=e=>new Map(e),Le=e=>[...e?.keys()??[]],we=(e,t)=>e?.get(t),ve=(e,t)=>he(e,((e,s)=>t(s,e))),Ie=(e,t,s)=>k(s)?(ge(e,t),e):e?.set(t,s),Se=(e,t,s)=>(ie(e,t)||Ie(e,t,s()),we(e,t)),Re=(e,t,s,n=Ie)=>(oe(t,((t,n)=>s(e,n,t))),ve(e,(s=>ne(t,s)?0:n(e,s))),e),Te=(e,t,s)=>{const n={};return he(e,((e,a)=>{const o=t?t(e,a):e;!s?.(o,e)&&(n[a]=o)})),n},ye=(e,t,s)=>Te(e,(e=>Te(e,t,s)),re),Ce=(e,t,s)=>Te(e,(e=>ye(e,t,s)),re),pe=(e,t)=>{const s=fe();return he(e,((e,n)=>s.set(n,t?.(e)??e))),s},be=e=>pe(e,pe),Ve=e=>pe(e,be),me=(e,t,s,n,a=0)=>M((s?Se:we)(e,t[a],a>F(t)-2?s:fe),(o=>{if(a>F(t)-2)return n?.(o)&&Ie(e,t[a]),o;const r=me(o,t,s,n,a+1);return ce(o)&&Ie(e,t[a]),r})),Ee=t=>{const s=e(t);return D(s)||s==a&&E(t)?s:void 0},ke=(e,t,s,n,a)=>k(a)?e.delCell(t,s,n,!0):e.setCell(t,s,n,a),Me=(e,t,s)=>k(s)?e.delValue(t):e.setValue(t,s),De=e=>new Set(A(e)||k(e)?e:[e]),Je=(e,t)=>e?.add(t),Ae=(e,t,s,n,a)=>{const o=e.hasRow,r=fe(),l=fe(),i=fe(),c=fe(),d=fe(),u=fe(),h=(t,s,...n)=>{const a=Se(u,t,De);return W(n,(t=>Je(a,t)&&s&&e.callListener(t))),n},g=(t,...s)=>M(we(u,t),(n=>{W(H(s)?de(n):s,(t=>{e.delListener(t),ge(n,t)})),ce(n)&&Ie(u,t)})),f=(e,s)=>{Ie(r,e,s),ie(l,e)||(Ie(l,e,t()),Ie(c,e,fe()),Ie(d,e,fe()),a(i))},L=e=>{Ie(r,e),Ie(l,e),Ie(c,e),Ie(d,e),g(e),a(i)};return[()=>e,()=>Le(r),e=>ve(l,e),e=>ie(l,e),e=>we(r,e),e=>we(l,e),(e,t)=>Ie(l,e,t),f,(t,n,a,r,l)=>{f(t,n);const i=fe(),u=fe(),L=we(c,t),w=we(d,t),v=t=>{const a=s=>e.getCell(n,t,s),c=we(L,t),d=o(n,t)?s(r(a,t)):void 0;if(c===d||A(c)&&A(d)&&O(c,d)||Ie(i,t,[c,d]),!k(l)){const e=we(w,t),s=o(n,t)?l(a,t):void 0;e!=s&&Ie(u,t,s)}},I=e=>{a((()=>{he(i,(([,e],t)=>Ie(L,t,e))),he(u,((e,t)=>Ie(w,t,e)))}),i,u,L,w,e),ue(i),ue(u)};ve(L,v),e.hasTable(n)&&W(e.getRowIds(n),(e=>{ie(L,e)||v(e)})),I(!0),g(t),h(t,0,e.addRowListener(n,null,((e,t,s)=>v(s))),e.addTableListener(n,(()=>I())))},L,e=>n(e,i),()=>ve(u,L),h,g]},xe=(n,a)=>e(n)==s?e=>e(n):n??(()=>a??t),Fe=(e,t)=>{const s=new WeakMap;return n=>{s.has(n)||s.set(n,e(n));const a=s.get(n);return t?.(a),a}},Qe=/^\d+$/,ze=()=>{const e=[];let s=0;return[n=>(n?K(e):null)??t+s++,t=>{Qe.test(t)&&F(e)<1e3&&q(e,t)}]},Ne=e=>{let s;const[n,a]=ze(),o=fe();return[(a,r,l,i=[],c=(()=>[]))=>{s??=e();const d=n(1);return Ie(o,d,[a,r,l,i,c]),Je(me(r,l??[t],De),d),d},(e,n,...a)=>W(((e,s=[t])=>{const n=[],a=(e,t)=>t==F(s)?q(n,e):null===s[t]?he(e,(e=>a(e,t+1))):W([s[t],null],(s=>a(we(e,s),t+1)));return a(e,0),n})(e,n),(e=>he(e,(e=>we(o,e)[0](s,...n??[],...a))))),e=>M(we(o,e),(([,s,n])=>(me(s,n??[t],void 0,(t=>(ge(t,e),ce(t)?1:0))),Ie(o,e),a(e),n))),e=>M(we(o,e),(([e,,t=[],n,a])=>{const o=(...r)=>{const l=F(r);l==F(t)?e(s,...r,...a(r)):k(t[l])?W(n[l]?.(...r)??[],(e=>o(...r,e))):o(...r,t[l])};o()}))]},Oe=Fe((e=>{let s,n,a,o=100,r=fe(),l=fe(),i=1;const c=fe(),d=fe(),[u,h,g]=Ne((()=>Q)),f=fe(),L=fe(),w=[],v=[],I=(t,s)=>{i=0,e.transaction((()=>{const[n,a]=we(f,s);he(n,((s,n)=>he(s,((s,a)=>he(s,((s,o)=>ke(e,n,a,o,s[t]))))))),he(a,((s,n)=>Me(e,n,s[t])))})),i=1},S=e=>{Ie(f,e),Ie(L,e),h(d,[e])},R=(e,t)=>W(((e,t)=>e.splice(0,t))(e,t??F(e)),S),T=()=>R(w,F(w)-o),y=()=>M(s,(()=>{q(w,s),T(),R(v),s=void 0,a=1})),C=()=>{s=G(w),a=1};let p,b;const V=(e="")=>(k(s)&&(s=t+n++,Ie(f,s,[r,l]),A(s,e),r=fe(),l=fe(),a=1),s),m=()=>{H(w)||(((e,...t)=>{e.unshift(...t)})(v,V()),I(0,s),s=G(w),a=1)},E=()=>{H(v)||(q(w,s),s=K(v),I(1,s),a=1)},D=()=>{a&&(h(c),a=0)},J=e=>{const t=V(e);return D(),t},A=(e,t)=>(x(e)&&we(L,e)!==t&&(Ie(L,e,t),h(d,[e])),Q),x=e=>ie(f,e),Q={setSize:e=>(o=e,T(),Q),addCheckpoint:J,setCheckpoint:A,getStore:()=>e,getCheckpointIds:()=>[[...w],s,[...v]],forEachCheckpoint:e=>ve(L,e),hasCheckpoint:x,getCheckpoint:e=>we(L,e),goBackward:()=>(m(),D(),Q),goForward:()=>(E(),D(),Q),goTo:e=>{const t=z(w,e)?m:z(v,e)?E:null;for(;!k(t)&&e!=s;)t();return D(),Q},addCheckpointIdsListener:e=>u(e,c),addCheckpointListener:(e,t)=>u(t,d,[e]),delListener:e=>(g(e),Q),clear:()=>(R(w),R(v),k(s)||S(s),s=void 0,n=0,J(),Q),clearForward:()=>(H(v)||(R(v),h(c)),Q),destroy:()=>{e.delListener(p),e.delListener(b)},getListenerStats:()=>({}),_registerListeners:()=>{p=e.addCellListener(null,null,null,((e,t,s,n,a,o)=>{if(i){y();const e=Se(r,t,fe),l=Se(e,s,fe),i=Se(l,n,(()=>[o,void 0]));i[1]=a,i[0]===a&&ce(Ie(l,n))&&ce(Ie(e,s))&&ce(Ie(r,t))&&C(),D()}})),b=e.addValueListener(null,((e,t,s,n)=>{if(i){y();const e=Se(l,t,(()=>[n,void 0]));e[1]=s,e[0]===s&&ce(Ie(l,t))&&C(),D()}}))}};return te(Q.clear())}),(e=>e._registerListeners())),Pe=(e,t)=>(e??0)<(t??0)?-1:1,je=Fe((e=>{const s=fe(),n=fe(),[a,o,r]=Ne((()=>S)),[l,i,c,d,u,h,g,,f,L,w,v]=Ae(e,fe,(e=>k(e)?t:A(e)?_(e,b):b(e)),a,o),I=(t,s,n)=>{const a=u(t);he(n,((t,n)=>s(n,(s=>he(t,(t=>s(t,(s=>e.forEachCell(a,t,s)))))))))},S={setIndexDefinition:(e,t,a,r,l,i=Pe)=>{const c=k(l)?void 0:([e],[t])=>l(e,t);return f(e,t,((t,a,l,d,u,f)=>{let L=0;const w=De(),v=De(),I=h(e);if(he(a,(([e,t],s)=>{const n=De(e),a=De(t);he(n,(e=>ge(a,e)?ge(n,e):0)),he(n,(e=>{Je(w,e),M(we(I,e),(t=>{ge(t,s),ce(t)&&(Ie(I,e),L=1)}))})),he(a,(e=>{Je(w,e),ie(I,e)||(Ie(I,e,De()),L=1),Je(we(I,e),s),k(r)||Je(v,e)}))})),t(),ce(u)||(f?ve(I,(e=>Je(v,e))):ve(l,(e=>M(we(d,e),(e=>Je(v,e))))),he(v,(e=>{const t=(t,s)=>i(we(u,t),we(u,s),e),s=[...we(I,e)];P(s,t)||(Ie(I,e,De(j(s,t))),Je(w,e))}))),(L||f)&&!k(c)){const t=[...I];P(t,c)||(g(e,fe(j(t,c))),L=1)}L&&o(s,[e]),he(w,(t=>o(n,[e,t])))}),xe(a),M(r,xe)),S},delIndexDefinition:e=>(L(e),S),getStore:l,getIndexIds:i,forEachIndex:e=>c(((t,s)=>e(t,(e=>I(t,e,s))))),forEachSlice:(e,t)=>I(e,t,h(e)),hasIndex:d,hasSlice:(e,t)=>ie(h(e),t),getTableId:u,getSliceIds:e=>Le(h(e)),getSliceRowIds:(e,t)=>de(we(h(e),t)),addIndexIdsListener:w,addSliceIdsListener:(e,t)=>a(t,s,[e]),addSliceRowIdsListener:(e,t,s)=>a(s,n,[e,t]),delListener:e=>(r(e),S),destroy:v,getListenerStats:()=>({})};return te(S)})),We=fe([["avg",[(e,t)=>B(e)/t,(e,t,s)=>e+(t-e)/(s+1),(e,t,s)=>e+(e-t)/(s-1),(e,t,s,n)=>e+(t-s)/n]],["max",[e=>V(...e),(e,t)=>V(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:V(t,e)]],["min",[e=>m(...e),(e,t)=>m(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:m(t,e)]],["sum",[e=>B(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),_e=(e,t,s,n,a,o=!1)=>{if(ce(s))return;const[r,l,i,c]=a;return o||=k(e),he(n,(([s,n])=>{o||(e=k(s)?l?.(e,n,t++):k(n)?i?.(e,s,t--):c?.(e,n,s,t),o||=k(e))})),o?r(de(s),le(s)):e},Be=Fe((e=>{const s=fe(),[n,a,o]=Ne((()=>v)),[r,l,i,c,d,u,h,,g,f,L,w]=Ae(e,Q,(e=>isNaN(e)||k(e)||!0===e||!1===e||e===t?void 0:1*e),n,a),v={setMetricDefinition:(e,t,n,o,r,l,i)=>{const c=J(n)?[n,r,l,i]:we(We,n)??we(We,"sum");return g(e,t,((t,n,o,r,l,i)=>{const d=u(e),g=le(r);i||=k(d),t();let f=_e(d,g,r,n,c,i);E(f)||(f=void 0),f!=d&&(h(e,f),a(s,[e],f,d))}),xe(o,1)),v},delMetricDefinition:e=>(f(e),v),getStore:r,getMetricIds:l,forEachMetric:i,hasMetric:c,getTableId:d,getMetric:u,addMetricIdsListener:L,addMetricListener:(e,t)=>n(t,s,[e]),delListener:e=>(o(e),v),destroy:w,getListenerStats:()=>({})};return te(v)})),He=fe(),$e=fe(),qe=(e,t,s,n,a,o,[r,l]=[],i=[])=>{let c,d,u,h=0,g=0;Se(He,i,(()=>0)),Se($e,i,(()=>[]));const f=async e=>(2!=h&&(h=1,await L.schedule((async()=>{await e(),h=0}))),L),L={load:async(s,n)=>await f((async()=>{try{e.setContent(await t())}catch{e.setContent([s,n])}})),startAutoLoad:async(s={},a={})=>(L.stopAutoLoad(),await L.load(s,a),g=1,u=n((async(s,n)=>{if(n){const t=n();await f((async()=>e.setTransactionChanges(t)))}else await f((async()=>{try{e.setContent(s?.()??await t())}catch(e){o?.(e)}}))})),L),stopAutoLoad:()=>(g&&(a(u),u=void 0,g=0),L),save:async t=>(1!=h&&(h=2,await L.schedule((async()=>{try{await s(e.getContent,t)}catch(e){o?.(e)}h=0}))),L),startAutoSave:async()=>(await L.stopAutoSave().save(),c=e.addDidFinishTransactionListener(((e,t)=>{const[s,n]=t();re(s)&&re(n)||L.save((()=>[s,n]))})),L),stopAutoSave:()=>(M(c,e.delListener),c=void 0,L),schedule:async(...e)=>(q(we($e,i),...e),await(async()=>{if(!we(He,i)){for(Ie(He,i,1);!k(d=K(we($e,i)));)try{await d()}catch(e){o?.(e)}Ie(He,i,0)}})(),L),getStore:()=>e,destroy:()=>L.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return r&&(L[r]=()=>l),te(L)},Ge=Fe((e=>{const s=e.createStore,n=s(),a=s(),o=fe(),{addListener:r,callListeners:l,delListener:u}=a,[h,f,L,y,C,,,p,,b,V,m,E,D]=Ae(e,(()=>!0),Q,r,l),A=(e,t,...s)=>W(s,(s=>Je(Se(Se(o,t,fe),e,De),s))),z=e=>{M(we(o,e),(e=>{ve(e,((e,t)=>he(t,(t=>e.delListener(t))))),ue(e)})),W([a,n],(t=>t.delTable(e)))},O=(e,t,s)=>A(t,e,t.addStartTransactionListener(s.startTransaction),t.addDidFinishTransactionListener((()=>s.finishTransaction()))),P={setQueryDefinition:(s,o,r)=>{p(s,o),z(s);const l=[],i=[[null,[o,null,null,[],fe()]]],c=[],d=[],u=[];r({select:(e,s)=>{const n=J(e)?[F(l)+t,e]:[k(s)?e:s,t=>t(e,s)];return q(l,n),{as:e=>n[0]=e}},join:(e,t,s)=>{const n=k(s)||J(t)?null:t,a=k(n)?t:s,o=[e,[e,n,J(a)?a:e=>e(a),[],fe()]];return q(i,o),{as:e=>o[0]=e}},where:(e,t,s)=>q(c,J(e)?e:k(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,a)=>{const o=[e,[e,J(t)?[t,s,n,a]:we(We,t)??[(e,t)=>t]]];return q(d,o),{as:e=>o[0]=e}},having:(e,t)=>q(u,J(e)?e:s=>s(e)===t)});const h=fe(l);if(ce(h))return P;const g=fe(i);ve(g,((e,[,t])=>M(we(g,t),(({3:t})=>k(e)?0:q(t,e)))));const f=fe(d);let L=n;if(ce(f)&&H(u))L=a;else{O(s,L,a);const e=fe();ve(f,((t,[s,n])=>Je(Se(e,s,De),[t,n])));const t=De();ve(h,(s=>ie(e,s)?0:Je(t,s)));const n=fe(),o=(t,n,o,r)=>M(t,(([l,i,c,d])=>{ve(n,((t,[s])=>{const n=Se(l,t,fe),a=we(n,o),i=r?void 0:s;if(a!==i){const s=De([[a,i]]),r=le(n);Ie(n,o,i),he(we(e,t),(([e,t])=>{const a=_e(d[e],r,n,s,t);d[e]=k(Ee(a))?null:a}))}})),ce(i)||!N(u,(e=>e((e=>d[e]))))?a.delRow(s,c):k(c)?t[2]=a.addRow(s,d):a.setRow(s,c,d)}));A(L,s,L.addRowListener(s,null,((a,r,l,i)=>{const c=[],d=[],u=fe(),h=L.hasRow(s,l);let g=!h;he(t,(e=>{const[t,n,a]=i(s,l,e);q(c,n),q(d,a),g||=t})),ve(e,(e=>{const[t,,n]=i(s,l,e);(g||t)&&Ie(u,e,[n])})),g&&o(me(n,c,void 0,(([,e])=>(ge(e,l),ce(e)))),u,l,1),h&&o(me(n,d,(()=>{const e={};return he(t,(t=>e[t]=L.getCell(s,l,t))),[fe(),De(),void 0,e]}),(([,e])=>{Je(e,l)})),u,l)})))}O(s,e,L);const w=(t,n,a,r)=>{const l=t=>e.getCell(n,a,t);W(r,(n=>{const[a,,o,r,i]=we(g,n),c=o?.(l,t),[d,u]=we(i,t)??[];c!=d&&(k(u)||D(s,u),Ie(i,t,k(c)?null:[c,...E(s,1,e.addRowListener(a,c,(()=>w(t,a,c,r))))]))})),(t=>{const n=(s,n)=>e.getCell(...k(n)?[o,t,s]:s===o?[o,t,n]:[we(g,s)?.[0],we(we(g,s)?.[4],t)?.[0],n]);L.transaction((()=>N(c,(e=>e(n)))?ve(h,((e,a)=>ke(L,s,t,e,a(n,t)))):L.delRow(s,t)))})(t)},{3:v}=we(g,null);return L.transaction((()=>E(s,1,e.addRowListener(o,null,((t,n,a)=>{e.hasRow(o,a)?w(a,o,a,v):(L.delRow(s,a),he(g,(({4:e})=>M(we(e,a),(([,t])=>{D(s,t),Ie(e,a)})))))}))))),P},delQueryDefinition:e=>(z(e),b(e),P),getStore:h,getQueryIds:f,forEachQuery:L,hasQuery:y,getTableId:C,addQueryIdsListener:e=>V((()=>e(P))),delListener:e=>(u(e),P),destroy:m,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=a.getListenerStats();return n}};return oe({[g]:[1,1],[g+T]:[0,1],[v]:[0,1],[I]:[0,1],[S]:[0,5],[w]:[1,2],[T]:[0,2],[R]:[1,3]},(([e,t],s)=>{W(e?["get","has","forEach"]:["get"],(e=>P[e+c+s]=(...t)=>a[e+s](...t))),P[d+c+s+i]=(...e)=>a[d+s+i](...x(e,0,t),((s,...n)=>e[t](P,...n)),!0)})),te(P)})),Ke=Fe((e=>{const s=fe(),n=fe(),a=fe(),o=fe(),[r,l,i]=Ne((()=>y)),[c,d,u,h,g,f,,,L,w,v,I]=Ae(e,(()=>[fe(),fe(),fe(),fe()]),(e=>k(e)?void 0:e+t),r,l),S=(e,t,s)=>M(f(e),(([n,,a])=>{if(!ie(a,t)){const o=De();if(g(e)!=T(e))Je(o,t);else{let e=t;for(;!k(e)&&!ie(o,e);)Je(o,e),e=we(n,e)}if(s)return o;Ie(a,t,o)}return we(a,t)})),R=(e,t)=>M(f(e),(([,,e])=>Ie(e,t))),T=e=>we(s,e),y={setRelationshipDefinition:(e,t,r,i)=>(Ie(s,e,r),L(e,t,((t,s)=>{const r=De(),i=De(),c=De(),[d,u]=f(e);he(s,(([t,s],n)=>{k(t)||(Je(i,t),M(we(u,t),(e=>{ge(e,n),ce(e)&&Ie(u,t)}))),k(s)||(Je(i,s),ie(u,s)||Ie(u,s,De()),Je(we(u,s),n)),Je(r,n),Ie(d,n,s),ve(we(o,e),(t=>{ie(S(e,t),n)&&Je(c,t)}))})),t(),he(r,(t=>l(n,[e,t]))),he(i,(t=>l(a,[e,t]))),he(c,(t=>{R(e,t),l(o,[e,t])}))}),xe(i)),y),delRelationshipDefinition:e=>(Ie(s,e),w(e),y),getStore:c,getRelationshipIds:d,forEachRelationship:t=>u((s=>t(s,(t=>e.forEachRow(g(s),t))))),hasRelationship:h,getLocalTableId:g,getRemoteTableId:T,getRemoteRowId:(e,t)=>we(f(e)?.[0],t),getLocalRowIds:(e,t)=>de(we(f(e)?.[1],t)),getLinkedRowIds:(e,t)=>k(f(e))?[t]:de(S(e,t,!0)),addRelationshipIdsListener:v,addRemoteRowIdListener:(e,t,s)=>r(s,n,[e,t]),addLocalRowIdsListener:(e,t,s)=>r(s,a,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(S(e,t),r(s,o,[e,t])),delListener:e=>(R(...i(e)??[]),y),destroy:I,getListenerStats:()=>({})};return te(y)})),Ue=e=>[e,e],Xe=()=>[fe(),fe()],Ye=e=>[...e],Ze=([e,t])=>e===t,et=e=>JSON.stringify(e,((e,t)=>t instanceof Map?U.fromEntries([...t]):t)),tt=JSON.parse,st=(e,t,s)=>k(e)||!se(e)||re(e)||ee(e)?(s?.(),!1):(oe(e,((s,n)=>{t(s,n)||ae(e,n)})),!re(e)),nt=(e,t,s)=>Ie(e,t,we(e,t)==-s?void 0:s),at=()=>{let e,t,s=!1,n=!1,o=!1,c=!1,h=0;const S=fe(),V=fe(),m=fe(),E=fe(),A=fe(),F=fe(),Q=fe(),N=fe(),P=fe(),B=fe(),H=fe(),$=fe(),G=fe(),K=fe(),U=De(),X=fe(),Y=fe(),Z=fe(),ee=fe(),se=Xe(),de=Xe(),me=Xe(),Ae=Xe(),xe=Xe(),Fe=Xe(),Qe=Xe(),Oe=Xe(),je=Xe(),We=Xe(),_e=Xe(),Be=Xe(),He=Xe(),$e=Xe(),qe=Xe(),Ge=Xe(),Ke=Xe(),ot=Xe(),rt=Xe(),lt=Xe(),it=Xe(),ct=Xe(),dt=fe(),ut=Xe(),[ht,gt,ft,Lt]=Ne((()=>zs)),wt=e=>{if(!st(e,((e,t)=>z([r,l],t))))return!1;const t=e[r];return!(!D(t)&&t!=a||(Ee(e[l])!=t&&ae(e,l),0))},vt=(t,s)=>(!e||ie(H,s)||qt(s))&&st(t,((e,t)=>It(s,t,e)),(()=>qt(s))),It=(e,t,s,n)=>st(n?s:yt(s,e,t),((n,a)=>M(St(e,t,a,n),(e=>(s[a]=e,!0)),(()=>!1))),(()=>qt(e,t))),St=(t,s,n,a)=>e?M(we(we(H,t),n),(e=>Ee(a)!=e[r]?qt(t,s,n,a,e[l]):a),(()=>qt(t,s,n,a))):k(Ee(a))?qt(t,s,n,a):a,Rt=(e,t)=>st(t?e:Ct(e),((t,s)=>M(Tt(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>Gt())),Tt=(e,s)=>t?M(we(G,e),(t=>Ee(s)!=t[r]?Gt(e,s,t[l]):s),(()=>Gt(e,s))):k(Ee(s))?Gt(e,s):s,yt=(e,t,s)=>(M(we($,t),(([n,a])=>{he(n,((t,s)=>{ne(e,s)||(e[s]=t)})),he(a,(n=>{ne(e,n)||qt(t,s,n)}))})),e),Ct=e=>(t&&(he(K,((t,s)=>{ne(e,s)||(e[s]=t)})),he(U,(t=>{ne(e,t)||Gt(t)}))),e),pt=e=>Re(H,e,((e,t,s)=>{const n=fe(),a=De();Re(Se(H,t,fe),s,((e,t,s)=>{Ie(e,t,s),M(s[l],(e=>Ie(n,t,e)),(()=>Je(a,t)))})),Ie($,t,[n,a])}),((e,t)=>{Ie(H,t),Ie($,t)})),bt=e=>Re(G,e,((e,t,s)=>{Ie(G,t,s),M(s[l],(e=>Ie(K,t,e)),(()=>Je(U,t)))}),((e,t)=>{Ie(G,t),Ie(K,t),ge(U,t)})),Vt=e=>re(e)?Es():Cs(e),mt=e=>Re(Z,e,((e,t,s)=>Et(t,s)),((e,t)=>zt(t))),Et=(e,t)=>Re(Se(Z,e,(()=>(jt(e,1),Ie(X,e,ze()),Ie(Y,e,fe()),fe()))),t,((t,s,n)=>kt(e,t,s,n)),((t,s)=>Nt(e,t,s))),kt=(e,t,s,n,a)=>Re(Se(t,s,(()=>(Wt(e,s,1),fe()))),n,((t,n,a)=>Mt(e,s,t,n,a)),((n,o)=>Ot(e,t,s,n,o,a))),Mt=(e,t,s,n,a)=>{ie(s,n)||_t(e,t,n,1);const o=we(s,n);a!==o&&(Bt(e,t,n,o,a),Ie(s,n,a))},Dt=(e,t,s,n,a)=>M(we(t,s),(t=>Mt(e,s,t,n,a)),(()=>kt(e,t,s,yt({[n]:a},e,s)))),Jt=e=>re(e)?Ds():ps(e),At=e=>Re(ee,e,((e,t,s)=>xt(t,s)),((e,t)=>Pt(t))),xt=(e,t)=>{ie(ee,e)||Ht(e,1);const s=we(ee,e);t!==s&&($t(e,s,t),Ie(ee,e,t))},Ft=(e,t)=>{const[s]=we(X,e),n=s(t);return ie(we(Z,e),n)?Ft(e,t):n},Qt=e=>we(Z,e)??Et(e,{}),zt=e=>Et(e,{}),Nt=(e,t,s)=>{const[,n]=we(X,e);n(s),kt(e,t,s,{},!0)},Ot=(e,t,s,n,a,o)=>{const r=we(we($,e)?.[0],a);if(!k(r)&&!o)return Mt(e,s,n,a,r);const l=t=>{Bt(e,s,t,we(n,t)),_t(e,s,t,-1),Ie(n,t)};k(r)?l(a):ve(n,l),ce(n)&&(Wt(e,s,-1),ce(Ie(t,s))&&(jt(e,-1),Ie(Z,e),Ie(X,e),Ie(Y,e)))},Pt=e=>{const t=we(K,e);if(!k(t))return xt(e,t);$t(e,we(ee,e)),Ht(e,-1),Ie(ee,e)},jt=(e,t)=>nt(S,e,t),Wt=(e,t,s)=>nt(Se(E,e,fe),t,s)&&Ie(m,e,Se(m,e,(()=>0))+s),_t=(e,t,s,n)=>{const a=we(Y,e),o=we(a,s)??0;(0==o&&1==n||1==o&&-1==n)&&nt(Se(V,e,fe),s,n),Ie(a,s,o!=-n?o+n:null),nt(Se(Se(A,e,fe),t,fe),s,n)},Bt=(e,t,s,n,a)=>Se(Se(Se(F,e,fe),t,fe),s,(()=>[n,0]))[1]=a,Ht=(e,t)=>nt(Q,e,t),$t=(e,t,s)=>Se(N,e,(()=>[t,0]))[1]=s,qt=(e,t,s,n,a)=>(q(Se(Se(Se(P,e,fe),t,fe),s,(()=>[])),n),a),Gt=(e,t,s)=>(q(Se(B,e,(()=>[])),t),s),Kt=(e,t,s)=>M(we(we(we(F,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...Ue(hs(e,t,s))])),Ut=e=>M(we(N,e),(([e,t])=>[!0,e,t]),(()=>[!1,...Ue(Ls(e))])),Xt=e=>ce(P)||ce(Ge[e])?0:he(e?Ve(P):P,((t,s)=>he(t,((t,n)=>he(t,((t,a)=>gt(Ge[e],[s,n,a],t))))))),Yt=e=>ce(B)||ce(Ke[e])?0:he(e?pe(B):B,((t,s)=>gt(Ke[e],[s],t))),Zt=(e,t,s,n)=>{if(!ce(e))return gt(t,n,(()=>Te(e))),ve(e,((e,t)=>gt(s,[...n??[],e],1==t))),1},es=e=>{const t=ws();t!=o&&gt(se[e],void 0,t);const s=ce(We[e]),n=ce(He[e])&&ce($e[e])&&ce(je[e])&&ce(_e[e])&&ce(Fe[e])&&ce(Qe[e])&&ce(Oe[e])&&s&&ce(me[e])&&ce(Ae[e]),a=ce(qe[e])&&ce(Be[e])&&ce(xe[e])&&ce(de[e]);if(!n||!a){const t=e?[pe(S),be(V),pe(m),be(E),Ve(A),Ve(F)]:[S,V,m,E,A,F];if(!n){Zt(t[0],me[e],Ae[e]),he(t[1],((t,s)=>Zt(t,Fe[e],Qe[e],[s]))),he(t[2],((t,s)=>{0!=t&&gt(Oe[e],[s],is(s))}));const n=De();he(t[3],((t,a)=>{Zt(t,je[e],_e[e],[a])&&!s&&(gt(We[e],[a,null]),Je(n,a))})),s||he(t[5],((t,s)=>{if(!ie(n,s)){const n=De();he(t,(e=>he(e,(([t,s],a)=>s!==t?Je(n,a):ge(e,a))))),he(n,(t=>gt(We[e],[s,t])))}})),he(t[4],((t,s)=>he(t,((t,n)=>Zt(t,He[e],$e[e],[s,n])))))}if(!a){let s;he(t[5],((t,n)=>{let a;he(t,((t,o)=>{let r;he(t,(([t,l],i)=>{l!==t&&(gt(qe[e],[n,o,i],l,t,Kt),s=a=r=1)})),r&&gt(Be[e],[n,o],Kt)})),a&&gt(xe[e],[n],Kt)})),s&&gt(de[e],void 0,Kt)}}},ts=e=>{const t=Ts();t!=c&&gt(ot[e],void 0,t);const s=ce(lt[e])&&ce(it[e]),n=ce(ct[e])&&ce(rt[e]);if(!s||!n){const t=e?[pe(Q),pe(N)]:[Q,N];if(s||Zt(t[0],lt[e],it[e]),!n){let s;he(t[1],(([t,n],a)=>{n!==t&&(gt(ct[e],[a],n,t,Ut),s=1)})),s&&gt(rt[e],void 0,Ut)}}},ss=(e,...t)=>(xs((()=>e(..._(t,b)))),zs),ns=()=>[Te(F,((e,t)=>-1===we(S,t)?null:Te(e,((e,s)=>-1===we(we(E,t),s)?null:Te(e,(([,e])=>e??null),((e,t)=>Ze(t)))),re)),re),Te(N,(([,e])=>e??null),((e,t)=>Ze(t)))],as=()=>({cellsTouched:s,valuesTouched:n,changedCells:Ce(F,Ye,Ze),invalidCells:Ce(P),changedValues:Te(N,Ye,Ze),invalidValues:Te(B),changedTableIds:Te(S),changedRowIds:ye(E),changedCellIds:Ce(A),changedValueIds:Te(Q)}),os=()=>Ce(Z),rs=()=>Le(Z),ls=e=>Le(we(Y,b(e))),is=e=>le(we(Z,b(e))),cs=e=>Le(we(Z,b(e))),ds=(e,t,s,n=0,a)=>{return _(x(j((o=we(Z,b(e)),r=(e,s)=>[k(t)?s:we(e,b(t)),s],_([...o?.entries()??[]],(([e,t])=>r(t,e)))),(([e],[t])=>Pe(e,t)*(s?-1:1))),n,k(a)?a:n+a),(([,e])=>e));var o,r},us=(e,t)=>Le(we(we(Z,b(e)),b(t))),hs=(e,t,s)=>we(we(we(Z,b(e)),b(t)),b(s)),gs=()=>Te(ee),fs=()=>Le(ee),Ls=e=>we(ee,b(e)),ws=()=>!ce(Z),vs=e=>ie(Z,b(e)),Is=(e,t)=>ie(we(Y,b(e)),b(t)),Ss=(e,t)=>ie(we(Z,b(e)),b(t)),Rs=(e,t,s)=>ie(we(we(Z,b(e)),b(t)),b(s)),Ts=()=>!ce(ee),ys=e=>ie(ee,b(e)),Cs=e=>ss((()=>(e=>st(e,vt,qt))(e)?mt(e):0)),ps=e=>ss((()=>Rt(e)?At(e):0)),bs=e=>{try{Vt(tt(e))}catch{}return zs},Vs=t=>ss((()=>{if((e=st(t,(e=>st(e,wt))))&&(pt(t),!ce(Z))){const e=os();Es(),Cs(e)}})),ms=e=>ss((()=>{if(t=(e=>st(e,wt))(e)){const s=gs();As(),Ds(),t=!0,bt(e),ps(s)}})),Es=()=>ss((()=>mt({}))),ks=e=>ss((e=>ie(Z,e)?zt(e):0),e),Ms=(e,t)=>ss(((e,t)=>M(we(Z,e),(s=>ie(s,t)?Nt(e,s,t):0))),e,t),Ds=()=>ss((()=>At({}))),Js=()=>ss((()=>{pt({}),e=!1})),As=()=>ss((()=>{bt({}),t=!1})),xs=(e,t)=>{if(-1!=h){Fs();const s=e();return Qs(t),s}},Fs=()=>(-1!=h&&h++,1==h&&gt(dt,void 0,ns,as),zs),Qs=e=>(h>0&&(h--,0==h&&(s=!ce(F),n=!ce(N),h=1,Xt(1),s&&es(1),Yt(1),n&&ts(1),e?.(ns,as)&&(he(F,((e,t)=>he(e,((e,s)=>he(e,(([e],n)=>ke(zs,t,s,n,e))))))),he(N,(([e],t)=>Me(zs,t,e))),s=n=!1),gt(ut[0],void 0,ns,as),h=-1,Xt(0),s&&es(0),Yt(0),n&&ts(0),gt(ut[1],void 0,ns,as),h=0,s=n=!1,o=ws(),c=Ts(),W([S,V,m,E,A,F,P,Q,N,B],ue))),zs),zs={getContent:()=>[os(),gs()],getTables:os,getTableIds:rs,getTable:e=>ye(we(Z,b(e))),getTableCellIds:ls,getRowCount:is,getRowIds:cs,getSortedRowIds:ds,getRow:(e,t)=>Te(we(we(Z,b(e)),b(t))),getCellIds:us,getCell:hs,getValues:gs,getValueIds:fs,getValue:Ls,hasTables:ws,hasTable:vs,hasTableCell:Is,hasRow:Ss,hasCell:Rs,hasValues:Ts,hasValue:ys,getTablesJson:()=>et(Z),getValuesJson:()=>et(ee),getJson:()=>et([Z,ee]),getTablesSchemaJson:()=>et(H),getValuesSchemaJson:()=>et(G),getSchemaJson:()=>et([H,G]),hasTablesSchema:()=>e,hasValuesSchema:()=>t,setContent:([e,t])=>ss((()=>{(re(e)?Es:Cs)(e),(re(t)?Ds:ps)(t)})),setTables:Cs,setTable:(e,t)=>ss((e=>vt(t,e)?Et(e,t):0),e),setRow:(e,t,s)=>ss(((e,t)=>It(e,t,s)?kt(e,Qt(e),t,s):0),e,t),addRow:(e,t,s=!0)=>xs((()=>{let n;return It(e,n,t)&&(e=b(e),kt(e,Qt(e),n=Ft(e,s?1:0),t)),n})),setPartialRow:(e,t,s)=>ss(((e,t)=>{if(It(e,t,s,1)){const n=Qt(e);oe(s,((s,a)=>Dt(e,n,t,a,s)))}}),e,t),setCell:(e,t,s,n)=>ss(((e,t,s)=>M(St(e,t,s,J(n)?n(hs(e,t,s)):n),(n=>Dt(e,Qt(e),t,s,n)))),e,t,s),setValues:ps,setPartialValues:e=>ss((()=>Rt(e,1)?oe(e,((e,t)=>xt(t,e))):0)),setValue:(e,t)=>ss((e=>M(Tt(e,J(t)?t(Ls(e)):t),(t=>xt(e,t)))),e),setTransactionChanges:e=>ss((()=>{oe(e[0],((e,t)=>k(e)?ks(t):oe(e,((e,s)=>k(e)?Ms(t,s):oe(e,((e,n)=>ke(zs,t,s,n,e))))))),oe(e[1],((e,t)=>Me(zs,t,e)))})),setTablesJson:bs,setValuesJson:e=>{try{Jt(tt(e))}catch{}return zs},setJson:e=>ss((()=>{try{const[t,s]=tt(e);Vt(t),Jt(s)}catch{bs(e)}})),setTablesSchema:Vs,setValuesSchema:ms,setSchema:(e,t)=>ss((()=>{Vs(e),ms(t)})),delTables:Es,delTable:ks,delRow:Ms,delCell:(e,t,s,n)=>ss(((e,t,s)=>M(we(Z,e),(a=>M(we(a,t),(o=>ie(o,s)?Ot(e,a,t,o,s,n):0))))),e,t,s),delValues:Ds,delValue:e=>ss((e=>ie(ee,e)?Pt(e):0),e),delTablesSchema:Js,delValuesSchema:As,delSchema:()=>ss((()=>{Js(),As()})),transaction:xs,startTransaction:Fs,finishTransaction:Qs,forEachTable:e=>he(Z,((t,s)=>e(s,(e=>he(t,((t,s)=>e(s,(e=>ve(t,e))))))))),forEachTableCell:(e,t)=>ve(we(Y,b(e)),t),forEachRow:(e,t)=>he(we(Z,b(e)),((e,s)=>t(s,(t=>ve(e,t))))),forEachCell:(e,t,s)=>ve(we(we(Z,b(e)),b(t)),s),forEachValue:e=>ve(ee,e),addSortedRowIdsListener:(e,t,s,n,a,o,r)=>{let l=ds(e,t,s,n,a);return ht((()=>{const r=ds(e,t,s,n,a);O(r,l)||(l=r,o(zs,e,t,s,n,a,l))}),We[r?1:0],[e,t],[rs])},addStartTransactionListener:e=>ht(e,dt),addWillFinishTransactionListener:e=>ht(e,ut[0]),addDidFinishTransactionListener:e=>ht(e,ut[1]),callListener:e=>(Lt(e),zs),delListener:e=>(ft(e),zs),getListenerStats:()=>({}),createStore:at,addListener:ht,callListeners:gt};return oe({[u+f]:[0,se,[],()=>[ws()]],[f]:[0,de],[L]:[0,me],[u+g]:[1,Ae,[rs],e=>[vs(...e)]],[g]:[1,xe,[rs]],[g+T]:[1,Fe,[rs]],[u+g+R]:[2,Qe,[rs,ls],e=>[Is(...e)]],[v]:[1,Oe,[rs]],[I]:[1,je,[rs]],[u+w]:[2,_e,[rs,cs],e=>[Ss(...e)]],[w]:[2,Be,[rs,cs]],[T]:[2,He,[rs,cs]],[u+R]:[3,$e,[rs,cs,us],e=>[Rs(...e)]],[R]:[3,qe,[rs,cs,us],e=>Ue(hs(...e))],InvalidCell:[3,Ge],[u+C]:[0,ot,[],()=>[Ts()]],[C]:[0,rt],[p]:[0,lt],[u+y]:[1,it,[fs],e=>[ys(...e)]],[y]:[1,ct,[fs],e=>Ue(Ls(e[0]))],InvalidValue:[1,Ke]},(([e,t,s,n],a)=>{zs[d+a+i]=(...a)=>ht(a[e],t[a[e+1]?1:0],e>0?x(a,0,e):void 0,s,n)})),te(zs)};export{Oe as createCheckpoints,qe as createCustomPersister,je as createIndexes,Be as createMetrics,Ge as createQueries,Ke as createRelationships,at as createStore,Pe as defaultSorter};
1
+ const e=e=>typeof e,t="",n=e(t),s=e(!0),a=e(0),o=e(e),r="type",l="default",i="Listener",c="Result",d="add",u="Has",g="Ids",h="Table",f=h+"s",b=h+g,C="Row",L=C+"Count",w=C+g,v="Sorted"+C+g,T="Cell",y=T+g,S="Value",p=S+"s",I=S+g,R=e=>t+e,M=(e,t)=>e.startsWith(t),V=(e,t)=>e.endsWith(t),m=Promise,D=Math.max,E=Math.min,H=isFinite,A=e=>null==e,k=(e,t,n)=>A(e)?n?.():t(e),J=e=>e==n||e==s,x=t=>e(t)==n,F=t=>e(t)==o,Q=e=>Array.isArray(e),z=(e,t,n)=>e.slice(t,n),N=e=>e.length,O=()=>{},P=(e,t)=>e.includes(t),W=(e,t)=>e.every(t),$=(e,t)=>N(e)===N(t)&&W(e,((e,n)=>t[n]===e)),j=(e,t)=>W(e,((n,s)=>0==s||t(e[s-1],n)<=0)),_=(e,t)=>e.sort(t),B=(e,t)=>e.forEach(t),q=(e,t)=>e.map(t),G=e=>U(e,((e,t)=>e+t),0),K=e=>0==N(e),U=(e,t,n)=>e.reduce(t,n),X=(e,...t)=>e.push(...t),Y=e=>e.pop(),Z=e=>e.shift(),ee=Object,te=e=>ee.getPrototypeOf(e),ne=ee.entries,se=ee.isFrozen,ae=e=>!A(e)&&k(te(e),(e=>e==ee.prototype||A(te(e))),(()=>!0)),oe=ee.keys,re=ee.freeze,le=(e=[])=>ee.fromEntries(e),ie=(e,t)=>t in e,ce=(e,t)=>(delete e[t],e),de=(e,t)=>B(ne(e),(([e,n])=>t(n,e))),ue=(e,t)=>q(ne(e),(([e,n])=>t(n,e))),ge=e=>ae(e)&&0==(e=>N(oe(e)))(e),he=(e,t,n)=>(ie(e,t)||(e[t]=n()),e[t]),fe=(e,t,n,s=0)=>A(e)||!ae(e)||!s&&ge(e)||se(e)?(n?.(),!1):(ue(e,((n,s)=>{t(n,s)||ce(e,s)})),!!s||!ge(e)),be=e=>e?.size??0,Ce=(e,t)=>e?.has(t)??!1,Le=e=>A(e)||0==be(e),we=e=>[...e?.values()??[]],ve=e=>e.clear(),Te=(e,t)=>e?.forEach(t),ye=(e,t)=>e?.delete(t),Se=e=>new Map(e),pe=e=>[...e?.keys()??[]],Ie=(e,t)=>e?.get(t),Re=(e,t)=>Te(e,((e,n)=>t(n,e))),Me=(e,t,n)=>A(n)?(ye(e,t),e):e?.set(t,n),Ve=(e,t,n,s)=>(Ce(e,t)?s?.(Ie(e,t)):Me(e,t,n()),Ie(e,t)),me=(e,t,n,s=Me)=>(ue(t,((t,s)=>n(e,s,t))),Re(e,(n=>ie(t,n)?0:s(e,n))),e),De=(e,t,n,s)=>{const a={};return Te(e,((e,o)=>{if(!n?.(e,o)){const n=t?t(e,o):e;!s?.(n)&&(a[o]=n)}})),a},Ee=(e,t,n)=>De(e,(e=>De(e,t,n)),Le,ge),He=(e,t,n)=>De(e,(e=>Ee(e,t,n)),Le,ge),Ae=(e,t)=>{const n=Se();return Te(e,((e,s)=>n.set(s,t?.(e)??e))),n},ke=e=>Ae(e,Ae),Je=e=>Ae(e,ke),xe=(e,t,n,s,a=0)=>k((n?Ve:Ie)(e,t[a],a>N(t)-2?n:Se),(o=>{if(a>N(t)-2)return s?.(o)&&Me(e,t[a]),o;const r=xe(o,t,n,s,a+1);return Le(o)&&Me(e,t[a]),r})),Fe=t=>{const n=e(t);return J(n)||n==a&&H(t)?n:void 0},Qe=e=>A(e)||!A(Fe(e)),ze=(e,t,n,s,a)=>A(a)?e.delCell(t,n,s,!0):e.setCell(t,n,s,a),Ne=(e,t,n)=>A(n)?e.delValue(t):e.setValue(t,n),Oe=e=>new Set(Q(e)||A(e)?e:[e]),Pe=(e,t)=>e?.add(t),We=(e,t,n,s,a)=>{const o=e.hasRow,r=Se(),l=Se(),i=Se(),c=Se(),d=Se(),u=Se(),g=(t,n,...s)=>{const a=Ve(u,t,Oe);return B(s,(t=>Pe(a,t)&&n&&e.callListener(t))),s},h=(t,...n)=>k(Ie(u,t),(s=>{B(K(n)?we(s):n,(t=>{e.delListener(t),ye(s,t)})),Le(s)&&Me(u,t)})),f=(e,n)=>{Me(r,e,n),Ce(l,e)||(Me(l,e,t()),Me(c,e,Se()),Me(d,e,Se()),a(i))},b=e=>{Me(r,e),Me(l,e),Me(c,e),Me(d,e),h(e),a(i)};return[()=>e,()=>pe(r),e=>Re(l,e),e=>Ce(l,e),e=>Ie(r,e),e=>Ie(l,e),(e,t)=>Me(l,e,t),f,(t,s,a,r,l)=>{f(t,s);const i=Se(),u=Se(),b=Ie(c,t),C=Ie(d,t),L=t=>{const a=n=>e.getCell(s,t,n),c=Ie(b,t),d=o(s,t)?n(r(a,t)):void 0;if(c===d||Q(c)&&Q(d)&&$(c,d)||Me(i,t,[c,d]),!A(l)){const e=Ie(C,t),n=o(s,t)?l(a,t):void 0;e!=n&&Me(u,t,n)}},w=e=>{a((()=>{Te(i,(([,e],t)=>Me(b,t,e))),Te(u,((e,t)=>Me(C,t,e)))}),i,u,b,C,e),ve(i),ve(u)};Re(b,L),e.hasTable(s)&&B(e.getRowIds(s),(e=>{Ce(b,e)||L(e)})),w(!0),h(t),g(t,0,e.addRowListener(s,null,((e,t,n)=>L(n))),e.addTableListener(s,(()=>w())))},b,e=>s(e,i),()=>Re(u,b),g,h]},$e=(e,n)=>x(e)?t=>t(e):e??(()=>n??t),je=(e,t)=>{const n=new WeakMap;return s=>{n.has(s)||n.set(s,e(s));const a=n.get(s);return t?.(a),a}},_e=/^\d+$/,Be=()=>{const e=[];let n=0;return[s=>(s?Z(e):null)??t+n++,t=>{_e.test(t)&&N(e)<1e3&&X(e,t)}]},qe=e=>{let n;const[s,a]=Be(),o=Se();return[(a,r,l,i=[],c=(()=>[]))=>{n??=e();const d=s(1);return Me(o,d,[a,r,l,i,c]),Pe(xe(r,l??[t],Oe),d),d},(e,s,...a)=>B(((e,n=[t])=>{const s=[],a=(e,t)=>t==N(n)?X(s,e):null===n[t]?Te(e,(e=>a(e,t+1))):B([n[t],null],(n=>a(Ie(e,n),t+1)));return a(e,0),s})(e,s),(e=>Te(e,(e=>Ie(o,e)[0](n,...s??[],...a))))),e=>k(Ie(o,e),(([,n,s])=>(xe(n,s??[t],void 0,(t=>(ye(t,e),Le(t)?1:0))),Me(o,e),a(e),s))),e=>k(Ie(o,e),(([e,,t=[],s,a])=>{const o=(...r)=>{const l=N(r);l==N(t)?e(n,...r,...a(r)):A(t[l])?B(s[l]?.(...r)??[],(e=>o(...r,e))):o(...r,t[l])};o()}))]},Ge=je((e=>{let n,s,a,o=100,r=Se(),l=Se(),i=1;const c=Se(),d=Se(),[u,g,h]=qe((()=>x)),f=Se(),b=Se(),C=[],L=[],w=(t,n)=>{i=0,e.transaction((()=>{const[s,a]=Ie(f,n);Te(s,((n,s)=>Te(n,((n,a)=>Te(n,((n,o)=>ze(e,s,a,o,n[t]))))))),Te(a,((n,s)=>Ne(e,s,n[t])))})),i=1},v=e=>{Me(f,e),Me(b,e),g(d,[e])},T=(e,t)=>B(((e,t)=>e.splice(0,t))(e,t??N(e)),v),y=()=>T(C,N(C)-o),S=()=>k(n,(()=>{X(C,n),y(),T(L),n=void 0,a=1})),p=()=>{n=Y(C),a=1};let I,R;const M=(e=t)=>(A(n)&&(n=t+s++,Me(f,n,[r,l]),H(n,e),r=Se(),l=Se(),a=1),n),V=()=>{K(C)||(((e,...t)=>{e.unshift(...t)})(L,M()),w(0,n),n=Y(C),a=1)},m=()=>{K(L)||(X(C,n),n=Z(L),w(1,n),a=1)},D=()=>{a&&(g(c),a=0)},E=e=>{const t=M(e);return D(),t},H=(e,t)=>(J(e)&&Ie(b,e)!==t&&(Me(b,e,t),g(d,[e])),x),J=e=>Ce(f,e),x={setSize:e=>(o=e,y(),x),addCheckpoint:E,setCheckpoint:H,getStore:()=>e,getCheckpointIds:()=>[[...C],n,[...L]],forEachCheckpoint:e=>Re(b,e),hasCheckpoint:J,getCheckpoint:e=>Ie(b,e),goBackward:()=>(V(),D(),x),goForward:()=>(m(),D(),x),goTo:e=>{const t=P(C,e)?V:P(L,e)?m:null;for(;!A(t)&&e!=n;)t();return D(),x},addCheckpointIdsListener:e=>u(e,c),addCheckpointListener:(e,t)=>u(t,d,[e]),delListener:e=>(h(e),x),clear:()=>(T(C),T(L),A(n)||v(n),n=void 0,s=0,E(),x),clearForward:()=>(K(L)||(T(L),g(c)),x),destroy:()=>{e.delListener(I),e.delListener(R)},getListenerStats:()=>({}),_registerListeners:()=>{I=e.addCellListener(null,null,null,((e,t,n,s,a,o)=>{if(i){S();const e=Ve(r,t,Se),l=Ve(e,n,Se),i=Ve(l,s,(()=>[o,void 0]));i[1]=a,i[0]===a&&Le(Me(l,s))&&Le(Me(e,n))&&Le(Me(r,t))&&p(),D()}})),R=e.addValueListener(null,((e,t,n,s)=>{if(i){S();const e=Ve(l,t,(()=>[s,void 0]));e[1]=n,e[0]===n&&Le(Me(l,t))&&p(),D()}}))}};return re(x.clear())}),(e=>e._registerListeners())),Ke=(e,t)=>(e??0)<(t??0)?-1:1,Ue=je((e=>{const n=Se(),s=Se(),[a,o,r]=qe((()=>v)),[l,i,c,d,u,g,h,,f,b,C,L]=We(e,Se,(e=>A(e)?t:Q(e)?q(e,R):R(e)),a,o),w=(t,n,s)=>{const a=u(t);Te(s,((t,s)=>n(s,(n=>Te(t,(t=>n(t,(n=>e.forEachCell(a,t,n)))))))))},v={setIndexDefinition:(e,t,a,r,l,i=Ke)=>{const c=A(l)?void 0:([e],[t])=>l(e,t);return f(e,t,((t,a,l,d,u,f)=>{let b=0;const C=Oe(),L=Oe(),w=g(e);if(Te(a,(([e,t],n)=>{const s=Oe(e),a=Oe(t);Te(s,(e=>ye(a,e)?ye(s,e):0)),Te(s,(e=>{Pe(C,e),k(Ie(w,e),(t=>{ye(t,n),Le(t)&&(Me(w,e),b=1)}))})),Te(a,(e=>{Pe(C,e),Ce(w,e)||(Me(w,e,Oe()),b=1),Pe(Ie(w,e),n),A(r)||Pe(L,e)}))})),t(),Le(u)||(f?Re(w,(e=>Pe(L,e))):Re(l,(e=>k(Ie(d,e),(e=>Pe(L,e))))),Te(L,(e=>{const t=(t,n)=>i(Ie(u,t),Ie(u,n),e),n=[...Ie(w,e)];j(n,t)||(Me(w,e,Oe(_(n,t))),Pe(C,e))}))),(b||f)&&!A(c)){const t=[...w];j(t,c)||(h(e,Se(_(t,c))),b=1)}b&&o(n,[e]),Te(C,(t=>o(s,[e,t])))}),$e(a),k(r,$e)),v},delIndexDefinition:e=>(b(e),v),getStore:l,getIndexIds:i,forEachIndex:e=>c(((t,n)=>e(t,(e=>w(t,e,n))))),forEachSlice:(e,t)=>w(e,t,g(e)),hasIndex:d,hasSlice:(e,t)=>Ce(g(e),t),getTableId:u,getSliceIds:e=>pe(g(e)),getSliceRowIds:(e,t)=>we(Ie(g(e),t)),addIndexIdsListener:C,addSliceIdsListener:(e,t)=>a(t,n,[e]),addSliceRowIdsListener:(e,t,n)=>a(n,s,[e,t]),delListener:e=>(r(e),v),destroy:L,getListenerStats:()=>({})};return re(v)})),Xe=Se([["avg",[(e,t)=>G(e)/t,(e,t,n)=>e+(t-e)/(n+1),(e,t,n)=>e+(e-t)/(n-1),(e,t,n,s)=>e+(t-n)/s]],["max",[e=>D(...e),(e,t)=>D(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:D(t,e)]],["min",[e=>E(...e),(e,t)=>E(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:E(t,e)]],["sum",[e=>G(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,n)=>e-n+t]]]),Ye=(e,t,n,s,a,o=!1)=>{if(Le(n))return;const[r,l,i,c]=a;return o||=A(e),Te(s,(([n,s])=>{o||(e=A(n)?l?.(e,s,t++):A(s)?i?.(e,n,t--):c?.(e,s,n,t),o||=A(e))})),o?r(we(n),be(n)):e},Ze=je((e=>{const n=Se(),[s,a,o]=qe((()=>L)),[r,l,i,c,d,u,g,,h,f,b,C]=We(e,O,(e=>isNaN(e)||A(e)||!0===e||!1===e||e===t?void 0:1*e),s,a),L={setMetricDefinition:(e,t,s,o,r,l,i)=>{const c=F(s)?[s,r,l,i]:Ie(Xe,s)??Ie(Xe,"sum");return h(e,t,((t,s,o,r,l,i)=>{const d=u(e),h=be(r);i||=A(d),t();let f=Ye(d,h,r,s,c,i);H(f)||(f=void 0),f!=d&&(g(e,f),a(n,[e],f,d))}),$e(o,1)),L},delMetricDefinition:e=>(f(e),L),getStore:r,getMetricIds:l,forEachMetric:i,hasMetric:c,getTableId:d,getMetric:u,addMetricIdsListener:b,addMetricListener:(e,t)=>s(t,n,[e]),delListener:e=>(o(e),L),destroy:C,getListenerStats:()=>({})};return re(L)})),et=Se(),tt=Se(),nt=(e,t,n,s,a,o,r,l={},i=[])=>{let c,d,u,g=0;Ve(et,i,(()=>0)),Ve(tt,i,(()=>[]));const[h,f,b,C,L]=((e=1,t)=>e>1&&"getMergeableContent"in t?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[e],[t]])=>!ge(e)||!ge(t),t.setDefaultContent]:2!=e?[0,t.getContent,t.getTransactionChanges,([e,t])=>!ge(e)||!ge(t),t.setContent]:0)(r,e),w=t=>{(h&&Q(t?.[0])?1===t?.[2]?e.applyMergeableChanges:e.setMergeableContent:1===t?.[2]?e.applyChanges:e.setContent)(t)},v=async e=>(2!=g&&(g=1,await p((async()=>{try{w(await t())}catch(t){o?.(t),e&&L(e)}g=0}))),I),T=()=>(d&&(a(d),d=void 0),I),y=async e=>(1!=g&&(g=2,await p((async()=>{try{await n(f,e)}catch(e){o?.(e)}g=0}))),I),S=()=>(k(u,e.delListener),u=void 0,I),p=async(...e)=>(X(Ie(tt,i),...e),await(async()=>{if(!Ie(et,i)){for(Me(et,i,1);!A(c=Z(Ie(tt,i)));)try{await c()}catch(e){o?.(e)}Me(et,i,0)}})(),I),I={load:v,startAutoLoad:async e=>(await T().load(e),d=s((async(e,t)=>{t||e?2!=g&&(g=1,w(t??e),g=0):await v()})),I),stopAutoLoad:T,isAutoLoading:()=>!A(d),save:y,startAutoSave:async()=>(await S().save(),u=e.addDidFinishTransactionListener((()=>{const e=b();C(e)&&y(e)})),I),stopAutoSave:S,isAutoSaving:()=>!A(u),schedule:p,getStore:()=>e,destroy:()=>T().stopAutoSave(),getStats:()=>({}),...l};return re(I)},st=new globalThis.TextEncoder,at=e=>{let t=2166136261;return B(st.encode(e),(e=>{t^=e,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)})),t>>>0},ot=([e,t,n])=>[e,t,n],rt=([e,t])=>lt(e,t),lt=(e,t)=>t?[e,t]:[e],it=e=>e[2],ct=(e,t)=>at(e+":"+t),dt=(e,t)=>t>e?(e?at(e):0)^at(t):0,ut=(e,t)=>((e??"")>(t??"")?e:t)??"",gt=(e,t,n)=>{e[2]=t>>>0,n>e[1]&&(e[1]=n)},ht=(e=t)=>lt(le(),e),ft=(e=t)=>[Se(),e,0],bt=([e,t,n],s=ot)=>[De(e,s),t,n],Ct=([e,t],n=rt)=>lt(De(e,n),t),Lt=(t,n)=>Q(t)&&3==N(t)&&x(t[1])&&e(t[2])==a&&H(t[2])&&n(t[0]),wt=2**36,vt=2**30,Tt=2**24,yt=2**18,St=4096,pt=64,It=e=>String.fromCharCode(48+(63&e)),Rt=(e,t)=>((e,t)=>e.charCodeAt(t))(e,t)-48,Mt=e=>{let t=0,n=-1;const s=at(e),a=e=>{const s=t,[a,o]=A(e)||""==e?[0,0]:[Rt(r=e,0)*wt+Rt(r,1)*vt+Rt(r,2)*Tt+Rt(r,3)*yt+Rt(r,4)*St+Rt(r,5)*pt+Rt(r,6),Rt(r,7)*yt+Rt(r,8)*St+Rt(r,9)*pt+Rt(r,10),Rt(r,11)*Tt+Rt(r,12)*yt+Rt(r,13)*St+Rt(r,14)*pt+Rt(r,15)];var r;t=D(s,a,Date.now()),n=t==s?t==a?D(n,o):n:t==a?o:-1};return[()=>{return a(),o=++n,r=s,It((e=t)/wt)+It(e/vt)+It(e/Tt)+It(e/yt)+It(e/St)+It(e/pt)+It(e)+It(o/yt)+It(o/St)+It(o/pt)+It(o)+It(r/Tt)+It(r/yt)+It(r/St)+It(r/pt)+It(r);var e,o,r},a]},Vt=(e,n,s,a,o,r,l={})=>{let i;const[c]=Mt(e.getId()),d=Se();s(((t,s,a,o)=>{0==a?k(Ie(d,s),(([e,n])=>A(e)||e==t?n(o,t):0)):2==a&&f.isAutoLoading()?h(t,o).then((e=>{i?.(void 0,e)})):3==a&&f.isAutoLoading()?i?.(void 0,o):k(1==a&&f.isAutoSaving()?e.getMergeableContentHashes():4==a?e.getMergeableTableDiff(o):5==a?e.getMergeableRowDiff(o):6==a?e.getMergeableCellDiff(o):7==a?e.getMergeableValueDiff(o):void 0,(e=>{n(t,s,0,e)}))}));const u=async(e,s,a=t)=>new m(((t,r)=>{const l=c(),i=setTimeout((()=>{ye(d,l),r(`No response from ${e??"anyone"} to '${s}'`)}),1e3*o);Me(d,l,[e,(e,n)=>{clearTimeout(i),ye(d,l),t([e,n])}]),n(e,l,s,a)})),g=(e,[t,n])=>{de(t,(([t,n],s)=>{const a=he(e[0],s,ht);de(t,(([e,t],n)=>{const s=he(a[0],n,ht);de(e,(([e,t],n)=>s[0][n]=lt(e,t))),s[1]=ut(s[1],t)})),a[1]=ut(a[1],n)})),e[1]=ut(e[1],n)},h=async(t=null,n)=>{A(n)&&([n,t]=await u(t,1));const[s,a]=n,[o,r]=e.getMergeableContentHashes();let l=ht();if(o!=s){const[n,s]=(await u(t,4,e.getMergeableTableHashes()))[0];if(l=n,!ge(s)){const[n,a]=(await u(t,5,e.getMergeableRowHashes(s)))[0];if(g(l,n),!ge(a)){const n=(await u(t,6,e.getMergeableCellHashes(a)))[0];g(l,n)}}}return[l,r==a?ht():(await u(t,7,e.getMergeableValuesHashes()))[0],1]},f=nt(e,(async()=>{const e=await h();return ge(e[0][0])&&ge(e[1][0])?void 0:e}),(async(t,s)=>{s?n(null,null,3,s):n(null,null,2,e.getMergeableContentHashes())}),(e=>i=e),(()=>i=void 0),r,2,{startSync:async e=>await(await f.startAutoLoad(e)).startAutoSave(),stopSync:()=>f.stopAutoLoad().stopAutoSave(),destroy:()=>(a(),f.stopSync()),getSynchronizerStats:()=>({}),...l});return f},mt=je((e=>{const n=e.createStore,s=n(),a=n(),o=Se(),{addListener:r,callListeners:l,delListener:u}=a,[g,f,b,S,p,,,I,,R,M,V,m,D]=We(e,(()=>!0),O,r,l),E=(e,t,...n)=>B(n,(n=>Pe(Ve(Ve(o,t,Se),e,Oe),n))),H=e=>{k(Ie(o,e),(e=>{Re(e,((e,t)=>Te(t,(t=>e.delListener(t))))),ve(e)})),B([a,s],(t=>t.delTable(e)))},J=(e,t,n)=>E(t,e,t.addStartTransactionListener(n.startTransaction),t.addDidFinishTransactionListener((()=>n.finishTransaction()))),x={setQueryDefinition:(n,o,r)=>{I(n,o),H(n);const l=[],i=[[null,[o,null,null,[],Se()]]],c=[],d=[],u=[];r({select:(e,n)=>{const s=F(e)?[N(l)+t,e]:[A(n)?e:n,t=>t(e,n)];return X(l,s),{as:e=>s[0]=e}},join:(e,t,n)=>{const s=A(n)||F(t)?null:t,a=A(s)?t:n,o=[e,[e,s,F(a)?a:e=>e(a),[],Se()]];return X(i,o),{as:e=>o[0]=e}},where:(e,t,n)=>X(c,F(e)?e:A(n)?n=>n(e)===t:s=>s(e,t)===n),group:(e,t,n,s,a)=>{const o=[e,[e,F(t)?[t,n,s,a]:Ie(Xe,t)??[(e,t)=>t]]];return X(d,o),{as:e=>o[0]=e}},having:(e,t)=>X(u,F(e)?e:n=>n(e)===t)});const g=Se(l);if(Le(g))return x;const h=Se(i);Re(h,((e,[,t])=>k(Ie(h,t),(({3:t})=>A(e)?0:X(t,e)))));const f=Se(d);let b=s;if(Le(f)&&K(u))b=a;else{J(n,b,a);const e=Se();Re(f,((t,[n,s])=>Pe(Ve(e,n,Oe),[t,s])));const t=Oe();Re(g,(n=>Ce(e,n)?0:Pe(t,n)));const s=Se(),o=(t,s,o,r)=>k(t,(([l,i,c,d])=>{Re(s,((t,[n])=>{const s=Ve(l,t,Se),a=Ie(s,o),i=r?void 0:n;if(a!==i){const n=Oe([[a,i]]),r=be(s);Me(s,o,i),Te(Ie(e,t),(([e,t])=>{const a=Ye(d[e],r,s,n,t);d[e]=A(Fe(a))?null:a}))}})),Le(i)||!W(u,(e=>e((e=>d[e]))))?a.delRow(n,c):A(c)?t[2]=a.addRow(n,d):a.setRow(n,c,d)}));E(b,n,b.addRowListener(n,null,((a,r,l,i)=>{const c=[],d=[],u=Se(),g=b.hasRow(n,l);let h=!g;Te(t,(e=>{const[t,s,a]=i(n,l,e);X(c,s),X(d,a),h||=t})),Re(e,(e=>{const[t,,s]=i(n,l,e);(h||t)&&Me(u,e,[s])})),h&&o(xe(s,c,void 0,(([,e])=>(ye(e,l),Le(e)))),u,l,1),g&&o(xe(s,d,(()=>{const e={};return Te(t,(t=>e[t]=b.getCell(n,l,t))),[Se(),Oe(),void 0,e]}),(([,e])=>{Pe(e,l)})),u,l)})))}J(n,e,b);const C=(t,s,a,r)=>{const l=t=>e.getCell(s,a,t);B(r,(s=>{const[a,,o,r,i]=Ie(h,s),c=o?.(l,t),[d,u]=Ie(i,t)??[];c!=d&&(A(u)||D(n,u),Me(i,t,A(c)?null:[c,...m(n,1,e.addRowListener(a,c,(()=>C(t,a,c,r))))]))})),(t=>{const s=(n,s)=>e.getCell(...A(s)?[o,t,n]:n===o?[o,t,s]:[Ie(h,n)?.[0],Ie(Ie(h,n)?.[4],t)?.[0],s]);b.transaction((()=>W(c,(e=>e(s)))?Re(g,((e,a)=>ze(b,n,t,e,a(s,t)))):b.delRow(n,t)))})(t)},{3:L}=Ie(h,null);return b.transaction((()=>m(n,1,e.addRowListener(o,null,((t,s,a)=>{e.hasRow(o,a)?C(a,o,a,L):(b.delRow(n,a),Te(h,(({4:e})=>k(Ie(e,a),(([,t])=>{D(n,t),Me(e,a)})))))}))))),x},delQueryDefinition:e=>(H(e),R(e),x),getStore:g,getQueryIds:f,forEachQuery:b,hasQuery:S,getTableId:p,addQueryIdsListener:e=>M((()=>e(x))),delListener:e=>(u(e),x),destroy:V,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:n,...s}=a.getListenerStats();return s}};return ue({[h]:[1,1],[h+y]:[0,1],[L]:[0,1],[w]:[0,1],[v]:[0,5],[C]:[1,2],[y]:[0,2],[T]:[1,3]},(([e,t],n)=>{B(e?["get","has","forEach"]:["get"],(e=>x[e+c+n]=(...t)=>a[e+n](...t))),x[d+c+n+i]=(...e)=>a[d+n+i](...z(e,0,t),((n,...s)=>e[t](x,...s)),!0)})),re(x)})),Dt=je((e=>{const n=Se(),s=Se(),a=Se(),o=Se(),[r,l,i]=qe((()=>S)),[c,d,u,g,h,f,,,b,C,L,w]=We(e,(()=>[Se(),Se(),Se(),Se()]),(e=>A(e)?void 0:e+t),r,l),v=(e,t,n)=>k(f(e),(([s,,a])=>{if(!Ce(a,t)){const o=Oe();if(h(e)!=y(e))Pe(o,t);else{let e=t;for(;!A(e)&&!Ce(o,e);)Pe(o,e),e=Ie(s,e)}if(n)return o;Me(a,t,o)}return Ie(a,t)})),T=(e,t)=>k(f(e),(([,,e])=>Me(e,t))),y=e=>Ie(n,e),S={setRelationshipDefinition:(e,t,r,i)=>(Me(n,e,r),b(e,t,((t,n)=>{const r=Oe(),i=Oe(),c=Oe(),[d,u]=f(e);Te(n,(([t,n],s)=>{A(t)||(Pe(i,t),k(Ie(u,t),(e=>{ye(e,s),Le(e)&&Me(u,t)}))),A(n)||(Pe(i,n),Ce(u,n)||Me(u,n,Oe()),Pe(Ie(u,n),s)),Pe(r,s),Me(d,s,n),Re(Ie(o,e),(t=>{Ce(v(e,t),s)&&Pe(c,t)}))})),t(),Te(r,(t=>l(s,[e,t]))),Te(i,(t=>l(a,[e,t]))),Te(c,(t=>{T(e,t),l(o,[e,t])}))}),$e(i)),S),delRelationshipDefinition:e=>(Me(n,e),C(e),S),getStore:c,getRelationshipIds:d,forEachRelationship:t=>u((n=>t(n,(t=>e.forEachRow(h(n),t))))),hasRelationship:g,getLocalTableId:h,getRemoteTableId:y,getRemoteRowId:(e,t)=>Ie(f(e)?.[0],t),getLocalRowIds:(e,t)=>we(Ie(f(e)?.[1],t)),getLinkedRowIds:(e,t)=>A(f(e))?[t]:we(v(e,t,!0)),addRelationshipIdsListener:L,addRemoteRowIdListener:(e,t,n)=>r(n,s,[e,t]),addLocalRowIdsListener:(e,t,n)=>r(n,a,[e,t]),addLinkedRowIdsListener:(e,t,n)=>(v(e,t),r(n,o,[e,t])),delListener:e=>(T(...i(e)??[]),S),destroy:w,getListenerStats:()=>({})};return re(S)})),Et=e=>[e,e],Ht=()=>[Se(),Se()],At=e=>[...e],kt=([e,t])=>e===t,Jt=e=>JSON.stringify(e,((e,t)=>t instanceof Map?ee.fromEntries([...t]):t)),xt=JSON.parse,Ft=(e,t,n)=>Me(e,t,Ie(e,t)==-n?void 0:n),Qt=()=>{let e,t,n=!1,s=!1,o=0,c=[];const g=Se(),v=Se(),M=Se(),V=Se(),m=Se(),D=Se(),E=Se(),H=Se(),x=Se(),Q=Se(),N=Se(),O=Se(),W=Se(),j=Se(),G=Oe(),K=Se(),U=Se(),Y=Se(),Z=Se(),ee=Ht(),te=Ht(),ne=Ht(),se=Ht(),ae=Ht(),oe=Ht(),le=Ht(),de=Ht(),he=Ht(),we=Ht(),xe=Ht(),Qe=Ht(),We=Ht(),$e=Ht(),je=Ht(),_e=Ht(),Ge=Ht(),Ue=Ht(),Xe=Ht(),Ye=Ht(),Ze=Ht(),et=Ht(),tt=Se(),nt=Ht(),[st,at,ot,rt]=qe((()=>xn)),lt=e=>{if(!fe(e,((e,t)=>P([r,l],t))))return!1;const t=e[r];return!(!J(t)&&t!=a||(Fe(e[l])!=t&&ce(e,l),0))},it=(t,n)=>(!e||Ce(N,n)||Bt(n))&&fe(t,((e,t)=>ct(n,t,e)),(()=>Bt(n))),ct=(e,t,n,s)=>fe(s?n:ht(n,e,t),((s,a)=>k(dt(e,t,a,s),(e=>(n[a]=e,!0)),(()=>!1))),(()=>Bt(e,t))),dt=(t,n,s,a)=>e?k(Ie(Ie(N,t),s),(e=>Fe(a)!=e[r]?Bt(t,n,s,a,e[l]):a),(()=>Bt(t,n,s,a))):A(Fe(a))?Bt(t,n,s,a):a,ut=(e,t)=>fe(t?e:ft(e),((t,n)=>k(gt(n,t),(t=>(e[n]=t,!0)),(()=>!1))),(()=>qt())),gt=(e,n)=>t?k(Ie(W,e),(t=>Fe(n)!=t[r]?qt(e,n,t[l]):n),(()=>qt(e,n))):A(Fe(n))?qt(e,n):n,ht=(e,t,n)=>(k(Ie(O,t),(([s,a])=>{Te(s,((t,n)=>{ie(e,n)||(e[n]=t)})),Te(a,(s=>{ie(e,s)||Bt(t,n,s)}))})),e),ft=e=>(t&&(Te(j,((t,n)=>{ie(e,n)||(e[n]=t)})),Te(G,(t=>{ie(e,t)||qt(t)}))),e),bt=e=>me(N,e,((e,t,n)=>{const s=Se(),a=Oe();me(Ve(N,t,Se),n,((e,t,n)=>{Me(e,t,n),k(n[l],(e=>Me(s,t,e)),(()=>Pe(a,t)))})),Me(O,t,[s,a])}),((e,t)=>{Me(N,t),Me(O,t)})),Ct=e=>me(W,e,((e,t,n)=>{Me(W,t,n),k(n[l],(e=>Me(j,t,e)),(()=>Pe(G,t)))}),((e,t)=>{Me(W,t),Me(j,t),ye(G,t)})),Lt=e=>ge(e)?Mn():yn(e),wt=e=>me(Y,e,((e,t,n)=>vt(t,n)),((e,t)=>mt(t))),vt=(e,t)=>me(Ve(Y,e,(()=>(Ot(e,1),Me(K,e,Be()),Me(U,e,Se()),Se()))),t,((t,n,s)=>Tt(e,t,n,s)),((t,n)=>Dt(e,t,n))),Tt=(e,t,n,s,a)=>me(Ve(t,n,(()=>(Pt(e,n,1),Se()))),s,((t,s,a)=>yt(e,n,t,s,a)),((s,o)=>zt(e,t,n,s,o,a))),yt=(e,t,n,s,a)=>{Ce(n,s)||Wt(e,t,s,1);const o=Ie(n,s);a!==o&&($t(e,t,s,o,a),Me(n,s,a))},St=(e,t,n,s,a)=>k(Ie(t,n),(t=>yt(e,n,t,s,a)),(()=>Tt(e,t,n,ht({[s]:a},e,n)))),pt=e=>ge(e)?Dn():Sn(e),It=e=>me(Z,e,((e,t,n)=>Rt(t,n)),((e,t)=>Nt(t))),Rt=(e,t)=>{Ce(Z,e)||jt(e,1);const n=Ie(Z,e);t!==n&&(_t(e,n,t),Me(Z,e,t))},Mt=(e,t)=>{const[n]=Ie(K,e),s=n(t);return Ce(Ie(Y,e),s)?Mt(e,t):s},Vt=e=>Ie(Y,e)??vt(e,{}),mt=e=>vt(e,{}),Dt=(e,t,n)=>{const[,s]=Ie(K,e);s(n),Tt(e,t,n,{},!0)},zt=(e,t,n,s,a,o)=>{const r=Ie(Ie(O,e)?.[0],a);if(!A(r)&&!o)return yt(e,n,s,a,r);const l=t=>{$t(e,n,t,Ie(s,t)),Wt(e,n,t,-1),Me(s,t)};A(r)?l(a):Re(s,l),Le(s)&&(Pt(e,n,-1),Le(Me(t,n))&&(Ot(e,-1),Me(Y,e),Me(K,e),Me(U,e)))},Nt=e=>{const t=Ie(j,e);if(!A(t))return Rt(e,t);_t(e,Ie(Z,e)),jt(e,-1),Me(Z,e)},Ot=(e,t)=>Ft(g,e,t),Pt=(e,t,n)=>Ft(Ve(V,e,Se),t,n)&&Me(M,e,Ve(M,e,(()=>0))+n),Wt=(e,t,n,s)=>{const a=Ie(U,e),o=Ie(a,n)??0;(0==o&&1==s||1==o&&-1==s)&&Ft(Ve(v,e,Se),n,s),Me(a,n,o!=-s?o+s:null),Ft(Ve(Ve(m,e,Se),t,Se),n,s)},$t=(e,t,n,s,a)=>{Ve(Ve(Ve(D,e,Se),t,Se),n,(()=>[s,0]))[1]=a,c[3]?.(e,t,n,a)},jt=(e,t)=>Ft(E,e,t),_t=(e,t,n)=>{Ve(H,e,(()=>[t,0]))[1]=n,c[4]?.(e,n)},Bt=(e,t,n,s,a)=>(X(Ve(Ve(Ve(x,e,Se),t,Se),n,(()=>[])),s),a),qt=(e,t,n)=>(X(Ve(Q,e,(()=>[])),t),n),Gt=(e,t,n)=>k(Ie(Ie(Ie(D,e),t),n),(([e,t])=>[!0,e,t]),(()=>[!1,...Et(dn(e,t,n))])),Kt=e=>k(Ie(H,e),(([e,t])=>[!0,e,t]),(()=>[!1,...Et(hn(e))])),Ut=e=>Le(x)||Le(_e[e])?0:Te(e?Je(x):x,((t,n)=>Te(t,((t,s)=>Te(t,((t,a)=>at(_e[e],[n,s,a],t))))))),Xt=e=>Le(Q)||Le(Ge[e])?0:Te(e?Ae(Q):Q,((t,n)=>at(Ge[e],[n],t))),Yt=(e,t,n,s)=>{if(!Le(e))return at(t,s,(()=>De(e))),Re(e,((e,t)=>at(n,[...s??[],e],1==t))),1},Zt=e=>{const t=fn();t!=n&&at(ee[e],void 0,t);const s=Le(we[e]),a=Le(We[e])&&Le($e[e])&&Le(he[e])&&Le(xe[e])&&Le(oe[e])&&Le(le[e])&&Le(de[e])&&s&&Le(ne[e])&&Le(se[e]),o=Le(je[e])&&Le(Qe[e])&&Le(ae[e])&&Le(te[e]);if(!a||!o){const t=e?[Ae(g),ke(v),Ae(M),ke(V),Je(m),Je(D)]:[g,v,M,V,m,D];if(!a){Yt(t[0],ne[e],se[e]),Te(t[1],((t,n)=>Yt(t,oe[e],le[e],[n]))),Te(t[2],((t,n)=>{0!=t&&at(de[e],[n],on(n))}));const n=Oe();Te(t[3],((t,a)=>{Yt(t,he[e],xe[e],[a])&&!s&&(at(we[e],[a,null]),Pe(n,a))})),s||Te(t[5],((t,s)=>{if(!Ce(n,s)){const n=Oe();Te(t,(e=>Te(e,(([t,s],a)=>s!==t?Pe(n,a):ye(e,a))))),Te(n,(t=>at(we[e],[s,t])))}})),Te(t[4],((t,n)=>Te(t,((t,s)=>Yt(t,We[e],$e[e],[n,s])))))}if(!o){let n;Te(t[5],((t,s)=>{let a;Te(t,((t,o)=>{let r;Te(t,(([t,l],i)=>{l!==t&&(at(je[e],[s,o,i],l,t,Gt),n=a=r=1)})),r&&at(Qe[e],[s,o],Gt)})),a&&at(ae[e],[s],Gt)})),n&&at(te[e],void 0,Gt)}}},en=e=>{const t=vn();t!=s&&at(Ue[e],void 0,t);const n=Le(Ye[e])&&Le(Ze[e]),a=Le(et[e])&&Le(Xe[e]);if(!n||!a){const t=e?[Ae(E),Ae(H)]:[E,H];if(n||Yt(t[0],Ye[e],Ze[e]),!a){let n;Te(t[1],(([t,s],a)=>{s!==t&&(at(et[e],[a],s,t,Kt),n=1)})),n&&at(Xe[e],void 0,Kt)}}},tn=(e,...t)=>(An((()=>e(...q(t,R)))),xn),nn=()=>He(Y),sn=()=>pe(Y),an=e=>pe(Ie(U,R(e))),on=e=>be(Ie(Y,R(e))),rn=e=>pe(Ie(Y,R(e))),ln=(e,t,n,s=0,a)=>{return q(z(_((o=Ie(Y,R(e)),r=(e,n)=>[A(t)?n:Ie(e,R(t)),n],q([...o?.entries()??[]],(([e,t])=>r(t,e)))),(([e],[t])=>Ke(e,t)*(n?-1:1))),s,A(a)?a:s+a),(([,e])=>e));var o,r},cn=(e,t)=>pe(Ie(Ie(Y,R(e)),R(t))),dn=(e,t,n)=>Ie(Ie(Ie(Y,R(e)),R(t)),R(n)),un=()=>De(Z),gn=()=>pe(Z),hn=e=>Ie(Z,R(e)),fn=()=>!Le(Y),bn=e=>Ce(Y,R(e)),Cn=(e,t)=>Ce(Ie(U,R(e)),R(t)),Ln=(e,t)=>Ce(Ie(Y,R(e)),R(t)),wn=(e,t,n)=>Ce(Ie(Ie(Y,R(e)),R(t)),R(n)),vn=()=>!Le(Z),Tn=e=>Ce(Z,R(e)),yn=e=>tn((()=>(e=>fe(e,it,Bt))(e)?wt(e):0)),Sn=e=>tn((()=>ut(e)?It(e):0)),pn=e=>{try{Lt(xt(e))}catch{}return xn},In=t=>tn((()=>{if((e=fe(t,(e=>fe(e,lt))))&&(bt(t),!Le(Y))){const e=nn();Mn(),yn(e)}})),Rn=e=>tn((()=>{if(t=(e=>fe(e,lt))(e)){const n=un();Hn(),Dn(),t=!0,Ct(e),Sn(n)}})),Mn=()=>tn((()=>wt({}))),Vn=e=>tn((e=>Ce(Y,e)?mt(e):0),e),mn=(e,t)=>tn(((e,t)=>k(Ie(Y,e),(n=>Ce(n,t)?Dt(e,n,t):0))),e,t),Dn=()=>tn((()=>It({}))),En=()=>tn((()=>{bt({}),e=!1})),Hn=()=>tn((()=>{Ct({}),t=!1})),An=(e,t)=>{if(-1!=o){kn();const n=e();return Jn(t),n}},kn=()=>(-1!=o&&o++,1==o&&(c[0]?.(),at(tt)),xn),Jn=e=>(o>0&&(o--,0==o&&(o=1,Ut(1),Le(D)||Zt(1),Xt(1),Le(H)||en(1),e?.(xn)&&(Te(D,((e,t)=>Te(e,((e,n)=>Te(e,(([e],s)=>ze(xn,t,n,s,e))))))),ve(D),Te(H,(([e],t)=>Ne(xn,t,e))),ve(H)),at(nt[0],void 0),o=-1,Ut(0),Le(D)||Zt(0),Xt(0),Le(H)||en(0),c[1]?.(),at(nt[1],void 0),c[2]?.(),o=0,n=fn(),s=vn(),B([g,v,M,V,m,D,x,E,H,Q],ve))),xn),xn={getContent:()=>[nn(),un()],getTables:nn,getTableIds:sn,getTable:e=>Ee(Ie(Y,R(e))),getTableCellIds:an,getRowCount:on,getRowIds:rn,getSortedRowIds:ln,getRow:(e,t)=>De(Ie(Ie(Y,R(e)),R(t))),getCellIds:cn,getCell:dn,getValues:un,getValueIds:gn,getValue:hn,hasTables:fn,hasTable:bn,hasTableCell:Cn,hasRow:Ln,hasCell:wn,hasValues:vn,hasValue:Tn,getTablesJson:()=>Jt(Y),getValuesJson:()=>Jt(Z),getJson:()=>Jt([Y,Z]),getTablesSchemaJson:()=>Jt(N),getValuesSchemaJson:()=>Jt(W),getSchemaJson:()=>Jt([N,W]),hasTablesSchema:()=>e,hasValuesSchema:()=>t,setContent:([e,t])=>tn((()=>{(ge(e)?Mn:yn)(e),(ge(t)?Dn:Sn)(t)})),setTables:yn,setTable:(e,t)=>tn((e=>it(t,e)?vt(e,t):0),e),setRow:(e,t,n)=>tn(((e,t)=>ct(e,t,n)?Tt(e,Vt(e),t,n):0),e,t),addRow:(e,t,n=!0)=>An((()=>{let s;return ct(e,s,t)&&(e=R(e),Tt(e,Vt(e),s=Mt(e,n?1:0),t)),s})),setPartialRow:(e,t,n)=>tn(((e,t)=>{if(ct(e,t,n,1)){const s=Vt(e);ue(n,((n,a)=>St(e,s,t,a,n)))}}),e,t),setCell:(e,t,n,s)=>tn(((e,t,n)=>k(dt(e,t,n,F(s)?s(dn(e,t,n)):s),(s=>St(e,Vt(e),t,n,s)))),e,t,n),setValues:Sn,setPartialValues:e=>tn((()=>ut(e,1)?ue(e,((e,t)=>Rt(t,e))):0)),setValue:(e,t)=>tn((e=>k(gt(e,F(t)?t(hn(e)):t),(t=>Rt(e,t)))),e),applyChanges:e=>tn((()=>{ue(e[0],((e,t)=>A(e)?Vn(t):ue(e,((e,n)=>A(e)?mn(t,n):ue(e,((e,s)=>ze(xn,t,n,s,e))))))),ue(e[1],((e,t)=>Ne(xn,t,e)))})),setTablesJson:pn,setValuesJson:e=>{try{pt(xt(e))}catch{}return xn},setJson:e=>tn((()=>{try{const[t,n]=xt(e);Lt(t),pt(n)}catch{pn(e)}})),setTablesSchema:In,setValuesSchema:Rn,setSchema:(e,t)=>tn((()=>{In(e),Rn(t)})),delTables:Mn,delTable:Vn,delRow:mn,delCell:(e,t,n,s)=>tn(((e,t,n)=>k(Ie(Y,e),(a=>k(Ie(a,t),(o=>Ce(o,n)?zt(e,a,t,o,n,s):0))))),e,t,n),delValues:Dn,delValue:e=>tn((e=>Ce(Z,e)?Nt(e):0),e),delTablesSchema:En,delValuesSchema:Hn,delSchema:()=>tn((()=>{En(),Hn()})),transaction:An,startTransaction:kn,getTransactionChanges:()=>[De(D,((e,t)=>-1===Ie(g,t)?void 0:De(e,((e,n)=>-1===Ie(Ie(V,t),n)?void 0:De(e,(([,e])=>e),(e=>kt(e)))),Le,ge)),Le,ge),De(H,(([,e])=>e),(e=>kt(e))),1],getTransactionLog:()=>[!Le(D),!Le(H),He(D,At,kt),He(x),De(H,At,kt),De(Q),De(g),Ee(V),He(m),De(E)],finishTransaction:Jn,forEachTable:e=>Te(Y,((t,n)=>e(n,(e=>Te(t,((t,n)=>e(n,(e=>Re(t,e))))))))),forEachTableCell:(e,t)=>Re(Ie(U,R(e)),t),forEachRow:(e,t)=>Te(Ie(Y,R(e)),((e,n)=>t(n,(t=>Re(e,t))))),forEachCell:(e,t,n)=>Re(Ie(Ie(Y,R(e)),R(t)),n),forEachValue:e=>Re(Z,e),addSortedRowIdsListener:(e,t,n,s,a,o,r)=>{let l=ln(e,t,n,s,a);return st((()=>{const r=ln(e,t,n,s,a);$(r,l)||(l=r,o(xn,e,t,n,s,a,l))}),we[r?1:0],[e,t],[sn])},addStartTransactionListener:e=>st(e,tt),addWillFinishTransactionListener:e=>st(e,nt[0]),addDidFinishTransactionListener:e=>st(e,nt[1]),callListener:e=>(rt(e),xn),delListener:e=>(ot(e),xn),getListenerStats:()=>({}),createStore:Qt,addListener:st,callListeners:at,setInternalListeners:(e,t,n,s,a)=>c=[e,t,n,s,a]};return ue({[u+f]:[0,ee,[],()=>[fn()]],[f]:[0,te],[b]:[0,ne],[u+h]:[1,se,[sn],e=>[bn(...e)]],[h]:[1,ae,[sn]],[h+y]:[1,oe,[sn]],[u+h+T]:[2,le,[sn,an],e=>[Cn(...e)]],[L]:[1,de,[sn]],[w]:[1,he,[sn]],[u+C]:[2,xe,[sn,rn],e=>[Ln(...e)]],[C]:[2,Qe,[sn,rn]],[y]:[2,We,[sn,rn]],[u+T]:[3,$e,[sn,rn,cn],e=>[wn(...e)]],[T]:[3,je,[sn,rn,cn],e=>Et(dn(...e))],InvalidCell:[3,_e],[u+p]:[0,Ue,[],()=>[vn()]],[p]:[0,Xe],[I]:[0,Ye],[u+S]:[1,Ze,[gn],e=>[Tn(...e)]],[S]:[1,et,[gn],e=>Et(hn(e[0]))],InvalidValue:[1,Ge]},(([e,t,n,s],a)=>{xn[d+a+i]=(...a)=>st(a[e],t[a[e+1]?1:0],e>0?z(a,0,e):void 0,n,s)})),re(xn)},zt={HasTable:1,Table:1,TableCellIds:1,HasTableCell:2,RowCount:1,RowIds:1,SortedRowIds:5,HasRow:2,Row:2,CellIds:2,HasCell:3,Cell:3,HasValue:1,Value:1,InvalidCell:3,InvalidValue:1},Nt=(e=t)=>[ft(e),ft(e)],Ot=e=>{let n=1,s=Nt(),a=0;const o=Se(),r=Oe(),[l,i]=Mt(e),c=Qt(),d=e=>{const t=n;return n=0,e(),n=t,b},u=(e,n=0)=>{const a={},o={},[[r,l=t,c=0],d]=e,[u,h]=s,[f,b,C]=u;let L=n?c:C,w=l;de(r,(([e,s=t,o=0],r)=>{const l=Ve(f,r,ft),[i,c,d]=l;let u=n?o:d,h=s;de(e,((e,t)=>{const[s,o,l]=g(e,Ve(i,t,ft),he(he(a,r,le),t,le),n);u^=n?0:(o?ct(t,o):0)^ct(t,l),h=ut(h,s)})),u^=n?0:dt(c,s),gt(l,u,s),L^=n?0:(d?ct(r,d):0)^ct(r,l[2]),w=ut(w,h)})),L^=n?0:dt(b,l),gt(u,L,l);const[v]=g(d,h,o,n);return i(ut(w,v)),[a,o,1]},g=(e,n,s,a)=>{const[o,r=t,l=0]=e,[i,c,d]=n;let u=r,g=a?l:d;return de(o,(([e,n,o=0],r)=>{const l=Ve(i,r,(()=>[void 0,t,0])),[,c,d]=l;(!c||n>c)&&(gt(l,a?o:at(Jt(e??null)+":"+n),n),l[0]=e,s[r]=e,g^=a?0:ct(r,d)^ct(r,l[2]),u=ut(u,n))})),g^=a?0:dt(c,r),gt(n,g,r),[u,d,n[2]]},h=()=>[bt(s[0],(e=>bt(e,(e=>bt(e))))),bt(s[1])],f=e=>d((()=>c.applyChanges(u(e)))),b={getId:()=>e,getMergeableContent:h,getMergeableContentHashes:()=>[s[0][2],s[1][2]],getMergeableTableHashes:()=>De(s[0][0],it),getMergeableTableDiff:e=>{const t=ht(s[0][1]),n={};return Re(s[0][0],((s,[a,o,r])=>ie(e,s)?r!=e[s]?n[s]=r:0:t[0][s]=Ct([a,o],(e=>Ct(e))))),[t,n]},getMergeableRowHashes:e=>{const t={};return de(e,((e,n)=>k(Ie(s[0][0],n),(([s,,a])=>a!=e?Re(s,((e,[,,s])=>he(t,n,le)[e]=s)):0)))),t},getMergeableRowDiff:e=>{const t=ht(s[0][1]),n={};return de(e,((e,a)=>Re(Ie(s[0][0],a)?.[0],((s,[o,r,l])=>ie(e,s)?l!==e[s]?he(n,a,le)[s]=l:0:he(t[0],a,ht)[0][s]=Ct([o,r]))))),[t,n]},getMergeableCellHashes:e=>{const t={};return de(e,((e,n)=>k(Ie(s[0][0],n),(([s])=>de(e,((e,a)=>k(Ie(s,a),(([s,,o])=>o!==e?Re(s,((e,[,,s])=>he(he(t,n,le),a,le)[e]=s)):0)))))))),t},getMergeableCellDiff:e=>{const[[t,n]]=s,a={};return de(e,((e,n)=>de(e,((e,s)=>k(Ie(t,n),(([t,o])=>k(Ie(t,s),(([t,r])=>Re(t,((t,[l,i,c])=>c!==e[t]?he(he(a,n,(()=>ht(o)))[0],s,(()=>ht(r)))[0][t]=[l,i]:0)))))))))),lt(a,n)},getMergeableValuesHashes:()=>De(s[1][0],it),getMergeableValueDiff:e=>{const[,[t,n]]=s,a=De(t,rt,(([,,t],n)=>t==e?.[n]));return lt(a,n)},setMergeableContent:e=>d((()=>(e=>Q(e)&&2==N(e)&&Lt(e[0],(e=>fe(e,(e=>Lt(e,(e=>fe(e,(e=>Lt(e,(e=>fe(e,(e=>Lt(e,Qe)),void 0,1)))),void 0,1)))),void 0,1)))&&Lt(e[1],(e=>fe(e,(e=>Lt(e,Qe)),void 0,1))))(e)?c.transaction((()=>{c.delTables().delValues(),s=Nt(),c.applyChanges(u(e,1))})):0)),setDefaultContent:e=>(c.transaction((()=>{a=1,c.setContent(e),a=0})),b),getTransactionMergeableChanges:()=>{const[[e,t],[n,a]]=s,l={};Te(o,((t,n)=>k(Ie(e,n),(([e,s])=>{const a={};Te(t,((t,n)=>k(Ie(e,n),(([e,s])=>{const o={};Te(t,(t=>{k(Ie(e,t),(([e,n])=>o[t]=lt(e,n)))})),a[n]=lt(o,s)})))),l[n]=lt(a,s)}))));const i={};return Te(r,(e=>k(Ie(n,e),(([t,n])=>i[e]=lt(t,n))))),[lt(l,t),lt(i,a),1]},applyMergeableChanges:f,merge:e=>{const t=h(),n=e.getMergeableContent();return e.applyMergeableChanges(t),f(n)}};return c.setInternalListeners((()=>{}),(()=>{}),(()=>{ve(o),ve(r)}),((e,s,r,i)=>{Pe(Ve(Ve(o,e,Se),s,Oe),r),n&&u([[{[e]:[{[s]:[{[r]:[i,a?t:l()]}]}]}],[{}],1])}),((e,s)=>{Pe(r,e),n&&u([[{}],[{[e]:[s,a?t:l()]}],1])})),ue(c,((e,t)=>b[t]=M(t,"set")||M(t,"del")||M(t,"apply")||V(t,"Transaction")||"callListener"==t?(...t)=>(e(...t),b):M(t,"add")&&V(t,"Listener")?(...n)=>{const s=zt[z(t,3,-8)]??0,a=n[s];return n[s]=(e,...t)=>a(b,...t),e(...n)}:e)),re(b)};export{Ge as createCheckpoints,nt as createCustomPersister,Vt as createCustomSynchronizer,Ue as createIndexes,Ot as createMergeableStore,Ze as createMetrics,mt as createQueries,Dt as createRelationships,Qt as createStore,Ke as defaultSorter};
Binary file
package/lib/tools.js CHANGED
@@ -1 +1 @@
1
- const e=e=>typeof e,l="tinybase",t="",a=",",n=e(t),d=e(!0),o=e(0),s="type",r="default",I="Listener",$="get",c="add",u="Has",i="Ids",b="Table",p=b+"s",C=b+i,h="Row",g=h+i,m="Sorted"+h+i,w="Cell",f=w+i,T="Value",y=T+"s",v=T+i,V=Promise,x=isFinite,R=e=>null==e,A=(e,l,t)=>R(e)?t?.():l(e),k=e=>e==n||e==d,S=l=>e(l)==n,P=e=>Array.isArray(e),O=(e,l,t)=>e.slice(l,t),E=e=>e.length,L=async e=>V.all(e),N=l=>{const t=e(l);return k(t)||t==o&&x(l)?t:void 0},D=(e,l)=>e.every(l),G=(e,l)=>e.sort(l),j=(e,l)=>e.forEach(l),H=(e,l=t)=>e.join(l),M=(e,l)=>e.map(l),J=(e,l)=>e.filter(l),z=(e,...l)=>e.push(...l),W=e=>e.pop(),B=(e,...l)=>e.unshift(...l),F=e=>e.shift(),U=Object,_=e=>U.getPrototypeOf(e),Z=U.entries,Q=U.keys,q=U.freeze,K=e=>!R(e)&&A(_(e),(e=>e==U.prototype||R(_(e))),(()=>!0)),X=(e,l)=>M(Z(e),(([e,t])=>l(t,e))),Y=e=>E(Q(e)),ee=e=>K(e)&&0==Y(e),le=(e,l)=>e?.has(l)??!1,te=e=>[...e?.values()??[]],ae=(e,l)=>e?.forEach(l),ne=(e,l)=>e?.delete(l),de=e=>new Map(e),oe=(e,l)=>e?.get(l),se=(e,l)=>ae(e,((e,t)=>l(t,e))),re=(e,l)=>M([...e?.entries()??[]],(([e,t])=>l(t,e))),Ie=(e,l,t)=>R(t)?(ne(e,l),e):e?.set(l,t),$e=(e,l,t)=>(le(e,l)||Ie(e,l,t()),oe(e,l)),ce=e=>e.toUpperCase(),ue=e=>e.toLowerCase(),ie="a ",be="A function for",pe=", and registers a listener so that any changes to that result will cause a re-render",Ce="Callback",he="Count",ge="Del",me="Deps",we=me+"?: React.DependencyList",fe="doRollback?: DoRollback",Te="actions: () => Return, "+fe,ye="export",ve="Id",Ve="Invalid",xe="Json",Re=ue(I),Ae="?: ",ke=" | undefined",Se="NonNullable",Pe="Partial",Oe="Props",Ee="Provider",Le=`Registers a ${Re} that will be called`,Ne="Represents",De="rowId: "+ve,Ge="Schema",je="Set",He=", descending?: boolean, offset?: number, limit?: number",Me="[]",Je="the Store",ze="Transaction",We=ze+"Changes",Be=ue(ze),Fe="Execute a "+Be+" to make multiple mutations",Ue="Explicitly starts a "+Be,_e="Explicitly finishes a "+Be,Ze="the end of the "+Be,Qe="void",qe=" => "+Qe,Ke="WhenSet",Xe=" when setting it",Ye=ie+"string serialization of",el=" ",ll="Gets a callback that can ",tl="the ",al=" the schema for",nl=(e=0)=>e?"the existence of ":"",dl=(e=0,l=0,a=0)=>nl(a)+`the ${yl[e]}content of`+(l?el+Je:t),ol=(e=0,l,a=0,n=0)=>wl[l]+el+nl(n)+dl(e,1)+(a?" when setting it":t),sl=(e,l=0)=>Ne+` a Row when ${l?"s":"g"}etting ${dl()} the '${e}' `+b,rl=(e,l,t=0)=>`Gets ${t?"sorted, paginated":"the"} Ids of the ${e}s in `+l,Il=(e,l)=>`Calls a function for each ${e} in `+l,$l=e=>"The props passed to a component that renders "+e,cl=e=>"A function that takes "+e,ul=(e,l=0,t=0)=>be+" listening to changes to "+nl(t)+Tl[e]+" in "+Tl[l],il=(e,l,a=0,n=0)=>Le+" whenever "+nl(n)+Tl[e]+" in "+Tl[l]+" change"+(a?t:"s"),bl=e=>`the '${e}' `+b,pl=e=>"the specified Row in "+bl(e),Cl=(e,l=0,t=0)=>wl[l]+el+dl(0,0,t)+el+bl(e),hl=(e,l=0,t=0)=>wl[l]+` ${dl(0,0,t)} `+pl(e),gl=(e,l,t=0,a=0)=>wl[t]+el+nl(a)+`the '${l}' Cell for `+pl(e),ml=(e,l=0,t=0)=>wl[l]+el+nl(t)+`the '${e}' Value`,wl=["Gets","Checks existence of","Sets","Deletes","Sets part of",Ne,"Gets "+Ye,"Sets "+Ye,Le+" whenever",ll+"set",ll+"add",ll+"set part of",ll+"delete","Renders","Gets "+Ye+al,"Sets"+al,"Deletes"+al],fl=[$,"has","set","del","set","forEach",c,t],Tl=[Je,p,tl+b+el+i,ie+b,tl+h+el+i,ie+h,tl+w+el+i,ie+w,"invalid Cell changes",y,tl+T+el+i,ie+T,"invalid Value changes",tl+"sorted "+h+el+i,tl+w+el+i+" anywhere",tl+"number of Rows",ie+w+" anywhere"],yl=[t,"tabular ","keyed value "],vl=e=>new Set(P(e)||R(e)?e:[e]),Vl=(e,l)=>e?.add(l),xl=/[^A-Za-z]+/,Rl=/[^A-Za-z0-9]+/,Al=/^( *)\/\*\* *(.*?) *\*\/$/gm,kl=e=>e.includes(a),Sl=(e,l,t,a=1)=>{const n=`${l}${1==a?"":a}`;return le(e,n)?Sl(e,l,t,a+1):(Ie(e,n,t),n)},Pl=e=>e.replace(Al,((e,l,t)=>{const a=77-E(l);return`${l}/**\n${t.replace(RegExp(`([^\\n]{1,${a}})(\\s|$)`,"g"),l+" * $1\n")}${l} */`})),Ol=e=>e.flat(1e3),El=(e,l=0)=>H(M(e.split(Rl),((e,t)=>(t>0||l?ce:ue)(O(e,0,1))+O(e,1)))),Ll=e=>ce(H((e&&!xl.test(e[0])?e:" "+e).split(Rl),"_")),Nl=e=>`/** ${e}. */`,Dl=(...e)=>H(J(e,(e=>e)),", "),Gl=(...e)=>"{"+H(e,"; ")+"}",jl=(...e)=>Gl(...M(e,(e=>"readonly "+e))),Hl=()=>{const e=[de(),de(),de(),de()],l=de(),a=de(),n=e=>{const l=e.indexOf(" as ");return-1!=l?O(e,l+4):e};return[(...e)=>H(Ol(e),"\n"),(l,t,...a)=>j(a,(a=>j([0,1],(n=>(l??n)==n?Vl($e(e[n],t,vl),a):0)))),(e,a,n,d=t,o=1)=>Sl(l,e,[a,n,d,o]),(e,l,t)=>Sl(a,e,P(t)?[`(${l}) => {`,t,"}"]:[`(${l}) => ${t}`]),(e,l)=>oe(a,e)===l?e:Sl(a,e,l),(l=0)=>M([...G(re(e[l],((e,l)=>`import {${H(G(te(e),((e,l)=>n(e)>n(l)?1:-1)),", ")}} from '${l}';`)),((e,l)=>kl(e)!=kl(l)?kl(e)?-1:1:e>l?1:-1)),t],(e=>e.replace("{React}","React"))),()=>re(l,(([e,l,a,n],d)=>[Nl(l),`${n?ye+" ":t}type ${d}${a} = ${e};`,t])),()=>re(a,((e,l)=>(e=P(e)?e:[e],z(e,W(e)+";"),[`const ${l} = ${F(e)}`,e,t])))]},Ml=(e,l)=>{const t=new WeakMap;return a=>{t.has(a)||t.set(a,e(a));const n=t.get(a);return l?.(n),n}},Jl=(e,l,t)=>[l=>X(e,((e,a)=>l(a,El(a,1),t(Ll(a),`'${a}'`)))),(l,a)=>X(e[l],((e,l)=>a(l,e[s],e[r],t(Ll(l),`'${l}'`),El(l,1)))),e=>X(l,((l,a)=>e(a,l[s],l[r],t(Ll(a),`'${a}'`),El(a,1))))],zl=(e,l,a,n)=>[(n,d)=>{const o=n+": "+d,s=e(p,Gl(...l((e=>`'${e}'?: {[rowId: Id]: `+Gl(...a(e,((e,l,a)=>`'${e}'${R(a)?"?":t}: ${l}`)))+"}"))),ol(1,5)),r=e(p+Ke,Gl(...l((e=>`'${e}'?: {[rowId: Id]: `+Gl(...a(e,((e,l)=>`'${e}'?: ${l}`)))+"}"))),ol(1,5,1)),$=e(b+ve,"keyof "+s,"A "+b+" Id in "+Je),c=`<TId extends ${$}>`,i=e(b,Se+`<${s}[TId]>`,"A "+b+" in "+Je,c),T=e(b+Ke,Se+`<${r}[TId]>`,"A "+b+" in "+Je+Xe,c),y=e(h,i+"<TId>[Id]","A "+h+" in a "+b,c),v=e(h+Ke,T+"<TId>[Id]","A "+h+" in a "+b+Xe,c),V=e(w+ve,`Extract<keyof ${y}<TId>, Id>`,"A "+w+" Id in a "+h,c),x=e(w,Se+`<${s}[TId]>[Id][CId]`,"A "+w+" in a "+h,`<TId extends ${$}, CId extends ${V}<TId>>`),A=e("CellIdCellArray",`CId extends ${V}<TId> ? [cellId: CId, cell: ${x}<TId, CId>] : never`,w+" Ids and types in a "+h,`<TId extends ${$}, CId = ${V}<TId>>`,0),k=e(w+Ce,`(...[cellId, cell]: ${A}<TId>)`+qe,cl(ie+w+" Id, and "+w),c),S=e(h+Ce,"(rowId: Id, forEachCell: (cellCallback: CellCallback<TId>) "+qe+") "+qe,cl(ie+h+" Id, and a "+w+" iterator"),c),P=e(b+w+Ce,`(cellId: ${V}<TId>, count: number) `+qe,cl(ie+w+" Id, and count of how many times it appears"),c),O=e("TableIdForEachRowArray",`TId extends ${$} ? [tableId: TId, forEachRow: (rowCallback: ${S}<TId>)${qe}] : never`,b+" Ids and callback types",`<TId = ${$}>`,0),E=e(b+Ce,`(...[tableId, forEachRow]: ${O})`+qe,cl(ie+b+" Id, and a "+h+" iterator"),t),L=e("TableIdRowIdCellIdArray",`TId extends ${$} ? [tableId: TId, rowId: Id, cellId: ${V}<TId>] : never`,"Ids for GetCellChange",`<TId = ${$}>`,0),N=e("GetCellChange",`(...[tableId, rowId, cellId]: ${L}) => CellChange`,be+" returning information about any Cell's changes during a "+Be),D=e(u+p+I,`(${o}, hasTables: boolean)`+qe,ul(1,0,1)),G=e(p+I,`(${o}, getCellChange: ${N}${ke})`+qe,ul(1)),j=e(C+I,`(${o})`+qe,ul(2)),H=e(u+b+I,`(${o}, tableId: ${$}, hasTable: boolean)`+qe,ul(3,0,1)),M=e(b+I,`(${o}, tableId: ${$}, getCellChange: ${N}${ke})`+qe,ul(3)),J=e(b+f+I,`(${o}, tableId: ${$})`+qe,ul(14,3)),z=e("HasTableCellListenerArgsArrayInner",`CId extends ${V}<TId> ? [${o}, tableId: TId, cellId: CId, hasTableCell: boolean] : never`,"Cell args for HasTableCellListener",`<TId extends ${$}, CId = ${V}<TId>>`,0),W=e("HasTableCellListenerArgsArrayOuter",`TId extends ${$} ? `+z+"<TId> : never","Table args for HasTableCellListener",`<TId = ${$}>`,0),B=e(u+b+w+I,`(...[${n}, tableId, cellId, hasTableCell]: `+W+")"+qe,ul(16,3,1)),F=e(h+"Count"+I,`(${o}, tableId: ${$})`+qe,ul(15,3)),U=e(g+I,`(${o}, tableId: ${$})`+qe,ul(4,3)),_=e(m+I,"("+Dl(o,"tableId: "+$,"cellId: Id"+ke,"descending: boolean","offset: number","limit: number"+ke,"sortedRowIds: Ids")+")"+qe,ul(13,3)),Z=e(u+h+I,"("+Dl(""+o,"tableId: "+$,De,"hasRow: boolean")+")"+qe,ul(5,3,1)),Q=e(h+I,"("+Dl(""+o,"tableId: "+$,De,`getCellChange: ${N}${ke}`)+")"+qe,ul(5,3)),q=e(f+I,"("+Dl(""+o,"tableId: "+$,De)+")"+qe,ul(6,5)),K=e("HasCellListenerArgsArrayInner",`CId extends ${V}<TId> ? [${o}, tableId: TId, ${De}, cellId: CId, hasCell: boolean] : never`,"Cell args for HasCellListener",`<TId extends ${$}, CId = ${V}<TId>>`,0),X=e("HasCellListenerArgsArrayOuter",`TId extends ${$} ? `+K+"<TId> : never","Table args for HasCellListener",`<TId = ${$}>`,0),Y=e(u+w+I,`(...[${n}, tableId, rowId, cellId, hasCell]: `+X+")"+qe,ul(7,5,1)),ee=e("CellListenerArgsArrayInner",`CId extends ${V}<TId> ? [${o}, tableId: TId, ${De}, cellId: CId, newCell: ${x}<TId, CId> ${ke}, oldCell: ${x}<TId, CId> ${ke}, getCellChange: ${N} ${ke}] : never`,"Cell args for CellListener",`<TId extends ${$}, CId = ${V}<TId>>`,0),le=e("CellListenerArgsArrayOuter",`TId extends ${$} ? `+ee+"<TId> : never","Table args for CellListener",`<TId = ${$}>`,0);return[s,r,$,i,T,y,v,V,x,k,S,P,E,D,G,j,H,M,J,B,F,U,_,Z,Q,q,Y,e(w+I,`(...[${n}, tableId, rowId, cellId, newCell, oldCell, getCellChange]: ${le})`+qe,ul(7,5)),e(Ve+w+I,`(${o}, tableId: Id, ${De}, cellId: Id, invalidCells: any[])`+qe,ul(8))]},(l,a)=>{const d=l+": "+a,o=e(y,Gl(...n(((e,l,a)=>`'${e}'${R(a)?"?":t}: ${l}`))),ol(2,5)),s=e(y+Ke,Gl(...n(((e,l)=>`'${e}'?: ${l}`))),ol(2,5,1)),r=e(T+ve,"keyof "+o,"A "+T+" Id in "+Je),$=e(T,Se+`<${o}[VId]>`,"A "+T+" Id in "+Je,`<VId extends ${r}>`),c=e("ValueIdValueArray",`VId extends ${r} ? [valueId: VId, value: ${$}<VId>] : never`,T+" Ids and types in "+Je,`<VId = ${r}>`,0),i=e(T+Ce,`(...[valueId, value]: ${c})`+qe,cl(ie+T+" Id, and "+T)),b=e("GetValueChange",`(valueId: ${r}) => ValueChange`,be+" returning information about any Value's changes during a "+Be),p=e(u+y+I,`(${d}, hasValues: boolean)`+qe,ul(9,0,1)),C=e(y+I,`(${d}, getValueChange: ${b}${ke})`+qe,ul(9)),h=e(v+I,`(${d})`+qe,ul(10)),g=e(u+T+I,`(${d}, valueId: ValueId, hasValue: boolean)`+qe,ul(11,0,1)),m=e("ValueListenerArgsArray",`VId extends ${r} ? [${d}, valueId: VId, newValue: ${$}<VId> ${ke}, oldValue: ${$}<VId> ${ke}, getValueChange: ${b} ${ke}] : never`,"Value args for ValueListener",`<VId = ${r}>`,0);return[o,s,r,$,i,p,C,h,g,e(T+I,`(...[${l}, valueId, newValue, oldValue, getValueChange]: `+m+")"+qe,ul(11)),e(Ve+T+I,`(${d}, valueId: Id, invalidValues: any[])`+qe,ul(12))]},(l,t)=>e(ze+I,`(${l}: ${t}, getTransactionChanges: GetTransactionChanges, getTransactionLog: GetTransactionLog)`+qe,be+" listening to the completion of a "+Be)],Wl=(e,l=t,a=t)=>`store.${e}(${l})`+(a?" as "+a:t),Bl=(e,l=t)=>`fluent(() => ${Wl(e,l)})`,Fl=(e,l=t,a=t)=>`store.${e}(${l?l+", ":t}proxy(listener)${a?", "+a:t})`,Ul=(e,a,n)=>{const[o,$,V,x,A,k,P,O]=Hl(),[E,L,N]=Jl(e,a,A),[D,G,M]=zl(V,E,L,N),J=de(),W=(e=0)=>re(J,(([l,a,n,d,o],s)=>{const r=e?[s+`: ${o}(${l}): ${a} => ${n},`]:[s+o+`(${l}): ${a};`];return e||B(r,Nl(d)),z(r,t),r})),F=(e,l,a,n,d,o=t)=>Sl(J,e,[l,a,n,d,o]),U=(e,l,a,n,d,o=t,s=t,r=t)=>F(fl[e]+l+(4==e?Pe:t)+a,o,n,(n==Q?Bl:Wl)(fl[e]+(4==e?Pe:t)+a,s,e?void 0:n),d,r),_=(e,l,a,n=t,d=t,o=1,s=t)=>F(c+e+I,(n?n+", ":t)+Re+": "+l+(o?", mutator?: boolean":t),ve,Fl(c+e+I,d,o?"mutator":t),a,s),Z=`./${El(n)}.d`,Q=El(n,1),q=El(Q),K=[],X=de();let Y=[],le=[];if($(1,Z,Q,`create${Q} as create${Q}Decl`),ee(e))$(null,l,p);else{$(0,l,"CellChange"),$(null,l,i);const[e,a,n,o,I,c,T,y,v,x,k,P,O,N,G,M,J,W,B,F,ee,le,ae,ne,se,re,$e,ce,ue]=D(q,Q),ie=de();E(((e,l)=>{const t=`<'${e}'>`,a=[V(l+b,o+t,Ne+` the '${e}' `+b),V(l+b+Ke,I+t,Ne+` the '${e}' `+b+Xe),V(l+h,c+t,sl(e)),V(l+h+Ke,T+t,sl(e,1)),V(l+w+ve,y+t,`A Cell Id for the '${e}' `+b),V(l+w+Ce,x+t,cl(`a Cell Id and value from a Row in the '${e}' `+b)),V(l+h+Ce,k+t,cl(`a Row Id from the '${e}' Table, and a Cell iterator`)),V(l+b+w+Ce,P+t,cl(`a Cell Id from anywhere in the '${e}' Table, and a count of how many times it appears`))];Ie(ie,e,a),$(1,Z,...a)})),$(1,Z,e,a,n,y,O,N,G,M,J,W,B,F,ee,le,ae,ne,se,re,$e,ce,ue),Y=[e,a,n,y,N,G,M,J,W,B,F,ee,le,ae,ne,se,re,$e,ce,ie],j([[e],[d],[Q,"tables: "+a,"tables"],[Q]],(([e,l,a],n)=>U(n,t,p,e,ol(1,n),l,a))),U(0,t,C,n+Me,rl(b,Je)),U(5,t,b,Qe,Il(b,Je),"tableCallback: "+O,"tableCallback as any"),E(((e,l,a)=>{const[n,o,s,r,I,$,c,u]=oe(ie,e);j([[n],[d],[Q,"table: "+o,", table"],[Q]],(([n,d,o=t],s)=>U(s,l,b,n,Cl(e,s),d,a+o))),U(0,l,b+f,i,rl(w,"the whole of "+bl(e)),t,a),U(5,l,b+w,Qe,Il(b+w,"the whole of "+bl(e)),"tableCellCallback: "+u,a+", tableCellCallback as any"),U(0,l,h+he,"number","Gets the number of Rows in the "+bl(e),t,a),U(0,l,g,i,rl(h,bl(e)),t,a),U(0,l,m,i,rl(h,bl(e),1),"cellId?: "+I+He,a+", cellId, descending, offset, limit"),U(5,l,h,Qe,Il(h,bl(e)),"rowCallback: "+c,a+", rowCallback as any"),j([[s],[d],[Q,", row: "+r,", row"],[Q],[Q,", partialRow: "+r,", partialRow"]],(([n,d=t,o=t],s)=>U(s,l,h,n,hl(e,s),De+d,a+", rowId"+o))),U(6,l,h,ve+ke,"Add a new Row to "+bl(e),"row: "+r+", reuseIds?: boolean",a+", row, reuseIds"),U(0,l,f,I+Me,rl(w,pl(e)),De,a+", rowId"),U(5,l,w,Qe,Il(w,pl(e)),De+", cellCallback: "+$,a+", rowId, cellCallback as any"),L(e,((n,o,s,r,I)=>{const $="Map"+El(o,1);Ie(X,o,$);const c=o+(R(s)?ke:t);j([[c],[d],[Q,`, cell: ${o} | `+$,", cell as any"],[Q]],(([d,o=t,s=t],$)=>U($,l+I,w,d,gl(e,n,$),De+o,a+", rowId, "+r+s))),U(1,l+I,b+w,d,wl[1]+` the '${n}' Cell anywhere in `+bl(e),t,a+", "+r)}))})),U(0,t,p+xe,xe,ol(1,6)),U(2,t,p+xe,Q,ol(1,7),"tablesJson: "+xe,"tables"+xe),_(u+p,N,ol(1,8,0,1)+" changes"),_(p,G,ol(1,8)+" changes"),_(C,M,il(2,0,1)),_(u+b,J,il(3,0,0,1),`tableId: ${n} | null`,"tableId"),_(b,W,il(3,0),`tableId: ${n} | null`,"tableId"),_(b+f,B,il(14,3,1),`tableId: ${n} | null`,"tableId"),_(u+b+w,F,il(16,3,0,1),`tableId: ${n} | null, cellId: ${H(E((e=>oe(ie,e)?.[4]??t))," | ")} | null`,"tableId, cellId"),_(h+he,ee,il(15,3),`tableId: ${n} | null`,"tableId"),_(g,le,il(4,3,1),`tableId: ${n} | null`,"tableId"),_(m,ae,il(13,3,1),Dl("tableId: TId",`cellId: ${y}<TId>`+ke,"descending: boolean","offset: number","limit: number"+ke),Dl("tableId","cellId","descending","offset","limit"),1,"<TId extends TableId>"),_(u+h,ne,il(5,3,0,1),`tableId: ${n} | null, rowId: IdOrNull`,"tableId, rowId"),_(h,se,il(5,3),`tableId: ${n} | null, rowId: IdOrNull`,"tableId, rowId"),_(f,re,il(6,5,1),`tableId: ${n} | null, rowId: IdOrNull`,"tableId, rowId"),_(u+w,$e,il(7,5,0,1),`tableId: ${n} | null, rowId: IdOrNull, cellId: ${H(E((e=>oe(ie,e)?.[4]??t))," | ")} | null`,"tableId, rowId, cellId"),_(w,ce,il(7,5),`tableId: ${n} | null, rowId: IdOrNull, cellId: ${H(E((e=>oe(ie,e)?.[4]??t))," | ")} | null`,"tableId, rowId, cellId"),_(Ve+w,ue,Le+" whenever an invalid Cell change was attempted","tableId: IdOrNull, rowId: IdOrNull, cellId: IdOrNull","tableId, rowId, cellId"),$(1,Z,...te(X)),z(K,".set"+p+Ge+"({",Ol(E(((e,l,a)=>[`[${a}]: {`,...L(e,((e,l,a,n)=>`[${n}]: {[${A(Ll(s),`'${s}'`)}]: ${A(Ll(l),`'${l}'`)}${R(a)?t:`, [${A(Ll(r),`'${r}'`)}]: `+(S(a)?A(Ll(a),`'${a}'`):a)}},`)),"},"]))),"})")}if(ee(a))$(null,l,y);else{const[e,a,n,o,I,c,i,b,p,C,h]=G(q,Q);$(1,Z,e,a,n,I,c,i,b,p,C,h),le=[e,a,n,c,i,b,p,C],j([[e],[d],[Q,"values: "+a,"values"],[Q],[Q,"partialValues: "+a,"partialValues"]],(([e,l,a],n)=>U(n,t,y,e,ol(2,n),l,a))),U(0,t,v,n+Me,rl(T,Je)),U(5,t,T,"void",Il(T,Je),"valueCallback: "+I,"valueCallback as any"),N(((e,l,a,n,o)=>{const s="Map"+El(l,1);Ie(X,l,s),j([[l],[d],[Q,`value: ${l} | `+s,", value as any"],[Q]],(([l,a,d=t],s)=>U(s,o,T,l,ml(e,s),a,n+d)))})),U(0,t,y+xe,xe,ol(2,6)),U(2,t,y+xe,Q,ol(2,7),"valuesJson: "+xe,"values"+xe),_(u+y,c,ol(2,8,0,1)+" changes"),_(y,i,ol(2,8)+" changes"),_(v,b,il(10,0,1)),_(u+T,p,il(11,0,0,1),`valueId: ${n} | null`,"valueId"),_(T,C,il(11,0),`valueId: ${n} | null`,"valueId"),_(Ve+T,h,Le+" whenever an invalid Value change was attempted","valueId: IdOrNull","valueId"),$(1,Z,...te(X)),$(0,l,"ValueChange"),z(K,".set"+y+Ge+"({",N(((e,l,a,n)=>[`[${n}]: {[${A(Ll(s),`'${s}'`)}]: ${A(Ll(l),`'${l}'`)}${R(a)?t:`, [${A(Ll(r),`'${r}'`)}]: `+(S(a)?A(Ll(a),`'${a}'`):a)}},`])),"})")}U(0,t,"Content",`[${p}, ${y}]`,ol(0,0)),U(2,t,"Content",Q,ol(0,2),`[tables, values]: [${p}, ${y}]`,"[tables, values]"),U(2,t,We,Q,`Applies a set of ${We} to the Store`,"transactionChanges: "+We,"transactionChanges"),se(X,((e,l)=>V(l,`(cell: ${e}${ke}) => `+e,`Takes a ${e} Cell value and returns another`))),$(null,l,"DoRollback",ve,"IdOrNull",xe,"Store",We),$(0,l,"Get"+We,"GetTransactionLog"),U(0,t,xe,xe,ol(0,6)),U(2,t,xe,Q,ol(0,7),"tablesAndValuesJson: "+xe,"tablesAndValuesJson"),U(7,t,Be,"Return",Fe,Te,"actions, doRollback","<Return>"),U(7,t,"start"+ze,Q,Ue),U(7,t,"finish"+ze,Q,_e,fe,"doRollback");const ae=M(q,Q);return _("Start"+ze,ae,Le+" just before the start of the "+Be,t,t,0),_("WillFinish"+ze,ae,Le+" just before "+Ze,t,t,0),_("DidFinish"+ze,ae,Le+" just after "+Ze,t,t,0),U(7,t,"call"+I,Q,"Manually provoke a listener to be called","listenerId: Id","listenerId"),U(3,t,I,Q,"Remove a listener that was previously added to "+Je,"listenerId: Id","listenerId"),F("getStore",t,"Store","store",wl[0]+" the underlying Store object"),$(1,l,"createStore"),$(1,Z,Q,`create${Q} as create${Q}Decl`,ae),A("store",["createStore()",...K]),x("fluent","actions: () => Store",["actions();",`return ${q};`]),x("proxy","listener: any",`(_: Store, ...params: any[]) => listener(${q}, ...params)`),A(q,["{",...W(1),"}"]),[o(...k(0),...P(),ye+" interface "+Q+" {",...W(0),"}",t,Nl(`Creates a ${Q} object`),ye+" function create"+Q+"(): "+Q+";"),o(...k(1),ye+" const create"+Q+": typeof create"+Q+"Decl = () => {",...O(),`return Object.freeze(${q});`,"};"),Y,le]},_l=e=>$+e,Zl=e=>Dl(_l(e),_l(e)+me),Ql="debugIds?: boolean",ql="debugIds={debugIds}",Kl="then"+we,Xl="Parameter",Yl=": (parameter: "+Xl+", store: Store) => ",et="const contextValue = useContext(Context);",lt=", based on a parameter",tt=": ",at="<"+Xl+",>",nt=Xl+"ized"+Ce+"<"+Xl+">",dt="rowId",ot="rowId={rowId}",st=", separator, debugIds",rt="separator?: ReactElement | string",It="then?: (store: Store",$t=Dl(It+")"+qe,Kl),ct="then, then"+me,ut=dt+tt+ve,it="View",bt=(e,...l)=>Dl(...l,Re+": "+e,Re+we,"mutator?: boolean"),pt=(...e)=>Dl(...e,Re,Re+me,"mutator"),Ct=(e,a,n,s,r)=>{const[$,c,V,x,A,k,S,P]=Hl(),[O,E,L]=Jl(e,a,A),N=`./${El(n)}.d`,D=`./${El(n)}-ui-react.d`,G="tinybase/ui-react",j=El(n,1),M=El(j),J=j+"Or"+j+ve,W=M+"Or"+j+ve,F=M+`={${M}}`,U=de(),_=(e,l,a,n,d,o=t)=>(c(1,D,e+" as "+e+"Decl"),Sl(U,e,[l,a,n,d,o])),Z=(e,l,a,n,d,o=t)=>_("use"+e,l,a,n,d,o),Q=(e,l,a,n,d=t,o=t,s=t,r=t,I=t)=>(c(1,G,`use${l} as use${l}Core`),Z(e,Dl(d,le,r),a,ae+`(${W}, use${l}Core, [`+(o||t)+(I?"], ["+I:t)+"]);",n,s)),q=(e,l,t,a)=>_(e,l,1,t,a),K=(e=0)=>re(U,(([l,a,n,d,o],s)=>{const r=e?[ye+` const ${s}: typeof ${s}Decl = ${o}(${l}): ${1==a?"any":a} =>`,n]:[ye+` function ${s}${o}(${l}): ${1==a?"ComponentReturnType":a};`];return e||B(r,Nl(d)),z(r,t),r}));c(null,l,ve,"Store",Ce,Xl+"ized"+Ce),c(0,G,"ComponentReturnType"),c(1,G,"useCellIds"),c(null,G,"ExtraProps"),c(0,N,j);const X=V(J,j+" | "+ve,`Used when you need to refer to a ${j} in a React hook or component`),Y=V(Ee+Oe,jl(M+Ae+j,M+`ById?: {[${M}Id: Id]: ${j}}`),`Used with the ${Ee} component, so that a `+j+" can be passed into the context of an application");c(0,"react","ReactElement","ComponentType"),c(1,"react","React"),c(1,D,X,Y);const le=W+Ae+X;A("{createContext, useContext, useMemo}","React"),A("Context",`createContext<[${j}?, {[${M}Id: Id]: ${j}}?]>([])`),Z("Create"+j,`create: () => ${j}, create`+we,j,"\n// eslint-disable-next-line react-hooks/exhaustive-deps\nuseMemo(create, createDeps)",`Create a ${j} within a React application with convenient memoization`);const te=Z(j,"id?: Id",j+ke,["{",et,"return id == null ? contextValue[0] : contextValue[1]?.[id];","}"],`Get a reference to a ${j} from within a ${Ee} component context`),ae=x("useHook",W+`: ${X} | undefined, hook: (...params: any[]) => any, preParams: any[], postParams: any[] = []`,[`const ${M} = ${te}(${W} as Id);`,`return hook(...preParams, ((${W} == null || typeof ${W} == 'string')`,`? ${M} : ${W})?.getStore(), ...postParams)`]),ne=x("getProps","getProps: ((id: any) => ExtraProps) | undefined, id: Id","(getProps == null) ? ({} as ExtraProps) : getProps(id)"),se=x("wrap",Dl("children: any","separator?: any","encloseWithId?: boolean","id?: Id"),["const separated = separator==null || !Array.isArray(children)"," ? children"," : children.map((child, c) => (c > 0 ? [separator, child] : child));","return encloseWithId ? [id, ':{', separated, '}'] : separated;"]),Ie=x("useCustomOrDefaultCellIds",Dl("customCellIds: Ids | undefined","tableId: Id","rowId: Id",`${W}?: ${X} | undefined`),[`const defaultCellIds = ${ae}(${W}, useCellIds, [tableId, rowId]);`,"return customCellIds ?? defaultCellIds;"]),$e=A("NullComponent","() => null");if(!ee(e)){const[e,a,n,r,$,T,y,v,A,k,S,P,L,G,J,z,W,B,U,_]=s;c(null,N,e,a,n,$,T,y,v,A,k,S,P,L,G,J,z,W,U,B),c(0,N,r),c(1,N,j),c(null,l,i,"IdOrNull");const Z=x("tableView",`{${M}, rowComponent, getRowComponentProps, customCellIds`+st+"}: any, rowIds: Ids, tableId: Id, defaultRowComponent: React.ComponentType<any>",["const Row = rowComponent ?? defaultRowComponent;",`return ${se}(rowIds.map((rowId) => (`,"<Row","{..."+ne+"(getRowComponentProps, rowId)}","key={rowId}","tableId={tableId}",ot,"customCellIds={customCellIds}",F,ql,"/>","))",st,", tableId,",");"]),K=x("getDefaultTableComponent","tableId: Id",H(O(((e,l,t)=>`tableId == ${t} ? ${l}TableView : `)))+$e),X=x("getDefaultCellComponent","tableId: Id, cellId: Id",H(O(((e,l,t)=>`tableId == ${t} ? ${H(E(e,((e,t,a,n,d)=>`cellId == ${n} ? `+l+d+"CellView : ")))+$e} : `)))+$e);Q(u+p,u+p,d,ol(1,0,0,1)+pe),Q(p,p,e,ol(1,0)+pe);const Y=Q(C,C,n+Me,rl(b,Je)+pe);Q(je+p+Ce,je+p+Ce,nt,ol(1,9)+lt,Dl(_l(p)+Yl+a,_l(p)+we),Zl(p),at,Dl(It,`tables: ${a})`+qe,Kl),ct),Q(ge+p+Ce,ge+p+Ce,Ce,ol(1,12),t,t,t,$t,ct);const ee=V(w+Oe,jl("tableId?: TId","rowId: Id","cellId?: CId",M+Ae+j,Ql),$l(ie+w),`<TId extends ${n}, CId extends ${r}<TId>>`),le=V(h+Oe,jl("tableId?: TId","rowId: Id",M+Ae+j,"cellComponents?: {readonly [CId in "+r+`<TId>]?: ComponentType<${ee}<TId, CId>>;}`,`getCellComponentProps?: (cellId: ${r}<TId>) => ExtraProps`,`customCellIds?: ${r}<TId>[]`,rt,Ql),$l(ie+h),`<TId extends ${n}>`),te=V(b+Oe,jl("tableId?: TId",M+Ae+j,`rowComponent?: ComponentType<${le}<TId>>`,"getRowComponentProps?: (rowId: Id) => ExtraProps","customCellIds?: CellId<TId>[]",rt,Ql),$l(ie+b),`<TId extends ${n}>`),ae=V("Sorted"+b+Oe,jl("tableId?: TId","cellId?: "+r+"<TId>","descending?: boolean","offset?: number","limit?: number",M+Ae+j,`rowComponent?: ComponentType<${le}<TId>>`,"getRowComponentProps?: (rowId: Id) => ExtraProps","customCellIds?: CellId<TId>[]",rt,Ql),$l(ie+"sorted "+b),`<TId extends ${n}>`),de=V(p+Oe,jl(M+Ae+j,"tableComponents?: {readonly [TId in "+n+`]?: ComponentType<${te}<TId>>;}`,`getTableComponentProps?: (tableId: ${n}) => ExtraProps`,rt,Ql),$l(dl(1,1)));c(1,D,de,te,ae,le,ee),q(p+it,"{"+M+", tableComponents, getTableComponentProps"+st+"}: "+de,[se+`(${Y}(${M}).map((tableId) => {`,"const Table = (tableComponents?.[tableId] ?? "+K+"(tableId)) as React.ComponentType<TableProps<typeof tableId>>;","return <Table",`{...${ne}(getTableComponentProps, tableId)}`,"tableId={tableId}","key={tableId}",F,ql,"/>;","}), separator)"],ol(1,13)+pe),O(((e,l,a)=>{const[n,s,r,I,$]=oe(_,e);c(null,N,n,s,r,I,$),Q(u+l+b,u+b,d,Cl(e,0,1)+pe,t,a),Q(l+b,b,n,Cl(e)+pe,t,a),Q(l+b+f,b+f,i,rl(w,"the whole of "+bl(e))+pe,t,a),Q(l+h+he,h+he,o,"Gets the number of Rows in "+bl(e)+pe,t,a);const p=Q(l+g,g,i,rl(h,bl(e))+pe,t,a),C=Q(l+m,m,i,rl(h,bl(e),1)+pe,"cellId?: "+$+", descending?: boolean, offset?: number, limit?: number",a+", cellId, descending, offset, limit");Q(u+l+h,u+h,d,hl(e,0,1)+pe,ut,Dl(a,dt)),Q(l+h,h,r,hl(e)+pe,ut,Dl(a,dt)),Q(l+f,f,$+Me,rl(w,pl(e))+pe,ut,Dl(a,dt)),Q(je+l+b+Ce,je+b+Ce,nt,Cl(e,9)+lt,Dl(_l(b)+Yl+s,_l(b)+we),Dl(a,Zl(b)),at,Dl(It,`table: ${s})`+qe,Kl),ct),Q(ge+l+b+Ce,ge+b+Ce,Ce,Cl(e,12),t,a,t,$t,ct),Q(je+l+h+Ce,je+h+Ce,nt,hl(e,9)+lt,Dl(ut,_l(h)+Yl+I,_l(h)+we),Dl(a,dt,Zl(h)),at,Dl(It,`row: ${I})`+qe,Kl),ct),Q("Add"+l+h+Ce,"Add"+h+Ce,nt,hl(e,10)+lt,Dl(_l(h)+Yl+I,_l(h)+we),Dl(a,Zl(h)),at,"then?: ("+Dl(ut+ke,"store: Store","row: "+I+")"+qe,"then"+we)+", reuseRowIds?: boolean",ct+", reuseRowIds"),Q(je+l+Pe+h+Ce,je+Pe+h+Ce,nt,hl(e,11)+lt,Dl(ut,_l(Pe+h)+Yl+I,_l(Pe+h)+we),Dl(a,dt,Zl(Pe+h)),at,Dl(It,`partialRow: ${I})`+qe,Kl),ct),Q(ge+l+h+Ce,ge+h+Ce,Ce,hl(e,12),ut,Dl(a,dt),t,$t,ct);const T=q(l+h+it,"{rowId, "+M+", cellComponents, getCellComponentProps, customCellIds"+st+`}: ${le}<'${e}'>`,[se+`(${Ie}(customCellIds, `+a+`, rowId, ${M}).map((cellId: ${$}) => {`,"const Cell = (cellComponents?.[cellId] ?? "+X+`(${a}, cellId)) as React.ComponentType<CellProps<typeof `+a+", typeof cellId>>;","return <Cell",`{...${ne}(getCellComponentProps, cellId)} `,"key={cellId}",`tableId={${a}}`,ot,"cellId={cellId}",F,ql,"/>;","})"+st+", rowId)"],hl(e,13)+pe);q(l+"Sorted"+b+it,"{cellId, descending, offset, limit, ...props}: "+ae+`<'${e}'>`,Z+"(props, "+C+`(cellId, descending, offset, limit, props.${M}), ${a}, ${T});`,Cl(e,13)+", sorted"+pe),q(l+b+it,`props: ${te}<'${e}'>`,Z+"(props, "+p+`(props.${M}), ${a}, ${T});`,Cl(e,13)+pe),E(e,((n,o,s,r,I)=>{const $="Map"+El(o,1);c(0,N,$),c(1,N,$),Q(u+l+I+b+w,u+b+w,d,`Gets ${nl(1)}the '${n}' Cell anywhere in `+bl(e)+pe,t,Dl(a,r)),Q(u+l+I+w,u+w,d,gl(e,n,0,1)+pe,ut,Dl(a,dt,r));const i=Q(l+I+w,w,o+(R(s)?ke:t),gl(e,n)+pe,ut,Dl(a,dt,r));Q(je+l+I+w+Ce,je+w+Ce,nt,gl(e,n,9)+lt,Dl(ut,_l(w)+Yl+o+" | "+$,_l(w)+we),Dl(a,dt,r,Zl(w)),at,Dl(It,`cell: ${o} | ${$})`+qe,Kl),ct),Q(ge+l+I+w+Ce,ge+w+Ce,Ce,gl(e,n,12),Dl(ut,"forceDel?: boolean"),Dl(a,dt,r,"forceDel"),t,$t,ct),q(l+I+w+it,`{rowId, ${M}, debugIds}: `+ee+`<'${e}', '${n}'>`,[se+`('' + ${i}(rowId, `+M+`) ?? '', undefined, debugIds, ${r})`],gl(e,n,13)+pe)}))}));const re=H(O((e=>oe(_,e)?.[4]??t))," | ");Q(u+p+I,u+p+I,Qe,ol(1,8,0,1)+" changes",bt($),pt()),Q(p+I,p+I,Qe,ol(1,8)+" changes",bt(T),pt()),Q(C+I,C+I,Qe,il(2,0,1),bt(y),pt()),Q(u+b+I,u+b+I,Qe,il(3,0,0,1),bt(v,`tableId: ${n} | null`),pt("tableId")),Q(b+I,b+I,Qe,il(3,0),bt(A,`tableId: ${n} | null`),pt("tableId")),Q(b+f+I,b+f+I,Qe,il(14,3,1),bt(k,`tableId: ${n} | null`),pt("tableId")),Q(u+b+w+I,u+b+w+I,Qe,il(16,3,0,1),bt(S,`tableId: ${n} | null`,`cellId: ${re} | null`),pt("tableId","cellId")),Q(h+he+I,h+he+I,Qe,il(15,3),bt(P,`tableId: ${n} | null`),pt("tableId")),Q(g+I,g+I,Qe,il(4,3,1),bt(L,`tableId: ${n} | null`),pt("tableId")),Q(m+I,m+I,Qe,il(13,3,1),bt(G,`tableId: ${n} | null`,"cellId: "+re+ke,"descending: boolean","offset: number","limit: number"+ke),pt("tableId","cellId","descending","offset","limit")),Q(u+h+I,u+h+I,Qe,il(5,3,0,1),bt(J,`tableId: ${n} | null`,dt+": IdOrNull"),pt("tableId",dt)),Q(h+I,h+I,Qe,il(5,3),bt(z,`tableId: ${n} | null`,dt+": IdOrNull"),pt("tableId",dt)),Q(f+I,f+I,Qe,il(6,5,1),bt(W,`tableId: ${n} | null`,dt+": IdOrNull"),pt("tableId",dt)),Q(u+w+I,u+w+I,Qe,il(7,5,0,1),bt(B,`tableId: ${n} | null`,dt+": IdOrNull",`cellId: ${re} | null`),pt("tableId",dt,"cellId")),Q(w+I,w+I,Qe,il(7,5),bt(U,`tableId: ${n} | null`,dt+": IdOrNull",`cellId: ${re} | null`),pt("tableId",dt,"cellId"))}if(!ee(a)){const[e,l,a,n,o,s,$,i]=r;c(null,N,...r),c(1,N,j);const b=x("getDefaultValueComponent","valueId: Id",H(L(((e,l,t,a,n)=>`valueId == ${a} ? `+n+"ValueView : ")))+$e);Q(u+y,u+y,d,ol(2,0,0,1)+pe),Q(y,y,e,ol(2,0)+pe);const p=Q(v,v,a+Me,rl(T,Je)+pe);Q(je+y+Ce,je+y+Ce,nt,ol(2,9)+lt,Dl(_l(y)+Yl+l,_l(y)+we),Zl(y),at,Dl(It,`values: ${l})`+qe,Kl),ct),Q(je+Pe+y+Ce,je+Pe+y+Ce,nt,ol(2,11)+lt,Dl(_l(Pe+y)+Yl+l,_l(Pe+y)+we),Zl(Pe+y),at,Dl(It,`partialValues: ${l})`+qe,Kl),ct),Q(ge+y+Ce,ge+y+Ce,Ce,ol(2,12),t,t,t,$t,ct);const C=V(T+Oe,jl("valueId?: VId",M+Ae+j,Ql),$l("a Value"),`<VId extends ${a}>`),h=V(y+Oe,jl(M+Ae+j,"valueComponents?: {readonly [VId in "+a+`]?: ComponentType<${C}<VId>>;}`,`getValueComponentProps?: (valueId: ${a}) => ExtraProps`,rt,Ql),$l(dl(2,1)));c(1,D,h,C),q(y+it,"{"+M+", valueComponents, getValueComponentProps"+st+"}: "+h,[se+`(${p}(${M}).map((valueId) => {`,"const Value = valueComponents?.[valueId] ?? "+b+"(valueId);","return <Value",`{...${ne}(getValueComponentProps, valueId)}`,"key={valueId}",F,ql,"/>;","}), separator)"],ol(2,13)+pe),L(((e,l,a,n,o)=>{const s="Map"+El(l,1);c(0,N,s),c(1,N,s),Q(u+o+T,u+T,d,ml(e,0,1)+pe,t,n);const r=Q(o+T,T,l,ml(e)+pe,t,n);Q(je+o+T+Ce,je+T+Ce,nt,ml(e,9)+lt,Dl(_l(T)+Yl+l+" | "+s,_l(T)+we),Dl(n,Zl(T)),at,Dl(It,`value: ${l} | ${s})`+qe,Kl),ct),Q(ge+o+T+Ce,ge+T+Ce,Ce,ml(e,12),t,n,t,$t,ct),q(o+T+it,`{${M}, debugIds}: ${C}<'${e}'>`,[se+`('' + ${r}(`+M+`) ?? '', undefined, debugIds, ${n})`],ml(e,13)+pe)})),Q(u+y+I,u+y+I,Qe,ol(2,8,0,1)+" changes",bt(n),pt()),Q(y+I,y+I,Qe,ol(2,8)+" changes",bt(o),pt()),Q(v+I,v+I,Qe,il(10,0,1),bt(s),pt()),Q(u+T+I,u+T+I,Qe,il(11,0,0,1),bt($,`valueId: ${a} | null`),pt("valueId")),Q(T+I,T+I,Qe,il(11,0),bt(i,`valueId: ${a} | null`),pt("valueId"))}return q(Ee,`{${M}, ${M}ById, children}: `+Y+" & {children: React.ReactNode}",["{",et,"return (","<Context."+Ee,"value={useMemo(",`() => [${M} ?? contextValue[0], {...contextValue[1], ...${M}ById}],`,`[${M}, ${M}ById, contextValue],`,")}>","{children}",`</Context.${Ee}>`,");","}"],"Wraps part of an application in a context that provides default objects to be used by hooks and components within"),[$(...k(0),...S(),...K(0)),$(...k(1),...P(),...K(1))]},ht=(e,l,a)=>{if(ee(e)&&ee(l))return[t,t,t,t];const[n,d,o,s]=Ul(e,l,a);return[n,d,...Ct(e,l,a,o,s)]},gt=JSON.parse,mt="prettier/",wt=mt+"plugins/",ft={parser:"typescript",singleQuote:!0,trailingComma:"all",bracketSpacing:!1,jsdocSingleLineComment:!1},Tt=Ml((e=>{const l=()=>{const l=gt(e.getTablesSchemaJson());return!ee(l)||D(e.getTableIds(),(t=>{const a=e.getRowIds(t),n=de();if(D(a,(l=>D(e.getCellIds(t,l),(a=>{const d=e.getCell(t,l,a),o=$e(n,a,(()=>[N(d),de(),[0],0])),[s,r,[I]]=o,$=$e(r,d,(()=>0))+1;return $>I&&(o[2]=[$,d]),Ie(r,d,$),o[3]++,s==N(d)})))))return l[t]={},ae(n,(([e,,[,n],d],o)=>{l[t][o]={[s]:e,...d==E(a)?{[r]:n}:{}}})),1}))?l:{}},t=()=>{const l=gt(e.getValuesSchemaJson());return ee(l)&&e.forEachValue(((e,t)=>{l[e]={[s]:N(t)}})),l},a=e=>ht(l(),t(),e),n=async e=>{const l=["d.ts","ts","d.ts","tsx"],t=[];let n;try{n=(await import(mt+"standalone")).format,z(t,await import(wt+"estree"),await import(wt+"typescript"))}catch(e){n=async e=>e}return await L(M(a(e),(async(e,a)=>Pl(await n(e,{...ft,plugins:t,filepath:"_."+l[a]})))))};return q({getStoreStats:l=>{let t=0,a=0,n=0;const d={};return e.forEachTable(((e,o)=>{t++;let s=0,r=0;const I={};o(((e,t)=>{s++;let a=0;t((()=>a++)),r+=a,l&&(I[e]={rowCells:a})})),a+=s,n+=r,l&&(d[e]={tableRows:s,tableCells:r,rows:I})})),{totalTables:t,totalRows:a,totalCells:n,totalValues:E(e.getValueIds()),jsonLength:E(e.getJson()),...l?{detail:{tables:d}}:{}}},getStoreTablesSchema:l,getStoreValuesSchema:t,getStoreApi:a,getPrettyStoreApi:n,getStore:()=>e})}));export{Tt as createTools};
1
+ const e=e=>typeof e,l="tinybase",t="",a=",",n=e(t),d=e(!0),o=e(0),s="type",r="default",I="Listener",$="get",c="add",u="Has",i="Ids",b="Table",p=b+"s",C=b+i,h="Row",m=h+i,g="Sorted"+h+i,w="Cell",f=w+i,T="Value",y=T+"s",v=T+i,V=Promise,x=isFinite,R=e=>null==e,A=(e,l,t)=>R(e)?t?.():l(e),k=e=>e==n||e==d,S=l=>e(l)==n,P=e=>Array.isArray(e),O=(e,l,t)=>e.slice(l,t),E=e=>e.length,N=async e=>V.all(e),D=l=>{const t=e(l);return k(t)||t==o&&x(l)?t:void 0},L=(e,l)=>e.every(l),G=(e,l)=>e.sort(l),j=(e,l)=>e.forEach(l),H=(e,l=t)=>e.join(l),M=(e,l)=>e.map(l),J=(e,l)=>e.filter(l),z=(e,...l)=>e.push(...l),W=e=>e.pop(),B=(e,...l)=>e.unshift(...l),F=e=>e.shift(),U=Object,_=e=>U.getPrototypeOf(e),Z=U.entries,Q=e=>!R(e)&&A(_(e),(e=>e==U.prototype||R(_(e))),(()=>!0)),q=U.keys,K=U.freeze,X=(e,l)=>M(Z(e),(([e,t])=>l(t,e))),Y=e=>E(q(e)),ee=e=>Q(e)&&0==Y(e),le=(e,l)=>e?.has(l)??!1,te=e=>[...e?.values()??[]],ae=(e,l)=>e?.forEach(l),ne=(e,l)=>e?.delete(l),de=e=>new Map(e),oe=(e,l)=>e?.get(l),se=(e,l)=>ae(e,((e,t)=>l(t,e))),re=(e,l)=>M([...e?.entries()??[]],(([e,t])=>l(t,e))),Ie=(e,l,t)=>R(t)?(ne(e,l),e):e?.set(l,t),$e=(e,l,t,a)=>(le(e,l)?a?.(oe(e,l)):Ie(e,l,t()),oe(e,l)),ce=e=>e.toUpperCase(),ue=e=>e.toLowerCase(),ie="a ",be="A function for",pe=", and registers a listener so that any changes to that result will cause a re-render",Ce="Callback",he="Changes",me="Count",ge="Del",we="Deps",fe=we+"?: React.DependencyList",Te="doRollback?: DoRollback",ye="actions: () => Return, "+Te,ve="export",Ve="Id",xe="Invalid",Re="Json",Ae=ue(I),ke="?: ",Se=" | undefined",Pe="NonNullable",Oe="Partial",Ee="Props",Ne="Provider",De=`Registers a ${Ae} that will be called`,Le="Represents",Ge="rowId: "+Ve,je="Schema",He="Set",Me=", descending?: boolean, offset?: number, limit?: number",Je="[]",ze="the Store",We="Transaction",Be=ue(We),Fe="Execute a "+Be+" to make multiple mutations",Ue="Explicitly starts a "+Be,_e="Explicitly finishes a "+Be,Ze="the end of the "+Be,Qe="void",qe=" => "+Qe,Ke="WhenSet",Xe=" when setting it",Ye=ie+"string serialization of",el=" ",ll="Gets a callback that can ",tl="the ",al=" the schema for",nl=(e=0)=>e?"the existence of ":"",dl=(e=0,l=0,a=0)=>nl(a)+`the ${yl[e]}content of`+(l?el+ze:t),ol=(e=0,l,a=0,n=0)=>wl[l]+el+nl(n)+dl(e,1)+(a?" when setting it":t),sl=(e,l=0)=>Le+` a Row when ${l?"s":"g"}etting ${dl()} the '${e}' `+b,rl=(e,l,t=0)=>`Gets ${t?"sorted, paginated":"the"} Ids of the ${e}s in `+l,Il=(e,l)=>`Calls a function for each ${e} in `+l,$l=e=>"The props passed to a component that renders "+e,cl=e=>"A function that takes "+e,ul=(e,l=0,t=0)=>be+" listening to changes to "+nl(t)+Tl[e]+" in "+Tl[l],il=(e,l,a=0,n=0)=>De+" whenever "+nl(n)+Tl[e]+" in "+Tl[l]+" change"+(a?t:"s"),bl=e=>`the '${e}' `+b,pl=e=>"the specified Row in "+bl(e),Cl=(e,l=0,t=0)=>wl[l]+el+dl(0,0,t)+el+bl(e),hl=(e,l=0,t=0)=>wl[l]+` ${dl(0,0,t)} `+pl(e),ml=(e,l,t=0,a=0)=>wl[t]+el+nl(a)+`the '${l}' Cell for `+pl(e),gl=(e,l=0,t=0)=>wl[l]+el+nl(t)+`the '${e}' Value`,wl=["Gets","Checks existence of","Sets","Deletes","Sets part of",Le,"Gets "+Ye,"Sets "+Ye,De+" whenever",ll+"set",ll+"add",ll+"set part of",ll+"delete","Renders","Gets "+Ye+al,"Sets"+al,"Deletes"+al],fl=[$,"has","set","del","set","forEach",c,t],Tl=[ze,p,tl+b+el+i,ie+b,tl+h+el+i,ie+h,tl+w+el+i,ie+w,"invalid Cell changes",y,tl+T+el+i,ie+T,"invalid Value changes",tl+"sorted "+h+el+i,tl+w+el+i+" anywhere",tl+"number of Rows",ie+w+" anywhere"],yl=[t,"tabular ","keyed value "],vl=e=>new Set(P(e)||R(e)?e:[e]),Vl=(e,l)=>e?.add(l),xl=/[^A-Za-z]+/,Rl=/[^A-Za-z0-9]+/,Al=/^( *)\/\*\* *(.*?) *\*\/$/gm,kl=e=>e.includes(a),Sl=(e,l,t,a=1)=>{const n=`${l}${1==a?"":a}`;return le(e,n)?Sl(e,l,t,a+1):(Ie(e,n,t),n)},Pl=e=>e.replace(Al,((e,l,t)=>{const a=77-E(l);return`${l}/**\n${t.replace(RegExp(`([^\\n]{1,${a}})(\\s|$)`,"g"),l+" * $1\n")}${l} */`})),Ol=e=>e.flat(1e3),El=(e,l=0)=>H(M(e.split(Rl),((e,t)=>(t>0||l?ce:ue)(O(e,0,1))+O(e,1)))),Nl=e=>ce(H((e&&!xl.test(e[0])?e:" "+e).split(Rl),"_")),Dl=e=>`/** ${e}. */`,Ll=(...e)=>H(J(e,(e=>e)),", "),Gl=(...e)=>"{"+H(e,"; ")+"}",jl=(...e)=>Gl(...M(e,(e=>"readonly "+e))),Hl=()=>{const e=[de(),de(),de(),de()],l=de(),a=de(),n=e=>{const l=e.indexOf(" as ");return-1!=l?O(e,l+4):e};return[(...e)=>H(Ol(e),"\n"),(l,t,...a)=>j(a,(a=>j([0,1],(n=>(l??n)==n?Vl($e(e[n],t,vl),a):0)))),(e,a,n,d=t,o=1)=>Sl(l,e,[a,n,d,o]),(e,l,t)=>Sl(a,e,P(t)?[`(${l}) => {`,t,"}"]:[`(${l}) => ${t}`]),(e,l)=>oe(a,e)===l?e:Sl(a,e,l),(l=0)=>M([...G(re(e[l],((e,l)=>`import {${H(G(te(e),((e,l)=>n(e)>n(l)?1:-1)),", ")}} from '${l}';`)),((e,l)=>kl(e)!=kl(l)?kl(e)?-1:1:e>l?1:-1)),t],(e=>e.replace("{React}","React"))),()=>re(l,(([e,l,a,n],d)=>[Dl(l),`${n?ve+" ":t}type ${d}${a} = ${e};`,t])),()=>re(a,((e,l)=>(e=P(e)?e:[e],z(e,W(e)+";"),[`const ${l} = ${F(e)}`,e,t])))]},Ml=(e,l)=>{const t=new WeakMap;return a=>{t.has(a)||t.set(a,e(a));const n=t.get(a);return l?.(n),n}},Jl=(e,l,t)=>[l=>X(e,((e,a)=>l(a,El(a,1),t(Nl(a),`'${a}'`)))),(l,a)=>X(e[l],((e,l)=>a(l,e[s],e[r],t(Nl(l),`'${l}'`),El(l,1)))),e=>X(l,((l,a)=>e(a,l[s],l[r],t(Nl(a),`'${a}'`),El(a,1))))],zl=(e,l,a,n)=>[(n,d)=>{const o=n+": "+d,s=e(p,Gl(...l((e=>`'${e}'?: {[rowId: Id]: `+Gl(...a(e,((e,l,a)=>`'${e}'${R(a)?"?":t}: ${l}`)))+"}"))),ol(1,5)),r=e(p+Ke,Gl(...l((e=>`'${e}'?: {[rowId: Id]: `+Gl(...a(e,((e,l)=>`'${e}'?: ${l}`)))+"}"))),ol(1,5,1)),$=e(b+Ve,"keyof "+s,"A "+b+" Id in "+ze),c=`<TId extends ${$}>`,i=e(b,Pe+`<${s}[TId]>`,"A "+b+" in "+ze,c),T=e(b+Ke,Pe+`<${r}[TId]>`,"A "+b+" in "+ze+Xe,c),y=e(h,i+"<TId>[Id]","A "+h+" in a "+b,c),v=e(h+Ke,T+"<TId>[Id]","A "+h+" in a "+b+Xe,c),V=e(w+Ve,`Extract<keyof ${y}<TId>, Id>`,"A "+w+" Id in a "+h,c),x=e(w,Pe+`<${s}[TId]>[Id][CId]`,"A "+w+" in a "+h,`<TId extends ${$}, CId extends ${V}<TId>>`),A=e("CellIdCellArray",`CId extends ${V}<TId> ? [cellId: CId, cell: ${x}<TId, CId>] : never`,w+" Ids and types in a "+h,`<TId extends ${$}, CId = ${V}<TId>>`,0),k=e(w+Ce,`(...[cellId, cell]: ${A}<TId>)`+qe,cl(ie+w+" Id, and "+w),c),S=e(h+Ce,"(rowId: Id, forEachCell: (cellCallback: CellCallback<TId>) "+qe+") "+qe,cl(ie+h+" Id, and a "+w+" iterator"),c),P=e(b+w+Ce,`(cellId: ${V}<TId>, count: number) `+qe,cl(ie+w+" Id, and count of how many times it appears"),c),O=e("TableIdForEachRowArray",`TId extends ${$} ? [tableId: TId, forEachRow: (rowCallback: ${S}<TId>)${qe}] : never`,b+" Ids and callback types",`<TId = ${$}>`,0),E=e(b+Ce,`(...[tableId, forEachRow]: ${O})`+qe,cl(ie+b+" Id, and a "+h+" iterator"),t),N=e("TableIdRowIdCellIdArray",`TId extends ${$} ? [tableId: TId, rowId: Id, cellId: ${V}<TId>] : never`,"Ids for GetCellChange",`<TId = ${$}>`,0),D=e("GetCellChange",`(...[tableId, rowId, cellId]: ${N}) => CellChange`,be+" returning information about any Cell's changes during a "+Be),L=e(u+p+I,`(${o}, hasTables: boolean)`+qe,ul(1,0,1)),G=e(p+I,`(${o}, getCellChange: ${D}${Se})`+qe,ul(1)),j=e(C+I,`(${o})`+qe,ul(2)),H=e(u+b+I,`(${o}, tableId: ${$}, hasTable: boolean)`+qe,ul(3,0,1)),M=e(b+I,`(${o}, tableId: ${$}, getCellChange: ${D}${Se})`+qe,ul(3)),J=e(b+f+I,`(${o}, tableId: ${$})`+qe,ul(14,3)),z=e("HasTableCellListenerArgsArrayInner",`CId extends ${V}<TId> ? [${o}, tableId: TId, cellId: CId, hasTableCell: boolean] : never`,"Cell args for HasTableCellListener",`<TId extends ${$}, CId = ${V}<TId>>`,0),W=e("HasTableCellListenerArgsArrayOuter",`TId extends ${$} ? `+z+"<TId> : never","Table args for HasTableCellListener",`<TId = ${$}>`,0),B=e(u+b+w+I,`(...[${n}, tableId, cellId, hasTableCell]: `+W+")"+qe,ul(16,3,1)),F=e(h+"Count"+I,`(${o}, tableId: ${$})`+qe,ul(15,3)),U=e(m+I,`(${o}, tableId: ${$})`+qe,ul(4,3)),_=e(g+I,"("+Ll(o,"tableId: "+$,"cellId: Id"+Se,"descending: boolean","offset: number","limit: number"+Se,"sortedRowIds: Ids")+")"+qe,ul(13,3)),Z=e(u+h+I,"("+Ll(""+o,"tableId: "+$,Ge,"hasRow: boolean")+")"+qe,ul(5,3,1)),Q=e(h+I,"("+Ll(""+o,"tableId: "+$,Ge,`getCellChange: ${D}${Se}`)+")"+qe,ul(5,3)),q=e(f+I,"("+Ll(""+o,"tableId: "+$,Ge)+")"+qe,ul(6,5)),K=e("HasCellListenerArgsArrayInner",`CId extends ${V}<TId> ? [${o}, tableId: TId, ${Ge}, cellId: CId, hasCell: boolean] : never`,"Cell args for HasCellListener",`<TId extends ${$}, CId = ${V}<TId>>`,0),X=e("HasCellListenerArgsArrayOuter",`TId extends ${$} ? `+K+"<TId> : never","Table args for HasCellListener",`<TId = ${$}>`,0),Y=e(u+w+I,`(...[${n}, tableId, rowId, cellId, hasCell]: `+X+")"+qe,ul(7,5,1)),ee=e("CellListenerArgsArrayInner",`CId extends ${V}<TId> ? [${o}, tableId: TId, ${Ge}, cellId: CId, newCell: ${x}<TId, CId> ${Se}, oldCell: ${x}<TId, CId> ${Se}, getCellChange: ${D} ${Se}] : never`,"Cell args for CellListener",`<TId extends ${$}, CId = ${V}<TId>>`,0),le=e("CellListenerArgsArrayOuter",`TId extends ${$} ? `+ee+"<TId> : never","Table args for CellListener",`<TId = ${$}>`,0);return[s,r,$,i,T,y,v,V,x,k,S,P,E,L,G,j,H,M,J,B,F,U,_,Z,Q,q,Y,e(w+I,`(...[${n}, tableId, rowId, cellId, newCell, oldCell, getCellChange]: ${le})`+qe,ul(7,5)),e(xe+w+I,`(${o}, tableId: Id, ${Ge}, cellId: Id, invalidCells: any[])`+qe,ul(8))]},(l,a)=>{const d=l+": "+a,o=e(y,Gl(...n(((e,l,a)=>`'${e}'${R(a)?"?":t}: ${l}`))),ol(2,5)),s=e(y+Ke,Gl(...n(((e,l)=>`'${e}'?: ${l}`))),ol(2,5,1)),r=e(T+Ve,"keyof "+o,"A "+T+" Id in "+ze),$=e(T,Pe+`<${o}[VId]>`,"A "+T+" Id in "+ze,`<VId extends ${r}>`),c=e("ValueIdValueArray",`VId extends ${r} ? [valueId: VId, value: ${$}<VId>] : never`,T+" Ids and types in "+ze,`<VId = ${r}>`,0),i=e(T+Ce,`(...[valueId, value]: ${c})`+qe,cl(ie+T+" Id, and "+T)),b=e("GetValueChange",`(valueId: ${r}) => ValueChange`,be+" returning information about any Value's changes during a "+Be),p=e(u+y+I,`(${d}, hasValues: boolean)`+qe,ul(9,0,1)),C=e(y+I,`(${d}, getValueChange: ${b}${Se})`+qe,ul(9)),h=e(v+I,`(${d})`+qe,ul(10)),m=e(u+T+I,`(${d}, valueId: ValueId, hasValue: boolean)`+qe,ul(11,0,1)),g=e("ValueListenerArgsArray",`VId extends ${r} ? [${d}, valueId: VId, newValue: ${$}<VId> ${Se}, oldValue: ${$}<VId> ${Se}, getValueChange: ${b} ${Se}] : never`,"Value args for ValueListener",`<VId = ${r}>`,0);return[o,s,r,$,i,p,C,h,m,e(T+I,`(...[${l}, valueId, newValue, oldValue, getValueChange]: `+g+")"+qe,ul(11)),e(xe+T+I,`(${d}, valueId: Id, invalidValues: any[])`+qe,ul(12))]},(l,t)=>e(We+I,`(${l}: ${t})`+qe,be+" listening to the completion of a "+Be)],Wl=(e,l=t,a=t)=>`store.${e}(${l})`+(a?" as "+a:t),Bl=(e,l=t)=>`fluent(() => ${Wl(e,l)})`,Fl=(e,l=t,a=t)=>`store.${e}(${l?l+", ":t}proxy(listener)${a?", "+a:t})`,Ul=(e,a,n)=>{const[o,$,V,x,A,k,P,O]=Hl(),[E,N,D]=Jl(e,a,A),[L,G,M]=zl(V,E,N,D),J=de(),W=(e=0)=>re(J,(([l,a,n,d,o],s)=>{const r=e?[s+`: ${o}(${l}): ${a} => ${n},`]:[s+o+`(${l}): ${a};`];return e||B(r,Dl(d)),z(r,t),r})),F=(e,l,a,n,d,o=t)=>Sl(J,e,[l,a,n,d,o]),U=(e,l,a,n,d,o=t,s=t,r=t)=>F(fl[e]+l+(4==e?Oe:t)+a,o,n,(n==Q?Bl:Wl)(fl[e]+(4==e?Oe:t)+a,s,e?void 0:n),d,r),_=(e,l,a,n=t,d=t,o=1,s=t)=>F(c+e+I,(n?n+", ":t)+Ae+": "+l+(o?", mutator?: boolean":t),Ve,Fl(c+e+I,d,o?"mutator":t),a,s),Z=`./${El(n)}.d`,Q=El(n,1),q=El(Q),K=[],X=de();let Y=[],le=[];if($(1,Z,Q,`create${Q} as create${Q}Decl`),ee(e))$(null,l,p);else{$(0,l,"CellChange"),$(null,l,i);const[e,a,n,o,I,c,T,y,v,x,k,P,O,D,G,M,J,W,B,F,ee,le,ae,ne,se,re,$e,ce,ue]=L(q,Q),ie=de();E(((e,l)=>{const t=`<'${e}'>`,a=[V(l+b,o+t,Le+` the '${e}' `+b),V(l+b+Ke,I+t,Le+` the '${e}' `+b+Xe),V(l+h,c+t,sl(e)),V(l+h+Ke,T+t,sl(e,1)),V(l+w+Ve,y+t,`A Cell Id for the '${e}' `+b),V(l+w+Ce,x+t,cl(`a Cell Id and value from a Row in the '${e}' `+b)),V(l+h+Ce,k+t,cl(`a Row Id from the '${e}' Table, and a Cell iterator`)),V(l+b+w+Ce,P+t,cl(`a Cell Id from anywhere in the '${e}' Table, and a count of how many times it appears`))];Ie(ie,e,a),$(1,Z,...a)})),$(1,Z,e,a,n,y,O,D,G,M,J,W,B,F,ee,le,ae,ne,se,re,$e,ce,ue),Y=[e,a,n,y,D,G,M,J,W,B,F,ee,le,ae,ne,se,re,$e,ce,ie],j([[e],[d],[Q,"tables: "+a,"tables"],[Q]],(([e,l,a],n)=>U(n,t,p,e,ol(1,n),l,a))),U(0,t,C,n+Je,rl(b,ze)),U(5,t,b,Qe,Il(b,ze),"tableCallback: "+O,"tableCallback as any"),E(((e,l,a)=>{const[n,o,s,r,I,$,c,u]=oe(ie,e);j([[n],[d],[Q,"table: "+o,", table"],[Q]],(([n,d,o=t],s)=>U(s,l,b,n,Cl(e,s),d,a+o))),U(0,l,b+f,i,rl(w,"the whole of "+bl(e)),t,a),U(5,l,b+w,Qe,Il(b+w,"the whole of "+bl(e)),"tableCellCallback: "+u,a+", tableCellCallback as any"),U(0,l,h+me,"number","Gets the number of Rows in the "+bl(e),t,a),U(0,l,m,i,rl(h,bl(e)),t,a),U(0,l,g,i,rl(h,bl(e),1),"cellId?: "+I+Me,a+", cellId, descending, offset, limit"),U(5,l,h,Qe,Il(h,bl(e)),"rowCallback: "+c,a+", rowCallback as any"),j([[s],[d],[Q,", row: "+r,", row"],[Q],[Q,", partialRow: "+r,", partialRow"]],(([n,d=t,o=t],s)=>U(s,l,h,n,hl(e,s),Ge+d,a+", rowId"+o))),U(6,l,h,Ve+Se,"Add a new Row to "+bl(e),"row: "+r+", reuseIds?: boolean",a+", row, reuseIds"),U(0,l,f,I+Je,rl(w,pl(e)),Ge,a+", rowId"),U(5,l,w,Qe,Il(w,pl(e)),Ge+", cellCallback: "+$,a+", rowId, cellCallback as any"),N(e,((n,o,s,r,I)=>{const $="Map"+El(o,1);Ie(X,o,$);const c=o+(R(s)?Se:t);j([[c],[d],[Q,`, cell: ${o} | `+$,", cell as any"],[Q]],(([d,o=t,s=t],$)=>U($,l+I,w,d,ml(e,n,$),Ge+o,a+", rowId, "+r+s))),U(1,l+I,b+w,d,wl[1]+` the '${n}' Cell anywhere in `+bl(e),t,a+", "+r)}))})),U(0,t,p+Re,Re,ol(1,6)),U(2,t,p+Re,Q,ol(1,7),"tablesJson: "+Re,"tables"+Re),_(u+p,D,ol(1,8,0,1)+" changes"),_(p,G,ol(1,8)+" changes"),_(C,M,il(2,0,1)),_(u+b,J,il(3,0,0,1),`tableId: ${n} | null`,"tableId"),_(b,W,il(3,0),`tableId: ${n} | null`,"tableId"),_(b+f,B,il(14,3,1),`tableId: ${n} | null`,"tableId"),_(u+b+w,F,il(16,3,0,1),`tableId: ${n} | null, cellId: ${H(E((e=>oe(ie,e)?.[4]??t))," | ")} | null`,"tableId, cellId"),_(h+me,ee,il(15,3),`tableId: ${n} | null`,"tableId"),_(m,le,il(4,3,1),`tableId: ${n} | null`,"tableId"),_(g,ae,il(13,3,1),Ll("tableId: TId",`cellId: ${y}<TId>`+Se,"descending: boolean","offset: number","limit: number"+Se),Ll("tableId","cellId","descending","offset","limit"),1,"<TId extends TableId>"),_(u+h,ne,il(5,3,0,1),`tableId: ${n} | null, rowId: IdOrNull`,"tableId, rowId"),_(h,se,il(5,3),`tableId: ${n} | null, rowId: IdOrNull`,"tableId, rowId"),_(f,re,il(6,5,1),`tableId: ${n} | null, rowId: IdOrNull`,"tableId, rowId"),_(u+w,$e,il(7,5,0,1),`tableId: ${n} | null, rowId: IdOrNull, cellId: ${H(E((e=>oe(ie,e)?.[4]??t))," | ")} | null`,"tableId, rowId, cellId"),_(w,ce,il(7,5),`tableId: ${n} | null, rowId: IdOrNull, cellId: ${H(E((e=>oe(ie,e)?.[4]??t))," | ")} | null`,"tableId, rowId, cellId"),_(xe+w,ue,De+" whenever an invalid Cell change was attempted","tableId: IdOrNull, rowId: IdOrNull, cellId: IdOrNull","tableId, rowId, cellId"),$(1,Z,...te(X)),z(K,".set"+p+je+"({",Ol(E(((e,l,a)=>[`[${a}]: {`,...N(e,((e,l,a,n)=>`[${n}]: {[${A(Nl(s),`'${s}'`)}]: ${A(Nl(l),`'${l}'`)}${R(a)?t:`, [${A(Nl(r),`'${r}'`)}]: `+(S(a)?A(Nl(a),`'${a}'`):a)}},`)),"},"]))),"})")}if(ee(a))$(null,l,y);else{const[e,a,n,o,I,c,i,b,p,C,h]=G(q,Q);$(1,Z,e,a,n,I,c,i,b,p,C,h),le=[e,a,n,c,i,b,p,C],j([[e],[d],[Q,"values: "+a,"values"],[Q],[Q,"partialValues: "+a,"partialValues"]],(([e,l,a],n)=>U(n,t,y,e,ol(2,n),l,a))),U(0,t,v,n+Je,rl(T,ze)),U(5,t,T,"void",Il(T,ze),"valueCallback: "+I,"valueCallback as any"),D(((e,l,a,n,o)=>{const s="Map"+El(l,1);Ie(X,l,s),j([[l],[d],[Q,`value: ${l} | `+s,", value as any"],[Q]],(([l,a,d=t],s)=>U(s,o,T,l,gl(e,s),a,n+d)))})),U(0,t,y+Re,Re,ol(2,6)),U(2,t,y+Re,Q,ol(2,7),"valuesJson: "+Re,"values"+Re),_(u+y,c,ol(2,8,0,1)+" changes"),_(y,i,ol(2,8)+" changes"),_(v,b,il(10,0,1)),_(u+T,p,il(11,0,0,1),`valueId: ${n} | null`,"valueId"),_(T,C,il(11,0),`valueId: ${n} | null`,"valueId"),_(xe+T,h,De+" whenever an invalid Value change was attempted","valueId: IdOrNull","valueId"),$(1,Z,...te(X)),$(0,l,"ValueChange"),z(K,".set"+y+je+"({",D(((e,l,a,n)=>[`[${n}]: {[${A(Nl(s),`'${s}'`)}]: ${A(Nl(l),`'${l}'`)}${R(a)?t:`, [${A(Nl(r),`'${r}'`)}]: `+(S(a)?A(Nl(a),`'${a}'`):a)}},`])),"})")}U(0,t,"Content",`[${p}, ${y}]`,ol(0,0)),U(2,t,"Content",Q,ol(0,2),`[tables, values]: [${p}, ${y}]`,"[tables, values]"),U(7,t,"applyChanges",Q,`Applies a set of ${he} to the Store`,"changes: "+he,"changes"),se(X,((e,l)=>V(l,`(cell: ${e}${Se}) => `+e,`Takes a ${e} Cell value and returns another`))),$(null,l,"DoRollback",Ve,"IdOrNull",Re,"Store",he),U(0,t,Re,Re,ol(0,6)),U(2,t,Re,Q,ol(0,7),"tablesAndValuesJson: "+Re,"tablesAndValuesJson"),U(7,t,Be,"Return",Fe,ye,"actions, doRollback","<Return>"),U(7,t,"start"+We,Q,Ue),U(7,t,"finish"+We,Q,_e,Te,"doRollback");const ae=M(q,Q);return _("Start"+We,ae,De+" just before the start of the "+Be,t,t,0),_("WillFinish"+We,ae,De+" just before "+Ze,t,t,0),_("DidFinish"+We,ae,De+" just after "+Ze,t,t,0),U(7,t,"call"+I,Q,"Manually provoke a listener to be called","listenerId: Id","listenerId"),U(3,t,I,Q,"Remove a listener that was previously added to "+ze,"listenerId: Id","listenerId"),F("getStore",t,"Store","store",wl[0]+" the underlying Store object"),$(1,l,"createStore"),$(1,Z,Q,`create${Q} as create${Q}Decl`,ae),A("store",["createStore()",...K]),x("fluent","actions: () => Store",["actions();",`return ${q};`]),x("proxy","listener: any",`(_: Store, ...params: any[]) => listener(${q}, ...params)`),A(q,["{",...W(1),"}"]),[o(...k(0),...P(),ve+" interface "+Q+" {",...W(0),"}",t,Dl(`Creates a ${Q} object`),ve+" function create"+Q+"(): "+Q+";"),o(...k(1),ve+" const create"+Q+": typeof create"+Q+"Decl = () => {",...O(),`return Object.freeze(${q});`,"};"),Y,le]},_l=e=>$+e,Zl=e=>Ll(_l(e),_l(e)+we),Ql="debugIds?: boolean",ql="debugIds={debugIds}",Kl="then"+fe,Xl="Parameter",Yl=": (parameter: "+Xl+", store: Store) => ",et="const contextValue = useContext(Context);",lt=", based on a parameter",tt=": ",at="<"+Xl+",>",nt=Xl+"ized"+Ce+"<"+Xl+">",dt="rowId",ot="rowId={rowId}",st=", separator, debugIds",rt="separator?: ReactElement | string",It="then?: (store: Store",$t=Ll(It+")"+qe,Kl),ct="then, then"+we,ut=dt+tt+Ve,it="View",bt=(e,...l)=>Ll(...l,Ae+": "+e,Ae+fe,"mutator?: boolean"),pt=(...e)=>Ll(...e,Ae,Ae+we,"mutator"),Ct=(e,a,n,s,r)=>{const[$,c,V,x,A,k,S,P]=Hl(),[O,E,N]=Jl(e,a,A),D=`./${El(n)}.d`,L=`./${El(n)}-ui-react.d`,G="tinybase/ui-react",j=El(n,1),M=El(j),J=j+"Or"+j+Ve,W=M+"Or"+j+Ve,F=M+`={${M}}`,U=de(),_=(e,l,a,n,d,o=t)=>(c(1,L,e+" as "+e+"Decl"),Sl(U,e,[l,a,n,d,o])),Z=(e,l,a,n,d,o=t)=>_("use"+e,l,a,n,d,o),Q=(e,l,a,n,d=t,o=t,s=t,r=t,I=t)=>(c(1,G,`use${l} as use${l}Core`),Z(e,Ll(d,le,r),a,ae+`(${W}, use${l}Core, [`+(o||t)+(I?"], ["+I:t)+"]);",n,s)),q=(e,l,t,a)=>_(e,l,1,t,a),K=(e=0)=>re(U,(([l,a,n,d,o],s)=>{const r=e?[ve+` const ${s}: typeof ${s}Decl = ${o}(${l}): ${1==a?"any":a} =>`,n]:[ve+` function ${s}${o}(${l}): ${1==a?"ComponentReturnType":a};`];return e||B(r,Dl(d)),z(r,t),r}));c(null,l,Ve,"Store",Ce,Xl+"ized"+Ce),c(0,G,"ComponentReturnType"),c(1,G,"useCellIds"),c(null,G,"ExtraProps"),c(0,D,j);const X=V(J,j+" | "+Ve,`Used when you need to refer to a ${j} in a React hook or component`),Y=V(Ne+Ee,jl(M+ke+j,M+`ById?: {[${M}Id: Id]: ${j}}`),`Used with the ${Ne} component, so that a `+j+" can be passed into the context of an application");c(0,"react","ReactElement","ComponentType"),c(1,"react","React"),c(1,L,X,Y);const le=W+ke+X;A("{createContext, useContext, useMemo}","React"),A("Context",`createContext<[${j}?, {[${M}Id: Id]: ${j}}?]>([])`),Z("Create"+j,`create: () => ${j}, create`+fe,j,"\n// eslint-disable-next-line react-hooks/exhaustive-deps\nuseMemo(create, createDeps)",`Create a ${j} within a React application with convenient memoization`);const te=Z(j,"id?: Id",j+Se,["{",et,"return id == null ? contextValue[0] : contextValue[1]?.[id];","}"],`Get a reference to a ${j} from within a ${Ne} component context`),ae=x("useHook",W+`: ${X} | undefined, hook: (...params: any[]) => any, preParams: any[], postParams: any[] = []`,[`const ${M} = ${te}(${W} as Id);`,`return hook(...preParams, ((${W} == null || typeof ${W} == 'string')`,`? ${M} : ${W})?.getStore(), ...postParams)`]),ne=x("getProps","getProps: ((id: any) => ExtraProps) | undefined, id: Id","(getProps == null) ? ({} as ExtraProps) : getProps(id)"),se=x("wrap",Ll("children: any","separator?: any","encloseWithId?: boolean","id?: Id"),["const separated = separator==null || !Array.isArray(children)"," ? children"," : children.map((child, c) => (c > 0 ? [separator, child] : child));","return encloseWithId ? [id, ':{', separated, '}'] : separated;"]),Ie=x("useCustomOrDefaultCellIds",Ll("customCellIds: Ids | undefined","tableId: Id","rowId: Id",`${W}?: ${X} | undefined`),[`const defaultCellIds = ${ae}(${W}, useCellIds, [tableId, rowId]);`,"return customCellIds ?? defaultCellIds;"]),$e=A("NullComponent","() => null");if(!ee(e)){const[e,a,n,r,$,T,y,v,A,k,S,P,N,G,J,z,W,B,U,_]=s;c(null,D,e,a,n,$,T,y,v,A,k,S,P,N,G,J,z,W,U,B),c(0,D,r),c(1,D,j),c(null,l,i,"IdOrNull");const Z=x("tableView",`{${M}, rowComponent, getRowComponentProps, customCellIds`+st+"}: any, rowIds: Ids, tableId: Id, defaultRowComponent: React.ComponentType<any>",["const Row = rowComponent ?? defaultRowComponent;",`return ${se}(rowIds.map((rowId) => (`,"<Row","{..."+ne+"(getRowComponentProps, rowId)}","key={rowId}","tableId={tableId}",ot,"customCellIds={customCellIds}",F,ql,"/>","))",st,", tableId,",");"]),K=x("getDefaultTableComponent","tableId: Id",H(O(((e,l,t)=>`tableId == ${t} ? ${l}TableView : `)))+$e),X=x("getDefaultCellComponent","tableId: Id, cellId: Id",H(O(((e,l,t)=>`tableId == ${t} ? ${H(E(e,((e,t,a,n,d)=>`cellId == ${n} ? `+l+d+"CellView : ")))+$e} : `)))+$e);Q(u+p,u+p,d,ol(1,0,0,1)+pe),Q(p,p,e,ol(1,0)+pe);const Y=Q(C,C,n+Je,rl(b,ze)+pe);Q(He+p+Ce,He+p+Ce,nt,ol(1,9)+lt,Ll(_l(p)+Yl+a,_l(p)+fe),Zl(p),at,Ll(It,`tables: ${a})`+qe,Kl),ct),Q(ge+p+Ce,ge+p+Ce,Ce,ol(1,12),t,t,t,$t,ct);const ee=V(w+Ee,jl("tableId?: TId","rowId: Id","cellId?: CId",M+ke+j,Ql),$l(ie+w),`<TId extends ${n}, CId extends ${r}<TId>>`),le=V(h+Ee,jl("tableId?: TId","rowId: Id",M+ke+j,"cellComponents?: {readonly [CId in "+r+`<TId>]?: ComponentType<${ee}<TId, CId>>;}`,`getCellComponentProps?: (cellId: ${r}<TId>) => ExtraProps`,`customCellIds?: ${r}<TId>[]`,rt,Ql),$l(ie+h),`<TId extends ${n}>`),te=V(b+Ee,jl("tableId?: TId",M+ke+j,`rowComponent?: ComponentType<${le}<TId>>`,"getRowComponentProps?: (rowId: Id) => ExtraProps","customCellIds?: CellId<TId>[]",rt,Ql),$l(ie+b),`<TId extends ${n}>`),ae=V("Sorted"+b+Ee,jl("tableId?: TId","cellId?: "+r+"<TId>","descending?: boolean","offset?: number","limit?: number",M+ke+j,`rowComponent?: ComponentType<${le}<TId>>`,"getRowComponentProps?: (rowId: Id) => ExtraProps","customCellIds?: CellId<TId>[]",rt,Ql),$l(ie+"sorted "+b),`<TId extends ${n}>`),de=V(p+Ee,jl(M+ke+j,"tableComponents?: {readonly [TId in "+n+`]?: ComponentType<${te}<TId>>;}`,`getTableComponentProps?: (tableId: ${n}) => ExtraProps`,rt,Ql),$l(dl(1,1)));c(1,L,de,te,ae,le,ee),q(p+it,"{"+M+", tableComponents, getTableComponentProps"+st+"}: "+de,[se+`(${Y}(${M}).map((tableId) => {`,"const Table = (tableComponents?.[tableId] ?? "+K+"(tableId)) as React.ComponentType<TableProps<typeof tableId>>;","return <Table",`{...${ne}(getTableComponentProps, tableId)}`,"tableId={tableId}","key={tableId}",F,ql,"/>;","}), separator)"],ol(1,13)+pe),O(((e,l,a)=>{const[n,s,r,I,$]=oe(_,e);c(null,D,n,s,r,I,$),Q(u+l+b,u+b,d,Cl(e,0,1)+pe,t,a),Q(l+b,b,n,Cl(e)+pe,t,a),Q(l+b+f,b+f,i,rl(w,"the whole of "+bl(e))+pe,t,a),Q(l+h+me,h+me,o,"Gets the number of Rows in "+bl(e)+pe,t,a);const p=Q(l+m,m,i,rl(h,bl(e))+pe,t,a),C=Q(l+g,g,i,rl(h,bl(e),1)+pe,"cellId?: "+$+", descending?: boolean, offset?: number, limit?: number",a+", cellId, descending, offset, limit");Q(u+l+h,u+h,d,hl(e,0,1)+pe,ut,Ll(a,dt)),Q(l+h,h,r,hl(e)+pe,ut,Ll(a,dt)),Q(l+f,f,$+Je,rl(w,pl(e))+pe,ut,Ll(a,dt)),Q(He+l+b+Ce,He+b+Ce,nt,Cl(e,9)+lt,Ll(_l(b)+Yl+s,_l(b)+fe),Ll(a,Zl(b)),at,Ll(It,`table: ${s})`+qe,Kl),ct),Q(ge+l+b+Ce,ge+b+Ce,Ce,Cl(e,12),t,a,t,$t,ct),Q(He+l+h+Ce,He+h+Ce,nt,hl(e,9)+lt,Ll(ut,_l(h)+Yl+I,_l(h)+fe),Ll(a,dt,Zl(h)),at,Ll(It,`row: ${I})`+qe,Kl),ct),Q("Add"+l+h+Ce,"Add"+h+Ce,nt,hl(e,10)+lt,Ll(_l(h)+Yl+I,_l(h)+fe),Ll(a,Zl(h)),at,"then?: ("+Ll(ut+Se,"store: Store","row: "+I+")"+qe,"then"+fe)+", reuseRowIds?: boolean",ct+", reuseRowIds"),Q(He+l+Oe+h+Ce,He+Oe+h+Ce,nt,hl(e,11)+lt,Ll(ut,_l(Oe+h)+Yl+I,_l(Oe+h)+fe),Ll(a,dt,Zl(Oe+h)),at,Ll(It,`partialRow: ${I})`+qe,Kl),ct),Q(ge+l+h+Ce,ge+h+Ce,Ce,hl(e,12),ut,Ll(a,dt),t,$t,ct);const T=q(l+h+it,"{rowId, "+M+", cellComponents, getCellComponentProps, customCellIds"+st+`}: ${le}<'${e}'>`,[se+`(${Ie}(customCellIds, `+a+`, rowId, ${M}).map((cellId: ${$}) => {`,"const Cell = (cellComponents?.[cellId] ?? "+X+`(${a}, cellId)) as React.ComponentType<CellProps<typeof `+a+", typeof cellId>>;","return <Cell",`{...${ne}(getCellComponentProps, cellId)} `,"key={cellId}",`tableId={${a}}`,ot,"cellId={cellId}",F,ql,"/>;","})"+st+", rowId)"],hl(e,13)+pe);q(l+"Sorted"+b+it,"{cellId, descending, offset, limit, ...props}: "+ae+`<'${e}'>`,Z+"(props, "+C+`(cellId, descending, offset, limit, props.${M}), ${a}, ${T});`,Cl(e,13)+", sorted"+pe),q(l+b+it,`props: ${te}<'${e}'>`,Z+"(props, "+p+`(props.${M}), ${a}, ${T});`,Cl(e,13)+pe),E(e,((n,o,s,r,I)=>{const $="Map"+El(o,1);c(0,D,$),c(1,D,$),Q(u+l+I+b+w,u+b+w,d,`Gets ${nl(1)}the '${n}' Cell anywhere in `+bl(e)+pe,t,Ll(a,r)),Q(u+l+I+w,u+w,d,ml(e,n,0,1)+pe,ut,Ll(a,dt,r));const i=Q(l+I+w,w,o+(R(s)?Se:t),ml(e,n)+pe,ut,Ll(a,dt,r));Q(He+l+I+w+Ce,He+w+Ce,nt,ml(e,n,9)+lt,Ll(ut,_l(w)+Yl+o+" | "+$,_l(w)+fe),Ll(a,dt,r,Zl(w)),at,Ll(It,`cell: ${o} | ${$})`+qe,Kl),ct),Q(ge+l+I+w+Ce,ge+w+Ce,Ce,ml(e,n,12),Ll(ut,"forceDel?: boolean"),Ll(a,dt,r,"forceDel"),t,$t,ct),q(l+I+w+it,`{rowId, ${M}, debugIds}: `+ee+`<'${e}', '${n}'>`,[se+`('' + ${i}(rowId, `+M+`) ?? '', undefined, debugIds, ${r})`],ml(e,n,13)+pe)}))}));const re=H(O((e=>oe(_,e)?.[4]??t))," | ");Q(u+p+I,u+p+I,Qe,ol(1,8,0,1)+" changes",bt($),pt()),Q(p+I,p+I,Qe,ol(1,8)+" changes",bt(T),pt()),Q(C+I,C+I,Qe,il(2,0,1),bt(y),pt()),Q(u+b+I,u+b+I,Qe,il(3,0,0,1),bt(v,`tableId: ${n} | null`),pt("tableId")),Q(b+I,b+I,Qe,il(3,0),bt(A,`tableId: ${n} | null`),pt("tableId")),Q(b+f+I,b+f+I,Qe,il(14,3,1),bt(k,`tableId: ${n} | null`),pt("tableId")),Q(u+b+w+I,u+b+w+I,Qe,il(16,3,0,1),bt(S,`tableId: ${n} | null`,`cellId: ${re} | null`),pt("tableId","cellId")),Q(h+me+I,h+me+I,Qe,il(15,3),bt(P,`tableId: ${n} | null`),pt("tableId")),Q(m+I,m+I,Qe,il(4,3,1),bt(N,`tableId: ${n} | null`),pt("tableId")),Q(g+I,g+I,Qe,il(13,3,1),bt(G,`tableId: ${n} | null`,"cellId: "+re+Se,"descending: boolean","offset: number","limit: number"+Se),pt("tableId","cellId","descending","offset","limit")),Q(u+h+I,u+h+I,Qe,il(5,3,0,1),bt(J,`tableId: ${n} | null`,dt+": IdOrNull"),pt("tableId",dt)),Q(h+I,h+I,Qe,il(5,3),bt(z,`tableId: ${n} | null`,dt+": IdOrNull"),pt("tableId",dt)),Q(f+I,f+I,Qe,il(6,5,1),bt(W,`tableId: ${n} | null`,dt+": IdOrNull"),pt("tableId",dt)),Q(u+w+I,u+w+I,Qe,il(7,5,0,1),bt(B,`tableId: ${n} | null`,dt+": IdOrNull",`cellId: ${re} | null`),pt("tableId",dt,"cellId")),Q(w+I,w+I,Qe,il(7,5),bt(U,`tableId: ${n} | null`,dt+": IdOrNull",`cellId: ${re} | null`),pt("tableId",dt,"cellId"))}if(!ee(a)){const[e,l,a,n,o,s,$,i]=r;c(null,D,...r),c(1,D,j);const b=x("getDefaultValueComponent","valueId: Id",H(N(((e,l,t,a,n)=>`valueId == ${a} ? `+n+"ValueView : ")))+$e);Q(u+y,u+y,d,ol(2,0,0,1)+pe),Q(y,y,e,ol(2,0)+pe);const p=Q(v,v,a+Je,rl(T,ze)+pe);Q(He+y+Ce,He+y+Ce,nt,ol(2,9)+lt,Ll(_l(y)+Yl+l,_l(y)+fe),Zl(y),at,Ll(It,`values: ${l})`+qe,Kl),ct),Q(He+Oe+y+Ce,He+Oe+y+Ce,nt,ol(2,11)+lt,Ll(_l(Oe+y)+Yl+l,_l(Oe+y)+fe),Zl(Oe+y),at,Ll(It,`partialValues: ${l})`+qe,Kl),ct),Q(ge+y+Ce,ge+y+Ce,Ce,ol(2,12),t,t,t,$t,ct);const C=V(T+Ee,jl("valueId?: VId",M+ke+j,Ql),$l("a Value"),`<VId extends ${a}>`),h=V(y+Ee,jl(M+ke+j,"valueComponents?: {readonly [VId in "+a+`]?: ComponentType<${C}<VId>>;}`,`getValueComponentProps?: (valueId: ${a}) => ExtraProps`,rt,Ql),$l(dl(2,1)));c(1,L,h,C),q(y+it,"{"+M+", valueComponents, getValueComponentProps"+st+"}: "+h,[se+`(${p}(${M}).map((valueId) => {`,"const Value = valueComponents?.[valueId] ?? "+b+"(valueId);","return <Value",`{...${ne}(getValueComponentProps, valueId)}`,"key={valueId}",F,ql,"/>;","}), separator)"],ol(2,13)+pe),N(((e,l,a,n,o)=>{const s="Map"+El(l,1);c(0,D,s),c(1,D,s),Q(u+o+T,u+T,d,gl(e,0,1)+pe,t,n);const r=Q(o+T,T,l,gl(e)+pe,t,n);Q(He+o+T+Ce,He+T+Ce,nt,gl(e,9)+lt,Ll(_l(T)+Yl+l+" | "+s,_l(T)+fe),Ll(n,Zl(T)),at,Ll(It,`value: ${l} | ${s})`+qe,Kl),ct),Q(ge+o+T+Ce,ge+T+Ce,Ce,gl(e,12),t,n,t,$t,ct),q(o+T+it,`{${M}, debugIds}: ${C}<'${e}'>`,[se+`('' + ${r}(`+M+`) ?? '', undefined, debugIds, ${n})`],gl(e,13)+pe)})),Q(u+y+I,u+y+I,Qe,ol(2,8,0,1)+" changes",bt(n),pt()),Q(y+I,y+I,Qe,ol(2,8)+" changes",bt(o),pt()),Q(v+I,v+I,Qe,il(10,0,1),bt(s),pt()),Q(u+T+I,u+T+I,Qe,il(11,0,0,1),bt($,`valueId: ${a} | null`),pt("valueId")),Q(T+I,T+I,Qe,il(11,0),bt(i,`valueId: ${a} | null`),pt("valueId"))}return q(Ne,`{${M}, ${M}ById, children}: `+Y+" & {readonly children: React.ReactNode}",["{",et,"return (","<Context."+Ne,"value={useMemo(",`() => [${M} ?? contextValue[0], {...contextValue[1], ...${M}ById}],`,`[${M}, ${M}ById, contextValue],`,")}>","{children}",`</Context.${Ne}>`,");","}"],"Wraps part of an application in a context that provides default objects to be used by hooks and components within"),[$(...k(0),...S(),...K(0)),$(...k(1),...P(),...K(1))]},ht=(e,l,a)=>{if(ee(e)&&ee(l))return[t,t,t,t];const[n,d,o,s]=Ul(e,l,a);return[n,d,...Ct(e,l,a,o,s)]},mt=JSON.parse,gt="prettier/",wt=gt+"plugins/",ft={parser:"typescript",singleQuote:!0,trailingComma:"all",bracketSpacing:!1,jsdocSingleLineComment:!1},Tt=Ml((e=>{const l=()=>{const l=mt(e.getTablesSchemaJson());return!ee(l)||L(e.getTableIds(),(t=>{const a=e.getRowIds(t),n=de();if(L(a,(l=>L(e.getCellIds(t,l),(a=>{const d=e.getCell(t,l,a),o=$e(n,a,(()=>[D(d),de(),[0],0])),[s,r,[I]]=o,$=$e(r,d,(()=>0))+1;return $>I&&(o[2]=[$,d]),Ie(r,d,$),o[3]++,s==D(d)})))))return l[t]={},ae(n,(([e,,[,n],d],o)=>{l[t][o]={[s]:e,...d==E(a)?{[r]:n}:{}}})),1}))?l:{}},t=()=>{const l=mt(e.getValuesSchemaJson());return ee(l)&&e.forEachValue(((e,t)=>{l[e]={[s]:D(t)}})),l},a=e=>ht(l(),t(),e),n=async e=>{const l=["d.ts","ts","d.ts","tsx"],t=[];let n;try{n=(await import(gt+"standalone")).format,z(t,await import(wt+"estree"),await import(wt+"typescript"))}catch(e){n=async e=>e}return await N(M(a(e),(async(e,a)=>Pl(await n(e,{...ft,plugins:t,filepath:"_."+l[a]})))))};return K({getStoreStats:l=>{let t=0,a=0,n=0;const d={};return e.forEachTable(((e,o)=>{t++;let s=0,r=0;const I={};o(((e,t)=>{s++;let a=0;t((()=>a++)),r+=a,l&&(I[e]={rowCells:a})})),a+=s,n+=r,l&&(d[e]={tableRows:s,tableCells:r,rows:I})})),{totalTables:t,totalRows:a,totalCells:n,totalValues:E(e.getValueIds()),jsonLength:E(e.getJson()),...l?{detail:{tables:d}}:{}}},getStoreTablesSchema:l,getStoreValuesSchema:t,getStoreApi:a,getPrettyStoreApi:n,getStore:()=>e})}));export{Tt as createTools};
package/lib/tools.js.gz CHANGED
Binary file
@@ -10,8 +10,8 @@
10
10
  * @module checkpoints
11
11
  */
12
12
 
13
- import {Id, IdOrNull, Ids} from './common.d';
14
- import {Store} from './store.d';
13
+ import {Id, IdOrNull, Ids} from './common.d.ts';
14
+ import {Store} from './store.d.ts';
15
15
 
16
16
  /**
17
17
  * The CheckpointIds type is a representation of the list of checkpoint Ids
@@ -10,8 +10,8 @@
10
10
  * @module indexes
11
11
  */
12
12
 
13
- import {GetCell, RowCallback, Store} from './store.d';
14
- import {Id, IdOrNull, Ids, SortKey} from './common.d';
13
+ import {GetCell, RowCallback, Store} from './store.d.ts';
14
+ import {Id, IdOrNull, Ids, SortKey} from './common.d.ts';
15
15
 
16
16
  /**
17
17
  * The Index type represents the concept of a map of Slice objects, keyed by Id.
@@ -0,0 +1,214 @@
1
+ /**
2
+ * The mergeable-store module
3
+ * @packageDocumentation
4
+ * @module mergeable-store
5
+ * @since v5.0.0
6
+ */
7
+
8
+ import {CellOrUndefined, Content, Store, ValueOrUndefined} from './store.d.ts';
9
+ import {Id} from './common';
10
+
11
+ /**
12
+ * The Hash type
13
+ * @category Stamps
14
+ */
15
+ export type Hash = number;
16
+
17
+ /**
18
+ * The Time type
19
+ * @category Stamps
20
+ */
21
+ export type Time = string;
22
+
23
+ /**
24
+ * The Stamp type
25
+ * @category Stamps
26
+ */
27
+ export type Stamp<Thing, Hashed extends boolean = false> = Hashed extends true
28
+ ? [thing: Thing, time: Time, hash: Hash]
29
+ : [thing: Thing, time?: Time];
30
+
31
+ // ContentHashes
32
+ export type ContentHashes = [tablesHash: Hash, valuesHash: Hash];
33
+
34
+ // TablesStamp
35
+ export type TablesStamp<Hashed extends boolean = false> = Stamp<
36
+ {[tableId: Id]: TableStamp<Hashed>},
37
+ Hashed
38
+ >;
39
+
40
+ // TableHashes
41
+ export type TableHashes = {[tableId: Id]: Hash};
42
+
43
+ // TableStamp
44
+ export type TableStamp<Hashed extends boolean = false> = Stamp<
45
+ {[rowId: Id]: RowStamp<Hashed>},
46
+ Hashed
47
+ >;
48
+
49
+ // RowHashes
50
+ export type RowHashes = {[tableId: Id]: {[rowId: Id]: Hash}};
51
+
52
+ // RowStamp
53
+ export type RowStamp<Hashed extends boolean = false> = Stamp<
54
+ {[cellId: Id]: CellStamp<Hashed>},
55
+ Hashed
56
+ >;
57
+
58
+ // CellHashes
59
+ export type CellHashes = {[tableId: Id]: {[rowId: Id]: {[cellId: Id]: Hash}}};
60
+
61
+ // CellStamp
62
+ export type CellStamp<Hashed extends boolean = false> = Stamp<
63
+ CellOrUndefined,
64
+ Hashed
65
+ >;
66
+
67
+ // ValuesStamp
68
+ export type ValuesStamp<Hashed extends boolean = false> = Stamp<
69
+ {[valueId: Id]: ValueStamp<Hashed>},
70
+ Hashed
71
+ >;
72
+
73
+ // ValuesHashes
74
+ export type ValuesHashes = {[valueId: Id]: Hash};
75
+
76
+ // ValueStamp
77
+ export type ValueStamp<Hashed extends boolean = false> = Stamp<
78
+ ValueOrUndefined,
79
+ Hashed
80
+ >;
81
+
82
+ /**
83
+ * The MergeableContent type
84
+ * @category Mergeable
85
+ */
86
+ export type MergeableContent = [
87
+ mergeableTables: TablesStamp<true>,
88
+ mergeableValues: ValuesStamp<true>,
89
+ ];
90
+
91
+ /**
92
+ * The MergeableChanges type
93
+ * @category Mergeable
94
+ */
95
+ export type MergeableChanges = [
96
+ mergeableTables: TablesStamp,
97
+ mergeableValues: ValuesStamp,
98
+ isChanges: 1,
99
+ ];
100
+
101
+ /**
102
+ * The MergeableStore type
103
+ * @category Mergeable
104
+ */
105
+ export interface MergeableStore extends Store {
106
+ //
107
+ /**
108
+ * The getId method
109
+ * @category Getter
110
+ */
111
+ getId(): Id;
112
+
113
+ /**
114
+ * The getMergeableContent method
115
+ * @category Getter
116
+ */
117
+ getMergeableContent(): MergeableContent;
118
+
119
+ /**
120
+ * The getMergeableContentHashes method
121
+ * @category Syncing
122
+ */
123
+ getMergeableContentHashes(): ContentHashes;
124
+
125
+ /**
126
+ * The getMergeableTableHashes method
127
+ * @category Syncing
128
+ */
129
+ getMergeableTableHashes(): TableHashes;
130
+
131
+ /**
132
+ * The getMergeableTableDiff method
133
+ * @category Syncing
134
+ */
135
+ getMergeableTableDiff(
136
+ relativeTo: TableHashes,
137
+ ): [newTables: TablesStamp, differentTableHashes: TableHashes];
138
+
139
+ /**
140
+ * The getMergeableRowHashes method
141
+ * @category Syncing
142
+ */
143
+ getMergeableRowHashes(otherTableHashes: TableHashes): RowHashes;
144
+
145
+ /**
146
+ * The getMergeableRowDiff method
147
+ * @category Syncing
148
+ */
149
+ getMergeableRowDiff(
150
+ otherTableRowHashes: RowHashes,
151
+ ): [newRows: TablesStamp, differentRowHashes: RowHashes];
152
+
153
+ /**
154
+ * The getMergeableCellHashes method
155
+ * @category Syncing
156
+ */
157
+ getMergeableCellHashes(otherTableRowHashes: RowHashes): CellHashes;
158
+
159
+ /**
160
+ * The getMergeableCellDiff method
161
+ * @category Syncing
162
+ */
163
+ getMergeableCellDiff(otherTableRowCellHashes: CellHashes): TablesStamp;
164
+
165
+ /**
166
+ * The getMergeableValuesHashes method
167
+ * @category Syncing
168
+ */
169
+ getMergeableValuesHashes(): ValuesHashes;
170
+
171
+ /**
172
+ * The getMergeableValueDiff method
173
+ * @category Syncing
174
+ */
175
+ getMergeableValueDiff(relativeTo: ValuesHashes): ValuesStamp;
176
+
177
+ /**
178
+ * The setMergeableContent method
179
+ * @category Setter
180
+ */
181
+ setMergeableContent(mergeableContent: MergeableContent): MergeableStore;
182
+
183
+ /**
184
+ * The setDefaultContent method
185
+ * @category Setter
186
+ */
187
+ setDefaultContent(content: Content): MergeableStore;
188
+
189
+ /**
190
+ * The getTransactionMergeableChanges method
191
+ * @category Getter
192
+ */
193
+ getTransactionMergeableChanges(): MergeableChanges;
194
+
195
+ /**
196
+ * The applyMergeableChanges method
197
+ * @category Setter
198
+ */
199
+ applyMergeableChanges(
200
+ mergeableChanges: MergeableChanges | MergeableContent,
201
+ ): MergeableStore;
202
+
203
+ /**
204
+ * The merge method
205
+ * @category Setter
206
+ */
207
+ merge(mergeableStore: MergeableStore): MergeableStore;
208
+ }
209
+
210
+ /**
211
+ * The createMergeableStore function
212
+ * @category Creation
213
+ */
214
+ export function createMergeableStore(id: Id): MergeableStore;
@@ -10,8 +10,8 @@
10
10
  * @module metrics
11
11
  */
12
12
 
13
- import {GetCell, Store} from './store.d';
14
- import {Id, IdOrNull, Ids} from './common.d';
13
+ import {GetCell, Store} from './store.d.ts';
14
+ import {Id, IdOrNull, Ids} from './common.d.ts';
15
15
 
16
16
  /**
17
17
  * The Metric type is simply an alias, but represents a number formed by