tinybase 9.0.0-beta.0 → 9.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (219) hide show
  1. package/@types/mergeable-store/index.d.ts +4 -4
  2. package/@types/mergeable-store/with-schemas/index.d.ts +41 -17
  3. package/@types/persisters/index.d.ts +2 -1
  4. package/@types/persisters/with-schemas/index.d.ts +16 -10
  5. package/@types/queries/index.d.ts +4 -0
  6. package/@types/queries/with-schemas/index.d.ts +4 -0
  7. package/index.js +46 -6
  8. package/mergeable-store/index.js +46 -6
  9. package/mergeable-store/with-schemas/index.js +46 -6
  10. package/min/index.js +1 -1
  11. package/min/index.js.gz +0 -0
  12. package/min/mergeable-store/index.js +1 -1
  13. package/min/mergeable-store/index.js.gz +0 -0
  14. package/min/mergeable-store/with-schemas/index.js +1 -1
  15. package/min/mergeable-store/with-schemas/index.js.gz +0 -0
  16. package/min/omni/index.js +1 -1
  17. package/min/omni/index.js.gz +0 -0
  18. package/min/omni/with-schemas/index.js +1 -1
  19. package/min/omni/with-schemas/index.js.gz +0 -0
  20. package/min/persisters/index.js +1 -1
  21. package/min/persisters/index.js.gz +0 -0
  22. package/min/persisters/persister-automerge/index.js +1 -1
  23. package/min/persisters/persister-automerge/index.js.gz +0 -0
  24. package/min/persisters/persister-automerge/with-schemas/index.js +1 -1
  25. package/min/persisters/persister-automerge/with-schemas/index.js.gz +0 -0
  26. package/min/persisters/persister-browser/index.js +1 -1
  27. package/min/persisters/persister-browser/index.js.gz +0 -0
  28. package/min/persisters/persister-browser/with-schemas/index.js +1 -1
  29. package/min/persisters/persister-browser/with-schemas/index.js.gz +0 -0
  30. package/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  31. package/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  32. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  33. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  34. package/min/persisters/persister-durable-object-sql-storage/index.js +1 -1
  35. package/min/persisters/persister-durable-object-sql-storage/index.js.gz +0 -0
  36. package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js +1 -1
  37. package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js.gz +0 -0
  38. package/min/persisters/persister-durable-object-storage/index.js +1 -1
  39. package/min/persisters/persister-durable-object-storage/index.js.gz +0 -0
  40. package/min/persisters/persister-durable-object-storage/with-schemas/index.js +1 -1
  41. package/min/persisters/persister-durable-object-storage/with-schemas/index.js.gz +0 -0
  42. package/min/persisters/persister-electric-sql/index.js +1 -1
  43. package/min/persisters/persister-electric-sql/index.js.gz +0 -0
  44. package/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  45. package/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  46. package/min/persisters/persister-expo-sqlite/index.js +1 -1
  47. package/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  48. package/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  49. package/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  50. package/min/persisters/persister-file/index.js +1 -1
  51. package/min/persisters/persister-file/index.js.gz +0 -0
  52. package/min/persisters/persister-file/with-schemas/index.js +1 -1
  53. package/min/persisters/persister-file/with-schemas/index.js.gz +0 -0
  54. package/min/persisters/persister-indexed-db/index.js +1 -1
  55. package/min/persisters/persister-indexed-db/index.js.gz +0 -0
  56. package/min/persisters/persister-indexed-db/with-schemas/index.js +1 -1
  57. package/min/persisters/persister-indexed-db/with-schemas/index.js.gz +0 -0
  58. package/min/persisters/persister-libsql/index.js +1 -1
  59. package/min/persisters/persister-libsql/index.js.gz +0 -0
  60. package/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  61. package/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  62. package/min/persisters/persister-partykit-client/index.js +1 -1
  63. package/min/persisters/persister-partykit-client/index.js.gz +0 -0
  64. package/min/persisters/persister-partykit-client/with-schemas/index.js +1 -1
  65. package/min/persisters/persister-partykit-client/with-schemas/index.js.gz +0 -0
  66. package/min/persisters/persister-pglite/index.js +1 -1
  67. package/min/persisters/persister-pglite/index.js.gz +0 -0
  68. package/min/persisters/persister-pglite/with-schemas/index.js +1 -1
  69. package/min/persisters/persister-pglite/with-schemas/index.js.gz +0 -0
  70. package/min/persisters/persister-postgres/index.js +1 -1
  71. package/min/persisters/persister-postgres/index.js.gz +0 -0
  72. package/min/persisters/persister-postgres/with-schemas/index.js +1 -1
  73. package/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
  74. package/min/persisters/persister-powersync/index.js +1 -1
  75. package/min/persisters/persister-powersync/index.js.gz +0 -0
  76. package/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  77. package/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  78. package/min/persisters/persister-react-native-mmkv/index.js +1 -1
  79. package/min/persisters/persister-react-native-mmkv/index.js.gz +0 -0
  80. package/min/persisters/persister-react-native-mmkv/with-schemas/index.js +1 -1
  81. package/min/persisters/persister-react-native-mmkv/with-schemas/index.js.gz +0 -0
  82. package/min/persisters/persister-react-native-sqlite/index.js +1 -1
  83. package/min/persisters/persister-react-native-sqlite/index.js.gz +0 -0
  84. package/min/persisters/persister-react-native-sqlite/with-schemas/index.js +1 -1
  85. package/min/persisters/persister-react-native-sqlite/with-schemas/index.js.gz +0 -0
  86. package/min/persisters/persister-remote/index.js +1 -1
  87. package/min/persisters/persister-remote/index.js.gz +0 -0
  88. package/min/persisters/persister-remote/with-schemas/index.js +1 -1
  89. package/min/persisters/persister-remote/with-schemas/index.js.gz +0 -0
  90. package/min/persisters/persister-sqlite-bun/index.js +1 -1
  91. package/min/persisters/persister-sqlite-bun/index.js.gz +0 -0
  92. package/min/persisters/persister-sqlite-bun/with-schemas/index.js +1 -1
  93. package/min/persisters/persister-sqlite-bun/with-schemas/index.js.gz +0 -0
  94. package/min/persisters/persister-sqlite-wasm/index.js +1 -1
  95. package/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  96. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  97. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  98. package/min/persisters/persister-sqlite3/index.js +1 -1
  99. package/min/persisters/persister-sqlite3/index.js.gz +0 -0
  100. package/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  101. package/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  102. package/min/persisters/persister-yjs/index.js +1 -1
  103. package/min/persisters/persister-yjs/index.js.gz +0 -0
  104. package/min/persisters/persister-yjs/with-schemas/index.js +1 -1
  105. package/min/persisters/persister-yjs/with-schemas/index.js.gz +0 -0
  106. package/min/persisters/with-schemas/index.js +1 -1
  107. package/min/persisters/with-schemas/index.js.gz +0 -0
  108. package/min/store/index.js +1 -1
  109. package/min/store/index.js.gz +0 -0
  110. package/min/store/with-schemas/index.js +1 -1
  111. package/min/store/with-schemas/index.js.gz +0 -0
  112. package/min/synchronizers/index.js +1 -1
  113. package/min/synchronizers/index.js.gz +0 -0
  114. package/min/synchronizers/synchronizer-broadcast-channel/index.js +1 -1
  115. package/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
  116. package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -1
  117. package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
  118. package/min/synchronizers/synchronizer-local/index.js +1 -1
  119. package/min/synchronizers/synchronizer-local/index.js.gz +0 -0
  120. package/min/synchronizers/synchronizer-local/with-schemas/index.js +1 -1
  121. package/min/synchronizers/synchronizer-local/with-schemas/index.js.gz +0 -0
  122. package/min/synchronizers/synchronizer-ws-client/index.js +1 -1
  123. package/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
  124. package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
  125. package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
  126. package/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  127. package/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  128. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  129. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  130. package/min/synchronizers/synchronizer-ws-server-durable-object/index.js +1 -1
  131. package/min/synchronizers/synchronizer-ws-server-durable-object/index.js.gz +0 -0
  132. package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +1 -1
  133. package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js.gz +0 -0
  134. package/min/synchronizers/with-schemas/index.js +1 -1
  135. package/min/synchronizers/with-schemas/index.js.gz +0 -0
  136. package/min/ui-react-inspector/index.js +1 -1
  137. package/min/ui-react-inspector/index.js.gz +0 -0
  138. package/min/ui-react-inspector/with-schemas/index.js +1 -1
  139. package/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
  140. package/min/ui-solid-inspector/index.js +1 -1
  141. package/min/ui-solid-inspector/index.js.gz +0 -0
  142. package/min/ui-solid-inspector/with-schemas/index.js +1 -1
  143. package/min/ui-solid-inspector/with-schemas/index.js.gz +0 -0
  144. package/min/ui-svelte-inspector/index.js +1 -1
  145. package/min/ui-svelte-inspector/index.js.gz +0 -0
  146. package/min/ui-svelte-inspector/with-schemas/index.js +1 -1
  147. package/min/ui-svelte-inspector/with-schemas/index.js.gz +0 -0
  148. package/min/with-schemas/index.js +1 -1
  149. package/min/with-schemas/index.js.gz +0 -0
  150. package/omni/index.js +53 -14
  151. package/omni/with-schemas/index.js +53 -14
  152. package/package.json +3 -3
  153. package/persisters/index.js +4 -3
  154. package/persisters/persister-automerge/index.js +4 -3
  155. package/persisters/persister-automerge/with-schemas/index.js +4 -3
  156. package/persisters/persister-browser/index.js +4 -3
  157. package/persisters/persister-browser/with-schemas/index.js +4 -3
  158. package/persisters/persister-cr-sqlite-wasm/index.js +4 -3
  159. package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +4 -3
  160. package/persisters/persister-durable-object-sql-storage/index.js +4 -3
  161. package/persisters/persister-durable-object-sql-storage/with-schemas/index.js +4 -3
  162. package/persisters/persister-durable-object-storage/index.js +4 -3
  163. package/persisters/persister-durable-object-storage/with-schemas/index.js +4 -3
  164. package/persisters/persister-electric-sql/index.js +4 -3
  165. package/persisters/persister-electric-sql/with-schemas/index.js +4 -3
  166. package/persisters/persister-expo-sqlite/index.js +4 -3
  167. package/persisters/persister-expo-sqlite/with-schemas/index.js +4 -3
  168. package/persisters/persister-file/index.js +4 -3
  169. package/persisters/persister-file/with-schemas/index.js +4 -3
  170. package/persisters/persister-indexed-db/index.js +4 -3
  171. package/persisters/persister-indexed-db/with-schemas/index.js +4 -3
  172. package/persisters/persister-libsql/index.js +4 -3
  173. package/persisters/persister-libsql/with-schemas/index.js +4 -3
  174. package/persisters/persister-partykit-client/index.js +4 -3
  175. package/persisters/persister-partykit-client/with-schemas/index.js +4 -3
  176. package/persisters/persister-pglite/index.js +4 -3
  177. package/persisters/persister-pglite/with-schemas/index.js +4 -3
  178. package/persisters/persister-postgres/index.js +4 -3
  179. package/persisters/persister-postgres/with-schemas/index.js +4 -3
  180. package/persisters/persister-powersync/index.js +4 -3
  181. package/persisters/persister-powersync/with-schemas/index.js +4 -3
  182. package/persisters/persister-react-native-mmkv/index.js +4 -3
  183. package/persisters/persister-react-native-mmkv/with-schemas/index.js +4 -3
  184. package/persisters/persister-react-native-sqlite/index.js +4 -3
  185. package/persisters/persister-react-native-sqlite/with-schemas/index.js +4 -3
  186. package/persisters/persister-remote/index.js +4 -3
  187. package/persisters/persister-remote/with-schemas/index.js +4 -3
  188. package/persisters/persister-sqlite-bun/index.js +4 -3
  189. package/persisters/persister-sqlite-bun/with-schemas/index.js +4 -3
  190. package/persisters/persister-sqlite-wasm/index.js +4 -3
  191. package/persisters/persister-sqlite-wasm/with-schemas/index.js +4 -3
  192. package/persisters/persister-sqlite3/index.js +4 -3
  193. package/persisters/persister-sqlite3/with-schemas/index.js +4 -3
  194. package/persisters/persister-yjs/index.js +4 -3
  195. package/persisters/persister-yjs/with-schemas/index.js +4 -3
  196. package/persisters/with-schemas/index.js +4 -3
  197. package/readme.md +3 -3
  198. package/releases.md +16 -1
  199. package/store/index.js +33 -2
  200. package/store/with-schemas/index.js +33 -2
  201. package/synchronizers/index.js +4 -3
  202. package/synchronizers/synchronizer-broadcast-channel/index.js +4 -3
  203. package/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +4 -3
  204. package/synchronizers/synchronizer-local/index.js +4 -3
  205. package/synchronizers/synchronizer-local/with-schemas/index.js +4 -3
  206. package/synchronizers/synchronizer-ws-client/index.js +4 -3
  207. package/synchronizers/synchronizer-ws-client/with-schemas/index.js +4 -3
  208. package/synchronizers/synchronizer-ws-server/index.js +7 -8
  209. package/synchronizers/synchronizer-ws-server/with-schemas/index.js +7 -8
  210. package/synchronizers/synchronizer-ws-server-durable-object/index.js +3 -3
  211. package/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +3 -3
  212. package/synchronizers/with-schemas/index.js +4 -3
  213. package/ui-react-inspector/index.js +36 -5
  214. package/ui-react-inspector/with-schemas/index.js +36 -5
  215. package/ui-solid-inspector/index.js +36 -5
  216. package/ui-solid-inspector/with-schemas/index.js +36 -5
  217. package/ui-svelte-inspector/index.js +36 -5
  218. package/ui-svelte-inspector/with-schemas/index.js +36 -5
  219. package/with-schemas/index.js +46 -6
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",r=(a,t,e)=>a.replace(t,e),o=Promise,c=a=>(t,e,n)=>a(t)?n?.():e(t),l=clearInterval,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=c(w),p=c(u),E=t=>a(t)==s,A=a=>Array.isArray(a),N=a=>a.length,m=()=>{},$=async a=>o.all(a),g=a=>{throw Error(a)},f=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},O=(a,t)=>a.forEach(t),S=(a,t="")=>a.join(t),D=(a,t)=>a.map(t),I=a=>0==N(a),T=(a,t)=>a.filter(t),_=(a,...t)=>a.push(...t),b=a=>a.shift(),h=(a,t)=>a?.has(t)??!1,C=a=>u(a)||0==(a=>a?.size??0)(a),L=a=>[...a?.values()??[]],R=(a,t)=>a?.forEach(t),P=(a,t)=>a?.delete(t),M="_",F="_id",U="SELECT",j="WHERE",x="TABLE",B="ALTER "+x,J="FROM",Y="DELETE "+J,k=U+"*"+J,z="pragma_",G="data_version",H="schema_version",q="pragma_table_",K="CREATE "+x,Q=a=>S(D(((a,t="",e)=>a.split(t,e))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),V=(a,t=[1])=>S(D(a,()=>"$"+t[0]++),n),W=(a,t=i)=>j+`(${r(t,"$tableName",Q(a))})`,X=Object,Z=a=>X.getPrototypeOf(a),aa=X.entries,ta=a=>!w(a)&&v(Z(a),a=>a==X.prototype||w(Z(a)),()=>!0),ea=X.keys,na=X.freeze,sa=(a=[])=>X.fromEntries(a),ia=(...a)=>X.assign({},...a),ra=(a,t)=>(delete a[t],a),oa=(a,t)=>D(aa(a),([a,e])=>t(e,a)),ca=(a,t)=>sa(oa(a,(a,e)=>[e,t(a,e)])),la=a=>N(ea(a)),wa=a=>ta(a)&&0==la(a),ua=Map,ya=a=>new ua(a),da=(a,t)=>a?.get(t),va=(a,t)=>D([...a?.entries()??[]],([a,e])=>t(e,a)),pa=(a,t,e)=>u(e)?(P(a,t),a):a?.set(t,e),Ea=(a,t,e,n)=>(h(a,t)?n?.(da(a,t)):pa(a,t,e()),da(a,t)),Aa=(a,t,e,n,s=0)=>p((e?Ea:da)(a,t[s],s>N(t)-2?e:ya),i=>{if(s>N(t)-2)return n?.(i)&&pa(a,t[s]),i;const r=Aa(i,t,e,n,s+1);return C(i)&&pa(a,t[s]),r}),Na=a=>new Set(A(a)||u(a)?a:[a]),ma=(a,t)=>a?.add(t),$a="ColumnName",ga="store",fa="json",Oa=ga+"TableName",Sa=ga+"Id"+$a,Da=ga+$a,Ia="autoLoadIntervalSeconds",Ta="rowId"+$a,_a="tableId",ba="tableName",ha="deleteEmptyColumns",Ca="deleteEmptyTable",La="condition",Ra={mode:fa,[Ia]:1},Pa={load:0,save:0,[ba]:t+"_values"},Ma=a=>A(a)?a:void 0,Fa=a=>d(a)||A(a),Ua=(a,t,e,n,s)=>{const i=ya();return ca(a,(a,r)=>{const o=(w=ia(t,E(a)?{[e]:a}:a),c=X.values(w),l=la(t),c.slice(0,l));var c,l,w;y(o[0])||n(r,o[0])||(s(r,o[0]),pa(i,r,o))}),i},ja=JSON.stringify,xa=JSON.parse,Ba=a=>""===a?void 0:A(a)?D(a,Ba):ta(a)?ca(a,Ba):a,Ja=/^\d+$/,Ya=ya(),ka=ya(),za=(a,t,n,s,i,r,o,c={},l=0,w=[])=>{let d,v,E,m=0,$=0,S=0;Ea(Ya,w,()=>0),Ea(ka,w,()=>[]);const D=ya(),[I,T,h,L,M]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!e),([[a],[t]])=>!wa(a)||!wa(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!wa(a)||!wa(t),t.setContent]:g("Store type not supported by this Persister"))(o,a,l),[F,U,j]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?b(a):null)??e+t++,t=>{Ja.test(t)&&N(a)<1e3&&_(a,t)}]})(),s=ya();return[(n,i,r,o=[],c=()=>[])=>{a??=W;const l=t(1);return pa(s,l,[n,i,r,o,c]),ma(Aa(i,r??[e],Na),l),l},(t,n,...i)=>O(((a,t=[e])=>{const n=[],s=(a,e)=>e==N(t)?_(n,a):y(t[e])?R(a,a=>s(a,e+1)):O([t[e],null],t=>s(da(a,t),e+1));return s(a,0),n})(t,n),t=>R(t,t=>da(s,t)[0](a,...n??[],...i))),a=>p(da(s,a),([,t,i])=>(Aa(t,i??[e],void 0,t=>(P(t,a),C(t)?1:0)),pa(s,a),n(a),i)),t=>p(da(s,t),([t,,e=[],n,s])=>{const i=(...r)=>{const o=N(r);o==N(e)?t(a,...r,...s(r)):y(e[o])?O(n[o]?.(...r)??[],a=>i(...r,a)):i(...r,e[o])};i()})]})(),x=a=>{a!=m&&(m=a,U(D,void 0,m))},B=t=>{(I&&A(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},J=async()=>{K()&&a.__?.[0]?.()&&await G()},Y=async a=>(2!=m&&(x(1),$++,await V(async()=>{await f(async()=>{const e=await t();A(e)?B(e):a?M(a):g("Content is not an array: "+e)},()=>{a&&M(a)}),x(0),await J()})),W),k=async a=>(z(),await Y(a),await f(async()=>v=await s(async(a,t)=>{t||a?2!=m&&(x(1),$++,B(t??a),x(0),await J()):await Y()}),r),W),z=async()=>(v&&(await f(()=>i(v),r),v=void 0),W),G=async a=>(1!=m&&(x(2),S++,await V(async()=>{await f(()=>n(T,a),r),x(0)})),W),H=async()=>(q(),await G(),E=a.addDidFinishTransactionListener(()=>{const a=h();L(a)&&G(a)}),W),q=async()=>(E&&(a.delListener(E),E=void 0),W),K=()=>!u(E),Q=async(a=!1)=>{const[t,e]=a?[q,z]:[z,q];return await t(),await e(),W},V=async(...a)=>(_(da(ka,w),...a),await(async()=>{if(!da(Ya,w)){for(pa(Ya,w,1);!u(d=b(da(ka,w)));)await f(d,r);pa(Ya,w,0)}})(),W),W={load:Y,startAutoLoad:k,stopAutoLoad:z,isAutoLoading:()=>!u(v),save:G,startAutoSave:H,stopAutoSave:q,isAutoSaving:K,startAutoPersisting:async(a,t=!1)=>{const[e,n]=t?[H,k]:[k,H];return await e(a),await n(a),W},stopAutoPersisting:Q,getStatus:()=>m,addStatusListener:a=>F(a,D),delListener:t=>(j(t),a),schedule:V,getStore:()=>a,destroy:()=>(da(ka,w).splice(0,void 0),Q()),getStats:()=>({loads:$,saves:S}),...c};return na(W)},Ga=(a,t,e,s,r,o=Ha,c,l)=>{const w=ya();return[async()=>{w.clear(),D(await e(a,t),({tn:a,cn:t})=>ma(Ea(w,a,Na),t))},async(t,e,n,s)=>{const i=u(s)?void 0:Na(s);return((a,t)=>h(da(w,a),t))(t,e)?sa(T(D(await a(k+Q(t)+W(t,n)),a=>{const t=a[e],n=l?ca(ra(a,e),l):ra(a,e);return[t,u(i)?n:sa(T(oa(n,(a,t)=>[t,a]),([a])=>(a=>u(i)||h(i,a))(a)))]}),a=>!u(a[0])&&!wa(a[1]))):{}},async(t,e,s,l,y,d=!1,v=i,p)=>{const E=u(p)?void 0:Na(p),A=a=>u(E)||h(E,a),N=Na();ca(s??{},a=>D(T(ea(a??{}),A),a=>ma(N,a)));const m=L(N);if(u(E)&&!d&&y&&v==i&&I(m)&&h(w,t))return await a("DROP "+x+Q(t)),void pa(w,t);const g=da(w,t),f=Na(T(L(g),a=>a==e||A(a)));if(I(m)||(h(w,t)?await $(D([e,...m],async(n,s)=>{P(f,n)||(await a(B+Q(t)+"ADD"+Q(n)+r),0==s&&await a("CREATE UNIQUE INDEX pk ON "+Q(t)+`(${Q(e)})`),ma(g,n))})):(await a(K+Q(t)+`(${Q(e)}${r} PRIMARY KEY${S(D(m,a=>n+Q(a)+r))});`),pa(w,t,Na([e,...m])))),await $([...!d&&l?D(L(f),async n=>{n!=e&&(await a(B+Q(t)+"DROP"+Q(n)),P(g,n))}):[]]),d)u(s)?u(E)&&await a(Y+Q(t)+W(t,v)):await $(oa(s,async(n,s)=>{if(u(n))await a(Y+Q(t)+W(t,v)+`AND(${Q(e)}=$1)`,[s]);else if(!I(m)){const i=T(ea(n),A);I(i)||await o(a,t,e,i,{[s]:D(i,a=>c?c(n[a]):n[a])},g)}}));else if(I(m))u(E)&&h(w,t)&&await a(Y+Q(t)+W(t,v));else{const n=T(L(da(w,t)),a=>a!=e&&A(a)),i={},r=[];ca(s??{},(a,t)=>{i[t]=D(n,t=>c?c(a?.[t]):a?.[t]),_(r,t)}),await o(a,t,e,n,i,g),await a(Y+Q(t)+W(t,v)+`AND${Q(e)}NOT IN(${V(r)})`,r)}},async t=>{let e;return await a("BEGIN"),await f(async()=>e=await t(),s),await a("END"),e}]},Ha=async(a,t,e,s,i)=>{const r=[1];await a("INSERT INTO"+Q(t)+"("+((...a)=>S(D(a,Q),n))(e,...s)+")VALUES"+S(oa(i,a=>"($"+r[0]+++","+V(a,r)+")"),n)+"ON CONFLICT("+Q(e)+")DO UPDATE SET"+S(D(s,a=>Q(a)+"=excluded."+Q(a)),n),oa(i,(a,t)=>[t,...D(a,a=>a??null)]).flat())},qa=(a,t,e,n,s,i,r,[o,c,l],w,y,d,v,p,E)=>{const[A,N,m,$]=Ga(t,w,y,s,p,E),g=za(a,()=>$(async()=>{return await A(),a=(await N(o,c))[M]?.[l]??"null",Ba(xa(a));var a}),a=>$(async()=>{var t;await A(),await m(o,c,{[M]:{[l]:(t=a()??null,ja(t,(a,t)=>u(t)?"":t))}},!0,!0)}),e,n,s,r,{[v]:()=>d,destroy:async()=>(await g.stopAutoPersisting(),i(),g)},0,d);return g},Ka=(a,t,e,n,s,i,r,[o,c,[l,w,y,d,v]],p,E,A,N,m,g,f,O)=>{const[S,I,_,b]=Ga(t,p,E,s,m,g,f,O),h=(a,t)=>$(va(c,async([e,n,s,i,r],o)=>{t&&!(o in a)||await _(e,n,a[o],s,i,t,r)})),C=(a,t,e)=>sa(1==e?T(oa(a,(a,t)=>[t,a]),([a])=>{return e=a,t.includes(e);var e}):T(D(t,t=>[t,a[t]]),([,a])=>!u(a))),L=async(a,t)=>w?await _(y,F,{[M]:u(v)?a:C(a,v,t)},!0,!0,t,void 0,v):null,R=za(a,()=>b(async()=>{await S();const a=await(async()=>sa(T(await $(va(o,async([a,t,e],n)=>[a,await I(n,t,e)])),a=>!wa(a[1]))))(),t=await(async()=>l?(await I(y,F,void 0,d))[M]:{})();return wa(a)&&u(t)?void 0:[a,t]}),(a,t)=>b(async()=>{if(await S(),u(t)){const[t,e]=a();await h(t),await L(e)}else await h(t[0],!0),await L(t[1],!0)}),e,n,s,r,{[N]:()=>A,destroy:async()=>(await R.stopAutoPersisting(),i(),R)},0,A);return R},Qa=(a,n,s,r,o,c,u,y,v,p,A="getDb",N)=>{let m,$,g;const O=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(s,c),[S,D,I,T]=(a=>{const e=(a=>ia(Ra,E(a)?{[Oa]:a}:a??{}))(a),n=e[Ia];if(e.mode==fa){const a=e[Oa]??t;return[1,n,[a,e[Sa]??F,e[Da]??ga],Na(a)]}const{tables:{load:s={},save:r={}}={},values:o={}}=e,c=ia(Pa,o),{load:l,save:w}=c,u=[Fa(l),Fa(w),c[ba],Ma(l),Ma(w)],y=u[2],d=Na(y),v=Na(y),p=Ua(s,{[_a]:null,[Ta]:F,[La]:i},_a,a=>h(v,a),a=>ma(d,a)),A=Ua(r,{[ba]:null,[Ta]:F,[ha]:0,[Ca]:0,[La]:null},ba,(a,t)=>h(v,t),(a,t)=>ma(d,t));var N;return N=(a,t)=>t[4]??=da(p,t[0])?.[2]??i,R(A,(a,t)=>N(0,a)),[0,n,[p,A,u],d]})(n);return(S?qa:Ka)(a,O,a=>{let t;return t=setInterval(()=>f(async()=>{const[{d:t,s:e,c:n}]=await O(U+` ${G} d,${H} s,TOTAL_CHANGES() c FROM ${z}${G} JOIN ${z}${H}`);t==m&&e==$&&n==g||(w(m)||a(),m=t,$=e,g=n)}),1e3*D),()=>{m=$=g=null,l(t)}},a=>a(),u,y,v,I,L(T),async(a,t)=>await a(U+` t.name tn,c.name cn FROM ${q}list()t,${q}info(t.name)c ${j} t.schema='main'AND t.type IN('table','view')AND t.name IN(${V(t)})ORDER BY t.name,c.name`,t),p,A,e,N,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0)},Va=(a,t,e,n,s)=>Qa(a,e,async(a,e=[])=>(await t.executeSql(a,e))[0].rows.raw(),0,0,n,s,m,3,t);export{Va as createReactNativeSqlitePersister};
1
+ const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",r=(a,t,e)=>a.replace(t,e),o=Promise,c=a=>(t,e,n)=>a(t)?n?.():e(t),l=clearInterval,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=c(w),p=c(u),E=t=>a(t)==s,A=a=>Array.isArray(a),N=a=>a.length,m=()=>{},$=async a=>o.all(a),g=a=>{throw Error(a)},f=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},O=(a,t)=>a.forEach(t),S=(a,t="")=>a.join(t),D=(a,t)=>a.map(t),I=a=>0==N(a),T=(a,t)=>a.filter(t),_=(a,...t)=>a.push(...t),b=a=>a.shift(),h=(a,t)=>a?.has(t)??!1,C=a=>u(a)||0==(a=>a?.size??0)(a),L=a=>[...a?.values()??[]],R=(a,t)=>a?.forEach(t),P=(a,t)=>a?.delete(t),M="_",F="_id",U="SELECT",j="WHERE",x="TABLE",B="ALTER "+x,J="FROM",Y="DELETE "+J,k=U+"*"+J,z="pragma_",G="data_version",H="schema_version",q="pragma_table_",K="CREATE "+x,Q=a=>S(D(((a,t="",e)=>a.split(t,e))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),V=(a,t=[1])=>S(D(a,()=>"$"+t[0]++),n),W=(a,t=i)=>j+`(${r(t,"$tableName",Q(a))})`,X=Object,Z=a=>X.getPrototypeOf(a),aa=X.entries,ta=a=>!w(a)&&v(Z(a),a=>a==X.prototype||w(Z(a)),()=>!0),ea=X.keys,na=X.freeze,sa=(a=[])=>X.fromEntries(a),ia=(...a)=>X.assign({},...a),ra=(a,t)=>(delete a[t],a),oa=(a,t)=>D(aa(a),([a,e])=>t(e,a)),ca=(a,t)=>sa(oa(a,(a,e)=>[e,t(a,e)])),la=a=>N(ea(a)),wa=a=>ta(a)&&0==la(a),ua=Map,ya=a=>new ua(a),da=(a,t)=>a?.get(t),va=(a,t)=>D([...a?.entries()??[]],([a,e])=>t(e,a)),pa=(a,t,e)=>u(e)?(P(a,t),a):a?.set(t,e),Ea=(a,t,e,n)=>(h(a,t)?n?.(da(a,t)):pa(a,t,e()),da(a,t)),Aa=(a,t,e,n,s=0)=>p((e?Ea:da)(a,t[s],s>N(t)-2?e:ya),i=>{if(s>N(t)-2)return n?.(i)&&pa(a,t[s]),i;const r=Aa(i,t,e,n,s+1);return C(i)&&pa(a,t[s]),r}),Na=a=>new Set(A(a)||u(a)?a:[a]),ma=(a,t)=>a?.add(t),$a="ColumnName",ga="store",fa="json",Oa=ga+"TableName",Sa=ga+"Id"+$a,Da=ga+$a,Ia="autoLoadIntervalSeconds",Ta="rowId"+$a,_a="tableId",ba="tableName",ha="deleteEmptyColumns",Ca="deleteEmptyTable",La="condition",Ra={mode:fa,[Ia]:1},Pa={load:0,save:0,[ba]:t+"_values"},Ma=a=>A(a)?a:void 0,Fa=a=>d(a)||A(a),Ua=(a,t,e,n,s)=>{const i=ya();return ca(a,(a,r)=>{const o=(w=ia(t,E(a)?{[e]:a}:a),c=X.values(w),l=la(t),c.slice(0,l));var c,l,w;y(o[0])||n(r,o[0])||(s(r,o[0]),pa(i,r,o))}),i},ja=JSON.stringify,xa=JSON.parse,Ba=a=>""===a?void 0:A(a)?D(a,Ba):ta(a)?ca(a,Ba):a,Ja=/^\d+$/,Ya=ya(),ka=ya(),za=(a,t,n,s,i,r,o,c={},l=0,w=[])=>{let d,v,E,m=0,$=0,S=0;Ea(Ya,w,()=>0),Ea(ka,w,()=>[]);const D=ya(),[I,T,h,L,M]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!e),([[a],[t]])=>!wa(a)||!wa(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!wa(a)||!wa(t),t.setContent]:g("Store type not supported by this Persister"))(o,a,l),[F,U,j]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?b(a):null)??e+t++,t=>{Ja.test(t)&&N(a)<1e3&&_(a,t)}]})(),s=ya();return[(n,i,r,o=[],c=()=>[])=>{a??=W;const l=t(1);return pa(s,l,[n,i,r,o,c]),ma(Aa(i,r??[e],Na),l),l},(t,n,...i)=>O(((a,t=[e])=>{const n=[],s=(a,e)=>e==N(t)?_(n,a):y(t[e])?R(a,a=>s(a,e+1)):O([t[e],null],t=>s(da(a,t),e+1));return s(a,0),n})(t,n),t=>R(t,t=>da(s,t)[0](a,...n??[],...i))),a=>p(da(s,a),([,t,i])=>(Aa(t,i??[e],void 0,t=>(P(t,a),C(t)?1:0)),pa(s,a),n(a),i)),t=>p(da(s,t),([t,,e=[],n,s])=>{const i=(...r)=>{const o=N(r);o==N(e)?t(a,...r,...s(r)):y(e[o])?O(n[o]?.(...r)??[],a=>i(...r,a)):i(...r,e[o])};i()})]})(),x=a=>{a!=m&&(m=a,U(D,void 0,m))},B=t=>{(I&&A(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},J=async()=>{K()&&a.__?.[0]?.()&&await G()},Y=async a=>(2!=m&&(x(1),$++,await V(async()=>{await f(async()=>{const e=await t();A(e)?B(e):u(e)&&a?M(a):u(e)||g("Content is not an array: "+e)},t=>{r?.(t),a&&M(a)}),x(0),await J()})),W),k=async a=>(z(),await Y(a),await f(async()=>v=await s(async(a,t)=>{t||a?2!=m&&(x(1),$++,B(t??a),x(0),await J()):await Y()}),r),W),z=async()=>(v&&(await f(()=>i(v),r),v=void 0),W),G=async a=>(1!=m&&(x(2),S++,await V(async()=>{await f(()=>n(T,a),r),x(0)})),W),H=async()=>(q(),await G(),E=a.addDidFinishTransactionListener(()=>{const a=h();L(a)&&G(a)}),W),q=async()=>(E&&(a.delListener(E),E=void 0),W),K=()=>!u(E),Q=async(a=!1)=>{const[t,e]=a?[q,z]:[z,q];return await t(),await e(),W},V=async(...a)=>(_(da(ka,w),...a),await(async()=>{if(!da(Ya,w)){for(pa(Ya,w,1);!u(d=b(da(ka,w)));)await f(d,r);pa(Ya,w,0)}})(),W),W={load:Y,startAutoLoad:k,stopAutoLoad:z,isAutoLoading:()=>!u(v),save:G,startAutoSave:H,stopAutoSave:q,isAutoSaving:K,startAutoPersisting:async(a,t=!1)=>{const[e,n]=t?[H,k]:[k,H];return await e(a),await n(a),W},stopAutoPersisting:Q,getStatus:()=>m,addStatusListener:a=>F(a,D),delListener:t=>(j(t),a),schedule:V,getStore:()=>a,destroy:()=>(da(ka,w).splice(0,void 0),Q()),getStats:()=>({loads:$,saves:S}),...c};return na(W)},Ga=(a,t,e,s,r,o=Ha,c,l)=>{const w=ya();return[async()=>{w.clear(),D(await e(a,t),({tn:a,cn:t})=>ma(Ea(w,a,Na),t))},async(t,e,n,s)=>{const i=u(s)?void 0:Na(s);return((a,t)=>h(da(w,a),t))(t,e)?sa(T(D(await a(k+Q(t)+W(t,n)),a=>{const t=a[e],n=l?ca(ra(a,e),l):ra(a,e);return[t,u(i)?n:sa(T(oa(n,(a,t)=>[t,a]),([a])=>(a=>u(i)||h(i,a))(a)))]}),a=>!u(a[0])&&!wa(a[1]))):{}},async(t,e,s,l,y,d=!1,v=i,p)=>{const E=u(p)?void 0:Na(p),A=a=>u(E)||h(E,a),N=Na();ca(s??{},a=>D(T(ea(a??{}),A),a=>ma(N,a)));const m=L(N);if(u(E)&&!d&&y&&v==i&&I(m)&&h(w,t))return await a("DROP "+x+Q(t)),void pa(w,t);const g=da(w,t),f=Na(T(L(g),a=>a==e||A(a)));if(I(m)||(h(w,t)?await $(D([e,...m],async(n,s)=>{P(f,n)||(await a(B+Q(t)+"ADD"+Q(n)+r),0==s&&await a("CREATE UNIQUE INDEX pk ON "+Q(t)+`(${Q(e)})`),ma(g,n))})):(await a(K+Q(t)+`(${Q(e)}${r} PRIMARY KEY${S(D(m,a=>n+Q(a)+r))});`),pa(w,t,Na([e,...m])))),await $([...!d&&l?D(L(f),async n=>{n!=e&&(await a(B+Q(t)+"DROP"+Q(n)),P(g,n))}):[]]),d)u(s)?u(E)&&await a(Y+Q(t)+W(t,v)):await $(oa(s,async(n,s)=>{if(u(n))await a(Y+Q(t)+W(t,v)+`AND(${Q(e)}=$1)`,[s]);else if(!I(m)){const i=T(ea(n),A);I(i)||await o(a,t,e,i,{[s]:D(i,a=>c?c(n[a]):n[a])},g)}}));else if(I(m))u(E)&&h(w,t)&&await a(Y+Q(t)+W(t,v));else{const n=T(L(da(w,t)),a=>a!=e&&A(a)),i={},r=[];ca(s??{},(a,t)=>{i[t]=D(n,t=>c?c(a?.[t]):a?.[t]),_(r,t)}),await o(a,t,e,n,i,g),await a(Y+Q(t)+W(t,v)+`AND${Q(e)}NOT IN(${V(r)})`,r)}},async t=>{let e;return await a("BEGIN"),await f(async()=>e=await t(),s),await a("END"),e}]},Ha=async(a,t,e,s,i)=>{const r=[1];await a("INSERT INTO"+Q(t)+"("+((...a)=>S(D(a,Q),n))(e,...s)+")VALUES"+S(oa(i,a=>"($"+r[0]+++","+V(a,r)+")"),n)+"ON CONFLICT("+Q(e)+")DO UPDATE SET"+S(D(s,a=>Q(a)+"=excluded."+Q(a)),n),oa(i,(a,t)=>[t,...D(a,a=>a??null)]).flat())},qa=(a,t,e,n,s,i,r,[o,c,l],w,y,d,v,p,E)=>{const[A,N,m,$]=Ga(t,w,y,s,p,E),g=za(a,()=>$(async()=>{return await A(),a=(await N(o,c))[M]?.[l]??"null",Ba(xa(a));var a}),a=>$(async()=>{var t;await A(),await m(o,c,{[M]:{[l]:(t=a()??null,ja(t,(a,t)=>u(t)?"":t))}},!0,!0)}),e,n,s,r,{[v]:()=>d,destroy:async()=>(await g.stopAutoPersisting(),i(),g)},0,d);return g},Ka=(a,t,e,n,s,i,r,[o,c,[l,w,y,d,v]],p,E,A,N,m,g,f,O)=>{const[S,I,_,b]=Ga(t,p,E,s,m,g,f,O),h=(a,t)=>$(va(c,async([e,n,s,i,r],o)=>{t&&!(o in a)||await _(e,n,a[o],s,i,t,r)})),C=(a,t,e)=>sa(1==e?T(oa(a,(a,t)=>[t,a]),([a])=>{return e=a,t.includes(e);var e}):T(D(t,t=>[t,a[t]]),([,a])=>!u(a))),L=async(a,t)=>w?await _(y,F,{[M]:u(v)?a:C(a,v,t)},!0,!0,t,void 0,v):null,R=za(a,()=>b(async()=>{await S();const a=await(async()=>sa(T(await $(va(o,async([a,t,e],n)=>[a,await I(n,t,e)])),a=>!wa(a[1]))))(),t=await(async()=>l?(await I(y,F,void 0,d))[M]:{})();return wa(a)&&u(t)?void 0:[a,t]}),(a,t)=>b(async()=>{if(await S(),u(t)){const[t,e]=a();await h(t),await L(e)}else await h(t[0],!0),await L(t[1],!0)}),e,n,s,r,{[N]:()=>A,destroy:async()=>(await R.stopAutoPersisting(),i(),R)},0,A);return R},Qa=(a,n,s,r,o,c,u,y,v,p,A="getDb",N)=>{let m,$,g;const O=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(s,c),[S,D,I,T]=(a=>{const e=(a=>ia(Ra,E(a)?{[Oa]:a}:a??{}))(a),n=e[Ia];if(e.mode==fa){const a=e[Oa]??t;return[1,n,[a,e[Sa]??F,e[Da]??ga],Na(a)]}const{tables:{load:s={},save:r={}}={},values:o={}}=e,c=ia(Pa,o),{load:l,save:w}=c,u=[Fa(l),Fa(w),c[ba],Ma(l),Ma(w)],y=u[2],d=Na(y),v=Na(y),p=Ua(s,{[_a]:null,[Ta]:F,[La]:i},_a,a=>h(v,a),a=>ma(d,a)),A=Ua(r,{[ba]:null,[Ta]:F,[ha]:0,[Ca]:0,[La]:null},ba,(a,t)=>h(v,t),(a,t)=>ma(d,t));var N;return N=(a,t)=>t[4]??=da(p,t[0])?.[2]??i,R(A,(a,t)=>N(0,a)),[0,n,[p,A,u],d]})(n);return(S?qa:Ka)(a,O,a=>{let t;return t=setInterval(()=>f(async()=>{const[{d:t,s:e,c:n}]=await O(U+` ${G} d,${H} s,TOTAL_CHANGES() c FROM ${z}${G} JOIN ${z}${H}`);t==m&&e==$&&n==g||(w(m)||a(),m=t,$=e,g=n)}),1e3*D),()=>{m=$=g=null,l(t)}},a=>a(),u,y,v,I,L(T),async(a,t)=>await a(U+` t.name tn,c.name cn FROM ${q}list()t,${q}info(t.name)c ${j} t.schema='main'AND t.type IN('table','view')AND t.name IN(${V(t)})ORDER BY t.name,c.name`,t),p,A,e,N,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0)},Va=(a,t,e,n,s)=>Qa(a,e,async(a,e=[])=>(await t.executeSql(a,e))[0].rows.raw(),0,0,n,s,m,3,t);export{Va as createReactNativeSqlitePersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",r=(a,t,e)=>a.replace(t,e),o=Promise,c=a=>(t,e,n)=>a(t)?n?.():e(t),l=clearInterval,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=c(w),p=c(u),E=t=>a(t)==s,A=a=>Array.isArray(a),N=a=>a.length,m=()=>{},$=async a=>o.all(a),g=a=>{throw Error(a)},f=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},O=(a,t)=>a.forEach(t),S=(a,t="")=>a.join(t),D=(a,t)=>a.map(t),I=a=>0==N(a),T=(a,t)=>a.filter(t),_=(a,...t)=>a.push(...t),b=a=>a.shift(),h=(a,t)=>a?.has(t)??!1,C=a=>u(a)||0==(a=>a?.size??0)(a),L=a=>[...a?.values()??[]],R=(a,t)=>a?.forEach(t),P=(a,t)=>a?.delete(t),M="_",F="_id",U="SELECT",j="WHERE",x="TABLE",B="ALTER "+x,J="FROM",Y="DELETE "+J,k=U+"*"+J,z="pragma_",G="data_version",H="schema_version",q="pragma_table_",K="CREATE "+x,Q=a=>S(D(((a,t="",e)=>a.split(t,e))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),V=(a,t=[1])=>S(D(a,()=>"$"+t[0]++),n),W=(a,t=i)=>j+`(${r(t,"$tableName",Q(a))})`,X=Object,Z=a=>X.getPrototypeOf(a),aa=X.entries,ta=a=>!w(a)&&v(Z(a),a=>a==X.prototype||w(Z(a)),()=>!0),ea=X.keys,na=X.freeze,sa=(a=[])=>X.fromEntries(a),ia=(...a)=>X.assign({},...a),ra=(a,t)=>(delete a[t],a),oa=(a,t)=>D(aa(a),([a,e])=>t(e,a)),ca=(a,t)=>sa(oa(a,(a,e)=>[e,t(a,e)])),la=a=>N(ea(a)),wa=a=>ta(a)&&0==la(a),ua=Map,ya=a=>new ua(a),da=(a,t)=>a?.get(t),va=(a,t)=>D([...a?.entries()??[]],([a,e])=>t(e,a)),pa=(a,t,e)=>u(e)?(P(a,t),a):a?.set(t,e),Ea=(a,t,e,n)=>(h(a,t)?n?.(da(a,t)):pa(a,t,e()),da(a,t)),Aa=(a,t,e,n,s=0)=>p((e?Ea:da)(a,t[s],s>N(t)-2?e:ya),i=>{if(s>N(t)-2)return n?.(i)&&pa(a,t[s]),i;const r=Aa(i,t,e,n,s+1);return C(i)&&pa(a,t[s]),r}),Na=a=>new Set(A(a)||u(a)?a:[a]),ma=(a,t)=>a?.add(t),$a="ColumnName",ga="store",fa="json",Oa=ga+"TableName",Sa=ga+"Id"+$a,Da=ga+$a,Ia="autoLoadIntervalSeconds",Ta="rowId"+$a,_a="tableId",ba="tableName",ha="deleteEmptyColumns",Ca="deleteEmptyTable",La="condition",Ra={mode:fa,[Ia]:1},Pa={load:0,save:0,[ba]:t+"_values"},Ma=a=>A(a)?a:void 0,Fa=a=>d(a)||A(a),Ua=(a,t,e,n,s)=>{const i=ya();return ca(a,(a,r)=>{const o=(w=ia(t,E(a)?{[e]:a}:a),c=X.values(w),l=la(t),c.slice(0,l));var c,l,w;y(o[0])||n(r,o[0])||(s(r,o[0]),pa(i,r,o))}),i},ja=JSON.stringify,xa=JSON.parse,Ba=a=>""===a?void 0:A(a)?D(a,Ba):ta(a)?ca(a,Ba):a,Ja=/^\d+$/,Ya=ya(),ka=ya(),za=(a,t,n,s,i,r,o,c={},l=0,w=[])=>{let d,v,E,m=0,$=0,S=0;Ea(Ya,w,()=>0),Ea(ka,w,()=>[]);const D=ya(),[I,T,h,L,M]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!e),([[a],[t]])=>!wa(a)||!wa(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!wa(a)||!wa(t),t.setContent]:g("Store type not supported by this Persister"))(o,a,l),[F,U,j]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?b(a):null)??e+t++,t=>{Ja.test(t)&&N(a)<1e3&&_(a,t)}]})(),s=ya();return[(n,i,r,o=[],c=()=>[])=>{a??=W;const l=t(1);return pa(s,l,[n,i,r,o,c]),ma(Aa(i,r??[e],Na),l),l},(t,n,...i)=>O(((a,t=[e])=>{const n=[],s=(a,e)=>e==N(t)?_(n,a):y(t[e])?R(a,a=>s(a,e+1)):O([t[e],null],t=>s(da(a,t),e+1));return s(a,0),n})(t,n),t=>R(t,t=>da(s,t)[0](a,...n??[],...i))),a=>p(da(s,a),([,t,i])=>(Aa(t,i??[e],void 0,t=>(P(t,a),C(t)?1:0)),pa(s,a),n(a),i)),t=>p(da(s,t),([t,,e=[],n,s])=>{const i=(...r)=>{const o=N(r);o==N(e)?t(a,...r,...s(r)):y(e[o])?O(n[o]?.(...r)??[],a=>i(...r,a)):i(...r,e[o])};i()})]})(),x=a=>{a!=m&&(m=a,U(D,void 0,m))},B=t=>{(I&&A(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},J=async()=>{K()&&a.__?.[0]?.()&&await G()},Y=async a=>(2!=m&&(x(1),$++,await V(async()=>{await f(async()=>{const e=await t();A(e)?B(e):a?M(a):g("Content is not an array: "+e)},()=>{a&&M(a)}),x(0),await J()})),W),k=async a=>(z(),await Y(a),await f(async()=>v=await s(async(a,t)=>{t||a?2!=m&&(x(1),$++,B(t??a),x(0),await J()):await Y()}),r),W),z=async()=>(v&&(await f(()=>i(v),r),v=void 0),W),G=async a=>(1!=m&&(x(2),S++,await V(async()=>{await f(()=>n(T,a),r),x(0)})),W),H=async()=>(q(),await G(),E=a.addDidFinishTransactionListener(()=>{const a=h();L(a)&&G(a)}),W),q=async()=>(E&&(a.delListener(E),E=void 0),W),K=()=>!u(E),Q=async(a=!1)=>{const[t,e]=a?[q,z]:[z,q];return await t(),await e(),W},V=async(...a)=>(_(da(ka,w),...a),await(async()=>{if(!da(Ya,w)){for(pa(Ya,w,1);!u(d=b(da(ka,w)));)await f(d,r);pa(Ya,w,0)}})(),W),W={load:Y,startAutoLoad:k,stopAutoLoad:z,isAutoLoading:()=>!u(v),save:G,startAutoSave:H,stopAutoSave:q,isAutoSaving:K,startAutoPersisting:async(a,t=!1)=>{const[e,n]=t?[H,k]:[k,H];return await e(a),await n(a),W},stopAutoPersisting:Q,getStatus:()=>m,addStatusListener:a=>F(a,D),delListener:t=>(j(t),a),schedule:V,getStore:()=>a,destroy:()=>(da(ka,w).splice(0,void 0),Q()),getStats:()=>({loads:$,saves:S}),...c};return na(W)},Ga=(a,t,e,s,r,o=Ha,c,l)=>{const w=ya();return[async()=>{w.clear(),D(await e(a,t),({tn:a,cn:t})=>ma(Ea(w,a,Na),t))},async(t,e,n,s)=>{const i=u(s)?void 0:Na(s);return((a,t)=>h(da(w,a),t))(t,e)?sa(T(D(await a(k+Q(t)+W(t,n)),a=>{const t=a[e],n=l?ca(ra(a,e),l):ra(a,e);return[t,u(i)?n:sa(T(oa(n,(a,t)=>[t,a]),([a])=>(a=>u(i)||h(i,a))(a)))]}),a=>!u(a[0])&&!wa(a[1]))):{}},async(t,e,s,l,y,d=!1,v=i,p)=>{const E=u(p)?void 0:Na(p),A=a=>u(E)||h(E,a),N=Na();ca(s??{},a=>D(T(ea(a??{}),A),a=>ma(N,a)));const m=L(N);if(u(E)&&!d&&y&&v==i&&I(m)&&h(w,t))return await a("DROP "+x+Q(t)),void pa(w,t);const g=da(w,t),f=Na(T(L(g),a=>a==e||A(a)));if(I(m)||(h(w,t)?await $(D([e,...m],async(n,s)=>{P(f,n)||(await a(B+Q(t)+"ADD"+Q(n)+r),0==s&&await a("CREATE UNIQUE INDEX pk ON "+Q(t)+`(${Q(e)})`),ma(g,n))})):(await a(K+Q(t)+`(${Q(e)}${r} PRIMARY KEY${S(D(m,a=>n+Q(a)+r))});`),pa(w,t,Na([e,...m])))),await $([...!d&&l?D(L(f),async n=>{n!=e&&(await a(B+Q(t)+"DROP"+Q(n)),P(g,n))}):[]]),d)u(s)?u(E)&&await a(Y+Q(t)+W(t,v)):await $(oa(s,async(n,s)=>{if(u(n))await a(Y+Q(t)+W(t,v)+`AND(${Q(e)}=$1)`,[s]);else if(!I(m)){const i=T(ea(n),A);I(i)||await o(a,t,e,i,{[s]:D(i,a=>c?c(n[a]):n[a])},g)}}));else if(I(m))u(E)&&h(w,t)&&await a(Y+Q(t)+W(t,v));else{const n=T(L(da(w,t)),a=>a!=e&&A(a)),i={},r=[];ca(s??{},(a,t)=>{i[t]=D(n,t=>c?c(a?.[t]):a?.[t]),_(r,t)}),await o(a,t,e,n,i,g),await a(Y+Q(t)+W(t,v)+`AND${Q(e)}NOT IN(${V(r)})`,r)}},async t=>{let e;return await a("BEGIN"),await f(async()=>e=await t(),s),await a("END"),e}]},Ha=async(a,t,e,s,i)=>{const r=[1];await a("INSERT INTO"+Q(t)+"("+((...a)=>S(D(a,Q),n))(e,...s)+")VALUES"+S(oa(i,a=>"($"+r[0]+++","+V(a,r)+")"),n)+"ON CONFLICT("+Q(e)+")DO UPDATE SET"+S(D(s,a=>Q(a)+"=excluded."+Q(a)),n),oa(i,(a,t)=>[t,...D(a,a=>a??null)]).flat())},qa=(a,t,e,n,s,i,r,[o,c,l],w,y,d,v,p,E)=>{const[A,N,m,$]=Ga(t,w,y,s,p,E),g=za(a,()=>$(async()=>{return await A(),a=(await N(o,c))[M]?.[l]??"null",Ba(xa(a));var a}),a=>$(async()=>{var t;await A(),await m(o,c,{[M]:{[l]:(t=a()??null,ja(t,(a,t)=>u(t)?"":t))}},!0,!0)}),e,n,s,r,{[v]:()=>d,destroy:async()=>(await g.stopAutoPersisting(),i(),g)},0,d);return g},Ka=(a,t,e,n,s,i,r,[o,c,[l,w,y,d,v]],p,E,A,N,m,g,f,O)=>{const[S,I,_,b]=Ga(t,p,E,s,m,g,f,O),h=(a,t)=>$(va(c,async([e,n,s,i,r],o)=>{t&&!(o in a)||await _(e,n,a[o],s,i,t,r)})),C=(a,t,e)=>sa(1==e?T(oa(a,(a,t)=>[t,a]),([a])=>{return e=a,t.includes(e);var e}):T(D(t,t=>[t,a[t]]),([,a])=>!u(a))),L=async(a,t)=>w?await _(y,F,{[M]:u(v)?a:C(a,v,t)},!0,!0,t,void 0,v):null,R=za(a,()=>b(async()=>{await S();const a=await(async()=>sa(T(await $(va(o,async([a,t,e],n)=>[a,await I(n,t,e)])),a=>!wa(a[1]))))(),t=await(async()=>l?(await I(y,F,void 0,d))[M]:{})();return wa(a)&&u(t)?void 0:[a,t]}),(a,t)=>b(async()=>{if(await S(),u(t)){const[t,e]=a();await h(t),await L(e)}else await h(t[0],!0),await L(t[1],!0)}),e,n,s,r,{[N]:()=>A,destroy:async()=>(await R.stopAutoPersisting(),i(),R)},0,A);return R},Qa=(a,n,s,r,o,c,u,y,v,p,A="getDb",N)=>{let m,$,g;const O=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(s,c),[S,D,I,T]=(a=>{const e=(a=>ia(Ra,E(a)?{[Oa]:a}:a??{}))(a),n=e[Ia];if(e.mode==fa){const a=e[Oa]??t;return[1,n,[a,e[Sa]??F,e[Da]??ga],Na(a)]}const{tables:{load:s={},save:r={}}={},values:o={}}=e,c=ia(Pa,o),{load:l,save:w}=c,u=[Fa(l),Fa(w),c[ba],Ma(l),Ma(w)],y=u[2],d=Na(y),v=Na(y),p=Ua(s,{[_a]:null,[Ta]:F,[La]:i},_a,a=>h(v,a),a=>ma(d,a)),A=Ua(r,{[ba]:null,[Ta]:F,[ha]:0,[Ca]:0,[La]:null},ba,(a,t)=>h(v,t),(a,t)=>ma(d,t));var N;return N=(a,t)=>t[4]??=da(p,t[0])?.[2]??i,R(A,(a,t)=>N(0,a)),[0,n,[p,A,u],d]})(n);return(S?qa:Ka)(a,O,a=>{let t;return t=setInterval(()=>f(async()=>{const[{d:t,s:e,c:n}]=await O(U+` ${G} d,${H} s,TOTAL_CHANGES() c FROM ${z}${G} JOIN ${z}${H}`);t==m&&e==$&&n==g||(w(m)||a(),m=t,$=e,g=n)}),1e3*D),()=>{m=$=g=null,l(t)}},a=>a(),u,y,v,I,L(T),async(a,t)=>await a(U+` t.name tn,c.name cn FROM ${q}list()t,${q}info(t.name)c ${j} t.schema='main'AND t.type IN('table','view')AND t.name IN(${V(t)})ORDER BY t.name,c.name`,t),p,A,e,N,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0)},Va=(a,t,e,n,s)=>Qa(a,e,async(a,e=[])=>(await t.executeSql(a,e))[0].rows.raw(),0,0,n,s,m,3,t);export{Va as createReactNativeSqlitePersister};
1
+ const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",r=(a,t,e)=>a.replace(t,e),o=Promise,c=a=>(t,e,n)=>a(t)?n?.():e(t),l=clearInterval,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=c(w),p=c(u),E=t=>a(t)==s,A=a=>Array.isArray(a),N=a=>a.length,m=()=>{},$=async a=>o.all(a),g=a=>{throw Error(a)},f=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},O=(a,t)=>a.forEach(t),S=(a,t="")=>a.join(t),D=(a,t)=>a.map(t),I=a=>0==N(a),T=(a,t)=>a.filter(t),_=(a,...t)=>a.push(...t),b=a=>a.shift(),h=(a,t)=>a?.has(t)??!1,C=a=>u(a)||0==(a=>a?.size??0)(a),L=a=>[...a?.values()??[]],R=(a,t)=>a?.forEach(t),P=(a,t)=>a?.delete(t),M="_",F="_id",U="SELECT",j="WHERE",x="TABLE",B="ALTER "+x,J="FROM",Y="DELETE "+J,k=U+"*"+J,z="pragma_",G="data_version",H="schema_version",q="pragma_table_",K="CREATE "+x,Q=a=>S(D(((a,t="",e)=>a.split(t,e))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),V=(a,t=[1])=>S(D(a,()=>"$"+t[0]++),n),W=(a,t=i)=>j+`(${r(t,"$tableName",Q(a))})`,X=Object,Z=a=>X.getPrototypeOf(a),aa=X.entries,ta=a=>!w(a)&&v(Z(a),a=>a==X.prototype||w(Z(a)),()=>!0),ea=X.keys,na=X.freeze,sa=(a=[])=>X.fromEntries(a),ia=(...a)=>X.assign({},...a),ra=(a,t)=>(delete a[t],a),oa=(a,t)=>D(aa(a),([a,e])=>t(e,a)),ca=(a,t)=>sa(oa(a,(a,e)=>[e,t(a,e)])),la=a=>N(ea(a)),wa=a=>ta(a)&&0==la(a),ua=Map,ya=a=>new ua(a),da=(a,t)=>a?.get(t),va=(a,t)=>D([...a?.entries()??[]],([a,e])=>t(e,a)),pa=(a,t,e)=>u(e)?(P(a,t),a):a?.set(t,e),Ea=(a,t,e,n)=>(h(a,t)?n?.(da(a,t)):pa(a,t,e()),da(a,t)),Aa=(a,t,e,n,s=0)=>p((e?Ea:da)(a,t[s],s>N(t)-2?e:ya),i=>{if(s>N(t)-2)return n?.(i)&&pa(a,t[s]),i;const r=Aa(i,t,e,n,s+1);return C(i)&&pa(a,t[s]),r}),Na=a=>new Set(A(a)||u(a)?a:[a]),ma=(a,t)=>a?.add(t),$a="ColumnName",ga="store",fa="json",Oa=ga+"TableName",Sa=ga+"Id"+$a,Da=ga+$a,Ia="autoLoadIntervalSeconds",Ta="rowId"+$a,_a="tableId",ba="tableName",ha="deleteEmptyColumns",Ca="deleteEmptyTable",La="condition",Ra={mode:fa,[Ia]:1},Pa={load:0,save:0,[ba]:t+"_values"},Ma=a=>A(a)?a:void 0,Fa=a=>d(a)||A(a),Ua=(a,t,e,n,s)=>{const i=ya();return ca(a,(a,r)=>{const o=(w=ia(t,E(a)?{[e]:a}:a),c=X.values(w),l=la(t),c.slice(0,l));var c,l,w;y(o[0])||n(r,o[0])||(s(r,o[0]),pa(i,r,o))}),i},ja=JSON.stringify,xa=JSON.parse,Ba=a=>""===a?void 0:A(a)?D(a,Ba):ta(a)?ca(a,Ba):a,Ja=/^\d+$/,Ya=ya(),ka=ya(),za=(a,t,n,s,i,r,o,c={},l=0,w=[])=>{let d,v,E,m=0,$=0,S=0;Ea(Ya,w,()=>0),Ea(ka,w,()=>[]);const D=ya(),[I,T,h,L,M]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!e),([[a],[t]])=>!wa(a)||!wa(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!wa(a)||!wa(t),t.setContent]:g("Store type not supported by this Persister"))(o,a,l),[F,U,j]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?b(a):null)??e+t++,t=>{Ja.test(t)&&N(a)<1e3&&_(a,t)}]})(),s=ya();return[(n,i,r,o=[],c=()=>[])=>{a??=W;const l=t(1);return pa(s,l,[n,i,r,o,c]),ma(Aa(i,r??[e],Na),l),l},(t,n,...i)=>O(((a,t=[e])=>{const n=[],s=(a,e)=>e==N(t)?_(n,a):y(t[e])?R(a,a=>s(a,e+1)):O([t[e],null],t=>s(da(a,t),e+1));return s(a,0),n})(t,n),t=>R(t,t=>da(s,t)[0](a,...n??[],...i))),a=>p(da(s,a),([,t,i])=>(Aa(t,i??[e],void 0,t=>(P(t,a),C(t)?1:0)),pa(s,a),n(a),i)),t=>p(da(s,t),([t,,e=[],n,s])=>{const i=(...r)=>{const o=N(r);o==N(e)?t(a,...r,...s(r)):y(e[o])?O(n[o]?.(...r)??[],a=>i(...r,a)):i(...r,e[o])};i()})]})(),x=a=>{a!=m&&(m=a,U(D,void 0,m))},B=t=>{(I&&A(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},J=async()=>{K()&&a.__?.[0]?.()&&await G()},Y=async a=>(2!=m&&(x(1),$++,await V(async()=>{await f(async()=>{const e=await t();A(e)?B(e):u(e)&&a?M(a):u(e)||g("Content is not an array: "+e)},t=>{r?.(t),a&&M(a)}),x(0),await J()})),W),k=async a=>(z(),await Y(a),await f(async()=>v=await s(async(a,t)=>{t||a?2!=m&&(x(1),$++,B(t??a),x(0),await J()):await Y()}),r),W),z=async()=>(v&&(await f(()=>i(v),r),v=void 0),W),G=async a=>(1!=m&&(x(2),S++,await V(async()=>{await f(()=>n(T,a),r),x(0)})),W),H=async()=>(q(),await G(),E=a.addDidFinishTransactionListener(()=>{const a=h();L(a)&&G(a)}),W),q=async()=>(E&&(a.delListener(E),E=void 0),W),K=()=>!u(E),Q=async(a=!1)=>{const[t,e]=a?[q,z]:[z,q];return await t(),await e(),W},V=async(...a)=>(_(da(ka,w),...a),await(async()=>{if(!da(Ya,w)){for(pa(Ya,w,1);!u(d=b(da(ka,w)));)await f(d,r);pa(Ya,w,0)}})(),W),W={load:Y,startAutoLoad:k,stopAutoLoad:z,isAutoLoading:()=>!u(v),save:G,startAutoSave:H,stopAutoSave:q,isAutoSaving:K,startAutoPersisting:async(a,t=!1)=>{const[e,n]=t?[H,k]:[k,H];return await e(a),await n(a),W},stopAutoPersisting:Q,getStatus:()=>m,addStatusListener:a=>F(a,D),delListener:t=>(j(t),a),schedule:V,getStore:()=>a,destroy:()=>(da(ka,w).splice(0,void 0),Q()),getStats:()=>({loads:$,saves:S}),...c};return na(W)},Ga=(a,t,e,s,r,o=Ha,c,l)=>{const w=ya();return[async()=>{w.clear(),D(await e(a,t),({tn:a,cn:t})=>ma(Ea(w,a,Na),t))},async(t,e,n,s)=>{const i=u(s)?void 0:Na(s);return((a,t)=>h(da(w,a),t))(t,e)?sa(T(D(await a(k+Q(t)+W(t,n)),a=>{const t=a[e],n=l?ca(ra(a,e),l):ra(a,e);return[t,u(i)?n:sa(T(oa(n,(a,t)=>[t,a]),([a])=>(a=>u(i)||h(i,a))(a)))]}),a=>!u(a[0])&&!wa(a[1]))):{}},async(t,e,s,l,y,d=!1,v=i,p)=>{const E=u(p)?void 0:Na(p),A=a=>u(E)||h(E,a),N=Na();ca(s??{},a=>D(T(ea(a??{}),A),a=>ma(N,a)));const m=L(N);if(u(E)&&!d&&y&&v==i&&I(m)&&h(w,t))return await a("DROP "+x+Q(t)),void pa(w,t);const g=da(w,t),f=Na(T(L(g),a=>a==e||A(a)));if(I(m)||(h(w,t)?await $(D([e,...m],async(n,s)=>{P(f,n)||(await a(B+Q(t)+"ADD"+Q(n)+r),0==s&&await a("CREATE UNIQUE INDEX pk ON "+Q(t)+`(${Q(e)})`),ma(g,n))})):(await a(K+Q(t)+`(${Q(e)}${r} PRIMARY KEY${S(D(m,a=>n+Q(a)+r))});`),pa(w,t,Na([e,...m])))),await $([...!d&&l?D(L(f),async n=>{n!=e&&(await a(B+Q(t)+"DROP"+Q(n)),P(g,n))}):[]]),d)u(s)?u(E)&&await a(Y+Q(t)+W(t,v)):await $(oa(s,async(n,s)=>{if(u(n))await a(Y+Q(t)+W(t,v)+`AND(${Q(e)}=$1)`,[s]);else if(!I(m)){const i=T(ea(n),A);I(i)||await o(a,t,e,i,{[s]:D(i,a=>c?c(n[a]):n[a])},g)}}));else if(I(m))u(E)&&h(w,t)&&await a(Y+Q(t)+W(t,v));else{const n=T(L(da(w,t)),a=>a!=e&&A(a)),i={},r=[];ca(s??{},(a,t)=>{i[t]=D(n,t=>c?c(a?.[t]):a?.[t]),_(r,t)}),await o(a,t,e,n,i,g),await a(Y+Q(t)+W(t,v)+`AND${Q(e)}NOT IN(${V(r)})`,r)}},async t=>{let e;return await a("BEGIN"),await f(async()=>e=await t(),s),await a("END"),e}]},Ha=async(a,t,e,s,i)=>{const r=[1];await a("INSERT INTO"+Q(t)+"("+((...a)=>S(D(a,Q),n))(e,...s)+")VALUES"+S(oa(i,a=>"($"+r[0]+++","+V(a,r)+")"),n)+"ON CONFLICT("+Q(e)+")DO UPDATE SET"+S(D(s,a=>Q(a)+"=excluded."+Q(a)),n),oa(i,(a,t)=>[t,...D(a,a=>a??null)]).flat())},qa=(a,t,e,n,s,i,r,[o,c,l],w,y,d,v,p,E)=>{const[A,N,m,$]=Ga(t,w,y,s,p,E),g=za(a,()=>$(async()=>{return await A(),a=(await N(o,c))[M]?.[l]??"null",Ba(xa(a));var a}),a=>$(async()=>{var t;await A(),await m(o,c,{[M]:{[l]:(t=a()??null,ja(t,(a,t)=>u(t)?"":t))}},!0,!0)}),e,n,s,r,{[v]:()=>d,destroy:async()=>(await g.stopAutoPersisting(),i(),g)},0,d);return g},Ka=(a,t,e,n,s,i,r,[o,c,[l,w,y,d,v]],p,E,A,N,m,g,f,O)=>{const[S,I,_,b]=Ga(t,p,E,s,m,g,f,O),h=(a,t)=>$(va(c,async([e,n,s,i,r],o)=>{t&&!(o in a)||await _(e,n,a[o],s,i,t,r)})),C=(a,t,e)=>sa(1==e?T(oa(a,(a,t)=>[t,a]),([a])=>{return e=a,t.includes(e);var e}):T(D(t,t=>[t,a[t]]),([,a])=>!u(a))),L=async(a,t)=>w?await _(y,F,{[M]:u(v)?a:C(a,v,t)},!0,!0,t,void 0,v):null,R=za(a,()=>b(async()=>{await S();const a=await(async()=>sa(T(await $(va(o,async([a,t,e],n)=>[a,await I(n,t,e)])),a=>!wa(a[1]))))(),t=await(async()=>l?(await I(y,F,void 0,d))[M]:{})();return wa(a)&&u(t)?void 0:[a,t]}),(a,t)=>b(async()=>{if(await S(),u(t)){const[t,e]=a();await h(t),await L(e)}else await h(t[0],!0),await L(t[1],!0)}),e,n,s,r,{[N]:()=>A,destroy:async()=>(await R.stopAutoPersisting(),i(),R)},0,A);return R},Qa=(a,n,s,r,o,c,u,y,v,p,A="getDb",N)=>{let m,$,g;const O=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(s,c),[S,D,I,T]=(a=>{const e=(a=>ia(Ra,E(a)?{[Oa]:a}:a??{}))(a),n=e[Ia];if(e.mode==fa){const a=e[Oa]??t;return[1,n,[a,e[Sa]??F,e[Da]??ga],Na(a)]}const{tables:{load:s={},save:r={}}={},values:o={}}=e,c=ia(Pa,o),{load:l,save:w}=c,u=[Fa(l),Fa(w),c[ba],Ma(l),Ma(w)],y=u[2],d=Na(y),v=Na(y),p=Ua(s,{[_a]:null,[Ta]:F,[La]:i},_a,a=>h(v,a),a=>ma(d,a)),A=Ua(r,{[ba]:null,[Ta]:F,[ha]:0,[Ca]:0,[La]:null},ba,(a,t)=>h(v,t),(a,t)=>ma(d,t));var N;return N=(a,t)=>t[4]??=da(p,t[0])?.[2]??i,R(A,(a,t)=>N(0,a)),[0,n,[p,A,u],d]})(n);return(S?qa:Ka)(a,O,a=>{let t;return t=setInterval(()=>f(async()=>{const[{d:t,s:e,c:n}]=await O(U+` ${G} d,${H} s,TOTAL_CHANGES() c FROM ${z}${G} JOIN ${z}${H}`);t==m&&e==$&&n==g||(w(m)||a(),m=t,$=e,g=n)}),1e3*D),()=>{m=$=g=null,l(t)}},a=>a(),u,y,v,I,L(T),async(a,t)=>await a(U+` t.name tn,c.name cn FROM ${q}list()t,${q}info(t.name)c ${j} t.schema='main'AND t.type IN('table','view')AND t.name IN(${V(t)})ORDER BY t.name,c.name`,t),p,A,e,N,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0)},Va=(a,t,e,n,s)=>Qa(a,e,async(a,e=[])=>(await t.executeSql(a,e))[0].rows.raw(),0,0,n,s,m,3,t);export{Va as createReactNativeSqlitePersister};
@@ -1 +1 @@
1
- const t="",a=t=>(a,e,s)=>t(a)?s?.():e(a),e=clearInterval,s=t=>null==t,n=t=>void 0===t,r=t=>null===t,o=a(s),i=a(n),c=t=>Array.isArray(t),y=t=>t.length,d=t=>{throw Error(t)},u=async(t,a,e)=>{try{return await t()}catch(t){a?.(t)}},l=(t,a)=>t.forEach(a),w=(t,...a)=>t.push(...a),h=t=>t.shift(),p=Object,g=t=>p.getPrototypeOf(t),v=p.keys,f=p.freeze,S=t=>(t=>!s(t)&&o(g(t),t=>t==p.prototype||s(g(t)),()=>!0))(t)&&0==(t=>y(v(t)))(t),A=JSON.stringify,C=JSON.parse,_=t=>n(t)||0==(t=>t?.size??0)(t),L=(t,a)=>t?.forEach(a),b=(t,a)=>t?.delete(a),E=Map,M=t=>new E(t),O=(t,a)=>t?.get(a),P=(t,a,e)=>n(e)?(b(t,a),t):t?.set(a,e),T=(t,a,e,s)=>{var n,r;return n=t,r=a,n?.has(r)?s?.(O(t,a)):P(t,a,e()),O(t,a)},m=(t,a,e,s,n=0)=>i((e?T:O)(t,a[n],n>y(a)-2?e:M),r=>{if(n>y(a)-2)return s?.(r)&&P(t,a[n]),r;const o=m(r,a,e,s,n+1);return _(r)&&P(t,a[n]),o}),D=/^\d+$/,I=t=>new Set(c(t)||n(t)?t:[t]),N=M(),j=M(),x=(a,e,s,o,p,g,v,A={},C=0,E=[])=>{let x,z,J,k=0,F=0,H=0;T(N,E,()=>0),T(j,E,()=>[]);const U=M(),[$,q,B,G,K]=((t=1,a,e)=>1!=t&&a.isMergeable()?[1,a.__[1],()=>a.__[2](!e),([[t],[a]])=>!S(t)||!S(a),a.setDefaultContent]:2!=t?[0,a._[7],a._[8],([t,a])=>!S(t)||!S(a),a.setContent]:d("Store type not supported by this Persister"))(v,a,C),[Q,R,V]=(()=>{let a;const[e,s]=(()=>{const a=[];let e=0;return[s=>(s?h(a):null)??t+e++,t=>{D.test(t)&&y(a)<1e3&&w(a,t)}]})(),n=M();return[(s,r,o,i=[],c=()=>[])=>{a??=ct;const y=e(1);var d,u;return P(n,y,[s,r,o,i,c]),d=m(r,o??[t],I),u=y,d?.add(u),y},(e,s,...o)=>l(((a,e=[t])=>{const s=[],n=(t,a)=>a==y(e)?w(s,t):r(e[a])?L(t,t=>n(t,a+1)):l([e[a],null],e=>n(O(t,e),a+1));return n(a,0),s})(e,s),t=>L(t,t=>O(n,t)[0](a,...s??[],...o))),a=>i(O(n,a),([,e,r])=>(m(e,r??[t],void 0,t=>(b(t,a),_(t)?1:0)),P(n,a),s(a),r)),t=>i(O(n,t),([t,,e=[],s,n])=>{const o=(...i)=>{const c=y(i);c==y(e)?t(a,...i,...n(i)):r(e[c])?l(s[c]?.(...i)??[],t=>o(...i,t)):o(...i,e[c])};o()})]})(),W=t=>{t!=k&&(k=t,R(U,void 0,k))},X=t=>{($&&c(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},Y=async()=>{rt()&&a.__?.[0]?.()&&await et()},Z=async t=>(2!=k&&(W(1),F++,await it(async()=>{await u(async()=>{const a=await e();c(a)?X(a):t?K(t):d("Content is not an array: "+a)},()=>{t&&K(t)}),W(0),await Y()})),ct),tt=async t=>(at(),await Z(t),await u(async()=>z=await o(async(t,a)=>{a||t?2!=k&&(W(1),F++,X(a??t),W(0),await Y()):await Z()}),g),ct),at=async()=>(z&&(await u(()=>p(z),g),z=void 0),ct),et=async t=>(1!=k&&(W(2),H++,await it(async()=>{await u(()=>s(q,t),g),W(0)})),ct),st=async()=>(nt(),await et(),J=a.addDidFinishTransactionListener(()=>{const t=B();G(t)&&et(t)}),ct),nt=async()=>(J&&(a.delListener(J),J=void 0),ct),rt=()=>!n(J),ot=async(t=!1)=>{const[a,e]=t?[nt,at]:[at,nt];return await a(),await e(),ct},it=async(...t)=>(w(O(j,E),...t),await(async()=>{if(!O(N,E)){for(P(N,E,1);!n(x=h(O(j,E)));)await u(x,g);P(N,E,0)}})(),ct),ct={load:Z,startAutoLoad:tt,stopAutoLoad:at,isAutoLoading:()=>!n(z),save:et,startAutoSave:st,stopAutoSave:nt,isAutoSaving:rt,startAutoPersisting:async(t,a=!1)=>{const[e,s]=a?[st,tt]:[tt,st];return await e(t),await s(t),ct},stopAutoPersisting:ot,getStatus:()=>k,addStatusListener:t=>Q(t,U),delListener:t=>(V(t),a),schedule:it,getStore:()=>a,destroy:()=>(O(j,E).splice(0,void 0),ot()),getStats:()=>({loads:F,saves:H}),...A};return f(ct)},z=a=>a.headers.get("ETag")??t,J=a=>a==t?void 0:{"If-None-Match":a},k=(a,s,n,r=5,o)=>{let i=t;return x(a,async()=>{const t=await fetch(s,{headers:J(i)});return i=z(t),C(await t.text())},async t=>{return await fetch(n,{method:"POST",headers:{"Content-Type":"application/json"},body:(a=t(),A(a,(t,a)=>a instanceof Map?p.fromEntries([...a]):a))});var a},t=>setInterval(async()=>{const a=await fetch(s,{method:"HEAD",headers:J(i)}),e=z(a);e!=i&&(i=e,t())},1e3*r),t=>e(t),o,1,{getUrls:()=>[s,n]})};export{k as createRemotePersister};
1
+ const t="",a=t=>(a,e,s)=>t(a)?s?.():e(a),e=clearInterval,s=t=>null==t,n=t=>void 0===t,r=t=>null===t,o=a(s),i=a(n),c=t=>Array.isArray(t),y=t=>t.length,d=t=>{throw Error(t)},u=async(t,a,e)=>{try{return await t()}catch(t){a?.(t)}},l=(t,a)=>t.forEach(a),w=(t,...a)=>t.push(...a),h=t=>t.shift(),p=Object,g=t=>p.getPrototypeOf(t),v=p.keys,f=p.freeze,S=t=>(t=>!s(t)&&o(g(t),t=>t==p.prototype||s(g(t)),()=>!0))(t)&&0==(t=>y(v(t)))(t),A=JSON.stringify,C=JSON.parse,_=t=>n(t)||0==(t=>t?.size??0)(t),L=(t,a)=>t?.forEach(a),b=(t,a)=>t?.delete(a),E=Map,M=t=>new E(t),O=(t,a)=>t?.get(a),P=(t,a,e)=>n(e)?(b(t,a),t):t?.set(a,e),T=(t,a,e,s)=>{var n,r;return n=t,r=a,n?.has(r)?s?.(O(t,a)):P(t,a,e()),O(t,a)},m=(t,a,e,s,n=0)=>i((e?T:O)(t,a[n],n>y(a)-2?e:M),r=>{if(n>y(a)-2)return s?.(r)&&P(t,a[n]),r;const o=m(r,a,e,s,n+1);return _(r)&&P(t,a[n]),o}),D=/^\d+$/,I=t=>new Set(c(t)||n(t)?t:[t]),N=M(),j=M(),x=(a,e,s,o,p,g,v,A={},C=0,E=[])=>{let x,z,J,k=0,F=0,H=0;T(N,E,()=>0),T(j,E,()=>[]);const U=M(),[$,q,B,G,K]=((t=1,a,e)=>1!=t&&a.isMergeable()?[1,a.__[1],()=>a.__[2](!e),([[t],[a]])=>!S(t)||!S(a),a.setDefaultContent]:2!=t?[0,a._[7],a._[8],([t,a])=>!S(t)||!S(a),a.setContent]:d("Store type not supported by this Persister"))(v,a,C),[Q,R,V]=(()=>{let a;const[e,s]=(()=>{const a=[];let e=0;return[s=>(s?h(a):null)??t+e++,t=>{D.test(t)&&y(a)<1e3&&w(a,t)}]})(),n=M();return[(s,r,o,i=[],c=()=>[])=>{a??=ct;const y=e(1);var d,u;return P(n,y,[s,r,o,i,c]),d=m(r,o??[t],I),u=y,d?.add(u),y},(e,s,...o)=>l(((a,e=[t])=>{const s=[],n=(t,a)=>a==y(e)?w(s,t):r(e[a])?L(t,t=>n(t,a+1)):l([e[a],null],e=>n(O(t,e),a+1));return n(a,0),s})(e,s),t=>L(t,t=>O(n,t)[0](a,...s??[],...o))),a=>i(O(n,a),([,e,r])=>(m(e,r??[t],void 0,t=>(b(t,a),_(t)?1:0)),P(n,a),s(a),r)),t=>i(O(n,t),([t,,e=[],s,n])=>{const o=(...i)=>{const c=y(i);c==y(e)?t(a,...i,...n(i)):r(e[c])?l(s[c]?.(...i)??[],t=>o(...i,t)):o(...i,e[c])};o()})]})(),W=t=>{t!=k&&(k=t,R(U,void 0,k))},X=t=>{($&&c(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},Y=async()=>{rt()&&a.__?.[0]?.()&&await et()},Z=async t=>(2!=k&&(W(1),F++,await it(async()=>{await u(async()=>{const a=await e();c(a)?X(a):n(a)&&t?K(t):n(a)||d("Content is not an array: "+a)},a=>{g?.(a),t&&K(t)}),W(0),await Y()})),ct),tt=async t=>(at(),await Z(t),await u(async()=>z=await o(async(t,a)=>{a||t?2!=k&&(W(1),F++,X(a??t),W(0),await Y()):await Z()}),g),ct),at=async()=>(z&&(await u(()=>p(z),g),z=void 0),ct),et=async t=>(1!=k&&(W(2),H++,await it(async()=>{await u(()=>s(q,t),g),W(0)})),ct),st=async()=>(nt(),await et(),J=a.addDidFinishTransactionListener(()=>{const t=B();G(t)&&et(t)}),ct),nt=async()=>(J&&(a.delListener(J),J=void 0),ct),rt=()=>!n(J),ot=async(t=!1)=>{const[a,e]=t?[nt,at]:[at,nt];return await a(),await e(),ct},it=async(...t)=>(w(O(j,E),...t),await(async()=>{if(!O(N,E)){for(P(N,E,1);!n(x=h(O(j,E)));)await u(x,g);P(N,E,0)}})(),ct),ct={load:Z,startAutoLoad:tt,stopAutoLoad:at,isAutoLoading:()=>!n(z),save:et,startAutoSave:st,stopAutoSave:nt,isAutoSaving:rt,startAutoPersisting:async(t,a=!1)=>{const[e,s]=a?[st,tt]:[tt,st];return await e(t),await s(t),ct},stopAutoPersisting:ot,getStatus:()=>k,addStatusListener:t=>Q(t,U),delListener:t=>(V(t),a),schedule:it,getStore:()=>a,destroy:()=>(O(j,E).splice(0,void 0),ot()),getStats:()=>({loads:F,saves:H}),...A};return f(ct)},z=a=>a.headers.get("ETag")??t,J=a=>a==t?void 0:{"If-None-Match":a},k=(a,s,n,r=5,o)=>{let i=t;return x(a,async()=>{const t=await fetch(s,{headers:J(i)});return i=z(t),C(await t.text())},async t=>{return await fetch(n,{method:"POST",headers:{"Content-Type":"application/json"},body:(a=t(),A(a,(t,a)=>a instanceof Map?p.fromEntries([...a]):a))});var a},t=>setInterval(async()=>{const a=await fetch(s,{method:"HEAD",headers:J(i)}),e=z(a);e!=i&&(i=e,t())},1e3*r),t=>e(t),o,1,{getUrls:()=>[s,n]})};export{k as createRemotePersister};
@@ -1 +1 @@
1
- const t="",a=t=>(a,e,s)=>t(a)?s?.():e(a),e=clearInterval,s=t=>null==t,n=t=>void 0===t,r=t=>null===t,o=a(s),i=a(n),c=t=>Array.isArray(t),y=t=>t.length,d=t=>{throw Error(t)},u=async(t,a,e)=>{try{return await t()}catch(t){a?.(t)}},l=(t,a)=>t.forEach(a),w=(t,...a)=>t.push(...a),h=t=>t.shift(),p=Object,g=t=>p.getPrototypeOf(t),v=p.keys,f=p.freeze,S=t=>(t=>!s(t)&&o(g(t),t=>t==p.prototype||s(g(t)),()=>!0))(t)&&0==(t=>y(v(t)))(t),A=JSON.stringify,C=JSON.parse,_=t=>n(t)||0==(t=>t?.size??0)(t),L=(t,a)=>t?.forEach(a),b=(t,a)=>t?.delete(a),E=Map,M=t=>new E(t),O=(t,a)=>t?.get(a),P=(t,a,e)=>n(e)?(b(t,a),t):t?.set(a,e),T=(t,a,e,s)=>{var n,r;return n=t,r=a,n?.has(r)?s?.(O(t,a)):P(t,a,e()),O(t,a)},m=(t,a,e,s,n=0)=>i((e?T:O)(t,a[n],n>y(a)-2?e:M),r=>{if(n>y(a)-2)return s?.(r)&&P(t,a[n]),r;const o=m(r,a,e,s,n+1);return _(r)&&P(t,a[n]),o}),D=/^\d+$/,I=t=>new Set(c(t)||n(t)?t:[t]),N=M(),j=M(),x=(a,e,s,o,p,g,v,A={},C=0,E=[])=>{let x,z,J,k=0,F=0,H=0;T(N,E,()=>0),T(j,E,()=>[]);const U=M(),[$,q,B,G,K]=((t=1,a,e)=>1!=t&&a.isMergeable()?[1,a.__[1],()=>a.__[2](!e),([[t],[a]])=>!S(t)||!S(a),a.setDefaultContent]:2!=t?[0,a._[7],a._[8],([t,a])=>!S(t)||!S(a),a.setContent]:d("Store type not supported by this Persister"))(v,a,C),[Q,R,V]=(()=>{let a;const[e,s]=(()=>{const a=[];let e=0;return[s=>(s?h(a):null)??t+e++,t=>{D.test(t)&&y(a)<1e3&&w(a,t)}]})(),n=M();return[(s,r,o,i=[],c=()=>[])=>{a??=ct;const y=e(1);var d,u;return P(n,y,[s,r,o,i,c]),d=m(r,o??[t],I),u=y,d?.add(u),y},(e,s,...o)=>l(((a,e=[t])=>{const s=[],n=(t,a)=>a==y(e)?w(s,t):r(e[a])?L(t,t=>n(t,a+1)):l([e[a],null],e=>n(O(t,e),a+1));return n(a,0),s})(e,s),t=>L(t,t=>O(n,t)[0](a,...s??[],...o))),a=>i(O(n,a),([,e,r])=>(m(e,r??[t],void 0,t=>(b(t,a),_(t)?1:0)),P(n,a),s(a),r)),t=>i(O(n,t),([t,,e=[],s,n])=>{const o=(...i)=>{const c=y(i);c==y(e)?t(a,...i,...n(i)):r(e[c])?l(s[c]?.(...i)??[],t=>o(...i,t)):o(...i,e[c])};o()})]})(),W=t=>{t!=k&&(k=t,R(U,void 0,k))},X=t=>{($&&c(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},Y=async()=>{rt()&&a.__?.[0]?.()&&await et()},Z=async t=>(2!=k&&(W(1),F++,await it(async()=>{await u(async()=>{const a=await e();c(a)?X(a):t?K(t):d("Content is not an array: "+a)},()=>{t&&K(t)}),W(0),await Y()})),ct),tt=async t=>(at(),await Z(t),await u(async()=>z=await o(async(t,a)=>{a||t?2!=k&&(W(1),F++,X(a??t),W(0),await Y()):await Z()}),g),ct),at=async()=>(z&&(await u(()=>p(z),g),z=void 0),ct),et=async t=>(1!=k&&(W(2),H++,await it(async()=>{await u(()=>s(q,t),g),W(0)})),ct),st=async()=>(nt(),await et(),J=a.addDidFinishTransactionListener(()=>{const t=B();G(t)&&et(t)}),ct),nt=async()=>(J&&(a.delListener(J),J=void 0),ct),rt=()=>!n(J),ot=async(t=!1)=>{const[a,e]=t?[nt,at]:[at,nt];return await a(),await e(),ct},it=async(...t)=>(w(O(j,E),...t),await(async()=>{if(!O(N,E)){for(P(N,E,1);!n(x=h(O(j,E)));)await u(x,g);P(N,E,0)}})(),ct),ct={load:Z,startAutoLoad:tt,stopAutoLoad:at,isAutoLoading:()=>!n(z),save:et,startAutoSave:st,stopAutoSave:nt,isAutoSaving:rt,startAutoPersisting:async(t,a=!1)=>{const[e,s]=a?[st,tt]:[tt,st];return await e(t),await s(t),ct},stopAutoPersisting:ot,getStatus:()=>k,addStatusListener:t=>Q(t,U),delListener:t=>(V(t),a),schedule:it,getStore:()=>a,destroy:()=>(O(j,E).splice(0,void 0),ot()),getStats:()=>({loads:F,saves:H}),...A};return f(ct)},z=a=>a.headers.get("ETag")??t,J=a=>a==t?void 0:{"If-None-Match":a},k=(a,s,n,r=5,o)=>{let i=t;return x(a,async()=>{const t=await fetch(s,{headers:J(i)});return i=z(t),C(await t.text())},async t=>{return await fetch(n,{method:"POST",headers:{"Content-Type":"application/json"},body:(a=t(),A(a,(t,a)=>a instanceof Map?p.fromEntries([...a]):a))});var a},t=>setInterval(async()=>{const a=await fetch(s,{method:"HEAD",headers:J(i)}),e=z(a);e!=i&&(i=e,t())},1e3*r),t=>e(t),o,1,{getUrls:()=>[s,n]})};export{k as createRemotePersister};
1
+ const t="",a=t=>(a,e,s)=>t(a)?s?.():e(a),e=clearInterval,s=t=>null==t,n=t=>void 0===t,r=t=>null===t,o=a(s),i=a(n),c=t=>Array.isArray(t),y=t=>t.length,d=t=>{throw Error(t)},u=async(t,a,e)=>{try{return await t()}catch(t){a?.(t)}},l=(t,a)=>t.forEach(a),w=(t,...a)=>t.push(...a),h=t=>t.shift(),p=Object,g=t=>p.getPrototypeOf(t),v=p.keys,f=p.freeze,S=t=>(t=>!s(t)&&o(g(t),t=>t==p.prototype||s(g(t)),()=>!0))(t)&&0==(t=>y(v(t)))(t),A=JSON.stringify,C=JSON.parse,_=t=>n(t)||0==(t=>t?.size??0)(t),L=(t,a)=>t?.forEach(a),b=(t,a)=>t?.delete(a),E=Map,M=t=>new E(t),O=(t,a)=>t?.get(a),P=(t,a,e)=>n(e)?(b(t,a),t):t?.set(a,e),T=(t,a,e,s)=>{var n,r;return n=t,r=a,n?.has(r)?s?.(O(t,a)):P(t,a,e()),O(t,a)},m=(t,a,e,s,n=0)=>i((e?T:O)(t,a[n],n>y(a)-2?e:M),r=>{if(n>y(a)-2)return s?.(r)&&P(t,a[n]),r;const o=m(r,a,e,s,n+1);return _(r)&&P(t,a[n]),o}),D=/^\d+$/,I=t=>new Set(c(t)||n(t)?t:[t]),N=M(),j=M(),x=(a,e,s,o,p,g,v,A={},C=0,E=[])=>{let x,z,J,k=0,F=0,H=0;T(N,E,()=>0),T(j,E,()=>[]);const U=M(),[$,q,B,G,K]=((t=1,a,e)=>1!=t&&a.isMergeable()?[1,a.__[1],()=>a.__[2](!e),([[t],[a]])=>!S(t)||!S(a),a.setDefaultContent]:2!=t?[0,a._[7],a._[8],([t,a])=>!S(t)||!S(a),a.setContent]:d("Store type not supported by this Persister"))(v,a,C),[Q,R,V]=(()=>{let a;const[e,s]=(()=>{const a=[];let e=0;return[s=>(s?h(a):null)??t+e++,t=>{D.test(t)&&y(a)<1e3&&w(a,t)}]})(),n=M();return[(s,r,o,i=[],c=()=>[])=>{a??=ct;const y=e(1);var d,u;return P(n,y,[s,r,o,i,c]),d=m(r,o??[t],I),u=y,d?.add(u),y},(e,s,...o)=>l(((a,e=[t])=>{const s=[],n=(t,a)=>a==y(e)?w(s,t):r(e[a])?L(t,t=>n(t,a+1)):l([e[a],null],e=>n(O(t,e),a+1));return n(a,0),s})(e,s),t=>L(t,t=>O(n,t)[0](a,...s??[],...o))),a=>i(O(n,a),([,e,r])=>(m(e,r??[t],void 0,t=>(b(t,a),_(t)?1:0)),P(n,a),s(a),r)),t=>i(O(n,t),([t,,e=[],s,n])=>{const o=(...i)=>{const c=y(i);c==y(e)?t(a,...i,...n(i)):r(e[c])?l(s[c]?.(...i)??[],t=>o(...i,t)):o(...i,e[c])};o()})]})(),W=t=>{t!=k&&(k=t,R(U,void 0,k))},X=t=>{($&&c(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},Y=async()=>{rt()&&a.__?.[0]?.()&&await et()},Z=async t=>(2!=k&&(W(1),F++,await it(async()=>{await u(async()=>{const a=await e();c(a)?X(a):n(a)&&t?K(t):n(a)||d("Content is not an array: "+a)},a=>{g?.(a),t&&K(t)}),W(0),await Y()})),ct),tt=async t=>(at(),await Z(t),await u(async()=>z=await o(async(t,a)=>{a||t?2!=k&&(W(1),F++,X(a??t),W(0),await Y()):await Z()}),g),ct),at=async()=>(z&&(await u(()=>p(z),g),z=void 0),ct),et=async t=>(1!=k&&(W(2),H++,await it(async()=>{await u(()=>s(q,t),g),W(0)})),ct),st=async()=>(nt(),await et(),J=a.addDidFinishTransactionListener(()=>{const t=B();G(t)&&et(t)}),ct),nt=async()=>(J&&(a.delListener(J),J=void 0),ct),rt=()=>!n(J),ot=async(t=!1)=>{const[a,e]=t?[nt,at]:[at,nt];return await a(),await e(),ct},it=async(...t)=>(w(O(j,E),...t),await(async()=>{if(!O(N,E)){for(P(N,E,1);!n(x=h(O(j,E)));)await u(x,g);P(N,E,0)}})(),ct),ct={load:Z,startAutoLoad:tt,stopAutoLoad:at,isAutoLoading:()=>!n(z),save:et,startAutoSave:st,stopAutoSave:nt,isAutoSaving:rt,startAutoPersisting:async(t,a=!1)=>{const[e,s]=a?[st,tt]:[tt,st];return await e(t),await s(t),ct},stopAutoPersisting:ot,getStatus:()=>k,addStatusListener:t=>Q(t,U),delListener:t=>(V(t),a),schedule:it,getStore:()=>a,destroy:()=>(O(j,E).splice(0,void 0),ot()),getStats:()=>({loads:F,saves:H}),...A};return f(ct)},z=a=>a.headers.get("ETag")??t,J=a=>a==t?void 0:{"If-None-Match":a},k=(a,s,n,r=5,o)=>{let i=t;return x(a,async()=>{const t=await fetch(s,{headers:J(i)});return i=z(t),C(await t.text())},async t=>{return await fetch(n,{method:"POST",headers:{"Content-Type":"application/json"},body:(a=t(),A(a,(t,a)=>a instanceof Map?p.fromEntries([...a]):a))});var a},t=>setInterval(async()=>{const a=await fetch(s,{method:"HEAD",headers:J(i)}),e=z(a);e!=i&&(i=e,t())},1e3*r),t=>e(t),o,1,{getUrls:()=>[s,n]})};export{k as createRemotePersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",r=(a,t,e)=>a.replace(t,e),o=Promise,c=a=>(t,e,n)=>a(t)?n?.():e(t),l=clearInterval,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=c(w),p=c(u),E=t=>a(t)==s,A=a=>Array.isArray(a),N=a=>a.length,m=()=>{},$=async a=>o.all(a),g=a=>{throw Error(a)},f=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},O=(a,t)=>a.forEach(t),D=(a,t="")=>a.join(t),I=(a,t)=>a.map(t),S=a=>0==N(a),T=(a,t)=>a.filter(t),_=(a,...t)=>a.push(...t),h=a=>a.shift(),b=(a,t)=>a?.has(t)??!1,C=a=>u(a)||0==(a=>a?.size??0)(a),L=a=>[...a?.values()??[]],R=(a,t)=>a?.forEach(t),P=(a,t)=>a?.delete(t),M="_",F="_id",U="SELECT",j="WHERE",B="TABLE",J="ALTER "+B,Y="FROM",k="DELETE "+Y,x=U+"*"+Y,z="pragma_",G="data_version",H="schema_version",q="pragma_table_",K="CREATE "+B,Q=a=>D(I(((a,t="",e)=>a.split(t,e))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),V=(a,t=[1])=>D(I(a,()=>"$"+t[0]++),n),W=(a,t=i)=>j+`(${r(t,"$tableName",Q(a))})`,X=Object,Z=a=>X.getPrototypeOf(a),aa=X.entries,ta=a=>!w(a)&&v(Z(a),a=>a==X.prototype||w(Z(a)),()=>!0),ea=X.keys,na=X.freeze,sa=(a=[])=>X.fromEntries(a),ia=(...a)=>X.assign({},...a),ra=(a,t)=>(delete a[t],a),oa=(a,t)=>I(aa(a),([a,e])=>t(e,a)),ca=(a,t)=>sa(oa(a,(a,e)=>[e,t(a,e)])),la=a=>N(ea(a)),wa=a=>ta(a)&&0==la(a),ua=Map,ya=a=>new ua(a),da=(a,t)=>a?.get(t),va=(a,t)=>I([...a?.entries()??[]],([a,e])=>t(e,a)),pa=(a,t,e)=>u(e)?(P(a,t),a):a?.set(t,e),Ea=(a,t,e,n)=>(b(a,t)?n?.(da(a,t)):pa(a,t,e()),da(a,t)),Aa=(a,t,e,n,s=0)=>p((e?Ea:da)(a,t[s],s>N(t)-2?e:ya),i=>{if(s>N(t)-2)return n?.(i)&&pa(a,t[s]),i;const r=Aa(i,t,e,n,s+1);return C(i)&&pa(a,t[s]),r}),Na=a=>new Set(A(a)||u(a)?a:[a]),ma=(a,t)=>a?.add(t),$a="ColumnName",ga="store",fa="json",Oa=ga+"TableName",Da=ga+"Id"+$a,Ia=ga+$a,Sa="autoLoadIntervalSeconds",Ta="rowId"+$a,_a="tableId",ha="tableName",ba="deleteEmptyColumns",Ca="deleteEmptyTable",La="condition",Ra={mode:fa,[Sa]:1},Pa={load:0,save:0,[ha]:t+"_values"},Ma=a=>A(a)?a:void 0,Fa=a=>d(a)||A(a),Ua=(a,t,e,n,s)=>{const i=ya();return ca(a,(a,r)=>{const o=(w=ia(t,E(a)?{[e]:a}:a),c=X.values(w),l=la(t),c.slice(0,l));var c,l,w;y(o[0])||n(r,o[0])||(s(r,o[0]),pa(i,r,o))}),i},ja=JSON.stringify,Ba=JSON.parse,Ja=a=>""===a?void 0:A(a)?I(a,Ja):ta(a)?ca(a,Ja):a,Ya=/^\d+$/,ka=ya(),xa=ya(),za=(a,t,n,s,i,r,o,c={},l=0,w=[])=>{let d,v,E,m=0,$=0,D=0;Ea(ka,w,()=>0),Ea(xa,w,()=>[]);const I=ya(),[S,T,b,L,M]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!e),([[a],[t]])=>!wa(a)||!wa(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!wa(a)||!wa(t),t.setContent]:g("Store type not supported by this Persister"))(o,a,l),[F,U,j]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?h(a):null)??e+t++,t=>{Ya.test(t)&&N(a)<1e3&&_(a,t)}]})(),s=ya();return[(n,i,r,o=[],c=()=>[])=>{a??=W;const l=t(1);return pa(s,l,[n,i,r,o,c]),ma(Aa(i,r??[e],Na),l),l},(t,n,...i)=>O(((a,t=[e])=>{const n=[],s=(a,e)=>e==N(t)?_(n,a):y(t[e])?R(a,a=>s(a,e+1)):O([t[e],null],t=>s(da(a,t),e+1));return s(a,0),n})(t,n),t=>R(t,t=>da(s,t)[0](a,...n??[],...i))),a=>p(da(s,a),([,t,i])=>(Aa(t,i??[e],void 0,t=>(P(t,a),C(t)?1:0)),pa(s,a),n(a),i)),t=>p(da(s,t),([t,,e=[],n,s])=>{const i=(...r)=>{const o=N(r);o==N(e)?t(a,...r,...s(r)):y(e[o])?O(n[o]?.(...r)??[],a=>i(...r,a)):i(...r,e[o])};i()})]})(),B=a=>{a!=m&&(m=a,U(I,void 0,m))},J=t=>{(S&&A(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},Y=async()=>{K()&&a.__?.[0]?.()&&await G()},k=async a=>(2!=m&&(B(1),$++,await V(async()=>{await f(async()=>{const e=await t();A(e)?J(e):a?M(a):g("Content is not an array: "+e)},()=>{a&&M(a)}),B(0),await Y()})),W),x=async a=>(z(),await k(a),await f(async()=>v=await s(async(a,t)=>{t||a?2!=m&&(B(1),$++,J(t??a),B(0),await Y()):await k()}),r),W),z=async()=>(v&&(await f(()=>i(v),r),v=void 0),W),G=async a=>(1!=m&&(B(2),D++,await V(async()=>{await f(()=>n(T,a),r),B(0)})),W),H=async()=>(q(),await G(),E=a.addDidFinishTransactionListener(()=>{const a=b();L(a)&&G(a)}),W),q=async()=>(E&&(a.delListener(E),E=void 0),W),K=()=>!u(E),Q=async(a=!1)=>{const[t,e]=a?[q,z]:[z,q];return await t(),await e(),W},V=async(...a)=>(_(da(xa,w),...a),await(async()=>{if(!da(ka,w)){for(pa(ka,w,1);!u(d=h(da(xa,w)));)await f(d,r);pa(ka,w,0)}})(),W),W={load:k,startAutoLoad:x,stopAutoLoad:z,isAutoLoading:()=>!u(v),save:G,startAutoSave:H,stopAutoSave:q,isAutoSaving:K,startAutoPersisting:async(a,t=!1)=>{const[e,n]=t?[H,x]:[x,H];return await e(a),await n(a),W},stopAutoPersisting:Q,getStatus:()=>m,addStatusListener:a=>F(a,I),delListener:t=>(j(t),a),schedule:V,getStore:()=>a,destroy:()=>(da(xa,w).splice(0,void 0),Q()),getStats:()=>({loads:$,saves:D}),...c};return na(W)},Ga=(a,t,e,s,r,o=Ha,c,l)=>{const w=ya();return[async()=>{w.clear(),I(await e(a,t),({tn:a,cn:t})=>ma(Ea(w,a,Na),t))},async(t,e,n,s)=>{const i=u(s)?void 0:Na(s);return((a,t)=>b(da(w,a),t))(t,e)?sa(T(I(await a(x+Q(t)+W(t,n)),a=>{const t=a[e],n=l?ca(ra(a,e),l):ra(a,e);return[t,u(i)?n:sa(T(oa(n,(a,t)=>[t,a]),([a])=>(a=>u(i)||b(i,a))(a)))]}),a=>!u(a[0])&&!wa(a[1]))):{}},async(t,e,s,l,y,d=!1,v=i,p)=>{const E=u(p)?void 0:Na(p),A=a=>u(E)||b(E,a),N=Na();ca(s??{},a=>I(T(ea(a??{}),A),a=>ma(N,a)));const m=L(N);if(u(E)&&!d&&y&&v==i&&S(m)&&b(w,t))return await a("DROP "+B+Q(t)),void pa(w,t);const g=da(w,t),f=Na(T(L(g),a=>a==e||A(a)));if(S(m)||(b(w,t)?await $(I([e,...m],async(n,s)=>{P(f,n)||(await a(J+Q(t)+"ADD"+Q(n)+r),0==s&&await a("CREATE UNIQUE INDEX pk ON "+Q(t)+`(${Q(e)})`),ma(g,n))})):(await a(K+Q(t)+`(${Q(e)}${r} PRIMARY KEY${D(I(m,a=>n+Q(a)+r))});`),pa(w,t,Na([e,...m])))),await $([...!d&&l?I(L(f),async n=>{n!=e&&(await a(J+Q(t)+"DROP"+Q(n)),P(g,n))}):[]]),d)u(s)?u(E)&&await a(k+Q(t)+W(t,v)):await $(oa(s,async(n,s)=>{if(u(n))await a(k+Q(t)+W(t,v)+`AND(${Q(e)}=$1)`,[s]);else if(!S(m)){const i=T(ea(n),A);S(i)||await o(a,t,e,i,{[s]:I(i,a=>c?c(n[a]):n[a])},g)}}));else if(S(m))u(E)&&b(w,t)&&await a(k+Q(t)+W(t,v));else{const n=T(L(da(w,t)),a=>a!=e&&A(a)),i={},r=[];ca(s??{},(a,t)=>{i[t]=I(n,t=>c?c(a?.[t]):a?.[t]),_(r,t)}),await o(a,t,e,n,i,g),await a(k+Q(t)+W(t,v)+`AND${Q(e)}NOT IN(${V(r)})`,r)}},async t=>{let e;return await a("BEGIN"),await f(async()=>e=await t(),s),await a("END"),e}]},Ha=async(a,t,e,s,i)=>{const r=[1];await a("INSERT INTO"+Q(t)+"("+((...a)=>D(I(a,Q),n))(e,...s)+")VALUES"+D(oa(i,a=>"($"+r[0]+++","+V(a,r)+")"),n)+"ON CONFLICT("+Q(e)+")DO UPDATE SET"+D(I(s,a=>Q(a)+"=excluded."+Q(a)),n),oa(i,(a,t)=>[t,...I(a,a=>a??null)]).flat())},qa=(a,t,e,n,s,i,r,[o,c,l],w,y,d,v,p,E)=>{const[A,N,m,$]=Ga(t,w,y,s,p,E),g=za(a,()=>$(async()=>{return await A(),a=(await N(o,c))[M]?.[l]??"null",Ja(Ba(a));var a}),a=>$(async()=>{var t;await A(),await m(o,c,{[M]:{[l]:(t=a()??null,ja(t,(a,t)=>u(t)?"":t))}},!0,!0)}),e,n,s,r,{[v]:()=>d,destroy:async()=>(await g.stopAutoPersisting(),i(),g)},0,d);return g},Ka=(a,t,e,n,s,i,r,[o,c,[l,w,y,d,v]],p,E,A,N,m,g,f,O)=>{const[D,S,_,h]=Ga(t,p,E,s,m,g,f,O),b=(a,t)=>$(va(c,async([e,n,s,i,r],o)=>{t&&!(o in a)||await _(e,n,a[o],s,i,t,r)})),C=(a,t,e)=>sa(1==e?T(oa(a,(a,t)=>[t,a]),([a])=>{return e=a,t.includes(e);var e}):T(I(t,t=>[t,a[t]]),([,a])=>!u(a))),L=async(a,t)=>w?await _(y,F,{[M]:u(v)?a:C(a,v,t)},!0,!0,t,void 0,v):null,R=za(a,()=>h(async()=>{await D();const a=await(async()=>sa(T(await $(va(o,async([a,t,e],n)=>[a,await S(n,t,e)])),a=>!wa(a[1]))))(),t=await(async()=>l?(await S(y,F,void 0,d))[M]:{})();return wa(a)&&u(t)?void 0:[a,t]}),(a,t)=>h(async()=>{if(await D(),u(t)){const[t,e]=a();await b(t),await L(e)}else await b(t[0],!0),await L(t[1],!0)}),e,n,s,r,{[N]:()=>A,destroy:async()=>(await R.stopAutoPersisting(),i(),R)},0,A);return R},Qa=(a,n,s,r,o,c,u,y,v,p,A="getDb",N)=>{let m,$,g;const O=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(s,c),[D,I,S,T]=(a=>{const e=(a=>ia(Ra,E(a)?{[Oa]:a}:a??{}))(a),n=e[Sa];if(e.mode==fa){const a=e[Oa]??t;return[1,n,[a,e[Da]??F,e[Ia]??ga],Na(a)]}const{tables:{load:s={},save:r={}}={},values:o={}}=e,c=ia(Pa,o),{load:l,save:w}=c,u=[Fa(l),Fa(w),c[ha],Ma(l),Ma(w)],y=u[2],d=Na(y),v=Na(y),p=Ua(s,{[_a]:null,[Ta]:F,[La]:i},_a,a=>b(v,a),a=>ma(d,a)),A=Ua(r,{[ha]:null,[Ta]:F,[ba]:0,[Ca]:0,[La]:null},ha,(a,t)=>b(v,t),(a,t)=>ma(d,t));var N;return N=(a,t)=>t[4]??=da(p,t[0])?.[2]??i,R(A,(a,t)=>N(0,a)),[0,n,[p,A,u],d]})(n);return(D?qa:Ka)(a,O,a=>{let t;const e=()=>t=setInterval(()=>f(async()=>{const[{d:t,s:e,c:n}]=await O(U+` ${G} d,${H} s,TOTAL_CHANGES() c FROM ${z}${G} JOIN ${z}${H}`);t==m&&e==$&&n==g||(w(m)||a(),m=t,$=e,g=n)}),1e3*I),n=()=>{m=$=g=null,l(t)},s=r(t=>{T.has(t)&&(n(),a(),e())});return e(),()=>{n(),o(s)}},a=>a(),u,y,v,S,L(T),async(a,t)=>await a(U+` t.name tn,c.name cn FROM ${q}list()t,${q}info(t.name)c ${j} t.schema='main'AND t.type IN('table','view')AND t.name IN(${V(t)})ORDER BY t.name,c.name`,t),p,A,e,N,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0)},Va=(a,t,e,n,s)=>Qa(a,e,async(a,e=[])=>t.query(a).all(...e),()=>m,a=>a(),n,s,m,3,t);export{Va as createSqliteBunPersister};
1
+ const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",r=(a,t,e)=>a.replace(t,e),o=Promise,c=a=>(t,e,n)=>a(t)?n?.():e(t),l=clearInterval,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=c(w),p=c(u),E=t=>a(t)==s,A=a=>Array.isArray(a),N=a=>a.length,m=()=>{},$=async a=>o.all(a),g=a=>{throw Error(a)},f=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},O=(a,t)=>a.forEach(t),D=(a,t="")=>a.join(t),I=(a,t)=>a.map(t),S=a=>0==N(a),T=(a,t)=>a.filter(t),_=(a,...t)=>a.push(...t),h=a=>a.shift(),b=(a,t)=>a?.has(t)??!1,C=a=>u(a)||0==(a=>a?.size??0)(a),L=a=>[...a?.values()??[]],R=(a,t)=>a?.forEach(t),P=(a,t)=>a?.delete(t),M="_",F="_id",U="SELECT",j="WHERE",B="TABLE",J="ALTER "+B,Y="FROM",k="DELETE "+Y,x=U+"*"+Y,z="pragma_",G="data_version",H="schema_version",q="pragma_table_",K="CREATE "+B,Q=a=>D(I(((a,t="",e)=>a.split(t,e))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),V=(a,t=[1])=>D(I(a,()=>"$"+t[0]++),n),W=(a,t=i)=>j+`(${r(t,"$tableName",Q(a))})`,X=Object,Z=a=>X.getPrototypeOf(a),aa=X.entries,ta=a=>!w(a)&&v(Z(a),a=>a==X.prototype||w(Z(a)),()=>!0),ea=X.keys,na=X.freeze,sa=(a=[])=>X.fromEntries(a),ia=(...a)=>X.assign({},...a),ra=(a,t)=>(delete a[t],a),oa=(a,t)=>I(aa(a),([a,e])=>t(e,a)),ca=(a,t)=>sa(oa(a,(a,e)=>[e,t(a,e)])),la=a=>N(ea(a)),wa=a=>ta(a)&&0==la(a),ua=Map,ya=a=>new ua(a),da=(a,t)=>a?.get(t),va=(a,t)=>I([...a?.entries()??[]],([a,e])=>t(e,a)),pa=(a,t,e)=>u(e)?(P(a,t),a):a?.set(t,e),Ea=(a,t,e,n)=>(b(a,t)?n?.(da(a,t)):pa(a,t,e()),da(a,t)),Aa=(a,t,e,n,s=0)=>p((e?Ea:da)(a,t[s],s>N(t)-2?e:ya),i=>{if(s>N(t)-2)return n?.(i)&&pa(a,t[s]),i;const r=Aa(i,t,e,n,s+1);return C(i)&&pa(a,t[s]),r}),Na=a=>new Set(A(a)||u(a)?a:[a]),ma=(a,t)=>a?.add(t),$a="ColumnName",ga="store",fa="json",Oa=ga+"TableName",Da=ga+"Id"+$a,Ia=ga+$a,Sa="autoLoadIntervalSeconds",Ta="rowId"+$a,_a="tableId",ha="tableName",ba="deleteEmptyColumns",Ca="deleteEmptyTable",La="condition",Ra={mode:fa,[Sa]:1},Pa={load:0,save:0,[ha]:t+"_values"},Ma=a=>A(a)?a:void 0,Fa=a=>d(a)||A(a),Ua=(a,t,e,n,s)=>{const i=ya();return ca(a,(a,r)=>{const o=(w=ia(t,E(a)?{[e]:a}:a),c=X.values(w),l=la(t),c.slice(0,l));var c,l,w;y(o[0])||n(r,o[0])||(s(r,o[0]),pa(i,r,o))}),i},ja=JSON.stringify,Ba=JSON.parse,Ja=a=>""===a?void 0:A(a)?I(a,Ja):ta(a)?ca(a,Ja):a,Ya=/^\d+$/,ka=ya(),xa=ya(),za=(a,t,n,s,i,r,o,c={},l=0,w=[])=>{let d,v,E,m=0,$=0,D=0;Ea(ka,w,()=>0),Ea(xa,w,()=>[]);const I=ya(),[S,T,b,L,M]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!e),([[a],[t]])=>!wa(a)||!wa(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!wa(a)||!wa(t),t.setContent]:g("Store type not supported by this Persister"))(o,a,l),[F,U,j]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?h(a):null)??e+t++,t=>{Ya.test(t)&&N(a)<1e3&&_(a,t)}]})(),s=ya();return[(n,i,r,o=[],c=()=>[])=>{a??=W;const l=t(1);return pa(s,l,[n,i,r,o,c]),ma(Aa(i,r??[e],Na),l),l},(t,n,...i)=>O(((a,t=[e])=>{const n=[],s=(a,e)=>e==N(t)?_(n,a):y(t[e])?R(a,a=>s(a,e+1)):O([t[e],null],t=>s(da(a,t),e+1));return s(a,0),n})(t,n),t=>R(t,t=>da(s,t)[0](a,...n??[],...i))),a=>p(da(s,a),([,t,i])=>(Aa(t,i??[e],void 0,t=>(P(t,a),C(t)?1:0)),pa(s,a),n(a),i)),t=>p(da(s,t),([t,,e=[],n,s])=>{const i=(...r)=>{const o=N(r);o==N(e)?t(a,...r,...s(r)):y(e[o])?O(n[o]?.(...r)??[],a=>i(...r,a)):i(...r,e[o])};i()})]})(),B=a=>{a!=m&&(m=a,U(I,void 0,m))},J=t=>{(S&&A(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},Y=async()=>{K()&&a.__?.[0]?.()&&await G()},k=async a=>(2!=m&&(B(1),$++,await V(async()=>{await f(async()=>{const e=await t();A(e)?J(e):u(e)&&a?M(a):u(e)||g("Content is not an array: "+e)},t=>{r?.(t),a&&M(a)}),B(0),await Y()})),W),x=async a=>(z(),await k(a),await f(async()=>v=await s(async(a,t)=>{t||a?2!=m&&(B(1),$++,J(t??a),B(0),await Y()):await k()}),r),W),z=async()=>(v&&(await f(()=>i(v),r),v=void 0),W),G=async a=>(1!=m&&(B(2),D++,await V(async()=>{await f(()=>n(T,a),r),B(0)})),W),H=async()=>(q(),await G(),E=a.addDidFinishTransactionListener(()=>{const a=b();L(a)&&G(a)}),W),q=async()=>(E&&(a.delListener(E),E=void 0),W),K=()=>!u(E),Q=async(a=!1)=>{const[t,e]=a?[q,z]:[z,q];return await t(),await e(),W},V=async(...a)=>(_(da(xa,w),...a),await(async()=>{if(!da(ka,w)){for(pa(ka,w,1);!u(d=h(da(xa,w)));)await f(d,r);pa(ka,w,0)}})(),W),W={load:k,startAutoLoad:x,stopAutoLoad:z,isAutoLoading:()=>!u(v),save:G,startAutoSave:H,stopAutoSave:q,isAutoSaving:K,startAutoPersisting:async(a,t=!1)=>{const[e,n]=t?[H,x]:[x,H];return await e(a),await n(a),W},stopAutoPersisting:Q,getStatus:()=>m,addStatusListener:a=>F(a,I),delListener:t=>(j(t),a),schedule:V,getStore:()=>a,destroy:()=>(da(xa,w).splice(0,void 0),Q()),getStats:()=>({loads:$,saves:D}),...c};return na(W)},Ga=(a,t,e,s,r,o=Ha,c,l)=>{const w=ya();return[async()=>{w.clear(),I(await e(a,t),({tn:a,cn:t})=>ma(Ea(w,a,Na),t))},async(t,e,n,s)=>{const i=u(s)?void 0:Na(s);return((a,t)=>b(da(w,a),t))(t,e)?sa(T(I(await a(x+Q(t)+W(t,n)),a=>{const t=a[e],n=l?ca(ra(a,e),l):ra(a,e);return[t,u(i)?n:sa(T(oa(n,(a,t)=>[t,a]),([a])=>(a=>u(i)||b(i,a))(a)))]}),a=>!u(a[0])&&!wa(a[1]))):{}},async(t,e,s,l,y,d=!1,v=i,p)=>{const E=u(p)?void 0:Na(p),A=a=>u(E)||b(E,a),N=Na();ca(s??{},a=>I(T(ea(a??{}),A),a=>ma(N,a)));const m=L(N);if(u(E)&&!d&&y&&v==i&&S(m)&&b(w,t))return await a("DROP "+B+Q(t)),void pa(w,t);const g=da(w,t),f=Na(T(L(g),a=>a==e||A(a)));if(S(m)||(b(w,t)?await $(I([e,...m],async(n,s)=>{P(f,n)||(await a(J+Q(t)+"ADD"+Q(n)+r),0==s&&await a("CREATE UNIQUE INDEX pk ON "+Q(t)+`(${Q(e)})`),ma(g,n))})):(await a(K+Q(t)+`(${Q(e)}${r} PRIMARY KEY${D(I(m,a=>n+Q(a)+r))});`),pa(w,t,Na([e,...m])))),await $([...!d&&l?I(L(f),async n=>{n!=e&&(await a(J+Q(t)+"DROP"+Q(n)),P(g,n))}):[]]),d)u(s)?u(E)&&await a(k+Q(t)+W(t,v)):await $(oa(s,async(n,s)=>{if(u(n))await a(k+Q(t)+W(t,v)+`AND(${Q(e)}=$1)`,[s]);else if(!S(m)){const i=T(ea(n),A);S(i)||await o(a,t,e,i,{[s]:I(i,a=>c?c(n[a]):n[a])},g)}}));else if(S(m))u(E)&&b(w,t)&&await a(k+Q(t)+W(t,v));else{const n=T(L(da(w,t)),a=>a!=e&&A(a)),i={},r=[];ca(s??{},(a,t)=>{i[t]=I(n,t=>c?c(a?.[t]):a?.[t]),_(r,t)}),await o(a,t,e,n,i,g),await a(k+Q(t)+W(t,v)+`AND${Q(e)}NOT IN(${V(r)})`,r)}},async t=>{let e;return await a("BEGIN"),await f(async()=>e=await t(),s),await a("END"),e}]},Ha=async(a,t,e,s,i)=>{const r=[1];await a("INSERT INTO"+Q(t)+"("+((...a)=>D(I(a,Q),n))(e,...s)+")VALUES"+D(oa(i,a=>"($"+r[0]+++","+V(a,r)+")"),n)+"ON CONFLICT("+Q(e)+")DO UPDATE SET"+D(I(s,a=>Q(a)+"=excluded."+Q(a)),n),oa(i,(a,t)=>[t,...I(a,a=>a??null)]).flat())},qa=(a,t,e,n,s,i,r,[o,c,l],w,y,d,v,p,E)=>{const[A,N,m,$]=Ga(t,w,y,s,p,E),g=za(a,()=>$(async()=>{return await A(),a=(await N(o,c))[M]?.[l]??"null",Ja(Ba(a));var a}),a=>$(async()=>{var t;await A(),await m(o,c,{[M]:{[l]:(t=a()??null,ja(t,(a,t)=>u(t)?"":t))}},!0,!0)}),e,n,s,r,{[v]:()=>d,destroy:async()=>(await g.stopAutoPersisting(),i(),g)},0,d);return g},Ka=(a,t,e,n,s,i,r,[o,c,[l,w,y,d,v]],p,E,A,N,m,g,f,O)=>{const[D,S,_,h]=Ga(t,p,E,s,m,g,f,O),b=(a,t)=>$(va(c,async([e,n,s,i,r],o)=>{t&&!(o in a)||await _(e,n,a[o],s,i,t,r)})),C=(a,t,e)=>sa(1==e?T(oa(a,(a,t)=>[t,a]),([a])=>{return e=a,t.includes(e);var e}):T(I(t,t=>[t,a[t]]),([,a])=>!u(a))),L=async(a,t)=>w?await _(y,F,{[M]:u(v)?a:C(a,v,t)},!0,!0,t,void 0,v):null,R=za(a,()=>h(async()=>{await D();const a=await(async()=>sa(T(await $(va(o,async([a,t,e],n)=>[a,await S(n,t,e)])),a=>!wa(a[1]))))(),t=await(async()=>l?(await S(y,F,void 0,d))[M]:{})();return wa(a)&&u(t)?void 0:[a,t]}),(a,t)=>h(async()=>{if(await D(),u(t)){const[t,e]=a();await b(t),await L(e)}else await b(t[0],!0),await L(t[1],!0)}),e,n,s,r,{[N]:()=>A,destroy:async()=>(await R.stopAutoPersisting(),i(),R)},0,A);return R},Qa=(a,n,s,r,o,c,u,y,v,p,A="getDb",N)=>{let m,$,g;const O=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(s,c),[D,I,S,T]=(a=>{const e=(a=>ia(Ra,E(a)?{[Oa]:a}:a??{}))(a),n=e[Sa];if(e.mode==fa){const a=e[Oa]??t;return[1,n,[a,e[Da]??F,e[Ia]??ga],Na(a)]}const{tables:{load:s={},save:r={}}={},values:o={}}=e,c=ia(Pa,o),{load:l,save:w}=c,u=[Fa(l),Fa(w),c[ha],Ma(l),Ma(w)],y=u[2],d=Na(y),v=Na(y),p=Ua(s,{[_a]:null,[Ta]:F,[La]:i},_a,a=>b(v,a),a=>ma(d,a)),A=Ua(r,{[ha]:null,[Ta]:F,[ba]:0,[Ca]:0,[La]:null},ha,(a,t)=>b(v,t),(a,t)=>ma(d,t));var N;return N=(a,t)=>t[4]??=da(p,t[0])?.[2]??i,R(A,(a,t)=>N(0,a)),[0,n,[p,A,u],d]})(n);return(D?qa:Ka)(a,O,a=>{let t;const e=()=>t=setInterval(()=>f(async()=>{const[{d:t,s:e,c:n}]=await O(U+` ${G} d,${H} s,TOTAL_CHANGES() c FROM ${z}${G} JOIN ${z}${H}`);t==m&&e==$&&n==g||(w(m)||a(),m=t,$=e,g=n)}),1e3*I),n=()=>{m=$=g=null,l(t)},s=r(t=>{T.has(t)&&(n(),a(),e())});return e(),()=>{n(),o(s)}},a=>a(),u,y,v,S,L(T),async(a,t)=>await a(U+` t.name tn,c.name cn FROM ${q}list()t,${q}info(t.name)c ${j} t.schema='main'AND t.type IN('table','view')AND t.name IN(${V(t)})ORDER BY t.name,c.name`,t),p,A,e,N,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0)},Va=(a,t,e,n,s)=>Qa(a,e,async(a,e=[])=>t.query(a).all(...e),()=>m,a=>a(),n,s,m,3,t);export{Va as createSqliteBunPersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",r=(a,t,e)=>a.replace(t,e),o=Promise,c=a=>(t,e,n)=>a(t)?n?.():e(t),l=clearInterval,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=c(w),p=c(u),E=t=>a(t)==s,A=a=>Array.isArray(a),N=a=>a.length,m=()=>{},$=async a=>o.all(a),g=a=>{throw Error(a)},f=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},O=(a,t)=>a.forEach(t),D=(a,t="")=>a.join(t),I=(a,t)=>a.map(t),S=a=>0==N(a),T=(a,t)=>a.filter(t),_=(a,...t)=>a.push(...t),h=a=>a.shift(),b=(a,t)=>a?.has(t)??!1,C=a=>u(a)||0==(a=>a?.size??0)(a),L=a=>[...a?.values()??[]],R=(a,t)=>a?.forEach(t),P=(a,t)=>a?.delete(t),M="_",F="_id",U="SELECT",j="WHERE",B="TABLE",J="ALTER "+B,Y="FROM",k="DELETE "+Y,x=U+"*"+Y,z="pragma_",G="data_version",H="schema_version",q="pragma_table_",K="CREATE "+B,Q=a=>D(I(((a,t="",e)=>a.split(t,e))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),V=(a,t=[1])=>D(I(a,()=>"$"+t[0]++),n),W=(a,t=i)=>j+`(${r(t,"$tableName",Q(a))})`,X=Object,Z=a=>X.getPrototypeOf(a),aa=X.entries,ta=a=>!w(a)&&v(Z(a),a=>a==X.prototype||w(Z(a)),()=>!0),ea=X.keys,na=X.freeze,sa=(a=[])=>X.fromEntries(a),ia=(...a)=>X.assign({},...a),ra=(a,t)=>(delete a[t],a),oa=(a,t)=>I(aa(a),([a,e])=>t(e,a)),ca=(a,t)=>sa(oa(a,(a,e)=>[e,t(a,e)])),la=a=>N(ea(a)),wa=a=>ta(a)&&0==la(a),ua=Map,ya=a=>new ua(a),da=(a,t)=>a?.get(t),va=(a,t)=>I([...a?.entries()??[]],([a,e])=>t(e,a)),pa=(a,t,e)=>u(e)?(P(a,t),a):a?.set(t,e),Ea=(a,t,e,n)=>(b(a,t)?n?.(da(a,t)):pa(a,t,e()),da(a,t)),Aa=(a,t,e,n,s=0)=>p((e?Ea:da)(a,t[s],s>N(t)-2?e:ya),i=>{if(s>N(t)-2)return n?.(i)&&pa(a,t[s]),i;const r=Aa(i,t,e,n,s+1);return C(i)&&pa(a,t[s]),r}),Na=a=>new Set(A(a)||u(a)?a:[a]),ma=(a,t)=>a?.add(t),$a="ColumnName",ga="store",fa="json",Oa=ga+"TableName",Da=ga+"Id"+$a,Ia=ga+$a,Sa="autoLoadIntervalSeconds",Ta="rowId"+$a,_a="tableId",ha="tableName",ba="deleteEmptyColumns",Ca="deleteEmptyTable",La="condition",Ra={mode:fa,[Sa]:1},Pa={load:0,save:0,[ha]:t+"_values"},Ma=a=>A(a)?a:void 0,Fa=a=>d(a)||A(a),Ua=(a,t,e,n,s)=>{const i=ya();return ca(a,(a,r)=>{const o=(w=ia(t,E(a)?{[e]:a}:a),c=X.values(w),l=la(t),c.slice(0,l));var c,l,w;y(o[0])||n(r,o[0])||(s(r,o[0]),pa(i,r,o))}),i},ja=JSON.stringify,Ba=JSON.parse,Ja=a=>""===a?void 0:A(a)?I(a,Ja):ta(a)?ca(a,Ja):a,Ya=/^\d+$/,ka=ya(),xa=ya(),za=(a,t,n,s,i,r,o,c={},l=0,w=[])=>{let d,v,E,m=0,$=0,D=0;Ea(ka,w,()=>0),Ea(xa,w,()=>[]);const I=ya(),[S,T,b,L,M]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!e),([[a],[t]])=>!wa(a)||!wa(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!wa(a)||!wa(t),t.setContent]:g("Store type not supported by this Persister"))(o,a,l),[F,U,j]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?h(a):null)??e+t++,t=>{Ya.test(t)&&N(a)<1e3&&_(a,t)}]})(),s=ya();return[(n,i,r,o=[],c=()=>[])=>{a??=W;const l=t(1);return pa(s,l,[n,i,r,o,c]),ma(Aa(i,r??[e],Na),l),l},(t,n,...i)=>O(((a,t=[e])=>{const n=[],s=(a,e)=>e==N(t)?_(n,a):y(t[e])?R(a,a=>s(a,e+1)):O([t[e],null],t=>s(da(a,t),e+1));return s(a,0),n})(t,n),t=>R(t,t=>da(s,t)[0](a,...n??[],...i))),a=>p(da(s,a),([,t,i])=>(Aa(t,i??[e],void 0,t=>(P(t,a),C(t)?1:0)),pa(s,a),n(a),i)),t=>p(da(s,t),([t,,e=[],n,s])=>{const i=(...r)=>{const o=N(r);o==N(e)?t(a,...r,...s(r)):y(e[o])?O(n[o]?.(...r)??[],a=>i(...r,a)):i(...r,e[o])};i()})]})(),B=a=>{a!=m&&(m=a,U(I,void 0,m))},J=t=>{(S&&A(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},Y=async()=>{K()&&a.__?.[0]?.()&&await G()},k=async a=>(2!=m&&(B(1),$++,await V(async()=>{await f(async()=>{const e=await t();A(e)?J(e):a?M(a):g("Content is not an array: "+e)},()=>{a&&M(a)}),B(0),await Y()})),W),x=async a=>(z(),await k(a),await f(async()=>v=await s(async(a,t)=>{t||a?2!=m&&(B(1),$++,J(t??a),B(0),await Y()):await k()}),r),W),z=async()=>(v&&(await f(()=>i(v),r),v=void 0),W),G=async a=>(1!=m&&(B(2),D++,await V(async()=>{await f(()=>n(T,a),r),B(0)})),W),H=async()=>(q(),await G(),E=a.addDidFinishTransactionListener(()=>{const a=b();L(a)&&G(a)}),W),q=async()=>(E&&(a.delListener(E),E=void 0),W),K=()=>!u(E),Q=async(a=!1)=>{const[t,e]=a?[q,z]:[z,q];return await t(),await e(),W},V=async(...a)=>(_(da(xa,w),...a),await(async()=>{if(!da(ka,w)){for(pa(ka,w,1);!u(d=h(da(xa,w)));)await f(d,r);pa(ka,w,0)}})(),W),W={load:k,startAutoLoad:x,stopAutoLoad:z,isAutoLoading:()=>!u(v),save:G,startAutoSave:H,stopAutoSave:q,isAutoSaving:K,startAutoPersisting:async(a,t=!1)=>{const[e,n]=t?[H,x]:[x,H];return await e(a),await n(a),W},stopAutoPersisting:Q,getStatus:()=>m,addStatusListener:a=>F(a,I),delListener:t=>(j(t),a),schedule:V,getStore:()=>a,destroy:()=>(da(xa,w).splice(0,void 0),Q()),getStats:()=>({loads:$,saves:D}),...c};return na(W)},Ga=(a,t,e,s,r,o=Ha,c,l)=>{const w=ya();return[async()=>{w.clear(),I(await e(a,t),({tn:a,cn:t})=>ma(Ea(w,a,Na),t))},async(t,e,n,s)=>{const i=u(s)?void 0:Na(s);return((a,t)=>b(da(w,a),t))(t,e)?sa(T(I(await a(x+Q(t)+W(t,n)),a=>{const t=a[e],n=l?ca(ra(a,e),l):ra(a,e);return[t,u(i)?n:sa(T(oa(n,(a,t)=>[t,a]),([a])=>(a=>u(i)||b(i,a))(a)))]}),a=>!u(a[0])&&!wa(a[1]))):{}},async(t,e,s,l,y,d=!1,v=i,p)=>{const E=u(p)?void 0:Na(p),A=a=>u(E)||b(E,a),N=Na();ca(s??{},a=>I(T(ea(a??{}),A),a=>ma(N,a)));const m=L(N);if(u(E)&&!d&&y&&v==i&&S(m)&&b(w,t))return await a("DROP "+B+Q(t)),void pa(w,t);const g=da(w,t),f=Na(T(L(g),a=>a==e||A(a)));if(S(m)||(b(w,t)?await $(I([e,...m],async(n,s)=>{P(f,n)||(await a(J+Q(t)+"ADD"+Q(n)+r),0==s&&await a("CREATE UNIQUE INDEX pk ON "+Q(t)+`(${Q(e)})`),ma(g,n))})):(await a(K+Q(t)+`(${Q(e)}${r} PRIMARY KEY${D(I(m,a=>n+Q(a)+r))});`),pa(w,t,Na([e,...m])))),await $([...!d&&l?I(L(f),async n=>{n!=e&&(await a(J+Q(t)+"DROP"+Q(n)),P(g,n))}):[]]),d)u(s)?u(E)&&await a(k+Q(t)+W(t,v)):await $(oa(s,async(n,s)=>{if(u(n))await a(k+Q(t)+W(t,v)+`AND(${Q(e)}=$1)`,[s]);else if(!S(m)){const i=T(ea(n),A);S(i)||await o(a,t,e,i,{[s]:I(i,a=>c?c(n[a]):n[a])},g)}}));else if(S(m))u(E)&&b(w,t)&&await a(k+Q(t)+W(t,v));else{const n=T(L(da(w,t)),a=>a!=e&&A(a)),i={},r=[];ca(s??{},(a,t)=>{i[t]=I(n,t=>c?c(a?.[t]):a?.[t]),_(r,t)}),await o(a,t,e,n,i,g),await a(k+Q(t)+W(t,v)+`AND${Q(e)}NOT IN(${V(r)})`,r)}},async t=>{let e;return await a("BEGIN"),await f(async()=>e=await t(),s),await a("END"),e}]},Ha=async(a,t,e,s,i)=>{const r=[1];await a("INSERT INTO"+Q(t)+"("+((...a)=>D(I(a,Q),n))(e,...s)+")VALUES"+D(oa(i,a=>"($"+r[0]+++","+V(a,r)+")"),n)+"ON CONFLICT("+Q(e)+")DO UPDATE SET"+D(I(s,a=>Q(a)+"=excluded."+Q(a)),n),oa(i,(a,t)=>[t,...I(a,a=>a??null)]).flat())},qa=(a,t,e,n,s,i,r,[o,c,l],w,y,d,v,p,E)=>{const[A,N,m,$]=Ga(t,w,y,s,p,E),g=za(a,()=>$(async()=>{return await A(),a=(await N(o,c))[M]?.[l]??"null",Ja(Ba(a));var a}),a=>$(async()=>{var t;await A(),await m(o,c,{[M]:{[l]:(t=a()??null,ja(t,(a,t)=>u(t)?"":t))}},!0,!0)}),e,n,s,r,{[v]:()=>d,destroy:async()=>(await g.stopAutoPersisting(),i(),g)},0,d);return g},Ka=(a,t,e,n,s,i,r,[o,c,[l,w,y,d,v]],p,E,A,N,m,g,f,O)=>{const[D,S,_,h]=Ga(t,p,E,s,m,g,f,O),b=(a,t)=>$(va(c,async([e,n,s,i,r],o)=>{t&&!(o in a)||await _(e,n,a[o],s,i,t,r)})),C=(a,t,e)=>sa(1==e?T(oa(a,(a,t)=>[t,a]),([a])=>{return e=a,t.includes(e);var e}):T(I(t,t=>[t,a[t]]),([,a])=>!u(a))),L=async(a,t)=>w?await _(y,F,{[M]:u(v)?a:C(a,v,t)},!0,!0,t,void 0,v):null,R=za(a,()=>h(async()=>{await D();const a=await(async()=>sa(T(await $(va(o,async([a,t,e],n)=>[a,await S(n,t,e)])),a=>!wa(a[1]))))(),t=await(async()=>l?(await S(y,F,void 0,d))[M]:{})();return wa(a)&&u(t)?void 0:[a,t]}),(a,t)=>h(async()=>{if(await D(),u(t)){const[t,e]=a();await b(t),await L(e)}else await b(t[0],!0),await L(t[1],!0)}),e,n,s,r,{[N]:()=>A,destroy:async()=>(await R.stopAutoPersisting(),i(),R)},0,A);return R},Qa=(a,n,s,r,o,c,u,y,v,p,A="getDb",N)=>{let m,$,g;const O=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(s,c),[D,I,S,T]=(a=>{const e=(a=>ia(Ra,E(a)?{[Oa]:a}:a??{}))(a),n=e[Sa];if(e.mode==fa){const a=e[Oa]??t;return[1,n,[a,e[Da]??F,e[Ia]??ga],Na(a)]}const{tables:{load:s={},save:r={}}={},values:o={}}=e,c=ia(Pa,o),{load:l,save:w}=c,u=[Fa(l),Fa(w),c[ha],Ma(l),Ma(w)],y=u[2],d=Na(y),v=Na(y),p=Ua(s,{[_a]:null,[Ta]:F,[La]:i},_a,a=>b(v,a),a=>ma(d,a)),A=Ua(r,{[ha]:null,[Ta]:F,[ba]:0,[Ca]:0,[La]:null},ha,(a,t)=>b(v,t),(a,t)=>ma(d,t));var N;return N=(a,t)=>t[4]??=da(p,t[0])?.[2]??i,R(A,(a,t)=>N(0,a)),[0,n,[p,A,u],d]})(n);return(D?qa:Ka)(a,O,a=>{let t;const e=()=>t=setInterval(()=>f(async()=>{const[{d:t,s:e,c:n}]=await O(U+` ${G} d,${H} s,TOTAL_CHANGES() c FROM ${z}${G} JOIN ${z}${H}`);t==m&&e==$&&n==g||(w(m)||a(),m=t,$=e,g=n)}),1e3*I),n=()=>{m=$=g=null,l(t)},s=r(t=>{T.has(t)&&(n(),a(),e())});return e(),()=>{n(),o(s)}},a=>a(),u,y,v,S,L(T),async(a,t)=>await a(U+` t.name tn,c.name cn FROM ${q}list()t,${q}info(t.name)c ${j} t.schema='main'AND t.type IN('table','view')AND t.name IN(${V(t)})ORDER BY t.name,c.name`,t),p,A,e,N,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0)},Va=(a,t,e,n,s)=>Qa(a,e,async(a,e=[])=>t.query(a).all(...e),()=>m,a=>a(),n,s,m,3,t);export{Va as createSqliteBunPersister};
1
+ const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",r=(a,t,e)=>a.replace(t,e),o=Promise,c=a=>(t,e,n)=>a(t)?n?.():e(t),l=clearInterval,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=c(w),p=c(u),E=t=>a(t)==s,A=a=>Array.isArray(a),N=a=>a.length,m=()=>{},$=async a=>o.all(a),g=a=>{throw Error(a)},f=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},O=(a,t)=>a.forEach(t),D=(a,t="")=>a.join(t),I=(a,t)=>a.map(t),S=a=>0==N(a),T=(a,t)=>a.filter(t),_=(a,...t)=>a.push(...t),h=a=>a.shift(),b=(a,t)=>a?.has(t)??!1,C=a=>u(a)||0==(a=>a?.size??0)(a),L=a=>[...a?.values()??[]],R=(a,t)=>a?.forEach(t),P=(a,t)=>a?.delete(t),M="_",F="_id",U="SELECT",j="WHERE",B="TABLE",J="ALTER "+B,Y="FROM",k="DELETE "+Y,x=U+"*"+Y,z="pragma_",G="data_version",H="schema_version",q="pragma_table_",K="CREATE "+B,Q=a=>D(I(((a,t="",e)=>a.split(t,e))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),V=(a,t=[1])=>D(I(a,()=>"$"+t[0]++),n),W=(a,t=i)=>j+`(${r(t,"$tableName",Q(a))})`,X=Object,Z=a=>X.getPrototypeOf(a),aa=X.entries,ta=a=>!w(a)&&v(Z(a),a=>a==X.prototype||w(Z(a)),()=>!0),ea=X.keys,na=X.freeze,sa=(a=[])=>X.fromEntries(a),ia=(...a)=>X.assign({},...a),ra=(a,t)=>(delete a[t],a),oa=(a,t)=>I(aa(a),([a,e])=>t(e,a)),ca=(a,t)=>sa(oa(a,(a,e)=>[e,t(a,e)])),la=a=>N(ea(a)),wa=a=>ta(a)&&0==la(a),ua=Map,ya=a=>new ua(a),da=(a,t)=>a?.get(t),va=(a,t)=>I([...a?.entries()??[]],([a,e])=>t(e,a)),pa=(a,t,e)=>u(e)?(P(a,t),a):a?.set(t,e),Ea=(a,t,e,n)=>(b(a,t)?n?.(da(a,t)):pa(a,t,e()),da(a,t)),Aa=(a,t,e,n,s=0)=>p((e?Ea:da)(a,t[s],s>N(t)-2?e:ya),i=>{if(s>N(t)-2)return n?.(i)&&pa(a,t[s]),i;const r=Aa(i,t,e,n,s+1);return C(i)&&pa(a,t[s]),r}),Na=a=>new Set(A(a)||u(a)?a:[a]),ma=(a,t)=>a?.add(t),$a="ColumnName",ga="store",fa="json",Oa=ga+"TableName",Da=ga+"Id"+$a,Ia=ga+$a,Sa="autoLoadIntervalSeconds",Ta="rowId"+$a,_a="tableId",ha="tableName",ba="deleteEmptyColumns",Ca="deleteEmptyTable",La="condition",Ra={mode:fa,[Sa]:1},Pa={load:0,save:0,[ha]:t+"_values"},Ma=a=>A(a)?a:void 0,Fa=a=>d(a)||A(a),Ua=(a,t,e,n,s)=>{const i=ya();return ca(a,(a,r)=>{const o=(w=ia(t,E(a)?{[e]:a}:a),c=X.values(w),l=la(t),c.slice(0,l));var c,l,w;y(o[0])||n(r,o[0])||(s(r,o[0]),pa(i,r,o))}),i},ja=JSON.stringify,Ba=JSON.parse,Ja=a=>""===a?void 0:A(a)?I(a,Ja):ta(a)?ca(a,Ja):a,Ya=/^\d+$/,ka=ya(),xa=ya(),za=(a,t,n,s,i,r,o,c={},l=0,w=[])=>{let d,v,E,m=0,$=0,D=0;Ea(ka,w,()=>0),Ea(xa,w,()=>[]);const I=ya(),[S,T,b,L,M]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!e),([[a],[t]])=>!wa(a)||!wa(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!wa(a)||!wa(t),t.setContent]:g("Store type not supported by this Persister"))(o,a,l),[F,U,j]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?h(a):null)??e+t++,t=>{Ya.test(t)&&N(a)<1e3&&_(a,t)}]})(),s=ya();return[(n,i,r,o=[],c=()=>[])=>{a??=W;const l=t(1);return pa(s,l,[n,i,r,o,c]),ma(Aa(i,r??[e],Na),l),l},(t,n,...i)=>O(((a,t=[e])=>{const n=[],s=(a,e)=>e==N(t)?_(n,a):y(t[e])?R(a,a=>s(a,e+1)):O([t[e],null],t=>s(da(a,t),e+1));return s(a,0),n})(t,n),t=>R(t,t=>da(s,t)[0](a,...n??[],...i))),a=>p(da(s,a),([,t,i])=>(Aa(t,i??[e],void 0,t=>(P(t,a),C(t)?1:0)),pa(s,a),n(a),i)),t=>p(da(s,t),([t,,e=[],n,s])=>{const i=(...r)=>{const o=N(r);o==N(e)?t(a,...r,...s(r)):y(e[o])?O(n[o]?.(...r)??[],a=>i(...r,a)):i(...r,e[o])};i()})]})(),B=a=>{a!=m&&(m=a,U(I,void 0,m))},J=t=>{(S&&A(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},Y=async()=>{K()&&a.__?.[0]?.()&&await G()},k=async a=>(2!=m&&(B(1),$++,await V(async()=>{await f(async()=>{const e=await t();A(e)?J(e):u(e)&&a?M(a):u(e)||g("Content is not an array: "+e)},t=>{r?.(t),a&&M(a)}),B(0),await Y()})),W),x=async a=>(z(),await k(a),await f(async()=>v=await s(async(a,t)=>{t||a?2!=m&&(B(1),$++,J(t??a),B(0),await Y()):await k()}),r),W),z=async()=>(v&&(await f(()=>i(v),r),v=void 0),W),G=async a=>(1!=m&&(B(2),D++,await V(async()=>{await f(()=>n(T,a),r),B(0)})),W),H=async()=>(q(),await G(),E=a.addDidFinishTransactionListener(()=>{const a=b();L(a)&&G(a)}),W),q=async()=>(E&&(a.delListener(E),E=void 0),W),K=()=>!u(E),Q=async(a=!1)=>{const[t,e]=a?[q,z]:[z,q];return await t(),await e(),W},V=async(...a)=>(_(da(xa,w),...a),await(async()=>{if(!da(ka,w)){for(pa(ka,w,1);!u(d=h(da(xa,w)));)await f(d,r);pa(ka,w,0)}})(),W),W={load:k,startAutoLoad:x,stopAutoLoad:z,isAutoLoading:()=>!u(v),save:G,startAutoSave:H,stopAutoSave:q,isAutoSaving:K,startAutoPersisting:async(a,t=!1)=>{const[e,n]=t?[H,x]:[x,H];return await e(a),await n(a),W},stopAutoPersisting:Q,getStatus:()=>m,addStatusListener:a=>F(a,I),delListener:t=>(j(t),a),schedule:V,getStore:()=>a,destroy:()=>(da(xa,w).splice(0,void 0),Q()),getStats:()=>({loads:$,saves:D}),...c};return na(W)},Ga=(a,t,e,s,r,o=Ha,c,l)=>{const w=ya();return[async()=>{w.clear(),I(await e(a,t),({tn:a,cn:t})=>ma(Ea(w,a,Na),t))},async(t,e,n,s)=>{const i=u(s)?void 0:Na(s);return((a,t)=>b(da(w,a),t))(t,e)?sa(T(I(await a(x+Q(t)+W(t,n)),a=>{const t=a[e],n=l?ca(ra(a,e),l):ra(a,e);return[t,u(i)?n:sa(T(oa(n,(a,t)=>[t,a]),([a])=>(a=>u(i)||b(i,a))(a)))]}),a=>!u(a[0])&&!wa(a[1]))):{}},async(t,e,s,l,y,d=!1,v=i,p)=>{const E=u(p)?void 0:Na(p),A=a=>u(E)||b(E,a),N=Na();ca(s??{},a=>I(T(ea(a??{}),A),a=>ma(N,a)));const m=L(N);if(u(E)&&!d&&y&&v==i&&S(m)&&b(w,t))return await a("DROP "+B+Q(t)),void pa(w,t);const g=da(w,t),f=Na(T(L(g),a=>a==e||A(a)));if(S(m)||(b(w,t)?await $(I([e,...m],async(n,s)=>{P(f,n)||(await a(J+Q(t)+"ADD"+Q(n)+r),0==s&&await a("CREATE UNIQUE INDEX pk ON "+Q(t)+`(${Q(e)})`),ma(g,n))})):(await a(K+Q(t)+`(${Q(e)}${r} PRIMARY KEY${D(I(m,a=>n+Q(a)+r))});`),pa(w,t,Na([e,...m])))),await $([...!d&&l?I(L(f),async n=>{n!=e&&(await a(J+Q(t)+"DROP"+Q(n)),P(g,n))}):[]]),d)u(s)?u(E)&&await a(k+Q(t)+W(t,v)):await $(oa(s,async(n,s)=>{if(u(n))await a(k+Q(t)+W(t,v)+`AND(${Q(e)}=$1)`,[s]);else if(!S(m)){const i=T(ea(n),A);S(i)||await o(a,t,e,i,{[s]:I(i,a=>c?c(n[a]):n[a])},g)}}));else if(S(m))u(E)&&b(w,t)&&await a(k+Q(t)+W(t,v));else{const n=T(L(da(w,t)),a=>a!=e&&A(a)),i={},r=[];ca(s??{},(a,t)=>{i[t]=I(n,t=>c?c(a?.[t]):a?.[t]),_(r,t)}),await o(a,t,e,n,i,g),await a(k+Q(t)+W(t,v)+`AND${Q(e)}NOT IN(${V(r)})`,r)}},async t=>{let e;return await a("BEGIN"),await f(async()=>e=await t(),s),await a("END"),e}]},Ha=async(a,t,e,s,i)=>{const r=[1];await a("INSERT INTO"+Q(t)+"("+((...a)=>D(I(a,Q),n))(e,...s)+")VALUES"+D(oa(i,a=>"($"+r[0]+++","+V(a,r)+")"),n)+"ON CONFLICT("+Q(e)+")DO UPDATE SET"+D(I(s,a=>Q(a)+"=excluded."+Q(a)),n),oa(i,(a,t)=>[t,...I(a,a=>a??null)]).flat())},qa=(a,t,e,n,s,i,r,[o,c,l],w,y,d,v,p,E)=>{const[A,N,m,$]=Ga(t,w,y,s,p,E),g=za(a,()=>$(async()=>{return await A(),a=(await N(o,c))[M]?.[l]??"null",Ja(Ba(a));var a}),a=>$(async()=>{var t;await A(),await m(o,c,{[M]:{[l]:(t=a()??null,ja(t,(a,t)=>u(t)?"":t))}},!0,!0)}),e,n,s,r,{[v]:()=>d,destroy:async()=>(await g.stopAutoPersisting(),i(),g)},0,d);return g},Ka=(a,t,e,n,s,i,r,[o,c,[l,w,y,d,v]],p,E,A,N,m,g,f,O)=>{const[D,S,_,h]=Ga(t,p,E,s,m,g,f,O),b=(a,t)=>$(va(c,async([e,n,s,i,r],o)=>{t&&!(o in a)||await _(e,n,a[o],s,i,t,r)})),C=(a,t,e)=>sa(1==e?T(oa(a,(a,t)=>[t,a]),([a])=>{return e=a,t.includes(e);var e}):T(I(t,t=>[t,a[t]]),([,a])=>!u(a))),L=async(a,t)=>w?await _(y,F,{[M]:u(v)?a:C(a,v,t)},!0,!0,t,void 0,v):null,R=za(a,()=>h(async()=>{await D();const a=await(async()=>sa(T(await $(va(o,async([a,t,e],n)=>[a,await S(n,t,e)])),a=>!wa(a[1]))))(),t=await(async()=>l?(await S(y,F,void 0,d))[M]:{})();return wa(a)&&u(t)?void 0:[a,t]}),(a,t)=>h(async()=>{if(await D(),u(t)){const[t,e]=a();await b(t),await L(e)}else await b(t[0],!0),await L(t[1],!0)}),e,n,s,r,{[N]:()=>A,destroy:async()=>(await R.stopAutoPersisting(),i(),R)},0,A);return R},Qa=(a,n,s,r,o,c,u,y,v,p,A="getDb",N)=>{let m,$,g;const O=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(s,c),[D,I,S,T]=(a=>{const e=(a=>ia(Ra,E(a)?{[Oa]:a}:a??{}))(a),n=e[Sa];if(e.mode==fa){const a=e[Oa]??t;return[1,n,[a,e[Da]??F,e[Ia]??ga],Na(a)]}const{tables:{load:s={},save:r={}}={},values:o={}}=e,c=ia(Pa,o),{load:l,save:w}=c,u=[Fa(l),Fa(w),c[ha],Ma(l),Ma(w)],y=u[2],d=Na(y),v=Na(y),p=Ua(s,{[_a]:null,[Ta]:F,[La]:i},_a,a=>b(v,a),a=>ma(d,a)),A=Ua(r,{[ha]:null,[Ta]:F,[ba]:0,[Ca]:0,[La]:null},ha,(a,t)=>b(v,t),(a,t)=>ma(d,t));var N;return N=(a,t)=>t[4]??=da(p,t[0])?.[2]??i,R(A,(a,t)=>N(0,a)),[0,n,[p,A,u],d]})(n);return(D?qa:Ka)(a,O,a=>{let t;const e=()=>t=setInterval(()=>f(async()=>{const[{d:t,s:e,c:n}]=await O(U+` ${G} d,${H} s,TOTAL_CHANGES() c FROM ${z}${G} JOIN ${z}${H}`);t==m&&e==$&&n==g||(w(m)||a(),m=t,$=e,g=n)}),1e3*I),n=()=>{m=$=g=null,l(t)},s=r(t=>{T.has(t)&&(n(),a(),e())});return e(),()=>{n(),o(s)}},a=>a(),u,y,v,S,L(T),async(a,t)=>await a(U+` t.name tn,c.name cn FROM ${q}list()t,${q}info(t.name)c ${j} t.schema='main'AND t.type IN('table','view')AND t.name IN(${V(t)})ORDER BY t.name,c.name`,t),p,A,e,N,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0)},Va=(a,t,e,n,s)=>Qa(a,e,async(a,e=[])=>t.query(a).all(...e),()=>m,a=>a(),n,s,m,3,t);export{Va as createSqliteBunPersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",o=(a,t,e)=>a.replace(t,e),r=Promise,c=a=>(t,e,n)=>a(t)?n?.():e(t),l=clearInterval,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=c(w),p=c(u),E=t=>a(t)==s,A=a=>Array.isArray(a),m=a=>a.length,N=()=>{},$=async a=>r.all(a),g=a=>{throw Error(a)},f=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},_=(a,t)=>a.forEach(t),h=(a,t="")=>a.join(t),O=(a,t)=>a.map(t),b=a=>0==m(a),D=(a,t)=>a.filter(t),I=(a,...t)=>a.push(...t),S=a=>a.shift(),T=(a,t)=>a?.has(t)??!1,C=a=>u(a)||0==(a=>a?.size??0)(a),L=a=>[...a?.values()??[]],R=(a,t)=>a?.forEach(t),P=(a,t)=>a?.delete(t),M="_",F="_id",j="SELECT",k="WHERE",U="TABLE",x="ALTER "+U,B="FROM",J="DELETE "+B,Y=j+"*"+B,q="pragma_",z="data_version",G="schema_version",H="pragma_table_",V="CREATE "+U,K=a=>h(O(((a,t="",e)=>a.split(t,e))(a,"."),a=>`"${o(a,/"/g,'""')}"`),"."),Q=(a,t=[1])=>h(O(a,()=>"$"+t[0]++),n),W=(a,t=i)=>k+`(${o(t,"$tableName",K(a))})`,X=Object,Z=a=>X.getPrototypeOf(a),aa=X.entries,ta=a=>!w(a)&&v(Z(a),a=>a==X.prototype||w(Z(a)),()=>!0),ea=X.keys,na=X.freeze,sa=(a=[])=>X.fromEntries(a),ia=(...a)=>X.assign({},...a),oa=(a,t)=>(delete a[t],a),ra=(a,t)=>O(aa(a),([a,e])=>t(e,a)),ca=(a,t)=>sa(ra(a,(a,e)=>[e,t(a,e)])),la=a=>m(ea(a)),wa=a=>ta(a)&&0==la(a),ua=Map,ya=a=>new ua(a),da=(a,t)=>a?.get(t),va=(a,t)=>O([...a?.entries()??[]],([a,e])=>t(e,a)),pa=(a,t,e)=>u(e)?(P(a,t),a):a?.set(t,e),Ea=(a,t,e,n)=>(T(a,t)?n?.(da(a,t)):pa(a,t,e()),da(a,t)),Aa=(a,t,e,n,s=0)=>p((e?Ea:da)(a,t[s],s>m(t)-2?e:ya),i=>{if(s>m(t)-2)return n?.(i)&&pa(a,t[s]),i;const o=Aa(i,t,e,n,s+1);return C(i)&&pa(a,t[s]),o}),ma=a=>new Set(A(a)||u(a)?a:[a]),Na=(a,t)=>a?.add(t),$a="ColumnName",ga="store",fa="json",_a=ga+"TableName",ha=ga+"Id"+$a,Oa=ga+$a,ba="autoLoadIntervalSeconds",Da="rowId"+$a,Ia="tableId",Sa="tableName",Ta="deleteEmptyColumns",Ca="deleteEmptyTable",La="condition",Ra={mode:fa,[ba]:1},Pa={load:0,save:0,[Sa]:t+"_values"},Ma=a=>A(a)?a:void 0,Fa=a=>d(a)||A(a),ja=(a,t,e,n,s)=>{const i=ya();return ca(a,(a,o)=>{const r=(w=ia(t,E(a)?{[e]:a}:a),c=X.values(w),l=la(t),c.slice(0,l));var c,l,w;y(r[0])||n(o,r[0])||(s(o,r[0]),pa(i,o,r))}),i},ka=JSON.stringify,Ua=JSON.parse,xa=a=>""===a?void 0:A(a)?O(a,xa):ta(a)?ca(a,xa):a,Ba=/^\d+$/,Ja=ya(),Ya=ya(),qa=(a,t,n,s,i,o,r,c={},l=0,w=[])=>{let d,v,E,N=0,$=0,h=0;Ea(Ja,w,()=>0),Ea(Ya,w,()=>[]);const O=ya(),[b,D,T,L,M]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!e),([[a],[t]])=>!wa(a)||!wa(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!wa(a)||!wa(t),t.setContent]:g("Store type not supported by this Persister"))(r,a,l),[F,j,k]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?S(a):null)??e+t++,t=>{Ba.test(t)&&m(a)<1e3&&I(a,t)}]})(),s=ya();return[(n,i,o,r=[],c=()=>[])=>{a??=W;const l=t(1);return pa(s,l,[n,i,o,r,c]),Na(Aa(i,o??[e],ma),l),l},(t,n,...i)=>_(((a,t=[e])=>{const n=[],s=(a,e)=>e==m(t)?I(n,a):y(t[e])?R(a,a=>s(a,e+1)):_([t[e],null],t=>s(da(a,t),e+1));return s(a,0),n})(t,n),t=>R(t,t=>da(s,t)[0](a,...n??[],...i))),a=>p(da(s,a),([,t,i])=>(Aa(t,i??[e],void 0,t=>(P(t,a),C(t)?1:0)),pa(s,a),n(a),i)),t=>p(da(s,t),([t,,e=[],n,s])=>{const i=(...o)=>{const r=m(o);r==m(e)?t(a,...o,...s(o)):y(e[r])?_(n[r]?.(...o)??[],a=>i(...o,a)):i(...o,e[r])};i()})]})(),U=a=>{a!=N&&(N=a,j(O,void 0,N))},x=t=>{(b&&A(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},B=async()=>{V()&&a.__?.[0]?.()&&await z()},J=async a=>(2!=N&&(U(1),$++,await Q(async()=>{await f(async()=>{const e=await t();A(e)?x(e):a?M(a):g("Content is not an array: "+e)},()=>{a&&M(a)}),U(0),await B()})),W),Y=async a=>(q(),await J(a),await f(async()=>v=await s(async(a,t)=>{t||a?2!=N&&(U(1),$++,x(t??a),U(0),await B()):await J()}),o),W),q=async()=>(v&&(await f(()=>i(v),o),v=void 0),W),z=async a=>(1!=N&&(U(2),h++,await Q(async()=>{await f(()=>n(D,a),o),U(0)})),W),G=async()=>(H(),await z(),E=a.addDidFinishTransactionListener(()=>{const a=T();L(a)&&z(a)}),W),H=async()=>(E&&(a.delListener(E),E=void 0),W),V=()=>!u(E),K=async(a=!1)=>{const[t,e]=a?[H,q]:[q,H];return await t(),await e(),W},Q=async(...a)=>(I(da(Ya,w),...a),await(async()=>{if(!da(Ja,w)){for(pa(Ja,w,1);!u(d=S(da(Ya,w)));)await f(d,o);pa(Ja,w,0)}})(),W),W={load:J,startAutoLoad:Y,stopAutoLoad:q,isAutoLoading:()=>!u(v),save:z,startAutoSave:G,stopAutoSave:H,isAutoSaving:V,startAutoPersisting:async(a,t=!1)=>{const[e,n]=t?[G,Y]:[Y,G];return await e(a),await n(a),W},stopAutoPersisting:K,getStatus:()=>N,addStatusListener:a=>F(a,O),delListener:t=>(k(t),a),schedule:Q,getStore:()=>a,destroy:()=>(da(Ya,w).splice(0,void 0),K()),getStats:()=>({loads:$,saves:h}),...c};return na(W)},za=(a,t,e,s,o,r=Ga,c,l)=>{const w=ya();return[async()=>{w.clear(),O(await e(a,t),({tn:a,cn:t})=>Na(Ea(w,a,ma),t))},async(t,e,n,s)=>{const i=u(s)?void 0:ma(s);return((a,t)=>T(da(w,a),t))(t,e)?sa(D(O(await a(Y+K(t)+W(t,n)),a=>{const t=a[e],n=l?ca(oa(a,e),l):oa(a,e);return[t,u(i)?n:sa(D(ra(n,(a,t)=>[t,a]),([a])=>(a=>u(i)||T(i,a))(a)))]}),a=>!u(a[0])&&!wa(a[1]))):{}},async(t,e,s,l,y,d=!1,v=i,p)=>{const E=u(p)?void 0:ma(p),A=a=>u(E)||T(E,a),m=ma();ca(s??{},a=>O(D(ea(a??{}),A),a=>Na(m,a)));const N=L(m);if(u(E)&&!d&&y&&v==i&&b(N)&&T(w,t))return await a("DROP "+U+K(t)),void pa(w,t);const g=da(w,t),f=ma(D(L(g),a=>a==e||A(a)));if(b(N)||(T(w,t)?await $(O([e,...N],async(n,s)=>{P(f,n)||(await a(x+K(t)+"ADD"+K(n)+o),0==s&&await a("CREATE UNIQUE INDEX pk ON "+K(t)+`(${K(e)})`),Na(g,n))})):(await a(V+K(t)+`(${K(e)}${o} PRIMARY KEY${h(O(N,a=>n+K(a)+o))});`),pa(w,t,ma([e,...N])))),await $([...!d&&l?O(L(f),async n=>{n!=e&&(await a(x+K(t)+"DROP"+K(n)),P(g,n))}):[]]),d)u(s)?u(E)&&await a(J+K(t)+W(t,v)):await $(ra(s,async(n,s)=>{if(u(n))await a(J+K(t)+W(t,v)+`AND(${K(e)}=$1)`,[s]);else if(!b(N)){const i=D(ea(n),A);b(i)||await r(a,t,e,i,{[s]:O(i,a=>c?c(n[a]):n[a])},g)}}));else if(b(N))u(E)&&T(w,t)&&await a(J+K(t)+W(t,v));else{const n=D(L(da(w,t)),a=>a!=e&&A(a)),i={},o=[];ca(s??{},(a,t)=>{i[t]=O(n,t=>c?c(a?.[t]):a?.[t]),I(o,t)}),await r(a,t,e,n,i,g),await a(J+K(t)+W(t,v)+`AND${K(e)}NOT IN(${Q(o)})`,o)}},async t=>{let e;return await a("BEGIN"),await f(async()=>e=await t(),s),await a("END"),e}]},Ga=async(a,t,e,s,i)=>{const o=[1];await a("INSERT INTO"+K(t)+"("+((...a)=>h(O(a,K),n))(e,...s)+")VALUES"+h(ra(i,a=>"($"+o[0]+++","+Q(a,o)+")"),n)+"ON CONFLICT("+K(e)+")DO UPDATE SET"+h(O(s,a=>K(a)+"=excluded."+K(a)),n),ra(i,(a,t)=>[t,...O(a,a=>a??null)]).flat())},Ha=(a,t,e,n,s,i,o,[r,c,l],w,y,d,v,p,E)=>{const[A,m,N,$]=za(t,w,y,s,p,E),g=qa(a,()=>$(async()=>{return await A(),a=(await m(r,c))[M]?.[l]??"null",xa(Ua(a));var a}),a=>$(async()=>{var t;await A(),await N(r,c,{[M]:{[l]:(t=a()??null,ka(t,(a,t)=>u(t)?"":t))}},!0,!0)}),e,n,s,o,{[v]:()=>d,destroy:async()=>(await g.stopAutoPersisting(),i(),g)},0,d);return g},Va=(a,t,e,n,s,i,o,[r,c,[l,w,y,d,v]],p,E,A,m,N,g,f,_)=>{const[h,b,I,S]=za(t,p,E,s,N,g,f,_),T=(a,t)=>$(va(c,async([e,n,s,i,o],r)=>{t&&!(r in a)||await I(e,n,a[r],s,i,t,o)})),C=(a,t,e)=>sa(1==e?D(ra(a,(a,t)=>[t,a]),([a])=>{return e=a,t.includes(e);var e}):D(O(t,t=>[t,a[t]]),([,a])=>!u(a))),L=async(a,t)=>w?await I(y,F,{[M]:u(v)?a:C(a,v,t)},!0,!0,t,void 0,v):null,R=qa(a,()=>S(async()=>{await h();const a=await(async()=>sa(D(await $(va(r,async([a,t,e],n)=>[a,await b(n,t,e)])),a=>!wa(a[1]))))(),t=await(async()=>l?(await b(y,F,void 0,d))[M]:{})();return wa(a)&&u(t)?void 0:[a,t]}),(a,t)=>S(async()=>{if(await h(),u(t)){const[t,e]=a();await T(t),await L(e)}else await T(t[0],!0),await L(t[1],!0)}),e,n,s,o,{[m]:()=>A,destroy:async()=>(await R.stopAutoPersisting(),i(),R)},0,A);return R},Ka=(a,n,s,o,r,c,u,y,v,p,A="getDb",m)=>{let N,$,g;const _=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(s,c),[h,O,b,D]=(a=>{const e=(a=>ia(Ra,E(a)?{[_a]:a}:a??{}))(a),n=e[ba];if(e.mode==fa){const a=e[_a]??t;return[1,n,[a,e[ha]??F,e[Oa]??ga],ma(a)]}const{tables:{load:s={},save:o={}}={},values:r={}}=e,c=ia(Pa,r),{load:l,save:w}=c,u=[Fa(l),Fa(w),c[Sa],Ma(l),Ma(w)],y=u[2],d=ma(y),v=ma(y),p=ja(s,{[Ia]:null,[Da]:F,[La]:i},Ia,a=>T(v,a),a=>Na(d,a)),A=ja(o,{[Sa]:null,[Da]:F,[Ta]:0,[Ca]:0,[La]:null},Sa,(a,t)=>T(v,t),(a,t)=>Na(d,t));var m;return m=(a,t)=>t[4]??=da(p,t[0])?.[2]??i,R(A,(a,t)=>m(0,a)),[0,n,[p,A,u],d]})(n);return(h?Ha:Va)(a,_,a=>{let t;const e=()=>t=setInterval(()=>f(async()=>{const[{d:t,s:e,c:n}]=await _(j+` ${z} d,${G} s,TOTAL_CHANGES() c FROM ${q}${z} JOIN ${q}${G}`);t==N&&e==$&&n==g||(w(N)||a(),N=t,$=e,g=n)}),1e3*O),n=()=>{N=$=g=null,l(t)},s=o(t=>{D.has(t)&&(n(),a(),e())});return e(),()=>{n(),r(s)}},a=>a(),u,y,v,b,L(D),async(a,t)=>await a(j+` t.name tn,c.name cn FROM ${H}list()t,${H}info(t.name)c ${k} t.schema='main'AND t.type IN('table','view')AND t.name IN(${Q(t)})ORDER BY t.name,c.name`,t),p,A,e,m,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0)},Qa=(a,t,e,n,s,i)=>Ka(a,n,async(a,t=[])=>e.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}).map(a=>({...a})),a=>t.capi.sqlite3_update_hook(e,(t,e,n,s)=>a(s),0),()=>t.capi.sqlite3_update_hook(e,N,0),s,i,N,3,e);export{Qa as createSqliteWasmPersister};
1
+ const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",o=(a,t,e)=>a.replace(t,e),r=Promise,c=a=>(t,e,n)=>a(t)?n?.():e(t),l=clearInterval,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=c(w),p=c(u),E=t=>a(t)==s,A=a=>Array.isArray(a),m=a=>a.length,N=()=>{},$=async a=>r.all(a),g=a=>{throw Error(a)},f=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},_=(a,t)=>a.forEach(t),h=(a,t="")=>a.join(t),O=(a,t)=>a.map(t),b=a=>0==m(a),D=(a,t)=>a.filter(t),I=(a,...t)=>a.push(...t),S=a=>a.shift(),T=(a,t)=>a?.has(t)??!1,C=a=>u(a)||0==(a=>a?.size??0)(a),L=a=>[...a?.values()??[]],R=(a,t)=>a?.forEach(t),P=(a,t)=>a?.delete(t),M="_",F="_id",j="SELECT",k="WHERE",U="TABLE",x="ALTER "+U,B="FROM",J="DELETE "+B,Y=j+"*"+B,q="pragma_",z="data_version",G="schema_version",H="pragma_table_",V="CREATE "+U,K=a=>h(O(((a,t="",e)=>a.split(t,e))(a,"."),a=>`"${o(a,/"/g,'""')}"`),"."),Q=(a,t=[1])=>h(O(a,()=>"$"+t[0]++),n),W=(a,t=i)=>k+`(${o(t,"$tableName",K(a))})`,X=Object,Z=a=>X.getPrototypeOf(a),aa=X.entries,ta=a=>!w(a)&&v(Z(a),a=>a==X.prototype||w(Z(a)),()=>!0),ea=X.keys,na=X.freeze,sa=(a=[])=>X.fromEntries(a),ia=(...a)=>X.assign({},...a),oa=(a,t)=>(delete a[t],a),ra=(a,t)=>O(aa(a),([a,e])=>t(e,a)),ca=(a,t)=>sa(ra(a,(a,e)=>[e,t(a,e)])),la=a=>m(ea(a)),wa=a=>ta(a)&&0==la(a),ua=Map,ya=a=>new ua(a),da=(a,t)=>a?.get(t),va=(a,t)=>O([...a?.entries()??[]],([a,e])=>t(e,a)),pa=(a,t,e)=>u(e)?(P(a,t),a):a?.set(t,e),Ea=(a,t,e,n)=>(T(a,t)?n?.(da(a,t)):pa(a,t,e()),da(a,t)),Aa=(a,t,e,n,s=0)=>p((e?Ea:da)(a,t[s],s>m(t)-2?e:ya),i=>{if(s>m(t)-2)return n?.(i)&&pa(a,t[s]),i;const o=Aa(i,t,e,n,s+1);return C(i)&&pa(a,t[s]),o}),ma=a=>new Set(A(a)||u(a)?a:[a]),Na=(a,t)=>a?.add(t),$a="ColumnName",ga="store",fa="json",_a=ga+"TableName",ha=ga+"Id"+$a,Oa=ga+$a,ba="autoLoadIntervalSeconds",Da="rowId"+$a,Ia="tableId",Sa="tableName",Ta="deleteEmptyColumns",Ca="deleteEmptyTable",La="condition",Ra={mode:fa,[ba]:1},Pa={load:0,save:0,[Sa]:t+"_values"},Ma=a=>A(a)?a:void 0,Fa=a=>d(a)||A(a),ja=(a,t,e,n,s)=>{const i=ya();return ca(a,(a,o)=>{const r=(w=ia(t,E(a)?{[e]:a}:a),c=X.values(w),l=la(t),c.slice(0,l));var c,l,w;y(r[0])||n(o,r[0])||(s(o,r[0]),pa(i,o,r))}),i},ka=JSON.stringify,Ua=JSON.parse,xa=a=>""===a?void 0:A(a)?O(a,xa):ta(a)?ca(a,xa):a,Ba=/^\d+$/,Ja=ya(),Ya=ya(),qa=(a,t,n,s,i,o,r,c={},l=0,w=[])=>{let d,v,E,N=0,$=0,h=0;Ea(Ja,w,()=>0),Ea(Ya,w,()=>[]);const O=ya(),[b,D,T,L,M]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!e),([[a],[t]])=>!wa(a)||!wa(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!wa(a)||!wa(t),t.setContent]:g("Store type not supported by this Persister"))(r,a,l),[F,j,k]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?S(a):null)??e+t++,t=>{Ba.test(t)&&m(a)<1e3&&I(a,t)}]})(),s=ya();return[(n,i,o,r=[],c=()=>[])=>{a??=W;const l=t(1);return pa(s,l,[n,i,o,r,c]),Na(Aa(i,o??[e],ma),l),l},(t,n,...i)=>_(((a,t=[e])=>{const n=[],s=(a,e)=>e==m(t)?I(n,a):y(t[e])?R(a,a=>s(a,e+1)):_([t[e],null],t=>s(da(a,t),e+1));return s(a,0),n})(t,n),t=>R(t,t=>da(s,t)[0](a,...n??[],...i))),a=>p(da(s,a),([,t,i])=>(Aa(t,i??[e],void 0,t=>(P(t,a),C(t)?1:0)),pa(s,a),n(a),i)),t=>p(da(s,t),([t,,e=[],n,s])=>{const i=(...o)=>{const r=m(o);r==m(e)?t(a,...o,...s(o)):y(e[r])?_(n[r]?.(...o)??[],a=>i(...o,a)):i(...o,e[r])};i()})]})(),U=a=>{a!=N&&(N=a,j(O,void 0,N))},x=t=>{(b&&A(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},B=async()=>{V()&&a.__?.[0]?.()&&await z()},J=async a=>(2!=N&&(U(1),$++,await Q(async()=>{await f(async()=>{const e=await t();A(e)?x(e):u(e)&&a?M(a):u(e)||g("Content is not an array: "+e)},t=>{o?.(t),a&&M(a)}),U(0),await B()})),W),Y=async a=>(q(),await J(a),await f(async()=>v=await s(async(a,t)=>{t||a?2!=N&&(U(1),$++,x(t??a),U(0),await B()):await J()}),o),W),q=async()=>(v&&(await f(()=>i(v),o),v=void 0),W),z=async a=>(1!=N&&(U(2),h++,await Q(async()=>{await f(()=>n(D,a),o),U(0)})),W),G=async()=>(H(),await z(),E=a.addDidFinishTransactionListener(()=>{const a=T();L(a)&&z(a)}),W),H=async()=>(E&&(a.delListener(E),E=void 0),W),V=()=>!u(E),K=async(a=!1)=>{const[t,e]=a?[H,q]:[q,H];return await t(),await e(),W},Q=async(...a)=>(I(da(Ya,w),...a),await(async()=>{if(!da(Ja,w)){for(pa(Ja,w,1);!u(d=S(da(Ya,w)));)await f(d,o);pa(Ja,w,0)}})(),W),W={load:J,startAutoLoad:Y,stopAutoLoad:q,isAutoLoading:()=>!u(v),save:z,startAutoSave:G,stopAutoSave:H,isAutoSaving:V,startAutoPersisting:async(a,t=!1)=>{const[e,n]=t?[G,Y]:[Y,G];return await e(a),await n(a),W},stopAutoPersisting:K,getStatus:()=>N,addStatusListener:a=>F(a,O),delListener:t=>(k(t),a),schedule:Q,getStore:()=>a,destroy:()=>(da(Ya,w).splice(0,void 0),K()),getStats:()=>({loads:$,saves:h}),...c};return na(W)},za=(a,t,e,s,o,r=Ga,c,l)=>{const w=ya();return[async()=>{w.clear(),O(await e(a,t),({tn:a,cn:t})=>Na(Ea(w,a,ma),t))},async(t,e,n,s)=>{const i=u(s)?void 0:ma(s);return((a,t)=>T(da(w,a),t))(t,e)?sa(D(O(await a(Y+K(t)+W(t,n)),a=>{const t=a[e],n=l?ca(oa(a,e),l):oa(a,e);return[t,u(i)?n:sa(D(ra(n,(a,t)=>[t,a]),([a])=>(a=>u(i)||T(i,a))(a)))]}),a=>!u(a[0])&&!wa(a[1]))):{}},async(t,e,s,l,y,d=!1,v=i,p)=>{const E=u(p)?void 0:ma(p),A=a=>u(E)||T(E,a),m=ma();ca(s??{},a=>O(D(ea(a??{}),A),a=>Na(m,a)));const N=L(m);if(u(E)&&!d&&y&&v==i&&b(N)&&T(w,t))return await a("DROP "+U+K(t)),void pa(w,t);const g=da(w,t),f=ma(D(L(g),a=>a==e||A(a)));if(b(N)||(T(w,t)?await $(O([e,...N],async(n,s)=>{P(f,n)||(await a(x+K(t)+"ADD"+K(n)+o),0==s&&await a("CREATE UNIQUE INDEX pk ON "+K(t)+`(${K(e)})`),Na(g,n))})):(await a(V+K(t)+`(${K(e)}${o} PRIMARY KEY${h(O(N,a=>n+K(a)+o))});`),pa(w,t,ma([e,...N])))),await $([...!d&&l?O(L(f),async n=>{n!=e&&(await a(x+K(t)+"DROP"+K(n)),P(g,n))}):[]]),d)u(s)?u(E)&&await a(J+K(t)+W(t,v)):await $(ra(s,async(n,s)=>{if(u(n))await a(J+K(t)+W(t,v)+`AND(${K(e)}=$1)`,[s]);else if(!b(N)){const i=D(ea(n),A);b(i)||await r(a,t,e,i,{[s]:O(i,a=>c?c(n[a]):n[a])},g)}}));else if(b(N))u(E)&&T(w,t)&&await a(J+K(t)+W(t,v));else{const n=D(L(da(w,t)),a=>a!=e&&A(a)),i={},o=[];ca(s??{},(a,t)=>{i[t]=O(n,t=>c?c(a?.[t]):a?.[t]),I(o,t)}),await r(a,t,e,n,i,g),await a(J+K(t)+W(t,v)+`AND${K(e)}NOT IN(${Q(o)})`,o)}},async t=>{let e;return await a("BEGIN"),await f(async()=>e=await t(),s),await a("END"),e}]},Ga=async(a,t,e,s,i)=>{const o=[1];await a("INSERT INTO"+K(t)+"("+((...a)=>h(O(a,K),n))(e,...s)+")VALUES"+h(ra(i,a=>"($"+o[0]+++","+Q(a,o)+")"),n)+"ON CONFLICT("+K(e)+")DO UPDATE SET"+h(O(s,a=>K(a)+"=excluded."+K(a)),n),ra(i,(a,t)=>[t,...O(a,a=>a??null)]).flat())},Ha=(a,t,e,n,s,i,o,[r,c,l],w,y,d,v,p,E)=>{const[A,m,N,$]=za(t,w,y,s,p,E),g=qa(a,()=>$(async()=>{return await A(),a=(await m(r,c))[M]?.[l]??"null",xa(Ua(a));var a}),a=>$(async()=>{var t;await A(),await N(r,c,{[M]:{[l]:(t=a()??null,ka(t,(a,t)=>u(t)?"":t))}},!0,!0)}),e,n,s,o,{[v]:()=>d,destroy:async()=>(await g.stopAutoPersisting(),i(),g)},0,d);return g},Va=(a,t,e,n,s,i,o,[r,c,[l,w,y,d,v]],p,E,A,m,N,g,f,_)=>{const[h,b,I,S]=za(t,p,E,s,N,g,f,_),T=(a,t)=>$(va(c,async([e,n,s,i,o],r)=>{t&&!(r in a)||await I(e,n,a[r],s,i,t,o)})),C=(a,t,e)=>sa(1==e?D(ra(a,(a,t)=>[t,a]),([a])=>{return e=a,t.includes(e);var e}):D(O(t,t=>[t,a[t]]),([,a])=>!u(a))),L=async(a,t)=>w?await I(y,F,{[M]:u(v)?a:C(a,v,t)},!0,!0,t,void 0,v):null,R=qa(a,()=>S(async()=>{await h();const a=await(async()=>sa(D(await $(va(r,async([a,t,e],n)=>[a,await b(n,t,e)])),a=>!wa(a[1]))))(),t=await(async()=>l?(await b(y,F,void 0,d))[M]:{})();return wa(a)&&u(t)?void 0:[a,t]}),(a,t)=>S(async()=>{if(await h(),u(t)){const[t,e]=a();await T(t),await L(e)}else await T(t[0],!0),await L(t[1],!0)}),e,n,s,o,{[m]:()=>A,destroy:async()=>(await R.stopAutoPersisting(),i(),R)},0,A);return R},Ka=(a,n,s,o,r,c,u,y,v,p,A="getDb",m)=>{let N,$,g;const _=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(s,c),[h,O,b,D]=(a=>{const e=(a=>ia(Ra,E(a)?{[_a]:a}:a??{}))(a),n=e[ba];if(e.mode==fa){const a=e[_a]??t;return[1,n,[a,e[ha]??F,e[Oa]??ga],ma(a)]}const{tables:{load:s={},save:o={}}={},values:r={}}=e,c=ia(Pa,r),{load:l,save:w}=c,u=[Fa(l),Fa(w),c[Sa],Ma(l),Ma(w)],y=u[2],d=ma(y),v=ma(y),p=ja(s,{[Ia]:null,[Da]:F,[La]:i},Ia,a=>T(v,a),a=>Na(d,a)),A=ja(o,{[Sa]:null,[Da]:F,[Ta]:0,[Ca]:0,[La]:null},Sa,(a,t)=>T(v,t),(a,t)=>Na(d,t));var m;return m=(a,t)=>t[4]??=da(p,t[0])?.[2]??i,R(A,(a,t)=>m(0,a)),[0,n,[p,A,u],d]})(n);return(h?Ha:Va)(a,_,a=>{let t;const e=()=>t=setInterval(()=>f(async()=>{const[{d:t,s:e,c:n}]=await _(j+` ${z} d,${G} s,TOTAL_CHANGES() c FROM ${q}${z} JOIN ${q}${G}`);t==N&&e==$&&n==g||(w(N)||a(),N=t,$=e,g=n)}),1e3*O),n=()=>{N=$=g=null,l(t)},s=o(t=>{D.has(t)&&(n(),a(),e())});return e(),()=>{n(),r(s)}},a=>a(),u,y,v,b,L(D),async(a,t)=>await a(j+` t.name tn,c.name cn FROM ${H}list()t,${H}info(t.name)c ${k} t.schema='main'AND t.type IN('table','view')AND t.name IN(${Q(t)})ORDER BY t.name,c.name`,t),p,A,e,m,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0)},Qa=(a,t,e,n,s,i)=>Ka(a,n,async(a,t=[])=>e.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}).map(a=>({...a})),a=>t.capi.sqlite3_update_hook(e,(t,e,n,s)=>a(s),0),()=>t.capi.sqlite3_update_hook(e,N,0),s,i,N,3,e);export{Qa as createSqliteWasmPersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",o=(a,t,e)=>a.replace(t,e),r=Promise,c=a=>(t,e,n)=>a(t)?n?.():e(t),l=clearInterval,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=c(w),p=c(u),E=t=>a(t)==s,A=a=>Array.isArray(a),m=a=>a.length,N=()=>{},$=async a=>r.all(a),g=a=>{throw Error(a)},f=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},_=(a,t)=>a.forEach(t),h=(a,t="")=>a.join(t),O=(a,t)=>a.map(t),b=a=>0==m(a),D=(a,t)=>a.filter(t),I=(a,...t)=>a.push(...t),S=a=>a.shift(),T=(a,t)=>a?.has(t)??!1,C=a=>u(a)||0==(a=>a?.size??0)(a),L=a=>[...a?.values()??[]],R=(a,t)=>a?.forEach(t),P=(a,t)=>a?.delete(t),M="_",F="_id",j="SELECT",k="WHERE",U="TABLE",x="ALTER "+U,B="FROM",J="DELETE "+B,Y=j+"*"+B,q="pragma_",z="data_version",G="schema_version",H="pragma_table_",V="CREATE "+U,K=a=>h(O(((a,t="",e)=>a.split(t,e))(a,"."),a=>`"${o(a,/"/g,'""')}"`),"."),Q=(a,t=[1])=>h(O(a,()=>"$"+t[0]++),n),W=(a,t=i)=>k+`(${o(t,"$tableName",K(a))})`,X=Object,Z=a=>X.getPrototypeOf(a),aa=X.entries,ta=a=>!w(a)&&v(Z(a),a=>a==X.prototype||w(Z(a)),()=>!0),ea=X.keys,na=X.freeze,sa=(a=[])=>X.fromEntries(a),ia=(...a)=>X.assign({},...a),oa=(a,t)=>(delete a[t],a),ra=(a,t)=>O(aa(a),([a,e])=>t(e,a)),ca=(a,t)=>sa(ra(a,(a,e)=>[e,t(a,e)])),la=a=>m(ea(a)),wa=a=>ta(a)&&0==la(a),ua=Map,ya=a=>new ua(a),da=(a,t)=>a?.get(t),va=(a,t)=>O([...a?.entries()??[]],([a,e])=>t(e,a)),pa=(a,t,e)=>u(e)?(P(a,t),a):a?.set(t,e),Ea=(a,t,e,n)=>(T(a,t)?n?.(da(a,t)):pa(a,t,e()),da(a,t)),Aa=(a,t,e,n,s=0)=>p((e?Ea:da)(a,t[s],s>m(t)-2?e:ya),i=>{if(s>m(t)-2)return n?.(i)&&pa(a,t[s]),i;const o=Aa(i,t,e,n,s+1);return C(i)&&pa(a,t[s]),o}),ma=a=>new Set(A(a)||u(a)?a:[a]),Na=(a,t)=>a?.add(t),$a="ColumnName",ga="store",fa="json",_a=ga+"TableName",ha=ga+"Id"+$a,Oa=ga+$a,ba="autoLoadIntervalSeconds",Da="rowId"+$a,Ia="tableId",Sa="tableName",Ta="deleteEmptyColumns",Ca="deleteEmptyTable",La="condition",Ra={mode:fa,[ba]:1},Pa={load:0,save:0,[Sa]:t+"_values"},Ma=a=>A(a)?a:void 0,Fa=a=>d(a)||A(a),ja=(a,t,e,n,s)=>{const i=ya();return ca(a,(a,o)=>{const r=(w=ia(t,E(a)?{[e]:a}:a),c=X.values(w),l=la(t),c.slice(0,l));var c,l,w;y(r[0])||n(o,r[0])||(s(o,r[0]),pa(i,o,r))}),i},ka=JSON.stringify,Ua=JSON.parse,xa=a=>""===a?void 0:A(a)?O(a,xa):ta(a)?ca(a,xa):a,Ba=/^\d+$/,Ja=ya(),Ya=ya(),qa=(a,t,n,s,i,o,r,c={},l=0,w=[])=>{let d,v,E,N=0,$=0,h=0;Ea(Ja,w,()=>0),Ea(Ya,w,()=>[]);const O=ya(),[b,D,T,L,M]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!e),([[a],[t]])=>!wa(a)||!wa(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!wa(a)||!wa(t),t.setContent]:g("Store type not supported by this Persister"))(r,a,l),[F,j,k]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?S(a):null)??e+t++,t=>{Ba.test(t)&&m(a)<1e3&&I(a,t)}]})(),s=ya();return[(n,i,o,r=[],c=()=>[])=>{a??=W;const l=t(1);return pa(s,l,[n,i,o,r,c]),Na(Aa(i,o??[e],ma),l),l},(t,n,...i)=>_(((a,t=[e])=>{const n=[],s=(a,e)=>e==m(t)?I(n,a):y(t[e])?R(a,a=>s(a,e+1)):_([t[e],null],t=>s(da(a,t),e+1));return s(a,0),n})(t,n),t=>R(t,t=>da(s,t)[0](a,...n??[],...i))),a=>p(da(s,a),([,t,i])=>(Aa(t,i??[e],void 0,t=>(P(t,a),C(t)?1:0)),pa(s,a),n(a),i)),t=>p(da(s,t),([t,,e=[],n,s])=>{const i=(...o)=>{const r=m(o);r==m(e)?t(a,...o,...s(o)):y(e[r])?_(n[r]?.(...o)??[],a=>i(...o,a)):i(...o,e[r])};i()})]})(),U=a=>{a!=N&&(N=a,j(O,void 0,N))},x=t=>{(b&&A(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},B=async()=>{V()&&a.__?.[0]?.()&&await z()},J=async a=>(2!=N&&(U(1),$++,await Q(async()=>{await f(async()=>{const e=await t();A(e)?x(e):a?M(a):g("Content is not an array: "+e)},()=>{a&&M(a)}),U(0),await B()})),W),Y=async a=>(q(),await J(a),await f(async()=>v=await s(async(a,t)=>{t||a?2!=N&&(U(1),$++,x(t??a),U(0),await B()):await J()}),o),W),q=async()=>(v&&(await f(()=>i(v),o),v=void 0),W),z=async a=>(1!=N&&(U(2),h++,await Q(async()=>{await f(()=>n(D,a),o),U(0)})),W),G=async()=>(H(),await z(),E=a.addDidFinishTransactionListener(()=>{const a=T();L(a)&&z(a)}),W),H=async()=>(E&&(a.delListener(E),E=void 0),W),V=()=>!u(E),K=async(a=!1)=>{const[t,e]=a?[H,q]:[q,H];return await t(),await e(),W},Q=async(...a)=>(I(da(Ya,w),...a),await(async()=>{if(!da(Ja,w)){for(pa(Ja,w,1);!u(d=S(da(Ya,w)));)await f(d,o);pa(Ja,w,0)}})(),W),W={load:J,startAutoLoad:Y,stopAutoLoad:q,isAutoLoading:()=>!u(v),save:z,startAutoSave:G,stopAutoSave:H,isAutoSaving:V,startAutoPersisting:async(a,t=!1)=>{const[e,n]=t?[G,Y]:[Y,G];return await e(a),await n(a),W},stopAutoPersisting:K,getStatus:()=>N,addStatusListener:a=>F(a,O),delListener:t=>(k(t),a),schedule:Q,getStore:()=>a,destroy:()=>(da(Ya,w).splice(0,void 0),K()),getStats:()=>({loads:$,saves:h}),...c};return na(W)},za=(a,t,e,s,o,r=Ga,c,l)=>{const w=ya();return[async()=>{w.clear(),O(await e(a,t),({tn:a,cn:t})=>Na(Ea(w,a,ma),t))},async(t,e,n,s)=>{const i=u(s)?void 0:ma(s);return((a,t)=>T(da(w,a),t))(t,e)?sa(D(O(await a(Y+K(t)+W(t,n)),a=>{const t=a[e],n=l?ca(oa(a,e),l):oa(a,e);return[t,u(i)?n:sa(D(ra(n,(a,t)=>[t,a]),([a])=>(a=>u(i)||T(i,a))(a)))]}),a=>!u(a[0])&&!wa(a[1]))):{}},async(t,e,s,l,y,d=!1,v=i,p)=>{const E=u(p)?void 0:ma(p),A=a=>u(E)||T(E,a),m=ma();ca(s??{},a=>O(D(ea(a??{}),A),a=>Na(m,a)));const N=L(m);if(u(E)&&!d&&y&&v==i&&b(N)&&T(w,t))return await a("DROP "+U+K(t)),void pa(w,t);const g=da(w,t),f=ma(D(L(g),a=>a==e||A(a)));if(b(N)||(T(w,t)?await $(O([e,...N],async(n,s)=>{P(f,n)||(await a(x+K(t)+"ADD"+K(n)+o),0==s&&await a("CREATE UNIQUE INDEX pk ON "+K(t)+`(${K(e)})`),Na(g,n))})):(await a(V+K(t)+`(${K(e)}${o} PRIMARY KEY${h(O(N,a=>n+K(a)+o))});`),pa(w,t,ma([e,...N])))),await $([...!d&&l?O(L(f),async n=>{n!=e&&(await a(x+K(t)+"DROP"+K(n)),P(g,n))}):[]]),d)u(s)?u(E)&&await a(J+K(t)+W(t,v)):await $(ra(s,async(n,s)=>{if(u(n))await a(J+K(t)+W(t,v)+`AND(${K(e)}=$1)`,[s]);else if(!b(N)){const i=D(ea(n),A);b(i)||await r(a,t,e,i,{[s]:O(i,a=>c?c(n[a]):n[a])},g)}}));else if(b(N))u(E)&&T(w,t)&&await a(J+K(t)+W(t,v));else{const n=D(L(da(w,t)),a=>a!=e&&A(a)),i={},o=[];ca(s??{},(a,t)=>{i[t]=O(n,t=>c?c(a?.[t]):a?.[t]),I(o,t)}),await r(a,t,e,n,i,g),await a(J+K(t)+W(t,v)+`AND${K(e)}NOT IN(${Q(o)})`,o)}},async t=>{let e;return await a("BEGIN"),await f(async()=>e=await t(),s),await a("END"),e}]},Ga=async(a,t,e,s,i)=>{const o=[1];await a("INSERT INTO"+K(t)+"("+((...a)=>h(O(a,K),n))(e,...s)+")VALUES"+h(ra(i,a=>"($"+o[0]+++","+Q(a,o)+")"),n)+"ON CONFLICT("+K(e)+")DO UPDATE SET"+h(O(s,a=>K(a)+"=excluded."+K(a)),n),ra(i,(a,t)=>[t,...O(a,a=>a??null)]).flat())},Ha=(a,t,e,n,s,i,o,[r,c,l],w,y,d,v,p,E)=>{const[A,m,N,$]=za(t,w,y,s,p,E),g=qa(a,()=>$(async()=>{return await A(),a=(await m(r,c))[M]?.[l]??"null",xa(Ua(a));var a}),a=>$(async()=>{var t;await A(),await N(r,c,{[M]:{[l]:(t=a()??null,ka(t,(a,t)=>u(t)?"":t))}},!0,!0)}),e,n,s,o,{[v]:()=>d,destroy:async()=>(await g.stopAutoPersisting(),i(),g)},0,d);return g},Va=(a,t,e,n,s,i,o,[r,c,[l,w,y,d,v]],p,E,A,m,N,g,f,_)=>{const[h,b,I,S]=za(t,p,E,s,N,g,f,_),T=(a,t)=>$(va(c,async([e,n,s,i,o],r)=>{t&&!(r in a)||await I(e,n,a[r],s,i,t,o)})),C=(a,t,e)=>sa(1==e?D(ra(a,(a,t)=>[t,a]),([a])=>{return e=a,t.includes(e);var e}):D(O(t,t=>[t,a[t]]),([,a])=>!u(a))),L=async(a,t)=>w?await I(y,F,{[M]:u(v)?a:C(a,v,t)},!0,!0,t,void 0,v):null,R=qa(a,()=>S(async()=>{await h();const a=await(async()=>sa(D(await $(va(r,async([a,t,e],n)=>[a,await b(n,t,e)])),a=>!wa(a[1]))))(),t=await(async()=>l?(await b(y,F,void 0,d))[M]:{})();return wa(a)&&u(t)?void 0:[a,t]}),(a,t)=>S(async()=>{if(await h(),u(t)){const[t,e]=a();await T(t),await L(e)}else await T(t[0],!0),await L(t[1],!0)}),e,n,s,o,{[m]:()=>A,destroy:async()=>(await R.stopAutoPersisting(),i(),R)},0,A);return R},Ka=(a,n,s,o,r,c,u,y,v,p,A="getDb",m)=>{let N,$,g;const _=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(s,c),[h,O,b,D]=(a=>{const e=(a=>ia(Ra,E(a)?{[_a]:a}:a??{}))(a),n=e[ba];if(e.mode==fa){const a=e[_a]??t;return[1,n,[a,e[ha]??F,e[Oa]??ga],ma(a)]}const{tables:{load:s={},save:o={}}={},values:r={}}=e,c=ia(Pa,r),{load:l,save:w}=c,u=[Fa(l),Fa(w),c[Sa],Ma(l),Ma(w)],y=u[2],d=ma(y),v=ma(y),p=ja(s,{[Ia]:null,[Da]:F,[La]:i},Ia,a=>T(v,a),a=>Na(d,a)),A=ja(o,{[Sa]:null,[Da]:F,[Ta]:0,[Ca]:0,[La]:null},Sa,(a,t)=>T(v,t),(a,t)=>Na(d,t));var m;return m=(a,t)=>t[4]??=da(p,t[0])?.[2]??i,R(A,(a,t)=>m(0,a)),[0,n,[p,A,u],d]})(n);return(h?Ha:Va)(a,_,a=>{let t;const e=()=>t=setInterval(()=>f(async()=>{const[{d:t,s:e,c:n}]=await _(j+` ${z} d,${G} s,TOTAL_CHANGES() c FROM ${q}${z} JOIN ${q}${G}`);t==N&&e==$&&n==g||(w(N)||a(),N=t,$=e,g=n)}),1e3*O),n=()=>{N=$=g=null,l(t)},s=o(t=>{D.has(t)&&(n(),a(),e())});return e(),()=>{n(),r(s)}},a=>a(),u,y,v,b,L(D),async(a,t)=>await a(j+` t.name tn,c.name cn FROM ${H}list()t,${H}info(t.name)c ${k} t.schema='main'AND t.type IN('table','view')AND t.name IN(${Q(t)})ORDER BY t.name,c.name`,t),p,A,e,m,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0)},Qa=(a,t,e,n,s,i)=>Ka(a,n,async(a,t=[])=>e.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}).map(a=>({...a})),a=>t.capi.sqlite3_update_hook(e,(t,e,n,s)=>a(s),0),()=>t.capi.sqlite3_update_hook(e,N,0),s,i,N,3,e);export{Qa as createSqliteWasmPersister};
1
+ const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",o=(a,t,e)=>a.replace(t,e),r=Promise,c=a=>(t,e,n)=>a(t)?n?.():e(t),l=clearInterval,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=c(w),p=c(u),E=t=>a(t)==s,A=a=>Array.isArray(a),m=a=>a.length,N=()=>{},$=async a=>r.all(a),g=a=>{throw Error(a)},f=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},_=(a,t)=>a.forEach(t),h=(a,t="")=>a.join(t),O=(a,t)=>a.map(t),b=a=>0==m(a),D=(a,t)=>a.filter(t),I=(a,...t)=>a.push(...t),S=a=>a.shift(),T=(a,t)=>a?.has(t)??!1,C=a=>u(a)||0==(a=>a?.size??0)(a),L=a=>[...a?.values()??[]],R=(a,t)=>a?.forEach(t),P=(a,t)=>a?.delete(t),M="_",F="_id",j="SELECT",k="WHERE",U="TABLE",x="ALTER "+U,B="FROM",J="DELETE "+B,Y=j+"*"+B,q="pragma_",z="data_version",G="schema_version",H="pragma_table_",V="CREATE "+U,K=a=>h(O(((a,t="",e)=>a.split(t,e))(a,"."),a=>`"${o(a,/"/g,'""')}"`),"."),Q=(a,t=[1])=>h(O(a,()=>"$"+t[0]++),n),W=(a,t=i)=>k+`(${o(t,"$tableName",K(a))})`,X=Object,Z=a=>X.getPrototypeOf(a),aa=X.entries,ta=a=>!w(a)&&v(Z(a),a=>a==X.prototype||w(Z(a)),()=>!0),ea=X.keys,na=X.freeze,sa=(a=[])=>X.fromEntries(a),ia=(...a)=>X.assign({},...a),oa=(a,t)=>(delete a[t],a),ra=(a,t)=>O(aa(a),([a,e])=>t(e,a)),ca=(a,t)=>sa(ra(a,(a,e)=>[e,t(a,e)])),la=a=>m(ea(a)),wa=a=>ta(a)&&0==la(a),ua=Map,ya=a=>new ua(a),da=(a,t)=>a?.get(t),va=(a,t)=>O([...a?.entries()??[]],([a,e])=>t(e,a)),pa=(a,t,e)=>u(e)?(P(a,t),a):a?.set(t,e),Ea=(a,t,e,n)=>(T(a,t)?n?.(da(a,t)):pa(a,t,e()),da(a,t)),Aa=(a,t,e,n,s=0)=>p((e?Ea:da)(a,t[s],s>m(t)-2?e:ya),i=>{if(s>m(t)-2)return n?.(i)&&pa(a,t[s]),i;const o=Aa(i,t,e,n,s+1);return C(i)&&pa(a,t[s]),o}),ma=a=>new Set(A(a)||u(a)?a:[a]),Na=(a,t)=>a?.add(t),$a="ColumnName",ga="store",fa="json",_a=ga+"TableName",ha=ga+"Id"+$a,Oa=ga+$a,ba="autoLoadIntervalSeconds",Da="rowId"+$a,Ia="tableId",Sa="tableName",Ta="deleteEmptyColumns",Ca="deleteEmptyTable",La="condition",Ra={mode:fa,[ba]:1},Pa={load:0,save:0,[Sa]:t+"_values"},Ma=a=>A(a)?a:void 0,Fa=a=>d(a)||A(a),ja=(a,t,e,n,s)=>{const i=ya();return ca(a,(a,o)=>{const r=(w=ia(t,E(a)?{[e]:a}:a),c=X.values(w),l=la(t),c.slice(0,l));var c,l,w;y(r[0])||n(o,r[0])||(s(o,r[0]),pa(i,o,r))}),i},ka=JSON.stringify,Ua=JSON.parse,xa=a=>""===a?void 0:A(a)?O(a,xa):ta(a)?ca(a,xa):a,Ba=/^\d+$/,Ja=ya(),Ya=ya(),qa=(a,t,n,s,i,o,r,c={},l=0,w=[])=>{let d,v,E,N=0,$=0,h=0;Ea(Ja,w,()=>0),Ea(Ya,w,()=>[]);const O=ya(),[b,D,T,L,M]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!e),([[a],[t]])=>!wa(a)||!wa(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!wa(a)||!wa(t),t.setContent]:g("Store type not supported by this Persister"))(r,a,l),[F,j,k]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?S(a):null)??e+t++,t=>{Ba.test(t)&&m(a)<1e3&&I(a,t)}]})(),s=ya();return[(n,i,o,r=[],c=()=>[])=>{a??=W;const l=t(1);return pa(s,l,[n,i,o,r,c]),Na(Aa(i,o??[e],ma),l),l},(t,n,...i)=>_(((a,t=[e])=>{const n=[],s=(a,e)=>e==m(t)?I(n,a):y(t[e])?R(a,a=>s(a,e+1)):_([t[e],null],t=>s(da(a,t),e+1));return s(a,0),n})(t,n),t=>R(t,t=>da(s,t)[0](a,...n??[],...i))),a=>p(da(s,a),([,t,i])=>(Aa(t,i??[e],void 0,t=>(P(t,a),C(t)?1:0)),pa(s,a),n(a),i)),t=>p(da(s,t),([t,,e=[],n,s])=>{const i=(...o)=>{const r=m(o);r==m(e)?t(a,...o,...s(o)):y(e[r])?_(n[r]?.(...o)??[],a=>i(...o,a)):i(...o,e[r])};i()})]})(),U=a=>{a!=N&&(N=a,j(O,void 0,N))},x=t=>{(b&&A(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},B=async()=>{V()&&a.__?.[0]?.()&&await z()},J=async a=>(2!=N&&(U(1),$++,await Q(async()=>{await f(async()=>{const e=await t();A(e)?x(e):u(e)&&a?M(a):u(e)||g("Content is not an array: "+e)},t=>{o?.(t),a&&M(a)}),U(0),await B()})),W),Y=async a=>(q(),await J(a),await f(async()=>v=await s(async(a,t)=>{t||a?2!=N&&(U(1),$++,x(t??a),U(0),await B()):await J()}),o),W),q=async()=>(v&&(await f(()=>i(v),o),v=void 0),W),z=async a=>(1!=N&&(U(2),h++,await Q(async()=>{await f(()=>n(D,a),o),U(0)})),W),G=async()=>(H(),await z(),E=a.addDidFinishTransactionListener(()=>{const a=T();L(a)&&z(a)}),W),H=async()=>(E&&(a.delListener(E),E=void 0),W),V=()=>!u(E),K=async(a=!1)=>{const[t,e]=a?[H,q]:[q,H];return await t(),await e(),W},Q=async(...a)=>(I(da(Ya,w),...a),await(async()=>{if(!da(Ja,w)){for(pa(Ja,w,1);!u(d=S(da(Ya,w)));)await f(d,o);pa(Ja,w,0)}})(),W),W={load:J,startAutoLoad:Y,stopAutoLoad:q,isAutoLoading:()=>!u(v),save:z,startAutoSave:G,stopAutoSave:H,isAutoSaving:V,startAutoPersisting:async(a,t=!1)=>{const[e,n]=t?[G,Y]:[Y,G];return await e(a),await n(a),W},stopAutoPersisting:K,getStatus:()=>N,addStatusListener:a=>F(a,O),delListener:t=>(k(t),a),schedule:Q,getStore:()=>a,destroy:()=>(da(Ya,w).splice(0,void 0),K()),getStats:()=>({loads:$,saves:h}),...c};return na(W)},za=(a,t,e,s,o,r=Ga,c,l)=>{const w=ya();return[async()=>{w.clear(),O(await e(a,t),({tn:a,cn:t})=>Na(Ea(w,a,ma),t))},async(t,e,n,s)=>{const i=u(s)?void 0:ma(s);return((a,t)=>T(da(w,a),t))(t,e)?sa(D(O(await a(Y+K(t)+W(t,n)),a=>{const t=a[e],n=l?ca(oa(a,e),l):oa(a,e);return[t,u(i)?n:sa(D(ra(n,(a,t)=>[t,a]),([a])=>(a=>u(i)||T(i,a))(a)))]}),a=>!u(a[0])&&!wa(a[1]))):{}},async(t,e,s,l,y,d=!1,v=i,p)=>{const E=u(p)?void 0:ma(p),A=a=>u(E)||T(E,a),m=ma();ca(s??{},a=>O(D(ea(a??{}),A),a=>Na(m,a)));const N=L(m);if(u(E)&&!d&&y&&v==i&&b(N)&&T(w,t))return await a("DROP "+U+K(t)),void pa(w,t);const g=da(w,t),f=ma(D(L(g),a=>a==e||A(a)));if(b(N)||(T(w,t)?await $(O([e,...N],async(n,s)=>{P(f,n)||(await a(x+K(t)+"ADD"+K(n)+o),0==s&&await a("CREATE UNIQUE INDEX pk ON "+K(t)+`(${K(e)})`),Na(g,n))})):(await a(V+K(t)+`(${K(e)}${o} PRIMARY KEY${h(O(N,a=>n+K(a)+o))});`),pa(w,t,ma([e,...N])))),await $([...!d&&l?O(L(f),async n=>{n!=e&&(await a(x+K(t)+"DROP"+K(n)),P(g,n))}):[]]),d)u(s)?u(E)&&await a(J+K(t)+W(t,v)):await $(ra(s,async(n,s)=>{if(u(n))await a(J+K(t)+W(t,v)+`AND(${K(e)}=$1)`,[s]);else if(!b(N)){const i=D(ea(n),A);b(i)||await r(a,t,e,i,{[s]:O(i,a=>c?c(n[a]):n[a])},g)}}));else if(b(N))u(E)&&T(w,t)&&await a(J+K(t)+W(t,v));else{const n=D(L(da(w,t)),a=>a!=e&&A(a)),i={},o=[];ca(s??{},(a,t)=>{i[t]=O(n,t=>c?c(a?.[t]):a?.[t]),I(o,t)}),await r(a,t,e,n,i,g),await a(J+K(t)+W(t,v)+`AND${K(e)}NOT IN(${Q(o)})`,o)}},async t=>{let e;return await a("BEGIN"),await f(async()=>e=await t(),s),await a("END"),e}]},Ga=async(a,t,e,s,i)=>{const o=[1];await a("INSERT INTO"+K(t)+"("+((...a)=>h(O(a,K),n))(e,...s)+")VALUES"+h(ra(i,a=>"($"+o[0]+++","+Q(a,o)+")"),n)+"ON CONFLICT("+K(e)+")DO UPDATE SET"+h(O(s,a=>K(a)+"=excluded."+K(a)),n),ra(i,(a,t)=>[t,...O(a,a=>a??null)]).flat())},Ha=(a,t,e,n,s,i,o,[r,c,l],w,y,d,v,p,E)=>{const[A,m,N,$]=za(t,w,y,s,p,E),g=qa(a,()=>$(async()=>{return await A(),a=(await m(r,c))[M]?.[l]??"null",xa(Ua(a));var a}),a=>$(async()=>{var t;await A(),await N(r,c,{[M]:{[l]:(t=a()??null,ka(t,(a,t)=>u(t)?"":t))}},!0,!0)}),e,n,s,o,{[v]:()=>d,destroy:async()=>(await g.stopAutoPersisting(),i(),g)},0,d);return g},Va=(a,t,e,n,s,i,o,[r,c,[l,w,y,d,v]],p,E,A,m,N,g,f,_)=>{const[h,b,I,S]=za(t,p,E,s,N,g,f,_),T=(a,t)=>$(va(c,async([e,n,s,i,o],r)=>{t&&!(r in a)||await I(e,n,a[r],s,i,t,o)})),C=(a,t,e)=>sa(1==e?D(ra(a,(a,t)=>[t,a]),([a])=>{return e=a,t.includes(e);var e}):D(O(t,t=>[t,a[t]]),([,a])=>!u(a))),L=async(a,t)=>w?await I(y,F,{[M]:u(v)?a:C(a,v,t)},!0,!0,t,void 0,v):null,R=qa(a,()=>S(async()=>{await h();const a=await(async()=>sa(D(await $(va(r,async([a,t,e],n)=>[a,await b(n,t,e)])),a=>!wa(a[1]))))(),t=await(async()=>l?(await b(y,F,void 0,d))[M]:{})();return wa(a)&&u(t)?void 0:[a,t]}),(a,t)=>S(async()=>{if(await h(),u(t)){const[t,e]=a();await T(t),await L(e)}else await T(t[0],!0),await L(t[1],!0)}),e,n,s,o,{[m]:()=>A,destroy:async()=>(await R.stopAutoPersisting(),i(),R)},0,A);return R},Ka=(a,n,s,o,r,c,u,y,v,p,A="getDb",m)=>{let N,$,g;const _=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(s,c),[h,O,b,D]=(a=>{const e=(a=>ia(Ra,E(a)?{[_a]:a}:a??{}))(a),n=e[ba];if(e.mode==fa){const a=e[_a]??t;return[1,n,[a,e[ha]??F,e[Oa]??ga],ma(a)]}const{tables:{load:s={},save:o={}}={},values:r={}}=e,c=ia(Pa,r),{load:l,save:w}=c,u=[Fa(l),Fa(w),c[Sa],Ma(l),Ma(w)],y=u[2],d=ma(y),v=ma(y),p=ja(s,{[Ia]:null,[Da]:F,[La]:i},Ia,a=>T(v,a),a=>Na(d,a)),A=ja(o,{[Sa]:null,[Da]:F,[Ta]:0,[Ca]:0,[La]:null},Sa,(a,t)=>T(v,t),(a,t)=>Na(d,t));var m;return m=(a,t)=>t[4]??=da(p,t[0])?.[2]??i,R(A,(a,t)=>m(0,a)),[0,n,[p,A,u],d]})(n);return(h?Ha:Va)(a,_,a=>{let t;const e=()=>t=setInterval(()=>f(async()=>{const[{d:t,s:e,c:n}]=await _(j+` ${z} d,${G} s,TOTAL_CHANGES() c FROM ${q}${z} JOIN ${q}${G}`);t==N&&e==$&&n==g||(w(N)||a(),N=t,$=e,g=n)}),1e3*O),n=()=>{N=$=g=null,l(t)},s=o(t=>{D.has(t)&&(n(),a(),e())});return e(),()=>{n(),r(s)}},a=>a(),u,y,v,b,L(D),async(a,t)=>await a(j+` t.name tn,c.name cn FROM ${H}list()t,${H}info(t.name)c ${k} t.schema='main'AND t.type IN('table','view')AND t.name IN(${Q(t)})ORDER BY t.name,c.name`,t),p,A,e,m,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0)},Qa=(a,t,e,n,s,i)=>Ka(a,n,async(a,t=[])=>e.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}).map(a=>({...a})),a=>t.capi.sqlite3_update_hook(e,(t,e,n,s)=>a(s),0),()=>t.capi.sqlite3_update_hook(e,N,0),s,i,N,3,e);export{Qa as createSqliteWasmPersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",r=(a,t,e)=>a.replace(t,e),o=Promise,c=a=>(t,e,n)=>a(t)?n?.():e(t),l=clearInterval,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=c(w),p=c(u),E=t=>a(t)==s,A=a=>Array.isArray(a),N=a=>a.length,f=()=>{},g=async a=>o.all(a),m=a=>{throw Error(a)},$=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},O=(a,t)=>a.forEach(t),h=(a,t="")=>a.join(t),D=(a,t)=>a.map(t),I=a=>0==N(a),S=(a,t)=>a.filter(t),T=(a,...t)=>a.push(...t),_=a=>a.shift(),b=(a,t)=>a?.has(t)??!1,C=a=>u(a)||0==(a=>a?.size??0)(a),L=a=>[...a?.values()??[]],R=(a,t)=>a?.forEach(t),P=(a,t)=>a?.delete(t),M="_",F="_id",U="SELECT",j="WHERE",B="TABLE",J="ALTER "+B,Y="FROM",k="DELETE "+Y,x=U+"*"+Y,z="pragma_",G="data_version",H="schema_version",K="pragma_table_",Q="CREATE "+B,V=a=>h(D(((a,t="",e)=>a.split(t,e))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),W=(a,t=[1])=>h(D(a,()=>"$"+t[0]++),n),X=(a,t=i)=>j+`(${r(t,"$tableName",V(a))})`,q=Object,Z=a=>q.getPrototypeOf(a),aa=q.entries,ta=a=>!w(a)&&v(Z(a),a=>a==q.prototype||w(Z(a)),()=>!0),ea=q.keys,na=q.freeze,sa=(a=[])=>q.fromEntries(a),ia=(...a)=>q.assign({},...a),ra=(a,t)=>(delete a[t],a),oa=(a,t)=>D(aa(a),([a,e])=>t(e,a)),ca=(a,t)=>sa(oa(a,(a,e)=>[e,t(a,e)])),la=a=>N(ea(a)),wa=a=>ta(a)&&0==la(a),ua=Map,ya=a=>new ua(a),da=(a,t)=>a?.get(t),va=(a,t)=>D([...a?.entries()??[]],([a,e])=>t(e,a)),pa=(a,t,e)=>u(e)?(P(a,t),a):a?.set(t,e),Ea=(a,t,e,n)=>(b(a,t)?n?.(da(a,t)):pa(a,t,e()),da(a,t)),Aa=(a,t,e,n,s=0)=>p((e?Ea:da)(a,t[s],s>N(t)-2?e:ya),i=>{if(s>N(t)-2)return n?.(i)&&pa(a,t[s]),i;const r=Aa(i,t,e,n,s+1);return C(i)&&pa(a,t[s]),r}),Na=a=>new Set(A(a)||u(a)?a:[a]),fa=(a,t)=>a?.add(t),ga="ColumnName",ma="store",$a="json",Oa=ma+"TableName",ha=ma+"Id"+ga,Da=ma+ga,Ia="autoLoadIntervalSeconds",Sa="rowId"+ga,Ta="tableId",_a="tableName",ba="deleteEmptyColumns",Ca="deleteEmptyTable",La="condition",Ra={mode:$a,[Ia]:1},Pa={load:0,save:0,[_a]:t+"_values"},Ma=a=>A(a)?a:void 0,Fa=a=>d(a)||A(a),Ua=(a,t,e,n,s)=>{const i=ya();return ca(a,(a,r)=>{const o=(w=ia(t,E(a)?{[e]:a}:a),c=q.values(w),l=la(t),c.slice(0,l));var c,l,w;y(o[0])||n(r,o[0])||(s(r,o[0]),pa(i,r,o))}),i},ja=JSON.stringify,Ba=JSON.parse,Ja=a=>""===a?void 0:A(a)?D(a,Ja):ta(a)?ca(a,Ja):a,Ya=/^\d+$/,ka=ya(),xa=ya(),za=(a,t,n,s,i,r,o,c={},l=0,w=[])=>{let d,v,E,f=0,g=0,h=0;Ea(ka,w,()=>0),Ea(xa,w,()=>[]);const D=ya(),[I,S,b,L,M]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!e),([[a],[t]])=>!wa(a)||!wa(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!wa(a)||!wa(t),t.setContent]:m("Store type not supported by this Persister"))(o,a,l),[F,U,j]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?_(a):null)??e+t++,t=>{Ya.test(t)&&N(a)<1e3&&T(a,t)}]})(),s=ya();return[(n,i,r,o=[],c=()=>[])=>{a??=X;const l=t(1);return pa(s,l,[n,i,r,o,c]),fa(Aa(i,r??[e],Na),l),l},(t,n,...i)=>O(((a,t=[e])=>{const n=[],s=(a,e)=>e==N(t)?T(n,a):y(t[e])?R(a,a=>s(a,e+1)):O([t[e],null],t=>s(da(a,t),e+1));return s(a,0),n})(t,n),t=>R(t,t=>da(s,t)[0](a,...n??[],...i))),a=>p(da(s,a),([,t,i])=>(Aa(t,i??[e],void 0,t=>(P(t,a),C(t)?1:0)),pa(s,a),n(a),i)),t=>p(da(s,t),([t,,e=[],n,s])=>{const i=(...r)=>{const o=N(r);o==N(e)?t(a,...r,...s(r)):y(e[o])?O(n[o]?.(...r)??[],a=>i(...r,a)):i(...r,e[o])};i()})]})(),B=a=>{a!=f&&(f=a,U(D,void 0,f))},J=t=>{(I&&A(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},Y=async()=>{Q()&&a.__?.[0]?.()&&await G()},k=async a=>(2!=f&&(B(1),g++,await W(async()=>{await $(async()=>{const e=await t();A(e)?J(e):a?M(a):m("Content is not an array: "+e)},()=>{a&&M(a)}),B(0),await Y()})),X),x=async a=>(z(),await k(a),await $(async()=>v=await s(async(a,t)=>{t||a?2!=f&&(B(1),g++,J(t??a),B(0),await Y()):await k()}),r),X),z=async()=>(v&&(await $(()=>i(v),r),v=void 0),X),G=async a=>(1!=f&&(B(2),h++,await W(async()=>{await $(()=>n(S,a),r),B(0)})),X),H=async()=>(K(),await G(),E=a.addDidFinishTransactionListener(()=>{const a=b();L(a)&&G(a)}),X),K=async()=>(E&&(a.delListener(E),E=void 0),X),Q=()=>!u(E),V=async(a=!1)=>{const[t,e]=a?[K,z]:[z,K];return await t(),await e(),X},W=async(...a)=>(T(da(xa,w),...a),await(async()=>{if(!da(ka,w)){for(pa(ka,w,1);!u(d=_(da(xa,w)));)await $(d,r);pa(ka,w,0)}})(),X),X={load:k,startAutoLoad:x,stopAutoLoad:z,isAutoLoading:()=>!u(v),save:G,startAutoSave:H,stopAutoSave:K,isAutoSaving:Q,startAutoPersisting:async(a,t=!1)=>{const[e,n]=t?[H,x]:[x,H];return await e(a),await n(a),X},stopAutoPersisting:V,getStatus:()=>f,addStatusListener:a=>F(a,D),delListener:t=>(j(t),a),schedule:W,getStore:()=>a,destroy:()=>(da(xa,w).splice(0,void 0),V()),getStats:()=>({loads:g,saves:h}),...c};return na(X)},Ga=(a,t,e,s,r,o=Ha,c,l)=>{const w=ya();return[async()=>{w.clear(),D(await e(a,t),({tn:a,cn:t})=>fa(Ea(w,a,Na),t))},async(t,e,n,s)=>{const i=u(s)?void 0:Na(s);return((a,t)=>b(da(w,a),t))(t,e)?sa(S(D(await a(x+V(t)+X(t,n)),a=>{const t=a[e],n=l?ca(ra(a,e),l):ra(a,e);return[t,u(i)?n:sa(S(oa(n,(a,t)=>[t,a]),([a])=>(a=>u(i)||b(i,a))(a)))]}),a=>!u(a[0])&&!wa(a[1]))):{}},async(t,e,s,l,y,d=!1,v=i,p)=>{const E=u(p)?void 0:Na(p),A=a=>u(E)||b(E,a),N=Na();ca(s??{},a=>D(S(ea(a??{}),A),a=>fa(N,a)));const f=L(N);if(u(E)&&!d&&y&&v==i&&I(f)&&b(w,t))return await a("DROP "+B+V(t)),void pa(w,t);const m=da(w,t),$=Na(S(L(m),a=>a==e||A(a)));if(I(f)||(b(w,t)?await g(D([e,...f],async(n,s)=>{P($,n)||(await a(J+V(t)+"ADD"+V(n)+r),0==s&&await a("CREATE UNIQUE INDEX pk ON "+V(t)+`(${V(e)})`),fa(m,n))})):(await a(Q+V(t)+`(${V(e)}${r} PRIMARY KEY${h(D(f,a=>n+V(a)+r))});`),pa(w,t,Na([e,...f])))),await g([...!d&&l?D(L($),async n=>{n!=e&&(await a(J+V(t)+"DROP"+V(n)),P(m,n))}):[]]),d)u(s)?u(E)&&await a(k+V(t)+X(t,v)):await g(oa(s,async(n,s)=>{if(u(n))await a(k+V(t)+X(t,v)+`AND(${V(e)}=$1)`,[s]);else if(!I(f)){const i=S(ea(n),A);I(i)||await o(a,t,e,i,{[s]:D(i,a=>c?c(n[a]):n[a])},m)}}));else if(I(f))u(E)&&b(w,t)&&await a(k+V(t)+X(t,v));else{const n=S(L(da(w,t)),a=>a!=e&&A(a)),i={},r=[];ca(s??{},(a,t)=>{i[t]=D(n,t=>c?c(a?.[t]):a?.[t]),T(r,t)}),await o(a,t,e,n,i,m),await a(k+V(t)+X(t,v)+`AND${V(e)}NOT IN(${W(r)})`,r)}},async t=>{let e;return await a("BEGIN"),await $(async()=>e=await t(),s),await a("END"),e}]},Ha=async(a,t,e,s,i)=>{const r=[1];await a("INSERT INTO"+V(t)+"("+((...a)=>h(D(a,V),n))(e,...s)+")VALUES"+h(oa(i,a=>"($"+r[0]+++","+W(a,r)+")"),n)+"ON CONFLICT("+V(e)+")DO UPDATE SET"+h(D(s,a=>V(a)+"=excluded."+V(a)),n),oa(i,(a,t)=>[t,...D(a,a=>a??null)]).flat())},Ka=(a,t,e,n,s,i,r,[o,c,l],w,y,d,v,p,E)=>{const[A,N,f,g]=Ga(t,w,y,s,p,E),m=za(a,()=>g(async()=>{return await A(),a=(await N(o,c))[M]?.[l]??"null",Ja(Ba(a));var a}),a=>g(async()=>{var t;await A(),await f(o,c,{[M]:{[l]:(t=a()??null,ja(t,(a,t)=>u(t)?"":t))}},!0,!0)}),e,n,s,r,{[v]:()=>d,destroy:async()=>(await m.stopAutoPersisting(),i(),m)},0,d);return m},Qa=(a,t,e,n,s,i,r,[o,c,[l,w,y,d,v]],p,E,A,N,f,m,$,O)=>{const[h,I,T,_]=Ga(t,p,E,s,f,m,$,O),b=(a,t)=>g(va(c,async([e,n,s,i,r],o)=>{t&&!(o in a)||await T(e,n,a[o],s,i,t,r)})),C=(a,t,e)=>sa(1==e?S(oa(a,(a,t)=>[t,a]),([a])=>{return e=a,t.includes(e);var e}):S(D(t,t=>[t,a[t]]),([,a])=>!u(a))),L=async(a,t)=>w?await T(y,F,{[M]:u(v)?a:C(a,v,t)},!0,!0,t,void 0,v):null,R=za(a,()=>_(async()=>{await h();const a=await(async()=>sa(S(await g(va(o,async([a,t,e],n)=>[a,await I(n,t,e)])),a=>!wa(a[1]))))(),t=await(async()=>l?(await I(y,F,void 0,d))[M]:{})();return wa(a)&&u(t)?void 0:[a,t]}),(a,t)=>_(async()=>{if(await h(),u(t)){const[t,e]=a();await b(t),await L(e)}else await b(t[0],!0),await L(t[1],!0)}),e,n,s,r,{[N]:()=>A,destroy:async()=>(await R.stopAutoPersisting(),i(),R)},0,A);return R},Va=(a,n,s,r,o,c,u,y,v,p,A="getDb",N)=>{let f,g,m;const O=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(s,c),[h,D,I,S]=(a=>{const e=(a=>ia(Ra,E(a)?{[Oa]:a}:a??{}))(a),n=e[Ia];if(e.mode==$a){const a=e[Oa]??t;return[1,n,[a,e[ha]??F,e[Da]??ma],Na(a)]}const{tables:{load:s={},save:r={}}={},values:o={}}=e,c=ia(Pa,o),{load:l,save:w}=c,u=[Fa(l),Fa(w),c[_a],Ma(l),Ma(w)],y=u[2],d=Na(y),v=Na(y),p=Ua(s,{[Ta]:null,[Sa]:F,[La]:i},Ta,a=>b(v,a),a=>fa(d,a)),A=Ua(r,{[_a]:null,[Sa]:F,[ba]:0,[Ca]:0,[La]:null},_a,(a,t)=>b(v,t),(a,t)=>fa(d,t));var N;return N=(a,t)=>t[4]??=da(p,t[0])?.[2]??i,R(A,(a,t)=>N(0,a)),[0,n,[p,A,u],d]})(n);return(h?Ka:Qa)(a,O,a=>{let t;const e=()=>t=setInterval(()=>$(async()=>{const[{d:t,s:e,c:n}]=await O(U+` ${G} d,${H} s,TOTAL_CHANGES() c FROM ${z}${G} JOIN ${z}${H}`);t==f&&e==g&&n==m||(w(f)||a(),f=t,g=e,m=n)}),1e3*D),n=()=>{f=g=m=null,l(t)},s=r(t=>{S.has(t)&&(n(),a(),e())});return e(),()=>{n(),o(s)}},a=>a(),u,y,v,I,L(S),async(a,t)=>await a(U+` t.name tn,c.name cn FROM ${K}list()t,${K}info(t.name)c ${j} t.schema='main'AND t.type IN('table','view')AND t.name IN(${W(t)})ORDER BY t.name,c.name`,t),p,A,e,N,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0)},Wa="change",Xa=(a,t,e,n,s)=>Va(a,e,async(a,e=[])=>{return await(n=(n,s)=>t.all(a,e,(a,t)=>a?s(a):n(t)),new o(n));var n},a=>{const e=(t,e,n)=>a(n);return t.on(Wa,e),e},a=>t.off(Wa,a),n,s,f,3,t);export{Xa as createSqlite3Persister};
1
+ const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",r=(a,t,e)=>a.replace(t,e),o=Promise,c=a=>(t,e,n)=>a(t)?n?.():e(t),l=clearInterval,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=c(w),p=c(u),E=t=>a(t)==s,A=a=>Array.isArray(a),N=a=>a.length,f=()=>{},g=async a=>o.all(a),m=a=>{throw Error(a)},$=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},O=(a,t)=>a.forEach(t),h=(a,t="")=>a.join(t),D=(a,t)=>a.map(t),I=a=>0==N(a),S=(a,t)=>a.filter(t),T=(a,...t)=>a.push(...t),_=a=>a.shift(),b=(a,t)=>a?.has(t)??!1,C=a=>u(a)||0==(a=>a?.size??0)(a),L=a=>[...a?.values()??[]],R=(a,t)=>a?.forEach(t),P=(a,t)=>a?.delete(t),M="_",F="_id",U="SELECT",j="WHERE",B="TABLE",J="ALTER "+B,Y="FROM",k="DELETE "+Y,x=U+"*"+Y,z="pragma_",G="data_version",H="schema_version",K="pragma_table_",Q="CREATE "+B,V=a=>h(D(((a,t="",e)=>a.split(t,e))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),W=(a,t=[1])=>h(D(a,()=>"$"+t[0]++),n),X=(a,t=i)=>j+`(${r(t,"$tableName",V(a))})`,q=Object,Z=a=>q.getPrototypeOf(a),aa=q.entries,ta=a=>!w(a)&&v(Z(a),a=>a==q.prototype||w(Z(a)),()=>!0),ea=q.keys,na=q.freeze,sa=(a=[])=>q.fromEntries(a),ia=(...a)=>q.assign({},...a),ra=(a,t)=>(delete a[t],a),oa=(a,t)=>D(aa(a),([a,e])=>t(e,a)),ca=(a,t)=>sa(oa(a,(a,e)=>[e,t(a,e)])),la=a=>N(ea(a)),wa=a=>ta(a)&&0==la(a),ua=Map,ya=a=>new ua(a),da=(a,t)=>a?.get(t),va=(a,t)=>D([...a?.entries()??[]],([a,e])=>t(e,a)),pa=(a,t,e)=>u(e)?(P(a,t),a):a?.set(t,e),Ea=(a,t,e,n)=>(b(a,t)?n?.(da(a,t)):pa(a,t,e()),da(a,t)),Aa=(a,t,e,n,s=0)=>p((e?Ea:da)(a,t[s],s>N(t)-2?e:ya),i=>{if(s>N(t)-2)return n?.(i)&&pa(a,t[s]),i;const r=Aa(i,t,e,n,s+1);return C(i)&&pa(a,t[s]),r}),Na=a=>new Set(A(a)||u(a)?a:[a]),fa=(a,t)=>a?.add(t),ga="ColumnName",ma="store",$a="json",Oa=ma+"TableName",ha=ma+"Id"+ga,Da=ma+ga,Ia="autoLoadIntervalSeconds",Sa="rowId"+ga,Ta="tableId",_a="tableName",ba="deleteEmptyColumns",Ca="deleteEmptyTable",La="condition",Ra={mode:$a,[Ia]:1},Pa={load:0,save:0,[_a]:t+"_values"},Ma=a=>A(a)?a:void 0,Fa=a=>d(a)||A(a),Ua=(a,t,e,n,s)=>{const i=ya();return ca(a,(a,r)=>{const o=(w=ia(t,E(a)?{[e]:a}:a),c=q.values(w),l=la(t),c.slice(0,l));var c,l,w;y(o[0])||n(r,o[0])||(s(r,o[0]),pa(i,r,o))}),i},ja=JSON.stringify,Ba=JSON.parse,Ja=a=>""===a?void 0:A(a)?D(a,Ja):ta(a)?ca(a,Ja):a,Ya=/^\d+$/,ka=ya(),xa=ya(),za=(a,t,n,s,i,r,o,c={},l=0,w=[])=>{let d,v,E,f=0,g=0,h=0;Ea(ka,w,()=>0),Ea(xa,w,()=>[]);const D=ya(),[I,S,b,L,M]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!e),([[a],[t]])=>!wa(a)||!wa(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!wa(a)||!wa(t),t.setContent]:m("Store type not supported by this Persister"))(o,a,l),[F,U,j]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?_(a):null)??e+t++,t=>{Ya.test(t)&&N(a)<1e3&&T(a,t)}]})(),s=ya();return[(n,i,r,o=[],c=()=>[])=>{a??=X;const l=t(1);return pa(s,l,[n,i,r,o,c]),fa(Aa(i,r??[e],Na),l),l},(t,n,...i)=>O(((a,t=[e])=>{const n=[],s=(a,e)=>e==N(t)?T(n,a):y(t[e])?R(a,a=>s(a,e+1)):O([t[e],null],t=>s(da(a,t),e+1));return s(a,0),n})(t,n),t=>R(t,t=>da(s,t)[0](a,...n??[],...i))),a=>p(da(s,a),([,t,i])=>(Aa(t,i??[e],void 0,t=>(P(t,a),C(t)?1:0)),pa(s,a),n(a),i)),t=>p(da(s,t),([t,,e=[],n,s])=>{const i=(...r)=>{const o=N(r);o==N(e)?t(a,...r,...s(r)):y(e[o])?O(n[o]?.(...r)??[],a=>i(...r,a)):i(...r,e[o])};i()})]})(),B=a=>{a!=f&&(f=a,U(D,void 0,f))},J=t=>{(I&&A(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},Y=async()=>{Q()&&a.__?.[0]?.()&&await G()},k=async a=>(2!=f&&(B(1),g++,await W(async()=>{await $(async()=>{const e=await t();A(e)?J(e):u(e)&&a?M(a):u(e)||m("Content is not an array: "+e)},t=>{r?.(t),a&&M(a)}),B(0),await Y()})),X),x=async a=>(z(),await k(a),await $(async()=>v=await s(async(a,t)=>{t||a?2!=f&&(B(1),g++,J(t??a),B(0),await Y()):await k()}),r),X),z=async()=>(v&&(await $(()=>i(v),r),v=void 0),X),G=async a=>(1!=f&&(B(2),h++,await W(async()=>{await $(()=>n(S,a),r),B(0)})),X),H=async()=>(K(),await G(),E=a.addDidFinishTransactionListener(()=>{const a=b();L(a)&&G(a)}),X),K=async()=>(E&&(a.delListener(E),E=void 0),X),Q=()=>!u(E),V=async(a=!1)=>{const[t,e]=a?[K,z]:[z,K];return await t(),await e(),X},W=async(...a)=>(T(da(xa,w),...a),await(async()=>{if(!da(ka,w)){for(pa(ka,w,1);!u(d=_(da(xa,w)));)await $(d,r);pa(ka,w,0)}})(),X),X={load:k,startAutoLoad:x,stopAutoLoad:z,isAutoLoading:()=>!u(v),save:G,startAutoSave:H,stopAutoSave:K,isAutoSaving:Q,startAutoPersisting:async(a,t=!1)=>{const[e,n]=t?[H,x]:[x,H];return await e(a),await n(a),X},stopAutoPersisting:V,getStatus:()=>f,addStatusListener:a=>F(a,D),delListener:t=>(j(t),a),schedule:W,getStore:()=>a,destroy:()=>(da(xa,w).splice(0,void 0),V()),getStats:()=>({loads:g,saves:h}),...c};return na(X)},Ga=(a,t,e,s,r,o=Ha,c,l)=>{const w=ya();return[async()=>{w.clear(),D(await e(a,t),({tn:a,cn:t})=>fa(Ea(w,a,Na),t))},async(t,e,n,s)=>{const i=u(s)?void 0:Na(s);return((a,t)=>b(da(w,a),t))(t,e)?sa(S(D(await a(x+V(t)+X(t,n)),a=>{const t=a[e],n=l?ca(ra(a,e),l):ra(a,e);return[t,u(i)?n:sa(S(oa(n,(a,t)=>[t,a]),([a])=>(a=>u(i)||b(i,a))(a)))]}),a=>!u(a[0])&&!wa(a[1]))):{}},async(t,e,s,l,y,d=!1,v=i,p)=>{const E=u(p)?void 0:Na(p),A=a=>u(E)||b(E,a),N=Na();ca(s??{},a=>D(S(ea(a??{}),A),a=>fa(N,a)));const f=L(N);if(u(E)&&!d&&y&&v==i&&I(f)&&b(w,t))return await a("DROP "+B+V(t)),void pa(w,t);const m=da(w,t),$=Na(S(L(m),a=>a==e||A(a)));if(I(f)||(b(w,t)?await g(D([e,...f],async(n,s)=>{P($,n)||(await a(J+V(t)+"ADD"+V(n)+r),0==s&&await a("CREATE UNIQUE INDEX pk ON "+V(t)+`(${V(e)})`),fa(m,n))})):(await a(Q+V(t)+`(${V(e)}${r} PRIMARY KEY${h(D(f,a=>n+V(a)+r))});`),pa(w,t,Na([e,...f])))),await g([...!d&&l?D(L($),async n=>{n!=e&&(await a(J+V(t)+"DROP"+V(n)),P(m,n))}):[]]),d)u(s)?u(E)&&await a(k+V(t)+X(t,v)):await g(oa(s,async(n,s)=>{if(u(n))await a(k+V(t)+X(t,v)+`AND(${V(e)}=$1)`,[s]);else if(!I(f)){const i=S(ea(n),A);I(i)||await o(a,t,e,i,{[s]:D(i,a=>c?c(n[a]):n[a])},m)}}));else if(I(f))u(E)&&b(w,t)&&await a(k+V(t)+X(t,v));else{const n=S(L(da(w,t)),a=>a!=e&&A(a)),i={},r=[];ca(s??{},(a,t)=>{i[t]=D(n,t=>c?c(a?.[t]):a?.[t]),T(r,t)}),await o(a,t,e,n,i,m),await a(k+V(t)+X(t,v)+`AND${V(e)}NOT IN(${W(r)})`,r)}},async t=>{let e;return await a("BEGIN"),await $(async()=>e=await t(),s),await a("END"),e}]},Ha=async(a,t,e,s,i)=>{const r=[1];await a("INSERT INTO"+V(t)+"("+((...a)=>h(D(a,V),n))(e,...s)+")VALUES"+h(oa(i,a=>"($"+r[0]+++","+W(a,r)+")"),n)+"ON CONFLICT("+V(e)+")DO UPDATE SET"+h(D(s,a=>V(a)+"=excluded."+V(a)),n),oa(i,(a,t)=>[t,...D(a,a=>a??null)]).flat())},Ka=(a,t,e,n,s,i,r,[o,c,l],w,y,d,v,p,E)=>{const[A,N,f,g]=Ga(t,w,y,s,p,E),m=za(a,()=>g(async()=>{return await A(),a=(await N(o,c))[M]?.[l]??"null",Ja(Ba(a));var a}),a=>g(async()=>{var t;await A(),await f(o,c,{[M]:{[l]:(t=a()??null,ja(t,(a,t)=>u(t)?"":t))}},!0,!0)}),e,n,s,r,{[v]:()=>d,destroy:async()=>(await m.stopAutoPersisting(),i(),m)},0,d);return m},Qa=(a,t,e,n,s,i,r,[o,c,[l,w,y,d,v]],p,E,A,N,f,m,$,O)=>{const[h,I,T,_]=Ga(t,p,E,s,f,m,$,O),b=(a,t)=>g(va(c,async([e,n,s,i,r],o)=>{t&&!(o in a)||await T(e,n,a[o],s,i,t,r)})),C=(a,t,e)=>sa(1==e?S(oa(a,(a,t)=>[t,a]),([a])=>{return e=a,t.includes(e);var e}):S(D(t,t=>[t,a[t]]),([,a])=>!u(a))),L=async(a,t)=>w?await T(y,F,{[M]:u(v)?a:C(a,v,t)},!0,!0,t,void 0,v):null,R=za(a,()=>_(async()=>{await h();const a=await(async()=>sa(S(await g(va(o,async([a,t,e],n)=>[a,await I(n,t,e)])),a=>!wa(a[1]))))(),t=await(async()=>l?(await I(y,F,void 0,d))[M]:{})();return wa(a)&&u(t)?void 0:[a,t]}),(a,t)=>_(async()=>{if(await h(),u(t)){const[t,e]=a();await b(t),await L(e)}else await b(t[0],!0),await L(t[1],!0)}),e,n,s,r,{[N]:()=>A,destroy:async()=>(await R.stopAutoPersisting(),i(),R)},0,A);return R},Va=(a,n,s,r,o,c,u,y,v,p,A="getDb",N)=>{let f,g,m;const O=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(s,c),[h,D,I,S]=(a=>{const e=(a=>ia(Ra,E(a)?{[Oa]:a}:a??{}))(a),n=e[Ia];if(e.mode==$a){const a=e[Oa]??t;return[1,n,[a,e[ha]??F,e[Da]??ma],Na(a)]}const{tables:{load:s={},save:r={}}={},values:o={}}=e,c=ia(Pa,o),{load:l,save:w}=c,u=[Fa(l),Fa(w),c[_a],Ma(l),Ma(w)],y=u[2],d=Na(y),v=Na(y),p=Ua(s,{[Ta]:null,[Sa]:F,[La]:i},Ta,a=>b(v,a),a=>fa(d,a)),A=Ua(r,{[_a]:null,[Sa]:F,[ba]:0,[Ca]:0,[La]:null},_a,(a,t)=>b(v,t),(a,t)=>fa(d,t));var N;return N=(a,t)=>t[4]??=da(p,t[0])?.[2]??i,R(A,(a,t)=>N(0,a)),[0,n,[p,A,u],d]})(n);return(h?Ka:Qa)(a,O,a=>{let t;const e=()=>t=setInterval(()=>$(async()=>{const[{d:t,s:e,c:n}]=await O(U+` ${G} d,${H} s,TOTAL_CHANGES() c FROM ${z}${G} JOIN ${z}${H}`);t==f&&e==g&&n==m||(w(f)||a(),f=t,g=e,m=n)}),1e3*D),n=()=>{f=g=m=null,l(t)},s=r(t=>{S.has(t)&&(n(),a(),e())});return e(),()=>{n(),o(s)}},a=>a(),u,y,v,I,L(S),async(a,t)=>await a(U+` t.name tn,c.name cn FROM ${K}list()t,${K}info(t.name)c ${j} t.schema='main'AND t.type IN('table','view')AND t.name IN(${W(t)})ORDER BY t.name,c.name`,t),p,A,e,N,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0)},Wa="change",Xa=(a,t,e,n,s)=>Va(a,e,async(a,e=[])=>{return await(n=(n,s)=>t.all(a,e,(a,t)=>a?s(a):n(t)),new o(n));var n},a=>{const e=(t,e,n)=>a(n);return t.on(Wa,e),e},a=>t.off(Wa,a),n,s,f,3,t);export{Xa as createSqlite3Persister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",r=(a,t,e)=>a.replace(t,e),o=Promise,c=a=>(t,e,n)=>a(t)?n?.():e(t),l=clearInterval,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=c(w),p=c(u),E=t=>a(t)==s,A=a=>Array.isArray(a),N=a=>a.length,f=()=>{},g=async a=>o.all(a),m=a=>{throw Error(a)},$=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},O=(a,t)=>a.forEach(t),h=(a,t="")=>a.join(t),D=(a,t)=>a.map(t),I=a=>0==N(a),S=(a,t)=>a.filter(t),T=(a,...t)=>a.push(...t),_=a=>a.shift(),b=(a,t)=>a?.has(t)??!1,C=a=>u(a)||0==(a=>a?.size??0)(a),L=a=>[...a?.values()??[]],R=(a,t)=>a?.forEach(t),P=(a,t)=>a?.delete(t),M="_",F="_id",U="SELECT",j="WHERE",B="TABLE",J="ALTER "+B,Y="FROM",k="DELETE "+Y,x=U+"*"+Y,z="pragma_",G="data_version",H="schema_version",K="pragma_table_",Q="CREATE "+B,V=a=>h(D(((a,t="",e)=>a.split(t,e))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),W=(a,t=[1])=>h(D(a,()=>"$"+t[0]++),n),X=(a,t=i)=>j+`(${r(t,"$tableName",V(a))})`,q=Object,Z=a=>q.getPrototypeOf(a),aa=q.entries,ta=a=>!w(a)&&v(Z(a),a=>a==q.prototype||w(Z(a)),()=>!0),ea=q.keys,na=q.freeze,sa=(a=[])=>q.fromEntries(a),ia=(...a)=>q.assign({},...a),ra=(a,t)=>(delete a[t],a),oa=(a,t)=>D(aa(a),([a,e])=>t(e,a)),ca=(a,t)=>sa(oa(a,(a,e)=>[e,t(a,e)])),la=a=>N(ea(a)),wa=a=>ta(a)&&0==la(a),ua=Map,ya=a=>new ua(a),da=(a,t)=>a?.get(t),va=(a,t)=>D([...a?.entries()??[]],([a,e])=>t(e,a)),pa=(a,t,e)=>u(e)?(P(a,t),a):a?.set(t,e),Ea=(a,t,e,n)=>(b(a,t)?n?.(da(a,t)):pa(a,t,e()),da(a,t)),Aa=(a,t,e,n,s=0)=>p((e?Ea:da)(a,t[s],s>N(t)-2?e:ya),i=>{if(s>N(t)-2)return n?.(i)&&pa(a,t[s]),i;const r=Aa(i,t,e,n,s+1);return C(i)&&pa(a,t[s]),r}),Na=a=>new Set(A(a)||u(a)?a:[a]),fa=(a,t)=>a?.add(t),ga="ColumnName",ma="store",$a="json",Oa=ma+"TableName",ha=ma+"Id"+ga,Da=ma+ga,Ia="autoLoadIntervalSeconds",Sa="rowId"+ga,Ta="tableId",_a="tableName",ba="deleteEmptyColumns",Ca="deleteEmptyTable",La="condition",Ra={mode:$a,[Ia]:1},Pa={load:0,save:0,[_a]:t+"_values"},Ma=a=>A(a)?a:void 0,Fa=a=>d(a)||A(a),Ua=(a,t,e,n,s)=>{const i=ya();return ca(a,(a,r)=>{const o=(w=ia(t,E(a)?{[e]:a}:a),c=q.values(w),l=la(t),c.slice(0,l));var c,l,w;y(o[0])||n(r,o[0])||(s(r,o[0]),pa(i,r,o))}),i},ja=JSON.stringify,Ba=JSON.parse,Ja=a=>""===a?void 0:A(a)?D(a,Ja):ta(a)?ca(a,Ja):a,Ya=/^\d+$/,ka=ya(),xa=ya(),za=(a,t,n,s,i,r,o,c={},l=0,w=[])=>{let d,v,E,f=0,g=0,h=0;Ea(ka,w,()=>0),Ea(xa,w,()=>[]);const D=ya(),[I,S,b,L,M]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!e),([[a],[t]])=>!wa(a)||!wa(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!wa(a)||!wa(t),t.setContent]:m("Store type not supported by this Persister"))(o,a,l),[F,U,j]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?_(a):null)??e+t++,t=>{Ya.test(t)&&N(a)<1e3&&T(a,t)}]})(),s=ya();return[(n,i,r,o=[],c=()=>[])=>{a??=X;const l=t(1);return pa(s,l,[n,i,r,o,c]),fa(Aa(i,r??[e],Na),l),l},(t,n,...i)=>O(((a,t=[e])=>{const n=[],s=(a,e)=>e==N(t)?T(n,a):y(t[e])?R(a,a=>s(a,e+1)):O([t[e],null],t=>s(da(a,t),e+1));return s(a,0),n})(t,n),t=>R(t,t=>da(s,t)[0](a,...n??[],...i))),a=>p(da(s,a),([,t,i])=>(Aa(t,i??[e],void 0,t=>(P(t,a),C(t)?1:0)),pa(s,a),n(a),i)),t=>p(da(s,t),([t,,e=[],n,s])=>{const i=(...r)=>{const o=N(r);o==N(e)?t(a,...r,...s(r)):y(e[o])?O(n[o]?.(...r)??[],a=>i(...r,a)):i(...r,e[o])};i()})]})(),B=a=>{a!=f&&(f=a,U(D,void 0,f))},J=t=>{(I&&A(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},Y=async()=>{Q()&&a.__?.[0]?.()&&await G()},k=async a=>(2!=f&&(B(1),g++,await W(async()=>{await $(async()=>{const e=await t();A(e)?J(e):a?M(a):m("Content is not an array: "+e)},()=>{a&&M(a)}),B(0),await Y()})),X),x=async a=>(z(),await k(a),await $(async()=>v=await s(async(a,t)=>{t||a?2!=f&&(B(1),g++,J(t??a),B(0),await Y()):await k()}),r),X),z=async()=>(v&&(await $(()=>i(v),r),v=void 0),X),G=async a=>(1!=f&&(B(2),h++,await W(async()=>{await $(()=>n(S,a),r),B(0)})),X),H=async()=>(K(),await G(),E=a.addDidFinishTransactionListener(()=>{const a=b();L(a)&&G(a)}),X),K=async()=>(E&&(a.delListener(E),E=void 0),X),Q=()=>!u(E),V=async(a=!1)=>{const[t,e]=a?[K,z]:[z,K];return await t(),await e(),X},W=async(...a)=>(T(da(xa,w),...a),await(async()=>{if(!da(ka,w)){for(pa(ka,w,1);!u(d=_(da(xa,w)));)await $(d,r);pa(ka,w,0)}})(),X),X={load:k,startAutoLoad:x,stopAutoLoad:z,isAutoLoading:()=>!u(v),save:G,startAutoSave:H,stopAutoSave:K,isAutoSaving:Q,startAutoPersisting:async(a,t=!1)=>{const[e,n]=t?[H,x]:[x,H];return await e(a),await n(a),X},stopAutoPersisting:V,getStatus:()=>f,addStatusListener:a=>F(a,D),delListener:t=>(j(t),a),schedule:W,getStore:()=>a,destroy:()=>(da(xa,w).splice(0,void 0),V()),getStats:()=>({loads:g,saves:h}),...c};return na(X)},Ga=(a,t,e,s,r,o=Ha,c,l)=>{const w=ya();return[async()=>{w.clear(),D(await e(a,t),({tn:a,cn:t})=>fa(Ea(w,a,Na),t))},async(t,e,n,s)=>{const i=u(s)?void 0:Na(s);return((a,t)=>b(da(w,a),t))(t,e)?sa(S(D(await a(x+V(t)+X(t,n)),a=>{const t=a[e],n=l?ca(ra(a,e),l):ra(a,e);return[t,u(i)?n:sa(S(oa(n,(a,t)=>[t,a]),([a])=>(a=>u(i)||b(i,a))(a)))]}),a=>!u(a[0])&&!wa(a[1]))):{}},async(t,e,s,l,y,d=!1,v=i,p)=>{const E=u(p)?void 0:Na(p),A=a=>u(E)||b(E,a),N=Na();ca(s??{},a=>D(S(ea(a??{}),A),a=>fa(N,a)));const f=L(N);if(u(E)&&!d&&y&&v==i&&I(f)&&b(w,t))return await a("DROP "+B+V(t)),void pa(w,t);const m=da(w,t),$=Na(S(L(m),a=>a==e||A(a)));if(I(f)||(b(w,t)?await g(D([e,...f],async(n,s)=>{P($,n)||(await a(J+V(t)+"ADD"+V(n)+r),0==s&&await a("CREATE UNIQUE INDEX pk ON "+V(t)+`(${V(e)})`),fa(m,n))})):(await a(Q+V(t)+`(${V(e)}${r} PRIMARY KEY${h(D(f,a=>n+V(a)+r))});`),pa(w,t,Na([e,...f])))),await g([...!d&&l?D(L($),async n=>{n!=e&&(await a(J+V(t)+"DROP"+V(n)),P(m,n))}):[]]),d)u(s)?u(E)&&await a(k+V(t)+X(t,v)):await g(oa(s,async(n,s)=>{if(u(n))await a(k+V(t)+X(t,v)+`AND(${V(e)}=$1)`,[s]);else if(!I(f)){const i=S(ea(n),A);I(i)||await o(a,t,e,i,{[s]:D(i,a=>c?c(n[a]):n[a])},m)}}));else if(I(f))u(E)&&b(w,t)&&await a(k+V(t)+X(t,v));else{const n=S(L(da(w,t)),a=>a!=e&&A(a)),i={},r=[];ca(s??{},(a,t)=>{i[t]=D(n,t=>c?c(a?.[t]):a?.[t]),T(r,t)}),await o(a,t,e,n,i,m),await a(k+V(t)+X(t,v)+`AND${V(e)}NOT IN(${W(r)})`,r)}},async t=>{let e;return await a("BEGIN"),await $(async()=>e=await t(),s),await a("END"),e}]},Ha=async(a,t,e,s,i)=>{const r=[1];await a("INSERT INTO"+V(t)+"("+((...a)=>h(D(a,V),n))(e,...s)+")VALUES"+h(oa(i,a=>"($"+r[0]+++","+W(a,r)+")"),n)+"ON CONFLICT("+V(e)+")DO UPDATE SET"+h(D(s,a=>V(a)+"=excluded."+V(a)),n),oa(i,(a,t)=>[t,...D(a,a=>a??null)]).flat())},Ka=(a,t,e,n,s,i,r,[o,c,l],w,y,d,v,p,E)=>{const[A,N,f,g]=Ga(t,w,y,s,p,E),m=za(a,()=>g(async()=>{return await A(),a=(await N(o,c))[M]?.[l]??"null",Ja(Ba(a));var a}),a=>g(async()=>{var t;await A(),await f(o,c,{[M]:{[l]:(t=a()??null,ja(t,(a,t)=>u(t)?"":t))}},!0,!0)}),e,n,s,r,{[v]:()=>d,destroy:async()=>(await m.stopAutoPersisting(),i(),m)},0,d);return m},Qa=(a,t,e,n,s,i,r,[o,c,[l,w,y,d,v]],p,E,A,N,f,m,$,O)=>{const[h,I,T,_]=Ga(t,p,E,s,f,m,$,O),b=(a,t)=>g(va(c,async([e,n,s,i,r],o)=>{t&&!(o in a)||await T(e,n,a[o],s,i,t,r)})),C=(a,t,e)=>sa(1==e?S(oa(a,(a,t)=>[t,a]),([a])=>{return e=a,t.includes(e);var e}):S(D(t,t=>[t,a[t]]),([,a])=>!u(a))),L=async(a,t)=>w?await T(y,F,{[M]:u(v)?a:C(a,v,t)},!0,!0,t,void 0,v):null,R=za(a,()=>_(async()=>{await h();const a=await(async()=>sa(S(await g(va(o,async([a,t,e],n)=>[a,await I(n,t,e)])),a=>!wa(a[1]))))(),t=await(async()=>l?(await I(y,F,void 0,d))[M]:{})();return wa(a)&&u(t)?void 0:[a,t]}),(a,t)=>_(async()=>{if(await h(),u(t)){const[t,e]=a();await b(t),await L(e)}else await b(t[0],!0),await L(t[1],!0)}),e,n,s,r,{[N]:()=>A,destroy:async()=>(await R.stopAutoPersisting(),i(),R)},0,A);return R},Va=(a,n,s,r,o,c,u,y,v,p,A="getDb",N)=>{let f,g,m;const O=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(s,c),[h,D,I,S]=(a=>{const e=(a=>ia(Ra,E(a)?{[Oa]:a}:a??{}))(a),n=e[Ia];if(e.mode==$a){const a=e[Oa]??t;return[1,n,[a,e[ha]??F,e[Da]??ma],Na(a)]}const{tables:{load:s={},save:r={}}={},values:o={}}=e,c=ia(Pa,o),{load:l,save:w}=c,u=[Fa(l),Fa(w),c[_a],Ma(l),Ma(w)],y=u[2],d=Na(y),v=Na(y),p=Ua(s,{[Ta]:null,[Sa]:F,[La]:i},Ta,a=>b(v,a),a=>fa(d,a)),A=Ua(r,{[_a]:null,[Sa]:F,[ba]:0,[Ca]:0,[La]:null},_a,(a,t)=>b(v,t),(a,t)=>fa(d,t));var N;return N=(a,t)=>t[4]??=da(p,t[0])?.[2]??i,R(A,(a,t)=>N(0,a)),[0,n,[p,A,u],d]})(n);return(h?Ka:Qa)(a,O,a=>{let t;const e=()=>t=setInterval(()=>$(async()=>{const[{d:t,s:e,c:n}]=await O(U+` ${G} d,${H} s,TOTAL_CHANGES() c FROM ${z}${G} JOIN ${z}${H}`);t==f&&e==g&&n==m||(w(f)||a(),f=t,g=e,m=n)}),1e3*D),n=()=>{f=g=m=null,l(t)},s=r(t=>{S.has(t)&&(n(),a(),e())});return e(),()=>{n(),o(s)}},a=>a(),u,y,v,I,L(S),async(a,t)=>await a(U+` t.name tn,c.name cn FROM ${K}list()t,${K}info(t.name)c ${j} t.schema='main'AND t.type IN('table','view')AND t.name IN(${W(t)})ORDER BY t.name,c.name`,t),p,A,e,N,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0)},Wa="change",Xa=(a,t,e,n,s)=>Va(a,e,async(a,e=[])=>{return await(n=(n,s)=>t.all(a,e,(a,t)=>a?s(a):n(t)),new o(n));var n},a=>{const e=(t,e,n)=>a(n);return t.on(Wa,e),e},a=>t.off(Wa,a),n,s,f,3,t);export{Xa as createSqlite3Persister};
1
+ const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",r=(a,t,e)=>a.replace(t,e),o=Promise,c=a=>(t,e,n)=>a(t)?n?.():e(t),l=clearInterval,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=c(w),p=c(u),E=t=>a(t)==s,A=a=>Array.isArray(a),N=a=>a.length,f=()=>{},g=async a=>o.all(a),m=a=>{throw Error(a)},$=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},O=(a,t)=>a.forEach(t),h=(a,t="")=>a.join(t),D=(a,t)=>a.map(t),I=a=>0==N(a),S=(a,t)=>a.filter(t),T=(a,...t)=>a.push(...t),_=a=>a.shift(),b=(a,t)=>a?.has(t)??!1,C=a=>u(a)||0==(a=>a?.size??0)(a),L=a=>[...a?.values()??[]],R=(a,t)=>a?.forEach(t),P=(a,t)=>a?.delete(t),M="_",F="_id",U="SELECT",j="WHERE",B="TABLE",J="ALTER "+B,Y="FROM",k="DELETE "+Y,x=U+"*"+Y,z="pragma_",G="data_version",H="schema_version",K="pragma_table_",Q="CREATE "+B,V=a=>h(D(((a,t="",e)=>a.split(t,e))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),W=(a,t=[1])=>h(D(a,()=>"$"+t[0]++),n),X=(a,t=i)=>j+`(${r(t,"$tableName",V(a))})`,q=Object,Z=a=>q.getPrototypeOf(a),aa=q.entries,ta=a=>!w(a)&&v(Z(a),a=>a==q.prototype||w(Z(a)),()=>!0),ea=q.keys,na=q.freeze,sa=(a=[])=>q.fromEntries(a),ia=(...a)=>q.assign({},...a),ra=(a,t)=>(delete a[t],a),oa=(a,t)=>D(aa(a),([a,e])=>t(e,a)),ca=(a,t)=>sa(oa(a,(a,e)=>[e,t(a,e)])),la=a=>N(ea(a)),wa=a=>ta(a)&&0==la(a),ua=Map,ya=a=>new ua(a),da=(a,t)=>a?.get(t),va=(a,t)=>D([...a?.entries()??[]],([a,e])=>t(e,a)),pa=(a,t,e)=>u(e)?(P(a,t),a):a?.set(t,e),Ea=(a,t,e,n)=>(b(a,t)?n?.(da(a,t)):pa(a,t,e()),da(a,t)),Aa=(a,t,e,n,s=0)=>p((e?Ea:da)(a,t[s],s>N(t)-2?e:ya),i=>{if(s>N(t)-2)return n?.(i)&&pa(a,t[s]),i;const r=Aa(i,t,e,n,s+1);return C(i)&&pa(a,t[s]),r}),Na=a=>new Set(A(a)||u(a)?a:[a]),fa=(a,t)=>a?.add(t),ga="ColumnName",ma="store",$a="json",Oa=ma+"TableName",ha=ma+"Id"+ga,Da=ma+ga,Ia="autoLoadIntervalSeconds",Sa="rowId"+ga,Ta="tableId",_a="tableName",ba="deleteEmptyColumns",Ca="deleteEmptyTable",La="condition",Ra={mode:$a,[Ia]:1},Pa={load:0,save:0,[_a]:t+"_values"},Ma=a=>A(a)?a:void 0,Fa=a=>d(a)||A(a),Ua=(a,t,e,n,s)=>{const i=ya();return ca(a,(a,r)=>{const o=(w=ia(t,E(a)?{[e]:a}:a),c=q.values(w),l=la(t),c.slice(0,l));var c,l,w;y(o[0])||n(r,o[0])||(s(r,o[0]),pa(i,r,o))}),i},ja=JSON.stringify,Ba=JSON.parse,Ja=a=>""===a?void 0:A(a)?D(a,Ja):ta(a)?ca(a,Ja):a,Ya=/^\d+$/,ka=ya(),xa=ya(),za=(a,t,n,s,i,r,o,c={},l=0,w=[])=>{let d,v,E,f=0,g=0,h=0;Ea(ka,w,()=>0),Ea(xa,w,()=>[]);const D=ya(),[I,S,b,L,M]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!e),([[a],[t]])=>!wa(a)||!wa(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!wa(a)||!wa(t),t.setContent]:m("Store type not supported by this Persister"))(o,a,l),[F,U,j]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?_(a):null)??e+t++,t=>{Ya.test(t)&&N(a)<1e3&&T(a,t)}]})(),s=ya();return[(n,i,r,o=[],c=()=>[])=>{a??=X;const l=t(1);return pa(s,l,[n,i,r,o,c]),fa(Aa(i,r??[e],Na),l),l},(t,n,...i)=>O(((a,t=[e])=>{const n=[],s=(a,e)=>e==N(t)?T(n,a):y(t[e])?R(a,a=>s(a,e+1)):O([t[e],null],t=>s(da(a,t),e+1));return s(a,0),n})(t,n),t=>R(t,t=>da(s,t)[0](a,...n??[],...i))),a=>p(da(s,a),([,t,i])=>(Aa(t,i??[e],void 0,t=>(P(t,a),C(t)?1:0)),pa(s,a),n(a),i)),t=>p(da(s,t),([t,,e=[],n,s])=>{const i=(...r)=>{const o=N(r);o==N(e)?t(a,...r,...s(r)):y(e[o])?O(n[o]?.(...r)??[],a=>i(...r,a)):i(...r,e[o])};i()})]})(),B=a=>{a!=f&&(f=a,U(D,void 0,f))},J=t=>{(I&&A(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},Y=async()=>{Q()&&a.__?.[0]?.()&&await G()},k=async a=>(2!=f&&(B(1),g++,await W(async()=>{await $(async()=>{const e=await t();A(e)?J(e):u(e)&&a?M(a):u(e)||m("Content is not an array: "+e)},t=>{r?.(t),a&&M(a)}),B(0),await Y()})),X),x=async a=>(z(),await k(a),await $(async()=>v=await s(async(a,t)=>{t||a?2!=f&&(B(1),g++,J(t??a),B(0),await Y()):await k()}),r),X),z=async()=>(v&&(await $(()=>i(v),r),v=void 0),X),G=async a=>(1!=f&&(B(2),h++,await W(async()=>{await $(()=>n(S,a),r),B(0)})),X),H=async()=>(K(),await G(),E=a.addDidFinishTransactionListener(()=>{const a=b();L(a)&&G(a)}),X),K=async()=>(E&&(a.delListener(E),E=void 0),X),Q=()=>!u(E),V=async(a=!1)=>{const[t,e]=a?[K,z]:[z,K];return await t(),await e(),X},W=async(...a)=>(T(da(xa,w),...a),await(async()=>{if(!da(ka,w)){for(pa(ka,w,1);!u(d=_(da(xa,w)));)await $(d,r);pa(ka,w,0)}})(),X),X={load:k,startAutoLoad:x,stopAutoLoad:z,isAutoLoading:()=>!u(v),save:G,startAutoSave:H,stopAutoSave:K,isAutoSaving:Q,startAutoPersisting:async(a,t=!1)=>{const[e,n]=t?[H,x]:[x,H];return await e(a),await n(a),X},stopAutoPersisting:V,getStatus:()=>f,addStatusListener:a=>F(a,D),delListener:t=>(j(t),a),schedule:W,getStore:()=>a,destroy:()=>(da(xa,w).splice(0,void 0),V()),getStats:()=>({loads:g,saves:h}),...c};return na(X)},Ga=(a,t,e,s,r,o=Ha,c,l)=>{const w=ya();return[async()=>{w.clear(),D(await e(a,t),({tn:a,cn:t})=>fa(Ea(w,a,Na),t))},async(t,e,n,s)=>{const i=u(s)?void 0:Na(s);return((a,t)=>b(da(w,a),t))(t,e)?sa(S(D(await a(x+V(t)+X(t,n)),a=>{const t=a[e],n=l?ca(ra(a,e),l):ra(a,e);return[t,u(i)?n:sa(S(oa(n,(a,t)=>[t,a]),([a])=>(a=>u(i)||b(i,a))(a)))]}),a=>!u(a[0])&&!wa(a[1]))):{}},async(t,e,s,l,y,d=!1,v=i,p)=>{const E=u(p)?void 0:Na(p),A=a=>u(E)||b(E,a),N=Na();ca(s??{},a=>D(S(ea(a??{}),A),a=>fa(N,a)));const f=L(N);if(u(E)&&!d&&y&&v==i&&I(f)&&b(w,t))return await a("DROP "+B+V(t)),void pa(w,t);const m=da(w,t),$=Na(S(L(m),a=>a==e||A(a)));if(I(f)||(b(w,t)?await g(D([e,...f],async(n,s)=>{P($,n)||(await a(J+V(t)+"ADD"+V(n)+r),0==s&&await a("CREATE UNIQUE INDEX pk ON "+V(t)+`(${V(e)})`),fa(m,n))})):(await a(Q+V(t)+`(${V(e)}${r} PRIMARY KEY${h(D(f,a=>n+V(a)+r))});`),pa(w,t,Na([e,...f])))),await g([...!d&&l?D(L($),async n=>{n!=e&&(await a(J+V(t)+"DROP"+V(n)),P(m,n))}):[]]),d)u(s)?u(E)&&await a(k+V(t)+X(t,v)):await g(oa(s,async(n,s)=>{if(u(n))await a(k+V(t)+X(t,v)+`AND(${V(e)}=$1)`,[s]);else if(!I(f)){const i=S(ea(n),A);I(i)||await o(a,t,e,i,{[s]:D(i,a=>c?c(n[a]):n[a])},m)}}));else if(I(f))u(E)&&b(w,t)&&await a(k+V(t)+X(t,v));else{const n=S(L(da(w,t)),a=>a!=e&&A(a)),i={},r=[];ca(s??{},(a,t)=>{i[t]=D(n,t=>c?c(a?.[t]):a?.[t]),T(r,t)}),await o(a,t,e,n,i,m),await a(k+V(t)+X(t,v)+`AND${V(e)}NOT IN(${W(r)})`,r)}},async t=>{let e;return await a("BEGIN"),await $(async()=>e=await t(),s),await a("END"),e}]},Ha=async(a,t,e,s,i)=>{const r=[1];await a("INSERT INTO"+V(t)+"("+((...a)=>h(D(a,V),n))(e,...s)+")VALUES"+h(oa(i,a=>"($"+r[0]+++","+W(a,r)+")"),n)+"ON CONFLICT("+V(e)+")DO UPDATE SET"+h(D(s,a=>V(a)+"=excluded."+V(a)),n),oa(i,(a,t)=>[t,...D(a,a=>a??null)]).flat())},Ka=(a,t,e,n,s,i,r,[o,c,l],w,y,d,v,p,E)=>{const[A,N,f,g]=Ga(t,w,y,s,p,E),m=za(a,()=>g(async()=>{return await A(),a=(await N(o,c))[M]?.[l]??"null",Ja(Ba(a));var a}),a=>g(async()=>{var t;await A(),await f(o,c,{[M]:{[l]:(t=a()??null,ja(t,(a,t)=>u(t)?"":t))}},!0,!0)}),e,n,s,r,{[v]:()=>d,destroy:async()=>(await m.stopAutoPersisting(),i(),m)},0,d);return m},Qa=(a,t,e,n,s,i,r,[o,c,[l,w,y,d,v]],p,E,A,N,f,m,$,O)=>{const[h,I,T,_]=Ga(t,p,E,s,f,m,$,O),b=(a,t)=>g(va(c,async([e,n,s,i,r],o)=>{t&&!(o in a)||await T(e,n,a[o],s,i,t,r)})),C=(a,t,e)=>sa(1==e?S(oa(a,(a,t)=>[t,a]),([a])=>{return e=a,t.includes(e);var e}):S(D(t,t=>[t,a[t]]),([,a])=>!u(a))),L=async(a,t)=>w?await T(y,F,{[M]:u(v)?a:C(a,v,t)},!0,!0,t,void 0,v):null,R=za(a,()=>_(async()=>{await h();const a=await(async()=>sa(S(await g(va(o,async([a,t,e],n)=>[a,await I(n,t,e)])),a=>!wa(a[1]))))(),t=await(async()=>l?(await I(y,F,void 0,d))[M]:{})();return wa(a)&&u(t)?void 0:[a,t]}),(a,t)=>_(async()=>{if(await h(),u(t)){const[t,e]=a();await b(t),await L(e)}else await b(t[0],!0),await L(t[1],!0)}),e,n,s,r,{[N]:()=>A,destroy:async()=>(await R.stopAutoPersisting(),i(),R)},0,A);return R},Va=(a,n,s,r,o,c,u,y,v,p,A="getDb",N)=>{let f,g,m;const O=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(s,c),[h,D,I,S]=(a=>{const e=(a=>ia(Ra,E(a)?{[Oa]:a}:a??{}))(a),n=e[Ia];if(e.mode==$a){const a=e[Oa]??t;return[1,n,[a,e[ha]??F,e[Da]??ma],Na(a)]}const{tables:{load:s={},save:r={}}={},values:o={}}=e,c=ia(Pa,o),{load:l,save:w}=c,u=[Fa(l),Fa(w),c[_a],Ma(l),Ma(w)],y=u[2],d=Na(y),v=Na(y),p=Ua(s,{[Ta]:null,[Sa]:F,[La]:i},Ta,a=>b(v,a),a=>fa(d,a)),A=Ua(r,{[_a]:null,[Sa]:F,[ba]:0,[Ca]:0,[La]:null},_a,(a,t)=>b(v,t),(a,t)=>fa(d,t));var N;return N=(a,t)=>t[4]??=da(p,t[0])?.[2]??i,R(A,(a,t)=>N(0,a)),[0,n,[p,A,u],d]})(n);return(h?Ka:Qa)(a,O,a=>{let t;const e=()=>t=setInterval(()=>$(async()=>{const[{d:t,s:e,c:n}]=await O(U+` ${G} d,${H} s,TOTAL_CHANGES() c FROM ${z}${G} JOIN ${z}${H}`);t==f&&e==g&&n==m||(w(f)||a(),f=t,g=e,m=n)}),1e3*D),n=()=>{f=g=m=null,l(t)},s=r(t=>{S.has(t)&&(n(),a(),e())});return e(),()=>{n(),o(s)}},a=>a(),u,y,v,I,L(S),async(a,t)=>await a(U+` t.name tn,c.name cn FROM ${K}list()t,${K}info(t.name)c ${j} t.schema='main'AND t.type IN('table','view')AND t.name IN(${W(t)})ORDER BY t.name,c.name`,t),p,A,e,N,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0)},Wa="change",Xa=(a,t,e,n,s)=>Va(a,e,async(a,e=[])=>{return await(n=(n,s)=>t.all(a,e,(a,t)=>a?s(a):n(t)),new o(n));var n},a=>{const e=(t,e,n)=>a(n);return t.on(Wa,e),e},a=>t.off(Wa,a),n,s,f,3,t);export{Xa as createSqlite3Persister};
@@ -1 +1 @@
1
- import{Map as t}from"yjs";const e="t",a="v",s=t=>(e,a,s)=>t(e)?s?.():a(e),n=t=>null==t,o=t=>void 0===t,r=t=>null===t,i=s(n),c=s(o),d=t=>Array.isArray(t),u=t=>t.length,g=t=>{throw Error(t)},l=async(t,e,a)=>{try{return await t()}catch(t){e?.(t)}},y=(t,e)=>t.forEach(e),w=(t,...e)=>t.push(...e),p=t=>t.shift(),v=t=>o(t)||0==(t=>t?.size??0)(t),h=(t,e)=>t?.forEach(e),f=(t,e)=>t?.delete(e),S=Object,A=t=>S.getPrototypeOf(t),b=S.entries,O=S.keys,_=S.freeze,C=(t=[])=>S.fromEntries(t),L=(t,e)=>e in t,J=(t,e)=>C(((t,e)=>((t,e)=>t.map(e))(b(t),([t,a])=>e(a,t)))(t,(t,a)=>[a,e(t,a)])),M=t=>(t=>!n(t)&&i(A(t),t=>t==S.prototype||n(A(t)),()=>!0))(t)&&0==(t=>u(O(t)))(t),N=(t,e,a)=>(L(t,e)||(t[e]=a()),t[e]),z=Map,D=t=>new z(t),E=(t,e)=>t?.get(e),m=(t,e)=>h(t,(t,a)=>e(a,t)),P=(t,e,a)=>o(a)?(f(t,e),t):t?.set(e,a),j=(t,e,a,s)=>{var n,o;return n=t,o=e,n?.has(o)?s?.(E(t,e)):P(t,e,a()),E(t,e)},k=(t,e,a,s,n=0)=>c((a?j:E)(t,e[n],n>u(e)-2?a:D),o=>{if(n>u(e)-2)return s?.(o)&&P(t,e[n]),o;const r=k(o,e,a,s,n+1);return v(o)&&P(t,e[n]),r}),x=/^\d+$/,F=t=>new Set(d(t)||o(t)?t:[t]),T=D(),Y=D(),$=(t,e,a,s,n,i,S,A={},b=0,O=[])=>{let C,L,J,N=0,z=0,m=0;j(T,O,()=>0),j(Y,O,()=>[]);const $=D(),[q,B,G,H,I]=((t=1,e,a)=>1!=t&&e.isMergeable()?[1,e.__[1],()=>e.__[2](!a),([[t],[e]])=>!M(t)||!M(e),e.setDefaultContent]:2!=t?[0,e._[7],e._[8],([t,e])=>!M(t)||!M(e),e.setContent]:g("Store type not supported by this Persister"))(S,t,b),[K,Q,R]=(()=>{let t;const[e,a]=(()=>{const t=[];let e=0;return[a=>(a?p(t):null)??""+e++,e=>{x.test(e)&&u(t)<1e3&&w(t,e)}]})(),s=D();return[(a,n,o,r=[],i=()=>[])=>{t??=it;const c=e(1);var d,u;return P(s,c,[a,n,o,r,i]),d=k(n,o??[""],F),u=c,d?.add(u),c},(e,a,...n)=>y(((t,e=[""])=>{const a=[],s=(t,n)=>n==u(e)?w(a,t):r(e[n])?h(t,t=>s(t,n+1)):y([e[n],null],e=>s(E(t,e),n+1));return s(t,0),a})(e,a),e=>h(e,e=>E(s,e)[0](t,...a??[],...n))),t=>c(E(s,t),([,e,n])=>(k(e,n??[""],void 0,e=>(f(e,t),v(e)?1:0)),P(s,t),a(t),n)),e=>c(E(s,e),([e,,a=[],s,n])=>{const o=(...i)=>{const c=u(i);c==u(a)?e(t,...i,...n(i)):r(a[c])?y(s[c]?.(...i)??[],t=>o(...i,t)):o(...i,a[c])};o()})]})(),U=t=>{t!=N&&(N=t,Q($,void 0,N))},V=e=>{(q&&d(e?.[0])?1===e?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},W=async()=>{nt()&&t.__?.[0]?.()&&await et()},X=async t=>(2!=N&&(U(1),z++,await rt(async()=>{await l(async()=>{const a=await e();d(a)?V(a):t?I(t):g("Content is not an array: "+a)},()=>{t&&I(t)}),U(0),await W()})),it),Z=async t=>(tt(),await X(t),await l(async()=>L=await s(async(t,e)=>{e||t?2!=N&&(U(1),z++,V(e??t),U(0),await W()):await X()}),i),it),tt=async()=>(L&&(await l(()=>n(L),i),L=void 0),it),et=async t=>(1!=N&&(U(2),m++,await rt(async()=>{await l(()=>a(B,t),i),U(0)})),it),at=async()=>(st(),await et(),J=t.addDidFinishTransactionListener(()=>{const t=G();H(t)&&et(t)}),it),st=async()=>(J&&(t.delListener(J),J=void 0),it),nt=()=>!o(J),ot=async(t=!1)=>{const[e,a]=t?[st,tt]:[tt,st];return await e(),await a(),it},rt=async(...t)=>(w(E(Y,O),...t),await(async()=>{if(!E(T,O)){for(P(T,O,1);!o(C=p(E(Y,O)));)await l(C,i);P(T,O,0)}})(),it),it={load:X,startAutoLoad:Z,stopAutoLoad:tt,isAutoLoading:()=>!o(L),save:et,startAutoSave:at,stopAutoSave:st,isAutoSaving:nt,startAutoPersisting:async(t,e=!1)=>{const[a,s]=e?[at,Z]:[Z,at];return await a(t),await s(t),it},stopAutoPersisting:ot,getStatus:()=>N,addStatusListener:t=>K(t,$),delListener:e=>(R(e),t),schedule:rt,getStore:()=>t,destroy:()=>(E(Y,O).splice(0,void 0),ot()),getStats:()=>({loads:z,saves:m}),...A};return _(it)},q="delete",B=t=>[t.get(e),t.get(a)],G=(e,a,s,n)=>{const r=o(a)?e:e.get(a)??e.set(a,new t);let i;return J(s,(t,e)=>{n(r,e,t)&&(i=1)}),r.forEach((t,e)=>{L(s,e)||(r.delete(e),i=1)}),o(a)||r.size||e.delete(a),i},H=(s,n,r="tinybase",i)=>{const d=n.getMap(r);return $(s,async()=>d.size?[d.get(e).toJSON(),d.get(a).toJSON()]:void 0,async(s,r)=>n.transact(()=>((s,n,r)=>{s.size||(s.set(e,new t),s.set(a,new t));const[i,d]=B(s),u=()=>{g=1};let g=1;if(c(r,([t,e])=>{g=0,J(t,(t,e)=>g?0:o(t)?i.delete(e):c(i.get(e),e=>J(t,(t,a)=>g?0:o(t)?e.delete(a):c(e.get(a),e=>J(t,(t,a)=>o(t)?e.delete(a):e.set(a,t)),u)),u)),J(e,(t,e)=>g?0:o(t)?d.delete(e):d.set(e,t))}),g){const[t,e]=n();G(i,void 0,t,(t,e,a)=>G(i,e,a,(t,e,a)=>G(t,e,a,(t,e,a)=>{if(t.get(e)!==a)return t.set(e,a),1}))),G(d,void 0,e,(t,e,a)=>{d.get(e)!==a&&d.set(e,a)})}})(d,s,r)),t=>{const s=s=>t(void 0,((t,s)=>{if(1==u(s)&&(n=s[0].path,0==u(n)))return[t.get(e).toJSON(),t.get(a).toJSON(),1];var n;const[o,r]=B(t),i={},d={};return y(s,({path:t,changes:{keys:a}})=>p(t)==e?c(p(t),e=>{const s=N(i,e,C),n=o.get(e);c(p(t),t=>{const e=N(s,t,C),o=n.get(t);m(a,(t,{action:a})=>e[t]=a==q?void 0:o.get(t))},()=>m(a,(t,{action:e})=>s[t]=e==q?void 0:n.get(t)?.toJSON()))},()=>m(a,(t,{action:e})=>i[t]=e==q?void 0:o.get(t)?.toJSON())):m(a,(t,{action:e})=>d[t]=e==q?void 0:r.get(t))),[i,d,1]})(d,s));return d.observeDeep(s),s},t=>{d.unobserveDeep(t)},i,1,{getYDoc:()=>n})};export{H as createYjsPersister};
1
+ import{Map as t}from"yjs";const e="t",a="v",s=t=>(e,a,s)=>t(e)?s?.():a(e),n=t=>null==t,o=t=>void 0===t,r=t=>null===t,i=s(n),c=s(o),d=t=>Array.isArray(t),u=t=>t.length,g=t=>{throw Error(t)},l=async(t,e,a)=>{try{return await t()}catch(t){e?.(t)}},y=(t,e)=>t.forEach(e),w=(t,...e)=>t.push(...e),p=t=>t.shift(),v=t=>o(t)||0==(t=>t?.size??0)(t),h=(t,e)=>t?.forEach(e),f=(t,e)=>t?.delete(e),S=Object,A=t=>S.getPrototypeOf(t),b=S.entries,O=S.keys,_=S.freeze,C=(t=[])=>S.fromEntries(t),L=(t,e)=>e in t,J=(t,e)=>C(((t,e)=>((t,e)=>t.map(e))(b(t),([t,a])=>e(a,t)))(t,(t,a)=>[a,e(t,a)])),M=t=>(t=>!n(t)&&i(A(t),t=>t==S.prototype||n(A(t)),()=>!0))(t)&&0==(t=>u(O(t)))(t),N=(t,e,a)=>(L(t,e)||(t[e]=a()),t[e]),z=Map,D=t=>new z(t),E=(t,e)=>t?.get(e),m=(t,e)=>h(t,(t,a)=>e(a,t)),P=(t,e,a)=>o(a)?(f(t,e),t):t?.set(e,a),j=(t,e,a,s)=>{var n,o;return n=t,o=e,n?.has(o)?s?.(E(t,e)):P(t,e,a()),E(t,e)},k=(t,e,a,s,n=0)=>c((a?j:E)(t,e[n],n>u(e)-2?a:D),o=>{if(n>u(e)-2)return s?.(o)&&P(t,e[n]),o;const r=k(o,e,a,s,n+1);return v(o)&&P(t,e[n]),r}),x=/^\d+$/,F=t=>new Set(d(t)||o(t)?t:[t]),T=D(),Y=D(),$=(t,e,a,s,n,i,S,A={},b=0,O=[])=>{let C,L,J,N=0,z=0,m=0;j(T,O,()=>0),j(Y,O,()=>[]);const $=D(),[q,B,G,H,I]=((t=1,e,a)=>1!=t&&e.isMergeable()?[1,e.__[1],()=>e.__[2](!a),([[t],[e]])=>!M(t)||!M(e),e.setDefaultContent]:2!=t?[0,e._[7],e._[8],([t,e])=>!M(t)||!M(e),e.setContent]:g("Store type not supported by this Persister"))(S,t,b),[K,Q,R]=(()=>{let t;const[e,a]=(()=>{const t=[];let e=0;return[a=>(a?p(t):null)??""+e++,e=>{x.test(e)&&u(t)<1e3&&w(t,e)}]})(),s=D();return[(a,n,o,r=[],i=()=>[])=>{t??=it;const c=e(1);var d,u;return P(s,c,[a,n,o,r,i]),d=k(n,o??[""],F),u=c,d?.add(u),c},(e,a,...n)=>y(((t,e=[""])=>{const a=[],s=(t,n)=>n==u(e)?w(a,t):r(e[n])?h(t,t=>s(t,n+1)):y([e[n],null],e=>s(E(t,e),n+1));return s(t,0),a})(e,a),e=>h(e,e=>E(s,e)[0](t,...a??[],...n))),t=>c(E(s,t),([,e,n])=>(k(e,n??[""],void 0,e=>(f(e,t),v(e)?1:0)),P(s,t),a(t),n)),e=>c(E(s,e),([e,,a=[],s,n])=>{const o=(...i)=>{const c=u(i);c==u(a)?e(t,...i,...n(i)):r(a[c])?y(s[c]?.(...i)??[],t=>o(...i,t)):o(...i,a[c])};o()})]})(),U=t=>{t!=N&&(N=t,Q($,void 0,N))},V=e=>{(q&&d(e?.[0])?1===e?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},W=async()=>{nt()&&t.__?.[0]?.()&&await et()},X=async t=>(2!=N&&(U(1),z++,await rt(async()=>{await l(async()=>{const a=await e();d(a)?V(a):o(a)&&t?I(t):o(a)||g("Content is not an array: "+a)},e=>{i?.(e),t&&I(t)}),U(0),await W()})),it),Z=async t=>(tt(),await X(t),await l(async()=>L=await s(async(t,e)=>{e||t?2!=N&&(U(1),z++,V(e??t),U(0),await W()):await X()}),i),it),tt=async()=>(L&&(await l(()=>n(L),i),L=void 0),it),et=async t=>(1!=N&&(U(2),m++,await rt(async()=>{await l(()=>a(B,t),i),U(0)})),it),at=async()=>(st(),await et(),J=t.addDidFinishTransactionListener(()=>{const t=G();H(t)&&et(t)}),it),st=async()=>(J&&(t.delListener(J),J=void 0),it),nt=()=>!o(J),ot=async(t=!1)=>{const[e,a]=t?[st,tt]:[tt,st];return await e(),await a(),it},rt=async(...t)=>(w(E(Y,O),...t),await(async()=>{if(!E(T,O)){for(P(T,O,1);!o(C=p(E(Y,O)));)await l(C,i);P(T,O,0)}})(),it),it={load:X,startAutoLoad:Z,stopAutoLoad:tt,isAutoLoading:()=>!o(L),save:et,startAutoSave:at,stopAutoSave:st,isAutoSaving:nt,startAutoPersisting:async(t,e=!1)=>{const[a,s]=e?[at,Z]:[Z,at];return await a(t),await s(t),it},stopAutoPersisting:ot,getStatus:()=>N,addStatusListener:t=>K(t,$),delListener:e=>(R(e),t),schedule:rt,getStore:()=>t,destroy:()=>(E(Y,O).splice(0,void 0),ot()),getStats:()=>({loads:z,saves:m}),...A};return _(it)},q="delete",B=t=>[t.get(e),t.get(a)],G=(e,a,s,n)=>{const r=o(a)?e:e.get(a)??e.set(a,new t);let i;return J(s,(t,e)=>{n(r,e,t)&&(i=1)}),r.forEach((t,e)=>{L(s,e)||(r.delete(e),i=1)}),o(a)||r.size||e.delete(a),i},H=(s,n,r="tinybase",i)=>{const d=n.getMap(r);return $(s,async()=>d.size?[d.get(e).toJSON(),d.get(a).toJSON()]:void 0,async(s,r)=>n.transact(()=>((s,n,r)=>{s.size||(s.set(e,new t),s.set(a,new t));const[i,d]=B(s),u=()=>{g=1};let g=1;if(c(r,([t,e])=>{g=0,J(t,(t,e)=>g?0:o(t)?i.delete(e):c(i.get(e),e=>J(t,(t,a)=>g?0:o(t)?e.delete(a):c(e.get(a),e=>J(t,(t,a)=>o(t)?e.delete(a):e.set(a,t)),u)),u)),J(e,(t,e)=>g?0:o(t)?d.delete(e):d.set(e,t))}),g){const[t,e]=n();G(i,void 0,t,(t,e,a)=>G(i,e,a,(t,e,a)=>G(t,e,a,(t,e,a)=>{if(t.get(e)!==a)return t.set(e,a),1}))),G(d,void 0,e,(t,e,a)=>{d.get(e)!==a&&d.set(e,a)})}})(d,s,r)),t=>{const s=s=>t(void 0,((t,s)=>{if(1==u(s)&&(n=s[0].path,0==u(n)))return[t.get(e).toJSON(),t.get(a).toJSON(),1];var n;const[o,r]=B(t),i={},d={};return y(s,({path:t,changes:{keys:a}})=>p(t)==e?c(p(t),e=>{const s=N(i,e,C),n=o.get(e);c(p(t),t=>{const e=N(s,t,C),o=n.get(t);m(a,(t,{action:a})=>e[t]=a==q?void 0:o.get(t))},()=>m(a,(t,{action:e})=>s[t]=e==q?void 0:n.get(t)?.toJSON()))},()=>m(a,(t,{action:e})=>i[t]=e==q?void 0:o.get(t)?.toJSON())):m(a,(t,{action:e})=>d[t]=e==q?void 0:r.get(t))),[i,d,1]})(d,s));return d.observeDeep(s),s},t=>{d.unobserveDeep(t)},i,1,{getYDoc:()=>n})};export{H as createYjsPersister};
@@ -1 +1 @@
1
- import{Map as t}from"yjs";const e="t",a="v",s=t=>(e,a,s)=>t(e)?s?.():a(e),n=t=>null==t,o=t=>void 0===t,r=t=>null===t,i=s(n),c=s(o),d=t=>Array.isArray(t),u=t=>t.length,g=t=>{throw Error(t)},l=async(t,e,a)=>{try{return await t()}catch(t){e?.(t)}},y=(t,e)=>t.forEach(e),w=(t,...e)=>t.push(...e),p=t=>t.shift(),v=t=>o(t)||0==(t=>t?.size??0)(t),h=(t,e)=>t?.forEach(e),f=(t,e)=>t?.delete(e),S=Object,A=t=>S.getPrototypeOf(t),b=S.entries,O=S.keys,_=S.freeze,C=(t=[])=>S.fromEntries(t),L=(t,e)=>e in t,J=(t,e)=>C(((t,e)=>((t,e)=>t.map(e))(b(t),([t,a])=>e(a,t)))(t,(t,a)=>[a,e(t,a)])),M=t=>(t=>!n(t)&&i(A(t),t=>t==S.prototype||n(A(t)),()=>!0))(t)&&0==(t=>u(O(t)))(t),N=(t,e,a)=>(L(t,e)||(t[e]=a()),t[e]),z=Map,D=t=>new z(t),E=(t,e)=>t?.get(e),m=(t,e)=>h(t,(t,a)=>e(a,t)),P=(t,e,a)=>o(a)?(f(t,e),t):t?.set(e,a),j=(t,e,a,s)=>{var n,o;return n=t,o=e,n?.has(o)?s?.(E(t,e)):P(t,e,a()),E(t,e)},k=(t,e,a,s,n=0)=>c((a?j:E)(t,e[n],n>u(e)-2?a:D),o=>{if(n>u(e)-2)return s?.(o)&&P(t,e[n]),o;const r=k(o,e,a,s,n+1);return v(o)&&P(t,e[n]),r}),x=/^\d+$/,F=t=>new Set(d(t)||o(t)?t:[t]),T=D(),Y=D(),$=(t,e,a,s,n,i,S,A={},b=0,O=[])=>{let C,L,J,N=0,z=0,m=0;j(T,O,()=>0),j(Y,O,()=>[]);const $=D(),[q,B,G,H,I]=((t=1,e,a)=>1!=t&&e.isMergeable()?[1,e.__[1],()=>e.__[2](!a),([[t],[e]])=>!M(t)||!M(e),e.setDefaultContent]:2!=t?[0,e._[7],e._[8],([t,e])=>!M(t)||!M(e),e.setContent]:g("Store type not supported by this Persister"))(S,t,b),[K,Q,R]=(()=>{let t;const[e,a]=(()=>{const t=[];let e=0;return[a=>(a?p(t):null)??""+e++,e=>{x.test(e)&&u(t)<1e3&&w(t,e)}]})(),s=D();return[(a,n,o,r=[],i=()=>[])=>{t??=it;const c=e(1);var d,u;return P(s,c,[a,n,o,r,i]),d=k(n,o??[""],F),u=c,d?.add(u),c},(e,a,...n)=>y(((t,e=[""])=>{const a=[],s=(t,n)=>n==u(e)?w(a,t):r(e[n])?h(t,t=>s(t,n+1)):y([e[n],null],e=>s(E(t,e),n+1));return s(t,0),a})(e,a),e=>h(e,e=>E(s,e)[0](t,...a??[],...n))),t=>c(E(s,t),([,e,n])=>(k(e,n??[""],void 0,e=>(f(e,t),v(e)?1:0)),P(s,t),a(t),n)),e=>c(E(s,e),([e,,a=[],s,n])=>{const o=(...i)=>{const c=u(i);c==u(a)?e(t,...i,...n(i)):r(a[c])?y(s[c]?.(...i)??[],t=>o(...i,t)):o(...i,a[c])};o()})]})(),U=t=>{t!=N&&(N=t,Q($,void 0,N))},V=e=>{(q&&d(e?.[0])?1===e?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},W=async()=>{nt()&&t.__?.[0]?.()&&await et()},X=async t=>(2!=N&&(U(1),z++,await rt(async()=>{await l(async()=>{const a=await e();d(a)?V(a):t?I(t):g("Content is not an array: "+a)},()=>{t&&I(t)}),U(0),await W()})),it),Z=async t=>(tt(),await X(t),await l(async()=>L=await s(async(t,e)=>{e||t?2!=N&&(U(1),z++,V(e??t),U(0),await W()):await X()}),i),it),tt=async()=>(L&&(await l(()=>n(L),i),L=void 0),it),et=async t=>(1!=N&&(U(2),m++,await rt(async()=>{await l(()=>a(B,t),i),U(0)})),it),at=async()=>(st(),await et(),J=t.addDidFinishTransactionListener(()=>{const t=G();H(t)&&et(t)}),it),st=async()=>(J&&(t.delListener(J),J=void 0),it),nt=()=>!o(J),ot=async(t=!1)=>{const[e,a]=t?[st,tt]:[tt,st];return await e(),await a(),it},rt=async(...t)=>(w(E(Y,O),...t),await(async()=>{if(!E(T,O)){for(P(T,O,1);!o(C=p(E(Y,O)));)await l(C,i);P(T,O,0)}})(),it),it={load:X,startAutoLoad:Z,stopAutoLoad:tt,isAutoLoading:()=>!o(L),save:et,startAutoSave:at,stopAutoSave:st,isAutoSaving:nt,startAutoPersisting:async(t,e=!1)=>{const[a,s]=e?[at,Z]:[Z,at];return await a(t),await s(t),it},stopAutoPersisting:ot,getStatus:()=>N,addStatusListener:t=>K(t,$),delListener:e=>(R(e),t),schedule:rt,getStore:()=>t,destroy:()=>(E(Y,O).splice(0,void 0),ot()),getStats:()=>({loads:z,saves:m}),...A};return _(it)},q="delete",B=t=>[t.get(e),t.get(a)],G=(e,a,s,n)=>{const r=o(a)?e:e.get(a)??e.set(a,new t);let i;return J(s,(t,e)=>{n(r,e,t)&&(i=1)}),r.forEach((t,e)=>{L(s,e)||(r.delete(e),i=1)}),o(a)||r.size||e.delete(a),i},H=(s,n,r="tinybase",i)=>{const d=n.getMap(r);return $(s,async()=>d.size?[d.get(e).toJSON(),d.get(a).toJSON()]:void 0,async(s,r)=>n.transact(()=>((s,n,r)=>{s.size||(s.set(e,new t),s.set(a,new t));const[i,d]=B(s),u=()=>{g=1};let g=1;if(c(r,([t,e])=>{g=0,J(t,(t,e)=>g?0:o(t)?i.delete(e):c(i.get(e),e=>J(t,(t,a)=>g?0:o(t)?e.delete(a):c(e.get(a),e=>J(t,(t,a)=>o(t)?e.delete(a):e.set(a,t)),u)),u)),J(e,(t,e)=>g?0:o(t)?d.delete(e):d.set(e,t))}),g){const[t,e]=n();G(i,void 0,t,(t,e,a)=>G(i,e,a,(t,e,a)=>G(t,e,a,(t,e,a)=>{if(t.get(e)!==a)return t.set(e,a),1}))),G(d,void 0,e,(t,e,a)=>{d.get(e)!==a&&d.set(e,a)})}})(d,s,r)),t=>{const s=s=>t(void 0,((t,s)=>{if(1==u(s)&&(n=s[0].path,0==u(n)))return[t.get(e).toJSON(),t.get(a).toJSON(),1];var n;const[o,r]=B(t),i={},d={};return y(s,({path:t,changes:{keys:a}})=>p(t)==e?c(p(t),e=>{const s=N(i,e,C),n=o.get(e);c(p(t),t=>{const e=N(s,t,C),o=n.get(t);m(a,(t,{action:a})=>e[t]=a==q?void 0:o.get(t))},()=>m(a,(t,{action:e})=>s[t]=e==q?void 0:n.get(t)?.toJSON()))},()=>m(a,(t,{action:e})=>i[t]=e==q?void 0:o.get(t)?.toJSON())):m(a,(t,{action:e})=>d[t]=e==q?void 0:r.get(t))),[i,d,1]})(d,s));return d.observeDeep(s),s},t=>{d.unobserveDeep(t)},i,1,{getYDoc:()=>n})};export{H as createYjsPersister};
1
+ import{Map as t}from"yjs";const e="t",a="v",s=t=>(e,a,s)=>t(e)?s?.():a(e),n=t=>null==t,o=t=>void 0===t,r=t=>null===t,i=s(n),c=s(o),d=t=>Array.isArray(t),u=t=>t.length,g=t=>{throw Error(t)},l=async(t,e,a)=>{try{return await t()}catch(t){e?.(t)}},y=(t,e)=>t.forEach(e),w=(t,...e)=>t.push(...e),p=t=>t.shift(),v=t=>o(t)||0==(t=>t?.size??0)(t),h=(t,e)=>t?.forEach(e),f=(t,e)=>t?.delete(e),S=Object,A=t=>S.getPrototypeOf(t),b=S.entries,O=S.keys,_=S.freeze,C=(t=[])=>S.fromEntries(t),L=(t,e)=>e in t,J=(t,e)=>C(((t,e)=>((t,e)=>t.map(e))(b(t),([t,a])=>e(a,t)))(t,(t,a)=>[a,e(t,a)])),M=t=>(t=>!n(t)&&i(A(t),t=>t==S.prototype||n(A(t)),()=>!0))(t)&&0==(t=>u(O(t)))(t),N=(t,e,a)=>(L(t,e)||(t[e]=a()),t[e]),z=Map,D=t=>new z(t),E=(t,e)=>t?.get(e),m=(t,e)=>h(t,(t,a)=>e(a,t)),P=(t,e,a)=>o(a)?(f(t,e),t):t?.set(e,a),j=(t,e,a,s)=>{var n,o;return n=t,o=e,n?.has(o)?s?.(E(t,e)):P(t,e,a()),E(t,e)},k=(t,e,a,s,n=0)=>c((a?j:E)(t,e[n],n>u(e)-2?a:D),o=>{if(n>u(e)-2)return s?.(o)&&P(t,e[n]),o;const r=k(o,e,a,s,n+1);return v(o)&&P(t,e[n]),r}),x=/^\d+$/,F=t=>new Set(d(t)||o(t)?t:[t]),T=D(),Y=D(),$=(t,e,a,s,n,i,S,A={},b=0,O=[])=>{let C,L,J,N=0,z=0,m=0;j(T,O,()=>0),j(Y,O,()=>[]);const $=D(),[q,B,G,H,I]=((t=1,e,a)=>1!=t&&e.isMergeable()?[1,e.__[1],()=>e.__[2](!a),([[t],[e]])=>!M(t)||!M(e),e.setDefaultContent]:2!=t?[0,e._[7],e._[8],([t,e])=>!M(t)||!M(e),e.setContent]:g("Store type not supported by this Persister"))(S,t,b),[K,Q,R]=(()=>{let t;const[e,a]=(()=>{const t=[];let e=0;return[a=>(a?p(t):null)??""+e++,e=>{x.test(e)&&u(t)<1e3&&w(t,e)}]})(),s=D();return[(a,n,o,r=[],i=()=>[])=>{t??=it;const c=e(1);var d,u;return P(s,c,[a,n,o,r,i]),d=k(n,o??[""],F),u=c,d?.add(u),c},(e,a,...n)=>y(((t,e=[""])=>{const a=[],s=(t,n)=>n==u(e)?w(a,t):r(e[n])?h(t,t=>s(t,n+1)):y([e[n],null],e=>s(E(t,e),n+1));return s(t,0),a})(e,a),e=>h(e,e=>E(s,e)[0](t,...a??[],...n))),t=>c(E(s,t),([,e,n])=>(k(e,n??[""],void 0,e=>(f(e,t),v(e)?1:0)),P(s,t),a(t),n)),e=>c(E(s,e),([e,,a=[],s,n])=>{const o=(...i)=>{const c=u(i);c==u(a)?e(t,...i,...n(i)):r(a[c])?y(s[c]?.(...i)??[],t=>o(...i,t)):o(...i,a[c])};o()})]})(),U=t=>{t!=N&&(N=t,Q($,void 0,N))},V=e=>{(q&&d(e?.[0])?1===e?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},W=async()=>{nt()&&t.__?.[0]?.()&&await et()},X=async t=>(2!=N&&(U(1),z++,await rt(async()=>{await l(async()=>{const a=await e();d(a)?V(a):o(a)&&t?I(t):o(a)||g("Content is not an array: "+a)},e=>{i?.(e),t&&I(t)}),U(0),await W()})),it),Z=async t=>(tt(),await X(t),await l(async()=>L=await s(async(t,e)=>{e||t?2!=N&&(U(1),z++,V(e??t),U(0),await W()):await X()}),i),it),tt=async()=>(L&&(await l(()=>n(L),i),L=void 0),it),et=async t=>(1!=N&&(U(2),m++,await rt(async()=>{await l(()=>a(B,t),i),U(0)})),it),at=async()=>(st(),await et(),J=t.addDidFinishTransactionListener(()=>{const t=G();H(t)&&et(t)}),it),st=async()=>(J&&(t.delListener(J),J=void 0),it),nt=()=>!o(J),ot=async(t=!1)=>{const[e,a]=t?[st,tt]:[tt,st];return await e(),await a(),it},rt=async(...t)=>(w(E(Y,O),...t),await(async()=>{if(!E(T,O)){for(P(T,O,1);!o(C=p(E(Y,O)));)await l(C,i);P(T,O,0)}})(),it),it={load:X,startAutoLoad:Z,stopAutoLoad:tt,isAutoLoading:()=>!o(L),save:et,startAutoSave:at,stopAutoSave:st,isAutoSaving:nt,startAutoPersisting:async(t,e=!1)=>{const[a,s]=e?[at,Z]:[Z,at];return await a(t),await s(t),it},stopAutoPersisting:ot,getStatus:()=>N,addStatusListener:t=>K(t,$),delListener:e=>(R(e),t),schedule:rt,getStore:()=>t,destroy:()=>(E(Y,O).splice(0,void 0),ot()),getStats:()=>({loads:z,saves:m}),...A};return _(it)},q="delete",B=t=>[t.get(e),t.get(a)],G=(e,a,s,n)=>{const r=o(a)?e:e.get(a)??e.set(a,new t);let i;return J(s,(t,e)=>{n(r,e,t)&&(i=1)}),r.forEach((t,e)=>{L(s,e)||(r.delete(e),i=1)}),o(a)||r.size||e.delete(a),i},H=(s,n,r="tinybase",i)=>{const d=n.getMap(r);return $(s,async()=>d.size?[d.get(e).toJSON(),d.get(a).toJSON()]:void 0,async(s,r)=>n.transact(()=>((s,n,r)=>{s.size||(s.set(e,new t),s.set(a,new t));const[i,d]=B(s),u=()=>{g=1};let g=1;if(c(r,([t,e])=>{g=0,J(t,(t,e)=>g?0:o(t)?i.delete(e):c(i.get(e),e=>J(t,(t,a)=>g?0:o(t)?e.delete(a):c(e.get(a),e=>J(t,(t,a)=>o(t)?e.delete(a):e.set(a,t)),u)),u)),J(e,(t,e)=>g?0:o(t)?d.delete(e):d.set(e,t))}),g){const[t,e]=n();G(i,void 0,t,(t,e,a)=>G(i,e,a,(t,e,a)=>G(t,e,a,(t,e,a)=>{if(t.get(e)!==a)return t.set(e,a),1}))),G(d,void 0,e,(t,e,a)=>{d.get(e)!==a&&d.set(e,a)})}})(d,s,r)),t=>{const s=s=>t(void 0,((t,s)=>{if(1==u(s)&&(n=s[0].path,0==u(n)))return[t.get(e).toJSON(),t.get(a).toJSON(),1];var n;const[o,r]=B(t),i={},d={};return y(s,({path:t,changes:{keys:a}})=>p(t)==e?c(p(t),e=>{const s=N(i,e,C),n=o.get(e);c(p(t),t=>{const e=N(s,t,C),o=n.get(t);m(a,(t,{action:a})=>e[t]=a==q?void 0:o.get(t))},()=>m(a,(t,{action:e})=>s[t]=e==q?void 0:n.get(t)?.toJSON()))},()=>m(a,(t,{action:e})=>i[t]=e==q?void 0:o.get(t)?.toJSON())):m(a,(t,{action:e})=>d[t]=e==q?void 0:r.get(t))),[i,d,1]})(d,s));return d.observeDeep(s),s},t=>{d.unobserveDeep(t)},i,1,{getYDoc:()=>n})};export{H as createYjsPersister};