tinybase 8.6.0-beta.0 → 9.0.0-beta.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 (151) hide show
  1. package/@types/_internal/queries/with-schemas/index.d.ts +1 -2
  2. package/@types/_internal/ui/with-schemas/index.d.ts +8 -16
  3. package/@types/persisters/index.d.ts +32 -12
  4. package/@types/persisters/persister-durable-object-sql-storage/index.d.ts +9 -8
  5. package/@types/persisters/persister-durable-object-sql-storage/with-schemas/index.d.ts +10 -10
  6. package/@types/persisters/with-schemas/index.d.ts +56 -20
  7. package/@types/queries/index.d.ts +1 -7
  8. package/@types/queries/with-schemas/index.d.ts +5 -15
  9. package/@types/store/index.d.ts +1 -2
  10. package/@types/store/with-schemas/index.d.ts +19 -29
  11. package/@types/synchronizers/synchronizer-ws-client/index.d.ts +9 -3
  12. package/@types/synchronizers/synchronizer-ws-client/with-schemas/index.d.ts +10 -3
  13. package/@types/synchronizers/synchronizer-ws-server/index.d.ts +15 -2
  14. package/@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.ts +17 -2
  15. package/@types/synchronizers/synchronizer-ws-server-durable-object/index.d.ts +51 -0
  16. package/@types/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.d.ts +51 -0
  17. package/@types/ui-react/with-schemas/index.d.ts +3 -6
  18. package/@types/ui-react-dom/with-schemas/index.d.ts +6 -12
  19. package/@types/ui-react-dom-charts/with-schemas/index.d.ts +3 -4
  20. package/@types/ui-solid/with-schemas/index.d.ts +4 -8
  21. package/@types/ui-solid-dom/with-schemas/index.d.ts +6 -12
  22. package/@types/ui-svelte-dom/with-schemas/index.d.ts +6 -12
  23. package/index.js +21 -19
  24. package/indexes/index.js +6 -8
  25. package/indexes/with-schemas/index.js +6 -8
  26. package/metrics/index.js +6 -8
  27. package/metrics/with-schemas/index.js +6 -8
  28. package/min/index.js +1 -1
  29. package/min/index.js.gz +0 -0
  30. package/min/omni/index.js +1 -1
  31. package/min/omni/index.js.gz +0 -0
  32. package/min/omni/with-schemas/index.js +1 -1
  33. package/min/omni/with-schemas/index.js.gz +0 -0
  34. package/min/persisters/index.js +1 -1
  35. package/min/persisters/index.js.gz +0 -0
  36. package/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  37. package/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  38. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  39. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  40. package/min/persisters/persister-durable-object-sql-storage/index.js +1 -1
  41. package/min/persisters/persister-durable-object-sql-storage/index.js.gz +0 -0
  42. package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js +1 -1
  43. package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js.gz +0 -0
  44. package/min/persisters/persister-electric-sql/index.js +1 -1
  45. package/min/persisters/persister-electric-sql/index.js.gz +0 -0
  46. package/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  47. package/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  48. package/min/persisters/persister-expo-sqlite/index.js +1 -1
  49. package/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  50. package/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  51. package/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  52. package/min/persisters/persister-libsql/index.js +1 -1
  53. package/min/persisters/persister-libsql/index.js.gz +0 -0
  54. package/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  55. package/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  56. package/min/persisters/persister-pglite/index.js +1 -1
  57. package/min/persisters/persister-pglite/index.js.gz +0 -0
  58. package/min/persisters/persister-pglite/with-schemas/index.js +1 -1
  59. package/min/persisters/persister-pglite/with-schemas/index.js.gz +0 -0
  60. package/min/persisters/persister-postgres/index.js +1 -1
  61. package/min/persisters/persister-postgres/index.js.gz +0 -0
  62. package/min/persisters/persister-postgres/with-schemas/index.js +1 -1
  63. package/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
  64. package/min/persisters/persister-powersync/index.js +1 -1
  65. package/min/persisters/persister-powersync/index.js.gz +0 -0
  66. package/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  67. package/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  68. package/min/persisters/persister-react-native-sqlite/index.js +1 -1
  69. package/min/persisters/persister-react-native-sqlite/index.js.gz +0 -0
  70. package/min/persisters/persister-react-native-sqlite/with-schemas/index.js +1 -1
  71. package/min/persisters/persister-react-native-sqlite/with-schemas/index.js.gz +0 -0
  72. package/min/persisters/persister-sqlite-bun/index.js +1 -1
  73. package/min/persisters/persister-sqlite-bun/index.js.gz +0 -0
  74. package/min/persisters/persister-sqlite-bun/with-schemas/index.js +1 -1
  75. package/min/persisters/persister-sqlite-bun/with-schemas/index.js.gz +0 -0
  76. package/min/persisters/persister-sqlite-wasm/index.js +1 -1
  77. package/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  78. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  79. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  80. package/min/persisters/persister-sqlite3/index.js +1 -1
  81. package/min/persisters/persister-sqlite3/index.js.gz +0 -0
  82. package/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  83. package/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  84. package/min/persisters/with-schemas/index.js +1 -1
  85. package/min/persisters/with-schemas/index.js.gz +0 -0
  86. package/min/queries/index.js +1 -1
  87. package/min/queries/index.js.gz +0 -0
  88. package/min/queries/with-schemas/index.js +1 -1
  89. package/min/queries/with-schemas/index.js.gz +0 -0
  90. package/min/synchronizers/synchronizer-ws-client/index.js +1 -1
  91. package/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
  92. package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
  93. package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
  94. package/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  95. package/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  96. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  97. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  98. package/min/synchronizers/synchronizer-ws-server-durable-object/index.js +1 -1
  99. package/min/synchronizers/synchronizer-ws-server-durable-object/index.js.gz +0 -0
  100. package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +1 -1
  101. package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js.gz +0 -0
  102. package/min/with-schemas/index.js +1 -1
  103. package/min/with-schemas/index.js.gz +0 -0
  104. package/omni/index.js +311 -141
  105. package/omni/with-schemas/index.js +311 -141
  106. package/package.json +7 -7
  107. package/persisters/index.js +129 -37
  108. package/persisters/persister-cr-sqlite-wasm/index.js +129 -37
  109. package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +129 -37
  110. package/persisters/persister-durable-object-sql-storage/index.js +271 -110
  111. package/persisters/persister-durable-object-sql-storage/with-schemas/index.js +271 -110
  112. package/persisters/persister-electric-sql/index.js +129 -37
  113. package/persisters/persister-electric-sql/with-schemas/index.js +129 -37
  114. package/persisters/persister-expo-sqlite/index.js +129 -37
  115. package/persisters/persister-expo-sqlite/with-schemas/index.js +129 -37
  116. package/persisters/persister-libsql/index.js +129 -37
  117. package/persisters/persister-libsql/with-schemas/index.js +129 -37
  118. package/persisters/persister-pglite/index.js +130 -37
  119. package/persisters/persister-pglite/with-schemas/index.js +130 -37
  120. package/persisters/persister-postgres/index.js +130 -37
  121. package/persisters/persister-postgres/with-schemas/index.js +130 -37
  122. package/persisters/persister-powersync/index.js +182 -117
  123. package/persisters/persister-powersync/with-schemas/index.js +182 -117
  124. package/persisters/persister-react-native-sqlite/index.js +129 -37
  125. package/persisters/persister-react-native-sqlite/with-schemas/index.js +129 -37
  126. package/persisters/persister-sqlite-bun/index.js +129 -37
  127. package/persisters/persister-sqlite-bun/with-schemas/index.js +129 -37
  128. package/persisters/persister-sqlite-wasm/index.js +129 -37
  129. package/persisters/persister-sqlite-wasm/with-schemas/index.js +129 -37
  130. package/persisters/persister-sqlite3/index.js +129 -37
  131. package/persisters/persister-sqlite3/with-schemas/index.js +129 -37
  132. package/persisters/with-schemas/index.js +129 -37
  133. package/queries/index.js +21 -19
  134. package/queries/with-schemas/index.js +21 -19
  135. package/readme.md +14 -14
  136. package/relationships/index.js +6 -8
  137. package/relationships/with-schemas/index.js +6 -8
  138. package/releases.md +57 -57
  139. package/synchronizers/synchronizer-ws-client/index.js +116 -42
  140. package/synchronizers/synchronizer-ws-client/with-schemas/index.js +116 -42
  141. package/synchronizers/synchronizer-ws-server/index.js +109 -28
  142. package/synchronizers/synchronizer-ws-server/with-schemas/index.js +109 -28
  143. package/synchronizers/synchronizer-ws-server-durable-object/index.js +122 -38
  144. package/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +122 -38
  145. package/ui-svelte/index.js +1 -1
  146. package/ui-svelte/with-schemas/index.js +1 -1
  147. package/ui-svelte-dom/index.js +2 -2
  148. package/ui-svelte-dom/with-schemas/index.js +2 -2
  149. package/ui-svelte-inspector/index.js +2 -2
  150. package/ui-svelte-inspector/with-schemas/index.js +2 -2
  151. package/with-schemas/index.js +21 -19
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",r=(a,t,e)=>a.replace(t,e),o=Promise,c=a=>(t,e,n)=>a(t)?n?.():e(t),l=clearInterval,w=a=>null==a,y=a=>void 0===a,u=a=>null===a,d=c(w),p=c(y),v=t=>a(t)==s,E=a=>Array.isArray(a),A=(a,t,e)=>a.slice(t,e),N=a=>a.length,m=()=>{},$=async a=>o.all(a),g=a=>{throw Error(a)},f=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},O=(a,t)=>a.forEach(t),D=(a,t="")=>a.join(t),I=(a,t)=>a.map(t),S=a=>0==N(a),T=(a,t)=>a.filter(t),_=(a,...t)=>a.push(...t),h=a=>a.shift(),b=(a,t)=>a?.has(t)??!1,C=a=>y(a)||0==(a=>a?.size??0)(a),L=a=>[...a?.values()??[]],R=(a,t)=>a?.forEach(t),P=(a,t)=>a?.delete(t),M="_",F="_id",U="SELECT",j="WHERE",B="TABLE",J="ALTER "+B,Y="FROM",k="DELETE "+Y,x=U+"*"+Y,z="pragma_",G="data_version",H="schema_version",q="pragma_table_",K="CREATE "+B,Q=a=>D(I(((a,t="",e)=>a.split(t,e))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),V=(a,t=[1])=>D(I(a,()=>"$"+t[0]++),n),W=(a,t=i)=>j+`(${r(t,"$tableName",Q(a))})`,X=Object,Z=a=>X.getPrototypeOf(a),aa=X.entries,ta=a=>!w(a)&&d(Z(a),a=>a==X.prototype||w(Z(a)),()=>!0),ea=X.keys,na=X.freeze,sa=(a=[])=>X.fromEntries(a),ia=(...a)=>X.assign({},...a),ra=(a,t)=>(delete a[t],a),oa=(a,t)=>I(aa(a),([a,e])=>t(e,a)),ca=(a,t)=>sa(oa(a,(a,e)=>[e,t(a,e)])),la=a=>X.values(a),wa=a=>N(ea(a)),ya=a=>ta(a)&&0==wa(a),ua=Map,da=a=>new ua(a),pa=(a,t)=>a?.get(t),va=(a,t)=>I([...a?.entries()??[]],([a,e])=>t(e,a)),Ea=(a,t,e)=>y(e)?(P(a,t),a):a?.set(t,e),Aa=(a,t,e,n)=>(b(a,t)?n?.(pa(a,t)):Ea(a,t,e()),pa(a,t)),Na=(a,t,e,n,s=0)=>p((e?Aa:pa)(a,t[s],s>N(t)-2?e:da),i=>{if(s>N(t)-2)return n?.(i)&&Ea(a,t[s]),i;const r=Na(i,t,e,n,s+1);return C(i)&&Ea(a,t[s]),r}),ma=a=>new Set(E(a)||y(a)?a:[a]),$a=(a,t)=>a?.add(t),ga="ColumnName",fa="store",Oa="json",Da=fa+"TableName",Ia=fa+"Id"+ga,Sa=fa+ga,Ta="autoLoadIntervalSeconds",_a="rowId"+ga,ha="tableId",ba="tableName",Ca="deleteEmptyColumns",La="deleteEmptyTable",Ra="condition",Pa={mode:Oa,[Ta]:1},Ma={load:0,save:0,[ba]:t+"_values"},Fa=(a,t,e,n,s)=>{const i=da();return ca(a,(a,r)=>{const o=A(la(ia(t,v(a)?{[e]:a}:a)),0,wa(t));u(o[0])||n(r,o[0])||(s(r,o[0]),Ea(i,r,o))}),i},Ua=JSON.stringify,ja=JSON.parse,Ba=a=>""===a?void 0:E(a)?I(a,Ba):ta(a)?ca(a,Ba):a,Ja=/^\d+$/,Ya=da(),ka=da(),xa=(a,t,n,s,i,r,o,c={},l=0,w=[])=>{let d,v,A,m=0,$=0,D=0;Aa(Ya,w,()=>0),Aa(ka,w,()=>[]);const I=da(),[S,T,b,L,M]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!e),([[a],[t]])=>!ya(a)||!ya(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!ya(a)||!ya(t),t.setContent]:g("Store type not supported by this Persister"))(o,a,l),[F,U,j]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?h(a):null)??e+t++,t=>{Ja.test(t)&&N(a)<1e3&&_(a,t)}]})(),s=da();return[(n,i,r,o=[],c=()=>[])=>{a??=W;const l=t(1);return Ea(s,l,[n,i,r,o,c]),$a(Na(i,r??[e],ma),l),l},(t,n,...i)=>O(((a,t=[e])=>{const n=[],s=(a,e)=>e==N(t)?_(n,a):u(t[e])?R(a,a=>s(a,e+1)):O([t[e],null],t=>s(pa(a,t),e+1));return s(a,0),n})(t,n),t=>R(t,t=>pa(s,t)[0](a,...n??[],...i))),a=>p(pa(s,a),([,t,i])=>(Na(t,i??[e],void 0,t=>(P(t,a),C(t)?1:0)),Ea(s,a),n(a),i)),t=>p(pa(s,t),([t,,e=[],n,s])=>{const i=(...r)=>{const o=N(r);o==N(e)?t(a,...r,...s(r)):u(e[o])?O(n[o]?.(...r)??[],a=>i(...r,a)):i(...r,e[o])};i()})]})(),B=a=>{a!=m&&(m=a,U(I,void 0,m))},J=t=>{(S&&E(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},Y=async()=>{K()&&a.__?.[0]?.()&&await G()},k=async a=>(2!=m&&(B(1),$++,await V(async()=>{await f(async()=>{const e=await t();E(e)?J(e):a?M(a):g("Content is not an array: "+e)},()=>{a&&M(a)}),B(0),await Y()})),W),x=async a=>(z(),await k(a),await f(async()=>v=await s(async(a,t)=>{t||a?2!=m&&(B(1),$++,J(t??a),B(0),await Y()):await k()}),r),W),z=async()=>(v&&(await f(()=>i(v),r),v=void 0),W),G=async a=>(1!=m&&(B(2),D++,await V(async()=>{await f(()=>n(T,a),r),B(0)})),W),H=async()=>(q(),await G(),A=a.addDidFinishTransactionListener(()=>{const a=b();L(a)&&G(a)}),W),q=async()=>(A&&(a.delListener(A),A=void 0),W),K=()=>!y(A),Q=async(a=!1)=>{const[t,e]=a?[q,z]:[z,q];return await t(),await e(),W},V=async(...a)=>(_(pa(ka,w),...a),await(async()=>{if(!pa(Ya,w)){for(Ea(Ya,w,1);!y(d=h(pa(ka,w)));)await f(d,r);Ea(Ya,w,0)}})(),W),W={load:k,startAutoLoad:x,stopAutoLoad:z,isAutoLoading:()=>!y(v),save:G,startAutoSave:H,stopAutoSave:q,isAutoSaving:K,startAutoPersisting:async(a,t=!1)=>{const[e,n]=t?[H,x]:[x,H];return await e(a),await n(a),W},stopAutoPersisting:Q,getStatus:()=>m,addStatusListener:a=>F(a,I),delListener:t=>(j(t),a),schedule:V,getStore:()=>a,destroy:()=>(pa(ka,w).splice(0,void 0),Q()),getStats:()=>({loads:$,saves:D}),...c};return na(W)},za=(a,t,e,s,r,o=Ga,c,l)=>{const w=da();return[async()=>{w.clear(),I(await e(a,t),({tn:a,cn:t})=>$a(Aa(w,a,ma),t))},async(t,e,n)=>((a,t)=>b(pa(w,a),t))(t,e)?sa(T(I(await a(x+Q(t)+W(t,n)),a=>[a[e],l?ca(ra(a,e),l):ra(a,e)]),a=>!y(a[0])&&!ya(a[1]))):{},async(t,e,s,l,u,d=!1,p=i)=>{const v=ma();ca(s??{},a=>I(ea(a??{}),a=>$a(v,a)));const E=L(v);if(!d&&u&&p==i&&S(E)&&b(w,t))return await a("DROP "+B+Q(t)),void Ea(w,t);const A=pa(w,t),N=ma(L(A));if(S(E)||(b(w,t)?await $(I([e,...E],async(n,s)=>{P(N,n)||(await a(J+Q(t)+"ADD"+Q(n)+r),0==s&&await a("CREATE UNIQUE INDEX pk ON "+Q(t)+`(${Q(e)})`),$a(A,n))})):(await a(K+Q(t)+`(${Q(e)}${r} PRIMARY KEY${D(I(E,a=>n+Q(a)+r))});`),Ea(w,t,ma([e,...E])))),await $([...!d&&l?I(L(N),async n=>{n!=e&&(await a(J+Q(t)+"DROP"+Q(n)),P(A,n))}):[]]),d)y(s)?await a(k+Q(t)+W(t,p)):await $(oa(s,async(n,s)=>{y(n)?await a(k+Q(t)+W(t,p)+`AND(${Q(e)}=$1)`,[s]):S(E)||await o(a,t,e,ea(n),{[s]:c?I(la(n),c):la(n)},A)}));else if(S(E))b(w,t)&&await a(k+Q(t)+W(t,p));else{const n=T(L(pa(w,t)),a=>a!=e),i={},r=[];ca(s??{},(a,t)=>{i[t]=I(n,t=>c?c(a?.[t]):a?.[t]),_(r,t)}),await o(a,t,e,n,i),await a(k+Q(t)+W(t,p)+`AND${Q(e)}NOT IN(${V(r)})`,r)}},async t=>{let e;return await a("BEGIN"),await f(async()=>e=await t(),s),await a("END"),e}]},Ga=async(a,t,e,s,i)=>{const r=[1];await a("INSERT INTO"+Q(t)+"("+((...a)=>D(I(a,Q),n))(e,...s)+")VALUES"+D(oa(i,a=>"($"+r[0]+++","+V(a,r)+")"),n)+"ON CONFLICT("+Q(e)+")DO UPDATE SET"+D(I(s,a=>Q(a)+"=excluded."+Q(a)),n),oa(i,(a,t)=>[t,...I(a,a=>a??null)]).flat())},Ha=(a,t,e,n,s,i,r,[o,c,l],w,u,d,p,v,E)=>{const[A,N,m,$]=za(t,w,u,s,v,E),g=xa(a,()=>$(async()=>{return await A(),a=(await N(o,c))[M]?.[l]??"null",Ba(ja(a));var a}),a=>$(async()=>{var t;await A(),await m(o,c,{[M]:{[l]:(t=a()??null,Ua(t,(a,t)=>y(t)?"":t))}},!0,!0)}),e,n,s,r,{[p]:()=>d,destroy:async()=>(await g.stopAutoPersisting(),i(),g)},0,d);return g},qa=(a,t,e,n,s,i,r,[o,c,[l,w,u]],d,p,v,E,A,N,m,g)=>{const[f,O,D,I]=za(t,d,p,s,A,N,m,g),S=(a,t)=>$(va(c,async([e,n,s,i,r],o)=>{t&&!(o in a)||await D(e,n,a[o],s,i,t,r)})),_=async(a,t)=>w?await D(u,F,{[M]:a},!0,!0,t):null,h=xa(a,()=>I(async()=>{await f();const a=await(async()=>sa(T(await $(va(o,async([a,t,e],n)=>[a,await O(n,t,e)])),a=>!ya(a[1]))))(),t=await(async()=>l?(await O(u,F))[M]:{})();return ya(a)&&y(t)?void 0:[a,t]}),(a,t)=>I(async()=>{if(await f(),y(t)){const[t,e]=a();await S(t),await _(e)}else await S(t[0],!0),await _(t[1],!0)}),e,n,s,r,{[E]:()=>v,destroy:async()=>(await h.stopAutoPersisting(),i(),h)},0,v);return h},Ka=(a,n,s,r,o,c,y,u,d,p,E="getDb",N)=>{let m,$,g;const O=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(s,c),[D,I,S,T]=(a=>{const e=(a=>ia(Pa,v(a)?{[Da]:a}:a??{}))(a),n=e[Ta];if(e.mode==Oa){const a=e[Da]??t;return[1,n,[a,e[Ia]??F,e[Sa]??fa],ma(a)]}const{tables:{load:s={},save:r={}}={},values:o={}}=e,c=A(la(ia(Ma,o)),0,wa(Ma)),l=c[2],w=ma(l),y=ma(l),u=Fa(s,{[ha]:null,[_a]:F,[Ra]:i},ha,a=>b(y,a),a=>$a(w,a)),d=Fa(r,{[ba]:null,[_a]:F,[Ca]:0,[La]:0,[Ra]:null},ba,(a,t)=>b(y,t),(a,t)=>$a(w,t));var p;return p=(a,t)=>t[4]??=pa(u,t[0])?.[2]??i,R(d,(a,t)=>p(0,a)),[0,n,[u,d,c],w]})(n);return(D?Ha:qa)(a,O,a=>{let t;const e=()=>t=setInterval(()=>f(async()=>{const[{d:t,s:e,c:n}]=await O(U+` ${G} d,${H} s,TOTAL_CHANGES() c FROM ${z}${G} JOIN ${z}${H}`);t==m&&e==$&&n==g||(w(m)||a(),m=t,$=e,g=n)}),1e3*I),n=()=>{m=$=g=null,l(t)},s=r(t=>{T.has(t)&&(n(),a(),e())});return e(),()=>{n(),o(s)}},a=>a(),y,u,d,S,L(T),async(a,t)=>await a(U+` t.name tn,c.name cn FROM ${q}list()t,${q}info(t.name)c ${j} t.schema='main'AND t.type IN('table','view')AND t.name IN(${V(t)})ORDER BY t.name,c.name`,t),p,E,e,N,a=>(a=>!0===a)(a)?1:(a=>!1===a)(a)?0:a,void 0)},Qa=(a,t,e,n,s)=>Ka(a,e,async(a,e=[])=>t.query(a).all(...e),()=>m,a=>a(),n,s,m,3,t);export{Qa as createSqliteBunPersister};
1
+ const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",r=(a,t,e)=>a.replace(t,e),o=Promise,c=a=>(t,e,n)=>a(t)?n?.():e(t),l=clearInterval,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=c(w),p=c(u),E=t=>a(t)==s,A=a=>Array.isArray(a),N=a=>a.length,m=()=>{},$=async a=>o.all(a),g=a=>{throw Error(a)},f=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},O=(a,t)=>a.forEach(t),D=(a,t="")=>a.join(t),I=(a,t)=>a.map(t),S=a=>0==N(a),T=(a,t)=>a.filter(t),_=(a,...t)=>a.push(...t),h=a=>a.shift(),b=(a,t)=>a?.has(t)??!1,C=a=>u(a)||0==(a=>a?.size??0)(a),L=a=>[...a?.values()??[]],R=(a,t)=>a?.forEach(t),P=(a,t)=>a?.delete(t),M="_",F="_id",U="SELECT",j="WHERE",B="TABLE",J="ALTER "+B,Y="FROM",k="DELETE "+Y,x=U+"*"+Y,z="pragma_",G="data_version",H="schema_version",q="pragma_table_",K="CREATE "+B,Q=a=>D(I(((a,t="",e)=>a.split(t,e))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),V=(a,t=[1])=>D(I(a,()=>"$"+t[0]++),n),W=(a,t=i)=>j+`(${r(t,"$tableName",Q(a))})`,X=Object,Z=a=>X.getPrototypeOf(a),aa=X.entries,ta=a=>!w(a)&&v(Z(a),a=>a==X.prototype||w(Z(a)),()=>!0),ea=X.keys,na=X.freeze,sa=(a=[])=>X.fromEntries(a),ia=(...a)=>X.assign({},...a),ra=(a,t)=>(delete a[t],a),oa=(a,t)=>I(aa(a),([a,e])=>t(e,a)),ca=(a,t)=>sa(oa(a,(a,e)=>[e,t(a,e)])),la=a=>N(ea(a)),wa=a=>ta(a)&&0==la(a),ua=Map,ya=a=>new ua(a),da=(a,t)=>a?.get(t),va=(a,t)=>I([...a?.entries()??[]],([a,e])=>t(e,a)),pa=(a,t,e)=>u(e)?(P(a,t),a):a?.set(t,e),Ea=(a,t,e,n)=>(b(a,t)?n?.(da(a,t)):pa(a,t,e()),da(a,t)),Aa=(a,t,e,n,s=0)=>p((e?Ea:da)(a,t[s],s>N(t)-2?e:ya),i=>{if(s>N(t)-2)return n?.(i)&&pa(a,t[s]),i;const r=Aa(i,t,e,n,s+1);return C(i)&&pa(a,t[s]),r}),Na=a=>new Set(A(a)||u(a)?a:[a]),ma=(a,t)=>a?.add(t),$a="ColumnName",ga="store",fa="json",Oa=ga+"TableName",Da=ga+"Id"+$a,Ia=ga+$a,Sa="autoLoadIntervalSeconds",Ta="rowId"+$a,_a="tableId",ha="tableName",ba="deleteEmptyColumns",Ca="deleteEmptyTable",La="condition",Ra={mode:fa,[Sa]:1},Pa={load:0,save:0,[ha]:t+"_values"},Ma=a=>A(a)?a:void 0,Fa=a=>d(a)||A(a),Ua=(a,t,e,n,s)=>{const i=ya();return ca(a,(a,r)=>{const o=(w=ia(t,E(a)?{[e]:a}:a),c=X.values(w),l=la(t),c.slice(0,l));var c,l,w;y(o[0])||n(r,o[0])||(s(r,o[0]),pa(i,r,o))}),i},ja=JSON.stringify,Ba=JSON.parse,Ja=a=>""===a?void 0:A(a)?I(a,Ja):ta(a)?ca(a,Ja):a,Ya=/^\d+$/,ka=ya(),xa=ya(),za=(a,t,n,s,i,r,o,c={},l=0,w=[])=>{let d,v,E,m=0,$=0,D=0;Ea(ka,w,()=>0),Ea(xa,w,()=>[]);const I=ya(),[S,T,b,L,M]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!e),([[a],[t]])=>!wa(a)||!wa(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!wa(a)||!wa(t),t.setContent]:g("Store type not supported by this Persister"))(o,a,l),[F,U,j]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?h(a):null)??e+t++,t=>{Ya.test(t)&&N(a)<1e3&&_(a,t)}]})(),s=ya();return[(n,i,r,o=[],c=()=>[])=>{a??=W;const l=t(1);return pa(s,l,[n,i,r,o,c]),ma(Aa(i,r??[e],Na),l),l},(t,n,...i)=>O(((a,t=[e])=>{const n=[],s=(a,e)=>e==N(t)?_(n,a):y(t[e])?R(a,a=>s(a,e+1)):O([t[e],null],t=>s(da(a,t),e+1));return s(a,0),n})(t,n),t=>R(t,t=>da(s,t)[0](a,...n??[],...i))),a=>p(da(s,a),([,t,i])=>(Aa(t,i??[e],void 0,t=>(P(t,a),C(t)?1:0)),pa(s,a),n(a),i)),t=>p(da(s,t),([t,,e=[],n,s])=>{const i=(...r)=>{const o=N(r);o==N(e)?t(a,...r,...s(r)):y(e[o])?O(n[o]?.(...r)??[],a=>i(...r,a)):i(...r,e[o])};i()})]})(),B=a=>{a!=m&&(m=a,U(I,void 0,m))},J=t=>{(S&&A(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},Y=async()=>{K()&&a.__?.[0]?.()&&await G()},k=async a=>(2!=m&&(B(1),$++,await V(async()=>{await f(async()=>{const e=await t();A(e)?J(e):a?M(a):g("Content is not an array: "+e)},()=>{a&&M(a)}),B(0),await Y()})),W),x=async a=>(z(),await k(a),await f(async()=>v=await s(async(a,t)=>{t||a?2!=m&&(B(1),$++,J(t??a),B(0),await Y()):await k()}),r),W),z=async()=>(v&&(await f(()=>i(v),r),v=void 0),W),G=async a=>(1!=m&&(B(2),D++,await V(async()=>{await f(()=>n(T,a),r),B(0)})),W),H=async()=>(q(),await G(),E=a.addDidFinishTransactionListener(()=>{const a=b();L(a)&&G(a)}),W),q=async()=>(E&&(a.delListener(E),E=void 0),W),K=()=>!u(E),Q=async(a=!1)=>{const[t,e]=a?[q,z]:[z,q];return await t(),await e(),W},V=async(...a)=>(_(da(xa,w),...a),await(async()=>{if(!da(ka,w)){for(pa(ka,w,1);!u(d=h(da(xa,w)));)await f(d,r);pa(ka,w,0)}})(),W),W={load:k,startAutoLoad:x,stopAutoLoad:z,isAutoLoading:()=>!u(v),save:G,startAutoSave:H,stopAutoSave:q,isAutoSaving:K,startAutoPersisting:async(a,t=!1)=>{const[e,n]=t?[H,x]:[x,H];return await e(a),await n(a),W},stopAutoPersisting:Q,getStatus:()=>m,addStatusListener:a=>F(a,I),delListener:t=>(j(t),a),schedule:V,getStore:()=>a,destroy:()=>(da(xa,w).splice(0,void 0),Q()),getStats:()=>({loads:$,saves:D}),...c};return na(W)},Ga=(a,t,e,s,r,o=Ha,c,l)=>{const w=ya();return[async()=>{w.clear(),I(await e(a,t),({tn:a,cn:t})=>ma(Ea(w,a,Na),t))},async(t,e,n,s)=>{const i=u(s)?void 0:Na(s);return((a,t)=>b(da(w,a),t))(t,e)?sa(T(I(await a(x+Q(t)+W(t,n)),a=>{const t=a[e],n=l?ca(ra(a,e),l):ra(a,e);return[t,u(i)?n:sa(T(oa(n,(a,t)=>[t,a]),([a])=>(a=>u(i)||b(i,a))(a)))]}),a=>!u(a[0])&&!wa(a[1]))):{}},async(t,e,s,l,y,d=!1,v=i,p)=>{const E=u(p)?void 0:Na(p),A=a=>u(E)||b(E,a),N=Na();ca(s??{},a=>I(T(ea(a??{}),A),a=>ma(N,a)));const m=L(N);if(u(E)&&!d&&y&&v==i&&S(m)&&b(w,t))return await a("DROP "+B+Q(t)),void pa(w,t);const g=da(w,t),f=Na(T(L(g),a=>a==e||A(a)));if(S(m)||(b(w,t)?await $(I([e,...m],async(n,s)=>{P(f,n)||(await a(J+Q(t)+"ADD"+Q(n)+r),0==s&&await a("CREATE UNIQUE INDEX pk ON "+Q(t)+`(${Q(e)})`),ma(g,n))})):(await a(K+Q(t)+`(${Q(e)}${r} PRIMARY KEY${D(I(m,a=>n+Q(a)+r))});`),pa(w,t,Na([e,...m])))),await $([...!d&&l?I(L(f),async n=>{n!=e&&(await a(J+Q(t)+"DROP"+Q(n)),P(g,n))}):[]]),d)u(s)?u(E)&&await a(k+Q(t)+W(t,v)):await $(oa(s,async(n,s)=>{if(u(n))await a(k+Q(t)+W(t,v)+`AND(${Q(e)}=$1)`,[s]);else if(!S(m)){const i=T(ea(n),A);S(i)||await o(a,t,e,i,{[s]:I(i,a=>c?c(n[a]):n[a])},g)}}));else if(S(m))u(E)&&b(w,t)&&await a(k+Q(t)+W(t,v));else{const n=T(L(da(w,t)),a=>a!=e&&A(a)),i={},r=[];ca(s??{},(a,t)=>{i[t]=I(n,t=>c?c(a?.[t]):a?.[t]),_(r,t)}),await o(a,t,e,n,i,g),await a(k+Q(t)+W(t,v)+`AND${Q(e)}NOT IN(${V(r)})`,r)}},async t=>{let e;return await a("BEGIN"),await f(async()=>e=await t(),s),await a("END"),e}]},Ha=async(a,t,e,s,i)=>{const r=[1];await a("INSERT INTO"+Q(t)+"("+((...a)=>D(I(a,Q),n))(e,...s)+")VALUES"+D(oa(i,a=>"($"+r[0]+++","+V(a,r)+")"),n)+"ON CONFLICT("+Q(e)+")DO UPDATE SET"+D(I(s,a=>Q(a)+"=excluded."+Q(a)),n),oa(i,(a,t)=>[t,...I(a,a=>a??null)]).flat())},qa=(a,t,e,n,s,i,r,[o,c,l],w,y,d,v,p,E)=>{const[A,N,m,$]=Ga(t,w,y,s,p,E),g=za(a,()=>$(async()=>{return await A(),a=(await N(o,c))[M]?.[l]??"null",Ja(Ba(a));var a}),a=>$(async()=>{var t;await A(),await m(o,c,{[M]:{[l]:(t=a()??null,ja(t,(a,t)=>u(t)?"":t))}},!0,!0)}),e,n,s,r,{[v]:()=>d,destroy:async()=>(await g.stopAutoPersisting(),i(),g)},0,d);return g},Ka=(a,t,e,n,s,i,r,[o,c,[l,w,y,d,v]],p,E,A,N,m,g,f,O)=>{const[D,S,_,h]=Ga(t,p,E,s,m,g,f,O),b=(a,t)=>$(va(c,async([e,n,s,i,r],o)=>{t&&!(o in a)||await _(e,n,a[o],s,i,t,r)})),C=(a,t,e)=>sa(1==e?T(oa(a,(a,t)=>[t,a]),([a])=>{return e=a,t.includes(e);var e}):T(I(t,t=>[t,a[t]]),([,a])=>!u(a))),L=async(a,t)=>w?await _(y,F,{[M]:u(v)?a:C(a,v,t)},!0,!0,t,void 0,v):null,R=za(a,()=>h(async()=>{await D();const a=await(async()=>sa(T(await $(va(o,async([a,t,e],n)=>[a,await S(n,t,e)])),a=>!wa(a[1]))))(),t=await(async()=>l?(await S(y,F,void 0,d))[M]:{})();return wa(a)&&u(t)?void 0:[a,t]}),(a,t)=>h(async()=>{if(await D(),u(t)){const[t,e]=a();await b(t),await L(e)}else await b(t[0],!0),await L(t[1],!0)}),e,n,s,r,{[N]:()=>A,destroy:async()=>(await R.stopAutoPersisting(),i(),R)},0,A);return R},Qa=(a,n,s,r,o,c,u,y,v,p,A="getDb",N)=>{let m,$,g;const O=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(s,c),[D,I,S,T]=(a=>{const e=(a=>ia(Ra,E(a)?{[Oa]:a}:a??{}))(a),n=e[Sa];if(e.mode==fa){const a=e[Oa]??t;return[1,n,[a,e[Da]??F,e[Ia]??ga],Na(a)]}const{tables:{load:s={},save:r={}}={},values:o={}}=e,c=ia(Pa,o),{load:l,save:w}=c,u=[Fa(l),Fa(w),c[ha],Ma(l),Ma(w)],y=u[2],d=Na(y),v=Na(y),p=Ua(s,{[_a]:null,[Ta]:F,[La]:i},_a,a=>b(v,a),a=>ma(d,a)),A=Ua(r,{[ha]:null,[Ta]:F,[ba]:0,[Ca]:0,[La]:null},ha,(a,t)=>b(v,t),(a,t)=>ma(d,t));var N;return N=(a,t)=>t[4]??=da(p,t[0])?.[2]??i,R(A,(a,t)=>N(0,a)),[0,n,[p,A,u],d]})(n);return(D?qa:Ka)(a,O,a=>{let t;const e=()=>t=setInterval(()=>f(async()=>{const[{d:t,s:e,c:n}]=await O(U+` ${G} d,${H} s,TOTAL_CHANGES() c FROM ${z}${G} JOIN ${z}${H}`);t==m&&e==$&&n==g||(w(m)||a(),m=t,$=e,g=n)}),1e3*I),n=()=>{m=$=g=null,l(t)},s=r(t=>{T.has(t)&&(n(),a(),e())});return e(),()=>{n(),o(s)}},a=>a(),u,y,v,S,L(T),async(a,t)=>await a(U+` t.name tn,c.name cn FROM ${q}list()t,${q}info(t.name)c ${j} t.schema='main'AND t.type IN('table','view')AND t.name IN(${V(t)})ORDER BY t.name,c.name`,t),p,A,e,N,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0)},Va=(a,t,e,n,s)=>Qa(a,e,async(a,e=[])=>t.query(a).all(...e),()=>m,a=>a(),n,s,m,3,t);export{Va as createSqliteBunPersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",r=(a,t,e)=>a.replace(t,e),o=Promise,c=a=>(t,e,n)=>a(t)?n?.():e(t),l=clearInterval,w=a=>null==a,y=a=>void 0===a,u=a=>null===a,d=c(w),p=c(y),v=t=>a(t)==s,E=a=>Array.isArray(a),A=(a,t,e)=>a.slice(t,e),N=a=>a.length,m=()=>{},$=async a=>o.all(a),g=a=>{throw Error(a)},f=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},O=(a,t)=>a.forEach(t),D=(a,t="")=>a.join(t),I=(a,t)=>a.map(t),S=a=>0==N(a),T=(a,t)=>a.filter(t),_=(a,...t)=>a.push(...t),h=a=>a.shift(),b=(a,t)=>a?.has(t)??!1,C=a=>y(a)||0==(a=>a?.size??0)(a),L=a=>[...a?.values()??[]],R=(a,t)=>a?.forEach(t),P=(a,t)=>a?.delete(t),M="_",F="_id",U="SELECT",j="WHERE",B="TABLE",J="ALTER "+B,Y="FROM",k="DELETE "+Y,x=U+"*"+Y,z="pragma_",G="data_version",H="schema_version",q="pragma_table_",K="CREATE "+B,Q=a=>D(I(((a,t="",e)=>a.split(t,e))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),V=(a,t=[1])=>D(I(a,()=>"$"+t[0]++),n),W=(a,t=i)=>j+`(${r(t,"$tableName",Q(a))})`,X=Object,Z=a=>X.getPrototypeOf(a),aa=X.entries,ta=a=>!w(a)&&d(Z(a),a=>a==X.prototype||w(Z(a)),()=>!0),ea=X.keys,na=X.freeze,sa=(a=[])=>X.fromEntries(a),ia=(...a)=>X.assign({},...a),ra=(a,t)=>(delete a[t],a),oa=(a,t)=>I(aa(a),([a,e])=>t(e,a)),ca=(a,t)=>sa(oa(a,(a,e)=>[e,t(a,e)])),la=a=>X.values(a),wa=a=>N(ea(a)),ya=a=>ta(a)&&0==wa(a),ua=Map,da=a=>new ua(a),pa=(a,t)=>a?.get(t),va=(a,t)=>I([...a?.entries()??[]],([a,e])=>t(e,a)),Ea=(a,t,e)=>y(e)?(P(a,t),a):a?.set(t,e),Aa=(a,t,e,n)=>(b(a,t)?n?.(pa(a,t)):Ea(a,t,e()),pa(a,t)),Na=(a,t,e,n,s=0)=>p((e?Aa:pa)(a,t[s],s>N(t)-2?e:da),i=>{if(s>N(t)-2)return n?.(i)&&Ea(a,t[s]),i;const r=Na(i,t,e,n,s+1);return C(i)&&Ea(a,t[s]),r}),ma=a=>new Set(E(a)||y(a)?a:[a]),$a=(a,t)=>a?.add(t),ga="ColumnName",fa="store",Oa="json",Da=fa+"TableName",Ia=fa+"Id"+ga,Sa=fa+ga,Ta="autoLoadIntervalSeconds",_a="rowId"+ga,ha="tableId",ba="tableName",Ca="deleteEmptyColumns",La="deleteEmptyTable",Ra="condition",Pa={mode:Oa,[Ta]:1},Ma={load:0,save:0,[ba]:t+"_values"},Fa=(a,t,e,n,s)=>{const i=da();return ca(a,(a,r)=>{const o=A(la(ia(t,v(a)?{[e]:a}:a)),0,wa(t));u(o[0])||n(r,o[0])||(s(r,o[0]),Ea(i,r,o))}),i},Ua=JSON.stringify,ja=JSON.parse,Ba=a=>""===a?void 0:E(a)?I(a,Ba):ta(a)?ca(a,Ba):a,Ja=/^\d+$/,Ya=da(),ka=da(),xa=(a,t,n,s,i,r,o,c={},l=0,w=[])=>{let d,v,A,m=0,$=0,D=0;Aa(Ya,w,()=>0),Aa(ka,w,()=>[]);const I=da(),[S,T,b,L,M]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!e),([[a],[t]])=>!ya(a)||!ya(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!ya(a)||!ya(t),t.setContent]:g("Store type not supported by this Persister"))(o,a,l),[F,U,j]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?h(a):null)??e+t++,t=>{Ja.test(t)&&N(a)<1e3&&_(a,t)}]})(),s=da();return[(n,i,r,o=[],c=()=>[])=>{a??=W;const l=t(1);return Ea(s,l,[n,i,r,o,c]),$a(Na(i,r??[e],ma),l),l},(t,n,...i)=>O(((a,t=[e])=>{const n=[],s=(a,e)=>e==N(t)?_(n,a):u(t[e])?R(a,a=>s(a,e+1)):O([t[e],null],t=>s(pa(a,t),e+1));return s(a,0),n})(t,n),t=>R(t,t=>pa(s,t)[0](a,...n??[],...i))),a=>p(pa(s,a),([,t,i])=>(Na(t,i??[e],void 0,t=>(P(t,a),C(t)?1:0)),Ea(s,a),n(a),i)),t=>p(pa(s,t),([t,,e=[],n,s])=>{const i=(...r)=>{const o=N(r);o==N(e)?t(a,...r,...s(r)):u(e[o])?O(n[o]?.(...r)??[],a=>i(...r,a)):i(...r,e[o])};i()})]})(),B=a=>{a!=m&&(m=a,U(I,void 0,m))},J=t=>{(S&&E(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},Y=async()=>{K()&&a.__?.[0]?.()&&await G()},k=async a=>(2!=m&&(B(1),$++,await V(async()=>{await f(async()=>{const e=await t();E(e)?J(e):a?M(a):g("Content is not an array: "+e)},()=>{a&&M(a)}),B(0),await Y()})),W),x=async a=>(z(),await k(a),await f(async()=>v=await s(async(a,t)=>{t||a?2!=m&&(B(1),$++,J(t??a),B(0),await Y()):await k()}),r),W),z=async()=>(v&&(await f(()=>i(v),r),v=void 0),W),G=async a=>(1!=m&&(B(2),D++,await V(async()=>{await f(()=>n(T,a),r),B(0)})),W),H=async()=>(q(),await G(),A=a.addDidFinishTransactionListener(()=>{const a=b();L(a)&&G(a)}),W),q=async()=>(A&&(a.delListener(A),A=void 0),W),K=()=>!y(A),Q=async(a=!1)=>{const[t,e]=a?[q,z]:[z,q];return await t(),await e(),W},V=async(...a)=>(_(pa(ka,w),...a),await(async()=>{if(!pa(Ya,w)){for(Ea(Ya,w,1);!y(d=h(pa(ka,w)));)await f(d,r);Ea(Ya,w,0)}})(),W),W={load:k,startAutoLoad:x,stopAutoLoad:z,isAutoLoading:()=>!y(v),save:G,startAutoSave:H,stopAutoSave:q,isAutoSaving:K,startAutoPersisting:async(a,t=!1)=>{const[e,n]=t?[H,x]:[x,H];return await e(a),await n(a),W},stopAutoPersisting:Q,getStatus:()=>m,addStatusListener:a=>F(a,I),delListener:t=>(j(t),a),schedule:V,getStore:()=>a,destroy:()=>(pa(ka,w).splice(0,void 0),Q()),getStats:()=>({loads:$,saves:D}),...c};return na(W)},za=(a,t,e,s,r,o=Ga,c,l)=>{const w=da();return[async()=>{w.clear(),I(await e(a,t),({tn:a,cn:t})=>$a(Aa(w,a,ma),t))},async(t,e,n)=>((a,t)=>b(pa(w,a),t))(t,e)?sa(T(I(await a(x+Q(t)+W(t,n)),a=>[a[e],l?ca(ra(a,e),l):ra(a,e)]),a=>!y(a[0])&&!ya(a[1]))):{},async(t,e,s,l,u,d=!1,p=i)=>{const v=ma();ca(s??{},a=>I(ea(a??{}),a=>$a(v,a)));const E=L(v);if(!d&&u&&p==i&&S(E)&&b(w,t))return await a("DROP "+B+Q(t)),void Ea(w,t);const A=pa(w,t),N=ma(L(A));if(S(E)||(b(w,t)?await $(I([e,...E],async(n,s)=>{P(N,n)||(await a(J+Q(t)+"ADD"+Q(n)+r),0==s&&await a("CREATE UNIQUE INDEX pk ON "+Q(t)+`(${Q(e)})`),$a(A,n))})):(await a(K+Q(t)+`(${Q(e)}${r} PRIMARY KEY${D(I(E,a=>n+Q(a)+r))});`),Ea(w,t,ma([e,...E])))),await $([...!d&&l?I(L(N),async n=>{n!=e&&(await a(J+Q(t)+"DROP"+Q(n)),P(A,n))}):[]]),d)y(s)?await a(k+Q(t)+W(t,p)):await $(oa(s,async(n,s)=>{y(n)?await a(k+Q(t)+W(t,p)+`AND(${Q(e)}=$1)`,[s]):S(E)||await o(a,t,e,ea(n),{[s]:c?I(la(n),c):la(n)},A)}));else if(S(E))b(w,t)&&await a(k+Q(t)+W(t,p));else{const n=T(L(pa(w,t)),a=>a!=e),i={},r=[];ca(s??{},(a,t)=>{i[t]=I(n,t=>c?c(a?.[t]):a?.[t]),_(r,t)}),await o(a,t,e,n,i),await a(k+Q(t)+W(t,p)+`AND${Q(e)}NOT IN(${V(r)})`,r)}},async t=>{let e;return await a("BEGIN"),await f(async()=>e=await t(),s),await a("END"),e}]},Ga=async(a,t,e,s,i)=>{const r=[1];await a("INSERT INTO"+Q(t)+"("+((...a)=>D(I(a,Q),n))(e,...s)+")VALUES"+D(oa(i,a=>"($"+r[0]+++","+V(a,r)+")"),n)+"ON CONFLICT("+Q(e)+")DO UPDATE SET"+D(I(s,a=>Q(a)+"=excluded."+Q(a)),n),oa(i,(a,t)=>[t,...I(a,a=>a??null)]).flat())},Ha=(a,t,e,n,s,i,r,[o,c,l],w,u,d,p,v,E)=>{const[A,N,m,$]=za(t,w,u,s,v,E),g=xa(a,()=>$(async()=>{return await A(),a=(await N(o,c))[M]?.[l]??"null",Ba(ja(a));var a}),a=>$(async()=>{var t;await A(),await m(o,c,{[M]:{[l]:(t=a()??null,Ua(t,(a,t)=>y(t)?"":t))}},!0,!0)}),e,n,s,r,{[p]:()=>d,destroy:async()=>(await g.stopAutoPersisting(),i(),g)},0,d);return g},qa=(a,t,e,n,s,i,r,[o,c,[l,w,u]],d,p,v,E,A,N,m,g)=>{const[f,O,D,I]=za(t,d,p,s,A,N,m,g),S=(a,t)=>$(va(c,async([e,n,s,i,r],o)=>{t&&!(o in a)||await D(e,n,a[o],s,i,t,r)})),_=async(a,t)=>w?await D(u,F,{[M]:a},!0,!0,t):null,h=xa(a,()=>I(async()=>{await f();const a=await(async()=>sa(T(await $(va(o,async([a,t,e],n)=>[a,await O(n,t,e)])),a=>!ya(a[1]))))(),t=await(async()=>l?(await O(u,F))[M]:{})();return ya(a)&&y(t)?void 0:[a,t]}),(a,t)=>I(async()=>{if(await f(),y(t)){const[t,e]=a();await S(t),await _(e)}else await S(t[0],!0),await _(t[1],!0)}),e,n,s,r,{[E]:()=>v,destroy:async()=>(await h.stopAutoPersisting(),i(),h)},0,v);return h},Ka=(a,n,s,r,o,c,y,u,d,p,E="getDb",N)=>{let m,$,g;const O=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(s,c),[D,I,S,T]=(a=>{const e=(a=>ia(Pa,v(a)?{[Da]:a}:a??{}))(a),n=e[Ta];if(e.mode==Oa){const a=e[Da]??t;return[1,n,[a,e[Ia]??F,e[Sa]??fa],ma(a)]}const{tables:{load:s={},save:r={}}={},values:o={}}=e,c=A(la(ia(Ma,o)),0,wa(Ma)),l=c[2],w=ma(l),y=ma(l),u=Fa(s,{[ha]:null,[_a]:F,[Ra]:i},ha,a=>b(y,a),a=>$a(w,a)),d=Fa(r,{[ba]:null,[_a]:F,[Ca]:0,[La]:0,[Ra]:null},ba,(a,t)=>b(y,t),(a,t)=>$a(w,t));var p;return p=(a,t)=>t[4]??=pa(u,t[0])?.[2]??i,R(d,(a,t)=>p(0,a)),[0,n,[u,d,c],w]})(n);return(D?Ha:qa)(a,O,a=>{let t;const e=()=>t=setInterval(()=>f(async()=>{const[{d:t,s:e,c:n}]=await O(U+` ${G} d,${H} s,TOTAL_CHANGES() c FROM ${z}${G} JOIN ${z}${H}`);t==m&&e==$&&n==g||(w(m)||a(),m=t,$=e,g=n)}),1e3*I),n=()=>{m=$=g=null,l(t)},s=r(t=>{T.has(t)&&(n(),a(),e())});return e(),()=>{n(),o(s)}},a=>a(),y,u,d,S,L(T),async(a,t)=>await a(U+` t.name tn,c.name cn FROM ${q}list()t,${q}info(t.name)c ${j} t.schema='main'AND t.type IN('table','view')AND t.name IN(${V(t)})ORDER BY t.name,c.name`,t),p,E,e,N,a=>(a=>!0===a)(a)?1:(a=>!1===a)(a)?0:a,void 0)},Qa=(a,t,e,n,s)=>Ka(a,e,async(a,e=[])=>t.query(a).all(...e),()=>m,a=>a(),n,s,m,3,t);export{Qa as createSqliteBunPersister};
1
+ const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",r=(a,t,e)=>a.replace(t,e),o=Promise,c=a=>(t,e,n)=>a(t)?n?.():e(t),l=clearInterval,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=c(w),p=c(u),E=t=>a(t)==s,A=a=>Array.isArray(a),N=a=>a.length,m=()=>{},$=async a=>o.all(a),g=a=>{throw Error(a)},f=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},O=(a,t)=>a.forEach(t),D=(a,t="")=>a.join(t),I=(a,t)=>a.map(t),S=a=>0==N(a),T=(a,t)=>a.filter(t),_=(a,...t)=>a.push(...t),h=a=>a.shift(),b=(a,t)=>a?.has(t)??!1,C=a=>u(a)||0==(a=>a?.size??0)(a),L=a=>[...a?.values()??[]],R=(a,t)=>a?.forEach(t),P=(a,t)=>a?.delete(t),M="_",F="_id",U="SELECT",j="WHERE",B="TABLE",J="ALTER "+B,Y="FROM",k="DELETE "+Y,x=U+"*"+Y,z="pragma_",G="data_version",H="schema_version",q="pragma_table_",K="CREATE "+B,Q=a=>D(I(((a,t="",e)=>a.split(t,e))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),V=(a,t=[1])=>D(I(a,()=>"$"+t[0]++),n),W=(a,t=i)=>j+`(${r(t,"$tableName",Q(a))})`,X=Object,Z=a=>X.getPrototypeOf(a),aa=X.entries,ta=a=>!w(a)&&v(Z(a),a=>a==X.prototype||w(Z(a)),()=>!0),ea=X.keys,na=X.freeze,sa=(a=[])=>X.fromEntries(a),ia=(...a)=>X.assign({},...a),ra=(a,t)=>(delete a[t],a),oa=(a,t)=>I(aa(a),([a,e])=>t(e,a)),ca=(a,t)=>sa(oa(a,(a,e)=>[e,t(a,e)])),la=a=>N(ea(a)),wa=a=>ta(a)&&0==la(a),ua=Map,ya=a=>new ua(a),da=(a,t)=>a?.get(t),va=(a,t)=>I([...a?.entries()??[]],([a,e])=>t(e,a)),pa=(a,t,e)=>u(e)?(P(a,t),a):a?.set(t,e),Ea=(a,t,e,n)=>(b(a,t)?n?.(da(a,t)):pa(a,t,e()),da(a,t)),Aa=(a,t,e,n,s=0)=>p((e?Ea:da)(a,t[s],s>N(t)-2?e:ya),i=>{if(s>N(t)-2)return n?.(i)&&pa(a,t[s]),i;const r=Aa(i,t,e,n,s+1);return C(i)&&pa(a,t[s]),r}),Na=a=>new Set(A(a)||u(a)?a:[a]),ma=(a,t)=>a?.add(t),$a="ColumnName",ga="store",fa="json",Oa=ga+"TableName",Da=ga+"Id"+$a,Ia=ga+$a,Sa="autoLoadIntervalSeconds",Ta="rowId"+$a,_a="tableId",ha="tableName",ba="deleteEmptyColumns",Ca="deleteEmptyTable",La="condition",Ra={mode:fa,[Sa]:1},Pa={load:0,save:0,[ha]:t+"_values"},Ma=a=>A(a)?a:void 0,Fa=a=>d(a)||A(a),Ua=(a,t,e,n,s)=>{const i=ya();return ca(a,(a,r)=>{const o=(w=ia(t,E(a)?{[e]:a}:a),c=X.values(w),l=la(t),c.slice(0,l));var c,l,w;y(o[0])||n(r,o[0])||(s(r,o[0]),pa(i,r,o))}),i},ja=JSON.stringify,Ba=JSON.parse,Ja=a=>""===a?void 0:A(a)?I(a,Ja):ta(a)?ca(a,Ja):a,Ya=/^\d+$/,ka=ya(),xa=ya(),za=(a,t,n,s,i,r,o,c={},l=0,w=[])=>{let d,v,E,m=0,$=0,D=0;Ea(ka,w,()=>0),Ea(xa,w,()=>[]);const I=ya(),[S,T,b,L,M]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!e),([[a],[t]])=>!wa(a)||!wa(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!wa(a)||!wa(t),t.setContent]:g("Store type not supported by this Persister"))(o,a,l),[F,U,j]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?h(a):null)??e+t++,t=>{Ya.test(t)&&N(a)<1e3&&_(a,t)}]})(),s=ya();return[(n,i,r,o=[],c=()=>[])=>{a??=W;const l=t(1);return pa(s,l,[n,i,r,o,c]),ma(Aa(i,r??[e],Na),l),l},(t,n,...i)=>O(((a,t=[e])=>{const n=[],s=(a,e)=>e==N(t)?_(n,a):y(t[e])?R(a,a=>s(a,e+1)):O([t[e],null],t=>s(da(a,t),e+1));return s(a,0),n})(t,n),t=>R(t,t=>da(s,t)[0](a,...n??[],...i))),a=>p(da(s,a),([,t,i])=>(Aa(t,i??[e],void 0,t=>(P(t,a),C(t)?1:0)),pa(s,a),n(a),i)),t=>p(da(s,t),([t,,e=[],n,s])=>{const i=(...r)=>{const o=N(r);o==N(e)?t(a,...r,...s(r)):y(e[o])?O(n[o]?.(...r)??[],a=>i(...r,a)):i(...r,e[o])};i()})]})(),B=a=>{a!=m&&(m=a,U(I,void 0,m))},J=t=>{(S&&A(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},Y=async()=>{K()&&a.__?.[0]?.()&&await G()},k=async a=>(2!=m&&(B(1),$++,await V(async()=>{await f(async()=>{const e=await t();A(e)?J(e):a?M(a):g("Content is not an array: "+e)},()=>{a&&M(a)}),B(0),await Y()})),W),x=async a=>(z(),await k(a),await f(async()=>v=await s(async(a,t)=>{t||a?2!=m&&(B(1),$++,J(t??a),B(0),await Y()):await k()}),r),W),z=async()=>(v&&(await f(()=>i(v),r),v=void 0),W),G=async a=>(1!=m&&(B(2),D++,await V(async()=>{await f(()=>n(T,a),r),B(0)})),W),H=async()=>(q(),await G(),E=a.addDidFinishTransactionListener(()=>{const a=b();L(a)&&G(a)}),W),q=async()=>(E&&(a.delListener(E),E=void 0),W),K=()=>!u(E),Q=async(a=!1)=>{const[t,e]=a?[q,z]:[z,q];return await t(),await e(),W},V=async(...a)=>(_(da(xa,w),...a),await(async()=>{if(!da(ka,w)){for(pa(ka,w,1);!u(d=h(da(xa,w)));)await f(d,r);pa(ka,w,0)}})(),W),W={load:k,startAutoLoad:x,stopAutoLoad:z,isAutoLoading:()=>!u(v),save:G,startAutoSave:H,stopAutoSave:q,isAutoSaving:K,startAutoPersisting:async(a,t=!1)=>{const[e,n]=t?[H,x]:[x,H];return await e(a),await n(a),W},stopAutoPersisting:Q,getStatus:()=>m,addStatusListener:a=>F(a,I),delListener:t=>(j(t),a),schedule:V,getStore:()=>a,destroy:()=>(da(xa,w).splice(0,void 0),Q()),getStats:()=>({loads:$,saves:D}),...c};return na(W)},Ga=(a,t,e,s,r,o=Ha,c,l)=>{const w=ya();return[async()=>{w.clear(),I(await e(a,t),({tn:a,cn:t})=>ma(Ea(w,a,Na),t))},async(t,e,n,s)=>{const i=u(s)?void 0:Na(s);return((a,t)=>b(da(w,a),t))(t,e)?sa(T(I(await a(x+Q(t)+W(t,n)),a=>{const t=a[e],n=l?ca(ra(a,e),l):ra(a,e);return[t,u(i)?n:sa(T(oa(n,(a,t)=>[t,a]),([a])=>(a=>u(i)||b(i,a))(a)))]}),a=>!u(a[0])&&!wa(a[1]))):{}},async(t,e,s,l,y,d=!1,v=i,p)=>{const E=u(p)?void 0:Na(p),A=a=>u(E)||b(E,a),N=Na();ca(s??{},a=>I(T(ea(a??{}),A),a=>ma(N,a)));const m=L(N);if(u(E)&&!d&&y&&v==i&&S(m)&&b(w,t))return await a("DROP "+B+Q(t)),void pa(w,t);const g=da(w,t),f=Na(T(L(g),a=>a==e||A(a)));if(S(m)||(b(w,t)?await $(I([e,...m],async(n,s)=>{P(f,n)||(await a(J+Q(t)+"ADD"+Q(n)+r),0==s&&await a("CREATE UNIQUE INDEX pk ON "+Q(t)+`(${Q(e)})`),ma(g,n))})):(await a(K+Q(t)+`(${Q(e)}${r} PRIMARY KEY${D(I(m,a=>n+Q(a)+r))});`),pa(w,t,Na([e,...m])))),await $([...!d&&l?I(L(f),async n=>{n!=e&&(await a(J+Q(t)+"DROP"+Q(n)),P(g,n))}):[]]),d)u(s)?u(E)&&await a(k+Q(t)+W(t,v)):await $(oa(s,async(n,s)=>{if(u(n))await a(k+Q(t)+W(t,v)+`AND(${Q(e)}=$1)`,[s]);else if(!S(m)){const i=T(ea(n),A);S(i)||await o(a,t,e,i,{[s]:I(i,a=>c?c(n[a]):n[a])},g)}}));else if(S(m))u(E)&&b(w,t)&&await a(k+Q(t)+W(t,v));else{const n=T(L(da(w,t)),a=>a!=e&&A(a)),i={},r=[];ca(s??{},(a,t)=>{i[t]=I(n,t=>c?c(a?.[t]):a?.[t]),_(r,t)}),await o(a,t,e,n,i,g),await a(k+Q(t)+W(t,v)+`AND${Q(e)}NOT IN(${V(r)})`,r)}},async t=>{let e;return await a("BEGIN"),await f(async()=>e=await t(),s),await a("END"),e}]},Ha=async(a,t,e,s,i)=>{const r=[1];await a("INSERT INTO"+Q(t)+"("+((...a)=>D(I(a,Q),n))(e,...s)+")VALUES"+D(oa(i,a=>"($"+r[0]+++","+V(a,r)+")"),n)+"ON CONFLICT("+Q(e)+")DO UPDATE SET"+D(I(s,a=>Q(a)+"=excluded."+Q(a)),n),oa(i,(a,t)=>[t,...I(a,a=>a??null)]).flat())},qa=(a,t,e,n,s,i,r,[o,c,l],w,y,d,v,p,E)=>{const[A,N,m,$]=Ga(t,w,y,s,p,E),g=za(a,()=>$(async()=>{return await A(),a=(await N(o,c))[M]?.[l]??"null",Ja(Ba(a));var a}),a=>$(async()=>{var t;await A(),await m(o,c,{[M]:{[l]:(t=a()??null,ja(t,(a,t)=>u(t)?"":t))}},!0,!0)}),e,n,s,r,{[v]:()=>d,destroy:async()=>(await g.stopAutoPersisting(),i(),g)},0,d);return g},Ka=(a,t,e,n,s,i,r,[o,c,[l,w,y,d,v]],p,E,A,N,m,g,f,O)=>{const[D,S,_,h]=Ga(t,p,E,s,m,g,f,O),b=(a,t)=>$(va(c,async([e,n,s,i,r],o)=>{t&&!(o in a)||await _(e,n,a[o],s,i,t,r)})),C=(a,t,e)=>sa(1==e?T(oa(a,(a,t)=>[t,a]),([a])=>{return e=a,t.includes(e);var e}):T(I(t,t=>[t,a[t]]),([,a])=>!u(a))),L=async(a,t)=>w?await _(y,F,{[M]:u(v)?a:C(a,v,t)},!0,!0,t,void 0,v):null,R=za(a,()=>h(async()=>{await D();const a=await(async()=>sa(T(await $(va(o,async([a,t,e],n)=>[a,await S(n,t,e)])),a=>!wa(a[1]))))(),t=await(async()=>l?(await S(y,F,void 0,d))[M]:{})();return wa(a)&&u(t)?void 0:[a,t]}),(a,t)=>h(async()=>{if(await D(),u(t)){const[t,e]=a();await b(t),await L(e)}else await b(t[0],!0),await L(t[1],!0)}),e,n,s,r,{[N]:()=>A,destroy:async()=>(await R.stopAutoPersisting(),i(),R)},0,A);return R},Qa=(a,n,s,r,o,c,u,y,v,p,A="getDb",N)=>{let m,$,g;const O=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(s,c),[D,I,S,T]=(a=>{const e=(a=>ia(Ra,E(a)?{[Oa]:a}:a??{}))(a),n=e[Sa];if(e.mode==fa){const a=e[Oa]??t;return[1,n,[a,e[Da]??F,e[Ia]??ga],Na(a)]}const{tables:{load:s={},save:r={}}={},values:o={}}=e,c=ia(Pa,o),{load:l,save:w}=c,u=[Fa(l),Fa(w),c[ha],Ma(l),Ma(w)],y=u[2],d=Na(y),v=Na(y),p=Ua(s,{[_a]:null,[Ta]:F,[La]:i},_a,a=>b(v,a),a=>ma(d,a)),A=Ua(r,{[ha]:null,[Ta]:F,[ba]:0,[Ca]:0,[La]:null},ha,(a,t)=>b(v,t),(a,t)=>ma(d,t));var N;return N=(a,t)=>t[4]??=da(p,t[0])?.[2]??i,R(A,(a,t)=>N(0,a)),[0,n,[p,A,u],d]})(n);return(D?qa:Ka)(a,O,a=>{let t;const e=()=>t=setInterval(()=>f(async()=>{const[{d:t,s:e,c:n}]=await O(U+` ${G} d,${H} s,TOTAL_CHANGES() c FROM ${z}${G} JOIN ${z}${H}`);t==m&&e==$&&n==g||(w(m)||a(),m=t,$=e,g=n)}),1e3*I),n=()=>{m=$=g=null,l(t)},s=r(t=>{T.has(t)&&(n(),a(),e())});return e(),()=>{n(),o(s)}},a=>a(),u,y,v,S,L(T),async(a,t)=>await a(U+` t.name tn,c.name cn FROM ${q}list()t,${q}info(t.name)c ${j} t.schema='main'AND t.type IN('table','view')AND t.name IN(${V(t)})ORDER BY t.name,c.name`,t),p,A,e,N,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0)},Va=(a,t,e,n,s)=>Qa(a,e,async(a,e=[])=>t.query(a).all(...e),()=>m,a=>a(),n,s,m,3,t);export{Va as createSqliteBunPersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",o=(a,t,e)=>a.replace(t,e),r=Promise,c=a=>(t,e,n)=>a(t)?n?.():e(t),l=clearInterval,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=c(w),p=c(u),v=t=>a(t)==s,E=a=>Array.isArray(a),A=(a,t,e)=>a.slice(t,e),m=a=>a.length,N=()=>{},$=async a=>r.all(a),g=a=>{throw Error(a)},_=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},f=(a,t)=>a.forEach(t),h=(a,t="")=>a.join(t),O=(a,t)=>a.map(t),b=a=>0==m(a),D=(a,t)=>a.filter(t),I=(a,...t)=>a.push(...t),S=a=>a.shift(),T=(a,t)=>a?.has(t)??!1,C=a=>u(a)||0==(a=>a?.size??0)(a),L=a=>[...a?.values()??[]],R=(a,t)=>a?.forEach(t),P=(a,t)=>a?.delete(t),M="_",F="_id",j="SELECT",k="WHERE",U="TABLE",x="ALTER "+U,B="FROM",J="DELETE "+B,Y=j+"*"+B,q="pragma_",z="data_version",G="schema_version",H="pragma_table_",V="CREATE "+U,K=a=>h(O(((a,t="",e)=>a.split(t,e))(a,"."),a=>`"${o(a,/"/g,'""')}"`),"."),Q=(a,t=[1])=>h(O(a,()=>"$"+t[0]++),n),W=(a,t=i)=>k+`(${o(t,"$tableName",K(a))})`,X=Object,Z=a=>X.getPrototypeOf(a),aa=X.entries,ta=a=>!w(a)&&d(Z(a),a=>a==X.prototype||w(Z(a)),()=>!0),ea=X.keys,na=X.freeze,sa=(a=[])=>X.fromEntries(a),ia=(...a)=>X.assign({},...a),oa=(a,t)=>(delete a[t],a),ra=(a,t)=>O(aa(a),([a,e])=>t(e,a)),ca=(a,t)=>sa(ra(a,(a,e)=>[e,t(a,e)])),la=a=>X.values(a),wa=a=>m(ea(a)),ua=a=>ta(a)&&0==wa(a),ya=Map,da=a=>new ya(a),pa=(a,t)=>a?.get(t),va=(a,t)=>O([...a?.entries()??[]],([a,e])=>t(e,a)),Ea=(a,t,e)=>u(e)?(P(a,t),a):a?.set(t,e),Aa=(a,t,e,n)=>(T(a,t)?n?.(pa(a,t)):Ea(a,t,e()),pa(a,t)),ma=(a,t,e,n,s=0)=>p((e?Aa:pa)(a,t[s],s>m(t)-2?e:da),i=>{if(s>m(t)-2)return n?.(i)&&Ea(a,t[s]),i;const o=ma(i,t,e,n,s+1);return C(i)&&Ea(a,t[s]),o}),Na=a=>new Set(E(a)||u(a)?a:[a]),$a=(a,t)=>a?.add(t),ga="ColumnName",_a="store",fa="json",ha=_a+"TableName",Oa=_a+"Id"+ga,ba=_a+ga,Da="autoLoadIntervalSeconds",Ia="rowId"+ga,Sa="tableId",Ta="tableName",Ca="deleteEmptyColumns",La="deleteEmptyTable",Ra="condition",Pa={mode:fa,[Da]:1},Ma={load:0,save:0,[Ta]:t+"_values"},Fa=(a,t,e,n,s)=>{const i=da();return ca(a,(a,o)=>{const r=A(la(ia(t,v(a)?{[e]:a}:a)),0,wa(t));y(r[0])||n(o,r[0])||(s(o,r[0]),Ea(i,o,r))}),i},ja=JSON.stringify,ka=JSON.parse,Ua=a=>""===a?void 0:E(a)?O(a,Ua):ta(a)?ca(a,Ua):a,xa=/^\d+$/,Ba=da(),Ja=da(),Ya=(a,t,n,s,i,o,r,c={},l=0,w=[])=>{let d,v,A,N=0,$=0,h=0;Aa(Ba,w,()=>0),Aa(Ja,w,()=>[]);const O=da(),[b,D,T,L,M]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!e),([[a],[t]])=>!ua(a)||!ua(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!ua(a)||!ua(t),t.setContent]:g("Store type not supported by this Persister"))(r,a,l),[F,j,k]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?S(a):null)??e+t++,t=>{xa.test(t)&&m(a)<1e3&&I(a,t)}]})(),s=da();return[(n,i,o,r=[],c=()=>[])=>{a??=W;const l=t(1);return Ea(s,l,[n,i,o,r,c]),$a(ma(i,o??[e],Na),l),l},(t,n,...i)=>f(((a,t=[e])=>{const n=[],s=(a,e)=>e==m(t)?I(n,a):y(t[e])?R(a,a=>s(a,e+1)):f([t[e],null],t=>s(pa(a,t),e+1));return s(a,0),n})(t,n),t=>R(t,t=>pa(s,t)[0](a,...n??[],...i))),a=>p(pa(s,a),([,t,i])=>(ma(t,i??[e],void 0,t=>(P(t,a),C(t)?1:0)),Ea(s,a),n(a),i)),t=>p(pa(s,t),([t,,e=[],n,s])=>{const i=(...o)=>{const r=m(o);r==m(e)?t(a,...o,...s(o)):y(e[r])?f(n[r]?.(...o)??[],a=>i(...o,a)):i(...o,e[r])};i()})]})(),U=a=>{a!=N&&(N=a,j(O,void 0,N))},x=t=>{(b&&E(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},B=async()=>{V()&&a.__?.[0]?.()&&await z()},J=async a=>(2!=N&&(U(1),$++,await Q(async()=>{await _(async()=>{const e=await t();E(e)?x(e):a?M(a):g("Content is not an array: "+e)},()=>{a&&M(a)}),U(0),await B()})),W),Y=async a=>(q(),await J(a),await _(async()=>v=await s(async(a,t)=>{t||a?2!=N&&(U(1),$++,x(t??a),U(0),await B()):await J()}),o),W),q=async()=>(v&&(await _(()=>i(v),o),v=void 0),W),z=async a=>(1!=N&&(U(2),h++,await Q(async()=>{await _(()=>n(D,a),o),U(0)})),W),G=async()=>(H(),await z(),A=a.addDidFinishTransactionListener(()=>{const a=T();L(a)&&z(a)}),W),H=async()=>(A&&(a.delListener(A),A=void 0),W),V=()=>!u(A),K=async(a=!1)=>{const[t,e]=a?[H,q]:[q,H];return await t(),await e(),W},Q=async(...a)=>(I(pa(Ja,w),...a),await(async()=>{if(!pa(Ba,w)){for(Ea(Ba,w,1);!u(d=S(pa(Ja,w)));)await _(d,o);Ea(Ba,w,0)}})(),W),W={load:J,startAutoLoad:Y,stopAutoLoad:q,isAutoLoading:()=>!u(v),save:z,startAutoSave:G,stopAutoSave:H,isAutoSaving:V,startAutoPersisting:async(a,t=!1)=>{const[e,n]=t?[G,Y]:[Y,G];return await e(a),await n(a),W},stopAutoPersisting:K,getStatus:()=>N,addStatusListener:a=>F(a,O),delListener:t=>(k(t),a),schedule:Q,getStore:()=>a,destroy:()=>(pa(Ja,w).splice(0,void 0),K()),getStats:()=>({loads:$,saves:h}),...c};return na(W)},qa=(a,t,e,s,o,r=za,c,l)=>{const w=da();return[async()=>{w.clear(),O(await e(a,t),({tn:a,cn:t})=>$a(Aa(w,a,Na),t))},async(t,e,n)=>((a,t)=>T(pa(w,a),t))(t,e)?sa(D(O(await a(Y+K(t)+W(t,n)),a=>[a[e],l?ca(oa(a,e),l):oa(a,e)]),a=>!u(a[0])&&!ua(a[1]))):{},async(t,e,s,l,y,d=!1,p=i)=>{const v=Na();ca(s??{},a=>O(ea(a??{}),a=>$a(v,a)));const E=L(v);if(!d&&y&&p==i&&b(E)&&T(w,t))return await a("DROP "+U+K(t)),void Ea(w,t);const A=pa(w,t),m=Na(L(A));if(b(E)||(T(w,t)?await $(O([e,...E],async(n,s)=>{P(m,n)||(await a(x+K(t)+"ADD"+K(n)+o),0==s&&await a("CREATE UNIQUE INDEX pk ON "+K(t)+`(${K(e)})`),$a(A,n))})):(await a(V+K(t)+`(${K(e)}${o} PRIMARY KEY${h(O(E,a=>n+K(a)+o))});`),Ea(w,t,Na([e,...E])))),await $([...!d&&l?O(L(m),async n=>{n!=e&&(await a(x+K(t)+"DROP"+K(n)),P(A,n))}):[]]),d)u(s)?await a(J+K(t)+W(t,p)):await $(ra(s,async(n,s)=>{u(n)?await a(J+K(t)+W(t,p)+`AND(${K(e)}=$1)`,[s]):b(E)||await r(a,t,e,ea(n),{[s]:c?O(la(n),c):la(n)},A)}));else if(b(E))T(w,t)&&await a(J+K(t)+W(t,p));else{const n=D(L(pa(w,t)),a=>a!=e),i={},o=[];ca(s??{},(a,t)=>{i[t]=O(n,t=>c?c(a?.[t]):a?.[t]),I(o,t)}),await r(a,t,e,n,i),await a(J+K(t)+W(t,p)+`AND${K(e)}NOT IN(${Q(o)})`,o)}},async t=>{let e;return await a("BEGIN"),await _(async()=>e=await t(),s),await a("END"),e}]},za=async(a,t,e,s,i)=>{const o=[1];await a("INSERT INTO"+K(t)+"("+((...a)=>h(O(a,K),n))(e,...s)+")VALUES"+h(ra(i,a=>"($"+o[0]+++","+Q(a,o)+")"),n)+"ON CONFLICT("+K(e)+")DO UPDATE SET"+h(O(s,a=>K(a)+"=excluded."+K(a)),n),ra(i,(a,t)=>[t,...O(a,a=>a??null)]).flat())},Ga=(a,t,e,n,s,i,o,[r,c,l],w,y,d,p,v,E)=>{const[A,m,N,$]=qa(t,w,y,s,v,E),g=Ya(a,()=>$(async()=>{return await A(),a=(await m(r,c))[M]?.[l]??"null",Ua(ka(a));var a}),a=>$(async()=>{var t;await A(),await N(r,c,{[M]:{[l]:(t=a()??null,ja(t,(a,t)=>u(t)?"":t))}},!0,!0)}),e,n,s,o,{[p]:()=>d,destroy:async()=>(await g.stopAutoPersisting(),i(),g)},0,d);return g},Ha=(a,t,e,n,s,i,o,[r,c,[l,w,y]],d,p,v,E,A,m,N,g)=>{const[_,f,h,O]=qa(t,d,p,s,A,m,N,g),b=(a,t)=>$(va(c,async([e,n,s,i,o],r)=>{t&&!(r in a)||await h(e,n,a[r],s,i,t,o)})),I=async(a,t)=>w?await h(y,F,{[M]:a},!0,!0,t):null,S=Ya(a,()=>O(async()=>{await _();const a=await(async()=>sa(D(await $(va(r,async([a,t,e],n)=>[a,await f(n,t,e)])),a=>!ua(a[1]))))(),t=await(async()=>l?(await f(y,F))[M]:{})();return ua(a)&&u(t)?void 0:[a,t]}),(a,t)=>O(async()=>{if(await _(),u(t)){const[t,e]=a();await b(t),await I(e)}else await b(t[0],!0),await I(t[1],!0)}),e,n,s,o,{[E]:()=>v,destroy:async()=>(await S.stopAutoPersisting(),i(),S)},0,v);return S},Va=(a,n,s,o,r,c,u,y,d,p,E="getDb",m)=>{let N,$,g;const f=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(s,c),[h,O,b,D]=(a=>{const e=(a=>ia(Pa,v(a)?{[ha]:a}:a??{}))(a),n=e[Da];if(e.mode==fa){const a=e[ha]??t;return[1,n,[a,e[Oa]??F,e[ba]??_a],Na(a)]}const{tables:{load:s={},save:o={}}={},values:r={}}=e,c=A(la(ia(Ma,r)),0,wa(Ma)),l=c[2],w=Na(l),u=Na(l),y=Fa(s,{[Sa]:null,[Ia]:F,[Ra]:i},Sa,a=>T(u,a),a=>$a(w,a)),d=Fa(o,{[Ta]:null,[Ia]:F,[Ca]:0,[La]:0,[Ra]:null},Ta,(a,t)=>T(u,t),(a,t)=>$a(w,t));var p;return p=(a,t)=>t[4]??=pa(y,t[0])?.[2]??i,R(d,(a,t)=>p(0,a)),[0,n,[y,d,c],w]})(n);return(h?Ga:Ha)(a,f,a=>{let t;const e=()=>t=setInterval(()=>_(async()=>{const[{d:t,s:e,c:n}]=await f(j+` ${z} d,${G} s,TOTAL_CHANGES() c FROM ${q}${z} JOIN ${q}${G}`);t==N&&e==$&&n==g||(w(N)||a(),N=t,$=e,g=n)}),1e3*O),n=()=>{N=$=g=null,l(t)},s=o(t=>{D.has(t)&&(n(),a(),e())});return e(),()=>{n(),r(s)}},a=>a(),u,y,d,b,L(D),async(a,t)=>await a(j+` t.name tn,c.name cn FROM ${H}list()t,${H}info(t.name)c ${k} t.schema='main'AND t.type IN('table','view')AND t.name IN(${Q(t)})ORDER BY t.name,c.name`,t),p,E,e,m,a=>(a=>!0===a)(a)?1:(a=>!1===a)(a)?0:a,void 0)},Ka=(a,t,e,n,s,i)=>Va(a,n,async(a,t=[])=>e.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}).map(a=>({...a})),a=>t.capi.sqlite3_update_hook(e,(t,e,n,s)=>a(s),0),()=>t.capi.sqlite3_update_hook(e,N,0),s,i,N,3,e);export{Ka as createSqliteWasmPersister};
1
+ const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",o=(a,t,e)=>a.replace(t,e),r=Promise,c=a=>(t,e,n)=>a(t)?n?.():e(t),l=clearInterval,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=c(w),p=c(u),E=t=>a(t)==s,A=a=>Array.isArray(a),m=a=>a.length,N=()=>{},$=async a=>r.all(a),g=a=>{throw Error(a)},f=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},_=(a,t)=>a.forEach(t),h=(a,t="")=>a.join(t),O=(a,t)=>a.map(t),b=a=>0==m(a),D=(a,t)=>a.filter(t),I=(a,...t)=>a.push(...t),S=a=>a.shift(),T=(a,t)=>a?.has(t)??!1,C=a=>u(a)||0==(a=>a?.size??0)(a),L=a=>[...a?.values()??[]],R=(a,t)=>a?.forEach(t),P=(a,t)=>a?.delete(t),M="_",F="_id",j="SELECT",k="WHERE",U="TABLE",x="ALTER "+U,B="FROM",J="DELETE "+B,Y=j+"*"+B,q="pragma_",z="data_version",G="schema_version",H="pragma_table_",V="CREATE "+U,K=a=>h(O(((a,t="",e)=>a.split(t,e))(a,"."),a=>`"${o(a,/"/g,'""')}"`),"."),Q=(a,t=[1])=>h(O(a,()=>"$"+t[0]++),n),W=(a,t=i)=>k+`(${o(t,"$tableName",K(a))})`,X=Object,Z=a=>X.getPrototypeOf(a),aa=X.entries,ta=a=>!w(a)&&v(Z(a),a=>a==X.prototype||w(Z(a)),()=>!0),ea=X.keys,na=X.freeze,sa=(a=[])=>X.fromEntries(a),ia=(...a)=>X.assign({},...a),oa=(a,t)=>(delete a[t],a),ra=(a,t)=>O(aa(a),([a,e])=>t(e,a)),ca=(a,t)=>sa(ra(a,(a,e)=>[e,t(a,e)])),la=a=>m(ea(a)),wa=a=>ta(a)&&0==la(a),ua=Map,ya=a=>new ua(a),da=(a,t)=>a?.get(t),va=(a,t)=>O([...a?.entries()??[]],([a,e])=>t(e,a)),pa=(a,t,e)=>u(e)?(P(a,t),a):a?.set(t,e),Ea=(a,t,e,n)=>(T(a,t)?n?.(da(a,t)):pa(a,t,e()),da(a,t)),Aa=(a,t,e,n,s=0)=>p((e?Ea:da)(a,t[s],s>m(t)-2?e:ya),i=>{if(s>m(t)-2)return n?.(i)&&pa(a,t[s]),i;const o=Aa(i,t,e,n,s+1);return C(i)&&pa(a,t[s]),o}),ma=a=>new Set(A(a)||u(a)?a:[a]),Na=(a,t)=>a?.add(t),$a="ColumnName",ga="store",fa="json",_a=ga+"TableName",ha=ga+"Id"+$a,Oa=ga+$a,ba="autoLoadIntervalSeconds",Da="rowId"+$a,Ia="tableId",Sa="tableName",Ta="deleteEmptyColumns",Ca="deleteEmptyTable",La="condition",Ra={mode:fa,[ba]:1},Pa={load:0,save:0,[Sa]:t+"_values"},Ma=a=>A(a)?a:void 0,Fa=a=>d(a)||A(a),ja=(a,t,e,n,s)=>{const i=ya();return ca(a,(a,o)=>{const r=(w=ia(t,E(a)?{[e]:a}:a),c=X.values(w),l=la(t),c.slice(0,l));var c,l,w;y(r[0])||n(o,r[0])||(s(o,r[0]),pa(i,o,r))}),i},ka=JSON.stringify,Ua=JSON.parse,xa=a=>""===a?void 0:A(a)?O(a,xa):ta(a)?ca(a,xa):a,Ba=/^\d+$/,Ja=ya(),Ya=ya(),qa=(a,t,n,s,i,o,r,c={},l=0,w=[])=>{let d,v,E,N=0,$=0,h=0;Ea(Ja,w,()=>0),Ea(Ya,w,()=>[]);const O=ya(),[b,D,T,L,M]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!e),([[a],[t]])=>!wa(a)||!wa(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!wa(a)||!wa(t),t.setContent]:g("Store type not supported by this Persister"))(r,a,l),[F,j,k]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?S(a):null)??e+t++,t=>{Ba.test(t)&&m(a)<1e3&&I(a,t)}]})(),s=ya();return[(n,i,o,r=[],c=()=>[])=>{a??=W;const l=t(1);return pa(s,l,[n,i,o,r,c]),Na(Aa(i,o??[e],ma),l),l},(t,n,...i)=>_(((a,t=[e])=>{const n=[],s=(a,e)=>e==m(t)?I(n,a):y(t[e])?R(a,a=>s(a,e+1)):_([t[e],null],t=>s(da(a,t),e+1));return s(a,0),n})(t,n),t=>R(t,t=>da(s,t)[0](a,...n??[],...i))),a=>p(da(s,a),([,t,i])=>(Aa(t,i??[e],void 0,t=>(P(t,a),C(t)?1:0)),pa(s,a),n(a),i)),t=>p(da(s,t),([t,,e=[],n,s])=>{const i=(...o)=>{const r=m(o);r==m(e)?t(a,...o,...s(o)):y(e[r])?_(n[r]?.(...o)??[],a=>i(...o,a)):i(...o,e[r])};i()})]})(),U=a=>{a!=N&&(N=a,j(O,void 0,N))},x=t=>{(b&&A(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},B=async()=>{V()&&a.__?.[0]?.()&&await z()},J=async a=>(2!=N&&(U(1),$++,await Q(async()=>{await f(async()=>{const e=await t();A(e)?x(e):a?M(a):g("Content is not an array: "+e)},()=>{a&&M(a)}),U(0),await B()})),W),Y=async a=>(q(),await J(a),await f(async()=>v=await s(async(a,t)=>{t||a?2!=N&&(U(1),$++,x(t??a),U(0),await B()):await J()}),o),W),q=async()=>(v&&(await f(()=>i(v),o),v=void 0),W),z=async a=>(1!=N&&(U(2),h++,await Q(async()=>{await f(()=>n(D,a),o),U(0)})),W),G=async()=>(H(),await z(),E=a.addDidFinishTransactionListener(()=>{const a=T();L(a)&&z(a)}),W),H=async()=>(E&&(a.delListener(E),E=void 0),W),V=()=>!u(E),K=async(a=!1)=>{const[t,e]=a?[H,q]:[q,H];return await t(),await e(),W},Q=async(...a)=>(I(da(Ya,w),...a),await(async()=>{if(!da(Ja,w)){for(pa(Ja,w,1);!u(d=S(da(Ya,w)));)await f(d,o);pa(Ja,w,0)}})(),W),W={load:J,startAutoLoad:Y,stopAutoLoad:q,isAutoLoading:()=>!u(v),save:z,startAutoSave:G,stopAutoSave:H,isAutoSaving:V,startAutoPersisting:async(a,t=!1)=>{const[e,n]=t?[G,Y]:[Y,G];return await e(a),await n(a),W},stopAutoPersisting:K,getStatus:()=>N,addStatusListener:a=>F(a,O),delListener:t=>(k(t),a),schedule:Q,getStore:()=>a,destroy:()=>(da(Ya,w).splice(0,void 0),K()),getStats:()=>({loads:$,saves:h}),...c};return na(W)},za=(a,t,e,s,o,r=Ga,c,l)=>{const w=ya();return[async()=>{w.clear(),O(await e(a,t),({tn:a,cn:t})=>Na(Ea(w,a,ma),t))},async(t,e,n,s)=>{const i=u(s)?void 0:ma(s);return((a,t)=>T(da(w,a),t))(t,e)?sa(D(O(await a(Y+K(t)+W(t,n)),a=>{const t=a[e],n=l?ca(oa(a,e),l):oa(a,e);return[t,u(i)?n:sa(D(ra(n,(a,t)=>[t,a]),([a])=>(a=>u(i)||T(i,a))(a)))]}),a=>!u(a[0])&&!wa(a[1]))):{}},async(t,e,s,l,y,d=!1,v=i,p)=>{const E=u(p)?void 0:ma(p),A=a=>u(E)||T(E,a),m=ma();ca(s??{},a=>O(D(ea(a??{}),A),a=>Na(m,a)));const N=L(m);if(u(E)&&!d&&y&&v==i&&b(N)&&T(w,t))return await a("DROP "+U+K(t)),void pa(w,t);const g=da(w,t),f=ma(D(L(g),a=>a==e||A(a)));if(b(N)||(T(w,t)?await $(O([e,...N],async(n,s)=>{P(f,n)||(await a(x+K(t)+"ADD"+K(n)+o),0==s&&await a("CREATE UNIQUE INDEX pk ON "+K(t)+`(${K(e)})`),Na(g,n))})):(await a(V+K(t)+`(${K(e)}${o} PRIMARY KEY${h(O(N,a=>n+K(a)+o))});`),pa(w,t,ma([e,...N])))),await $([...!d&&l?O(L(f),async n=>{n!=e&&(await a(x+K(t)+"DROP"+K(n)),P(g,n))}):[]]),d)u(s)?u(E)&&await a(J+K(t)+W(t,v)):await $(ra(s,async(n,s)=>{if(u(n))await a(J+K(t)+W(t,v)+`AND(${K(e)}=$1)`,[s]);else if(!b(N)){const i=D(ea(n),A);b(i)||await r(a,t,e,i,{[s]:O(i,a=>c?c(n[a]):n[a])},g)}}));else if(b(N))u(E)&&T(w,t)&&await a(J+K(t)+W(t,v));else{const n=D(L(da(w,t)),a=>a!=e&&A(a)),i={},o=[];ca(s??{},(a,t)=>{i[t]=O(n,t=>c?c(a?.[t]):a?.[t]),I(o,t)}),await r(a,t,e,n,i,g),await a(J+K(t)+W(t,v)+`AND${K(e)}NOT IN(${Q(o)})`,o)}},async t=>{let e;return await a("BEGIN"),await f(async()=>e=await t(),s),await a("END"),e}]},Ga=async(a,t,e,s,i)=>{const o=[1];await a("INSERT INTO"+K(t)+"("+((...a)=>h(O(a,K),n))(e,...s)+")VALUES"+h(ra(i,a=>"($"+o[0]+++","+Q(a,o)+")"),n)+"ON CONFLICT("+K(e)+")DO UPDATE SET"+h(O(s,a=>K(a)+"=excluded."+K(a)),n),ra(i,(a,t)=>[t,...O(a,a=>a??null)]).flat())},Ha=(a,t,e,n,s,i,o,[r,c,l],w,y,d,v,p,E)=>{const[A,m,N,$]=za(t,w,y,s,p,E),g=qa(a,()=>$(async()=>{return await A(),a=(await m(r,c))[M]?.[l]??"null",xa(Ua(a));var a}),a=>$(async()=>{var t;await A(),await N(r,c,{[M]:{[l]:(t=a()??null,ka(t,(a,t)=>u(t)?"":t))}},!0,!0)}),e,n,s,o,{[v]:()=>d,destroy:async()=>(await g.stopAutoPersisting(),i(),g)},0,d);return g},Va=(a,t,e,n,s,i,o,[r,c,[l,w,y,d,v]],p,E,A,m,N,g,f,_)=>{const[h,b,I,S]=za(t,p,E,s,N,g,f,_),T=(a,t)=>$(va(c,async([e,n,s,i,o],r)=>{t&&!(r in a)||await I(e,n,a[r],s,i,t,o)})),C=(a,t,e)=>sa(1==e?D(ra(a,(a,t)=>[t,a]),([a])=>{return e=a,t.includes(e);var e}):D(O(t,t=>[t,a[t]]),([,a])=>!u(a))),L=async(a,t)=>w?await I(y,F,{[M]:u(v)?a:C(a,v,t)},!0,!0,t,void 0,v):null,R=qa(a,()=>S(async()=>{await h();const a=await(async()=>sa(D(await $(va(r,async([a,t,e],n)=>[a,await b(n,t,e)])),a=>!wa(a[1]))))(),t=await(async()=>l?(await b(y,F,void 0,d))[M]:{})();return wa(a)&&u(t)?void 0:[a,t]}),(a,t)=>S(async()=>{if(await h(),u(t)){const[t,e]=a();await T(t),await L(e)}else await T(t[0],!0),await L(t[1],!0)}),e,n,s,o,{[m]:()=>A,destroy:async()=>(await R.stopAutoPersisting(),i(),R)},0,A);return R},Ka=(a,n,s,o,r,c,u,y,v,p,A="getDb",m)=>{let N,$,g;const _=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(s,c),[h,O,b,D]=(a=>{const e=(a=>ia(Ra,E(a)?{[_a]:a}:a??{}))(a),n=e[ba];if(e.mode==fa){const a=e[_a]??t;return[1,n,[a,e[ha]??F,e[Oa]??ga],ma(a)]}const{tables:{load:s={},save:o={}}={},values:r={}}=e,c=ia(Pa,r),{load:l,save:w}=c,u=[Fa(l),Fa(w),c[Sa],Ma(l),Ma(w)],y=u[2],d=ma(y),v=ma(y),p=ja(s,{[Ia]:null,[Da]:F,[La]:i},Ia,a=>T(v,a),a=>Na(d,a)),A=ja(o,{[Sa]:null,[Da]:F,[Ta]:0,[Ca]:0,[La]:null},Sa,(a,t)=>T(v,t),(a,t)=>Na(d,t));var m;return m=(a,t)=>t[4]??=da(p,t[0])?.[2]??i,R(A,(a,t)=>m(0,a)),[0,n,[p,A,u],d]})(n);return(h?Ha:Va)(a,_,a=>{let t;const e=()=>t=setInterval(()=>f(async()=>{const[{d:t,s:e,c:n}]=await _(j+` ${z} d,${G} s,TOTAL_CHANGES() c FROM ${q}${z} JOIN ${q}${G}`);t==N&&e==$&&n==g||(w(N)||a(),N=t,$=e,g=n)}),1e3*O),n=()=>{N=$=g=null,l(t)},s=o(t=>{D.has(t)&&(n(),a(),e())});return e(),()=>{n(),r(s)}},a=>a(),u,y,v,b,L(D),async(a,t)=>await a(j+` t.name tn,c.name cn FROM ${H}list()t,${H}info(t.name)c ${k} t.schema='main'AND t.type IN('table','view')AND t.name IN(${Q(t)})ORDER BY t.name,c.name`,t),p,A,e,m,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0)},Qa=(a,t,e,n,s,i)=>Ka(a,n,async(a,t=[])=>e.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}).map(a=>({...a})),a=>t.capi.sqlite3_update_hook(e,(t,e,n,s)=>a(s),0),()=>t.capi.sqlite3_update_hook(e,N,0),s,i,N,3,e);export{Qa as createSqliteWasmPersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",o=(a,t,e)=>a.replace(t,e),r=Promise,c=a=>(t,e,n)=>a(t)?n?.():e(t),l=clearInterval,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=c(w),p=c(u),v=t=>a(t)==s,E=a=>Array.isArray(a),A=(a,t,e)=>a.slice(t,e),m=a=>a.length,N=()=>{},$=async a=>r.all(a),g=a=>{throw Error(a)},_=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},f=(a,t)=>a.forEach(t),h=(a,t="")=>a.join(t),O=(a,t)=>a.map(t),b=a=>0==m(a),D=(a,t)=>a.filter(t),I=(a,...t)=>a.push(...t),S=a=>a.shift(),T=(a,t)=>a?.has(t)??!1,C=a=>u(a)||0==(a=>a?.size??0)(a),L=a=>[...a?.values()??[]],R=(a,t)=>a?.forEach(t),P=(a,t)=>a?.delete(t),M="_",F="_id",j="SELECT",k="WHERE",U="TABLE",x="ALTER "+U,B="FROM",J="DELETE "+B,Y=j+"*"+B,q="pragma_",z="data_version",G="schema_version",H="pragma_table_",V="CREATE "+U,K=a=>h(O(((a,t="",e)=>a.split(t,e))(a,"."),a=>`"${o(a,/"/g,'""')}"`),"."),Q=(a,t=[1])=>h(O(a,()=>"$"+t[0]++),n),W=(a,t=i)=>k+`(${o(t,"$tableName",K(a))})`,X=Object,Z=a=>X.getPrototypeOf(a),aa=X.entries,ta=a=>!w(a)&&d(Z(a),a=>a==X.prototype||w(Z(a)),()=>!0),ea=X.keys,na=X.freeze,sa=(a=[])=>X.fromEntries(a),ia=(...a)=>X.assign({},...a),oa=(a,t)=>(delete a[t],a),ra=(a,t)=>O(aa(a),([a,e])=>t(e,a)),ca=(a,t)=>sa(ra(a,(a,e)=>[e,t(a,e)])),la=a=>X.values(a),wa=a=>m(ea(a)),ua=a=>ta(a)&&0==wa(a),ya=Map,da=a=>new ya(a),pa=(a,t)=>a?.get(t),va=(a,t)=>O([...a?.entries()??[]],([a,e])=>t(e,a)),Ea=(a,t,e)=>u(e)?(P(a,t),a):a?.set(t,e),Aa=(a,t,e,n)=>(T(a,t)?n?.(pa(a,t)):Ea(a,t,e()),pa(a,t)),ma=(a,t,e,n,s=0)=>p((e?Aa:pa)(a,t[s],s>m(t)-2?e:da),i=>{if(s>m(t)-2)return n?.(i)&&Ea(a,t[s]),i;const o=ma(i,t,e,n,s+1);return C(i)&&Ea(a,t[s]),o}),Na=a=>new Set(E(a)||u(a)?a:[a]),$a=(a,t)=>a?.add(t),ga="ColumnName",_a="store",fa="json",ha=_a+"TableName",Oa=_a+"Id"+ga,ba=_a+ga,Da="autoLoadIntervalSeconds",Ia="rowId"+ga,Sa="tableId",Ta="tableName",Ca="deleteEmptyColumns",La="deleteEmptyTable",Ra="condition",Pa={mode:fa,[Da]:1},Ma={load:0,save:0,[Ta]:t+"_values"},Fa=(a,t,e,n,s)=>{const i=da();return ca(a,(a,o)=>{const r=A(la(ia(t,v(a)?{[e]:a}:a)),0,wa(t));y(r[0])||n(o,r[0])||(s(o,r[0]),Ea(i,o,r))}),i},ja=JSON.stringify,ka=JSON.parse,Ua=a=>""===a?void 0:E(a)?O(a,Ua):ta(a)?ca(a,Ua):a,xa=/^\d+$/,Ba=da(),Ja=da(),Ya=(a,t,n,s,i,o,r,c={},l=0,w=[])=>{let d,v,A,N=0,$=0,h=0;Aa(Ba,w,()=>0),Aa(Ja,w,()=>[]);const O=da(),[b,D,T,L,M]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!e),([[a],[t]])=>!ua(a)||!ua(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!ua(a)||!ua(t),t.setContent]:g("Store type not supported by this Persister"))(r,a,l),[F,j,k]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?S(a):null)??e+t++,t=>{xa.test(t)&&m(a)<1e3&&I(a,t)}]})(),s=da();return[(n,i,o,r=[],c=()=>[])=>{a??=W;const l=t(1);return Ea(s,l,[n,i,o,r,c]),$a(ma(i,o??[e],Na),l),l},(t,n,...i)=>f(((a,t=[e])=>{const n=[],s=(a,e)=>e==m(t)?I(n,a):y(t[e])?R(a,a=>s(a,e+1)):f([t[e],null],t=>s(pa(a,t),e+1));return s(a,0),n})(t,n),t=>R(t,t=>pa(s,t)[0](a,...n??[],...i))),a=>p(pa(s,a),([,t,i])=>(ma(t,i??[e],void 0,t=>(P(t,a),C(t)?1:0)),Ea(s,a),n(a),i)),t=>p(pa(s,t),([t,,e=[],n,s])=>{const i=(...o)=>{const r=m(o);r==m(e)?t(a,...o,...s(o)):y(e[r])?f(n[r]?.(...o)??[],a=>i(...o,a)):i(...o,e[r])};i()})]})(),U=a=>{a!=N&&(N=a,j(O,void 0,N))},x=t=>{(b&&E(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},B=async()=>{V()&&a.__?.[0]?.()&&await z()},J=async a=>(2!=N&&(U(1),$++,await Q(async()=>{await _(async()=>{const e=await t();E(e)?x(e):a?M(a):g("Content is not an array: "+e)},()=>{a&&M(a)}),U(0),await B()})),W),Y=async a=>(q(),await J(a),await _(async()=>v=await s(async(a,t)=>{t||a?2!=N&&(U(1),$++,x(t??a),U(0),await B()):await J()}),o),W),q=async()=>(v&&(await _(()=>i(v),o),v=void 0),W),z=async a=>(1!=N&&(U(2),h++,await Q(async()=>{await _(()=>n(D,a),o),U(0)})),W),G=async()=>(H(),await z(),A=a.addDidFinishTransactionListener(()=>{const a=T();L(a)&&z(a)}),W),H=async()=>(A&&(a.delListener(A),A=void 0),W),V=()=>!u(A),K=async(a=!1)=>{const[t,e]=a?[H,q]:[q,H];return await t(),await e(),W},Q=async(...a)=>(I(pa(Ja,w),...a),await(async()=>{if(!pa(Ba,w)){for(Ea(Ba,w,1);!u(d=S(pa(Ja,w)));)await _(d,o);Ea(Ba,w,0)}})(),W),W={load:J,startAutoLoad:Y,stopAutoLoad:q,isAutoLoading:()=>!u(v),save:z,startAutoSave:G,stopAutoSave:H,isAutoSaving:V,startAutoPersisting:async(a,t=!1)=>{const[e,n]=t?[G,Y]:[Y,G];return await e(a),await n(a),W},stopAutoPersisting:K,getStatus:()=>N,addStatusListener:a=>F(a,O),delListener:t=>(k(t),a),schedule:Q,getStore:()=>a,destroy:()=>(pa(Ja,w).splice(0,void 0),K()),getStats:()=>({loads:$,saves:h}),...c};return na(W)},qa=(a,t,e,s,o,r=za,c,l)=>{const w=da();return[async()=>{w.clear(),O(await e(a,t),({tn:a,cn:t})=>$a(Aa(w,a,Na),t))},async(t,e,n)=>((a,t)=>T(pa(w,a),t))(t,e)?sa(D(O(await a(Y+K(t)+W(t,n)),a=>[a[e],l?ca(oa(a,e),l):oa(a,e)]),a=>!u(a[0])&&!ua(a[1]))):{},async(t,e,s,l,y,d=!1,p=i)=>{const v=Na();ca(s??{},a=>O(ea(a??{}),a=>$a(v,a)));const E=L(v);if(!d&&y&&p==i&&b(E)&&T(w,t))return await a("DROP "+U+K(t)),void Ea(w,t);const A=pa(w,t),m=Na(L(A));if(b(E)||(T(w,t)?await $(O([e,...E],async(n,s)=>{P(m,n)||(await a(x+K(t)+"ADD"+K(n)+o),0==s&&await a("CREATE UNIQUE INDEX pk ON "+K(t)+`(${K(e)})`),$a(A,n))})):(await a(V+K(t)+`(${K(e)}${o} PRIMARY KEY${h(O(E,a=>n+K(a)+o))});`),Ea(w,t,Na([e,...E])))),await $([...!d&&l?O(L(m),async n=>{n!=e&&(await a(x+K(t)+"DROP"+K(n)),P(A,n))}):[]]),d)u(s)?await a(J+K(t)+W(t,p)):await $(ra(s,async(n,s)=>{u(n)?await a(J+K(t)+W(t,p)+`AND(${K(e)}=$1)`,[s]):b(E)||await r(a,t,e,ea(n),{[s]:c?O(la(n),c):la(n)},A)}));else if(b(E))T(w,t)&&await a(J+K(t)+W(t,p));else{const n=D(L(pa(w,t)),a=>a!=e),i={},o=[];ca(s??{},(a,t)=>{i[t]=O(n,t=>c?c(a?.[t]):a?.[t]),I(o,t)}),await r(a,t,e,n,i),await a(J+K(t)+W(t,p)+`AND${K(e)}NOT IN(${Q(o)})`,o)}},async t=>{let e;return await a("BEGIN"),await _(async()=>e=await t(),s),await a("END"),e}]},za=async(a,t,e,s,i)=>{const o=[1];await a("INSERT INTO"+K(t)+"("+((...a)=>h(O(a,K),n))(e,...s)+")VALUES"+h(ra(i,a=>"($"+o[0]+++","+Q(a,o)+")"),n)+"ON CONFLICT("+K(e)+")DO UPDATE SET"+h(O(s,a=>K(a)+"=excluded."+K(a)),n),ra(i,(a,t)=>[t,...O(a,a=>a??null)]).flat())},Ga=(a,t,e,n,s,i,o,[r,c,l],w,y,d,p,v,E)=>{const[A,m,N,$]=qa(t,w,y,s,v,E),g=Ya(a,()=>$(async()=>{return await A(),a=(await m(r,c))[M]?.[l]??"null",Ua(ka(a));var a}),a=>$(async()=>{var t;await A(),await N(r,c,{[M]:{[l]:(t=a()??null,ja(t,(a,t)=>u(t)?"":t))}},!0,!0)}),e,n,s,o,{[p]:()=>d,destroy:async()=>(await g.stopAutoPersisting(),i(),g)},0,d);return g},Ha=(a,t,e,n,s,i,o,[r,c,[l,w,y]],d,p,v,E,A,m,N,g)=>{const[_,f,h,O]=qa(t,d,p,s,A,m,N,g),b=(a,t)=>$(va(c,async([e,n,s,i,o],r)=>{t&&!(r in a)||await h(e,n,a[r],s,i,t,o)})),I=async(a,t)=>w?await h(y,F,{[M]:a},!0,!0,t):null,S=Ya(a,()=>O(async()=>{await _();const a=await(async()=>sa(D(await $(va(r,async([a,t,e],n)=>[a,await f(n,t,e)])),a=>!ua(a[1]))))(),t=await(async()=>l?(await f(y,F))[M]:{})();return ua(a)&&u(t)?void 0:[a,t]}),(a,t)=>O(async()=>{if(await _(),u(t)){const[t,e]=a();await b(t),await I(e)}else await b(t[0],!0),await I(t[1],!0)}),e,n,s,o,{[E]:()=>v,destroy:async()=>(await S.stopAutoPersisting(),i(),S)},0,v);return S},Va=(a,n,s,o,r,c,u,y,d,p,E="getDb",m)=>{let N,$,g;const f=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(s,c),[h,O,b,D]=(a=>{const e=(a=>ia(Pa,v(a)?{[ha]:a}:a??{}))(a),n=e[Da];if(e.mode==fa){const a=e[ha]??t;return[1,n,[a,e[Oa]??F,e[ba]??_a],Na(a)]}const{tables:{load:s={},save:o={}}={},values:r={}}=e,c=A(la(ia(Ma,r)),0,wa(Ma)),l=c[2],w=Na(l),u=Na(l),y=Fa(s,{[Sa]:null,[Ia]:F,[Ra]:i},Sa,a=>T(u,a),a=>$a(w,a)),d=Fa(o,{[Ta]:null,[Ia]:F,[Ca]:0,[La]:0,[Ra]:null},Ta,(a,t)=>T(u,t),(a,t)=>$a(w,t));var p;return p=(a,t)=>t[4]??=pa(y,t[0])?.[2]??i,R(d,(a,t)=>p(0,a)),[0,n,[y,d,c],w]})(n);return(h?Ga:Ha)(a,f,a=>{let t;const e=()=>t=setInterval(()=>_(async()=>{const[{d:t,s:e,c:n}]=await f(j+` ${z} d,${G} s,TOTAL_CHANGES() c FROM ${q}${z} JOIN ${q}${G}`);t==N&&e==$&&n==g||(w(N)||a(),N=t,$=e,g=n)}),1e3*O),n=()=>{N=$=g=null,l(t)},s=o(t=>{D.has(t)&&(n(),a(),e())});return e(),()=>{n(),r(s)}},a=>a(),u,y,d,b,L(D),async(a,t)=>await a(j+` t.name tn,c.name cn FROM ${H}list()t,${H}info(t.name)c ${k} t.schema='main'AND t.type IN('table','view')AND t.name IN(${Q(t)})ORDER BY t.name,c.name`,t),p,E,e,m,a=>(a=>!0===a)(a)?1:(a=>!1===a)(a)?0:a,void 0)},Ka=(a,t,e,n,s,i)=>Va(a,n,async(a,t=[])=>e.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}).map(a=>({...a})),a=>t.capi.sqlite3_update_hook(e,(t,e,n,s)=>a(s),0),()=>t.capi.sqlite3_update_hook(e,N,0),s,i,N,3,e);export{Ka as createSqliteWasmPersister};
1
+ const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",o=(a,t,e)=>a.replace(t,e),r=Promise,c=a=>(t,e,n)=>a(t)?n?.():e(t),l=clearInterval,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=c(w),p=c(u),E=t=>a(t)==s,A=a=>Array.isArray(a),m=a=>a.length,N=()=>{},$=async a=>r.all(a),g=a=>{throw Error(a)},f=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},_=(a,t)=>a.forEach(t),h=(a,t="")=>a.join(t),O=(a,t)=>a.map(t),b=a=>0==m(a),D=(a,t)=>a.filter(t),I=(a,...t)=>a.push(...t),S=a=>a.shift(),T=(a,t)=>a?.has(t)??!1,C=a=>u(a)||0==(a=>a?.size??0)(a),L=a=>[...a?.values()??[]],R=(a,t)=>a?.forEach(t),P=(a,t)=>a?.delete(t),M="_",F="_id",j="SELECT",k="WHERE",U="TABLE",x="ALTER "+U,B="FROM",J="DELETE "+B,Y=j+"*"+B,q="pragma_",z="data_version",G="schema_version",H="pragma_table_",V="CREATE "+U,K=a=>h(O(((a,t="",e)=>a.split(t,e))(a,"."),a=>`"${o(a,/"/g,'""')}"`),"."),Q=(a,t=[1])=>h(O(a,()=>"$"+t[0]++),n),W=(a,t=i)=>k+`(${o(t,"$tableName",K(a))})`,X=Object,Z=a=>X.getPrototypeOf(a),aa=X.entries,ta=a=>!w(a)&&v(Z(a),a=>a==X.prototype||w(Z(a)),()=>!0),ea=X.keys,na=X.freeze,sa=(a=[])=>X.fromEntries(a),ia=(...a)=>X.assign({},...a),oa=(a,t)=>(delete a[t],a),ra=(a,t)=>O(aa(a),([a,e])=>t(e,a)),ca=(a,t)=>sa(ra(a,(a,e)=>[e,t(a,e)])),la=a=>m(ea(a)),wa=a=>ta(a)&&0==la(a),ua=Map,ya=a=>new ua(a),da=(a,t)=>a?.get(t),va=(a,t)=>O([...a?.entries()??[]],([a,e])=>t(e,a)),pa=(a,t,e)=>u(e)?(P(a,t),a):a?.set(t,e),Ea=(a,t,e,n)=>(T(a,t)?n?.(da(a,t)):pa(a,t,e()),da(a,t)),Aa=(a,t,e,n,s=0)=>p((e?Ea:da)(a,t[s],s>m(t)-2?e:ya),i=>{if(s>m(t)-2)return n?.(i)&&pa(a,t[s]),i;const o=Aa(i,t,e,n,s+1);return C(i)&&pa(a,t[s]),o}),ma=a=>new Set(A(a)||u(a)?a:[a]),Na=(a,t)=>a?.add(t),$a="ColumnName",ga="store",fa="json",_a=ga+"TableName",ha=ga+"Id"+$a,Oa=ga+$a,ba="autoLoadIntervalSeconds",Da="rowId"+$a,Ia="tableId",Sa="tableName",Ta="deleteEmptyColumns",Ca="deleteEmptyTable",La="condition",Ra={mode:fa,[ba]:1},Pa={load:0,save:0,[Sa]:t+"_values"},Ma=a=>A(a)?a:void 0,Fa=a=>d(a)||A(a),ja=(a,t,e,n,s)=>{const i=ya();return ca(a,(a,o)=>{const r=(w=ia(t,E(a)?{[e]:a}:a),c=X.values(w),l=la(t),c.slice(0,l));var c,l,w;y(r[0])||n(o,r[0])||(s(o,r[0]),pa(i,o,r))}),i},ka=JSON.stringify,Ua=JSON.parse,xa=a=>""===a?void 0:A(a)?O(a,xa):ta(a)?ca(a,xa):a,Ba=/^\d+$/,Ja=ya(),Ya=ya(),qa=(a,t,n,s,i,o,r,c={},l=0,w=[])=>{let d,v,E,N=0,$=0,h=0;Ea(Ja,w,()=>0),Ea(Ya,w,()=>[]);const O=ya(),[b,D,T,L,M]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!e),([[a],[t]])=>!wa(a)||!wa(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!wa(a)||!wa(t),t.setContent]:g("Store type not supported by this Persister"))(r,a,l),[F,j,k]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?S(a):null)??e+t++,t=>{Ba.test(t)&&m(a)<1e3&&I(a,t)}]})(),s=ya();return[(n,i,o,r=[],c=()=>[])=>{a??=W;const l=t(1);return pa(s,l,[n,i,o,r,c]),Na(Aa(i,o??[e],ma),l),l},(t,n,...i)=>_(((a,t=[e])=>{const n=[],s=(a,e)=>e==m(t)?I(n,a):y(t[e])?R(a,a=>s(a,e+1)):_([t[e],null],t=>s(da(a,t),e+1));return s(a,0),n})(t,n),t=>R(t,t=>da(s,t)[0](a,...n??[],...i))),a=>p(da(s,a),([,t,i])=>(Aa(t,i??[e],void 0,t=>(P(t,a),C(t)?1:0)),pa(s,a),n(a),i)),t=>p(da(s,t),([t,,e=[],n,s])=>{const i=(...o)=>{const r=m(o);r==m(e)?t(a,...o,...s(o)):y(e[r])?_(n[r]?.(...o)??[],a=>i(...o,a)):i(...o,e[r])};i()})]})(),U=a=>{a!=N&&(N=a,j(O,void 0,N))},x=t=>{(b&&A(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},B=async()=>{V()&&a.__?.[0]?.()&&await z()},J=async a=>(2!=N&&(U(1),$++,await Q(async()=>{await f(async()=>{const e=await t();A(e)?x(e):a?M(a):g("Content is not an array: "+e)},()=>{a&&M(a)}),U(0),await B()})),W),Y=async a=>(q(),await J(a),await f(async()=>v=await s(async(a,t)=>{t||a?2!=N&&(U(1),$++,x(t??a),U(0),await B()):await J()}),o),W),q=async()=>(v&&(await f(()=>i(v),o),v=void 0),W),z=async a=>(1!=N&&(U(2),h++,await Q(async()=>{await f(()=>n(D,a),o),U(0)})),W),G=async()=>(H(),await z(),E=a.addDidFinishTransactionListener(()=>{const a=T();L(a)&&z(a)}),W),H=async()=>(E&&(a.delListener(E),E=void 0),W),V=()=>!u(E),K=async(a=!1)=>{const[t,e]=a?[H,q]:[q,H];return await t(),await e(),W},Q=async(...a)=>(I(da(Ya,w),...a),await(async()=>{if(!da(Ja,w)){for(pa(Ja,w,1);!u(d=S(da(Ya,w)));)await f(d,o);pa(Ja,w,0)}})(),W),W={load:J,startAutoLoad:Y,stopAutoLoad:q,isAutoLoading:()=>!u(v),save:z,startAutoSave:G,stopAutoSave:H,isAutoSaving:V,startAutoPersisting:async(a,t=!1)=>{const[e,n]=t?[G,Y]:[Y,G];return await e(a),await n(a),W},stopAutoPersisting:K,getStatus:()=>N,addStatusListener:a=>F(a,O),delListener:t=>(k(t),a),schedule:Q,getStore:()=>a,destroy:()=>(da(Ya,w).splice(0,void 0),K()),getStats:()=>({loads:$,saves:h}),...c};return na(W)},za=(a,t,e,s,o,r=Ga,c,l)=>{const w=ya();return[async()=>{w.clear(),O(await e(a,t),({tn:a,cn:t})=>Na(Ea(w,a,ma),t))},async(t,e,n,s)=>{const i=u(s)?void 0:ma(s);return((a,t)=>T(da(w,a),t))(t,e)?sa(D(O(await a(Y+K(t)+W(t,n)),a=>{const t=a[e],n=l?ca(oa(a,e),l):oa(a,e);return[t,u(i)?n:sa(D(ra(n,(a,t)=>[t,a]),([a])=>(a=>u(i)||T(i,a))(a)))]}),a=>!u(a[0])&&!wa(a[1]))):{}},async(t,e,s,l,y,d=!1,v=i,p)=>{const E=u(p)?void 0:ma(p),A=a=>u(E)||T(E,a),m=ma();ca(s??{},a=>O(D(ea(a??{}),A),a=>Na(m,a)));const N=L(m);if(u(E)&&!d&&y&&v==i&&b(N)&&T(w,t))return await a("DROP "+U+K(t)),void pa(w,t);const g=da(w,t),f=ma(D(L(g),a=>a==e||A(a)));if(b(N)||(T(w,t)?await $(O([e,...N],async(n,s)=>{P(f,n)||(await a(x+K(t)+"ADD"+K(n)+o),0==s&&await a("CREATE UNIQUE INDEX pk ON "+K(t)+`(${K(e)})`),Na(g,n))})):(await a(V+K(t)+`(${K(e)}${o} PRIMARY KEY${h(O(N,a=>n+K(a)+o))});`),pa(w,t,ma([e,...N])))),await $([...!d&&l?O(L(f),async n=>{n!=e&&(await a(x+K(t)+"DROP"+K(n)),P(g,n))}):[]]),d)u(s)?u(E)&&await a(J+K(t)+W(t,v)):await $(ra(s,async(n,s)=>{if(u(n))await a(J+K(t)+W(t,v)+`AND(${K(e)}=$1)`,[s]);else if(!b(N)){const i=D(ea(n),A);b(i)||await r(a,t,e,i,{[s]:O(i,a=>c?c(n[a]):n[a])},g)}}));else if(b(N))u(E)&&T(w,t)&&await a(J+K(t)+W(t,v));else{const n=D(L(da(w,t)),a=>a!=e&&A(a)),i={},o=[];ca(s??{},(a,t)=>{i[t]=O(n,t=>c?c(a?.[t]):a?.[t]),I(o,t)}),await r(a,t,e,n,i,g),await a(J+K(t)+W(t,v)+`AND${K(e)}NOT IN(${Q(o)})`,o)}},async t=>{let e;return await a("BEGIN"),await f(async()=>e=await t(),s),await a("END"),e}]},Ga=async(a,t,e,s,i)=>{const o=[1];await a("INSERT INTO"+K(t)+"("+((...a)=>h(O(a,K),n))(e,...s)+")VALUES"+h(ra(i,a=>"($"+o[0]+++","+Q(a,o)+")"),n)+"ON CONFLICT("+K(e)+")DO UPDATE SET"+h(O(s,a=>K(a)+"=excluded."+K(a)),n),ra(i,(a,t)=>[t,...O(a,a=>a??null)]).flat())},Ha=(a,t,e,n,s,i,o,[r,c,l],w,y,d,v,p,E)=>{const[A,m,N,$]=za(t,w,y,s,p,E),g=qa(a,()=>$(async()=>{return await A(),a=(await m(r,c))[M]?.[l]??"null",xa(Ua(a));var a}),a=>$(async()=>{var t;await A(),await N(r,c,{[M]:{[l]:(t=a()??null,ka(t,(a,t)=>u(t)?"":t))}},!0,!0)}),e,n,s,o,{[v]:()=>d,destroy:async()=>(await g.stopAutoPersisting(),i(),g)},0,d);return g},Va=(a,t,e,n,s,i,o,[r,c,[l,w,y,d,v]],p,E,A,m,N,g,f,_)=>{const[h,b,I,S]=za(t,p,E,s,N,g,f,_),T=(a,t)=>$(va(c,async([e,n,s,i,o],r)=>{t&&!(r in a)||await I(e,n,a[r],s,i,t,o)})),C=(a,t,e)=>sa(1==e?D(ra(a,(a,t)=>[t,a]),([a])=>{return e=a,t.includes(e);var e}):D(O(t,t=>[t,a[t]]),([,a])=>!u(a))),L=async(a,t)=>w?await I(y,F,{[M]:u(v)?a:C(a,v,t)},!0,!0,t,void 0,v):null,R=qa(a,()=>S(async()=>{await h();const a=await(async()=>sa(D(await $(va(r,async([a,t,e],n)=>[a,await b(n,t,e)])),a=>!wa(a[1]))))(),t=await(async()=>l?(await b(y,F,void 0,d))[M]:{})();return wa(a)&&u(t)?void 0:[a,t]}),(a,t)=>S(async()=>{if(await h(),u(t)){const[t,e]=a();await T(t),await L(e)}else await T(t[0],!0),await L(t[1],!0)}),e,n,s,o,{[m]:()=>A,destroy:async()=>(await R.stopAutoPersisting(),i(),R)},0,A);return R},Ka=(a,n,s,o,r,c,u,y,v,p,A="getDb",m)=>{let N,$,g;const _=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(s,c),[h,O,b,D]=(a=>{const e=(a=>ia(Ra,E(a)?{[_a]:a}:a??{}))(a),n=e[ba];if(e.mode==fa){const a=e[_a]??t;return[1,n,[a,e[ha]??F,e[Oa]??ga],ma(a)]}const{tables:{load:s={},save:o={}}={},values:r={}}=e,c=ia(Pa,r),{load:l,save:w}=c,u=[Fa(l),Fa(w),c[Sa],Ma(l),Ma(w)],y=u[2],d=ma(y),v=ma(y),p=ja(s,{[Ia]:null,[Da]:F,[La]:i},Ia,a=>T(v,a),a=>Na(d,a)),A=ja(o,{[Sa]:null,[Da]:F,[Ta]:0,[Ca]:0,[La]:null},Sa,(a,t)=>T(v,t),(a,t)=>Na(d,t));var m;return m=(a,t)=>t[4]??=da(p,t[0])?.[2]??i,R(A,(a,t)=>m(0,a)),[0,n,[p,A,u],d]})(n);return(h?Ha:Va)(a,_,a=>{let t;const e=()=>t=setInterval(()=>f(async()=>{const[{d:t,s:e,c:n}]=await _(j+` ${z} d,${G} s,TOTAL_CHANGES() c FROM ${q}${z} JOIN ${q}${G}`);t==N&&e==$&&n==g||(w(N)||a(),N=t,$=e,g=n)}),1e3*O),n=()=>{N=$=g=null,l(t)},s=o(t=>{D.has(t)&&(n(),a(),e())});return e(),()=>{n(),r(s)}},a=>a(),u,y,v,b,L(D),async(a,t)=>await a(j+` t.name tn,c.name cn FROM ${H}list()t,${H}info(t.name)c ${k} t.schema='main'AND t.type IN('table','view')AND t.name IN(${Q(t)})ORDER BY t.name,c.name`,t),p,A,e,m,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0)},Qa=(a,t,e,n,s,i)=>Ka(a,n,async(a,t=[])=>e.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}).map(a=>({...a})),a=>t.capi.sqlite3_update_hook(e,(t,e,n,s)=>a(s),0),()=>t.capi.sqlite3_update_hook(e,N,0),s,i,N,3,e);export{Qa as createSqliteWasmPersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",r=(a,t,e)=>a.replace(t,e),o=Promise,c=a=>(t,e,n)=>a(t)?n?.():e(t),l=clearInterval,w=a=>null==a,y=a=>void 0===a,u=a=>null===a,d=c(w),v=c(y),p=t=>a(t)==s,E=a=>Array.isArray(a),A=(a,t,e)=>a.slice(t,e),N=a=>a.length,g=()=>{},m=async a=>o.all(a),$=a=>{throw Error(a)},f=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},O=(a,t)=>a.forEach(t),h=(a,t="")=>a.join(t),D=(a,t)=>a.map(t),I=a=>0==N(a),S=(a,t)=>a.filter(t),T=(a,...t)=>a.push(...t),_=a=>a.shift(),b=(a,t)=>a?.has(t)??!1,C=a=>y(a)||0==(a=>a?.size??0)(a),L=a=>[...a?.values()??[]],R=(a,t)=>a?.forEach(t),P=(a,t)=>a?.delete(t),M="_",F="_id",U="SELECT",j="WHERE",B="TABLE",J="ALTER "+B,Y="FROM",k="DELETE "+Y,x=U+"*"+Y,z="pragma_",G="data_version",H="schema_version",K="pragma_table_",Q="CREATE "+B,V=a=>h(D(((a,t="",e)=>a.split(t,e))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),W=(a,t=[1])=>h(D(a,()=>"$"+t[0]++),n),X=(a,t=i)=>j+`(${r(t,"$tableName",V(a))})`,q=Object,Z=a=>q.getPrototypeOf(a),aa=q.entries,ta=a=>!w(a)&&d(Z(a),a=>a==q.prototype||w(Z(a)),()=>!0),ea=q.keys,na=q.freeze,sa=(a=[])=>q.fromEntries(a),ia=(...a)=>q.assign({},...a),ra=(a,t)=>(delete a[t],a),oa=(a,t)=>D(aa(a),([a,e])=>t(e,a)),ca=(a,t)=>sa(oa(a,(a,e)=>[e,t(a,e)])),la=a=>q.values(a),wa=a=>N(ea(a)),ya=a=>ta(a)&&0==wa(a),ua=Map,da=a=>new ua(a),va=(a,t)=>a?.get(t),pa=(a,t)=>D([...a?.entries()??[]],([a,e])=>t(e,a)),Ea=(a,t,e)=>y(e)?(P(a,t),a):a?.set(t,e),Aa=(a,t,e,n)=>(b(a,t)?n?.(va(a,t)):Ea(a,t,e()),va(a,t)),Na=(a,t,e,n,s=0)=>v((e?Aa:va)(a,t[s],s>N(t)-2?e:da),i=>{if(s>N(t)-2)return n?.(i)&&Ea(a,t[s]),i;const r=Na(i,t,e,n,s+1);return C(i)&&Ea(a,t[s]),r}),ga=a=>new Set(E(a)||y(a)?a:[a]),ma=(a,t)=>a?.add(t),$a="ColumnName",fa="store",Oa="json",ha=fa+"TableName",Da=fa+"Id"+$a,Ia=fa+$a,Sa="autoLoadIntervalSeconds",Ta="rowId"+$a,_a="tableId",ba="tableName",Ca="deleteEmptyColumns",La="deleteEmptyTable",Ra="condition",Pa={mode:Oa,[Sa]:1},Ma={load:0,save:0,[ba]:t+"_values"},Fa=(a,t,e,n,s)=>{const i=da();return ca(a,(a,r)=>{const o=A(la(ia(t,p(a)?{[e]:a}:a)),0,wa(t));u(o[0])||n(r,o[0])||(s(r,o[0]),Ea(i,r,o))}),i},Ua=JSON.stringify,ja=JSON.parse,Ba=a=>""===a?void 0:E(a)?D(a,Ba):ta(a)?ca(a,Ba):a,Ja=/^\d+$/,Ya=da(),ka=da(),xa=(a,t,n,s,i,r,o,c={},l=0,w=[])=>{let d,p,A,g=0,m=0,h=0;Aa(Ya,w,()=>0),Aa(ka,w,()=>[]);const D=da(),[I,S,b,L,M]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!e),([[a],[t]])=>!ya(a)||!ya(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!ya(a)||!ya(t),t.setContent]:$("Store type not supported by this Persister"))(o,a,l),[F,U,j]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?_(a):null)??e+t++,t=>{Ja.test(t)&&N(a)<1e3&&T(a,t)}]})(),s=da();return[(n,i,r,o=[],c=()=>[])=>{a??=X;const l=t(1);return Ea(s,l,[n,i,r,o,c]),ma(Na(i,r??[e],ga),l),l},(t,n,...i)=>O(((a,t=[e])=>{const n=[],s=(a,e)=>e==N(t)?T(n,a):u(t[e])?R(a,a=>s(a,e+1)):O([t[e],null],t=>s(va(a,t),e+1));return s(a,0),n})(t,n),t=>R(t,t=>va(s,t)[0](a,...n??[],...i))),a=>v(va(s,a),([,t,i])=>(Na(t,i??[e],void 0,t=>(P(t,a),C(t)?1:0)),Ea(s,a),n(a),i)),t=>v(va(s,t),([t,,e=[],n,s])=>{const i=(...r)=>{const o=N(r);o==N(e)?t(a,...r,...s(r)):u(e[o])?O(n[o]?.(...r)??[],a=>i(...r,a)):i(...r,e[o])};i()})]})(),B=a=>{a!=g&&(g=a,U(D,void 0,g))},J=t=>{(I&&E(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},Y=async()=>{Q()&&a.__?.[0]?.()&&await G()},k=async a=>(2!=g&&(B(1),m++,await W(async()=>{await f(async()=>{const e=await t();E(e)?J(e):a?M(a):$("Content is not an array: "+e)},()=>{a&&M(a)}),B(0),await Y()})),X),x=async a=>(z(),await k(a),await f(async()=>p=await s(async(a,t)=>{t||a?2!=g&&(B(1),m++,J(t??a),B(0),await Y()):await k()}),r),X),z=async()=>(p&&(await f(()=>i(p),r),p=void 0),X),G=async a=>(1!=g&&(B(2),h++,await W(async()=>{await f(()=>n(S,a),r),B(0)})),X),H=async()=>(K(),await G(),A=a.addDidFinishTransactionListener(()=>{const a=b();L(a)&&G(a)}),X),K=async()=>(A&&(a.delListener(A),A=void 0),X),Q=()=>!y(A),V=async(a=!1)=>{const[t,e]=a?[K,z]:[z,K];return await t(),await e(),X},W=async(...a)=>(T(va(ka,w),...a),await(async()=>{if(!va(Ya,w)){for(Ea(Ya,w,1);!y(d=_(va(ka,w)));)await f(d,r);Ea(Ya,w,0)}})(),X),X={load:k,startAutoLoad:x,stopAutoLoad:z,isAutoLoading:()=>!y(p),save:G,startAutoSave:H,stopAutoSave:K,isAutoSaving:Q,startAutoPersisting:async(a,t=!1)=>{const[e,n]=t?[H,x]:[x,H];return await e(a),await n(a),X},stopAutoPersisting:V,getStatus:()=>g,addStatusListener:a=>F(a,D),delListener:t=>(j(t),a),schedule:W,getStore:()=>a,destroy:()=>(va(ka,w).splice(0,void 0),V()),getStats:()=>({loads:m,saves:h}),...c};return na(X)},za=(a,t,e,s,r,o=Ga,c,l)=>{const w=da();return[async()=>{w.clear(),D(await e(a,t),({tn:a,cn:t})=>ma(Aa(w,a,ga),t))},async(t,e,n)=>((a,t)=>b(va(w,a),t))(t,e)?sa(S(D(await a(x+V(t)+X(t,n)),a=>[a[e],l?ca(ra(a,e),l):ra(a,e)]),a=>!y(a[0])&&!ya(a[1]))):{},async(t,e,s,l,u,d=!1,v=i)=>{const p=ga();ca(s??{},a=>D(ea(a??{}),a=>ma(p,a)));const E=L(p);if(!d&&u&&v==i&&I(E)&&b(w,t))return await a("DROP "+B+V(t)),void Ea(w,t);const A=va(w,t),N=ga(L(A));if(I(E)||(b(w,t)?await m(D([e,...E],async(n,s)=>{P(N,n)||(await a(J+V(t)+"ADD"+V(n)+r),0==s&&await a("CREATE UNIQUE INDEX pk ON "+V(t)+`(${V(e)})`),ma(A,n))})):(await a(Q+V(t)+`(${V(e)}${r} PRIMARY KEY${h(D(E,a=>n+V(a)+r))});`),Ea(w,t,ga([e,...E])))),await m([...!d&&l?D(L(N),async n=>{n!=e&&(await a(J+V(t)+"DROP"+V(n)),P(A,n))}):[]]),d)y(s)?await a(k+V(t)+X(t,v)):await m(oa(s,async(n,s)=>{y(n)?await a(k+V(t)+X(t,v)+`AND(${V(e)}=$1)`,[s]):I(E)||await o(a,t,e,ea(n),{[s]:c?D(la(n),c):la(n)},A)}));else if(I(E))b(w,t)&&await a(k+V(t)+X(t,v));else{const n=S(L(va(w,t)),a=>a!=e),i={},r=[];ca(s??{},(a,t)=>{i[t]=D(n,t=>c?c(a?.[t]):a?.[t]),T(r,t)}),await o(a,t,e,n,i),await a(k+V(t)+X(t,v)+`AND${V(e)}NOT IN(${W(r)})`,r)}},async t=>{let e;return await a("BEGIN"),await f(async()=>e=await t(),s),await a("END"),e}]},Ga=async(a,t,e,s,i)=>{const r=[1];await a("INSERT INTO"+V(t)+"("+((...a)=>h(D(a,V),n))(e,...s)+")VALUES"+h(oa(i,a=>"($"+r[0]+++","+W(a,r)+")"),n)+"ON CONFLICT("+V(e)+")DO UPDATE SET"+h(D(s,a=>V(a)+"=excluded."+V(a)),n),oa(i,(a,t)=>[t,...D(a,a=>a??null)]).flat())},Ha=(a,t,e,n,s,i,r,[o,c,l],w,u,d,v,p,E)=>{const[A,N,g,m]=za(t,w,u,s,p,E),$=xa(a,()=>m(async()=>{return await A(),a=(await N(o,c))[M]?.[l]??"null",Ba(ja(a));var a}),a=>m(async()=>{var t;await A(),await g(o,c,{[M]:{[l]:(t=a()??null,Ua(t,(a,t)=>y(t)?"":t))}},!0,!0)}),e,n,s,r,{[v]:()=>d,destroy:async()=>(await $.stopAutoPersisting(),i(),$)},0,d);return $},Ka=(a,t,e,n,s,i,r,[o,c,[l,w,u]],d,v,p,E,A,N,g,$)=>{const[f,O,h,D]=za(t,d,v,s,A,N,g,$),I=(a,t)=>m(pa(c,async([e,n,s,i,r],o)=>{t&&!(o in a)||await h(e,n,a[o],s,i,t,r)})),T=async(a,t)=>w?await h(u,F,{[M]:a},!0,!0,t):null,_=xa(a,()=>D(async()=>{await f();const a=await(async()=>sa(S(await m(pa(o,async([a,t,e],n)=>[a,await O(n,t,e)])),a=>!ya(a[1]))))(),t=await(async()=>l?(await O(u,F))[M]:{})();return ya(a)&&y(t)?void 0:[a,t]}),(a,t)=>D(async()=>{if(await f(),y(t)){const[t,e]=a();await I(t),await T(e)}else await I(t[0],!0),await T(t[1],!0)}),e,n,s,r,{[E]:()=>p,destroy:async()=>(await _.stopAutoPersisting(),i(),_)},0,p);return _},Qa=(a,n,s,r,o,c,y,u,d,v,E="getDb",N)=>{let g,m,$;const O=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(s,c),[h,D,I,S]=(a=>{const e=(a=>ia(Pa,p(a)?{[ha]:a}:a??{}))(a),n=e[Sa];if(e.mode==Oa){const a=e[ha]??t;return[1,n,[a,e[Da]??F,e[Ia]??fa],ga(a)]}const{tables:{load:s={},save:r={}}={},values:o={}}=e,c=A(la(ia(Ma,o)),0,wa(Ma)),l=c[2],w=ga(l),y=ga(l),u=Fa(s,{[_a]:null,[Ta]:F,[Ra]:i},_a,a=>b(y,a),a=>ma(w,a)),d=Fa(r,{[ba]:null,[Ta]:F,[Ca]:0,[La]:0,[Ra]:null},ba,(a,t)=>b(y,t),(a,t)=>ma(w,t));var v;return v=(a,t)=>t[4]??=va(u,t[0])?.[2]??i,R(d,(a,t)=>v(0,a)),[0,n,[u,d,c],w]})(n);return(h?Ha:Ka)(a,O,a=>{let t;const e=()=>t=setInterval(()=>f(async()=>{const[{d:t,s:e,c:n}]=await O(U+` ${G} d,${H} s,TOTAL_CHANGES() c FROM ${z}${G} JOIN ${z}${H}`);t==g&&e==m&&n==$||(w(g)||a(),g=t,m=e,$=n)}),1e3*D),n=()=>{g=m=$=null,l(t)},s=r(t=>{S.has(t)&&(n(),a(),e())});return e(),()=>{n(),o(s)}},a=>a(),y,u,d,I,L(S),async(a,t)=>await a(U+` t.name tn,c.name cn FROM ${K}list()t,${K}info(t.name)c ${j} t.schema='main'AND t.type IN('table','view')AND t.name IN(${W(t)})ORDER BY t.name,c.name`,t),v,E,e,N,a=>(a=>!0===a)(a)?1:(a=>!1===a)(a)?0:a,void 0)},Va="change",Wa=(a,t,e,n,s)=>Qa(a,e,async(a,e=[])=>{return await(n=(n,s)=>t.all(a,e,(a,t)=>a?s(a):n(t)),new o(n));var n},a=>{const e=(t,e,n)=>a(n);return t.on(Va,e),e},a=>t.off(Va,a),n,s,g,3,t);export{Wa as createSqlite3Persister};
1
+ const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",r=(a,t,e)=>a.replace(t,e),o=Promise,c=a=>(t,e,n)=>a(t)?n?.():e(t),l=clearInterval,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=c(w),p=c(u),E=t=>a(t)==s,A=a=>Array.isArray(a),N=a=>a.length,f=()=>{},g=async a=>o.all(a),m=a=>{throw Error(a)},$=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},O=(a,t)=>a.forEach(t),h=(a,t="")=>a.join(t),D=(a,t)=>a.map(t),I=a=>0==N(a),S=(a,t)=>a.filter(t),T=(a,...t)=>a.push(...t),_=a=>a.shift(),b=(a,t)=>a?.has(t)??!1,C=a=>u(a)||0==(a=>a?.size??0)(a),L=a=>[...a?.values()??[]],R=(a,t)=>a?.forEach(t),P=(a,t)=>a?.delete(t),M="_",F="_id",U="SELECT",j="WHERE",B="TABLE",J="ALTER "+B,Y="FROM",k="DELETE "+Y,x=U+"*"+Y,z="pragma_",G="data_version",H="schema_version",K="pragma_table_",Q="CREATE "+B,V=a=>h(D(((a,t="",e)=>a.split(t,e))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),W=(a,t=[1])=>h(D(a,()=>"$"+t[0]++),n),X=(a,t=i)=>j+`(${r(t,"$tableName",V(a))})`,q=Object,Z=a=>q.getPrototypeOf(a),aa=q.entries,ta=a=>!w(a)&&v(Z(a),a=>a==q.prototype||w(Z(a)),()=>!0),ea=q.keys,na=q.freeze,sa=(a=[])=>q.fromEntries(a),ia=(...a)=>q.assign({},...a),ra=(a,t)=>(delete a[t],a),oa=(a,t)=>D(aa(a),([a,e])=>t(e,a)),ca=(a,t)=>sa(oa(a,(a,e)=>[e,t(a,e)])),la=a=>N(ea(a)),wa=a=>ta(a)&&0==la(a),ua=Map,ya=a=>new ua(a),da=(a,t)=>a?.get(t),va=(a,t)=>D([...a?.entries()??[]],([a,e])=>t(e,a)),pa=(a,t,e)=>u(e)?(P(a,t),a):a?.set(t,e),Ea=(a,t,e,n)=>(b(a,t)?n?.(da(a,t)):pa(a,t,e()),da(a,t)),Aa=(a,t,e,n,s=0)=>p((e?Ea:da)(a,t[s],s>N(t)-2?e:ya),i=>{if(s>N(t)-2)return n?.(i)&&pa(a,t[s]),i;const r=Aa(i,t,e,n,s+1);return C(i)&&pa(a,t[s]),r}),Na=a=>new Set(A(a)||u(a)?a:[a]),fa=(a,t)=>a?.add(t),ga="ColumnName",ma="store",$a="json",Oa=ma+"TableName",ha=ma+"Id"+ga,Da=ma+ga,Ia="autoLoadIntervalSeconds",Sa="rowId"+ga,Ta="tableId",_a="tableName",ba="deleteEmptyColumns",Ca="deleteEmptyTable",La="condition",Ra={mode:$a,[Ia]:1},Pa={load:0,save:0,[_a]:t+"_values"},Ma=a=>A(a)?a:void 0,Fa=a=>d(a)||A(a),Ua=(a,t,e,n,s)=>{const i=ya();return ca(a,(a,r)=>{const o=(w=ia(t,E(a)?{[e]:a}:a),c=q.values(w),l=la(t),c.slice(0,l));var c,l,w;y(o[0])||n(r,o[0])||(s(r,o[0]),pa(i,r,o))}),i},ja=JSON.stringify,Ba=JSON.parse,Ja=a=>""===a?void 0:A(a)?D(a,Ja):ta(a)?ca(a,Ja):a,Ya=/^\d+$/,ka=ya(),xa=ya(),za=(a,t,n,s,i,r,o,c={},l=0,w=[])=>{let d,v,E,f=0,g=0,h=0;Ea(ka,w,()=>0),Ea(xa,w,()=>[]);const D=ya(),[I,S,b,L,M]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!e),([[a],[t]])=>!wa(a)||!wa(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!wa(a)||!wa(t),t.setContent]:m("Store type not supported by this Persister"))(o,a,l),[F,U,j]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?_(a):null)??e+t++,t=>{Ya.test(t)&&N(a)<1e3&&T(a,t)}]})(),s=ya();return[(n,i,r,o=[],c=()=>[])=>{a??=X;const l=t(1);return pa(s,l,[n,i,r,o,c]),fa(Aa(i,r??[e],Na),l),l},(t,n,...i)=>O(((a,t=[e])=>{const n=[],s=(a,e)=>e==N(t)?T(n,a):y(t[e])?R(a,a=>s(a,e+1)):O([t[e],null],t=>s(da(a,t),e+1));return s(a,0),n})(t,n),t=>R(t,t=>da(s,t)[0](a,...n??[],...i))),a=>p(da(s,a),([,t,i])=>(Aa(t,i??[e],void 0,t=>(P(t,a),C(t)?1:0)),pa(s,a),n(a),i)),t=>p(da(s,t),([t,,e=[],n,s])=>{const i=(...r)=>{const o=N(r);o==N(e)?t(a,...r,...s(r)):y(e[o])?O(n[o]?.(...r)??[],a=>i(...r,a)):i(...r,e[o])};i()})]})(),B=a=>{a!=f&&(f=a,U(D,void 0,f))},J=t=>{(I&&A(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},Y=async()=>{Q()&&a.__?.[0]?.()&&await G()},k=async a=>(2!=f&&(B(1),g++,await W(async()=>{await $(async()=>{const e=await t();A(e)?J(e):a?M(a):m("Content is not an array: "+e)},()=>{a&&M(a)}),B(0),await Y()})),X),x=async a=>(z(),await k(a),await $(async()=>v=await s(async(a,t)=>{t||a?2!=f&&(B(1),g++,J(t??a),B(0),await Y()):await k()}),r),X),z=async()=>(v&&(await $(()=>i(v),r),v=void 0),X),G=async a=>(1!=f&&(B(2),h++,await W(async()=>{await $(()=>n(S,a),r),B(0)})),X),H=async()=>(K(),await G(),E=a.addDidFinishTransactionListener(()=>{const a=b();L(a)&&G(a)}),X),K=async()=>(E&&(a.delListener(E),E=void 0),X),Q=()=>!u(E),V=async(a=!1)=>{const[t,e]=a?[K,z]:[z,K];return await t(),await e(),X},W=async(...a)=>(T(da(xa,w),...a),await(async()=>{if(!da(ka,w)){for(pa(ka,w,1);!u(d=_(da(xa,w)));)await $(d,r);pa(ka,w,0)}})(),X),X={load:k,startAutoLoad:x,stopAutoLoad:z,isAutoLoading:()=>!u(v),save:G,startAutoSave:H,stopAutoSave:K,isAutoSaving:Q,startAutoPersisting:async(a,t=!1)=>{const[e,n]=t?[H,x]:[x,H];return await e(a),await n(a),X},stopAutoPersisting:V,getStatus:()=>f,addStatusListener:a=>F(a,D),delListener:t=>(j(t),a),schedule:W,getStore:()=>a,destroy:()=>(da(xa,w).splice(0,void 0),V()),getStats:()=>({loads:g,saves:h}),...c};return na(X)},Ga=(a,t,e,s,r,o=Ha,c,l)=>{const w=ya();return[async()=>{w.clear(),D(await e(a,t),({tn:a,cn:t})=>fa(Ea(w,a,Na),t))},async(t,e,n,s)=>{const i=u(s)?void 0:Na(s);return((a,t)=>b(da(w,a),t))(t,e)?sa(S(D(await a(x+V(t)+X(t,n)),a=>{const t=a[e],n=l?ca(ra(a,e),l):ra(a,e);return[t,u(i)?n:sa(S(oa(n,(a,t)=>[t,a]),([a])=>(a=>u(i)||b(i,a))(a)))]}),a=>!u(a[0])&&!wa(a[1]))):{}},async(t,e,s,l,y,d=!1,v=i,p)=>{const E=u(p)?void 0:Na(p),A=a=>u(E)||b(E,a),N=Na();ca(s??{},a=>D(S(ea(a??{}),A),a=>fa(N,a)));const f=L(N);if(u(E)&&!d&&y&&v==i&&I(f)&&b(w,t))return await a("DROP "+B+V(t)),void pa(w,t);const m=da(w,t),$=Na(S(L(m),a=>a==e||A(a)));if(I(f)||(b(w,t)?await g(D([e,...f],async(n,s)=>{P($,n)||(await a(J+V(t)+"ADD"+V(n)+r),0==s&&await a("CREATE UNIQUE INDEX pk ON "+V(t)+`(${V(e)})`),fa(m,n))})):(await a(Q+V(t)+`(${V(e)}${r} PRIMARY KEY${h(D(f,a=>n+V(a)+r))});`),pa(w,t,Na([e,...f])))),await g([...!d&&l?D(L($),async n=>{n!=e&&(await a(J+V(t)+"DROP"+V(n)),P(m,n))}):[]]),d)u(s)?u(E)&&await a(k+V(t)+X(t,v)):await g(oa(s,async(n,s)=>{if(u(n))await a(k+V(t)+X(t,v)+`AND(${V(e)}=$1)`,[s]);else if(!I(f)){const i=S(ea(n),A);I(i)||await o(a,t,e,i,{[s]:D(i,a=>c?c(n[a]):n[a])},m)}}));else if(I(f))u(E)&&b(w,t)&&await a(k+V(t)+X(t,v));else{const n=S(L(da(w,t)),a=>a!=e&&A(a)),i={},r=[];ca(s??{},(a,t)=>{i[t]=D(n,t=>c?c(a?.[t]):a?.[t]),T(r,t)}),await o(a,t,e,n,i,m),await a(k+V(t)+X(t,v)+`AND${V(e)}NOT IN(${W(r)})`,r)}},async t=>{let e;return await a("BEGIN"),await $(async()=>e=await t(),s),await a("END"),e}]},Ha=async(a,t,e,s,i)=>{const r=[1];await a("INSERT INTO"+V(t)+"("+((...a)=>h(D(a,V),n))(e,...s)+")VALUES"+h(oa(i,a=>"($"+r[0]+++","+W(a,r)+")"),n)+"ON CONFLICT("+V(e)+")DO UPDATE SET"+h(D(s,a=>V(a)+"=excluded."+V(a)),n),oa(i,(a,t)=>[t,...D(a,a=>a??null)]).flat())},Ka=(a,t,e,n,s,i,r,[o,c,l],w,y,d,v,p,E)=>{const[A,N,f,g]=Ga(t,w,y,s,p,E),m=za(a,()=>g(async()=>{return await A(),a=(await N(o,c))[M]?.[l]??"null",Ja(Ba(a));var a}),a=>g(async()=>{var t;await A(),await f(o,c,{[M]:{[l]:(t=a()??null,ja(t,(a,t)=>u(t)?"":t))}},!0,!0)}),e,n,s,r,{[v]:()=>d,destroy:async()=>(await m.stopAutoPersisting(),i(),m)},0,d);return m},Qa=(a,t,e,n,s,i,r,[o,c,[l,w,y,d,v]],p,E,A,N,f,m,$,O)=>{const[h,I,T,_]=Ga(t,p,E,s,f,m,$,O),b=(a,t)=>g(va(c,async([e,n,s,i,r],o)=>{t&&!(o in a)||await T(e,n,a[o],s,i,t,r)})),C=(a,t,e)=>sa(1==e?S(oa(a,(a,t)=>[t,a]),([a])=>{return e=a,t.includes(e);var e}):S(D(t,t=>[t,a[t]]),([,a])=>!u(a))),L=async(a,t)=>w?await T(y,F,{[M]:u(v)?a:C(a,v,t)},!0,!0,t,void 0,v):null,R=za(a,()=>_(async()=>{await h();const a=await(async()=>sa(S(await g(va(o,async([a,t,e],n)=>[a,await I(n,t,e)])),a=>!wa(a[1]))))(),t=await(async()=>l?(await I(y,F,void 0,d))[M]:{})();return wa(a)&&u(t)?void 0:[a,t]}),(a,t)=>_(async()=>{if(await h(),u(t)){const[t,e]=a();await b(t),await L(e)}else await b(t[0],!0),await L(t[1],!0)}),e,n,s,r,{[N]:()=>A,destroy:async()=>(await R.stopAutoPersisting(),i(),R)},0,A);return R},Va=(a,n,s,r,o,c,u,y,v,p,A="getDb",N)=>{let f,g,m;const O=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(s,c),[h,D,I,S]=(a=>{const e=(a=>ia(Ra,E(a)?{[Oa]:a}:a??{}))(a),n=e[Ia];if(e.mode==$a){const a=e[Oa]??t;return[1,n,[a,e[ha]??F,e[Da]??ma],Na(a)]}const{tables:{load:s={},save:r={}}={},values:o={}}=e,c=ia(Pa,o),{load:l,save:w}=c,u=[Fa(l),Fa(w),c[_a],Ma(l),Ma(w)],y=u[2],d=Na(y),v=Na(y),p=Ua(s,{[Ta]:null,[Sa]:F,[La]:i},Ta,a=>b(v,a),a=>fa(d,a)),A=Ua(r,{[_a]:null,[Sa]:F,[ba]:0,[Ca]:0,[La]:null},_a,(a,t)=>b(v,t),(a,t)=>fa(d,t));var N;return N=(a,t)=>t[4]??=da(p,t[0])?.[2]??i,R(A,(a,t)=>N(0,a)),[0,n,[p,A,u],d]})(n);return(h?Ka:Qa)(a,O,a=>{let t;const e=()=>t=setInterval(()=>$(async()=>{const[{d:t,s:e,c:n}]=await O(U+` ${G} d,${H} s,TOTAL_CHANGES() c FROM ${z}${G} JOIN ${z}${H}`);t==f&&e==g&&n==m||(w(f)||a(),f=t,g=e,m=n)}),1e3*D),n=()=>{f=g=m=null,l(t)},s=r(t=>{S.has(t)&&(n(),a(),e())});return e(),()=>{n(),o(s)}},a=>a(),u,y,v,I,L(S),async(a,t)=>await a(U+` t.name tn,c.name cn FROM ${K}list()t,${K}info(t.name)c ${j} t.schema='main'AND t.type IN('table','view')AND t.name IN(${W(t)})ORDER BY t.name,c.name`,t),p,A,e,N,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0)},Wa="change",Xa=(a,t,e,n,s)=>Va(a,e,async(a,e=[])=>{return await(n=(n,s)=>t.all(a,e,(a,t)=>a?s(a):n(t)),new o(n));var n},a=>{const e=(t,e,n)=>a(n);return t.on(Wa,e),e},a=>t.off(Wa,a),n,s,f,3,t);export{Xa as createSqlite3Persister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",r=(a,t,e)=>a.replace(t,e),o=Promise,c=a=>(t,e,n)=>a(t)?n?.():e(t),l=clearInterval,w=a=>null==a,y=a=>void 0===a,u=a=>null===a,d=c(w),v=c(y),p=t=>a(t)==s,E=a=>Array.isArray(a),A=(a,t,e)=>a.slice(t,e),N=a=>a.length,g=()=>{},m=async a=>o.all(a),$=a=>{throw Error(a)},f=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},O=(a,t)=>a.forEach(t),h=(a,t="")=>a.join(t),D=(a,t)=>a.map(t),I=a=>0==N(a),S=(a,t)=>a.filter(t),T=(a,...t)=>a.push(...t),_=a=>a.shift(),b=(a,t)=>a?.has(t)??!1,C=a=>y(a)||0==(a=>a?.size??0)(a),L=a=>[...a?.values()??[]],R=(a,t)=>a?.forEach(t),P=(a,t)=>a?.delete(t),M="_",F="_id",U="SELECT",j="WHERE",B="TABLE",J="ALTER "+B,Y="FROM",k="DELETE "+Y,x=U+"*"+Y,z="pragma_",G="data_version",H="schema_version",K="pragma_table_",Q="CREATE "+B,V=a=>h(D(((a,t="",e)=>a.split(t,e))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),W=(a,t=[1])=>h(D(a,()=>"$"+t[0]++),n),X=(a,t=i)=>j+`(${r(t,"$tableName",V(a))})`,q=Object,Z=a=>q.getPrototypeOf(a),aa=q.entries,ta=a=>!w(a)&&d(Z(a),a=>a==q.prototype||w(Z(a)),()=>!0),ea=q.keys,na=q.freeze,sa=(a=[])=>q.fromEntries(a),ia=(...a)=>q.assign({},...a),ra=(a,t)=>(delete a[t],a),oa=(a,t)=>D(aa(a),([a,e])=>t(e,a)),ca=(a,t)=>sa(oa(a,(a,e)=>[e,t(a,e)])),la=a=>q.values(a),wa=a=>N(ea(a)),ya=a=>ta(a)&&0==wa(a),ua=Map,da=a=>new ua(a),va=(a,t)=>a?.get(t),pa=(a,t)=>D([...a?.entries()??[]],([a,e])=>t(e,a)),Ea=(a,t,e)=>y(e)?(P(a,t),a):a?.set(t,e),Aa=(a,t,e,n)=>(b(a,t)?n?.(va(a,t)):Ea(a,t,e()),va(a,t)),Na=(a,t,e,n,s=0)=>v((e?Aa:va)(a,t[s],s>N(t)-2?e:da),i=>{if(s>N(t)-2)return n?.(i)&&Ea(a,t[s]),i;const r=Na(i,t,e,n,s+1);return C(i)&&Ea(a,t[s]),r}),ga=a=>new Set(E(a)||y(a)?a:[a]),ma=(a,t)=>a?.add(t),$a="ColumnName",fa="store",Oa="json",ha=fa+"TableName",Da=fa+"Id"+$a,Ia=fa+$a,Sa="autoLoadIntervalSeconds",Ta="rowId"+$a,_a="tableId",ba="tableName",Ca="deleteEmptyColumns",La="deleteEmptyTable",Ra="condition",Pa={mode:Oa,[Sa]:1},Ma={load:0,save:0,[ba]:t+"_values"},Fa=(a,t,e,n,s)=>{const i=da();return ca(a,(a,r)=>{const o=A(la(ia(t,p(a)?{[e]:a}:a)),0,wa(t));u(o[0])||n(r,o[0])||(s(r,o[0]),Ea(i,r,o))}),i},Ua=JSON.stringify,ja=JSON.parse,Ba=a=>""===a?void 0:E(a)?D(a,Ba):ta(a)?ca(a,Ba):a,Ja=/^\d+$/,Ya=da(),ka=da(),xa=(a,t,n,s,i,r,o,c={},l=0,w=[])=>{let d,p,A,g=0,m=0,h=0;Aa(Ya,w,()=>0),Aa(ka,w,()=>[]);const D=da(),[I,S,b,L,M]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!e),([[a],[t]])=>!ya(a)||!ya(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!ya(a)||!ya(t),t.setContent]:$("Store type not supported by this Persister"))(o,a,l),[F,U,j]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?_(a):null)??e+t++,t=>{Ja.test(t)&&N(a)<1e3&&T(a,t)}]})(),s=da();return[(n,i,r,o=[],c=()=>[])=>{a??=X;const l=t(1);return Ea(s,l,[n,i,r,o,c]),ma(Na(i,r??[e],ga),l),l},(t,n,...i)=>O(((a,t=[e])=>{const n=[],s=(a,e)=>e==N(t)?T(n,a):u(t[e])?R(a,a=>s(a,e+1)):O([t[e],null],t=>s(va(a,t),e+1));return s(a,0),n})(t,n),t=>R(t,t=>va(s,t)[0](a,...n??[],...i))),a=>v(va(s,a),([,t,i])=>(Na(t,i??[e],void 0,t=>(P(t,a),C(t)?1:0)),Ea(s,a),n(a),i)),t=>v(va(s,t),([t,,e=[],n,s])=>{const i=(...r)=>{const o=N(r);o==N(e)?t(a,...r,...s(r)):u(e[o])?O(n[o]?.(...r)??[],a=>i(...r,a)):i(...r,e[o])};i()})]})(),B=a=>{a!=g&&(g=a,U(D,void 0,g))},J=t=>{(I&&E(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},Y=async()=>{Q()&&a.__?.[0]?.()&&await G()},k=async a=>(2!=g&&(B(1),m++,await W(async()=>{await f(async()=>{const e=await t();E(e)?J(e):a?M(a):$("Content is not an array: "+e)},()=>{a&&M(a)}),B(0),await Y()})),X),x=async a=>(z(),await k(a),await f(async()=>p=await s(async(a,t)=>{t||a?2!=g&&(B(1),m++,J(t??a),B(0),await Y()):await k()}),r),X),z=async()=>(p&&(await f(()=>i(p),r),p=void 0),X),G=async a=>(1!=g&&(B(2),h++,await W(async()=>{await f(()=>n(S,a),r),B(0)})),X),H=async()=>(K(),await G(),A=a.addDidFinishTransactionListener(()=>{const a=b();L(a)&&G(a)}),X),K=async()=>(A&&(a.delListener(A),A=void 0),X),Q=()=>!y(A),V=async(a=!1)=>{const[t,e]=a?[K,z]:[z,K];return await t(),await e(),X},W=async(...a)=>(T(va(ka,w),...a),await(async()=>{if(!va(Ya,w)){for(Ea(Ya,w,1);!y(d=_(va(ka,w)));)await f(d,r);Ea(Ya,w,0)}})(),X),X={load:k,startAutoLoad:x,stopAutoLoad:z,isAutoLoading:()=>!y(p),save:G,startAutoSave:H,stopAutoSave:K,isAutoSaving:Q,startAutoPersisting:async(a,t=!1)=>{const[e,n]=t?[H,x]:[x,H];return await e(a),await n(a),X},stopAutoPersisting:V,getStatus:()=>g,addStatusListener:a=>F(a,D),delListener:t=>(j(t),a),schedule:W,getStore:()=>a,destroy:()=>(va(ka,w).splice(0,void 0),V()),getStats:()=>({loads:m,saves:h}),...c};return na(X)},za=(a,t,e,s,r,o=Ga,c,l)=>{const w=da();return[async()=>{w.clear(),D(await e(a,t),({tn:a,cn:t})=>ma(Aa(w,a,ga),t))},async(t,e,n)=>((a,t)=>b(va(w,a),t))(t,e)?sa(S(D(await a(x+V(t)+X(t,n)),a=>[a[e],l?ca(ra(a,e),l):ra(a,e)]),a=>!y(a[0])&&!ya(a[1]))):{},async(t,e,s,l,u,d=!1,v=i)=>{const p=ga();ca(s??{},a=>D(ea(a??{}),a=>ma(p,a)));const E=L(p);if(!d&&u&&v==i&&I(E)&&b(w,t))return await a("DROP "+B+V(t)),void Ea(w,t);const A=va(w,t),N=ga(L(A));if(I(E)||(b(w,t)?await m(D([e,...E],async(n,s)=>{P(N,n)||(await a(J+V(t)+"ADD"+V(n)+r),0==s&&await a("CREATE UNIQUE INDEX pk ON "+V(t)+`(${V(e)})`),ma(A,n))})):(await a(Q+V(t)+`(${V(e)}${r} PRIMARY KEY${h(D(E,a=>n+V(a)+r))});`),Ea(w,t,ga([e,...E])))),await m([...!d&&l?D(L(N),async n=>{n!=e&&(await a(J+V(t)+"DROP"+V(n)),P(A,n))}):[]]),d)y(s)?await a(k+V(t)+X(t,v)):await m(oa(s,async(n,s)=>{y(n)?await a(k+V(t)+X(t,v)+`AND(${V(e)}=$1)`,[s]):I(E)||await o(a,t,e,ea(n),{[s]:c?D(la(n),c):la(n)},A)}));else if(I(E))b(w,t)&&await a(k+V(t)+X(t,v));else{const n=S(L(va(w,t)),a=>a!=e),i={},r=[];ca(s??{},(a,t)=>{i[t]=D(n,t=>c?c(a?.[t]):a?.[t]),T(r,t)}),await o(a,t,e,n,i),await a(k+V(t)+X(t,v)+`AND${V(e)}NOT IN(${W(r)})`,r)}},async t=>{let e;return await a("BEGIN"),await f(async()=>e=await t(),s),await a("END"),e}]},Ga=async(a,t,e,s,i)=>{const r=[1];await a("INSERT INTO"+V(t)+"("+((...a)=>h(D(a,V),n))(e,...s)+")VALUES"+h(oa(i,a=>"($"+r[0]+++","+W(a,r)+")"),n)+"ON CONFLICT("+V(e)+")DO UPDATE SET"+h(D(s,a=>V(a)+"=excluded."+V(a)),n),oa(i,(a,t)=>[t,...D(a,a=>a??null)]).flat())},Ha=(a,t,e,n,s,i,r,[o,c,l],w,u,d,v,p,E)=>{const[A,N,g,m]=za(t,w,u,s,p,E),$=xa(a,()=>m(async()=>{return await A(),a=(await N(o,c))[M]?.[l]??"null",Ba(ja(a));var a}),a=>m(async()=>{var t;await A(),await g(o,c,{[M]:{[l]:(t=a()??null,Ua(t,(a,t)=>y(t)?"":t))}},!0,!0)}),e,n,s,r,{[v]:()=>d,destroy:async()=>(await $.stopAutoPersisting(),i(),$)},0,d);return $},Ka=(a,t,e,n,s,i,r,[o,c,[l,w,u]],d,v,p,E,A,N,g,$)=>{const[f,O,h,D]=za(t,d,v,s,A,N,g,$),I=(a,t)=>m(pa(c,async([e,n,s,i,r],o)=>{t&&!(o in a)||await h(e,n,a[o],s,i,t,r)})),T=async(a,t)=>w?await h(u,F,{[M]:a},!0,!0,t):null,_=xa(a,()=>D(async()=>{await f();const a=await(async()=>sa(S(await m(pa(o,async([a,t,e],n)=>[a,await O(n,t,e)])),a=>!ya(a[1]))))(),t=await(async()=>l?(await O(u,F))[M]:{})();return ya(a)&&y(t)?void 0:[a,t]}),(a,t)=>D(async()=>{if(await f(),y(t)){const[t,e]=a();await I(t),await T(e)}else await I(t[0],!0),await T(t[1],!0)}),e,n,s,r,{[E]:()=>p,destroy:async()=>(await _.stopAutoPersisting(),i(),_)},0,p);return _},Qa=(a,n,s,r,o,c,y,u,d,v,E="getDb",N)=>{let g,m,$;const O=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(s,c),[h,D,I,S]=(a=>{const e=(a=>ia(Pa,p(a)?{[ha]:a}:a??{}))(a),n=e[Sa];if(e.mode==Oa){const a=e[ha]??t;return[1,n,[a,e[Da]??F,e[Ia]??fa],ga(a)]}const{tables:{load:s={},save:r={}}={},values:o={}}=e,c=A(la(ia(Ma,o)),0,wa(Ma)),l=c[2],w=ga(l),y=ga(l),u=Fa(s,{[_a]:null,[Ta]:F,[Ra]:i},_a,a=>b(y,a),a=>ma(w,a)),d=Fa(r,{[ba]:null,[Ta]:F,[Ca]:0,[La]:0,[Ra]:null},ba,(a,t)=>b(y,t),(a,t)=>ma(w,t));var v;return v=(a,t)=>t[4]??=va(u,t[0])?.[2]??i,R(d,(a,t)=>v(0,a)),[0,n,[u,d,c],w]})(n);return(h?Ha:Ka)(a,O,a=>{let t;const e=()=>t=setInterval(()=>f(async()=>{const[{d:t,s:e,c:n}]=await O(U+` ${G} d,${H} s,TOTAL_CHANGES() c FROM ${z}${G} JOIN ${z}${H}`);t==g&&e==m&&n==$||(w(g)||a(),g=t,m=e,$=n)}),1e3*D),n=()=>{g=m=$=null,l(t)},s=r(t=>{S.has(t)&&(n(),a(),e())});return e(),()=>{n(),o(s)}},a=>a(),y,u,d,I,L(S),async(a,t)=>await a(U+` t.name tn,c.name cn FROM ${K}list()t,${K}info(t.name)c ${j} t.schema='main'AND t.type IN('table','view')AND t.name IN(${W(t)})ORDER BY t.name,c.name`,t),v,E,e,N,a=>(a=>!0===a)(a)?1:(a=>!1===a)(a)?0:a,void 0)},Va="change",Wa=(a,t,e,n,s)=>Qa(a,e,async(a,e=[])=>{return await(n=(n,s)=>t.all(a,e,(a,t)=>a?s(a):n(t)),new o(n));var n},a=>{const e=(t,e,n)=>a(n);return t.on(Va,e),e},a=>t.off(Va,a),n,s,g,3,t);export{Wa as createSqlite3Persister};
1
+ const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",r=(a,t,e)=>a.replace(t,e),o=Promise,c=a=>(t,e,n)=>a(t)?n?.():e(t),l=clearInterval,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=c(w),p=c(u),E=t=>a(t)==s,A=a=>Array.isArray(a),N=a=>a.length,f=()=>{},g=async a=>o.all(a),m=a=>{throw Error(a)},$=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},O=(a,t)=>a.forEach(t),h=(a,t="")=>a.join(t),D=(a,t)=>a.map(t),I=a=>0==N(a),S=(a,t)=>a.filter(t),T=(a,...t)=>a.push(...t),_=a=>a.shift(),b=(a,t)=>a?.has(t)??!1,C=a=>u(a)||0==(a=>a?.size??0)(a),L=a=>[...a?.values()??[]],R=(a,t)=>a?.forEach(t),P=(a,t)=>a?.delete(t),M="_",F="_id",U="SELECT",j="WHERE",B="TABLE",J="ALTER "+B,Y="FROM",k="DELETE "+Y,x=U+"*"+Y,z="pragma_",G="data_version",H="schema_version",K="pragma_table_",Q="CREATE "+B,V=a=>h(D(((a,t="",e)=>a.split(t,e))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),W=(a,t=[1])=>h(D(a,()=>"$"+t[0]++),n),X=(a,t=i)=>j+`(${r(t,"$tableName",V(a))})`,q=Object,Z=a=>q.getPrototypeOf(a),aa=q.entries,ta=a=>!w(a)&&v(Z(a),a=>a==q.prototype||w(Z(a)),()=>!0),ea=q.keys,na=q.freeze,sa=(a=[])=>q.fromEntries(a),ia=(...a)=>q.assign({},...a),ra=(a,t)=>(delete a[t],a),oa=(a,t)=>D(aa(a),([a,e])=>t(e,a)),ca=(a,t)=>sa(oa(a,(a,e)=>[e,t(a,e)])),la=a=>N(ea(a)),wa=a=>ta(a)&&0==la(a),ua=Map,ya=a=>new ua(a),da=(a,t)=>a?.get(t),va=(a,t)=>D([...a?.entries()??[]],([a,e])=>t(e,a)),pa=(a,t,e)=>u(e)?(P(a,t),a):a?.set(t,e),Ea=(a,t,e,n)=>(b(a,t)?n?.(da(a,t)):pa(a,t,e()),da(a,t)),Aa=(a,t,e,n,s=0)=>p((e?Ea:da)(a,t[s],s>N(t)-2?e:ya),i=>{if(s>N(t)-2)return n?.(i)&&pa(a,t[s]),i;const r=Aa(i,t,e,n,s+1);return C(i)&&pa(a,t[s]),r}),Na=a=>new Set(A(a)||u(a)?a:[a]),fa=(a,t)=>a?.add(t),ga="ColumnName",ma="store",$a="json",Oa=ma+"TableName",ha=ma+"Id"+ga,Da=ma+ga,Ia="autoLoadIntervalSeconds",Sa="rowId"+ga,Ta="tableId",_a="tableName",ba="deleteEmptyColumns",Ca="deleteEmptyTable",La="condition",Ra={mode:$a,[Ia]:1},Pa={load:0,save:0,[_a]:t+"_values"},Ma=a=>A(a)?a:void 0,Fa=a=>d(a)||A(a),Ua=(a,t,e,n,s)=>{const i=ya();return ca(a,(a,r)=>{const o=(w=ia(t,E(a)?{[e]:a}:a),c=q.values(w),l=la(t),c.slice(0,l));var c,l,w;y(o[0])||n(r,o[0])||(s(r,o[0]),pa(i,r,o))}),i},ja=JSON.stringify,Ba=JSON.parse,Ja=a=>""===a?void 0:A(a)?D(a,Ja):ta(a)?ca(a,Ja):a,Ya=/^\d+$/,ka=ya(),xa=ya(),za=(a,t,n,s,i,r,o,c={},l=0,w=[])=>{let d,v,E,f=0,g=0,h=0;Ea(ka,w,()=>0),Ea(xa,w,()=>[]);const D=ya(),[I,S,b,L,M]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!e),([[a],[t]])=>!wa(a)||!wa(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!wa(a)||!wa(t),t.setContent]:m("Store type not supported by this Persister"))(o,a,l),[F,U,j]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?_(a):null)??e+t++,t=>{Ya.test(t)&&N(a)<1e3&&T(a,t)}]})(),s=ya();return[(n,i,r,o=[],c=()=>[])=>{a??=X;const l=t(1);return pa(s,l,[n,i,r,o,c]),fa(Aa(i,r??[e],Na),l),l},(t,n,...i)=>O(((a,t=[e])=>{const n=[],s=(a,e)=>e==N(t)?T(n,a):y(t[e])?R(a,a=>s(a,e+1)):O([t[e],null],t=>s(da(a,t),e+1));return s(a,0),n})(t,n),t=>R(t,t=>da(s,t)[0](a,...n??[],...i))),a=>p(da(s,a),([,t,i])=>(Aa(t,i??[e],void 0,t=>(P(t,a),C(t)?1:0)),pa(s,a),n(a),i)),t=>p(da(s,t),([t,,e=[],n,s])=>{const i=(...r)=>{const o=N(r);o==N(e)?t(a,...r,...s(r)):y(e[o])?O(n[o]?.(...r)??[],a=>i(...r,a)):i(...r,e[o])};i()})]})(),B=a=>{a!=f&&(f=a,U(D,void 0,f))},J=t=>{(I&&A(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},Y=async()=>{Q()&&a.__?.[0]?.()&&await G()},k=async a=>(2!=f&&(B(1),g++,await W(async()=>{await $(async()=>{const e=await t();A(e)?J(e):a?M(a):m("Content is not an array: "+e)},()=>{a&&M(a)}),B(0),await Y()})),X),x=async a=>(z(),await k(a),await $(async()=>v=await s(async(a,t)=>{t||a?2!=f&&(B(1),g++,J(t??a),B(0),await Y()):await k()}),r),X),z=async()=>(v&&(await $(()=>i(v),r),v=void 0),X),G=async a=>(1!=f&&(B(2),h++,await W(async()=>{await $(()=>n(S,a),r),B(0)})),X),H=async()=>(K(),await G(),E=a.addDidFinishTransactionListener(()=>{const a=b();L(a)&&G(a)}),X),K=async()=>(E&&(a.delListener(E),E=void 0),X),Q=()=>!u(E),V=async(a=!1)=>{const[t,e]=a?[K,z]:[z,K];return await t(),await e(),X},W=async(...a)=>(T(da(xa,w),...a),await(async()=>{if(!da(ka,w)){for(pa(ka,w,1);!u(d=_(da(xa,w)));)await $(d,r);pa(ka,w,0)}})(),X),X={load:k,startAutoLoad:x,stopAutoLoad:z,isAutoLoading:()=>!u(v),save:G,startAutoSave:H,stopAutoSave:K,isAutoSaving:Q,startAutoPersisting:async(a,t=!1)=>{const[e,n]=t?[H,x]:[x,H];return await e(a),await n(a),X},stopAutoPersisting:V,getStatus:()=>f,addStatusListener:a=>F(a,D),delListener:t=>(j(t),a),schedule:W,getStore:()=>a,destroy:()=>(da(xa,w).splice(0,void 0),V()),getStats:()=>({loads:g,saves:h}),...c};return na(X)},Ga=(a,t,e,s,r,o=Ha,c,l)=>{const w=ya();return[async()=>{w.clear(),D(await e(a,t),({tn:a,cn:t})=>fa(Ea(w,a,Na),t))},async(t,e,n,s)=>{const i=u(s)?void 0:Na(s);return((a,t)=>b(da(w,a),t))(t,e)?sa(S(D(await a(x+V(t)+X(t,n)),a=>{const t=a[e],n=l?ca(ra(a,e),l):ra(a,e);return[t,u(i)?n:sa(S(oa(n,(a,t)=>[t,a]),([a])=>(a=>u(i)||b(i,a))(a)))]}),a=>!u(a[0])&&!wa(a[1]))):{}},async(t,e,s,l,y,d=!1,v=i,p)=>{const E=u(p)?void 0:Na(p),A=a=>u(E)||b(E,a),N=Na();ca(s??{},a=>D(S(ea(a??{}),A),a=>fa(N,a)));const f=L(N);if(u(E)&&!d&&y&&v==i&&I(f)&&b(w,t))return await a("DROP "+B+V(t)),void pa(w,t);const m=da(w,t),$=Na(S(L(m),a=>a==e||A(a)));if(I(f)||(b(w,t)?await g(D([e,...f],async(n,s)=>{P($,n)||(await a(J+V(t)+"ADD"+V(n)+r),0==s&&await a("CREATE UNIQUE INDEX pk ON "+V(t)+`(${V(e)})`),fa(m,n))})):(await a(Q+V(t)+`(${V(e)}${r} PRIMARY KEY${h(D(f,a=>n+V(a)+r))});`),pa(w,t,Na([e,...f])))),await g([...!d&&l?D(L($),async n=>{n!=e&&(await a(J+V(t)+"DROP"+V(n)),P(m,n))}):[]]),d)u(s)?u(E)&&await a(k+V(t)+X(t,v)):await g(oa(s,async(n,s)=>{if(u(n))await a(k+V(t)+X(t,v)+`AND(${V(e)}=$1)`,[s]);else if(!I(f)){const i=S(ea(n),A);I(i)||await o(a,t,e,i,{[s]:D(i,a=>c?c(n[a]):n[a])},m)}}));else if(I(f))u(E)&&b(w,t)&&await a(k+V(t)+X(t,v));else{const n=S(L(da(w,t)),a=>a!=e&&A(a)),i={},r=[];ca(s??{},(a,t)=>{i[t]=D(n,t=>c?c(a?.[t]):a?.[t]),T(r,t)}),await o(a,t,e,n,i,m),await a(k+V(t)+X(t,v)+`AND${V(e)}NOT IN(${W(r)})`,r)}},async t=>{let e;return await a("BEGIN"),await $(async()=>e=await t(),s),await a("END"),e}]},Ha=async(a,t,e,s,i)=>{const r=[1];await a("INSERT INTO"+V(t)+"("+((...a)=>h(D(a,V),n))(e,...s)+")VALUES"+h(oa(i,a=>"($"+r[0]+++","+W(a,r)+")"),n)+"ON CONFLICT("+V(e)+")DO UPDATE SET"+h(D(s,a=>V(a)+"=excluded."+V(a)),n),oa(i,(a,t)=>[t,...D(a,a=>a??null)]).flat())},Ka=(a,t,e,n,s,i,r,[o,c,l],w,y,d,v,p,E)=>{const[A,N,f,g]=Ga(t,w,y,s,p,E),m=za(a,()=>g(async()=>{return await A(),a=(await N(o,c))[M]?.[l]??"null",Ja(Ba(a));var a}),a=>g(async()=>{var t;await A(),await f(o,c,{[M]:{[l]:(t=a()??null,ja(t,(a,t)=>u(t)?"":t))}},!0,!0)}),e,n,s,r,{[v]:()=>d,destroy:async()=>(await m.stopAutoPersisting(),i(),m)},0,d);return m},Qa=(a,t,e,n,s,i,r,[o,c,[l,w,y,d,v]],p,E,A,N,f,m,$,O)=>{const[h,I,T,_]=Ga(t,p,E,s,f,m,$,O),b=(a,t)=>g(va(c,async([e,n,s,i,r],o)=>{t&&!(o in a)||await T(e,n,a[o],s,i,t,r)})),C=(a,t,e)=>sa(1==e?S(oa(a,(a,t)=>[t,a]),([a])=>{return e=a,t.includes(e);var e}):S(D(t,t=>[t,a[t]]),([,a])=>!u(a))),L=async(a,t)=>w?await T(y,F,{[M]:u(v)?a:C(a,v,t)},!0,!0,t,void 0,v):null,R=za(a,()=>_(async()=>{await h();const a=await(async()=>sa(S(await g(va(o,async([a,t,e],n)=>[a,await I(n,t,e)])),a=>!wa(a[1]))))(),t=await(async()=>l?(await I(y,F,void 0,d))[M]:{})();return wa(a)&&u(t)?void 0:[a,t]}),(a,t)=>_(async()=>{if(await h(),u(t)){const[t,e]=a();await b(t),await L(e)}else await b(t[0],!0),await L(t[1],!0)}),e,n,s,r,{[N]:()=>A,destroy:async()=>(await R.stopAutoPersisting(),i(),R)},0,A);return R},Va=(a,n,s,r,o,c,u,y,v,p,A="getDb",N)=>{let f,g,m;const O=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(s,c),[h,D,I,S]=(a=>{const e=(a=>ia(Ra,E(a)?{[Oa]:a}:a??{}))(a),n=e[Ia];if(e.mode==$a){const a=e[Oa]??t;return[1,n,[a,e[ha]??F,e[Da]??ma],Na(a)]}const{tables:{load:s={},save:r={}}={},values:o={}}=e,c=ia(Pa,o),{load:l,save:w}=c,u=[Fa(l),Fa(w),c[_a],Ma(l),Ma(w)],y=u[2],d=Na(y),v=Na(y),p=Ua(s,{[Ta]:null,[Sa]:F,[La]:i},Ta,a=>b(v,a),a=>fa(d,a)),A=Ua(r,{[_a]:null,[Sa]:F,[ba]:0,[Ca]:0,[La]:null},_a,(a,t)=>b(v,t),(a,t)=>fa(d,t));var N;return N=(a,t)=>t[4]??=da(p,t[0])?.[2]??i,R(A,(a,t)=>N(0,a)),[0,n,[p,A,u],d]})(n);return(h?Ka:Qa)(a,O,a=>{let t;const e=()=>t=setInterval(()=>$(async()=>{const[{d:t,s:e,c:n}]=await O(U+` ${G} d,${H} s,TOTAL_CHANGES() c FROM ${z}${G} JOIN ${z}${H}`);t==f&&e==g&&n==m||(w(f)||a(),f=t,g=e,m=n)}),1e3*D),n=()=>{f=g=m=null,l(t)},s=r(t=>{S.has(t)&&(n(),a(),e())});return e(),()=>{n(),o(s)}},a=>a(),u,y,v,I,L(S),async(a,t)=>await a(U+` t.name tn,c.name cn FROM ${K}list()t,${K}info(t.name)c ${j} t.schema='main'AND t.type IN('table','view')AND t.name IN(${W(t)})ORDER BY t.name,c.name`,t),p,A,e,N,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0)},Wa="change",Xa=(a,t,e,n,s)=>Va(a,e,async(a,e=[])=>{return await(n=(n,s)=>t.all(a,e,(a,t)=>a?s(a):n(t)),new o(n));var n},a=>{const e=(t,e,n)=>a(n);return t.on(Wa,e),e},a=>t.off(Wa,a),n,s,f,3,t);export{Xa as createSqlite3Persister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",r=(a,t,e)=>a.replace(t,e),o=Promise,c=a=>(t,e,n)=>a(t)?n?.():e(t),l=globalThis,w=clearInterval,y=a=>null==a,d=a=>void 0===a,u=a=>null===a,E=c(y),N=c(d),$=t=>a(t)==s,A=a=>Array.isArray(a),O=(a,t,e)=>a.slice(t,e),m=a=>a.length,_=async a=>o.all(a),g=a=>{throw Error(a)},R=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},T=(a,t)=>a.forEach(t),p=(a,t="")=>a.join(t),v=(a,t)=>a.map(t),I=a=>0==m(a),S=(a,t)=>a.filter(t),L=(a,...t)=>a.push(...t),b=a=>a.shift(),D=(a,t)=>a?.has(t)??!1,C=a=>d(a)||0==(a=>a?.size??0)(a),f=a=>[...a?.values()??[]],h=(a,t)=>a?.forEach(t),P=(a,t)=>a?.delete(t),F=Object,M=a=>F.getPrototypeOf(a),U=F.entries,G=a=>!y(a)&&E(M(a),a=>a==F.prototype||y(M(a)),()=>!0),j=F.keys,x=F.freeze,B=(a=[])=>F.fromEntries(a),H=(...a)=>F.assign({},...a),W=(a,t)=>(delete a[t],a),Y=(a,t)=>v(U(a),([a,e])=>t(e,a)),X=(a,t)=>B(Y(a,(a,e)=>[e,t(a,e)])),J=a=>F.values(a),k=a=>m(j(a)),z=a=>G(a)&&0==k(a),K=Map,V=a=>new K(a),q=(a,t)=>a?.get(t),Q=(a,t)=>v([...a?.entries()??[]],([a,e])=>t(e,a)),Z=(a,t,e)=>d(e)?(P(a,t),a):a?.set(t,e),aa=(a,t,e,n)=>(D(a,t)?n?.(q(a,t)):Z(a,t,e()),q(a,t)),ta=(a,t,e,n,s=0)=>N((e?aa:q)(a,t[s],s>m(t)-2?e:V),i=>{if(s>m(t)-2)return n?.(i)&&Z(a,t[s]),i;const r=ta(i,t,e,n,s+1);return C(i)&&Z(a,t[s]),r}),ea=/^\d+$/,na=a=>new Set(A(a)||d(a)?a:[a]),sa=(a,t)=>a?.add(t),ia={Idle:0,Loading:1,Saving:2},ra={StoreOnly:1,MergeableStoreOnly:2,StoreOrMergeableStore:3},oa=V(),ca=V(),la=(a,t,n,s,i,r,o,c={},l=0,w=[])=>{let y,E,$,O=0,_=0,p=0;aa(oa,w,()=>0),aa(ca,w,()=>[]);const v=V(),[I,S,D,f,F]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!e),([[a],[t]])=>!z(a)||!z(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!z(a)||!z(t),t.setContent]:g("Store type not supported by this Persister"))(o,a,l),[M,U,G]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?b(a):null)??e+t++,t=>{ea.test(t)&&m(a)<1e3&&L(a,t)}]})(),s=V();return[(n,i,r,o=[],c=()=>[])=>{a??=la;const l=t(1);return Z(s,l,[n,i,r,o,c]),sa(ta(i,r??[e],na),l),l},(t,n,...i)=>T(((a,t=[e])=>{const n=[],s=(a,e)=>e==m(t)?L(n,a):u(t[e])?h(a,a=>s(a,e+1)):T([t[e],null],t=>s(q(a,t),e+1));return s(a,0),n})(t,n),t=>h(t,t=>q(s,t)[0](a,...n??[],...i))),a=>N(q(s,a),([,t,i])=>(ta(t,i??[e],void 0,t=>(P(t,a),C(t)?1:0)),Z(s,a),n(a),i)),t=>N(q(s,t),([t,,e=[],n,s])=>{const i=(...r)=>{const o=m(r);o==m(e)?t(a,...r,...s(r)):u(e[o])?T(n[o]?.(...r)??[],a=>i(...r,a)):i(...r,e[o])};i()})]})(),j=a=>{a!=O&&(O=a,U(v,void 0,O))},B=t=>{(I&&A(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},H=async()=>{Q()&&a.__?.[0]?.()&&await J()},W=async a=>(2!=O&&(j(1),_++,await ra(async()=>{await R(async()=>{const e=await t();A(e)?B(e):a?F(a):g("Content is not an array: "+e)},()=>{a&&F(a)}),j(0),await H()})),la),Y=async a=>(X(),await W(a),await R(async()=>E=await s(async(a,t)=>{t||a?2!=O&&(j(1),_++,B(t??a),j(0),await H()):await W()}),r),la),X=async()=>(E&&(await R(()=>i(E),r),E=void 0),la),J=async a=>(1!=O&&(j(2),p++,await ra(async()=>{await R(()=>n(S,a),r),j(0)})),la),k=async()=>(K(),await J(),$=a.addDidFinishTransactionListener(()=>{const a=D();f(a)&&J(a)}),la),K=async()=>($&&(a.delListener($),$=void 0),la),Q=()=>!d($),ia=async(a=!1)=>{const[t,e]=a?[K,X]:[X,K];return await t(),await e(),la},ra=async(...a)=>(L(q(ca,w),...a),await(async()=>{if(!q(oa,w)){for(Z(oa,w,1);!d(y=b(q(ca,w)));)await R(y,r);Z(oa,w,0)}})(),la),la={load:W,startAutoLoad:Y,stopAutoLoad:X,isAutoLoading:()=>!d(E),save:J,startAutoSave:k,stopAutoSave:K,isAutoSaving:Q,startAutoPersisting:async(a,t=!1)=>{const[e,n]=t?[k,Y]:[Y,k];return await e(a),await n(a),la},stopAutoPersisting:ia,getStatus:()=>O,addStatusListener:a=>M(a,v),delListener:t=>(G(t),a),schedule:ra,getStore:()=>a,destroy:()=>(q(ca,w).splice(0,void 0),ia()),getStats:()=>({loads:_,saves:p}),...c};return x(la)},wa=JSON.stringify,ya=JSON.parse,da=a=>wa(a,(a,t)=>d(t)?"":t),ua=a=>""===a?void 0:A(a)?v(a,ua):G(a)?X(a,ua):a,Ea=new l.TextEncoder,Na="_",$a="_id",Aa="SELECT",Oa="WHERE",ma="TABLE",_a="INSERT",ga="DELETE",Ra="UPDATE",Ta="ALTER "+ma,pa="FROM",va=ga+" "+pa,Ia=Aa+"*"+pa,Sa="pragma_",La="data_version",ba="schema_version",Da="pragma_table_",Ca="CREATE ",fa=Ca+ma,ha="OR REPLACE ",Pa="FUNCTION",Fa="$tableName",Ma=(a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a,Ua=a=>p(v(((a,t="",e)=>a.split(t,e))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),Ga=(...a)=>Ua(p(a,"_")),ja=(a,t=[1])=>p(v(a,()=>"$"+t[0]++),n),xa=(a,t=i)=>Oa+`(${r(t,Fa,Ua(a))})`,Ba="ColumnName",Ha="store",Wa="json",Ya=Ha+"TableName",Xa=Ha+"Id"+Ba,Ja=Ha+Ba,ka="autoLoadIntervalSeconds",za="rowId"+Ba,Ka="tableId",Va="tableName",qa="deleteEmptyColumns",Qa="deleteEmptyTable",Za="condition",at={mode:Wa,[ka]:1},tt={load:0,save:0,[Va]:t+"_values"},et=(a,t,e,n,s)=>{const i=V();return X(a,(a,r)=>{const o=O(J(H(t,$(a)?{[e]:a}:a)),0,k(t));u(o[0])||n(r,o[0])||(s(r,o[0]),Z(i,r,o))}),i},nt=a=>{const e=(a=>H(at,$(a)?{[Ya]:a}:a??{}))(a),n=e[ka];if(e.mode==Wa){const a=e[Ya]??t;return[1,n,[a,e[Xa]??$a,e[Ja]??Ha],na(a)]}const{tables:{load:s={},save:r={}}={},values:o={}}=e,c=O(J(H(tt,o)),0,k(tt)),l=c[2],w=na(l),y=na(l),d=et(s,{[Ka]:null,[za]:$a,[Za]:i},Ka,a=>D(y,a),a=>sa(w,a)),u=et(r,{[Va]:null,[za]:$a,[qa]:0,[Qa]:0,[Za]:null},Va,(a,t)=>D(y,t),(a,t)=>sa(w,t));var E;return E=(a,t)=>t[4]??=q(d,t[0])?.[2]??i,h(u,(a,t)=>E(0,a)),[0,n,[d,u,c],w]},st=(a,t,e,s,r,o=it,c,l)=>{const w=V();return[async()=>{w.clear(),v(await e(a,t),({tn:a,cn:t})=>sa(aa(w,a,na),t))},async(t,e,n)=>((a,t)=>D(q(w,a),t))(t,e)?B(S(v(await a(Ia+Ua(t)+xa(t,n)),a=>[a[e],l?X(W(a,e),l):W(a,e)]),a=>!d(a[0])&&!z(a[1]))):{},async(t,e,s,l,y,u=!1,E=i)=>{const N=na();X(s??{},a=>v(j(a??{}),a=>sa(N,a)));const $=f(N);if(!u&&y&&E==i&&I($)&&D(w,t))return await a("DROP "+ma+Ua(t)),void Z(w,t);const A=q(w,t),O=na(f(A));if(I($)||(D(w,t)?await _(v([e,...$],async(n,s)=>{P(O,n)||(await a(Ta+Ua(t)+"ADD"+Ua(n)+r),0==s&&await a("CREATE UNIQUE INDEX pk ON "+Ua(t)+`(${Ua(e)})`),sa(A,n))})):(await a(fa+Ua(t)+`(${Ua(e)}${r} PRIMARY KEY${p(v($,a=>n+Ua(a)+r))});`),Z(w,t,na([e,...$])))),await _([...!u&&l?v(f(O),async n=>{n!=e&&(await a(Ta+Ua(t)+"DROP"+Ua(n)),P(A,n))}):[]]),u)d(s)?await a(va+Ua(t)+xa(t,E)):await _(Y(s,async(n,s)=>{d(n)?await a(va+Ua(t)+xa(t,E)+`AND(${Ua(e)}=$1)`,[s]):I($)||await o(a,t,e,j(n),{[s]:c?v(J(n),c):J(n)},A)}));else if(I($))D(w,t)&&await a(va+Ua(t)+xa(t,E));else{const n=S(f(q(w,t)),a=>a!=e),i={},r=[];X(s??{},(a,t)=>{i[t]=v(n,t=>c?c(a?.[t]):a?.[t]),L(r,t)}),await o(a,t,e,n,i),await a(va+Ua(t)+xa(t,E)+`AND${Ua(e)}NOT IN(${ja(r)})`,r)}},async t=>{let e;return await a("BEGIN"),await R(async()=>e=await t(),s),await a("END"),e}]},it=async(a,t,e,s,i)=>{const r=[1];await a(_a+" INTO"+Ua(t)+"("+((...a)=>p(v(a,Ua),n))(e,...s)+")VALUES"+p(Y(i,a=>"($"+r[0]+++","+ja(a,r)+")"),n)+"ON CONFLICT("+Ua(e)+`)DO ${Ra} SET`+p(v(s,a=>Ua(a)+"=excluded."+Ua(a)),n),Y(i,(a,t)=>[t,...v(a,a=>a??null)]).flat())},rt=(a,t,e,n,s,i,r,[o,c,l],w,y,d,u,E,N)=>{const[$,A,O,m]=st(t,w,y,s,E,N),_=la(a,()=>m(async()=>{return await $(),a=(await A(o,c))[Na]?.[l]??"null",ua(ya(a));var a}),a=>m(async()=>{await $(),await O(o,c,{[Na]:{[l]:da(a()??null)}},!0,!0)}),e,n,s,r,{[u]:()=>d,destroy:async()=>(await _.stopAutoPersisting(),i(),_)},0,d);return _},ot=(a,t,e,n,s,i,r,[o,c,[l,w,y]],u,E,N,$,A,O,m,g)=>{const[R,T,p,v]=st(t,u,E,s,A,O,m,g),I=(a,t)=>_(Q(c,async([e,n,s,i,r],o)=>{t&&!(o in a)||await p(e,n,a[o],s,i,t,r)})),L=async(a,t)=>w?await p(y,$a,{[Na]:a},!0,!0,t):null,b=la(a,()=>v(async()=>{await R();const a=await(async()=>B(S(await _(Q(o,async([a,t,e],n)=>[a,await T(n,t,e)])),a=>!z(a[1]))))(),t=await(async()=>l?(await T(y,$a))[Na]:{})();return z(a)&&d(t)?void 0:[a,t]}),(a,t)=>v(async()=>{if(await R(),d(t)){const[t,e]=a();await I(t),await L(e)}else await I(t[0],!0),await L(t[1],!0)}),e,n,s,r,{[$]:()=>N,destroy:async()=>(await b.stopAutoPersisting(),i(),b)},0,N);return b},ct=/^([cd]:)(.+)/,lt=(a,n,s,o,c,l,w,y,d,u,E="getDb")=>{const $=Ma(s,l),[A,,O,m]=nt(n),g=e+(a=>{let t=2166136261;return T(Ea.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(da(O)),R=t+"_"+g,I=async(a,e,n="",s="")=>{const i=Ga(t,a,g);return await $(Ca+ha+Pa+i+`()RETURNS ${n}trigger AS $$ ${s}BEGIN ${e}END;$$ LANGUAGE plpgsql;`),i},S=async(a,t,e,n)=>(await $(Ca+a+"TRIGGER"+t+e+"EXECUTE "+Pa+n+"()"),t),L=a=>`PERFORM pg_notify('${R}',${a});`,b=(a,t)=>A?i:2===t?b(a,0)+" OR "+b(a,1):r(q(O[0],a)?.[2]??i,Fa,0==t?"NEW":"OLD"),C=(a,e)=>_(v([_a,ga,Ra],(n,s)=>S(ha,Ga(t,"d",g,a,n),`AFTER ${n} ON${Ua(a)}FOR EACH ROW WHEN(${b(a,s)})`,e)));return(A?rt:ot)(a,$,async a=>{const e=await I("c",`FOR row IN SELECT object_identity FROM pg_event_trigger_ddl_commands()${Oa} command_tag='${fa}' LOOP ${L("'c:'||SPLIT_PART(row.object_identity,'.',2)")}END LOOP;`,"event_","DECLARE row record;");await S("EVENT ",Ga(t,"c",g),`ON ddl_command_end WHEN TAG IN('${fa}')`,e);const n=await I("d",L("'d:'||TG_TABLE_NAME")+"RETURN NULL;");return await _(v(f(m),async a=>(await $(fa+` IF NOT EXISTS${Ua(a)}("_id"text PRIMARY KEY)`),await C(a,n)))),[await o(R,t=>{return N((e=t,s=ct,e?.match(s)),async([,t,e])=>{D(m,e)&&("c:"==t&&await C(e,n),a())});var e,s}),[e,n]]},async([a,t])=>{c(a),await $(`DROP FUNCTION IF EXISTS${p(t,",")}CASCADE`)},w,y,d,O,f(m),async(a,t)=>await a(Aa+` table_name tn,column_name cn FROM information_schema.columns ${Oa} table_schema='public'AND table_name IN(${ja(t)})`,t),u,E,"text",void 0,a=>wa(a),a=>ya(a))},wt=(a,t,n,s,i,r,o,c,l,d,u="getDb",E)=>{let N,$,A;const O=Ma(n,r),[m,_,g,T]=nt(t);return(m?rt:ot)(a,O,a=>{let t;const e=()=>t=setInterval(()=>R(async()=>{const[{d:t,s:e,c:n}]=await O(Aa+` ${La} d,${ba} s,TOTAL_CHANGES() c FROM ${Sa}${La} JOIN ${Sa}${ba}`);t==N&&e==$&&n==A||(y(N)||a(),N=t,$=e,A=n)}),1e3*_),n=()=>{N=$=A=null,w(t)},r=s(t=>{T.has(t)&&(n(),a(),e())});return e(),()=>{n(),i(r)}},a=>a(),o,c,l,g,f(T),async(a,t)=>await a(Aa+` t.name tn,c.name cn FROM ${Da}list()t,${Da}info(t.name)c ${Oa} t.schema='main'AND t.type IN('table','view')AND t.name IN(${ja(t)})ORDER BY t.name,c.name`,t),d,u,e,E,a=>(a=>!0===a)(a)?1:(a=>!1===a)(a)?0:a,void 0)};export{ra as Persists,ia as Status,la as createCustomPersister,lt as createCustomPostgreSqlPersister,wt as createCustomSqlitePersister};
1
+ const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",r=(a,t,e)=>a.replace(t,e),o=Promise,c=a=>(t,e,n)=>a(t)?n?.():e(t),l=globalThis,w=clearInterval,d=a=>null==a,y=a=>void 0===a,u=a=>null===a,E=a=>!0===a,N=c(d),$=c(y),v=t=>a(t)==s,A=a=>Array.isArray(a),O=a=>a.length,m=async a=>o.all(a),_=a=>{throw Error(a)},g=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},R=(a,t)=>a.forEach(t),T=(a,t="")=>a.join(t),p=(a,t)=>a.map(t),I=a=>0==O(a),S=(a,t)=>a.filter(t),L=(a,...t)=>a.push(...t),b=a=>a.shift(),D=(a,t)=>a?.has(t)??!1,f=a=>y(a)||0==(a=>a?.size??0)(a),C=a=>[...a?.values()??[]],h=(a,t)=>a?.forEach(t),P=(a,t)=>a?.delete(t),F=Object,M=a=>F.getPrototypeOf(a),U=F.entries,G=a=>!d(a)&&N(M(a),a=>a==F.prototype||d(M(a)),()=>!0),j=F.keys,x=F.freeze,B=(a=[])=>F.fromEntries(a),H=(...a)=>F.assign({},...a),W=(a,t)=>(delete a[t],a),Y=(a,t)=>p(U(a),([a,e])=>t(e,a)),X=(a,t)=>B(Y(a,(a,e)=>[e,t(a,e)])),J=a=>O(j(a)),k=a=>G(a)&&0==J(a),z=Map,K=a=>new z(a),V=(a,t)=>a?.get(t),q=(a,t)=>p([...a?.entries()??[]],([a,e])=>t(e,a)),Q=(a,t,e)=>y(e)?(P(a,t),a):a?.set(t,e),Z=(a,t,e,n)=>(D(a,t)?n?.(V(a,t)):Q(a,t,e()),V(a,t)),aa=(a,t,e,n,s=0)=>$((e?Z:V)(a,t[s],s>O(t)-2?e:K),i=>{if(s>O(t)-2)return n?.(i)&&Q(a,t[s]),i;const r=aa(i,t,e,n,s+1);return f(i)&&Q(a,t[s]),r}),ta=/^\d+$/,ea=a=>new Set(A(a)||y(a)?a:[a]),na=(a,t)=>a?.add(t),sa={Idle:0,Loading:1,Saving:2},ia={StoreOnly:1,MergeableStoreOnly:2,StoreOrMergeableStore:3},ra=K(),oa=K(),ca=(a,t,n,s,i,r,o,c={},l=0,w=[])=>{let d,E,N,v=0,m=0,T=0;Z(ra,w,()=>0),Z(oa,w,()=>[]);const p=K(),[I,S,D,C,F]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!e),([[a],[t]])=>!k(a)||!k(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!k(a)||!k(t),t.setContent]:_("Store type not supported by this Persister"))(o,a,l),[M,U,G]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?b(a):null)??e+t++,t=>{ta.test(t)&&O(a)<1e3&&L(a,t)}]})(),s=K();return[(n,i,r,o=[],c=()=>[])=>{a??=la;const l=t(1);return Q(s,l,[n,i,r,o,c]),na(aa(i,r??[e],ea),l),l},(t,n,...i)=>R(((a,t=[e])=>{const n=[],s=(a,e)=>e==O(t)?L(n,a):u(t[e])?h(a,a=>s(a,e+1)):R([t[e],null],t=>s(V(a,t),e+1));return s(a,0),n})(t,n),t=>h(t,t=>V(s,t)[0](a,...n??[],...i))),a=>$(V(s,a),([,t,i])=>(aa(t,i??[e],void 0,t=>(P(t,a),f(t)?1:0)),Q(s,a),n(a),i)),t=>$(V(s,t),([t,,e=[],n,s])=>{const i=(...r)=>{const o=O(r);o==O(e)?t(a,...r,...s(r)):u(e[o])?R(n[o]?.(...r)??[],a=>i(...r,a)):i(...r,e[o])};i()})]})(),j=a=>{a!=v&&(v=a,U(p,void 0,v))},B=t=>{(I&&A(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},H=async()=>{sa()&&a.__?.[0]?.()&&await J()},W=async a=>(2!=v&&(j(1),m++,await ca(async()=>{await g(async()=>{const e=await t();A(e)?B(e):a?F(a):_("Content is not an array: "+e)},()=>{a&&F(a)}),j(0),await H()})),la),Y=async a=>(X(),await W(a),await g(async()=>E=await s(async(a,t)=>{t||a?2!=v&&(j(1),m++,B(t??a),j(0),await H()):await W()}),r),la),X=async()=>(E&&(await g(()=>i(E),r),E=void 0),la),J=async a=>(1!=v&&(j(2),T++,await ca(async()=>{await g(()=>n(S,a),r),j(0)})),la),z=async()=>(q(),await J(),N=a.addDidFinishTransactionListener(()=>{const a=D();C(a)&&J(a)}),la),q=async()=>(N&&(a.delListener(N),N=void 0),la),sa=()=>!y(N),ia=async(a=!1)=>{const[t,e]=a?[q,X]:[X,q];return await t(),await e(),la},ca=async(...a)=>(L(V(oa,w),...a),await(async()=>{if(!V(ra,w)){for(Q(ra,w,1);!y(d=b(V(oa,w)));)await g(d,r);Q(ra,w,0)}})(),la),la={load:W,startAutoLoad:Y,stopAutoLoad:X,isAutoLoading:()=>!y(E),save:J,startAutoSave:z,stopAutoSave:q,isAutoSaving:sa,startAutoPersisting:async(a,t=!1)=>{const[e,n]=t?[z,Y]:[Y,z];return await e(a),await n(a),la},stopAutoPersisting:ia,getStatus:()=>v,addStatusListener:a=>M(a,p),delListener:t=>(G(t),a),schedule:ca,getStore:()=>a,destroy:()=>(V(oa,w).splice(0,void 0),ia()),getStats:()=>({loads:m,saves:T}),...c};return x(la)},la=JSON.stringify,wa=JSON.parse,da=a=>la(a,(a,t)=>y(t)?"":t),ya=a=>""===a?void 0:A(a)?p(a,ya):G(a)?X(a,ya):a,ua=new l.TextEncoder,Ea="_",Na="_id",$a="SELECT",va="WHERE",Aa="TABLE",Oa="INSERT",ma="DELETE",_a="UPDATE",ga="ALTER "+Aa,Ra="FROM",Ta=ma+" "+Ra,pa=$a+"*"+Ra,Ia="pragma_",Sa="data_version",La="schema_version",ba="pragma_table_",Da="CREATE ",fa=Da+Aa,Ca="OR REPLACE ",ha="FUNCTION",Pa="$tableName",Fa=(a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a,Ma=a=>T(p(((a,t="",e)=>a.split(t,e))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),Ua=(...a)=>Ma(T(a,"_")),Ga=(a,t=[1])=>T(p(a,()=>"$"+t[0]++),n),ja=(a,t=i)=>va+`(${r(t,Pa,Ma(a))})`,xa="ColumnName",Ba="store",Ha="json",Wa=Ba+"TableName",Ya=Ba+"Id"+xa,Xa=Ba+xa,Ja="autoLoadIntervalSeconds",ka="rowId"+xa,za="tableId",Ka="tableName",Va="deleteEmptyColumns",qa="deleteEmptyTable",Qa="condition",Za={mode:Ha,[Ja]:1},at={load:0,save:0,[Ka]:t+"_values"},tt=a=>A(a)?a:void 0,et=a=>E(a)||A(a),nt=(a,t,e,n,s)=>{const i=K();return X(a,(a,r)=>{const o=(w=H(t,v(a)?{[e]:a}:a),c=F.values(w),l=J(t),c.slice(0,l));var c,l,w;u(o[0])||n(r,o[0])||(s(r,o[0]),Q(i,r,o))}),i},st=a=>{const e=(a=>H(Za,v(a)?{[Wa]:a}:a??{}))(a),n=e[Ja];if(e.mode==Ha){const a=e[Wa]??t;return[1,n,[a,e[Ya]??Na,e[Xa]??Ba],ea(a)]}const{tables:{load:s={},save:r={}}={},values:o={}}=e,c=H(at,o),{load:l,save:w}=c,d=[et(l),et(w),c[Ka],tt(l),tt(w)],y=d[2],u=ea(y),E=ea(y),N=nt(s,{[za]:null,[ka]:Na,[Qa]:i},za,a=>D(E,a),a=>na(u,a)),$=nt(r,{[Ka]:null,[ka]:Na,[Va]:0,[qa]:0,[Qa]:null},Ka,(a,t)=>D(E,t),(a,t)=>na(u,t));var A;return A=(a,t)=>t[4]??=V(N,t[0])?.[2]??i,h($,(a,t)=>A(0,a)),[0,n,[N,$,d],u]},it=(a,t,e,s,r,o=rt,c,l)=>{const w=K();return[async()=>{w.clear(),p(await e(a,t),({tn:a,cn:t})=>na(Z(w,a,ea),t))},async(t,e,n,s)=>{const i=y(s)?void 0:ea(s);return((a,t)=>D(V(w,a),t))(t,e)?B(S(p(await a(pa+Ma(t)+ja(t,n)),a=>{const t=a[e],n=l?X(W(a,e),l):W(a,e);return[t,y(i)?n:B(S(Y(n,(a,t)=>[t,a]),([a])=>(a=>y(i)||D(i,a))(a)))]}),a=>!y(a[0])&&!k(a[1]))):{}},async(t,e,s,l,d,u=!1,E=i,N)=>{const $=y(N)?void 0:ea(N),v=a=>y($)||D($,a),A=ea();X(s??{},a=>p(S(j(a??{}),v),a=>na(A,a)));const O=C(A);if(y($)&&!u&&d&&E==i&&I(O)&&D(w,t))return await a("DROP "+Aa+Ma(t)),void Q(w,t);const _=V(w,t),g=ea(S(C(_),a=>a==e||v(a)));if(I(O)||(D(w,t)?await m(p([e,...O],async(n,s)=>{P(g,n)||(await a(ga+Ma(t)+"ADD"+Ma(n)+r),0==s&&await a("CREATE UNIQUE INDEX pk ON "+Ma(t)+`(${Ma(e)})`),na(_,n))})):(await a(fa+Ma(t)+`(${Ma(e)}${r} PRIMARY KEY${T(p(O,a=>n+Ma(a)+r))});`),Q(w,t,ea([e,...O])))),await m([...!u&&l?p(C(g),async n=>{n!=e&&(await a(ga+Ma(t)+"DROP"+Ma(n)),P(_,n))}):[]]),u)y(s)?y($)&&await a(Ta+Ma(t)+ja(t,E)):await m(Y(s,async(n,s)=>{if(y(n))await a(Ta+Ma(t)+ja(t,E)+`AND(${Ma(e)}=$1)`,[s]);else if(!I(O)){const i=S(j(n),v);I(i)||await o(a,t,e,i,{[s]:p(i,a=>c?c(n[a]):n[a])},_)}}));else if(I(O))y($)&&D(w,t)&&await a(Ta+Ma(t)+ja(t,E));else{const n=S(C(V(w,t)),a=>a!=e&&v(a)),i={},r=[];X(s??{},(a,t)=>{i[t]=p(n,t=>c?c(a?.[t]):a?.[t]),L(r,t)}),await o(a,t,e,n,i,_),await a(Ta+Ma(t)+ja(t,E)+`AND${Ma(e)}NOT IN(${Ga(r)})`,r)}},async t=>{let e;return await a("BEGIN"),await g(async()=>e=await t(),s),await a("END"),e}]},rt=async(a,t,e,s,i)=>{const r=[1];await a(Oa+" INTO"+Ma(t)+"("+((...a)=>T(p(a,Ma),n))(e,...s)+")VALUES"+T(Y(i,a=>"($"+r[0]+++","+Ga(a,r)+")"),n)+"ON CONFLICT("+Ma(e)+`)DO ${_a} SET`+T(p(s,a=>Ma(a)+"=excluded."+Ma(a)),n),Y(i,(a,t)=>[t,...p(a,a=>a??null)]).flat())},ot=(a,t,e,n,s,i,r,[o,c,l],w,d,y,u,E,N)=>{const[$,v,A,O]=it(t,w,d,s,E,N),m=ca(a,()=>O(async()=>{return await $(),a=(await v(o,c))[Ea]?.[l]??"null",ya(wa(a));var a}),a=>O(async()=>{await $(),await A(o,c,{[Ea]:{[l]:da(a()??null)}},!0,!0)}),e,n,s,r,{[u]:()=>y,destroy:async()=>(await m.stopAutoPersisting(),i(),m)},0,y);return m},ct=(a,t,e,n,s,i,r,[o,c,[l,w,d,u,E]],N,$,v,A,O,_,g,R)=>{const[T,I,L,b]=it(t,N,$,s,O,_,g,R),D=(a,t)=>m(q(c,async([e,n,s,i,r],o)=>{t&&!(o in a)||await L(e,n,a[o],s,i,t,r)})),f=(a,t,e)=>B(1==e?S(Y(a,(a,t)=>[t,a]),([a])=>{return e=a,t.includes(e);var e}):S(p(t,t=>[t,a[t]]),([,a])=>!y(a))),C=async(a,t)=>w?await L(d,Na,{[Ea]:y(E)?a:f(a,E,t)},!0,!0,t,void 0,E):null,h=ca(a,()=>b(async()=>{await T();const a=await(async()=>B(S(await m(q(o,async([a,t,e],n)=>[a,await I(n,t,e)])),a=>!k(a[1]))))(),t=await(async()=>l?(await I(d,Na,void 0,u))[Ea]:{})();return k(a)&&y(t)?void 0:[a,t]}),(a,t)=>b(async()=>{if(await T(),y(t)){const[t,e]=a();await D(t),await C(e)}else await D(t[0],!0),await C(t[1],!0)}),e,n,s,r,{[A]:()=>v,destroy:async()=>(await h.stopAutoPersisting(),i(),h)},0,v);return h},lt=/^([cd]:)(.+)/,wt=(a,n,s,o,c,l,w,d,y,u,E="getDb")=>{const N=Fa(s,l),[v,,A,O]=st(n),_=e+(a=>{let t=2166136261;return R(ua.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(da(A)),g=t+"_"+_,I=async(a,e,n="",s="")=>{const i=Ua(t,a,_);return await N(Da+Ca+ha+i+`()RETURNS ${n}trigger AS $$ ${s}BEGIN ${e}END;$$ LANGUAGE plpgsql;`),i},S=async(a,t,e,n)=>(await N(Da+a+"TRIGGER"+t+e+"EXECUTE "+ha+n+"()"),t),L=a=>`PERFORM pg_notify('${g}',${a});`,b=(a,t)=>v?i:2===t?b(a,0)+" OR "+b(a,1):r(V(A[0],a)?.[2]??i,Pa,0==t?"NEW":"OLD"),f=(a,e)=>m(p([Oa,ma,_a],(n,s)=>S(Ca,Ua(t,"d",_,a,n),`AFTER ${n} ON${Ma(a)}FOR EACH ROW WHEN(${b(a,s)})`,e)));return(v?ot:ct)(a,N,async a=>{const e=await I("c",`FOR row IN SELECT object_identity FROM pg_event_trigger_ddl_commands()${va} command_tag='${fa}' LOOP ${L("'c:'||SPLIT_PART(row.object_identity,'.',2)")}END LOOP;`,"event_","DECLARE row record;");await S("EVENT ",Ua(t,"c",_),`ON ddl_command_end WHEN TAG IN('${fa}')`,e);const n=await I("d",L("'d:'||TG_TABLE_NAME")+"RETURN NULL;");return await m(p(C(O),async a=>(await N(fa+` IF NOT EXISTS${Ma(a)}("_id"text PRIMARY KEY)`),await f(a,n)))),[await o(g,t=>{return $((e=t,s=lt,e?.match(s)),async([,t,e])=>{D(O,e)&&("c:"==t&&await f(e,n),a())});var e,s}),[e,n]]},async([a,t])=>{c(a),await N(`DROP FUNCTION IF EXISTS${T(t,",")}CASCADE`)},w,d,y,A,C(O),async(a,t)=>await a($a+` table_name tn,column_name cn FROM information_schema.columns ${va} table_schema='public'AND table_name IN(${Ga(t)})`,t),u,E,"text",void 0,a=>la(a),a=>wa(a))},dt=(a,t,n,s,i,r,o,c,l,y,u="getDb",N)=>{let $,v,A;const O=Fa(n,r),[m,_,R,T]=st(t);return(m?ot:ct)(a,O,a=>{let t;const e=()=>t=setInterval(()=>g(async()=>{const[{d:t,s:e,c:n}]=await O($a+` ${Sa} d,${La} s,TOTAL_CHANGES() c FROM ${Ia}${Sa} JOIN ${Ia}${La}`);t==$&&e==v&&n==A||(d($)||a(),$=t,v=e,A=n)}),1e3*_),n=()=>{$=v=A=null,w(t)},r=s(t=>{T.has(t)&&(n(),a(),e())});return e(),()=>{n(),i(r)}},a=>a(),o,c,l,R,C(T),async(a,t)=>await a($a+` t.name tn,c.name cn FROM ${ba}list()t,${ba}info(t.name)c ${va} t.schema='main'AND t.type IN('table','view')AND t.name IN(${Ga(t)})ORDER BY t.name,c.name`,t),y,u,e,N,a=>E(a)?1:(a=>!1===a)(a)?0:a,void 0)};export{ia as Persists,sa as Status,ca as createCustomPersister,wt as createCustomPostgreSqlPersister,dt as createCustomSqlitePersister};
@@ -1 +1 @@
1
- const e=e=>typeof e,t=e(""),r=e(!0),n=e(0),s=e(e),o="Listener",a="Result",l="Ids",i="Table",d="Row",c=d+"Count",u=d+l,v="Sorted"+d+l,w="Cell",L=w+l,f=Math,g=e=>(t,r,n)=>e(t)?n?.():r(t),R=f.max,h=f.min,m=isFinite,p=e=>null==e,y=e=>void 0===e,C=e=>!0===e,b=g(p),T=g(y),I=t=>e(t)==s,V=e=>Array.isArray(e),E=(e,t,r)=>e.slice(t,r),P=e=>e.length,S=()=>{},Q=(e,t)=>e.every(t),_=(e,t)=>e.forEach(t),j=e=>k(e,(e,t)=>e+t,0),k=(e,t,r)=>e.reduce(t,r),x=(e,...t)=>e.push(...t),D=e=>e?.size??0,M=(e,t)=>e?.has(t)??!1,z=e=>y(e)||0==D(e),A=e=>[...e?.values()??[]],F=e=>e.clear(),O=(e,t)=>e?.forEach(t),W=(e,t)=>e?.delete(t),q=Object,B=e=>q.getPrototypeOf(e),G=q.entries,H=e=>!p(e)&&b(B(e),e=>e==q.prototype||p(B(e)),()=>!0),J=q.keys,K=q.freeze,N=Map,U=e=>new N(e),X=(e,t)=>e?.get(t),Y=(e,t)=>O(e,(e,r)=>t(r,e)),Z=(e,t,r)=>y(r)?(W(e,t),e):e?.set(t,r),$=(e,t,r,n)=>(M(e,t)?n?.(X(e,t)):Z(e,t,r()),X(e,t)),ee=(e,t,r,n,s=0)=>T((r?$:X)(e,t[s],s>P(t)-2?r:U),o=>{if(s>P(t)-2)return n?.(o)&&Z(e,t[s]),o;const a=ee(o,t,r,n,s+1);return z(o)&&Z(e,t[s]),a}),te=U([["avg",[(e,t)=>j(e)/t,(e,t,r)=>e+(t-e)/(r+1),(e,t,r)=>e+(e-t)/(r-1),(e,t,r,n)=>e+(t-r)/n]],["max",[e=>R(...e),(e,t)=>R(t,e),(e,t)=>t==e?void 0:e,(e,t,r)=>r==e?void 0:R(t,e)]],["min",[e=>h(...e),(e,t)=>h(t,e),(e,t)=>t==e?void 0:e,(e,t,r)=>r==e?void 0:h(t,e)]],["sum",[e=>j(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,r)=>e-r+t]]]),re=e=>new Set(V(e)||y(e)?e:[e]),ne=(e,t)=>e?.add(t),se="_",oe=(()=>{const s=new WeakMap;return l=>(s.has(l)||s.set(l,(s=>{const l=s._[0],f=l(),g=l(),R=l(),h=U(),p=re(),b=U(),j=U(),k={table:0,tableCellIds:0,rowCount:0,rowIds:0,sortedRowIds:0,row:0,cellIds:0,cell:0},B=U(),N=U(),{_:[,oe,ae],delListener:le}=R,[ie,de,ce,ue,ve,we,Le,fe,,ge,Re,he]=((e,t,r,n,s)=>{const o=e.hasRow,a=U(),l=U(),i=U(),d=U(),c=U(),u=U(),v=t=>T(X(u,t),r=>{_(A(r),t=>{e.delListener(t),W(r,t)}),Z(u,t)}),w=(e,t)=>{Z(a,e,t),M(l,e)||(Z(l,e,[]),Z(d,e,U()),Z(c,e,U()),s(i))},L=e=>{Z(a,e),Z(l,e),Z(d,e),Z(c,e),v(e),s(i)};return[()=>e,()=>{return e=a,[...e?.keys()??[]];var e},e=>Y(l,e),e=>M(l,e),e=>X(a,e),e=>X(l,e),(e,t)=>Z(l,e,t),w,(t,n,s,a,l)=>{w(t,n);const i=U(),L=U(),f=X(d,t),g=X(c,t),R=t=>{const s=r=>e.getCell(n,t,r),d=X(f,t),c=o(n,t)?r(a(s,t)):void 0;var u,v;if(d===c||V(d)&&V(c)&&(v=c,P(u=d)===P(v)&&Q(u,(e,t)=>v[t]===e))||Z(i,t,[d,c]),!y(l)){const e=X(g,t),r=o(n,t)?l(s,t):void 0;e!=r&&Z(L,t,r)}},h=e=>{s(()=>{O(i,([,e],t)=>Z(f,t,e)),O(L,(e,t)=>Z(g,t,e))},i,L,f,g,e),F(i),F(L)};Y(f,R),e.hasTable(n)&&_(e.getRowIds(n),e=>{M(f,e)||R(e)}),h(!0),v(t),((e,...t)=>{const r=$(u,e,re);_(t,e=>ne(r,e))})(t,e.addRowListener(n,null,(e,t,r)=>R(r)),e.addTableListener(n,()=>h()))},L,e=>n(e,i),()=>Y(u,L)]})(s,0,S,oe,ae),me=e=>$(h,e,l),pe=(e,t,...r)=>_(r,r=>ne($($(B,t,U),e,re),r)),ye=e=>{T(X(B,e),e=>{Y(e,(e,t)=>O(t,t=>e.delListener(t))),F(e)}),_([me(e),f],t=>t.delTable(e))},Ce=(e,t,r,...n)=>{const s=$($(N,t,U),e,re);return _(n,t=>{ne(s,t),r&&e.callListener(t)}),n},be=(e,t,r)=>T(X(X(N,e),t),n=>{t.delListener(r),W(n,r),z(n)&&Z(X(N,e),t)}),Te=e=>T(X(N,e),e=>{Y(e,(e,t)=>O(t,t=>e.delListener(t))),F(e)}),Ie=(e,t,r)=>pe(t,e,t.addStartTransactionListener(r.startTransaction),t.addDidFinishTransactionListener(()=>r.finishTransaction())),Ve=(e,t)=>{return(H(r=t)&&0==(e=>P(J(e)))(r)?g.delRow:g.setRow)(se,e,{...t});var r},Ee=o=>me(o).transaction(()=>T(we(o),([a,,l])=>{const i=ve(o),d=l?me(i):s,c=me(o),u=Se(o);ne(p,o),ye(o),Te(o);const v=[],w=[[void 0,[i,void 0,void 0,[],U(),d]]],L=[],g=[],R=[];a({select:(e,t,r)=>{const n=C(e)?t:e,s=C(e)?r:t,o=I(e)?[P(v)+"",e]:y(s)?[e,t=>t(e)]:[s,t=>C(e)?t(!0,n,s):t(n,s)];return x(v,o),{as:e=>o[0]=e}},join:(e,t,r,n)=>{const o=C(e)?t:e,[a,l]=C(e)?y(n)||I(r)?[void 0,r]:[r,n]:y(r)||I(t)?[void 0,t]:[t,r],i=[o,[o,a,I(l)?l:e=>e(l),[],U(),C(e)?me(o):s]];return x(w,i),{as:e=>i[0]=e}},where:(e,t,r,n)=>x(L,I(e)?e:C(e)?e=>e(!0,t,r)===n:y(r)?r=>r(e)===t:n=>n(e,t)===r),group:(e,t,r,n,s)=>{const o=[e,[e,I(t)?[t,r,n,s]:X(te,t)??[(e,t)=>t]]];return x(g,o),{as:e=>o[0]=e}},having:(e,t)=>x(R,I(e)?e:r=>r(e)===t),param:e=>{return t=e,T(u,e=>e[t]);var t}});const h=U(v);if(z(h))return W(p,o),Qe;const b=U(w);Y(b,(e,[,t])=>T(X(b,t),({3:t})=>y(e)?0:x(t,e)));const E=U(g);let S=f;if(z(E)&&0==P(R))S=c;else{Ie(o,S,c);const s=U();Y(E,(e,[t,r])=>ne($(s,t,re),[e,r]));const a=re();Y(h,e=>M(s,e)?0:ne(a,e));const l=U(),i=(a,l,i,d)=>T(a,([u,v,w,L])=>{Y(l,(o,[a])=>{const l=$(u,o,U),c=X(l,i),v=d?void 0:a;if(c!==v){const a=re([[c,v]]),d=D(l);Z(l,i,v),O(X(s,o),([s,o])=>{const i=((e,t,r,n,s,o=!1)=>{if(z(r))return;const[a,l,i,d]=s;return o||=y(e),O(n,([r,n])=>{o||(e=y(r)?l?.(e,n,t++):y(n)?i?.(e,r,t--):d?.(e,n,r,t),o||=y(e))}),o?a(A(r),D(r)):e})(L[s],d,l,a,o);L[s]=y((s=>{if(null===s)return"null";if(V(s))return"array";if(H(s))return"object";const o=e(s);return(e=>e==t||e==r)(o)||o==n&&m(s)?o:void 0})(i))?void 0:i})}}),z(v)||!Q(R,e=>e(e=>L[e]))?c.delRow(o,w):y(w)?a[2]=c.addRow(o,L):c.setRow(o,w,L)});pe(S,o,S.addRowListener(o,null,(e,t,r,n)=>{const d=[],c=[],u=U(),v=S.hasRow(o,r);let w=!v;O(a,e=>{const[t,s,a]=n(o,r,e);x(d,s),x(c,a),w||=t}),Y(s,e=>{const[t,,s]=n(o,r,e);(w||t)&&Z(u,e,[s])}),w&&i(ee(l,d,void 0,([,e])=>(W(e,r),z(e))),u,r,1),v&&i(ee(l,c,()=>{const e={};return O(a,t=>e[t]=S.getCell(o,r,t)),[U(),re(),void 0,e]},([,e])=>{ne(e,r)}),u,r)}))}Ie(o,d,S);const j=(e,t,r,n,s)=>{const a=e=>t.getCell(r,n,e);_(s,t=>{const[r,,n,s,l,i]=X(b,t),d=n?.(a,e),c=X(l,e),u=c?.[0];d!=u&&(T(c,([,e,t])=>be(o,e,t)),Z(l,e,y(d)?void 0:[d,i,...Ce(i,o,1,i.addRowListener(r,d,()=>j(e,i,r,d,s)))]))}),(e=>{const t=(t,r,n)=>{const s=C(t)?r:t,o=C(t)?n:r;if(y(o))return d.getCell(i,e,t);if(s===i&&!C(t))return d.getCell(i,e,o);const a=X(b,s);return y(a)?void 0:a[5].getCell(a[0],X(a[4],e)?.[0],o)};S.transaction(()=>Q(L,e=>e(t))?Y(h,(r,n)=>S._[5](o,e,r,n(t,e))):S.delRow(o,e))})(e)},{3:k}=X(b,void 0),F=(e,t,r)=>{d.hasRow(i,r)?j(r,d,i,r,k):(S.delRow(o,r),O(b,({4:e})=>T(X(e,r),([,t,n])=>{be(o,t,n),Z(e,r)})))};return S.transaction(()=>{_(d.getRowIds(i),e=>F(0,0,e)),Ce(d,o,0,d.addRowListener(i,null,F))}),W(p,o),Qe})),Pe=e=>(T(we(e),([,e])=>g.delListener(e)),g.delRow(se,e),ye(e),Te(e),ge(e),Qe),Se=e=>g.getRow(se,e),Qe={setQueryDefinition:(e,t,r,n,s={})=>{const[o,a,l,i]=C(t)?[r,n,1,s]:[t,r,0,n??{}];return T(we(e),([,e])=>g.delListener(e)),fe(e,o),Le(e,[a,g.addRowListener(se,e,()=>Ee(e)),l]),Ve(e,i),Ee(e),Qe},delQueryDefinition:Pe,getParamValues:Se,getParamValue:(e,t)=>g.getCell(se,e,t),setParamValues:(e,t)=>(ue(e)&&Ve(e,t),Qe),setParamValue:(e,t,r)=>(ue(e)&&g.setCell(se,e,t,r),Qe),getStore:ie,getQueryIds:de,forEachQuery:ce,hasQuery:ue,getTableId:ve,forEachResultTable:e=>ce(t=>me(t).hasTable(t)?e(t,e=>Qe.forEachResultRow(t,e)):0),addQueryIdsListener:e=>Re(()=>e(Qe)),addParamValuesListener:(e,t)=>"p"+g.addRowListener(se,e,(e,r,n)=>t(Qe,n,Se(n))),addParamValueListener:(e,t,r)=>"p"+g.addCellListener(se,e,t,(e,t,n,s,o)=>r(Qe,n,s,o)),delListener:e=>{const t=X(b,e);if("p"==e[0])g.delListener(E(e,1));else if(y(t))le(e);else{const[r,n,s]=t;Y(n,(e,[t,r])=>t.delListener(r)),T(s,le),Z(b,e),le(e),k[r]--}return Qe},destroy:()=>{_(de(),Pe),he()},getListenerStats:()=>({...k,paramValues:g.getListenerStats().row-P(de()),paramValue:g.getListenerStats().cell})};return _e=([e,t],r)=>{_(E(["get","has","forEach"],0,e),e=>Qe[e+a+r]=(...t)=>me(t[0])[e+r](...t)),Qe["add"+a+r+o]=(...e)=>((n,s)=>{const a=oe(S,j),l=U(),i=()=>{const n=null==s?de():[s];_(n,n=>{return M(l,n)?0:Z(l,n,[me(n),(s=me(n),s["add"+r+o](...((e,t)=>5==t?[e[0],e[1]??void 0,e[2],e[3],e[4]]:E(e,0,t))(e,t),(r,...n)=>e[t](Qe,...n),!0))]);var s}),Y(l,(e,[t,r])=>null==s&&ue(e)||e==s?0:(t.delListener(r),void Z(l,e)))};return i(),Z(b,a,[n,l,null==s?Re(i):void 0]),k[n]++,a})((e=>e[0].toLowerCase()+E(e,1))(r),e[0])},((e=[])=>{q.fromEntries(e)})(((e,t)=>((e,t)=>e.map(t))(G(e),([e,r])=>t(r,e)))({[i]:[2,1],[i+L]:[1,1],[c]:[1,1],[u]:[1,1],[v]:[1,5],[d]:[3,2],[L]:[1,2],[w]:[3,3]},(e,t)=>[t,_e(e,t)])),K(Qe);var _e})(l)),s.get(l))})();export{oe as createQueries};
1
+ const e=e=>typeof e,t=e(""),r=e(!0),n=e(0),s=e(e),o="Listener",a="Result",i="Ids",l="Table",d="Row",c=d+"Count",u=d+i,v="Sorted"+d+i,w="Cell",L=w+i,f=Math,g=e=>(t,r,n)=>e(t)?n?.():r(t),R=f.max,h=f.min,m=isFinite,p=e=>null==e,y=e=>void 0===e,C=e=>!0===e,b=g(p),T=g(y),I=t=>e(t)==s,V=e=>Array.isArray(e),E=(e,t,r)=>e.slice(t,r),P=e=>e.length,S=()=>{},Q=(e,t)=>e.every(t),_=(e,t)=>e.forEach(t),j=e=>k(e,(e,t)=>e+t,0),k=(e,t,r)=>e.reduce(t,r),x=(e,...t)=>e.push(...t),D=e=>e?.size??0,M=(e,t)=>e?.has(t)??!1,z=e=>y(e)||0==D(e),A=e=>[...e?.values()??[]],F=e=>e.clear(),O=(e,t)=>e?.forEach(t),W=(e,t)=>e?.delete(t),q=Object,B=e=>q.getPrototypeOf(e),G=q.entries,H=e=>!p(e)&&b(B(e),e=>e==q.prototype||p(B(e)),()=>!0),J=q.keys,K=q.freeze,N=Map,U=e=>new N(e),X=(e,t)=>e?.get(t),Y=(e,t)=>O(e,(e,r)=>t(r,e)),Z=(e,t,r)=>y(r)?(W(e,t),e):e?.set(t,r),$=(e,t,r,n)=>(M(e,t)?n?.(X(e,t)):Z(e,t,r()),X(e,t)),ee=(e,t,r,n,s=0)=>T((r?$:X)(e,t[s],s>P(t)-2?r:U),o=>{if(s>P(t)-2)return n?.(o)&&Z(e,t[s]),o;const a=ee(o,t,r,n,s+1);return z(o)&&Z(e,t[s]),a}),te=U([["avg",[(e,t)=>j(e)/t,(e,t,r)=>e+(t-e)/(r+1),(e,t,r)=>e+(e-t)/(r-1),(e,t,r,n)=>e+(t-r)/n]],["max",[e=>R(...e),(e,t)=>R(t,e),(e,t)=>t==e?void 0:e,(e,t,r)=>r==e?void 0:R(t,e)]],["min",[e=>h(...e),(e,t)=>h(t,e),(e,t)=>t==e?void 0:e,(e,t,r)=>r==e?void 0:h(t,e)]],["sum",[e=>j(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,r)=>e-r+t]]]),re=e=>new Set(V(e)||y(e)?e:[e]),ne=(e,t)=>e?.add(t),se="_",oe=(()=>{const s=new WeakMap;return i=>(s.has(i)||s.set(i,(s=>{const i=s._[0],f=i(),g=i(),R=U(),h=U(),p=re(),b=U(),j=U(),k={table:0,tableCellIds:0,rowCount:0,rowIds:0,sortedRowIds:0,row:0,cellIds:0,cell:0},B=U(),N=U(),{_:[,oe,ae],delListener:ie}=g,[le,de,ce,ue,ve,we,Le,fe,,ge,Re,he]=((e,t,r,n,s)=>{const o=e.hasRow,a=U(),i=U(),l=U(),d=U(),c=U(),u=U(),v=t=>T(X(u,t),r=>{_(A(r),t=>{e.delListener(t),W(r,t)}),Z(u,t)}),w=(e,t)=>{Z(a,e,t),M(i,e)||(Z(i,e,[]),Z(d,e,U()),Z(c,e,U()),s(l))},L=e=>{Z(a,e),Z(i,e),Z(d,e),Z(c,e),v(e),s(l)};return[()=>e,()=>{return e=a,[...e?.keys()??[]];var e},e=>Y(i,e),e=>M(i,e),e=>X(a,e),e=>X(i,e),(e,t)=>Z(i,e,t),w,(t,n,s,a,i)=>{w(t,n);const l=U(),L=U(),f=X(d,t),g=X(c,t),R=t=>{const s=r=>e.getCell(n,t,r),d=X(f,t),c=o(n,t)?r(a(s,t)):void 0;var u,v;if(d===c||V(d)&&V(c)&&(v=c,P(u=d)===P(v)&&Q(u,(e,t)=>v[t]===e))||Z(l,t,[d,c]),!y(i)){const e=X(g,t),r=o(n,t)?i(s,t):void 0;e!=r&&Z(L,t,r)}},h=e=>{s(()=>{O(l,([,e],t)=>Z(f,t,e)),O(L,(e,t)=>Z(g,t,e))},l,L,f,g,e),F(l),F(L)};Y(f,R),e.hasTable(n)&&_(e.getRowIds(n),e=>{M(f,e)||R(e)}),h(!0),v(t),((e,...t)=>{const r=$(u,e,re);_(t,e=>ne(r,e))})(t,e.addRowListener(n,null,(e,t,r)=>R(r)),e.addTableListener(n,()=>h()))},L,e=>n(e,l),()=>Y(u,L)]})(s,0,S,oe,ae),me=e=>$(h,e,i),pe=(e,t,...r)=>_(r,r=>ne($($(B,t,U),e,re),r)),ye=e=>{T(X(B,e),e=>{Y(e,(e,t)=>O(t,t=>e.delListener(t))),F(e)}),_([me(e),X(R,e)],t=>t?.delTable(e))},Ce=(e,t,r,...n)=>{const s=$($(N,t,U),e,re);return _(n,t=>{ne(s,t),r&&e.callListener(t)}),n},be=(e,t,r)=>T(X(X(N,e),t),n=>{t.delListener(r),W(n,r),z(n)&&Z(X(N,e),t)}),Te=e=>T(X(N,e),e=>{Y(e,(e,t)=>O(t,t=>e.delListener(t))),F(e)}),Ie=(e,t,r)=>pe(t,e,t.addStartTransactionListener(r.startTransaction),t.addDidFinishTransactionListener(()=>r.finishTransaction())),Ve=(e,t)=>{return(H(r=t)&&0==(e=>P(J(e)))(r)?f.delRow:f.setRow)(se,e,{...t});var r},Ee=o=>me(o).transaction(()=>T(we(o),([a,,l])=>{const d=ve(o),c=l?me(d):s,u=me(o),v=Se(o);ne(p,o),ye(o),Te(o);const w=[],L=[[void 0,[d,void 0,void 0,[],U(),c]]],f=[],g=[],h=[];a({select:(e,t,r)=>{const n=C(e)?t:e,s=C(e)?r:t,o=I(e)?[P(w)+"",e]:y(s)?[e,t=>t(e)]:[s,t=>C(e)?t(!0,n,s):t(n,s)];return x(w,o),{as:e=>o[0]=e}},join:(e,t,r,n)=>{const o=C(e)?t:e,[a,i]=C(e)?y(n)||I(r)?[void 0,r]:[r,n]:y(r)||I(t)?[void 0,t]:[t,r],l=[o,[o,a,I(i)?i:e=>e(i),[],U(),C(e)?me(o):s]];return x(L,l),{as:e=>l[0]=e}},where:(e,t,r,n)=>x(f,I(e)?e:C(e)?e=>e(!0,t,r)===n:y(r)?r=>r(e)===t:n=>n(e,t)===r),group:(e,t,r,n,s)=>{const o=[e,[e,I(t)?[t,r,n,s]:X(te,t)??[(e,t)=>t]]];return x(g,o),{as:e=>o[0]=e}},having:(e,t)=>x(h,I(e)?e:r=>r(e)===t),param:e=>{return t=e,T(v,e=>e[t]);var t}});const b=U(w);if(z(b))return W(p,o),Qe;const E=U(L);Y(E,(e,[,t])=>T(X(E,t),({3:t})=>y(e)?0:x(t,e)));const S=U(g),j=!(z(S)&&(k=h,0==P(k)));var k;const F=j?(e=>$(R,e,i))(o):u;if(j){Ie(o,F,u);const s=U();Y(S,(e,[t,r])=>ne($(s,t,re),[e,r]));const a=re();Y(b,e=>M(s,e)?0:ne(a,e));const i=U(),l=(a,i,l,d)=>T(a,([c,v,w,L])=>{Y(i,(o,[a])=>{const i=$(c,o,U),u=X(i,l),v=d?void 0:a;if(u!==v){const a=re([[u,v]]),d=D(i);Z(i,l,v),O(X(s,o),([s,o])=>{const l=((e,t,r,n,s,o=!1)=>{if(z(r))return;const[a,i,l,d]=s;return o||=y(e),O(n,([r,n])=>{o||(e=y(r)?i?.(e,n,t++):y(n)?l?.(e,r,t--):d?.(e,n,r,t),o||=y(e))}),o?a(A(r),D(r)):e})(L[s],d,i,a,o);L[s]=y((s=>{if(null===s)return"null";if(V(s))return"array";if(H(s))return"object";const o=e(s);return(e=>e==t||e==r)(o)||o==n&&m(s)?o:void 0})(l))?void 0:l})}}),z(v)||!Q(h,e=>e(e=>L[e]))?u.delRow(o,w):y(w)?a[2]=u.addRow(o,L):u.setRow(o,w,L)});pe(F,o,F.addRowListener(o,null,(e,t,r,n)=>{const d=[],c=[],u=U(),v=F.hasRow(o,r);let w=!v;O(a,e=>{const[t,s,a]=n(o,r,e);x(d,s),x(c,a),w||=t}),Y(s,e=>{const[t,,s]=n(o,r,e);(w||t)&&Z(u,e,[s])}),w&&l(ee(i,d,void 0,([,e])=>(W(e,r),z(e))),u,r,1),v&&l(ee(i,c,()=>{const e={};return O(a,t=>e[t]=F.getCell(o,r,t)),[U(),re(),void 0,e]},([,e])=>{ne(e,r)}),u,r)}))}Ie(o,c,F);const q=(e,t,r,n,s)=>{const a=e=>t.getCell(r,n,e);_(s,t=>{const[r,,n,s,i,l]=X(E,t),d=n?.(a,e),c=X(i,e),u=c?.[0];d!=u&&(T(c,([,e,t])=>be(o,e,t)),Z(i,e,y(d)?void 0:[d,l,...Ce(l,o,1,l.addRowListener(r,d,()=>q(e,l,r,d,s)))]))}),(e=>{const t=(t,r,n)=>{const s=C(t)?r:t,o=C(t)?n:r;if(y(o))return c.getCell(d,e,t);if(s===d&&!C(t))return c.getCell(d,e,o);const a=X(E,s);return y(a)?void 0:a[5].getCell(a[0],X(a[4],e)?.[0],o)};F.transaction(()=>Q(f,e=>e(t))?Y(b,(r,n)=>F._[5](o,e,r,n(t,e))):F.delRow(o,e))})(e)},{3:B}=X(E,void 0),G=(e,t,r)=>{c.hasRow(d,r)?q(r,c,d,r,B):(F.delRow(o,r),O(E,({4:e})=>T(X(e,r),([,t,n])=>{be(o,t,n),Z(e,r)})))};return F.transaction(()=>{_(c.getRowIds(d),e=>G(0,0,e)),Ce(c,o,0,c.addRowListener(d,null,G))}),W(p,o),Qe})),Pe=e=>(T(we(e),([,e])=>f.delListener(e)),f.delRow(se,e),ye(e),Te(e),ge(e),Qe),Se=e=>f.getRow(se,e),Qe={setQueryDefinition:(e,t,r,n,s={})=>{const[o,a,i,l]=C(t)?[r,n,1,s]:[t,r,0,n??{}];return T(we(e),([,e])=>f.delListener(e)),fe(e,o),Le(e,[a,f.addRowListener(se,e,()=>Ee(e)),i]),Ve(e,l),Ee(e),Qe},delQueryDefinition:Pe,getParamValues:Se,getParamValue:(e,t)=>f.getCell(se,e,t),setParamValues:(e,t)=>(ue(e)&&Ve(e,t),Qe),setParamValue:(e,t,r)=>(ue(e)&&f.setCell(se,e,t,r),Qe),getStore:le,getQueryIds:de,forEachQuery:ce,hasQuery:ue,getTableId:ve,forEachResultTable:e=>ce(t=>me(t).hasTable(t)?e(t,e=>Qe.forEachResultRow(t,e)):0),addQueryIdsListener:e=>Re(()=>e(Qe)),addParamValuesListener:(e,t)=>"p"+f.addRowListener(se,e,(e,r,n)=>t(Qe,n,Se(n))),addParamValueListener:(e,t,r)=>"p"+f.addCellListener(se,e,t,(e,t,n,s,o)=>r(Qe,n,s,o)),delListener:e=>{const t=X(b,e);if("p"==e[0])f.delListener(E(e,1));else if(y(t))ie(e);else{const[r,n,s]=t;Y(n,(e,[t,r])=>t.delListener(r)),T(s,ie),Z(b,e),ie(e),k[r]--}return Qe},destroy:()=>{_(de(),Pe),he()},getListenerStats:()=>({...k,paramValues:f.getListenerStats().row-P(de()),paramValue:f.getListenerStats().cell})};return _e=([e,t],r)=>{_(E(["get","has","forEach"],0,e),e=>Qe[e+a+r]=(...t)=>me(t[0])[e+r](...t)),Qe["add"+a+r+o]=(...e)=>((n,s)=>{const a=oe(S,j),i=U(),l=()=>{const n=null==s?de():[s];_(n,n=>{return M(i,n)?0:Z(i,n,[me(n),(s=me(n),s["add"+r+o](...((e,t)=>5==t?[e[0],e[1]??void 0,e[2],e[3],e[4]]:E(e,0,t))(e,t),(r,...n)=>e[t](Qe,...n),!0))]);var s}),Y(i,(e,[t,r])=>null==s&&ue(e)||e==s?0:(t.delListener(r),void Z(i,e)))};return l(),Z(b,a,[n,i,null==s?Re(l):void 0]),k[n]++,a})((e=>e[0].toLowerCase()+E(e,1))(r),e[0])},((e=[])=>{q.fromEntries(e)})(((e,t)=>((e,t)=>e.map(t))(G(e),([e,r])=>t(r,e)))({[l]:[2,1],[l+L]:[1,1],[c]:[1,1],[u]:[1,1],[v]:[1,5],[d]:[3,2],[L]:[1,2],[w]:[3,3]},(e,t)=>[t,_e(e,t)])),K(Qe);var _e})(i)),s.get(i))})();export{oe as createQueries};
Binary file
@@ -1 +1 @@
1
- const e=e=>typeof e,t=e(""),r=e(!0),n=e(0),s=e(e),o="Listener",a="Result",l="Ids",i="Table",d="Row",c=d+"Count",u=d+l,v="Sorted"+d+l,w="Cell",L=w+l,f=Math,g=e=>(t,r,n)=>e(t)?n?.():r(t),R=f.max,h=f.min,m=isFinite,p=e=>null==e,y=e=>void 0===e,C=e=>!0===e,b=g(p),T=g(y),I=t=>e(t)==s,V=e=>Array.isArray(e),E=(e,t,r)=>e.slice(t,r),P=e=>e.length,S=()=>{},Q=(e,t)=>e.every(t),_=(e,t)=>e.forEach(t),j=e=>k(e,(e,t)=>e+t,0),k=(e,t,r)=>e.reduce(t,r),x=(e,...t)=>e.push(...t),D=e=>e?.size??0,M=(e,t)=>e?.has(t)??!1,z=e=>y(e)||0==D(e),A=e=>[...e?.values()??[]],F=e=>e.clear(),O=(e,t)=>e?.forEach(t),W=(e,t)=>e?.delete(t),q=Object,B=e=>q.getPrototypeOf(e),G=q.entries,H=e=>!p(e)&&b(B(e),e=>e==q.prototype||p(B(e)),()=>!0),J=q.keys,K=q.freeze,N=Map,U=e=>new N(e),X=(e,t)=>e?.get(t),Y=(e,t)=>O(e,(e,r)=>t(r,e)),Z=(e,t,r)=>y(r)?(W(e,t),e):e?.set(t,r),$=(e,t,r,n)=>(M(e,t)?n?.(X(e,t)):Z(e,t,r()),X(e,t)),ee=(e,t,r,n,s=0)=>T((r?$:X)(e,t[s],s>P(t)-2?r:U),o=>{if(s>P(t)-2)return n?.(o)&&Z(e,t[s]),o;const a=ee(o,t,r,n,s+1);return z(o)&&Z(e,t[s]),a}),te=U([["avg",[(e,t)=>j(e)/t,(e,t,r)=>e+(t-e)/(r+1),(e,t,r)=>e+(e-t)/(r-1),(e,t,r,n)=>e+(t-r)/n]],["max",[e=>R(...e),(e,t)=>R(t,e),(e,t)=>t==e?void 0:e,(e,t,r)=>r==e?void 0:R(t,e)]],["min",[e=>h(...e),(e,t)=>h(t,e),(e,t)=>t==e?void 0:e,(e,t,r)=>r==e?void 0:h(t,e)]],["sum",[e=>j(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,r)=>e-r+t]]]),re=e=>new Set(V(e)||y(e)?e:[e]),ne=(e,t)=>e?.add(t),se="_",oe=(()=>{const s=new WeakMap;return l=>(s.has(l)||s.set(l,(s=>{const l=s._[0],f=l(),g=l(),R=l(),h=U(),p=re(),b=U(),j=U(),k={table:0,tableCellIds:0,rowCount:0,rowIds:0,sortedRowIds:0,row:0,cellIds:0,cell:0},B=U(),N=U(),{_:[,oe,ae],delListener:le}=R,[ie,de,ce,ue,ve,we,Le,fe,,ge,Re,he]=((e,t,r,n,s)=>{const o=e.hasRow,a=U(),l=U(),i=U(),d=U(),c=U(),u=U(),v=t=>T(X(u,t),r=>{_(A(r),t=>{e.delListener(t),W(r,t)}),Z(u,t)}),w=(e,t)=>{Z(a,e,t),M(l,e)||(Z(l,e,[]),Z(d,e,U()),Z(c,e,U()),s(i))},L=e=>{Z(a,e),Z(l,e),Z(d,e),Z(c,e),v(e),s(i)};return[()=>e,()=>{return e=a,[...e?.keys()??[]];var e},e=>Y(l,e),e=>M(l,e),e=>X(a,e),e=>X(l,e),(e,t)=>Z(l,e,t),w,(t,n,s,a,l)=>{w(t,n);const i=U(),L=U(),f=X(d,t),g=X(c,t),R=t=>{const s=r=>e.getCell(n,t,r),d=X(f,t),c=o(n,t)?r(a(s,t)):void 0;var u,v;if(d===c||V(d)&&V(c)&&(v=c,P(u=d)===P(v)&&Q(u,(e,t)=>v[t]===e))||Z(i,t,[d,c]),!y(l)){const e=X(g,t),r=o(n,t)?l(s,t):void 0;e!=r&&Z(L,t,r)}},h=e=>{s(()=>{O(i,([,e],t)=>Z(f,t,e)),O(L,(e,t)=>Z(g,t,e))},i,L,f,g,e),F(i),F(L)};Y(f,R),e.hasTable(n)&&_(e.getRowIds(n),e=>{M(f,e)||R(e)}),h(!0),v(t),((e,...t)=>{const r=$(u,e,re);_(t,e=>ne(r,e))})(t,e.addRowListener(n,null,(e,t,r)=>R(r)),e.addTableListener(n,()=>h()))},L,e=>n(e,i),()=>Y(u,L)]})(s,0,S,oe,ae),me=e=>$(h,e,l),pe=(e,t,...r)=>_(r,r=>ne($($(B,t,U),e,re),r)),ye=e=>{T(X(B,e),e=>{Y(e,(e,t)=>O(t,t=>e.delListener(t))),F(e)}),_([me(e),f],t=>t.delTable(e))},Ce=(e,t,r,...n)=>{const s=$($(N,t,U),e,re);return _(n,t=>{ne(s,t),r&&e.callListener(t)}),n},be=(e,t,r)=>T(X(X(N,e),t),n=>{t.delListener(r),W(n,r),z(n)&&Z(X(N,e),t)}),Te=e=>T(X(N,e),e=>{Y(e,(e,t)=>O(t,t=>e.delListener(t))),F(e)}),Ie=(e,t,r)=>pe(t,e,t.addStartTransactionListener(r.startTransaction),t.addDidFinishTransactionListener(()=>r.finishTransaction())),Ve=(e,t)=>{return(H(r=t)&&0==(e=>P(J(e)))(r)?g.delRow:g.setRow)(se,e,{...t});var r},Ee=o=>me(o).transaction(()=>T(we(o),([a,,l])=>{const i=ve(o),d=l?me(i):s,c=me(o),u=Se(o);ne(p,o),ye(o),Te(o);const v=[],w=[[void 0,[i,void 0,void 0,[],U(),d]]],L=[],g=[],R=[];a({select:(e,t,r)=>{const n=C(e)?t:e,s=C(e)?r:t,o=I(e)?[P(v)+"",e]:y(s)?[e,t=>t(e)]:[s,t=>C(e)?t(!0,n,s):t(n,s)];return x(v,o),{as:e=>o[0]=e}},join:(e,t,r,n)=>{const o=C(e)?t:e,[a,l]=C(e)?y(n)||I(r)?[void 0,r]:[r,n]:y(r)||I(t)?[void 0,t]:[t,r],i=[o,[o,a,I(l)?l:e=>e(l),[],U(),C(e)?me(o):s]];return x(w,i),{as:e=>i[0]=e}},where:(e,t,r,n)=>x(L,I(e)?e:C(e)?e=>e(!0,t,r)===n:y(r)?r=>r(e)===t:n=>n(e,t)===r),group:(e,t,r,n,s)=>{const o=[e,[e,I(t)?[t,r,n,s]:X(te,t)??[(e,t)=>t]]];return x(g,o),{as:e=>o[0]=e}},having:(e,t)=>x(R,I(e)?e:r=>r(e)===t),param:e=>{return t=e,T(u,e=>e[t]);var t}});const h=U(v);if(z(h))return W(p,o),Qe;const b=U(w);Y(b,(e,[,t])=>T(X(b,t),({3:t})=>y(e)?0:x(t,e)));const E=U(g);let S=f;if(z(E)&&0==P(R))S=c;else{Ie(o,S,c);const s=U();Y(E,(e,[t,r])=>ne($(s,t,re),[e,r]));const a=re();Y(h,e=>M(s,e)?0:ne(a,e));const l=U(),i=(a,l,i,d)=>T(a,([u,v,w,L])=>{Y(l,(o,[a])=>{const l=$(u,o,U),c=X(l,i),v=d?void 0:a;if(c!==v){const a=re([[c,v]]),d=D(l);Z(l,i,v),O(X(s,o),([s,o])=>{const i=((e,t,r,n,s,o=!1)=>{if(z(r))return;const[a,l,i,d]=s;return o||=y(e),O(n,([r,n])=>{o||(e=y(r)?l?.(e,n,t++):y(n)?i?.(e,r,t--):d?.(e,n,r,t),o||=y(e))}),o?a(A(r),D(r)):e})(L[s],d,l,a,o);L[s]=y((s=>{if(null===s)return"null";if(V(s))return"array";if(H(s))return"object";const o=e(s);return(e=>e==t||e==r)(o)||o==n&&m(s)?o:void 0})(i))?void 0:i})}}),z(v)||!Q(R,e=>e(e=>L[e]))?c.delRow(o,w):y(w)?a[2]=c.addRow(o,L):c.setRow(o,w,L)});pe(S,o,S.addRowListener(o,null,(e,t,r,n)=>{const d=[],c=[],u=U(),v=S.hasRow(o,r);let w=!v;O(a,e=>{const[t,s,a]=n(o,r,e);x(d,s),x(c,a),w||=t}),Y(s,e=>{const[t,,s]=n(o,r,e);(w||t)&&Z(u,e,[s])}),w&&i(ee(l,d,void 0,([,e])=>(W(e,r),z(e))),u,r,1),v&&i(ee(l,c,()=>{const e={};return O(a,t=>e[t]=S.getCell(o,r,t)),[U(),re(),void 0,e]},([,e])=>{ne(e,r)}),u,r)}))}Ie(o,d,S);const j=(e,t,r,n,s)=>{const a=e=>t.getCell(r,n,e);_(s,t=>{const[r,,n,s,l,i]=X(b,t),d=n?.(a,e),c=X(l,e),u=c?.[0];d!=u&&(T(c,([,e,t])=>be(o,e,t)),Z(l,e,y(d)?void 0:[d,i,...Ce(i,o,1,i.addRowListener(r,d,()=>j(e,i,r,d,s)))]))}),(e=>{const t=(t,r,n)=>{const s=C(t)?r:t,o=C(t)?n:r;if(y(o))return d.getCell(i,e,t);if(s===i&&!C(t))return d.getCell(i,e,o);const a=X(b,s);return y(a)?void 0:a[5].getCell(a[0],X(a[4],e)?.[0],o)};S.transaction(()=>Q(L,e=>e(t))?Y(h,(r,n)=>S._[5](o,e,r,n(t,e))):S.delRow(o,e))})(e)},{3:k}=X(b,void 0),F=(e,t,r)=>{d.hasRow(i,r)?j(r,d,i,r,k):(S.delRow(o,r),O(b,({4:e})=>T(X(e,r),([,t,n])=>{be(o,t,n),Z(e,r)})))};return S.transaction(()=>{_(d.getRowIds(i),e=>F(0,0,e)),Ce(d,o,0,d.addRowListener(i,null,F))}),W(p,o),Qe})),Pe=e=>(T(we(e),([,e])=>g.delListener(e)),g.delRow(se,e),ye(e),Te(e),ge(e),Qe),Se=e=>g.getRow(se,e),Qe={setQueryDefinition:(e,t,r,n,s={})=>{const[o,a,l,i]=C(t)?[r,n,1,s]:[t,r,0,n??{}];return T(we(e),([,e])=>g.delListener(e)),fe(e,o),Le(e,[a,g.addRowListener(se,e,()=>Ee(e)),l]),Ve(e,i),Ee(e),Qe},delQueryDefinition:Pe,getParamValues:Se,getParamValue:(e,t)=>g.getCell(se,e,t),setParamValues:(e,t)=>(ue(e)&&Ve(e,t),Qe),setParamValue:(e,t,r)=>(ue(e)&&g.setCell(se,e,t,r),Qe),getStore:ie,getQueryIds:de,forEachQuery:ce,hasQuery:ue,getTableId:ve,forEachResultTable:e=>ce(t=>me(t).hasTable(t)?e(t,e=>Qe.forEachResultRow(t,e)):0),addQueryIdsListener:e=>Re(()=>e(Qe)),addParamValuesListener:(e,t)=>"p"+g.addRowListener(se,e,(e,r,n)=>t(Qe,n,Se(n))),addParamValueListener:(e,t,r)=>"p"+g.addCellListener(se,e,t,(e,t,n,s,o)=>r(Qe,n,s,o)),delListener:e=>{const t=X(b,e);if("p"==e[0])g.delListener(E(e,1));else if(y(t))le(e);else{const[r,n,s]=t;Y(n,(e,[t,r])=>t.delListener(r)),T(s,le),Z(b,e),le(e),k[r]--}return Qe},destroy:()=>{_(de(),Pe),he()},getListenerStats:()=>({...k,paramValues:g.getListenerStats().row-P(de()),paramValue:g.getListenerStats().cell})};return _e=([e,t],r)=>{_(E(["get","has","forEach"],0,e),e=>Qe[e+a+r]=(...t)=>me(t[0])[e+r](...t)),Qe["add"+a+r+o]=(...e)=>((n,s)=>{const a=oe(S,j),l=U(),i=()=>{const n=null==s?de():[s];_(n,n=>{return M(l,n)?0:Z(l,n,[me(n),(s=me(n),s["add"+r+o](...((e,t)=>5==t?[e[0],e[1]??void 0,e[2],e[3],e[4]]:E(e,0,t))(e,t),(r,...n)=>e[t](Qe,...n),!0))]);var s}),Y(l,(e,[t,r])=>null==s&&ue(e)||e==s?0:(t.delListener(r),void Z(l,e)))};return i(),Z(b,a,[n,l,null==s?Re(i):void 0]),k[n]++,a})((e=>e[0].toLowerCase()+E(e,1))(r),e[0])},((e=[])=>{q.fromEntries(e)})(((e,t)=>((e,t)=>e.map(t))(G(e),([e,r])=>t(r,e)))({[i]:[2,1],[i+L]:[1,1],[c]:[1,1],[u]:[1,1],[v]:[1,5],[d]:[3,2],[L]:[1,2],[w]:[3,3]},(e,t)=>[t,_e(e,t)])),K(Qe);var _e})(l)),s.get(l))})();export{oe as createQueries};
1
+ const e=e=>typeof e,t=e(""),r=e(!0),n=e(0),s=e(e),o="Listener",a="Result",i="Ids",l="Table",d="Row",c=d+"Count",u=d+i,v="Sorted"+d+i,w="Cell",L=w+i,f=Math,g=e=>(t,r,n)=>e(t)?n?.():r(t),R=f.max,h=f.min,m=isFinite,p=e=>null==e,y=e=>void 0===e,C=e=>!0===e,b=g(p),T=g(y),I=t=>e(t)==s,V=e=>Array.isArray(e),E=(e,t,r)=>e.slice(t,r),P=e=>e.length,S=()=>{},Q=(e,t)=>e.every(t),_=(e,t)=>e.forEach(t),j=e=>k(e,(e,t)=>e+t,0),k=(e,t,r)=>e.reduce(t,r),x=(e,...t)=>e.push(...t),D=e=>e?.size??0,M=(e,t)=>e?.has(t)??!1,z=e=>y(e)||0==D(e),A=e=>[...e?.values()??[]],F=e=>e.clear(),O=(e,t)=>e?.forEach(t),W=(e,t)=>e?.delete(t),q=Object,B=e=>q.getPrototypeOf(e),G=q.entries,H=e=>!p(e)&&b(B(e),e=>e==q.prototype||p(B(e)),()=>!0),J=q.keys,K=q.freeze,N=Map,U=e=>new N(e),X=(e,t)=>e?.get(t),Y=(e,t)=>O(e,(e,r)=>t(r,e)),Z=(e,t,r)=>y(r)?(W(e,t),e):e?.set(t,r),$=(e,t,r,n)=>(M(e,t)?n?.(X(e,t)):Z(e,t,r()),X(e,t)),ee=(e,t,r,n,s=0)=>T((r?$:X)(e,t[s],s>P(t)-2?r:U),o=>{if(s>P(t)-2)return n?.(o)&&Z(e,t[s]),o;const a=ee(o,t,r,n,s+1);return z(o)&&Z(e,t[s]),a}),te=U([["avg",[(e,t)=>j(e)/t,(e,t,r)=>e+(t-e)/(r+1),(e,t,r)=>e+(e-t)/(r-1),(e,t,r,n)=>e+(t-r)/n]],["max",[e=>R(...e),(e,t)=>R(t,e),(e,t)=>t==e?void 0:e,(e,t,r)=>r==e?void 0:R(t,e)]],["min",[e=>h(...e),(e,t)=>h(t,e),(e,t)=>t==e?void 0:e,(e,t,r)=>r==e?void 0:h(t,e)]],["sum",[e=>j(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,r)=>e-r+t]]]),re=e=>new Set(V(e)||y(e)?e:[e]),ne=(e,t)=>e?.add(t),se="_",oe=(()=>{const s=new WeakMap;return i=>(s.has(i)||s.set(i,(s=>{const i=s._[0],f=i(),g=i(),R=U(),h=U(),p=re(),b=U(),j=U(),k={table:0,tableCellIds:0,rowCount:0,rowIds:0,sortedRowIds:0,row:0,cellIds:0,cell:0},B=U(),N=U(),{_:[,oe,ae],delListener:ie}=g,[le,de,ce,ue,ve,we,Le,fe,,ge,Re,he]=((e,t,r,n,s)=>{const o=e.hasRow,a=U(),i=U(),l=U(),d=U(),c=U(),u=U(),v=t=>T(X(u,t),r=>{_(A(r),t=>{e.delListener(t),W(r,t)}),Z(u,t)}),w=(e,t)=>{Z(a,e,t),M(i,e)||(Z(i,e,[]),Z(d,e,U()),Z(c,e,U()),s(l))},L=e=>{Z(a,e),Z(i,e),Z(d,e),Z(c,e),v(e),s(l)};return[()=>e,()=>{return e=a,[...e?.keys()??[]];var e},e=>Y(i,e),e=>M(i,e),e=>X(a,e),e=>X(i,e),(e,t)=>Z(i,e,t),w,(t,n,s,a,i)=>{w(t,n);const l=U(),L=U(),f=X(d,t),g=X(c,t),R=t=>{const s=r=>e.getCell(n,t,r),d=X(f,t),c=o(n,t)?r(a(s,t)):void 0;var u,v;if(d===c||V(d)&&V(c)&&(v=c,P(u=d)===P(v)&&Q(u,(e,t)=>v[t]===e))||Z(l,t,[d,c]),!y(i)){const e=X(g,t),r=o(n,t)?i(s,t):void 0;e!=r&&Z(L,t,r)}},h=e=>{s(()=>{O(l,([,e],t)=>Z(f,t,e)),O(L,(e,t)=>Z(g,t,e))},l,L,f,g,e),F(l),F(L)};Y(f,R),e.hasTable(n)&&_(e.getRowIds(n),e=>{M(f,e)||R(e)}),h(!0),v(t),((e,...t)=>{const r=$(u,e,re);_(t,e=>ne(r,e))})(t,e.addRowListener(n,null,(e,t,r)=>R(r)),e.addTableListener(n,()=>h()))},L,e=>n(e,l),()=>Y(u,L)]})(s,0,S,oe,ae),me=e=>$(h,e,i),pe=(e,t,...r)=>_(r,r=>ne($($(B,t,U),e,re),r)),ye=e=>{T(X(B,e),e=>{Y(e,(e,t)=>O(t,t=>e.delListener(t))),F(e)}),_([me(e),X(R,e)],t=>t?.delTable(e))},Ce=(e,t,r,...n)=>{const s=$($(N,t,U),e,re);return _(n,t=>{ne(s,t),r&&e.callListener(t)}),n},be=(e,t,r)=>T(X(X(N,e),t),n=>{t.delListener(r),W(n,r),z(n)&&Z(X(N,e),t)}),Te=e=>T(X(N,e),e=>{Y(e,(e,t)=>O(t,t=>e.delListener(t))),F(e)}),Ie=(e,t,r)=>pe(t,e,t.addStartTransactionListener(r.startTransaction),t.addDidFinishTransactionListener(()=>r.finishTransaction())),Ve=(e,t)=>{return(H(r=t)&&0==(e=>P(J(e)))(r)?f.delRow:f.setRow)(se,e,{...t});var r},Ee=o=>me(o).transaction(()=>T(we(o),([a,,l])=>{const d=ve(o),c=l?me(d):s,u=me(o),v=Se(o);ne(p,o),ye(o),Te(o);const w=[],L=[[void 0,[d,void 0,void 0,[],U(),c]]],f=[],g=[],h=[];a({select:(e,t,r)=>{const n=C(e)?t:e,s=C(e)?r:t,o=I(e)?[P(w)+"",e]:y(s)?[e,t=>t(e)]:[s,t=>C(e)?t(!0,n,s):t(n,s)];return x(w,o),{as:e=>o[0]=e}},join:(e,t,r,n)=>{const o=C(e)?t:e,[a,i]=C(e)?y(n)||I(r)?[void 0,r]:[r,n]:y(r)||I(t)?[void 0,t]:[t,r],l=[o,[o,a,I(i)?i:e=>e(i),[],U(),C(e)?me(o):s]];return x(L,l),{as:e=>l[0]=e}},where:(e,t,r,n)=>x(f,I(e)?e:C(e)?e=>e(!0,t,r)===n:y(r)?r=>r(e)===t:n=>n(e,t)===r),group:(e,t,r,n,s)=>{const o=[e,[e,I(t)?[t,r,n,s]:X(te,t)??[(e,t)=>t]]];return x(g,o),{as:e=>o[0]=e}},having:(e,t)=>x(h,I(e)?e:r=>r(e)===t),param:e=>{return t=e,T(v,e=>e[t]);var t}});const b=U(w);if(z(b))return W(p,o),Qe;const E=U(L);Y(E,(e,[,t])=>T(X(E,t),({3:t})=>y(e)?0:x(t,e)));const S=U(g),j=!(z(S)&&(k=h,0==P(k)));var k;const F=j?(e=>$(R,e,i))(o):u;if(j){Ie(o,F,u);const s=U();Y(S,(e,[t,r])=>ne($(s,t,re),[e,r]));const a=re();Y(b,e=>M(s,e)?0:ne(a,e));const i=U(),l=(a,i,l,d)=>T(a,([c,v,w,L])=>{Y(i,(o,[a])=>{const i=$(c,o,U),u=X(i,l),v=d?void 0:a;if(u!==v){const a=re([[u,v]]),d=D(i);Z(i,l,v),O(X(s,o),([s,o])=>{const l=((e,t,r,n,s,o=!1)=>{if(z(r))return;const[a,i,l,d]=s;return o||=y(e),O(n,([r,n])=>{o||(e=y(r)?i?.(e,n,t++):y(n)?l?.(e,r,t--):d?.(e,n,r,t),o||=y(e))}),o?a(A(r),D(r)):e})(L[s],d,i,a,o);L[s]=y((s=>{if(null===s)return"null";if(V(s))return"array";if(H(s))return"object";const o=e(s);return(e=>e==t||e==r)(o)||o==n&&m(s)?o:void 0})(l))?void 0:l})}}),z(v)||!Q(h,e=>e(e=>L[e]))?u.delRow(o,w):y(w)?a[2]=u.addRow(o,L):u.setRow(o,w,L)});pe(F,o,F.addRowListener(o,null,(e,t,r,n)=>{const d=[],c=[],u=U(),v=F.hasRow(o,r);let w=!v;O(a,e=>{const[t,s,a]=n(o,r,e);x(d,s),x(c,a),w||=t}),Y(s,e=>{const[t,,s]=n(o,r,e);(w||t)&&Z(u,e,[s])}),w&&l(ee(i,d,void 0,([,e])=>(W(e,r),z(e))),u,r,1),v&&l(ee(i,c,()=>{const e={};return O(a,t=>e[t]=F.getCell(o,r,t)),[U(),re(),void 0,e]},([,e])=>{ne(e,r)}),u,r)}))}Ie(o,c,F);const q=(e,t,r,n,s)=>{const a=e=>t.getCell(r,n,e);_(s,t=>{const[r,,n,s,i,l]=X(E,t),d=n?.(a,e),c=X(i,e),u=c?.[0];d!=u&&(T(c,([,e,t])=>be(o,e,t)),Z(i,e,y(d)?void 0:[d,l,...Ce(l,o,1,l.addRowListener(r,d,()=>q(e,l,r,d,s)))]))}),(e=>{const t=(t,r,n)=>{const s=C(t)?r:t,o=C(t)?n:r;if(y(o))return c.getCell(d,e,t);if(s===d&&!C(t))return c.getCell(d,e,o);const a=X(E,s);return y(a)?void 0:a[5].getCell(a[0],X(a[4],e)?.[0],o)};F.transaction(()=>Q(f,e=>e(t))?Y(b,(r,n)=>F._[5](o,e,r,n(t,e))):F.delRow(o,e))})(e)},{3:B}=X(E,void 0),G=(e,t,r)=>{c.hasRow(d,r)?q(r,c,d,r,B):(F.delRow(o,r),O(E,({4:e})=>T(X(e,r),([,t,n])=>{be(o,t,n),Z(e,r)})))};return F.transaction(()=>{_(c.getRowIds(d),e=>G(0,0,e)),Ce(c,o,0,c.addRowListener(d,null,G))}),W(p,o),Qe})),Pe=e=>(T(we(e),([,e])=>f.delListener(e)),f.delRow(se,e),ye(e),Te(e),ge(e),Qe),Se=e=>f.getRow(se,e),Qe={setQueryDefinition:(e,t,r,n,s={})=>{const[o,a,i,l]=C(t)?[r,n,1,s]:[t,r,0,n??{}];return T(we(e),([,e])=>f.delListener(e)),fe(e,o),Le(e,[a,f.addRowListener(se,e,()=>Ee(e)),i]),Ve(e,l),Ee(e),Qe},delQueryDefinition:Pe,getParamValues:Se,getParamValue:(e,t)=>f.getCell(se,e,t),setParamValues:(e,t)=>(ue(e)&&Ve(e,t),Qe),setParamValue:(e,t,r)=>(ue(e)&&f.setCell(se,e,t,r),Qe),getStore:le,getQueryIds:de,forEachQuery:ce,hasQuery:ue,getTableId:ve,forEachResultTable:e=>ce(t=>me(t).hasTable(t)?e(t,e=>Qe.forEachResultRow(t,e)):0),addQueryIdsListener:e=>Re(()=>e(Qe)),addParamValuesListener:(e,t)=>"p"+f.addRowListener(se,e,(e,r,n)=>t(Qe,n,Se(n))),addParamValueListener:(e,t,r)=>"p"+f.addCellListener(se,e,t,(e,t,n,s,o)=>r(Qe,n,s,o)),delListener:e=>{const t=X(b,e);if("p"==e[0])f.delListener(E(e,1));else if(y(t))ie(e);else{const[r,n,s]=t;Y(n,(e,[t,r])=>t.delListener(r)),T(s,ie),Z(b,e),ie(e),k[r]--}return Qe},destroy:()=>{_(de(),Pe),he()},getListenerStats:()=>({...k,paramValues:f.getListenerStats().row-P(de()),paramValue:f.getListenerStats().cell})};return _e=([e,t],r)=>{_(E(["get","has","forEach"],0,e),e=>Qe[e+a+r]=(...t)=>me(t[0])[e+r](...t)),Qe["add"+a+r+o]=(...e)=>((n,s)=>{const a=oe(S,j),i=U(),l=()=>{const n=null==s?de():[s];_(n,n=>{return M(i,n)?0:Z(i,n,[me(n),(s=me(n),s["add"+r+o](...((e,t)=>5==t?[e[0],e[1]??void 0,e[2],e[3],e[4]]:E(e,0,t))(e,t),(r,...n)=>e[t](Qe,...n),!0))]);var s}),Y(i,(e,[t,r])=>null==s&&ue(e)||e==s?0:(t.delListener(r),void Z(i,e)))};return l(),Z(b,a,[n,i,null==s?Re(l):void 0]),k[n]++,a})((e=>e[0].toLowerCase()+E(e,1))(r),e[0])},((e=[])=>{q.fromEntries(e)})(((e,t)=>((e,t)=>e.map(t))(G(e),([e,r])=>t(r,e)))({[l]:[2,1],[l+L]:[1,1],[c]:[1,1],[u]:[1,1],[v]:[1,5],[d]:[3,2],[L]:[1,2],[w]:[3,3]},(e,t)=>[t,_e(e,t)])),K(Qe);var _e})(i)),s.get(i))})();export{oe as createQueries};