tinybase 5.0.0-beta.1 → 5.0.0-beta.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (491) hide show
  1. package/lib/checkpoints.js +1 -1
  2. package/lib/checkpoints.js.gz +0 -0
  3. package/lib/cjs/checkpoints.cjs +1 -1
  4. package/lib/cjs/checkpoints.cjs.gz +0 -0
  5. package/lib/cjs/indexes.cjs +1 -1
  6. package/lib/cjs/indexes.cjs.gz +0 -0
  7. package/lib/cjs/mergeable-store.cjs +1 -0
  8. package/lib/cjs/mergeable-store.cjs.gz +0 -0
  9. package/lib/cjs/metrics.cjs +1 -1
  10. package/lib/cjs/metrics.cjs.gz +0 -0
  11. package/lib/cjs/persisters/persister-automerge.cjs +1 -1
  12. package/lib/cjs/persisters/persister-automerge.cjs.gz +0 -0
  13. package/lib/cjs/persisters/persister-browser.cjs +1 -1
  14. package/lib/cjs/persisters/persister-browser.cjs.gz +0 -0
  15. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  16. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  17. package/lib/cjs/persisters/persister-electric-sql.cjs +1 -1
  18. package/lib/cjs/persisters/persister-electric-sql.cjs.gz +0 -0
  19. package/lib/cjs/persisters/persister-expo-sqlite-next.cjs +1 -1
  20. package/lib/cjs/persisters/persister-expo-sqlite-next.cjs.gz +0 -0
  21. package/lib/cjs/persisters/persister-expo-sqlite.cjs +1 -1
  22. package/lib/cjs/persisters/persister-expo-sqlite.cjs.gz +0 -0
  23. package/lib/cjs/persisters/persister-file.cjs +1 -1
  24. package/lib/cjs/persisters/persister-file.cjs.gz +0 -0
  25. package/lib/cjs/persisters/persister-indexed-db.cjs +1 -1
  26. package/lib/cjs/persisters/persister-indexed-db.cjs.gz +0 -0
  27. package/lib/cjs/persisters/persister-libsql.cjs +1 -0
  28. package/lib/cjs/persisters/persister-libsql.cjs.gz +0 -0
  29. package/lib/cjs/persisters/persister-partykit-client.cjs +1 -1
  30. package/lib/cjs/persisters/persister-partykit-client.cjs.gz +0 -0
  31. package/lib/cjs/persisters/persister-partykit-server.cjs +1 -1
  32. package/lib/cjs/persisters/persister-partykit-server.cjs.gz +0 -0
  33. package/lib/cjs/persisters/persister-powersync.cjs +1 -0
  34. package/lib/cjs/persisters/persister-powersync.cjs.gz +0 -0
  35. package/lib/cjs/persisters/persister-remote.cjs +1 -1
  36. package/lib/cjs/persisters/persister-remote.cjs.gz +0 -0
  37. package/lib/cjs/persisters/persister-sqlite-wasm.cjs +1 -1
  38. package/lib/cjs/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  39. package/lib/cjs/persisters/persister-sqlite3.cjs +1 -1
  40. package/lib/cjs/persisters/persister-sqlite3.cjs.gz +0 -0
  41. package/lib/cjs/persisters/persister-yjs.cjs +1 -1
  42. package/lib/cjs/persisters/persister-yjs.cjs.gz +0 -0
  43. package/lib/cjs/persisters.cjs +1 -1
  44. package/lib/cjs/persisters.cjs.gz +0 -0
  45. package/lib/cjs/queries.cjs +1 -1
  46. package/lib/cjs/queries.cjs.gz +0 -0
  47. package/lib/cjs/relationships.cjs +1 -1
  48. package/lib/cjs/relationships.cjs.gz +0 -0
  49. package/lib/cjs/store.cjs +1 -1
  50. package/lib/cjs/store.cjs.gz +0 -0
  51. package/lib/cjs/synchronizers/synchronizer-local.cjs +1 -0
  52. package/lib/cjs/synchronizers/synchronizer-local.cjs.gz +0 -0
  53. package/lib/cjs/synchronizers/synchronizer-ws-client.cjs +1 -0
  54. package/lib/cjs/synchronizers/synchronizer-ws-client.cjs.gz +0 -0
  55. package/lib/cjs/synchronizers/synchronizer-ws-server.cjs +1 -0
  56. package/lib/cjs/synchronizers/synchronizer-ws-server.cjs.gz +0 -0
  57. package/lib/cjs/synchronizers.cjs +1 -0
  58. package/lib/cjs/synchronizers.cjs.gz +0 -0
  59. package/lib/cjs/tinybase.cjs +1 -1
  60. package/lib/cjs/tinybase.cjs.gz +0 -0
  61. package/lib/cjs/tools.cjs +1 -1
  62. package/lib/cjs/tools.cjs.gz +0 -0
  63. package/lib/cjs/ui-react-dom-debug.cjs +1 -1
  64. package/lib/cjs/ui-react-dom-debug.cjs.gz +0 -0
  65. package/lib/cjs/ui-react-dom.cjs +1 -1
  66. package/lib/cjs/ui-react-dom.cjs.gz +0 -0
  67. package/lib/cjs/ui-react.cjs +1 -1
  68. package/lib/cjs/ui-react.cjs.gz +0 -0
  69. package/lib/cjs-es6/checkpoints.cjs +1 -1
  70. package/lib/cjs-es6/checkpoints.cjs.gz +0 -0
  71. package/lib/cjs-es6/indexes.cjs +1 -1
  72. package/lib/cjs-es6/indexes.cjs.gz +0 -0
  73. package/lib/cjs-es6/mergeable-store.cjs +1 -0
  74. package/lib/cjs-es6/mergeable-store.cjs.gz +0 -0
  75. package/lib/cjs-es6/metrics.cjs +1 -1
  76. package/lib/cjs-es6/metrics.cjs.gz +0 -0
  77. package/lib/cjs-es6/persisters/persister-automerge.cjs +1 -1
  78. package/lib/cjs-es6/persisters/persister-automerge.cjs.gz +0 -0
  79. package/lib/cjs-es6/persisters/persister-browser.cjs +1 -1
  80. package/lib/cjs-es6/persisters/persister-browser.cjs.gz +0 -0
  81. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  82. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  83. package/lib/cjs-es6/persisters/persister-electric-sql.cjs +1 -1
  84. package/lib/cjs-es6/persisters/persister-electric-sql.cjs.gz +0 -0
  85. package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs +1 -1
  86. package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs.gz +0 -0
  87. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs +1 -1
  88. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs.gz +0 -0
  89. package/lib/cjs-es6/persisters/persister-file.cjs +1 -1
  90. package/lib/cjs-es6/persisters/persister-file.cjs.gz +0 -0
  91. package/lib/cjs-es6/persisters/persister-indexed-db.cjs +1 -1
  92. package/lib/cjs-es6/persisters/persister-indexed-db.cjs.gz +0 -0
  93. package/lib/cjs-es6/persisters/persister-libsql.cjs +1 -0
  94. package/lib/cjs-es6/persisters/persister-libsql.cjs.gz +0 -0
  95. package/lib/cjs-es6/persisters/persister-partykit-client.cjs +1 -1
  96. package/lib/cjs-es6/persisters/persister-partykit-client.cjs.gz +0 -0
  97. package/lib/cjs-es6/persisters/persister-partykit-server.cjs +1 -1
  98. package/lib/cjs-es6/persisters/persister-partykit-server.cjs.gz +0 -0
  99. package/lib/cjs-es6/persisters/persister-powersync.cjs +1 -0
  100. package/lib/cjs-es6/persisters/persister-powersync.cjs.gz +0 -0
  101. package/lib/cjs-es6/persisters/persister-remote.cjs +1 -1
  102. package/lib/cjs-es6/persisters/persister-remote.cjs.gz +0 -0
  103. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs +1 -1
  104. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  105. package/lib/cjs-es6/persisters/persister-sqlite3.cjs +1 -1
  106. package/lib/cjs-es6/persisters/persister-sqlite3.cjs.gz +0 -0
  107. package/lib/cjs-es6/persisters/persister-yjs.cjs +1 -1
  108. package/lib/cjs-es6/persisters/persister-yjs.cjs.gz +0 -0
  109. package/lib/cjs-es6/persisters.cjs +1 -1
  110. package/lib/cjs-es6/persisters.cjs.gz +0 -0
  111. package/lib/cjs-es6/queries.cjs +1 -1
  112. package/lib/cjs-es6/queries.cjs.gz +0 -0
  113. package/lib/cjs-es6/relationships.cjs +1 -1
  114. package/lib/cjs-es6/relationships.cjs.gz +0 -0
  115. package/lib/cjs-es6/store.cjs +1 -1
  116. package/lib/cjs-es6/store.cjs.gz +0 -0
  117. package/lib/cjs-es6/synchronizers/synchronizer-local.cjs +1 -0
  118. package/lib/cjs-es6/synchronizers/synchronizer-local.cjs.gz +0 -0
  119. package/lib/cjs-es6/synchronizers/synchronizer-ws-client.cjs +1 -0
  120. package/lib/cjs-es6/synchronizers/synchronizer-ws-client.cjs.gz +0 -0
  121. package/lib/cjs-es6/synchronizers/synchronizer-ws-server.cjs +1 -0
  122. package/lib/cjs-es6/synchronizers/synchronizer-ws-server.cjs.gz +0 -0
  123. package/lib/cjs-es6/synchronizers.cjs +1 -0
  124. package/lib/cjs-es6/synchronizers.cjs.gz +0 -0
  125. package/lib/cjs-es6/tinybase.cjs +1 -1
  126. package/lib/cjs-es6/tinybase.cjs.gz +0 -0
  127. package/lib/cjs-es6/tools.cjs +1 -1
  128. package/lib/cjs-es6/tools.cjs.gz +0 -0
  129. package/lib/cjs-es6/ui-react-dom-debug.cjs +1 -1
  130. package/lib/cjs-es6/ui-react-dom-debug.cjs.gz +0 -0
  131. package/lib/cjs-es6/ui-react-dom.cjs +1 -1
  132. package/lib/cjs-es6/ui-react-dom.cjs.gz +0 -0
  133. package/lib/cjs-es6/ui-react.cjs +1 -1
  134. package/lib/cjs-es6/ui-react.cjs.gz +0 -0
  135. package/lib/debug/checkpoints.js +3 -1
  136. package/lib/debug/indexes.js +3 -1
  137. package/lib/debug/mergeable-store.js +2230 -0
  138. package/lib/debug/metrics.js +3 -1
  139. package/lib/debug/persisters/persister-automerge.js +110 -86
  140. package/lib/debug/persisters/persister-browser.js +94 -57
  141. package/lib/debug/persisters/persister-cr-sqlite-wasm.js +168 -106
  142. package/lib/debug/persisters/persister-electric-sql.js +168 -106
  143. package/lib/debug/persisters/persister-expo-sqlite-next.js +168 -106
  144. package/lib/debug/persisters/persister-expo-sqlite.js +168 -106
  145. package/lib/debug/persisters/persister-file.js +93 -57
  146. package/lib/debug/persisters/persister-indexed-db.js +90 -56
  147. package/lib/debug/persisters/persister-libsql.js +913 -0
  148. package/lib/debug/persisters/persister-partykit-client.js +89 -59
  149. package/lib/debug/persisters/persister-partykit-server.js +17 -25
  150. package/lib/debug/persisters/persister-powersync.js +928 -0
  151. package/lib/debug/persisters/persister-remote.js +85 -53
  152. package/lib/debug/persisters/persister-sqlite-wasm.js +168 -106
  153. package/lib/debug/persisters/persister-sqlite3.js +168 -106
  154. package/lib/debug/persisters/persister-yjs.js +108 -83
  155. package/lib/debug/persisters.js +81 -50
  156. package/lib/debug/queries.js +9 -6
  157. package/lib/debug/relationships.js +3 -1
  158. package/lib/debug/store.js +147 -126
  159. package/lib/debug/synchronizers/synchronizer-local.js +559 -0
  160. package/lib/debug/synchronizers/synchronizer-ws-client.js +586 -0
  161. package/lib/debug/synchronizers/synchronizer-ws-server.js +96 -0
  162. package/lib/debug/synchronizers.js +519 -0
  163. package/lib/debug/tinybase.js +1027 -174
  164. package/lib/debug/tools.js +22 -21
  165. package/lib/debug/ui-react-dom.js +275 -213
  166. package/lib/debug/ui-react.js +55 -6
  167. package/lib/es6/checkpoints.js +1 -1
  168. package/lib/es6/checkpoints.js.gz +0 -0
  169. package/lib/es6/indexes.js +1 -1
  170. package/lib/es6/indexes.js.gz +0 -0
  171. package/lib/es6/mergeable-store.js +1 -0
  172. package/lib/es6/mergeable-store.js.gz +0 -0
  173. package/lib/es6/metrics.js +1 -1
  174. package/lib/es6/metrics.js.gz +0 -0
  175. package/lib/es6/persisters/persister-automerge.js +1 -1
  176. package/lib/es6/persisters/persister-automerge.js.gz +0 -0
  177. package/lib/es6/persisters/persister-browser.js +1 -1
  178. package/lib/es6/persisters/persister-browser.js.gz +0 -0
  179. package/lib/es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  180. package/lib/es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  181. package/lib/es6/persisters/persister-electric-sql.js +1 -1
  182. package/lib/es6/persisters/persister-electric-sql.js.gz +0 -0
  183. package/lib/es6/persisters/persister-expo-sqlite-next.js +1 -1
  184. package/lib/es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
  185. package/lib/es6/persisters/persister-expo-sqlite.js +1 -1
  186. package/lib/es6/persisters/persister-expo-sqlite.js.gz +0 -0
  187. package/lib/es6/persisters/persister-file.js +1 -1
  188. package/lib/es6/persisters/persister-file.js.gz +0 -0
  189. package/lib/es6/persisters/persister-indexed-db.js +1 -1
  190. package/lib/es6/persisters/persister-indexed-db.js.gz +0 -0
  191. package/lib/es6/persisters/persister-libsql.js +1 -0
  192. package/lib/es6/persisters/persister-libsql.js.gz +0 -0
  193. package/lib/es6/persisters/persister-partykit-client.js +1 -1
  194. package/lib/es6/persisters/persister-partykit-client.js.gz +0 -0
  195. package/lib/es6/persisters/persister-partykit-server.js +1 -1
  196. package/lib/es6/persisters/persister-partykit-server.js.gz +0 -0
  197. package/lib/es6/persisters/persister-powersync.js +1 -0
  198. package/lib/es6/persisters/persister-powersync.js.gz +0 -0
  199. package/lib/es6/persisters/persister-remote.js +1 -1
  200. package/lib/es6/persisters/persister-remote.js.gz +0 -0
  201. package/lib/es6/persisters/persister-sqlite-wasm.js +1 -1
  202. package/lib/es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  203. package/lib/es6/persisters/persister-sqlite3.js +1 -1
  204. package/lib/es6/persisters/persister-sqlite3.js.gz +0 -0
  205. package/lib/es6/persisters/persister-yjs.js +1 -1
  206. package/lib/es6/persisters/persister-yjs.js.gz +0 -0
  207. package/lib/es6/persisters.js +1 -1
  208. package/lib/es6/persisters.js.gz +0 -0
  209. package/lib/es6/queries.js +1 -1
  210. package/lib/es6/queries.js.gz +0 -0
  211. package/lib/es6/relationships.js +1 -1
  212. package/lib/es6/relationships.js.gz +0 -0
  213. package/lib/es6/store.js +1 -1
  214. package/lib/es6/store.js.gz +0 -0
  215. package/lib/es6/synchronizers/synchronizer-local.js +1 -0
  216. package/lib/es6/synchronizers/synchronizer-local.js.gz +0 -0
  217. package/lib/es6/synchronizers/synchronizer-ws-client.js +1 -0
  218. package/lib/es6/synchronizers/synchronizer-ws-client.js.gz +0 -0
  219. package/lib/es6/synchronizers/synchronizer-ws-server.js +1 -0
  220. package/lib/es6/synchronizers/synchronizer-ws-server.js.gz +0 -0
  221. package/lib/es6/synchronizers.js +1 -0
  222. package/lib/es6/synchronizers.js.gz +0 -0
  223. package/lib/es6/tinybase.js +1 -1
  224. package/lib/es6/tinybase.js.gz +0 -0
  225. package/lib/es6/tools.js +1 -1
  226. package/lib/es6/tools.js.gz +0 -0
  227. package/lib/es6/ui-react-dom-debug.js +1 -1
  228. package/lib/es6/ui-react-dom-debug.js.gz +0 -0
  229. package/lib/es6/ui-react-dom.js +1 -1
  230. package/lib/es6/ui-react-dom.js.gz +0 -0
  231. package/lib/es6/ui-react.js +1 -1
  232. package/lib/es6/ui-react.js.gz +0 -0
  233. package/lib/indexes.js +1 -1
  234. package/lib/indexes.js.gz +0 -0
  235. package/lib/mergeable-store.js +1 -0
  236. package/lib/mergeable-store.js.gz +0 -0
  237. package/lib/metrics.js +1 -1
  238. package/lib/metrics.js.gz +0 -0
  239. package/lib/persisters/persister-automerge.js +1 -1
  240. package/lib/persisters/persister-automerge.js.gz +0 -0
  241. package/lib/persisters/persister-browser.js +1 -1
  242. package/lib/persisters/persister-browser.js.gz +0 -0
  243. package/lib/persisters/persister-cr-sqlite-wasm.js +1 -1
  244. package/lib/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  245. package/lib/persisters/persister-electric-sql.js +1 -1
  246. package/lib/persisters/persister-electric-sql.js.gz +0 -0
  247. package/lib/persisters/persister-expo-sqlite-next.js +1 -1
  248. package/lib/persisters/persister-expo-sqlite-next.js.gz +0 -0
  249. package/lib/persisters/persister-expo-sqlite.js +1 -1
  250. package/lib/persisters/persister-expo-sqlite.js.gz +0 -0
  251. package/lib/persisters/persister-file.js +1 -1
  252. package/lib/persisters/persister-file.js.gz +0 -0
  253. package/lib/persisters/persister-indexed-db.js +1 -1
  254. package/lib/persisters/persister-indexed-db.js.gz +0 -0
  255. package/lib/persisters/persister-libsql.js +1 -0
  256. package/lib/persisters/persister-libsql.js.gz +0 -0
  257. package/lib/persisters/persister-partykit-client.js +1 -1
  258. package/lib/persisters/persister-partykit-client.js.gz +0 -0
  259. package/lib/persisters/persister-partykit-server.js +1 -1
  260. package/lib/persisters/persister-partykit-server.js.gz +0 -0
  261. package/lib/persisters/persister-powersync.js +1 -0
  262. package/lib/persisters/persister-powersync.js.gz +0 -0
  263. package/lib/persisters/persister-remote.js +1 -1
  264. package/lib/persisters/persister-remote.js.gz +0 -0
  265. package/lib/persisters/persister-sqlite-wasm.js +1 -1
  266. package/lib/persisters/persister-sqlite-wasm.js.gz +0 -0
  267. package/lib/persisters/persister-sqlite3.js +1 -1
  268. package/lib/persisters/persister-sqlite3.js.gz +0 -0
  269. package/lib/persisters/persister-yjs.js +1 -1
  270. package/lib/persisters/persister-yjs.js.gz +0 -0
  271. package/lib/persisters.js +1 -1
  272. package/lib/persisters.js.gz +0 -0
  273. package/lib/queries.js +1 -1
  274. package/lib/queries.js.gz +0 -0
  275. package/lib/relationships.js +1 -1
  276. package/lib/relationships.js.gz +0 -0
  277. package/lib/store.js +1 -1
  278. package/lib/store.js.gz +0 -0
  279. package/lib/synchronizers/synchronizer-local.js +1 -0
  280. package/lib/synchronizers/synchronizer-local.js.gz +0 -0
  281. package/lib/synchronizers/synchronizer-ws-client.js +1 -0
  282. package/lib/synchronizers/synchronizer-ws-client.js.gz +0 -0
  283. package/lib/synchronizers/synchronizer-ws-server.js +1 -0
  284. package/lib/synchronizers/synchronizer-ws-server.js.gz +0 -0
  285. package/lib/synchronizers.js +1 -0
  286. package/lib/synchronizers.js.gz +0 -0
  287. package/lib/tinybase.js +1 -1
  288. package/lib/tinybase.js.gz +0 -0
  289. package/lib/tools.js +1 -1
  290. package/lib/tools.js.gz +0 -0
  291. package/lib/types/checkpoints.d.ts +2 -2
  292. package/lib/types/indexes.d.ts +2 -2
  293. package/lib/types/mergeable-store.d.ts +214 -0
  294. package/lib/types/metrics.d.ts +2 -2
  295. package/lib/types/persisters/persister-automerge.d.ts +11 -7
  296. package/lib/types/persisters/persister-browser.d.ts +13 -4
  297. package/lib/types/persisters/persister-cr-sqlite-wasm.d.ts +4 -0
  298. package/lib/types/persisters/persister-electric-sql.d.ts +4 -0
  299. package/lib/types/persisters/persister-expo-sqlite-next.d.ts +4 -0
  300. package/lib/types/persisters/persister-expo-sqlite.d.ts +4 -0
  301. package/lib/types/persisters/persister-file.d.ts +7 -2
  302. package/lib/types/persisters/persister-indexed-db.d.ts +4 -0
  303. package/lib/types/persisters/persister-libsql.d.ts +142 -0
  304. package/lib/types/persisters/persister-partykit-client.d.ts +4 -0
  305. package/lib/types/persisters/persister-partykit-server.d.ts +12 -8
  306. package/lib/types/persisters/persister-powersync.d.ts +157 -0
  307. package/lib/types/persisters/persister-remote.d.ts +4 -0
  308. package/lib/types/persisters/persister-sqlite-wasm.d.ts +4 -0
  309. package/lib/types/persisters/persister-sqlite3.d.ts +4 -0
  310. package/lib/types/persisters/persister-yjs.d.ts +6 -2
  311. package/lib/types/persisters.d.ts +125 -48
  312. package/lib/types/queries.d.ts +2 -2
  313. package/lib/types/relationships.d.ts +2 -2
  314. package/lib/types/store.d.ts +275 -187
  315. package/lib/types/synchronizers/synchronizer-local.d.ts +27 -0
  316. package/lib/types/synchronizers/synchronizer-ws-client.d.ts +35 -0
  317. package/lib/types/synchronizers/synchronizer-ws-server.d.ts +36 -0
  318. package/lib/types/synchronizers.d.ts +132 -0
  319. package/lib/types/tinybase.d.ts +10 -8
  320. package/lib/types/tools.d.ts +4 -4
  321. package/lib/types/ui-react.d.ts +160 -9
  322. package/lib/types/with-schemas/checkpoints.d.ts +2 -2
  323. package/lib/types/with-schemas/indexes.d.ts +2 -2
  324. package/lib/types/with-schemas/internal/store.d.ts +4 -0
  325. package/lib/types/with-schemas/mergeable-store.d.ts +492 -0
  326. package/lib/types/with-schemas/metrics.d.ts +2 -2
  327. package/lib/types/with-schemas/persisters/persister-automerge.d.ts +12 -8
  328. package/lib/types/with-schemas/persisters/persister-browser.d.ts +17 -8
  329. package/lib/types/with-schemas/persisters/persister-cr-sqlite-wasm.d.ts +5 -1
  330. package/lib/types/with-schemas/persisters/persister-electric-sql.d.ts +5 -1
  331. package/lib/types/with-schemas/persisters/persister-expo-sqlite-next.d.ts +5 -1
  332. package/lib/types/with-schemas/persisters/persister-expo-sqlite.d.ts +5 -1
  333. package/lib/types/with-schemas/persisters/persister-file.d.ts +9 -4
  334. package/lib/types/with-schemas/persisters/persister-indexed-db.d.ts +5 -1
  335. package/lib/types/with-schemas/persisters/persister-libsql.d.ts +155 -0
  336. package/lib/types/with-schemas/persisters/persister-partykit-client.d.ts +5 -1
  337. package/lib/types/with-schemas/persisters/persister-partykit-server.d.ts +15 -11
  338. package/lib/types/with-schemas/persisters/persister-powersync.d.ts +170 -0
  339. package/lib/types/with-schemas/persisters/persister-remote.d.ts +5 -1
  340. package/lib/types/with-schemas/persisters/persister-sqlite-wasm.d.ts +5 -1
  341. package/lib/types/with-schemas/persisters/persister-sqlite3.d.ts +5 -1
  342. package/lib/types/with-schemas/persisters/persister-yjs.d.ts +7 -3
  343. package/lib/types/with-schemas/persisters.d.ts +161 -101
  344. package/lib/types/with-schemas/queries.d.ts +3 -3
  345. package/lib/types/with-schemas/relationships.d.ts +2 -2
  346. package/lib/types/with-schemas/store.d.ts +483 -345
  347. package/lib/types/with-schemas/synchronizers/synchronizer-local.d.ts +29 -0
  348. package/lib/types/with-schemas/synchronizers/synchronizer-ws-client.d.ts +41 -0
  349. package/lib/types/with-schemas/synchronizers/synchronizer-ws-server.d.ts +36 -0
  350. package/lib/types/with-schemas/synchronizers.d.ts +146 -0
  351. package/lib/types/with-schemas/tinybase.d.ts +9 -8
  352. package/lib/types/with-schemas/tools.d.ts +4 -4
  353. package/lib/types/with-schemas/ui-react.d.ts +177 -9
  354. package/lib/ui-react-dom.js +1 -1
  355. package/lib/ui-react-dom.js.gz +0 -0
  356. package/lib/ui-react.js +1 -1
  357. package/lib/ui-react.js.gz +0 -0
  358. package/lib/umd/checkpoints.js +1 -1
  359. package/lib/umd/checkpoints.js.gz +0 -0
  360. package/lib/umd/indexes.js +1 -1
  361. package/lib/umd/indexes.js.gz +0 -0
  362. package/lib/umd/mergeable-store.js +1 -0
  363. package/lib/umd/mergeable-store.js.gz +0 -0
  364. package/lib/umd/metrics.js +1 -1
  365. package/lib/umd/metrics.js.gz +0 -0
  366. package/lib/umd/persisters/persister-automerge.js +1 -1
  367. package/lib/umd/persisters/persister-automerge.js.gz +0 -0
  368. package/lib/umd/persisters/persister-browser.js +1 -1
  369. package/lib/umd/persisters/persister-browser.js.gz +0 -0
  370. package/lib/umd/persisters/persister-cr-sqlite-wasm.js +1 -1
  371. package/lib/umd/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  372. package/lib/umd/persisters/persister-electric-sql.js +1 -1
  373. package/lib/umd/persisters/persister-electric-sql.js.gz +0 -0
  374. package/lib/umd/persisters/persister-expo-sqlite-next.js +1 -1
  375. package/lib/umd/persisters/persister-expo-sqlite-next.js.gz +0 -0
  376. package/lib/umd/persisters/persister-expo-sqlite.js +1 -1
  377. package/lib/umd/persisters/persister-expo-sqlite.js.gz +0 -0
  378. package/lib/umd/persisters/persister-file.js +1 -1
  379. package/lib/umd/persisters/persister-file.js.gz +0 -0
  380. package/lib/umd/persisters/persister-indexed-db.js +1 -1
  381. package/lib/umd/persisters/persister-indexed-db.js.gz +0 -0
  382. package/lib/umd/persisters/persister-libsql.js +1 -0
  383. package/lib/umd/persisters/persister-libsql.js.gz +0 -0
  384. package/lib/umd/persisters/persister-partykit-client.js +1 -1
  385. package/lib/umd/persisters/persister-partykit-client.js.gz +0 -0
  386. package/lib/umd/persisters/persister-partykit-server.js +1 -1
  387. package/lib/umd/persisters/persister-partykit-server.js.gz +0 -0
  388. package/lib/umd/persisters/persister-powersync.js +1 -0
  389. package/lib/umd/persisters/persister-powersync.js.gz +0 -0
  390. package/lib/umd/persisters/persister-remote.js +1 -1
  391. package/lib/umd/persisters/persister-remote.js.gz +0 -0
  392. package/lib/umd/persisters/persister-sqlite-wasm.js +1 -1
  393. package/lib/umd/persisters/persister-sqlite-wasm.js.gz +0 -0
  394. package/lib/umd/persisters/persister-sqlite3.js +1 -1
  395. package/lib/umd/persisters/persister-sqlite3.js.gz +0 -0
  396. package/lib/umd/persisters/persister-yjs.js +1 -1
  397. package/lib/umd/persisters/persister-yjs.js.gz +0 -0
  398. package/lib/umd/persisters.js +1 -1
  399. package/lib/umd/persisters.js.gz +0 -0
  400. package/lib/umd/queries.js +1 -1
  401. package/lib/umd/queries.js.gz +0 -0
  402. package/lib/umd/relationships.js +1 -1
  403. package/lib/umd/relationships.js.gz +0 -0
  404. package/lib/umd/store.js +1 -1
  405. package/lib/umd/store.js.gz +0 -0
  406. package/lib/umd/synchronizers/synchronizer-local.js +1 -0
  407. package/lib/umd/synchronizers/synchronizer-local.js.gz +0 -0
  408. package/lib/umd/synchronizers/synchronizer-ws-client.js +1 -0
  409. package/lib/umd/synchronizers/synchronizer-ws-client.js.gz +0 -0
  410. package/lib/umd/synchronizers/synchronizer-ws-server.js +1 -0
  411. package/lib/umd/synchronizers/synchronizer-ws-server.js.gz +0 -0
  412. package/lib/umd/synchronizers.js +1 -0
  413. package/lib/umd/synchronizers.js.gz +0 -0
  414. package/lib/umd/tinybase.js +1 -1
  415. package/lib/umd/tinybase.js.gz +0 -0
  416. package/lib/umd/tools.js +1 -1
  417. package/lib/umd/tools.js.gz +0 -0
  418. package/lib/umd/ui-react-dom-debug.js +1 -1
  419. package/lib/umd/ui-react-dom-debug.js.gz +0 -0
  420. package/lib/umd/ui-react-dom.js +1 -1
  421. package/lib/umd/ui-react-dom.js.gz +0 -0
  422. package/lib/umd/ui-react.js +1 -1
  423. package/lib/umd/ui-react.js.gz +0 -0
  424. package/lib/umd-es6/checkpoints.js +1 -1
  425. package/lib/umd-es6/checkpoints.js.gz +0 -0
  426. package/lib/umd-es6/indexes.js +1 -1
  427. package/lib/umd-es6/indexes.js.gz +0 -0
  428. package/lib/umd-es6/mergeable-store.js +1 -0
  429. package/lib/umd-es6/mergeable-store.js.gz +0 -0
  430. package/lib/umd-es6/metrics.js +1 -1
  431. package/lib/umd-es6/metrics.js.gz +0 -0
  432. package/lib/umd-es6/persisters/persister-automerge.js +1 -1
  433. package/lib/umd-es6/persisters/persister-automerge.js.gz +0 -0
  434. package/lib/umd-es6/persisters/persister-browser.js +1 -1
  435. package/lib/umd-es6/persisters/persister-browser.js.gz +0 -0
  436. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  437. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  438. package/lib/umd-es6/persisters/persister-electric-sql.js +1 -1
  439. package/lib/umd-es6/persisters/persister-electric-sql.js.gz +0 -0
  440. package/lib/umd-es6/persisters/persister-expo-sqlite-next.js +1 -1
  441. package/lib/umd-es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
  442. package/lib/umd-es6/persisters/persister-expo-sqlite.js +1 -1
  443. package/lib/umd-es6/persisters/persister-expo-sqlite.js.gz +0 -0
  444. package/lib/umd-es6/persisters/persister-file.js +1 -1
  445. package/lib/umd-es6/persisters/persister-file.js.gz +0 -0
  446. package/lib/umd-es6/persisters/persister-indexed-db.js +1 -1
  447. package/lib/umd-es6/persisters/persister-indexed-db.js.gz +0 -0
  448. package/lib/umd-es6/persisters/persister-libsql.js +1 -0
  449. package/lib/umd-es6/persisters/persister-libsql.js.gz +0 -0
  450. package/lib/umd-es6/persisters/persister-partykit-client.js +1 -1
  451. package/lib/umd-es6/persisters/persister-partykit-client.js.gz +0 -0
  452. package/lib/umd-es6/persisters/persister-partykit-server.js +1 -1
  453. package/lib/umd-es6/persisters/persister-partykit-server.js.gz +0 -0
  454. package/lib/umd-es6/persisters/persister-powersync.js +1 -0
  455. package/lib/umd-es6/persisters/persister-powersync.js.gz +0 -0
  456. package/lib/umd-es6/persisters/persister-remote.js +1 -1
  457. package/lib/umd-es6/persisters/persister-remote.js.gz +0 -0
  458. package/lib/umd-es6/persisters/persister-sqlite-wasm.js +1 -1
  459. package/lib/umd-es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  460. package/lib/umd-es6/persisters/persister-sqlite3.js +1 -1
  461. package/lib/umd-es6/persisters/persister-sqlite3.js.gz +0 -0
  462. package/lib/umd-es6/persisters/persister-yjs.js +1 -1
  463. package/lib/umd-es6/persisters/persister-yjs.js.gz +0 -0
  464. package/lib/umd-es6/persisters.js +1 -1
  465. package/lib/umd-es6/persisters.js.gz +0 -0
  466. package/lib/umd-es6/queries.js +1 -1
  467. package/lib/umd-es6/queries.js.gz +0 -0
  468. package/lib/umd-es6/relationships.js +1 -1
  469. package/lib/umd-es6/relationships.js.gz +0 -0
  470. package/lib/umd-es6/store.js +1 -1
  471. package/lib/umd-es6/store.js.gz +0 -0
  472. package/lib/umd-es6/synchronizers/synchronizer-local.js +1 -0
  473. package/lib/umd-es6/synchronizers/synchronizer-local.js.gz +0 -0
  474. package/lib/umd-es6/synchronizers/synchronizer-ws-client.js +1 -0
  475. package/lib/umd-es6/synchronizers/synchronizer-ws-client.js.gz +0 -0
  476. package/lib/umd-es6/synchronizers/synchronizer-ws-server.js +1 -0
  477. package/lib/umd-es6/synchronizers/synchronizer-ws-server.js.gz +0 -0
  478. package/lib/umd-es6/synchronizers.js +1 -0
  479. package/lib/umd-es6/synchronizers.js.gz +0 -0
  480. package/lib/umd-es6/tinybase.js +1 -1
  481. package/lib/umd-es6/tinybase.js.gz +0 -0
  482. package/lib/umd-es6/tools.js +1 -1
  483. package/lib/umd-es6/tools.js.gz +0 -0
  484. package/lib/umd-es6/ui-react-dom-debug.js +1 -1
  485. package/lib/umd-es6/ui-react-dom-debug.js.gz +0 -0
  486. package/lib/umd-es6/ui-react-dom.js +1 -1
  487. package/lib/umd-es6/ui-react-dom.js.gz +0 -0
  488. package/lib/umd-es6/ui-react.js +1 -1
  489. package/lib/umd-es6/ui-react.js.gz +0 -0
  490. package/package.json +65 -45
  491. package/readme.md +2 -2
@@ -1 +1 @@
1
- import{watch as t}from"fs";import{readFile as a,writeFile as e}from"fs/promises";const s="utf8",o=t=>null==t,n=(t,a,e)=>o(t)?e?.():a(t),r=Object,c=t=>r.getPrototypeOf(t),i=r.keys,y=r.freeze,u=t=>(t=>!o(t)&&n(c(t),(t=>t==r.prototype||o(c(t))),(()=>!0)))(t)&&0==(t=>i(t).length)(t),d=JSON.parse,p=t=>new Map(t),w=(t,a)=>t?.get(a),f=(t,a,e)=>{return o(e)?(s=t,n=a,s?.delete(n),t):t?.set(a,e);var s,n},h=(t,a,e)=>{var s,o;return s=t,o=a,s?.has(o)||f(t,a,e()),w(t,a)},l=p(),v=p(),g=(c,i,p)=>((t,a,e,s,r,c,[i,d]=[],p=[])=>{let g,A,S,m=0,L=0;h(l,p,(()=>0)),h(v,p,(()=>[]));const C=async t=>(2!=m&&(m=1,await O.schedule((async()=>{await t(),m=0}))),O),O={load:async(e,s)=>await C((async()=>{try{t.setContent(await a())}catch{t.setContent([e,s])}})),startAutoLoad:async(e={},o={})=>(O.stopAutoLoad(),await O.load(e,o),L=1,S=s((async(e,s)=>{if(s){const a=s();await C((async()=>t.setTransactionChanges(a)))}else await C((async()=>{try{t.setContent(e?.()??await a())}catch(t){c?.(t)}}))})),O),stopAutoLoad:()=>(L&&(r(S),S=void 0,L=0),O),save:async a=>(1!=m&&(m=2,await O.schedule((async()=>{try{await e(t.getContent,a)}catch(t){c?.(t)}m=0}))),O),startAutoSave:async()=>(await O.stopAutoSave().save(),g=t.addDidFinishTransactionListener(((t,a)=>{const[e,s]=a();u(e)&&u(s)||O.save((()=>[e,s]))})),O),stopAutoSave:()=>(n(g,t.delListener),g=void 0,O),schedule:async(...t)=>(((t,...a)=>{t.push(...a)})(w(v,p),...t),await(async()=>{if(!w(l,p)){for(f(l,p,1);!o((t=w(v,p),A=t.shift()));)try{await A()}catch(t){c?.(t)}f(l,p,0)}var t})(),O),getStore:()=>t,destroy:()=>O.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return i&&(O[i]=()=>d),y(O)})(c,(async()=>d(await a(i,s))),(async t=>{return await e(i,(a=t(),JSON.stringify(a,((t,a)=>a instanceof Map?r.fromEntries([...a]):a))),s);var a}),(a=>t(i,(()=>a()))),(t=>t?.close()),p,["getFilePath",i]);export{g as createFilePersister};
1
+ import{watch as t}from"fs";import{readFile as a,writeFile as e}from"fs/promises";const s="utf8",n=t=>null==t,o=(t,a,e)=>n(t)?e?.():a(t),r=Object,i=t=>r.getPrototypeOf(t),c=r.keys,y=r.freeze,g=t=>(t=>!n(t)&&o(i(t),(t=>t==r.prototype||n(i(t))),(()=>!0)))(t)&&0==(t=>c(t).length)(t),u=t=>new Map(t),l=(t,a)=>t?.get(a),d=(t,a,e)=>{return n(e)?(s=t,o=a,s?.delete(o),t):t?.set(a,e);var s,o},p=(t,a,e,s)=>{var n,o;return n=t,o=a,n?.has(o)?s?.(l(t,a)):d(t,a,e()),l(t,a)},v=u(),h=u(),w=(r,i,c)=>((t,a,e,s,r,i,c,u={},w=[])=>{let f,A,C,S=0;p(v,w,(()=>0)),p(h,w,(()=>[]));const[L,b,M,m,O]=((t,a)=>!t||n(a.getMergeableContent)?[0,a.getContent,a.getTransactionChanges,([t,a])=>!g(t)||!g(a),a.setContent]:[1,a.getMergeableContent,a.getTransactionMergeableChanges,([[t],[a]])=>!g(t)||!g(a),a.setDefaultContent])(c,t),T=async t=>(2!=S&&(S=1,await F.schedule((async()=>{await t(),S=0}))),F),D=a=>{var e;(L&&(e=a?.[0],Array.isArray(e))?1===a?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===a?.[2]?t.applyChanges:t.setContent)(a)},F={load:async t=>await T((async()=>{try{D(await a())}catch(a){i?.(a),t&&O(t)}})),startAutoLoad:async t=>(await F.stopAutoLoad().load(t),A=s((async(t,e)=>{const s=e?.();await T((async()=>{try{D(s??t?.()??await a())}catch(t){i?.(t)}}))})),F),stopAutoLoad:()=>(A&&(r(A),A=void 0),F),isAutoLoading:()=>!n(A),save:async t=>(1!=S&&(S=2,await F.schedule((async()=>{try{await e(b,t)}catch(t){i?.(t)}S=0}))),F),startAutoSave:async()=>(await F.stopAutoSave().save(),C=t.addDidFinishTransactionListener((()=>{const t=M();m(t)&&F.save((()=>t))})),F),stopAutoSave:()=>(o(C,t.delListener),C=void 0,F),isAutoSaving:()=>!n(C),schedule:async(...t)=>(((t,...a)=>{t.push(...a)})(l(h,w),...t),await(async()=>{if(!l(v,w)){for(d(v,w,1);!n((t=l(h,w),f=t.shift()));)try{await f()}catch(t){i?.(t)}d(v,w,0)}var t})(),F),getStore:()=>t,destroy:()=>F.stopAutoLoad().stopAutoSave(),getStats:()=>({}),...u};return y(F)})(r,(async()=>{return t=await a(i,s),JSON.parse(t,((t,a)=>""===a?void 0:a));var t}),(async t=>{return await e(i,(a=t(),JSON.stringify(a,((t,a)=>void 0===a?"":a))),s);var a}),(a=>t(i,(()=>a()))),(t=>t?.close()),c,!0,{getFilePath:()=>i});export{w as createFilePersister};
Binary file
@@ -1 +1 @@
1
- const t=Promise,a=clearInterval,e=t=>null==t,s=(t,a,s)=>e(t)?s?.():a(t),n=a=>new t(a),o=async a=>t.all(a),c=(t,a)=>t.map(a),r=(t,...a)=>t.push(...a),i=Object,y=t=>i.getPrototypeOf(t),l=i.entries,d=i.keys,u=i.freeze,w=t=>(t=>!e(t)&&s(y(t),(t=>t==i.prototype||e(y(t))),(()=>!0)))(t)&&0==(t=>d(t).length)(t),v=t=>new Map(t),h=(t,a)=>t?.get(a),p=(t,a,s)=>{return e(s)?(n=t,o=a,n?.delete(o),t):t?.set(a,s);var n,o},g=(t,a,e)=>{var s,n;return s=t,n=a,s?.has(n)||p(t,a,e()),h(t,a)},A=v(),S=v(),f=globalThis.window,b=["t","v"],L={keyPath:"k"},k=async(t,a)=>{const n=((a,e)=>c(l(a),(([a,e])=>C(t,"put",{k:a,v:e}))))(a);c(await C(t,"getAllKeys"),(o=>((t,a)=>!e(((t,a)=>s(t,(t=>t[a])))(t,a)))(a,o)?0:r(n,C(t,"delete",o)))),await o(n)},C=async(t,a,e)=>n(((s,n)=>{const o=t[a](e);o.onsuccess=()=>s(o.result),o.onerror=()=>n(`objectStore.${a} error`)})),j=(t,y,l=1,d)=>{const v=async(t,a=[],e=0)=>n(((s,n)=>{const r=f.indexedDB.open(y,e?2:void 0);r.onupgradeneeded=()=>e&&c(b,(t=>{try{r.result.createObjectStore(t,L)}catch{}})),r.onsuccess=async()=>{try{const e=r.result.transaction(b,"readwrite"),n=await o(c(b,(async(s,n)=>await t(e.objectStore(s),a[n]))));r.result.close(),s(n)}catch(t){r.result.close(),n(t)}},r.onerror=()=>n("indexedDB.open error")}));return((t,a,n,o,c,i,[y,l]=[],d=[])=>{let v,f,b,L=0,k=0;g(A,d,(()=>0)),g(S,d,(()=>[]));const C=async t=>(2!=L&&(L=1,await j.schedule((async()=>{await t(),L=0}))),j),j={load:async(e,s)=>await C((async()=>{try{t.setContent(await a())}catch{t.setContent([e,s])}})),startAutoLoad:async(e={},s={})=>(j.stopAutoLoad(),await j.load(e,s),k=1,b=o((async(e,s)=>{if(s){const a=s();await C((async()=>t.setTransactionChanges(a)))}else await C((async()=>{try{t.setContent(e?.()??await a())}catch(t){i?.(t)}}))})),j),stopAutoLoad:()=>(k&&(c(b),b=void 0,k=0),j),save:async a=>(1!=L&&(L=2,await j.schedule((async()=>{try{await n(t.getContent,a)}catch(t){i?.(t)}L=0}))),j),startAutoSave:async()=>(await j.stopAutoSave().save(),v=t.addDidFinishTransactionListener(((t,a)=>{const[e,s]=a();w(e)&&w(s)||j.save((()=>[e,s]))})),j),stopAutoSave:()=>(s(v,t.delListener),v=void 0,j),schedule:async(...t)=>(r(h(S,d),...t),await(async()=>{if(!h(A,d)){for(p(A,d,1);!e((t=h(S,d),f=t.shift()));)try{await f()}catch(t){i?.(t)}p(A,d,0)}var t})(),j),getStore:()=>t,destroy:()=>j.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return y&&(j[y]=()=>l),u(j)})(t,(async()=>await v((async t=>((t=[])=>i.fromEntries(t))(c(await C(t,"getAll"),(({k:t,v:a})=>[t,a])))))),(async t=>await v((async(t,a)=>await k(t,a)),t(),1)),(t=>setInterval(t,1e3*l)),(t=>a(t)),d,["getDbName",y])};export{j as createIndexedDbPersister,k as objectStoreMatch};
1
+ const t=Promise,e=clearInterval,a=t=>null==t,s=(t,e,s)=>a(t)?s?.():e(t),n=e=>new t(e),o=async e=>t.all(e),r=(t,e)=>t.map(e),c=(t,...e)=>t.push(...e),i=Object,l=t=>i.getPrototypeOf(t),y=i.entries,d=i.keys,u=i.freeze,g=t=>(t=>!a(t)&&s(l(t),(t=>t==i.prototype||a(l(t))),(()=>!0)))(t)&&0==(t=>d(t).length)(t),w=t=>new Map(t),p=(t,e)=>t?.get(e),h=(t,e,s)=>{return a(s)?(n=t,o=e,n?.delete(o),t):t?.set(e,s);var n,o},v=(t,e,a,s)=>{var n,o;return n=t,o=e,n?.has(o)?s?.(p(t,e)):h(t,e,a()),p(t,e)},A=w(),b=w(),C=globalThis.window,S=["t","v"],f={keyPath:"k"},L=async(t,e)=>{const a=((e,a)=>r(y(e),(([e,a])=>D(t,"put",{k:e,v:a}))))(e);r(await D(t,"getAllKeys"),(s=>((t,e)=>e in t)(e,s)?0:c(a,D(t,"delete",s)))),await o(a)},D=async(t,e,a)=>n(((s,n)=>{const o=t[e](a);o.onsuccess=()=>s(o.result),o.onerror=()=>n(`objectStore.${e} error`)})),M=(t,l,y=1,d)=>{const w=async(t,e=[],a=0)=>n(((s,n)=>{const c=(C?C.indexedDB:indexedDB).open(l,a?2:void 0);c.onupgradeneeded=()=>a&&r(S,(t=>{try{c.result.createObjectStore(t,f)}catch{}})),c.onsuccess=async()=>{try{const a=c.result.transaction(S,"readwrite"),n=await o(r(S,(async(s,n)=>await t(a.objectStore(s),e[n]))));c.result.close(),s(n)}catch(t){c.result.close(),n(t)}},c.onerror=()=>n("indexedDB.open error")}));return((t,e,n,o,r,i,l,y={},d=[])=>{let w,C,S,f=0;v(A,d,(()=>0)),v(b,d,(()=>[]));const[L,D,M,k,j]=((t,e)=>!t||a(e.getMergeableContent)?[0,e.getContent,e.getTransactionChanges,([t,e])=>!g(t)||!g(e),e.setContent]:[1,e.getMergeableContent,e.getTransactionMergeableChanges,([[t],[e]])=>!g(t)||!g(e),e.setDefaultContent])(l,t),m=async t=>(2!=f&&(f=1,await T.schedule((async()=>{await t(),f=0}))),T),x=e=>{var a;(L&&(a=e?.[0],Array.isArray(a))?1===e?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},T={load:async t=>await m((async()=>{try{x(await e())}catch(e){i?.(e),t&&j(t)}})),startAutoLoad:async t=>(await T.stopAutoLoad().load(t),C=o((async(t,a)=>{const s=a?.();await m((async()=>{try{x(s??t?.()??await e())}catch(t){i?.(t)}}))})),T),stopAutoLoad:()=>(C&&(r(C),C=void 0),T),isAutoLoading:()=>!a(C),save:async t=>(1!=f&&(f=2,await T.schedule((async()=>{try{await n(D,t)}catch(t){i?.(t)}f=0}))),T),startAutoSave:async()=>(await T.stopAutoSave().save(),S=t.addDidFinishTransactionListener((()=>{const t=M();k(t)&&T.save((()=>t))})),T),stopAutoSave:()=>(s(S,t.delListener),S=void 0,T),isAutoSaving:()=>!a(S),schedule:async(...t)=>(c(p(b,d),...t),await(async()=>{if(!p(A,d)){for(h(A,d,1);!a((t=p(b,d),w=t.shift()));)try{await w()}catch(t){i?.(t)}h(A,d,0)}var t})(),T),getStore:()=>t,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({}),...y};return u(T)})(t,(async()=>await w((async t=>((t=[])=>i.fromEntries(t))(r(await D(t,"getAll"),(({k:t,v:e})=>[t,e])))))),(async t=>await w((async(t,e)=>await L(t,e)),t(),1)),(t=>setInterval(t,1e3*y)),(t=>e(t)),d,!1,{getDbName:()=>l})};export{M as createIndexedDbPersister,L as objectStoreMatch};
@@ -0,0 +1 @@
1
+ const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i=(a,t)=>a.repeat(t),c=Promise,o=clearInterval,r=a=>null==a,l=(a,t,e)=>r(a)?e?.():t(a),w=t=>a(t)==s,y=a=>Array.isArray(a),u=(a,t,e)=>a.slice(t,e),d=a=>a.length,E=async a=>c.all(a),p="_",g="_id",v=a=>`"${a.replace(/"/g,'""')}"`,m="SELECT",A=(a,t="")=>a.join(t),C=(a,t)=>a.map(t),h=a=>0==d(a),T=(a,t)=>a.filter(t),f=(a,...t)=>a.push(...t),N=(a,t)=>a?.has(t)??!1,O=a=>[...a?.values()??[]],L=(a,t)=>a?.delete(t),R=Object,S=a=>R.getPrototypeOf(a),b=R.entries,D=R.keys,I=R.freeze,M=(a=[])=>R.fromEntries(a),P=(...a)=>R.assign({},...a),_=(a,t)=>t in a,F=(a,t)=>C(b(a),(([a,e])=>t(e,a))),j=a=>R.values(a),x=a=>d(D(a)),B=a=>(a=>!r(a)&&l(S(a),(a=>a==R.prototype||r(S(a))),(()=>!0)))(a)&&0==x(a),H=a=>new Map(a),Y=a=>[...a?.keys()??[]],$=(a,t)=>a?.get(t),k=(a,t)=>C([...a?.entries()??[]],(([a,e])=>t(e,a))),G=(a,t,e)=>r(e)?(L(a,t),a):a?.set(t,e),J=(a,t,e,n)=>(N(a,t)?n?.($(a,t)):G(a,t,e()),$(a,t)),U=(a,t,e,n=G)=>(F(t,((t,n)=>e(a,n,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>_(t,e)?0:n(a,e))),a),W=a=>new Set(y(a)||r(a)?a:[a]),q=(a,t)=>a?.add(t),z="TABLE",K="ALTER "+z,V="DELETE FROM",Q=m+"*FROM",X="FROM pragma_table_",Z="WHERE",aa=(a,t,s,i)=>{const c=H();return[async()=>U(c,M(await E(C(await a("SELECT name "+X+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+ea(t)+")ORDER BY name",t),(async({name:t})=>[t,M(C(await a(m+" name,type "+X+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>G(c,t,U(J(c,t,H),e,((a,t,e)=>{e!=$(a,t)&&G(a,t,e)}),((a,t)=>G(a,t))))),((a,t)=>G(c,t))),async(t,e)=>((a,t)=>!r($($(c,a),t)))(t,e)?M(T(C(await a(Q+v(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!r(a)&&!B(t)))):{},async(t,s,o,l,w,y=!1)=>{const u=W();F(o??{},(a=>C(D(a??{}),(a=>q(u,a)))));const d=O(u);if(!y&&w&&h(d)&&N(c,t))return await a("DROP "+z+v(t)),void G(c,t);if(h(d)||N(c,t)){const n=$(c,t),i=W(Y(n));await E([...C(d,(async s=>{L(i,s)||(await a(K+v(t)+"ADD"+v(s)),G(n,s,e))})),...!y&&l?C(O(i),(async e=>{e!=s&&(await a(K+v(t)+"DROP"+v(e)),G(n,e))})):[]])}else await a("CREATE "+z+v(t)+"("+v(s)+` PRIMARY KEY ON CONFLICT REPLACE${A(C(d,(a=>n+v(a))))});`),G(c,t,H([[s,e],...C(d,(a=>[a,e]))]));if(y)r(o)?await a(V+v(t)+Z+" 1"):await E(F(o,(async(e,n)=>{r(e)?await a(V+v(t)+Z+v(s)+"=?",[n]):h(d)||await ta(a,t,s,D(e),[n,...j(e)],i)})));else if(h(d))N(c,t)&&await a(V+v(t)+Z+" 1");else{const e=T(Y($(c,t)),(a=>a!=s)),n=[],r=[];F(o??{},((a,t)=>{f(n,t,...C(e,(t=>a?.[t]))),f(r,t)})),await ta(a,t,s,e,n,i),await a(V+v(t)+Z+v(s)+"NOT IN("+ea(r)+")",r)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},ta=async(a,t,s,c,o,r=!0)=>await a("INSERT "+(r?e:"OR REPLACE ")+"INTO"+v(t)+"("+v(s)+A(C(c,(a=>n+v(a))))+")VALUES"+u(i(`,(?${i(",?",d(c))})`,d(o)/(d(c)+1)),1)+(r?"ON CONFLICT("+v(s)+")DO UPDATE SET"+A(C(c,(a=>v(a)+"=excluded."+v(a))),n):e),C(o,(a=>a??null))),ea=a=>A(C(a,(()=>"?")),n),na=JSON.parse,sa=H(),ia=H(),ca=(a,t,e,n,s,i,c,o={},w=[])=>{let u,d,E,p=0;J(sa,w,(()=>0)),J(ia,w,(()=>[]));const[g,v,m,A,C]=((a,t)=>!a||r(t.getMergeableContent)?[0,t.getContent,t.getTransactionChanges,([a,t])=>!B(a)||!B(t),t.setContent]:[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!B(a)||!B(t),t.setDefaultContent])(c,a),h=async a=>(2!=p&&(p=1,await N.schedule((async()=>{await a(),p=0}))),N),T=t=>{(g&&y(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},N={load:async a=>await h((async()=>{try{T(await t())}catch(t){i?.(t),a&&C(a)}})),startAutoLoad:async a=>(await N.stopAutoLoad().load(a),d=n((async(a,e)=>{const n=e?.();await h((async()=>{try{T(n??a?.()??await t())}catch(a){i?.(a)}}))})),N),stopAutoLoad:()=>(d&&(s(d),d=void 0),N),isAutoLoading:()=>!r(d),save:async a=>(1!=p&&(p=2,await N.schedule((async()=>{try{await e(v,a)}catch(a){i?.(a)}p=0}))),N),startAutoSave:async()=>(await N.stopAutoSave().save(),E=a.addDidFinishTransactionListener((()=>{const a=m();A(a)&&N.save((()=>a))})),N),stopAutoSave:()=>(l(E,a.delListener),E=void 0,N),isAutoSaving:()=>!r(E),schedule:async(...a)=>(f($(ia,w),...a),await(async()=>{if(!$(sa,w)){for(G(sa,w,1);!r((a=$(ia,w),u=a.shift()));)try{await u()}catch(a){i?.(a)}G(sa,w,0)}var a})(),N),getStore:()=>a,destroy:()=>N.stopAutoLoad().stopAutoSave(),getStats:()=>({}),...o};return I(N)},oa="store",ra=(a,t,e,n,s,[i],c,o,r,l)=>{const[w,y,u,d]=aa(t,c,s,l);return ca(a,(async()=>await d((async()=>(await w(),na((await y(i,g))[p]?.[oa]??"null"))))),(async a=>await d((async()=>{var t;await w(),await u(i,g,{[p]:{[oa]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?R.fromEntries([...t]):t)))}},!0,!0)}))),e,n,s,!1,{[r]:()=>o},o)},la=(a,t,e,n,s,[i,c,[o,l,w]],y,u,d,v)=>{const[m,A,C,h]=aa(t,y,s,v),f=async(a,t)=>await E(k(c,(async([e,n,s,i],c)=>{t&&!_(a,c)||await C(e,n,a[c],s,i,t)}))),N=async(a,t)=>l?await C(w,g,{[p]:a},!0,!0,t):null;return ca(a,(async()=>await h((async()=>{await m();const a=await(async()=>M(T(await E(k(i,(async([a,t],e)=>[a,await A(e,t)]))),(a=>!B(a[1])))))(),t=await(async()=>o?(await A(w,g))[p]:{})();return B(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await h((async()=>{if(await m(),r(t)){const[t,e]=a();await f(t),await N(e)}else{const[a,e]=t();await f(a,!0),await N(e,!0)}}))),e,n,s,!1,{[d]:()=>u},u)},wa="json",ya="autoLoadIntervalSeconds",ua="rowIdColumnName",da="tableId",Ea="tableName",pa={mode:wa,[ya]:1},ga={load:0,save:0,[Ea]:t+"_values"},va=(a,t,e,n)=>{const s=H();return F(a,((a,i)=>{const c=u(j(P(t,w(a)?{[e]:a}:a)),0,x(t));r(c[0])||n(i,c[0])||G(s,i,c)})),s},ma="pragma ",Aa="data_version",Ca="schema_version",ha=(a,e,n,s,i,c,r,l,y="getDb",d)=>{let E,p,v;const[A,C,h,T]=(a=>{const e=(a=>P(pa,w(a)?{storeTableName:a}:a??{}))(a),n=e[ya];if(e.mode==wa){const{storeTableName:a=t}=e;return[1,n,[a],W(a)]}const{tables:{load:s={},save:i={}}={},values:c={}}=e,o=u(j(P(ga,c)),0,x(ga)),r=o[2],l=W(r);return[0,n,[va(s,{[da]:null,[ua]:g},da,(a=>q(l,a)&&a==r)),va(i,{[Ea]:null,[ua]:g,deleteEmptyColumns:0,deleteEmptyTable:0},Ea,((a,t)=>q(l,t)&&t==r)),o],l]})(e);return(A?ra:la)(a,c?async(a,t)=>(c(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const t=(await n(ma+Aa))[0][Aa],e=(await n(ma+Ca))[0][Ca],s=(await n(m+" TOTAL_CHANGES() c"))[0].c;t==(E??=t)&&e==(p??=e)&&s==(v??=s)||(a(),E=t,p=e)}catch{}},e=C,t(),setInterval(t,1e3*e)),s((t=>T.has(t)?a():0))];var t,e}),(([a,t])=>{o(a),E=p=null,i(t)}),r,h,O(T),l,y,d)},Ta=(a,t,e,n,s)=>ha(a,e,(async(a,e=[])=>(await t.execute({sql:a,args:e})).rows),(()=>()=>0),(a=>a()),n,s,t,"getClient");export{Ta as createLibSqlPersister};
@@ -1 +1 @@
1
- const t=t=>typeof t,a="",e=t(a),s=t=>null==t,o=(t,a,e)=>s(t)?e?.():a(t),n=a=>t(a)==e,r=t=>t.length,c=Object,i=t=>c.getPrototypeOf(t),y=c.keys,d=c.freeze,h=t=>(t=>!s(t)&&o(i(t),(t=>t==c.prototype||s(i(t))),(()=>!0)))(t)&&0==(t=>r(y(t)))(t),v=t=>JSON.stringify(t,((t,a)=>a instanceof Map?c.fromEntries([...a]):a)),p=JSON.parse,u="/store",w=t=>new Map(t),l=(t,a)=>t?.get(a),f=(t,a,e)=>{return s(e)?(o=t,n=a,o?.delete(n),t):t?.set(a,e);var o,n},g=(t,a,e)=>{var s,o;return s=t,o=a,s?.has(o)||f(t,a,e()),l(t,a)},S=w(),m=w(),A="message",L=(t,e,c,i)=>{const{host:y,room:w}=e.partySocketOptions,{storeProtocol:L="https",storePath:C=u,messagePrefix:P=a}={...n(c)?{storeProtocol:c}:c},O=L+"://"+y+"/parties/"+e.name+"/"+w+C,E=async t=>await(await fetch(O,{...t?{method:"PUT",body:v(t)}:{},mode:"cors",cache:"no-store"})).json();return((t,a,e,n,r,c,[i,y]=[],v=[])=>{let p,u,w,A=0,L=0;g(S,v,(()=>0)),g(m,v,(()=>[]));const C=async t=>(2!=A&&(A=1,await P.schedule((async()=>{await t(),A=0}))),P),P={load:async(e,s)=>await C((async()=>{try{t.setContent(await a())}catch{t.setContent([e,s])}})),startAutoLoad:async(e={},s={})=>(P.stopAutoLoad(),await P.load(e,s),L=1,w=n((async(e,s)=>{if(s){const a=s();await C((async()=>t.setTransactionChanges(a)))}else await C((async()=>{try{t.setContent(e?.()??await a())}catch(t){c?.(t)}}))})),P),stopAutoLoad:()=>(L&&(r(w),w=void 0,L=0),P),save:async a=>(1!=A&&(A=2,await P.schedule((async()=>{try{await e(t.getContent,a)}catch(t){c?.(t)}A=0}))),P),startAutoSave:async()=>(await P.stopAutoSave().save(),p=t.addDidFinishTransactionListener(((t,a)=>{const[e,s]=a();h(e)&&h(s)||P.save((()=>[e,s]))})),P),stopAutoSave:()=>(o(p,t.delListener),p=void 0,P),schedule:async(...t)=>(((t,...a)=>{t.push(...a)})(l(m,v),...t),await(async()=>{if(!l(S,v)){for(f(S,v,1);!s((t=l(m,v),u=t.shift()));)try{await u()}catch(t){c?.(t)}f(S,v,0)}var t})(),P),getStore:()=>t,destroy:()=>P.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return i&&(P[i]=()=>y),d(P)})(t,(async()=>await E()),(async(t,a)=>{var s,o;a?e.send((s=P,o=a(),s+"s"+(n(o)?o:v(o)))):await E(t())}),(t=>{const a=a=>o(((t,a,e)=>{const s=r(t);return((t,a)=>t.startsWith(a))(a,t)?[a[s],p((o=a,n=s+1,o.slice(n,void 0)))]:void 0;var o,n})(P,a.data),(([a,e])=>{"s"==a&&t(void 0,(()=>e))}));return e.addEventListener(A,a),a}),(t=>{e.removeEventListener(A,t)}),i,["getConnection",e])};export{L as createPartyKitPersister};
1
+ const t=t=>typeof t,e="",a=t(e),s=t=>null==t,o=(t,e,a)=>s(t)?a?.():e(t),n=e=>t(e)==a,r=t=>t.length,i=Object,c=t=>i.getPrototypeOf(t),y=i.keys,d=i.freeze,g=t=>(t=>!s(t)&&o(c(t),(t=>t==i.prototype||s(c(t))),(()=>!0)))(t)&&0==(t=>r(y(t)))(t),h=t=>JSON.stringify(t,((t,e)=>e instanceof Map?i.fromEntries([...e]):e)),p=JSON.parse,l="/store",u=t=>new Map(t),v=(t,e)=>t?.get(e),w=(t,e,a)=>{return s(a)?(o=t,n=e,o?.delete(n),t):t?.set(e,a);var o,n},f=(t,e,a,s)=>{var o,n;return o=t,n=e,o?.has(n)?s?.(v(t,e)):w(t,e,a()),v(t,e)},A=u(),C=u(),S="message",L=(t,a,i,c)=>{const{host:y,room:u}=a.partySocketOptions,{storeProtocol:L="https",storePath:m=l,messagePrefix:b=e}={...n(i)?{storeProtocol:i}:i},M=L+"://"+y+"/parties/"+a.name+"/"+u+m,P=async t=>await(await fetch(M,{...t?{method:"PUT",body:h(t)}:{},mode:"cors",cache:"no-store"})).json();return((t,e,a,n,r,i,c,y={},h=[])=>{let p,l,u,S=0;f(A,h,(()=>0)),f(C,h,(()=>[]));const[L,m,b,M,P]=((t,e)=>!t||s(e.getMergeableContent)?[0,e.getContent,e.getTransactionChanges,([t,e])=>!g(t)||!g(e),e.setContent]:[1,e.getMergeableContent,e.getTransactionMergeableChanges,([[t],[e]])=>!g(t)||!g(e),e.setDefaultContent])(c,t),O=async t=>(2!=S&&(S=1,await E.schedule((async()=>{await t(),S=0}))),E),T=e=>{var a;(L&&(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 O((async()=>{try{T(await e())}catch(e){i?.(e),t&&P(t)}})),startAutoLoad:async t=>(await E.stopAutoLoad().load(t),l=n((async(t,a)=>{const s=a?.();await O((async()=>{try{T(s??t?.()??await e())}catch(t){i?.(t)}}))})),E),stopAutoLoad:()=>(l&&(r(l),l=void 0),E),isAutoLoading:()=>!s(l),save:async t=>(1!=S&&(S=2,await E.schedule((async()=>{try{await a(m,t)}catch(t){i?.(t)}S=0}))),E),startAutoSave:async()=>(await E.stopAutoSave().save(),u=t.addDidFinishTransactionListener((()=>{const t=b();M(t)&&E.save((()=>t))})),E),stopAutoSave:()=>(o(u,t.delListener),u=void 0,E),isAutoSaving:()=>!s(u),schedule:async(...t)=>(((t,...e)=>{t.push(...e)})(v(C,h),...t),await(async()=>{if(!v(A,h)){for(w(A,h,1);!s((t=v(C,h),p=t.shift()));)try{await p()}catch(t){i?.(t)}w(A,h,0)}var t})(),E),getStore:()=>t,destroy:()=>E.stopAutoLoad().stopAutoSave(),getStats:()=>({}),...y};return d(E)})(t,(async()=>await P()),(async(t,e)=>{var s,o;e?a.send((s=b,o=e(),s+"s"+(n(o)?o:h(o)))):await P(t())}),(t=>{const e=e=>o(((t,e,a)=>{const s=r(t);return((t,e)=>t.startsWith(e))(e,t)?[e[s],p((o=e,n=s+1,o.slice(n,void 0)))]:void 0;var o,n})(b,e.data),(([e,a])=>{"s"==e&&t(void 0,(()=>a))}));return a.addEventListener(S,e),e}),(t=>{a.removeEventListener(S,t)}),c,!1,{getConnection:()=>a})};export{L as createPartyKitPersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t=a(""),e="t",s=(a,t)=>a.startsWith(t),n=Promise,i=a=>null==a,r=(a,t,e)=>i(a)?e?.():t(a),c=(a,t,e)=>a.slice(t,e),o=a=>a.length,l=async a=>n.all(a),w=(a,t)=>a.map(t),h=(a,...t)=>a.push(...t),y=Object,g=y.entries,f=(a=[])=>y.fromEntries(a),u=(a,t)=>w(g(a),(([a,e])=>t(e,a))),p=(a,t,e)=>(((a,t)=>!i(((a,t)=>r(a,(a=>a[t])))(a,t)))(a,t)||(a[t]=e()),a[t]),S=a=>JSON.stringify(a,((a,t)=>t instanceof Map?y.fromEntries([...t]):t)),d=JSON.parse,P=(e,s,n)=>e+s+(a(n)==t?n:S(n)),m=(a,t,e)=>{const n=o(a);return s(t,a)?[t[n],(e?d:String)(c(t,n+1))]:void 0},x=(a,t)=>((a,t)=>a?.forEach(t))(a,((a,e)=>t(e,a))),D="hasStore",R=f(w(["Origin","Methods","Headers"],(a=>["Access-Control-Allow-"+a,"*"]))),b=async(a,t="")=>!!await a.get(t+D),C=async(a,t="")=>{const s={},n={};return x(await a.list(),((a,i)=>r(m(t,a),(([a,t])=>{if(a==e){const[a,e,n]=d("["+t+"]");p(p(s,a,f),e,f)[n]=i}else"v"==a&&(n[t]=i)})))),[s,n]},T=async(a,t,e)=>a.party.broadcast(P(a.config.messagePrefix,"s",t),e),v=async(a,t,n,r)=>{const c=a.party.storage,w=a.config.storagePrefix,y={[w+D]:1},g=[],f=[];await l(u(t[0],(async(t,s)=>i(t)?!n&&await a.canDelTable(s,r)&&((a,...t)=>a.unshift(...t))(f,O(w,e,s)):await a.canSetTable(s,n,r)&&await l(u(t,(async(t,o)=>i(t)?!n&&await a.canDelRow(s,o,r)&&h(f,O(w,e,s,o)):await a.canSetRow(s,o,n,r)&&await l(u(t,(async(t,l)=>{const f=[s,o,l],u=O(w,e,...f);i(t)?!n&&await a.canDelCell(...f,r)&&h(g,u):await a.canSetCell(...f,t,n,r,await c.get(u))&&(y[u]=t)}))))))))),await l(u(t[1],(async(t,e)=>{const s=w+"v"+e;i(t)?!n&&await a.canDelValue(e,r)&&h(g,s):await a.canSetValue(e,t,n,r,await c.get(s))&&(y[s]=t)}))),0!=o(f)&&x(await c.list(),(a=>f.every((t=>!s(a,t)||h(g,a)&&0)))),await c.delete(g),await c.put(y)},O=(a,t,...e)=>P(a,t,c(S(e),1,-1)),V=async(a,t,e=null)=>new Response(e,{status:t,headers:a.config.responseHeaders});class E{constructor(a){this.party=a,this.config={},this.config.storePath??="/store",this.config.messagePrefix??="",this.config.storagePrefix??="",this.config.responseHeaders??=R}async onRequest(a){const{party:{storage:t},config:{storePath:e,storagePrefix:s}}=this;if(new URL(a.url).pathname.endsWith(e)){const e=await b(t,s),n=await a.text();return"PUT"==a.method?e?V(this,205):(await v(this,d(n),!0,a),V(this,201)):V(this,200,e?S(await C(t,s)):"")}return V(this,404)}async onMessage(a,t){const{config:{messagePrefix:e,storagePrefix:s}}=this;await r(m(e,a,1),(async([a,e])=>{"s"==a&&await b(this.party.storage,s)&&(await v(this,e,!1,t),T(this,e,[t.id]))}))}async canSetTable(a,t,e){return!0}async canDelTable(a,t){return!0}async canSetRow(a,t,e,s){return!0}async canDelRow(a,t,e){return!0}async canSetCell(a,t,e,s,n,i,r){return!0}async canDelCell(a,t,e,s){return!0}async canSetValue(a,t,e,s,n){return!0}async canDelValue(a,t){return!0}}export{E as TinyBasePartyKitServer,T as broadcastTransactionChanges,b as hasStoreInStorage,C as loadStoreFromStorage};
1
+ const a=a=>typeof a,t=a(""),e="t",s=(a,t)=>a.startsWith(t),n=Promise,i=a=>null==a,r=(a,t,e)=>i(a)?e?.():t(a),c=(a,t,e)=>a.slice(t,e),o=a=>a.length,l=async a=>n.all(a),w=(a,t)=>a.map(t),h=(a,...t)=>a.push(...t),y=Object,g=y.entries,f=(a=[])=>y.fromEntries(a),u=(a,t)=>w(g(a),(([a,e])=>t(e,a))),p=(a,t,e)=>(((a,t)=>t in a)(a,t)||(a[t]=e()),a[t]),S=a=>JSON.stringify(a,((a,t)=>t instanceof Map?y.fromEntries([...t]):t)),d=JSON.parse,P=(e,s,n)=>e+s+(a(n)==t?n:S(n)),m=(a,t,e)=>{const n=o(a);return s(t,a)?[t[n],(e?d:String)(c(t,n+1))]:void 0},x=(a,t)=>((a,t)=>a?.forEach(t))(a,((a,e)=>t(e,a))),D="hasStore",R=f(w(["Origin","Methods","Headers"],(a=>["Access-Control-Allow-"+a,"*"]))),b=async(a,t="")=>!!await a.get(t+D),C=async(a,t="")=>{const s={},n={};return x(await a.list(),((a,i)=>r(m(t,a),(([a,t])=>{if(a==e){const[a,e,n]=d("["+t+"]");p(p(s,a,f),e,f)[n]=i}else"v"==a&&(n[t]=i)})))),[s,n]},T=async(a,t,e)=>a.party.broadcast(P(a.config.messagePrefix,"s",t),e),v=async(a,t,n,r)=>{const c=a.party.storage,w=a.config.storagePrefix,y={[w+D]:1},g=[],f=[];await l(u(t[0],(async(t,s)=>i(t)?!n&&await a.canDelTable(s,r)&&((a,...t)=>a.unshift(...t))(f,O(w,e,s)):await a.canSetTable(s,n,r)&&await l(u(t,(async(t,o)=>i(t)?!n&&await a.canDelRow(s,o,r)&&h(f,O(w,e,s,o)):await a.canSetRow(s,o,n,r)&&await l(u(t,(async(t,l)=>{const f=[s,o,l],u=O(w,e,...f);i(t)?!n&&await a.canDelCell(...f,r)&&h(g,u):await a.canSetCell(...f,t,n,r,await c.get(u))&&(y[u]=t)}))))))))),await l(u(t[1],(async(t,e)=>{const s=w+"v"+e;i(t)?!n&&await a.canDelValue(e,r)&&h(g,s):await a.canSetValue(e,t,n,r,await c.get(s))&&(y[s]=t)}))),0!=o(f)&&x(await c.list(),(a=>f.every((t=>!s(a,t)||h(g,a)&&0)))),await c.delete(g),await c.put(y)},O=(a,t,...e)=>P(a,t,c(S(e),1,-1)),V=async(a,t,e=null)=>new Response(e,{status:t,headers:a.config.responseHeaders});class E{constructor(a){this.party=a,this.config={},this.config.storePath??="/store",this.config.messagePrefix??="",this.config.storagePrefix??="",this.config.responseHeaders??=R}async onRequest(a){const{party:{storage:t},config:{storePath:e,storagePrefix:s}}=this;if(new URL(a.url).pathname.endsWith(e)){const e=await b(t,s),n=await a.text();return"PUT"==a.method?e?V(this,205):(await v(this,d(n),!0,a),V(this,201)):V(this,200,e?S(await C(t,s)):"")}return V(this,404)}async onMessage(a,t){const{config:{messagePrefix:e,storagePrefix:s}}=this;await r(m(e,a,1),(async([a,e])=>{"s"==a&&await b(this.party.storage,s)&&(await v(this,e,!1,t),T(this,e,[t.id]))}))}async canSetTable(a,t,e){return!0}async canDelTable(a,t){return!0}async canSetRow(a,t,e,s){return!0}async canDelRow(a,t,e){return!0}async canSetCell(a,t,e,s,n,i,r){return!0}async canDelCell(a,t,e,s){return!0}async canSetValue(a,t,e,s,n){return!0}async canDelValue(a,t){return!0}}export{E as TinyBasePartyKitServer,T as broadcastChanges,b as hasStoreInStorage,C as loadStoreFromStorage};
@@ -0,0 +1 @@
1
+ const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i=(a,t)=>a.repeat(t),o=Promise,c=clearInterval,r=a=>null==a,l=(a,t,e)=>r(a)?e?.():t(a),w=t=>a(t)==s,y=a=>Array.isArray(a),u=(a,t,e)=>a.slice(t,e),d=a=>a.length,E=async a=>o.all(a),g="_",p="_id",v=a=>`"${a.replace(/"/g,'""')}"`,m="SELECT",A=(a,t="")=>a.join(t),h=(a,t)=>a.map(t),C=a=>0==d(a),T=(a,t)=>a.filter(t),f=(a,...t)=>a.push(...t),N=(a,t)=>a?.has(t)??!1,b=a=>[...a?.values()??[]],O=(a,t)=>a?.delete(t),L=Object,R=a=>L.getPrototypeOf(a),S=L.entries,D=L.keys,I=L.freeze,M=(a=[])=>L.fromEntries(a),P=(...a)=>L.assign({},...a),_=(a,t)=>t in a,F=(a,t)=>h(S(a),(([a,e])=>t(e,a))),j=a=>L.values(a),x=a=>d(D(a)),B=a=>(a=>!r(a)&&l(R(a),(a=>a==L.prototype||r(R(a))),(()=>!0)))(a)&&0==x(a),H=a=>new Map(a),Y=a=>[...a?.keys()??[]],$=(a,t)=>a?.get(t),k=(a,t)=>h([...a?.entries()??[]],(([a,e])=>t(e,a))),G=(a,t,e)=>r(e)?(O(a,t),a):a?.set(t,e),J=(a,t,e,n)=>(N(a,t)?n?.($(a,t)):G(a,t,e()),$(a,t)),U=(a,t,e,n=G)=>(F(t,((t,n)=>e(a,n,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>_(t,e)?0:n(a,e))),a),W=a=>new Set(y(a)||r(a)?a:[a]),z=(a,t)=>a?.add(t),K="TABLE",V="ALTER "+K,q="DELETE FROM",Q=m+"*FROM",X="FROM pragma_table_",Z="WHERE",aa=(a,t,s,i)=>{const o=H();return[async()=>U(o,M(await E(h(await a("SELECT name "+X+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+ea(t)+")ORDER BY name",t),(async({name:t})=>[t,M(h(await a(m+" name,type "+X+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>G(o,t,U(J(o,t,H),e,((a,t,e)=>{e!=$(a,t)&&G(a,t,e)}),((a,t)=>G(a,t))))),((a,t)=>G(o,t))),async(t,e)=>((a,t)=>!r($($(o,a),t)))(t,e)?M(T(h(await a(Q+v(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!r(a)&&!B(t)))):{},async(t,s,c,l,w,y=!1)=>{const u=W();F(c??{},(a=>h(D(a??{}),(a=>z(u,a)))));const d=b(u);if(!y&&w&&C(d)&&N(o,t))return await a("DROP "+K+v(t)),void G(o,t);if(C(d)||N(o,t)){const n=$(o,t),i=W(Y(n));await E([...h(d,(async s=>{O(i,s)||(await a(V+v(t)+"ADD"+v(s)),G(n,s,e))})),...!y&&l?h(b(i),(async e=>{e!=s&&(await a(V+v(t)+"DROP"+v(e)),G(n,e))})):[]])}else await a("CREATE "+K+v(t)+"("+v(s)+` PRIMARY KEY ON CONFLICT REPLACE${A(h(d,(a=>n+v(a))))});`),G(o,t,H([[s,e],...h(d,(a=>[a,e]))]));if(y)r(c)?await a(q+v(t)+Z+" 1"):await E(F(c,(async(e,n)=>{r(e)?await a(q+v(t)+Z+v(s)+"=?",[n]):C(d)||await ta(a,t,s,D(e),[n,...j(e)],i)})));else if(C(d))N(o,t)&&await a(q+v(t)+Z+" 1");else{const e=T(Y($(o,t)),(a=>a!=s)),n=[],r=[];F(c??{},((a,t)=>{f(n,t,...h(e,(t=>a?.[t]))),f(r,t)})),await ta(a,t,s,e,n,i),await a(q+v(t)+Z+v(s)+"NOT IN("+ea(r)+")",r)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},ta=async(a,t,s,o,c,r=!0)=>await a("INSERT "+(r?e:"OR REPLACE ")+"INTO"+v(t)+"("+v(s)+A(h(o,(a=>n+v(a))))+")VALUES"+u(i(`,(?${i(",?",d(o))})`,d(c)/(d(o)+1)),1)+(r?"ON CONFLICT("+v(s)+")DO UPDATE SET"+A(h(o,(a=>v(a)+"=excluded."+v(a))),n):e),h(c,(a=>a??null))),ea=a=>A(h(a,(()=>"?")),n),na=JSON.parse,sa=H(),ia=H(),oa=(a,t,e,n,s,i,o,c={},w=[])=>{let u,d,E,g=0;J(sa,w,(()=>0)),J(ia,w,(()=>[]));const[p,v,m,A,h]=((a,t)=>!a||r(t.getMergeableContent)?[0,t.getContent,t.getTransactionChanges,([a,t])=>!B(a)||!B(t),t.setContent]:[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!B(a)||!B(t),t.setDefaultContent])(o,a),C=async a=>(2!=g&&(g=1,await N.schedule((async()=>{await a(),g=0}))),N),T=t=>{(p&&y(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},N={load:async a=>await C((async()=>{try{T(await t())}catch(t){i?.(t),a&&h(a)}})),startAutoLoad:async a=>(await N.stopAutoLoad().load(a),d=n((async(a,e)=>{const n=e?.();await C((async()=>{try{T(n??a?.()??await t())}catch(a){i?.(a)}}))})),N),stopAutoLoad:()=>(d&&(s(d),d=void 0),N),isAutoLoading:()=>!r(d),save:async a=>(1!=g&&(g=2,await N.schedule((async()=>{try{await e(v,a)}catch(a){i?.(a)}g=0}))),N),startAutoSave:async()=>(await N.stopAutoSave().save(),E=a.addDidFinishTransactionListener((()=>{const a=m();A(a)&&N.save((()=>a))})),N),stopAutoSave:()=>(l(E,a.delListener),E=void 0,N),isAutoSaving:()=>!r(E),schedule:async(...a)=>(f($(ia,w),...a),await(async()=>{if(!$(sa,w)){for(G(sa,w,1);!r((a=$(ia,w),u=a.shift()));)try{await u()}catch(a){i?.(a)}G(sa,w,0)}var a})(),N),getStore:()=>a,destroy:()=>N.stopAutoLoad().stopAutoSave(),getStats:()=>({}),...c};return I(N)},ca="store",ra=(a,t,e,n,s,[i],o,c,r,l)=>{const[w,y,u,d]=aa(t,o,s,l);return oa(a,(async()=>await d((async()=>(await w(),na((await y(i,p))[g]?.[ca]??"null"))))),(async a=>await d((async()=>{var t;await w(),await u(i,p,{[g]:{[ca]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?L.fromEntries([...t]):t)))}},!0,!0)}))),e,n,s,!1,{[r]:()=>c},c)},la=(a,t,e,n,s,[i,o,[c,l,w]],y,u,d,v)=>{const[m,A,h,C]=aa(t,y,s,v),f=async(a,t)=>await E(k(o,(async([e,n,s,i],o)=>{t&&!_(a,o)||await h(e,n,a[o],s,i,t)}))),N=async(a,t)=>l?await h(w,p,{[g]:a},!0,!0,t):null;return oa(a,(async()=>await C((async()=>{await m();const a=await(async()=>M(T(await E(k(i,(async([a,t],e)=>[a,await A(e,t)]))),(a=>!B(a[1])))))(),t=await(async()=>c?(await A(w,p))[g]:{})();return B(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await C((async()=>{if(await m(),r(t)){const[t,e]=a();await f(t),await N(e)}else{const[a,e]=t();await f(a,!0),await N(e,!0)}}))),e,n,s,!1,{[d]:()=>u},u)},wa="json",ya="autoLoadIntervalSeconds",ua="rowIdColumnName",da="tableId",Ea="tableName",ga={mode:wa,[ya]:1},pa={load:0,save:0,[Ea]:t+"_values"},va=(a,t,e,n)=>{const s=H();return F(a,((a,i)=>{const o=u(j(P(t,w(a)?{[e]:a}:a)),0,x(t));r(o[0])||n(i,o[0])||G(s,i,o)})),s},ma="pragma ",Aa="data_version",ha="schema_version",Ca=(a,e,n,s,i,o,r,l,y="getDb",d)=>{let E,g,v;const[A,h,C,T]=(a=>{const e=(a=>P(ga,w(a)?{storeTableName:a}:a??{}))(a),n=e[ya];if(e.mode==wa){const{storeTableName:a=t}=e;return[1,n,[a],W(a)]}const{tables:{load:s={},save:i={}}={},values:o={}}=e,c=u(j(P(pa,o)),0,x(pa)),r=c[2],l=W(r);return[0,n,[va(s,{[da]:null,[ua]:p},da,(a=>z(l,a)&&a==r)),va(i,{[Ea]:null,[ua]:p,deleteEmptyColumns:0,deleteEmptyTable:0},Ea,((a,t)=>z(l,t)&&t==r)),c],l]})(e);return(A?ra:la)(a,o?async(a,t)=>(o(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const t=(await n(ma+Aa))[0][Aa],e=(await n(ma+ha))[0][ha],s=(await n(m+" TOTAL_CHANGES() c"))[0].c;t==(E??=t)&&e==(g??=e)&&s==(v??=s)||(a(),E=t,g=e)}catch{}},e=h,t(),setInterval(t,1e3*e)),s((t=>T.has(t)?a():0))];var t,e}),(([a,t])=>{c(a),E=g=null,i(t)}),r,C,b(T),l,y,d)},Ta=(a,t,e,n,s,i=!1)=>Ca(a,e,(async(a,e=[])=>t.execute(a,e).then((a=>a.rows?._array??[]))),(a=>{const e=new AbortController,n=t.onChange({rawTableNames:!0,signal:e.signal});return(async()=>{for await(const t of n)h(t.changedTables,a)})(),e}),(a=>a.abort()),n,s,t,"getPowerSync",i);export{Ta as createPowerSyncPersister};
@@ -1 +1 @@
1
- const t=clearInterval,a=t=>null==t,e=(t,e,s)=>a(t)?s?.():e(t),s=Object,n=t=>s.getPrototypeOf(t),o=s.keys,r=s.freeze,c=t=>(t=>!a(t)&&e(n(t),(t=>t==s.prototype||a(n(t))),(()=>!0)))(t)&&0==(t=>o(t).length)(t),i=JSON.parse,y=t=>new Map(t),d=(t,a)=>t?.get(a),h=(t,e,s)=>{return a(s)?(n=t,o=e,n?.delete(o),t):t?.set(e,s);var n,o},u=(t,a,e)=>{var s,n;return s=t,n=a,s?.has(n)||h(t,a,e()),d(t,a)},l=y(),w=y(),p=t=>t.headers.get("ETag"),v=(n,o,y,v=5,f)=>{let g;return((t,s,n,o,i,y,[p,v]=[],f=[])=>{let g,A,S,C=0,L=0;u(l,f,(()=>0)),u(w,f,(()=>[]));const O=async t=>(2!=C&&(C=1,await T.schedule((async()=>{await t(),C=0}))),T),T={load:async(a,e)=>await O((async()=>{try{t.setContent(await s())}catch{t.setContent([a,e])}})),startAutoLoad:async(a={},e={})=>(T.stopAutoLoad(),await T.load(a,e),L=1,S=o((async(a,e)=>{if(e){const a=e();await O((async()=>t.setTransactionChanges(a)))}else await O((async()=>{try{t.setContent(a?.()??await s())}catch(t){y?.(t)}}))})),T),stopAutoLoad:()=>(L&&(i(S),S=void 0,L=0),T),save:async a=>(1!=C&&(C=2,await T.schedule((async()=>{try{await n(t.getContent,a)}catch(t){y?.(t)}C=0}))),T),startAutoSave:async()=>(await T.stopAutoSave().save(),g=t.addDidFinishTransactionListener(((t,a)=>{const[e,s]=a();c(e)&&c(s)||T.save((()=>[e,s]))})),T),stopAutoSave:()=>(e(g,t.delListener),g=void 0,T),schedule:async(...t)=>(((t,...a)=>{t.push(...a)})(d(w,f),...t),await(async()=>{if(!d(l,f)){for(h(l,f,1);!a((t=d(w,f),A=t.shift()));)try{await A()}catch(t){y?.(t)}h(l,f,0)}var t})(),T),getStore:()=>t,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return p&&(T[p]=()=>v),r(T)})(n,(async()=>{const t=await fetch(o);return g=p(t),i(await t.text())}),(async t=>{return await fetch(y,{method:"POST",headers:{"Content-Type":"application/json"},body:(a=t(),JSON.stringify(a,((t,a)=>a instanceof Map?s.fromEntries([...a]):a)))});var a}),(t=>setInterval((async()=>{const e=await fetch(o,{method:"HEAD"}),s=p(e);a(g)||a(s)||s==g||(g=s,t())}),1e3*v)),(a=>t(a)),f,["getUrls",[o,y]])};export{v as createRemotePersister};
1
+ const t=clearInterval,a=t=>null==t,e=(t,e,n)=>a(t)?n?.():e(t),n=Object,s=t=>n.getPrototypeOf(t),o=n.keys,r=n.freeze,c=t=>(t=>!a(t)&&e(s(t),(t=>t==n.prototype||a(s(t))),(()=>!0)))(t)&&0==(t=>o(t).length)(t),i=JSON.parse,y=t=>new Map(t),g=(t,a)=>t?.get(a),l=(t,e,n)=>{return a(n)?(s=t,o=e,s?.delete(o),t):t?.set(e,n);var s,o},d=(t,a,e,n)=>{var s,o;return s=t,o=a,s?.has(o)?n?.(g(t,a)):l(t,a,e()),g(t,a)},h=y(),u=y(),p=t=>t.headers.get("ETag"),v=(s,o,y,v=5,w)=>{let A;return((t,n,s,o,i,y,p,v={},w=[])=>{let A,f,C,S=0;d(h,w,(()=>0)),d(u,w,(()=>[]));const[b,L,M,T,O]=((t,e)=>!t||a(e.getMergeableContent)?[0,e.getContent,e.getTransactionChanges,([t,a])=>!c(t)||!c(a),e.setContent]:[1,e.getMergeableContent,e.getTransactionMergeableChanges,([[t],[a]])=>!c(t)||!c(a),e.setDefaultContent])(p,t),m=async t=>(2!=S&&(S=1,await E.schedule((async()=>{await t(),S=0}))),E),D=a=>{var e;(b&&(e=a?.[0],Array.isArray(e))?1===a?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===a?.[2]?t.applyChanges:t.setContent)(a)},E={load:async t=>await m((async()=>{try{D(await n())}catch(a){y?.(a),t&&O(t)}})),startAutoLoad:async t=>(await E.stopAutoLoad().load(t),f=o((async(t,a)=>{const e=a?.();await m((async()=>{try{D(e??t?.()??await n())}catch(t){y?.(t)}}))})),E),stopAutoLoad:()=>(f&&(i(f),f=void 0),E),isAutoLoading:()=>!a(f),save:async t=>(1!=S&&(S=2,await E.schedule((async()=>{try{await s(L,t)}catch(t){y?.(t)}S=0}))),E),startAutoSave:async()=>(await E.stopAutoSave().save(),C=t.addDidFinishTransactionListener((()=>{const t=M();T(t)&&E.save((()=>t))})),E),stopAutoSave:()=>(e(C,t.delListener),C=void 0,E),isAutoSaving:()=>!a(C),schedule:async(...t)=>(((t,...a)=>{t.push(...a)})(g(u,w),...t),await(async()=>{if(!g(h,w)){for(l(h,w,1);!a((t=g(u,w),A=t.shift()));)try{await A()}catch(t){y?.(t)}l(h,w,0)}var t})(),E),getStore:()=>t,destroy:()=>E.stopAutoLoad().stopAutoSave(),getStats:()=>({}),...v};return r(E)})(s,(async()=>{const t=await fetch(o);return A=p(t),i(await t.text())}),(async t=>{return await fetch(y,{method:"POST",headers:{"Content-Type":"application/json"},body:(a=t(),JSON.stringify(a,((t,a)=>a instanceof Map?n.fromEntries([...a]):a)))});var a}),(t=>setInterval((async()=>{const e=await fetch(o,{method:"HEAD"}),n=p(e);a(A)||a(n)||n==A||(A=n,t())}),1e3*v)),(a=>t(a)),w,!1,{getUrls:()=>[o,y]})};export{v as createRemotePersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t)=>a.repeat(t),i=Promise,c=clearInterval,o=a=>null==a,r=(a,t,e)=>o(a)?e?.():t(a),l=t=>a(t)==s,w=(a,t,e)=>a.slice(t,e),y=a=>a.length,E=async a=>i.all(a),u="_",d="_id",p=a=>`"${a.replace(/"/g,'""')}"`,v="SELECT",T=(a,t="")=>a.join(t),m=(a,t)=>a.map(t),A=a=>0==y(a),L=(a,t)=>a.filter(t),R=(a,...t)=>a.push(...t),h=(a,t)=>a?.has(t)??!1,O=a=>[...a?.values()??[]],f=(a,t)=>a?.delete(t),N=Object,C=a=>N.getPrototypeOf(a),D=N.entries,S=N.keys,b=N.freeze,g=(a=[])=>N.fromEntries(a),I=(...a)=>N.assign({},...a),_=(a,t)=>m(D(a),(([a,e])=>t(e,a))),M=a=>N.values(a),F=a=>y(S(a)),$=a=>(a=>!o(a)&&r(C(a),(a=>a==N.prototype||o(C(a))),(()=>!0)))(a)&&0==F(a),P=a=>new Map(a),B=a=>[...a?.keys()??[]],H=(a,t)=>a?.get(t),j=(a,t)=>m([...a?.entries()??[]],(([a,e])=>t(e,a))),k=(a,t,e)=>o(e)?(f(a,t),a):a?.set(t,e),W=(a,t,e)=>(h(a,t)||k(a,t,e()),H(a,t)),x=(a,t,e,s=k)=>(_(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!o(((a,t)=>r(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),Y=a=>new Set(Array.isArray(a)||o(a)?a:[a]),q=(a,t)=>a?.add(t),G=v+"*FROM",J="FROM pragma_table_",U="WHERE",V=(a,t,s)=>{const n=P();return[async()=>x(n,g(await E(m(await a("SELECT name "+J+"list WHERE schema='main'AND type='table'AND name IN("+K(t)+")ORDER BY name",t),(async({name:t})=>[t,g(m(await a(v+" name,type "+J+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>k(n,t,x(W(n,t,P),e,((a,t,e)=>{e!=H(a,t)&&k(a,t,e)}),((a,t)=>k(a,t))))),((a,t)=>k(n,t))),async(t,e)=>((a,t)=>!o(H(H(n,a),t)))(t,e)?g(L(m(await a(G+p(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!o(a)&&!$(t)))):{},async(t,s,i,c,r,l=!1)=>{const w=Y();_(i??{},(a=>m(S(a??{}),(a=>q(w,a)))));const y=O(w);if(!l&&r&&A(y)&&h(n,t))return await a("DROP TABLE"+p(t)),void k(n,t);if(A(y)||h(n,t)){const e=H(n,t),i=Y(B(e));await E([...m(y,(async s=>{f(i,s)||(await a(`ALTER TABLE${p(t)}ADD${p(s)}`),k(e,s,""))})),...!l&&c?m(O(i),(async n=>{n!=s&&(await a(`ALTER TABLE${p(t)}DROP${p(n)}`),k(e,n))})):[]])}else await a(`CREATE TABLE${p(t)}(${p(s)} PRIMARY KEY ON CONFLICT REPLACE${T(m(y,(a=>e+p(a))))});`),k(n,t,P([[s,""],...m(y,(a=>[a,""]))]));if(l)o(i)?await a("DELETE FROM"+p(t)+"WHERE 1"):await E(_(i,(async(e,n)=>{o(e)?await a("DELETE FROM"+p(t)+U+p(s)+"=?",[n]):A(y)||await z(a,t,s,S(e),[n,...M(e)])})));else if(A(y))h(n,t)&&await a("DELETE FROM"+p(t)+"WHERE 1");else{const e=L(B(H(n,t)),(a=>a!=s)),c=[],o=[];_(i??{},((a,t)=>{R(c,t,...m(e,(t=>a?.[t]))),R(o,t)})),await z(a,t,s,e,c),await a("DELETE FROM"+p(t)+U+p(s)+"NOT IN("+K(o)+")",o)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},z=async(a,t,s,i,c)=>await a("INSERT INTO"+p(t)+"("+p(s)+T(m(i,(a=>e+p(a))))+")VALUES"+w(n(`,(?${n(",?",y(i))})`,y(c)/(y(i)+1)),1)+"ON CONFLICT("+p(s)+")DO UPDATE SET"+T(m(i,(a=>p(a)+"=excluded."+p(a))),e),c),K=a=>T(m(a,(()=>"?")),e),Q=JSON.parse,X=P(),Z=P(),aa=(a,t,e,s,n,i,[c,l]=[],w=[])=>{let y,E,u,d=0,p=0;W(X,w,(()=>0)),W(Z,w,(()=>[]));const v=async a=>(2!=d&&(d=1,await T.schedule((async()=>{await a(),d=0}))),T),T={load:async(e,s)=>await v((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(T.stopAutoLoad(),await T.load(e,n),p=1,u=s((async(e,s)=>{if(s){const t=s();await v((async()=>a.setTransactionChanges(t)))}else await v((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),T),stopAutoLoad:()=>(p&&(n(u),u=void 0,p=0),T),save:async t=>(1!=d&&(d=2,await T.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}d=0}))),T),startAutoSave:async()=>(await T.stopAutoSave().save(),y=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();$(e)&&$(s)||T.save((()=>[e,s]))})),T),stopAutoSave:()=>(r(y,a.delListener),y=void 0,T),schedule:async(...a)=>(R(H(Z,w),...a),await(async()=>{if(!H(X,w)){for(k(X,w,1);!o((a=H(Z,w),E=a.shift()));)try{await E()}catch(a){i?.(a)}k(X,w,0)}var a})(),T),getStore:()=>a,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(T[c]=()=>l),b(T)},ta="store",ea=(a,t,e,s,n,[i],c,o,r)=>{const[l,w,y,E]=V(t,c,n);return aa(a,(async()=>await E((async()=>(await l(),Q((await w(i,d))[u]?.[ta]??"null"))))),(async a=>await E((async()=>{var t;await l(),await y(i,d,{[u]:{[ta]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?N.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,[r,o],o)},sa=(a,t,e,s,n,[i,c,[r,l,w]],y,p,v)=>{const[T,m,A,R]=V(t,y,n),h=async(a,t)=>await E(j(c,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await A(e,s,o,n,i,t)}))),O=async(a,t)=>l?await A(w,d,{[u]:a},!0,!0,t):null;return aa(a,(async()=>await R((async()=>{await T();const a=await(async()=>g(L(await E(j(i,(async([a,t],e)=>[a,await m(e,t)]))),(a=>!$(a[1])))))(),t=await(async()=>r?(await m(w,d))[u]:{})();return $(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await R((async()=>{if(await T(),o(t)){const[t,e]=a();await h(t),await O(e)}else{const[a,e]=t();await h(a,!0),await O(e,!0)}}))),e,s,n,[v,p],p)},na="json",ia="autoLoadIntervalSeconds",ca="rowIdColumnName",oa="tableId",ra="tableName",la={mode:na,[ia]:1},wa={load:0,save:0,[ra]:t+"_values"},ya=(a,t,e,s)=>{const n=P();return _(a,((a,i)=>{const c=w(M(I(t,l(a)?{[e]:a}:a)),0,F(t));o(c[0])||s(i,c[0])||k(n,i,c)})),n},Ea="pragma ",ua="data_version",da="schema_version",pa=(a,e,s,n,i,o,r,y,E="getDb")=>{let u,p,T;const[m,A,L,R]=(a=>{const e=(a=>I(la,l(a)?{storeTableName:a}:a??{}))(a),s=e[ia];if(e.mode==na){const{storeTableName:a=t}=e;return[1,s,[a],Y(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=e,o=w(M(I(wa,c)),0,F(wa)),r=o[2],y=Y(r);return[0,s,[ya(n,{[oa]:null,[ca]:d},oa,(a=>q(y,a)&&a==r)),ya(i,{[ra]:null,[ca]:d,deleteEmptyColumns:0,deleteEmptyTable:0},ra,((a,t)=>q(y,t)&&t==r)),o],y]})(e);return(m?ea:sa)(a,o?async(a,t)=>(o(a,t),await s(a,t)):s,(a=>{return[(t=async()=>{try{const t=(await s(Ea+ua))[0][ua],e=(await s(Ea+da))[0][da],n=(await s(v+" TOTAL_CHANGES() c"))[0].c;t==(u??=t)&&e==(p??=e)&&n==(T??=n)||(a(),u=t,p=e)}catch{}},e=A,t(),setInterval(t,1e3*e)),n((t=>R.has(t)?a():0))];var t,e}),(([a,t])=>{c(a),u=p=null,i(t)}),r,L,O(R),y,E)},va=(a,t,e,s,n,i)=>pa(a,s,(async(a,t=[])=>e.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}).map((a=>({...a})))),(a=>t.capi.sqlite3_update_hook(e,((t,e,s,n)=>a(n)),0)),(()=>t.capi.sqlite3_update_hook(e,(()=>0),0)),n,i,e);export{va as createSqliteWasmPersister};
1
+ const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i=(a,t)=>a.repeat(t),o=Promise,c=clearInterval,r=a=>null==a,l=(a,t,e)=>r(a)?e?.():t(a),w=t=>a(t)==s,y=a=>Array.isArray(a),u=(a,t,e)=>a.slice(t,e),d=a=>a.length,p=async a=>o.all(a),E="_",v="_id",g=a=>`"${a.replace(/"/g,'""')}"`,m="SELECT",A=(a,t="")=>a.join(t),h=(a,t)=>a.map(t),C=a=>0==d(a),T=(a,t)=>a.filter(t),f=(a,...t)=>a.push(...t),N=(a,t)=>a?.has(t)??!1,O=a=>[...a?.values()??[]],L=(a,t)=>a?.delete(t),R=Object,b=a=>R.getPrototypeOf(a),S=R.entries,D=R.keys,I=R.freeze,M=(a=[])=>R.fromEntries(a),_=(...a)=>R.assign({},...a),P=(a,t)=>t in a,F=(a,t)=>h(S(a),(([a,e])=>t(e,a))),j=a=>R.values(a),k=a=>d(D(a)),x=a=>(a=>!r(a)&&l(b(a),(a=>a==R.prototype||r(b(a))),(()=>!0)))(a)&&0==k(a),B=a=>new Map(a),H=a=>[...a?.keys()??[]],Y=(a,t)=>a?.get(t),$=(a,t)=>h([...a?.entries()??[]],(([a,e])=>t(e,a))),q=(a,t,e)=>r(e)?(L(a,t),a):a?.set(t,e),G=(a,t,e,n)=>(N(a,t)?n?.(Y(a,t)):q(a,t,e()),Y(a,t)),J=(a,t,e,n=q)=>(F(t,((t,n)=>e(a,n,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>P(t,e)?0:n(a,e))),a),U=a=>new Set(y(a)||r(a)?a:[a]),V=(a,t)=>a?.add(t),W="TABLE",z="ALTER "+W,K="DELETE FROM",Q=m+"*FROM",X="FROM pragma_table_",Z="WHERE",aa=(a,t,s,i)=>{const o=B();return[async()=>J(o,M(await p(h(await a("SELECT name "+X+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+ea(t)+")ORDER BY name",t),(async({name:t})=>[t,M(h(await a(m+" name,type "+X+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>q(o,t,J(G(o,t,B),e,((a,t,e)=>{e!=Y(a,t)&&q(a,t,e)}),((a,t)=>q(a,t))))),((a,t)=>q(o,t))),async(t,e)=>((a,t)=>!r(Y(Y(o,a),t)))(t,e)?M(T(h(await a(Q+g(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!r(a)&&!x(t)))):{},async(t,s,c,l,w,y=!1)=>{const u=U();F(c??{},(a=>h(D(a??{}),(a=>V(u,a)))));const d=O(u);if(!y&&w&&C(d)&&N(o,t))return await a("DROP "+W+g(t)),void q(o,t);if(C(d)||N(o,t)){const n=Y(o,t),i=U(H(n));await p([...h(d,(async s=>{L(i,s)||(await a(z+g(t)+"ADD"+g(s)),q(n,s,e))})),...!y&&l?h(O(i),(async e=>{e!=s&&(await a(z+g(t)+"DROP"+g(e)),q(n,e))})):[]])}else await a("CREATE "+W+g(t)+"("+g(s)+` PRIMARY KEY ON CONFLICT REPLACE${A(h(d,(a=>n+g(a))))});`),q(o,t,B([[s,e],...h(d,(a=>[a,e]))]));if(y)r(c)?await a(K+g(t)+Z+" 1"):await p(F(c,(async(e,n)=>{r(e)?await a(K+g(t)+Z+g(s)+"=?",[n]):C(d)||await ta(a,t,s,D(e),[n,...j(e)],i)})));else if(C(d))N(o,t)&&await a(K+g(t)+Z+" 1");else{const e=T(H(Y(o,t)),(a=>a!=s)),n=[],r=[];F(c??{},((a,t)=>{f(n,t,...h(e,(t=>a?.[t]))),f(r,t)})),await ta(a,t,s,e,n,i),await a(K+g(t)+Z+g(s)+"NOT IN("+ea(r)+")",r)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},ta=async(a,t,s,o,c,r=!0)=>await a("INSERT "+(r?e:"OR REPLACE ")+"INTO"+g(t)+"("+g(s)+A(h(o,(a=>n+g(a))))+")VALUES"+u(i(`,(?${i(",?",d(o))})`,d(c)/(d(o)+1)),1)+(r?"ON CONFLICT("+g(s)+")DO UPDATE SET"+A(h(o,(a=>g(a)+"=excluded."+g(a))),n):e),h(c,(a=>a??null))),ea=a=>A(h(a,(()=>"?")),n),na=JSON.parse,sa=B(),ia=B(),oa=(a,t,e,n,s,i,o,c={},w=[])=>{let u,d,p,E=0;G(sa,w,(()=>0)),G(ia,w,(()=>[]));const[v,g,m,A,h]=((a,t)=>!a||r(t.getMergeableContent)?[0,t.getContent,t.getTransactionChanges,([a,t])=>!x(a)||!x(t),t.setContent]:[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!x(a)||!x(t),t.setDefaultContent])(o,a),C=async a=>(2!=E&&(E=1,await N.schedule((async()=>{await a(),E=0}))),N),T=t=>{(v&&y(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},N={load:async a=>await C((async()=>{try{T(await t())}catch(t){i?.(t),a&&h(a)}})),startAutoLoad:async a=>(await N.stopAutoLoad().load(a),d=n((async(a,e)=>{const n=e?.();await C((async()=>{try{T(n??a?.()??await t())}catch(a){i?.(a)}}))})),N),stopAutoLoad:()=>(d&&(s(d),d=void 0),N),isAutoLoading:()=>!r(d),save:async a=>(1!=E&&(E=2,await N.schedule((async()=>{try{await e(g,a)}catch(a){i?.(a)}E=0}))),N),startAutoSave:async()=>(await N.stopAutoSave().save(),p=a.addDidFinishTransactionListener((()=>{const a=m();A(a)&&N.save((()=>a))})),N),stopAutoSave:()=>(l(p,a.delListener),p=void 0,N),isAutoSaving:()=>!r(p),schedule:async(...a)=>(f(Y(ia,w),...a),await(async()=>{if(!Y(sa,w)){for(q(sa,w,1);!r((a=Y(ia,w),u=a.shift()));)try{await u()}catch(a){i?.(a)}q(sa,w,0)}var a})(),N),getStore:()=>a,destroy:()=>N.stopAutoLoad().stopAutoSave(),getStats:()=>({}),...c};return I(N)},ca="store",ra=(a,t,e,n,s,[i],o,c,r,l)=>{const[w,y,u,d]=aa(t,o,s,l);return oa(a,(async()=>await d((async()=>(await w(),na((await y(i,v))[E]?.[ca]??"null"))))),(async a=>await d((async()=>{var t;await w(),await u(i,v,{[E]:{[ca]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?R.fromEntries([...t]):t)))}},!0,!0)}))),e,n,s,!1,{[r]:()=>c},c)},la=(a,t,e,n,s,[i,o,[c,l,w]],y,u,d,g)=>{const[m,A,h,C]=aa(t,y,s,g),f=async(a,t)=>await p($(o,(async([e,n,s,i],o)=>{t&&!P(a,o)||await h(e,n,a[o],s,i,t)}))),N=async(a,t)=>l?await h(w,v,{[E]:a},!0,!0,t):null;return oa(a,(async()=>await C((async()=>{await m();const a=await(async()=>M(T(await p($(i,(async([a,t],e)=>[a,await A(e,t)]))),(a=>!x(a[1])))))(),t=await(async()=>c?(await A(w,v))[E]:{})();return x(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await C((async()=>{if(await m(),r(t)){const[t,e]=a();await f(t),await N(e)}else{const[a,e]=t();await f(a,!0),await N(e,!0)}}))),e,n,s,!1,{[d]:()=>u},u)},wa="json",ya="autoLoadIntervalSeconds",ua="rowIdColumnName",da="tableId",pa="tableName",Ea={mode:wa,[ya]:1},va={load:0,save:0,[pa]:t+"_values"},ga=(a,t,e,n)=>{const s=B();return F(a,((a,i)=>{const o=u(j(_(t,w(a)?{[e]:a}:a)),0,k(t));r(o[0])||n(i,o[0])||q(s,i,o)})),s},ma="pragma ",Aa="data_version",ha="schema_version",Ca=(a,e,n,s,i,o,r,l,y="getDb",d)=>{let p,E,g;const[A,h,C,T]=(a=>{const e=(a=>_(Ea,w(a)?{storeTableName:a}:a??{}))(a),n=e[ya];if(e.mode==wa){const{storeTableName:a=t}=e;return[1,n,[a],U(a)]}const{tables:{load:s={},save:i={}}={},values:o={}}=e,c=u(j(_(va,o)),0,k(va)),r=c[2],l=U(r);return[0,n,[ga(s,{[da]:null,[ua]:v},da,(a=>V(l,a)&&a==r)),ga(i,{[pa]:null,[ua]:v,deleteEmptyColumns:0,deleteEmptyTable:0},pa,((a,t)=>V(l,t)&&t==r)),c],l]})(e);return(A?ra:la)(a,o?async(a,t)=>(o(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const t=(await n(ma+Aa))[0][Aa],e=(await n(ma+ha))[0][ha],s=(await n(m+" TOTAL_CHANGES() c"))[0].c;t==(p??=t)&&e==(E??=e)&&s==(g??=s)||(a(),p=t,E=e)}catch{}},e=h,t(),setInterval(t,1e3*e)),s((t=>T.has(t)?a():0))];var t,e}),(([a,t])=>{c(a),p=E=null,i(t)}),r,C,O(T),l,y,d)},Ta=(a,t,e,n,s,i)=>Ca(a,n,(async(a,t=[])=>e.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}).map((a=>({...a})))),(a=>t.capi.sqlite3_update_hook(e,((t,e,n,s)=>a(s)),0)),(()=>t.capi.sqlite3_update_hook(e,(()=>0),0)),s,i,e);export{Ta as createSqliteWasmPersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=(a,t)=>a.repeat(t),i=Promise,c=clearInterval,o=a=>null==a,r=(a,t,e)=>o(a)?e?.():t(a),w=t=>a(t)==n,l=(a,t,e)=>a.slice(t,e),y=a=>a.length,E=async a=>i.all(a),u="_",d="_id",v=a=>`"${a.replace(/"/g,'""')}"`,T="SELECT",A=(a,t="")=>a.join(t),m=(a,t)=>a.map(t),p=a=>0==y(a),L=(a,t)=>a.filter(t),f=(a,...t)=>a.push(...t),O=(a,t)=>a?.has(t)??!1,R=a=>[...a?.values()??[]],h=(a,t)=>a?.delete(t),N=Object,C=a=>N.getPrototypeOf(a),D=N.entries,S=N.keys,g=N.freeze,I=(a=[])=>N.fromEntries(a),b=(...a)=>N.assign({},...a),F=(a,t)=>m(D(a),(([a,e])=>t(e,a))),M=a=>N.values(a),$=a=>y(S(a)),_=a=>(a=>!o(a)&&r(C(a),(a=>a==N.prototype||o(C(a))),(()=>!0)))(a)&&0==$(a),P=a=>new Map(a),B=a=>[...a?.keys()??[]],H=(a,t)=>a?.get(t),W=(a,t)=>m([...a?.entries()??[]],(([a,e])=>t(e,a))),j=(a,t,e)=>o(e)?(h(a,t),a):a?.set(t,e),Y=(a,t,e)=>(O(a,t)||j(a,t,e()),H(a,t)),k=(a,t,e,n=j)=>(F(t,((t,n)=>e(a,n,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!o(((a,t)=>r(a,(a=>a[t])))(a,t)))(t,e)?0:n(a,e))),a),x=a=>new Set(Array.isArray(a)||o(a)?a:[a]),G=(a,t)=>a?.add(t),J=T+"*FROM",U="FROM pragma_table_",z="WHERE",K=(a,t,n)=>{const s=P();return[async()=>k(s,I(await E(m(await a("SELECT name "+U+"list WHERE schema='main'AND type='table'AND name IN("+q(t)+")ORDER BY name",t),(async({name:t})=>[t,I(m(await a(T+" name,type "+U+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>j(s,t,k(Y(s,t,P),e,((a,t,e)=>{e!=H(a,t)&&j(a,t,e)}),((a,t)=>j(a,t))))),((a,t)=>j(s,t))),async(t,e)=>((a,t)=>!o(H(H(s,a),t)))(t,e)?I(L(m(await a(J+v(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!o(a)&&!_(t)))):{},async(t,n,i,c,r,w=!1)=>{const l=x();F(i??{},(a=>m(S(a??{}),(a=>G(l,a)))));const y=R(l);if(!w&&r&&p(y)&&O(s,t))return await a("DROP TABLE"+v(t)),void j(s,t);if(p(y)||O(s,t)){const e=H(s,t),i=x(B(e));await E([...m(y,(async n=>{h(i,n)||(await a(`ALTER TABLE${v(t)}ADD${v(n)}`),j(e,n,""))})),...!w&&c?m(R(i),(async s=>{s!=n&&(await a(`ALTER TABLE${v(t)}DROP${v(s)}`),j(e,s))})):[]])}else await a(`CREATE TABLE${v(t)}(${v(n)} PRIMARY KEY ON CONFLICT REPLACE${A(m(y,(a=>e+v(a))))});`),j(s,t,P([[n,""],...m(y,(a=>[a,""]))]));if(w)o(i)?await a("DELETE FROM"+v(t)+"WHERE 1"):await E(F(i,(async(e,s)=>{o(e)?await a("DELETE FROM"+v(t)+z+v(n)+"=?",[s]):p(y)||await V(a,t,n,S(e),[s,...M(e)])})));else if(p(y))O(s,t)&&await a("DELETE FROM"+v(t)+"WHERE 1");else{const e=L(B(H(s,t)),(a=>a!=n)),c=[],o=[];F(i??{},((a,t)=>{f(c,t,...m(e,(t=>a?.[t]))),f(o,t)})),await V(a,t,n,e,c),await a("DELETE FROM"+v(t)+z+v(n)+"NOT IN("+q(o)+")",o)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){n?.(a)}return await a("END"),e}]},V=async(a,t,n,i,c)=>await a("INSERT INTO"+v(t)+"("+v(n)+A(m(i,(a=>e+v(a))))+")VALUES"+l(s(`,(?${s(",?",y(i))})`,y(c)/(y(i)+1)),1)+"ON CONFLICT("+v(n)+")DO UPDATE SET"+A(m(i,(a=>v(a)+"=excluded."+v(a))),e),c),q=a=>A(m(a,(()=>"?")),e),Q=JSON.parse,X=P(),Z=P(),aa=(a,t,e,n,s,i,[c,w]=[],l=[])=>{let y,E,u,d=0,v=0;Y(X,l,(()=>0)),Y(Z,l,(()=>[]));const T=async a=>(2!=d&&(d=1,await A.schedule((async()=>{await a(),d=0}))),A),A={load:async(e,n)=>await T((async()=>{try{a.setContent(await t())}catch{a.setContent([e,n])}})),startAutoLoad:async(e={},s={})=>(A.stopAutoLoad(),await A.load(e,s),v=1,u=n((async(e,n)=>{if(n){const t=n();await T((async()=>a.setTransactionChanges(t)))}else await T((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),A),stopAutoLoad:()=>(v&&(s(u),u=void 0,v=0),A),save:async t=>(1!=d&&(d=2,await A.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}d=0}))),A),startAutoSave:async()=>(await A.stopAutoSave().save(),y=a.addDidFinishTransactionListener(((a,t)=>{const[e,n]=t();_(e)&&_(n)||A.save((()=>[e,n]))})),A),stopAutoSave:()=>(r(y,a.delListener),y=void 0,A),schedule:async(...a)=>(f(H(Z,l),...a),await(async()=>{if(!H(X,l)){for(j(X,l,1);!o((a=H(Z,l),E=a.shift()));)try{await E()}catch(a){i?.(a)}j(X,l,0)}var a})(),A),getStore:()=>a,destroy:()=>A.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(A[c]=()=>w),g(A)},ta="store",ea=(a,t,e,n,s,[i],c,o,r)=>{const[w,l,y,E]=K(t,c,s);return aa(a,(async()=>await E((async()=>(await w(),Q((await l(i,d))[u]?.[ta]??"null"))))),(async a=>await E((async()=>{var t;await w(),await y(i,d,{[u]:{[ta]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?N.fromEntries([...t]):t)))}},!0,!0)}))),e,n,s,[r,o],o)},na=(a,t,e,n,s,[i,c,[r,w,l]],y,v,T)=>{const[A,m,p,f]=K(t,y,s),O=async(a,t)=>await E(W(c,(async([e,n,s,i],c)=>{const o=a[c];t&&void 0===o||await p(e,n,o,s,i,t)}))),R=async(a,t)=>w?await p(l,d,{[u]:a},!0,!0,t):null;return aa(a,(async()=>await f((async()=>{await A();const a=await(async()=>I(L(await E(W(i,(async([a,t],e)=>[a,await m(e,t)]))),(a=>!_(a[1])))))(),t=await(async()=>r?(await m(l,d))[u]:{})();return _(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await f((async()=>{if(await A(),o(t)){const[t,e]=a();await O(t),await R(e)}else{const[a,e]=t();await O(a,!0),await R(e,!0)}}))),e,n,s,[T,v],v)},sa="json",ia="autoLoadIntervalSeconds",ca="rowIdColumnName",oa="tableId",ra="tableName",wa={mode:sa,[ia]:1},la={load:0,save:0,[ra]:t+"_values"},ya=(a,t,e,n)=>{const s=P();return F(a,((a,i)=>{const c=l(M(b(t,w(a)?{[e]:a}:a)),0,$(t));o(c[0])||n(i,c[0])||j(s,i,c)})),s},Ea="pragma ",ua="data_version",da="schema_version",va=(a,e,n,s,i,o,r,y,E="getDb")=>{let u,v,A;const[m,p,L,f]=(a=>{const e=(a=>b(wa,w(a)?{storeTableName:a}:a??{}))(a),n=e[ia];if(e.mode==sa){const{storeTableName:a=t}=e;return[1,n,[a],x(a)]}const{tables:{load:s={},save:i={}}={},values:c={}}=e,o=l(M(b(la,c)),0,$(la)),r=o[2],y=x(r);return[0,n,[ya(s,{[oa]:null,[ca]:d},oa,(a=>G(y,a)&&a==r)),ya(i,{[ra]:null,[ca]:d,deleteEmptyColumns:0,deleteEmptyTable:0},ra,((a,t)=>G(y,t)&&t==r)),o],y]})(e);return(m?ea:na)(a,o?async(a,t)=>(o(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const t=(await n(Ea+ua))[0][ua],e=(await n(Ea+da))[0][da],s=(await n(T+" TOTAL_CHANGES() c"))[0].c;t==(u??=t)&&e==(v??=e)&&s==(A??=s)||(a(),u=t,v=e)}catch{}},e=p,t(),setInterval(t,1e3*e)),s((t=>f.has(t)?a():0))];var t,e}),(([a,t])=>{c(a),u=v=null,i(t)}),r,L,R(f),y,E)},Ta="change",Aa=(a,t,e,n,s)=>va(a,e,(async(a,e=[])=>{return await(n=(n,s)=>t.all(a,e,((a,t)=>a?s(a):n(t))),new i(n));var n}),(a=>{const e=(t,e,n)=>a(n);return t.on(Ta,e),e}),(a=>t.off(Ta,a)),n,s,t);export{Aa as createSqlite3Persister};
1
+ const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i=(a,t)=>a.repeat(t),o=Promise,c=clearInterval,r=a=>null==a,l=(a,t,e)=>r(a)?e?.():t(a),w=t=>a(t)==s,y=a=>Array.isArray(a),u=(a,t,e)=>a.slice(t,e),d=a=>a.length,E=async a=>o.all(a),p="_",v="_id",g=a=>`"${a.replace(/"/g,'""')}"`,m="SELECT",A=(a,t="")=>a.join(t),h=(a,t)=>a.map(t),C=a=>0==d(a),f=(a,t)=>a.filter(t),T=(a,...t)=>a.push(...t),N=(a,t)=>a?.has(t)??!1,O=a=>[...a?.values()??[]],L=(a,t)=>a?.delete(t),R=Object,S=a=>R.getPrototypeOf(a),b=R.entries,D=R.keys,I=R.freeze,M=(a=[])=>R.fromEntries(a),P=(...a)=>R.assign({},...a),_=(a,t)=>t in a,F=(a,t)=>h(b(a),(([a,e])=>t(e,a))),j=a=>R.values(a),B=a=>d(D(a)),H=a=>(a=>!r(a)&&l(S(a),(a=>a==R.prototype||r(S(a))),(()=>!0)))(a)&&0==B(a),Y=a=>new Map(a),$=a=>[...a?.keys()??[]],k=(a,t)=>a?.get(t),x=(a,t)=>h([...a?.entries()??[]],(([a,e])=>t(e,a))),G=(a,t,e)=>r(e)?(L(a,t),a):a?.set(t,e),J=(a,t,e,n)=>(N(a,t)?n?.(k(a,t)):G(a,t,e()),k(a,t)),U=(a,t,e,n=G)=>(F(t,((t,n)=>e(a,n,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>_(t,e)?0:n(a,e))),a),W=a=>new Set(y(a)||r(a)?a:[a]),z=(a,t)=>a?.add(t),K="TABLE",V="ALTER "+K,q="DELETE FROM",Q=m+"*FROM",X="FROM pragma_table_",Z="WHERE",aa=(a,t,s,i)=>{const o=Y();return[async()=>U(o,M(await E(h(await a("SELECT name "+X+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+ea(t)+")ORDER BY name",t),(async({name:t})=>[t,M(h(await a(m+" name,type "+X+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>G(o,t,U(J(o,t,Y),e,((a,t,e)=>{e!=k(a,t)&&G(a,t,e)}),((a,t)=>G(a,t))))),((a,t)=>G(o,t))),async(t,e)=>((a,t)=>!r(k(k(o,a),t)))(t,e)?M(f(h(await a(Q+g(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!r(a)&&!H(t)))):{},async(t,s,c,l,w,y=!1)=>{const u=W();F(c??{},(a=>h(D(a??{}),(a=>z(u,a)))));const d=O(u);if(!y&&w&&C(d)&&N(o,t))return await a("DROP "+K+g(t)),void G(o,t);if(C(d)||N(o,t)){const n=k(o,t),i=W($(n));await E([...h(d,(async s=>{L(i,s)||(await a(V+g(t)+"ADD"+g(s)),G(n,s,e))})),...!y&&l?h(O(i),(async e=>{e!=s&&(await a(V+g(t)+"DROP"+g(e)),G(n,e))})):[]])}else await a("CREATE "+K+g(t)+"("+g(s)+` PRIMARY KEY ON CONFLICT REPLACE${A(h(d,(a=>n+g(a))))});`),G(o,t,Y([[s,e],...h(d,(a=>[a,e]))]));if(y)r(c)?await a(q+g(t)+Z+" 1"):await E(F(c,(async(e,n)=>{r(e)?await a(q+g(t)+Z+g(s)+"=?",[n]):C(d)||await ta(a,t,s,D(e),[n,...j(e)],i)})));else if(C(d))N(o,t)&&await a(q+g(t)+Z+" 1");else{const e=f($(k(o,t)),(a=>a!=s)),n=[],r=[];F(c??{},((a,t)=>{T(n,t,...h(e,(t=>a?.[t]))),T(r,t)})),await ta(a,t,s,e,n,i),await a(q+g(t)+Z+g(s)+"NOT IN("+ea(r)+")",r)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},ta=async(a,t,s,o,c,r=!0)=>await a("INSERT "+(r?e:"OR REPLACE ")+"INTO"+g(t)+"("+g(s)+A(h(o,(a=>n+g(a))))+")VALUES"+u(i(`,(?${i(",?",d(o))})`,d(c)/(d(o)+1)),1)+(r?"ON CONFLICT("+g(s)+")DO UPDATE SET"+A(h(o,(a=>g(a)+"=excluded."+g(a))),n):e),h(c,(a=>a??null))),ea=a=>A(h(a,(()=>"?")),n),na=JSON.parse,sa=Y(),ia=Y(),oa=(a,t,e,n,s,i,o,c={},w=[])=>{let u,d,E,p=0;J(sa,w,(()=>0)),J(ia,w,(()=>[]));const[v,g,m,A,h]=((a,t)=>!a||r(t.getMergeableContent)?[0,t.getContent,t.getTransactionChanges,([a,t])=>!H(a)||!H(t),t.setContent]:[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!H(a)||!H(t),t.setDefaultContent])(o,a),C=async a=>(2!=p&&(p=1,await N.schedule((async()=>{await a(),p=0}))),N),f=t=>{(v&&y(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},N={load:async a=>await C((async()=>{try{f(await t())}catch(t){i?.(t),a&&h(a)}})),startAutoLoad:async a=>(await N.stopAutoLoad().load(a),d=n((async(a,e)=>{const n=e?.();await C((async()=>{try{f(n??a?.()??await t())}catch(a){i?.(a)}}))})),N),stopAutoLoad:()=>(d&&(s(d),d=void 0),N),isAutoLoading:()=>!r(d),save:async a=>(1!=p&&(p=2,await N.schedule((async()=>{try{await e(g,a)}catch(a){i?.(a)}p=0}))),N),startAutoSave:async()=>(await N.stopAutoSave().save(),E=a.addDidFinishTransactionListener((()=>{const a=m();A(a)&&N.save((()=>a))})),N),stopAutoSave:()=>(l(E,a.delListener),E=void 0,N),isAutoSaving:()=>!r(E),schedule:async(...a)=>(T(k(ia,w),...a),await(async()=>{if(!k(sa,w)){for(G(sa,w,1);!r((a=k(ia,w),u=a.shift()));)try{await u()}catch(a){i?.(a)}G(sa,w,0)}var a})(),N),getStore:()=>a,destroy:()=>N.stopAutoLoad().stopAutoSave(),getStats:()=>({}),...c};return I(N)},ca="store",ra=(a,t,e,n,s,[i],o,c,r,l)=>{const[w,y,u,d]=aa(t,o,s,l);return oa(a,(async()=>await d((async()=>(await w(),na((await y(i,v))[p]?.[ca]??"null"))))),(async a=>await d((async()=>{var t;await w(),await u(i,v,{[p]:{[ca]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?R.fromEntries([...t]):t)))}},!0,!0)}))),e,n,s,!1,{[r]:()=>c},c)},la=(a,t,e,n,s,[i,o,[c,l,w]],y,u,d,g)=>{const[m,A,h,C]=aa(t,y,s,g),T=async(a,t)=>await E(x(o,(async([e,n,s,i],o)=>{t&&!_(a,o)||await h(e,n,a[o],s,i,t)}))),N=async(a,t)=>l?await h(w,v,{[p]:a},!0,!0,t):null;return oa(a,(async()=>await C((async()=>{await m();const a=await(async()=>M(f(await E(x(i,(async([a,t],e)=>[a,await A(e,t)]))),(a=>!H(a[1])))))(),t=await(async()=>c?(await A(w,v))[p]:{})();return H(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await C((async()=>{if(await m(),r(t)){const[t,e]=a();await T(t),await N(e)}else{const[a,e]=t();await T(a,!0),await N(e,!0)}}))),e,n,s,!1,{[d]:()=>u},u)},wa="json",ya="autoLoadIntervalSeconds",ua="rowIdColumnName",da="tableId",Ea="tableName",pa={mode:wa,[ya]:1},va={load:0,save:0,[Ea]:t+"_values"},ga=(a,t,e,n)=>{const s=Y();return F(a,((a,i)=>{const o=u(j(P(t,w(a)?{[e]:a}:a)),0,B(t));r(o[0])||n(i,o[0])||G(s,i,o)})),s},ma="pragma ",Aa="data_version",ha="schema_version",Ca=(a,e,n,s,i,o,r,l,y="getDb",d)=>{let E,p,g;const[A,h,C,f]=(a=>{const e=(a=>P(pa,w(a)?{storeTableName:a}:a??{}))(a),n=e[ya];if(e.mode==wa){const{storeTableName:a=t}=e;return[1,n,[a],W(a)]}const{tables:{load:s={},save:i={}}={},values:o={}}=e,c=u(j(P(va,o)),0,B(va)),r=c[2],l=W(r);return[0,n,[ga(s,{[da]:null,[ua]:v},da,(a=>z(l,a)&&a==r)),ga(i,{[Ea]:null,[ua]:v,deleteEmptyColumns:0,deleteEmptyTable:0},Ea,((a,t)=>z(l,t)&&t==r)),c],l]})(e);return(A?ra:la)(a,o?async(a,t)=>(o(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const t=(await n(ma+Aa))[0][Aa],e=(await n(ma+ha))[0][ha],s=(await n(m+" TOTAL_CHANGES() c"))[0].c;t==(E??=t)&&e==(p??=e)&&s==(g??=s)||(a(),E=t,p=e)}catch{}},e=h,t(),setInterval(t,1e3*e)),s((t=>f.has(t)?a():0))];var t,e}),(([a,t])=>{c(a),E=p=null,i(t)}),r,C,O(f),l,y,d)},fa="change",Ta=(a,t,e,n,s)=>Ca(a,e,(async(a,e=[])=>{return await(n=(n,s)=>t.all(a,e,((a,t)=>a?s(a):n(t))),new o(n));var n}),(a=>{const e=(t,e,n)=>a(n);return t.on(fa,e),e}),(a=>t.off(fa,a)),n,s,t);export{Ta as createSqlite3Persister};
@@ -1 +1 @@
1
- import{Map as t}from"yjs";const e="t",a="v",s=t=>null==t,n=(t,e,a)=>s(t)?a?.():e(t),o=t=>t.length,c=t=>t.shift(),r=Object,i=t=>r.getPrototypeOf(t),l=r.entries,d=r.keys,g=r.freeze,u=(t=[])=>r.fromEntries(t),y=(t,e)=>!s(((t,e)=>n(t,(t=>t[e])))(t,e)),p=(t,e)=>((t,e)=>t.map(e))(l(t),(([t,a])=>e(a,t))),h=t=>(t=>!s(t)&&n(i(t),(t=>t==r.prototype||s(i(t))),(()=>!0)))(t)&&0==(t=>o(d(t)))(t),v=(t,e,a)=>(y(t,e)||(t[e]=a()),t[e]),w=t=>new Map(t),f=(t,e)=>t?.get(e),S=(t,e)=>((t,e)=>t?.forEach(e))(t,((t,a)=>e(a,t))),A=(t,e,a)=>{return s(a)?(n=t,o=e,n?.delete(o),t):t?.set(e,a);var n,o},O=(t,e,a)=>{var s,n;return s=t,n=e,s?.has(n)||A(t,e,a()),f(t,e)},J=w(),L=w(),N="delete",C=t=>[t.get(e),t.get(a)],b=(e,a,n,o)=>{const c=s(a)?e:e.get(a)??e.set(a,new t);let r;return p(n,((t,e)=>{o(c,e,t)&&(r=1)})),c.forEach(((t,e)=>{y(n,e)||(c.delete(e),r=1)})),s(a)||c.size||e.delete(a),r},m=(r,i,l="tinybase",d)=>{const y=i.getMap(l);return((t,e,a,o,r,i,[l,d]=[],u=[])=>{let y,p,v,w=0,S=0;O(J,u,(()=>0)),O(L,u,(()=>[]));const N=async t=>(2!=w&&(w=1,await C.schedule((async()=>{await t(),w=0}))),C),C={load:async(a,s)=>await N((async()=>{try{t.setContent(await e())}catch{t.setContent([a,s])}})),startAutoLoad:async(a={},s={})=>(C.stopAutoLoad(),await C.load(a,s),S=1,v=o((async(a,s)=>{if(s){const e=s();await N((async()=>t.setTransactionChanges(e)))}else await N((async()=>{try{t.setContent(a?.()??await e())}catch(t){i?.(t)}}))})),C),stopAutoLoad:()=>(S&&(r(v),v=void 0,S=0),C),save:async e=>(1!=w&&(w=2,await C.schedule((async()=>{try{await a(t.getContent,e)}catch(t){i?.(t)}w=0}))),C),startAutoSave:async()=>(await C.stopAutoSave().save(),y=t.addDidFinishTransactionListener(((t,e)=>{const[a,s]=e();h(a)&&h(s)||C.save((()=>[a,s]))})),C),stopAutoSave:()=>(n(y,t.delListener),y=void 0,C),schedule:async(...t)=>(((t,...e)=>{t.push(...e)})(f(L,u),...t),await(async()=>{if(!f(J,u)){for(A(J,u,1);!s(p=c(f(L,u)));)try{await p()}catch(t){i?.(t)}A(J,u,0)}})(),C),getStore:()=>t,destroy:()=>C.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return l&&(C[l]=()=>d),g(C)})(r,(async()=>y.size?[y.get(e).toJSON(),y.get(a).toJSON()]:void 0),(async(o,c)=>i.transact((()=>((o,c,r)=>{o.size||(o.set(e,new t),o.set(a,new t));const[i,l]=C(o),d=()=>{g=1};let g=1;if(n(r?.(),(([t,e])=>{g=0,p(t,((t,e)=>g?0:s(t)?i.delete(e):n(i.get(e),(e=>p(t,((t,a)=>g?0:s(t)?e.delete(a):n(e.get(a),(e=>p(t,((t,a)=>s(t)?e.delete(a):e.set(a,t)))),d)))),d))),p(e,((t,e)=>g?0:s(t)?l.delete(e):l.set(e,t)))})),g){const[t,e]=c();b(i,void 0,t,((t,e,a)=>b(i,e,a,((t,e,a)=>b(t,e,a,((t,e,a)=>{if(t.get(e)!==a)return t.set(e,a),1})))))),b(l,void 0,e,((t,e,a)=>{l.get(e)!==a&&l.set(e,a)}))}})(y,o,c)))),(t=>{const s=s=>t(void 0,(()=>((t,s)=>{if(1==o(s)&&(r=s[0].path,0==o(r)))return[t.get(e).toJSON(),t.get(a).toJSON()];var r;const[i,l]=C(t),d={},g={};return((t,a)=>{t.forEach((({path:t,changes:{keys:a}})=>c(t)==e?n(c(t),(e=>{const s=v(d,e,u),o=i.get(e);n(c(t),(t=>{const e=v(s,t,u),n=o.get(t);S(a,((t,{action:a})=>e[t]=a==N?null:n.get(t)))}),(()=>S(a,((t,{action:e})=>s[t]=e==N?null:o.get(t)?.toJSON()))))}),(()=>S(a,((t,{action:e})=>d[t]=e==N?null:i.get(t)?.toJSON())))):S(a,((t,{action:e})=>g[t]=e==N?null:l.get(t)))))})(s),[d,g]})(y,s)));return y.observeDeep(s),s}),(t=>{y.unobserveDeep(t)}),d,["getYDoc",i])};export{m as createYjsPersister};
1
+ import{Map as t}from"yjs";const e="t",a="v",n=t=>null==t,s=(t,e,a)=>n(t)?a?.():e(t),o=t=>t.length,r=t=>t.shift(),c=Object,i=t=>c.getPrototypeOf(t),g=c.entries,l=c.keys,u=c.freeze,d=(t=[])=>c.fromEntries(t),y=(t,e)=>e in t,p=(t,e)=>((t,e)=>t.map(e))(g(t),(([t,a])=>e(a,t))),h=t=>(t=>!n(t)&&s(i(t),(t=>t==c.prototype||n(i(t))),(()=>!0)))(t)&&0==(t=>o(l(t)))(t),v=(t,e,a)=>(y(t,e)||(t[e]=a()),t[e]),w=t=>new Map(t),f=(t,e)=>t?.get(e),S=(t,e)=>((t,e)=>t?.forEach(e))(t,((t,a)=>e(a,t))),A=(t,e,a)=>{return n(a)?(s=t,o=e,s?.delete(o),t):t?.set(e,a);var s,o},C=(t,e,a,n)=>{var s,o;return s=t,o=e,s?.has(o)?n?.(f(t,e)):A(t,e,a()),f(t,e)},b=w(),M=w(),O="delete",L=t=>[t.get(e),t.get(a)],J=(e,a,s,o)=>{const r=n(a)?e:e.get(a)??e.set(a,new t);let c;return p(s,((t,e)=>{o(r,e,t)&&(c=1)})),r.forEach(((t,e)=>{y(s,e)||(r.delete(e),c=1)})),n(a)||r.size||e.delete(a),c},N=(c,i,g="tinybase",l)=>{const y=i.getMap(g);return((t,e,a,o,c,i,g,l={},d=[])=>{let y,p,v,w=0;C(b,d,(()=>0)),C(M,d,(()=>[]));const[S,O,L,J,N]=((t,e)=>!t||n(e.getMergeableContent)?[0,e.getContent,e.getTransactionChanges,([t,e])=>!h(t)||!h(e),e.setContent]:[1,e.getMergeableContent,e.getTransactionMergeableChanges,([[t],[e]])=>!h(t)||!h(e),e.setDefaultContent])(g,t),D=async t=>(2!=w&&(w=1,await z.schedule((async()=>{await t(),w=0}))),z),m=e=>{var a;(S&&(a=e?.[0],Array.isArray(a))?1===e?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},z={load:async t=>await D((async()=>{try{m(await e())}catch(e){i?.(e),t&&N(t)}})),startAutoLoad:async t=>(await z.stopAutoLoad().load(t),p=o((async(t,a)=>{const n=a?.();await D((async()=>{try{m(n??t?.()??await e())}catch(t){i?.(t)}}))})),z),stopAutoLoad:()=>(p&&(c(p),p=void 0),z),isAutoLoading:()=>!n(p),save:async t=>(1!=w&&(w=2,await z.schedule((async()=>{try{await a(O,t)}catch(t){i?.(t)}w=0}))),z),startAutoSave:async()=>(await z.stopAutoSave().save(),v=t.addDidFinishTransactionListener((()=>{const t=L();J(t)&&z.save((()=>t))})),z),stopAutoSave:()=>(s(v,t.delListener),v=void 0,z),isAutoSaving:()=>!n(v),schedule:async(...t)=>(((t,...e)=>{t.push(...e)})(f(M,d),...t),await(async()=>{if(!f(b,d)){for(A(b,d,1);!n(y=r(f(M,d)));)try{await y()}catch(t){i?.(t)}A(b,d,0)}})(),z),getStore:()=>t,destroy:()=>z.stopAutoLoad().stopAutoSave(),getStats:()=>({}),...l};return u(z)})(c,(async()=>y.size?[y.get(e).toJSON(),y.get(a).toJSON()]:void 0),(async(o,r)=>i.transact((()=>((o,r,c)=>{o.size||(o.set(e,new t),o.set(a,new t));const[i,g]=L(o),l=()=>{u=1};let u=1;if(s(c?.(),(([t,e])=>{u=0,p(t,((t,e)=>u?0:n(t)?i.delete(e):s(i.get(e),(e=>p(t,((t,a)=>u?0:n(t)?e.delete(a):s(e.get(a),(e=>p(t,((t,a)=>n(t)?e.delete(a):e.set(a,t)))),l)))),l))),p(e,((t,e)=>u?0:n(t)?g.delete(e):g.set(e,t)))})),u){const[t,e]=r();J(i,void 0,t,((t,e,a)=>J(i,e,a,((t,e,a)=>J(t,e,a,((t,e,a)=>{if(t.get(e)!==a)return t.set(e,a),1})))))),J(g,void 0,e,((t,e,a)=>{g.get(e)!==a&&g.set(e,a)}))}})(y,o,r)))),(t=>{const n=n=>t(void 0,(()=>((t,n)=>{if(1==o(n)&&(c=n[0].path,0==o(c)))return[t.get(e).toJSON(),t.get(a).toJSON(),1];var c;const[i,g]=L(t),l={},u={};return((t,a)=>{t.forEach((({path:t,changes:{keys:a}})=>r(t)==e?s(r(t),(e=>{const n=v(l,e,d),o=i.get(e);s(r(t),(t=>{const e=v(n,t,d),s=o.get(t);S(a,((t,{action:a})=>e[t]=a==O?null:s.get(t)))}),(()=>S(a,((t,{action:e})=>n[t]=e==O?null:o.get(t)?.toJSON()))))}),(()=>S(a,((t,{action:e})=>l[t]=e==O?null:i.get(t)?.toJSON())))):S(a,((t,{action:e})=>u[t]=e==O?null:g.get(t)))))})(n),[l,u,1]})(y,n)));return y.observeDeep(n),n}),(t=>{y.unobserveDeep(t)}),l,!1,{getYDoc:()=>i})};export{N as createYjsPersister};
Binary file
package/lib/persisters.js CHANGED
@@ -1 +1 @@
1
- const t=t=>null==t,a=(a,e,s)=>t(a)?s?.():e(a),e=Object,s=t=>e.getPrototypeOf(t),o=e.keys,n=e.freeze,c=n=>(o=>!t(o)&&a(s(o),(a=>a==e.prototype||t(s(a))),(()=>!0)))(n)&&0==(t=>o(t).length)(n),r=t=>new Map(t),i=(t,a)=>t?.get(a),y=(a,e,s)=>{return t(s)?(o=a,n=e,o?.delete(n),a):a?.set(e,s);var o,n},d=(t,a,e)=>{var s,o;return s=t,o=a,s?.has(o)||y(t,a,e()),i(t,a)},u=r(),w=r(),h=(e,s,o,r,h,l,[p,v]=[],A=[])=>{let g,f,L,S=0,C=0;d(u,A,(()=>0)),d(w,A,(()=>[]));const O=async t=>(2!=S&&(S=1,await T.schedule((async()=>{await t(),S=0}))),T),T={load:async(t,a)=>await O((async()=>{try{e.setContent(await s())}catch{e.setContent([t,a])}})),startAutoLoad:async(t={},a={})=>(T.stopAutoLoad(),await T.load(t,a),C=1,L=r((async(t,a)=>{if(a){const t=a();await O((async()=>e.setTransactionChanges(t)))}else await O((async()=>{try{e.setContent(t?.()??await s())}catch(t){l?.(t)}}))})),T),stopAutoLoad:()=>(C&&(h(L),L=void 0,C=0),T),save:async t=>(1!=S&&(S=2,await T.schedule((async()=>{try{await o(e.getContent,t)}catch(t){l?.(t)}S=0}))),T),startAutoSave:async()=>(await T.stopAutoSave().save(),g=e.addDidFinishTransactionListener(((t,a)=>{const[e,s]=a();c(e)&&c(s)||T.save((()=>[e,s]))})),T),stopAutoSave:()=>(a(g,e.delListener),g=void 0,T),schedule:async(...a)=>(((t,...a)=>{t.push(...a)})(i(w,A),...a),await(async()=>{if(!i(u,A)){for(y(u,A,1);!t((a=i(w,A),f=a.shift()));)try{await f()}catch(t){l?.(t)}y(u,A,0)}var a})(),T),getStore:()=>e,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return p&&(T[p]=()=>v),n(T)};export{h as createCustomPersister};
1
+ const t=t=>null==t,a=(a,e,s)=>t(a)?s?.():e(a),e=Object,s=t=>e.getPrototypeOf(t),n=e.keys,o=e.freeze,r=o=>(n=>!t(n)&&a(s(n),(a=>a==e.prototype||t(s(a))),(()=>!0)))(o)&&0==(t=>n(t).length)(o),c=t=>new Map(t),i=(t,a)=>t?.get(a),y=(a,e,s)=>{return t(s)?(n=a,o=e,n?.delete(o),a):a?.set(e,s);var n,o},g=(t,a,e,s)=>{var n,o;return n=t,o=a,n?.has(o)?s?.(i(t,a)):y(t,a,e()),i(t,a)},l=c(),u=c(),d=(e,s,n,c,d,h,p,v={},w=[])=>{let A,C,L,S=0;g(l,w,(()=>0)),g(u,w,(()=>[]));const[b,f,M,T,D]=((a,e)=>!a||t(e.getMergeableContent)?[0,e.getContent,e.getTransactionChanges,([t,a])=>!r(t)||!r(a),e.setContent]:[1,e.getMergeableContent,e.getTransactionMergeableChanges,([[t],[a]])=>!r(t)||!r(a),e.setDefaultContent])(p,e),O=async t=>(2!=S&&(S=1,await k.schedule((async()=>{await t(),S=0}))),k),j=t=>{var a;(b&&(a=t?.[0],Array.isArray(a))?1===t?.[2]?e.applyMergeableChanges:e.setMergeableContent:1===t?.[2]?e.applyChanges:e.setContent)(t)},k={load:async t=>await O((async()=>{try{j(await s())}catch(a){h?.(a),t&&D(t)}})),startAutoLoad:async t=>(await k.stopAutoLoad().load(t),C=c((async(t,a)=>{const e=a?.();await O((async()=>{try{j(e??t?.()??await s())}catch(t){h?.(t)}}))})),k),stopAutoLoad:()=>(C&&(d(C),C=void 0),k),isAutoLoading:()=>!t(C),save:async t=>(1!=S&&(S=2,await k.schedule((async()=>{try{await n(f,t)}catch(t){h?.(t)}S=0}))),k),startAutoSave:async()=>(await k.stopAutoSave().save(),L=e.addDidFinishTransactionListener((()=>{const t=M();T(t)&&k.save((()=>t))})),k),stopAutoSave:()=>(a(L,e.delListener),L=void 0,k),isAutoSaving:()=>!t(L),schedule:async(...a)=>(((t,...a)=>{t.push(...a)})(i(u,w),...a),await(async()=>{if(!i(l,w)){for(y(l,w,1);!t((a=i(u,w),A=a.shift()));)try{await A()}catch(t){h?.(t)}y(l,w,0)}var a})(),k),getStore:()=>e,destroy:()=>k.stopAutoLoad().stopAutoSave(),getStats:()=>({}),...v};return o(k)};export{d as createCustomPersister};
Binary file
package/lib/queries.js CHANGED
@@ -1 +1 @@
1
- const e=e=>typeof e,t=e(""),n=e(!0),s=e(0),r=e(e),o="Listener",a="Result",l="Ids",i="Table",d="Row",c=d+"Count",u=d+l,h="Sorted"+d+l,g="Cell",v=g+l,w=Math.max,L=Math.min,f=isFinite,R=e=>null==e,y=(e,t,n)=>R(e)?n?.():t(e),T=t=>e(t)==r,b=e=>Array.isArray(e),C=e=>e.length,p=()=>{},S=(e,t)=>e.every(t),m=(e,t)=>e.forEach(t),I=e=>E(e,((e,t)=>e+t),0),Q=e=>0==C(e),E=(e,t,n)=>e.reduce(t,n),M=(e,...t)=>e.push(...t),x=Object,D=x.entries,j=x.freeze,k=e=>e?.size??0,z=(e,t)=>e?.has(t)??!1,A=e=>R(e)||0==k(e),F=e=>[...e?.values()??[]],O=e=>e.clear(),W=(e,t)=>e?.forEach(t),q=(e,t)=>e?.delete(t),B=e=>new Map(e),G=(e,t)=>e?.get(t),H=(e,t)=>W(e,((e,n)=>t(n,e))),J=(e,t,n)=>R(n)?(q(e,t),e):e?.set(t,n),K=(e,t,n)=>(z(e,t)||J(e,t,n()),G(e,t)),N=(e,t,n,s,r=0)=>y((n?K:G)(e,t[r],r>C(t)-2?n:B),(o=>{if(r>C(t)-2)return s?.(o)&&J(e,t[r]),o;const a=N(o,t,n,s,r+1);return A(o)&&J(e,t[r]),a})),P=e=>new Set(b(e)||R(e)?e:[e]),U=(e,t)=>e?.add(t),V=B([["avg",[(e,t)=>I(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=>w(...e),(e,t)=>w(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:w(t,e)]],["min",[e=>L(...e),(e,t)=>L(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:L(t,e)]],["sum",[e=>I(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,n)=>e-n+t]]]),X=((r,l)=>{const w=new WeakMap;return r=>{w.has(r)||w.set(r,(r=>{const l=r.createStore,w=l(),L=l(),I=B(),{addListener:E,callListeners:x,delListener:X}=L,[Y,Z,$,_,ee,,,te,,ne,se,re,oe,ae]=((e,t,n,s,r)=>{const o=e.hasRow,a=B(),l=B(),i=B(),d=B(),c=B(),u=B(),h=(t,n,...s)=>{const r=K(u,t,P);return m(s,(t=>U(r,t)&&n&&e.callListener(t))),s},g=(t,...n)=>y(G(u,t),(s=>{m(Q(n)?F(s):n,(t=>{e.delListener(t),q(s,t)})),A(s)&&J(u,t)})),v=(e,t)=>{J(a,e,t),z(l,e)||(J(l,e,!0),J(d,e,B()),J(c,e,B()),r(i))},w=e=>{J(a,e),J(l,e),J(d,e),J(c,e),g(e),r(i)};return[()=>e,()=>{return e=a,[...e?.keys()??[]];var e},e=>H(l,e),e=>z(l,e),e=>G(a,e),e=>G(l,e),(e,t)=>J(l,e,t),v,(t,s,r,a,l)=>{v(t,s);const i=B(),u=B(),w=G(d,t),L=G(c,t),f=t=>{const r=n=>e.getCell(s,t,n),d=G(w,t),c=o(s,t)?n(a(r,t)):void 0;var h,g;if(d===c||b(d)&&b(c)&&(g=c,C(h=d)===C(g)&&S(h,((e,t)=>g[t]===e)))||J(i,t,[d,c]),!R(l)){const e=G(L,t),n=o(s,t)?l(r,t):void 0;e!=n&&J(u,t,n)}},y=e=>{r((()=>{W(i,(([,e],t)=>J(w,t,e))),W(u,((e,t)=>J(L,t,e)))}),i,u,w,L,e),O(i),O(u)};H(w,f),e.hasTable(s)&&m(e.getRowIds(s),(e=>{z(w,e)||f(e)})),y(!0),g(t),h(t,0,e.addRowListener(s,null,((e,t,n)=>f(n))),e.addTableListener(s,(()=>y())))},w,e=>s(e,i),()=>H(u,w),h,g]})(r,0,p,E,x),le=(e,t,...n)=>m(n,(n=>U(K(K(I,t,B),e,P),n))),ie=e=>{y(G(I,e),(e=>{H(e,((e,t)=>W(t,(t=>e.delListener(t))))),O(e)})),m([L,w],(t=>t.delTable(e)))},de=(e,t,n)=>le(t,e,t.addStartTransactionListener(n.startTransaction),t.addDidFinishTransactionListener((()=>n.finishTransaction()))),ce={setQueryDefinition:(o,a,l)=>{te(o,a),ie(o);const i=[],d=[[null,[a,null,null,[],B()]]],c=[],u=[],h=[];l({select:(e,t)=>{const n=T(e)?[C(i)+"",e]:[R(t)?e:t,n=>n(e,t)];return M(i,n),{as:e=>n[0]=e}},join:(e,t,n)=>{const s=R(n)||T(t)?null:t,r=R(s)?t:n,o=[e,[e,s,T(r)?r:e=>e(r),[],B()]];return M(d,o),{as:e=>o[0]=e}},where:(e,t,n)=>M(c,T(e)?e:R(n)?n=>n(e)===t:s=>s(e,t)===n),group:(e,t,n,s,r)=>{const o=[e,[e,T(t)?[t,n,s,r]:G(V,t)??[(e,t)=>t]]];return M(u,o),{as:e=>o[0]=e}},having:(e,t)=>M(h,T(e)?e:n=>n(e)===t)});const g=B(i);if(A(g))return ce;const v=B(d);H(v,((e,[,t])=>y(G(v,t),(({3:t})=>R(e)?0:M(t,e)))));const b=B(u);let p=w;if(A(b)&&Q(h))p=L;else{de(o,p,L);const r=B();H(b,((e,[t,n])=>U(K(r,t,P),[e,n])));const a=P();H(g,(e=>z(r,e)?0:U(a,e)));const l=B(),i=(a,l,i,d)=>y(a,(([c,u,g,v])=>{H(l,((o,[a])=>{const l=K(c,o,B),u=G(l,i),h=d?void 0:a;if(u!==h){const a=P([[u,h]]),d=k(l);J(l,i,h),W(G(r,o),(([r,o])=>{const i=((e,t,n,s,r,o=!1)=>{if(A(n))return;const[a,l,i,d]=r;return o||=R(e),W(s,(([n,s])=>{o||(e=R(n)?l?.(e,s,t++):R(s)?i?.(e,n,t--):d?.(e,s,n,t),o||=R(e))})),o?a(F(n),k(n)):e})(v[r],d,l,a,o);v[r]=R((r=>{const o=e(r);return(e=>e==t||e==n)(o)||o==s&&f(r)?o:void 0})(i))?null:i}))}})),A(u)||!S(h,(e=>e((e=>v[e]))))?L.delRow(o,g):R(g)?a[2]=L.addRow(o,v):L.setRow(o,g,v)}));le(p,o,p.addRowListener(o,null,((e,t,n,s)=>{const d=[],c=[],u=B(),h=p.hasRow(o,n);let g=!h;W(a,(e=>{const[t,r,a]=s(o,n,e);M(d,r),M(c,a),g||=t})),H(r,(e=>{const[t,,r]=s(o,n,e);(g||t)&&J(u,e,[r])})),g&&i(N(l,d,void 0,(([,e])=>(q(e,n),A(e)))),u,n,1),h&&i(N(l,c,(()=>{const e={};return W(a,(t=>e[t]=p.getCell(o,n,t))),[B(),P(),void 0,e]}),(([,e])=>{U(e,n)})),u,n)})))}de(o,r,p);const I=(e,t,n,s)=>{const l=e=>r.getCell(t,n,e);m(s,(t=>{const[n,,s,a,i]=G(v,t),d=s?.(l,e),[c,u]=G(i,e)??[];d!=c&&(R(u)||ae(o,u),J(i,e,R(d)?null:[d,...oe(o,1,r.addRowListener(n,d,(()=>I(e,n,d,a))))]))})),(e=>{const t=(t,n)=>r.getCell(...R(n)?[a,e,t]:t===a?[a,e,n]:[G(v,t)?.[0],G(G(v,t)?.[4],e)?.[0],n]);p.transaction((()=>S(c,(e=>e(t)))?H(g,((n,s)=>((e,t,n,s,r)=>R(r)?e.delCell(t,n,s,!0):e.setCell(t,n,s,r))(p,o,e,n,s(t,e)))):p.delRow(o,e)))})(e)},{3:E}=G(v,null);return p.transaction((()=>oe(o,1,r.addRowListener(a,null,((e,t,n)=>{r.hasRow(a,n)?I(n,a,n,E):(p.delRow(o,n),W(v,(({4:e})=>y(G(e,n),(([,t])=>{ae(o,t),J(e,n)})))))}))))),ce},delQueryDefinition:e=>(ie(e),ne(e),ce),getStore:Y,getQueryIds:Z,forEachQuery:$,hasQuery:_,getTableId:ee,addQueryIdsListener:e=>se((()=>e(ce))),delListener:e=>(X(e),ce),destroy:re,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:n,...s}=L.getListenerStats();return s}};var ue;return ue=([e,t],n)=>{m(e?["get","has","forEach"]:["get"],(e=>ce[e+a+n]=(...t)=>L[e+n](...t))),ce["add"+a+n+o]=(...e)=>{return L["add"+n+o](...(s=e,0,r=t,s.slice(0,r)),((n,...s)=>e[t](ce,...s)),!0);var s,r}},((e,t)=>{D({[i]:[1,1],[i+v]:[0,1],[c]:[0,1],[u]:[0,1],[h]:[0,5],[d]:[1,2],[v]:[0,2],[g]:[1,3]}).map(t)})(0,(([e,t])=>ue(t,e))),j(ce)})(r));return w.get(r)}})();export{X as createQueries};
1
+ const e=e=>typeof e,t=e(""),n=e(!0),s=e(0),r=e(e),o="Listener",a="Result",l="Ids",i="Table",d="Row",c=d+"Count",u=d+l,h="Sorted"+d+l,g="Cell",v=g+l,w=Math.max,L=Math.min,f=isFinite,R=e=>null==e,y=(e,t,n)=>R(e)?n?.():t(e),T=t=>e(t)==r,b=e=>Array.isArray(e),C=e=>e.length,p=()=>{},S=(e,t)=>e.every(t),m=(e,t)=>e.forEach(t),I=e=>E(e,((e,t)=>e+t),0),Q=e=>0==C(e),E=(e,t,n)=>e.reduce(t,n),M=(e,...t)=>e.push(...t),x=Object,D=x.entries,j=x.freeze,k=e=>e?.size??0,z=(e,t)=>e?.has(t)??!1,A=e=>R(e)||0==k(e),F=e=>[...e?.values()??[]],O=e=>e.clear(),W=(e,t)=>e?.forEach(t),q=(e,t)=>e?.delete(t),B=e=>new Map(e),G=(e,t)=>e?.get(t),H=(e,t)=>W(e,((e,n)=>t(n,e))),J=(e,t,n)=>R(n)?(q(e,t),e):e?.set(t,n),K=(e,t,n,s)=>(z(e,t)?s?.(G(e,t)):J(e,t,n()),G(e,t)),N=(e,t,n,s,r=0)=>y((n?K:G)(e,t[r],r>C(t)-2?n:B),(o=>{if(r>C(t)-2)return s?.(o)&&J(e,t[r]),o;const a=N(o,t,n,s,r+1);return A(o)&&J(e,t[r]),a})),P=e=>new Set(b(e)||R(e)?e:[e]),U=(e,t)=>e?.add(t),V=B([["avg",[(e,t)=>I(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=>w(...e),(e,t)=>w(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:w(t,e)]],["min",[e=>L(...e),(e,t)=>L(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:L(t,e)]],["sum",[e=>I(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,n)=>e-n+t]]]),X=((r,l)=>{const w=new WeakMap;return r=>{w.has(r)||w.set(r,(r=>{const l=r.createStore,w=l(),L=l(),I=B(),{addListener:E,callListeners:x,delListener:X}=L,[Y,Z,$,_,ee,,,te,,ne,se,re,oe,ae]=((e,t,n,s,r)=>{const o=e.hasRow,a=B(),l=B(),i=B(),d=B(),c=B(),u=B(),h=(t,n,...s)=>{const r=K(u,t,P);return m(s,(t=>U(r,t)&&n&&e.callListener(t))),s},g=(t,...n)=>y(G(u,t),(s=>{m(Q(n)?F(s):n,(t=>{e.delListener(t),q(s,t)})),A(s)&&J(u,t)})),v=(e,t)=>{J(a,e,t),z(l,e)||(J(l,e,!0),J(d,e,B()),J(c,e,B()),r(i))},w=e=>{J(a,e),J(l,e),J(d,e),J(c,e),g(e),r(i)};return[()=>e,()=>{return e=a,[...e?.keys()??[]];var e},e=>H(l,e),e=>z(l,e),e=>G(a,e),e=>G(l,e),(e,t)=>J(l,e,t),v,(t,s,r,a,l)=>{v(t,s);const i=B(),u=B(),w=G(d,t),L=G(c,t),f=t=>{const r=n=>e.getCell(s,t,n),d=G(w,t),c=o(s,t)?n(a(r,t)):void 0;var h,g;if(d===c||b(d)&&b(c)&&(g=c,C(h=d)===C(g)&&S(h,((e,t)=>g[t]===e)))||J(i,t,[d,c]),!R(l)){const e=G(L,t),n=o(s,t)?l(r,t):void 0;e!=n&&J(u,t,n)}},y=e=>{r((()=>{W(i,(([,e],t)=>J(w,t,e))),W(u,((e,t)=>J(L,t,e)))}),i,u,w,L,e),O(i),O(u)};H(w,f),e.hasTable(s)&&m(e.getRowIds(s),(e=>{z(w,e)||f(e)})),y(!0),g(t),h(t,0,e.addRowListener(s,null,((e,t,n)=>f(n))),e.addTableListener(s,(()=>y())))},w,e=>s(e,i),()=>H(u,w),h,g]})(r,0,p,E,x),le=(e,t,...n)=>m(n,(n=>U(K(K(I,t,B),e,P),n))),ie=e=>{y(G(I,e),(e=>{H(e,((e,t)=>W(t,(t=>e.delListener(t))))),O(e)})),m([L,w],(t=>t.delTable(e)))},de=(e,t,n)=>le(t,e,t.addStartTransactionListener(n.startTransaction),t.addDidFinishTransactionListener((()=>n.finishTransaction()))),ce={setQueryDefinition:(o,a,l)=>{te(o,a),ie(o);const i=[],d=[[null,[a,null,null,[],B()]]],c=[],u=[],h=[];l({select:(e,t)=>{const n=T(e)?[C(i)+"",e]:[R(t)?e:t,n=>n(e,t)];return M(i,n),{as:e=>n[0]=e}},join:(e,t,n)=>{const s=R(n)||T(t)?null:t,r=R(s)?t:n,o=[e,[e,s,T(r)?r:e=>e(r),[],B()]];return M(d,o),{as:e=>o[0]=e}},where:(e,t,n)=>M(c,T(e)?e:R(n)?n=>n(e)===t:s=>s(e,t)===n),group:(e,t,n,s,r)=>{const o=[e,[e,T(t)?[t,n,s,r]:G(V,t)??[(e,t)=>t]]];return M(u,o),{as:e=>o[0]=e}},having:(e,t)=>M(h,T(e)?e:n=>n(e)===t)});const g=B(i);if(A(g))return ce;const v=B(d);H(v,((e,[,t])=>y(G(v,t),(({3:t})=>R(e)?0:M(t,e)))));const b=B(u);let p=w;if(A(b)&&Q(h))p=L;else{de(o,p,L);const r=B();H(b,((e,[t,n])=>U(K(r,t,P),[e,n])));const a=P();H(g,(e=>z(r,e)?0:U(a,e)));const l=B(),i=(a,l,i,d)=>y(a,(([c,u,g,v])=>{H(l,((o,[a])=>{const l=K(c,o,B),u=G(l,i),h=d?void 0:a;if(u!==h){const a=P([[u,h]]),d=k(l);J(l,i,h),W(G(r,o),(([r,o])=>{const i=((e,t,n,s,r,o=!1)=>{if(A(n))return;const[a,l,i,d]=r;return o||=R(e),W(s,(([n,s])=>{o||(e=R(n)?l?.(e,s,t++):R(s)?i?.(e,n,t--):d?.(e,s,n,t),o||=R(e))})),o?a(F(n),k(n)):e})(v[r],d,l,a,o);v[r]=R((r=>{const o=e(r);return(e=>e==t||e==n)(o)||o==s&&f(r)?o:void 0})(i))?null:i}))}})),A(u)||!S(h,(e=>e((e=>v[e]))))?L.delRow(o,g):R(g)?a[2]=L.addRow(o,v):L.setRow(o,g,v)}));le(p,o,p.addRowListener(o,null,((e,t,n,s)=>{const d=[],c=[],u=B(),h=p.hasRow(o,n);let g=!h;W(a,(e=>{const[t,r,a]=s(o,n,e);M(d,r),M(c,a),g||=t})),H(r,(e=>{const[t,,r]=s(o,n,e);(g||t)&&J(u,e,[r])})),g&&i(N(l,d,void 0,(([,e])=>(q(e,n),A(e)))),u,n,1),h&&i(N(l,c,(()=>{const e={};return W(a,(t=>e[t]=p.getCell(o,n,t))),[B(),P(),void 0,e]}),(([,e])=>{U(e,n)})),u,n)})))}de(o,r,p);const I=(e,t,n,s)=>{const l=e=>r.getCell(t,n,e);m(s,(t=>{const[n,,s,a,i]=G(v,t),d=s?.(l,e),[c,u]=G(i,e)??[];d!=c&&(R(u)||ae(o,u),J(i,e,R(d)?null:[d,...oe(o,1,r.addRowListener(n,d,(()=>I(e,n,d,a))))]))})),(e=>{const t=(t,n)=>r.getCell(...R(n)?[a,e,t]:t===a?[a,e,n]:[G(v,t)?.[0],G(G(v,t)?.[4],e)?.[0],n]);p.transaction((()=>S(c,(e=>e(t)))?H(g,((n,s)=>((e,t,n,s,r)=>R(r)?e.delCell(t,n,s,!0):e.setCell(t,n,s,r))(p,o,e,n,s(t,e)))):p.delRow(o,e)))})(e)},{3:E}=G(v,null);return p.transaction((()=>oe(o,1,r.addRowListener(a,null,((e,t,n)=>{r.hasRow(a,n)?I(n,a,n,E):(p.delRow(o,n),W(v,(({4:e})=>y(G(e,n),(([,t])=>{ae(o,t),J(e,n)})))))}))))),ce},delQueryDefinition:e=>(ie(e),ne(e),ce),getStore:Y,getQueryIds:Z,forEachQuery:$,hasQuery:_,getTableId:ee,addQueryIdsListener:e=>se((()=>e(ce))),delListener:e=>(X(e),ce),destroy:re,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:n,...s}=L.getListenerStats();return s}};var ue;return ue=([e,t],n)=>{m(e?["get","has","forEach"]:["get"],(e=>ce[e+a+n]=(...t)=>L[e+n](...t))),ce["add"+a+n+o]=(...e)=>{return L["add"+n+o](...(s=e,0,r=t,s.slice(0,r)),((n,...s)=>e[t](ce,...s)),!0);var s,r}},((e,t)=>{D({[i]:[1,1],[i+v]:[0,1],[c]:[0,1],[u]:[0,1],[h]:[0,5],[d]:[1,2],[v]:[0,2],[g]:[1,3]}).map(t)})(0,(([e,t])=>ue(t,e))),j(ce)})(r));return w.get(r)}})();export{X as createQueries};
package/lib/queries.js.gz CHANGED
Binary file
@@ -1 +1 @@
1
- const e=e=>typeof e,t="",n=e(t),r=e=>null==e,s=(e,t,n)=>r(e)?n?.():t(e),o=e=>Array.isArray(e),i=e=>e.length,a=(e,t)=>e.forEach(t),l=(e,...t)=>e.push(...t),d=Object.freeze,c=(e,t)=>e?.has(t)??!1,u=e=>r(e)||0==(e=>e?.size??0)(e),R=e=>[...e?.values()??[]],h=e=>e.clear(),f=(e,t)=>e?.forEach(t),L=(e,t)=>e?.delete(t),g=e=>new Map(e),w=(e,t)=>e?.get(t),p=(e,t)=>f(e,((e,n)=>t(n,e))),I=(e,t,n)=>r(n)?(L(e,t),e):e?.set(t,n),v=(e,t,n)=>(c(e,t)||I(e,t,n()),w(e,t)),y=(e,t,n,r,o=0)=>s((n?v:w)(e,t[o],o>i(t)-2?n:g),(s=>{if(o>i(t)-2)return r?.(s)&&I(e,t[o]),s;const a=y(s,t,n,r,o+1);return u(s)&&I(e,t[o]),a})),b=e=>new Set(o(e)||r(e)?e:[e]),k=(e,t)=>e?.add(t),E=/^\d+$/,T=((T,m)=>{const S=new WeakMap;return T=>{S.has(T)||S.set(T,(T=>{const m=g(),S=g(),z=g(),A=g(),[D,M,j]=(e=>{let n;const[o,d]=(()=>{const e=[];let n=0;return[r=>(r?e.shift():null)??t+n++,t=>{E.test(t)&&i(e)<1e3&&l(e,t)}]})(),c=g();return[(e,r,s,i=[],a=(()=>[]))=>{n??=P;const l=o(1);return I(c,l,[e,r,s,i,a]),k(y(r,s??[t],b),l),l},(e,r,...s)=>a(((e,n=[t])=>{const r=[],s=(e,t)=>t==i(n)?l(r,e):null===n[t]?f(e,(e=>s(e,t+1))):a([n[t],null],(n=>s(w(e,n),t+1)));return s(e,0),r})(e,r),(e=>f(e,(e=>w(c,e)[0](n,...r??[],...s))))),e=>s(w(c,e),(([,n,r])=>(y(n,r??[t],void 0,(t=>(L(t,e),u(t)?1:0))),I(c,e),d(e),r))),e=>s(w(c,e),(([e,,t=[],s,o])=>{const l=(...d)=>{const c=i(d);c==i(t)?e(n,...d,...o(d)):r(t[c])?a(s[c]?.(...d)??[],(e=>l(...d,e))):l(...d,t[c])};l()}))]})(),[x,C,O,W,$,q,,,B,F,G,H]=((e,n,l,d,y)=>{const E=e.hasRow,T=g(),m=g(),S=g(),z=g(),A=g(),D=g(),M=(t,n,...r)=>{const s=v(D,t,b);return a(r,(t=>k(s,t)&&n&&e.callListener(t))),r},j=(t,...n)=>s(w(D,t),(r=>{a(0==i(n)?R(r):n,(t=>{e.delListener(t),L(r,t)})),u(r)&&I(D,t)})),x=(e,t)=>{I(T,e,t),c(m,e)||(I(m,e,[g(),g(),g(),g()]),I(z,e,g()),I(A,e,g()),y(S))},C=e=>{I(T,e),I(m,e),I(z,e),I(A,e),j(e),y(S)};return[()=>e,()=>{return e=T,[...e?.keys()??[]];var e},e=>p(m,e),e=>c(m,e),e=>w(T,e),e=>w(m,e),(e,t)=>I(m,e,t),x,(n,s,l,d,u)=>{x(n,s);const R=g(),L=g(),v=w(z,n),y=w(A,n),b=n=>{const a=t=>e.getCell(s,n,t),l=w(v,n),c=E(s,n)?(h=d(a,n),r(h)?void 0:h+t):void 0;var h,f,g,p;if(l===c||o(l)&&o(c)&&(g=c,i(f=l)===i(g)&&(p=(e,t)=>g[t]===e,f.every(p)))||I(R,n,[l,c]),!r(u)){const e=w(y,n),t=E(s,n)?u(a,n):void 0;e!=t&&I(L,n,t)}},k=e=>{l((()=>{f(R,(([,e],t)=>I(v,t,e))),f(L,((e,t)=>I(y,t,e)))}),R,L,v,y,e),h(R),h(L)};p(v,b),e.hasTable(s)&&a(e.getRowIds(s),(e=>{c(v,e)||b(e)})),k(!0),j(n),M(n,0,e.addRowListener(s,null,((e,t,n)=>b(n))),e.addTableListener(s,(()=>k())))},C,e=>d(e,S),()=>p(D,C),M,j]})(T,0,0,D,M),J=(e,t,n)=>s(q(e),(([s,,o])=>{if(!c(o,t)){const i=b();if($(e)!=N(e))k(i,t);else{let e=t;for(;!r(e)&&!c(i,e);)k(i,e),e=w(s,e)}if(n)return i;I(o,t,i)}return w(o,t)})),K=(e,t)=>s(q(e),(([,,e])=>I(e,t))),N=e=>w(m,e),P={setRelationshipDefinition:(o,i,a,l)=>{return I(m,o,a),B(o,i,((e,t)=>{const n=b(),i=b(),a=b(),[l,d]=q(o);f(t,(([e,t],R)=>{r(e)||(k(i,e),s(w(d,e),(t=>{L(t,R),u(t)&&I(d,e)}))),r(t)||(k(i,t),c(d,t)||I(d,t,b()),k(w(d,t),R)),k(n,R),I(l,R,t),p(w(A,o),(e=>{c(J(o,e),R)&&k(a,e)}))})),e(),f(n,(e=>M(S,[o,e]))),f(i,(e=>M(z,[o,e]))),f(a,(e=>{K(o,e),M(A,[o,e])}))}),e(d=l)==n?e=>e(d):d??(()=>t)),P;var d},delRelationshipDefinition:e=>(I(m,e),F(e),P),getStore:x,getRelationshipIds:C,forEachRelationship:e=>O((t=>e(t,(e=>T.forEachRow($(t),e))))),hasRelationship:W,getLocalTableId:$,getRemoteTableId:N,getRemoteRowId:(e,t)=>w(q(e)?.[0],t),getLocalRowIds:(e,t)=>R(w(q(e)?.[1],t)),getLinkedRowIds:(e,t)=>r(q(e))?[t]:R(J(e,t,!0)),addRelationshipIdsListener:G,addRemoteRowIdListener:(e,t,n)=>D(n,S,[e,t]),addLocalRowIdsListener:(e,t,n)=>D(n,z,[e,t]),addLinkedRowIdsListener:(e,t,n)=>(J(e,t),D(n,A,[e,t])),delListener:e=>(K(...j(e)??[]),P),destroy:H,getListenerStats:()=>({})};return d(P)})(T));return S.get(T)}})();export{T as createRelationships};
1
+ const e=e=>typeof e,t="",n=e(t),r=e=>null==e,s=(e,t,n)=>r(e)?n?.():t(e),o=e=>Array.isArray(e),i=e=>e.length,a=(e,t)=>e.forEach(t),l=(e,...t)=>e.push(...t),d=Object.freeze,c=(e,t)=>e?.has(t)??!1,u=e=>r(e)||0==(e=>e?.size??0)(e),R=e=>[...e?.values()??[]],h=e=>e.clear(),f=(e,t)=>e?.forEach(t),L=(e,t)=>e?.delete(t),g=e=>new Map(e),w=(e,t)=>e?.get(t),p=(e,t)=>f(e,((e,n)=>t(n,e))),I=(e,t,n)=>r(n)?(L(e,t),e):e?.set(t,n),v=(e,t,n,r)=>(c(e,t)?r?.(w(e,t)):I(e,t,n()),w(e,t)),y=(e,t,n,r,o=0)=>s((n?v:w)(e,t[o],o>i(t)-2?n:g),(s=>{if(o>i(t)-2)return r?.(s)&&I(e,t[o]),s;const a=y(s,t,n,r,o+1);return u(s)&&I(e,t[o]),a})),b=e=>new Set(o(e)||r(e)?e:[e]),k=(e,t)=>e?.add(t),E=/^\d+$/,T=((T,m)=>{const S=new WeakMap;return T=>{S.has(T)||S.set(T,(T=>{const m=g(),S=g(),z=g(),A=g(),[D,M,j]=(e=>{let n;const[o,d]=(()=>{const e=[];let n=0;return[r=>(r?e.shift():null)??t+n++,t=>{E.test(t)&&i(e)<1e3&&l(e,t)}]})(),c=g();return[(e,r,s,i=[],a=(()=>[]))=>{n??=P;const l=o(1);return I(c,l,[e,r,s,i,a]),k(y(r,s??[t],b),l),l},(e,r,...s)=>a(((e,n=[t])=>{const r=[],s=(e,t)=>t==i(n)?l(r,e):null===n[t]?f(e,(e=>s(e,t+1))):a([n[t],null],(n=>s(w(e,n),t+1)));return s(e,0),r})(e,r),(e=>f(e,(e=>w(c,e)[0](n,...r??[],...s))))),e=>s(w(c,e),(([,n,r])=>(y(n,r??[t],void 0,(t=>(L(t,e),u(t)?1:0))),I(c,e),d(e),r))),e=>s(w(c,e),(([e,,t=[],s,o])=>{const l=(...d)=>{const c=i(d);c==i(t)?e(n,...d,...o(d)):r(t[c])?a(s[c]?.(...d)??[],(e=>l(...d,e))):l(...d,t[c])};l()}))]})(),[x,C,O,W,$,q,,,B,F,G,H]=((e,n,l,d,y)=>{const E=e.hasRow,T=g(),m=g(),S=g(),z=g(),A=g(),D=g(),M=(t,n,...r)=>{const s=v(D,t,b);return a(r,(t=>k(s,t)&&n&&e.callListener(t))),r},j=(t,...n)=>s(w(D,t),(r=>{a(0==i(n)?R(r):n,(t=>{e.delListener(t),L(r,t)})),u(r)&&I(D,t)})),x=(e,t)=>{I(T,e,t),c(m,e)||(I(m,e,[g(),g(),g(),g()]),I(z,e,g()),I(A,e,g()),y(S))},C=e=>{I(T,e),I(m,e),I(z,e),I(A,e),j(e),y(S)};return[()=>e,()=>{return e=T,[...e?.keys()??[]];var e},e=>p(m,e),e=>c(m,e),e=>w(T,e),e=>w(m,e),(e,t)=>I(m,e,t),x,(n,s,l,d,u)=>{x(n,s);const R=g(),L=g(),v=w(z,n),y=w(A,n),b=n=>{const a=t=>e.getCell(s,n,t),l=w(v,n),c=E(s,n)?(h=d(a,n),r(h)?void 0:h+t):void 0;var h,f,g,p;if(l===c||o(l)&&o(c)&&(g=c,i(f=l)===i(g)&&(p=(e,t)=>g[t]===e,f.every(p)))||I(R,n,[l,c]),!r(u)){const e=w(y,n),t=E(s,n)?u(a,n):void 0;e!=t&&I(L,n,t)}},k=e=>{l((()=>{f(R,(([,e],t)=>I(v,t,e))),f(L,((e,t)=>I(y,t,e)))}),R,L,v,y,e),h(R),h(L)};p(v,b),e.hasTable(s)&&a(e.getRowIds(s),(e=>{c(v,e)||b(e)})),k(!0),j(n),M(n,0,e.addRowListener(s,null,((e,t,n)=>b(n))),e.addTableListener(s,(()=>k())))},C,e=>d(e,S),()=>p(D,C),M,j]})(T,0,0,D,M),J=(e,t,n)=>s(q(e),(([s,,o])=>{if(!c(o,t)){const i=b();if($(e)!=N(e))k(i,t);else{let e=t;for(;!r(e)&&!c(i,e);)k(i,e),e=w(s,e)}if(n)return i;I(o,t,i)}return w(o,t)})),K=(e,t)=>s(q(e),(([,,e])=>I(e,t))),N=e=>w(m,e),P={setRelationshipDefinition:(o,i,a,l)=>{return I(m,o,a),B(o,i,((e,t)=>{const n=b(),i=b(),a=b(),[l,d]=q(o);f(t,(([e,t],R)=>{r(e)||(k(i,e),s(w(d,e),(t=>{L(t,R),u(t)&&I(d,e)}))),r(t)||(k(i,t),c(d,t)||I(d,t,b()),k(w(d,t),R)),k(n,R),I(l,R,t),p(w(A,o),(e=>{c(J(o,e),R)&&k(a,e)}))})),e(),f(n,(e=>M(S,[o,e]))),f(i,(e=>M(z,[o,e]))),f(a,(e=>{K(o,e),M(A,[o,e])}))}),e(d=l)==n?e=>e(d):d??(()=>t)),P;var d},delRelationshipDefinition:e=>(I(m,e),F(e),P),getStore:x,getRelationshipIds:C,forEachRelationship:e=>O((t=>e(t,(e=>T.forEachRow($(t),e))))),hasRelationship:W,getLocalTableId:$,getRemoteTableId:N,getRemoteRowId:(e,t)=>w(q(e)?.[0],t),getLocalRowIds:(e,t)=>R(w(q(e)?.[1],t)),getLinkedRowIds:(e,t)=>r(q(e))?[t]:R(J(e,t,!0)),addRelationshipIdsListener:G,addRemoteRowIdListener:(e,t,n)=>D(n,S,[e,t]),addLocalRowIdsListener:(e,t,n)=>D(n,z,[e,t]),addLinkedRowIdsListener:(e,t,n)=>(J(e,t),D(n,A,[e,t])),delListener:e=>(K(...j(e)??[]),P),destroy:H,getListenerStats:()=>({})};return d(P)})(T));return S.get(T)}})();export{T as createRelationships};
Binary file
package/lib/store.js CHANGED
@@ -1 +1 @@
1
- const e=e=>typeof e,t="",s=e(t),l=e(!0),n=e(0),a=e(e),o="type",r="default",c="Has",i="Ids",d="Table",u=d+"s",h=d+i,g="Row",f=g+"Count",T=g+i,V="Cell",b=V+i,C="Value",v=C+"s",S=C+i,w=e=>t+e,I=isFinite,m=e=>null==e,y=(e,t,s)=>m(e)?s?.():t(e),R=e=>e==s||e==l,p=t=>e(t)==a,J=(e,t,s)=>e.slice(t,s),L=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.keys,M=z.isFrozen,N=z.freeze,j=e=>!m(e)&&y(P(e),(e=>e==z.prototype||m(P(e))),(()=>!0)),x=(e,t)=>!m(((e,t)=>y(e,(e=>e[t])))(e,t)),D=(e,t)=>(delete e[t],e),H=(e,t)=>F(k(e),(([e,s])=>t(s,e))),W=e=>j(e)&&0==(e=>L(A(e)))(e),$=e=>e?.size??0,q=(e,t)=>e?.has(t)??!1,B=e=>m(e)||0==$(e),G=e=>e.clear(),K=(e,t)=>e?.forEach(t),Q=(e,t)=>e?.delete(t),U=e=>new Map(e),X=e=>[...e?.keys()??[]],Y=(e,t)=>e?.get(t),Z=(e,t)=>K(e,((e,s)=>t(s,e))),_=(e,t,s)=>m(s)?(Q(e,t),e):e?.set(t,s),ee=(e,t,s)=>(q(e,t)||_(e,t,s()),Y(e,t)),te=(e,t,s,l=_)=>(H(t,((t,l)=>s(e,l,t))),Z(e,(s=>x(t,s)?0:l(e,s))),e),se=(e,t,s)=>{const l={};return K(e,((e,n)=>{const a=t?t(e,n):e;!s?.(a,e)&&(l[n]=a)})),l},le=(e,t,s)=>se(e,(e=>se(e,t,s)),W),ne=(e,t,s)=>se(e,(e=>le(e,t,s)),W),ae=(e,t)=>{const s=U();return K(e,((e,l)=>s.set(l,t?.(e)??e))),s},oe=e=>ae(e,ae),re=e=>ae(e,oe),ce=(e,t,s,l,n=0)=>y((s?ee:Y)(e,t[n],n>L(t)-2?s:U),(a=>{if(n>L(t)-2)return l?.(a)&&_(e,t[n]),a;const o=ce(a,t,s,l,n+1);return B(a)&&_(e,t[n]),o})),ie=e=>new Set(Array.isArray(e)||m(e)?e:[e]),de=(e,t)=>e?.add(t),ue=/^\d+$/,he=()=>{const e=[];let s=0;return[l=>(l?e.shift():null)??t+s++,t=>{ue.test(t)&&L(e)<1e3&&O(e,t)}]},ge=e=>[e,e],fe=()=>[U(),U()],Te=e=>[...e],Ve=([e,t])=>e===t,be=t=>{const s=e(t);return R(s)||s==n&&I(t)?s:void 0},Ce=(e,t,s,l,n)=>m(n)?e.delCell(t,s,l,!0):e.setCell(t,s,l,n),ve=(e,t,s)=>m(s)?e.delValue(t):e.setValue(t,s),Se=e=>JSON.stringify(e,((e,t)=>t instanceof Map?z.fromEntries([...t]):t)),we=JSON.parse,Ie=(e,t,s)=>m(e)||!j(e)||W(e)||M(e)?(s?.(),!1):(H(e,((s,l)=>{t(s,l)||D(e,l)})),!W(e)),me=(e,t,s)=>_(e,t,Y(e,t)==-s?void 0:s),ye=()=>{let e,s,l=!1,a=!1,i=!1,I=!1,z=0;const P=U(),k=U(),A=U(),M=U(),j=U(),ue=U(),Re=U(),pe=U(),Je=U(),Le=U(),Ee=U(),Fe=U(),Oe=U(),ze=U(),Pe=ie(),ke=U(),Ae=U(),Me=U(),Ne=U(),je=fe(),xe=fe(),De=fe(),He=fe(),We=fe(),$e=fe(),qe=fe(),Be=fe(),Ge=fe(),Ke=fe(),Qe=fe(),Ue=fe(),Xe=fe(),Ye=fe(),Ze=fe(),_e=fe(),et=fe(),tt=fe(),st=fe(),lt=fe(),nt=fe(),at=fe(),ot=U(),rt=fe(),[ct,it,dt,ut]=(e=>{let s;const[l,n]=he(),a=U();return[(e,n,o,r=[],c=(()=>[]))=>{s??=Ps;const i=l(1);return _(a,i,[e,n,o,r,c]),de(ce(n,o??[t],ie),i),i},(e,l,...n)=>E(((e,s=[t])=>{const l=[],n=(e,t)=>t==L(s)?O(l,e):null===s[t]?K(e,(e=>n(e,t+1))):E([s[t],null],(s=>n(Y(e,s),t+1)));return n(e,0),l})(e,l),(e=>K(e,(e=>Y(a,e)[0](s,...l??[],...n))))),e=>y(Y(a,e),(([,s,l])=>(ce(s,l??[t],void 0,(t=>(Q(t,e),B(t)?1:0))),_(a,e),n(e),l))),e=>y(Y(a,e),(([e,,t=[],l,n])=>{const a=(...o)=>{const r=L(o);r==L(t)?e(s,...o,...n(o)):m(t[r])?E(l[r]?.(...o)??[],(e=>a(...o,e))):a(...o,t[r])};a()}))]})(),ht=e=>{if(!Ie(e,((e,t)=>[o,r].includes(t))))return!1;const t=e[o];return!(!R(t)&&t!=n||(be(e[r])!=t&&D(e,r),0))},gt=(t,s)=>(!e||q(Ee,s)||$t(s))&&Ie(t,((e,t)=>ft(s,t,e)),(()=>$t(s))),ft=(e,t,s,l)=>Ie(l?s:Ct(s,e,t),((l,n)=>y(Tt(e,t,n,l),(e=>(s[n]=e,!0)),(()=>!1))),(()=>$t(e,t))),Tt=(t,s,l,n)=>e?y(Y(Y(Ee,t),l),(e=>be(n)!=e[o]?$t(t,s,l,n,e[r]):n),(()=>$t(t,s,l,n))):m(be(n))?$t(t,s,l,n):n,Vt=(e,t)=>Ie(t?e:vt(e),((t,s)=>y(bt(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>qt())),bt=(e,t)=>s?y(Y(Oe,e),(s=>be(t)!=s[o]?qt(e,t,s[r]):t),(()=>qt(e,t))):m(be(t))?qt(e,t):t,Ct=(e,t,s)=>(y(Y(Fe,t),(([l,n])=>{K(l,((t,s)=>{x(e,s)||(e[s]=t)})),K(n,(l=>{x(e,l)||$t(t,s,l)}))})),e),vt=e=>(s&&(K(ze,((t,s)=>{x(e,s)||(e[s]=t)})),K(Pe,(t=>{x(e,t)||qt(t)}))),e),St=e=>te(Ee,e,((e,t,s)=>{const l=U(),n=ie();te(ee(Ee,t,U),s,((e,t,s)=>{_(e,t,s),y(s[r],(e=>_(l,t,e)),(()=>de(n,t)))})),_(Fe,t,[l,n])}),((e,t)=>{_(Ee,t),_(Fe,t)})),wt=e=>te(Oe,e,((e,t,s)=>{_(Oe,t,s),y(s[r],(e=>_(ze,t,e)),(()=>de(Pe,t)))}),((e,t)=>{_(Oe,t),_(ze,t),Q(Pe,t)})),It=e=>W(e)?ys():vs(e),mt=e=>te(Me,e,((e,t,s)=>yt(t,s)),((e,t)=>Pt(t))),yt=(e,t)=>te(ee(Me,e,(()=>(Nt(e,1),_(ke,e,he()),_(Ae,e,U()),U()))),t,((t,s,l)=>Rt(e,t,s,l)),((t,s)=>kt(e,t,s))),Rt=(e,t,s,l,n)=>te(ee(t,s,(()=>(jt(e,s,1),U()))),l,((t,l,n)=>pt(e,s,t,l,n)),((l,a)=>At(e,t,s,l,a,n))),pt=(e,t,s,l,n)=>{q(s,l)||xt(e,t,l,1);const a=Y(s,l);n!==a&&(Dt(e,t,l,a,n),_(s,l,n))},Jt=(e,t,s,l,n)=>y(Y(t,s),(t=>pt(e,s,t,l,n)),(()=>Rt(e,t,s,Ct({[l]:n},e,s)))),Lt=e=>W(e)?Js():Ss(e),Et=e=>te(Ne,e,((e,t,s)=>Ft(t,s)),((e,t)=>Mt(t))),Ft=(e,t)=>{q(Ne,e)||Ht(e,1);const s=Y(Ne,e);t!==s&&(Wt(e,s,t),_(Ne,e,t))},Ot=(e,t)=>{const[s]=Y(ke,e),l=s(t);return q(Y(Me,e),l)?Ot(e,t):l},zt=e=>Y(Me,e)??yt(e,{}),Pt=e=>yt(e,{}),kt=(e,t,s)=>{const[,l]=Y(ke,e);l(s),Rt(e,t,s,{},!0)},At=(e,t,s,l,n,a)=>{const o=Y(Y(Fe,e)?.[0],n);if(!m(o)&&!a)return pt(e,s,l,n,o);const r=t=>{Dt(e,s,t,Y(l,t)),xt(e,s,t,-1),_(l,t)};m(o)?r(n):Z(l,r),B(l)&&(jt(e,s,-1),B(_(t,s))&&(Nt(e,-1),_(Me,e),_(ke,e),_(Ae,e)))},Mt=e=>{const t=Y(ze,e);if(!m(t))return Ft(e,t);Wt(e,Y(Ne,e)),Ht(e,-1),_(Ne,e)},Nt=(e,t)=>me(P,e,t),jt=(e,t,s)=>me(ee(M,e,U),t,s)&&_(A,e,ee(A,e,(()=>0))+s),xt=(e,t,s,l)=>{const n=Y(Ae,e),a=Y(n,s)??0;(0==a&&1==l||1==a&&-1==l)&&me(ee(k,e,U),s,l),_(n,s,a!=-l?a+l:null),me(ee(ee(j,e,U),t,U),s,l)},Dt=(e,t,s,l,n)=>ee(ee(ee(ue,e,U),t,U),s,(()=>[l,0]))[1]=n,Ht=(e,t)=>me(Re,e,t),Wt=(e,t,s)=>ee(pe,e,(()=>[t,0]))[1]=s,$t=(e,t,s,l,n)=>(O(ee(ee(ee(Je,e,U),t,U),s,(()=>[])),l),n),qt=(e,t,s)=>(O(ee(Le,e,(()=>[])),t),s),Bt=(e,t,s)=>y(Y(Y(Y(ue,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...ge(cs(e,t,s))])),Gt=e=>y(Y(pe,e),(([e,t])=>[!0,e,t]),(()=>[!1,...ge(us(e))])),Kt=e=>B(Je)||B(_e[e])?0:K(e?re(Je):Je,((t,s)=>K(t,((t,l)=>K(t,((t,n)=>it(_e[e],[s,l,n],t))))))),Qt=e=>B(Le)||B(et[e])?0:K(e?ae(Le):Le,((t,s)=>it(et[e],[s],t))),Ut=(e,t,s,l)=>{if(!B(e))return it(t,l,(()=>se(e))),Z(e,((e,t)=>it(s,[...l??[],e],1==t))),1},Xt=e=>{const t=hs();t!=i&&it(je[e],void 0,t);const s=B(Ke[e]),l=B(Xe[e])&&B(Ye[e])&&B(Ge[e])&&B(Qe[e])&&B($e[e])&&B(qe[e])&&B(Be[e])&&s&&B(De[e])&&B(He[e]),n=B(Ze[e])&&B(Ue[e])&&B(We[e])&&B(xe[e]);if(!l||!n){const t=e?[ae(P),oe(k),ae(A),oe(M),re(j),re(ue)]:[P,k,A,M,j,ue];if(!l){Ut(t[0],De[e],He[e]),K(t[1],((t,s)=>Ut(t,$e[e],qe[e],[s]))),K(t[2],((t,s)=>{0!=t&&it(Be[e],[s],ns(s))}));const l=ie();K(t[3],((t,n)=>{Ut(t,Ge[e],Qe[e],[n])&&!s&&(it(Ke[e],[n,null]),de(l,n))})),s||K(t[5],((t,s)=>{if(!q(l,s)){const l=ie();K(t,(e=>K(e,(([t,s],n)=>s!==t?de(l,n):Q(e,n))))),K(l,(t=>it(Ke[e],[s,t])))}})),K(t[4],((t,s)=>K(t,((t,l)=>Ut(t,Xe[e],Ye[e],[s,l])))))}if(!n){let s;K(t[5],((t,l)=>{let n;K(t,((t,a)=>{let o;K(t,(([t,r],c)=>{r!==t&&(it(Ze[e],[l,a,c],r,t,Bt),s=n=o=1)})),o&&it(Ue[e],[l,a],Bt)})),n&&it(We[e],[l],Bt)})),s&&it(xe[e],void 0,Bt)}}},Yt=e=>{const t=bs();t!=I&&it(tt[e],void 0,t);const s=B(lt[e])&&B(nt[e]),l=B(at[e])&&B(st[e]);if(!s||!l){const t=e?[ae(Re),ae(pe)]:[Re,pe];if(s||Ut(t[0],lt[e],nt[e]),!l){let s;K(t[1],(([t,l],n)=>{l!==t&&(it(at[e],[n],l,t,Gt),s=1)})),s&&it(st[e],void 0,Gt)}}},Zt=(e,...t)=>(Fs((()=>e(...F(t,w)))),Ps),_t=()=>[se(ue,((e,t)=>-1===Y(P,t)?null:se(e,((e,s)=>-1===Y(Y(M,t),s)?null:se(e,(([,e])=>e??null),((e,t)=>Ve(t)))),W)),W),se(pe,(([,e])=>e??null),((e,t)=>Ve(t)))],es=()=>({cellsTouched:l,valuesTouched:a,changedCells:ne(ue,Te,Ve),invalidCells:ne(Je),changedValues:se(pe,Te,Ve),invalidValues:se(Le),changedTableIds:se(P),changedRowIds:le(M),changedCellIds:ne(j),changedValueIds:se(Re)}),ts=()=>ne(Me),ss=()=>X(Me),ls=e=>X(Y(Ae,w(e))),ns=e=>$(Y(Me,w(e))),as=e=>X(Y(Me,w(e))),os=(e,t,s,l=0,n)=>{return F(J((o=Y(Me,w(e)),r=(e,s)=>[m(t)?s:Y(e,w(t)),s],a=([e],[t])=>((e??0)<(t??0)?-1:1)*(s?-1:1),F([...o?.entries()??[]],(([e,t])=>r(t,e))).sort(a)),l,m(n)?n:l+n),(([,e])=>e));var a,o,r},rs=(e,t)=>X(Y(Y(Me,w(e)),w(t))),cs=(e,t,s)=>Y(Y(Y(Me,w(e)),w(t)),w(s)),is=()=>se(Ne),ds=()=>X(Ne),us=e=>Y(Ne,w(e)),hs=()=>!B(Me),gs=e=>q(Me,w(e)),fs=(e,t)=>q(Y(Ae,w(e)),w(t)),Ts=(e,t)=>q(Y(Me,w(e)),w(t)),Vs=(e,t,s)=>q(Y(Y(Me,w(e)),w(t)),w(s)),bs=()=>!B(Ne),Cs=e=>q(Ne,w(e)),vs=e=>Zt((()=>(e=>Ie(e,gt,$t))(e)?mt(e):0)),Ss=e=>Zt((()=>Vt(e)?Et(e):0)),ws=e=>{try{It(we(e))}catch{}return Ps},Is=t=>Zt((()=>{if((e=Ie(t,(e=>Ie(e,ht))))&&(St(t),!B(Me))){const e=ts();ys(),vs(e)}})),ms=e=>Zt((()=>{if(s=(e=>Ie(e,ht))(e)){const t=is();Es(),Js(),s=!0,wt(e),Ss(t)}})),ys=()=>Zt((()=>mt({}))),Rs=e=>Zt((e=>q(Me,e)?Pt(e):0),e),ps=(e,t)=>Zt(((e,t)=>y(Y(Me,e),(s=>q(s,t)?kt(e,s,t):0))),e,t),Js=()=>Zt((()=>Et({}))),Ls=()=>Zt((()=>{St({}),e=!1})),Es=()=>Zt((()=>{wt({}),s=!1})),Fs=(e,t)=>{if(-1!=z){Os();const s=e();return zs(t),s}},Os=()=>(-1!=z&&z++,1==z&&it(ot,void 0,_t,es),Ps),zs=e=>(z>0&&(z--,0==z&&(l=!B(ue),a=!B(pe),z=1,Kt(1),l&&Xt(1),Qt(1),a&&Yt(1),e?.(_t,es)&&(K(ue,((e,t)=>K(e,((e,s)=>K(e,(([e],l)=>Ce(Ps,t,s,l,e))))))),K(pe,(([e],t)=>ve(Ps,t,e))),l=a=!1),it(rt[0],void 0,_t,es),z=-1,Kt(0),l&&Xt(0),Qt(0),a&&Yt(0),it(rt[1],void 0,_t,es),z=0,l=a=!1,i=hs(),I=bs(),E([P,k,A,M,j,ue,Je,Re,pe,Le],G))),Ps),Ps={getContent:()=>[ts(),is()],getTables:ts,getTableIds:ss,getTable:e=>le(Y(Me,w(e))),getTableCellIds:ls,getRowCount:ns,getRowIds:as,getSortedRowIds:os,getRow:(e,t)=>se(Y(Y(Me,w(e)),w(t))),getCellIds:rs,getCell:cs,getValues:is,getValueIds:ds,getValue:us,hasTables:hs,hasTable:gs,hasTableCell:fs,hasRow:Ts,hasCell:Vs,hasValues:bs,hasValue:Cs,getTablesJson:()=>Se(Me),getValuesJson:()=>Se(Ne),getJson:()=>Se([Me,Ne]),getTablesSchemaJson:()=>Se(Ee),getValuesSchemaJson:()=>Se(Oe),getSchemaJson:()=>Se([Ee,Oe]),hasTablesSchema:()=>e,hasValuesSchema:()=>s,setContent:([e,t])=>Zt((()=>{(W(e)?ys:vs)(e),(W(t)?Js:Ss)(t)})),setTables:vs,setTable:(e,t)=>Zt((e=>gt(t,e)?yt(e,t):0),e),setRow:(e,t,s)=>Zt(((e,t)=>ft(e,t,s)?Rt(e,zt(e),t,s):0),e,t),addRow:(e,t,s=!0)=>Fs((()=>{let l;return ft(e,l,t)&&(e=w(e),Rt(e,zt(e),l=Ot(e,s?1:0),t)),l})),setPartialRow:(e,t,s)=>Zt(((e,t)=>{if(ft(e,t,s,1)){const l=zt(e);H(s,((s,n)=>Jt(e,l,t,n,s)))}}),e,t),setCell:(e,t,s,l)=>Zt(((e,t,s)=>y(Tt(e,t,s,p(l)?l(cs(e,t,s)):l),(l=>Jt(e,zt(e),t,s,l)))),e,t,s),setValues:Ss,setPartialValues:e=>Zt((()=>Vt(e,1)?H(e,((e,t)=>Ft(t,e))):0)),setValue:(e,t)=>Zt((e=>y(bt(e,p(t)?t(us(e)):t),(t=>Ft(e,t)))),e),setTransactionChanges:e=>Zt((()=>{H(e[0],((e,t)=>m(e)?Rs(t):H(e,((e,s)=>m(e)?ps(t,s):H(e,((e,l)=>Ce(Ps,t,s,l,e))))))),H(e[1],((e,t)=>ve(Ps,t,e)))})),setTablesJson:ws,setValuesJson:e=>{try{Lt(we(e))}catch{}return Ps},setJson:e=>Zt((()=>{try{const[t,s]=we(e);It(t),Lt(s)}catch{ws(e)}})),setTablesSchema:Is,setValuesSchema:ms,setSchema:(e,t)=>Zt((()=>{Is(e),ms(t)})),delTables:ys,delTable:Rs,delRow:ps,delCell:(e,t,s,l)=>Zt(((e,t,s)=>y(Y(Me,e),(n=>y(Y(n,t),(a=>q(a,s)?At(e,n,t,a,s,l):0))))),e,t,s),delValues:Js,delValue:e=>Zt((e=>q(Ne,e)?Mt(e):0),e),delTablesSchema:Ls,delValuesSchema:Es,delSchema:()=>Zt((()=>{Ls(),Es()})),transaction:Fs,startTransaction:Os,finishTransaction:zs,forEachTable:e=>K(Me,((t,s)=>e(s,(e=>K(t,((t,s)=>e(s,(e=>Z(t,e))))))))),forEachTableCell:(e,t)=>Z(Y(Ae,w(e)),t),forEachRow:(e,t)=>K(Y(Me,w(e)),((e,s)=>t(s,(t=>Z(e,t))))),forEachCell:(e,t,s)=>Z(Y(Y(Me,w(e)),w(t)),s),forEachValue:e=>Z(Ne,e),addSortedRowIdsListener:(e,t,s,l,n,a,o)=>{let r=os(e,t,s,l,n);return ct((()=>{const o=os(e,t,s,l,n);var c,i,d;i=r,L(c=o)===L(i)&&(d=(e,t)=>i[t]===e,c.every(d))||(r=o,a(Ps,e,t,s,l,n,r))}),Ke[o?1:0],[e,t],[ss])},addStartTransactionListener:e=>ct(e,ot),addWillFinishTransactionListener:e=>ct(e,rt[0]),addDidFinishTransactionListener:e=>ct(e,rt[1]),callListener:e=>(ut(e),Ps),delListener:e=>(dt(e),Ps),getListenerStats:()=>({}),createStore:ye,addListener:ct,callListeners:it};return H({[c+u]:[0,je,[],()=>[hs()]],[u]:[0,xe],[h]:[0,De],[c+d]:[1,He,[ss],e=>[gs(...e)]],[d]:[1,We,[ss]],[d+b]:[1,$e,[ss]],[c+d+V]:[2,qe,[ss,ls],e=>[fs(...e)]],[f]:[1,Be,[ss]],[T]:[1,Ge,[ss]],[c+g]:[2,Qe,[ss,as],e=>[Ts(...e)]],[g]:[2,Ue,[ss,as]],[b]:[2,Xe,[ss,as]],[c+V]:[3,Ye,[ss,as,rs],e=>[Vs(...e)]],[V]:[3,Ze,[ss,as,rs],e=>ge(cs(...e))],InvalidCell:[3,_e],[c+v]:[0,tt,[],()=>[bs()]],[v]:[0,st],[S]:[0,lt],[c+C]:[1,nt,[ds],e=>[Cs(...e)]],[C]:[1,at,[ds],e=>ge(us(e[0]))],InvalidValue:[1,et]},(([e,t,s,l],n)=>{Ps["add"+n+"Listener"]=(...n)=>ct(n[e],t[n[e+1]?1:0],e>0?J(n,0,e):void 0,s,l)})),N(Ps)};export{ye 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,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};
package/lib/store.js.gz CHANGED
Binary file
@@ -0,0 +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};
@@ -0,0 +1 @@
1
+ const e=Promise,t=Math.max,a=e=>null==e,n=(e,t,n)=>a(e)?n?.():t(e),s=(e,t,a)=>e.slice(t,a),o=t=>new e(t),r=(e,t)=>e.forEach(t),i=Object,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};
@@ -0,0 +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};
@@ -0,0 +1 @@
1
+ const e=Promise,t=Math.max,a=e=>null==e,n=(e,t,n)=>a(e)?n?.():t(e),s=(e,t)=>e.forEach(t),o=Object,r=e=>o.getPrototypeOf(e),i=o.entries,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};
Binary file