tinybase 5.0.0-beta.10 → 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 (322) hide show
  1. package/lib/cjs/mergeable-store.cjs +1 -1
  2. package/lib/cjs/mergeable-store.cjs.gz +0 -0
  3. package/lib/cjs/persisters/persister-automerge.cjs +1 -1
  4. package/lib/cjs/persisters/persister-automerge.cjs.gz +0 -0
  5. package/lib/cjs/persisters/persister-browser.cjs +1 -1
  6. package/lib/cjs/persisters/persister-browser.cjs.gz +0 -0
  7. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  8. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  9. package/lib/cjs/persisters/persister-electric-sql.cjs +1 -1
  10. package/lib/cjs/persisters/persister-electric-sql.cjs.gz +0 -0
  11. package/lib/cjs/persisters/persister-expo-sqlite-next.cjs +1 -1
  12. package/lib/cjs/persisters/persister-expo-sqlite-next.cjs.gz +0 -0
  13. package/lib/cjs/persisters/persister-expo-sqlite.cjs +1 -1
  14. package/lib/cjs/persisters/persister-expo-sqlite.cjs.gz +0 -0
  15. package/lib/cjs/persisters/persister-file.cjs +1 -1
  16. package/lib/cjs/persisters/persister-file.cjs.gz +0 -0
  17. package/lib/cjs/persisters/persister-indexed-db.cjs +1 -1
  18. package/lib/cjs/persisters/persister-indexed-db.cjs.gz +0 -0
  19. package/lib/cjs/persisters/persister-libsql.cjs +1 -1
  20. package/lib/cjs/persisters/persister-libsql.cjs.gz +0 -0
  21. package/lib/cjs/persisters/persister-partykit-client.cjs +1 -1
  22. package/lib/cjs/persisters/persister-partykit-client.cjs.gz +0 -0
  23. package/lib/cjs/persisters/persister-powersync.cjs +1 -1
  24. package/lib/cjs/persisters/persister-powersync.cjs.gz +0 -0
  25. package/lib/cjs/persisters/persister-remote.cjs +1 -1
  26. package/lib/cjs/persisters/persister-remote.cjs.gz +0 -0
  27. package/lib/cjs/persisters/persister-sqlite-wasm.cjs +1 -1
  28. package/lib/cjs/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  29. package/lib/cjs/persisters/persister-sqlite3.cjs +1 -1
  30. package/lib/cjs/persisters/persister-sqlite3.cjs.gz +0 -0
  31. package/lib/cjs/persisters/persister-yjs.cjs +1 -1
  32. package/lib/cjs/persisters/persister-yjs.cjs.gz +0 -0
  33. package/lib/cjs/persisters.cjs +1 -1
  34. package/lib/cjs/persisters.cjs.gz +0 -0
  35. package/lib/cjs/store.cjs +1 -1
  36. package/lib/cjs/store.cjs.gz +0 -0
  37. package/lib/cjs/synchronizers/synchronizer-local.cjs +1 -1
  38. package/lib/cjs/synchronizers/synchronizer-local.cjs.gz +0 -0
  39. package/lib/cjs/synchronizers/synchronizer-ws-client.cjs +1 -1
  40. package/lib/cjs/synchronizers/synchronizer-ws-client.cjs.gz +0 -0
  41. package/lib/cjs/synchronizers/synchronizer-ws-server.cjs +1 -1
  42. package/lib/cjs/synchronizers/synchronizer-ws-server.cjs.gz +0 -0
  43. package/lib/cjs/synchronizers.cjs +1 -1
  44. package/lib/cjs/synchronizers.cjs.gz +0 -0
  45. package/lib/cjs/tinybase.cjs +1 -1
  46. package/lib/cjs/tinybase.cjs.gz +0 -0
  47. package/lib/cjs/ui-react-dom-debug.cjs +1 -1
  48. package/lib/cjs/ui-react-dom-debug.cjs.gz +0 -0
  49. package/lib/cjs-es6/mergeable-store.cjs +1 -1
  50. package/lib/cjs-es6/mergeable-store.cjs.gz +0 -0
  51. package/lib/cjs-es6/persisters/persister-automerge.cjs +1 -1
  52. package/lib/cjs-es6/persisters/persister-automerge.cjs.gz +0 -0
  53. package/lib/cjs-es6/persisters/persister-browser.cjs +1 -1
  54. package/lib/cjs-es6/persisters/persister-browser.cjs.gz +0 -0
  55. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  56. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  57. package/lib/cjs-es6/persisters/persister-electric-sql.cjs +1 -1
  58. package/lib/cjs-es6/persisters/persister-electric-sql.cjs.gz +0 -0
  59. package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs +1 -1
  60. package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs.gz +0 -0
  61. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs +1 -1
  62. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs.gz +0 -0
  63. package/lib/cjs-es6/persisters/persister-file.cjs +1 -1
  64. package/lib/cjs-es6/persisters/persister-file.cjs.gz +0 -0
  65. package/lib/cjs-es6/persisters/persister-indexed-db.cjs +1 -1
  66. package/lib/cjs-es6/persisters/persister-indexed-db.cjs.gz +0 -0
  67. package/lib/cjs-es6/persisters/persister-libsql.cjs +1 -1
  68. package/lib/cjs-es6/persisters/persister-libsql.cjs.gz +0 -0
  69. package/lib/cjs-es6/persisters/persister-partykit-client.cjs +1 -1
  70. package/lib/cjs-es6/persisters/persister-partykit-client.cjs.gz +0 -0
  71. package/lib/cjs-es6/persisters/persister-powersync.cjs +1 -1
  72. package/lib/cjs-es6/persisters/persister-powersync.cjs.gz +0 -0
  73. package/lib/cjs-es6/persisters/persister-remote.cjs +1 -1
  74. package/lib/cjs-es6/persisters/persister-remote.cjs.gz +0 -0
  75. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs +1 -1
  76. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  77. package/lib/cjs-es6/persisters/persister-sqlite3.cjs +1 -1
  78. package/lib/cjs-es6/persisters/persister-sqlite3.cjs.gz +0 -0
  79. package/lib/cjs-es6/persisters/persister-yjs.cjs +1 -1
  80. package/lib/cjs-es6/persisters/persister-yjs.cjs.gz +0 -0
  81. package/lib/cjs-es6/persisters.cjs +1 -1
  82. package/lib/cjs-es6/persisters.cjs.gz +0 -0
  83. package/lib/cjs-es6/store.cjs +1 -1
  84. package/lib/cjs-es6/store.cjs.gz +0 -0
  85. package/lib/cjs-es6/synchronizers/synchronizer-local.cjs +1 -1
  86. package/lib/cjs-es6/synchronizers/synchronizer-local.cjs.gz +0 -0
  87. package/lib/cjs-es6/synchronizers/synchronizer-ws-client.cjs +1 -1
  88. package/lib/cjs-es6/synchronizers/synchronizer-ws-client.cjs.gz +0 -0
  89. package/lib/cjs-es6/synchronizers/synchronizer-ws-server.cjs +1 -1
  90. package/lib/cjs-es6/synchronizers/synchronizer-ws-server.cjs.gz +0 -0
  91. package/lib/cjs-es6/synchronizers.cjs +1 -1
  92. package/lib/cjs-es6/synchronizers.cjs.gz +0 -0
  93. package/lib/cjs-es6/tinybase.cjs +1 -1
  94. package/lib/cjs-es6/tinybase.cjs.gz +0 -0
  95. package/lib/cjs-es6/ui-react-dom-debug.cjs +1 -1
  96. package/lib/cjs-es6/ui-react-dom-debug.cjs.gz +0 -0
  97. package/lib/debug/mergeable-store.js +1 -1
  98. package/lib/debug/persisters/persister-automerge.js +113 -101
  99. package/lib/debug/persisters/persister-browser.js +113 -97
  100. package/lib/debug/persisters/persister-cr-sqlite-wasm.js +113 -102
  101. package/lib/debug/persisters/persister-electric-sql.js +113 -102
  102. package/lib/debug/persisters/persister-expo-sqlite-next.js +113 -102
  103. package/lib/debug/persisters/persister-expo-sqlite.js +113 -102
  104. package/lib/debug/persisters/persister-file.js +108 -96
  105. package/lib/debug/persisters/persister-indexed-db.js +108 -96
  106. package/lib/debug/persisters/persister-libsql.js +113 -102
  107. package/lib/debug/persisters/persister-partykit-client.js +112 -100
  108. package/lib/debug/persisters/persister-powersync.js +113 -102
  109. package/lib/debug/persisters/persister-remote.js +108 -96
  110. package/lib/debug/persisters/persister-sqlite-wasm.js +113 -102
  111. package/lib/debug/persisters/persister-sqlite3.js +113 -102
  112. package/lib/debug/persisters/persister-yjs.js +113 -101
  113. package/lib/debug/persisters.js +107 -95
  114. package/lib/debug/store.js +1 -1
  115. package/lib/debug/synchronizers/synchronizer-local.js +114 -102
  116. package/lib/debug/synchronizers/synchronizer-ws-client.js +113 -101
  117. package/lib/debug/synchronizers/synchronizer-ws-server.js +151 -6
  118. package/lib/debug/synchronizers.js +113 -101
  119. package/lib/debug/tinybase.js +114 -102
  120. package/lib/debug/ui-react-dom.js +114 -98
  121. package/lib/es6/mergeable-store.js +1 -1
  122. package/lib/es6/mergeable-store.js.gz +0 -0
  123. package/lib/es6/persisters/persister-automerge.js +1 -1
  124. package/lib/es6/persisters/persister-automerge.js.gz +0 -0
  125. package/lib/es6/persisters/persister-browser.js +1 -1
  126. package/lib/es6/persisters/persister-browser.js.gz +0 -0
  127. package/lib/es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  128. package/lib/es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  129. package/lib/es6/persisters/persister-electric-sql.js +1 -1
  130. package/lib/es6/persisters/persister-electric-sql.js.gz +0 -0
  131. package/lib/es6/persisters/persister-expo-sqlite-next.js +1 -1
  132. package/lib/es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
  133. package/lib/es6/persisters/persister-expo-sqlite.js +1 -1
  134. package/lib/es6/persisters/persister-expo-sqlite.js.gz +0 -0
  135. package/lib/es6/persisters/persister-file.js +1 -1
  136. package/lib/es6/persisters/persister-file.js.gz +0 -0
  137. package/lib/es6/persisters/persister-indexed-db.js +1 -1
  138. package/lib/es6/persisters/persister-indexed-db.js.gz +0 -0
  139. package/lib/es6/persisters/persister-libsql.js +1 -1
  140. package/lib/es6/persisters/persister-libsql.js.gz +0 -0
  141. package/lib/es6/persisters/persister-partykit-client.js +1 -1
  142. package/lib/es6/persisters/persister-partykit-client.js.gz +0 -0
  143. package/lib/es6/persisters/persister-powersync.js +1 -1
  144. package/lib/es6/persisters/persister-powersync.js.gz +0 -0
  145. package/lib/es6/persisters/persister-remote.js +1 -1
  146. package/lib/es6/persisters/persister-remote.js.gz +0 -0
  147. package/lib/es6/persisters/persister-sqlite-wasm.js +1 -1
  148. package/lib/es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  149. package/lib/es6/persisters/persister-sqlite3.js +1 -1
  150. package/lib/es6/persisters/persister-sqlite3.js.gz +0 -0
  151. package/lib/es6/persisters/persister-yjs.js +1 -1
  152. package/lib/es6/persisters/persister-yjs.js.gz +0 -0
  153. package/lib/es6/persisters.js +1 -1
  154. package/lib/es6/persisters.js.gz +0 -0
  155. package/lib/es6/store.js +1 -1
  156. package/lib/es6/store.js.gz +0 -0
  157. package/lib/es6/synchronizers/synchronizer-local.js +1 -1
  158. package/lib/es6/synchronizers/synchronizer-local.js.gz +0 -0
  159. package/lib/es6/synchronizers/synchronizer-ws-client.js +1 -1
  160. package/lib/es6/synchronizers/synchronizer-ws-client.js.gz +0 -0
  161. package/lib/es6/synchronizers/synchronizer-ws-server.js +1 -1
  162. package/lib/es6/synchronizers/synchronizer-ws-server.js.gz +0 -0
  163. package/lib/es6/synchronizers.js +1 -1
  164. package/lib/es6/synchronizers.js.gz +0 -0
  165. package/lib/es6/tinybase.js +1 -1
  166. package/lib/es6/tinybase.js.gz +0 -0
  167. package/lib/es6/ui-react-dom-debug.js +1 -1
  168. package/lib/es6/ui-react-dom-debug.js.gz +0 -0
  169. package/lib/mergeable-store.js +1 -1
  170. package/lib/mergeable-store.js.gz +0 -0
  171. package/lib/persisters/persister-automerge.js +1 -1
  172. package/lib/persisters/persister-automerge.js.gz +0 -0
  173. package/lib/persisters/persister-browser.js +1 -1
  174. package/lib/persisters/persister-browser.js.gz +0 -0
  175. package/lib/persisters/persister-cr-sqlite-wasm.js +1 -1
  176. package/lib/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  177. package/lib/persisters/persister-electric-sql.js +1 -1
  178. package/lib/persisters/persister-electric-sql.js.gz +0 -0
  179. package/lib/persisters/persister-expo-sqlite-next.js +1 -1
  180. package/lib/persisters/persister-expo-sqlite-next.js.gz +0 -0
  181. package/lib/persisters/persister-expo-sqlite.js +1 -1
  182. package/lib/persisters/persister-expo-sqlite.js.gz +0 -0
  183. package/lib/persisters/persister-file.js +1 -1
  184. package/lib/persisters/persister-file.js.gz +0 -0
  185. package/lib/persisters/persister-indexed-db.js +1 -1
  186. package/lib/persisters/persister-indexed-db.js.gz +0 -0
  187. package/lib/persisters/persister-libsql.js +1 -1
  188. package/lib/persisters/persister-libsql.js.gz +0 -0
  189. package/lib/persisters/persister-partykit-client.js +1 -1
  190. package/lib/persisters/persister-partykit-client.js.gz +0 -0
  191. package/lib/persisters/persister-powersync.js +1 -1
  192. package/lib/persisters/persister-powersync.js.gz +0 -0
  193. package/lib/persisters/persister-remote.js +1 -1
  194. package/lib/persisters/persister-remote.js.gz +0 -0
  195. package/lib/persisters/persister-sqlite-wasm.js +1 -1
  196. package/lib/persisters/persister-sqlite-wasm.js.gz +0 -0
  197. package/lib/persisters/persister-sqlite3.js +1 -1
  198. package/lib/persisters/persister-sqlite3.js.gz +0 -0
  199. package/lib/persisters/persister-yjs.js +1 -1
  200. package/lib/persisters/persister-yjs.js.gz +0 -0
  201. package/lib/persisters.js +1 -1
  202. package/lib/persisters.js.gz +0 -0
  203. package/lib/store.js +1 -1
  204. package/lib/store.js.gz +0 -0
  205. package/lib/synchronizers/synchronizer-local.js +1 -1
  206. package/lib/synchronizers/synchronizer-local.js.gz +0 -0
  207. package/lib/synchronizers/synchronizer-ws-client.js +1 -1
  208. package/lib/synchronizers/synchronizer-ws-client.js.gz +0 -0
  209. package/lib/synchronizers/synchronizer-ws-server.js +1 -1
  210. package/lib/synchronizers/synchronizer-ws-server.js.gz +0 -0
  211. package/lib/synchronizers.js +1 -1
  212. package/lib/synchronizers.js.gz +0 -0
  213. package/lib/tinybase.js +1 -1
  214. package/lib/tinybase.js.gz +0 -0
  215. package/lib/types/persisters/persister-browser.d.ts +2 -2
  216. package/lib/types/persisters/persister-file.d.ts +1 -1
  217. package/lib/types/persisters.d.ts +73 -47
  218. package/lib/types/synchronizers/synchronizer-ws-server.d.ts +24 -3
  219. package/lib/types/synchronizers.d.ts +1 -1
  220. package/lib/types/with-schemas/persisters/persister-browser.d.ts +2 -2
  221. package/lib/types/with-schemas/persisters/persister-file.d.ts +1 -1
  222. package/lib/types/with-schemas/persisters.d.ts +99 -87
  223. package/lib/types/with-schemas/synchronizers/synchronizer-ws-server.d.ts +24 -3
  224. package/lib/types/with-schemas/synchronizers.d.ts +1 -1
  225. package/lib/umd/mergeable-store.js +1 -1
  226. package/lib/umd/mergeable-store.js.gz +0 -0
  227. package/lib/umd/persisters/persister-automerge.js +1 -1
  228. package/lib/umd/persisters/persister-automerge.js.gz +0 -0
  229. package/lib/umd/persisters/persister-browser.js +1 -1
  230. package/lib/umd/persisters/persister-browser.js.gz +0 -0
  231. package/lib/umd/persisters/persister-cr-sqlite-wasm.js +1 -1
  232. package/lib/umd/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  233. package/lib/umd/persisters/persister-electric-sql.js +1 -1
  234. package/lib/umd/persisters/persister-electric-sql.js.gz +0 -0
  235. package/lib/umd/persisters/persister-expo-sqlite-next.js +1 -1
  236. package/lib/umd/persisters/persister-expo-sqlite-next.js.gz +0 -0
  237. package/lib/umd/persisters/persister-expo-sqlite.js +1 -1
  238. package/lib/umd/persisters/persister-expo-sqlite.js.gz +0 -0
  239. package/lib/umd/persisters/persister-file.js +1 -1
  240. package/lib/umd/persisters/persister-file.js.gz +0 -0
  241. package/lib/umd/persisters/persister-indexed-db.js +1 -1
  242. package/lib/umd/persisters/persister-indexed-db.js.gz +0 -0
  243. package/lib/umd/persisters/persister-libsql.js +1 -1
  244. package/lib/umd/persisters/persister-libsql.js.gz +0 -0
  245. package/lib/umd/persisters/persister-partykit-client.js +1 -1
  246. package/lib/umd/persisters/persister-partykit-client.js.gz +0 -0
  247. package/lib/umd/persisters/persister-powersync.js +1 -1
  248. package/lib/umd/persisters/persister-powersync.js.gz +0 -0
  249. package/lib/umd/persisters/persister-remote.js +1 -1
  250. package/lib/umd/persisters/persister-remote.js.gz +0 -0
  251. package/lib/umd/persisters/persister-sqlite-wasm.js +1 -1
  252. package/lib/umd/persisters/persister-sqlite-wasm.js.gz +0 -0
  253. package/lib/umd/persisters/persister-sqlite3.js +1 -1
  254. package/lib/umd/persisters/persister-sqlite3.js.gz +0 -0
  255. package/lib/umd/persisters/persister-yjs.js +1 -1
  256. package/lib/umd/persisters/persister-yjs.js.gz +0 -0
  257. package/lib/umd/persisters.js +1 -1
  258. package/lib/umd/persisters.js.gz +0 -0
  259. package/lib/umd/store.js +1 -1
  260. package/lib/umd/store.js.gz +0 -0
  261. package/lib/umd/synchronizers/synchronizer-local.js +1 -1
  262. package/lib/umd/synchronizers/synchronizer-local.js.gz +0 -0
  263. package/lib/umd/synchronizers/synchronizer-ws-client.js +1 -1
  264. package/lib/umd/synchronizers/synchronizer-ws-client.js.gz +0 -0
  265. package/lib/umd/synchronizers/synchronizer-ws-server.js +1 -1
  266. package/lib/umd/synchronizers/synchronizer-ws-server.js.gz +0 -0
  267. package/lib/umd/synchronizers.js +1 -1
  268. package/lib/umd/synchronizers.js.gz +0 -0
  269. package/lib/umd/tinybase.js +1 -1
  270. package/lib/umd/tinybase.js.gz +0 -0
  271. package/lib/umd/ui-react-dom-debug.js +1 -1
  272. package/lib/umd/ui-react-dom-debug.js.gz +0 -0
  273. package/lib/umd-es6/mergeable-store.js +1 -1
  274. package/lib/umd-es6/mergeable-store.js.gz +0 -0
  275. package/lib/umd-es6/persisters/persister-automerge.js +1 -1
  276. package/lib/umd-es6/persisters/persister-automerge.js.gz +0 -0
  277. package/lib/umd-es6/persisters/persister-browser.js +1 -1
  278. package/lib/umd-es6/persisters/persister-browser.js.gz +0 -0
  279. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  280. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  281. package/lib/umd-es6/persisters/persister-electric-sql.js +1 -1
  282. package/lib/umd-es6/persisters/persister-electric-sql.js.gz +0 -0
  283. package/lib/umd-es6/persisters/persister-expo-sqlite-next.js +1 -1
  284. package/lib/umd-es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
  285. package/lib/umd-es6/persisters/persister-expo-sqlite.js +1 -1
  286. package/lib/umd-es6/persisters/persister-expo-sqlite.js.gz +0 -0
  287. package/lib/umd-es6/persisters/persister-file.js +1 -1
  288. package/lib/umd-es6/persisters/persister-file.js.gz +0 -0
  289. package/lib/umd-es6/persisters/persister-indexed-db.js +1 -1
  290. package/lib/umd-es6/persisters/persister-indexed-db.js.gz +0 -0
  291. package/lib/umd-es6/persisters/persister-libsql.js +1 -1
  292. package/lib/umd-es6/persisters/persister-libsql.js.gz +0 -0
  293. package/lib/umd-es6/persisters/persister-partykit-client.js +1 -1
  294. package/lib/umd-es6/persisters/persister-partykit-client.js.gz +0 -0
  295. package/lib/umd-es6/persisters/persister-powersync.js +1 -1
  296. package/lib/umd-es6/persisters/persister-powersync.js.gz +0 -0
  297. package/lib/umd-es6/persisters/persister-remote.js +1 -1
  298. package/lib/umd-es6/persisters/persister-remote.js.gz +0 -0
  299. package/lib/umd-es6/persisters/persister-sqlite-wasm.js +1 -1
  300. package/lib/umd-es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  301. package/lib/umd-es6/persisters/persister-sqlite3.js +1 -1
  302. package/lib/umd-es6/persisters/persister-sqlite3.js.gz +0 -0
  303. package/lib/umd-es6/persisters/persister-yjs.js +1 -1
  304. package/lib/umd-es6/persisters/persister-yjs.js.gz +0 -0
  305. package/lib/umd-es6/persisters.js +1 -1
  306. package/lib/umd-es6/persisters.js.gz +0 -0
  307. package/lib/umd-es6/store.js +1 -1
  308. package/lib/umd-es6/store.js.gz +0 -0
  309. package/lib/umd-es6/synchronizers/synchronizer-local.js +1 -1
  310. package/lib/umd-es6/synchronizers/synchronizer-local.js.gz +0 -0
  311. package/lib/umd-es6/synchronizers/synchronizer-ws-client.js +1 -1
  312. package/lib/umd-es6/synchronizers/synchronizer-ws-client.js.gz +0 -0
  313. package/lib/umd-es6/synchronizers/synchronizer-ws-server.js +1 -1
  314. package/lib/umd-es6/synchronizers/synchronizer-ws-server.js.gz +0 -0
  315. package/lib/umd-es6/synchronizers.js +1 -1
  316. package/lib/umd-es6/synchronizers.js.gz +0 -0
  317. package/lib/umd-es6/tinybase.js +1 -1
  318. package/lib/umd-es6/tinybase.js.gz +0 -0
  319. package/lib/umd-es6/ui-react-dom-debug.js +1 -1
  320. package/lib/umd-es6/ui-react-dom-debug.js.gz +0 -0
  321. package/package.json +1 -1
  322. package/readme.md +2 -2
package/lib/store.js CHANGED
@@ -1 +1 @@
1
- const e=e=>typeof e,t="",s=e(t),n=e(!0),a=e(0),l=e(e),o="type",r="default",c="Has",i="Ids",d="Table",u=d+"s",h=d+i,f="Row",g=f+"Count",T=f+i,b="Cell",V=b+i,C="Value",S=C+"s",v=C+i,w=e=>t+e,y=isFinite,m=e=>null==e,p=(e,t,s)=>m(e)?s?.():t(e),L=e=>e==s||e==n,R=t=>e(t)==l,I=(e,t,s)=>e.slice(t,s),J=e=>e.length,E=(e,t)=>e.forEach(t),F=(e,t)=>e.map(t),O=(e,...t)=>e.push(...t),z=Object,P=e=>z.getPrototypeOf(e),k=z.entries,A=z.isFrozen,M=e=>!m(e)&&p(P(e),(e=>e==z.prototype||m(P(e))),(()=>!0)),N=z.keys,j=z.freeze,x=(e,t)=>t in e,D=(e,t)=>(delete e[t],e),H=(e,t)=>F(k(e),(([e,s])=>t(s,e))),W=e=>M(e)&&0==(e=>J(N(e)))(e),$=(e,t,s,n=0)=>m(e)||!M(e)||!n&&W(e)||A(e)?(s?.(),!1):(H(e,((s,n)=>{t(s,n)||D(e,n)})),!!n||!W(e)),q=e=>e?.size??0,B=(e,t)=>e?.has(t)??!1,G=e=>m(e)||0==q(e),K=e=>e.clear(),Q=(e,t)=>e?.forEach(t),U=(e,t)=>e?.delete(t),X=e=>new Map(e),Y=e=>[...e?.keys()??[]],Z=(e,t)=>e?.get(t),_=(e,t)=>Q(e,((e,s)=>t(s,e))),ee=(e,t,s)=>m(s)?(U(e,t),e):e?.set(t,s),te=(e,t,s,n)=>(B(e,t)?n?.(Z(e,t)):ee(e,t,s()),Z(e,t)),se=(e,t,s,n=ee)=>(H(t,((t,n)=>s(e,n,t))),_(e,(s=>x(t,s)?0:n(e,s))),e),ne=(e,t,s,n)=>{const a={};return Q(e,((e,l)=>{if(!s?.(e,l)){const s=t?t(e,l):e;!n?.(s)&&(a[l]=s)}})),a},ae=(e,t,s)=>ne(e,(e=>ne(e,t,s)),G,W),le=(e,t,s)=>ne(e,(e=>ae(e,t,s)),G,W),oe=(e,t)=>{const s=X();return Q(e,((e,n)=>s.set(n,t?.(e)??e))),s},re=e=>oe(e,oe),ce=e=>oe(e,re),ie=(e,t,s,n,a=0)=>p((s?te:Z)(e,t[a],a>J(t)-2?s:X),(l=>{if(a>J(t)-2)return n?.(l)&&ee(e,t[a]),l;const o=ie(l,t,s,n,a+1);return G(l)&&ee(e,t[a]),o})),de=e=>new Set(Array.isArray(e)||m(e)?e:[e]),ue=(e,t)=>e?.add(t),he=/^\d+$/,fe=()=>{const e=[];let s=0;return[n=>(n?e.shift():null)??t+s++,t=>{he.test(t)&&J(e)<1e3&&O(e,t)}]},ge=e=>[e,e],Te=()=>[X(),X()],be=e=>[...e],Ve=([e,t])=>e===t,Ce=t=>{const s=e(t);return L(s)||s==a&&y(t)?s:void 0},Se=(e,t,s,n,a)=>m(a)?e.delCell(t,s,n,!0):e.setCell(t,s,n,a),ve=(e,t,s)=>m(s)?e.delValue(t):e.setValue(t,s),we=e=>JSON.stringify(e,((e,t)=>t instanceof Map?z.fromEntries([...t]):t)),ye=JSON.parse,me=(e,t,s)=>ee(e,t,Z(e,t)==-s?void 0:s),pe=()=>{let e,s,n=!1,l=!1,i=0,y=[];const z=X(),P=X(),k=X(),A=X(),M=X(),N=X(),he=X(),Le=X(),Re=X(),Ie=X(),Je=X(),Ee=X(),Fe=X(),Oe=X(),ze=de(),Pe=X(),ke=X(),Ae=X(),Me=X(),Ne=Te(),je=Te(),xe=Te(),De=Te(),He=Te(),We=Te(),$e=Te(),qe=Te(),Be=Te(),Ge=Te(),Ke=Te(),Qe=Te(),Ue=Te(),Xe=Te(),Ye=Te(),Ze=Te(),_e=Te(),et=Te(),tt=Te(),st=Te(),nt=Te(),at=Te(),lt=X(),ot=Te(),[rt,ct,it,dt]=(e=>{let s;const[n,a]=fe(),l=X();return[(e,a,o,r=[],c=(()=>[]))=>{s??=Fs;const i=n(1);return ee(l,i,[e,a,o,r,c]),ue(ie(a,o??[t],de),i),i},(e,n,...a)=>E(((e,s=[t])=>{const n=[],a=(e,t)=>t==J(s)?O(n,e):null===s[t]?Q(e,(e=>a(e,t+1))):E([s[t],null],(s=>a(Z(e,s),t+1)));return a(e,0),n})(e,n),(e=>Q(e,(e=>Z(l,e)[0](s,...n??[],...a))))),e=>p(Z(l,e),(([,s,n])=>(ie(s,n??[t],void 0,(t=>(U(t,e),G(t)?1:0))),ee(l,e),a(e),n))),e=>p(Z(l,e),(([e,,t=[],n,a])=>{const l=(...o)=>{const r=J(o);r==J(t)?e(s,...o,...a(o)):m(t[r])?E(n[r]?.(...o)??[],(e=>l(...o,e))):l(...o,t[r])};l()}))]})(),ut=e=>{if(!$(e,((e,t)=>[o,r].includes(t))))return!1;const t=e[o];return!(!L(t)&&t!=a||(Ce(e[r])!=t&&D(e,r),0))},ht=(t,s)=>(!e||B(Je,s)||Wt(s))&&$(t,((e,t)=>ft(s,t,e)),(()=>Wt(s))),ft=(e,t,s,n)=>$(n?s:Vt(s,e,t),((n,a)=>p(gt(e,t,a,n),(e=>(s[a]=e,!0)),(()=>!1))),(()=>Wt(e,t))),gt=(t,s,n,a)=>e?p(Z(Z(Je,t),n),(e=>Ce(a)!=e[o]?Wt(t,s,n,a,e[r]):a),(()=>Wt(t,s,n,a))):m(Ce(a))?Wt(t,s,n,a):a,Tt=(e,t)=>$(t?e:Ct(e),((t,s)=>p(bt(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>$t())),bt=(e,t)=>s?p(Z(Fe,e),(s=>Ce(t)!=s[o]?$t(e,t,s[r]):t),(()=>$t(e,t))):m(Ce(t))?$t(e,t):t,Vt=(e,t,s)=>(p(Z(Ee,t),(([n,a])=>{Q(n,((t,s)=>{x(e,s)||(e[s]=t)})),Q(a,(n=>{x(e,n)||Wt(t,s,n)}))})),e),Ct=e=>(s&&(Q(Oe,((t,s)=>{x(e,s)||(e[s]=t)})),Q(ze,(t=>{x(e,t)||$t(t)}))),e),St=e=>se(Je,e,((e,t,s)=>{const n=X(),a=de();se(te(Je,t,X),s,((e,t,s)=>{ee(e,t,s),p(s[r],(e=>ee(n,t,e)),(()=>ue(a,t)))})),ee(Ee,t,[n,a])}),((e,t)=>{ee(Je,t),ee(Ee,t)})),vt=e=>se(Fe,e,((e,t,s)=>{ee(Fe,t,s),p(s[r],(e=>ee(Oe,t,e)),(()=>ue(ze,t)))}),((e,t)=>{ee(Fe,t),ee(Oe,t),U(ze,t)})),wt=e=>W(e)?ws():bs(e),yt=e=>se(Ae,e,((e,t,s)=>mt(t,s)),((e,t)=>zt(t))),mt=(e,t)=>se(te(Ae,e,(()=>(Mt(e,1),ee(Pe,e,fe()),ee(ke,e,X()),X()))),t,((t,s,n)=>pt(e,t,s,n)),((t,s)=>Pt(e,t,s))),pt=(e,t,s,n,a)=>se(te(t,s,(()=>(Nt(e,s,1),X()))),n,((t,n,a)=>Lt(e,s,t,n,a)),((n,l)=>kt(e,t,s,n,l,a))),Lt=(e,t,s,n,a)=>{B(s,n)||jt(e,t,n,1);const l=Z(s,n);a!==l&&(xt(e,t,n,l,a),ee(s,n,a))},Rt=(e,t,s,n,a)=>p(Z(t,s),(t=>Lt(e,s,t,n,a)),(()=>pt(e,t,s,Vt({[n]:a},e,s)))),It=e=>W(e)?ps():Vs(e),Jt=e=>se(Me,e,((e,t,s)=>Et(t,s)),((e,t)=>At(t))),Et=(e,t)=>{B(Me,e)||Dt(e,1);const s=Z(Me,e);t!==s&&(Ht(e,s,t),ee(Me,e,t))},Ft=(e,t)=>{const[s]=Z(Pe,e),n=s(t);return B(Z(Ae,e),n)?Ft(e,t):n},Ot=e=>Z(Ae,e)??mt(e,{}),zt=e=>mt(e,{}),Pt=(e,t,s)=>{const[,n]=Z(Pe,e);n(s),pt(e,t,s,{},!0)},kt=(e,t,s,n,a,l)=>{const o=Z(Z(Ee,e)?.[0],a);if(!m(o)&&!l)return Lt(e,s,n,a,o);const r=t=>{xt(e,s,t,Z(n,t)),jt(e,s,t,-1),ee(n,t)};m(o)?r(a):_(n,r),G(n)&&(Nt(e,s,-1),G(ee(t,s))&&(Mt(e,-1),ee(Ae,e),ee(Pe,e),ee(ke,e)))},At=e=>{const t=Z(Oe,e);if(!m(t))return Et(e,t);Ht(e,Z(Me,e)),Dt(e,-1),ee(Me,e)},Mt=(e,t)=>me(z,e,t),Nt=(e,t,s)=>me(te(A,e,X),t,s)&&ee(k,e,te(k,e,(()=>0))+s),jt=(e,t,s,n)=>{const a=Z(ke,e),l=Z(a,s)??0;(0==l&&1==n||1==l&&-1==n)&&me(te(P,e,X),s,n),ee(a,s,l!=-n?l+n:null),me(te(te(M,e,X),t,X),s,n)},xt=(e,t,s,n,a)=>{te(te(te(N,e,X),t,X),s,(()=>[n,0]))[1]=a,y[3]?.(e,t,s,a)},Dt=(e,t)=>me(he,e,t),Ht=(e,t,s)=>{te(Le,e,(()=>[t,0]))[1]=s,y[4]?.(e,s)},Wt=(e,t,s,n,a)=>(O(te(te(te(Re,e,X),t,X),s,(()=>[])),n),a),$t=(e,t,s)=>(O(te(Ie,e,(()=>[])),t),s),qt=(e,t,s)=>p(Z(Z(Z(N,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...ge(ls(e,t,s))])),Bt=e=>p(Z(Le,e),(([e,t])=>[!0,e,t]),(()=>[!1,...ge(cs(e))])),Gt=e=>G(Re)||G(Ze[e])?0:Q(e?ce(Re):Re,((t,s)=>Q(t,((t,n)=>Q(t,((t,a)=>ct(Ze[e],[s,n,a],t))))))),Kt=e=>G(Ie)||G(_e[e])?0:Q(e?oe(Ie):Ie,((t,s)=>ct(_e[e],[s],t))),Qt=(e,t,s,n)=>{if(!G(e))return ct(t,n,(()=>ne(e))),_(e,((e,t)=>ct(s,[...n??[],e],1==t))),1},Ut=e=>{const t=is();t!=n&&ct(Ne[e],void 0,t);const s=G(Ge[e]),a=G(Ue[e])&&G(Xe[e])&&G(Be[e])&&G(Ke[e])&&G(We[e])&&G($e[e])&&G(qe[e])&&s&&G(xe[e])&&G(De[e]),l=G(Ye[e])&&G(Qe[e])&&G(He[e])&&G(je[e]);if(!a||!l){const t=e?[oe(z),re(P),oe(k),re(A),ce(M),ce(N)]:[z,P,k,A,M,N];if(!a){Qt(t[0],xe[e],De[e]),Q(t[1],((t,s)=>Qt(t,We[e],$e[e],[s]))),Q(t[2],((t,s)=>{0!=t&&ct(qe[e],[s],ts(s))}));const n=de();Q(t[3],((t,a)=>{Qt(t,Be[e],Ke[e],[a])&&!s&&(ct(Ge[e],[a,null]),ue(n,a))})),s||Q(t[5],((t,s)=>{if(!B(n,s)){const n=de();Q(t,(e=>Q(e,(([t,s],a)=>s!==t?ue(n,a):U(e,a))))),Q(n,(t=>ct(Ge[e],[s,t])))}})),Q(t[4],((t,s)=>Q(t,((t,n)=>Qt(t,Ue[e],Xe[e],[s,n])))))}if(!l){let s;Q(t[5],((t,n)=>{let a;Q(t,((t,l)=>{let o;Q(t,(([t,r],c)=>{r!==t&&(ct(Ye[e],[n,l,c],r,t,qt),s=a=o=1)})),o&&ct(Qe[e],[n,l],qt)})),a&&ct(He[e],[n],qt)})),s&&ct(je[e],void 0,qt)}}},Xt=e=>{const t=gs();t!=l&&ct(et[e],void 0,t);const s=G(st[e])&&G(nt[e]),n=G(at[e])&&G(tt[e]);if(!s||!n){const t=e?[oe(he),oe(Le)]:[he,Le];if(s||Qt(t[0],st[e],nt[e]),!n){let s;Q(t[1],(([t,n],a)=>{n!==t&&(ct(at[e],[a],n,t,Bt),s=1)})),s&&ct(tt[e],void 0,Bt)}}},Yt=(e,...t)=>(Is((()=>e(...F(t,w)))),Fs),Zt=()=>le(Ae),_t=()=>Y(Ae),es=e=>Y(Z(ke,w(e))),ts=e=>q(Z(Ae,w(e))),ss=e=>Y(Z(Ae,w(e))),ns=(e,t,s,n=0,a)=>{return F(I((o=Z(Ae,w(e)),r=(e,s)=>[m(t)?s:Z(e,w(t)),s],l=([e],[t])=>((e??0)<(t??0)?-1:1)*(s?-1:1),F([...o?.entries()??[]],(([e,t])=>r(t,e))).sort(l)),n,m(a)?a:n+a),(([,e])=>e));var l,o,r},as=(e,t)=>Y(Z(Z(Ae,w(e)),w(t))),ls=(e,t,s)=>Z(Z(Z(Ae,w(e)),w(t)),w(s)),os=()=>ne(Me),rs=()=>Y(Me),cs=e=>Z(Me,w(e)),is=()=>!G(Ae),ds=e=>B(Ae,w(e)),us=(e,t)=>B(Z(ke,w(e)),w(t)),hs=(e,t)=>B(Z(Ae,w(e)),w(t)),fs=(e,t,s)=>B(Z(Z(Ae,w(e)),w(t)),w(s)),gs=()=>!G(Me),Ts=e=>B(Me,w(e)),bs=e=>Yt((()=>(e=>$(e,ht,Wt))(e)?yt(e):0)),Vs=e=>Yt((()=>Tt(e)?Jt(e):0)),Cs=e=>{try{wt(ye(e))}catch{}return Fs},Ss=t=>Yt((()=>{if((e=$(t,(e=>$(e,ut))))&&(St(t),!G(Ae))){const e=Zt();ws(),bs(e)}})),vs=e=>Yt((()=>{if(s=(e=>$(e,ut))(e)){const t=os();Rs(),ps(),s=!0,vt(e),Vs(t)}})),ws=()=>Yt((()=>yt({}))),ys=e=>Yt((e=>B(Ae,e)?zt(e):0),e),ms=(e,t)=>Yt(((e,t)=>p(Z(Ae,e),(s=>B(s,t)?Pt(e,s,t):0))),e,t),ps=()=>Yt((()=>Jt({}))),Ls=()=>Yt((()=>{St({}),e=!1})),Rs=()=>Yt((()=>{vt({}),s=!1})),Is=(e,t)=>{if(-1!=i){Js();const s=e();return Es(t),s}},Js=()=>(-1!=i&&i++,1==i&&(y[0]?.(),ct(lt,void 0)),Fs),Es=e=>(i>0&&(i--,0==i&&(i=1,Gt(1),G(N)||Ut(1),Kt(1),G(Le)||Xt(1),e?.(Fs)&&(Q(N,((e,t)=>Q(e,((e,s)=>Q(e,(([e],n)=>Se(Fs,t,s,n,e))))))),K(N),Q(Le,(([e],t)=>ve(Fs,t,e))),K(Le)),ct(ot[0],void 0),i=-1,Gt(0),G(N)||Ut(0),Kt(0),G(Le)||Xt(0),y[1]?.(),ct(ot[1],void 0),y[2]?.(),i=0,n=is(),l=gs(),E([z,P,k,A,M,N,Re,he,Le,Ie],K))),Fs),Fs={getContent:()=>[Zt(),os()],getTables:Zt,getTableIds:_t,getTable:e=>ae(Z(Ae,w(e))),getTableCellIds:es,getRowCount:ts,getRowIds:ss,getSortedRowIds:ns,getRow:(e,t)=>ne(Z(Z(Ae,w(e)),w(t))),getCellIds:as,getCell:ls,getValues:os,getValueIds:rs,getValue:cs,hasTables:is,hasTable:ds,hasTableCell:us,hasRow:hs,hasCell:fs,hasValues:gs,hasValue:Ts,getTablesJson:()=>we(Ae),getValuesJson:()=>we(Me),getJson:()=>we([Ae,Me]),getTablesSchemaJson:()=>we(Je),getValuesSchemaJson:()=>we(Fe),getSchemaJson:()=>we([Je,Fe]),hasTablesSchema:()=>e,hasValuesSchema:()=>s,setContent:([e,t])=>Yt((()=>{(W(e)?ws:bs)(e),(W(t)?ps:Vs)(t)})),setTables:bs,setTable:(e,t)=>Yt((e=>ht(t,e)?mt(e,t):0),e),setRow:(e,t,s)=>Yt(((e,t)=>ft(e,t,s)?pt(e,Ot(e),t,s):0),e,t),addRow:(e,t,s=!0)=>Is((()=>{let n;return ft(e,n,t)&&(e=w(e),pt(e,Ot(e),n=Ft(e,s?1:0),t)),n})),setPartialRow:(e,t,s)=>Yt(((e,t)=>{if(ft(e,t,s,1)){const n=Ot(e);H(s,((s,a)=>Rt(e,n,t,a,s)))}}),e,t),setCell:(e,t,s,n)=>Yt(((e,t,s)=>p(gt(e,t,s,R(n)?n(ls(e,t,s)):n),(n=>Rt(e,Ot(e),t,s,n)))),e,t,s),setValues:Vs,setPartialValues:e=>Yt((()=>Tt(e,1)?H(e,((e,t)=>Et(t,e))):0)),setValue:(e,t)=>Yt((e=>p(bt(e,R(t)?t(cs(e)):t),(t=>Et(e,t)))),e),applyChanges:e=>Yt((()=>{H(e[0],((e,t)=>m(e)?ys(t):H(e,((e,s)=>m(e)?ms(t,s):H(e,((e,n)=>Se(Fs,t,s,n,e))))))),H(e[1],((e,t)=>ve(Fs,t,e)))})),setTablesJson:Cs,setValuesJson:e=>{try{It(ye(e))}catch{}return Fs},setJson:e=>Yt((()=>{try{const[t,s]=ye(e);wt(t),It(s)}catch{Cs(e)}})),setTablesSchema:Ss,setValuesSchema:vs,setSchema:(e,t)=>Yt((()=>{Ss(e),vs(t)})),delTables:ws,delTable:ys,delRow:ms,delCell:(e,t,s,n)=>Yt(((e,t,s)=>p(Z(Ae,e),(a=>p(Z(a,t),(l=>B(l,s)?kt(e,a,t,l,s,n):0))))),e,t,s),delValues:ps,delValue:e=>Yt((e=>B(Me,e)?At(e):0),e),delTablesSchema:Ls,delValuesSchema:Rs,delSchema:()=>Yt((()=>{Ls(),Rs()})),transaction:Is,startTransaction:Js,getTransactionChanges:()=>[ne(N,((e,t)=>-1===Z(z,t)?void 0:ne(e,((e,s)=>-1===Z(Z(A,t),s)?void 0:ne(e,(([,e])=>e),(e=>Ve(e)))),G,W)),G,W),ne(Le,(([,e])=>e),(e=>Ve(e))),1],getTransactionLog:()=>[!G(N),!G(Le),le(N,be,Ve),le(Re),ne(Le,be,Ve),ne(Ie),ne(z),ae(A),le(M),ne(he)],finishTransaction:Es,forEachTable:e=>Q(Ae,((t,s)=>e(s,(e=>Q(t,((t,s)=>e(s,(e=>_(t,e))))))))),forEachTableCell:(e,t)=>_(Z(ke,w(e)),t),forEachRow:(e,t)=>Q(Z(Ae,w(e)),((e,s)=>t(s,(t=>_(e,t))))),forEachCell:(e,t,s)=>_(Z(Z(Ae,w(e)),w(t)),s),forEachValue:e=>_(Me,e),addSortedRowIdsListener:(e,t,s,n,a,l,o)=>{let r=ns(e,t,s,n,a);return rt((()=>{const o=ns(e,t,s,n,a);var c,i,d;i=r,J(c=o)===J(i)&&(d=(e,t)=>i[t]===e,c.every(d))||(r=o,l(Fs,e,t,s,n,a,r))}),Ge[o?1:0],[e,t],[_t])},addStartTransactionListener:e=>rt(e,lt),addWillFinishTransactionListener:e=>rt(e,ot[0]),addDidFinishTransactionListener:e=>rt(e,ot[1]),callListener:e=>(dt(e),Fs),delListener:e=>(it(e),Fs),getListenerStats:()=>({}),createStore:pe,addListener:rt,callListeners:ct,setInternalListeners:(e,t,s,n,a)=>y=[e,t,s,n,a]};return H({[c+u]:[0,Ne,[],()=>[is()]],[u]:[0,je],[h]:[0,xe],[c+d]:[1,De,[_t],e=>[ds(...e)]],[d]:[1,He,[_t]],[d+V]:[1,We,[_t]],[c+d+b]:[2,$e,[_t,es],e=>[us(...e)]],[g]:[1,qe,[_t]],[T]:[1,Be,[_t]],[c+f]:[2,Ke,[_t,ss],e=>[hs(...e)]],[f]:[2,Qe,[_t,ss]],[V]:[2,Ue,[_t,ss]],[c+b]:[3,Xe,[_t,ss,as],e=>[fs(...e)]],[b]:[3,Ye,[_t,ss,as],e=>ge(ls(...e))],InvalidCell:[3,Ze],[c+S]:[0,et,[],()=>[gs()]],[S]:[0,tt],[v]:[0,st],[c+C]:[1,nt,[rs],e=>[Ts(...e)]],[C]:[1,at,[rs],e=>ge(cs(e[0]))],InvalidValue:[1,_e]},(([e,t,s,n],a)=>{Fs["add"+a+"Listener"]=(...a)=>rt(a[e],t[a[e+1]?1:0],e>0?I(a,0,e):void 0,s,n)})),j(Fs)};export{pe as createStore};
1
+ const e=e=>typeof e,t="",s=e(t),n=e(!0),a=e(0),l=e(e),o="type",r="default",c="Has",i="Ids",d="Table",u=d+"s",h=d+i,f="Row",g=f+"Count",T=f+i,b="Cell",V=b+i,C="Value",S=C+"s",v=C+i,w=e=>t+e,y=isFinite,m=e=>null==e,p=(e,t,s)=>m(e)?s?.():t(e),L=e=>e==s||e==n,R=t=>e(t)==l,I=(e,t,s)=>e.slice(t,s),J=e=>e.length,E=(e,t)=>e.forEach(t),F=(e,t)=>e.map(t),O=(e,...t)=>e.push(...t),z=Object,P=e=>z.getPrototypeOf(e),k=z.entries,A=z.isFrozen,M=e=>!m(e)&&p(P(e),(e=>e==z.prototype||m(P(e))),(()=>!0)),N=z.keys,j=z.freeze,x=(e,t)=>t in e,D=(e,t)=>(delete e[t],e),H=(e,t)=>F(k(e),(([e,s])=>t(s,e))),W=e=>M(e)&&0==(e=>J(N(e)))(e),$=(e,t,s,n=0)=>m(e)||!M(e)||!n&&W(e)||A(e)?(s?.(),!1):(H(e,((s,n)=>{t(s,n)||D(e,n)})),!!n||!W(e)),q=e=>e?.size??0,B=(e,t)=>e?.has(t)??!1,G=e=>m(e)||0==q(e),K=e=>e.clear(),Q=(e,t)=>e?.forEach(t),U=(e,t)=>e?.delete(t),X=e=>new Map(e),Y=e=>[...e?.keys()??[]],Z=(e,t)=>e?.get(t),_=(e,t)=>Q(e,((e,s)=>t(s,e))),ee=(e,t,s)=>m(s)?(U(e,t),e):e?.set(t,s),te=(e,t,s,n)=>(B(e,t)?n?.(Z(e,t)):ee(e,t,s()),Z(e,t)),se=(e,t,s,n=ee)=>(H(t,((t,n)=>s(e,n,t))),_(e,(s=>x(t,s)?0:n(e,s))),e),ne=(e,t,s,n)=>{const a={};return Q(e,((e,l)=>{if(!s?.(e,l)){const s=t?t(e,l):e;!n?.(s)&&(a[l]=s)}})),a},ae=(e,t,s)=>ne(e,(e=>ne(e,t,s)),G,W),le=(e,t,s)=>ne(e,(e=>ae(e,t,s)),G,W),oe=(e,t)=>{const s=X();return Q(e,((e,n)=>s.set(n,t?.(e)??e))),s},re=e=>oe(e,oe),ce=e=>oe(e,re),ie=(e,t,s,n,a=0)=>p((s?te:Z)(e,t[a],a>J(t)-2?s:X),(l=>{if(a>J(t)-2)return n?.(l)&&ee(e,t[a]),l;const o=ie(l,t,s,n,a+1);return G(l)&&ee(e,t[a]),o})),de=e=>new Set(Array.isArray(e)||m(e)?e:[e]),ue=(e,t)=>e?.add(t),he=/^\d+$/,fe=()=>{const e=[];let s=0;return[n=>(n?e.shift():null)??t+s++,t=>{he.test(t)&&J(e)<1e3&&O(e,t)}]},ge=e=>[e,e],Te=()=>[X(),X()],be=e=>[...e],Ve=([e,t])=>e===t,Ce=t=>{const s=e(t);return L(s)||s==a&&y(t)?s:void 0},Se=(e,t,s,n,a)=>m(a)?e.delCell(t,s,n,!0):e.setCell(t,s,n,a),ve=(e,t,s)=>m(s)?e.delValue(t):e.setValue(t,s),we=e=>JSON.stringify(e,((e,t)=>t instanceof Map?z.fromEntries([...t]):t)),ye=JSON.parse,me=(e,t,s)=>ee(e,t,Z(e,t)==-s?void 0:s),pe=()=>{let e,s,n=!1,l=!1,i=0,y=[];const z=X(),P=X(),k=X(),A=X(),M=X(),N=X(),he=X(),Le=X(),Re=X(),Ie=X(),Je=X(),Ee=X(),Fe=X(),Oe=X(),ze=de(),Pe=X(),ke=X(),Ae=X(),Me=X(),Ne=Te(),je=Te(),xe=Te(),De=Te(),He=Te(),We=Te(),$e=Te(),qe=Te(),Be=Te(),Ge=Te(),Ke=Te(),Qe=Te(),Ue=Te(),Xe=Te(),Ye=Te(),Ze=Te(),_e=Te(),et=Te(),tt=Te(),st=Te(),nt=Te(),at=Te(),lt=X(),ot=Te(),[rt,ct,it,dt]=(e=>{let s;const[n,a]=fe(),l=X();return[(e,a,o,r=[],c=(()=>[]))=>{s??=Fs;const i=n(1);return ee(l,i,[e,a,o,r,c]),ue(ie(a,o??[t],de),i),i},(e,n,...a)=>E(((e,s=[t])=>{const n=[],a=(e,t)=>t==J(s)?O(n,e):null===s[t]?Q(e,(e=>a(e,t+1))):E([s[t],null],(s=>a(Z(e,s),t+1)));return a(e,0),n})(e,n),(e=>Q(e,(e=>Z(l,e)[0](s,...n??[],...a))))),e=>p(Z(l,e),(([,s,n])=>(ie(s,n??[t],void 0,(t=>(U(t,e),G(t)?1:0))),ee(l,e),a(e),n))),e=>p(Z(l,e),(([e,,t=[],n,a])=>{const l=(...o)=>{const r=J(o);r==J(t)?e(s,...o,...a(o)):m(t[r])?E(n[r]?.(...o)??[],(e=>l(...o,e))):l(...o,t[r])};l()}))]})(),ut=e=>{if(!$(e,((e,t)=>[o,r].includes(t))))return!1;const t=e[o];return!(!L(t)&&t!=a||(Ce(e[r])!=t&&D(e,r),0))},ht=(t,s)=>(!e||B(Je,s)||Wt(s))&&$(t,((e,t)=>ft(s,t,e)),(()=>Wt(s))),ft=(e,t,s,n)=>$(n?s:Vt(s,e,t),((n,a)=>p(gt(e,t,a,n),(e=>(s[a]=e,!0)),(()=>!1))),(()=>Wt(e,t))),gt=(t,s,n,a)=>e?p(Z(Z(Je,t),n),(e=>Ce(a)!=e[o]?Wt(t,s,n,a,e[r]):a),(()=>Wt(t,s,n,a))):m(Ce(a))?Wt(t,s,n,a):a,Tt=(e,t)=>$(t?e:Ct(e),((t,s)=>p(bt(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>$t())),bt=(e,t)=>s?p(Z(Fe,e),(s=>Ce(t)!=s[o]?$t(e,t,s[r]):t),(()=>$t(e,t))):m(Ce(t))?$t(e,t):t,Vt=(e,t,s)=>(p(Z(Ee,t),(([n,a])=>{Q(n,((t,s)=>{x(e,s)||(e[s]=t)})),Q(a,(n=>{x(e,n)||Wt(t,s,n)}))})),e),Ct=e=>(s&&(Q(Oe,((t,s)=>{x(e,s)||(e[s]=t)})),Q(ze,(t=>{x(e,t)||$t(t)}))),e),St=e=>se(Je,e,((e,t,s)=>{const n=X(),a=de();se(te(Je,t,X),s,((e,t,s)=>{ee(e,t,s),p(s[r],(e=>ee(n,t,e)),(()=>ue(a,t)))})),ee(Ee,t,[n,a])}),((e,t)=>{ee(Je,t),ee(Ee,t)})),vt=e=>se(Fe,e,((e,t,s)=>{ee(Fe,t,s),p(s[r],(e=>ee(Oe,t,e)),(()=>ue(ze,t)))}),((e,t)=>{ee(Fe,t),ee(Oe,t),U(ze,t)})),wt=e=>W(e)?ws():bs(e),yt=e=>se(Ae,e,((e,t,s)=>mt(t,s)),((e,t)=>zt(t))),mt=(e,t)=>se(te(Ae,e,(()=>(Mt(e,1),ee(Pe,e,fe()),ee(ke,e,X()),X()))),t,((t,s,n)=>pt(e,t,s,n)),((t,s)=>Pt(e,t,s))),pt=(e,t,s,n,a)=>se(te(t,s,(()=>(Nt(e,s,1),X()))),n,((t,n,a)=>Lt(e,s,t,n,a)),((n,l)=>kt(e,t,s,n,l,a))),Lt=(e,t,s,n,a)=>{B(s,n)||jt(e,t,n,1);const l=Z(s,n);a!==l&&(xt(e,t,n,l,a),ee(s,n,a))},Rt=(e,t,s,n,a)=>p(Z(t,s),(t=>Lt(e,s,t,n,a)),(()=>pt(e,t,s,Vt({[n]:a},e,s)))),It=e=>W(e)?ps():Vs(e),Jt=e=>se(Me,e,((e,t,s)=>Et(t,s)),((e,t)=>At(t))),Et=(e,t)=>{B(Me,e)||Dt(e,1);const s=Z(Me,e);t!==s&&(Ht(e,s,t),ee(Me,e,t))},Ft=(e,t)=>{const[s]=Z(Pe,e),n=s(t);return B(Z(Ae,e),n)?Ft(e,t):n},Ot=e=>Z(Ae,e)??mt(e,{}),zt=e=>mt(e,{}),Pt=(e,t,s)=>{const[,n]=Z(Pe,e);n(s),pt(e,t,s,{},!0)},kt=(e,t,s,n,a,l)=>{const o=Z(Z(Ee,e)?.[0],a);if(!m(o)&&!l)return Lt(e,s,n,a,o);const r=t=>{xt(e,s,t,Z(n,t)),jt(e,s,t,-1),ee(n,t)};m(o)?r(a):_(n,r),G(n)&&(Nt(e,s,-1),G(ee(t,s))&&(Mt(e,-1),ee(Ae,e),ee(Pe,e),ee(ke,e)))},At=e=>{const t=Z(Oe,e);if(!m(t))return Et(e,t);Ht(e,Z(Me,e)),Dt(e,-1),ee(Me,e)},Mt=(e,t)=>me(z,e,t),Nt=(e,t,s)=>me(te(A,e,X),t,s)&&ee(k,e,te(k,e,(()=>0))+s),jt=(e,t,s,n)=>{const a=Z(ke,e),l=Z(a,s)??0;(0==l&&1==n||1==l&&-1==n)&&me(te(P,e,X),s,n),ee(a,s,l!=-n?l+n:null),me(te(te(M,e,X),t,X),s,n)},xt=(e,t,s,n,a)=>{te(te(te(N,e,X),t,X),s,(()=>[n,0]))[1]=a,y[3]?.(e,t,s,a)},Dt=(e,t)=>me(he,e,t),Ht=(e,t,s)=>{te(Le,e,(()=>[t,0]))[1]=s,y[4]?.(e,s)},Wt=(e,t,s,n,a)=>(O(te(te(te(Re,e,X),t,X),s,(()=>[])),n),a),$t=(e,t,s)=>(O(te(Ie,e,(()=>[])),t),s),qt=(e,t,s)=>p(Z(Z(Z(N,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...ge(ls(e,t,s))])),Bt=e=>p(Z(Le,e),(([e,t])=>[!0,e,t]),(()=>[!1,...ge(cs(e))])),Gt=e=>G(Re)||G(Ze[e])?0:Q(e?ce(Re):Re,((t,s)=>Q(t,((t,n)=>Q(t,((t,a)=>ct(Ze[e],[s,n,a],t))))))),Kt=e=>G(Ie)||G(_e[e])?0:Q(e?oe(Ie):Ie,((t,s)=>ct(_e[e],[s],t))),Qt=(e,t,s,n)=>{if(!G(e))return ct(t,n,(()=>ne(e))),_(e,((e,t)=>ct(s,[...n??[],e],1==t))),1},Ut=e=>{const t=is();t!=n&&ct(Ne[e],void 0,t);const s=G(Ge[e]),a=G(Ue[e])&&G(Xe[e])&&G(Be[e])&&G(Ke[e])&&G(We[e])&&G($e[e])&&G(qe[e])&&s&&G(xe[e])&&G(De[e]),l=G(Ye[e])&&G(Qe[e])&&G(He[e])&&G(je[e]);if(!a||!l){const t=e?[oe(z),re(P),oe(k),re(A),ce(M),ce(N)]:[z,P,k,A,M,N];if(!a){Qt(t[0],xe[e],De[e]),Q(t[1],((t,s)=>Qt(t,We[e],$e[e],[s]))),Q(t[2],((t,s)=>{0!=t&&ct(qe[e],[s],ts(s))}));const n=de();Q(t[3],((t,a)=>{Qt(t,Be[e],Ke[e],[a])&&!s&&(ct(Ge[e],[a,null]),ue(n,a))})),s||Q(t[5],((t,s)=>{if(!B(n,s)){const n=de();Q(t,(e=>Q(e,(([t,s],a)=>s!==t?ue(n,a):U(e,a))))),Q(n,(t=>ct(Ge[e],[s,t])))}})),Q(t[4],((t,s)=>Q(t,((t,n)=>Qt(t,Ue[e],Xe[e],[s,n])))))}if(!l){let s;Q(t[5],((t,n)=>{let a;Q(t,((t,l)=>{let o;Q(t,(([t,r],c)=>{r!==t&&(ct(Ye[e],[n,l,c],r,t,qt),s=a=o=1)})),o&&ct(Qe[e],[n,l],qt)})),a&&ct(He[e],[n],qt)})),s&&ct(je[e],void 0,qt)}}},Xt=e=>{const t=gs();t!=l&&ct(et[e],void 0,t);const s=G(st[e])&&G(nt[e]),n=G(at[e])&&G(tt[e]);if(!s||!n){const t=e?[oe(he),oe(Le)]:[he,Le];if(s||Qt(t[0],st[e],nt[e]),!n){let s;Q(t[1],(([t,n],a)=>{n!==t&&(ct(at[e],[a],n,t,Bt),s=1)})),s&&ct(tt[e],void 0,Bt)}}},Yt=(e,...t)=>(Is((()=>e(...F(t,w)))),Fs),Zt=()=>le(Ae),_t=()=>Y(Ae),es=e=>Y(Z(ke,w(e))),ts=e=>q(Z(Ae,w(e))),ss=e=>Y(Z(Ae,w(e))),ns=(e,t,s,n=0,a)=>{return F(I((o=Z(Ae,w(e)),r=(e,s)=>[m(t)?s:Z(e,w(t)),s],l=([e],[t])=>((e??0)<(t??0)?-1:1)*(s?-1:1),F([...o?.entries()??[]],(([e,t])=>r(t,e))).sort(l)),n,m(a)?a:n+a),(([,e])=>e));var l,o,r},as=(e,t)=>Y(Z(Z(Ae,w(e)),w(t))),ls=(e,t,s)=>Z(Z(Z(Ae,w(e)),w(t)),w(s)),os=()=>ne(Me),rs=()=>Y(Me),cs=e=>Z(Me,w(e)),is=()=>!G(Ae),ds=e=>B(Ae,w(e)),us=(e,t)=>B(Z(ke,w(e)),w(t)),hs=(e,t)=>B(Z(Ae,w(e)),w(t)),fs=(e,t,s)=>B(Z(Z(Ae,w(e)),w(t)),w(s)),gs=()=>!G(Me),Ts=e=>B(Me,w(e)),bs=e=>Yt((()=>(e=>$(e,ht,Wt))(e)?yt(e):0)),Vs=e=>Yt((()=>Tt(e)?Jt(e):0)),Cs=e=>{try{wt(ye(e))}catch{}return Fs},Ss=t=>Yt((()=>{if((e=$(t,(e=>$(e,ut))))&&(St(t),!G(Ae))){const e=Zt();ws(),bs(e)}})),vs=e=>Yt((()=>{if(s=(e=>$(e,ut))(e)){const t=os();Rs(),ps(),s=!0,vt(e),Vs(t)}})),ws=()=>Yt((()=>yt({}))),ys=e=>Yt((e=>B(Ae,e)?zt(e):0),e),ms=(e,t)=>Yt(((e,t)=>p(Z(Ae,e),(s=>B(s,t)?Pt(e,s,t):0))),e,t),ps=()=>Yt((()=>Jt({}))),Ls=()=>Yt((()=>{St({}),e=!1})),Rs=()=>Yt((()=>{vt({}),s=!1})),Is=(e,t)=>{if(-1!=i){Js();const s=e();return Es(t),s}},Js=()=>(-1!=i&&i++,1==i&&(y[0]?.(),ct(lt)),Fs),Es=e=>(i>0&&(i--,0==i&&(i=1,Gt(1),G(N)||Ut(1),Kt(1),G(Le)||Xt(1),e?.(Fs)&&(Q(N,((e,t)=>Q(e,((e,s)=>Q(e,(([e],n)=>Se(Fs,t,s,n,e))))))),K(N),Q(Le,(([e],t)=>ve(Fs,t,e))),K(Le)),ct(ot[0],void 0),i=-1,Gt(0),G(N)||Ut(0),Kt(0),G(Le)||Xt(0),y[1]?.(),ct(ot[1],void 0),y[2]?.(),i=0,n=is(),l=gs(),E([z,P,k,A,M,N,Re,he,Le,Ie],K))),Fs),Fs={getContent:()=>[Zt(),os()],getTables:Zt,getTableIds:_t,getTable:e=>ae(Z(Ae,w(e))),getTableCellIds:es,getRowCount:ts,getRowIds:ss,getSortedRowIds:ns,getRow:(e,t)=>ne(Z(Z(Ae,w(e)),w(t))),getCellIds:as,getCell:ls,getValues:os,getValueIds:rs,getValue:cs,hasTables:is,hasTable:ds,hasTableCell:us,hasRow:hs,hasCell:fs,hasValues:gs,hasValue:Ts,getTablesJson:()=>we(Ae),getValuesJson:()=>we(Me),getJson:()=>we([Ae,Me]),getTablesSchemaJson:()=>we(Je),getValuesSchemaJson:()=>we(Fe),getSchemaJson:()=>we([Je,Fe]),hasTablesSchema:()=>e,hasValuesSchema:()=>s,setContent:([e,t])=>Yt((()=>{(W(e)?ws:bs)(e),(W(t)?ps:Vs)(t)})),setTables:bs,setTable:(e,t)=>Yt((e=>ht(t,e)?mt(e,t):0),e),setRow:(e,t,s)=>Yt(((e,t)=>ft(e,t,s)?pt(e,Ot(e),t,s):0),e,t),addRow:(e,t,s=!0)=>Is((()=>{let n;return ft(e,n,t)&&(e=w(e),pt(e,Ot(e),n=Ft(e,s?1:0),t)),n})),setPartialRow:(e,t,s)=>Yt(((e,t)=>{if(ft(e,t,s,1)){const n=Ot(e);H(s,((s,a)=>Rt(e,n,t,a,s)))}}),e,t),setCell:(e,t,s,n)=>Yt(((e,t,s)=>p(gt(e,t,s,R(n)?n(ls(e,t,s)):n),(n=>Rt(e,Ot(e),t,s,n)))),e,t,s),setValues:Vs,setPartialValues:e=>Yt((()=>Tt(e,1)?H(e,((e,t)=>Et(t,e))):0)),setValue:(e,t)=>Yt((e=>p(bt(e,R(t)?t(cs(e)):t),(t=>Et(e,t)))),e),applyChanges:e=>Yt((()=>{H(e[0],((e,t)=>m(e)?ys(t):H(e,((e,s)=>m(e)?ms(t,s):H(e,((e,n)=>Se(Fs,t,s,n,e))))))),H(e[1],((e,t)=>ve(Fs,t,e)))})),setTablesJson:Cs,setValuesJson:e=>{try{It(ye(e))}catch{}return Fs},setJson:e=>Yt((()=>{try{const[t,s]=ye(e);wt(t),It(s)}catch{Cs(e)}})),setTablesSchema:Ss,setValuesSchema:vs,setSchema:(e,t)=>Yt((()=>{Ss(e),vs(t)})),delTables:ws,delTable:ys,delRow:ms,delCell:(e,t,s,n)=>Yt(((e,t,s)=>p(Z(Ae,e),(a=>p(Z(a,t),(l=>B(l,s)?kt(e,a,t,l,s,n):0))))),e,t,s),delValues:ps,delValue:e=>Yt((e=>B(Me,e)?At(e):0),e),delTablesSchema:Ls,delValuesSchema:Rs,delSchema:()=>Yt((()=>{Ls(),Rs()})),transaction:Is,startTransaction:Js,getTransactionChanges:()=>[ne(N,((e,t)=>-1===Z(z,t)?void 0:ne(e,((e,s)=>-1===Z(Z(A,t),s)?void 0:ne(e,(([,e])=>e),(e=>Ve(e)))),G,W)),G,W),ne(Le,(([,e])=>e),(e=>Ve(e))),1],getTransactionLog:()=>[!G(N),!G(Le),le(N,be,Ve),le(Re),ne(Le,be,Ve),ne(Ie),ne(z),ae(A),le(M),ne(he)],finishTransaction:Es,forEachTable:e=>Q(Ae,((t,s)=>e(s,(e=>Q(t,((t,s)=>e(s,(e=>_(t,e))))))))),forEachTableCell:(e,t)=>_(Z(ke,w(e)),t),forEachRow:(e,t)=>Q(Z(Ae,w(e)),((e,s)=>t(s,(t=>_(e,t))))),forEachCell:(e,t,s)=>_(Z(Z(Ae,w(e)),w(t)),s),forEachValue:e=>_(Me,e),addSortedRowIdsListener:(e,t,s,n,a,l,o)=>{let r=ns(e,t,s,n,a);return rt((()=>{const o=ns(e,t,s,n,a);var c,i,d;i=r,J(c=o)===J(i)&&(d=(e,t)=>i[t]===e,c.every(d))||(r=o,l(Fs,e,t,s,n,a,r))}),Ge[o?1:0],[e,t],[_t])},addStartTransactionListener:e=>rt(e,lt),addWillFinishTransactionListener:e=>rt(e,ot[0]),addDidFinishTransactionListener:e=>rt(e,ot[1]),callListener:e=>(dt(e),Fs),delListener:e=>(it(e),Fs),getListenerStats:()=>({}),createStore:pe,addListener:rt,callListeners:ct,setInternalListeners:(e,t,s,n,a)=>y=[e,t,s,n,a]};return H({[c+u]:[0,Ne,[],()=>[is()]],[u]:[0,je],[h]:[0,xe],[c+d]:[1,De,[_t],e=>[ds(...e)]],[d]:[1,He,[_t]],[d+V]:[1,We,[_t]],[c+d+b]:[2,$e,[_t,es],e=>[us(...e)]],[g]:[1,qe,[_t]],[T]:[1,Be,[_t]],[c+f]:[2,Ke,[_t,ss],e=>[hs(...e)]],[f]:[2,Qe,[_t,ss]],[V]:[2,Ue,[_t,ss]],[c+b]:[3,Xe,[_t,ss,as],e=>[fs(...e)]],[b]:[3,Ye,[_t,ss,as],e=>ge(ls(...e))],InvalidCell:[3,Ze],[c+S]:[0,et,[],()=>[gs()]],[S]:[0,tt],[v]:[0,st],[c+C]:[1,nt,[rs],e=>[Ts(...e)]],[C]:[1,at,[rs],e=>ge(cs(e[0]))],InvalidValue:[1,_e]},(([e,t,s,n],a)=>{Fs["add"+a+"Listener"]=(...a)=>rt(a[e],t[a[e+1]?1:0],e>0?I(a,0,e):void 0,s,n)})),j(Fs)};export{pe as createStore};
package/lib/store.js.gz CHANGED
Binary file
@@ -1 +1 @@
1
- const t=Promise,e=Math.max,a=t=>null==t,n=(t,e,n)=>a(t)?n?.():e(t),o=(t,e)=>t.forEach(e),s=Object,r=t=>s.getPrototypeOf(t),i=s.entries,c=s.keys,l=s.freeze,g=(t,e)=>o(i(t),(([t,a])=>e(a,t))),u=t=>(t=>!a(t)&&n(r(t),(t=>t==s.prototype||a(r(t))),(()=>!0)))(t)&&0==(t=>c(t).length)(t),y=(t,e,a)=>(((t,e)=>e in t)(t,e)||(t[e]=a()),t[e]),d=(t,e)=>t?.delete(e),h=t=>new Map(t),w=(t,e)=>t?.get(e),v=(t,e,n)=>a(n)?(d(t,e),t):t?.set(e,n),f=(t,e,a,n)=>{var o,s;return o=t,s=e,o?.has(s)?n?.(w(t,e)):v(t,e,a()),w(t,e)},p=new globalThis.TextEncoder,b=(t,e)=>e?[t,e]:[t],A=(t,e)=>((t??"")>(e??"")?t:e)??"",C=(t="")=>b(((t=[])=>s.fromEntries(t))(),t),M=h(),S=h(),L=2**36,T=2**30,m=2**24,D=2**18,H=4096,E=64,x=t=>String.fromCharCode(48+(63&t)),z=(t,e)=>((t,e)=>t.charCodeAt(e))(t,e)-48,O=h(),P=(s,r)=>{const i=""+Math.random();return((s,r,i,c,O,P,R={})=>{let V;const[$]=(t=>{let n=0,s=-1;const r=(t=>{let e=2166136261;return o(p.encode(t),(t=>{e^=t,e+=(e<<1)+(e<<4)+(e<<7)+(e<<8)+(e<<24)})),e>>>0})(t),i=t=>{const o=n,[r,i]=a(t)||""==t?[0,0]:[z(c=t,0)*L+z(c,1)*T+z(c,2)*m+z(c,3)*D+z(c,4)*H+z(c,5)*E+z(c,6),z(c,7)*D+z(c,8)*H+z(c,9)*E+z(c,10),z(c,11)*m+z(c,12)*D+z(c,13)*H+z(c,14)*E+z(c,15)];var c;n=e(o,r,Date.now()),s=n==o?n==r?e(s,i):s:n==r?i:-1};return[()=>{return i(),e=++s,a=r,x((t=n)/L)+x(t/T)+x(t/m)+x(t/D)+x(t/H)+x(t/E)+x(t)+x(e/D)+x(e/H)+x(e/E)+x(e)+x(a/m)+x(a/D)+x(a/H)+x(a/E)+x(a);var t,e,a},i]})(s.getId()),j=h();i(((t,e,o,i)=>{0==o?n(w(j,e),(([e,n])=>a(e)||e==t?n(i,t):0)):2==o&&N.isAutoLoading()?I(t,i).then((t=>{V?.(void 0,(()=>t))})):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(t,e,0,a)}))}));const k=async(e,a,n="")=>new t(((t,o)=>{const s=$(),i=setTimeout((()=>{d(j,s),o(`No response from ${e??"anyone"} to '${a}'`)}),1e3*O);v(j,s,[e,(e,a)=>{clearTimeout(i),d(j,s),t([e,a])}]),r(e,s,a,n)})),F=(t,[e,a])=>{g(e,(([e,a],n)=>{const o=y(t[0],n,C);g(e,(([t,e],a)=>{const n=y(o[0],a,C);g(t,(([t,e],a)=>n[0][a]=b(t,e))),n[1]=A(n[1],e)})),o[1]=A(o[1],a)})),t[1]=A(t[1],a)},I=async(t=null,e)=>{a(e)&&([e,t]=await k(t,1));const[n,o]=e,[r,i]=s.getMergeableContentHashes();let c=C();if(r!=n){const[e,a]=(await k(t,4,s.getMergeableTableHashes()))[0];if(c=e,!u(a)){const[e,n]=(await k(t,5,s.getMergeableRowHashes(a)))[0];if(F(c,e),!u(n)){const e=(await k(t,6,s.getMergeableCellHashes(n)))[0];F(c,e)}}}return[c,i==o?C():(await k(t,7,s.getMergeableValuesHashes()))[0],1]},N=((t,e,o,s,r,i,c,g={},y=[])=>{let d,h,p,b=0;f(M,y,(()=>0)),f(S,y,(()=>[]));const[A,C,L,T,m]=((t,e)=>!t||a(e.getMergeableContent)?[0,e.getContent,e.getTransactionChanges,([t,e])=>!u(t)||!u(e),e.setContent]:[1,e.getMergeableContent,e.getTransactionMergeableChanges,([[t],[e]])=>!u(t)||!u(e),e.setDefaultContent])(c,t),D=async t=>(2!=b&&(b=1,await E.schedule((async()=>{await t(),b=0}))),E),H=e=>{var a;(A&&(a=e?.[0],Array.isArray(a))?1===e?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},E={load:async t=>await D((async()=>{try{H(await e())}catch(e){i?.(e),t&&m(t)}})),startAutoLoad:async t=>(await E.stopAutoLoad().load(t),h=s((async(t,a)=>{const n=a?.();await D((async()=>{try{H(n??t?.()??await e())}catch(t){i?.(t)}}))})),E),stopAutoLoad:()=>(h&&(r(h),h=void 0),E),isAutoLoading:()=>!a(h),save:async t=>(1!=b&&(b=2,await E.schedule((async()=>{try{await o(C,t)}catch(t){i?.(t)}b=0}))),E),startAutoSave:async()=>(await E.stopAutoSave().save(),p=t.addDidFinishTransactionListener((()=>{const t=L();T(t)&&E.save((()=>t))})),E),stopAutoSave:()=>(n(p,t.delListener),p=void 0,E),isAutoSaving:()=>!a(p),schedule:async(...t)=>(((t,...e)=>{t.push(...e)})(w(S,y),...t),await(async()=>{if(!w(M,y)){for(v(M,y,1);!a((t=w(S,y),d=t.shift()));)try{await d()}catch(t){i?.(t)}v(M,y,0)}var t})(),E),getStore:()=>t,destroy:()=>E.stopAutoLoad().stopAutoSave(),getStats:()=>({}),...g};return l(E)})(s,(async()=>{const t=await I();return u(t[0][0])&&u(t[1][0])?void 0:t}),(async(t,e)=>{e?r(null,null,3,e()):r(null,null,2,s.getMergeableContentHashes())}),(t=>V=t),(()=>V=void 0),P,!0,{startSync:async t=>await(await N.startAutoLoad(t)).startAutoSave(),stopSync:()=>N.stopAutoLoad().stopAutoSave(),destroy:()=>(c(),N.stopSync()),getSynchronizerStats:()=>({}),...R});return N})(s,((t,e,n,o)=>{setTimeout((()=>{return a(t)?(s=(t,a)=>t!=i?a(i,e,n,o):0,((t,e)=>t?.forEach(e))(O,((t,e)=>s(e,t)))):w(O,t)?.(i,e,n,o);var s}),0)}),(t=>{v(O,i,t)}),(()=>{d(O,i)}),.05,r)};export{P as createLocalSynchronizer};
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};
@@ -1 +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,c=e=>i.getPrototypeOf(e),l=i.entries,g=i.keys,u=i.freeze,d=(e,t)=>r(l(e),(([e,a])=>t(a,e))),y=e=>(e=>!a(e)&&n(c(e),(e=>e==i.prototype||a(c(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]),v=(e,t)=>e?.delete(t),w=e=>new Map(e),f=(e,t)=>e?.get(t),p=(e,t,n)=>a(n)?(v(e,t),e):e?.set(t,n),b=(e,t,a,n)=>{var s,o;return s=e,o=t,s?.has(o)?n?.(f(e,t)):p(e,t,a()),f(e,t)},S=new globalThis.TextEncoder,A=(e,t)=>t?[e,t]:[e],C=(e,t)=>((e??"")>(t??"")?e:t)??"",M=(e="")=>A(((e=[])=>i.fromEntries(e))(),e),L=w(),T=w(),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,c=1,l)=>{let g;const k=(e,t)=>i.addEventListener(e,t),z=((e,s,i,c,l,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(c=e,0)*m+P(c,1)*D+P(c,2)*H+P(c,3)*O+P(c,4)*E+P(c,5)*x+P(c,6),P(c,7)*O+P(c,8)*E+P(c,9)*x+P(c,10),P(c,11)*H+P(c,12)*O+P(c,13)*E+P(c,14)*x+P(c,15)];var c;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=w();i(((t,o,r,i)=>{0==r?n(f(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((()=>{v(R,r),o(`No response from ${e??"anyone"} to '${t}'`)}),1e3*l);p(R,r,[e,(e,t)=>{clearTimeout(i),v(R,r),n([e,t])}]),s(e,r,t,a)})),$=(e,[t,a])=>{d(t,(([t,a],n)=>{const s=h(e[0],n,M);d(t,(([e,t],a)=>{const n=h(s[0],a,M);d(e,(([e,t],a)=>n[0][a]=A(e,t))),n[1]=C(n[1],t)})),s[1]=C(s[1],a)})),e[1]=C(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 c=M();if(r!=s){const[a,n]=(await V(t,4,e.getMergeableTableHashes()))[0];if(c=a,!y(n)){const[a,s]=(await V(t,5,e.getMergeableRowHashes(n)))[0];if($(c,a),!y(s)){const a=(await V(t,6,e.getMergeableCellHashes(s)))[0];$(c,a)}}}return[c,i==o?M():(await V(t,7,e.getMergeableValuesHashes()))[0],1]},F=((e,t,s,o,r,i,c,l={},g=[])=>{let d,h,v,w=0;b(L,g,(()=>0)),b(T,g,(()=>[]));const[S,A,C,M,m]=((e,t)=>!e||a(t.getMergeableContent)?[0,t.getContent,t.getTransactionChanges,([e,t])=>!y(e)||!y(t),t.setContent]:[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[e],[t]])=>!y(e)||!y(t),t.setDefaultContent])(c,e),D=async e=>(2!=w&&(w=1,await O.schedule((async()=>{await e(),w=0}))),O),H=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)},O={load:async e=>await D((async()=>{try{H(await t())}catch(t){i?.(t),e&&m(e)}})),startAutoLoad:async e=>(await O.stopAutoLoad().load(e),h=o((async(e,a)=>{const n=a?.();await D((async()=>{try{H(n??e?.()??await t())}catch(e){i?.(e)}}))})),O),stopAutoLoad:()=>(h&&(r(h),h=void 0),O),isAutoLoading:()=>!a(h),save:async e=>(1!=w&&(w=2,await O.schedule((async()=>{try{await s(A,e)}catch(e){i?.(e)}w=0}))),O),startAutoSave:async()=>(await O.stopAutoSave().save(),v=e.addDidFinishTransactionListener((()=>{const e=C();M(e)&&O.save((()=>e))})),O),stopAutoSave:()=>(n(v,e.delListener),v=void 0,O),isAutoSaving:()=>!a(v),schedule:async(...e)=>(((e,...t)=>{e.push(...t)})(f(T,g),...e),await(async()=>{if(!f(L,g)){for(p(L,g,1);!a((e=f(T,g),d=e.shift()));)try{await d()}catch(e){i?.(e)}p(L,g,0)}var e})(),O),getStore:()=>e,destroy:()=>O.stopAutoLoad().stopAutoSave(),getStats:()=>({}),...l};return u(O)})(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,!0,{startSync:async e=>await(await F.startAutoLoad(e)).startAutoSave(),stopSync:()=>F.stopAutoLoad().stopAutoSave(),destroy:()=>(c(),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()}),c,l,{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};
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};
@@ -1 +1 @@
1
- const e=e=>null==e,t=(t,s,n)=>e(t)?n?.():s(t),s=(e,t,s)=>e.slice(t,s),n=e=>e?.size??0,r=(c=n,e=>{return t=(e,t)=>e+c(t),o(e).reduce(t,0);var t});var c;const o=e=>[...e?.values()??[]],a=(e,t)=>e?.delete(t),l=e=>new Map(e),d=e=>[...e?.keys()??[]],i=(e,t)=>e?.get(t),u=(t,s,n)=>e(n)?(a(t,s),t):t?.set(s,n),g=/\/([^?]*)/,h=c=>{const o=l();return c.on("connection",((r,c)=>t(c.url?.match(g),(([d])=>t(c.headers["sec-websocket-key"],(t=>{const c=(v=l,f=g=o,k=h=d,f?.has(k)||u(g,h,v()),i(g,h));var g,h,v,f,k;u(c,t,r),r.on("message",(e=>{const n=e.toString("utf8"),r=n.indexOf("\n");if(-1!==r){const e=s(n,0,r),o=s(n,r+1);""===e?((e,s)=>{((e,s)=>{e?.forEach(((e,s)=>{return n=e,s!=t?n.send(t+"\n"+o):0;var n}))})(e)})(c):i(c,e)?.send(t+"\n"+o)}})),r.on("close",(()=>{a(c,t),(t=>e(t)||0==n(t))(c)&&a(o,d)}))})))))),{getWebSocketServer:()=>c,getPaths:()=>d(o),getClientIds:e=>d(i(o,e)),getStats:()=>({paths:n(o),clients:r(o)}),destroy:()=>{c.close(),o.clear()}}};export{h as createWsServer};
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};
@@ -1 +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,c=o.keys,l=o.freeze,g=(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=>c(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),v=(e,t,n)=>a(n)?(d(e,t),e):e?.set(t,n),f=(e,t,a,n)=>{var s,o;return s=e,o=t,s?.has(o)?n?.(w(e,t)):v(e,t,a()),w(e,t)},p=new globalThis.TextEncoder,b=(e,t)=>t?[e,t]:[e],A=(e,t)=>((e??"")>(t??"")?e:t)??"",C=(e="")=>b(((e=[])=>o.fromEntries(e))(),e),M=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,c,O,P,R={})=>{let V;const[$]=(e=>{let n=0,o=-1;const r=(e=>{let t=2166136261;return s(p.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(c=e,0)*L+z(c,1)*T+z(c,2)*m+z(c,3)*D+z(c,4)*H+z(c,5)*x+z(c,6),z(c,7)*D+z(c,8)*H+z(c,9)*x+z(c,10),z(c,11)*m+z(c,12)*D+z(c,13)*H+z(c,14)*x+z(c,15)];var c;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);v(j,o,[t,(t,a)=>{clearTimeout(i),d(j,o),e([t,a])}]),r(t,o,a,n)})),F=(e,[t,a])=>{g(t,(([t,a],n)=>{const s=y(e[0],n,C);g(t,(([e,t],a)=>{const n=y(s[0],a,C);g(e,(([e,t],a)=>n[0][a]=b(e,t))),n[1]=A(n[1],t)})),s[1]=A(s[1],a)})),e[1]=A(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 c=C();if(r!=n){const[t,a]=(await k(e,4,o.getMergeableTableHashes()))[0];if(c=t,!u(a)){const[t,n]=(await k(e,5,o.getMergeableRowHashes(a)))[0];if(F(c,t),!u(n)){const t=(await k(e,6,o.getMergeableCellHashes(n)))[0];F(c,t)}}}return[c,i==s?C():(await k(e,7,o.getMergeableValuesHashes()))[0],1]},N=((e,t,s,o,r,i,c,g={},y=[])=>{let d,h,p,b=0;f(M,y,(()=>0)),f(S,y,(()=>[]));const[A,C,L,T,m]=((e,t)=>!e||a(t.getMergeableContent)?[0,t.getContent,t.getTransactionChanges,([e,t])=>!u(e)||!u(t),t.setContent]:[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[e],[t]])=>!u(e)||!u(t),t.setDefaultContent])(c,e),D=async e=>(2!=b&&(b=1,await x.schedule((async()=>{await e(),b=0}))),x),H=t=>{var a;(A&&(a=t?.[0],Array.isArray(a))?1===t?.[2]?e.applyMergeableChanges:e.setMergeableContent:1===t?.[2]?e.applyChanges:e.setContent)(t)},x={load:async e=>await D((async()=>{try{H(await t())}catch(t){i?.(t),e&&m(e)}})),startAutoLoad:async e=>(await x.stopAutoLoad().load(e),h=o((async(e,a)=>{const n=a?.();await D((async()=>{try{H(n??e?.()??await t())}catch(e){i?.(e)}}))})),x),stopAutoLoad:()=>(h&&(r(h),h=void 0),x),isAutoLoading:()=>!a(h),save:async e=>(1!=b&&(b=2,await x.schedule((async()=>{try{await s(C,e)}catch(e){i?.(e)}b=0}))),x),startAutoSave:async()=>(await x.stopAutoSave().save(),p=e.addDidFinishTransactionListener((()=>{const e=L();T(e)&&x.save((()=>e))})),x),stopAutoSave:()=>(n(p,e.delListener),p=void 0,x),isAutoSaving:()=>!a(p),schedule:async(...e)=>(((e,...t)=>{e.push(...t)})(w(S,y),...e),await(async()=>{if(!w(M,y)){for(v(M,y,1);!a((e=w(S,y),d=e.shift()));)try{await d()}catch(e){i?.(e)}v(M,y,0)}var e})(),x),getStore:()=>e,destroy:()=>x.stopAutoLoad().stopAutoSave(),getStats:()=>({}),...g};return l(x)})(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,!0,{startSync:async e=>await(await N.startAutoLoad(e)).startAutoSave(),stopSync:()=>N.stopAutoLoad().stopAutoSave(),destroy:()=>(c(),N.stopSync()),getSynchronizerStats:()=>({}),...R});return N};export{O as createCustomSynchronizer};
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",g="Ids",h="Table",f=h+"s",w=h+g,L="Row",b=L+"Count",C=L+g,v="Sorted"+L+g,y="Cell",T=y+g,p="Value",S=p+"s",I=p+g,R=e=>t+e,M=(e,t)=>e.startsWith(t),V=(e,t)=>e.endsWith(t),m=Promise,D=Math.max,A=Math.min,E=isFinite,H=e=>null==e,k=(e,t,s)=>H(e)?s?.():t(e),J=e=>e==s||e==n,x=t=>e(t)==s,F=t=>e(t)==o,Q=e=>Array.isArray(e),z=(e,t,s)=>e.slice(t,s),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,s)=>t[s]===e)),j=(e,t)=>W(e,((s,n)=>0==n||t(e[n-1],s)<=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,s)=>e.reduce(t,s),X=(e,...t)=>e.push(...t),Y=e=>e.pop(),Z=e=>e.shift(),ee=Object,te=e=>ee.getPrototypeOf(e),se=ee.entries,ne=ee.isFrozen,ae=e=>!H(e)&&k(te(e),(e=>e==ee.prototype||H(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(se(e),(([e,s])=>t(s,e))),ue=(e,t)=>q(se(e),(([e,s])=>t(s,e))),ge=e=>ae(e)&&0==(e=>N(oe(e)))(e),he=(e,t,s)=>(ie(e,t)||(e[t]=s()),e[t]),fe=(e,t,s,n=0)=>H(e)||!ae(e)||!n&&ge(e)||ne(e)?(s?.(),!1):(ue(e,((s,n)=>{t(s,n)||ce(e,n)})),!!n||!ge(e)),we=e=>e?.size??0,Le=(e,t)=>e?.has(t)??!1,be=e=>H(e)||0==we(e),Ce=e=>[...e?.values()??[]],ve=e=>e.clear(),ye=(e,t)=>e?.forEach(t),Te=(e,t)=>e?.delete(t),pe=e=>new Map(e),Se=e=>[...e?.keys()??[]],Ie=(e,t)=>e?.get(t),Re=(e,t)=>ye(e,((e,s)=>t(s,e))),Me=(e,t,s)=>H(s)?(Te(e,t),e):e?.set(t,s),Ve=(e,t,s,n)=>(Le(e,t)?n?.(Ie(e,t)):Me(e,t,s()),Ie(e,t)),me=(e,t,s,n=Me)=>(ue(t,((t,n)=>s(e,n,t))),Re(e,(s=>ie(t,s)?0:n(e,s))),e),De=(e,t,s,n)=>{const a={};return ye(e,((e,o)=>{if(!s?.(e,o)){const s=t?t(e,o):e;!n?.(s)&&(a[o]=s)}})),a},Ae=(e,t,s)=>De(e,(e=>De(e,t,s)),be,ge),Ee=(e,t,s)=>De(e,(e=>Ae(e,t,s)),be,ge),He=(e,t)=>{const s=pe();return ye(e,((e,n)=>s.set(n,t?.(e)??e))),s},ke=e=>He(e,He),Je=e=>He(e,ke),xe=(e,t,s,n,a=0)=>k((s?Ve:Ie)(e,t[a],a>N(t)-2?s:pe),(o=>{if(a>N(t)-2)return n?.(o)&&Me(e,t[a]),o;const r=xe(o,t,s,n,a+1);return be(o)&&Me(e,t[a]),r})),Fe=t=>{const s=e(t);return J(s)||s==a&&E(t)?s:void 0},Qe=e=>H(e)||!H(Fe(e)),ze=(e,t,s,n,a)=>H(a)?e.delCell(t,s,n,!0):e.setCell(t,s,n,a),Ne=(e,t,s)=>H(s)?e.delValue(t):e.setValue(t,s),Oe=e=>new Set(Q(e)||H(e)?e:[e]),Pe=(e,t)=>e?.add(t),We=(e,t,s,n,a)=>{const o=e.hasRow,r=pe(),l=pe(),i=pe(),c=pe(),d=pe(),u=pe(),g=(t,s,...n)=>{const a=Ve(u,t,Oe);return B(n,(t=>Pe(a,t)&&s&&e.callListener(t))),n},h=(t,...s)=>k(Ie(u,t),(n=>{B(K(s)?Ce(n):s,(t=>{e.delListener(t),Te(n,t)})),be(n)&&Me(u,t)})),f=(e,s)=>{Me(r,e,s),Le(l,e)||(Me(l,e,t()),Me(c,e,pe()),Me(d,e,pe()),a(i))},w=e=>{Me(r,e),Me(l,e),Me(c,e),Me(d,e),h(e),a(i)};return[()=>e,()=>Se(r),e=>Re(l,e),e=>Le(l,e),e=>Ie(r,e),e=>Ie(l,e),(e,t)=>Me(l,e,t),f,(t,n,a,r,l)=>{f(t,n);const i=pe(),u=pe(),w=Ie(c,t),L=Ie(d,t),b=t=>{const a=s=>e.getCell(n,t,s),c=Ie(w,t),d=o(n,t)?s(r(a,t)):void 0;if(c===d||Q(c)&&Q(d)&&$(c,d)||Me(i,t,[c,d]),!H(l)){const e=Ie(L,t),s=o(n,t)?l(a,t):void 0;e!=s&&Me(u,t,s)}},C=e=>{a((()=>{ye(i,(([,e],t)=>Me(w,t,e))),ye(u,((e,t)=>Me(L,t,e)))}),i,u,w,L,e),ve(i),ve(u)};Re(w,b),e.hasTable(n)&&B(e.getRowIds(n),(e=>{Le(w,e)||b(e)})),C(!0),h(t),g(t,0,e.addRowListener(n,null,((e,t,s)=>b(s))),e.addTableListener(n,(()=>C())))},w,e=>n(e,i),()=>Re(u,w),g,h]},$e=(e,s)=>x(e)?t=>t(e):e??(()=>s??t),je=(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}},_e=/^\d+$/,Be=()=>{const e=[];let s=0;return[n=>(n?Z(e):null)??t+s++,t=>{_e.test(t)&&N(e)<1e3&&X(e,t)}]},qe=e=>{let s;const[n,a]=Be(),o=pe();return[(a,r,l,i=[],c=(()=>[]))=>{s??=e();const d=n(1);return Me(o,d,[a,r,l,i,c]),Pe(xe(r,l??[t],Oe),d),d},(e,n,...a)=>B(((e,s=[t])=>{const n=[],a=(e,t)=>t==N(s)?X(n,e):null===s[t]?ye(e,(e=>a(e,t+1))):B([s[t],null],(s=>a(Ie(e,s),t+1)));return a(e,0),n})(e,n),(e=>ye(e,(e=>Ie(o,e)[0](s,...n??[],...a))))),e=>k(Ie(o,e),(([,s,n])=>(xe(s,n??[t],void 0,(t=>(Te(t,e),be(t)?1:0))),Me(o,e),a(e),n))),e=>k(Ie(o,e),(([e,,t=[],n,a])=>{const o=(...r)=>{const l=N(r);l==N(t)?e(s,...r,...a(r)):H(t[l])?B(n[l]?.(...r)??[],(e=>o(...r,e))):o(...r,t[l])};o()}))]},Ge=je((e=>{let s,n,a,o=100,r=pe(),l=pe(),i=1;const c=pe(),d=pe(),[u,g,h]=qe((()=>x)),f=pe(),w=pe(),L=[],b=[],C=(t,s)=>{i=0,e.transaction((()=>{const[n,a]=Ie(f,s);ye(n,((s,n)=>ye(s,((s,a)=>ye(s,((s,o)=>ze(e,n,a,o,s[t]))))))),ye(a,((s,n)=>Ne(e,n,s[t])))})),i=1},v=e=>{Me(f,e),Me(w,e),g(d,[e])},y=(e,t)=>B(((e,t)=>e.splice(0,t))(e,t??N(e)),v),T=()=>y(L,N(L)-o),p=()=>k(s,(()=>{X(L,s),T(),y(b),s=void 0,a=1})),S=()=>{s=Y(L),a=1};let I,R;const M=(e=t)=>(H(s)&&(s=t+n++,Me(f,s,[r,l]),E(s,e),r=pe(),l=pe(),a=1),s),V=()=>{K(L)||(((e,...t)=>{e.unshift(...t)})(b,M()),C(0,s),s=Y(L),a=1)},m=()=>{K(b)||(X(L,s),s=Z(b),C(1,s),a=1)},D=()=>{a&&(g(c),a=0)},A=e=>{const t=M(e);return D(),t},E=(e,t)=>(J(e)&&Ie(w,e)!==t&&(Me(w,e,t),g(d,[e])),x),J=e=>Le(f,e),x={setSize:e=>(o=e,T(),x),addCheckpoint:A,setCheckpoint:E,getStore:()=>e,getCheckpointIds:()=>[[...L],s,[...b]],forEachCheckpoint:e=>Re(w,e),hasCheckpoint:J,getCheckpoint:e=>Ie(w,e),goBackward:()=>(V(),D(),x),goForward:()=>(m(),D(),x),goTo:e=>{const t=P(L,e)?V:P(b,e)?m:null;for(;!H(t)&&e!=s;)t();return D(),x},addCheckpointIdsListener:e=>u(e,c),addCheckpointListener:(e,t)=>u(t,d,[e]),delListener:e=>(h(e),x),clear:()=>(y(L),y(b),H(s)||v(s),s=void 0,n=0,A(),x),clearForward:()=>(K(b)||(y(b),g(c)),x),destroy:()=>{e.delListener(I),e.delListener(R)},getListenerStats:()=>({}),_registerListeners:()=>{I=e.addCellListener(null,null,null,((e,t,s,n,a,o)=>{if(i){p();const e=Ve(r,t,pe),l=Ve(e,s,pe),i=Ve(l,n,(()=>[o,void 0]));i[1]=a,i[0]===a&&be(Me(l,n))&&be(Me(e,s))&&be(Me(r,t))&&S(),D()}})),R=e.addValueListener(null,((e,t,s,n)=>{if(i){p();const e=Ve(l,t,(()=>[n,void 0]));e[1]=s,e[0]===s&&be(Me(l,t))&&S(),D()}}))}};return re(x.clear())}),(e=>e._registerListeners())),Ke=(e,t)=>(e??0)<(t??0)?-1:1,Ue=je((e=>{const s=pe(),n=pe(),[a,o,r]=qe((()=>v)),[l,i,c,d,u,g,h,,f,w,L,b]=We(e,pe,(e=>H(e)?t:Q(e)?q(e,R):R(e)),a,o),C=(t,s,n)=>{const a=u(t);ye(n,((t,n)=>s(n,(s=>ye(t,(t=>s(t,(s=>e.forEachCell(a,t,s)))))))))},v={setIndexDefinition:(e,t,a,r,l,i=Ke)=>{const c=H(l)?void 0:([e],[t])=>l(e,t);return f(e,t,((t,a,l,d,u,f)=>{let w=0;const L=Oe(),b=Oe(),C=g(e);if(ye(a,(([e,t],s)=>{const n=Oe(e),a=Oe(t);ye(n,(e=>Te(a,e)?Te(n,e):0)),ye(n,(e=>{Pe(L,e),k(Ie(C,e),(t=>{Te(t,s),be(t)&&(Me(C,e),w=1)}))})),ye(a,(e=>{Pe(L,e),Le(C,e)||(Me(C,e,Oe()),w=1),Pe(Ie(C,e),s),H(r)||Pe(b,e)}))})),t(),be(u)||(f?Re(C,(e=>Pe(b,e))):Re(l,(e=>k(Ie(d,e),(e=>Pe(b,e))))),ye(b,(e=>{const t=(t,s)=>i(Ie(u,t),Ie(u,s),e),s=[...Ie(C,e)];j(s,t)||(Me(C,e,Oe(_(s,t))),Pe(L,e))}))),(w||f)&&!H(c)){const t=[...C];j(t,c)||(h(e,pe(_(t,c))),w=1)}w&&o(s,[e]),ye(L,(t=>o(n,[e,t])))}),$e(a),k(r,$e)),v},delIndexDefinition:e=>(w(e),v),getStore:l,getIndexIds:i,forEachIndex:e=>c(((t,s)=>e(t,(e=>C(t,e,s))))),forEachSlice:(e,t)=>C(e,t,g(e)),hasIndex:d,hasSlice:(e,t)=>Le(g(e),t),getTableId:u,getSliceIds:e=>Se(g(e)),getSliceRowIds:(e,t)=>Ce(Ie(g(e),t)),addIndexIdsListener:L,addSliceIdsListener:(e,t)=>a(t,s,[e]),addSliceRowIdsListener:(e,t,s)=>a(s,n,[e,t]),delListener:e=>(r(e),v),destroy:b,getListenerStats:()=>({})};return re(v)})),Xe=pe([["avg",[(e,t)=>G(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=>D(...e),(e,t)=>D(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:D(t,e)]],["min",[e=>A(...e),(e,t)=>A(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:A(t,e)]],["sum",[e=>G(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),Ye=(e,t,s,n,a,o=!1)=>{if(be(s))return;const[r,l,i,c]=a;return o||=H(e),ye(n,(([s,n])=>{o||(e=H(s)?l?.(e,n,t++):H(n)?i?.(e,s,t--):c?.(e,n,s,t),o||=H(e))})),o?r(Ce(s),we(s)):e},Ze=je((e=>{const s=pe(),[n,a,o]=qe((()=>b)),[r,l,i,c,d,u,g,,h,f,w,L]=We(e,O,(e=>isNaN(e)||H(e)||!0===e||!1===e||e===t?void 0:1*e),n,a),b={setMetricDefinition:(e,t,n,o,r,l,i)=>{const c=F(n)?[n,r,l,i]:Ie(Xe,n)??Ie(Xe,"sum");return h(e,t,((t,n,o,r,l,i)=>{const d=u(e),h=we(r);i||=H(d),t();let f=Ye(d,h,r,n,c,i);E(f)||(f=void 0),f!=d&&(g(e,f),a(s,[e],f,d))}),$e(o,1)),b},delMetricDefinition:e=>(f(e),b),getStore:r,getMetricIds:l,forEachMetric:i,hasMetric:c,getTableId:d,getMetric:u,addMetricIdsListener:w,addMetricListener:(e,t)=>n(t,s,[e]),delListener:e=>(o(e),b),destroy:L,getListenerStats:()=>({})};return re(b)})),et=pe(),tt=pe(),st=(e,t,s,n,a,o,r,l={},i=[])=>{let c,d,u,g=0;Ve(et,i,(()=>0)),Ve(tt,i,(()=>[]));const[h,f,w,L,b]=((e,t)=>!e||H(t.getMergeableContent)?[0,t.getContent,t.getTransactionChanges,([e,t])=>!ge(e)||!ge(t),t.setContent]:[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[e],[t]])=>!ge(e)||!ge(t),t.setDefaultContent])(r,e),C=async e=>(2!=g&&(g=1,await y.schedule((async()=>{await e(),g=0}))),y),v=t=>{(h&&Q(t?.[0])?1===t?.[2]?e.applyMergeableChanges:e.setMergeableContent:1===t?.[2]?e.applyChanges:e.setContent)(t)},y={load:async e=>await C((async()=>{try{v(await t())}catch(t){o?.(t),e&&b(e)}})),startAutoLoad:async e=>(await y.stopAutoLoad().load(e),d=n((async(e,s)=>{const n=s?.();await C((async()=>{try{v(n??e?.()??await t())}catch(e){o?.(e)}}))})),y),stopAutoLoad:()=>(d&&(a(d),d=void 0),y),isAutoLoading:()=>!H(d),save:async e=>(1!=g&&(g=2,await y.schedule((async()=>{try{await s(f,e)}catch(e){o?.(e)}g=0}))),y),startAutoSave:async()=>(await y.stopAutoSave().save(),u=e.addDidFinishTransactionListener((()=>{const e=w();L(e)&&y.save((()=>e))})),y),stopAutoSave:()=>(k(u,e.delListener),u=void 0,y),isAutoSaving:()=>!H(u),schedule:async(...e)=>(X(Ie(tt,i),...e),await(async()=>{if(!Ie(et,i)){for(Me(et,i,1);!H(c=Z(Ie(tt,i)));)try{await c()}catch(e){o?.(e)}Me(et,i,0)}})(),y),getStore:()=>e,destroy:()=>y.stopAutoLoad().stopAutoSave(),getStats:()=>({}),...l};return re(y)},nt=new globalThis.TextEncoder,at=e=>{let t=2166136261;return B(nt.encode(e),(e=>{t^=e,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)})),t>>>0},ot=([e,t,s])=>[e,t,s],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,s)=>{e[2]=t>>>0,s>e[1]&&(e[1]=s)},ht=(e=t)=>lt(le(),e),ft=(e=t)=>[pe(),e,0],wt=([e,t,s],n=ot)=>[De(e,n),t,s],Lt=([e,t],s=rt)=>lt(De(e,s),t),bt=(t,s)=>Q(t)&&3==N(t)&&x(t[1])&&e(t[2])==a&&E(t[2])&&s(t[0]),Ct=2**36,vt=2**30,yt=2**24,Tt=2**18,pt=4096,St=64,It=e=>String.fromCharCode(48+(63&e)),Rt=(e,t)=>((e,t)=>e.charCodeAt(t))(e,t)-48,Mt=e=>{let t=0,s=-1;const n=at(e),a=e=>{const n=t,[a,o]=H(e)||""==e?[0,0]:[Rt(r=e,0)*Ct+Rt(r,1)*vt+Rt(r,2)*yt+Rt(r,3)*Tt+Rt(r,4)*pt+Rt(r,5)*St+Rt(r,6),Rt(r,7)*Tt+Rt(r,8)*pt+Rt(r,9)*St+Rt(r,10),Rt(r,11)*yt+Rt(r,12)*Tt+Rt(r,13)*pt+Rt(r,14)*St+Rt(r,15)];var r;t=D(n,a,Date.now()),s=t==n?t==a?D(s,o):s:t==a?o:-1};return[()=>{return a(),o=++s,r=n,It((e=t)/Ct)+It(e/vt)+It(e/yt)+It(e/Tt)+It(e/pt)+It(e/St)+It(e)+It(o/Tt)+It(o/pt)+It(o/St)+It(o)+It(r/yt)+It(r/Tt)+It(r/pt)+It(r/St)+It(r);var e,o,r},a]},Vt=(e,s,n,a,o,r,l={})=>{let i;const[c]=Mt(e.getId()),d=pe();n(((t,n,a,o)=>{0==a?k(Ie(d,n),(([e,s])=>H(e)||e==t?s(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=>{s(t,n,0,e)}))}));const u=async(e,n,a=t)=>new m(((t,r)=>{const l=c(),i=setTimeout((()=>{Te(d,l),r(`No response from ${e??"anyone"} to '${n}'`)}),1e3*o);Me(d,l,[e,(e,s)=>{clearTimeout(i),Te(d,l),t([e,s])}]),s(e,l,n,a)})),g=(e,[t,s])=>{de(t,(([t,s],n)=>{const a=he(e[0],n,ht);de(t,(([e,t],s)=>{const n=he(a[0],s,ht);de(e,(([e,t],s)=>n[0][s]=lt(e,t))),n[1]=ut(n[1],t)})),a[1]=ut(a[1],s)})),e[1]=ut(e[1],s)},h=async(t=null,s)=>{H(s)&&([s,t]=await u(t,1));const[n,a]=s,[o,r]=e.getMergeableContentHashes();let l=ht();if(o!=n){const[s,n]=(await u(t,4,e.getMergeableTableHashes()))[0];if(l=s,!ge(n)){const[s,a]=(await u(t,5,e.getMergeableRowHashes(n)))[0];if(g(l,s),!ge(a)){const s=(await u(t,6,e.getMergeableCellHashes(a)))[0];g(l,s)}}}return[l,r==a?ht():(await u(t,7,e.getMergeableValuesHashes()))[0],1]},f=st(e,(async()=>{const e=await h();return ge(e[0][0])&&ge(e[1][0])?void 0:e}),(async(t,n)=>{n?s(null,null,3,n()):s(null,null,2,e.getMergeableContentHashes())}),(e=>i=e),(()=>i=void 0),r,!0,{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 s=e.createStore,n=s(),a=s(),o=pe(),{addListener:r,callListeners:l,delListener:u}=a,[g,f,w,p,S,,,I,,R,M,V,m,D]=We(e,(()=>!0),O,r,l),A=(e,t,...s)=>B(s,(s=>Pe(Ve(Ve(o,t,pe),e,Oe),s))),E=e=>{k(Ie(o,e),(e=>{Re(e,((e,t)=>ye(t,(t=>e.delListener(t))))),ve(e)})),B([a,n],(t=>t.delTable(e)))},J=(e,t,s)=>A(t,e,t.addStartTransactionListener(s.startTransaction),t.addDidFinishTransactionListener((()=>s.finishTransaction()))),x={setQueryDefinition:(s,o,r)=>{I(s,o),E(s);const l=[],i=[[null,[o,null,null,[],pe()]]],c=[],d=[],u=[];r({select:(e,s)=>{const n=F(e)?[N(l)+t,e]:[H(s)?e:s,t=>t(e,s)];return X(l,n),{as:e=>n[0]=e}},join:(e,t,s)=>{const n=H(s)||F(t)?null:t,a=H(n)?t:s,o=[e,[e,n,F(a)?a:e=>e(a),[],pe()]];return X(i,o),{as:e=>o[0]=e}},where:(e,t,s)=>X(c,F(e)?e:H(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,a)=>{const o=[e,[e,F(t)?[t,s,n,a]:Ie(Xe,t)??[(e,t)=>t]]];return X(d,o),{as:e=>o[0]=e}},having:(e,t)=>X(u,F(e)?e:s=>s(e)===t)});const g=pe(l);if(be(g))return x;const h=pe(i);Re(h,((e,[,t])=>k(Ie(h,t),(({3:t})=>H(e)?0:X(t,e)))));const f=pe(d);let w=n;if(be(f)&&K(u))w=a;else{J(s,w,a);const e=pe();Re(f,((t,[s,n])=>Pe(Ve(e,s,Oe),[t,n])));const t=Oe();Re(g,(s=>Le(e,s)?0:Pe(t,s)));const n=pe(),o=(t,n,o,r)=>k(t,(([l,i,c,d])=>{Re(n,((t,[s])=>{const n=Ve(l,t,pe),a=Ie(n,o),i=r?void 0:s;if(a!==i){const s=Oe([[a,i]]),r=we(n);Me(n,o,i),ye(Ie(e,t),(([e,t])=>{const a=Ye(d[e],r,n,s,t);d[e]=H(Fe(a))?null:a}))}})),be(i)||!W(u,(e=>e((e=>d[e]))))?a.delRow(s,c):H(c)?t[2]=a.addRow(s,d):a.setRow(s,c,d)}));A(w,s,w.addRowListener(s,null,((a,r,l,i)=>{const c=[],d=[],u=pe(),g=w.hasRow(s,l);let h=!g;ye(t,(e=>{const[t,n,a]=i(s,l,e);X(c,n),X(d,a),h||=t})),Re(e,(e=>{const[t,,n]=i(s,l,e);(h||t)&&Me(u,e,[n])})),h&&o(xe(n,c,void 0,(([,e])=>(Te(e,l),be(e)))),u,l,1),g&&o(xe(n,d,(()=>{const e={};return ye(t,(t=>e[t]=w.getCell(s,l,t))),[pe(),Oe(),void 0,e]}),(([,e])=>{Pe(e,l)})),u,l)})))}J(s,e,w);const L=(t,n,a,r)=>{const l=t=>e.getCell(n,a,t);B(r,(n=>{const[a,,o,r,i]=Ie(h,n),c=o?.(l,t),[d,u]=Ie(i,t)??[];c!=d&&(H(u)||D(s,u),Me(i,t,H(c)?null:[c,...m(s,1,e.addRowListener(a,c,(()=>L(t,a,c,r))))]))})),(t=>{const n=(s,n)=>e.getCell(...H(n)?[o,t,s]:s===o?[o,t,n]:[Ie(h,s)?.[0],Ie(Ie(h,s)?.[4],t)?.[0],n]);w.transaction((()=>W(c,(e=>e(n)))?Re(g,((e,a)=>ze(w,s,t,e,a(n,t)))):w.delRow(s,t)))})(t)},{3:b}=Ie(h,null);return w.transaction((()=>m(s,1,e.addRowListener(o,null,((t,n,a)=>{e.hasRow(o,a)?L(a,o,a,b):(w.delRow(s,a),ye(h,(({4:e})=>k(Ie(e,a),(([,t])=>{D(s,t),Me(e,a)})))))}))))),x},delQueryDefinition:e=>(E(e),R(e),x),getStore:g,getQueryIds:f,forEachQuery:w,hasQuery:p,getTableId:S,addQueryIdsListener:e=>M((()=>e(x))),delListener:e=>(u(e),x),destroy:V,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=a.getListenerStats();return n}};return ue({[h]:[1,1],[h+T]:[0,1],[b]:[0,1],[C]:[0,1],[v]:[0,5],[L]:[1,2],[T]:[0,2],[y]:[1,3]},(([e,t],s)=>{B(e?["get","has","forEach"]:["get"],(e=>x[e+c+s]=(...t)=>a[e+s](...t))),x[d+c+s+i]=(...e)=>a[d+s+i](...z(e,0,t),((s,...n)=>e[t](x,...n)),!0)})),re(x)})),Dt=je((e=>{const s=pe(),n=pe(),a=pe(),o=pe(),[r,l,i]=qe((()=>p)),[c,d,u,g,h,f,,,w,L,b,C]=We(e,(()=>[pe(),pe(),pe(),pe()]),(e=>H(e)?void 0:e+t),r,l),v=(e,t,s)=>k(f(e),(([n,,a])=>{if(!Le(a,t)){const o=Oe();if(h(e)!=T(e))Pe(o,t);else{let e=t;for(;!H(e)&&!Le(o,e);)Pe(o,e),e=Ie(n,e)}if(s)return o;Me(a,t,o)}return Ie(a,t)})),y=(e,t)=>k(f(e),(([,,e])=>Me(e,t))),T=e=>Ie(s,e),p={setRelationshipDefinition:(e,t,r,i)=>(Me(s,e,r),w(e,t,((t,s)=>{const r=Oe(),i=Oe(),c=Oe(),[d,u]=f(e);ye(s,(([t,s],n)=>{H(t)||(Pe(i,t),k(Ie(u,t),(e=>{Te(e,n),be(e)&&Me(u,t)}))),H(s)||(Pe(i,s),Le(u,s)||Me(u,s,Oe()),Pe(Ie(u,s),n)),Pe(r,n),Me(d,n,s),Re(Ie(o,e),(t=>{Le(v(e,t),n)&&Pe(c,t)}))})),t(),ye(r,(t=>l(n,[e,t]))),ye(i,(t=>l(a,[e,t]))),ye(c,(t=>{y(e,t),l(o,[e,t])}))}),$e(i)),p),delRelationshipDefinition:e=>(Me(s,e),L(e),p),getStore:c,getRelationshipIds:d,forEachRelationship:t=>u((s=>t(s,(t=>e.forEachRow(h(s),t))))),hasRelationship:g,getLocalTableId:h,getRemoteTableId:T,getRemoteRowId:(e,t)=>Ie(f(e)?.[0],t),getLocalRowIds:(e,t)=>Ce(Ie(f(e)?.[1],t)),getLinkedRowIds:(e,t)=>H(f(e))?[t]:Ce(v(e,t,!0)),addRelationshipIdsListener:b,addRemoteRowIdListener:(e,t,s)=>r(s,n,[e,t]),addLocalRowIdsListener:(e,t,s)=>r(s,a,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(v(e,t),r(s,o,[e,t])),delListener:e=>(y(...i(e)??[]),p),destroy:C,getListenerStats:()=>({})};return re(p)})),At=e=>[e,e],Et=()=>[pe(),pe()],Ht=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,s)=>Me(e,t,Ie(e,t)==-s?void 0:s),Qt=()=>{let e,t,s=!1,n=!1,o=0,c=[];const g=pe(),v=pe(),M=pe(),V=pe(),m=pe(),D=pe(),A=pe(),E=pe(),x=pe(),Q=pe(),N=pe(),O=pe(),W=pe(),j=pe(),G=Oe(),K=pe(),U=pe(),Y=pe(),Z=pe(),ee=Et(),te=Et(),se=Et(),ne=Et(),ae=Et(),oe=Et(),le=Et(),de=Et(),he=Et(),Ce=Et(),xe=Et(),Qe=Et(),We=Et(),$e=Et(),je=Et(),_e=Et(),Ge=Et(),Ue=Et(),Xe=Et(),Ye=Et(),Ze=Et(),et=Et(),tt=pe(),st=Et(),[nt,at,ot,rt]=qe((()=>Js)),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,s)=>(!e||Le(N,s)||Bt(s))&&fe(t,((e,t)=>ct(s,t,e)),(()=>Bt(s))),ct=(e,t,s,n)=>fe(n?s:ht(s,e,t),((n,a)=>k(dt(e,t,a,n),(e=>(s[a]=e,!0)),(()=>!1))),(()=>Bt(e,t))),dt=(t,s,n,a)=>e?k(Ie(Ie(N,t),n),(e=>Fe(a)!=e[r]?Bt(t,s,n,a,e[l]):a),(()=>Bt(t,s,n,a))):H(Fe(a))?Bt(t,s,n,a):a,ut=(e,t)=>fe(t?e:ft(e),((t,s)=>k(gt(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>qt())),gt=(e,s)=>t?k(Ie(W,e),(t=>Fe(s)!=t[r]?qt(e,s,t[l]):s),(()=>qt(e,s))):H(Fe(s))?qt(e,s):s,ht=(e,t,s)=>(k(Ie(O,t),(([n,a])=>{ye(n,((t,s)=>{ie(e,s)||(e[s]=t)})),ye(a,(n=>{ie(e,n)||Bt(t,s,n)}))})),e),ft=e=>(t&&(ye(j,((t,s)=>{ie(e,s)||(e[s]=t)})),ye(G,(t=>{ie(e,t)||qt(t)}))),e),wt=e=>me(N,e,((e,t,s)=>{const n=pe(),a=Oe();me(Ve(N,t,pe),s,((e,t,s)=>{Me(e,t,s),k(s[l],(e=>Me(n,t,e)),(()=>Pe(a,t)))})),Me(O,t,[n,a])}),((e,t)=>{Me(N,t),Me(O,t)})),Lt=e=>me(W,e,((e,t,s)=>{Me(W,t,s),k(s[l],(e=>Me(j,t,e)),(()=>Pe(G,t)))}),((e,t)=>{Me(W,t),Me(j,t),Te(G,t)})),bt=e=>ge(e)?Rs():ys(e),Ct=e=>me(Y,e,((e,t,s)=>vt(t,s)),((e,t)=>mt(t))),vt=(e,t)=>me(Ve(Y,e,(()=>(Ot(e,1),Me(K,e,Be()),Me(U,e,pe()),pe()))),t,((t,s,n)=>yt(e,t,s,n)),((t,s)=>Dt(e,t,s))),yt=(e,t,s,n,a)=>me(Ve(t,s,(()=>(Pt(e,s,1),pe()))),n,((t,n,a)=>Tt(e,s,t,n,a)),((n,o)=>zt(e,t,s,n,o,a))),Tt=(e,t,s,n,a)=>{Le(s,n)||Wt(e,t,n,1);const o=Ie(s,n);a!==o&&($t(e,t,n,o,a),Me(s,n,a))},pt=(e,t,s,n,a)=>k(Ie(t,s),(t=>Tt(e,s,t,n,a)),(()=>yt(e,t,s,ht({[n]:a},e,s)))),St=e=>ge(e)?ms():Ts(e),It=e=>me(Z,e,((e,t,s)=>Rt(t,s)),((e,t)=>Nt(t))),Rt=(e,t)=>{Le(Z,e)||jt(e,1);const s=Ie(Z,e);t!==s&&(_t(e,s,t),Me(Z,e,t))},Mt=(e,t)=>{const[s]=Ie(K,e),n=s(t);return Le(Ie(Y,e),n)?Mt(e,t):n},Vt=e=>Ie(Y,e)??vt(e,{}),mt=e=>vt(e,{}),Dt=(e,t,s)=>{const[,n]=Ie(K,e);n(s),yt(e,t,s,{},!0)},zt=(e,t,s,n,a,o)=>{const r=Ie(Ie(O,e)?.[0],a);if(!H(r)&&!o)return Tt(e,s,n,a,r);const l=t=>{$t(e,s,t,Ie(n,t)),Wt(e,s,t,-1),Me(n,t)};H(r)?l(a):Re(n,l),be(n)&&(Pt(e,s,-1),be(Me(t,s))&&(Ot(e,-1),Me(Y,e),Me(K,e),Me(U,e)))},Nt=e=>{const t=Ie(j,e);if(!H(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,s)=>Ft(Ve(V,e,pe),t,s)&&Me(M,e,Ve(M,e,(()=>0))+s),Wt=(e,t,s,n)=>{const a=Ie(U,e),o=Ie(a,s)??0;(0==o&&1==n||1==o&&-1==n)&&Ft(Ve(v,e,pe),s,n),Me(a,s,o!=-n?o+n:null),Ft(Ve(Ve(m,e,pe),t,pe),s,n)},$t=(e,t,s,n,a)=>{Ve(Ve(Ve(D,e,pe),t,pe),s,(()=>[n,0]))[1]=a,c[3]?.(e,t,s,a)},jt=(e,t)=>Ft(A,e,t),_t=(e,t,s)=>{Ve(E,e,(()=>[t,0]))[1]=s,c[4]?.(e,s)},Bt=(e,t,s,n,a)=>(X(Ve(Ve(Ve(x,e,pe),t,pe),s,(()=>[])),n),a),qt=(e,t,s)=>(X(Ve(Q,e,(()=>[])),t),s),Gt=(e,t,s)=>k(Ie(Ie(Ie(D,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...At(cs(e,t,s))])),Kt=e=>k(Ie(E,e),(([e,t])=>[!0,e,t]),(()=>[!1,...At(gs(e))])),Ut=e=>be(x)||be(_e[e])?0:ye(e?Je(x):x,((t,s)=>ye(t,((t,n)=>ye(t,((t,a)=>at(_e[e],[s,n,a],t))))))),Xt=e=>be(Q)||be(Ge[e])?0:ye(e?He(Q):Q,((t,s)=>at(Ge[e],[s],t))),Yt=(e,t,s,n)=>{if(!be(e))return at(t,n,(()=>De(e))),Re(e,((e,t)=>at(s,[...n??[],e],1==t))),1},Zt=e=>{const t=hs();t!=s&&at(ee[e],void 0,t);const n=be(Ce[e]),a=be(We[e])&&be($e[e])&&be(he[e])&&be(xe[e])&&be(oe[e])&&be(le[e])&&be(de[e])&&n&&be(se[e])&&be(ne[e]),o=be(je[e])&&be(Qe[e])&&be(ae[e])&&be(te[e]);if(!a||!o){const t=e?[He(g),ke(v),He(M),ke(V),Je(m),Je(D)]:[g,v,M,V,m,D];if(!a){Yt(t[0],se[e],ne[e]),ye(t[1],((t,s)=>Yt(t,oe[e],le[e],[s]))),ye(t[2],((t,s)=>{0!=t&&at(de[e],[s],os(s))}));const s=Oe();ye(t[3],((t,a)=>{Yt(t,he[e],xe[e],[a])&&!n&&(at(Ce[e],[a,null]),Pe(s,a))})),n||ye(t[5],((t,n)=>{if(!Le(s,n)){const s=Oe();ye(t,(e=>ye(e,(([t,n],a)=>n!==t?Pe(s,a):Te(e,a))))),ye(s,(t=>at(Ce[e],[n,t])))}})),ye(t[4],((t,s)=>ye(t,((t,n)=>Yt(t,We[e],$e[e],[s,n])))))}if(!o){let s;ye(t[5],((t,n)=>{let a;ye(t,((t,o)=>{let r;ye(t,(([t,l],i)=>{l!==t&&(at(je[e],[n,o,i],l,t,Gt),s=a=r=1)})),r&&at(Qe[e],[n,o],Gt)})),a&&at(ae[e],[n],Gt)})),s&&at(te[e],void 0,Gt)}}},es=e=>{const t=Cs();t!=n&&at(Ue[e],void 0,t);const s=be(Ye[e])&&be(Ze[e]),a=be(et[e])&&be(Xe[e]);if(!s||!a){const t=e?[He(A),He(E)]:[A,E];if(s||Yt(t[0],Ye[e],Ze[e]),!a){let s;ye(t[1],(([t,n],a)=>{n!==t&&(at(et[e],[a],n,t,Kt),s=1)})),s&&at(Xe[e],void 0,Kt)}}},ts=(e,...t)=>(Es((()=>e(...q(t,R)))),Js),ss=()=>Ee(Y),ns=()=>Se(Y),as=e=>Se(Ie(U,R(e))),os=e=>we(Ie(Y,R(e))),rs=e=>Se(Ie(Y,R(e))),ls=(e,t,s,n=0,a)=>{return q(z(_((o=Ie(Y,R(e)),r=(e,s)=>[H(t)?s:Ie(e,R(t)),s],q([...o?.entries()??[]],(([e,t])=>r(t,e)))),(([e],[t])=>Ke(e,t)*(s?-1:1))),n,H(a)?a:n+a),(([,e])=>e));var o,r},is=(e,t)=>Se(Ie(Ie(Y,R(e)),R(t))),cs=(e,t,s)=>Ie(Ie(Ie(Y,R(e)),R(t)),R(s)),ds=()=>De(Z),us=()=>Se(Z),gs=e=>Ie(Z,R(e)),hs=()=>!be(Y),fs=e=>Le(Y,R(e)),ws=(e,t)=>Le(Ie(U,R(e)),R(t)),Ls=(e,t)=>Le(Ie(Y,R(e)),R(t)),bs=(e,t,s)=>Le(Ie(Ie(Y,R(e)),R(t)),R(s)),Cs=()=>!be(Z),vs=e=>Le(Z,R(e)),ys=e=>ts((()=>(e=>fe(e,it,Bt))(e)?Ct(e):0)),Ts=e=>ts((()=>ut(e)?It(e):0)),ps=e=>{try{bt(xt(e))}catch{}return Js},Ss=t=>ts((()=>{if((e=fe(t,(e=>fe(e,lt))))&&(wt(t),!be(Y))){const e=ss();Rs(),ys(e)}})),Is=e=>ts((()=>{if(t=(e=>fe(e,lt))(e)){const s=ds();As(),ms(),t=!0,Lt(e),Ts(s)}})),Rs=()=>ts((()=>Ct({}))),Ms=e=>ts((e=>Le(Y,e)?mt(e):0),e),Vs=(e,t)=>ts(((e,t)=>k(Ie(Y,e),(s=>Le(s,t)?Dt(e,s,t):0))),e,t),ms=()=>ts((()=>It({}))),Ds=()=>ts((()=>{wt({}),e=!1})),As=()=>ts((()=>{Lt({}),t=!1})),Es=(e,t)=>{if(-1!=o){Hs();const s=e();return ks(t),s}},Hs=()=>(-1!=o&&o++,1==o&&(c[0]?.(),at(tt,void 0)),Js),ks=e=>(o>0&&(o--,0==o&&(o=1,Ut(1),be(D)||Zt(1),Xt(1),be(E)||es(1),e?.(Js)&&(ye(D,((e,t)=>ye(e,((e,s)=>ye(e,(([e],n)=>ze(Js,t,s,n,e))))))),ve(D),ye(E,(([e],t)=>Ne(Js,t,e))),ve(E)),at(st[0],void 0),o=-1,Ut(0),be(D)||Zt(0),Xt(0),be(E)||es(0),c[1]?.(),at(st[1],void 0),c[2]?.(),o=0,s=hs(),n=Cs(),B([g,v,M,V,m,D,x,A,E,Q],ve))),Js),Js={getContent:()=>[ss(),ds()],getTables:ss,getTableIds:ns,getTable:e=>Ae(Ie(Y,R(e))),getTableCellIds:as,getRowCount:os,getRowIds:rs,getSortedRowIds:ls,getRow:(e,t)=>De(Ie(Ie(Y,R(e)),R(t))),getCellIds:is,getCell:cs,getValues:ds,getValueIds:us,getValue:gs,hasTables:hs,hasTable:fs,hasTableCell:ws,hasRow:Ls,hasCell:bs,hasValues:Cs,hasValue:vs,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])=>ts((()=>{(ge(e)?Rs:ys)(e),(ge(t)?ms:Ts)(t)})),setTables:ys,setTable:(e,t)=>ts((e=>it(t,e)?vt(e,t):0),e),setRow:(e,t,s)=>ts(((e,t)=>ct(e,t,s)?yt(e,Vt(e),t,s):0),e,t),addRow:(e,t,s=!0)=>Es((()=>{let n;return ct(e,n,t)&&(e=R(e),yt(e,Vt(e),n=Mt(e,s?1:0),t)),n})),setPartialRow:(e,t,s)=>ts(((e,t)=>{if(ct(e,t,s,1)){const n=Vt(e);ue(s,((s,a)=>pt(e,n,t,a,s)))}}),e,t),setCell:(e,t,s,n)=>ts(((e,t,s)=>k(dt(e,t,s,F(n)?n(cs(e,t,s)):n),(n=>pt(e,Vt(e),t,s,n)))),e,t,s),setValues:Ts,setPartialValues:e=>ts((()=>ut(e,1)?ue(e,((e,t)=>Rt(t,e))):0)),setValue:(e,t)=>ts((e=>k(gt(e,F(t)?t(gs(e)):t),(t=>Rt(e,t)))),e),applyChanges:e=>ts((()=>{ue(e[0],((e,t)=>H(e)?Ms(t):ue(e,((e,s)=>H(e)?Vs(t,s):ue(e,((e,n)=>ze(Js,t,s,n,e))))))),ue(e[1],((e,t)=>Ne(Js,t,e)))})),setTablesJson:ps,setValuesJson:e=>{try{St(xt(e))}catch{}return Js},setJson:e=>ts((()=>{try{const[t,s]=xt(e);bt(t),St(s)}catch{ps(e)}})),setTablesSchema:Ss,setValuesSchema:Is,setSchema:(e,t)=>ts((()=>{Ss(e),Is(t)})),delTables:Rs,delTable:Ms,delRow:Vs,delCell:(e,t,s,n)=>ts(((e,t,s)=>k(Ie(Y,e),(a=>k(Ie(a,t),(o=>Le(o,s)?zt(e,a,t,o,s,n):0))))),e,t,s),delValues:ms,delValue:e=>ts((e=>Le(Z,e)?Nt(e):0),e),delTablesSchema:Ds,delValuesSchema:As,delSchema:()=>ts((()=>{Ds(),As()})),transaction:Es,startTransaction:Hs,getTransactionChanges:()=>[De(D,((e,t)=>-1===Ie(g,t)?void 0:De(e,((e,s)=>-1===Ie(Ie(V,t),s)?void 0:De(e,(([,e])=>e),(e=>kt(e)))),be,ge)),be,ge),De(E,(([,e])=>e),(e=>kt(e))),1],getTransactionLog:()=>[!be(D),!be(E),Ee(D,Ht,kt),Ee(x),De(E,Ht,kt),De(Q),De(g),Ae(V),Ee(m),De(A)],finishTransaction:ks,forEachTable:e=>ye(Y,((t,s)=>e(s,(e=>ye(t,((t,s)=>e(s,(e=>Re(t,e))))))))),forEachTableCell:(e,t)=>Re(Ie(U,R(e)),t),forEachRow:(e,t)=>ye(Ie(Y,R(e)),((e,s)=>t(s,(t=>Re(e,t))))),forEachCell:(e,t,s)=>Re(Ie(Ie(Y,R(e)),R(t)),s),forEachValue:e=>Re(Z,e),addSortedRowIdsListener:(e,t,s,n,a,o,r)=>{let l=ls(e,t,s,n,a);return nt((()=>{const r=ls(e,t,s,n,a);$(r,l)||(l=r,o(Js,e,t,s,n,a,l))}),Ce[r?1:0],[e,t],[ns])},addStartTransactionListener:e=>nt(e,tt),addWillFinishTransactionListener:e=>nt(e,st[0]),addDidFinishTransactionListener:e=>nt(e,st[1]),callListener:e=>(rt(e),Js),delListener:e=>(ot(e),Js),getListenerStats:()=>({}),createStore:Qt,addListener:nt,callListeners:at,setInternalListeners:(e,t,s,n,a)=>c=[e,t,s,n,a]};return ue({[u+f]:[0,ee,[],()=>[hs()]],[f]:[0,te],[w]:[0,se],[u+h]:[1,ne,[ns],e=>[fs(...e)]],[h]:[1,ae,[ns]],[h+T]:[1,oe,[ns]],[u+h+y]:[2,le,[ns,as],e=>[ws(...e)]],[b]:[1,de,[ns]],[C]:[1,he,[ns]],[u+L]:[2,xe,[ns,rs],e=>[Ls(...e)]],[L]:[2,Qe,[ns,rs]],[T]:[2,We,[ns,rs]],[u+y]:[3,$e,[ns,rs,is],e=>[bs(...e)]],[y]:[3,je,[ns,rs,is],e=>At(cs(...e))],InvalidCell:[3,_e],[u+S]:[0,Ue,[],()=>[Cs()]],[S]:[0,Xe],[I]:[0,Ye],[u+p]:[1,Ze,[us],e=>[vs(...e)]],[p]:[1,et,[us],e=>At(gs(e[0]))],InvalidValue:[1,Ge]},(([e,t,s,n],a)=>{Js[d+a+i]=(...a)=>nt(a[e],t[a[e+1]?1:0],e>0?z(a,0,e):void 0,s,n)})),re(Js)},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 s=1,n=Nt(),a=0;const o=pe(),r=Oe(),[l,i]=Mt(e),c=Qt(),d=e=>{const t=s;return s=0,e(),s=t,w},u=(e,s=0)=>{const a={},o={},[[r,l=t,c=0],d]=e,[u,h]=n,[f,w,L]=u;let b=s?c:L,C=l;de(r,(([e,n=t,o=0],r)=>{const l=Ve(f,r,ft),[i,c,d]=l;let u=s?o:d,h=n;de(e,((e,t)=>{const[n,o,l]=g(e,Ve(i,t,ft),he(he(a,r,le),t,le),s);u^=s?0:(o?ct(t,o):0)^ct(t,l),h=ut(h,n)})),u^=s?0:dt(c,n),gt(l,u,n),b^=s?0:(d?ct(r,d):0)^ct(r,l[2]),C=ut(C,h)})),b^=s?0:dt(w,l),gt(u,b,l);const[v]=g(d,h,o,s);return i(ut(C,v)),[a,o,1]},g=(e,s,n,a)=>{const[o,r=t,l=0]=e,[i,c,d]=s;let u=r,g=a?l:d;return de(o,(([e,s,o=0],r)=>{const l=Ve(i,r,(()=>[void 0,t,0])),[,c,d]=l;(!c||s>c)&&(gt(l,a?o:at(Jt(e??null)+":"+s),s),l[0]=e,n[r]=e,g^=a?0:ct(r,d)^ct(r,l[2]),u=ut(u,s))})),g^=a?0:dt(c,r),gt(s,g,r),[u,d,s[2]]},h=()=>[wt(n[0],(e=>wt(e,(e=>wt(e))))),wt(n[1])],f=e=>d((()=>c.applyChanges(u(e)))),w={getId:()=>e,getMergeableContent:h,getMergeableContentHashes:()=>[n[0][2],n[1][2]],getMergeableTableHashes:()=>De(n[0][0],it),getMergeableTableDiff:e=>{const t=ht(n[0][1]),s={};return Re(n[0][0],((n,[a,o,r])=>ie(e,n)?r!=e[n]?s[n]=r:0:t[0][n]=Lt([a,o],(e=>Lt(e))))),[t,s]},getMergeableRowHashes:e=>{const t={};return de(e,((e,s)=>k(Ie(n[0][0],s),(([n,,a])=>a!=e?Re(n,((e,[,,n])=>he(t,s,le)[e]=n)):0)))),t},getMergeableRowDiff:e=>{const t=ht(n[0][1]),s={};return de(e,((e,a)=>Re(Ie(n[0][0],a)?.[0],((n,[o,r,l])=>ie(e,n)?l!==e[n]?he(s,a,le)[n]=l:0:he(t[0],a,ht)[0][n]=Lt([o,r]))))),[t,s]},getMergeableCellHashes:e=>{const t={};return de(e,((e,s)=>k(Ie(n[0][0],s),(([n])=>de(e,((e,a)=>k(Ie(n,a),(([n,,o])=>o!==e?Re(n,((e,[,,n])=>he(he(t,s,le),a,le)[e]=n)):0)))))))),t},getMergeableCellDiff:e=>{const[[t,s]]=n,a={};return de(e,((e,s)=>de(e,((e,n)=>k(Ie(t,s),(([t,o])=>k(Ie(t,n),(([t,r])=>Re(t,((t,[l,i,c])=>c!==e[t]?he(he(a,s,(()=>ht(o)))[0],n,(()=>ht(r)))[0][t]=[l,i]:0)))))))))),lt(a,s)},getMergeableValuesHashes:()=>De(n[1][0],it),getMergeableValueDiff:e=>{const[,[t,s]]=n,a=De(t,rt,(([,,t],s)=>t==e?.[s]));return lt(a,s)},setMergeableContent:e=>d((()=>(e=>Q(e)&&2==N(e)&&bt(e[0],(e=>fe(e,(e=>bt(e,(e=>fe(e,(e=>bt(e,(e=>fe(e,(e=>bt(e,Qe)),void 0,1)))),void 0,1)))),void 0,1)))&&bt(e[1],(e=>fe(e,(e=>bt(e,Qe)),void 0,1))))(e)?c.transaction((()=>{c.delTables().delValues(),n=Nt(),c.applyChanges(u(e,1))})):0)),setDefaultContent:e=>(c.transaction((()=>{a=1,c.setContent(e),a=0})),w),getTransactionMergeableChanges:()=>{const[[e,t],[s,a]]=n,l={};ye(o,((t,s)=>k(Ie(e,s),(([e,n])=>{const a={};ye(t,((t,s)=>k(Ie(e,s),(([e,n])=>{const o={};ye(t,(t=>{k(Ie(e,t),(([e,s])=>o[t]=lt(e,s)))})),a[s]=lt(o,n)})))),l[s]=lt(a,n)}))));const i={};return ye(r,(e=>k(Ie(s,e),(([t,s])=>i[e]=lt(t,s))))),[lt(l,t),lt(i,a),1]},applyMergeableChanges:f,merge:e=>{const t=h(),s=e.getMergeableContent();return e.applyMergeableChanges(t),f(s)}};return c.setInternalListeners((()=>{}),(()=>{}),(()=>{ve(o),ve(r)}),((e,n,r,i)=>{Pe(Ve(Ve(o,e,pe),n,Oe),r),s&&u([[{[e]:[{[n]:[{[r]:[i,a?t:l()]}]}]}],[{}],1])}),((e,n)=>{Pe(r,e),s&&u([[{}],[{[e]:[n,a?t:l()]}],1])})),ue(c,((e,t)=>w[t]=M(t,"set")||M(t,"del")||M(t,"apply")||V(t,"Transaction")||"callListener"==t?(...t)=>(e(...t),w):M(t,"add")&&V(t,"Listener")?(...s)=>{const n=zt[z(t,3,-8)]??0,a=s[n];return s[n]=(e,...t)=>a(w,...t),e(...s)}:e)),re(w)};export{Ge as createCheckpoints,st 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};
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
@@ -30,7 +30,7 @@ import {Store} from '../store';
30
30
  * @category Persister
31
31
  * @since v4.3.14
32
32
  */
33
- export interface SessionPersister extends Persister<true> {
33
+ export interface SessionPersister extends Persister<3> {
34
34
  /**
35
35
  * The getStorageName method returns the unique key of the storage location
36
36
  * the Store is being persisted to.
@@ -65,7 +65,7 @@ export interface SessionPersister extends Persister<true> {
65
65
  * @category Persister
66
66
  * @since v4.3.14
67
67
  */
68
- export interface LocalPersister extends Persister<true> {
68
+ export interface LocalPersister extends Persister<3> {
69
69
  /**
70
70
  * The getStorageName method returns the unique key of the storage location
71
71
  * the Store is being persisted to.
@@ -21,7 +21,7 @@ import {Store} from '../store';
21
21
  * @category Persister
22
22
  * @since v4.3.14
23
23
  */
24
- export interface FilePersister extends Persister<true> {
24
+ export interface FilePersister extends Persister<3> {
25
25
  /**
26
26
  * The getFilePath method returns the location of the local file the Store is
27
27
  * being persisted to.
@@ -48,6 +48,66 @@ import {
48
48
  } from './mergeable-store';
49
49
  import {Id} from './common.d.ts';
50
50
 
51
+ /**
52
+ * The StoreTypes type
53
+ */
54
+ export type StoreTypes =
55
+ | 1 // Store only
56
+ | 2 // MergeableStore only
57
+ | 3; // Store and MergeableStore
58
+
59
+ /**
60
+ * The PersistedStore type
61
+ */
62
+ export type PersistedStore<StoreType extends StoreTypes = 1> =
63
+ StoreType extends 3
64
+ ? Store | MergeableStore
65
+ : StoreType extends 2
66
+ ? MergeableStore
67
+ : Store;
68
+
69
+ /**
70
+ * The PersistedContent type
71
+ */
72
+ export type PersistedContent<StoreType extends StoreTypes = 1> =
73
+ StoreType extends 3
74
+ ? Content | MergeableContent
75
+ : StoreType extends 2
76
+ ? MergeableContent
77
+ : Content;
78
+
79
+ /**
80
+ * The PersistedChanges type
81
+ */
82
+ export type PersistedChanges<StoreType extends StoreTypes = 1> =
83
+ StoreType extends 3
84
+ ? Changes | MergeableChanges
85
+ : StoreType extends 2
86
+ ? MergeableChanges
87
+ : Changes;
88
+
89
+ /**
90
+ * A PersisterListener is a callback that lets a Persister inform the Store that
91
+ * a change has happened to the underlying data.
92
+ *
93
+ * If the listener is called with the `changes` parameter, it will be used to
94
+ * make an incremental change to the Store. If not, but the `content` parameter
95
+ * is available, that will be used to make a wholesale change to the Store. If
96
+ * neither are present, the content will be loaded using the Persister's load
97
+ * method. Prior to v5.0, these parameters were callbacks.
98
+ * @param content If provided, this is a Content object from the the Persister
99
+ * that will be used to immediately wholesale update the Store.
100
+ * @param changes If provided, this is a Changes object from the the Persister
101
+ * that will be used to immediately incrementally update the Store. This takes
102
+ * priority over the content argument above if present.
103
+ * @category Creation
104
+ * @since v4.0.0
105
+ */
106
+ export type PersisterListener<StoreType extends StoreTypes = 1> = (
107
+ content?: PersistedContent<StoreType>,
108
+ changes?: PersistedChanges<StoreType>,
109
+ ) => void;
110
+
51
111
  /**
52
112
  * The PersisterStats type describes the number of times a Persister object has
53
113
  * loaded or saved data.
@@ -67,32 +127,6 @@ export type PersisterStats = {
67
127
  saves?: number;
68
128
  };
69
129
 
70
- /**
71
- * A PersisterListener is a callback that lets a Persister inform the Store that
72
- * a change has happened to the underlying data.
73
- *
74
- * If the listener has the `getChanges` parameter, it will be used to make an
75
- * incremental change to the Store. If not, but the `getContent` function _is_
76
- * available, that will be used to make a wholesale change to the Store. If
77
- * neither are present, the content will be loaded from the Persister's load
78
- * method.
79
- * @param getContent An optional function that, if provided, returns an array of
80
- * Store content and can be used to immediately wholesale update the Store.
81
- * @param getChanges An optional function that, if provided, returns a Changes
82
- * object and can be used to immediately incrementally update the Store.
83
- * @category Creation
84
- * @since v4.0.0
85
- */
86
- export type PersisterListener<SupportsMergeableStore extends boolean = false> =
87
- (
88
- getContent?: () =>
89
- | Content
90
- | (SupportsMergeableStore extends true ? MergeableContent : never),
91
- getChanges?: () =>
92
- | Changes
93
- | (SupportsMergeableStore extends true ? MergeableChanges : never),
94
- ) => void;
95
-
96
130
  /**
97
131
  * The DatabasePersisterConfig type describes the configuration of a
98
132
  * database-oriented Persister, such as those for SQLite.
@@ -651,7 +685,7 @@ export type DpcTabularValues = {
651
685
  * ```
652
686
  * @category Persister
653
687
  */
654
- export interface Persister<SupportsMergeableStore extends boolean = false> {
688
+ export interface Persister<StoreType extends StoreTypes = 1> {
655
689
  //
656
690
  /**
657
691
  * The load method gets persisted data from storage, and loads it into the
@@ -1029,9 +1063,7 @@ export interface Persister<SupportsMergeableStore extends boolean = false> {
1029
1063
  * ```
1030
1064
  * @category Getter
1031
1065
  */
1032
- getStore(): SupportsMergeableStore extends true
1033
- ? Store | MergeableStore
1034
- : Store;
1066
+ getStore(): PersistedStore<StoreType>;
1035
1067
 
1036
1068
  /**
1037
1069
  * The destroy method should be called when this Persister object is no longer
@@ -1135,7 +1167,9 @@ export interface Persister<SupportsMergeableStore extends boolean = false> {
1135
1167
  * the persistence layer (or `undefined` if not present).
1136
1168
  * @param setPersisted An asynchronous function which will send content to the
1137
1169
  * persistence layer. Since v4.0, it receives functions for getting the Store
1138
- * content and information about the changes made during a transaction.
1170
+ * content and information about the changes made during a transaction. Since
1171
+ * v5.0, the changes are received directly by reference, rather than an
1172
+ * accessor.
1139
1173
  * @param addPersisterListener A function that will register a `listener`
1140
1174
  * listener on underlying changes to the persistence layer. You can return a
1141
1175
  * listening handle that will be provided again when `delPersisterListener` is
@@ -1189,26 +1223,18 @@ export interface Persister<SupportsMergeableStore extends boolean = false> {
1189
1223
  */
1190
1224
  export function createCustomPersister<
1191
1225
  ListeningHandle,
1192
- SupportsMergeableStore extends boolean = false,
1226
+ StoreType extends StoreTypes = 1,
1193
1227
  >(
1194
- store: Store | (SupportsMergeableStore extends true ? MergeableStore : never),
1195
- getPersisted: () => Promise<
1196
- | Content
1197
- | (SupportsMergeableStore extends true ? MergeableContent : never)
1198
- | undefined
1199
- >,
1228
+ store: PersistedStore<StoreType>,
1229
+ getPersisted: () => Promise<PersistedContent<StoreType> | undefined>,
1200
1230
  setPersisted: (
1201
- getContent: () =>
1202
- | Content
1203
- | (SupportsMergeableStore extends true ? MergeableContent : never),
1204
- getChanges?: () =>
1205
- | Changes
1206
- | (SupportsMergeableStore extends true ? MergeableChanges : never),
1231
+ getContent: () => PersistedContent<StoreType>,
1232
+ changes?: PersistedChanges<StoreType>,
1207
1233
  ) => Promise<void>,
1208
1234
  addPersisterListener: (
1209
- listener: PersisterListener<SupportsMergeableStore>,
1235
+ listener: PersisterListener<StoreType>,
1210
1236
  ) => ListeningHandle,
1211
1237
  delPersisterListener: (listeningHandle: ListeningHandle) => void,
1212
1238
  onIgnoredError?: (error: any) => void,
1213
- supportsMergeableStore?: SupportsMergeableStore,
1214
- ): Persister<SupportsMergeableStore>;
1239
+ supportedStoreType?: StoreType,
1240
+ ): Persister<StoreType>;
@@ -7,9 +7,27 @@
7
7
  * @since v5.0.0
8
8
  */
9
9
 
10
- import {Ids} from '../common';
10
+ import {Id, IdOrNull, Ids} from '../common';
11
+ import {GetIdChanges} from '../store';
11
12
  import {WebSocketServer} from 'ws';
12
13
 
14
+ /**
15
+ * The PathIdsListener type
16
+ */
17
+ export type PathIdsListener<> = (
18
+ wsServer: WsServer,
19
+ getIdChanges: GetIdChanges,
20
+ ) => void;
21
+
22
+ /**
23
+ * The ClientIdsListener type
24
+ */
25
+ export type ClientIdsListener<> = (
26
+ wsServer: WsServer,
27
+ pathId: Id,
28
+ getIdChanges: GetIdChanges,
29
+ ) => void;
30
+
13
31
  /**
14
32
  * The WsServerStats type
15
33
  */
@@ -23,8 +41,11 @@ export type WsServerStats = {
23
41
  */
24
42
  export interface WsServer {
25
43
  getWebSocketServer: () => WebSocketServer;
26
- getPaths: () => string[];
27
- getClientIds: (path: string) => Ids;
44
+ getPathIds: () => Ids;
45
+ getClientIds: (pathId: Id) => Ids;
46
+ addPathIdsListener: (listener: PathIdsListener) => Id;
47
+ addClientIdsListener: (pathId: IdOrNull, listener: ClientIdsListener) => Id;
48
+ delListener(listenerId: Id): WsServer;
28
49
  getStats: () => WsServerStats;
29
50
  destroy: () => void;
30
51
  }
@@ -60,7 +60,7 @@ export type SynchronizerStats = {
60
60
  * @category Synchronizer
61
61
  * @since v5.0.0
62
62
  */
63
- export interface Synchronizer extends Persister<true> {
63
+ export interface Synchronizer extends Persister<2> {
64
64
  /**
65
65
  * The startSync method
66
66
  * @category Synchronization