tinybase 7.3.3 → 7.3.4

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 (244) hide show
  1. package/checkpoints/index.js +12 -11
  2. package/checkpoints/with-schemas/index.js +12 -11
  3. package/common/index.js +3 -2
  4. package/common/with-schemas/index.js +3 -2
  5. package/index.js +92 -64
  6. package/indexes/index.js +13 -12
  7. package/indexes/with-schemas/index.js +13 -12
  8. package/mergeable-store/index.js +92 -64
  9. package/mergeable-store/with-schemas/index.js +92 -64
  10. package/metrics/index.js +13 -12
  11. package/metrics/with-schemas/index.js +13 -12
  12. package/min/checkpoints/index.js +1 -1
  13. package/min/checkpoints/index.js.gz +0 -0
  14. package/min/checkpoints/with-schemas/index.js +1 -1
  15. package/min/checkpoints/with-schemas/index.js.gz +0 -0
  16. package/min/common/index.js +1 -1
  17. package/min/common/index.js.gz +0 -0
  18. package/min/common/with-schemas/index.js +1 -1
  19. package/min/common/with-schemas/index.js.gz +0 -0
  20. package/min/index.js +1 -1
  21. package/min/index.js.gz +0 -0
  22. package/min/indexes/index.js +1 -1
  23. package/min/indexes/index.js.gz +0 -0
  24. package/min/indexes/with-schemas/index.js +1 -1
  25. package/min/indexes/with-schemas/index.js.gz +0 -0
  26. package/min/mergeable-store/index.js +1 -1
  27. package/min/mergeable-store/index.js.gz +0 -0
  28. package/min/mergeable-store/with-schemas/index.js +1 -1
  29. package/min/mergeable-store/with-schemas/index.js.gz +0 -0
  30. package/min/metrics/index.js +1 -1
  31. package/min/metrics/index.js.gz +0 -0
  32. package/min/metrics/with-schemas/index.js +1 -1
  33. package/min/metrics/with-schemas/index.js.gz +0 -0
  34. package/min/omni/index.js +1 -1
  35. package/min/omni/index.js.gz +0 -0
  36. package/min/omni/with-schemas/index.js +1 -1
  37. package/min/omni/with-schemas/index.js.gz +0 -0
  38. package/min/persisters/index.js +1 -1
  39. package/min/persisters/index.js.gz +0 -0
  40. package/min/persisters/persister-automerge/index.js +1 -1
  41. package/min/persisters/persister-automerge/index.js.gz +0 -0
  42. package/min/persisters/persister-automerge/with-schemas/index.js +1 -1
  43. package/min/persisters/persister-automerge/with-schemas/index.js.gz +0 -0
  44. package/min/persisters/persister-browser/index.js +1 -1
  45. package/min/persisters/persister-browser/index.js.gz +0 -0
  46. package/min/persisters/persister-browser/with-schemas/index.js +1 -1
  47. package/min/persisters/persister-browser/with-schemas/index.js.gz +0 -0
  48. package/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  49. package/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  50. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  51. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  52. package/min/persisters/persister-durable-object-sql-storage/index.js +1 -1
  53. package/min/persisters/persister-durable-object-sql-storage/index.js.gz +0 -0
  54. package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js +1 -1
  55. package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js.gz +0 -0
  56. package/min/persisters/persister-durable-object-storage/index.js +1 -1
  57. package/min/persisters/persister-durable-object-storage/index.js.gz +0 -0
  58. package/min/persisters/persister-durable-object-storage/with-schemas/index.js +1 -1
  59. package/min/persisters/persister-durable-object-storage/with-schemas/index.js.gz +0 -0
  60. package/min/persisters/persister-electric-sql/index.js +1 -1
  61. package/min/persisters/persister-electric-sql/index.js.gz +0 -0
  62. package/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  63. package/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  64. package/min/persisters/persister-expo-sqlite/index.js +1 -1
  65. package/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  66. package/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  67. package/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  68. package/min/persisters/persister-file/index.js +1 -1
  69. package/min/persisters/persister-file/index.js.gz +0 -0
  70. package/min/persisters/persister-file/with-schemas/index.js +1 -1
  71. package/min/persisters/persister-file/with-schemas/index.js.gz +0 -0
  72. package/min/persisters/persister-indexed-db/index.js +1 -1
  73. package/min/persisters/persister-indexed-db/index.js.gz +0 -0
  74. package/min/persisters/persister-indexed-db/with-schemas/index.js +1 -1
  75. package/min/persisters/persister-indexed-db/with-schemas/index.js.gz +0 -0
  76. package/min/persisters/persister-libsql/index.js +1 -1
  77. package/min/persisters/persister-libsql/index.js.gz +0 -0
  78. package/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  79. package/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  80. package/min/persisters/persister-partykit-client/index.js +1 -1
  81. package/min/persisters/persister-partykit-client/index.js.gz +0 -0
  82. package/min/persisters/persister-partykit-client/with-schemas/index.js +1 -1
  83. package/min/persisters/persister-partykit-client/with-schemas/index.js.gz +0 -0
  84. package/min/persisters/persister-pglite/index.js +1 -1
  85. package/min/persisters/persister-pglite/index.js.gz +0 -0
  86. package/min/persisters/persister-pglite/with-schemas/index.js +1 -1
  87. package/min/persisters/persister-pglite/with-schemas/index.js.gz +0 -0
  88. package/min/persisters/persister-postgres/index.js +1 -1
  89. package/min/persisters/persister-postgres/index.js.gz +0 -0
  90. package/min/persisters/persister-postgres/with-schemas/index.js +1 -1
  91. package/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
  92. package/min/persisters/persister-powersync/index.js +1 -1
  93. package/min/persisters/persister-powersync/index.js.gz +0 -0
  94. package/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  95. package/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  96. package/min/persisters/persister-react-native-mmkv/index.js +1 -1
  97. package/min/persisters/persister-react-native-mmkv/index.js.gz +0 -0
  98. package/min/persisters/persister-react-native-mmkv/with-schemas/index.js +1 -1
  99. package/min/persisters/persister-react-native-mmkv/with-schemas/index.js.gz +0 -0
  100. package/min/persisters/persister-react-native-sqlite/index.js +1 -1
  101. package/min/persisters/persister-react-native-sqlite/index.js.gz +0 -0
  102. package/min/persisters/persister-react-native-sqlite/with-schemas/index.js +1 -1
  103. package/min/persisters/persister-react-native-sqlite/with-schemas/index.js.gz +0 -0
  104. package/min/persisters/persister-remote/index.js +1 -1
  105. package/min/persisters/persister-remote/index.js.gz +0 -0
  106. package/min/persisters/persister-remote/with-schemas/index.js +1 -1
  107. package/min/persisters/persister-remote/with-schemas/index.js.gz +0 -0
  108. package/min/persisters/persister-sqlite-bun/index.js +1 -1
  109. package/min/persisters/persister-sqlite-bun/index.js.gz +0 -0
  110. package/min/persisters/persister-sqlite-bun/with-schemas/index.js +1 -1
  111. package/min/persisters/persister-sqlite-bun/with-schemas/index.js.gz +0 -0
  112. package/min/persisters/persister-sqlite-wasm/index.js +1 -1
  113. package/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  114. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  115. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  116. package/min/persisters/persister-sqlite3/index.js +1 -1
  117. package/min/persisters/persister-sqlite3/index.js.gz +0 -0
  118. package/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  119. package/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  120. package/min/persisters/persister-yjs/index.js +1 -1
  121. package/min/persisters/persister-yjs/index.js.gz +0 -0
  122. package/min/persisters/persister-yjs/with-schemas/index.js +1 -1
  123. package/min/persisters/persister-yjs/with-schemas/index.js.gz +0 -0
  124. package/min/persisters/with-schemas/index.js +1 -1
  125. package/min/persisters/with-schemas/index.js.gz +0 -0
  126. package/min/queries/index.js +1 -1
  127. package/min/queries/index.js.gz +0 -0
  128. package/min/queries/with-schemas/index.js +1 -1
  129. package/min/queries/with-schemas/index.js.gz +0 -0
  130. package/min/relationships/index.js +1 -1
  131. package/min/relationships/index.js.gz +0 -0
  132. package/min/relationships/with-schemas/index.js +1 -1
  133. package/min/relationships/with-schemas/index.js.gz +0 -0
  134. package/min/store/index.js +1 -1
  135. package/min/store/index.js.gz +0 -0
  136. package/min/store/with-schemas/index.js +1 -1
  137. package/min/store/with-schemas/index.js.gz +0 -0
  138. package/min/synchronizers/index.js +1 -1
  139. package/min/synchronizers/index.js.gz +0 -0
  140. package/min/synchronizers/synchronizer-broadcast-channel/index.js +1 -1
  141. package/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
  142. package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -1
  143. package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
  144. package/min/synchronizers/synchronizer-local/index.js +1 -1
  145. package/min/synchronizers/synchronizer-local/index.js.gz +0 -0
  146. package/min/synchronizers/synchronizer-local/with-schemas/index.js +1 -1
  147. package/min/synchronizers/synchronizer-local/with-schemas/index.js.gz +0 -0
  148. package/min/synchronizers/synchronizer-ws-client/index.js +1 -1
  149. package/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
  150. package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
  151. package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
  152. package/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  153. package/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  154. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  155. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  156. package/min/synchronizers/synchronizer-ws-server-durable-object/index.js +1 -1
  157. package/min/synchronizers/synchronizer-ws-server-durable-object/index.js.gz +0 -0
  158. package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +1 -1
  159. package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js.gz +0 -0
  160. package/min/synchronizers/synchronizer-ws-server-simple/index.js +1 -1
  161. package/min/synchronizers/synchronizer-ws-server-simple/index.js.gz +0 -0
  162. package/min/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js +1 -1
  163. package/min/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js.gz +0 -0
  164. package/min/synchronizers/with-schemas/index.js +1 -1
  165. package/min/synchronizers/with-schemas/index.js.gz +0 -0
  166. package/min/ui-react-inspector/index.js +1 -1
  167. package/min/ui-react-inspector/index.js.gz +0 -0
  168. package/min/ui-react-inspector/with-schemas/index.js +1 -1
  169. package/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
  170. package/min/with-schemas/index.js +1 -1
  171. package/min/with-schemas/index.js.gz +0 -0
  172. package/omni/index.js +99 -64
  173. package/omni/with-schemas/index.js +99 -64
  174. package/package.json +3 -3
  175. package/persisters/index.js +19 -11
  176. package/persisters/persister-automerge/index.js +17 -9
  177. package/persisters/persister-automerge/with-schemas/index.js +17 -9
  178. package/persisters/persister-browser/index.js +17 -9
  179. package/persisters/persister-browser/with-schemas/index.js +17 -9
  180. package/persisters/persister-cr-sqlite-wasm/index.js +19 -11
  181. package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +19 -11
  182. package/persisters/persister-durable-object-sql-storage/index.js +19 -11
  183. package/persisters/persister-durable-object-sql-storage/with-schemas/index.js +19 -11
  184. package/persisters/persister-durable-object-storage/index.js +19 -11
  185. package/persisters/persister-durable-object-storage/with-schemas/index.js +19 -11
  186. package/persisters/persister-electric-sql/index.js +19 -11
  187. package/persisters/persister-electric-sql/with-schemas/index.js +19 -11
  188. package/persisters/persister-expo-sqlite/index.js +19 -11
  189. package/persisters/persister-expo-sqlite/with-schemas/index.js +19 -11
  190. package/persisters/persister-file/index.js +17 -9
  191. package/persisters/persister-file/with-schemas/index.js +17 -9
  192. package/persisters/persister-indexed-db/index.js +17 -9
  193. package/persisters/persister-indexed-db/with-schemas/index.js +17 -9
  194. package/persisters/persister-libsql/index.js +19 -11
  195. package/persisters/persister-libsql/with-schemas/index.js +19 -11
  196. package/persisters/persister-partykit-client/index.js +17 -9
  197. package/persisters/persister-partykit-client/with-schemas/index.js +17 -9
  198. package/persisters/persister-partykit-server/index.js +2 -2
  199. package/persisters/persister-partykit-server/with-schemas/index.js +2 -2
  200. package/persisters/persister-pglite/index.js +19 -11
  201. package/persisters/persister-pglite/with-schemas/index.js +19 -11
  202. package/persisters/persister-postgres/index.js +19 -11
  203. package/persisters/persister-postgres/with-schemas/index.js +19 -11
  204. package/persisters/persister-powersync/index.js +19 -11
  205. package/persisters/persister-powersync/with-schemas/index.js +19 -11
  206. package/persisters/persister-react-native-mmkv/index.js +17 -9
  207. package/persisters/persister-react-native-mmkv/with-schemas/index.js +17 -9
  208. package/persisters/persister-react-native-sqlite/index.js +19 -11
  209. package/persisters/persister-react-native-sqlite/with-schemas/index.js +19 -11
  210. package/persisters/persister-remote/index.js +17 -9
  211. package/persisters/persister-remote/with-schemas/index.js +17 -9
  212. package/persisters/persister-sqlite-bun/index.js +19 -11
  213. package/persisters/persister-sqlite-bun/with-schemas/index.js +19 -11
  214. package/persisters/persister-sqlite-wasm/index.js +19 -11
  215. package/persisters/persister-sqlite-wasm/with-schemas/index.js +19 -11
  216. package/persisters/persister-sqlite3/index.js +19 -11
  217. package/persisters/persister-sqlite3/with-schemas/index.js +19 -11
  218. package/persisters/persister-yjs/index.js +19 -11
  219. package/persisters/persister-yjs/with-schemas/index.js +19 -11
  220. package/persisters/with-schemas/index.js +19 -11
  221. package/queries/index.js +15 -14
  222. package/queries/with-schemas/index.js +15 -14
  223. package/readme.md +2 -2
  224. package/relationships/index.js +13 -12
  225. package/relationships/with-schemas/index.js +13 -12
  226. package/store/index.js +74 -60
  227. package/store/with-schemas/index.js +74 -60
  228. package/synchronizers/index.js +17 -9
  229. package/synchronizers/synchronizer-broadcast-channel/index.js +17 -9
  230. package/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +17 -9
  231. package/synchronizers/synchronizer-local/index.js +19 -11
  232. package/synchronizers/synchronizer-local/with-schemas/index.js +19 -11
  233. package/synchronizers/synchronizer-ws-client/index.js +17 -9
  234. package/synchronizers/synchronizer-ws-client/with-schemas/index.js +17 -9
  235. package/synchronizers/synchronizer-ws-server/index.js +20 -12
  236. package/synchronizers/synchronizer-ws-server/with-schemas/index.js +20 -12
  237. package/synchronizers/synchronizer-ws-server-durable-object/index.js +17 -9
  238. package/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +17 -9
  239. package/synchronizers/synchronizer-ws-server-simple/index.js +11 -10
  240. package/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js +11 -10
  241. package/synchronizers/with-schemas/index.js +17 -9
  242. package/ui-react-inspector/index.js +81 -60
  243. package/ui-react-inspector/with-schemas/index.js +81 -60
  244. package/with-schemas/index.js +92 -64
@@ -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="allowNull",d="Listener",c="Result",u="add",g="Has",h="Ids",f="Table",I=f+"s",b=f+h,w="Row",L=w+"Count",v=w+h,C="Sorted"+w+h,R="Cell",T=R+h,p="Value",S=p+"s",V=p+h,m=e=>t+e,y=(e,t)=>e.startsWith(t),M=(e,t)=>e.endsWith(t),E=(e,s=t,n)=>e.split(s,n),k=e=>(t,s,n)=>e(t)?n?.():s(t),D=globalThis,H=Math,J=H.max,x=H.min,P=H.floor,F=isFinite,Q=e=>null==e,N=e=>void 0===e,z=e=>null===e,O=k(Q),W=k(N),A=e=>e==s||e==n,j=t=>e(t)==s,_=t=>e(t)==o,B=e=>Array.isArray(e),U=(e,t,s)=>e.slice(t,s),q=e=>e.length,G=()=>{},K=()=>{},X=async(e,t,s)=>{try{return await e()}catch(e){t?.(e)}},Y=(e,t)=>e.includes(t),Z=(e,t)=>e.every(t),$=(e,t)=>q(e)===q(t)&&Z(e,(e,s)=>t[s]===e),ee=(e,t)=>B(e)&&B(t)?$(e,t):e===t,te=(e,t)=>Z(e,(s,n)=>0==n||t(e[n-1],s)<=0),se=(e,t)=>e.sort(t),ne=(e,t)=>e.forEach(t),ae=(e,t)=>e.map(t),oe=e=>le(e,(e,t)=>e+t,0),re=e=>0==q(e),le=(e,t,s)=>e.reduce(t,s),ie=(e,...t)=>e.push(...t),de=e=>e.pop(),ce=e=>e.shift(),ue=t=>{if(z(t))return"null";const s=e(t);return A(s)||s==a&&F(t)?s:void 0},ge=e=>N(e)||!N(ue(e)),he=(e,t,s,n,a)=>N(a)?e.delCell(t,s,n,!0):e.setCell(t,s,n,a),fe=(e,t,s)=>N(s)?e.delValue(t):e.setValue(t,s),Ie=e=>t=>le(Te(t),(t,s)=>t+e(s),0),be=e=>e?.size??0,we=Ie(be),Le=Ie(we),ve=Ie(Le),Ce=(e,t)=>e?.has(t)??!1,Re=e=>N(e)||0==be(e),Te=e=>[...e?.values()??[]],pe=e=>e.clear(),Se=(e,t)=>e?.forEach(t),Ve=(e,t)=>e?.delete(t),me=Object,ye=e=>me.getPrototypeOf(e),Me=me.isFrozen,Ee=me.entries,ke=e=>!Q(e)&&O(ye(e),e=>e==me.prototype||Q(ye(e)),()=>!0),De=me.keys,He=me.freeze,Je=(e=[])=>me.fromEntries(e),xe=(e,t)=>W(e,e=>e[t]),Pe=(e,t)=>t in e,Fe=(e,t)=>(delete e[t],e),Qe=(e,t)=>ne(Ee(e),([e,s])=>t(s,e)),Ne=(e,t)=>Je(((e,t)=>ae(Ee(e),([e,s])=>t(s,e)))(e,(e,s)=>[s,t(e,s)])),ze=e=>q(De(e)),Oe=e=>ke(e)&&0==ze(e),We=(e,t,s=(e,t)=>e===t)=>{const n=Ee(e);return q(n)===ze(t)&&Z(n,([e,n])=>ke(n)?!!ke(t[e])&&We(t[e],n):s(n,t[e]))},Ae=(e,t,s)=>(Pe(e,t)||(e[t]=s()),e[t]),je=(e,t,s,n=0)=>Q(e)||!ke(e)||!n&&Oe(e)||Me(e)?(s?.(),!1):(Qe(e,(s,n)=>{t(s,n)||Fe(e,n)}),!!n||!Oe(e)),_e=e=>new Map(e),Be=e=>[...e?.keys()??[]],Ue=(e,t)=>e?.get(t),qe=(e,t)=>Se(e,(e,s)=>t(s,e)),Ge=(e,t,s)=>N(s)?(Ve(e,t),e):e?.set(t,s),Ke=(e,t,s,n)=>(Ce(e,t)?n?.(Ue(e,t)):Ge(e,t,s()),Ue(e,t)),Xe=(e,t,s,n=Ge)=>(Ne(t,(t,n)=>s(e,n,t)),qe(e,s=>Pe(t,s)?0:n(e,s)),e),Ye=(e,t,s,n)=>{const a={};return Se(e,(e,o)=>{if(!s?.(e,o)){const s=t?t(e,o):e;n?.(s)||(a[o]=s)}}),a},Ze=(e,t,s)=>Ye(e,e=>Ye(e,t,s),Re,Oe),$e=(e,t,s)=>Ye(e,e=>Ze(e,t,s),Re,Oe),et=(e,t)=>{const s=_e();return Se(e,(e,n)=>s.set(n,t?.(e)??e)),s},tt=e=>et(e,et),st=e=>et(e,tt),nt=(e,t,s,n,a=0)=>W((s?Ke:Ue)(e,t[a],a>q(t)-2?s:_e),o=>{if(a>q(t)-2)return n?.(o)&&Ge(e,t[a]),o;const r=nt(o,t,s,n,a+1);return Re(o)&&Ge(e,t[a]),r}),at=e=>new Set(B(e)||N(e)?e:[e]),ot=(e,t)=>e?.add(t),rt=(e,t,s,n,a)=>{const o=e.hasRow,r=_e(),l=_e(),i=_e(),d=_e(),c=_e(),u=_e(),g=(t,s,...n)=>{const a=Ke(u,t,at);return ne(n,t=>ot(a,t)&&s&&e.callListener(t)),n},h=(t,...s)=>W(Ue(u,t),n=>{ne(re(s)?Te(n):s,t=>{e.delListener(t),Ve(n,t)}),Re(n)&&Ge(u,t)}),f=(e,s)=>{Ge(r,e,s),Ce(l,e)||(Ge(l,e,t()),Ge(d,e,_e()),Ge(c,e,_e()),a(i))},I=e=>{Ge(r,e),Ge(l,e),Ge(d,e),Ge(c,e),h(e),a(i)};return[()=>e,()=>Be(r),e=>qe(l,e),e=>Ce(l,e),e=>Ue(r,e),e=>Ue(l,e),(e,t)=>Ge(l,e,t),f,(t,n,a,r,l)=>{f(t,n);const i=_e(),u=_e(),I=Ue(d,t),b=Ue(c,t),w=t=>{const a=s=>e.getCell(n,t,s),d=Ue(I,t),c=o(n,t)?s(r(a,t)):void 0;if(d===c||B(d)&&B(c)&&$(d,c)||Ge(i,t,[d,c]),!N(l)){const e=Ue(b,t),s=o(n,t)?l(a,t):void 0;e!=s&&Ge(u,t,s)}},L=e=>{a(()=>{Se(i,([,e],t)=>Ge(I,t,e)),Se(u,(e,t)=>Ge(b,t,e))},i,u,I,b,e),pe(i),pe(u)};qe(I,w),e.hasTable(n)&&ne(e.getRowIds(n),e=>{Ce(I,e)||w(e)}),L(!0),h(t),g(t,0,e.addRowListener(n,null,(e,t,s)=>w(s)),e.addTableListener(n,()=>L()))},I,e=>n(e,i),()=>qe(u,I),g,h]},lt=(e,s)=>j(e)?t=>t(e):e??(()=>s??t),it=(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}},dt=/^\d+$/,ct=()=>{const e=[];let s=0;return[n=>(n?ce(e):null)??t+s++,t=>{dt.test(t)&&q(e)<1e3&&ie(e,t)}]},ut=e=>{let s;const[n,a]=ct(),o=_e();return[(a,r,l,i=[],d=()=>[])=>{s??=e();const c=n(1);return Ge(o,c,[a,r,l,i,d]),ot(nt(r,l??[t],at),c),c},(e,n,...a)=>ne(((e,s=[t])=>{const n=[],a=(e,t)=>t==q(s)?ie(n,e):z(s[t])?Se(e,e=>a(e,t+1)):ne([s[t],null],s=>a(Ue(e,s),t+1));return a(e,0),n})(e,n),e=>Se(e,e=>Ue(o,e)[0](s,...n??[],...a))),e=>W(Ue(o,e),([,s,n])=>(nt(s,n??[t],void 0,t=>(Ve(t,e),Re(t)?1:0)),Ge(o,e),a(e),n)),e=>W(Ue(o,e),([e,,t=[],n,a])=>{const o=(...r)=>{const l=q(r);l==q(t)?e(s,...r,...a(r)):z(t[l])?ne(n[l]?.(...r)??[],e=>o(...r,e)):o(...r,t[l])};o()})]},gt=it(e=>{let s,n,a,o=100,r=_e(),l=_e(),i=1;const d=_e(),c=_e(),[u,g,h]=ut(()=>J),f=_e(),I=_e(),b=[],w=[],L=(t,s)=>{i=0,e.transaction(()=>{const[n,a]=Ue(f,s);Se(n,(s,n)=>Se(s,(s,a)=>Se(s,(s,o)=>he(e,n,a,o,s[t])))),Se(a,(s,n)=>fe(e,n,s[t]))}),i=1},v=e=>{Ge(f,e),Ge(I,e),g(c,[e])},C=(e,t)=>ne(((e,t)=>e.splice(0,t))(e,t??q(e)),v),R=()=>C(b,q(b)-o),T=()=>W(s,()=>{ie(b,s),R(),C(w),s=void 0,a=1}),p=()=>{s=de(b),a=1};let S,V;const m=(e=t)=>(N(s)&&(s=t+n++,Ge(f,s,[r,l]),D(s,e),r=_e(),l=_e(),a=1),s),y=()=>{re(b)||(((e,...t)=>{e.unshift(...t)})(w,m()),L(0,s),s=de(b),a=1)},M=()=>{re(w)||(ie(b,s),s=ce(w),L(1,s),a=1)},E=()=>{a&&(g(d),a=0)},k=e=>{const t=m(e);return E(),t},D=(e,t)=>(H(e)&&Ue(I,e)!==t&&(Ge(I,e,t),g(c,[e])),J),H=e=>Ce(f,e),J={setSize:e=>(o=e,R(),J),addCheckpoint:k,setCheckpoint:D,getStore:()=>e,getCheckpointIds:()=>[[...b],s,[...w]],forEachCheckpoint:e=>qe(I,e),hasCheckpoint:H,getCheckpoint:e=>Ue(I,e),goBackward:()=>(y(),E(),J),goForward:()=>(M(),E(),J),goTo:e=>{const t=Y(b,e)?y:Y(w,e)?M:void 0;for(;!N(t)&&e!=s;)t();return E(),J},addCheckpointIdsListener:e=>u(e,d),addCheckpointListener:(e,t)=>u(t,c,[e]),delListener:e=>(h(e),J),clear:()=>(C(b),C(w),N(s)||v(s),s=void 0,n=0,k(),J),clearForward:()=>(re(w)||(C(w),g(d)),J),destroy:()=>{e.delListener(S),e.delListener(V)},getListenerStats:()=>({checkpointIds:we(d),checkpoint:we(c)}),_registerListeners:()=>{S=e.addCellListener(null,null,null,(e,t,s,n,a,o)=>{if(i){T();const e=Ke(r,t,_e),l=Ke(e,s,_e),i=Ke(l,n,()=>[o,void 0]);i[1]=a,i[0]===a&&Re(Ge(l,n))&&Re(Ge(e,s))&&Re(Ge(r,t))&&p(),E()}}),V=e.addValueListener(null,(e,t,s,n)=>{if(i){T();const e=Ke(l,t,()=>[n,void 0]);e[1]=s,e[0]===s&&Re(Ge(l,t))&&p(),E()}})}};return He(J.clear())},e=>e._registerListeners()),ht=E("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),ft=_e(ae(ht,(e,t)=>[e,t])),It=e=>ht[63&e],bt=(e,t)=>Ue(ft,e[t])??0,wt=D.crypto?e=>D.crypto.getRandomValues(e):e=>ae(e,()=>P(256*H.random())),Lt=(e=16)=>le(wt(new Uint8Array(e)),(e,t)=>e+It(t),t),vt=JSON.stringify,Ct=JSON.parse,Rt=e=>vt(e,(e,t)=>t instanceof Map?me.fromEntries([...t]):t),Tt=new D.TextEncoder,pt=e=>{let t=2166136261;return ne(Tt.encode(e),e=>{t^=e,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0},St=(e,t)=>(e^t)>>>0,Vt=e=>le(Ee(e),(e,[t,s])=>St(e,mt(t,s)^mt(t,0)),0),mt=(e,t)=>pt(e+":"+t),yt=(e,t)=>pt(Rt(e??null)+":"+t),Mt=yt,Et=mt,kt=Vt,Dt=mt,Ht=e=>le(Ee(e),(e,[t,s])=>St(e,mt(t,s)),0),Jt=mt,xt=Ht,Pt=2**36,Ft=2**30,Qt=2**24,Nt=2**18,zt=4096,Ot=e=>{const t=pt(e);return It(t/Qt)+It(t/Nt)+It(t/zt)+It(t/64)+It(t)},Wt=(e,t=Date.now)=>{let s=0,n=-1;const a=W(e,Ot,()=>Lt(5)),o=e=>{const a=s,[o,r]=N(e)||""==e?[0,0]:l(e);s=J(a,o,t()),n=s==a?s==o?J(n,r):n:s==o?r:-1},r=(e,t,s)=>It(e/Pt)+It(e/Ft)+It(e/Qt)+It(e/Nt)+It(e/zt)+It(e/64)+It(e)+It(t/Nt)+It(t/zt)+It(t/64)+It(t)+(N(s)?a:Ot(s)),l=e=>[bt(e,0)*Pt+bt(e,1)*Ft+bt(e,2)*Qt+bt(e,3)*Nt+bt(e,4)*zt+64*bt(e,5)+bt(e,6),bt(e,7)*Nt+bt(e,8)*zt+64*bt(e,9)+bt(e,10),e.slice(11)];return[()=>(o(),r(s,++n)),o,r,l,()=>s,()=>n,()=>a]},At=(e,t)=>(e??0)<(t??0)?-1:1,jt=it(e=>{const s=_e(),n=_e(),[a,o,r]=ut(()=>v),[l,i,d,c,u,g,h,,f,I,b,w]=rt(e,_e,e=>N(e)?t:B(e)?ae(e,m):m(e),a,o),L=(t,s,n)=>{const a=u(t);Se(n,(t,n)=>s(n,s=>Se(t,t=>s(t,s=>e.forEachCell(a,t,s)))))},v={setIndexDefinition:(e,t,a,r,l,i=At)=>{const d=N(l)?void 0:([e],[t])=>l(e,t);return f(e,t,(t,a,l,c,u,f)=>{let I=0;const b=at(),w=at(),L=g(e);if(Se(a,([e,t],s)=>{const n=at(e),a=at(t);Se(n,e=>Ve(a,e)?Ve(n,e):0),Se(n,e=>{ot(b,e),W(Ue(L,e),t=>{Ve(t,s),Re(t)&&(Ge(L,e),I=1)})}),Se(a,e=>{ot(b,e),Ce(L,e)||(Ge(L,e,at()),I=1),ot(Ue(L,e),s),N(r)||ot(w,e)})}),t(),Re(u)||(f?qe(L,e=>ot(w,e)):qe(l,e=>W(Ue(c,e),e=>ne(B(e)?e:[e],e=>ot(w,e)))),Se(w,e=>{const t=(t,s)=>i(Ue(u,t),Ue(u,s),e),s=[...Ue(L,e)];te(s,t)||(Ge(L,e,at(se(s,t))),ot(b,e))})),(I||f)&&!N(d)){const t=[...L];te(t,d)||(h(e,_e(se(t,d))),I=1)}I&&o(s,[e]),Se(b,t=>o(n,[e,t]))},lt(a),W(r,lt)),v},delIndexDefinition:e=>(I(e),v),getStore:l,getIndexIds:i,forEachIndex:e=>d((t,s)=>e(t,e=>L(t,e,s))),forEachSlice:(e,t)=>L(e,t,g(e)),hasIndex:c,hasSlice:(e,t)=>Ce(g(e),t),getTableId:u,getSliceIds:e=>Be(g(e)),getSliceRowIds:(e,t)=>Te(Ue(g(e),t)),addIndexIdsListener:b,addSliceIdsListener:(e,t)=>a(t,s,[e]),addSliceRowIdsListener:(e,t,s)=>a(s,n,[e,t]),delListener:e=>(r(e),v),destroy:w,getListenerStats:()=>({sliceIds:we(s),sliceRowIds:Le(n)})};return He(v)}),_t=([e,t])=>Ut(e,t),Bt=([e,t,s])=>[e,t,s],Ut=(e,t)=>t?[e,t]:[e],qt=(e,t,s)=>[e,t,s],Gt=e=>e[2],Kt=(e,t)=>t>e?(e?pt(e):0)^pt(t):0,Xt=(e,t)=>((e??"")>(t??"")?e:t)??"",Yt=(e,t,s)=>{t>e[1]&&(e[1]=t),e[2]=s>>>0},Zt=(e=t)=>Ut(Je(),e),$t=(e=t)=>[_e(),e,0],es=([e,t,s],n=Bt)=>[Ye(e,n),t,s],ts=([e,t],s=_t)=>Ut(Ye(e,s),t),ss=(t,s)=>B(t)&&3==q(t)&&j(t[1])&&e(t[2])==a&&F(t[2])&&s(t[0]),ns=e=>[e,e],as=(e,t=we)=>t(e[0])+t(e[1]),os=()=>[_e(),_e()],rs=e=>[...e],ls=([e,t])=>e===t,is=(e,t,s)=>Ge(e,t,Ue(e,t)==-s?void 0:s),ds=()=>{let e,t,s=!1,n=!1,o=0,c=[];const h=_e(),C=_e(),y=_e(),M=_e(),E=_e(),k=_e(),D=_e(),H=_e(),J=_e(),x=_e(),P=_e(),F=_e(),Q=_e(),O=_e(),j=at(),q=_e(),G=_e(),K=_e(),Z=_e(),ee=os(),te=os(),oe=os(),re=os(),le=os(),de=os(),ce=os(),ge=os(),Ie=os(),Te=os(),me=os(),ye=os(),Me=os(),Ee=os(),De=os(),Je=os(),xe=os(),Qe=os(),ze=os(),We=os(),Ae=os(),nt=os(),rt=_e(),lt=os(),[it,dt,gt,ht]=ut(()=>_s),ft=e=>{if(!je(e,(e,t)=>Y([r,l,i],t)))return!1;const t=e[r];if(!A(t)&&t!=a)return!1;const s=e[l];return!(z(s)&&!e[i]||(z(s)||ue(s)==t||Fe(e,l),0))},It=B,bt=(t,s)=>(!e||Ce(P,s)||Gt(s))&&je(t,(e,t)=>wt(s,t,e),()=>Gt(s)),wt=(e,t,s,n)=>je(n?s:pt(s,e,t),(n,a)=>W(Lt(e,t,a,n),e=>(s[a]=e,!0),()=>!1),()=>Gt(e,t)),Lt=(t,s,n,a)=>e?W(Ue(Ue(P,t),n),e=>z(a)?e[i]?a:Gt(t,s,n,a,e[l]):ue(a)==e[r]?a:Gt(t,s,n,a,e[l]),()=>Gt(t,s,n,a)):N(ue(a))?Gt(t,s,n,a):a,vt=(e,t)=>je(t?e:St(e),(t,s)=>W(Tt(s,t),t=>(e[s]=t,!0),()=>!1),()=>Kt()),Tt=(e,s)=>t?W(Ue(Q,e),t=>z(s)?t[i]?s:Kt(e,s,t[l]):ue(s)==t[r]?s:Kt(e,s,t[l]),()=>Kt(e,s)):N(ue(s))?Kt(e,s):s,pt=(e,t,s)=>(W(Ue(F,t),([n,a])=>{Se(n,(t,s)=>{Pe(e,s)||(e[s]=t)}),Se(a,n=>{Pe(e,n)||Gt(t,s,n)})}),e),St=e=>(t&&(Se(O,(t,s)=>{Pe(e,s)||(e[s]=t)}),Se(j,t=>{Pe(e,t)||Kt(t)})),e),Vt=e=>Xe(P,e,(e,t,s)=>{const n=_e(),a=at();Xe(Ke(P,t,_e),s,(e,t,s)=>{Ge(e,t,s),W(s[l],e=>Ge(n,t,e),()=>ot(a,t))}),Ge(F,t,[n,a])},(e,t)=>{Ge(P,t),Ge(F,t)}),mt=e=>Xe(Q,e,(e,t,s)=>{Ge(Q,t,s),W(s[l],e=>Ge(O,t,e),()=>ot(j,t))},(e,t)=>{Ge(Q,t),Ge(O,t),Ve(j,t)}),yt=e=>Oe(e)?Ps():ks(e),Mt=e=>Xe(K,e,(e,t,s)=>Et(t,s),(e,t)=>Qt(t)),Et=(e,t)=>Xe(Ke(K,e,()=>(Wt(e,1),Ge(q,e,ct()),Ge(G,e,_e()),_e())),t,(t,s,n)=>kt(e,t,s,n),(t,s)=>Nt(e,t,s)),kt=(e,t,s,n,a)=>Xe(Ke(t,s,()=>(jt(e,s,1),_e())),n,(t,n,a)=>Dt(e,s,t,n,a),(n,o)=>zt(e,t,s,n,o,a)),Dt=(e,t,s,n,a)=>{Ce(s,n)||_t(e,t,n,1);const o=Ue(s,n);a!==o&&(Bt(e,t,n,o,a),Ge(s,n,a))},Ht=(e,t,s,n,a)=>W(Ue(t,s),t=>Dt(e,s,t,n,a),()=>kt(e,t,s,pt({[n]:a},e,s))),Jt=e=>Oe(e)?Ns():Ds(e),xt=e=>Xe(Z,e,(e,t,s)=>Pt(t,s),(e,t)=>Ot(t)),Pt=(e,t)=>{Ce(Z,e)||Ut(e,1);const s=Ue(Z,e);t!==s&&(qt(e,s,t),Ge(Z,e,t))},Ft=e=>Ue(K,e)??Et(e,{}),Qt=e=>Et(e,{}),Nt=(e,t,s)=>{const[,n]=Ue(q,e);n(s),kt(e,t,s,{},!0)},zt=(e,t,s,n,a,o)=>{const r=Ue(Ue(F,e)?.[0],a);if(!N(r)&&!o)return Dt(e,s,n,a,r);const l=t=>{Bt(e,s,t,Ue(n,t)),_t(e,s,t,-1),Ge(n,t)};N(r)?l(a):qe(n,l),Re(n)&&(jt(e,s,-1),Re(Ge(t,s))&&(Wt(e,-1),Ge(K,e),Ge(q,e),Ge(G,e)))},Ot=e=>{const t=Ue(O,e);if(!N(t))return Pt(e,t);qt(e,Ue(Z,e)),Ut(e,-1),Ge(Z,e)},Wt=(e,t)=>is(h,e,t),jt=(e,t,s)=>is(Ke(M,e,_e),t,s)&&Ge(y,e,Ke(y,e,()=>0)+s),_t=(e,t,s,n)=>{const a=Ue(G,e),o=Ue(a,s)??0;(0==o&&1==n||1==o&&-1==n)&&is(Ke(C,e,_e),s,n),Ge(a,s,o!=-n?o+n:void 0),is(Ke(Ke(E,e,_e),t,_e),s,n)},Bt=(e,t,s,n,a)=>{Ke(Ke(Ke(k,e,_e),t,_e),s,()=>[n,0])[1]=a,c[3]?.(e,t,s,a)},Ut=(e,t)=>is(D,e,t),qt=(e,t,s)=>{Ke(H,e,()=>[t,0])[1]=s,c[4]?.(e,s)},Gt=(e,t,s,n,a)=>(ie(Ke(Ke(Ke(J,e,_e),t,_e),s,()=>[]),n),a),Kt=(e,t,s)=>(ie(Ke(x,e,()=>[]),t),s),Xt=(e,t,s)=>W(Ue(Ue(Ue(k,e),t),s),([e,t])=>[!0,e,t],()=>[!1,...ns(vs(e,t,s))]),Yt=e=>W(Ue(H,e),([e,t])=>[!0,e,t],()=>[!1,...ns(Ts(e))]),Zt=e=>Re(J)||Re(Je[e])?0:Se(e?st(J):J,(t,s)=>Se(t,(t,n)=>Se(t,(t,a)=>dt(Je[e],[s,n,a],t)))),$t=e=>Re(x)||Re(xe[e])?0:Se(e?et(x):x,(t,s)=>dt(xe[e],[s],t)),es=(e,t,s,n)=>{if(!Re(e))return dt(t,n,()=>Ye(e)),qe(e,(e,t)=>dt(s,[...n??[],e],1==t)),1},ts=e=>{const t=ps();t!=s&&dt(ee[e],void 0,t);const n=Re(Te[e]),a=Re(Me[e])&&Re(Ee[e])&&Re(Ie[e])&&Re(me[e])&&Re(de[e])&&Re(ce[e])&&Re(ge[e])&&n&&Re(oe[e])&&Re(re[e]),o=Re(De[e])&&Re(ye[e])&&Re(le[e])&&Re(te[e]);if(!a||!o){const t=e?[et(h),tt(C),et(y),tt(M),st(E),st(k)]:[h,C,y,M,E,k];if(!a){es(t[0],oe[e],re[e]),Se(t[1],(t,s)=>es(t,de[e],ce[e],[s])),Se(t[2],(t,s)=>{0!=t&&dt(ge[e],[s],Is(s))});const s=at();Se(t[3],(t,a)=>{es(t,Ie[e],me[e],[a])&&!n&&(dt(Te[e],[a,null]),ot(s,a))}),n||Se(t[5],(t,n)=>{if(!Ce(s,n)){const s=at();Se(t,e=>Se(e,([t,n],a)=>n!==t?ot(s,a):Ve(e,a))),Se(s,t=>dt(Te[e],[n,t]))}}),Se(t[4],(t,s)=>Se(t,(t,n)=>es(t,Me[e],Ee[e],[s,n])))}if(!o){let s;Se(t[5],(t,n)=>{let a;Se(t,(t,o)=>{let r;Se(t,([t,l],i)=>{l!==t&&(dt(De[e],[n,o,i],l,t,Xt),s=a=r=1)}),r&&dt(ye[e],[n,o],Xt)}),a&&dt(le[e],[n],Xt)}),s&&dt(te[e],void 0,Xt)}}},ss=e=>{const t=Ms();t!=n&&dt(Qe[e],void 0,t);const s=Re(We[e])&&Re(Ae[e]),a=Re(nt[e])&&Re(ze[e]);if(!s||!a){const t=e?[et(D),et(H)]:[D,H];if(s||es(t[0],We[e],Ae[e]),!a){let s;Se(t[1],([t,n],a)=>{n!==t&&(dt(nt[e],[a],n,t,Yt),s=1)}),s&&dt(ze[e],void 0,Yt)}}},cs=(e,...t)=>(Ws(()=>e(...ae(t,m))),_s),us=(e,t,s,n,a)=>{let o=ws(e,t,...s);return it(()=>{const a=ws(e,t,...s);$(a,o)||(o=a,n(_s,e,t,...s,o))},Te[a?1:0],[e,t],[hs])},gs=()=>$e(K),hs=()=>Be(K),fs=e=>Be(Ue(G,m(e))),Is=e=>be(Ue(K,m(e))),bs=e=>Be(Ue(K,m(e))),ws=(e,t,s,n=0,a)=>{return ke(e)?ws(e.tableId,e.cellId,e.descending,e.offset,e.limit):ae(U(se((o=Ue(K,m(e)),r=(e,s)=>[N(t)?s:Ue(e,m(t)),s],ae([...o?.entries()??[]],([e,t])=>r(t,e))),([e],[t])=>At(e,t)*(s?-1:1)),n,N(a)?a:n+a),([,e])=>e);var o,r},Ls=(e,t)=>Be(Ue(Ue(K,m(e)),m(t))),vs=(e,t,s)=>Ue(Ue(Ue(K,m(e)),m(t)),m(s)),Cs=()=>Ye(Z),Rs=()=>Be(Z),Ts=e=>Ue(Z,m(e)),ps=()=>!Re(K),Ss=e=>Ce(K,m(e)),Vs=(e,t)=>Ce(Ue(G,m(e)),m(t)),ms=(e,t)=>Ce(Ue(K,m(e)),m(t)),ys=(e,t,s)=>Ce(Ue(Ue(K,m(e)),m(t)),m(s)),Ms=()=>!Re(Z),Es=e=>Ce(Z,m(e)),ks=e=>cs(()=>(e=>je(e,bt,Gt))(e)?Mt(e):0),Ds=e=>cs(()=>vt(e)?xt(e):0),Hs=e=>(X(()=>yt(Ct(e))),_s),Js=t=>cs(()=>{if((e=je(t,e=>je(e,ft)))&&(Vt(t),!Re(K))){const e=gs();Ps(),ks(e)}}),xs=e=>cs(()=>{if(t=(e=>je(e,ft))(e)){const s=Cs();Os(),Ns(),t=!0,mt(e),Ds(s)}}),Ps=()=>cs(()=>Mt({})),Fs=e=>cs(e=>Ce(K,e)?Qt(e):0,e),Qs=(e,t)=>cs((e,t)=>W(Ue(K,e),s=>Ce(s,t)?Nt(e,s,t):0),e,t),Ns=()=>cs(()=>xt({})),zs=()=>cs(()=>{Vt({}),e=!1}),Os=()=>cs(()=>{mt({}),t=!1}),Ws=(e,t)=>{if(-1!=o){As();const s=e();return js(t),s}},As=()=>(-1!=o&&o++,1==o&&(c[0]?.(),dt(rt)),_s),js=e=>(o>0&&(o--,0==o&&(o=1,Zt(1),Re(k)||ts(1),$t(1),Re(H)||ss(1),e?.(_s)&&(Se(k,(e,t)=>Se(e,(e,s)=>Se(e,([e],n)=>he(_s,t,s,n,e)))),pe(k),Se(H,([e],t)=>fe(_s,t,e)),pe(H)),dt(lt[0],void 0),o=-1,Zt(0),Re(k)||ts(0),$t(0),Re(H)||ss(0),c[1]?.(),dt(lt[1],void 0),c[2]?.(),o=0,s=ps(),n=Ms(),ne([h,C,y,M,E,k,J,D,H,x],pe))),_s),_s={getContent:()=>[gs(),Cs()],getTables:gs,getTableIds:hs,getTable:e=>Ze(Ue(K,m(e))),getTableCellIds:fs,getRowCount:Is,getRowIds:bs,getSortedRowIds:ws,getRow:(e,t)=>Ye(Ue(Ue(K,m(e)),m(t))),getCellIds:Ls,getCell:vs,getValues:Cs,getValueIds:Rs,getValue:Ts,hasTables:ps,hasTable:Ss,hasTableCell:Vs,hasRow:ms,hasCell:ys,hasValues:Ms,hasValue:Es,getTablesJson:()=>Rt(K),getValuesJson:()=>Rt(Z),getJson:()=>Rt([K,Z]),getTablesSchemaJson:()=>Rt(P),getValuesSchemaJson:()=>Rt(Q),getSchemaJson:()=>Rt([P,Q]),hasTablesSchema:()=>e,hasValuesSchema:()=>t,setContent:e=>cs(()=>{const t=_(e)?e():e;It(t)&&(([e,t])=>{(Oe(e)?Ps:ks)(e),(Oe(t)?Ns:Ds)(t)})(t)}),setTables:ks,setTable:(e,t)=>cs(e=>bt(t,e)?Et(e,t):0,e),setRow:(e,t,s)=>cs((e,t)=>wt(e,t,s)?kt(e,Ft(e),t,s):0,e,t),addRow:(e,t,s=!0)=>Ws(()=>{let n;return wt(e,n,t)&&(e=m(e),kt(e,Ft(e),n=((e,t)=>{const[s]=Ue(q,e);let n;do{n=s(t)}while(Ce(Ue(K,e),n));return n})(e,s?1:0),t)),n}),setPartialRow:(e,t,s)=>cs((e,t)=>{if(wt(e,t,s,1)){const n=Ft(e);Ne(s,(s,a)=>Ht(e,n,t,a,s))}},e,t),setCell:(e,t,s,n)=>cs((e,t,s)=>W(Lt(e,t,s,_(n)?n(vs(e,t,s)):n),n=>Ht(e,Ft(e),t,s,n)),e,t,s),setValues:Ds,setPartialValues:e=>cs(()=>vt(e,1)?Ne(e,(e,t)=>Pt(t,e)):0),setValue:(e,t)=>cs(e=>W(Tt(e,_(t)?t(Ts(e)):t),t=>Pt(e,t)),e),applyChanges:e=>cs(()=>{Ne(e[0],(e,t)=>N(e)?Fs(t):Ne(e,(e,s)=>N(e)?Qs(t,s):Ne(e,(e,n)=>he(_s,t,s,n,e)))),Ne(e[1],(e,t)=>fe(_s,t,e))}),setTablesJson:Hs,setValuesJson:e=>(X(()=>Jt(Ct(e))),_s),setJson:e=>cs(()=>X(()=>{const[t,s]=Ct(e);yt(t),Jt(s)},()=>Hs(e))),setTablesSchema:Js,setValuesSchema:xs,setSchema:(e,t)=>cs(()=>{Js(e),xs(t)}),delTables:Ps,delTable:Fs,delRow:Qs,delCell:(e,t,s,n)=>cs((e,t,s)=>W(Ue(K,e),a=>W(Ue(a,t),o=>Ce(o,s)?zt(e,a,t,o,s,n):0)),e,t,s),delValues:Ns,delValue:e=>cs(e=>Ce(Z,e)?Ot(e):0,e),delTablesSchema:zs,delValuesSchema:Os,delSchema:()=>cs(()=>{zs(),Os()}),transaction:Ws,startTransaction:As,getTransactionChanges:()=>[Ye(k,(e,t)=>-1===Ue(h,t)?void 0:Ye(e,(e,s)=>-1===Ue(Ue(M,t),s)?void 0:Ye(e,([,e])=>e,e=>ls(e)),Re,Oe),Re,Oe),Ye(H,([,e])=>e,e=>ls(e)),1],getTransactionLog:()=>[!Re(k),!Re(H),$e(k,rs,ls),$e(J),Ye(H,rs,ls),Ye(x),Ye(h),Ze(M),$e(E),Ye(D)],finishTransaction:js,forEachTable:e=>Se(K,(t,s)=>e(s,e=>Se(t,(t,s)=>e(s,e=>qe(t,e))))),forEachTableCell:(e,t)=>qe(Ue(G,m(e)),t),forEachRow:(e,t)=>Se(Ue(K,m(e)),(e,s)=>t(s,t=>qe(e,t))),forEachCell:(e,t,s)=>qe(Ue(Ue(K,m(e)),m(t)),s),forEachValue:e=>qe(Z,e),addSortedRowIdsListener:(e,t,s,n,a,o,r)=>ke(e)?us(e.tableId,e.cellId,[e.descending??!1,e.offset??0,e.limit],t,s):us(e,t,[s,n,a],o,r),addStartTransactionListener:e=>it(e,rt),addWillFinishTransactionListener:e=>it(e,lt[0]),addDidFinishTransactionListener:e=>it(e,lt[1]),callListener:e=>(ht(e),_s),delListener:e=>(gt(e),_s),getListenerStats:()=>({hasTables:as(ee),tables:as(te),tableIds:as(oe),hasTable:as(re),table:as(le),tableCellIds:as(de),hasTableCell:as(ce,Le),rowCount:as(ge),rowIds:as(Ie),sortedRowIds:as(Te),hasRow:as(me,Le),row:as(ye,Le),cellIds:as(Me,Le),hasCell:as(Ee,ve),cell:as(De,ve),invalidCell:as(Je,ve),hasValues:as(Qe),values:as(ze),valueIds:as(We),hasValue:as(Ae),value:as(nt),invalidValue:as(xe),transaction:we(rt)+as(lt)}),isMergeable:()=>!1,createStore:ds,addListener:it,callListeners:dt,setInternalListeners:(e,t,s,n,a)=>c=[e,t,s,n,a]};return Ne({[g+I]:[0,ee,[],()=>[ps()]],[I]:[0,te],[b]:[0,oe],[g+f]:[1,re,[hs],e=>[Ss(...e)]],[f]:[1,le,[hs]],[f+T]:[1,de,[hs]],[g+f+R]:[2,ce,[hs,fs],e=>[Vs(...e)]],[L]:[1,ge,[hs]],[v]:[1,Ie,[hs]],[g+w]:[2,me,[hs,bs],e=>[ms(...e)]],[w]:[2,ye,[hs,bs]],[T]:[2,Me,[hs,bs]],[g+R]:[3,Ee,[hs,bs,Ls],e=>[ys(...e)]],[R]:[3,De,[hs,bs,Ls],e=>ns(vs(...e))],InvalidCell:[3,Je],[g+S]:[0,Qe,[],()=>[Ms()]],[S]:[0,ze],[V]:[0,We],[g+p]:[1,Ae,[Rs],e=>[Es(...e)]],[p]:[1,nt,[Rs],e=>ns(Ts(e[0]))],InvalidValue:[1,xe]},([e,t,s,n],a)=>{_s[u+a+d]=(...a)=>it(a[e],t[a[e+1]?1:0],e>0?U(a,0,e):void 0,s,n)}),He(_s)},cs={HasTable:1,Table:1,TableCellIds:1,HasTableCell:2,RowCount:1,RowIds:1,SortedRowIds:5,HasRow:2,Row:2,CellIds:2,HasCell:3,Cell:3,HasValue:1,Value:1,InvalidCell:3,InvalidValue:1},us=(e=t)=>[$t(e),$t(e)],gs=(e,s)=>{let n=1,a=us(),o=0;const r=_e(),l=at(),[i,c]=Wt(e,s),g=ds(),h=e=>{const t=n;return n=0,e(),n=t,C},f=(e,s=0)=>{const n={},o={},[[r,l=t,i=0],d]=e,[u,g]=a,[h,f,b]=u;let w=s?i:b,L=l;Qe(r,([e,a=t,o=0],r)=>{const l=Ke(h,r,$t),[i,d,c]=l;let u=s?o:c,g=a;Qe(e,(e,t)=>{const[a,o,l]=I(e,Ke(i,t,$t),Ae(Ae(n,r,Je),t,Je),s);u^=s?0:St(o?mt(t,o):0,mt(t,l)),g=Xt(g,a)}),u^=s?0:Kt(d,a),Yt(l,a,u),w^=s?0:St(c?mt(r,c):0,mt(r,l[2])),L=Xt(L,g)}),w^=s?0:Kt(f,l),Yt(u,l,w);const[v]=I(d,g,o,s);return c(Xt(L,v)),[n,o,1]},I=(e,s,n,a)=>{const[o,r=t,l=0]=e,[i,d,c]=s;let u=r,g=a?l:c;return Qe(o,([e,s=t,o=0],r)=>{const l=Ke(i,r,()=>[void 0,t,0]),[,d,c]=l;(!d||s>d)&&(Yt(l,s,a?o:yt(e,s)),l[0]=e,n[r]=e,g^=a?0:St(mt(r,c),mt(r,l[2])),u=Xt(u,s))}),g^=a?0:Kt(d,r),Yt(s,r,g),[u,c,s[2]]},b=K,w=K,L=()=>[es(a[0],e=>es(e,e=>es(e))),es(a[1])],v=e=>h(()=>g.applyChanges(f(e))),C={getMergeableContent:L,getMergeableContentHashes:()=>[a[0][2],a[1][2]],getMergeableTableHashes:()=>Ye(a[0][0],Gt),getMergeableTableDiff:e=>{const t=Zt(a[0][1]),s={};return qe(a[0][0],(n,[a,o,r])=>Pe(e,n)?r!=e[n]?s[n]=r:0:t[0][n]=ts([a,o],e=>ts(e))),[t,s]},getMergeableRowHashes:e=>{const t={};return Qe(e,(e,s)=>W(Ue(a[0][0],s),([n,,a])=>a!=e?qe(n,(e,[,,n])=>Ae(t,s,Je)[e]=n):0)),t},getMergeableRowDiff:e=>{const t=Zt(a[0][1]),s={};return Qe(e,(e,n)=>qe(Ue(a[0][0],n)?.[0],(a,[o,r,l])=>Pe(e,a)?l!==e[a]?Ae(s,n,Je)[a]=l:0:Ae(t[0],n,Zt)[0][a]=ts([o,r]))),[t,s]},getMergeableCellHashes:e=>{const t={};return Qe(e,(e,s)=>W(Ue(a[0][0],s),([n])=>Qe(e,(e,a)=>W(Ue(n,a),([n,,o])=>o!==e?qe(n,(e,[,,n])=>Ae(Ae(t,s,Je),a,Je)[e]=n):0)))),t},getMergeableCellDiff:e=>{const[[t,s]]=a,n={};return Qe(e,(e,s)=>Qe(e,(e,a)=>W(Ue(t,s),([t,o])=>W(Ue(t,a),([t,r])=>qe(t,(t,[l,i,d])=>d!==e[t]?Ae(Ae(n,s,()=>Zt(o))[0],a,()=>Zt(r))[0][t]=[l,i]:0))))),Ut(n,s)},getMergeableValueHashes:()=>Ye(a[1][0],Gt),getMergeableValueDiff:e=>{const[,[t,s]]=a,n=Ye(t,_t,([,,t],s)=>t==e?.[s]);return Ut(n,s)},setMergeableContent:e=>h(()=>(e=>B(e)&&2==q(e)&&ss(e[0],e=>je(e,e=>ss(e,e=>je(e,e=>ss(e,e=>je(e,e=>ss(e,ge),void 0,1)),void 0,1)),void 0,1))&&ss(e[1],e=>je(e,e=>ss(e,ge),void 0,1)))(e)?g.transaction(()=>{g.delTables().delValues(),a=us(),g.applyChanges(f(e,1))}):0),setDefaultContent:e=>(g.transaction(()=>{o=1,g.setContent(e),o=0}),C),getTransactionMergeableChanges:(e=!1)=>{const[[t,s,n],[o,i,d]]=a,c=e?qt:Ut,u={};Se(r,(e,s)=>W(Ue(t,s),([t,n,a])=>{const o={};Se(e,(e,s)=>W(Ue(t,s),([t,n,a])=>{const r={};Se(e,e=>{W(Ue(t,e),([t,s,n])=>r[e]=c(t,s,n))}),o[s]=c(r,n,a)})),u[s]=c(o,n,a)}));const g={};return Se(l,e=>W(Ue(o,e),([t,s,n])=>g[e]=c(t,s,n))),[c(u,s,n),c(g,i,d),1]},applyMergeableChanges:v,merge:e=>{const t=L(),s=e.getMergeableContent();return e.applyMergeableChanges(t),v(s)}};return g.setInternalListeners(b,w,()=>{pe(r),pe(l)},(e,s,a,l)=>{ot(Ke(Ke(r,e,_e),s,at),a),n&&f([[{[e]:[{[s]:[{[a]:[l,o?t:i()]}]}]}],[{}],1])},(e,s)=>{ot(l,e),n&&f([[{}],[{[e]:[s,o?t:i()]}],1])}),Ne(g,(e,t)=>C[t]=y(t,"set")||y(t,"del")||y(t,"apply")||M(t,"Transaction")||t=="call"+d?(...t)=>(e(...t),C):y(t,u)&&M(t,d)?(...s)=>{const n=cs[U(t,3,-8)]??0,a=s[n];return s[n]=(e,...t)=>a(C,...t),e(...s)}:"isMergeable"==t?()=>!0:e),He(C)},hs=_e([["avg",[(e,t)=>oe(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=>J(...e),(e,t)=>J(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:J(t,e)]],["min",[e=>x(...e),(e,t)=>x(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:x(t,e)]],["sum",[e=>oe(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),fs=(e,t,s,n,a,o=!1)=>{if(Re(s))return;const[r,l,i,d]=a;return o||=N(e),Se(n,([s,n])=>{o||(e=N(s)?l?.(e,n,t++):N(n)?i?.(e,s,t--):d?.(e,n,s,t),o||=N(e))}),o?r(Te(s),be(s)):e},Is=it(e=>{const s=_e(),[n,a,o]=ut(()=>w),[r,l,i,d,c,u,g,,h,f,I,b]=rt(e,G,e=>isNaN(e)||N(e)||!0===e||!1===e||e===t?void 0:1*e,n,a),w={setMetricDefinition:(e,t,n,o,r,l,i)=>{const d=_(n)?[n,r,l,i]:Ue(hs,n)??Ue(hs,"sum");return h(e,t,(t,n,o,r,l,i)=>{const c=u(e),h=be(r);i||=N(c),t();let f=fs(c,h,r,n,d,i);F(f)||(f=void 0),f!=c&&(g(e,f),a(s,[e],f,c))},lt(o,1)),w},delMetricDefinition:e=>(f(e),w),getStore:r,getMetricIds:l,forEachMetric:i,hasMetric:d,getTableId:c,getMetric:u,addMetricIdsListener:I,addMetricListener:(e,t)=>n(t,s,[e]),delListener:e=>(o(e),w),destroy:b,getListenerStats:()=>({metric:we(s)})};return He(w)}),bs=it(e=>{const s=e.createStore,n=s(),a=s(),o=_e(),r=_e(),l=_e(),{addListener:i,callListeners:g,delListener:h}=a,[I,b,p,S,V,m,y,M,,E,k,D,H,J]=rt(e,()=>[],G,i,g),x=(e,t,...s)=>ne(s,s=>ot(Ke(Ke(o,t,_e),e,at),s)),P=e=>{W(Ue(o,e),e=>{qe(e,(e,t)=>Se(t,t=>e.delListener(t))),pe(e)}),ne([a,n],t=>t.delTable(e))},F=(e,t,s)=>x(t,e,t.addStartTransactionListener(s.startTransaction),t.addDidFinishTransactionListener(()=>s.finishTransaction())),Q=(s,o,r,l={})=>{const i=A(s);var d;M(s,o),y(s,[r,(d=l,new Map(Ee(d)))]),z(s,i,l),P(s);const[,c]=m(s),u=[],g=[[void 0,[o,void 0,void 0,[],_e()]]],h=[],f=[],I=[];r({select:(e,s)=>{const n=_(e)?[q(u)+t,e]:[N(s)?e:s,t=>t(e,s)];return ie(u,n),{as:e=>n[0]=e}},join:(e,t,s)=>{const n=N(s)||_(t)?void 0:t,a=N(n)?t:s,o=[e,[e,n,_(a)?a:e=>e(a),[],_e()]];return ie(g,o),{as:e=>o[0]=e}},where:(e,t,s)=>ie(h,_(e)?e:N(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,a)=>{const o=[e,[e,_(t)?[t,s,n,a]:Ue(hs,t)??[(e,t)=>t]]];return ie(f,o),{as:e=>o[0]=e}},having:(e,t)=>ie(I,_(e)?e:s=>s(e)===t),param:e=>Ue(c,e)});const b=_e(u);if(Re(b))return B;const w=_e(g);qe(w,(e,[,t])=>W(Ue(w,t),({3:t})=>N(e)?0:ie(t,e)));const L=_e(f);let v=n;if(Re(L)&&re(I))v=a;else{F(s,v,a);const e=_e();qe(L,(t,[s,n])=>ot(Ke(e,s,at),[t,n]));const t=at();qe(b,s=>Ce(e,s)?0:ot(t,s));const n=_e(),o=(t,n,o,r)=>W(t,([l,i,d,c])=>{qe(n,(t,[s])=>{const n=Ke(l,t,_e),a=Ue(n,o),i=r?void 0:s;if(a!==i){const s=at([[a,i]]),r=be(n);Ge(n,o,i),Se(Ue(e,t),([e,t])=>{const a=fs(c[e],r,n,s,t);c[e]=N(ue(a))?void 0:a})}}),Re(i)||!Z(I,e=>e(e=>c[e]))?a.delRow(s,d):N(d)?t[2]=a.addRow(s,c):a.setRow(s,d,c)});x(v,s,v.addRowListener(s,null,(a,r,l,i)=>{const d=[],c=[],u=_e(),g=v.hasRow(s,l);let h=!g;Se(t,e=>{const[t,n,a]=i(s,l,e);ie(d,n),ie(c,a),h||=t}),qe(e,e=>{const[t,,n]=i(s,l,e);(h||t)&&Ge(u,e,[n])}),h&&o(nt(n,d,void 0,([,e])=>(Ve(e,l),Re(e))),u,l,1),g&&o(nt(n,c,()=>{const e={};return Se(t,t=>e[t]=v.getCell(s,l,t)),[_e(),at(),void 0,e]},([,e])=>{ot(e,l)}),u,l)}))}F(s,e,v);const C=(t,n,a,r)=>{const l=t=>e.getCell(n,a,t);ne(r,n=>{const[a,,o,r,i]=Ue(w,n),d=o?.(l,t),[c,u]=Ue(i,t)??[];d!=c&&(N(u)||J(s,u),Ge(i,t,N(d)?void 0:[d,...H(s,1,e.addRowListener(a,d,()=>C(t,a,d,r)))]))}),(t=>{const n=(s,n)=>e.getCell(...N(n)?[o,t,s]:s===o?[o,t,n]:[Ue(w,s)?.[0],Ue(Ue(w,s)?.[4],t)?.[0],n]);v.transaction(()=>Z(h,e=>e(n))?qe(b,(e,a)=>he(v,s,t,e,a(n,t))):v.delRow(s,t))})(t)},{3:R}=Ue(w,void 0);return v.transaction(()=>H(s,1,e.addRowListener(o,null,(t,n,a)=>{e.hasRow(o,a)?C(a,o,a,R):(v.delRow(s,a),Se(w,({4:e})=>W(Ue(e,a),([,t])=>{J(s,t),Ge(e,a)})))}))),B},z=(e,t,s)=>{const n=at([...De(t),...De(s)]);let a=0;Se(n,n=>{const o=xe(s,n);ee(xe(t,n),o)||(a=1,g(l,[e,n],o))}),a&&g(r,[e],s)},O=(e,t,s=0)=>(W(m(e),([n,o])=>{!s&&We(Ye(o),t,ee)||a.transaction(()=>Q(e,V(e),n,t))}),B),A=e=>Ye(m(e)?.[1]),j=(e,t)=>Ue(m(e)?.[1],t),B={setQueryDefinition:Q,delQueryDefinition:e=>{const t=A(e);return P(e),E(e),z(e,t,{}),B},getParamValues:A,getParamValue:j,setParamValues:O,setParamValue:(e,t,s)=>(ee(j(e,t),s)||O(e,{...A(e),[t]:s},1),B),getStore:I,getQueryIds:b,forEachQuery:p,hasQuery:S,getTableId:V,addQueryIdsListener:e=>k(()=>e(B)),addParamValuesListener:(e,t)=>i((e,s,n)=>t(B,s,n),r,[e]),addParamValueListener:(e,t,s)=>i((e,t,n,a)=>s(B,t,n,a),l,[e,t]),delListener:e=>(h(e),B),destroy:D,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=a.getListenerStats();return{...n,paramValues:we(r),paramValue:Le(l)}}};return Ne({[f]:[1,1],[f+T]:[0,1],[L]:[0,1],[v]:[0,1],[C]:[0,5],[w]:[1,2],[T]:[0,2],[R]:[1,3]},([e,t],s)=>{ne(e?["get","has","forEach"]:["get"],e=>B[e+c+s]=(...t)=>a[e+s](...t)),B[u+c+s+d]=(...e)=>a[u+s+d](...U(e,0,t),(s,...n)=>e[t](B,...n),!0)}),He(B)}),ws=it(e=>{const s=_e(),n=_e(),a=_e(),o=_e(),[r,l,i]=ut(()=>T),[d,c,u,g,h,f,,,I,b,w,L]=rt(e,()=>[_e(),_e(),_e(),_e()],e=>N(e)?void 0:e+t,r,l),v=(e,t,s)=>W(f(e),([n,,a])=>{if(!Ce(a,t)){const o=at();if(h(e)!=R(e))ot(o,t);else{let e=t;for(;!N(e)&&!Ce(o,e);)ot(o,e),e=Ue(n,e)}if(s)return o;Ge(a,t,o)}return Ue(a,t)}),C=(e,t)=>W(f(e),([,,e])=>Ge(e,t)),R=e=>Ue(s,e),T={setRelationshipDefinition:(e,t,r,i)=>(Ge(s,e,r),I(e,t,(t,s)=>{const r=at(),i=at(),d=at(),[c,u]=f(e);Se(s,([t,s],n)=>{N(t)||(ot(i,t),W(Ue(u,t),e=>{Ve(e,n),Re(e)&&Ge(u,t)})),N(s)||(ot(i,s),Ce(u,s)||Ge(u,s,at()),ot(Ue(u,s),n)),ot(r,n),Ge(c,n,s),qe(Ue(o,e),t=>{Ce(v(e,t),n)&&ot(d,t)})}),t(),Se(r,t=>l(n,[e,t])),Se(i,t=>l(a,[e,t])),Se(d,t=>{C(e,t),l(o,[e,t])})},lt(i)),T),delRelationshipDefinition:e=>(Ge(s,e),b(e),T),getStore:d,getRelationshipIds:c,forEachRelationship:t=>u(s=>t(s,t=>e.forEachRow(h(s),t))),hasRelationship:g,getLocalTableId:h,getRemoteTableId:R,getRemoteRowId:(e,t)=>Ue(f(e)?.[0],t),getLocalRowIds:(e,t)=>Te(Ue(f(e)?.[1],t)),getLinkedRowIds:(e,t)=>N(f(e))?[t]:Te(v(e,t,!0)),addRelationshipIdsListener:w,addRemoteRowIdListener:(e,t,s)=>r(s,n,[e,t]),addLocalRowIdsListener:(e,t,s)=>r(s,a,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(v(e,t),r(s,o,[e,t])),delListener:e=>(C(...i(e)??[]),T),destroy:L,getListenerStats:()=>({remoteRowId:Le(n),localRowIds:Le(a),linkedRowIds:Le(o)})};return He(T)});export{St as addOrRemoveHash,gt as createCheckpoints,jt as createIndexes,gs as createMergeableStore,Is as createMetrics,bs as createQueries,ws as createRelationships,ds as createStore,At as defaultSorter,Mt as getCellHash,Et as getCellInRowHash,pt as getHash,Wt as getHlcFunctions,kt as getRowHash,Dt as getRowInTableHash,Ht as getTableHash,Jt as getTableInTablesHash,xt as getTablesHash,Lt as getUniqueId,yt as getValueHash,mt as getValueInValuesHash,Vt as getValuesHash};
1
+ const e=e=>typeof e,t="",s=e(t),n=e(!0),a=e(0),o=e(e),r="type",l="default",i="allowNull",d="Listener",c="Result",u="add",g="Has",h="Ids",f="Table",I=f+"s",b=f+h,w="Row",L=w+"Count",v=w+h,C="Sorted"+w+h,R="Cell",T=R+h,p="Value",S=p+"s",V=p+h,m=e=>t+e,y=(e,t)=>e.startsWith(t),M=(e,t)=>e.endsWith(t),E=(e,s=t,n)=>e.split(s,n),k=e=>(t,s,n)=>e(t)?n?.():s(t),D=globalThis,H=Math,J=H.max,x=H.min,P=H.floor,F=isFinite,Q=e=>null==e,N=e=>void 0===e,z=e=>null===e,O=k(Q),W=k(N),A=e=>e==s||e==n,j=t=>e(t)==s,_=t=>e(t)==o,B=e=>Array.isArray(e),U=(e,t,s)=>e.slice(t,s),q=e=>e.length,G=()=>{},K=()=>{},X=async(e,t,s)=>{try{return await e()}catch(e){t?.(e)}},Y=(e,t)=>e.includes(t),Z=(e,t)=>e.every(t),$=(e,t)=>q(e)===q(t)&&Z(e,(e,s)=>t[s]===e),ee=(e,t)=>B(e)&&B(t)?$(e,t):e===t,te=(e,t)=>Z(e,(s,n)=>0==n||t(e[n-1],s)<=0),se=(e,t)=>e.sort(t),ne=(e,t)=>e.forEach(t),ae=(e,t)=>e.map(t),oe=e=>le(e,(e,t)=>e+t,0),re=e=>0==q(e),le=(e,t,s)=>e.reduce(t,s),ie=(e,...t)=>e.push(...t),de=e=>e.pop(),ce=e=>e.shift(),ue=t=>{if(z(t))return"null";const s=e(t);return A(s)||s==a&&F(t)?s:void 0},ge=e=>N(e)||!N(ue(e)),he=(e,t,s,n,a)=>N(a)?e.delCell(t,s,n,!0):e.setCell(t,s,n,a),fe=(e,t,s)=>N(s)?e.delValue(t):e.setValue(t,s),Ie=e=>t=>le(Te(t),(t,s)=>t+e(s),0),be=e=>e?.size??0,we=Ie(be),Le=Ie(we),ve=Ie(Le),Ce=(e,t)=>e?.has(t)??!1,Re=e=>N(e)||0==be(e),Te=e=>[...e?.values()??[]],pe=e=>e.clear(),Se=(e,t)=>e?.forEach(t),Ve=(e,t)=>e?.delete(t),me=Object,ye=e=>me.getPrototypeOf(e),Me=me.isFrozen,Ee=me.entries,ke=e=>!Q(e)&&O(ye(e),e=>e==me.prototype||Q(ye(e)),()=>!0),De=me.keys,He=me.freeze,Je=(e=[])=>me.fromEntries(e),xe=(e,t)=>W(e,e=>e[t]),Pe=(e,t)=>t in e,Fe=(e,t)=>(delete e[t],e),Qe=(e,t)=>ne(Ee(e),([e,s])=>t(s,e)),Ne=(e,t)=>Je(((e,t)=>ae(Ee(e),([e,s])=>t(s,e)))(e,(e,s)=>[s,t(e,s)])),ze=e=>q(De(e)),Oe=e=>ke(e)&&0==ze(e),We=(e,t,s=(e,t)=>e===t)=>{const n=Ee(e);return q(n)===ze(t)&&Z(n,([e,n])=>ke(n)?!!ke(t[e])&&We(t[e],n):s(n,t[e]))},Ae=(e,t,s)=>(Pe(e,t)||(e[t]=s()),e[t]),je=(e,t,s,n=0)=>Q(e)||!ke(e)||!n&&Oe(e)||Me(e)?(s?.(),!1):(Qe(e,(s,n)=>{t(s,n)||Fe(e,n)}),!!n||!Oe(e)),_e=Map,Be=e=>new _e(e),Ue=e=>[...e?.keys()??[]],qe=(e,t)=>e?.get(t),Ge=(e,t)=>Se(e,(e,s)=>t(s,e)),Ke=(e,t,s)=>N(s)?(Ve(e,t),e):e?.set(t,s),Xe=(e,t,s,n)=>(Ce(e,t)?n?.(qe(e,t)):Ke(e,t,s()),qe(e,t)),Ye=(e,t,s,n=Ke)=>(Ne(t,(t,n)=>s(e,n,t)),Ge(e,s=>Pe(t,s)?0:n(e,s)),e),Ze=(e,t,s,n)=>{const a={};return Se(e,(e,o)=>{if(!s?.(e,o)){const s=t?t(e,o):e;n?.(s)||(a[o]=s)}}),a},$e=(e,t,s)=>Ze(e,e=>Ze(e,t,s),Re,Oe),et=(e,t,s)=>Ze(e,e=>$e(e,t,s),Re,Oe),tt=(e,t)=>{const s=Be();return Se(e,(e,n)=>s.set(n,t?.(e)??e)),s},st=e=>tt(e,tt),nt=e=>tt(e,st),at=(e,t,s,n,a=0)=>W((s?Xe:qe)(e,t[a],a>q(t)-2?s:Be),o=>{if(a>q(t)-2)return n?.(o)&&Ke(e,t[a]),o;const r=at(o,t,s,n,a+1);return Re(o)&&Ke(e,t[a]),r}),ot=e=>new Set(B(e)||N(e)?e:[e]),rt=(e,t)=>e?.add(t),lt=(e,t,s,n,a)=>{const o=e.hasRow,r=Be(),l=Be(),i=Be(),d=Be(),c=Be(),u=Be(),g=(t,s,...n)=>{const a=Xe(u,t,ot);return ne(n,t=>rt(a,t)&&s&&e.callListener(t)),n},h=(t,...s)=>W(qe(u,t),n=>{ne(re(s)?Te(n):s,t=>{e.delListener(t),Ve(n,t)}),Re(n)&&Ke(u,t)}),f=(e,s)=>{Ke(r,e,s),Ce(l,e)||(Ke(l,e,t()),Ke(d,e,Be()),Ke(c,e,Be()),a(i))},I=e=>{Ke(r,e),Ke(l,e),Ke(d,e),Ke(c,e),h(e),a(i)};return[()=>e,()=>Ue(r),e=>Ge(l,e),e=>Ce(l,e),e=>qe(r,e),e=>qe(l,e),(e,t)=>Ke(l,e,t),f,(t,n,a,r,l)=>{f(t,n);const i=Be(),u=Be(),I=qe(d,t),b=qe(c,t),w=t=>{const a=s=>e.getCell(n,t,s),d=qe(I,t),c=o(n,t)?s(r(a,t)):void 0;if(d===c||B(d)&&B(c)&&$(d,c)||Ke(i,t,[d,c]),!N(l)){const e=qe(b,t),s=o(n,t)?l(a,t):void 0;e!=s&&Ke(u,t,s)}},L=e=>{a(()=>{Se(i,([,e],t)=>Ke(I,t,e)),Se(u,(e,t)=>Ke(b,t,e))},i,u,I,b,e),pe(i),pe(u)};Ge(I,w),e.hasTable(n)&&ne(e.getRowIds(n),e=>{Ce(I,e)||w(e)}),L(!0),h(t),g(t,0,e.addRowListener(n,null,(e,t,s)=>w(s)),e.addTableListener(n,()=>L()))},I,e=>n(e,i),()=>Ge(u,I),g,h]},it=(e,s)=>j(e)?t=>t(e):e??(()=>s??t),dt=(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}},ct=/^\d+$/,ut=()=>{const e=[];let s=0;return[n=>(n?ce(e):null)??t+s++,t=>{ct.test(t)&&q(e)<1e3&&ie(e,t)}]},gt=e=>{let s;const[n,a]=ut(),o=Be();return[(a,r,l,i=[],d=()=>[])=>{s??=e();const c=n(1);return Ke(o,c,[a,r,l,i,d]),rt(at(r,l??[t],ot),c),c},(e,n,...a)=>ne(((e,s=[t])=>{const n=[],a=(e,t)=>t==q(s)?ie(n,e):z(s[t])?Se(e,e=>a(e,t+1)):ne([s[t],null],s=>a(qe(e,s),t+1));return a(e,0),n})(e,n),e=>Se(e,e=>qe(o,e)[0](s,...n??[],...a))),e=>W(qe(o,e),([,s,n])=>(at(s,n??[t],void 0,t=>(Ve(t,e),Re(t)?1:0)),Ke(o,e),a(e),n)),e=>W(qe(o,e),([e,,t=[],n,a])=>{const o=(...r)=>{const l=q(r);l==q(t)?e(s,...r,...a(r)):z(t[l])?ne(n[l]?.(...r)??[],e=>o(...r,e)):o(...r,t[l])};o()})]},ht=dt(e=>{let s,n,a,o=100,r=Be(),l=Be(),i=1;const d=Be(),c=Be(),[u,g,h]=gt(()=>J),f=Be(),I=Be(),b=[],w=[],L=(t,s)=>{i=0,e.transaction(()=>{const[n,a]=qe(f,s);Se(n,(s,n)=>Se(s,(s,a)=>Se(s,(s,o)=>he(e,n,a,o,s[t])))),Se(a,(s,n)=>fe(e,n,s[t]))}),i=1},v=e=>{Ke(f,e),Ke(I,e),g(c,[e])},C=(e,t)=>ne(((e,t)=>e.splice(0,t))(e,t??q(e)),v),R=()=>C(b,q(b)-o),T=()=>W(s,()=>{ie(b,s),R(),C(w),s=void 0,a=1}),p=()=>{s=de(b),a=1};let S,V;const m=(e=t)=>(N(s)&&(s=t+n++,Ke(f,s,[r,l]),D(s,e),r=Be(),l=Be(),a=1),s),y=()=>{re(b)||(((e,...t)=>{e.unshift(...t)})(w,m()),L(0,s),s=de(b),a=1)},M=()=>{re(w)||(ie(b,s),s=ce(w),L(1,s),a=1)},E=()=>{a&&(g(d),a=0)},k=e=>{const t=m(e);return E(),t},D=(e,t)=>(H(e)&&qe(I,e)!==t&&(Ke(I,e,t),g(c,[e])),J),H=e=>Ce(f,e),J={setSize:e=>(o=e,R(),J),addCheckpoint:k,setCheckpoint:D,getStore:()=>e,getCheckpointIds:()=>[[...b],s,[...w]],forEachCheckpoint:e=>Ge(I,e),hasCheckpoint:H,getCheckpoint:e=>qe(I,e),goBackward:()=>(y(),E(),J),goForward:()=>(M(),E(),J),goTo:e=>{const t=Y(b,e)?y:Y(w,e)?M:void 0;for(;!N(t)&&e!=s;)t();return E(),J},addCheckpointIdsListener:e=>u(e,d),addCheckpointListener:(e,t)=>u(t,c,[e]),delListener:e=>(h(e),J),clear:()=>(C(b),C(w),N(s)||v(s),s=void 0,n=0,k(),J),clearForward:()=>(re(w)||(C(w),g(d)),J),destroy:()=>{e.delListener(S),e.delListener(V)},getListenerStats:()=>({checkpointIds:we(d),checkpoint:we(c)}),_registerListeners:()=>{S=e.addCellListener(null,null,null,(e,t,s,n,a,o)=>{if(i){T();const e=Xe(r,t,Be),l=Xe(e,s,Be),i=Xe(l,n,()=>[o,void 0]);i[1]=a,i[0]===a&&Re(Ke(l,n))&&Re(Ke(e,s))&&Re(Ke(r,t))&&p(),E()}}),V=e.addValueListener(null,(e,t,s,n)=>{if(i){T();const e=Xe(l,t,()=>[n,void 0]);e[1]=s,e[0]===s&&Re(Ke(l,t))&&p(),E()}})}};return He(J.clear())},e=>e._registerListeners()),ft=E("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),It=Be(ae(ft,(e,t)=>[e,t])),bt=e=>ft[63&e],wt=(e,t)=>qe(It,e[t])??0,Lt=D.crypto?e=>D.crypto.getRandomValues(e):e=>ae(e,()=>P(256*H.random())),vt=(e=16)=>le(Lt(new Uint8Array(e)),(e,t)=>e+bt(t),t),Ct=JSON.stringify,Rt=JSON.parse,Tt=e=>Ct(e,(e,t)=>t instanceof Map?me.fromEntries([...t]):t),pt=new D.TextEncoder,St=e=>{let t=2166136261;return ne(pt.encode(e),e=>{t^=e,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0},Vt=(e,t)=>(e^t)>>>0,mt=e=>le(Ee(e),(e,[t,s])=>Vt(e,yt(t,s)^yt(t,0)),0),yt=(e,t)=>St(e+":"+t),Mt=(e,t)=>St(Tt(e??null)+":"+t),Et=Mt,kt=yt,Dt=mt,Ht=yt,Jt=e=>le(Ee(e),(e,[t,s])=>Vt(e,yt(t,s)),0),xt=yt,Pt=Jt,Ft=2**36,Qt=2**30,Nt=2**24,zt=2**18,Ot=4096,Wt=e=>{const t=St(e);return bt(t/Nt)+bt(t/zt)+bt(t/Ot)+bt(t/64)+bt(t)},At=(e,t=Date.now)=>{let s=0,n=-1;const a=W(e,Wt,()=>vt(5)),o=e=>{const a=s,[o,r]=N(e)||""==e?[0,0]:l(e);s=J(a,o,t()),n=s==a?s==o?J(n,r):n:s==o?r:-1},r=(e,t,s)=>bt(e/Ft)+bt(e/Qt)+bt(e/Nt)+bt(e/zt)+bt(e/Ot)+bt(e/64)+bt(e)+bt(t/zt)+bt(t/Ot)+bt(t/64)+bt(t)+(N(s)?a:Wt(s)),l=e=>[wt(e,0)*Ft+wt(e,1)*Qt+wt(e,2)*Nt+wt(e,3)*zt+wt(e,4)*Ot+64*wt(e,5)+wt(e,6),wt(e,7)*zt+wt(e,8)*Ot+64*wt(e,9)+wt(e,10),e.slice(11)];return[()=>(o(),r(s,++n)),o,r,l,()=>s,()=>n,()=>a]},jt=(e,t)=>(e??0)<(t??0)?-1:1,_t=dt(e=>{const s=Be(),n=Be(),[a,o,r]=gt(()=>v),[l,i,d,c,u,g,h,,f,I,b,w]=lt(e,Be,e=>N(e)?t:B(e)?ae(e,m):m(e),a,o),L=(t,s,n)=>{const a=u(t);Se(n,(t,n)=>s(n,s=>Se(t,t=>s(t,s=>e.forEachCell(a,t,s)))))},v={setIndexDefinition:(e,t,a,r,l,i=jt)=>{const d=N(l)?void 0:([e],[t])=>l(e,t);return f(e,t,(t,a,l,c,u,f)=>{let I=0;const b=ot(),w=ot(),L=g(e);if(Se(a,([e,t],s)=>{const n=ot(e),a=ot(t);Se(n,e=>Ve(a,e)?Ve(n,e):0),Se(n,e=>{rt(b,e),W(qe(L,e),t=>{Ve(t,s),Re(t)&&(Ke(L,e),I=1)})}),Se(a,e=>{rt(b,e),Ce(L,e)||(Ke(L,e,ot()),I=1),rt(qe(L,e),s),N(r)||rt(w,e)})}),t(),Re(u)||(f?Ge(L,e=>rt(w,e)):Ge(l,e=>W(qe(c,e),e=>ne(B(e)?e:[e],e=>rt(w,e)))),Se(w,e=>{const t=(t,s)=>i(qe(u,t),qe(u,s),e),s=[...qe(L,e)];te(s,t)||(Ke(L,e,ot(se(s,t))),rt(b,e))})),(I||f)&&!N(d)){const t=[...L];te(t,d)||(h(e,Be(se(t,d))),I=1)}I&&o(s,[e]),Se(b,t=>o(n,[e,t]))},it(a),W(r,it)),v},delIndexDefinition:e=>(I(e),v),getStore:l,getIndexIds:i,forEachIndex:e=>d((t,s)=>e(t,e=>L(t,e,s))),forEachSlice:(e,t)=>L(e,t,g(e)),hasIndex:c,hasSlice:(e,t)=>Ce(g(e),t),getTableId:u,getSliceIds:e=>Ue(g(e)),getSliceRowIds:(e,t)=>Te(qe(g(e),t)),addIndexIdsListener:b,addSliceIdsListener:(e,t)=>a(t,s,[e]),addSliceRowIdsListener:(e,t,s)=>a(s,n,[e,t]),delListener:e=>(r(e),v),destroy:w,getListenerStats:()=>({sliceIds:we(s),sliceRowIds:Le(n)})};return He(v)}),Bt=([e,t])=>qt(e,t),Ut=([e,t,s])=>[e,t,s],qt=(e,t)=>t?[e,t]:[e],Gt=(e,t,s)=>[e,t,s],Kt=e=>e[2],Xt=(e,t)=>t>e?(e?St(e):0)^St(t):0,Yt=(e,t)=>((e??"")>(t??"")?e:t)??"",Zt=(e,t,s)=>{t>e[1]&&(e[1]=t),e[2]=s>>>0},$t=(e=t)=>qt(Je(),e),es=(e=t)=>[Be(),e,0],ts=([e,t,s],n=Ut)=>[Ze(e,n),t,s],ss=([e,t],s=Bt)=>qt(Ze(e,s),t),ns=(t,s)=>B(t)&&3==q(t)&&j(t[1])&&e(t[2])==a&&F(t[2])&&s(t[0]),as=e=>[e,e],os=(e,t=we)=>t(e[0])+t(e[1]),rs=()=>[Be(),Be()],ls=e=>[...e],is=([e,t])=>e===t,ds=(e,t,s)=>Ke(e,t,qe(e,t)==-s?void 0:s),cs=()=>{let e,t,s=!1,n=!1,o=0,c=[],h=0;const C=Be(),y=Be(),M=Be(),E=Be(),k=Be(),D=Be(),H=Be(),J=Be(),x=Be(),P=Be(),F=Be(),Q=Be(),O=Be(),j=Be(),q=ot(),G=Be(),K=Be(),Z=Be(),ee=Be(),te=rs(),oe=rs(),re=rs(),le=rs(),de=rs(),ce=rs(),ge=rs(),Ie=rs(),Te=rs(),me=rs(),ye=rs(),Me=rs(),Ee=rs(),De=rs(),Je=rs(),xe=rs(),Qe=rs(),ze=rs(),We=rs(),Ae=rs(),_e=rs(),at=rs(),lt=Be(),it=rs(),[dt,ct,ht,ft]=gt(()=>Bs),It=e=>{if(!je(e,(e,t)=>Y([r,l,i],t)))return!1;const t=e[r];if(!A(t)&&t!=a)return!1;const s=e[l];return!(z(s)&&!e[i]||(z(s)||ue(s)==t||Fe(e,l),0))},bt=B,wt=(t,s)=>(!e||Ce(F,s)||Kt(s))&&je(t,(e,t)=>Lt(s,t,e),()=>Kt(s)),Lt=(e,t,s,n)=>je(n?s:St(s,e,t),(n,a)=>W(vt(e,t,a,n),e=>(s[a]=e,!0),()=>!1),()=>Kt(e,t)),vt=(t,s,n,a)=>e?W(qe(qe(F,t),n),e=>z(a)?e[i]?a:Kt(t,s,n,a,e[l]):ue(a)==e[r]?a:Kt(t,s,n,a,e[l]),()=>Kt(t,s,n,a)):N(ue(a))?Kt(t,s,n,a):a,Ct=(e,t)=>je(t?e:Vt(e),(t,s)=>W(pt(s,t),t=>(e[s]=t,!0),()=>!1),()=>Xt()),pt=(e,s)=>t?W(qe(O,e),t=>z(s)?t[i]?s:Xt(e,s,t[l]):ue(s)==t[r]?s:Xt(e,s,t[l]),()=>Xt(e,s)):N(ue(s))?Xt(e,s):s,St=(e,t,s)=>(W(qe(Q,t),([n,a])=>{Se(n,(t,s)=>{Pe(e,s)||(e[s]=t)}),Se(a,n=>{Pe(e,n)||Kt(t,s,n)})}),e),Vt=e=>(t&&(Se(j,(t,s)=>{Pe(e,s)||(e[s]=t)}),Se(q,t=>{Pe(e,t)||Xt(t)})),e),mt=e=>Ye(F,e,(e,t,s)=>{const n=Be(),a=ot();Ye(Xe(F,t,Be),s,(e,t,s)=>{Ke(e,t,s),W(s[l],e=>Ke(n,t,e),()=>rt(a,t))}),Ke(Q,t,[n,a])},(e,t)=>{Ke(F,t),Ke(Q,t)}),yt=e=>Ye(O,e,(e,t,s)=>{Ke(O,t,s),W(s[l],e=>Ke(j,t,e),()=>rt(q,t))},(e,t)=>{Ke(O,t),Ke(j,t),Ve(q,t)}),Mt=e=>Oe(e)?Fs():Ds(e),Et=e=>Ye(Z,e,(e,t,s)=>kt(t,s),(e,t)=>Nt(t)),kt=(e,t)=>Ye(Xe(Z,e,()=>(At(e,1),Ke(G,e,ut()),Ke(K,e,Be()),Be())),t,(t,s,n)=>Dt(e,t,s,n),(t,s)=>zt(e,t,s)),Dt=(e,t,s,n,a)=>Ye(Xe(t,s,()=>(_t(e,s,1),Be())),n,(t,n,a)=>Ht(e,s,t,n,a),(n,o)=>Ot(e,t,s,n,o,a)),Ht=(e,t,s,n,a)=>{Ce(s,n)||Bt(e,t,n,1);const o=qe(s,n);a!==o&&(Ut(e,t,n,o,a),Ke(s,n,a))},Jt=(e,t,s,n,a)=>W(qe(t,s),t=>Ht(e,s,t,n,a),()=>Dt(e,t,s,St({[n]:a},e,s))),xt=e=>Oe(e)?zs():Hs(e),Pt=e=>Ye(ee,e,(e,t,s)=>Ft(t,s),(e,t)=>Wt(t)),Ft=(e,t)=>{Ce(ee,e)||qt(e,1);const s=qe(ee,e);t!==s&&(Gt(e,s,t),Ke(ee,e,t))},Qt=e=>qe(Z,e)??kt(e,{}),Nt=e=>kt(e,{}),zt=(e,t,s)=>{const[,n]=qe(G,e);n(s),Dt(e,t,s,{},!0)},Ot=(e,t,s,n,a,o)=>{const r=qe(qe(Q,e)?.[0],a);if(!N(r)&&!o)return Ht(e,s,n,a,r);const l=t=>{Ut(e,s,t,qe(n,t)),Bt(e,s,t,-1),Ke(n,t)};N(r)?l(a):Ge(n,l),Re(n)&&(_t(e,s,-1),Re(Ke(t,s))&&(At(e,-1),Ke(Z,e),Ke(G,e),Ke(K,e)))},Wt=e=>{const t=qe(j,e);if(!N(t))return Ft(e,t);Gt(e,qe(ee,e)),qt(e,-1),Ke(ee,e)},At=(e,t)=>ds(C,e,t),_t=(e,t,s)=>ds(Xe(E,e,Be),t,s)&&Ke(M,e,Xe(M,e,()=>0)+s),Bt=(e,t,s,n)=>{const a=qe(K,e),o=qe(a,s)??0;(0==o&&1==n||1==o&&-1==n)&&ds(Xe(y,e,Be),s,n),Ke(a,s,o!=-n?o+n:void 0),ds(Xe(Xe(k,e,Be),t,Be),s,n)},Ut=(e,t,s,n,a)=>{Xe(Xe(Xe(D,e,Be),t,Be),s,()=>[n,0])[1]=a,c[3]?.(e,t,s,a,h)},qt=(e,t)=>ds(H,e,t),Gt=(e,t,s)=>{Xe(J,e,()=>[t,0])[1]=s,c[4]?.(e,s,h)},Kt=(e,t,s,n,a)=>(ie(Xe(Xe(Xe(x,e,Be),t,Be),s,()=>[]),n),a),Xt=(e,t,s)=>(ie(Xe(P,e,()=>[]),t),s),Yt=(e,t,s)=>W(qe(qe(qe(D,e),t),s),([e,t])=>[!0,e,t],()=>[!1,...as(Cs(e,t,s))]),Zt=e=>W(qe(J,e),([e,t])=>[!0,e,t],()=>[!1,...as(ps(e))]),$t=e=>Re(x)||Re(xe[e])?0:Se(e?nt(x):x,(t,s)=>Se(t,(t,n)=>Se(t,(t,a)=>ct(xe[e],[s,n,a],t)))),es=e=>Re(P)||Re(Qe[e])?0:Se(e?tt(P):P,(t,s)=>ct(Qe[e],[s],t)),ts=(e,t,s,n)=>{if(!Re(e))return ct(t,n,()=>Ze(e)),Ge(e,(e,t)=>ct(s,[...n??[],e],1==t)),1},ss=e=>{const t=!Re(te[e]),n=!Re(me[e]),a=!(Re(Ee[e])&&Re(De[e])&&Re(Te[e])&&Re(ye[e])&&Re(ce[e])&&Re(ge[e])&&Re(Ie[e])&&!n&&Re(re[e])&&Re(le[e])),o=!(Re(Je[e])&&Re(Me[e])&&Re(de[e])&&Re(oe[e]));if(t||a||o){const r=e?[tt(C),st(y),tt(M),st(E),nt(k),tt(D,e=>tt(e,e=>tt(e,ls)))]:[C,y,M,E,k,D];if(t){const t=Ss();t!=s&&ct(te[e],void 0,t)}if(a){ts(r[0],re[e],le[e]),Se(r[1],(t,s)=>ts(t,ce[e],ge[e],[s])),Se(r[2],(t,s)=>{0!=t&&ct(Ie[e],[s],bs(s))});const t=ot();Se(r[3],(s,a)=>{ts(s,Te[e],ye[e],[a])&&n&&(ct(me[e],[a,null]),rt(t,a))}),n&&Se(r[5],(s,n)=>{if(!Ce(t,n)){const t=ot();Se(s,e=>Se(e,([s,n],a)=>n!==s?rt(t,a):Ve(e,a))),Se(t,t=>ct(me[e],[n,t]))}}),Se(r[4],(t,s)=>Se(t,(t,n)=>ts(t,Ee[e],De[e],[s,n])))}if(o){let t;Se(r[5],(s,n)=>{let a;Se(s,(s,o)=>{let r;Se(s,([s,l],i)=>{l!==s&&(ct(Je[e],[n,o,i],l,s,Yt),t=a=r=1)}),r&&ct(Me[e],[n,o],Yt)}),a&&ct(de[e],[n],Yt)}),t&&ct(oe[e],void 0,Yt)}}},ns=e=>{const t=!Re(ze[e]),s=!Re(Ae[e])||!Re(_e[e]),a=!Re(at[e])||!Re(We[e]);if(t||s||a){const o=e?[tt(H),tt(J,ls)]:[H,J];if(t){const t=Es();t!=n&&ct(ze[e],void 0,t)}if(s&&ts(o[0],Ae[e],_e[e]),a){let t;Se(o[1],([s,n],a)=>{n!==s&&(ct(at[e],[a],n,s,Zt),t=1)}),t&&ct(We[e],void 0,Zt)}}},us=(e,...t)=>(As(()=>e(...ae(t,m))),Bs),gs=(e,t,s,n,a)=>{let o=Ls(e,t,...s);return dt(()=>{const a=Ls(e,t,...s);$(a,o)||(o=a,n(Bs,e,t,...s,o))},me[a?1:0],[e,t],[fs])},hs=()=>et(Z),fs=()=>Ue(Z),Is=e=>Ue(qe(K,m(e))),bs=e=>be(qe(Z,m(e))),ws=e=>Ue(qe(Z,m(e))),Ls=(e,t,s,n=0,a)=>{return ke(e)?Ls(e.tableId,e.cellId,e.descending,e.offset,e.limit):ae(U(se((o=qe(Z,m(e)),r=(e,s)=>[N(t)?s:qe(e,m(t)),s],ae([...o?.entries()??[]],([e,t])=>r(t,e))),([e],[t])=>jt(e,t)*(s?-1:1)),n,N(a)?a:n+a),([,e])=>e);var o,r},vs=(e,t)=>Ue(qe(qe(Z,m(e)),m(t))),Cs=(e,t,s)=>qe(qe(qe(Z,m(e)),m(t)),m(s)),Rs=()=>Ze(ee),Ts=()=>Ue(ee),ps=e=>qe(ee,m(e)),Ss=()=>!Re(Z),Vs=e=>Ce(Z,m(e)),ms=(e,t)=>Ce(qe(K,m(e)),m(t)),ys=(e,t)=>Ce(qe(Z,m(e)),m(t)),Ms=(e,t,s)=>Ce(qe(qe(Z,m(e)),m(t)),m(s)),Es=()=>!Re(ee),ks=e=>Ce(ee,m(e)),Ds=e=>us(()=>(e=>je(e,wt,Kt))(e)?Et(e):0),Hs=e=>us(()=>Ct(e)?Pt(e):0),Js=e=>(X(()=>Mt(Rt(e))),Bs),xs=t=>us(()=>{if((e=je(t,e=>je(e,It)))&&(mt(t),!Re(Z))){const e=hs();Fs(),Ds(e)}}),Ps=e=>us(()=>{if(t=(e=>je(e,It))(e)){const s=Rs();Ws(),zs(),t=!0,yt(e),Hs(s)}}),Fs=()=>us(()=>Et({})),Qs=e=>us(e=>Ce(Z,e)?Nt(e):0,e),Ns=(e,t)=>us((e,t)=>W(qe(Z,e),s=>Ce(s,t)?zt(e,s,t):0),e,t),zs=()=>us(()=>Pt({})),Os=()=>us(()=>{mt({}),e=!1}),Ws=()=>us(()=>{yt({}),t=!1}),As=(e,t)=>{if(-1!=o){js();const s=e();return _s(t),s}},js=()=>(-1!=o&&o++,1==o&&(c[0]?.(),ct(lt)),Bs),_s=e=>(o>0&&(o--,0==o&&(o=1,h=1,$t(1),Re(D)||ss(1),es(1),Re(J)||ns(1),h=0,e?.(Bs)&&(Se(D,(e,t)=>Se(e,(e,s)=>Se(e,([e],n)=>he(Bs,t,s,n,e)))),pe(D),Se(J,([e],t)=>fe(Bs,t,e)),pe(J)),ct(it[0],void 0),o=-1,$t(0),Re(D)||ss(0),es(0),Re(J)||ns(0),c[1]?.(),ct(it[1],void 0),c[2]?.(),o=0,s=Ss(),n=Es(),ne([C,y,M,E,k,D,x,H,J,P],pe))),Bs),Bs={getContent:()=>[hs(),Rs()],getTables:hs,getTableIds:fs,getTable:e=>$e(qe(Z,m(e))),getTableCellIds:Is,getRowCount:bs,getRowIds:ws,getSortedRowIds:Ls,getRow:(e,t)=>Ze(qe(qe(Z,m(e)),m(t))),getCellIds:vs,getCell:Cs,getValues:Rs,getValueIds:Ts,getValue:ps,hasTables:Ss,hasTable:Vs,hasTableCell:ms,hasRow:ys,hasCell:Ms,hasValues:Es,hasValue:ks,getTablesJson:()=>Tt(Z),getValuesJson:()=>Tt(ee),getJson:()=>Tt([Z,ee]),getTablesSchemaJson:()=>Tt(F),getValuesSchemaJson:()=>Tt(O),getSchemaJson:()=>Tt([F,O]),hasTablesSchema:()=>e,hasValuesSchema:()=>t,setContent:e=>us(()=>{const t=_(e)?e():e;bt(t)&&(([e,t])=>{(Oe(e)?Fs:Ds)(e),(Oe(t)?zs:Hs)(t)})(t)}),setTables:Ds,setTable:(e,t)=>us(e=>wt(t,e)?kt(e,t):0,e),setRow:(e,t,s)=>us((e,t)=>Lt(e,t,s)?Dt(e,Qt(e),t,s):0,e,t),addRow:(e,t,s=!0)=>As(()=>{let n;return Lt(e,n,t)&&(e=m(e),Dt(e,Qt(e),n=((e,t)=>{const[s]=qe(G,e);let n;do{n=s(t)}while(Ce(qe(Z,e),n));return n})(e,s?1:0),t)),n}),setPartialRow:(e,t,s)=>us((e,t)=>{if(Lt(e,t,s,1)){const n=Qt(e);Ne(s,(s,a)=>Jt(e,n,t,a,s))}},e,t),setCell:(e,t,s,n)=>us((e,t,s)=>W(vt(e,t,s,_(n)?n(Cs(e,t,s)):n),n=>Jt(e,Qt(e),t,s,n)),e,t,s),setValues:Hs,setPartialValues:e=>us(()=>Ct(e,1)?Ne(e,(e,t)=>Ft(t,e)):0),setValue:(e,t)=>us(e=>W(pt(e,_(t)?t(ps(e)):t),t=>Ft(e,t)),e),applyChanges:e=>us(()=>{Ne(e[0],(e,t)=>N(e)?Qs(t):Ne(e,(e,s)=>N(e)?Ns(t,s):Ne(e,(e,n)=>he(Bs,t,s,n,e)))),Ne(e[1],(e,t)=>fe(Bs,t,e))}),setTablesJson:Js,setValuesJson:e=>(X(()=>xt(Rt(e))),Bs),setJson:e=>us(()=>X(()=>{const[t,s]=Rt(e);Mt(t),xt(s)},()=>Js(e))),setTablesSchema:xs,setValuesSchema:Ps,setSchema:(e,t)=>us(()=>{xs(e),Ps(t)}),delTables:Fs,delTable:Qs,delRow:Ns,delCell:(e,t,s,n)=>us((e,t,s)=>W(qe(Z,e),a=>W(qe(a,t),o=>Ce(o,s)?Ot(e,a,t,o,s,n):0)),e,t,s),delValues:zs,delValue:e=>us(e=>Ce(ee,e)?Wt(e):0,e),delTablesSchema:Os,delValuesSchema:Ws,delSchema:()=>us(()=>{Os(),Ws()}),transaction:As,startTransaction:js,getTransactionChanges:()=>[Ze(D,(e,t)=>-1===qe(C,t)?void 0:Ze(e,(e,s)=>-1===qe(qe(E,t),s)?void 0:Ze(e,([,e])=>e,e=>is(e)),Re,Oe),Re,Oe),Ze(J,([,e])=>e,e=>is(e)),1],getTransactionLog:()=>[!Re(D),!Re(J),et(D,ls,is),et(x),Ze(J,ls,is),Ze(P),Ze(C),$e(E),et(k),Ze(H)],finishTransaction:_s,forEachTable:e=>Se(Z,(t,s)=>e(s,e=>Se(t,(t,s)=>e(s,e=>Ge(t,e))))),forEachTableCell:(e,t)=>Ge(qe(K,m(e)),t),forEachRow:(e,t)=>Se(qe(Z,m(e)),(e,s)=>t(s,t=>Ge(e,t))),forEachCell:(e,t,s)=>Ge(qe(qe(Z,m(e)),m(t)),s),forEachValue:e=>Ge(ee,e),addSortedRowIdsListener:(e,t,s,n,a,o,r)=>ke(e)?gs(e.tableId,e.cellId,[e.descending??!1,e.offset??0,e.limit],t,s):gs(e,t,[s,n,a],o,r),addStartTransactionListener:e=>dt(e,lt),addWillFinishTransactionListener:e=>dt(e,it[0]),addDidFinishTransactionListener:e=>dt(e,it[1]),callListener:e=>(ft(e),Bs),delListener:e=>(ht(e),Bs),getListenerStats:()=>({hasTables:os(te),tables:os(oe),tableIds:os(re),hasTable:os(le),table:os(de),tableCellIds:os(ce),hasTableCell:os(ge,Le),rowCount:os(Ie),rowIds:os(Te),sortedRowIds:os(me),hasRow:os(ye,Le),row:os(Me,Le),cellIds:os(Ee,Le),hasCell:os(De,ve),cell:os(Je,ve),invalidCell:os(xe,ve),hasValues:os(ze),values:os(We),valueIds:os(Ae),hasValue:os(_e),value:os(at),invalidValue:os(Qe),transaction:we(lt)+os(it)}),isMergeable:()=>!1,createStore:cs,addListener:dt,callListeners:ct,setInternalListeners:(e,t,s,n,a)=>c=[e,t,s,n,a]};return Ne({[g+I]:[0,te,[],()=>[Ss()]],[I]:[0,oe],[b]:[0,re],[g+f]:[1,le,[fs],e=>[Vs(...e)]],[f]:[1,de,[fs]],[f+T]:[1,ce,[fs]],[g+f+R]:[2,ge,[fs,Is],e=>[ms(...e)]],[L]:[1,Ie,[fs]],[v]:[1,Te,[fs]],[g+w]:[2,ye,[fs,ws],e=>[ys(...e)]],[w]:[2,Me,[fs,ws]],[T]:[2,Ee,[fs,ws]],[g+R]:[3,De,[fs,ws,vs],e=>[Ms(...e)]],[R]:[3,Je,[fs,ws,vs],e=>as(Cs(...e))],InvalidCell:[3,xe],[g+S]:[0,ze,[],()=>[Es()]],[S]:[0,We],[V]:[0,Ae],[g+p]:[1,_e,[Ts],e=>[ks(...e)]],[p]:[1,at,[Ts],e=>as(ps(e[0]))],InvalidValue:[1,Qe]},([e,t,s,n],a)=>{Bs[u+a+d]=(...a)=>dt(a[e],t[a[e+1]?1:0],e>0?U(a,0,e):void 0,s,n)}),He(Bs)},us={HasTable:1,Table:1,TableCellIds:1,HasTableCell:2,RowCount:1,RowIds:1,SortedRowIds:5,HasRow:2,Row:2,CellIds:2,HasCell:3,Cell:3,HasValue:1,Value:1,InvalidCell:3,InvalidValue:1},gs=(e=t)=>[es(e),es(e)],hs=(e,s)=>{let n=1,a=gs(),o=0,r=0;const l=Be(),i=ot(),[c,g]=At(e,s),h=cs(),f=e=>{const t=n;return n=0,e(),n=t,R},I=(e,s=0)=>{const n={},o={},[[r,l=t,i=0],d]=e,[c,u]=a,[h,f,I]=c;let w=s?i:I,L=l;Qe(r,([e,a=t,o=0],r)=>{const l=Xe(h,r,es),[i,d,c]=l;let u=s?o:c,g=a;Qe(e,(e,t)=>{const[a,o,l]=b(e,Xe(i,t,es),Ae(Ae(n,r,Je),t,Je),s);u^=s?0:Vt(o?yt(t,o):0,yt(t,l)),g=Yt(g,a)}),u^=s?0:Xt(d,a),Zt(l,a,u),w^=s?0:Vt(c?yt(r,c):0,yt(r,l[2])),L=Yt(L,g)}),w^=s?0:Xt(f,l),Zt(c,l,w);const[v]=b(d,u,o,s);return g(Yt(L,v)),[n,o,1]},b=(e,s,n,a)=>{const[o,r=t,l=0]=e,[i,d,c]=s;let u=r,g=a?l:c;return Qe(o,([e,s=t,o=0],r)=>{const l=Xe(i,r,()=>[void 0,t,0]),[,d,c]=l;(!d||s>d)&&(Zt(l,s,a?o:Mt(e,s)),l[0]=e,n[r]=e,g^=a?0:Vt(yt(r,c),yt(r,l[2])),u=Yt(u,s))}),g^=a?0:Xt(d,r),Zt(s,r,g),[u,c,s[2]]},w=K,L=K,v=()=>[ts(a[0],e=>ts(e,e=>ts(e))),ts(a[1])],C=e=>f(()=>h.applyChanges(I(e))),R={getMergeableContent:v,getMergeableContentHashes:()=>[a[0][2],a[1][2]],getMergeableTableHashes:()=>Ze(a[0][0],Kt),getMergeableTableDiff:e=>{const t=$t(a[0][1]),s={};return Ge(a[0][0],(n,[a,o,r])=>Pe(e,n)?r!=e[n]?s[n]=r:0:t[0][n]=ss([a,o],e=>ss(e))),[t,s]},getMergeableRowHashes:e=>{const t={};return Qe(e,(e,s)=>W(qe(a[0][0],s),([n,,a])=>a!=e?Ge(n,(e,[,,n])=>Ae(t,s,Je)[e]=n):0)),t},getMergeableRowDiff:e=>{const t=$t(a[0][1]),s={};return Qe(e,(e,n)=>Ge(qe(a[0][0],n)?.[0],(a,[o,r,l])=>Pe(e,a)?l!==e[a]?Ae(s,n,Je)[a]=l:0:Ae(t[0],n,$t)[0][a]=ss([o,r]))),[t,s]},getMergeableCellHashes:e=>{const t={};return Qe(e,(e,s)=>W(qe(a[0][0],s),([n])=>Qe(e,(e,a)=>W(qe(n,a),([n,,o])=>o!==e?Ge(n,(e,[,,n])=>Ae(Ae(t,s,Je),a,Je)[e]=n):0)))),t},getMergeableCellDiff:e=>{const[[t,s]]=a,n={};return Qe(e,(e,s)=>Qe(e,(e,a)=>W(qe(t,s),([t,o])=>W(qe(t,a),([t,r])=>Ge(t,(t,[l,i,d])=>d!==e[t]?Ae(Ae(n,s,()=>$t(o))[0],a,()=>$t(r))[0][t]=[l,i]:0))))),qt(n,s)},getMergeableValueHashes:()=>Ze(a[1][0],Kt),getMergeableValueDiff:e=>{const[,[t,s]]=a,n=Ze(t,Bt,([,,t],s)=>t==e?.[s]);return qt(n,s)},setMergeableContent:e=>f(()=>(e=>B(e)&&2==q(e)&&ns(e[0],e=>je(e,e=>ns(e,e=>je(e,e=>ns(e,e=>je(e,e=>ns(e,ge),void 0,1)),void 0,1)),void 0,1))&&ns(e[1],e=>je(e,e=>ns(e,ge),void 0,1)))(e)?h.transaction(()=>{h.delTables().delValues(),a=gs(),h.applyChanges(I(e,1))}):0),setDefaultContent:e=>(h.transaction(()=>{o=1,h.setContent(e),o=0}),R),getTransactionMergeableChanges:(e=!1)=>{const[[t,s,n],[o,r,d]]=a,c=e?Gt:qt,u={};Se(l,(e,s)=>W(qe(t,s),([t,n,a])=>{const o={};Se(e,(e,s)=>W(qe(t,s),([t,n,a])=>{const r={};Se(e,e=>{W(qe(t,e),([t,s,n])=>r[e]=c(t,s,n))}),o[s]=c(r,n,a)})),u[s]=c(o,n,a)}));const g={};return Se(i,e=>W(qe(o,e),([t,s,n])=>g[e]=c(t,s,n))),[c(u,s,n),c(g,r,d),1]},applyMergeableChanges:C,merge:e=>{const t=v(),s=e.getMergeableContent();return e.applyMergeableChanges(t),C(s)},hadMutated:()=>{const e=r;return r=0,e}};return h.setInternalListeners(w,L,()=>{pe(l),pe(i)},(e,s,a,i,d)=>{rt(Xe(Xe(l,e,Be),s,ot),a),(n||d)&&(d&&(r=1),I([[{[e]:[{[s]:[{[a]:[i,o?t:c()]}]}]}],[{}],1]))},(e,s,a)=>{rt(i,e),(n||a)&&(a&&(r=1),I([[{}],[{[e]:[s,o?t:c()]}],1]))}),Ne(h,(e,t)=>R[t]=y(t,"set")||y(t,"del")||y(t,"apply")||M(t,"Transaction")||t=="call"+d?(...t)=>(e(...t),R):y(t,u)&&M(t,d)?(...s)=>{const n=us[U(t,3,-8)]??0,a=s[n];return s[n]=(e,...t)=>a(R,...t),e(...s)}:"isMergeable"==t?()=>!0:e),He(R)},fs=Be([["avg",[(e,t)=>oe(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=>J(...e),(e,t)=>J(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:J(t,e)]],["min",[e=>x(...e),(e,t)=>x(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:x(t,e)]],["sum",[e=>oe(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),Is=(e,t,s,n,a,o=!1)=>{if(Re(s))return;const[r,l,i,d]=a;return o||=N(e),Se(n,([s,n])=>{o||(e=N(s)?l?.(e,n,t++):N(n)?i?.(e,s,t--):d?.(e,n,s,t),o||=N(e))}),o?r(Te(s),be(s)):e},bs=dt(e=>{const s=Be(),[n,a,o]=gt(()=>w),[r,l,i,d,c,u,g,,h,f,I,b]=lt(e,G,e=>isNaN(e)||N(e)||!0===e||!1===e||e===t?void 0:1*e,n,a),w={setMetricDefinition:(e,t,n,o,r,l,i)=>{const d=_(n)?[n,r,l,i]:qe(fs,n)??qe(fs,"sum");return h(e,t,(t,n,o,r,l,i)=>{const c=u(e),h=be(r);i||=N(c),t();let f=Is(c,h,r,n,d,i);F(f)||(f=void 0),f!=c&&(g(e,f),a(s,[e],f,c))},it(o,1)),w},delMetricDefinition:e=>(f(e),w),getStore:r,getMetricIds:l,forEachMetric:i,hasMetric:d,getTableId:c,getMetric:u,addMetricIdsListener:I,addMetricListener:(e,t)=>n(t,s,[e]),delListener:e=>(o(e),w),destroy:b,getListenerStats:()=>({metric:we(s)})};return He(w)}),ws=dt(e=>{const s=e.createStore,n=s(),a=s(),o=Be(),r=Be(),l=Be(),{addListener:i,callListeners:g,delListener:h}=a,[I,b,p,S,V,m,y,M,,E,k,D,H,J]=lt(e,()=>[],G,i,g),x=(e,t,...s)=>ne(s,s=>rt(Xe(Xe(o,t,Be),e,ot),s)),P=e=>{W(qe(o,e),e=>{Ge(e,(e,t)=>Se(t,t=>e.delListener(t))),pe(e)}),ne([a,n],t=>t.delTable(e))},F=(e,t,s)=>x(t,e,t.addStartTransactionListener(s.startTransaction),t.addDidFinishTransactionListener(()=>s.finishTransaction())),Q=(s,o,r,l={})=>{const i=A(s);var d;M(s,o),y(s,[r,(d=l,new Map(Ee(d)))]),z(s,i,l),P(s);const[,c]=m(s),u=[],g=[[void 0,[o,void 0,void 0,[],Be()]]],h=[],f=[],I=[];r({select:(e,s)=>{const n=_(e)?[q(u)+t,e]:[N(s)?e:s,t=>t(e,s)];return ie(u,n),{as:e=>n[0]=e}},join:(e,t,s)=>{const n=N(s)||_(t)?void 0:t,a=N(n)?t:s,o=[e,[e,n,_(a)?a:e=>e(a),[],Be()]];return ie(g,o),{as:e=>o[0]=e}},where:(e,t,s)=>ie(h,_(e)?e:N(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,a)=>{const o=[e,[e,_(t)?[t,s,n,a]:qe(fs,t)??[(e,t)=>t]]];return ie(f,o),{as:e=>o[0]=e}},having:(e,t)=>ie(I,_(e)?e:s=>s(e)===t),param:e=>qe(c,e)});const b=Be(u);if(Re(b))return B;const w=Be(g);Ge(w,(e,[,t])=>W(qe(w,t),({3:t})=>N(e)?0:ie(t,e)));const L=Be(f);let v=n;if(Re(L)&&re(I))v=a;else{F(s,v,a);const e=Be();Ge(L,(t,[s,n])=>rt(Xe(e,s,ot),[t,n]));const t=ot();Ge(b,s=>Ce(e,s)?0:rt(t,s));const n=Be(),o=(t,n,o,r)=>W(t,([l,i,d,c])=>{Ge(n,(t,[s])=>{const n=Xe(l,t,Be),a=qe(n,o),i=r?void 0:s;if(a!==i){const s=ot([[a,i]]),r=be(n);Ke(n,o,i),Se(qe(e,t),([e,t])=>{const a=Is(c[e],r,n,s,t);c[e]=N(ue(a))?void 0:a})}}),Re(i)||!Z(I,e=>e(e=>c[e]))?a.delRow(s,d):N(d)?t[2]=a.addRow(s,c):a.setRow(s,d,c)});x(v,s,v.addRowListener(s,null,(a,r,l,i)=>{const d=[],c=[],u=Be(),g=v.hasRow(s,l);let h=!g;Se(t,e=>{const[t,n,a]=i(s,l,e);ie(d,n),ie(c,a),h||=t}),Ge(e,e=>{const[t,,n]=i(s,l,e);(h||t)&&Ke(u,e,[n])}),h&&o(at(n,d,void 0,([,e])=>(Ve(e,l),Re(e))),u,l,1),g&&o(at(n,c,()=>{const e={};return Se(t,t=>e[t]=v.getCell(s,l,t)),[Be(),ot(),void 0,e]},([,e])=>{rt(e,l)}),u,l)}))}F(s,e,v);const C=(t,n,a,r)=>{const l=t=>e.getCell(n,a,t);ne(r,n=>{const[a,,o,r,i]=qe(w,n),d=o?.(l,t),[c,u]=qe(i,t)??[];d!=c&&(N(u)||J(s,u),Ke(i,t,N(d)?void 0:[d,...H(s,1,e.addRowListener(a,d,()=>C(t,a,d,r)))]))}),(t=>{const n=(s,n)=>e.getCell(...N(n)?[o,t,s]:s===o?[o,t,n]:[qe(w,s)?.[0],qe(qe(w,s)?.[4],t)?.[0],n]);v.transaction(()=>Z(h,e=>e(n))?Ge(b,(e,a)=>he(v,s,t,e,a(n,t))):v.delRow(s,t))})(t)},{3:R}=qe(w,void 0);return v.transaction(()=>H(s,1,e.addRowListener(o,null,(t,n,a)=>{e.hasRow(o,a)?C(a,o,a,R):(v.delRow(s,a),Se(w,({4:e})=>W(qe(e,a),([,t])=>{J(s,t),Ke(e,a)})))}))),B},z=(e,t,s)=>{const n=ot([...De(t),...De(s)]);let a=0;Se(n,n=>{const o=xe(s,n);ee(xe(t,n),o)||(a=1,g(l,[e,n],o))}),a&&g(r,[e],s)},O=(e,t,s=0)=>(W(m(e),([n,o])=>{!s&&We(Ze(o),t,ee)||a.transaction(()=>Q(e,V(e),n,t))}),B),A=e=>Ze(m(e)?.[1]),j=(e,t)=>qe(m(e)?.[1],t),B={setQueryDefinition:Q,delQueryDefinition:e=>{const t=A(e);return P(e),E(e),z(e,t,{}),B},getParamValues:A,getParamValue:j,setParamValues:O,setParamValue:(e,t,s)=>(ee(j(e,t),s)||O(e,{...A(e),[t]:s},1),B),getStore:I,getQueryIds:b,forEachQuery:p,hasQuery:S,getTableId:V,addQueryIdsListener:e=>k(()=>e(B)),addParamValuesListener:(e,t)=>i((e,s,n)=>t(B,s,n),r,[e]),addParamValueListener:(e,t,s)=>i((e,t,n,a)=>s(B,t,n,a),l,[e,t]),delListener:e=>(h(e),B),destroy:D,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=a.getListenerStats();return{...n,paramValues:we(r),paramValue:Le(l)}}};return Ne({[f]:[1,1],[f+T]:[0,1],[L]:[0,1],[v]:[0,1],[C]:[0,5],[w]:[1,2],[T]:[0,2],[R]:[1,3]},([e,t],s)=>{ne(e?["get","has","forEach"]:["get"],e=>B[e+c+s]=(...t)=>a[e+s](...t)),B[u+c+s+d]=(...e)=>a[u+s+d](...U(e,0,t),(s,...n)=>e[t](B,...n),!0)}),He(B)}),Ls=dt(e=>{const s=Be(),n=Be(),a=Be(),o=Be(),[r,l,i]=gt(()=>T),[d,c,u,g,h,f,,,I,b,w,L]=lt(e,()=>[Be(),Be(),Be(),Be()],e=>N(e)?void 0:e+t,r,l),v=(e,t,s)=>W(f(e),([n,,a])=>{if(!Ce(a,t)){const o=ot();if(h(e)!=R(e))rt(o,t);else{let e=t;for(;!N(e)&&!Ce(o,e);)rt(o,e),e=qe(n,e)}if(s)return o;Ke(a,t,o)}return qe(a,t)}),C=(e,t)=>W(f(e),([,,e])=>Ke(e,t)),R=e=>qe(s,e),T={setRelationshipDefinition:(e,t,r,i)=>(Ke(s,e,r),I(e,t,(t,s)=>{const r=ot(),i=ot(),d=ot(),[c,u]=f(e);Se(s,([t,s],n)=>{N(t)||(rt(i,t),W(qe(u,t),e=>{Ve(e,n),Re(e)&&Ke(u,t)})),N(s)||(rt(i,s),Ce(u,s)||Ke(u,s,ot()),rt(qe(u,s),n)),rt(r,n),Ke(c,n,s),Ge(qe(o,e),t=>{Ce(v(e,t),n)&&rt(d,t)})}),t(),Se(r,t=>l(n,[e,t])),Se(i,t=>l(a,[e,t])),Se(d,t=>{C(e,t),l(o,[e,t])})},it(i)),T),delRelationshipDefinition:e=>(Ke(s,e),b(e),T),getStore:d,getRelationshipIds:c,forEachRelationship:t=>u(s=>t(s,t=>e.forEachRow(h(s),t))),hasRelationship:g,getLocalTableId:h,getRemoteTableId:R,getRemoteRowId:(e,t)=>qe(f(e)?.[0],t),getLocalRowIds:(e,t)=>Te(qe(f(e)?.[1],t)),getLinkedRowIds:(e,t)=>N(f(e))?[t]:Te(v(e,t,!0)),addRelationshipIdsListener:w,addRemoteRowIdListener:(e,t,s)=>r(s,n,[e,t]),addLocalRowIdsListener:(e,t,s)=>r(s,a,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(v(e,t),r(s,o,[e,t])),delListener:e=>(C(...i(e)??[]),T),destroy:L,getListenerStats:()=>({remoteRowId:Le(n),localRowIds:Le(a),linkedRowIds:Le(o)})};return He(T)});export{Vt as addOrRemoveHash,ht as createCheckpoints,_t as createIndexes,hs as createMergeableStore,bs as createMetrics,ws as createQueries,Ls as createRelationships,cs as createStore,jt as defaultSorter,Et as getCellHash,kt as getCellInRowHash,St as getHash,At as getHlcFunctions,Dt as getRowHash,Ht as getRowInTableHash,Jt as getTableHash,xt as getTableInTablesHash,Pt as getTablesHash,vt as getUniqueId,Mt as getValueHash,yt as getValueInValuesHash,mt as getValuesHash};
Binary file
package/omni/index.js CHANGED
@@ -276,31 +276,32 @@ const objValidate = (obj, validateChild, onInvalidObj, emptyIsValid = 0) => {
276
276
  return emptyIsValid ? true : !objIsEmpty(obj);
277
277
  };
278
278
 
279
- const mapNew = (entries) => new Map(entries);
280
- const mapKeys = (map) => [...(map?.keys() ?? [])];
281
- const mapGet = (map, key) => map?.get(key);
282
- const mapForEach = (map, cb) =>
283
- collForEach(map, (value, key) => cb(key, value));
279
+ const map = Map;
280
+ const mapNew = (entries) => new map(entries);
281
+ const mapKeys = (map2) => [...(map2?.keys() ?? [])];
282
+ const mapGet = (map2, key) => map2?.get(key);
283
+ const mapForEach = (map2, cb) =>
284
+ collForEach(map2, (value, key) => cb(key, value));
284
285
  const mapMap = (coll, cb) =>
285
286
  arrayMap([...(coll?.entries() ?? [])], ([key, value]) => cb(value, key));
286
- const mapSet = (map, key, value) =>
287
- isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
288
- const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
289
- if (!collHas(map, key)) {
290
- mapSet(map, key, getDefaultValue());
287
+ const mapSet = (map2, key, value) =>
288
+ isUndefined(value) ? (collDel(map2, key), map2) : map2?.set(key, value);
289
+ const mapEnsure = (map2, key, getDefaultValue, hadExistingValue) => {
290
+ if (!collHas(map2, key)) {
291
+ mapSet(map2, key, getDefaultValue());
291
292
  } else {
292
- hadExistingValue?.(mapGet(map, key));
293
+ hadExistingValue?.(mapGet(map2, key));
293
294
  }
294
- return mapGet(map, key);
295
+ return mapGet(map2, key);
295
296
  };
296
- const mapMatch = (map, obj, set, del = mapSet) => {
297
- objMap(obj, (value, id) => set(map, id, value));
298
- mapForEach(map, (id) => (objHas(obj, id) ? 0 : del(map, id)));
299
- return map;
297
+ const mapMatch = (map2, obj, set, del = mapSet) => {
298
+ objMap(obj, (value, id) => set(map2, id, value));
299
+ mapForEach(map2, (id) => (objHas(obj, id) ? 0 : del(map2, id)));
300
+ return map2;
300
301
  };
301
- const mapToObj = (map, valueMapper, excludeMapValue, excludeObjValue) => {
302
+ const mapToObj = (map2, valueMapper, excludeMapValue, excludeObjValue) => {
302
303
  const obj = {};
303
- collForEach(map, (mapValue, id) => {
304
+ collForEach(map2, (mapValue, id) => {
304
305
  if (!excludeMapValue?.(mapValue, id)) {
305
306
  const objValue = valueMapper ? valueMapper(mapValue, id) : mapValue;
306
307
  if (!excludeObjValue?.(objValue)) {
@@ -310,27 +311,27 @@ const mapToObj = (map, valueMapper, excludeMapValue, excludeObjValue) => {
310
311
  });
311
312
  return obj;
312
313
  };
313
- const mapToObj2 = (map, valueMapper, excludeMapValue) =>
314
+ const mapToObj2 = (map2, valueMapper, excludeMapValue) =>
314
315
  mapToObj(
315
- map,
316
+ map2,
316
317
  (childMap) => mapToObj(childMap, valueMapper, excludeMapValue),
317
318
  collIsEmpty,
318
319
  objIsEmpty,
319
320
  );
320
- const mapToObj3 = (map, valueMapper, excludeMapValue) =>
321
+ const mapToObj3 = (map2, valueMapper, excludeMapValue) =>
321
322
  mapToObj(
322
- map,
323
+ map2,
323
324
  (childMap) => mapToObj2(childMap, valueMapper, excludeMapValue),
324
325
  collIsEmpty,
325
326
  objIsEmpty,
326
327
  );
327
- const mapClone = (map, mapValue) => {
328
- const map2 = mapNew();
329
- collForEach(map, (value, key) => map2.set(key, mapValue?.(value) ?? value));
330
- return map2;
328
+ const mapClone = (map2, mapValue) => {
329
+ const map22 = mapNew();
330
+ collForEach(map2, (value, key) => map22.set(key, mapValue?.(value) ?? value));
331
+ return map22;
331
332
  };
332
- const mapClone2 = (map) => mapClone(map, mapClone);
333
- const mapClone3 = (map) => mapClone(map, mapClone2);
333
+ const mapClone2 = (map2) => mapClone(map2, mapClone);
334
+ const mapClone3 = (map2) => mapClone(map2, mapClone2);
334
335
  const visitTree = (node, path, ensureLeaf, pruneLeaf, p = 0) =>
335
336
  ifNotUndefined(
336
337
  (ensureLeaf ? mapEnsure : mapGet)(
@@ -1299,6 +1300,7 @@ const createStore = () => {
1299
1300
  let hadValues = false;
1300
1301
  let transactions = 0;
1301
1302
  let internalListeners = [];
1303
+ let mutating = 0;
1302
1304
  const changedTableIds = mapNew();
1303
1305
  const changedTableCellIds = mapNew();
1304
1306
  const changedRowCount = mapNew();
@@ -1703,13 +1705,13 @@ const createStore = () => {
1703
1705
  cellId,
1704
1706
  () => [oldCell, 0],
1705
1707
  )[1] = newCell;
1706
- internalListeners[3]?.(tableId, rowId, cellId, newCell);
1708
+ internalListeners[3]?.(tableId, rowId, cellId, newCell, mutating);
1707
1709
  };
1708
1710
  const valueIdsChanged = (valueId, addedOrRemoved) =>
1709
1711
  idsChanged(changedValueIds, valueId, addedOrRemoved);
1710
1712
  const valueChanged = (valueId, oldValue, newValue) => {
1711
1713
  mapEnsure(changedValues, valueId, () => [oldValue, 0])[1] = newValue;
1712
- internalListeners[4]?.(valueId, newValue);
1714
+ internalListeners[4]?.(valueId, newValue, mutating);
1713
1715
  };
1714
1716
  const cellInvalid = (tableId, rowId, cellId, invalidCell, defaultedCell) => {
1715
1717
  arrayPush(
@@ -1784,14 +1786,11 @@ const createStore = () => {
1784
1786
  }
1785
1787
  };
1786
1788
  const callTabularListenersForChanges = (mutator) => {
1787
- const hasTablesNow = hasTables();
1788
- if (hasTablesNow != hadTables) {
1789
- callListeners(hasTablesListeners[mutator], void 0, hasTablesNow);
1790
- }
1791
- const emptySortedRowIdListeners = collIsEmpty(
1789
+ const hasHasTablesListeners = !collIsEmpty(hasTablesListeners[mutator]);
1790
+ const hasSortedRowIdListeners = !collIsEmpty(
1792
1791
  sortedRowIdsListeners[mutator],
1793
1792
  );
1794
- const emptyIdAndHasListeners =
1793
+ const hasIdOrHasListeners = !(
1795
1794
  collIsEmpty(cellIdsListeners[mutator]) &&
1796
1795
  collIsEmpty(hasCellListeners[mutator]) &&
1797
1796
  collIsEmpty(rowIdsListeners[mutator]) &&
@@ -1799,15 +1798,17 @@ const createStore = () => {
1799
1798
  collIsEmpty(tableCellIdsListeners[mutator]) &&
1800
1799
  collIsEmpty(hasTableCellListeners[mutator]) &&
1801
1800
  collIsEmpty(rowCountListeners[mutator]) &&
1802
- emptySortedRowIdListeners &&
1801
+ !hasSortedRowIdListeners &&
1803
1802
  collIsEmpty(tableIdsListeners[mutator]) &&
1804
- collIsEmpty(hasTableListeners[mutator]);
1805
- const emptyOtherListeners =
1803
+ collIsEmpty(hasTableListeners[mutator])
1804
+ );
1805
+ const hasOtherListeners = !(
1806
1806
  collIsEmpty(cellListeners[mutator]) &&
1807
1807
  collIsEmpty(rowListeners[mutator]) &&
1808
1808
  collIsEmpty(tableListeners[mutator]) &&
1809
- collIsEmpty(tablesListeners[mutator]);
1810
- if (!emptyIdAndHasListeners || !emptyOtherListeners) {
1809
+ collIsEmpty(tablesListeners[mutator])
1810
+ );
1811
+ if (hasHasTablesListeners || hasIdOrHasListeners || hasOtherListeners) {
1811
1812
  const changes = mutator
1812
1813
  ? [
1813
1814
  mapClone(changedTableIds),
@@ -1815,7 +1816,9 @@ const createStore = () => {
1815
1816
  mapClone(changedRowCount),
1816
1817
  mapClone2(changedRowIds),
1817
1818
  mapClone3(changedCellIds),
1818
- mapClone3(changedCells),
1819
+ mapClone(changedCells, (map) =>
1820
+ mapClone(map, (map2) => mapClone(map2, pairClone)),
1821
+ ),
1819
1822
  ]
1820
1823
  : [
1821
1824
  changedTableIds,
@@ -1825,7 +1828,13 @@ const createStore = () => {
1825
1828
  changedCellIds,
1826
1829
  changedCells,
1827
1830
  ];
1828
- if (!emptyIdAndHasListeners) {
1831
+ if (hasHasTablesListeners) {
1832
+ const hasTablesNow = hasTables();
1833
+ if (hasTablesNow != hadTables) {
1834
+ callListeners(hasTablesListeners[mutator], void 0, hasTablesNow);
1835
+ }
1836
+ }
1837
+ if (hasIdOrHasListeners) {
1829
1838
  callIdsAndHasListenersIfChanged(
1830
1839
  changes[0],
1831
1840
  tableIdsListeners[mutator],
@@ -1857,13 +1866,13 @@ const createStore = () => {
1857
1866
  hasRowListeners[mutator],
1858
1867
  [tableId],
1859
1868
  ) &&
1860
- !emptySortedRowIdListeners
1869
+ hasSortedRowIdListeners
1861
1870
  ) {
1862
1871
  callListeners(sortedRowIdsListeners[mutator], [tableId, null]);
1863
1872
  setAdd(calledSortableTableIds, tableId);
1864
1873
  }
1865
1874
  });
1866
- if (!emptySortedRowIdListeners) {
1875
+ if (hasSortedRowIdListeners) {
1867
1876
  collForEach(changes[5], (rows, tableId) => {
1868
1877
  if (!collHas(calledSortableTableIds, tableId)) {
1869
1878
  const sortableCellIds = setNew();
@@ -1894,7 +1903,7 @@ const createStore = () => {
1894
1903
  ),
1895
1904
  );
1896
1905
  }
1897
- if (!emptyOtherListeners) {
1906
+ if (hasOtherListeners) {
1898
1907
  let tablesChanged;
1899
1908
  collForEach(changes[5], (rows, tableId) => {
1900
1909
  let tableChanged;
@@ -1931,28 +1940,31 @@ const createStore = () => {
1931
1940
  }
1932
1941
  };
1933
1942
  const callValuesListenersForChanges = (mutator) => {
1934
- const hasValuesNow = hasValues();
1935
- if (hasValuesNow != hadValues) {
1936
- callListeners(hasValuesListeners[mutator], void 0, hasValuesNow);
1937
- }
1938
- const emptyIdAndHasListeners =
1939
- collIsEmpty(valueIdsListeners[mutator]) &&
1940
- collIsEmpty(hasValueListeners[mutator]);
1941
- const emptyOtherListeners =
1942
- collIsEmpty(valueListeners[mutator]) &&
1943
- collIsEmpty(valuesListeners[mutator]);
1944
- if (!emptyIdAndHasListeners || !emptyOtherListeners) {
1943
+ const hasHasValuesListeners = !collIsEmpty(hasValuesListeners[mutator]);
1944
+ const hasIdOrHasListeners =
1945
+ !collIsEmpty(valueIdsListeners[mutator]) ||
1946
+ !collIsEmpty(hasValueListeners[mutator]);
1947
+ const hasOtherListeners =
1948
+ !collIsEmpty(valueListeners[mutator]) ||
1949
+ !collIsEmpty(valuesListeners[mutator]);
1950
+ if (hasHasValuesListeners || hasIdOrHasListeners || hasOtherListeners) {
1945
1951
  const changes = mutator
1946
- ? [mapClone(changedValueIds), mapClone(changedValues)]
1952
+ ? [mapClone(changedValueIds), mapClone(changedValues, pairClone)]
1947
1953
  : [changedValueIds, changedValues];
1948
- if (!emptyIdAndHasListeners) {
1954
+ if (hasHasValuesListeners) {
1955
+ const hasValuesNow = hasValues();
1956
+ if (hasValuesNow != hadValues) {
1957
+ callListeners(hasValuesListeners[mutator], void 0, hasValuesNow);
1958
+ }
1959
+ }
1960
+ if (hasIdOrHasListeners) {
1949
1961
  callIdsAndHasListenersIfChanged(
1950
1962
  changes[0],
1951
1963
  valueIdsListeners[mutator],
1952
1964
  hasValueListeners[mutator],
1953
1965
  );
1954
1966
  }
1955
- if (!emptyOtherListeners) {
1967
+ if (hasOtherListeners) {
1956
1968
  let valuesChanged;
1957
1969
  collForEach(changes[1], ([oldValue, newValue], valueId) => {
1958
1970
  if (newValue !== oldValue) {
@@ -2349,6 +2361,7 @@ const createStore = () => {
2349
2361
  transactions--;
2350
2362
  if (transactions == 0) {
2351
2363
  transactions = 1;
2364
+ mutating = 1;
2352
2365
  callInvalidCellListeners(1);
2353
2366
  if (!collIsEmpty(changedCells)) {
2354
2367
  callTabularListenersForChanges(1);
@@ -2357,6 +2370,7 @@ const createStore = () => {
2357
2370
  if (!collIsEmpty(changedValues)) {
2358
2371
  callValuesListenersForChanges(1);
2359
2372
  }
2373
+ mutating = 0;
2360
2374
  if (doRollback?.(store)) {
2361
2375
  collForEach(changedCells, (table, tableId) =>
2362
2376
  collForEach(table, (row, rowId) =>
@@ -2723,6 +2737,7 @@ const createMergeableStore = (uniqueId, getNow) => {
2723
2737
  let listeningToRawStoreChanges = 1;
2724
2738
  let contentStampMap = newContentStampMap();
2725
2739
  let defaultingContent = 0;
2740
+ let mutated = 0;
2726
2741
  const touchedCells = mapNew();
2727
2742
  const touchedValues = setNew();
2728
2743
  const [getNextHlc, seenHlc] = getHlcFunctions(uniqueId, getNow);
@@ -2849,12 +2864,15 @@ const createMergeableStore = (uniqueId, getNow) => {
2849
2864
  collClear(touchedCells);
2850
2865
  collClear(touchedValues);
2851
2866
  };
2852
- const cellChanged = (tableId, rowId, cellId, newCell) => {
2867
+ const cellChanged = (tableId, rowId, cellId, newCell, mutating) => {
2853
2868
  setAdd(
2854
2869
  mapEnsure(mapEnsure(touchedCells, tableId, mapNew), rowId, setNew),
2855
2870
  cellId,
2856
2871
  );
2857
- if (listeningToRawStoreChanges) {
2872
+ if (listeningToRawStoreChanges || mutating) {
2873
+ if (mutating) {
2874
+ mutated = 1;
2875
+ }
2858
2876
  mergeContentOrChanges([
2859
2877
  [
2860
2878
  {
@@ -2877,9 +2895,12 @@ const createMergeableStore = (uniqueId, getNow) => {
2877
2895
  ]);
2878
2896
  }
2879
2897
  };
2880
- const valueChanged = (valueId, newValue) => {
2898
+ const valueChanged = (valueId, newValue, mutating) => {
2881
2899
  setAdd(touchedValues, valueId);
2882
- if (listeningToRawStoreChanges) {
2900
+ if (listeningToRawStoreChanges || mutating) {
2901
+ if (mutating) {
2902
+ mutated = 1;
2903
+ }
2883
2904
  mergeContentOrChanges([
2884
2905
  [{}],
2885
2906
  [
@@ -3097,6 +3118,11 @@ const createMergeableStore = (uniqueId, getNow) => {
3097
3118
  mergeableStore2.applyMergeableChanges(mergeableChanges);
3098
3119
  return applyMergeableChanges(mergeableChanges2);
3099
3120
  };
3121
+ const hadMutated = () => {
3122
+ const result = mutated;
3123
+ mutated = 0;
3124
+ return result;
3125
+ };
3100
3126
  const mergeableStore = {
3101
3127
  getMergeableContent,
3102
3128
  getMergeableContentHashes,
@@ -3113,6 +3139,8 @@ const createMergeableStore = (uniqueId, getNow) => {
3113
3139
  getTransactionMergeableChanges,
3114
3140
  applyMergeableChanges,
3115
3141
  merge,
3142
+ // only used internally by other modules
3143
+ hadMutated,
3116
3144
  };
3117
3145
  store.setInternalListeners(
3118
3146
  preStartTransaction,
@@ -3416,6 +3444,11 @@ const createCustomPersister = (
3416
3444
  ? store.applyChanges
3417
3445
  : store.setContent)(contentOrChanges);
3418
3446
  };
3447
+ const saveAfterMutated = async () => {
3448
+ if (isAutoSaving() && store.hadMutated?.()) {
3449
+ await save();
3450
+ }
3451
+ };
3419
3452
  const load = async (initialContent) => {
3420
3453
  /* istanbul ignore else */
3421
3454
  if (status != 2 /* Saving */) {
@@ -3440,6 +3473,7 @@ const createCustomPersister = (
3440
3473
  },
3441
3474
  );
3442
3475
  setStatus(0 /* Idle */);
3476
+ await saveAfterMutated();
3443
3477
  });
3444
3478
  }
3445
3479
  return persister;
@@ -3458,6 +3492,7 @@ const createCustomPersister = (
3458
3492
  loads++;
3459
3493
  setContentOrChanges(changes ?? content);
3460
3494
  setStatus(0 /* Idle */);
3495
+ await saveAfterMutated();
3461
3496
  }
3462
3497
  } else {
3463
3498
  await load();