tinybase 9.5.0 → 9.6.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. package/@types/omni/index.d.ts +4 -0
  2. package/@types/omni/with-schemas/index.d.ts +4 -0
  3. package/@types/persisters/index.d.ts +8 -1
  4. package/@types/persisters/persister-better-sqlite3/index.d.ts +178 -0
  5. package/@types/persisters/persister-better-sqlite3/with-schemas/index.d.ts +202 -0
  6. package/@types/persisters/persister-capacitor-sqlite/index.d.ts +181 -0
  7. package/@types/persisters/persister-capacitor-sqlite/with-schemas/index.d.ts +205 -0
  8. package/@types/persisters/persister-indexed-db/index.d.ts +17 -9
  9. package/@types/persisters/persister-indexed-db/with-schemas/index.d.ts +18 -10
  10. package/@types/persisters/persister-libsql/index.d.ts +27 -0
  11. package/@types/persisters/persister-libsql/with-schemas/index.d.ts +27 -0
  12. package/@types/persisters/persister-pg/index.d.ts +197 -0
  13. package/@types/persisters/persister-pg/with-schemas/index.d.ts +222 -0
  14. package/@types/persisters/persister-supabase/index.d.ts +201 -0
  15. package/@types/persisters/persister-supabase/with-schemas/index.d.ts +217 -0
  16. package/@types/persisters/with-schemas/index.d.ts +8 -1
  17. package/@types/ui-react-dom/index.d.ts +10 -10
  18. package/@types/ui-react-dom/with-schemas/index.d.ts +10 -10
  19. package/@types/ui-react-dom-charts/index.d.ts +7 -7
  20. package/@types/ui-react-dom-charts/with-schemas/index.d.ts +7 -7
  21. package/@types/ui-react-inspector/index.d.ts +1 -1
  22. package/@types/ui-react-inspector/with-schemas/index.d.ts +1 -1
  23. package/@types/ui-solid-dom/index.d.ts +10 -10
  24. package/@types/ui-solid-dom/with-schemas/index.d.ts +10 -10
  25. package/@types/ui-solid-inspector/index.d.ts +1 -1
  26. package/@types/ui-solid-inspector/with-schemas/index.d.ts +1 -1
  27. package/@types/ui-svelte-dom/index.d.ts +10 -10
  28. package/@types/ui-svelte-dom/with-schemas/index.d.ts +10 -10
  29. package/@types/ui-svelte-inspector/index.d.ts +1 -1
  30. package/@types/ui-svelte-inspector/with-schemas/index.d.ts +1 -1
  31. package/agents.md +55 -2
  32. package/min/omni/index.js +1 -1
  33. package/min/omni/index.js.gz +0 -0
  34. package/min/omni/with-schemas/index.js +1 -1
  35. package/min/omni/with-schemas/index.js.gz +0 -0
  36. package/min/persisters/index.js +1 -1
  37. package/min/persisters/index.js.gz +0 -0
  38. package/min/persisters/persister-better-sqlite3/index.js +1 -0
  39. package/min/persisters/persister-better-sqlite3/index.js.gz +0 -0
  40. package/min/persisters/persister-better-sqlite3/with-schemas/index.js +1 -0
  41. package/min/persisters/persister-better-sqlite3/with-schemas/index.js.gz +0 -0
  42. package/min/persisters/persister-capacitor-sqlite/index.js +1 -0
  43. package/min/persisters/persister-capacitor-sqlite/index.js.gz +0 -0
  44. package/min/persisters/persister-capacitor-sqlite/with-schemas/index.js +1 -0
  45. package/min/persisters/persister-capacitor-sqlite/with-schemas/index.js.gz +0 -0
  46. package/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  47. package/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  48. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  49. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  50. package/min/persisters/persister-durable-object-sql-storage/index.js +1 -1
  51. package/min/persisters/persister-durable-object-sql-storage/index.js.gz +0 -0
  52. package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js +1 -1
  53. package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js.gz +0 -0
  54. package/min/persisters/persister-electric-sql/index.js +1 -1
  55. package/min/persisters/persister-electric-sql/index.js.gz +0 -0
  56. package/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  57. package/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  58. package/min/persisters/persister-expo-sqlite/index.js +1 -1
  59. package/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  60. package/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  61. package/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  62. package/min/persisters/persister-indexed-db/index.js +1 -1
  63. package/min/persisters/persister-indexed-db/index.js.gz +0 -0
  64. package/min/persisters/persister-indexed-db/with-schemas/index.js +1 -1
  65. package/min/persisters/persister-indexed-db/with-schemas/index.js.gz +0 -0
  66. package/min/persisters/persister-libsql/index.js +1 -1
  67. package/min/persisters/persister-libsql/index.js.gz +0 -0
  68. package/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  69. package/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  70. package/min/persisters/persister-pg/index.js +1 -0
  71. package/min/persisters/persister-pg/index.js.gz +0 -0
  72. package/min/persisters/persister-pg/with-schemas/index.js +1 -0
  73. package/min/persisters/persister-pg/with-schemas/index.js.gz +0 -0
  74. package/min/persisters/persister-pglite/index.js +1 -1
  75. package/min/persisters/persister-pglite/index.js.gz +0 -0
  76. package/min/persisters/persister-pglite/with-schemas/index.js +1 -1
  77. package/min/persisters/persister-pglite/with-schemas/index.js.gz +0 -0
  78. package/min/persisters/persister-postgres/index.js +1 -1
  79. package/min/persisters/persister-postgres/index.js.gz +0 -0
  80. package/min/persisters/persister-postgres/with-schemas/index.js +1 -1
  81. package/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
  82. package/min/persisters/persister-powersync/index.js +1 -1
  83. package/min/persisters/persister-powersync/index.js.gz +0 -0
  84. package/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  85. package/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  86. package/min/persisters/persister-react-native-sqlite/index.js +1 -1
  87. package/min/persisters/persister-react-native-sqlite/index.js.gz +0 -0
  88. package/min/persisters/persister-react-native-sqlite/with-schemas/index.js +1 -1
  89. package/min/persisters/persister-react-native-sqlite/with-schemas/index.js.gz +0 -0
  90. package/min/persisters/persister-sqlite-bun/index.js +1 -1
  91. package/min/persisters/persister-sqlite-bun/index.js.gz +0 -0
  92. package/min/persisters/persister-sqlite-bun/with-schemas/index.js +1 -1
  93. package/min/persisters/persister-sqlite-bun/with-schemas/index.js.gz +0 -0
  94. package/min/persisters/persister-sqlite-wasm/index.js +1 -1
  95. package/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  96. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  97. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  98. package/min/persisters/persister-sqlite3/index.js +1 -1
  99. package/min/persisters/persister-sqlite3/index.js.gz +0 -0
  100. package/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  101. package/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  102. package/min/persisters/persister-supabase/index.js +1 -0
  103. package/min/persisters/persister-supabase/index.js.gz +0 -0
  104. package/min/persisters/persister-supabase/with-schemas/index.js +1 -0
  105. package/min/persisters/persister-supabase/with-schemas/index.js.gz +0 -0
  106. package/min/persisters/with-schemas/index.js +1 -1
  107. package/min/persisters/with-schemas/index.js.gz +0 -0
  108. package/omni/index.js +269 -34
  109. package/omni/with-schemas/index.js +269 -34
  110. package/package.json +164 -4
  111. package/persisters/index.js +23 -7
  112. package/persisters/persister-better-sqlite3/index.js +1767 -0
  113. package/persisters/persister-better-sqlite3/with-schemas/index.js +1767 -0
  114. package/persisters/persister-capacitor-sqlite/index.js +1769 -0
  115. package/persisters/persister-capacitor-sqlite/with-schemas/index.js +1769 -0
  116. package/persisters/persister-cr-sqlite-wasm/index.js +20 -6
  117. package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +20 -6
  118. package/persisters/persister-durable-object-sql-storage/index.js +20 -7
  119. package/persisters/persister-durable-object-sql-storage/with-schemas/index.js +20 -7
  120. package/persisters/persister-electric-sql/index.js +20 -6
  121. package/persisters/persister-electric-sql/with-schemas/index.js +20 -6
  122. package/persisters/persister-expo-sqlite/index.js +20 -6
  123. package/persisters/persister-expo-sqlite/with-schemas/index.js +20 -6
  124. package/persisters/persister-indexed-db/index.js +48 -20
  125. package/persisters/persister-indexed-db/with-schemas/index.js +48 -20
  126. package/persisters/persister-libsql/index.js +20 -6
  127. package/persisters/persister-libsql/with-schemas/index.js +20 -6
  128. package/persisters/persister-pg/index.js +1905 -0
  129. package/persisters/persister-pg/with-schemas/index.js +1905 -0
  130. package/persisters/persister-pglite/index.js +20 -6
  131. package/persisters/persister-pglite/with-schemas/index.js +20 -6
  132. package/persisters/persister-postgres/index.js +20 -6
  133. package/persisters/persister-postgres/with-schemas/index.js +20 -6
  134. package/persisters/persister-powersync/index.js +27 -10
  135. package/persisters/persister-powersync/with-schemas/index.js +27 -10
  136. package/persisters/persister-react-native-sqlite/index.js +20 -6
  137. package/persisters/persister-react-native-sqlite/with-schemas/index.js +20 -6
  138. package/persisters/persister-sqlite-bun/index.js +20 -6
  139. package/persisters/persister-sqlite-bun/with-schemas/index.js +20 -6
  140. package/persisters/persister-sqlite-wasm/index.js +20 -6
  141. package/persisters/persister-sqlite-wasm/with-schemas/index.js +20 -6
  142. package/persisters/persister-sqlite3/index.js +20 -6
  143. package/persisters/persister-sqlite3/with-schemas/index.js +20 -6
  144. package/persisters/persister-supabase/index.js +883 -0
  145. package/persisters/persister-supabase/with-schemas/index.js +883 -0
  146. package/persisters/with-schemas/index.js +23 -7
  147. package/readme.md +14 -14
  148. package/releases.md +163 -66
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",n="",e=",",i=a(n),s="true",r=(a,t,n)=>a.replace(t,n),c=Promise,o=a=>(t,n,e)=>a(t)?e?.():n(t),l=globalThis,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=o(w),f=o(u),E=t=>a(t)==i,$=a=>Array.isArray(a),m=a=>a.length,N=a=>0==m(a),_=()=>{},A=a=>new c(a),h=async a=>c.all(a),O=(a,t)=>a?.has(t)??!1,p=a=>u(a)||0==(a=>a?.size??0)(a),T=a=>[...a?.values()??[]],g=a=>a.clear(),I=(a,t)=>a?.forEach(t),S=(a,t)=>a?.delete(t),D=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},R=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},b=(a,t)=>R(a,a=>{R(()=>t?.(a))}),L=async(a,t)=>{try{return await a()}finally{await t()}},C=(a,t)=>a.forEach(t),M=(a,t="")=>a.join(t),P=(a,t)=>a.map(t),F=(a,t)=>a.filter(t),x=(a,t=m(a))=>a.splice(0,t),q=(a,...t)=>a.push(...t),B="_",U="_id",j="SELECT",k="WHERE",J="TABLE",X="ALTER "+J,Y="FROM",z="DELETE "+Y,G=j+"*"+Y,H="pragma_",K="data_version",Q="schema_version",V="pragma_table_",W="CREATE "+J,Z=/\$tableName/g,aa=a=>M(P(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),ta=(a,t=[1])=>M(P(a,()=>"$"+t[0]++),e),na=(a,t=s)=>k+`(${ea(t,aa(a))})`,ea=(a,t)=>r(a,Z,t),ia=Object,sa=a=>ia.getPrototypeOf(a),ra=ia.entries,ca=a=>!w(a)&&v(sa(a),a=>a==ia.prototype||w(sa(a)),()=>!0),oa=ia.keys,la=ia.freeze,wa=(...a)=>ia.assign(ia.create(null),...a),ua=(a,t,n)=>(ia.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),ya=(a=[])=>{const t=ia.create(null);return C(a,([a,n])=>ua(t,a,n)),t},da=(a,t)=>(delete a[t],a),va=(a,t)=>C(oa(a),n=>t(a[n],n)),fa=(a,t)=>P(ra(a),([a,n])=>t(n,a)),Ea=(a,t)=>{const n=ya();return va(a,(a,e)=>ua(n,e,t(a,e))),n},$a=a=>m(oa(a)),ma=a=>ca(a)&&0==$a(a),Na=Map,_a=a=>new Na(a),Aa=(a,t)=>a?.get(t),ha=(a,t)=>I(a,(a,n)=>t(n,a)),Oa=(a,t)=>{const n=[];return ha(a,(a,e)=>q(n,t(e,a))),n},pa=(a,t,n)=>u(n)?(S(a,t),a):a?.set(t,n),Ta=(a,t,n,e)=>{let i=Aa(a,t);return O(a,t)?e?.(i):pa(a,t,i=n()),i},ga=(a,t,n,e,i=0)=>f((n?Ta:Aa)(a,t[i],i>m(t)-2?n:_a),s=>{if(i>m(t)-2)return e?.(s)&&pa(a,t[i]),s;const r=ga(s,t,n,e,i+1);return p(s)&&pa(a,t[i]),r}),Ia=a=>new Set($(a)||u(a)?a:[a]),Sa=(a,t)=>a?.add(t),Da="ColumnName",Ra="store",ba="json",La=Ra+"TableName",Ca=Ra+"Id"+Da,Ma=Ra+Da,Pa="autoLoadIntervalSeconds",Fa="rowId"+Da,xa="tableId",qa="tableName",Ba="deleteEmptyColumns",Ua="deleteEmptyTable",ja="condition",ka={mode:ba,[Pa]:1},Ja={load:0,save:0,[qa]:t+"_values"},Xa=a=>$(a)?a:void 0,Ya=a=>d(a)||$(a),za=(a,t,n,e,i)=>{const s=_a();return va(a,(a,r)=>{const c=(w=wa(t,E(a)?{[n]:a}:a),o=ia.values(w),l=$a(t),o.slice(0,l));var o,l,w;y(c[0])||e(r,c[0])||(i(r,c[0]),pa(s,r,c))}),s},Ga=JSON.stringify,Ha=JSON.parse,Ka=a=>""===a?void 0:$(a)?P(a,Ka):ca(a)?Ea(a,Ka):a,Qa=/^\d+$/,Va=_a(),Wa=_a(),Za=_a(),at=(a,t,e,i,s,r,c,o={},l=0,w=[])=>{let d,v,E,_,h,O=0,T=0,g=0,M=0,B=0,U=0,j=0,k=0,J=0;const X={},Y=o.destroy;Ta(Va,w,()=>0),Ta(Wa,w,()=>[]),pa(Za,w,(Aa(Za,w)??0)+1);const z=_a(),[G,H,K,Q,V]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!ma(a)||!ma(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!ma(a)||!ma(t),t.setContent]:D(0))(c,a,l),[W,Z,aa]=(a=>{let t;const[e,i]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{Qa.test(t)&&m(a)<1e3&&q(a,t)}]})(),s=_a(),r=(a,e,i,r)=>{let c,o=!1;if(C(((a,t=[n])=>{const e=[],i=(a,n)=>n==m(t)?q(e,a):y(t[n])?I(a,a=>i(a,n+1)):C([t[n],null],t=>i(Aa(a,t),n+1));return i(a,0),e})(e,i),n=>I(n,n=>{const e=()=>Aa(s,n)[0](t,...i??[],...r);a?(a=>{try{return a()}catch(a){(a=>{o||(c=a),o=!0})?.(a)}})(e):e()})),o)throw c};return[(i,r,c,o=[],l=()=>[])=>{t??=a();const w=e(1);return pa(s,w,[i,r,c,o,l]),Sa(ga(r,c??[n],Ia),w),w},(a,t,...n)=>r(!1,a,t,n),a=>f(Aa(s,a),([,t,e])=>(ga(t,e??[n],void 0,t=>(S(t,a),p(t)?1:0)),pa(s,a),i(a),e)),a=>f(Aa(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const c=m(r);c==m(n)?a(t,...r,...i(r)):y(n[c])?C(e[c]?.(...r)??[],a=>s(...r,a)):s(...r,n[c])};s()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>$a),ta=a=>{a!=O&&(O=a,Z(z,void 0,O))},na=()=>{Aa(Za,w)||Aa(Va,w)||!N(Aa(Wa,w)??[])||(pa(Va,w),pa(Wa,w),pa(Za,w))},ea=t=>{(G&&$(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ia=async()=>{va()&&a.__?.[0]?.()&&await ua()},sa=a=>L(()=>v=a,()=>{v==a&&(v=void 0)}),ra=async a=>(2!=O&&(await L(async()=>{ta(1),T++,await Ea(()=>R(async()=>{const n=await t();$(n)?ea(n):u(n)&&a?V(a):u(n)||D(1,n)},t=>{r?.(t),a&&V(a)}))},()=>ta(0)),await ia()),$a),ca=async()=>{const a=j;j=0,a&&a==M&&!J&&(2==O?j=a:await ra())},oa=async a=>{const t=++M;let n=!0;if(await wa(!0),t==M&&!J){const e=R(async()=>{const a=await i(async(a,e)=>{if(t==M&&!J)if(e||a){const t=n||2==O||!!U;B++,t&&U++,await L(async()=>{ta(1),T++,await(t?Ea(()=>ea(e??a)):(()=>{try{return ea(e??a)}finally{ta(0)}})())},()=>{t&&U--,--B||ta(0)}),B||await ia()}else 2==O?j=t:await ra()});t!=M||J?u(a)||await s(a):d=a},r);await sa(e),t!=M||J||await L(()=>ra(a),()=>{n=!1})}return $a},wa=async(a=!1)=>{j=0,a||M++;const t=v,n=d;return d=void 0,await sa(L(async()=>{await t},async()=>{u(n)||await R(()=>s(n),r)})),$a},ua=async a=>(1!=O&&await L(()=>L(async()=>{ta(2),g++,await Ea(()=>R(()=>e(H,a),r))},()=>ta(0)),ca),$a),ya=async()=>{const t=++k;return await da(!0),t!=k||J||(await ua(),t!=k||J||(E=a.addDidFinishTransactionListener(()=>{if(t==k&&!J){const a=K();Q(a)&&R(()=>ua(a))}}))),$a},da=async(t=!1)=>{t||k++;const n=E;return E=void 0,u(n)||a.delListener(n),$a},va=()=>!u(E),fa=async(a=!1)=>{const[t,n]=a?[da,wa]:[wa,da];return await L(()=>t(),async()=>{await n()}),$a},Ea=async(...a)=>{let t,n=!1;const e=A(e=>N(a)?e():q(Aa(Wa,w),...P(a,(i,s)=>{const c=s==m(a)-1;return[async()=>{let a;h=A(t=>a=t),await L(async()=>{try{await R(i,r)}catch(a){n||(n=!0,t=a)}c&&e()},()=>{h=void 0,a()})},c?e:void 0,X]})));if(await(async()=>{if(!Aa(Va,w)){pa(Va,w,1);const a=Aa(Wa,w);let t=0;await L(async()=>{for(;t<m(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{x(a,t),pa(Va,w,0),na()})}})(),await e,n)throw t;return $a},$a={load:ra,startAutoLoad:oa,stopAutoLoad:wa,isAutoLoading:()=>!u(d),save:ua,startAutoSave:ya,stopAutoSave:da,isAutoSaving:va,startAutoPersisting:async(a,t=!1)=>{const[n,e,i,s]=t?[ya,oa,da,wa]:[oa,ya,wa,da],r=n(a),c=t?k:M;await r;const o=e(a),l=t?M:k;try{await o}catch(a){throw l==(t?M:k)&&await b(s),c==(t?k:M)&&await b(i),a}return $a},stopAutoPersisting:fa,getStatus:()=>O,addStatusListener:a=>W(a,z),delListener:t=>(aa(t),a),schedule:Ea,getStore:()=>a,getStats:()=>({loads:T,saves:g}),...o,destroy:async()=>(u(_)&&(J=1,_=(async()=>{const a=Aa(Wa,w),t=F(a,([,a,t])=>t!=X||(a?.(),!1)),n=h;x(a),q(a,...t),await L(()=>L(()=>L(fa,()=>n),()=>Y?.()),()=>{const a=(Aa(Za,w)??1)-1;pa(Za,w,a||void 0),na()})})()),await _,$a)};return la($a)},tt=new l.TextEncoder,nt=(a,n,i,r,c=et,o,l,w)=>{const y=_a(),d=_a();let v=a;return[async()=>{g(y),g(d),C(await i(v,n),({tn:a,cn:t,uq:n})=>{Sa(Ta(y,a,Ia),t),n&&Sa(Ta(d,a,Ia),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:Ia(e);return((a,t)=>O(Aa(y,a),t))(a,t)?ya(F(P(await v(G+aa(a)+na(a,n)),a=>{const n=a[t],e=l?Ea(da(a,t),l):da(a,t);return[n,u(i)?e:ya(F(fa(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||O(i,a))(a)))]}),a=>!u(a[0])&&!ma(a[1]))):{}},async(a,n,i,l,w,f=!1,E=s,$)=>{const m=u($)?void 0:Ia($),_=a=>u(m)||O(m,a),A=Ia();va(i??{},a=>C(F(oa(a??{}),_),a=>Sa(A,a)));const p=T(A);if(u(m)&&!f&&w&&E==s&&N(p)&&O(y,a))return await v("DROP "+J+aa(a)),pa(y,a),void pa(d,a);const g=Aa(y,a),I=Ia(F(T(g),a=>a==n||_(a)));if(!N(p))if(O(y,a)){if(await h(P([n,...p],async t=>{S(I,t)||(await v(X+aa(a)+"ADD"+aa(t)+r),Sa(g,t))})),c==et&&!O(Aa(d,a),n)){const e=t+"_pk_"+(a=>{let t=2166136261;return C(tt.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(Ga([a,n]));await v("CREATE UNIQUE INDEX IF NOT EXISTS"+aa(e)+"ON"+aa(a)+`(${aa(n)})`),Sa(Ta(d,a,Ia),n)}}else await v(W+aa(a)+`(${aa(n)}${r} PRIMARY KEY${M(P(p,a=>e+aa(a)+r))});`),pa(y,a,Ia([n,...p])),pa(d,a,Ia([n]));if(await h([...!f&&l?P(T(I),async t=>{t!=n&&(await v(X+aa(a)+"DROP"+aa(t)),S(g,t))}):[]]),f)u(i)?u(m)&&await v(z+aa(a)+na(a,E)):await h(fa(i,async(t,e)=>{if(u(t))await v(z+aa(a)+na(a,E)+`AND(${aa(n)}=$1)`,[e]);else if(!N(p)){const i=F(oa(t),_);N(i)||await c(v,a,n,i,{[e]:P(i,a=>o?o(t[a]):t[a])},g)}}));else if(N(p))u(m)&&O(y,a)&&await v(z+aa(a)+na(a,E));else{const t=F(T(Aa(y,a)),a=>a!=n&&_(a)),e=ya(),s=[];va(i??{},(a,n)=>{ua(e,n,P(t,t=>o?o(a?.[t]):a?.[t])),q(s,n)}),await c(v,a,n,t,e,g),await v(z+aa(a)+na(a,E)+`AND${aa(n)}NOT IN(${ta(s)})`,s)}},async t=>{if(w)return await w(async a=>{const n=v;return v=a,await L(t,()=>{v=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await R(()=>a("ROLLBACK")),t}}]},et=async(a,t,n,i,s)=>{const r=[1];await a("INSERT INTO"+aa(t)+"("+((...a)=>M(P(a,aa),e))(n,...i)+")VALUES"+M(fa(s,a=>"($"+r[0]+++","+ta(a,r)+")"),e)+"ON CONFLICT("+aa(n)+")DO UPDATE SET"+M(P(i,a=>aa(a)+"=excluded."+aa(a)),e),fa(s,(a,t)=>[t,...P(a,a=>a??null)]).flat())},it=(a,t,n,e,i,s,r,[c,o,l],w,y,d,v,f,E,$,m,N)=>{const[_,A,h,O]=nt(t,w,y,f,E,void 0,void 0,N);return at(a,()=>O(async()=>{return await _(),a=(await A(c,o))[B]?.[l]??"null",Ka(Ha(a));var a}),a=>O(async()=>{var t;await _(),await h(c,o,{[B]:{[l]:(t=a()??null,Ga(t,(a,t)=>u(t)?"":t))}},!0,!0)}),n,e,i,r,{[v]:()=>d,destroy:s},0,d)},st=(a,t,n,e,i,s,r,[c,o,[l,w,y,d,v]],f,E,$,m,N,_,A,O,p)=>{const[T,g,I,S]=nt(t,f,E,N,_,A,O,p),D=(a,t)=>h(Oa(o,async([n,e,i,s,r],c)=>{var o,l;t&&(o=a,l=c,!ia.hasOwn(o,l))||await I(n,e,a[c],i,s,t,r)})),R=(a,t,n)=>ya(1==n?F(fa(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):F(P(t,t=>[t,a[t]]),([,a])=>!u(a))),b=async(a,t)=>w?await I(y,U,{[B]:u(v)?a:R(a,v,t)},!0,!0,t,void 0,v):null;return at(a,()=>S(async()=>{await T();const a=await(async()=>ya(F(await h(Oa(c,async([a,t,n],e)=>[a,await g(e,t,n)])),a=>!ma(a[1]))))(),t=await(async()=>l?(await g(y,U,void 0,d))[B]:{})();return ma(a)&&u(t)?void 0:[a,t]}),(a,t)=>S(async()=>{if(await T(),u(t)){const[t,n]=a();await D(t),await b(n)}else await D(t[0],!0),await b(t[1],!0)}),n,e,i,r,{[m]:()=>$,destroy:s},0,$)},rt=(a,e,i,r,o,l,y,v,f,$,m="getDb",N,_)=>{let A,h,p;const g=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,l),[I,S,R,C]=(a=>{const n=(a=>wa(ka,E(a)?{[La]:a}:a??{}))(a),e=n[Pa];if(n.mode==ba){const a=n[La]??t;return[1,e,[a,n[Ca]??U,n[Ma]??Ra],Ia(a)]}const{tables:{load:i={},save:r={}}={},values:c={}}=n,o=wa(Ja,c),{load:l,save:w}=o,u=[Ya(l),Ya(w),o[qa],Xa(l),Xa(w)],y=u[2],d=Ia(y),v=Ia(y),f=za(i,{[xa]:null,[Fa]:U,[ja]:s},xa,a=>O(v,a),a=>Sa(d,a)),$=za(r,{[qa]:null,[Fa]:U,[Ba]:0,[Ua]:0,[ja]:null},qa,(a,t)=>O(v,t),(a,t)=>Sa(d,t));return ha($,(a,t)=>t[4]??=Aa(f,t[0])?.[2]??s),[0,e,[f,$,u],d]})(e);return!I&&a.isMergeable()&&D(0),(I?it:st)(a,g,a=>{let t,n,e=1,i=0,s=0;const l=async(t=!0)=>{const[{d:n,s:i,c:r}]=await g(j+` ${K} d,${Q} s,TOTAL_CHANGES() c FROM ${H}${K} JOIN ${H}${Q}`);if(e&&(n!=A||i!=h||r!=p)){const c=t&&!s&&!w(A);A=n,h=i,p=r,c&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const c=L(()=>b(async()=>{for(i?r&&await l():(await l(!1),i=1);e&&s;)s=0,await l(!1),e&&(await a(),await l())},y),()=>{n==c&&(n=void 0),e&&(s?v():e&&u(t)&&(t=setInterval(()=>v(!0),1e3*S)))});return n=c,c},f=r(a=>{e&&O(C,a)&&(s=1,d(),c.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,s=0,d(),await L(async()=>await n,async()=>{A=h=p=null,await o(f)})})},a=>a(),y,v,f,R,T(C),async(a,t)=>await a(j+` t.name tn,c.name cn,c.pk OR EXISTS(${j} 1 FROM ${H}index_list(t.name)i,${H}index_info(i.name)ii ${k} i."unique"=1 AND ii.name=c.name AND(${j} count(*) FROM ${H}index_info(i.name))=1)uq FROM ${V}list()t,${V}info(t.name)c ${k} t.schema='main'AND t.type IN('table','view')AND t.name IN(${ta(t)})ORDER BY t.name,c.name`,t),$,m,n,N,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,_)},ct=(a,t,n,e,i)=>rt(a,n,async(a,n=[])=>t.query(a).all(...n),()=>_,a=>a(),e,i,_,3,t);export{ct as createSqliteBunPersister};
1
+ const a=a=>typeof a,t="tinybase",n="",e=",",i=a(n),s="true",r=(a,t,n)=>a.replace(t,n),c=Promise,o=a=>(t,n,e)=>a(t)?e?.():n(t),l=globalThis,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=o(w),f=o(u),E=t=>a(t)==i,m=a=>Array.isArray(a),N=a=>a.length,$=a=>0==N(a),_=()=>{},A=a=>new c(a),h=async a=>c.all(a),O=(a,t)=>a?.has(t)??!1,p=a=>u(a)||0==(a=>a?.size??0)(a),T=a=>[...a?.values()??[]],g=a=>a.clear(),I=(a,t)=>a?.forEach(t),S=(a,t)=>a?.delete(t),D=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},R=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},b=(a,t)=>R(a,a=>{R(()=>t?.(a))}),L=async(a,t)=>{try{return await a()}finally{await t()}},C=(a,t)=>a.forEach(t),M=(a,t="")=>a.join(t),P=(a,t)=>a.map(t),F=(a,t)=>a.filter(t),x=(a,t=N(a))=>a.splice(0,t),q=(a,...t)=>a.push(...t),B="_",U="_id",j="SELECT",k="WHERE",J="TABLE",X="ALTER "+J,Y="FROM",z="DELETE "+Y,G=j+"*"+Y,H="pragma_",K="data_version",Q="schema_version",V="pragma_table_",W="CREATE "+J,Z=/\$tableName/g,aa=a=>M(P(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),ta=()=>"?",na=(a,t,n=[1])=>M(P(a,()=>t(n)),e),ea=(a,t=s)=>k+`(${ia(t,aa(a))})`,ia=(a,t)=>r(a,Z,t),sa=Object,ra=a=>sa.getPrototypeOf(a),ca=sa.entries,oa=a=>!w(a)&&v(ra(a),a=>a==sa.prototype||w(ra(a)),()=>!0),la=sa.keys,wa=sa.freeze,ua=(...a)=>sa.assign(sa.create(null),...a),ya=(a,t,n)=>(sa.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),da=(a=[])=>{const t=sa.create(null);return C(a,([a,n])=>ya(t,a,n)),t},va=(a,t)=>(delete a[t],a),fa=(a,t)=>C(la(a),n=>t(a[n],n)),Ea=(a,t)=>P(ca(a),([a,n])=>t(n,a)),ma=(a,t)=>{const n=da();return fa(a,(a,e)=>ya(n,e,t(a,e))),n},Na=a=>N(la(a)),$a=a=>oa(a)&&0==Na(a),_a=Map,Aa=a=>new _a(a),ha=(a,t)=>a?.get(t),Oa=(a,t)=>I(a,(a,n)=>t(n,a)),pa=(a,t)=>{const n=[];return Oa(a,(a,e)=>q(n,t(e,a))),n},Ta=(a,t,n)=>u(n)?(S(a,t),a):a?.set(t,n),ga=(a,t,n,e)=>{let i=ha(a,t);return O(a,t)?e?.(i):Ta(a,t,i=n()),i},Ia=(a,t,n,e,i=0)=>f((n?ga:ha)(a,t[i],i>N(t)-2?n:Aa),s=>{if(i>N(t)-2)return e?.(s)&&Ta(a,t[i]),s;const r=Ia(s,t,n,e,i+1);return p(s)&&Ta(a,t[i]),r}),Sa=a=>new Set(m(a)||u(a)?a:[a]),Da=(a,t)=>a?.add(t),Ra="ColumnName",ba="store",La="json",Ca=ba+"TableName",Ma=ba+"Id"+Ra,Pa=ba+Ra,Fa="autoLoadIntervalSeconds",xa="rowId"+Ra,qa="tableId",Ba="tableName",Ua="deleteEmptyColumns",ja="deleteEmptyTable",ka="condition",Ja={mode:La,[Fa]:1},Xa={load:0,save:0,[Ba]:t+"_values"},Ya=a=>m(a)?a:void 0,za=a=>d(a)||m(a),Ga=(a,t,n,e,i)=>{const s=Aa();return fa(a,(a,r)=>{const c=(w=ua(t,E(a)?{[n]:a}:a),o=sa.values(w),l=Na(t),o.slice(0,l));var o,l,w;y(c[0])||e(r,c[0])||(i(r,c[0]),Ta(s,r,c))}),s},Ha=JSON.stringify,Ka=JSON.parse,Qa=a=>""===a?void 0:m(a)?P(a,Qa):oa(a)?ma(a,Qa):a,Va=/^\d+$/,Wa=Aa(),Za=Aa(),at=Aa(),tt=(a,t,e,i,s,r,c,o={},l=0,w=[])=>{let d,v,E,_,h,O=0,T=0,g=0,M=0,B=0,U=0,j=0,k=0,J=0;const X={},Y=o.destroy;ga(Wa,w,()=>0),ga(Za,w,()=>[]),Ta(at,w,(ha(at,w)??0)+1);const z=Aa(),[G,H,K,Q,V]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!$a(a)||!$a(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!$a(a)||!$a(t),t.setContent]:D(0))(c,a,l),[W,Z,aa]=(a=>{let t;const[e,i]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{Va.test(t)&&N(a)<1e3&&q(a,t)}]})(),s=Aa(),r=(a,e,i,r)=>{let c,o=!1;if(C(((a,t=[n])=>{const e=[],i=(a,n)=>n==N(t)?q(e,a):y(t[n])?I(a,a=>i(a,n+1)):C([t[n],null],t=>i(ha(a,t),n+1));return i(a,0),e})(e,i),n=>I(n,n=>{const e=()=>ha(s,n)[0](t,...i??[],...r);a?(a=>{try{return a()}catch(a){(a=>{o||(c=a),o=!0})?.(a)}})(e):e()})),o)throw c};return[(i,r,c,o=[],l=()=>[])=>{t??=a();const w=e(1);return Ta(s,w,[i,r,c,o,l]),Da(Ia(r,c??[n],Sa),w),w},(a,t,...n)=>r(!1,a,t,n),a=>f(ha(s,a),([,t,e])=>(Ia(t,e??[n],void 0,t=>(S(t,a),p(t)?1:0)),Ta(s,a),i(a),e)),a=>f(ha(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const c=N(r);c==N(n)?a(t,...r,...i(r)):y(n[c])?C(e[c]?.(...r)??[],a=>s(...r,a)):s(...r,n[c])};s()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>ma),ta=a=>{a!=O&&(O=a,Z(z,void 0,O))},na=()=>{ha(at,w)||ha(Wa,w)||!$(ha(Za,w)??[])||(Ta(Wa,w),Ta(Za,w),Ta(at,w))},ea=t=>{(G&&m(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ia=async()=>{va()&&a.__?.[0]?.()&&await ua()},sa=a=>L(()=>v=a,()=>{v==a&&(v=void 0)}),ra=async a=>(2!=O&&(await L(async()=>{ta(1),T++,await Ea(()=>R(async()=>{const n=await t();m(n)?ea(n):u(n)&&a?V(a):u(n)||D(1,n)},t=>{r?.(t),a&&V(a)}))},()=>ta(0)),await ia()),ma),ca=async()=>{const a=j;j=0,a&&a==M&&!J&&(2==O?j=a:await ra())},oa=async a=>{const t=++M;let n=!0;if(await la(!0),t==M&&!J){const e=R(async()=>{const a=await i(async(a,e)=>{if(t==M&&!J)if(e||a){const t=n||2==O||!!U;B++,t&&U++,await L(async()=>{ta(1),T++,await(t?Ea(()=>ea(e??a)):(()=>{try{return ea(e??a)}finally{ta(0)}})())},()=>{t&&U--,--B||ta(0)}),B||await ia()}else 2==O?j=t:await ra()});t!=M||J?u(a)||await s(a):d=a},r);await sa(e),t!=M||J||await L(()=>ra(a),()=>{n=!1})}return ma},la=async(a=!1)=>{j=0,a||M++;const t=v,n=d;return d=void 0,await sa(L(async()=>{await t},async()=>{u(n)||await R(()=>s(n),r)})),ma},ua=async a=>(1!=O&&await L(()=>L(async()=>{ta(2),g++,await Ea(()=>R(()=>e(H,a),r))},()=>ta(0)),ca),ma),ya=async()=>{const t=++k;return await da(!0),t!=k||J||(await ua(),t!=k||J||(E=a.addDidFinishTransactionListener(()=>{if(t==k&&!J){const a=K();Q(a)&&R(()=>ua(a))}}))),ma},da=async(t=!1)=>{t||k++;const n=E;return E=void 0,u(n)||a.delListener(n),ma},va=()=>!u(E),fa=async(a=!1)=>{const[t,n]=a?[da,la]:[la,da];return await L(()=>t(),async()=>{await n()}),ma},Ea=async(...a)=>{let t,n=!1;const e=A(e=>$(a)?e():q(ha(Za,w),...P(a,(i,s)=>{const c=s==N(a)-1;return[async()=>{let a;h=A(t=>a=t),await L(async()=>{try{await R(i,r)}catch(a){n||(n=!0,t=a)}c&&e()},()=>{h=void 0,a()})},c?e:void 0,X]})));if(await(async()=>{if(!ha(Wa,w)){Ta(Wa,w,1);const a=ha(Za,w);let t=0;await L(async()=>{for(;t<N(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{x(a,t),Ta(Wa,w,0),na()})}})(),await e,n)throw t;return ma},ma={load:ra,startAutoLoad:oa,stopAutoLoad:la,isAutoLoading:()=>!u(d),save:ua,startAutoSave:ya,stopAutoSave:da,isAutoSaving:va,startAutoPersisting:async(a,t=!1)=>{const[n,e,i,s]=t?[ya,oa,da,la]:[oa,ya,la,da],r=n(a),c=t?k:M;await r;const o=e(a),l=t?M:k;try{await o}catch(a){throw l==(t?M:k)&&await b(s),c==(t?k:M)&&await b(i),a}return ma},stopAutoPersisting:fa,getStatus:()=>O,addStatusListener:a=>W(a,z),delListener:t=>(aa(t),a),schedule:Ea,getStore:()=>a,getStats:()=>({loads:T,saves:g}),...o,destroy:async()=>(u(_)&&(J=1,_=(async()=>{const a=ha(Za,w),t=F(a,([,a,t])=>t!=X||(a?.(),!1)),n=h;x(a),q(a,...t),await L(()=>L(()=>L(fa,()=>n),()=>Y?.()),()=>{const a=(ha(at,w)??1)-1;Ta(at,w,a||void 0),na()})})()),await _,ma)};return wa(ma)},nt=new l.TextEncoder,et=(a,n,i,r,c,o=it,l,w,y)=>{const d=Aa(),v=Aa();let f=a;return[async()=>{g(d),g(v),C(await i(f,n),({tn:a,cn:t,uq:n})=>{Da(ga(d,a,Sa),t),n&&Da(ga(v,a,Sa),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:Sa(e);return((a,t)=>O(ha(d,a),t))(a,t)?da(F(P(await f(G+aa(a)+ea(a,n)),a=>{const n=a[t],e=w?ma(va(a,t),w):va(a,t);return[n,u(i)?e:da(F(Ea(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||O(i,a))(a)))]}),a=>!u(a[0])&&!$a(a[1]))):{}},async(a,n,i,w,y,E=!1,m=s,N)=>{const _=u(N)?void 0:Sa(N),A=a=>u(_)||O(_,a),p=Sa();fa(i??{},a=>C(F(la(a??{}),A),a=>Da(p,a)));const g=T(p);if(u(_)&&!E&&y&&m==s&&$(g)&&O(d,a))return await f("DROP "+J+aa(a)),Ta(d,a),void Ta(v,a);const I=ha(d,a),D=Sa(F(T(I),a=>a==n||A(a)));if(!$(g))if(O(d,a)){if(await h(P([n,...g],async t=>{S(D,t)||(await f(X+aa(a)+"ADD"+aa(t)+r),Da(I,t))})),o==it&&!O(ha(v,a),n)){const e=t+"_pk_"+(a=>{let t=2166136261;return C(nt.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(Ha([a,n]));await f("CREATE UNIQUE INDEX IF NOT EXISTS"+aa(e)+"ON"+aa(a)+`(${aa(n)})`),Da(ga(v,a,Sa),n)}}else await f(W+aa(a)+`(${aa(n)}${r} PRIMARY KEY${M(P(g,a=>e+aa(a)+r))});`),Ta(d,a,Sa([n,...g])),Ta(v,a,Sa([n]));if(await h([...!E&&w?P(T(D),async t=>{t!=n&&(await f(X+aa(a)+"DROP"+aa(t)),S(I,t))}):[]]),E)u(i)?u(_)&&await f(z+aa(a)+ea(a,m)):await h(Ea(i,async(t,e)=>{if(u(t))await f(z+aa(a)+ea(a,m)+`AND(${aa(n)}=${c([1])})`,[e]);else if(!$(g)){const i=F(la(t),A);$(i)||await o(f,a,n,i,{[e]:P(i,a=>l?l(t[a]):t[a])},c,I)}}));else if($(g))u(_)&&O(d,a)&&await f(z+aa(a)+ea(a,m));else{const t=F(T(ha(d,a)),a=>a!=n&&A(a)),e=da(),s=[];fa(i??{},(a,n)=>{ya(e,n,P(t,t=>l?l(a?.[t]):a?.[t])),q(s,n)}),await o(f,a,n,t,e,c,I),await f(z+aa(a)+ea(a,m)+`AND${aa(n)}NOT IN(${na(s,c)})`,s)}},async t=>{if(y)return await y(async a=>{const n=f;return f=a,await L(t,()=>{f=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await R(()=>a("ROLLBACK")),t}}]},it=async(a,t,n,i,s,r)=>{const c=[1];await a("INSERT INTO"+aa(t)+"("+((...a)=>M(P(a,aa),e))(n,...i)+")VALUES"+M(Ea(s,a=>"("+r(c)+","+na(a,r,c)+")"),e)+"ON CONFLICT("+aa(n)+")DO UPDATE SET"+M(P(i,a=>aa(a)+"=excluded."+aa(a)),e),Ea(s,(a,t)=>[t,...P(a,a=>a??null)]).flat())},st=(a,t,n,e,i,s,r,[c,o,l],w,y,d,v,f,E,m,N,$,_)=>{const[A,h,O,p]=et(t,w,y,f,E,m,void 0,void 0,_);return tt(a,()=>p(async()=>{return await A(),a=(await h(c,o))[B]?.[l]??"null",Qa(Ka(a));var a}),a=>p(async()=>{var t;await A(),await O(c,o,{[B]:{[l]:(t=a()??null,Ha(t,(a,t)=>u(t)?"":t))}},!0,!0)}),n,e,i,r,{[v]:()=>d,destroy:s},0,d)},rt=(a,t,n,e,i,s,r,[c,o,[l,w,y,d,v]],f,E,m,N,$,_,A,O,p,T)=>{const[g,I,S,D]=et(t,f,E,$,_,A,O,p,T),R=(a,t)=>h(pa(o,async([n,e,i,s,r],c)=>{var o,l;t&&(o=a,l=c,!sa.hasOwn(o,l))||await S(n,e,a[c],i,s,t,r)})),b=(a,t,n)=>da(1==n?F(Ea(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):F(P(t,t=>[t,a[t]]),([,a])=>!u(a))),L=async(a,t)=>w?await S(y,U,{[B]:u(v)?a:b(a,v,t)},!0,!0,t,void 0,v):null;return tt(a,()=>D(async()=>{await g();const a=await(async()=>da(F(await h(pa(c,async([a,t,n],e)=>[a,await I(e,t,n)])),a=>!$a(a[1]))))(),t=await(async()=>l?(await I(y,U,void 0,d))[B]:{})();return $a(a)&&u(t)?void 0:[a,t]}),(a,t)=>D(async()=>{if(await g(),u(t)){const[t,n]=a();await R(t),await L(n)}else await R(t[0],!0),await L(t[1],!0)}),n,e,i,r,{[N]:()=>m,destroy:s},0,m)},ct=(a,e,i,r,o,l,y,v,f,m,N="getDb",$,_)=>{let A,h,p;const g=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,l),[I,S,R,C]=(a=>{const n=(a=>ua(Ja,E(a)?{[Ca]:a}:a??{}))(a),e=n[Fa];if(n.mode==La){const a=n[Ca]??t;return[1,e,[a,n[Ma]??U,n[Pa]??ba],Sa(a)]}const{tables:{load:i={},save:r={}}={},values:c={}}=n,o=ua(Xa,c),{load:l,save:w}=o,u=[za(l),za(w),o[Ba],Ya(l),Ya(w)],y=u[2],d=Sa(y),v=Sa(y),f=Ga(i,{[qa]:null,[xa]:U,[ka]:s},qa,a=>O(v,a),a=>Da(d,a)),m=Ga(r,{[Ba]:null,[xa]:U,[Ua]:0,[ja]:0,[ka]:null},Ba,(a,t)=>O(v,t),(a,t)=>Da(d,t));return Oa(m,(a,t)=>t[4]??=ha(f,t[0])?.[2]??s),[0,e,[f,m,u],d]})(e);return!I&&a.isMergeable()&&D(0),(I?st:rt)(a,g,a=>{let t,n,e=1,i=0,s=0;const l=async(t=!0)=>{const[{d:n,s:i,c:r}]=await g(j+` ${K} d,${Q} s,TOTAL_CHANGES() c FROM ${H}${K} JOIN ${H}${Q}`);if(e&&(n!=A||i!=h||r!=p)){const c=t&&!s&&!w(A);A=n,h=i,p=r,c&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const c=L(()=>b(async()=>{for(i?r&&await l():(await l(!1),i=1);e&&s;)s=0,await l(!1),e&&(await a(),await l())},y),()=>{n==c&&(n=void 0),e&&(s?v():e&&u(t)&&(t=setInterval(()=>v(!0),1e3*S)))});return n=c,c},f=r(a=>{e&&O(C,a)&&(s=1,d(),c.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,s=0,d(),await L(async()=>await n,async()=>{A=h=p=null,await o(f)})})},a=>a(),y,v,f,R,T(C),async(a,t)=>await a(j+` t.name tn,c.name cn,c.pk OR EXISTS(${j} 1 FROM ${H}index_list(t.name)i,${H}index_info(i.name)ii ${k} i."unique"=1 AND ii.name=c.name AND(${j} count(*) FROM ${H}index_info(i.name))=1)uq FROM ${V}list()t,${V}info(t.name)c ${k} t.schema='main'AND t.type IN('table','view')AND t.name IN(${na(t,ta)})ORDER BY t.name,c.name`,t),m,N,n,ta,$,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,_)},ot=(a,t,n,e,i)=>ct(a,n,async(a,n=[])=>t.query(a).all(...n),()=>_,a=>a(),e,i,_,3,t);export{ot as createSqliteBunPersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",n="",e=",",i=a(n),s="true",r=(a,t,n)=>a.replace(t,n),c=Promise,o=a=>(t,n,e)=>a(t)?e?.():n(t),l=globalThis,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=o(w),f=o(u),E=t=>a(t)==i,$=a=>Array.isArray(a),m=a=>a.length,N=a=>0==m(a),_=()=>{},A=a=>new c(a),h=async a=>c.all(a),O=(a,t)=>a?.has(t)??!1,p=a=>u(a)||0==(a=>a?.size??0)(a),T=a=>[...a?.values()??[]],g=a=>a.clear(),I=(a,t)=>a?.forEach(t),S=(a,t)=>a?.delete(t),D=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},R=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},b=(a,t)=>R(a,a=>{R(()=>t?.(a))}),L=async(a,t)=>{try{return await a()}finally{await t()}},C=(a,t)=>a.forEach(t),M=(a,t="")=>a.join(t),P=(a,t)=>a.map(t),F=(a,t)=>a.filter(t),x=(a,t=m(a))=>a.splice(0,t),q=(a,...t)=>a.push(...t),B="_",U="_id",j="SELECT",k="WHERE",J="TABLE",X="ALTER "+J,Y="FROM",z="DELETE "+Y,G=j+"*"+Y,H="pragma_",K="data_version",Q="schema_version",V="pragma_table_",W="CREATE "+J,Z=/\$tableName/g,aa=a=>M(P(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),ta=(a,t=[1])=>M(P(a,()=>"$"+t[0]++),e),na=(a,t=s)=>k+`(${ea(t,aa(a))})`,ea=(a,t)=>r(a,Z,t),ia=Object,sa=a=>ia.getPrototypeOf(a),ra=ia.entries,ca=a=>!w(a)&&v(sa(a),a=>a==ia.prototype||w(sa(a)),()=>!0),oa=ia.keys,la=ia.freeze,wa=(...a)=>ia.assign(ia.create(null),...a),ua=(a,t,n)=>(ia.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),ya=(a=[])=>{const t=ia.create(null);return C(a,([a,n])=>ua(t,a,n)),t},da=(a,t)=>(delete a[t],a),va=(a,t)=>C(oa(a),n=>t(a[n],n)),fa=(a,t)=>P(ra(a),([a,n])=>t(n,a)),Ea=(a,t)=>{const n=ya();return va(a,(a,e)=>ua(n,e,t(a,e))),n},$a=a=>m(oa(a)),ma=a=>ca(a)&&0==$a(a),Na=Map,_a=a=>new Na(a),Aa=(a,t)=>a?.get(t),ha=(a,t)=>I(a,(a,n)=>t(n,a)),Oa=(a,t)=>{const n=[];return ha(a,(a,e)=>q(n,t(e,a))),n},pa=(a,t,n)=>u(n)?(S(a,t),a):a?.set(t,n),Ta=(a,t,n,e)=>{let i=Aa(a,t);return O(a,t)?e?.(i):pa(a,t,i=n()),i},ga=(a,t,n,e,i=0)=>f((n?Ta:Aa)(a,t[i],i>m(t)-2?n:_a),s=>{if(i>m(t)-2)return e?.(s)&&pa(a,t[i]),s;const r=ga(s,t,n,e,i+1);return p(s)&&pa(a,t[i]),r}),Ia=a=>new Set($(a)||u(a)?a:[a]),Sa=(a,t)=>a?.add(t),Da="ColumnName",Ra="store",ba="json",La=Ra+"TableName",Ca=Ra+"Id"+Da,Ma=Ra+Da,Pa="autoLoadIntervalSeconds",Fa="rowId"+Da,xa="tableId",qa="tableName",Ba="deleteEmptyColumns",Ua="deleteEmptyTable",ja="condition",ka={mode:ba,[Pa]:1},Ja={load:0,save:0,[qa]:t+"_values"},Xa=a=>$(a)?a:void 0,Ya=a=>d(a)||$(a),za=(a,t,n,e,i)=>{const s=_a();return va(a,(a,r)=>{const c=(w=wa(t,E(a)?{[n]:a}:a),o=ia.values(w),l=$a(t),o.slice(0,l));var o,l,w;y(c[0])||e(r,c[0])||(i(r,c[0]),pa(s,r,c))}),s},Ga=JSON.stringify,Ha=JSON.parse,Ka=a=>""===a?void 0:$(a)?P(a,Ka):ca(a)?Ea(a,Ka):a,Qa=/^\d+$/,Va=_a(),Wa=_a(),Za=_a(),at=(a,t,e,i,s,r,c,o={},l=0,w=[])=>{let d,v,E,_,h,O=0,T=0,g=0,M=0,B=0,U=0,j=0,k=0,J=0;const X={},Y=o.destroy;Ta(Va,w,()=>0),Ta(Wa,w,()=>[]),pa(Za,w,(Aa(Za,w)??0)+1);const z=_a(),[G,H,K,Q,V]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!ma(a)||!ma(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!ma(a)||!ma(t),t.setContent]:D(0))(c,a,l),[W,Z,aa]=(a=>{let t;const[e,i]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{Qa.test(t)&&m(a)<1e3&&q(a,t)}]})(),s=_a(),r=(a,e,i,r)=>{let c,o=!1;if(C(((a,t=[n])=>{const e=[],i=(a,n)=>n==m(t)?q(e,a):y(t[n])?I(a,a=>i(a,n+1)):C([t[n],null],t=>i(Aa(a,t),n+1));return i(a,0),e})(e,i),n=>I(n,n=>{const e=()=>Aa(s,n)[0](t,...i??[],...r);a?(a=>{try{return a()}catch(a){(a=>{o||(c=a),o=!0})?.(a)}})(e):e()})),o)throw c};return[(i,r,c,o=[],l=()=>[])=>{t??=a();const w=e(1);return pa(s,w,[i,r,c,o,l]),Sa(ga(r,c??[n],Ia),w),w},(a,t,...n)=>r(!1,a,t,n),a=>f(Aa(s,a),([,t,e])=>(ga(t,e??[n],void 0,t=>(S(t,a),p(t)?1:0)),pa(s,a),i(a),e)),a=>f(Aa(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const c=m(r);c==m(n)?a(t,...r,...i(r)):y(n[c])?C(e[c]?.(...r)??[],a=>s(...r,a)):s(...r,n[c])};s()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>$a),ta=a=>{a!=O&&(O=a,Z(z,void 0,O))},na=()=>{Aa(Za,w)||Aa(Va,w)||!N(Aa(Wa,w)??[])||(pa(Va,w),pa(Wa,w),pa(Za,w))},ea=t=>{(G&&$(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ia=async()=>{va()&&a.__?.[0]?.()&&await ua()},sa=a=>L(()=>v=a,()=>{v==a&&(v=void 0)}),ra=async a=>(2!=O&&(await L(async()=>{ta(1),T++,await Ea(()=>R(async()=>{const n=await t();$(n)?ea(n):u(n)&&a?V(a):u(n)||D(1,n)},t=>{r?.(t),a&&V(a)}))},()=>ta(0)),await ia()),$a),ca=async()=>{const a=j;j=0,a&&a==M&&!J&&(2==O?j=a:await ra())},oa=async a=>{const t=++M;let n=!0;if(await wa(!0),t==M&&!J){const e=R(async()=>{const a=await i(async(a,e)=>{if(t==M&&!J)if(e||a){const t=n||2==O||!!U;B++,t&&U++,await L(async()=>{ta(1),T++,await(t?Ea(()=>ea(e??a)):(()=>{try{return ea(e??a)}finally{ta(0)}})())},()=>{t&&U--,--B||ta(0)}),B||await ia()}else 2==O?j=t:await ra()});t!=M||J?u(a)||await s(a):d=a},r);await sa(e),t!=M||J||await L(()=>ra(a),()=>{n=!1})}return $a},wa=async(a=!1)=>{j=0,a||M++;const t=v,n=d;return d=void 0,await sa(L(async()=>{await t},async()=>{u(n)||await R(()=>s(n),r)})),$a},ua=async a=>(1!=O&&await L(()=>L(async()=>{ta(2),g++,await Ea(()=>R(()=>e(H,a),r))},()=>ta(0)),ca),$a),ya=async()=>{const t=++k;return await da(!0),t!=k||J||(await ua(),t!=k||J||(E=a.addDidFinishTransactionListener(()=>{if(t==k&&!J){const a=K();Q(a)&&R(()=>ua(a))}}))),$a},da=async(t=!1)=>{t||k++;const n=E;return E=void 0,u(n)||a.delListener(n),$a},va=()=>!u(E),fa=async(a=!1)=>{const[t,n]=a?[da,wa]:[wa,da];return await L(()=>t(),async()=>{await n()}),$a},Ea=async(...a)=>{let t,n=!1;const e=A(e=>N(a)?e():q(Aa(Wa,w),...P(a,(i,s)=>{const c=s==m(a)-1;return[async()=>{let a;h=A(t=>a=t),await L(async()=>{try{await R(i,r)}catch(a){n||(n=!0,t=a)}c&&e()},()=>{h=void 0,a()})},c?e:void 0,X]})));if(await(async()=>{if(!Aa(Va,w)){pa(Va,w,1);const a=Aa(Wa,w);let t=0;await L(async()=>{for(;t<m(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{x(a,t),pa(Va,w,0),na()})}})(),await e,n)throw t;return $a},$a={load:ra,startAutoLoad:oa,stopAutoLoad:wa,isAutoLoading:()=>!u(d),save:ua,startAutoSave:ya,stopAutoSave:da,isAutoSaving:va,startAutoPersisting:async(a,t=!1)=>{const[n,e,i,s]=t?[ya,oa,da,wa]:[oa,ya,wa,da],r=n(a),c=t?k:M;await r;const o=e(a),l=t?M:k;try{await o}catch(a){throw l==(t?M:k)&&await b(s),c==(t?k:M)&&await b(i),a}return $a},stopAutoPersisting:fa,getStatus:()=>O,addStatusListener:a=>W(a,z),delListener:t=>(aa(t),a),schedule:Ea,getStore:()=>a,getStats:()=>({loads:T,saves:g}),...o,destroy:async()=>(u(_)&&(J=1,_=(async()=>{const a=Aa(Wa,w),t=F(a,([,a,t])=>t!=X||(a?.(),!1)),n=h;x(a),q(a,...t),await L(()=>L(()=>L(fa,()=>n),()=>Y?.()),()=>{const a=(Aa(Za,w)??1)-1;pa(Za,w,a||void 0),na()})})()),await _,$a)};return la($a)},tt=new l.TextEncoder,nt=(a,n,i,r,c=et,o,l,w)=>{const y=_a(),d=_a();let v=a;return[async()=>{g(y),g(d),C(await i(v,n),({tn:a,cn:t,uq:n})=>{Sa(Ta(y,a,Ia),t),n&&Sa(Ta(d,a,Ia),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:Ia(e);return((a,t)=>O(Aa(y,a),t))(a,t)?ya(F(P(await v(G+aa(a)+na(a,n)),a=>{const n=a[t],e=l?Ea(da(a,t),l):da(a,t);return[n,u(i)?e:ya(F(fa(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||O(i,a))(a)))]}),a=>!u(a[0])&&!ma(a[1]))):{}},async(a,n,i,l,w,f=!1,E=s,$)=>{const m=u($)?void 0:Ia($),_=a=>u(m)||O(m,a),A=Ia();va(i??{},a=>C(F(oa(a??{}),_),a=>Sa(A,a)));const p=T(A);if(u(m)&&!f&&w&&E==s&&N(p)&&O(y,a))return await v("DROP "+J+aa(a)),pa(y,a),void pa(d,a);const g=Aa(y,a),I=Ia(F(T(g),a=>a==n||_(a)));if(!N(p))if(O(y,a)){if(await h(P([n,...p],async t=>{S(I,t)||(await v(X+aa(a)+"ADD"+aa(t)+r),Sa(g,t))})),c==et&&!O(Aa(d,a),n)){const e=t+"_pk_"+(a=>{let t=2166136261;return C(tt.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(Ga([a,n]));await v("CREATE UNIQUE INDEX IF NOT EXISTS"+aa(e)+"ON"+aa(a)+`(${aa(n)})`),Sa(Ta(d,a,Ia),n)}}else await v(W+aa(a)+`(${aa(n)}${r} PRIMARY KEY${M(P(p,a=>e+aa(a)+r))});`),pa(y,a,Ia([n,...p])),pa(d,a,Ia([n]));if(await h([...!f&&l?P(T(I),async t=>{t!=n&&(await v(X+aa(a)+"DROP"+aa(t)),S(g,t))}):[]]),f)u(i)?u(m)&&await v(z+aa(a)+na(a,E)):await h(fa(i,async(t,e)=>{if(u(t))await v(z+aa(a)+na(a,E)+`AND(${aa(n)}=$1)`,[e]);else if(!N(p)){const i=F(oa(t),_);N(i)||await c(v,a,n,i,{[e]:P(i,a=>o?o(t[a]):t[a])},g)}}));else if(N(p))u(m)&&O(y,a)&&await v(z+aa(a)+na(a,E));else{const t=F(T(Aa(y,a)),a=>a!=n&&_(a)),e=ya(),s=[];va(i??{},(a,n)=>{ua(e,n,P(t,t=>o?o(a?.[t]):a?.[t])),q(s,n)}),await c(v,a,n,t,e,g),await v(z+aa(a)+na(a,E)+`AND${aa(n)}NOT IN(${ta(s)})`,s)}},async t=>{if(w)return await w(async a=>{const n=v;return v=a,await L(t,()=>{v=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await R(()=>a("ROLLBACK")),t}}]},et=async(a,t,n,i,s)=>{const r=[1];await a("INSERT INTO"+aa(t)+"("+((...a)=>M(P(a,aa),e))(n,...i)+")VALUES"+M(fa(s,a=>"($"+r[0]+++","+ta(a,r)+")"),e)+"ON CONFLICT("+aa(n)+")DO UPDATE SET"+M(P(i,a=>aa(a)+"=excluded."+aa(a)),e),fa(s,(a,t)=>[t,...P(a,a=>a??null)]).flat())},it=(a,t,n,e,i,s,r,[c,o,l],w,y,d,v,f,E,$,m,N)=>{const[_,A,h,O]=nt(t,w,y,f,E,void 0,void 0,N);return at(a,()=>O(async()=>{return await _(),a=(await A(c,o))[B]?.[l]??"null",Ka(Ha(a));var a}),a=>O(async()=>{var t;await _(),await h(c,o,{[B]:{[l]:(t=a()??null,Ga(t,(a,t)=>u(t)?"":t))}},!0,!0)}),n,e,i,r,{[v]:()=>d,destroy:s},0,d)},st=(a,t,n,e,i,s,r,[c,o,[l,w,y,d,v]],f,E,$,m,N,_,A,O,p)=>{const[T,g,I,S]=nt(t,f,E,N,_,A,O,p),D=(a,t)=>h(Oa(o,async([n,e,i,s,r],c)=>{var o,l;t&&(o=a,l=c,!ia.hasOwn(o,l))||await I(n,e,a[c],i,s,t,r)})),R=(a,t,n)=>ya(1==n?F(fa(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):F(P(t,t=>[t,a[t]]),([,a])=>!u(a))),b=async(a,t)=>w?await I(y,U,{[B]:u(v)?a:R(a,v,t)},!0,!0,t,void 0,v):null;return at(a,()=>S(async()=>{await T();const a=await(async()=>ya(F(await h(Oa(c,async([a,t,n],e)=>[a,await g(e,t,n)])),a=>!ma(a[1]))))(),t=await(async()=>l?(await g(y,U,void 0,d))[B]:{})();return ma(a)&&u(t)?void 0:[a,t]}),(a,t)=>S(async()=>{if(await T(),u(t)){const[t,n]=a();await D(t),await b(n)}else await D(t[0],!0),await b(t[1],!0)}),n,e,i,r,{[m]:()=>$,destroy:s},0,$)},rt=(a,e,i,r,o,l,y,v,f,$,m="getDb",N,_)=>{let A,h,p;const g=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,l),[I,S,R,C]=(a=>{const n=(a=>wa(ka,E(a)?{[La]:a}:a??{}))(a),e=n[Pa];if(n.mode==ba){const a=n[La]??t;return[1,e,[a,n[Ca]??U,n[Ma]??Ra],Ia(a)]}const{tables:{load:i={},save:r={}}={},values:c={}}=n,o=wa(Ja,c),{load:l,save:w}=o,u=[Ya(l),Ya(w),o[qa],Xa(l),Xa(w)],y=u[2],d=Ia(y),v=Ia(y),f=za(i,{[xa]:null,[Fa]:U,[ja]:s},xa,a=>O(v,a),a=>Sa(d,a)),$=za(r,{[qa]:null,[Fa]:U,[Ba]:0,[Ua]:0,[ja]:null},qa,(a,t)=>O(v,t),(a,t)=>Sa(d,t));return ha($,(a,t)=>t[4]??=Aa(f,t[0])?.[2]??s),[0,e,[f,$,u],d]})(e);return!I&&a.isMergeable()&&D(0),(I?it:st)(a,g,a=>{let t,n,e=1,i=0,s=0;const l=async(t=!0)=>{const[{d:n,s:i,c:r}]=await g(j+` ${K} d,${Q} s,TOTAL_CHANGES() c FROM ${H}${K} JOIN ${H}${Q}`);if(e&&(n!=A||i!=h||r!=p)){const c=t&&!s&&!w(A);A=n,h=i,p=r,c&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const c=L(()=>b(async()=>{for(i?r&&await l():(await l(!1),i=1);e&&s;)s=0,await l(!1),e&&(await a(),await l())},y),()=>{n==c&&(n=void 0),e&&(s?v():e&&u(t)&&(t=setInterval(()=>v(!0),1e3*S)))});return n=c,c},f=r(a=>{e&&O(C,a)&&(s=1,d(),c.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,s=0,d(),await L(async()=>await n,async()=>{A=h=p=null,await o(f)})})},a=>a(),y,v,f,R,T(C),async(a,t)=>await a(j+` t.name tn,c.name cn,c.pk OR EXISTS(${j} 1 FROM ${H}index_list(t.name)i,${H}index_info(i.name)ii ${k} i."unique"=1 AND ii.name=c.name AND(${j} count(*) FROM ${H}index_info(i.name))=1)uq FROM ${V}list()t,${V}info(t.name)c ${k} t.schema='main'AND t.type IN('table','view')AND t.name IN(${ta(t)})ORDER BY t.name,c.name`,t),$,m,n,N,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,_)},ct=(a,t,n,e,i)=>rt(a,n,async(a,n=[])=>t.query(a).all(...n),()=>_,a=>a(),e,i,_,3,t);export{ct as createSqliteBunPersister};
1
+ const a=a=>typeof a,t="tinybase",n="",e=",",i=a(n),s="true",r=(a,t,n)=>a.replace(t,n),c=Promise,o=a=>(t,n,e)=>a(t)?e?.():n(t),l=globalThis,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=o(w),f=o(u),E=t=>a(t)==i,m=a=>Array.isArray(a),N=a=>a.length,$=a=>0==N(a),_=()=>{},A=a=>new c(a),h=async a=>c.all(a),O=(a,t)=>a?.has(t)??!1,p=a=>u(a)||0==(a=>a?.size??0)(a),T=a=>[...a?.values()??[]],g=a=>a.clear(),I=(a,t)=>a?.forEach(t),S=(a,t)=>a?.delete(t),D=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},R=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},b=(a,t)=>R(a,a=>{R(()=>t?.(a))}),L=async(a,t)=>{try{return await a()}finally{await t()}},C=(a,t)=>a.forEach(t),M=(a,t="")=>a.join(t),P=(a,t)=>a.map(t),F=(a,t)=>a.filter(t),x=(a,t=N(a))=>a.splice(0,t),q=(a,...t)=>a.push(...t),B="_",U="_id",j="SELECT",k="WHERE",J="TABLE",X="ALTER "+J,Y="FROM",z="DELETE "+Y,G=j+"*"+Y,H="pragma_",K="data_version",Q="schema_version",V="pragma_table_",W="CREATE "+J,Z=/\$tableName/g,aa=a=>M(P(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),ta=()=>"?",na=(a,t,n=[1])=>M(P(a,()=>t(n)),e),ea=(a,t=s)=>k+`(${ia(t,aa(a))})`,ia=(a,t)=>r(a,Z,t),sa=Object,ra=a=>sa.getPrototypeOf(a),ca=sa.entries,oa=a=>!w(a)&&v(ra(a),a=>a==sa.prototype||w(ra(a)),()=>!0),la=sa.keys,wa=sa.freeze,ua=(...a)=>sa.assign(sa.create(null),...a),ya=(a,t,n)=>(sa.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),da=(a=[])=>{const t=sa.create(null);return C(a,([a,n])=>ya(t,a,n)),t},va=(a,t)=>(delete a[t],a),fa=(a,t)=>C(la(a),n=>t(a[n],n)),Ea=(a,t)=>P(ca(a),([a,n])=>t(n,a)),ma=(a,t)=>{const n=da();return fa(a,(a,e)=>ya(n,e,t(a,e))),n},Na=a=>N(la(a)),$a=a=>oa(a)&&0==Na(a),_a=Map,Aa=a=>new _a(a),ha=(a,t)=>a?.get(t),Oa=(a,t)=>I(a,(a,n)=>t(n,a)),pa=(a,t)=>{const n=[];return Oa(a,(a,e)=>q(n,t(e,a))),n},Ta=(a,t,n)=>u(n)?(S(a,t),a):a?.set(t,n),ga=(a,t,n,e)=>{let i=ha(a,t);return O(a,t)?e?.(i):Ta(a,t,i=n()),i},Ia=(a,t,n,e,i=0)=>f((n?ga:ha)(a,t[i],i>N(t)-2?n:Aa),s=>{if(i>N(t)-2)return e?.(s)&&Ta(a,t[i]),s;const r=Ia(s,t,n,e,i+1);return p(s)&&Ta(a,t[i]),r}),Sa=a=>new Set(m(a)||u(a)?a:[a]),Da=(a,t)=>a?.add(t),Ra="ColumnName",ba="store",La="json",Ca=ba+"TableName",Ma=ba+"Id"+Ra,Pa=ba+Ra,Fa="autoLoadIntervalSeconds",xa="rowId"+Ra,qa="tableId",Ba="tableName",Ua="deleteEmptyColumns",ja="deleteEmptyTable",ka="condition",Ja={mode:La,[Fa]:1},Xa={load:0,save:0,[Ba]:t+"_values"},Ya=a=>m(a)?a:void 0,za=a=>d(a)||m(a),Ga=(a,t,n,e,i)=>{const s=Aa();return fa(a,(a,r)=>{const c=(w=ua(t,E(a)?{[n]:a}:a),o=sa.values(w),l=Na(t),o.slice(0,l));var o,l,w;y(c[0])||e(r,c[0])||(i(r,c[0]),Ta(s,r,c))}),s},Ha=JSON.stringify,Ka=JSON.parse,Qa=a=>""===a?void 0:m(a)?P(a,Qa):oa(a)?ma(a,Qa):a,Va=/^\d+$/,Wa=Aa(),Za=Aa(),at=Aa(),tt=(a,t,e,i,s,r,c,o={},l=0,w=[])=>{let d,v,E,_,h,O=0,T=0,g=0,M=0,B=0,U=0,j=0,k=0,J=0;const X={},Y=o.destroy;ga(Wa,w,()=>0),ga(Za,w,()=>[]),Ta(at,w,(ha(at,w)??0)+1);const z=Aa(),[G,H,K,Q,V]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!$a(a)||!$a(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!$a(a)||!$a(t),t.setContent]:D(0))(c,a,l),[W,Z,aa]=(a=>{let t;const[e,i]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{Va.test(t)&&N(a)<1e3&&q(a,t)}]})(),s=Aa(),r=(a,e,i,r)=>{let c,o=!1;if(C(((a,t=[n])=>{const e=[],i=(a,n)=>n==N(t)?q(e,a):y(t[n])?I(a,a=>i(a,n+1)):C([t[n],null],t=>i(ha(a,t),n+1));return i(a,0),e})(e,i),n=>I(n,n=>{const e=()=>ha(s,n)[0](t,...i??[],...r);a?(a=>{try{return a()}catch(a){(a=>{o||(c=a),o=!0})?.(a)}})(e):e()})),o)throw c};return[(i,r,c,o=[],l=()=>[])=>{t??=a();const w=e(1);return Ta(s,w,[i,r,c,o,l]),Da(Ia(r,c??[n],Sa),w),w},(a,t,...n)=>r(!1,a,t,n),a=>f(ha(s,a),([,t,e])=>(Ia(t,e??[n],void 0,t=>(S(t,a),p(t)?1:0)),Ta(s,a),i(a),e)),a=>f(ha(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const c=N(r);c==N(n)?a(t,...r,...i(r)):y(n[c])?C(e[c]?.(...r)??[],a=>s(...r,a)):s(...r,n[c])};s()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>ma),ta=a=>{a!=O&&(O=a,Z(z,void 0,O))},na=()=>{ha(at,w)||ha(Wa,w)||!$(ha(Za,w)??[])||(Ta(Wa,w),Ta(Za,w),Ta(at,w))},ea=t=>{(G&&m(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ia=async()=>{va()&&a.__?.[0]?.()&&await ua()},sa=a=>L(()=>v=a,()=>{v==a&&(v=void 0)}),ra=async a=>(2!=O&&(await L(async()=>{ta(1),T++,await Ea(()=>R(async()=>{const n=await t();m(n)?ea(n):u(n)&&a?V(a):u(n)||D(1,n)},t=>{r?.(t),a&&V(a)}))},()=>ta(0)),await ia()),ma),ca=async()=>{const a=j;j=0,a&&a==M&&!J&&(2==O?j=a:await ra())},oa=async a=>{const t=++M;let n=!0;if(await la(!0),t==M&&!J){const e=R(async()=>{const a=await i(async(a,e)=>{if(t==M&&!J)if(e||a){const t=n||2==O||!!U;B++,t&&U++,await L(async()=>{ta(1),T++,await(t?Ea(()=>ea(e??a)):(()=>{try{return ea(e??a)}finally{ta(0)}})())},()=>{t&&U--,--B||ta(0)}),B||await ia()}else 2==O?j=t:await ra()});t!=M||J?u(a)||await s(a):d=a},r);await sa(e),t!=M||J||await L(()=>ra(a),()=>{n=!1})}return ma},la=async(a=!1)=>{j=0,a||M++;const t=v,n=d;return d=void 0,await sa(L(async()=>{await t},async()=>{u(n)||await R(()=>s(n),r)})),ma},ua=async a=>(1!=O&&await L(()=>L(async()=>{ta(2),g++,await Ea(()=>R(()=>e(H,a),r))},()=>ta(0)),ca),ma),ya=async()=>{const t=++k;return await da(!0),t!=k||J||(await ua(),t!=k||J||(E=a.addDidFinishTransactionListener(()=>{if(t==k&&!J){const a=K();Q(a)&&R(()=>ua(a))}}))),ma},da=async(t=!1)=>{t||k++;const n=E;return E=void 0,u(n)||a.delListener(n),ma},va=()=>!u(E),fa=async(a=!1)=>{const[t,n]=a?[da,la]:[la,da];return await L(()=>t(),async()=>{await n()}),ma},Ea=async(...a)=>{let t,n=!1;const e=A(e=>$(a)?e():q(ha(Za,w),...P(a,(i,s)=>{const c=s==N(a)-1;return[async()=>{let a;h=A(t=>a=t),await L(async()=>{try{await R(i,r)}catch(a){n||(n=!0,t=a)}c&&e()},()=>{h=void 0,a()})},c?e:void 0,X]})));if(await(async()=>{if(!ha(Wa,w)){Ta(Wa,w,1);const a=ha(Za,w);let t=0;await L(async()=>{for(;t<N(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{x(a,t),Ta(Wa,w,0),na()})}})(),await e,n)throw t;return ma},ma={load:ra,startAutoLoad:oa,stopAutoLoad:la,isAutoLoading:()=>!u(d),save:ua,startAutoSave:ya,stopAutoSave:da,isAutoSaving:va,startAutoPersisting:async(a,t=!1)=>{const[n,e,i,s]=t?[ya,oa,da,la]:[oa,ya,la,da],r=n(a),c=t?k:M;await r;const o=e(a),l=t?M:k;try{await o}catch(a){throw l==(t?M:k)&&await b(s),c==(t?k:M)&&await b(i),a}return ma},stopAutoPersisting:fa,getStatus:()=>O,addStatusListener:a=>W(a,z),delListener:t=>(aa(t),a),schedule:Ea,getStore:()=>a,getStats:()=>({loads:T,saves:g}),...o,destroy:async()=>(u(_)&&(J=1,_=(async()=>{const a=ha(Za,w),t=F(a,([,a,t])=>t!=X||(a?.(),!1)),n=h;x(a),q(a,...t),await L(()=>L(()=>L(fa,()=>n),()=>Y?.()),()=>{const a=(ha(at,w)??1)-1;Ta(at,w,a||void 0),na()})})()),await _,ma)};return wa(ma)},nt=new l.TextEncoder,et=(a,n,i,r,c,o=it,l,w,y)=>{const d=Aa(),v=Aa();let f=a;return[async()=>{g(d),g(v),C(await i(f,n),({tn:a,cn:t,uq:n})=>{Da(ga(d,a,Sa),t),n&&Da(ga(v,a,Sa),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:Sa(e);return((a,t)=>O(ha(d,a),t))(a,t)?da(F(P(await f(G+aa(a)+ea(a,n)),a=>{const n=a[t],e=w?ma(va(a,t),w):va(a,t);return[n,u(i)?e:da(F(Ea(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||O(i,a))(a)))]}),a=>!u(a[0])&&!$a(a[1]))):{}},async(a,n,i,w,y,E=!1,m=s,N)=>{const _=u(N)?void 0:Sa(N),A=a=>u(_)||O(_,a),p=Sa();fa(i??{},a=>C(F(la(a??{}),A),a=>Da(p,a)));const g=T(p);if(u(_)&&!E&&y&&m==s&&$(g)&&O(d,a))return await f("DROP "+J+aa(a)),Ta(d,a),void Ta(v,a);const I=ha(d,a),D=Sa(F(T(I),a=>a==n||A(a)));if(!$(g))if(O(d,a)){if(await h(P([n,...g],async t=>{S(D,t)||(await f(X+aa(a)+"ADD"+aa(t)+r),Da(I,t))})),o==it&&!O(ha(v,a),n)){const e=t+"_pk_"+(a=>{let t=2166136261;return C(nt.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(Ha([a,n]));await f("CREATE UNIQUE INDEX IF NOT EXISTS"+aa(e)+"ON"+aa(a)+`(${aa(n)})`),Da(ga(v,a,Sa),n)}}else await f(W+aa(a)+`(${aa(n)}${r} PRIMARY KEY${M(P(g,a=>e+aa(a)+r))});`),Ta(d,a,Sa([n,...g])),Ta(v,a,Sa([n]));if(await h([...!E&&w?P(T(D),async t=>{t!=n&&(await f(X+aa(a)+"DROP"+aa(t)),S(I,t))}):[]]),E)u(i)?u(_)&&await f(z+aa(a)+ea(a,m)):await h(Ea(i,async(t,e)=>{if(u(t))await f(z+aa(a)+ea(a,m)+`AND(${aa(n)}=${c([1])})`,[e]);else if(!$(g)){const i=F(la(t),A);$(i)||await o(f,a,n,i,{[e]:P(i,a=>l?l(t[a]):t[a])},c,I)}}));else if($(g))u(_)&&O(d,a)&&await f(z+aa(a)+ea(a,m));else{const t=F(T(ha(d,a)),a=>a!=n&&A(a)),e=da(),s=[];fa(i??{},(a,n)=>{ya(e,n,P(t,t=>l?l(a?.[t]):a?.[t])),q(s,n)}),await o(f,a,n,t,e,c,I),await f(z+aa(a)+ea(a,m)+`AND${aa(n)}NOT IN(${na(s,c)})`,s)}},async t=>{if(y)return await y(async a=>{const n=f;return f=a,await L(t,()=>{f=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await R(()=>a("ROLLBACK")),t}}]},it=async(a,t,n,i,s,r)=>{const c=[1];await a("INSERT INTO"+aa(t)+"("+((...a)=>M(P(a,aa),e))(n,...i)+")VALUES"+M(Ea(s,a=>"("+r(c)+","+na(a,r,c)+")"),e)+"ON CONFLICT("+aa(n)+")DO UPDATE SET"+M(P(i,a=>aa(a)+"=excluded."+aa(a)),e),Ea(s,(a,t)=>[t,...P(a,a=>a??null)]).flat())},st=(a,t,n,e,i,s,r,[c,o,l],w,y,d,v,f,E,m,N,$,_)=>{const[A,h,O,p]=et(t,w,y,f,E,m,void 0,void 0,_);return tt(a,()=>p(async()=>{return await A(),a=(await h(c,o))[B]?.[l]??"null",Qa(Ka(a));var a}),a=>p(async()=>{var t;await A(),await O(c,o,{[B]:{[l]:(t=a()??null,Ha(t,(a,t)=>u(t)?"":t))}},!0,!0)}),n,e,i,r,{[v]:()=>d,destroy:s},0,d)},rt=(a,t,n,e,i,s,r,[c,o,[l,w,y,d,v]],f,E,m,N,$,_,A,O,p,T)=>{const[g,I,S,D]=et(t,f,E,$,_,A,O,p,T),R=(a,t)=>h(pa(o,async([n,e,i,s,r],c)=>{var o,l;t&&(o=a,l=c,!sa.hasOwn(o,l))||await S(n,e,a[c],i,s,t,r)})),b=(a,t,n)=>da(1==n?F(Ea(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):F(P(t,t=>[t,a[t]]),([,a])=>!u(a))),L=async(a,t)=>w?await S(y,U,{[B]:u(v)?a:b(a,v,t)},!0,!0,t,void 0,v):null;return tt(a,()=>D(async()=>{await g();const a=await(async()=>da(F(await h(pa(c,async([a,t,n],e)=>[a,await I(e,t,n)])),a=>!$a(a[1]))))(),t=await(async()=>l?(await I(y,U,void 0,d))[B]:{})();return $a(a)&&u(t)?void 0:[a,t]}),(a,t)=>D(async()=>{if(await g(),u(t)){const[t,n]=a();await R(t),await L(n)}else await R(t[0],!0),await L(t[1],!0)}),n,e,i,r,{[N]:()=>m,destroy:s},0,m)},ct=(a,e,i,r,o,l,y,v,f,m,N="getDb",$,_)=>{let A,h,p;const g=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,l),[I,S,R,C]=(a=>{const n=(a=>ua(Ja,E(a)?{[Ca]:a}:a??{}))(a),e=n[Fa];if(n.mode==La){const a=n[Ca]??t;return[1,e,[a,n[Ma]??U,n[Pa]??ba],Sa(a)]}const{tables:{load:i={},save:r={}}={},values:c={}}=n,o=ua(Xa,c),{load:l,save:w}=o,u=[za(l),za(w),o[Ba],Ya(l),Ya(w)],y=u[2],d=Sa(y),v=Sa(y),f=Ga(i,{[qa]:null,[xa]:U,[ka]:s},qa,a=>O(v,a),a=>Da(d,a)),m=Ga(r,{[Ba]:null,[xa]:U,[Ua]:0,[ja]:0,[ka]:null},Ba,(a,t)=>O(v,t),(a,t)=>Da(d,t));return Oa(m,(a,t)=>t[4]??=ha(f,t[0])?.[2]??s),[0,e,[f,m,u],d]})(e);return!I&&a.isMergeable()&&D(0),(I?st:rt)(a,g,a=>{let t,n,e=1,i=0,s=0;const l=async(t=!0)=>{const[{d:n,s:i,c:r}]=await g(j+` ${K} d,${Q} s,TOTAL_CHANGES() c FROM ${H}${K} JOIN ${H}${Q}`);if(e&&(n!=A||i!=h||r!=p)){const c=t&&!s&&!w(A);A=n,h=i,p=r,c&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const c=L(()=>b(async()=>{for(i?r&&await l():(await l(!1),i=1);e&&s;)s=0,await l(!1),e&&(await a(),await l())},y),()=>{n==c&&(n=void 0),e&&(s?v():e&&u(t)&&(t=setInterval(()=>v(!0),1e3*S)))});return n=c,c},f=r(a=>{e&&O(C,a)&&(s=1,d(),c.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,s=0,d(),await L(async()=>await n,async()=>{A=h=p=null,await o(f)})})},a=>a(),y,v,f,R,T(C),async(a,t)=>await a(j+` t.name tn,c.name cn,c.pk OR EXISTS(${j} 1 FROM ${H}index_list(t.name)i,${H}index_info(i.name)ii ${k} i."unique"=1 AND ii.name=c.name AND(${j} count(*) FROM ${H}index_info(i.name))=1)uq FROM ${V}list()t,${V}info(t.name)c ${k} t.schema='main'AND t.type IN('table','view')AND t.name IN(${na(t,ta)})ORDER BY t.name,c.name`,t),m,N,n,ta,$,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,_)},ot=(a,t,n,e,i)=>ct(a,n,async(a,n=[])=>t.query(a).all(...n),()=>_,a=>a(),e,i,_,3,t);export{ot as createSqliteBunPersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",n="",e=",",i=a(n),s="true",r=(a,t,n)=>a.replace(t,n),o=Promise,c=a=>(t,n,e)=>a(t)?e?.():n(t),l=globalThis,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=c(w),f=c(u),E=t=>a(t)==i,_=a=>Array.isArray(a),$=a=>a.length,m=a=>0==$(a),N=()=>{},p=a=>new o(a),A=async a=>o.all(a),h=(a,t)=>a.forEach(t),O=(a,t="")=>a.join(t),T=(a,t)=>a.map(t),g=(a,t)=>a.filter(t),I=(a,t=$(a))=>a.splice(0,t),S=(a,...t)=>a.push(...t),b=(a,t)=>a?.has(t)??!1,D=a=>u(a)||0==(a=>a?.size??0)(a),R=a=>[...a?.values()??[]],L=a=>a.clear(),C=(a,t)=>a?.forEach(t),M=(a,t)=>a?.delete(t),P=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},F=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},x=(a,t)=>F(a,a=>{F(()=>t?.(a))}),k=async(a,t)=>{try{return await a()}finally{await t()}},q="_",j="_id",B="SELECT",U="WHERE",J="TABLE",X="ALTER "+J,Y="FROM",z="DELETE "+Y,G=B+"*"+Y,H="pragma_",K="data_version",V="schema_version",Q="pragma_table_",W="CREATE "+J,Z=/\$tableName/g,aa=a=>O(T(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),ta=(a,t=[1])=>O(T(a,()=>"$"+t[0]++),e),na=(a,t=s)=>U+`(${ea(t,aa(a))})`,ea=(a,t)=>r(a,Z,t),ia=Object,sa=a=>ia.getPrototypeOf(a),ra=ia.entries,oa=a=>!w(a)&&v(sa(a),a=>a==ia.prototype||w(sa(a)),()=>!0),ca=ia.keys,la=ia.freeze,wa=(...a)=>ia.assign(ia.create(null),...a),ua=(a,t,n)=>(ia.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),ya=(a=[])=>{const t=ia.create(null);return h(a,([a,n])=>ua(t,a,n)),t},da=(a,t)=>(delete a[t],a),va=(a,t)=>h(ca(a),n=>t(a[n],n)),fa=(a,t)=>T(ra(a),([a,n])=>t(n,a)),Ea=(a,t)=>{const n=ya();return va(a,(a,e)=>ua(n,e,t(a,e))),n},_a=a=>$(ca(a)),$a=a=>oa(a)&&0==_a(a),ma=Map,Na=a=>new ma(a),pa=(a,t)=>a?.get(t),Aa=(a,t)=>C(a,(a,n)=>t(n,a)),ha=(a,t)=>{const n=[];return Aa(a,(a,e)=>S(n,t(e,a))),n},Oa=(a,t,n)=>u(n)?(M(a,t),a):a?.set(t,n),Ta=(a,t,n,e)=>{let i=pa(a,t);return b(a,t)?e?.(i):Oa(a,t,i=n()),i},ga=(a,t,n,e,i=0)=>f((n?Ta:pa)(a,t[i],i>$(t)-2?n:Na),s=>{if(i>$(t)-2)return e?.(s)&&Oa(a,t[i]),s;const r=ga(s,t,n,e,i+1);return D(s)&&Oa(a,t[i]),r}),Ia=a=>new Set(_(a)||u(a)?a:[a]),Sa=(a,t)=>a?.add(t),ba="ColumnName",Da="store",Ra="json",La=Da+"TableName",Ca=Da+"Id"+ba,Ma=Da+ba,Pa="autoLoadIntervalSeconds",Fa="rowId"+ba,xa="tableId",ka="tableName",qa="deleteEmptyColumns",ja="deleteEmptyTable",Ba="condition",Ua={mode:Ra,[Pa]:1},Ja={load:0,save:0,[ka]:t+"_values"},Xa=a=>_(a)?a:void 0,Ya=a=>d(a)||_(a),za=(a,t,n,e,i)=>{const s=Na();return va(a,(a,r)=>{const o=(w=wa(t,E(a)?{[n]:a}:a),c=ia.values(w),l=_a(t),c.slice(0,l));var c,l,w;y(o[0])||e(r,o[0])||(i(r,o[0]),Oa(s,r,o))}),s},Ga=JSON.stringify,Ha=JSON.parse,Ka=a=>""===a?void 0:_(a)?T(a,Ka):oa(a)?Ea(a,Ka):a,Va=/^\d+$/,Qa=Na(),Wa=Na(),Za=Na(),at=(a,t,e,i,s,r,o,c={},l=0,w=[])=>{let d,v,E,N,A,O=0,b=0,R=0,L=0,q=0,j=0,B=0,U=0,J=0;const X={},Y=c.destroy;Ta(Qa,w,()=>0),Ta(Wa,w,()=>[]),Oa(Za,w,(pa(Za,w)??0)+1);const z=Na(),[G,H,K,V,Q]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!$a(a)||!$a(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!$a(a)||!$a(t),t.setContent]:P(0))(o,a,l),[W,Z,aa]=(a=>{let t;const[e,i]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{Va.test(t)&&$(a)<1e3&&S(a,t)}]})(),s=Na(),r=(a,e,i,r)=>{let o,c=!1;if(h(((a,t=[n])=>{const e=[],i=(a,n)=>n==$(t)?S(e,a):y(t[n])?C(a,a=>i(a,n+1)):h([t[n],null],t=>i(pa(a,t),n+1));return i(a,0),e})(e,i),n=>C(n,n=>{const e=()=>pa(s,n)[0](t,...i??[],...r);a?(a=>{try{return a()}catch(a){(a=>{c||(o=a),c=!0})?.(a)}})(e):e()})),c)throw o};return[(i,r,o,c=[],l=()=>[])=>{t??=a();const w=e(1);return Oa(s,w,[i,r,o,c,l]),Sa(ga(r,o??[n],Ia),w),w},(a,t,...n)=>r(!1,a,t,n),a=>f(pa(s,a),([,t,e])=>(ga(t,e??[n],void 0,t=>(M(t,a),D(t)?1:0)),Oa(s,a),i(a),e)),a=>f(pa(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const o=$(r);o==$(n)?a(t,...r,...i(r)):y(n[o])?h(e[o]?.(...r)??[],a=>s(...r,a)):s(...r,n[o])};s()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>_a),ta=a=>{a!=O&&(O=a,Z(z,void 0,O))},na=()=>{pa(Za,w)||pa(Qa,w)||!m(pa(Wa,w)??[])||(Oa(Qa,w),Oa(Wa,w),Oa(Za,w))},ea=t=>{(G&&_(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ia=async()=>{va()&&a.__?.[0]?.()&&await ua()},sa=a=>k(()=>v=a,()=>{v==a&&(v=void 0)}),ra=async a=>(2!=O&&(await k(async()=>{ta(1),b++,await Ea(()=>F(async()=>{const n=await t();_(n)?ea(n):u(n)&&a?Q(a):u(n)||P(1,n)},t=>{r?.(t),a&&Q(a)}))},()=>ta(0)),await ia()),_a),oa=async()=>{const a=B;B=0,a&&a==L&&!J&&(2==O?B=a:await ra())},ca=async a=>{const t=++L;let n=!0;if(await wa(!0),t==L&&!J){const e=F(async()=>{const a=await i(async(a,e)=>{if(t==L&&!J)if(e||a){const t=n||2==O||!!j;q++,t&&j++,await k(async()=>{ta(1),b++,await(t?Ea(()=>ea(e??a)):(()=>{try{return ea(e??a)}finally{ta(0)}})())},()=>{t&&j--,--q||ta(0)}),q||await ia()}else 2==O?B=t:await ra()});t!=L||J?u(a)||await s(a):d=a},r);await sa(e),t!=L||J||await k(()=>ra(a),()=>{n=!1})}return _a},wa=async(a=!1)=>{B=0,a||L++;const t=v,n=d;return d=void 0,await sa(k(async()=>{await t},async()=>{u(n)||await F(()=>s(n),r)})),_a},ua=async a=>(1!=O&&await k(()=>k(async()=>{ta(2),R++,await Ea(()=>F(()=>e(H,a),r))},()=>ta(0)),oa),_a),ya=async()=>{const t=++U;return await da(!0),t!=U||J||(await ua(),t!=U||J||(E=a.addDidFinishTransactionListener(()=>{if(t==U&&!J){const a=K();V(a)&&F(()=>ua(a))}}))),_a},da=async(t=!1)=>{t||U++;const n=E;return E=void 0,u(n)||a.delListener(n),_a},va=()=>!u(E),fa=async(a=!1)=>{const[t,n]=a?[da,wa]:[wa,da];return await k(()=>t(),async()=>{await n()}),_a},Ea=async(...a)=>{let t,n=!1;const e=p(e=>m(a)?e():S(pa(Wa,w),...T(a,(i,s)=>{const o=s==$(a)-1;return[async()=>{let a;A=p(t=>a=t),await k(async()=>{try{await F(i,r)}catch(a){n||(n=!0,t=a)}o&&e()},()=>{A=void 0,a()})},o?e:void 0,X]})));if(await(async()=>{if(!pa(Qa,w)){Oa(Qa,w,1);const a=pa(Wa,w);let t=0;await k(async()=>{for(;t<$(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{I(a,t),Oa(Qa,w,0),na()})}})(),await e,n)throw t;return _a},_a={load:ra,startAutoLoad:ca,stopAutoLoad:wa,isAutoLoading:()=>!u(d),save:ua,startAutoSave:ya,stopAutoSave:da,isAutoSaving:va,startAutoPersisting:async(a,t=!1)=>{const[n,e,i,s]=t?[ya,ca,da,wa]:[ca,ya,wa,da],r=n(a),o=t?U:L;await r;const c=e(a),l=t?L:U;try{await c}catch(a){throw l==(t?L:U)&&await x(s),o==(t?U:L)&&await x(i),a}return _a},stopAutoPersisting:fa,getStatus:()=>O,addStatusListener:a=>W(a,z),delListener:t=>(aa(t),a),schedule:Ea,getStore:()=>a,getStats:()=>({loads:b,saves:R}),...c,destroy:async()=>(u(N)&&(J=1,N=(async()=>{const a=pa(Wa,w),t=g(a,([,a,t])=>t!=X||(a?.(),!1)),n=A;I(a),S(a,...t),await k(()=>k(()=>k(fa,()=>n),()=>Y?.()),()=>{const a=(pa(Za,w)??1)-1;Oa(Za,w,a||void 0),na()})})()),await N,_a)};return la(_a)},tt=new l.TextEncoder,nt=(a,n,i,r,o=et,c,l,w)=>{const y=Na(),d=Na();let v=a;return[async()=>{L(y),L(d),h(await i(v,n),({tn:a,cn:t,uq:n})=>{Sa(Ta(y,a,Ia),t),n&&Sa(Ta(d,a,Ia),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:Ia(e);return((a,t)=>b(pa(y,a),t))(a,t)?ya(g(T(await v(G+aa(a)+na(a,n)),a=>{const n=a[t],e=l?Ea(da(a,t),l):da(a,t);return[n,u(i)?e:ya(g(fa(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||b(i,a))(a)))]}),a=>!u(a[0])&&!$a(a[1]))):{}},async(a,n,i,l,w,f=!1,E=s,_)=>{const $=u(_)?void 0:Ia(_),N=a=>u($)||b($,a),p=Ia();va(i??{},a=>h(g(ca(a??{}),N),a=>Sa(p,a)));const I=R(p);if(u($)&&!f&&w&&E==s&&m(I)&&b(y,a))return await v("DROP "+J+aa(a)),Oa(y,a),void Oa(d,a);const D=pa(y,a),L=Ia(g(R(D),a=>a==n||N(a)));if(!m(I))if(b(y,a)){if(await A(T([n,...I],async t=>{M(L,t)||(await v(X+aa(a)+"ADD"+aa(t)+r),Sa(D,t))})),o==et&&!b(pa(d,a),n)){const e=t+"_pk_"+(a=>{let t=2166136261;return h(tt.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(Ga([a,n]));await v("CREATE UNIQUE INDEX IF NOT EXISTS"+aa(e)+"ON"+aa(a)+`(${aa(n)})`),Sa(Ta(d,a,Ia),n)}}else await v(W+aa(a)+`(${aa(n)}${r} PRIMARY KEY${O(T(I,a=>e+aa(a)+r))});`),Oa(y,a,Ia([n,...I])),Oa(d,a,Ia([n]));if(await A([...!f&&l?T(R(L),async t=>{t!=n&&(await v(X+aa(a)+"DROP"+aa(t)),M(D,t))}):[]]),f)u(i)?u($)&&await v(z+aa(a)+na(a,E)):await A(fa(i,async(t,e)=>{if(u(t))await v(z+aa(a)+na(a,E)+`AND(${aa(n)}=$1)`,[e]);else if(!m(I)){const i=g(ca(t),N);m(i)||await o(v,a,n,i,{[e]:T(i,a=>c?c(t[a]):t[a])},D)}}));else if(m(I))u($)&&b(y,a)&&await v(z+aa(a)+na(a,E));else{const t=g(R(pa(y,a)),a=>a!=n&&N(a)),e=ya(),s=[];va(i??{},(a,n)=>{ua(e,n,T(t,t=>c?c(a?.[t]):a?.[t])),S(s,n)}),await o(v,a,n,t,e,D),await v(z+aa(a)+na(a,E)+`AND${aa(n)}NOT IN(${ta(s)})`,s)}},async t=>{if(w)return await w(async a=>{const n=v;return v=a,await k(t,()=>{v=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await F(()=>a("ROLLBACK")),t}}]},et=async(a,t,n,i,s)=>{const r=[1];await a("INSERT INTO"+aa(t)+"("+((...a)=>O(T(a,aa),e))(n,...i)+")VALUES"+O(fa(s,a=>"($"+r[0]+++","+ta(a,r)+")"),e)+"ON CONFLICT("+aa(n)+")DO UPDATE SET"+O(T(i,a=>aa(a)+"=excluded."+aa(a)),e),fa(s,(a,t)=>[t,...T(a,a=>a??null)]).flat())},it=(a,t,n,e,i,s,r,[o,c,l],w,y,d,v,f,E,_,$,m)=>{const[N,p,A,h]=nt(t,w,y,f,E,void 0,void 0,m);return at(a,()=>h(async()=>{return await N(),a=(await p(o,c))[q]?.[l]??"null",Ka(Ha(a));var a}),a=>h(async()=>{var t;await N(),await A(o,c,{[q]:{[l]:(t=a()??null,Ga(t,(a,t)=>u(t)?"":t))}},!0,!0)}),n,e,i,r,{[v]:()=>d,destroy:s},0,d)},st=(a,t,n,e,i,s,r,[o,c,[l,w,y,d,v]],f,E,_,$,m,N,p,h,O)=>{const[I,S,b,D]=nt(t,f,E,m,N,p,h,O),R=(a,t)=>A(ha(c,async([n,e,i,s,r],o)=>{var c,l;t&&(c=a,l=o,!ia.hasOwn(c,l))||await b(n,e,a[o],i,s,t,r)})),L=(a,t,n)=>ya(1==n?g(fa(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):g(T(t,t=>[t,a[t]]),([,a])=>!u(a))),C=async(a,t)=>w?await b(y,j,{[q]:u(v)?a:L(a,v,t)},!0,!0,t,void 0,v):null;return at(a,()=>D(async()=>{await I();const a=await(async()=>ya(g(await A(ha(o,async([a,t,n],e)=>[a,await S(e,t,n)])),a=>!$a(a[1]))))(),t=await(async()=>l?(await S(y,j,void 0,d))[q]:{})();return $a(a)&&u(t)?void 0:[a,t]}),(a,t)=>D(async()=>{if(await I(),u(t)){const[t,n]=a();await R(t),await C(n)}else await R(t[0],!0),await C(t[1],!0)}),n,e,i,r,{[$]:()=>_,destroy:s},0,_)},rt=(a,e,i,r,c,l,y,v,f,_,$="getDb",m,N)=>{let p,A,h;const O=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,l),[T,g,I,S]=(a=>{const n=(a=>wa(Ua,E(a)?{[La]:a}:a??{}))(a),e=n[Pa];if(n.mode==Ra){const a=n[La]??t;return[1,e,[a,n[Ca]??j,n[Ma]??Da],Ia(a)]}const{tables:{load:i={},save:r={}}={},values:o={}}=n,c=wa(Ja,o),{load:l,save:w}=c,u=[Ya(l),Ya(w),c[ka],Xa(l),Xa(w)],y=u[2],d=Ia(y),v=Ia(y),f=za(i,{[xa]:null,[Fa]:j,[Ba]:s},xa,a=>b(v,a),a=>Sa(d,a)),_=za(r,{[ka]:null,[Fa]:j,[qa]:0,[ja]:0,[Ba]:null},ka,(a,t)=>b(v,t),(a,t)=>Sa(d,t));return Aa(_,(a,t)=>t[4]??=pa(f,t[0])?.[2]??s),[0,e,[f,_,u],d]})(e);return!T&&a.isMergeable()&&P(0),(T?it:st)(a,O,a=>{let t,n,e=1,i=0,s=0;const l=async(t=!0)=>{const[{d:n,s:i,c:r}]=await O(B+` ${K} d,${V} s,TOTAL_CHANGES() c FROM ${H}${K} JOIN ${H}${V}`);if(e&&(n!=p||i!=A||r!=h)){const o=t&&!s&&!w(p);p=n,A=i,h=r,o&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const o=k(()=>x(async()=>{for(i?r&&await l():(await l(!1),i=1);e&&s;)s=0,await l(!1),e&&(await a(),await l())},y),()=>{n==o&&(n=void 0),e&&(s?v():e&&u(t)&&(t=setInterval(()=>v(!0),1e3*g)))});return n=o,o},f=r(a=>{e&&b(S,a)&&(s=1,d(),o.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,s=0,d(),await k(async()=>await n,async()=>{p=A=h=null,await c(f)})})},a=>a(),y,v,f,I,R(S),async(a,t)=>await a(B+` t.name tn,c.name cn,c.pk OR EXISTS(${B} 1 FROM ${H}index_list(t.name)i,${H}index_info(i.name)ii ${U} i."unique"=1 AND ii.name=c.name AND(${B} count(*) FROM ${H}index_info(i.name))=1)uq FROM ${Q}list()t,${Q}info(t.name)c ${U} t.schema='main'AND t.type IN('table','view')AND t.name IN(${ta(t)})ORDER BY t.name,c.name`,t),_,$,n,m,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,N)},ot=(a,t,n,e,i,s)=>rt(a,e,async(a,t=[])=>T(n.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}),a=>({...a})),a=>t.capi.sqlite3_update_hook(n,(t,n,e,i)=>a(i),0),()=>t.capi.sqlite3_update_hook(n,N,0),i,s,N,3,n);export{ot as createSqliteWasmPersister};
1
+ const a=a=>typeof a,t="tinybase",n="",e=",",i=a(n),s="true",r=(a,t,n)=>a.replace(t,n),o=Promise,c=a=>(t,n,e)=>a(t)?e?.():n(t),l=globalThis,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=c(w),f=c(u),E=t=>a(t)==i,_=a=>Array.isArray(a),m=a=>a.length,N=a=>0==m(a),$=()=>{},p=a=>new o(a),A=async a=>o.all(a),h=(a,t)=>a.forEach(t),O=(a,t="")=>a.join(t),T=(a,t)=>a.map(t),g=(a,t)=>a.filter(t),I=(a,t=m(a))=>a.splice(0,t),S=(a,...t)=>a.push(...t),b=(a,t)=>a?.has(t)??!1,D=a=>u(a)||0==(a=>a?.size??0)(a),R=a=>[...a?.values()??[]],L=a=>a.clear(),C=(a,t)=>a?.forEach(t),M=(a,t)=>a?.delete(t),P=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},F=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},x=(a,t)=>F(a,a=>{F(()=>t?.(a))}),k=async(a,t)=>{try{return await a()}finally{await t()}},q="_",j="_id",B="SELECT",U="WHERE",J="TABLE",X="ALTER "+J,Y="FROM",z="DELETE "+Y,G=B+"*"+Y,H="pragma_",K="data_version",V="schema_version",Q="pragma_table_",W="CREATE "+J,Z=/\$tableName/g,aa=a=>O(T(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),ta=()=>"?",na=(a,t,n=[1])=>O(T(a,()=>t(n)),e),ea=(a,t=s)=>U+`(${ia(t,aa(a))})`,ia=(a,t)=>r(a,Z,t),sa=Object,ra=a=>sa.getPrototypeOf(a),oa=sa.entries,ca=a=>!w(a)&&v(ra(a),a=>a==sa.prototype||w(ra(a)),()=>!0),la=sa.keys,wa=sa.freeze,ua=(...a)=>sa.assign(sa.create(null),...a),ya=(a,t,n)=>(sa.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),da=(a=[])=>{const t=sa.create(null);return h(a,([a,n])=>ya(t,a,n)),t},va=(a,t)=>(delete a[t],a),fa=(a,t)=>h(la(a),n=>t(a[n],n)),Ea=(a,t)=>T(oa(a),([a,n])=>t(n,a)),_a=(a,t)=>{const n=da();return fa(a,(a,e)=>ya(n,e,t(a,e))),n},ma=a=>m(la(a)),Na=a=>ca(a)&&0==ma(a),$a=Map,pa=a=>new $a(a),Aa=(a,t)=>a?.get(t),ha=(a,t)=>C(a,(a,n)=>t(n,a)),Oa=(a,t)=>{const n=[];return ha(a,(a,e)=>S(n,t(e,a))),n},Ta=(a,t,n)=>u(n)?(M(a,t),a):a?.set(t,n),ga=(a,t,n,e)=>{let i=Aa(a,t);return b(a,t)?e?.(i):Ta(a,t,i=n()),i},Ia=(a,t,n,e,i=0)=>f((n?ga:Aa)(a,t[i],i>m(t)-2?n:pa),s=>{if(i>m(t)-2)return e?.(s)&&Ta(a,t[i]),s;const r=Ia(s,t,n,e,i+1);return D(s)&&Ta(a,t[i]),r}),Sa=a=>new Set(_(a)||u(a)?a:[a]),ba=(a,t)=>a?.add(t),Da="ColumnName",Ra="store",La="json",Ca=Ra+"TableName",Ma=Ra+"Id"+Da,Pa=Ra+Da,Fa="autoLoadIntervalSeconds",xa="rowId"+Da,ka="tableId",qa="tableName",ja="deleteEmptyColumns",Ba="deleteEmptyTable",Ua="condition",Ja={mode:La,[Fa]:1},Xa={load:0,save:0,[qa]:t+"_values"},Ya=a=>_(a)?a:void 0,za=a=>d(a)||_(a),Ga=(a,t,n,e,i)=>{const s=pa();return fa(a,(a,r)=>{const o=(w=ua(t,E(a)?{[n]:a}:a),c=sa.values(w),l=ma(t),c.slice(0,l));var c,l,w;y(o[0])||e(r,o[0])||(i(r,o[0]),Ta(s,r,o))}),s},Ha=JSON.stringify,Ka=JSON.parse,Va=a=>""===a?void 0:_(a)?T(a,Va):ca(a)?_a(a,Va):a,Qa=/^\d+$/,Wa=pa(),Za=pa(),at=pa(),tt=(a,t,e,i,s,r,o,c={},l=0,w=[])=>{let d,v,E,$,A,O=0,b=0,R=0,L=0,q=0,j=0,B=0,U=0,J=0;const X={},Y=c.destroy;ga(Wa,w,()=>0),ga(Za,w,()=>[]),Ta(at,w,(Aa(at,w)??0)+1);const z=pa(),[G,H,K,V,Q]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!Na(a)||!Na(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!Na(a)||!Na(t),t.setContent]:P(0))(o,a,l),[W,Z,aa]=(a=>{let t;const[e,i]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{Qa.test(t)&&m(a)<1e3&&S(a,t)}]})(),s=pa(),r=(a,e,i,r)=>{let o,c=!1;if(h(((a,t=[n])=>{const e=[],i=(a,n)=>n==m(t)?S(e,a):y(t[n])?C(a,a=>i(a,n+1)):h([t[n],null],t=>i(Aa(a,t),n+1));return i(a,0),e})(e,i),n=>C(n,n=>{const e=()=>Aa(s,n)[0](t,...i??[],...r);a?(a=>{try{return a()}catch(a){(a=>{c||(o=a),c=!0})?.(a)}})(e):e()})),c)throw o};return[(i,r,o,c=[],l=()=>[])=>{t??=a();const w=e(1);return Ta(s,w,[i,r,o,c,l]),ba(Ia(r,o??[n],Sa),w),w},(a,t,...n)=>r(!1,a,t,n),a=>f(Aa(s,a),([,t,e])=>(Ia(t,e??[n],void 0,t=>(M(t,a),D(t)?1:0)),Ta(s,a),i(a),e)),a=>f(Aa(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const o=m(r);o==m(n)?a(t,...r,...i(r)):y(n[o])?h(e[o]?.(...r)??[],a=>s(...r,a)):s(...r,n[o])};s()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>_a),ta=a=>{a!=O&&(O=a,Z(z,void 0,O))},na=()=>{Aa(at,w)||Aa(Wa,w)||!N(Aa(Za,w)??[])||(Ta(Wa,w),Ta(Za,w),Ta(at,w))},ea=t=>{(G&&_(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ia=async()=>{va()&&a.__?.[0]?.()&&await ua()},sa=a=>k(()=>v=a,()=>{v==a&&(v=void 0)}),ra=async a=>(2!=O&&(await k(async()=>{ta(1),b++,await Ea(()=>F(async()=>{const n=await t();_(n)?ea(n):u(n)&&a?Q(a):u(n)||P(1,n)},t=>{r?.(t),a&&Q(a)}))},()=>ta(0)),await ia()),_a),oa=async()=>{const a=B;B=0,a&&a==L&&!J&&(2==O?B=a:await ra())},ca=async a=>{const t=++L;let n=!0;if(await la(!0),t==L&&!J){const e=F(async()=>{const a=await i(async(a,e)=>{if(t==L&&!J)if(e||a){const t=n||2==O||!!j;q++,t&&j++,await k(async()=>{ta(1),b++,await(t?Ea(()=>ea(e??a)):(()=>{try{return ea(e??a)}finally{ta(0)}})())},()=>{t&&j--,--q||ta(0)}),q||await ia()}else 2==O?B=t:await ra()});t!=L||J?u(a)||await s(a):d=a},r);await sa(e),t!=L||J||await k(()=>ra(a),()=>{n=!1})}return _a},la=async(a=!1)=>{B=0,a||L++;const t=v,n=d;return d=void 0,await sa(k(async()=>{await t},async()=>{u(n)||await F(()=>s(n),r)})),_a},ua=async a=>(1!=O&&await k(()=>k(async()=>{ta(2),R++,await Ea(()=>F(()=>e(H,a),r))},()=>ta(0)),oa),_a),ya=async()=>{const t=++U;return await da(!0),t!=U||J||(await ua(),t!=U||J||(E=a.addDidFinishTransactionListener(()=>{if(t==U&&!J){const a=K();V(a)&&F(()=>ua(a))}}))),_a},da=async(t=!1)=>{t||U++;const n=E;return E=void 0,u(n)||a.delListener(n),_a},va=()=>!u(E),fa=async(a=!1)=>{const[t,n]=a?[da,la]:[la,da];return await k(()=>t(),async()=>{await n()}),_a},Ea=async(...a)=>{let t,n=!1;const e=p(e=>N(a)?e():S(Aa(Za,w),...T(a,(i,s)=>{const o=s==m(a)-1;return[async()=>{let a;A=p(t=>a=t),await k(async()=>{try{await F(i,r)}catch(a){n||(n=!0,t=a)}o&&e()},()=>{A=void 0,a()})},o?e:void 0,X]})));if(await(async()=>{if(!Aa(Wa,w)){Ta(Wa,w,1);const a=Aa(Za,w);let t=0;await k(async()=>{for(;t<m(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{I(a,t),Ta(Wa,w,0),na()})}})(),await e,n)throw t;return _a},_a={load:ra,startAutoLoad:ca,stopAutoLoad:la,isAutoLoading:()=>!u(d),save:ua,startAutoSave:ya,stopAutoSave:da,isAutoSaving:va,startAutoPersisting:async(a,t=!1)=>{const[n,e,i,s]=t?[ya,ca,da,la]:[ca,ya,la,da],r=n(a),o=t?U:L;await r;const c=e(a),l=t?L:U;try{await c}catch(a){throw l==(t?L:U)&&await x(s),o==(t?U:L)&&await x(i),a}return _a},stopAutoPersisting:fa,getStatus:()=>O,addStatusListener:a=>W(a,z),delListener:t=>(aa(t),a),schedule:Ea,getStore:()=>a,getStats:()=>({loads:b,saves:R}),...c,destroy:async()=>(u($)&&(J=1,$=(async()=>{const a=Aa(Za,w),t=g(a,([,a,t])=>t!=X||(a?.(),!1)),n=A;I(a),S(a,...t),await k(()=>k(()=>k(fa,()=>n),()=>Y?.()),()=>{const a=(Aa(at,w)??1)-1;Ta(at,w,a||void 0),na()})})()),await $,_a)};return wa(_a)},nt=new l.TextEncoder,et=(a,n,i,r,o,c=it,l,w,y)=>{const d=pa(),v=pa();let f=a;return[async()=>{L(d),L(v),h(await i(f,n),({tn:a,cn:t,uq:n})=>{ba(ga(d,a,Sa),t),n&&ba(ga(v,a,Sa),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:Sa(e);return((a,t)=>b(Aa(d,a),t))(a,t)?da(g(T(await f(G+aa(a)+ea(a,n)),a=>{const n=a[t],e=w?_a(va(a,t),w):va(a,t);return[n,u(i)?e:da(g(Ea(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||b(i,a))(a)))]}),a=>!u(a[0])&&!Na(a[1]))):{}},async(a,n,i,w,y,E=!1,_=s,m)=>{const $=u(m)?void 0:Sa(m),p=a=>u($)||b($,a),I=Sa();fa(i??{},a=>h(g(la(a??{}),p),a=>ba(I,a)));const D=R(I);if(u($)&&!E&&y&&_==s&&N(D)&&b(d,a))return await f("DROP "+J+aa(a)),Ta(d,a),void Ta(v,a);const L=Aa(d,a),C=Sa(g(R(L),a=>a==n||p(a)));if(!N(D))if(b(d,a)){if(await A(T([n,...D],async t=>{M(C,t)||(await f(X+aa(a)+"ADD"+aa(t)+r),ba(L,t))})),c==it&&!b(Aa(v,a),n)){const e=t+"_pk_"+(a=>{let t=2166136261;return h(nt.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(Ha([a,n]));await f("CREATE UNIQUE INDEX IF NOT EXISTS"+aa(e)+"ON"+aa(a)+`(${aa(n)})`),ba(ga(v,a,Sa),n)}}else await f(W+aa(a)+`(${aa(n)}${r} PRIMARY KEY${O(T(D,a=>e+aa(a)+r))});`),Ta(d,a,Sa([n,...D])),Ta(v,a,Sa([n]));if(await A([...!E&&w?T(R(C),async t=>{t!=n&&(await f(X+aa(a)+"DROP"+aa(t)),M(L,t))}):[]]),E)u(i)?u($)&&await f(z+aa(a)+ea(a,_)):await A(Ea(i,async(t,e)=>{if(u(t))await f(z+aa(a)+ea(a,_)+`AND(${aa(n)}=${o([1])})`,[e]);else if(!N(D)){const i=g(la(t),p);N(i)||await c(f,a,n,i,{[e]:T(i,a=>l?l(t[a]):t[a])},o,L)}}));else if(N(D))u($)&&b(d,a)&&await f(z+aa(a)+ea(a,_));else{const t=g(R(Aa(d,a)),a=>a!=n&&p(a)),e=da(),s=[];fa(i??{},(a,n)=>{ya(e,n,T(t,t=>l?l(a?.[t]):a?.[t])),S(s,n)}),await c(f,a,n,t,e,o,L),await f(z+aa(a)+ea(a,_)+`AND${aa(n)}NOT IN(${na(s,o)})`,s)}},async t=>{if(y)return await y(async a=>{const n=f;return f=a,await k(t,()=>{f=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await F(()=>a("ROLLBACK")),t}}]},it=async(a,t,n,i,s,r)=>{const o=[1];await a("INSERT INTO"+aa(t)+"("+((...a)=>O(T(a,aa),e))(n,...i)+")VALUES"+O(Ea(s,a=>"("+r(o)+","+na(a,r,o)+")"),e)+"ON CONFLICT("+aa(n)+")DO UPDATE SET"+O(T(i,a=>aa(a)+"=excluded."+aa(a)),e),Ea(s,(a,t)=>[t,...T(a,a=>a??null)]).flat())},st=(a,t,n,e,i,s,r,[o,c,l],w,y,d,v,f,E,_,m,N,$)=>{const[p,A,h,O]=et(t,w,y,f,E,_,void 0,void 0,$);return tt(a,()=>O(async()=>{return await p(),a=(await A(o,c))[q]?.[l]??"null",Va(Ka(a));var a}),a=>O(async()=>{var t;await p(),await h(o,c,{[q]:{[l]:(t=a()??null,Ha(t,(a,t)=>u(t)?"":t))}},!0,!0)}),n,e,i,r,{[v]:()=>d,destroy:s},0,d)},rt=(a,t,n,e,i,s,r,[o,c,[l,w,y,d,v]],f,E,_,m,N,$,p,h,O,I)=>{const[S,b,D,R]=et(t,f,E,N,$,p,h,O,I),L=(a,t)=>A(Oa(c,async([n,e,i,s,r],o)=>{var c,l;t&&(c=a,l=o,!sa.hasOwn(c,l))||await D(n,e,a[o],i,s,t,r)})),C=(a,t,n)=>da(1==n?g(Ea(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):g(T(t,t=>[t,a[t]]),([,a])=>!u(a))),M=async(a,t)=>w?await D(y,j,{[q]:u(v)?a:C(a,v,t)},!0,!0,t,void 0,v):null;return tt(a,()=>R(async()=>{await S();const a=await(async()=>da(g(await A(Oa(o,async([a,t,n],e)=>[a,await b(e,t,n)])),a=>!Na(a[1]))))(),t=await(async()=>l?(await b(y,j,void 0,d))[q]:{})();return Na(a)&&u(t)?void 0:[a,t]}),(a,t)=>R(async()=>{if(await S(),u(t)){const[t,n]=a();await L(t),await M(n)}else await L(t[0],!0),await M(t[1],!0)}),n,e,i,r,{[m]:()=>_,destroy:s},0,_)},ot=(a,e,i,r,c,l,y,v,f,_,m="getDb",N,$)=>{let p,A,h;const O=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,l),[T,g,I,S]=(a=>{const n=(a=>ua(Ja,E(a)?{[Ca]:a}:a??{}))(a),e=n[Fa];if(n.mode==La){const a=n[Ca]??t;return[1,e,[a,n[Ma]??j,n[Pa]??Ra],Sa(a)]}const{tables:{load:i={},save:r={}}={},values:o={}}=n,c=ua(Xa,o),{load:l,save:w}=c,u=[za(l),za(w),c[qa],Ya(l),Ya(w)],y=u[2],d=Sa(y),v=Sa(y),f=Ga(i,{[ka]:null,[xa]:j,[Ua]:s},ka,a=>b(v,a),a=>ba(d,a)),_=Ga(r,{[qa]:null,[xa]:j,[ja]:0,[Ba]:0,[Ua]:null},qa,(a,t)=>b(v,t),(a,t)=>ba(d,t));return ha(_,(a,t)=>t[4]??=Aa(f,t[0])?.[2]??s),[0,e,[f,_,u],d]})(e);return!T&&a.isMergeable()&&P(0),(T?st:rt)(a,O,a=>{let t,n,e=1,i=0,s=0;const l=async(t=!0)=>{const[{d:n,s:i,c:r}]=await O(B+` ${K} d,${V} s,TOTAL_CHANGES() c FROM ${H}${K} JOIN ${H}${V}`);if(e&&(n!=p||i!=A||r!=h)){const o=t&&!s&&!w(p);p=n,A=i,h=r,o&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const o=k(()=>x(async()=>{for(i?r&&await l():(await l(!1),i=1);e&&s;)s=0,await l(!1),e&&(await a(),await l())},y),()=>{n==o&&(n=void 0),e&&(s?v():e&&u(t)&&(t=setInterval(()=>v(!0),1e3*g)))});return n=o,o},f=r(a=>{e&&b(S,a)&&(s=1,d(),o.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,s=0,d(),await k(async()=>await n,async()=>{p=A=h=null,await c(f)})})},a=>a(),y,v,f,I,R(S),async(a,t)=>await a(B+` t.name tn,c.name cn,c.pk OR EXISTS(${B} 1 FROM ${H}index_list(t.name)i,${H}index_info(i.name)ii ${U} i."unique"=1 AND ii.name=c.name AND(${B} count(*) FROM ${H}index_info(i.name))=1)uq FROM ${Q}list()t,${Q}info(t.name)c ${U} t.schema='main'AND t.type IN('table','view')AND t.name IN(${na(t,ta)})ORDER BY t.name,c.name`,t),_,m,n,ta,N,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,$)},ct=(a,t,n,e,i,s)=>ot(a,e,async(a,t=[])=>T(n.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}),a=>({...a})),a=>t.capi.sqlite3_update_hook(n,(t,n,e,i)=>a(i),0),()=>t.capi.sqlite3_update_hook(n,$,0),i,s,$,3,n);export{ct as createSqliteWasmPersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",n="",e=",",i=a(n),s="true",r=(a,t,n)=>a.replace(t,n),o=Promise,c=a=>(t,n,e)=>a(t)?e?.():n(t),l=globalThis,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=c(w),f=c(u),E=t=>a(t)==i,_=a=>Array.isArray(a),$=a=>a.length,m=a=>0==$(a),N=()=>{},p=a=>new o(a),A=async a=>o.all(a),h=(a,t)=>a.forEach(t),O=(a,t="")=>a.join(t),T=(a,t)=>a.map(t),g=(a,t)=>a.filter(t),I=(a,t=$(a))=>a.splice(0,t),S=(a,...t)=>a.push(...t),b=(a,t)=>a?.has(t)??!1,D=a=>u(a)||0==(a=>a?.size??0)(a),R=a=>[...a?.values()??[]],L=a=>a.clear(),C=(a,t)=>a?.forEach(t),M=(a,t)=>a?.delete(t),P=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},F=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},x=(a,t)=>F(a,a=>{F(()=>t?.(a))}),k=async(a,t)=>{try{return await a()}finally{await t()}},q="_",j="_id",B="SELECT",U="WHERE",J="TABLE",X="ALTER "+J,Y="FROM",z="DELETE "+Y,G=B+"*"+Y,H="pragma_",K="data_version",V="schema_version",Q="pragma_table_",W="CREATE "+J,Z=/\$tableName/g,aa=a=>O(T(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),ta=(a,t=[1])=>O(T(a,()=>"$"+t[0]++),e),na=(a,t=s)=>U+`(${ea(t,aa(a))})`,ea=(a,t)=>r(a,Z,t),ia=Object,sa=a=>ia.getPrototypeOf(a),ra=ia.entries,oa=a=>!w(a)&&v(sa(a),a=>a==ia.prototype||w(sa(a)),()=>!0),ca=ia.keys,la=ia.freeze,wa=(...a)=>ia.assign(ia.create(null),...a),ua=(a,t,n)=>(ia.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),ya=(a=[])=>{const t=ia.create(null);return h(a,([a,n])=>ua(t,a,n)),t},da=(a,t)=>(delete a[t],a),va=(a,t)=>h(ca(a),n=>t(a[n],n)),fa=(a,t)=>T(ra(a),([a,n])=>t(n,a)),Ea=(a,t)=>{const n=ya();return va(a,(a,e)=>ua(n,e,t(a,e))),n},_a=a=>$(ca(a)),$a=a=>oa(a)&&0==_a(a),ma=Map,Na=a=>new ma(a),pa=(a,t)=>a?.get(t),Aa=(a,t)=>C(a,(a,n)=>t(n,a)),ha=(a,t)=>{const n=[];return Aa(a,(a,e)=>S(n,t(e,a))),n},Oa=(a,t,n)=>u(n)?(M(a,t),a):a?.set(t,n),Ta=(a,t,n,e)=>{let i=pa(a,t);return b(a,t)?e?.(i):Oa(a,t,i=n()),i},ga=(a,t,n,e,i=0)=>f((n?Ta:pa)(a,t[i],i>$(t)-2?n:Na),s=>{if(i>$(t)-2)return e?.(s)&&Oa(a,t[i]),s;const r=ga(s,t,n,e,i+1);return D(s)&&Oa(a,t[i]),r}),Ia=a=>new Set(_(a)||u(a)?a:[a]),Sa=(a,t)=>a?.add(t),ba="ColumnName",Da="store",Ra="json",La=Da+"TableName",Ca=Da+"Id"+ba,Ma=Da+ba,Pa="autoLoadIntervalSeconds",Fa="rowId"+ba,xa="tableId",ka="tableName",qa="deleteEmptyColumns",ja="deleteEmptyTable",Ba="condition",Ua={mode:Ra,[Pa]:1},Ja={load:0,save:0,[ka]:t+"_values"},Xa=a=>_(a)?a:void 0,Ya=a=>d(a)||_(a),za=(a,t,n,e,i)=>{const s=Na();return va(a,(a,r)=>{const o=(w=wa(t,E(a)?{[n]:a}:a),c=ia.values(w),l=_a(t),c.slice(0,l));var c,l,w;y(o[0])||e(r,o[0])||(i(r,o[0]),Oa(s,r,o))}),s},Ga=JSON.stringify,Ha=JSON.parse,Ka=a=>""===a?void 0:_(a)?T(a,Ka):oa(a)?Ea(a,Ka):a,Va=/^\d+$/,Qa=Na(),Wa=Na(),Za=Na(),at=(a,t,e,i,s,r,o,c={},l=0,w=[])=>{let d,v,E,N,A,O=0,b=0,R=0,L=0,q=0,j=0,B=0,U=0,J=0;const X={},Y=c.destroy;Ta(Qa,w,()=>0),Ta(Wa,w,()=>[]),Oa(Za,w,(pa(Za,w)??0)+1);const z=Na(),[G,H,K,V,Q]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!$a(a)||!$a(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!$a(a)||!$a(t),t.setContent]:P(0))(o,a,l),[W,Z,aa]=(a=>{let t;const[e,i]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{Va.test(t)&&$(a)<1e3&&S(a,t)}]})(),s=Na(),r=(a,e,i,r)=>{let o,c=!1;if(h(((a,t=[n])=>{const e=[],i=(a,n)=>n==$(t)?S(e,a):y(t[n])?C(a,a=>i(a,n+1)):h([t[n],null],t=>i(pa(a,t),n+1));return i(a,0),e})(e,i),n=>C(n,n=>{const e=()=>pa(s,n)[0](t,...i??[],...r);a?(a=>{try{return a()}catch(a){(a=>{c||(o=a),c=!0})?.(a)}})(e):e()})),c)throw o};return[(i,r,o,c=[],l=()=>[])=>{t??=a();const w=e(1);return Oa(s,w,[i,r,o,c,l]),Sa(ga(r,o??[n],Ia),w),w},(a,t,...n)=>r(!1,a,t,n),a=>f(pa(s,a),([,t,e])=>(ga(t,e??[n],void 0,t=>(M(t,a),D(t)?1:0)),Oa(s,a),i(a),e)),a=>f(pa(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const o=$(r);o==$(n)?a(t,...r,...i(r)):y(n[o])?h(e[o]?.(...r)??[],a=>s(...r,a)):s(...r,n[o])};s()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>_a),ta=a=>{a!=O&&(O=a,Z(z,void 0,O))},na=()=>{pa(Za,w)||pa(Qa,w)||!m(pa(Wa,w)??[])||(Oa(Qa,w),Oa(Wa,w),Oa(Za,w))},ea=t=>{(G&&_(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ia=async()=>{va()&&a.__?.[0]?.()&&await ua()},sa=a=>k(()=>v=a,()=>{v==a&&(v=void 0)}),ra=async a=>(2!=O&&(await k(async()=>{ta(1),b++,await Ea(()=>F(async()=>{const n=await t();_(n)?ea(n):u(n)&&a?Q(a):u(n)||P(1,n)},t=>{r?.(t),a&&Q(a)}))},()=>ta(0)),await ia()),_a),oa=async()=>{const a=B;B=0,a&&a==L&&!J&&(2==O?B=a:await ra())},ca=async a=>{const t=++L;let n=!0;if(await wa(!0),t==L&&!J){const e=F(async()=>{const a=await i(async(a,e)=>{if(t==L&&!J)if(e||a){const t=n||2==O||!!j;q++,t&&j++,await k(async()=>{ta(1),b++,await(t?Ea(()=>ea(e??a)):(()=>{try{return ea(e??a)}finally{ta(0)}})())},()=>{t&&j--,--q||ta(0)}),q||await ia()}else 2==O?B=t:await ra()});t!=L||J?u(a)||await s(a):d=a},r);await sa(e),t!=L||J||await k(()=>ra(a),()=>{n=!1})}return _a},wa=async(a=!1)=>{B=0,a||L++;const t=v,n=d;return d=void 0,await sa(k(async()=>{await t},async()=>{u(n)||await F(()=>s(n),r)})),_a},ua=async a=>(1!=O&&await k(()=>k(async()=>{ta(2),R++,await Ea(()=>F(()=>e(H,a),r))},()=>ta(0)),oa),_a),ya=async()=>{const t=++U;return await da(!0),t!=U||J||(await ua(),t!=U||J||(E=a.addDidFinishTransactionListener(()=>{if(t==U&&!J){const a=K();V(a)&&F(()=>ua(a))}}))),_a},da=async(t=!1)=>{t||U++;const n=E;return E=void 0,u(n)||a.delListener(n),_a},va=()=>!u(E),fa=async(a=!1)=>{const[t,n]=a?[da,wa]:[wa,da];return await k(()=>t(),async()=>{await n()}),_a},Ea=async(...a)=>{let t,n=!1;const e=p(e=>m(a)?e():S(pa(Wa,w),...T(a,(i,s)=>{const o=s==$(a)-1;return[async()=>{let a;A=p(t=>a=t),await k(async()=>{try{await F(i,r)}catch(a){n||(n=!0,t=a)}o&&e()},()=>{A=void 0,a()})},o?e:void 0,X]})));if(await(async()=>{if(!pa(Qa,w)){Oa(Qa,w,1);const a=pa(Wa,w);let t=0;await k(async()=>{for(;t<$(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{I(a,t),Oa(Qa,w,0),na()})}})(),await e,n)throw t;return _a},_a={load:ra,startAutoLoad:ca,stopAutoLoad:wa,isAutoLoading:()=>!u(d),save:ua,startAutoSave:ya,stopAutoSave:da,isAutoSaving:va,startAutoPersisting:async(a,t=!1)=>{const[n,e,i,s]=t?[ya,ca,da,wa]:[ca,ya,wa,da],r=n(a),o=t?U:L;await r;const c=e(a),l=t?L:U;try{await c}catch(a){throw l==(t?L:U)&&await x(s),o==(t?U:L)&&await x(i),a}return _a},stopAutoPersisting:fa,getStatus:()=>O,addStatusListener:a=>W(a,z),delListener:t=>(aa(t),a),schedule:Ea,getStore:()=>a,getStats:()=>({loads:b,saves:R}),...c,destroy:async()=>(u(N)&&(J=1,N=(async()=>{const a=pa(Wa,w),t=g(a,([,a,t])=>t!=X||(a?.(),!1)),n=A;I(a),S(a,...t),await k(()=>k(()=>k(fa,()=>n),()=>Y?.()),()=>{const a=(pa(Za,w)??1)-1;Oa(Za,w,a||void 0),na()})})()),await N,_a)};return la(_a)},tt=new l.TextEncoder,nt=(a,n,i,r,o=et,c,l,w)=>{const y=Na(),d=Na();let v=a;return[async()=>{L(y),L(d),h(await i(v,n),({tn:a,cn:t,uq:n})=>{Sa(Ta(y,a,Ia),t),n&&Sa(Ta(d,a,Ia),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:Ia(e);return((a,t)=>b(pa(y,a),t))(a,t)?ya(g(T(await v(G+aa(a)+na(a,n)),a=>{const n=a[t],e=l?Ea(da(a,t),l):da(a,t);return[n,u(i)?e:ya(g(fa(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||b(i,a))(a)))]}),a=>!u(a[0])&&!$a(a[1]))):{}},async(a,n,i,l,w,f=!1,E=s,_)=>{const $=u(_)?void 0:Ia(_),N=a=>u($)||b($,a),p=Ia();va(i??{},a=>h(g(ca(a??{}),N),a=>Sa(p,a)));const I=R(p);if(u($)&&!f&&w&&E==s&&m(I)&&b(y,a))return await v("DROP "+J+aa(a)),Oa(y,a),void Oa(d,a);const D=pa(y,a),L=Ia(g(R(D),a=>a==n||N(a)));if(!m(I))if(b(y,a)){if(await A(T([n,...I],async t=>{M(L,t)||(await v(X+aa(a)+"ADD"+aa(t)+r),Sa(D,t))})),o==et&&!b(pa(d,a),n)){const e=t+"_pk_"+(a=>{let t=2166136261;return h(tt.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(Ga([a,n]));await v("CREATE UNIQUE INDEX IF NOT EXISTS"+aa(e)+"ON"+aa(a)+`(${aa(n)})`),Sa(Ta(d,a,Ia),n)}}else await v(W+aa(a)+`(${aa(n)}${r} PRIMARY KEY${O(T(I,a=>e+aa(a)+r))});`),Oa(y,a,Ia([n,...I])),Oa(d,a,Ia([n]));if(await A([...!f&&l?T(R(L),async t=>{t!=n&&(await v(X+aa(a)+"DROP"+aa(t)),M(D,t))}):[]]),f)u(i)?u($)&&await v(z+aa(a)+na(a,E)):await A(fa(i,async(t,e)=>{if(u(t))await v(z+aa(a)+na(a,E)+`AND(${aa(n)}=$1)`,[e]);else if(!m(I)){const i=g(ca(t),N);m(i)||await o(v,a,n,i,{[e]:T(i,a=>c?c(t[a]):t[a])},D)}}));else if(m(I))u($)&&b(y,a)&&await v(z+aa(a)+na(a,E));else{const t=g(R(pa(y,a)),a=>a!=n&&N(a)),e=ya(),s=[];va(i??{},(a,n)=>{ua(e,n,T(t,t=>c?c(a?.[t]):a?.[t])),S(s,n)}),await o(v,a,n,t,e,D),await v(z+aa(a)+na(a,E)+`AND${aa(n)}NOT IN(${ta(s)})`,s)}},async t=>{if(w)return await w(async a=>{const n=v;return v=a,await k(t,()=>{v=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await F(()=>a("ROLLBACK")),t}}]},et=async(a,t,n,i,s)=>{const r=[1];await a("INSERT INTO"+aa(t)+"("+((...a)=>O(T(a,aa),e))(n,...i)+")VALUES"+O(fa(s,a=>"($"+r[0]+++","+ta(a,r)+")"),e)+"ON CONFLICT("+aa(n)+")DO UPDATE SET"+O(T(i,a=>aa(a)+"=excluded."+aa(a)),e),fa(s,(a,t)=>[t,...T(a,a=>a??null)]).flat())},it=(a,t,n,e,i,s,r,[o,c,l],w,y,d,v,f,E,_,$,m)=>{const[N,p,A,h]=nt(t,w,y,f,E,void 0,void 0,m);return at(a,()=>h(async()=>{return await N(),a=(await p(o,c))[q]?.[l]??"null",Ka(Ha(a));var a}),a=>h(async()=>{var t;await N(),await A(o,c,{[q]:{[l]:(t=a()??null,Ga(t,(a,t)=>u(t)?"":t))}},!0,!0)}),n,e,i,r,{[v]:()=>d,destroy:s},0,d)},st=(a,t,n,e,i,s,r,[o,c,[l,w,y,d,v]],f,E,_,$,m,N,p,h,O)=>{const[I,S,b,D]=nt(t,f,E,m,N,p,h,O),R=(a,t)=>A(ha(c,async([n,e,i,s,r],o)=>{var c,l;t&&(c=a,l=o,!ia.hasOwn(c,l))||await b(n,e,a[o],i,s,t,r)})),L=(a,t,n)=>ya(1==n?g(fa(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):g(T(t,t=>[t,a[t]]),([,a])=>!u(a))),C=async(a,t)=>w?await b(y,j,{[q]:u(v)?a:L(a,v,t)},!0,!0,t,void 0,v):null;return at(a,()=>D(async()=>{await I();const a=await(async()=>ya(g(await A(ha(o,async([a,t,n],e)=>[a,await S(e,t,n)])),a=>!$a(a[1]))))(),t=await(async()=>l?(await S(y,j,void 0,d))[q]:{})();return $a(a)&&u(t)?void 0:[a,t]}),(a,t)=>D(async()=>{if(await I(),u(t)){const[t,n]=a();await R(t),await C(n)}else await R(t[0],!0),await C(t[1],!0)}),n,e,i,r,{[$]:()=>_,destroy:s},0,_)},rt=(a,e,i,r,c,l,y,v,f,_,$="getDb",m,N)=>{let p,A,h;const O=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,l),[T,g,I,S]=(a=>{const n=(a=>wa(Ua,E(a)?{[La]:a}:a??{}))(a),e=n[Pa];if(n.mode==Ra){const a=n[La]??t;return[1,e,[a,n[Ca]??j,n[Ma]??Da],Ia(a)]}const{tables:{load:i={},save:r={}}={},values:o={}}=n,c=wa(Ja,o),{load:l,save:w}=c,u=[Ya(l),Ya(w),c[ka],Xa(l),Xa(w)],y=u[2],d=Ia(y),v=Ia(y),f=za(i,{[xa]:null,[Fa]:j,[Ba]:s},xa,a=>b(v,a),a=>Sa(d,a)),_=za(r,{[ka]:null,[Fa]:j,[qa]:0,[ja]:0,[Ba]:null},ka,(a,t)=>b(v,t),(a,t)=>Sa(d,t));return Aa(_,(a,t)=>t[4]??=pa(f,t[0])?.[2]??s),[0,e,[f,_,u],d]})(e);return!T&&a.isMergeable()&&P(0),(T?it:st)(a,O,a=>{let t,n,e=1,i=0,s=0;const l=async(t=!0)=>{const[{d:n,s:i,c:r}]=await O(B+` ${K} d,${V} s,TOTAL_CHANGES() c FROM ${H}${K} JOIN ${H}${V}`);if(e&&(n!=p||i!=A||r!=h)){const o=t&&!s&&!w(p);p=n,A=i,h=r,o&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const o=k(()=>x(async()=>{for(i?r&&await l():(await l(!1),i=1);e&&s;)s=0,await l(!1),e&&(await a(),await l())},y),()=>{n==o&&(n=void 0),e&&(s?v():e&&u(t)&&(t=setInterval(()=>v(!0),1e3*g)))});return n=o,o},f=r(a=>{e&&b(S,a)&&(s=1,d(),o.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,s=0,d(),await k(async()=>await n,async()=>{p=A=h=null,await c(f)})})},a=>a(),y,v,f,I,R(S),async(a,t)=>await a(B+` t.name tn,c.name cn,c.pk OR EXISTS(${B} 1 FROM ${H}index_list(t.name)i,${H}index_info(i.name)ii ${U} i."unique"=1 AND ii.name=c.name AND(${B} count(*) FROM ${H}index_info(i.name))=1)uq FROM ${Q}list()t,${Q}info(t.name)c ${U} t.schema='main'AND t.type IN('table','view')AND t.name IN(${ta(t)})ORDER BY t.name,c.name`,t),_,$,n,m,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,N)},ot=(a,t,n,e,i,s)=>rt(a,e,async(a,t=[])=>T(n.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}),a=>({...a})),a=>t.capi.sqlite3_update_hook(n,(t,n,e,i)=>a(i),0),()=>t.capi.sqlite3_update_hook(n,N,0),i,s,N,3,n);export{ot as createSqliteWasmPersister};
1
+ const a=a=>typeof a,t="tinybase",n="",e=",",i=a(n),s="true",r=(a,t,n)=>a.replace(t,n),o=Promise,c=a=>(t,n,e)=>a(t)?e?.():n(t),l=globalThis,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=c(w),f=c(u),E=t=>a(t)==i,_=a=>Array.isArray(a),m=a=>a.length,N=a=>0==m(a),$=()=>{},p=a=>new o(a),A=async a=>o.all(a),h=(a,t)=>a.forEach(t),O=(a,t="")=>a.join(t),T=(a,t)=>a.map(t),g=(a,t)=>a.filter(t),I=(a,t=m(a))=>a.splice(0,t),S=(a,...t)=>a.push(...t),b=(a,t)=>a?.has(t)??!1,D=a=>u(a)||0==(a=>a?.size??0)(a),R=a=>[...a?.values()??[]],L=a=>a.clear(),C=(a,t)=>a?.forEach(t),M=(a,t)=>a?.delete(t),P=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},F=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},x=(a,t)=>F(a,a=>{F(()=>t?.(a))}),k=async(a,t)=>{try{return await a()}finally{await t()}},q="_",j="_id",B="SELECT",U="WHERE",J="TABLE",X="ALTER "+J,Y="FROM",z="DELETE "+Y,G=B+"*"+Y,H="pragma_",K="data_version",V="schema_version",Q="pragma_table_",W="CREATE "+J,Z=/\$tableName/g,aa=a=>O(T(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),ta=()=>"?",na=(a,t,n=[1])=>O(T(a,()=>t(n)),e),ea=(a,t=s)=>U+`(${ia(t,aa(a))})`,ia=(a,t)=>r(a,Z,t),sa=Object,ra=a=>sa.getPrototypeOf(a),oa=sa.entries,ca=a=>!w(a)&&v(ra(a),a=>a==sa.prototype||w(ra(a)),()=>!0),la=sa.keys,wa=sa.freeze,ua=(...a)=>sa.assign(sa.create(null),...a),ya=(a,t,n)=>(sa.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),da=(a=[])=>{const t=sa.create(null);return h(a,([a,n])=>ya(t,a,n)),t},va=(a,t)=>(delete a[t],a),fa=(a,t)=>h(la(a),n=>t(a[n],n)),Ea=(a,t)=>T(oa(a),([a,n])=>t(n,a)),_a=(a,t)=>{const n=da();return fa(a,(a,e)=>ya(n,e,t(a,e))),n},ma=a=>m(la(a)),Na=a=>ca(a)&&0==ma(a),$a=Map,pa=a=>new $a(a),Aa=(a,t)=>a?.get(t),ha=(a,t)=>C(a,(a,n)=>t(n,a)),Oa=(a,t)=>{const n=[];return ha(a,(a,e)=>S(n,t(e,a))),n},Ta=(a,t,n)=>u(n)?(M(a,t),a):a?.set(t,n),ga=(a,t,n,e)=>{let i=Aa(a,t);return b(a,t)?e?.(i):Ta(a,t,i=n()),i},Ia=(a,t,n,e,i=0)=>f((n?ga:Aa)(a,t[i],i>m(t)-2?n:pa),s=>{if(i>m(t)-2)return e?.(s)&&Ta(a,t[i]),s;const r=Ia(s,t,n,e,i+1);return D(s)&&Ta(a,t[i]),r}),Sa=a=>new Set(_(a)||u(a)?a:[a]),ba=(a,t)=>a?.add(t),Da="ColumnName",Ra="store",La="json",Ca=Ra+"TableName",Ma=Ra+"Id"+Da,Pa=Ra+Da,Fa="autoLoadIntervalSeconds",xa="rowId"+Da,ka="tableId",qa="tableName",ja="deleteEmptyColumns",Ba="deleteEmptyTable",Ua="condition",Ja={mode:La,[Fa]:1},Xa={load:0,save:0,[qa]:t+"_values"},Ya=a=>_(a)?a:void 0,za=a=>d(a)||_(a),Ga=(a,t,n,e,i)=>{const s=pa();return fa(a,(a,r)=>{const o=(w=ua(t,E(a)?{[n]:a}:a),c=sa.values(w),l=ma(t),c.slice(0,l));var c,l,w;y(o[0])||e(r,o[0])||(i(r,o[0]),Ta(s,r,o))}),s},Ha=JSON.stringify,Ka=JSON.parse,Va=a=>""===a?void 0:_(a)?T(a,Va):ca(a)?_a(a,Va):a,Qa=/^\d+$/,Wa=pa(),Za=pa(),at=pa(),tt=(a,t,e,i,s,r,o,c={},l=0,w=[])=>{let d,v,E,$,A,O=0,b=0,R=0,L=0,q=0,j=0,B=0,U=0,J=0;const X={},Y=c.destroy;ga(Wa,w,()=>0),ga(Za,w,()=>[]),Ta(at,w,(Aa(at,w)??0)+1);const z=pa(),[G,H,K,V,Q]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!Na(a)||!Na(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!Na(a)||!Na(t),t.setContent]:P(0))(o,a,l),[W,Z,aa]=(a=>{let t;const[e,i]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{Qa.test(t)&&m(a)<1e3&&S(a,t)}]})(),s=pa(),r=(a,e,i,r)=>{let o,c=!1;if(h(((a,t=[n])=>{const e=[],i=(a,n)=>n==m(t)?S(e,a):y(t[n])?C(a,a=>i(a,n+1)):h([t[n],null],t=>i(Aa(a,t),n+1));return i(a,0),e})(e,i),n=>C(n,n=>{const e=()=>Aa(s,n)[0](t,...i??[],...r);a?(a=>{try{return a()}catch(a){(a=>{c||(o=a),c=!0})?.(a)}})(e):e()})),c)throw o};return[(i,r,o,c=[],l=()=>[])=>{t??=a();const w=e(1);return Ta(s,w,[i,r,o,c,l]),ba(Ia(r,o??[n],Sa),w),w},(a,t,...n)=>r(!1,a,t,n),a=>f(Aa(s,a),([,t,e])=>(Ia(t,e??[n],void 0,t=>(M(t,a),D(t)?1:0)),Ta(s,a),i(a),e)),a=>f(Aa(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const o=m(r);o==m(n)?a(t,...r,...i(r)):y(n[o])?h(e[o]?.(...r)??[],a=>s(...r,a)):s(...r,n[o])};s()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>_a),ta=a=>{a!=O&&(O=a,Z(z,void 0,O))},na=()=>{Aa(at,w)||Aa(Wa,w)||!N(Aa(Za,w)??[])||(Ta(Wa,w),Ta(Za,w),Ta(at,w))},ea=t=>{(G&&_(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ia=async()=>{va()&&a.__?.[0]?.()&&await ua()},sa=a=>k(()=>v=a,()=>{v==a&&(v=void 0)}),ra=async a=>(2!=O&&(await k(async()=>{ta(1),b++,await Ea(()=>F(async()=>{const n=await t();_(n)?ea(n):u(n)&&a?Q(a):u(n)||P(1,n)},t=>{r?.(t),a&&Q(a)}))},()=>ta(0)),await ia()),_a),oa=async()=>{const a=B;B=0,a&&a==L&&!J&&(2==O?B=a:await ra())},ca=async a=>{const t=++L;let n=!0;if(await la(!0),t==L&&!J){const e=F(async()=>{const a=await i(async(a,e)=>{if(t==L&&!J)if(e||a){const t=n||2==O||!!j;q++,t&&j++,await k(async()=>{ta(1),b++,await(t?Ea(()=>ea(e??a)):(()=>{try{return ea(e??a)}finally{ta(0)}})())},()=>{t&&j--,--q||ta(0)}),q||await ia()}else 2==O?B=t:await ra()});t!=L||J?u(a)||await s(a):d=a},r);await sa(e),t!=L||J||await k(()=>ra(a),()=>{n=!1})}return _a},la=async(a=!1)=>{B=0,a||L++;const t=v,n=d;return d=void 0,await sa(k(async()=>{await t},async()=>{u(n)||await F(()=>s(n),r)})),_a},ua=async a=>(1!=O&&await k(()=>k(async()=>{ta(2),R++,await Ea(()=>F(()=>e(H,a),r))},()=>ta(0)),oa),_a),ya=async()=>{const t=++U;return await da(!0),t!=U||J||(await ua(),t!=U||J||(E=a.addDidFinishTransactionListener(()=>{if(t==U&&!J){const a=K();V(a)&&F(()=>ua(a))}}))),_a},da=async(t=!1)=>{t||U++;const n=E;return E=void 0,u(n)||a.delListener(n),_a},va=()=>!u(E),fa=async(a=!1)=>{const[t,n]=a?[da,la]:[la,da];return await k(()=>t(),async()=>{await n()}),_a},Ea=async(...a)=>{let t,n=!1;const e=p(e=>N(a)?e():S(Aa(Za,w),...T(a,(i,s)=>{const o=s==m(a)-1;return[async()=>{let a;A=p(t=>a=t),await k(async()=>{try{await F(i,r)}catch(a){n||(n=!0,t=a)}o&&e()},()=>{A=void 0,a()})},o?e:void 0,X]})));if(await(async()=>{if(!Aa(Wa,w)){Ta(Wa,w,1);const a=Aa(Za,w);let t=0;await k(async()=>{for(;t<m(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{I(a,t),Ta(Wa,w,0),na()})}})(),await e,n)throw t;return _a},_a={load:ra,startAutoLoad:ca,stopAutoLoad:la,isAutoLoading:()=>!u(d),save:ua,startAutoSave:ya,stopAutoSave:da,isAutoSaving:va,startAutoPersisting:async(a,t=!1)=>{const[n,e,i,s]=t?[ya,ca,da,la]:[ca,ya,la,da],r=n(a),o=t?U:L;await r;const c=e(a),l=t?L:U;try{await c}catch(a){throw l==(t?L:U)&&await x(s),o==(t?U:L)&&await x(i),a}return _a},stopAutoPersisting:fa,getStatus:()=>O,addStatusListener:a=>W(a,z),delListener:t=>(aa(t),a),schedule:Ea,getStore:()=>a,getStats:()=>({loads:b,saves:R}),...c,destroy:async()=>(u($)&&(J=1,$=(async()=>{const a=Aa(Za,w),t=g(a,([,a,t])=>t!=X||(a?.(),!1)),n=A;I(a),S(a,...t),await k(()=>k(()=>k(fa,()=>n),()=>Y?.()),()=>{const a=(Aa(at,w)??1)-1;Ta(at,w,a||void 0),na()})})()),await $,_a)};return wa(_a)},nt=new l.TextEncoder,et=(a,n,i,r,o,c=it,l,w,y)=>{const d=pa(),v=pa();let f=a;return[async()=>{L(d),L(v),h(await i(f,n),({tn:a,cn:t,uq:n})=>{ba(ga(d,a,Sa),t),n&&ba(ga(v,a,Sa),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:Sa(e);return((a,t)=>b(Aa(d,a),t))(a,t)?da(g(T(await f(G+aa(a)+ea(a,n)),a=>{const n=a[t],e=w?_a(va(a,t),w):va(a,t);return[n,u(i)?e:da(g(Ea(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||b(i,a))(a)))]}),a=>!u(a[0])&&!Na(a[1]))):{}},async(a,n,i,w,y,E=!1,_=s,m)=>{const $=u(m)?void 0:Sa(m),p=a=>u($)||b($,a),I=Sa();fa(i??{},a=>h(g(la(a??{}),p),a=>ba(I,a)));const D=R(I);if(u($)&&!E&&y&&_==s&&N(D)&&b(d,a))return await f("DROP "+J+aa(a)),Ta(d,a),void Ta(v,a);const L=Aa(d,a),C=Sa(g(R(L),a=>a==n||p(a)));if(!N(D))if(b(d,a)){if(await A(T([n,...D],async t=>{M(C,t)||(await f(X+aa(a)+"ADD"+aa(t)+r),ba(L,t))})),c==it&&!b(Aa(v,a),n)){const e=t+"_pk_"+(a=>{let t=2166136261;return h(nt.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(Ha([a,n]));await f("CREATE UNIQUE INDEX IF NOT EXISTS"+aa(e)+"ON"+aa(a)+`(${aa(n)})`),ba(ga(v,a,Sa),n)}}else await f(W+aa(a)+`(${aa(n)}${r} PRIMARY KEY${O(T(D,a=>e+aa(a)+r))});`),Ta(d,a,Sa([n,...D])),Ta(v,a,Sa([n]));if(await A([...!E&&w?T(R(C),async t=>{t!=n&&(await f(X+aa(a)+"DROP"+aa(t)),M(L,t))}):[]]),E)u(i)?u($)&&await f(z+aa(a)+ea(a,_)):await A(Ea(i,async(t,e)=>{if(u(t))await f(z+aa(a)+ea(a,_)+`AND(${aa(n)}=${o([1])})`,[e]);else if(!N(D)){const i=g(la(t),p);N(i)||await c(f,a,n,i,{[e]:T(i,a=>l?l(t[a]):t[a])},o,L)}}));else if(N(D))u($)&&b(d,a)&&await f(z+aa(a)+ea(a,_));else{const t=g(R(Aa(d,a)),a=>a!=n&&p(a)),e=da(),s=[];fa(i??{},(a,n)=>{ya(e,n,T(t,t=>l?l(a?.[t]):a?.[t])),S(s,n)}),await c(f,a,n,t,e,o,L),await f(z+aa(a)+ea(a,_)+`AND${aa(n)}NOT IN(${na(s,o)})`,s)}},async t=>{if(y)return await y(async a=>{const n=f;return f=a,await k(t,()=>{f=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await F(()=>a("ROLLBACK")),t}}]},it=async(a,t,n,i,s,r)=>{const o=[1];await a("INSERT INTO"+aa(t)+"("+((...a)=>O(T(a,aa),e))(n,...i)+")VALUES"+O(Ea(s,a=>"("+r(o)+","+na(a,r,o)+")"),e)+"ON CONFLICT("+aa(n)+")DO UPDATE SET"+O(T(i,a=>aa(a)+"=excluded."+aa(a)),e),Ea(s,(a,t)=>[t,...T(a,a=>a??null)]).flat())},st=(a,t,n,e,i,s,r,[o,c,l],w,y,d,v,f,E,_,m,N,$)=>{const[p,A,h,O]=et(t,w,y,f,E,_,void 0,void 0,$);return tt(a,()=>O(async()=>{return await p(),a=(await A(o,c))[q]?.[l]??"null",Va(Ka(a));var a}),a=>O(async()=>{var t;await p(),await h(o,c,{[q]:{[l]:(t=a()??null,Ha(t,(a,t)=>u(t)?"":t))}},!0,!0)}),n,e,i,r,{[v]:()=>d,destroy:s},0,d)},rt=(a,t,n,e,i,s,r,[o,c,[l,w,y,d,v]],f,E,_,m,N,$,p,h,O,I)=>{const[S,b,D,R]=et(t,f,E,N,$,p,h,O,I),L=(a,t)=>A(Oa(c,async([n,e,i,s,r],o)=>{var c,l;t&&(c=a,l=o,!sa.hasOwn(c,l))||await D(n,e,a[o],i,s,t,r)})),C=(a,t,n)=>da(1==n?g(Ea(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):g(T(t,t=>[t,a[t]]),([,a])=>!u(a))),M=async(a,t)=>w?await D(y,j,{[q]:u(v)?a:C(a,v,t)},!0,!0,t,void 0,v):null;return tt(a,()=>R(async()=>{await S();const a=await(async()=>da(g(await A(Oa(o,async([a,t,n],e)=>[a,await b(e,t,n)])),a=>!Na(a[1]))))(),t=await(async()=>l?(await b(y,j,void 0,d))[q]:{})();return Na(a)&&u(t)?void 0:[a,t]}),(a,t)=>R(async()=>{if(await S(),u(t)){const[t,n]=a();await L(t),await M(n)}else await L(t[0],!0),await M(t[1],!0)}),n,e,i,r,{[m]:()=>_,destroy:s},0,_)},ot=(a,e,i,r,c,l,y,v,f,_,m="getDb",N,$)=>{let p,A,h;const O=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,l),[T,g,I,S]=(a=>{const n=(a=>ua(Ja,E(a)?{[Ca]:a}:a??{}))(a),e=n[Fa];if(n.mode==La){const a=n[Ca]??t;return[1,e,[a,n[Ma]??j,n[Pa]??Ra],Sa(a)]}const{tables:{load:i={},save:r={}}={},values:o={}}=n,c=ua(Xa,o),{load:l,save:w}=c,u=[za(l),za(w),c[qa],Ya(l),Ya(w)],y=u[2],d=Sa(y),v=Sa(y),f=Ga(i,{[ka]:null,[xa]:j,[Ua]:s},ka,a=>b(v,a),a=>ba(d,a)),_=Ga(r,{[qa]:null,[xa]:j,[ja]:0,[Ba]:0,[Ua]:null},qa,(a,t)=>b(v,t),(a,t)=>ba(d,t));return ha(_,(a,t)=>t[4]??=Aa(f,t[0])?.[2]??s),[0,e,[f,_,u],d]})(e);return!T&&a.isMergeable()&&P(0),(T?st:rt)(a,O,a=>{let t,n,e=1,i=0,s=0;const l=async(t=!0)=>{const[{d:n,s:i,c:r}]=await O(B+` ${K} d,${V} s,TOTAL_CHANGES() c FROM ${H}${K} JOIN ${H}${V}`);if(e&&(n!=p||i!=A||r!=h)){const o=t&&!s&&!w(p);p=n,A=i,h=r,o&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const o=k(()=>x(async()=>{for(i?r&&await l():(await l(!1),i=1);e&&s;)s=0,await l(!1),e&&(await a(),await l())},y),()=>{n==o&&(n=void 0),e&&(s?v():e&&u(t)&&(t=setInterval(()=>v(!0),1e3*g)))});return n=o,o},f=r(a=>{e&&b(S,a)&&(s=1,d(),o.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,s=0,d(),await k(async()=>await n,async()=>{p=A=h=null,await c(f)})})},a=>a(),y,v,f,I,R(S),async(a,t)=>await a(B+` t.name tn,c.name cn,c.pk OR EXISTS(${B} 1 FROM ${H}index_list(t.name)i,${H}index_info(i.name)ii ${U} i."unique"=1 AND ii.name=c.name AND(${B} count(*) FROM ${H}index_info(i.name))=1)uq FROM ${Q}list()t,${Q}info(t.name)c ${U} t.schema='main'AND t.type IN('table','view')AND t.name IN(${na(t,ta)})ORDER BY t.name,c.name`,t),_,m,n,ta,N,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,$)},ct=(a,t,n,e,i,s)=>ot(a,e,async(a,t=[])=>T(n.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}),a=>({...a})),a=>t.capi.sqlite3_update_hook(n,(t,n,e,i)=>a(i),0),()=>t.capi.sqlite3_update_hook(n,$,0),i,s,$,3,n);export{ct as createSqliteWasmPersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",n="",e=",",i=a(n),s="true",r=(a,t,n)=>a.replace(t,n),c=Promise,o=a=>(t,n,e)=>a(t)?e?.():n(t),l=globalThis,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=o(w),f=o(u),E=t=>a(t)==i,$=a=>Array.isArray(a),m=a=>a.length,N=a=>0==m(a),_=()=>{},A=a=>new c(a),h=async a=>c.all(a),O=(a,t)=>a?.has(t)??!1,p=a=>u(a)||0==(a=>a?.size??0)(a),g=a=>[...a?.values()??[]],T=a=>a.clear(),I=(a,t)=>a?.forEach(t),S=(a,t)=>a?.delete(t),D=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},R=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},b=(a,t)=>R(a,a=>{R(()=>t?.(a))}),L=async(a,t)=>{try{return await a()}finally{await t()}},C=(a,t)=>a.forEach(t),M=(a,t="")=>a.join(t),P=(a,t)=>a.map(t),F=(a,t)=>a.filter(t),x=(a,t=m(a))=>a.splice(0,t),B=(a,...t)=>a.push(...t),U="_",j="_id",k="SELECT",q="WHERE",J="TABLE",X="ALTER "+J,Y="FROM",z="DELETE "+Y,G=k+"*"+Y,H="pragma_",K="data_version",Q="schema_version",V="pragma_table_",W="CREATE "+J,Z=/\$tableName/g,aa=a=>M(P(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),ta=(a,t=[1])=>M(P(a,()=>"$"+t[0]++),e),na=(a,t=s)=>q+`(${ea(t,aa(a))})`,ea=(a,t)=>r(a,Z,t),ia=Object,sa=a=>ia.getPrototypeOf(a),ra=ia.entries,ca=a=>!w(a)&&v(sa(a),a=>a==ia.prototype||w(sa(a)),()=>!0),oa=ia.keys,la=ia.freeze,wa=(...a)=>ia.assign(ia.create(null),...a),ua=(a,t,n)=>(ia.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),ya=(a=[])=>{const t=ia.create(null);return C(a,([a,n])=>ua(t,a,n)),t},da=(a,t)=>(delete a[t],a),va=(a,t)=>C(oa(a),n=>t(a[n],n)),fa=(a,t)=>P(ra(a),([a,n])=>t(n,a)),Ea=(a,t)=>{const n=ya();return va(a,(a,e)=>ua(n,e,t(a,e))),n},$a=a=>m(oa(a)),ma=a=>ca(a)&&0==$a(a),Na=Map,_a=a=>new Na(a),Aa=(a,t)=>a?.get(t),ha=(a,t)=>I(a,(a,n)=>t(n,a)),Oa=(a,t)=>{const n=[];return ha(a,(a,e)=>B(n,t(e,a))),n},pa=(a,t,n)=>u(n)?(S(a,t),a):a?.set(t,n),ga=(a,t,n,e)=>{let i=Aa(a,t);return O(a,t)?e?.(i):pa(a,t,i=n()),i},Ta=(a,t,n,e,i=0)=>f((n?ga:Aa)(a,t[i],i>m(t)-2?n:_a),s=>{if(i>m(t)-2)return e?.(s)&&pa(a,t[i]),s;const r=Ta(s,t,n,e,i+1);return p(s)&&pa(a,t[i]),r}),Ia=a=>new Set($(a)||u(a)?a:[a]),Sa=(a,t)=>a?.add(t),Da="ColumnName",Ra="store",ba="json",La=Ra+"TableName",Ca=Ra+"Id"+Da,Ma=Ra+Da,Pa="autoLoadIntervalSeconds",Fa="rowId"+Da,xa="tableId",Ba="tableName",Ua="deleteEmptyColumns",ja="deleteEmptyTable",ka="condition",qa={mode:ba,[Pa]:1},Ja={load:0,save:0,[Ba]:t+"_values"},Xa=a=>$(a)?a:void 0,Ya=a=>d(a)||$(a),za=(a,t,n,e,i)=>{const s=_a();return va(a,(a,r)=>{const c=(w=wa(t,E(a)?{[n]:a}:a),o=ia.values(w),l=$a(t),o.slice(0,l));var o,l,w;y(c[0])||e(r,c[0])||(i(r,c[0]),pa(s,r,c))}),s},Ga=JSON.stringify,Ha=JSON.parse,Ka=a=>""===a?void 0:$(a)?P(a,Ka):ca(a)?Ea(a,Ka):a,Qa=/^\d+$/,Va=_a(),Wa=_a(),Za=_a(),at=(a,t,e,i,s,r,c,o={},l=0,w=[])=>{let d,v,E,_,h,O=0,g=0,T=0,M=0,U=0,j=0,k=0,q=0,J=0;const X={},Y=o.destroy;ga(Va,w,()=>0),ga(Wa,w,()=>[]),pa(Za,w,(Aa(Za,w)??0)+1);const z=_a(),[G,H,K,Q,V]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!ma(a)||!ma(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!ma(a)||!ma(t),t.setContent]:D(0))(c,a,l),[W,Z,aa]=(a=>{let t;const[e,i]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{Qa.test(t)&&m(a)<1e3&&B(a,t)}]})(),s=_a(),r=(a,e,i,r)=>{let c,o=!1;if(C(((a,t=[n])=>{const e=[],i=(a,n)=>n==m(t)?B(e,a):y(t[n])?I(a,a=>i(a,n+1)):C([t[n],null],t=>i(Aa(a,t),n+1));return i(a,0),e})(e,i),n=>I(n,n=>{const e=()=>Aa(s,n)[0](t,...i??[],...r);a?(a=>{try{return a()}catch(a){(a=>{o||(c=a),o=!0})?.(a)}})(e):e()})),o)throw c};return[(i,r,c,o=[],l=()=>[])=>{t??=a();const w=e(1);return pa(s,w,[i,r,c,o,l]),Sa(Ta(r,c??[n],Ia),w),w},(a,t,...n)=>r(!1,a,t,n),a=>f(Aa(s,a),([,t,e])=>(Ta(t,e??[n],void 0,t=>(S(t,a),p(t)?1:0)),pa(s,a),i(a),e)),a=>f(Aa(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const c=m(r);c==m(n)?a(t,...r,...i(r)):y(n[c])?C(e[c]?.(...r)??[],a=>s(...r,a)):s(...r,n[c])};s()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>$a),ta=a=>{a!=O&&(O=a,Z(z,void 0,O))},na=()=>{Aa(Za,w)||Aa(Va,w)||!N(Aa(Wa,w)??[])||(pa(Va,w),pa(Wa,w),pa(Za,w))},ea=t=>{(G&&$(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ia=async()=>{va()&&a.__?.[0]?.()&&await ua()},sa=a=>L(()=>v=a,()=>{v==a&&(v=void 0)}),ra=async a=>(2!=O&&(await L(async()=>{ta(1),g++,await Ea(()=>R(async()=>{const n=await t();$(n)?ea(n):u(n)&&a?V(a):u(n)||D(1,n)},t=>{r?.(t),a&&V(a)}))},()=>ta(0)),await ia()),$a),ca=async()=>{const a=k;k=0,a&&a==M&&!J&&(2==O?k=a:await ra())},oa=async a=>{const t=++M;let n=!0;if(await wa(!0),t==M&&!J){const e=R(async()=>{const a=await i(async(a,e)=>{if(t==M&&!J)if(e||a){const t=n||2==O||!!j;U++,t&&j++,await L(async()=>{ta(1),g++,await(t?Ea(()=>ea(e??a)):(()=>{try{return ea(e??a)}finally{ta(0)}})())},()=>{t&&j--,--U||ta(0)}),U||await ia()}else 2==O?k=t:await ra()});t!=M||J?u(a)||await s(a):d=a},r);await sa(e),t!=M||J||await L(()=>ra(a),()=>{n=!1})}return $a},wa=async(a=!1)=>{k=0,a||M++;const t=v,n=d;return d=void 0,await sa(L(async()=>{await t},async()=>{u(n)||await R(()=>s(n),r)})),$a},ua=async a=>(1!=O&&await L(()=>L(async()=>{ta(2),T++,await Ea(()=>R(()=>e(H,a),r))},()=>ta(0)),ca),$a),ya=async()=>{const t=++q;return await da(!0),t!=q||J||(await ua(),t!=q||J||(E=a.addDidFinishTransactionListener(()=>{if(t==q&&!J){const a=K();Q(a)&&R(()=>ua(a))}}))),$a},da=async(t=!1)=>{t||q++;const n=E;return E=void 0,u(n)||a.delListener(n),$a},va=()=>!u(E),fa=async(a=!1)=>{const[t,n]=a?[da,wa]:[wa,da];return await L(()=>t(),async()=>{await n()}),$a},Ea=async(...a)=>{let t,n=!1;const e=A(e=>N(a)?e():B(Aa(Wa,w),...P(a,(i,s)=>{const c=s==m(a)-1;return[async()=>{let a;h=A(t=>a=t),await L(async()=>{try{await R(i,r)}catch(a){n||(n=!0,t=a)}c&&e()},()=>{h=void 0,a()})},c?e:void 0,X]})));if(await(async()=>{if(!Aa(Va,w)){pa(Va,w,1);const a=Aa(Wa,w);let t=0;await L(async()=>{for(;t<m(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{x(a,t),pa(Va,w,0),na()})}})(),await e,n)throw t;return $a},$a={load:ra,startAutoLoad:oa,stopAutoLoad:wa,isAutoLoading:()=>!u(d),save:ua,startAutoSave:ya,stopAutoSave:da,isAutoSaving:va,startAutoPersisting:async(a,t=!1)=>{const[n,e,i,s]=t?[ya,oa,da,wa]:[oa,ya,wa,da],r=n(a),c=t?q:M;await r;const o=e(a),l=t?M:q;try{await o}catch(a){throw l==(t?M:q)&&await b(s),c==(t?q:M)&&await b(i),a}return $a},stopAutoPersisting:fa,getStatus:()=>O,addStatusListener:a=>W(a,z),delListener:t=>(aa(t),a),schedule:Ea,getStore:()=>a,getStats:()=>({loads:g,saves:T}),...o,destroy:async()=>(u(_)&&(J=1,_=(async()=>{const a=Aa(Wa,w),t=F(a,([,a,t])=>t!=X||(a?.(),!1)),n=h;x(a),B(a,...t),await L(()=>L(()=>L(fa,()=>n),()=>Y?.()),()=>{const a=(Aa(Za,w)??1)-1;pa(Za,w,a||void 0),na()})})()),await _,$a)};return la($a)},tt=new l.TextEncoder,nt=(a,n,i,r,c=et,o,l,w)=>{const y=_a(),d=_a();let v=a;return[async()=>{T(y),T(d),C(await i(v,n),({tn:a,cn:t,uq:n})=>{Sa(ga(y,a,Ia),t),n&&Sa(ga(d,a,Ia),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:Ia(e);return((a,t)=>O(Aa(y,a),t))(a,t)?ya(F(P(await v(G+aa(a)+na(a,n)),a=>{const n=a[t],e=l?Ea(da(a,t),l):da(a,t);return[n,u(i)?e:ya(F(fa(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||O(i,a))(a)))]}),a=>!u(a[0])&&!ma(a[1]))):{}},async(a,n,i,l,w,f=!1,E=s,$)=>{const m=u($)?void 0:Ia($),_=a=>u(m)||O(m,a),A=Ia();va(i??{},a=>C(F(oa(a??{}),_),a=>Sa(A,a)));const p=g(A);if(u(m)&&!f&&w&&E==s&&N(p)&&O(y,a))return await v("DROP "+J+aa(a)),pa(y,a),void pa(d,a);const T=Aa(y,a),I=Ia(F(g(T),a=>a==n||_(a)));if(!N(p))if(O(y,a)){if(await h(P([n,...p],async t=>{S(I,t)||(await v(X+aa(a)+"ADD"+aa(t)+r),Sa(T,t))})),c==et&&!O(Aa(d,a),n)){const e=t+"_pk_"+(a=>{let t=2166136261;return C(tt.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(Ga([a,n]));await v("CREATE UNIQUE INDEX IF NOT EXISTS"+aa(e)+"ON"+aa(a)+`(${aa(n)})`),Sa(ga(d,a,Ia),n)}}else await v(W+aa(a)+`(${aa(n)}${r} PRIMARY KEY${M(P(p,a=>e+aa(a)+r))});`),pa(y,a,Ia([n,...p])),pa(d,a,Ia([n]));if(await h([...!f&&l?P(g(I),async t=>{t!=n&&(await v(X+aa(a)+"DROP"+aa(t)),S(T,t))}):[]]),f)u(i)?u(m)&&await v(z+aa(a)+na(a,E)):await h(fa(i,async(t,e)=>{if(u(t))await v(z+aa(a)+na(a,E)+`AND(${aa(n)}=$1)`,[e]);else if(!N(p)){const i=F(oa(t),_);N(i)||await c(v,a,n,i,{[e]:P(i,a=>o?o(t[a]):t[a])},T)}}));else if(N(p))u(m)&&O(y,a)&&await v(z+aa(a)+na(a,E));else{const t=F(g(Aa(y,a)),a=>a!=n&&_(a)),e=ya(),s=[];va(i??{},(a,n)=>{ua(e,n,P(t,t=>o?o(a?.[t]):a?.[t])),B(s,n)}),await c(v,a,n,t,e,T),await v(z+aa(a)+na(a,E)+`AND${aa(n)}NOT IN(${ta(s)})`,s)}},async t=>{if(w)return await w(async a=>{const n=v;return v=a,await L(t,()=>{v=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await R(()=>a("ROLLBACK")),t}}]},et=async(a,t,n,i,s)=>{const r=[1];await a("INSERT INTO"+aa(t)+"("+((...a)=>M(P(a,aa),e))(n,...i)+")VALUES"+M(fa(s,a=>"($"+r[0]+++","+ta(a,r)+")"),e)+"ON CONFLICT("+aa(n)+")DO UPDATE SET"+M(P(i,a=>aa(a)+"=excluded."+aa(a)),e),fa(s,(a,t)=>[t,...P(a,a=>a??null)]).flat())},it=(a,t,n,e,i,s,r,[c,o,l],w,y,d,v,f,E,$,m,N)=>{const[_,A,h,O]=nt(t,w,y,f,E,void 0,void 0,N);return at(a,()=>O(async()=>{return await _(),a=(await A(c,o))[U]?.[l]??"null",Ka(Ha(a));var a}),a=>O(async()=>{var t;await _(),await h(c,o,{[U]:{[l]:(t=a()??null,Ga(t,(a,t)=>u(t)?"":t))}},!0,!0)}),n,e,i,r,{[v]:()=>d,destroy:s},0,d)},st=(a,t,n,e,i,s,r,[c,o,[l,w,y,d,v]],f,E,$,m,N,_,A,O,p)=>{const[g,T,I,S]=nt(t,f,E,N,_,A,O,p),D=(a,t)=>h(Oa(o,async([n,e,i,s,r],c)=>{var o,l;t&&(o=a,l=c,!ia.hasOwn(o,l))||await I(n,e,a[c],i,s,t,r)})),R=(a,t,n)=>ya(1==n?F(fa(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):F(P(t,t=>[t,a[t]]),([,a])=>!u(a))),b=async(a,t)=>w?await I(y,j,{[U]:u(v)?a:R(a,v,t)},!0,!0,t,void 0,v):null;return at(a,()=>S(async()=>{await g();const a=await(async()=>ya(F(await h(Oa(c,async([a,t,n],e)=>[a,await T(e,t,n)])),a=>!ma(a[1]))))(),t=await(async()=>l?(await T(y,j,void 0,d))[U]:{})();return ma(a)&&u(t)?void 0:[a,t]}),(a,t)=>S(async()=>{if(await g(),u(t)){const[t,n]=a();await D(t),await b(n)}else await D(t[0],!0),await b(t[1],!0)}),n,e,i,r,{[m]:()=>$,destroy:s},0,$)},rt=(a,e,i,r,o,l,y,v,f,$,m="getDb",N,_)=>{let A,h,p;const T=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,l),[I,S,R,C]=(a=>{const n=(a=>wa(qa,E(a)?{[La]:a}:a??{}))(a),e=n[Pa];if(n.mode==ba){const a=n[La]??t;return[1,e,[a,n[Ca]??j,n[Ma]??Ra],Ia(a)]}const{tables:{load:i={},save:r={}}={},values:c={}}=n,o=wa(Ja,c),{load:l,save:w}=o,u=[Ya(l),Ya(w),o[Ba],Xa(l),Xa(w)],y=u[2],d=Ia(y),v=Ia(y),f=za(i,{[xa]:null,[Fa]:j,[ka]:s},xa,a=>O(v,a),a=>Sa(d,a)),$=za(r,{[Ba]:null,[Fa]:j,[Ua]:0,[ja]:0,[ka]:null},Ba,(a,t)=>O(v,t),(a,t)=>Sa(d,t));return ha($,(a,t)=>t[4]??=Aa(f,t[0])?.[2]??s),[0,e,[f,$,u],d]})(e);return!I&&a.isMergeable()&&D(0),(I?it:st)(a,T,a=>{let t,n,e=1,i=0,s=0;const l=async(t=!0)=>{const[{d:n,s:i,c:r}]=await T(k+` ${K} d,${Q} s,TOTAL_CHANGES() c FROM ${H}${K} JOIN ${H}${Q}`);if(e&&(n!=A||i!=h||r!=p)){const c=t&&!s&&!w(A);A=n,h=i,p=r,c&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const c=L(()=>b(async()=>{for(i?r&&await l():(await l(!1),i=1);e&&s;)s=0,await l(!1),e&&(await a(),await l())},y),()=>{n==c&&(n=void 0),e&&(s?v():e&&u(t)&&(t=setInterval(()=>v(!0),1e3*S)))});return n=c,c},f=r(a=>{e&&O(C,a)&&(s=1,d(),c.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,s=0,d(),await L(async()=>await n,async()=>{A=h=p=null,await o(f)})})},a=>a(),y,v,f,R,g(C),async(a,t)=>await a(k+` t.name tn,c.name cn,c.pk OR EXISTS(${k} 1 FROM ${H}index_list(t.name)i,${H}index_info(i.name)ii ${q} i."unique"=1 AND ii.name=c.name AND(${k} count(*) FROM ${H}index_info(i.name))=1)uq FROM ${V}list()t,${V}info(t.name)c ${q} t.schema='main'AND t.type IN('table','view')AND t.name IN(${ta(t)})ORDER BY t.name,c.name`,t),$,m,n,N,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,_)},ct=(a,t,n,e,i)=>rt(a,n,async(a,n=[])=>await A((e,i)=>t.all(a,n,(a,t)=>a?i(a):e(t))),a=>((a,t,n)=>(a.on(t,n),()=>a.off(t,n)))(t,"change",(t,n,e)=>a(e)),a=>a(),e,i,_,3,t);export{ct as createSqlite3Persister};
1
+ const a=a=>typeof a,t="tinybase",n="",e=",",i=a(n),s="true",r=(a,t,n)=>a.replace(t,n),c=Promise,o=a=>(t,n,e)=>a(t)?e?.():n(t),l=globalThis,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=o(w),f=o(u),E=t=>a(t)==i,m=a=>Array.isArray(a),N=a=>a.length,$=a=>0==N(a),_=()=>{},A=a=>new c(a),h=async a=>c.all(a),O=(a,t)=>a?.has(t)??!1,p=a=>u(a)||0==(a=>a?.size??0)(a),g=a=>[...a?.values()??[]],T=a=>a.clear(),I=(a,t)=>a?.forEach(t),S=(a,t)=>a?.delete(t),D=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},R=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},b=(a,t)=>R(a,a=>{R(()=>t?.(a))}),L=async(a,t)=>{try{return await a()}finally{await t()}},C=(a,t)=>a.forEach(t),M=(a,t="")=>a.join(t),P=(a,t)=>a.map(t),F=(a,t)=>a.filter(t),x=(a,t=N(a))=>a.splice(0,t),B=(a,...t)=>a.push(...t),U="_",j="_id",k="SELECT",q="WHERE",J="TABLE",X="ALTER "+J,Y="FROM",z="DELETE "+Y,G=k+"*"+Y,H="pragma_",K="data_version",Q="schema_version",V="pragma_table_",W="CREATE "+J,Z=/\$tableName/g,aa=a=>M(P(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),ta=()=>"?",na=(a,t,n=[1])=>M(P(a,()=>t(n)),e),ea=(a,t=s)=>q+`(${ia(t,aa(a))})`,ia=(a,t)=>r(a,Z,t),sa=Object,ra=a=>sa.getPrototypeOf(a),ca=sa.entries,oa=a=>!w(a)&&v(ra(a),a=>a==sa.prototype||w(ra(a)),()=>!0),la=sa.keys,wa=sa.freeze,ua=(...a)=>sa.assign(sa.create(null),...a),ya=(a,t,n)=>(sa.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),da=(a=[])=>{const t=sa.create(null);return C(a,([a,n])=>ya(t,a,n)),t},va=(a,t)=>(delete a[t],a),fa=(a,t)=>C(la(a),n=>t(a[n],n)),Ea=(a,t)=>P(ca(a),([a,n])=>t(n,a)),ma=(a,t)=>{const n=da();return fa(a,(a,e)=>ya(n,e,t(a,e))),n},Na=a=>N(la(a)),$a=a=>oa(a)&&0==Na(a),_a=Map,Aa=a=>new _a(a),ha=(a,t)=>a?.get(t),Oa=(a,t)=>I(a,(a,n)=>t(n,a)),pa=(a,t)=>{const n=[];return Oa(a,(a,e)=>B(n,t(e,a))),n},ga=(a,t,n)=>u(n)?(S(a,t),a):a?.set(t,n),Ta=(a,t,n,e)=>{let i=ha(a,t);return O(a,t)?e?.(i):ga(a,t,i=n()),i},Ia=(a,t,n,e,i=0)=>f((n?Ta:ha)(a,t[i],i>N(t)-2?n:Aa),s=>{if(i>N(t)-2)return e?.(s)&&ga(a,t[i]),s;const r=Ia(s,t,n,e,i+1);return p(s)&&ga(a,t[i]),r}),Sa=a=>new Set(m(a)||u(a)?a:[a]),Da=(a,t)=>a?.add(t),Ra="ColumnName",ba="store",La="json",Ca=ba+"TableName",Ma=ba+"Id"+Ra,Pa=ba+Ra,Fa="autoLoadIntervalSeconds",xa="rowId"+Ra,Ba="tableId",Ua="tableName",ja="deleteEmptyColumns",ka="deleteEmptyTable",qa="condition",Ja={mode:La,[Fa]:1},Xa={load:0,save:0,[Ua]:t+"_values"},Ya=a=>m(a)?a:void 0,za=a=>d(a)||m(a),Ga=(a,t,n,e,i)=>{const s=Aa();return fa(a,(a,r)=>{const c=(w=ua(t,E(a)?{[n]:a}:a),o=sa.values(w),l=Na(t),o.slice(0,l));var o,l,w;y(c[0])||e(r,c[0])||(i(r,c[0]),ga(s,r,c))}),s},Ha=JSON.stringify,Ka=JSON.parse,Qa=a=>""===a?void 0:m(a)?P(a,Qa):oa(a)?ma(a,Qa):a,Va=/^\d+$/,Wa=Aa(),Za=Aa(),at=Aa(),tt=(a,t,e,i,s,r,c,o={},l=0,w=[])=>{let d,v,E,_,h,O=0,g=0,T=0,M=0,U=0,j=0,k=0,q=0,J=0;const X={},Y=o.destroy;Ta(Wa,w,()=>0),Ta(Za,w,()=>[]),ga(at,w,(ha(at,w)??0)+1);const z=Aa(),[G,H,K,Q,V]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!$a(a)||!$a(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!$a(a)||!$a(t),t.setContent]:D(0))(c,a,l),[W,Z,aa]=(a=>{let t;const[e,i]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{Va.test(t)&&N(a)<1e3&&B(a,t)}]})(),s=Aa(),r=(a,e,i,r)=>{let c,o=!1;if(C(((a,t=[n])=>{const e=[],i=(a,n)=>n==N(t)?B(e,a):y(t[n])?I(a,a=>i(a,n+1)):C([t[n],null],t=>i(ha(a,t),n+1));return i(a,0),e})(e,i),n=>I(n,n=>{const e=()=>ha(s,n)[0](t,...i??[],...r);a?(a=>{try{return a()}catch(a){(a=>{o||(c=a),o=!0})?.(a)}})(e):e()})),o)throw c};return[(i,r,c,o=[],l=()=>[])=>{t??=a();const w=e(1);return ga(s,w,[i,r,c,o,l]),Da(Ia(r,c??[n],Sa),w),w},(a,t,...n)=>r(!1,a,t,n),a=>f(ha(s,a),([,t,e])=>(Ia(t,e??[n],void 0,t=>(S(t,a),p(t)?1:0)),ga(s,a),i(a),e)),a=>f(ha(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const c=N(r);c==N(n)?a(t,...r,...i(r)):y(n[c])?C(e[c]?.(...r)??[],a=>s(...r,a)):s(...r,n[c])};s()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>ma),ta=a=>{a!=O&&(O=a,Z(z,void 0,O))},na=()=>{ha(at,w)||ha(Wa,w)||!$(ha(Za,w)??[])||(ga(Wa,w),ga(Za,w),ga(at,w))},ea=t=>{(G&&m(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ia=async()=>{va()&&a.__?.[0]?.()&&await ua()},sa=a=>L(()=>v=a,()=>{v==a&&(v=void 0)}),ra=async a=>(2!=O&&(await L(async()=>{ta(1),g++,await Ea(()=>R(async()=>{const n=await t();m(n)?ea(n):u(n)&&a?V(a):u(n)||D(1,n)},t=>{r?.(t),a&&V(a)}))},()=>ta(0)),await ia()),ma),ca=async()=>{const a=k;k=0,a&&a==M&&!J&&(2==O?k=a:await ra())},oa=async a=>{const t=++M;let n=!0;if(await la(!0),t==M&&!J){const e=R(async()=>{const a=await i(async(a,e)=>{if(t==M&&!J)if(e||a){const t=n||2==O||!!j;U++,t&&j++,await L(async()=>{ta(1),g++,await(t?Ea(()=>ea(e??a)):(()=>{try{return ea(e??a)}finally{ta(0)}})())},()=>{t&&j--,--U||ta(0)}),U||await ia()}else 2==O?k=t:await ra()});t!=M||J?u(a)||await s(a):d=a},r);await sa(e),t!=M||J||await L(()=>ra(a),()=>{n=!1})}return ma},la=async(a=!1)=>{k=0,a||M++;const t=v,n=d;return d=void 0,await sa(L(async()=>{await t},async()=>{u(n)||await R(()=>s(n),r)})),ma},ua=async a=>(1!=O&&await L(()=>L(async()=>{ta(2),T++,await Ea(()=>R(()=>e(H,a),r))},()=>ta(0)),ca),ma),ya=async()=>{const t=++q;return await da(!0),t!=q||J||(await ua(),t!=q||J||(E=a.addDidFinishTransactionListener(()=>{if(t==q&&!J){const a=K();Q(a)&&R(()=>ua(a))}}))),ma},da=async(t=!1)=>{t||q++;const n=E;return E=void 0,u(n)||a.delListener(n),ma},va=()=>!u(E),fa=async(a=!1)=>{const[t,n]=a?[da,la]:[la,da];return await L(()=>t(),async()=>{await n()}),ma},Ea=async(...a)=>{let t,n=!1;const e=A(e=>$(a)?e():B(ha(Za,w),...P(a,(i,s)=>{const c=s==N(a)-1;return[async()=>{let a;h=A(t=>a=t),await L(async()=>{try{await R(i,r)}catch(a){n||(n=!0,t=a)}c&&e()},()=>{h=void 0,a()})},c?e:void 0,X]})));if(await(async()=>{if(!ha(Wa,w)){ga(Wa,w,1);const a=ha(Za,w);let t=0;await L(async()=>{for(;t<N(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{x(a,t),ga(Wa,w,0),na()})}})(),await e,n)throw t;return ma},ma={load:ra,startAutoLoad:oa,stopAutoLoad:la,isAutoLoading:()=>!u(d),save:ua,startAutoSave:ya,stopAutoSave:da,isAutoSaving:va,startAutoPersisting:async(a,t=!1)=>{const[n,e,i,s]=t?[ya,oa,da,la]:[oa,ya,la,da],r=n(a),c=t?q:M;await r;const o=e(a),l=t?M:q;try{await o}catch(a){throw l==(t?M:q)&&await b(s),c==(t?q:M)&&await b(i),a}return ma},stopAutoPersisting:fa,getStatus:()=>O,addStatusListener:a=>W(a,z),delListener:t=>(aa(t),a),schedule:Ea,getStore:()=>a,getStats:()=>({loads:g,saves:T}),...o,destroy:async()=>(u(_)&&(J=1,_=(async()=>{const a=ha(Za,w),t=F(a,([,a,t])=>t!=X||(a?.(),!1)),n=h;x(a),B(a,...t),await L(()=>L(()=>L(fa,()=>n),()=>Y?.()),()=>{const a=(ha(at,w)??1)-1;ga(at,w,a||void 0),na()})})()),await _,ma)};return wa(ma)},nt=new l.TextEncoder,et=(a,n,i,r,c,o=it,l,w,y)=>{const d=Aa(),v=Aa();let f=a;return[async()=>{T(d),T(v),C(await i(f,n),({tn:a,cn:t,uq:n})=>{Da(Ta(d,a,Sa),t),n&&Da(Ta(v,a,Sa),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:Sa(e);return((a,t)=>O(ha(d,a),t))(a,t)?da(F(P(await f(G+aa(a)+ea(a,n)),a=>{const n=a[t],e=w?ma(va(a,t),w):va(a,t);return[n,u(i)?e:da(F(Ea(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||O(i,a))(a)))]}),a=>!u(a[0])&&!$a(a[1]))):{}},async(a,n,i,w,y,E=!1,m=s,N)=>{const _=u(N)?void 0:Sa(N),A=a=>u(_)||O(_,a),p=Sa();fa(i??{},a=>C(F(la(a??{}),A),a=>Da(p,a)));const T=g(p);if(u(_)&&!E&&y&&m==s&&$(T)&&O(d,a))return await f("DROP "+J+aa(a)),ga(d,a),void ga(v,a);const I=ha(d,a),D=Sa(F(g(I),a=>a==n||A(a)));if(!$(T))if(O(d,a)){if(await h(P([n,...T],async t=>{S(D,t)||(await f(X+aa(a)+"ADD"+aa(t)+r),Da(I,t))})),o==it&&!O(ha(v,a),n)){const e=t+"_pk_"+(a=>{let t=2166136261;return C(nt.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(Ha([a,n]));await f("CREATE UNIQUE INDEX IF NOT EXISTS"+aa(e)+"ON"+aa(a)+`(${aa(n)})`),Da(Ta(v,a,Sa),n)}}else await f(W+aa(a)+`(${aa(n)}${r} PRIMARY KEY${M(P(T,a=>e+aa(a)+r))});`),ga(d,a,Sa([n,...T])),ga(v,a,Sa([n]));if(await h([...!E&&w?P(g(D),async t=>{t!=n&&(await f(X+aa(a)+"DROP"+aa(t)),S(I,t))}):[]]),E)u(i)?u(_)&&await f(z+aa(a)+ea(a,m)):await h(Ea(i,async(t,e)=>{if(u(t))await f(z+aa(a)+ea(a,m)+`AND(${aa(n)}=${c([1])})`,[e]);else if(!$(T)){const i=F(la(t),A);$(i)||await o(f,a,n,i,{[e]:P(i,a=>l?l(t[a]):t[a])},c,I)}}));else if($(T))u(_)&&O(d,a)&&await f(z+aa(a)+ea(a,m));else{const t=F(g(ha(d,a)),a=>a!=n&&A(a)),e=da(),s=[];fa(i??{},(a,n)=>{ya(e,n,P(t,t=>l?l(a?.[t]):a?.[t])),B(s,n)}),await o(f,a,n,t,e,c,I),await f(z+aa(a)+ea(a,m)+`AND${aa(n)}NOT IN(${na(s,c)})`,s)}},async t=>{if(y)return await y(async a=>{const n=f;return f=a,await L(t,()=>{f=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await R(()=>a("ROLLBACK")),t}}]},it=async(a,t,n,i,s,r)=>{const c=[1];await a("INSERT INTO"+aa(t)+"("+((...a)=>M(P(a,aa),e))(n,...i)+")VALUES"+M(Ea(s,a=>"("+r(c)+","+na(a,r,c)+")"),e)+"ON CONFLICT("+aa(n)+")DO UPDATE SET"+M(P(i,a=>aa(a)+"=excluded."+aa(a)),e),Ea(s,(a,t)=>[t,...P(a,a=>a??null)]).flat())},st=(a,t,n,e,i,s,r,[c,o,l],w,y,d,v,f,E,m,N,$,_)=>{const[A,h,O,p]=et(t,w,y,f,E,m,void 0,void 0,_);return tt(a,()=>p(async()=>{return await A(),a=(await h(c,o))[U]?.[l]??"null",Qa(Ka(a));var a}),a=>p(async()=>{var t;await A(),await O(c,o,{[U]:{[l]:(t=a()??null,Ha(t,(a,t)=>u(t)?"":t))}},!0,!0)}),n,e,i,r,{[v]:()=>d,destroy:s},0,d)},rt=(a,t,n,e,i,s,r,[c,o,[l,w,y,d,v]],f,E,m,N,$,_,A,O,p,g)=>{const[T,I,S,D]=et(t,f,E,$,_,A,O,p,g),R=(a,t)=>h(pa(o,async([n,e,i,s,r],c)=>{var o,l;t&&(o=a,l=c,!sa.hasOwn(o,l))||await S(n,e,a[c],i,s,t,r)})),b=(a,t,n)=>da(1==n?F(Ea(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):F(P(t,t=>[t,a[t]]),([,a])=>!u(a))),L=async(a,t)=>w?await S(y,j,{[U]:u(v)?a:b(a,v,t)},!0,!0,t,void 0,v):null;return tt(a,()=>D(async()=>{await T();const a=await(async()=>da(F(await h(pa(c,async([a,t,n],e)=>[a,await I(e,t,n)])),a=>!$a(a[1]))))(),t=await(async()=>l?(await I(y,j,void 0,d))[U]:{})();return $a(a)&&u(t)?void 0:[a,t]}),(a,t)=>D(async()=>{if(await T(),u(t)){const[t,n]=a();await R(t),await L(n)}else await R(t[0],!0),await L(t[1],!0)}),n,e,i,r,{[N]:()=>m,destroy:s},0,m)},ct=(a,e,i,r,o,l,y,v,f,m,N="getDb",$,_)=>{let A,h,p;const T=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,l),[I,S,R,C]=(a=>{const n=(a=>ua(Ja,E(a)?{[Ca]:a}:a??{}))(a),e=n[Fa];if(n.mode==La){const a=n[Ca]??t;return[1,e,[a,n[Ma]??j,n[Pa]??ba],Sa(a)]}const{tables:{load:i={},save:r={}}={},values:c={}}=n,o=ua(Xa,c),{load:l,save:w}=o,u=[za(l),za(w),o[Ua],Ya(l),Ya(w)],y=u[2],d=Sa(y),v=Sa(y),f=Ga(i,{[Ba]:null,[xa]:j,[qa]:s},Ba,a=>O(v,a),a=>Da(d,a)),m=Ga(r,{[Ua]:null,[xa]:j,[ja]:0,[ka]:0,[qa]:null},Ua,(a,t)=>O(v,t),(a,t)=>Da(d,t));return Oa(m,(a,t)=>t[4]??=ha(f,t[0])?.[2]??s),[0,e,[f,m,u],d]})(e);return!I&&a.isMergeable()&&D(0),(I?st:rt)(a,T,a=>{let t,n,e=1,i=0,s=0;const l=async(t=!0)=>{const[{d:n,s:i,c:r}]=await T(k+` ${K} d,${Q} s,TOTAL_CHANGES() c FROM ${H}${K} JOIN ${H}${Q}`);if(e&&(n!=A||i!=h||r!=p)){const c=t&&!s&&!w(A);A=n,h=i,p=r,c&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const c=L(()=>b(async()=>{for(i?r&&await l():(await l(!1),i=1);e&&s;)s=0,await l(!1),e&&(await a(),await l())},y),()=>{n==c&&(n=void 0),e&&(s?v():e&&u(t)&&(t=setInterval(()=>v(!0),1e3*S)))});return n=c,c},f=r(a=>{e&&O(C,a)&&(s=1,d(),c.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,s=0,d(),await L(async()=>await n,async()=>{A=h=p=null,await o(f)})})},a=>a(),y,v,f,R,g(C),async(a,t)=>await a(k+` t.name tn,c.name cn,c.pk OR EXISTS(${k} 1 FROM ${H}index_list(t.name)i,${H}index_info(i.name)ii ${q} i."unique"=1 AND ii.name=c.name AND(${k} count(*) FROM ${H}index_info(i.name))=1)uq FROM ${V}list()t,${V}info(t.name)c ${q} t.schema='main'AND t.type IN('table','view')AND t.name IN(${na(t,ta)})ORDER BY t.name,c.name`,t),m,N,n,ta,$,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,_)},ot=(a,t,n,e,i)=>ct(a,n,async(a,n=[])=>await A((e,i)=>t.all(a,n,(a,t)=>a?i(a):e(t))),a=>((a,t,n)=>(a.on(t,n),()=>a.off(t,n)))(t,"change",(t,n,e)=>a(e)),a=>a(),e,i,_,3,t);export{ot as createSqlite3Persister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",n="",e=",",i=a(n),s="true",r=(a,t,n)=>a.replace(t,n),c=Promise,o=a=>(t,n,e)=>a(t)?e?.():n(t),l=globalThis,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=o(w),f=o(u),E=t=>a(t)==i,$=a=>Array.isArray(a),m=a=>a.length,N=a=>0==m(a),_=()=>{},A=a=>new c(a),h=async a=>c.all(a),O=(a,t)=>a?.has(t)??!1,p=a=>u(a)||0==(a=>a?.size??0)(a),g=a=>[...a?.values()??[]],T=a=>a.clear(),I=(a,t)=>a?.forEach(t),S=(a,t)=>a?.delete(t),D=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},R=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},b=(a,t)=>R(a,a=>{R(()=>t?.(a))}),L=async(a,t)=>{try{return await a()}finally{await t()}},C=(a,t)=>a.forEach(t),M=(a,t="")=>a.join(t),P=(a,t)=>a.map(t),F=(a,t)=>a.filter(t),x=(a,t=m(a))=>a.splice(0,t),B=(a,...t)=>a.push(...t),U="_",j="_id",k="SELECT",q="WHERE",J="TABLE",X="ALTER "+J,Y="FROM",z="DELETE "+Y,G=k+"*"+Y,H="pragma_",K="data_version",Q="schema_version",V="pragma_table_",W="CREATE "+J,Z=/\$tableName/g,aa=a=>M(P(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),ta=(a,t=[1])=>M(P(a,()=>"$"+t[0]++),e),na=(a,t=s)=>q+`(${ea(t,aa(a))})`,ea=(a,t)=>r(a,Z,t),ia=Object,sa=a=>ia.getPrototypeOf(a),ra=ia.entries,ca=a=>!w(a)&&v(sa(a),a=>a==ia.prototype||w(sa(a)),()=>!0),oa=ia.keys,la=ia.freeze,wa=(...a)=>ia.assign(ia.create(null),...a),ua=(a,t,n)=>(ia.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),ya=(a=[])=>{const t=ia.create(null);return C(a,([a,n])=>ua(t,a,n)),t},da=(a,t)=>(delete a[t],a),va=(a,t)=>C(oa(a),n=>t(a[n],n)),fa=(a,t)=>P(ra(a),([a,n])=>t(n,a)),Ea=(a,t)=>{const n=ya();return va(a,(a,e)=>ua(n,e,t(a,e))),n},$a=a=>m(oa(a)),ma=a=>ca(a)&&0==$a(a),Na=Map,_a=a=>new Na(a),Aa=(a,t)=>a?.get(t),ha=(a,t)=>I(a,(a,n)=>t(n,a)),Oa=(a,t)=>{const n=[];return ha(a,(a,e)=>B(n,t(e,a))),n},pa=(a,t,n)=>u(n)?(S(a,t),a):a?.set(t,n),ga=(a,t,n,e)=>{let i=Aa(a,t);return O(a,t)?e?.(i):pa(a,t,i=n()),i},Ta=(a,t,n,e,i=0)=>f((n?ga:Aa)(a,t[i],i>m(t)-2?n:_a),s=>{if(i>m(t)-2)return e?.(s)&&pa(a,t[i]),s;const r=Ta(s,t,n,e,i+1);return p(s)&&pa(a,t[i]),r}),Ia=a=>new Set($(a)||u(a)?a:[a]),Sa=(a,t)=>a?.add(t),Da="ColumnName",Ra="store",ba="json",La=Ra+"TableName",Ca=Ra+"Id"+Da,Ma=Ra+Da,Pa="autoLoadIntervalSeconds",Fa="rowId"+Da,xa="tableId",Ba="tableName",Ua="deleteEmptyColumns",ja="deleteEmptyTable",ka="condition",qa={mode:ba,[Pa]:1},Ja={load:0,save:0,[Ba]:t+"_values"},Xa=a=>$(a)?a:void 0,Ya=a=>d(a)||$(a),za=(a,t,n,e,i)=>{const s=_a();return va(a,(a,r)=>{const c=(w=wa(t,E(a)?{[n]:a}:a),o=ia.values(w),l=$a(t),o.slice(0,l));var o,l,w;y(c[0])||e(r,c[0])||(i(r,c[0]),pa(s,r,c))}),s},Ga=JSON.stringify,Ha=JSON.parse,Ka=a=>""===a?void 0:$(a)?P(a,Ka):ca(a)?Ea(a,Ka):a,Qa=/^\d+$/,Va=_a(),Wa=_a(),Za=_a(),at=(a,t,e,i,s,r,c,o={},l=0,w=[])=>{let d,v,E,_,h,O=0,g=0,T=0,M=0,U=0,j=0,k=0,q=0,J=0;const X={},Y=o.destroy;ga(Va,w,()=>0),ga(Wa,w,()=>[]),pa(Za,w,(Aa(Za,w)??0)+1);const z=_a(),[G,H,K,Q,V]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!ma(a)||!ma(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!ma(a)||!ma(t),t.setContent]:D(0))(c,a,l),[W,Z,aa]=(a=>{let t;const[e,i]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{Qa.test(t)&&m(a)<1e3&&B(a,t)}]})(),s=_a(),r=(a,e,i,r)=>{let c,o=!1;if(C(((a,t=[n])=>{const e=[],i=(a,n)=>n==m(t)?B(e,a):y(t[n])?I(a,a=>i(a,n+1)):C([t[n],null],t=>i(Aa(a,t),n+1));return i(a,0),e})(e,i),n=>I(n,n=>{const e=()=>Aa(s,n)[0](t,...i??[],...r);a?(a=>{try{return a()}catch(a){(a=>{o||(c=a),o=!0})?.(a)}})(e):e()})),o)throw c};return[(i,r,c,o=[],l=()=>[])=>{t??=a();const w=e(1);return pa(s,w,[i,r,c,o,l]),Sa(Ta(r,c??[n],Ia),w),w},(a,t,...n)=>r(!1,a,t,n),a=>f(Aa(s,a),([,t,e])=>(Ta(t,e??[n],void 0,t=>(S(t,a),p(t)?1:0)),pa(s,a),i(a),e)),a=>f(Aa(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const c=m(r);c==m(n)?a(t,...r,...i(r)):y(n[c])?C(e[c]?.(...r)??[],a=>s(...r,a)):s(...r,n[c])};s()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>$a),ta=a=>{a!=O&&(O=a,Z(z,void 0,O))},na=()=>{Aa(Za,w)||Aa(Va,w)||!N(Aa(Wa,w)??[])||(pa(Va,w),pa(Wa,w),pa(Za,w))},ea=t=>{(G&&$(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ia=async()=>{va()&&a.__?.[0]?.()&&await ua()},sa=a=>L(()=>v=a,()=>{v==a&&(v=void 0)}),ra=async a=>(2!=O&&(await L(async()=>{ta(1),g++,await Ea(()=>R(async()=>{const n=await t();$(n)?ea(n):u(n)&&a?V(a):u(n)||D(1,n)},t=>{r?.(t),a&&V(a)}))},()=>ta(0)),await ia()),$a),ca=async()=>{const a=k;k=0,a&&a==M&&!J&&(2==O?k=a:await ra())},oa=async a=>{const t=++M;let n=!0;if(await wa(!0),t==M&&!J){const e=R(async()=>{const a=await i(async(a,e)=>{if(t==M&&!J)if(e||a){const t=n||2==O||!!j;U++,t&&j++,await L(async()=>{ta(1),g++,await(t?Ea(()=>ea(e??a)):(()=>{try{return ea(e??a)}finally{ta(0)}})())},()=>{t&&j--,--U||ta(0)}),U||await ia()}else 2==O?k=t:await ra()});t!=M||J?u(a)||await s(a):d=a},r);await sa(e),t!=M||J||await L(()=>ra(a),()=>{n=!1})}return $a},wa=async(a=!1)=>{k=0,a||M++;const t=v,n=d;return d=void 0,await sa(L(async()=>{await t},async()=>{u(n)||await R(()=>s(n),r)})),$a},ua=async a=>(1!=O&&await L(()=>L(async()=>{ta(2),T++,await Ea(()=>R(()=>e(H,a),r))},()=>ta(0)),ca),$a),ya=async()=>{const t=++q;return await da(!0),t!=q||J||(await ua(),t!=q||J||(E=a.addDidFinishTransactionListener(()=>{if(t==q&&!J){const a=K();Q(a)&&R(()=>ua(a))}}))),$a},da=async(t=!1)=>{t||q++;const n=E;return E=void 0,u(n)||a.delListener(n),$a},va=()=>!u(E),fa=async(a=!1)=>{const[t,n]=a?[da,wa]:[wa,da];return await L(()=>t(),async()=>{await n()}),$a},Ea=async(...a)=>{let t,n=!1;const e=A(e=>N(a)?e():B(Aa(Wa,w),...P(a,(i,s)=>{const c=s==m(a)-1;return[async()=>{let a;h=A(t=>a=t),await L(async()=>{try{await R(i,r)}catch(a){n||(n=!0,t=a)}c&&e()},()=>{h=void 0,a()})},c?e:void 0,X]})));if(await(async()=>{if(!Aa(Va,w)){pa(Va,w,1);const a=Aa(Wa,w);let t=0;await L(async()=>{for(;t<m(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{x(a,t),pa(Va,w,0),na()})}})(),await e,n)throw t;return $a},$a={load:ra,startAutoLoad:oa,stopAutoLoad:wa,isAutoLoading:()=>!u(d),save:ua,startAutoSave:ya,stopAutoSave:da,isAutoSaving:va,startAutoPersisting:async(a,t=!1)=>{const[n,e,i,s]=t?[ya,oa,da,wa]:[oa,ya,wa,da],r=n(a),c=t?q:M;await r;const o=e(a),l=t?M:q;try{await o}catch(a){throw l==(t?M:q)&&await b(s),c==(t?q:M)&&await b(i),a}return $a},stopAutoPersisting:fa,getStatus:()=>O,addStatusListener:a=>W(a,z),delListener:t=>(aa(t),a),schedule:Ea,getStore:()=>a,getStats:()=>({loads:g,saves:T}),...o,destroy:async()=>(u(_)&&(J=1,_=(async()=>{const a=Aa(Wa,w),t=F(a,([,a,t])=>t!=X||(a?.(),!1)),n=h;x(a),B(a,...t),await L(()=>L(()=>L(fa,()=>n),()=>Y?.()),()=>{const a=(Aa(Za,w)??1)-1;pa(Za,w,a||void 0),na()})})()),await _,$a)};return la($a)},tt=new l.TextEncoder,nt=(a,n,i,r,c=et,o,l,w)=>{const y=_a(),d=_a();let v=a;return[async()=>{T(y),T(d),C(await i(v,n),({tn:a,cn:t,uq:n})=>{Sa(ga(y,a,Ia),t),n&&Sa(ga(d,a,Ia),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:Ia(e);return((a,t)=>O(Aa(y,a),t))(a,t)?ya(F(P(await v(G+aa(a)+na(a,n)),a=>{const n=a[t],e=l?Ea(da(a,t),l):da(a,t);return[n,u(i)?e:ya(F(fa(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||O(i,a))(a)))]}),a=>!u(a[0])&&!ma(a[1]))):{}},async(a,n,i,l,w,f=!1,E=s,$)=>{const m=u($)?void 0:Ia($),_=a=>u(m)||O(m,a),A=Ia();va(i??{},a=>C(F(oa(a??{}),_),a=>Sa(A,a)));const p=g(A);if(u(m)&&!f&&w&&E==s&&N(p)&&O(y,a))return await v("DROP "+J+aa(a)),pa(y,a),void pa(d,a);const T=Aa(y,a),I=Ia(F(g(T),a=>a==n||_(a)));if(!N(p))if(O(y,a)){if(await h(P([n,...p],async t=>{S(I,t)||(await v(X+aa(a)+"ADD"+aa(t)+r),Sa(T,t))})),c==et&&!O(Aa(d,a),n)){const e=t+"_pk_"+(a=>{let t=2166136261;return C(tt.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(Ga([a,n]));await v("CREATE UNIQUE INDEX IF NOT EXISTS"+aa(e)+"ON"+aa(a)+`(${aa(n)})`),Sa(ga(d,a,Ia),n)}}else await v(W+aa(a)+`(${aa(n)}${r} PRIMARY KEY${M(P(p,a=>e+aa(a)+r))});`),pa(y,a,Ia([n,...p])),pa(d,a,Ia([n]));if(await h([...!f&&l?P(g(I),async t=>{t!=n&&(await v(X+aa(a)+"DROP"+aa(t)),S(T,t))}):[]]),f)u(i)?u(m)&&await v(z+aa(a)+na(a,E)):await h(fa(i,async(t,e)=>{if(u(t))await v(z+aa(a)+na(a,E)+`AND(${aa(n)}=$1)`,[e]);else if(!N(p)){const i=F(oa(t),_);N(i)||await c(v,a,n,i,{[e]:P(i,a=>o?o(t[a]):t[a])},T)}}));else if(N(p))u(m)&&O(y,a)&&await v(z+aa(a)+na(a,E));else{const t=F(g(Aa(y,a)),a=>a!=n&&_(a)),e=ya(),s=[];va(i??{},(a,n)=>{ua(e,n,P(t,t=>o?o(a?.[t]):a?.[t])),B(s,n)}),await c(v,a,n,t,e,T),await v(z+aa(a)+na(a,E)+`AND${aa(n)}NOT IN(${ta(s)})`,s)}},async t=>{if(w)return await w(async a=>{const n=v;return v=a,await L(t,()=>{v=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await R(()=>a("ROLLBACK")),t}}]},et=async(a,t,n,i,s)=>{const r=[1];await a("INSERT INTO"+aa(t)+"("+((...a)=>M(P(a,aa),e))(n,...i)+")VALUES"+M(fa(s,a=>"($"+r[0]+++","+ta(a,r)+")"),e)+"ON CONFLICT("+aa(n)+")DO UPDATE SET"+M(P(i,a=>aa(a)+"=excluded."+aa(a)),e),fa(s,(a,t)=>[t,...P(a,a=>a??null)]).flat())},it=(a,t,n,e,i,s,r,[c,o,l],w,y,d,v,f,E,$,m,N)=>{const[_,A,h,O]=nt(t,w,y,f,E,void 0,void 0,N);return at(a,()=>O(async()=>{return await _(),a=(await A(c,o))[U]?.[l]??"null",Ka(Ha(a));var a}),a=>O(async()=>{var t;await _(),await h(c,o,{[U]:{[l]:(t=a()??null,Ga(t,(a,t)=>u(t)?"":t))}},!0,!0)}),n,e,i,r,{[v]:()=>d,destroy:s},0,d)},st=(a,t,n,e,i,s,r,[c,o,[l,w,y,d,v]],f,E,$,m,N,_,A,O,p)=>{const[g,T,I,S]=nt(t,f,E,N,_,A,O,p),D=(a,t)=>h(Oa(o,async([n,e,i,s,r],c)=>{var o,l;t&&(o=a,l=c,!ia.hasOwn(o,l))||await I(n,e,a[c],i,s,t,r)})),R=(a,t,n)=>ya(1==n?F(fa(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):F(P(t,t=>[t,a[t]]),([,a])=>!u(a))),b=async(a,t)=>w?await I(y,j,{[U]:u(v)?a:R(a,v,t)},!0,!0,t,void 0,v):null;return at(a,()=>S(async()=>{await g();const a=await(async()=>ya(F(await h(Oa(c,async([a,t,n],e)=>[a,await T(e,t,n)])),a=>!ma(a[1]))))(),t=await(async()=>l?(await T(y,j,void 0,d))[U]:{})();return ma(a)&&u(t)?void 0:[a,t]}),(a,t)=>S(async()=>{if(await g(),u(t)){const[t,n]=a();await D(t),await b(n)}else await D(t[0],!0),await b(t[1],!0)}),n,e,i,r,{[m]:()=>$,destroy:s},0,$)},rt=(a,e,i,r,o,l,y,v,f,$,m="getDb",N,_)=>{let A,h,p;const T=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,l),[I,S,R,C]=(a=>{const n=(a=>wa(qa,E(a)?{[La]:a}:a??{}))(a),e=n[Pa];if(n.mode==ba){const a=n[La]??t;return[1,e,[a,n[Ca]??j,n[Ma]??Ra],Ia(a)]}const{tables:{load:i={},save:r={}}={},values:c={}}=n,o=wa(Ja,c),{load:l,save:w}=o,u=[Ya(l),Ya(w),o[Ba],Xa(l),Xa(w)],y=u[2],d=Ia(y),v=Ia(y),f=za(i,{[xa]:null,[Fa]:j,[ka]:s},xa,a=>O(v,a),a=>Sa(d,a)),$=za(r,{[Ba]:null,[Fa]:j,[Ua]:0,[ja]:0,[ka]:null},Ba,(a,t)=>O(v,t),(a,t)=>Sa(d,t));return ha($,(a,t)=>t[4]??=Aa(f,t[0])?.[2]??s),[0,e,[f,$,u],d]})(e);return!I&&a.isMergeable()&&D(0),(I?it:st)(a,T,a=>{let t,n,e=1,i=0,s=0;const l=async(t=!0)=>{const[{d:n,s:i,c:r}]=await T(k+` ${K} d,${Q} s,TOTAL_CHANGES() c FROM ${H}${K} JOIN ${H}${Q}`);if(e&&(n!=A||i!=h||r!=p)){const c=t&&!s&&!w(A);A=n,h=i,p=r,c&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const c=L(()=>b(async()=>{for(i?r&&await l():(await l(!1),i=1);e&&s;)s=0,await l(!1),e&&(await a(),await l())},y),()=>{n==c&&(n=void 0),e&&(s?v():e&&u(t)&&(t=setInterval(()=>v(!0),1e3*S)))});return n=c,c},f=r(a=>{e&&O(C,a)&&(s=1,d(),c.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,s=0,d(),await L(async()=>await n,async()=>{A=h=p=null,await o(f)})})},a=>a(),y,v,f,R,g(C),async(a,t)=>await a(k+` t.name tn,c.name cn,c.pk OR EXISTS(${k} 1 FROM ${H}index_list(t.name)i,${H}index_info(i.name)ii ${q} i."unique"=1 AND ii.name=c.name AND(${k} count(*) FROM ${H}index_info(i.name))=1)uq FROM ${V}list()t,${V}info(t.name)c ${q} t.schema='main'AND t.type IN('table','view')AND t.name IN(${ta(t)})ORDER BY t.name,c.name`,t),$,m,n,N,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,_)},ct=(a,t,n,e,i)=>rt(a,n,async(a,n=[])=>await A((e,i)=>t.all(a,n,(a,t)=>a?i(a):e(t))),a=>((a,t,n)=>(a.on(t,n),()=>a.off(t,n)))(t,"change",(t,n,e)=>a(e)),a=>a(),e,i,_,3,t);export{ct as createSqlite3Persister};
1
+ const a=a=>typeof a,t="tinybase",n="",e=",",i=a(n),s="true",r=(a,t,n)=>a.replace(t,n),c=Promise,o=a=>(t,n,e)=>a(t)?e?.():n(t),l=globalThis,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=o(w),f=o(u),E=t=>a(t)==i,m=a=>Array.isArray(a),N=a=>a.length,$=a=>0==N(a),_=()=>{},A=a=>new c(a),h=async a=>c.all(a),O=(a,t)=>a?.has(t)??!1,p=a=>u(a)||0==(a=>a?.size??0)(a),g=a=>[...a?.values()??[]],T=a=>a.clear(),I=(a,t)=>a?.forEach(t),S=(a,t)=>a?.delete(t),D=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},R=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},b=(a,t)=>R(a,a=>{R(()=>t?.(a))}),L=async(a,t)=>{try{return await a()}finally{await t()}},C=(a,t)=>a.forEach(t),M=(a,t="")=>a.join(t),P=(a,t)=>a.map(t),F=(a,t)=>a.filter(t),x=(a,t=N(a))=>a.splice(0,t),B=(a,...t)=>a.push(...t),U="_",j="_id",k="SELECT",q="WHERE",J="TABLE",X="ALTER "+J,Y="FROM",z="DELETE "+Y,G=k+"*"+Y,H="pragma_",K="data_version",Q="schema_version",V="pragma_table_",W="CREATE "+J,Z=/\$tableName/g,aa=a=>M(P(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),ta=()=>"?",na=(a,t,n=[1])=>M(P(a,()=>t(n)),e),ea=(a,t=s)=>q+`(${ia(t,aa(a))})`,ia=(a,t)=>r(a,Z,t),sa=Object,ra=a=>sa.getPrototypeOf(a),ca=sa.entries,oa=a=>!w(a)&&v(ra(a),a=>a==sa.prototype||w(ra(a)),()=>!0),la=sa.keys,wa=sa.freeze,ua=(...a)=>sa.assign(sa.create(null),...a),ya=(a,t,n)=>(sa.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),da=(a=[])=>{const t=sa.create(null);return C(a,([a,n])=>ya(t,a,n)),t},va=(a,t)=>(delete a[t],a),fa=(a,t)=>C(la(a),n=>t(a[n],n)),Ea=(a,t)=>P(ca(a),([a,n])=>t(n,a)),ma=(a,t)=>{const n=da();return fa(a,(a,e)=>ya(n,e,t(a,e))),n},Na=a=>N(la(a)),$a=a=>oa(a)&&0==Na(a),_a=Map,Aa=a=>new _a(a),ha=(a,t)=>a?.get(t),Oa=(a,t)=>I(a,(a,n)=>t(n,a)),pa=(a,t)=>{const n=[];return Oa(a,(a,e)=>B(n,t(e,a))),n},ga=(a,t,n)=>u(n)?(S(a,t),a):a?.set(t,n),Ta=(a,t,n,e)=>{let i=ha(a,t);return O(a,t)?e?.(i):ga(a,t,i=n()),i},Ia=(a,t,n,e,i=0)=>f((n?Ta:ha)(a,t[i],i>N(t)-2?n:Aa),s=>{if(i>N(t)-2)return e?.(s)&&ga(a,t[i]),s;const r=Ia(s,t,n,e,i+1);return p(s)&&ga(a,t[i]),r}),Sa=a=>new Set(m(a)||u(a)?a:[a]),Da=(a,t)=>a?.add(t),Ra="ColumnName",ba="store",La="json",Ca=ba+"TableName",Ma=ba+"Id"+Ra,Pa=ba+Ra,Fa="autoLoadIntervalSeconds",xa="rowId"+Ra,Ba="tableId",Ua="tableName",ja="deleteEmptyColumns",ka="deleteEmptyTable",qa="condition",Ja={mode:La,[Fa]:1},Xa={load:0,save:0,[Ua]:t+"_values"},Ya=a=>m(a)?a:void 0,za=a=>d(a)||m(a),Ga=(a,t,n,e,i)=>{const s=Aa();return fa(a,(a,r)=>{const c=(w=ua(t,E(a)?{[n]:a}:a),o=sa.values(w),l=Na(t),o.slice(0,l));var o,l,w;y(c[0])||e(r,c[0])||(i(r,c[0]),ga(s,r,c))}),s},Ha=JSON.stringify,Ka=JSON.parse,Qa=a=>""===a?void 0:m(a)?P(a,Qa):oa(a)?ma(a,Qa):a,Va=/^\d+$/,Wa=Aa(),Za=Aa(),at=Aa(),tt=(a,t,e,i,s,r,c,o={},l=0,w=[])=>{let d,v,E,_,h,O=0,g=0,T=0,M=0,U=0,j=0,k=0,q=0,J=0;const X={},Y=o.destroy;Ta(Wa,w,()=>0),Ta(Za,w,()=>[]),ga(at,w,(ha(at,w)??0)+1);const z=Aa(),[G,H,K,Q,V]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!$a(a)||!$a(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!$a(a)||!$a(t),t.setContent]:D(0))(c,a,l),[W,Z,aa]=(a=>{let t;const[e,i]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{Va.test(t)&&N(a)<1e3&&B(a,t)}]})(),s=Aa(),r=(a,e,i,r)=>{let c,o=!1;if(C(((a,t=[n])=>{const e=[],i=(a,n)=>n==N(t)?B(e,a):y(t[n])?I(a,a=>i(a,n+1)):C([t[n],null],t=>i(ha(a,t),n+1));return i(a,0),e})(e,i),n=>I(n,n=>{const e=()=>ha(s,n)[0](t,...i??[],...r);a?(a=>{try{return a()}catch(a){(a=>{o||(c=a),o=!0})?.(a)}})(e):e()})),o)throw c};return[(i,r,c,o=[],l=()=>[])=>{t??=a();const w=e(1);return ga(s,w,[i,r,c,o,l]),Da(Ia(r,c??[n],Sa),w),w},(a,t,...n)=>r(!1,a,t,n),a=>f(ha(s,a),([,t,e])=>(Ia(t,e??[n],void 0,t=>(S(t,a),p(t)?1:0)),ga(s,a),i(a),e)),a=>f(ha(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const c=N(r);c==N(n)?a(t,...r,...i(r)):y(n[c])?C(e[c]?.(...r)??[],a=>s(...r,a)):s(...r,n[c])};s()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>ma),ta=a=>{a!=O&&(O=a,Z(z,void 0,O))},na=()=>{ha(at,w)||ha(Wa,w)||!$(ha(Za,w)??[])||(ga(Wa,w),ga(Za,w),ga(at,w))},ea=t=>{(G&&m(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ia=async()=>{va()&&a.__?.[0]?.()&&await ua()},sa=a=>L(()=>v=a,()=>{v==a&&(v=void 0)}),ra=async a=>(2!=O&&(await L(async()=>{ta(1),g++,await Ea(()=>R(async()=>{const n=await t();m(n)?ea(n):u(n)&&a?V(a):u(n)||D(1,n)},t=>{r?.(t),a&&V(a)}))},()=>ta(0)),await ia()),ma),ca=async()=>{const a=k;k=0,a&&a==M&&!J&&(2==O?k=a:await ra())},oa=async a=>{const t=++M;let n=!0;if(await la(!0),t==M&&!J){const e=R(async()=>{const a=await i(async(a,e)=>{if(t==M&&!J)if(e||a){const t=n||2==O||!!j;U++,t&&j++,await L(async()=>{ta(1),g++,await(t?Ea(()=>ea(e??a)):(()=>{try{return ea(e??a)}finally{ta(0)}})())},()=>{t&&j--,--U||ta(0)}),U||await ia()}else 2==O?k=t:await ra()});t!=M||J?u(a)||await s(a):d=a},r);await sa(e),t!=M||J||await L(()=>ra(a),()=>{n=!1})}return ma},la=async(a=!1)=>{k=0,a||M++;const t=v,n=d;return d=void 0,await sa(L(async()=>{await t},async()=>{u(n)||await R(()=>s(n),r)})),ma},ua=async a=>(1!=O&&await L(()=>L(async()=>{ta(2),T++,await Ea(()=>R(()=>e(H,a),r))},()=>ta(0)),ca),ma),ya=async()=>{const t=++q;return await da(!0),t!=q||J||(await ua(),t!=q||J||(E=a.addDidFinishTransactionListener(()=>{if(t==q&&!J){const a=K();Q(a)&&R(()=>ua(a))}}))),ma},da=async(t=!1)=>{t||q++;const n=E;return E=void 0,u(n)||a.delListener(n),ma},va=()=>!u(E),fa=async(a=!1)=>{const[t,n]=a?[da,la]:[la,da];return await L(()=>t(),async()=>{await n()}),ma},Ea=async(...a)=>{let t,n=!1;const e=A(e=>$(a)?e():B(ha(Za,w),...P(a,(i,s)=>{const c=s==N(a)-1;return[async()=>{let a;h=A(t=>a=t),await L(async()=>{try{await R(i,r)}catch(a){n||(n=!0,t=a)}c&&e()},()=>{h=void 0,a()})},c?e:void 0,X]})));if(await(async()=>{if(!ha(Wa,w)){ga(Wa,w,1);const a=ha(Za,w);let t=0;await L(async()=>{for(;t<N(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{x(a,t),ga(Wa,w,0),na()})}})(),await e,n)throw t;return ma},ma={load:ra,startAutoLoad:oa,stopAutoLoad:la,isAutoLoading:()=>!u(d),save:ua,startAutoSave:ya,stopAutoSave:da,isAutoSaving:va,startAutoPersisting:async(a,t=!1)=>{const[n,e,i,s]=t?[ya,oa,da,la]:[oa,ya,la,da],r=n(a),c=t?q:M;await r;const o=e(a),l=t?M:q;try{await o}catch(a){throw l==(t?M:q)&&await b(s),c==(t?q:M)&&await b(i),a}return ma},stopAutoPersisting:fa,getStatus:()=>O,addStatusListener:a=>W(a,z),delListener:t=>(aa(t),a),schedule:Ea,getStore:()=>a,getStats:()=>({loads:g,saves:T}),...o,destroy:async()=>(u(_)&&(J=1,_=(async()=>{const a=ha(Za,w),t=F(a,([,a,t])=>t!=X||(a?.(),!1)),n=h;x(a),B(a,...t),await L(()=>L(()=>L(fa,()=>n),()=>Y?.()),()=>{const a=(ha(at,w)??1)-1;ga(at,w,a||void 0),na()})})()),await _,ma)};return wa(ma)},nt=new l.TextEncoder,et=(a,n,i,r,c,o=it,l,w,y)=>{const d=Aa(),v=Aa();let f=a;return[async()=>{T(d),T(v),C(await i(f,n),({tn:a,cn:t,uq:n})=>{Da(Ta(d,a,Sa),t),n&&Da(Ta(v,a,Sa),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:Sa(e);return((a,t)=>O(ha(d,a),t))(a,t)?da(F(P(await f(G+aa(a)+ea(a,n)),a=>{const n=a[t],e=w?ma(va(a,t),w):va(a,t);return[n,u(i)?e:da(F(Ea(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||O(i,a))(a)))]}),a=>!u(a[0])&&!$a(a[1]))):{}},async(a,n,i,w,y,E=!1,m=s,N)=>{const _=u(N)?void 0:Sa(N),A=a=>u(_)||O(_,a),p=Sa();fa(i??{},a=>C(F(la(a??{}),A),a=>Da(p,a)));const T=g(p);if(u(_)&&!E&&y&&m==s&&$(T)&&O(d,a))return await f("DROP "+J+aa(a)),ga(d,a),void ga(v,a);const I=ha(d,a),D=Sa(F(g(I),a=>a==n||A(a)));if(!$(T))if(O(d,a)){if(await h(P([n,...T],async t=>{S(D,t)||(await f(X+aa(a)+"ADD"+aa(t)+r),Da(I,t))})),o==it&&!O(ha(v,a),n)){const e=t+"_pk_"+(a=>{let t=2166136261;return C(nt.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(Ha([a,n]));await f("CREATE UNIQUE INDEX IF NOT EXISTS"+aa(e)+"ON"+aa(a)+`(${aa(n)})`),Da(Ta(v,a,Sa),n)}}else await f(W+aa(a)+`(${aa(n)}${r} PRIMARY KEY${M(P(T,a=>e+aa(a)+r))});`),ga(d,a,Sa([n,...T])),ga(v,a,Sa([n]));if(await h([...!E&&w?P(g(D),async t=>{t!=n&&(await f(X+aa(a)+"DROP"+aa(t)),S(I,t))}):[]]),E)u(i)?u(_)&&await f(z+aa(a)+ea(a,m)):await h(Ea(i,async(t,e)=>{if(u(t))await f(z+aa(a)+ea(a,m)+`AND(${aa(n)}=${c([1])})`,[e]);else if(!$(T)){const i=F(la(t),A);$(i)||await o(f,a,n,i,{[e]:P(i,a=>l?l(t[a]):t[a])},c,I)}}));else if($(T))u(_)&&O(d,a)&&await f(z+aa(a)+ea(a,m));else{const t=F(g(ha(d,a)),a=>a!=n&&A(a)),e=da(),s=[];fa(i??{},(a,n)=>{ya(e,n,P(t,t=>l?l(a?.[t]):a?.[t])),B(s,n)}),await o(f,a,n,t,e,c,I),await f(z+aa(a)+ea(a,m)+`AND${aa(n)}NOT IN(${na(s,c)})`,s)}},async t=>{if(y)return await y(async a=>{const n=f;return f=a,await L(t,()=>{f=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await R(()=>a("ROLLBACK")),t}}]},it=async(a,t,n,i,s,r)=>{const c=[1];await a("INSERT INTO"+aa(t)+"("+((...a)=>M(P(a,aa),e))(n,...i)+")VALUES"+M(Ea(s,a=>"("+r(c)+","+na(a,r,c)+")"),e)+"ON CONFLICT("+aa(n)+")DO UPDATE SET"+M(P(i,a=>aa(a)+"=excluded."+aa(a)),e),Ea(s,(a,t)=>[t,...P(a,a=>a??null)]).flat())},st=(a,t,n,e,i,s,r,[c,o,l],w,y,d,v,f,E,m,N,$,_)=>{const[A,h,O,p]=et(t,w,y,f,E,m,void 0,void 0,_);return tt(a,()=>p(async()=>{return await A(),a=(await h(c,o))[U]?.[l]??"null",Qa(Ka(a));var a}),a=>p(async()=>{var t;await A(),await O(c,o,{[U]:{[l]:(t=a()??null,Ha(t,(a,t)=>u(t)?"":t))}},!0,!0)}),n,e,i,r,{[v]:()=>d,destroy:s},0,d)},rt=(a,t,n,e,i,s,r,[c,o,[l,w,y,d,v]],f,E,m,N,$,_,A,O,p,g)=>{const[T,I,S,D]=et(t,f,E,$,_,A,O,p,g),R=(a,t)=>h(pa(o,async([n,e,i,s,r],c)=>{var o,l;t&&(o=a,l=c,!sa.hasOwn(o,l))||await S(n,e,a[c],i,s,t,r)})),b=(a,t,n)=>da(1==n?F(Ea(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):F(P(t,t=>[t,a[t]]),([,a])=>!u(a))),L=async(a,t)=>w?await S(y,j,{[U]:u(v)?a:b(a,v,t)},!0,!0,t,void 0,v):null;return tt(a,()=>D(async()=>{await T();const a=await(async()=>da(F(await h(pa(c,async([a,t,n],e)=>[a,await I(e,t,n)])),a=>!$a(a[1]))))(),t=await(async()=>l?(await I(y,j,void 0,d))[U]:{})();return $a(a)&&u(t)?void 0:[a,t]}),(a,t)=>D(async()=>{if(await T(),u(t)){const[t,n]=a();await R(t),await L(n)}else await R(t[0],!0),await L(t[1],!0)}),n,e,i,r,{[N]:()=>m,destroy:s},0,m)},ct=(a,e,i,r,o,l,y,v,f,m,N="getDb",$,_)=>{let A,h,p;const T=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,l),[I,S,R,C]=(a=>{const n=(a=>ua(Ja,E(a)?{[Ca]:a}:a??{}))(a),e=n[Fa];if(n.mode==La){const a=n[Ca]??t;return[1,e,[a,n[Ma]??j,n[Pa]??ba],Sa(a)]}const{tables:{load:i={},save:r={}}={},values:c={}}=n,o=ua(Xa,c),{load:l,save:w}=o,u=[za(l),za(w),o[Ua],Ya(l),Ya(w)],y=u[2],d=Sa(y),v=Sa(y),f=Ga(i,{[Ba]:null,[xa]:j,[qa]:s},Ba,a=>O(v,a),a=>Da(d,a)),m=Ga(r,{[Ua]:null,[xa]:j,[ja]:0,[ka]:0,[qa]:null},Ua,(a,t)=>O(v,t),(a,t)=>Da(d,t));return Oa(m,(a,t)=>t[4]??=ha(f,t[0])?.[2]??s),[0,e,[f,m,u],d]})(e);return!I&&a.isMergeable()&&D(0),(I?st:rt)(a,T,a=>{let t,n,e=1,i=0,s=0;const l=async(t=!0)=>{const[{d:n,s:i,c:r}]=await T(k+` ${K} d,${Q} s,TOTAL_CHANGES() c FROM ${H}${K} JOIN ${H}${Q}`);if(e&&(n!=A||i!=h||r!=p)){const c=t&&!s&&!w(A);A=n,h=i,p=r,c&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const c=L(()=>b(async()=>{for(i?r&&await l():(await l(!1),i=1);e&&s;)s=0,await l(!1),e&&(await a(),await l())},y),()=>{n==c&&(n=void 0),e&&(s?v():e&&u(t)&&(t=setInterval(()=>v(!0),1e3*S)))});return n=c,c},f=r(a=>{e&&O(C,a)&&(s=1,d(),c.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,s=0,d(),await L(async()=>await n,async()=>{A=h=p=null,await o(f)})})},a=>a(),y,v,f,R,g(C),async(a,t)=>await a(k+` t.name tn,c.name cn,c.pk OR EXISTS(${k} 1 FROM ${H}index_list(t.name)i,${H}index_info(i.name)ii ${q} i."unique"=1 AND ii.name=c.name AND(${k} count(*) FROM ${H}index_info(i.name))=1)uq FROM ${V}list()t,${V}info(t.name)c ${q} t.schema='main'AND t.type IN('table','view')AND t.name IN(${na(t,ta)})ORDER BY t.name,c.name`,t),m,N,n,ta,$,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,_)},ot=(a,t,n,e,i)=>ct(a,n,async(a,n=[])=>await A((e,i)=>t.all(a,n,(a,t)=>a?i(a):e(t))),a=>((a,t,n)=>(a.on(t,n),()=>a.off(t,n)))(t,"change",(t,n,e)=>a(e)),a=>a(),e,i,_,3,t);export{ot as createSqlite3Persister};
@@ -0,0 +1 @@
1
+ const t=t=>typeof t,a="tinybase",e="",n=t(e),r=Promise,s=Math,o=t=>(a,e,n)=>t(a)?n?.():e(a),i=globalThis,c=s.floor,l=s.random,u=t=>null==t,y=t=>void 0===t,w=t=>null===t,d=o(u),v=o(y),f=t=>Array.isArray(t),h=t=>t.length,p=t=>0==h(t),_=t=>new r(t),g=(t,a)=>t.forEach(a),m=(t,a)=>t.map(a),b=(t,a=h(t))=>t.splice(0,a),S=(t,...a)=>t.push(...a),A=t=>y(t)||0==(t=>t?.size??0)(t),L=(t,a)=>t?.forEach(a),C=(t,a)=>t?.delete(a),N=Object,P=t=>N.getPrototypeOf(t),I=t=>!u(t)&&d(P(t),t=>t==N.prototype||u(P(t)),()=>!0),O=N.keys,T=N.freeze,E=(t,a,e)=>(N.defineProperty(t,a,{configurable:!0,enumerable:!0,value:e,writable:!0}),e),M=t=>I(t)&&0==(t=>h(O(t)))(t),z=Map,D=t=>new z(t),J=(t,a)=>t?.get(a),j=(t,a,e)=>y(e)?(C(t,a),t):t?.set(a,e),k=(t,a,e,n)=>{let r=J(t,a);var s,o;return s=t,o=a,s?.has(o)?n?.(r):j(t,a,r=e()),r},q=(t,a,e,n,r=0)=>v((e?k:J)(t,a[r],r>h(a)-2?e:D),s=>{if(r>h(a)-2)return n?.(s)&&j(t,a[r]),s;const o=q(s,a,e,n,r+1);return A(s)&&j(t,a[r]),o}),x=((t,a="")=>"-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".split(a,void 0))();D(m(x,(t,a)=>[t,a]));const F=i.crypto?t=>i.crypto.getRandomValues(t):t=>m(t,()=>c(256*l())),R=(t=16)=>{return a=(t,a)=>t+x[63&a],F(new Uint8Array(t)).reduce(a,"");var a},U=JSON.stringify,V=JSON.parse,B=t=>""===t?void 0:f(t)?m(t,B):I(t)?((t,a)=>{const e=((t=[])=>{const a=N.create(null);return g(t,([t,e])=>E(a,t,e)),a})();return((t,a)=>{g(O(t),e=>a(t[e],e))})(t,(t,n)=>E(e,n,a(t,n))),e})(t,B):t,G=(t,n)=>{throw((t,n)=>Error(a+":"+t+(y(n)?e:":"+n)))(t,n)},H=async(t,a)=>{try{return await t()}catch(t){a?.(t)}},K=(t,a)=>H(t,t=>{H(()=>a?.(t))}),Q=async(t,a)=>{try{return await t()}finally{await a()}},W=/^\d+$/,X=t=>new Set(f(t)||y(t)?t:[t]),Y=D(),Z=D(),$=D(),tt=(t,a,n,r,s,o,i,c={},l=0,u=[])=>{let d,N,P,I,O,E=0,z=0,x=0,F=0,R=0,U=0,V=0,B=0,tt=0;const at={},et=c.destroy;k(Y,u,()=>0),k(Z,u,()=>[]),j($,u,(J($,u)??0)+1);const nt=D(),[rt,st,ot,it,ct]=((t=1,a,e)=>1!=t&&a.isMergeable()?[1,a.__[1],()=>a.__[2](!e),([[t],[a]])=>!M(t)||!M(a),a.setDefaultContent]:2!=t?[0,a._[7],a._[8],([t,a])=>!M(t)||!M(a),a.setContent]:G(0))(i,t,l),[lt,ut,yt]=(t=>{let a;const[n,r]=(()=>{const t=[];let a=0;return[n=>(n?t.shift():null)??e+a++,a=>{W.test(a)&&h(t)<1e3&&S(t,a)}]})(),s=D(),o=(t,n,r,o)=>{let i,c=!1;if(g(((t,a=[e])=>{const n=[],r=(t,e)=>e==h(a)?S(n,t):w(a[e])?L(t,t=>r(t,e+1)):g([a[e],null],a=>r(J(t,a),e+1));return r(t,0),n})(n,r),e=>L(e,e=>{const n=()=>J(s,e)[0](a,...r??[],...o);t?(t=>{try{return t()}catch(t){(t=>{c||(i=t),c=!0})?.(t)}})(n):n()})),c)throw i};return[(r,o,i,c=[],l=()=>[])=>{a??=t();const u=n(1);var y,w;return j(s,u,[r,o,i,c,l]),y=q(o,i??[e],X),w=u,y?.add(w),u},(t,a,...e)=>o(!1,t,a,e),t=>v(J(s,t),([,a,n])=>(q(a,n??[e],void 0,a=>(C(a,t),A(a)?1:0)),j(s,t),r(t),n)),t=>v(J(s,t),([t,,e=[],n,r])=>{const s=(...o)=>{const i=h(o);i==h(e)?t(a,...o,...r(o)):w(e[i])?g(n[i]?.(...o)??[],t=>s(...o,t)):s(...o,e[i])};s()}),(t,a,...e)=>o(!0,t,a,e)]})(()=>Pt),wt=t=>{t!=E&&(E=t,ut(nt,void 0,E))},dt=()=>{J($,u)||J(Y,u)||!p(J(Z,u)??[])||(j(Y,u),j(Z,u),j($,u))},vt=a=>{(rt&&f(a?.[0])?1===a?.[2]?t.__[4]:t.__[3]:1===a?.[2]?t._[10]:t._[9])(a)},ft=async()=>{Lt()&&t.__?.[0]?.()&&await bt()},ht=t=>Q(()=>N=t,()=>{N==t&&(N=void 0)}),pt=async t=>(2!=E&&(await Q(async()=>{wt(1),z++,await Nt(()=>H(async()=>{const e=await a();f(e)?vt(e):y(e)&&t?ct(t):y(e)||G(1,e)},a=>{o?.(a),t&&ct(t)}))},()=>wt(0)),await ft()),Pt),_t=async()=>{const t=V;V=0,t&&t==F&&!tt&&(2==E?V=t:await pt())},gt=async t=>{const a=++F;let e=!0;if(await mt(!0),a==F&&!tt){const n=H(async()=>{const t=await r(async(t,n)=>{if(a==F&&!tt)if(n||t){const a=e||2==E||!!U;R++,a&&U++,await Q(async()=>{wt(1),z++,await(a?Nt(()=>vt(n??t)):(()=>{try{return vt(n??t)}finally{wt(0)}})())},()=>{a&&U--,--R||wt(0)}),R||await ft()}else 2==E?V=a:await pt()});a!=F||tt?y(t)||await s(t):d=t},o);await ht(n),a!=F||tt||await Q(()=>pt(t),()=>{e=!1})}return Pt},mt=async(t=!1)=>{V=0,t||F++;const a=N,e=d;return d=void 0,await ht(Q(async()=>{await a},async()=>{y(e)||await H(()=>s(e),o)})),Pt},bt=async t=>(1!=E&&await Q(()=>Q(async()=>{wt(2),x++,await Nt(()=>H(()=>n(st,t),o))},()=>wt(0)),_t),Pt),St=async()=>{const a=++B;return await At(!0),a!=B||tt||(await bt(),a!=B||tt||(P=t.addDidFinishTransactionListener(()=>{if(a==B&&!tt){const t=ot();it(t)&&H(()=>bt(t))}}))),Pt},At=async(a=!1)=>{a||B++;const e=P;return P=void 0,y(e)||t.delListener(e),Pt},Lt=()=>!y(P),Ct=async(t=!1)=>{const[a,e]=t?[At,mt]:[mt,At];return await Q(()=>a(),async()=>{await e()}),Pt},Nt=async(...t)=>{let a,e=!1;const n=_(n=>p(t)?n():S(J(Z,u),...m(t,(r,s)=>{const i=s==h(t)-1;return[async()=>{let t;O=_(a=>t=a),await Q(async()=>{try{await H(r,o)}catch(t){e||(e=!0,a=t)}i&&n()},()=>{O=void 0,t()})},i?n:void 0,at]})));if(await(async()=>{if(!J(Y,u)){j(Y,u,1);const t=J(Z,u);let a=0;await Q(async()=>{for(;a<h(t);){const e=t[a++];e[2]=void 0,await e[0]()}},()=>{b(t,a),j(Y,u,0),dt()})}})(),await n,e)throw a;return Pt},Pt={load:pt,startAutoLoad:gt,stopAutoLoad:mt,isAutoLoading:()=>!y(d),save:bt,startAutoSave:St,stopAutoSave:At,isAutoSaving:Lt,startAutoPersisting:async(t,a=!1)=>{const[e,n,r,s]=a?[St,gt,At,mt]:[gt,St,mt,At],o=e(t),i=a?B:F;await o;const c=n(t),l=a?F:B;try{await c}catch(t){throw l==(a?F:B)&&await K(s),i==(a?B:F)&&await K(r),t}return Pt},stopAutoPersisting:Ct,getStatus:()=>E,addStatusListener:t=>lt(t,nt),delListener:a=>(yt(a),t),schedule:Nt,getStore:()=>t,getStats:()=>({loads:z,saves:x}),...c,destroy:async()=>(y(I)&&(tt=1,I=(async()=>{const t=J(Z,u),a=(e=([,t,a])=>a!=at||(t?.(),!1),t.filter(e));var e;const n=O;b(t),S(t,...a),await Q(()=>Q(()=>Q(Ct,()=>n),()=>et?.()),()=>{const t=(J($,u)??1)-1;j($,u,t||void 0),dt()})})()),await I,Pt)};return T(Pt)},at=(e,r,s,o)=>{const i=t(s)==n?{storeTableName:s}:s??{},c=i.storeTableName??a,l=i.storeIdColumnName??"_id",u=i.storeColumnName??"store",{autoLoadIntervalSeconds:w}=i;return tt(e,async()=>{const{data:t,error:a}=await r.from(c).select(u).eq(l,"_").maybeSingle();if(a)throw a;return B(V(t?.[u]??"null"))},async t=>{const{error:a}=await r.from(c).upsert({[l]:"_",[u]:(e=t()??null,U(e,(t,a)=>y(a)?"":a))},{onConflict:l});var e;if(a)throw a},t=>{return[r.channel(a+"_"+c+"_"+R()).on("postgres_changes",{event:"*",schema:"public",table:c},()=>{t()}).subscribe((t,a)=>a?o?.(a):0),y(w)?void 0:(e=()=>{t()},n=w,setInterval(e,1e3*n))];var e,n},async([t,a])=>{(t=>{clearInterval(t)})(a),await r.removeChannel(t)},o,3,{getSupabase:()=>r})};export{at as createSupabasePersister};
@@ -0,0 +1 @@
1
+ const t=t=>typeof t,a="tinybase",e="",n=t(e),r=Promise,s=Math,o=t=>(a,e,n)=>t(a)?n?.():e(a),i=globalThis,c=s.floor,l=s.random,u=t=>null==t,y=t=>void 0===t,w=t=>null===t,d=o(u),v=o(y),f=t=>Array.isArray(t),h=t=>t.length,p=t=>0==h(t),_=t=>new r(t),g=(t,a)=>t.forEach(a),m=(t,a)=>t.map(a),b=(t,a=h(t))=>t.splice(0,a),S=(t,...a)=>t.push(...a),A=t=>y(t)||0==(t=>t?.size??0)(t),L=(t,a)=>t?.forEach(a),C=(t,a)=>t?.delete(a),N=Object,P=t=>N.getPrototypeOf(t),I=t=>!u(t)&&d(P(t),t=>t==N.prototype||u(P(t)),()=>!0),O=N.keys,T=N.freeze,E=(t,a,e)=>(N.defineProperty(t,a,{configurable:!0,enumerable:!0,value:e,writable:!0}),e),M=t=>I(t)&&0==(t=>h(O(t)))(t),z=Map,D=t=>new z(t),J=(t,a)=>t?.get(a),j=(t,a,e)=>y(e)?(C(t,a),t):t?.set(a,e),k=(t,a,e,n)=>{let r=J(t,a);var s,o;return s=t,o=a,s?.has(o)?n?.(r):j(t,a,r=e()),r},q=(t,a,e,n,r=0)=>v((e?k:J)(t,a[r],r>h(a)-2?e:D),s=>{if(r>h(a)-2)return n?.(s)&&j(t,a[r]),s;const o=q(s,a,e,n,r+1);return A(s)&&j(t,a[r]),o}),x=((t,a="")=>"-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".split(a,void 0))();D(m(x,(t,a)=>[t,a]));const F=i.crypto?t=>i.crypto.getRandomValues(t):t=>m(t,()=>c(256*l())),R=(t=16)=>{return a=(t,a)=>t+x[63&a],F(new Uint8Array(t)).reduce(a,"");var a},U=JSON.stringify,V=JSON.parse,B=t=>""===t?void 0:f(t)?m(t,B):I(t)?((t,a)=>{const e=((t=[])=>{const a=N.create(null);return g(t,([t,e])=>E(a,t,e)),a})();return((t,a)=>{g(O(t),e=>a(t[e],e))})(t,(t,n)=>E(e,n,a(t,n))),e})(t,B):t,G=(t,n)=>{throw((t,n)=>Error(a+":"+t+(y(n)?e:":"+n)))(t,n)},H=async(t,a)=>{try{return await t()}catch(t){a?.(t)}},K=(t,a)=>H(t,t=>{H(()=>a?.(t))}),Q=async(t,a)=>{try{return await t()}finally{await a()}},W=/^\d+$/,X=t=>new Set(f(t)||y(t)?t:[t]),Y=D(),Z=D(),$=D(),tt=(t,a,n,r,s,o,i,c={},l=0,u=[])=>{let d,N,P,I,O,E=0,z=0,x=0,F=0,R=0,U=0,V=0,B=0,tt=0;const at={},et=c.destroy;k(Y,u,()=>0),k(Z,u,()=>[]),j($,u,(J($,u)??0)+1);const nt=D(),[rt,st,ot,it,ct]=((t=1,a,e)=>1!=t&&a.isMergeable()?[1,a.__[1],()=>a.__[2](!e),([[t],[a]])=>!M(t)||!M(a),a.setDefaultContent]:2!=t?[0,a._[7],a._[8],([t,a])=>!M(t)||!M(a),a.setContent]:G(0))(i,t,l),[lt,ut,yt]=(t=>{let a;const[n,r]=(()=>{const t=[];let a=0;return[n=>(n?t.shift():null)??e+a++,a=>{W.test(a)&&h(t)<1e3&&S(t,a)}]})(),s=D(),o=(t,n,r,o)=>{let i,c=!1;if(g(((t,a=[e])=>{const n=[],r=(t,e)=>e==h(a)?S(n,t):w(a[e])?L(t,t=>r(t,e+1)):g([a[e],null],a=>r(J(t,a),e+1));return r(t,0),n})(n,r),e=>L(e,e=>{const n=()=>J(s,e)[0](a,...r??[],...o);t?(t=>{try{return t()}catch(t){(t=>{c||(i=t),c=!0})?.(t)}})(n):n()})),c)throw i};return[(r,o,i,c=[],l=()=>[])=>{a??=t();const u=n(1);var y,w;return j(s,u,[r,o,i,c,l]),y=q(o,i??[e],X),w=u,y?.add(w),u},(t,a,...e)=>o(!1,t,a,e),t=>v(J(s,t),([,a,n])=>(q(a,n??[e],void 0,a=>(C(a,t),A(a)?1:0)),j(s,t),r(t),n)),t=>v(J(s,t),([t,,e=[],n,r])=>{const s=(...o)=>{const i=h(o);i==h(e)?t(a,...o,...r(o)):w(e[i])?g(n[i]?.(...o)??[],t=>s(...o,t)):s(...o,e[i])};s()}),(t,a,...e)=>o(!0,t,a,e)]})(()=>Pt),wt=t=>{t!=E&&(E=t,ut(nt,void 0,E))},dt=()=>{J($,u)||J(Y,u)||!p(J(Z,u)??[])||(j(Y,u),j(Z,u),j($,u))},vt=a=>{(rt&&f(a?.[0])?1===a?.[2]?t.__[4]:t.__[3]:1===a?.[2]?t._[10]:t._[9])(a)},ft=async()=>{Lt()&&t.__?.[0]?.()&&await bt()},ht=t=>Q(()=>N=t,()=>{N==t&&(N=void 0)}),pt=async t=>(2!=E&&(await Q(async()=>{wt(1),z++,await Nt(()=>H(async()=>{const e=await a();f(e)?vt(e):y(e)&&t?ct(t):y(e)||G(1,e)},a=>{o?.(a),t&&ct(t)}))},()=>wt(0)),await ft()),Pt),_t=async()=>{const t=V;V=0,t&&t==F&&!tt&&(2==E?V=t:await pt())},gt=async t=>{const a=++F;let e=!0;if(await mt(!0),a==F&&!tt){const n=H(async()=>{const t=await r(async(t,n)=>{if(a==F&&!tt)if(n||t){const a=e||2==E||!!U;R++,a&&U++,await Q(async()=>{wt(1),z++,await(a?Nt(()=>vt(n??t)):(()=>{try{return vt(n??t)}finally{wt(0)}})())},()=>{a&&U--,--R||wt(0)}),R||await ft()}else 2==E?V=a:await pt()});a!=F||tt?y(t)||await s(t):d=t},o);await ht(n),a!=F||tt||await Q(()=>pt(t),()=>{e=!1})}return Pt},mt=async(t=!1)=>{V=0,t||F++;const a=N,e=d;return d=void 0,await ht(Q(async()=>{await a},async()=>{y(e)||await H(()=>s(e),o)})),Pt},bt=async t=>(1!=E&&await Q(()=>Q(async()=>{wt(2),x++,await Nt(()=>H(()=>n(st,t),o))},()=>wt(0)),_t),Pt),St=async()=>{const a=++B;return await At(!0),a!=B||tt||(await bt(),a!=B||tt||(P=t.addDidFinishTransactionListener(()=>{if(a==B&&!tt){const t=ot();it(t)&&H(()=>bt(t))}}))),Pt},At=async(a=!1)=>{a||B++;const e=P;return P=void 0,y(e)||t.delListener(e),Pt},Lt=()=>!y(P),Ct=async(t=!1)=>{const[a,e]=t?[At,mt]:[mt,At];return await Q(()=>a(),async()=>{await e()}),Pt},Nt=async(...t)=>{let a,e=!1;const n=_(n=>p(t)?n():S(J(Z,u),...m(t,(r,s)=>{const i=s==h(t)-1;return[async()=>{let t;O=_(a=>t=a),await Q(async()=>{try{await H(r,o)}catch(t){e||(e=!0,a=t)}i&&n()},()=>{O=void 0,t()})},i?n:void 0,at]})));if(await(async()=>{if(!J(Y,u)){j(Y,u,1);const t=J(Z,u);let a=0;await Q(async()=>{for(;a<h(t);){const e=t[a++];e[2]=void 0,await e[0]()}},()=>{b(t,a),j(Y,u,0),dt()})}})(),await n,e)throw a;return Pt},Pt={load:pt,startAutoLoad:gt,stopAutoLoad:mt,isAutoLoading:()=>!y(d),save:bt,startAutoSave:St,stopAutoSave:At,isAutoSaving:Lt,startAutoPersisting:async(t,a=!1)=>{const[e,n,r,s]=a?[St,gt,At,mt]:[gt,St,mt,At],o=e(t),i=a?B:F;await o;const c=n(t),l=a?F:B;try{await c}catch(t){throw l==(a?F:B)&&await K(s),i==(a?B:F)&&await K(r),t}return Pt},stopAutoPersisting:Ct,getStatus:()=>E,addStatusListener:t=>lt(t,nt),delListener:a=>(yt(a),t),schedule:Nt,getStore:()=>t,getStats:()=>({loads:z,saves:x}),...c,destroy:async()=>(y(I)&&(tt=1,I=(async()=>{const t=J(Z,u),a=(e=([,t,a])=>a!=at||(t?.(),!1),t.filter(e));var e;const n=O;b(t),S(t,...a),await Q(()=>Q(()=>Q(Ct,()=>n),()=>et?.()),()=>{const t=(J($,u)??1)-1;j($,u,t||void 0),dt()})})()),await I,Pt)};return T(Pt)},at=(e,r,s,o)=>{const i=t(s)==n?{storeTableName:s}:s??{},c=i.storeTableName??a,l=i.storeIdColumnName??"_id",u=i.storeColumnName??"store",{autoLoadIntervalSeconds:w}=i;return tt(e,async()=>{const{data:t,error:a}=await r.from(c).select(u).eq(l,"_").maybeSingle();if(a)throw a;return B(V(t?.[u]??"null"))},async t=>{const{error:a}=await r.from(c).upsert({[l]:"_",[u]:(e=t()??null,U(e,(t,a)=>y(a)?"":a))},{onConflict:l});var e;if(a)throw a},t=>{return[r.channel(a+"_"+c+"_"+R()).on("postgres_changes",{event:"*",schema:"public",table:c},()=>{t()}).subscribe((t,a)=>a?o?.(a):0),y(w)?void 0:(e=()=>{t()},n=w,setInterval(e,1e3*n))];var e,n},async([t,a])=>{(t=>{clearInterval(t)})(a),await r.removeChannel(t)},o,3,{getSupabase:()=>r})};export{at as createSupabasePersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",n="",e=",",i=a(n),s="true",c=(a,t,n)=>a.replace(t,n),r=Promise,o=a=>(t,n,e)=>a(t)?e?.():n(t),w=globalThis,l=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,_=o(l),E=o(u),m=t=>a(t)==i,N=a=>Array.isArray(a),v=a=>a.length,$=a=>0==v(a),O=(a,t)=>a.test(t),A=a=>new r(a),f=async a=>r.all(a),R=(a,t)=>a.forEach(t),T=(a,t="")=>a.join(t),h=(a,t)=>a.map(t),I=(a,t)=>a.filter(t),g=(a,t=v(a))=>a.splice(0,t),S=(a,...t)=>a.push(...t),D=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},b=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},L=(a,t)=>b(a,a=>{b(()=>t?.(a))}),p=async(a,t)=>{try{return await a()}finally{await t()}},C=(a,t)=>a?.has(t)??!1,F=a=>u(a)||0==(a=>a?.size??0)(a),M=a=>[...a?.values()??[]],P=a=>a.clear(),k=(a,t)=>a?.forEach(t),U=(a,t)=>a?.delete(t),G=Object,x=a=>G.getPrototypeOf(a),H=G.entries,Y=a=>!l(a)&&_(x(a),a=>a==G.prototype||l(x(a)),()=>!0),B=G.keys,W=G.freeze,X=(...a)=>G.assign(G.create(null),...a),j=(a,t,n)=>(G.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),q=(a=[])=>{const t=G.create(null);return R(a,([a,n])=>j(t,a,n)),t},J=(a,t)=>(delete a[t],a),K=(a,t)=>R(B(a),n=>t(a[n],n)),z=(a,t)=>h(H(a),([a,n])=>t(n,a)),Q=(a,t)=>{const n=q();return K(a,(a,e)=>j(n,e,t(a,e))),n},V=a=>v(B(a)),Z=a=>Y(a)&&0==V(a),aa=Map,ta=a=>new aa(a),na=(a,t)=>a?.get(t),ea=(a,t)=>k(a,(a,n)=>t(n,a)),ia=(a,t)=>{const n=[];return ea(a,(a,e)=>S(n,t(e,a))),n},sa=(a,t,n)=>u(n)?(U(a,t),a):a?.set(t,n),ca=(a,t,n,e)=>{let i=na(a,t);return C(a,t)?e?.(i):sa(a,t,i=n()),i},ra=(a,t,n,e,i=0)=>E((n?ca:na)(a,t[i],i>v(t)-2?n:ta),s=>{if(i>v(t)-2)return e?.(s)&&sa(a,t[i]),s;const c=ra(s,t,n,e,i+1);return F(s)&&sa(a,t[i]),c}),oa=/^\d+$/,wa=a=>new Set(N(a)||u(a)?a:[a]),la=(a,t)=>a?.add(t),ua={Idle:0,Loading:1,Saving:2},ya={StoreOnly:1,MergeableStoreOnly:2,StoreOrMergeableStore:3},da=ta(),_a=ta(),Ea=ta(),ma=(a,t,e,i,s,c,r,o={},w=0,l=[])=>{let d,_,m,f,T,C=0,M=0,P=0,G=0,x=0,H=0,Y=0,B=0,X=0;const j={},q=o.destroy;ca(da,l,()=>0),ca(_a,l,()=>[]),sa(Ea,l,(na(Ea,l)??0)+1);const J=ta(),[K,z,Q,V,aa]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!Z(a)||!Z(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!Z(a)||!Z(t),t.setContent]:D(0))(r,a,w),[ea,ia,ua]=(a=>{let t;const[e,i]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{O(oa,t)&&v(a)<1e3&&S(a,t)}]})(),s=ta(),c=(a,e,i,c)=>{let r,o=!1;if(R(((a,t=[n])=>{const e=[],i=(a,n)=>n==v(t)?S(e,a):y(t[n])?k(a,a=>i(a,n+1)):R([t[n],null],t=>i(na(a,t),n+1));return i(a,0),e})(e,i),n=>k(n,n=>{const e=()=>na(s,n)[0](t,...i??[],...c);a?(a=>{try{return a()}catch(a){(a=>{o||(r=a),o=!0})?.(a)}})(e):e()})),o)throw r};return[(i,c,r,o=[],w=()=>[])=>{t??=a();const l=e(1);return sa(s,l,[i,c,r,o,w]),la(ra(c,r??[n],wa),l),l},(a,t,...n)=>c(!1,a,t,n),a=>E(na(s,a),([,t,e])=>(ra(t,e??[n],void 0,t=>(U(t,a),F(t)?1:0)),sa(s,a),i(a),e)),a=>E(na(s,a),([a,,n=[],e,i])=>{const s=(...c)=>{const r=v(c);r==v(n)?a(t,...c,...i(c)):y(n[r])?R(e[r]?.(...c)??[],a=>s(...c,a)):s(...c,n[r])};s()}),(a,t,...n)=>c(!0,a,t,n)]})(()=>ba),ya=a=>{a!=C&&(C=a,ia(J,void 0,C))},ma=()=>{na(Ea,l)||na(da,l)||!$(na(_a,l)??[])||(sa(da,l),sa(_a,l),sa(Ea,l))},Na=t=>{(K&&N(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},va=async()=>{ga()&&a.__?.[0]?.()&&await Ta()},$a=a=>p(()=>_=a,()=>{_==a&&(_=void 0)}),Oa=async a=>(2!=C&&(await p(async()=>{ya(1),M++,await Da(()=>b(async()=>{const n=await t();N(n)?Na(n):u(n)&&a?aa(a):u(n)||D(1,n)},t=>{c?.(t),a&&aa(a)}))},()=>ya(0)),await va()),ba),Aa=async()=>{const a=Y;Y=0,a&&a==G&&!X&&(2==C?Y=a:await Oa())},fa=async a=>{const t=++G;let n=!0;if(await Ra(!0),t==G&&!X){const e=b(async()=>{const a=await i(async(a,e)=>{if(t==G&&!X)if(e||a){const t=n||2==C||!!H;x++,t&&H++,await p(async()=>{ya(1),M++,await(t?Da(()=>Na(e??a)):(()=>{try{return Na(e??a)}finally{ya(0)}})())},()=>{t&&H--,--x||ya(0)}),x||await va()}else 2==C?Y=t:await Oa()});t!=G||X?u(a)||await s(a):d=a},c);await $a(e),t!=G||X||await p(()=>Oa(a),()=>{n=!1})}return ba},Ra=async(a=!1)=>{Y=0,a||G++;const t=_,n=d;return d=void 0,await $a(p(async()=>{await t},async()=>{u(n)||await b(()=>s(n),c)})),ba},Ta=async a=>(1!=C&&await p(()=>p(async()=>{ya(2),P++,await Da(()=>b(()=>e(z,a),c))},()=>ya(0)),Aa),ba),ha=async()=>{const t=++B;return await Ia(!0),t!=B||X||(await Ta(),t!=B||X||(m=a.addDidFinishTransactionListener(()=>{if(t==B&&!X){const a=Q();V(a)&&b(()=>Ta(a))}}))),ba},Ia=async(t=!1)=>{t||B++;const n=m;return m=void 0,u(n)||a.delListener(n),ba},ga=()=>!u(m),Sa=async(a=!1)=>{const[t,n]=a?[Ia,Ra]:[Ra,Ia];return await p(()=>t(),async()=>{await n()}),ba},Da=async(...a)=>{let t,n=!1;const e=A(e=>$(a)?e():S(na(_a,l),...h(a,(i,s)=>{const r=s==v(a)-1;return[async()=>{let a;T=A(t=>a=t),await p(async()=>{try{await b(i,c)}catch(a){n||(n=!0,t=a)}r&&e()},()=>{T=void 0,a()})},r?e:void 0,j]})));if(await(async()=>{if(!na(da,l)){sa(da,l,1);const a=na(_a,l);let t=0;await p(async()=>{for(;t<v(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{g(a,t),sa(da,l,0),ma()})}})(),await e,n)throw t;return ba},ba={load:Oa,startAutoLoad:fa,stopAutoLoad:Ra,isAutoLoading:()=>!u(d),save:Ta,startAutoSave:ha,stopAutoSave:Ia,isAutoSaving:ga,startAutoPersisting:async(a,t=!1)=>{const[n,e,i,s]=t?[ha,fa,Ia,Ra]:[fa,ha,Ra,Ia],c=n(a),r=t?B:G;await c;const o=e(a),w=t?G:B;try{await o}catch(a){throw w==(t?G:B)&&await L(s),r==(t?B:G)&&await L(i),a}return ba},stopAutoPersisting:Sa,getStatus:()=>C,addStatusListener:a=>ea(a,J),delListener:t=>(ua(t),a),schedule:Da,getStore:()=>a,getStats:()=>({loads:M,saves:P}),...o,destroy:async()=>(u(f)&&(X=1,f=(async()=>{const a=na(_a,l),t=I(a,([,a,t])=>t!=j||(a?.(),!1)),n=T;g(a),S(a,...t),await p(()=>p(()=>p(Sa,()=>n),()=>q?.()),()=>{const a=(na(Ea,l)??1)-1;sa(Ea,l,a||void 0),ma()})})()),await f,ba)};return W(ba)},Na=JSON.stringify,va=JSON.parse,$a=a=>Na(a,(a,t)=>u(t)?"":t),Oa=a=>""===a?void 0:N(a)?h(a,Oa):Y(a)?Q(a,Oa):a,Aa=new w.TextEncoder,fa=a=>{let t=2166136261;return R(Aa.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0},Ra="_",Ta="_id",ha="SELECT",Ia="WHERE",ga="TABLE",Sa="INSERT",Da="DELETE",ba="UPDATE",La="ALTER "+ga,pa="FROM",Ca=Da+" "+pa,Fa=ha+"*"+pa,Ma="pragma_",Pa="data_version",ka="schema_version",Ua="pragma_table_",Ga="CREATE ",xa=Ga+ga,Ha="OR REPLACE ",Ya="FUNCTION",Ba=/\$tableName/g,Wa=(a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a,Xa=a=>T(h(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${c(a,/"/g,'""')}"`),"."),ja=(...a)=>Xa(T(a,"_")),qa=(a,t=[1])=>T(h(a,()=>"$"+t[0]++),e),Ja=(a,t=s)=>Ia+`(${Ka(t,Xa(a))})`,Ka=(a,t)=>c(a,Ba,t),za="ColumnName",Qa="store",Va="json",Za=Qa+"TableName",at=Qa+"Id"+za,tt=Qa+za,nt="autoLoadIntervalSeconds",et="rowId"+za,it="tableId",st="tableName",ct="deleteEmptyColumns",rt="deleteEmptyTable",ot="condition",wt={mode:Va,[nt]:1},lt={load:0,save:0,[st]:t+"_values"},ut=a=>N(a)?a:void 0,yt=a=>d(a)||N(a),dt=(a,t,n,e,i)=>{const s=ta();return K(a,(a,c)=>{const r=(l=X(t,m(a)?{[n]:a}:a),o=G.values(l),w=V(t),o.slice(0,w));var o,w,l;y(r[0])||e(c,r[0])||(i(c,r[0]),sa(s,c,r))}),s},_t=a=>{const n=(a=>X(wt,m(a)?{[Za]:a}:a??{}))(a),e=n[nt];if(n.mode==Va){const a=n[Za]??t;return[1,e,[a,n[at]??Ta,n[tt]??Qa],wa(a)]}const{tables:{load:i={},save:c={}}={},values:r={}}=n,o=X(lt,r),{load:w,save:l}=o,u=[yt(w),yt(l),o[st],ut(w),ut(l)],y=u[2],d=wa(y),_=wa(y),E=dt(i,{[it]:null,[et]:Ta,[ot]:s},it,a=>C(_,a),a=>la(d,a)),N=dt(c,{[st]:null,[et]:Ta,[ct]:0,[rt]:0,[ot]:null},st,(a,t)=>C(_,t),(a,t)=>la(d,t));return ea(N,(a,t)=>t[4]??=na(E,t[0])?.[2]??s),[0,e,[E,N,u],d]},Et=(a,n,i,c,r=mt,o,w,l)=>{const y=ta(),d=ta();let _=a;return[async()=>{P(y),P(d),R(await i(_,n),({tn:a,cn:t,uq:n})=>{la(ca(y,a,wa),t),n&&la(ca(d,a,wa),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:wa(e);return((a,t)=>C(na(y,a),t))(a,t)?q(I(h(await _(Fa+Xa(a)+Ja(a,n)),a=>{const n=a[t],e=w?Q(J(a,t),w):J(a,t);return[n,u(i)?e:q(I(z(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||C(i,a))(a)))]}),a=>!u(a[0])&&!Z(a[1]))):{}},async(a,n,i,w,l,E=!1,m=s,N)=>{const v=u(N)?void 0:wa(N),O=a=>u(v)||C(v,a),A=wa();K(i??{},a=>R(I(B(a??{}),O),a=>la(A,a)));const g=M(A);if(u(v)&&!E&&l&&m==s&&$(g)&&C(y,a))return await _("DROP "+ga+Xa(a)),sa(y,a),void sa(d,a);const D=na(y,a),b=wa(I(M(D),a=>a==n||O(a)));if(!$(g))if(C(y,a)){if(await f(h([n,...g],async t=>{U(b,t)||(await _(La+Xa(a)+"ADD"+Xa(t)+c),la(D,t))})),r==mt&&!C(na(d,a),n)){const e=t+"_pk_"+fa(Na([a,n]));await _("CREATE UNIQUE INDEX IF NOT EXISTS"+Xa(e)+"ON"+Xa(a)+`(${Xa(n)})`),la(ca(d,a,wa),n)}}else await _(xa+Xa(a)+`(${Xa(n)}${c} PRIMARY KEY${T(h(g,a=>e+Xa(a)+c))});`),sa(y,a,wa([n,...g])),sa(d,a,wa([n]));if(await f([...!E&&w?h(M(b),async t=>{t!=n&&(await _(La+Xa(a)+"DROP"+Xa(t)),U(D,t))}):[]]),E)u(i)?u(v)&&await _(Ca+Xa(a)+Ja(a,m)):await f(z(i,async(t,e)=>{if(u(t))await _(Ca+Xa(a)+Ja(a,m)+`AND(${Xa(n)}=$1)`,[e]);else if(!$(g)){const i=I(B(t),O);$(i)||await r(_,a,n,i,{[e]:h(i,a=>o?o(t[a]):t[a])},D)}}));else if($(g))u(v)&&C(y,a)&&await _(Ca+Xa(a)+Ja(a,m));else{const t=I(M(na(y,a)),a=>a!=n&&O(a)),e=q(),s=[];K(i??{},(a,n)=>{j(e,n,h(t,t=>o?o(a?.[t]):a?.[t])),S(s,n)}),await r(_,a,n,t,e,D),await _(Ca+Xa(a)+Ja(a,m)+`AND${Xa(n)}NOT IN(${qa(s)})`,s)}},async t=>{if(l)return await l(async a=>{const n=_;return _=a,await p(t,()=>{_=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await b(()=>a("ROLLBACK")),t}}]},mt=async(a,t,n,i,s)=>{const c=[1];await a(Sa+" INTO"+Xa(t)+"("+((...a)=>T(h(a,Xa),e))(n,...i)+")VALUES"+T(z(s,a=>"($"+c[0]+++","+qa(a,c)+")"),e)+"ON CONFLICT("+Xa(n)+`)DO ${ba} SET`+T(h(i,a=>Xa(a)+"=excluded."+Xa(a)),e),z(s,(a,t)=>[t,...h(a,a=>a??null)]).flat())},Nt=(a,t,n,e,i,s,c,[r,o,w],l,u,y,d,_,E,m,N,v)=>{const[$,O,A,f]=Et(t,l,u,_,E,void 0,void 0,v);return ma(a,()=>f(async()=>{return await $(),a=(await O(r,o))[Ra]?.[w]??"null",Oa(va(a));var a}),a=>f(async()=>{await $(),await A(r,o,{[Ra]:{[w]:$a(a()??null)}},!0,!0)}),n,e,i,c,{[d]:()=>y,destroy:s},0,y)},vt=(a,t,n,e,i,s,c,[r,o,[w,l,y,d,_]],E,m,N,v,$,O,A,R,T)=>{const[g,S,D,b]=Et(t,E,m,$,O,A,R,T),L=(a,t)=>f(ia(o,async([n,e,i,s,c],r)=>{var o,w;t&&(o=a,w=r,!G.hasOwn(o,w))||await D(n,e,a[r],i,s,t,c)})),p=(a,t,n)=>q(1==n?I(z(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):I(h(t,t=>[t,a[t]]),([,a])=>!u(a))),C=async(a,t)=>l?await D(y,Ta,{[Ra]:u(_)?a:p(a,_,t)},!0,!0,t,void 0,_):null;return ma(a,()=>b(async()=>{await g();const a=await(async()=>q(I(await f(ia(r,async([a,t,n],e)=>[a,await S(e,t,n)])),a=>!Z(a[1]))))(),t=await(async()=>w?(await S(y,Ta,void 0,d))[Ra]:{})();return Z(a)&&u(t)?void 0:[a,t]}),(a,t)=>b(async()=>{if(await g(),u(t)){const[t,n]=a();await L(t),await C(n)}else await L(t[0],!0),await C(t[1],!0)}),n,e,i,c,{[v]:()=>N,destroy:s},0,N)},$t=/^([cd]:)(.+)/,Ot=/^[A-Za-z0-9_]+$/,At=ta(),ft=(a,e,i,c,r,o,w,l,u,y,d="getDb")=>{const _=Wa(i,o),[m,,N,A]=_t(e);!m&&a.isMergeable()&&D(0);const R=n+fa($a(N)),I=t+"_"+R,g=y??i,P=async(a,n,e="",i="")=>{const s=ja(t,a,R);return await _(Ga+Ha+Ya+s+`()RETURNS ${e}trigger AS $$ ${i}BEGIN ${n}END;$$ LANGUAGE plpgsql;`),s},k=async(a,t,n,e)=>(await _(Ga+a+"TRIGGER"+t+n+"EXECUTE "+Ya+e+"()"),t),U=a=>`PERFORM pg_notify('${I}',${a});`,G=(a,t)=>m?s:2===t?G(a,0)+" OR "+G(a,1):Ka(na(N[0],a)?.[2]??s,0==t?"NEW":"OLD"),x=(a,e)=>f(h([Sa,Da,ba],(i,s)=>{const c=T([t,"d",R,a,i],"_");return k(Ha,O(Ot,a)&&v(c)<=63?Xa(c):ja(t,"d",R,i,n+fa(a)),`AFTER ${i} ON${Xa(a)}FOR EACH ROW WHEN(${G(a,s)})`,e)})),H=async a=>{$(a)||await _(`DROP FUNCTION IF EXISTS${T(a,",")}CASCADE`)},Y=(a,t)=>{na(a,R)===t&&(sa(a,R),F(a)&&na(At,g)===a&&sa(At,g))},B=async()=>{const a=ca(At,g,()=>ta()),n=na(a,R);if(n)return await n[1],n[0]?(n[0]++,n):(await b(()=>n[4]),await B());const e=[],i=[1,void 0,e];sa(a,R,i),i[1]=(async()=>{const a=await P("c",`FOR row IN SELECT object_identity FROM pg_event_trigger_ddl_commands()${Ia} command_tag='${xa}' LOOP ${U("'c:'||SPLIT_PART(row.object_identity,'.',2)")}END LOOP;`,"event_","DECLARE row record;");S(e,a),await k("EVENT ",ja(t,"c",R),`ON ddl_command_end WHEN TAG IN('${xa}')`,a);const n=await P("d",U("'d:'||TG_TABLE_NAME")+"RETURN NULL;");S(e,n),i[3]=n,await f(h(M(A),async a=>(await _(xa+` IF NOT EXISTS${Xa(a)}("_id"text PRIMARY KEY)`),await x(a,n))))})();try{await i[1]}catch(t){throw i[0]=0,i[4]=p(()=>H(e),()=>Y(a,i)),await b(()=>i[4]),t}return i},W=async a=>{if(0==--a[0]){const t=na(At,g);a[4]=p(()=>H(a[2]),()=>Y(t,a)),await a[4]}};return(m?Nt:vt)(a,_,async a=>{const t=await B();try{return[await c(I,n=>{L(()=>{return E((e=n,i=$t,e?.match(i)),async([,n,e])=>{C(A,e)&&("c:"==n&&await x(e,t[3]),await a())});var e,i},w)}),t]}catch(a){throw await L(()=>W(t),w),a}},async([a,t])=>{await p(()=>r(a),()=>W(t))},w,l,u,N,M(A),async(a,t)=>await a(ha+` c.table_name tn,c.column_name cn,CASE WHEN tc.constraint_type IN('PRIMARY KEY','UNIQUE')AND(${ha} count(*) FROM information_schema.key_column_usage kcu2 ${Ia} kcu2.constraint_schema=kcu.constraint_schema AND kcu2.constraint_name=kcu.constraint_name)=1 THEN 1 ELSE 0 END uq FROM information_schema.columns c LEFT JOIN information_schema.key_column_usage kcu ON kcu.table_schema=c.table_schema AND kcu.table_name=c.table_name AND kcu.column_name=c.column_name LEFT JOIN information_schema.table_constraints tc ON tc.constraint_schema=kcu.constraint_schema AND tc.constraint_name=kcu.constraint_name ${Ia} c.table_schema='public'AND c.table_name IN(${qa(t)})`,t),y,d,"text",void 0,a=>Na(a),a=>va(a))},Rt=(a,t,e,i,s,c,o,w,y,_,E="getDb",m,N)=>{let v,$,O;const A=Wa(e,c),[f,R,T,h]=_t(t);return!f&&a.isMergeable()&&D(0),(f?Nt:vt)(a,A,a=>{let t,n,e=1,c=0,w=0;const y=async(t=!0)=>{const[{d:n,s:i,c:s}]=await A(ha+` ${Pa} d,${ka} s,TOTAL_CHANGES() c FROM ${Ma}${Pa} JOIN ${Ma}${ka}`);if(e&&(n!=v||i!=$||s!=O)){const c=t&&!w&&!l(v);v=n,$=i,O=s,c&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},_=(i=!1)=>{if(n)return n;const s=p(()=>L(async()=>{for(c?i&&await y():(await y(!1),c=1);e&&w;)w=0,await y(!1),e&&(await a(),await y())},o),()=>{n==s&&(n=void 0),e&&(w?_():e&&u(t)&&(t=setInterval(()=>_(!0),1e3*R)))});return n=s,s},E=i(a=>{e&&C(h,a)&&(w=1,d(),r.resolve().then(()=>e?void _():0))});return _().then(()=>async()=>{e=0,w=0,d(),await p(async()=>await n,async()=>{v=$=O=null,await s(E)})})},a=>a(),o,w,y,T,M(h),async(a,t)=>await a(ha+` t.name tn,c.name cn,c.pk OR EXISTS(${ha} 1 FROM ${Ma}index_list(t.name)i,${Ma}index_info(i.name)ii ${Ia} i."unique"=1 AND ii.name=c.name AND(${ha} count(*) FROM ${Ma}index_info(i.name))=1)uq FROM ${Ua}list()t,${Ua}info(t.name)c ${Ia} t.schema='main'AND t.type IN('table','view')AND t.name IN(${qa(t)})ORDER BY t.name,c.name`,t),_,E,n,m,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,N)};export{ya as Persists,ua as Status,ma as createCustomPersister,ft as createCustomPostgreSqlPersister,Rt as createCustomSqlitePersister};
1
+ const a=a=>typeof a,t="tinybase",n="",e=",",i=a(n),s="true",c=(a,t,n)=>a.replace(t,n),r=Promise,o=a=>(t,n,e)=>a(t)?e?.():n(t),w=globalThis,l=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,_=o(l),E=o(u),m=t=>a(t)==i,N=a=>Array.isArray(a),v=a=>a.length,$=a=>0==v(a),O=(a,t)=>a.test(t),A=a=>new r(a),f=async a=>r.all(a),R=(a,t)=>a.forEach(t),T=(a,t="")=>a.join(t),h=(a,t)=>a.map(t),I=(a,t)=>a.filter(t),g=(a,t=v(a))=>a.splice(0,t),S=(a,...t)=>a.push(...t),D=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},b=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},L=(a,t)=>b(a,a=>{b(()=>t?.(a))}),p=async(a,t)=>{try{return await a()}finally{await t()}},C=(a,t)=>a?.has(t)??!1,F=a=>u(a)||0==(a=>a?.size??0)(a),M=a=>[...a?.values()??[]],P=a=>a.clear(),k=(a,t)=>a?.forEach(t),U=(a,t)=>a?.delete(t),G=Object,x=a=>G.getPrototypeOf(a),H=G.entries,Y=a=>!l(a)&&_(x(a),a=>a==G.prototype||l(x(a)),()=>!0),B=G.keys,W=G.freeze,X=(...a)=>G.assign(G.create(null),...a),j=(a,t,n)=>(G.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),q=(a=[])=>{const t=G.create(null);return R(a,([a,n])=>j(t,a,n)),t},J=(a,t)=>(delete a[t],a),K=(a,t)=>R(B(a),n=>t(a[n],n)),z=(a,t)=>h(H(a),([a,n])=>t(n,a)),Q=(a,t)=>{const n=q();return K(a,(a,e)=>j(n,e,t(a,e))),n},V=a=>v(B(a)),Z=a=>Y(a)&&0==V(a),aa=Map,ta=a=>new aa(a),na=(a,t)=>a?.get(t),ea=(a,t)=>k(a,(a,n)=>t(n,a)),ia=(a,t)=>{const n=[];return ea(a,(a,e)=>S(n,t(e,a))),n},sa=(a,t,n)=>u(n)?(U(a,t),a):a?.set(t,n),ca=(a,t,n,e)=>{let i=na(a,t);return C(a,t)?e?.(i):sa(a,t,i=n()),i},ra=(a,t,n,e,i=0)=>E((n?ca:na)(a,t[i],i>v(t)-2?n:ta),s=>{if(i>v(t)-2)return e?.(s)&&sa(a,t[i]),s;const c=ra(s,t,n,e,i+1);return F(s)&&sa(a,t[i]),c}),oa=/^\d+$/,wa=a=>new Set(N(a)||u(a)?a:[a]),la=(a,t)=>a?.add(t),ua={Idle:0,Loading:1,Saving:2},ya={StoreOnly:1,MergeableStoreOnly:2,StoreOrMergeableStore:3},da=ta(),_a=ta(),Ea=ta(),ma=(a,t,e,i,s,c,r,o={},w=0,l=[])=>{let d,_,m,f,T,C=0,M=0,P=0,G=0,x=0,H=0,Y=0,B=0,X=0;const j={},q=o.destroy;ca(da,l,()=>0),ca(_a,l,()=>[]),sa(Ea,l,(na(Ea,l)??0)+1);const J=ta(),[K,z,Q,V,aa]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!Z(a)||!Z(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!Z(a)||!Z(t),t.setContent]:D(0))(r,a,w),[ea,ia,ua]=(a=>{let t;const[e,i]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{O(oa,t)&&v(a)<1e3&&S(a,t)}]})(),s=ta(),c=(a,e,i,c)=>{let r,o=!1;if(R(((a,t=[n])=>{const e=[],i=(a,n)=>n==v(t)?S(e,a):y(t[n])?k(a,a=>i(a,n+1)):R([t[n],null],t=>i(na(a,t),n+1));return i(a,0),e})(e,i),n=>k(n,n=>{const e=()=>na(s,n)[0](t,...i??[],...c);a?(a=>{try{return a()}catch(a){(a=>{o||(r=a),o=!0})?.(a)}})(e):e()})),o)throw r};return[(i,c,r,o=[],w=()=>[])=>{t??=a();const l=e(1);return sa(s,l,[i,c,r,o,w]),la(ra(c,r??[n],wa),l),l},(a,t,...n)=>c(!1,a,t,n),a=>E(na(s,a),([,t,e])=>(ra(t,e??[n],void 0,t=>(U(t,a),F(t)?1:0)),sa(s,a),i(a),e)),a=>E(na(s,a),([a,,n=[],e,i])=>{const s=(...c)=>{const r=v(c);r==v(n)?a(t,...c,...i(c)):y(n[r])?R(e[r]?.(...c)??[],a=>s(...c,a)):s(...c,n[r])};s()}),(a,t,...n)=>c(!0,a,t,n)]})(()=>ba),ya=a=>{a!=C&&(C=a,ia(J,void 0,C))},ma=()=>{na(Ea,l)||na(da,l)||!$(na(_a,l)??[])||(sa(da,l),sa(_a,l),sa(Ea,l))},Na=t=>{(K&&N(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},va=async()=>{ga()&&a.__?.[0]?.()&&await Ta()},$a=a=>p(()=>_=a,()=>{_==a&&(_=void 0)}),Oa=async a=>(2!=C&&(await p(async()=>{ya(1),M++,await Da(()=>b(async()=>{const n=await t();N(n)?Na(n):u(n)&&a?aa(a):u(n)||D(1,n)},t=>{c?.(t),a&&aa(a)}))},()=>ya(0)),await va()),ba),Aa=async()=>{const a=Y;Y=0,a&&a==G&&!X&&(2==C?Y=a:await Oa())},fa=async a=>{const t=++G;let n=!0;if(await Ra(!0),t==G&&!X){const e=b(async()=>{const a=await i(async(a,e)=>{if(t==G&&!X)if(e||a){const t=n||2==C||!!H;x++,t&&H++,await p(async()=>{ya(1),M++,await(t?Da(()=>Na(e??a)):(()=>{try{return Na(e??a)}finally{ya(0)}})())},()=>{t&&H--,--x||ya(0)}),x||await va()}else 2==C?Y=t:await Oa()});t!=G||X?u(a)||await s(a):d=a},c);await $a(e),t!=G||X||await p(()=>Oa(a),()=>{n=!1})}return ba},Ra=async(a=!1)=>{Y=0,a||G++;const t=_,n=d;return d=void 0,await $a(p(async()=>{await t},async()=>{u(n)||await b(()=>s(n),c)})),ba},Ta=async a=>(1!=C&&await p(()=>p(async()=>{ya(2),P++,await Da(()=>b(()=>e(z,a),c))},()=>ya(0)),Aa),ba),ha=async()=>{const t=++B;return await Ia(!0),t!=B||X||(await Ta(),t!=B||X||(m=a.addDidFinishTransactionListener(()=>{if(t==B&&!X){const a=Q();V(a)&&b(()=>Ta(a))}}))),ba},Ia=async(t=!1)=>{t||B++;const n=m;return m=void 0,u(n)||a.delListener(n),ba},ga=()=>!u(m),Sa=async(a=!1)=>{const[t,n]=a?[Ia,Ra]:[Ra,Ia];return await p(()=>t(),async()=>{await n()}),ba},Da=async(...a)=>{let t,n=!1;const e=A(e=>$(a)?e():S(na(_a,l),...h(a,(i,s)=>{const r=s==v(a)-1;return[async()=>{let a;T=A(t=>a=t),await p(async()=>{try{await b(i,c)}catch(a){n||(n=!0,t=a)}r&&e()},()=>{T=void 0,a()})},r?e:void 0,j]})));if(await(async()=>{if(!na(da,l)){sa(da,l,1);const a=na(_a,l);let t=0;await p(async()=>{for(;t<v(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{g(a,t),sa(da,l,0),ma()})}})(),await e,n)throw t;return ba},ba={load:Oa,startAutoLoad:fa,stopAutoLoad:Ra,isAutoLoading:()=>!u(d),save:Ta,startAutoSave:ha,stopAutoSave:Ia,isAutoSaving:ga,startAutoPersisting:async(a,t=!1)=>{const[n,e,i,s]=t?[ha,fa,Ia,Ra]:[fa,ha,Ra,Ia],c=n(a),r=t?B:G;await c;const o=e(a),w=t?G:B;try{await o}catch(a){throw w==(t?G:B)&&await L(s),r==(t?B:G)&&await L(i),a}return ba},stopAutoPersisting:Sa,getStatus:()=>C,addStatusListener:a=>ea(a,J),delListener:t=>(ua(t),a),schedule:Da,getStore:()=>a,getStats:()=>({loads:M,saves:P}),...o,destroy:async()=>(u(f)&&(X=1,f=(async()=>{const a=na(_a,l),t=I(a,([,a,t])=>t!=j||(a?.(),!1)),n=T;g(a),S(a,...t),await p(()=>p(()=>p(Sa,()=>n),()=>q?.()),()=>{const a=(na(Ea,l)??1)-1;sa(Ea,l,a||void 0),ma()})})()),await f,ba)};return W(ba)},Na=JSON.stringify,va=JSON.parse,$a=a=>Na(a,(a,t)=>u(t)?"":t),Oa=a=>""===a?void 0:N(a)?h(a,Oa):Y(a)?Q(a,Oa):a,Aa=new w.TextEncoder,fa=a=>{let t=2166136261;return R(Aa.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0},Ra="_",Ta="_id",ha="SELECT",Ia="WHERE",ga="TABLE",Sa="INSERT",Da="DELETE",ba="UPDATE",La="ALTER "+ga,pa="FROM",Ca=Da+" "+pa,Fa=ha+"*"+pa,Ma="pragma_",Pa="data_version",ka="schema_version",Ua="pragma_table_",Ga="CREATE ",xa=Ga+ga,Ha="OR REPLACE ",Ya="FUNCTION",Ba=/\$tableName/g,Wa=(a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a,Xa=a=>T(h(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${c(a,/"/g,'""')}"`),"."),ja=(...a)=>Xa(T(a,"_")),qa=a=>"$"+a[0]++,Ja=()=>"?",Ka=(a,t,n=[1])=>T(h(a,()=>t(n)),e),za=(a,t=s)=>Ia+`(${Qa(t,Xa(a))})`,Qa=(a,t)=>c(a,Ba,t),Va="ColumnName",Za="store",at="json",tt=Za+"TableName",nt=Za+"Id"+Va,et=Za+Va,it="autoLoadIntervalSeconds",st="rowId"+Va,ct="tableId",rt="tableName",ot="deleteEmptyColumns",wt="deleteEmptyTable",lt="condition",ut={mode:at,[it]:1},yt={load:0,save:0,[rt]:t+"_values"},dt=a=>N(a)?a:void 0,_t=a=>d(a)||N(a),Et=(a,t,n,e,i)=>{const s=ta();return K(a,(a,c)=>{const r=(l=X(t,m(a)?{[n]:a}:a),o=G.values(l),w=V(t),o.slice(0,w));var o,w,l;y(r[0])||e(c,r[0])||(i(c,r[0]),sa(s,c,r))}),s},mt=a=>{const n=(a=>X(ut,m(a)?{[tt]:a}:a??{}))(a),e=n[it];if(n.mode==at){const a=n[tt]??t;return[1,e,[a,n[nt]??Ta,n[et]??Za],wa(a)]}const{tables:{load:i={},save:c={}}={},values:r={}}=n,o=X(yt,r),{load:w,save:l}=o,u=[_t(w),_t(l),o[rt],dt(w),dt(l)],y=u[2],d=wa(y),_=wa(y),E=Et(i,{[ct]:null,[st]:Ta,[lt]:s},ct,a=>C(_,a),a=>la(d,a)),N=Et(c,{[rt]:null,[st]:Ta,[ot]:0,[wt]:0,[lt]:null},rt,(a,t)=>C(_,t),(a,t)=>la(d,t));return ea(N,(a,t)=>t[4]??=na(E,t[0])?.[2]??s),[0,e,[E,N,u],d]},Nt=(a,n,i,c,r,o=vt,w,l,y)=>{const d=ta(),_=ta();let E=a;return[async()=>{P(d),P(_),R(await i(E,n),({tn:a,cn:t,uq:n})=>{la(ca(d,a,wa),t),n&&la(ca(_,a,wa),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:wa(e);return((a,t)=>C(na(d,a),t))(a,t)?q(I(h(await E(Fa+Xa(a)+za(a,n)),a=>{const n=a[t],e=l?Q(J(a,t),l):J(a,t);return[n,u(i)?e:q(I(z(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||C(i,a))(a)))]}),a=>!u(a[0])&&!Z(a[1]))):{}},async(a,n,i,l,y,m=!1,N=s,v)=>{const O=u(v)?void 0:wa(v),A=a=>u(O)||C(O,a),g=wa();K(i??{},a=>R(I(B(a??{}),A),a=>la(g,a)));const D=M(g);if(u(O)&&!m&&y&&N==s&&$(D)&&C(d,a))return await E("DROP "+ga+Xa(a)),sa(d,a),void sa(_,a);const b=na(d,a),L=wa(I(M(b),a=>a==n||A(a)));if(!$(D))if(C(d,a)){if(await f(h([n,...D],async t=>{U(L,t)||(await E(La+Xa(a)+"ADD"+Xa(t)+c),la(b,t))})),o==vt&&!C(na(_,a),n)){const e=t+"_pk_"+fa(Na([a,n]));await E("CREATE UNIQUE INDEX IF NOT EXISTS"+Xa(e)+"ON"+Xa(a)+`(${Xa(n)})`),la(ca(_,a,wa),n)}}else await E(xa+Xa(a)+`(${Xa(n)}${c} PRIMARY KEY${T(h(D,a=>e+Xa(a)+c))});`),sa(d,a,wa([n,...D])),sa(_,a,wa([n]));if(await f([...!m&&l?h(M(L),async t=>{t!=n&&(await E(La+Xa(a)+"DROP"+Xa(t)),U(b,t))}):[]]),m)u(i)?u(O)&&await E(Ca+Xa(a)+za(a,N)):await f(z(i,async(t,e)=>{if(u(t))await E(Ca+Xa(a)+za(a,N)+`AND(${Xa(n)}=${r([1])})`,[e]);else if(!$(D)){const i=I(B(t),A);$(i)||await o(E,a,n,i,{[e]:h(i,a=>w?w(t[a]):t[a])},r,b)}}));else if($(D))u(O)&&C(d,a)&&await E(Ca+Xa(a)+za(a,N));else{const t=I(M(na(d,a)),a=>a!=n&&A(a)),e=q(),s=[];K(i??{},(a,n)=>{j(e,n,h(t,t=>w?w(a?.[t]):a?.[t])),S(s,n)}),await o(E,a,n,t,e,r,b),await E(Ca+Xa(a)+za(a,N)+`AND${Xa(n)}NOT IN(${Ka(s,r)})`,s)}},async t=>{if(y)return await y(async a=>{const n=E;return E=a,await p(t,()=>{E=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await b(()=>a("ROLLBACK")),t}}]},vt=async(a,t,n,i,s,c)=>{const r=[1];await a(Sa+" INTO"+Xa(t)+"("+((...a)=>T(h(a,Xa),e))(n,...i)+")VALUES"+T(z(s,a=>"("+c(r)+","+Ka(a,c,r)+")"),e)+"ON CONFLICT("+Xa(n)+`)DO ${ba} SET`+T(h(i,a=>Xa(a)+"=excluded."+Xa(a)),e),z(s,(a,t)=>[t,...h(a,a=>a??null)]).flat())},$t=(a,t,n,e,i,s,c,[r,o,w],l,u,y,d,_,E,m,N,v,$)=>{const[O,A,f,R]=Nt(t,l,u,_,E,m,void 0,void 0,$);return ma(a,()=>R(async()=>{return await O(),a=(await A(r,o))[Ra]?.[w]??"null",Oa(va(a));var a}),a=>R(async()=>{await O(),await f(r,o,{[Ra]:{[w]:$a(a()??null)}},!0,!0)}),n,e,i,c,{[d]:()=>y,destroy:s},0,y)},Ot=(a,t,n,e,i,s,c,[r,o,[w,l,y,d,_]],E,m,N,v,$,O,A,R,T,g)=>{const[S,D,b,L]=Nt(t,E,m,$,O,A,R,T,g),p=(a,t)=>f(ia(o,async([n,e,i,s,c],r)=>{var o,w;t&&(o=a,w=r,!G.hasOwn(o,w))||await b(n,e,a[r],i,s,t,c)})),C=(a,t,n)=>q(1==n?I(z(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):I(h(t,t=>[t,a[t]]),([,a])=>!u(a))),F=async(a,t)=>l?await b(y,Ta,{[Ra]:u(_)?a:C(a,_,t)},!0,!0,t,void 0,_):null;return ma(a,()=>L(async()=>{await S();const a=await(async()=>q(I(await f(ia(r,async([a,t,n],e)=>[a,await D(e,t,n)])),a=>!Z(a[1]))))(),t=await(async()=>w?(await D(y,Ta,void 0,d))[Ra]:{})();return Z(a)&&u(t)?void 0:[a,t]}),(a,t)=>L(async()=>{if(await S(),u(t)){const[t,n]=a();await p(t),await F(n)}else await p(t[0],!0),await F(t[1],!0)}),n,e,i,c,{[v]:()=>N,destroy:s},0,N)},At=/^([cd]:)(.+)/,ft=/^[A-Za-z0-9_]+$/,Rt=ta(),Tt=(a,e,i,c,r,o,w,l,u,y,d="getDb")=>{const _=Wa(i,o),[m,,N,A]=mt(e);!m&&a.isMergeable()&&D(0);const R=n+fa($a(N)),I=t+"_"+R,g=y??i,P=async(a,n,e="",i="")=>{const s=ja(t,a,R);return await _(Ga+Ha+Ya+s+`()RETURNS ${e}trigger AS $$ ${i}BEGIN ${n}END;$$ LANGUAGE plpgsql;`),s},k=async(a,t,n,e)=>(await _(Ga+a+"TRIGGER"+t+n+"EXECUTE "+Ya+e+"()"),t),U=a=>`PERFORM pg_notify('${I}',${a});`,G=(a,t)=>m?s:2===t?G(a,0)+" OR "+G(a,1):Qa(na(N[0],a)?.[2]??s,0==t?"NEW":"OLD"),x=(a,e)=>f(h([Sa,Da,ba],(i,s)=>{const c=T([t,"d",R,a,i],"_");return k(Ha,O(ft,a)&&v(c)<=63?Xa(c):ja(t,"d",R,i,n+fa(a)),`AFTER ${i} ON${Xa(a)}FOR EACH ROW WHEN(${G(a,s)})`,e)})),H=async a=>{$(a)||await _(`DROP FUNCTION IF EXISTS${T(a,",")}CASCADE`)},Y=(a,t)=>{na(a,R)===t&&(sa(a,R),F(a)&&na(Rt,g)===a&&sa(Rt,g))},B=async()=>{const a=ca(Rt,g,()=>ta()),n=na(a,R);if(n)return await n[1],n[0]?(n[0]++,n):(await b(()=>n[4]),await B());const e=[],i=[1,void 0,e];sa(a,R,i),i[1]=(async()=>{const a=await P("c",`FOR row IN SELECT object_identity FROM pg_event_trigger_ddl_commands()${Ia} command_tag='${xa}' LOOP ${U("'c:'||SPLIT_PART(row.object_identity,'.',2)")}END LOOP;`,"event_","DECLARE row record;");S(e,a),await k("EVENT ",ja(t,"c",R),`ON ddl_command_end WHEN TAG IN('${xa}')`,a);const n=await P("d",U("'d:'||TG_TABLE_NAME")+"RETURN NULL;");S(e,n),i[3]=n,await f(h(M(A),async a=>(await _(xa+` IF NOT EXISTS${Xa(a)}("_id"text PRIMARY KEY)`),await x(a,n))))})();try{await i[1]}catch(t){throw i[0]=0,i[4]=p(()=>H(e),()=>Y(a,i)),await b(()=>i[4]),t}return i},W=async a=>{if(0==--a[0]){const t=na(Rt,g);a[4]=p(()=>H(a[2]),()=>Y(t,a)),await a[4]}};return(m?$t:Ot)(a,_,async a=>{const t=await B();try{return[await c(I,n=>{L(()=>{return E((e=n,i=At,e?.match(i)),async([,n,e])=>{C(A,e)&&("c:"==n&&await x(e,t[3]),await a())});var e,i},w)}),t]}catch(a){throw await L(()=>W(t),w),a}},async([a,t])=>{await p(()=>r(a),()=>W(t))},w,l,u,N,M(A),async(a,t)=>await a(ha+` c.table_name tn,c.column_name cn,CASE WHEN tc.constraint_type IN('PRIMARY KEY','UNIQUE')AND(${ha} count(*) FROM information_schema.key_column_usage kcu2 ${Ia} kcu2.constraint_schema=kcu.constraint_schema AND kcu2.constraint_name=kcu.constraint_name)=1 THEN 1 ELSE 0 END uq FROM information_schema.columns c LEFT JOIN information_schema.key_column_usage kcu ON kcu.table_schema=c.table_schema AND kcu.table_name=c.table_name AND kcu.column_name=c.column_name LEFT JOIN information_schema.table_constraints tc ON tc.constraint_schema=kcu.constraint_schema AND tc.constraint_name=kcu.constraint_name ${Ia} c.table_schema='public'AND c.table_name IN(${Ka(t,qa)})`,t),y,d,"text",qa,void 0,a=>Na(a),a=>va(a))},ht=(a,t,e,i,s,c,o,w,y,_,E="getDb",m,N)=>{let v,$,O;const A=Wa(e,c),[f,R,T,h]=mt(t);return!f&&a.isMergeable()&&D(0),(f?$t:Ot)(a,A,a=>{let t,n,e=1,c=0,w=0;const y=async(t=!0)=>{const[{d:n,s:i,c:s}]=await A(ha+` ${Pa} d,${ka} s,TOTAL_CHANGES() c FROM ${Ma}${Pa} JOIN ${Ma}${ka}`);if(e&&(n!=v||i!=$||s!=O)){const c=t&&!w&&!l(v);v=n,$=i,O=s,c&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},_=(i=!1)=>{if(n)return n;const s=p(()=>L(async()=>{for(c?i&&await y():(await y(!1),c=1);e&&w;)w=0,await y(!1),e&&(await a(),await y())},o),()=>{n==s&&(n=void 0),e&&(w?_():e&&u(t)&&(t=setInterval(()=>_(!0),1e3*R)))});return n=s,s},E=i(a=>{e&&C(h,a)&&(w=1,d(),r.resolve().then(()=>e?void _():0))});return _().then(()=>async()=>{e=0,w=0,d(),await p(async()=>await n,async()=>{v=$=O=null,await s(E)})})},a=>a(),o,w,y,T,M(h),async(a,t)=>await a(ha+` t.name tn,c.name cn,c.pk OR EXISTS(${ha} 1 FROM ${Ma}index_list(t.name)i,${Ma}index_info(i.name)ii ${Ia} i."unique"=1 AND ii.name=c.name AND(${ha} count(*) FROM ${Ma}index_info(i.name))=1)uq FROM ${Ua}list()t,${Ua}info(t.name)c ${Ia} t.schema='main'AND t.type IN('table','view')AND t.name IN(${Ka(t,Ja)})ORDER BY t.name,c.name`,t),_,E,n,Ja,m,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,N)};export{ya as Persists,ua as Status,ma as createCustomPersister,Tt as createCustomPostgreSqlPersister,ht as createCustomSqlitePersister};