tinybase 5.0.0-beta.0 → 5.0.0-beta.1

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 (284) hide show
  1. package/bin/cli.js +1 -1
  2. package/lib/checkpoints.js +1 -1
  3. package/lib/checkpoints.js.gz +0 -0
  4. package/lib/cjs/checkpoints.cjs +1 -1
  5. package/lib/cjs/checkpoints.cjs.gz +0 -0
  6. package/lib/cjs/indexes.cjs +1 -1
  7. package/lib/cjs/indexes.cjs.gz +0 -0
  8. package/lib/cjs/metrics.cjs +1 -1
  9. package/lib/cjs/metrics.cjs.gz +0 -0
  10. package/lib/cjs/persisters/persister-automerge.cjs +1 -1
  11. package/lib/cjs/persisters/persister-automerge.cjs.gz +0 -0
  12. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  13. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  14. package/lib/cjs/persisters/persister-electric-sql.cjs +1 -1
  15. package/lib/cjs/persisters/persister-electric-sql.cjs.gz +0 -0
  16. package/lib/cjs/persisters/persister-expo-sqlite-next.cjs +1 -1
  17. package/lib/cjs/persisters/persister-expo-sqlite-next.cjs.gz +0 -0
  18. package/lib/cjs/persisters/persister-expo-sqlite.cjs +1 -1
  19. package/lib/cjs/persisters/persister-expo-sqlite.cjs.gz +0 -0
  20. package/lib/cjs/persisters/persister-indexed-db.cjs +1 -1
  21. package/lib/cjs/persisters/persister-indexed-db.cjs.gz +0 -0
  22. package/lib/cjs/persisters/persister-partykit-server.cjs +1 -1
  23. package/lib/cjs/persisters/persister-partykit-server.cjs.gz +0 -0
  24. package/lib/cjs/persisters/persister-sqlite-wasm.cjs +1 -1
  25. package/lib/cjs/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  26. package/lib/cjs/persisters/persister-sqlite3.cjs +1 -1
  27. package/lib/cjs/persisters/persister-sqlite3.cjs.gz +0 -0
  28. package/lib/cjs/persisters/persister-yjs.cjs +1 -1
  29. package/lib/cjs/persisters/persister-yjs.cjs.gz +0 -0
  30. package/lib/cjs/queries.cjs +1 -1
  31. package/lib/cjs/queries.cjs.gz +0 -0
  32. package/lib/cjs/relationships.cjs +1 -1
  33. package/lib/cjs/relationships.cjs.gz +0 -0
  34. package/lib/cjs/store.cjs +1 -1
  35. package/lib/cjs/store.cjs.gz +0 -0
  36. package/lib/cjs/tinybase.cjs +1 -1
  37. package/lib/cjs/tinybase.cjs.gz +0 -0
  38. package/lib/cjs/tools.cjs +1 -1
  39. package/lib/cjs/tools.cjs.gz +0 -0
  40. package/lib/cjs/ui-react-dom-debug.cjs +1 -1
  41. package/lib/cjs/ui-react-dom-debug.cjs.gz +0 -0
  42. package/lib/cjs/ui-react-dom.cjs +1 -1
  43. package/lib/cjs/ui-react-dom.cjs.gz +0 -0
  44. package/lib/cjs/ui-react.cjs +1 -1
  45. package/lib/cjs/ui-react.cjs.gz +0 -0
  46. package/lib/cjs-es6/checkpoints.cjs +1 -1
  47. package/lib/cjs-es6/checkpoints.cjs.gz +0 -0
  48. package/lib/cjs-es6/indexes.cjs +1 -1
  49. package/lib/cjs-es6/indexes.cjs.gz +0 -0
  50. package/lib/cjs-es6/metrics.cjs +1 -1
  51. package/lib/cjs-es6/metrics.cjs.gz +0 -0
  52. package/lib/cjs-es6/persisters/persister-automerge.cjs +1 -1
  53. package/lib/cjs-es6/persisters/persister-automerge.cjs.gz +0 -0
  54. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  55. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  56. package/lib/cjs-es6/persisters/persister-electric-sql.cjs +1 -1
  57. package/lib/cjs-es6/persisters/persister-electric-sql.cjs.gz +0 -0
  58. package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs +1 -1
  59. package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs.gz +0 -0
  60. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs +1 -1
  61. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs.gz +0 -0
  62. package/lib/cjs-es6/persisters/persister-indexed-db.cjs +1 -1
  63. package/lib/cjs-es6/persisters/persister-indexed-db.cjs.gz +0 -0
  64. package/lib/cjs-es6/persisters/persister-partykit-server.cjs +1 -1
  65. package/lib/cjs-es6/persisters/persister-partykit-server.cjs.gz +0 -0
  66. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs +1 -1
  67. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  68. package/lib/cjs-es6/persisters/persister-sqlite3.cjs +1 -1
  69. package/lib/cjs-es6/persisters/persister-sqlite3.cjs.gz +0 -0
  70. package/lib/cjs-es6/persisters/persister-yjs.cjs +1 -1
  71. package/lib/cjs-es6/persisters/persister-yjs.cjs.gz +0 -0
  72. package/lib/cjs-es6/queries.cjs +1 -1
  73. package/lib/cjs-es6/queries.cjs.gz +0 -0
  74. package/lib/cjs-es6/relationships.cjs +1 -1
  75. package/lib/cjs-es6/relationships.cjs.gz +0 -0
  76. package/lib/cjs-es6/store.cjs +1 -1
  77. package/lib/cjs-es6/store.cjs.gz +0 -0
  78. package/lib/cjs-es6/tinybase.cjs +1 -1
  79. package/lib/cjs-es6/tinybase.cjs.gz +0 -0
  80. package/lib/cjs-es6/tools.cjs +1 -1
  81. package/lib/cjs-es6/tools.cjs.gz +0 -0
  82. package/lib/cjs-es6/ui-react-dom-debug.cjs +1 -1
  83. package/lib/cjs-es6/ui-react-dom-debug.cjs.gz +0 -0
  84. package/lib/cjs-es6/ui-react-dom.cjs +1 -1
  85. package/lib/cjs-es6/ui-react-dom.cjs.gz +0 -0
  86. package/lib/cjs-es6/ui-react.cjs +1 -1
  87. package/lib/cjs-es6/ui-react.cjs.gz +0 -0
  88. package/lib/debug/checkpoints.js +251 -234
  89. package/lib/debug/indexes.js +7 -5
  90. package/lib/debug/metrics.js +7 -5
  91. package/lib/debug/persisters/persister-automerge.js +3 -1
  92. package/lib/debug/persisters/persister-browser.js +1 -0
  93. package/lib/debug/persisters/persister-cr-sqlite-wasm.js +10 -6
  94. package/lib/debug/persisters/persister-electric-sql.js +11 -6
  95. package/lib/debug/persisters/persister-expo-sqlite-next.js +11 -7
  96. package/lib/debug/persisters/persister-expo-sqlite.js +10 -6
  97. package/lib/debug/persisters/persister-file.js +1 -0
  98. package/lib/debug/persisters/persister-indexed-db.js +4 -1
  99. package/lib/debug/persisters/persister-partykit-client.js +1 -0
  100. package/lib/debug/persisters/persister-partykit-server.js +2 -1
  101. package/lib/debug/persisters/persister-remote.js +1 -0
  102. package/lib/debug/persisters/persister-sqlite-wasm.js +10 -6
  103. package/lib/debug/persisters/persister-sqlite3.js +10 -6
  104. package/lib/debug/persisters/persister-yjs.js +3 -1
  105. package/lib/debug/persisters.js +1 -0
  106. package/lib/debug/queries.js +9 -6
  107. package/lib/debug/relationships.js +7 -5
  108. package/lib/debug/store.js +3 -1
  109. package/lib/debug/tinybase.js +254 -235
  110. package/lib/debug/tools.js +19 -43
  111. package/lib/debug/ui-react-dom.js +3 -1
  112. package/lib/debug/ui-react.js +166 -200
  113. package/lib/es6/checkpoints.js +1 -1
  114. package/lib/es6/checkpoints.js.gz +0 -0
  115. package/lib/es6/indexes.js +1 -1
  116. package/lib/es6/indexes.js.gz +0 -0
  117. package/lib/es6/metrics.js +1 -1
  118. package/lib/es6/metrics.js.gz +0 -0
  119. package/lib/es6/persisters/persister-automerge.js +1 -1
  120. package/lib/es6/persisters/persister-automerge.js.gz +0 -0
  121. package/lib/es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  122. package/lib/es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  123. package/lib/es6/persisters/persister-electric-sql.js +1 -1
  124. package/lib/es6/persisters/persister-electric-sql.js.gz +0 -0
  125. package/lib/es6/persisters/persister-expo-sqlite-next.js +1 -1
  126. package/lib/es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
  127. package/lib/es6/persisters/persister-expo-sqlite.js +1 -1
  128. package/lib/es6/persisters/persister-expo-sqlite.js.gz +0 -0
  129. package/lib/es6/persisters/persister-indexed-db.js +1 -1
  130. package/lib/es6/persisters/persister-indexed-db.js.gz +0 -0
  131. package/lib/es6/persisters/persister-partykit-server.js +1 -1
  132. package/lib/es6/persisters/persister-partykit-server.js.gz +0 -0
  133. package/lib/es6/persisters/persister-sqlite-wasm.js +1 -1
  134. package/lib/es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  135. package/lib/es6/persisters/persister-sqlite3.js +1 -1
  136. package/lib/es6/persisters/persister-sqlite3.js.gz +0 -0
  137. package/lib/es6/persisters/persister-yjs.js +1 -1
  138. package/lib/es6/persisters/persister-yjs.js.gz +0 -0
  139. package/lib/es6/queries.js +1 -1
  140. package/lib/es6/queries.js.gz +0 -0
  141. package/lib/es6/relationships.js +1 -1
  142. package/lib/es6/relationships.js.gz +0 -0
  143. package/lib/es6/store.js +1 -1
  144. package/lib/es6/store.js.gz +0 -0
  145. package/lib/es6/tinybase.js +1 -1
  146. package/lib/es6/tinybase.js.gz +0 -0
  147. package/lib/es6/tools.js +1 -1
  148. package/lib/es6/tools.js.gz +0 -0
  149. package/lib/es6/ui-react-dom-debug.js +1 -1
  150. package/lib/es6/ui-react-dom-debug.js.gz +0 -0
  151. package/lib/es6/ui-react-dom.js +1 -1
  152. package/lib/es6/ui-react-dom.js.gz +0 -0
  153. package/lib/es6/ui-react.js +1 -1
  154. package/lib/es6/ui-react.js.gz +0 -0
  155. package/lib/indexes.js +1 -1
  156. package/lib/indexes.js.gz +0 -0
  157. package/lib/metrics.js +1 -1
  158. package/lib/metrics.js.gz +0 -0
  159. package/lib/persisters/persister-automerge.js +1 -1
  160. package/lib/persisters/persister-automerge.js.gz +0 -0
  161. package/lib/persisters/persister-cr-sqlite-wasm.js +1 -1
  162. package/lib/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  163. package/lib/persisters/persister-electric-sql.js +1 -1
  164. package/lib/persisters/persister-electric-sql.js.gz +0 -0
  165. package/lib/persisters/persister-expo-sqlite-next.js +1 -1
  166. package/lib/persisters/persister-expo-sqlite-next.js.gz +0 -0
  167. package/lib/persisters/persister-expo-sqlite.js +1 -1
  168. package/lib/persisters/persister-expo-sqlite.js.gz +0 -0
  169. package/lib/persisters/persister-indexed-db.js +1 -1
  170. package/lib/persisters/persister-indexed-db.js.gz +0 -0
  171. package/lib/persisters/persister-partykit-server.js +1 -1
  172. package/lib/persisters/persister-partykit-server.js.gz +0 -0
  173. package/lib/persisters/persister-sqlite-wasm.js +1 -1
  174. package/lib/persisters/persister-sqlite-wasm.js.gz +0 -0
  175. package/lib/persisters/persister-sqlite3.js +1 -1
  176. package/lib/persisters/persister-sqlite3.js.gz +0 -0
  177. package/lib/persisters/persister-yjs.js +1 -1
  178. package/lib/persisters/persister-yjs.js.gz +0 -0
  179. package/lib/queries.js +1 -1
  180. package/lib/queries.js.gz +0 -0
  181. package/lib/relationships.js +1 -1
  182. package/lib/relationships.js.gz +0 -0
  183. package/lib/store.js +1 -1
  184. package/lib/store.js.gz +0 -0
  185. package/lib/tinybase.js +1 -1
  186. package/lib/tinybase.js.gz +0 -0
  187. package/lib/tools.js +1 -1
  188. package/lib/tools.js.gz +0 -0
  189. package/lib/types/persisters/persister-expo-sqlite-next.d.ts +3 -3
  190. package/lib/types/ui-react.d.ts +77 -88
  191. package/lib/types/with-schemas/internal/queries.d.ts +4 -3
  192. package/lib/types/with-schemas/internal/store.d.ts +4 -3
  193. package/lib/types/with-schemas/persisters/persister-expo-sqlite-next.d.ts +4 -4
  194. package/lib/types/with-schemas/ui-react.d.ts +84 -95
  195. package/lib/ui-react-dom.js +1 -1
  196. package/lib/ui-react-dom.js.gz +0 -0
  197. package/lib/ui-react.js +1 -1
  198. package/lib/ui-react.js.gz +0 -0
  199. package/lib/umd/checkpoints.js +1 -1
  200. package/lib/umd/checkpoints.js.gz +0 -0
  201. package/lib/umd/indexes.js +1 -1
  202. package/lib/umd/indexes.js.gz +0 -0
  203. package/lib/umd/metrics.js +1 -1
  204. package/lib/umd/metrics.js.gz +0 -0
  205. package/lib/umd/persisters/persister-automerge.js +1 -1
  206. package/lib/umd/persisters/persister-automerge.js.gz +0 -0
  207. package/lib/umd/persisters/persister-cr-sqlite-wasm.js +1 -1
  208. package/lib/umd/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  209. package/lib/umd/persisters/persister-electric-sql.js +1 -1
  210. package/lib/umd/persisters/persister-electric-sql.js.gz +0 -0
  211. package/lib/umd/persisters/persister-expo-sqlite-next.js +1 -1
  212. package/lib/umd/persisters/persister-expo-sqlite-next.js.gz +0 -0
  213. package/lib/umd/persisters/persister-expo-sqlite.js +1 -1
  214. package/lib/umd/persisters/persister-expo-sqlite.js.gz +0 -0
  215. package/lib/umd/persisters/persister-indexed-db.js +1 -1
  216. package/lib/umd/persisters/persister-indexed-db.js.gz +0 -0
  217. package/lib/umd/persisters/persister-partykit-server.js +1 -1
  218. package/lib/umd/persisters/persister-partykit-server.js.gz +0 -0
  219. package/lib/umd/persisters/persister-sqlite-wasm.js +1 -1
  220. package/lib/umd/persisters/persister-sqlite-wasm.js.gz +0 -0
  221. package/lib/umd/persisters/persister-sqlite3.js +1 -1
  222. package/lib/umd/persisters/persister-sqlite3.js.gz +0 -0
  223. package/lib/umd/persisters/persister-yjs.js +1 -1
  224. package/lib/umd/persisters/persister-yjs.js.gz +0 -0
  225. package/lib/umd/queries.js +1 -1
  226. package/lib/umd/queries.js.gz +0 -0
  227. package/lib/umd/relationships.js +1 -1
  228. package/lib/umd/relationships.js.gz +0 -0
  229. package/lib/umd/store.js +1 -1
  230. package/lib/umd/store.js.gz +0 -0
  231. package/lib/umd/tinybase.js +1 -1
  232. package/lib/umd/tinybase.js.gz +0 -0
  233. package/lib/umd/tools.js +1 -1
  234. package/lib/umd/tools.js.gz +0 -0
  235. package/lib/umd/ui-react-dom-debug.js +1 -1
  236. package/lib/umd/ui-react-dom-debug.js.gz +0 -0
  237. package/lib/umd/ui-react-dom.js +1 -1
  238. package/lib/umd/ui-react-dom.js.gz +0 -0
  239. package/lib/umd/ui-react.js +1 -1
  240. package/lib/umd/ui-react.js.gz +0 -0
  241. package/lib/umd-es6/checkpoints.js +1 -1
  242. package/lib/umd-es6/checkpoints.js.gz +0 -0
  243. package/lib/umd-es6/indexes.js +1 -1
  244. package/lib/umd-es6/indexes.js.gz +0 -0
  245. package/lib/umd-es6/metrics.js +1 -1
  246. package/lib/umd-es6/metrics.js.gz +0 -0
  247. package/lib/umd-es6/persisters/persister-automerge.js +1 -1
  248. package/lib/umd-es6/persisters/persister-automerge.js.gz +0 -0
  249. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  250. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  251. package/lib/umd-es6/persisters/persister-electric-sql.js +1 -1
  252. package/lib/umd-es6/persisters/persister-electric-sql.js.gz +0 -0
  253. package/lib/umd-es6/persisters/persister-expo-sqlite-next.js +1 -1
  254. package/lib/umd-es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
  255. package/lib/umd-es6/persisters/persister-expo-sqlite.js +1 -1
  256. package/lib/umd-es6/persisters/persister-expo-sqlite.js.gz +0 -0
  257. package/lib/umd-es6/persisters/persister-indexed-db.js +1 -1
  258. package/lib/umd-es6/persisters/persister-indexed-db.js.gz +0 -0
  259. package/lib/umd-es6/persisters/persister-partykit-server.js +1 -1
  260. package/lib/umd-es6/persisters/persister-partykit-server.js.gz +0 -0
  261. package/lib/umd-es6/persisters/persister-sqlite-wasm.js +1 -1
  262. package/lib/umd-es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  263. package/lib/umd-es6/persisters/persister-sqlite3.js +1 -1
  264. package/lib/umd-es6/persisters/persister-sqlite3.js.gz +0 -0
  265. package/lib/umd-es6/persisters/persister-yjs.js +1 -1
  266. package/lib/umd-es6/persisters/persister-yjs.js.gz +0 -0
  267. package/lib/umd-es6/queries.js +1 -1
  268. package/lib/umd-es6/queries.js.gz +0 -0
  269. package/lib/umd-es6/relationships.js +1 -1
  270. package/lib/umd-es6/relationships.js.gz +0 -0
  271. package/lib/umd-es6/store.js +1 -1
  272. package/lib/umd-es6/store.js.gz +0 -0
  273. package/lib/umd-es6/tinybase.js +1 -1
  274. package/lib/umd-es6/tinybase.js.gz +0 -0
  275. package/lib/umd-es6/tools.js +1 -1
  276. package/lib/umd-es6/tools.js.gz +0 -0
  277. package/lib/umd-es6/ui-react-dom-debug.js +1 -1
  278. package/lib/umd-es6/ui-react-dom-debug.js.gz +0 -0
  279. package/lib/umd-es6/ui-react-dom.js +1 -1
  280. package/lib/umd-es6/ui-react-dom.js.gz +0 -0
  281. package/lib/umd-es6/ui-react.js +1 -1
  282. package/lib/umd-es6/ui-react.js.gz +0 -0
  283. package/package.json +21 -21
  284. package/readme.md +2 -2
@@ -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),w=t=>a(t)==s,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,'""')}"`,m="SELECT",A=(a,t="")=>a.join(t),T=(a,t)=>a.map(t),p=a=>0==y(a),L=(a,t)=>a.filter(t),N=(a,...t)=>a.push(...t),O=(a,t)=>a?.has(t)??!1,R=a=>[...a?.values()??[]],f=(a,t)=>a?.delete(t),h=Object,D=a=>h.getPrototypeOf(a),C=h.keys,g=h.freeze,S=(a=[])=>h.fromEntries(a),b=(...a)=>h.assign({},...a),I=(a,t)=>T(h.entries(a),(([a,e])=>t(e,a))),F=a=>h.values(a),M=a=>y(C(a)),$=a=>(a=>!o(a)&&r(D(a),(a=>a==h.prototype||o(D(a))),(()=>!0)))(a)&&0==M(a),_=a=>new Map(a),P=a=>[...a?.keys()??[]],B=(a,t)=>a?.get(t),H=(a,t)=>T([...a?.entries()??[]],(([a,e])=>t(e,a))),W=(a,t,e)=>o(e)?(f(a,t),a):a?.set(t,e),j=(a,t,e)=>(O(a,t)||W(a,t,e()),B(a,t)),x=(a,t,e,s=W)=>(I(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]),k=(a,t)=>a?.add(t),G=m+"*FROM",J="FROM pragma_table_",U="WHERE",q=(a,t,s)=>{const n=_();return[async()=>x(n,S(await E(T(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,S(T(await a(m+" name,type "+J+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>W(n,t,x(j(n,t,_),e,((a,t,e)=>{e!=B(a,t)&&W(a,t,e)}),((a,t)=>W(a,t))))),((a,t)=>W(n,t))),async(t,e)=>((a,t)=>!o(B(B(n,a),t)))(t,e)?S(L(T(await a(G+v(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,w=!1)=>{const l=Y();I(i??{},(a=>T(C(a??{}),(a=>k(l,a)))));const y=R(l);if(!w&&r&&p(y)&&O(n,t))return await a("DROP TABLE"+v(t)),void W(n,t);if(p(y)||O(n,t)){const e=B(n,t),i=Y(P(e));await E([...T(y,(async s=>{f(i,s)||(await a(`ALTER TABLE${v(t)}ADD${v(s)}`),W(e,s,""))})),...!w&&c?T(R(i),(async n=>{n!=s&&(await a(`ALTER TABLE${v(t)}DROP${v(n)}`),W(e,n))})):[]])}else await a(`CREATE TABLE${v(t)}(${v(s)} PRIMARY KEY ON CONFLICT REPLACE${A(T(y,(a=>e+v(a))))});`),W(n,t,_([[s,""],...T(y,(a=>[a,""]))]));if(w)o(i)?await a("DELETE FROM"+v(t)+"WHERE 1"):await E(I(i,(async(e,n)=>{o(e)?await a("DELETE FROM"+v(t)+U+v(s)+"=?",[n]):p(y)||await z(a,t,s,C(e),[n,...F(e)])})));else if(p(y))O(n,t)&&await a("DELETE FROM"+v(t)+"WHERE 1");else{const e=L(P(B(n,t)),(a=>a!=s)),c=[],o=[];I(i??{},((a,t)=>{N(c,t,...T(e,(t=>a?.[t]))),N(o,t)})),await z(a,t,s,e,c),await a("DELETE FROM"+v(t)+U+v(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"+v(t)+"("+v(s)+A(T(i,(a=>e+v(a))))+")VALUES"+l(n(`,(?${n(",?",y(i))})`,y(c)/(y(i)+1)),1)+"ON CONFLICT("+v(s)+")DO UPDATE SET"+A(T(i,(a=>v(a)+"=excluded."+v(a))),e),c),K=a=>A(T(a,(()=>"?")),e),V=JSON.parse,Q=_(),X=_(),Z=(a,t,e,s,n,i,[c,w]=[],l=[])=>{let y,E,u,d=0,v=0;j(Q,l,(()=>0)),j(X,l,(()=>[]));const m=async a=>(2!=d&&(d=1,await A.schedule((async()=>{await a(),d=0}))),A),A={load:async(e,s)=>await m((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(A.stopAutoLoad(),await A.load(e,n),v=1,u=s((async(e,s)=>{if(s){const t=s();await m((async()=>a.setTransactionChanges(t)))}else await m((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),A),stopAutoLoad:()=>(v&&(n(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,s]=t();$(e)&&$(s)||A.save((()=>[e,s]))})),A),stopAutoSave:()=>(r(y,a.delListener),y=void 0,A),schedule:async(...a)=>(N(B(X,l),...a),await(async()=>{if(!B(Q,l)){for(W(Q,l,1);!o((a=B(X,l),E=a.shift()));)try{await E()}catch(a){i?.(a)}W(Q,l,0)}var a})(),A),getStore:()=>a,destroy:()=>A.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(A[c]=()=>w),g(A)},aa="store",ta=(a,t,e,s,n,[i],c,o)=>{const[r,w,l,y]=q(t,c,n);return Z(a,(async()=>await y((async()=>(await r(),V((await w(i,d))[u]?.[aa]??"null"))))),(async a=>await y((async()=>{var t;await r(),await l(i,d,{[u]:{[aa]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?h.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,["getDb",o],o)},ea=(a,t,e,s,n,[i,c,[r,w,l]],y,v)=>{const[m,A,T,p]=q(t,y,n),N=async(a,t)=>await E(H(c,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await T(e,s,o,n,i,t)}))),O=async(a,t)=>w?await T(l,d,{[u]:a},!0,!0,t):null;return Z(a,(async()=>await p((async()=>{await m();const a=await(async()=>S(L(await E(H(i,(async([a,t],e)=>[a,await A(e,t)]))),(a=>!$(a[1])))))(),t=await(async()=>r?(await A(l,d))[u]:{})();return $(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await p((async()=>{if(await m(),o(t)){const[t,e]=a();await N(t),await O(e)}else{const[a,e]=t();await N(a,!0),await O(e,!0)}}))),e,s,n,["getDb",v],v)},sa="json",na="autoLoadIntervalSeconds",ia="rowIdColumnName",ca="tableId",oa="tableName",ra={mode:sa,[na]:1},wa={load:0,save:0,[oa]:t+"_values"},la=(a,t,e,s)=>{const n=_();return I(a,((a,i)=>{const c=l(F(b(t,w(a)?{[e]:a}:a)),0,M(t));o(c[0])||s(i,c[0])||W(n,i,c)})),n},ya="pragma ",Ea="data_version",ua="schema_version",da=(a,e,s,n,i,o,r,y)=>{let E,u,v;const[A,T,p,L]=(a=>{const e=(a=>b(ra,w(a)?{storeTableName:a}:a??{}))(a),s=e[na];if(e.mode==sa){const{storeTableName:a=t}=e;return[1,s,[a],Y(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=e,o=l(F(b(wa,c)),0,M(wa)),r=o[2],y=Y(r);return[0,s,[la(n,{[ca]:null,[ia]:d},ca,(a=>k(y,a)&&a==r)),la(i,{[oa]:null,[ia]:d,deleteEmptyColumns:0,deleteEmptyTable:0},oa,((a,t)=>k(y,t)&&t==r)),o],y]})(e);return(A?ta:ea)(a,o?async(a,t)=>(o(a,t),await s(a,t)):s,(a=>{return[(t=async()=>{try{const t=(await s(ya+Ea))[0][Ea],e=(await s(ya+ua))[0][ua],n=(await s(m+" TOTAL_CHANGES() c"))[0].c;t==(E??=t)&&e==(u??=e)&&n==(v??=n)||(a(),E=t,u=e)}catch{}},e=T,t(),setInterval(t,1e3*e)),n((t=>L.has(t)?a():0))];var t,e}),(([a,t])=>{c(a),E=u=null,i(t)}),r,p,R(L),y)},va=(a,t,e,s,n)=>da(a,e,(async(a,e=[])=>(await t.execAsync([{sql:a,args:e}],!1))[0].rows),(a=>t.onDatabaseChange((({tableName:t})=>a(t)))),(a=>a.remove()),s,n,t);export{va as createExpoSqlitePersister};
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),w=t=>a(t)==s,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,'""')}"`,m="SELECT",A=(a,t="")=>a.join(t),T=(a,t)=>a.map(t),p=a=>0==y(a),L=(a,t)=>a.filter(t),N=(a,...t)=>a.push(...t),O=(a,t)=>a?.has(t)??!1,R=a=>[...a?.values()??[]],f=(a,t)=>a?.delete(t),h=Object,C=a=>h.getPrototypeOf(a),D=h.entries,S=h.keys,g=h.freeze,b=(a=[])=>h.fromEntries(a),I=(...a)=>h.assign({},...a),F=(a,t)=>T(D(a),(([a,e])=>t(e,a))),M=a=>h.values(a),$=a=>y(S(a)),_=a=>(a=>!o(a)&&r(C(a),(a=>a==h.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)=>T([...a?.entries()??[]],(([a,e])=>t(e,a))),j=(a,t,e)=>o(e)?(f(a,t),a):a?.set(t,e),x=(a,t,e)=>(O(a,t)||j(a,t,e()),H(a,t)),Y=(a,t,e,s=j)=>(F(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),k=a=>new Set(Array.isArray(a)||o(a)?a:[a]),G=(a,t)=>a?.add(t),J=m+"*FROM",U="FROM pragma_table_",q="WHERE",z=(a,t,s)=>{const n=P();return[async()=>Y(n,b(await E(T(await a("SELECT name "+U+"list WHERE schema='main'AND type='table'AND name IN("+V(t)+")ORDER BY name",t),(async({name:t})=>[t,b(T(await a(m+" name,type "+U+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>j(n,t,Y(x(n,t,P),e,((a,t,e)=>{e!=H(a,t)&&j(a,t,e)}),((a,t)=>j(a,t))))),((a,t)=>j(n,t))),async(t,e)=>((a,t)=>!o(H(H(n,a),t)))(t,e)?b(L(T(await a(J+v(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,w=!1)=>{const l=k();F(i??{},(a=>T(S(a??{}),(a=>G(l,a)))));const y=R(l);if(!w&&r&&p(y)&&O(n,t))return await a("DROP TABLE"+v(t)),void j(n,t);if(p(y)||O(n,t)){const e=H(n,t),i=k(B(e));await E([...T(y,(async s=>{f(i,s)||(await a(`ALTER TABLE${v(t)}ADD${v(s)}`),j(e,s,""))})),...!w&&c?T(R(i),(async n=>{n!=s&&(await a(`ALTER TABLE${v(t)}DROP${v(n)}`),j(e,n))})):[]])}else await a(`CREATE TABLE${v(t)}(${v(s)} PRIMARY KEY ON CONFLICT REPLACE${A(T(y,(a=>e+v(a))))});`),j(n,t,P([[s,""],...T(y,(a=>[a,""]))]));if(w)o(i)?await a("DELETE FROM"+v(t)+"WHERE 1"):await E(F(i,(async(e,n)=>{o(e)?await a("DELETE FROM"+v(t)+q+v(s)+"=?",[n]):p(y)||await K(a,t,s,S(e),[n,...M(e)])})));else if(p(y))O(n,t)&&await a("DELETE FROM"+v(t)+"WHERE 1");else{const e=L(B(H(n,t)),(a=>a!=s)),c=[],o=[];F(i??{},((a,t)=>{N(c,t,...T(e,(t=>a?.[t]))),N(o,t)})),await K(a,t,s,e,c),await a("DELETE FROM"+v(t)+q+v(s)+"NOT IN("+V(o)+")",o)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},K=async(a,t,s,i,c)=>await a("INSERT INTO"+v(t)+"("+v(s)+A(T(i,(a=>e+v(a))))+")VALUES"+l(n(`,(?${n(",?",y(i))})`,y(c)/(y(i)+1)),1)+"ON CONFLICT("+v(s)+")DO UPDATE SET"+A(T(i,(a=>v(a)+"=excluded."+v(a))),e),c),V=a=>A(T(a,(()=>"?")),e),Q=JSON.parse,X=P(),Z=P(),aa=(a,t,e,s,n,i,[c,w]=[],l=[])=>{let y,E,u,d=0,v=0;x(X,l,(()=>0)),x(Z,l,(()=>[]));const m=async a=>(2!=d&&(d=1,await A.schedule((async()=>{await a(),d=0}))),A),A={load:async(e,s)=>await m((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(A.stopAutoLoad(),await A.load(e,n),v=1,u=s((async(e,s)=>{if(s){const t=s();await m((async()=>a.setTransactionChanges(t)))}else await m((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),A),stopAutoLoad:()=>(v&&(n(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,s]=t();_(e)&&_(s)||A.save((()=>[e,s]))})),A),stopAutoSave:()=>(r(y,a.delListener),y=void 0,A),schedule:async(...a)=>(N(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,s,n,[i],c,o,r)=>{const[w,l,y,E]=z(t,c,n);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?h.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,[r,o],o)},sa=(a,t,e,s,n,[i,c,[r,w,l]],y,v,m)=>{const[A,T,p,N]=z(t,y,n),O=async(a,t)=>await E(W(c,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await p(e,s,o,n,i,t)}))),R=async(a,t)=>w?await p(l,d,{[u]:a},!0,!0,t):null;return aa(a,(async()=>await N((async()=>{await A();const a=await(async()=>b(L(await E(W(i,(async([a,t],e)=>[a,await T(e,t)]))),(a=>!_(a[1])))))(),t=await(async()=>r?(await T(l,d))[u]:{})();return _(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await N((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,s,n,[m,v],v)},na="json",ia="autoLoadIntervalSeconds",ca="rowIdColumnName",oa="tableId",ra="tableName",wa={mode:na,[ia]:1},la={load:0,save:0,[ra]:t+"_values"},ya=(a,t,e,s)=>{const n=P();return F(a,((a,i)=>{const c=l(M(I(t,w(a)?{[e]:a}:a)),0,$(t));o(c[0])||s(i,c[0])||j(n,i,c)})),n},Ea="pragma ",ua="data_version",da="schema_version",va=(a,e,s,n,i,o,r,y,E="getDb")=>{let u,v,A;const[T,p,L,N]=(a=>{const e=(a=>I(wa,w(a)?{storeTableName:a}:a??{}))(a),s=e[ia];if(e.mode==na){const{storeTableName:a=t}=e;return[1,s,[a],k(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=e,o=l(M(I(la,c)),0,$(la)),r=o[2],y=k(r);return[0,s,[ya(n,{[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(T?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(m+" TOTAL_CHANGES() c"))[0].c;t==(u??=t)&&e==(v??=e)&&n==(A??=n)||(a(),u=t,v=e)}catch{}},e=p,t(),setInterval(t,1e3*e)),n((t=>N.has(t)?a():0))];var t,e}),(([a,t])=>{c(a),u=v=null,i(t)}),r,L,R(N),y,E)},ma=(a,t,e,s,n)=>va(a,e,(async(a,e=[])=>(await t.execAsync([{sql:a,args:e}],!1))[0].rows),(a=>t.onDatabaseChange((({tableName:t})=>a(t)))),(a=>a.remove()),s,n,t);export{ma as createExpoSqlitePersister};
@@ -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.keys,d=i.freeze,w=t=>(t=>!e(t)&&s(y(t),(t=>t==i.prototype||e(y(t))),(()=>!0)))(t)&&0==(t=>l(t).length)(t),u=t=>new Map(t),v=(t,a)=>t?.get(a),h=(t,a,s)=>{return e(s)?(n=t,o=a,n?.delete(o),t):t?.set(a,s);var n,o},p=(t,a,e)=>{var s,n;return s=t,n=a,s?.has(n)||h(t,a,e()),v(t,a)},g=u(),A=u(),S=globalThis.window,f=["t","v"],b={keyPath:"k"},L=async(t,a)=>{const n=((a,e)=>c(i.entries(a),(([a,e])=>k(t,"put",{k:a,v:e}))))(a);c(await k(t,"getAllKeys"),(o=>((t,a)=>!e(((t,a)=>s(t,(t=>t[a])))(t,a)))(a,o)?0:r(n,k(t,"delete",o)))),await o(n)},k=async(t,a,e)=>n(((s,n)=>{const o=t[a](e);o.onsuccess=()=>s(o.result),o.onerror=()=>n(`objectStore.${a} error`)})),C=(t,y,l=1,u)=>{const C=async(t,a=[],e=0)=>n(((s,n)=>{const r=S.indexedDB.open(y,e?2:void 0);r.onupgradeneeded=()=>e&&c(f,(t=>{try{r.result.createObjectStore(t,b)}catch{}})),r.onsuccess=async()=>{try{const e=r.result.transaction(f,"readwrite"),n=await o(c(f,(async(s,n)=>await t(e.objectStore(s),a[n]))));r.result.close(),s(n)}catch(t){n(t)}},r.onerror=()=>n("indexedDB.open error")}));return((t,a,n,o,c,i,[y,l]=[],u=[])=>{let S,f,b,L=0,k=0;p(g,u,(()=>0)),p(A,u,(()=>[]));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(),S=t.addDidFinishTransactionListener(((t,a)=>{const[e,s]=a();w(e)&&w(s)||j.save((()=>[e,s]))})),j),stopAutoSave:()=>(s(S,t.delListener),S=void 0,j),schedule:async(...t)=>(r(v(A,u),...t),await(async()=>{if(!v(g,u)){for(h(g,u,1);!e((t=v(A,u),f=t.shift()));)try{await f()}catch(t){i?.(t)}h(g,u,0)}var t})(),j),getStore:()=>t,destroy:()=>j.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return y&&(j[y]=()=>l),d(j)})(t,(async()=>await C((async t=>((t=[])=>i.fromEntries(t))(c(await k(t,"getAll"),(({k:t,v:a})=>[t,a])))))),(async t=>await C((async(t,a)=>await L(t,a)),t(),1)),(t=>setInterval(t,1e3*l)),(t=>a(t)),u,["getDbName",y])};export{C as createIndexedDbPersister,L as objectStoreMatch};
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 +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=(a=[])=>y.fromEntries(a),f=(a,t)=>w(y.entries(a),(([a,e])=>t(e,a))),u=(a,t,e)=>(((a,t)=>!i(((a,t)=>r(a,(a=>a[t])))(a,t)))(a,t)||(a[t]=e()),a[t]),p=a=>JSON.stringify(a,((a,t)=>t instanceof Map?y.fromEntries([...t]):t)),S=JSON.parse,d=(e,s,n)=>e+s+(a(n)==t?n:p(n)),P=(a,t,e)=>{const n=o(a);return s(t,a)?[t[n],(e?S:String)(c(t,n+1))]:void 0},m=(a,t)=>((a,t)=>a?.forEach(t))(a,((a,e)=>t(e,a))),x="hasStore",D=g(w(["Origin","Methods","Headers"],(a=>["Access-Control-Allow-"+a,"*"]))),R=async(a,t="")=>!!await a.get(t+x),b=async(a,t="")=>{const s={},n={};return m(await a.list(),((a,i)=>r(P(t,a),(([a,t])=>{if(a==e){const[a,e,n]=S("["+t+"]");u(u(s,a,g),e,g)[n]=i}else"v"==a&&(n[t]=i)})))),[s,n]},C=async(a,t,e)=>a.party.broadcast(d(a.config.messagePrefix,"s",t),e),T=async(a,t,n,r)=>{const c=a.party.storage,w=a.config.storagePrefix,y={[w+x]:1},g=[],u=[];await l(f(t[0],(async(t,s)=>i(t)?!n&&await a.canDelTable(s,r)&&((a,...t)=>a.unshift(...t))(u,v(w,e,s)):await a.canSetTable(s,n,r)&&await l(f(t,(async(t,o)=>i(t)?!n&&await a.canDelRow(s,o,r)&&h(u,v(w,e,s,o)):await a.canSetRow(s,o,n,r)&&await l(f(t,(async(t,l)=>{const f=[s,o,l],u=v(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(f(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(u)&&m(await c.list(),(a=>u.every((t=>!s(a,t)||h(g,a)&&0)))),await c.delete(g),await c.put(y)},v=(a,t,...e)=>d(a,t,c(p(e),1,-1)),O=async(a,t,e=null)=>new Response(e,{status:t,headers:a.config.responseHeaders});class V{constructor(a){this.party=a,this.config={},this.config.storePath??="/store",this.config.messagePrefix??="",this.config.storagePrefix??="",this.config.responseHeaders??=D}async onRequest(a){const{party:{storage:t},config:{storePath:e,storagePrefix:s}}=this;if(new URL(a.url).pathname.endsWith(e)){const e=await R(t,s),n=await a.text();return"PUT"==a.method?e?O(this,205):(await T(this,S(n),!0,a),O(this,201)):O(this,200,e?p(await b(t,s)):"")}return O(this,404)}async onMessage(a,t){const{config:{messagePrefix:e,storagePrefix:s}}=this;await r(P(e,a,1),(async([a,e])=>{"s"==a&&await R(this.party.storage,s)&&(await T(this,e,!1,t),C(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{V as TinyBasePartyKitServer,C as broadcastTransactionChanges,R as hasStoreInStorage,b 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)=>!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 +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,D=a=>N.getPrototypeOf(a),C=N.keys,S=N.freeze,b=(a=[])=>N.fromEntries(a),g=(...a)=>N.assign({},...a),I=(a,t)=>m(N.entries(a),(([a,e])=>t(e,a))),_=a=>N.values(a),M=a=>y(C(a)),F=a=>(a=>!o(a)&&r(D(a),(a=>a==N.prototype||o(D(a))),(()=>!0)))(a)&&0==M(a),$=a=>new Map(a),P=a=>[...a?.keys()??[]],B=(a,t)=>a?.get(t),H=(a,t)=>m([...a?.entries()??[]],(([a,e])=>t(e,a))),j=(a,t,e)=>o(e)?(f(a,t),a):a?.set(t,e),k=(a,t,e)=>(h(a,t)||j(a,t,e()),B(a,t)),W=(a,t,e,s=j)=>(I(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),x=a=>new Set(Array.isArray(a)||o(a)?a:[a]),Y=(a,t)=>a?.add(t),q=v+"*FROM",G="FROM pragma_table_",J="WHERE",U=(a,t,s)=>{const n=$();return[async()=>W(n,b(await E(m(await a("SELECT name "+G+"list WHERE schema='main'AND type='table'AND name IN("+z(t)+")ORDER BY name",t),(async({name:t})=>[t,b(m(await a(v+" name,type "+G+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>j(n,t,W(k(n,t,$),e,((a,t,e)=>{e!=B(a,t)&&j(a,t,e)}),((a,t)=>j(a,t))))),((a,t)=>j(n,t))),async(t,e)=>((a,t)=>!o(B(B(n,a),t)))(t,e)?b(L(m(await a(q+p(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!o(a)&&!F(t)))):{},async(t,s,i,c,r,l=!1)=>{const w=x();I(i??{},(a=>m(C(a??{}),(a=>Y(w,a)))));const y=O(w);if(!l&&r&&A(y)&&h(n,t))return await a("DROP TABLE"+p(t)),void j(n,t);if(A(y)||h(n,t)){const e=B(n,t),i=x(P(e));await E([...m(y,(async s=>{f(i,s)||(await a(`ALTER TABLE${p(t)}ADD${p(s)}`),j(e,s,""))})),...!l&&c?m(O(i),(async n=>{n!=s&&(await a(`ALTER TABLE${p(t)}DROP${p(n)}`),j(e,n))})):[]])}else await a(`CREATE TABLE${p(t)}(${p(s)} PRIMARY KEY ON CONFLICT REPLACE${T(m(y,(a=>e+p(a))))});`),j(n,t,$([[s,""],...m(y,(a=>[a,""]))]));if(l)o(i)?await a("DELETE FROM"+p(t)+"WHERE 1"):await E(I(i,(async(e,n)=>{o(e)?await a("DELETE FROM"+p(t)+J+p(s)+"=?",[n]):A(y)||await V(a,t,s,C(e),[n,..._(e)])})));else if(A(y))h(n,t)&&await a("DELETE FROM"+p(t)+"WHERE 1");else{const e=L(P(B(n,t)),(a=>a!=s)),c=[],o=[];I(i??{},((a,t)=>{R(c,t,...m(e,(t=>a?.[t]))),R(o,t)})),await V(a,t,s,e,c),await a("DELETE FROM"+p(t)+J+p(s)+"NOT IN("+z(o)+")",o)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},V=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),z=a=>T(m(a,(()=>"?")),e),K=JSON.parse,Q=$(),X=$(),Z=(a,t,e,s,n,i,[c,l]=[],w=[])=>{let y,E,u,d=0,p=0;k(Q,w,(()=>0)),k(X,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();F(e)&&F(s)||T.save((()=>[e,s]))})),T),stopAutoSave:()=>(r(y,a.delListener),y=void 0,T),schedule:async(...a)=>(R(B(X,w),...a),await(async()=>{if(!B(Q,w)){for(j(Q,w,1);!o((a=B(X,w),E=a.shift()));)try{await E()}catch(a){i?.(a)}j(Q,w,0)}var a})(),T),getStore:()=>a,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(T[c]=()=>l),S(T)},aa="store",ta=(a,t,e,s,n,[i],c,o)=>{const[r,l,w,y]=U(t,c,n);return Z(a,(async()=>await y((async()=>(await r(),K((await l(i,d))[u]?.[aa]??"null"))))),(async a=>await y((async()=>{var t;await r(),await w(i,d,{[u]:{[aa]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?N.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,["getDb",o],o)},ea=(a,t,e,s,n,[i,c,[r,l,w]],y,p)=>{const[v,T,m,A]=U(t,y,n),R=async(a,t)=>await E(H(c,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await m(e,s,o,n,i,t)}))),h=async(a,t)=>l?await m(w,d,{[u]:a},!0,!0,t):null;return Z(a,(async()=>await A((async()=>{await v();const a=await(async()=>b(L(await E(H(i,(async([a,t],e)=>[a,await T(e,t)]))),(a=>!F(a[1])))))(),t=await(async()=>r?(await T(w,d))[u]:{})();return F(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await A((async()=>{if(await v(),o(t)){const[t,e]=a();await R(t),await h(e)}else{const[a,e]=t();await R(a,!0),await h(e,!0)}}))),e,s,n,["getDb",p],p)},sa="json",na="autoLoadIntervalSeconds",ia="rowIdColumnName",ca="tableId",oa="tableName",ra={mode:sa,[na]:1},la={load:0,save:0,[oa]:t+"_values"},wa=(a,t,e,s)=>{const n=$();return I(a,((a,i)=>{const c=w(_(g(t,l(a)?{[e]:a}:a)),0,M(t));o(c[0])||s(i,c[0])||j(n,i,c)})),n},ya="pragma ",Ea="data_version",ua="schema_version",da=(a,e,s,n,i,o,r,y)=>{let E,u,p;const[T,m,A,L]=(a=>{const e=(a=>g(ra,l(a)?{storeTableName:a}:a??{}))(a),s=e[na];if(e.mode==sa){const{storeTableName:a=t}=e;return[1,s,[a],x(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=e,o=w(_(g(la,c)),0,M(la)),r=o[2],y=x(r);return[0,s,[wa(n,{[ca]:null,[ia]:d},ca,(a=>Y(y,a)&&a==r)),wa(i,{[oa]:null,[ia]:d,deleteEmptyColumns:0,deleteEmptyTable:0},oa,((a,t)=>Y(y,t)&&t==r)),o],y]})(e);return(T?ta:ea)(a,o?async(a,t)=>(o(a,t),await s(a,t)):s,(a=>{return[(t=async()=>{try{const t=(await s(ya+Ea))[0][Ea],e=(await s(ya+ua))[0][ua],n=(await s(v+" TOTAL_CHANGES() c"))[0].c;t==(E??=t)&&e==(u??=e)&&n==(p??=n)||(a(),E=t,u=e)}catch{}},e=m,t(),setInterval(t,1e3*e)),n((t=>L.has(t)?a():0))];var t,e}),(([a,t])=>{c(a),E=u=null,i(t)}),r,A,O(L),y)},pa=(a,t,e,s,n,i)=>da(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{pa as createSqliteWasmPersister};
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 +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,D=a=>N.getPrototypeOf(a),C=N.keys,S=N.freeze,g=(a=[])=>N.fromEntries(a),I=(...a)=>N.assign({},...a),b=(a,t)=>m(N.entries(a),(([a,e])=>t(e,a))),F=a=>N.values(a),M=a=>y(C(a)),$=a=>(a=>!o(a)&&r(D(a),(a=>a==N.prototype||o(D(a))),(()=>!0)))(a)&&0==M(a),_=a=>new Map(a),P=a=>[...a?.keys()??[]],B=(a,t)=>a?.get(t),H=(a,t)=>m([...a?.entries()??[]],(([a,e])=>t(e,a))),W=(a,t,e)=>o(e)?(h(a,t),a):a?.set(t,e),j=(a,t,e)=>(O(a,t)||W(a,t,e()),B(a,t)),Y=(a,t,e,n=W)=>(b(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),k=a=>new Set(Array.isArray(a)||o(a)?a:[a]),x=(a,t)=>a?.add(t),G=T+"*FROM",J="FROM pragma_table_",U="WHERE",z=(a,t,n)=>{const s=_();return[async()=>Y(s,g(await E(m(await a("SELECT name "+J+"list WHERE schema='main'AND type='table'AND name IN("+V(t)+")ORDER BY name",t),(async({name:t})=>[t,g(m(await a(T+" name,type "+J+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>W(s,t,Y(j(s,t,_),e,((a,t,e)=>{e!=B(a,t)&&W(a,t,e)}),((a,t)=>W(a,t))))),((a,t)=>W(s,t))),async(t,e)=>((a,t)=>!o(B(B(s,a),t)))(t,e)?g(L(m(await a(G+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=k();b(i??{},(a=>m(C(a??{}),(a=>x(l,a)))));const y=R(l);if(!w&&r&&p(y)&&O(s,t))return await a("DROP TABLE"+v(t)),void W(s,t);if(p(y)||O(s,t)){const e=B(s,t),i=k(P(e));await E([...m(y,(async n=>{h(i,n)||(await a(`ALTER TABLE${v(t)}ADD${v(n)}`),W(e,n,""))})),...!w&&c?m(R(i),(async s=>{s!=n&&(await a(`ALTER TABLE${v(t)}DROP${v(s)}`),W(e,s))})):[]])}else await a(`CREATE TABLE${v(t)}(${v(n)} PRIMARY KEY ON CONFLICT REPLACE${A(m(y,(a=>e+v(a))))});`),W(s,t,_([[n,""],...m(y,(a=>[a,""]))]));if(w)o(i)?await a("DELETE FROM"+v(t)+"WHERE 1"):await E(b(i,(async(e,s)=>{o(e)?await a("DELETE FROM"+v(t)+U+v(n)+"=?",[s]):p(y)||await K(a,t,n,C(e),[s,...F(e)])})));else if(p(y))O(s,t)&&await a("DELETE FROM"+v(t)+"WHERE 1");else{const e=L(P(B(s,t)),(a=>a!=n)),c=[],o=[];b(i??{},((a,t)=>{f(c,t,...m(e,(t=>a?.[t]))),f(o,t)})),await K(a,t,n,e,c),await a("DELETE FROM"+v(t)+U+v(n)+"NOT IN("+V(o)+")",o)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){n?.(a)}return await a("END"),e}]},K=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),V=a=>A(m(a,(()=>"?")),e),q=JSON.parse,Q=_(),X=_(),Z=(a,t,e,n,s,i,[c,w]=[],l=[])=>{let y,E,u,d=0,v=0;j(Q,l,(()=>0)),j(X,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(B(X,l),...a),await(async()=>{if(!B(Q,l)){for(W(Q,l,1);!o((a=B(X,l),E=a.shift()));)try{await E()}catch(a){i?.(a)}W(Q,l,0)}var a})(),A),getStore:()=>a,destroy:()=>A.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(A[c]=()=>w),S(A)},aa="store",ta=(a,t,e,n,s,[i],c,o)=>{const[r,w,l,y]=z(t,c,s);return Z(a,(async()=>await y((async()=>(await r(),q((await w(i,d))[u]?.[aa]??"null"))))),(async a=>await y((async()=>{var t;await r(),await l(i,d,{[u]:{[aa]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?N.fromEntries([...t]):t)))}},!0,!0)}))),e,n,s,["getDb",o],o)},ea=(a,t,e,n,s,[i,c,[r,w,l]],y,v)=>{const[T,A,m,p]=z(t,y,s),f=async(a,t)=>await E(H(c,(async([e,n,s,i],c)=>{const o=a[c];t&&void 0===o||await m(e,n,o,s,i,t)}))),O=async(a,t)=>w?await m(l,d,{[u]:a},!0,!0,t):null;return Z(a,(async()=>await p((async()=>{await T();const a=await(async()=>g(L(await E(H(i,(async([a,t],e)=>[a,await A(e,t)]))),(a=>!$(a[1])))))(),t=await(async()=>r?(await A(l,d))[u]:{})();return $(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await p((async()=>{if(await T(),o(t)){const[t,e]=a();await f(t),await O(e)}else{const[a,e]=t();await f(a,!0),await O(e,!0)}}))),e,n,s,["getDb",v],v)},na="json",sa="autoLoadIntervalSeconds",ia="rowIdColumnName",ca="tableId",oa="tableName",ra={mode:na,[sa]:1},wa={load:0,save:0,[oa]:t+"_values"},la=(a,t,e,n)=>{const s=_();return b(a,((a,i)=>{const c=l(F(I(t,w(a)?{[e]:a}:a)),0,M(t));o(c[0])||n(i,c[0])||W(s,i,c)})),s},ya="pragma ",Ea="data_version",ua="schema_version",da=(a,e,n,s,i,o,r,y)=>{let E,u,v;const[A,m,p,L]=(a=>{const e=(a=>I(ra,w(a)?{storeTableName:a}:a??{}))(a),n=e[sa];if(e.mode==na){const{storeTableName:a=t}=e;return[1,n,[a],k(a)]}const{tables:{load:s={},save:i={}}={},values:c={}}=e,o=l(F(I(wa,c)),0,M(wa)),r=o[2],y=k(r);return[0,n,[la(s,{[ca]:null,[ia]:d},ca,(a=>x(y,a)&&a==r)),la(i,{[oa]:null,[ia]:d,deleteEmptyColumns:0,deleteEmptyTable:0},oa,((a,t)=>x(y,t)&&t==r)),o],y]})(e);return(A?ta:ea)(a,o?async(a,t)=>(o(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const t=(await n(ya+Ea))[0][Ea],e=(await n(ya+ua))[0][ua],s=(await n(T+" TOTAL_CHANGES() c"))[0].c;t==(E??=t)&&e==(u??=e)&&s==(v??=s)||(a(),E=t,u=e)}catch{}},e=m,t(),setInterval(t,1e3*e)),s((t=>L.has(t)?a():0))];var t,e}),(([a,t])=>{c(a),E=u=null,i(t)}),r,p,R(L),y)},va="change",Ta=(a,t,e,n,s)=>da(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(va,e),e}),(a=>t.off(va,a)),n,s,t);export{Ta as createSqlite3Persister};
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 +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.keys,d=r.freeze,g=(t=[])=>r.fromEntries(t),u=(t,e)=>!s(((t,e)=>n(t,(t=>t[e])))(t,e)),y=(t,e)=>((t,e)=>t.map(e))(r.entries(t),(([t,a])=>e(a,t))),p=t=>(t=>!s(t)&&n(i(t),(t=>t==r.prototype||s(i(t))),(()=>!0)))(t)&&0==(t=>o(l(t)))(t),h=(t,e,a)=>(u(t,e)||(t[e]=a()),t[e]),v=t=>new Map(t),w=(t,e)=>t?.get(e),f=(t,e)=>((t,e)=>t?.forEach(e))(t,((t,a)=>e(a,t))),S=(t,e,a)=>{return s(a)?(n=t,o=e,n?.delete(o),t):t?.set(e,a);var n,o},A=(t,e,a)=>{var s,n;return s=t,n=e,s?.has(n)||S(t,e,a()),w(t,e)},O=v(),J=v(),L="delete",N=t=>[t.get(e),t.get(a)],C=(e,a,n,o)=>{const c=s(a)?e:e.get(a)??e.set(a,new t);let r;return y(n,((t,e)=>{o(c,e,t)&&(r=1)})),c.forEach(((t,e)=>{u(n,e)||(c.delete(e),r=1)})),s(a)||c.size||e.delete(a),r},b=(r,i,l="tinybase",u)=>{const v=i.getMap(l);return((t,e,a,o,r,i,[l,g]=[],u=[])=>{let y,h,v,f=0,L=0;A(O,u,(()=>0)),A(J,u,(()=>[]));const N=async t=>(2!=f&&(f=1,await C.schedule((async()=>{await t(),f=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),L=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:()=>(L&&(r(v),v=void 0,L=0),C),save:async e=>(1!=f&&(f=2,await C.schedule((async()=>{try{await a(t.getContent,e)}catch(t){i?.(t)}f=0}))),C),startAutoSave:async()=>(await C.stopAutoSave().save(),y=t.addDidFinishTransactionListener(((t,e)=>{const[a,s]=e();p(a)&&p(s)||C.save((()=>[a,s]))})),C),stopAutoSave:()=>(n(y,t.delListener),y=void 0,C),schedule:async(...t)=>(((t,...e)=>{t.push(...e)})(w(J,u),...t),await(async()=>{if(!w(O,u)){for(S(O,u,1);!s(h=c(w(J,u)));)try{await h()}catch(t){i?.(t)}S(O,u,0)}})(),C),getStore:()=>t,destroy:()=>C.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return l&&(C[l]=()=>g),d(C)})(r,(async()=>v.size?[v.get(e).toJSON(),v.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]=N(o),d=()=>{g=1};let g=1;if(n(r?.(),(([t,e])=>{g=0,y(t,((t,e)=>g?0:s(t)?i.delete(e):n(i.get(e),(e=>y(t,((t,a)=>g?0:s(t)?e.delete(a):n(e.get(a),(e=>y(t,((t,a)=>s(t)?e.delete(a):e.set(a,t)))),d)))),d))),y(e,((t,e)=>g?0:s(t)?l.delete(e):l.set(e,t)))})),g){const[t,e]=c();C(i,void 0,t,((t,e,a)=>C(i,e,a,((t,e,a)=>C(t,e,a,((t,e,a)=>{if(t.get(e)!==a)return t.set(e,a),1})))))),C(l,void 0,e,((t,e,a)=>{l.get(e)!==a&&l.set(e,a)}))}})(v,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]=N(t),d={},u={};return((t,a)=>{t.forEach((({path:t,changes:{keys:a}})=>c(t)==e?n(c(t),(e=>{const s=h(d,e,g),o=i.get(e);n(c(t),(t=>{const e=h(s,t,g),n=o.get(t);f(a,((t,{action:a})=>e[t]=a==L?null:n.get(t)))}),(()=>f(a,((t,{action:e})=>s[t]=e==L?null:o.get(t)?.toJSON()))))}),(()=>f(a,((t,{action:e})=>d[t]=e==L?null:i.get(t)?.toJSON())))):f(a,((t,{action:e})=>u[t]=e==L?null:l.get(t)))))})(s),[d,u]})(v,s)));return v.observeDeep(s),s}),(t=>{v.unobserveDeep(t)}),u,["getYDoc",i])};export{b as createYjsPersister};
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};
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.freeze,j=e=>e?.size??0,k=(e,t)=>e?.has(t)??!1,z=e=>R(e)||0==j(e),A=e=>[...e?.values()??[]],F=e=>e.clear(),O=(e,t)=>e?.forEach(t),W=(e,t)=>e?.delete(t),q=e=>new Map(e),B=(e,t)=>e?.get(t),G=(e,t)=>O(e,((e,n)=>t(n,e))),H=(e,t,n)=>R(n)?(W(e,t),e):e?.set(t,n),J=(e,t,n)=>(k(e,t)||H(e,t,n()),B(e,t)),K=(e,t,n,s,r=0)=>y((n?J:B)(e,t[r],r>C(t)-2?n:q),(o=>{if(r>C(t)-2)return s?.(o)&&H(e,t[r]),o;const a=K(o,t,n,s,r+1);return z(o)&&H(e,t[r]),a})),N=e=>new Set(b(e)||R(e)?e:[e]),P=(e,t)=>e?.add(t),U=q([["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]]]),V=(r=>{const l=new WeakMap;return r=>(l.has(r)||l.set(r,(r=>{const l=r.createStore,w=l(),L=l(),I=q(),{addListener:E,callListeners:V,delListener:X}=L,[Y,Z,$,_,ee,,,te,,ne,se,re,oe,ae]=((e,t,n,s,r)=>{const o=e.hasRow,a=q(),l=q(),i=q(),d=q(),c=q(),u=q(),h=(t,n,...s)=>{const r=J(u,t,N);return m(s,(t=>P(r,t)&&n&&e.callListener(t))),s},g=(t,...n)=>y(B(u,t),(s=>{m(Q(n)?A(s):n,(t=>{e.delListener(t),W(s,t)})),z(s)&&H(u,t)})),v=(e,t)=>{H(a,e,t),k(l,e)||(H(l,e,!0),H(d,e,q()),H(c,e,q()),r(i))},w=e=>{H(a,e),H(l,e),H(d,e),H(c,e),g(e),r(i)};return[()=>e,()=>{return e=a,[...e?.keys()??[]];var e},e=>G(l,e),e=>k(l,e),e=>B(a,e),e=>B(l,e),(e,t)=>H(l,e,t),v,(t,s,r,a,l)=>{v(t,s);const i=q(),u=q(),w=B(d,t),L=B(c,t),f=t=>{const r=n=>e.getCell(s,t,n),d=B(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)))||H(i,t,[d,c]),!R(l)){const e=B(L,t),n=o(s,t)?l(r,t):void 0;e!=n&&H(u,t,n)}},y=e=>{r((()=>{O(i,(([,e],t)=>H(w,t,e))),O(u,((e,t)=>H(L,t,e)))}),i,u,w,L,e),F(i),F(u)};G(w,f),e.hasTable(s)&&m(e.getRowIds(s),(e=>{k(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),()=>G(u,w),h,g]})(r,0,p,E,V),le=(e,t,...n)=>m(n,(n=>P(J(J(I,t,q),e,N),n))),ie=e=>{y(B(I,e),(e=>{G(e,((e,t)=>O(t,(t=>e.delListener(t))))),F(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,[],q()]]],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),[],q()]];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]:B(U,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=q(i);if(z(g))return ce;const v=q(d);G(v,((e,[,t])=>y(B(v,t),(({3:t})=>R(e)?0:M(t,e)))));const b=q(u);let p=w;if(z(b)&&Q(h))p=L;else{de(o,p,L);const r=q();G(b,((e,[t,n])=>P(J(r,t,N),[e,n])));const a=N();G(g,(e=>k(r,e)?0:P(a,e)));const l=q(),i=(a,l,i,d)=>y(a,(([c,u,g,v])=>{G(l,((o,[a])=>{const l=J(c,o,q),u=B(l,i),h=d?void 0:a;if(u!==h){const a=N([[u,h]]),d=j(l);H(l,i,h),O(B(r,o),(([r,o])=>{const i=((e,t,n,s,r,o=!1)=>{if(z(n))return;const[a,l,i,d]=r;return o||=R(e),O(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(A(n),j(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}))}})),z(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=q(),h=p.hasRow(o,n);let g=!h;O(a,(e=>{const[t,r,a]=s(o,n,e);M(d,r),M(c,a),g||=t})),G(r,(e=>{const[t,,r]=s(o,n,e);(g||t)&&H(u,e,[r])})),g&&i(K(l,d,void 0,(([,e])=>(W(e,n),z(e)))),u,n,1),h&&i(K(l,c,(()=>{const e={};return O(a,(t=>e[t]=p.getCell(o,n,t))),[q(),N(),void 0,e]}),(([,e])=>{P(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]=B(v,t),d=s?.(l,e),[c,u]=B(i,e)??[];d!=c&&(R(u)||ae(o,u),H(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]:[B(v,t)?.[0],B(B(v,t)?.[4],e)?.[0],n]);p.transaction((()=>S(c,(e=>e(t)))?G(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}=B(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),O(v,(({4:e})=>y(B(e,n),(([,t])=>{ae(o,t),H(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,he;return ue={[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]},he=([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)=>{e.map(t)})(x.entries(ue),(([e,t])=>he(t,e))),D(ce)})(r)),l.get(r))})();export{V 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)=>(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};
package/lib/queries.js.gz CHANGED
Binary file
@@ -1 +1 @@
1
- const e=e=>typeof e,t="",n=e(t),s=e=>null==e,r=(e,t,n)=>s(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=>s(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)=>s(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,s,o=0)=>r((n?v:w)(e,t[o],o>i(t)-2?n:g),(r=>{if(o>i(t)-2)return s?.(r)&&I(e,t[o]),r;const a=y(r,t,n,s,o+1);return u(r)&&I(e,t[o]),a})),b=e=>new Set(o(e)||s(e)?e:[e]),k=(e,t)=>e?.add(t),E=/^\d+$/,T=(T=>{const m=new WeakMap;return T=>(m.has(T)||m.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[s=>(s?e.shift():null)??t+n++,t=>{E.test(t)&&i(e)<1e3&&l(e,t)}]})(),c=g();return[(e,s,r,i=[],a=(()=>[]))=>{n??=P;const l=o(1);return I(c,l,[e,s,r,i,a]),k(y(s,r??[t],b),l),l},(e,s,...r)=>a(((e,n=[t])=>{const s=[],r=(e,t)=>t==i(n)?l(s,e):null===n[t]?f(e,(e=>r(e,t+1))):a([n[t],null],(n=>r(w(e,n),t+1)));return r(e,0),s})(e,s),(e=>f(e,(e=>w(c,e)[0](n,...s??[],...r))))),e=>r(w(c,e),(([,n,s])=>(y(n,s??[t],void 0,(t=>(L(t,e),u(t)?1:0))),I(c,e),d(e),s))),e=>r(w(c,e),(([e,,t=[],r,o])=>{const l=(...d)=>{const c=i(d);c==i(t)?e(n,...d,...o(d)):s(t[c])?a(r[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,...s)=>{const r=v(D,t,b);return a(s,(t=>k(r,t)&&n&&e.callListener(t))),s},j=(t,...n)=>r(w(D,t),(s=>{a(0==i(n)?R(s):n,(t=>{e.delListener(t),L(s,t)})),u(s)&&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,r,l,d,u)=>{x(n,r);const R=g(),L=g(),v=w(z,n),y=w(A,n),b=n=>{const a=t=>e.getCell(r,n,t),l=w(v,n),c=E(r,n)?(h=d(a,n),s(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]),!s(u)){const e=w(y,n),t=E(r,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(r)&&a(e.getRowIds(r),(e=>{c(v,e)||b(e)})),k(!0),j(n),M(n,0,e.addRowListener(r,null,((e,t,n)=>b(n))),e.addTableListener(r,(()=>k())))},C,e=>d(e,S),()=>p(D,C),M,j]})(T,0,0,D,M),J=(e,t,n)=>r(q(e),(([r,,o])=>{if(!c(o,t)){const i=b();if($(e)!=N(e))k(i,t);else{let e=t;for(;!s(e)&&!c(i,e);)k(i,e),e=w(r,e)}if(n)return i;I(o,t,i)}return w(o,t)})),K=(e,t)=>r(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)=>{s(e)||(k(i,e),r(w(d,e),(t=>{L(t,R),u(t)&&I(d,e)}))),s(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)=>s(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)),m.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)=>(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};
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.keys,A=z.isFrozen,M=z.freeze,N=e=>!m(e)&&y(P(e),(e=>e==z.prototype||m(P(e))),(()=>!0)),j=(e,t)=>!m(((e,t)=>y(e,(e=>e[t])))(e,t)),x=(e,t)=>(delete e[t],e),D=(e,t)=>F(z.entries(e),(([e,s])=>t(s,e))),H=e=>N(e)&&0==(e=>L(k(e)))(e),W=e=>e?.size??0,$=(e,t)=>e?.has(t)??!1,q=e=>m(e)||0==W(e),B=e=>e.clear(),G=(e,t)=>e?.forEach(t),K=(e,t)=>e?.delete(t),Q=e=>new Map(e),U=e=>[...e?.keys()??[]],X=(e,t)=>e?.get(t),Y=(e,t)=>G(e,((e,s)=>t(s,e))),Z=(e,t,s)=>m(s)?(K(e,t),e):e?.set(t,s),_=(e,t,s)=>($(e,t)||Z(e,t,s()),X(e,t)),ee=(e,t,s,l=Z)=>(D(t,((t,l)=>s(e,l,t))),Y(e,(s=>j(t,s)?0:l(e,s))),e),te=(e,t,s)=>{const l={};return G(e,((e,n)=>{const a=t?t(e,n):e;!s?.(a,e)&&(l[n]=a)})),l},se=(e,t,s)=>te(e,(e=>te(e,t,s)),H),le=(e,t,s)=>te(e,(e=>se(e,t,s)),H),ne=(e,t)=>{const s=Q();return G(e,((e,l)=>s.set(l,t?.(e)??e))),s},ae=e=>ne(e,ne),oe=e=>ne(e,ae),re=(e,t,s,l,n=0)=>y((s?_:X)(e,t[n],n>L(t)-2?s:Q),(a=>{if(n>L(t)-2)return l?.(a)&&Z(e,t[n]),a;const o=re(a,t,s,l,n+1);return q(a)&&Z(e,t[n]),o})),ce=e=>new Set(Array.isArray(e)||m(e)?e:[e]),ie=(e,t)=>e?.add(t),de=/^\d+$/,ue=()=>{const e=[];let s=0;return[l=>(l?e.shift():null)??t+s++,t=>{de.test(t)&&L(e)<1e3&&O(e,t)}]},he=e=>[e,e],ge=()=>[Q(),Q()],fe=e=>[...e],Te=([e,t])=>e===t,Ve=t=>{const s=e(t);return R(s)||s==n&&I(t)?s:void 0},be=(e,t,s,l,n)=>m(n)?e.delCell(t,s,l,!0):e.setCell(t,s,l,n),Ce=(e,t,s)=>m(s)?e.delValue(t):e.setValue(t,s),ve=e=>JSON.stringify(e,((e,t)=>t instanceof Map?z.fromEntries([...t]):t)),Se=JSON.parse,we=(e,t,s)=>m(e)||!N(e)||H(e)||A(e)?(s?.(),!1):(D(e,((s,l)=>{t(s,l)||x(e,l)})),!H(e)),Ie=(e,t,s)=>Z(e,t,X(e,t)==-s?void 0:s),me=()=>{let e,s,l=!1,a=!1,i=!1,I=!1,z=0;const P=Q(),k=Q(),A=Q(),N=Q(),de=Q(),ye=Q(),Re=Q(),pe=Q(),Je=Q(),Le=Q(),Ee=Q(),Fe=Q(),Oe=Q(),ze=Q(),Pe=ce(),ke=Q(),Ae=Q(),Me=Q(),Ne=Q(),je=ge(),xe=ge(),De=ge(),He=ge(),We=ge(),$e=ge(),qe=ge(),Be=ge(),Ge=ge(),Ke=ge(),Qe=ge(),Ue=ge(),Xe=ge(),Ye=ge(),Ze=ge(),_e=ge(),et=ge(),tt=ge(),st=ge(),lt=ge(),nt=ge(),at=ge(),ot=Q(),rt=ge(),[ct,it,dt,ut]=(e=>{let s;const[l,n]=ue(),a=Q();return[(e,n,o,r=[],c=(()=>[]))=>{s??=Ps;const i=l(1);return Z(a,i,[e,n,o,r,c]),ie(re(n,o??[t],ce),i),i},(e,l,...n)=>E(((e,s=[t])=>{const l=[],n=(e,t)=>t==L(s)?O(l,e):null===s[t]?G(e,(e=>n(e,t+1))):E([s[t],null],(s=>n(X(e,s),t+1)));return n(e,0),l})(e,l),(e=>G(e,(e=>X(a,e)[0](s,...l??[],...n))))),e=>y(X(a,e),(([,s,l])=>(re(s,l??[t],void 0,(t=>(K(t,e),q(t)?1:0))),Z(a,e),n(e),l))),e=>y(X(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(!we(e,((e,t)=>[o,r].includes(t))))return!1;const t=e[o];return!(!R(t)&&t!=n||(Ve(e[r])!=t&&x(e,r),0))},gt=(t,s)=>(!e||$(Ee,s)||$t(s))&&we(t,((e,t)=>ft(s,t,e)),(()=>$t(s))),ft=(e,t,s,l)=>we(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(X(X(Ee,t),l),(e=>Ve(n)!=e[o]?$t(t,s,l,n,e[r]):n),(()=>$t(t,s,l,n))):m(Ve(n))?$t(t,s,l,n):n,Vt=(e,t)=>we(t?e:vt(e),((t,s)=>y(bt(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>qt())),bt=(e,t)=>s?y(X(Oe,e),(s=>Ve(t)!=s[o]?qt(e,t,s[r]):t),(()=>qt(e,t))):m(Ve(t))?qt(e,t):t,Ct=(e,t,s)=>(y(X(Fe,t),(([l,n])=>{G(l,((t,s)=>{j(e,s)||(e[s]=t)})),G(n,(l=>{j(e,l)||$t(t,s,l)}))})),e),vt=e=>(s&&(G(ze,((t,s)=>{j(e,s)||(e[s]=t)})),G(Pe,(t=>{j(e,t)||qt(t)}))),e),St=e=>ee(Ee,e,((e,t,s)=>{const l=Q(),n=ce();ee(_(Ee,t,Q),s,((e,t,s)=>{Z(e,t,s),y(s[r],(e=>Z(l,t,e)),(()=>ie(n,t)))})),Z(Fe,t,[l,n])}),((e,t)=>{Z(Ee,t),Z(Fe,t)})),wt=e=>ee(Oe,e,((e,t,s)=>{Z(Oe,t,s),y(s[r],(e=>Z(ze,t,e)),(()=>ie(Pe,t)))}),((e,t)=>{Z(Oe,t),Z(ze,t),K(Pe,t)})),It=e=>H(e)?ys():vs(e),mt=e=>ee(Me,e,((e,t,s)=>yt(t,s)),((e,t)=>Pt(t))),yt=(e,t)=>ee(_(Me,e,(()=>(Nt(e,1),Z(ke,e,ue()),Z(Ae,e,Q()),Q()))),t,((t,s,l)=>Rt(e,t,s,l)),((t,s)=>kt(e,t,s))),Rt=(e,t,s,l,n)=>ee(_(t,s,(()=>(jt(e,s,1),Q()))),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)=>{$(s,l)||xt(e,t,l,1);const a=X(s,l);n!==a&&(Dt(e,t,l,a,n),Z(s,l,n))},Jt=(e,t,s,l,n)=>y(X(t,s),(t=>pt(e,s,t,l,n)),(()=>Rt(e,t,s,Ct({[l]:n},e,s)))),Lt=e=>H(e)?Js():Ss(e),Et=e=>ee(Ne,e,((e,t,s)=>Ft(t,s)),((e,t)=>Mt(t))),Ft=(e,t)=>{$(Ne,e)||Ht(e,1);const s=X(Ne,e);t!==s&&(Wt(e,s,t),Z(Ne,e,t))},Ot=(e,t)=>{const[s]=X(ke,e),l=s(t);return $(X(Me,e),l)?Ot(e,t):l},zt=e=>X(Me,e)??yt(e,{}),Pt=e=>yt(e,{}),kt=(e,t,s)=>{const[,l]=X(ke,e);l(s),Rt(e,t,s,{},!0)},At=(e,t,s,l,n,a)=>{const o=X(X(Fe,e)?.[0],n);if(!m(o)&&!a)return pt(e,s,l,n,o);const r=t=>{Dt(e,s,t,X(l,t)),xt(e,s,t,-1),Z(l,t)};m(o)?r(n):Y(l,r),q(l)&&(jt(e,s,-1),q(Z(t,s))&&(Nt(e,-1),Z(Me,e),Z(ke,e),Z(Ae,e)))},Mt=e=>{const t=X(ze,e);if(!m(t))return Ft(e,t);Wt(e,X(Ne,e)),Ht(e,-1),Z(Ne,e)},Nt=(e,t)=>Ie(P,e,t),jt=(e,t,s)=>Ie(_(N,e,Q),t,s)&&Z(A,e,_(A,e,(()=>0))+s),xt=(e,t,s,l)=>{const n=X(Ae,e),a=X(n,s)??0;(0==a&&1==l||1==a&&-1==l)&&Ie(_(k,e,Q),s,l),Z(n,s,a!=-l?a+l:null),Ie(_(_(de,e,Q),t,Q),s,l)},Dt=(e,t,s,l,n)=>_(_(_(ye,e,Q),t,Q),s,(()=>[l,0]))[1]=n,Ht=(e,t)=>Ie(Re,e,t),Wt=(e,t,s)=>_(pe,e,(()=>[t,0]))[1]=s,$t=(e,t,s,l,n)=>(O(_(_(_(Je,e,Q),t,Q),s,(()=>[])),l),n),qt=(e,t,s)=>(O(_(Le,e,(()=>[])),t),s),Bt=(e,t,s)=>y(X(X(X(ye,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...he(cs(e,t,s))])),Gt=e=>y(X(pe,e),(([e,t])=>[!0,e,t]),(()=>[!1,...he(us(e))])),Kt=e=>q(Je)||q(_e[e])?0:G(e?oe(Je):Je,((t,s)=>G(t,((t,l)=>G(t,((t,n)=>it(_e[e],[s,l,n],t))))))),Qt=e=>q(Le)||q(et[e])?0:G(e?ne(Le):Le,((t,s)=>it(et[e],[s],t))),Ut=(e,t,s,l)=>{if(!q(e))return it(t,l,(()=>te(e))),Y(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=q(Ke[e]),l=q(Xe[e])&&q(Ye[e])&&q(Ge[e])&&q(Qe[e])&&q($e[e])&&q(qe[e])&&q(Be[e])&&s&&q(De[e])&&q(He[e]),n=q(Ze[e])&&q(Ue[e])&&q(We[e])&&q(xe[e]);if(!l||!n){const t=e?[ne(P),ae(k),ne(A),ae(N),oe(de),oe(ye)]:[P,k,A,N,de,ye];if(!l){Ut(t[0],De[e],He[e]),G(t[1],((t,s)=>Ut(t,$e[e],qe[e],[s]))),G(t[2],((t,s)=>{0!=t&&it(Be[e],[s],ns(s))}));const l=ce();G(t[3],((t,n)=>{Ut(t,Ge[e],Qe[e],[n])&&!s&&(it(Ke[e],[n,null]),ie(l,n))})),s||G(t[5],((t,s)=>{if(!$(l,s)){const l=ce();G(t,(e=>G(e,(([t,s],n)=>s!==t?ie(l,n):K(e,n))))),G(l,(t=>it(Ke[e],[s,t])))}})),G(t[4],((t,s)=>G(t,((t,l)=>Ut(t,Xe[e],Ye[e],[s,l])))))}if(!n){let s;G(t[5],((t,l)=>{let n;G(t,((t,a)=>{let o;G(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=q(lt[e])&&q(nt[e]),l=q(at[e])&&q(st[e]);if(!s||!l){const t=e?[ne(Re),ne(pe)]:[Re,pe];if(s||Ut(t[0],lt[e],nt[e]),!l){let s;G(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=()=>[te(ye,((e,t)=>-1===X(P,t)?null:te(e,((e,s)=>-1===X(X(N,t),s)?null:te(e,(([,e])=>e??null),((e,t)=>Te(t)))),H)),H),te(pe,(([,e])=>e??null),((e,t)=>Te(t)))],es=()=>({cellsTouched:l,valuesTouched:a,changedCells:le(ye,fe,Te),invalidCells:le(Je),changedValues:te(pe,fe,Te),invalidValues:te(Le),changedTableIds:te(P),changedRowIds:se(N),changedCellIds:le(de),changedValueIds:te(Re)}),ts=()=>le(Me),ss=()=>U(Me),ls=e=>U(X(Ae,w(e))),ns=e=>W(X(Me,w(e))),as=e=>U(X(Me,w(e))),os=(e,t,s,l=0,n)=>{return F(J((o=X(Me,w(e)),r=(e,s)=>[m(t)?s:X(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)=>U(X(X(Me,w(e)),w(t))),cs=(e,t,s)=>X(X(X(Me,w(e)),w(t)),w(s)),is=()=>te(Ne),ds=()=>U(Ne),us=e=>X(Ne,w(e)),hs=()=>!q(Me),gs=e=>$(Me,w(e)),fs=(e,t)=>$(X(Ae,w(e)),w(t)),Ts=(e,t)=>$(X(Me,w(e)),w(t)),Vs=(e,t,s)=>$(X(X(Me,w(e)),w(t)),w(s)),bs=()=>!q(Ne),Cs=e=>$(Ne,w(e)),vs=e=>Zt((()=>(e=>we(e,gt,$t))(e)?mt(e):0)),Ss=e=>Zt((()=>Vt(e)?Et(e):0)),ws=e=>{try{It(Se(e))}catch{}return Ps},Is=t=>Zt((()=>{if((e=we(t,(e=>we(e,ht))))&&(St(t),!q(Me))){const e=ts();ys(),vs(e)}})),ms=e=>Zt((()=>{if(s=(e=>we(e,ht))(e)){const t=is();Es(),Js(),s=!0,wt(e),Ss(t)}})),ys=()=>Zt((()=>mt({}))),Rs=e=>Zt((e=>$(Me,e)?Pt(e):0),e),ps=(e,t)=>Zt(((e,t)=>y(X(Me,e),(s=>$(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=!q(ye),a=!q(pe),z=1,Kt(1),l&&Xt(1),Qt(1),a&&Yt(1),e?.(_t,es)&&(G(ye,((e,t)=>G(e,((e,s)=>G(e,(([e],l)=>be(Ps,t,s,l,e))))))),G(pe,(([e],t)=>Ce(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,N,de,ye,Je,Re,pe,Le],B))),Ps),Ps={getContent:()=>[ts(),is()],getTables:ts,getTableIds:ss,getTable:e=>se(X(Me,w(e))),getTableCellIds:ls,getRowCount:ns,getRowIds:as,getSortedRowIds:os,getRow:(e,t)=>te(X(X(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:()=>ve(Me),getValuesJson:()=>ve(Ne),getJson:()=>ve([Me,Ne]),getTablesSchemaJson:()=>ve(Ee),getValuesSchemaJson:()=>ve(Oe),getSchemaJson:()=>ve([Ee,Oe]),hasTablesSchema:()=>e,hasValuesSchema:()=>s,setContent:([e,t])=>Zt((()=>{(H(e)?ys:vs)(e),(H(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);D(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)?D(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((()=>{D(e[0],((e,t)=>m(e)?Rs(t):D(e,((e,s)=>m(e)?ps(t,s):D(e,((e,l)=>be(Ps,t,s,l,e))))))),D(e[1],((e,t)=>Ce(Ps,t,e)))})),setTablesJson:ws,setValuesJson:e=>{try{Lt(Se(e))}catch{}return Ps},setJson:e=>Zt((()=>{try{const[t,s]=Se(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(X(Me,e),(n=>y(X(n,t),(a=>$(a,s)?At(e,n,t,a,s,l):0))))),e,t,s),delValues:Js,delValue:e=>Zt((e=>$(Ne,e)?Mt(e):0),e),delTablesSchema:Ls,delValuesSchema:Es,delSchema:()=>Zt((()=>{Ls(),Es()})),transaction:Fs,startTransaction:Os,finishTransaction:zs,forEachTable:e=>G(Me,((t,s)=>e(s,(e=>G(t,((t,s)=>e(s,(e=>Y(t,e))))))))),forEachTableCell:(e,t)=>Y(X(Ae,w(e)),t),forEachRow:(e,t)=>G(X(Me,w(e)),((e,s)=>t(s,(t=>Y(e,t))))),forEachCell:(e,t,s)=>Y(X(X(Me,w(e)),w(t)),s),forEachValue:e=>Y(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:me,addListener:ct,callListeners:it};return D({[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=>he(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=>he(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)})),M(Ps)};export{me as createStore};
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};
package/lib/store.js.gz CHANGED
Binary file
package/lib/tinybase.js CHANGED
@@ -1 +1 @@
1
- const e=e=>typeof e,t="",s=e(t),n=e(!0),a=e(0),o=e(e),r="type",l="default",i="Listener",d="Result",c="add",u="Has",h="Ids",g="Table",f=g+"s",L=g+h,w="Row",v=w+"Count",I=w+h,S="Sorted"+w+h,R="Cell",T=R+h,y="Value",C=y+"s",p=y+h,b=e=>t+e,V=Math.max,m=Math.min,E=isFinite,k=e=>null==e,M=(e,t,s)=>k(e)?s?.():t(e),D=e=>e==s||e==n,J=t=>e(t)==o,A=e=>Array.isArray(e),x=(e,t,s)=>e.slice(t,s),F=e=>e.length,Q=()=>{},z=(e,t)=>e.includes(t),N=(e,t)=>e.every(t),O=(e,t)=>F(e)===F(t)&&N(e,((e,s)=>t[s]===e)),P=(e,t)=>N(e,((s,n)=>0==n||t(e[n-1],s)<=0)),j=(e,t)=>e.sort(t),W=(e,t)=>e.forEach(t),B=(e,t)=>e.map(t),H=e=>q(e,((e,t)=>e+t),0),$=e=>0==F(e),q=(e,t,s)=>e.reduce(t,s),G=(e,...t)=>e.push(...t),K=e=>e.pop(),U=e=>e.shift(),X=Object,Y=e=>X.getPrototypeOf(e),Z=X.keys,_=X.isFrozen,ee=X.freeze,te=e=>!k(e)&&M(Y(e),(e=>e==X.prototype||k(Y(e))),(()=>!0)),se=(e,t)=>!k(((e,t)=>M(e,(e=>e[t])))(e,t)),ne=(e,t)=>(delete e[t],e),ae=(e,t)=>B(X.entries(e),(([e,s])=>t(s,e))),oe=e=>te(e)&&0==(e=>F(Z(e)))(e),re=e=>e?.size??0,le=(e,t)=>e?.has(t)??!1,ie=e=>k(e)||0==re(e),de=e=>[...e?.values()??[]],ce=e=>e.clear(),ue=(e,t)=>e?.forEach(t),he=(e,t)=>e?.delete(t),ge=e=>new Map(e),fe=e=>[...e?.keys()??[]],Le=(e,t)=>e?.get(t),we=(e,t)=>ue(e,((e,s)=>t(s,e))),ve=(e,t,s)=>k(s)?(he(e,t),e):e?.set(t,s),Ie=(e,t,s)=>(le(e,t)||ve(e,t,s()),Le(e,t)),Se=(e,t,s,n=ve)=>(ae(t,((t,n)=>s(e,n,t))),we(e,(s=>se(t,s)?0:n(e,s))),e),Re=(e,t,s)=>{const n={};return ue(e,((e,a)=>{const o=t?t(e,a):e;!s?.(o,e)&&(n[a]=o)})),n},Te=(e,t,s)=>Re(e,(e=>Re(e,t,s)),oe),ye=(e,t,s)=>Re(e,(e=>Te(e,t,s)),oe),Ce=(e,t)=>{const s=ge();return ue(e,((e,n)=>s.set(n,t?.(e)??e))),s},pe=e=>Ce(e,Ce),be=e=>Ce(e,pe),Ve=(e,t,s,n,a=0)=>M((s?Ie:Le)(e,t[a],a>F(t)-2?s:ge),(o=>{if(a>F(t)-2)return n?.(o)&&ve(e,t[a]),o;const r=Ve(o,t,s,n,a+1);return ie(o)&&ve(e,t[a]),r})),me=t=>{const s=e(t);return D(s)||s==a&&E(t)?s:void 0},Ee=(e,t,s,n,a)=>k(a)?e.delCell(t,s,n,!0):e.setCell(t,s,n,a),ke=(e,t,s)=>k(s)?e.delValue(t):e.setValue(t,s),Me=e=>new Set(A(e)||k(e)?e:[e]),De=(e,t)=>e?.add(t),Je=(e,t,s,n,a)=>{const o=e.hasRow,r=ge(),l=ge(),i=ge(),d=ge(),c=ge(),u=ge(),h=(t,s,...n)=>{const a=Ie(u,t,Me);return W(n,(t=>De(a,t)&&s&&e.callListener(t))),n},g=(t,...s)=>M(Le(u,t),(n=>{W($(s)?de(n):s,(t=>{e.delListener(t),he(n,t)})),ie(n)&&ve(u,t)})),f=(e,s)=>{ve(r,e,s),le(l,e)||(ve(l,e,t()),ve(d,e,ge()),ve(c,e,ge()),a(i))},L=e=>{ve(r,e),ve(l,e),ve(d,e),ve(c,e),g(e),a(i)};return[()=>e,()=>fe(r),e=>we(l,e),e=>le(l,e),e=>Le(r,e),e=>Le(l,e),(e,t)=>ve(l,e,t),f,(t,n,a,r,l)=>{f(t,n);const i=ge(),u=ge(),L=Le(d,t),w=Le(c,t),v=t=>{const a=s=>e.getCell(n,t,s),d=Le(L,t),c=o(n,t)?s(r(a,t)):void 0;if(d===c||A(d)&&A(c)&&O(d,c)||ve(i,t,[d,c]),!k(l)){const e=Le(w,t),s=o(n,t)?l(a,t):void 0;e!=s&&ve(u,t,s)}},I=e=>{a((()=>{ue(i,(([,e],t)=>ve(L,t,e))),ue(u,((e,t)=>ve(w,t,e)))}),i,u,L,w,e),ce(i),ce(u)};we(L,v),e.hasTable(n)&&W(e.getRowIds(n),(e=>{le(L,e)||v(e)})),I(!0),g(t),h(t,0,e.addRowListener(n,null,((e,t,s)=>v(s))),e.addTableListener(n,(()=>I())))},L,e=>n(e,i),()=>we(u,L),h,g]},Ae=(n,a)=>e(n)==s?e=>e(n):n??(()=>a??t),xe=e=>{const t=new WeakMap;return s=>(t.has(s)||t.set(s,e(s)),t.get(s))},Fe=/^\d+$/,Qe=()=>{const e=[];let s=0;return[n=>(n?U(e):null)??t+s++,t=>{Fe.test(t)&&F(e)<1e3&&G(e,t)}]},ze=e=>{let s;const[n,a]=Qe(),o=ge();return[(a,r,l,i=[],d=(()=>[]))=>{s??=e();const c=n(1);return ve(o,c,[a,r,l,i,d]),De(Ve(r,l??[t],Me),c),c},(e,n,...a)=>W(((e,s=[t])=>{const n=[],a=(e,t)=>t==F(s)?G(n,e):null===s[t]?ue(e,(e=>a(e,t+1))):W([s[t],null],(s=>a(Le(e,s),t+1)));return a(e,0),n})(e,n),(e=>ue(e,(e=>Le(o,e)[0](s,...n??[],...a))))),e=>M(Le(o,e),(([,s,n])=>(Ve(s,n??[t],void 0,(t=>(he(t,e),ie(t)?1:0))),ve(o,e),a(e),n))),e=>M(Le(o,e),(([e,,t=[],n,a])=>{const o=(...r)=>{const l=F(r);l==F(t)?e(s,...r,...a(r)):k(t[l])?W(n[l]?.(...r)??[],(e=>o(...r,e))):o(...r,t[l])};o()}))]},Ne=xe((e=>{let s,n,a,o=100,r=ge(),l=ge(),i=1;const d=ge(),c=ge(),[u,h,g]=ze((()=>Q)),f=ge(),L=ge(),w=[],v=[],I=(t,s)=>{i=0,e.transaction((()=>{const[n,a]=Le(f,s);ue(n,((s,n)=>ue(s,((s,a)=>ue(s,((s,o)=>Ee(e,n,a,o,s[t]))))))),ue(a,((s,n)=>ke(e,n,s[t])))})),i=1},S=e=>{ve(f,e),ve(L,e),h(c,[e])},R=(e,t)=>W(((e,t)=>e.splice(0,t))(e,t??F(e)),S),T=()=>R(w,F(w)-o),y=()=>M(s,(()=>{G(w,s),T(),R(v),s=void 0,a=1})),C=()=>{s=K(w),a=1},p=e.addCellListener(null,null,null,((e,t,s,n,a,o)=>{if(i){y();const e=Ie(r,t,ge),l=Ie(e,s,ge),i=Ie(l,n,(()=>[o,void 0]));i[1]=a,i[0]===a&&ie(ve(l,n))&&ie(ve(e,s))&&ie(ve(r,t))&&C(),D()}})),b=e.addValueListener(null,((e,t,s,n)=>{if(i){y();const e=Ie(l,t,(()=>[n,void 0]));e[1]=s,e[0]===s&&ie(ve(l,t))&&C(),D()}})),V=(e="")=>(k(s)&&(s=t+n++,ve(f,s,[r,l]),A(s,e),r=ge(),l=ge(),a=1),s),m=()=>{$(w)||(((e,...t)=>{e.unshift(...t)})(v,V()),I(0,s),s=K(w),a=1)},E=()=>{$(v)||(G(w,s),s=U(v),I(1,s),a=1)},D=()=>{a&&(h(d),a=0)},J=e=>{const t=V(e);return D(),t},A=(e,t)=>(x(e)&&Le(L,e)!==t&&(ve(L,e,t),h(c,[e])),Q),x=e=>le(f,e),Q={setSize:e=>(o=e,T(),Q),addCheckpoint:J,setCheckpoint:A,getStore:()=>e,getCheckpointIds:()=>[[...w],s,[...v]],forEachCheckpoint:e=>we(L,e),hasCheckpoint:x,getCheckpoint:e=>Le(L,e),goBackward:()=>(m(),D(),Q),goForward:()=>(E(),D(),Q),goTo:e=>{const t=z(w,e)?m:z(v,e)?E:null;for(;!k(t)&&e!=s;)t();return D(),Q},addCheckpointIdsListener:e=>u(e,d),addCheckpointListener:(e,t)=>u(t,c,[e]),delListener:e=>(g(e),Q),clear:()=>(R(w),R(v),k(s)||S(s),s=void 0,n=0,J(),Q),clearForward:()=>($(v)||(R(v),h(d)),Q),destroy:()=>{e.delListener(p),e.delListener(b)},getListenerStats:()=>({})};return ee(Q.clear())})),Oe=(e,t)=>(e??0)<(t??0)?-1:1,Pe=xe((e=>{const s=ge(),n=ge(),[a,o,r]=ze((()=>S)),[l,i,d,c,u,h,g,,f,L,w,v]=Je(e,ge,(e=>k(e)?t:A(e)?B(e,b):b(e)),a,o),I=(t,s,n)=>{const a=u(t);ue(n,((t,n)=>s(n,(s=>ue(t,(t=>s(t,(s=>e.forEachCell(a,t,s)))))))))},S={setIndexDefinition:(e,t,a,r,l,i=Oe)=>{const d=k(l)?void 0:([e],[t])=>l(e,t);return f(e,t,((t,a,l,c,u,f)=>{let L=0;const w=Me(),v=Me(),I=h(e);if(ue(a,(([e,t],s)=>{const n=Me(e),a=Me(t);ue(n,(e=>he(a,e)?he(n,e):0)),ue(n,(e=>{De(w,e),M(Le(I,e),(t=>{he(t,s),ie(t)&&(ve(I,e),L=1)}))})),ue(a,(e=>{De(w,e),le(I,e)||(ve(I,e,Me()),L=1),De(Le(I,e),s),k(r)||De(v,e)}))})),t(),ie(u)||(f?we(I,(e=>De(v,e))):we(l,(e=>M(Le(c,e),(e=>De(v,e))))),ue(v,(e=>{const t=(t,s)=>i(Le(u,t),Le(u,s),e),s=[...Le(I,e)];P(s,t)||(ve(I,e,Me(j(s,t))),De(w,e))}))),(L||f)&&!k(d)){const t=[...I];P(t,d)||(g(e,ge(j(t,d))),L=1)}L&&o(s,[e]),ue(w,(t=>o(n,[e,t])))}),Ae(a),M(r,Ae)),S},delIndexDefinition:e=>(L(e),S),getStore:l,getIndexIds:i,forEachIndex:e=>d(((t,s)=>e(t,(e=>I(t,e,s))))),forEachSlice:(e,t)=>I(e,t,h(e)),hasIndex:c,hasSlice:(e,t)=>le(h(e),t),getTableId:u,getSliceIds:e=>fe(h(e)),getSliceRowIds:(e,t)=>de(Le(h(e),t)),addIndexIdsListener:w,addSliceIdsListener:(e,t)=>a(t,s,[e]),addSliceRowIdsListener:(e,t,s)=>a(s,n,[e,t]),delListener:e=>(r(e),S),destroy:v,getListenerStats:()=>({})};return ee(S)})),je=ge([["avg",[(e,t)=>H(e)/t,(e,t,s)=>e+(t-e)/(s+1),(e,t,s)=>e+(e-t)/(s-1),(e,t,s,n)=>e+(t-s)/n]],["max",[e=>V(...e),(e,t)=>V(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:V(t,e)]],["min",[e=>m(...e),(e,t)=>m(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:m(t,e)]],["sum",[e=>H(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),We=(e,t,s,n,a,o=!1)=>{if(ie(s))return;const[r,l,i,d]=a;return o||=k(e),ue(n,(([s,n])=>{o||(e=k(s)?l?.(e,n,t++):k(n)?i?.(e,s,t--):d?.(e,n,s,t),o||=k(e))})),o?r(de(s),re(s)):e},Be=xe((e=>{const s=ge(),[n,a,o]=ze((()=>v)),[r,l,i,d,c,u,h,,g,f,L,w]=Je(e,Q,(e=>isNaN(e)||k(e)||!0===e||!1===e||e===t?void 0:1*e),n,a),v={setMetricDefinition:(e,t,n,o,r,l,i)=>{const d=J(n)?[n,r,l,i]:Le(je,n)??Le(je,"sum");return g(e,t,((t,n,o,r,l,i)=>{const c=u(e),g=re(r);i||=k(c),t();let f=We(c,g,r,n,d,i);E(f)||(f=void 0),f!=c&&(h(e,f),a(s,[e],f,c))}),Ae(o,1)),v},delMetricDefinition:e=>(f(e),v),getStore:r,getMetricIds:l,forEachMetric:i,hasMetric:d,getTableId:c,getMetric:u,addMetricIdsListener:L,addMetricListener:(e,t)=>n(t,s,[e]),delListener:e=>(o(e),v),destroy:w,getListenerStats:()=>({})};return ee(v)})),He=ge(),$e=ge(),qe=(e,t,s,n,a,o,[r,l]=[],i=[])=>{let d,c,u,h=0,g=0;Ie(He,i,(()=>0)),Ie($e,i,(()=>[]));const f=async e=>(2!=h&&(h=1,await L.schedule((async()=>{await e(),h=0}))),L),L={load:async(s,n)=>await f((async()=>{try{e.setContent(await t())}catch{e.setContent([s,n])}})),startAutoLoad:async(s={},a={})=>(L.stopAutoLoad(),await L.load(s,a),g=1,u=n((async(s,n)=>{if(n){const t=n();await f((async()=>e.setTransactionChanges(t)))}else await f((async()=>{try{e.setContent(s?.()??await t())}catch(e){o?.(e)}}))})),L),stopAutoLoad:()=>(g&&(a(u),u=void 0,g=0),L),save:async t=>(1!=h&&(h=2,await L.schedule((async()=>{try{await s(e.getContent,t)}catch(e){o?.(e)}h=0}))),L),startAutoSave:async()=>(await L.stopAutoSave().save(),d=e.addDidFinishTransactionListener(((e,t)=>{const[s,n]=t();oe(s)&&oe(n)||L.save((()=>[s,n]))})),L),stopAutoSave:()=>(M(d,e.delListener),d=void 0,L),schedule:async(...e)=>(G(Le($e,i),...e),await(async()=>{if(!Le(He,i)){for(ve(He,i,1);!k(c=U(Le($e,i)));)try{await c()}catch(e){o?.(e)}ve(He,i,0)}})(),L),getStore:()=>e,destroy:()=>L.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return r&&(L[r]=()=>l),ee(L)},Ge=xe((e=>{const s=e.createStore,n=s(),a=s(),o=ge(),{addListener:r,callListeners:l,delListener:u}=a,[h,f,L,y,C,,,p,,b,V,m,E,D]=Je(e,(()=>!0),Q,r,l),A=(e,t,...s)=>W(s,(s=>De(Ie(Ie(o,t,ge),e,Me),s))),z=e=>{M(Le(o,e),(e=>{we(e,((e,t)=>ue(t,(t=>e.delListener(t))))),ce(e)})),W([a,n],(t=>t.delTable(e)))},O=(e,t,s)=>A(t,e,t.addStartTransactionListener(s.startTransaction),t.addDidFinishTransactionListener((()=>s.finishTransaction()))),P={setQueryDefinition:(s,o,r)=>{p(s,o),z(s);const l=[],i=[[null,[o,null,null,[],ge()]]],d=[],c=[],u=[];r({select:(e,s)=>{const n=J(e)?[F(l)+t,e]:[k(s)?e:s,t=>t(e,s)];return G(l,n),{as:e=>n[0]=e}},join:(e,t,s)=>{const n=k(s)||J(t)?null:t,a=k(n)?t:s,o=[e,[e,n,J(a)?a:e=>e(a),[],ge()]];return G(i,o),{as:e=>o[0]=e}},where:(e,t,s)=>G(d,J(e)?e:k(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,a)=>{const o=[e,[e,J(t)?[t,s,n,a]:Le(je,t)??[(e,t)=>t]]];return G(c,o),{as:e=>o[0]=e}},having:(e,t)=>G(u,J(e)?e:s=>s(e)===t)});const h=ge(l);if(ie(h))return P;const g=ge(i);we(g,((e,[,t])=>M(Le(g,t),(({3:t})=>k(e)?0:G(t,e)))));const f=ge(c);let L=n;if(ie(f)&&$(u))L=a;else{O(s,L,a);const e=ge();we(f,((t,[s,n])=>De(Ie(e,s,Me),[t,n])));const t=Me();we(h,(s=>le(e,s)?0:De(t,s)));const n=ge(),o=(t,n,o,r)=>M(t,(([l,i,d,c])=>{we(n,((t,[s])=>{const n=Ie(l,t,ge),a=Le(n,o),i=r?void 0:s;if(a!==i){const s=Me([[a,i]]),r=re(n);ve(n,o,i),ue(Le(e,t),(([e,t])=>{const a=We(c[e],r,n,s,t);c[e]=k(me(a))?null:a}))}})),ie(i)||!N(u,(e=>e((e=>c[e]))))?a.delRow(s,d):k(d)?t[2]=a.addRow(s,c):a.setRow(s,d,c)}));A(L,s,L.addRowListener(s,null,((a,r,l,i)=>{const d=[],c=[],u=ge(),h=L.hasRow(s,l);let g=!h;ue(t,(e=>{const[t,n,a]=i(s,l,e);G(d,n),G(c,a),g||=t})),we(e,(e=>{const[t,,n]=i(s,l,e);(g||t)&&ve(u,e,[n])})),g&&o(Ve(n,d,void 0,(([,e])=>(he(e,l),ie(e)))),u,l,1),h&&o(Ve(n,c,(()=>{const e={};return ue(t,(t=>e[t]=L.getCell(s,l,t))),[ge(),Me(),void 0,e]}),(([,e])=>{De(e,l)})),u,l)})))}O(s,e,L);const w=(t,n,a,r)=>{const l=t=>e.getCell(n,a,t);W(r,(n=>{const[a,,o,r,i]=Le(g,n),d=o?.(l,t),[c,u]=Le(i,t)??[];d!=c&&(k(u)||D(s,u),ve(i,t,k(d)?null:[d,...E(s,1,e.addRowListener(a,d,(()=>w(t,a,d,r))))]))})),(t=>{const n=(s,n)=>e.getCell(...k(n)?[o,t,s]:s===o?[o,t,n]:[Le(g,s)?.[0],Le(Le(g,s)?.[4],t)?.[0],n]);L.transaction((()=>N(d,(e=>e(n)))?we(h,((e,a)=>Ee(L,s,t,e,a(n,t)))):L.delRow(s,t)))})(t)},{3:v}=Le(g,null);return L.transaction((()=>E(s,1,e.addRowListener(o,null,((t,n,a)=>{e.hasRow(o,a)?w(a,o,a,v):(L.delRow(s,a),ue(g,(({4:e})=>M(Le(e,a),(([,t])=>{D(s,t),ve(e,a)})))))}))))),P},delQueryDefinition:e=>(z(e),b(e),P),getStore:h,getQueryIds:f,forEachQuery:L,hasQuery:y,getTableId:C,addQueryIdsListener:e=>V((()=>e(P))),delListener:e=>(u(e),P),destroy:m,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=a.getListenerStats();return n}};return ae({[g]:[1,1],[g+T]:[0,1],[v]:[0,1],[I]:[0,1],[S]:[0,5],[w]:[1,2],[T]:[0,2],[R]:[1,3]},(([e,t],s)=>{W(e?["get","has","forEach"]:["get"],(e=>P[e+d+s]=(...t)=>a[e+s](...t))),P[c+d+s+i]=(...e)=>a[c+s+i](...x(e,0,t),((s,...n)=>e[t](P,...n)),!0)})),ee(P)})),Ke=xe((e=>{const s=ge(),n=ge(),a=ge(),o=ge(),[r,l,i]=ze((()=>y)),[d,c,u,h,g,f,,,L,w,v,I]=Je(e,(()=>[ge(),ge(),ge(),ge()]),(e=>k(e)?void 0:e+t),r,l),S=(e,t,s)=>M(f(e),(([n,,a])=>{if(!le(a,t)){const o=Me();if(g(e)!=T(e))De(o,t);else{let e=t;for(;!k(e)&&!le(o,e);)De(o,e),e=Le(n,e)}if(s)return o;ve(a,t,o)}return Le(a,t)})),R=(e,t)=>M(f(e),(([,,e])=>ve(e,t))),T=e=>Le(s,e),y={setRelationshipDefinition:(e,t,r,i)=>(ve(s,e,r),L(e,t,((t,s)=>{const r=Me(),i=Me(),d=Me(),[c,u]=f(e);ue(s,(([t,s],n)=>{k(t)||(De(i,t),M(Le(u,t),(e=>{he(e,n),ie(e)&&ve(u,t)}))),k(s)||(De(i,s),le(u,s)||ve(u,s,Me()),De(Le(u,s),n)),De(r,n),ve(c,n,s),we(Le(o,e),(t=>{le(S(e,t),n)&&De(d,t)}))})),t(),ue(r,(t=>l(n,[e,t]))),ue(i,(t=>l(a,[e,t]))),ue(d,(t=>{R(e,t),l(o,[e,t])}))}),Ae(i)),y),delRelationshipDefinition:e=>(ve(s,e),w(e),y),getStore:d,getRelationshipIds:c,forEachRelationship:t=>u((s=>t(s,(t=>e.forEachRow(g(s),t))))),hasRelationship:h,getLocalTableId:g,getRemoteTableId:T,getRemoteRowId:(e,t)=>Le(f(e)?.[0],t),getLocalRowIds:(e,t)=>de(Le(f(e)?.[1],t)),getLinkedRowIds:(e,t)=>k(f(e))?[t]:de(S(e,t,!0)),addRelationshipIdsListener:v,addRemoteRowIdListener:(e,t,s)=>r(s,n,[e,t]),addLocalRowIdsListener:(e,t,s)=>r(s,a,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(S(e,t),r(s,o,[e,t])),delListener:e=>(R(...i(e)??[]),y),destroy:I,getListenerStats:()=>({})};return ee(y)})),Ue=e=>[e,e],Xe=()=>[ge(),ge()],Ye=e=>[...e],Ze=([e,t])=>e===t,_e=e=>JSON.stringify(e,((e,t)=>t instanceof Map?X.fromEntries([...t]):t)),et=JSON.parse,tt=(e,t,s)=>k(e)||!te(e)||oe(e)||_(e)?(s?.(),!1):(ae(e,((s,n)=>{t(s,n)||ne(e,n)})),!oe(e)),st=(e,t,s)=>ve(e,t,Le(e,t)==-s?void 0:s),nt=()=>{let e,t,s=!1,n=!1,o=!1,d=!1,h=0;const S=ge(),V=ge(),m=ge(),E=ge(),A=ge(),F=ge(),Q=ge(),N=ge(),P=ge(),H=ge(),$=ge(),q=ge(),K=ge(),U=ge(),X=Me(),Y=ge(),Z=ge(),_=ge(),te=ge(),de=Xe(),Ve=Xe(),Je=Xe(),Ae=Xe(),xe=Xe(),Fe=Xe(),Ne=Xe(),Pe=Xe(),je=Xe(),We=Xe(),Be=Xe(),He=Xe(),$e=Xe(),qe=Xe(),Ge=Xe(),Ke=Xe(),at=Xe(),ot=Xe(),rt=Xe(),lt=Xe(),it=Xe(),dt=Xe(),ct=ge(),ut=Xe(),[ht,gt,ft,Lt]=ze((()=>zs)),wt=e=>{if(!tt(e,((e,t)=>z([r,l],t))))return!1;const t=e[r];return!(!D(t)&&t!=a||(me(e[l])!=t&&ne(e,l),0))},vt=(t,s)=>(!e||le($,s)||Gt(s))&&tt(t,((e,t)=>It(s,t,e)),(()=>Gt(s))),It=(e,t,s,n)=>tt(n?s:yt(s,e,t),((n,a)=>M(St(e,t,a,n),(e=>(s[a]=e,!0)),(()=>!1))),(()=>Gt(e,t))),St=(t,s,n,a)=>e?M(Le(Le($,t),n),(e=>me(a)!=e[r]?Gt(t,s,n,a,e[l]):a),(()=>Gt(t,s,n,a))):k(me(a))?Gt(t,s,n,a):a,Rt=(e,t)=>tt(t?e:Ct(e),((t,s)=>M(Tt(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>Kt())),Tt=(e,s)=>t?M(Le(K,e),(t=>me(s)!=t[r]?Kt(e,s,t[l]):s),(()=>Kt(e,s))):k(me(s))?Kt(e,s):s,yt=(e,t,s)=>(M(Le(q,t),(([n,a])=>{ue(n,((t,s)=>{se(e,s)||(e[s]=t)})),ue(a,(n=>{se(e,n)||Gt(t,s,n)}))})),e),Ct=e=>(t&&(ue(U,((t,s)=>{se(e,s)||(e[s]=t)})),ue(X,(t=>{se(e,t)||Kt(t)}))),e),pt=e=>Se($,e,((e,t,s)=>{const n=ge(),a=Me();Se(Ie($,t,ge),s,((e,t,s)=>{ve(e,t,s),M(s[l],(e=>ve(n,t,e)),(()=>De(a,t)))})),ve(q,t,[n,a])}),((e,t)=>{ve($,t),ve(q,t)})),bt=e=>Se(K,e,((e,t,s)=>{ve(K,t,s),M(s[l],(e=>ve(U,t,e)),(()=>De(X,t)))}),((e,t)=>{ve(K,t),ve(U,t),he(X,t)})),Vt=e=>oe(e)?Es():Cs(e),mt=e=>Se(_,e,((e,t,s)=>Et(t,s)),((e,t)=>zt(t))),Et=(e,t)=>Se(Ie(_,e,(()=>(jt(e,1),ve(Y,e,Qe()),ve(Z,e,ge()),ge()))),t,((t,s,n)=>kt(e,t,s,n)),((t,s)=>Nt(e,t,s))),kt=(e,t,s,n,a)=>Se(Ie(t,s,(()=>(Wt(e,s,1),ge()))),n,((t,n,a)=>Mt(e,s,t,n,a)),((n,o)=>Ot(e,t,s,n,o,a))),Mt=(e,t,s,n,a)=>{le(s,n)||Bt(e,t,n,1);const o=Le(s,n);a!==o&&(Ht(e,t,n,o,a),ve(s,n,a))},Dt=(e,t,s,n,a)=>M(Le(t,s),(t=>Mt(e,s,t,n,a)),(()=>kt(e,t,s,yt({[n]:a},e,s)))),Jt=e=>oe(e)?Ds():ps(e),At=e=>Se(te,e,((e,t,s)=>xt(t,s)),((e,t)=>Pt(t))),xt=(e,t)=>{le(te,e)||$t(e,1);const s=Le(te,e);t!==s&&(qt(e,s,t),ve(te,e,t))},Ft=(e,t)=>{const[s]=Le(Y,e),n=s(t);return le(Le(_,e),n)?Ft(e,t):n},Qt=e=>Le(_,e)??Et(e,{}),zt=e=>Et(e,{}),Nt=(e,t,s)=>{const[,n]=Le(Y,e);n(s),kt(e,t,s,{},!0)},Ot=(e,t,s,n,a,o)=>{const r=Le(Le(q,e)?.[0],a);if(!k(r)&&!o)return Mt(e,s,n,a,r);const l=t=>{Ht(e,s,t,Le(n,t)),Bt(e,s,t,-1),ve(n,t)};k(r)?l(a):we(n,l),ie(n)&&(Wt(e,s,-1),ie(ve(t,s))&&(jt(e,-1),ve(_,e),ve(Y,e),ve(Z,e)))},Pt=e=>{const t=Le(U,e);if(!k(t))return xt(e,t);qt(e,Le(te,e)),$t(e,-1),ve(te,e)},jt=(e,t)=>st(S,e,t),Wt=(e,t,s)=>st(Ie(E,e,ge),t,s)&&ve(m,e,Ie(m,e,(()=>0))+s),Bt=(e,t,s,n)=>{const a=Le(Z,e),o=Le(a,s)??0;(0==o&&1==n||1==o&&-1==n)&&st(Ie(V,e,ge),s,n),ve(a,s,o!=-n?o+n:null),st(Ie(Ie(A,e,ge),t,ge),s,n)},Ht=(e,t,s,n,a)=>Ie(Ie(Ie(F,e,ge),t,ge),s,(()=>[n,0]))[1]=a,$t=(e,t)=>st(Q,e,t),qt=(e,t,s)=>Ie(N,e,(()=>[t,0]))[1]=s,Gt=(e,t,s,n,a)=>(G(Ie(Ie(Ie(P,e,ge),t,ge),s,(()=>[])),n),a),Kt=(e,t,s)=>(G(Ie(H,e,(()=>[])),t),s),Ut=(e,t,s)=>M(Le(Le(Le(F,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...Ue(hs(e,t,s))])),Xt=e=>M(Le(N,e),(([e,t])=>[!0,e,t]),(()=>[!1,...Ue(Ls(e))])),Yt=e=>ie(P)||ie(Ke[e])?0:ue(e?be(P):P,((t,s)=>ue(t,((t,n)=>ue(t,((t,a)=>gt(Ke[e],[s,n,a],t))))))),Zt=e=>ie(H)||ie(at[e])?0:ue(e?Ce(H):H,((t,s)=>gt(at[e],[s],t))),_t=(e,t,s,n)=>{if(!ie(e))return gt(t,n,(()=>Re(e))),we(e,((e,t)=>gt(s,[...n??[],e],1==t))),1},es=e=>{const t=ws();t!=o&&gt(de[e],void 0,t);const s=ie(We[e]),n=ie($e[e])&&ie(qe[e])&&ie(je[e])&&ie(Be[e])&&ie(Fe[e])&&ie(Ne[e])&&ie(Pe[e])&&s&&ie(Je[e])&&ie(Ae[e]),a=ie(Ge[e])&&ie(He[e])&&ie(xe[e])&&ie(Ve[e]);if(!n||!a){const t=e?[Ce(S),pe(V),Ce(m),pe(E),be(A),be(F)]:[S,V,m,E,A,F];if(!n){_t(t[0],Je[e],Ae[e]),ue(t[1],((t,s)=>_t(t,Fe[e],Ne[e],[s]))),ue(t[2],((t,s)=>{0!=t&&gt(Pe[e],[s],is(s))}));const n=Me();ue(t[3],((t,a)=>{_t(t,je[e],Be[e],[a])&&!s&&(gt(We[e],[a,null]),De(n,a))})),s||ue(t[5],((t,s)=>{if(!le(n,s)){const n=Me();ue(t,(e=>ue(e,(([t,s],a)=>s!==t?De(n,a):he(e,a))))),ue(n,(t=>gt(We[e],[s,t])))}})),ue(t[4],((t,s)=>ue(t,((t,n)=>_t(t,$e[e],qe[e],[s,n])))))}if(!a){let s;ue(t[5],((t,n)=>{let a;ue(t,((t,o)=>{let r;ue(t,(([t,l],i)=>{l!==t&&(gt(Ge[e],[n,o,i],l,t,Ut),s=a=r=1)})),r&&gt(He[e],[n,o],Ut)})),a&&gt(xe[e],[n],Ut)})),s&&gt(Ve[e],void 0,Ut)}}},ts=e=>{const t=Ts();t!=d&&gt(ot[e],void 0,t);const s=ie(lt[e])&&ie(it[e]),n=ie(dt[e])&&ie(rt[e]);if(!s||!n){const t=e?[Ce(Q),Ce(N)]:[Q,N];if(s||_t(t[0],lt[e],it[e]),!n){let s;ue(t[1],(([t,n],a)=>{n!==t&&(gt(dt[e],[a],n,t,Xt),s=1)})),s&&gt(rt[e],void 0,Xt)}}},ss=(e,...t)=>(xs((()=>e(...B(t,b)))),zs),ns=()=>[Re(F,((e,t)=>-1===Le(S,t)?null:Re(e,((e,s)=>-1===Le(Le(E,t),s)?null:Re(e,(([,e])=>e??null),((e,t)=>Ze(t)))),oe)),oe),Re(N,(([,e])=>e??null),((e,t)=>Ze(t)))],as=()=>({cellsTouched:s,valuesTouched:n,changedCells:ye(F,Ye,Ze),invalidCells:ye(P),changedValues:Re(N,Ye,Ze),invalidValues:Re(H),changedTableIds:Re(S),changedRowIds:Te(E),changedCellIds:ye(A),changedValueIds:Re(Q)}),os=()=>ye(_),rs=()=>fe(_),ls=e=>fe(Le(Z,b(e))),is=e=>re(Le(_,b(e))),ds=e=>fe(Le(_,b(e))),cs=(e,t,s,n=0,a)=>{return B(x(j((o=Le(_,b(e)),r=(e,s)=>[k(t)?s:Le(e,b(t)),s],B([...o?.entries()??[]],(([e,t])=>r(t,e)))),(([e],[t])=>Oe(e,t)*(s?-1:1))),n,k(a)?a:n+a),(([,e])=>e));var o,r},us=(e,t)=>fe(Le(Le(_,b(e)),b(t))),hs=(e,t,s)=>Le(Le(Le(_,b(e)),b(t)),b(s)),gs=()=>Re(te),fs=()=>fe(te),Ls=e=>Le(te,b(e)),ws=()=>!ie(_),vs=e=>le(_,b(e)),Is=(e,t)=>le(Le(Z,b(e)),b(t)),Ss=(e,t)=>le(Le(_,b(e)),b(t)),Rs=(e,t,s)=>le(Le(Le(_,b(e)),b(t)),b(s)),Ts=()=>!ie(te),ys=e=>le(te,b(e)),Cs=e=>ss((()=>(e=>tt(e,vt,Gt))(e)?mt(e):0)),ps=e=>ss((()=>Rt(e)?At(e):0)),bs=e=>{try{Vt(et(e))}catch{}return zs},Vs=t=>ss((()=>{if((e=tt(t,(e=>tt(e,wt))))&&(pt(t),!ie(_))){const e=os();Es(),Cs(e)}})),ms=e=>ss((()=>{if(t=(e=>tt(e,wt))(e)){const s=gs();As(),Ds(),t=!0,bt(e),ps(s)}})),Es=()=>ss((()=>mt({}))),ks=e=>ss((e=>le(_,e)?zt(e):0),e),Ms=(e,t)=>ss(((e,t)=>M(Le(_,e),(s=>le(s,t)?Nt(e,s,t):0))),e,t),Ds=()=>ss((()=>At({}))),Js=()=>ss((()=>{pt({}),e=!1})),As=()=>ss((()=>{bt({}),t=!1})),xs=(e,t)=>{if(-1!=h){Fs();const s=e();return Qs(t),s}},Fs=()=>(-1!=h&&h++,1==h&&gt(ct,void 0,ns,as),zs),Qs=e=>(h>0&&(h--,0==h&&(s=!ie(F),n=!ie(N),h=1,Yt(1),s&&es(1),Zt(1),n&&ts(1),e?.(ns,as)&&(ue(F,((e,t)=>ue(e,((e,s)=>ue(e,(([e],n)=>Ee(zs,t,s,n,e))))))),ue(N,(([e],t)=>ke(zs,t,e))),s=n=!1),gt(ut[0],void 0,ns,as),h=-1,Yt(0),s&&es(0),Zt(0),n&&ts(0),gt(ut[1],void 0,ns,as),h=0,s=n=!1,o=ws(),d=Ts(),W([S,V,m,E,A,F,P,Q,N,H],ce))),zs),zs={getContent:()=>[os(),gs()],getTables:os,getTableIds:rs,getTable:e=>Te(Le(_,b(e))),getTableCellIds:ls,getRowCount:is,getRowIds:ds,getSortedRowIds:cs,getRow:(e,t)=>Re(Le(Le(_,b(e)),b(t))),getCellIds:us,getCell:hs,getValues:gs,getValueIds:fs,getValue:Ls,hasTables:ws,hasTable:vs,hasTableCell:Is,hasRow:Ss,hasCell:Rs,hasValues:Ts,hasValue:ys,getTablesJson:()=>_e(_),getValuesJson:()=>_e(te),getJson:()=>_e([_,te]),getTablesSchemaJson:()=>_e($),getValuesSchemaJson:()=>_e(K),getSchemaJson:()=>_e([$,K]),hasTablesSchema:()=>e,hasValuesSchema:()=>t,setContent:([e,t])=>ss((()=>{(oe(e)?Es:Cs)(e),(oe(t)?Ds:ps)(t)})),setTables:Cs,setTable:(e,t)=>ss((e=>vt(t,e)?Et(e,t):0),e),setRow:(e,t,s)=>ss(((e,t)=>It(e,t,s)?kt(e,Qt(e),t,s):0),e,t),addRow:(e,t,s=!0)=>xs((()=>{let n;return It(e,n,t)&&(e=b(e),kt(e,Qt(e),n=Ft(e,s?1:0),t)),n})),setPartialRow:(e,t,s)=>ss(((e,t)=>{if(It(e,t,s,1)){const n=Qt(e);ae(s,((s,a)=>Dt(e,n,t,a,s)))}}),e,t),setCell:(e,t,s,n)=>ss(((e,t,s)=>M(St(e,t,s,J(n)?n(hs(e,t,s)):n),(n=>Dt(e,Qt(e),t,s,n)))),e,t,s),setValues:ps,setPartialValues:e=>ss((()=>Rt(e,1)?ae(e,((e,t)=>xt(t,e))):0)),setValue:(e,t)=>ss((e=>M(Tt(e,J(t)?t(Ls(e)):t),(t=>xt(e,t)))),e),setTransactionChanges:e=>ss((()=>{ae(e[0],((e,t)=>k(e)?ks(t):ae(e,((e,s)=>k(e)?Ms(t,s):ae(e,((e,n)=>Ee(zs,t,s,n,e))))))),ae(e[1],((e,t)=>ke(zs,t,e)))})),setTablesJson:bs,setValuesJson:e=>{try{Jt(et(e))}catch{}return zs},setJson:e=>ss((()=>{try{const[t,s]=et(e);Vt(t),Jt(s)}catch{bs(e)}})),setTablesSchema:Vs,setValuesSchema:ms,setSchema:(e,t)=>ss((()=>{Vs(e),ms(t)})),delTables:Es,delTable:ks,delRow:Ms,delCell:(e,t,s,n)=>ss(((e,t,s)=>M(Le(_,e),(a=>M(Le(a,t),(o=>le(o,s)?Ot(e,a,t,o,s,n):0))))),e,t,s),delValues:Ds,delValue:e=>ss((e=>le(te,e)?Pt(e):0),e),delTablesSchema:Js,delValuesSchema:As,delSchema:()=>ss((()=>{Js(),As()})),transaction:xs,startTransaction:Fs,finishTransaction:Qs,forEachTable:e=>ue(_,((t,s)=>e(s,(e=>ue(t,((t,s)=>e(s,(e=>we(t,e))))))))),forEachTableCell:(e,t)=>we(Le(Z,b(e)),t),forEachRow:(e,t)=>ue(Le(_,b(e)),((e,s)=>t(s,(t=>we(e,t))))),forEachCell:(e,t,s)=>we(Le(Le(_,b(e)),b(t)),s),forEachValue:e=>we(te,e),addSortedRowIdsListener:(e,t,s,n,a,o,r)=>{let l=cs(e,t,s,n,a);return ht((()=>{const r=cs(e,t,s,n,a);O(r,l)||(l=r,o(zs,e,t,s,n,a,l))}),We[r?1:0],[e,t],[rs])},addStartTransactionListener:e=>ht(e,ct),addWillFinishTransactionListener:e=>ht(e,ut[0]),addDidFinishTransactionListener:e=>ht(e,ut[1]),callListener:e=>(Lt(e),zs),delListener:e=>(ft(e),zs),getListenerStats:()=>({}),createStore:nt,addListener:ht,callListeners:gt};return ae({[u+f]:[0,de,[],()=>[ws()]],[f]:[0,Ve],[L]:[0,Je],[u+g]:[1,Ae,[rs],e=>[vs(...e)]],[g]:[1,xe,[rs]],[g+T]:[1,Fe,[rs]],[u+g+R]:[2,Ne,[rs,ls],e=>[Is(...e)]],[v]:[1,Pe,[rs]],[I]:[1,je,[rs]],[u+w]:[2,Be,[rs,ds],e=>[Ss(...e)]],[w]:[2,He,[rs,ds]],[T]:[2,$e,[rs,ds]],[u+R]:[3,qe,[rs,ds,us],e=>[Rs(...e)]],[R]:[3,Ge,[rs,ds,us],e=>Ue(hs(...e))],InvalidCell:[3,Ke],[u+C]:[0,ot,[],()=>[Ts()]],[C]:[0,rt],[p]:[0,lt],[u+y]:[1,it,[fs],e=>[ys(...e)]],[y]:[1,dt,[fs],e=>Ue(Ls(e[0]))],InvalidValue:[1,at]},(([e,t,s,n],a)=>{zs[c+a+i]=(...a)=>ht(a[e],t[a[e+1]?1:0],e>0?x(a,0,e):void 0,s,n)})),ee(zs)};export{Ne as createCheckpoints,qe as createCustomPersister,Pe as createIndexes,Be as createMetrics,Ge as createQueries,Ke as createRelationships,nt as createStore,Oe as defaultSorter};
1
+ const e=e=>typeof e,t="",s=e(t),n=e(!0),a=e(0),o=e(e),r="type",l="default",i="Listener",c="Result",d="add",u="Has",h="Ids",g="Table",f=g+"s",L=g+h,w="Row",v=w+"Count",I=w+h,S="Sorted"+w+h,R="Cell",T=R+h,y="Value",C=y+"s",p=y+h,b=e=>t+e,V=Math.max,m=Math.min,E=isFinite,k=e=>null==e,M=(e,t,s)=>k(e)?s?.():t(e),D=e=>e==s||e==n,J=t=>e(t)==o,A=e=>Array.isArray(e),x=(e,t,s)=>e.slice(t,s),F=e=>e.length,Q=()=>{},z=(e,t)=>e.includes(t),N=(e,t)=>e.every(t),O=(e,t)=>F(e)===F(t)&&N(e,((e,s)=>t[s]===e)),P=(e,t)=>N(e,((s,n)=>0==n||t(e[n-1],s)<=0)),j=(e,t)=>e.sort(t),W=(e,t)=>e.forEach(t),_=(e,t)=>e.map(t),B=e=>$(e,((e,t)=>e+t),0),H=e=>0==F(e),$=(e,t,s)=>e.reduce(t,s),q=(e,...t)=>e.push(...t),G=e=>e.pop(),K=e=>e.shift(),U=Object,X=e=>U.getPrototypeOf(e),Y=U.entries,Z=U.keys,ee=U.isFrozen,te=U.freeze,se=e=>!k(e)&&M(X(e),(e=>e==U.prototype||k(X(e))),(()=>!0)),ne=(e,t)=>!k(((e,t)=>M(e,(e=>e[t])))(e,t)),ae=(e,t)=>(delete e[t],e),oe=(e,t)=>_(Y(e),(([e,s])=>t(s,e))),re=e=>se(e)&&0==(e=>F(Z(e)))(e),le=e=>e?.size??0,ie=(e,t)=>e?.has(t)??!1,ce=e=>k(e)||0==le(e),de=e=>[...e?.values()??[]],ue=e=>e.clear(),he=(e,t)=>e?.forEach(t),ge=(e,t)=>e?.delete(t),fe=e=>new Map(e),Le=e=>[...e?.keys()??[]],we=(e,t)=>e?.get(t),ve=(e,t)=>he(e,((e,s)=>t(s,e))),Ie=(e,t,s)=>k(s)?(ge(e,t),e):e?.set(t,s),Se=(e,t,s)=>(ie(e,t)||Ie(e,t,s()),we(e,t)),Re=(e,t,s,n=Ie)=>(oe(t,((t,n)=>s(e,n,t))),ve(e,(s=>ne(t,s)?0:n(e,s))),e),Te=(e,t,s)=>{const n={};return he(e,((e,a)=>{const o=t?t(e,a):e;!s?.(o,e)&&(n[a]=o)})),n},ye=(e,t,s)=>Te(e,(e=>Te(e,t,s)),re),Ce=(e,t,s)=>Te(e,(e=>ye(e,t,s)),re),pe=(e,t)=>{const s=fe();return he(e,((e,n)=>s.set(n,t?.(e)??e))),s},be=e=>pe(e,pe),Ve=e=>pe(e,be),me=(e,t,s,n,a=0)=>M((s?Se:we)(e,t[a],a>F(t)-2?s:fe),(o=>{if(a>F(t)-2)return n?.(o)&&Ie(e,t[a]),o;const r=me(o,t,s,n,a+1);return ce(o)&&Ie(e,t[a]),r})),Ee=t=>{const s=e(t);return D(s)||s==a&&E(t)?s:void 0},ke=(e,t,s,n,a)=>k(a)?e.delCell(t,s,n,!0):e.setCell(t,s,n,a),Me=(e,t,s)=>k(s)?e.delValue(t):e.setValue(t,s),De=e=>new Set(A(e)||k(e)?e:[e]),Je=(e,t)=>e?.add(t),Ae=(e,t,s,n,a)=>{const o=e.hasRow,r=fe(),l=fe(),i=fe(),c=fe(),d=fe(),u=fe(),h=(t,s,...n)=>{const a=Se(u,t,De);return W(n,(t=>Je(a,t)&&s&&e.callListener(t))),n},g=(t,...s)=>M(we(u,t),(n=>{W(H(s)?de(n):s,(t=>{e.delListener(t),ge(n,t)})),ce(n)&&Ie(u,t)})),f=(e,s)=>{Ie(r,e,s),ie(l,e)||(Ie(l,e,t()),Ie(c,e,fe()),Ie(d,e,fe()),a(i))},L=e=>{Ie(r,e),Ie(l,e),Ie(c,e),Ie(d,e),g(e),a(i)};return[()=>e,()=>Le(r),e=>ve(l,e),e=>ie(l,e),e=>we(r,e),e=>we(l,e),(e,t)=>Ie(l,e,t),f,(t,n,a,r,l)=>{f(t,n);const i=fe(),u=fe(),L=we(c,t),w=we(d,t),v=t=>{const a=s=>e.getCell(n,t,s),c=we(L,t),d=o(n,t)?s(r(a,t)):void 0;if(c===d||A(c)&&A(d)&&O(c,d)||Ie(i,t,[c,d]),!k(l)){const e=we(w,t),s=o(n,t)?l(a,t):void 0;e!=s&&Ie(u,t,s)}},I=e=>{a((()=>{he(i,(([,e],t)=>Ie(L,t,e))),he(u,((e,t)=>Ie(w,t,e)))}),i,u,L,w,e),ue(i),ue(u)};ve(L,v),e.hasTable(n)&&W(e.getRowIds(n),(e=>{ie(L,e)||v(e)})),I(!0),g(t),h(t,0,e.addRowListener(n,null,((e,t,s)=>v(s))),e.addTableListener(n,(()=>I())))},L,e=>n(e,i),()=>ve(u,L),h,g]},xe=(n,a)=>e(n)==s?e=>e(n):n??(()=>a??t),Fe=(e,t)=>{const s=new WeakMap;return n=>{s.has(n)||s.set(n,e(n));const a=s.get(n);return t?.(a),a}},Qe=/^\d+$/,ze=()=>{const e=[];let s=0;return[n=>(n?K(e):null)??t+s++,t=>{Qe.test(t)&&F(e)<1e3&&q(e,t)}]},Ne=e=>{let s;const[n,a]=ze(),o=fe();return[(a,r,l,i=[],c=(()=>[]))=>{s??=e();const d=n(1);return Ie(o,d,[a,r,l,i,c]),Je(me(r,l??[t],De),d),d},(e,n,...a)=>W(((e,s=[t])=>{const n=[],a=(e,t)=>t==F(s)?q(n,e):null===s[t]?he(e,(e=>a(e,t+1))):W([s[t],null],(s=>a(we(e,s),t+1)));return a(e,0),n})(e,n),(e=>he(e,(e=>we(o,e)[0](s,...n??[],...a))))),e=>M(we(o,e),(([,s,n])=>(me(s,n??[t],void 0,(t=>(ge(t,e),ce(t)?1:0))),Ie(o,e),a(e),n))),e=>M(we(o,e),(([e,,t=[],n,a])=>{const o=(...r)=>{const l=F(r);l==F(t)?e(s,...r,...a(r)):k(t[l])?W(n[l]?.(...r)??[],(e=>o(...r,e))):o(...r,t[l])};o()}))]},Oe=Fe((e=>{let s,n,a,o=100,r=fe(),l=fe(),i=1;const c=fe(),d=fe(),[u,h,g]=Ne((()=>Q)),f=fe(),L=fe(),w=[],v=[],I=(t,s)=>{i=0,e.transaction((()=>{const[n,a]=we(f,s);he(n,((s,n)=>he(s,((s,a)=>he(s,((s,o)=>ke(e,n,a,o,s[t]))))))),he(a,((s,n)=>Me(e,n,s[t])))})),i=1},S=e=>{Ie(f,e),Ie(L,e),h(d,[e])},R=(e,t)=>W(((e,t)=>e.splice(0,t))(e,t??F(e)),S),T=()=>R(w,F(w)-o),y=()=>M(s,(()=>{q(w,s),T(),R(v),s=void 0,a=1})),C=()=>{s=G(w),a=1};let p,b;const V=(e="")=>(k(s)&&(s=t+n++,Ie(f,s,[r,l]),A(s,e),r=fe(),l=fe(),a=1),s),m=()=>{H(w)||(((e,...t)=>{e.unshift(...t)})(v,V()),I(0,s),s=G(w),a=1)},E=()=>{H(v)||(q(w,s),s=K(v),I(1,s),a=1)},D=()=>{a&&(h(c),a=0)},J=e=>{const t=V(e);return D(),t},A=(e,t)=>(x(e)&&we(L,e)!==t&&(Ie(L,e,t),h(d,[e])),Q),x=e=>ie(f,e),Q={setSize:e=>(o=e,T(),Q),addCheckpoint:J,setCheckpoint:A,getStore:()=>e,getCheckpointIds:()=>[[...w],s,[...v]],forEachCheckpoint:e=>ve(L,e),hasCheckpoint:x,getCheckpoint:e=>we(L,e),goBackward:()=>(m(),D(),Q),goForward:()=>(E(),D(),Q),goTo:e=>{const t=z(w,e)?m:z(v,e)?E:null;for(;!k(t)&&e!=s;)t();return D(),Q},addCheckpointIdsListener:e=>u(e,c),addCheckpointListener:(e,t)=>u(t,d,[e]),delListener:e=>(g(e),Q),clear:()=>(R(w),R(v),k(s)||S(s),s=void 0,n=0,J(),Q),clearForward:()=>(H(v)||(R(v),h(c)),Q),destroy:()=>{e.delListener(p),e.delListener(b)},getListenerStats:()=>({}),_registerListeners:()=>{p=e.addCellListener(null,null,null,((e,t,s,n,a,o)=>{if(i){y();const e=Se(r,t,fe),l=Se(e,s,fe),i=Se(l,n,(()=>[o,void 0]));i[1]=a,i[0]===a&&ce(Ie(l,n))&&ce(Ie(e,s))&&ce(Ie(r,t))&&C(),D()}})),b=e.addValueListener(null,((e,t,s,n)=>{if(i){y();const e=Se(l,t,(()=>[n,void 0]));e[1]=s,e[0]===s&&ce(Ie(l,t))&&C(),D()}}))}};return te(Q.clear())}),(e=>e._registerListeners())),Pe=(e,t)=>(e??0)<(t??0)?-1:1,je=Fe((e=>{const s=fe(),n=fe(),[a,o,r]=Ne((()=>S)),[l,i,c,d,u,h,g,,f,L,w,v]=Ae(e,fe,(e=>k(e)?t:A(e)?_(e,b):b(e)),a,o),I=(t,s,n)=>{const a=u(t);he(n,((t,n)=>s(n,(s=>he(t,(t=>s(t,(s=>e.forEachCell(a,t,s)))))))))},S={setIndexDefinition:(e,t,a,r,l,i=Pe)=>{const c=k(l)?void 0:([e],[t])=>l(e,t);return f(e,t,((t,a,l,d,u,f)=>{let L=0;const w=De(),v=De(),I=h(e);if(he(a,(([e,t],s)=>{const n=De(e),a=De(t);he(n,(e=>ge(a,e)?ge(n,e):0)),he(n,(e=>{Je(w,e),M(we(I,e),(t=>{ge(t,s),ce(t)&&(Ie(I,e),L=1)}))})),he(a,(e=>{Je(w,e),ie(I,e)||(Ie(I,e,De()),L=1),Je(we(I,e),s),k(r)||Je(v,e)}))})),t(),ce(u)||(f?ve(I,(e=>Je(v,e))):ve(l,(e=>M(we(d,e),(e=>Je(v,e))))),he(v,(e=>{const t=(t,s)=>i(we(u,t),we(u,s),e),s=[...we(I,e)];P(s,t)||(Ie(I,e,De(j(s,t))),Je(w,e))}))),(L||f)&&!k(c)){const t=[...I];P(t,c)||(g(e,fe(j(t,c))),L=1)}L&&o(s,[e]),he(w,(t=>o(n,[e,t])))}),xe(a),M(r,xe)),S},delIndexDefinition:e=>(L(e),S),getStore:l,getIndexIds:i,forEachIndex:e=>c(((t,s)=>e(t,(e=>I(t,e,s))))),forEachSlice:(e,t)=>I(e,t,h(e)),hasIndex:d,hasSlice:(e,t)=>ie(h(e),t),getTableId:u,getSliceIds:e=>Le(h(e)),getSliceRowIds:(e,t)=>de(we(h(e),t)),addIndexIdsListener:w,addSliceIdsListener:(e,t)=>a(t,s,[e]),addSliceRowIdsListener:(e,t,s)=>a(s,n,[e,t]),delListener:e=>(r(e),S),destroy:v,getListenerStats:()=>({})};return te(S)})),We=fe([["avg",[(e,t)=>B(e)/t,(e,t,s)=>e+(t-e)/(s+1),(e,t,s)=>e+(e-t)/(s-1),(e,t,s,n)=>e+(t-s)/n]],["max",[e=>V(...e),(e,t)=>V(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:V(t,e)]],["min",[e=>m(...e),(e,t)=>m(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:m(t,e)]],["sum",[e=>B(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),_e=(e,t,s,n,a,o=!1)=>{if(ce(s))return;const[r,l,i,c]=a;return o||=k(e),he(n,(([s,n])=>{o||(e=k(s)?l?.(e,n,t++):k(n)?i?.(e,s,t--):c?.(e,n,s,t),o||=k(e))})),o?r(de(s),le(s)):e},Be=Fe((e=>{const s=fe(),[n,a,o]=Ne((()=>v)),[r,l,i,c,d,u,h,,g,f,L,w]=Ae(e,Q,(e=>isNaN(e)||k(e)||!0===e||!1===e||e===t?void 0:1*e),n,a),v={setMetricDefinition:(e,t,n,o,r,l,i)=>{const c=J(n)?[n,r,l,i]:we(We,n)??we(We,"sum");return g(e,t,((t,n,o,r,l,i)=>{const d=u(e),g=le(r);i||=k(d),t();let f=_e(d,g,r,n,c,i);E(f)||(f=void 0),f!=d&&(h(e,f),a(s,[e],f,d))}),xe(o,1)),v},delMetricDefinition:e=>(f(e),v),getStore:r,getMetricIds:l,forEachMetric:i,hasMetric:c,getTableId:d,getMetric:u,addMetricIdsListener:L,addMetricListener:(e,t)=>n(t,s,[e]),delListener:e=>(o(e),v),destroy:w,getListenerStats:()=>({})};return te(v)})),He=fe(),$e=fe(),qe=(e,t,s,n,a,o,[r,l]=[],i=[])=>{let c,d,u,h=0,g=0;Se(He,i,(()=>0)),Se($e,i,(()=>[]));const f=async e=>(2!=h&&(h=1,await L.schedule((async()=>{await e(),h=0}))),L),L={load:async(s,n)=>await f((async()=>{try{e.setContent(await t())}catch{e.setContent([s,n])}})),startAutoLoad:async(s={},a={})=>(L.stopAutoLoad(),await L.load(s,a),g=1,u=n((async(s,n)=>{if(n){const t=n();await f((async()=>e.setTransactionChanges(t)))}else await f((async()=>{try{e.setContent(s?.()??await t())}catch(e){o?.(e)}}))})),L),stopAutoLoad:()=>(g&&(a(u),u=void 0,g=0),L),save:async t=>(1!=h&&(h=2,await L.schedule((async()=>{try{await s(e.getContent,t)}catch(e){o?.(e)}h=0}))),L),startAutoSave:async()=>(await L.stopAutoSave().save(),c=e.addDidFinishTransactionListener(((e,t)=>{const[s,n]=t();re(s)&&re(n)||L.save((()=>[s,n]))})),L),stopAutoSave:()=>(M(c,e.delListener),c=void 0,L),schedule:async(...e)=>(q(we($e,i),...e),await(async()=>{if(!we(He,i)){for(Ie(He,i,1);!k(d=K(we($e,i)));)try{await d()}catch(e){o?.(e)}Ie(He,i,0)}})(),L),getStore:()=>e,destroy:()=>L.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return r&&(L[r]=()=>l),te(L)},Ge=Fe((e=>{const s=e.createStore,n=s(),a=s(),o=fe(),{addListener:r,callListeners:l,delListener:u}=a,[h,f,L,y,C,,,p,,b,V,m,E,D]=Ae(e,(()=>!0),Q,r,l),A=(e,t,...s)=>W(s,(s=>Je(Se(Se(o,t,fe),e,De),s))),z=e=>{M(we(o,e),(e=>{ve(e,((e,t)=>he(t,(t=>e.delListener(t))))),ue(e)})),W([a,n],(t=>t.delTable(e)))},O=(e,t,s)=>A(t,e,t.addStartTransactionListener(s.startTransaction),t.addDidFinishTransactionListener((()=>s.finishTransaction()))),P={setQueryDefinition:(s,o,r)=>{p(s,o),z(s);const l=[],i=[[null,[o,null,null,[],fe()]]],c=[],d=[],u=[];r({select:(e,s)=>{const n=J(e)?[F(l)+t,e]:[k(s)?e:s,t=>t(e,s)];return q(l,n),{as:e=>n[0]=e}},join:(e,t,s)=>{const n=k(s)||J(t)?null:t,a=k(n)?t:s,o=[e,[e,n,J(a)?a:e=>e(a),[],fe()]];return q(i,o),{as:e=>o[0]=e}},where:(e,t,s)=>q(c,J(e)?e:k(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,a)=>{const o=[e,[e,J(t)?[t,s,n,a]:we(We,t)??[(e,t)=>t]]];return q(d,o),{as:e=>o[0]=e}},having:(e,t)=>q(u,J(e)?e:s=>s(e)===t)});const h=fe(l);if(ce(h))return P;const g=fe(i);ve(g,((e,[,t])=>M(we(g,t),(({3:t})=>k(e)?0:q(t,e)))));const f=fe(d);let L=n;if(ce(f)&&H(u))L=a;else{O(s,L,a);const e=fe();ve(f,((t,[s,n])=>Je(Se(e,s,De),[t,n])));const t=De();ve(h,(s=>ie(e,s)?0:Je(t,s)));const n=fe(),o=(t,n,o,r)=>M(t,(([l,i,c,d])=>{ve(n,((t,[s])=>{const n=Se(l,t,fe),a=we(n,o),i=r?void 0:s;if(a!==i){const s=De([[a,i]]),r=le(n);Ie(n,o,i),he(we(e,t),(([e,t])=>{const a=_e(d[e],r,n,s,t);d[e]=k(Ee(a))?null:a}))}})),ce(i)||!N(u,(e=>e((e=>d[e]))))?a.delRow(s,c):k(c)?t[2]=a.addRow(s,d):a.setRow(s,c,d)}));A(L,s,L.addRowListener(s,null,((a,r,l,i)=>{const c=[],d=[],u=fe(),h=L.hasRow(s,l);let g=!h;he(t,(e=>{const[t,n,a]=i(s,l,e);q(c,n),q(d,a),g||=t})),ve(e,(e=>{const[t,,n]=i(s,l,e);(g||t)&&Ie(u,e,[n])})),g&&o(me(n,c,void 0,(([,e])=>(ge(e,l),ce(e)))),u,l,1),h&&o(me(n,d,(()=>{const e={};return he(t,(t=>e[t]=L.getCell(s,l,t))),[fe(),De(),void 0,e]}),(([,e])=>{Je(e,l)})),u,l)})))}O(s,e,L);const w=(t,n,a,r)=>{const l=t=>e.getCell(n,a,t);W(r,(n=>{const[a,,o,r,i]=we(g,n),c=o?.(l,t),[d,u]=we(i,t)??[];c!=d&&(k(u)||D(s,u),Ie(i,t,k(c)?null:[c,...E(s,1,e.addRowListener(a,c,(()=>w(t,a,c,r))))]))})),(t=>{const n=(s,n)=>e.getCell(...k(n)?[o,t,s]:s===o?[o,t,n]:[we(g,s)?.[0],we(we(g,s)?.[4],t)?.[0],n]);L.transaction((()=>N(c,(e=>e(n)))?ve(h,((e,a)=>ke(L,s,t,e,a(n,t)))):L.delRow(s,t)))})(t)},{3:v}=we(g,null);return L.transaction((()=>E(s,1,e.addRowListener(o,null,((t,n,a)=>{e.hasRow(o,a)?w(a,o,a,v):(L.delRow(s,a),he(g,(({4:e})=>M(we(e,a),(([,t])=>{D(s,t),Ie(e,a)})))))}))))),P},delQueryDefinition:e=>(z(e),b(e),P),getStore:h,getQueryIds:f,forEachQuery:L,hasQuery:y,getTableId:C,addQueryIdsListener:e=>V((()=>e(P))),delListener:e=>(u(e),P),destroy:m,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=a.getListenerStats();return n}};return oe({[g]:[1,1],[g+T]:[0,1],[v]:[0,1],[I]:[0,1],[S]:[0,5],[w]:[1,2],[T]:[0,2],[R]:[1,3]},(([e,t],s)=>{W(e?["get","has","forEach"]:["get"],(e=>P[e+c+s]=(...t)=>a[e+s](...t))),P[d+c+s+i]=(...e)=>a[d+s+i](...x(e,0,t),((s,...n)=>e[t](P,...n)),!0)})),te(P)})),Ke=Fe((e=>{const s=fe(),n=fe(),a=fe(),o=fe(),[r,l,i]=Ne((()=>y)),[c,d,u,h,g,f,,,L,w,v,I]=Ae(e,(()=>[fe(),fe(),fe(),fe()]),(e=>k(e)?void 0:e+t),r,l),S=(e,t,s)=>M(f(e),(([n,,a])=>{if(!ie(a,t)){const o=De();if(g(e)!=T(e))Je(o,t);else{let e=t;for(;!k(e)&&!ie(o,e);)Je(o,e),e=we(n,e)}if(s)return o;Ie(a,t,o)}return we(a,t)})),R=(e,t)=>M(f(e),(([,,e])=>Ie(e,t))),T=e=>we(s,e),y={setRelationshipDefinition:(e,t,r,i)=>(Ie(s,e,r),L(e,t,((t,s)=>{const r=De(),i=De(),c=De(),[d,u]=f(e);he(s,(([t,s],n)=>{k(t)||(Je(i,t),M(we(u,t),(e=>{ge(e,n),ce(e)&&Ie(u,t)}))),k(s)||(Je(i,s),ie(u,s)||Ie(u,s,De()),Je(we(u,s),n)),Je(r,n),Ie(d,n,s),ve(we(o,e),(t=>{ie(S(e,t),n)&&Je(c,t)}))})),t(),he(r,(t=>l(n,[e,t]))),he(i,(t=>l(a,[e,t]))),he(c,(t=>{R(e,t),l(o,[e,t])}))}),xe(i)),y),delRelationshipDefinition:e=>(Ie(s,e),w(e),y),getStore:c,getRelationshipIds:d,forEachRelationship:t=>u((s=>t(s,(t=>e.forEachRow(g(s),t))))),hasRelationship:h,getLocalTableId:g,getRemoteTableId:T,getRemoteRowId:(e,t)=>we(f(e)?.[0],t),getLocalRowIds:(e,t)=>de(we(f(e)?.[1],t)),getLinkedRowIds:(e,t)=>k(f(e))?[t]:de(S(e,t,!0)),addRelationshipIdsListener:v,addRemoteRowIdListener:(e,t,s)=>r(s,n,[e,t]),addLocalRowIdsListener:(e,t,s)=>r(s,a,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(S(e,t),r(s,o,[e,t])),delListener:e=>(R(...i(e)??[]),y),destroy:I,getListenerStats:()=>({})};return te(y)})),Ue=e=>[e,e],Xe=()=>[fe(),fe()],Ye=e=>[...e],Ze=([e,t])=>e===t,et=e=>JSON.stringify(e,((e,t)=>t instanceof Map?U.fromEntries([...t]):t)),tt=JSON.parse,st=(e,t,s)=>k(e)||!se(e)||re(e)||ee(e)?(s?.(),!1):(oe(e,((s,n)=>{t(s,n)||ae(e,n)})),!re(e)),nt=(e,t,s)=>Ie(e,t,we(e,t)==-s?void 0:s),at=()=>{let e,t,s=!1,n=!1,o=!1,c=!1,h=0;const S=fe(),V=fe(),m=fe(),E=fe(),A=fe(),F=fe(),Q=fe(),N=fe(),P=fe(),B=fe(),H=fe(),$=fe(),G=fe(),K=fe(),U=De(),X=fe(),Y=fe(),Z=fe(),ee=fe(),se=Xe(),de=Xe(),me=Xe(),Ae=Xe(),xe=Xe(),Fe=Xe(),Qe=Xe(),Oe=Xe(),je=Xe(),We=Xe(),_e=Xe(),Be=Xe(),He=Xe(),$e=Xe(),qe=Xe(),Ge=Xe(),Ke=Xe(),ot=Xe(),rt=Xe(),lt=Xe(),it=Xe(),ct=Xe(),dt=fe(),ut=Xe(),[ht,gt,ft,Lt]=Ne((()=>zs)),wt=e=>{if(!st(e,((e,t)=>z([r,l],t))))return!1;const t=e[r];return!(!D(t)&&t!=a||(Ee(e[l])!=t&&ae(e,l),0))},vt=(t,s)=>(!e||ie(H,s)||qt(s))&&st(t,((e,t)=>It(s,t,e)),(()=>qt(s))),It=(e,t,s,n)=>st(n?s:yt(s,e,t),((n,a)=>M(St(e,t,a,n),(e=>(s[a]=e,!0)),(()=>!1))),(()=>qt(e,t))),St=(t,s,n,a)=>e?M(we(we(H,t),n),(e=>Ee(a)!=e[r]?qt(t,s,n,a,e[l]):a),(()=>qt(t,s,n,a))):k(Ee(a))?qt(t,s,n,a):a,Rt=(e,t)=>st(t?e:Ct(e),((t,s)=>M(Tt(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>Gt())),Tt=(e,s)=>t?M(we(G,e),(t=>Ee(s)!=t[r]?Gt(e,s,t[l]):s),(()=>Gt(e,s))):k(Ee(s))?Gt(e,s):s,yt=(e,t,s)=>(M(we($,t),(([n,a])=>{he(n,((t,s)=>{ne(e,s)||(e[s]=t)})),he(a,(n=>{ne(e,n)||qt(t,s,n)}))})),e),Ct=e=>(t&&(he(K,((t,s)=>{ne(e,s)||(e[s]=t)})),he(U,(t=>{ne(e,t)||Gt(t)}))),e),pt=e=>Re(H,e,((e,t,s)=>{const n=fe(),a=De();Re(Se(H,t,fe),s,((e,t,s)=>{Ie(e,t,s),M(s[l],(e=>Ie(n,t,e)),(()=>Je(a,t)))})),Ie($,t,[n,a])}),((e,t)=>{Ie(H,t),Ie($,t)})),bt=e=>Re(G,e,((e,t,s)=>{Ie(G,t,s),M(s[l],(e=>Ie(K,t,e)),(()=>Je(U,t)))}),((e,t)=>{Ie(G,t),Ie(K,t),ge(U,t)})),Vt=e=>re(e)?Es():Cs(e),mt=e=>Re(Z,e,((e,t,s)=>Et(t,s)),((e,t)=>zt(t))),Et=(e,t)=>Re(Se(Z,e,(()=>(jt(e,1),Ie(X,e,ze()),Ie(Y,e,fe()),fe()))),t,((t,s,n)=>kt(e,t,s,n)),((t,s)=>Nt(e,t,s))),kt=(e,t,s,n,a)=>Re(Se(t,s,(()=>(Wt(e,s,1),fe()))),n,((t,n,a)=>Mt(e,s,t,n,a)),((n,o)=>Ot(e,t,s,n,o,a))),Mt=(e,t,s,n,a)=>{ie(s,n)||_t(e,t,n,1);const o=we(s,n);a!==o&&(Bt(e,t,n,o,a),Ie(s,n,a))},Dt=(e,t,s,n,a)=>M(we(t,s),(t=>Mt(e,s,t,n,a)),(()=>kt(e,t,s,yt({[n]:a},e,s)))),Jt=e=>re(e)?Ds():ps(e),At=e=>Re(ee,e,((e,t,s)=>xt(t,s)),((e,t)=>Pt(t))),xt=(e,t)=>{ie(ee,e)||Ht(e,1);const s=we(ee,e);t!==s&&($t(e,s,t),Ie(ee,e,t))},Ft=(e,t)=>{const[s]=we(X,e),n=s(t);return ie(we(Z,e),n)?Ft(e,t):n},Qt=e=>we(Z,e)??Et(e,{}),zt=e=>Et(e,{}),Nt=(e,t,s)=>{const[,n]=we(X,e);n(s),kt(e,t,s,{},!0)},Ot=(e,t,s,n,a,o)=>{const r=we(we($,e)?.[0],a);if(!k(r)&&!o)return Mt(e,s,n,a,r);const l=t=>{Bt(e,s,t,we(n,t)),_t(e,s,t,-1),Ie(n,t)};k(r)?l(a):ve(n,l),ce(n)&&(Wt(e,s,-1),ce(Ie(t,s))&&(jt(e,-1),Ie(Z,e),Ie(X,e),Ie(Y,e)))},Pt=e=>{const t=we(K,e);if(!k(t))return xt(e,t);$t(e,we(ee,e)),Ht(e,-1),Ie(ee,e)},jt=(e,t)=>nt(S,e,t),Wt=(e,t,s)=>nt(Se(E,e,fe),t,s)&&Ie(m,e,Se(m,e,(()=>0))+s),_t=(e,t,s,n)=>{const a=we(Y,e),o=we(a,s)??0;(0==o&&1==n||1==o&&-1==n)&&nt(Se(V,e,fe),s,n),Ie(a,s,o!=-n?o+n:null),nt(Se(Se(A,e,fe),t,fe),s,n)},Bt=(e,t,s,n,a)=>Se(Se(Se(F,e,fe),t,fe),s,(()=>[n,0]))[1]=a,Ht=(e,t)=>nt(Q,e,t),$t=(e,t,s)=>Se(N,e,(()=>[t,0]))[1]=s,qt=(e,t,s,n,a)=>(q(Se(Se(Se(P,e,fe),t,fe),s,(()=>[])),n),a),Gt=(e,t,s)=>(q(Se(B,e,(()=>[])),t),s),Kt=(e,t,s)=>M(we(we(we(F,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...Ue(hs(e,t,s))])),Ut=e=>M(we(N,e),(([e,t])=>[!0,e,t]),(()=>[!1,...Ue(Ls(e))])),Xt=e=>ce(P)||ce(Ge[e])?0:he(e?Ve(P):P,((t,s)=>he(t,((t,n)=>he(t,((t,a)=>gt(Ge[e],[s,n,a],t))))))),Yt=e=>ce(B)||ce(Ke[e])?0:he(e?pe(B):B,((t,s)=>gt(Ke[e],[s],t))),Zt=(e,t,s,n)=>{if(!ce(e))return gt(t,n,(()=>Te(e))),ve(e,((e,t)=>gt(s,[...n??[],e],1==t))),1},es=e=>{const t=ws();t!=o&&gt(se[e],void 0,t);const s=ce(We[e]),n=ce(He[e])&&ce($e[e])&&ce(je[e])&&ce(_e[e])&&ce(Fe[e])&&ce(Qe[e])&&ce(Oe[e])&&s&&ce(me[e])&&ce(Ae[e]),a=ce(qe[e])&&ce(Be[e])&&ce(xe[e])&&ce(de[e]);if(!n||!a){const t=e?[pe(S),be(V),pe(m),be(E),Ve(A),Ve(F)]:[S,V,m,E,A,F];if(!n){Zt(t[0],me[e],Ae[e]),he(t[1],((t,s)=>Zt(t,Fe[e],Qe[e],[s]))),he(t[2],((t,s)=>{0!=t&&gt(Oe[e],[s],is(s))}));const n=De();he(t[3],((t,a)=>{Zt(t,je[e],_e[e],[a])&&!s&&(gt(We[e],[a,null]),Je(n,a))})),s||he(t[5],((t,s)=>{if(!ie(n,s)){const n=De();he(t,(e=>he(e,(([t,s],a)=>s!==t?Je(n,a):ge(e,a))))),he(n,(t=>gt(We[e],[s,t])))}})),he(t[4],((t,s)=>he(t,((t,n)=>Zt(t,He[e],$e[e],[s,n])))))}if(!a){let s;he(t[5],((t,n)=>{let a;he(t,((t,o)=>{let r;he(t,(([t,l],i)=>{l!==t&&(gt(qe[e],[n,o,i],l,t,Kt),s=a=r=1)})),r&&gt(Be[e],[n,o],Kt)})),a&&gt(xe[e],[n],Kt)})),s&&gt(de[e],void 0,Kt)}}},ts=e=>{const t=Ts();t!=c&&gt(ot[e],void 0,t);const s=ce(lt[e])&&ce(it[e]),n=ce(ct[e])&&ce(rt[e]);if(!s||!n){const t=e?[pe(Q),pe(N)]:[Q,N];if(s||Zt(t[0],lt[e],it[e]),!n){let s;he(t[1],(([t,n],a)=>{n!==t&&(gt(ct[e],[a],n,t,Ut),s=1)})),s&&gt(rt[e],void 0,Ut)}}},ss=(e,...t)=>(xs((()=>e(..._(t,b)))),zs),ns=()=>[Te(F,((e,t)=>-1===we(S,t)?null:Te(e,((e,s)=>-1===we(we(E,t),s)?null:Te(e,(([,e])=>e??null),((e,t)=>Ze(t)))),re)),re),Te(N,(([,e])=>e??null),((e,t)=>Ze(t)))],as=()=>({cellsTouched:s,valuesTouched:n,changedCells:Ce(F,Ye,Ze),invalidCells:Ce(P),changedValues:Te(N,Ye,Ze),invalidValues:Te(B),changedTableIds:Te(S),changedRowIds:ye(E),changedCellIds:Ce(A),changedValueIds:Te(Q)}),os=()=>Ce(Z),rs=()=>Le(Z),ls=e=>Le(we(Y,b(e))),is=e=>le(we(Z,b(e))),cs=e=>Le(we(Z,b(e))),ds=(e,t,s,n=0,a)=>{return _(x(j((o=we(Z,b(e)),r=(e,s)=>[k(t)?s:we(e,b(t)),s],_([...o?.entries()??[]],(([e,t])=>r(t,e)))),(([e],[t])=>Pe(e,t)*(s?-1:1))),n,k(a)?a:n+a),(([,e])=>e));var o,r},us=(e,t)=>Le(we(we(Z,b(e)),b(t))),hs=(e,t,s)=>we(we(we(Z,b(e)),b(t)),b(s)),gs=()=>Te(ee),fs=()=>Le(ee),Ls=e=>we(ee,b(e)),ws=()=>!ce(Z),vs=e=>ie(Z,b(e)),Is=(e,t)=>ie(we(Y,b(e)),b(t)),Ss=(e,t)=>ie(we(Z,b(e)),b(t)),Rs=(e,t,s)=>ie(we(we(Z,b(e)),b(t)),b(s)),Ts=()=>!ce(ee),ys=e=>ie(ee,b(e)),Cs=e=>ss((()=>(e=>st(e,vt,qt))(e)?mt(e):0)),ps=e=>ss((()=>Rt(e)?At(e):0)),bs=e=>{try{Vt(tt(e))}catch{}return zs},Vs=t=>ss((()=>{if((e=st(t,(e=>st(e,wt))))&&(pt(t),!ce(Z))){const e=os();Es(),Cs(e)}})),ms=e=>ss((()=>{if(t=(e=>st(e,wt))(e)){const s=gs();As(),Ds(),t=!0,bt(e),ps(s)}})),Es=()=>ss((()=>mt({}))),ks=e=>ss((e=>ie(Z,e)?zt(e):0),e),Ms=(e,t)=>ss(((e,t)=>M(we(Z,e),(s=>ie(s,t)?Nt(e,s,t):0))),e,t),Ds=()=>ss((()=>At({}))),Js=()=>ss((()=>{pt({}),e=!1})),As=()=>ss((()=>{bt({}),t=!1})),xs=(e,t)=>{if(-1!=h){Fs();const s=e();return Qs(t),s}},Fs=()=>(-1!=h&&h++,1==h&&gt(dt,void 0,ns,as),zs),Qs=e=>(h>0&&(h--,0==h&&(s=!ce(F),n=!ce(N),h=1,Xt(1),s&&es(1),Yt(1),n&&ts(1),e?.(ns,as)&&(he(F,((e,t)=>he(e,((e,s)=>he(e,(([e],n)=>ke(zs,t,s,n,e))))))),he(N,(([e],t)=>Me(zs,t,e))),s=n=!1),gt(ut[0],void 0,ns,as),h=-1,Xt(0),s&&es(0),Yt(0),n&&ts(0),gt(ut[1],void 0,ns,as),h=0,s=n=!1,o=ws(),c=Ts(),W([S,V,m,E,A,F,P,Q,N,B],ue))),zs),zs={getContent:()=>[os(),gs()],getTables:os,getTableIds:rs,getTable:e=>ye(we(Z,b(e))),getTableCellIds:ls,getRowCount:is,getRowIds:cs,getSortedRowIds:ds,getRow:(e,t)=>Te(we(we(Z,b(e)),b(t))),getCellIds:us,getCell:hs,getValues:gs,getValueIds:fs,getValue:Ls,hasTables:ws,hasTable:vs,hasTableCell:Is,hasRow:Ss,hasCell:Rs,hasValues:Ts,hasValue:ys,getTablesJson:()=>et(Z),getValuesJson:()=>et(ee),getJson:()=>et([Z,ee]),getTablesSchemaJson:()=>et(H),getValuesSchemaJson:()=>et(G),getSchemaJson:()=>et([H,G]),hasTablesSchema:()=>e,hasValuesSchema:()=>t,setContent:([e,t])=>ss((()=>{(re(e)?Es:Cs)(e),(re(t)?Ds:ps)(t)})),setTables:Cs,setTable:(e,t)=>ss((e=>vt(t,e)?Et(e,t):0),e),setRow:(e,t,s)=>ss(((e,t)=>It(e,t,s)?kt(e,Qt(e),t,s):0),e,t),addRow:(e,t,s=!0)=>xs((()=>{let n;return It(e,n,t)&&(e=b(e),kt(e,Qt(e),n=Ft(e,s?1:0),t)),n})),setPartialRow:(e,t,s)=>ss(((e,t)=>{if(It(e,t,s,1)){const n=Qt(e);oe(s,((s,a)=>Dt(e,n,t,a,s)))}}),e,t),setCell:(e,t,s,n)=>ss(((e,t,s)=>M(St(e,t,s,J(n)?n(hs(e,t,s)):n),(n=>Dt(e,Qt(e),t,s,n)))),e,t,s),setValues:ps,setPartialValues:e=>ss((()=>Rt(e,1)?oe(e,((e,t)=>xt(t,e))):0)),setValue:(e,t)=>ss((e=>M(Tt(e,J(t)?t(Ls(e)):t),(t=>xt(e,t)))),e),setTransactionChanges:e=>ss((()=>{oe(e[0],((e,t)=>k(e)?ks(t):oe(e,((e,s)=>k(e)?Ms(t,s):oe(e,((e,n)=>ke(zs,t,s,n,e))))))),oe(e[1],((e,t)=>Me(zs,t,e)))})),setTablesJson:bs,setValuesJson:e=>{try{Jt(tt(e))}catch{}return zs},setJson:e=>ss((()=>{try{const[t,s]=tt(e);Vt(t),Jt(s)}catch{bs(e)}})),setTablesSchema:Vs,setValuesSchema:ms,setSchema:(e,t)=>ss((()=>{Vs(e),ms(t)})),delTables:Es,delTable:ks,delRow:Ms,delCell:(e,t,s,n)=>ss(((e,t,s)=>M(we(Z,e),(a=>M(we(a,t),(o=>ie(o,s)?Ot(e,a,t,o,s,n):0))))),e,t,s),delValues:Ds,delValue:e=>ss((e=>ie(ee,e)?Pt(e):0),e),delTablesSchema:Js,delValuesSchema:As,delSchema:()=>ss((()=>{Js(),As()})),transaction:xs,startTransaction:Fs,finishTransaction:Qs,forEachTable:e=>he(Z,((t,s)=>e(s,(e=>he(t,((t,s)=>e(s,(e=>ve(t,e))))))))),forEachTableCell:(e,t)=>ve(we(Y,b(e)),t),forEachRow:(e,t)=>he(we(Z,b(e)),((e,s)=>t(s,(t=>ve(e,t))))),forEachCell:(e,t,s)=>ve(we(we(Z,b(e)),b(t)),s),forEachValue:e=>ve(ee,e),addSortedRowIdsListener:(e,t,s,n,a,o,r)=>{let l=ds(e,t,s,n,a);return ht((()=>{const r=ds(e,t,s,n,a);O(r,l)||(l=r,o(zs,e,t,s,n,a,l))}),We[r?1:0],[e,t],[rs])},addStartTransactionListener:e=>ht(e,dt),addWillFinishTransactionListener:e=>ht(e,ut[0]),addDidFinishTransactionListener:e=>ht(e,ut[1]),callListener:e=>(Lt(e),zs),delListener:e=>(ft(e),zs),getListenerStats:()=>({}),createStore:at,addListener:ht,callListeners:gt};return oe({[u+f]:[0,se,[],()=>[ws()]],[f]:[0,de],[L]:[0,me],[u+g]:[1,Ae,[rs],e=>[vs(...e)]],[g]:[1,xe,[rs]],[g+T]:[1,Fe,[rs]],[u+g+R]:[2,Qe,[rs,ls],e=>[Is(...e)]],[v]:[1,Oe,[rs]],[I]:[1,je,[rs]],[u+w]:[2,_e,[rs,cs],e=>[Ss(...e)]],[w]:[2,Be,[rs,cs]],[T]:[2,He,[rs,cs]],[u+R]:[3,$e,[rs,cs,us],e=>[Rs(...e)]],[R]:[3,qe,[rs,cs,us],e=>Ue(hs(...e))],InvalidCell:[3,Ge],[u+C]:[0,ot,[],()=>[Ts()]],[C]:[0,rt],[p]:[0,lt],[u+y]:[1,it,[fs],e=>[ys(...e)]],[y]:[1,ct,[fs],e=>Ue(Ls(e[0]))],InvalidValue:[1,Ke]},(([e,t,s,n],a)=>{zs[d+a+i]=(...a)=>ht(a[e],t[a[e+1]?1:0],e>0?x(a,0,e):void 0,s,n)})),te(zs)};export{Oe as createCheckpoints,qe as createCustomPersister,je as createIndexes,Be as createMetrics,Ge as createQueries,Ke as createRelationships,at as createStore,Pe as defaultSorter};
Binary file