tinybase 4.0.0-beta.4 → 4.0.0-beta.5.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 (269) hide show
  1. package/lib/cjs/persisters/persister-automerge.cjs +1 -0
  2. package/lib/cjs/persisters/persister-automerge.cjs.gz +0 -0
  3. package/lib/cjs/persisters/persister-browser.cjs +1 -0
  4. package/lib/cjs/persisters/persister-browser.cjs.gz +0 -0
  5. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs +1 -0
  6. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  7. package/lib/cjs/persisters/persister-file.cjs +1 -0
  8. package/lib/cjs/persisters/persister-file.cjs.gz +0 -0
  9. package/lib/cjs/persisters/persister-remote.cjs +1 -0
  10. package/lib/cjs/persisters/persister-remote.cjs.gz +0 -0
  11. package/lib/cjs/persisters/persister-sqlite-wasm.cjs +1 -0
  12. package/lib/cjs/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  13. package/lib/cjs/persisters/persister-sqlite3.cjs +1 -0
  14. package/lib/cjs/persisters/persister-sqlite3.cjs.gz +0 -0
  15. package/lib/cjs/persisters/persister-yjs.cjs +1 -0
  16. package/lib/cjs/persisters/persister-yjs.cjs.gz +0 -0
  17. package/lib/cjs/persisters.cjs +1 -1
  18. package/lib/cjs/persisters.cjs.gz +0 -0
  19. package/lib/cjs/store.cjs +1 -1
  20. package/lib/cjs/store.cjs.gz +0 -0
  21. package/lib/cjs/tinybase.cjs +1 -1
  22. package/lib/cjs/tinybase.cjs.gz +0 -0
  23. package/lib/cjs/tools.cjs +1 -1
  24. package/lib/cjs/tools.cjs.gz +0 -0
  25. package/lib/cjs/ui-react.cjs +1 -1
  26. package/lib/cjs/ui-react.cjs.gz +0 -0
  27. package/lib/cjs-es6/persisters/persister-automerge.cjs +1 -0
  28. package/lib/cjs-es6/persisters/persister-automerge.cjs.gz +0 -0
  29. package/lib/cjs-es6/persisters/persister-browser.cjs +1 -0
  30. package/lib/cjs-es6/persisters/persister-browser.cjs.gz +0 -0
  31. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs +1 -0
  32. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  33. package/lib/cjs-es6/persisters/persister-file.cjs +1 -0
  34. package/lib/cjs-es6/persisters/persister-file.cjs.gz +0 -0
  35. package/lib/cjs-es6/persisters/persister-remote.cjs +1 -0
  36. package/lib/cjs-es6/persisters/persister-remote.cjs.gz +0 -0
  37. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs +1 -0
  38. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  39. package/lib/cjs-es6/persisters/persister-sqlite3.cjs +1 -0
  40. package/lib/cjs-es6/persisters/persister-sqlite3.cjs.gz +0 -0
  41. package/lib/cjs-es6/persisters/persister-yjs.cjs +1 -0
  42. package/lib/cjs-es6/persisters/persister-yjs.cjs.gz +0 -0
  43. package/lib/cjs-es6/persisters.cjs +1 -1
  44. package/lib/cjs-es6/persisters.cjs.gz +0 -0
  45. package/lib/cjs-es6/store.cjs +1 -1
  46. package/lib/cjs-es6/store.cjs.gz +0 -0
  47. package/lib/cjs-es6/tinybase.cjs +1 -1
  48. package/lib/cjs-es6/tinybase.cjs.gz +0 -0
  49. package/lib/cjs-es6/tools.cjs +1 -1
  50. package/lib/cjs-es6/tools.cjs.gz +0 -0
  51. package/lib/cjs-es6/ui-react.cjs +1 -1
  52. package/lib/cjs-es6/ui-react.cjs.gz +0 -0
  53. package/lib/debug/{persister-automerge.js → persisters/persister-automerge.js} +58 -31
  54. package/lib/debug/{persister-browser.js → persisters/persister-browser.js} +49 -20
  55. package/lib/debug/persisters/persister-cr-sqlite-wasm.js +665 -0
  56. package/lib/debug/{persister-file.js → persisters/persister-file.js} +51 -25
  57. package/lib/debug/{persister-remote.js → persisters/persister-remote.js} +48 -19
  58. package/lib/debug/persisters/persister-sqlite-wasm.js +673 -0
  59. package/lib/debug/persisters/persister-sqlite3.js +676 -0
  60. package/lib/debug/{persister-yjs.js → persisters/persister-yjs.js} +49 -20
  61. package/lib/debug/persisters.js +47 -18
  62. package/lib/debug/store.js +79 -29
  63. package/lib/debug/tinybase.js +123 -46
  64. package/lib/debug/tools.js +121 -27
  65. package/lib/debug/ui-react.js +24 -0
  66. package/lib/es6/persisters/persister-automerge.js +1 -0
  67. package/lib/es6/persisters/persister-automerge.js.gz +0 -0
  68. package/lib/es6/persisters/persister-browser.js +1 -0
  69. package/lib/es6/persisters/persister-browser.js.gz +0 -0
  70. package/lib/es6/persisters/persister-cr-sqlite-wasm.js +1 -0
  71. package/lib/es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  72. package/lib/es6/persisters/persister-file.js +1 -0
  73. package/lib/es6/persisters/persister-file.js.gz +0 -0
  74. package/lib/es6/persisters/persister-remote.js +1 -0
  75. package/lib/es6/persisters/persister-remote.js.gz +0 -0
  76. package/lib/es6/persisters/persister-sqlite-wasm.js +1 -0
  77. package/lib/es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  78. package/lib/es6/persisters/persister-sqlite3.js +1 -0
  79. package/lib/es6/persisters/persister-sqlite3.js.gz +0 -0
  80. package/lib/es6/persisters/persister-yjs.js +1 -0
  81. package/lib/es6/persisters/persister-yjs.js.gz +0 -0
  82. package/lib/es6/persisters.js +1 -1
  83. package/lib/es6/persisters.js.gz +0 -0
  84. package/lib/es6/store.js +1 -1
  85. package/lib/es6/store.js.gz +0 -0
  86. package/lib/es6/tinybase.js +1 -1
  87. package/lib/es6/tinybase.js.gz +0 -0
  88. package/lib/es6/tools.js +1 -1
  89. package/lib/es6/tools.js.gz +0 -0
  90. package/lib/es6/ui-react.js +1 -1
  91. package/lib/es6/ui-react.js.gz +0 -0
  92. package/lib/persisters/persister-automerge.js +1 -0
  93. package/lib/persisters/persister-automerge.js.gz +0 -0
  94. package/lib/persisters/persister-browser.js +1 -0
  95. package/lib/persisters/persister-browser.js.gz +0 -0
  96. package/lib/persisters/persister-cr-sqlite-wasm.js +1 -0
  97. package/lib/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  98. package/lib/persisters/persister-file.js +1 -0
  99. package/lib/persisters/persister-file.js.gz +0 -0
  100. package/lib/persisters/persister-remote.js +1 -0
  101. package/lib/persisters/persister-remote.js.gz +0 -0
  102. package/lib/persisters/persister-sqlite-wasm.js +1 -0
  103. package/lib/persisters/persister-sqlite-wasm.js.gz +0 -0
  104. package/lib/persisters/persister-sqlite3.js +1 -0
  105. package/lib/persisters/persister-sqlite3.js.gz +0 -0
  106. package/lib/persisters/persister-yjs.js +1 -0
  107. package/lib/persisters/persister-yjs.js.gz +0 -0
  108. package/lib/persisters.js +1 -1
  109. package/lib/persisters.js.gz +0 -0
  110. package/lib/store.js +1 -1
  111. package/lib/store.js.gz +0 -0
  112. package/lib/tinybase.js +1 -1
  113. package/lib/tinybase.js.gz +0 -0
  114. package/lib/tools.js +1 -1
  115. package/lib/tools.js.gz +0 -0
  116. package/lib/types/checkpoints.d.ts +0 -27
  117. package/lib/types/common.d.ts +0 -9
  118. package/lib/types/indexes.d.ts +0 -26
  119. package/lib/types/metrics.d.ts +0 -23
  120. package/lib/types/{persister-automerge.d.ts → persisters/persister-automerge.d.ts} +4 -6
  121. package/lib/types/{persister-browser.d.ts → persisters/persister-browser.d.ts} +2 -5
  122. package/lib/types/persisters/persister-cr-sqlite-wasm.d.ts +95 -0
  123. package/lib/types/{persister-file.d.ts → persisters/persister-file.d.ts} +3 -5
  124. package/lib/types/{persister-remote.d.ts → persisters/persister-remote.d.ts} +2 -4
  125. package/lib/types/persisters/persister-sqlite-wasm.d.ts +102 -0
  126. package/lib/types/persisters/persister-sqlite3.d.ts +109 -0
  127. package/lib/types/{persister-yjs.d.ts → persisters/persister-yjs.d.ts} +4 -6
  128. package/lib/types/persisters.d.ts +517 -27
  129. package/lib/types/queries.d.ts +52 -127
  130. package/lib/types/relationships.d.ts +0 -26
  131. package/lib/types/store.d.ts +347 -196
  132. package/lib/types/tinybase.d.ts +0 -1
  133. package/lib/types/tools.d.ts +15 -28
  134. package/lib/types/ui-react.d.ts +196 -181
  135. package/lib/types/with-schemas/checkpoints.d.ts +5 -32
  136. package/lib/types/with-schemas/common.d.ts +0 -9
  137. package/lib/types/with-schemas/indexes.d.ts +9 -35
  138. package/lib/types/with-schemas/metrics.d.ts +9 -32
  139. package/lib/types/with-schemas/{persister-automerge.d.ts → persisters/persister-automerge.d.ts} +4 -6
  140. package/lib/types/with-schemas/{persister-browser.d.ts → persisters/persister-browser.d.ts} +2 -5
  141. package/lib/types/with-schemas/persisters/persister-cr-sqlite-wasm.d.ts +105 -0
  142. package/lib/types/with-schemas/{persister-file.d.ts → persisters/persister-file.d.ts} +3 -5
  143. package/lib/types/with-schemas/{persister-remote.d.ts → persisters/persister-remote.d.ts} +2 -4
  144. package/lib/types/with-schemas/persisters/persister-sqlite-wasm.d.ts +113 -0
  145. package/lib/types/with-schemas/persisters/persister-sqlite3.d.ts +119 -0
  146. package/lib/types/with-schemas/{persister-yjs.d.ts → persisters/persister-yjs.d.ts} +4 -6
  147. package/lib/types/with-schemas/persisters.d.ts +534 -29
  148. package/lib/types/with-schemas/queries.d.ts +61 -224
  149. package/lib/types/with-schemas/relationships.d.ts +9 -35
  150. package/lib/types/with-schemas/store.d.ts +488 -239
  151. package/lib/types/with-schemas/tinybase.d.ts +0 -1
  152. package/lib/types/with-schemas/tools.d.ts +19 -32
  153. package/lib/types/with-schemas/ui-react.d.ts +221 -186
  154. package/lib/ui-react.js +1 -1
  155. package/lib/ui-react.js.gz +0 -0
  156. package/lib/umd/persisters/persister-automerge.js +1 -0
  157. package/lib/umd/persisters/persister-automerge.js.gz +0 -0
  158. package/lib/umd/persisters/persister-browser.js +1 -0
  159. package/lib/umd/persisters/persister-browser.js.gz +0 -0
  160. package/lib/umd/persisters/persister-cr-sqlite-wasm.js +1 -0
  161. package/lib/umd/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  162. package/lib/umd/persisters/persister-file.js +1 -0
  163. package/lib/umd/persisters/persister-file.js.gz +0 -0
  164. package/lib/umd/persisters/persister-remote.js +1 -0
  165. package/lib/umd/persisters/persister-remote.js.gz +0 -0
  166. package/lib/umd/persisters/persister-sqlite-wasm.js +1 -0
  167. package/lib/umd/persisters/persister-sqlite-wasm.js.gz +0 -0
  168. package/lib/umd/persisters/persister-sqlite3.js +1 -0
  169. package/lib/umd/persisters/persister-sqlite3.js.gz +0 -0
  170. package/lib/umd/persisters/persister-yjs.js +1 -0
  171. package/lib/umd/persisters/persister-yjs.js.gz +0 -0
  172. package/lib/umd/persisters.js +1 -1
  173. package/lib/umd/persisters.js.gz +0 -0
  174. package/lib/umd/store.js +1 -1
  175. package/lib/umd/store.js.gz +0 -0
  176. package/lib/umd/tinybase.js +1 -1
  177. package/lib/umd/tinybase.js.gz +0 -0
  178. package/lib/umd/tools.js +1 -1
  179. package/lib/umd/tools.js.gz +0 -0
  180. package/lib/umd/ui-react.js +1 -1
  181. package/lib/umd/ui-react.js.gz +0 -0
  182. package/lib/umd-es6/persisters/persister-automerge.js +1 -0
  183. package/lib/umd-es6/persisters/persister-automerge.js.gz +0 -0
  184. package/lib/umd-es6/persisters/persister-browser.js +1 -0
  185. package/lib/umd-es6/persisters/persister-browser.js.gz +0 -0
  186. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js +1 -0
  187. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  188. package/lib/umd-es6/persisters/persister-file.js +1 -0
  189. package/lib/umd-es6/persisters/persister-file.js.gz +0 -0
  190. package/lib/umd-es6/persisters/persister-remote.js +1 -0
  191. package/lib/umd-es6/persisters/persister-remote.js.gz +0 -0
  192. package/lib/umd-es6/persisters/persister-sqlite-wasm.js +1 -0
  193. package/lib/umd-es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  194. package/lib/umd-es6/persisters/persister-sqlite3.js +1 -0
  195. package/lib/umd-es6/persisters/persister-sqlite3.js.gz +0 -0
  196. package/lib/umd-es6/persisters/persister-yjs.js +1 -0
  197. package/lib/umd-es6/persisters/persister-yjs.js.gz +0 -0
  198. package/lib/umd-es6/persisters.js +1 -1
  199. package/lib/umd-es6/persisters.js.gz +0 -0
  200. package/lib/umd-es6/store.js +1 -1
  201. package/lib/umd-es6/store.js.gz +0 -0
  202. package/lib/umd-es6/tinybase.js +1 -1
  203. package/lib/umd-es6/tinybase.js.gz +0 -0
  204. package/lib/umd-es6/tools.js +1 -1
  205. package/lib/umd-es6/tools.js.gz +0 -0
  206. package/lib/umd-es6/ui-react.js +1 -1
  207. package/lib/umd-es6/ui-react.js.gz +0 -0
  208. package/package.json +39 -22
  209. package/readme.md +3 -3
  210. package/lib/cjs/persister-automerge.cjs +0 -1
  211. package/lib/cjs/persister-automerge.cjs.gz +0 -0
  212. package/lib/cjs/persister-browser.cjs +0 -1
  213. package/lib/cjs/persister-browser.cjs.gz +0 -0
  214. package/lib/cjs/persister-file.cjs +0 -1
  215. package/lib/cjs/persister-file.cjs.gz +0 -0
  216. package/lib/cjs/persister-remote.cjs +0 -1
  217. package/lib/cjs/persister-remote.cjs.gz +0 -0
  218. package/lib/cjs/persister-yjs.cjs +0 -1
  219. package/lib/cjs/persister-yjs.cjs.gz +0 -0
  220. package/lib/cjs-es6/persister-automerge.cjs +0 -1
  221. package/lib/cjs-es6/persister-automerge.cjs.gz +0 -0
  222. package/lib/cjs-es6/persister-browser.cjs +0 -1
  223. package/lib/cjs-es6/persister-browser.cjs.gz +0 -0
  224. package/lib/cjs-es6/persister-file.cjs +0 -1
  225. package/lib/cjs-es6/persister-file.cjs.gz +0 -0
  226. package/lib/cjs-es6/persister-remote.cjs +0 -1
  227. package/lib/cjs-es6/persister-remote.cjs.gz +0 -0
  228. package/lib/cjs-es6/persister-yjs.cjs +0 -1
  229. package/lib/cjs-es6/persister-yjs.cjs.gz +0 -0
  230. package/lib/es6/persister-automerge.js +0 -1
  231. package/lib/es6/persister-automerge.js.gz +0 -0
  232. package/lib/es6/persister-browser.js +0 -1
  233. package/lib/es6/persister-browser.js.gz +0 -0
  234. package/lib/es6/persister-file.js +0 -1
  235. package/lib/es6/persister-file.js.gz +0 -0
  236. package/lib/es6/persister-remote.js +0 -1
  237. package/lib/es6/persister-remote.js.gz +0 -0
  238. package/lib/es6/persister-yjs.js +0 -1
  239. package/lib/es6/persister-yjs.js.gz +0 -0
  240. package/lib/persister-automerge.js +0 -1
  241. package/lib/persister-automerge.js.gz +0 -0
  242. package/lib/persister-browser.js +0 -1
  243. package/lib/persister-browser.js.gz +0 -0
  244. package/lib/persister-file.js +0 -1
  245. package/lib/persister-file.js.gz +0 -0
  246. package/lib/persister-remote.js +0 -1
  247. package/lib/persister-remote.js.gz +0 -0
  248. package/lib/persister-yjs.js +0 -1
  249. package/lib/persister-yjs.js.gz +0 -0
  250. package/lib/umd/persister-automerge.js +0 -1
  251. package/lib/umd/persister-automerge.js.gz +0 -0
  252. package/lib/umd/persister-browser.js +0 -1
  253. package/lib/umd/persister-browser.js.gz +0 -0
  254. package/lib/umd/persister-file.js +0 -1
  255. package/lib/umd/persister-file.js.gz +0 -0
  256. package/lib/umd/persister-remote.js +0 -1
  257. package/lib/umd/persister-remote.js.gz +0 -0
  258. package/lib/umd/persister-yjs.js +0 -1
  259. package/lib/umd/persister-yjs.js.gz +0 -0
  260. package/lib/umd-es6/persister-automerge.js +0 -1
  261. package/lib/umd-es6/persister-automerge.js.gz +0 -0
  262. package/lib/umd-es6/persister-browser.js +0 -1
  263. package/lib/umd-es6/persister-browser.js.gz +0 -0
  264. package/lib/umd-es6/persister-file.js +0 -1
  265. package/lib/umd-es6/persister-file.js.gz +0 -0
  266. package/lib/umd-es6/persister-remote.js +0 -1
  267. package/lib/umd-es6/persister-remote.js.gz +0 -0
  268. package/lib/umd-es6/persister-yjs.js +0 -1
  269. package/lib/umd-es6/persister-yjs.js.gz +0 -0
package/lib/store.js CHANGED
@@ -1 +1 @@
1
- const e=e=>typeof e,t="",s=e(t),n=e(!0),l=e(0),a=e(e),r="type",o="default",c="Ids",i="Table",d=i+"s",u=i+c,h="Row"+c,g="Cell",f=g+c,T="Value",V=T+"s",v=T+c,b=e=>t+e,S=(e,t)=>e.forEach(t),C=(e,t)=>e.map(t),w=e=>e.length,I=(e,t,s)=>e.slice(t,s),R=(e,...t)=>e.push(...t),y=e=>JSON.stringify(e,((e,t)=>{return p(t,Map)?(s=(e,[t,s])=>(e[t]=s,e),n={},[...t].reduce(s,n)):t;var s,n})),J=JSON.parse,m=isFinite,p=(e,t)=>e instanceof t,L=e=>null==e,E=(e,t,s)=>L(e)?s?.():t(e),F=e=>e==s||e==n,z=t=>e(t)==a,O=Object,k=O.keys,A=O.isFrozen,M=O.freeze,N=e=>p(e,O)&&e.constructor==O,P=(e,t)=>!L(((e,t)=>E(e,(e=>e[t])))(e,t)),j=(e,t)=>delete e[t],x=(e,t)=>C(O.entries(e),(([e,s])=>t(s,e))),D=e=>{return N(e)&&(t=k(e),0==w(t));var t},W=(e,t)=>e?.has(t)??!1,$=e=>L(e)||0==(e=>e.size)(e),q=e=>e.clear(),B=(e,t)=>e?.forEach(t),G=(e,t)=>e?.delete(t),H=e=>new Map(e),K=e=>[...e?.keys()??[]],Q=(e,t)=>e?.get(t),U=(e,t)=>B(e,((e,s)=>t(s,e))),X=(e,t,s)=>L(s)?(G(e,t),e):e?.set(t,s),Y=(e,t,s)=>(W(e,t)||X(e,t,s()),Q(e,t)),Z=(e,t,s)=>{const n={};return B(e,((e,l)=>{const a=t?t(e,l):e;!s?.(a,e)&&(n[l]=a)})),n},_=(e,t,s)=>Z(e,(e=>Z(e,t,s)),D),ee=(e,t,s)=>Z(e,(e=>_(e,t,s)),D),te=(e,t)=>{const s=H();return B(e,((e,n)=>s.set(n,t?.(e)??e))),s},se=e=>te(e,te),ne=e=>te(e,se),le=(e,t,s,n,l=0)=>E((s?Y:Q)(e,t[l],l>w(t)-2?s:H),(a=>{if(l>w(t)-2)return n?.(a)&&X(e,t[l]),a;const r=le(a,t,s,n,l+1);return $(a)&&X(e,t[l]),r})),ae=e=>new Set(Array.isArray(e)||L(e)?e:[e]),re=(e,t)=>e?.add(t),oe=/^\d+$/,ce=()=>{const e=[];let s=0;return[n=>(n?e.shift():null)??t+s++,t=>{oe.test(t)&&w(e)<1e3&&R(e,t)}]},ie=e=>[e,e],de=()=>[H(),H()],ue=e=>[...e],he=([e,t])=>e===t,ge=t=>{const s=e(t);return F(s)||s==l&&m(t)?s:void 0},fe=(e,t,s,n,l)=>L(l)?e.delCell(t,s,n,!0):e.setCell(t,s,n,l),Te=(e,t,s)=>L(s)?e.delValue(t):e.setValue(t,s),Ve=(e,t,s,n=X)=>(x(t,((t,n)=>s(e,n,t))),U(e,(s=>P(t,s)?0:n(e,s))),e),ve=(e,t,s)=>L(e)||!N(e)||D(e)||A(e)?(s?.(),!1):(x(e,((s,n)=>{t(s,n)||j(e,n)})),!D(e)),be=(e,t,s)=>X(e,t,Q(e,t)==-s?void 0:s),Se=()=>{let e,s,n=!1,a=!1,c=0;const m=H(),p=H(),O=H(),k=H(),A=H(),N=H(),oe=H(),Ce=H(),we=H(),Ie=H(),Re=H(),ye=H(),Je=ae(),me=H(),pe=H(),Le=H(),Ee=de(),Fe=de(),ze=de(),Oe=de(),ke=de(),Ae=de(),Me=de(),Ne=de(),Pe=de(),je=de(),xe=de(),De=de(),We=de(),$e=H(),qe=de(),[Be,Ge,He,Ke]=(e=>{let s;const[n,l]=ce(),a=H();return[(e,l,r,o=[],c=(()=>[]))=>{s??=rs;const i=n(1);return X(a,i,[e,l,r,o,c]),re(le(l,r??[t],ae),i),i},(e,n,...l)=>S(((e,s=[t])=>{const n=[],l=(e,t)=>t==w(s)?R(n,e):null===s[t]?B(e,(e=>l(e,t+1))):S([s[t],null],(s=>l(Q(e,s),t+1)));return l(e,0),n})(e,n),(e=>B(e,(e=>Q(a,e)[0](s,...n??[],...l))))),e=>E(Q(a,e),(([,s,n])=>(le(s,n??[t],void 0,(t=>(G(t,e),$(t)?1:0))),X(a,e),l(e),n))),e=>E(Q(a,e),(([e,,t=[],n,l])=>{const a=(...r)=>{const o=w(r);o==w(t)?e(s,...r,...l(r)):L(t[o])?S(n[o]?.(...r)??[],(e=>a(...r,e))):a(...r,t[o])};a()}))]})(),Qe=e=>{if(!ve(e,((e,t)=>[r,o].includes(t))))return!1;const t=e[r];return!(!F(t)&&t!=l||(ge(e[o])!=t&&j(e,o),0))},Ue=(t,s)=>(!e||W(we,s)||Jt(s))&&ve(t,((e,t)=>Xe(s,t,e)),(()=>Jt(s))),Xe=(e,t,s,n)=>ve(n?s:et(s,e,t),((n,l)=>E(Ye(e,t,l,n),(e=>(s[l]=e,!0)),(()=>!1))),(()=>Jt(e,t))),Ye=(t,s,n,l)=>e?E(Q(Q(we,t),n),(e=>ge(l)!=e[r]?Jt(t,s,n,l,e[o]):l),(()=>Jt(t,s,n,l))):L(ge(l))?Jt(t,s,n,l):l,Ze=(e,t)=>ve(t?e:tt(e),((t,s)=>E(_e(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>mt())),_e=(e,t)=>s?E(Q(Re,e),(s=>ge(t)!=s[r]?mt(e,t,s[o]):t),(()=>mt(e,t))):L(ge(t))?mt(e,t):t,et=(e,t,s)=>(E(Q(Ie,t),(([n,l])=>{B(n,((t,s)=>{P(e,s)||(e[s]=t)})),B(l,(n=>{P(e,n)||Jt(t,s,n)}))})),e),tt=e=>(s&&(B(ye,((t,s)=>{P(e,s)||(e[s]=t)})),B(Je,(t=>{P(e,t)||mt(t)}))),e),st=e=>Ve(we,e,((e,t,s)=>{const n=H(),l=ae();Ve(Y(we,t,H),s,((e,t,s)=>{X(e,t,s),E(s[o],(e=>X(n,t,e)),(()=>re(l,t)))})),X(Ie,t,[n,l])}),((e,t)=>{X(we,t),X(Ie,t)})),nt=e=>Ve(Re,e,((e,t,s)=>{X(Re,t,s),E(s[o],(e=>X(ye,t,e)),(()=>re(Je,t)))}),((e,t)=>{X(Re,t),X(ye,t),G(Je,t)})),lt=e=>D(e)?Yt():Ht(e),at=e=>Ve(pe,e,((e,t,s)=>rt(t,s)),((e,t)=>Tt(t))),rt=(e,t)=>Ve(Y(pe,e,(()=>(St(e,1),H()))),t,((t,s,n)=>ot(e,t,s,n)),((t,s)=>Vt(e,t,s))),ot=(e,t,s,n,l)=>Ve(Y(t,s,(()=>(Ct(e,s,1),H()))),n,((t,n,l)=>ct(e,s,t,n,l)),((n,a)=>vt(e,t,s,n,a,l))),ct=(e,t,s,n,l)=>{W(s,n)||wt(e,t,n,1);const a=Q(s,n);l!==a&&(It(e,t,n,a,l),X(s,n,l))},it=(e,t,s,n,l)=>E(Q(t,s),(t=>ct(e,s,t,n,l)),(()=>ot(e,t,s,et({[n]:l},e,s)))),dt=e=>D(e)?es():Kt(e),ut=e=>Ve(Le,e,((e,t,s)=>ht(t,s)),((e,t)=>bt(t))),ht=(e,t)=>{W(Le,e)||Rt(e,1);const s=Q(Le,e);t!==s&&(yt(e,s,t),X(Le,e,t))},gt=(e,t)=>{const[s]=Y(me,e,ce),n=s(t);return W(Q(pe,e),n)?gt(e,t):n},ft=e=>Q(pe,e)??rt(e,{}),Tt=e=>rt(e,{}),Vt=(e,t,s)=>{const[,n]=Y(me,e,ce);n(s),ot(e,t,s,{},!0)},vt=(e,t,s,n,l,a)=>{const r=Q(Q(Ie,e)?.[0],l);if(!L(r)&&!a)return ct(e,s,n,l,r);const o=t=>{It(e,s,t,Q(n,t)),wt(e,s,t,-1),X(n,t)};L(r)?o(l):U(n,o),$(n)&&(Ct(e,s,-1),$(X(t,s))&&(St(e,-1),X(pe,e),X(me,e)))},bt=e=>{const t=Q(ye,e);if(!L(t))return ht(e,t);yt(e,Q(Le,e)),Rt(e,-1),X(Le,e)},St=(e,t)=>be(m,e,t),Ct=(e,t,s)=>be(Y(p,e,H),t,s),wt=(e,t,s,n)=>be(Y(Y(O,e,H),t,H),s,n),It=(e,t,s,n,l)=>Y(Y(Y(k,e,H),t,H),s,(()=>[n,0]))[1]=l,Rt=(e,t)=>be(A,e,t),yt=(e,t,s)=>Y(N,e,(()=>[t,0]))[1]=s,Jt=(e,t,s,n,l)=>(R(Y(Y(Y(oe,e,H),t,H),s,(()=>[])),n),l),mt=(e,t,s)=>(R(Y(Ce,e,(()=>[])),t),s),pt=(e,t,s)=>E(Q(Q(Q(k,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...ie($t(e,t,s))])),Lt=e=>E(Q(N,e),(([e,t])=>[!0,e,t]),(()=>[!1,...ie(Gt(e))])),Et=e=>$(oe)||$(Pe[e])?0:B(e?ne(oe):oe,((t,s)=>B(t,((t,n)=>B(t,((t,l)=>Ge(Pe[e],[s,n,l],t))))))),Ft=e=>$(Ce)||$(je[e])?0:B(e?te(Ce):Ce,((t,s)=>Ge(je[e],[s],t))),zt=(e,t,s)=>{if(!$(t))return Ge(e,s),1},Ot=e=>{const t=$(ke[e]),s=$(Me[e])&&$(Oe[e])&&t&&$(Fe[e]),n=$(Ne[e])&&$(Ae[e])&&$(ze[e])&&$(Ee[e]);if(!s||!n){const l=e?[te(m),se(p),ne(O),ne(k)]:[m,p,O,k];if(!s){B(l[2],((t,s)=>B(t,((t,n)=>zt(Me[e],t,[s,n])))));const s=ae();B(l[1],((n,l)=>{zt(Oe[e],n,[l])&&!t&&(Ge(ke[e],[l,null]),re(s,l))})),t||B(l[3],((t,n)=>{if(!W(s,n)){const s=ae();B(t,(e=>B(e,(([t,n],l)=>n!==t?re(s,l):G(e,l))))),B(s,(t=>Ge(ke[e],[n,t])))}})),zt(Fe[e],l[0])}if(!n){let t;B(l[3],((s,n)=>{let l;B(s,((s,a)=>{let r;B(s,(([s,o],c)=>{o!==s&&(Ge(Ne[e],[n,a,c],o,s,pt),t=l=r=1)})),r&&Ge(Ae[e],[n,a],pt)})),l&&Ge(ze[e],[n],pt)})),t&&Ge(Ee[e],void 0,pt)}}},kt=e=>{const t=$(De[e]),s=$(We[e])&&$(xe[e]);if(!t||!s){const n=e?[te(A),te(N)]:[A,N];if(t||zt(De[e],n[0]),!s){let t;B(n[1],(([s,n],l)=>{n!==s&&(Ge(We[e],[l],n,s,Lt),t=1)})),t&&Ge(xe[e],void 0,Lt)}}},At=(e,...t)=>(ns((()=>e(...C(t,b)))),rs),Mt=()=>[Z(k,((e,t)=>-1===Q(m,t)?null:Z(e,((e,s)=>-1===Q(Q(p,t),s)?null:Z(e,(([,e])=>e??null),((e,t)=>he(t)))),D)),D),Z(N,(([,e])=>e??null),((e,t)=>he(t)))],Nt=()=>({cellsTouched:n,valuesTouched:a,changedCells:ee(k,ue,he),invalidCells:ee(oe),changedValues:Z(N,ue,he),invalidValues:Z(Ce),changedTableIds:Z(m),changedRowIds:_(p),changedCellIds:ee(O),changedValueIds:Z(A)}),Pt=()=>ee(pe),jt=()=>K(pe),xt=e=>K(Q(pe,b(e))),Dt=(e,t,s,n=0,l)=>{return C(I((r=Q(pe,b(e)),o=(e,s)=>[L(t)?s:Q(e,b(t)),s],a=([e],[t])=>(e<t?-1:1)*(s?-1:1),C([...r?.entries()??[]],(([e,t])=>o(t,e))).sort(a)),n,L(l)?l:n+l),(([,e])=>e));var a,r,o},Wt=(e,t)=>K(Q(Q(pe,b(e)),b(t))),$t=(e,t,s)=>Q(Q(Q(pe,b(e)),b(t)),b(s)),qt=()=>Z(Le),Bt=()=>K(Le),Gt=e=>Q(Le,b(e)),Ht=e=>At((()=>(e=>ve(e,Ue,Jt))(e)?at(e):0)),Kt=e=>At((()=>Ze(e)?ut(e):0)),Qt=e=>{try{lt(J(e))}catch{}return rs},Ut=t=>At((()=>{if((e=ve(t,(e=>ve(e,Qe))))&&(st(t),!$(pe))){const e=Pt();Yt(),Ht(e)}})),Xt=e=>At((()=>{if(s=(e=>ve(e,Qe))(e)){const t=qt();ss(),es(),s=!0,nt(e),Kt(t)}})),Yt=()=>At((()=>at({}))),Zt=e=>At((e=>W(pe,e)?Tt(e):0),e),_t=(e,t)=>At(((e,t)=>E(Q(pe,e),(s=>W(s,t)?Vt(e,s,t):0))),e,t),es=()=>At((()=>ut({}))),ts=()=>At((()=>{st({}),e=!1})),ss=()=>At((()=>{nt({}),s=!1})),ns=(e,t)=>{if(-1!=c){ls();const s=e();return as(t),s}},ls=()=>(-1!=c&&c++,1==c&&Ge($e,void 0,Mt,Nt),rs),as=e=>(c>0&&(c--,0==c&&(n=!$(k),a=!$(N),c=1,Et(1),n&&Ot(1),Ft(1),a&&kt(1),e?.(Mt,Nt)&&(B(k,((e,t)=>B(e,((e,s)=>B(e,(([e],n)=>fe(rs,t,s,n,e))))))),B(N,(([e],t)=>Te(rs,t,e))),n=a=!1),Ge(qe[0],void 0,Mt,Nt),c=-1,Et(0),n&&Ot(0),Ft(0),a&&kt(0),Ge(qe[1],void 0,Mt,Nt),c=0,n=a=!1,S([m,p,O,k,oe,A,N,Ce],q))),rs),rs={getContent:()=>[Pt(),qt()],getTables:Pt,getTableIds:jt,getTable:e=>_(Q(pe,b(e))),getRowIds:xt,getSortedRowIds:Dt,getRow:(e,t)=>Z(Q(Q(pe,b(e)),b(t))),getCellIds:Wt,getCell:$t,getValues:qt,getValueIds:Bt,getValue:Gt,hasTables:()=>!$(pe),hasTable:e=>W(pe,b(e)),hasRow:(e,t)=>W(Q(pe,b(e)),b(t)),hasCell:(e,t,s)=>W(Q(Q(pe,b(e)),b(t)),b(s)),hasValues:()=>!$(Le),hasValue:e=>W(Le,b(e)),getTablesJson:()=>y(pe),getValuesJson:()=>y(Le),getJson:()=>y([pe,Le]),getTablesSchemaJson:()=>y(we),getValuesSchemaJson:()=>y(Re),getSchemaJson:()=>y([we,Re]),setContent:([e,t])=>At((()=>{Ht(e),Kt(t)})),setTables:Ht,setTable:(e,t)=>At((e=>Ue(t,e)?rt(e,t):0),e),setRow:(e,t,s)=>At(((e,t)=>Xe(e,t,s)?ot(e,ft(e),t,s):0),e,t),addRow:(e,t,s=!0)=>ns((()=>{let n;return Xe(e,n,t)&&(e=b(e),ot(e,ft(e),n=gt(e,s?1:0),t)),n})),setPartialRow:(e,t,s)=>At(((e,t)=>{if(Xe(e,t,s,1)){const n=ft(e);x(s,((s,l)=>it(e,n,t,l,s)))}}),e,t),setCell:(e,t,s,n)=>At(((e,t,s)=>E(Ye(e,t,s,z(n)?n($t(e,t,s)):n),(n=>it(e,ft(e),t,s,n)))),e,t,s),setValues:Kt,setPartialValues:e=>At((()=>Ze(e,1)?x(e,((e,t)=>ht(t,e))):0)),setValue:(e,t)=>At((e=>E(_e(e,z(t)?t(Gt(e)):t),(t=>ht(e,t)))),e),setTransactionChanges:e=>At((()=>{x(e[0],((e,t)=>L(e)?Zt(t):x(e,((e,s)=>L(e)?_t(t,s):x(e,((e,n)=>fe(rs,t,s,n,e))))))),x(e[1],((e,t)=>Te(rs,t,e)))})),setTablesJson:Qt,setValuesJson:e=>{try{dt(J(e))}catch{}return rs},setJson:e=>{try{const[t,s]=J(e);lt(t),dt(s)}catch{Qt(e)}return rs},setTablesSchema:Ut,setValuesSchema:Xt,setSchema:(e,t)=>At((()=>{Ut(e),Xt(t)})),delTables:Yt,delTable:Zt,delRow:_t,delCell:(e,t,s,n)=>At(((e,t,s)=>E(Q(pe,e),(l=>E(Q(l,t),(a=>W(a,s)?vt(e,l,t,a,s,n):0))))),e,t,s),delValues:es,delValue:e=>At((e=>W(Le,e)?bt(e):0),e),delTablesSchema:ts,delValuesSchema:ss,delSchema:()=>At((()=>{ts(),ss()})),transaction:ns,startTransaction:ls,finishTransaction:as,forEachTable:e=>B(pe,((t,s)=>e(s,(e=>B(t,((t,s)=>e(s,(e=>U(t,e))))))))),forEachRow:(e,t)=>B(Q(pe,b(e)),((e,s)=>t(s,(t=>U(e,t))))),forEachCell:(e,t,s)=>U(Q(Q(pe,b(e)),b(t)),s),forEachValue:e=>U(Le,e),addSortedRowIdsListener:(e,t,s,n,l,a,r)=>{let o=Dt(e,t,s,n,l);return Be((()=>{const r=Dt(e,t,s,n,l);var c,i,d;i=o,w(c=r)===w(i)&&(d=(e,t)=>i[t]===e,c.every(d))||(o=r,a(rs,e,t,s,n,l,o))}),ke[r?1:0],[e,t],[jt])},addStartTransactionListener:e=>Be(e,$e),addWillFinishTransactionListener:e=>Be(e,qe[0]),addDidFinishTransactionListener:e=>Be(e,qe[1]),callListener:e=>(Ke(e),rs),delListener:e=>(He(e),rs),getListenerStats:()=>({}),createStore:Se};return x({[d]:[0,Ee],[u]:[0,Fe],[i]:[1,ze,[jt]],[h]:[1,Oe,[jt]],Row:[2,Ae,[jt,xt]],[f]:[2,Me,[jt,xt]],[g]:[3,Ne,[jt,xt,Wt],e=>ie($t(...e))],InvalidCell:[3,Pe],[V]:[0,xe],[v]:[0,De],[T]:[1,We,[Bt],e=>ie(Gt(e[0]))],InvalidValue:[1,je]},(([e,t,s,n],l)=>{rs["add"+l+"Listener"]=(...l)=>Be(l[e],t[l[e+1]?1:0],e>0?I(l,0,e):void 0,s,n)})),M(rs)};export{Se as createStore};
1
+ const e=e=>typeof e,t="",s=e(t),l=e(!0),n=e(0),a=e(e),r="type",o="default",c="Ids",i="Table",d=i+"s",u=i+c,h="Row"+c,g="Cell",f=g+c,T="Value",V=T+"s",b=T+c,C=e=>t+e,v=(e,t)=>e.forEach(t),S=(e,t)=>e.map(t),w=e=>e.length,I=(e,t,s)=>e.slice(t,s),R=(e,...t)=>e.push(...t),y=e=>JSON.stringify(e,((e,t)=>{return p(t,Map)?(s=(e,[t,s])=>(e[t]=s,e),l={},[...t].reduce(s,l)):t;var s,l})),J=JSON.parse,m=isFinite,p=(e,t)=>e instanceof t,L=e=>null==e,E=(e,t,s)=>L(e)?s?.():t(e),F=e=>e==s||e==l,z=t=>e(t)==a,O=Object,k=O.keys,A=O.isFrozen,M=O.freeze,N=e=>p(e,O)&&e.constructor==O,P=(e,t)=>!L(((e,t)=>E(e,(e=>e[t])))(e,t)),j=(e,t)=>(delete e[t],e),x=(e,t)=>S(O.entries(e),(([e,s])=>t(s,e))),D=e=>N(e)&&0==(e=>w(k(e)))(e),W=(e,t)=>e?.has(t)??!1,$=e=>L(e)||0==(e=>e.size)(e),q=e=>e.clear(),B=(e,t)=>e?.forEach(t),G=(e,t)=>e?.delete(t),H=e=>new Map(e),K=e=>[...e?.keys()??[]],Q=(e,t)=>e?.get(t),U=(e,t)=>B(e,((e,s)=>t(s,e))),X=(e,t,s)=>L(s)?(G(e,t),e):e?.set(t,s),Y=(e,t,s)=>(W(e,t)||X(e,t,s()),Q(e,t)),Z=(e,t,s,l=X)=>(x(t,((t,l)=>s(e,l,t))),U(e,(s=>P(t,s)?0:l(e,s))),e),_=(e,t,s)=>{const l={};return B(e,((e,n)=>{const a=t?t(e,n):e;!s?.(a,e)&&(l[n]=a)})),l},ee=(e,t,s)=>_(e,(e=>_(e,t,s)),D),te=(e,t,s)=>_(e,(e=>ee(e,t,s)),D),se=(e,t)=>{const s=H();return B(e,((e,l)=>s.set(l,t?.(e)??e))),s},le=e=>se(e,se),ne=e=>se(e,le),ae=(e,t,s,l,n=0)=>E((s?Y:Q)(e,t[n],n>w(t)-2?s:H),(a=>{if(n>w(t)-2)return l?.(a)&&X(e,t[n]),a;const r=ae(a,t,s,l,n+1);return $(a)&&X(e,t[n]),r})),re=e=>new Set(Array.isArray(e)||L(e)?e:[e]),oe=(e,t)=>e?.add(t),ce=/^\d+$/,ie=()=>{const e=[];let s=0;return[l=>(l?e.shift():null)??t+s++,t=>{ce.test(t)&&w(e)<1e3&&R(e,t)}]},de=e=>[e,e],ue=()=>[H(),H()],he=e=>[...e],ge=([e,t])=>e===t,fe=t=>{const s=e(t);return F(s)||s==n&&m(t)?s:void 0},Te=(e,t,s,l,n)=>L(n)?e.delCell(t,s,l,!0):e.setCell(t,s,l,n),Ve=(e,t,s)=>L(s)?e.delValue(t):e.setValue(t,s),be=(e,t,s)=>L(e)||!N(e)||D(e)||A(e)?(s?.(),!1):(x(e,((s,l)=>{t(s,l)||j(e,l)})),!D(e)),Ce=(e,t,s)=>X(e,t,Q(e,t)==-s?void 0:s),ve=()=>{let e,s,l=!1,a=!1,c=0;const m=H(),p=H(),O=H(),k=H(),A=H(),N=H(),ce=H(),Se=H(),we=H(),Ie=H(),Re=H(),ye=H(),Je=H(),me=re(),pe=H(),Le=H(),Ee=H(),Fe=H(),ze=ue(),Oe=ue(),ke=ue(),Ae=ue(),Me=ue(),Ne=ue(),Pe=ue(),je=ue(),xe=ue(),De=ue(),We=ue(),$e=ue(),qe=ue(),Be=ue(),Ge=H(),He=ue(),[Ke,Qe,Ue,Xe]=(e=>{let s;const[l,n]=ie(),a=H();return[(e,n,r,o=[],c=(()=>[]))=>{s??=is;const i=l(1);return X(a,i,[e,n,r,o,c]),oe(ae(n,r??[t],re),i),i},(e,l,...n)=>v(((e,s=[t])=>{const l=[],n=(e,t)=>t==w(s)?R(l,e):null===s[t]?B(e,(e=>n(e,t+1))):v([s[t],null],(s=>n(Q(e,s),t+1)));return n(e,0),l})(e,l),(e=>B(e,(e=>Q(a,e)[0](s,...l??[],...n))))),e=>E(Q(a,e),(([,s,l])=>(ae(s,l??[t],void 0,(t=>(G(t,e),$(t)?1:0))),X(a,e),n(e),l))),e=>E(Q(a,e),(([e,,t=[],l,n])=>{const a=(...r)=>{const o=w(r);o==w(t)?e(s,...r,...n(r)):L(t[o])?v(l[o]?.(...r)??[],(e=>a(...r,e))):a(...r,t[o])};a()}))]})(),Ye=e=>{if(!be(e,((e,t)=>[r,o].includes(t))))return!1;const t=e[r];return!(!F(t)&&t!=n||(fe(e[o])!=t&&j(e,o),0))},Ze=(t,s)=>(!e||W(Ie,s)||Lt(s))&&be(t,((e,t)=>_e(s,t,e)),(()=>Lt(s))),_e=(e,t,s,l)=>be(l?s:lt(s,e,t),((l,n)=>E(et(e,t,n,l),(e=>(s[n]=e,!0)),(()=>!1))),(()=>Lt(e,t))),et=(t,s,l,n)=>e?E(Q(Q(Ie,t),l),(e=>fe(n)!=e[r]?Lt(t,s,l,n,e[o]):n),(()=>Lt(t,s,l,n))):L(fe(n))?Lt(t,s,l,n):n,tt=(e,t)=>be(t?e:nt(e),((t,s)=>E(st(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>Et())),st=(e,t)=>s?E(Q(ye,e),(s=>fe(t)!=s[r]?Et(e,t,s[o]):t),(()=>Et(e,t))):L(fe(t))?Et(e,t):t,lt=(e,t,s)=>(E(Q(Re,t),(([l,n])=>{B(l,((t,s)=>{P(e,s)||(e[s]=t)})),B(n,(l=>{P(e,l)||Lt(t,s,l)}))})),e),nt=e=>(s&&(B(Je,((t,s)=>{P(e,s)||(e[s]=t)})),B(me,(t=>{P(e,t)||Et(t)}))),e),at=e=>Z(Ie,e,((e,t,s)=>{const l=H(),n=re();Z(Y(Ie,t,H),s,((e,t,s)=>{X(e,t,s),E(s[o],(e=>X(l,t,e)),(()=>oe(n,t)))})),X(Re,t,[l,n])}),((e,t)=>{X(Ie,t),X(Re,t)})),rt=e=>Z(ye,e,((e,t,s)=>{X(ye,t,s),E(s[o],(e=>X(Je,t,e)),(()=>oe(me,t)))}),((e,t)=>{X(ye,t),X(Je,t),G(me,t)})),ot=e=>D(e)?es():Ut(e),ct=e=>Z(Ee,e,((e,t,s)=>it(t,s)),((e,t)=>Ct(t))),it=(e,t)=>Z(Y(Ee,e,(()=>(It(e,1),X(pe,e,ie()),X(Le,e,H()),H()))),t,((t,s,l)=>dt(e,t,s,l)),((t,s)=>vt(e,t,s))),dt=(e,t,s,l,n)=>Z(Y(t,s,(()=>(Rt(e,s,1),H()))),l,((t,l,n)=>ut(e,s,t,l,n)),((l,a)=>St(e,t,s,l,a,n))),ut=(e,t,s,l,n)=>{W(s,l)||yt(e,t,l,1);const a=Q(s,l);n!==a&&(Jt(e,t,l,a,n),X(s,l,n))},ht=(e,t,s,l,n)=>E(Q(t,s),(t=>ut(e,s,t,l,n)),(()=>dt(e,t,s,lt({[l]:n},e,s)))),gt=e=>D(e)?ls():Xt(e),ft=e=>Z(Fe,e,((e,t,s)=>Tt(t,s)),((e,t)=>wt(t))),Tt=(e,t)=>{W(Fe,e)||mt(e,1);const s=Q(Fe,e);t!==s&&(pt(e,s,t),X(Fe,e,t))},Vt=(e,t)=>{const[s]=Q(pe,e),l=s(t);return W(Q(Ee,e),l)?Vt(e,t):l},bt=e=>Q(Ee,e)??it(e,{}),Ct=e=>it(e,{}),vt=(e,t,s)=>{const[,l]=Q(pe,e);l(s),dt(e,t,s,{},!0)},St=(e,t,s,l,n,a)=>{const r=Q(Q(Re,e)?.[0],n);if(!L(r)&&!a)return ut(e,s,l,n,r);const o=t=>{Jt(e,s,t,Q(l,t)),yt(e,s,t,-1),X(l,t)};L(r)?o(n):U(l,o),$(l)&&(Rt(e,s,-1),$(X(t,s))&&(It(e,-1),X(Ee,e),X(pe,e),X(Le,e)))},wt=e=>{const t=Q(Je,e);if(!L(t))return Tt(e,t);pt(e,Q(Fe,e)),mt(e,-1),X(Fe,e)},It=(e,t)=>Ce(m,e,t),Rt=(e,t,s)=>Ce(Y(O,e,H),t,s),yt=(e,t,s,l)=>{const n=Q(Le,e),a=Q(n,s)??0;(0==a&&1==l||1==a&&-1==l)&&Ce(Y(p,e,H),s,l),X(n,s,a!=-l?a+l:null),Ce(Y(Y(k,e,H),t,H),s,l)},Jt=(e,t,s,l,n)=>Y(Y(Y(A,e,H),t,H),s,(()=>[l,0]))[1]=n,mt=(e,t)=>Ce(N,e,t),pt=(e,t,s)=>Y(ce,e,(()=>[t,0]))[1]=s,Lt=(e,t,s,l,n)=>(R(Y(Y(Y(Se,e,H),t,H),s,(()=>[])),l),n),Et=(e,t,s)=>(R(Y(we,e,(()=>[])),t),s),Ft=(e,t,s)=>E(Q(Q(Q(A,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...de(Gt(e,t,s))])),zt=e=>E(Q(ce,e),(([e,t])=>[!0,e,t]),(()=>[!1,...de(Qt(e))])),Ot=e=>$(Se)||$(De[e])?0:B(e?ne(Se):Se,((t,s)=>B(t,((t,l)=>B(t,((t,n)=>Qe(De[e],[s,l,n],t))))))),kt=e=>$(we)||$(We[e])?0:B(e?se(we):we,((t,s)=>Qe(We[e],[s],t))),At=(e,t,s)=>{if(!$(t))return Qe(e,s,(()=>_(t))),1},Mt=e=>{const t=$(Ne[e]),s=$(je[e])&&$(Ae[e])&&$(Me[e])&&t&&$(Oe[e]),l=$(xe[e])&&$(Pe[e])&&$(ke[e])&&$(ze[e]);if(!s||!l){const n=e?[se(m),le(p),le(O),ne(k),ne(A)]:[m,p,O,k,A];if(!s){At(Oe[e],n[0]),B(n[1],((t,s)=>At(Ae[e],t,[s])));const s=re();B(n[2],((l,n)=>{At(Me[e],l,[n])&&!t&&(Qe(Ne[e],[n,null]),oe(s,n))})),t||B(n[4],((t,l)=>{if(!W(s,l)){const s=re();B(t,(e=>B(e,(([t,l],n)=>l!==t?oe(s,n):G(e,n))))),B(s,(t=>Qe(Ne[e],[l,t])))}})),B(n[3],((t,s)=>B(t,((t,l)=>At(je[e],t,[s,l])))))}if(!l){let t;B(n[4],((s,l)=>{let n;B(s,((s,a)=>{let r;B(s,(([s,o],c)=>{o!==s&&(Qe(xe[e],[l,a,c],o,s,Ft),t=n=r=1)})),r&&Qe(Pe[e],[l,a],Ft)})),n&&Qe(ke[e],[l],Ft)})),t&&Qe(ze[e],void 0,Ft)}}},Nt=e=>{const t=$(qe[e]),s=$(Be[e])&&$($e[e]);if(!t||!s){const l=e?[se(N),se(ce)]:[N,ce];if(t||At(qe[e],l[0]),!s){let t;B(l[1],(([s,l],n)=>{l!==s&&(Qe(Be[e],[n],l,s,zt),t=1)})),t&&Qe($e[e],void 0,zt)}}},Pt=(e,...t)=>(rs((()=>e(...S(t,C)))),is),jt=()=>[_(A,((e,t)=>-1===Q(m,t)?null:_(e,((e,s)=>-1===Q(Q(O,t),s)?null:_(e,(([,e])=>e??null),((e,t)=>ge(t)))),D)),D),_(ce,(([,e])=>e??null),((e,t)=>ge(t)))],xt=()=>({cellsTouched:l,valuesTouched:a,changedCells:te(A,he,ge),invalidCells:te(Se),changedValues:_(ce,he,ge),invalidValues:_(we),changedTableIds:_(m),changedRowIds:ee(O),changedCellIds:te(k),changedValueIds:_(N)}),Dt=()=>te(Ee),Wt=()=>K(Ee),$t=e=>K(Q(Ee,C(e))),qt=(e,t,s,l=0,n)=>{return S(I((r=Q(Ee,C(e)),o=(e,s)=>[L(t)?s:Q(e,C(t)),s],a=([e],[t])=>(e<t?-1:1)*(s?-1:1),S([...r?.entries()??[]],(([e,t])=>o(t,e))).sort(a)),l,L(n)?n:l+n),(([,e])=>e));var a,r,o},Bt=(e,t)=>K(Q(Q(Ee,C(e)),C(t))),Gt=(e,t,s)=>Q(Q(Q(Ee,C(e)),C(t)),C(s)),Ht=()=>_(Fe),Kt=()=>K(Fe),Qt=e=>Q(Fe,C(e)),Ut=e=>Pt((()=>(e=>be(e,Ze,Lt))(e)?ct(e):0)),Xt=e=>Pt((()=>tt(e)?ft(e):0)),Yt=e=>{try{ot(J(e))}catch{}return is},Zt=t=>Pt((()=>{if((e=be(t,(e=>be(e,Ye))))&&(at(t),!$(Ee))){const e=Dt();es(),Ut(e)}})),_t=e=>Pt((()=>{if(s=(e=>be(e,Ye))(e)){const t=Ht();as(),ls(),s=!0,rt(e),Xt(t)}})),es=()=>Pt((()=>ct({}))),ts=e=>Pt((e=>W(Ee,e)?Ct(e):0),e),ss=(e,t)=>Pt(((e,t)=>E(Q(Ee,e),(s=>W(s,t)?vt(e,s,t):0))),e,t),ls=()=>Pt((()=>ft({}))),ns=()=>Pt((()=>{at({}),e=!1})),as=()=>Pt((()=>{rt({}),s=!1})),rs=(e,t)=>{if(-1!=c){os();const s=e();return cs(t),s}},os=()=>(-1!=c&&c++,1==c&&Qe(Ge,void 0,jt,xt),is),cs=e=>(c>0&&(c--,0==c&&(l=!$(A),a=!$(ce),c=1,Ot(1),l&&Mt(1),kt(1),a&&Nt(1),e?.(jt,xt)&&(B(A,((e,t)=>B(e,((e,s)=>B(e,(([e],l)=>Te(is,t,s,l,e))))))),B(ce,(([e],t)=>Ve(is,t,e))),l=a=!1),Qe(He[0],void 0,jt,xt),c=-1,Ot(0),l&&Mt(0),kt(0),a&&Nt(0),Qe(He[1],void 0,jt,xt),c=0,l=a=!1,v([m,p,O,k,A,Se,N,ce,we],q))),is),is={getContent:()=>[Dt(),Ht()],getTables:Dt,getTableIds:Wt,getTable:e=>ee(Q(Ee,C(e))),getTableCellIds:e=>K(Q(Le,C(e))),getRowIds:$t,getSortedRowIds:qt,getRow:(e,t)=>_(Q(Q(Ee,C(e)),C(t))),getCellIds:Bt,getCell:Gt,getValues:Ht,getValueIds:Kt,getValue:Qt,hasTables:()=>!$(Ee),hasTable:e=>W(Ee,C(e)),hasTableCell:(e,t)=>W(Q(Le,C(e)),C(t)),hasRow:(e,t)=>W(Q(Ee,C(e)),C(t)),hasCell:(e,t,s)=>W(Q(Q(Ee,C(e)),C(t)),C(s)),hasValues:()=>!$(Fe),hasValue:e=>W(Fe,C(e)),getTablesJson:()=>y(Ee),getValuesJson:()=>y(Fe),getJson:()=>y([Ee,Fe]),getTablesSchemaJson:()=>y(Ie),getValuesSchemaJson:()=>y(ye),getSchemaJson:()=>y([Ie,ye]),setContent:([e,t])=>Pt((()=>{(D(e)?es:Ut)(e),(D(t)?ls:Xt)(t)})),setTables:Ut,setTable:(e,t)=>Pt((e=>Ze(t,e)?it(e,t):0),e),setRow:(e,t,s)=>Pt(((e,t)=>_e(e,t,s)?dt(e,bt(e),t,s):0),e,t),addRow:(e,t,s=!0)=>rs((()=>{let l;return _e(e,l,t)&&(e=C(e),dt(e,bt(e),l=Vt(e,s?1:0),t)),l})),setPartialRow:(e,t,s)=>Pt(((e,t)=>{if(_e(e,t,s,1)){const l=bt(e);x(s,((s,n)=>ht(e,l,t,n,s)))}}),e,t),setCell:(e,t,s,l)=>Pt(((e,t,s)=>E(et(e,t,s,z(l)?l(Gt(e,t,s)):l),(l=>ht(e,bt(e),t,s,l)))),e,t,s),setValues:Xt,setPartialValues:e=>Pt((()=>tt(e,1)?x(e,((e,t)=>Tt(t,e))):0)),setValue:(e,t)=>Pt((e=>E(st(e,z(t)?t(Qt(e)):t),(t=>Tt(e,t)))),e),setTransactionChanges:e=>Pt((()=>{x(e[0],((e,t)=>L(e)?ts(t):x(e,((e,s)=>L(e)?ss(t,s):x(e,((e,l)=>Te(is,t,s,l,e))))))),x(e[1],((e,t)=>Ve(is,t,e)))})),setTablesJson:Yt,setValuesJson:e=>{try{gt(J(e))}catch{}return is},setJson:e=>{try{const[t,s]=J(e);ot(t),gt(s)}catch{Yt(e)}return is},setTablesSchema:Zt,setValuesSchema:_t,setSchema:(e,t)=>Pt((()=>{Zt(e),_t(t)})),delTables:es,delTable:ts,delRow:ss,delCell:(e,t,s,l)=>Pt(((e,t,s)=>E(Q(Ee,e),(n=>E(Q(n,t),(a=>W(a,s)?St(e,n,t,a,s,l):0))))),e,t,s),delValues:ls,delValue:e=>Pt((e=>W(Fe,e)?wt(e):0),e),delTablesSchema:ns,delValuesSchema:as,delSchema:()=>Pt((()=>{ns(),as()})),transaction:rs,startTransaction:os,finishTransaction:cs,forEachTable:e=>B(Ee,((t,s)=>e(s,(e=>B(t,((t,s)=>e(s,(e=>U(t,e))))))))),forEachTableCell:(e,t)=>U(Q(Le,C(e)),t),forEachRow:(e,t)=>B(Q(Ee,C(e)),((e,s)=>t(s,(t=>U(e,t))))),forEachCell:(e,t,s)=>U(Q(Q(Ee,C(e)),C(t)),s),forEachValue:e=>U(Fe,e),addSortedRowIdsListener:(e,t,s,l,n,a,r)=>{let o=qt(e,t,s,l,n);return Ke((()=>{const r=qt(e,t,s,l,n);var c,i,d;i=o,w(c=r)===w(i)&&(d=(e,t)=>i[t]===e,c.every(d))||(o=r,a(is,e,t,s,l,n,o))}),Ne[r?1:0],[e,t],[Wt])},addStartTransactionListener:e=>Ke(e,Ge),addWillFinishTransactionListener:e=>Ke(e,He[0]),addDidFinishTransactionListener:e=>Ke(e,He[1]),callListener:e=>(Xe(e),is),delListener:e=>(Ue(e),is),getListenerStats:()=>({}),createStore:ve};return x({[d]:[0,ze],[u]:[0,Oe],[i]:[1,ke,[Wt]],[i+f]:[1,Ae,[Wt]],[h]:[1,Me,[Wt]],Row:[2,Pe,[Wt,$t]],[f]:[2,je,[Wt,$t]],[g]:[3,xe,[Wt,$t,Bt],e=>de(Gt(...e))],InvalidCell:[3,De],[V]:[0,$e],[b]:[0,qe],[T]:[1,Be,[Kt],e=>de(Qt(e[0]))],InvalidValue:[1,We]},(([e,t,s,l],n)=>{is["add"+n+"Listener"]=(...n)=>Ke(n[e],t[n[e+1]?1:0],e>0?I(n,0,e):void 0,s,l)})),M(is)};export{ve 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),o=e(0),a=e(e),r="type",l="default",i="Listener",c="Result",d="add",u="Ids",h="Table",g=h+"s",f=h+u,L="Row",w=L+u,v="Sorted"+L+u,S="Cell",R=S+u,I="Value",T=I+"s",C=I+u,p=e=>t+e,y=(e,t)=>e.includes(t),b=(e,t)=>e.every(t),V=(e,t)=>J(e)===J(t)&&b(e,((e,s)=>t[s]===e)),m=(e,t)=>b(e,((s,n)=>0==n||t(e[n-1],s)<=0)),E=(e,t)=>e.sort(t),k=(e,t)=>e.forEach(t),M=(e,t)=>e.map(t),D=e=>x(e,((e,t)=>e+t),0),J=e=>e.length,A=e=>0==J(e),x=(e,t,s)=>e.reduce(t,s),F=(e,t,s)=>e.slice(t,s),Q=(e,...t)=>e.push(...t),z=e=>e.pop(),N=e=>e.shift(),O=e=>JSON.stringify(e,((e,t)=>$(t,Map)?x([...t],((e,[t,s])=>(e[t]=s,e)),{}):t)),j=JSON.parse,P=Math.max,W=Math.min,B=isFinite,$=(e,t)=>e instanceof t,q=e=>null==e,G=(e,t,s)=>q(e)?s?.():t(e),H=e=>e==s||e==n,K=t=>e(t)==a,U=e=>Array.isArray(e),X=()=>{},Y=Object,Z=Y.keys,_=Y.isFrozen,ee=Y.freeze,te=e=>$(e,Y)&&e.constructor==Y,se=(e,t)=>!q(((e,t)=>G(e,(e=>e[t])))(e,t)),ne=(e,t)=>delete e[t],oe=(e,t)=>M(Y.entries(e),(([e,s])=>t(s,e))),ae=e=>te(e)&&A(Z(e)),re=e=>e.size,le=(e,t)=>e?.has(t)??!1,ie=e=>q(e)||0==re(e),ce=e=>[...e?.values()??[]],de=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)=>q(s)?(he(e,t),e):e?.set(t,s),Se=(e,t,s)=>(le(e,t)||ve(e,t,s()),Le(e,t)),Re=(e,t,s)=>{const n={};return ue(e,((e,o)=>{const a=t?t(e,o):e;!s?.(a,e)&&(n[o]=a)})),n},Ie=(e,t,s)=>Re(e,(e=>Re(e,t,s)),ae),Te=(e,t,s)=>Re(e,(e=>Ie(e,t,s)),ae),Ce=(e,t)=>{const s=ge();return ue(e,((e,n)=>s.set(n,t?.(e)??e))),s},pe=e=>Ce(e,Ce),ye=e=>Ce(e,pe),be=(e,t,s,n,o=0)=>G((s?Se:Le)(e,t[o],o>J(t)-2?s:ge),(a=>{if(o>J(t)-2)return n?.(a)&&ve(e,t[o]),a;const r=be(a,t,s,n,o+1);return ie(a)&&ve(e,t[o]),r})),Ve=t=>{const s=e(t);return H(s)||s==o&&B(t)?s:void 0},me=(e,t,s,n,o)=>q(o)?e.delCell(t,s,n,!0):e.setCell(t,s,n,o),Ee=(e,t,s)=>q(s)?e.delValue(t):e.setValue(t,s),ke=e=>new Set(U(e)||q(e)?e:[e]),Me=(e,t)=>e?.add(t),De=(e,t,s)=>{const n=e.hasRow,o=ge(),a=ge(),r=ge(),l=ge(),i=ge(),c=(t,s,...n)=>{const o=Se(i,t,ke);return k(n,(t=>Me(o,t)&&s&&e.callListener(t))),n},d=(t,...s)=>G(Le(i,t),(n=>{k(A(s)?ce(n):s,(t=>{e.delListener(t),he(n,t)})),ie(n)&&ve(i,t)})),u=(e,s)=>{ve(o,e,s),le(a,e)||(ve(a,e,t()),ve(r,e,ge()),ve(l,e,ge()))},h=e=>{ve(o,e),ve(a,e),ve(r,e),ve(l,e),d(e)};return[()=>e,()=>fe(o),e=>we(a,e),e=>le(a,e),e=>Le(o,e),e=>Le(a,e),(e,t)=>ve(a,e,t),u,(t,o,a,i,h)=>{u(t,o);const g=ge(),f=ge(),L=Le(r,t),w=Le(l,t),v=t=>{const a=s=>e.getCell(o,t,s),r=Le(L,t),l=n(o,t)?s(i(a,t)):void 0;if(r===l||U(r)&&U(l)&&V(r,l)||ve(g,t,[r,l]),!q(h)){const e=Le(w,t),s=n(o,t)?h(a,t):void 0;e!=s&&ve(f,t,s)}},S=e=>{a((()=>{ue(g,(([,e],t)=>ve(L,t,e))),ue(f,((e,t)=>ve(w,t,e)))}),g,f,L,w,e),de(g),de(f)};we(L,v),e.hasTable(o)&&k(e.getRowIds(o),(e=>{le(L,e)||v(e)})),S(!0),d(t),c(t,0,e.addRowListener(o,null,((e,t,s)=>v(s))),e.addTableListener(o,(()=>S())))},h,()=>we(i,h),c,d]},Je=(n,o)=>e(n)==s?e=>e(n):n??(()=>o??t),Ae=e=>{const t=new WeakMap;return s=>(t.has(s)||t.set(s,e(s)),t.get(s))},xe=/^\d+$/,Fe=()=>{const e=[];let s=0;return[n=>(n?N(e):null)??t+s++,t=>{xe.test(t)&&J(e)<1e3&&Q(e,t)}]},Qe=e=>{let s;const[n,o]=Fe(),a=ge();return[(o,r,l,i=[],c=(()=>[]))=>{s??=e();const d=n(1);return ve(a,d,[o,r,l,i,c]),Me(be(r,l??[t],ke),d),d},(e,n,...o)=>k(((e,s=[t])=>{const n=[],o=(e,t)=>t==J(s)?Q(n,e):null===s[t]?ue(e,(e=>o(e,t+1))):k([s[t],null],(s=>o(Le(e,s),t+1)));return o(e,0),n})(e,n),(e=>ue(e,(e=>Le(a,e)[0](s,...n??[],...o))))),e=>G(Le(a,e),(([,s,n])=>(be(s,n??[t],void 0,(t=>(he(t,e),ie(t)?1:0))),ve(a,e),o(e),n))),e=>G(Le(a,e),(([e,,t=[],n,o])=>{const a=(...r)=>{const l=J(r);l==J(t)?e(s,...r,...o(r)):q(t[l])?k(n[l]?.(...r)??[],(e=>a(...r,e))):a(...r,t[l])};a()}))]},ze=Ae((e=>{let s,n,o,a=100,r=ge(),l=ge(),i=1;const c=ge(),d=ge(),[u,h,g]=Qe((()=>j)),f=ge(),L=ge(),w=[],v=[],S=(t,s)=>{i=0,e.transaction((()=>{const[n,o]=Le(f,s);ue(n,((s,n)=>ue(s,((s,o)=>ue(s,((s,a)=>me(e,n,o,a,s[t]))))))),ue(o,((s,n)=>Ee(e,n,s[t])))})),i=1},R=e=>{ve(f,e),ve(L,e),h(d,[e])},I=(e,t)=>k(((e,t)=>e.splice(0,t))(e,t??J(e)),R),T=()=>I(w,J(w)-a),C=()=>G(s,(()=>{Q(w,s),T(),I(v),s=void 0,o=1})),p=()=>{s=z(w),o=1},b=e.addCellListener(null,null,null,((e,t,s,n,o,a)=>{if(i){C();const e=Se(r,t,ge),l=Se(e,s,ge),i=Se(l,n,(()=>[a,void 0]));i[1]=o,i[0]===o&&ie(ve(l,n))&&ie(ve(e,s))&&ie(ve(r,t))&&p(),D()}})),V=e.addValueListener(null,((e,t,s,n)=>{if(i){C();const e=Se(l,t,(()=>[n,void 0]));e[1]=s,e[0]===s&&ie(ve(l,t))&&p(),D()}})),m=(e="")=>(q(s)&&(s=t+n++,ve(f,s,[r,l]),F(s,e),r=ge(),l=ge(),o=1),s),E=()=>{A(w)||(((e,...t)=>{e.unshift(...t)})(v,m()),S(0,s),s=z(w),o=1)},M=()=>{A(v)||(Q(w,s),s=N(v),S(1,s),o=1)},D=()=>{o&&(h(c),o=0)},x=e=>{const t=m(e);return D(),t},F=(e,t)=>(O(e)&&Le(L,e)!==t&&(ve(L,e,t),h(d,[e])),j),O=e=>le(f,e),j={setSize:e=>(a=e,T(),j),addCheckpoint:x,setCheckpoint:F,getStore:()=>e,getCheckpointIds:()=>[[...w],s,[...v]],forEachCheckpoint:e=>we(L,e),hasCheckpoint:O,getCheckpoint:e=>Le(L,e),goBackward:()=>(E(),D(),j),goForward:()=>(M(),D(),j),goTo:e=>{const t=y(w,e)?E:y(v,e)?M:null;for(;!q(t)&&e!=s;)t();return D(),j},addCheckpointIdsListener:e=>u(e,c),addCheckpointListener:(e,t)=>u(t,d,[e]),delListener:e=>(g(e),j),clear:()=>(I(w),I(v),q(s)||R(s),s=void 0,n=0,x(),j),destroy:()=>{e.delListener(b),e.delListener(V)},getListenerStats:()=>({})};return ee(j.clear())})),Ne=(e,t)=>e<t?-1:1,Oe=Ae((e=>{const s=ge(),n=ge(),[o,a,r,l,i,c,d,,u,h,g]=De(e,ge,(e=>q(e)?t:U(e)?M(e,p):p(e))),[f,L,w]=Qe((()=>S)),v=(t,s,n)=>{const o=i(t);ue(n,((t,n)=>s(n,(s=>ue(t,(t=>s(t,(s=>e.forEachCell(o,t,s)))))))))},S={setIndexDefinition:(e,t,o,a,r,l=Ne)=>{const i=q(r)?void 0:([e],[t])=>r(e,t);return u(e,t,((t,o,r,u,h,g)=>{let f=0;const w=ke(),v=ke(),S=c(e);if(ue(o,(([e,t],s)=>{const n=ke(e),o=ke(t);ue(n,(e=>he(o,e)?he(n,e):0)),ue(n,(e=>{Me(w,e),G(Le(S,e),(t=>{he(t,s),ie(t)&&(ve(S,e),f=1)}))})),ue(o,(e=>{Me(w,e),le(S,e)||(ve(S,e,ke()),f=1),Me(Le(S,e),s),q(a)||Me(v,e)}))})),t(),ie(h)||(g?we(S,(e=>Me(v,e))):we(r,(e=>G(Le(u,e),(e=>Me(v,e))))),ue(v,(e=>{const t=(t,s)=>l(Le(h,t),Le(h,s),e),s=[...Le(S,e)];m(s,t)||(ve(S,e,ke(E(s,t))),Me(w,e))}))),(f||g)&&!q(i)){const t=[...S];m(t,i)||(d(e,ge(E(t,i))),f=1)}f&&L(s,[e]),ue(w,(t=>L(n,[e,t])))}),Je(o),G(a,Je)),S},delIndexDefinition:e=>(h(e),S),getStore:o,getIndexIds:a,forEachIndex:e=>r(((t,s)=>e(t,(e=>v(t,e,s))))),forEachSlice:(e,t)=>v(e,t,c(e)),hasIndex:l,hasSlice:(e,t)=>le(c(e),t),getTableId:i,getSliceIds:e=>fe(c(e)),getSliceRowIds:(e,t)=>ce(Le(c(e),t)),addSliceIdsListener:(e,t)=>f(t,s,[e]),addSliceRowIdsListener:(e,t,s)=>f(s,n,[e,t]),delListener:e=>(w(e),S),destroy:g,getListenerStats:()=>({})};return ee(S)})),je=ge([["avg",[(e,t)=>D(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=>P(...e),(e,t)=>P(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:P(t,e)]],["min",[e=>W(...e),(e,t)=>W(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:W(t,e)]],["sum",[e=>D(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),Pe=(e,t,s,n,o,a=!1)=>{if(ie(s))return;const[r,l,i,c]=o;return a||=q(e),ue(n,(([s,n])=>{a||(e=q(s)?l?.(e,n,t++):q(n)?i?.(e,s,t--):c?.(e,n,s,t),a||=q(e))})),a?r(ce(s),re(s)):e},We=Ae((e=>{const s=ge(),[n,o,a,r,l,i,c,,d,u,h]=De(e,X,(e=>isNaN(e)||q(e)||!0===e||!1===e||e===t?void 0:1*e)),[g,f,L]=Qe((()=>w)),w={setMetricDefinition:(e,t,n,o,a,r,l)=>{const u=K(n)?[n,a,r,l]:Le(je,n)??Le(je,"sum");return d(e,t,((t,n,o,a,r,l)=>{const d=i(e),h=re(a);l||=q(d),t();let g=Pe(d,h,a,n,u,l);B(g)||(g=void 0),g!=d&&(c(e,g),f(s,[e],g,d))}),Je(o,1)),w},delMetricDefinition:e=>(u(e),w),getStore:n,getMetricIds:o,forEachMetric:a,hasMetric:r,getTableId:l,getMetric:i,addMetricListener:(e,t)=>g(t,s,[e]),delListener:e=>(L(e),w),destroy:h,getListenerStats:()=>({})};return ee(w)})),Be=(e,t,s,n,o)=>{let a,r,l=0,i=!1;const c=async e=>{2!=l&&(l=1,await e(),l=0)},d={load:async(s={},n={})=>(await c((async()=>{let o;try{o=await t()}catch{}e.setContent(o??[s,n])})),d),startAutoLoad:async(s={},o={})=>(d.stopAutoLoad(),await d.load(s,o),i=!0,r=n((async(s,n)=>{await c((async()=>{if(n)e.setTransactionChanges(n());else try{e.setContent(s?.()??await t())}catch{}}))})),d),stopAutoLoad:()=>(i&&(o(r),r=void 0,i=!1),d),save:async t=>(1!=l&&(l=2,await s(e.getContent,t),l=0),d),startAutoSave:async()=>(await d.stopAutoSave().save(),a=e.addDidFinishTransactionListener(((e,t)=>d.save(t))),d),stopAutoSave:()=>(G(a,e.delListener),d),getStore:()=>e,destroy:()=>d.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return ee(d)},$e=Ae((e=>{const s=e.createStore,[n,o,a,r,l,,,u,,g,f,I,T]=De(e,(()=>!0),X),C=s(),p=s(),y=ge(),V=(e,t,...s)=>k(s,(s=>Me(Se(Se(y,t,ge),e,ke),s))),m=e=>{G(Le(y,e),(e=>{we(e,((e,t)=>ue(t,(t=>e.delListener(t))))),de(e)})),k([p,C],(t=>t.delTable(e)))},E=(e,t,s)=>V(t,e,t.addStartTransactionListener(s.startTransaction),t.addDidFinishTransactionListener((()=>s.finishTransaction()))),M={setQueryDefinition:(s,n,o)=>{u(s,n),m(s);const a=[],r=[[null,[n,null,null,[],ge()]]],l=[],i=[],c=[];o({select:(e,s)=>{const n=K(e)?[J(a)+t,e]:[q(s)?e:s,t=>t(e,s)];return Q(a,n),{as:e=>n[0]=e}},join:(e,t,s)=>{const n=q(s)||K(t)?null:t,o=q(n)?t:s,a=[e,[e,n,K(o)?o:e=>e(o),[],ge()]];return Q(r,a),{as:e=>a[0]=e}},where:(e,t,s)=>Q(l,K(e)?e:q(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,o)=>{const a=[e,[e,K(t)?[t,s,n,o]:Le(je,t)??[(e,t)=>t]]];return Q(i,a),{as:e=>a[0]=e}},having:(e,t)=>Q(c,K(e)?e:s=>s(e)===t)});const d=ge(a);if(ie(d))return M;const h=ge(r);we(h,((e,[,t])=>G(Le(h,t),(({3:t})=>q(e)?0:Q(t,e)))));const g=ge(i);let f=C;if(ie(g)&&A(c))f=p;else{E(s,f,p);const e=ge();we(g,((t,[s,n])=>Me(Se(e,s,ke),[t,n])));const t=ke();we(d,(s=>le(e,s)?0:Me(t,s)));const n=ge(),o=(t,n,o,a)=>G(t,(([r,l,i,d])=>{we(n,((t,[s])=>{const n=Se(r,t,ge),l=Le(n,o),i=a?void 0:s;if(l!==i){const s=ke([[l,i]]),a=re(n);ve(n,o,i),ue(Le(e,t),(([e,t])=>{const o=Pe(d[e],a,n,s,t);d[e]=q(Ve(o))?null:o}))}})),ie(l)||!b(c,(e=>e((e=>d[e]))))?p.delRow(s,i):q(i)?t[2]=p.addRow(s,d):p.setRow(s,i,d)}));V(f,s,f.addRowListener(s,null,((a,r,l,i)=>{const c=[],d=[],u=ge(),h=f.hasRow(s,l);let g=!h;ue(t,(e=>{const[t,n,o]=i(s,l,e);Q(c,n),Q(d,o),g||=t})),we(e,(e=>{const[t,,n]=i(s,l,e);(g||t)&&ve(u,e,[n])})),g&&o(be(n,c,void 0,(([,e])=>(he(e,l),ie(e)))),u,l,1),h&&o(be(n,d,(()=>{const e={};return ue(t,(t=>e[t]=f.getCell(s,l,t))),[ge(),ke(),void 0,e]}),(([,e])=>{Me(e,l)})),u,l)})))}E(s,e,f);const L=(t,o,a,r)=>{const i=t=>e.getCell(o,a,t);k(r,(n=>{const[o,,a,r,l]=Le(h,n),c=a?.(i,t),[d,u]=Le(l,t)??[];c!=d&&(q(u)||T(s,u),ve(l,t,q(c)?null:[c,...I(s,1,e.addRowListener(o,c,(()=>L(t,o,c,r))))]))})),(t=>{const o=(s,o)=>e.getCell(...q(o)?[n,t,s]:s===n?[n,t,o]:[Le(h,s)?.[0],Le(Le(h,s)?.[4],t)?.[0],o]);f.transaction((()=>b(l,(e=>e(o)))?we(d,((e,n)=>me(f,s,t,e,n(o,t)))):f.delRow(s,t)))})(t)},{3:w}=Le(h,null);return f.transaction((()=>I(s,1,e.addRowListener(n,null,((t,o,a)=>{e.hasRow(n,a)?L(a,n,a,w):(f.delRow(s,a),ue(h,(({4:e})=>G(Le(e,a),(([,t])=>{T(s,t),ve(e,a)})))))}))))),M},delQueryDefinition:e=>(m(e),g(e),M),getStore:n,getQueryIds:o,forEachQuery:a,hasQuery:r,getTableId:l,delListener:e=>(p.delListener(e),M),destroy:f,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=p.getListenerStats();return n}};return oe({[h]:[1,1],[w]:[0,1],[v]:[0,5],[L]:[1,2],[R]:[0,2],[S]:[1,3]},(([e,t],s)=>{k(e?["get","has","forEach"]:["get"],(e=>M[e+c+s]=(...t)=>p[e+s](...t))),M[d+c+s+i]=(...e)=>p[d+s+i](...F(e,0,t),((s,...n)=>e[t](M,...n)))})),ee(M)})),qe=Ae((e=>{const s=ge(),n=ge(),o=ge(),a=ge(),[r,l,i,c,d,u,,,h,g,f]=De(e,(()=>[ge(),ge(),ge(),ge()]),(e=>q(e)?void 0:e+t)),[L,w,v]=Qe((()=>T)),S=(e,t,s)=>G(u(e),(([n,,o])=>{if(!le(o,t)){const a=ke();if(d(e)!=I(e))Me(a,t);else{let e=t;for(;!q(e)&&!le(a,e);)Me(a,e),e=Le(n,e)}if(s)return a;ve(o,t,a)}return Le(o,t)})),R=(e,t)=>G(u(e),(([,,e])=>ve(e,t))),I=e=>Le(s,e),T={setRelationshipDefinition:(e,t,r,l)=>(ve(s,e,r),h(e,t,((t,s)=>{const r=ke(),l=ke(),i=ke(),[c,d]=u(e);ue(s,(([t,s],n)=>{q(t)||(Me(l,t),G(Le(d,t),(e=>{he(e,n),ie(e)&&ve(d,t)}))),q(s)||(Me(l,s),le(d,s)||ve(d,s,ke()),Me(Le(d,s),n)),Me(r,n),ve(c,n,s),we(Le(a,e),(t=>{le(S(e,t),n)&&Me(i,t)}))})),t(),ue(r,(t=>w(n,[e,t]))),ue(l,(t=>w(o,[e,t]))),ue(i,(t=>{R(e,t),w(a,[e,t])}))}),Je(l)),T),delRelationshipDefinition:e=>(ve(s,e),g(e),T),getStore:r,getRelationshipIds:l,forEachRelationship:t=>i((s=>t(s,(t=>e.forEachRow(d(s),t))))),hasRelationship:c,getLocalTableId:d,getRemoteTableId:I,getRemoteRowId:(e,t)=>Le(u(e)?.[0],t),getLocalRowIds:(e,t)=>ce(Le(u(e)?.[1],t)),getLinkedRowIds:(e,t)=>q(u(e))?[t]:ce(S(e,t,!0)),addRemoteRowIdListener:(e,t,s)=>L(s,n,[e,t]),addLocalRowIdsListener:(e,t,s)=>L(s,o,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(S(e,t),L(s,a,[e,t])),delListener:e=>(R(...v(e)),T),destroy:f,getListenerStats:()=>({})};return ee(T)})),Ge=e=>[e,e],He=()=>[ge(),ge()],Ke=e=>[...e],Ue=([e,t])=>e===t,Xe=(e,t,s,n=ve)=>(oe(t,((t,n)=>s(e,n,t))),we(e,(s=>se(t,s)?0:n(e,s))),e),Ye=(e,t,s)=>q(e)||!te(e)||ae(e)||_(e)?(s?.(),!1):(oe(e,((s,n)=>{t(s,n)||ne(e,n)})),!ae(e)),Ze=(e,t,s)=>ve(e,t,Le(e,t)==-s?void 0:s),_e=()=>{let e,t,s=!1,n=!1,a=0;const c=ge(),u=ge(),v=ge(),b=ge(),m=ge(),D=ge(),J=ge(),A=ge(),x=ge(),z=ge(),N=ge(),P=ge(),W=ke(),B=ge(),$=ge(),U=ge(),X=He(),Y=He(),Z=He(),_=He(),te=He(),re=He(),ce=He(),be=He(),De=He(),Je=He(),Ae=He(),xe=He(),ze=He(),Oe=ge(),je=He(),[Pe,We,Be,$e]=Qe((()=>us)),qe=e=>{if(!Ye(e,((e,t)=>y([r,l],t))))return!1;const t=e[r];return!(!H(t)&&t!=o||(Ve(e[l])!=t&&ne(e,l),0))},et=(t,s)=>(!e||le(x,s)||Mt(s))&&Ye(t,((e,t)=>tt(s,t,e)),(()=>Mt(s))),tt=(e,t,s,n)=>Ye(n?s:at(s,e,t),((n,o)=>G(st(e,t,o,n),(e=>(s[o]=e,!0)),(()=>!1))),(()=>Mt(e,t))),st=(t,s,n,o)=>e?G(Le(Le(x,t),n),(e=>Ve(o)!=e[r]?Mt(t,s,n,o,e[l]):o),(()=>Mt(t,s,n,o))):q(Ve(o))?Mt(t,s,n,o):o,nt=(e,t)=>Ye(t?e:rt(e),((t,s)=>G(ot(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>Dt())),ot=(e,s)=>t?G(Le(N,e),(t=>Ve(s)!=t[r]?Dt(e,s,t[l]):s),(()=>Dt(e,s))):q(Ve(s))?Dt(e,s):s,at=(e,t,s)=>(G(Le(z,t),(([n,o])=>{ue(n,((t,s)=>{se(e,s)||(e[s]=t)})),ue(o,(n=>{se(e,n)||Mt(t,s,n)}))})),e),rt=e=>(t&&(ue(P,((t,s)=>{se(e,s)||(e[s]=t)})),ue(W,(t=>{se(e,t)||Dt(t)}))),e),lt=e=>Xe(x,e,((e,t,s)=>{const n=ge(),o=ke();Xe(Se(x,t,ge),s,((e,t,s)=>{ve(e,t,s),G(s[l],(e=>ve(n,t,e)),(()=>Me(o,t)))})),ve(z,t,[n,o])}),((e,t)=>{ve(x,t),ve(z,t)})),it=e=>Xe(N,e,((e,t,s)=>{ve(N,t,s),G(s[l],(e=>ve(P,t,e)),(()=>Me(W,t)))}),((e,t)=>{ve(N,t),ve(P,t),he(W,t)})),ct=e=>ae(e)?ss():Yt(e),dt=e=>Xe($,e,((e,t,s)=>ut(t,s)),((e,t)=>It(t))),ut=(e,t)=>Xe(Se($,e,(()=>(yt(e,1),ge()))),t,((t,s,n)=>ht(e,t,s,n)),((t,s)=>Tt(e,t,s))),ht=(e,t,s,n,o)=>Xe(Se(t,s,(()=>(bt(e,s,1),ge()))),n,((t,n,o)=>gt(e,s,t,n,o)),((n,a)=>Ct(e,t,s,n,a,o))),gt=(e,t,s,n,o)=>{le(s,n)||Vt(e,t,n,1);const a=Le(s,n);o!==a&&(mt(e,t,n,a,o),ve(s,n,o))},ft=(e,t,s,n,o)=>G(Le(t,s),(t=>gt(e,s,t,n,o)),(()=>ht(e,t,s,at({[n]:o},e,s)))),Lt=e=>ae(e)?as():Zt(e),wt=e=>Xe(U,e,((e,t,s)=>vt(t,s)),((e,t)=>pt(t))),vt=(e,t)=>{le(U,e)||Et(e,1);const s=Le(U,e);t!==s&&(kt(e,s,t),ve(U,e,t))},St=(e,t)=>{const[s]=Se(B,e,Fe),n=s(t);return le(Le($,e),n)?St(e,t):n},Rt=e=>Le($,e)??ut(e,{}),It=e=>ut(e,{}),Tt=(e,t,s)=>{const[,n]=Se(B,e,Fe);n(s),ht(e,t,s,{},!0)},Ct=(e,t,s,n,o,a)=>{const r=Le(Le(z,e)?.[0],o);if(!q(r)&&!a)return gt(e,s,n,o,r);const l=t=>{mt(e,s,t,Le(n,t)),Vt(e,s,t,-1),ve(n,t)};q(r)?l(o):we(n,l),ie(n)&&(bt(e,s,-1),ie(ve(t,s))&&(yt(e,-1),ve($,e),ve(B,e)))},pt=e=>{const t=Le(P,e);if(!q(t))return vt(e,t);kt(e,Le(U,e)),Et(e,-1),ve(U,e)},yt=(e,t)=>Ze(c,e,t),bt=(e,t,s)=>Ze(Se(u,e,ge),t,s),Vt=(e,t,s,n)=>Ze(Se(Se(v,e,ge),t,ge),s,n),mt=(e,t,s,n,o)=>Se(Se(Se(b,e,ge),t,ge),s,(()=>[n,0]))[1]=o,Et=(e,t)=>Ze(m,e,t),kt=(e,t,s)=>Se(D,e,(()=>[t,0]))[1]=s,Mt=(e,t,s,n,o)=>(Q(Se(Se(Se(J,e,ge),t,ge),s,(()=>[])),n),o),Dt=(e,t,s)=>(Q(Se(A,e,(()=>[])),t),s),Jt=(e,t,s)=>G(Le(Le(Le(b,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...Ge(Ht(e,t,s))])),At=e=>G(Le(D,e),(([e,t])=>[!0,e,t]),(()=>[!1,...Ge(Xt(e))])),xt=e=>ie(J)||ie(De[e])?0:ue(e?ye(J):J,((t,s)=>ue(t,((t,n)=>ue(t,((t,o)=>We(De[e],[s,n,o],t))))))),Ft=e=>ie(A)||ie(Je[e])?0:ue(e?Ce(A):A,((t,s)=>We(Je[e],[s],t))),Qt=(e,t,s)=>{if(!ie(t))return We(e,s),1},zt=e=>{const t=ie(te[e]),s=ie(ce[e])&&ie(_[e])&&t&&ie(Y[e]),n=ie(be[e])&&ie(re[e])&&ie(Z[e])&&ie(X[e]);if(!s||!n){const o=e?[Ce(c),pe(u),ye(v),ye(b)]:[c,u,v,b];if(!s){ue(o[2],((t,s)=>ue(t,((t,n)=>Qt(ce[e],t,[s,n])))));const s=ke();ue(o[1],((n,o)=>{Qt(_[e],n,[o])&&!t&&(We(te[e],[o,null]),Me(s,o))})),t||ue(o[3],((t,n)=>{if(!le(s,n)){const s=ke();ue(t,(e=>ue(e,(([t,n],o)=>n!==t?Me(s,o):he(e,o))))),ue(s,(t=>We(te[e],[n,t])))}})),Qt(Y[e],o[0])}if(!n){let t;ue(o[3],((s,n)=>{let o;ue(s,((s,a)=>{let r;ue(s,(([s,l],i)=>{l!==s&&(We(be[e],[n,a,i],l,s,Jt),t=o=r=1)})),r&&We(re[e],[n,a],Jt)})),o&&We(Z[e],[n],Jt)})),t&&We(X[e],void 0,Jt)}}},Nt=e=>{const t=ie(xe[e]),s=ie(ze[e])&&ie(Ae[e]);if(!t||!s){const n=e?[Ce(m),Ce(D)]:[m,D];if(t||Qt(xe[e],n[0]),!s){let t;ue(n[1],(([s,n],o)=>{n!==s&&(We(ze[e],[o],n,s,At),t=1)})),t&&We(Ae[e],void 0,At)}}},Ot=(e,...t)=>(is((()=>e(...M(t,p)))),us),jt=()=>[Re(b,((e,t)=>-1===Le(c,t)?null:Re(e,((e,s)=>-1===Le(Le(u,t),s)?null:Re(e,(([,e])=>e??null),((e,t)=>Ue(t)))),ae)),ae),Re(D,(([,e])=>e??null),((e,t)=>Ue(t)))],Pt=()=>({cellsTouched:s,valuesTouched:n,changedCells:Te(b,Ke,Ue),invalidCells:Te(J),changedValues:Re(D,Ke,Ue),invalidValues:Re(A),changedTableIds:Re(c),changedRowIds:Ie(u),changedCellIds:Te(v),changedValueIds:Re(m)}),Wt=()=>Te($),Bt=()=>fe($),$t=e=>fe(Le($,p(e))),qt=(e,t,s,n=0,o)=>{return M(F(E((a=Le($,p(e)),r=(e,s)=>[q(t)?s:Le(e,p(t)),s],M([...a?.entries()??[]],(([e,t])=>r(t,e)))),(([e],[t])=>Ne(e,t)*(s?-1:1))),n,q(o)?o:n+o),(([,e])=>e));var a,r},Gt=(e,t)=>fe(Le(Le($,p(e)),p(t))),Ht=(e,t,s)=>Le(Le(Le($,p(e)),p(t)),p(s)),Kt=()=>Re(U),Ut=()=>fe(U),Xt=e=>Le(U,p(e)),Yt=e=>Ot((()=>(e=>Ye(e,et,Mt))(e)?dt(e):0)),Zt=e=>Ot((()=>nt(e)?wt(e):0)),_t=e=>{try{ct(j(e))}catch{}return us},es=t=>Ot((()=>{if((e=Ye(t,(e=>Ye(e,qe))))&&(lt(t),!ie($))){const e=Wt();ss(),Yt(e)}})),ts=e=>Ot((()=>{if(t=(e=>Ye(e,qe))(e)){const s=Kt();ls(),as(),t=!0,it(e),Zt(s)}})),ss=()=>Ot((()=>dt({}))),ns=e=>Ot((e=>le($,e)?It(e):0),e),os=(e,t)=>Ot(((e,t)=>G(Le($,e),(s=>le(s,t)?Tt(e,s,t):0))),e,t),as=()=>Ot((()=>wt({}))),rs=()=>Ot((()=>{lt({}),e=!1})),ls=()=>Ot((()=>{it({}),t=!1})),is=(e,t)=>{if(-1!=a){cs();const s=e();return ds(t),s}},cs=()=>(-1!=a&&a++,1==a&&We(Oe,void 0,jt,Pt),us),ds=e=>(a>0&&(a--,0==a&&(s=!ie(b),n=!ie(D),a=1,xt(1),s&&zt(1),Ft(1),n&&Nt(1),e?.(jt,Pt)&&(ue(b,((e,t)=>ue(e,((e,s)=>ue(e,(([e],n)=>me(us,t,s,n,e))))))),ue(D,(([e],t)=>Ee(us,t,e))),s=n=!1),We(je[0],void 0,jt,Pt),a=-1,xt(0),s&&zt(0),Ft(0),n&&Nt(0),We(je[1],void 0,jt,Pt),a=0,s=n=!1,k([c,u,v,b,J,m,D,A],de))),us),us={getContent:()=>[Wt(),Kt()],getTables:Wt,getTableIds:Bt,getTable:e=>Ie(Le($,p(e))),getRowIds:$t,getSortedRowIds:qt,getRow:(e,t)=>Re(Le(Le($,p(e)),p(t))),getCellIds:Gt,getCell:Ht,getValues:Kt,getValueIds:Ut,getValue:Xt,hasTables:()=>!ie($),hasTable:e=>le($,p(e)),hasRow:(e,t)=>le(Le($,p(e)),p(t)),hasCell:(e,t,s)=>le(Le(Le($,p(e)),p(t)),p(s)),hasValues:()=>!ie(U),hasValue:e=>le(U,p(e)),getTablesJson:()=>O($),getValuesJson:()=>O(U),getJson:()=>O([$,U]),getTablesSchemaJson:()=>O(x),getValuesSchemaJson:()=>O(N),getSchemaJson:()=>O([x,N]),setContent:([e,t])=>Ot((()=>{Yt(e),Zt(t)})),setTables:Yt,setTable:(e,t)=>Ot((e=>et(t,e)?ut(e,t):0),e),setRow:(e,t,s)=>Ot(((e,t)=>tt(e,t,s)?ht(e,Rt(e),t,s):0),e,t),addRow:(e,t,s=!0)=>is((()=>{let n;return tt(e,n,t)&&(e=p(e),ht(e,Rt(e),n=St(e,s?1:0),t)),n})),setPartialRow:(e,t,s)=>Ot(((e,t)=>{if(tt(e,t,s,1)){const n=Rt(e);oe(s,((s,o)=>ft(e,n,t,o,s)))}}),e,t),setCell:(e,t,s,n)=>Ot(((e,t,s)=>G(st(e,t,s,K(n)?n(Ht(e,t,s)):n),(n=>ft(e,Rt(e),t,s,n)))),e,t,s),setValues:Zt,setPartialValues:e=>Ot((()=>nt(e,1)?oe(e,((e,t)=>vt(t,e))):0)),setValue:(e,t)=>Ot((e=>G(ot(e,K(t)?t(Xt(e)):t),(t=>vt(e,t)))),e),setTransactionChanges:e=>Ot((()=>{oe(e[0],((e,t)=>q(e)?ns(t):oe(e,((e,s)=>q(e)?os(t,s):oe(e,((e,n)=>me(us,t,s,n,e))))))),oe(e[1],((e,t)=>Ee(us,t,e)))})),setTablesJson:_t,setValuesJson:e=>{try{Lt(j(e))}catch{}return us},setJson:e=>{try{const[t,s]=j(e);ct(t),Lt(s)}catch{_t(e)}return us},setTablesSchema:es,setValuesSchema:ts,setSchema:(e,t)=>Ot((()=>{es(e),ts(t)})),delTables:ss,delTable:ns,delRow:os,delCell:(e,t,s,n)=>Ot(((e,t,s)=>G(Le($,e),(o=>G(Le(o,t),(a=>le(a,s)?Ct(e,o,t,a,s,n):0))))),e,t,s),delValues:as,delValue:e=>Ot((e=>le(U,e)?pt(e):0),e),delTablesSchema:rs,delValuesSchema:ls,delSchema:()=>Ot((()=>{rs(),ls()})),transaction:is,startTransaction:cs,finishTransaction:ds,forEachTable:e=>ue($,((t,s)=>e(s,(e=>ue(t,((t,s)=>e(s,(e=>we(t,e))))))))),forEachRow:(e,t)=>ue(Le($,p(e)),((e,s)=>t(s,(t=>we(e,t))))),forEachCell:(e,t,s)=>we(Le(Le($,p(e)),p(t)),s),forEachValue:e=>we(U,e),addSortedRowIdsListener:(e,t,s,n,o,a,r)=>{let l=qt(e,t,s,n,o);return Pe((()=>{const r=qt(e,t,s,n,o);V(r,l)||(l=r,a(us,e,t,s,n,o,l))}),te[r?1:0],[e,t],[Bt])},addStartTransactionListener:e=>Pe(e,Oe),addWillFinishTransactionListener:e=>Pe(e,je[0]),addDidFinishTransactionListener:e=>Pe(e,je[1]),callListener:e=>($e(e),us),delListener:e=>(Be(e),us),getListenerStats:()=>({}),createStore:_e};return oe({[g]:[0,X],[f]:[0,Y],[h]:[1,Z,[Bt]],[w]:[1,_,[Bt]],[L]:[2,re,[Bt,$t]],[R]:[2,ce,[Bt,$t]],[S]:[3,be,[Bt,$t,Gt],e=>Ge(Ht(...e))],InvalidCell:[3,De],[T]:[0,Ae],[C]:[0,xe],[I]:[1,ze,[Ut],e=>Ge(Xt(e[0]))],InvalidValue:[1,Je]},(([e,t,s,n],o)=>{us[d+o+i]=(...o)=>Pe(o[e],t[o[e+1]?1:0],e>0?F(o,0,e):void 0,s,n)})),ee(us)};export{ze as createCheckpoints,Be as createCustomPersister,Oe as createIndexes,We as createMetrics,$e as createQueries,qe as createRelationships,_e as createStore,Ne 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="Ids",h="Table",g=h+"s",f=h+u,L="Row",w=L+u,v="Sorted"+L+u,S="Cell",R=S+u,T="Value",I=T+"s",C=T+u,y=e=>t+e,p=(e,t)=>e.includes(t),b=(e,t)=>e.every(t),V=(e,t)=>J(e)===J(t)&&b(e,((e,s)=>t[s]===e)),m=(e,t)=>b(e,((s,n)=>0==n||t(e[n-1],s)<=0)),E=(e,t)=>e.sort(t),k=(e,t)=>e.forEach(t),M=(e,t)=>e.map(t),D=e=>x(e,((e,t)=>e+t),0),J=e=>e.length,A=e=>0==J(e),x=(e,t,s)=>e.reduce(t,s),F=(e,t,s)=>e.slice(t,s),Q=(e,...t)=>e.push(...t),z=e=>e.pop(),N=e=>e.shift(),O=e=>JSON.stringify(e,((e,t)=>$(t,Map)?x([...t],((e,[t,s])=>(e[t]=s,e)),{}):t)),j=JSON.parse,P=Math.max,W=Math.min,B=isFinite,$=(e,t)=>e instanceof t,q=e=>null==e,G=(e,t,s)=>q(e)?s?.():t(e),H=e=>e==s||e==n,K=t=>e(t)==o,U=e=>Array.isArray(e),X=()=>{},Y=Object,Z=Y.keys,_=Y.isFrozen,ee=Y.freeze,te=e=>$(e,Y)&&e.constructor==Y,se=(e,t)=>!q(((e,t)=>G(e,(e=>e[t])))(e,t)),ne=(e,t)=>(delete e[t],e),ae=(e,t)=>M(Y.entries(e),(([e,s])=>t(s,e))),oe=e=>te(e)&&0==(e=>J(Z(e)))(e),re=e=>e.size,le=(e,t)=>e?.has(t)??!1,ie=e=>q(e)||0==re(e),ce=e=>[...e?.values()??[]],de=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)=>q(s)?(he(e,t),e):e?.set(t,s),Se=(e,t,s)=>(le(e,t)||ve(e,t,s()),Le(e,t)),Re=(e,t,s,n=ve)=>(ae(t,((t,n)=>s(e,n,t))),we(e,(s=>se(t,s)?0:n(e,s))),e),Te=(e,t,s)=>{const n={};return ue(e,((e,a)=>{const o=t?t(e,a):e;!s?.(o,e)&&(n[a]=o)})),n},Ie=(e,t,s)=>Te(e,(e=>Te(e,t,s)),oe),Ce=(e,t,s)=>Te(e,(e=>Ie(e,t,s)),oe),ye=(e,t)=>{const s=ge();return ue(e,((e,n)=>s.set(n,t?.(e)??e))),s},pe=e=>ye(e,ye),be=e=>ye(e,pe),Ve=(e,t,s,n,a=0)=>G((s?Se:Le)(e,t[a],a>J(t)-2?s:ge),(o=>{if(a>J(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 H(s)||s==a&&B(t)?s:void 0},Ee=(e,t,s,n,a)=>q(a)?e.delCell(t,s,n,!0):e.setCell(t,s,n,a),ke=(e,t,s)=>q(s)?e.delValue(t):e.setValue(t,s),Me=e=>new Set(U(e)||q(e)?e:[e]),De=(e,t)=>e?.add(t),Je=(e,t,s)=>{const n=e.hasRow,a=ge(),o=ge(),r=ge(),l=ge(),i=ge(),c=(t,s,...n)=>{const a=Se(i,t,Me);return k(n,(t=>De(a,t)&&s&&e.callListener(t))),n},d=(t,...s)=>G(Le(i,t),(n=>{k(A(s)?ce(n):s,(t=>{e.delListener(t),he(n,t)})),ie(n)&&ve(i,t)})),u=(e,s)=>{ve(a,e,s),le(o,e)||(ve(o,e,t()),ve(r,e,ge()),ve(l,e,ge()))},h=e=>{ve(a,e),ve(o,e),ve(r,e),ve(l,e),d(e)};return[()=>e,()=>fe(a),e=>we(o,e),e=>le(o,e),e=>Le(a,e),e=>Le(o,e),(e,t)=>ve(o,e,t),u,(t,a,o,i,h)=>{u(t,a);const g=ge(),f=ge(),L=Le(r,t),w=Le(l,t),v=t=>{const o=s=>e.getCell(a,t,s),r=Le(L,t),l=n(a,t)?s(i(o,t)):void 0;if(r===l||U(r)&&U(l)&&V(r,l)||ve(g,t,[r,l]),!q(h)){const e=Le(w,t),s=n(a,t)?h(o,t):void 0;e!=s&&ve(f,t,s)}},S=e=>{o((()=>{ue(g,(([,e],t)=>ve(L,t,e))),ue(f,((e,t)=>ve(w,t,e)))}),g,f,L,w,e),de(g),de(f)};we(L,v),e.hasTable(a)&&k(e.getRowIds(a),(e=>{le(L,e)||v(e)})),S(!0),d(t),c(t,0,e.addRowListener(a,null,((e,t,s)=>v(s))),e.addTableListener(a,(()=>S())))},h,()=>we(i,h),c,d]},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?N(e):null)??t+s++,t=>{Fe.test(t)&&J(e)<1e3&&Q(e,t)}]},ze=e=>{let s;const[n,a]=Qe(),o=ge();return[(a,r,l,i=[],c=(()=>[]))=>{s??=e();const d=n(1);return ve(o,d,[a,r,l,i,c]),De(Ve(r,l??[t],Me),d),d},(e,n,...a)=>k(((e,s=[t])=>{const n=[],a=(e,t)=>t==J(s)?Q(n,e):null===s[t]?ue(e,(e=>a(e,t+1))):k([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=>G(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=>G(Le(o,e),(([e,,t=[],n,a])=>{const o=(...r)=>{const l=J(r);l==J(t)?e(s,...r,...a(r)):q(t[l])?k(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 c=ge(),d=ge(),[u,h,g]=ze((()=>j)),f=ge(),L=ge(),w=[],v=[],S=(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},R=e=>{ve(f,e),ve(L,e),h(d,[e])},T=(e,t)=>k(((e,t)=>e.splice(0,t))(e,t??J(e)),R),I=()=>T(w,J(w)-o),C=()=>G(s,(()=>{Q(w,s),I(),T(v),s=void 0,a=1})),y=()=>{s=z(w),a=1},b=e.addCellListener(null,null,null,((e,t,s,n,a,o)=>{if(i){C();const e=Se(r,t,ge),l=Se(e,s,ge),i=Se(l,n,(()=>[o,void 0]));i[1]=a,i[0]===a&&ie(ve(l,n))&&ie(ve(e,s))&&ie(ve(r,t))&&y(),D()}})),V=e.addValueListener(null,((e,t,s,n)=>{if(i){C();const e=Se(l,t,(()=>[n,void 0]));e[1]=s,e[0]===s&&ie(ve(l,t))&&y(),D()}})),m=(e="")=>(q(s)&&(s=t+n++,ve(f,s,[r,l]),F(s,e),r=ge(),l=ge(),a=1),s),E=()=>{A(w)||(((e,...t)=>{e.unshift(...t)})(v,m()),S(0,s),s=z(w),a=1)},M=()=>{A(v)||(Q(w,s),s=N(v),S(1,s),a=1)},D=()=>{a&&(h(c),a=0)},x=e=>{const t=m(e);return D(),t},F=(e,t)=>(O(e)&&Le(L,e)!==t&&(ve(L,e,t),h(d,[e])),j),O=e=>le(f,e),j={setSize:e=>(o=e,I(),j),addCheckpoint:x,setCheckpoint:F,getStore:()=>e,getCheckpointIds:()=>[[...w],s,[...v]],forEachCheckpoint:e=>we(L,e),hasCheckpoint:O,getCheckpoint:e=>Le(L,e),goBackward:()=>(E(),D(),j),goForward:()=>(M(),D(),j),goTo:e=>{const t=p(w,e)?E:p(v,e)?M:null;for(;!q(t)&&e!=s;)t();return D(),j},addCheckpointIdsListener:e=>u(e,c),addCheckpointListener:(e,t)=>u(t,d,[e]),delListener:e=>(g(e),j),clear:()=>(T(w),T(v),q(s)||R(s),s=void 0,n=0,x(),j),destroy:()=>{e.delListener(b),e.delListener(V)},getListenerStats:()=>({})};return ee(j.clear())})),Oe=(e,t)=>e<t?-1:1,je=xe((e=>{const s=ge(),n=ge(),[a,o,r,l,i,c,d,,u,h,g]=Je(e,ge,(e=>q(e)?t:U(e)?M(e,y):y(e))),[f,L,w]=ze((()=>S)),v=(t,s,n)=>{const a=i(t);ue(n,((t,n)=>s(n,(s=>ue(t,(t=>s(t,(s=>e.forEachCell(a,t,s)))))))))},S={setIndexDefinition:(e,t,a,o,r,l=Oe)=>{const i=q(r)?void 0:([e],[t])=>r(e,t);return u(e,t,((t,a,r,u,h,g)=>{let f=0;const w=Me(),v=Me(),S=c(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),G(Le(S,e),(t=>{he(t,s),ie(t)&&(ve(S,e),f=1)}))})),ue(a,(e=>{De(w,e),le(S,e)||(ve(S,e,Me()),f=1),De(Le(S,e),s),q(o)||De(v,e)}))})),t(),ie(h)||(g?we(S,(e=>De(v,e))):we(r,(e=>G(Le(u,e),(e=>De(v,e))))),ue(v,(e=>{const t=(t,s)=>l(Le(h,t),Le(h,s),e),s=[...Le(S,e)];m(s,t)||(ve(S,e,Me(E(s,t))),De(w,e))}))),(f||g)&&!q(i)){const t=[...S];m(t,i)||(d(e,ge(E(t,i))),f=1)}f&&L(s,[e]),ue(w,(t=>L(n,[e,t])))}),Ae(a),G(o,Ae)),S},delIndexDefinition:e=>(h(e),S),getStore:a,getIndexIds:o,forEachIndex:e=>r(((t,s)=>e(t,(e=>v(t,e,s))))),forEachSlice:(e,t)=>v(e,t,c(e)),hasIndex:l,hasSlice:(e,t)=>le(c(e),t),getTableId:i,getSliceIds:e=>fe(c(e)),getSliceRowIds:(e,t)=>ce(Le(c(e),t)),addSliceIdsListener:(e,t)=>f(t,s,[e]),addSliceRowIdsListener:(e,t,s)=>f(s,n,[e,t]),delListener:e=>(w(e),S),destroy:g,getListenerStats:()=>({})};return ee(S)})),Pe=ge([["avg",[(e,t)=>D(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=>P(...e),(e,t)=>P(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:P(t,e)]],["min",[e=>W(...e),(e,t)=>W(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:W(t,e)]],["sum",[e=>D(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,c]=a;return o||=q(e),ue(n,(([s,n])=>{o||(e=q(s)?l?.(e,n,t++):q(n)?i?.(e,s,t--):c?.(e,n,s,t),o||=q(e))})),o?r(ce(s),re(s)):e},Be=xe((e=>{const s=ge(),[n,a,o,r,l,i,c,,d,u,h]=Je(e,X,(e=>isNaN(e)||q(e)||!0===e||!1===e||e===t?void 0:1*e)),[g,f,L]=ze((()=>w)),w={setMetricDefinition:(e,t,n,a,o,r,l)=>{const u=K(n)?[n,o,r,l]:Le(Pe,n)??Le(Pe,"sum");return d(e,t,((t,n,a,o,r,l)=>{const d=i(e),h=re(o);l||=q(d),t();let g=We(d,h,o,n,u,l);B(g)||(g=void 0),g!=d&&(c(e,g),f(s,[e],g,d))}),Ae(a,1)),w},delMetricDefinition:e=>(u(e),w),getStore:n,getMetricIds:a,forEachMetric:o,hasMetric:r,getTableId:l,getMetric:i,addMetricListener:(e,t)=>g(t,s,[e]),delListener:e=>(L(e),w),destroy:h,getListenerStats:()=>({})};return ee(w)})),$e=(e,t,s,n,a)=>{let o,r,l,i=0,c=0,d=0;const u=[],h=async e=>{2!=i&&(i=1,await e(),i=0)},g={load:async(s,n)=>(await h((async()=>{try{e.setContent(await t())}catch{e.setContent([s,n])}})),g),startAutoLoad:async(s={},a={})=>(g.stopAutoLoad(),await g.load(s,a),d=1,l=n((async(s,n)=>{await h((async()=>{if(n)e.setTransactionChanges(n());else try{e.setContent(s?.()??await t())}catch{}}))})),g),stopAutoLoad:()=>(d&&(a(l),l=void 0,d=0),g),save:async t=>(await g.schedule((async()=>{if(1!=i){i=2;try{await s(e.getContent,t)}catch{}i=0}})),g),startAutoSave:async()=>(await g.stopAutoSave().save(),o=e.addDidFinishTransactionListener(((e,t)=>{const s=t();g.save((()=>s))})),g),stopAutoSave:()=>(G(o,e.delListener),g),schedule:async(...e)=>(Q(u,...e),await(async()=>{if(!c){for(c=1;!q(r=N(u));)try{await r()}catch{}c=0}})(),g),getStore:()=>e,destroy:()=>g.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return ee(g)},qe=xe((e=>{const s=e.createStore,[n,a,o,r,l,,,u,,g,f,T,I]=Je(e,(()=>!0),X),C=s(),y=s(),p=ge(),V=(e,t,...s)=>k(s,(s=>De(Se(Se(p,t,ge),e,Me),s))),m=e=>{G(Le(p,e),(e=>{we(e,((e,t)=>ue(t,(t=>e.delListener(t))))),de(e)})),k([y,C],(t=>t.delTable(e)))},E=(e,t,s)=>V(t,e,t.addStartTransactionListener(s.startTransaction),t.addDidFinishTransactionListener((()=>s.finishTransaction()))),M={setQueryDefinition:(s,n,a)=>{u(s,n),m(s);const o=[],r=[[null,[n,null,null,[],ge()]]],l=[],i=[],c=[];a({select:(e,s)=>{const n=K(e)?[J(o)+t,e]:[q(s)?e:s,t=>t(e,s)];return Q(o,n),{as:e=>n[0]=e}},join:(e,t,s)=>{const n=q(s)||K(t)?null:t,a=q(n)?t:s,o=[e,[e,n,K(a)?a:e=>e(a),[],ge()]];return Q(r,o),{as:e=>o[0]=e}},where:(e,t,s)=>Q(l,K(e)?e:q(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,a)=>{const o=[e,[e,K(t)?[t,s,n,a]:Le(Pe,t)??[(e,t)=>t]]];return Q(i,o),{as:e=>o[0]=e}},having:(e,t)=>Q(c,K(e)?e:s=>s(e)===t)});const d=ge(o);if(ie(d))return M;const h=ge(r);we(h,((e,[,t])=>G(Le(h,t),(({3:t})=>q(e)?0:Q(t,e)))));const g=ge(i);let f=C;if(ie(g)&&A(c))f=y;else{E(s,f,y);const e=ge();we(g,((t,[s,n])=>De(Se(e,s,Me),[t,n])));const t=Me();we(d,(s=>le(e,s)?0:De(t,s)));const n=ge(),a=(t,n,a,o)=>G(t,(([r,l,i,d])=>{we(n,((t,[s])=>{const n=Se(r,t,ge),l=Le(n,a),i=o?void 0:s;if(l!==i){const s=Me([[l,i]]),o=re(n);ve(n,a,i),ue(Le(e,t),(([e,t])=>{const a=We(d[e],o,n,s,t);d[e]=q(me(a))?null:a}))}})),ie(l)||!b(c,(e=>e((e=>d[e]))))?y.delRow(s,i):q(i)?t[2]=y.addRow(s,d):y.setRow(s,i,d)}));V(f,s,f.addRowListener(s,null,((o,r,l,i)=>{const c=[],d=[],u=ge(),h=f.hasRow(s,l);let g=!h;ue(t,(e=>{const[t,n,a]=i(s,l,e);Q(c,n),Q(d,a),g||=t})),we(e,(e=>{const[t,,n]=i(s,l,e);(g||t)&&ve(u,e,[n])})),g&&a(Ve(n,c,void 0,(([,e])=>(he(e,l),ie(e)))),u,l,1),h&&a(Ve(n,d,(()=>{const e={};return ue(t,(t=>e[t]=f.getCell(s,l,t))),[ge(),Me(),void 0,e]}),(([,e])=>{De(e,l)})),u,l)})))}E(s,e,f);const L=(t,a,o,r)=>{const i=t=>e.getCell(a,o,t);k(r,(n=>{const[a,,o,r,l]=Le(h,n),c=o?.(i,t),[d,u]=Le(l,t)??[];c!=d&&(q(u)||I(s,u),ve(l,t,q(c)?null:[c,...T(s,1,e.addRowListener(a,c,(()=>L(t,a,c,r))))]))})),(t=>{const a=(s,a)=>e.getCell(...q(a)?[n,t,s]:s===n?[n,t,a]:[Le(h,s)?.[0],Le(Le(h,s)?.[4],t)?.[0],a]);f.transaction((()=>b(l,(e=>e(a)))?we(d,((e,n)=>Ee(f,s,t,e,n(a,t)))):f.delRow(s,t)))})(t)},{3:w}=Le(h,null);return f.transaction((()=>T(s,1,e.addRowListener(n,null,((t,a,o)=>{e.hasRow(n,o)?L(o,n,o,w):(f.delRow(s,o),ue(h,(({4:e})=>G(Le(e,o),(([,t])=>{I(s,t),ve(e,o)})))))}))))),M},delQueryDefinition:e=>(m(e),g(e),M),getStore:n,getQueryIds:a,forEachQuery:o,hasQuery:r,getTableId:l,delListener:e=>(y.delListener(e),M),destroy:f,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=y.getListenerStats();return n}};return ae({[h]:[1,1],[w]:[0,1],[v]:[0,5],[L]:[1,2],[R]:[0,2],[S]:[1,3]},(([e,t],s)=>{k(e?["get","has","forEach"]:["get"],(e=>M[e+c+s]=(...t)=>y[e+s](...t))),M[d+c+s+i]=(...e)=>y[d+s+i](...F(e,0,t),((s,...n)=>e[t](M,...n)))})),ee(M)})),Ge=xe((e=>{const s=ge(),n=ge(),a=ge(),o=ge(),[r,l,i,c,d,u,,,h,g,f]=Je(e,(()=>[ge(),ge(),ge(),ge()]),(e=>q(e)?void 0:e+t)),[L,w,v]=ze((()=>I)),S=(e,t,s)=>G(u(e),(([n,,a])=>{if(!le(a,t)){const o=Me();if(d(e)!=T(e))De(o,t);else{let e=t;for(;!q(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)=>G(u(e),(([,,e])=>ve(e,t))),T=e=>Le(s,e),I={setRelationshipDefinition:(e,t,r,l)=>(ve(s,e,r),h(e,t,((t,s)=>{const r=Me(),l=Me(),i=Me(),[c,d]=u(e);ue(s,(([t,s],n)=>{q(t)||(De(l,t),G(Le(d,t),(e=>{he(e,n),ie(e)&&ve(d,t)}))),q(s)||(De(l,s),le(d,s)||ve(d,s,Me()),De(Le(d,s),n)),De(r,n),ve(c,n,s),we(Le(o,e),(t=>{le(S(e,t),n)&&De(i,t)}))})),t(),ue(r,(t=>w(n,[e,t]))),ue(l,(t=>w(a,[e,t]))),ue(i,(t=>{R(e,t),w(o,[e,t])}))}),Ae(l)),I),delRelationshipDefinition:e=>(ve(s,e),g(e),I),getStore:r,getRelationshipIds:l,forEachRelationship:t=>i((s=>t(s,(t=>e.forEachRow(d(s),t))))),hasRelationship:c,getLocalTableId:d,getRemoteTableId:T,getRemoteRowId:(e,t)=>Le(u(e)?.[0],t),getLocalRowIds:(e,t)=>ce(Le(u(e)?.[1],t)),getLinkedRowIds:(e,t)=>q(u(e))?[t]:ce(S(e,t,!0)),addRemoteRowIdListener:(e,t,s)=>L(s,n,[e,t]),addLocalRowIdsListener:(e,t,s)=>L(s,a,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(S(e,t),L(s,o,[e,t])),delListener:e=>(R(...v(e)),I),destroy:f,getListenerStats:()=>({})};return ee(I)})),He=e=>[e,e],Ke=()=>[ge(),ge()],Ue=e=>[...e],Xe=([e,t])=>e===t,Ye=(e,t,s)=>q(e)||!te(e)||oe(e)||_(e)?(s?.(),!1):(ae(e,((s,n)=>{t(s,n)||ne(e,n)})),!oe(e)),Ze=(e,t,s)=>ve(e,t,Le(e,t)==-s?void 0:s),_e=()=>{let e,t,s=!1,n=!1,o=0;const c=ge(),u=ge(),v=ge(),b=ge(),m=ge(),D=ge(),J=ge(),A=ge(),x=ge(),z=ge(),N=ge(),P=ge(),W=ge(),B=Me(),$=ge(),U=ge(),X=ge(),Y=ge(),Z=Ke(),_=Ke(),te=Ke(),re=Ke(),ce=Ke(),Ve=Ke(),Je=Ke(),Ae=Ke(),xe=Ke(),Fe=Ke(),Ne=Ke(),je=Ke(),Pe=Ke(),We=Ke(),Be=ge(),$e=Ke(),[qe,Ge,et,tt]=ze((()=>fs)),st=e=>{if(!Ye(e,((e,t)=>p([r,l],t))))return!1;const t=e[r];return!(!H(t)&&t!=a||(me(e[l])!=t&&ne(e,l),0))},nt=(t,s)=>(!e||le(z,s)||At(s))&&Ye(t,((e,t)=>at(s,t,e)),(()=>At(s))),at=(e,t,s,n)=>Ye(n?s:it(s,e,t),((n,a)=>G(ot(e,t,a,n),(e=>(s[a]=e,!0)),(()=>!1))),(()=>At(e,t))),ot=(t,s,n,a)=>e?G(Le(Le(z,t),n),(e=>me(a)!=e[r]?At(t,s,n,a,e[l]):a),(()=>At(t,s,n,a))):q(me(a))?At(t,s,n,a):a,rt=(e,t)=>Ye(t?e:ct(e),((t,s)=>G(lt(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>xt())),lt=(e,s)=>t?G(Le(P,e),(t=>me(s)!=t[r]?xt(e,s,t[l]):s),(()=>xt(e,s))):q(me(s))?xt(e,s):s,it=(e,t,s)=>(G(Le(N,t),(([n,a])=>{ue(n,((t,s)=>{se(e,s)||(e[s]=t)})),ue(a,(n=>{se(e,n)||At(t,s,n)}))})),e),ct=e=>(t&&(ue(W,((t,s)=>{se(e,s)||(e[s]=t)})),ue(B,(t=>{se(e,t)||xt(t)}))),e),dt=e=>Re(z,e,((e,t,s)=>{const n=ge(),a=Me();Re(Se(z,t,ge),s,((e,t,s)=>{ve(e,t,s),G(s[l],(e=>ve(n,t,e)),(()=>De(a,t)))})),ve(N,t,[n,a])}),((e,t)=>{ve(z,t),ve(N,t)})),ut=e=>Re(P,e,((e,t,s)=>{ve(P,t,s),G(s[l],(e=>ve(W,t,e)),(()=>De(B,t)))}),((e,t)=>{ve(P,t),ve(W,t),he(B,t)})),ht=e=>oe(e)?os():es(e),gt=e=>Re(X,e,((e,t,s)=>ft(t,s)),((e,t)=>yt(t))),ft=(e,t)=>Re(Se(X,e,(()=>(mt(e,1),ve($,e,Qe()),ve(U,e,ge()),ge()))),t,((t,s,n)=>Lt(e,t,s,n)),((t,s)=>pt(e,t,s))),Lt=(e,t,s,n,a)=>Re(Se(t,s,(()=>(Et(e,s,1),ge()))),n,((t,n,a)=>wt(e,s,t,n,a)),((n,o)=>bt(e,t,s,n,o,a))),wt=(e,t,s,n,a)=>{le(s,n)||kt(e,t,n,1);const o=Le(s,n);a!==o&&(Mt(e,t,n,o,a),ve(s,n,a))},vt=(e,t,s,n,a)=>G(Le(t,s),(t=>wt(e,s,t,n,a)),(()=>Lt(e,t,s,it({[n]:a},e,s)))),St=e=>oe(e)?is():ts(e),Rt=e=>Re(Y,e,((e,t,s)=>Tt(t,s)),((e,t)=>Vt(t))),Tt=(e,t)=>{le(Y,e)||Dt(e,1);const s=Le(Y,e);t!==s&&(Jt(e,s,t),ve(Y,e,t))},It=(e,t)=>{const[s]=Le($,e),n=s(t);return le(Le(X,e),n)?It(e,t):n},Ct=e=>Le(X,e)??ft(e,{}),yt=e=>ft(e,{}),pt=(e,t,s)=>{const[,n]=Le($,e);n(s),Lt(e,t,s,{},!0)},bt=(e,t,s,n,a,o)=>{const r=Le(Le(N,e)?.[0],a);if(!q(r)&&!o)return wt(e,s,n,a,r);const l=t=>{Mt(e,s,t,Le(n,t)),kt(e,s,t,-1),ve(n,t)};q(r)?l(a):we(n,l),ie(n)&&(Et(e,s,-1),ie(ve(t,s))&&(mt(e,-1),ve(X,e),ve($,e),ve(U,e)))},Vt=e=>{const t=Le(W,e);if(!q(t))return Tt(e,t);Jt(e,Le(Y,e)),Dt(e,-1),ve(Y,e)},mt=(e,t)=>Ze(c,e,t),Et=(e,t,s)=>Ze(Se(v,e,ge),t,s),kt=(e,t,s,n)=>{const a=Le(U,e),o=Le(a,s)??0;(0==o&&1==n||1==o&&-1==n)&&Ze(Se(u,e,ge),s,n),ve(a,s,o!=-n?o+n:null),Ze(Se(Se(b,e,ge),t,ge),s,n)},Mt=(e,t,s,n,a)=>Se(Se(Se(m,e,ge),t,ge),s,(()=>[n,0]))[1]=a,Dt=(e,t)=>Ze(D,e,t),Jt=(e,t,s)=>Se(J,e,(()=>[t,0]))[1]=s,At=(e,t,s,n,a)=>(Q(Se(Se(Se(A,e,ge),t,ge),s,(()=>[])),n),a),xt=(e,t,s)=>(Q(Se(x,e,(()=>[])),t),s),Ft=(e,t,s)=>G(Le(Le(Le(m,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...He(Xt(e,t,s))])),Qt=e=>G(Le(J,e),(([e,t])=>[!0,e,t]),(()=>[!1,...He(_t(e))])),zt=e=>ie(A)||ie(Fe[e])?0:ue(e?be(A):A,((t,s)=>ue(t,((t,n)=>ue(t,((t,a)=>Ge(Fe[e],[s,n,a],t))))))),Nt=e=>ie(x)||ie(Ne[e])?0:ue(e?ye(x):x,((t,s)=>Ge(Ne[e],[s],t))),Ot=(e,t,s)=>{if(!ie(t))return Ge(e,s,(()=>Te(t))),1},jt=e=>{const t=ie(Ve[e]),s=ie(Ae[e])&&ie(re[e])&&ie(ce[e])&&t&&ie(_[e]),n=ie(xe[e])&&ie(Je[e])&&ie(te[e])&&ie(Z[e]);if(!s||!n){const a=e?[ye(c),pe(u),pe(v),be(b),be(m)]:[c,u,v,b,m];if(!s){Ot(_[e],a[0]),ue(a[1],((t,s)=>Ot(re[e],t,[s])));const s=Me();ue(a[2],((n,a)=>{Ot(ce[e],n,[a])&&!t&&(Ge(Ve[e],[a,null]),De(s,a))})),t||ue(a[4],((t,n)=>{if(!le(s,n)){const s=Me();ue(t,(e=>ue(e,(([t,n],a)=>n!==t?De(s,a):he(e,a))))),ue(s,(t=>Ge(Ve[e],[n,t])))}})),ue(a[3],((t,s)=>ue(t,((t,n)=>Ot(Ae[e],t,[s,n])))))}if(!n){let t;ue(a[4],((s,n)=>{let a;ue(s,((s,o)=>{let r;ue(s,(([s,l],i)=>{l!==s&&(Ge(xe[e],[n,o,i],l,s,Ft),t=a=r=1)})),r&&Ge(Je[e],[n,o],Ft)})),a&&Ge(te[e],[n],Ft)})),t&&Ge(Z[e],void 0,Ft)}}},Pt=e=>{const t=ie(Pe[e]),s=ie(We[e])&&ie(je[e]);if(!t||!s){const n=e?[ye(D),ye(J)]:[D,J];if(t||Ot(Pe[e],n[0]),!s){let t;ue(n[1],(([s,n],a)=>{n!==s&&(Ge(We[e],[a],n,s,Qt),t=1)})),t&&Ge(je[e],void 0,Qt)}}},Wt=(e,...t)=>(us((()=>e(...M(t,y)))),fs),Bt=()=>[Te(m,((e,t)=>-1===Le(c,t)?null:Te(e,((e,s)=>-1===Le(Le(v,t),s)?null:Te(e,(([,e])=>e??null),((e,t)=>Xe(t)))),oe)),oe),Te(J,(([,e])=>e??null),((e,t)=>Xe(t)))],$t=()=>({cellsTouched:s,valuesTouched:n,changedCells:Ce(m,Ue,Xe),invalidCells:Ce(A),changedValues:Te(J,Ue,Xe),invalidValues:Te(x),changedTableIds:Te(c),changedRowIds:Ie(v),changedCellIds:Ce(b),changedValueIds:Te(D)}),qt=()=>Ce(X),Gt=()=>fe(X),Ht=e=>fe(Le(X,y(e))),Kt=(e,t,s,n=0,a)=>{return M(F(E((o=Le(X,y(e)),r=(e,s)=>[q(t)?s:Le(e,y(t)),s],M([...o?.entries()??[]],(([e,t])=>r(t,e)))),(([e],[t])=>Oe(e,t)*(s?-1:1))),n,q(a)?a:n+a),(([,e])=>e));var o,r},Ut=(e,t)=>fe(Le(Le(X,y(e)),y(t))),Xt=(e,t,s)=>Le(Le(Le(X,y(e)),y(t)),y(s)),Yt=()=>Te(Y),Zt=()=>fe(Y),_t=e=>Le(Y,y(e)),es=e=>Wt((()=>(e=>Ye(e,nt,At))(e)?gt(e):0)),ts=e=>Wt((()=>rt(e)?Rt(e):0)),ss=e=>{try{ht(j(e))}catch{}return fs},ns=t=>Wt((()=>{if((e=Ye(t,(e=>Ye(e,st))))&&(dt(t),!ie(X))){const e=qt();os(),es(e)}})),as=e=>Wt((()=>{if(t=(e=>Ye(e,st))(e)){const s=Yt();ds(),is(),t=!0,ut(e),ts(s)}})),os=()=>Wt((()=>gt({}))),rs=e=>Wt((e=>le(X,e)?yt(e):0),e),ls=(e,t)=>Wt(((e,t)=>G(Le(X,e),(s=>le(s,t)?pt(e,s,t):0))),e,t),is=()=>Wt((()=>Rt({}))),cs=()=>Wt((()=>{dt({}),e=!1})),ds=()=>Wt((()=>{ut({}),t=!1})),us=(e,t)=>{if(-1!=o){hs();const s=e();return gs(t),s}},hs=()=>(-1!=o&&o++,1==o&&Ge(Be,void 0,Bt,$t),fs),gs=e=>(o>0&&(o--,0==o&&(s=!ie(m),n=!ie(J),o=1,zt(1),s&&jt(1),Nt(1),n&&Pt(1),e?.(Bt,$t)&&(ue(m,((e,t)=>ue(e,((e,s)=>ue(e,(([e],n)=>Ee(fs,t,s,n,e))))))),ue(J,(([e],t)=>ke(fs,t,e))),s=n=!1),Ge($e[0],void 0,Bt,$t),o=-1,zt(0),s&&jt(0),Nt(0),n&&Pt(0),Ge($e[1],void 0,Bt,$t),o=0,s=n=!1,k([c,u,v,b,m,A,D,J,x],de))),fs),fs={getContent:()=>[qt(),Yt()],getTables:qt,getTableIds:Gt,getTable:e=>Ie(Le(X,y(e))),getTableCellIds:e=>fe(Le(U,y(e))),getRowIds:Ht,getSortedRowIds:Kt,getRow:(e,t)=>Te(Le(Le(X,y(e)),y(t))),getCellIds:Ut,getCell:Xt,getValues:Yt,getValueIds:Zt,getValue:_t,hasTables:()=>!ie(X),hasTable:e=>le(X,y(e)),hasTableCell:(e,t)=>le(Le(U,y(e)),y(t)),hasRow:(e,t)=>le(Le(X,y(e)),y(t)),hasCell:(e,t,s)=>le(Le(Le(X,y(e)),y(t)),y(s)),hasValues:()=>!ie(Y),hasValue:e=>le(Y,y(e)),getTablesJson:()=>O(X),getValuesJson:()=>O(Y),getJson:()=>O([X,Y]),getTablesSchemaJson:()=>O(z),getValuesSchemaJson:()=>O(P),getSchemaJson:()=>O([z,P]),setContent:([e,t])=>Wt((()=>{(oe(e)?os:es)(e),(oe(t)?is:ts)(t)})),setTables:es,setTable:(e,t)=>Wt((e=>nt(t,e)?ft(e,t):0),e),setRow:(e,t,s)=>Wt(((e,t)=>at(e,t,s)?Lt(e,Ct(e),t,s):0),e,t),addRow:(e,t,s=!0)=>us((()=>{let n;return at(e,n,t)&&(e=y(e),Lt(e,Ct(e),n=It(e,s?1:0),t)),n})),setPartialRow:(e,t,s)=>Wt(((e,t)=>{if(at(e,t,s,1)){const n=Ct(e);ae(s,((s,a)=>vt(e,n,t,a,s)))}}),e,t),setCell:(e,t,s,n)=>Wt(((e,t,s)=>G(ot(e,t,s,K(n)?n(Xt(e,t,s)):n),(n=>vt(e,Ct(e),t,s,n)))),e,t,s),setValues:ts,setPartialValues:e=>Wt((()=>rt(e,1)?ae(e,((e,t)=>Tt(t,e))):0)),setValue:(e,t)=>Wt((e=>G(lt(e,K(t)?t(_t(e)):t),(t=>Tt(e,t)))),e),setTransactionChanges:e=>Wt((()=>{ae(e[0],((e,t)=>q(e)?rs(t):ae(e,((e,s)=>q(e)?ls(t,s):ae(e,((e,n)=>Ee(fs,t,s,n,e))))))),ae(e[1],((e,t)=>ke(fs,t,e)))})),setTablesJson:ss,setValuesJson:e=>{try{St(j(e))}catch{}return fs},setJson:e=>{try{const[t,s]=j(e);ht(t),St(s)}catch{ss(e)}return fs},setTablesSchema:ns,setValuesSchema:as,setSchema:(e,t)=>Wt((()=>{ns(e),as(t)})),delTables:os,delTable:rs,delRow:ls,delCell:(e,t,s,n)=>Wt(((e,t,s)=>G(Le(X,e),(a=>G(Le(a,t),(o=>le(o,s)?bt(e,a,t,o,s,n):0))))),e,t,s),delValues:is,delValue:e=>Wt((e=>le(Y,e)?Vt(e):0),e),delTablesSchema:cs,delValuesSchema:ds,delSchema:()=>Wt((()=>{cs(),ds()})),transaction:us,startTransaction:hs,finishTransaction:gs,forEachTable:e=>ue(X,((t,s)=>e(s,(e=>ue(t,((t,s)=>e(s,(e=>we(t,e))))))))),forEachTableCell:(e,t)=>we(Le(U,y(e)),t),forEachRow:(e,t)=>ue(Le(X,y(e)),((e,s)=>t(s,(t=>we(e,t))))),forEachCell:(e,t,s)=>we(Le(Le(X,y(e)),y(t)),s),forEachValue:e=>we(Y,e),addSortedRowIdsListener:(e,t,s,n,a,o,r)=>{let l=Kt(e,t,s,n,a);return qe((()=>{const r=Kt(e,t,s,n,a);V(r,l)||(l=r,o(fs,e,t,s,n,a,l))}),Ve[r?1:0],[e,t],[Gt])},addStartTransactionListener:e=>qe(e,Be),addWillFinishTransactionListener:e=>qe(e,$e[0]),addDidFinishTransactionListener:e=>qe(e,$e[1]),callListener:e=>(tt(e),fs),delListener:e=>(et(e),fs),getListenerStats:()=>({}),createStore:_e};return ae({[g]:[0,Z],[f]:[0,_],[h]:[1,te,[Gt]],[h+R]:[1,re,[Gt]],[w]:[1,ce,[Gt]],[L]:[2,Je,[Gt,Ht]],[R]:[2,Ae,[Gt,Ht]],[S]:[3,xe,[Gt,Ht,Ut],e=>He(Xt(...e))],InvalidCell:[3,Fe],[I]:[0,je],[C]:[0,Pe],[T]:[1,We,[Zt],e=>He(_t(e[0]))],InvalidValue:[1,Ne]},(([e,t,s,n],a)=>{fs[d+a+i]=(...a)=>qe(a[e],t[a[e+1]?1:0],e>0?F(a,0,e):void 0,s,n)})),ee(fs)};export{Ne as createCheckpoints,$e as createCustomPersister,je as createIndexes,Be as createMetrics,qe as createQueries,Ge as createRelationships,_e as createStore,Oe as defaultSorter};
Binary file
package/lib/tools.js CHANGED
@@ -1 +1 @@
1
- const e=e=>typeof e,t="",l=e(t),a=e(!0),n=e(0),o="type",d="default",r="Listener",s="get",I="add",$="Ids",c="Table",i=c+"s",u=c+$,p="Row",b=p+$,C="Sorted"+p+$,g="Cell",h=g+$,m="Value",f=m+"s",w=m+$,y=(e,t)=>e.every(t),T=(e,t)=>e.sort(t),v=(e,t)=>e.forEach(t),V=(e,t)=>e.map(t),x=e=>e.length,R=e=>0==x(e),k=(e,t)=>e.filter(t),S=(e,...t)=>e.push(...t),A=e=>e.pop(),P=(e,...t)=>e.unshift(...t),E=e=>e.shift(),D=JSON.parse,O=isFinite,N=(e,t)=>e instanceof t,L=e=>null==e,G=e=>e==l||e==a,j=t=>e(t)==l,M=e=>Array.isArray(e),J=t=>{const l=e(t);return G(l)||l==n&&O(t)?l:void 0},z=Object,W=z.keys,B=z.freeze,F=e=>N(e,z)&&e.constructor==z,U=(e,t)=>V(z.entries(e),(([e,l])=>t(l,e))),_=e=>F(e)&&R(W(e)),Z=(e,t)=>e?.has(t)??!1,H=e=>[...e?.values()??[]],Q=(e,t)=>e?.forEach(t),q=(e,t)=>e?.delete(t),K=e=>new Map(e),X=(e,t)=>e?.get(t),Y=(e,t)=>Q(e,((e,l)=>t(l,e))),ee=(e,t)=>V([...e?.entries()??[]],(([e,l])=>t(l,e))),te=(e,t,l)=>L(l)?(q(e,t),e):e?.set(t,l),le=(e,t,l)=>(Z(e,t)||te(e,t,l()),X(e,t)),ae=e=>e.toUpperCase(),ne=e=>e.toLowerCase(),oe="a ",de="A function for",re=", and registers a listener so that any changes to that result will cause a re-render",se="Callback",Ie="Del",$e="Deps",ce=$e+"?: React.DependencyList",ie="doRollback?: DoRollback",ue="actions: () => Return, "+ie,pe="export",be="Id",Ce="Invalid",ge="Json",he=ne(r),me="?: ",fe=" | undefined",we="NonNullable",ye="Partial",Te="Props",ve="Provider",Ve=`Registers a ${he} that will be called`,xe="Represents",Re="rowId: "+be,ke="Schema",Se="Set",Ae=", descending?: boolean, offset?: number, limit?: number",Pe="[]",Ee="the Store",De="Transaction",Oe=De+"Changes",Ne=ne(De),Le="Execute a "+Ne+" to make multiple mutations",Ge="Explicitly starts a "+Ne,je="Explicitly finishes a "+Ne,Me="the end of the "+Ne,Je="void",ze=" => "+Je,We="WhenSet",Be=" when setting it",Fe=oe+"string serialization of",Ue=" ",_e="Gets a callback that can ",Ze="the ",He=" the schema for",Qe=(e=0,l=0)=>`the ${ut[e]}content of`+(l?Ue+Ee:t),qe=(e=0,l,a=0)=>$t[l]+Ue+Qe(e,1)+(a?" when setting it":t),Ke=(e,t=0)=>xe+` a Row when ${t?"s":"g"}etting ${Qe()} the '${e}' `+c,Xe=(e,t,l=0)=>`Gets ${l?"sorted, paginated":"the"} Ids of the ${e}s in `+t,Ye=(e,t)=>`Calls a function for each ${e} in `+t,et=e=>"The props passed to a component that renders "+e,tt=e=>"A function that takes "+e,lt=(e,t=0)=>de+" listening to changes to "+it[e]+" in "+it[t],at=(e,l,a=0)=>Ve+" whenever "+it[e]+" in "+it[l]+" change"+(a?t:"s"),nt=e=>`the '${e}' `+c,ot=e=>"the specified Row in "+nt(e),dt=(e,t=0)=>$t[t]+` ${Qe()} `+nt(e),rt=(e,t=0)=>$t[t]+` ${Qe()} `+ot(e),st=(e,t,l=0)=>$t[l]+` the '${t}' Cell for `+ot(e),It=(e,t=0)=>$t[t]+` the '${e}' Value`,$t=["Gets","Checks existence of","Sets","Deletes","Sets part of",xe,"Gets "+Fe,"Sets "+Fe,Ve+" whenever",_e+"set",_e+"add",_e+"set part of",_e+"delete","Renders","Gets "+Fe+He,"Sets"+He,"Deletes"+He],ct=[s,"has","set","del","set","forEach",I,t],it=[Ee,i,Ze+c+Ue+$,oe+c,Ze+p+Ue+$,oe+p,Ze+g+Ue+$,oe+g,"invalid Cell changes",f,Ze+m+Ue+$,oe+m,"invalid Value changes",Ze+"sorted "+p+Ue+$],ut=[t,"tabular ","keyed value "],pt=e=>new Set(M(e)||L(e)?e:[e]),bt=(e,t)=>e?.add(t),Ct=/[^A-Za-z]+/,gt=/[^A-Za-z0-9]+/,ht=/^( *)\/\*\* *(.*?) *\*\/$/gm,mt=(e,t,l)=>e.substring(t,l),ft=e=>e.includes(","),wt=(e,t,l,a=1)=>{const n=`${t}${1==a?"":a}`;return Z(e,n)?wt(e,t,l,a+1):(te(e,n,l),n)},yt=e=>e.replace(ht,((e,t,l)=>{const a=77-Tt(t);return`${t}/**\n${l.replace(RegExp(`([^\\n]{1,${a}})(\\s|$)`,"g"),t+" * $1\n")}${t} */`})),Tt=e=>e.length,vt=(e,l=t)=>e.join(l),Vt=e=>e.flat(1e3),xt=(e,t=0)=>vt(V(e.split(gt),((e,l)=>(l>0||t?ae:ne)(mt(e,0,1))+mt(e,1)))),Rt=e=>ae(vt((e&&!Ct.test(e[0])?e:" "+e).split(gt),"_")),kt=e=>`/** ${e}. */`,St=(...e)=>vt(k(e,(e=>e)),", "),At=(...e)=>"{"+vt(e,"; ")+"}",Pt=(...e)=>At(...V(e,(e=>"readonly "+e))),Et=()=>{const e=[K(),K(),K(),K()],l=K(),a=K();return[(...e)=>vt(Vt(e),"\n"),(t,l,...a)=>v(a,(a=>v([0,1],(n=>(t??n)==n?bt(le(e[n],l,pt),a):0)))),(e,a,n,o=t,d=1)=>wt(l,e,[a,n,o,d]),(e,t,l)=>wt(a,e,M(l)?[`(${t}) => {`,l,"}"]:[`(${t}) => ${l}`]),(e,t)=>X(a,e)===t?e:wt(a,e,t),(l=0)=>V([...T(ee(e[l],((e,t)=>`import {${vt(T(H(e)),", ")}} from '${t}';`)),((e,t)=>ft(e)!=ft(t)?ft(e)?-1:1:e>t?1:-1)),t],(e=>e.replace("{React}","React"))),()=>ee(l,(([e,l,a,n],o)=>[kt(l),`${n?pe+" ":t}type ${o}${a} = ${e};`,t])),()=>ee(a,((e,l)=>(e=M(e)?e:[e],S(e,A(e)+";"),[`const ${l} = ${E(e)}`,e,t])))]},Dt=e=>{const t=new WeakMap;return l=>(t.has(l)||t.set(l,e(l)),t.get(l))},Ot=(e,t,l)=>[t=>U(e,((e,a)=>t(a,xt(a,1),l(Rt(a),`'${a}'`)))),(t,a)=>U(e[t],((e,t)=>a(t,e[o],e[d],l(Rt(t),`'${t}'`),xt(t,1)))),e=>U(t,((t,a)=>e(a,t[o],t[d],l(Rt(a),`'${a}'`),xt(a,1))))],Nt=(e,l,a,n)=>[(n,o)=>{const d=n+": "+o,s=e(i,At(...l((e=>`'${e}'?: {[rowId: Id]: `+At(...a(e,((e,l,a)=>`'${e}'${L(a)?"?":t}: ${l}`)))+"}"))),qe(1,5)),I=e(i+We,At(...l((e=>`'${e}'?: {[rowId: Id]: `+At(...a(e,((e,t)=>`'${e}'?: ${t}`)))+"}"))),qe(1,5,1)),$=e(c+be,"keyof "+s,"A "+c+" Id in "+Ee),m=`<TId extends ${$}>`,f=e(c,we+`<${s}[TId]>`,"A "+c+" in "+Ee,m),w=e(c+We,we+`<${I}[TId]>`,"A "+c+" in "+Ee+Be,m),y=e(p,f+"<TId>[Id]","A "+p+" in a "+c,m),T=e(p+We,w+"<TId>[Id]","A "+p+" in a "+c+Be,m),v=e(g+be,`Extract<keyof ${y}<TId>, Id>`,"A "+g+" Id in a "+p,m),V=e(g,we+`<${s}[TId]>[Id][CId]`,"A "+g+" in a "+p,`<TId extends ${$}, CId extends ${v}<TId>>`),x=e("CellIdCellArray",`CId extends ${v}<TId> ? [cellId: CId, cell: ${V}<TId, CId>] : never`,g+" Ids and types in a "+p,`<TId extends ${$}, CId = ${v}<TId>>`,0),R=e(g+se,`(...[cellId, cell]: ${x}<TId>)`+ze,tt(oe+g+" Id, and "+g),m),k=e(p+se,"(rowId: Id, forEachCell: (cellCallback: CellCallback<TId>) "+ze+") "+ze,tt(oe+p+" Id, and a "+g+" iterator"),m),S=e("TableIdForEachRowArray",`TId extends ${$} ? [tableId: TId, forEachRow: (rowCallback: ${k}<TId>)${ze}] : never`,c+" Ids and callback types",`<TId = ${$}>`,0),A=e(c+se,`(...[tableId, forEachRow]: ${S})`+ze,tt(oe+c+" Id, and a "+p+" iterator"),t),P=e("TableIdRowIdCellIdArray",`TId extends ${$} ? [tableId: TId, rowId: Id, cellId: ${v}<TId>] : never`,"Ids for GetCellChange",`<TId = ${$}>`,0),E=e("GetCellChange",`(...[tableId, rowId, cellId]: ${P}) => CellChange`,de+" returning information about any Cell's changes during a "+Ne),D=e(i+r,`(${d}, getCellChange: ${E}${fe})`+ze,lt(1)),O=e(u+r,`(${d})`+ze,lt(2)),N=e(c+r,`(${d}, tableId: ${$}, getCellChange: ${E}${fe})`+ze,lt(3)),G=e(b+r,`(${d}, tableId: ${$})`+ze,lt(4,3)),j=e(C+r,"("+St(d,"tableId: "+$,"cellId: Id"+fe,"descending: boolean","offset: number","limit: number"+fe,"sortedRowIds: Ids")+")"+ze,lt(13,3)),M=e(p+r,"("+St(""+d,"tableId: "+$,Re,`getCellChange: ${E}${fe}`)+")"+ze,lt(5,3)),J=e(h+r,"("+St(""+d,"tableId: "+$,Re)+")"+ze,lt(6,5)),z=e("CellListenerArgsArrayInner",`CId extends ${v}<TId> ? [${d}, tableId: TId, ${Re}, cellId: CId, newCell: ${V}<TId, CId> ${fe}, oldCell: ${V}<TId, CId> ${fe}, getCellChange: ${E} ${fe}] : never`,"Cell args for CellListener",`<TId extends ${$}, CId = ${v}<TId>>`,0),W=e("CellListenerArgsArrayOuter",`TId extends ${$} ? `+z+"<TId> : never","Table args for CellListener",`<TId = ${$}>`,0);return[s,I,$,f,w,y,T,v,V,R,k,A,D,O,N,G,j,M,J,e(g+r,`(...[${n}, tableId, rowId, cellId, newCell, oldCell, getCellChange]: ${W})`+ze,lt(7,5)),e(Ce+g+r,`(${d}, tableId: Id, ${Re}, cellId: Id, invalidCells: any[])`+ze,lt(8))]},(l,a)=>{const o=l+": "+a,d=e(f,At(...n(((e,l,a)=>`'${e}'${L(a)?"?":t}: ${l}`))),qe(2,5)),s=e(f+We,At(...n(((e,t)=>`'${e}'?: ${t}`))),qe(2,5,1)),I=e(m+be,"keyof "+d,"A "+m+" Id in "+Ee),$=e(m,we+`<${d}[VId]>`,"A "+m+" Id in "+Ee,`<VId extends ${I}>`),c=e("ValueIdValueArray",`VId extends ${I} ? [valueId: VId, value: ${$}<VId>] : never`,m+" Ids and types in "+Ee,`<VId = ${I}>`,0),i=e(m+se,`(...[valueId, value]: ${c})`+ze,tt(oe+m+" Id, and "+m)),u=e("GetValueChange",`(valueId: ${I}) => ValueChange`,de+" returning information about any Value's changes during a "+Ne),p=e(f+r,`(${o}, getValueChange: ${u}${fe})`+ze,lt(9)),b=e(w+r,`(${o})`+ze,lt(10)),C=e("ValueListenerArgsArray",`VId extends ${I} ? [${o}, valueId: VId, newValue: ${$}<VId> ${fe}, oldValue: ${$}<VId> ${fe}, getValueChange: ${u} ${fe}] : never`,"Value args for ValueListener",`<VId = ${I}>`,0);return[d,s,I,$,i,p,b,e(m+r,`(...[${l}, valueId, newValue, oldValue, getValueChange]: `+C+")"+ze,lt(11)),e(Ce+m+r,`(${o}, valueId: Id, invalidValues: any[])`+ze,lt(12))]},(t,l)=>e(De+r,`(${t}: ${l}, getTransactionChanges: GetTransactionChanges, getTransactionLog: GetTransactionLog)`+ze,de+" listening to the completion of a "+Ne)],Lt=(e,l=t,a=t)=>`store.${e}(${l})`+(a?" as "+a:t),Gt=(e,l=t)=>`fluent(() => ${Lt(e,l)})`,jt=(e,l=t,a=t)=>`store.${e}(${l?l+", ":t}proxy(listener)${a?", "+a:t})`,Mt=(e,l,n)=>{const[s,y,T,V,x,R,k,A]=Et(),[E,D,O]=Ot(e,l,x),[N,G,M]=Nt(T,E,D,O),J=K(),z=(e=0)=>ee(J,(([l,a,n,o,d],r)=>{const s=e?[r+`: ${d}(${l}): ${a} => ${n},`]:[r+d+`(${l}): ${a};`];return e||P(s,kt(o)),S(s,t),s})),W=(e,l,a,n,o,d=t)=>wt(J,e,[l,a,n,o,d]),B=(e,l,a,n,o,d=t,r=t,s=t)=>W(ct[e]+l+(4==e?ye:t)+a,d,n,(n==Z?Gt:Lt)(ct[e]+(4==e?ye:t)+a,r,e?void 0:n),o,s),F=(e,l,a,n=t,o=t,d=1,s=t)=>W(I+e+r,(n?n+", ":t)+he+": "+l+(d?", mutator?: boolean":t),be,jt(I+e+r,o,d?"mutator":t),a,s),U=`./${xt(n)}.d`,Z=xt(n,1),Q=xt(Z),q=[],le=K();let ae=[],ne=[];if(y(1,U,Z,`create${Z} as create${Z}Decl`),_(e))y(null,"tinybase",i);else{y(0,"tinybase","CellChange"),y(null,"tinybase",$);const[e,l,n,r,s,I,m,f,w,V,R,k,A,P,O,G,M,J,z,W,_]=N(Q,Z),Y=K();E(((e,t)=>{const l=`<'${e}'>`,a=[T(t+c,r+l,xe+` the '${e}' `+c),T(t+c+We,s+l,xe+` the '${e}' `+c+Be),T(t+p,I+l,Ke(e)),T(t+p+We,m+l,Ke(e,1)),T(t+g+be,f+l,`A Cell Id for the '${e}' `+c),T(t+g+se,V+l,tt(`a Cell Id and value from a Row in the '${e}' `+c)),T(t+p+se,R+l,tt(`a Row Id from the '${e}' Table, and a Cell iterator`))];te(Y,e,a),y(1,U,...a)})),y(1,U,e,l,n,f,k,A,P,O,G,M,J,z,W,_),ae=[e,l,n,f,A,P,O,G,M,J,z,W,Y],v([[e],[a],[Z,"tables: "+l,"tables"],[Z]],(([e,l,a],n)=>B(n,t,i,e,qe(1,n),l,a))),B(0,t,u,n+Pe,Xe(c,Ee)),B(5,t,c,Je,Ye(c,Ee),"tableCallback: "+k,"tableCallback as any"),E(((e,l,n)=>{const[o,d,r,s,I,i,u]=X(Y,e);v([[o],[a],[Z,"table: "+d,", table"],[Z]],(([a,o,d=t],r)=>B(r,l,c,a,dt(e,r),o,n+d))),B(0,l,b,$,Xe(p,nt(e)),t,n),B(0,l,C,$,Xe(p,nt(e),1),"cellId?: "+I+Ae,n+", cellId, descending, offset, limit"),B(5,l,p,Je,Ye(p,nt(e)),"rowCallback: "+u,n+", rowCallback as any"),v([[r],[a],[Z,", row: "+s,", row"],[Z],[Z,", partialRow: "+s,", partialRow"]],(([a,o=t,d=t],r)=>B(r,l,p,a,rt(e,r),Re+o,n+", rowId"+d))),B(6,l,p,be+fe,"Add a new Row to "+nt(e),"row: "+s+", reuseIds?: boolean",n+", row, reuseIds"),B(0,l,h,I+Pe,Xe(g,ot(e)),Re,n+", rowId"),B(5,l,g,Je,Ye(g,ot(e)),Re+", cellCallback: "+i,n+", rowId, cellCallback as any"),D(e,((o,d,r,s,I)=>{const $="Map"+xt(d,1);te(le,d,$);const c=d+(L(r)?fe:t);v([[c],[a],[Z,`, cell: ${d} | `+$,", cell as any"],[Z]],(([a,d=t,r=t],$)=>B($,l+I,g,a,st(e,o,$),Re+d,n+", rowId, "+s+r)))}))})),B(0,t,i+ge,ge,qe(1,6)),B(2,t,i+ge,Z,qe(1,7),"tablesJson: "+ge,"tables"+ge),F(i,A,qe(1,8)+" changes"),F(u,P,at(2,0,1)),F(c,O,at(3,0),`tableId: ${n} | null`,"tableId"),F(b,G,at(4,3,1),`tableId: ${n} | null`,"tableId"),F(C,M,at(13,3,1),St("tableId: TId",`cellId: ${f}<TId>`+fe,"descending: boolean","offset: number","limit: number"+fe),St("tableId","cellId","descending","offset","limit"),1,"<TId extends TableId>"),F(p,J,at(5,3),`tableId: ${n} | null, rowId: IdOrNull`,"tableId, rowId"),F(h,z,at(6,5,1),`tableId: ${n} | null, rowId: IdOrNull`,"tableId, rowId"),F(g,W,at(7,5),`tableId: ${n} | null, rowId: IdOrNull, cellId: ${vt(E((e=>X(Y,e)?.[4]??t))," | ")} | null`,"tableId, rowId, cellId"),F(Ce+g,_,Ve+" whenever an invalid Cell change was attempted","tableId: IdOrNull, rowId: IdOrNull, cellId: IdOrNull","tableId, rowId, cellId"),y(1,U,...H(le)),S(q,".set"+i+ke+"({",Vt(E(((e,l,a)=>[`[${a}]: {`,...D(e,((e,l,a,n)=>`[${n}]: {[${x(Rt(o),`'${o}'`)}]: ${x(Rt(l),`'${l}'`)}${L(a)?t:`, [${x(Rt(d),`'${d}'`)}]: `+(j(a)?x(Rt(a),`'${a}'`):a)}},`)),"},"]))),"})")}if(_(l))y(null,"tinybase",f);else{const[e,l,n,r,s,I,$,c,i]=G(Q,Z);y(1,U,e,l,n,s,I,$,c,i),ne=[e,l,n,I,$,c],v([[e],[a],[Z,"values: "+l,"values"],[Z],[Z,"partialValues: "+l,"partialValues"]],(([e,l,a],n)=>B(n,t,f,e,qe(2,n),l,a))),B(0,t,w,n+Pe,Xe(m,Ee)),B(5,t,m,"void",Ye(m,Ee),"valueCallback: "+s,"valueCallback as any"),O(((e,l,n,o,d)=>{const r="Map"+xt(l,1);te(le,l,r),v([[l],[a],[Z,`value: ${l} | `+r,", value as any"],[Z]],(([l,a,n=t],r)=>B(r,d,m,l,It(e,r),a,o+n)))})),B(0,t,f+ge,ge,qe(2,6)),B(2,t,f+ge,Z,qe(2,7),"valuesJson: "+ge,"values"+ge),F(f,I,qe(2,8)+" changes"),F(w,$,at(10,0,1)),F(m,c,at(11,0),`valueId: ${n} | null`,"valueId"),F(Ce+m,i,Ve+" whenever an invalid Value change was attempted","valueId: IdOrNull","valueId"),y(1,U,...H(le)),y(0,"tinybase","ValueChange"),S(q,".set"+f+ke+"({",O(((e,l,a,n)=>[`[${n}]: {[${x(Rt(o),`'${o}'`)}]: ${x(Rt(l),`'${l}'`)}${L(a)?t:`, [${x(Rt(d),`'${d}'`)}]: `+(j(a)?x(Rt(a),`'${a}'`):a)}},`])),"})")}B(0,t,"Content",`[${i}, ${f}]`,qe(0,0)),B(2,t,"Content",Z,qe(0,2),`[tables, values]: [${i}, ${f}]`,"[tables, values]"),B(2,t,Oe,Z,`Applies a set of ${Oe} to the Store`,"transactionChanges: "+Oe,"transactionChanges"),Y(le,((e,t)=>T(t,`(cell: ${e}${fe}) => `+e,`Takes a ${e} Cell value and returns another`))),y(null,"tinybase","DoRollback",be,"IdOrNull",ge,"Store",Oe),y(0,"tinybase","Get"+Oe,"GetTransactionLog"),B(0,t,ge,ge,qe(0,6)),B(2,t,ge,Z,qe(0,7),"tablesAndValuesJson: "+ge,"tablesAndValuesJson"),B(7,t,Ne,"Return",Le,ue,"actions, doRollback","<Return>"),B(7,t,"start"+De,Z,Ge),B(7,t,"finish"+De,Z,je,ie,"doRollback");const oe=M(Q,Z);return F("Start"+De,oe,Ve+" just before the start of the "+Ne,t,t,0),F("WillFinish"+De,oe,Ve+" just before "+Me,t,t,0),F("DidFinish"+De,oe,Ve+" just after "+Me,t,t,0),B(7,t,"call"+r,Z,"Manually provoke a listener to be called","listenerId: Id","listenerId"),B(3,t,r,Z,"Remove a listener that was previously added to "+Ee,"listenerId: Id","listenerId"),W("getStore",t,"Store","store",$t[0]+" the underlying Store object"),y(1,"tinybase","createStore"),y(1,U,Z,`create${Z} as create${Z}Decl`,oe),x("store",["createStore()",...q]),V("fluent","actions: () => Store",["actions();",`return ${Q};`]),V("proxy","listener: any",`(_: Store, ...params: any[]) => listener(${Q}, ...params)`),x(Q,["{",...z(1),"}"]),[s(...R(0),...k(),pe+" interface "+Z+" {",...z(0),"}",t,kt(`Creates a ${Z} object`),pe+" function create"+Z+"(): "+Z+";"),s(...R(1),pe+" const create"+Z+": typeof create"+Z+"Decl = () => {",...A(),`return Object.freeze(${Q});`,"};"),ae,ne]},Jt=e=>s+e,zt=e=>St(Jt(e),Jt(e)+$e),Wt="debugIds?: boolean",Bt="debugIds={debugIds}",Ft="then"+ce,Ut="Parameter",_t=": (parameter: "+Ut+", store: Store) => ",Zt="const contextValue = useContext(Context);",Ht=", based on a parameter",Qt=": ",qt="<"+Ut+",>",Kt=Ut+"ized"+se+"<"+Ut+">",Xt="rowId",Yt="rowId={rowId}",el=", separator, debugIds",tl="separator?: ReactElement | string",ll="then?: (store: Store",al=St(ll+")"+ze,Ft),nl="then, then"+$e,ol=Xt+Qt+be,dl="View",rl=(e,...t)=>St(...t,he+": "+e,he+ce,"mutator?: boolean"),sl=(...e)=>St(...e,he,he+$e,"mutator"),Il=(e,l,a,n,o)=>{const[d,s,I,y,T,v,V,x]=Et(),[R,k,A]=Ot(e,l,T),E=`./${xt(a)}.d`,D=`./${xt(a)}-ui-react.d`,O="tinybase/ui-react",N=xt(a,1),G=xt(N),j=N+"Or"+N+be,M=G+"Or"+N+be,J=G+`={${G}}`,z=K(),W=(e,l,a,n,o,d=t)=>(s(1,D,e+" as "+e+"Decl"),wt(z,e,[l,a,n,o,d])),B=(e,l,a,n,o,d=t)=>W("use"+e,l,a,n,o,d),F=(e,l,a,n,o=t,d=t,r=t,I=t,$=t)=>(s(1,O,`use${l} as use${l}Core`),B(e,St(o,q,I),a,te+`(${M}, use${l}Core, [`+(d||t)+($?"], ["+$:t)+"]);",n,r)),U=(e,t,l,a)=>W(e,t,1,l,a),Z=(e=0)=>ee(z,(([l,a,n,o,d],r)=>{const s=e?[pe+` const ${r}: typeof ${r}Decl = ${d}(${l}): ${1==a?"any":a} =>`,n]:[pe+` function ${r}${d}(${l}): ${1==a?"ComponentReturnType":a};`];return e||P(s,kt(o)),S(s,t),s}));s(null,"tinybase",be,"Store",se,Ut+"ized"+se),s(0,O,"ComponentReturnType"),s(null,O,"ExtraProps"),s(0,E,N);const H=I(j,N+" | "+be,`Used when you need to refer to a ${N} in a React hook or component`),Q=I(ve+Te,Pt(G+me+N,G+`ById?: {[${G}Id: Id]: ${N}}`),`Used with the ${ve} component, so that a `+N+" can be passed into the context of an application");s(0,"react","ReactElement","ComponentType"),s(1,"react","React"),s(1,D,H,Q);const q=M+me+H;T("{createContext, useContext, useMemo}","React"),T("Context",`createContext<[${N}?, {[${G}Id: Id]: ${N}}?]>([])`),B("Create"+N,`create: () => ${N}, create`+ce,N,"\n// eslint-disable-next-line react-hooks/exhaustive-deps\nuseMemo(create, createDeps)",`Create a ${N} within a React application with convenient memoization`);const Y=B(N,"id?: Id",N+fe,["{",Zt,"return id == null ? contextValue[0] : contextValue[1]?.[id];","}"],`Get a reference to a ${N} from within a ${ve} component context`),te=y("useHook",M+`: ${H} | undefined, hook: (...params: any[]) => any, preParams: any[], postParams: any[] = []`,[`const ${G} = ${Y}(${M} as Id);`,`return hook(...preParams, ((${M} == null || typeof ${M} == 'string')`,`? ${G} : ${M})?.getStore(), ...postParams)`]),le=y("getProps","getProps: ((id: any) => ExtraProps) | undefined, id: Id","(getProps == null) ? ({} as ExtraProps) : getProps(id)"),ae=y("wrap",St("children: any","separator?: any","encloseWithId?: boolean","id?: Id"),["const separated = separator==null || !Array.isArray(children)"," ? children"," : children.map((child, c) => (c > 0 ? [separator, child] : child));","return encloseWithId ? [id, ':{', separated, '}'] : separated;"]),ne=T("NullComponent","() => null");if(!_(e)){const[e,l,a,o,d,m,f,w,T,v,V,x,S]=n;s(null,E,e,l,a,d,m,f,w,T,v,V,x),s(0,E,o),s(1,E,N),s(null,"tinybase",$,"IdOrNull");const A=y("tableView",`{${G}, rowComponent, getRowComponentProps`+el+"}: any, rowIds: Ids, tableId: Id, defaultRowComponent: React.ComponentType<any>",["const Row = rowComponent ?? defaultRowComponent;",`return ${ae}(rowIds.map((rowId) => (`,"<Row","{..."+le+"(getRowComponentProps, rowId)}","key={rowId}","tableId={tableId}",Yt,J,Bt,"/>","))",el,", tableId,",");"]),P=y("getDefaultTableComponent","tableId: Id",vt(R(((e,t,l)=>`tableId == ${l} ? ${t}TableView : `)))+ne),O=y("getDefaultCellComponent","tableId: Id, cellId: Id",vt(R(((e,t,l)=>`tableId == ${l} ? ${vt(k(e,((e,l,a,n,o)=>`cellId == ${n} ? `+t+o+"CellView : ")))+ne} : `)))+ne);F(i,i,e,qe(1,0)+re);const j=F(u,u,a+Pe,Xe(c,Ee)+re);F(Se+i+se,Se+i+se,Kt,qe(1,9)+Ht,St(Jt(i)+_t+l,Jt(i)+ce),zt(i),qt,St(ll,`tables: ${l})`+ze,Ft),nl),F(Ie+i+se,Ie+i+se,se,qe(1,12),t,t,t,al,nl);const M=I(g+Te,Pt("tableId?: TId","rowId: Id","cellId?: CId",G+me+N,Wt),et(oe+g),`<TId extends ${a}, CId extends ${o}<TId>>`),z=I(p+Te,Pt("tableId?: TId","rowId: Id",G+me+N,"cellComponents?: {readonly [CId in "+o+`<TId>]?: ComponentType<${M}<TId, CId>>;}`,`getCellComponentProps?: (cellId: ${o}<TId>) => ExtraProps`,tl,Wt),et(oe+p),`<TId extends ${a}>`),W=I(c+Te,Pt("tableId?: TId",G+me+N,`rowComponent?: ComponentType<${z}<TId>>`,"getRowComponentProps?: (rowId: Id) => ExtraProps",tl,Wt),et(oe+c),`<TId extends ${a}>`),B=I("Sorted"+c+Te,Pt("tableId?: TId","cellId?: "+o+"<TId>","descending?: boolean","offset?: number","limit?: number",G+me+N,`rowComponent?: ComponentType<${z}<TId>>`,"getRowComponentProps?: (rowId: Id) => ExtraProps",tl,Wt),et(oe+"sorted "+c),`<TId extends ${a}>`),_=I(i+Te,Pt(G+me+N,"tableComponents?: {readonly [TId in "+a+`]?: ComponentType<${W}<TId>>;}`,`getTableComponentProps?: (tableId: ${a}) => ExtraProps`,tl,Wt),et(Qe(1,1)));s(1,D,_,W,B,z,M),U(i+dl,"{"+G+", tableComponents, getTableComponentProps"+el+"}: "+_,[ae+`(${j}(${G}).map((tableId) => {`,"const Table = (tableComponents?.[tableId] ?? "+P+"(tableId)) as React.ComponentType<TableProps<typeof tableId>>;","return <Table",`{...${le}(getTableComponentProps, tableId)}`,"tableId={tableId}","key={tableId}",J,Bt,"/>;","}), separator)"],qe(1,13)+re),R(((e,l,a)=>{const[n,o,d,r,I]=X(S,e);s(null,E,n,o,d,r,I),F(l+c,c,n,dt(e)+re,t,a);const i=F(l+b,b,$,Xe(p,nt(e))+re,t,a),u=F(l+C,C,$,Xe(p,nt(e),1)+re,"cellId?: "+I+", descending?: boolean, offset?: number, limit?: number",a+", cellId, descending, offset, limit");F(l+p,p,d,rt(e)+re,ol,St(a,Xt));const m=F(l+h,h,I+Pe,Xe(g,ot(e))+re,ol,St(a,Xt));F(Se+l+c+se,Se+c+se,Kt,dt(e,9)+Ht,St(Jt(c)+_t+o,Jt(c)+ce),St(a,zt(c)),qt,St(ll,`table: ${o})`+ze,Ft),nl),F(Ie+l+c+se,Ie+c+se,se,dt(e,12),t,a,t,al,nl),F(Se+l+p+se,Se+p+se,Kt,rt(e,9)+Ht,St(ol,Jt(p)+_t+r,Jt(p)+ce),St(a,Xt,zt(p)),qt,St(ll,`row: ${r})`+ze,Ft),nl),F("Add"+l+p+se,"Add"+p+se,Kt,rt(e,10)+Ht,St(Jt(p)+_t+r,Jt(p)+ce),St(a,zt(p)),qt,"then?: ("+St(ol+fe,"store: Store","row: "+r+")"+ze,"then"+ce)+", reuseRowIds?: boolean",nl+", reuseRowIds"),F(Se+l+ye+p+se,Se+ye+p+se,Kt,rt(e,11)+Ht,St(ol,Jt(ye+p)+_t+r,Jt(ye+p)+ce),St(a,Xt,zt(ye+p)),qt,St(ll,`partialRow: ${r})`+ze,Ft),nl),F(Ie+l+p+se,Ie+p+se,se,rt(e,12),ol,St(a,Xt),t,al,nl);const f=U(l+p+dl,"{rowId, "+G+", cellComponents, getCellComponentProps"+el+`}: ${z}<'${e}'>`,[ae+`(${m}(rowId, ${G}).map((cellId) => {`,"const Cell = (cellComponents?.[cellId] ?? "+O+`(${a}, cellId)) as React.ComponentType<CellProps<typeof `+a+", typeof cellId>>;","return <Cell",`{...${le}(getCellComponentProps, cellId)} `,"key={cellId}",`tableId={${a}}`,Yt,"cellId={cellId}",J,Bt,"/>;","})"+el+", rowId)"],rt(e,13)+re);U(l+"Sorted"+c+dl,"{cellId, descending, offset, limit, ...props}: "+B+`<'${e}'>`,A+"(props, "+u+`(cellId, descending, offset, limit, props.${G}), ${a}, ${f});`,dt(e,13)+", sorted"+re),U(l+c+dl,`props: ${W}<'${e}'>`,A+"(props, "+i+`(props.${G}), ${a}, ${f});`,dt(e,13)+re),k(e,((n,o,d,r,I)=>{const $="Map"+xt(o,1);s(0,E,$),s(1,E,$);const c=F(l+I+g,g,o+(L(d)?fe:t),st(e,n)+re,ol,St(a,Xt,r));F(Se+l+I+g+se,Se+g+se,Kt,st(e,n,9)+Ht,St(ol,Jt(g)+_t+o+" | "+$,Jt(g)+ce),St(a,Xt,r,zt(g)),qt,St(ll,`cell: ${o} | ${$})`+ze,Ft),nl),F(Ie+l+I+g+se,Ie+g+se,se,st(e,n,12),St(ol,"forceDel?: boolean"),St(a,Xt,r,"forceDel"),t,al,nl),U(l+I+g+dl,`{rowId, ${G}, debugIds}: `+M+`<'${e}', '${n}'>`,[ae+`('' + ${c}(rowId, `+G+`) ?? '', undefined, debugIds, ${r})`],st(e,n,13)+re)}))}));const Z=vt(R((e=>X(S,e)?.[4]??t))," | ");F(i+r,i+r,Je,qe(1,8)+" changes",rl(d),sl()),F(u+r,u+r,Je,at(2,0,1),rl(m),sl()),F(c+r,c+r,Je,at(3,0),rl(f,`tableId: ${a} | null`),sl("tableId")),F(b+r,b+r,Je,at(4,3,1),rl(w,`tableId: ${a} | null`),sl("tableId")),F(C+r,C+r,Je,at(13,3,1),rl(T,`tableId: ${a} | null`,"cellId: "+Z+fe,"descending: boolean","offset: number","limit: number"+fe),sl("tableId","cellId","descending","offset","limit")),F(p+r,p+r,Je,at(5,3),rl(v,`tableId: ${a} | null`,Xt+": IdOrNull"),sl("tableId",Xt)),F(h+r,h+r,Je,at(6,5,1),rl(V,`tableId: ${a} | null`,Xt+": IdOrNull"),sl("tableId",Xt)),F(g+r,g+r,Je,at(7,5),rl(x,`tableId: ${a} | null`,Xt+": IdOrNull",`cellId: ${Z} | null`),sl("tableId",Xt,"cellId"))}if(!_(l)){const[e,l,a,n,d,$]=o;s(null,E,...o),s(1,E,N);const c=y("getDefaultValueComponent","valueId: Id",vt(A(((e,t,l,a,n)=>`valueId == ${a} ? `+n+"ValueView : ")))+ne);F(f,f,e,qe(2,0)+re);const i=F(w,w,a+Pe,Xe(m,Ee)+re);F(Se+f+se,Se+f+se,Kt,qe(2,9)+Ht,St(Jt(f)+_t+l,Jt(f)+ce),zt(f),qt,St(ll,`values: ${l})`+ze,Ft),nl),F(Se+ye+f+se,Se+ye+f+se,Kt,qe(2,11)+Ht,St(Jt(ye+f)+_t+l,Jt(ye+f)+ce),zt(ye+f),qt,St(ll,`partialValues: ${l})`+ze,Ft),nl),F(Ie+f+se,Ie+f+se,se,qe(2,12),t,t,t,al,nl);const u=I(m+Te,Pt("valueId?: VId",G+me+N,Wt),et("a Value"),`<VId extends ${a}>`),p=I(f+Te,Pt(G+me+N,"valueComponents?: {readonly [VId in "+a+`]?: ComponentType<${u}<VId>>;}`,`getValueComponentProps?: (valueId: ${a}) => ExtraProps`,tl,Wt),et(Qe(2,1)));s(1,D,p,u),U(f+dl,"{"+G+", valueComponents, getValueComponentProps"+el+"}: "+p,[ae+`(${i}(${G}).map((valueId) => {`,"const Value = valueComponents?.[valueId] ?? "+c+"(valueId);","return <Value",`{...${le}(getValueComponentProps, valueId)}`,"key={valueId}",J,Bt,"/>;","}), separator)"],qe(2,13)+re),A(((e,l,a,n,o)=>{const d="Map"+xt(l,1);s(0,E,d),s(1,E,d);const r=F(o+m,m,l,It(e)+re,t,n);F(Se+o+m+se,Se+m+se,Kt,It(e,9)+Ht,St(Jt(m)+_t+l+" | "+d,Jt(m)+ce),St(n,zt(m)),qt,St(ll,`value: ${l} | ${d})`+ze,Ft),nl),F(Ie+o+m+se,Ie+m+se,se,It(e,12),t,n,t,al,nl),U(o+m+dl,`{${G}, debugIds}: ${u}<'${e}'>`,[ae+`('' + ${r}(`+G+`) ?? '', undefined, debugIds, ${n})`],It(e,13)+re)})),F(f+r,f+r,Je,qe(2,8)+" changes",rl(n),sl()),F(w+r,w+r,Je,at(10,0,1),rl(d),sl()),F(m+r,m+r,Je,at(11,0),rl($,`valueId: ${a} | null`),sl("valueId"))}return U(ve,`{${G}, ${G}ById, children}: `+Q+" & {children: React.ReactNode}",["{",Zt,"return (","<Context."+ve,"value={useMemo(",`() => [${G} ?? contextValue[0], {...contextValue[1], ...${G}ById}],`,`[${G}, ${G}ById, contextValue],`,")}>","{children}",`</Context.${ve}>`,");","}"],"Wraps part of an application in a context that provides default objects to be used by hooks and components within"),[d(...v(0),...V(),...Z(0)),d(...v(1),...x(),...Z(1))]},$l=(e,l,a)=>{if(_(e)&&_(l))return[t,t,t,t];const[n,o,d,r]=Mt(e,l,a);return[n,o,...Il(e,l,a,d,r)]},cl={parser:"typescript",singleQuote:!0,trailingComma:"all",bracketSpacing:!1,jsdocSingleLineComment:!1},il=Dt((e=>{const t=()=>{const t=D(e.getTablesSchemaJson());return!_(t)||y(e.getTableIds(),(l=>{const a=e.getRowIds(l),n=K();if(y(a,(t=>y(e.getCellIds(l,t),(a=>{const o=e.getCell(l,t,a),d=le(n,a,(()=>[J(o),K(),[0],0])),[r,s,[I]]=d,$=le(s,o,(()=>0))+1;return $>I&&(d[2]=[$,o]),te(s,o,$),d[3]++,r==J(o)})))))return t[l]={},Q(n,(([e,,[,n],r],s)=>{t[l][s]={[o]:e,...r==x(a)?{[d]:n}:{}}})),1}))?t:{}},l=()=>{const t=D(e.getValuesSchemaJson());return _(t)&&e.forEachValue(((e,l)=>{t[e]={[o]:J(l)}})),t},a=e=>$l(t(),l(),e),n=async e=>{const t=["d.ts","ts","d.ts","tsx"];let l;try{l=(await import("prettier")).format}catch(e){l=e=>e}return V(a(e),((e,a)=>yt(l(e,{...cl,filepath:"_."+t[a]}))))};return B({getStoreStats:t=>{let l=0,a=0,n=0;const o={};return e.forEachTable(((e,d)=>{l++;let r=0,s=0;const I={};d(((e,l)=>{r++;let a=0;l((()=>a++)),s+=a,t&&(I[e]={rowCells:a})})),a+=r,n+=s,t&&(o[e]={tableRows:r,tableCells:s,rows:I})})),{totalTables:l,totalRows:a,totalCells:n,totalValues:x(e.getValueIds()),jsonLength:Tt(e.getJson()),...t?{detail:{tables:o}}:{}}},getStoreTablesSchema:t,getStoreValuesSchema:l,getStoreApi:a,getPrettyStoreApi:n,getStore:()=>e})}));export{il as createTools};
1
+ const e=e=>typeof e,t="tinybase",l="",a=",",n=e(l),o=e(!0),d=e(0),r="type",s="default",I="Listener",$="get",c="add",i="Ids",u="Table",p=u+"s",b=u+i,C="Row",h=C+i,g="Sorted"+C+i,m="Cell",f=m+i,w="Value",y=w+"s",T=w+i,v=(e,t)=>e.every(t),V=(e,t)=>e.sort(t),x=(e,t)=>e.forEach(t),R=(e,t=l)=>e.join(t),k=(e,t)=>e.map(t),S=e=>e.length,A=(e,t)=>e.filter(t),P=(e,...t)=>e.push(...t),E=e=>e.pop(),D=(e,...t)=>e.unshift(...t),O=e=>e.shift(),N=JSON.parse,L=isFinite,G=(e,t)=>e instanceof t,j=e=>null==e,M=e=>e==n||e==o,J=t=>e(t)==n,z=e=>Array.isArray(e),W=t=>{const l=e(t);return M(l)||l==d&&L(t)?l:void 0},B=Object,F=B.keys,U=B.freeze,_=e=>G(e,B)&&e.constructor==B,Z=(e,t)=>k(B.entries(e),(([e,l])=>t(l,e))),H=e=>S(F(e)),Q=e=>_(e)&&0==H(e),q=(e,t)=>e?.has(t)??!1,K=e=>[...e?.values()??[]],X=(e,t)=>e?.forEach(t),Y=(e,t)=>e?.delete(t),ee=e=>new Map(e),te=(e,t)=>e?.get(t),le=(e,t)=>X(e,((e,l)=>t(l,e))),ae=(e,t)=>k([...e?.entries()??[]],(([e,l])=>t(l,e))),ne=(e,t,l)=>j(l)?(Y(e,t),e):e?.set(t,l),oe=(e,t,l)=>(q(e,t)||ne(e,t,l()),te(e,t)),de=e=>e.toUpperCase(),re=e=>e.toLowerCase(),se="a ",Ie="A function for",$e=", and registers a listener so that any changes to that result will cause a re-render",ce="Callback",ie="Del",ue="Deps",pe=ue+"?: React.DependencyList",be="doRollback?: DoRollback",Ce="actions: () => Return, "+be,he="export",ge="Id",me="Invalid",fe="Json",we=re(I),ye="?: ",Te=" | undefined",ve="NonNullable",Ve="Partial",xe="Props",Re="Provider",ke=`Registers a ${we} that will be called`,Se="Represents",Ae="rowId: "+ge,Pe="Schema",Ee="Set",De=", descending?: boolean, offset?: number, limit?: number",Oe="[]",Ne="the Store",Le="Transaction",Ge=Le+"Changes",je=re(Le),Me="Execute a "+je+" to make multiple mutations",Je="Explicitly starts a "+je,ze="Explicitly finishes a "+je,We="the end of the "+je,Be="void",Fe=" => "+Be,Ue="WhenSet",_e=" when setting it",Ze=se+"string serialization of",He=" ",Qe="Gets a callback that can ",qe="the ",Ke=" the schema for",Xe=(e=0,t=0)=>`the ${Ct[e]}content of`+(t?He+Ne:l),Ye=(e=0,t,a=0)=>ut[t]+He+Xe(e,1)+(a?" when setting it":l),et=(e,t=0)=>Se+` a Row when ${t?"s":"g"}etting ${Xe()} the '${e}' `+u,tt=(e,t,l=0)=>`Gets ${l?"sorted, paginated":"the"} Ids of the ${e}s in `+t,lt=(e,t)=>`Calls a function for each ${e} in `+t,at=e=>"The props passed to a component that renders "+e,nt=e=>"A function that takes "+e,ot=(e,t=0)=>Ie+" listening to changes to "+bt[e]+" in "+bt[t],dt=(e,t,a=0)=>ke+" whenever "+bt[e]+" in "+bt[t]+" change"+(a?l:"s"),rt=e=>`the '${e}' `+u,st=e=>"the specified Row in "+rt(e),It=(e,t=0)=>ut[t]+` ${Xe()} `+rt(e),$t=(e,t=0)=>ut[t]+` ${Xe()} `+st(e),ct=(e,t,l=0)=>ut[l]+` the '${t}' Cell for `+st(e),it=(e,t=0)=>ut[t]+` the '${e}' Value`,ut=["Gets","Checks existence of","Sets","Deletes","Sets part of",Se,"Gets "+Ze,"Sets "+Ze,ke+" whenever",Qe+"set",Qe+"add",Qe+"set part of",Qe+"delete","Renders","Gets "+Ze+Ke,"Sets"+Ke,"Deletes"+Ke],pt=[$,"has","set","del","set","forEach",c,l],bt=[Ne,p,qe+u+He+i,se+u,qe+C+He+i,se+C,qe+m+He+i,se+m,"invalid Cell changes",y,qe+w+He+i,se+w,"invalid Value changes",qe+"sorted "+C+He+i,qe+m+He+i+" anywhere"],Ct=[l,"tabular ","keyed value "],ht=e=>new Set(z(e)||j(e)?e:[e]),gt=(e,t)=>e?.add(t),mt=/[^A-Za-z]+/,ft=/[^A-Za-z0-9]+/,wt=/^( *)\/\*\* *(.*?) *\*\/$/gm,yt=(e,t,l)=>e.substring(t,l),Tt=e=>e.includes(a),vt=(e,t,l,a=1)=>{const n=`${t}${1==a?"":a}`;return q(e,n)?vt(e,t,l,a+1):(ne(e,n,l),n)},Vt=e=>e.replace(wt,((e,t,l)=>{const a=77-xt(t);return`${t}/**\n${l.replace(RegExp(`([^\\n]{1,${a}})(\\s|$)`,"g"),t+" * $1\n")}${t} */`})),xt=e=>e.length,Rt=e=>e.flat(1e3),kt=(e,t=0)=>R(k(e.split(ft),((e,l)=>(l>0||t?de:re)(yt(e,0,1))+yt(e,1)))),St=e=>de(R((e&&!mt.test(e[0])?e:" "+e).split(ft),"_")),At=e=>`/** ${e}. */`,Pt=(...e)=>R(A(e,(e=>e)),", "),Et=(...e)=>"{"+R(e,"; ")+"}",Dt=(...e)=>Et(...k(e,(e=>"readonly "+e))),Ot=()=>{const e=[ee(),ee(),ee(),ee()],t=ee(),a=ee(),n=e=>{const t=e.indexOf(" as ");return-1!=t?e.substring(t+4):e};return[(...e)=>R(Rt(e),"\n"),(t,l,...a)=>x(a,(a=>x([0,1],(n=>(t??n)==n?gt(oe(e[n],l,ht),a):0)))),(e,a,n,o=l,d=1)=>vt(t,e,[a,n,o,d]),(e,t,l)=>vt(a,e,z(l)?[`(${t}) => {`,l,"}"]:[`(${t}) => ${l}`]),(e,t)=>te(a,e)===t?e:vt(a,e,t),(t=0)=>k([...V(ae(e[t],((e,t)=>`import {${R(V(K(e),((e,t)=>n(e)>n(t)?1:-1)),", ")}} from '${t}';`)),((e,t)=>Tt(e)!=Tt(t)?Tt(e)?-1:1:e>t?1:-1)),l],(e=>e.replace("{React}","React"))),()=>ae(t,(([e,t,a,n],o)=>[At(t),`${n?he+" ":l}type ${o}${a} = ${e};`,l])),()=>ae(a,((e,t)=>(e=z(e)?e:[e],P(e,E(e)+";"),[`const ${t} = ${O(e)}`,e,l])))]},Nt=e=>{const t=new WeakMap;return l=>(t.has(l)||t.set(l,e(l)),t.get(l))},Lt=(e,t,l)=>[t=>Z(e,((e,a)=>t(a,kt(a,1),l(St(a),`'${a}'`)))),(t,a)=>Z(e[t],((e,t)=>a(t,e[r],e[s],l(St(t),`'${t}'`),kt(t,1)))),e=>Z(t,((t,a)=>e(a,t[r],t[s],l(St(a),`'${a}'`),kt(a,1))))],Gt=(e,t,a,n)=>[(n,o)=>{const d=n+": "+o,r=e(p,Et(...t((e=>`'${e}'?: {[rowId: Id]: `+Et(...a(e,((e,t,a)=>`'${e}'${j(a)?"?":l}: ${t}`)))+"}"))),Ye(1,5)),s=e(p+Ue,Et(...t((e=>`'${e}'?: {[rowId: Id]: `+Et(...a(e,((e,t)=>`'${e}'?: ${t}`)))+"}"))),Ye(1,5,1)),$=e(u+ge,"keyof "+r,"A "+u+" Id in "+Ne),c=`<TId extends ${$}>`,i=e(u,ve+`<${r}[TId]>`,"A "+u+" in "+Ne,c),w=e(u+Ue,ve+`<${s}[TId]>`,"A "+u+" in "+Ne+_e,c),y=e(C,i+"<TId>[Id]","A "+C+" in a "+u,c),T=e(C+Ue,w+"<TId>[Id]","A "+C+" in a "+u+_e,c),v=e(m+ge,`Extract<keyof ${y}<TId>, Id>`,"A "+m+" Id in a "+C,c),V=e(m,ve+`<${r}[TId]>[Id][CId]`,"A "+m+" in a "+C,`<TId extends ${$}, CId extends ${v}<TId>>`),x=e("CellIdCellArray",`CId extends ${v}<TId> ? [cellId: CId, cell: ${V}<TId, CId>] : never`,m+" Ids and types in a "+C,`<TId extends ${$}, CId = ${v}<TId>>`,0),R=e(m+ce,`(...[cellId, cell]: ${x}<TId>)`+Fe,nt(se+m+" Id, and "+m),c),k=e(C+ce,"(rowId: Id, forEachCell: (cellCallback: CellCallback<TId>) "+Fe+") "+Fe,nt(se+C+" Id, and a "+m+" iterator"),c),S=e(u+m+ce,`(cellId: ${v}<TId>, count: number) `+Fe,nt(se+m+" Id, and count of how many times it appears"),c),A=e("TableIdForEachRowArray",`TId extends ${$} ? [tableId: TId, forEachRow: (rowCallback: ${k}<TId>)${Fe}] : never`,u+" Ids and callback types",`<TId = ${$}>`,0),P=e(u+ce,`(...[tableId, forEachRow]: ${A})`+Fe,nt(se+u+" Id, and a "+C+" iterator"),l),E=e("TableIdRowIdCellIdArray",`TId extends ${$} ? [tableId: TId, rowId: Id, cellId: ${v}<TId>] : never`,"Ids for GetCellChange",`<TId = ${$}>`,0),D=e("GetCellChange",`(...[tableId, rowId, cellId]: ${E}) => CellChange`,Ie+" returning information about any Cell's changes during a "+je),O=e(p+I,`(${d}, getCellChange: ${D}${Te})`+Fe,ot(1)),N=e(b+I,`(${d})`+Fe,ot(2)),L=e(u+I,`(${d}, tableId: ${$}, getCellChange: ${D}${Te})`+Fe,ot(3)),G=e(u+f+I,`(${d}, tableId: ${$})`+Fe,ot(14,3)),M=e(h+I,`(${d}, tableId: ${$})`+Fe,ot(4,3)),J=e(g+I,"("+Pt(d,"tableId: "+$,"cellId: Id"+Te,"descending: boolean","offset: number","limit: number"+Te,"sortedRowIds: Ids")+")"+Fe,ot(13,3)),z=e(C+I,"("+Pt(""+d,"tableId: "+$,Ae,`getCellChange: ${D}${Te}`)+")"+Fe,ot(5,3)),W=e(f+I,"("+Pt(""+d,"tableId: "+$,Ae)+")"+Fe,ot(6,5)),B=e("CellListenerArgsArrayInner",`CId extends ${v}<TId> ? [${d}, tableId: TId, ${Ae}, cellId: CId, newCell: ${V}<TId, CId> ${Te}, oldCell: ${V}<TId, CId> ${Te}, getCellChange: ${D} ${Te}] : never`,"Cell args for CellListener",`<TId extends ${$}, CId = ${v}<TId>>`,0),F=e("CellListenerArgsArrayOuter",`TId extends ${$} ? `+B+"<TId> : never","Table args for CellListener",`<TId = ${$}>`,0);return[r,s,$,i,w,y,T,v,V,R,k,S,P,O,N,L,G,M,J,z,W,e(m+I,`(...[${n}, tableId, rowId, cellId, newCell, oldCell, getCellChange]: ${F})`+Fe,ot(7,5)),e(me+m+I,`(${d}, tableId: Id, ${Ae}, cellId: Id, invalidCells: any[])`+Fe,ot(8))]},(t,a)=>{const o=t+": "+a,d=e(y,Et(...n(((e,t,a)=>`'${e}'${j(a)?"?":l}: ${t}`))),Ye(2,5)),r=e(y+Ue,Et(...n(((e,t)=>`'${e}'?: ${t}`))),Ye(2,5,1)),s=e(w+ge,"keyof "+d,"A "+w+" Id in "+Ne),$=e(w,ve+`<${d}[VId]>`,"A "+w+" Id in "+Ne,`<VId extends ${s}>`),c=e("ValueIdValueArray",`VId extends ${s} ? [valueId: VId, value: ${$}<VId>] : never`,w+" Ids and types in "+Ne,`<VId = ${s}>`,0),i=e(w+ce,`(...[valueId, value]: ${c})`+Fe,nt(se+w+" Id, and "+w)),u=e("GetValueChange",`(valueId: ${s}) => ValueChange`,Ie+" returning information about any Value's changes during a "+je),p=e(y+I,`(${o}, getValueChange: ${u}${Te})`+Fe,ot(9)),b=e(T+I,`(${o})`+Fe,ot(10)),C=e("ValueListenerArgsArray",`VId extends ${s} ? [${o}, valueId: VId, newValue: ${$}<VId> ${Te}, oldValue: ${$}<VId> ${Te}, getValueChange: ${u} ${Te}] : never`,"Value args for ValueListener",`<VId = ${s}>`,0);return[d,r,s,$,i,p,b,e(w+I,`(...[${t}, valueId, newValue, oldValue, getValueChange]: `+C+")"+Fe,ot(11)),e(me+w+I,`(${o}, valueId: Id, invalidValues: any[])`+Fe,ot(12))]},(t,l)=>e(Le+I,`(${t}: ${l}, getTransactionChanges: GetTransactionChanges, getTransactionLog: GetTransactionLog)`+Fe,Ie+" listening to the completion of a "+je)],jt=(e,t=l,a=l)=>`store.${e}(${t})`+(a?" as "+a:l),Mt=(e,t=l)=>`fluent(() => ${jt(e,t)})`,Jt=(e,t=l,a=l)=>`store.${e}(${t?t+", ":l}proxy(listener)${a?", "+a:l})`,zt=(e,a,n)=>{const[d,$,v,V,k,S,A,E]=Ot(),[O,N,L]=Lt(e,a,k),[G,M,z]=Gt(v,O,N,L),W=ee(),B=(e=0)=>ae(W,(([t,a,n,o,d],r)=>{const s=e?[r+`: ${d}(${t}): ${a} => ${n},`]:[r+d+`(${t}): ${a};`];return e||D(s,At(o)),P(s,l),s})),F=(e,t,a,n,o,d=l)=>vt(W,e,[t,a,n,o,d]),U=(e,t,a,n,o,d=l,r=l,s=l)=>F(pt[e]+t+(4==e?Ve:l)+a,d,n,(n==H?Mt:jt)(pt[e]+(4==e?Ve:l)+a,r,e?void 0:n),o,s),_=(e,t,a,n=l,o=l,d=1,r=l)=>F(c+e+I,(n?n+", ":l)+we+": "+t+(d?", mutator?: boolean":l),ge,Jt(c+e+I,o,d?"mutator":l),a,r),Z=`./${kt(n)}.d`,H=kt(n,1),q=kt(H),X=[],Y=ee();let oe=[],de=[];if($(1,Z,H,`create${H} as create${H}Decl`),Q(e))$(null,t,p);else{$(0,t,"CellChange"),$(null,t,i);const[e,a,n,d,I,c,w,y,T,V,S,A,E,D,L,M,z,W,B,F,Q,le,ae]=G(q,H),de=ee();O(((e,t)=>{const l=`<'${e}'>`,a=[v(t+u,d+l,Se+` the '${e}' `+u),v(t+u+Ue,I+l,Se+` the '${e}' `+u+_e),v(t+C,c+l,et(e)),v(t+C+Ue,w+l,et(e,1)),v(t+m+ge,y+l,`A Cell Id for the '${e}' `+u),v(t+m+ce,V+l,nt(`a Cell Id and value from a Row in the '${e}' `+u)),v(t+C+ce,S+l,nt(`a Row Id from the '${e}' Table, and a Cell iterator`)),v(t+u+m+ce,A+l,nt(`a Cell Id from anywhere in the '${e}' Table, and a count of how many times it appears`))];ne(de,e,a),$(1,Z,...a)})),$(1,Z,e,a,n,y,E,D,L,M,z,W,B,F,Q,le,ae),oe=[e,a,n,y,D,L,M,z,W,B,F,Q,le,de],x([[e],[o],[H,"tables: "+a,"tables"],[H]],(([e,t,a],n)=>U(n,l,p,e,Ye(1,n),t,a))),U(0,l,b,n+Oe,tt(u,Ne)),U(5,l,u,Be,lt(u,Ne),"tableCallback: "+E,"tableCallback as any"),O(((e,t,a)=>{const[n,d,r,s,I,$,c,p]=te(de,e);x([[n],[o],[H,"table: "+d,", table"],[H]],(([n,o,d=l],r)=>U(r,t,u,n,It(e,r),o,a+d))),U(0,t,u+f,i,tt(m,"the whole of "+rt(e)),l,a),U(5,t,u+m,Be,lt(u+m,"the whole of "+rt(e)),"tableCellCallback: "+p,a+", tableCellCallback as any"),U(0,t,h,i,tt(C,rt(e)),l,a),U(0,t,g,i,tt(C,rt(e),1),"cellId?: "+I+De,a+", cellId, descending, offset, limit"),U(5,t,C,Be,lt(C,rt(e)),"rowCallback: "+c,a+", rowCallback as any"),x([[r],[o],[H,", row: "+s,", row"],[H],[H,", partialRow: "+s,", partialRow"]],(([n,o=l,d=l],r)=>U(r,t,C,n,$t(e,r),Ae+o,a+", rowId"+d))),U(6,t,C,ge+Te,"Add a new Row to "+rt(e),"row: "+s+", reuseIds?: boolean",a+", row, reuseIds"),U(0,t,f,I+Oe,tt(m,st(e)),Ae,a+", rowId"),U(5,t,m,Be,lt(m,st(e)),Ae+", cellCallback: "+$,a+", rowId, cellCallback as any"),N(e,((n,d,r,s,I)=>{const $="Map"+kt(d,1);ne(Y,d,$);const c=d+(j(r)?Te:l);x([[c],[o],[H,`, cell: ${d} | `+$,", cell as any"],[H]],(([o,d=l,r=l],$)=>U($,t+I,m,o,ct(e,n,$),Ae+d,a+", rowId, "+s+r))),U(1,t+I,u+m,o,ut[1]+` the '${n}' Cell anywhere in `+rt(e),l,a+", "+s)}))})),U(0,l,p+fe,fe,Ye(1,6)),U(2,l,p+fe,H,Ye(1,7),"tablesJson: "+fe,"tables"+fe),_(p,D,Ye(1,8)+" changes"),_(b,L,dt(2,0,1)),_(u,M,dt(3,0),`tableId: ${n} | null`,"tableId"),_(u+f,z,dt(14,3,1),`tableId: ${n} | null`,"tableId"),_(h,W,dt(4,3,1),`tableId: ${n} | null`,"tableId"),_(g,B,dt(13,3,1),Pt("tableId: TId",`cellId: ${y}<TId>`+Te,"descending: boolean","offset: number","limit: number"+Te),Pt("tableId","cellId","descending","offset","limit"),1,"<TId extends TableId>"),_(C,F,dt(5,3),`tableId: ${n} | null, rowId: IdOrNull`,"tableId, rowId"),_(f,Q,dt(6,5,1),`tableId: ${n} | null, rowId: IdOrNull`,"tableId, rowId"),_(m,le,dt(7,5),`tableId: ${n} | null, rowId: IdOrNull, cellId: ${R(O((e=>te(de,e)?.[4]??l))," | ")} | null`,"tableId, rowId, cellId"),_(me+m,ae,ke+" whenever an invalid Cell change was attempted","tableId: IdOrNull, rowId: IdOrNull, cellId: IdOrNull","tableId, rowId, cellId"),$(1,Z,...K(Y)),P(X,".set"+p+Pe+"({",Rt(O(((e,t,a)=>[`[${a}]: {`,...N(e,((e,t,a,n)=>`[${n}]: {[${k(St(r),`'${r}'`)}]: ${k(St(t),`'${t}'`)}${j(a)?l:`, [${k(St(s),`'${s}'`)}]: `+(J(a)?k(St(a),`'${a}'`):a)}},`)),"},"]))),"})")}if(Q(a))$(null,t,y);else{const[e,a,n,d,I,c,i,u,p]=M(q,H);$(1,Z,e,a,n,I,c,i,u,p),de=[e,a,n,c,i,u],x([[e],[o],[H,"values: "+a,"values"],[H],[H,"partialValues: "+a,"partialValues"]],(([e,t,a],n)=>U(n,l,y,e,Ye(2,n),t,a))),U(0,l,T,n+Oe,tt(w,Ne)),U(5,l,w,"void",lt(w,Ne),"valueCallback: "+I,"valueCallback as any"),L(((e,t,a,n,d)=>{const r="Map"+kt(t,1);ne(Y,t,r),x([[t],[o],[H,`value: ${t} | `+r,", value as any"],[H]],(([t,a,o=l],r)=>U(r,d,w,t,it(e,r),a,n+o)))})),U(0,l,y+fe,fe,Ye(2,6)),U(2,l,y+fe,H,Ye(2,7),"valuesJson: "+fe,"values"+fe),_(y,c,Ye(2,8)+" changes"),_(T,i,dt(10,0,1)),_(w,u,dt(11,0),`valueId: ${n} | null`,"valueId"),_(me+w,p,ke+" whenever an invalid Value change was attempted","valueId: IdOrNull","valueId"),$(1,Z,...K(Y)),$(0,t,"ValueChange"),P(X,".set"+y+Pe+"({",L(((e,t,a,n)=>[`[${n}]: {[${k(St(r),`'${r}'`)}]: ${k(St(t),`'${t}'`)}${j(a)?l:`, [${k(St(s),`'${s}'`)}]: `+(J(a)?k(St(a),`'${a}'`):a)}},`])),"})")}U(0,l,"Content",`[${p}, ${y}]`,Ye(0,0)),U(2,l,"Content",H,Ye(0,2),`[tables, values]: [${p}, ${y}]`,"[tables, values]"),U(2,l,Ge,H,`Applies a set of ${Ge} to the Store`,"transactionChanges: "+Ge,"transactionChanges"),le(Y,((e,t)=>v(t,`(cell: ${e}${Te}) => `+e,`Takes a ${e} Cell value and returns another`))),$(null,t,"DoRollback",ge,"IdOrNull",fe,"Store",Ge),$(0,t,"Get"+Ge,"GetTransactionLog"),U(0,l,fe,fe,Ye(0,6)),U(2,l,fe,H,Ye(0,7),"tablesAndValuesJson: "+fe,"tablesAndValuesJson"),U(7,l,je,"Return",Me,Ce,"actions, doRollback","<Return>"),U(7,l,"start"+Le,H,Je),U(7,l,"finish"+Le,H,ze,be,"doRollback");const re=z(q,H);return _("Start"+Le,re,ke+" just before the start of the "+je,l,l,0),_("WillFinish"+Le,re,ke+" just before "+We,l,l,0),_("DidFinish"+Le,re,ke+" just after "+We,l,l,0),U(7,l,"call"+I,H,"Manually provoke a listener to be called","listenerId: Id","listenerId"),U(3,l,I,H,"Remove a listener that was previously added to "+Ne,"listenerId: Id","listenerId"),F("getStore",l,"Store","store",ut[0]+" the underlying Store object"),$(1,t,"createStore"),$(1,Z,H,`create${H} as create${H}Decl`,re),k("store",["createStore()",...X]),V("fluent","actions: () => Store",["actions();",`return ${q};`]),V("proxy","listener: any",`(_: Store, ...params: any[]) => listener(${q}, ...params)`),k(q,["{",...B(1),"}"]),[d(...S(0),...A(),he+" interface "+H+" {",...B(0),"}",l,At(`Creates a ${H} object`),he+" function create"+H+"(): "+H+";"),d(...S(1),he+" const create"+H+": typeof create"+H+"Decl = () => {",...E(),`return Object.freeze(${q});`,"};"),oe,de]},Wt=e=>$+e,Bt=e=>Pt(Wt(e),Wt(e)+ue),Ft="debugIds?: boolean",Ut="debugIds={debugIds}",_t="then"+pe,Zt="Parameter",Ht=": (parameter: "+Zt+", store: Store) => ",Qt="const contextValue = useContext(Context);",qt=", based on a parameter",Kt=": ",Xt="<"+Zt+",>",Yt=Zt+"ized"+ce+"<"+Zt+">",el="rowId",tl="rowId={rowId}",ll=", separator, debugIds",al="separator?: ReactElement | string",nl="then?: (store: Store",ol=Pt(nl+")"+Fe,_t),dl="then, then"+ue,rl=el+Kt+ge,sl="View",Il=(e,...t)=>Pt(...t,we+": "+e,we+pe,"mutator?: boolean"),$l=(...e)=>Pt(...e,we,we+ue,"mutator"),cl=(e,a,n,o,d)=>{const[r,s,$,c,v,V,x,k]=Ot(),[S,A,E]=Lt(e,a,v),O=`./${kt(n)}.d`,N=`./${kt(n)}-ui-react.d`,L="tinybase/ui-react",G=kt(n,1),M=kt(G),J=G+"Or"+G+ge,z=M+"Or"+G+ge,W=M+`={${M}}`,B=ee(),F=(e,t,a,n,o,d=l)=>(s(1,N,e+" as "+e+"Decl"),vt(B,e,[t,a,n,o,d])),U=(e,t,a,n,o,d=l)=>F("use"+e,t,a,n,o,d),_=(e,t,a,n,o=l,d=l,r=l,I=l,$=l)=>(s(1,L,`use${t} as use${t}Core`),U(e,Pt(o,X,I),a,le+`(${z}, use${t}Core, [`+(d||l)+($?"], ["+$:l)+"]);",n,r)),Z=(e,t,l,a)=>F(e,t,1,l,a),H=(e=0)=>ae(B,(([t,a,n,o,d],r)=>{const s=e?[he+` const ${r}: typeof ${r}Decl = ${d}(${t}): ${1==a?"any":a} =>`,n]:[he+` function ${r}${d}(${t}): ${1==a?"ComponentReturnType":a};`];return e||D(s,At(o)),P(s,l),s}));s(null,t,ge,"Store",ce,Zt+"ized"+ce),s(0,L,"ComponentReturnType"),s(null,L,"ExtraProps"),s(0,O,G);const q=$(J,G+" | "+ge,`Used when you need to refer to a ${G} in a React hook or component`),K=$(Re+xe,Dt(M+ye+G,M+`ById?: {[${M}Id: Id]: ${G}}`),`Used with the ${Re} component, so that a `+G+" can be passed into the context of an application");s(0,"react","ReactElement","ComponentType"),s(1,"react","React"),s(1,N,q,K);const X=z+ye+q;v("{createContext, useContext, useMemo}","React"),v("Context",`createContext<[${G}?, {[${M}Id: Id]: ${G}}?]>([])`),U("Create"+G,`create: () => ${G}, create`+pe,G,"\n// eslint-disable-next-line react-hooks/exhaustive-deps\nuseMemo(create, createDeps)",`Create a ${G} within a React application with convenient memoization`);const Y=U(G,"id?: Id",G+Te,["{",Qt,"return id == null ? contextValue[0] : contextValue[1]?.[id];","}"],`Get a reference to a ${G} from within a ${Re} component context`),le=c("useHook",z+`: ${q} | undefined, hook: (...params: any[]) => any, preParams: any[], postParams: any[] = []`,[`const ${M} = ${Y}(${z} as Id);`,`return hook(...preParams, ((${z} == null || typeof ${z} == 'string')`,`? ${M} : ${z})?.getStore(), ...postParams)`]),ne=c("getProps","getProps: ((id: any) => ExtraProps) | undefined, id: Id","(getProps == null) ? ({} as ExtraProps) : getProps(id)"),oe=c("wrap",Pt("children: any","separator?: any","encloseWithId?: boolean","id?: Id"),["const separated = separator==null || !Array.isArray(children)"," ? children"," : children.map((child, c) => (c > 0 ? [separator, child] : child));","return encloseWithId ? [id, ':{', separated, '}'] : separated;"]),de=v("NullComponent","() => null");if(!Q(e)){const[e,a,n,d,r,w,y,T,v,V,x,k,P,E]=o;s(null,O,e,a,n,r,w,y,T,v,V,x,k,P),s(0,O,d),s(1,O,G),s(null,t,i,"IdOrNull");const D=c("tableView",`{${M}, rowComponent, getRowComponentProps`+ll+"}: any, rowIds: Ids, tableId: Id, defaultRowComponent: React.ComponentType<any>",["const Row = rowComponent ?? defaultRowComponent;",`return ${oe}(rowIds.map((rowId) => (`,"<Row","{..."+ne+"(getRowComponentProps, rowId)}","key={rowId}","tableId={tableId}",tl,W,Ut,"/>","))",ll,", tableId,",");"]),L=c("getDefaultTableComponent","tableId: Id",R(S(((e,t,l)=>`tableId == ${l} ? ${t}TableView : `)))+de),J=c("getDefaultCellComponent","tableId: Id, cellId: Id",R(S(((e,t,l)=>`tableId == ${l} ? ${R(A(e,((e,l,a,n,o)=>`cellId == ${n} ? `+t+o+"CellView : ")))+de} : `)))+de);_(p,p,e,Ye(1,0)+$e);const z=_(b,b,n+Oe,tt(u,Ne)+$e);_(Ee+p+ce,Ee+p+ce,Yt,Ye(1,9)+qt,Pt(Wt(p)+Ht+a,Wt(p)+pe),Bt(p),Xt,Pt(nl,`tables: ${a})`+Fe,_t),dl),_(ie+p+ce,ie+p+ce,ce,Ye(1,12),l,l,l,ol,dl);const B=$(m+xe,Dt("tableId?: TId","rowId: Id","cellId?: CId",M+ye+G,Ft),at(se+m),`<TId extends ${n}, CId extends ${d}<TId>>`),F=$(C+xe,Dt("tableId?: TId","rowId: Id",M+ye+G,"cellComponents?: {readonly [CId in "+d+`<TId>]?: ComponentType<${B}<TId, CId>>;}`,`getCellComponentProps?: (cellId: ${d}<TId>) => ExtraProps`,al,Ft),at(se+C),`<TId extends ${n}>`),U=$(u+xe,Dt("tableId?: TId",M+ye+G,`rowComponent?: ComponentType<${F}<TId>>`,"getRowComponentProps?: (rowId: Id) => ExtraProps",al,Ft),at(se+u),`<TId extends ${n}>`),H=$("Sorted"+u+xe,Dt("tableId?: TId","cellId?: "+d+"<TId>","descending?: boolean","offset?: number","limit?: number",M+ye+G,`rowComponent?: ComponentType<${F}<TId>>`,"getRowComponentProps?: (rowId: Id) => ExtraProps",al,Ft),at(se+"sorted "+u),`<TId extends ${n}>`),Q=$(p+xe,Dt(M+ye+G,"tableComponents?: {readonly [TId in "+n+`]?: ComponentType<${U}<TId>>;}`,`getTableComponentProps?: (tableId: ${n}) => ExtraProps`,al,Ft),at(Xe(1,1)));s(1,N,Q,U,H,F,B),Z(p+sl,"{"+M+", tableComponents, getTableComponentProps"+ll+"}: "+Q,[oe+`(${z}(${M}).map((tableId) => {`,"const Table = (tableComponents?.[tableId] ?? "+L+"(tableId)) as React.ComponentType<TableProps<typeof tableId>>;","return <Table",`{...${ne}(getTableComponentProps, tableId)}`,"tableId={tableId}","key={tableId}",W,Ut,"/>;","}), separator)"],Ye(1,13)+$e),S(((e,t,a)=>{const[n,o,d,r,I]=te(E,e);s(null,O,n,o,d,r,I),_(t+u,u,n,It(e)+$e,l,a),_(t+u+f,u+f,i,tt(m,"the whole of "+rt(e))+$e,l,a);const $=_(t+h,h,i,tt(C,rt(e))+$e,l,a),c=_(t+g,g,i,tt(C,rt(e),1)+$e,"cellId?: "+I+", descending?: boolean, offset?: number, limit?: number",a+", cellId, descending, offset, limit");_(t+C,C,d,$t(e)+$e,rl,Pt(a,el));const p=_(t+f,f,I+Oe,tt(m,st(e))+$e,rl,Pt(a,el));_(Ee+t+u+ce,Ee+u+ce,Yt,It(e,9)+qt,Pt(Wt(u)+Ht+o,Wt(u)+pe),Pt(a,Bt(u)),Xt,Pt(nl,`table: ${o})`+Fe,_t),dl),_(ie+t+u+ce,ie+u+ce,ce,It(e,12),l,a,l,ol,dl),_(Ee+t+C+ce,Ee+C+ce,Yt,$t(e,9)+qt,Pt(rl,Wt(C)+Ht+r,Wt(C)+pe),Pt(a,el,Bt(C)),Xt,Pt(nl,`row: ${r})`+Fe,_t),dl),_("Add"+t+C+ce,"Add"+C+ce,Yt,$t(e,10)+qt,Pt(Wt(C)+Ht+r,Wt(C)+pe),Pt(a,Bt(C)),Xt,"then?: ("+Pt(rl+Te,"store: Store","row: "+r+")"+Fe,"then"+pe)+", reuseRowIds?: boolean",dl+", reuseRowIds"),_(Ee+t+Ve+C+ce,Ee+Ve+C+ce,Yt,$t(e,11)+qt,Pt(rl,Wt(Ve+C)+Ht+r,Wt(Ve+C)+pe),Pt(a,el,Bt(Ve+C)),Xt,Pt(nl,`partialRow: ${r})`+Fe,_t),dl),_(ie+t+C+ce,ie+C+ce,ce,$t(e,12),rl,Pt(a,el),l,ol,dl);const b=Z(t+C+sl,"{rowId, "+M+", cellComponents, getCellComponentProps"+ll+`}: ${F}<'${e}'>`,[oe+`(${p}(rowId, ${M}).map((cellId) => {`,"const Cell = (cellComponents?.[cellId] ?? "+J+`(${a}, cellId)) as React.ComponentType<CellProps<typeof `+a+", typeof cellId>>;","return <Cell",`{...${ne}(getCellComponentProps, cellId)} `,"key={cellId}",`tableId={${a}}`,tl,"cellId={cellId}",W,Ut,"/>;","})"+ll+", rowId)"],$t(e,13)+$e);Z(t+"Sorted"+u+sl,"{cellId, descending, offset, limit, ...props}: "+H+`<'${e}'>`,D+"(props, "+c+`(cellId, descending, offset, limit, props.${M}), ${a}, ${b});`,It(e,13)+", sorted"+$e),Z(t+u+sl,`props: ${U}<'${e}'>`,D+"(props, "+$+`(props.${M}), ${a}, ${b});`,It(e,13)+$e),A(e,((n,o,d,r,I)=>{const $="Map"+kt(o,1);s(0,O,$),s(1,O,$);const c=_(t+I+m,m,o+(j(d)?Te:l),ct(e,n)+$e,rl,Pt(a,el,r));_(Ee+t+I+m+ce,Ee+m+ce,Yt,ct(e,n,9)+qt,Pt(rl,Wt(m)+Ht+o+" | "+$,Wt(m)+pe),Pt(a,el,r,Bt(m)),Xt,Pt(nl,`cell: ${o} | ${$})`+Fe,_t),dl),_(ie+t+I+m+ce,ie+m+ce,ce,ct(e,n,12),Pt(rl,"forceDel?: boolean"),Pt(a,el,r,"forceDel"),l,ol,dl),Z(t+I+m+sl,`{rowId, ${M}, debugIds}: `+B+`<'${e}', '${n}'>`,[oe+`('' + ${c}(rowId, `+M+`) ?? '', undefined, debugIds, ${r})`],ct(e,n,13)+$e)}))}));const q=R(S((e=>te(E,e)?.[4]??l))," | ");_(p+I,p+I,Be,Ye(1,8)+" changes",Il(r),$l()),_(b+I,b+I,Be,dt(2,0,1),Il(w),$l()),_(u+I,u+I,Be,dt(3,0),Il(y,`tableId: ${n} | null`),$l("tableId")),_(u+f+I,u+f+I,Be,dt(14,3,1),Il(T,`tableId: ${n} | null`),$l("tableId")),_(h+I,h+I,Be,dt(4,3,1),Il(v,`tableId: ${n} | null`),$l("tableId")),_(g+I,g+I,Be,dt(13,3,1),Il(V,`tableId: ${n} | null`,"cellId: "+q+Te,"descending: boolean","offset: number","limit: number"+Te),$l("tableId","cellId","descending","offset","limit")),_(C+I,C+I,Be,dt(5,3),Il(x,`tableId: ${n} | null`,el+": IdOrNull"),$l("tableId",el)),_(f+I,f+I,Be,dt(6,5,1),Il(k,`tableId: ${n} | null`,el+": IdOrNull"),$l("tableId",el)),_(m+I,m+I,Be,dt(7,5),Il(P,`tableId: ${n} | null`,el+": IdOrNull",`cellId: ${q} | null`),$l("tableId",el,"cellId"))}if(!Q(a)){const[e,t,a,n,o,r]=d;s(null,O,...d),s(1,O,G);const i=c("getDefaultValueComponent","valueId: Id",R(E(((e,t,l,a,n)=>`valueId == ${a} ? `+n+"ValueView : ")))+de);_(y,y,e,Ye(2,0)+$e);const u=_(T,T,a+Oe,tt(w,Ne)+$e);_(Ee+y+ce,Ee+y+ce,Yt,Ye(2,9)+qt,Pt(Wt(y)+Ht+t,Wt(y)+pe),Bt(y),Xt,Pt(nl,`values: ${t})`+Fe,_t),dl),_(Ee+Ve+y+ce,Ee+Ve+y+ce,Yt,Ye(2,11)+qt,Pt(Wt(Ve+y)+Ht+t,Wt(Ve+y)+pe),Bt(Ve+y),Xt,Pt(nl,`partialValues: ${t})`+Fe,_t),dl),_(ie+y+ce,ie+y+ce,ce,Ye(2,12),l,l,l,ol,dl);const p=$(w+xe,Dt("valueId?: VId",M+ye+G,Ft),at("a Value"),`<VId extends ${a}>`),b=$(y+xe,Dt(M+ye+G,"valueComponents?: {readonly [VId in "+a+`]?: ComponentType<${p}<VId>>;}`,`getValueComponentProps?: (valueId: ${a}) => ExtraProps`,al,Ft),at(Xe(2,1)));s(1,N,b,p),Z(y+sl,"{"+M+", valueComponents, getValueComponentProps"+ll+"}: "+b,[oe+`(${u}(${M}).map((valueId) => {`,"const Value = valueComponents?.[valueId] ?? "+i+"(valueId);","return <Value",`{...${ne}(getValueComponentProps, valueId)}`,"key={valueId}",W,Ut,"/>;","}), separator)"],Ye(2,13)+$e),E(((e,t,a,n,o)=>{const d="Map"+kt(t,1);s(0,O,d),s(1,O,d);const r=_(o+w,w,t,it(e)+$e,l,n);_(Ee+o+w+ce,Ee+w+ce,Yt,it(e,9)+qt,Pt(Wt(w)+Ht+t+" | "+d,Wt(w)+pe),Pt(n,Bt(w)),Xt,Pt(nl,`value: ${t} | ${d})`+Fe,_t),dl),_(ie+o+w+ce,ie+w+ce,ce,it(e,12),l,n,l,ol,dl),Z(o+w+sl,`{${M}, debugIds}: ${p}<'${e}'>`,[oe+`('' + ${r}(`+M+`) ?? '', undefined, debugIds, ${n})`],it(e,13)+$e)})),_(y+I,y+I,Be,Ye(2,8)+" changes",Il(n),$l()),_(T+I,T+I,Be,dt(10,0,1),Il(o),$l()),_(w+I,w+I,Be,dt(11,0),Il(r,`valueId: ${a} | null`),$l("valueId"))}return Z(Re,`{${M}, ${M}ById, children}: `+K+" & {children: React.ReactNode}",["{",Qt,"return (","<Context."+Re,"value={useMemo(",`() => [${M} ?? contextValue[0], {...contextValue[1], ...${M}ById}],`,`[${M}, ${M}ById, contextValue],`,")}>","{children}",`</Context.${Re}>`,");","}"],"Wraps part of an application in a context that provides default objects to be used by hooks and components within"),[r(...V(0),...x(),...H(0)),r(...V(1),...k(),...H(1))]},il=(e,t,a)=>{if(Q(e)&&Q(t))return[l,l,l,l];const[n,o,d,r]=zt(e,t,a);return[n,o,...cl(e,t,a,d,r)]},ul={parser:"typescript",singleQuote:!0,trailingComma:"all",bracketSpacing:!1,jsdocSingleLineComment:!1},pl=Nt((e=>{const t=()=>{const t=N(e.getTablesSchemaJson());return!Q(t)||v(e.getTableIds(),(l=>{const a=e.getRowIds(l),n=ee();if(v(a,(t=>v(e.getCellIds(l,t),(a=>{const o=e.getCell(l,t,a),d=oe(n,a,(()=>[W(o),ee(),[0],0])),[r,s,[I]]=d,$=oe(s,o,(()=>0))+1;return $>I&&(d[2]=[$,o]),ne(s,o,$),d[3]++,r==W(o)})))))return t[l]={},X(n,(([e,,[,n],o],d)=>{t[l][d]={[r]:e,...o==S(a)?{[s]:n}:{}}})),1}))?t:{}},l=()=>{const t=N(e.getValuesSchemaJson());return Q(t)&&e.forEachValue(((e,l)=>{t[e]={[r]:W(l)}})),t},a=e=>il(t(),l(),e),n=async e=>{const t=["d.ts","ts","d.ts","tsx"];let l;try{l=(await import("prettier")).format}catch(e){l=e=>e}return k(a(e),((e,a)=>Vt(l(e,{...ul,filepath:"_."+t[a]}))))};return U({getStoreStats:t=>{let l=0,a=0,n=0;const o={};return e.forEachTable(((e,d)=>{l++;let r=0,s=0;const I={};d(((e,l)=>{r++;let a=0;l((()=>a++)),s+=a,t&&(I[e]={rowCells:a})})),a+=r,n+=s,t&&(o[e]={tableRows:r,tableCells:s,rows:I})})),{totalTables:l,totalRows:a,totalCells:n,totalValues:S(e.getValueIds()),jsonLength:xt(e.getJson()),...t?{detail:{tables:o}}:{}}},getStoreTablesSchema:t,getStoreValuesSchema:l,getStoreApi:a,getPrettyStoreApi:n,getStore:()=>e})}));export{pl as createTools};
package/lib/tools.js.gz CHANGED
Binary file
@@ -6,7 +6,6 @@
6
6
  * returns a new Checkpoints object. From there, you can create new checkpoints,
7
7
  * go forwards or backwards to others, and register listeners for when the list
8
8
  * of checkpoints change.
9
- *
10
9
  * @packageDocumentation
11
10
  * @module checkpoints
12
11
  */
@@ -28,7 +27,6 @@ import {Store} from './store.d';
28
27
  * - The 'forward' checkpoint Ids that can be rolled forward to (in other words,
29
28
  * the checkpoints in the redo stack for this Store). They are in
30
29
  * chronological order with the newest checkpoint at the end of the array.
31
- *
32
30
  * @category Identity
33
31
  */
34
32
  export type CheckpointIds = [Ids, Id | undefined, Ids];
@@ -40,7 +38,6 @@ export type CheckpointIds = [Ids, Id | undefined, Ids];
40
38
  * A CheckpointCallback is provided when using the forEachCheckpoint method,
41
39
  * so that you can do something based on every Checkpoint in the Checkpoints
42
40
  * object. See that method for specific examples.
43
- *
44
41
  * @param checkpointId The Id of the Checkpoint that the callback can operate
45
42
  * on.
46
43
  * @category Callback
@@ -56,7 +53,6 @@ export type CheckpointCallback = (checkpointId: Id, label?: string) => void;
56
53
  *
57
54
  * When called, a CheckpointIdsListener is given a reference to the Checkpoints
58
55
  * object.
59
- *
60
56
  * @param checkpoints A reference to the Checkpoints object that changed.
61
57
  * @category Listener
62
58
  */
@@ -71,7 +67,6 @@ export type CheckpointIdsListener = (checkpoints: Checkpoints) => void;
71
67
  *
72
68
  * When called, a CheckpointListener is given a reference to the Checkpoints
73
69
  * object, and the Id of the checkpoint whose label changed.
74
- *
75
70
  * @param checkpoints A reference to the Checkpoints object that changed.
76
71
  * @param checkpointId The Id of the checkpoint that changed.
77
72
  * @category Listener
@@ -88,7 +83,6 @@ export type CheckpointListener = (
88
83
  *
89
84
  * A CheckpointsListenerStats object is returned from the getListenerStats
90
85
  * method, and is only populated in a debug build.
91
- *
92
86
  * @category Development
93
87
  */
94
88
  export type CheckpointsListenerStats = {
@@ -120,9 +114,6 @@ export type CheckpointsListenerStats = {
120
114
  * Every checkpoint can be given a label which can be used to describe the
121
115
  * actions that changed the Store before this checkpoint. This can be useful for
122
116
  * interfaces that let users 'Undo [last action]'.
123
- *
124
- * You
125
- *
126
117
  * @example
127
118
  * This example shows a simple lifecycle of a Checkpoints object: from creation,
128
119
  * to adding a checkpoint, getting the list of available checkpoints, and then
@@ -187,7 +178,6 @@ export interface Checkpoints {
187
178
  * pruned to make room for more recent ones.
188
179
  *
189
180
  * The default size for a newly-created Checkpoints object is 100.
190
- *
191
181
  * @param size The number of checkpoints that this Checkpoints object should
192
182
  * hold.
193
183
  * @returns A reference to the Checkpoints object.
@@ -233,7 +223,6 @@ export interface Checkpoints {
233
223
  * The optional `label` parameter can be used to describe the actions that
234
224
  * changed the Store before this checkpoint. This can be useful for interfaces
235
225
  * that let users 'Undo [last action]'.
236
- *
237
226
  * @param label An optional label to describe the actions leading up to this
238
227
  * checkpoint.
239
228
  * @returns The Id of the newly-created checkpoint.
@@ -281,7 +270,6 @@ export interface Checkpoints {
281
270
  * change the label at a later point.
282
271
  *
283
272
  * You cannot add a label to a checkpoint that does not yet exist.
284
- *
285
273
  * @param checkpointId The Id of the checkpoint to set the label for.
286
274
  * @param label A label to describe the actions leading up to this checkpoint
287
275
  * or left undefined if you want to clear the current label.
@@ -326,7 +314,6 @@ export interface Checkpoints {
326
314
  /**
327
315
  * The getStore method returns a reference to the underlying Store that is
328
316
  * backing this Checkpoints object.
329
- *
330
317
  * @returns A reference to the Store.
331
318
  * @example
332
319
  * This example creates a Checkpoints object against a newly-created Store
@@ -353,7 +340,6 @@ export interface Checkpoints {
353
340
  * Together, these are sufficient to understand the state of the Checkpoints
354
341
  * object and what movement is possible backward or forward through the
355
342
  * checkpoint stack.
356
- *
357
343
  * @returns A CheckpointIds array, containing the checkpoint Ids managed by
358
344
  * this Checkpoints object.
359
345
  * @example
@@ -392,7 +378,6 @@ export interface Checkpoints {
392
378
  * object in a functional style. The `checkpointCallback` parameter is a
393
379
  * CheckpointCallback function that will be called with the Id of each
394
380
  * Checkpoint.
395
- *
396
381
  * @param checkpointCallback The function that should be called for every
397
382
  * Checkpoint.
398
383
  * @example
@@ -417,7 +402,6 @@ export interface Checkpoints {
417
402
  /**
418
403
  * The hasCheckpoint method returns a boolean indicating whether a given
419
404
  * Checkpoint exists in the Checkpoints object.
420
- *
421
405
  * @param checkpointId The Id of a possible Checkpoint in the Checkpoints
422
406
  * object.
423
407
  * @returns Whether a Checkpoint with that Id exists.
@@ -443,7 +427,6 @@ export interface Checkpoints {
443
427
  *
444
428
  * If the checkpoint has had no label provided, this method will return an
445
429
  * empty string.
446
- *
447
430
  * @param checkpointId The Id of the checkpoint to get the label for.
448
431
  * @returns A string label for the requested checkpoint, an empty string if it
449
432
  * was never set, or `undefined` if the checkpoint does not exist.
@@ -494,7 +477,6 @@ export interface Checkpoints {
494
477
  *
495
478
  * The provided listener is a CheckpointIdsListener function, and will be
496
479
  * called with a reference to the Checkpoints object.
497
- *
498
480
  * @param listener The function that will be called whenever the checkpoints
499
481
  * change.
500
482
  * @returns A unique Id for the listener that can later be used to remove it.
@@ -549,7 +531,6 @@ export interface Checkpoints {
549
531
  * The provided listener is a CheckpointListener function, and will be called
550
532
  * with a reference to the Checkpoints object, and the Id of the checkpoint
551
533
  * whose label changed.
552
- *
553
534
  * @param checkpointId The Id of the checkpoint to listen to, or `null` as a
554
535
  * wildcard.
555
536
  * @param listener The function that will be called whenever the checkpoint
@@ -606,7 +587,6 @@ export interface Checkpoints {
606
587
  *
607
588
  * Use the Id returned by the addCheckpointIdsListener method. Note that the
608
589
  * Checkpoints object may re-use this Id for future listeners added to it.
609
- *
610
590
  * @param listenerId The Id of the listener to remove.
611
591
  * @returns A reference to the Checkpoints object.
612
592
  * @example
@@ -645,7 +625,6 @@ export interface Checkpoints {
645
625
  * previous checkpoint, effectively performing an 'undo' on the Store data.
646
626
  *
647
627
  * If there is no previous checkpoint to return to, this method has no effect.
648
- *
649
628
  * @returns A reference to the Checkpoints object.
650
629
  * @example
651
630
  * This example creates a Store, a Checkpoints object, makes a change and then
@@ -683,7 +662,6 @@ export interface Checkpoints {
683
662
  * changes, the forwards 'redo' stack will only exist while you do not make
684
663
  * changes to the Store. In general the goForward method is expected to be
685
664
  * used to redo changes that were just undone.
686
- *
687
665
  * @returns A reference to the Checkpoints object.
688
666
  * @example
689
667
  * This example creates a Store, a Checkpoints object, makes a change and then
@@ -758,7 +736,6 @@ export interface Checkpoints {
758
736
  * forwards to a specified checkpoint.
759
737
  *
760
738
  * If there is no checkpoint with the Id specified, this method has no effect.
761
- *
762
739
  * @param checkpointId The Id of the checkpoint to move to.
763
740
  * @returns A reference to the Checkpoints object.
764
741
  * @example
@@ -818,7 +795,6 @@ export interface Checkpoints {
818
795
  * that is the baseline from which all subsequent changes are tracked.
819
796
  *
820
797
  * If you are listening to
821
- *
822
798
  * @returns A reference to the Checkpoints object.
823
799
  * @example
824
800
  * This example creates a Store, a Checkpoints object, adds a listener, makes
@@ -867,7 +843,6 @@ export interface Checkpoints {
867
843
  *
868
844
  * This guarantees that all of the listeners that the object registered with
869
845
  * the underlying Store are removed and it can be correctly garbage collected.
870
- *
871
846
  * @example
872
847
  * This example creates a Store, adds a Checkpoints object (that registers a
873
848
  * CellListener with the underlying Store), and then destroys it again,
@@ -901,7 +876,6 @@ export interface Checkpoints {
901
876
  * return an empty object. The method is intended to be used during
902
877
  * development to ensure your application is not leaking listener
903
878
  * registrations, for example.
904
- *
905
879
  * @returns A CheckpointsListenerStats object containing Checkpoints listener
906
880
  * statistics.
907
881
  * @example
@@ -933,7 +907,6 @@ export interface Checkpoints {
933
907
  * A given Store can only have one Checkpoints object associated with it. If you
934
908
  * call this function twice on the same Store, your second call will return a
935
909
  * reference to the Checkpoints object created by the first.
936
- *
937
910
  * @param store The Store for which to set Checkpoints.
938
911
  * @returns A reference to the new Checkpoints object.
939
912
  * @example
@@ -1,7 +1,6 @@
1
1
  /**
2
2
  * The common module of the TinyBase project provides a small collection of
3
3
  * common types used across other modules.
4
- *
5
4
  * @packageDocumentation
6
5
  * @module common
7
6
  */
@@ -9,7 +8,6 @@
9
8
  /**
10
9
  * The Json type is a simple alias for a string, but is used to indicate that
11
10
  * the string should be considered to be a JSON serialization of an object.
12
- *
13
11
  * @category General
14
12
  */
15
13
  export type Json = string;
@@ -18,7 +16,6 @@ export type Json = string;
18
16
  * The Ids type is a simple alias for an array of strings, but is used to
19
17
  * indicate that the strings should be considered to be the keys of objects
20
18
  * (such as the Row Id strings used in a Table).
21
- *
22
19
  * @category Identity
23
20
  */
24
21
  export type Ids = Id[];
@@ -27,7 +24,6 @@ export type Ids = Id[];
27
24
  * The Id type is a simple alias for a string, but is used to indicate that the
28
25
  * string should be considered to be the key of an object (such as a Row Id
29
26
  * string used in a Table).
30
- *
31
27
  * @category Identity
32
28
  */
33
29
  export type Id = string;
@@ -37,7 +33,6 @@ export type Id = string;
37
33
  * where the string should be considered to be the key of an objects (such as a
38
34
  * Row Id string used in a Table), and typically `null` indicates a wildcard -
39
35
  * such as when used in the Store addRowListener method.
40
- *
41
36
  * @category Identity
42
37
  */
43
38
  export type IdOrNull = Id | null;
@@ -45,7 +40,6 @@ export type IdOrNull = Id | null;
45
40
  /**
46
41
  * The ParameterizedCallback type represents a generic function that will take
47
42
  * an optional parameter - such as the handler of a DOM event.
48
- *
49
43
  * @category Callback
50
44
  */
51
45
  export type ParameterizedCallback<Parameter> = (parameter?: Parameter) => void;
@@ -53,14 +47,12 @@ export type ParameterizedCallback<Parameter> = (parameter?: Parameter) => void;
53
47
  /**
54
48
  * The Callback type represents a function that is used as a callback and which
55
49
  * does not take a parameter.
56
- *
57
50
  * @category Callback
58
51
  */
59
52
  export type Callback = () => void;
60
53
 
61
54
  /**
62
55
  * The SortKey type represents a value that can be used by a sort function.
63
- *
64
56
  * @category Parameter
65
57
  */
66
58
  export type SortKey = string | number | boolean;
@@ -70,7 +62,6 @@ export type SortKey = string | number | boolean;
70
62
  * alphanumerically, and can be provided to the `sliceIdSorter` and
71
63
  * `rowIdSorter` parameters of the setIndexDefinition method in the indexes
72
64
  * module, for example.
73
- *
74
65
  * @param sortKey1 The first item of the pair to compare.
75
66
  * @param sortKey2 The second item of the pair to compare.
76
67
  * @returns A number indicating how to sort the pair.