tinybase 4.1.0-beta.1 → 4.1.0-beta.3

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 (219) hide show
  1. package/bin/cli.js +1 -1
  2. package/lib/checkpoints.js +1 -1
  3. package/lib/checkpoints.js.gz +0 -0
  4. package/lib/cjs/checkpoints.cjs +1 -1
  5. package/lib/cjs/checkpoints.cjs.gz +0 -0
  6. package/lib/cjs/indexes.cjs +1 -1
  7. package/lib/cjs/indexes.cjs.gz +0 -0
  8. package/lib/cjs/metrics.cjs +1 -1
  9. package/lib/cjs/metrics.cjs.gz +0 -0
  10. package/lib/cjs/persisters/persister-browser.cjs +1 -1
  11. package/lib/cjs/persisters/persister-browser.cjs.gz +0 -0
  12. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  13. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  14. package/lib/cjs/persisters/persister-file.cjs +1 -1
  15. package/lib/cjs/persisters/persister-file.cjs.gz +0 -0
  16. package/lib/cjs/persisters/persister-remote.cjs +1 -1
  17. package/lib/cjs/persisters/persister-remote.cjs.gz +0 -0
  18. package/lib/cjs/persisters/persister-sqlite-wasm.cjs +1 -1
  19. package/lib/cjs/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  20. package/lib/cjs/persisters/persister-sqlite3.cjs +1 -1
  21. package/lib/cjs/persisters/persister-sqlite3.cjs.gz +0 -0
  22. package/lib/cjs/queries.cjs +1 -1
  23. package/lib/cjs/queries.cjs.gz +0 -0
  24. package/lib/cjs/relationships.cjs +1 -1
  25. package/lib/cjs/relationships.cjs.gz +0 -0
  26. package/lib/cjs/store.cjs +1 -1
  27. package/lib/cjs/store.cjs.gz +0 -0
  28. package/lib/cjs/tinybase.cjs +1 -1
  29. package/lib/cjs/tinybase.cjs.gz +0 -0
  30. package/lib/cjs/tools.cjs +1 -1
  31. package/lib/cjs/tools.cjs.gz +0 -0
  32. package/lib/cjs/ui-react-dom.cjs +1 -1
  33. package/lib/cjs/ui-react-dom.cjs.gz +0 -0
  34. package/lib/cjs/ui-react.cjs +1 -1
  35. package/lib/cjs/ui-react.cjs.gz +0 -0
  36. package/lib/cjs-es6/checkpoints.cjs +1 -1
  37. package/lib/cjs-es6/checkpoints.cjs.gz +0 -0
  38. package/lib/cjs-es6/indexes.cjs +1 -1
  39. package/lib/cjs-es6/indexes.cjs.gz +0 -0
  40. package/lib/cjs-es6/metrics.cjs +1 -1
  41. package/lib/cjs-es6/metrics.cjs.gz +0 -0
  42. package/lib/cjs-es6/persisters/persister-browser.cjs +1 -1
  43. package/lib/cjs-es6/persisters/persister-browser.cjs.gz +0 -0
  44. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  45. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  46. package/lib/cjs-es6/persisters/persister-file.cjs +1 -1
  47. package/lib/cjs-es6/persisters/persister-file.cjs.gz +0 -0
  48. package/lib/cjs-es6/persisters/persister-remote.cjs +1 -1
  49. package/lib/cjs-es6/persisters/persister-remote.cjs.gz +0 -0
  50. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs +1 -1
  51. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  52. package/lib/cjs-es6/persisters/persister-sqlite3.cjs +1 -1
  53. package/lib/cjs-es6/persisters/persister-sqlite3.cjs.gz +0 -0
  54. package/lib/cjs-es6/queries.cjs +1 -1
  55. package/lib/cjs-es6/queries.cjs.gz +0 -0
  56. package/lib/cjs-es6/relationships.cjs +1 -1
  57. package/lib/cjs-es6/relationships.cjs.gz +0 -0
  58. package/lib/cjs-es6/store.cjs +1 -1
  59. package/lib/cjs-es6/store.cjs.gz +0 -0
  60. package/lib/cjs-es6/tinybase.cjs +1 -1
  61. package/lib/cjs-es6/tinybase.cjs.gz +0 -0
  62. package/lib/cjs-es6/tools.cjs +1 -1
  63. package/lib/cjs-es6/tools.cjs.gz +0 -0
  64. package/lib/cjs-es6/ui-react-dom.cjs +1 -1
  65. package/lib/cjs-es6/ui-react-dom.cjs.gz +0 -0
  66. package/lib/cjs-es6/ui-react.cjs +1 -1
  67. package/lib/cjs-es6/ui-react.cjs.gz +0 -0
  68. package/lib/debug/checkpoints.js +6 -6
  69. package/lib/debug/indexes.js +7 -7
  70. package/lib/debug/metrics.js +12 -12
  71. package/lib/debug/persisters/persister-browser.js +10 -19
  72. package/lib/debug/persisters/persister-cr-sqlite-wasm.js +6 -15
  73. package/lib/debug/persisters/persister-file.js +10 -19
  74. package/lib/debug/persisters/persister-remote.js +10 -19
  75. package/lib/debug/persisters/persister-sqlite-wasm.js +6 -15
  76. package/lib/debug/persisters/persister-sqlite3.js +6 -15
  77. package/lib/debug/persisters.js +4 -4
  78. package/lib/debug/queries.js +1 -0
  79. package/lib/debug/relationships.js +7 -7
  80. package/lib/debug/store.js +16 -24
  81. package/lib/debug/tinybase.js +21 -28
  82. package/lib/debug/tools.js +14 -13
  83. package/lib/debug/ui-react-dom.js +253 -33
  84. package/lib/debug/ui-react.js +26 -4
  85. package/lib/es6/checkpoints.js +1 -1
  86. package/lib/es6/checkpoints.js.gz +0 -0
  87. package/lib/es6/indexes.js +1 -1
  88. package/lib/es6/indexes.js.gz +0 -0
  89. package/lib/es6/metrics.js +1 -1
  90. package/lib/es6/metrics.js.gz +0 -0
  91. package/lib/es6/persisters/persister-browser.js +1 -1
  92. package/lib/es6/persisters/persister-browser.js.gz +0 -0
  93. package/lib/es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  94. package/lib/es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  95. package/lib/es6/persisters/persister-file.js +1 -1
  96. package/lib/es6/persisters/persister-file.js.gz +0 -0
  97. package/lib/es6/persisters/persister-remote.js +1 -1
  98. package/lib/es6/persisters/persister-remote.js.gz +0 -0
  99. package/lib/es6/persisters/persister-sqlite-wasm.js +1 -1
  100. package/lib/es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  101. package/lib/es6/persisters/persister-sqlite3.js +1 -1
  102. package/lib/es6/persisters/persister-sqlite3.js.gz +0 -0
  103. package/lib/es6/queries.js +1 -1
  104. package/lib/es6/queries.js.gz +0 -0
  105. package/lib/es6/relationships.js +1 -1
  106. package/lib/es6/relationships.js.gz +0 -0
  107. package/lib/es6/store.js +1 -1
  108. package/lib/es6/store.js.gz +0 -0
  109. package/lib/es6/tinybase.js +1 -1
  110. package/lib/es6/tinybase.js.gz +0 -0
  111. package/lib/es6/tools.js +1 -1
  112. package/lib/es6/tools.js.gz +0 -0
  113. package/lib/es6/ui-react-dom.js +1 -1
  114. package/lib/es6/ui-react-dom.js.gz +0 -0
  115. package/lib/es6/ui-react.js +1 -1
  116. package/lib/es6/ui-react.js.gz +0 -0
  117. package/lib/indexes.js +1 -1
  118. package/lib/indexes.js.gz +0 -0
  119. package/lib/metrics.js +1 -1
  120. package/lib/metrics.js.gz +0 -0
  121. package/lib/persisters/persister-browser.js +1 -1
  122. package/lib/persisters/persister-browser.js.gz +0 -0
  123. package/lib/persisters/persister-cr-sqlite-wasm.js +1 -1
  124. package/lib/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  125. package/lib/persisters/persister-file.js +1 -1
  126. package/lib/persisters/persister-file.js.gz +0 -0
  127. package/lib/persisters/persister-remote.js +1 -1
  128. package/lib/persisters/persister-remote.js.gz +0 -0
  129. package/lib/persisters/persister-sqlite-wasm.js +1 -1
  130. package/lib/persisters/persister-sqlite-wasm.js.gz +0 -0
  131. package/lib/persisters/persister-sqlite3.js +1 -1
  132. package/lib/persisters/persister-sqlite3.js.gz +0 -0
  133. package/lib/queries.js +1 -1
  134. package/lib/queries.js.gz +0 -0
  135. package/lib/relationships.js +1 -1
  136. package/lib/relationships.js.gz +0 -0
  137. package/lib/store.js +1 -1
  138. package/lib/store.js.gz +0 -0
  139. package/lib/tinybase.js +1 -1
  140. package/lib/tinybase.js.gz +0 -0
  141. package/lib/tools.js +1 -1
  142. package/lib/tools.js.gz +0 -0
  143. package/lib/types/queries.d.ts +167 -0
  144. package/lib/types/ui-react-dom.d.ts +568 -70
  145. package/lib/types/ui-react.d.ts +269 -58
  146. package/lib/types/with-schemas/internal/ui-react.d.ts +32 -22
  147. package/lib/types/with-schemas/queries.d.ts +185 -0
  148. package/lib/types/with-schemas/ui-react-dom.d.ts +647 -93
  149. package/lib/types/with-schemas/ui-react.d.ts +281 -50
  150. package/lib/ui-react-dom.js +1 -1
  151. package/lib/ui-react-dom.js.gz +0 -0
  152. package/lib/ui-react.js +1 -1
  153. package/lib/ui-react.js.gz +0 -0
  154. package/lib/umd/checkpoints.js +1 -1
  155. package/lib/umd/checkpoints.js.gz +0 -0
  156. package/lib/umd/indexes.js +1 -1
  157. package/lib/umd/indexes.js.gz +0 -0
  158. package/lib/umd/metrics.js +1 -1
  159. package/lib/umd/metrics.js.gz +0 -0
  160. package/lib/umd/persisters/persister-browser.js +1 -1
  161. package/lib/umd/persisters/persister-browser.js.gz +0 -0
  162. package/lib/umd/persisters/persister-cr-sqlite-wasm.js +1 -1
  163. package/lib/umd/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  164. package/lib/umd/persisters/persister-file.js +1 -1
  165. package/lib/umd/persisters/persister-file.js.gz +0 -0
  166. package/lib/umd/persisters/persister-remote.js +1 -1
  167. package/lib/umd/persisters/persister-remote.js.gz +0 -0
  168. package/lib/umd/persisters/persister-sqlite-wasm.js +1 -1
  169. package/lib/umd/persisters/persister-sqlite-wasm.js.gz +0 -0
  170. package/lib/umd/persisters/persister-sqlite3.js +1 -1
  171. package/lib/umd/persisters/persister-sqlite3.js.gz +0 -0
  172. package/lib/umd/queries.js +1 -1
  173. package/lib/umd/queries.js.gz +0 -0
  174. package/lib/umd/relationships.js +1 -1
  175. package/lib/umd/relationships.js.gz +0 -0
  176. package/lib/umd/store.js +1 -1
  177. package/lib/umd/store.js.gz +0 -0
  178. package/lib/umd/tinybase.js +1 -1
  179. package/lib/umd/tinybase.js.gz +0 -0
  180. package/lib/umd/tools.js +1 -1
  181. package/lib/umd/tools.js.gz +0 -0
  182. package/lib/umd/ui-react-dom.js +1 -1
  183. package/lib/umd/ui-react-dom.js.gz +0 -0
  184. package/lib/umd/ui-react.js +1 -1
  185. package/lib/umd/ui-react.js.gz +0 -0
  186. package/lib/umd-es6/checkpoints.js +1 -1
  187. package/lib/umd-es6/checkpoints.js.gz +0 -0
  188. package/lib/umd-es6/indexes.js +1 -1
  189. package/lib/umd-es6/indexes.js.gz +0 -0
  190. package/lib/umd-es6/metrics.js +1 -1
  191. package/lib/umd-es6/metrics.js.gz +0 -0
  192. package/lib/umd-es6/persisters/persister-browser.js +1 -1
  193. package/lib/umd-es6/persisters/persister-browser.js.gz +0 -0
  194. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  195. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  196. package/lib/umd-es6/persisters/persister-file.js +1 -1
  197. package/lib/umd-es6/persisters/persister-file.js.gz +0 -0
  198. package/lib/umd-es6/persisters/persister-remote.js +1 -1
  199. package/lib/umd-es6/persisters/persister-remote.js.gz +0 -0
  200. package/lib/umd-es6/persisters/persister-sqlite-wasm.js +1 -1
  201. package/lib/umd-es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  202. package/lib/umd-es6/persisters/persister-sqlite3.js +1 -1
  203. package/lib/umd-es6/persisters/persister-sqlite3.js.gz +0 -0
  204. package/lib/umd-es6/queries.js +1 -1
  205. package/lib/umd-es6/queries.js.gz +0 -0
  206. package/lib/umd-es6/relationships.js +1 -1
  207. package/lib/umd-es6/relationships.js.gz +0 -0
  208. package/lib/umd-es6/store.js +1 -1
  209. package/lib/umd-es6/store.js.gz +0 -0
  210. package/lib/umd-es6/tinybase.js +1 -1
  211. package/lib/umd-es6/tinybase.js.gz +0 -0
  212. package/lib/umd-es6/tools.js +1 -1
  213. package/lib/umd-es6/tools.js.gz +0 -0
  214. package/lib/umd-es6/ui-react-dom.js +1 -1
  215. package/lib/umd-es6/ui-react-dom.js.gz +0 -0
  216. package/lib/umd-es6/ui-react.js +1 -1
  217. package/lib/umd-es6/ui-react.js.gz +0 -0
  218. package/package.json +17 -17
  219. package/readme.md +2 -2
package/bin/cli.js CHANGED
@@ -1,2 +1,2 @@
1
1
  #! /usr/bin/env node
2
- import{resolve as t,dirname as e}from"path";import{readFileSync as r,writeFileSync as s}from"fs";import{createStore as a}from"tinybase";import{createTools as o}from"tinybase/tools";import{fileURLToPath as i}from"url";const n="utf8",m=JSON.parse,c=Object,p=(...t)=>{return e=t=>process.stdout.write(t+"\n"),t.forEach(e);var e},d=t=>m(r(t,n)),l=(e,r,a,o)=>{const i=t(e,r);p(o.padStart(23)+": "+i),s(i,a,n)},u=()=>{var t,e;p("","tinybase <command>","","Usage:",""),t=f,e=([,t,e],r)=>p(` tinybase ${r} ${t}`," - "+e,""),((t,e)=>{t.map(e)})(c.entries(t),(([t,r])=>e(r,t))),p("See also http://tinybase.org/guides/developer-tools/command-line/","")},f={help:[u,"","print this message"],version:[()=>p(d(t(e(i(import.meta.url)),"../package.json")).version),"","get the current TinyBase version"],getStoreApi:[async(t,e,r)=>{try{const[s,i,n,m]=await(t=>{const e=d(t);return o(a().setSchema(...(r=e,Array.isArray(r)?e:[e])));var r})(t).getPrettyStoreApi(e);l(r,e+".d.ts",s,"Definition"),l(r,e+".ts",i,"Implementation"),l(r,e+"-ui-react.d.ts",n,"UI React definition"),l(r,e+"-ui-react.tsx",m,"UI React implementation")}catch{process.stderr.write("ERROR: provide a valid schemaFile, storeName, and outputDir\n")}},"<schemaFile> <storeName> <outputDir>","generate .d.ts, .ts, and .tsx API files from a schema file"]};(()=>{const[,,t,...e]=process.argv;(f[t]?.[0]??u)(...e)})();
2
+ import{resolve as t,dirname as e}from"path";import{readFileSync as r,writeFileSync as s}from"fs";import{createStore as a}from"tinybase";import{createTools as o}from"tinybase/tools";import{fileURLToPath as i}from"url";const n="utf8",m=Object,c=JSON.parse,p=(...t)=>{return e=t=>process.stdout.write(t+"\n"),t.forEach(e);var e},d=t=>c(r(t,n)),l=(e,r,a,o)=>{const i=t(e,r);p(o.padStart(23)+": "+i),s(i,a,n)},u=()=>{var t,e;p("","tinybase <command>","","Usage:",""),t=f,e=([,t,e],r)=>p(` tinybase ${r} ${t}`," - "+e,""),((t,e)=>{t.map(e)})(m.entries(t),(([t,r])=>e(r,t))),p("See also http://tinybase.org/guides/developer-tools/command-line/","")},f={help:[u,"","print this message"],version:[()=>p(d(t(e(i(import.meta.url)),"../package.json")).version),"","get the current TinyBase version"],getStoreApi:[async(t,e,r)=>{try{const[s,i,n,m]=await(t=>{const e=d(t);return o(a().setSchema(...(r=e,Array.isArray(r)?e:[e])));var r})(t).getPrettyStoreApi(e);l(r,e+".d.ts",s,"Definition"),l(r,e+".ts",i,"Implementation"),l(r,e+"-ui-react.d.ts",n,"UI React definition"),l(r,e+"-ui-react.tsx",m,"UI React implementation")}catch{process.stderr.write("ERROR: provide a valid schemaFile, storeName, and outputDir\n")}},"<schemaFile> <storeName> <outputDir>","generate .d.ts, .ts, and .tsx API files from a schema file"]};(()=>{const[,,t,...e]=process.argv;(f[t]?.[0]??u)(...e)})();
@@ -1 +1 @@
1
- const e=(e,t)=>e.includes(t),t=(e,t)=>e.forEach(t),n=e=>e.length,r=e=>0==n(e),s=(e,...t)=>e.push(...t),o=e=>e.pop(),l=e=>e.shift(),c=e=>null==e,i=(e,t,n)=>c(e)?n?.():t(e),a=Object.freeze,d=(e,t)=>e?.has(t)??!1,u=e=>c(e)||0==(e=>e.size)(e),h=(e,t)=>e?.forEach(t),p=(e,t)=>e?.delete(t),C=e=>new Map(e),f=(e,t)=>e?.get(t),g=(e,t,n)=>c(n)?(p(e,t),e):e?.set(t,n),k=(e,t,n)=>(d(e,t)||g(e,t,n()),f(e,t)),L=(e,t,r,s,o=0)=>i((r?k:f)(e,t[o],o>n(t)-2?r:C),(l=>{if(o>n(t)-2)return s?.(l)&&g(e,t[o]),l;const c=L(l,t,r,s,o+1);return u(l)&&g(e,t[o]),c})),v=e=>new Set(Array.isArray(e)||c(e)?e:[e]),w=/^\d+$/,S=(S=>{const y=new WeakMap;return S=>(y.has(S)||y.set(S,(S=>{let y,z,E,V=100,A=C(),I=C(),M=1;const b=C(),j=C(),[x,B,F]=(e=>{let r;const[o,a]=(()=>{const e=[];let t=0;return[n=>(n?l(e):null)??""+t++,t=>{w.test(t)&&n(e)<1e3&&s(e,t)}]})(),d=C();return[(e,t,n,s=[],l=(()=>[]))=>{r??=_;const c=o(1);var i,a;return g(d,c,[e,t,n,s,l]),i=L(t,n??[""],v),a=c,i?.add(a),c},(e,o,...l)=>t(((e,r=[""])=>{const o=[],l=(e,c)=>c==n(r)?s(o,e):null===r[c]?h(e,(e=>l(e,c+1))):t([r[c],null],(t=>l(f(e,t),c+1)));return l(e,0),o})(e,o),(e=>h(e,(e=>f(d,e)[0](r,...o??[],...l))))),e=>i(f(d,e),(([,t,n])=>(L(t,n??[""],void 0,(t=>(p(t,e),u(t)?1:0))),g(d,e),a(e),n))),e=>i(f(d,e),(([e,,s=[],o,l])=>{const i=(...a)=>{const d=n(a);d==n(s)?e(r,...a,...l(a)):c(s[d])?t(o[d]?.(...a)??[],(e=>i(...a,e))):i(...a,s[d])};i()}))]})(),O=C(),T=C(),W=[],$=[],m=(e,t)=>{M=0,S.transaction((()=>{const[n,r]=f(O,t);h(n,((t,n)=>h(t,((t,r)=>h(t,((t,s)=>((e,t,n,r,s)=>c(s)?e.delCell(t,n,r,!0):e.setCell(t,n,r,s))(S,n,r,s,t[e]))))))),h(r,((t,n)=>((e,t,n)=>c(n)?e.delValue(t):e.setValue(t,n))(S,n,t[e])))})),M=1},q=e=>{g(O,e),g(T,e),B(j,[e])},D=(e,r)=>t(((e,t)=>e.splice(0,t))(e,r??n(e)),q),G=()=>D(W,n(W)-V),H=()=>i(y,(()=>{s(W,y),G(),D($),y=void 0,E=1})),J=()=>{y=o(W),E=1},K=S.addCellListener(null,null,null,((e,t,n,r,s,o)=>{if(M){H();const e=k(A,t,C),l=k(e,n,C),c=k(l,r,(()=>[o,void 0]));c[1]=s,c[0]===s&&u(g(l,r))&&u(g(e,n))&&u(g(A,t))&&J(),U()}})),N=S.addValueListener(null,((e,t,n,r)=>{if(M){H();const e=k(I,t,(()=>[r,void 0]));e[1]=n,e[0]===n&&u(g(I,t))&&J(),U()}})),P=(e="")=>(c(y)&&(y=""+z++,g(O,y,[A,I]),Y(y,e),A=C(),I=C(),E=1),y),Q=()=>{r(W)||(((e,...t)=>{e.unshift(...t)})($,P()),m(0,y),y=o(W),E=1)},R=()=>{r($)||(s(W,y),y=l($),m(1,y),E=1)},U=()=>{E&&(B(b),E=0)},X=e=>{const t=P(e);return U(),t},Y=(e,t)=>(Z(e)&&f(T,e)!==t&&(g(T,e,t),B(j,[e])),_),Z=e=>d(O,e),_={setSize:e=>(V=e,G(),_),addCheckpoint:X,setCheckpoint:Y,getStore:()=>S,getCheckpointIds:()=>[[...W],y,[...$]],forEachCheckpoint:e=>{return t=e,h(T,((e,n)=>t(n,e)));var t},hasCheckpoint:Z,getCheckpoint:e=>f(T,e),goBackward:()=>(Q(),U(),_),goForward:()=>(R(),U(),_),goTo:t=>{const n=e(W,t)?Q:e($,t)?R:null;for(;!c(n)&&t!=y;)n();return U(),_},addCheckpointIdsListener:e=>x(e,b),addCheckpointListener:(e,t)=>x(t,j,[e]),delListener:e=>(F(e),_),clear:()=>(D(W),D($),c(y)||q(y),y=void 0,z=0,X(),_),destroy:()=>{S.delListener(K),S.delListener(N)},getListenerStats:()=>({})};return a(_.clear())})(S)),y.get(S))})();export{S as createCheckpoints};
1
+ const e=e=>null==e,t=(t,n,r)=>e(t)?r?.():n(t),n=(e,t)=>e.includes(t),r=(e,t)=>e.forEach(t),s=e=>e.length,o=e=>0==s(e),l=(e,...t)=>e.push(...t),c=e=>e.pop(),i=e=>e.shift(),a=Object.freeze,d=(e,t)=>e?.has(t)??!1,u=t=>e(t)||0==(e=>e.size)(t),h=(e,t)=>e?.forEach(t),p=(e,t)=>e?.delete(t),C=e=>new Map(e),f=(e,t)=>e?.get(t),g=(t,n,r)=>e(r)?(p(t,n),t):t?.set(n,r),k=(e,t,n)=>(d(e,t)||g(e,t,n()),f(e,t)),L=(e,n,r,o,l=0)=>t((r?k:f)(e,n[l],l>s(n)-2?r:C),(t=>{if(l>s(n)-2)return o?.(t)&&g(e,n[l]),t;const c=L(t,n,r,o,l+1);return u(t)&&g(e,n[l]),c})),v=t=>new Set(Array.isArray(t)||e(t)?t:[t]),w=/^\d+$/,S=(S=>{const y=new WeakMap;return S=>(y.has(S)||y.set(S,(S=>{let y,z,E,V=100,A=C(),I=C(),M=1;const b=C(),j=C(),[x,B,F]=(n=>{let o;const[c,a]=(()=>{const e=[];let t=0;return[n=>(n?i(e):null)??""+t++,t=>{w.test(t)&&s(e)<1e3&&l(e,t)}]})(),d=C();return[(e,t,n,r=[],s=(()=>[]))=>{o??=_;const l=c(1);var i,a;return g(d,l,[e,t,n,r,s]),i=L(t,n??[""],v),a=l,i?.add(a),l},(e,t,...n)=>r(((e,t=[""])=>{const n=[],o=(e,c)=>c==s(t)?l(n,e):null===t[c]?h(e,(e=>o(e,c+1))):r([t[c],null],(t=>o(f(e,t),c+1)));return o(e,0),n})(e,t),(e=>h(e,(e=>f(d,e)[0](o,...t??[],...n))))),e=>t(f(d,e),(([,t,n])=>(L(t,n??[""],void 0,(t=>(p(t,e),u(t)?1:0))),g(d,e),a(e),n))),n=>t(f(d,n),(([t,,n=[],l,c])=>{const i=(...a)=>{const d=s(a);d==s(n)?t(o,...a,...c(a)):e(n[d])?r(l[d]?.(...a)??[],(e=>i(...a,e))):i(...a,n[d])};i()}))]})(),O=C(),T=C(),W=[],$=[],m=(t,n)=>{M=0,S.transaction((()=>{const[r,s]=f(O,n);h(r,((n,r)=>h(n,((n,s)=>h(n,((n,o)=>((t,n,r,s,o)=>e(o)?t.delCell(n,r,s,!0):t.setCell(n,r,s,o))(S,r,s,o,n[t]))))))),h(s,((n,r)=>((t,n,r)=>e(r)?t.delValue(n):t.setValue(n,r))(S,r,n[t])))})),M=1},q=e=>{g(O,e),g(T,e),B(j,[e])},D=(e,t)=>r(((e,t)=>e.splice(0,t))(e,t??s(e)),q),G=()=>D(W,s(W)-V),H=()=>t(y,(()=>{l(W,y),G(),D($),y=void 0,E=1})),J=()=>{y=c(W),E=1},K=S.addCellListener(null,null,null,((e,t,n,r,s,o)=>{if(M){H();const e=k(A,t,C),l=k(e,n,C),c=k(l,r,(()=>[o,void 0]));c[1]=s,c[0]===s&&u(g(l,r))&&u(g(e,n))&&u(g(A,t))&&J(),U()}})),N=S.addValueListener(null,((e,t,n,r)=>{if(M){H();const e=k(I,t,(()=>[r,void 0]));e[1]=n,e[0]===n&&u(g(I,t))&&J(),U()}})),P=(t="")=>(e(y)&&(y=""+z++,g(O,y,[A,I]),Y(y,t),A=C(),I=C(),E=1),y),Q=()=>{o(W)||(((e,...t)=>{e.unshift(...t)})($,P()),m(0,y),y=c(W),E=1)},R=()=>{o($)||(l(W,y),y=i($),m(1,y),E=1)},U=()=>{E&&(B(b),E=0)},X=e=>{const t=P(e);return U(),t},Y=(e,t)=>(Z(e)&&f(T,e)!==t&&(g(T,e,t),B(j,[e])),_),Z=e=>d(O,e),_={setSize:e=>(V=e,G(),_),addCheckpoint:X,setCheckpoint:Y,getStore:()=>S,getCheckpointIds:()=>[[...W],y,[...$]],forEachCheckpoint:e=>{return t=e,h(T,((e,n)=>t(n,e)));var t},hasCheckpoint:Z,getCheckpoint:e=>f(T,e),goBackward:()=>(Q(),U(),_),goForward:()=>(R(),U(),_),goTo:t=>{const r=n(W,t)?Q:n($,t)?R:null;for(;!e(r)&&t!=y;)r();return U(),_},addCheckpointIdsListener:e=>x(e,b),addCheckpointListener:(e,t)=>x(t,j,[e]),delListener:e=>(F(e),_),clear:()=>(D(W),D($),e(y)||q(y),y=void 0,z=0,X(),_),destroy:()=>{S.delListener(K),S.delListener(N)},getListenerStats:()=>({})};return a(_.clear())})(S)),y.get(S))})();export{S as createCheckpoints};
Binary file
@@ -1 +1 @@
1
- "use strict";const e=(e,t)=>e.includes(t),t=(e,t)=>e.forEach(t),n=e=>e.length,r=e=>0==n(e),s=(e,...t)=>e.push(...t),o=e=>e.pop(),l=e=>e.shift(),c=e=>null==e,i=(e,t,n)=>c(e)?n?.():t(e),a=Object.freeze,d=(e,t)=>e?.has(t)??!1,u=e=>c(e)||0==(e=>e.size)(e),h=(e,t)=>e?.forEach(t),p=(e,t)=>e?.delete(t),C=e=>new Map(e),k=(e,t)=>e?.get(t),f=(e,t,n)=>c(n)?(p(e,t),e):e?.set(t,n),g=(e,t,n)=>(d(e,t)||f(e,t,n()),k(e,t)),L=(e,t,r,s,o=0)=>i((r?g:k)(e,t[o],o>n(t)-2?r:C),(l=>{if(o>n(t)-2)return s?.(l)&&f(e,t[o]),l;const c=L(l,t,r,s,o+1);return u(l)&&f(e,t[o]),c})),v=e=>new Set(Array.isArray(e)||c(e)?e:[e]),w=/^\d+$/,S=(S=>{const y=new WeakMap;return S=>(y.has(S)||y.set(S,(S=>{let y,z,E,V=100,A=C(),I=C(),M=1;const b=C(),j=C(),[x,B,F]=(e=>{let r;const[o,a]=(()=>{const e=[];let t=0;return[n=>(n?l(e):null)??""+t++,t=>{w.test(t)&&n(e)<1e3&&s(e,t)}]})(),d=C();return[(e,t,n,s=[],l=(()=>[]))=>{r??=_;const c=o(1);var i,a;return f(d,c,[e,t,n,s,l]),i=L(t,n??[""],v),a=c,i?.add(a),c},(e,o,...l)=>t(((e,r=[""])=>{const o=[],l=(e,c)=>c==n(r)?s(o,e):null===r[c]?h(e,(e=>l(e,c+1))):t([r[c],null],(t=>l(k(e,t),c+1)));return l(e,0),o})(e,o),(e=>h(e,(e=>k(d,e)[0](r,...o??[],...l))))),e=>i(k(d,e),(([,t,n])=>(L(t,n??[""],void 0,(t=>(p(t,e),u(t)?1:0))),f(d,e),a(e),n))),e=>i(k(d,e),(([e,,s=[],o,l])=>{const i=(...a)=>{const d=n(a);d==n(s)?e(r,...a,...l(a)):c(s[d])?t(o[d]?.(...a)??[],(e=>i(...a,e))):i(...a,s[d])};i()}))]})(),O=C(),T=C(),W=[],$=[],m=(e,t)=>{M=0,S.transaction((()=>{const[n,r]=k(O,t);h(n,((t,n)=>h(t,((t,r)=>h(t,((t,s)=>((e,t,n,r,s)=>c(s)?e.delCell(t,n,r,!0):e.setCell(t,n,r,s))(S,n,r,s,t[e]))))))),h(r,((t,n)=>((e,t,n)=>c(n)?e.delValue(t):e.setValue(t,n))(S,n,t[e])))})),M=1},q=e=>{f(O,e),f(T,e),B(j,[e])},D=(e,r)=>t(((e,t)=>e.splice(0,t))(e,r??n(e)),q),G=()=>D(W,n(W)-V),H=()=>i(y,(()=>{s(W,y),G(),D($),y=void 0,E=1})),J=()=>{y=o(W),E=1},K=S.addCellListener(null,null,null,((e,t,n,r,s,o)=>{if(M){H();const e=g(A,t,C),l=g(e,n,C),c=g(l,r,(()=>[o,void 0]));c[1]=s,c[0]===s&&u(f(l,r))&&u(f(e,n))&&u(f(A,t))&&J(),U()}})),N=S.addValueListener(null,((e,t,n,r)=>{if(M){H();const e=g(I,t,(()=>[r,void 0]));e[1]=n,e[0]===n&&u(f(I,t))&&J(),U()}})),P=(e="")=>(c(y)&&(y=""+z++,f(O,y,[A,I]),Y(y,e),A=C(),I=C(),E=1),y),Q=()=>{r(W)||(((e,...t)=>{e.unshift(...t)})($,P()),m(0,y),y=o(W),E=1)},R=()=>{r($)||(s(W,y),y=l($),m(1,y),E=1)},U=()=>{E&&(B(b),E=0)},X=e=>{const t=P(e);return U(),t},Y=(e,t)=>(Z(e)&&k(T,e)!==t&&(f(T,e,t),B(j,[e])),_),Z=e=>d(O,e),_={setSize:e=>(V=e,G(),_),addCheckpoint:X,setCheckpoint:Y,getStore:()=>S,getCheckpointIds:()=>[[...W],y,[...$]],forEachCheckpoint:e=>{return t=e,h(T,((e,n)=>t(n,e)));var t},hasCheckpoint:Z,getCheckpoint:e=>k(T,e),goBackward:()=>(Q(),U(),_),goForward:()=>(R(),U(),_),goTo:t=>{const n=e(W,t)?Q:e($,t)?R:null;for(;!c(n)&&t!=y;)n();return U(),_},addCheckpointIdsListener:e=>x(e,b),addCheckpointListener:(e,t)=>x(t,j,[e]),delListener:e=>(F(e),_),clear:()=>(D(W),D($),c(y)||q(y),y=void 0,z=0,X(),_),destroy:()=>{S.delListener(K),S.delListener(N)},getListenerStats:()=>({})};return a(_.clear())})(S)),y.get(S))})();exports.createCheckpoints=S;
1
+ "use strict";const e=e=>null==e,t=(t,n,r)=>e(t)?r?.():n(t),n=(e,t)=>e.includes(t),r=(e,t)=>e.forEach(t),s=e=>e.length,o=e=>0==s(e),l=(e,...t)=>e.push(...t),c=e=>e.pop(),i=e=>e.shift(),a=Object.freeze,d=(e,t)=>e?.has(t)??!1,u=t=>e(t)||0==(e=>e.size)(t),h=(e,t)=>e?.forEach(t),p=(e,t)=>e?.delete(t),C=e=>new Map(e),k=(e,t)=>e?.get(t),f=(t,n,r)=>e(r)?(p(t,n),t):t?.set(n,r),g=(e,t,n)=>(d(e,t)||f(e,t,n()),k(e,t)),L=(e,n,r,o,l=0)=>t((r?g:k)(e,n[l],l>s(n)-2?r:C),(t=>{if(l>s(n)-2)return o?.(t)&&f(e,n[l]),t;const c=L(t,n,r,o,l+1);return u(t)&&f(e,n[l]),c})),v=t=>new Set(Array.isArray(t)||e(t)?t:[t]),w=/^\d+$/,S=(S=>{const y=new WeakMap;return S=>(y.has(S)||y.set(S,(S=>{let y,z,E,V=100,A=C(),I=C(),M=1;const b=C(),j=C(),[x,B,F]=(n=>{let o;const[c,a]=(()=>{const e=[];let t=0;return[n=>(n?i(e):null)??""+t++,t=>{w.test(t)&&s(e)<1e3&&l(e,t)}]})(),d=C();return[(e,t,n,r=[],s=(()=>[]))=>{o??=_;const l=c(1);var i,a;return f(d,l,[e,t,n,r,s]),i=L(t,n??[""],v),a=l,i?.add(a),l},(e,t,...n)=>r(((e,t=[""])=>{const n=[],o=(e,c)=>c==s(t)?l(n,e):null===t[c]?h(e,(e=>o(e,c+1))):r([t[c],null],(t=>o(k(e,t),c+1)));return o(e,0),n})(e,t),(e=>h(e,(e=>k(d,e)[0](o,...t??[],...n))))),e=>t(k(d,e),(([,t,n])=>(L(t,n??[""],void 0,(t=>(p(t,e),u(t)?1:0))),f(d,e),a(e),n))),n=>t(k(d,n),(([t,,n=[],l,c])=>{const i=(...a)=>{const d=s(a);d==s(n)?t(o,...a,...c(a)):e(n[d])?r(l[d]?.(...a)??[],(e=>i(...a,e))):i(...a,n[d])};i()}))]})(),O=C(),T=C(),W=[],$=[],m=(t,n)=>{M=0,S.transaction((()=>{const[r,s]=k(O,n);h(r,((n,r)=>h(n,((n,s)=>h(n,((n,o)=>((t,n,r,s,o)=>e(o)?t.delCell(n,r,s,!0):t.setCell(n,r,s,o))(S,r,s,o,n[t]))))))),h(s,((n,r)=>((t,n,r)=>e(r)?t.delValue(n):t.setValue(n,r))(S,r,n[t])))})),M=1},q=e=>{f(O,e),f(T,e),B(j,[e])},D=(e,t)=>r(((e,t)=>e.splice(0,t))(e,t??s(e)),q),G=()=>D(W,s(W)-V),H=()=>t(y,(()=>{l(W,y),G(),D($),y=void 0,E=1})),J=()=>{y=c(W),E=1},K=S.addCellListener(null,null,null,((e,t,n,r,s,o)=>{if(M){H();const e=g(A,t,C),l=g(e,n,C),c=g(l,r,(()=>[o,void 0]));c[1]=s,c[0]===s&&u(f(l,r))&&u(f(e,n))&&u(f(A,t))&&J(),U()}})),N=S.addValueListener(null,((e,t,n,r)=>{if(M){H();const e=g(I,t,(()=>[r,void 0]));e[1]=n,e[0]===n&&u(f(I,t))&&J(),U()}})),P=(t="")=>(e(y)&&(y=""+z++,f(O,y,[A,I]),Y(y,t),A=C(),I=C(),E=1),y),Q=()=>{o(W)||(((e,...t)=>{e.unshift(...t)})($,P()),m(0,y),y=c(W),E=1)},R=()=>{o($)||(l(W,y),y=i($),m(1,y),E=1)},U=()=>{E&&(B(b),E=0)},X=e=>{const t=P(e);return U(),t},Y=(e,t)=>(Z(e)&&k(T,e)!==t&&(f(T,e,t),B(j,[e])),_),Z=e=>d(O,e),_={setSize:e=>(V=e,G(),_),addCheckpoint:X,setCheckpoint:Y,getStore:()=>S,getCheckpointIds:()=>[[...W],y,[...$]],forEachCheckpoint:e=>{return t=e,h(T,((e,n)=>t(n,e)));var t},hasCheckpoint:Z,getCheckpoint:e=>k(T,e),goBackward:()=>(Q(),U(),_),goForward:()=>(R(),U(),_),goTo:t=>{const r=n(W,t)?Q:n($,t)?R:null;for(;!e(r)&&t!=y;)r();return U(),_},addCheckpointIdsListener:e=>x(e,b),addCheckpointListener:(e,t)=>x(t,j,[e]),delListener:e=>(F(e),_),clear:()=>(D(W),D($),e(y)||q(y),y=void 0,z=0,X(),_),destroy:()=>{S.delListener(K),S.delListener(N)},getListenerStats:()=>({})};return a(_.clear())})(S)),y.get(S))})();exports.createCheckpoints=S;
Binary file
@@ -1 +1 @@
1
- "use strict";const e=e=>typeof e,t="",n=e(t),s=e=>t+e,r=(e,t)=>e.every(t),o=(e,t)=>r(e,((n,s)=>0==s||t(e[s-1],n)<=0)),c=(e,t)=>e.sort(t),l=(e,t)=>e.forEach(t),d=e=>e.length,a=(e,...t)=>e.push(...t),i=e=>null==e,u=(e,t,n)=>i(e)?n?.():t(e),h=e=>Array.isArray(e),f=Object.freeze,I=(e,t)=>e?.has(t)??!1,g=e=>i(e)||0==(e=>e.size)(e),S=e=>[...e?.values()??[]],v=e=>e.clear(),w=(e,t)=>e?.forEach(t),L=(e,t)=>e?.delete(t),x=e=>new Map(e),p=e=>[...e?.keys()??[]],y=(e,t)=>e?.get(t),E=(e,t)=>w(e,((e,n)=>t(n,e))),R=(e,t,n)=>i(n)?(L(e,t),e):e?.set(t,n),b=(e,t,n)=>(I(e,t)||R(e,t,n()),y(e,t)),T=(e,t,n,s,r=0)=>u((n?b:y)(e,t[r],r>d(t)-2?n:x),(o=>{if(r>d(t)-2)return s?.(o)&&R(e,t[r]),o;const c=T(o,t,n,s,r+1);return g(o)&&R(e,t[r]),c})),k=e=>new Set(h(e)||i(e)?e:[e]),z=(e,t)=>e?.add(t),A=(s,r)=>e(s)==n?e=>e(s):s??(()=>r??t),C=(e,t)=>e<t?-1:1,D=/^\d+$/,M=(e=>{const n=new WeakMap;return e=>(n.has(e)||n.set(e,(e=>{const n=x(),M=x(),[j,m,O,W,$,q,B,,F,G,H]=((e,t,n)=>{const s=e.hasRow,o=x(),c=x(),a=x(),f=x(),T=x(),A=(t,n,...s)=>{const r=b(T,t,k);return l(s,(t=>z(r,t)&&n&&e.callListener(t))),s},C=(t,...n)=>u(y(T,t),(s=>{l(0==d(n)?S(s):n,(t=>{e.delListener(t),L(s,t)})),g(s)&&R(T,t)})),D=(e,n)=>{R(o,e,n),I(c,e)||(R(c,e,t()),R(a,e,x()),R(f,e,x()))},M=e=>{R(o,e),R(c,e),R(a,e),R(f,e),C(e)};return[()=>e,()=>p(o),e=>E(c,e),e=>I(c,e),e=>y(o,e),e=>y(c,e),(e,t)=>R(c,e,t),D,(t,o,c,u,g)=>{D(t,o);const S=x(),L=x(),p=y(a,t),b=y(f,t),T=t=>{const c=n=>e.getCell(o,t,n),l=y(p,t),a=s(o,t)?n(u(c,t)):void 0;var f,I;if(l===a||h(l)&&h(a)&&(I=a,d(f=l)===d(I)&&r(f,((e,t)=>I[t]===e)))||R(S,t,[l,a]),!i(g)){const e=y(b,t),n=s(o,t)?g(c,t):void 0;e!=n&&R(L,t,n)}},k=e=>{c((()=>{w(S,(([,e],t)=>R(p,t,e))),w(L,((e,t)=>R(b,t,e)))}),S,L,p,b,e),v(S),v(L)};E(p,T),e.hasTable(o)&&l(e.getRowIds(o),(e=>{I(p,e)||T(e)})),k(!0),C(t),A(t,0,e.addRowListener(o,null,((e,t,n)=>T(n))),e.addTableListener(o,(()=>k())))},M,()=>E(T,M),A,C]})(e,x,(e=>{return i(e)?t:h(e)?(n=s,e.map(n)):s(e);var n})),[J,K,N]=(e=>{let n;const[s,r]=(()=>{const e=[];let n=0;return[s=>(s?e.shift():null)??t+n++,t=>{D.test(t)&&d(e)<1e3&&a(e,t)}]})(),o=x();return[(e,r,c,l=[],d=(()=>[]))=>{n??=Q;const a=s(1);return R(o,a,[e,r,c,l,d]),z(T(r,c??[t],k),a),a},(e,s,...r)=>l(((e,n=[t])=>{const s=[],r=(e,t)=>t==d(n)?a(s,e):null===n[t]?w(e,(e=>r(e,t+1))):l([n[t],null],(n=>r(y(e,n),t+1)));return r(e,0),s})(e,s),(e=>w(e,(e=>y(o,e)[0](n,...s??[],...r))))),e=>u(y(o,e),(([,n,s])=>(T(n,s??[t],void 0,(t=>(L(t,e),g(t)?1:0))),R(o,e),r(e),s))),e=>u(y(o,e),(([e,,t=[],s,r])=>{const o=(...c)=>{const a=d(c);a==d(t)?e(n,...c,...r(c)):i(t[a])?l(s[a]?.(...c)??[],(e=>o(...c,e))):o(...c,t[a])};o()}))]})(),P=(t,n,s)=>{const r=$(t);w(s,((t,s)=>n(s,(n=>w(t,(t=>n(t,(n=>e.forEachCell(r,t,n)))))))))},Q={setIndexDefinition:(e,t,s,r,l,d=C)=>{const a=i(l)?void 0:([e],[t])=>l(e,t);return F(e,t,((t,s,l,h,f,S)=>{let v=0;const p=k(),b=k(),T=q(e);if(w(s,(([e,t],n)=>{const s=k(e),o=k(t);w(s,(e=>L(o,e)?L(s,e):0)),w(s,(e=>{z(p,e),u(y(T,e),(t=>{L(t,n),g(t)&&(R(T,e),v=1)}))})),w(o,(e=>{z(p,e),I(T,e)||(R(T,e,k()),v=1),z(y(T,e),n),i(r)||z(b,e)}))})),t(),g(f)||(S?E(T,(e=>z(b,e))):E(l,(e=>u(y(h,e),(e=>z(b,e))))),w(b,(e=>{const t=(t,n)=>d(y(f,t),y(f,n),e),n=[...y(T,e)];o(n,t)||(R(T,e,k(c(n,t))),z(p,e))}))),(v||S)&&!i(a)){const t=[...T];o(t,a)||(B(e,x(c(t,a))),v=1)}v&&K(n,[e]),w(p,(t=>K(M,[e,t])))}),A(s),u(r,A)),Q},delIndexDefinition:e=>(G(e),Q),getStore:j,getIndexIds:m,forEachIndex:e=>O(((t,n)=>e(t,(e=>P(t,e,n))))),forEachSlice:(e,t)=>P(e,t,q(e)),hasIndex:W,hasSlice:(e,t)=>I(q(e),t),getTableId:$,getSliceIds:e=>p(q(e)),getSliceRowIds:(e,t)=>S(y(q(e),t)),addSliceIdsListener:(e,t)=>J(t,n,[e]),addSliceRowIdsListener:(e,t,n)=>J(n,M,[e,t]),delListener:e=>(N(e),Q),destroy:H,getListenerStats:()=>({})};return f(Q)})(e)),n.get(e))})();exports.createIndexes=M;
1
+ "use strict";const e=e=>typeof e,t="",n=e(t),s=e=>t+e,r=e=>null==e,o=(e,t,n)=>r(e)?n?.():t(e),c=e=>Array.isArray(e),l=(e,t)=>e.every(t),d=(e,t)=>l(e,((n,s)=>0==s||t(e[s-1],n)<=0)),a=(e,t)=>e.sort(t),i=(e,t)=>e.forEach(t),u=e=>e.length,h=(e,...t)=>e.push(...t),f=Object.freeze,I=(e,t)=>e?.has(t)??!1,g=e=>r(e)||0==(e=>e.size)(e),S=e=>[...e?.values()??[]],v=e=>e.clear(),w=(e,t)=>e?.forEach(t),L=(e,t)=>e?.delete(t),x=e=>new Map(e),p=e=>[...e?.keys()??[]],y=(e,t)=>e?.get(t),E=(e,t)=>w(e,((e,n)=>t(n,e))),R=(e,t,n)=>r(n)?(L(e,t),e):e?.set(t,n),b=(e,t,n)=>(I(e,t)||R(e,t,n()),y(e,t)),T=(e,t,n,s,r=0)=>o((n?b:y)(e,t[r],r>u(t)-2?n:x),(o=>{if(r>u(t)-2)return s?.(o)&&R(e,t[r]),o;const c=T(o,t,n,s,r+1);return g(o)&&R(e,t[r]),c})),k=e=>new Set(c(e)||r(e)?e:[e]),z=(e,t)=>e?.add(t),A=(s,r)=>e(s)==n?e=>e(s):s??(()=>r??t),C=(e,t)=>e<t?-1:1,D=/^\d+$/,M=(e=>{const n=new WeakMap;return e=>(n.has(e)||n.set(e,(e=>{const n=x(),M=x(),[j,m,O,W,$,q,B,,F,G,H]=((e,t,n)=>{const s=e.hasRow,d=x(),a=x(),h=x(),f=x(),T=x(),A=(t,n,...s)=>{const r=b(T,t,k);return i(s,(t=>z(r,t)&&n&&e.callListener(t))),s},C=(t,...n)=>o(y(T,t),(s=>{i(0==u(n)?S(s):n,(t=>{e.delListener(t),L(s,t)})),g(s)&&R(T,t)})),D=(e,n)=>{R(d,e,n),I(a,e)||(R(a,e,t()),R(h,e,x()),R(f,e,x()))},M=e=>{R(d,e),R(a,e),R(h,e),R(f,e),C(e)};return[()=>e,()=>p(d),e=>E(a,e),e=>I(a,e),e=>y(d,e),e=>y(a,e),(e,t)=>R(a,e,t),D,(t,o,d,a,g)=>{D(t,o);const S=x(),L=x(),p=y(h,t),b=y(f,t),T=t=>{const d=n=>e.getCell(o,t,n),i=y(p,t),h=s(o,t)?n(a(d,t)):void 0;var f,I;if(i===h||c(i)&&c(h)&&(I=h,u(f=i)===u(I)&&l(f,((e,t)=>I[t]===e)))||R(S,t,[i,h]),!r(g)){const e=y(b,t),n=s(o,t)?g(d,t):void 0;e!=n&&R(L,t,n)}},k=e=>{d((()=>{w(S,(([,e],t)=>R(p,t,e))),w(L,((e,t)=>R(b,t,e)))}),S,L,p,b,e),v(S),v(L)};E(p,T),e.hasTable(o)&&i(e.getRowIds(o),(e=>{I(p,e)||T(e)})),k(!0),C(t),A(t,0,e.addRowListener(o,null,((e,t,n)=>T(n))),e.addTableListener(o,(()=>k())))},M,()=>E(T,M),A,C]})(e,x,(e=>{return r(e)?t:c(e)?(n=s,e.map(n)):s(e);var n})),[J,K,N]=(e=>{let n;const[s,c]=(()=>{const e=[];let n=0;return[s=>(s?e.shift():null)??t+n++,t=>{D.test(t)&&u(e)<1e3&&h(e,t)}]})(),l=x();return[(e,r,o,c=[],d=(()=>[]))=>{n??=Q;const a=s(1);return R(l,a,[e,r,o,c,d]),z(T(r,o??[t],k),a),a},(e,s,...r)=>i(((e,n=[t])=>{const s=[],r=(e,t)=>t==u(n)?h(s,e):null===n[t]?w(e,(e=>r(e,t+1))):i([n[t],null],(n=>r(y(e,n),t+1)));return r(e,0),s})(e,s),(e=>w(e,(e=>y(l,e)[0](n,...s??[],...r))))),e=>o(y(l,e),(([,n,s])=>(T(n,s??[t],void 0,(t=>(L(t,e),g(t)?1:0))),R(l,e),c(e),s))),e=>o(y(l,e),(([e,,t=[],s,o])=>{const c=(...l)=>{const d=u(l);d==u(t)?e(n,...l,...o(l)):r(t[d])?i(s[d]?.(...l)??[],(e=>c(...l,e))):c(...l,t[d])};c()}))]})(),P=(t,n,s)=>{const r=$(t);w(s,((t,s)=>n(s,(n=>w(t,(t=>n(t,(n=>e.forEachCell(r,t,n)))))))))},Q={setIndexDefinition:(e,t,s,c,l,i=C)=>{const u=r(l)?void 0:([e],[t])=>l(e,t);return F(e,t,((t,s,l,h,f,S)=>{let v=0;const p=k(),b=k(),T=q(e);if(w(s,(([e,t],n)=>{const s=k(e),l=k(t);w(s,(e=>L(l,e)?L(s,e):0)),w(s,(e=>{z(p,e),o(y(T,e),(t=>{L(t,n),g(t)&&(R(T,e),v=1)}))})),w(l,(e=>{z(p,e),I(T,e)||(R(T,e,k()),v=1),z(y(T,e),n),r(c)||z(b,e)}))})),t(),g(f)||(S?E(T,(e=>z(b,e))):E(l,(e=>o(y(h,e),(e=>z(b,e))))),w(b,(e=>{const t=(t,n)=>i(y(f,t),y(f,n),e),n=[...y(T,e)];d(n,t)||(R(T,e,k(a(n,t))),z(p,e))}))),(v||S)&&!r(u)){const t=[...T];d(t,u)||(B(e,x(a(t,u))),v=1)}v&&K(n,[e]),w(p,(t=>K(M,[e,t])))}),A(s),o(c,A)),Q},delIndexDefinition:e=>(G(e),Q),getStore:j,getIndexIds:m,forEachIndex:e=>O(((t,n)=>e(t,(e=>P(t,e,n))))),forEachSlice:(e,t)=>P(e,t,q(e)),hasIndex:W,hasSlice:(e,t)=>I(q(e),t),getTableId:$,getSliceIds:e=>p(q(e)),getSliceRowIds:(e,t)=>S(y(q(e),t)),addSliceIdsListener:(e,t)=>J(t,n,[e]),addSliceRowIdsListener:(e,t,n)=>J(n,M,[e,t]),delListener:e=>(N(e),Q),destroy:H,getListenerStats:()=>({})};return f(Q)})(e)),n.get(e))})();exports.createIndexes=M;
Binary file
@@ -1 +1 @@
1
- "use strict";const e=e=>typeof e,t="",r=e(t),n=e(e),s=(e,t)=>e.forEach(t),i=e=>c(e,((e,t)=>e+t),0),o=e=>e.length,c=(e,t,r)=>e.reduce(t,r),a=(e,...t)=>e.push(...t),d=Math.max,l=Math.min,u=isFinite,v=e=>null==e,h=(e,t,r)=>v(e)?r?.():t(e),M=e=>Array.isArray(e),f=()=>{},g=Object.freeze,L=e=>e.size,m=(e,t)=>e?.has(t)??!1,w=e=>v(e)||0==L(e),y=e=>[...e?.values()??[]],p=e=>e.clear(),b=(e,t)=>e?.forEach(t),x=(e,t)=>e?.delete(t),E=e=>new Map(e),I=(e,t)=>e?.get(t),R=(e,t)=>b(e,((e,r)=>t(r,e))),S=(e,t,r)=>v(r)?(x(e,t),e):e?.set(t,r),T=(e,t,r)=>(m(e,t)||S(e,t,r()),I(e,t)),k=(e,t,r,n,s=0)=>h((r?T:I)(e,t[s],s>o(t)-2?r:E),(i=>{if(s>o(t)-2)return n?.(i)&&S(e,t[s]),i;const c=k(i,t,r,n,s+1);return w(i)&&S(e,t[s]),c})),z=E([["avg",[(e,t)=>i(e)/t,(e,t,r)=>e+(t-e)/(r+1),(e,t,r)=>e+(e-t)/(r-1),(e,t,r,n)=>e+(t-r)/n]],["max",[e=>d(...e),(e,t)=>d(t,e),(e,t)=>t==e?void 0:e,(e,t,r)=>r==e?void 0:d(t,e)]],["min",[e=>l(...e),(e,t)=>l(t,e),(e,t)=>t==e?void 0:e,(e,t,r)=>r==e?void 0:l(t,e)]],["sum",[e=>i(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,r)=>e-r+t]]]),A=e=>new Set(M(e)||v(e)?e:[e]),D=(e,t)=>e?.add(t),N=/^\d+$/,j=(i=>{const c=new WeakMap;return i=>(c.has(i)||c.set(i,(i=>{const c=E(),[d,l,j,C,F,O,W,,$,q,B]=((e,r,n)=>{const i=e.hasRow,c=E(),a=E(),d=E(),l=E(),u=E(),f=(t,r,...n)=>{const i=T(u,t,A);return s(n,(t=>D(i,t)&&r&&e.callListener(t))),n},g=(t,...r)=>h(I(u,t),(n=>{s(0==o(r)?y(n):r,(t=>{e.delListener(t),x(n,t)})),w(n)&&S(u,t)})),L=(e,t)=>{S(c,e,t),m(a,e)||(S(a,e,r()),S(d,e,E()),S(l,e,E()))},k=e=>{S(c,e),S(a,e),S(d,e),S(l,e),g(e)};return[()=>e,()=>{return e=c,[...e?.keys()??[]];var e},e=>R(a,e),e=>m(a,e),e=>I(c,e),e=>I(a,e),(e,t)=>S(a,e,t),L,(r,n,c,a,u)=>{L(r,n);const h=E(),w=E(),y=I(d,r),x=I(l,r),T=r=>{const s=t=>e.getCell(n,r,t),c=I(y,r),d=i(n,r)?(l=a(s,r),isNaN(l)||v(l)||!0===l||!1===l||l===t?void 0:1*l):void 0;var l,f,g,L;if(c===d||M(c)&&M(d)&&(g=d,o(f=c)===o(g)&&(L=(e,t)=>g[t]===e,f.every(L)))||S(h,r,[c,d]),!v(u)){const e=I(x,r),t=i(n,r)?u(s,r):void 0;e!=t&&S(w,r,t)}},k=e=>{c((()=>{b(h,(([,e],t)=>S(y,t,e))),b(w,((e,t)=>S(x,t,e)))}),h,w,y,x,e),p(h),p(w)};R(y,T),e.hasTable(n)&&s(e.getRowIds(n),(e=>{m(y,e)||T(e)})),k(!0),g(r),f(r,0,e.addRowListener(n,null,((e,t,r)=>T(r))),e.addTableListener(n,(()=>k())))},k,()=>R(u,k),f,g]})(i,f),[G,H,J]=(e=>{let r;const[n,i]=(()=>{const e=[];let r=0;return[n=>(n?e.shift():null)??t+r++,t=>{N.test(t)&&o(e)<1e3&&a(e,t)}]})(),c=E();return[(e,s,i,o=[],a=(()=>[]))=>{r??=K;const d=n(1);return S(c,d,[e,s,i,o,a]),D(k(s,i??[t],A),d),d},(e,n,...i)=>s(((e,r=[t])=>{const n=[],i=(e,t)=>t==o(r)?a(n,e):null===r[t]?b(e,(e=>i(e,t+1))):s([r[t],null],(r=>i(I(e,r),t+1)));return i(e,0),n})(e,n),(e=>b(e,(e=>I(c,e)[0](r,...n??[],...i))))),e=>h(I(c,e),(([,r,n])=>(k(r,n??[t],void 0,(t=>(x(t,e),w(t)?1:0))),S(c,e),i(e),n))),e=>h(I(c,e),(([e,,t=[],n,i])=>{const c=(...a)=>{const d=o(a);d==o(t)?e(r,...a,...i(a)):v(t[d])?s(n[d]?.(...a)??[],(e=>c(...a,e))):c(...a,t[d])};c()}))]})(),K={setMetricDefinition:(t,s,i,o,a,d,l)=>{const h=e(i)==n?[i,a,d,l]:I(z,i)??I(z,"sum");return $(t,s,((e,r,n,s,i,o)=>{const a=O(t),d=L(s);o||=v(a),e();let l=((e,t,r,n,s,i=!1)=>{if(w(r))return;const[o,c,a,d]=s;return i||=v(e),b(n,(([r,n])=>{i||(e=v(r)?c?.(e,n,t++):v(n)?a?.(e,r,t--):d?.(e,n,r,t),i||=v(e))})),i?o(y(r),L(r)):e})(a,d,s,r,h,o);u(l)||(l=void 0),l!=a&&(W(t,l),H(c,[t],l,a))}),(1,e(M=o)==r?e=>e(M):M??(()=>1))),K;var M},delMetricDefinition:e=>(q(e),K),getStore:d,getMetricIds:l,forEachMetric:j,hasMetric:C,getTableId:F,getMetric:O,addMetricListener:(e,t)=>G(t,c,[e]),delListener:e=>(J(e),K),destroy:B,getListenerStats:()=>({})};return g(K)})(i)),c.get(i))})();exports.createMetrics=j;
1
+ "use strict";const e=e=>typeof e,t="",r=e(t),n=e(e),s=Math.max,i=Math.min,o=isFinite,c=e=>null==e,a=(e,t,r)=>c(e)?r?.():t(e),d=e=>Array.isArray(e),l=()=>{},u=(e,t)=>e.forEach(t),v=e=>M(e,((e,t)=>e+t),0),h=e=>e.length,M=(e,t,r)=>e.reduce(t,r),f=(e,...t)=>e.push(...t),g=Object.freeze,L=e=>e.size,m=(e,t)=>e?.has(t)??!1,w=e=>c(e)||0==L(e),y=e=>[...e?.values()??[]],p=e=>e.clear(),b=(e,t)=>e?.forEach(t),x=(e,t)=>e?.delete(t),E=e=>new Map(e),I=(e,t)=>e?.get(t),R=(e,t)=>b(e,((e,r)=>t(r,e))),S=(e,t,r)=>c(r)?(x(e,t),e):e?.set(t,r),T=(e,t,r)=>(m(e,t)||S(e,t,r()),I(e,t)),k=(e,t,r,n,s=0)=>a((r?T:I)(e,t[s],s>h(t)-2?r:E),(i=>{if(s>h(t)-2)return n?.(i)&&S(e,t[s]),i;const o=k(i,t,r,n,s+1);return w(i)&&S(e,t[s]),o})),z=E([["avg",[(e,t)=>v(e)/t,(e,t,r)=>e+(t-e)/(r+1),(e,t,r)=>e+(e-t)/(r-1),(e,t,r,n)=>e+(t-r)/n]],["max",[e=>s(...e),(e,t)=>s(t,e),(e,t)=>t==e?void 0:e,(e,t,r)=>r==e?void 0:s(t,e)]],["min",[e=>i(...e),(e,t)=>i(t,e),(e,t)=>t==e?void 0:e,(e,t,r)=>r==e?void 0:i(t,e)]],["sum",[e=>v(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,r)=>e-r+t]]]),A=e=>new Set(d(e)||c(e)?e:[e]),D=(e,t)=>e?.add(t),N=/^\d+$/,j=(s=>{const i=new WeakMap;return s=>(i.has(s)||i.set(s,(s=>{const i=E(),[v,M,j,C,F,O,W,,$,q,B]=((e,r,n)=>{const s=e.hasRow,i=E(),o=E(),l=E(),v=E(),M=E(),f=(t,r,...n)=>{const s=T(M,t,A);return u(n,(t=>D(s,t)&&r&&e.callListener(t))),n},g=(t,...r)=>a(I(M,t),(n=>{u(0==h(r)?y(n):r,(t=>{e.delListener(t),x(n,t)})),w(n)&&S(M,t)})),L=(e,t)=>{S(i,e,t),m(o,e)||(S(o,e,r()),S(l,e,E()),S(v,e,E()))},k=e=>{S(i,e),S(o,e),S(l,e),S(v,e),g(e)};return[()=>e,()=>{return e=i,[...e?.keys()??[]];var e},e=>R(o,e),e=>m(o,e),e=>I(i,e),e=>I(o,e),(e,t)=>S(o,e,t),L,(r,n,i,o,a)=>{L(r,n);const M=E(),w=E(),y=I(l,r),x=I(v,r),T=r=>{const i=t=>e.getCell(n,r,t),l=I(y,r),u=s(n,r)?(v=o(i,r),isNaN(v)||c(v)||!0===v||!1===v||v===t?void 0:1*v):void 0;var v,f,g,L;if(l===u||d(l)&&d(u)&&(g=u,h(f=l)===h(g)&&(L=(e,t)=>g[t]===e,f.every(L)))||S(M,r,[l,u]),!c(a)){const e=I(x,r),t=s(n,r)?a(i,r):void 0;e!=t&&S(w,r,t)}},k=e=>{i((()=>{b(M,(([,e],t)=>S(y,t,e))),b(w,((e,t)=>S(x,t,e)))}),M,w,y,x,e),p(M),p(w)};R(y,T),e.hasTable(n)&&u(e.getRowIds(n),(e=>{m(y,e)||T(e)})),k(!0),g(r),f(r,0,e.addRowListener(n,null,((e,t,r)=>T(r))),e.addTableListener(n,(()=>k())))},k,()=>R(M,k),f,g]})(s,l),[G,H,J]=(e=>{let r;const[n,s]=(()=>{const e=[];let r=0;return[n=>(n?e.shift():null)??t+r++,t=>{N.test(t)&&h(e)<1e3&&f(e,t)}]})(),i=E();return[(e,s,o,c=[],a=(()=>[]))=>{r??=K;const d=n(1);return S(i,d,[e,s,o,c,a]),D(k(s,o??[t],A),d),d},(e,n,...s)=>u(((e,r=[t])=>{const n=[],s=(e,t)=>t==h(r)?f(n,e):null===r[t]?b(e,(e=>s(e,t+1))):u([r[t],null],(r=>s(I(e,r),t+1)));return s(e,0),n})(e,n),(e=>b(e,(e=>I(i,e)[0](r,...n??[],...s))))),e=>a(I(i,e),(([,r,n])=>(k(r,n??[t],void 0,(t=>(x(t,e),w(t)?1:0))),S(i,e),s(e),n))),e=>a(I(i,e),(([e,,t=[],n,s])=>{const i=(...o)=>{const a=h(o);a==h(t)?e(r,...o,...s(o)):c(t[a])?u(n[a]?.(...o)??[],(e=>i(...o,e))):i(...o,t[a])};i()}))]})(),K={setMetricDefinition:(t,s,a,d,l,u,v)=>{const h=e(a)==n?[a,l,u,v]:I(z,a)??I(z,"sum");return $(t,s,((e,r,n,s,a,d)=>{const l=O(t),u=L(s);d||=c(l),e();let v=((e,t,r,n,s,i=!1)=>{if(w(r))return;const[o,a,d,l]=s;return i||=c(e),b(n,(([r,n])=>{i||(e=c(r)?a?.(e,n,t++):c(n)?d?.(e,r,t--):l?.(e,n,r,t),i||=c(e))})),i?o(y(r),L(r)):e})(l,u,s,r,h,d);o(v)||(v=void 0),v!=l&&(W(t,v),H(i,[t],v,l))}),(1,e(M=d)==r?e=>e(M):M??(()=>1))),K;var M},delMetricDefinition:e=>(q(e),K),getStore:v,getMetricIds:M,forEachMetric:j,hasMetric:C,getTableId:F,getMetric:O,addMetricListener:(e,t)=>G(t,i,[e]),delListener:e=>(J(e),K),destroy:B,getListenerStats:()=>({})};return g(K)})(s)),i.get(s))})();exports.createMetrics=j;
Binary file
@@ -1 +1 @@
1
- "use strict";const t=JSON.parse,a=(t,a)=>t instanceof a,e=t=>null==t,s=Object,n=s.keys,r=s.freeze,o=t=>(t=>a(t,s)&&t.constructor==s)(t)&&0==(t=>n(t).length)(t),c="storage",i=globalThis.window,u=(s,n,u)=>((s,y,d,l,v)=>{let w,h,g,p=0,S=0,A=0;const L=[],f=async t=>(2!=p&&(p=1,await C.schedule((async()=>{await t(),p=0}))),C),C={load:async(t,a)=>await f((async()=>{try{s.setContent(await y())}catch{s.setContent([t,a])}})),startAutoLoad:async(a={},e={})=>(C.stopAutoLoad(),await C.load(a,e),A=1,g=(a=>{const e=e=>{e.storageArea===u&&e.key===n&&a((()=>t(e.newValue)))};return i.addEventListener(c,e),e})((async(t,a)=>await f((async()=>{if(a)s.setTransactionChanges(a());else try{s.setContent(t?.()??await y())}catch{}})))),C),stopAutoLoad:()=>{return A&&(t=g,i.removeEventListener(c,t),g=void 0,A=0),C;var t},save:async t=>(1!=p&&(p=2,await C.schedule((async()=>{try{await(async t=>{return u.setItem(n,(e=t(),JSON.stringify(e,((t,e)=>{return a(e,Map)?(s=(t,[a,e])=>(t[a]=e,t),n={},[...e].reduce(s,n)):e;var s,n}))));var e})(s.getContent)}catch{}p=0}))),C),startAutoSave:async()=>(await C.stopAutoSave().save(),w=s.addDidFinishTransactionListener(((t,a)=>{const[e,s]=a();o(e)&&o(s)||C.save((()=>[e,s]))})),C),stopAutoSave:()=>{var t,a;return t=w,a=s.delListener,e(t)||a(t),C},schedule:async(...t)=>(((t,...a)=>{t.push(...a)})(L,...t),await(async()=>{if(!S){for(S=1;!e((t=L,h=t.shift()));)try{await h()}catch{}S=0}var t})(),C),getStore:()=>s,destroy:()=>C.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return r(C)})(s,(async()=>t(u.getItem(n))));exports.createLocalPersister=(t,a)=>u(t,a,localStorage),exports.createSessionPersister=(t,a)=>u(t,a,sessionStorage);
1
+ "use strict";const t=(t,a)=>t instanceof a,a=t=>null==t,e=Object,s=e.keys,n=e.freeze,o=a=>(a=>t(a,e)&&a.constructor==e)(a)&&0==(t=>s(t).length)(a),r=JSON.parse,c="storage",i=globalThis.window,y=(s,y,u)=>((s,d,l,v,w)=>{let h,g,p,S=0,A=0,L=0;const f=[],C=async t=>(2!=S&&(S=1,await m.schedule((async()=>{await t(),S=0}))),m),m={load:async(t,a)=>await C((async()=>{try{s.setContent(await d())}catch{s.setContent([t,a])}})),startAutoLoad:async(t={},a={})=>(m.stopAutoLoad(),await m.load(t,a),L=1,p=(t=>{const a=a=>{a.storageArea===u&&a.key===y&&t((()=>r(a.newValue)))};return i.addEventListener(c,a),a})((async(t,a)=>await C((async()=>{if(a)s.setTransactionChanges(a());else try{s.setContent(t?.()??await d())}catch{}})))),m),stopAutoLoad:()=>{return L&&(t=p,i.removeEventListener(c,t),p=void 0,L=0),m;var t},save:async a=>(1!=S&&(S=2,await m.schedule((async()=>{try{await(async a=>{return u.setItem(y,(s=a(),JSON.stringify(s,((a,s)=>t(s,Map)?e.fromEntries([...s]):s))));var s})(s.getContent)}catch{}S=0}))),m),startAutoSave:async()=>(await m.stopAutoSave().save(),h=s.addDidFinishTransactionListener(((t,a)=>{const[e,s]=a();o(e)&&o(s)||m.save((()=>[e,s]))})),m),stopAutoSave:()=>{var t,e;return t=h,e=s.delListener,a(t)||e(t),m},schedule:async(...t)=>(((t,...a)=>{t.push(...a)})(f,...t),await(async()=>{if(!A){for(A=1;!a((t=f,g=t.shift()));)try{await g()}catch{}A=0}var t})(),m),getStore:()=>s,destroy:()=>m.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return n(m)})(s,(async()=>r(u.getItem(y))));exports.createLocalPersister=(t,a)=>y(t,a,localStorage),exports.createSessionPersister=(t,a)=>y(t,a,sessionStorage);
@@ -1 +1 @@
1
- "use strict";const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t="")=>a.join(t),c=(a,t)=>a.map(t),i=a=>a.length,r=a=>0==i(a),o=(a,t)=>a.filter(t),l=(a,t,e)=>a.slice(t,e),y=(a,...t)=>a.push(...t),w=Promise,u=JSON.parse,d=(a,t)=>a instanceof t,E=a=>null==a,v=(a,t,e)=>E(a)?e?.():t(a),m=t=>a(t)==s,A=async a=>w.all(a),T=(a,t)=>a?.has(t)??!1,p=a=>[...a?.values()??[]],L=(a,t)=>a?.delete(t),h=Object,C=h.keys,N=h.freeze,O=(a=[])=>h.fromEntries(a),S=(...a)=>h.assign({},...a),f=(a,t)=>(delete a[t],a),R=(a,t)=>c(h.entries(a),(([a,e])=>t(e,a))),I=a=>h.values(a),g=a=>i(C(a)),D=a=>(a=>d(a,h)&&a.constructor==h)(a)&&0==g(a),b=a=>new Map(a),$=a=>[...a?.keys()??[]],_=(a,t)=>a?.get(t),F=(a,t)=>c([...a?.entries()??[]],(([a,e])=>t(e,a))),M=(a,t,e)=>E(e)?(L(a,t),a):a?.set(t,e),P=(a,t,e,s=M)=>(R(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!E(((a,t)=>v(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),B="_id",j=a=>`"${a.replace(/"/g,'""')}"`,x=a=>new Set(Array.isArray(a)||E(a)?a:[a]),U=(a,t)=>a?.add(t),W="SELECT*FROM",k="FROM pragma_table_",H="WHERE",J=(a,t)=>{const s=b(),l=(a,t)=>!E(_(_(s,a),t)),w=async(t,l,w,u,d)=>{const E=x();R(d??{},(a=>c(C(a),(a=>U(E,a)))));const v=p(E);if(r(v)&&T(s,t)&&u)return await a("DROP TABLE"+j(t)),void M(s,t);if(r(v)||T(s,t)){const e=_(s,t),n=x($(e));await A([...c(v,(async s=>{L(n,s)||(await a(`ALTER TABLE${j(t)}ADD${j(s)}`),M(e,s,""))})),...w?c(p(n),(async s=>{s!=l&&(await a(`ALTER TABLE${j(t)}DROP${j(s)}`),M(e,s))})):[]])}else await a(`CREATE TABLE${j(t)}(${j(l)} PRIMARY KEY ON CONFLICT REPLACE${n(c(v,(a=>e+j(a))))});`),M(s,t,b([[l,""],...c(v,(a=>[a,""]))]));if(r(v))T(s,t)&&await a("DELETE FROM"+j(t));else{const r=[],w=[],u=[],E=o($(_(s,t)),(a=>a!=l));R(d,((a,t)=>{var e;y(r,`(?${e=i(E),",?".repeat(e)})`),y(w,t,...c(E,(t=>a[t]))),y(u,t)})),await a("INSERT INTO"+j(t)+"("+j(l)+n(c(E,(a=>e+j(a))))+")VALUES"+n(r,e)+"ON CONFLICT("+j(l)+")DO UPDATE SET"+n(c(E,(a=>j(a)+"=excluded."+j(a))),e),w),await a("DELETE FROM"+j(t)+H+j(l)+"NOT IN("+Y(u)+")",u)}};return[async()=>P(s,O(await A(c(await a("SELECT name "+k+"list WHERE schema='main'AND type='table'AND name IN("+Y(t)+")",t),(async({name:t})=>[t,O(c(await a("SELECT name,type "+k+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>{return M(s,t,P((i=b,T(n=s,c=t)||M(n,c,i()),_(n,c)),e,((a,t,e)=>{e!=_(a,t)&&M(a,t,e)}),((a,t)=>M(a,t))));var n,c,i}),((a,t)=>M(s,t))),async(t,e)=>{const s=l(t,e)?await a(W+j(t)+H+j(e)+"=?",["_"]):[];return r(s)?null:f(s[0],e)},async(a,t,e,s)=>await w(a,t,!0,!0,{[e]:s}),async(t,e)=>l(t,e)?O(o(c(await a(W+j(t)),(a=>[a[e],f({...a},e)])),(([a,t])=>!E(a)&&!D(t)))):{},w]},Y=a=>n(c(a,(()=>"?")),e),q=(a,t,e,s,n)=>{let c,i,r,o=0,l=0,w=0;const u=[],d=async a=>(2!=o&&(o=1,await m.schedule((async()=>{await a(),o=0}))),m),m={load:async(e,s)=>await d((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(m.stopAutoLoad(),await m.load(e,n),w=1,r=s((async(e,s)=>await d((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}})))),m),stopAutoLoad:()=>(w&&(n(r),r=void 0,w=0),m),save:async t=>(1!=o&&(o=2,await m.schedule((async()=>{try{await e(a.getContent,t)}catch{}o=0}))),m),startAutoSave:async()=>(await m.stopAutoSave().save(),c=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();D(e)&&D(s)||m.save((()=>[e,s]))})),m),stopAutoSave:()=>(v(c,a.delListener),m),schedule:async(...a)=>(y(u,...a),await(async()=>{if(!l){for(l=1;!E((a=u,i=a.shift()));)try{await i()}catch{}l=0}var a})(),m),getStore:()=>a,destroy:()=>m.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return N(m)},z="store",K=(a,t,e,s,[n],c)=>{const[i,r,o]=J(t,c),l=q(a,(async()=>(await i(),u((await r(n,B)??{})[z]))),(async a=>l.schedule(i,(async()=>{var t;await o(n,B,"_",{[z]:(t=a(),JSON.stringify(t,((a,t)=>{return d(t,Map)?(e=(a,[t,e])=>(a[t]=e,a),s={},[...t].reduce(e,s)):t;var e,s})))})}))),e,s);return l},V=(a,t,e,s,[n,c,[i,r,l]],y)=>{const[w,u,d,v,m]=J(t,y);return q(a,(async()=>{await w();const a=await(async()=>O(o(await A(F(n,(async([a,t],e)=>[a,await v(e,t)]))),(a=>!D(a[1])))))(),t=await(async()=>i?await u(l,B):{})();return D(a)&&E(t)?void 0:[a,t]}),(async a=>{const[t,e]=a();await w(),await(async a=>await A(F(c,(async([t,e,s,n],c)=>await m(t,e,s,n,a[c])))))(t),await(async a=>r?await d(l,B,"_",a):null)(e)}),e,s)},G="json",Q="autoLoadIntervalSeconds",X="rowIdColumnName",Z="tableId",aa="tableName",ta={mode:G,[Q]:1},ea={load:0,save:0,[aa]:t+"_values"},sa=(a,t,e,s)=>{const n=b();return R(a,((a,c)=>{const i=l(I(S(t,m(a)?{[e]:a}:a)),0,g(t));E(i[0])||s(c,i[0])||M(n,c,i)})),n},na="pragma ",ca="data_version",ia="schema_version",ra=(a,e,s,n,c)=>{let i,r;const[o,y,w,u]=(a=>{const e=(a=>S(ta,m(a)?{storeTableName:a}:a??{}))(a),s=e[Q];if(e.mode==G){const{storeTableName:a=t}=e;return[1,s,[a],x(a)]}const{tables:{load:n={},save:c={}}={},values:i={}}=e,r=l(I(S(ea,i)),0,g(ea)),o=r[2],y=x(o);return[0,s,[sa(n,{[Z]:null,[X]:B},Z,(a=>U(y,a)&&a==o)),sa(c,{[aa]:null,[X]:B,deleteEmptyColumns:0,deleteEmptyTable:0},aa,((a,t)=>U(y,t)&&t==o)),r],y]})(e);return(o?K:V)(a,s,(a=>[setInterval((async()=>{try{const t=(await s(na+ca))[0][ca],e=(await s(na+ia))[0][ia];t==(i??=t)&&e==(r??=e)||(a(),i=t,r=e)}catch{}}),1e3*y),n((t=>u.has(t)?a():0))]),(([a,t])=>{clearInterval(a),i=r=null,c(t)}),w,p(u))};exports.createCrSqliteWasmPersister=(a,t,e)=>ra(a,e,(async(a,e=[])=>await t.execO(a,e)),(a=>t.onUpdate(((t,e,s)=>a(s)))),(a=>a()));
1
+ "use strict";const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t="")=>a.join(t),c=(a,t)=>a.map(t),i=a=>a.length,o=a=>0==i(a),r=(a,t)=>a.filter(t),l=(a,t,e)=>a.slice(t,e),y=(a,...t)=>a.push(...t),w=Promise,u=(a,t)=>a instanceof t,d=a=>null==a,E=(a,t,e)=>d(a)?e?.():t(a),m=t=>a(t)==s,v=async a=>w.all(a),A=(a,t)=>a?.has(t)??!1,T=a=>[...a?.values()??[]],p=(a,t)=>a?.delete(t),L=Object,h=L.keys,f=L.freeze,C=(a=[])=>L.fromEntries(a),N=(...a)=>L.assign({},...a),O=(a,t)=>(delete a[t],a),S=(a,t)=>c(L.entries(a),(([a,e])=>t(e,a))),R=a=>L.values(a),I=a=>i(h(a)),g=a=>(a=>u(a,L)&&a.constructor==L)(a)&&0==I(a),D=a=>new Map(a),b=a=>[...a?.keys()??[]],$=(a,t)=>a?.get(t),_=(a,t)=>c([...a?.entries()??[]],(([a,e])=>t(e,a))),F=(a,t,e)=>d(e)?(p(a,t),a):a?.set(t,e),M=(a,t,e,s=F)=>(S(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!d(((a,t)=>E(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),P="_id",B=a=>`"${a.replace(/"/g,'""')}"`,j=a=>new Set(Array.isArray(a)||d(a)?a:[a]),x=(a,t)=>a?.add(t),U="SELECT*FROM",W="FROM pragma_table_",k="WHERE",H=(a,t)=>{const s=D(),l=(a,t)=>!d($($(s,a),t)),w=async(t,l,w,u,d)=>{const E=j();S(d??{},(a=>c(h(a),(a=>x(E,a)))));const m=T(E);if(o(m)&&A(s,t)&&u)return await a("DROP TABLE"+B(t)),void F(s,t);if(o(m)||A(s,t)){const e=$(s,t),n=j(b(e));await v([...c(m,(async s=>{p(n,s)||(await a(`ALTER TABLE${B(t)}ADD${B(s)}`),F(e,s,""))})),...w?c(T(n),(async s=>{s!=l&&(await a(`ALTER TABLE${B(t)}DROP${B(s)}`),F(e,s))})):[]])}else await a(`CREATE TABLE${B(t)}(${B(l)} PRIMARY KEY ON CONFLICT REPLACE${n(c(m,(a=>e+B(a))))});`),F(s,t,D([[l,""],...c(m,(a=>[a,""]))]));if(o(m))A(s,t)&&await a("DELETE FROM"+B(t));else{const o=[],w=[],u=[],E=r(b($(s,t)),(a=>a!=l));S(d,((a,t)=>{var e;y(o,`(?${e=i(E),",?".repeat(e)})`),y(w,t,...c(E,(t=>a[t]))),y(u,t)})),await a("INSERT INTO"+B(t)+"("+B(l)+n(c(E,(a=>e+B(a))))+")VALUES"+n(o,e)+"ON CONFLICT("+B(l)+")DO UPDATE SET"+n(c(E,(a=>B(a)+"=excluded."+B(a))),e),w),await a("DELETE FROM"+B(t)+k+B(l)+"NOT IN("+J(u)+")",u)}};return[async()=>M(s,C(await v(c(await a("SELECT name "+W+"list WHERE schema='main'AND type='table'AND name IN("+J(t)+")",t),(async({name:t})=>[t,C(c(await a("SELECT name,type "+W+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>{return F(s,t,M((i=D,A(n=s,c=t)||F(n,c,i()),$(n,c)),e,((a,t,e)=>{e!=$(a,t)&&F(a,t,e)}),((a,t)=>F(a,t))));var n,c,i}),((a,t)=>F(s,t))),async(t,e)=>{const s=l(t,e)?await a(U+B(t)+k+B(e)+"=?",["_"]):[];return o(s)?null:O(s[0],e)},async(a,t,e,s)=>await w(a,t,!0,!0,{[e]:s}),async(t,e)=>l(t,e)?C(r(c(await a(U+B(t)),(a=>[a[e],O({...a},e)])),(([a,t])=>!d(a)&&!g(t)))):{},w]},J=a=>n(c(a,(()=>"?")),e),Y=JSON.parse,q=(a,t,e,s,n)=>{let c,i,o,r=0,l=0,w=0;const u=[],m=async a=>(2!=r&&(r=1,await v.schedule((async()=>{await a(),r=0}))),v),v={load:async(e,s)=>await m((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(v.stopAutoLoad(),await v.load(e,n),w=1,o=s((async(e,s)=>await m((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}})))),v),stopAutoLoad:()=>(w&&(n(o),o=void 0,w=0),v),save:async t=>(1!=r&&(r=2,await v.schedule((async()=>{try{await e(a.getContent,t)}catch{}r=0}))),v),startAutoSave:async()=>(await v.stopAutoSave().save(),c=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();g(e)&&g(s)||v.save((()=>[e,s]))})),v),stopAutoSave:()=>(E(c,a.delListener),v),schedule:async(...a)=>(y(u,...a),await(async()=>{if(!l){for(l=1;!d((a=u,i=a.shift()));)try{await i()}catch{}l=0}var a})(),v),getStore:()=>a,destroy:()=>v.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return f(v)},z="store",K=(a,t,e,s,[n],c)=>{const[i,o,r]=H(t,c),l=q(a,(async()=>(await i(),Y((await o(n,P)??{})[z]))),(async a=>l.schedule(i,(async()=>{var t;await r(n,P,"_",{[z]:(t=a(),JSON.stringify(t,((a,t)=>u(t,Map)?L.fromEntries([...t]):t)))})}))),e,s);return l},V=(a,t,e,s,[n,c,[i,o,l]],y)=>{const[w,u,E,m,A]=H(t,y);return q(a,(async()=>{await w();const a=await(async()=>C(r(await v(_(n,(async([a,t],e)=>[a,await m(e,t)]))),(a=>!g(a[1])))))(),t=await(async()=>i?await u(l,P):{})();return g(a)&&d(t)?void 0:[a,t]}),(async a=>{const[t,e]=a();await w(),await(async a=>await v(_(c,(async([t,e,s,n],c)=>await A(t,e,s,n,a[c])))))(t),await(async a=>o?await E(l,P,"_",a):null)(e)}),e,s)},G="json",Q="autoLoadIntervalSeconds",X="rowIdColumnName",Z="tableId",aa="tableName",ta={mode:G,[Q]:1},ea={load:0,save:0,[aa]:t+"_values"},sa=(a,t,e,s)=>{const n=D();return S(a,((a,c)=>{const i=l(R(N(t,m(a)?{[e]:a}:a)),0,I(t));d(i[0])||s(c,i[0])||F(n,c,i)})),n},na="pragma ",ca="data_version",ia="schema_version",oa=(a,e,s,n,c)=>{let i,o;const[r,y,w,u]=(a=>{const e=(a=>N(ta,m(a)?{storeTableName:a}:a??{}))(a),s=e[Q];if(e.mode==G){const{storeTableName:a=t}=e;return[1,s,[a],j(a)]}const{tables:{load:n={},save:c={}}={},values:i={}}=e,o=l(R(N(ea,i)),0,I(ea)),r=o[2],y=j(r);return[0,s,[sa(n,{[Z]:null,[X]:P},Z,(a=>x(y,a)&&a==r)),sa(c,{[aa]:null,[X]:P,deleteEmptyColumns:0,deleteEmptyTable:0},aa,((a,t)=>x(y,t)&&t==r)),o],y]})(e);return(r?K:V)(a,s,(a=>[setInterval((async()=>{try{const t=(await s(na+ca))[0][ca],e=(await s(na+ia))[0][ia];t==(i??=t)&&e==(o??=e)||(a(),i=t,o=e)}catch{}}),1e3*y),n((t=>u.has(t)?a():0))]),(([a,t])=>{clearInterval(a),i=o=null,c(t)}),w,T(u))};exports.createCrSqliteWasmPersister=(a,t,e)=>oa(a,e,(async(a,e=[])=>await t.execO(a,e)),(a=>t.onUpdate(((t,e,s)=>a(s)))),(a=>a()));
@@ -1 +1 @@
1
- "use strict";var t=require("fs"),a=require("fs/promises");const e="utf8",s=JSON.parse,r=(t,a)=>t instanceof a,n=t=>null==t,c=Object,o=c.keys,i=c.freeze,u=t=>(t=>r(t,c)&&t.constructor==c)(t)&&0==(t=>o(t).length)(t);exports.createFilePersister=(c,o)=>((s,c,y,d,w)=>{let l,v,h,p=0,f=0,A=0;const S=[],g=async t=>(2!=p&&(p=1,await L.schedule((async()=>{await t(),p=0}))),L),L={load:async(t,a)=>await g((async()=>{try{s.setContent(await c())}catch{s.setContent([t,a])}})),startAutoLoad:async(a={},e={})=>{return L.stopAutoLoad(),await L.load(a,e),A=1,r=async(t,a)=>await g((async()=>{if(a)s.setTransactionChanges(a());else try{s.setContent(t?.()??await c())}catch{}})),h=t.watch(o,(()=>r())),L;var r},stopAutoLoad:()=>{return A&&(t=h,t?.close(),h=void 0,A=0),L;var t},save:async t=>(1!=p&&(p=2,await L.schedule((async()=>{try{await(async t=>{return await a.writeFile(o,(s=t(),JSON.stringify(s,((t,a)=>{return r(a,Map)?(e=(t,[a,e])=>(t[a]=e,t),s={},[...a].reduce(e,s)):a;var e,s}))),e);var s})(s.getContent)}catch{}p=0}))),L),startAutoSave:async()=>(await L.stopAutoSave().save(),l=s.addDidFinishTransactionListener(((t,a)=>{const[e,s]=a();u(e)&&u(s)||L.save((()=>[e,s]))})),L),stopAutoSave:()=>{var t,a;return t=l,a=s.delListener,n(t)||a(t),L},schedule:async(...t)=>(((t,...a)=>{t.push(...a)})(S,...t),await(async()=>{if(!f){for(f=1;!n((t=S,v=t.shift()));)try{await v()}catch{}f=0}var t})(),L),getStore:()=>s,destroy:()=>L.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return i(L)})(c,(async()=>s(await a.readFile(o,e))));
1
+ "use strict";var t=require("fs"),a=require("fs/promises");const e="utf8",s=(t,a)=>t instanceof a,r=t=>null==t,n=Object,o=n.keys,c=n.freeze,i=t=>(t=>s(t,n)&&t.constructor==n)(t)&&0==(t=>o(t).length)(t),u=JSON.parse;exports.createFilePersister=(o,y)=>((o,u,d,w,l)=>{let v,h,f,p=0,A=0,S=0;const g=[],L=async t=>(2!=p&&(p=1,await C.schedule((async()=>{await t(),p=0}))),C),C={load:async(t,a)=>await L((async()=>{try{o.setContent(await u())}catch{o.setContent([t,a])}})),startAutoLoad:async(a={},e={})=>{return C.stopAutoLoad(),await C.load(a,e),S=1,s=async(t,a)=>await L((async()=>{if(a)o.setTransactionChanges(a());else try{o.setContent(t?.()??await u())}catch{}})),f=t.watch(y,(()=>s())),C;var s},stopAutoLoad:()=>{return S&&(t=f,t?.close(),f=void 0,S=0),C;var t},save:async t=>(1!=p&&(p=2,await C.schedule((async()=>{try{await(async t=>{return await a.writeFile(y,(r=t(),JSON.stringify(r,((t,a)=>s(a,Map)?n.fromEntries([...a]):a))),e);var r})(o.getContent)}catch{}p=0}))),C),startAutoSave:async()=>(await C.stopAutoSave().save(),v=o.addDidFinishTransactionListener(((t,a)=>{const[e,s]=a();i(e)&&i(s)||C.save((()=>[e,s]))})),C),stopAutoSave:()=>{var t,a;return t=v,a=o.delListener,r(t)||a(t),C},schedule:async(...t)=>(((t,...a)=>{t.push(...a)})(g,...t),await(async()=>{if(!A){for(A=1;!r((t=g,h=t.shift()));)try{await h()}catch{}A=0}var t})(),C),getStore:()=>o,destroy:()=>C.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c(C)})(o,(async()=>u(await a.readFile(y,e))));
@@ -1 +1 @@
1
- "use strict";const t=JSON.parse,a=(t,a)=>t instanceof a,e=t=>null==t,s=Object,n=s.keys,r=s.freeze,o=t=>(t=>a(t,s)&&t.constructor==s)(t)&&0==(t=>n(t).length)(t),c=t=>t.headers.get("ETag");exports.createRemotePersister=(s,n,i,y)=>{let u;return((t,s,d,h,l)=>{let w,v,p,f=0,A=0,S=0;const g=[],C=async t=>(2!=f&&(f=1,await L.schedule((async()=>{await t(),f=0}))),L),L={load:async(a,e)=>await C((async()=>{try{t.setContent(await s())}catch{t.setContent([a,e])}})),startAutoLoad:async(a={},r={})=>{return L.stopAutoLoad(),await L.load(a,r),S=1,o=async(a,e)=>await C((async()=>{if(e)t.setTransactionChanges(e());else try{t.setContent(a?.()??await s())}catch{}})),p=setInterval((async()=>{const t=await fetch(n,{method:"HEAD"}),a=c(t);e(u)||e(a)||a==u||(u=a,o())}),1e3*y),L;var o},stopAutoLoad:()=>(S&&(clearInterval(p),p=void 0,S=0),L),save:async e=>(1!=f&&(f=2,await L.schedule((async()=>{try{await(async t=>{return await fetch(i,{method:"POST",headers:{"Content-Type":"application/json"},body:(e=t(),JSON.stringify(e,((t,e)=>{return a(e,Map)?(s=(t,[a,e])=>(t[a]=e,t),n={},[...e].reduce(s,n)):e;var s,n})))});var e})(t.getContent)}catch{}f=0}))),L),startAutoSave:async()=>(await L.stopAutoSave().save(),w=t.addDidFinishTransactionListener(((t,a)=>{const[e,s]=a();o(e)&&o(s)||L.save((()=>[e,s]))})),L),stopAutoSave:()=>{var a,s;return a=w,s=t.delListener,e(a)||s(a),L},schedule:async(...t)=>(((t,...a)=>{t.push(...a)})(g,...t),await(async()=>{if(!A){for(A=1;!e((t=g,v=t.shift()));)try{await v()}catch{}A=0}var t})(),L),getStore:()=>t,destroy:()=>L.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return r(L)})(s,(async()=>{const a=await fetch(n);return u=c(a),t(await a.text())}))};
1
+ "use strict";const t=(t,a)=>t instanceof a,a=t=>null==t,e=Object,s=e.keys,n=e.freeze,o=a=>(a=>t(a,e)&&a.constructor==e)(a)&&0==(t=>s(t).length)(a),r=JSON.parse,c=t=>t.headers.get("ETag");exports.createRemotePersister=(s,i,y,u)=>{let d;return((s,r,h,l,w)=>{let v,p,f,A=0,S=0,g=0;const C=[],L=async t=>(2!=A&&(A=1,await T.schedule((async()=>{await t(),A=0}))),T),T={load:async(t,a)=>await L((async()=>{try{s.setContent(await r())}catch{s.setContent([t,a])}})),startAutoLoad:async(t={},e={})=>{return T.stopAutoLoad(),await T.load(t,e),g=1,n=async(t,a)=>await L((async()=>{if(a)s.setTransactionChanges(a());else try{s.setContent(t?.()??await r())}catch{}})),f=setInterval((async()=>{const t=await fetch(i,{method:"HEAD"}),e=c(t);a(d)||a(e)||e==d||(d=e,n())}),1e3*u),T;var n},stopAutoLoad:()=>(g&&(clearInterval(f),f=void 0,g=0),T),save:async a=>(1!=A&&(A=2,await T.schedule((async()=>{try{await(async a=>{return await fetch(y,{method:"POST",headers:{"Content-Type":"application/json"},body:(s=a(),JSON.stringify(s,((a,s)=>t(s,Map)?e.fromEntries([...s]):s)))});var s})(s.getContent)}catch{}A=0}))),T),startAutoSave:async()=>(await T.stopAutoSave().save(),v=s.addDidFinishTransactionListener(((t,a)=>{const[e,s]=a();o(e)&&o(s)||T.save((()=>[e,s]))})),T),stopAutoSave:()=>{var t,e;return t=v,e=s.delListener,a(t)||e(t),T},schedule:async(...t)=>(((t,...a)=>{t.push(...a)})(C,...t),await(async()=>{if(!S){for(S=1;!a((t=C,p=t.shift()));)try{await p()}catch{}S=0}var t})(),T),getStore:()=>s,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return n(T)})(s,(async()=>{const t=await fetch(i);return d=c(t),r(await t.text())}))};
@@ -1 +1 @@
1
- "use strict";const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t="")=>a.join(t),c=(a,t)=>a.map(t),i=a=>a.length,o=a=>0==i(a),r=(a,t)=>a.filter(t),l=(a,t,e)=>a.slice(t,e),y=(a,...t)=>a.push(...t),u=Promise,w=JSON.parse,d=(a,t)=>a instanceof t,E=a=>null==a,p=(a,t,e)=>E(a)?e?.():t(a),v=t=>a(t)==s,m=async a=>u.all(a),A=(a,t)=>a?.has(t)??!1,T=a=>[...a?.values()??[]],L=(a,t)=>a?.delete(t),h=Object,N=h.keys,S=h.freeze,f=(a=[])=>h.fromEntries(a),C=(...a)=>h.assign({},...a),O=(a,t)=>(delete a[t],a),R=(a,t)=>c(h.entries(a),(([a,e])=>t(e,a))),_=a=>h.values(a),b=a=>i(N(a)),I=a=>(a=>d(a,h)&&a.constructor==h)(a)&&0==b(a),g=a=>new Map(a),D=a=>[...a?.keys()??[]],$=(a,t)=>a?.get(t),M=(a,t)=>c([...a?.entries()??[]],(([a,e])=>t(e,a))),F=(a,t,e)=>E(e)?(L(a,t),a):a?.set(t,e),P=(a,t,e,s=F)=>(R(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!E(((a,t)=>p(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),j="_id",k=a=>`"${a.replace(/"/g,'""')}"`,B=a=>new Set(Array.isArray(a)||E(a)?a:[a]),q=(a,t)=>a?.add(t),x="SELECT*FROM",W="FROM pragma_table_",H="WHERE",J=(a,t)=>{const s=g(),l=(a,t)=>!E($($(s,a),t)),u=async(t,l,u,w,d)=>{const E=B();R(d??{},(a=>c(N(a),(a=>q(E,a)))));const p=T(E);if(o(p)&&A(s,t)&&w)return await a("DROP TABLE"+k(t)),void F(s,t);if(o(p)||A(s,t)){const e=$(s,t),n=B(D(e));await m([...c(p,(async s=>{L(n,s)||(await a(`ALTER TABLE${k(t)}ADD${k(s)}`),F(e,s,""))})),...u?c(T(n),(async s=>{s!=l&&(await a(`ALTER TABLE${k(t)}DROP${k(s)}`),F(e,s))})):[]])}else await a(`CREATE TABLE${k(t)}(${k(l)} PRIMARY KEY ON CONFLICT REPLACE${n(c(p,(a=>e+k(a))))});`),F(s,t,g([[l,""],...c(p,(a=>[a,""]))]));if(o(p))A(s,t)&&await a("DELETE FROM"+k(t));else{const o=[],u=[],w=[],E=r(D($(s,t)),(a=>a!=l));R(d,((a,t)=>{var e;y(o,`(?${e=i(E),",?".repeat(e)})`),y(u,t,...c(E,(t=>a[t]))),y(w,t)})),await a("INSERT INTO"+k(t)+"("+k(l)+n(c(E,(a=>e+k(a))))+")VALUES"+n(o,e)+"ON CONFLICT("+k(l)+")DO UPDATE SET"+n(c(E,(a=>k(a)+"=excluded."+k(a))),e),u),await a("DELETE FROM"+k(t)+H+k(l)+"NOT IN("+U(w)+")",w)}};return[async()=>P(s,f(await m(c(await a("SELECT name "+W+"list WHERE schema='main'AND type='table'AND name IN("+U(t)+")",t),(async({name:t})=>[t,f(c(await a("SELECT name,type "+W+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>{return F(s,t,P((i=g,A(n=s,c=t)||F(n,c,i()),$(n,c)),e,((a,t,e)=>{e!=$(a,t)&&F(a,t,e)}),((a,t)=>F(a,t))));var n,c,i}),((a,t)=>F(s,t))),async(t,e)=>{const s=l(t,e)?await a(x+k(t)+H+k(e)+"=?",["_"]):[];return o(s)?null:O(s[0],e)},async(a,t,e,s)=>await u(a,t,!0,!0,{[e]:s}),async(t,e)=>l(t,e)?f(r(c(await a(x+k(t)),(a=>[a[e],O({...a},e)])),(([a,t])=>!E(a)&&!I(t)))):{},u]},U=a=>n(c(a,(()=>"?")),e),V=(a,t,e,s,n)=>{let c,i,o,r=0,l=0,u=0;const w=[],d=async a=>(2!=r&&(r=1,await v.schedule((async()=>{await a(),r=0}))),v),v={load:async(e,s)=>await d((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(v.stopAutoLoad(),await v.load(e,n),u=1,o=s((async(e,s)=>await d((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}})))),v),stopAutoLoad:()=>(u&&(n(o),o=void 0,u=0),v),save:async t=>(1!=r&&(r=2,await v.schedule((async()=>{try{await e(a.getContent,t)}catch{}r=0}))),v),startAutoSave:async()=>(await v.stopAutoSave().save(),c=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();I(e)&&I(s)||v.save((()=>[e,s]))})),v),stopAutoSave:()=>(p(c,a.delListener),v),schedule:async(...a)=>(y(w,...a),await(async()=>{if(!l){for(l=1;!E((a=w,i=a.shift()));)try{await i()}catch{}l=0}var a})(),v),getStore:()=>a,destroy:()=>v.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return S(v)},Y="store",z=(a,t,e,s,[n],c)=>{const[i,o,r]=J(t,c),l=V(a,(async()=>(await i(),w((await o(n,j)??{})[Y]))),(async a=>l.schedule(i,(async()=>{var t;await r(n,j,"_",{[Y]:(t=a(),JSON.stringify(t,((a,t)=>{return d(t,Map)?(e=(a,[t,e])=>(a[t]=e,a),s={},[...t].reduce(e,s)):t;var e,s})))})}))),e,s);return l},K=(a,t,e,s,[n,c,[i,o,l]],y)=>{const[u,w,d,p,v]=J(t,y);return V(a,(async()=>{await u();const a=await(async()=>f(r(await m(M(n,(async([a,t],e)=>[a,await p(e,t)]))),(a=>!I(a[1])))))(),t=await(async()=>i?await w(l,j):{})();return I(a)&&E(t)?void 0:[a,t]}),(async a=>{const[t,e]=a();await u(),await(async a=>await m(M(c,(async([t,e,s,n],c)=>await v(t,e,s,n,a[c])))))(t),await(async a=>o?await d(l,j,"_",a):null)(e)}),e,s)},G="json",Q="autoLoadIntervalSeconds",X="rowIdColumnName",Z="tableId",aa="tableName",ta={mode:G,[Q]:1},ea={load:0,save:0,[aa]:t+"_values"},sa=(a,t,e,s)=>{const n=g();return R(a,((a,c)=>{const i=l(_(C(t,v(a)?{[e]:a}:a)),0,b(t));E(i[0])||s(c,i[0])||F(n,c,i)})),n},na="pragma ",ca="data_version",ia="schema_version",oa=(a,e,s,n,c)=>{let i,o;const[r,y,u,w]=(a=>{const e=(a=>C(ta,v(a)?{storeTableName:a}:a??{}))(a),s=e[Q];if(e.mode==G){const{storeTableName:a=t}=e;return[1,s,[a],B(a)]}const{tables:{load:n={},save:c={}}={},values:i={}}=e,o=l(_(C(ea,i)),0,b(ea)),r=o[2],y=B(r);return[0,s,[sa(n,{[Z]:null,[X]:j},Z,(a=>q(y,a)&&a==r)),sa(c,{[aa]:null,[X]:j,deleteEmptyColumns:0,deleteEmptyTable:0},aa,((a,t)=>q(y,t)&&t==r)),o],y]})(e);return(r?z:K)(a,s,(a=>[setInterval((async()=>{try{const t=(await s(na+ca))[0][ca],e=(await s(na+ia))[0][ia];t==(i??=t)&&e==(o??=e)||(a(),i=t,o=e)}catch{}}),1e3*y),n((t=>w.has(t)?a():0))]),(([a,t])=>{clearInterval(a),i=o=null,c(t)}),u,T(w))};exports.createSqliteWasmPersister=(a,t,e,s)=>oa(a,s,(async(a,t=[])=>e.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}).map((a=>({...a})))),(a=>t.capi.sqlite3_update_hook(e,((t,e,s,n)=>a(n)),0)),(()=>t.capi.sqlite3_update_hook(e,(()=>0),0)));
1
+ "use strict";const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t="")=>a.join(t),c=(a,t)=>a.map(t),i=a=>a.length,o=a=>0==i(a),r=(a,t)=>a.filter(t),l=(a,t,e)=>a.slice(t,e),y=(a,...t)=>a.push(...t),w=Promise,u=(a,t)=>a instanceof t,d=a=>null==a,E=(a,t,e)=>d(a)?e?.():t(a),p=t=>a(t)==s,m=async a=>w.all(a),v=(a,t)=>a?.has(t)??!1,A=a=>[...a?.values()??[]],T=(a,t)=>a?.delete(t),L=Object,h=L.keys,f=L.freeze,N=(a=[])=>L.fromEntries(a),S=(...a)=>L.assign({},...a),C=(a,t)=>(delete a[t],a),O=(a,t)=>c(L.entries(a),(([a,e])=>t(e,a))),R=a=>L.values(a),_=a=>i(h(a)),b=a=>(a=>u(a,L)&&a.constructor==L)(a)&&0==_(a),I=a=>new Map(a),g=a=>[...a?.keys()??[]],D=(a,t)=>a?.get(t),$=(a,t)=>c([...a?.entries()??[]],(([a,e])=>t(e,a))),M=(a,t,e)=>d(e)?(T(a,t),a):a?.set(t,e),F=(a,t,e,s=M)=>(O(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!d(((a,t)=>E(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),P="_id",j=a=>`"${a.replace(/"/g,'""')}"`,k=a=>new Set(Array.isArray(a)||d(a)?a:[a]),B=(a,t)=>a?.add(t),q="SELECT*FROM",x="FROM pragma_table_",W="WHERE",H=(a,t)=>{const s=I(),l=(a,t)=>!d(D(D(s,a),t)),w=async(t,l,w,u,d)=>{const E=k();O(d??{},(a=>c(h(a),(a=>B(E,a)))));const p=A(E);if(o(p)&&v(s,t)&&u)return await a("DROP TABLE"+j(t)),void M(s,t);if(o(p)||v(s,t)){const e=D(s,t),n=k(g(e));await m([...c(p,(async s=>{T(n,s)||(await a(`ALTER TABLE${j(t)}ADD${j(s)}`),M(e,s,""))})),...w?c(A(n),(async s=>{s!=l&&(await a(`ALTER TABLE${j(t)}DROP${j(s)}`),M(e,s))})):[]])}else await a(`CREATE TABLE${j(t)}(${j(l)} PRIMARY KEY ON CONFLICT REPLACE${n(c(p,(a=>e+j(a))))});`),M(s,t,I([[l,""],...c(p,(a=>[a,""]))]));if(o(p))v(s,t)&&await a("DELETE FROM"+j(t));else{const o=[],w=[],u=[],E=r(g(D(s,t)),(a=>a!=l));O(d,((a,t)=>{var e;y(o,`(?${e=i(E),",?".repeat(e)})`),y(w,t,...c(E,(t=>a[t]))),y(u,t)})),await a("INSERT INTO"+j(t)+"("+j(l)+n(c(E,(a=>e+j(a))))+")VALUES"+n(o,e)+"ON CONFLICT("+j(l)+")DO UPDATE SET"+n(c(E,(a=>j(a)+"=excluded."+j(a))),e),w),await a("DELETE FROM"+j(t)+W+j(l)+"NOT IN("+J(u)+")",u)}};return[async()=>F(s,N(await m(c(await a("SELECT name "+x+"list WHERE schema='main'AND type='table'AND name IN("+J(t)+")",t),(async({name:t})=>[t,N(c(await a("SELECT name,type "+x+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>{return M(s,t,F((i=I,v(n=s,c=t)||M(n,c,i()),D(n,c)),e,((a,t,e)=>{e!=D(a,t)&&M(a,t,e)}),((a,t)=>M(a,t))));var n,c,i}),((a,t)=>M(s,t))),async(t,e)=>{const s=l(t,e)?await a(q+j(t)+W+j(e)+"=?",["_"]):[];return o(s)?null:C(s[0],e)},async(a,t,e,s)=>await w(a,t,!0,!0,{[e]:s}),async(t,e)=>l(t,e)?N(r(c(await a(q+j(t)),(a=>[a[e],C({...a},e)])),(([a,t])=>!d(a)&&!b(t)))):{},w]},J=a=>n(c(a,(()=>"?")),e),U=JSON.parse,V=(a,t,e,s,n)=>{let c,i,o,r=0,l=0,w=0;const u=[],p=async a=>(2!=r&&(r=1,await m.schedule((async()=>{await a(),r=0}))),m),m={load:async(e,s)=>await p((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(m.stopAutoLoad(),await m.load(e,n),w=1,o=s((async(e,s)=>await p((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}})))),m),stopAutoLoad:()=>(w&&(n(o),o=void 0,w=0),m),save:async t=>(1!=r&&(r=2,await m.schedule((async()=>{try{await e(a.getContent,t)}catch{}r=0}))),m),startAutoSave:async()=>(await m.stopAutoSave().save(),c=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();b(e)&&b(s)||m.save((()=>[e,s]))})),m),stopAutoSave:()=>(E(c,a.delListener),m),schedule:async(...a)=>(y(u,...a),await(async()=>{if(!l){for(l=1;!d((a=u,i=a.shift()));)try{await i()}catch{}l=0}var a})(),m),getStore:()=>a,destroy:()=>m.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return f(m)},Y="store",z=(a,t,e,s,[n],c)=>{const[i,o,r]=H(t,c),l=V(a,(async()=>(await i(),U((await o(n,P)??{})[Y]))),(async a=>l.schedule(i,(async()=>{var t;await r(n,P,"_",{[Y]:(t=a(),JSON.stringify(t,((a,t)=>u(t,Map)?L.fromEntries([...t]):t)))})}))),e,s);return l},K=(a,t,e,s,[n,c,[i,o,l]],y)=>{const[w,u,E,p,v]=H(t,y);return V(a,(async()=>{await w();const a=await(async()=>N(r(await m($(n,(async([a,t],e)=>[a,await p(e,t)]))),(a=>!b(a[1])))))(),t=await(async()=>i?await u(l,P):{})();return b(a)&&d(t)?void 0:[a,t]}),(async a=>{const[t,e]=a();await w(),await(async a=>await m($(c,(async([t,e,s,n],c)=>await v(t,e,s,n,a[c])))))(t),await(async a=>o?await E(l,P,"_",a):null)(e)}),e,s)},G="json",Q="autoLoadIntervalSeconds",X="rowIdColumnName",Z="tableId",aa="tableName",ta={mode:G,[Q]:1},ea={load:0,save:0,[aa]:t+"_values"},sa=(a,t,e,s)=>{const n=I();return O(a,((a,c)=>{const i=l(R(S(t,p(a)?{[e]:a}:a)),0,_(t));d(i[0])||s(c,i[0])||M(n,c,i)})),n},na="pragma ",ca="data_version",ia="schema_version",oa=(a,e,s,n,c)=>{let i,o;const[r,y,w,u]=(a=>{const e=(a=>S(ta,p(a)?{storeTableName:a}:a??{}))(a),s=e[Q];if(e.mode==G){const{storeTableName:a=t}=e;return[1,s,[a],k(a)]}const{tables:{load:n={},save:c={}}={},values:i={}}=e,o=l(R(S(ea,i)),0,_(ea)),r=o[2],y=k(r);return[0,s,[sa(n,{[Z]:null,[X]:P},Z,(a=>B(y,a)&&a==r)),sa(c,{[aa]:null,[X]:P,deleteEmptyColumns:0,deleteEmptyTable:0},aa,((a,t)=>B(y,t)&&t==r)),o],y]})(e);return(r?z:K)(a,s,(a=>[setInterval((async()=>{try{const t=(await s(na+ca))[0][ca],e=(await s(na+ia))[0][ia];t==(i??=t)&&e==(o??=e)||(a(),i=t,o=e)}catch{}}),1e3*y),n((t=>u.has(t)?a():0))]),(([a,t])=>{clearInterval(a),i=o=null,c(t)}),w,A(u))};exports.createSqliteWasmPersister=(a,t,e,s)=>oa(a,s,(async(a,t=[])=>e.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}).map((a=>({...a})))),(a=>t.capi.sqlite3_update_hook(e,((t,e,s,n)=>a(n)),0)),(()=>t.capi.sqlite3_update_hook(e,(()=>0),0)));
@@ -1 +1 @@
1
- "use strict";const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t="")=>a.join(t),c=(a,t)=>a.map(t),r=a=>a.length,i=a=>0==r(a),o=(a,t)=>a.filter(t),l=(a,t,e)=>a.slice(t,e),y=(a,...t)=>a.push(...t),w=Promise,u=JSON.parse,d=(a,t)=>a instanceof t,E=a=>null==a,v=(a,t,e)=>E(a)?e?.():t(a),m=t=>a(t)==s,A=async a=>w.all(a),T=(a,t)=>a?.has(t)??!1,p=a=>[...a?.values()??[]],L=(a,t)=>a?.delete(t),h=Object,f=h.keys,N=h.freeze,S=(a=[])=>h.fromEntries(a),C=(...a)=>h.assign({},...a),O=(a,t)=>(delete a[t],a),R=(a,t)=>c(h.entries(a),(([a,e])=>t(e,a))),g=a=>h.values(a),I=a=>r(f(a)),D=a=>(a=>d(a,h)&&a.constructor==h)(a)&&0==I(a),b=a=>new Map(a),$=a=>[...a?.keys()??[]],_=(a,t)=>a?.get(t),F=(a,t)=>c([...a?.entries()??[]],(([a,e])=>t(e,a))),M=(a,t,e)=>E(e)?(L(a,t),a):a?.set(t,e),P=(a,t,e,s=M)=>(R(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!E(((a,t)=>v(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),B="_id",j=a=>`"${a.replace(/"/g,'""')}"`,k=a=>new Set(Array.isArray(a)||E(a)?a:[a]),x=(a,t)=>a?.add(t),H="SELECT*FROM",J="FROM pragma_table_",U="WHERE",W=(a,t)=>{const s=b(),l=(a,t)=>!E(_(_(s,a),t)),w=async(t,l,w,u,d)=>{const E=k();R(d??{},(a=>c(f(a),(a=>x(E,a)))));const v=p(E);if(i(v)&&T(s,t)&&u)return await a("DROP TABLE"+j(t)),void M(s,t);if(i(v)||T(s,t)){const e=_(s,t),n=k($(e));await A([...c(v,(async s=>{L(n,s)||(await a(`ALTER TABLE${j(t)}ADD${j(s)}`),M(e,s,""))})),...w?c(p(n),(async s=>{s!=l&&(await a(`ALTER TABLE${j(t)}DROP${j(s)}`),M(e,s))})):[]])}else await a(`CREATE TABLE${j(t)}(${j(l)} PRIMARY KEY ON CONFLICT REPLACE${n(c(v,(a=>e+j(a))))});`),M(s,t,b([[l,""],...c(v,(a=>[a,""]))]));if(i(v))T(s,t)&&await a("DELETE FROM"+j(t));else{const i=[],w=[],u=[],E=o($(_(s,t)),(a=>a!=l));R(d,((a,t)=>{var e;y(i,`(?${e=r(E),",?".repeat(e)})`),y(w,t,...c(E,(t=>a[t]))),y(u,t)})),await a("INSERT INTO"+j(t)+"("+j(l)+n(c(E,(a=>e+j(a))))+")VALUES"+n(i,e)+"ON CONFLICT("+j(l)+")DO UPDATE SET"+n(c(E,(a=>j(a)+"=excluded."+j(a))),e),w),await a("DELETE FROM"+j(t)+U+j(l)+"NOT IN("+Y(u)+")",u)}};return[async()=>P(s,S(await A(c(await a("SELECT name "+J+"list WHERE schema='main'AND type='table'AND name IN("+Y(t)+")",t),(async({name:t})=>[t,S(c(await a("SELECT name,type "+J+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>{return M(s,t,P((r=b,T(n=s,c=t)||M(n,c,r()),_(n,c)),e,((a,t,e)=>{e!=_(a,t)&&M(a,t,e)}),((a,t)=>M(a,t))));var n,c,r}),((a,t)=>M(s,t))),async(t,e)=>{const s=l(t,e)?await a(H+j(t)+U+j(e)+"=?",["_"]):[];return i(s)?null:O(s[0],e)},async(a,t,e,s)=>await w(a,t,!0,!0,{[e]:s}),async(t,e)=>l(t,e)?S(o(c(await a(H+j(t)),(a=>[a[e],O({...a},e)])),(([a,t])=>!E(a)&&!D(t)))):{},w]},Y=a=>n(c(a,(()=>"?")),e),q=(a,t,e,s,n)=>{let c,r,i,o=0,l=0,w=0;const u=[],d=async a=>(2!=o&&(o=1,await m.schedule((async()=>{await a(),o=0}))),m),m={load:async(e,s)=>await d((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(m.stopAutoLoad(),await m.load(e,n),w=1,i=s((async(e,s)=>await d((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}})))),m),stopAutoLoad:()=>(w&&(n(i),i=void 0,w=0),m),save:async t=>(1!=o&&(o=2,await m.schedule((async()=>{try{await e(a.getContent,t)}catch{}o=0}))),m),startAutoSave:async()=>(await m.stopAutoSave().save(),c=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();D(e)&&D(s)||m.save((()=>[e,s]))})),m),stopAutoSave:()=>(v(c,a.delListener),m),schedule:async(...a)=>(y(u,...a),await(async()=>{if(!l){for(l=1;!E((a=u,r=a.shift()));)try{await r()}catch{}l=0}var a})(),m),getStore:()=>a,destroy:()=>m.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return N(m)},z="store",K=(a,t,e,s,[n],c)=>{const[r,i,o]=W(t,c),l=q(a,(async()=>(await r(),u((await i(n,B)??{})[z]))),(async a=>l.schedule(r,(async()=>{var t;await o(n,B,"_",{[z]:(t=a(),JSON.stringify(t,((a,t)=>{return d(t,Map)?(e=(a,[t,e])=>(a[t]=e,a),s={},[...t].reduce(e,s)):t;var e,s})))})}))),e,s);return l},V=(a,t,e,s,[n,c,[r,i,l]],y)=>{const[w,u,d,v,m]=W(t,y);return q(a,(async()=>{await w();const a=await(async()=>S(o(await A(F(n,(async([a,t],e)=>[a,await v(e,t)]))),(a=>!D(a[1])))))(),t=await(async()=>r?await u(l,B):{})();return D(a)&&E(t)?void 0:[a,t]}),(async a=>{const[t,e]=a();await w(),await(async a=>await A(F(c,(async([t,e,s,n],c)=>await m(t,e,s,n,a[c])))))(t),await(async a=>i?await d(l,B,"_",a):null)(e)}),e,s)},G="json",Q="autoLoadIntervalSeconds",X="rowIdColumnName",Z="tableId",aa="tableName",ta={mode:G,[Q]:1},ea={load:0,save:0,[aa]:t+"_values"},sa=(a,t,e,s)=>{const n=b();return R(a,((a,c)=>{const r=l(g(C(t,m(a)?{[e]:a}:a)),0,I(t));E(r[0])||s(c,r[0])||M(n,c,r)})),n},na="pragma ",ca="data_version",ra="schema_version",ia=(a,e,s,n,c)=>{let r,i;const[o,y,w,u]=(a=>{const e=(a=>C(ta,m(a)?{storeTableName:a}:a??{}))(a),s=e[Q];if(e.mode==G){const{storeTableName:a=t}=e;return[1,s,[a],k(a)]}const{tables:{load:n={},save:c={}}={},values:r={}}=e,i=l(g(C(ea,r)),0,I(ea)),o=i[2],y=k(o);return[0,s,[sa(n,{[Z]:null,[X]:B},Z,(a=>x(y,a)&&a==o)),sa(c,{[aa]:null,[X]:B,deleteEmptyColumns:0,deleteEmptyTable:0},aa,((a,t)=>x(y,t)&&t==o)),i],y]})(e);return(o?K:V)(a,s,(a=>[setInterval((async()=>{try{const t=(await s(na+ca))[0][ca],e=(await s(na+ra))[0][ra];t==(r??=t)&&e==(i??=e)||(a(),r=t,i=e)}catch{}}),1e3*y),n((t=>u.has(t)?a():0))]),(([a,t])=>{clearInterval(a),r=i=null,c(t)}),w,p(u))},oa="change";exports.createSqlite3Persister=(a,t,e)=>ia(a,e,((a,e=[])=>new w(((s,n)=>t.all(a,e,((a,t)=>a?n(a):s(t.map((a=>({...a}))))))))),(a=>{const e=(t,e,s)=>a(s);return t.on(oa,e),e}),(a=>t.off(oa,a)));
1
+ "use strict";const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t="")=>a.join(t),c=(a,t)=>a.map(t),i=a=>a.length,o=a=>0==i(a),r=(a,t)=>a.filter(t),l=(a,t,e)=>a.slice(t,e),y=(a,...t)=>a.push(...t),w=Promise,u=(a,t)=>a instanceof t,d=a=>null==a,E=(a,t,e)=>d(a)?e?.():t(a),m=t=>a(t)==s,v=async a=>w.all(a),A=(a,t)=>a?.has(t)??!1,T=a=>[...a?.values()??[]],p=(a,t)=>a?.delete(t),L=Object,h=L.keys,f=L.freeze,N=(a=[])=>L.fromEntries(a),S=(...a)=>L.assign({},...a),C=(a,t)=>(delete a[t],a),O=(a,t)=>c(L.entries(a),(([a,e])=>t(e,a))),R=a=>L.values(a),g=a=>i(h(a)),I=a=>(a=>u(a,L)&&a.constructor==L)(a)&&0==g(a),D=a=>new Map(a),b=a=>[...a?.keys()??[]],$=(a,t)=>a?.get(t),_=(a,t)=>c([...a?.entries()??[]],(([a,e])=>t(e,a))),F=(a,t,e)=>d(e)?(p(a,t),a):a?.set(t,e),M=(a,t,e,s=F)=>(O(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!d(((a,t)=>E(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),P="_id",B=a=>`"${a.replace(/"/g,'""')}"`,j=a=>new Set(Array.isArray(a)||d(a)?a:[a]),k=(a,t)=>a?.add(t),x="SELECT*FROM",H="FROM pragma_table_",J="WHERE",U=(a,t)=>{const s=D(),l=(a,t)=>!d($($(s,a),t)),w=async(t,l,w,u,d)=>{const E=j();O(d??{},(a=>c(h(a),(a=>k(E,a)))));const m=T(E);if(o(m)&&A(s,t)&&u)return await a("DROP TABLE"+B(t)),void F(s,t);if(o(m)||A(s,t)){const e=$(s,t),n=j(b(e));await v([...c(m,(async s=>{p(n,s)||(await a(`ALTER TABLE${B(t)}ADD${B(s)}`),F(e,s,""))})),...w?c(T(n),(async s=>{s!=l&&(await a(`ALTER TABLE${B(t)}DROP${B(s)}`),F(e,s))})):[]])}else await a(`CREATE TABLE${B(t)}(${B(l)} PRIMARY KEY ON CONFLICT REPLACE${n(c(m,(a=>e+B(a))))});`),F(s,t,D([[l,""],...c(m,(a=>[a,""]))]));if(o(m))A(s,t)&&await a("DELETE FROM"+B(t));else{const o=[],w=[],u=[],E=r(b($(s,t)),(a=>a!=l));O(d,((a,t)=>{var e;y(o,`(?${e=i(E),",?".repeat(e)})`),y(w,t,...c(E,(t=>a[t]))),y(u,t)})),await a("INSERT INTO"+B(t)+"("+B(l)+n(c(E,(a=>e+B(a))))+")VALUES"+n(o,e)+"ON CONFLICT("+B(l)+")DO UPDATE SET"+n(c(E,(a=>B(a)+"=excluded."+B(a))),e),w),await a("DELETE FROM"+B(t)+J+B(l)+"NOT IN("+W(u)+")",u)}};return[async()=>M(s,N(await v(c(await a("SELECT name "+H+"list WHERE schema='main'AND type='table'AND name IN("+W(t)+")",t),(async({name:t})=>[t,N(c(await a("SELECT name,type "+H+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>{return F(s,t,M((i=D,A(n=s,c=t)||F(n,c,i()),$(n,c)),e,((a,t,e)=>{e!=$(a,t)&&F(a,t,e)}),((a,t)=>F(a,t))));var n,c,i}),((a,t)=>F(s,t))),async(t,e)=>{const s=l(t,e)?await a(x+B(t)+J+B(e)+"=?",["_"]):[];return o(s)?null:C(s[0],e)},async(a,t,e,s)=>await w(a,t,!0,!0,{[e]:s}),async(t,e)=>l(t,e)?N(r(c(await a(x+B(t)),(a=>[a[e],C({...a},e)])),(([a,t])=>!d(a)&&!I(t)))):{},w]},W=a=>n(c(a,(()=>"?")),e),Y=JSON.parse,q=(a,t,e,s,n)=>{let c,i,o,r=0,l=0,w=0;const u=[],m=async a=>(2!=r&&(r=1,await v.schedule((async()=>{await a(),r=0}))),v),v={load:async(e,s)=>await m((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(v.stopAutoLoad(),await v.load(e,n),w=1,o=s((async(e,s)=>await m((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}})))),v),stopAutoLoad:()=>(w&&(n(o),o=void 0,w=0),v),save:async t=>(1!=r&&(r=2,await v.schedule((async()=>{try{await e(a.getContent,t)}catch{}r=0}))),v),startAutoSave:async()=>(await v.stopAutoSave().save(),c=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();I(e)&&I(s)||v.save((()=>[e,s]))})),v),stopAutoSave:()=>(E(c,a.delListener),v),schedule:async(...a)=>(y(u,...a),await(async()=>{if(!l){for(l=1;!d((a=u,i=a.shift()));)try{await i()}catch{}l=0}var a})(),v),getStore:()=>a,destroy:()=>v.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return f(v)},z="store",K=(a,t,e,s,[n],c)=>{const[i,o,r]=U(t,c),l=q(a,(async()=>(await i(),Y((await o(n,P)??{})[z]))),(async a=>l.schedule(i,(async()=>{var t;await r(n,P,"_",{[z]:(t=a(),JSON.stringify(t,((a,t)=>u(t,Map)?L.fromEntries([...t]):t)))})}))),e,s);return l},V=(a,t,e,s,[n,c,[i,o,l]],y)=>{const[w,u,E,m,A]=U(t,y);return q(a,(async()=>{await w();const a=await(async()=>N(r(await v(_(n,(async([a,t],e)=>[a,await m(e,t)]))),(a=>!I(a[1])))))(),t=await(async()=>i?await u(l,P):{})();return I(a)&&d(t)?void 0:[a,t]}),(async a=>{const[t,e]=a();await w(),await(async a=>await v(_(c,(async([t,e,s,n],c)=>await A(t,e,s,n,a[c])))))(t),await(async a=>o?await E(l,P,"_",a):null)(e)}),e,s)},G="json",Q="autoLoadIntervalSeconds",X="rowIdColumnName",Z="tableId",aa="tableName",ta={mode:G,[Q]:1},ea={load:0,save:0,[aa]:t+"_values"},sa=(a,t,e,s)=>{const n=D();return O(a,((a,c)=>{const i=l(R(S(t,m(a)?{[e]:a}:a)),0,g(t));d(i[0])||s(c,i[0])||F(n,c,i)})),n},na="pragma ",ca="data_version",ia="schema_version",oa=(a,e,s,n,c)=>{let i,o;const[r,y,w,u]=(a=>{const e=(a=>S(ta,m(a)?{storeTableName:a}:a??{}))(a),s=e[Q];if(e.mode==G){const{storeTableName:a=t}=e;return[1,s,[a],j(a)]}const{tables:{load:n={},save:c={}}={},values:i={}}=e,o=l(R(S(ea,i)),0,g(ea)),r=o[2],y=j(r);return[0,s,[sa(n,{[Z]:null,[X]:P},Z,(a=>k(y,a)&&a==r)),sa(c,{[aa]:null,[X]:P,deleteEmptyColumns:0,deleteEmptyTable:0},aa,((a,t)=>k(y,t)&&t==r)),o],y]})(e);return(r?K:V)(a,s,(a=>[setInterval((async()=>{try{const t=(await s(na+ca))[0][ca],e=(await s(na+ia))[0][ia];t==(i??=t)&&e==(o??=e)||(a(),i=t,o=e)}catch{}}),1e3*y),n((t=>u.has(t)?a():0))]),(([a,t])=>{clearInterval(a),i=o=null,c(t)}),w,T(u))},ra="change";exports.createSqlite3Persister=(a,t,e)=>oa(a,e,((a,e=[])=>new w(((s,n)=>t.all(a,e,((a,t)=>a?n(a):s(t.map((a=>({...a}))))))))),(a=>{const e=(t,e,s)=>a(s);return t.on(ra,e),e}),(a=>t.off(ra,a)));
@@ -1 +1 @@
1
- "use strict";const e=e=>typeof e,t=e(""),n=e(!0),s=e(0),r=e(e),o="Listener",a="Result",l="Ids",i="Row",c=i+l,d="Sorted"+i+l,u="Cell",h=u+l,g=(e,t)=>e.every(t),v=(e,t)=>e.forEach(t),w=e=>R(e,((e,t)=>e+t),0),f=e=>e.length,L=e=>0==f(e),R=(e,t,n)=>e.reduce(t,n),y=(e,...t)=>e.push(...t),T=Math.max,b=Math.min,p=isFinite,C=e=>null==e,S=(e,t,n)=>C(e)?n?.():t(e),m=t=>e(t)==r,Q=e=>Array.isArray(e),I=()=>{},E=Object,M=E.freeze,x=e=>e.size,D=(e,t)=>e?.has(t)??!1,j=e=>C(e)||0==x(e),k=e=>[...e?.values()??[]],z=e=>e.clear(),A=(e,t)=>e?.forEach(t),F=(e,t)=>e?.delete(t),O=e=>new Map(e),W=(e,t)=>e?.get(t),q=(e,t)=>A(e,((e,n)=>t(n,e))),B=(e,t,n)=>C(n)?(F(e,t),e):e?.set(t,n),G=(e,t,n)=>(D(e,t)||B(e,t,n()),W(e,t)),H=(e,t,n,s,r=0)=>S((n?G:W)(e,t[r],r>f(t)-2?n:O),(o=>{if(r>f(t)-2)return s?.(o)&&B(e,t[r]),o;const a=H(o,t,n,s,r+1);return j(o)&&B(e,t[r]),a})),J=e=>new Set(Q(e)||C(e)?e:[e]),K=(e,t)=>e?.add(t),N=O([["avg",[(e,t)=>w(e)/t,(e,t,n)=>e+(t-e)/(n+1),(e,t,n)=>e+(e-t)/(n-1),(e,t,n,s)=>e+(t-n)/s]],["max",[e=>T(...e),(e,t)=>T(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:T(t,e)]],["min",[e=>b(...e),(e,t)=>b(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:b(t,e)]],["sum",[e=>w(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,n)=>e-n+t]]]),P=(r=>{const l=new WeakMap;return r=>(l.has(r)||l.set(r,(r=>{const l=r.createStore,[w,R,T,b,P,,,U,,V,X,Y,Z]=((e,t,n)=>{const s=e.hasRow,r=O(),o=O(),a=O(),l=O(),i=O(),c=(t,n,...s)=>{const r=G(i,t,J);return v(s,(t=>K(r,t)&&n&&e.callListener(t))),s},d=(t,...n)=>S(W(i,t),(s=>{v(L(n)?k(s):n,(t=>{e.delListener(t),F(s,t)})),j(s)&&B(i,t)})),u=(e,t)=>{B(r,e,t),D(o,e)||(B(o,e,!0),B(a,e,O()),B(l,e,O()))},h=e=>{B(r,e),B(o,e),B(a,e),B(l,e),d(e)};return[()=>e,()=>{return e=r,[...e?.keys()??[]];var e},e=>q(o,e),e=>D(o,e),e=>W(r,e),e=>W(o,e),(e,t)=>B(o,e,t),u,(t,r,o,i,h)=>{u(t,r);const w=O(),L=O(),R=W(a,t),y=W(l,t),T=t=>{const o=n=>e.getCell(r,t,n),a=W(R,t),l=s(r,t)?n(i(o,t)):void 0;var c,d;if(a===l||Q(a)&&Q(l)&&(d=l,f(c=a)===f(d)&&g(c,((e,t)=>d[t]===e)))||B(w,t,[a,l]),!C(h)){const e=W(y,t),n=s(r,t)?h(o,t):void 0;e!=n&&B(L,t,n)}},b=e=>{o((()=>{A(w,(([,e],t)=>B(R,t,e))),A(L,((e,t)=>B(y,t,e)))}),w,L,R,y,e),z(w),z(L)};q(R,T),e.hasTable(r)&&v(e.getRowIds(r),(e=>{D(R,e)||T(e)})),b(!0),d(t),c(t,0,e.addRowListener(r,null,((e,t,n)=>T(n))),e.addTableListener(r,(()=>b())))},h,()=>q(i,h),c,d]})(r,0,I),$=l(),_=l(),ee=O(),te=(e,t,...n)=>v(n,(n=>K(G(G(ee,t,O),e,J),n))),ne=e=>{S(W(ee,e),(e=>{q(e,((e,t)=>A(t,(t=>e.delListener(t))))),z(e)})),v([_,$],(t=>t.delTable(e)))},se=(e,t,n)=>te(t,e,t.addStartTransactionListener(n.startTransaction),t.addDidFinishTransactionListener((()=>n.finishTransaction()))),re={setQueryDefinition:(o,a,l)=>{U(o,a),ne(o);const i=[],c=[[null,[a,null,null,[],O()]]],d=[],u=[],h=[];l({select:(e,t)=>{const n=m(e)?[f(i)+"",e]:[C(t)?e:t,n=>n(e,t)];return y(i,n),{as:e=>n[0]=e}},join:(e,t,n)=>{const s=C(n)||m(t)?null:t,r=C(s)?t:n,o=[e,[e,s,m(r)?r:e=>e(r),[],O()]];return y(c,o),{as:e=>o[0]=e}},where:(e,t,n)=>y(d,m(e)?e:C(n)?n=>n(e)===t:s=>s(e,t)===n),group:(e,t,n,s,r)=>{const o=[e,[e,m(t)?[t,n,s,r]:W(N,t)??[(e,t)=>t]]];return y(u,o),{as:e=>o[0]=e}},having:(e,t)=>y(h,m(e)?e:n=>n(e)===t)});const w=O(i);if(j(w))return re;const R=O(c);q(R,((e,[,t])=>S(W(R,t),(({3:t})=>C(e)?0:y(t,e)))));const T=O(u);let b=$;if(j(T)&&L(h))b=_;else{se(o,b,_);const r=O();q(T,((e,[t,n])=>K(G(r,t,J),[e,n])));const a=J();q(w,(e=>D(r,e)?0:K(a,e)));const l=O(),i=(a,l,i,c)=>S(a,(([d,u,v,w])=>{q(l,((o,[a])=>{const l=G(d,o,O),u=W(l,i),h=c?void 0:a;if(u!==h){const a=J([[u,h]]),c=x(l);B(l,i,h),A(W(r,o),(([r,o])=>{const i=((e,t,n,s,r,o=!1)=>{if(j(n))return;const[a,l,i,c]=r;return o||=C(e),A(s,(([n,s])=>{o||(e=C(n)?l?.(e,s,t++):C(s)?i?.(e,n,t--):c?.(e,s,n,t),o||=C(e))})),o?a(k(n),x(n)):e})(w[r],c,l,a,o);w[r]=C((r=>{const o=e(r);return(e=>e==t||e==n)(o)||o==s&&p(r)?o:void 0})(i))?null:i}))}})),j(u)||!g(h,(e=>e((e=>w[e]))))?_.delRow(o,v):C(v)?a[2]=_.addRow(o,w):_.setRow(o,v,w)}));te(b,o,b.addRowListener(o,null,((e,t,n,s)=>{const c=[],d=[],u=O(),h=b.hasRow(o,n);let g=!h;A(a,(e=>{const[t,r,a]=s(o,n,e);y(c,r),y(d,a),g||=t})),q(r,(e=>{const[t,,r]=s(o,n,e);(g||t)&&B(u,e,[r])})),g&&i(H(l,c,void 0,(([,e])=>(F(e,n),j(e)))),u,n,1),h&&i(H(l,d,(()=>{const e={};return A(a,(t=>e[t]=b.getCell(o,n,t))),[O(),J(),void 0,e]}),(([,e])=>{K(e,n)})),u,n)})))}se(o,r,b);const Q=(e,t,n,s)=>{const l=e=>r.getCell(t,n,e);v(s,(t=>{const[n,,s,a,i]=W(R,t),c=s?.(l,e),[d,u]=W(i,e)??[];c!=d&&(C(u)||Z(o,u),B(i,e,C(c)?null:[c,...Y(o,1,r.addRowListener(n,c,(()=>Q(e,n,c,a))))]))})),(e=>{const t=(t,n)=>r.getCell(...C(n)?[a,e,t]:t===a?[a,e,n]:[W(R,t)?.[0],W(W(R,t)?.[4],e)?.[0],n]);b.transaction((()=>g(d,(e=>e(t)))?q(w,((n,s)=>((e,t,n,s,r)=>C(r)?e.delCell(t,n,s,!0):e.setCell(t,n,s,r))(b,o,e,n,s(t,e)))):b.delRow(o,e)))})(e)},{3:I}=W(R,null);return b.transaction((()=>Y(o,1,r.addRowListener(a,null,((e,t,n)=>{r.hasRow(a,n)?Q(n,a,n,I):(b.delRow(o,n),A(R,(({4:e})=>S(W(e,n),(([,t])=>{Z(o,t),B(e,n)})))))}))))),re},delQueryDefinition:e=>(ne(e),V(e),re),getStore:w,getQueryIds:R,forEachQuery:T,hasQuery:b,getTableId:P,delListener:e=>(_.delListener(e),re),destroy:X,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:n,...s}=_.getListenerStats();return s}};var oe,ae;return oe={Table:[1,1],[c]:[0,1],[d]:[0,5],[i]:[1,2],[h]:[0,2],[u]:[1,3]},ae=([e,t],n)=>{v(e?["get","has","forEach"]:["get"],(e=>re[e+a+n]=(...t)=>_[e+n](...t))),re["add"+a+n+o]=(...e)=>{return _["add"+n+o](...(s=e,0,r=t,s.slice(0,r)),((n,...s)=>e[t](re,...s)));var s,r}},((e,t)=>{e.map(t)})(E.entries(oe),(([e,t])=>ae(t,e))),M(re)})(r)),l.get(r))})();exports.createQueries=P;
1
+ "use strict";const e=e=>typeof e,t=e(""),n=e(!0),s=e(0),r=e(e),o="Listener",a="Result",l="Ids",i="Table",c="Row",d=c+l,u="Sorted"+c+l,h="Cell",g=h+l,v=(e,t)=>e.every(t),w=(e,t)=>e.forEach(t),f=e=>y(e,((e,t)=>e+t),0),L=e=>e.length,R=e=>0==L(e),y=(e,t,n)=>e.reduce(t,n),T=(e,...t)=>e.push(...t),b=Math.max,p=Math.min,C=isFinite,S=e=>null==e,m=(e,t,n)=>S(e)?n?.():t(e),Q=t=>e(t)==r,I=e=>Array.isArray(e),E=()=>{},M=Object,x=M.freeze,D=e=>e.size,j=(e,t)=>e?.has(t)??!1,k=e=>S(e)||0==D(e),z=e=>[...e?.values()??[]],A=e=>e.clear(),F=(e,t)=>e?.forEach(t),O=(e,t)=>e?.delete(t),W=e=>new Map(e),q=(e,t)=>e?.get(t),B=(e,t)=>F(e,((e,n)=>t(n,e))),G=(e,t,n)=>S(n)?(O(e,t),e):e?.set(t,n),H=(e,t,n)=>(j(e,t)||G(e,t,n()),q(e,t)),J=(e,t,n,s,r=0)=>m((n?H:q)(e,t[r],r>L(t)-2?n:W),(o=>{if(r>L(t)-2)return s?.(o)&&G(e,t[r]),o;const a=J(o,t,n,s,r+1);return k(o)&&G(e,t[r]),a})),K=e=>new Set(I(e)||S(e)?e:[e]),N=(e,t)=>e?.add(t),P=W([["avg",[(e,t)=>f(e)/t,(e,t,n)=>e+(t-e)/(n+1),(e,t,n)=>e+(e-t)/(n-1),(e,t,n,s)=>e+(t-n)/s]],["max",[e=>b(...e),(e,t)=>b(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:b(t,e)]],["min",[e=>p(...e),(e,t)=>p(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:p(t,e)]],["sum",[e=>f(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,n)=>e-n+t]]]),U=(r=>{const l=new WeakMap;return r=>(l.has(r)||l.set(r,(r=>{const l=r.createStore,[f,y,b,p,U,,,V,,X,Y,Z,$]=((e,t,n)=>{const s=e.hasRow,r=W(),o=W(),a=W(),l=W(),i=W(),c=(t,n,...s)=>{const r=H(i,t,K);return w(s,(t=>N(r,t)&&n&&e.callListener(t))),s},d=(t,...n)=>m(q(i,t),(s=>{w(R(n)?z(s):n,(t=>{e.delListener(t),O(s,t)})),k(s)&&G(i,t)})),u=(e,t)=>{G(r,e,t),j(o,e)||(G(o,e,!0),G(a,e,W()),G(l,e,W()))},h=e=>{G(r,e),G(o,e),G(a,e),G(l,e),d(e)};return[()=>e,()=>{return e=r,[...e?.keys()??[]];var e},e=>B(o,e),e=>j(o,e),e=>q(r,e),e=>q(o,e),(e,t)=>G(o,e,t),u,(t,r,o,i,h)=>{u(t,r);const g=W(),f=W(),R=q(a,t),y=q(l,t),T=t=>{const o=n=>e.getCell(r,t,n),a=q(R,t),l=s(r,t)?n(i(o,t)):void 0;var c,d;if(a===l||I(a)&&I(l)&&(d=l,L(c=a)===L(d)&&v(c,((e,t)=>d[t]===e)))||G(g,t,[a,l]),!S(h)){const e=q(y,t),n=s(r,t)?h(o,t):void 0;e!=n&&G(f,t,n)}},b=e=>{o((()=>{F(g,(([,e],t)=>G(R,t,e))),F(f,((e,t)=>G(y,t,e)))}),g,f,R,y,e),A(g),A(f)};B(R,T),e.hasTable(r)&&w(e.getRowIds(r),(e=>{j(R,e)||T(e)})),b(!0),d(t),c(t,0,e.addRowListener(r,null,((e,t,n)=>T(n))),e.addTableListener(r,(()=>b())))},h,()=>B(i,h),c,d]})(r,0,E),_=l(),ee=l(),te=W(),ne=(e,t,...n)=>w(n,(n=>N(H(H(te,t,W),e,K),n))),se=e=>{m(q(te,e),(e=>{B(e,((e,t)=>F(t,(t=>e.delListener(t))))),A(e)})),w([ee,_],(t=>t.delTable(e)))},re=(e,t,n)=>ne(t,e,t.addStartTransactionListener(n.startTransaction),t.addDidFinishTransactionListener((()=>n.finishTransaction()))),oe={setQueryDefinition:(o,a,l)=>{V(o,a),se(o);const i=[],c=[[null,[a,null,null,[],W()]]],d=[],u=[],h=[];l({select:(e,t)=>{const n=Q(e)?[L(i)+"",e]:[S(t)?e:t,n=>n(e,t)];return T(i,n),{as:e=>n[0]=e}},join:(e,t,n)=>{const s=S(n)||Q(t)?null:t,r=S(s)?t:n,o=[e,[e,s,Q(r)?r:e=>e(r),[],W()]];return T(c,o),{as:e=>o[0]=e}},where:(e,t,n)=>T(d,Q(e)?e:S(n)?n=>n(e)===t:s=>s(e,t)===n),group:(e,t,n,s,r)=>{const o=[e,[e,Q(t)?[t,n,s,r]:q(P,t)??[(e,t)=>t]]];return T(u,o),{as:e=>o[0]=e}},having:(e,t)=>T(h,Q(e)?e:n=>n(e)===t)});const g=W(i);if(k(g))return oe;const f=W(c);B(f,((e,[,t])=>m(q(f,t),(({3:t})=>S(e)?0:T(t,e)))));const y=W(u);let b=_;if(k(y)&&R(h))b=ee;else{re(o,b,ee);const r=W();B(y,((e,[t,n])=>N(H(r,t,K),[e,n])));const a=K();B(g,(e=>j(r,e)?0:N(a,e)));const l=W(),i=(a,l,i,c)=>m(a,(([d,u,g,w])=>{B(l,((o,[a])=>{const l=H(d,o,W),u=q(l,i),h=c?void 0:a;if(u!==h){const a=K([[u,h]]),c=D(l);G(l,i,h),F(q(r,o),(([r,o])=>{const i=((e,t,n,s,r,o=!1)=>{if(k(n))return;const[a,l,i,c]=r;return o||=S(e),F(s,(([n,s])=>{o||(e=S(n)?l?.(e,s,t++):S(s)?i?.(e,n,t--):c?.(e,s,n,t),o||=S(e))})),o?a(z(n),D(n)):e})(w[r],c,l,a,o);w[r]=S((r=>{const o=e(r);return(e=>e==t||e==n)(o)||o==s&&C(r)?o:void 0})(i))?null:i}))}})),k(u)||!v(h,(e=>e((e=>w[e]))))?ee.delRow(o,g):S(g)?a[2]=ee.addRow(o,w):ee.setRow(o,g,w)}));ne(b,o,b.addRowListener(o,null,((e,t,n,s)=>{const c=[],d=[],u=W(),h=b.hasRow(o,n);let g=!h;F(a,(e=>{const[t,r,a]=s(o,n,e);T(c,r),T(d,a),g||=t})),B(r,(e=>{const[t,,r]=s(o,n,e);(g||t)&&G(u,e,[r])})),g&&i(J(l,c,void 0,(([,e])=>(O(e,n),k(e)))),u,n,1),h&&i(J(l,d,(()=>{const e={};return F(a,(t=>e[t]=b.getCell(o,n,t))),[W(),K(),void 0,e]}),(([,e])=>{N(e,n)})),u,n)})))}re(o,r,b);const p=(e,t,n,s)=>{const l=e=>r.getCell(t,n,e);w(s,(t=>{const[n,,s,a,i]=q(f,t),c=s?.(l,e),[d,u]=q(i,e)??[];c!=d&&(S(u)||$(o,u),G(i,e,S(c)?null:[c,...Z(o,1,r.addRowListener(n,c,(()=>p(e,n,c,a))))]))})),(e=>{const t=(t,n)=>r.getCell(...S(n)?[a,e,t]:t===a?[a,e,n]:[q(f,t)?.[0],q(q(f,t)?.[4],e)?.[0],n]);b.transaction((()=>v(d,(e=>e(t)))?B(g,((n,s)=>((e,t,n,s,r)=>S(r)?e.delCell(t,n,s,!0):e.setCell(t,n,s,r))(b,o,e,n,s(t,e)))):b.delRow(o,e)))})(e)},{3:I}=q(f,null);return b.transaction((()=>Z(o,1,r.addRowListener(a,null,((e,t,n)=>{r.hasRow(a,n)?p(n,a,n,I):(b.delRow(o,n),F(f,(({4:e})=>m(q(e,n),(([,t])=>{$(o,t),G(e,n)})))))}))))),oe},delQueryDefinition:e=>(se(e),X(e),oe),getStore:f,getQueryIds:y,forEachQuery:b,hasQuery:p,getTableId:U,delListener:e=>(ee.delListener(e),oe),destroy:Y,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:n,...s}=ee.getListenerStats();return s}};var ae,le;return ae={[i]:[1,1],[i+g]:[0,1],[d]:[0,1],[u]:[0,5],[c]:[1,2],[g]:[0,2],[h]:[1,3]},le=([e,t],n)=>{w(e?["get","has","forEach"]:["get"],(e=>oe[e+a+n]=(...t)=>ee[e+n](...t))),oe["add"+a+n+o]=(...e)=>{return ee["add"+n+o](...(s=e,0,r=t,s.slice(0,r)),((n,...s)=>e[t](oe,...s)));var s,r}},((e,t)=>{e.map(t)})(M.entries(ae),(([e,t])=>le(t,e))),x(oe)})(r)),l.get(r))})();exports.createQueries=U;
Binary file
@@ -1 +1 @@
1
- "use strict";const e=e=>typeof e,t="",n=e(t),s=(e,t)=>e.forEach(t),r=e=>e.length,o=(e,...t)=>e.push(...t),i=e=>null==e,a=(e,t,n)=>i(e)?n?.():t(e),l=e=>Array.isArray(e),d=Object.freeze,c=(e,t)=>e?.has(t)??!1,u=e=>i(e)||0==(e=>e.size)(e),R=e=>[...e?.values()??[]],h=e=>e.clear(),f=(e,t)=>e?.forEach(t),L=(e,t)=>e?.delete(t),g=e=>new Map(e),w=(e,t)=>e?.get(t),p=(e,t)=>f(e,((e,n)=>t(n,e))),I=(e,t,n)=>i(n)?(L(e,t),e):e?.set(t,n),v=(e,t,n)=>(c(e,t)||I(e,t,n()),w(e,t)),y=(e,t,n,s,o=0)=>a((n?v:w)(e,t[o],o>r(t)-2?n:g),(i=>{if(o>r(t)-2)return s?.(i)&&I(e,t[o]),i;const a=y(i,t,n,s,o+1);return u(i)&&I(e,t[o]),a})),b=e=>new Set(l(e)||i(e)?e:[e]),k=(e,t)=>e?.add(t),E=/^\d+$/,T=(T=>{const m=new WeakMap;return T=>(m.has(T)||m.set(T,(T=>{const m=g(),S=g(),z=g(),A=g(),[D,M,j,x,C,O,,,W,$,q]=((e,n,o)=>{const d=e.hasRow,y=g(),E=g(),T=g(),m=g(),S=g(),z=(t,n,...r)=>{const o=v(S,t,b);return s(r,(t=>k(o,t)&&n&&e.callListener(t))),r},A=(t,...n)=>a(w(S,t),(o=>{s(0==r(n)?R(o):n,(t=>{e.delListener(t),L(o,t)})),u(o)&&I(S,t)})),D=(e,t)=>{I(y,e,t),c(E,e)||(I(E,e,[g(),g(),g(),g()]),I(T,e,g()),I(m,e,g()))},M=e=>{I(y,e),I(E,e),I(T,e),I(m,e),A(e)};return[()=>e,()=>{return e=y,[...e?.keys()??[]];var e},e=>p(E,e),e=>c(E,e),e=>w(y,e),e=>w(E,e),(e,t)=>I(E,e,t),D,(n,o,a,u,R)=>{D(n,o);const L=g(),v=g(),y=w(T,n),b=w(m,n),k=n=>{const s=t=>e.getCell(o,n,t),a=w(y,n),c=d(o,n)?(h=u(s,n),i(h)?void 0:h+t):void 0;var h,f,g,p;if(a===c||l(a)&&l(c)&&(g=c,r(f=a)===r(g)&&(p=(e,t)=>g[t]===e,f.every(p)))||I(L,n,[a,c]),!i(R)){const e=w(b,n),t=d(o,n)?R(s,n):void 0;e!=t&&I(v,n,t)}},E=e=>{a((()=>{f(L,(([,e],t)=>I(y,t,e))),f(v,((e,t)=>I(b,t,e)))}),L,v,y,b,e),h(L),h(v)};p(y,k),e.hasTable(o)&&s(e.getRowIds(o),(e=>{c(y,e)||k(e)})),E(!0),A(n),z(n,0,e.addRowListener(o,null,((e,t,n)=>k(n))),e.addTableListener(o,(()=>E())))},M,()=>p(S,M),z,A]})(T),[B,F,G]=(e=>{let n;const[l,d]=(()=>{const e=[];let n=0;return[s=>(s?e.shift():null)??t+n++,t=>{E.test(t)&&r(e)<1e3&&o(e,t)}]})(),c=g();return[(e,s,r,o=[],i=(()=>[]))=>{n??=N;const a=l(1);return I(c,a,[e,s,r,o,i]),k(y(s,r??[t],b),a),a},(e,i,...a)=>s(((e,n=[t])=>{const i=[],a=(e,t)=>t==r(n)?o(i,e):null===n[t]?f(e,(e=>a(e,t+1))):s([n[t],null],(n=>a(w(e,n),t+1)));return a(e,0),i})(e,i),(e=>f(e,(e=>w(c,e)[0](n,...i??[],...a))))),e=>a(w(c,e),(([,n,s])=>(y(n,s??[t],void 0,(t=>(L(t,e),u(t)?1:0))),I(c,e),d(e),s))),e=>a(w(c,e),(([e,,t=[],o,a])=>{const l=(...d)=>{const c=r(d);c==r(t)?e(n,...d,...a(d)):i(t[c])?s(o[c]?.(...d)??[],(e=>l(...d,e))):l(...d,t[c])};l()}))]})(),H=(e,t,n)=>a(O(e),(([s,,r])=>{if(!c(r,t)){const o=b();if(C(e)!=K(e))k(o,t);else{let e=t;for(;!i(e)&&!c(o,e);)k(o,e),e=w(s,e)}if(n)return o;I(r,t,o)}return w(r,t)})),J=(e,t)=>a(O(e),(([,,e])=>I(e,t))),K=e=>w(m,e),N={setRelationshipDefinition:(s,r,o,l)=>{return I(m,s,o),W(s,r,((e,t)=>{const n=b(),r=b(),o=b(),[l,d]=O(s);f(t,(([e,t],R)=>{i(e)||(k(r,e),a(w(d,e),(t=>{L(t,R),u(t)&&I(d,e)}))),i(t)||(k(r,t),c(d,t)||I(d,t,b()),k(w(d,t),R)),k(n,R),I(l,R,t),p(w(A,s),(e=>{c(H(s,e),R)&&k(o,e)}))})),e(),f(n,(e=>F(S,[s,e]))),f(r,(e=>F(z,[s,e]))),f(o,(e=>{J(s,e),F(A,[s,e])}))}),e(d=l)==n?e=>e(d):d??(()=>t)),N;var d},delRelationshipDefinition:e=>(I(m,e),$(e),N),getStore:D,getRelationshipIds:M,forEachRelationship:e=>j((t=>e(t,(e=>T.forEachRow(C(t),e))))),hasRelationship:x,getLocalTableId:C,getRemoteTableId:K,getRemoteRowId:(e,t)=>w(O(e)?.[0],t),getLocalRowIds:(e,t)=>R(w(O(e)?.[1],t)),getLinkedRowIds:(e,t)=>i(O(e))?[t]:R(H(e,t,!0)),addRemoteRowIdListener:(e,t,n)=>B(n,S,[e,t]),addLocalRowIdsListener:(e,t,n)=>B(n,z,[e,t]),addLinkedRowIdsListener:(e,t,n)=>(H(e,t),B(n,A,[e,t])),delListener:e=>(J(...G(e)),N),destroy:q,getListenerStats:()=>({})};return d(N)})(T)),m.get(T))})();exports.createRelationships=T;
1
+ "use strict";const e=e=>typeof e,t="",n=e(t),s=e=>null==e,r=(e,t,n)=>s(e)?n?.():t(e),o=e=>Array.isArray(e),i=(e,t)=>e.forEach(t),a=e=>e.length,l=(e,...t)=>e.push(...t),d=Object.freeze,c=(e,t)=>e?.has(t)??!1,u=e=>s(e)||0==(e=>e.size)(e),R=e=>[...e?.values()??[]],h=e=>e.clear(),f=(e,t)=>e?.forEach(t),L=(e,t)=>e?.delete(t),g=e=>new Map(e),w=(e,t)=>e?.get(t),p=(e,t)=>f(e,((e,n)=>t(n,e))),I=(e,t,n)=>s(n)?(L(e,t),e):e?.set(t,n),v=(e,t,n)=>(c(e,t)||I(e,t,n()),w(e,t)),y=(e,t,n,s,o=0)=>r((n?v:w)(e,t[o],o>a(t)-2?n:g),(r=>{if(o>a(t)-2)return s?.(r)&&I(e,t[o]),r;const i=y(r,t,n,s,o+1);return u(r)&&I(e,t[o]),i})),b=e=>new Set(o(e)||s(e)?e:[e]),k=(e,t)=>e?.add(t),E=/^\d+$/,T=(T=>{const m=new WeakMap;return T=>(m.has(T)||m.set(T,(T=>{const m=g(),S=g(),z=g(),A=g(),[D,M,j,x,C,O,,,W,$,q]=((e,n,l)=>{const d=e.hasRow,y=g(),E=g(),T=g(),m=g(),S=g(),z=(t,n,...s)=>{const r=v(S,t,b);return i(s,(t=>k(r,t)&&n&&e.callListener(t))),s},A=(t,...n)=>r(w(S,t),(s=>{i(0==a(n)?R(s):n,(t=>{e.delListener(t),L(s,t)})),u(s)&&I(S,t)})),D=(e,t)=>{I(y,e,t),c(E,e)||(I(E,e,[g(),g(),g(),g()]),I(T,e,g()),I(m,e,g()))},M=e=>{I(y,e),I(E,e),I(T,e),I(m,e),A(e)};return[()=>e,()=>{return e=y,[...e?.keys()??[]];var e},e=>p(E,e),e=>c(E,e),e=>w(y,e),e=>w(E,e),(e,t)=>I(E,e,t),D,(n,r,l,u,R)=>{D(n,r);const L=g(),v=g(),y=w(T,n),b=w(m,n),k=n=>{const i=t=>e.getCell(r,n,t),l=w(y,n),c=d(r,n)?(h=u(i,n),s(h)?void 0:h+t):void 0;var h,f,g,p;if(l===c||o(l)&&o(c)&&(g=c,a(f=l)===a(g)&&(p=(e,t)=>g[t]===e,f.every(p)))||I(L,n,[l,c]),!s(R)){const e=w(b,n),t=d(r,n)?R(i,n):void 0;e!=t&&I(v,n,t)}},E=e=>{l((()=>{f(L,(([,e],t)=>I(y,t,e))),f(v,((e,t)=>I(b,t,e)))}),L,v,y,b,e),h(L),h(v)};p(y,k),e.hasTable(r)&&i(e.getRowIds(r),(e=>{c(y,e)||k(e)})),E(!0),A(n),z(n,0,e.addRowListener(r,null,((e,t,n)=>k(n))),e.addTableListener(r,(()=>E())))},M,()=>p(S,M),z,A]})(T),[B,F,G]=(e=>{let n;const[o,d]=(()=>{const e=[];let n=0;return[s=>(s?e.shift():null)??t+n++,t=>{E.test(t)&&a(e)<1e3&&l(e,t)}]})(),c=g();return[(e,s,r,i=[],a=(()=>[]))=>{n??=N;const l=o(1);return I(c,l,[e,s,r,i,a]),k(y(s,r??[t],b),l),l},(e,s,...r)=>i(((e,n=[t])=>{const s=[],r=(e,t)=>t==a(n)?l(s,e):null===n[t]?f(e,(e=>r(e,t+1))):i([n[t],null],(n=>r(w(e,n),t+1)));return r(e,0),s})(e,s),(e=>f(e,(e=>w(c,e)[0](n,...s??[],...r))))),e=>r(w(c,e),(([,n,s])=>(y(n,s??[t],void 0,(t=>(L(t,e),u(t)?1:0))),I(c,e),d(e),s))),e=>r(w(c,e),(([e,,t=[],r,o])=>{const l=(...d)=>{const c=a(d);c==a(t)?e(n,...d,...o(d)):s(t[c])?i(r[c]?.(...d)??[],(e=>l(...d,e))):l(...d,t[c])};l()}))]})(),H=(e,t,n)=>r(O(e),(([r,,o])=>{if(!c(o,t)){const i=b();if(C(e)!=K(e))k(i,t);else{let e=t;for(;!s(e)&&!c(i,e);)k(i,e),e=w(r,e)}if(n)return i;I(o,t,i)}return w(o,t)})),J=(e,t)=>r(O(e),(([,,e])=>I(e,t))),K=e=>w(m,e),N={setRelationshipDefinition:(o,i,a,l)=>{return I(m,o,a),W(o,i,((e,t)=>{const n=b(),i=b(),a=b(),[l,d]=O(o);f(t,(([e,t],R)=>{s(e)||(k(i,e),r(w(d,e),(t=>{L(t,R),u(t)&&I(d,e)}))),s(t)||(k(i,t),c(d,t)||I(d,t,b()),k(w(d,t),R)),k(n,R),I(l,R,t),p(w(A,o),(e=>{c(H(o,e),R)&&k(a,e)}))})),e(),f(n,(e=>F(S,[o,e]))),f(i,(e=>F(z,[o,e]))),f(a,(e=>{J(o,e),F(A,[o,e])}))}),e(d=l)==n?e=>e(d):d??(()=>t)),N;var d},delRelationshipDefinition:e=>(I(m,e),$(e),N),getStore:D,getRelationshipIds:M,forEachRelationship:e=>j((t=>e(t,(e=>T.forEachRow(C(t),e))))),hasRelationship:x,getLocalTableId:C,getRemoteTableId:K,getRemoteRowId:(e,t)=>w(O(e)?.[0],t),getLocalRowIds:(e,t)=>R(w(O(e)?.[1],t)),getLinkedRowIds:(e,t)=>s(O(e))?[t]:R(H(e,t,!0)),addRemoteRowIdListener:(e,t,n)=>B(n,S,[e,t]),addLocalRowIdsListener:(e,t,n)=>B(n,z,[e,t]),addLinkedRowIdsListener:(e,t,n)=>(H(e,t),B(n,A,[e,t])),delListener:e=>(J(...G(e)),N),destroy:q,getListenerStats:()=>({})};return d(N)})(T)),m.get(T))})();exports.createRelationships=T;
Binary file
package/lib/cjs/store.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";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)};exports.createStore=ve;
1
+ "use strict";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,f="Cell",g=f+c,T="Value",V=T+"s",b=T+c,C=e=>t+e,S=isFinite,v=(e,t)=>e instanceof t,w=e=>null==e,I=(e,t,s)=>w(e)?s?.():t(e),R=e=>e==s||e==l,m=t=>e(t)==a,y=(e,t)=>e.forEach(t),J=(e,t)=>e.map(t),p=e=>e.length,E=(e,t,s)=>e.slice(t,s),L=(e,...t)=>e.push(...t),F=Object,z=F.keys,O=F.isFrozen,k=F.freeze,A=e=>v(e,F)&&e.constructor==F,M=(e,t)=>!w(((e,t)=>I(e,(e=>e[t])))(e,t)),N=(e,t)=>(delete e[t],e),P=(e,t)=>J(F.entries(e),(([e,s])=>t(s,e))),j=e=>A(e)&&0==(e=>p(z(e)))(e),x=(e,t)=>e?.has(t)??!1,D=e=>w(e)||0==(e=>e.size)(e),W=e=>e.clear(),$=(e,t)=>e?.forEach(t),q=(e,t)=>e?.delete(t),B=e=>new Map(e),G=e=>[...e?.keys()??[]],H=(e,t)=>e?.get(t),K=(e,t)=>$(e,((e,s)=>t(s,e))),Q=(e,t,s)=>w(s)?(q(e,t),e):e?.set(t,s),U=(e,t,s)=>(x(e,t)||Q(e,t,s()),H(e,t)),X=(e,t,s,l=Q)=>(P(t,((t,l)=>s(e,l,t))),K(e,(s=>M(t,s)?0:l(e,s))),e),Y=(e,t,s)=>{const l={};return $(e,((e,n)=>{const a=t?t(e,n):e;!s?.(a,e)&&(l[n]=a)})),l},Z=(e,t,s)=>Y(e,(e=>Y(e,t,s)),j),_=(e,t,s)=>Y(e,(e=>Z(e,t,s)),j),ee=(e,t)=>{const s=B();return $(e,((e,l)=>s.set(l,t?.(e)??e))),s},te=e=>ee(e,ee),se=e=>ee(e,te),le=(e,t,s,l,n=0)=>I((s?U:H)(e,t[n],n>p(t)-2?s:B),(a=>{if(n>p(t)-2)return l?.(a)&&Q(e,t[n]),a;const r=le(a,t,s,l,n+1);return D(a)&&Q(e,t[n]),r})),ne=e=>new Set(Array.isArray(e)||w(e)?e:[e]),ae=(e,t)=>e?.add(t),re=/^\d+$/,oe=()=>{const e=[];let s=0;return[l=>(l?e.shift():null)??t+s++,t=>{re.test(t)&&p(e)<1e3&&L(e,t)}]},ce=e=>[e,e],ie=()=>[B(),B()],de=e=>[...e],ue=([e,t])=>e===t,he=t=>{const s=e(t);return R(s)||s==n&&S(t)?s:void 0},fe=(e,t,s,l,n)=>w(n)?e.delCell(t,s,l,!0):e.setCell(t,s,l,n),ge=(e,t,s)=>w(s)?e.delValue(t):e.setValue(t,s),Te=e=>JSON.stringify(e,((e,t)=>v(t,Map)?F.fromEntries([...t]):t)),Ve=JSON.parse,be=(e,t,s)=>w(e)||!A(e)||j(e)||O(e)?(s?.(),!1):(P(e,((s,l)=>{t(s,l)||N(e,l)})),!j(e)),Ce=(e,t,s)=>Q(e,t,H(e,t)==-s?void 0:s),Se=()=>{let e,s,l=!1,a=!1,c=0;const S=B(),v=B(),F=B(),z=B(),O=B(),A=B(),re=B(),ve=B(),we=B(),Ie=B(),Re=B(),me=B(),ye=B(),Je=ne(),pe=B(),Ee=B(),Le=B(),Fe=B(),ze=ie(),Oe=ie(),ke=ie(),Ae=ie(),Me=ie(),Ne=ie(),Pe=ie(),je=ie(),xe=ie(),De=ie(),We=ie(),$e=ie(),qe=ie(),Be=ie(),Ge=B(),He=ie(),[Ke,Qe,Ue,Xe]=(e=>{let s;const[l,n]=oe(),a=B();return[(e,n,r,o=[],c=(()=>[]))=>{s??=is;const i=l(1);return Q(a,i,[e,n,r,o,c]),ae(le(n,r??[t],ne),i),i},(e,l,...n)=>y(((e,s=[t])=>{const l=[],n=(e,t)=>t==p(s)?L(l,e):null===s[t]?$(e,(e=>n(e,t+1))):y([s[t],null],(s=>n(H(e,s),t+1)));return n(e,0),l})(e,l),(e=>$(e,(e=>H(a,e)[0](s,...l??[],...n))))),e=>I(H(a,e),(([,s,l])=>(le(s,l??[t],void 0,(t=>(q(t,e),D(t)?1:0))),Q(a,e),n(e),l))),e=>I(H(a,e),(([e,,t=[],l,n])=>{const a=(...r)=>{const o=p(r);o==p(t)?e(s,...r,...n(r)):w(t[o])?y(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!(!R(t)&&t!=n||(he(e[o])!=t&&N(e,o),0))},Ze=(t,s)=>(!e||x(Ie,s)||Et(s))&&be(t,((e,t)=>_e(s,t,e)),(()=>Et(s))),_e=(e,t,s,l)=>be(l?s:lt(s,e,t),((l,n)=>I(et(e,t,n,l),(e=>(s[n]=e,!0)),(()=>!1))),(()=>Et(e,t))),et=(t,s,l,n)=>e?I(H(H(Ie,t),l),(e=>he(n)!=e[r]?Et(t,s,l,n,e[o]):n),(()=>Et(t,s,l,n))):w(he(n))?Et(t,s,l,n):n,tt=(e,t)=>be(t?e:nt(e),((t,s)=>I(st(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>Lt())),st=(e,t)=>s?I(H(me,e),(s=>he(t)!=s[r]?Lt(e,t,s[o]):t),(()=>Lt(e,t))):w(he(t))?Lt(e,t):t,lt=(e,t,s)=>(I(H(Re,t),(([l,n])=>{$(l,((t,s)=>{M(e,s)||(e[s]=t)})),$(n,(l=>{M(e,l)||Et(t,s,l)}))})),e),nt=e=>(s&&($(ye,((t,s)=>{M(e,s)||(e[s]=t)})),$(Je,(t=>{M(e,t)||Lt(t)}))),e),at=e=>X(Ie,e,((e,t,s)=>{const l=B(),n=ne();X(U(Ie,t,B),s,((e,t,s)=>{Q(e,t,s),I(s[o],(e=>Q(l,t,e)),(()=>ae(n,t)))})),Q(Re,t,[l,n])}),((e,t)=>{Q(Ie,t),Q(Re,t)})),rt=e=>X(me,e,((e,t,s)=>{Q(me,t,s),I(s[o],(e=>Q(ye,t,e)),(()=>ae(Je,t)))}),((e,t)=>{Q(me,t),Q(ye,t),q(Je,t)})),ot=e=>j(e)?es():Ut(e),ct=e=>X(Le,e,((e,t,s)=>it(t,s)),((e,t)=>Ct(t))),it=(e,t)=>X(U(Le,e,(()=>(It(e,1),Q(pe,e,oe()),Q(Ee,e,B()),B()))),t,((t,s,l)=>dt(e,t,s,l)),((t,s)=>St(e,t,s))),dt=(e,t,s,l,n)=>X(U(t,s,(()=>(Rt(e,s,1),B()))),l,((t,l,n)=>ut(e,s,t,l,n)),((l,a)=>vt(e,t,s,l,a,n))),ut=(e,t,s,l,n)=>{x(s,l)||mt(e,t,l,1);const a=H(s,l);n!==a&&(yt(e,t,l,a,n),Q(s,l,n))},ht=(e,t,s,l,n)=>I(H(t,s),(t=>ut(e,s,t,l,n)),(()=>dt(e,t,s,lt({[l]:n},e,s)))),ft=e=>j(e)?ls():Xt(e),gt=e=>X(Fe,e,((e,t,s)=>Tt(t,s)),((e,t)=>wt(t))),Tt=(e,t)=>{x(Fe,e)||Jt(e,1);const s=H(Fe,e);t!==s&&(pt(e,s,t),Q(Fe,e,t))},Vt=(e,t)=>{const[s]=H(pe,e),l=s(t);return x(H(Le,e),l)?Vt(e,t):l},bt=e=>H(Le,e)??it(e,{}),Ct=e=>it(e,{}),St=(e,t,s)=>{const[,l]=H(pe,e);l(s),dt(e,t,s,{},!0)},vt=(e,t,s,l,n,a)=>{const r=H(H(Re,e)?.[0],n);if(!w(r)&&!a)return ut(e,s,l,n,r);const o=t=>{yt(e,s,t,H(l,t)),mt(e,s,t,-1),Q(l,t)};w(r)?o(n):K(l,o),D(l)&&(Rt(e,s,-1),D(Q(t,s))&&(It(e,-1),Q(Le,e),Q(pe,e),Q(Ee,e)))},wt=e=>{const t=H(ye,e);if(!w(t))return Tt(e,t);pt(e,H(Fe,e)),Jt(e,-1),Q(Fe,e)},It=(e,t)=>Ce(S,e,t),Rt=(e,t,s)=>Ce(U(F,e,B),t,s),mt=(e,t,s,l)=>{const n=H(Ee,e),a=H(n,s)??0;(0==a&&1==l||1==a&&-1==l)&&Ce(U(v,e,B),s,l),Q(n,s,a!=-l?a+l:null),Ce(U(U(z,e,B),t,B),s,l)},yt=(e,t,s,l,n)=>U(U(U(O,e,B),t,B),s,(()=>[l,0]))[1]=n,Jt=(e,t)=>Ce(A,e,t),pt=(e,t,s)=>U(re,e,(()=>[t,0]))[1]=s,Et=(e,t,s,l,n)=>(L(U(U(U(ve,e,B),t,B),s,(()=>[])),l),n),Lt=(e,t,s)=>(L(U(we,e,(()=>[])),t),s),Ft=(e,t,s)=>I(H(H(H(O,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...ce(Gt(e,t,s))])),zt=e=>I(H(re,e),(([e,t])=>[!0,e,t]),(()=>[!1,...ce(Qt(e))])),Ot=e=>D(ve)||D(De[e])?0:$(e?se(ve):ve,((t,s)=>$(t,((t,l)=>$(t,((t,n)=>Qe(De[e],[s,l,n],t))))))),kt=e=>D(we)||D(We[e])?0:$(e?ee(we):we,((t,s)=>Qe(We[e],[s],t))),At=(e,t,s)=>{if(!D(t))return Qe(e,s,(()=>Y(t))),1},Mt=e=>{const t=D(Ne[e]),s=D(je[e])&&D(Ae[e])&&D(Me[e])&&t&&D(Oe[e]),l=D(xe[e])&&D(Pe[e])&&D(ke[e])&&D(ze[e]);if(!s||!l){const n=e?[ee(S),te(v),te(F),se(z),se(O)]:[S,v,F,z,O];if(!s){At(Oe[e],n[0]),$(n[1],((t,s)=>At(Ae[e],t,[s])));const s=ne();$(n[2],((l,n)=>{At(Me[e],l,[n])&&!t&&(Qe(Ne[e],[n,null]),ae(s,n))})),t||$(n[4],((t,l)=>{if(!x(s,l)){const s=ne();$(t,(e=>$(e,(([t,l],n)=>l!==t?ae(s,n):q(e,n))))),$(s,(t=>Qe(Ne[e],[l,t])))}})),$(n[3],((t,s)=>$(t,((t,l)=>At(je[e],t,[s,l])))))}if(!l){let t;$(n[4],((s,l)=>{let n;$(s,((s,a)=>{let r;$(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=D(qe[e]),s=D(Be[e])&&D($e[e]);if(!t||!s){const l=e?[ee(A),ee(re)]:[A,re];if(t||At(qe[e],l[0]),!s){let t;$(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(...J(t,C)))),is),jt=()=>[Y(O,((e,t)=>-1===H(S,t)?null:Y(e,((e,s)=>-1===H(H(F,t),s)?null:Y(e,(([,e])=>e??null),((e,t)=>ue(t)))),j)),j),Y(re,(([,e])=>e??null),((e,t)=>ue(t)))],xt=()=>({cellsTouched:l,valuesTouched:a,changedCells:_(O,de,ue),invalidCells:_(ve),changedValues:Y(re,de,ue),invalidValues:Y(we),changedTableIds:Y(S),changedRowIds:Z(F),changedCellIds:_(z),changedValueIds:Y(A)}),Dt=()=>_(Le),Wt=()=>G(Le),$t=e=>G(H(Le,C(e))),qt=(e,t,s,l=0,n)=>{return J(E((r=H(Le,C(e)),o=(e,s)=>[w(t)?s:H(e,C(t)),s],a=([e],[t])=>(e<t?-1:1)*(s?-1:1),J([...r?.entries()??[]],(([e,t])=>o(t,e))).sort(a)),l,w(n)?n:l+n),(([,e])=>e));var a,r,o},Bt=(e,t)=>G(H(H(Le,C(e)),C(t))),Gt=(e,t,s)=>H(H(H(Le,C(e)),C(t)),C(s)),Ht=()=>Y(Fe),Kt=()=>G(Fe),Qt=e=>H(Fe,C(e)),Ut=e=>Pt((()=>(e=>be(e,Ze,Et))(e)?ct(e):0)),Xt=e=>Pt((()=>tt(e)?gt(e):0)),Yt=e=>{try{ot(Ve(e))}catch{}return is},Zt=t=>Pt((()=>{if((e=be(t,(e=>be(e,Ye))))&&(at(t),!D(Le))){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=>x(Le,e)?Ct(e):0),e),ss=(e,t)=>Pt(((e,t)=>I(H(Le,e),(s=>x(s,t)?St(e,s,t):0))),e,t),ls=()=>Pt((()=>gt({}))),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=!D(O),a=!D(re),c=1,Ot(1),l&&Mt(1),kt(1),a&&Nt(1),e?.(jt,xt)&&($(O,((e,t)=>$(e,((e,s)=>$(e,(([e],l)=>fe(is,t,s,l,e))))))),$(re,(([e],t)=>ge(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,y([S,v,F,z,O,ve,A,re,we],W))),is),is={getContent:()=>[Dt(),Ht()],getTables:Dt,getTableIds:Wt,getTable:e=>Z(H(Le,C(e))),getTableCellIds:e=>G(H(Ee,C(e))),getRowIds:$t,getSortedRowIds:qt,getRow:(e,t)=>Y(H(H(Le,C(e)),C(t))),getCellIds:Bt,getCell:Gt,getValues:Ht,getValueIds:Kt,getValue:Qt,hasTables:()=>!D(Le),hasTable:e=>x(Le,C(e)),hasTableCell:(e,t)=>x(H(Ee,C(e)),C(t)),hasRow:(e,t)=>x(H(Le,C(e)),C(t)),hasCell:(e,t,s)=>x(H(H(Le,C(e)),C(t)),C(s)),hasValues:()=>!D(Fe),hasValue:e=>x(Fe,C(e)),getTablesJson:()=>Te(Le),getValuesJson:()=>Te(Fe),getJson:()=>Te([Le,Fe]),getTablesSchemaJson:()=>Te(Ie),getValuesSchemaJson:()=>Te(me),getSchemaJson:()=>Te([Ie,me]),setContent:([e,t])=>Pt((()=>{(j(e)?es:Ut)(e),(j(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);P(s,((s,n)=>ht(e,l,t,n,s)))}}),e,t),setCell:(e,t,s,l)=>Pt(((e,t,s)=>I(et(e,t,s,m(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)?P(e,((e,t)=>Tt(t,e))):0)),setValue:(e,t)=>Pt((e=>I(st(e,m(t)?t(Qt(e)):t),(t=>Tt(e,t)))),e),setTransactionChanges:e=>Pt((()=>{P(e[0],((e,t)=>w(e)?ts(t):P(e,((e,s)=>w(e)?ss(t,s):P(e,((e,l)=>fe(is,t,s,l,e))))))),P(e[1],((e,t)=>ge(is,t,e)))})),setTablesJson:Yt,setValuesJson:e=>{try{ft(Ve(e))}catch{}return is},setJson:e=>{try{const[t,s]=Ve(e);ot(t),ft(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)=>I(H(Le,e),(n=>I(H(n,t),(a=>x(a,s)?vt(e,n,t,a,s,l):0))))),e,t,s),delValues:ls,delValue:e=>Pt((e=>x(Fe,e)?wt(e):0),e),delTablesSchema:ns,delValuesSchema:as,delSchema:()=>Pt((()=>{ns(),as()})),transaction:rs,startTransaction:os,finishTransaction:cs,forEachTable:e=>$(Le,((t,s)=>e(s,(e=>$(t,((t,s)=>e(s,(e=>K(t,e))))))))),forEachTableCell:(e,t)=>K(H(Ee,C(e)),t),forEachRow:(e,t)=>$(H(Le,C(e)),((e,s)=>t(s,(t=>K(e,t))))),forEachCell:(e,t,s)=>K(H(H(Le,C(e)),C(t)),s),forEachValue:e=>K(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,p(c=r)===p(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:Se};return P({[d]:[0,ze],[u]:[0,Oe],[i]:[1,ke,[Wt]],[i+g]:[1,Ae,[Wt]],[h]:[1,Me,[Wt]],Row:[2,Pe,[Wt,$t]],[g]:[2,je,[Wt,$t]],[f]:[3,xe,[Wt,$t,Bt],e=>ce(Gt(...e))],InvalidCell:[3,De],[V]:[0,$e],[b]:[0,qe],[T]:[1,Be,[Kt],e=>ce(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?E(n,0,e):void 0,s,l)})),k(is)};exports.createStore=Se;
Binary file