tinybase 4.3.0-beta.0 → 4.3.0

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 (172) hide show
  1. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  2. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  3. package/lib/cjs/persisters/persister-expo-sqlite.cjs +1 -1
  4. package/lib/cjs/persisters/persister-expo-sqlite.cjs.gz +0 -0
  5. package/lib/cjs/persisters/persister-partykit-client.cjs +1 -0
  6. package/lib/cjs/persisters/persister-partykit-client.cjs.gz +0 -0
  7. package/lib/cjs/persisters/persister-partykit-server.cjs +1 -0
  8. package/lib/cjs/persisters/persister-partykit-server.cjs.gz +0 -0
  9. package/lib/cjs/persisters/persister-sqlite-wasm.cjs +1 -1
  10. package/lib/cjs/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  11. package/lib/cjs/persisters/persister-sqlite3.cjs +1 -1
  12. package/lib/cjs/persisters/persister-sqlite3.cjs.gz +0 -0
  13. package/lib/cjs/store.cjs +1 -1
  14. package/lib/cjs/store.cjs.gz +0 -0
  15. package/lib/cjs/tinybase.cjs +1 -1
  16. package/lib/cjs/tinybase.cjs.gz +0 -0
  17. package/lib/cjs/tools.cjs +1 -1
  18. package/lib/cjs/tools.cjs.gz +0 -0
  19. package/lib/cjs/ui-react-dom-debug.cjs +1 -1
  20. package/lib/cjs/ui-react-dom-debug.cjs.gz +0 -0
  21. package/lib/cjs/ui-react-dom.cjs +1 -1
  22. package/lib/cjs/ui-react-dom.cjs.gz +0 -0
  23. package/lib/cjs/ui-react.cjs +1 -1
  24. package/lib/cjs/ui-react.cjs.gz +0 -0
  25. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  26. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  27. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs +1 -1
  28. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs.gz +0 -0
  29. package/lib/cjs-es6/persisters/persister-partykit-client.cjs +1 -0
  30. package/lib/cjs-es6/persisters/persister-partykit-client.cjs.gz +0 -0
  31. package/lib/cjs-es6/persisters/persister-partykit-server.cjs +1 -0
  32. package/lib/cjs-es6/persisters/persister-partykit-server.cjs.gz +0 -0
  33. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs +1 -1
  34. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  35. package/lib/cjs-es6/persisters/persister-sqlite3.cjs +1 -1
  36. package/lib/cjs-es6/persisters/persister-sqlite3.cjs.gz +0 -0
  37. package/lib/cjs-es6/store.cjs +1 -1
  38. package/lib/cjs-es6/store.cjs.gz +0 -0
  39. package/lib/cjs-es6/tinybase.cjs +1 -1
  40. package/lib/cjs-es6/tinybase.cjs.gz +0 -0
  41. package/lib/cjs-es6/tools.cjs +1 -1
  42. package/lib/cjs-es6/tools.cjs.gz +0 -0
  43. package/lib/cjs-es6/ui-react-dom-debug.cjs +1 -1
  44. package/lib/cjs-es6/ui-react-dom-debug.cjs.gz +0 -0
  45. package/lib/cjs-es6/ui-react-dom.cjs +1 -1
  46. package/lib/cjs-es6/ui-react-dom.cjs.gz +0 -0
  47. package/lib/cjs-es6/ui-react.cjs +1 -1
  48. package/lib/cjs-es6/ui-react.cjs.gz +0 -0
  49. package/lib/debug/persisters/persister-cr-sqlite-wasm.js +10 -7
  50. package/lib/debug/persisters/persister-expo-sqlite.js +10 -7
  51. package/lib/debug/persisters/persister-partykit-client.js +249 -0
  52. package/lib/debug/persisters/persister-partykit-server.js +161 -0
  53. package/lib/debug/persisters/persister-sqlite-wasm.js +10 -7
  54. package/lib/debug/persisters/persister-sqlite3.js +10 -7
  55. package/lib/debug/queries.js +2 -2
  56. package/lib/debug/store.js +13 -13
  57. package/lib/debug/tinybase.js +14 -14
  58. package/lib/debug/tools.js +3 -4
  59. package/lib/debug/ui-react-dom.js +35 -24
  60. package/lib/debug/ui-react.js +38 -1
  61. package/lib/es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  62. package/lib/es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  63. package/lib/es6/persisters/persister-expo-sqlite.js +1 -1
  64. package/lib/es6/persisters/persister-expo-sqlite.js.gz +0 -0
  65. package/lib/es6/persisters/persister-partykit-client.js +1 -0
  66. package/lib/es6/persisters/persister-partykit-client.js.gz +0 -0
  67. package/lib/es6/persisters/persister-partykit-server.js +1 -0
  68. package/lib/es6/persisters/persister-partykit-server.js.gz +0 -0
  69. package/lib/es6/persisters/persister-sqlite-wasm.js +1 -1
  70. package/lib/es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  71. package/lib/es6/persisters/persister-sqlite3.js +1 -1
  72. package/lib/es6/persisters/persister-sqlite3.js.gz +0 -0
  73. package/lib/es6/store.js +1 -1
  74. package/lib/es6/store.js.gz +0 -0
  75. package/lib/es6/tinybase.js +1 -1
  76. package/lib/es6/tinybase.js.gz +0 -0
  77. package/lib/es6/tools.js +1 -1
  78. package/lib/es6/tools.js.gz +0 -0
  79. package/lib/es6/ui-react-dom-debug.js +1 -1
  80. package/lib/es6/ui-react-dom-debug.js.gz +0 -0
  81. package/lib/es6/ui-react-dom.js +1 -1
  82. package/lib/es6/ui-react-dom.js.gz +0 -0
  83. package/lib/es6/ui-react.js +1 -1
  84. package/lib/es6/ui-react.js.gz +0 -0
  85. package/lib/persisters/persister-cr-sqlite-wasm.js +1 -1
  86. package/lib/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  87. package/lib/persisters/persister-expo-sqlite.js +1 -1
  88. package/lib/persisters/persister-expo-sqlite.js.gz +0 -0
  89. package/lib/persisters/persister-partykit-client.js +1 -0
  90. package/lib/persisters/persister-partykit-client.js.gz +0 -0
  91. package/lib/persisters/persister-partykit-server.js +1 -0
  92. package/lib/persisters/persister-partykit-server.js.gz +0 -0
  93. package/lib/persisters/persister-sqlite-wasm.js +1 -1
  94. package/lib/persisters/persister-sqlite-wasm.js.gz +0 -0
  95. package/lib/persisters/persister-sqlite3.js +1 -1
  96. package/lib/persisters/persister-sqlite3.js.gz +0 -0
  97. package/lib/store.js +1 -1
  98. package/lib/store.js.gz +0 -0
  99. package/lib/tinybase.js +1 -1
  100. package/lib/tinybase.js.gz +0 -0
  101. package/lib/tools.js +1 -1
  102. package/lib/tools.js.gz +0 -0
  103. package/lib/types/persisters/persister-cr-sqlite-wasm.d.ts +2 -0
  104. package/lib/types/persisters/persister-expo-sqlite.d.ts +2 -0
  105. package/lib/types/persisters/persister-partykit-client.d.ts +88 -0
  106. package/lib/types/persisters/persister-partykit-server.d.ts +114 -0
  107. package/lib/types/persisters/persister-sqlite-wasm.d.ts +2 -0
  108. package/lib/types/persisters/persister-sqlite3.d.ts +2 -0
  109. package/lib/types/store.d.ts +6 -0
  110. package/lib/types/ui-react.d.ts +187 -4
  111. package/lib/types/with-schemas/persisters/persister-cr-sqlite-wasm.d.ts +2 -0
  112. package/lib/types/with-schemas/persisters/persister-expo-sqlite.d.ts +2 -0
  113. package/lib/types/with-schemas/persisters/persister-partykit-client.d.ts +99 -0
  114. package/lib/types/with-schemas/persisters/persister-partykit-server.d.ts +114 -0
  115. package/lib/types/with-schemas/persisters/persister-sqlite-wasm.d.ts +2 -0
  116. package/lib/types/with-schemas/persisters/persister-sqlite3.d.ts +2 -0
  117. package/lib/types/with-schemas/store.d.ts +6 -0
  118. package/lib/types/with-schemas/ui-react.d.ts +223 -8
  119. package/lib/ui-react-dom.js +1 -1
  120. package/lib/ui-react-dom.js.gz +0 -0
  121. package/lib/ui-react.js +1 -1
  122. package/lib/ui-react.js.gz +0 -0
  123. package/lib/umd/persisters/persister-cr-sqlite-wasm.js +1 -1
  124. package/lib/umd/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  125. package/lib/umd/persisters/persister-expo-sqlite.js +1 -1
  126. package/lib/umd/persisters/persister-expo-sqlite.js.gz +0 -0
  127. package/lib/umd/persisters/persister-partykit-client.js +1 -0
  128. package/lib/umd/persisters/persister-partykit-client.js.gz +0 -0
  129. package/lib/umd/persisters/persister-partykit-server.js +1 -0
  130. package/lib/umd/persisters/persister-partykit-server.js.gz +0 -0
  131. package/lib/umd/persisters/persister-sqlite-wasm.js +1 -1
  132. package/lib/umd/persisters/persister-sqlite-wasm.js.gz +0 -0
  133. package/lib/umd/persisters/persister-sqlite3.js +1 -1
  134. package/lib/umd/persisters/persister-sqlite3.js.gz +0 -0
  135. package/lib/umd/store.js +1 -1
  136. package/lib/umd/store.js.gz +0 -0
  137. package/lib/umd/tinybase.js +1 -1
  138. package/lib/umd/tinybase.js.gz +0 -0
  139. package/lib/umd/tools.js +1 -1
  140. package/lib/umd/tools.js.gz +0 -0
  141. package/lib/umd/ui-react-dom-debug.js +1 -1
  142. package/lib/umd/ui-react-dom-debug.js.gz +0 -0
  143. package/lib/umd/ui-react-dom.js +1 -1
  144. package/lib/umd/ui-react-dom.js.gz +0 -0
  145. package/lib/umd/ui-react.js +1 -1
  146. package/lib/umd/ui-react.js.gz +0 -0
  147. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  148. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  149. package/lib/umd-es6/persisters/persister-expo-sqlite.js +1 -1
  150. package/lib/umd-es6/persisters/persister-expo-sqlite.js.gz +0 -0
  151. package/lib/umd-es6/persisters/persister-partykit-client.js +1 -0
  152. package/lib/umd-es6/persisters/persister-partykit-client.js.gz +0 -0
  153. package/lib/umd-es6/persisters/persister-partykit-server.js +1 -0
  154. package/lib/umd-es6/persisters/persister-partykit-server.js.gz +0 -0
  155. package/lib/umd-es6/persisters/persister-sqlite-wasm.js +1 -1
  156. package/lib/umd-es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  157. package/lib/umd-es6/persisters/persister-sqlite3.js +1 -1
  158. package/lib/umd-es6/persisters/persister-sqlite3.js.gz +0 -0
  159. package/lib/umd-es6/store.js +1 -1
  160. package/lib/umd-es6/store.js.gz +0 -0
  161. package/lib/umd-es6/tinybase.js +1 -1
  162. package/lib/umd-es6/tinybase.js.gz +0 -0
  163. package/lib/umd-es6/tools.js +1 -1
  164. package/lib/umd-es6/tools.js.gz +0 -0
  165. package/lib/umd-es6/ui-react-dom-debug.js +1 -1
  166. package/lib/umd-es6/ui-react-dom-debug.js.gz +0 -0
  167. package/lib/umd-es6/ui-react-dom.js +1 -1
  168. package/lib/umd-es6/ui-react-dom.js.gz +0 -0
  169. package/lib/umd-es6/ui-react.js +1 -1
  170. package/lib/umd-es6/ui-react.js.gz +0 -0
  171. package/package.json +42 -31
  172. package/readme.md +13 -13
@@ -1 +1 @@
1
- "use strict";const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t)=>a.repeat(t),i=Promise,c=setInterval,o=clearInterval,r=(a,t)=>a instanceof t,w=a=>null==a,l=(a,t,e)=>w(a)?e?.():t(a),y=t=>a(t)==s,E=async a=>i.all(a),u=(a,t="")=>a.join(t),d=(a,t)=>a.map(t),T=a=>a.length,m=a=>0==T(a),v=(a,t)=>a.filter(t),A=(a,t,e)=>a.slice(t,e),L=(a,...t)=>a.push(...t),p=(a,t)=>a?.has(t)??!1,f=a=>[...a?.values()??[]],h=(a,t)=>a?.delete(t),N=Object,O=N.keys,R=N.freeze,C=(a=[])=>N.fromEntries(a),S=(...a)=>N.assign({},...a),D=(a,t)=>d(N.entries(a),(([a,e])=>t(e,a))),I=a=>N.values(a),g=a=>T(O(a)),b=a=>(a=>r(a,N)&&a.constructor==N)(a)&&0==g(a),F=a=>new Map(a),M=a=>[...a?.keys()??[]],$=(a,t)=>a?.get(t),P=(a,t)=>d([...a?.entries()??[]],(([a,e])=>t(e,a))),_=(a,t,e)=>w(e)?(h(a,t),a):a?.set(t,e),B=(a,t,e)=>(p(a,t)||_(a,t,e()),$(a,t)),W=(a,t,e,s=_)=>(D(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!w(((a,t)=>l(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),H=a=>new Set(Array.isArray(a)||w(a)?a:[a]),j=(a,t)=>a?.add(t),x="_",U="_id",k=a=>`"${a.replace(/"/g,'""')}"`,J="FROM pragma_table_",Y="WHERE",q=(a,t,s)=>{const n=F();return[async()=>W(n,C(await E(d(await a("SELECT name "+J+"list WHERE schema='main'AND type='table'AND name IN("+G(t)+")",t),(async({name:t})=>[t,C(d(await a("SELECT name,type "+J+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>_(n,t,W(B(n,t,F),e,((a,t,e)=>{e!=$(a,t)&&_(a,t,e)}),((a,t)=>_(a,t))))),((a,t)=>_(n,t))),async(t,e)=>((a,t)=>!w($($(n,a),t)))(t,e)?C(v(d(await a("SELECT*FROM"+k(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!w(a)&&!b(t)))):{},async(t,s,i,c,o,r=!1)=>{const l=H();D(i??{},(a=>d(O(a??{}),(a=>j(l,a)))));const y=f(l);if(!r&&o&&m(y)&&p(n,t))return await a("DROP TABLE"+k(t)),void _(n,t);if(m(y)||p(n,t)){const e=$(n,t),i=H(M(e));await E([...d(y,(async s=>{h(i,s)||(await a(`ALTER TABLE${k(t)}ADD${k(s)}`),_(e,s,""))})),...!r&&c?d(f(i),(async n=>{n!=s&&(await a(`ALTER TABLE${k(t)}DROP${k(n)}`),_(e,n))})):[]])}else await a(`CREATE TABLE${k(t)}(${k(s)} PRIMARY KEY ON CONFLICT REPLACE${u(d(y,(a=>e+k(a))))});`),_(n,t,F([[s,""],...d(y,(a=>[a,""]))]));if(r)w(i)?await a("DELETE FROM"+k(t)+"WHERE 1"):await E(D(i,(async(e,n)=>{w(e)?await a("DELETE FROM"+k(t)+Y+k(s)+"=?",[n]):m(y)||await z(a,t,s,O(e),[n,...I(e)])})));else if(m(y))p(n,t)&&await a("DELETE FROM"+k(t)+"WHERE 1");else{const e=v(M($(n,t)),(a=>a!=s)),c=[],o=[];D(i??{},((a,t)=>{L(c,t,...d(e,(t=>a?.[t]))),L(o,t)})),await z(a,t,s,e,c),await a("DELETE FROM"+k(t)+Y+k(s)+"NOT IN("+G(o)+")",o)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},z=async(a,t,s,i,c)=>await a("INSERT INTO"+k(t)+"("+k(s)+u(d(i,(a=>e+k(a))))+")VALUES"+n(`,(?${n(",?",T(i))})`,T(c)/(T(i)+1)).substring(1)+"ON CONFLICT("+k(s)+")DO UPDATE SET"+u(d(i,(a=>k(a)+"=excluded."+k(a))),e),c),G=a=>u(d(a,(()=>"?")),e),K=JSON.parse,V=F(),Q=F(),X=(a,t,e,s,n,i,c=[])=>{let o,r,y,E=0,u=0;B(V,c,(()=>0)),B(Q,c,(()=>[]));const d=async a=>(2!=E&&(E=1,await T.schedule((async()=>{await a(),E=0}))),T),T={load:async(e,s)=>await d((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(T.stopAutoLoad(),await T.load(e,n),u=1,y=s((async(e,s)=>{if(s){const t=s();await d((async()=>a.setTransactionChanges(t)))}else await d((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),T),stopAutoLoad:()=>(u&&(n(y),y=void 0,u=0),T),save:async t=>(1!=E&&(E=2,await T.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}E=0}))),T),startAutoSave:async()=>(await T.stopAutoSave().save(),o=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();b(e)&&b(s)||T.save((()=>[e,s]))})),T),stopAutoSave:()=>(l(o,a.delListener),T),schedule:async(...a)=>(L($(Q,c),...a),await(async()=>{if(!$(V,c)){for(_(V,c,1);!w((a=$(Q,c),r=a.shift()));)try{await r()}catch(a){i?.(a)}_(V,c,0)}var a})(),T),getStore:()=>a,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return R(T)},Z="store",aa=(a,t,e,s,n,[i],c,o)=>{const[w,l,y,E]=q(t,c,n);return X(a,(async()=>await E((async()=>(await w(),K((await l(i,U))[x]?.[Z]??"null"))))),(async a=>await E((async()=>{var t;await w(),await y(i,U,{[x]:{[Z]:(t=a()??null,JSON.stringify(t,((a,t)=>r(t,Map)?N.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,o)},ta=(a,t,e,s,n,[i,c,[o,r,l]],y,u)=>{const[d,T,m,A]=q(t,y,n),L=async(a,t)=>await E(P(c,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await m(e,s,o,n,i,t)}))),p=async(a,t)=>r?await m(l,U,{[x]:a},!0,!0,t):null;return X(a,(async()=>await A((async()=>{await d();const a=await(async()=>C(v(await E(P(i,(async([a,t],e)=>[a,await T(e,t)]))),(a=>!b(a[1])))))(),t=await(async()=>o?(await T(l,U))[x]:{})();return b(a)&&w(t)?void 0:[a,t]}))),(async(a,t)=>await A((async()=>{if(await d(),w(t)){const[t,e]=a();await L(t),await p(e)}else{const[a,e]=t();await L(a,!0),await p(e,!0)}}))),e,s,n,u)},ea="json",sa="autoLoadIntervalSeconds",na="rowIdColumnName",ia="tableId",ca="tableName",oa={mode:ea,[sa]:1},ra={load:0,save:0,[ca]:t+"_values"},wa=(a,t,e,s)=>{const n=F();return D(a,((a,i)=>{const c=A(I(S(t,y(a)?{[e]:a}:a)),0,g(t));w(c[0])||s(i,c[0])||_(n,i,c)})),n},la="pragma ",ya="data_version",Ea="schema_version",ua=(a,e,s,n,i,r,w,l)=>{let E,u;const[d,T,m,v]=(a=>{const e=(a=>S(oa,y(a)?{storeTableName:a}:a??{}))(a),s=e[sa];if(e.mode==ea){const{storeTableName:a=t}=e;return[1,s,[a],H(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=e,o=A(I(S(ra,c)),0,g(ra)),r=o[2],w=H(r);return[0,s,[wa(n,{[ia]:null,[na]:U},ia,(a=>j(w,a)&&a==r)),wa(i,{[ca]:null,[na]:U,deleteEmptyColumns:0,deleteEmptyTable:0},ca,((a,t)=>j(w,t)&&t==r)),o],w]})(e);return(d?aa:ta)(a,r?async(a,t)=>(r(a,t),await s(a,t)):s,(a=>[c((async()=>{try{const t=(await s(la+ya))[0][ya],e=(await s(la+Ea))[0][Ea];t==(E??=t)&&e==(u??=e)||(a(),E=t,u=e)}catch{}}),1e3*T),n((t=>v.has(t)?a():0))]),(([a,t])=>{o(a),E=u=null,i(t)}),w,m,f(v),l)};exports.createCrSqliteWasmPersister=(a,t,e,s,n)=>ua(a,e,(async(a,e=[])=>await t.execO(a,e)),(a=>t.onUpdate(((t,e,s)=>a(s)))),(a=>a()),s,n,t);
1
+ "use strict";const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t)=>a.repeat(t),i=Promise,c=setInterval,o=clearInterval,r=(a,t)=>a instanceof t,w=a=>null==a,l=(a,t,e)=>w(a)?e?.():t(a),y=t=>a(t)==s,E=(a,t,e)=>a.slice(t,e),u=async a=>i.all(a),d=(a,t="")=>a.join(t),T=(a,t)=>a.map(t),m=a=>a.length,v=a=>0==m(a),A=(a,t)=>a.filter(t),L=(a,...t)=>a.push(...t),p=(a,t)=>a?.has(t)??!1,f=a=>[...a?.values()??[]],h=(a,t)=>a?.delete(t),N=Object,O=N.keys,R=N.freeze,C=(a=[])=>N.fromEntries(a),S=(...a)=>N.assign({},...a),D=(a,t)=>T(N.entries(a),(([a,e])=>t(e,a))),I=a=>N.values(a),g=a=>m(O(a)),b=a=>(a=>r(a,N)&&a.constructor==N)(a)&&0==g(a),F=a=>new Map(a),M=a=>[...a?.keys()??[]],$=(a,t)=>a?.get(t),P=(a,t)=>T([...a?.entries()??[]],(([a,e])=>t(e,a))),_=(a,t,e)=>w(e)?(h(a,t),a):a?.set(t,e),B=(a,t,e)=>(p(a,t)||_(a,t,e()),$(a,t)),W=(a,t,e,s=_)=>(D(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!w(((a,t)=>l(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),H=a=>new Set(Array.isArray(a)||w(a)?a:[a]),j=(a,t)=>a?.add(t),x="_",U="_id",k=a=>`"${a.replace(/"/g,'""')}"`,J="FROM pragma_table_",Y="WHERE",q=(a,t,s)=>{const n=F();return[async()=>W(n,C(await u(T(await a("SELECT name "+J+"list WHERE schema='main'AND type='table'AND name IN("+G(t)+")",t),(async({name:t})=>[t,C(T(await a("SELECT name,type "+J+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>_(n,t,W(B(n,t,F),e,((a,t,e)=>{e!=$(a,t)&&_(a,t,e)}),((a,t)=>_(a,t))))),((a,t)=>_(n,t))),async(t,e)=>((a,t)=>!w($($(n,a),t)))(t,e)?C(A(T(await a("SELECT*FROM"+k(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!w(a)&&!b(t)))):{},async(t,s,i,c,o,r=!1)=>{const l=H();D(i??{},(a=>T(O(a??{}),(a=>j(l,a)))));const y=f(l);if(!r&&o&&v(y)&&p(n,t))return await a("DROP TABLE"+k(t)),void _(n,t);if(v(y)||p(n,t)){const e=$(n,t),i=H(M(e));await u([...T(y,(async s=>{h(i,s)||(await a(`ALTER TABLE${k(t)}ADD${k(s)}`),_(e,s,""))})),...!r&&c?T(f(i),(async n=>{n!=s&&(await a(`ALTER TABLE${k(t)}DROP${k(n)}`),_(e,n))})):[]])}else await a(`CREATE TABLE${k(t)}(${k(s)} PRIMARY KEY ON CONFLICT REPLACE${d(T(y,(a=>e+k(a))))});`),_(n,t,F([[s,""],...T(y,(a=>[a,""]))]));if(r)w(i)?await a("DELETE FROM"+k(t)+"WHERE 1"):await u(D(i,(async(e,n)=>{w(e)?await a("DELETE FROM"+k(t)+Y+k(s)+"=?",[n]):v(y)||await z(a,t,s,O(e),[n,...I(e)])})));else if(v(y))p(n,t)&&await a("DELETE FROM"+k(t)+"WHERE 1");else{const e=A(M($(n,t)),(a=>a!=s)),c=[],o=[];D(i??{},((a,t)=>{L(c,t,...T(e,(t=>a?.[t]))),L(o,t)})),await z(a,t,s,e,c),await a("DELETE FROM"+k(t)+Y+k(s)+"NOT IN("+G(o)+")",o)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},z=async(a,t,s,i,c)=>await a("INSERT INTO"+k(t)+"("+k(s)+d(T(i,(a=>e+k(a))))+")VALUES"+E(n(`,(?${n(",?",m(i))})`,m(c)/(m(i)+1)),1)+"ON CONFLICT("+k(s)+")DO UPDATE SET"+d(T(i,(a=>k(a)+"=excluded."+k(a))),e),c),G=a=>d(T(a,(()=>"?")),e),K=JSON.parse,V=F(),Q=F(),X=(a,t,e,s,n,i,c=[])=>{let o,r,y,E=0,u=0;B(V,c,(()=>0)),B(Q,c,(()=>[]));const d=async a=>(2!=E&&(E=1,await T.schedule((async()=>{await a(),E=0}))),T),T={load:async(e,s)=>await d((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(T.stopAutoLoad(),await T.load(e,n),u=1,y=s((async(e,s)=>{if(s){const t=s();await d((async()=>a.setTransactionChanges(t)))}else await d((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),T),stopAutoLoad:()=>(u&&(n(y),y=void 0,u=0),T),save:async t=>(1!=E&&(E=2,await T.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}E=0}))),T),startAutoSave:async()=>(await T.stopAutoSave().save(),o=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();b(e)&&b(s)||T.save((()=>[e,s]))})),T),stopAutoSave:()=>(l(o,a.delListener),T),schedule:async(...a)=>(L($(Q,c),...a),await(async()=>{if(!$(V,c)){for(_(V,c,1);!w((a=$(Q,c),r=a.shift()));)try{await r()}catch(a){i?.(a)}_(V,c,0)}var a})(),T),getStore:()=>a,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return R(T)},Z="store",aa=(a,t,e,s,n,[i],c,o)=>{const[w,l,y,E]=q(t,c,n);return X(a,(async()=>await E((async()=>(await w(),K((await l(i,U))[x]?.[Z]??"null"))))),(async a=>await E((async()=>{var t;await w(),await y(i,U,{[x]:{[Z]:(t=a()??null,JSON.stringify(t,((a,t)=>r(t,Map)?N.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,o)},ta=(a,t,e,s,n,[i,c,[o,r,l]],y,E)=>{const[d,T,m,v]=q(t,y,n),L=async(a,t)=>await u(P(c,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await m(e,s,o,n,i,t)}))),p=async(a,t)=>r?await m(l,U,{[x]:a},!0,!0,t):null;return X(a,(async()=>await v((async()=>{await d();const a=await(async()=>C(A(await u(P(i,(async([a,t],e)=>[a,await T(e,t)]))),(a=>!b(a[1])))))(),t=await(async()=>o?(await T(l,U))[x]:{})();return b(a)&&w(t)?void 0:[a,t]}))),(async(a,t)=>await v((async()=>{if(await d(),w(t)){const[t,e]=a();await L(t),await p(e)}else{const[a,e]=t();await L(a,!0),await p(e,!0)}}))),e,s,n,E)},ea="json",sa="autoLoadIntervalSeconds",na="rowIdColumnName",ia="tableId",ca="tableName",oa={mode:ea,[sa]:1},ra={load:0,save:0,[ca]:t+"_values"},wa=(a,t,e,s)=>{const n=F();return D(a,((a,i)=>{const c=E(I(S(t,y(a)?{[e]:a}:a)),0,g(t));w(c[0])||s(i,c[0])||_(n,i,c)})),n},la="pragma ",ya="data_version",Ea="schema_version",ua=(a,e,s,n,i,r,w,l)=>{let u,d;const[T,m,v,A]=(a=>{const e=(a=>S(oa,y(a)?{storeTableName:a}:a??{}))(a),s=e[sa];if(e.mode==ea){const{storeTableName:a=t}=e;return[1,s,[a],H(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=e,o=E(I(S(ra,c)),0,g(ra)),r=o[2],w=H(r);return[0,s,[wa(n,{[ia]:null,[na]:U},ia,(a=>j(w,a)&&a==r)),wa(i,{[ca]:null,[na]:U,deleteEmptyColumns:0,deleteEmptyTable:0},ca,((a,t)=>j(w,t)&&t==r)),o],w]})(e);return(T?aa:ta)(a,r?async(a,t)=>(r(a,t),await s(a,t)):s,(a=>[c((async()=>{try{const t=(await s(la+ya))[0][ya],e=(await s(la+Ea))[0][Ea];t==(u??=t)&&e==(d??=e)||(a(),u=t,d=e)}catch{}}),1e3*m),n((t=>A.has(t)?a():0))]),(([a,t])=>{o(a),u=d=null,i(t)}),w,v,f(A),l)};exports.createCrSqliteWasmPersister=(a,t,e,s,n)=>ua(a,e,(async(a,e=[])=>await t.execO(a,e)),(a=>t.onUpdate(((t,e,s)=>a(s)))),(a=>a()),s,n,t);
@@ -1 +1 @@
1
- "use strict";const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t)=>a.repeat(t),i=Promise,c=setInterval,o=clearInterval,r=(a,t)=>a instanceof t,l=a=>null==a,w=(a,t,e)=>l(a)?e?.():t(a),y=t=>a(t)==s,E=async a=>i.all(a),u=(a,t="")=>a.join(t),d=(a,t)=>a.map(t),m=a=>a.length,v=a=>0==m(a),T=(a,t)=>a.filter(t),A=(a,t,e)=>a.slice(t,e),L=(a,...t)=>a.push(...t),p=(a,t)=>a?.has(t)??!1,h=a=>[...a?.values()??[]],N=(a,t)=>a?.delete(t),f=Object,R=f.keys,O=f.freeze,C=(a=[])=>f.fromEntries(a),S=(...a)=>f.assign({},...a),D=(a,t)=>d(f.entries(a),(([a,e])=>t(e,a))),g=a=>f.values(a),b=a=>m(R(a)),I=a=>(a=>r(a,f)&&a.constructor==f)(a)&&0==b(a),F=a=>new Map(a),M=a=>[...a?.keys()??[]],$=(a,t)=>a?.get(t),P=(a,t)=>d([...a?.entries()??[]],(([a,e])=>t(e,a))),_=(a,t,e)=>l(e)?(N(a,t),a):a?.set(t,e),B=(a,t,e)=>(p(a,t)||_(a,t,e()),$(a,t)),x=(a,t,e,s=_)=>(D(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!l(((a,t)=>w(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),H=a=>new Set(Array.isArray(a)||l(a)?a:[a]),W=(a,t)=>a?.add(t),j="_",k="_id",q=a=>`"${a.replace(/"/g,'""')}"`,J="FROM pragma_table_",U="WHERE",Y=(a,t,s)=>{const n=F();return[async()=>x(n,C(await E(d(await a("SELECT name "+J+"list WHERE schema='main'AND type='table'AND name IN("+G(t)+")",t),(async({name:t})=>[t,C(d(await a("SELECT name,type "+J+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>_(n,t,x(B(n,t,F),e,((a,t,e)=>{e!=$(a,t)&&_(a,t,e)}),((a,t)=>_(a,t))))),((a,t)=>_(n,t))),async(t,e)=>((a,t)=>!l($($(n,a),t)))(t,e)?C(T(d(await a("SELECT*FROM"+q(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!l(a)&&!I(t)))):{},async(t,s,i,c,o,r=!1)=>{const w=H();D(i??{},(a=>d(R(a??{}),(a=>W(w,a)))));const y=h(w);if(!r&&o&&v(y)&&p(n,t))return await a("DROP TABLE"+q(t)),void _(n,t);if(v(y)||p(n,t)){const e=$(n,t),i=H(M(e));await E([...d(y,(async s=>{N(i,s)||(await a(`ALTER TABLE${q(t)}ADD${q(s)}`),_(e,s,""))})),...!r&&c?d(h(i),(async n=>{n!=s&&(await a(`ALTER TABLE${q(t)}DROP${q(n)}`),_(e,n))})):[]])}else await a(`CREATE TABLE${q(t)}(${q(s)} PRIMARY KEY ON CONFLICT REPLACE${u(d(y,(a=>e+q(a))))});`),_(n,t,F([[s,""],...d(y,(a=>[a,""]))]));if(r)l(i)?await a("DELETE FROM"+q(t)+"WHERE 1"):await E(D(i,(async(e,n)=>{l(e)?await a("DELETE FROM"+q(t)+U+q(s)+"=?",[n]):v(y)||await z(a,t,s,R(e),[n,...g(e)])})));else if(v(y))p(n,t)&&await a("DELETE FROM"+q(t)+"WHERE 1");else{const e=T(M($(n,t)),(a=>a!=s)),c=[],o=[];D(i??{},((a,t)=>{L(c,t,...d(e,(t=>a?.[t]))),L(o,t)})),await z(a,t,s,e,c),await a("DELETE FROM"+q(t)+U+q(s)+"NOT IN("+G(o)+")",o)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},z=async(a,t,s,i,c)=>await a("INSERT INTO"+q(t)+"("+q(s)+u(d(i,(a=>e+q(a))))+")VALUES"+n(`,(?${n(",?",m(i))})`,m(c)/(m(i)+1)).substring(1)+"ON CONFLICT("+q(s)+")DO UPDATE SET"+u(d(i,(a=>q(a)+"=excluded."+q(a))),e),c),G=a=>u(d(a,(()=>"?")),e),K=JSON.parse,V=F(),Q=F(),X=(a,t,e,s,n,i,c=[])=>{let o,r,y,E=0,u=0;B(V,c,(()=>0)),B(Q,c,(()=>[]));const d=async a=>(2!=E&&(E=1,await m.schedule((async()=>{await a(),E=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),u=1,y=s((async(e,s)=>{if(s){const t=s();await d((async()=>a.setTransactionChanges(t)))}else await d((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),m),stopAutoLoad:()=>(u&&(n(y),y=void 0,u=0),m),save:async t=>(1!=E&&(E=2,await m.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}E=0}))),m),startAutoSave:async()=>(await m.stopAutoSave().save(),o=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();I(e)&&I(s)||m.save((()=>[e,s]))})),m),stopAutoSave:()=>(w(o,a.delListener),m),schedule:async(...a)=>(L($(Q,c),...a),await(async()=>{if(!$(V,c)){for(_(V,c,1);!l((a=$(Q,c),r=a.shift()));)try{await r()}catch(a){i?.(a)}_(V,c,0)}var a})(),m),getStore:()=>a,destroy:()=>m.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return O(m)},Z="store",aa=(a,t,e,s,n,[i],c,o)=>{const[l,w,y,E]=Y(t,c,n);return X(a,(async()=>await E((async()=>(await l(),K((await w(i,k))[j]?.[Z]??"null"))))),(async a=>await E((async()=>{var t;await l(),await y(i,k,{[j]:{[Z]:(t=a()??null,JSON.stringify(t,((a,t)=>r(t,Map)?f.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,o)},ta=(a,t,e,s,n,[i,c,[o,r,w]],y,u)=>{const[d,m,v,A]=Y(t,y,n),L=async(a,t)=>await E(P(c,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await v(e,s,o,n,i,t)}))),p=async(a,t)=>r?await v(w,k,{[j]:a},!0,!0,t):null;return X(a,(async()=>await A((async()=>{await d();const a=await(async()=>C(T(await E(P(i,(async([a,t],e)=>[a,await m(e,t)]))),(a=>!I(a[1])))))(),t=await(async()=>o?(await m(w,k))[j]:{})();return I(a)&&l(t)?void 0:[a,t]}))),(async(a,t)=>await A((async()=>{if(await d(),l(t)){const[t,e]=a();await L(t),await p(e)}else{const[a,e]=t();await L(a,!0),await p(e,!0)}}))),e,s,n,u)},ea="json",sa="autoLoadIntervalSeconds",na="rowIdColumnName",ia="tableId",ca="tableName",oa={mode:ea,[sa]:1},ra={load:0,save:0,[ca]:t+"_values"},la=(a,t,e,s)=>{const n=F();return D(a,((a,i)=>{const c=A(g(S(t,y(a)?{[e]:a}:a)),0,b(t));l(c[0])||s(i,c[0])||_(n,i,c)})),n},wa="pragma ",ya="data_version",Ea="schema_version",ua=(a,e,s,n,i,r,l,w)=>{let E,u;const[d,m,v,T]=(a=>{const e=(a=>S(oa,y(a)?{storeTableName:a}:a??{}))(a),s=e[sa];if(e.mode==ea){const{storeTableName:a=t}=e;return[1,s,[a],H(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=e,o=A(g(S(ra,c)),0,b(ra)),r=o[2],l=H(r);return[0,s,[la(n,{[ia]:null,[na]:k},ia,(a=>W(l,a)&&a==r)),la(i,{[ca]:null,[na]:k,deleteEmptyColumns:0,deleteEmptyTable:0},ca,((a,t)=>W(l,t)&&t==r)),o],l]})(e);return(d?aa:ta)(a,r?async(a,t)=>(r(a,t),await s(a,t)):s,(a=>[c((async()=>{try{const t=(await s(wa+ya))[0][ya],e=(await s(wa+Ea))[0][Ea];t==(E??=t)&&e==(u??=e)||(a(),E=t,u=e)}catch{}}),1e3*m),n((t=>T.has(t)?a():0))]),(([a,t])=>{o(a),E=u=null,i(t)}),l,v,h(T),w)};exports.createExpoSqlitePersister=(a,t,e,s,n)=>ua(a,e,(async(a,e=[])=>(await t.execAsync([{sql:a,args:e}],!1))[0].rows),(a=>t.onDatabaseChange((({tableName:t})=>a(t)))),(a=>a.remove()),s,n,t);
1
+ "use strict";const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t)=>a.repeat(t),i=Promise,c=setInterval,o=clearInterval,r=(a,t)=>a instanceof t,l=a=>null==a,w=(a,t,e)=>l(a)?e?.():t(a),y=t=>a(t)==s,E=(a,t,e)=>a.slice(t,e),u=async a=>i.all(a),d=(a,t="")=>a.join(t),m=(a,t)=>a.map(t),v=a=>a.length,T=a=>0==v(a),A=(a,t)=>a.filter(t),L=(a,...t)=>a.push(...t),p=(a,t)=>a?.has(t)??!1,h=a=>[...a?.values()??[]],N=(a,t)=>a?.delete(t),f=Object,R=f.keys,O=f.freeze,C=(a=[])=>f.fromEntries(a),S=(...a)=>f.assign({},...a),D=(a,t)=>m(f.entries(a),(([a,e])=>t(e,a))),g=a=>f.values(a),I=a=>v(R(a)),b=a=>(a=>r(a,f)&&a.constructor==f)(a)&&0==I(a),F=a=>new Map(a),M=a=>[...a?.keys()??[]],$=(a,t)=>a?.get(t),P=(a,t)=>m([...a?.entries()??[]],(([a,e])=>t(e,a))),_=(a,t,e)=>l(e)?(N(a,t),a):a?.set(t,e),B=(a,t,e)=>(p(a,t)||_(a,t,e()),$(a,t)),x=(a,t,e,s=_)=>(D(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!l(((a,t)=>w(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),H=a=>new Set(Array.isArray(a)||l(a)?a:[a]),W=(a,t)=>a?.add(t),j="_",k="_id",q=a=>`"${a.replace(/"/g,'""')}"`,J="FROM pragma_table_",U="WHERE",Y=(a,t,s)=>{const n=F();return[async()=>x(n,C(await u(m(await a("SELECT name "+J+"list WHERE schema='main'AND type='table'AND name IN("+G(t)+")",t),(async({name:t})=>[t,C(m(await a("SELECT name,type "+J+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>_(n,t,x(B(n,t,F),e,((a,t,e)=>{e!=$(a,t)&&_(a,t,e)}),((a,t)=>_(a,t))))),((a,t)=>_(n,t))),async(t,e)=>((a,t)=>!l($($(n,a),t)))(t,e)?C(A(m(await a("SELECT*FROM"+q(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!l(a)&&!b(t)))):{},async(t,s,i,c,o,r=!1)=>{const w=H();D(i??{},(a=>m(R(a??{}),(a=>W(w,a)))));const y=h(w);if(!r&&o&&T(y)&&p(n,t))return await a("DROP TABLE"+q(t)),void _(n,t);if(T(y)||p(n,t)){const e=$(n,t),i=H(M(e));await u([...m(y,(async s=>{N(i,s)||(await a(`ALTER TABLE${q(t)}ADD${q(s)}`),_(e,s,""))})),...!r&&c?m(h(i),(async n=>{n!=s&&(await a(`ALTER TABLE${q(t)}DROP${q(n)}`),_(e,n))})):[]])}else await a(`CREATE TABLE${q(t)}(${q(s)} PRIMARY KEY ON CONFLICT REPLACE${d(m(y,(a=>e+q(a))))});`),_(n,t,F([[s,""],...m(y,(a=>[a,""]))]));if(r)l(i)?await a("DELETE FROM"+q(t)+"WHERE 1"):await u(D(i,(async(e,n)=>{l(e)?await a("DELETE FROM"+q(t)+U+q(s)+"=?",[n]):T(y)||await z(a,t,s,R(e),[n,...g(e)])})));else if(T(y))p(n,t)&&await a("DELETE FROM"+q(t)+"WHERE 1");else{const e=A(M($(n,t)),(a=>a!=s)),c=[],o=[];D(i??{},((a,t)=>{L(c,t,...m(e,(t=>a?.[t]))),L(o,t)})),await z(a,t,s,e,c),await a("DELETE FROM"+q(t)+U+q(s)+"NOT IN("+G(o)+")",o)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},z=async(a,t,s,i,c)=>await a("INSERT INTO"+q(t)+"("+q(s)+d(m(i,(a=>e+q(a))))+")VALUES"+E(n(`,(?${n(",?",v(i))})`,v(c)/(v(i)+1)),1)+"ON CONFLICT("+q(s)+")DO UPDATE SET"+d(m(i,(a=>q(a)+"=excluded."+q(a))),e),c),G=a=>d(m(a,(()=>"?")),e),K=JSON.parse,V=F(),Q=F(),X=(a,t,e,s,n,i,c=[])=>{let o,r,y,E=0,u=0;B(V,c,(()=>0)),B(Q,c,(()=>[]));const d=async a=>(2!=E&&(E=1,await m.schedule((async()=>{await a(),E=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),u=1,y=s((async(e,s)=>{if(s){const t=s();await d((async()=>a.setTransactionChanges(t)))}else await d((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),m),stopAutoLoad:()=>(u&&(n(y),y=void 0,u=0),m),save:async t=>(1!=E&&(E=2,await m.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}E=0}))),m),startAutoSave:async()=>(await m.stopAutoSave().save(),o=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();b(e)&&b(s)||m.save((()=>[e,s]))})),m),stopAutoSave:()=>(w(o,a.delListener),m),schedule:async(...a)=>(L($(Q,c),...a),await(async()=>{if(!$(V,c)){for(_(V,c,1);!l((a=$(Q,c),r=a.shift()));)try{await r()}catch(a){i?.(a)}_(V,c,0)}var a})(),m),getStore:()=>a,destroy:()=>m.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return O(m)},Z="store",aa=(a,t,e,s,n,[i],c,o)=>{const[l,w,y,E]=Y(t,c,n);return X(a,(async()=>await E((async()=>(await l(),K((await w(i,k))[j]?.[Z]??"null"))))),(async a=>await E((async()=>{var t;await l(),await y(i,k,{[j]:{[Z]:(t=a()??null,JSON.stringify(t,((a,t)=>r(t,Map)?f.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,o)},ta=(a,t,e,s,n,[i,c,[o,r,w]],y,E)=>{const[d,m,v,T]=Y(t,y,n),L=async(a,t)=>await u(P(c,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await v(e,s,o,n,i,t)}))),p=async(a,t)=>r?await v(w,k,{[j]:a},!0,!0,t):null;return X(a,(async()=>await T((async()=>{await d();const a=await(async()=>C(A(await u(P(i,(async([a,t],e)=>[a,await m(e,t)]))),(a=>!b(a[1])))))(),t=await(async()=>o?(await m(w,k))[j]:{})();return b(a)&&l(t)?void 0:[a,t]}))),(async(a,t)=>await T((async()=>{if(await d(),l(t)){const[t,e]=a();await L(t),await p(e)}else{const[a,e]=t();await L(a,!0),await p(e,!0)}}))),e,s,n,E)},ea="json",sa="autoLoadIntervalSeconds",na="rowIdColumnName",ia="tableId",ca="tableName",oa={mode:ea,[sa]:1},ra={load:0,save:0,[ca]:t+"_values"},la=(a,t,e,s)=>{const n=F();return D(a,((a,i)=>{const c=E(g(S(t,y(a)?{[e]:a}:a)),0,I(t));l(c[0])||s(i,c[0])||_(n,i,c)})),n},wa="pragma ",ya="data_version",Ea="schema_version",ua=(a,e,s,n,i,r,l,w)=>{let u,d;const[m,v,T,A]=(a=>{const e=(a=>S(oa,y(a)?{storeTableName:a}:a??{}))(a),s=e[sa];if(e.mode==ea){const{storeTableName:a=t}=e;return[1,s,[a],H(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=e,o=E(g(S(ra,c)),0,I(ra)),r=o[2],l=H(r);return[0,s,[la(n,{[ia]:null,[na]:k},ia,(a=>W(l,a)&&a==r)),la(i,{[ca]:null,[na]:k,deleteEmptyColumns:0,deleteEmptyTable:0},ca,((a,t)=>W(l,t)&&t==r)),o],l]})(e);return(m?aa:ta)(a,r?async(a,t)=>(r(a,t),await s(a,t)):s,(a=>[c((async()=>{try{const t=(await s(wa+ya))[0][ya],e=(await s(wa+Ea))[0][Ea];t==(u??=t)&&e==(d??=e)||(a(),u=t,d=e)}catch{}}),1e3*v),n((t=>A.has(t)?a():0))]),(([a,t])=>{o(a),u=d=null,i(t)}),l,T,h(A),w)};exports.createExpoSqlitePersister=(a,t,e,s,n)=>ua(a,e,(async(a,e=[])=>(await t.execAsync([{sql:a,args:e}],!1))[0].rows),(a=>t.onDatabaseChange((({tableName:t})=>a(t)))),(a=>a.remove()),s,n,t);
@@ -0,0 +1 @@
1
+ "use strict";const t=t=>typeof t,a=t(""),e=(t,a)=>t instanceof a,s=t=>null==t,n=Object,o=n.keys,r=n.freeze,c=t=>(t=>e(t,n)&&t.constructor==n)(t)&&0==(t=>o(t).length)(t),i=t=>JSON.stringify(t,((t,a)=>e(a,Map)?n.fromEntries([...a]):a)),y=JSON.parse,d=t=>new Map(t),u=(t,a)=>t?.get(a),h=(t,a,e)=>{return s(e)?(n=t,o=a,n?.delete(o),t):t?.set(a,e);var n,o},v=(t,a,e)=>{var s,n;return s=t,n=a,s?.has(n)||h(t,a,e()),u(t,a)},w=d(),p=d(),l="message";exports.createPartyKitPersister=(e,n,o="https",d)=>{const{host:f,room:S}=n.partySocketOptions,g=o+"://"+f+"/parties/"+(n.name??"main")+"/"+S+"/store",m=async t=>await(await fetch(g,{...t?{method:"PUT",body:i(t)}:{},mode:"cors",cache:"no-store"})).json();return((t,a,e,n,o,i,y=[])=>{let d,l,f,S=0,g=0;v(w,y,(()=>0)),v(p,y,(()=>[]));const m=async t=>(2!=S&&(S=1,await A.schedule((async()=>{await t(),S=0}))),A),A={load:async(e,s)=>await m((async()=>{try{t.setContent(await a())}catch{t.setContent([e,s])}})),startAutoLoad:async(e={},s={})=>(A.stopAutoLoad(),await A.load(e,s),g=1,f=n((async(e,s)=>{if(s){const a=s();await m((async()=>t.setTransactionChanges(a)))}else await m((async()=>{try{t.setContent(e?.()??await a())}catch(t){i?.(t)}}))})),A),stopAutoLoad:()=>(g&&(o(f),f=void 0,g=0),A),save:async a=>(1!=S&&(S=2,await A.schedule((async()=>{try{await e(t.getContent,a)}catch(t){i?.(t)}S=0}))),A),startAutoSave:async()=>(await A.stopAutoSave().save(),d=t.addDidFinishTransactionListener(((t,a)=>{const[e,s]=a();c(e)&&c(s)||A.save((()=>[e,s]))})),A),stopAutoSave:()=>{var a,e;return a=d,e=t.delListener,s(a)||e(a),A},schedule:async(...t)=>(((t,...a)=>{t.push(...a)})(u(p,y),...t),await(async()=>{if(!u(w,y)){for(h(w,y,1);!s((t=u(p,y),l=t.shift()));)try{await l()}catch(t){i?.(t)}h(w,y,0)}var t})(),A),getStore:()=>t,destroy:()=>A.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return r(A)})(e,(async()=>await m()),(async(e,s)=>{var o;s?n.send(("s",o=s(),"s"+(t(o)==a?o:i(o)))):await m(e())}),(t=>{const a=a=>{const[e,s]=[(c=a.data)[0],y((n=c,o=1,n.slice(o,r)))];var n,o,r,c;"s"==e&&t(void 0,(()=>s))};return n.addEventListener(l,a),a}),(t=>{n.removeEventListener(l,t)}),d)};
@@ -0,0 +1 @@
1
+ "use strict";const t=t=>typeof t,s=t(""),a="t",e=Promise,r=t=>null==t,i=(t,s,a)=>t.slice(s,a),n=(t,s)=>t.map(s),o=(t,...s)=>t.push(...s),c=Object,l=(t=[])=>c.fromEntries(t),y=(t,s)=>n(c.entries(t),(([t,a])=>s(a,t))),h=(t,s,a)=>(((t,s)=>!r(((t,s)=>{return e=t=>t[s],r(a=t)?void 0:e(a);var a,e})(t,s)))(t,s)||(t[s]=a()),t[s]),u=t=>JSON.stringify(t,((t,s)=>s instanceof Map?c.fromEntries([...s]):s)),p=JSON.parse,w=(t,s)=>[t[0],s?p(i(t,1)):i(t,1)],d=(t,s)=>((t,s)=>t?.forEach(s))(t,((t,a)=>s(a,t))),f="hasStore",g=l(n(["Origin","Methods","Headers"],(t=>["Access-Control-Allow-"+t,"*"]))),v=async t=>await t.get(f),m=async(t,s)=>{const i=[t.put(f,1)],n=[];y(s[0],((s,e)=>r(s)?((t,...s)=>t.unshift(...s))(n,O(a,e)):y(s,((s,c)=>r(s)?o(n,O(a,e,c)):y(s,((s,r)=>S(i,t,O(a,e,c,r),s))))))),y(s[1],((s,a)=>S(i,t,"v"+a,s))),0!=n.length&&d(await t.list(),(s=>n.every((a=>!s.startsWith(a)||S(i,t,s)&&!1)))),await(async t=>e.all(t))(i)},O=(t,...s)=>t+i(u(s),1,-1),S=(t,s,a,e)=>o(t,r(e)?s.delete(a):s.put(a,e)),E=(t,s=null)=>new Response(s,{status:t,headers:g});exports.TinyBasePartyKitServer=class{constructor(t){this.party=t}async onRequest(t){const s=this.party.storage;if(t.url.endsWith("/store")){const e=await v(s),r=await t.text();return"PUT"==t.method?e?E(205):(await m(this.party.storage,p(r)),E(201)):E(200,e?u(await(async t=>{const s={},e={};return d(await t.list(),((t,r)=>{const[i,n]=w(t);if(i==a){const[t,a,e]=p("["+n+"]");h(h(s,t,l),a,l)[e]=r}else"v"==i&&(e[n]=r)})),[s,e]})(s)):"")}return E(404)}async onMessage(a,e){const r=this.party.storage,[i,n]=w(a,1);"s"==i&&await v(r)&&(await m(r,n),this.party.broadcast(((a,e)=>"s"+(t(e)==s?e:u(e)))(0,n),[e.id]))}};
@@ -1 +1 @@
1
- "use strict";const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t)=>a.repeat(t),i=Promise,c=setInterval,o=clearInterval,r=(a,t)=>a instanceof t,l=a=>null==a,w=(a,t,e)=>l(a)?e?.():t(a),y=t=>a(t)==s,E=async a=>i.all(a),u=(a,t="")=>a.join(t),d=(a,t)=>a.map(t),p=a=>a.length,m=a=>0==p(a),T=(a,t)=>a.filter(t),v=(a,t,e)=>a.slice(t,e),A=(a,...t)=>a.push(...t),L=(a,t)=>a?.has(t)??!1,h=a=>[...a?.values()??[]],R=(a,t)=>a?.delete(t),f=Object,N=f.keys,O=f.freeze,S=(a=[])=>f.fromEntries(a),C=(...a)=>f.assign({},...a),D=(a,t)=>d(f.entries(a),(([a,e])=>t(e,a))),b=a=>f.values(a),I=a=>p(N(a)),g=a=>(a=>r(a,f)&&a.constructor==f)(a)&&0==I(a),_=a=>new Map(a),M=a=>[...a?.keys()??[]],F=(a,t)=>a?.get(t),$=(a,t)=>d([...a?.entries()??[]],(([a,e])=>t(e,a))),P=(a,t,e)=>l(e)?(R(a,t),a):a?.set(t,e),B=(a,t,e)=>(L(a,t)||P(a,t,e()),F(a,t)),W=(a,t,e,s=P)=>(D(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!l(((a,t)=>w(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),j=a=>new Set(Array.isArray(a)||l(a)?a:[a]),k=(a,t)=>a?.add(t),H="_",q="_id",x=a=>`"${a.replace(/"/g,'""')}"`,J="FROM pragma_table_",U="WHERE",V=(a,t,s)=>{const n=_();return[async()=>W(n,S(await E(d(await a("SELECT name "+J+"list WHERE schema='main'AND type='table'AND name IN("+z(t)+")",t),(async({name:t})=>[t,S(d(await a("SELECT name,type "+J+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>P(n,t,W(B(n,t,_),e,((a,t,e)=>{e!=F(a,t)&&P(a,t,e)}),((a,t)=>P(a,t))))),((a,t)=>P(n,t))),async(t,e)=>((a,t)=>!l(F(F(n,a),t)))(t,e)?S(T(d(await a("SELECT*FROM"+x(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!l(a)&&!g(t)))):{},async(t,s,i,c,o,r=!1)=>{const w=j();D(i??{},(a=>d(N(a??{}),(a=>k(w,a)))));const y=h(w);if(!r&&o&&m(y)&&L(n,t))return await a("DROP TABLE"+x(t)),void P(n,t);if(m(y)||L(n,t)){const e=F(n,t),i=j(M(e));await E([...d(y,(async s=>{R(i,s)||(await a(`ALTER TABLE${x(t)}ADD${x(s)}`),P(e,s,""))})),...!r&&c?d(h(i),(async n=>{n!=s&&(await a(`ALTER TABLE${x(t)}DROP${x(n)}`),P(e,n))})):[]])}else await a(`CREATE TABLE${x(t)}(${x(s)} PRIMARY KEY ON CONFLICT REPLACE${u(d(y,(a=>e+x(a))))});`),P(n,t,_([[s,""],...d(y,(a=>[a,""]))]));if(r)l(i)?await a("DELETE FROM"+x(t)+"WHERE 1"):await E(D(i,(async(e,n)=>{l(e)?await a("DELETE FROM"+x(t)+U+x(s)+"=?",[n]):m(y)||await Y(a,t,s,N(e),[n,...b(e)])})));else if(m(y))L(n,t)&&await a("DELETE FROM"+x(t)+"WHERE 1");else{const e=T(M(F(n,t)),(a=>a!=s)),c=[],o=[];D(i??{},((a,t)=>{A(c,t,...d(e,(t=>a?.[t]))),A(o,t)})),await Y(a,t,s,e,c),await a("DELETE FROM"+x(t)+U+x(s)+"NOT IN("+z(o)+")",o)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},Y=async(a,t,s,i,c)=>await a("INSERT INTO"+x(t)+"("+x(s)+u(d(i,(a=>e+x(a))))+")VALUES"+n(`,(?${n(",?",p(i))})`,p(c)/(p(i)+1)).substring(1)+"ON CONFLICT("+x(s)+")DO UPDATE SET"+u(d(i,(a=>x(a)+"=excluded."+x(a))),e),c),z=a=>u(d(a,(()=>"?")),e),G=JSON.parse,K=_(),Q=_(),X=(a,t,e,s,n,i,c=[])=>{let o,r,y,E=0,u=0;B(K,c,(()=>0)),B(Q,c,(()=>[]));const d=async a=>(2!=E&&(E=1,await p.schedule((async()=>{await a(),E=0}))),p),p={load:async(e,s)=>await d((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(p.stopAutoLoad(),await p.load(e,n),u=1,y=s((async(e,s)=>{if(s){const t=s();await d((async()=>a.setTransactionChanges(t)))}else await d((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),p),stopAutoLoad:()=>(u&&(n(y),y=void 0,u=0),p),save:async t=>(1!=E&&(E=2,await p.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}E=0}))),p),startAutoSave:async()=>(await p.stopAutoSave().save(),o=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();g(e)&&g(s)||p.save((()=>[e,s]))})),p),stopAutoSave:()=>(w(o,a.delListener),p),schedule:async(...a)=>(A(F(Q,c),...a),await(async()=>{if(!F(K,c)){for(P(K,c,1);!l((a=F(Q,c),r=a.shift()));)try{await r()}catch(a){i?.(a)}P(K,c,0)}var a})(),p),getStore:()=>a,destroy:()=>p.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return O(p)},Z="store",aa=(a,t,e,s,n,[i],c,o)=>{const[l,w,y,E]=V(t,c,n);return X(a,(async()=>await E((async()=>(await l(),G((await w(i,q))[H]?.[Z]??"null"))))),(async a=>await E((async()=>{var t;await l(),await y(i,q,{[H]:{[Z]:(t=a()??null,JSON.stringify(t,((a,t)=>r(t,Map)?f.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,o)},ta=(a,t,e,s,n,[i,c,[o,r,w]],y,u)=>{const[d,p,m,v]=V(t,y,n),A=async(a,t)=>await E($(c,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await m(e,s,o,n,i,t)}))),L=async(a,t)=>r?await m(w,q,{[H]:a},!0,!0,t):null;return X(a,(async()=>await v((async()=>{await d();const a=await(async()=>S(T(await E($(i,(async([a,t],e)=>[a,await p(e,t)]))),(a=>!g(a[1])))))(),t=await(async()=>o?(await p(w,q))[H]:{})();return g(a)&&l(t)?void 0:[a,t]}))),(async(a,t)=>await v((async()=>{if(await d(),l(t)){const[t,e]=a();await A(t),await L(e)}else{const[a,e]=t();await A(a,!0),await L(e,!0)}}))),e,s,n,u)},ea="json",sa="autoLoadIntervalSeconds",na="rowIdColumnName",ia="tableId",ca="tableName",oa={mode:ea,[sa]:1},ra={load:0,save:0,[ca]:t+"_values"},la=(a,t,e,s)=>{const n=_();return D(a,((a,i)=>{const c=v(b(C(t,y(a)?{[e]:a}:a)),0,I(t));l(c[0])||s(i,c[0])||P(n,i,c)})),n},wa="pragma ",ya="data_version",Ea="schema_version",ua=(a,e,s,n,i,r,l,w)=>{let E,u;const[d,p,m,T]=(a=>{const e=(a=>C(oa,y(a)?{storeTableName:a}:a??{}))(a),s=e[sa];if(e.mode==ea){const{storeTableName:a=t}=e;return[1,s,[a],j(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=e,o=v(b(C(ra,c)),0,I(ra)),r=o[2],l=j(r);return[0,s,[la(n,{[ia]:null,[na]:q},ia,(a=>k(l,a)&&a==r)),la(i,{[ca]:null,[na]:q,deleteEmptyColumns:0,deleteEmptyTable:0},ca,((a,t)=>k(l,t)&&t==r)),o],l]})(e);return(d?aa:ta)(a,r?async(a,t)=>(r(a,t),await s(a,t)):s,(a=>[c((async()=>{try{const t=(await s(wa+ya))[0][ya],e=(await s(wa+Ea))[0][Ea];t==(E??=t)&&e==(u??=e)||(a(),E=t,u=e)}catch{}}),1e3*p),n((t=>T.has(t)?a():0))]),(([a,t])=>{o(a),E=u=null,i(t)}),l,m,h(T),w)};exports.createSqliteWasmPersister=(a,t,e,s,n,i)=>ua(a,s,(async(a,t=[])=>e.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}).map((a=>({...a})))),(a=>t.capi.sqlite3_update_hook(e,((t,e,s,n)=>a(n)),0)),(()=>t.capi.sqlite3_update_hook(e,(()=>0),0)),n,i,e);
1
+ "use strict";const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t)=>a.repeat(t),i=Promise,c=setInterval,o=clearInterval,r=(a,t)=>a instanceof t,l=a=>null==a,w=(a,t,e)=>l(a)?e?.():t(a),y=t=>a(t)==s,E=(a,t,e)=>a.slice(t,e),u=async a=>i.all(a),d=(a,t="")=>a.join(t),p=(a,t)=>a.map(t),m=a=>a.length,T=a=>0==m(a),v=(a,t)=>a.filter(t),A=(a,...t)=>a.push(...t),L=(a,t)=>a?.has(t)??!1,h=a=>[...a?.values()??[]],R=(a,t)=>a?.delete(t),f=Object,N=f.keys,O=f.freeze,S=(a=[])=>f.fromEntries(a),C=(...a)=>f.assign({},...a),D=(a,t)=>p(f.entries(a),(([a,e])=>t(e,a))),I=a=>f.values(a),b=a=>m(N(a)),g=a=>(a=>r(a,f)&&a.constructor==f)(a)&&0==b(a),_=a=>new Map(a),M=a=>[...a?.keys()??[]],F=(a,t)=>a?.get(t),$=(a,t)=>p([...a?.entries()??[]],(([a,e])=>t(e,a))),P=(a,t,e)=>l(e)?(R(a,t),a):a?.set(t,e),B=(a,t,e)=>(L(a,t)||P(a,t,e()),F(a,t)),W=(a,t,e,s=P)=>(D(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!l(((a,t)=>w(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),j=a=>new Set(Array.isArray(a)||l(a)?a:[a]),k=(a,t)=>a?.add(t),H="_",q="_id",x=a=>`"${a.replace(/"/g,'""')}"`,J="FROM pragma_table_",U="WHERE",V=(a,t,s)=>{const n=_();return[async()=>W(n,S(await u(p(await a("SELECT name "+J+"list WHERE schema='main'AND type='table'AND name IN("+z(t)+")",t),(async({name:t})=>[t,S(p(await a("SELECT name,type "+J+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>P(n,t,W(B(n,t,_),e,((a,t,e)=>{e!=F(a,t)&&P(a,t,e)}),((a,t)=>P(a,t))))),((a,t)=>P(n,t))),async(t,e)=>((a,t)=>!l(F(F(n,a),t)))(t,e)?S(v(p(await a("SELECT*FROM"+x(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!l(a)&&!g(t)))):{},async(t,s,i,c,o,r=!1)=>{const w=j();D(i??{},(a=>p(N(a??{}),(a=>k(w,a)))));const y=h(w);if(!r&&o&&T(y)&&L(n,t))return await a("DROP TABLE"+x(t)),void P(n,t);if(T(y)||L(n,t)){const e=F(n,t),i=j(M(e));await u([...p(y,(async s=>{R(i,s)||(await a(`ALTER TABLE${x(t)}ADD${x(s)}`),P(e,s,""))})),...!r&&c?p(h(i),(async n=>{n!=s&&(await a(`ALTER TABLE${x(t)}DROP${x(n)}`),P(e,n))})):[]])}else await a(`CREATE TABLE${x(t)}(${x(s)} PRIMARY KEY ON CONFLICT REPLACE${d(p(y,(a=>e+x(a))))});`),P(n,t,_([[s,""],...p(y,(a=>[a,""]))]));if(r)l(i)?await a("DELETE FROM"+x(t)+"WHERE 1"):await u(D(i,(async(e,n)=>{l(e)?await a("DELETE FROM"+x(t)+U+x(s)+"=?",[n]):T(y)||await Y(a,t,s,N(e),[n,...I(e)])})));else if(T(y))L(n,t)&&await a("DELETE FROM"+x(t)+"WHERE 1");else{const e=v(M(F(n,t)),(a=>a!=s)),c=[],o=[];D(i??{},((a,t)=>{A(c,t,...p(e,(t=>a?.[t]))),A(o,t)})),await Y(a,t,s,e,c),await a("DELETE FROM"+x(t)+U+x(s)+"NOT IN("+z(o)+")",o)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},Y=async(a,t,s,i,c)=>await a("INSERT INTO"+x(t)+"("+x(s)+d(p(i,(a=>e+x(a))))+")VALUES"+E(n(`,(?${n(",?",m(i))})`,m(c)/(m(i)+1)),1)+"ON CONFLICT("+x(s)+")DO UPDATE SET"+d(p(i,(a=>x(a)+"=excluded."+x(a))),e),c),z=a=>d(p(a,(()=>"?")),e),G=JSON.parse,K=_(),Q=_(),X=(a,t,e,s,n,i,c=[])=>{let o,r,y,E=0,u=0;B(K,c,(()=>0)),B(Q,c,(()=>[]));const d=async a=>(2!=E&&(E=1,await p.schedule((async()=>{await a(),E=0}))),p),p={load:async(e,s)=>await d((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(p.stopAutoLoad(),await p.load(e,n),u=1,y=s((async(e,s)=>{if(s){const t=s();await d((async()=>a.setTransactionChanges(t)))}else await d((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),p),stopAutoLoad:()=>(u&&(n(y),y=void 0,u=0),p),save:async t=>(1!=E&&(E=2,await p.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}E=0}))),p),startAutoSave:async()=>(await p.stopAutoSave().save(),o=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();g(e)&&g(s)||p.save((()=>[e,s]))})),p),stopAutoSave:()=>(w(o,a.delListener),p),schedule:async(...a)=>(A(F(Q,c),...a),await(async()=>{if(!F(K,c)){for(P(K,c,1);!l((a=F(Q,c),r=a.shift()));)try{await r()}catch(a){i?.(a)}P(K,c,0)}var a})(),p),getStore:()=>a,destroy:()=>p.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return O(p)},Z="store",aa=(a,t,e,s,n,[i],c,o)=>{const[l,w,y,E]=V(t,c,n);return X(a,(async()=>await E((async()=>(await l(),G((await w(i,q))[H]?.[Z]??"null"))))),(async a=>await E((async()=>{var t;await l(),await y(i,q,{[H]:{[Z]:(t=a()??null,JSON.stringify(t,((a,t)=>r(t,Map)?f.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,o)},ta=(a,t,e,s,n,[i,c,[o,r,w]],y,E)=>{const[d,p,m,T]=V(t,y,n),A=async(a,t)=>await u($(c,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await m(e,s,o,n,i,t)}))),L=async(a,t)=>r?await m(w,q,{[H]:a},!0,!0,t):null;return X(a,(async()=>await T((async()=>{await d();const a=await(async()=>S(v(await u($(i,(async([a,t],e)=>[a,await p(e,t)]))),(a=>!g(a[1])))))(),t=await(async()=>o?(await p(w,q))[H]:{})();return g(a)&&l(t)?void 0:[a,t]}))),(async(a,t)=>await T((async()=>{if(await d(),l(t)){const[t,e]=a();await A(t),await L(e)}else{const[a,e]=t();await A(a,!0),await L(e,!0)}}))),e,s,n,E)},ea="json",sa="autoLoadIntervalSeconds",na="rowIdColumnName",ia="tableId",ca="tableName",oa={mode:ea,[sa]:1},ra={load:0,save:0,[ca]:t+"_values"},la=(a,t,e,s)=>{const n=_();return D(a,((a,i)=>{const c=E(I(C(t,y(a)?{[e]:a}:a)),0,b(t));l(c[0])||s(i,c[0])||P(n,i,c)})),n},wa="pragma ",ya="data_version",Ea="schema_version",ua=(a,e,s,n,i,r,l,w)=>{let u,d;const[p,m,T,v]=(a=>{const e=(a=>C(oa,y(a)?{storeTableName:a}:a??{}))(a),s=e[sa];if(e.mode==ea){const{storeTableName:a=t}=e;return[1,s,[a],j(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=e,o=E(I(C(ra,c)),0,b(ra)),r=o[2],l=j(r);return[0,s,[la(n,{[ia]:null,[na]:q},ia,(a=>k(l,a)&&a==r)),la(i,{[ca]:null,[na]:q,deleteEmptyColumns:0,deleteEmptyTable:0},ca,((a,t)=>k(l,t)&&t==r)),o],l]})(e);return(p?aa:ta)(a,r?async(a,t)=>(r(a,t),await s(a,t)):s,(a=>[c((async()=>{try{const t=(await s(wa+ya))[0][ya],e=(await s(wa+Ea))[0][Ea];t==(u??=t)&&e==(d??=e)||(a(),u=t,d=e)}catch{}}),1e3*m),n((t=>v.has(t)?a():0))]),(([a,t])=>{o(a),u=d=null,i(t)}),l,T,h(v),w)};exports.createSqliteWasmPersister=(a,t,e,s,n,i)=>ua(a,s,(async(a,t=[])=>e.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}).map((a=>({...a})))),(a=>t.capi.sqlite3_update_hook(e,((t,e,s,n)=>a(n)),0)),(()=>t.capi.sqlite3_update_hook(e,(()=>0),0)),n,i,e);
@@ -1 +1 @@
1
- "use strict";const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t)=>a.repeat(t),i=Promise,c=setInterval,o=clearInterval,r=(a,t)=>a instanceof t,l=a=>null==a,w=(a,t,e)=>l(a)?e?.():t(a),y=t=>a(t)==s,E=async a=>i.all(a),u=(a,t="")=>a.join(t),d=(a,t)=>a.map(t),v=a=>a.length,T=a=>0==v(a),m=(a,t)=>a.filter(t),A=(a,t,e)=>a.slice(t,e),L=(a,...t)=>a.push(...t),p=(a,t)=>a?.has(t)??!1,f=a=>[...a?.values()??[]],h=(a,t)=>a?.delete(t),N=Object,R=N.keys,O=N.freeze,S=(a=[])=>N.fromEntries(a),C=(...a)=>N.assign({},...a),D=(a,t)=>d(N.entries(a),(([a,e])=>t(e,a))),g=a=>N.values(a),I=a=>v(R(a)),b=a=>(a=>r(a,N)&&a.constructor==N)(a)&&0==I(a),F=a=>new Map(a),M=a=>[...a?.keys()??[]],$=(a,t)=>a?.get(t),P=(a,t)=>d([...a?.entries()??[]],(([a,e])=>t(e,a))),_=(a,t,e)=>l(e)?(h(a,t),a):a?.set(t,e),B=(a,t,e)=>(p(a,t)||_(a,t,e()),$(a,t)),H=(a,t,e,s=_)=>(D(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!l(((a,t)=>w(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),W=a=>new Set(Array.isArray(a)||l(a)?a:[a]),j=(a,t)=>a?.add(t),k="_",x="_id",J=a=>`"${a.replace(/"/g,'""')}"`,U="FROM pragma_table_",Y="WHERE",q=(a,t,s)=>{const n=F();return[async()=>H(n,S(await E(d(await a("SELECT name "+U+"list WHERE schema='main'AND type='table'AND name IN("+G(t)+")",t),(async({name:t})=>[t,S(d(await a("SELECT name,type "+U+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>_(n,t,H(B(n,t,F),e,((a,t,e)=>{e!=$(a,t)&&_(a,t,e)}),((a,t)=>_(a,t))))),((a,t)=>_(n,t))),async(t,e)=>((a,t)=>!l($($(n,a),t)))(t,e)?S(m(d(await a("SELECT*FROM"+J(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!l(a)&&!b(t)))):{},async(t,s,i,c,o,r=!1)=>{const w=W();D(i??{},(a=>d(R(a??{}),(a=>j(w,a)))));const y=f(w);if(!r&&o&&T(y)&&p(n,t))return await a("DROP TABLE"+J(t)),void _(n,t);if(T(y)||p(n,t)){const e=$(n,t),i=W(M(e));await E([...d(y,(async s=>{h(i,s)||(await a(`ALTER TABLE${J(t)}ADD${J(s)}`),_(e,s,""))})),...!r&&c?d(f(i),(async n=>{n!=s&&(await a(`ALTER TABLE${J(t)}DROP${J(n)}`),_(e,n))})):[]])}else await a(`CREATE TABLE${J(t)}(${J(s)} PRIMARY KEY ON CONFLICT REPLACE${u(d(y,(a=>e+J(a))))});`),_(n,t,F([[s,""],...d(y,(a=>[a,""]))]));if(r)l(i)?await a("DELETE FROM"+J(t)+"WHERE 1"):await E(D(i,(async(e,n)=>{l(e)?await a("DELETE FROM"+J(t)+Y+J(s)+"=?",[n]):T(y)||await z(a,t,s,R(e),[n,...g(e)])})));else if(T(y))p(n,t)&&await a("DELETE FROM"+J(t)+"WHERE 1");else{const e=m(M($(n,t)),(a=>a!=s)),c=[],o=[];D(i??{},((a,t)=>{L(c,t,...d(e,(t=>a?.[t]))),L(o,t)})),await z(a,t,s,e,c),await a("DELETE FROM"+J(t)+Y+J(s)+"NOT IN("+G(o)+")",o)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},z=async(a,t,s,i,c)=>await a("INSERT INTO"+J(t)+"("+J(s)+u(d(i,(a=>e+J(a))))+")VALUES"+n(`,(?${n(",?",v(i))})`,v(c)/(v(i)+1)).substring(1)+"ON CONFLICT("+J(s)+")DO UPDATE SET"+u(d(i,(a=>J(a)+"=excluded."+J(a))),e),c),G=a=>u(d(a,(()=>"?")),e),K=JSON.parse,V=F(),Q=F(),X=(a,t,e,s,n,i,c=[])=>{let o,r,y,E=0,u=0;B(V,c,(()=>0)),B(Q,c,(()=>[]));const d=async a=>(2!=E&&(E=1,await v.schedule((async()=>{await a(),E=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,y=s((async(e,s)=>{if(s){const t=s();await d((async()=>a.setTransactionChanges(t)))}else await d((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),v),stopAutoLoad:()=>(u&&(n(y),y=void 0,u=0),v),save:async t=>(1!=E&&(E=2,await v.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}E=0}))),v),startAutoSave:async()=>(await v.stopAutoSave().save(),o=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();b(e)&&b(s)||v.save((()=>[e,s]))})),v),stopAutoSave:()=>(w(o,a.delListener),v),schedule:async(...a)=>(L($(Q,c),...a),await(async()=>{if(!$(V,c)){for(_(V,c,1);!l((a=$(Q,c),r=a.shift()));)try{await r()}catch(a){i?.(a)}_(V,c,0)}var a})(),v),getStore:()=>a,destroy:()=>v.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return O(v)},Z="store",aa=(a,t,e,s,n,[i],c,o)=>{const[l,w,y,E]=q(t,c,n);return X(a,(async()=>await E((async()=>(await l(),K((await w(i,x))[k]?.[Z]??"null"))))),(async a=>await E((async()=>{var t;await l(),await y(i,x,{[k]:{[Z]:(t=a()??null,JSON.stringify(t,((a,t)=>r(t,Map)?N.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,o)},ta=(a,t,e,s,n,[i,c,[o,r,w]],y,u)=>{const[d,v,T,A]=q(t,y,n),L=async(a,t)=>await E(P(c,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await T(e,s,o,n,i,t)}))),p=async(a,t)=>r?await T(w,x,{[k]:a},!0,!0,t):null;return X(a,(async()=>await A((async()=>{await d();const a=await(async()=>S(m(await E(P(i,(async([a,t],e)=>[a,await v(e,t)]))),(a=>!b(a[1])))))(),t=await(async()=>o?(await v(w,x))[k]:{})();return b(a)&&l(t)?void 0:[a,t]}))),(async(a,t)=>await A((async()=>{if(await d(),l(t)){const[t,e]=a();await L(t),await p(e)}else{const[a,e]=t();await L(a,!0),await p(e,!0)}}))),e,s,n,u)},ea="json",sa="autoLoadIntervalSeconds",na="rowIdColumnName",ia="tableId",ca="tableName",oa={mode:ea,[sa]:1},ra={load:0,save:0,[ca]:t+"_values"},la=(a,t,e,s)=>{const n=F();return D(a,((a,i)=>{const c=A(g(C(t,y(a)?{[e]:a}:a)),0,I(t));l(c[0])||s(i,c[0])||_(n,i,c)})),n},wa="pragma ",ya="data_version",Ea="schema_version",ua=(a,e,s,n,i,r,l,w)=>{let E,u;const[d,v,T,m]=(a=>{const e=(a=>C(oa,y(a)?{storeTableName:a}:a??{}))(a),s=e[sa];if(e.mode==ea){const{storeTableName:a=t}=e;return[1,s,[a],W(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=e,o=A(g(C(ra,c)),0,I(ra)),r=o[2],l=W(r);return[0,s,[la(n,{[ia]:null,[na]:x},ia,(a=>j(l,a)&&a==r)),la(i,{[ca]:null,[na]:x,deleteEmptyColumns:0,deleteEmptyTable:0},ca,((a,t)=>j(l,t)&&t==r)),o],l]})(e);return(d?aa:ta)(a,r?async(a,t)=>(r(a,t),await s(a,t)):s,(a=>[c((async()=>{try{const t=(await s(wa+ya))[0][ya],e=(await s(wa+Ea))[0][Ea];t==(E??=t)&&e==(u??=e)||(a(),E=t,u=e)}catch{}}),1e3*v),n((t=>m.has(t)?a():0))]),(([a,t])=>{o(a),E=u=null,i(t)}),l,T,f(m),w)},da="change";exports.createSqlite3Persister=(a,t,e,s,n)=>ua(a,e,(async(a,e=[])=>{return await(s=(s,n)=>t.all(a,e,((a,t)=>a?n(a):s(t.map((a=>({...a})))))),new i(s));var s}),(a=>{const e=(t,e,s)=>a(s);return t.on(da,e),e}),(a=>t.off(da,a)),s,n,t);
1
+ "use strict";const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t)=>a.repeat(t),i=Promise,c=setInterval,o=clearInterval,r=(a,t)=>a instanceof t,l=a=>null==a,w=(a,t,e)=>l(a)?e?.():t(a),y=t=>a(t)==s,E=(a,t,e)=>a.slice(t,e),u=async a=>i.all(a),d=(a,t="")=>a.join(t),v=(a,t)=>a.map(t),T=a=>a.length,m=a=>0==T(a),A=(a,t)=>a.filter(t),L=(a,...t)=>a.push(...t),p=(a,t)=>a?.has(t)??!1,f=a=>[...a?.values()??[]],h=(a,t)=>a?.delete(t),N=Object,R=N.keys,O=N.freeze,S=(a=[])=>N.fromEntries(a),C=(...a)=>N.assign({},...a),D=(a,t)=>v(N.entries(a),(([a,e])=>t(e,a))),I=a=>N.values(a),g=a=>T(R(a)),b=a=>(a=>r(a,N)&&a.constructor==N)(a)&&0==g(a),F=a=>new Map(a),M=a=>[...a?.keys()??[]],$=(a,t)=>a?.get(t),P=(a,t)=>v([...a?.entries()??[]],(([a,e])=>t(e,a))),_=(a,t,e)=>l(e)?(h(a,t),a):a?.set(t,e),B=(a,t,e)=>(p(a,t)||_(a,t,e()),$(a,t)),H=(a,t,e,s=_)=>(D(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!l(((a,t)=>w(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),W=a=>new Set(Array.isArray(a)||l(a)?a:[a]),j=(a,t)=>a?.add(t),k="_",x="_id",J=a=>`"${a.replace(/"/g,'""')}"`,U="FROM pragma_table_",Y="WHERE",q=(a,t,s)=>{const n=F();return[async()=>H(n,S(await u(v(await a("SELECT name "+U+"list WHERE schema='main'AND type='table'AND name IN("+G(t)+")",t),(async({name:t})=>[t,S(v(await a("SELECT name,type "+U+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>_(n,t,H(B(n,t,F),e,((a,t,e)=>{e!=$(a,t)&&_(a,t,e)}),((a,t)=>_(a,t))))),((a,t)=>_(n,t))),async(t,e)=>((a,t)=>!l($($(n,a),t)))(t,e)?S(A(v(await a("SELECT*FROM"+J(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!l(a)&&!b(t)))):{},async(t,s,i,c,o,r=!1)=>{const w=W();D(i??{},(a=>v(R(a??{}),(a=>j(w,a)))));const y=f(w);if(!r&&o&&m(y)&&p(n,t))return await a("DROP TABLE"+J(t)),void _(n,t);if(m(y)||p(n,t)){const e=$(n,t),i=W(M(e));await u([...v(y,(async s=>{h(i,s)||(await a(`ALTER TABLE${J(t)}ADD${J(s)}`),_(e,s,""))})),...!r&&c?v(f(i),(async n=>{n!=s&&(await a(`ALTER TABLE${J(t)}DROP${J(n)}`),_(e,n))})):[]])}else await a(`CREATE TABLE${J(t)}(${J(s)} PRIMARY KEY ON CONFLICT REPLACE${d(v(y,(a=>e+J(a))))});`),_(n,t,F([[s,""],...v(y,(a=>[a,""]))]));if(r)l(i)?await a("DELETE FROM"+J(t)+"WHERE 1"):await u(D(i,(async(e,n)=>{l(e)?await a("DELETE FROM"+J(t)+Y+J(s)+"=?",[n]):m(y)||await z(a,t,s,R(e),[n,...I(e)])})));else if(m(y))p(n,t)&&await a("DELETE FROM"+J(t)+"WHERE 1");else{const e=A(M($(n,t)),(a=>a!=s)),c=[],o=[];D(i??{},((a,t)=>{L(c,t,...v(e,(t=>a?.[t]))),L(o,t)})),await z(a,t,s,e,c),await a("DELETE FROM"+J(t)+Y+J(s)+"NOT IN("+G(o)+")",o)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},z=async(a,t,s,i,c)=>await a("INSERT INTO"+J(t)+"("+J(s)+d(v(i,(a=>e+J(a))))+")VALUES"+E(n(`,(?${n(",?",T(i))})`,T(c)/(T(i)+1)),1)+"ON CONFLICT("+J(s)+")DO UPDATE SET"+d(v(i,(a=>J(a)+"=excluded."+J(a))),e),c),G=a=>d(v(a,(()=>"?")),e),K=JSON.parse,V=F(),Q=F(),X=(a,t,e,s,n,i,c=[])=>{let o,r,y,E=0,u=0;B(V,c,(()=>0)),B(Q,c,(()=>[]));const d=async a=>(2!=E&&(E=1,await v.schedule((async()=>{await a(),E=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,y=s((async(e,s)=>{if(s){const t=s();await d((async()=>a.setTransactionChanges(t)))}else await d((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),v),stopAutoLoad:()=>(u&&(n(y),y=void 0,u=0),v),save:async t=>(1!=E&&(E=2,await v.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}E=0}))),v),startAutoSave:async()=>(await v.stopAutoSave().save(),o=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();b(e)&&b(s)||v.save((()=>[e,s]))})),v),stopAutoSave:()=>(w(o,a.delListener),v),schedule:async(...a)=>(L($(Q,c),...a),await(async()=>{if(!$(V,c)){for(_(V,c,1);!l((a=$(Q,c),r=a.shift()));)try{await r()}catch(a){i?.(a)}_(V,c,0)}var a})(),v),getStore:()=>a,destroy:()=>v.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return O(v)},Z="store",aa=(a,t,e,s,n,[i],c,o)=>{const[l,w,y,E]=q(t,c,n);return X(a,(async()=>await E((async()=>(await l(),K((await w(i,x))[k]?.[Z]??"null"))))),(async a=>await E((async()=>{var t;await l(),await y(i,x,{[k]:{[Z]:(t=a()??null,JSON.stringify(t,((a,t)=>r(t,Map)?N.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,o)},ta=(a,t,e,s,n,[i,c,[o,r,w]],y,E)=>{const[d,v,T,m]=q(t,y,n),L=async(a,t)=>await u(P(c,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await T(e,s,o,n,i,t)}))),p=async(a,t)=>r?await T(w,x,{[k]:a},!0,!0,t):null;return X(a,(async()=>await m((async()=>{await d();const a=await(async()=>S(A(await u(P(i,(async([a,t],e)=>[a,await v(e,t)]))),(a=>!b(a[1])))))(),t=await(async()=>o?(await v(w,x))[k]:{})();return b(a)&&l(t)?void 0:[a,t]}))),(async(a,t)=>await m((async()=>{if(await d(),l(t)){const[t,e]=a();await L(t),await p(e)}else{const[a,e]=t();await L(a,!0),await p(e,!0)}}))),e,s,n,E)},ea="json",sa="autoLoadIntervalSeconds",na="rowIdColumnName",ia="tableId",ca="tableName",oa={mode:ea,[sa]:1},ra={load:0,save:0,[ca]:t+"_values"},la=(a,t,e,s)=>{const n=F();return D(a,((a,i)=>{const c=E(I(C(t,y(a)?{[e]:a}:a)),0,g(t));l(c[0])||s(i,c[0])||_(n,i,c)})),n},wa="pragma ",ya="data_version",Ea="schema_version",ua=(a,e,s,n,i,r,l,w)=>{let u,d;const[v,T,m,A]=(a=>{const e=(a=>C(oa,y(a)?{storeTableName:a}:a??{}))(a),s=e[sa];if(e.mode==ea){const{storeTableName:a=t}=e;return[1,s,[a],W(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=e,o=E(I(C(ra,c)),0,g(ra)),r=o[2],l=W(r);return[0,s,[la(n,{[ia]:null,[na]:x},ia,(a=>j(l,a)&&a==r)),la(i,{[ca]:null,[na]:x,deleteEmptyColumns:0,deleteEmptyTable:0},ca,((a,t)=>j(l,t)&&t==r)),o],l]})(e);return(v?aa:ta)(a,r?async(a,t)=>(r(a,t),await s(a,t)):s,(a=>[c((async()=>{try{const t=(await s(wa+ya))[0][ya],e=(await s(wa+Ea))[0][Ea];t==(u??=t)&&e==(d??=e)||(a(),u=t,d=e)}catch{}}),1e3*T),n((t=>A.has(t)?a():0))]),(([a,t])=>{o(a),u=d=null,i(t)}),l,m,f(A),w)},da="change";exports.createSqlite3Persister=(a,t,e,s,n)=>ua(a,e,(async(a,e=[])=>{return await(s=(s,n)=>t.all(a,e,((a,t)=>a?n(a):s(t.map((a=>({...a})))))),new i(s));var s}),(a=>{const e=(t,e,s)=>a(s);return t.on(da,e),e}),(a=>t.off(da,a)),s,n,t);
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",g=h+"Count",f=h+c,T="Cell",V=T+c,b="Value",C=b+"s",S=b+c,v=e=>t+e,w=isFinite,I=(e,t)=>e instanceof t,m=e=>null==e,R=(e,t,s)=>m(e)?s?.():t(e),y=e=>e==s||e==l,J=t=>e(t)==a,L=(e,t)=>e.forEach(t),p=(e,t)=>e.map(t),E=e=>e.length,F=(e,t,s)=>e.slice(t,s),z=(e,...t)=>e.push(...t),O=Object,k=O.keys,A=O.isFrozen,M=O.freeze,N=e=>I(e,O)&&e.constructor==O,P=(e,t)=>!m(((e,t)=>R(e,(e=>e[t])))(e,t)),j=(e,t)=>(delete e[t],e),x=(e,t)=>p(O.entries(e),(([e,s])=>t(s,e))),D=e=>N(e)&&0==(e=>E(k(e)))(e),W=e=>e?.size??0,$=(e,t)=>e?.has(t)??!1,q=e=>m(e)||0==W(e),B=e=>e.clear(),G=(e,t)=>e?.forEach(t),H=(e,t)=>e?.delete(t),K=e=>new Map(e),Q=e=>[...e?.keys()??[]],U=(e,t)=>e?.get(t),X=(e,t)=>G(e,((e,s)=>t(s,e))),Y=(e,t,s)=>m(s)?(H(e,t),e):e?.set(t,s),Z=(e,t,s)=>($(e,t)||Y(e,t,s()),U(e,t)),_=(e,t,s,l=Y)=>(x(t,((t,l)=>s(e,l,t))),X(e,(s=>P(t,s)?0:l(e,s))),e),ee=(e,t,s)=>{const l={};return G(e,((e,n)=>{const a=t?t(e,n):e;!s?.(a,e)&&(l[n]=a)})),l},te=(e,t,s)=>ee(e,(e=>ee(e,t,s)),D),se=(e,t,s)=>ee(e,(e=>te(e,t,s)),D),le=(e,t)=>{const s=K();return G(e,((e,l)=>s.set(l,t?.(e)??e))),s},ne=e=>le(e,le),ae=e=>le(e,ne),re=(e,t,s,l,n=0)=>R((s?Z:U)(e,t[n],n>E(t)-2?s:K),(a=>{if(n>E(t)-2)return l?.(a)&&Y(e,t[n]),a;const r=re(a,t,s,l,n+1);return q(a)&&Y(e,t[n]),r})),oe=e=>new Set(Array.isArray(e)||m(e)?e:[e]),ce=(e,t)=>e?.add(t),ie=/^\d+$/,de=()=>{const e=[];let s=0;return[l=>(l?e.shift():null)??t+s++,t=>{ie.test(t)&&E(e)<1e3&&z(e,t)}]},ue=e=>[e,e],he=()=>[K(),K()],ge=e=>[...e],fe=([e,t])=>e===t,Te=t=>{const s=e(t);return y(s)||s==n&&w(t)?s:void 0},Ve=(e,t,s,l,n)=>m(n)?e.delCell(t,s,l,!0):e.setCell(t,s,l,n),be=(e,t,s)=>m(s)?e.delValue(t):e.setValue(t,s),Ce=e=>JSON.stringify(e,((e,t)=>I(t,Map)?O.fromEntries([...t]):t)),Se=JSON.parse,ve=(e,t,s)=>m(e)||!N(e)||D(e)||A(e)?(s?.(),!1):(x(e,((s,l)=>{t(s,l)||j(e,l)})),!D(e)),we=(e,t,s)=>Y(e,t,U(e,t)==-s?void 0:s),Ie=()=>{let e,s,l=!1,a=!1,c=0;const w=K(),I=K(),O=K(),k=K(),A=K(),N=K(),ie=K(),me=K(),Re=K(),ye=K(),Je=K(),Le=K(),pe=K(),Ee=K(),Fe=oe(),ze=K(),Oe=K(),ke=K(),Ae=K(),Me=he(),Ne=he(),Pe=he(),je=he(),xe=he(),De=he(),We=he(),$e=he(),qe=he(),Be=he(),Ge=he(),He=he(),Ke=he(),Qe=he(),Ue=he(),Xe=K(),Ye=he(),[Ze,_e,et,tt]=(e=>{let s;const[l,n]=de(),a=K();return[(e,n,r,o=[],c=(()=>[]))=>{s??=Ts;const i=l(1);return Y(a,i,[e,n,r,o,c]),ce(re(n,r??[t],oe),i),i},(e,l,...n)=>L(((e,s=[t])=>{const l=[],n=(e,t)=>t==E(s)?z(l,e):null===s[t]?G(e,(e=>n(e,t+1))):L([s[t],null],(s=>n(U(e,s),t+1)));return n(e,0),l})(e,l),(e=>G(e,(e=>U(a,e)[0](s,...l??[],...n))))),e=>R(U(a,e),(([,s,l])=>(re(s,l??[t],void 0,(t=>(H(t,e),q(t)?1:0))),Y(a,e),n(e),l))),e=>R(U(a,e),(([e,,t=[],l,n])=>{const a=(...r)=>{const o=E(r);o==E(t)?e(s,...r,...n(r)):m(t[o])?L(l[o]?.(...r)??[],(e=>a(...r,e))):a(...r,t[o])};a()}))]})(),st=e=>{if(!ve(e,((e,t)=>[r,o].includes(t))))return!1;const t=e[r];return!(!y(t)&&t!=n||(Te(e[o])!=t&&j(e,o),0))},lt=(t,s)=>(!e||$(Je,s)||kt(s))&&ve(t,((e,t)=>nt(s,t,e)),(()=>kt(s))),nt=(e,t,s,l)=>ve(l?s:ct(s,e,t),((l,n)=>R(at(e,t,n,l),(e=>(s[n]=e,!0)),(()=>!1))),(()=>kt(e,t))),at=(t,s,l,n)=>e?R(U(U(Je,t),l),(e=>Te(n)!=e[r]?kt(t,s,l,n,e[o]):n),(()=>kt(t,s,l,n))):m(Te(n))?kt(t,s,l,n):n,rt=(e,t)=>ve(t?e:it(e),((t,s)=>R(ot(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>At())),ot=(e,t)=>s?R(U(pe,e),(s=>Te(t)!=s[r]?At(e,t,s[o]):t),(()=>At(e,t))):m(Te(t))?At(e,t):t,ct=(e,t,s)=>(R(U(Le,t),(([l,n])=>{G(l,((t,s)=>{P(e,s)||(e[s]=t)})),G(n,(l=>{P(e,l)||kt(t,s,l)}))})),e),it=e=>(s&&(G(Ee,((t,s)=>{P(e,s)||(e[s]=t)})),G(Fe,(t=>{P(e,t)||At(t)}))),e),dt=e=>_(Je,e,((e,t,s)=>{const l=K(),n=oe();_(Z(Je,t,K),s,((e,t,s)=>{Y(e,t,s),R(s[o],(e=>Y(l,t,e)),(()=>ce(n,t)))})),Y(Le,t,[l,n])}),((e,t)=>{Y(Je,t),Y(Le,t)})),ut=e=>_(pe,e,((e,t,s)=>{Y(pe,t,s),R(s[o],(e=>Y(Ee,t,e)),(()=>ce(Fe,t)))}),((e,t)=>{Y(pe,t),Y(Ee,t),H(Fe,t)})),ht=e=>D(e)?rs():ts(e),gt=e=>_(ke,e,((e,t,s)=>ft(t,s)),((e,t)=>mt(t))),ft=(e,t)=>_(Z(ke,e,(()=>(Lt(e,1),Y(ze,e,de()),Y(Oe,e,K()),K()))),t,((t,s,l)=>Tt(e,t,s,l)),((t,s)=>Rt(e,t,s))),Tt=(e,t,s,l,n)=>_(Z(t,s,(()=>(pt(e,s,1),K()))),l,((t,l,n)=>Vt(e,s,t,l,n)),((l,a)=>yt(e,t,s,l,a,n))),Vt=(e,t,s,l,n)=>{$(s,l)||Et(e,t,l,1);const a=U(s,l);n!==a&&(Ft(e,t,l,a,n),Y(s,l,n))},bt=(e,t,s,l,n)=>R(U(t,s),(t=>Vt(e,s,t,l,n)),(()=>Tt(e,t,s,ct({[l]:n},e,s)))),Ct=e=>D(e)?is():ss(e),St=e=>_(Ae,e,((e,t,s)=>vt(t,s)),((e,t)=>Jt(t))),vt=(e,t)=>{$(Ae,e)||zt(e,1);const s=U(Ae,e);t!==s&&(Ot(e,s,t),Y(Ae,e,t))},wt=(e,t)=>{const[s]=U(ze,e),l=s(t);return $(U(ke,e),l)?wt(e,t):l},It=e=>U(ke,e)??ft(e,{}),mt=e=>ft(e,{}),Rt=(e,t,s)=>{const[,l]=U(ze,e);l(s),Tt(e,t,s,{},!0)},yt=(e,t,s,l,n,a)=>{const r=U(U(Le,e)?.[0],n);if(!m(r)&&!a)return Vt(e,s,l,n,r);const o=t=>{Ft(e,s,t,U(l,t)),Et(e,s,t,-1),Y(l,t)};m(r)?o(n):X(l,o),q(l)&&(pt(e,s,-1),q(Y(t,s))&&(Lt(e,-1),Y(ke,e),Y(ze,e),Y(Oe,e)))},Jt=e=>{const t=U(Ee,e);if(!m(t))return vt(e,t);Ot(e,U(Ae,e)),zt(e,-1),Y(Ae,e)},Lt=(e,t)=>we(w,e,t),pt=(e,t,s)=>we(Z(k,e,K),t,s)&&Y(O,e,Z(O,e,(()=>0))+s),Et=(e,t,s,l)=>{const n=U(Oe,e),a=U(n,s)??0;(0==a&&1==l||1==a&&-1==l)&&we(Z(I,e,K),s,l),Y(n,s,a!=-l?a+l:null),we(Z(Z(A,e,K),t,K),s,l)},Ft=(e,t,s,l,n)=>Z(Z(Z(N,e,K),t,K),s,(()=>[l,0]))[1]=n,zt=(e,t)=>we(ie,e,t),Ot=(e,t,s)=>Z(me,e,(()=>[t,0]))[1]=s,kt=(e,t,s,l,n)=>(z(Z(Z(Z(Re,e,K),t,K),s,(()=>[])),l),n),At=(e,t,s)=>(z(Z(ye,e,(()=>[])),t),s),Mt=(e,t,s)=>R(U(U(U(N,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...ue(Yt(e,t,s))])),Nt=e=>R(U(me,e),(([e,t])=>[!0,e,t]),(()=>[!1,...ue(es(e))])),Pt=e=>q(Re)||q(Ge[e])?0:G(e?ae(Re):Re,((t,s)=>G(t,((t,l)=>G(t,((t,n)=>_e(Ge[e],[s,l,n],t))))))),jt=e=>q(ye)||q(He[e])?0:G(e?le(ye):ye,((t,s)=>_e(He[e],[s],t))),xt=(e,t,s)=>{if(!q(t))return _e(e,s,(()=>ee(t))),1},Dt=e=>{const t=q(We[e]),s=q(qe[e])&&q(je[e])&&q(xe[e])&&q(De[e])&&t&&q(Ne[e]),l=q(Be[e])&&q($e[e])&&q(Pe[e])&&q(Me[e]);if(!s||!l){const n=e?[le(w),ne(I),le(O),ne(k),ae(A),ae(N)]:[w,I,O,k,A,N];if(!s){xt(Ne[e],n[0]),G(n[1],((t,s)=>xt(je[e],t,[s]))),G(n[2],((t,s)=>{0!=t&&_e(xe[e],[s],Kt(s))}));const s=oe();G(n[3],((l,n)=>{xt(De[e],l,[n])&&!t&&(_e(We[e],[n,null]),ce(s,n))})),t||G(n[5],((t,l)=>{if(!$(s,l)){const s=oe();G(t,(e=>G(e,(([t,l],n)=>l!==t?ce(s,n):H(e,n))))),G(s,(t=>_e(We[e],[l,t])))}})),G(n[4],((t,s)=>G(t,((t,l)=>xt(qe[e],t,[s,l])))))}if(!l){let t;G(n[5],((s,l)=>{let n;G(s,((s,a)=>{let r;G(s,(([s,o],c)=>{o!==s&&(_e(Be[e],[l,a,c],o,s,Mt),t=n=r=1)})),r&&_e($e[e],[l,a],Mt)})),n&&_e(Pe[e],[l],Mt)})),t&&_e(Me[e],void 0,Mt)}}},Wt=e=>{const t=q(Qe[e]),s=q(Ue[e])&&q(Ke[e]);if(!t||!s){const l=e?[le(ie),le(me)]:[ie,me];if(t||xt(Qe[e],l[0]),!s){let t;G(l[1],(([s,l],n)=>{l!==s&&(_e(Ue[e],[n],l,s,Nt),t=1)})),t&&_e(Ke[e],void 0,Nt)}}},$t=(e,...t)=>(hs((()=>e(...p(t,v)))),Ts),qt=()=>[ee(N,((e,t)=>-1===U(w,t)?null:ee(e,((e,s)=>-1===U(U(k,t),s)?null:ee(e,(([,e])=>e??null),((e,t)=>fe(t)))),D)),D),ee(me,(([,e])=>e??null),((e,t)=>fe(t)))],Bt=()=>({cellsTouched:l,valuesTouched:a,changedCells:se(N,ge,fe),invalidCells:se(Re),changedValues:ee(me,ge,fe),invalidValues:ee(ye),changedTableIds:ee(w),changedRowIds:te(k),changedCellIds:se(A),changedValueIds:ee(ie)}),Gt=()=>se(ke),Ht=()=>Q(ke),Kt=e=>W(U(ke,v(e))),Qt=e=>Q(U(ke,v(e))),Ut=(e,t,s,l=0,n)=>{return p(F((r=U(ke,v(e)),o=(e,s)=>[m(t)?s:U(e,v(t)),s],a=([e],[t])=>((e??0)<(t??0)?-1:1)*(s?-1:1),p([...r?.entries()??[]],(([e,t])=>o(t,e))).sort(a)),l,m(n)?n:l+n),(([,e])=>e));var a,r,o},Xt=(e,t)=>Q(U(U(ke,v(e)),v(t))),Yt=(e,t,s)=>U(U(U(ke,v(e)),v(t)),v(s)),Zt=()=>ee(Ae),_t=()=>Q(Ae),es=e=>U(Ae,v(e)),ts=e=>$t((()=>(e=>ve(e,lt,kt))(e)?gt(e):0)),ss=e=>$t((()=>rt(e)?St(e):0)),ls=e=>{try{ht(Se(e))}catch{}return Ts},ns=t=>$t((()=>{if((e=ve(t,(e=>ve(e,st))))&&(dt(t),!q(ke))){const e=Gt();rs(),ts(e)}})),as=e=>$t((()=>{if(s=(e=>ve(e,st))(e)){const t=Zt();us(),is(),s=!0,ut(e),ss(t)}})),rs=()=>$t((()=>gt({}))),os=e=>$t((e=>$(ke,e)?mt(e):0),e),cs=(e,t)=>$t(((e,t)=>R(U(ke,e),(s=>$(s,t)?Rt(e,s,t):0))),e,t),is=()=>$t((()=>St({}))),ds=()=>$t((()=>{dt({}),e=!1})),us=()=>$t((()=>{ut({}),s=!1})),hs=(e,t)=>{if(-1!=c){gs();const s=e();return fs(t),s}},gs=()=>(-1!=c&&c++,1==c&&_e(Xe,void 0,qt,Bt),Ts),fs=e=>(c>0&&(c--,0==c&&(l=!q(N),a=!q(me),c=1,Pt(1),l&&Dt(1),jt(1),a&&Wt(1),e?.(qt,Bt)&&(G(N,((e,t)=>G(e,((e,s)=>G(e,(([e],l)=>Ve(Ts,t,s,l,e))))))),G(me,(([e],t)=>be(Ts,t,e))),l=a=!1),_e(Ye[0],void 0,qt,Bt),c=-1,Pt(0),l&&Dt(0),jt(0),a&&Wt(0),_e(Ye[1],void 0,qt,Bt),c=0,l=a=!1,L([w,I,O,k,A,N,Re,ie,me,ye],B))),Ts),Ts={getContent:()=>[Gt(),Zt()],getTables:Gt,getTableIds:Ht,getTable:e=>te(U(ke,v(e))),getTableCellIds:e=>Q(U(Oe,v(e))),getRowCount:Kt,getRowIds:Qt,getSortedRowIds:Ut,getRow:(e,t)=>ee(U(U(ke,v(e)),v(t))),getCellIds:Xt,getCell:Yt,getValues:Zt,getValueIds:_t,getValue:es,hasTables:()=>!q(ke),hasTable:e=>$(ke,v(e)),hasTableCell:(e,t)=>$(U(Oe,v(e)),v(t)),hasRow:(e,t)=>$(U(ke,v(e)),v(t)),hasCell:(e,t,s)=>$(U(U(ke,v(e)),v(t)),v(s)),hasValues:()=>!q(Ae),hasValue:e=>$(Ae,v(e)),getTablesJson:()=>Ce(ke),getValuesJson:()=>Ce(Ae),getJson:()=>Ce([ke,Ae]),getTablesSchemaJson:()=>Ce(Je),getValuesSchemaJson:()=>Ce(pe),getSchemaJson:()=>Ce([Je,pe]),hasTablesSchema:()=>e,hasValuesSchema:()=>s,setContent:([e,t])=>$t((()=>{(D(e)?rs:ts)(e),(D(t)?is:ss)(t)})),setTables:ts,setTable:(e,t)=>$t((e=>lt(t,e)?ft(e,t):0),e),setRow:(e,t,s)=>$t(((e,t)=>nt(e,t,s)?Tt(e,It(e),t,s):0),e,t),addRow:(e,t,s=!0)=>hs((()=>{let l;return nt(e,l,t)&&(e=v(e),Tt(e,It(e),l=wt(e,s?1:0),t)),l})),setPartialRow:(e,t,s)=>$t(((e,t)=>{if(nt(e,t,s,1)){const l=It(e);x(s,((s,n)=>bt(e,l,t,n,s)))}}),e,t),setCell:(e,t,s,l)=>$t(((e,t,s)=>R(at(e,t,s,J(l)?l(Yt(e,t,s)):l),(l=>bt(e,It(e),t,s,l)))),e,t,s),setValues:ss,setPartialValues:e=>$t((()=>rt(e,1)?x(e,((e,t)=>vt(t,e))):0)),setValue:(e,t)=>$t((e=>R(ot(e,J(t)?t(es(e)):t),(t=>vt(e,t)))),e),setTransactionChanges:e=>$t((()=>{x(e[0],((e,t)=>m(e)?os(t):x(e,((e,s)=>m(e)?cs(t,s):x(e,((e,l)=>Ve(Ts,t,s,l,e))))))),x(e[1],((e,t)=>be(Ts,t,e)))})),setTablesJson:ls,setValuesJson:e=>{try{Ct(Se(e))}catch{}return Ts},setJson:e=>{try{const[t,s]=Se(e);ht(t),Ct(s)}catch{ls(e)}return Ts},setTablesSchema:ns,setValuesSchema:as,setSchema:(e,t)=>$t((()=>{ns(e),as(t)})),delTables:rs,delTable:os,delRow:cs,delCell:(e,t,s,l)=>$t(((e,t,s)=>R(U(ke,e),(n=>R(U(n,t),(a=>$(a,s)?yt(e,n,t,a,s,l):0))))),e,t,s),delValues:is,delValue:e=>$t((e=>$(Ae,e)?Jt(e):0),e),delTablesSchema:ds,delValuesSchema:us,delSchema:()=>$t((()=>{ds(),us()})),transaction:hs,startTransaction:gs,finishTransaction:fs,forEachTable:e=>G(ke,((t,s)=>e(s,(e=>G(t,((t,s)=>e(s,(e=>X(t,e))))))))),forEachTableCell:(e,t)=>X(U(Oe,v(e)),t),forEachRow:(e,t)=>G(U(ke,v(e)),((e,s)=>t(s,(t=>X(e,t))))),forEachCell:(e,t,s)=>X(U(U(ke,v(e)),v(t)),s),forEachValue:e=>X(Ae,e),addSortedRowIdsListener:(e,t,s,l,n,a,r)=>{let o=Ut(e,t,s,l,n);return Ze((()=>{const r=Ut(e,t,s,l,n);var c,i,d;i=o,E(c=r)===E(i)&&(d=(e,t)=>i[t]===e,c.every(d))||(o=r,a(Ts,e,t,s,l,n,o))}),We[r?1:0],[e,t],[Ht])},addStartTransactionListener:e=>Ze(e,Xe),addWillFinishTransactionListener:e=>Ze(e,Ye[0]),addDidFinishTransactionListener:e=>Ze(e,Ye[1]),callListener:e=>(tt(e),Ts),delListener:e=>(et(e),Ts),getListenerStats:()=>({}),createStore:Ie,addListener:Ze,callListeners:_e};return x({[d]:[0,Me],[u]:[0,Ne],[i]:[1,Pe,[Ht]],[i+V]:[1,je,[Ht]],[g]:[1,xe,[Ht]],[f]:[1,De,[Ht]],[h]:[2,$e,[Ht,Qt]],[V]:[2,qe,[Ht,Qt]],[T]:[3,Be,[Ht,Qt,Xt],e=>ue(Yt(...e))],InvalidCell:[3,Ge],[C]:[0,Ke],[S]:[0,Qe],[b]:[1,Ue,[_t],e=>ue(es(e[0]))],InvalidValue:[1,He]},(([e,t,s,l],n)=>{Ts["add"+n+"Listener"]=(...n)=>Ze(n[e],t[n[e+1]?1:0],e>0?F(n,0,e):void 0,s,l)})),M(Ts)};exports.createStore=Ie;
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",g=h+"Count",f=h+c,T="Cell",V=T+c,b="Value",C=b+"s",S=b+c,v=e=>t+e,w=isFinite,I=(e,t)=>e instanceof t,m=e=>null==e,R=(e,t,s)=>m(e)?s?.():t(e),y=e=>e==s||e==l,J=t=>e(t)==a,L=(e,t,s)=>e.slice(t,s),p=(e,t)=>e.forEach(t),E=(e,t)=>e.map(t),F=e=>e.length,z=(e,...t)=>e.push(...t),O=Object,k=O.keys,A=O.isFrozen,M=O.freeze,N=e=>I(e,O)&&e.constructor==O,P=(e,t)=>!m(((e,t)=>R(e,(e=>e[t])))(e,t)),j=(e,t)=>(delete e[t],e),x=(e,t)=>E(O.entries(e),(([e,s])=>t(s,e))),D=e=>N(e)&&0==(e=>F(k(e)))(e),W=e=>e?.size??0,$=(e,t)=>e?.has(t)??!1,q=e=>m(e)||0==W(e),B=e=>e.clear(),G=(e,t)=>e?.forEach(t),H=(e,t)=>e?.delete(t),K=e=>new Map(e),Q=e=>[...e?.keys()??[]],U=(e,t)=>e?.get(t),X=(e,t)=>G(e,((e,s)=>t(s,e))),Y=(e,t,s)=>m(s)?(H(e,t),e):e?.set(t,s),Z=(e,t,s)=>($(e,t)||Y(e,t,s()),U(e,t)),_=(e,t,s,l=Y)=>(x(t,((t,l)=>s(e,l,t))),X(e,(s=>P(t,s)?0:l(e,s))),e),ee=(e,t,s)=>{const l={};return G(e,((e,n)=>{const a=t?t(e,n):e;!s?.(a,e)&&(l[n]=a)})),l},te=(e,t,s)=>ee(e,(e=>ee(e,t,s)),D),se=(e,t,s)=>ee(e,(e=>te(e,t,s)),D),le=(e,t)=>{const s=K();return G(e,((e,l)=>s.set(l,t?.(e)??e))),s},ne=e=>le(e,le),ae=e=>le(e,ne),re=(e,t,s,l,n=0)=>R((s?Z:U)(e,t[n],n>F(t)-2?s:K),(a=>{if(n>F(t)-2)return l?.(a)&&Y(e,t[n]),a;const r=re(a,t,s,l,n+1);return q(a)&&Y(e,t[n]),r})),oe=e=>new Set(Array.isArray(e)||m(e)?e:[e]),ce=(e,t)=>e?.add(t),ie=/^\d+$/,de=()=>{const e=[];let s=0;return[l=>(l?e.shift():null)??t+s++,t=>{ie.test(t)&&F(e)<1e3&&z(e,t)}]},ue=e=>[e,e],he=()=>[K(),K()],ge=e=>[...e],fe=([e,t])=>e===t,Te=t=>{const s=e(t);return y(s)||s==n&&w(t)?s:void 0},Ve=(e,t,s,l,n)=>m(n)?e.delCell(t,s,l,!0):e.setCell(t,s,l,n),be=(e,t,s)=>m(s)?e.delValue(t):e.setValue(t,s),Ce=e=>JSON.stringify(e,((e,t)=>I(t,Map)?O.fromEntries([...t]):t)),Se=JSON.parse,ve=(e,t,s)=>m(e)||!N(e)||D(e)||A(e)?(s?.(),!1):(x(e,((s,l)=>{t(s,l)||j(e,l)})),!D(e)),we=(e,t,s)=>Y(e,t,U(e,t)==-s?void 0:s),Ie=()=>{let e,s,l=!1,a=!1,c=0;const w=K(),I=K(),O=K(),k=K(),A=K(),N=K(),ie=K(),me=K(),Re=K(),ye=K(),Je=K(),Le=K(),pe=K(),Ee=K(),Fe=oe(),ze=K(),Oe=K(),ke=K(),Ae=K(),Me=he(),Ne=he(),Pe=he(),je=he(),xe=he(),De=he(),We=he(),$e=he(),qe=he(),Be=he(),Ge=he(),He=he(),Ke=he(),Qe=he(),Ue=he(),Xe=K(),Ye=he(),[Ze,_e,et,tt]=(e=>{let s;const[l,n]=de(),a=K();return[(e,n,r,o=[],c=(()=>[]))=>{s??=Ts;const i=l(1);return Y(a,i,[e,n,r,o,c]),ce(re(n,r??[t],oe),i),i},(e,l,...n)=>p(((e,s=[t])=>{const l=[],n=(e,t)=>t==F(s)?z(l,e):null===s[t]?G(e,(e=>n(e,t+1))):p([s[t],null],(s=>n(U(e,s),t+1)));return n(e,0),l})(e,l),(e=>G(e,(e=>U(a,e)[0](s,...l??[],...n))))),e=>R(U(a,e),(([,s,l])=>(re(s,l??[t],void 0,(t=>(H(t,e),q(t)?1:0))),Y(a,e),n(e),l))),e=>R(U(a,e),(([e,,t=[],l,n])=>{const a=(...r)=>{const o=F(r);o==F(t)?e(s,...r,...n(r)):m(t[o])?p(l[o]?.(...r)??[],(e=>a(...r,e))):a(...r,t[o])};a()}))]})(),st=e=>{if(!ve(e,((e,t)=>[r,o].includes(t))))return!1;const t=e[r];return!(!y(t)&&t!=n||(Te(e[o])!=t&&j(e,o),0))},lt=(t,s)=>(!e||$(Je,s)||kt(s))&&ve(t,((e,t)=>nt(s,t,e)),(()=>kt(s))),nt=(e,t,s,l)=>ve(l?s:ct(s,e,t),((l,n)=>R(at(e,t,n,l),(e=>(s[n]=e,!0)),(()=>!1))),(()=>kt(e,t))),at=(t,s,l,n)=>e?R(U(U(Je,t),l),(e=>Te(n)!=e[r]?kt(t,s,l,n,e[o]):n),(()=>kt(t,s,l,n))):m(Te(n))?kt(t,s,l,n):n,rt=(e,t)=>ve(t?e:it(e),((t,s)=>R(ot(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>At())),ot=(e,t)=>s?R(U(pe,e),(s=>Te(t)!=s[r]?At(e,t,s[o]):t),(()=>At(e,t))):m(Te(t))?At(e,t):t,ct=(e,t,s)=>(R(U(Le,t),(([l,n])=>{G(l,((t,s)=>{P(e,s)||(e[s]=t)})),G(n,(l=>{P(e,l)||kt(t,s,l)}))})),e),it=e=>(s&&(G(Ee,((t,s)=>{P(e,s)||(e[s]=t)})),G(Fe,(t=>{P(e,t)||At(t)}))),e),dt=e=>_(Je,e,((e,t,s)=>{const l=K(),n=oe();_(Z(Je,t,K),s,((e,t,s)=>{Y(e,t,s),R(s[o],(e=>Y(l,t,e)),(()=>ce(n,t)))})),Y(Le,t,[l,n])}),((e,t)=>{Y(Je,t),Y(Le,t)})),ut=e=>_(pe,e,((e,t,s)=>{Y(pe,t,s),R(s[o],(e=>Y(Ee,t,e)),(()=>ce(Fe,t)))}),((e,t)=>{Y(pe,t),Y(Ee,t),H(Fe,t)})),ht=e=>D(e)?rs():ts(e),gt=e=>_(ke,e,((e,t,s)=>ft(t,s)),((e,t)=>mt(t))),ft=(e,t)=>_(Z(ke,e,(()=>(Lt(e,1),Y(ze,e,de()),Y(Oe,e,K()),K()))),t,((t,s,l)=>Tt(e,t,s,l)),((t,s)=>Rt(e,t,s))),Tt=(e,t,s,l,n)=>_(Z(t,s,(()=>(pt(e,s,1),K()))),l,((t,l,n)=>Vt(e,s,t,l,n)),((l,a)=>yt(e,t,s,l,a,n))),Vt=(e,t,s,l,n)=>{$(s,l)||Et(e,t,l,1);const a=U(s,l);n!==a&&(Ft(e,t,l,a,n),Y(s,l,n))},bt=(e,t,s,l,n)=>R(U(t,s),(t=>Vt(e,s,t,l,n)),(()=>Tt(e,t,s,ct({[l]:n},e,s)))),Ct=e=>D(e)?is():ss(e),St=e=>_(Ae,e,((e,t,s)=>vt(t,s)),((e,t)=>Jt(t))),vt=(e,t)=>{$(Ae,e)||zt(e,1);const s=U(Ae,e);t!==s&&(Ot(e,s,t),Y(Ae,e,t))},wt=(e,t)=>{const[s]=U(ze,e),l=s(t);return $(U(ke,e),l)?wt(e,t):l},It=e=>U(ke,e)??ft(e,{}),mt=e=>ft(e,{}),Rt=(e,t,s)=>{const[,l]=U(ze,e);l(s),Tt(e,t,s,{},!0)},yt=(e,t,s,l,n,a)=>{const r=U(U(Le,e)?.[0],n);if(!m(r)&&!a)return Vt(e,s,l,n,r);const o=t=>{Ft(e,s,t,U(l,t)),Et(e,s,t,-1),Y(l,t)};m(r)?o(n):X(l,o),q(l)&&(pt(e,s,-1),q(Y(t,s))&&(Lt(e,-1),Y(ke,e),Y(ze,e),Y(Oe,e)))},Jt=e=>{const t=U(Ee,e);if(!m(t))return vt(e,t);Ot(e,U(Ae,e)),zt(e,-1),Y(Ae,e)},Lt=(e,t)=>we(w,e,t),pt=(e,t,s)=>we(Z(k,e,K),t,s)&&Y(O,e,Z(O,e,(()=>0))+s),Et=(e,t,s,l)=>{const n=U(Oe,e),a=U(n,s)??0;(0==a&&1==l||1==a&&-1==l)&&we(Z(I,e,K),s,l),Y(n,s,a!=-l?a+l:null),we(Z(Z(A,e,K),t,K),s,l)},Ft=(e,t,s,l,n)=>Z(Z(Z(N,e,K),t,K),s,(()=>[l,0]))[1]=n,zt=(e,t)=>we(ie,e,t),Ot=(e,t,s)=>Z(me,e,(()=>[t,0]))[1]=s,kt=(e,t,s,l,n)=>(z(Z(Z(Z(Re,e,K),t,K),s,(()=>[])),l),n),At=(e,t,s)=>(z(Z(ye,e,(()=>[])),t),s),Mt=(e,t,s)=>R(U(U(U(N,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...ue(Yt(e,t,s))])),Nt=e=>R(U(me,e),(([e,t])=>[!0,e,t]),(()=>[!1,...ue(es(e))])),Pt=e=>q(Re)||q(Ge[e])?0:G(e?ae(Re):Re,((t,s)=>G(t,((t,l)=>G(t,((t,n)=>_e(Ge[e],[s,l,n],t))))))),jt=e=>q(ye)||q(He[e])?0:G(e?le(ye):ye,((t,s)=>_e(He[e],[s],t))),xt=(e,t,s)=>{if(!q(t))return _e(e,s,(()=>ee(t))),1},Dt=e=>{const t=q(We[e]),s=q(qe[e])&&q(je[e])&&q(xe[e])&&q(De[e])&&t&&q(Ne[e]),l=q(Be[e])&&q($e[e])&&q(Pe[e])&&q(Me[e]);if(!s||!l){const n=e?[le(w),ne(I),le(O),ne(k),ae(A),ae(N)]:[w,I,O,k,A,N];if(!s){xt(Ne[e],n[0]),G(n[1],((t,s)=>xt(je[e],t,[s]))),G(n[2],((t,s)=>{0!=t&&_e(xe[e],[s],Kt(s))}));const s=oe();G(n[3],((l,n)=>{xt(De[e],l,[n])&&!t&&(_e(We[e],[n,null]),ce(s,n))})),t||G(n[5],((t,l)=>{if(!$(s,l)){const s=oe();G(t,(e=>G(e,(([t,l],n)=>l!==t?ce(s,n):H(e,n))))),G(s,(t=>_e(We[e],[l,t])))}})),G(n[4],((t,s)=>G(t,((t,l)=>xt(qe[e],t,[s,l])))))}if(!l){let t;G(n[5],((s,l)=>{let n;G(s,((s,a)=>{let r;G(s,(([s,o],c)=>{o!==s&&(_e(Be[e],[l,a,c],o,s,Mt),t=n=r=1)})),r&&_e($e[e],[l,a],Mt)})),n&&_e(Pe[e],[l],Mt)})),t&&_e(Me[e],void 0,Mt)}}},Wt=e=>{const t=q(Qe[e]),s=q(Ue[e])&&q(Ke[e]);if(!t||!s){const l=e?[le(ie),le(me)]:[ie,me];if(t||xt(Qe[e],l[0]),!s){let t;G(l[1],(([s,l],n)=>{l!==s&&(_e(Ue[e],[n],l,s,Nt),t=1)})),t&&_e(Ke[e],void 0,Nt)}}},$t=(e,...t)=>(hs((()=>e(...E(t,v)))),Ts),qt=()=>[ee(N,((e,t)=>-1===U(w,t)?null:ee(e,((e,s)=>-1===U(U(k,t),s)?null:ee(e,(([,e])=>e??null),((e,t)=>fe(t)))),D)),D),ee(me,(([,e])=>e??null),((e,t)=>fe(t)))],Bt=()=>({cellsTouched:l,valuesTouched:a,changedCells:se(N,ge,fe),invalidCells:se(Re),changedValues:ee(me,ge,fe),invalidValues:ee(ye),changedTableIds:ee(w),changedRowIds:te(k),changedCellIds:se(A),changedValueIds:ee(ie)}),Gt=()=>se(ke),Ht=()=>Q(ke),Kt=e=>W(U(ke,v(e))),Qt=e=>Q(U(ke,v(e))),Ut=(e,t,s,l=0,n)=>{return E(L((r=U(ke,v(e)),o=(e,s)=>[m(t)?s:U(e,v(t)),s],a=([e],[t])=>((e??0)<(t??0)?-1:1)*(s?-1:1),E([...r?.entries()??[]],(([e,t])=>o(t,e))).sort(a)),l,m(n)?n:l+n),(([,e])=>e));var a,r,o},Xt=(e,t)=>Q(U(U(ke,v(e)),v(t))),Yt=(e,t,s)=>U(U(U(ke,v(e)),v(t)),v(s)),Zt=()=>ee(Ae),_t=()=>Q(Ae),es=e=>U(Ae,v(e)),ts=e=>$t((()=>(e=>ve(e,lt,kt))(e)?gt(e):0)),ss=e=>$t((()=>rt(e)?St(e):0)),ls=e=>{try{ht(Se(e))}catch{}return Ts},ns=t=>$t((()=>{if((e=ve(t,(e=>ve(e,st))))&&(dt(t),!q(ke))){const e=Gt();rs(),ts(e)}})),as=e=>$t((()=>{if(s=(e=>ve(e,st))(e)){const t=Zt();us(),is(),s=!0,ut(e),ss(t)}})),rs=()=>$t((()=>gt({}))),os=e=>$t((e=>$(ke,e)?mt(e):0),e),cs=(e,t)=>$t(((e,t)=>R(U(ke,e),(s=>$(s,t)?Rt(e,s,t):0))),e,t),is=()=>$t((()=>St({}))),ds=()=>$t((()=>{dt({}),e=!1})),us=()=>$t((()=>{ut({}),s=!1})),hs=(e,t)=>{if(-1!=c){gs();const s=e();return fs(t),s}},gs=()=>(-1!=c&&c++,1==c&&_e(Xe,void 0,qt,Bt),Ts),fs=e=>(c>0&&(c--,0==c&&(l=!q(N),a=!q(me),c=1,Pt(1),l&&Dt(1),jt(1),a&&Wt(1),e?.(qt,Bt)&&(G(N,((e,t)=>G(e,((e,s)=>G(e,(([e],l)=>Ve(Ts,t,s,l,e))))))),G(me,(([e],t)=>be(Ts,t,e))),l=a=!1),_e(Ye[0],void 0,qt,Bt),c=-1,Pt(0),l&&Dt(0),jt(0),a&&Wt(0),_e(Ye[1],void 0,qt,Bt),c=0,l=a=!1,p([w,I,O,k,A,N,Re,ie,me,ye],B))),Ts),Ts={getContent:()=>[Gt(),Zt()],getTables:Gt,getTableIds:Ht,getTable:e=>te(U(ke,v(e))),getTableCellIds:e=>Q(U(Oe,v(e))),getRowCount:Kt,getRowIds:Qt,getSortedRowIds:Ut,getRow:(e,t)=>ee(U(U(ke,v(e)),v(t))),getCellIds:Xt,getCell:Yt,getValues:Zt,getValueIds:_t,getValue:es,hasTables:()=>!q(ke),hasTable:e=>$(ke,v(e)),hasTableCell:(e,t)=>$(U(Oe,v(e)),v(t)),hasRow:(e,t)=>$(U(ke,v(e)),v(t)),hasCell:(e,t,s)=>$(U(U(ke,v(e)),v(t)),v(s)),hasValues:()=>!q(Ae),hasValue:e=>$(Ae,v(e)),getTablesJson:()=>Ce(ke),getValuesJson:()=>Ce(Ae),getJson:()=>Ce([ke,Ae]),getTablesSchemaJson:()=>Ce(Je),getValuesSchemaJson:()=>Ce(pe),getSchemaJson:()=>Ce([Je,pe]),hasTablesSchema:()=>e,hasValuesSchema:()=>s,setContent:([e,t])=>$t((()=>{(D(e)?rs:ts)(e),(D(t)?is:ss)(t)})),setTables:ts,setTable:(e,t)=>$t((e=>lt(t,e)?ft(e,t):0),e),setRow:(e,t,s)=>$t(((e,t)=>nt(e,t,s)?Tt(e,It(e),t,s):0),e,t),addRow:(e,t,s=!0)=>hs((()=>{let l;return nt(e,l,t)&&(e=v(e),Tt(e,It(e),l=wt(e,s?1:0),t)),l})),setPartialRow:(e,t,s)=>$t(((e,t)=>{if(nt(e,t,s,1)){const l=It(e);x(s,((s,n)=>bt(e,l,t,n,s)))}}),e,t),setCell:(e,t,s,l)=>$t(((e,t,s)=>R(at(e,t,s,J(l)?l(Yt(e,t,s)):l),(l=>bt(e,It(e),t,s,l)))),e,t,s),setValues:ss,setPartialValues:e=>$t((()=>rt(e,1)?x(e,((e,t)=>vt(t,e))):0)),setValue:(e,t)=>$t((e=>R(ot(e,J(t)?t(es(e)):t),(t=>vt(e,t)))),e),setTransactionChanges:e=>$t((()=>{x(e[0],((e,t)=>m(e)?os(t):x(e,((e,s)=>m(e)?cs(t,s):x(e,((e,l)=>Ve(Ts,t,s,l,e))))))),x(e[1],((e,t)=>be(Ts,t,e)))})),setTablesJson:ls,setValuesJson:e=>{try{Ct(Se(e))}catch{}return Ts},setJson:e=>$t((()=>{try{const[t,s]=Se(e);ht(t),Ct(s)}catch{ls(e)}})),setTablesSchema:ns,setValuesSchema:as,setSchema:(e,t)=>$t((()=>{ns(e),as(t)})),delTables:rs,delTable:os,delRow:cs,delCell:(e,t,s,l)=>$t(((e,t,s)=>R(U(ke,e),(n=>R(U(n,t),(a=>$(a,s)?yt(e,n,t,a,s,l):0))))),e,t,s),delValues:is,delValue:e=>$t((e=>$(Ae,e)?Jt(e):0),e),delTablesSchema:ds,delValuesSchema:us,delSchema:()=>$t((()=>{ds(),us()})),transaction:hs,startTransaction:gs,finishTransaction:fs,forEachTable:e=>G(ke,((t,s)=>e(s,(e=>G(t,((t,s)=>e(s,(e=>X(t,e))))))))),forEachTableCell:(e,t)=>X(U(Oe,v(e)),t),forEachRow:(e,t)=>G(U(ke,v(e)),((e,s)=>t(s,(t=>X(e,t))))),forEachCell:(e,t,s)=>X(U(U(ke,v(e)),v(t)),s),forEachValue:e=>X(Ae,e),addSortedRowIdsListener:(e,t,s,l,n,a,r)=>{let o=Ut(e,t,s,l,n);return Ze((()=>{const r=Ut(e,t,s,l,n);var c,i,d;i=o,F(c=r)===F(i)&&(d=(e,t)=>i[t]===e,c.every(d))||(o=r,a(Ts,e,t,s,l,n,o))}),We[r?1:0],[e,t],[Ht])},addStartTransactionListener:e=>Ze(e,Xe),addWillFinishTransactionListener:e=>Ze(e,Ye[0]),addDidFinishTransactionListener:e=>Ze(e,Ye[1]),callListener:e=>(tt(e),Ts),delListener:e=>(et(e),Ts),getListenerStats:()=>({}),createStore:Ie,addListener:Ze,callListeners:_e};return x({[d]:[0,Me],[u]:[0,Ne],[i]:[1,Pe,[Ht]],[i+V]:[1,je,[Ht]],[g]:[1,xe,[Ht]],[f]:[1,De,[Ht]],[h]:[2,$e,[Ht,Qt]],[V]:[2,qe,[Ht,Qt]],[T]:[3,Be,[Ht,Qt,Xt],e=>ue(Yt(...e))],InvalidCell:[3,Ge],[C]:[0,Ke],[S]:[0,Qe],[b]:[1,Ue,[_t],e=>ue(es(e[0]))],InvalidValue:[1,He]},(([e,t,s,l],n)=>{Ts["add"+n+"Listener"]=(...n)=>Ze(n[e],t[n[e+1]?1:0],e>0?L(n,0,e):void 0,s,l)})),M(Ts)};exports.createStore=Ie;
Binary file
@@ -1 +1 @@
1
- "use strict";const e=e=>typeof e,t="",s=e(t),n=e(!0),a=e(0),o=e(e),r="type",l="default",i="Listener",c="Result",d="add",u="Ids",h="Table",g=h+"s",f=h+u,L="Row",w=L+"Count",I=L+u,S="Sorted"+L+u,R="Cell",v=R+u,T="Value",p=T+"s",C=T+u,y=e=>t+e,b=Math.max,V=Math.min,m=isFinite,x=(e,t)=>e instanceof t,E=e=>null==e,k=(e,t,s)=>E(e)?s?.():t(e),M=e=>e==s||e==n,D=t=>e(t)==o,J=e=>Array.isArray(e),A=()=>{},F=(e,t)=>e.includes(t),Q=(e,t)=>e.every(t),z=(e,t)=>B(e)===B(t)&&Q(e,((e,s)=>t[s]===e)),N=(e,t)=>Q(e,((s,n)=>0==n||t(e[n-1],s)<=0)),O=(e,t)=>e.sort(t),P=(e,t)=>e.forEach(t),j=(e,t)=>e.map(t),W=e=>q(e,((e,t)=>e+t),0),B=e=>e.length,$=e=>0==B(e),q=(e,t,s)=>e.reduce(t,s),G=(e,t,s)=>e.slice(t,s),H=(e,...t)=>e.push(...t),K=e=>e.pop(),U=e=>e.shift(),X=Object,Y=X.keys,Z=X.isFrozen,_=X.freeze,ee=e=>x(e,X)&&e.constructor==X,te=(e,t)=>!E(((e,t)=>k(e,(e=>e[t])))(e,t)),se=(e,t)=>(delete e[t],e),ne=(e,t)=>j(X.entries(e),(([e,s])=>t(s,e))),ae=e=>ee(e)&&0==(e=>B(Y(e)))(e),oe=e=>e?.size??0,re=(e,t)=>e?.has(t)??!1,le=e=>E(e)||0==oe(e),ie=e=>[...e?.values()??[]],ce=e=>e.clear(),de=(e,t)=>e?.forEach(t),ue=(e,t)=>e?.delete(t),he=e=>new Map(e),ge=e=>[...e?.keys()??[]],fe=(e,t)=>e?.get(t),Le=(e,t)=>de(e,((e,s)=>t(s,e))),we=(e,t,s)=>E(s)?(ue(e,t),e):e?.set(t,s),Ie=(e,t,s)=>(re(e,t)||we(e,t,s()),fe(e,t)),Se=(e,t,s,n=we)=>(ne(t,((t,n)=>s(e,n,t))),Le(e,(s=>te(t,s)?0:n(e,s))),e),Re=(e,t,s)=>{const n={};return de(e,((e,a)=>{const o=t?t(e,a):e;!s?.(o,e)&&(n[a]=o)})),n},ve=(e,t,s)=>Re(e,(e=>Re(e,t,s)),ae),Te=(e,t,s)=>Re(e,(e=>ve(e,t,s)),ae),pe=(e,t)=>{const s=he();return de(e,((e,n)=>s.set(n,t?.(e)??e))),s},Ce=e=>pe(e,pe),ye=e=>pe(e,Ce),be=(e,t,s,n,a=0)=>k((s?Ie:fe)(e,t[a],a>B(t)-2?s:he),(o=>{if(a>B(t)-2)return n?.(o)&&we(e,t[a]),o;const r=be(o,t,s,n,a+1);return le(o)&&we(e,t[a]),r})),Ve=t=>{const s=e(t);return M(s)||s==a&&m(t)?s:void 0},me=(e,t,s,n,a)=>E(a)?e.delCell(t,s,n,!0):e.setCell(t,s,n,a),xe=(e,t,s)=>E(s)?e.delValue(t):e.setValue(t,s),Ee=e=>new Set(J(e)||E(e)?e:[e]),ke=(e,t)=>e?.add(t),Me=(e,t,s,n,a)=>{const o=e.hasRow,r=he(),l=he(),i=he(),c=he(),d=he(),u=he(),h=(t,s,...n)=>{const a=Ie(u,t,Ee);return P(n,(t=>ke(a,t)&&s&&e.callListener(t))),n},g=(t,...s)=>k(fe(u,t),(n=>{P($(s)?ie(n):s,(t=>{e.delListener(t),ue(n,t)})),le(n)&&we(u,t)})),f=(e,s)=>{we(r,e,s),re(l,e)||(we(l,e,t()),we(c,e,he()),we(d,e,he()),a(i))},L=e=>{we(r,e),we(l,e),we(c,e),we(d,e),g(e),a(i)};return[()=>e,()=>ge(r),e=>Le(l,e),e=>re(l,e),e=>fe(r,e),e=>fe(l,e),(e,t)=>we(l,e,t),f,(t,n,a,r,l)=>{f(t,n);const i=he(),u=he(),L=fe(c,t),w=fe(d,t),I=t=>{const a=s=>e.getCell(n,t,s),c=fe(L,t),d=o(n,t)?s(r(a,t)):void 0;if(c===d||J(c)&&J(d)&&z(c,d)||we(i,t,[c,d]),!E(l)){const e=fe(w,t),s=o(n,t)?l(a,t):void 0;e!=s&&we(u,t,s)}},S=e=>{a((()=>{de(i,(([,e],t)=>we(L,t,e))),de(u,((e,t)=>we(w,t,e)))}),i,u,L,w,e),ce(i),ce(u)};Le(L,I),e.hasTable(n)&&P(e.getRowIds(n),(e=>{re(L,e)||I(e)})),S(!0),g(t),h(t,0,e.addRowListener(n,null,((e,t,s)=>I(s))),e.addTableListener(n,(()=>S())))},L,e=>n(e,i),()=>Le(u,L),h,g]},De=(n,a)=>e(n)==s?e=>e(n):n??(()=>a??t),Je=e=>{const t=new WeakMap;return s=>(t.has(s)||t.set(s,e(s)),t.get(s))},Ae=/^\d+$/,Fe=()=>{const e=[];let s=0;return[n=>(n?U(e):null)??t+s++,t=>{Ae.test(t)&&B(e)<1e3&&H(e,t)}]},Qe=e=>{let s;const[n,a]=Fe(),o=he();return[(a,r,l,i=[],c=(()=>[]))=>{s??=e();const d=n(1);return we(o,d,[a,r,l,i,c]),ke(be(r,l??[t],Ee),d),d},(e,n,...a)=>P(((e,s=[t])=>{const n=[],a=(e,t)=>t==B(s)?H(n,e):null===s[t]?de(e,(e=>a(e,t+1))):P([s[t],null],(s=>a(fe(e,s),t+1)));return a(e,0),n})(e,n),(e=>de(e,(e=>fe(o,e)[0](s,...n??[],...a))))),e=>k(fe(o,e),(([,s,n])=>(be(s,n??[t],void 0,(t=>(ue(t,e),le(t)?1:0))),we(o,e),a(e),n))),e=>k(fe(o,e),(([e,,t=[],n,a])=>{const o=(...r)=>{const l=B(r);l==B(t)?e(s,...r,...a(r)):E(t[l])?P(n[l]?.(...r)??[],(e=>o(...r,e))):o(...r,t[l])};o()}))]},ze=Je((e=>{let s,n,a,o=100,r=he(),l=he(),i=1;const c=he(),d=he(),[u,h,g]=Qe((()=>Q)),f=he(),L=he(),w=[],I=[],S=(t,s)=>{i=0,e.transaction((()=>{const[n,a]=fe(f,s);de(n,((s,n)=>de(s,((s,a)=>de(s,((s,o)=>me(e,n,a,o,s[t]))))))),de(a,((s,n)=>xe(e,n,s[t])))})),i=1},R=e=>{we(f,e),we(L,e),h(d,[e])},v=(e,t)=>P(((e,t)=>e.splice(0,t))(e,t??B(e)),R),T=()=>v(w,B(w)-o),p=()=>k(s,(()=>{H(w,s),T(),v(I),s=void 0,a=1})),C=()=>{s=K(w),a=1},y=e.addCellListener(null,null,null,((e,t,s,n,a,o)=>{if(i){p();const e=Ie(r,t,he),l=Ie(e,s,he),i=Ie(l,n,(()=>[o,void 0]));i[1]=a,i[0]===a&&le(we(l,n))&&le(we(e,s))&&le(we(r,t))&&C(),M()}})),b=e.addValueListener(null,((e,t,s,n)=>{if(i){p();const e=Ie(l,t,(()=>[n,void 0]));e[1]=s,e[0]===s&&le(we(l,t))&&C(),M()}})),V=(e="")=>(E(s)&&(s=t+n++,we(f,s,[r,l]),J(s,e),r=he(),l=he(),a=1),s),m=()=>{$(w)||(((e,...t)=>{e.unshift(...t)})(I,V()),S(0,s),s=K(w),a=1)},x=()=>{$(I)||(H(w,s),s=U(I),S(1,s),a=1)},M=()=>{a&&(h(c),a=0)},D=e=>{const t=V(e);return M(),t},J=(e,t)=>(A(e)&&fe(L,e)!==t&&(we(L,e,t),h(d,[e])),Q),A=e=>re(f,e),Q={setSize:e=>(o=e,T(),Q),addCheckpoint:D,setCheckpoint:J,getStore:()=>e,getCheckpointIds:()=>[[...w],s,[...I]],forEachCheckpoint:e=>Le(L,e),hasCheckpoint:A,getCheckpoint:e=>fe(L,e),goBackward:()=>(m(),M(),Q),goForward:()=>(x(),M(),Q),goTo:e=>{const t=F(w,e)?m:F(I,e)?x:null;for(;!E(t)&&e!=s;)t();return M(),Q},addCheckpointIdsListener:e=>u(e,c),addCheckpointListener:(e,t)=>u(t,d,[e]),delListener:e=>(g(e),Q),clear:()=>(v(w),v(I),E(s)||R(s),s=void 0,n=0,D(),Q),destroy:()=>{e.delListener(y),e.delListener(b)},getListenerStats:()=>({})};return _(Q.clear())})),Ne=(e,t)=>(e??0)<(t??0)?-1:1,Oe=Je((e=>{const s=he(),n=he(),[a,o,r]=Qe((()=>R)),[l,i,c,d,u,h,g,,f,L,w,I]=Me(e,he,(e=>E(e)?t:J(e)?j(e,y):y(e)),a,o),S=(t,s,n)=>{const a=u(t);de(n,((t,n)=>s(n,(s=>de(t,(t=>s(t,(s=>e.forEachCell(a,t,s)))))))))},R={setIndexDefinition:(e,t,a,r,l,i=Ne)=>{const c=E(l)?void 0:([e],[t])=>l(e,t);return f(e,t,((t,a,l,d,u,f)=>{let L=0;const w=Ee(),I=Ee(),S=h(e);if(de(a,(([e,t],s)=>{const n=Ee(e),a=Ee(t);de(n,(e=>ue(a,e)?ue(n,e):0)),de(n,(e=>{ke(w,e),k(fe(S,e),(t=>{ue(t,s),le(t)&&(we(S,e),L=1)}))})),de(a,(e=>{ke(w,e),re(S,e)||(we(S,e,Ee()),L=1),ke(fe(S,e),s),E(r)||ke(I,e)}))})),t(),le(u)||(f?Le(S,(e=>ke(I,e))):Le(l,(e=>k(fe(d,e),(e=>ke(I,e))))),de(I,(e=>{const t=(t,s)=>i(fe(u,t),fe(u,s),e),s=[...fe(S,e)];N(s,t)||(we(S,e,Ee(O(s,t))),ke(w,e))}))),(L||f)&&!E(c)){const t=[...S];N(t,c)||(g(e,he(O(t,c))),L=1)}L&&o(s,[e]),de(w,(t=>o(n,[e,t])))}),De(a),k(r,De)),R},delIndexDefinition:e=>(L(e),R),getStore:l,getIndexIds:i,forEachIndex:e=>c(((t,s)=>e(t,(e=>S(t,e,s))))),forEachSlice:(e,t)=>S(e,t,h(e)),hasIndex:d,hasSlice:(e,t)=>re(h(e),t),getTableId:u,getSliceIds:e=>ge(h(e)),getSliceRowIds:(e,t)=>ie(fe(h(e),t)),addIndexIdsListener:w,addSliceIdsListener:(e,t)=>a(t,s,[e]),addSliceRowIdsListener:(e,t,s)=>a(s,n,[e,t]),delListener:e=>(r(e),R),destroy:I,getListenerStats:()=>({})};return _(R)})),Pe=he([["avg",[(e,t)=>W(e)/t,(e,t,s)=>e+(t-e)/(s+1),(e,t,s)=>e+(e-t)/(s-1),(e,t,s,n)=>e+(t-s)/n]],["max",[e=>b(...e),(e,t)=>b(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:b(t,e)]],["min",[e=>V(...e),(e,t)=>V(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:V(t,e)]],["sum",[e=>W(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),je=(e,t,s,n,a,o=!1)=>{if(le(s))return;const[r,l,i,c]=a;return o||=E(e),de(n,(([s,n])=>{o||(e=E(s)?l?.(e,n,t++):E(n)?i?.(e,s,t--):c?.(e,n,s,t),o||=E(e))})),o?r(ie(s),oe(s)):e},We=Je((e=>{const s=he(),[n,a,o]=Qe((()=>I)),[r,l,i,c,d,u,h,,g,f,L,w]=Me(e,A,(e=>isNaN(e)||E(e)||!0===e||!1===e||e===t?void 0:1*e),n,a),I={setMetricDefinition:(e,t,n,o,r,l,i)=>{const c=D(n)?[n,r,l,i]:fe(Pe,n)??fe(Pe,"sum");return g(e,t,((t,n,o,r,l,i)=>{const d=u(e),g=oe(r);i||=E(d),t();let f=je(d,g,r,n,c,i);m(f)||(f=void 0),f!=d&&(h(e,f),a(s,[e],f,d))}),De(o,1)),I},delMetricDefinition:e=>(f(e),I),getStore:r,getMetricIds:l,forEachMetric:i,hasMetric:c,getTableId:d,getMetric:u,addMetricIdsListener:L,addMetricListener:(e,t)=>n(t,s,[e]),delListener:e=>(o(e),I),destroy:w,getListenerStats:()=>({})};return _(I)})),Be=he(),$e=he(),qe=Je((e=>{const s=e.createStore,n=s(),a=s(),o=he(),{addListener:r,callListeners:l,delListener:u}=a,[g,f,T,p,C,,,y,,b,V,m,x,M]=Me(e,(()=>!0),A,r,l),J=(e,t,...s)=>P(s,(s=>ke(Ie(Ie(o,t,he),e,Ee),s))),F=e=>{k(fe(o,e),(e=>{Le(e,((e,t)=>de(t,(t=>e.delListener(t))))),ce(e)})),P([a,n],(t=>t.delTable(e)))},z=(e,t,s)=>J(t,e,t.addStartTransactionListener(s.startTransaction),t.addDidFinishTransactionListener((()=>s.finishTransaction()))),N={setQueryDefinition:(s,o,r)=>{y(s,o),F(s);const l=[],i=[[null,[o,null,null,[],he()]]],c=[],d=[],u=[];r({select:(e,s)=>{const n=D(e)?[B(l)+t,e]:[E(s)?e:s,t=>t(e,s)];return H(l,n),{as:e=>n[0]=e}},join:(e,t,s)=>{const n=E(s)||D(t)?null:t,a=E(n)?t:s,o=[e,[e,n,D(a)?a:e=>e(a),[],he()]];return H(i,o),{as:e=>o[0]=e}},where:(e,t,s)=>H(c,D(e)?e:E(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,a)=>{const o=[e,[e,D(t)?[t,s,n,a]:fe(Pe,t)??[(e,t)=>t]]];return H(d,o),{as:e=>o[0]=e}},having:(e,t)=>H(u,D(e)?e:s=>s(e)===t)});const h=he(l);if(le(h))return N;const g=he(i);Le(g,((e,[,t])=>k(fe(g,t),(({3:t})=>E(e)?0:H(t,e)))));const f=he(d);let L=n;if(le(f)&&$(u))L=a;else{z(s,L,a);const e=he();Le(f,((t,[s,n])=>ke(Ie(e,s,Ee),[t,n])));const t=Ee();Le(h,(s=>re(e,s)?0:ke(t,s)));const n=he(),o=(t,n,o,r)=>k(t,(([l,i,c,d])=>{Le(n,((t,[s])=>{const n=Ie(l,t,he),a=fe(n,o),i=r?void 0:s;if(a!==i){const s=Ee([[a,i]]),r=oe(n);we(n,o,i),de(fe(e,t),(([e,t])=>{const a=je(d[e],r,n,s,t);d[e]=E(Ve(a))?null:a}))}})),le(i)||!Q(u,(e=>e((e=>d[e]))))?a.delRow(s,c):E(c)?t[2]=a.addRow(s,d):a.setRow(s,c,d)}));J(L,s,L.addRowListener(s,null,((a,r,l,i)=>{const c=[],d=[],u=he(),h=L.hasRow(s,l);let g=!h;de(t,(e=>{const[t,n,a]=i(s,l,e);H(c,n),H(d,a),g||=t})),Le(e,(e=>{const[t,,n]=i(s,l,e);(g||t)&&we(u,e,[n])})),g&&o(be(n,c,void 0,(([,e])=>(ue(e,l),le(e)))),u,l,1),h&&o(be(n,d,(()=>{const e={};return de(t,(t=>e[t]=L.getCell(s,l,t))),[he(),Ee(),void 0,e]}),(([,e])=>{ke(e,l)})),u,l)})))}z(s,e,L);const w=(t,n,a,r)=>{const l=t=>e.getCell(n,a,t);P(r,(n=>{const[a,,o,r,i]=fe(g,n),c=o?.(l,t),[d,u]=fe(i,t)??[];c!=d&&(E(u)||M(s,u),we(i,t,E(c)?null:[c,...x(s,1,e.addRowListener(a,c,(()=>w(t,a,c,r))))]))})),(t=>{const n=(s,n)=>e.getCell(...E(n)?[o,t,s]:s===o?[o,t,n]:[fe(g,s)?.[0],fe(fe(g,s)?.[4],t)?.[0],n]);L.transaction((()=>Q(c,(e=>e(n)))?Le(h,((e,a)=>me(L,s,t,e,a(n,t)))):L.delRow(s,t)))})(t)},{3:I}=fe(g,null);return L.transaction((()=>x(s,1,e.addRowListener(o,null,((t,n,a)=>{e.hasRow(o,a)?w(a,o,a,I):(L.delRow(s,a),de(g,(({4:e})=>k(fe(e,a),(([,t])=>{M(s,t),we(e,a)})))))}))))),N},delQueryDefinition:e=>(F(e),b(e),N),getStore:g,getQueryIds:f,forEachQuery:T,hasQuery:p,getTableId:C,addQueryIdsListener:e=>V((()=>e(N))),delListener:e=>(u(e),N),destroy:m,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=a.getListenerStats();return n}};return ne({[h]:[1,1],[h+v]:[0,1],[w]:[0,1],[I]:[0,1],[S]:[0,5],[L]:[1,2],[v]:[0,2],[R]:[1,3]},(([e,t],s)=>{P(e?["get","has","forEach"]:["get"],(e=>N[e+c+s]=(...t)=>a[e+s](...t))),N[d+c+s+i]=(...e)=>a[d+s+i](...G(e,0,t),((s,...n)=>e[t](N,...n)))})),_(N)})),Ge=Je((e=>{const s=he(),n=he(),a=he(),o=he(),[r,l,i]=Qe((()=>p)),[c,d,u,h,g,f,,,L,w,I,S]=Me(e,(()=>[he(),he(),he(),he()]),(e=>E(e)?void 0:e+t),r,l),R=(e,t,s)=>k(f(e),(([n,,a])=>{if(!re(a,t)){const o=Ee();if(g(e)!=T(e))ke(o,t);else{let e=t;for(;!E(e)&&!re(o,e);)ke(o,e),e=fe(n,e)}if(s)return o;we(a,t,o)}return fe(a,t)})),v=(e,t)=>k(f(e),(([,,e])=>we(e,t))),T=e=>fe(s,e),p={setRelationshipDefinition:(e,t,r,i)=>(we(s,e,r),L(e,t,((t,s)=>{const r=Ee(),i=Ee(),c=Ee(),[d,u]=f(e);de(s,(([t,s],n)=>{E(t)||(ke(i,t),k(fe(u,t),(e=>{ue(e,n),le(e)&&we(u,t)}))),E(s)||(ke(i,s),re(u,s)||we(u,s,Ee()),ke(fe(u,s),n)),ke(r,n),we(d,n,s),Le(fe(o,e),(t=>{re(R(e,t),n)&&ke(c,t)}))})),t(),de(r,(t=>l(n,[e,t]))),de(i,(t=>l(a,[e,t]))),de(c,(t=>{v(e,t),l(o,[e,t])}))}),De(i)),p),delRelationshipDefinition:e=>(we(s,e),w(e),p),getStore:c,getRelationshipIds:d,forEachRelationship:t=>u((s=>t(s,(t=>e.forEachRow(g(s),t))))),hasRelationship:h,getLocalTableId:g,getRemoteTableId:T,getRemoteRowId:(e,t)=>fe(f(e)?.[0],t),getLocalRowIds:(e,t)=>ie(fe(f(e)?.[1],t)),getLinkedRowIds:(e,t)=>E(f(e))?[t]:ie(R(e,t,!0)),addRelationshipIdsListener:I,addRemoteRowIdListener:(e,t,s)=>r(s,n,[e,t]),addLocalRowIdsListener:(e,t,s)=>r(s,a,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(R(e,t),r(s,o,[e,t])),delListener:e=>(v(...i(e)??[]),p),destroy:S,getListenerStats:()=>({})};return _(p)})),He=e=>[e,e],Ke=()=>[he(),he()],Ue=e=>[...e],Xe=([e,t])=>e===t,Ye=e=>JSON.stringify(e,((e,t)=>x(t,Map)?X.fromEntries([...t]):t)),Ze=JSON.parse,_e=(e,t,s)=>E(e)||!ee(e)||ae(e)||Z(e)?(s?.(),!1):(ne(e,((s,n)=>{t(s,n)||se(e,n)})),!ae(e)),et=(e,t,s)=>we(e,t,fe(e,t)==-s?void 0:s),tt=()=>{let e,t,s=!1,n=!1,o=0;const c=he(),u=he(),S=he(),b=he(),V=he(),m=he(),x=he(),J=he(),A=he(),Q=he(),N=he(),W=he(),B=he(),$=he(),q=Ee(),K=he(),U=he(),X=he(),Y=he(),Z=Ke(),ee=Ke(),ie=Ke(),be=Ke(),Me=Ke(),De=Ke(),Je=Ke(),Ae=Ke(),ze=Ke(),Oe=Ke(),Pe=Ke(),je=Ke(),We=Ke(),Be=Ke(),$e=Ke(),qe=he(),Ge=Ke(),[st,nt,at,ot]=Qe((()=>Rs)),rt=e=>{if(!_e(e,((e,t)=>F([r,l],t))))return!1;const t=e[r];return!(!M(t)&&t!=a||(Ve(e[l])!=t&&se(e,l),0))},lt=(t,s)=>(!e||re(N,s)||zt(s))&&_e(t,((e,t)=>it(s,t,e)),(()=>zt(s))),it=(e,t,s,n)=>_e(n?s:ht(s,e,t),((n,a)=>k(ct(e,t,a,n),(e=>(s[a]=e,!0)),(()=>!1))),(()=>zt(e,t))),ct=(t,s,n,a)=>e?k(fe(fe(N,t),n),(e=>Ve(a)!=e[r]?zt(t,s,n,a,e[l]):a),(()=>zt(t,s,n,a))):E(Ve(a))?zt(t,s,n,a):a,dt=(e,t)=>_e(t?e:gt(e),((t,s)=>k(ut(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>Nt())),ut=(e,s)=>t?k(fe(B,e),(t=>Ve(s)!=t[r]?Nt(e,s,t[l]):s),(()=>Nt(e,s))):E(Ve(s))?Nt(e,s):s,ht=(e,t,s)=>(k(fe(W,t),(([n,a])=>{de(n,((t,s)=>{te(e,s)||(e[s]=t)})),de(a,(n=>{te(e,n)||zt(t,s,n)}))})),e),gt=e=>(t&&(de($,((t,s)=>{te(e,s)||(e[s]=t)})),de(q,(t=>{te(e,t)||Nt(t)}))),e),ft=e=>Se(N,e,((e,t,s)=>{const n=he(),a=Ee();Se(Ie(N,t,he),s,((e,t,s)=>{we(e,t,s),k(s[l],(e=>we(n,t,e)),(()=>ke(a,t)))})),we(W,t,[n,a])}),((e,t)=>{we(N,t),we(W,t)})),Lt=e=>Se(B,e,((e,t,s)=>{we(B,t,s),k(s[l],(e=>we($,t,e)),(()=>ke(q,t)))}),((e,t)=>{we(B,t),we($,t),ue(q,t)})),wt=e=>ae(e)?ds():os(e),It=e=>Se(X,e,((e,t,s)=>St(t,s)),((e,t)=>mt(t))),St=(e,t)=>Se(Ie(X,e,(()=>(Mt(e,1),we(K,e,Fe()),we(U,e,he()),he()))),t,((t,s,n)=>Rt(e,t,s,n)),((t,s)=>xt(e,t,s))),Rt=(e,t,s,n,a)=>Se(Ie(t,s,(()=>(Dt(e,s,1),he()))),n,((t,n,a)=>vt(e,s,t,n,a)),((n,o)=>Et(e,t,s,n,o,a))),vt=(e,t,s,n,a)=>{re(s,n)||Jt(e,t,n,1);const o=fe(s,n);a!==o&&(At(e,t,n,o,a),we(s,n,a))},Tt=(e,t,s,n,a)=>k(fe(t,s),(t=>vt(e,s,t,n,a)),(()=>Rt(e,t,s,ht({[n]:a},e,s)))),pt=e=>ae(e)?gs():rs(e),Ct=e=>Se(Y,e,((e,t,s)=>yt(t,s)),((e,t)=>kt(t))),yt=(e,t)=>{re(Y,e)||Ft(e,1);const s=fe(Y,e);t!==s&&(Qt(e,s,t),we(Y,e,t))},bt=(e,t)=>{const[s]=fe(K,e),n=s(t);return re(fe(X,e),n)?bt(e,t):n},Vt=e=>fe(X,e)??St(e,{}),mt=e=>St(e,{}),xt=(e,t,s)=>{const[,n]=fe(K,e);n(s),Rt(e,t,s,{},!0)},Et=(e,t,s,n,a,o)=>{const r=fe(fe(W,e)?.[0],a);if(!E(r)&&!o)return vt(e,s,n,a,r);const l=t=>{At(e,s,t,fe(n,t)),Jt(e,s,t,-1),we(n,t)};E(r)?l(a):Le(n,l),le(n)&&(Dt(e,s,-1),le(we(t,s))&&(Mt(e,-1),we(X,e),we(K,e),we(U,e)))},kt=e=>{const t=fe($,e);if(!E(t))return yt(e,t);Qt(e,fe(Y,e)),Ft(e,-1),we(Y,e)},Mt=(e,t)=>et(c,e,t),Dt=(e,t,s)=>et(Ie(b,e,he),t,s)&&we(S,e,Ie(S,e,(()=>0))+s),Jt=(e,t,s,n)=>{const a=fe(U,e),o=fe(a,s)??0;(0==o&&1==n||1==o&&-1==n)&&et(Ie(u,e,he),s,n),we(a,s,o!=-n?o+n:null),et(Ie(Ie(V,e,he),t,he),s,n)},At=(e,t,s,n,a)=>Ie(Ie(Ie(m,e,he),t,he),s,(()=>[n,0]))[1]=a,Ft=(e,t)=>et(x,e,t),Qt=(e,t,s)=>Ie(J,e,(()=>[t,0]))[1]=s,zt=(e,t,s,n,a)=>(H(Ie(Ie(Ie(A,e,he),t,he),s,(()=>[])),n),a),Nt=(e,t,s)=>(H(Ie(Q,e,(()=>[])),t),s),Ot=(e,t,s)=>k(fe(fe(fe(m,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...He(ts(e,t,s))])),Pt=e=>k(fe(J,e),(([e,t])=>[!0,e,t]),(()=>[!1,...He(as(e))])),jt=e=>le(A)||le(Pe[e])?0:de(e?ye(A):A,((t,s)=>de(t,((t,n)=>de(t,((t,a)=>nt(Pe[e],[s,n,a],t))))))),Wt=e=>le(Q)||le(je[e])?0:de(e?pe(Q):Q,((t,s)=>nt(je[e],[s],t))),Bt=(e,t,s)=>{if(!le(t))return nt(e,s,(()=>Re(t))),1},$t=e=>{const t=le(Je[e]),s=le(ze[e])&&le(be[e])&&le(Me[e])&&le(De[e])&&t&&le(ee[e]),n=le(Oe[e])&&le(Ae[e])&&le(ie[e])&&le(Z[e]);if(!s||!n){const a=e?[pe(c),Ce(u),pe(S),Ce(b),ye(V),ye(m)]:[c,u,S,b,V,m];if(!s){Bt(ee[e],a[0]),de(a[1],((t,s)=>Bt(be[e],t,[s]))),de(a[2],((t,s)=>{0!=t&&nt(Me[e],[s],Yt(s))}));const s=Ee();de(a[3],((n,a)=>{Bt(De[e],n,[a])&&!t&&(nt(Je[e],[a,null]),ke(s,a))})),t||de(a[5],((t,n)=>{if(!re(s,n)){const s=Ee();de(t,(e=>de(e,(([t,n],a)=>n!==t?ke(s,a):ue(e,a))))),de(s,(t=>nt(Je[e],[n,t])))}})),de(a[4],((t,s)=>de(t,((t,n)=>Bt(ze[e],t,[s,n])))))}if(!n){let t;de(a[5],((s,n)=>{let a;de(s,((s,o)=>{let r;de(s,(([s,l],i)=>{l!==s&&(nt(Oe[e],[n,o,i],l,s,Ot),t=a=r=1)})),r&&nt(Ae[e],[n,o],Ot)})),a&&nt(ie[e],[n],Ot)})),t&&nt(Z[e],void 0,Ot)}}},qt=e=>{const t=le(Be[e]),s=le($e[e])&&le(We[e]);if(!t||!s){const n=e?[pe(x),pe(J)]:[x,J];if(t||Bt(Be[e],n[0]),!s){let t;de(n[1],(([s,n],a)=>{n!==s&&(nt($e[e],[a],n,s,Pt),t=1)})),t&&nt(We[e],void 0,Pt)}}},Gt=(e,...t)=>(ws((()=>e(...j(t,y)))),Rs),Ht=()=>[Re(m,((e,t)=>-1===fe(c,t)?null:Re(e,((e,s)=>-1===fe(fe(b,t),s)?null:Re(e,(([,e])=>e??null),((e,t)=>Xe(t)))),ae)),ae),Re(J,(([,e])=>e??null),((e,t)=>Xe(t)))],Kt=()=>({cellsTouched:s,valuesTouched:n,changedCells:Te(m,Ue,Xe),invalidCells:Te(A),changedValues:Re(J,Ue,Xe),invalidValues:Re(Q),changedTableIds:Re(c),changedRowIds:ve(b),changedCellIds:Te(V),changedValueIds:Re(x)}),Ut=()=>Te(X),Xt=()=>ge(X),Yt=e=>oe(fe(X,y(e))),Zt=e=>ge(fe(X,y(e))),_t=(e,t,s,n=0,a)=>{return j(G(O((o=fe(X,y(e)),r=(e,s)=>[E(t)?s:fe(e,y(t)),s],j([...o?.entries()??[]],(([e,t])=>r(t,e)))),(([e],[t])=>Ne(e,t)*(s?-1:1))),n,E(a)?a:n+a),(([,e])=>e));var o,r},es=(e,t)=>ge(fe(fe(X,y(e)),y(t))),ts=(e,t,s)=>fe(fe(fe(X,y(e)),y(t)),y(s)),ss=()=>Re(Y),ns=()=>ge(Y),as=e=>fe(Y,y(e)),os=e=>Gt((()=>(e=>_e(e,lt,zt))(e)?It(e):0)),rs=e=>Gt((()=>dt(e)?Ct(e):0)),ls=e=>{try{wt(Ze(e))}catch{}return Rs},is=t=>Gt((()=>{if((e=_e(t,(e=>_e(e,rt))))&&(ft(t),!le(X))){const e=Ut();ds(),os(e)}})),cs=e=>Gt((()=>{if(t=(e=>_e(e,rt))(e)){const s=ss();Ls(),gs(),t=!0,Lt(e),rs(s)}})),ds=()=>Gt((()=>It({}))),us=e=>Gt((e=>re(X,e)?mt(e):0),e),hs=(e,t)=>Gt(((e,t)=>k(fe(X,e),(s=>re(s,t)?xt(e,s,t):0))),e,t),gs=()=>Gt((()=>Ct({}))),fs=()=>Gt((()=>{ft({}),e=!1})),Ls=()=>Gt((()=>{Lt({}),t=!1})),ws=(e,t)=>{if(-1!=o){Is();const s=e();return Ss(t),s}},Is=()=>(-1!=o&&o++,1==o&&nt(qe,void 0,Ht,Kt),Rs),Ss=e=>(o>0&&(o--,0==o&&(s=!le(m),n=!le(J),o=1,jt(1),s&&$t(1),Wt(1),n&&qt(1),e?.(Ht,Kt)&&(de(m,((e,t)=>de(e,((e,s)=>de(e,(([e],n)=>me(Rs,t,s,n,e))))))),de(J,(([e],t)=>xe(Rs,t,e))),s=n=!1),nt(Ge[0],void 0,Ht,Kt),o=-1,jt(0),s&&$t(0),Wt(0),n&&qt(0),nt(Ge[1],void 0,Ht,Kt),o=0,s=n=!1,P([c,u,S,b,V,m,A,x,J,Q],ce))),Rs),Rs={getContent:()=>[Ut(),ss()],getTables:Ut,getTableIds:Xt,getTable:e=>ve(fe(X,y(e))),getTableCellIds:e=>ge(fe(U,y(e))),getRowCount:Yt,getRowIds:Zt,getSortedRowIds:_t,getRow:(e,t)=>Re(fe(fe(X,y(e)),y(t))),getCellIds:es,getCell:ts,getValues:ss,getValueIds:ns,getValue:as,hasTables:()=>!le(X),hasTable:e=>re(X,y(e)),hasTableCell:(e,t)=>re(fe(U,y(e)),y(t)),hasRow:(e,t)=>re(fe(X,y(e)),y(t)),hasCell:(e,t,s)=>re(fe(fe(X,y(e)),y(t)),y(s)),hasValues:()=>!le(Y),hasValue:e=>re(Y,y(e)),getTablesJson:()=>Ye(X),getValuesJson:()=>Ye(Y),getJson:()=>Ye([X,Y]),getTablesSchemaJson:()=>Ye(N),getValuesSchemaJson:()=>Ye(B),getSchemaJson:()=>Ye([N,B]),hasTablesSchema:()=>e,hasValuesSchema:()=>t,setContent:([e,t])=>Gt((()=>{(ae(e)?ds:os)(e),(ae(t)?gs:rs)(t)})),setTables:os,setTable:(e,t)=>Gt((e=>lt(t,e)?St(e,t):0),e),setRow:(e,t,s)=>Gt(((e,t)=>it(e,t,s)?Rt(e,Vt(e),t,s):0),e,t),addRow:(e,t,s=!0)=>ws((()=>{let n;return it(e,n,t)&&(e=y(e),Rt(e,Vt(e),n=bt(e,s?1:0),t)),n})),setPartialRow:(e,t,s)=>Gt(((e,t)=>{if(it(e,t,s,1)){const n=Vt(e);ne(s,((s,a)=>Tt(e,n,t,a,s)))}}),e,t),setCell:(e,t,s,n)=>Gt(((e,t,s)=>k(ct(e,t,s,D(n)?n(ts(e,t,s)):n),(n=>Tt(e,Vt(e),t,s,n)))),e,t,s),setValues:rs,setPartialValues:e=>Gt((()=>dt(e,1)?ne(e,((e,t)=>yt(t,e))):0)),setValue:(e,t)=>Gt((e=>k(ut(e,D(t)?t(as(e)):t),(t=>yt(e,t)))),e),setTransactionChanges:e=>Gt((()=>{ne(e[0],((e,t)=>E(e)?us(t):ne(e,((e,s)=>E(e)?hs(t,s):ne(e,((e,n)=>me(Rs,t,s,n,e))))))),ne(e[1],((e,t)=>xe(Rs,t,e)))})),setTablesJson:ls,setValuesJson:e=>{try{pt(Ze(e))}catch{}return Rs},setJson:e=>{try{const[t,s]=Ze(e);wt(t),pt(s)}catch{ls(e)}return Rs},setTablesSchema:is,setValuesSchema:cs,setSchema:(e,t)=>Gt((()=>{is(e),cs(t)})),delTables:ds,delTable:us,delRow:hs,delCell:(e,t,s,n)=>Gt(((e,t,s)=>k(fe(X,e),(a=>k(fe(a,t),(o=>re(o,s)?Et(e,a,t,o,s,n):0))))),e,t,s),delValues:gs,delValue:e=>Gt((e=>re(Y,e)?kt(e):0),e),delTablesSchema:fs,delValuesSchema:Ls,delSchema:()=>Gt((()=>{fs(),Ls()})),transaction:ws,startTransaction:Is,finishTransaction:Ss,forEachTable:e=>de(X,((t,s)=>e(s,(e=>de(t,((t,s)=>e(s,(e=>Le(t,e))))))))),forEachTableCell:(e,t)=>Le(fe(U,y(e)),t),forEachRow:(e,t)=>de(fe(X,y(e)),((e,s)=>t(s,(t=>Le(e,t))))),forEachCell:(e,t,s)=>Le(fe(fe(X,y(e)),y(t)),s),forEachValue:e=>Le(Y,e),addSortedRowIdsListener:(e,t,s,n,a,o,r)=>{let l=_t(e,t,s,n,a);return st((()=>{const r=_t(e,t,s,n,a);z(r,l)||(l=r,o(Rs,e,t,s,n,a,l))}),Je[r?1:0],[e,t],[Xt])},addStartTransactionListener:e=>st(e,qe),addWillFinishTransactionListener:e=>st(e,Ge[0]),addDidFinishTransactionListener:e=>st(e,Ge[1]),callListener:e=>(ot(e),Rs),delListener:e=>(at(e),Rs),getListenerStats:()=>({}),createStore:tt,addListener:st,callListeners:nt};return ne({[g]:[0,Z],[f]:[0,ee],[h]:[1,ie,[Xt]],[h+v]:[1,be,[Xt]],[w]:[1,Me,[Xt]],[I]:[1,De,[Xt]],[L]:[2,Ae,[Xt,Zt]],[v]:[2,ze,[Xt,Zt]],[R]:[3,Oe,[Xt,Zt,es],e=>He(ts(...e))],InvalidCell:[3,Pe],[p]:[0,We],[C]:[0,Be],[T]:[1,$e,[ns],e=>He(as(e[0]))],InvalidValue:[1,je]},(([e,t,s,n],a)=>{Rs[d+a+i]=(...a)=>st(a[e],t[a[e+1]?1:0],e>0?G(a,0,e):void 0,s,n)})),_(Rs)};exports.createCheckpoints=ze,exports.createCustomPersister=(e,t,s,n,a,o,r=[])=>{let l,i,c,d=0,u=0;Ie(Be,r,(()=>0)),Ie($e,r,(()=>[]));const h=async e=>(2!=d&&(d=1,await g.schedule((async()=>{await e(),d=0}))),g),g={load:async(s,n)=>await h((async()=>{try{e.setContent(await t())}catch{e.setContent([s,n])}})),startAutoLoad:async(s={},a={})=>(g.stopAutoLoad(),await g.load(s,a),u=1,c=n((async(s,n)=>{if(n){const t=n();await h((async()=>e.setTransactionChanges(t)))}else await h((async()=>{try{e.setContent(s?.()??await t())}catch(e){o?.(e)}}))})),g),stopAutoLoad:()=>(u&&(a(c),c=void 0,u=0),g),save:async t=>(1!=d&&(d=2,await g.schedule((async()=>{try{await s(e.getContent,t)}catch(e){o?.(e)}d=0}))),g),startAutoSave:async()=>(await g.stopAutoSave().save(),l=e.addDidFinishTransactionListener(((e,t)=>{const[s,n]=t();ae(s)&&ae(n)||g.save((()=>[s,n]))})),g),stopAutoSave:()=>(k(l,e.delListener),g),schedule:async(...e)=>(H(fe($e,r),...e),await(async()=>{if(!fe(Be,r)){for(we(Be,r,1);!E(i=U(fe($e,r)));)try{await i()}catch(e){o?.(e)}we(Be,r,0)}})(),g),getStore:()=>e,destroy:()=>g.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return _(g)},exports.createIndexes=Oe,exports.createMetrics=We,exports.createQueries=qe,exports.createRelationships=Ge,exports.createStore=tt,exports.defaultSorter=Ne;
1
+ "use strict";const e=e=>typeof e,t="",s=e(t),n=e(!0),a=e(0),o=e(e),r="type",l="default",i="Listener",c="Result",d="add",u="Ids",h="Table",g=h+"s",f=h+u,L="Row",w=L+"Count",I=L+u,S="Sorted"+L+u,R="Cell",v=R+u,T="Value",p=T+"s",C=T+u,y=e=>t+e,b=Math.max,V=Math.min,m=isFinite,x=(e,t)=>e instanceof t,E=e=>null==e,k=(e,t,s)=>E(e)?s?.():t(e),M=e=>e==s||e==n,D=t=>e(t)==o,J=e=>Array.isArray(e),A=(e,t,s)=>e.slice(t,s),F=()=>{},Q=(e,t)=>e.includes(t),z=(e,t)=>e.every(t),N=(e,t)=>$(e)===$(t)&&z(e,((e,s)=>t[s]===e)),O=(e,t)=>z(e,((s,n)=>0==n||t(e[n-1],s)<=0)),P=(e,t)=>e.sort(t),j=(e,t)=>e.forEach(t),W=(e,t)=>e.map(t),B=e=>G(e,((e,t)=>e+t),0),$=e=>e.length,q=e=>0==$(e),G=(e,t,s)=>e.reduce(t,s),H=(e,...t)=>e.push(...t),K=e=>e.pop(),U=e=>e.shift(),X=Object,Y=X.keys,Z=X.isFrozen,_=X.freeze,ee=e=>x(e,X)&&e.constructor==X,te=(e,t)=>!E(((e,t)=>k(e,(e=>e[t])))(e,t)),se=(e,t)=>(delete e[t],e),ne=(e,t)=>W(X.entries(e),(([e,s])=>t(s,e))),ae=e=>ee(e)&&0==(e=>$(Y(e)))(e),oe=e=>e?.size??0,re=(e,t)=>e?.has(t)??!1,le=e=>E(e)||0==oe(e),ie=e=>[...e?.values()??[]],ce=e=>e.clear(),de=(e,t)=>e?.forEach(t),ue=(e,t)=>e?.delete(t),he=e=>new Map(e),ge=e=>[...e?.keys()??[]],fe=(e,t)=>e?.get(t),Le=(e,t)=>de(e,((e,s)=>t(s,e))),we=(e,t,s)=>E(s)?(ue(e,t),e):e?.set(t,s),Ie=(e,t,s)=>(re(e,t)||we(e,t,s()),fe(e,t)),Se=(e,t,s,n=we)=>(ne(t,((t,n)=>s(e,n,t))),Le(e,(s=>te(t,s)?0:n(e,s))),e),Re=(e,t,s)=>{const n={};return de(e,((e,a)=>{const o=t?t(e,a):e;!s?.(o,e)&&(n[a]=o)})),n},ve=(e,t,s)=>Re(e,(e=>Re(e,t,s)),ae),Te=(e,t,s)=>Re(e,(e=>ve(e,t,s)),ae),pe=(e,t)=>{const s=he();return de(e,((e,n)=>s.set(n,t?.(e)??e))),s},Ce=e=>pe(e,pe),ye=e=>pe(e,Ce),be=(e,t,s,n,a=0)=>k((s?Ie:fe)(e,t[a],a>$(t)-2?s:he),(o=>{if(a>$(t)-2)return n?.(o)&&we(e,t[a]),o;const r=be(o,t,s,n,a+1);return le(o)&&we(e,t[a]),r})),Ve=t=>{const s=e(t);return M(s)||s==a&&m(t)?s:void 0},me=(e,t,s,n,a)=>E(a)?e.delCell(t,s,n,!0):e.setCell(t,s,n,a),xe=(e,t,s)=>E(s)?e.delValue(t):e.setValue(t,s),Ee=e=>new Set(J(e)||E(e)?e:[e]),ke=(e,t)=>e?.add(t),Me=(e,t,s,n,a)=>{const o=e.hasRow,r=he(),l=he(),i=he(),c=he(),d=he(),u=he(),h=(t,s,...n)=>{const a=Ie(u,t,Ee);return j(n,(t=>ke(a,t)&&s&&e.callListener(t))),n},g=(t,...s)=>k(fe(u,t),(n=>{j(q(s)?ie(n):s,(t=>{e.delListener(t),ue(n,t)})),le(n)&&we(u,t)})),f=(e,s)=>{we(r,e,s),re(l,e)||(we(l,e,t()),we(c,e,he()),we(d,e,he()),a(i))},L=e=>{we(r,e),we(l,e),we(c,e),we(d,e),g(e),a(i)};return[()=>e,()=>ge(r),e=>Le(l,e),e=>re(l,e),e=>fe(r,e),e=>fe(l,e),(e,t)=>we(l,e,t),f,(t,n,a,r,l)=>{f(t,n);const i=he(),u=he(),L=fe(c,t),w=fe(d,t),I=t=>{const a=s=>e.getCell(n,t,s),c=fe(L,t),d=o(n,t)?s(r(a,t)):void 0;if(c===d||J(c)&&J(d)&&N(c,d)||we(i,t,[c,d]),!E(l)){const e=fe(w,t),s=o(n,t)?l(a,t):void 0;e!=s&&we(u,t,s)}},S=e=>{a((()=>{de(i,(([,e],t)=>we(L,t,e))),de(u,((e,t)=>we(w,t,e)))}),i,u,L,w,e),ce(i),ce(u)};Le(L,I),e.hasTable(n)&&j(e.getRowIds(n),(e=>{re(L,e)||I(e)})),S(!0),g(t),h(t,0,e.addRowListener(n,null,((e,t,s)=>I(s))),e.addTableListener(n,(()=>S())))},L,e=>n(e,i),()=>Le(u,L),h,g]},De=(n,a)=>e(n)==s?e=>e(n):n??(()=>a??t),Je=e=>{const t=new WeakMap;return s=>(t.has(s)||t.set(s,e(s)),t.get(s))},Ae=/^\d+$/,Fe=()=>{const e=[];let s=0;return[n=>(n?U(e):null)??t+s++,t=>{Ae.test(t)&&$(e)<1e3&&H(e,t)}]},Qe=e=>{let s;const[n,a]=Fe(),o=he();return[(a,r,l,i=[],c=(()=>[]))=>{s??=e();const d=n(1);return we(o,d,[a,r,l,i,c]),ke(be(r,l??[t],Ee),d),d},(e,n,...a)=>j(((e,s=[t])=>{const n=[],a=(e,t)=>t==$(s)?H(n,e):null===s[t]?de(e,(e=>a(e,t+1))):j([s[t],null],(s=>a(fe(e,s),t+1)));return a(e,0),n})(e,n),(e=>de(e,(e=>fe(o,e)[0](s,...n??[],...a))))),e=>k(fe(o,e),(([,s,n])=>(be(s,n??[t],void 0,(t=>(ue(t,e),le(t)?1:0))),we(o,e),a(e),n))),e=>k(fe(o,e),(([e,,t=[],n,a])=>{const o=(...r)=>{const l=$(r);l==$(t)?e(s,...r,...a(r)):E(t[l])?j(n[l]?.(...r)??[],(e=>o(...r,e))):o(...r,t[l])};o()}))]},ze=Je((e=>{let s,n,a,o=100,r=he(),l=he(),i=1;const c=he(),d=he(),[u,h,g]=Qe((()=>F)),f=he(),L=he(),w=[],I=[],S=(t,s)=>{i=0,e.transaction((()=>{const[n,a]=fe(f,s);de(n,((s,n)=>de(s,((s,a)=>de(s,((s,o)=>me(e,n,a,o,s[t]))))))),de(a,((s,n)=>xe(e,n,s[t])))})),i=1},R=e=>{we(f,e),we(L,e),h(d,[e])},v=(e,t)=>j(((e,t)=>e.splice(0,t))(e,t??$(e)),R),T=()=>v(w,$(w)-o),p=()=>k(s,(()=>{H(w,s),T(),v(I),s=void 0,a=1})),C=()=>{s=K(w),a=1},y=e.addCellListener(null,null,null,((e,t,s,n,a,o)=>{if(i){p();const e=Ie(r,t,he),l=Ie(e,s,he),i=Ie(l,n,(()=>[o,void 0]));i[1]=a,i[0]===a&&le(we(l,n))&&le(we(e,s))&&le(we(r,t))&&C(),M()}})),b=e.addValueListener(null,((e,t,s,n)=>{if(i){p();const e=Ie(l,t,(()=>[n,void 0]));e[1]=s,e[0]===s&&le(we(l,t))&&C(),M()}})),V=(e="")=>(E(s)&&(s=t+n++,we(f,s,[r,l]),J(s,e),r=he(),l=he(),a=1),s),m=()=>{q(w)||(((e,...t)=>{e.unshift(...t)})(I,V()),S(0,s),s=K(w),a=1)},x=()=>{q(I)||(H(w,s),s=U(I),S(1,s),a=1)},M=()=>{a&&(h(c),a=0)},D=e=>{const t=V(e);return M(),t},J=(e,t)=>(A(e)&&fe(L,e)!==t&&(we(L,e,t),h(d,[e])),F),A=e=>re(f,e),F={setSize:e=>(o=e,T(),F),addCheckpoint:D,setCheckpoint:J,getStore:()=>e,getCheckpointIds:()=>[[...w],s,[...I]],forEachCheckpoint:e=>Le(L,e),hasCheckpoint:A,getCheckpoint:e=>fe(L,e),goBackward:()=>(m(),M(),F),goForward:()=>(x(),M(),F),goTo:e=>{const t=Q(w,e)?m:Q(I,e)?x:null;for(;!E(t)&&e!=s;)t();return M(),F},addCheckpointIdsListener:e=>u(e,c),addCheckpointListener:(e,t)=>u(t,d,[e]),delListener:e=>(g(e),F),clear:()=>(v(w),v(I),E(s)||R(s),s=void 0,n=0,D(),F),destroy:()=>{e.delListener(y),e.delListener(b)},getListenerStats:()=>({})};return _(F.clear())})),Ne=(e,t)=>(e??0)<(t??0)?-1:1,Oe=Je((e=>{const s=he(),n=he(),[a,o,r]=Qe((()=>R)),[l,i,c,d,u,h,g,,f,L,w,I]=Me(e,he,(e=>E(e)?t:J(e)?W(e,y):y(e)),a,o),S=(t,s,n)=>{const a=u(t);de(n,((t,n)=>s(n,(s=>de(t,(t=>s(t,(s=>e.forEachCell(a,t,s)))))))))},R={setIndexDefinition:(e,t,a,r,l,i=Ne)=>{const c=E(l)?void 0:([e],[t])=>l(e,t);return f(e,t,((t,a,l,d,u,f)=>{let L=0;const w=Ee(),I=Ee(),S=h(e);if(de(a,(([e,t],s)=>{const n=Ee(e),a=Ee(t);de(n,(e=>ue(a,e)?ue(n,e):0)),de(n,(e=>{ke(w,e),k(fe(S,e),(t=>{ue(t,s),le(t)&&(we(S,e),L=1)}))})),de(a,(e=>{ke(w,e),re(S,e)||(we(S,e,Ee()),L=1),ke(fe(S,e),s),E(r)||ke(I,e)}))})),t(),le(u)||(f?Le(S,(e=>ke(I,e))):Le(l,(e=>k(fe(d,e),(e=>ke(I,e))))),de(I,(e=>{const t=(t,s)=>i(fe(u,t),fe(u,s),e),s=[...fe(S,e)];O(s,t)||(we(S,e,Ee(P(s,t))),ke(w,e))}))),(L||f)&&!E(c)){const t=[...S];O(t,c)||(g(e,he(P(t,c))),L=1)}L&&o(s,[e]),de(w,(t=>o(n,[e,t])))}),De(a),k(r,De)),R},delIndexDefinition:e=>(L(e),R),getStore:l,getIndexIds:i,forEachIndex:e=>c(((t,s)=>e(t,(e=>S(t,e,s))))),forEachSlice:(e,t)=>S(e,t,h(e)),hasIndex:d,hasSlice:(e,t)=>re(h(e),t),getTableId:u,getSliceIds:e=>ge(h(e)),getSliceRowIds:(e,t)=>ie(fe(h(e),t)),addIndexIdsListener:w,addSliceIdsListener:(e,t)=>a(t,s,[e]),addSliceRowIdsListener:(e,t,s)=>a(s,n,[e,t]),delListener:e=>(r(e),R),destroy:I,getListenerStats:()=>({})};return _(R)})),Pe=he([["avg",[(e,t)=>B(e)/t,(e,t,s)=>e+(t-e)/(s+1),(e,t,s)=>e+(e-t)/(s-1),(e,t,s,n)=>e+(t-s)/n]],["max",[e=>b(...e),(e,t)=>b(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:b(t,e)]],["min",[e=>V(...e),(e,t)=>V(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:V(t,e)]],["sum",[e=>B(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),je=(e,t,s,n,a,o=!1)=>{if(le(s))return;const[r,l,i,c]=a;return o||=E(e),de(n,(([s,n])=>{o||(e=E(s)?l?.(e,n,t++):E(n)?i?.(e,s,t--):c?.(e,n,s,t),o||=E(e))})),o?r(ie(s),oe(s)):e},We=Je((e=>{const s=he(),[n,a,o]=Qe((()=>I)),[r,l,i,c,d,u,h,,g,f,L,w]=Me(e,F,(e=>isNaN(e)||E(e)||!0===e||!1===e||e===t?void 0:1*e),n,a),I={setMetricDefinition:(e,t,n,o,r,l,i)=>{const c=D(n)?[n,r,l,i]:fe(Pe,n)??fe(Pe,"sum");return g(e,t,((t,n,o,r,l,i)=>{const d=u(e),g=oe(r);i||=E(d),t();let f=je(d,g,r,n,c,i);m(f)||(f=void 0),f!=d&&(h(e,f),a(s,[e],f,d))}),De(o,1)),I},delMetricDefinition:e=>(f(e),I),getStore:r,getMetricIds:l,forEachMetric:i,hasMetric:c,getTableId:d,getMetric:u,addMetricIdsListener:L,addMetricListener:(e,t)=>n(t,s,[e]),delListener:e=>(o(e),I),destroy:w,getListenerStats:()=>({})};return _(I)})),Be=he(),$e=he(),qe=Je((e=>{const s=e.createStore,n=s(),a=s(),o=he(),{addListener:r,callListeners:l,delListener:u}=a,[g,f,T,p,C,,,y,,b,V,m,x,M]=Me(e,(()=>!0),F,r,l),J=(e,t,...s)=>j(s,(s=>ke(Ie(Ie(o,t,he),e,Ee),s))),Q=e=>{k(fe(o,e),(e=>{Le(e,((e,t)=>de(t,(t=>e.delListener(t))))),ce(e)})),j([a,n],(t=>t.delTable(e)))},N=(e,t,s)=>J(t,e,t.addStartTransactionListener(s.startTransaction),t.addDidFinishTransactionListener((()=>s.finishTransaction()))),O={setQueryDefinition:(s,o,r)=>{y(s,o),Q(s);const l=[],i=[[null,[o,null,null,[],he()]]],c=[],d=[],u=[];r({select:(e,s)=>{const n=D(e)?[$(l)+t,e]:[E(s)?e:s,t=>t(e,s)];return H(l,n),{as:e=>n[0]=e}},join:(e,t,s)=>{const n=E(s)||D(t)?null:t,a=E(n)?t:s,o=[e,[e,n,D(a)?a:e=>e(a),[],he()]];return H(i,o),{as:e=>o[0]=e}},where:(e,t,s)=>H(c,D(e)?e:E(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,a)=>{const o=[e,[e,D(t)?[t,s,n,a]:fe(Pe,t)??[(e,t)=>t]]];return H(d,o),{as:e=>o[0]=e}},having:(e,t)=>H(u,D(e)?e:s=>s(e)===t)});const h=he(l);if(le(h))return O;const g=he(i);Le(g,((e,[,t])=>k(fe(g,t),(({3:t})=>E(e)?0:H(t,e)))));const f=he(d);let L=n;if(le(f)&&q(u))L=a;else{N(s,L,a);const e=he();Le(f,((t,[s,n])=>ke(Ie(e,s,Ee),[t,n])));const t=Ee();Le(h,(s=>re(e,s)?0:ke(t,s)));const n=he(),o=(t,n,o,r)=>k(t,(([l,i,c,d])=>{Le(n,((t,[s])=>{const n=Ie(l,t,he),a=fe(n,o),i=r?void 0:s;if(a!==i){const s=Ee([[a,i]]),r=oe(n);we(n,o,i),de(fe(e,t),(([e,t])=>{const a=je(d[e],r,n,s,t);d[e]=E(Ve(a))?null:a}))}})),le(i)||!z(u,(e=>e((e=>d[e]))))?a.delRow(s,c):E(c)?t[2]=a.addRow(s,d):a.setRow(s,c,d)}));J(L,s,L.addRowListener(s,null,((a,r,l,i)=>{const c=[],d=[],u=he(),h=L.hasRow(s,l);let g=!h;de(t,(e=>{const[t,n,a]=i(s,l,e);H(c,n),H(d,a),g||=t})),Le(e,(e=>{const[t,,n]=i(s,l,e);(g||t)&&we(u,e,[n])})),g&&o(be(n,c,void 0,(([,e])=>(ue(e,l),le(e)))),u,l,1),h&&o(be(n,d,(()=>{const e={};return de(t,(t=>e[t]=L.getCell(s,l,t))),[he(),Ee(),void 0,e]}),(([,e])=>{ke(e,l)})),u,l)})))}N(s,e,L);const w=(t,n,a,r)=>{const l=t=>e.getCell(n,a,t);j(r,(n=>{const[a,,o,r,i]=fe(g,n),c=o?.(l,t),[d,u]=fe(i,t)??[];c!=d&&(E(u)||M(s,u),we(i,t,E(c)?null:[c,...x(s,1,e.addRowListener(a,c,(()=>w(t,a,c,r))))]))})),(t=>{const n=(s,n)=>e.getCell(...E(n)?[o,t,s]:s===o?[o,t,n]:[fe(g,s)?.[0],fe(fe(g,s)?.[4],t)?.[0],n]);L.transaction((()=>z(c,(e=>e(n)))?Le(h,((e,a)=>me(L,s,t,e,a(n,t)))):L.delRow(s,t)))})(t)},{3:I}=fe(g,null);return L.transaction((()=>x(s,1,e.addRowListener(o,null,((t,n,a)=>{e.hasRow(o,a)?w(a,o,a,I):(L.delRow(s,a),de(g,(({4:e})=>k(fe(e,a),(([,t])=>{M(s,t),we(e,a)})))))}))))),O},delQueryDefinition:e=>(Q(e),b(e),O),getStore:g,getQueryIds:f,forEachQuery:T,hasQuery:p,getTableId:C,addQueryIdsListener:e=>V((()=>e(O))),delListener:e=>(u(e),O),destroy:m,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=a.getListenerStats();return n}};return ne({[h]:[1,1],[h+v]:[0,1],[w]:[0,1],[I]:[0,1],[S]:[0,5],[L]:[1,2],[v]:[0,2],[R]:[1,3]},(([e,t],s)=>{j(e?["get","has","forEach"]:["get"],(e=>O[e+c+s]=(...t)=>a[e+s](...t))),O[d+c+s+i]=(...e)=>a[d+s+i](...A(e,0,t),((s,...n)=>e[t](O,...n)))})),_(O)})),Ge=Je((e=>{const s=he(),n=he(),a=he(),o=he(),[r,l,i]=Qe((()=>p)),[c,d,u,h,g,f,,,L,w,I,S]=Me(e,(()=>[he(),he(),he(),he()]),(e=>E(e)?void 0:e+t),r,l),R=(e,t,s)=>k(f(e),(([n,,a])=>{if(!re(a,t)){const o=Ee();if(g(e)!=T(e))ke(o,t);else{let e=t;for(;!E(e)&&!re(o,e);)ke(o,e),e=fe(n,e)}if(s)return o;we(a,t,o)}return fe(a,t)})),v=(e,t)=>k(f(e),(([,,e])=>we(e,t))),T=e=>fe(s,e),p={setRelationshipDefinition:(e,t,r,i)=>(we(s,e,r),L(e,t,((t,s)=>{const r=Ee(),i=Ee(),c=Ee(),[d,u]=f(e);de(s,(([t,s],n)=>{E(t)||(ke(i,t),k(fe(u,t),(e=>{ue(e,n),le(e)&&we(u,t)}))),E(s)||(ke(i,s),re(u,s)||we(u,s,Ee()),ke(fe(u,s),n)),ke(r,n),we(d,n,s),Le(fe(o,e),(t=>{re(R(e,t),n)&&ke(c,t)}))})),t(),de(r,(t=>l(n,[e,t]))),de(i,(t=>l(a,[e,t]))),de(c,(t=>{v(e,t),l(o,[e,t])}))}),De(i)),p),delRelationshipDefinition:e=>(we(s,e),w(e),p),getStore:c,getRelationshipIds:d,forEachRelationship:t=>u((s=>t(s,(t=>e.forEachRow(g(s),t))))),hasRelationship:h,getLocalTableId:g,getRemoteTableId:T,getRemoteRowId:(e,t)=>fe(f(e)?.[0],t),getLocalRowIds:(e,t)=>ie(fe(f(e)?.[1],t)),getLinkedRowIds:(e,t)=>E(f(e))?[t]:ie(R(e,t,!0)),addRelationshipIdsListener:I,addRemoteRowIdListener:(e,t,s)=>r(s,n,[e,t]),addLocalRowIdsListener:(e,t,s)=>r(s,a,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(R(e,t),r(s,o,[e,t])),delListener:e=>(v(...i(e)??[]),p),destroy:S,getListenerStats:()=>({})};return _(p)})),He=e=>[e,e],Ke=()=>[he(),he()],Ue=e=>[...e],Xe=([e,t])=>e===t,Ye=e=>JSON.stringify(e,((e,t)=>x(t,Map)?X.fromEntries([...t]):t)),Ze=JSON.parse,_e=(e,t,s)=>E(e)||!ee(e)||ae(e)||Z(e)?(s?.(),!1):(ne(e,((s,n)=>{t(s,n)||se(e,n)})),!ae(e)),et=(e,t,s)=>we(e,t,fe(e,t)==-s?void 0:s),tt=()=>{let e,t,s=!1,n=!1,o=0;const c=he(),u=he(),S=he(),b=he(),V=he(),m=he(),x=he(),J=he(),F=he(),z=he(),O=he(),B=he(),$=he(),q=he(),G=Ee(),K=he(),U=he(),X=he(),Y=he(),Z=Ke(),ee=Ke(),ie=Ke(),be=Ke(),Me=Ke(),De=Ke(),Je=Ke(),Ae=Ke(),ze=Ke(),Oe=Ke(),Pe=Ke(),je=Ke(),We=Ke(),Be=Ke(),$e=Ke(),qe=he(),Ge=Ke(),[st,nt,at,ot]=Qe((()=>Rs)),rt=e=>{if(!_e(e,((e,t)=>Q([r,l],t))))return!1;const t=e[r];return!(!M(t)&&t!=a||(Ve(e[l])!=t&&se(e,l),0))},lt=(t,s)=>(!e||re(O,s)||zt(s))&&_e(t,((e,t)=>it(s,t,e)),(()=>zt(s))),it=(e,t,s,n)=>_e(n?s:ht(s,e,t),((n,a)=>k(ct(e,t,a,n),(e=>(s[a]=e,!0)),(()=>!1))),(()=>zt(e,t))),ct=(t,s,n,a)=>e?k(fe(fe(O,t),n),(e=>Ve(a)!=e[r]?zt(t,s,n,a,e[l]):a),(()=>zt(t,s,n,a))):E(Ve(a))?zt(t,s,n,a):a,dt=(e,t)=>_e(t?e:gt(e),((t,s)=>k(ut(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>Nt())),ut=(e,s)=>t?k(fe($,e),(t=>Ve(s)!=t[r]?Nt(e,s,t[l]):s),(()=>Nt(e,s))):E(Ve(s))?Nt(e,s):s,ht=(e,t,s)=>(k(fe(B,t),(([n,a])=>{de(n,((t,s)=>{te(e,s)||(e[s]=t)})),de(a,(n=>{te(e,n)||zt(t,s,n)}))})),e),gt=e=>(t&&(de(q,((t,s)=>{te(e,s)||(e[s]=t)})),de(G,(t=>{te(e,t)||Nt(t)}))),e),ft=e=>Se(O,e,((e,t,s)=>{const n=he(),a=Ee();Se(Ie(O,t,he),s,((e,t,s)=>{we(e,t,s),k(s[l],(e=>we(n,t,e)),(()=>ke(a,t)))})),we(B,t,[n,a])}),((e,t)=>{we(O,t),we(B,t)})),Lt=e=>Se($,e,((e,t,s)=>{we($,t,s),k(s[l],(e=>we(q,t,e)),(()=>ke(G,t)))}),((e,t)=>{we($,t),we(q,t),ue(G,t)})),wt=e=>ae(e)?ds():os(e),It=e=>Se(X,e,((e,t,s)=>St(t,s)),((e,t)=>mt(t))),St=(e,t)=>Se(Ie(X,e,(()=>(Mt(e,1),we(K,e,Fe()),we(U,e,he()),he()))),t,((t,s,n)=>Rt(e,t,s,n)),((t,s)=>xt(e,t,s))),Rt=(e,t,s,n,a)=>Se(Ie(t,s,(()=>(Dt(e,s,1),he()))),n,((t,n,a)=>vt(e,s,t,n,a)),((n,o)=>Et(e,t,s,n,o,a))),vt=(e,t,s,n,a)=>{re(s,n)||Jt(e,t,n,1);const o=fe(s,n);a!==o&&(At(e,t,n,o,a),we(s,n,a))},Tt=(e,t,s,n,a)=>k(fe(t,s),(t=>vt(e,s,t,n,a)),(()=>Rt(e,t,s,ht({[n]:a},e,s)))),pt=e=>ae(e)?gs():rs(e),Ct=e=>Se(Y,e,((e,t,s)=>yt(t,s)),((e,t)=>kt(t))),yt=(e,t)=>{re(Y,e)||Ft(e,1);const s=fe(Y,e);t!==s&&(Qt(e,s,t),we(Y,e,t))},bt=(e,t)=>{const[s]=fe(K,e),n=s(t);return re(fe(X,e),n)?bt(e,t):n},Vt=e=>fe(X,e)??St(e,{}),mt=e=>St(e,{}),xt=(e,t,s)=>{const[,n]=fe(K,e);n(s),Rt(e,t,s,{},!0)},Et=(e,t,s,n,a,o)=>{const r=fe(fe(B,e)?.[0],a);if(!E(r)&&!o)return vt(e,s,n,a,r);const l=t=>{At(e,s,t,fe(n,t)),Jt(e,s,t,-1),we(n,t)};E(r)?l(a):Le(n,l),le(n)&&(Dt(e,s,-1),le(we(t,s))&&(Mt(e,-1),we(X,e),we(K,e),we(U,e)))},kt=e=>{const t=fe(q,e);if(!E(t))return yt(e,t);Qt(e,fe(Y,e)),Ft(e,-1),we(Y,e)},Mt=(e,t)=>et(c,e,t),Dt=(e,t,s)=>et(Ie(b,e,he),t,s)&&we(S,e,Ie(S,e,(()=>0))+s),Jt=(e,t,s,n)=>{const a=fe(U,e),o=fe(a,s)??0;(0==o&&1==n||1==o&&-1==n)&&et(Ie(u,e,he),s,n),we(a,s,o!=-n?o+n:null),et(Ie(Ie(V,e,he),t,he),s,n)},At=(e,t,s,n,a)=>Ie(Ie(Ie(m,e,he),t,he),s,(()=>[n,0]))[1]=a,Ft=(e,t)=>et(x,e,t),Qt=(e,t,s)=>Ie(J,e,(()=>[t,0]))[1]=s,zt=(e,t,s,n,a)=>(H(Ie(Ie(Ie(F,e,he),t,he),s,(()=>[])),n),a),Nt=(e,t,s)=>(H(Ie(z,e,(()=>[])),t),s),Ot=(e,t,s)=>k(fe(fe(fe(m,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...He(ts(e,t,s))])),Pt=e=>k(fe(J,e),(([e,t])=>[!0,e,t]),(()=>[!1,...He(as(e))])),jt=e=>le(F)||le(Pe[e])?0:de(e?ye(F):F,((t,s)=>de(t,((t,n)=>de(t,((t,a)=>nt(Pe[e],[s,n,a],t))))))),Wt=e=>le(z)||le(je[e])?0:de(e?pe(z):z,((t,s)=>nt(je[e],[s],t))),Bt=(e,t,s)=>{if(!le(t))return nt(e,s,(()=>Re(t))),1},$t=e=>{const t=le(Je[e]),s=le(ze[e])&&le(be[e])&&le(Me[e])&&le(De[e])&&t&&le(ee[e]),n=le(Oe[e])&&le(Ae[e])&&le(ie[e])&&le(Z[e]);if(!s||!n){const a=e?[pe(c),Ce(u),pe(S),Ce(b),ye(V),ye(m)]:[c,u,S,b,V,m];if(!s){Bt(ee[e],a[0]),de(a[1],((t,s)=>Bt(be[e],t,[s]))),de(a[2],((t,s)=>{0!=t&&nt(Me[e],[s],Yt(s))}));const s=Ee();de(a[3],((n,a)=>{Bt(De[e],n,[a])&&!t&&(nt(Je[e],[a,null]),ke(s,a))})),t||de(a[5],((t,n)=>{if(!re(s,n)){const s=Ee();de(t,(e=>de(e,(([t,n],a)=>n!==t?ke(s,a):ue(e,a))))),de(s,(t=>nt(Je[e],[n,t])))}})),de(a[4],((t,s)=>de(t,((t,n)=>Bt(ze[e],t,[s,n])))))}if(!n){let t;de(a[5],((s,n)=>{let a;de(s,((s,o)=>{let r;de(s,(([s,l],i)=>{l!==s&&(nt(Oe[e],[n,o,i],l,s,Ot),t=a=r=1)})),r&&nt(Ae[e],[n,o],Ot)})),a&&nt(ie[e],[n],Ot)})),t&&nt(Z[e],void 0,Ot)}}},qt=e=>{const t=le(Be[e]),s=le($e[e])&&le(We[e]);if(!t||!s){const n=e?[pe(x),pe(J)]:[x,J];if(t||Bt(Be[e],n[0]),!s){let t;de(n[1],(([s,n],a)=>{n!==s&&(nt($e[e],[a],n,s,Pt),t=1)})),t&&nt(We[e],void 0,Pt)}}},Gt=(e,...t)=>(ws((()=>e(...W(t,y)))),Rs),Ht=()=>[Re(m,((e,t)=>-1===fe(c,t)?null:Re(e,((e,s)=>-1===fe(fe(b,t),s)?null:Re(e,(([,e])=>e??null),((e,t)=>Xe(t)))),ae)),ae),Re(J,(([,e])=>e??null),((e,t)=>Xe(t)))],Kt=()=>({cellsTouched:s,valuesTouched:n,changedCells:Te(m,Ue,Xe),invalidCells:Te(F),changedValues:Re(J,Ue,Xe),invalidValues:Re(z),changedTableIds:Re(c),changedRowIds:ve(b),changedCellIds:Te(V),changedValueIds:Re(x)}),Ut=()=>Te(X),Xt=()=>ge(X),Yt=e=>oe(fe(X,y(e))),Zt=e=>ge(fe(X,y(e))),_t=(e,t,s,n=0,a)=>{return W(A(P((o=fe(X,y(e)),r=(e,s)=>[E(t)?s:fe(e,y(t)),s],W([...o?.entries()??[]],(([e,t])=>r(t,e)))),(([e],[t])=>Ne(e,t)*(s?-1:1))),n,E(a)?a:n+a),(([,e])=>e));var o,r},es=(e,t)=>ge(fe(fe(X,y(e)),y(t))),ts=(e,t,s)=>fe(fe(fe(X,y(e)),y(t)),y(s)),ss=()=>Re(Y),ns=()=>ge(Y),as=e=>fe(Y,y(e)),os=e=>Gt((()=>(e=>_e(e,lt,zt))(e)?It(e):0)),rs=e=>Gt((()=>dt(e)?Ct(e):0)),ls=e=>{try{wt(Ze(e))}catch{}return Rs},is=t=>Gt((()=>{if((e=_e(t,(e=>_e(e,rt))))&&(ft(t),!le(X))){const e=Ut();ds(),os(e)}})),cs=e=>Gt((()=>{if(t=(e=>_e(e,rt))(e)){const s=ss();Ls(),gs(),t=!0,Lt(e),rs(s)}})),ds=()=>Gt((()=>It({}))),us=e=>Gt((e=>re(X,e)?mt(e):0),e),hs=(e,t)=>Gt(((e,t)=>k(fe(X,e),(s=>re(s,t)?xt(e,s,t):0))),e,t),gs=()=>Gt((()=>Ct({}))),fs=()=>Gt((()=>{ft({}),e=!1})),Ls=()=>Gt((()=>{Lt({}),t=!1})),ws=(e,t)=>{if(-1!=o){Is();const s=e();return Ss(t),s}},Is=()=>(-1!=o&&o++,1==o&&nt(qe,void 0,Ht,Kt),Rs),Ss=e=>(o>0&&(o--,0==o&&(s=!le(m),n=!le(J),o=1,jt(1),s&&$t(1),Wt(1),n&&qt(1),e?.(Ht,Kt)&&(de(m,((e,t)=>de(e,((e,s)=>de(e,(([e],n)=>me(Rs,t,s,n,e))))))),de(J,(([e],t)=>xe(Rs,t,e))),s=n=!1),nt(Ge[0],void 0,Ht,Kt),o=-1,jt(0),s&&$t(0),Wt(0),n&&qt(0),nt(Ge[1],void 0,Ht,Kt),o=0,s=n=!1,j([c,u,S,b,V,m,F,x,J,z],ce))),Rs),Rs={getContent:()=>[Ut(),ss()],getTables:Ut,getTableIds:Xt,getTable:e=>ve(fe(X,y(e))),getTableCellIds:e=>ge(fe(U,y(e))),getRowCount:Yt,getRowIds:Zt,getSortedRowIds:_t,getRow:(e,t)=>Re(fe(fe(X,y(e)),y(t))),getCellIds:es,getCell:ts,getValues:ss,getValueIds:ns,getValue:as,hasTables:()=>!le(X),hasTable:e=>re(X,y(e)),hasTableCell:(e,t)=>re(fe(U,y(e)),y(t)),hasRow:(e,t)=>re(fe(X,y(e)),y(t)),hasCell:(e,t,s)=>re(fe(fe(X,y(e)),y(t)),y(s)),hasValues:()=>!le(Y),hasValue:e=>re(Y,y(e)),getTablesJson:()=>Ye(X),getValuesJson:()=>Ye(Y),getJson:()=>Ye([X,Y]),getTablesSchemaJson:()=>Ye(O),getValuesSchemaJson:()=>Ye($),getSchemaJson:()=>Ye([O,$]),hasTablesSchema:()=>e,hasValuesSchema:()=>t,setContent:([e,t])=>Gt((()=>{(ae(e)?ds:os)(e),(ae(t)?gs:rs)(t)})),setTables:os,setTable:(e,t)=>Gt((e=>lt(t,e)?St(e,t):0),e),setRow:(e,t,s)=>Gt(((e,t)=>it(e,t,s)?Rt(e,Vt(e),t,s):0),e,t),addRow:(e,t,s=!0)=>ws((()=>{let n;return it(e,n,t)&&(e=y(e),Rt(e,Vt(e),n=bt(e,s?1:0),t)),n})),setPartialRow:(e,t,s)=>Gt(((e,t)=>{if(it(e,t,s,1)){const n=Vt(e);ne(s,((s,a)=>Tt(e,n,t,a,s)))}}),e,t),setCell:(e,t,s,n)=>Gt(((e,t,s)=>k(ct(e,t,s,D(n)?n(ts(e,t,s)):n),(n=>Tt(e,Vt(e),t,s,n)))),e,t,s),setValues:rs,setPartialValues:e=>Gt((()=>dt(e,1)?ne(e,((e,t)=>yt(t,e))):0)),setValue:(e,t)=>Gt((e=>k(ut(e,D(t)?t(as(e)):t),(t=>yt(e,t)))),e),setTransactionChanges:e=>Gt((()=>{ne(e[0],((e,t)=>E(e)?us(t):ne(e,((e,s)=>E(e)?hs(t,s):ne(e,((e,n)=>me(Rs,t,s,n,e))))))),ne(e[1],((e,t)=>xe(Rs,t,e)))})),setTablesJson:ls,setValuesJson:e=>{try{pt(Ze(e))}catch{}return Rs},setJson:e=>Gt((()=>{try{const[t,s]=Ze(e);wt(t),pt(s)}catch{ls(e)}})),setTablesSchema:is,setValuesSchema:cs,setSchema:(e,t)=>Gt((()=>{is(e),cs(t)})),delTables:ds,delTable:us,delRow:hs,delCell:(e,t,s,n)=>Gt(((e,t,s)=>k(fe(X,e),(a=>k(fe(a,t),(o=>re(o,s)?Et(e,a,t,o,s,n):0))))),e,t,s),delValues:gs,delValue:e=>Gt((e=>re(Y,e)?kt(e):0),e),delTablesSchema:fs,delValuesSchema:Ls,delSchema:()=>Gt((()=>{fs(),Ls()})),transaction:ws,startTransaction:Is,finishTransaction:Ss,forEachTable:e=>de(X,((t,s)=>e(s,(e=>de(t,((t,s)=>e(s,(e=>Le(t,e))))))))),forEachTableCell:(e,t)=>Le(fe(U,y(e)),t),forEachRow:(e,t)=>de(fe(X,y(e)),((e,s)=>t(s,(t=>Le(e,t))))),forEachCell:(e,t,s)=>Le(fe(fe(X,y(e)),y(t)),s),forEachValue:e=>Le(Y,e),addSortedRowIdsListener:(e,t,s,n,a,o,r)=>{let l=_t(e,t,s,n,a);return st((()=>{const r=_t(e,t,s,n,a);N(r,l)||(l=r,o(Rs,e,t,s,n,a,l))}),Je[r?1:0],[e,t],[Xt])},addStartTransactionListener:e=>st(e,qe),addWillFinishTransactionListener:e=>st(e,Ge[0]),addDidFinishTransactionListener:e=>st(e,Ge[1]),callListener:e=>(ot(e),Rs),delListener:e=>(at(e),Rs),getListenerStats:()=>({}),createStore:tt,addListener:st,callListeners:nt};return ne({[g]:[0,Z],[f]:[0,ee],[h]:[1,ie,[Xt]],[h+v]:[1,be,[Xt]],[w]:[1,Me,[Xt]],[I]:[1,De,[Xt]],[L]:[2,Ae,[Xt,Zt]],[v]:[2,ze,[Xt,Zt]],[R]:[3,Oe,[Xt,Zt,es],e=>He(ts(...e))],InvalidCell:[3,Pe],[p]:[0,We],[C]:[0,Be],[T]:[1,$e,[ns],e=>He(as(e[0]))],InvalidValue:[1,je]},(([e,t,s,n],a)=>{Rs[d+a+i]=(...a)=>st(a[e],t[a[e+1]?1:0],e>0?A(a,0,e):void 0,s,n)})),_(Rs)};exports.createCheckpoints=ze,exports.createCustomPersister=(e,t,s,n,a,o,r=[])=>{let l,i,c,d=0,u=0;Ie(Be,r,(()=>0)),Ie($e,r,(()=>[]));const h=async e=>(2!=d&&(d=1,await g.schedule((async()=>{await e(),d=0}))),g),g={load:async(s,n)=>await h((async()=>{try{e.setContent(await t())}catch{e.setContent([s,n])}})),startAutoLoad:async(s={},a={})=>(g.stopAutoLoad(),await g.load(s,a),u=1,c=n((async(s,n)=>{if(n){const t=n();await h((async()=>e.setTransactionChanges(t)))}else await h((async()=>{try{e.setContent(s?.()??await t())}catch(e){o?.(e)}}))})),g),stopAutoLoad:()=>(u&&(a(c),c=void 0,u=0),g),save:async t=>(1!=d&&(d=2,await g.schedule((async()=>{try{await s(e.getContent,t)}catch(e){o?.(e)}d=0}))),g),startAutoSave:async()=>(await g.stopAutoSave().save(),l=e.addDidFinishTransactionListener(((e,t)=>{const[s,n]=t();ae(s)&&ae(n)||g.save((()=>[s,n]))})),g),stopAutoSave:()=>(k(l,e.delListener),g),schedule:async(...e)=>(H(fe($e,r),...e),await(async()=>{if(!fe(Be,r)){for(we(Be,r,1);!E(i=U(fe($e,r)));)try{await i()}catch(e){o?.(e)}we(Be,r,0)}})(),g),getStore:()=>e,destroy:()=>g.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return _(g)},exports.createIndexes=Oe,exports.createMetrics=We,exports.createQueries=qe,exports.createRelationships=Ge,exports.createStore=tt,exports.defaultSorter=Ne;
Binary file
package/lib/cjs/tools.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";const e=e=>typeof e,t="tinybase",l="",a=",",n=e(l),o=e(!0),d=e(0),s="type",r="default",I="Listener",c="get",$="add",u="Ids",i="Table",p=i+"s",b=i+u,C="Row",h=C+u,m="Sorted"+C+u,g="Cell",f=g+u,w="Value",y=w+"s",T=w+u,v=Promise,V=isFinite,x=(e,t)=>e instanceof t,R=e=>null==e,k=e=>e==n||e==o,S=t=>e(t)==n,P=e=>Array.isArray(e),A=async e=>v.all(e),E=t=>{const l=e(t);return k(l)||l==d&&V(t)?l:void 0},D=(e,t)=>e.every(t),O=(e,t)=>e.sort(t),N=(e,t)=>e.forEach(t),G=(e,t=l)=>e.join(t),L=(e,t)=>e.map(t),j=e=>e.length,M=(e,t)=>e.filter(t),J=(e,...t)=>e.push(...t),z=e=>e.pop(),W=(e,...t)=>e.unshift(...t),B=e=>e.shift(),F=Object,U=F.keys,_=F.freeze,Z=e=>x(e,F)&&e.constructor==F,H=(e,t)=>L(F.entries(e),(([e,l])=>t(l,e))),Q=e=>j(U(e)),q=e=>Z(e)&&0==Q(e),K=(e,t)=>e?.has(t)??!1,X=e=>[...e?.values()??[]],Y=(e,t)=>e?.forEach(t),ee=(e,t)=>e?.delete(t),te=e=>new Map(e),le=(e,t)=>e?.get(t),ae=(e,t)=>Y(e,((e,l)=>t(l,e))),ne=(e,t)=>L([...e?.entries()??[]],(([e,l])=>t(l,e))),oe=(e,t,l)=>R(l)?(ee(e,t),e):e?.set(t,l),de=(e,t,l)=>(K(e,t)||oe(e,t,l()),le(e,t)),se=e=>e.toUpperCase(),re=e=>e.toLowerCase(),Ie="a ",ce="A function for",$e=", and registers a listener so that any changes to that result will cause a re-render",ue="Callback",ie="Del",pe="Deps",be=pe+"?: React.DependencyList",Ce="doRollback?: DoRollback",he="actions: () => Return, "+Ce,me="export",ge="Id",fe="Invalid",we="Json",ye=re(I),Te="?: ",ve=" | undefined",Ve="NonNullable",xe="Partial",Re="Props",ke="Provider",Se=`Registers a ${ye} that will be called`,Pe="Represents",Ae="rowId: "+ge,Ee="Schema",De="Set",Oe=", descending?: boolean, offset?: number, limit?: number",Ne="[]",Ge="the Store",Le="Transaction",je=Le+"Changes",Me=re(Le),Je="Execute a "+Me+" to make multiple mutations",ze="Explicitly starts a "+Me,We="Explicitly finishes a "+Me,Be="the end of the "+Me,Fe="void",Ue=" => "+Fe,_e="WhenSet",Ze=" when setting it",He=Ie+"string serialization of",Qe=" ",qe="Gets a callback that can ",Ke="the ",Xe=" the schema for",Ye=(e=0,t=0)=>`the ${ht[e]}content of`+(t?Qe+Ge:l),et=(e=0,t,a=0)=>pt[t]+Qe+Ye(e,1)+(a?" when setting it":l),tt=(e,t=0)=>Pe+` a Row when ${t?"s":"g"}etting ${Ye()} the '${e}' `+i,lt=(e,t,l=0)=>`Gets ${l?"sorted, paginated":"the"} Ids of the ${e}s in `+t,at=(e,t)=>`Calls a function for each ${e} in `+t,nt=e=>"The props passed to a component that renders "+e,ot=e=>"A function that takes "+e,dt=(e,t=0)=>ce+" listening to changes to "+Ct[e]+" in "+Ct[t],st=(e,t,a=0)=>Se+" whenever "+Ct[e]+" in "+Ct[t]+" change"+(a?l:"s"),rt=e=>`the '${e}' `+i,It=e=>"the specified Row in "+rt(e),ct=(e,t=0)=>pt[t]+` ${Ye()} `+rt(e),$t=(e,t=0)=>pt[t]+` ${Ye()} `+It(e),ut=(e,t,l=0)=>pt[l]+` the '${t}' Cell for `+It(e),it=(e,t=0)=>pt[t]+` the '${e}' Value`,pt=["Gets","Checks existence of","Sets","Deletes","Sets part of",Pe,"Gets "+He,"Sets "+He,Se+" whenever",qe+"set",qe+"add",qe+"set part of",qe+"delete","Renders","Gets "+He+Xe,"Sets"+Xe,"Deletes"+Xe],bt=[c,"has","set","del","set","forEach",$,l],Ct=[Ge,p,Ke+i+Qe+u,Ie+i,Ke+C+Qe+u,Ie+C,Ke+g+Qe+u,Ie+g,"invalid Cell changes",y,Ke+w+Qe+u,Ie+w,"invalid Value changes",Ke+"sorted "+C+Qe+u,Ke+g+Qe+u+" anywhere",Ke+"number of Rows"],ht=[l,"tabular ","keyed value "],mt=e=>new Set(P(e)||R(e)?e:[e]),gt=(e,t)=>e?.add(t),ft=/[^A-Za-z]+/,wt=/[^A-Za-z0-9]+/,yt=/^( *)\/\*\* *(.*?) *\*\/$/gm,Tt=(e,t,l)=>e.substring(t,l),vt=e=>e.includes(a),Vt=(e,t,l,a=1)=>{const n=`${t}${1==a?"":a}`;return K(e,n)?Vt(e,t,l,a+1):(oe(e,n,l),n)},xt=e=>e.replace(yt,((e,t,l)=>{const a=77-Rt(t);return`${t}/**\n${l.replace(RegExp(`([^\\n]{1,${a}})(\\s|$)`,"g"),t+" * $1\n")}${t} */`})),Rt=e=>e.length,kt=e=>e.flat(1e3),St=(e,t=0)=>G(L(e.split(wt),((e,l)=>(l>0||t?se:re)(Tt(e,0,1))+Tt(e,1)))),Pt=e=>se(G((e&&!ft.test(e[0])?e:" "+e).split(wt),"_")),At=e=>`/** ${e}. */`,Et=(...e)=>G(M(e,(e=>e)),", "),Dt=(...e)=>"{"+G(e,"; ")+"}",Ot=(...e)=>Dt(...L(e,(e=>"readonly "+e))),Nt=()=>{const e=[te(),te(),te(),te()],t=te(),a=te(),n=e=>{const t=e.indexOf(" as ");return-1!=t?e.substring(t+4):e};return[(...e)=>G(kt(e),"\n"),(t,l,...a)=>N(a,(a=>N([0,1],(n=>(t??n)==n?gt(de(e[n],l,mt),a):0)))),(e,a,n,o=l,d=1)=>Vt(t,e,[a,n,o,d]),(e,t,l)=>Vt(a,e,P(l)?[`(${t}) => {`,l,"}"]:[`(${t}) => ${l}`]),(e,t)=>le(a,e)===t?e:Vt(a,e,t),(t=0)=>L([...O(ne(e[t],((e,t)=>`import {${G(O(X(e),((e,t)=>n(e)>n(t)?1:-1)),", ")}} from '${t}';`)),((e,t)=>vt(e)!=vt(t)?vt(e)?-1:1:e>t?1:-1)),l],(e=>e.replace("{React}","React"))),()=>ne(t,(([e,t,a,n],o)=>[At(t),`${n?me+" ":l}type ${o}${a} = ${e};`,l])),()=>ne(a,((e,t)=>(e=P(e)?e:[e],J(e,z(e)+";"),[`const ${t} = ${B(e)}`,e,l])))]},Gt=e=>{const t=new WeakMap;return l=>(t.has(l)||t.set(l,e(l)),t.get(l))},Lt=(e,t,l)=>[t=>H(e,((e,a)=>t(a,St(a,1),l(Pt(a),`'${a}'`)))),(t,a)=>H(e[t],((e,t)=>a(t,e[s],e[r],l(Pt(t),`'${t}'`),St(t,1)))),e=>H(t,((t,a)=>e(a,t[s],t[r],l(Pt(a),`'${a}'`),St(a,1))))],jt=(e,t,a,n)=>[(n,o)=>{const d=n+": "+o,s=e(p,Dt(...t((e=>`'${e}'?: {[rowId: Id]: `+Dt(...a(e,((e,t,a)=>`'${e}'${R(a)?"?":l}: ${t}`)))+"}"))),et(1,5)),r=e(p+_e,Dt(...t((e=>`'${e}'?: {[rowId: Id]: `+Dt(...a(e,((e,t)=>`'${e}'?: ${t}`)))+"}"))),et(1,5,1)),c=e(i+ge,"keyof "+s,"A "+i+" Id in "+Ge),$=`<TId extends ${c}>`,u=e(i,Ve+`<${s}[TId]>`,"A "+i+" in "+Ge,$),w=e(i+_e,Ve+`<${r}[TId]>`,"A "+i+" in "+Ge+Ze,$),y=e(C,u+"<TId>[Id]","A "+C+" in a "+i,$),T=e(C+_e,w+"<TId>[Id]","A "+C+" in a "+i+Ze,$),v=e(g+ge,`Extract<keyof ${y}<TId>, Id>`,"A "+g+" Id in a "+C,$),V=e(g,Ve+`<${s}[TId]>[Id][CId]`,"A "+g+" in a "+C,`<TId extends ${c}, CId extends ${v}<TId>>`),x=e("CellIdCellArray",`CId extends ${v}<TId> ? [cellId: CId, cell: ${V}<TId, CId>] : never`,g+" Ids and types in a "+C,`<TId extends ${c}, CId = ${v}<TId>>`,0),k=e(g+ue,`(...[cellId, cell]: ${x}<TId>)`+Ue,ot(Ie+g+" Id, and "+g),$),S=e(C+ue,"(rowId: Id, forEachCell: (cellCallback: CellCallback<TId>) "+Ue+") "+Ue,ot(Ie+C+" Id, and a "+g+" iterator"),$),P=e(i+g+ue,`(cellId: ${v}<TId>, count: number) `+Ue,ot(Ie+g+" Id, and count of how many times it appears"),$),A=e("TableIdForEachRowArray",`TId extends ${c} ? [tableId: TId, forEachRow: (rowCallback: ${S}<TId>)${Ue}] : never`,i+" Ids and callback types",`<TId = ${c}>`,0),E=e(i+ue,`(...[tableId, forEachRow]: ${A})`+Ue,ot(Ie+i+" Id, and a "+C+" iterator"),l),D=e("TableIdRowIdCellIdArray",`TId extends ${c} ? [tableId: TId, rowId: Id, cellId: ${v}<TId>] : never`,"Ids for GetCellChange",`<TId = ${c}>`,0),O=e("GetCellChange",`(...[tableId, rowId, cellId]: ${D}) => CellChange`,ce+" returning information about any Cell's changes during a "+Me),N=e(p+I,`(${d}, getCellChange: ${O}${ve})`+Ue,dt(1)),G=e(b+I,`(${d})`+Ue,dt(2)),L=e(i+I,`(${d}, tableId: ${c}, getCellChange: ${O}${ve})`+Ue,dt(3)),j=e(i+f+I,`(${d}, tableId: ${c})`+Ue,dt(14,3)),M=e(C+"Count"+I,`(${d}, tableId: ${c})`+Ue,dt(15,3)),J=e(h+I,`(${d}, tableId: ${c})`+Ue,dt(4,3)),z=e(m+I,"("+Et(d,"tableId: "+c,"cellId: Id"+ve,"descending: boolean","offset: number","limit: number"+ve,"sortedRowIds: Ids")+")"+Ue,dt(13,3)),W=e(C+I,"("+Et(""+d,"tableId: "+c,Ae,`getCellChange: ${O}${ve}`)+")"+Ue,dt(5,3)),B=e(f+I,"("+Et(""+d,"tableId: "+c,Ae)+")"+Ue,dt(6,5)),F=e("CellListenerArgsArrayInner",`CId extends ${v}<TId> ? [${d}, tableId: TId, ${Ae}, cellId: CId, newCell: ${V}<TId, CId> ${ve}, oldCell: ${V}<TId, CId> ${ve}, getCellChange: ${O} ${ve}] : never`,"Cell args for CellListener",`<TId extends ${c}, CId = ${v}<TId>>`,0),U=e("CellListenerArgsArrayOuter",`TId extends ${c} ? `+F+"<TId> : never","Table args for CellListener",`<TId = ${c}>`,0);return[s,r,c,u,w,y,T,v,V,k,S,P,E,N,G,L,j,M,J,z,W,B,e(g+I,`(...[${n}, tableId, rowId, cellId, newCell, oldCell, getCellChange]: ${U})`+Ue,dt(7,5)),e(fe+g+I,`(${d}, tableId: Id, ${Ae}, cellId: Id, invalidCells: any[])`+Ue,dt(8))]},(t,a)=>{const o=t+": "+a,d=e(y,Dt(...n(((e,t,a)=>`'${e}'${R(a)?"?":l}: ${t}`))),et(2,5)),s=e(y+_e,Dt(...n(((e,t)=>`'${e}'?: ${t}`))),et(2,5,1)),r=e(w+ge,"keyof "+d,"A "+w+" Id in "+Ge),c=e(w,Ve+`<${d}[VId]>`,"A "+w+" Id in "+Ge,`<VId extends ${r}>`),$=e("ValueIdValueArray",`VId extends ${r} ? [valueId: VId, value: ${c}<VId>] : never`,w+" Ids and types in "+Ge,`<VId = ${r}>`,0),u=e(w+ue,`(...[valueId, value]: ${$})`+Ue,ot(Ie+w+" Id, and "+w)),i=e("GetValueChange",`(valueId: ${r}) => ValueChange`,ce+" returning information about any Value's changes during a "+Me),p=e(y+I,`(${o}, getValueChange: ${i}${ve})`+Ue,dt(9)),b=e(T+I,`(${o})`+Ue,dt(10)),C=e("ValueListenerArgsArray",`VId extends ${r} ? [${o}, valueId: VId, newValue: ${c}<VId> ${ve}, oldValue: ${c}<VId> ${ve}, getValueChange: ${i} ${ve}] : never`,"Value args for ValueListener",`<VId = ${r}>`,0);return[d,s,r,c,u,p,b,e(w+I,`(...[${t}, valueId, newValue, oldValue, getValueChange]: `+C+")"+Ue,dt(11)),e(fe+w+I,`(${o}, valueId: Id, invalidValues: any[])`+Ue,dt(12))]},(t,l)=>e(Le+I,`(${t}: ${l}, getTransactionChanges: GetTransactionChanges, getTransactionLog: GetTransactionLog)`+Ue,ce+" listening to the completion of a "+Me)],Mt=(e,t=l,a=l)=>`store.${e}(${t})`+(a?" as "+a:l),Jt=(e,t=l)=>`fluent(() => ${Mt(e,t)})`,zt=(e,t=l,a=l)=>`store.${e}(${t?t+", ":l}proxy(listener)${a?", "+a:l})`,Wt=(e,a,n)=>{const[d,c,v,V,x,k,P,A]=Nt(),[E,D,O]=Lt(e,a,x),[L,j,M]=jt(v,E,D,O),z=te(),B=(e=0)=>ne(z,(([t,a,n,o,d],s)=>{const r=e?[s+`: ${d}(${t}): ${a} => ${n},`]:[s+d+`(${t}): ${a};`];return e||W(r,At(o)),J(r,l),r})),F=(e,t,a,n,o,d=l)=>Vt(z,e,[t,a,n,o,d]),U=(e,t,a,n,o,d=l,s=l,r=l)=>F(bt[e]+t+(4==e?xe:l)+a,d,n,(n==H?Jt:Mt)(bt[e]+(4==e?xe:l)+a,s,e?void 0:n),o,r),_=(e,t,a,n=l,o=l,d=1,s=l)=>F($+e+I,(n?n+", ":l)+ye+": "+t+(d?", mutator?: boolean":l),ge,zt($+e+I,o,d?"mutator":l),a,s),Z=`./${St(n)}.d`,H=St(n,1),Q=St(H),K=[],Y=te();let ee=[],de=[];if(c(1,Z,H,`create${H} as create${H}Decl`),q(e))c(null,t,p);else{c(0,t,"CellChange"),c(null,t,u);const[e,a,n,d,I,$,w,y,T,V,k,P,A,O,j,M,z,W,B,F,q,ae,ne,de]=L(Q,H),se=te();E(((e,t)=>{const l=`<'${e}'>`,a=[v(t+i,d+l,Pe+` the '${e}' `+i),v(t+i+_e,I+l,Pe+` the '${e}' `+i+Ze),v(t+C,$+l,tt(e)),v(t+C+_e,w+l,tt(e,1)),v(t+g+ge,y+l,`A Cell Id for the '${e}' `+i),v(t+g+ue,V+l,ot(`a Cell Id and value from a Row in the '${e}' `+i)),v(t+C+ue,k+l,ot(`a Row Id from the '${e}' Table, and a Cell iterator`)),v(t+i+g+ue,P+l,ot(`a Cell Id from anywhere in the '${e}' Table, and a count of how many times it appears`))];oe(se,e,a),c(1,Z,...a)})),c(1,Z,e,a,n,y,A,O,j,M,z,W,B,F,q,ae,ne,de),ee=[e,a,n,y,O,j,M,z,W,B,F,q,ae,ne,se],N([[e],[o],[H,"tables: "+a,"tables"],[H]],(([e,t,a],n)=>U(n,l,p,e,et(1,n),t,a))),U(0,l,b,n+Ne,lt(i,Ge)),U(5,l,i,Fe,at(i,Ge),"tableCallback: "+A,"tableCallback as any"),E(((e,t,a)=>{const[n,d,s,r,I,c,$,p]=le(se,e);N([[n],[o],[H,"table: "+d,", table"],[H]],(([n,o,d=l],s)=>U(s,t,i,n,ct(e,s),o,a+d))),U(0,t,i+f,u,lt(g,"the whole of "+rt(e)),l,a),U(5,t,i+g,Fe,at(i+g,"the whole of "+rt(e)),"tableCellCallback: "+p,a+", tableCellCallback as any"),U(0,t,C+"Count","number","Gets the number of Rows in the "+rt(e),l,a),U(0,t,h,u,lt(C,rt(e)),l,a),U(0,t,m,u,lt(C,rt(e),1),"cellId?: "+I+Oe,a+", cellId, descending, offset, limit"),U(5,t,C,Fe,at(C,rt(e)),"rowCallback: "+$,a+", rowCallback as any"),N([[s],[o],[H,", row: "+r,", row"],[H],[H,", partialRow: "+r,", partialRow"]],(([n,o=l,d=l],s)=>U(s,t,C,n,$t(e,s),Ae+o,a+", rowId"+d))),U(6,t,C,ge+ve,"Add a new Row to "+rt(e),"row: "+r+", reuseIds?: boolean",a+", row, reuseIds"),U(0,t,f,I+Ne,lt(g,It(e)),Ae,a+", rowId"),U(5,t,g,Fe,at(g,It(e)),Ae+", cellCallback: "+c,a+", rowId, cellCallback as any"),D(e,((n,d,s,r,I)=>{const c="Map"+St(d,1);oe(Y,d,c);const $=d+(R(s)?ve:l);N([[$],[o],[H,`, cell: ${d} | `+c,", cell as any"],[H]],(([o,d=l,s=l],c)=>U(c,t+I,g,o,ut(e,n,c),Ae+d,a+", rowId, "+r+s))),U(1,t+I,i+g,o,pt[1]+` the '${n}' Cell anywhere in `+rt(e),l,a+", "+r)}))})),U(0,l,p+we,we,et(1,6)),U(2,l,p+we,H,et(1,7),"tablesJson: "+we,"tables"+we),_(p,O,et(1,8)+" changes"),_(b,j,st(2,0,1)),_(i,M,st(3,0),`tableId: ${n} | null`,"tableId"),_(i+f,z,st(14,3,1),`tableId: ${n} | null`,"tableId"),_(C+"Count",W,st(15,3),`tableId: ${n} | null`,"tableId"),_(h,B,st(4,3,1),`tableId: ${n} | null`,"tableId"),_(m,F,st(13,3,1),Et("tableId: TId",`cellId: ${y}<TId>`+ve,"descending: boolean","offset: number","limit: number"+ve),Et("tableId","cellId","descending","offset","limit"),1,"<TId extends TableId>"),_(C,q,st(5,3),`tableId: ${n} | null, rowId: IdOrNull`,"tableId, rowId"),_(f,ae,st(6,5,1),`tableId: ${n} | null, rowId: IdOrNull`,"tableId, rowId"),_(g,ne,st(7,5),`tableId: ${n} | null, rowId: IdOrNull, cellId: ${G(E((e=>le(se,e)?.[4]??l))," | ")} | null`,"tableId, rowId, cellId"),_(fe+g,de,Se+" whenever an invalid Cell change was attempted","tableId: IdOrNull, rowId: IdOrNull, cellId: IdOrNull","tableId, rowId, cellId"),c(1,Z,...X(Y)),J(K,".set"+p+Ee+"({",kt(E(((e,t,a)=>[`[${a}]: {`,...D(e,((e,t,a,n)=>`[${n}]: {[${x(Pt(s),`'${s}'`)}]: ${x(Pt(t),`'${t}'`)}${R(a)?l:`, [${x(Pt(r),`'${r}'`)}]: `+(S(a)?x(Pt(a),`'${a}'`):a)}},`)),"},"]))),"})")}if(q(a))c(null,t,y);else{const[e,a,n,d,I,$,u,i,p]=j(Q,H);c(1,Z,e,a,n,I,$,u,i,p),de=[e,a,n,$,u,i],N([[e],[o],[H,"values: "+a,"values"],[H],[H,"partialValues: "+a,"partialValues"]],(([e,t,a],n)=>U(n,l,y,e,et(2,n),t,a))),U(0,l,T,n+Ne,lt(w,Ge)),U(5,l,w,"void",at(w,Ge),"valueCallback: "+I,"valueCallback as any"),O(((e,t,a,n,d)=>{const s="Map"+St(t,1);oe(Y,t,s),N([[t],[o],[H,`value: ${t} | `+s,", value as any"],[H]],(([t,a,o=l],s)=>U(s,d,w,t,it(e,s),a,n+o)))})),U(0,l,y+we,we,et(2,6)),U(2,l,y+we,H,et(2,7),"valuesJson: "+we,"values"+we),_(y,$,et(2,8)+" changes"),_(T,u,st(10,0,1)),_(w,i,st(11,0),`valueId: ${n} | null`,"valueId"),_(fe+w,p,Se+" whenever an invalid Value change was attempted","valueId: IdOrNull","valueId"),c(1,Z,...X(Y)),c(0,t,"ValueChange"),J(K,".set"+y+Ee+"({",O(((e,t,a,n)=>[`[${n}]: {[${x(Pt(s),`'${s}'`)}]: ${x(Pt(t),`'${t}'`)}${R(a)?l:`, [${x(Pt(r),`'${r}'`)}]: `+(S(a)?x(Pt(a),`'${a}'`):a)}},`])),"})")}U(0,l,"Content",`[${p}, ${y}]`,et(0,0)),U(2,l,"Content",H,et(0,2),`[tables, values]: [${p}, ${y}]`,"[tables, values]"),U(2,l,je,H,`Applies a set of ${je} to the Store`,"transactionChanges: "+je,"transactionChanges"),ae(Y,((e,t)=>v(t,`(cell: ${e}${ve}) => `+e,`Takes a ${e} Cell value and returns another`))),c(null,t,"DoRollback",ge,"IdOrNull",we,"Store",je),c(0,t,"Get"+je,"GetTransactionLog"),U(0,l,we,we,et(0,6)),U(2,l,we,H,et(0,7),"tablesAndValuesJson: "+we,"tablesAndValuesJson"),U(7,l,Me,"Return",Je,he,"actions, doRollback","<Return>"),U(7,l,"start"+Le,H,ze),U(7,l,"finish"+Le,H,We,Ce,"doRollback");const se=M(Q,H);return _("Start"+Le,se,Se+" just before the start of the "+Me,l,l,0),_("WillFinish"+Le,se,Se+" just before "+Be,l,l,0),_("DidFinish"+Le,se,Se+" just after "+Be,l,l,0),U(7,l,"call"+I,H,"Manually provoke a listener to be called","listenerId: Id","listenerId"),U(3,l,I,H,"Remove a listener that was previously added to "+Ge,"listenerId: Id","listenerId"),F("getStore",l,"Store","store",pt[0]+" the underlying Store object"),c(1,t,"createStore"),c(1,Z,H,`create${H} as create${H}Decl`,se),x("store",["createStore()",...K]),V("fluent","actions: () => Store",["actions();",`return ${Q};`]),V("proxy","listener: any",`(_: Store, ...params: any[]) => listener(${Q}, ...params)`),x(Q,["{",...B(1),"}"]),[d(...k(0),...P(),me+" interface "+H+" {",...B(0),"}",l,At(`Creates a ${H} object`),me+" function create"+H+"(): "+H+";"),d(...k(1),me+" const create"+H+": typeof create"+H+"Decl = () => {",...A(),`return Object.freeze(${Q});`,"};"),ee,de]},Bt=e=>c+e,Ft=e=>Et(Bt(e),Bt(e)+pe),Ut="debugIds?: boolean",_t="debugIds={debugIds}",Zt="then"+be,Ht="Parameter",Qt=": (parameter: "+Ht+", store: Store) => ",qt="const contextValue = useContext(Context);",Kt=", based on a parameter",Xt=": ",Yt="<"+Ht+",>",el=Ht+"ized"+ue+"<"+Ht+">",tl="rowId",ll="rowId={rowId}",al=", separator, debugIds",nl="separator?: ReactElement | string",ol="then?: (store: Store",dl=Et(ol+")"+Ue,Zt),sl="then, then"+pe,rl=tl+Xt+ge,Il="View",cl=(e,...t)=>Et(...t,ye+": "+e,ye+be,"mutator?: boolean"),$l=(...e)=>Et(...e,ye,ye+pe,"mutator"),ul=(e,a,n,o,d)=>{const[s,r,c,$,v,V,x,k]=Nt(),[S,P,A]=Lt(e,a,v),E=`./${St(n)}.d`,D=`./${St(n)}-ui-react.d`,O="tinybase/ui-react",N=St(n,1),L=St(N),j=N+"Or"+N+ge,M=L+"Or"+N+ge,z=L+`={${L}}`,B=te(),F=(e,t,a,n,o,d=l)=>(r(1,D,e+" as "+e+"Decl"),Vt(B,e,[t,a,n,o,d])),U=(e,t,a,n,o,d=l)=>F("use"+e,t,a,n,o,d),_=(e,t,a,n,o=l,d=l,s=l,I=l,c=l)=>(r(1,O,`use${t} as use${t}Core`),U(e,Et(o,X,I),a,ee+`(${M}, use${t}Core, [`+(d||l)+(c?"], ["+c:l)+"]);",n,s)),Z=(e,t,l,a)=>F(e,t,1,l,a),H=(e=0)=>ne(B,(([t,a,n,o,d],s)=>{const r=e?[me+` const ${s}: typeof ${s}Decl = ${d}(${t}): ${1==a?"any":a} =>`,n]:[me+` function ${s}${d}(${t}): ${1==a?"ComponentReturnType":a};`];return e||W(r,At(o)),J(r,l),r}));r(null,t,ge,"Store",ue,Ht+"ized"+ue),r(0,O,"ComponentReturnType"),r(1,O,"useCellIds"),r(null,O,"ExtraProps"),r(0,E,N);const Q=c(j,N+" | "+ge,`Used when you need to refer to a ${N} in a React hook or component`),K=c(ke+Re,Ot(L+Te+N,L+`ById?: {[${L}Id: Id]: ${N}}`),`Used with the ${ke} component, so that a `+N+" can be passed into the context of an application");r(0,"react","ReactElement","ComponentType"),r(1,"react","React"),r(1,D,Q,K);const X=M+Te+Q;v("{createContext, useContext, useMemo}","React"),v("Context",`createContext<[${N}?, {[${L}Id: Id]: ${N}}?]>([])`),U("Create"+N,`create: () => ${N}, create`+be,N,"\n// eslint-disable-next-line react-hooks/exhaustive-deps\nuseMemo(create, createDeps)",`Create a ${N} within a React application with convenient memoization`);const Y=U(N,"id?: Id",N+ve,["{",qt,"return id == null ? contextValue[0] : contextValue[1]?.[id];","}"],`Get a reference to a ${N} from within a ${ke} component context`),ee=$("useHook",M+`: ${Q} | undefined, hook: (...params: any[]) => any, preParams: any[], postParams: any[] = []`,[`const ${L} = ${Y}(${M} as Id);`,`return hook(...preParams, ((${M} == null || typeof ${M} == 'string')`,`? ${L} : ${M})?.getStore(), ...postParams)`]),ae=$("getProps","getProps: ((id: any) => ExtraProps) | undefined, id: Id","(getProps == null) ? ({} as ExtraProps) : getProps(id)"),oe=$("wrap",Et("children: any","separator?: any","encloseWithId?: boolean","id?: Id"),["const separated = separator==null || !Array.isArray(children)"," ? children"," : children.map((child, c) => (c > 0 ? [separator, child] : child));","return encloseWithId ? [id, ':{', separated, '}'] : separated;"]),de=$("useCustomOrDefaultCellIds",Et("customCellIds: Ids | undefined","tableId: Id","rowId: Id",`${M}?: ${Q} | undefined`),[`const defaultCellIds = ${ee}(${M}, useCellIds, [tableId, rowId]);`,"return customCellIds ?? defaultCellIds;"]),se=v("NullComponent","() => null");if(!q(e)){const[e,a,n,d,s,w,y,T,v,V,x,k,A,O,j]=o;r(null,E,e,a,n,s,w,y,T,v,V,x,k,A,O),r(0,E,d),r(1,E,N),r(null,t,u,"IdOrNull");const M=$("tableView",`{${L}, rowComponent, getRowComponentProps, customCellIds`+al+"}: any, rowIds: Ids, tableId: Id, defaultRowComponent: React.ComponentType<any>",["const Row = rowComponent ?? defaultRowComponent;",`return ${oe}(rowIds.map((rowId) => (`,"<Row","{..."+ae+"(getRowComponentProps, rowId)}","key={rowId}","tableId={tableId}",ll,"customCellIds={customCellIds}",z,_t,"/>","))",al,", tableId,",");"]),J=$("getDefaultTableComponent","tableId: Id",G(S(((e,t,l)=>`tableId == ${l} ? ${t}TableView : `)))+se),W=$("getDefaultCellComponent","tableId: Id, cellId: Id",G(S(((e,t,l)=>`tableId == ${l} ? ${G(P(e,((e,l,a,n,o)=>`cellId == ${n} ? `+t+o+"CellView : ")))+se} : `)))+se);_(p,p,e,et(1,0)+$e);const B=_(b,b,n+Ne,lt(i,Ge)+$e);_(De+p+ue,De+p+ue,el,et(1,9)+Kt,Et(Bt(p)+Qt+a,Bt(p)+be),Ft(p),Yt,Et(ol,`tables: ${a})`+Ue,Zt),sl),_(ie+p+ue,ie+p+ue,ue,et(1,12),l,l,l,dl,sl);const F=c(g+Re,Ot("tableId?: TId","rowId: Id","cellId?: CId",L+Te+N,Ut),nt(Ie+g),`<TId extends ${n}, CId extends ${d}<TId>>`),U=c(C+Re,Ot("tableId?: TId","rowId: Id",L+Te+N,"cellComponents?: {readonly [CId in "+d+`<TId>]?: ComponentType<${F}<TId, CId>>;}`,`getCellComponentProps?: (cellId: ${d}<TId>) => ExtraProps`,`customCellIds?: ${d}<TId>[]`,nl,Ut),nt(Ie+C),`<TId extends ${n}>`),H=c(i+Re,Ot("tableId?: TId",L+Te+N,`rowComponent?: ComponentType<${U}<TId>>`,"getRowComponentProps?: (rowId: Id) => ExtraProps","customCellIds?: CellId<TId>[]",nl,Ut),nt(Ie+i),`<TId extends ${n}>`),Q=c("Sorted"+i+Re,Ot("tableId?: TId","cellId?: "+d+"<TId>","descending?: boolean","offset?: number","limit?: number",L+Te+N,`rowComponent?: ComponentType<${U}<TId>>`,"getRowComponentProps?: (rowId: Id) => ExtraProps","customCellIds?: CellId<TId>[]",nl,Ut),nt(Ie+"sorted "+i),`<TId extends ${n}>`),q=c(p+Re,Ot(L+Te+N,"tableComponents?: {readonly [TId in "+n+`]?: ComponentType<${H}<TId>>;}`,`getTableComponentProps?: (tableId: ${n}) => ExtraProps`,nl,Ut),nt(Ye(1,1)));r(1,D,q,H,Q,U,F),Z(p+Il,"{"+L+", tableComponents, getTableComponentProps"+al+"}: "+q,[oe+`(${B}(${L}).map((tableId) => {`,"const Table = (tableComponents?.[tableId] ?? "+J+"(tableId)) as React.ComponentType<TableProps<typeof tableId>>;","return <Table",`{...${ae}(getTableComponentProps, tableId)}`,"tableId={tableId}","key={tableId}",z,_t,"/>;","}), separator)"],et(1,13)+$e),S(((e,t,a)=>{const[n,o,d,s,I]=le(j,e);r(null,E,n,o,d,s,I),_(t+i,i,n,ct(e)+$e,l,a),_(t+i+f,i+f,u,lt(g,"the whole of "+rt(e))+$e,l,a);const c=_(t+h,h,u,lt(C,rt(e))+$e,l,a),$=_(t+m,m,u,lt(C,rt(e),1)+$e,"cellId?: "+I+", descending?: boolean, offset?: number, limit?: number",a+", cellId, descending, offset, limit");_(t+C,C,d,$t(e)+$e,rl,Et(a,tl)),_(t+f,f,I+Ne,lt(g,It(e))+$e,rl,Et(a,tl)),_(De+t+i+ue,De+i+ue,el,ct(e,9)+Kt,Et(Bt(i)+Qt+o,Bt(i)+be),Et(a,Ft(i)),Yt,Et(ol,`table: ${o})`+Ue,Zt),sl),_(ie+t+i+ue,ie+i+ue,ue,ct(e,12),l,a,l,dl,sl),_(De+t+C+ue,De+C+ue,el,$t(e,9)+Kt,Et(rl,Bt(C)+Qt+s,Bt(C)+be),Et(a,tl,Ft(C)),Yt,Et(ol,`row: ${s})`+Ue,Zt),sl),_("Add"+t+C+ue,"Add"+C+ue,el,$t(e,10)+Kt,Et(Bt(C)+Qt+s,Bt(C)+be),Et(a,Ft(C)),Yt,"then?: ("+Et(rl+ve,"store: Store","row: "+s+")"+Ue,"then"+be)+", reuseRowIds?: boolean",sl+", reuseRowIds"),_(De+t+xe+C+ue,De+xe+C+ue,el,$t(e,11)+Kt,Et(rl,Bt(xe+C)+Qt+s,Bt(xe+C)+be),Et(a,tl,Ft(xe+C)),Yt,Et(ol,`partialRow: ${s})`+Ue,Zt),sl),_(ie+t+C+ue,ie+C+ue,ue,$t(e,12),rl,Et(a,tl),l,dl,sl);const p=Z(t+C+Il,"{rowId, "+L+", cellComponents, getCellComponentProps, customCellIds"+al+`}: ${U}<'${e}'>`,[oe+`(${de}(customCellIds, `+a+`, rowId, ${L}).map((cellId: ${I}) => {`,"const Cell = (cellComponents?.[cellId] ?? "+W+`(${a}, cellId)) as React.ComponentType<CellProps<typeof `+a+", typeof cellId>>;","return <Cell",`{...${ae}(getCellComponentProps, cellId)} `,"key={cellId}",`tableId={${a}}`,ll,"cellId={cellId}",z,_t,"/>;","})"+al+", rowId)"],$t(e,13)+$e);Z(t+"Sorted"+i+Il,"{cellId, descending, offset, limit, ...props}: "+Q+`<'${e}'>`,M+"(props, "+$+`(cellId, descending, offset, limit, props.${L}), ${a}, ${p});`,ct(e,13)+", sorted"+$e),Z(t+i+Il,`props: ${H}<'${e}'>`,M+"(props, "+c+`(props.${L}), ${a}, ${p});`,ct(e,13)+$e),P(e,((n,o,d,s,I)=>{const c="Map"+St(o,1);r(0,E,c),r(1,E,c);const $=_(t+I+g,g,o+(R(d)?ve:l),ut(e,n)+$e,rl,Et(a,tl,s));_(De+t+I+g+ue,De+g+ue,el,ut(e,n,9)+Kt,Et(rl,Bt(g)+Qt+o+" | "+c,Bt(g)+be),Et(a,tl,s,Ft(g)),Yt,Et(ol,`cell: ${o} | ${c})`+Ue,Zt),sl),_(ie+t+I+g+ue,ie+g+ue,ue,ut(e,n,12),Et(rl,"forceDel?: boolean"),Et(a,tl,s,"forceDel"),l,dl,sl),Z(t+I+g+Il,`{rowId, ${L}, debugIds}: `+F+`<'${e}', '${n}'>`,[oe+`('' + ${$}(rowId, `+L+`) ?? '', undefined, debugIds, ${s})`],ut(e,n,13)+$e)}))}));const K=G(S((e=>le(j,e)?.[4]??l))," | ");_(p+I,p+I,Fe,et(1,8)+" changes",cl(s),$l()),_(b+I,b+I,Fe,st(2,0,1),cl(w),$l()),_(i+I,i+I,Fe,st(3,0),cl(y,`tableId: ${n} | null`),$l("tableId")),_(i+f+I,i+f+I,Fe,st(14,3,1),cl(T,`tableId: ${n} | null`),$l("tableId")),_(h+I,h+I,Fe,st(4,3,1),cl(V,`tableId: ${n} | null`),$l("tableId")),_(m+I,m+I,Fe,st(13,3,1),cl(x,`tableId: ${n} | null`,"cellId: "+K+ve,"descending: boolean","offset: number","limit: number"+ve),$l("tableId","cellId","descending","offset","limit")),_(C+I,C+I,Fe,st(5,3),cl(k,`tableId: ${n} | null`,tl+": IdOrNull"),$l("tableId",tl)),_(f+I,f+I,Fe,st(6,5,1),cl(A,`tableId: ${n} | null`,tl+": IdOrNull"),$l("tableId",tl)),_(g+I,g+I,Fe,st(7,5),cl(O,`tableId: ${n} | null`,tl+": IdOrNull",`cellId: ${K} | null`),$l("tableId",tl,"cellId"))}if(!q(a)){const[e,t,a,n,o,s]=d;r(null,E,...d),r(1,E,N);const u=$("getDefaultValueComponent","valueId: Id",G(A(((e,t,l,a,n)=>`valueId == ${a} ? `+n+"ValueView : ")))+se);_(y,y,e,et(2,0)+$e);const i=_(T,T,a+Ne,lt(w,Ge)+$e);_(De+y+ue,De+y+ue,el,et(2,9)+Kt,Et(Bt(y)+Qt+t,Bt(y)+be),Ft(y),Yt,Et(ol,`values: ${t})`+Ue,Zt),sl),_(De+xe+y+ue,De+xe+y+ue,el,et(2,11)+Kt,Et(Bt(xe+y)+Qt+t,Bt(xe+y)+be),Ft(xe+y),Yt,Et(ol,`partialValues: ${t})`+Ue,Zt),sl),_(ie+y+ue,ie+y+ue,ue,et(2,12),l,l,l,dl,sl);const p=c(w+Re,Ot("valueId?: VId",L+Te+N,Ut),nt("a Value"),`<VId extends ${a}>`),b=c(y+Re,Ot(L+Te+N,"valueComponents?: {readonly [VId in "+a+`]?: ComponentType<${p}<VId>>;}`,`getValueComponentProps?: (valueId: ${a}) => ExtraProps`,nl,Ut),nt(Ye(2,1)));r(1,D,b,p),Z(y+Il,"{"+L+", valueComponents, getValueComponentProps"+al+"}: "+b,[oe+`(${i}(${L}).map((valueId) => {`,"const Value = valueComponents?.[valueId] ?? "+u+"(valueId);","return <Value",`{...${ae}(getValueComponentProps, valueId)}`,"key={valueId}",z,_t,"/>;","}), separator)"],et(2,13)+$e),A(((e,t,a,n,o)=>{const d="Map"+St(t,1);r(0,E,d),r(1,E,d);const s=_(o+w,w,t,it(e)+$e,l,n);_(De+o+w+ue,De+w+ue,el,it(e,9)+Kt,Et(Bt(w)+Qt+t+" | "+d,Bt(w)+be),Et(n,Ft(w)),Yt,Et(ol,`value: ${t} | ${d})`+Ue,Zt),sl),_(ie+o+w+ue,ie+w+ue,ue,it(e,12),l,n,l,dl,sl),Z(o+w+Il,`{${L}, debugIds}: ${p}<'${e}'>`,[oe+`('' + ${s}(`+L+`) ?? '', undefined, debugIds, ${n})`],it(e,13)+$e)})),_(y+I,y+I,Fe,et(2,8)+" changes",cl(n),$l()),_(T+I,T+I,Fe,st(10,0,1),cl(o),$l()),_(w+I,w+I,Fe,st(11,0),cl(s,`valueId: ${a} | null`),$l("valueId"))}return Z(ke,`{${L}, ${L}ById, children}: `+K+" & {children: React.ReactNode}",["{",qt,"return (","<Context."+ke,"value={useMemo(",`() => [${L} ?? contextValue[0], {...contextValue[1], ...${L}ById}],`,`[${L}, ${L}ById, contextValue],`,")}>","{children}",`</Context.${ke}>`,");","}"],"Wraps part of an application in a context that provides default objects to be used by hooks and components within"),[s(...V(0),...x(),...H(0)),s(...V(1),...k(),...H(1))]},il=(e,t,a)=>{if(q(e)&&q(t))return[l,l,l,l];const[n,o,d,s]=Wt(e,t,a);return[n,o,...ul(e,t,a,d,s)]},pl=JSON.parse,bl="prettier/",Cl=bl+"plugins/",hl={parser:"typescript",singleQuote:!0,trailingComma:"all",bracketSpacing:!1,jsdocSingleLineComment:!1},ml=Gt((e=>{const t=()=>{const t=pl(e.getTablesSchemaJson());return!q(t)||D(e.getTableIds(),(l=>{const a=e.getRowIds(l),n=te();if(D(a,(t=>D(e.getCellIds(l,t),(a=>{const o=e.getCell(l,t,a),d=de(n,a,(()=>[E(o),te(),[0],0])),[s,r,[I]]=d,c=de(r,o,(()=>0))+1;return c>I&&(d[2]=[c,o]),oe(r,o,c),d[3]++,s==E(o)})))))return t[l]={},Y(n,(([e,,[,n],o],d)=>{t[l][d]={[s]:e,...o==j(a)?{[r]:n}:{}}})),1}))?t:{}},l=()=>{const t=pl(e.getValuesSchemaJson());return q(t)&&e.forEachValue(((e,l)=>{t[e]={[s]:E(l)}})),t},a=e=>il(t(),l(),e),n=async e=>{const t=["d.ts","ts","d.ts","tsx"],l=[];let n;try{n=(await import(bl+"standalone")).format,J(l,await import(Cl+"estree"),await import(Cl+"typescript"))}catch(e){n=async e=>e}return await A(L(a(e),(async(e,a)=>xt(await n(e,{...hl,plugins:l,filepath:"_."+t[a]})))))};return _({getStoreStats:t=>{let l=0,a=0,n=0;const o={};return e.forEachTable(((e,d)=>{l++;let s=0,r=0;const I={};d(((e,l)=>{s++;let a=0;l((()=>a++)),r+=a,t&&(I[e]={rowCells:a})})),a+=s,n+=r,t&&(o[e]={tableRows:s,tableCells:r,rows:I})})),{totalTables:l,totalRows:a,totalCells:n,totalValues:j(e.getValueIds()),jsonLength:Rt(e.getJson()),...t?{detail:{tables:o}}:{}}},getStoreTablesSchema:t,getStoreValuesSchema:l,getStoreApi:a,getPrettyStoreApi:n,getStore:()=>e})}));exports.createTools=ml;
1
+ "use strict";const e=e=>typeof e,t="tinybase",l="",a=",",n=e(l),o=e(!0),d=e(0),s="type",r="default",I="Listener",c="get",$="add",u="Ids",i="Table",p=i+"s",b=i+u,C="Row",h=C+u,m="Sorted"+C+u,g="Cell",f=g+u,w="Value",y=w+"s",T=w+u,v=Promise,V=isFinite,x=(e,t)=>e instanceof t,R=e=>null==e,k=e=>e==n||e==o,S=t=>e(t)==n,P=e=>Array.isArray(e),A=(e,t,l)=>e.slice(t,l),E=async e=>v.all(e),D=t=>{const l=e(t);return k(l)||l==d&&V(t)?l:void 0},O=(e,t)=>e.every(t),N=(e,t)=>e.sort(t),G=(e,t)=>e.forEach(t),L=(e,t=l)=>e.join(t),j=(e,t)=>e.map(t),M=e=>e.length,J=(e,t)=>e.filter(t),z=(e,...t)=>e.push(...t),W=e=>e.pop(),B=(e,...t)=>e.unshift(...t),F=e=>e.shift(),U=Object,_=U.keys,Z=U.freeze,H=e=>x(e,U)&&e.constructor==U,Q=(e,t)=>j(U.entries(e),(([e,l])=>t(l,e))),q=e=>M(_(e)),K=e=>H(e)&&0==q(e),X=(e,t)=>e?.has(t)??!1,Y=e=>[...e?.values()??[]],ee=(e,t)=>e?.forEach(t),te=(e,t)=>e?.delete(t),le=e=>new Map(e),ae=(e,t)=>e?.get(t),ne=(e,t)=>ee(e,((e,l)=>t(l,e))),oe=(e,t)=>j([...e?.entries()??[]],(([e,l])=>t(l,e))),de=(e,t,l)=>R(l)?(te(e,t),e):e?.set(t,l),se=(e,t,l)=>(X(e,t)||de(e,t,l()),ae(e,t)),re=e=>e.toUpperCase(),Ie=e=>e.toLowerCase(),ce="a ",$e="A function for",ue=", and registers a listener so that any changes to that result will cause a re-render",ie="Callback",pe="Del",be="Deps",Ce=be+"?: React.DependencyList",he="doRollback?: DoRollback",me="actions: () => Return, "+he,ge="export",fe="Id",we="Invalid",ye="Json",Te=Ie(I),ve="?: ",Ve=" | undefined",xe="NonNullable",Re="Partial",ke="Props",Se="Provider",Pe=`Registers a ${Te} that will be called`,Ae="Represents",Ee="rowId: "+fe,De="Schema",Oe="Set",Ne=", descending?: boolean, offset?: number, limit?: number",Ge="[]",Le="the Store",je="Transaction",Me=je+"Changes",Je=Ie(je),ze="Execute a "+Je+" to make multiple mutations",We="Explicitly starts a "+Je,Be="Explicitly finishes a "+Je,Fe="the end of the "+Je,Ue="void",_e=" => "+Ue,Ze="WhenSet",He=" when setting it",Qe=ce+"string serialization of",qe=" ",Ke="Gets a callback that can ",Xe="the ",Ye=" the schema for",et=(e=0,t=0)=>`the ${mt[e]}content of`+(t?qe+Le:l),tt=(e=0,t,a=0)=>bt[t]+qe+et(e,1)+(a?" when setting it":l),lt=(e,t=0)=>Ae+` a Row when ${t?"s":"g"}etting ${et()} the '${e}' `+i,at=(e,t,l=0)=>`Gets ${l?"sorted, paginated":"the"} Ids of the ${e}s in `+t,nt=(e,t)=>`Calls a function for each ${e} in `+t,ot=e=>"The props passed to a component that renders "+e,dt=e=>"A function that takes "+e,st=(e,t=0)=>$e+" listening to changes to "+ht[e]+" in "+ht[t],rt=(e,t,a=0)=>Pe+" whenever "+ht[e]+" in "+ht[t]+" change"+(a?l:"s"),It=e=>`the '${e}' `+i,ct=e=>"the specified Row in "+It(e),$t=(e,t=0)=>bt[t]+` ${et()} `+It(e),ut=(e,t=0)=>bt[t]+` ${et()} `+ct(e),it=(e,t,l=0)=>bt[l]+` the '${t}' Cell for `+ct(e),pt=(e,t=0)=>bt[t]+` the '${e}' Value`,bt=["Gets","Checks existence of","Sets","Deletes","Sets part of",Ae,"Gets "+Qe,"Sets "+Qe,Pe+" whenever",Ke+"set",Ke+"add",Ke+"set part of",Ke+"delete","Renders","Gets "+Qe+Ye,"Sets"+Ye,"Deletes"+Ye],Ct=[c,"has","set","del","set","forEach",$,l],ht=[Le,p,Xe+i+qe+u,ce+i,Xe+C+qe+u,ce+C,Xe+g+qe+u,ce+g,"invalid Cell changes",y,Xe+w+qe+u,ce+w,"invalid Value changes",Xe+"sorted "+C+qe+u,Xe+g+qe+u+" anywhere",Xe+"number of Rows"],mt=[l,"tabular ","keyed value "],gt=e=>new Set(P(e)||R(e)?e:[e]),ft=(e,t)=>e?.add(t),wt=/[^A-Za-z]+/,yt=/[^A-Za-z0-9]+/,Tt=/^( *)\/\*\* *(.*?) *\*\/$/gm,vt=e=>e.includes(a),Vt=(e,t,l,a=1)=>{const n=`${t}${1==a?"":a}`;return X(e,n)?Vt(e,t,l,a+1):(de(e,n,l),n)},xt=e=>e.replace(Tt,((e,t,l)=>{const a=77-Rt(t);return`${t}/**\n${l.replace(RegExp(`([^\\n]{1,${a}})(\\s|$)`,"g"),t+" * $1\n")}${t} */`})),Rt=e=>e.length,kt=e=>e.flat(1e3),St=(e,t=0)=>L(j(e.split(yt),((e,l)=>(l>0||t?re:Ie)(A(e,0,1))+A(e,1)))),Pt=e=>re(L((e&&!wt.test(e[0])?e:" "+e).split(yt),"_")),At=e=>`/** ${e}. */`,Et=(...e)=>L(J(e,(e=>e)),", "),Dt=(...e)=>"{"+L(e,"; ")+"}",Ot=(...e)=>Dt(...j(e,(e=>"readonly "+e))),Nt=()=>{const e=[le(),le(),le(),le()],t=le(),a=le(),n=e=>{const t=e.indexOf(" as ");return-1!=t?A(e,t+4):e};return[(...e)=>L(kt(e),"\n"),(t,l,...a)=>G(a,(a=>G([0,1],(n=>(t??n)==n?ft(se(e[n],l,gt),a):0)))),(e,a,n,o=l,d=1)=>Vt(t,e,[a,n,o,d]),(e,t,l)=>Vt(a,e,P(l)?[`(${t}) => {`,l,"}"]:[`(${t}) => ${l}`]),(e,t)=>ae(a,e)===t?e:Vt(a,e,t),(t=0)=>j([...N(oe(e[t],((e,t)=>`import {${L(N(Y(e),((e,t)=>n(e)>n(t)?1:-1)),", ")}} from '${t}';`)),((e,t)=>vt(e)!=vt(t)?vt(e)?-1:1:e>t?1:-1)),l],(e=>e.replace("{React}","React"))),()=>oe(t,(([e,t,a,n],o)=>[At(t),`${n?ge+" ":l}type ${o}${a} = ${e};`,l])),()=>oe(a,((e,t)=>(e=P(e)?e:[e],z(e,W(e)+";"),[`const ${t} = ${F(e)}`,e,l])))]},Gt=e=>{const t=new WeakMap;return l=>(t.has(l)||t.set(l,e(l)),t.get(l))},Lt=(e,t,l)=>[t=>Q(e,((e,a)=>t(a,St(a,1),l(Pt(a),`'${a}'`)))),(t,a)=>Q(e[t],((e,t)=>a(t,e[s],e[r],l(Pt(t),`'${t}'`),St(t,1)))),e=>Q(t,((t,a)=>e(a,t[s],t[r],l(Pt(a),`'${a}'`),St(a,1))))],jt=(e,t,a,n)=>[(n,o)=>{const d=n+": "+o,s=e(p,Dt(...t((e=>`'${e}'?: {[rowId: Id]: `+Dt(...a(e,((e,t,a)=>`'${e}'${R(a)?"?":l}: ${t}`)))+"}"))),tt(1,5)),r=e(p+Ze,Dt(...t((e=>`'${e}'?: {[rowId: Id]: `+Dt(...a(e,((e,t)=>`'${e}'?: ${t}`)))+"}"))),tt(1,5,1)),c=e(i+fe,"keyof "+s,"A "+i+" Id in "+Le),$=`<TId extends ${c}>`,u=e(i,xe+`<${s}[TId]>`,"A "+i+" in "+Le,$),w=e(i+Ze,xe+`<${r}[TId]>`,"A "+i+" in "+Le+He,$),y=e(C,u+"<TId>[Id]","A "+C+" in a "+i,$),T=e(C+Ze,w+"<TId>[Id]","A "+C+" in a "+i+He,$),v=e(g+fe,`Extract<keyof ${y}<TId>, Id>`,"A "+g+" Id in a "+C,$),V=e(g,xe+`<${s}[TId]>[Id][CId]`,"A "+g+" in a "+C,`<TId extends ${c}, CId extends ${v}<TId>>`),x=e("CellIdCellArray",`CId extends ${v}<TId> ? [cellId: CId, cell: ${V}<TId, CId>] : never`,g+" Ids and types in a "+C,`<TId extends ${c}, CId = ${v}<TId>>`,0),k=e(g+ie,`(...[cellId, cell]: ${x}<TId>)`+_e,dt(ce+g+" Id, and "+g),$),S=e(C+ie,"(rowId: Id, forEachCell: (cellCallback: CellCallback<TId>) "+_e+") "+_e,dt(ce+C+" Id, and a "+g+" iterator"),$),P=e(i+g+ie,`(cellId: ${v}<TId>, count: number) `+_e,dt(ce+g+" Id, and count of how many times it appears"),$),A=e("TableIdForEachRowArray",`TId extends ${c} ? [tableId: TId, forEachRow: (rowCallback: ${S}<TId>)${_e}] : never`,i+" Ids and callback types",`<TId = ${c}>`,0),E=e(i+ie,`(...[tableId, forEachRow]: ${A})`+_e,dt(ce+i+" Id, and a "+C+" iterator"),l),D=e("TableIdRowIdCellIdArray",`TId extends ${c} ? [tableId: TId, rowId: Id, cellId: ${v}<TId>] : never`,"Ids for GetCellChange",`<TId = ${c}>`,0),O=e("GetCellChange",`(...[tableId, rowId, cellId]: ${D}) => CellChange`,$e+" returning information about any Cell's changes during a "+Je),N=e(p+I,`(${d}, getCellChange: ${O}${Ve})`+_e,st(1)),G=e(b+I,`(${d})`+_e,st(2)),L=e(i+I,`(${d}, tableId: ${c}, getCellChange: ${O}${Ve})`+_e,st(3)),j=e(i+f+I,`(${d}, tableId: ${c})`+_e,st(14,3)),M=e(C+"Count"+I,`(${d}, tableId: ${c})`+_e,st(15,3)),J=e(h+I,`(${d}, tableId: ${c})`+_e,st(4,3)),z=e(m+I,"("+Et(d,"tableId: "+c,"cellId: Id"+Ve,"descending: boolean","offset: number","limit: number"+Ve,"sortedRowIds: Ids")+")"+_e,st(13,3)),W=e(C+I,"("+Et(""+d,"tableId: "+c,Ee,`getCellChange: ${O}${Ve}`)+")"+_e,st(5,3)),B=e(f+I,"("+Et(""+d,"tableId: "+c,Ee)+")"+_e,st(6,5)),F=e("CellListenerArgsArrayInner",`CId extends ${v}<TId> ? [${d}, tableId: TId, ${Ee}, cellId: CId, newCell: ${V}<TId, CId> ${Ve}, oldCell: ${V}<TId, CId> ${Ve}, getCellChange: ${O} ${Ve}] : never`,"Cell args for CellListener",`<TId extends ${c}, CId = ${v}<TId>>`,0),U=e("CellListenerArgsArrayOuter",`TId extends ${c} ? `+F+"<TId> : never","Table args for CellListener",`<TId = ${c}>`,0);return[s,r,c,u,w,y,T,v,V,k,S,P,E,N,G,L,j,M,J,z,W,B,e(g+I,`(...[${n}, tableId, rowId, cellId, newCell, oldCell, getCellChange]: ${U})`+_e,st(7,5)),e(we+g+I,`(${d}, tableId: Id, ${Ee}, cellId: Id, invalidCells: any[])`+_e,st(8))]},(t,a)=>{const o=t+": "+a,d=e(y,Dt(...n(((e,t,a)=>`'${e}'${R(a)?"?":l}: ${t}`))),tt(2,5)),s=e(y+Ze,Dt(...n(((e,t)=>`'${e}'?: ${t}`))),tt(2,5,1)),r=e(w+fe,"keyof "+d,"A "+w+" Id in "+Le),c=e(w,xe+`<${d}[VId]>`,"A "+w+" Id in "+Le,`<VId extends ${r}>`),$=e("ValueIdValueArray",`VId extends ${r} ? [valueId: VId, value: ${c}<VId>] : never`,w+" Ids and types in "+Le,`<VId = ${r}>`,0),u=e(w+ie,`(...[valueId, value]: ${$})`+_e,dt(ce+w+" Id, and "+w)),i=e("GetValueChange",`(valueId: ${r}) => ValueChange`,$e+" returning information about any Value's changes during a "+Je),p=e(y+I,`(${o}, getValueChange: ${i}${Ve})`+_e,st(9)),b=e(T+I,`(${o})`+_e,st(10)),C=e("ValueListenerArgsArray",`VId extends ${r} ? [${o}, valueId: VId, newValue: ${c}<VId> ${Ve}, oldValue: ${c}<VId> ${Ve}, getValueChange: ${i} ${Ve}] : never`,"Value args for ValueListener",`<VId = ${r}>`,0);return[d,s,r,c,u,p,b,e(w+I,`(...[${t}, valueId, newValue, oldValue, getValueChange]: `+C+")"+_e,st(11)),e(we+w+I,`(${o}, valueId: Id, invalidValues: any[])`+_e,st(12))]},(t,l)=>e(je+I,`(${t}: ${l}, getTransactionChanges: GetTransactionChanges, getTransactionLog: GetTransactionLog)`+_e,$e+" listening to the completion of a "+Je)],Mt=(e,t=l,a=l)=>`store.${e}(${t})`+(a?" as "+a:l),Jt=(e,t=l)=>`fluent(() => ${Mt(e,t)})`,zt=(e,t=l,a=l)=>`store.${e}(${t?t+", ":l}proxy(listener)${a?", "+a:l})`,Wt=(e,a,n)=>{const[d,c,v,V,x,k,P,A]=Nt(),[E,D,O]=Lt(e,a,x),[N,j,M]=jt(v,E,D,O),J=le(),W=(e=0)=>oe(J,(([t,a,n,o,d],s)=>{const r=e?[s+`: ${d}(${t}): ${a} => ${n},`]:[s+d+`(${t}): ${a};`];return e||B(r,At(o)),z(r,l),r})),F=(e,t,a,n,o,d=l)=>Vt(J,e,[t,a,n,o,d]),U=(e,t,a,n,o,d=l,s=l,r=l)=>F(Ct[e]+t+(4==e?Re:l)+a,d,n,(n==H?Jt:Mt)(Ct[e]+(4==e?Re:l)+a,s,e?void 0:n),o,r),_=(e,t,a,n=l,o=l,d=1,s=l)=>F($+e+I,(n?n+", ":l)+Te+": "+t+(d?", mutator?: boolean":l),fe,zt($+e+I,o,d?"mutator":l),a,s),Z=`./${St(n)}.d`,H=St(n,1),Q=St(H),q=[],X=le();let ee=[],te=[];if(c(1,Z,H,`create${H} as create${H}Decl`),K(e))c(null,t,p);else{c(0,t,"CellChange"),c(null,t,u);const[e,a,n,d,I,$,w,y,T,V,k,P,A,O,j,M,J,W,B,F,K,te,ne,oe]=N(Q,H),se=le();E(((e,t)=>{const l=`<'${e}'>`,a=[v(t+i,d+l,Ae+` the '${e}' `+i),v(t+i+Ze,I+l,Ae+` the '${e}' `+i+He),v(t+C,$+l,lt(e)),v(t+C+Ze,w+l,lt(e,1)),v(t+g+fe,y+l,`A Cell Id for the '${e}' `+i),v(t+g+ie,V+l,dt(`a Cell Id and value from a Row in the '${e}' `+i)),v(t+C+ie,k+l,dt(`a Row Id from the '${e}' Table, and a Cell iterator`)),v(t+i+g+ie,P+l,dt(`a Cell Id from anywhere in the '${e}' Table, and a count of how many times it appears`))];de(se,e,a),c(1,Z,...a)})),c(1,Z,e,a,n,y,A,O,j,M,J,W,B,F,K,te,ne,oe),ee=[e,a,n,y,O,j,M,J,W,B,F,K,te,ne,se],G([[e],[o],[H,"tables: "+a,"tables"],[H]],(([e,t,a],n)=>U(n,l,p,e,tt(1,n),t,a))),U(0,l,b,n+Ge,at(i,Le)),U(5,l,i,Ue,nt(i,Le),"tableCallback: "+A,"tableCallback as any"),E(((e,t,a)=>{const[n,d,s,r,I,c,$,p]=ae(se,e);G([[n],[o],[H,"table: "+d,", table"],[H]],(([n,o,d=l],s)=>U(s,t,i,n,$t(e,s),o,a+d))),U(0,t,i+f,u,at(g,"the whole of "+It(e)),l,a),U(5,t,i+g,Ue,nt(i+g,"the whole of "+It(e)),"tableCellCallback: "+p,a+", tableCellCallback as any"),U(0,t,C+"Count","number","Gets the number of Rows in the "+It(e),l,a),U(0,t,h,u,at(C,It(e)),l,a),U(0,t,m,u,at(C,It(e),1),"cellId?: "+I+Ne,a+", cellId, descending, offset, limit"),U(5,t,C,Ue,nt(C,It(e)),"rowCallback: "+$,a+", rowCallback as any"),G([[s],[o],[H,", row: "+r,", row"],[H],[H,", partialRow: "+r,", partialRow"]],(([n,o=l,d=l],s)=>U(s,t,C,n,ut(e,s),Ee+o,a+", rowId"+d))),U(6,t,C,fe+Ve,"Add a new Row to "+It(e),"row: "+r+", reuseIds?: boolean",a+", row, reuseIds"),U(0,t,f,I+Ge,at(g,ct(e)),Ee,a+", rowId"),U(5,t,g,Ue,nt(g,ct(e)),Ee+", cellCallback: "+c,a+", rowId, cellCallback as any"),D(e,((n,d,s,r,I)=>{const c="Map"+St(d,1);de(X,d,c);const $=d+(R(s)?Ve:l);G([[$],[o],[H,`, cell: ${d} | `+c,", cell as any"],[H]],(([o,d=l,s=l],c)=>U(c,t+I,g,o,it(e,n,c),Ee+d,a+", rowId, "+r+s))),U(1,t+I,i+g,o,bt[1]+` the '${n}' Cell anywhere in `+It(e),l,a+", "+r)}))})),U(0,l,p+ye,ye,tt(1,6)),U(2,l,p+ye,H,tt(1,7),"tablesJson: "+ye,"tables"+ye),_(p,O,tt(1,8)+" changes"),_(b,j,rt(2,0,1)),_(i,M,rt(3,0),`tableId: ${n} | null`,"tableId"),_(i+f,J,rt(14,3,1),`tableId: ${n} | null`,"tableId"),_(C+"Count",W,rt(15,3),`tableId: ${n} | null`,"tableId"),_(h,B,rt(4,3,1),`tableId: ${n} | null`,"tableId"),_(m,F,rt(13,3,1),Et("tableId: TId",`cellId: ${y}<TId>`+Ve,"descending: boolean","offset: number","limit: number"+Ve),Et("tableId","cellId","descending","offset","limit"),1,"<TId extends TableId>"),_(C,K,rt(5,3),`tableId: ${n} | null, rowId: IdOrNull`,"tableId, rowId"),_(f,te,rt(6,5,1),`tableId: ${n} | null, rowId: IdOrNull`,"tableId, rowId"),_(g,ne,rt(7,5),`tableId: ${n} | null, rowId: IdOrNull, cellId: ${L(E((e=>ae(se,e)?.[4]??l))," | ")} | null`,"tableId, rowId, cellId"),_(we+g,oe,Pe+" whenever an invalid Cell change was attempted","tableId: IdOrNull, rowId: IdOrNull, cellId: IdOrNull","tableId, rowId, cellId"),c(1,Z,...Y(X)),z(q,".set"+p+De+"({",kt(E(((e,t,a)=>[`[${a}]: {`,...D(e,((e,t,a,n)=>`[${n}]: {[${x(Pt(s),`'${s}'`)}]: ${x(Pt(t),`'${t}'`)}${R(a)?l:`, [${x(Pt(r),`'${r}'`)}]: `+(S(a)?x(Pt(a),`'${a}'`):a)}},`)),"},"]))),"})")}if(K(a))c(null,t,y);else{const[e,a,n,d,I,$,u,i,p]=j(Q,H);c(1,Z,e,a,n,I,$,u,i,p),te=[e,a,n,$,u,i],G([[e],[o],[H,"values: "+a,"values"],[H],[H,"partialValues: "+a,"partialValues"]],(([e,t,a],n)=>U(n,l,y,e,tt(2,n),t,a))),U(0,l,T,n+Ge,at(w,Le)),U(5,l,w,"void",nt(w,Le),"valueCallback: "+I,"valueCallback as any"),O(((e,t,a,n,d)=>{const s="Map"+St(t,1);de(X,t,s),G([[t],[o],[H,`value: ${t} | `+s,", value as any"],[H]],(([t,a,o=l],s)=>U(s,d,w,t,pt(e,s),a,n+o)))})),U(0,l,y+ye,ye,tt(2,6)),U(2,l,y+ye,H,tt(2,7),"valuesJson: "+ye,"values"+ye),_(y,$,tt(2,8)+" changes"),_(T,u,rt(10,0,1)),_(w,i,rt(11,0),`valueId: ${n} | null`,"valueId"),_(we+w,p,Pe+" whenever an invalid Value change was attempted","valueId: IdOrNull","valueId"),c(1,Z,...Y(X)),c(0,t,"ValueChange"),z(q,".set"+y+De+"({",O(((e,t,a,n)=>[`[${n}]: {[${x(Pt(s),`'${s}'`)}]: ${x(Pt(t),`'${t}'`)}${R(a)?l:`, [${x(Pt(r),`'${r}'`)}]: `+(S(a)?x(Pt(a),`'${a}'`):a)}},`])),"})")}U(0,l,"Content",`[${p}, ${y}]`,tt(0,0)),U(2,l,"Content",H,tt(0,2),`[tables, values]: [${p}, ${y}]`,"[tables, values]"),U(2,l,Me,H,`Applies a set of ${Me} to the Store`,"transactionChanges: "+Me,"transactionChanges"),ne(X,((e,t)=>v(t,`(cell: ${e}${Ve}) => `+e,`Takes a ${e} Cell value and returns another`))),c(null,t,"DoRollback",fe,"IdOrNull",ye,"Store",Me),c(0,t,"Get"+Me,"GetTransactionLog"),U(0,l,ye,ye,tt(0,6)),U(2,l,ye,H,tt(0,7),"tablesAndValuesJson: "+ye,"tablesAndValuesJson"),U(7,l,Je,"Return",ze,me,"actions, doRollback","<Return>"),U(7,l,"start"+je,H,We),U(7,l,"finish"+je,H,Be,he,"doRollback");const se=M(Q,H);return _("Start"+je,se,Pe+" just before the start of the "+Je,l,l,0),_("WillFinish"+je,se,Pe+" just before "+Fe,l,l,0),_("DidFinish"+je,se,Pe+" just after "+Fe,l,l,0),U(7,l,"call"+I,H,"Manually provoke a listener to be called","listenerId: Id","listenerId"),U(3,l,I,H,"Remove a listener that was previously added to "+Le,"listenerId: Id","listenerId"),F("getStore",l,"Store","store",bt[0]+" the underlying Store object"),c(1,t,"createStore"),c(1,Z,H,`create${H} as create${H}Decl`,se),x("store",["createStore()",...q]),V("fluent","actions: () => Store",["actions();",`return ${Q};`]),V("proxy","listener: any",`(_: Store, ...params: any[]) => listener(${Q}, ...params)`),x(Q,["{",...W(1),"}"]),[d(...k(0),...P(),ge+" interface "+H+" {",...W(0),"}",l,At(`Creates a ${H} object`),ge+" function create"+H+"(): "+H+";"),d(...k(1),ge+" const create"+H+": typeof create"+H+"Decl = () => {",...A(),`return Object.freeze(${Q});`,"};"),ee,te]},Bt=e=>c+e,Ft=e=>Et(Bt(e),Bt(e)+be),Ut="debugIds?: boolean",_t="debugIds={debugIds}",Zt="then"+Ce,Ht="Parameter",Qt=": (parameter: "+Ht+", store: Store) => ",qt="const contextValue = useContext(Context);",Kt=", based on a parameter",Xt=": ",Yt="<"+Ht+",>",el=Ht+"ized"+ie+"<"+Ht+">",tl="rowId",ll="rowId={rowId}",al=", separator, debugIds",nl="separator?: ReactElement | string",ol="then?: (store: Store",dl=Et(ol+")"+_e,Zt),sl="then, then"+be,rl=tl+Xt+fe,Il="View",cl=(e,...t)=>Et(...t,Te+": "+e,Te+Ce,"mutator?: boolean"),$l=(...e)=>Et(...e,Te,Te+be,"mutator"),ul=(e,a,n,o,d)=>{const[s,r,c,$,v,V,x,k]=Nt(),[S,P,A]=Lt(e,a,v),E=`./${St(n)}.d`,D=`./${St(n)}-ui-react.d`,O="tinybase/ui-react",N=St(n,1),G=St(N),j=N+"Or"+N+fe,M=G+"Or"+N+fe,J=G+`={${G}}`,W=le(),F=(e,t,a,n,o,d=l)=>(r(1,D,e+" as "+e+"Decl"),Vt(W,e,[t,a,n,o,d])),U=(e,t,a,n,o,d=l)=>F("use"+e,t,a,n,o,d),_=(e,t,a,n,o=l,d=l,s=l,I=l,c=l)=>(r(1,O,`use${t} as use${t}Core`),U(e,Et(o,X,I),a,ee+`(${M}, use${t}Core, [`+(d||l)+(c?"], ["+c:l)+"]);",n,s)),Z=(e,t,l,a)=>F(e,t,1,l,a),H=(e=0)=>oe(W,(([t,a,n,o,d],s)=>{const r=e?[ge+` const ${s}: typeof ${s}Decl = ${d}(${t}): ${1==a?"any":a} =>`,n]:[ge+` function ${s}${d}(${t}): ${1==a?"ComponentReturnType":a};`];return e||B(r,At(o)),z(r,l),r}));r(null,t,fe,"Store",ie,Ht+"ized"+ie),r(0,O,"ComponentReturnType"),r(1,O,"useCellIds"),r(null,O,"ExtraProps"),r(0,E,N);const Q=c(j,N+" | "+fe,`Used when you need to refer to a ${N} in a React hook or component`),q=c(Se+ke,Ot(G+ve+N,G+`ById?: {[${G}Id: Id]: ${N}}`),`Used with the ${Se} component, so that a `+N+" can be passed into the context of an application");r(0,"react","ReactElement","ComponentType"),r(1,"react","React"),r(1,D,Q,q);const X=M+ve+Q;v("{createContext, useContext, useMemo}","React"),v("Context",`createContext<[${N}?, {[${G}Id: Id]: ${N}}?]>([])`),U("Create"+N,`create: () => ${N}, create`+Ce,N,"\n// eslint-disable-next-line react-hooks/exhaustive-deps\nuseMemo(create, createDeps)",`Create a ${N} within a React application with convenient memoization`);const Y=U(N,"id?: Id",N+Ve,["{",qt,"return id == null ? contextValue[0] : contextValue[1]?.[id];","}"],`Get a reference to a ${N} from within a ${Se} component context`),ee=$("useHook",M+`: ${Q} | undefined, hook: (...params: any[]) => any, preParams: any[], postParams: any[] = []`,[`const ${G} = ${Y}(${M} as Id);`,`return hook(...preParams, ((${M} == null || typeof ${M} == 'string')`,`? ${G} : ${M})?.getStore(), ...postParams)`]),te=$("getProps","getProps: ((id: any) => ExtraProps) | undefined, id: Id","(getProps == null) ? ({} as ExtraProps) : getProps(id)"),ne=$("wrap",Et("children: any","separator?: any","encloseWithId?: boolean","id?: Id"),["const separated = separator==null || !Array.isArray(children)"," ? children"," : children.map((child, c) => (c > 0 ? [separator, child] : child));","return encloseWithId ? [id, ':{', separated, '}'] : separated;"]),de=$("useCustomOrDefaultCellIds",Et("customCellIds: Ids | undefined","tableId: Id","rowId: Id",`${M}?: ${Q} | undefined`),[`const defaultCellIds = ${ee}(${M}, useCellIds, [tableId, rowId]);`,"return customCellIds ?? defaultCellIds;"]),se=v("NullComponent","() => null");if(!K(e)){const[e,a,n,d,s,w,y,T,v,V,x,k,A,O,j]=o;r(null,E,e,a,n,s,w,y,T,v,V,x,k,A,O),r(0,E,d),r(1,E,N),r(null,t,u,"IdOrNull");const M=$("tableView",`{${G}, rowComponent, getRowComponentProps, customCellIds`+al+"}: any, rowIds: Ids, tableId: Id, defaultRowComponent: React.ComponentType<any>",["const Row = rowComponent ?? defaultRowComponent;",`return ${ne}(rowIds.map((rowId) => (`,"<Row","{..."+te+"(getRowComponentProps, rowId)}","key={rowId}","tableId={tableId}",ll,"customCellIds={customCellIds}",J,_t,"/>","))",al,", tableId,",");"]),z=$("getDefaultTableComponent","tableId: Id",L(S(((e,t,l)=>`tableId == ${l} ? ${t}TableView : `)))+se),W=$("getDefaultCellComponent","tableId: Id, cellId: Id",L(S(((e,t,l)=>`tableId == ${l} ? ${L(P(e,((e,l,a,n,o)=>`cellId == ${n} ? `+t+o+"CellView : ")))+se} : `)))+se);_(p,p,e,tt(1,0)+ue);const B=_(b,b,n+Ge,at(i,Le)+ue);_(Oe+p+ie,Oe+p+ie,el,tt(1,9)+Kt,Et(Bt(p)+Qt+a,Bt(p)+Ce),Ft(p),Yt,Et(ol,`tables: ${a})`+_e,Zt),sl),_(pe+p+ie,pe+p+ie,ie,tt(1,12),l,l,l,dl,sl);const F=c(g+ke,Ot("tableId?: TId","rowId: Id","cellId?: CId",G+ve+N,Ut),ot(ce+g),`<TId extends ${n}, CId extends ${d}<TId>>`),U=c(C+ke,Ot("tableId?: TId","rowId: Id",G+ve+N,"cellComponents?: {readonly [CId in "+d+`<TId>]?: ComponentType<${F}<TId, CId>>;}`,`getCellComponentProps?: (cellId: ${d}<TId>) => ExtraProps`,`customCellIds?: ${d}<TId>[]`,nl,Ut),ot(ce+C),`<TId extends ${n}>`),H=c(i+ke,Ot("tableId?: TId",G+ve+N,`rowComponent?: ComponentType<${U}<TId>>`,"getRowComponentProps?: (rowId: Id) => ExtraProps","customCellIds?: CellId<TId>[]",nl,Ut),ot(ce+i),`<TId extends ${n}>`),Q=c("Sorted"+i+ke,Ot("tableId?: TId","cellId?: "+d+"<TId>","descending?: boolean","offset?: number","limit?: number",G+ve+N,`rowComponent?: ComponentType<${U}<TId>>`,"getRowComponentProps?: (rowId: Id) => ExtraProps","customCellIds?: CellId<TId>[]",nl,Ut),ot(ce+"sorted "+i),`<TId extends ${n}>`),q=c(p+ke,Ot(G+ve+N,"tableComponents?: {readonly [TId in "+n+`]?: ComponentType<${H}<TId>>;}`,`getTableComponentProps?: (tableId: ${n}) => ExtraProps`,nl,Ut),ot(et(1,1)));r(1,D,q,H,Q,U,F),Z(p+Il,"{"+G+", tableComponents, getTableComponentProps"+al+"}: "+q,[ne+`(${B}(${G}).map((tableId) => {`,"const Table = (tableComponents?.[tableId] ?? "+z+"(tableId)) as React.ComponentType<TableProps<typeof tableId>>;","return <Table",`{...${te}(getTableComponentProps, tableId)}`,"tableId={tableId}","key={tableId}",J,_t,"/>;","}), separator)"],tt(1,13)+ue),S(((e,t,a)=>{const[n,o,d,s,I]=ae(j,e);r(null,E,n,o,d,s,I),_(t+i,i,n,$t(e)+ue,l,a),_(t+i+f,i+f,u,at(g,"the whole of "+It(e))+ue,l,a);const c=_(t+h,h,u,at(C,It(e))+ue,l,a),$=_(t+m,m,u,at(C,It(e),1)+ue,"cellId?: "+I+", descending?: boolean, offset?: number, limit?: number",a+", cellId, descending, offset, limit");_(t+C,C,d,ut(e)+ue,rl,Et(a,tl)),_(t+f,f,I+Ge,at(g,ct(e))+ue,rl,Et(a,tl)),_(Oe+t+i+ie,Oe+i+ie,el,$t(e,9)+Kt,Et(Bt(i)+Qt+o,Bt(i)+Ce),Et(a,Ft(i)),Yt,Et(ol,`table: ${o})`+_e,Zt),sl),_(pe+t+i+ie,pe+i+ie,ie,$t(e,12),l,a,l,dl,sl),_(Oe+t+C+ie,Oe+C+ie,el,ut(e,9)+Kt,Et(rl,Bt(C)+Qt+s,Bt(C)+Ce),Et(a,tl,Ft(C)),Yt,Et(ol,`row: ${s})`+_e,Zt),sl),_("Add"+t+C+ie,"Add"+C+ie,el,ut(e,10)+Kt,Et(Bt(C)+Qt+s,Bt(C)+Ce),Et(a,Ft(C)),Yt,"then?: ("+Et(rl+Ve,"store: Store","row: "+s+")"+_e,"then"+Ce)+", reuseRowIds?: boolean",sl+", reuseRowIds"),_(Oe+t+Re+C+ie,Oe+Re+C+ie,el,ut(e,11)+Kt,Et(rl,Bt(Re+C)+Qt+s,Bt(Re+C)+Ce),Et(a,tl,Ft(Re+C)),Yt,Et(ol,`partialRow: ${s})`+_e,Zt),sl),_(pe+t+C+ie,pe+C+ie,ie,ut(e,12),rl,Et(a,tl),l,dl,sl);const p=Z(t+C+Il,"{rowId, "+G+", cellComponents, getCellComponentProps, customCellIds"+al+`}: ${U}<'${e}'>`,[ne+`(${de}(customCellIds, `+a+`, rowId, ${G}).map((cellId: ${I}) => {`,"const Cell = (cellComponents?.[cellId] ?? "+W+`(${a}, cellId)) as React.ComponentType<CellProps<typeof `+a+", typeof cellId>>;","return <Cell",`{...${te}(getCellComponentProps, cellId)} `,"key={cellId}",`tableId={${a}}`,ll,"cellId={cellId}",J,_t,"/>;","})"+al+", rowId)"],ut(e,13)+ue);Z(t+"Sorted"+i+Il,"{cellId, descending, offset, limit, ...props}: "+Q+`<'${e}'>`,M+"(props, "+$+`(cellId, descending, offset, limit, props.${G}), ${a}, ${p});`,$t(e,13)+", sorted"+ue),Z(t+i+Il,`props: ${H}<'${e}'>`,M+"(props, "+c+`(props.${G}), ${a}, ${p});`,$t(e,13)+ue),P(e,((n,o,d,s,I)=>{const c="Map"+St(o,1);r(0,E,c),r(1,E,c);const $=_(t+I+g,g,o+(R(d)?Ve:l),it(e,n)+ue,rl,Et(a,tl,s));_(Oe+t+I+g+ie,Oe+g+ie,el,it(e,n,9)+Kt,Et(rl,Bt(g)+Qt+o+" | "+c,Bt(g)+Ce),Et(a,tl,s,Ft(g)),Yt,Et(ol,`cell: ${o} | ${c})`+_e,Zt),sl),_(pe+t+I+g+ie,pe+g+ie,ie,it(e,n,12),Et(rl,"forceDel?: boolean"),Et(a,tl,s,"forceDel"),l,dl,sl),Z(t+I+g+Il,`{rowId, ${G}, debugIds}: `+F+`<'${e}', '${n}'>`,[ne+`('' + ${$}(rowId, `+G+`) ?? '', undefined, debugIds, ${s})`],it(e,n,13)+ue)}))}));const K=L(S((e=>ae(j,e)?.[4]??l))," | ");_(p+I,p+I,Ue,tt(1,8)+" changes",cl(s),$l()),_(b+I,b+I,Ue,rt(2,0,1),cl(w),$l()),_(i+I,i+I,Ue,rt(3,0),cl(y,`tableId: ${n} | null`),$l("tableId")),_(i+f+I,i+f+I,Ue,rt(14,3,1),cl(T,`tableId: ${n} | null`),$l("tableId")),_(h+I,h+I,Ue,rt(4,3,1),cl(V,`tableId: ${n} | null`),$l("tableId")),_(m+I,m+I,Ue,rt(13,3,1),cl(x,`tableId: ${n} | null`,"cellId: "+K+Ve,"descending: boolean","offset: number","limit: number"+Ve),$l("tableId","cellId","descending","offset","limit")),_(C+I,C+I,Ue,rt(5,3),cl(k,`tableId: ${n} | null`,tl+": IdOrNull"),$l("tableId",tl)),_(f+I,f+I,Ue,rt(6,5,1),cl(A,`tableId: ${n} | null`,tl+": IdOrNull"),$l("tableId",tl)),_(g+I,g+I,Ue,rt(7,5),cl(O,`tableId: ${n} | null`,tl+": IdOrNull",`cellId: ${K} | null`),$l("tableId",tl,"cellId"))}if(!K(a)){const[e,t,a,n,o,s]=d;r(null,E,...d),r(1,E,N);const u=$("getDefaultValueComponent","valueId: Id",L(A(((e,t,l,a,n)=>`valueId == ${a} ? `+n+"ValueView : ")))+se);_(y,y,e,tt(2,0)+ue);const i=_(T,T,a+Ge,at(w,Le)+ue);_(Oe+y+ie,Oe+y+ie,el,tt(2,9)+Kt,Et(Bt(y)+Qt+t,Bt(y)+Ce),Ft(y),Yt,Et(ol,`values: ${t})`+_e,Zt),sl),_(Oe+Re+y+ie,Oe+Re+y+ie,el,tt(2,11)+Kt,Et(Bt(Re+y)+Qt+t,Bt(Re+y)+Ce),Ft(Re+y),Yt,Et(ol,`partialValues: ${t})`+_e,Zt),sl),_(pe+y+ie,pe+y+ie,ie,tt(2,12),l,l,l,dl,sl);const p=c(w+ke,Ot("valueId?: VId",G+ve+N,Ut),ot("a Value"),`<VId extends ${a}>`),b=c(y+ke,Ot(G+ve+N,"valueComponents?: {readonly [VId in "+a+`]?: ComponentType<${p}<VId>>;}`,`getValueComponentProps?: (valueId: ${a}) => ExtraProps`,nl,Ut),ot(et(2,1)));r(1,D,b,p),Z(y+Il,"{"+G+", valueComponents, getValueComponentProps"+al+"}: "+b,[ne+`(${i}(${G}).map((valueId) => {`,"const Value = valueComponents?.[valueId] ?? "+u+"(valueId);","return <Value",`{...${te}(getValueComponentProps, valueId)}`,"key={valueId}",J,_t,"/>;","}), separator)"],tt(2,13)+ue),A(((e,t,a,n,o)=>{const d="Map"+St(t,1);r(0,E,d),r(1,E,d);const s=_(o+w,w,t,pt(e)+ue,l,n);_(Oe+o+w+ie,Oe+w+ie,el,pt(e,9)+Kt,Et(Bt(w)+Qt+t+" | "+d,Bt(w)+Ce),Et(n,Ft(w)),Yt,Et(ol,`value: ${t} | ${d})`+_e,Zt),sl),_(pe+o+w+ie,pe+w+ie,ie,pt(e,12),l,n,l,dl,sl),Z(o+w+Il,`{${G}, debugIds}: ${p}<'${e}'>`,[ne+`('' + ${s}(`+G+`) ?? '', undefined, debugIds, ${n})`],pt(e,13)+ue)})),_(y+I,y+I,Ue,tt(2,8)+" changes",cl(n),$l()),_(T+I,T+I,Ue,rt(10,0,1),cl(o),$l()),_(w+I,w+I,Ue,rt(11,0),cl(s,`valueId: ${a} | null`),$l("valueId"))}return Z(Se,`{${G}, ${G}ById, children}: `+q+" & {children: React.ReactNode}",["{",qt,"return (","<Context."+Se,"value={useMemo(",`() => [${G} ?? contextValue[0], {...contextValue[1], ...${G}ById}],`,`[${G}, ${G}ById, contextValue],`,")}>","{children}",`</Context.${Se}>`,");","}"],"Wraps part of an application in a context that provides default objects to be used by hooks and components within"),[s(...V(0),...x(),...H(0)),s(...V(1),...k(),...H(1))]},il=(e,t,a)=>{if(K(e)&&K(t))return[l,l,l,l];const[n,o,d,s]=Wt(e,t,a);return[n,o,...ul(e,t,a,d,s)]},pl=JSON.parse,bl="prettier/",Cl=bl+"plugins/",hl={parser:"typescript",singleQuote:!0,trailingComma:"all",bracketSpacing:!1,jsdocSingleLineComment:!1},ml=Gt((e=>{const t=()=>{const t=pl(e.getTablesSchemaJson());return!K(t)||O(e.getTableIds(),(l=>{const a=e.getRowIds(l),n=le();if(O(a,(t=>O(e.getCellIds(l,t),(a=>{const o=e.getCell(l,t,a),d=se(n,a,(()=>[D(o),le(),[0],0])),[s,r,[I]]=d,c=se(r,o,(()=>0))+1;return c>I&&(d[2]=[c,o]),de(r,o,c),d[3]++,s==D(o)})))))return t[l]={},ee(n,(([e,,[,n],o],d)=>{t[l][d]={[s]:e,...o==M(a)?{[r]:n}:{}}})),1}))?t:{}},l=()=>{const t=pl(e.getValuesSchemaJson());return K(t)&&e.forEachValue(((e,l)=>{t[e]={[s]:D(l)}})),t},a=e=>il(t(),l(),e),n=async e=>{const t=["d.ts","ts","d.ts","tsx"],l=[];let n;try{n=(await import(bl+"standalone")).format,z(l,await import(Cl+"estree"),await import(Cl+"typescript"))}catch(e){n=async e=>e}return await E(j(a(e),(async(e,a)=>xt(await n(e,{...hl,plugins:l,filepath:"_."+t[a]})))))};return Z({getStoreStats:t=>{let l=0,a=0,n=0;const o={};return e.forEachTable(((e,d)=>{l++;let s=0,r=0;const I={};d(((e,l)=>{s++;let a=0;l((()=>a++)),r+=a,t&&(I[e]={rowCells:a})})),a+=s,n+=r,t&&(o[e]={tableRows:s,tableCells:r,rows:I})})),{totalTables:l,totalRows:a,totalCells:n,totalValues:M(e.getValueIds()),jsonLength:Rt(e.getJson()),...t?{detail:{tables:o}}:{}}},getStoreTablesSchema:t,getStoreValuesSchema:l,getStoreApi:a,getPrettyStoreApi:n,getStore:()=>e})}));exports.createTools=ml;
Binary file