tinybase 10.0.0-beta.1 → 10.0.0-beta.2

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 (149) hide show
  1. package/@types/common/index.d.ts +1 -0
  2. package/@types/common/with-schemas/index.d.ts +1 -0
  3. package/@types/indexes/index.d.ts +1 -0
  4. package/@types/indexes/with-schemas/index.d.ts +1 -0
  5. package/@types/metrics/index.d.ts +1 -0
  6. package/@types/metrics/with-schemas/index.d.ts +1 -0
  7. package/@types/omni/index.d.ts +1 -0
  8. package/@types/omni/with-schemas/index.d.ts +1 -0
  9. package/@types/persisters/index.d.ts +1 -0
  10. package/@types/persisters/persister-partykit-server/index.d.ts +17 -0
  11. package/@types/persisters/persister-partykit-server/with-schemas/index.d.ts +17 -0
  12. package/@types/persisters/persister-tinyjoin/index.d.ts +197 -0
  13. package/@types/persisters/persister-tinyjoin/with-schemas/index.d.ts +221 -0
  14. package/@types/persisters/with-schemas/index.d.ts +1 -0
  15. package/@types/queries/index.d.ts +3 -0
  16. package/@types/queries/with-schemas/index.d.ts +3 -0
  17. package/@types/relationships/index.d.ts +1 -0
  18. package/@types/relationships/with-schemas/index.d.ts +1 -0
  19. package/@types/store/index.d.ts +4 -0
  20. package/@types/store/with-schemas/index.d.ts +4 -0
  21. package/@types/ui-react/index.d.ts +2 -0
  22. package/@types/ui-react/with-schemas/index.d.ts +1 -0
  23. package/@types/ui-react-dom-charts/index.d.ts +7 -0
  24. package/@types/ui-react-dom-charts/with-schemas/index.d.ts +7 -0
  25. package/@types/ui-solid/index.d.ts +2 -0
  26. package/@types/ui-solid/with-schemas/index.d.ts +1 -0
  27. package/@types/ui-svelte/index.d.ts +23 -0
  28. package/@types/ui-svelte/with-schemas/index.d.ts +23 -0
  29. package/@types/ui-svelte-dom/index.d.ts +10 -0
  30. package/@types/ui-svelte-dom/with-schemas/index.d.ts +10 -0
  31. package/@types/ui-svelte-inspector/index.d.ts +1 -0
  32. package/@types/ui-svelte-inspector/with-schemas/index.d.ts +1 -0
  33. package/min/omni/index.js +1 -1
  34. package/min/omni/index.js.gz +0 -0
  35. package/min/omni/with-schemas/index.js +1 -1
  36. package/min/omni/with-schemas/index.js.gz +0 -0
  37. package/min/persisters/index.js +1 -1
  38. package/min/persisters/index.js.gz +0 -0
  39. package/min/persisters/persister-better-sqlite3/index.js +1 -1
  40. package/min/persisters/persister-better-sqlite3/index.js.gz +0 -0
  41. package/min/persisters/persister-better-sqlite3/with-schemas/index.js +1 -1
  42. package/min/persisters/persister-better-sqlite3/with-schemas/index.js.gz +0 -0
  43. package/min/persisters/persister-capacitor-sqlite/index.js +1 -1
  44. package/min/persisters/persister-capacitor-sqlite/index.js.gz +0 -0
  45. package/min/persisters/persister-capacitor-sqlite/with-schemas/index.js +1 -1
  46. package/min/persisters/persister-capacitor-sqlite/with-schemas/index.js.gz +0 -0
  47. package/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  48. package/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  49. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  50. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  51. package/min/persisters/persister-durable-object-sql-storage/index.js +1 -1
  52. package/min/persisters/persister-durable-object-sql-storage/index.js.gz +0 -0
  53. package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js +1 -1
  54. package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js.gz +0 -0
  55. package/min/persisters/persister-electric-sql/index.js +1 -1
  56. package/min/persisters/persister-electric-sql/index.js.gz +0 -0
  57. package/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  58. package/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  59. package/min/persisters/persister-expo-sqlite/index.js +1 -1
  60. package/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  61. package/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  62. package/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  63. package/min/persisters/persister-libsql/index.js +1 -1
  64. package/min/persisters/persister-libsql/index.js.gz +0 -0
  65. package/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  66. package/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  67. package/min/persisters/persister-pg/index.js +1 -1
  68. package/min/persisters/persister-pg/index.js.gz +0 -0
  69. package/min/persisters/persister-pg/with-schemas/index.js +1 -1
  70. package/min/persisters/persister-pg/with-schemas/index.js.gz +0 -0
  71. package/min/persisters/persister-pglite/index.js +1 -1
  72. package/min/persisters/persister-pglite/index.js.gz +0 -0
  73. package/min/persisters/persister-pglite/with-schemas/index.js +1 -1
  74. package/min/persisters/persister-pglite/with-schemas/index.js.gz +0 -0
  75. package/min/persisters/persister-postgres/index.js +1 -1
  76. package/min/persisters/persister-postgres/index.js.gz +0 -0
  77. package/min/persisters/persister-postgres/with-schemas/index.js +1 -1
  78. package/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
  79. package/min/persisters/persister-powersync/index.js +1 -1
  80. package/min/persisters/persister-powersync/index.js.gz +0 -0
  81. package/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  82. package/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  83. package/min/persisters/persister-react-native-sqlite/index.js +1 -1
  84. package/min/persisters/persister-react-native-sqlite/index.js.gz +0 -0
  85. package/min/persisters/persister-react-native-sqlite/with-schemas/index.js +1 -1
  86. package/min/persisters/persister-react-native-sqlite/with-schemas/index.js.gz +0 -0
  87. package/min/persisters/persister-sqlite-bun/index.js +1 -1
  88. package/min/persisters/persister-sqlite-bun/index.js.gz +0 -0
  89. package/min/persisters/persister-sqlite-bun/with-schemas/index.js +1 -1
  90. package/min/persisters/persister-sqlite-bun/with-schemas/index.js.gz +0 -0
  91. package/min/persisters/persister-sqlite-node/index.js +1 -1
  92. package/min/persisters/persister-sqlite-node/index.js.gz +0 -0
  93. package/min/persisters/persister-sqlite-node/with-schemas/index.js +1 -1
  94. package/min/persisters/persister-sqlite-node/with-schemas/index.js.gz +0 -0
  95. package/min/persisters/persister-sqlite-wasm/index.js +1 -1
  96. package/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  97. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  98. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  99. package/min/persisters/persister-sqlite3/index.js +1 -1
  100. package/min/persisters/persister-sqlite3/index.js.gz +0 -0
  101. package/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  102. package/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  103. package/min/persisters/persister-tinyjoin/index.js +1 -0
  104. package/min/persisters/persister-tinyjoin/index.js.gz +0 -0
  105. package/min/persisters/persister-tinyjoin/with-schemas/index.js +1 -0
  106. package/min/persisters/persister-tinyjoin/with-schemas/index.js.gz +0 -0
  107. package/min/persisters/with-schemas/index.js +1 -1
  108. package/min/persisters/with-schemas/index.js.gz +0 -0
  109. package/omni/index.js +146 -66
  110. package/omni/with-schemas/index.js +146 -66
  111. package/package.json +41 -1
  112. package/persisters/index.js +28 -13
  113. package/persisters/persister-better-sqlite3/index.js +70 -55
  114. package/persisters/persister-better-sqlite3/with-schemas/index.js +70 -55
  115. package/persisters/persister-capacitor-sqlite/index.js +70 -55
  116. package/persisters/persister-capacitor-sqlite/with-schemas/index.js +70 -55
  117. package/persisters/persister-cr-sqlite-wasm/index.js +70 -55
  118. package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +70 -55
  119. package/persisters/persister-durable-object-sql-storage/index.js +28 -13
  120. package/persisters/persister-durable-object-sql-storage/with-schemas/index.js +28 -13
  121. package/persisters/persister-electric-sql/index.js +70 -55
  122. package/persisters/persister-electric-sql/with-schemas/index.js +70 -55
  123. package/persisters/persister-expo-sqlite/index.js +70 -55
  124. package/persisters/persister-expo-sqlite/with-schemas/index.js +70 -55
  125. package/persisters/persister-libsql/index.js +70 -55
  126. package/persisters/persister-libsql/with-schemas/index.js +70 -55
  127. package/persisters/persister-pg/index.js +77 -62
  128. package/persisters/persister-pg/with-schemas/index.js +77 -62
  129. package/persisters/persister-pglite/index.js +28 -13
  130. package/persisters/persister-pglite/with-schemas/index.js +28 -13
  131. package/persisters/persister-postgres/index.js +28 -13
  132. package/persisters/persister-postgres/with-schemas/index.js +28 -13
  133. package/persisters/persister-powersync/index.js +81 -66
  134. package/persisters/persister-powersync/with-schemas/index.js +81 -66
  135. package/persisters/persister-react-native-sqlite/index.js +70 -55
  136. package/persisters/persister-react-native-sqlite/with-schemas/index.js +70 -55
  137. package/persisters/persister-sqlite-bun/index.js +70 -55
  138. package/persisters/persister-sqlite-bun/with-schemas/index.js +70 -55
  139. package/persisters/persister-sqlite-node/index.js +70 -55
  140. package/persisters/persister-sqlite-node/with-schemas/index.js +70 -55
  141. package/persisters/persister-sqlite-wasm/index.js +70 -55
  142. package/persisters/persister-sqlite-wasm/with-schemas/index.js +70 -55
  143. package/persisters/persister-sqlite3/index.js +70 -55
  144. package/persisters/persister-sqlite3/with-schemas/index.js +70 -55
  145. package/persisters/persister-tinyjoin/index.js +1710 -0
  146. package/persisters/persister-tinyjoin/with-schemas/index.js +1710 -0
  147. package/persisters/with-schemas/index.js +28 -13
  148. package/readme.md +3 -3
  149. package/releases.md +20 -1
@@ -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,m=a=>Array.isArray(a),N=a=>a.length,$=a=>0==N(a),_=()=>{},A=a=>new c(a),p=async a=>c.all(a),h=(a,t)=>a?.has(t)??!1,O=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),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),pa=(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},Ta=(a,t,n)=>u(n)?(S(a,t),a):a?.set(t,n),ga=(a,t,n,e)=>{let i=pa(a,t);return h(a,t)?e?.(i):Ta(a,t,i=n()),i},Ia=(a,t,n,e,i=0)=>f((n?ga:pa)(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 O(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,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]),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,_,p,h=0,T=0,g=0,M=0,U=0,j=0,k=0,q=0,J=0;const X={},Y=o.destroy;ga(Wa,w,()=>0),ga(Za,w,()=>[]),Ta(at,w,(pa(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(pa(a,t),n+1));return i(a,0),e})(e,i),n=>I(n,n=>{const e=()=>pa(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(pa(s,a),([,t,e])=>(Ia(t,e??[n],void 0,t=>(S(t,a),O(t)?1:0)),Ta(s,a),i(a),e)),a=>f(pa(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!=h&&(h=a,Z(z,void 0,h))},na=()=>{pa(at,w)||pa(Wa,w)||!$(pa(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!=h&&(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=k;k=0,a&&a==M&&!J&&(2==h?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==h||!!j;U++,t&&j++,await L(async()=>{ta(1),T++,await(t?Ea(()=>ea(e??a)):(()=>{try{return ea(e??a)}finally{ta(0)}})())},()=>{t&&j--,--U||ta(0)}),U||await ia()}else 2==h?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!=h&&await L(()=>L(async()=>{ta(2),g++,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(pa(Za,w),...P(a,(i,s)=>{const c=s==N(a)-1;return[async()=>{let a;p=A(t=>a=t),await L(async()=>{try{await R(i,r)}catch(a){n||(n=!0,t=a)}c&&e()},()=>{p=void 0,a()})},c?e:void 0,X]})));if(await(async()=>{if(!pa(Wa,w)){Ta(Wa,w,1);const a=pa(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?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:()=>h,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=pa(Za,w),t=F(a,([,a,t])=>t!=X||(a?.(),!1)),n=p;x(a),B(a,...t),await L(()=>L(()=>L(fa,()=>n),()=>Y?.()),()=>{const a=(pa(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)=>h(pa(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)||h(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(_)||h(_,a),O=Sa();fa(i??{},a=>C(F(la(a??{}),A),a=>Da(O,a)));const g=T(O);if(u(_)&&!E&&y&&m==s&&$(g)&&h(d,a))return await f("DROP "+J+aa(a)),Ta(d,a),void Ta(v,a);const I=pa(d,a),D=Sa(F(T(I),a=>a==n||A(a)));if(!$(g))if(h(d,a)){if(await p(P([n,...g],async t=>{S(D,t)||(await f(X+aa(a)+"ADD"+aa(t)+r),Da(I,t))})),o==it&&!h(pa(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 p([...!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 p(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(_)&&h(d,a)&&await f(z+aa(a)+ea(a,m));else{const t=F(T(pa(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,p,h,O]=et(t,w,y,f,E,m,void 0,void 0,_);return tt(a,()=>O(async()=>{return await A(),a=(await p(c,o))[U]?.[l]??"null",Qa(Ka(a));var a}),a=>O(async()=>{var t;await A(),await h(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,h,O,T)=>{const[g,I,S,D]=et(t,f,E,$,_,A,h,O,T),R=(a,t)=>p(Oa(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 g();const a=await(async()=>da(F(await p(Oa(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 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,p,O;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]??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=>h(v,a),a=>Da(d,a)),m=Ga(r,{[Ua]:null,[xa]:j,[ja]:0,[ka]:0,[qa]:null},Ua,(a,t)=>h(v,t),(a,t)=>Da(d,t));return ha(m,(a,t)=>t[4]??=pa(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(k+` ${K} d,${Q} s,TOTAL_CHANGES() c FROM ${H}${K} JOIN ${H}${Q}`);if(e&&(n!=A||i!=p||r!=O)){const c=t&&!s&&!w(A);A=n,p=i,O=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&&h(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=p=O=null,await o(f)})})},a=>a(),y,v,f,R,T(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=[])=>{const e=t.prepare(a);return e.reader?e.all(...n):(e.run(...n),[])},()=>_,a=>a(),e,i,_,3,t);export{ot as createBetterSqlite3Persister};
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),$=a=>a.length,_=a=>0==$(a),N=()=>{},A=a=>new c(a),p=async a=>c.all(a),h=(a,t)=>a?.has(t)??!1,O=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=$(a))=>a.splice(0,t),B=(a,...t)=>a.push(...t),U=Object,j=a=>U.getPrototypeOf(a),k=U.entries,q=a=>!w(a)&&v(j(a),a=>a==U.prototype||w(j(a)),()=>!0),J=U.keys,X=U.freeze,Y=(...a)=>U.assign(U.create(null),...a),z=(a,t,n)=>(U.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),G=(a=[])=>{const t=U.create(null);return C(a,([a,n])=>z(t,a,n)),t},H=(a,t)=>(delete a[t],a),K=(a,t)=>C(J(a),n=>t(a[n],n)),Q=(a,t)=>P(k(a),([a,n])=>t(n,a)),V=(a,t)=>{const n=G();return K(a,(a,e)=>z(n,e,t(a,e))),n},W=a=>$(J(a)),Z=a=>q(a)&&0==W(a),aa="_",ta="_id",na="SELECT",ea="WHERE",ia="TABLE",sa="ALTER "+ia,ra="FROM",ca="DELETE "+ra,oa=na+"*"+ra,la="pragma_",wa="data_version",ua="schema_version",ya="pragma_table_",da="CREATE "+ia,va=/\$tableName/g,fa=a=>M(P(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),Ea=()=>"?",ma=(a,t,n=[1])=>M(P(a,()=>t(n)),e),$a=(a,t=s,e)=>{const i=F([t==s?void 0:`(${_a(t,fa(a))})`,e],a=>!u(a));return _(i)?n:ea+M(i,"AND")},_a=(a,t)=>r(a,va,t),Na=Map,Aa=a=>new Na(a),pa=(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},Ta=(a,t,n)=>u(n)?(S(a,t),a):a?.set(t,n),ga=(a,t,n,e)=>{let i=pa(a,t);return h(a,t)?e?.(i):Ta(a,t,i=n()),i},Ia=(a,t,n,e,i=0)=>f((n?ga:pa)(a,t[i],i>$(t)-2?n:Aa),s=>{if(i>$(t)-2)return e?.(s)&&Ta(a,t[i]),s;const r=Ia(s,t,n,e,i+1);return O(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,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 K(a,(a,r)=>{const c=(w=Y(t,E(a)?{[n]:a}:a),o=U.values(w),l=W(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):q(a)?V(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,N,p,h=0,T=0,g=0,M=0,U=0,j=0,k=0,q=0,J=0;const Y={},z=o.destroy;ga(Wa,w,()=>0),ga(Za,w,()=>[]),Ta(at,w,(pa(at,w)??0)+1);const G=Aa(),[H,K,Q,V,W]=((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))(c,a,l),[aa,ta,na]=(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&&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==$(t)?B(e,a):y(t[n])?I(a,a=>i(a,n+1)):C([t[n],null],t=>i(pa(a,t),n+1));return i(a,0),e})(e,i),n=>I(n,n=>{const e=()=>pa(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(pa(s,a),([,t,e])=>(Ia(t,e??[n],void 0,t=>(S(t,a),O(t)?1:0)),Ta(s,a),i(a),e)),a=>f(pa(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const c=$(r);c==$(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),ea=a=>{a!=h&&(h=a,ta(G,void 0,h))},ia=()=>{pa(at,w)||pa(Wa,w)||!_(pa(Za,w)??[])||(Ta(Wa,w),Ta(Za,w),Ta(at,w))},sa=t=>{(H&&m(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ra=async()=>{fa()&&a.__?.[0]?.()&&await ya()},ca=a=>L(()=>v=a,()=>{v==a&&(v=void 0)}),oa=async a=>(2!=h&&(await L(async()=>{ea(1),T++,await ma(()=>R(async()=>{const n=await t();m(n)?sa(n):u(n)&&a?W(a):u(n)||D(1,n)},t=>{r?.(t),a&&W(a)}))},()=>ea(0)),await ra()),$a),la=async()=>{const a=k;k=0,a&&a==M&&!J&&(2==h?k=a:await oa())},wa=async a=>{const t=++M;let n=!0;if(await ua(!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==h||!!j;U++,t&&j++,await L(async()=>{ea(1),T++,await(t?ma(()=>sa(e??a)):(()=>{try{return sa(e??a)}finally{ea(0)}})())},()=>{t&&j--,--U||ea(0)}),U||await ra()}else 2==h?k=t:await oa()});t!=M||J?u(a)||await s(a):d=a},r);await ca(e),t!=M||J||await L(()=>oa(a),()=>{n=!1})}return $a},ua=async(a=!1)=>{k=0,a||M++;const t=v,n=d;return d=void 0,await ca(L(async()=>{await t},async()=>{u(n)||await R(()=>s(n),r)})),$a},ya=async a=>(1!=h&&await L(()=>L(async()=>{ea(2),g++,await ma(()=>R(()=>e(K,a),r))},()=>ea(0)),la),$a),da=async()=>{const t=++q;return await va(!0),t!=q||J||(await ya(),t!=q||J||(E=a.addDidFinishTransactionListener(()=>{if(t==q&&!J){const a=Q();V(a)&&R(()=>ya(a))}}))),$a},va=async(t=!1)=>{t||q++;const n=E;return E=void 0,u(n)||a.delListener(n),$a},fa=()=>!u(E),Ea=async(a=!1)=>{const[t,n]=a?[va,ua]:[ua,va];return await L(()=>t(),async()=>{await n()}),$a},ma=async(...a)=>{let t,n=!1;const e=A(e=>_(a)?e():B(pa(Za,w),...P(a,(i,s)=>{const c=s==$(a)-1;return[async()=>{let a;p=A(t=>a=t),await L(async()=>{try{await R(i,r)}catch(a){n||(n=!0,t=a)}c&&e()},()=>{p=void 0,a()})},c?e:void 0,Y]})));if(await(async()=>{if(!pa(Wa,w)){Ta(Wa,w,1);const a=pa(Za,w);let t=0;await L(async()=>{for(;t<$(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{x(a,t),Ta(Wa,w,0),ia()})}})(),await e,n)throw t;return $a},$a={load:oa,startAutoLoad:wa,stopAutoLoad:ua,isAutoLoading:()=>!u(d),save:ya,startAutoSave:da,stopAutoSave:va,isAutoSaving:fa,startAutoPersisting:async(a,t=!1)=>{const[n,e,i,s]=t?[da,wa,va,ua]:[wa,da,ua,va],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:Ea,getStatus:()=>h,addStatusListener:a=>aa(a,G),delListener:t=>(na(t),a),schedule:ma,getStore:()=>a,getStats:()=>({loads:T,saves:g}),...o,destroy:async()=>(u(N)&&(J=1,N=(async()=>{const a=pa(Za,w),t=F(a,([,a,t])=>t!=Y||(a?.(),!1)),n=p;x(a),B(a,...t),await L(()=>L(()=>L(Ea,()=>n),()=>z?.()),()=>{const a=(pa(at,w)??1)-1;Ta(at,w,a||void 0),ia()})})()),await N,$a)};return X($a)},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)=>h(pa(d,a),t))(a,t)?G(F(P(await f(oa+fa(a)+$a(a,n)),a=>{const n=a[t],e=w?V(H(a,t),w):H(a,t);return[n,u(i)?e:G(F(Q(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||h(i,a))(a)))]}),a=>!u(a[0])&&!Z(a[1]))):{}},async(a,n,i,w,y,E=!1,m=s,$)=>{const N=u($)?void 0:Sa($),A=a=>u(N)||h(N,a),O=Sa();K(i??{},a=>C(F(J(a??{}),A),a=>Da(O,a)));const g=T(O);if(u(N)&&!E&&y&&m==s&&_(g)&&h(d,a))return await f("DROP "+ia+fa(a)),Ta(d,a),void Ta(v,a);const I=pa(d,a),D=Sa(F(T(I),a=>a==n||A(a)));if(!_(g))if(h(d,a)){if(await p(P([n,...g],async t=>{S(D,t)||(await f(sa+fa(a)+"ADD"+fa(t)+r),Da(I,t))})),o==it&&!h(pa(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"+fa(e)+"ON"+fa(a)+`(${fa(n)})`),Da(ga(v,a,Sa),n)}}else await f(da+fa(a)+`(${fa(n)}${r} PRIMARY KEY${M(P(g,a=>e+fa(a)+r))});`),Ta(d,a,Sa([n,...g])),Ta(v,a,Sa([n]));if(await p([...!E&&w?P(T(D),async t=>{t!=n&&(await f(sa+fa(a)+"DROP"+fa(t)),S(I,t))}):[]]),E)u(i)?u(N)&&await f(ca+fa(a)+$a(a,m)):await p(Q(i,async(t,e)=>{if(u(t))await f(ca+fa(a)+$a(a,m,`(${fa(n)}=${c([1])})`),[e]);else if(!_(g)){const i=F(J(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(N)&&h(d,a)&&await f(ca+fa(a)+$a(a,m));else{const t=F(T(pa(d,a)),a=>a!=n&&A(a)),e=G(),s=[];K(i??{},(a,n)=>{z(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(ca+fa(a)+$a(a,m,`${fa(n)}NOT IN(${ma(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"+fa(t)+"("+((...a)=>M(P(a,fa),e))(n,...i)+")VALUES"+M(Q(s,a=>"("+r(c)+","+ma(a,r,c)+")"),e)+"ON CONFLICT("+fa(n)+")DO UPDATE SET"+M(P(i,a=>fa(a)+"=excluded."+fa(a)),e),Q(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,p,h,O]=et(t,w,y,f,E,m,void 0,void 0,N);return tt(a,()=>O(async()=>{return await A(),a=(await p(c,o))[aa]?.[l]??"null",Qa(Ka(a));var a}),a=>O(async()=>{var t;await A(),await h(c,o,{[aa]:{[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,h,O,T)=>{const[g,I,S,D]=et(t,f,E,_,N,A,h,O,T),R=(a,t)=>p(Oa(o,async([n,e,i,s,r],c)=>{var o,l;t&&(o=a,l=c,!U.hasOwn(o,l))||await S(n,e,a[c],i,s,t,r)})),b=(a,t,n)=>G(1==n?F(Q(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,ta,{[aa]: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()=>G(F(await p(Oa(c,async([a,t,n],e)=>[a,await I(e,t,n)])),a=>!Z(a[1]))))(),t=await(async()=>l?(await I(y,ta,void 0,d))[aa]:{})();return Z(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,{[$]:()=>m,destroy:s},0,m)},ct=(a,e,i,r,o,l,y,v,f,m,$="getDb",_,N)=>{let A,p,O;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=>Y(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]??ta,n[Pa]??ba],Sa(a)]}const{tables:{load:i={},save:r={}}={},values:c={}}=n,o=Y(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]:ta,[qa]:s},Ba,a=>h(v,a),a=>Da(d,a)),m=Ga(r,{[Ua]:null,[xa]:ta,[ja]:0,[ka]:0,[qa]:null},Ua,(a,t)=>h(v,t),(a,t)=>Da(d,t));return ha(m,(a,t)=>t[4]??=pa(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(na+` ${wa} d,${ua} s,TOTAL_CHANGES() c FROM ${la}${wa} JOIN ${la}${ua}`);if(e&&(n!=A||i!=p||r!=O)){const c=t&&!s&&!w(A);A=n,p=i,O=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&&h(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=p=O=null,await o(f)})})},a=>a(),y,v,f,R,T(C),async(a,t)=>await a(na+` t.name tn,c.name cn,c.pk OR EXISTS(${na} 1 FROM ${la}index_list(t.name)i,${la}index_info(i.name)ii ${ea} i."unique"=1 AND ii.name=c.name AND(${na} count(*) FROM ${la}index_info(i.name))=1)uq FROM ${ya}list()t,${ya}info(t.name)c ${ea} t.schema='main'AND t.type IN('table','view')AND t.name IN(${ma(t,Ea)})ORDER BY t.name,c.name`,t),m,$,n,Ea,_,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,N)},ot=(a,t,n,e,i)=>ct(a,n,async(a,n=[])=>{const e=t.prepare(a);return e.reader?e.all(...n):(e.run(...n),[])},()=>N,a=>a(),e,i,N,3,t);export{ot as createBetterSqlite3Persister};
@@ -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,m=a=>Array.isArray(a),N=a=>a.length,$=a=>0==N(a),_=()=>{},A=a=>new c(a),p=async a=>c.all(a),h=(a,t)=>a?.has(t)??!1,O=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),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),pa=(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},Ta=(a,t,n)=>u(n)?(S(a,t),a):a?.set(t,n),ga=(a,t,n,e)=>{let i=pa(a,t);return h(a,t)?e?.(i):Ta(a,t,i=n()),i},Ia=(a,t,n,e,i=0)=>f((n?ga:pa)(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 O(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,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]),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,_,p,h=0,T=0,g=0,M=0,U=0,j=0,k=0,q=0,J=0;const X={},Y=o.destroy;ga(Wa,w,()=>0),ga(Za,w,()=>[]),Ta(at,w,(pa(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(pa(a,t),n+1));return i(a,0),e})(e,i),n=>I(n,n=>{const e=()=>pa(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(pa(s,a),([,t,e])=>(Ia(t,e??[n],void 0,t=>(S(t,a),O(t)?1:0)),Ta(s,a),i(a),e)),a=>f(pa(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!=h&&(h=a,Z(z,void 0,h))},na=()=>{pa(at,w)||pa(Wa,w)||!$(pa(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!=h&&(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=k;k=0,a&&a==M&&!J&&(2==h?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==h||!!j;U++,t&&j++,await L(async()=>{ta(1),T++,await(t?Ea(()=>ea(e??a)):(()=>{try{return ea(e??a)}finally{ta(0)}})())},()=>{t&&j--,--U||ta(0)}),U||await ia()}else 2==h?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!=h&&await L(()=>L(async()=>{ta(2),g++,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(pa(Za,w),...P(a,(i,s)=>{const c=s==N(a)-1;return[async()=>{let a;p=A(t=>a=t),await L(async()=>{try{await R(i,r)}catch(a){n||(n=!0,t=a)}c&&e()},()=>{p=void 0,a()})},c?e:void 0,X]})));if(await(async()=>{if(!pa(Wa,w)){Ta(Wa,w,1);const a=pa(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?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:()=>h,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=pa(Za,w),t=F(a,([,a,t])=>t!=X||(a?.(),!1)),n=p;x(a),B(a,...t),await L(()=>L(()=>L(fa,()=>n),()=>Y?.()),()=>{const a=(pa(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)=>h(pa(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)||h(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(_)||h(_,a),O=Sa();fa(i??{},a=>C(F(la(a??{}),A),a=>Da(O,a)));const g=T(O);if(u(_)&&!E&&y&&m==s&&$(g)&&h(d,a))return await f("DROP "+J+aa(a)),Ta(d,a),void Ta(v,a);const I=pa(d,a),D=Sa(F(T(I),a=>a==n||A(a)));if(!$(g))if(h(d,a)){if(await p(P([n,...g],async t=>{S(D,t)||(await f(X+aa(a)+"ADD"+aa(t)+r),Da(I,t))})),o==it&&!h(pa(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 p([...!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 p(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(_)&&h(d,a)&&await f(z+aa(a)+ea(a,m));else{const t=F(T(pa(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,p,h,O]=et(t,w,y,f,E,m,void 0,void 0,_);return tt(a,()=>O(async()=>{return await A(),a=(await p(c,o))[U]?.[l]??"null",Qa(Ka(a));var a}),a=>O(async()=>{var t;await A(),await h(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,h,O,T)=>{const[g,I,S,D]=et(t,f,E,$,_,A,h,O,T),R=(a,t)=>p(Oa(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 g();const a=await(async()=>da(F(await p(Oa(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 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,p,O;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]??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=>h(v,a),a=>Da(d,a)),m=Ga(r,{[Ua]:null,[xa]:j,[ja]:0,[ka]:0,[qa]:null},Ua,(a,t)=>h(v,t),(a,t)=>Da(d,t));return ha(m,(a,t)=>t[4]??=pa(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(k+` ${K} d,${Q} s,TOTAL_CHANGES() c FROM ${H}${K} JOIN ${H}${Q}`);if(e&&(n!=A||i!=p||r!=O)){const c=t&&!s&&!w(A);A=n,p=i,O=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&&h(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=p=O=null,await o(f)})})},a=>a(),y,v,f,R,T(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=[])=>{const e=t.prepare(a);return e.reader?e.all(...n):(e.run(...n),[])},()=>_,a=>a(),e,i,_,3,t);export{ot as createBetterSqlite3Persister};
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),$=a=>a.length,_=a=>0==$(a),N=()=>{},A=a=>new c(a),p=async a=>c.all(a),h=(a,t)=>a?.has(t)??!1,O=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=$(a))=>a.splice(0,t),B=(a,...t)=>a.push(...t),U=Object,j=a=>U.getPrototypeOf(a),k=U.entries,q=a=>!w(a)&&v(j(a),a=>a==U.prototype||w(j(a)),()=>!0),J=U.keys,X=U.freeze,Y=(...a)=>U.assign(U.create(null),...a),z=(a,t,n)=>(U.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),G=(a=[])=>{const t=U.create(null);return C(a,([a,n])=>z(t,a,n)),t},H=(a,t)=>(delete a[t],a),K=(a,t)=>C(J(a),n=>t(a[n],n)),Q=(a,t)=>P(k(a),([a,n])=>t(n,a)),V=(a,t)=>{const n=G();return K(a,(a,e)=>z(n,e,t(a,e))),n},W=a=>$(J(a)),Z=a=>q(a)&&0==W(a),aa="_",ta="_id",na="SELECT",ea="WHERE",ia="TABLE",sa="ALTER "+ia,ra="FROM",ca="DELETE "+ra,oa=na+"*"+ra,la="pragma_",wa="data_version",ua="schema_version",ya="pragma_table_",da="CREATE "+ia,va=/\$tableName/g,fa=a=>M(P(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),Ea=()=>"?",ma=(a,t,n=[1])=>M(P(a,()=>t(n)),e),$a=(a,t=s,e)=>{const i=F([t==s?void 0:`(${_a(t,fa(a))})`,e],a=>!u(a));return _(i)?n:ea+M(i,"AND")},_a=(a,t)=>r(a,va,t),Na=Map,Aa=a=>new Na(a),pa=(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},Ta=(a,t,n)=>u(n)?(S(a,t),a):a?.set(t,n),ga=(a,t,n,e)=>{let i=pa(a,t);return h(a,t)?e?.(i):Ta(a,t,i=n()),i},Ia=(a,t,n,e,i=0)=>f((n?ga:pa)(a,t[i],i>$(t)-2?n:Aa),s=>{if(i>$(t)-2)return e?.(s)&&Ta(a,t[i]),s;const r=Ia(s,t,n,e,i+1);return O(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,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 K(a,(a,r)=>{const c=(w=Y(t,E(a)?{[n]:a}:a),o=U.values(w),l=W(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):q(a)?V(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,N,p,h=0,T=0,g=0,M=0,U=0,j=0,k=0,q=0,J=0;const Y={},z=o.destroy;ga(Wa,w,()=>0),ga(Za,w,()=>[]),Ta(at,w,(pa(at,w)??0)+1);const G=Aa(),[H,K,Q,V,W]=((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))(c,a,l),[aa,ta,na]=(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&&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==$(t)?B(e,a):y(t[n])?I(a,a=>i(a,n+1)):C([t[n],null],t=>i(pa(a,t),n+1));return i(a,0),e})(e,i),n=>I(n,n=>{const e=()=>pa(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(pa(s,a),([,t,e])=>(Ia(t,e??[n],void 0,t=>(S(t,a),O(t)?1:0)),Ta(s,a),i(a),e)),a=>f(pa(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const c=$(r);c==$(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),ea=a=>{a!=h&&(h=a,ta(G,void 0,h))},ia=()=>{pa(at,w)||pa(Wa,w)||!_(pa(Za,w)??[])||(Ta(Wa,w),Ta(Za,w),Ta(at,w))},sa=t=>{(H&&m(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ra=async()=>{fa()&&a.__?.[0]?.()&&await ya()},ca=a=>L(()=>v=a,()=>{v==a&&(v=void 0)}),oa=async a=>(2!=h&&(await L(async()=>{ea(1),T++,await ma(()=>R(async()=>{const n=await t();m(n)?sa(n):u(n)&&a?W(a):u(n)||D(1,n)},t=>{r?.(t),a&&W(a)}))},()=>ea(0)),await ra()),$a),la=async()=>{const a=k;k=0,a&&a==M&&!J&&(2==h?k=a:await oa())},wa=async a=>{const t=++M;let n=!0;if(await ua(!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==h||!!j;U++,t&&j++,await L(async()=>{ea(1),T++,await(t?ma(()=>sa(e??a)):(()=>{try{return sa(e??a)}finally{ea(0)}})())},()=>{t&&j--,--U||ea(0)}),U||await ra()}else 2==h?k=t:await oa()});t!=M||J?u(a)||await s(a):d=a},r);await ca(e),t!=M||J||await L(()=>oa(a),()=>{n=!1})}return $a},ua=async(a=!1)=>{k=0,a||M++;const t=v,n=d;return d=void 0,await ca(L(async()=>{await t},async()=>{u(n)||await R(()=>s(n),r)})),$a},ya=async a=>(1!=h&&await L(()=>L(async()=>{ea(2),g++,await ma(()=>R(()=>e(K,a),r))},()=>ea(0)),la),$a),da=async()=>{const t=++q;return await va(!0),t!=q||J||(await ya(),t!=q||J||(E=a.addDidFinishTransactionListener(()=>{if(t==q&&!J){const a=Q();V(a)&&R(()=>ya(a))}}))),$a},va=async(t=!1)=>{t||q++;const n=E;return E=void 0,u(n)||a.delListener(n),$a},fa=()=>!u(E),Ea=async(a=!1)=>{const[t,n]=a?[va,ua]:[ua,va];return await L(()=>t(),async()=>{await n()}),$a},ma=async(...a)=>{let t,n=!1;const e=A(e=>_(a)?e():B(pa(Za,w),...P(a,(i,s)=>{const c=s==$(a)-1;return[async()=>{let a;p=A(t=>a=t),await L(async()=>{try{await R(i,r)}catch(a){n||(n=!0,t=a)}c&&e()},()=>{p=void 0,a()})},c?e:void 0,Y]})));if(await(async()=>{if(!pa(Wa,w)){Ta(Wa,w,1);const a=pa(Za,w);let t=0;await L(async()=>{for(;t<$(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{x(a,t),Ta(Wa,w,0),ia()})}})(),await e,n)throw t;return $a},$a={load:oa,startAutoLoad:wa,stopAutoLoad:ua,isAutoLoading:()=>!u(d),save:ya,startAutoSave:da,stopAutoSave:va,isAutoSaving:fa,startAutoPersisting:async(a,t=!1)=>{const[n,e,i,s]=t?[da,wa,va,ua]:[wa,da,ua,va],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:Ea,getStatus:()=>h,addStatusListener:a=>aa(a,G),delListener:t=>(na(t),a),schedule:ma,getStore:()=>a,getStats:()=>({loads:T,saves:g}),...o,destroy:async()=>(u(N)&&(J=1,N=(async()=>{const a=pa(Za,w),t=F(a,([,a,t])=>t!=Y||(a?.(),!1)),n=p;x(a),B(a,...t),await L(()=>L(()=>L(Ea,()=>n),()=>z?.()),()=>{const a=(pa(at,w)??1)-1;Ta(at,w,a||void 0),ia()})})()),await N,$a)};return X($a)},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)=>h(pa(d,a),t))(a,t)?G(F(P(await f(oa+fa(a)+$a(a,n)),a=>{const n=a[t],e=w?V(H(a,t),w):H(a,t);return[n,u(i)?e:G(F(Q(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||h(i,a))(a)))]}),a=>!u(a[0])&&!Z(a[1]))):{}},async(a,n,i,w,y,E=!1,m=s,$)=>{const N=u($)?void 0:Sa($),A=a=>u(N)||h(N,a),O=Sa();K(i??{},a=>C(F(J(a??{}),A),a=>Da(O,a)));const g=T(O);if(u(N)&&!E&&y&&m==s&&_(g)&&h(d,a))return await f("DROP "+ia+fa(a)),Ta(d,a),void Ta(v,a);const I=pa(d,a),D=Sa(F(T(I),a=>a==n||A(a)));if(!_(g))if(h(d,a)){if(await p(P([n,...g],async t=>{S(D,t)||(await f(sa+fa(a)+"ADD"+fa(t)+r),Da(I,t))})),o==it&&!h(pa(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"+fa(e)+"ON"+fa(a)+`(${fa(n)})`),Da(ga(v,a,Sa),n)}}else await f(da+fa(a)+`(${fa(n)}${r} PRIMARY KEY${M(P(g,a=>e+fa(a)+r))});`),Ta(d,a,Sa([n,...g])),Ta(v,a,Sa([n]));if(await p([...!E&&w?P(T(D),async t=>{t!=n&&(await f(sa+fa(a)+"DROP"+fa(t)),S(I,t))}):[]]),E)u(i)?u(N)&&await f(ca+fa(a)+$a(a,m)):await p(Q(i,async(t,e)=>{if(u(t))await f(ca+fa(a)+$a(a,m,`(${fa(n)}=${c([1])})`),[e]);else if(!_(g)){const i=F(J(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(N)&&h(d,a)&&await f(ca+fa(a)+$a(a,m));else{const t=F(T(pa(d,a)),a=>a!=n&&A(a)),e=G(),s=[];K(i??{},(a,n)=>{z(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(ca+fa(a)+$a(a,m,`${fa(n)}NOT IN(${ma(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"+fa(t)+"("+((...a)=>M(P(a,fa),e))(n,...i)+")VALUES"+M(Q(s,a=>"("+r(c)+","+ma(a,r,c)+")"),e)+"ON CONFLICT("+fa(n)+")DO UPDATE SET"+M(P(i,a=>fa(a)+"=excluded."+fa(a)),e),Q(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,p,h,O]=et(t,w,y,f,E,m,void 0,void 0,N);return tt(a,()=>O(async()=>{return await A(),a=(await p(c,o))[aa]?.[l]??"null",Qa(Ka(a));var a}),a=>O(async()=>{var t;await A(),await h(c,o,{[aa]:{[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,h,O,T)=>{const[g,I,S,D]=et(t,f,E,_,N,A,h,O,T),R=(a,t)=>p(Oa(o,async([n,e,i,s,r],c)=>{var o,l;t&&(o=a,l=c,!U.hasOwn(o,l))||await S(n,e,a[c],i,s,t,r)})),b=(a,t,n)=>G(1==n?F(Q(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,ta,{[aa]: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()=>G(F(await p(Oa(c,async([a,t,n],e)=>[a,await I(e,t,n)])),a=>!Z(a[1]))))(),t=await(async()=>l?(await I(y,ta,void 0,d))[aa]:{})();return Z(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,{[$]:()=>m,destroy:s},0,m)},ct=(a,e,i,r,o,l,y,v,f,m,$="getDb",_,N)=>{let A,p,O;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=>Y(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]??ta,n[Pa]??ba],Sa(a)]}const{tables:{load:i={},save:r={}}={},values:c={}}=n,o=Y(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]:ta,[qa]:s},Ba,a=>h(v,a),a=>Da(d,a)),m=Ga(r,{[Ua]:null,[xa]:ta,[ja]:0,[ka]:0,[qa]:null},Ua,(a,t)=>h(v,t),(a,t)=>Da(d,t));return ha(m,(a,t)=>t[4]??=pa(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(na+` ${wa} d,${ua} s,TOTAL_CHANGES() c FROM ${la}${wa} JOIN ${la}${ua}`);if(e&&(n!=A||i!=p||r!=O)){const c=t&&!s&&!w(A);A=n,p=i,O=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&&h(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=p=O=null,await o(f)})})},a=>a(),y,v,f,R,T(C),async(a,t)=>await a(na+` t.name tn,c.name cn,c.pk OR EXISTS(${na} 1 FROM ${la}index_list(t.name)i,${la}index_info(i.name)ii ${ea} i."unique"=1 AND ii.name=c.name AND(${na} count(*) FROM ${la}index_info(i.name))=1)uq FROM ${ya}list()t,${ya}info(t.name)c ${ea} t.schema='main'AND t.type IN('table','view')AND t.name IN(${ma(t,Ea)})ORDER BY t.name,c.name`,t),m,$,n,Ea,_,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,N)},ot=(a,t,n,e,i)=>ct(a,n,async(a,n=[])=>{const e=t.prepare(a);return e.reader?e.all(...n):(e.run(...n),[])},()=>N,a=>a(),e,i,N,3,t);export{ot as createBetterSqlite3Persister};
@@ -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,m=a=>Array.isArray(a),A=a=>a.length,N=a=>0==A(a),$=(a,t)=>a.test(t),_=()=>{},h=a=>new c(a),O=async a=>c.all(a),p=(a,t)=>a?.has(t)??!1,T=a=>u(a)||0==(a=>a?.size??0)(a),g=a=>[...a?.values()??[]],S=a=>a.clear(),I=(a,t)=>a?.forEach(t),D=(a,t)=>a?.delete(t),R=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},L=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},b=(a,t)=>L(a,a=>{L(()=>t?.(a))}),C=async(a,t)=>{try{return await a()}finally{await t()}},M=(a,t)=>a.forEach(t),P=(a,t="")=>a.join(t),F=(a,t)=>a.map(t),x=(a,t)=>a.filter(t),q=(a,t=A(a))=>a.splice(0,t),B=(a,...t)=>a.push(...t),U="_",j="_id",k="SELECT",G="WHERE",J="TABLE",X="ALTER "+J,Y="FROM",z="DELETE "+Y,H=k+"*"+Y,K="pragma_",Q="data_version",V="schema_version",W="pragma_table_",Z="CREATE "+J,aa=/\$tableName/g,ta=a=>P(F(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),na=()=>"?",ea=(a,t,n=[1])=>P(F(a,()=>t(n)),e),ia=(a,t=s)=>G+`(${sa(t,ta(a))})`,sa=(a,t)=>r(a,aa,t),ra=Object,ca=a=>ra.getPrototypeOf(a),oa=ra.entries,la=a=>!w(a)&&v(ca(a),a=>a==ra.prototype||w(ca(a)),()=>!0),wa=ra.keys,ua=ra.freeze,ya=(...a)=>ra.assign(ra.create(null),...a),da=(a,t,n)=>(ra.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),va=(a=[])=>{const t=ra.create(null);return M(a,([a,n])=>da(t,a,n)),t},fa=(a,t)=>(delete a[t],a),Ea=(a,t)=>M(wa(a),n=>t(a[n],n)),ma=(a,t)=>F(oa(a),([a,n])=>t(n,a)),Aa=(a,t)=>{const n=va();return Ea(a,(a,e)=>da(n,e,t(a,e))),n},Na=a=>A(wa(a)),$a=a=>la(a)&&0==Na(a),_a=Map,ha=a=>new _a(a),Oa=(a,t)=>a?.get(t),pa=(a,t)=>I(a,(a,n)=>t(n,a)),Ta=(a,t)=>{const n=[];return pa(a,(a,e)=>B(n,t(e,a))),n},ga=(a,t,n)=>u(n)?(D(a,t),a):a?.set(t,n),Sa=(a,t,n,e)=>{let i=Oa(a,t);return p(a,t)?e?.(i):ga(a,t,i=n()),i},Ia=(a,t,n,e,i=0)=>f((n?Sa:Oa)(a,t[i],i>A(t)-2?n:ha),s=>{if(i>A(t)-2)return e?.(s)&&ga(a,t[i]),s;const r=Ia(s,t,n,e,i+1);return T(s)&&ga(a,t[i]),r}),Da=a=>new Set(m(a)||u(a)?a:[a]),Ra=(a,t)=>a?.add(t),La="ColumnName",ba="store",Ca="json",Ma=ba+"TableName",Pa=ba+"Id"+La,Fa=ba+La,xa="autoLoadIntervalSeconds",qa="rowId"+La,Ba="tableId",Ua="tableName",ja="deleteEmptyColumns",ka="deleteEmptyTable",Ga="condition",Ja={mode:Ca,[xa]:1},Xa={load:0,save:0,[Ua]:t+"_values"},Ya=a=>m(a)?a:void 0,za=a=>d(a)||m(a),Ha=(a,t,n,e,i)=>{const s=ha();return Ea(a,(a,r)=>{const c=(w=ya(t,E(a)?{[n]:a}:a),o=ra.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},Ka=JSON.stringify,Qa=JSON.parse,Va=a=>""===a?void 0:m(a)?F(a,Va):la(a)?Aa(a,Va):a,Wa=/^\d+$/,Za=ha(),at=ha(),tt=ha(),nt=(a,t,e,i,s,r,c,o={},l=0,w=[])=>{let d,v,E,_,O,p=0,g=0,S=0,P=0,U=0,j=0,k=0,G=0,J=0;const X={},Y=o.destroy;Sa(Za,w,()=>0),Sa(at,w,()=>[]),ga(tt,w,(Oa(tt,w)??0)+1);const z=ha(),[H,K,Q,V,W]=((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]:R(0))(c,a,l),[Z,aa,ta]=(a=>{let t;const[e,i]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{$(Wa,t)&&A(a)<1e3&&B(a,t)}]})(),s=ha(),r=(a,e,i,r)=>{let c,o=!1;if(M(((a,t=[n])=>{const e=[],i=(a,n)=>n==A(t)?B(e,a):y(t[n])?I(a,a=>i(a,n+1)):M([t[n],null],t=>i(Oa(a,t),n+1));return i(a,0),e})(e,i),n=>I(n,n=>{const e=()=>Oa(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]),Ra(Ia(r,c??[n],Da),w),w},(a,t,...n)=>r(!1,a,t,n),a=>f(Oa(s,a),([,t,e])=>(Ia(t,e??[n],void 0,t=>(D(t,a),T(t)?1:0)),ga(s,a),i(a),e)),a=>f(Oa(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const c=A(r);c==A(n)?a(t,...r,...i(r)):y(n[c])?M(e[c]?.(...r)??[],a=>s(...r,a)):s(...r,n[c])};s()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>Aa),na=a=>{a!=p&&(p=a,aa(z,void 0,p))},ea=()=>{Oa(tt,w)||Oa(Za,w)||!N(Oa(at,w)??[])||(ga(Za,w),ga(at,w),ga(tt,w))},ia=t=>{(H&&m(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},sa=async()=>{fa()&&a.__?.[0]?.()&&await ya()},ra=a=>C(()=>v=a,()=>{v==a&&(v=void 0)}),ca=async a=>(2!=p&&(await C(async()=>{na(1),g++,await ma(()=>L(async()=>{const n=await t();m(n)?ia(n):u(n)&&a?W(a):u(n)||R(1,n)},t=>{r?.(t),a&&W(a)}))},()=>na(0)),await sa()),Aa),oa=async()=>{const a=k;k=0,a&&a==P&&!J&&(2==p?k=a:await ca())},la=async a=>{const t=++P;let n=!0;if(await wa(!0),t==P&&!J){const e=L(async()=>{const a=await i(async(a,e)=>{if(t==P&&!J)if(e||a){const t=n||2==p||!!j;U++,t&&j++,await C(async()=>{na(1),g++,await(t?ma(()=>ia(e??a)):(()=>{try{return ia(e??a)}finally{na(0)}})())},()=>{t&&j--,--U||na(0)}),U||await sa()}else 2==p?k=t:await ca()});t!=P||J?u(a)||await s(a):d=a},r);await ra(e),t!=P||J||await C(()=>ca(a),()=>{n=!1})}return Aa},wa=async(a=!1)=>{k=0,a||P++;const t=v,n=d;return d=void 0,await ra(C(async()=>{await t},async()=>{u(n)||await L(()=>s(n),r)})),Aa},ya=async a=>(1!=p&&await C(()=>C(async()=>{na(2),S++,await ma(()=>L(()=>e(K,a),r))},()=>na(0)),oa),Aa),da=async()=>{const t=++G;return await va(!0),t!=G||J||(await ya(),t!=G||J||(E=a.addDidFinishTransactionListener(()=>{if(t==G&&!J){const a=Q();V(a)&&L(()=>ya(a))}}))),Aa},va=async(t=!1)=>{t||G++;const n=E;return E=void 0,u(n)||a.delListener(n),Aa},fa=()=>!u(E),Ea=async(a=!1)=>{const[t,n]=a?[va,wa]:[wa,va];return await C(()=>t(),async()=>{await n()}),Aa},ma=async(...a)=>{let t,n=!1;const e=h(e=>N(a)?e():B(Oa(at,w),...F(a,(i,s)=>{const c=s==A(a)-1;return[async()=>{let a;O=h(t=>a=t),await C(async()=>{try{await L(i,r)}catch(a){n||(n=!0,t=a)}c&&e()},()=>{O=void 0,a()})},c?e:void 0,X]})));if(await(async()=>{if(!Oa(Za,w)){ga(Za,w,1);const a=Oa(at,w);let t=0;await C(async()=>{for(;t<A(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{q(a,t),ga(Za,w,0),ea()})}})(),await e,n)throw t;return Aa},Aa={load:ca,startAutoLoad:la,stopAutoLoad:wa,isAutoLoading:()=>!u(d),save:ya,startAutoSave:da,stopAutoSave:va,isAutoSaving:fa,startAutoPersisting:async(a,t=!1)=>{const[n,e,i,s]=t?[da,la,va,wa]:[la,da,wa,va],r=n(a),c=t?G:P;await r;const o=e(a),l=t?P:G;try{await o}catch(a){throw l==(t?P:G)&&await b(s),c==(t?G:P)&&await b(i),a}return Aa},stopAutoPersisting:Ea,getStatus:()=>p,addStatusListener:a=>Z(a,z),delListener:t=>(ta(t),a),schedule:ma,getStore:()=>a,getStats:()=>({loads:g,saves:S}),...o,destroy:async()=>(u(_)&&(J=1,_=(async()=>{const a=Oa(at,w),t=x(a,([,a,t])=>t!=X||(a?.(),!1)),n=O;q(a),B(a,...t),await C(()=>C(()=>C(Ea,()=>n),()=>Y?.()),()=>{const a=(Oa(tt,w)??1)-1;ga(tt,w,a||void 0),ea()})})()),await _,Aa)};return ua(Aa)},et=new l.TextEncoder,it=(a,n,i,r,c,o=st,l,w,y)=>{const d=ha(),v=ha();let f=a;return[async()=>{S(d),S(v),M(await i(f,n),({tn:a,cn:t,uq:n})=>{Ra(Sa(d,a,Da),t),n&&Ra(Sa(v,a,Da),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:Da(e);return((a,t)=>p(Oa(d,a),t))(a,t)?va(x(F(await f(H+ta(a)+ia(a,n)),a=>{const n=a[t],e=w?Aa(fa(a,t),w):fa(a,t);return[n,u(i)?e:va(x(ma(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||p(i,a))(a)))]}),a=>!u(a[0])&&!$a(a[1]))):{}},async(a,n,i,w,y,E=!1,m=s,A)=>{const $=u(A)?void 0:Da(A),_=a=>u($)||p($,a),h=Da();Ea(i??{},a=>M(x(wa(a??{}),_),a=>Ra(h,a)));const T=g(h);if(u($)&&!E&&y&&m==s&&N(T)&&p(d,a))return await f("DROP "+J+ta(a)),ga(d,a),void ga(v,a);const S=Oa(d,a),I=Da(x(g(S),a=>a==n||_(a)));if(!N(T))if(p(d,a)){if(await O(F([n,...T],async t=>{D(I,t)||(await f(X+ta(a)+"ADD"+ta(t)+r),Ra(S,t))})),o==st&&!p(Oa(v,a),n)){const e=t+"_pk_"+(a=>{let t=2166136261;return M(et.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(Ka([a,n]));await f("CREATE UNIQUE INDEX IF NOT EXISTS"+ta(e)+"ON"+ta(a)+`(${ta(n)})`),Ra(Sa(v,a,Da),n)}}else await f(Z+ta(a)+`(${ta(n)}${r} PRIMARY KEY${P(F(T,a=>e+ta(a)+r))});`),ga(d,a,Da([n,...T])),ga(v,a,Da([n]));if(await O([...!E&&w?F(g(I),async t=>{t!=n&&(await f(X+ta(a)+"DROP"+ta(t)),D(S,t))}):[]]),E)u(i)?u($)&&await f(z+ta(a)+ia(a,m)):await O(ma(i,async(t,e)=>{if(u(t))await f(z+ta(a)+ia(a,m)+`AND(${ta(n)}=${c([1])})`,[e]);else if(!N(T)){const i=x(wa(t),_);N(i)||await o(f,a,n,i,{[e]:F(i,a=>l?l(t[a]):t[a])},c,S)}}));else if(N(T))u($)&&p(d,a)&&await f(z+ta(a)+ia(a,m));else{const t=x(g(Oa(d,a)),a=>a!=n&&_(a)),e=va(),s=[];Ea(i??{},(a,n)=>{da(e,n,F(t,t=>l?l(a?.[t]):a?.[t])),B(s,n)}),await o(f,a,n,t,e,c,S),await f(z+ta(a)+ia(a,m)+`AND${ta(n)}NOT IN(${ea(s,c)})`,s)}},async t=>{if(y)return await y(async a=>{const n=f;return f=a,await C(t,()=>{f=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await L(()=>a("ROLLBACK")),t}}]},st=async(a,t,n,i,s,r)=>{const c=[1];await a("INSERT INTO"+ta(t)+"("+((...a)=>P(F(a,ta),e))(n,...i)+")VALUES"+P(ma(s,a=>"("+r(c)+","+ea(a,r,c)+")"),e)+"ON CONFLICT("+ta(n)+")DO UPDATE SET"+P(F(i,a=>ta(a)+"=excluded."+ta(a)),e),ma(s,(a,t)=>[t,...F(a,a=>a??null)]).flat())},rt=(a,t,n,e,i,s,r,[c,o,l],w,y,d,v,f,E,m,A,N,$)=>{const[_,h,O,p]=it(t,w,y,f,E,m,void 0,void 0,$);return nt(a,()=>p(async()=>{return await _(),a=(await h(c,o))[U]?.[l]??"null",Va(Qa(a));var a}),a=>p(async()=>{var t;await _(),await O(c,o,{[U]:{[l]:(t=a()??null,Ka(t,(a,t)=>u(t)?"":t))}},!0,!0)}),n,e,i,r,{[v]:()=>d,destroy:s},0,d)},ct=(a,t,n,e,i,s,r,[c,o,[l,w,y,d,v]],f,E,m,A,N,$,_,h,p,T)=>{const[g,S,I,D]=it(t,f,E,N,$,_,h,p,T),R=(a,t)=>O(Ta(o,async([n,e,i,s,r],c)=>{var o,l;t&&(o=a,l=c,!ra.hasOwn(o,l))||await I(n,e,a[c],i,s,t,r)})),L=(a,t,n)=>va(1==n?x(ma(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):x(F(t,t=>[t,a[t]]),([,a])=>!u(a))),b=async(a,t)=>w?await I(y,j,{[U]:u(v)?a:L(a,v,t)},!0,!0,t,void 0,v):null;return nt(a,()=>D(async()=>{await g();const a=await(async()=>va(x(await O(Ta(c,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))[U]:{})();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 b(n)}else await R(t[0],!0),await b(t[1],!0)}),n,e,i,r,{[A]:()=>m,destroy:s},0,m)},ot=(a,e,i,r,o,l,y,v,f,m,A="getDb",N,$)=>{let _,h,O;const T=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,l),[S,I,D,L]=(a=>{const n=(a=>ya(Ja,E(a)?{[Ma]:a}:a??{}))(a),e=n[xa];if(n.mode==Ca){const a=n[Ma]??t;return[1,e,[a,n[Pa]??j,n[Fa]??ba],Da(a)]}const{tables:{load:i={},save:r={}}={},values:c={}}=n,o=ya(Xa,c),{load:l,save:w}=o,u=[za(l),za(w),o[Ua],Ya(l),Ya(w)],y=u[2],d=Da(y),v=Da(y),f=Ha(i,{[Ba]:null,[qa]:j,[Ga]:s},Ba,a=>p(v,a),a=>Ra(d,a)),m=Ha(r,{[Ua]:null,[qa]:j,[ja]:0,[ka]:0,[Ga]:null},Ua,(a,t)=>p(v,t),(a,t)=>Ra(d,t));return pa(m,(a,t)=>t[4]??=Oa(f,t[0])?.[2]??s),[0,e,[f,m,u],d]})(e);return!S&&a.isMergeable()&&R(0),(S?rt:ct)(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+` ${Q} d,${V} s,TOTAL_CHANGES() c FROM ${K}${Q} JOIN ${K}${V}`);if(e&&(n!=_||i!=h||r!=O)){const c=t&&!s&&!w(_);_=n,h=i,O=r,c&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const c=C(()=>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*I)))});return n=c,c},f=r(a=>{e&&p(L,a)&&(s=1,d(),c.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,s=0,d(),await C(async()=>await n,async()=>{_=h=O=null,await o(f)})})},a=>a(),y,v,f,D,g(L),async(a,t)=>await a(k+` t.name tn,c.name cn,c.pk OR EXISTS(${k} 1 FROM ${K}index_list(t.name)i,${K}index_info(i.name)ii ${G} i."unique"=1 AND ii.name=c.name AND(${k} count(*) FROM ${K}index_info(i.name))=1)uq FROM ${W}list()t,${W}info(t.name)c ${G} t.schema='main'AND t.type IN('table','view')AND t.name IN(${ea(t,na)})ORDER BY t.name,c.name`,t),m,A,n,na,N,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,$)},lt=/^\s*(SELECT|PRAGMA)/i,wt=(a,t,n,e,i)=>ot(a,n,async(a,n=[])=>$(lt,a)?(await t.query(a,n)).values??[]:(await t.run(a,n,!1),[]),()=>_,a=>a(),e,i,_,3,t);export{wt as createCapacitorSqlitePersister};
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),A=a=>a.length,$=a=>0==A(a),_=(a,t)=>a.test(t),N=()=>{},h=a=>new c(a),O=async a=>c.all(a),p=(a,t)=>a?.has(t)??!1,T=a=>u(a)||0==(a=>a?.size??0)(a),g=a=>[...a?.values()??[]],S=a=>a.clear(),I=(a,t)=>a?.forEach(t),R=(a,t)=>a?.delete(t),D=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},L=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},b=(a,t)=>L(a,a=>{L(()=>t?.(a))}),C=async(a,t)=>{try{return await a()}finally{await t()}},M=(a,t)=>a.forEach(t),P=(a,t="")=>a.join(t),F=(a,t)=>a.map(t),x=(a,t)=>a.filter(t),q=(a,t=A(a))=>a.splice(0,t),B=(a,...t)=>a.push(...t),U=Object,j=a=>U.getPrototypeOf(a),k=U.entries,G=a=>!w(a)&&v(j(a),a=>a==U.prototype||w(j(a)),()=>!0),J=U.keys,X=U.freeze,Y=(...a)=>U.assign(U.create(null),...a),z=(a,t,n)=>(U.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),H=(a=[])=>{const t=U.create(null);return M(a,([a,n])=>z(t,a,n)),t},K=(a,t)=>(delete a[t],a),Q=(a,t)=>M(J(a),n=>t(a[n],n)),V=(a,t)=>F(k(a),([a,n])=>t(n,a)),W=(a,t)=>{const n=H();return Q(a,(a,e)=>z(n,e,t(a,e))),n},Z=a=>A(J(a)),aa=a=>G(a)&&0==Z(a),ta="_",na="_id",ea="SELECT",ia="WHERE",sa="TABLE",ra="ALTER "+sa,ca="FROM",oa="DELETE "+ca,la=ea+"*"+ca,wa="pragma_",ua="data_version",ya="schema_version",da="pragma_table_",va="CREATE "+sa,fa=/\$tableName/g,Ea=a=>P(F(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),ma=()=>"?",Aa=(a,t,n=[1])=>P(F(a,()=>t(n)),e),$a=(a,t=s,e)=>{const i=x([t==s?void 0:`(${_a(t,Ea(a))})`,e],a=>!u(a));return $(i)?n:ia+P(i,"AND")},_a=(a,t)=>r(a,fa,t),Na=Map,ha=a=>new Na(a),Oa=(a,t)=>a?.get(t),pa=(a,t)=>I(a,(a,n)=>t(n,a)),Ta=(a,t)=>{const n=[];return pa(a,(a,e)=>B(n,t(e,a))),n},ga=(a,t,n)=>u(n)?(R(a,t),a):a?.set(t,n),Sa=(a,t,n,e)=>{let i=Oa(a,t);return p(a,t)?e?.(i):ga(a,t,i=n()),i},Ia=(a,t,n,e,i=0)=>f((n?Sa:Oa)(a,t[i],i>A(t)-2?n:ha),s=>{if(i>A(t)-2)return e?.(s)&&ga(a,t[i]),s;const r=Ia(s,t,n,e,i+1);return T(s)&&ga(a,t[i]),r}),Ra=a=>new Set(m(a)||u(a)?a:[a]),Da=(a,t)=>a?.add(t),La="ColumnName",ba="store",Ca="json",Ma=ba+"TableName",Pa=ba+"Id"+La,Fa=ba+La,xa="autoLoadIntervalSeconds",qa="rowId"+La,Ba="tableId",Ua="tableName",ja="deleteEmptyColumns",ka="deleteEmptyTable",Ga="condition",Ja={mode:Ca,[xa]:1},Xa={load:0,save:0,[Ua]:t+"_values"},Ya=a=>m(a)?a:void 0,za=a=>d(a)||m(a),Ha=(a,t,n,e,i)=>{const s=ha();return Q(a,(a,r)=>{const c=(w=Y(t,E(a)?{[n]:a}:a),o=U.values(w),l=Z(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},Ka=JSON.stringify,Qa=JSON.parse,Va=a=>""===a?void 0:m(a)?F(a,Va):G(a)?W(a,Va):a,Wa=/^\d+$/,Za=ha(),at=ha(),tt=ha(),nt=(a,t,e,i,s,r,c,o={},l=0,w=[])=>{let d,v,E,N,O,p=0,g=0,S=0,P=0,U=0,j=0,k=0,G=0,J=0;const Y={},z=o.destroy;Sa(Za,w,()=>0),Sa(at,w,()=>[]),ga(tt,w,(Oa(tt,w)??0)+1);const H=ha(),[K,Q,V,W,Z]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!aa(a)||!aa(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!aa(a)||!aa(t),t.setContent]:D(0))(c,a,l),[ta,na,ea]=(a=>{let t;const[e,i]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{_(Wa,t)&&A(a)<1e3&&B(a,t)}]})(),s=ha(),r=(a,e,i,r)=>{let c,o=!1;if(M(((a,t=[n])=>{const e=[],i=(a,n)=>n==A(t)?B(e,a):y(t[n])?I(a,a=>i(a,n+1)):M([t[n],null],t=>i(Oa(a,t),n+1));return i(a,0),e})(e,i),n=>I(n,n=>{const e=()=>Oa(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],Ra),w),w},(a,t,...n)=>r(!1,a,t,n),a=>f(Oa(s,a),([,t,e])=>(Ia(t,e??[n],void 0,t=>(R(t,a),T(t)?1:0)),ga(s,a),i(a),e)),a=>f(Oa(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const c=A(r);c==A(n)?a(t,...r,...i(r)):y(n[c])?M(e[c]?.(...r)??[],a=>s(...r,a)):s(...r,n[c])};s()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>$a),ia=a=>{a!=p&&(p=a,na(H,void 0,p))},sa=()=>{Oa(tt,w)||Oa(Za,w)||!$(Oa(at,w)??[])||(ga(Za,w),ga(at,w),ga(tt,w))},ra=t=>{(K&&m(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ca=async()=>{Ea()&&a.__?.[0]?.()&&await da()},oa=a=>C(()=>v=a,()=>{v==a&&(v=void 0)}),la=async a=>(2!=p&&(await C(async()=>{ia(1),g++,await Aa(()=>L(async()=>{const n=await t();m(n)?ra(n):u(n)&&a?Z(a):u(n)||D(1,n)},t=>{r?.(t),a&&Z(a)}))},()=>ia(0)),await ca()),$a),wa=async()=>{const a=k;k=0,a&&a==P&&!J&&(2==p?k=a:await la())},ua=async a=>{const t=++P;let n=!0;if(await ya(!0),t==P&&!J){const e=L(async()=>{const a=await i(async(a,e)=>{if(t==P&&!J)if(e||a){const t=n||2==p||!!j;U++,t&&j++,await C(async()=>{ia(1),g++,await(t?Aa(()=>ra(e??a)):(()=>{try{return ra(e??a)}finally{ia(0)}})())},()=>{t&&j--,--U||ia(0)}),U||await ca()}else 2==p?k=t:await la()});t!=P||J?u(a)||await s(a):d=a},r);await oa(e),t!=P||J||await C(()=>la(a),()=>{n=!1})}return $a},ya=async(a=!1)=>{k=0,a||P++;const t=v,n=d;return d=void 0,await oa(C(async()=>{await t},async()=>{u(n)||await L(()=>s(n),r)})),$a},da=async a=>(1!=p&&await C(()=>C(async()=>{ia(2),S++,await Aa(()=>L(()=>e(Q,a),r))},()=>ia(0)),wa),$a),va=async()=>{const t=++G;return await fa(!0),t!=G||J||(await da(),t!=G||J||(E=a.addDidFinishTransactionListener(()=>{if(t==G&&!J){const a=V();W(a)&&L(()=>da(a))}}))),$a},fa=async(t=!1)=>{t||G++;const n=E;return E=void 0,u(n)||a.delListener(n),$a},Ea=()=>!u(E),ma=async(a=!1)=>{const[t,n]=a?[fa,ya]:[ya,fa];return await C(()=>t(),async()=>{await n()}),$a},Aa=async(...a)=>{let t,n=!1;const e=h(e=>$(a)?e():B(Oa(at,w),...F(a,(i,s)=>{const c=s==A(a)-1;return[async()=>{let a;O=h(t=>a=t),await C(async()=>{try{await L(i,r)}catch(a){n||(n=!0,t=a)}c&&e()},()=>{O=void 0,a()})},c?e:void 0,Y]})));if(await(async()=>{if(!Oa(Za,w)){ga(Za,w,1);const a=Oa(at,w);let t=0;await C(async()=>{for(;t<A(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{q(a,t),ga(Za,w,0),sa()})}})(),await e,n)throw t;return $a},$a={load:la,startAutoLoad:ua,stopAutoLoad:ya,isAutoLoading:()=>!u(d),save:da,startAutoSave:va,stopAutoSave:fa,isAutoSaving:Ea,startAutoPersisting:async(a,t=!1)=>{const[n,e,i,s]=t?[va,ua,fa,ya]:[ua,va,ya,fa],r=n(a),c=t?G:P;await r;const o=e(a),l=t?P:G;try{await o}catch(a){throw l==(t?P:G)&&await b(s),c==(t?G:P)&&await b(i),a}return $a},stopAutoPersisting:ma,getStatus:()=>p,addStatusListener:a=>ta(a,H),delListener:t=>(ea(t),a),schedule:Aa,getStore:()=>a,getStats:()=>({loads:g,saves:S}),...o,destroy:async()=>(u(N)&&(J=1,N=(async()=>{const a=Oa(at,w),t=x(a,([,a,t])=>t!=Y||(a?.(),!1)),n=O;q(a),B(a,...t),await C(()=>C(()=>C(ma,()=>n),()=>z?.()),()=>{const a=(Oa(tt,w)??1)-1;ga(tt,w,a||void 0),sa()})})()),await N,$a)};return X($a)},et=new l.TextEncoder,it=(a,n,i,r,c,o=st,l,w,y)=>{const d=ha(),v=ha();let f=a;return[async()=>{S(d),S(v),M(await i(f,n),({tn:a,cn:t,uq:n})=>{Da(Sa(d,a,Ra),t),n&&Da(Sa(v,a,Ra),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:Ra(e);return((a,t)=>p(Oa(d,a),t))(a,t)?H(x(F(await f(la+Ea(a)+$a(a,n)),a=>{const n=a[t],e=w?W(K(a,t),w):K(a,t);return[n,u(i)?e:H(x(V(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||p(i,a))(a)))]}),a=>!u(a[0])&&!aa(a[1]))):{}},async(a,n,i,w,y,E=!1,m=s,A)=>{const _=u(A)?void 0:Ra(A),N=a=>u(_)||p(_,a),h=Ra();Q(i??{},a=>M(x(J(a??{}),N),a=>Da(h,a)));const T=g(h);if(u(_)&&!E&&y&&m==s&&$(T)&&p(d,a))return await f("DROP "+sa+Ea(a)),ga(d,a),void ga(v,a);const S=Oa(d,a),I=Ra(x(g(S),a=>a==n||N(a)));if(!$(T))if(p(d,a)){if(await O(F([n,...T],async t=>{R(I,t)||(await f(ra+Ea(a)+"ADD"+Ea(t)+r),Da(S,t))})),o==st&&!p(Oa(v,a),n)){const e=t+"_pk_"+(a=>{let t=2166136261;return M(et.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(Ka([a,n]));await f("CREATE UNIQUE INDEX IF NOT EXISTS"+Ea(e)+"ON"+Ea(a)+`(${Ea(n)})`),Da(Sa(v,a,Ra),n)}}else await f(va+Ea(a)+`(${Ea(n)}${r} PRIMARY KEY${P(F(T,a=>e+Ea(a)+r))});`),ga(d,a,Ra([n,...T])),ga(v,a,Ra([n]));if(await O([...!E&&w?F(g(I),async t=>{t!=n&&(await f(ra+Ea(a)+"DROP"+Ea(t)),R(S,t))}):[]]),E)u(i)?u(_)&&await f(oa+Ea(a)+$a(a,m)):await O(V(i,async(t,e)=>{if(u(t))await f(oa+Ea(a)+$a(a,m,`(${Ea(n)}=${c([1])})`),[e]);else if(!$(T)){const i=x(J(t),N);$(i)||await o(f,a,n,i,{[e]:F(i,a=>l?l(t[a]):t[a])},c,S)}}));else if($(T))u(_)&&p(d,a)&&await f(oa+Ea(a)+$a(a,m));else{const t=x(g(Oa(d,a)),a=>a!=n&&N(a)),e=H(),s=[];Q(i??{},(a,n)=>{z(e,n,F(t,t=>l?l(a?.[t]):a?.[t])),B(s,n)}),await o(f,a,n,t,e,c,S),await f(oa+Ea(a)+$a(a,m,`${Ea(n)}NOT IN(${Aa(s,c)})`),s)}},async t=>{if(y)return await y(async a=>{const n=f;return f=a,await C(t,()=>{f=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await L(()=>a("ROLLBACK")),t}}]},st=async(a,t,n,i,s,r)=>{const c=[1];await a("INSERT INTO"+Ea(t)+"("+((...a)=>P(F(a,Ea),e))(n,...i)+")VALUES"+P(V(s,a=>"("+r(c)+","+Aa(a,r,c)+")"),e)+"ON CONFLICT("+Ea(n)+")DO UPDATE SET"+P(F(i,a=>Ea(a)+"=excluded."+Ea(a)),e),V(s,(a,t)=>[t,...F(a,a=>a??null)]).flat())},rt=(a,t,n,e,i,s,r,[c,o,l],w,y,d,v,f,E,m,A,$,_)=>{const[N,h,O,p]=it(t,w,y,f,E,m,void 0,void 0,_);return nt(a,()=>p(async()=>{return await N(),a=(await h(c,o))[ta]?.[l]??"null",Va(Qa(a));var a}),a=>p(async()=>{var t;await N(),await O(c,o,{[ta]:{[l]:(t=a()??null,Ka(t,(a,t)=>u(t)?"":t))}},!0,!0)}),n,e,i,r,{[v]:()=>d,destroy:s},0,d)},ct=(a,t,n,e,i,s,r,[c,o,[l,w,y,d,v]],f,E,m,A,$,_,N,h,p,T)=>{const[g,S,I,R]=it(t,f,E,$,_,N,h,p,T),D=(a,t)=>O(Ta(o,async([n,e,i,s,r],c)=>{var o,l;t&&(o=a,l=c,!U.hasOwn(o,l))||await I(n,e,a[c],i,s,t,r)})),L=(a,t,n)=>H(1==n?x(V(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):x(F(t,t=>[t,a[t]]),([,a])=>!u(a))),b=async(a,t)=>w?await I(y,na,{[ta]:u(v)?a:L(a,v,t)},!0,!0,t,void 0,v):null;return nt(a,()=>R(async()=>{await g();const a=await(async()=>H(x(await O(Ta(c,async([a,t,n],e)=>[a,await S(e,t,n)])),a=>!aa(a[1]))))(),t=await(async()=>l?(await S(y,na,void 0,d))[ta]:{})();return aa(a)&&u(t)?void 0:[a,t]}),(a,t)=>R(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,{[A]:()=>m,destroy:s},0,m)},ot=(a,e,i,r,o,l,y,v,f,m,A="getDb",$,_)=>{let N,h,O;const T=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,l),[S,I,R,L]=(a=>{const n=(a=>Y(Ja,E(a)?{[Ma]:a}:a??{}))(a),e=n[xa];if(n.mode==Ca){const a=n[Ma]??t;return[1,e,[a,n[Pa]??na,n[Fa]??ba],Ra(a)]}const{tables:{load:i={},save:r={}}={},values:c={}}=n,o=Y(Xa,c),{load:l,save:w}=o,u=[za(l),za(w),o[Ua],Ya(l),Ya(w)],y=u[2],d=Ra(y),v=Ra(y),f=Ha(i,{[Ba]:null,[qa]:na,[Ga]:s},Ba,a=>p(v,a),a=>Da(d,a)),m=Ha(r,{[Ua]:null,[qa]:na,[ja]:0,[ka]:0,[Ga]:null},Ua,(a,t)=>p(v,t),(a,t)=>Da(d,t));return pa(m,(a,t)=>t[4]??=Oa(f,t[0])?.[2]??s),[0,e,[f,m,u],d]})(e);return!S&&a.isMergeable()&&D(0),(S?rt:ct)(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(ea+` ${ua} d,${ya} s,TOTAL_CHANGES() c FROM ${wa}${ua} JOIN ${wa}${ya}`);if(e&&(n!=N||i!=h||r!=O)){const c=t&&!s&&!w(N);N=n,h=i,O=r,c&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const c=C(()=>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*I)))});return n=c,c},f=r(a=>{e&&p(L,a)&&(s=1,d(),c.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,s=0,d(),await C(async()=>await n,async()=>{N=h=O=null,await o(f)})})},a=>a(),y,v,f,R,g(L),async(a,t)=>await a(ea+` t.name tn,c.name cn,c.pk OR EXISTS(${ea} 1 FROM ${wa}index_list(t.name)i,${wa}index_info(i.name)ii ${ia} i."unique"=1 AND ii.name=c.name AND(${ea} count(*) FROM ${wa}index_info(i.name))=1)uq FROM ${da}list()t,${da}info(t.name)c ${ia} t.schema='main'AND t.type IN('table','view')AND t.name IN(${Aa(t,ma)})ORDER BY t.name,c.name`,t),m,A,n,ma,$,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,_)},lt=/^\s*(SELECT|PRAGMA)/i,wt=(a,t,n,e,i)=>ot(a,n,async(a,n=[])=>_(lt,a)?(await t.query(a,n)).values??[]:(await t.run(a,n,!1),[]),()=>N,a=>a(),e,i,N,3,t);export{wt as createCapacitorSqlitePersister};
@@ -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,m=a=>Array.isArray(a),A=a=>a.length,N=a=>0==A(a),$=(a,t)=>a.test(t),_=()=>{},h=a=>new c(a),O=async a=>c.all(a),p=(a,t)=>a?.has(t)??!1,T=a=>u(a)||0==(a=>a?.size??0)(a),g=a=>[...a?.values()??[]],S=a=>a.clear(),I=(a,t)=>a?.forEach(t),D=(a,t)=>a?.delete(t),R=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},L=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},b=(a,t)=>L(a,a=>{L(()=>t?.(a))}),C=async(a,t)=>{try{return await a()}finally{await t()}},M=(a,t)=>a.forEach(t),P=(a,t="")=>a.join(t),F=(a,t)=>a.map(t),x=(a,t)=>a.filter(t),q=(a,t=A(a))=>a.splice(0,t),B=(a,...t)=>a.push(...t),U="_",j="_id",k="SELECT",G="WHERE",J="TABLE",X="ALTER "+J,Y="FROM",z="DELETE "+Y,H=k+"*"+Y,K="pragma_",Q="data_version",V="schema_version",W="pragma_table_",Z="CREATE "+J,aa=/\$tableName/g,ta=a=>P(F(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),na=()=>"?",ea=(a,t,n=[1])=>P(F(a,()=>t(n)),e),ia=(a,t=s)=>G+`(${sa(t,ta(a))})`,sa=(a,t)=>r(a,aa,t),ra=Object,ca=a=>ra.getPrototypeOf(a),oa=ra.entries,la=a=>!w(a)&&v(ca(a),a=>a==ra.prototype||w(ca(a)),()=>!0),wa=ra.keys,ua=ra.freeze,ya=(...a)=>ra.assign(ra.create(null),...a),da=(a,t,n)=>(ra.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),va=(a=[])=>{const t=ra.create(null);return M(a,([a,n])=>da(t,a,n)),t},fa=(a,t)=>(delete a[t],a),Ea=(a,t)=>M(wa(a),n=>t(a[n],n)),ma=(a,t)=>F(oa(a),([a,n])=>t(n,a)),Aa=(a,t)=>{const n=va();return Ea(a,(a,e)=>da(n,e,t(a,e))),n},Na=a=>A(wa(a)),$a=a=>la(a)&&0==Na(a),_a=Map,ha=a=>new _a(a),Oa=(a,t)=>a?.get(t),pa=(a,t)=>I(a,(a,n)=>t(n,a)),Ta=(a,t)=>{const n=[];return pa(a,(a,e)=>B(n,t(e,a))),n},ga=(a,t,n)=>u(n)?(D(a,t),a):a?.set(t,n),Sa=(a,t,n,e)=>{let i=Oa(a,t);return p(a,t)?e?.(i):ga(a,t,i=n()),i},Ia=(a,t,n,e,i=0)=>f((n?Sa:Oa)(a,t[i],i>A(t)-2?n:ha),s=>{if(i>A(t)-2)return e?.(s)&&ga(a,t[i]),s;const r=Ia(s,t,n,e,i+1);return T(s)&&ga(a,t[i]),r}),Da=a=>new Set(m(a)||u(a)?a:[a]),Ra=(a,t)=>a?.add(t),La="ColumnName",ba="store",Ca="json",Ma=ba+"TableName",Pa=ba+"Id"+La,Fa=ba+La,xa="autoLoadIntervalSeconds",qa="rowId"+La,Ba="tableId",Ua="tableName",ja="deleteEmptyColumns",ka="deleteEmptyTable",Ga="condition",Ja={mode:Ca,[xa]:1},Xa={load:0,save:0,[Ua]:t+"_values"},Ya=a=>m(a)?a:void 0,za=a=>d(a)||m(a),Ha=(a,t,n,e,i)=>{const s=ha();return Ea(a,(a,r)=>{const c=(w=ya(t,E(a)?{[n]:a}:a),o=ra.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},Ka=JSON.stringify,Qa=JSON.parse,Va=a=>""===a?void 0:m(a)?F(a,Va):la(a)?Aa(a,Va):a,Wa=/^\d+$/,Za=ha(),at=ha(),tt=ha(),nt=(a,t,e,i,s,r,c,o={},l=0,w=[])=>{let d,v,E,_,O,p=0,g=0,S=0,P=0,U=0,j=0,k=0,G=0,J=0;const X={},Y=o.destroy;Sa(Za,w,()=>0),Sa(at,w,()=>[]),ga(tt,w,(Oa(tt,w)??0)+1);const z=ha(),[H,K,Q,V,W]=((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]:R(0))(c,a,l),[Z,aa,ta]=(a=>{let t;const[e,i]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{$(Wa,t)&&A(a)<1e3&&B(a,t)}]})(),s=ha(),r=(a,e,i,r)=>{let c,o=!1;if(M(((a,t=[n])=>{const e=[],i=(a,n)=>n==A(t)?B(e,a):y(t[n])?I(a,a=>i(a,n+1)):M([t[n],null],t=>i(Oa(a,t),n+1));return i(a,0),e})(e,i),n=>I(n,n=>{const e=()=>Oa(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]),Ra(Ia(r,c??[n],Da),w),w},(a,t,...n)=>r(!1,a,t,n),a=>f(Oa(s,a),([,t,e])=>(Ia(t,e??[n],void 0,t=>(D(t,a),T(t)?1:0)),ga(s,a),i(a),e)),a=>f(Oa(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const c=A(r);c==A(n)?a(t,...r,...i(r)):y(n[c])?M(e[c]?.(...r)??[],a=>s(...r,a)):s(...r,n[c])};s()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>Aa),na=a=>{a!=p&&(p=a,aa(z,void 0,p))},ea=()=>{Oa(tt,w)||Oa(Za,w)||!N(Oa(at,w)??[])||(ga(Za,w),ga(at,w),ga(tt,w))},ia=t=>{(H&&m(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},sa=async()=>{fa()&&a.__?.[0]?.()&&await ya()},ra=a=>C(()=>v=a,()=>{v==a&&(v=void 0)}),ca=async a=>(2!=p&&(await C(async()=>{na(1),g++,await ma(()=>L(async()=>{const n=await t();m(n)?ia(n):u(n)&&a?W(a):u(n)||R(1,n)},t=>{r?.(t),a&&W(a)}))},()=>na(0)),await sa()),Aa),oa=async()=>{const a=k;k=0,a&&a==P&&!J&&(2==p?k=a:await ca())},la=async a=>{const t=++P;let n=!0;if(await wa(!0),t==P&&!J){const e=L(async()=>{const a=await i(async(a,e)=>{if(t==P&&!J)if(e||a){const t=n||2==p||!!j;U++,t&&j++,await C(async()=>{na(1),g++,await(t?ma(()=>ia(e??a)):(()=>{try{return ia(e??a)}finally{na(0)}})())},()=>{t&&j--,--U||na(0)}),U||await sa()}else 2==p?k=t:await ca()});t!=P||J?u(a)||await s(a):d=a},r);await ra(e),t!=P||J||await C(()=>ca(a),()=>{n=!1})}return Aa},wa=async(a=!1)=>{k=0,a||P++;const t=v,n=d;return d=void 0,await ra(C(async()=>{await t},async()=>{u(n)||await L(()=>s(n),r)})),Aa},ya=async a=>(1!=p&&await C(()=>C(async()=>{na(2),S++,await ma(()=>L(()=>e(K,a),r))},()=>na(0)),oa),Aa),da=async()=>{const t=++G;return await va(!0),t!=G||J||(await ya(),t!=G||J||(E=a.addDidFinishTransactionListener(()=>{if(t==G&&!J){const a=Q();V(a)&&L(()=>ya(a))}}))),Aa},va=async(t=!1)=>{t||G++;const n=E;return E=void 0,u(n)||a.delListener(n),Aa},fa=()=>!u(E),Ea=async(a=!1)=>{const[t,n]=a?[va,wa]:[wa,va];return await C(()=>t(),async()=>{await n()}),Aa},ma=async(...a)=>{let t,n=!1;const e=h(e=>N(a)?e():B(Oa(at,w),...F(a,(i,s)=>{const c=s==A(a)-1;return[async()=>{let a;O=h(t=>a=t),await C(async()=>{try{await L(i,r)}catch(a){n||(n=!0,t=a)}c&&e()},()=>{O=void 0,a()})},c?e:void 0,X]})));if(await(async()=>{if(!Oa(Za,w)){ga(Za,w,1);const a=Oa(at,w);let t=0;await C(async()=>{for(;t<A(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{q(a,t),ga(Za,w,0),ea()})}})(),await e,n)throw t;return Aa},Aa={load:ca,startAutoLoad:la,stopAutoLoad:wa,isAutoLoading:()=>!u(d),save:ya,startAutoSave:da,stopAutoSave:va,isAutoSaving:fa,startAutoPersisting:async(a,t=!1)=>{const[n,e,i,s]=t?[da,la,va,wa]:[la,da,wa,va],r=n(a),c=t?G:P;await r;const o=e(a),l=t?P:G;try{await o}catch(a){throw l==(t?P:G)&&await b(s),c==(t?G:P)&&await b(i),a}return Aa},stopAutoPersisting:Ea,getStatus:()=>p,addStatusListener:a=>Z(a,z),delListener:t=>(ta(t),a),schedule:ma,getStore:()=>a,getStats:()=>({loads:g,saves:S}),...o,destroy:async()=>(u(_)&&(J=1,_=(async()=>{const a=Oa(at,w),t=x(a,([,a,t])=>t!=X||(a?.(),!1)),n=O;q(a),B(a,...t),await C(()=>C(()=>C(Ea,()=>n),()=>Y?.()),()=>{const a=(Oa(tt,w)??1)-1;ga(tt,w,a||void 0),ea()})})()),await _,Aa)};return ua(Aa)},et=new l.TextEncoder,it=(a,n,i,r,c,o=st,l,w,y)=>{const d=ha(),v=ha();let f=a;return[async()=>{S(d),S(v),M(await i(f,n),({tn:a,cn:t,uq:n})=>{Ra(Sa(d,a,Da),t),n&&Ra(Sa(v,a,Da),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:Da(e);return((a,t)=>p(Oa(d,a),t))(a,t)?va(x(F(await f(H+ta(a)+ia(a,n)),a=>{const n=a[t],e=w?Aa(fa(a,t),w):fa(a,t);return[n,u(i)?e:va(x(ma(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||p(i,a))(a)))]}),a=>!u(a[0])&&!$a(a[1]))):{}},async(a,n,i,w,y,E=!1,m=s,A)=>{const $=u(A)?void 0:Da(A),_=a=>u($)||p($,a),h=Da();Ea(i??{},a=>M(x(wa(a??{}),_),a=>Ra(h,a)));const T=g(h);if(u($)&&!E&&y&&m==s&&N(T)&&p(d,a))return await f("DROP "+J+ta(a)),ga(d,a),void ga(v,a);const S=Oa(d,a),I=Da(x(g(S),a=>a==n||_(a)));if(!N(T))if(p(d,a)){if(await O(F([n,...T],async t=>{D(I,t)||(await f(X+ta(a)+"ADD"+ta(t)+r),Ra(S,t))})),o==st&&!p(Oa(v,a),n)){const e=t+"_pk_"+(a=>{let t=2166136261;return M(et.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(Ka([a,n]));await f("CREATE UNIQUE INDEX IF NOT EXISTS"+ta(e)+"ON"+ta(a)+`(${ta(n)})`),Ra(Sa(v,a,Da),n)}}else await f(Z+ta(a)+`(${ta(n)}${r} PRIMARY KEY${P(F(T,a=>e+ta(a)+r))});`),ga(d,a,Da([n,...T])),ga(v,a,Da([n]));if(await O([...!E&&w?F(g(I),async t=>{t!=n&&(await f(X+ta(a)+"DROP"+ta(t)),D(S,t))}):[]]),E)u(i)?u($)&&await f(z+ta(a)+ia(a,m)):await O(ma(i,async(t,e)=>{if(u(t))await f(z+ta(a)+ia(a,m)+`AND(${ta(n)}=${c([1])})`,[e]);else if(!N(T)){const i=x(wa(t),_);N(i)||await o(f,a,n,i,{[e]:F(i,a=>l?l(t[a]):t[a])},c,S)}}));else if(N(T))u($)&&p(d,a)&&await f(z+ta(a)+ia(a,m));else{const t=x(g(Oa(d,a)),a=>a!=n&&_(a)),e=va(),s=[];Ea(i??{},(a,n)=>{da(e,n,F(t,t=>l?l(a?.[t]):a?.[t])),B(s,n)}),await o(f,a,n,t,e,c,S),await f(z+ta(a)+ia(a,m)+`AND${ta(n)}NOT IN(${ea(s,c)})`,s)}},async t=>{if(y)return await y(async a=>{const n=f;return f=a,await C(t,()=>{f=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await L(()=>a("ROLLBACK")),t}}]},st=async(a,t,n,i,s,r)=>{const c=[1];await a("INSERT INTO"+ta(t)+"("+((...a)=>P(F(a,ta),e))(n,...i)+")VALUES"+P(ma(s,a=>"("+r(c)+","+ea(a,r,c)+")"),e)+"ON CONFLICT("+ta(n)+")DO UPDATE SET"+P(F(i,a=>ta(a)+"=excluded."+ta(a)),e),ma(s,(a,t)=>[t,...F(a,a=>a??null)]).flat())},rt=(a,t,n,e,i,s,r,[c,o,l],w,y,d,v,f,E,m,A,N,$)=>{const[_,h,O,p]=it(t,w,y,f,E,m,void 0,void 0,$);return nt(a,()=>p(async()=>{return await _(),a=(await h(c,o))[U]?.[l]??"null",Va(Qa(a));var a}),a=>p(async()=>{var t;await _(),await O(c,o,{[U]:{[l]:(t=a()??null,Ka(t,(a,t)=>u(t)?"":t))}},!0,!0)}),n,e,i,r,{[v]:()=>d,destroy:s},0,d)},ct=(a,t,n,e,i,s,r,[c,o,[l,w,y,d,v]],f,E,m,A,N,$,_,h,p,T)=>{const[g,S,I,D]=it(t,f,E,N,$,_,h,p,T),R=(a,t)=>O(Ta(o,async([n,e,i,s,r],c)=>{var o,l;t&&(o=a,l=c,!ra.hasOwn(o,l))||await I(n,e,a[c],i,s,t,r)})),L=(a,t,n)=>va(1==n?x(ma(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):x(F(t,t=>[t,a[t]]),([,a])=>!u(a))),b=async(a,t)=>w?await I(y,j,{[U]:u(v)?a:L(a,v,t)},!0,!0,t,void 0,v):null;return nt(a,()=>D(async()=>{await g();const a=await(async()=>va(x(await O(Ta(c,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))[U]:{})();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 b(n)}else await R(t[0],!0),await b(t[1],!0)}),n,e,i,r,{[A]:()=>m,destroy:s},0,m)},ot=(a,e,i,r,o,l,y,v,f,m,A="getDb",N,$)=>{let _,h,O;const T=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,l),[S,I,D,L]=(a=>{const n=(a=>ya(Ja,E(a)?{[Ma]:a}:a??{}))(a),e=n[xa];if(n.mode==Ca){const a=n[Ma]??t;return[1,e,[a,n[Pa]??j,n[Fa]??ba],Da(a)]}const{tables:{load:i={},save:r={}}={},values:c={}}=n,o=ya(Xa,c),{load:l,save:w}=o,u=[za(l),za(w),o[Ua],Ya(l),Ya(w)],y=u[2],d=Da(y),v=Da(y),f=Ha(i,{[Ba]:null,[qa]:j,[Ga]:s},Ba,a=>p(v,a),a=>Ra(d,a)),m=Ha(r,{[Ua]:null,[qa]:j,[ja]:0,[ka]:0,[Ga]:null},Ua,(a,t)=>p(v,t),(a,t)=>Ra(d,t));return pa(m,(a,t)=>t[4]??=Oa(f,t[0])?.[2]??s),[0,e,[f,m,u],d]})(e);return!S&&a.isMergeable()&&R(0),(S?rt:ct)(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+` ${Q} d,${V} s,TOTAL_CHANGES() c FROM ${K}${Q} JOIN ${K}${V}`);if(e&&(n!=_||i!=h||r!=O)){const c=t&&!s&&!w(_);_=n,h=i,O=r,c&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const c=C(()=>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*I)))});return n=c,c},f=r(a=>{e&&p(L,a)&&(s=1,d(),c.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,s=0,d(),await C(async()=>await n,async()=>{_=h=O=null,await o(f)})})},a=>a(),y,v,f,D,g(L),async(a,t)=>await a(k+` t.name tn,c.name cn,c.pk OR EXISTS(${k} 1 FROM ${K}index_list(t.name)i,${K}index_info(i.name)ii ${G} i."unique"=1 AND ii.name=c.name AND(${k} count(*) FROM ${K}index_info(i.name))=1)uq FROM ${W}list()t,${W}info(t.name)c ${G} t.schema='main'AND t.type IN('table','view')AND t.name IN(${ea(t,na)})ORDER BY t.name,c.name`,t),m,A,n,na,N,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,$)},lt=/^\s*(SELECT|PRAGMA)/i,wt=(a,t,n,e,i)=>ot(a,n,async(a,n=[])=>$(lt,a)?(await t.query(a,n)).values??[]:(await t.run(a,n,!1),[]),()=>_,a=>a(),e,i,_,3,t);export{wt as createCapacitorSqlitePersister};
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),A=a=>a.length,$=a=>0==A(a),_=(a,t)=>a.test(t),N=()=>{},h=a=>new c(a),O=async a=>c.all(a),p=(a,t)=>a?.has(t)??!1,T=a=>u(a)||0==(a=>a?.size??0)(a),g=a=>[...a?.values()??[]],S=a=>a.clear(),I=(a,t)=>a?.forEach(t),R=(a,t)=>a?.delete(t),D=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},L=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},b=(a,t)=>L(a,a=>{L(()=>t?.(a))}),C=async(a,t)=>{try{return await a()}finally{await t()}},M=(a,t)=>a.forEach(t),P=(a,t="")=>a.join(t),F=(a,t)=>a.map(t),x=(a,t)=>a.filter(t),q=(a,t=A(a))=>a.splice(0,t),B=(a,...t)=>a.push(...t),U=Object,j=a=>U.getPrototypeOf(a),k=U.entries,G=a=>!w(a)&&v(j(a),a=>a==U.prototype||w(j(a)),()=>!0),J=U.keys,X=U.freeze,Y=(...a)=>U.assign(U.create(null),...a),z=(a,t,n)=>(U.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),H=(a=[])=>{const t=U.create(null);return M(a,([a,n])=>z(t,a,n)),t},K=(a,t)=>(delete a[t],a),Q=(a,t)=>M(J(a),n=>t(a[n],n)),V=(a,t)=>F(k(a),([a,n])=>t(n,a)),W=(a,t)=>{const n=H();return Q(a,(a,e)=>z(n,e,t(a,e))),n},Z=a=>A(J(a)),aa=a=>G(a)&&0==Z(a),ta="_",na="_id",ea="SELECT",ia="WHERE",sa="TABLE",ra="ALTER "+sa,ca="FROM",oa="DELETE "+ca,la=ea+"*"+ca,wa="pragma_",ua="data_version",ya="schema_version",da="pragma_table_",va="CREATE "+sa,fa=/\$tableName/g,Ea=a=>P(F(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),ma=()=>"?",Aa=(a,t,n=[1])=>P(F(a,()=>t(n)),e),$a=(a,t=s,e)=>{const i=x([t==s?void 0:`(${_a(t,Ea(a))})`,e],a=>!u(a));return $(i)?n:ia+P(i,"AND")},_a=(a,t)=>r(a,fa,t),Na=Map,ha=a=>new Na(a),Oa=(a,t)=>a?.get(t),pa=(a,t)=>I(a,(a,n)=>t(n,a)),Ta=(a,t)=>{const n=[];return pa(a,(a,e)=>B(n,t(e,a))),n},ga=(a,t,n)=>u(n)?(R(a,t),a):a?.set(t,n),Sa=(a,t,n,e)=>{let i=Oa(a,t);return p(a,t)?e?.(i):ga(a,t,i=n()),i},Ia=(a,t,n,e,i=0)=>f((n?Sa:Oa)(a,t[i],i>A(t)-2?n:ha),s=>{if(i>A(t)-2)return e?.(s)&&ga(a,t[i]),s;const r=Ia(s,t,n,e,i+1);return T(s)&&ga(a,t[i]),r}),Ra=a=>new Set(m(a)||u(a)?a:[a]),Da=(a,t)=>a?.add(t),La="ColumnName",ba="store",Ca="json",Ma=ba+"TableName",Pa=ba+"Id"+La,Fa=ba+La,xa="autoLoadIntervalSeconds",qa="rowId"+La,Ba="tableId",Ua="tableName",ja="deleteEmptyColumns",ka="deleteEmptyTable",Ga="condition",Ja={mode:Ca,[xa]:1},Xa={load:0,save:0,[Ua]:t+"_values"},Ya=a=>m(a)?a:void 0,za=a=>d(a)||m(a),Ha=(a,t,n,e,i)=>{const s=ha();return Q(a,(a,r)=>{const c=(w=Y(t,E(a)?{[n]:a}:a),o=U.values(w),l=Z(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},Ka=JSON.stringify,Qa=JSON.parse,Va=a=>""===a?void 0:m(a)?F(a,Va):G(a)?W(a,Va):a,Wa=/^\d+$/,Za=ha(),at=ha(),tt=ha(),nt=(a,t,e,i,s,r,c,o={},l=0,w=[])=>{let d,v,E,N,O,p=0,g=0,S=0,P=0,U=0,j=0,k=0,G=0,J=0;const Y={},z=o.destroy;Sa(Za,w,()=>0),Sa(at,w,()=>[]),ga(tt,w,(Oa(tt,w)??0)+1);const H=ha(),[K,Q,V,W,Z]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!aa(a)||!aa(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!aa(a)||!aa(t),t.setContent]:D(0))(c,a,l),[ta,na,ea]=(a=>{let t;const[e,i]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{_(Wa,t)&&A(a)<1e3&&B(a,t)}]})(),s=ha(),r=(a,e,i,r)=>{let c,o=!1;if(M(((a,t=[n])=>{const e=[],i=(a,n)=>n==A(t)?B(e,a):y(t[n])?I(a,a=>i(a,n+1)):M([t[n],null],t=>i(Oa(a,t),n+1));return i(a,0),e})(e,i),n=>I(n,n=>{const e=()=>Oa(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],Ra),w),w},(a,t,...n)=>r(!1,a,t,n),a=>f(Oa(s,a),([,t,e])=>(Ia(t,e??[n],void 0,t=>(R(t,a),T(t)?1:0)),ga(s,a),i(a),e)),a=>f(Oa(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const c=A(r);c==A(n)?a(t,...r,...i(r)):y(n[c])?M(e[c]?.(...r)??[],a=>s(...r,a)):s(...r,n[c])};s()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>$a),ia=a=>{a!=p&&(p=a,na(H,void 0,p))},sa=()=>{Oa(tt,w)||Oa(Za,w)||!$(Oa(at,w)??[])||(ga(Za,w),ga(at,w),ga(tt,w))},ra=t=>{(K&&m(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ca=async()=>{Ea()&&a.__?.[0]?.()&&await da()},oa=a=>C(()=>v=a,()=>{v==a&&(v=void 0)}),la=async a=>(2!=p&&(await C(async()=>{ia(1),g++,await Aa(()=>L(async()=>{const n=await t();m(n)?ra(n):u(n)&&a?Z(a):u(n)||D(1,n)},t=>{r?.(t),a&&Z(a)}))},()=>ia(0)),await ca()),$a),wa=async()=>{const a=k;k=0,a&&a==P&&!J&&(2==p?k=a:await la())},ua=async a=>{const t=++P;let n=!0;if(await ya(!0),t==P&&!J){const e=L(async()=>{const a=await i(async(a,e)=>{if(t==P&&!J)if(e||a){const t=n||2==p||!!j;U++,t&&j++,await C(async()=>{ia(1),g++,await(t?Aa(()=>ra(e??a)):(()=>{try{return ra(e??a)}finally{ia(0)}})())},()=>{t&&j--,--U||ia(0)}),U||await ca()}else 2==p?k=t:await la()});t!=P||J?u(a)||await s(a):d=a},r);await oa(e),t!=P||J||await C(()=>la(a),()=>{n=!1})}return $a},ya=async(a=!1)=>{k=0,a||P++;const t=v,n=d;return d=void 0,await oa(C(async()=>{await t},async()=>{u(n)||await L(()=>s(n),r)})),$a},da=async a=>(1!=p&&await C(()=>C(async()=>{ia(2),S++,await Aa(()=>L(()=>e(Q,a),r))},()=>ia(0)),wa),$a),va=async()=>{const t=++G;return await fa(!0),t!=G||J||(await da(),t!=G||J||(E=a.addDidFinishTransactionListener(()=>{if(t==G&&!J){const a=V();W(a)&&L(()=>da(a))}}))),$a},fa=async(t=!1)=>{t||G++;const n=E;return E=void 0,u(n)||a.delListener(n),$a},Ea=()=>!u(E),ma=async(a=!1)=>{const[t,n]=a?[fa,ya]:[ya,fa];return await C(()=>t(),async()=>{await n()}),$a},Aa=async(...a)=>{let t,n=!1;const e=h(e=>$(a)?e():B(Oa(at,w),...F(a,(i,s)=>{const c=s==A(a)-1;return[async()=>{let a;O=h(t=>a=t),await C(async()=>{try{await L(i,r)}catch(a){n||(n=!0,t=a)}c&&e()},()=>{O=void 0,a()})},c?e:void 0,Y]})));if(await(async()=>{if(!Oa(Za,w)){ga(Za,w,1);const a=Oa(at,w);let t=0;await C(async()=>{for(;t<A(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{q(a,t),ga(Za,w,0),sa()})}})(),await e,n)throw t;return $a},$a={load:la,startAutoLoad:ua,stopAutoLoad:ya,isAutoLoading:()=>!u(d),save:da,startAutoSave:va,stopAutoSave:fa,isAutoSaving:Ea,startAutoPersisting:async(a,t=!1)=>{const[n,e,i,s]=t?[va,ua,fa,ya]:[ua,va,ya,fa],r=n(a),c=t?G:P;await r;const o=e(a),l=t?P:G;try{await o}catch(a){throw l==(t?P:G)&&await b(s),c==(t?G:P)&&await b(i),a}return $a},stopAutoPersisting:ma,getStatus:()=>p,addStatusListener:a=>ta(a,H),delListener:t=>(ea(t),a),schedule:Aa,getStore:()=>a,getStats:()=>({loads:g,saves:S}),...o,destroy:async()=>(u(N)&&(J=1,N=(async()=>{const a=Oa(at,w),t=x(a,([,a,t])=>t!=Y||(a?.(),!1)),n=O;q(a),B(a,...t),await C(()=>C(()=>C(ma,()=>n),()=>z?.()),()=>{const a=(Oa(tt,w)??1)-1;ga(tt,w,a||void 0),sa()})})()),await N,$a)};return X($a)},et=new l.TextEncoder,it=(a,n,i,r,c,o=st,l,w,y)=>{const d=ha(),v=ha();let f=a;return[async()=>{S(d),S(v),M(await i(f,n),({tn:a,cn:t,uq:n})=>{Da(Sa(d,a,Ra),t),n&&Da(Sa(v,a,Ra),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:Ra(e);return((a,t)=>p(Oa(d,a),t))(a,t)?H(x(F(await f(la+Ea(a)+$a(a,n)),a=>{const n=a[t],e=w?W(K(a,t),w):K(a,t);return[n,u(i)?e:H(x(V(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||p(i,a))(a)))]}),a=>!u(a[0])&&!aa(a[1]))):{}},async(a,n,i,w,y,E=!1,m=s,A)=>{const _=u(A)?void 0:Ra(A),N=a=>u(_)||p(_,a),h=Ra();Q(i??{},a=>M(x(J(a??{}),N),a=>Da(h,a)));const T=g(h);if(u(_)&&!E&&y&&m==s&&$(T)&&p(d,a))return await f("DROP "+sa+Ea(a)),ga(d,a),void ga(v,a);const S=Oa(d,a),I=Ra(x(g(S),a=>a==n||N(a)));if(!$(T))if(p(d,a)){if(await O(F([n,...T],async t=>{R(I,t)||(await f(ra+Ea(a)+"ADD"+Ea(t)+r),Da(S,t))})),o==st&&!p(Oa(v,a),n)){const e=t+"_pk_"+(a=>{let t=2166136261;return M(et.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(Ka([a,n]));await f("CREATE UNIQUE INDEX IF NOT EXISTS"+Ea(e)+"ON"+Ea(a)+`(${Ea(n)})`),Da(Sa(v,a,Ra),n)}}else await f(va+Ea(a)+`(${Ea(n)}${r} PRIMARY KEY${P(F(T,a=>e+Ea(a)+r))});`),ga(d,a,Ra([n,...T])),ga(v,a,Ra([n]));if(await O([...!E&&w?F(g(I),async t=>{t!=n&&(await f(ra+Ea(a)+"DROP"+Ea(t)),R(S,t))}):[]]),E)u(i)?u(_)&&await f(oa+Ea(a)+$a(a,m)):await O(V(i,async(t,e)=>{if(u(t))await f(oa+Ea(a)+$a(a,m,`(${Ea(n)}=${c([1])})`),[e]);else if(!$(T)){const i=x(J(t),N);$(i)||await o(f,a,n,i,{[e]:F(i,a=>l?l(t[a]):t[a])},c,S)}}));else if($(T))u(_)&&p(d,a)&&await f(oa+Ea(a)+$a(a,m));else{const t=x(g(Oa(d,a)),a=>a!=n&&N(a)),e=H(),s=[];Q(i??{},(a,n)=>{z(e,n,F(t,t=>l?l(a?.[t]):a?.[t])),B(s,n)}),await o(f,a,n,t,e,c,S),await f(oa+Ea(a)+$a(a,m,`${Ea(n)}NOT IN(${Aa(s,c)})`),s)}},async t=>{if(y)return await y(async a=>{const n=f;return f=a,await C(t,()=>{f=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await L(()=>a("ROLLBACK")),t}}]},st=async(a,t,n,i,s,r)=>{const c=[1];await a("INSERT INTO"+Ea(t)+"("+((...a)=>P(F(a,Ea),e))(n,...i)+")VALUES"+P(V(s,a=>"("+r(c)+","+Aa(a,r,c)+")"),e)+"ON CONFLICT("+Ea(n)+")DO UPDATE SET"+P(F(i,a=>Ea(a)+"=excluded."+Ea(a)),e),V(s,(a,t)=>[t,...F(a,a=>a??null)]).flat())},rt=(a,t,n,e,i,s,r,[c,o,l],w,y,d,v,f,E,m,A,$,_)=>{const[N,h,O,p]=it(t,w,y,f,E,m,void 0,void 0,_);return nt(a,()=>p(async()=>{return await N(),a=(await h(c,o))[ta]?.[l]??"null",Va(Qa(a));var a}),a=>p(async()=>{var t;await N(),await O(c,o,{[ta]:{[l]:(t=a()??null,Ka(t,(a,t)=>u(t)?"":t))}},!0,!0)}),n,e,i,r,{[v]:()=>d,destroy:s},0,d)},ct=(a,t,n,e,i,s,r,[c,o,[l,w,y,d,v]],f,E,m,A,$,_,N,h,p,T)=>{const[g,S,I,R]=it(t,f,E,$,_,N,h,p,T),D=(a,t)=>O(Ta(o,async([n,e,i,s,r],c)=>{var o,l;t&&(o=a,l=c,!U.hasOwn(o,l))||await I(n,e,a[c],i,s,t,r)})),L=(a,t,n)=>H(1==n?x(V(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):x(F(t,t=>[t,a[t]]),([,a])=>!u(a))),b=async(a,t)=>w?await I(y,na,{[ta]:u(v)?a:L(a,v,t)},!0,!0,t,void 0,v):null;return nt(a,()=>R(async()=>{await g();const a=await(async()=>H(x(await O(Ta(c,async([a,t,n],e)=>[a,await S(e,t,n)])),a=>!aa(a[1]))))(),t=await(async()=>l?(await S(y,na,void 0,d))[ta]:{})();return aa(a)&&u(t)?void 0:[a,t]}),(a,t)=>R(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,{[A]:()=>m,destroy:s},0,m)},ot=(a,e,i,r,o,l,y,v,f,m,A="getDb",$,_)=>{let N,h,O;const T=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,l),[S,I,R,L]=(a=>{const n=(a=>Y(Ja,E(a)?{[Ma]:a}:a??{}))(a),e=n[xa];if(n.mode==Ca){const a=n[Ma]??t;return[1,e,[a,n[Pa]??na,n[Fa]??ba],Ra(a)]}const{tables:{load:i={},save:r={}}={},values:c={}}=n,o=Y(Xa,c),{load:l,save:w}=o,u=[za(l),za(w),o[Ua],Ya(l),Ya(w)],y=u[2],d=Ra(y),v=Ra(y),f=Ha(i,{[Ba]:null,[qa]:na,[Ga]:s},Ba,a=>p(v,a),a=>Da(d,a)),m=Ha(r,{[Ua]:null,[qa]:na,[ja]:0,[ka]:0,[Ga]:null},Ua,(a,t)=>p(v,t),(a,t)=>Da(d,t));return pa(m,(a,t)=>t[4]??=Oa(f,t[0])?.[2]??s),[0,e,[f,m,u],d]})(e);return!S&&a.isMergeable()&&D(0),(S?rt:ct)(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(ea+` ${ua} d,${ya} s,TOTAL_CHANGES() c FROM ${wa}${ua} JOIN ${wa}${ya}`);if(e&&(n!=N||i!=h||r!=O)){const c=t&&!s&&!w(N);N=n,h=i,O=r,c&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const c=C(()=>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*I)))});return n=c,c},f=r(a=>{e&&p(L,a)&&(s=1,d(),c.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,s=0,d(),await C(async()=>await n,async()=>{N=h=O=null,await o(f)})})},a=>a(),y,v,f,R,g(L),async(a,t)=>await a(ea+` t.name tn,c.name cn,c.pk OR EXISTS(${ea} 1 FROM ${wa}index_list(t.name)i,${wa}index_info(i.name)ii ${ia} i."unique"=1 AND ii.name=c.name AND(${ea} count(*) FROM ${wa}index_info(i.name))=1)uq FROM ${da}list()t,${da}info(t.name)c ${ia} t.schema='main'AND t.type IN('table','view')AND t.name IN(${Aa(t,ma)})ORDER BY t.name,c.name`,t),m,A,n,ma,$,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,_)},lt=/^\s*(SELECT|PRAGMA)/i,wt=(a,t,n,e,i)=>ot(a,n,async(a,n=[])=>_(lt,a)?(await t.query(a,n)).values??[]:(await t.run(a,n,!1),[]),()=>N,a=>a(),e,i,N,3,t);export{wt as createCapacitorSqlitePersister};
@@ -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,m=a=>Array.isArray(a),N=a=>a.length,$=a=>0==N(a),_=()=>{},A=a=>new c(a),O=async a=>c.all(a),h=(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),U=(a,...t)=>a.push(...t),B="_",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),Oa=(a,t)=>a?.get(t),ha=(a,t)=>I(a,(a,n)=>t(n,a)),pa=(a,t)=>{const n=[];return ha(a,(a,e)=>U(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=Oa(a,t);return h(a,t)?e?.(i):Ta(a,t,i=n()),i},Ia=(a,t,n,e,i=0)=>f((n?ga:Oa)(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,Ua="tableId",Ba="tableName",ja="deleteEmptyColumns",ka="deleteEmptyTable",qa="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,_,O,h=0,T=0,g=0,M=0,B=0,j=0,k=0,q=0,J=0;const X={},Y=o.destroy;ga(Wa,w,()=>0),ga(Za,w,()=>[]),Ta(at,w,(Oa(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&&U(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)?U(e,a):y(t[n])?I(a,a=>i(a,n+1)):C([t[n],null],t=>i(Oa(a,t),n+1));return i(a,0),e})(e,i),n=>I(n,n=>{const e=()=>Oa(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(Oa(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(Oa(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!=h&&(h=a,Z(z,void 0,h))},na=()=>{Oa(at,w)||Oa(Wa,w)||!$(Oa(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!=h&&(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=k;k=0,a&&a==M&&!J&&(2==h?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==h||!!j;B++,t&&j++,await L(async()=>{ta(1),T++,await(t?Ea(()=>ea(e??a)):(()=>{try{return ea(e??a)}finally{ta(0)}})())},()=>{t&&j--,--B||ta(0)}),B||await ia()}else 2==h?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!=h&&await L(()=>L(async()=>{ta(2),g++,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():U(Oa(Za,w),...P(a,(i,s)=>{const c=s==N(a)-1;return[async()=>{let a;O=A(t=>a=t),await L(async()=>{try{await R(i,r)}catch(a){n||(n=!0,t=a)}c&&e()},()=>{O=void 0,a()})},c?e:void 0,X]})));if(await(async()=>{if(!Oa(Wa,w)){Ta(Wa,w,1);const a=Oa(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?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:()=>h,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=Oa(Za,w),t=F(a,([,a,t])=>t!=X||(a?.(),!1)),n=O;x(a),U(a,...t),await L(()=>L(()=>L(fa,()=>n),()=>Y?.()),()=>{const a=(Oa(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)=>h(Oa(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)||h(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(_)||h(_,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)&&h(d,a))return await f("DROP "+J+aa(a)),Ta(d,a),void Ta(v,a);const I=Oa(d,a),D=Sa(F(T(I),a=>a==n||A(a)));if(!$(g))if(h(d,a)){if(await O(P([n,...g],async t=>{S(D,t)||(await f(X+aa(a)+"ADD"+aa(t)+r),Da(I,t))})),o==it&&!h(Oa(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 O([...!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 O(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(_)&&h(d,a)&&await f(z+aa(a)+ea(a,m));else{const t=F(T(Oa(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])),U(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,O,h,p]=et(t,w,y,f,E,m,void 0,void 0,_);return tt(a,()=>p(async()=>{return await A(),a=(await O(c,o))[B]?.[l]??"null",Qa(Ka(a));var a}),a=>p(async()=>{var t;await A(),await h(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,h,p,T)=>{const[g,I,S,D]=et(t,f,E,$,_,A,h,p,T),R=(a,t)=>O(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,{[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 O(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))[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,O,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]??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[Ba],Ya(l),Ya(w)],y=u[2],d=Sa(y),v=Sa(y),f=Ga(i,{[Ua]:null,[xa]:j,[qa]:s},Ua,a=>h(v,a),a=>Da(d,a)),m=Ga(r,{[Ba]:null,[xa]:j,[ja]:0,[ka]:0,[qa]:null},Ba,(a,t)=>h(v,t),(a,t)=>Da(d,t));return ha(m,(a,t)=>t[4]??=Oa(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(k+` ${K} d,${Q} s,TOTAL_CHANGES() c FROM ${H}${K} JOIN ${H}${Q}`);if(e&&(n!=A||i!=O||r!=p)){const c=t&&!s&&!w(A);A=n,O=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&&h(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=O=p=null,await o(f)})})},a=>a(),y,v,f,R,T(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 t.execO(a,n),a=>t.onUpdate((t,n,e)=>a(e)),a=>a(),e,i,_,1,t);export{ot as createCrSqliteWasmPersister};
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),$=a=>a.length,_=a=>0==$(a),N=()=>{},A=a=>new c(a),O=async a=>c.all(a),h=(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=$(a))=>a.splice(0,t),U=(a,...t)=>a.push(...t),B=Object,j=a=>B.getPrototypeOf(a),k=B.entries,q=a=>!w(a)&&v(j(a),a=>a==B.prototype||w(j(a)),()=>!0),J=B.keys,X=B.freeze,Y=(...a)=>B.assign(B.create(null),...a),z=(a,t,n)=>(B.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),G=(a=[])=>{const t=B.create(null);return C(a,([a,n])=>z(t,a,n)),t},H=(a,t)=>(delete a[t],a),K=(a,t)=>C(J(a),n=>t(a[n],n)),Q=(a,t)=>P(k(a),([a,n])=>t(n,a)),V=(a,t)=>{const n=G();return K(a,(a,e)=>z(n,e,t(a,e))),n},W=a=>$(J(a)),Z=a=>q(a)&&0==W(a),aa="_",ta="_id",na="SELECT",ea="WHERE",ia="TABLE",sa="ALTER "+ia,ra="FROM",ca="DELETE "+ra,oa=na+"*"+ra,la="pragma_",wa="data_version",ua="schema_version",ya="pragma_table_",da="CREATE "+ia,va=/\$tableName/g,fa=a=>M(P(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),Ea=()=>"?",ma=(a,t,n=[1])=>M(P(a,()=>t(n)),e),$a=(a,t=s,e)=>{const i=F([t==s?void 0:`(${_a(t,fa(a))})`,e],a=>!u(a));return _(i)?n:ea+M(i,"AND")},_a=(a,t)=>r(a,va,t),Na=Map,Aa=a=>new Na(a),Oa=(a,t)=>a?.get(t),ha=(a,t)=>I(a,(a,n)=>t(n,a)),pa=(a,t)=>{const n=[];return ha(a,(a,e)=>U(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=Oa(a,t);return h(a,t)?e?.(i):Ta(a,t,i=n()),i},Ia=(a,t,n,e,i=0)=>f((n?ga:Oa)(a,t[i],i>$(t)-2?n:Aa),s=>{if(i>$(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,Ua="tableId",Ba="tableName",ja="deleteEmptyColumns",ka="deleteEmptyTable",qa="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 K(a,(a,r)=>{const c=(w=Y(t,E(a)?{[n]:a}:a),o=B.values(w),l=W(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):q(a)?V(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,N,O,h=0,T=0,g=0,M=0,B=0,j=0,k=0,q=0,J=0;const Y={},z=o.destroy;ga(Wa,w,()=>0),ga(Za,w,()=>[]),Ta(at,w,(Oa(at,w)??0)+1);const G=Aa(),[H,K,Q,V,W]=((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))(c,a,l),[aa,ta,na]=(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&&U(a,t)}]})(),s=Aa(),r=(a,e,i,r)=>{let c,o=!1;if(C(((a,t=[n])=>{const e=[],i=(a,n)=>n==$(t)?U(e,a):y(t[n])?I(a,a=>i(a,n+1)):C([t[n],null],t=>i(Oa(a,t),n+1));return i(a,0),e})(e,i),n=>I(n,n=>{const e=()=>Oa(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(Oa(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(Oa(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const c=$(r);c==$(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),ea=a=>{a!=h&&(h=a,ta(G,void 0,h))},ia=()=>{Oa(at,w)||Oa(Wa,w)||!_(Oa(Za,w)??[])||(Ta(Wa,w),Ta(Za,w),Ta(at,w))},sa=t=>{(H&&m(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ra=async()=>{fa()&&a.__?.[0]?.()&&await ya()},ca=a=>L(()=>v=a,()=>{v==a&&(v=void 0)}),oa=async a=>(2!=h&&(await L(async()=>{ea(1),T++,await ma(()=>R(async()=>{const n=await t();m(n)?sa(n):u(n)&&a?W(a):u(n)||D(1,n)},t=>{r?.(t),a&&W(a)}))},()=>ea(0)),await ra()),$a),la=async()=>{const a=k;k=0,a&&a==M&&!J&&(2==h?k=a:await oa())},wa=async a=>{const t=++M;let n=!0;if(await ua(!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==h||!!j;B++,t&&j++,await L(async()=>{ea(1),T++,await(t?ma(()=>sa(e??a)):(()=>{try{return sa(e??a)}finally{ea(0)}})())},()=>{t&&j--,--B||ea(0)}),B||await ra()}else 2==h?k=t:await oa()});t!=M||J?u(a)||await s(a):d=a},r);await ca(e),t!=M||J||await L(()=>oa(a),()=>{n=!1})}return $a},ua=async(a=!1)=>{k=0,a||M++;const t=v,n=d;return d=void 0,await ca(L(async()=>{await t},async()=>{u(n)||await R(()=>s(n),r)})),$a},ya=async a=>(1!=h&&await L(()=>L(async()=>{ea(2),g++,await ma(()=>R(()=>e(K,a),r))},()=>ea(0)),la),$a),da=async()=>{const t=++q;return await va(!0),t!=q||J||(await ya(),t!=q||J||(E=a.addDidFinishTransactionListener(()=>{if(t==q&&!J){const a=Q();V(a)&&R(()=>ya(a))}}))),$a},va=async(t=!1)=>{t||q++;const n=E;return E=void 0,u(n)||a.delListener(n),$a},fa=()=>!u(E),Ea=async(a=!1)=>{const[t,n]=a?[va,ua]:[ua,va];return await L(()=>t(),async()=>{await n()}),$a},ma=async(...a)=>{let t,n=!1;const e=A(e=>_(a)?e():U(Oa(Za,w),...P(a,(i,s)=>{const c=s==$(a)-1;return[async()=>{let a;O=A(t=>a=t),await L(async()=>{try{await R(i,r)}catch(a){n||(n=!0,t=a)}c&&e()},()=>{O=void 0,a()})},c?e:void 0,Y]})));if(await(async()=>{if(!Oa(Wa,w)){Ta(Wa,w,1);const a=Oa(Za,w);let t=0;await L(async()=>{for(;t<$(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{x(a,t),Ta(Wa,w,0),ia()})}})(),await e,n)throw t;return $a},$a={load:oa,startAutoLoad:wa,stopAutoLoad:ua,isAutoLoading:()=>!u(d),save:ya,startAutoSave:da,stopAutoSave:va,isAutoSaving:fa,startAutoPersisting:async(a,t=!1)=>{const[n,e,i,s]=t?[da,wa,va,ua]:[wa,da,ua,va],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:Ea,getStatus:()=>h,addStatusListener:a=>aa(a,G),delListener:t=>(na(t),a),schedule:ma,getStore:()=>a,getStats:()=>({loads:T,saves:g}),...o,destroy:async()=>(u(N)&&(J=1,N=(async()=>{const a=Oa(Za,w),t=F(a,([,a,t])=>t!=Y||(a?.(),!1)),n=O;x(a),U(a,...t),await L(()=>L(()=>L(Ea,()=>n),()=>z?.()),()=>{const a=(Oa(at,w)??1)-1;Ta(at,w,a||void 0),ia()})})()),await N,$a)};return X($a)},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)=>h(Oa(d,a),t))(a,t)?G(F(P(await f(oa+fa(a)+$a(a,n)),a=>{const n=a[t],e=w?V(H(a,t),w):H(a,t);return[n,u(i)?e:G(F(Q(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||h(i,a))(a)))]}),a=>!u(a[0])&&!Z(a[1]))):{}},async(a,n,i,w,y,E=!1,m=s,$)=>{const N=u($)?void 0:Sa($),A=a=>u(N)||h(N,a),p=Sa();K(i??{},a=>C(F(J(a??{}),A),a=>Da(p,a)));const g=T(p);if(u(N)&&!E&&y&&m==s&&_(g)&&h(d,a))return await f("DROP "+ia+fa(a)),Ta(d,a),void Ta(v,a);const I=Oa(d,a),D=Sa(F(T(I),a=>a==n||A(a)));if(!_(g))if(h(d,a)){if(await O(P([n,...g],async t=>{S(D,t)||(await f(sa+fa(a)+"ADD"+fa(t)+r),Da(I,t))})),o==it&&!h(Oa(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"+fa(e)+"ON"+fa(a)+`(${fa(n)})`),Da(ga(v,a,Sa),n)}}else await f(da+fa(a)+`(${fa(n)}${r} PRIMARY KEY${M(P(g,a=>e+fa(a)+r))});`),Ta(d,a,Sa([n,...g])),Ta(v,a,Sa([n]));if(await O([...!E&&w?P(T(D),async t=>{t!=n&&(await f(sa+fa(a)+"DROP"+fa(t)),S(I,t))}):[]]),E)u(i)?u(N)&&await f(ca+fa(a)+$a(a,m)):await O(Q(i,async(t,e)=>{if(u(t))await f(ca+fa(a)+$a(a,m,`(${fa(n)}=${c([1])})`),[e]);else if(!_(g)){const i=F(J(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(N)&&h(d,a)&&await f(ca+fa(a)+$a(a,m));else{const t=F(T(Oa(d,a)),a=>a!=n&&A(a)),e=G(),s=[];K(i??{},(a,n)=>{z(e,n,P(t,t=>l?l(a?.[t]):a?.[t])),U(s,n)}),await o(f,a,n,t,e,c,I),await f(ca+fa(a)+$a(a,m,`${fa(n)}NOT IN(${ma(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"+fa(t)+"("+((...a)=>M(P(a,fa),e))(n,...i)+")VALUES"+M(Q(s,a=>"("+r(c)+","+ma(a,r,c)+")"),e)+"ON CONFLICT("+fa(n)+")DO UPDATE SET"+M(P(i,a=>fa(a)+"=excluded."+fa(a)),e),Q(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,O,h,p]=et(t,w,y,f,E,m,void 0,void 0,N);return tt(a,()=>p(async()=>{return await A(),a=(await O(c,o))[aa]?.[l]??"null",Qa(Ka(a));var a}),a=>p(async()=>{var t;await A(),await h(c,o,{[aa]:{[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,h,p,T)=>{const[g,I,S,D]=et(t,f,E,_,N,A,h,p,T),R=(a,t)=>O(pa(o,async([n,e,i,s,r],c)=>{var o,l;t&&(o=a,l=c,!B.hasOwn(o,l))||await S(n,e,a[c],i,s,t,r)})),b=(a,t,n)=>G(1==n?F(Q(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,ta,{[aa]: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()=>G(F(await O(pa(c,async([a,t,n],e)=>[a,await I(e,t,n)])),a=>!Z(a[1]))))(),t=await(async()=>l?(await I(y,ta,void 0,d))[aa]:{})();return Z(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,{[$]:()=>m,destroy:s},0,m)},ct=(a,e,i,r,o,l,y,v,f,m,$="getDb",_,N)=>{let A,O,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=>Y(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]??ta,n[Pa]??ba],Sa(a)]}const{tables:{load:i={},save:r={}}={},values:c={}}=n,o=Y(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,{[Ua]:null,[xa]:ta,[qa]:s},Ua,a=>h(v,a),a=>Da(d,a)),m=Ga(r,{[Ba]:null,[xa]:ta,[ja]:0,[ka]:0,[qa]:null},Ba,(a,t)=>h(v,t),(a,t)=>Da(d,t));return ha(m,(a,t)=>t[4]??=Oa(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(na+` ${wa} d,${ua} s,TOTAL_CHANGES() c FROM ${la}${wa} JOIN ${la}${ua}`);if(e&&(n!=A||i!=O||r!=p)){const c=t&&!s&&!w(A);A=n,O=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&&h(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=O=p=null,await o(f)})})},a=>a(),y,v,f,R,T(C),async(a,t)=>await a(na+` t.name tn,c.name cn,c.pk OR EXISTS(${na} 1 FROM ${la}index_list(t.name)i,${la}index_info(i.name)ii ${ea} i."unique"=1 AND ii.name=c.name AND(${na} count(*) FROM ${la}index_info(i.name))=1)uq FROM ${ya}list()t,${ya}info(t.name)c ${ea} t.schema='main'AND t.type IN('table','view')AND t.name IN(${ma(t,Ea)})ORDER BY t.name,c.name`,t),m,$,n,Ea,_,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,N)},ot=(a,t,n,e,i)=>ct(a,n,async(a,n=[])=>await t.execO(a,n),a=>t.onUpdate((t,n,e)=>a(e)),a=>a(),e,i,N,1,t);export{ot as createCrSqliteWasmPersister};
@@ -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,m=a=>Array.isArray(a),N=a=>a.length,$=a=>0==N(a),_=()=>{},A=a=>new c(a),O=async a=>c.all(a),h=(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),U=(a,...t)=>a.push(...t),B="_",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),Oa=(a,t)=>a?.get(t),ha=(a,t)=>I(a,(a,n)=>t(n,a)),pa=(a,t)=>{const n=[];return ha(a,(a,e)=>U(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=Oa(a,t);return h(a,t)?e?.(i):Ta(a,t,i=n()),i},Ia=(a,t,n,e,i=0)=>f((n?ga:Oa)(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,Ua="tableId",Ba="tableName",ja="deleteEmptyColumns",ka="deleteEmptyTable",qa="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,_,O,h=0,T=0,g=0,M=0,B=0,j=0,k=0,q=0,J=0;const X={},Y=o.destroy;ga(Wa,w,()=>0),ga(Za,w,()=>[]),Ta(at,w,(Oa(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&&U(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)?U(e,a):y(t[n])?I(a,a=>i(a,n+1)):C([t[n],null],t=>i(Oa(a,t),n+1));return i(a,0),e})(e,i),n=>I(n,n=>{const e=()=>Oa(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(Oa(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(Oa(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!=h&&(h=a,Z(z,void 0,h))},na=()=>{Oa(at,w)||Oa(Wa,w)||!$(Oa(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!=h&&(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=k;k=0,a&&a==M&&!J&&(2==h?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==h||!!j;B++,t&&j++,await L(async()=>{ta(1),T++,await(t?Ea(()=>ea(e??a)):(()=>{try{return ea(e??a)}finally{ta(0)}})())},()=>{t&&j--,--B||ta(0)}),B||await ia()}else 2==h?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!=h&&await L(()=>L(async()=>{ta(2),g++,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():U(Oa(Za,w),...P(a,(i,s)=>{const c=s==N(a)-1;return[async()=>{let a;O=A(t=>a=t),await L(async()=>{try{await R(i,r)}catch(a){n||(n=!0,t=a)}c&&e()},()=>{O=void 0,a()})},c?e:void 0,X]})));if(await(async()=>{if(!Oa(Wa,w)){Ta(Wa,w,1);const a=Oa(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?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:()=>h,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=Oa(Za,w),t=F(a,([,a,t])=>t!=X||(a?.(),!1)),n=O;x(a),U(a,...t),await L(()=>L(()=>L(fa,()=>n),()=>Y?.()),()=>{const a=(Oa(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)=>h(Oa(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)||h(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(_)||h(_,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)&&h(d,a))return await f("DROP "+J+aa(a)),Ta(d,a),void Ta(v,a);const I=Oa(d,a),D=Sa(F(T(I),a=>a==n||A(a)));if(!$(g))if(h(d,a)){if(await O(P([n,...g],async t=>{S(D,t)||(await f(X+aa(a)+"ADD"+aa(t)+r),Da(I,t))})),o==it&&!h(Oa(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 O([...!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 O(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(_)&&h(d,a)&&await f(z+aa(a)+ea(a,m));else{const t=F(T(Oa(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])),U(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,O,h,p]=et(t,w,y,f,E,m,void 0,void 0,_);return tt(a,()=>p(async()=>{return await A(),a=(await O(c,o))[B]?.[l]??"null",Qa(Ka(a));var a}),a=>p(async()=>{var t;await A(),await h(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,h,p,T)=>{const[g,I,S,D]=et(t,f,E,$,_,A,h,p,T),R=(a,t)=>O(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,{[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 O(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))[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,O,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]??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[Ba],Ya(l),Ya(w)],y=u[2],d=Sa(y),v=Sa(y),f=Ga(i,{[Ua]:null,[xa]:j,[qa]:s},Ua,a=>h(v,a),a=>Da(d,a)),m=Ga(r,{[Ba]:null,[xa]:j,[ja]:0,[ka]:0,[qa]:null},Ba,(a,t)=>h(v,t),(a,t)=>Da(d,t));return ha(m,(a,t)=>t[4]??=Oa(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(k+` ${K} d,${Q} s,TOTAL_CHANGES() c FROM ${H}${K} JOIN ${H}${Q}`);if(e&&(n!=A||i!=O||r!=p)){const c=t&&!s&&!w(A);A=n,O=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&&h(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=O=p=null,await o(f)})})},a=>a(),y,v,f,R,T(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 t.execO(a,n),a=>t.onUpdate((t,n,e)=>a(e)),a=>a(),e,i,_,1,t);export{ot as createCrSqliteWasmPersister};
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),$=a=>a.length,_=a=>0==$(a),N=()=>{},A=a=>new c(a),O=async a=>c.all(a),h=(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=$(a))=>a.splice(0,t),U=(a,...t)=>a.push(...t),B=Object,j=a=>B.getPrototypeOf(a),k=B.entries,q=a=>!w(a)&&v(j(a),a=>a==B.prototype||w(j(a)),()=>!0),J=B.keys,X=B.freeze,Y=(...a)=>B.assign(B.create(null),...a),z=(a,t,n)=>(B.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),G=(a=[])=>{const t=B.create(null);return C(a,([a,n])=>z(t,a,n)),t},H=(a,t)=>(delete a[t],a),K=(a,t)=>C(J(a),n=>t(a[n],n)),Q=(a,t)=>P(k(a),([a,n])=>t(n,a)),V=(a,t)=>{const n=G();return K(a,(a,e)=>z(n,e,t(a,e))),n},W=a=>$(J(a)),Z=a=>q(a)&&0==W(a),aa="_",ta="_id",na="SELECT",ea="WHERE",ia="TABLE",sa="ALTER "+ia,ra="FROM",ca="DELETE "+ra,oa=na+"*"+ra,la="pragma_",wa="data_version",ua="schema_version",ya="pragma_table_",da="CREATE "+ia,va=/\$tableName/g,fa=a=>M(P(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),Ea=()=>"?",ma=(a,t,n=[1])=>M(P(a,()=>t(n)),e),$a=(a,t=s,e)=>{const i=F([t==s?void 0:`(${_a(t,fa(a))})`,e],a=>!u(a));return _(i)?n:ea+M(i,"AND")},_a=(a,t)=>r(a,va,t),Na=Map,Aa=a=>new Na(a),Oa=(a,t)=>a?.get(t),ha=(a,t)=>I(a,(a,n)=>t(n,a)),pa=(a,t)=>{const n=[];return ha(a,(a,e)=>U(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=Oa(a,t);return h(a,t)?e?.(i):Ta(a,t,i=n()),i},Ia=(a,t,n,e,i=0)=>f((n?ga:Oa)(a,t[i],i>$(t)-2?n:Aa),s=>{if(i>$(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,Ua="tableId",Ba="tableName",ja="deleteEmptyColumns",ka="deleteEmptyTable",qa="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 K(a,(a,r)=>{const c=(w=Y(t,E(a)?{[n]:a}:a),o=B.values(w),l=W(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):q(a)?V(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,N,O,h=0,T=0,g=0,M=0,B=0,j=0,k=0,q=0,J=0;const Y={},z=o.destroy;ga(Wa,w,()=>0),ga(Za,w,()=>[]),Ta(at,w,(Oa(at,w)??0)+1);const G=Aa(),[H,K,Q,V,W]=((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))(c,a,l),[aa,ta,na]=(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&&U(a,t)}]})(),s=Aa(),r=(a,e,i,r)=>{let c,o=!1;if(C(((a,t=[n])=>{const e=[],i=(a,n)=>n==$(t)?U(e,a):y(t[n])?I(a,a=>i(a,n+1)):C([t[n],null],t=>i(Oa(a,t),n+1));return i(a,0),e})(e,i),n=>I(n,n=>{const e=()=>Oa(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(Oa(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(Oa(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const c=$(r);c==$(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),ea=a=>{a!=h&&(h=a,ta(G,void 0,h))},ia=()=>{Oa(at,w)||Oa(Wa,w)||!_(Oa(Za,w)??[])||(Ta(Wa,w),Ta(Za,w),Ta(at,w))},sa=t=>{(H&&m(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ra=async()=>{fa()&&a.__?.[0]?.()&&await ya()},ca=a=>L(()=>v=a,()=>{v==a&&(v=void 0)}),oa=async a=>(2!=h&&(await L(async()=>{ea(1),T++,await ma(()=>R(async()=>{const n=await t();m(n)?sa(n):u(n)&&a?W(a):u(n)||D(1,n)},t=>{r?.(t),a&&W(a)}))},()=>ea(0)),await ra()),$a),la=async()=>{const a=k;k=0,a&&a==M&&!J&&(2==h?k=a:await oa())},wa=async a=>{const t=++M;let n=!0;if(await ua(!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==h||!!j;B++,t&&j++,await L(async()=>{ea(1),T++,await(t?ma(()=>sa(e??a)):(()=>{try{return sa(e??a)}finally{ea(0)}})())},()=>{t&&j--,--B||ea(0)}),B||await ra()}else 2==h?k=t:await oa()});t!=M||J?u(a)||await s(a):d=a},r);await ca(e),t!=M||J||await L(()=>oa(a),()=>{n=!1})}return $a},ua=async(a=!1)=>{k=0,a||M++;const t=v,n=d;return d=void 0,await ca(L(async()=>{await t},async()=>{u(n)||await R(()=>s(n),r)})),$a},ya=async a=>(1!=h&&await L(()=>L(async()=>{ea(2),g++,await ma(()=>R(()=>e(K,a),r))},()=>ea(0)),la),$a),da=async()=>{const t=++q;return await va(!0),t!=q||J||(await ya(),t!=q||J||(E=a.addDidFinishTransactionListener(()=>{if(t==q&&!J){const a=Q();V(a)&&R(()=>ya(a))}}))),$a},va=async(t=!1)=>{t||q++;const n=E;return E=void 0,u(n)||a.delListener(n),$a},fa=()=>!u(E),Ea=async(a=!1)=>{const[t,n]=a?[va,ua]:[ua,va];return await L(()=>t(),async()=>{await n()}),$a},ma=async(...a)=>{let t,n=!1;const e=A(e=>_(a)?e():U(Oa(Za,w),...P(a,(i,s)=>{const c=s==$(a)-1;return[async()=>{let a;O=A(t=>a=t),await L(async()=>{try{await R(i,r)}catch(a){n||(n=!0,t=a)}c&&e()},()=>{O=void 0,a()})},c?e:void 0,Y]})));if(await(async()=>{if(!Oa(Wa,w)){Ta(Wa,w,1);const a=Oa(Za,w);let t=0;await L(async()=>{for(;t<$(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{x(a,t),Ta(Wa,w,0),ia()})}})(),await e,n)throw t;return $a},$a={load:oa,startAutoLoad:wa,stopAutoLoad:ua,isAutoLoading:()=>!u(d),save:ya,startAutoSave:da,stopAutoSave:va,isAutoSaving:fa,startAutoPersisting:async(a,t=!1)=>{const[n,e,i,s]=t?[da,wa,va,ua]:[wa,da,ua,va],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:Ea,getStatus:()=>h,addStatusListener:a=>aa(a,G),delListener:t=>(na(t),a),schedule:ma,getStore:()=>a,getStats:()=>({loads:T,saves:g}),...o,destroy:async()=>(u(N)&&(J=1,N=(async()=>{const a=Oa(Za,w),t=F(a,([,a,t])=>t!=Y||(a?.(),!1)),n=O;x(a),U(a,...t),await L(()=>L(()=>L(Ea,()=>n),()=>z?.()),()=>{const a=(Oa(at,w)??1)-1;Ta(at,w,a||void 0),ia()})})()),await N,$a)};return X($a)},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)=>h(Oa(d,a),t))(a,t)?G(F(P(await f(oa+fa(a)+$a(a,n)),a=>{const n=a[t],e=w?V(H(a,t),w):H(a,t);return[n,u(i)?e:G(F(Q(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||h(i,a))(a)))]}),a=>!u(a[0])&&!Z(a[1]))):{}},async(a,n,i,w,y,E=!1,m=s,$)=>{const N=u($)?void 0:Sa($),A=a=>u(N)||h(N,a),p=Sa();K(i??{},a=>C(F(J(a??{}),A),a=>Da(p,a)));const g=T(p);if(u(N)&&!E&&y&&m==s&&_(g)&&h(d,a))return await f("DROP "+ia+fa(a)),Ta(d,a),void Ta(v,a);const I=Oa(d,a),D=Sa(F(T(I),a=>a==n||A(a)));if(!_(g))if(h(d,a)){if(await O(P([n,...g],async t=>{S(D,t)||(await f(sa+fa(a)+"ADD"+fa(t)+r),Da(I,t))})),o==it&&!h(Oa(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"+fa(e)+"ON"+fa(a)+`(${fa(n)})`),Da(ga(v,a,Sa),n)}}else await f(da+fa(a)+`(${fa(n)}${r} PRIMARY KEY${M(P(g,a=>e+fa(a)+r))});`),Ta(d,a,Sa([n,...g])),Ta(v,a,Sa([n]));if(await O([...!E&&w?P(T(D),async t=>{t!=n&&(await f(sa+fa(a)+"DROP"+fa(t)),S(I,t))}):[]]),E)u(i)?u(N)&&await f(ca+fa(a)+$a(a,m)):await O(Q(i,async(t,e)=>{if(u(t))await f(ca+fa(a)+$a(a,m,`(${fa(n)}=${c([1])})`),[e]);else if(!_(g)){const i=F(J(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(N)&&h(d,a)&&await f(ca+fa(a)+$a(a,m));else{const t=F(T(Oa(d,a)),a=>a!=n&&A(a)),e=G(),s=[];K(i??{},(a,n)=>{z(e,n,P(t,t=>l?l(a?.[t]):a?.[t])),U(s,n)}),await o(f,a,n,t,e,c,I),await f(ca+fa(a)+$a(a,m,`${fa(n)}NOT IN(${ma(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"+fa(t)+"("+((...a)=>M(P(a,fa),e))(n,...i)+")VALUES"+M(Q(s,a=>"("+r(c)+","+ma(a,r,c)+")"),e)+"ON CONFLICT("+fa(n)+")DO UPDATE SET"+M(P(i,a=>fa(a)+"=excluded."+fa(a)),e),Q(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,O,h,p]=et(t,w,y,f,E,m,void 0,void 0,N);return tt(a,()=>p(async()=>{return await A(),a=(await O(c,o))[aa]?.[l]??"null",Qa(Ka(a));var a}),a=>p(async()=>{var t;await A(),await h(c,o,{[aa]:{[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,h,p,T)=>{const[g,I,S,D]=et(t,f,E,_,N,A,h,p,T),R=(a,t)=>O(pa(o,async([n,e,i,s,r],c)=>{var o,l;t&&(o=a,l=c,!B.hasOwn(o,l))||await S(n,e,a[c],i,s,t,r)})),b=(a,t,n)=>G(1==n?F(Q(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,ta,{[aa]: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()=>G(F(await O(pa(c,async([a,t,n],e)=>[a,await I(e,t,n)])),a=>!Z(a[1]))))(),t=await(async()=>l?(await I(y,ta,void 0,d))[aa]:{})();return Z(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,{[$]:()=>m,destroy:s},0,m)},ct=(a,e,i,r,o,l,y,v,f,m,$="getDb",_,N)=>{let A,O,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=>Y(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]??ta,n[Pa]??ba],Sa(a)]}const{tables:{load:i={},save:r={}}={},values:c={}}=n,o=Y(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,{[Ua]:null,[xa]:ta,[qa]:s},Ua,a=>h(v,a),a=>Da(d,a)),m=Ga(r,{[Ba]:null,[xa]:ta,[ja]:0,[ka]:0,[qa]:null},Ba,(a,t)=>h(v,t),(a,t)=>Da(d,t));return ha(m,(a,t)=>t[4]??=Oa(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(na+` ${wa} d,${ua} s,TOTAL_CHANGES() c FROM ${la}${wa} JOIN ${la}${ua}`);if(e&&(n!=A||i!=O||r!=p)){const c=t&&!s&&!w(A);A=n,O=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&&h(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=O=p=null,await o(f)})})},a=>a(),y,v,f,R,T(C),async(a,t)=>await a(na+` t.name tn,c.name cn,c.pk OR EXISTS(${na} 1 FROM ${la}index_list(t.name)i,${la}index_info(i.name)ii ${ea} i."unique"=1 AND ii.name=c.name AND(${na} count(*) FROM ${la}index_info(i.name))=1)uq FROM ${ya}list()t,${ya}info(t.name)c ${ea} t.schema='main'AND t.type IN('table','view')AND t.name IN(${ma(t,Ea)})ORDER BY t.name,c.name`,t),m,$,n,Ea,_,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,N)},ot=(a,t,n,e,i)=>ct(a,n,async(a,n=[])=>await t.execO(a,n),a=>t.onUpdate((t,n,e)=>a(e)),a=>a(),e,i,N,1,t);export{ot as createCrSqliteWasmPersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e="",n=",",i=a(e),s="true",c="t",o=(a,t="",e)=>a.split(t,e),l=(a,t,e)=>a.replace(t,e),r=Promise,u=a=>(t,e,n)=>a(t)?n?.():e(t),d=globalThis,w=Number,y=String,E=a=>null==a,_=a=>void 0===a,T=a=>null===a,N=a=>!0===a,v=u(E),f=u(_),m=t=>a(t)==i,A=a=>Array.isArray(a),L=(a,t,e)=>a.slice(t,e),$=a=>a.length,O=a=>0==$(a),h=(a,t)=>a.test(t),S=()=>{},p=a=>new r(a),I=async a=>r.all(a),R=(a,t)=>a.includes(t),b=(a,t)=>a.forEach(t),g=(a,t="")=>a.join(t),D=(a,t)=>a.map(t),C=(a,t)=>a.filter(t),F=(a,t=$(a))=>a.splice(0,t),M=(a,...t)=>a.push(...t),U=(a,t)=>a?.has(t)??!1,x=a=>_(a)||0==(a=>a?.size??0)(a),X=a=>[...a?.values()??[]],P=a=>a.clear(),B=(a,t)=>a?.forEach(t),q=(a,t)=>a?.delete(t),z=Object,G=a=>z.getPrototypeOf(a),H=z.entries,Y=a=>!E(a)&&v(G(a),a=>a==z.prototype||E(G(a)),()=>!0),W=z.keys,j=z.freeze,k=(...a)=>z.assign(z.create(null),...a),J=(a,t)=>z.hasOwn(a,t),K=(a,t,e)=>(z.defineProperty(a,t,{configurable:!0,enumerable:!0,value:e,writable:!0}),e),V=(a=[])=>{const t=z.create(null);return b(a,([a,e])=>K(t,a,e)),t},Z=(a,t)=>(delete a[t],a),Q=(a,t)=>b(W(a),e=>t(a[e],e)),aa=(a,t)=>D(H(a),([a,e])=>t(e,a)),ta=(a,t)=>{const e=V();return Q(a,(a,n)=>K(e,n,t(a,n))),e},ea=a=>$(W(a)),na=a=>Y(a)&&0==ea(a),ia=(a,t,e)=>(J(a,t)||K(a,t,e()),a[t]),sa=JSON.stringify,ca=JSON.parse,oa=a=>sa(a,(a,t)=>_(t)?"":t),la=a=>ra(ca(a)),ra=a=>""===a?void 0:A(a)?D(a,ra):Y(a)?ta(a,ra):a,ua=a=>new Set(A(a)||_(a)?a:[a]),da=(a,t)=>a?.add(t),wa=new d.TextEncoder,ya=Map,Ea=a=>new ya(a),_a=(a,t)=>a?.get(t),Ta=(a,t)=>B(a,(a,e)=>t(e,a)),Na=(a,t)=>{const e=[];return Ta(a,(a,n)=>M(e,t(n,a))),e},va=(a,t,e)=>_(e)?(q(a,t),a):a?.set(t,e),fa=(a,t,e,n)=>{let i=_a(a,t);return U(a,t)?n?.(i):va(a,t,i=e()),i},ma=(a,t,e,n,i=0)=>f((e?fa:_a)(a,t[i],i>$(t)-2?e:Ea),s=>{if(i>$(t)-2)return n?.(s)&&va(a,t[i]),s;const c=ma(s,t,e,n,i+1);return x(s)&&va(a,t[i]),c}),Aa=(a,t,e)=>{t>a[1]&&(a[1]=t),a[2]=e>>>0},La=(a,n)=>{throw((a,n)=>Error(t+":"+a+(_(n)?e:":"+n)))(a,n)},$a=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},Oa=(a,t)=>$a(a,a=>{$a(()=>t?.(a))}),ha=async(a,t)=>{try{return await a()}finally{await t()}},Sa=/^\d+$/,pa=Ea(),Ia=Ea(),Ra=Ea(),ba=(a,t,n,i,s,c,o,l={},r=0,u=[])=>{let d,w,y,E,N,v=0,m=0,L=0,S=0,I=0,R=0,g=0,U=0,X=0;const P={},z=l.destroy;fa(pa,u,()=>0),fa(Ia,u,()=>[]),va(Ra,u,(_a(Ra,u)??0)+1);const G=Ea(),[H,Y,W,k,J]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!e),([[a],[t]])=>!na(a)||!na(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!na(a)||!na(t),t.setContent]:La(0))(o,a,r),[K,V,Z]=(a=>{let t;const[n,i]=(()=>{const a=[];let t=0;return[n=>(n?a.shift():null)??e+t++,t=>{h(Sa,t)&&$(a)<1e3&&M(a,t)}]})(),s=Ea(),c=(a,n,i,c)=>{let o,l=!1;if(b(((a,t=[e])=>{const n=[],i=(a,e)=>e==$(t)?M(n,a):T(t[e])?B(a,a=>i(a,e+1)):b([t[e],null],t=>i(_a(a,t),e+1));return i(a,0),n})(n,i),e=>B(e,e=>{const n=()=>_a(s,e)[0](t,...i??[],...c);a?(a=>{try{return a()}catch(a){(a=>{l||(o=a),l=!0})?.(a)}})(n):n()})),l)throw o};return[(i,c,o,l=[],r=()=>[])=>{t??=a();const u=n(1);return va(s,u,[i,c,o,l,r]),da(ma(c,o??[e],ua),u),u},(a,t,...e)=>c(!1,a,t,e),a=>f(_a(s,a),([,t,n])=>(ma(t,n??[e],void 0,t=>(q(t,a),x(t)?1:0)),va(s,a),i(a),n)),a=>f(_a(s,a),([a,,e=[],n,i])=>{const s=(...c)=>{const o=$(c);o==$(e)?a(t,...c,...i(c)):T(e[o])?b(n[o]?.(...c)??[],a=>s(...c,a)):s(...c,e[o])};s()}),(a,t,...e)=>c(!0,a,t,e)]})(()=>ba),Q=a=>{a!=v&&(v=a,V(G,void 0,v))},aa=()=>{_a(Ra,u)||_a(pa,u)||!O(_a(Ia,u)??[])||(va(pa,u),va(Ia,u),va(Ra,u))},ta=t=>{(H&&A(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ea=async()=>{Ta()&&a.__?.[0]?.()&&await ra()},ia=a=>ha(()=>w=a,()=>{w==a&&(w=void 0)}),sa=async a=>(2!=v&&(await ha(async()=>{Q(1),m++,await Aa(()=>$a(async()=>{const e=await t();A(e)?ta(e):_(e)&&a?J(a):_(e)||La(1,e)},t=>{c?.(t),a&&J(a)}))},()=>Q(0)),await ea()),ba),ca=async()=>{const a=g;g=0,a&&a==S&&!X&&(2==v?g=a:await sa())},oa=async a=>{const t=++S;let e=!0;if(await la(!0),t==S&&!X){const n=$a(async()=>{const a=await i(async(a,n)=>{if(t==S&&!X)if(n||a){const t=e||2==v||!!R;I++,t&&R++,await ha(async()=>{Q(1),m++,await(t?Aa(()=>ta(n??a)):(()=>{try{return ta(n??a)}finally{Q(0)}})())},()=>{t&&R--,--I||Q(0)}),I||await ea()}else 2==v?g=t:await sa()});t!=S||X?_(a)||await s(a):d=a},c);await ia(n),t!=S||X||await ha(()=>sa(a),()=>{e=!1})}return ba},la=async(a=!1)=>{g=0,a||S++;const t=w,e=d;return d=void 0,await ia(ha(async()=>{await t},async()=>{_(e)||await $a(()=>s(e),c)})),ba},ra=async a=>(1!=v&&await ha(()=>ha(async()=>{Q(2),L++,await Aa(()=>$a(()=>n(Y,a),c))},()=>Q(0)),ca),ba),wa=async()=>{const t=++U;return await ya(!0),t!=U||X||(await ra(),t!=U||X||(y=a.addDidFinishTransactionListener(()=>{if(t==U&&!X){const a=W();k(a)&&$a(()=>ra(a))}}))),ba},ya=async(t=!1)=>{t||U++;const e=y;return y=void 0,_(e)||a.delListener(e),ba},Ta=()=>!_(y),Na=async(a=!1)=>{const[t,e]=a?[ya,la]:[la,ya];return await ha(()=>t(),async()=>{await e()}),ba},Aa=async(...a)=>{let t,e=!1;const n=p(n=>O(a)?n():M(_a(Ia,u),...D(a,(i,s)=>{const o=s==$(a)-1;return[async()=>{let a;N=p(t=>a=t),await ha(async()=>{try{await $a(i,c)}catch(a){e||(e=!0,t=a)}o&&n()},()=>{N=void 0,a()})},o?n:void 0,P]})));if(await(async()=>{if(!_a(pa,u)){va(pa,u,1);const a=_a(Ia,u);let t=0;await ha(async()=>{for(;t<$(a);){const e=a[t++];e[2]=void 0,await e[0]()}},()=>{F(a,t),va(pa,u,0),aa()})}})(),await n,e)throw t;return ba},ba={load:sa,startAutoLoad:oa,stopAutoLoad:la,isAutoLoading:()=>!_(d),save:ra,startAutoSave:wa,stopAutoSave:ya,isAutoSaving:Ta,startAutoPersisting:async(a,t=!1)=>{const[e,n,i,s]=t?[wa,oa,ya,la]:[oa,wa,la,ya],c=e(a),o=t?U:S;await c;const l=n(a),r=t?S:U;try{await l}catch(a){throw r==(t?S:U)&&await Oa(s),o==(t?U:S)&&await Oa(i),a}return ba},stopAutoPersisting:Na,getStatus:()=>v,addStatusListener:a=>K(a,G),delListener:t=>(Z(t),a),schedule:Aa,getStore:()=>a,getStats:()=>({loads:m,saves:L}),...l,destroy:async()=>(_(E)&&(X=1,E=(async()=>{const a=_a(Ia,u),t=C(a,([,a,t])=>t!=P||(a?.(),!1)),e=N;F(a),M(a,...t),await ha(()=>ha(()=>ha(Na,()=>e),()=>z?.()),()=>{const a=(_a(Ra,u)??1)-1;va(Ra,u,a||void 0),aa()})})()),await E,ba)};return j(ba)},ga="_",Da="_id",Ca="SELECT",Fa="WHERE",Ma="TABLE",Ua="ALTER "+Ma,xa="FROM",Xa="DELETE "+xa,Pa=Ca+"*"+xa,Ba="pragma_",qa="data_version",za="schema_version",Ga="pragma_table_",Ha="CREATE "+Ma,Ya=/\$tableName/g,Wa=a=>g(D(o(a,"."),a=>`"${l(a,/"/g,'""')}"`),"."),ja=()=>"?",ka=(a,t,e=[1])=>g(D(a,()=>t(e)),n),Ja=(a,t=s)=>Fa+`(${Ka(t,Wa(a))})`,Ka=(a,t)=>l(a,Ya,t),Va="ColumnName",Za="store",Qa="json",at=Za+"TableName",tt=Za+"Id"+Va,et=Za+Va,nt="autoLoadIntervalSeconds",it="rowId"+Va,st="tableId",ct="tableName",ot="deleteEmptyColumns",lt="deleteEmptyTable",rt="condition",ut={mode:Qa,[nt]:1},dt={load:0,save:0,[ct]:t+"_values"},wt=a=>A(a)?a:void 0,yt=a=>N(a)||A(a),Et=(a,t,e,n,i)=>{const s=Ea();return Q(a,(a,c)=>{const o=L((l=k(t,m(a)?{[e]:a}:a),z.values(l)),0,ea(t));var l;T(o[0])||n(c,o[0])||(i(c,o[0]),va(s,c,o))}),s},_t=(a,e,i,c,o,l=Tt,r,u,d)=>{const w=Ea(),y=Ea();let E=a;return[async()=>{P(w),P(y),b(await i(E,e),({tn:a,cn:t,uq:e})=>{da(fa(w,a,ua),t),e&&da(fa(y,a,ua),t)})},async(a,t,e,n)=>{const i=_(n)?void 0:ua(n);return((a,t)=>U(_a(w,a),t))(a,t)?V(C(D(await E(Pa+Wa(a)+Ja(a,e)),a=>{const e=a[t],n=u?ta(Z(a,t),u):Z(a,t);return[e,_(i)?n:V(C(aa(n,(a,t)=>[t,a]),([a])=>(a=>_(i)||U(i,a))(a)))]}),a=>!_(a[0])&&!na(a[1]))):{}},async(a,e,i,u,d,T=!1,N=s,v)=>{const f=_(v)?void 0:ua(v),m=a=>_(f)||U(f,a),A=ua();Q(i??{},a=>b(C(W(a??{}),m),a=>da(A,a)));const L=X(A);if(_(f)&&!T&&d&&N==s&&O(L)&&U(w,a))return await E("DROP "+Ma+Wa(a)),va(w,a),void va(y,a);const $=_a(w,a),h=ua(C(X($),a=>a==e||m(a)));if(!O(L))if(U(w,a)){if(await I(D([e,...L],async t=>{q(h,t)||(await E(Ua+Wa(a)+"ADD"+Wa(t)+c),da($,t))})),l==Tt&&!U(_a(y,a),e)){const n=t+"_pk_"+(a=>{let t=2166136261;return b(wa.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(sa([a,e]));await E("CREATE UNIQUE INDEX IF NOT EXISTS"+Wa(n)+"ON"+Wa(a)+`(${Wa(e)})`),da(fa(y,a,ua),e)}}else await E(Ha+Wa(a)+`(${Wa(e)}${c} PRIMARY KEY${g(D(L,a=>n+Wa(a)+c))});`),va(w,a,ua([e,...L])),va(y,a,ua([e]));if(await I([...!T&&u?D(X(h),async t=>{t!=e&&(await E(Ua+Wa(a)+"DROP"+Wa(t)),q($,t))}):[]]),T)_(i)?_(f)&&await E(Xa+Wa(a)+Ja(a,N)):await I(aa(i,async(t,n)=>{if(_(t))await E(Xa+Wa(a)+Ja(a,N)+`AND(${Wa(e)}=${o([1])})`,[n]);else if(!O(L)){const i=C(W(t),m);O(i)||await l(E,a,e,i,{[n]:D(i,a=>r?r(t[a]):t[a])},o,$)}}));else if(O(L))_(f)&&U(w,a)&&await E(Xa+Wa(a)+Ja(a,N));else{const t=C(X(_a(w,a)),a=>a!=e&&m(a)),n=V(),s=[];Q(i??{},(a,e)=>{K(n,e,D(t,t=>r?r(a?.[t]):a?.[t])),M(s,e)}),await l(E,a,e,t,n,o,$),await E(Xa+Wa(a)+Ja(a,N)+`AND${Wa(e)}NOT IN(${ka(s,o)})`,s)}},async t=>{if(d)return await d(async a=>{const e=E;return E=a,await ha(t,()=>{E=e})});await a("BEGIN");try{const e=await t();return await a("END"),e}catch(t){throw await $a(()=>a("ROLLBACK")),t}}]},Tt=async(a,t,e,i,s,c)=>{const o=[1];await a("INSERT INTO"+Wa(t)+"("+((...a)=>g(D(a,Wa),n))(e,...i)+")VALUES"+g(aa(s,a=>"("+c(o)+","+ka(a,c,o)+")"),n)+"ON CONFLICT("+Wa(e)+")DO UPDATE SET"+g(D(i,a=>Wa(a)+"=excluded."+Wa(a)),n),aa(s,(a,t)=>[t,...D(a,a=>a??null)]).flat())},Nt=(a,t,e,n,i,s,c,[o,l,r],u,d,w,y,E,_,T,N,v,f)=>{const[m,A,L,$]=_t(t,u,d,E,_,T,void 0,void 0,f);return ba(a,()=>$(async()=>(await m(),la((await A(o,l))[ga]?.[r]??"null"))),a=>$(async()=>{await m(),await L(o,l,{[ga]:{[r]:oa(a()??null)}},!0,!0)}),e,n,i,c,{[y]:()=>w,destroy:s},0,w)},vt=(a,t,e,n,i,s,c,[o,l,[r,u,d,w,y]],E,T,N,v,f,m,A,L,$,O)=>{const[h,S,p,b]=_t(t,E,T,f,m,A,L,$,O),g=(a,t)=>I(Na(l,async([e,n,i,s,c],o)=>{t&&!J(a,o)||await p(e,n,a[o],i,s,t,c)})),F=(a,t,e)=>V(1==e?C(aa(a,(a,t)=>[t,a]),([a])=>R(t,a)):C(D(t,t=>[t,a[t]]),([,a])=>!_(a))),M=async(a,t)=>u?await p(d,Da,{[ga]:_(y)?a:F(a,y,t)},!0,!0,t,void 0,y):null;return ba(a,()=>b(async()=>{await h();const a=await(async()=>V(C(await I(Na(o,async([a,t,e],n)=>[a,await S(n,t,e)])),a=>!na(a[1]))))(),t=await(async()=>r?(await S(d,Da,void 0,w))[ga]:{})();return na(a)&&_(t)?void 0:[a,t]}),(a,t)=>b(async()=>{if(await h(),_(t)){const[t,e]=a();await g(t),await M(e)}else await g(t[0],!0),await M(t[1],!0)}),e,n,i,c,{[v]:()=>N,destroy:s},0,N)},ft=(a,n,i,c,o,l,u,d,w,y,T="getDb",v,f)=>{let A,L,$;const O=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(i,l),[h,S,p,I]=(a=>{const e=(a=>k(ut,m(a)?{[at]:a}:a??{}))(a),n=e[nt];if(e.mode==Qa){const a=e[at]??t;return[1,n,[a,e[tt]??Da,e[et]??Za],ua(a)]}const{tables:{load:i={},save:c={}}={},values:o={}}=e,l=k(dt,o),{load:r,save:u}=l,d=[yt(r),yt(u),l[ct],wt(r),wt(u)],w=d[2],y=ua(w),E=ua(w),_=Et(i,{[st]:null,[it]:Da,[rt]:s},st,a=>U(E,a),a=>da(y,a)),T=Et(c,{[ct]:null,[it]:Da,[ot]:0,[lt]:0,[rt]:null},ct,(a,t)=>U(E,t),(a,t)=>da(y,t));return Ta(T,(a,t)=>t[4]??=_a(_,t[0])?.[2]??s),[0,n,[_,T,d],y]})(n);return!h&&a.isMergeable()&&La(0),(h?Nt:vt)(a,O,a=>{let t,e,n=1,i=0,s=0;const l=async(t=!0)=>{const[{d:e,s:i,c:c}]=await O(Ca+` ${qa} d,${za} s,TOTAL_CHANGES() c FROM ${Ba}${qa} JOIN ${Ba}${za}`);if(n&&(e!=A||i!=L||c!=$)){const o=t&&!s&&!E(A);A=e,L=i,$=c,o&&n&&await a()}},d=()=>{_(t)||((a=>{clearInterval(a)})(t),t=void 0)},w=(c=!1)=>{if(e)return e;const o=ha(()=>Oa(async()=>{for(i?c&&await l():(await l(!1),i=1);n&&s;)s=0,await l(!1),n&&(await a(),await l())},u),()=>{e==o&&(e=void 0),n&&(s?w():n&&_(t)&&(t=setInterval(()=>w(!0),1e3*S)))});return e=o,o},y=c(a=>{n&&U(I,a)&&(s=1,d(),r.resolve().then(()=>n?void w():0))});return w().then(()=>async()=>{n=0,s=0,d(),await ha(async()=>await e,async()=>{A=L=$=null,await o(y)})})},a=>a(),u,d,w,p,X(I),async(a,t)=>await a(Ca+` t.name tn,c.name cn,c.pk OR EXISTS(${Ca} 1 FROM ${Ba}index_list(t.name)i,${Ba}index_info(i.name)ii ${Fa} i."unique"=1 AND ii.name=c.name AND(${Ca} count(*) FROM ${Ba}index_info(i.name))=1)uq FROM ${Ga}list()t,${Ga}info(t.name)c ${Fa} t.schema='main'AND t.type IN('table','view')AND t.name IN(${ka(t,ja)})ORDER BY t.name,c.name`,t),y,T,e,ja,v,a=>N(a)?1:(a=>!1===a)(a)?0:a,void 0,f)},mt=(a,t,...e)=>a.exec(t,...e).toArray(),At=(a,t,n,i,s)=>"fragmented"==n?.mode?Ot(a,t,n?.storagePrefix??e,s):ft(a,n,async(a,e=[])=>R(["BEGIN","END"],a)?[]:mt(t,a,...e),()=>S,a=>a(),i,s,S,2,t,"getSqlStorage"),Lt=()=>[V(),e,0],$t=a=>h(/^[a-zA-Z_][a-zA-Z0-9_]*$/,a)?a:Wa(a),Ot=(a,t,e="",n)=>{const i=h(/^[a-z0-9_]*$/,e)?e:`$tinybase$${(a=>g(D(o(a),a=>"$"+L((65536+a.charCodeAt(0)).toString(16),1))))(e)}$`,s=i+"tinybase_values",l=$t(i+"tinybase_tables"),r=$t(s),u=`INSERT INTO ${l} (type, table_id, row_id, cell_id, value_data, timestamp, hash) VALUES (?, ?, ?, ?, ?, ?, ?)`,d=`INSERT INTO ${r} (value_id, value_data, timestamp, hash) VALUES (?, ?, ?, ?)`,_=(a,t)=>sa([a,t]);t.exec(`\n CREATE TABLE IF NOT EXISTS ${l} (\n type TEXT NOT NULL,\n table_id TEXT,\n row_id TEXT,\n cell_id TEXT,\n value_data TEXT NOT NULL,\n timestamp TEXT NOT NULL,\n hash INTEGER NOT NULL,\n PRIMARY KEY (type, table_id, row_id, cell_id)\n );\n \n CREATE TABLE IF NOT EXISTS ${r} (\n value_id TEXT,\n value_data TEXT NOT NULL,\n timestamp TEXT NOT NULL,\n hash INTEGER NOT NULL\n );\n `);const N=(a,t,e)=>T(e)?t+" IS NULL":(M(a,e),t+" = ?"),v=(a,e,n,i,s,o)=>{((a,e,n)=>{const i=[c];t.exec(`DELETE FROM ${l} WHERE type = ? AND `+N(i,"table_id",a)+" AND "+N(i,"row_id",e)+" AND "+N(i,"cell_id",n),...i)})(a,e,n),t.exec(u,c,a,e,n,i,s,o)},f=(a,e,n,i)=>{(a=>{const e=[];t.exec(`DELETE FROM ${r} WHERE `+N(e,"value_id",a),...e)})(a),t.exec(d,a,e,n,i)};return ba(a,async()=>{const a=Lt(),e=Lt(),n=ua(),i=mt(t,"SELECT * FROM "+l);return b(i,t=>{const e=E(t.table_id)?null:y(t.table_id),i=E(t.row_id)?null:y(t.row_id),s=E(t.cell_id)?null:y(t.cell_id),c=y(t.value_data),o=y(t.timestamp),l=w(t.hash),[r]=la(c);if(!T(e)&&!T(i)&&T(s)&&Y(r)){const t=ia(a[0],e,Lt);K(t[0],i,[r,o,l]),da(n,_(e,i))}}),b(i,t=>{const e=y(t.type),i=E(t.table_id)?null:y(t.table_id),s=E(t.row_id)?null:y(t.row_id),o=E(t.cell_id)?null:y(t.cell_id),l=y(t.value_data),r=y(t.timestamp),u=w(t.hash),[d]=la(l);if(e===c)if(T(i)||T(s)||T(o)){if(T(i)||T(s))if(T(i))Aa(a,r,u);else{const t=ia(a[0],i,Lt);Aa(t,r,u)}else if(!Y(d)){const t=ia(a[0],i,Lt),e=ia(t[0],s,Lt);Aa(e,r,u)}}else if(!U(n,_(i,s))){const t=ia(a[0],i,Lt),e=ia(t[0],s,Lt);K(e[0],o,[d,r,u])}}),b(mt(t,"SELECT * FROM "+r),a=>{const t=E(a.value_id)?null:y(a.value_id),n=y(a.value_data),i=y(a.timestamp),s=w(a.hash),[c]=la(n);T(t)?Aa(e,i,s):K(e[0],t,[c,i,s])}),[a,e]},async(a,[[e,n,i],[s,o,r]]=a())=>{const[u]=a()[0];v(null,null,null,oa([0]),n,i),Q(e,([a,e,n],i)=>{v(i,null,null,oa([0]),e,n),Q(a,([a,e,n],s)=>{const o=u[i]?.[0]?.[s]?.[0]??a;((a,e)=>{t.exec(`DELETE FROM ${l} WHERE type = ? AND table_id = ? AND row_id = ? AND cell_id IS NOT NULL`,c,a,e)})(i,s),v(i,s,null,oa([o]),e,n)})}),f(null,oa([0]),o,r),Q(s,(a,t)=>{f(t,oa([a[0]]),a[1],a[2])})},S,S,n,2,{getSqlStorage:()=>t})};export{At as createDurableObjectSqlStoragePersister};
1
+ const a=a=>typeof a,t="tinybase",e="",n=",",i=a(e),s="true",c="t",o=(a,t="",e)=>a.split(t,e),r=(a,t,e)=>a.replace(t,e),l=Promise,u=a=>(t,e,n)=>a(t)?n?.():e(t),d=globalThis,w=Number,y=String,E=a=>null==a,_=a=>void 0===a,T=a=>null===a,N=a=>!0===a,v=u(E),f=u(_),m=t=>a(t)==i,L=a=>Array.isArray(a),A=(a,t,e)=>a.slice(t,e),$=a=>a.length,O=a=>0==$(a),h=(a,t)=>a.test(t),S=()=>{},p=a=>new l(a),I=async a=>l.all(a),R=(a,t)=>a.includes(t),b=(a,t)=>a.forEach(t),g=(a,t="")=>a.join(t),D=(a,t)=>a.map(t),C=(a,t)=>a.filter(t),F=(a,t=$(a))=>a.splice(0,t),M=(a,...t)=>a.push(...t),U=(a,t)=>a?.has(t)??!1,x=a=>_(a)||0==(a=>a?.size??0)(a),X=a=>[...a?.values()??[]],P=a=>a.clear(),B=(a,t)=>a?.forEach(t),q=(a,t)=>a?.delete(t),z=Object,G=a=>z.getPrototypeOf(a),H=z.entries,Y=a=>!E(a)&&v(G(a),a=>a==z.prototype||E(G(a)),()=>!0),W=z.keys,j=z.freeze,k=(...a)=>z.assign(z.create(null),...a),J=(a,t)=>z.hasOwn(a,t),K=(a,t,e)=>(z.defineProperty(a,t,{configurable:!0,enumerable:!0,value:e,writable:!0}),e),V=(a=[])=>{const t=z.create(null);return b(a,([a,e])=>K(t,a,e)),t},Z=(a,t)=>(delete a[t],a),Q=(a,t)=>b(W(a),e=>t(a[e],e)),aa=(a,t)=>D(H(a),([a,e])=>t(e,a)),ta=(a,t)=>{const e=V();return Q(a,(a,n)=>K(e,n,t(a,n))),e},ea=a=>$(W(a)),na=a=>Y(a)&&0==ea(a),ia=(a,t,e)=>(J(a,t)||K(a,t,e()),a[t]),sa=JSON.stringify,ca=JSON.parse,oa=a=>sa(a,(a,t)=>_(t)?"":t),ra=a=>la(ca(a)),la=a=>""===a?void 0:L(a)?D(a,la):Y(a)?ta(a,la):a,ua=a=>new Set(L(a)||_(a)?a:[a]),da=(a,t)=>a?.add(t),wa=new d.TextEncoder,ya=Map,Ea=a=>new ya(a),_a=(a,t)=>a?.get(t),Ta=(a,t)=>B(a,(a,e)=>t(e,a)),Na=(a,t)=>{const e=[];return Ta(a,(a,n)=>M(e,t(n,a))),e},va=(a,t,e)=>_(e)?(q(a,t),a):a?.set(t,e),fa=(a,t,e,n)=>{let i=_a(a,t);return U(a,t)?n?.(i):va(a,t,i=e()),i},ma=(a,t,e,n,i=0)=>f((e?fa:_a)(a,t[i],i>$(t)-2?e:Ea),s=>{if(i>$(t)-2)return n?.(s)&&va(a,t[i]),s;const c=ma(s,t,e,n,i+1);return x(s)&&va(a,t[i]),c}),La=(a,t,e)=>{t>a[1]&&(a[1]=t),a[2]=e>>>0},Aa=(a,n)=>{throw((a,n)=>Error(t+":"+a+(_(n)?e:":"+n)))(a,n)},$a=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},Oa=(a,t)=>$a(a,a=>{$a(()=>t?.(a))}),ha=async(a,t)=>{try{return await a()}finally{await t()}},Sa=/^\d+$/,pa=Ea(),Ia=Ea(),Ra=Ea(),ba=(a,t,n,i,s,c,o,r={},l=0,u=[])=>{let d,w,y,E,N,v=0,m=0,A=0,S=0,I=0,R=0,g=0,U=0,X=0;const P={},z=r.destroy;fa(pa,u,()=>0),fa(Ia,u,()=>[]),va(Ra,u,(_a(Ra,u)??0)+1);const G=Ea(),[H,Y,W,k,J]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!e),([[a],[t]])=>!na(a)||!na(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!na(a)||!na(t),t.setContent]:Aa(0))(o,a,l),[K,V,Z]=(a=>{let t;const[n,i]=(()=>{const a=[];let t=0;return[n=>(n?a.shift():null)??e+t++,t=>{h(Sa,t)&&$(a)<1e3&&M(a,t)}]})(),s=Ea(),c=(a,n,i,c)=>{let o,r=!1;if(b(((a,t=[e])=>{const n=[],i=(a,e)=>e==$(t)?M(n,a):T(t[e])?B(a,a=>i(a,e+1)):b([t[e],null],t=>i(_a(a,t),e+1));return i(a,0),n})(n,i),e=>B(e,e=>{const n=()=>_a(s,e)[0](t,...i??[],...c);a?(a=>{try{return a()}catch(a){(a=>{r||(o=a),r=!0})?.(a)}})(n):n()})),r)throw o};return[(i,c,o,r=[],l=()=>[])=>{t??=a();const u=n(1);return va(s,u,[i,c,o,r,l]),da(ma(c,o??[e],ua),u),u},(a,t,...e)=>c(!1,a,t,e),a=>f(_a(s,a),([,t,n])=>(ma(t,n??[e],void 0,t=>(q(t,a),x(t)?1:0)),va(s,a),i(a),n)),a=>f(_a(s,a),([a,,e=[],n,i])=>{const s=(...c)=>{const o=$(c);o==$(e)?a(t,...c,...i(c)):T(e[o])?b(n[o]?.(...c)??[],a=>s(...c,a)):s(...c,e[o])};s()}),(a,t,...e)=>c(!0,a,t,e)]})(()=>ba),Q=a=>{a!=v&&(v=a,V(G,void 0,v))},aa=()=>{_a(Ra,u)||_a(pa,u)||!O(_a(Ia,u)??[])||(va(pa,u),va(Ia,u),va(Ra,u))},ta=t=>{(H&&L(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ea=async()=>{Ta()&&a.__?.[0]?.()&&await la()},ia=a=>ha(()=>w=a,()=>{w==a&&(w=void 0)}),sa=async a=>(2!=v&&(await ha(async()=>{Q(1),m++,await La(()=>$a(async()=>{const e=await t();L(e)?ta(e):_(e)&&a?J(a):_(e)||Aa(1,e)},t=>{c?.(t),a&&J(a)}))},()=>Q(0)),await ea()),ba),ca=async()=>{const a=g;g=0,a&&a==S&&!X&&(2==v?g=a:await sa())},oa=async a=>{const t=++S;let e=!0;if(await ra(!0),t==S&&!X){const n=$a(async()=>{const a=await i(async(a,n)=>{if(t==S&&!X)if(n||a){const t=e||2==v||!!R;I++,t&&R++,await ha(async()=>{Q(1),m++,await(t?La(()=>ta(n??a)):(()=>{try{return ta(n??a)}finally{Q(0)}})())},()=>{t&&R--,--I||Q(0)}),I||await ea()}else 2==v?g=t:await sa()});t!=S||X?_(a)||await s(a):d=a},c);await ia(n),t!=S||X||await ha(()=>sa(a),()=>{e=!1})}return ba},ra=async(a=!1)=>{g=0,a||S++;const t=w,e=d;return d=void 0,await ia(ha(async()=>{await t},async()=>{_(e)||await $a(()=>s(e),c)})),ba},la=async a=>(1!=v&&await ha(()=>ha(async()=>{Q(2),A++,await La(()=>$a(()=>n(Y,a),c))},()=>Q(0)),ca),ba),wa=async()=>{const t=++U;return await ya(!0),t!=U||X||(await la(),t!=U||X||(y=a.addDidFinishTransactionListener(()=>{if(t==U&&!X){const a=W();k(a)&&$a(()=>la(a))}}))),ba},ya=async(t=!1)=>{t||U++;const e=y;return y=void 0,_(e)||a.delListener(e),ba},Ta=()=>!_(y),Na=async(a=!1)=>{const[t,e]=a?[ya,ra]:[ra,ya];return await ha(()=>t(),async()=>{await e()}),ba},La=async(...a)=>{let t,e=!1;const n=p(n=>O(a)?n():M(_a(Ia,u),...D(a,(i,s)=>{const o=s==$(a)-1;return[async()=>{let a;N=p(t=>a=t),await ha(async()=>{try{await $a(i,c)}catch(a){e||(e=!0,t=a)}o&&n()},()=>{N=void 0,a()})},o?n:void 0,P]})));if(await(async()=>{if(!_a(pa,u)){va(pa,u,1);const a=_a(Ia,u);let t=0;await ha(async()=>{for(;t<$(a);){const e=a[t++];e[2]=void 0,await e[0]()}},()=>{F(a,t),va(pa,u,0),aa()})}})(),await n,e)throw t;return ba},ba={load:sa,startAutoLoad:oa,stopAutoLoad:ra,isAutoLoading:()=>!_(d),save:la,startAutoSave:wa,stopAutoSave:ya,isAutoSaving:Ta,startAutoPersisting:async(a,t=!1)=>{const[e,n,i,s]=t?[wa,oa,ya,ra]:[oa,wa,ra,ya],c=e(a),o=t?U:S;await c;const r=n(a),l=t?S:U;try{await r}catch(a){throw l==(t?S:U)&&await Oa(s),o==(t?U:S)&&await Oa(i),a}return ba},stopAutoPersisting:Na,getStatus:()=>v,addStatusListener:a=>K(a,G),delListener:t=>(Z(t),a),schedule:La,getStore:()=>a,getStats:()=>({loads:m,saves:A}),...r,destroy:async()=>(_(E)&&(X=1,E=(async()=>{const a=_a(Ia,u),t=C(a,([,a,t])=>t!=P||(a?.(),!1)),e=N;F(a),M(a,...t),await ha(()=>ha(()=>ha(Na,()=>e),()=>z?.()),()=>{const a=(_a(Ra,u)??1)-1;va(Ra,u,a||void 0),aa()})})()),await E,ba)};return j(ba)},ga="_",Da="_id",Ca="SELECT",Fa="WHERE",Ma="TABLE",Ua="ALTER "+Ma,xa="FROM",Xa="DELETE "+xa,Pa=Ca+"*"+xa,Ba="pragma_",qa="data_version",za="schema_version",Ga="pragma_table_",Ha="CREATE "+Ma,Ya=/\$tableName/g,Wa=a=>g(D(o(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),ja=()=>"?",ka=(a,t,e=[1])=>g(D(a,()=>t(e)),n),Ja=(a,t=s,n)=>{const i=C([t==s?void 0:`(${Ka(t,Wa(a))})`,n],a=>!_(a));return O(i)?e:Fa+g(i,"AND")},Ka=(a,t)=>r(a,Ya,t),Va="ColumnName",Za="store",Qa="json",at=Za+"TableName",tt=Za+"Id"+Va,et=Za+Va,nt="autoLoadIntervalSeconds",it="rowId"+Va,st="tableId",ct="tableName",ot="deleteEmptyColumns",rt="deleteEmptyTable",lt="condition",ut={mode:Qa,[nt]:1},dt={load:0,save:0,[ct]:t+"_values"},wt=a=>L(a)?a:void 0,yt=a=>N(a)||L(a),Et=(a,t,e,n,i)=>{const s=Ea();return Q(a,(a,c)=>{const o=A((r=k(t,m(a)?{[e]:a}:a),z.values(r)),0,ea(t));var r;T(o[0])||n(c,o[0])||(i(c,o[0]),va(s,c,o))}),s},_t=(a,e,i,c,o,r=Tt,l,u,d)=>{const w=Ea(),y=Ea();let E=a;return[async()=>{P(w),P(y),b(await i(E,e),({tn:a,cn:t,uq:e})=>{da(fa(w,a,ua),t),e&&da(fa(y,a,ua),t)})},async(a,t,e,n)=>{const i=_(n)?void 0:ua(n);return((a,t)=>U(_a(w,a),t))(a,t)?V(C(D(await E(Pa+Wa(a)+Ja(a,e)),a=>{const e=a[t],n=u?ta(Z(a,t),u):Z(a,t);return[e,_(i)?n:V(C(aa(n,(a,t)=>[t,a]),([a])=>(a=>_(i)||U(i,a))(a)))]}),a=>!_(a[0])&&!na(a[1]))):{}},async(a,e,i,u,d,T=!1,N=s,v)=>{const f=_(v)?void 0:ua(v),m=a=>_(f)||U(f,a),L=ua();Q(i??{},a=>b(C(W(a??{}),m),a=>da(L,a)));const A=X(L);if(_(f)&&!T&&d&&N==s&&O(A)&&U(w,a))return await E("DROP "+Ma+Wa(a)),va(w,a),void va(y,a);const $=_a(w,a),h=ua(C(X($),a=>a==e||m(a)));if(!O(A))if(U(w,a)){if(await I(D([e,...A],async t=>{q(h,t)||(await E(Ua+Wa(a)+"ADD"+Wa(t)+c),da($,t))})),r==Tt&&!U(_a(y,a),e)){const n=t+"_pk_"+(a=>{let t=2166136261;return b(wa.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(sa([a,e]));await E("CREATE UNIQUE INDEX IF NOT EXISTS"+Wa(n)+"ON"+Wa(a)+`(${Wa(e)})`),da(fa(y,a,ua),e)}}else await E(Ha+Wa(a)+`(${Wa(e)}${c} PRIMARY KEY${g(D(A,a=>n+Wa(a)+c))});`),va(w,a,ua([e,...A])),va(y,a,ua([e]));if(await I([...!T&&u?D(X(h),async t=>{t!=e&&(await E(Ua+Wa(a)+"DROP"+Wa(t)),q($,t))}):[]]),T)_(i)?_(f)&&await E(Xa+Wa(a)+Ja(a,N)):await I(aa(i,async(t,n)=>{if(_(t))await E(Xa+Wa(a)+Ja(a,N,`(${Wa(e)}=${o([1])})`),[n]);else if(!O(A)){const i=C(W(t),m);O(i)||await r(E,a,e,i,{[n]:D(i,a=>l?l(t[a]):t[a])},o,$)}}));else if(O(A))_(f)&&U(w,a)&&await E(Xa+Wa(a)+Ja(a,N));else{const t=C(X(_a(w,a)),a=>a!=e&&m(a)),n=V(),s=[];Q(i??{},(a,e)=>{K(n,e,D(t,t=>l?l(a?.[t]):a?.[t])),M(s,e)}),await r(E,a,e,t,n,o,$),await E(Xa+Wa(a)+Ja(a,N,`${Wa(e)}NOT IN(${ka(s,o)})`),s)}},async t=>{if(d)return await d(async a=>{const e=E;return E=a,await ha(t,()=>{E=e})});await a("BEGIN");try{const e=await t();return await a("END"),e}catch(t){throw await $a(()=>a("ROLLBACK")),t}}]},Tt=async(a,t,e,i,s,c)=>{const o=[1];await a("INSERT INTO"+Wa(t)+"("+((...a)=>g(D(a,Wa),n))(e,...i)+")VALUES"+g(aa(s,a=>"("+c(o)+","+ka(a,c,o)+")"),n)+"ON CONFLICT("+Wa(e)+")DO UPDATE SET"+g(D(i,a=>Wa(a)+"=excluded."+Wa(a)),n),aa(s,(a,t)=>[t,...D(a,a=>a??null)]).flat())},Nt=(a,t,e,n,i,s,c,[o,r,l],u,d,w,y,E,_,T,N,v,f)=>{const[m,L,A,$]=_t(t,u,d,E,_,T,void 0,void 0,f);return ba(a,()=>$(async()=>(await m(),ra((await L(o,r))[ga]?.[l]??"null"))),a=>$(async()=>{await m(),await A(o,r,{[ga]:{[l]:oa(a()??null)}},!0,!0)}),e,n,i,c,{[y]:()=>w,destroy:s},0,w)},vt=(a,t,e,n,i,s,c,[o,r,[l,u,d,w,y]],E,T,N,v,f,m,L,A,$,O)=>{const[h,S,p,b]=_t(t,E,T,f,m,L,A,$,O),g=(a,t)=>I(Na(r,async([e,n,i,s,c],o)=>{t&&!J(a,o)||await p(e,n,a[o],i,s,t,c)})),F=(a,t,e)=>V(1==e?C(aa(a,(a,t)=>[t,a]),([a])=>R(t,a)):C(D(t,t=>[t,a[t]]),([,a])=>!_(a))),M=async(a,t)=>u?await p(d,Da,{[ga]:_(y)?a:F(a,y,t)},!0,!0,t,void 0,y):null;return ba(a,()=>b(async()=>{await h();const a=await(async()=>V(C(await I(Na(o,async([a,t,e],n)=>[a,await S(n,t,e)])),a=>!na(a[1]))))(),t=await(async()=>l?(await S(d,Da,void 0,w))[ga]:{})();return na(a)&&_(t)?void 0:[a,t]}),(a,t)=>b(async()=>{if(await h(),_(t)){const[t,e]=a();await g(t),await M(e)}else await g(t[0],!0),await M(t[1],!0)}),e,n,i,c,{[v]:()=>N,destroy:s},0,N)},ft=(a,n,i,c,o,r,u,d,w,y,T="getDb",v,f)=>{let L,A,$;const O=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(i,r),[h,S,p,I]=(a=>{const e=(a=>k(ut,m(a)?{[at]:a}:a??{}))(a),n=e[nt];if(e.mode==Qa){const a=e[at]??t;return[1,n,[a,e[tt]??Da,e[et]??Za],ua(a)]}const{tables:{load:i={},save:c={}}={},values:o={}}=e,r=k(dt,o),{load:l,save:u}=r,d=[yt(l),yt(u),r[ct],wt(l),wt(u)],w=d[2],y=ua(w),E=ua(w),_=Et(i,{[st]:null,[it]:Da,[lt]:s},st,a=>U(E,a),a=>da(y,a)),T=Et(c,{[ct]:null,[it]:Da,[ot]:0,[rt]:0,[lt]:null},ct,(a,t)=>U(E,t),(a,t)=>da(y,t));return Ta(T,(a,t)=>t[4]??=_a(_,t[0])?.[2]??s),[0,n,[_,T,d],y]})(n);return!h&&a.isMergeable()&&Aa(0),(h?Nt:vt)(a,O,a=>{let t,e,n=1,i=0,s=0;const r=async(t=!0)=>{const[{d:e,s:i,c:c}]=await O(Ca+` ${qa} d,${za} s,TOTAL_CHANGES() c FROM ${Ba}${qa} JOIN ${Ba}${za}`);if(n&&(e!=L||i!=A||c!=$)){const o=t&&!s&&!E(L);L=e,A=i,$=c,o&&n&&await a()}},d=()=>{_(t)||((a=>{clearInterval(a)})(t),t=void 0)},w=(c=!1)=>{if(e)return e;const o=ha(()=>Oa(async()=>{for(i?c&&await r():(await r(!1),i=1);n&&s;)s=0,await r(!1),n&&(await a(),await r())},u),()=>{e==o&&(e=void 0),n&&(s?w():n&&_(t)&&(t=setInterval(()=>w(!0),1e3*S)))});return e=o,o},y=c(a=>{n&&U(I,a)&&(s=1,d(),l.resolve().then(()=>n?void w():0))});return w().then(()=>async()=>{n=0,s=0,d(),await ha(async()=>await e,async()=>{L=A=$=null,await o(y)})})},a=>a(),u,d,w,p,X(I),async(a,t)=>await a(Ca+` t.name tn,c.name cn,c.pk OR EXISTS(${Ca} 1 FROM ${Ba}index_list(t.name)i,${Ba}index_info(i.name)ii ${Fa} i."unique"=1 AND ii.name=c.name AND(${Ca} count(*) FROM ${Ba}index_info(i.name))=1)uq FROM ${Ga}list()t,${Ga}info(t.name)c ${Fa} t.schema='main'AND t.type IN('table','view')AND t.name IN(${ka(t,ja)})ORDER BY t.name,c.name`,t),y,T,e,ja,v,a=>N(a)?1:(a=>!1===a)(a)?0:a,void 0,f)},mt=(a,t,...e)=>a.exec(t,...e).toArray(),Lt=(a,t,n,i,s)=>"fragmented"==n?.mode?Ot(a,t,n?.storagePrefix??e,s):ft(a,n,async(a,e=[])=>R(["BEGIN","END"],a)?[]:mt(t,a,...e),()=>S,a=>a(),i,s,S,2,t,"getSqlStorage"),At=()=>[V(),e,0],$t=a=>h(/^[a-zA-Z_][a-zA-Z0-9_]*$/,a)?a:Wa(a),Ot=(a,t,e="",n)=>{const i=h(/^[a-z0-9_]*$/,e)?e:`$tinybase$${(a=>g(D(o(a),a=>"$"+A((65536+a.charCodeAt(0)).toString(16),1))))(e)}$`,s=i+"tinybase_values",r=$t(i+"tinybase_tables"),l=$t(s),u=`INSERT INTO ${r} (type, table_id, row_id, cell_id, value_data, timestamp, hash) VALUES (?, ?, ?, ?, ?, ?, ?)`,d=`INSERT INTO ${l} (value_id, value_data, timestamp, hash) VALUES (?, ?, ?, ?)`,_=(a,t)=>sa([a,t]);t.exec(`\n CREATE TABLE IF NOT EXISTS ${r} (\n type TEXT NOT NULL,\n table_id TEXT,\n row_id TEXT,\n cell_id TEXT,\n value_data TEXT NOT NULL,\n timestamp TEXT NOT NULL,\n hash INTEGER NOT NULL,\n PRIMARY KEY (type, table_id, row_id, cell_id)\n );\n \n CREATE TABLE IF NOT EXISTS ${l} (\n value_id TEXT,\n value_data TEXT NOT NULL,\n timestamp TEXT NOT NULL,\n hash INTEGER NOT NULL\n );\n `);const N=(a,t,e)=>T(e)?t+" IS NULL":(M(a,e),t+" = ?"),v=(a,e,n,i,s,o)=>{((a,e,n)=>{const i=[c];t.exec(`DELETE FROM ${r} WHERE type = ? AND `+N(i,"table_id",a)+" AND "+N(i,"row_id",e)+" AND "+N(i,"cell_id",n),...i)})(a,e,n),t.exec(u,c,a,e,n,i,s,o)},f=(a,e,n,i)=>{(a=>{const e=[];t.exec(`DELETE FROM ${l} WHERE `+N(e,"value_id",a),...e)})(a),t.exec(d,a,e,n,i)};return ba(a,async()=>{const a=At(),e=At(),n=ua(),i=mt(t,"SELECT * FROM "+r);return b(i,t=>{const e=E(t.table_id)?null:y(t.table_id),i=E(t.row_id)?null:y(t.row_id),s=E(t.cell_id)?null:y(t.cell_id),c=y(t.value_data),o=y(t.timestamp),r=w(t.hash),[l]=ra(c);if(!T(e)&&!T(i)&&T(s)&&Y(l)){const t=ia(a[0],e,At);K(t[0],i,[l,o,r]),da(n,_(e,i))}}),b(i,t=>{const e=y(t.type),i=E(t.table_id)?null:y(t.table_id),s=E(t.row_id)?null:y(t.row_id),o=E(t.cell_id)?null:y(t.cell_id),r=y(t.value_data),l=y(t.timestamp),u=w(t.hash),[d]=ra(r);if(e===c)if(T(i)||T(s)||T(o)){if(T(i)||T(s))if(T(i))La(a,l,u);else{const t=ia(a[0],i,At);La(t,l,u)}else if(!Y(d)){const t=ia(a[0],i,At),e=ia(t[0],s,At);La(e,l,u)}}else if(!U(n,_(i,s))){const t=ia(a[0],i,At),e=ia(t[0],s,At);K(e[0],o,[d,l,u])}}),b(mt(t,"SELECT * FROM "+l),a=>{const t=E(a.value_id)?null:y(a.value_id),n=y(a.value_data),i=y(a.timestamp),s=w(a.hash),[c]=ra(n);T(t)?La(e,i,s):K(e[0],t,[c,i,s])}),[a,e]},async(a,[[e,n,i],[s,o,l]]=a())=>{const[u]=a()[0];v(null,null,null,oa([0]),n,i),Q(e,([a,e,n],i)=>{v(i,null,null,oa([0]),e,n),Q(a,([a,e,n],s)=>{const o=u[i]?.[0]?.[s]?.[0]??a;((a,e)=>{t.exec(`DELETE FROM ${r} WHERE type = ? AND table_id = ? AND row_id = ? AND cell_id IS NOT NULL`,c,a,e)})(i,s),v(i,s,null,oa([o]),e,n)})}),f(null,oa([0]),o,l),Q(s,(a,t)=>{f(t,oa([a[0]]),a[1],a[2])})},S,S,n,2,{getSqlStorage:()=>t})};export{Lt as createDurableObjectSqlStoragePersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e="",n=",",i=a(e),s="true",c="t",o=(a,t="",e)=>a.split(t,e),l=(a,t,e)=>a.replace(t,e),r=Promise,u=a=>(t,e,n)=>a(t)?n?.():e(t),d=globalThis,w=Number,y=String,E=a=>null==a,_=a=>void 0===a,T=a=>null===a,N=a=>!0===a,v=u(E),f=u(_),m=t=>a(t)==i,A=a=>Array.isArray(a),L=(a,t,e)=>a.slice(t,e),$=a=>a.length,O=a=>0==$(a),h=(a,t)=>a.test(t),S=()=>{},p=a=>new r(a),I=async a=>r.all(a),R=(a,t)=>a.includes(t),b=(a,t)=>a.forEach(t),g=(a,t="")=>a.join(t),D=(a,t)=>a.map(t),C=(a,t)=>a.filter(t),F=(a,t=$(a))=>a.splice(0,t),M=(a,...t)=>a.push(...t),U=(a,t)=>a?.has(t)??!1,x=a=>_(a)||0==(a=>a?.size??0)(a),X=a=>[...a?.values()??[]],P=a=>a.clear(),B=(a,t)=>a?.forEach(t),q=(a,t)=>a?.delete(t),z=Object,G=a=>z.getPrototypeOf(a),H=z.entries,Y=a=>!E(a)&&v(G(a),a=>a==z.prototype||E(G(a)),()=>!0),W=z.keys,j=z.freeze,k=(...a)=>z.assign(z.create(null),...a),J=(a,t)=>z.hasOwn(a,t),K=(a,t,e)=>(z.defineProperty(a,t,{configurable:!0,enumerable:!0,value:e,writable:!0}),e),V=(a=[])=>{const t=z.create(null);return b(a,([a,e])=>K(t,a,e)),t},Z=(a,t)=>(delete a[t],a),Q=(a,t)=>b(W(a),e=>t(a[e],e)),aa=(a,t)=>D(H(a),([a,e])=>t(e,a)),ta=(a,t)=>{const e=V();return Q(a,(a,n)=>K(e,n,t(a,n))),e},ea=a=>$(W(a)),na=a=>Y(a)&&0==ea(a),ia=(a,t,e)=>(J(a,t)||K(a,t,e()),a[t]),sa=JSON.stringify,ca=JSON.parse,oa=a=>sa(a,(a,t)=>_(t)?"":t),la=a=>ra(ca(a)),ra=a=>""===a?void 0:A(a)?D(a,ra):Y(a)?ta(a,ra):a,ua=a=>new Set(A(a)||_(a)?a:[a]),da=(a,t)=>a?.add(t),wa=new d.TextEncoder,ya=Map,Ea=a=>new ya(a),_a=(a,t)=>a?.get(t),Ta=(a,t)=>B(a,(a,e)=>t(e,a)),Na=(a,t)=>{const e=[];return Ta(a,(a,n)=>M(e,t(n,a))),e},va=(a,t,e)=>_(e)?(q(a,t),a):a?.set(t,e),fa=(a,t,e,n)=>{let i=_a(a,t);return U(a,t)?n?.(i):va(a,t,i=e()),i},ma=(a,t,e,n,i=0)=>f((e?fa:_a)(a,t[i],i>$(t)-2?e:Ea),s=>{if(i>$(t)-2)return n?.(s)&&va(a,t[i]),s;const c=ma(s,t,e,n,i+1);return x(s)&&va(a,t[i]),c}),Aa=(a,t,e)=>{t>a[1]&&(a[1]=t),a[2]=e>>>0},La=(a,n)=>{throw((a,n)=>Error(t+":"+a+(_(n)?e:":"+n)))(a,n)},$a=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},Oa=(a,t)=>$a(a,a=>{$a(()=>t?.(a))}),ha=async(a,t)=>{try{return await a()}finally{await t()}},Sa=/^\d+$/,pa=Ea(),Ia=Ea(),Ra=Ea(),ba=(a,t,n,i,s,c,o,l={},r=0,u=[])=>{let d,w,y,E,N,v=0,m=0,L=0,S=0,I=0,R=0,g=0,U=0,X=0;const P={},z=l.destroy;fa(pa,u,()=>0),fa(Ia,u,()=>[]),va(Ra,u,(_a(Ra,u)??0)+1);const G=Ea(),[H,Y,W,k,J]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!e),([[a],[t]])=>!na(a)||!na(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!na(a)||!na(t),t.setContent]:La(0))(o,a,r),[K,V,Z]=(a=>{let t;const[n,i]=(()=>{const a=[];let t=0;return[n=>(n?a.shift():null)??e+t++,t=>{h(Sa,t)&&$(a)<1e3&&M(a,t)}]})(),s=Ea(),c=(a,n,i,c)=>{let o,l=!1;if(b(((a,t=[e])=>{const n=[],i=(a,e)=>e==$(t)?M(n,a):T(t[e])?B(a,a=>i(a,e+1)):b([t[e],null],t=>i(_a(a,t),e+1));return i(a,0),n})(n,i),e=>B(e,e=>{const n=()=>_a(s,e)[0](t,...i??[],...c);a?(a=>{try{return a()}catch(a){(a=>{l||(o=a),l=!0})?.(a)}})(n):n()})),l)throw o};return[(i,c,o,l=[],r=()=>[])=>{t??=a();const u=n(1);return va(s,u,[i,c,o,l,r]),da(ma(c,o??[e],ua),u),u},(a,t,...e)=>c(!1,a,t,e),a=>f(_a(s,a),([,t,n])=>(ma(t,n??[e],void 0,t=>(q(t,a),x(t)?1:0)),va(s,a),i(a),n)),a=>f(_a(s,a),([a,,e=[],n,i])=>{const s=(...c)=>{const o=$(c);o==$(e)?a(t,...c,...i(c)):T(e[o])?b(n[o]?.(...c)??[],a=>s(...c,a)):s(...c,e[o])};s()}),(a,t,...e)=>c(!0,a,t,e)]})(()=>ba),Q=a=>{a!=v&&(v=a,V(G,void 0,v))},aa=()=>{_a(Ra,u)||_a(pa,u)||!O(_a(Ia,u)??[])||(va(pa,u),va(Ia,u),va(Ra,u))},ta=t=>{(H&&A(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ea=async()=>{Ta()&&a.__?.[0]?.()&&await ra()},ia=a=>ha(()=>w=a,()=>{w==a&&(w=void 0)}),sa=async a=>(2!=v&&(await ha(async()=>{Q(1),m++,await Aa(()=>$a(async()=>{const e=await t();A(e)?ta(e):_(e)&&a?J(a):_(e)||La(1,e)},t=>{c?.(t),a&&J(a)}))},()=>Q(0)),await ea()),ba),ca=async()=>{const a=g;g=0,a&&a==S&&!X&&(2==v?g=a:await sa())},oa=async a=>{const t=++S;let e=!0;if(await la(!0),t==S&&!X){const n=$a(async()=>{const a=await i(async(a,n)=>{if(t==S&&!X)if(n||a){const t=e||2==v||!!R;I++,t&&R++,await ha(async()=>{Q(1),m++,await(t?Aa(()=>ta(n??a)):(()=>{try{return ta(n??a)}finally{Q(0)}})())},()=>{t&&R--,--I||Q(0)}),I||await ea()}else 2==v?g=t:await sa()});t!=S||X?_(a)||await s(a):d=a},c);await ia(n),t!=S||X||await ha(()=>sa(a),()=>{e=!1})}return ba},la=async(a=!1)=>{g=0,a||S++;const t=w,e=d;return d=void 0,await ia(ha(async()=>{await t},async()=>{_(e)||await $a(()=>s(e),c)})),ba},ra=async a=>(1!=v&&await ha(()=>ha(async()=>{Q(2),L++,await Aa(()=>$a(()=>n(Y,a),c))},()=>Q(0)),ca),ba),wa=async()=>{const t=++U;return await ya(!0),t!=U||X||(await ra(),t!=U||X||(y=a.addDidFinishTransactionListener(()=>{if(t==U&&!X){const a=W();k(a)&&$a(()=>ra(a))}}))),ba},ya=async(t=!1)=>{t||U++;const e=y;return y=void 0,_(e)||a.delListener(e),ba},Ta=()=>!_(y),Na=async(a=!1)=>{const[t,e]=a?[ya,la]:[la,ya];return await ha(()=>t(),async()=>{await e()}),ba},Aa=async(...a)=>{let t,e=!1;const n=p(n=>O(a)?n():M(_a(Ia,u),...D(a,(i,s)=>{const o=s==$(a)-1;return[async()=>{let a;N=p(t=>a=t),await ha(async()=>{try{await $a(i,c)}catch(a){e||(e=!0,t=a)}o&&n()},()=>{N=void 0,a()})},o?n:void 0,P]})));if(await(async()=>{if(!_a(pa,u)){va(pa,u,1);const a=_a(Ia,u);let t=0;await ha(async()=>{for(;t<$(a);){const e=a[t++];e[2]=void 0,await e[0]()}},()=>{F(a,t),va(pa,u,0),aa()})}})(),await n,e)throw t;return ba},ba={load:sa,startAutoLoad:oa,stopAutoLoad:la,isAutoLoading:()=>!_(d),save:ra,startAutoSave:wa,stopAutoSave:ya,isAutoSaving:Ta,startAutoPersisting:async(a,t=!1)=>{const[e,n,i,s]=t?[wa,oa,ya,la]:[oa,wa,la,ya],c=e(a),o=t?U:S;await c;const l=n(a),r=t?S:U;try{await l}catch(a){throw r==(t?S:U)&&await Oa(s),o==(t?U:S)&&await Oa(i),a}return ba},stopAutoPersisting:Na,getStatus:()=>v,addStatusListener:a=>K(a,G),delListener:t=>(Z(t),a),schedule:Aa,getStore:()=>a,getStats:()=>({loads:m,saves:L}),...l,destroy:async()=>(_(E)&&(X=1,E=(async()=>{const a=_a(Ia,u),t=C(a,([,a,t])=>t!=P||(a?.(),!1)),e=N;F(a),M(a,...t),await ha(()=>ha(()=>ha(Na,()=>e),()=>z?.()),()=>{const a=(_a(Ra,u)??1)-1;va(Ra,u,a||void 0),aa()})})()),await E,ba)};return j(ba)},ga="_",Da="_id",Ca="SELECT",Fa="WHERE",Ma="TABLE",Ua="ALTER "+Ma,xa="FROM",Xa="DELETE "+xa,Pa=Ca+"*"+xa,Ba="pragma_",qa="data_version",za="schema_version",Ga="pragma_table_",Ha="CREATE "+Ma,Ya=/\$tableName/g,Wa=a=>g(D(o(a,"."),a=>`"${l(a,/"/g,'""')}"`),"."),ja=()=>"?",ka=(a,t,e=[1])=>g(D(a,()=>t(e)),n),Ja=(a,t=s)=>Fa+`(${Ka(t,Wa(a))})`,Ka=(a,t)=>l(a,Ya,t),Va="ColumnName",Za="store",Qa="json",at=Za+"TableName",tt=Za+"Id"+Va,et=Za+Va,nt="autoLoadIntervalSeconds",it="rowId"+Va,st="tableId",ct="tableName",ot="deleteEmptyColumns",lt="deleteEmptyTable",rt="condition",ut={mode:Qa,[nt]:1},dt={load:0,save:0,[ct]:t+"_values"},wt=a=>A(a)?a:void 0,yt=a=>N(a)||A(a),Et=(a,t,e,n,i)=>{const s=Ea();return Q(a,(a,c)=>{const o=L((l=k(t,m(a)?{[e]:a}:a),z.values(l)),0,ea(t));var l;T(o[0])||n(c,o[0])||(i(c,o[0]),va(s,c,o))}),s},_t=(a,e,i,c,o,l=Tt,r,u,d)=>{const w=Ea(),y=Ea();let E=a;return[async()=>{P(w),P(y),b(await i(E,e),({tn:a,cn:t,uq:e})=>{da(fa(w,a,ua),t),e&&da(fa(y,a,ua),t)})},async(a,t,e,n)=>{const i=_(n)?void 0:ua(n);return((a,t)=>U(_a(w,a),t))(a,t)?V(C(D(await E(Pa+Wa(a)+Ja(a,e)),a=>{const e=a[t],n=u?ta(Z(a,t),u):Z(a,t);return[e,_(i)?n:V(C(aa(n,(a,t)=>[t,a]),([a])=>(a=>_(i)||U(i,a))(a)))]}),a=>!_(a[0])&&!na(a[1]))):{}},async(a,e,i,u,d,T=!1,N=s,v)=>{const f=_(v)?void 0:ua(v),m=a=>_(f)||U(f,a),A=ua();Q(i??{},a=>b(C(W(a??{}),m),a=>da(A,a)));const L=X(A);if(_(f)&&!T&&d&&N==s&&O(L)&&U(w,a))return await E("DROP "+Ma+Wa(a)),va(w,a),void va(y,a);const $=_a(w,a),h=ua(C(X($),a=>a==e||m(a)));if(!O(L))if(U(w,a)){if(await I(D([e,...L],async t=>{q(h,t)||(await E(Ua+Wa(a)+"ADD"+Wa(t)+c),da($,t))})),l==Tt&&!U(_a(y,a),e)){const n=t+"_pk_"+(a=>{let t=2166136261;return b(wa.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(sa([a,e]));await E("CREATE UNIQUE INDEX IF NOT EXISTS"+Wa(n)+"ON"+Wa(a)+`(${Wa(e)})`),da(fa(y,a,ua),e)}}else await E(Ha+Wa(a)+`(${Wa(e)}${c} PRIMARY KEY${g(D(L,a=>n+Wa(a)+c))});`),va(w,a,ua([e,...L])),va(y,a,ua([e]));if(await I([...!T&&u?D(X(h),async t=>{t!=e&&(await E(Ua+Wa(a)+"DROP"+Wa(t)),q($,t))}):[]]),T)_(i)?_(f)&&await E(Xa+Wa(a)+Ja(a,N)):await I(aa(i,async(t,n)=>{if(_(t))await E(Xa+Wa(a)+Ja(a,N)+`AND(${Wa(e)}=${o([1])})`,[n]);else if(!O(L)){const i=C(W(t),m);O(i)||await l(E,a,e,i,{[n]:D(i,a=>r?r(t[a]):t[a])},o,$)}}));else if(O(L))_(f)&&U(w,a)&&await E(Xa+Wa(a)+Ja(a,N));else{const t=C(X(_a(w,a)),a=>a!=e&&m(a)),n=V(),s=[];Q(i??{},(a,e)=>{K(n,e,D(t,t=>r?r(a?.[t]):a?.[t])),M(s,e)}),await l(E,a,e,t,n,o,$),await E(Xa+Wa(a)+Ja(a,N)+`AND${Wa(e)}NOT IN(${ka(s,o)})`,s)}},async t=>{if(d)return await d(async a=>{const e=E;return E=a,await ha(t,()=>{E=e})});await a("BEGIN");try{const e=await t();return await a("END"),e}catch(t){throw await $a(()=>a("ROLLBACK")),t}}]},Tt=async(a,t,e,i,s,c)=>{const o=[1];await a("INSERT INTO"+Wa(t)+"("+((...a)=>g(D(a,Wa),n))(e,...i)+")VALUES"+g(aa(s,a=>"("+c(o)+","+ka(a,c,o)+")"),n)+"ON CONFLICT("+Wa(e)+")DO UPDATE SET"+g(D(i,a=>Wa(a)+"=excluded."+Wa(a)),n),aa(s,(a,t)=>[t,...D(a,a=>a??null)]).flat())},Nt=(a,t,e,n,i,s,c,[o,l,r],u,d,w,y,E,_,T,N,v,f)=>{const[m,A,L,$]=_t(t,u,d,E,_,T,void 0,void 0,f);return ba(a,()=>$(async()=>(await m(),la((await A(o,l))[ga]?.[r]??"null"))),a=>$(async()=>{await m(),await L(o,l,{[ga]:{[r]:oa(a()??null)}},!0,!0)}),e,n,i,c,{[y]:()=>w,destroy:s},0,w)},vt=(a,t,e,n,i,s,c,[o,l,[r,u,d,w,y]],E,T,N,v,f,m,A,L,$,O)=>{const[h,S,p,b]=_t(t,E,T,f,m,A,L,$,O),g=(a,t)=>I(Na(l,async([e,n,i,s,c],o)=>{t&&!J(a,o)||await p(e,n,a[o],i,s,t,c)})),F=(a,t,e)=>V(1==e?C(aa(a,(a,t)=>[t,a]),([a])=>R(t,a)):C(D(t,t=>[t,a[t]]),([,a])=>!_(a))),M=async(a,t)=>u?await p(d,Da,{[ga]:_(y)?a:F(a,y,t)},!0,!0,t,void 0,y):null;return ba(a,()=>b(async()=>{await h();const a=await(async()=>V(C(await I(Na(o,async([a,t,e],n)=>[a,await S(n,t,e)])),a=>!na(a[1]))))(),t=await(async()=>r?(await S(d,Da,void 0,w))[ga]:{})();return na(a)&&_(t)?void 0:[a,t]}),(a,t)=>b(async()=>{if(await h(),_(t)){const[t,e]=a();await g(t),await M(e)}else await g(t[0],!0),await M(t[1],!0)}),e,n,i,c,{[v]:()=>N,destroy:s},0,N)},ft=(a,n,i,c,o,l,u,d,w,y,T="getDb",v,f)=>{let A,L,$;const O=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(i,l),[h,S,p,I]=(a=>{const e=(a=>k(ut,m(a)?{[at]:a}:a??{}))(a),n=e[nt];if(e.mode==Qa){const a=e[at]??t;return[1,n,[a,e[tt]??Da,e[et]??Za],ua(a)]}const{tables:{load:i={},save:c={}}={},values:o={}}=e,l=k(dt,o),{load:r,save:u}=l,d=[yt(r),yt(u),l[ct],wt(r),wt(u)],w=d[2],y=ua(w),E=ua(w),_=Et(i,{[st]:null,[it]:Da,[rt]:s},st,a=>U(E,a),a=>da(y,a)),T=Et(c,{[ct]:null,[it]:Da,[ot]:0,[lt]:0,[rt]:null},ct,(a,t)=>U(E,t),(a,t)=>da(y,t));return Ta(T,(a,t)=>t[4]??=_a(_,t[0])?.[2]??s),[0,n,[_,T,d],y]})(n);return!h&&a.isMergeable()&&La(0),(h?Nt:vt)(a,O,a=>{let t,e,n=1,i=0,s=0;const l=async(t=!0)=>{const[{d:e,s:i,c:c}]=await O(Ca+` ${qa} d,${za} s,TOTAL_CHANGES() c FROM ${Ba}${qa} JOIN ${Ba}${za}`);if(n&&(e!=A||i!=L||c!=$)){const o=t&&!s&&!E(A);A=e,L=i,$=c,o&&n&&await a()}},d=()=>{_(t)||((a=>{clearInterval(a)})(t),t=void 0)},w=(c=!1)=>{if(e)return e;const o=ha(()=>Oa(async()=>{for(i?c&&await l():(await l(!1),i=1);n&&s;)s=0,await l(!1),n&&(await a(),await l())},u),()=>{e==o&&(e=void 0),n&&(s?w():n&&_(t)&&(t=setInterval(()=>w(!0),1e3*S)))});return e=o,o},y=c(a=>{n&&U(I,a)&&(s=1,d(),r.resolve().then(()=>n?void w():0))});return w().then(()=>async()=>{n=0,s=0,d(),await ha(async()=>await e,async()=>{A=L=$=null,await o(y)})})},a=>a(),u,d,w,p,X(I),async(a,t)=>await a(Ca+` t.name tn,c.name cn,c.pk OR EXISTS(${Ca} 1 FROM ${Ba}index_list(t.name)i,${Ba}index_info(i.name)ii ${Fa} i."unique"=1 AND ii.name=c.name AND(${Ca} count(*) FROM ${Ba}index_info(i.name))=1)uq FROM ${Ga}list()t,${Ga}info(t.name)c ${Fa} t.schema='main'AND t.type IN('table','view')AND t.name IN(${ka(t,ja)})ORDER BY t.name,c.name`,t),y,T,e,ja,v,a=>N(a)?1:(a=>!1===a)(a)?0:a,void 0,f)},mt=(a,t,...e)=>a.exec(t,...e).toArray(),At=(a,t,n,i,s)=>"fragmented"==n?.mode?Ot(a,t,n?.storagePrefix??e,s):ft(a,n,async(a,e=[])=>R(["BEGIN","END"],a)?[]:mt(t,a,...e),()=>S,a=>a(),i,s,S,2,t,"getSqlStorage"),Lt=()=>[V(),e,0],$t=a=>h(/^[a-zA-Z_][a-zA-Z0-9_]*$/,a)?a:Wa(a),Ot=(a,t,e="",n)=>{const i=h(/^[a-z0-9_]*$/,e)?e:`$tinybase$${(a=>g(D(o(a),a=>"$"+L((65536+a.charCodeAt(0)).toString(16),1))))(e)}$`,s=i+"tinybase_values",l=$t(i+"tinybase_tables"),r=$t(s),u=`INSERT INTO ${l} (type, table_id, row_id, cell_id, value_data, timestamp, hash) VALUES (?, ?, ?, ?, ?, ?, ?)`,d=`INSERT INTO ${r} (value_id, value_data, timestamp, hash) VALUES (?, ?, ?, ?)`,_=(a,t)=>sa([a,t]);t.exec(`\n CREATE TABLE IF NOT EXISTS ${l} (\n type TEXT NOT NULL,\n table_id TEXT,\n row_id TEXT,\n cell_id TEXT,\n value_data TEXT NOT NULL,\n timestamp TEXT NOT NULL,\n hash INTEGER NOT NULL,\n PRIMARY KEY (type, table_id, row_id, cell_id)\n );\n \n CREATE TABLE IF NOT EXISTS ${r} (\n value_id TEXT,\n value_data TEXT NOT NULL,\n timestamp TEXT NOT NULL,\n hash INTEGER NOT NULL\n );\n `);const N=(a,t,e)=>T(e)?t+" IS NULL":(M(a,e),t+" = ?"),v=(a,e,n,i,s,o)=>{((a,e,n)=>{const i=[c];t.exec(`DELETE FROM ${l} WHERE type = ? AND `+N(i,"table_id",a)+" AND "+N(i,"row_id",e)+" AND "+N(i,"cell_id",n),...i)})(a,e,n),t.exec(u,c,a,e,n,i,s,o)},f=(a,e,n,i)=>{(a=>{const e=[];t.exec(`DELETE FROM ${r} WHERE `+N(e,"value_id",a),...e)})(a),t.exec(d,a,e,n,i)};return ba(a,async()=>{const a=Lt(),e=Lt(),n=ua(),i=mt(t,"SELECT * FROM "+l);return b(i,t=>{const e=E(t.table_id)?null:y(t.table_id),i=E(t.row_id)?null:y(t.row_id),s=E(t.cell_id)?null:y(t.cell_id),c=y(t.value_data),o=y(t.timestamp),l=w(t.hash),[r]=la(c);if(!T(e)&&!T(i)&&T(s)&&Y(r)){const t=ia(a[0],e,Lt);K(t[0],i,[r,o,l]),da(n,_(e,i))}}),b(i,t=>{const e=y(t.type),i=E(t.table_id)?null:y(t.table_id),s=E(t.row_id)?null:y(t.row_id),o=E(t.cell_id)?null:y(t.cell_id),l=y(t.value_data),r=y(t.timestamp),u=w(t.hash),[d]=la(l);if(e===c)if(T(i)||T(s)||T(o)){if(T(i)||T(s))if(T(i))Aa(a,r,u);else{const t=ia(a[0],i,Lt);Aa(t,r,u)}else if(!Y(d)){const t=ia(a[0],i,Lt),e=ia(t[0],s,Lt);Aa(e,r,u)}}else if(!U(n,_(i,s))){const t=ia(a[0],i,Lt),e=ia(t[0],s,Lt);K(e[0],o,[d,r,u])}}),b(mt(t,"SELECT * FROM "+r),a=>{const t=E(a.value_id)?null:y(a.value_id),n=y(a.value_data),i=y(a.timestamp),s=w(a.hash),[c]=la(n);T(t)?Aa(e,i,s):K(e[0],t,[c,i,s])}),[a,e]},async(a,[[e,n,i],[s,o,r]]=a())=>{const[u]=a()[0];v(null,null,null,oa([0]),n,i),Q(e,([a,e,n],i)=>{v(i,null,null,oa([0]),e,n),Q(a,([a,e,n],s)=>{const o=u[i]?.[0]?.[s]?.[0]??a;((a,e)=>{t.exec(`DELETE FROM ${l} WHERE type = ? AND table_id = ? AND row_id = ? AND cell_id IS NOT NULL`,c,a,e)})(i,s),v(i,s,null,oa([o]),e,n)})}),f(null,oa([0]),o,r),Q(s,(a,t)=>{f(t,oa([a[0]]),a[1],a[2])})},S,S,n,2,{getSqlStorage:()=>t})};export{At as createDurableObjectSqlStoragePersister};
1
+ const a=a=>typeof a,t="tinybase",e="",n=",",i=a(e),s="true",c="t",o=(a,t="",e)=>a.split(t,e),r=(a,t,e)=>a.replace(t,e),l=Promise,u=a=>(t,e,n)=>a(t)?n?.():e(t),d=globalThis,w=Number,y=String,E=a=>null==a,_=a=>void 0===a,T=a=>null===a,N=a=>!0===a,v=u(E),f=u(_),m=t=>a(t)==i,L=a=>Array.isArray(a),A=(a,t,e)=>a.slice(t,e),$=a=>a.length,O=a=>0==$(a),h=(a,t)=>a.test(t),S=()=>{},p=a=>new l(a),I=async a=>l.all(a),R=(a,t)=>a.includes(t),b=(a,t)=>a.forEach(t),g=(a,t="")=>a.join(t),D=(a,t)=>a.map(t),C=(a,t)=>a.filter(t),F=(a,t=$(a))=>a.splice(0,t),M=(a,...t)=>a.push(...t),U=(a,t)=>a?.has(t)??!1,x=a=>_(a)||0==(a=>a?.size??0)(a),X=a=>[...a?.values()??[]],P=a=>a.clear(),B=(a,t)=>a?.forEach(t),q=(a,t)=>a?.delete(t),z=Object,G=a=>z.getPrototypeOf(a),H=z.entries,Y=a=>!E(a)&&v(G(a),a=>a==z.prototype||E(G(a)),()=>!0),W=z.keys,j=z.freeze,k=(...a)=>z.assign(z.create(null),...a),J=(a,t)=>z.hasOwn(a,t),K=(a,t,e)=>(z.defineProperty(a,t,{configurable:!0,enumerable:!0,value:e,writable:!0}),e),V=(a=[])=>{const t=z.create(null);return b(a,([a,e])=>K(t,a,e)),t},Z=(a,t)=>(delete a[t],a),Q=(a,t)=>b(W(a),e=>t(a[e],e)),aa=(a,t)=>D(H(a),([a,e])=>t(e,a)),ta=(a,t)=>{const e=V();return Q(a,(a,n)=>K(e,n,t(a,n))),e},ea=a=>$(W(a)),na=a=>Y(a)&&0==ea(a),ia=(a,t,e)=>(J(a,t)||K(a,t,e()),a[t]),sa=JSON.stringify,ca=JSON.parse,oa=a=>sa(a,(a,t)=>_(t)?"":t),ra=a=>la(ca(a)),la=a=>""===a?void 0:L(a)?D(a,la):Y(a)?ta(a,la):a,ua=a=>new Set(L(a)||_(a)?a:[a]),da=(a,t)=>a?.add(t),wa=new d.TextEncoder,ya=Map,Ea=a=>new ya(a),_a=(a,t)=>a?.get(t),Ta=(a,t)=>B(a,(a,e)=>t(e,a)),Na=(a,t)=>{const e=[];return Ta(a,(a,n)=>M(e,t(n,a))),e},va=(a,t,e)=>_(e)?(q(a,t),a):a?.set(t,e),fa=(a,t,e,n)=>{let i=_a(a,t);return U(a,t)?n?.(i):va(a,t,i=e()),i},ma=(a,t,e,n,i=0)=>f((e?fa:_a)(a,t[i],i>$(t)-2?e:Ea),s=>{if(i>$(t)-2)return n?.(s)&&va(a,t[i]),s;const c=ma(s,t,e,n,i+1);return x(s)&&va(a,t[i]),c}),La=(a,t,e)=>{t>a[1]&&(a[1]=t),a[2]=e>>>0},Aa=(a,n)=>{throw((a,n)=>Error(t+":"+a+(_(n)?e:":"+n)))(a,n)},$a=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},Oa=(a,t)=>$a(a,a=>{$a(()=>t?.(a))}),ha=async(a,t)=>{try{return await a()}finally{await t()}},Sa=/^\d+$/,pa=Ea(),Ia=Ea(),Ra=Ea(),ba=(a,t,n,i,s,c,o,r={},l=0,u=[])=>{let d,w,y,E,N,v=0,m=0,A=0,S=0,I=0,R=0,g=0,U=0,X=0;const P={},z=r.destroy;fa(pa,u,()=>0),fa(Ia,u,()=>[]),va(Ra,u,(_a(Ra,u)??0)+1);const G=Ea(),[H,Y,W,k,J]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!e),([[a],[t]])=>!na(a)||!na(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!na(a)||!na(t),t.setContent]:Aa(0))(o,a,l),[K,V,Z]=(a=>{let t;const[n,i]=(()=>{const a=[];let t=0;return[n=>(n?a.shift():null)??e+t++,t=>{h(Sa,t)&&$(a)<1e3&&M(a,t)}]})(),s=Ea(),c=(a,n,i,c)=>{let o,r=!1;if(b(((a,t=[e])=>{const n=[],i=(a,e)=>e==$(t)?M(n,a):T(t[e])?B(a,a=>i(a,e+1)):b([t[e],null],t=>i(_a(a,t),e+1));return i(a,0),n})(n,i),e=>B(e,e=>{const n=()=>_a(s,e)[0](t,...i??[],...c);a?(a=>{try{return a()}catch(a){(a=>{r||(o=a),r=!0})?.(a)}})(n):n()})),r)throw o};return[(i,c,o,r=[],l=()=>[])=>{t??=a();const u=n(1);return va(s,u,[i,c,o,r,l]),da(ma(c,o??[e],ua),u),u},(a,t,...e)=>c(!1,a,t,e),a=>f(_a(s,a),([,t,n])=>(ma(t,n??[e],void 0,t=>(q(t,a),x(t)?1:0)),va(s,a),i(a),n)),a=>f(_a(s,a),([a,,e=[],n,i])=>{const s=(...c)=>{const o=$(c);o==$(e)?a(t,...c,...i(c)):T(e[o])?b(n[o]?.(...c)??[],a=>s(...c,a)):s(...c,e[o])};s()}),(a,t,...e)=>c(!0,a,t,e)]})(()=>ba),Q=a=>{a!=v&&(v=a,V(G,void 0,v))},aa=()=>{_a(Ra,u)||_a(pa,u)||!O(_a(Ia,u)??[])||(va(pa,u),va(Ia,u),va(Ra,u))},ta=t=>{(H&&L(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ea=async()=>{Ta()&&a.__?.[0]?.()&&await la()},ia=a=>ha(()=>w=a,()=>{w==a&&(w=void 0)}),sa=async a=>(2!=v&&(await ha(async()=>{Q(1),m++,await La(()=>$a(async()=>{const e=await t();L(e)?ta(e):_(e)&&a?J(a):_(e)||Aa(1,e)},t=>{c?.(t),a&&J(a)}))},()=>Q(0)),await ea()),ba),ca=async()=>{const a=g;g=0,a&&a==S&&!X&&(2==v?g=a:await sa())},oa=async a=>{const t=++S;let e=!0;if(await ra(!0),t==S&&!X){const n=$a(async()=>{const a=await i(async(a,n)=>{if(t==S&&!X)if(n||a){const t=e||2==v||!!R;I++,t&&R++,await ha(async()=>{Q(1),m++,await(t?La(()=>ta(n??a)):(()=>{try{return ta(n??a)}finally{Q(0)}})())},()=>{t&&R--,--I||Q(0)}),I||await ea()}else 2==v?g=t:await sa()});t!=S||X?_(a)||await s(a):d=a},c);await ia(n),t!=S||X||await ha(()=>sa(a),()=>{e=!1})}return ba},ra=async(a=!1)=>{g=0,a||S++;const t=w,e=d;return d=void 0,await ia(ha(async()=>{await t},async()=>{_(e)||await $a(()=>s(e),c)})),ba},la=async a=>(1!=v&&await ha(()=>ha(async()=>{Q(2),A++,await La(()=>$a(()=>n(Y,a),c))},()=>Q(0)),ca),ba),wa=async()=>{const t=++U;return await ya(!0),t!=U||X||(await la(),t!=U||X||(y=a.addDidFinishTransactionListener(()=>{if(t==U&&!X){const a=W();k(a)&&$a(()=>la(a))}}))),ba},ya=async(t=!1)=>{t||U++;const e=y;return y=void 0,_(e)||a.delListener(e),ba},Ta=()=>!_(y),Na=async(a=!1)=>{const[t,e]=a?[ya,ra]:[ra,ya];return await ha(()=>t(),async()=>{await e()}),ba},La=async(...a)=>{let t,e=!1;const n=p(n=>O(a)?n():M(_a(Ia,u),...D(a,(i,s)=>{const o=s==$(a)-1;return[async()=>{let a;N=p(t=>a=t),await ha(async()=>{try{await $a(i,c)}catch(a){e||(e=!0,t=a)}o&&n()},()=>{N=void 0,a()})},o?n:void 0,P]})));if(await(async()=>{if(!_a(pa,u)){va(pa,u,1);const a=_a(Ia,u);let t=0;await ha(async()=>{for(;t<$(a);){const e=a[t++];e[2]=void 0,await e[0]()}},()=>{F(a,t),va(pa,u,0),aa()})}})(),await n,e)throw t;return ba},ba={load:sa,startAutoLoad:oa,stopAutoLoad:ra,isAutoLoading:()=>!_(d),save:la,startAutoSave:wa,stopAutoSave:ya,isAutoSaving:Ta,startAutoPersisting:async(a,t=!1)=>{const[e,n,i,s]=t?[wa,oa,ya,ra]:[oa,wa,ra,ya],c=e(a),o=t?U:S;await c;const r=n(a),l=t?S:U;try{await r}catch(a){throw l==(t?S:U)&&await Oa(s),o==(t?U:S)&&await Oa(i),a}return ba},stopAutoPersisting:Na,getStatus:()=>v,addStatusListener:a=>K(a,G),delListener:t=>(Z(t),a),schedule:La,getStore:()=>a,getStats:()=>({loads:m,saves:A}),...r,destroy:async()=>(_(E)&&(X=1,E=(async()=>{const a=_a(Ia,u),t=C(a,([,a,t])=>t!=P||(a?.(),!1)),e=N;F(a),M(a,...t),await ha(()=>ha(()=>ha(Na,()=>e),()=>z?.()),()=>{const a=(_a(Ra,u)??1)-1;va(Ra,u,a||void 0),aa()})})()),await E,ba)};return j(ba)},ga="_",Da="_id",Ca="SELECT",Fa="WHERE",Ma="TABLE",Ua="ALTER "+Ma,xa="FROM",Xa="DELETE "+xa,Pa=Ca+"*"+xa,Ba="pragma_",qa="data_version",za="schema_version",Ga="pragma_table_",Ha="CREATE "+Ma,Ya=/\$tableName/g,Wa=a=>g(D(o(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),ja=()=>"?",ka=(a,t,e=[1])=>g(D(a,()=>t(e)),n),Ja=(a,t=s,n)=>{const i=C([t==s?void 0:`(${Ka(t,Wa(a))})`,n],a=>!_(a));return O(i)?e:Fa+g(i,"AND")},Ka=(a,t)=>r(a,Ya,t),Va="ColumnName",Za="store",Qa="json",at=Za+"TableName",tt=Za+"Id"+Va,et=Za+Va,nt="autoLoadIntervalSeconds",it="rowId"+Va,st="tableId",ct="tableName",ot="deleteEmptyColumns",rt="deleteEmptyTable",lt="condition",ut={mode:Qa,[nt]:1},dt={load:0,save:0,[ct]:t+"_values"},wt=a=>L(a)?a:void 0,yt=a=>N(a)||L(a),Et=(a,t,e,n,i)=>{const s=Ea();return Q(a,(a,c)=>{const o=A((r=k(t,m(a)?{[e]:a}:a),z.values(r)),0,ea(t));var r;T(o[0])||n(c,o[0])||(i(c,o[0]),va(s,c,o))}),s},_t=(a,e,i,c,o,r=Tt,l,u,d)=>{const w=Ea(),y=Ea();let E=a;return[async()=>{P(w),P(y),b(await i(E,e),({tn:a,cn:t,uq:e})=>{da(fa(w,a,ua),t),e&&da(fa(y,a,ua),t)})},async(a,t,e,n)=>{const i=_(n)?void 0:ua(n);return((a,t)=>U(_a(w,a),t))(a,t)?V(C(D(await E(Pa+Wa(a)+Ja(a,e)),a=>{const e=a[t],n=u?ta(Z(a,t),u):Z(a,t);return[e,_(i)?n:V(C(aa(n,(a,t)=>[t,a]),([a])=>(a=>_(i)||U(i,a))(a)))]}),a=>!_(a[0])&&!na(a[1]))):{}},async(a,e,i,u,d,T=!1,N=s,v)=>{const f=_(v)?void 0:ua(v),m=a=>_(f)||U(f,a),L=ua();Q(i??{},a=>b(C(W(a??{}),m),a=>da(L,a)));const A=X(L);if(_(f)&&!T&&d&&N==s&&O(A)&&U(w,a))return await E("DROP "+Ma+Wa(a)),va(w,a),void va(y,a);const $=_a(w,a),h=ua(C(X($),a=>a==e||m(a)));if(!O(A))if(U(w,a)){if(await I(D([e,...A],async t=>{q(h,t)||(await E(Ua+Wa(a)+"ADD"+Wa(t)+c),da($,t))})),r==Tt&&!U(_a(y,a),e)){const n=t+"_pk_"+(a=>{let t=2166136261;return b(wa.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(sa([a,e]));await E("CREATE UNIQUE INDEX IF NOT EXISTS"+Wa(n)+"ON"+Wa(a)+`(${Wa(e)})`),da(fa(y,a,ua),e)}}else await E(Ha+Wa(a)+`(${Wa(e)}${c} PRIMARY KEY${g(D(A,a=>n+Wa(a)+c))});`),va(w,a,ua([e,...A])),va(y,a,ua([e]));if(await I([...!T&&u?D(X(h),async t=>{t!=e&&(await E(Ua+Wa(a)+"DROP"+Wa(t)),q($,t))}):[]]),T)_(i)?_(f)&&await E(Xa+Wa(a)+Ja(a,N)):await I(aa(i,async(t,n)=>{if(_(t))await E(Xa+Wa(a)+Ja(a,N,`(${Wa(e)}=${o([1])})`),[n]);else if(!O(A)){const i=C(W(t),m);O(i)||await r(E,a,e,i,{[n]:D(i,a=>l?l(t[a]):t[a])},o,$)}}));else if(O(A))_(f)&&U(w,a)&&await E(Xa+Wa(a)+Ja(a,N));else{const t=C(X(_a(w,a)),a=>a!=e&&m(a)),n=V(),s=[];Q(i??{},(a,e)=>{K(n,e,D(t,t=>l?l(a?.[t]):a?.[t])),M(s,e)}),await r(E,a,e,t,n,o,$),await E(Xa+Wa(a)+Ja(a,N,`${Wa(e)}NOT IN(${ka(s,o)})`),s)}},async t=>{if(d)return await d(async a=>{const e=E;return E=a,await ha(t,()=>{E=e})});await a("BEGIN");try{const e=await t();return await a("END"),e}catch(t){throw await $a(()=>a("ROLLBACK")),t}}]},Tt=async(a,t,e,i,s,c)=>{const o=[1];await a("INSERT INTO"+Wa(t)+"("+((...a)=>g(D(a,Wa),n))(e,...i)+")VALUES"+g(aa(s,a=>"("+c(o)+","+ka(a,c,o)+")"),n)+"ON CONFLICT("+Wa(e)+")DO UPDATE SET"+g(D(i,a=>Wa(a)+"=excluded."+Wa(a)),n),aa(s,(a,t)=>[t,...D(a,a=>a??null)]).flat())},Nt=(a,t,e,n,i,s,c,[o,r,l],u,d,w,y,E,_,T,N,v,f)=>{const[m,L,A,$]=_t(t,u,d,E,_,T,void 0,void 0,f);return ba(a,()=>$(async()=>(await m(),ra((await L(o,r))[ga]?.[l]??"null"))),a=>$(async()=>{await m(),await A(o,r,{[ga]:{[l]:oa(a()??null)}},!0,!0)}),e,n,i,c,{[y]:()=>w,destroy:s},0,w)},vt=(a,t,e,n,i,s,c,[o,r,[l,u,d,w,y]],E,T,N,v,f,m,L,A,$,O)=>{const[h,S,p,b]=_t(t,E,T,f,m,L,A,$,O),g=(a,t)=>I(Na(r,async([e,n,i,s,c],o)=>{t&&!J(a,o)||await p(e,n,a[o],i,s,t,c)})),F=(a,t,e)=>V(1==e?C(aa(a,(a,t)=>[t,a]),([a])=>R(t,a)):C(D(t,t=>[t,a[t]]),([,a])=>!_(a))),M=async(a,t)=>u?await p(d,Da,{[ga]:_(y)?a:F(a,y,t)},!0,!0,t,void 0,y):null;return ba(a,()=>b(async()=>{await h();const a=await(async()=>V(C(await I(Na(o,async([a,t,e],n)=>[a,await S(n,t,e)])),a=>!na(a[1]))))(),t=await(async()=>l?(await S(d,Da,void 0,w))[ga]:{})();return na(a)&&_(t)?void 0:[a,t]}),(a,t)=>b(async()=>{if(await h(),_(t)){const[t,e]=a();await g(t),await M(e)}else await g(t[0],!0),await M(t[1],!0)}),e,n,i,c,{[v]:()=>N,destroy:s},0,N)},ft=(a,n,i,c,o,r,u,d,w,y,T="getDb",v,f)=>{let L,A,$;const O=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(i,r),[h,S,p,I]=(a=>{const e=(a=>k(ut,m(a)?{[at]:a}:a??{}))(a),n=e[nt];if(e.mode==Qa){const a=e[at]??t;return[1,n,[a,e[tt]??Da,e[et]??Za],ua(a)]}const{tables:{load:i={},save:c={}}={},values:o={}}=e,r=k(dt,o),{load:l,save:u}=r,d=[yt(l),yt(u),r[ct],wt(l),wt(u)],w=d[2],y=ua(w),E=ua(w),_=Et(i,{[st]:null,[it]:Da,[lt]:s},st,a=>U(E,a),a=>da(y,a)),T=Et(c,{[ct]:null,[it]:Da,[ot]:0,[rt]:0,[lt]:null},ct,(a,t)=>U(E,t),(a,t)=>da(y,t));return Ta(T,(a,t)=>t[4]??=_a(_,t[0])?.[2]??s),[0,n,[_,T,d],y]})(n);return!h&&a.isMergeable()&&Aa(0),(h?Nt:vt)(a,O,a=>{let t,e,n=1,i=0,s=0;const r=async(t=!0)=>{const[{d:e,s:i,c:c}]=await O(Ca+` ${qa} d,${za} s,TOTAL_CHANGES() c FROM ${Ba}${qa} JOIN ${Ba}${za}`);if(n&&(e!=L||i!=A||c!=$)){const o=t&&!s&&!E(L);L=e,A=i,$=c,o&&n&&await a()}},d=()=>{_(t)||((a=>{clearInterval(a)})(t),t=void 0)},w=(c=!1)=>{if(e)return e;const o=ha(()=>Oa(async()=>{for(i?c&&await r():(await r(!1),i=1);n&&s;)s=0,await r(!1),n&&(await a(),await r())},u),()=>{e==o&&(e=void 0),n&&(s?w():n&&_(t)&&(t=setInterval(()=>w(!0),1e3*S)))});return e=o,o},y=c(a=>{n&&U(I,a)&&(s=1,d(),l.resolve().then(()=>n?void w():0))});return w().then(()=>async()=>{n=0,s=0,d(),await ha(async()=>await e,async()=>{L=A=$=null,await o(y)})})},a=>a(),u,d,w,p,X(I),async(a,t)=>await a(Ca+` t.name tn,c.name cn,c.pk OR EXISTS(${Ca} 1 FROM ${Ba}index_list(t.name)i,${Ba}index_info(i.name)ii ${Fa} i."unique"=1 AND ii.name=c.name AND(${Ca} count(*) FROM ${Ba}index_info(i.name))=1)uq FROM ${Ga}list()t,${Ga}info(t.name)c ${Fa} t.schema='main'AND t.type IN('table','view')AND t.name IN(${ka(t,ja)})ORDER BY t.name,c.name`,t),y,T,e,ja,v,a=>N(a)?1:(a=>!1===a)(a)?0:a,void 0,f)},mt=(a,t,...e)=>a.exec(t,...e).toArray(),Lt=(a,t,n,i,s)=>"fragmented"==n?.mode?Ot(a,t,n?.storagePrefix??e,s):ft(a,n,async(a,e=[])=>R(["BEGIN","END"],a)?[]:mt(t,a,...e),()=>S,a=>a(),i,s,S,2,t,"getSqlStorage"),At=()=>[V(),e,0],$t=a=>h(/^[a-zA-Z_][a-zA-Z0-9_]*$/,a)?a:Wa(a),Ot=(a,t,e="",n)=>{const i=h(/^[a-z0-9_]*$/,e)?e:`$tinybase$${(a=>g(D(o(a),a=>"$"+A((65536+a.charCodeAt(0)).toString(16),1))))(e)}$`,s=i+"tinybase_values",r=$t(i+"tinybase_tables"),l=$t(s),u=`INSERT INTO ${r} (type, table_id, row_id, cell_id, value_data, timestamp, hash) VALUES (?, ?, ?, ?, ?, ?, ?)`,d=`INSERT INTO ${l} (value_id, value_data, timestamp, hash) VALUES (?, ?, ?, ?)`,_=(a,t)=>sa([a,t]);t.exec(`\n CREATE TABLE IF NOT EXISTS ${r} (\n type TEXT NOT NULL,\n table_id TEXT,\n row_id TEXT,\n cell_id TEXT,\n value_data TEXT NOT NULL,\n timestamp TEXT NOT NULL,\n hash INTEGER NOT NULL,\n PRIMARY KEY (type, table_id, row_id, cell_id)\n );\n \n CREATE TABLE IF NOT EXISTS ${l} (\n value_id TEXT,\n value_data TEXT NOT NULL,\n timestamp TEXT NOT NULL,\n hash INTEGER NOT NULL\n );\n `);const N=(a,t,e)=>T(e)?t+" IS NULL":(M(a,e),t+" = ?"),v=(a,e,n,i,s,o)=>{((a,e,n)=>{const i=[c];t.exec(`DELETE FROM ${r} WHERE type = ? AND `+N(i,"table_id",a)+" AND "+N(i,"row_id",e)+" AND "+N(i,"cell_id",n),...i)})(a,e,n),t.exec(u,c,a,e,n,i,s,o)},f=(a,e,n,i)=>{(a=>{const e=[];t.exec(`DELETE FROM ${l} WHERE `+N(e,"value_id",a),...e)})(a),t.exec(d,a,e,n,i)};return ba(a,async()=>{const a=At(),e=At(),n=ua(),i=mt(t,"SELECT * FROM "+r);return b(i,t=>{const e=E(t.table_id)?null:y(t.table_id),i=E(t.row_id)?null:y(t.row_id),s=E(t.cell_id)?null:y(t.cell_id),c=y(t.value_data),o=y(t.timestamp),r=w(t.hash),[l]=ra(c);if(!T(e)&&!T(i)&&T(s)&&Y(l)){const t=ia(a[0],e,At);K(t[0],i,[l,o,r]),da(n,_(e,i))}}),b(i,t=>{const e=y(t.type),i=E(t.table_id)?null:y(t.table_id),s=E(t.row_id)?null:y(t.row_id),o=E(t.cell_id)?null:y(t.cell_id),r=y(t.value_data),l=y(t.timestamp),u=w(t.hash),[d]=ra(r);if(e===c)if(T(i)||T(s)||T(o)){if(T(i)||T(s))if(T(i))La(a,l,u);else{const t=ia(a[0],i,At);La(t,l,u)}else if(!Y(d)){const t=ia(a[0],i,At),e=ia(t[0],s,At);La(e,l,u)}}else if(!U(n,_(i,s))){const t=ia(a[0],i,At),e=ia(t[0],s,At);K(e[0],o,[d,l,u])}}),b(mt(t,"SELECT * FROM "+l),a=>{const t=E(a.value_id)?null:y(a.value_id),n=y(a.value_data),i=y(a.timestamp),s=w(a.hash),[c]=ra(n);T(t)?La(e,i,s):K(e[0],t,[c,i,s])}),[a,e]},async(a,[[e,n,i],[s,o,l]]=a())=>{const[u]=a()[0];v(null,null,null,oa([0]),n,i),Q(e,([a,e,n],i)=>{v(i,null,null,oa([0]),e,n),Q(a,([a,e,n],s)=>{const o=u[i]?.[0]?.[s]?.[0]??a;((a,e)=>{t.exec(`DELETE FROM ${r} WHERE type = ? AND table_id = ? AND row_id = ? AND cell_id IS NOT NULL`,c,a,e)})(i,s),v(i,s,null,oa([o]),e,n)})}),f(null,oa([0]),o,l),Q(s,(a,t)=>{f(t,oa([a[0]]),a[1],a[2])})},S,S,n,2,{getSqlStorage:()=>t})};export{Lt as createDurableObjectSqlStoragePersister};