tinybase 9.4.0-beta.1 → 9.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (239) hide show
  1. package/@types/persisters/index.d.ts +4 -0
  2. package/@types/persisters/persister-durable-object-sql-storage/index.d.ts +9 -2
  3. package/@types/persisters/persister-durable-object-sql-storage/with-schemas/index.d.ts +9 -2
  4. package/@types/persisters/with-schemas/index.d.ts +4 -0
  5. package/@types/queries/index.d.ts +4 -0
  6. package/@types/queries/with-schemas/index.d.ts +4 -0
  7. package/@types/synchronizers/synchronizer-ws-client/index.d.ts +7 -3
  8. package/@types/synchronizers/synchronizer-ws-client/with-schemas/index.d.ts +7 -3
  9. package/@types/synchronizers/synchronizer-ws-server/index.d.ts +9 -3
  10. package/@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.ts +9 -3
  11. package/@types/synchronizers/synchronizer-ws-server-simple/index.d.ts +6 -3
  12. package/@types/synchronizers/synchronizer-ws-server-simple/with-schemas/index.d.ts +6 -3
  13. package/@types/ui-react-dom/index.d.ts +10 -10
  14. package/@types/ui-react-dom/with-schemas/index.d.ts +10 -10
  15. package/@types/ui-react-dom-charts/index.d.ts +7 -7
  16. package/@types/ui-react-dom-charts/with-schemas/index.d.ts +7 -7
  17. package/@types/ui-react-inspector/index.d.ts +1 -1
  18. package/@types/ui-react-inspector/with-schemas/index.d.ts +1 -1
  19. package/@types/ui-solid-dom/index.d.ts +10 -10
  20. package/@types/ui-solid-dom/with-schemas/index.d.ts +10 -10
  21. package/@types/ui-solid-inspector/index.d.ts +1 -1
  22. package/@types/ui-solid-inspector/with-schemas/index.d.ts +1 -1
  23. package/@types/ui-svelte-dom/index.d.ts +10 -10
  24. package/@types/ui-svelte-dom/with-schemas/index.d.ts +10 -10
  25. package/@types/ui-svelte-inspector/index.d.ts +1 -1
  26. package/@types/ui-svelte-inspector/with-schemas/index.d.ts +1 -1
  27. package/index.js +191 -74
  28. package/min/index.js +1 -1
  29. package/min/index.js.gz +0 -0
  30. package/min/omni/index.js +1 -1
  31. package/min/omni/index.js.gz +0 -0
  32. package/min/omni/with-schemas/index.js +1 -1
  33. package/min/omni/with-schemas/index.js.gz +0 -0
  34. package/min/persisters/index.js +1 -1
  35. package/min/persisters/index.js.gz +0 -0
  36. package/min/persisters/persister-automerge/index.js +1 -1
  37. package/min/persisters/persister-automerge/index.js.gz +0 -0
  38. package/min/persisters/persister-automerge/with-schemas/index.js +1 -1
  39. package/min/persisters/persister-automerge/with-schemas/index.js.gz +0 -0
  40. package/min/persisters/persister-browser/index.js +1 -1
  41. package/min/persisters/persister-browser/index.js.gz +0 -0
  42. package/min/persisters/persister-browser/with-schemas/index.js +1 -1
  43. package/min/persisters/persister-browser/with-schemas/index.js.gz +0 -0
  44. package/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  45. package/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  46. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  47. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  48. package/min/persisters/persister-durable-object-sql-storage/index.js +1 -1
  49. package/min/persisters/persister-durable-object-sql-storage/index.js.gz +0 -0
  50. package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js +1 -1
  51. package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js.gz +0 -0
  52. package/min/persisters/persister-durable-object-storage/index.js +1 -1
  53. package/min/persisters/persister-durable-object-storage/index.js.gz +0 -0
  54. package/min/persisters/persister-durable-object-storage/with-schemas/index.js +1 -1
  55. package/min/persisters/persister-durable-object-storage/with-schemas/index.js.gz +0 -0
  56. package/min/persisters/persister-electric-sql/index.js +1 -1
  57. package/min/persisters/persister-electric-sql/index.js.gz +0 -0
  58. package/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  59. package/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  60. package/min/persisters/persister-expo-sqlite/index.js +1 -1
  61. package/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  62. package/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  63. package/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  64. package/min/persisters/persister-file/index.js +1 -1
  65. package/min/persisters/persister-file/index.js.gz +0 -0
  66. package/min/persisters/persister-file/with-schemas/index.js +1 -1
  67. package/min/persisters/persister-file/with-schemas/index.js.gz +0 -0
  68. package/min/persisters/persister-indexed-db/index.js +1 -1
  69. package/min/persisters/persister-indexed-db/index.js.gz +0 -0
  70. package/min/persisters/persister-indexed-db/with-schemas/index.js +1 -1
  71. package/min/persisters/persister-indexed-db/with-schemas/index.js.gz +0 -0
  72. package/min/persisters/persister-libsql/index.js +1 -1
  73. package/min/persisters/persister-libsql/index.js.gz +0 -0
  74. package/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  75. package/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  76. package/min/persisters/persister-partykit-client/index.js +1 -1
  77. package/min/persisters/persister-partykit-client/index.js.gz +0 -0
  78. package/min/persisters/persister-partykit-client/with-schemas/index.js +1 -1
  79. package/min/persisters/persister-partykit-client/with-schemas/index.js.gz +0 -0
  80. package/min/persisters/persister-pglite/index.js +1 -1
  81. package/min/persisters/persister-pglite/index.js.gz +0 -0
  82. package/min/persisters/persister-pglite/with-schemas/index.js +1 -1
  83. package/min/persisters/persister-pglite/with-schemas/index.js.gz +0 -0
  84. package/min/persisters/persister-postgres/index.js +1 -1
  85. package/min/persisters/persister-postgres/index.js.gz +0 -0
  86. package/min/persisters/persister-postgres/with-schemas/index.js +1 -1
  87. package/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
  88. package/min/persisters/persister-powersync/index.js +1 -1
  89. package/min/persisters/persister-powersync/index.js.gz +0 -0
  90. package/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  91. package/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  92. package/min/persisters/persister-react-native-mmkv/index.js +1 -1
  93. package/min/persisters/persister-react-native-mmkv/index.js.gz +0 -0
  94. package/min/persisters/persister-react-native-mmkv/with-schemas/index.js +1 -1
  95. package/min/persisters/persister-react-native-mmkv/with-schemas/index.js.gz +0 -0
  96. package/min/persisters/persister-react-native-sqlite/index.js +1 -1
  97. package/min/persisters/persister-react-native-sqlite/index.js.gz +0 -0
  98. package/min/persisters/persister-react-native-sqlite/with-schemas/index.js +1 -1
  99. package/min/persisters/persister-react-native-sqlite/with-schemas/index.js.gz +0 -0
  100. package/min/persisters/persister-remote/index.js +1 -1
  101. package/min/persisters/persister-remote/index.js.gz +0 -0
  102. package/min/persisters/persister-remote/with-schemas/index.js +1 -1
  103. package/min/persisters/persister-remote/with-schemas/index.js.gz +0 -0
  104. package/min/persisters/persister-sqlite-bun/index.js +1 -1
  105. package/min/persisters/persister-sqlite-bun/index.js.gz +0 -0
  106. package/min/persisters/persister-sqlite-bun/with-schemas/index.js +1 -1
  107. package/min/persisters/persister-sqlite-bun/with-schemas/index.js.gz +0 -0
  108. package/min/persisters/persister-sqlite-wasm/index.js +1 -1
  109. package/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  110. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  111. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  112. package/min/persisters/persister-sqlite3/index.js +1 -1
  113. package/min/persisters/persister-sqlite3/index.js.gz +0 -0
  114. package/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  115. package/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  116. package/min/persisters/persister-yjs/index.js +1 -1
  117. package/min/persisters/persister-yjs/index.js.gz +0 -0
  118. package/min/persisters/persister-yjs/with-schemas/index.js +1 -1
  119. package/min/persisters/persister-yjs/with-schemas/index.js.gz +0 -0
  120. package/min/persisters/with-schemas/index.js +1 -1
  121. package/min/persisters/with-schemas/index.js.gz +0 -0
  122. package/min/queries/index.js +1 -1
  123. package/min/queries/index.js.gz +0 -0
  124. package/min/queries/with-schemas/index.js +1 -1
  125. package/min/queries/with-schemas/index.js.gz +0 -0
  126. package/min/synchronizers/index.js +1 -1
  127. package/min/synchronizers/index.js.gz +0 -0
  128. package/min/synchronizers/synchronizer-broadcast-channel/index.js +1 -1
  129. package/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
  130. package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -1
  131. package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
  132. package/min/synchronizers/synchronizer-local/index.js +1 -1
  133. package/min/synchronizers/synchronizer-local/index.js.gz +0 -0
  134. package/min/synchronizers/synchronizer-local/with-schemas/index.js +1 -1
  135. package/min/synchronizers/synchronizer-local/with-schemas/index.js.gz +0 -0
  136. package/min/synchronizers/synchronizer-ws-client/index.js +1 -1
  137. package/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
  138. package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
  139. package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
  140. package/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  141. package/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  142. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  143. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  144. package/min/synchronizers/synchronizer-ws-server-durable-object/index.js +1 -1
  145. package/min/synchronizers/synchronizer-ws-server-durable-object/index.js.gz +0 -0
  146. package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +1 -1
  147. package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js.gz +0 -0
  148. package/min/synchronizers/synchronizer-ws-server-simple/index.js +1 -1
  149. package/min/synchronizers/synchronizer-ws-server-simple/index.js.gz +0 -0
  150. package/min/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js +1 -1
  151. package/min/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js.gz +0 -0
  152. package/min/synchronizers/with-schemas/index.js +1 -1
  153. package/min/synchronizers/with-schemas/index.js.gz +0 -0
  154. package/min/ui-react-inspector/index.js +1 -1
  155. package/min/ui-react-inspector/index.js.gz +0 -0
  156. package/min/ui-react-inspector/with-schemas/index.js +1 -1
  157. package/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
  158. package/min/ui-solid-inspector/index.js +1 -1
  159. package/min/ui-solid-inspector/index.js.gz +0 -0
  160. package/min/ui-solid-inspector/with-schemas/index.js +1 -1
  161. package/min/ui-solid-inspector/with-schemas/index.js.gz +0 -0
  162. package/min/ui-svelte-inspector/index.js +1 -1
  163. package/min/ui-svelte-inspector/index.js.gz +0 -0
  164. package/min/ui-svelte-inspector/with-schemas/index.js +1 -1
  165. package/min/ui-svelte-inspector/with-schemas/index.js.gz +0 -0
  166. package/min/with-schemas/index.js +1 -1
  167. package/min/with-schemas/index.js.gz +0 -0
  168. package/omni/index.js +606 -179
  169. package/omni/with-schemas/index.js +606 -179
  170. package/package.json +12 -8
  171. package/persisters/index.js +49 -10
  172. package/persisters/persister-automerge/index.js +29 -5
  173. package/persisters/persister-automerge/with-schemas/index.js +29 -5
  174. package/persisters/persister-browser/index.js +29 -5
  175. package/persisters/persister-browser/with-schemas/index.js +29 -5
  176. package/persisters/persister-cr-sqlite-wasm/index.js +29 -5
  177. package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +29 -5
  178. package/persisters/persister-durable-object-sql-storage/index.js +44 -8
  179. package/persisters/persister-durable-object-sql-storage/with-schemas/index.js +44 -8
  180. package/persisters/persister-durable-object-storage/index.js +31 -5
  181. package/persisters/persister-durable-object-storage/with-schemas/index.js +31 -5
  182. package/persisters/persister-electric-sql/index.js +29 -5
  183. package/persisters/persister-electric-sql/with-schemas/index.js +29 -5
  184. package/persisters/persister-expo-sqlite/index.js +29 -5
  185. package/persisters/persister-expo-sqlite/with-schemas/index.js +29 -5
  186. package/persisters/persister-file/index.js +31 -5
  187. package/persisters/persister-file/with-schemas/index.js +31 -5
  188. package/persisters/persister-indexed-db/index.js +29 -5
  189. package/persisters/persister-indexed-db/with-schemas/index.js +29 -5
  190. package/persisters/persister-libsql/index.js +29 -5
  191. package/persisters/persister-libsql/with-schemas/index.js +29 -5
  192. package/persisters/persister-partykit-client/index.js +31 -5
  193. package/persisters/persister-partykit-client/with-schemas/index.js +31 -5
  194. package/persisters/persister-pglite/index.js +49 -10
  195. package/persisters/persister-pglite/with-schemas/index.js +49 -10
  196. package/persisters/persister-postgres/index.js +49 -10
  197. package/persisters/persister-postgres/with-schemas/index.js +49 -10
  198. package/persisters/persister-powersync/index.js +29 -5
  199. package/persisters/persister-powersync/with-schemas/index.js +29 -5
  200. package/persisters/persister-react-native-mmkv/index.js +31 -5
  201. package/persisters/persister-react-native-mmkv/with-schemas/index.js +31 -5
  202. package/persisters/persister-react-native-sqlite/index.js +29 -5
  203. package/persisters/persister-react-native-sqlite/with-schemas/index.js +29 -5
  204. package/persisters/persister-remote/index.js +31 -5
  205. package/persisters/persister-remote/with-schemas/index.js +31 -5
  206. package/persisters/persister-sqlite-bun/index.js +29 -5
  207. package/persisters/persister-sqlite-bun/with-schemas/index.js +29 -5
  208. package/persisters/persister-sqlite-wasm/index.js +29 -5
  209. package/persisters/persister-sqlite-wasm/with-schemas/index.js +29 -5
  210. package/persisters/persister-sqlite3/index.js +29 -5
  211. package/persisters/persister-sqlite3/with-schemas/index.js +29 -5
  212. package/persisters/persister-yjs/index.js +29 -5
  213. package/persisters/persister-yjs/with-schemas/index.js +29 -5
  214. package/persisters/with-schemas/index.js +49 -10
  215. package/queries/index.js +205 -74
  216. package/queries/with-schemas/index.js +205 -74
  217. package/readme.md +14 -14
  218. package/releases.md +84 -67
  219. package/synchronizers/index.js +31 -5
  220. package/synchronizers/synchronizer-broadcast-channel/index.js +39 -13
  221. package/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +39 -13
  222. package/synchronizers/synchronizer-local/index.js +31 -5
  223. package/synchronizers/synchronizer-local/with-schemas/index.js +31 -5
  224. package/synchronizers/synchronizer-ws-client/index.js +220 -61
  225. package/synchronizers/synchronizer-ws-client/with-schemas/index.js +220 -61
  226. package/synchronizers/synchronizer-ws-server/index.js +253 -73
  227. package/synchronizers/synchronizer-ws-server/with-schemas/index.js +253 -73
  228. package/synchronizers/synchronizer-ws-server-durable-object/index.js +88 -40
  229. package/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +88 -40
  230. package/synchronizers/synchronizer-ws-server-simple/index.js +184 -60
  231. package/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js +184 -60
  232. package/synchronizers/with-schemas/index.js +31 -5
  233. package/ui-react-inspector/index.js +29 -5
  234. package/ui-react-inspector/with-schemas/index.js +29 -5
  235. package/ui-solid-inspector/index.js +29 -5
  236. package/ui-solid-inspector/with-schemas/index.js +29 -5
  237. package/ui-svelte-inspector/index.js +29 -5
  238. package/ui-svelte-inspector/with-schemas/index.js +29 -5
  239. package/with-schemas/index.js +191 -74
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",n="",e=",",i=a(n),s="true",r=(a,t,n)=>a.replace(t,n),c=Promise,o=a=>(t,n,e)=>a(t)?e?.():n(t),l=globalThis,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=o(w),f=o(u),E=t=>a(t)==i,$=a=>Array.isArray(a),m=a=>a.length,N=a=>0==m(a),_=()=>{},A=a=>new c(a),O=async a=>c.all(a),p=(a,t)=>a?.has(t)??!1,h=a=>u(a)||0==(a=>a?.size??0)(a),T=a=>[...a?.values()??[]],g=a=>a.clear(),I=(a,t)=>a?.forEach(t),S=(a,t)=>a?.delete(t),D=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},R=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},b=async(a,t)=>{try{return await a()}finally{await t()}},L=(a,t)=>a.forEach(t),C=(a,t="")=>a.join(t),M=(a,t)=>a.map(t),P=(a,t)=>a.filter(t),F=(a,t=m(a))=>a.splice(0,t),x=(a,...t)=>a.push(...t),q="_",B="_id",U="SELECT",j="WHERE",k="TABLE",J="ALTER "+k,X="FROM",Y="DELETE "+X,z=U+"*"+X,G="pragma_",H="data_version",K="schema_version",Q="pragma_table_",V="CREATE "+k,W=/\$tableName/g,Z=a=>C(M(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),aa=(a,t=[1])=>C(M(a,()=>"$"+t[0]++),e),ta=(a,t=s)=>j+`(${na(t,Z(a))})`,na=(a,t)=>r(a,W,t),ea=Object,ia=a=>ea.getPrototypeOf(a),sa=ea.entries,ra=a=>!w(a)&&v(ia(a),a=>a==ea.prototype||w(ia(a)),()=>!0),ca=ea.keys,oa=ea.freeze,la=(...a)=>ea.assign(ea.create(null),...a),wa=(a,t,n)=>(ea.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),ua=(a=[])=>{const t=ea.create(null);return L(a,([a,n])=>wa(t,a,n)),t},ya=(a,t)=>(delete a[t],a),da=(a,t)=>L(ca(a),n=>t(a[n],n)),va=(a,t)=>M(sa(a),([a,n])=>t(n,a)),fa=(a,t)=>{const n=ua();return da(a,(a,e)=>wa(n,e,t(a,e))),n},Ea=a=>m(ca(a)),$a=a=>ra(a)&&0==Ea(a),ma=Map,Na=a=>new ma(a),_a=(a,t)=>a?.get(t),Aa=(a,t)=>I(a,(a,n)=>t(n,a)),Oa=(a,t)=>{const n=[];return Aa(a,(a,e)=>x(n,t(e,a))),n},pa=(a,t,n)=>u(n)?(S(a,t),a):a?.set(t,n),ha=(a,t,n,e)=>{let i=_a(a,t);return p(a,t)?e?.(i):pa(a,t,i=n()),i},Ta=(a,t,n,e,i=0)=>f((n?ha:_a)(a,t[i],i>m(t)-2?n:Na),s=>{if(i>m(t)-2)return e?.(s)&&pa(a,t[i]),s;const r=Ta(s,t,n,e,i+1);return h(s)&&pa(a,t[i]),r}),ga=a=>new Set($(a)||u(a)?a:[a]),Ia=(a,t)=>a?.add(t),Sa="ColumnName",Da="store",Ra="json",ba=Da+"TableName",La=Da+"Id"+Sa,Ca=Da+Sa,Ma="autoLoadIntervalSeconds",Pa="rowId"+Sa,Fa="tableId",xa="tableName",qa="deleteEmptyColumns",Ba="deleteEmptyTable",Ua="condition",ja={mode:Ra,[Ma]:1},ka={load:0,save:0,[xa]:t+"_values"},Ja=a=>$(a)?a:void 0,Xa=a=>d(a)||$(a),Ya=(a,t,n,e,i)=>{const s=Na();return da(a,(a,r)=>{const c=(w=la(t,E(a)?{[n]:a}:a),o=ea.values(w),l=Ea(t),o.slice(0,l));var o,l,w;y(c[0])||e(r,c[0])||(i(r,c[0]),pa(s,r,c))}),s},za=JSON.stringify,Ga=JSON.parse,Ha=a=>""===a?void 0:$(a)?M(a,Ha):ra(a)?fa(a,Ha):a,Ka=/^\d+$/,Qa=Na(),Va=Na(),Wa=Na(),Za=(a,t,e,i,s,r,c,o={},l=0,w=[])=>{let d,v,E,_,O,p=0,T=0,g=0,C=0,q=0,B=0,U=0,j=0,k=0;const J={},X=o.destroy;ha(Qa,w,()=>0),ha(Va,w,()=>[]),pa(Wa,w,(_a(Wa,w)??0)+1);const Y=Na(),[z,G,H,K,Q]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!$a(a)||!$a(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!$a(a)||!$a(t),t.setContent]:D(0))(c,a,l),[V,W,Z]=(a=>{let t;const[e,i]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{Ka.test(t)&&m(a)<1e3&&x(a,t)}]})(),s=Na(),r=(a,e,i,r)=>{let c,o=!1;if(L(((a,t=[n])=>{const e=[],i=(a,n)=>n==m(t)?x(e,a):y(t[n])?I(a,a=>i(a,n+1)):L([t[n],null],t=>i(_a(a,t),n+1));return i(a,0),e})(e,i),n=>I(n,n=>{const e=()=>_a(s,n)[0](t,...i??[],...r);a?(a=>{try{return a()}catch(a){(a=>{o||(c=a),o=!0})?.(a)}})(e):e()})),o)throw c};return[(i,r,c,o=[],l=()=>[])=>{t??=a();const w=e(1);return pa(s,w,[i,r,c,o,l]),Ia(Ta(r,c??[n],ga),w),w},(a,t,...n)=>r(!1,a,t,n),a=>f(_a(s,a),([,t,e])=>(Ta(t,e??[n],void 0,t=>(S(t,a),h(t)?1:0)),pa(s,a),i(a),e)),a=>f(_a(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const c=m(r);c==m(n)?a(t,...r,...i(r)):y(n[c])?L(e[c]?.(...r)??[],a=>s(...r,a)):s(...r,n[c])};s()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>Ea),aa=a=>{a!=p&&(p=a,W(Y,void 0,p))},ta=()=>{_a(Wa,w)||_a(Qa,w)||!N(_a(Va,w)??[])||(pa(Qa,w),pa(Va,w),pa(Wa,w))},na=t=>{(z&&$(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ea=async()=>{da()&&a.__?.[0]?.()&&await wa()},ia=a=>b(()=>v=a,()=>{v==a&&(v=void 0)}),sa=async a=>(2!=p&&(await b(async()=>{aa(1),T++,await fa(()=>R(async()=>{const n=await t();$(n)?na(n):u(n)&&a?Q(a):u(n)||D(1,n)},t=>{r?.(t),a&&Q(a)}))},()=>aa(0)),await ea()),Ea),ra=async()=>{const a=U;U=0,a&&a==C&&!k&&(2==p?U=a:await sa())},ca=async a=>{const t=++C;let n=!0;if(await la(!0),t==C&&!k){const e=R(async()=>{const a=await i(async(a,e)=>{if(t==C&&!k)if(e||a){const t=n||2==p||!!B;q++,t&&B++,await b(async()=>{aa(1),T++,await(t?fa(()=>na(e??a)):(()=>{try{return na(e??a)}finally{aa(0)}})())},()=>{t&&B--,--q||aa(0)}),q||await ea()}else 2==p?U=t:await sa()});t!=C||k?u(a)||await s(a):d=a},r);await ia(e),t!=C||k||await b(()=>sa(a),()=>{n=!1})}return Ea},la=async(a=!1)=>{U=0,a||C++;const t=v,n=d;return d=void 0,await ia(b(async()=>{await t},async()=>{u(n)||await R(()=>s(n),r)})),Ea},wa=async a=>(1!=p&&await b(()=>b(async()=>{aa(2),g++,await fa(()=>R(()=>e(G,a),r))},()=>aa(0)),ra),Ea),ua=async()=>{const t=++j;return await ya(!0),t!=j||k||(await wa(),t!=j||k||(E=a.addDidFinishTransactionListener(()=>{if(t==j&&!k){const a=H();K(a)&&R(()=>wa(a))}}))),Ea},ya=async(t=!1)=>{t||j++;const n=E;return E=void 0,u(n)||a.delListener(n),Ea},da=()=>!u(E),va=async(a=!1)=>{const[t,n]=a?[ya,la]:[la,ya];return await b(()=>t(),async()=>{await n()}),Ea},fa=async(...a)=>{let t,n=!1;const e=A(e=>N(a)?e():x(_a(Va,w),...M(a,(i,s)=>{const c=s==m(a)-1;return[async()=>{let a;O=A(t=>a=t),await b(async()=>{try{await R(i,r)}catch(a){n||(n=!0,t=a)}c&&e()},()=>{O=void 0,a()})},c?e:void 0,J]})));if(await(async()=>{if(!_a(Qa,w)){pa(Qa,w,1);const a=_a(Va,w);let t=0;await b(async()=>{for(;t<m(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{F(a,t),pa(Qa,w,0),ta()})}})(),await e,n)throw t;return Ea},Ea={load:sa,startAutoLoad:ca,stopAutoLoad:la,isAutoLoading:()=>!u(d),save:wa,startAutoSave:ua,stopAutoSave:ya,isAutoSaving:da,startAutoPersisting:async(a,t=!1)=>{const[n,e]=t?[ua,ca]:[ca,ua];return await n(a),await e(a),Ea},stopAutoPersisting:va,getStatus:()=>p,addStatusListener:a=>V(a,Y),delListener:t=>(Z(t),a),schedule:fa,getStore:()=>a,getStats:()=>({loads:T,saves:g}),...o,destroy:async()=>(u(_)&&(k=1,_=(async()=>{const a=_a(Va,w),t=P(a,([,a,t])=>t!=J||(a?.(),!1)),n=O;F(a),x(a,...t),await b(()=>b(()=>b(va,()=>n),()=>X?.()),()=>{const a=(_a(Wa,w)??1)-1;pa(Wa,w,a||void 0),ta()})})()),await _,Ea)};return oa(Ea)},at=new l.TextEncoder,tt=(a,n,i,r,c=nt,o,l,w)=>{const y=Na(),d=Na();let v=a;return[async()=>{g(y),g(d),L(await i(v,n),({tn:a,cn:t,uq:n})=>{Ia(ha(y,a,ga),t),n&&Ia(ha(d,a,ga),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:ga(e);return((a,t)=>p(_a(y,a),t))(a,t)?ua(P(M(await v(z+Z(a)+ta(a,n)),a=>{const n=a[t],e=l?fa(ya(a,t),l):ya(a,t);return[n,u(i)?e:ua(P(va(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||p(i,a))(a)))]}),a=>!u(a[0])&&!$a(a[1]))):{}},async(a,n,i,l,w,f=!1,E=s,$)=>{const m=u($)?void 0:ga($),_=a=>u(m)||p(m,a),A=ga();da(i??{},a=>L(P(ca(a??{}),_),a=>Ia(A,a)));const h=T(A);if(u(m)&&!f&&w&&E==s&&N(h)&&p(y,a))return await v("DROP "+k+Z(a)),pa(y,a),void pa(d,a);const g=_a(y,a),I=ga(P(T(g),a=>a==n||_(a)));if(!N(h))if(p(y,a)){if(await O(M([n,...h],async t=>{S(I,t)||(await v(J+Z(a)+"ADD"+Z(t)+r),Ia(g,t))})),c==nt&&!p(_a(d,a),n)){const e=t+"_pk_"+(a=>{let t=2166136261;return L(at.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(za([a,n]));await v("CREATE UNIQUE INDEX IF NOT EXISTS"+Z(e)+"ON"+Z(a)+`(${Z(n)})`),Ia(ha(d,a,ga),n)}}else await v(V+Z(a)+`(${Z(n)}${r} PRIMARY KEY${C(M(h,a=>e+Z(a)+r))});`),pa(y,a,ga([n,...h])),pa(d,a,ga([n]));if(await O([...!f&&l?M(T(I),async t=>{t!=n&&(await v(J+Z(a)+"DROP"+Z(t)),S(g,t))}):[]]),f)u(i)?u(m)&&await v(Y+Z(a)+ta(a,E)):await O(va(i,async(t,e)=>{if(u(t))await v(Y+Z(a)+ta(a,E)+`AND(${Z(n)}=$1)`,[e]);else if(!N(h)){const i=P(ca(t),_);N(i)||await c(v,a,n,i,{[e]:M(i,a=>o?o(t[a]):t[a])},g)}}));else if(N(h))u(m)&&p(y,a)&&await v(Y+Z(a)+ta(a,E));else{const t=P(T(_a(y,a)),a=>a!=n&&_(a)),e=ua(),s=[];da(i??{},(a,n)=>{wa(e,n,M(t,t=>o?o(a?.[t]):a?.[t])),x(s,n)}),await c(v,a,n,t,e,g),await v(Y+Z(a)+ta(a,E)+`AND${Z(n)}NOT IN(${aa(s)})`,s)}},async t=>{if(w)return await w(async a=>{const n=v;return v=a,await b(t,()=>{v=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await R(()=>a("ROLLBACK")),t}}]},nt=async(a,t,n,i,s)=>{const r=[1];await a("INSERT INTO"+Z(t)+"("+((...a)=>C(M(a,Z),e))(n,...i)+")VALUES"+C(va(s,a=>"($"+r[0]+++","+aa(a,r)+")"),e)+"ON CONFLICT("+Z(n)+")DO UPDATE SET"+C(M(i,a=>Z(a)+"=excluded."+Z(a)),e),va(s,(a,t)=>[t,...M(a,a=>a??null)]).flat())},et=(a,t,n,e,i,s,r,[c,o,l],w,y,d,v,f,E,$,m,N)=>{const[_,A,O,p]=tt(t,w,y,f,E,void 0,void 0,N);return Za(a,()=>p(async()=>{return await _(),a=(await A(c,o))[q]?.[l]??"null",Ha(Ga(a));var a}),a=>p(async()=>{var t;await _(),await O(c,o,{[q]:{[l]:(t=a()??null,za(t,(a,t)=>u(t)?"":t))}},!0,!0)}),n,e,i,r,{[v]:()=>d,destroy:s},0,d)},it=(a,t,n,e,i,s,r,[c,o,[l,w,y,d,v]],f,E,$,m,N,_,A,p,h)=>{const[T,g,I,S]=tt(t,f,E,N,_,A,p,h),D=(a,t)=>O(Oa(o,async([n,e,i,s,r],c)=>{var o,l;t&&(o=a,l=c,!ea.hasOwn(o,l))||await I(n,e,a[c],i,s,t,r)})),R=(a,t,n)=>ua(1==n?P(va(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):P(M(t,t=>[t,a[t]]),([,a])=>!u(a))),b=async(a,t)=>w?await I(y,B,{[q]:u(v)?a:R(a,v,t)},!0,!0,t,void 0,v):null;return Za(a,()=>S(async()=>{await T();const a=await(async()=>ua(P(await O(Oa(c,async([a,t,n],e)=>[a,await g(e,t,n)])),a=>!$a(a[1]))))(),t=await(async()=>l?(await g(y,B,void 0,d))[q]:{})();return $a(a)&&u(t)?void 0:[a,t]}),(a,t)=>S(async()=>{if(await T(),u(t)){const[t,n]=a();await D(t),await b(n)}else await D(t[0],!0),await b(t[1],!0)}),n,e,i,r,{[m]:()=>$,destroy:s},0,$)},st=(a,e,i,r,o,l,y,v,f,$,m="getDb",N,_)=>{let A,O,h;const g=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,l),[I,S,L,C]=(a=>{const n=(a=>la(ja,E(a)?{[ba]:a}:a??{}))(a),e=n[Ma];if(n.mode==Ra){const a=n[ba]??t;return[1,e,[a,n[La]??B,n[Ca]??Da],ga(a)]}const{tables:{load:i={},save:r={}}={},values:c={}}=n,o=la(ka,c),{load:l,save:w}=o,u=[Xa(l),Xa(w),o[xa],Ja(l),Ja(w)],y=u[2],d=ga(y),v=ga(y),f=Ya(i,{[Fa]:null,[Pa]:B,[Ua]:s},Fa,a=>p(v,a),a=>Ia(d,a)),$=Ya(r,{[xa]:null,[Pa]:B,[qa]:0,[Ba]:0,[Ua]:null},xa,(a,t)=>p(v,t),(a,t)=>Ia(d,t));return Aa($,(a,t)=>t[4]??=_a(f,t[0])?.[2]??s),[0,e,[f,$,u],d]})(e);return!I&&a.isMergeable()&&D(0),(I?et:it)(a,g,a=>{let t,n,e=1,i=0,s=0;const l=async(t=!0)=>{const[{d:n,s:i,c:r}]=await g(U+` ${H} d,${K} s,TOTAL_CHANGES() c FROM ${G}${H} JOIN ${G}${K}`);if(e&&(n!=A||i!=O||r!=h)){const c=t&&!s&&!w(A);A=n,O=i,h=r,c&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const c=b(()=>((t,n)=>R(async()=>{for(i?r&&await l():(await l(!1),i=1);e&&s;)s=0,await l(!1),e&&(await a(),await l())},a=>{R(()=>n?.(a))}))(0,y),()=>{n==c&&(n=void 0),e&&(s?v():e&&u(t)&&(t=setInterval(()=>v(!0),1e3*S)))});return n=c,c},f=r(a=>{e&&p(C,a)&&(s=1,d(),c.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,s=0,d(),await b(async()=>await n,async()=>{A=O=h=null,await o(f)})})},a=>a(),y,v,f,L,T(C),async(a,t)=>await a(U+` t.name tn,c.name cn,c.pk OR EXISTS(${U} 1 FROM ${G}index_list(t.name)i,${G}index_info(i.name)ii ${j} i."unique"=1 AND ii.name=c.name AND(${U} count(*) FROM ${G}index_info(i.name))=1)uq FROM ${Q}list()t,${Q}info(t.name)c ${j} t.schema='main'AND t.type IN('table','view')AND t.name IN(${aa(t)})ORDER BY t.name,c.name`,t),$,m,n,N,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,_)},rt=(a,t,n,e,i)=>st(a,n,async(a,n=[])=>t.query(a).all(...n),()=>_,a=>a(),e,i,_,3,t);export{rt as createSqliteBunPersister};
1
+ const a=a=>typeof a,t="tinybase",n="",e=",",i=a(n),s="true",r=(a,t,n)=>a.replace(t,n),c=Promise,o=a=>(t,n,e)=>a(t)?e?.():n(t),l=globalThis,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=o(w),f=o(u),E=t=>a(t)==i,$=a=>Array.isArray(a),m=a=>a.length,N=a=>0==m(a),_=()=>{},A=a=>new c(a),h=async a=>c.all(a),O=(a,t)=>a?.has(t)??!1,p=a=>u(a)||0==(a=>a?.size??0)(a),T=a=>[...a?.values()??[]],g=a=>a.clear(),I=(a,t)=>a?.forEach(t),S=(a,t)=>a?.delete(t),D=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},R=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},b=(a,t)=>R(a,a=>{R(()=>t?.(a))}),L=async(a,t)=>{try{return await a()}finally{await t()}},C=(a,t)=>a.forEach(t),M=(a,t="")=>a.join(t),P=(a,t)=>a.map(t),F=(a,t)=>a.filter(t),x=(a,t=m(a))=>a.splice(0,t),q=(a,...t)=>a.push(...t),B="_",U="_id",j="SELECT",k="WHERE",J="TABLE",X="ALTER "+J,Y="FROM",z="DELETE "+Y,G=j+"*"+Y,H="pragma_",K="data_version",Q="schema_version",V="pragma_table_",W="CREATE "+J,Z=/\$tableName/g,aa=a=>M(P(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),ta=(a,t=[1])=>M(P(a,()=>"$"+t[0]++),e),na=(a,t=s)=>k+`(${ea(t,aa(a))})`,ea=(a,t)=>r(a,Z,t),ia=Object,sa=a=>ia.getPrototypeOf(a),ra=ia.entries,ca=a=>!w(a)&&v(sa(a),a=>a==ia.prototype||w(sa(a)),()=>!0),oa=ia.keys,la=ia.freeze,wa=(...a)=>ia.assign(ia.create(null),...a),ua=(a,t,n)=>(ia.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),ya=(a=[])=>{const t=ia.create(null);return C(a,([a,n])=>ua(t,a,n)),t},da=(a,t)=>(delete a[t],a),va=(a,t)=>C(oa(a),n=>t(a[n],n)),fa=(a,t)=>P(ra(a),([a,n])=>t(n,a)),Ea=(a,t)=>{const n=ya();return va(a,(a,e)=>ua(n,e,t(a,e))),n},$a=a=>m(oa(a)),ma=a=>ca(a)&&0==$a(a),Na=Map,_a=a=>new Na(a),Aa=(a,t)=>a?.get(t),ha=(a,t)=>I(a,(a,n)=>t(n,a)),Oa=(a,t)=>{const n=[];return ha(a,(a,e)=>q(n,t(e,a))),n},pa=(a,t,n)=>u(n)?(S(a,t),a):a?.set(t,n),Ta=(a,t,n,e)=>{let i=Aa(a,t);return O(a,t)?e?.(i):pa(a,t,i=n()),i},ga=(a,t,n,e,i=0)=>f((n?Ta:Aa)(a,t[i],i>m(t)-2?n:_a),s=>{if(i>m(t)-2)return e?.(s)&&pa(a,t[i]),s;const r=ga(s,t,n,e,i+1);return p(s)&&pa(a,t[i]),r}),Ia=a=>new Set($(a)||u(a)?a:[a]),Sa=(a,t)=>a?.add(t),Da="ColumnName",Ra="store",ba="json",La=Ra+"TableName",Ca=Ra+"Id"+Da,Ma=Ra+Da,Pa="autoLoadIntervalSeconds",Fa="rowId"+Da,xa="tableId",qa="tableName",Ba="deleteEmptyColumns",Ua="deleteEmptyTable",ja="condition",ka={mode:ba,[Pa]:1},Ja={load:0,save:0,[qa]:t+"_values"},Xa=a=>$(a)?a:void 0,Ya=a=>d(a)||$(a),za=(a,t,n,e,i)=>{const s=_a();return va(a,(a,r)=>{const c=(w=wa(t,E(a)?{[n]:a}:a),o=ia.values(w),l=$a(t),o.slice(0,l));var o,l,w;y(c[0])||e(r,c[0])||(i(r,c[0]),pa(s,r,c))}),s},Ga=JSON.stringify,Ha=JSON.parse,Ka=a=>""===a?void 0:$(a)?P(a,Ka):ca(a)?Ea(a,Ka):a,Qa=/^\d+$/,Va=_a(),Wa=_a(),Za=_a(),at=(a,t,e,i,s,r,c,o={},l=0,w=[])=>{let d,v,E,_,h,O=0,T=0,g=0,M=0,B=0,U=0,j=0,k=0,J=0;const X={},Y=o.destroy;Ta(Va,w,()=>0),Ta(Wa,w,()=>[]),pa(Za,w,(Aa(Za,w)??0)+1);const z=_a(),[G,H,K,Q,V]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!ma(a)||!ma(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!ma(a)||!ma(t),t.setContent]:D(0))(c,a,l),[W,Z,aa]=(a=>{let t;const[e,i]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{Qa.test(t)&&m(a)<1e3&&q(a,t)}]})(),s=_a(),r=(a,e,i,r)=>{let c,o=!1;if(C(((a,t=[n])=>{const e=[],i=(a,n)=>n==m(t)?q(e,a):y(t[n])?I(a,a=>i(a,n+1)):C([t[n],null],t=>i(Aa(a,t),n+1));return i(a,0),e})(e,i),n=>I(n,n=>{const e=()=>Aa(s,n)[0](t,...i??[],...r);a?(a=>{try{return a()}catch(a){(a=>{o||(c=a),o=!0})?.(a)}})(e):e()})),o)throw c};return[(i,r,c,o=[],l=()=>[])=>{t??=a();const w=e(1);return pa(s,w,[i,r,c,o,l]),Sa(ga(r,c??[n],Ia),w),w},(a,t,...n)=>r(!1,a,t,n),a=>f(Aa(s,a),([,t,e])=>(ga(t,e??[n],void 0,t=>(S(t,a),p(t)?1:0)),pa(s,a),i(a),e)),a=>f(Aa(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const c=m(r);c==m(n)?a(t,...r,...i(r)):y(n[c])?C(e[c]?.(...r)??[],a=>s(...r,a)):s(...r,n[c])};s()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>$a),ta=a=>{a!=O&&(O=a,Z(z,void 0,O))},na=()=>{Aa(Za,w)||Aa(Va,w)||!N(Aa(Wa,w)??[])||(pa(Va,w),pa(Wa,w),pa(Za,w))},ea=t=>{(G&&$(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ia=async()=>{va()&&a.__?.[0]?.()&&await ua()},sa=a=>L(()=>v=a,()=>{v==a&&(v=void 0)}),ra=async a=>(2!=O&&(await L(async()=>{ta(1),T++,await Ea(()=>R(async()=>{const n=await t();$(n)?ea(n):u(n)&&a?V(a):u(n)||D(1,n)},t=>{r?.(t),a&&V(a)}))},()=>ta(0)),await ia()),$a),ca=async()=>{const a=j;j=0,a&&a==M&&!J&&(2==O?j=a:await ra())},oa=async a=>{const t=++M;let n=!0;if(await wa(!0),t==M&&!J){const e=R(async()=>{const a=await i(async(a,e)=>{if(t==M&&!J)if(e||a){const t=n||2==O||!!U;B++,t&&U++,await L(async()=>{ta(1),T++,await(t?Ea(()=>ea(e??a)):(()=>{try{return ea(e??a)}finally{ta(0)}})())},()=>{t&&U--,--B||ta(0)}),B||await ia()}else 2==O?j=t:await ra()});t!=M||J?u(a)||await s(a):d=a},r);await sa(e),t!=M||J||await L(()=>ra(a),()=>{n=!1})}return $a},wa=async(a=!1)=>{j=0,a||M++;const t=v,n=d;return d=void 0,await sa(L(async()=>{await t},async()=>{u(n)||await R(()=>s(n),r)})),$a},ua=async a=>(1!=O&&await L(()=>L(async()=>{ta(2),g++,await Ea(()=>R(()=>e(H,a),r))},()=>ta(0)),ca),$a),ya=async()=>{const t=++k;return await da(!0),t!=k||J||(await ua(),t!=k||J||(E=a.addDidFinishTransactionListener(()=>{if(t==k&&!J){const a=K();Q(a)&&R(()=>ua(a))}}))),$a},da=async(t=!1)=>{t||k++;const n=E;return E=void 0,u(n)||a.delListener(n),$a},va=()=>!u(E),fa=async(a=!1)=>{const[t,n]=a?[da,wa]:[wa,da];return await L(()=>t(),async()=>{await n()}),$a},Ea=async(...a)=>{let t,n=!1;const e=A(e=>N(a)?e():q(Aa(Wa,w),...P(a,(i,s)=>{const c=s==m(a)-1;return[async()=>{let a;h=A(t=>a=t),await L(async()=>{try{await R(i,r)}catch(a){n||(n=!0,t=a)}c&&e()},()=>{h=void 0,a()})},c?e:void 0,X]})));if(await(async()=>{if(!Aa(Va,w)){pa(Va,w,1);const a=Aa(Wa,w);let t=0;await L(async()=>{for(;t<m(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{x(a,t),pa(Va,w,0),na()})}})(),await e,n)throw t;return $a},$a={load:ra,startAutoLoad:oa,stopAutoLoad:wa,isAutoLoading:()=>!u(d),save:ua,startAutoSave:ya,stopAutoSave:da,isAutoSaving:va,startAutoPersisting:async(a,t=!1)=>{const[n,e,i,s]=t?[ya,oa,da,wa]:[oa,ya,wa,da],r=n(a),c=t?k:M;await r;const o=e(a),l=t?M:k;try{await o}catch(a){throw l==(t?M:k)&&await b(s),c==(t?k:M)&&await b(i),a}return $a},stopAutoPersisting:fa,getStatus:()=>O,addStatusListener:a=>W(a,z),delListener:t=>(aa(t),a),schedule:Ea,getStore:()=>a,getStats:()=>({loads:T,saves:g}),...o,destroy:async()=>(u(_)&&(J=1,_=(async()=>{const a=Aa(Wa,w),t=F(a,([,a,t])=>t!=X||(a?.(),!1)),n=h;x(a),q(a,...t),await L(()=>L(()=>L(fa,()=>n),()=>Y?.()),()=>{const a=(Aa(Za,w)??1)-1;pa(Za,w,a||void 0),na()})})()),await _,$a)};return la($a)},tt=new l.TextEncoder,nt=(a,n,i,r,c=et,o,l,w)=>{const y=_a(),d=_a();let v=a;return[async()=>{g(y),g(d),C(await i(v,n),({tn:a,cn:t,uq:n})=>{Sa(Ta(y,a,Ia),t),n&&Sa(Ta(d,a,Ia),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:Ia(e);return((a,t)=>O(Aa(y,a),t))(a,t)?ya(F(P(await v(G+aa(a)+na(a,n)),a=>{const n=a[t],e=l?Ea(da(a,t),l):da(a,t);return[n,u(i)?e:ya(F(fa(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||O(i,a))(a)))]}),a=>!u(a[0])&&!ma(a[1]))):{}},async(a,n,i,l,w,f=!1,E=s,$)=>{const m=u($)?void 0:Ia($),_=a=>u(m)||O(m,a),A=Ia();va(i??{},a=>C(F(oa(a??{}),_),a=>Sa(A,a)));const p=T(A);if(u(m)&&!f&&w&&E==s&&N(p)&&O(y,a))return await v("DROP "+J+aa(a)),pa(y,a),void pa(d,a);const g=Aa(y,a),I=Ia(F(T(g),a=>a==n||_(a)));if(!N(p))if(O(y,a)){if(await h(P([n,...p],async t=>{S(I,t)||(await v(X+aa(a)+"ADD"+aa(t)+r),Sa(g,t))})),c==et&&!O(Aa(d,a),n)){const e=t+"_pk_"+(a=>{let t=2166136261;return C(tt.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(Ga([a,n]));await v("CREATE UNIQUE INDEX IF NOT EXISTS"+aa(e)+"ON"+aa(a)+`(${aa(n)})`),Sa(Ta(d,a,Ia),n)}}else await v(W+aa(a)+`(${aa(n)}${r} PRIMARY KEY${M(P(p,a=>e+aa(a)+r))});`),pa(y,a,Ia([n,...p])),pa(d,a,Ia([n]));if(await h([...!f&&l?P(T(I),async t=>{t!=n&&(await v(X+aa(a)+"DROP"+aa(t)),S(g,t))}):[]]),f)u(i)?u(m)&&await v(z+aa(a)+na(a,E)):await h(fa(i,async(t,e)=>{if(u(t))await v(z+aa(a)+na(a,E)+`AND(${aa(n)}=$1)`,[e]);else if(!N(p)){const i=F(oa(t),_);N(i)||await c(v,a,n,i,{[e]:P(i,a=>o?o(t[a]):t[a])},g)}}));else if(N(p))u(m)&&O(y,a)&&await v(z+aa(a)+na(a,E));else{const t=F(T(Aa(y,a)),a=>a!=n&&_(a)),e=ya(),s=[];va(i??{},(a,n)=>{ua(e,n,P(t,t=>o?o(a?.[t]):a?.[t])),q(s,n)}),await c(v,a,n,t,e,g),await v(z+aa(a)+na(a,E)+`AND${aa(n)}NOT IN(${ta(s)})`,s)}},async t=>{if(w)return await w(async a=>{const n=v;return v=a,await L(t,()=>{v=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await R(()=>a("ROLLBACK")),t}}]},et=async(a,t,n,i,s)=>{const r=[1];await a("INSERT INTO"+aa(t)+"("+((...a)=>M(P(a,aa),e))(n,...i)+")VALUES"+M(fa(s,a=>"($"+r[0]+++","+ta(a,r)+")"),e)+"ON CONFLICT("+aa(n)+")DO UPDATE SET"+M(P(i,a=>aa(a)+"=excluded."+aa(a)),e),fa(s,(a,t)=>[t,...P(a,a=>a??null)]).flat())},it=(a,t,n,e,i,s,r,[c,o,l],w,y,d,v,f,E,$,m,N)=>{const[_,A,h,O]=nt(t,w,y,f,E,void 0,void 0,N);return at(a,()=>O(async()=>{return await _(),a=(await A(c,o))[B]?.[l]??"null",Ka(Ha(a));var a}),a=>O(async()=>{var t;await _(),await h(c,o,{[B]:{[l]:(t=a()??null,Ga(t,(a,t)=>u(t)?"":t))}},!0,!0)}),n,e,i,r,{[v]:()=>d,destroy:s},0,d)},st=(a,t,n,e,i,s,r,[c,o,[l,w,y,d,v]],f,E,$,m,N,_,A,O,p)=>{const[T,g,I,S]=nt(t,f,E,N,_,A,O,p),D=(a,t)=>h(Oa(o,async([n,e,i,s,r],c)=>{var o,l;t&&(o=a,l=c,!ia.hasOwn(o,l))||await I(n,e,a[c],i,s,t,r)})),R=(a,t,n)=>ya(1==n?F(fa(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):F(P(t,t=>[t,a[t]]),([,a])=>!u(a))),b=async(a,t)=>w?await I(y,U,{[B]:u(v)?a:R(a,v,t)},!0,!0,t,void 0,v):null;return at(a,()=>S(async()=>{await T();const a=await(async()=>ya(F(await h(Oa(c,async([a,t,n],e)=>[a,await g(e,t,n)])),a=>!ma(a[1]))))(),t=await(async()=>l?(await g(y,U,void 0,d))[B]:{})();return ma(a)&&u(t)?void 0:[a,t]}),(a,t)=>S(async()=>{if(await T(),u(t)){const[t,n]=a();await D(t),await b(n)}else await D(t[0],!0),await b(t[1],!0)}),n,e,i,r,{[m]:()=>$,destroy:s},0,$)},rt=(a,e,i,r,o,l,y,v,f,$,m="getDb",N,_)=>{let A,h,p;const g=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,l),[I,S,R,C]=(a=>{const n=(a=>wa(ka,E(a)?{[La]:a}:a??{}))(a),e=n[Pa];if(n.mode==ba){const a=n[La]??t;return[1,e,[a,n[Ca]??U,n[Ma]??Ra],Ia(a)]}const{tables:{load:i={},save:r={}}={},values:c={}}=n,o=wa(Ja,c),{load:l,save:w}=o,u=[Ya(l),Ya(w),o[qa],Xa(l),Xa(w)],y=u[2],d=Ia(y),v=Ia(y),f=za(i,{[xa]:null,[Fa]:U,[ja]:s},xa,a=>O(v,a),a=>Sa(d,a)),$=za(r,{[qa]:null,[Fa]:U,[Ba]:0,[Ua]:0,[ja]:null},qa,(a,t)=>O(v,t),(a,t)=>Sa(d,t));return ha($,(a,t)=>t[4]??=Aa(f,t[0])?.[2]??s),[0,e,[f,$,u],d]})(e);return!I&&a.isMergeable()&&D(0),(I?it:st)(a,g,a=>{let t,n,e=1,i=0,s=0;const l=async(t=!0)=>{const[{d:n,s:i,c:r}]=await g(j+` ${K} d,${Q} s,TOTAL_CHANGES() c FROM ${H}${K} JOIN ${H}${Q}`);if(e&&(n!=A||i!=h||r!=p)){const c=t&&!s&&!w(A);A=n,h=i,p=r,c&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const c=L(()=>b(async()=>{for(i?r&&await l():(await l(!1),i=1);e&&s;)s=0,await l(!1),e&&(await a(),await l())},y),()=>{n==c&&(n=void 0),e&&(s?v():e&&u(t)&&(t=setInterval(()=>v(!0),1e3*S)))});return n=c,c},f=r(a=>{e&&O(C,a)&&(s=1,d(),c.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,s=0,d(),await L(async()=>await n,async()=>{A=h=p=null,await o(f)})})},a=>a(),y,v,f,R,T(C),async(a,t)=>await a(j+` t.name tn,c.name cn,c.pk OR EXISTS(${j} 1 FROM ${H}index_list(t.name)i,${H}index_info(i.name)ii ${k} i."unique"=1 AND ii.name=c.name AND(${j} count(*) FROM ${H}index_info(i.name))=1)uq FROM ${V}list()t,${V}info(t.name)c ${k} t.schema='main'AND t.type IN('table','view')AND t.name IN(${ta(t)})ORDER BY t.name,c.name`,t),$,m,n,N,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,_)},ct=(a,t,n,e,i)=>rt(a,n,async(a,n=[])=>t.query(a).all(...n),()=>_,a=>a(),e,i,_,3,t);export{ct as createSqliteBunPersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",n="",e=",",i=a(n),s="true",r=(a,t,n)=>a.replace(t,n),c=Promise,o=a=>(t,n,e)=>a(t)?e?.():n(t),l=globalThis,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=o(w),f=o(u),E=t=>a(t)==i,$=a=>Array.isArray(a),m=a=>a.length,N=a=>0==m(a),_=()=>{},A=a=>new c(a),O=async a=>c.all(a),p=(a,t)=>a?.has(t)??!1,h=a=>u(a)||0==(a=>a?.size??0)(a),T=a=>[...a?.values()??[]],g=a=>a.clear(),I=(a,t)=>a?.forEach(t),S=(a,t)=>a?.delete(t),D=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},R=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},b=async(a,t)=>{try{return await a()}finally{await t()}},L=(a,t)=>a.forEach(t),C=(a,t="")=>a.join(t),M=(a,t)=>a.map(t),P=(a,t)=>a.filter(t),F=(a,t=m(a))=>a.splice(0,t),x=(a,...t)=>a.push(...t),q="_",B="_id",U="SELECT",j="WHERE",k="TABLE",J="ALTER "+k,X="FROM",Y="DELETE "+X,z=U+"*"+X,G="pragma_",H="data_version",K="schema_version",Q="pragma_table_",V="CREATE "+k,W=/\$tableName/g,Z=a=>C(M(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),aa=(a,t=[1])=>C(M(a,()=>"$"+t[0]++),e),ta=(a,t=s)=>j+`(${na(t,Z(a))})`,na=(a,t)=>r(a,W,t),ea=Object,ia=a=>ea.getPrototypeOf(a),sa=ea.entries,ra=a=>!w(a)&&v(ia(a),a=>a==ea.prototype||w(ia(a)),()=>!0),ca=ea.keys,oa=ea.freeze,la=(...a)=>ea.assign(ea.create(null),...a),wa=(a,t,n)=>(ea.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),ua=(a=[])=>{const t=ea.create(null);return L(a,([a,n])=>wa(t,a,n)),t},ya=(a,t)=>(delete a[t],a),da=(a,t)=>L(ca(a),n=>t(a[n],n)),va=(a,t)=>M(sa(a),([a,n])=>t(n,a)),fa=(a,t)=>{const n=ua();return da(a,(a,e)=>wa(n,e,t(a,e))),n},Ea=a=>m(ca(a)),$a=a=>ra(a)&&0==Ea(a),ma=Map,Na=a=>new ma(a),_a=(a,t)=>a?.get(t),Aa=(a,t)=>I(a,(a,n)=>t(n,a)),Oa=(a,t)=>{const n=[];return Aa(a,(a,e)=>x(n,t(e,a))),n},pa=(a,t,n)=>u(n)?(S(a,t),a):a?.set(t,n),ha=(a,t,n,e)=>{let i=_a(a,t);return p(a,t)?e?.(i):pa(a,t,i=n()),i},Ta=(a,t,n,e,i=0)=>f((n?ha:_a)(a,t[i],i>m(t)-2?n:Na),s=>{if(i>m(t)-2)return e?.(s)&&pa(a,t[i]),s;const r=Ta(s,t,n,e,i+1);return h(s)&&pa(a,t[i]),r}),ga=a=>new Set($(a)||u(a)?a:[a]),Ia=(a,t)=>a?.add(t),Sa="ColumnName",Da="store",Ra="json",ba=Da+"TableName",La=Da+"Id"+Sa,Ca=Da+Sa,Ma="autoLoadIntervalSeconds",Pa="rowId"+Sa,Fa="tableId",xa="tableName",qa="deleteEmptyColumns",Ba="deleteEmptyTable",Ua="condition",ja={mode:Ra,[Ma]:1},ka={load:0,save:0,[xa]:t+"_values"},Ja=a=>$(a)?a:void 0,Xa=a=>d(a)||$(a),Ya=(a,t,n,e,i)=>{const s=Na();return da(a,(a,r)=>{const c=(w=la(t,E(a)?{[n]:a}:a),o=ea.values(w),l=Ea(t),o.slice(0,l));var o,l,w;y(c[0])||e(r,c[0])||(i(r,c[0]),pa(s,r,c))}),s},za=JSON.stringify,Ga=JSON.parse,Ha=a=>""===a?void 0:$(a)?M(a,Ha):ra(a)?fa(a,Ha):a,Ka=/^\d+$/,Qa=Na(),Va=Na(),Wa=Na(),Za=(a,t,e,i,s,r,c,o={},l=0,w=[])=>{let d,v,E,_,O,p=0,T=0,g=0,C=0,q=0,B=0,U=0,j=0,k=0;const J={},X=o.destroy;ha(Qa,w,()=>0),ha(Va,w,()=>[]),pa(Wa,w,(_a(Wa,w)??0)+1);const Y=Na(),[z,G,H,K,Q]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!$a(a)||!$a(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!$a(a)||!$a(t),t.setContent]:D(0))(c,a,l),[V,W,Z]=(a=>{let t;const[e,i]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{Ka.test(t)&&m(a)<1e3&&x(a,t)}]})(),s=Na(),r=(a,e,i,r)=>{let c,o=!1;if(L(((a,t=[n])=>{const e=[],i=(a,n)=>n==m(t)?x(e,a):y(t[n])?I(a,a=>i(a,n+1)):L([t[n],null],t=>i(_a(a,t),n+1));return i(a,0),e})(e,i),n=>I(n,n=>{const e=()=>_a(s,n)[0](t,...i??[],...r);a?(a=>{try{return a()}catch(a){(a=>{o||(c=a),o=!0})?.(a)}})(e):e()})),o)throw c};return[(i,r,c,o=[],l=()=>[])=>{t??=a();const w=e(1);return pa(s,w,[i,r,c,o,l]),Ia(Ta(r,c??[n],ga),w),w},(a,t,...n)=>r(!1,a,t,n),a=>f(_a(s,a),([,t,e])=>(Ta(t,e??[n],void 0,t=>(S(t,a),h(t)?1:0)),pa(s,a),i(a),e)),a=>f(_a(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const c=m(r);c==m(n)?a(t,...r,...i(r)):y(n[c])?L(e[c]?.(...r)??[],a=>s(...r,a)):s(...r,n[c])};s()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>Ea),aa=a=>{a!=p&&(p=a,W(Y,void 0,p))},ta=()=>{_a(Wa,w)||_a(Qa,w)||!N(_a(Va,w)??[])||(pa(Qa,w),pa(Va,w),pa(Wa,w))},na=t=>{(z&&$(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ea=async()=>{da()&&a.__?.[0]?.()&&await wa()},ia=a=>b(()=>v=a,()=>{v==a&&(v=void 0)}),sa=async a=>(2!=p&&(await b(async()=>{aa(1),T++,await fa(()=>R(async()=>{const n=await t();$(n)?na(n):u(n)&&a?Q(a):u(n)||D(1,n)},t=>{r?.(t),a&&Q(a)}))},()=>aa(0)),await ea()),Ea),ra=async()=>{const a=U;U=0,a&&a==C&&!k&&(2==p?U=a:await sa())},ca=async a=>{const t=++C;let n=!0;if(await la(!0),t==C&&!k){const e=R(async()=>{const a=await i(async(a,e)=>{if(t==C&&!k)if(e||a){const t=n||2==p||!!B;q++,t&&B++,await b(async()=>{aa(1),T++,await(t?fa(()=>na(e??a)):(()=>{try{return na(e??a)}finally{aa(0)}})())},()=>{t&&B--,--q||aa(0)}),q||await ea()}else 2==p?U=t:await sa()});t!=C||k?u(a)||await s(a):d=a},r);await ia(e),t!=C||k||await b(()=>sa(a),()=>{n=!1})}return Ea},la=async(a=!1)=>{U=0,a||C++;const t=v,n=d;return d=void 0,await ia(b(async()=>{await t},async()=>{u(n)||await R(()=>s(n),r)})),Ea},wa=async a=>(1!=p&&await b(()=>b(async()=>{aa(2),g++,await fa(()=>R(()=>e(G,a),r))},()=>aa(0)),ra),Ea),ua=async()=>{const t=++j;return await ya(!0),t!=j||k||(await wa(),t!=j||k||(E=a.addDidFinishTransactionListener(()=>{if(t==j&&!k){const a=H();K(a)&&R(()=>wa(a))}}))),Ea},ya=async(t=!1)=>{t||j++;const n=E;return E=void 0,u(n)||a.delListener(n),Ea},da=()=>!u(E),va=async(a=!1)=>{const[t,n]=a?[ya,la]:[la,ya];return await b(()=>t(),async()=>{await n()}),Ea},fa=async(...a)=>{let t,n=!1;const e=A(e=>N(a)?e():x(_a(Va,w),...M(a,(i,s)=>{const c=s==m(a)-1;return[async()=>{let a;O=A(t=>a=t),await b(async()=>{try{await R(i,r)}catch(a){n||(n=!0,t=a)}c&&e()},()=>{O=void 0,a()})},c?e:void 0,J]})));if(await(async()=>{if(!_a(Qa,w)){pa(Qa,w,1);const a=_a(Va,w);let t=0;await b(async()=>{for(;t<m(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{F(a,t),pa(Qa,w,0),ta()})}})(),await e,n)throw t;return Ea},Ea={load:sa,startAutoLoad:ca,stopAutoLoad:la,isAutoLoading:()=>!u(d),save:wa,startAutoSave:ua,stopAutoSave:ya,isAutoSaving:da,startAutoPersisting:async(a,t=!1)=>{const[n,e]=t?[ua,ca]:[ca,ua];return await n(a),await e(a),Ea},stopAutoPersisting:va,getStatus:()=>p,addStatusListener:a=>V(a,Y),delListener:t=>(Z(t),a),schedule:fa,getStore:()=>a,getStats:()=>({loads:T,saves:g}),...o,destroy:async()=>(u(_)&&(k=1,_=(async()=>{const a=_a(Va,w),t=P(a,([,a,t])=>t!=J||(a?.(),!1)),n=O;F(a),x(a,...t),await b(()=>b(()=>b(va,()=>n),()=>X?.()),()=>{const a=(_a(Wa,w)??1)-1;pa(Wa,w,a||void 0),ta()})})()),await _,Ea)};return oa(Ea)},at=new l.TextEncoder,tt=(a,n,i,r,c=nt,o,l,w)=>{const y=Na(),d=Na();let v=a;return[async()=>{g(y),g(d),L(await i(v,n),({tn:a,cn:t,uq:n})=>{Ia(ha(y,a,ga),t),n&&Ia(ha(d,a,ga),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:ga(e);return((a,t)=>p(_a(y,a),t))(a,t)?ua(P(M(await v(z+Z(a)+ta(a,n)),a=>{const n=a[t],e=l?fa(ya(a,t),l):ya(a,t);return[n,u(i)?e:ua(P(va(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||p(i,a))(a)))]}),a=>!u(a[0])&&!$a(a[1]))):{}},async(a,n,i,l,w,f=!1,E=s,$)=>{const m=u($)?void 0:ga($),_=a=>u(m)||p(m,a),A=ga();da(i??{},a=>L(P(ca(a??{}),_),a=>Ia(A,a)));const h=T(A);if(u(m)&&!f&&w&&E==s&&N(h)&&p(y,a))return await v("DROP "+k+Z(a)),pa(y,a),void pa(d,a);const g=_a(y,a),I=ga(P(T(g),a=>a==n||_(a)));if(!N(h))if(p(y,a)){if(await O(M([n,...h],async t=>{S(I,t)||(await v(J+Z(a)+"ADD"+Z(t)+r),Ia(g,t))})),c==nt&&!p(_a(d,a),n)){const e=t+"_pk_"+(a=>{let t=2166136261;return L(at.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(za([a,n]));await v("CREATE UNIQUE INDEX IF NOT EXISTS"+Z(e)+"ON"+Z(a)+`(${Z(n)})`),Ia(ha(d,a,ga),n)}}else await v(V+Z(a)+`(${Z(n)}${r} PRIMARY KEY${C(M(h,a=>e+Z(a)+r))});`),pa(y,a,ga([n,...h])),pa(d,a,ga([n]));if(await O([...!f&&l?M(T(I),async t=>{t!=n&&(await v(J+Z(a)+"DROP"+Z(t)),S(g,t))}):[]]),f)u(i)?u(m)&&await v(Y+Z(a)+ta(a,E)):await O(va(i,async(t,e)=>{if(u(t))await v(Y+Z(a)+ta(a,E)+`AND(${Z(n)}=$1)`,[e]);else if(!N(h)){const i=P(ca(t),_);N(i)||await c(v,a,n,i,{[e]:M(i,a=>o?o(t[a]):t[a])},g)}}));else if(N(h))u(m)&&p(y,a)&&await v(Y+Z(a)+ta(a,E));else{const t=P(T(_a(y,a)),a=>a!=n&&_(a)),e=ua(),s=[];da(i??{},(a,n)=>{wa(e,n,M(t,t=>o?o(a?.[t]):a?.[t])),x(s,n)}),await c(v,a,n,t,e,g),await v(Y+Z(a)+ta(a,E)+`AND${Z(n)}NOT IN(${aa(s)})`,s)}},async t=>{if(w)return await w(async a=>{const n=v;return v=a,await b(t,()=>{v=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await R(()=>a("ROLLBACK")),t}}]},nt=async(a,t,n,i,s)=>{const r=[1];await a("INSERT INTO"+Z(t)+"("+((...a)=>C(M(a,Z),e))(n,...i)+")VALUES"+C(va(s,a=>"($"+r[0]+++","+aa(a,r)+")"),e)+"ON CONFLICT("+Z(n)+")DO UPDATE SET"+C(M(i,a=>Z(a)+"=excluded."+Z(a)),e),va(s,(a,t)=>[t,...M(a,a=>a??null)]).flat())},et=(a,t,n,e,i,s,r,[c,o,l],w,y,d,v,f,E,$,m,N)=>{const[_,A,O,p]=tt(t,w,y,f,E,void 0,void 0,N);return Za(a,()=>p(async()=>{return await _(),a=(await A(c,o))[q]?.[l]??"null",Ha(Ga(a));var a}),a=>p(async()=>{var t;await _(),await O(c,o,{[q]:{[l]:(t=a()??null,za(t,(a,t)=>u(t)?"":t))}},!0,!0)}),n,e,i,r,{[v]:()=>d,destroy:s},0,d)},it=(a,t,n,e,i,s,r,[c,o,[l,w,y,d,v]],f,E,$,m,N,_,A,p,h)=>{const[T,g,I,S]=tt(t,f,E,N,_,A,p,h),D=(a,t)=>O(Oa(o,async([n,e,i,s,r],c)=>{var o,l;t&&(o=a,l=c,!ea.hasOwn(o,l))||await I(n,e,a[c],i,s,t,r)})),R=(a,t,n)=>ua(1==n?P(va(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):P(M(t,t=>[t,a[t]]),([,a])=>!u(a))),b=async(a,t)=>w?await I(y,B,{[q]:u(v)?a:R(a,v,t)},!0,!0,t,void 0,v):null;return Za(a,()=>S(async()=>{await T();const a=await(async()=>ua(P(await O(Oa(c,async([a,t,n],e)=>[a,await g(e,t,n)])),a=>!$a(a[1]))))(),t=await(async()=>l?(await g(y,B,void 0,d))[q]:{})();return $a(a)&&u(t)?void 0:[a,t]}),(a,t)=>S(async()=>{if(await T(),u(t)){const[t,n]=a();await D(t),await b(n)}else await D(t[0],!0),await b(t[1],!0)}),n,e,i,r,{[m]:()=>$,destroy:s},0,$)},st=(a,e,i,r,o,l,y,v,f,$,m="getDb",N,_)=>{let A,O,h;const g=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,l),[I,S,L,C]=(a=>{const n=(a=>la(ja,E(a)?{[ba]:a}:a??{}))(a),e=n[Ma];if(n.mode==Ra){const a=n[ba]??t;return[1,e,[a,n[La]??B,n[Ca]??Da],ga(a)]}const{tables:{load:i={},save:r={}}={},values:c={}}=n,o=la(ka,c),{load:l,save:w}=o,u=[Xa(l),Xa(w),o[xa],Ja(l),Ja(w)],y=u[2],d=ga(y),v=ga(y),f=Ya(i,{[Fa]:null,[Pa]:B,[Ua]:s},Fa,a=>p(v,a),a=>Ia(d,a)),$=Ya(r,{[xa]:null,[Pa]:B,[qa]:0,[Ba]:0,[Ua]:null},xa,(a,t)=>p(v,t),(a,t)=>Ia(d,t));return Aa($,(a,t)=>t[4]??=_a(f,t[0])?.[2]??s),[0,e,[f,$,u],d]})(e);return!I&&a.isMergeable()&&D(0),(I?et:it)(a,g,a=>{let t,n,e=1,i=0,s=0;const l=async(t=!0)=>{const[{d:n,s:i,c:r}]=await g(U+` ${H} d,${K} s,TOTAL_CHANGES() c FROM ${G}${H} JOIN ${G}${K}`);if(e&&(n!=A||i!=O||r!=h)){const c=t&&!s&&!w(A);A=n,O=i,h=r,c&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const c=b(()=>((t,n)=>R(async()=>{for(i?r&&await l():(await l(!1),i=1);e&&s;)s=0,await l(!1),e&&(await a(),await l())},a=>{R(()=>n?.(a))}))(0,y),()=>{n==c&&(n=void 0),e&&(s?v():e&&u(t)&&(t=setInterval(()=>v(!0),1e3*S)))});return n=c,c},f=r(a=>{e&&p(C,a)&&(s=1,d(),c.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,s=0,d(),await b(async()=>await n,async()=>{A=O=h=null,await o(f)})})},a=>a(),y,v,f,L,T(C),async(a,t)=>await a(U+` t.name tn,c.name cn,c.pk OR EXISTS(${U} 1 FROM ${G}index_list(t.name)i,${G}index_info(i.name)ii ${j} i."unique"=1 AND ii.name=c.name AND(${U} count(*) FROM ${G}index_info(i.name))=1)uq FROM ${Q}list()t,${Q}info(t.name)c ${j} t.schema='main'AND t.type IN('table','view')AND t.name IN(${aa(t)})ORDER BY t.name,c.name`,t),$,m,n,N,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,_)},rt=(a,t,n,e,i)=>st(a,n,async(a,n=[])=>t.query(a).all(...n),()=>_,a=>a(),e,i,_,3,t);export{rt as createSqliteBunPersister};
1
+ const a=a=>typeof a,t="tinybase",n="",e=",",i=a(n),s="true",r=(a,t,n)=>a.replace(t,n),c=Promise,o=a=>(t,n,e)=>a(t)?e?.():n(t),l=globalThis,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=o(w),f=o(u),E=t=>a(t)==i,$=a=>Array.isArray(a),m=a=>a.length,N=a=>0==m(a),_=()=>{},A=a=>new c(a),h=async a=>c.all(a),O=(a,t)=>a?.has(t)??!1,p=a=>u(a)||0==(a=>a?.size??0)(a),T=a=>[...a?.values()??[]],g=a=>a.clear(),I=(a,t)=>a?.forEach(t),S=(a,t)=>a?.delete(t),D=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},R=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},b=(a,t)=>R(a,a=>{R(()=>t?.(a))}),L=async(a,t)=>{try{return await a()}finally{await t()}},C=(a,t)=>a.forEach(t),M=(a,t="")=>a.join(t),P=(a,t)=>a.map(t),F=(a,t)=>a.filter(t),x=(a,t=m(a))=>a.splice(0,t),q=(a,...t)=>a.push(...t),B="_",U="_id",j="SELECT",k="WHERE",J="TABLE",X="ALTER "+J,Y="FROM",z="DELETE "+Y,G=j+"*"+Y,H="pragma_",K="data_version",Q="schema_version",V="pragma_table_",W="CREATE "+J,Z=/\$tableName/g,aa=a=>M(P(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),ta=(a,t=[1])=>M(P(a,()=>"$"+t[0]++),e),na=(a,t=s)=>k+`(${ea(t,aa(a))})`,ea=(a,t)=>r(a,Z,t),ia=Object,sa=a=>ia.getPrototypeOf(a),ra=ia.entries,ca=a=>!w(a)&&v(sa(a),a=>a==ia.prototype||w(sa(a)),()=>!0),oa=ia.keys,la=ia.freeze,wa=(...a)=>ia.assign(ia.create(null),...a),ua=(a,t,n)=>(ia.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),ya=(a=[])=>{const t=ia.create(null);return C(a,([a,n])=>ua(t,a,n)),t},da=(a,t)=>(delete a[t],a),va=(a,t)=>C(oa(a),n=>t(a[n],n)),fa=(a,t)=>P(ra(a),([a,n])=>t(n,a)),Ea=(a,t)=>{const n=ya();return va(a,(a,e)=>ua(n,e,t(a,e))),n},$a=a=>m(oa(a)),ma=a=>ca(a)&&0==$a(a),Na=Map,_a=a=>new Na(a),Aa=(a,t)=>a?.get(t),ha=(a,t)=>I(a,(a,n)=>t(n,a)),Oa=(a,t)=>{const n=[];return ha(a,(a,e)=>q(n,t(e,a))),n},pa=(a,t,n)=>u(n)?(S(a,t),a):a?.set(t,n),Ta=(a,t,n,e)=>{let i=Aa(a,t);return O(a,t)?e?.(i):pa(a,t,i=n()),i},ga=(a,t,n,e,i=0)=>f((n?Ta:Aa)(a,t[i],i>m(t)-2?n:_a),s=>{if(i>m(t)-2)return e?.(s)&&pa(a,t[i]),s;const r=ga(s,t,n,e,i+1);return p(s)&&pa(a,t[i]),r}),Ia=a=>new Set($(a)||u(a)?a:[a]),Sa=(a,t)=>a?.add(t),Da="ColumnName",Ra="store",ba="json",La=Ra+"TableName",Ca=Ra+"Id"+Da,Ma=Ra+Da,Pa="autoLoadIntervalSeconds",Fa="rowId"+Da,xa="tableId",qa="tableName",Ba="deleteEmptyColumns",Ua="deleteEmptyTable",ja="condition",ka={mode:ba,[Pa]:1},Ja={load:0,save:0,[qa]:t+"_values"},Xa=a=>$(a)?a:void 0,Ya=a=>d(a)||$(a),za=(a,t,n,e,i)=>{const s=_a();return va(a,(a,r)=>{const c=(w=wa(t,E(a)?{[n]:a}:a),o=ia.values(w),l=$a(t),o.slice(0,l));var o,l,w;y(c[0])||e(r,c[0])||(i(r,c[0]),pa(s,r,c))}),s},Ga=JSON.stringify,Ha=JSON.parse,Ka=a=>""===a?void 0:$(a)?P(a,Ka):ca(a)?Ea(a,Ka):a,Qa=/^\d+$/,Va=_a(),Wa=_a(),Za=_a(),at=(a,t,e,i,s,r,c,o={},l=0,w=[])=>{let d,v,E,_,h,O=0,T=0,g=0,M=0,B=0,U=0,j=0,k=0,J=0;const X={},Y=o.destroy;Ta(Va,w,()=>0),Ta(Wa,w,()=>[]),pa(Za,w,(Aa(Za,w)??0)+1);const z=_a(),[G,H,K,Q,V]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!ma(a)||!ma(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!ma(a)||!ma(t),t.setContent]:D(0))(c,a,l),[W,Z,aa]=(a=>{let t;const[e,i]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{Qa.test(t)&&m(a)<1e3&&q(a,t)}]})(),s=_a(),r=(a,e,i,r)=>{let c,o=!1;if(C(((a,t=[n])=>{const e=[],i=(a,n)=>n==m(t)?q(e,a):y(t[n])?I(a,a=>i(a,n+1)):C([t[n],null],t=>i(Aa(a,t),n+1));return i(a,0),e})(e,i),n=>I(n,n=>{const e=()=>Aa(s,n)[0](t,...i??[],...r);a?(a=>{try{return a()}catch(a){(a=>{o||(c=a),o=!0})?.(a)}})(e):e()})),o)throw c};return[(i,r,c,o=[],l=()=>[])=>{t??=a();const w=e(1);return pa(s,w,[i,r,c,o,l]),Sa(ga(r,c??[n],Ia),w),w},(a,t,...n)=>r(!1,a,t,n),a=>f(Aa(s,a),([,t,e])=>(ga(t,e??[n],void 0,t=>(S(t,a),p(t)?1:0)),pa(s,a),i(a),e)),a=>f(Aa(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const c=m(r);c==m(n)?a(t,...r,...i(r)):y(n[c])?C(e[c]?.(...r)??[],a=>s(...r,a)):s(...r,n[c])};s()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>$a),ta=a=>{a!=O&&(O=a,Z(z,void 0,O))},na=()=>{Aa(Za,w)||Aa(Va,w)||!N(Aa(Wa,w)??[])||(pa(Va,w),pa(Wa,w),pa(Za,w))},ea=t=>{(G&&$(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ia=async()=>{va()&&a.__?.[0]?.()&&await ua()},sa=a=>L(()=>v=a,()=>{v==a&&(v=void 0)}),ra=async a=>(2!=O&&(await L(async()=>{ta(1),T++,await Ea(()=>R(async()=>{const n=await t();$(n)?ea(n):u(n)&&a?V(a):u(n)||D(1,n)},t=>{r?.(t),a&&V(a)}))},()=>ta(0)),await ia()),$a),ca=async()=>{const a=j;j=0,a&&a==M&&!J&&(2==O?j=a:await ra())},oa=async a=>{const t=++M;let n=!0;if(await wa(!0),t==M&&!J){const e=R(async()=>{const a=await i(async(a,e)=>{if(t==M&&!J)if(e||a){const t=n||2==O||!!U;B++,t&&U++,await L(async()=>{ta(1),T++,await(t?Ea(()=>ea(e??a)):(()=>{try{return ea(e??a)}finally{ta(0)}})())},()=>{t&&U--,--B||ta(0)}),B||await ia()}else 2==O?j=t:await ra()});t!=M||J?u(a)||await s(a):d=a},r);await sa(e),t!=M||J||await L(()=>ra(a),()=>{n=!1})}return $a},wa=async(a=!1)=>{j=0,a||M++;const t=v,n=d;return d=void 0,await sa(L(async()=>{await t},async()=>{u(n)||await R(()=>s(n),r)})),$a},ua=async a=>(1!=O&&await L(()=>L(async()=>{ta(2),g++,await Ea(()=>R(()=>e(H,a),r))},()=>ta(0)),ca),$a),ya=async()=>{const t=++k;return await da(!0),t!=k||J||(await ua(),t!=k||J||(E=a.addDidFinishTransactionListener(()=>{if(t==k&&!J){const a=K();Q(a)&&R(()=>ua(a))}}))),$a},da=async(t=!1)=>{t||k++;const n=E;return E=void 0,u(n)||a.delListener(n),$a},va=()=>!u(E),fa=async(a=!1)=>{const[t,n]=a?[da,wa]:[wa,da];return await L(()=>t(),async()=>{await n()}),$a},Ea=async(...a)=>{let t,n=!1;const e=A(e=>N(a)?e():q(Aa(Wa,w),...P(a,(i,s)=>{const c=s==m(a)-1;return[async()=>{let a;h=A(t=>a=t),await L(async()=>{try{await R(i,r)}catch(a){n||(n=!0,t=a)}c&&e()},()=>{h=void 0,a()})},c?e:void 0,X]})));if(await(async()=>{if(!Aa(Va,w)){pa(Va,w,1);const a=Aa(Wa,w);let t=0;await L(async()=>{for(;t<m(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{x(a,t),pa(Va,w,0),na()})}})(),await e,n)throw t;return $a},$a={load:ra,startAutoLoad:oa,stopAutoLoad:wa,isAutoLoading:()=>!u(d),save:ua,startAutoSave:ya,stopAutoSave:da,isAutoSaving:va,startAutoPersisting:async(a,t=!1)=>{const[n,e,i,s]=t?[ya,oa,da,wa]:[oa,ya,wa,da],r=n(a),c=t?k:M;await r;const o=e(a),l=t?M:k;try{await o}catch(a){throw l==(t?M:k)&&await b(s),c==(t?k:M)&&await b(i),a}return $a},stopAutoPersisting:fa,getStatus:()=>O,addStatusListener:a=>W(a,z),delListener:t=>(aa(t),a),schedule:Ea,getStore:()=>a,getStats:()=>({loads:T,saves:g}),...o,destroy:async()=>(u(_)&&(J=1,_=(async()=>{const a=Aa(Wa,w),t=F(a,([,a,t])=>t!=X||(a?.(),!1)),n=h;x(a),q(a,...t),await L(()=>L(()=>L(fa,()=>n),()=>Y?.()),()=>{const a=(Aa(Za,w)??1)-1;pa(Za,w,a||void 0),na()})})()),await _,$a)};return la($a)},tt=new l.TextEncoder,nt=(a,n,i,r,c=et,o,l,w)=>{const y=_a(),d=_a();let v=a;return[async()=>{g(y),g(d),C(await i(v,n),({tn:a,cn:t,uq:n})=>{Sa(Ta(y,a,Ia),t),n&&Sa(Ta(d,a,Ia),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:Ia(e);return((a,t)=>O(Aa(y,a),t))(a,t)?ya(F(P(await v(G+aa(a)+na(a,n)),a=>{const n=a[t],e=l?Ea(da(a,t),l):da(a,t);return[n,u(i)?e:ya(F(fa(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||O(i,a))(a)))]}),a=>!u(a[0])&&!ma(a[1]))):{}},async(a,n,i,l,w,f=!1,E=s,$)=>{const m=u($)?void 0:Ia($),_=a=>u(m)||O(m,a),A=Ia();va(i??{},a=>C(F(oa(a??{}),_),a=>Sa(A,a)));const p=T(A);if(u(m)&&!f&&w&&E==s&&N(p)&&O(y,a))return await v("DROP "+J+aa(a)),pa(y,a),void pa(d,a);const g=Aa(y,a),I=Ia(F(T(g),a=>a==n||_(a)));if(!N(p))if(O(y,a)){if(await h(P([n,...p],async t=>{S(I,t)||(await v(X+aa(a)+"ADD"+aa(t)+r),Sa(g,t))})),c==et&&!O(Aa(d,a),n)){const e=t+"_pk_"+(a=>{let t=2166136261;return C(tt.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(Ga([a,n]));await v("CREATE UNIQUE INDEX IF NOT EXISTS"+aa(e)+"ON"+aa(a)+`(${aa(n)})`),Sa(Ta(d,a,Ia),n)}}else await v(W+aa(a)+`(${aa(n)}${r} PRIMARY KEY${M(P(p,a=>e+aa(a)+r))});`),pa(y,a,Ia([n,...p])),pa(d,a,Ia([n]));if(await h([...!f&&l?P(T(I),async t=>{t!=n&&(await v(X+aa(a)+"DROP"+aa(t)),S(g,t))}):[]]),f)u(i)?u(m)&&await v(z+aa(a)+na(a,E)):await h(fa(i,async(t,e)=>{if(u(t))await v(z+aa(a)+na(a,E)+`AND(${aa(n)}=$1)`,[e]);else if(!N(p)){const i=F(oa(t),_);N(i)||await c(v,a,n,i,{[e]:P(i,a=>o?o(t[a]):t[a])},g)}}));else if(N(p))u(m)&&O(y,a)&&await v(z+aa(a)+na(a,E));else{const t=F(T(Aa(y,a)),a=>a!=n&&_(a)),e=ya(),s=[];va(i??{},(a,n)=>{ua(e,n,P(t,t=>o?o(a?.[t]):a?.[t])),q(s,n)}),await c(v,a,n,t,e,g),await v(z+aa(a)+na(a,E)+`AND${aa(n)}NOT IN(${ta(s)})`,s)}},async t=>{if(w)return await w(async a=>{const n=v;return v=a,await L(t,()=>{v=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await R(()=>a("ROLLBACK")),t}}]},et=async(a,t,n,i,s)=>{const r=[1];await a("INSERT INTO"+aa(t)+"("+((...a)=>M(P(a,aa),e))(n,...i)+")VALUES"+M(fa(s,a=>"($"+r[0]+++","+ta(a,r)+")"),e)+"ON CONFLICT("+aa(n)+")DO UPDATE SET"+M(P(i,a=>aa(a)+"=excluded."+aa(a)),e),fa(s,(a,t)=>[t,...P(a,a=>a??null)]).flat())},it=(a,t,n,e,i,s,r,[c,o,l],w,y,d,v,f,E,$,m,N)=>{const[_,A,h,O]=nt(t,w,y,f,E,void 0,void 0,N);return at(a,()=>O(async()=>{return await _(),a=(await A(c,o))[B]?.[l]??"null",Ka(Ha(a));var a}),a=>O(async()=>{var t;await _(),await h(c,o,{[B]:{[l]:(t=a()??null,Ga(t,(a,t)=>u(t)?"":t))}},!0,!0)}),n,e,i,r,{[v]:()=>d,destroy:s},0,d)},st=(a,t,n,e,i,s,r,[c,o,[l,w,y,d,v]],f,E,$,m,N,_,A,O,p)=>{const[T,g,I,S]=nt(t,f,E,N,_,A,O,p),D=(a,t)=>h(Oa(o,async([n,e,i,s,r],c)=>{var o,l;t&&(o=a,l=c,!ia.hasOwn(o,l))||await I(n,e,a[c],i,s,t,r)})),R=(a,t,n)=>ya(1==n?F(fa(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):F(P(t,t=>[t,a[t]]),([,a])=>!u(a))),b=async(a,t)=>w?await I(y,U,{[B]:u(v)?a:R(a,v,t)},!0,!0,t,void 0,v):null;return at(a,()=>S(async()=>{await T();const a=await(async()=>ya(F(await h(Oa(c,async([a,t,n],e)=>[a,await g(e,t,n)])),a=>!ma(a[1]))))(),t=await(async()=>l?(await g(y,U,void 0,d))[B]:{})();return ma(a)&&u(t)?void 0:[a,t]}),(a,t)=>S(async()=>{if(await T(),u(t)){const[t,n]=a();await D(t),await b(n)}else await D(t[0],!0),await b(t[1],!0)}),n,e,i,r,{[m]:()=>$,destroy:s},0,$)},rt=(a,e,i,r,o,l,y,v,f,$,m="getDb",N,_)=>{let A,h,p;const g=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,l),[I,S,R,C]=(a=>{const n=(a=>wa(ka,E(a)?{[La]:a}:a??{}))(a),e=n[Pa];if(n.mode==ba){const a=n[La]??t;return[1,e,[a,n[Ca]??U,n[Ma]??Ra],Ia(a)]}const{tables:{load:i={},save:r={}}={},values:c={}}=n,o=wa(Ja,c),{load:l,save:w}=o,u=[Ya(l),Ya(w),o[qa],Xa(l),Xa(w)],y=u[2],d=Ia(y),v=Ia(y),f=za(i,{[xa]:null,[Fa]:U,[ja]:s},xa,a=>O(v,a),a=>Sa(d,a)),$=za(r,{[qa]:null,[Fa]:U,[Ba]:0,[Ua]:0,[ja]:null},qa,(a,t)=>O(v,t),(a,t)=>Sa(d,t));return ha($,(a,t)=>t[4]??=Aa(f,t[0])?.[2]??s),[0,e,[f,$,u],d]})(e);return!I&&a.isMergeable()&&D(0),(I?it:st)(a,g,a=>{let t,n,e=1,i=0,s=0;const l=async(t=!0)=>{const[{d:n,s:i,c:r}]=await g(j+` ${K} d,${Q} s,TOTAL_CHANGES() c FROM ${H}${K} JOIN ${H}${Q}`);if(e&&(n!=A||i!=h||r!=p)){const c=t&&!s&&!w(A);A=n,h=i,p=r,c&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const c=L(()=>b(async()=>{for(i?r&&await l():(await l(!1),i=1);e&&s;)s=0,await l(!1),e&&(await a(),await l())},y),()=>{n==c&&(n=void 0),e&&(s?v():e&&u(t)&&(t=setInterval(()=>v(!0),1e3*S)))});return n=c,c},f=r(a=>{e&&O(C,a)&&(s=1,d(),c.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,s=0,d(),await L(async()=>await n,async()=>{A=h=p=null,await o(f)})})},a=>a(),y,v,f,R,T(C),async(a,t)=>await a(j+` t.name tn,c.name cn,c.pk OR EXISTS(${j} 1 FROM ${H}index_list(t.name)i,${H}index_info(i.name)ii ${k} i."unique"=1 AND ii.name=c.name AND(${j} count(*) FROM ${H}index_info(i.name))=1)uq FROM ${V}list()t,${V}info(t.name)c ${k} t.schema='main'AND t.type IN('table','view')AND t.name IN(${ta(t)})ORDER BY t.name,c.name`,t),$,m,n,N,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,_)},ct=(a,t,n,e,i)=>rt(a,n,async(a,n=[])=>t.query(a).all(...n),()=>_,a=>a(),e,i,_,3,t);export{ct as createSqliteBunPersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",n="",e=",",i=a(n),s="true",r=(a,t,n)=>a.replace(t,n),o=Promise,c=a=>(t,n,e)=>a(t)?e?.():n(t),l=globalThis,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=c(w),f=c(u),E=t=>a(t)==i,_=a=>Array.isArray(a),$=a=>a.length,m=a=>0==$(a),N=()=>{},p=a=>new o(a),A=async a=>o.all(a),h=(a,t)=>a.forEach(t),O=(a,t="")=>a.join(t),T=(a,t)=>a.map(t),g=(a,t)=>a.filter(t),I=(a,t=$(a))=>a.splice(0,t),S=(a,...t)=>a.push(...t),b=(a,t)=>a?.has(t)??!1,D=a=>u(a)||0==(a=>a?.size??0)(a),R=a=>[...a?.values()??[]],L=a=>a.clear(),C=(a,t)=>a?.forEach(t),M=(a,t)=>a?.delete(t),P=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},F=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},x=async(a,t)=>{try{return await a()}finally{await t()}},k="_",q="_id",j="SELECT",B="WHERE",U="TABLE",J="ALTER "+U,X="FROM",Y="DELETE "+X,z=j+"*"+X,G="pragma_",H="data_version",K="schema_version",V="pragma_table_",Q="CREATE "+U,W=/\$tableName/g,Z=a=>O(T(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),aa=(a,t=[1])=>O(T(a,()=>"$"+t[0]++),e),ta=(a,t=s)=>B+`(${na(t,Z(a))})`,na=(a,t)=>r(a,W,t),ea=Object,ia=a=>ea.getPrototypeOf(a),sa=ea.entries,ra=a=>!w(a)&&v(ia(a),a=>a==ea.prototype||w(ia(a)),()=>!0),oa=ea.keys,ca=ea.freeze,la=(...a)=>ea.assign(ea.create(null),...a),wa=(a,t,n)=>(ea.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),ua=(a=[])=>{const t=ea.create(null);return h(a,([a,n])=>wa(t,a,n)),t},ya=(a,t)=>(delete a[t],a),da=(a,t)=>h(oa(a),n=>t(a[n],n)),va=(a,t)=>T(sa(a),([a,n])=>t(n,a)),fa=(a,t)=>{const n=ua();return da(a,(a,e)=>wa(n,e,t(a,e))),n},Ea=a=>$(oa(a)),_a=a=>ra(a)&&0==Ea(a),$a=Map,ma=a=>new $a(a),Na=(a,t)=>a?.get(t),pa=(a,t)=>C(a,(a,n)=>t(n,a)),Aa=(a,t)=>{const n=[];return pa(a,(a,e)=>S(n,t(e,a))),n},ha=(a,t,n)=>u(n)?(M(a,t),a):a?.set(t,n),Oa=(a,t,n,e)=>{let i=Na(a,t);return b(a,t)?e?.(i):ha(a,t,i=n()),i},Ta=(a,t,n,e,i=0)=>f((n?Oa:Na)(a,t[i],i>$(t)-2?n:ma),s=>{if(i>$(t)-2)return e?.(s)&&ha(a,t[i]),s;const r=Ta(s,t,n,e,i+1);return D(s)&&ha(a,t[i]),r}),ga=a=>new Set(_(a)||u(a)?a:[a]),Ia=(a,t)=>a?.add(t),Sa="ColumnName",ba="store",Da="json",Ra=ba+"TableName",La=ba+"Id"+Sa,Ca=ba+Sa,Ma="autoLoadIntervalSeconds",Pa="rowId"+Sa,Fa="tableId",xa="tableName",ka="deleteEmptyColumns",qa="deleteEmptyTable",ja="condition",Ba={mode:Da,[Ma]:1},Ua={load:0,save:0,[xa]:t+"_values"},Ja=a=>_(a)?a:void 0,Xa=a=>d(a)||_(a),Ya=(a,t,n,e,i)=>{const s=ma();return da(a,(a,r)=>{const o=(w=la(t,E(a)?{[n]:a}:a),c=ea.values(w),l=Ea(t),c.slice(0,l));var c,l,w;y(o[0])||e(r,o[0])||(i(r,o[0]),ha(s,r,o))}),s},za=JSON.stringify,Ga=JSON.parse,Ha=a=>""===a?void 0:_(a)?T(a,Ha):ra(a)?fa(a,Ha):a,Ka=/^\d+$/,Va=ma(),Qa=ma(),Wa=ma(),Za=(a,t,e,i,s,r,o,c={},l=0,w=[])=>{let d,v,E,N,A,O=0,b=0,R=0,L=0,k=0,q=0,j=0,B=0,U=0;const J={},X=c.destroy;Oa(Va,w,()=>0),Oa(Qa,w,()=>[]),ha(Wa,w,(Na(Wa,w)??0)+1);const Y=ma(),[z,G,H,K,V]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!_a(a)||!_a(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!_a(a)||!_a(t),t.setContent]:P(0))(o,a,l),[Q,W,Z]=(a=>{let t;const[e,i]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{Ka.test(t)&&$(a)<1e3&&S(a,t)}]})(),s=ma(),r=(a,e,i,r)=>{let o,c=!1;if(h(((a,t=[n])=>{const e=[],i=(a,n)=>n==$(t)?S(e,a):y(t[n])?C(a,a=>i(a,n+1)):h([t[n],null],t=>i(Na(a,t),n+1));return i(a,0),e})(e,i),n=>C(n,n=>{const e=()=>Na(s,n)[0](t,...i??[],...r);a?(a=>{try{return a()}catch(a){(a=>{c||(o=a),c=!0})?.(a)}})(e):e()})),c)throw o};return[(i,r,o,c=[],l=()=>[])=>{t??=a();const w=e(1);return ha(s,w,[i,r,o,c,l]),Ia(Ta(r,o??[n],ga),w),w},(a,t,...n)=>r(!1,a,t,n),a=>f(Na(s,a),([,t,e])=>(Ta(t,e??[n],void 0,t=>(M(t,a),D(t)?1:0)),ha(s,a),i(a),e)),a=>f(Na(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const o=$(r);o==$(n)?a(t,...r,...i(r)):y(n[o])?h(e[o]?.(...r)??[],a=>s(...r,a)):s(...r,n[o])};s()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>Ea),aa=a=>{a!=O&&(O=a,W(Y,void 0,O))},ta=()=>{Na(Wa,w)||Na(Va,w)||!m(Na(Qa,w)??[])||(ha(Va,w),ha(Qa,w),ha(Wa,w))},na=t=>{(z&&_(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ea=async()=>{da()&&a.__?.[0]?.()&&await wa()},ia=a=>x(()=>v=a,()=>{v==a&&(v=void 0)}),sa=async a=>(2!=O&&(await x(async()=>{aa(1),b++,await fa(()=>F(async()=>{const n=await t();_(n)?na(n):u(n)&&a?V(a):u(n)||P(1,n)},t=>{r?.(t),a&&V(a)}))},()=>aa(0)),await ea()),Ea),ra=async()=>{const a=j;j=0,a&&a==L&&!U&&(2==O?j=a:await sa())},oa=async a=>{const t=++L;let n=!0;if(await la(!0),t==L&&!U){const e=F(async()=>{const a=await i(async(a,e)=>{if(t==L&&!U)if(e||a){const t=n||2==O||!!q;k++,t&&q++,await x(async()=>{aa(1),b++,await(t?fa(()=>na(e??a)):(()=>{try{return na(e??a)}finally{aa(0)}})())},()=>{t&&q--,--k||aa(0)}),k||await ea()}else 2==O?j=t:await sa()});t!=L||U?u(a)||await s(a):d=a},r);await ia(e),t!=L||U||await x(()=>sa(a),()=>{n=!1})}return Ea},la=async(a=!1)=>{j=0,a||L++;const t=v,n=d;return d=void 0,await ia(x(async()=>{await t},async()=>{u(n)||await F(()=>s(n),r)})),Ea},wa=async a=>(1!=O&&await x(()=>x(async()=>{aa(2),R++,await fa(()=>F(()=>e(G,a),r))},()=>aa(0)),ra),Ea),ua=async()=>{const t=++B;return await ya(!0),t!=B||U||(await wa(),t!=B||U||(E=a.addDidFinishTransactionListener(()=>{if(t==B&&!U){const a=H();K(a)&&F(()=>wa(a))}}))),Ea},ya=async(t=!1)=>{t||B++;const n=E;return E=void 0,u(n)||a.delListener(n),Ea},da=()=>!u(E),va=async(a=!1)=>{const[t,n]=a?[ya,la]:[la,ya];return await x(()=>t(),async()=>{await n()}),Ea},fa=async(...a)=>{let t,n=!1;const e=p(e=>m(a)?e():S(Na(Qa,w),...T(a,(i,s)=>{const o=s==$(a)-1;return[async()=>{let a;A=p(t=>a=t),await x(async()=>{try{await F(i,r)}catch(a){n||(n=!0,t=a)}o&&e()},()=>{A=void 0,a()})},o?e:void 0,J]})));if(await(async()=>{if(!Na(Va,w)){ha(Va,w,1);const a=Na(Qa,w);let t=0;await x(async()=>{for(;t<$(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{I(a,t),ha(Va,w,0),ta()})}})(),await e,n)throw t;return Ea},Ea={load:sa,startAutoLoad:oa,stopAutoLoad:la,isAutoLoading:()=>!u(d),save:wa,startAutoSave:ua,stopAutoSave:ya,isAutoSaving:da,startAutoPersisting:async(a,t=!1)=>{const[n,e]=t?[ua,oa]:[oa,ua];return await n(a),await e(a),Ea},stopAutoPersisting:va,getStatus:()=>O,addStatusListener:a=>Q(a,Y),delListener:t=>(Z(t),a),schedule:fa,getStore:()=>a,getStats:()=>({loads:b,saves:R}),...c,destroy:async()=>(u(N)&&(U=1,N=(async()=>{const a=Na(Qa,w),t=g(a,([,a,t])=>t!=J||(a?.(),!1)),n=A;I(a),S(a,...t),await x(()=>x(()=>x(va,()=>n),()=>X?.()),()=>{const a=(Na(Wa,w)??1)-1;ha(Wa,w,a||void 0),ta()})})()),await N,Ea)};return ca(Ea)},at=new l.TextEncoder,tt=(a,n,i,r,o=nt,c,l,w)=>{const y=ma(),d=ma();let v=a;return[async()=>{L(y),L(d),h(await i(v,n),({tn:a,cn:t,uq:n})=>{Ia(Oa(y,a,ga),t),n&&Ia(Oa(d,a,ga),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:ga(e);return((a,t)=>b(Na(y,a),t))(a,t)?ua(g(T(await v(z+Z(a)+ta(a,n)),a=>{const n=a[t],e=l?fa(ya(a,t),l):ya(a,t);return[n,u(i)?e:ua(g(va(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||b(i,a))(a)))]}),a=>!u(a[0])&&!_a(a[1]))):{}},async(a,n,i,l,w,f=!1,E=s,_)=>{const $=u(_)?void 0:ga(_),N=a=>u($)||b($,a),p=ga();da(i??{},a=>h(g(oa(a??{}),N),a=>Ia(p,a)));const I=R(p);if(u($)&&!f&&w&&E==s&&m(I)&&b(y,a))return await v("DROP "+U+Z(a)),ha(y,a),void ha(d,a);const D=Na(y,a),L=ga(g(R(D),a=>a==n||N(a)));if(!m(I))if(b(y,a)){if(await A(T([n,...I],async t=>{M(L,t)||(await v(J+Z(a)+"ADD"+Z(t)+r),Ia(D,t))})),o==nt&&!b(Na(d,a),n)){const e=t+"_pk_"+(a=>{let t=2166136261;return h(at.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(za([a,n]));await v("CREATE UNIQUE INDEX IF NOT EXISTS"+Z(e)+"ON"+Z(a)+`(${Z(n)})`),Ia(Oa(d,a,ga),n)}}else await v(Q+Z(a)+`(${Z(n)}${r} PRIMARY KEY${O(T(I,a=>e+Z(a)+r))});`),ha(y,a,ga([n,...I])),ha(d,a,ga([n]));if(await A([...!f&&l?T(R(L),async t=>{t!=n&&(await v(J+Z(a)+"DROP"+Z(t)),M(D,t))}):[]]),f)u(i)?u($)&&await v(Y+Z(a)+ta(a,E)):await A(va(i,async(t,e)=>{if(u(t))await v(Y+Z(a)+ta(a,E)+`AND(${Z(n)}=$1)`,[e]);else if(!m(I)){const i=g(oa(t),N);m(i)||await o(v,a,n,i,{[e]:T(i,a=>c?c(t[a]):t[a])},D)}}));else if(m(I))u($)&&b(y,a)&&await v(Y+Z(a)+ta(a,E));else{const t=g(R(Na(y,a)),a=>a!=n&&N(a)),e=ua(),s=[];da(i??{},(a,n)=>{wa(e,n,T(t,t=>c?c(a?.[t]):a?.[t])),S(s,n)}),await o(v,a,n,t,e,D),await v(Y+Z(a)+ta(a,E)+`AND${Z(n)}NOT IN(${aa(s)})`,s)}},async t=>{if(w)return await w(async a=>{const n=v;return v=a,await x(t,()=>{v=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await F(()=>a("ROLLBACK")),t}}]},nt=async(a,t,n,i,s)=>{const r=[1];await a("INSERT INTO"+Z(t)+"("+((...a)=>O(T(a,Z),e))(n,...i)+")VALUES"+O(va(s,a=>"($"+r[0]+++","+aa(a,r)+")"),e)+"ON CONFLICT("+Z(n)+")DO UPDATE SET"+O(T(i,a=>Z(a)+"=excluded."+Z(a)),e),va(s,(a,t)=>[t,...T(a,a=>a??null)]).flat())},et=(a,t,n,e,i,s,r,[o,c,l],w,y,d,v,f,E,_,$,m)=>{const[N,p,A,h]=tt(t,w,y,f,E,void 0,void 0,m);return Za(a,()=>h(async()=>{return await N(),a=(await p(o,c))[k]?.[l]??"null",Ha(Ga(a));var a}),a=>h(async()=>{var t;await N(),await A(o,c,{[k]:{[l]:(t=a()??null,za(t,(a,t)=>u(t)?"":t))}},!0,!0)}),n,e,i,r,{[v]:()=>d,destroy:s},0,d)},it=(a,t,n,e,i,s,r,[o,c,[l,w,y,d,v]],f,E,_,$,m,N,p,h,O)=>{const[I,S,b,D]=tt(t,f,E,m,N,p,h,O),R=(a,t)=>A(Aa(c,async([n,e,i,s,r],o)=>{var c,l;t&&(c=a,l=o,!ea.hasOwn(c,l))||await b(n,e,a[o],i,s,t,r)})),L=(a,t,n)=>ua(1==n?g(va(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):g(T(t,t=>[t,a[t]]),([,a])=>!u(a))),C=async(a,t)=>w?await b(y,q,{[k]:u(v)?a:L(a,v,t)},!0,!0,t,void 0,v):null;return Za(a,()=>D(async()=>{await I();const a=await(async()=>ua(g(await A(Aa(o,async([a,t,n],e)=>[a,await S(e,t,n)])),a=>!_a(a[1]))))(),t=await(async()=>l?(await S(y,q,void 0,d))[k]:{})();return _a(a)&&u(t)?void 0:[a,t]}),(a,t)=>D(async()=>{if(await I(),u(t)){const[t,n]=a();await R(t),await C(n)}else await R(t[0],!0),await C(t[1],!0)}),n,e,i,r,{[$]:()=>_,destroy:s},0,_)},st=(a,e,i,r,c,l,y,v,f,_,$="getDb",m,N)=>{let p,A,h;const O=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,l),[T,g,I,S]=(a=>{const n=(a=>la(Ba,E(a)?{[Ra]:a}:a??{}))(a),e=n[Ma];if(n.mode==Da){const a=n[Ra]??t;return[1,e,[a,n[La]??q,n[Ca]??ba],ga(a)]}const{tables:{load:i={},save:r={}}={},values:o={}}=n,c=la(Ua,o),{load:l,save:w}=c,u=[Xa(l),Xa(w),c[xa],Ja(l),Ja(w)],y=u[2],d=ga(y),v=ga(y),f=Ya(i,{[Fa]:null,[Pa]:q,[ja]:s},Fa,a=>b(v,a),a=>Ia(d,a)),_=Ya(r,{[xa]:null,[Pa]:q,[ka]:0,[qa]:0,[ja]:null},xa,(a,t)=>b(v,t),(a,t)=>Ia(d,t));return pa(_,(a,t)=>t[4]??=Na(f,t[0])?.[2]??s),[0,e,[f,_,u],d]})(e);return!T&&a.isMergeable()&&P(0),(T?et:it)(a,O,a=>{let t,n,e=1,i=0,s=0;const l=async(t=!0)=>{const[{d:n,s:i,c:r}]=await O(j+` ${H} d,${K} s,TOTAL_CHANGES() c FROM ${G}${H} JOIN ${G}${K}`);if(e&&(n!=p||i!=A||r!=h)){const o=t&&!s&&!w(p);p=n,A=i,h=r,o&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const o=x(()=>((t,n)=>F(async()=>{for(i?r&&await l():(await l(!1),i=1);e&&s;)s=0,await l(!1),e&&(await a(),await l())},a=>{F(()=>n?.(a))}))(0,y),()=>{n==o&&(n=void 0),e&&(s?v():e&&u(t)&&(t=setInterval(()=>v(!0),1e3*g)))});return n=o,o},f=r(a=>{e&&b(S,a)&&(s=1,d(),o.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,s=0,d(),await x(async()=>await n,async()=>{p=A=h=null,await c(f)})})},a=>a(),y,v,f,I,R(S),async(a,t)=>await a(j+` t.name tn,c.name cn,c.pk OR EXISTS(${j} 1 FROM ${G}index_list(t.name)i,${G}index_info(i.name)ii ${B} i."unique"=1 AND ii.name=c.name AND(${j} count(*) FROM ${G}index_info(i.name))=1)uq FROM ${V}list()t,${V}info(t.name)c ${B} t.schema='main'AND t.type IN('table','view')AND t.name IN(${aa(t)})ORDER BY t.name,c.name`,t),_,$,n,m,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,N)},rt=(a,t,n,e,i,s)=>st(a,e,async(a,t=[])=>T(n.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}),a=>({...a})),a=>t.capi.sqlite3_update_hook(n,(t,n,e,i)=>a(i),0),()=>t.capi.sqlite3_update_hook(n,N,0),i,s,N,3,n);export{rt as createSqliteWasmPersister};
1
+ const a=a=>typeof a,t="tinybase",n="",e=",",i=a(n),s="true",r=(a,t,n)=>a.replace(t,n),o=Promise,c=a=>(t,n,e)=>a(t)?e?.():n(t),l=globalThis,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=c(w),f=c(u),E=t=>a(t)==i,_=a=>Array.isArray(a),$=a=>a.length,m=a=>0==$(a),N=()=>{},p=a=>new o(a),A=async a=>o.all(a),h=(a,t)=>a.forEach(t),O=(a,t="")=>a.join(t),T=(a,t)=>a.map(t),g=(a,t)=>a.filter(t),I=(a,t=$(a))=>a.splice(0,t),S=(a,...t)=>a.push(...t),b=(a,t)=>a?.has(t)??!1,D=a=>u(a)||0==(a=>a?.size??0)(a),R=a=>[...a?.values()??[]],L=a=>a.clear(),C=(a,t)=>a?.forEach(t),M=(a,t)=>a?.delete(t),P=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},F=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},x=(a,t)=>F(a,a=>{F(()=>t?.(a))}),k=async(a,t)=>{try{return await a()}finally{await t()}},q="_",j="_id",B="SELECT",U="WHERE",J="TABLE",X="ALTER "+J,Y="FROM",z="DELETE "+Y,G=B+"*"+Y,H="pragma_",K="data_version",V="schema_version",Q="pragma_table_",W="CREATE "+J,Z=/\$tableName/g,aa=a=>O(T(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),ta=(a,t=[1])=>O(T(a,()=>"$"+t[0]++),e),na=(a,t=s)=>U+`(${ea(t,aa(a))})`,ea=(a,t)=>r(a,Z,t),ia=Object,sa=a=>ia.getPrototypeOf(a),ra=ia.entries,oa=a=>!w(a)&&v(sa(a),a=>a==ia.prototype||w(sa(a)),()=>!0),ca=ia.keys,la=ia.freeze,wa=(...a)=>ia.assign(ia.create(null),...a),ua=(a,t,n)=>(ia.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),ya=(a=[])=>{const t=ia.create(null);return h(a,([a,n])=>ua(t,a,n)),t},da=(a,t)=>(delete a[t],a),va=(a,t)=>h(ca(a),n=>t(a[n],n)),fa=(a,t)=>T(ra(a),([a,n])=>t(n,a)),Ea=(a,t)=>{const n=ya();return va(a,(a,e)=>ua(n,e,t(a,e))),n},_a=a=>$(ca(a)),$a=a=>oa(a)&&0==_a(a),ma=Map,Na=a=>new ma(a),pa=(a,t)=>a?.get(t),Aa=(a,t)=>C(a,(a,n)=>t(n,a)),ha=(a,t)=>{const n=[];return Aa(a,(a,e)=>S(n,t(e,a))),n},Oa=(a,t,n)=>u(n)?(M(a,t),a):a?.set(t,n),Ta=(a,t,n,e)=>{let i=pa(a,t);return b(a,t)?e?.(i):Oa(a,t,i=n()),i},ga=(a,t,n,e,i=0)=>f((n?Ta:pa)(a,t[i],i>$(t)-2?n:Na),s=>{if(i>$(t)-2)return e?.(s)&&Oa(a,t[i]),s;const r=ga(s,t,n,e,i+1);return D(s)&&Oa(a,t[i]),r}),Ia=a=>new Set(_(a)||u(a)?a:[a]),Sa=(a,t)=>a?.add(t),ba="ColumnName",Da="store",Ra="json",La=Da+"TableName",Ca=Da+"Id"+ba,Ma=Da+ba,Pa="autoLoadIntervalSeconds",Fa="rowId"+ba,xa="tableId",ka="tableName",qa="deleteEmptyColumns",ja="deleteEmptyTable",Ba="condition",Ua={mode:Ra,[Pa]:1},Ja={load:0,save:0,[ka]:t+"_values"},Xa=a=>_(a)?a:void 0,Ya=a=>d(a)||_(a),za=(a,t,n,e,i)=>{const s=Na();return va(a,(a,r)=>{const o=(w=wa(t,E(a)?{[n]:a}:a),c=ia.values(w),l=_a(t),c.slice(0,l));var c,l,w;y(o[0])||e(r,o[0])||(i(r,o[0]),Oa(s,r,o))}),s},Ga=JSON.stringify,Ha=JSON.parse,Ka=a=>""===a?void 0:_(a)?T(a,Ka):oa(a)?Ea(a,Ka):a,Va=/^\d+$/,Qa=Na(),Wa=Na(),Za=Na(),at=(a,t,e,i,s,r,o,c={},l=0,w=[])=>{let d,v,E,N,A,O=0,b=0,R=0,L=0,q=0,j=0,B=0,U=0,J=0;const X={},Y=c.destroy;Ta(Qa,w,()=>0),Ta(Wa,w,()=>[]),Oa(Za,w,(pa(Za,w)??0)+1);const z=Na(),[G,H,K,V,Q]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!$a(a)||!$a(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!$a(a)||!$a(t),t.setContent]:P(0))(o,a,l),[W,Z,aa]=(a=>{let t;const[e,i]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{Va.test(t)&&$(a)<1e3&&S(a,t)}]})(),s=Na(),r=(a,e,i,r)=>{let o,c=!1;if(h(((a,t=[n])=>{const e=[],i=(a,n)=>n==$(t)?S(e,a):y(t[n])?C(a,a=>i(a,n+1)):h([t[n],null],t=>i(pa(a,t),n+1));return i(a,0),e})(e,i),n=>C(n,n=>{const e=()=>pa(s,n)[0](t,...i??[],...r);a?(a=>{try{return a()}catch(a){(a=>{c||(o=a),c=!0})?.(a)}})(e):e()})),c)throw o};return[(i,r,o,c=[],l=()=>[])=>{t??=a();const w=e(1);return Oa(s,w,[i,r,o,c,l]),Sa(ga(r,o??[n],Ia),w),w},(a,t,...n)=>r(!1,a,t,n),a=>f(pa(s,a),([,t,e])=>(ga(t,e??[n],void 0,t=>(M(t,a),D(t)?1:0)),Oa(s,a),i(a),e)),a=>f(pa(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const o=$(r);o==$(n)?a(t,...r,...i(r)):y(n[o])?h(e[o]?.(...r)??[],a=>s(...r,a)):s(...r,n[o])};s()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>_a),ta=a=>{a!=O&&(O=a,Z(z,void 0,O))},na=()=>{pa(Za,w)||pa(Qa,w)||!m(pa(Wa,w)??[])||(Oa(Qa,w),Oa(Wa,w),Oa(Za,w))},ea=t=>{(G&&_(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ia=async()=>{va()&&a.__?.[0]?.()&&await ua()},sa=a=>k(()=>v=a,()=>{v==a&&(v=void 0)}),ra=async a=>(2!=O&&(await k(async()=>{ta(1),b++,await Ea(()=>F(async()=>{const n=await t();_(n)?ea(n):u(n)&&a?Q(a):u(n)||P(1,n)},t=>{r?.(t),a&&Q(a)}))},()=>ta(0)),await ia()),_a),oa=async()=>{const a=B;B=0,a&&a==L&&!J&&(2==O?B=a:await ra())},ca=async a=>{const t=++L;let n=!0;if(await wa(!0),t==L&&!J){const e=F(async()=>{const a=await i(async(a,e)=>{if(t==L&&!J)if(e||a){const t=n||2==O||!!j;q++,t&&j++,await k(async()=>{ta(1),b++,await(t?Ea(()=>ea(e??a)):(()=>{try{return ea(e??a)}finally{ta(0)}})())},()=>{t&&j--,--q||ta(0)}),q||await ia()}else 2==O?B=t:await ra()});t!=L||J?u(a)||await s(a):d=a},r);await sa(e),t!=L||J||await k(()=>ra(a),()=>{n=!1})}return _a},wa=async(a=!1)=>{B=0,a||L++;const t=v,n=d;return d=void 0,await sa(k(async()=>{await t},async()=>{u(n)||await F(()=>s(n),r)})),_a},ua=async a=>(1!=O&&await k(()=>k(async()=>{ta(2),R++,await Ea(()=>F(()=>e(H,a),r))},()=>ta(0)),oa),_a),ya=async()=>{const t=++U;return await da(!0),t!=U||J||(await ua(),t!=U||J||(E=a.addDidFinishTransactionListener(()=>{if(t==U&&!J){const a=K();V(a)&&F(()=>ua(a))}}))),_a},da=async(t=!1)=>{t||U++;const n=E;return E=void 0,u(n)||a.delListener(n),_a},va=()=>!u(E),fa=async(a=!1)=>{const[t,n]=a?[da,wa]:[wa,da];return await k(()=>t(),async()=>{await n()}),_a},Ea=async(...a)=>{let t,n=!1;const e=p(e=>m(a)?e():S(pa(Wa,w),...T(a,(i,s)=>{const o=s==$(a)-1;return[async()=>{let a;A=p(t=>a=t),await k(async()=>{try{await F(i,r)}catch(a){n||(n=!0,t=a)}o&&e()},()=>{A=void 0,a()})},o?e:void 0,X]})));if(await(async()=>{if(!pa(Qa,w)){Oa(Qa,w,1);const a=pa(Wa,w);let t=0;await k(async()=>{for(;t<$(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{I(a,t),Oa(Qa,w,0),na()})}})(),await e,n)throw t;return _a},_a={load:ra,startAutoLoad:ca,stopAutoLoad:wa,isAutoLoading:()=>!u(d),save:ua,startAutoSave:ya,stopAutoSave:da,isAutoSaving:va,startAutoPersisting:async(a,t=!1)=>{const[n,e,i,s]=t?[ya,ca,da,wa]:[ca,ya,wa,da],r=n(a),o=t?U:L;await r;const c=e(a),l=t?L:U;try{await c}catch(a){throw l==(t?L:U)&&await x(s),o==(t?U:L)&&await x(i),a}return _a},stopAutoPersisting:fa,getStatus:()=>O,addStatusListener:a=>W(a,z),delListener:t=>(aa(t),a),schedule:Ea,getStore:()=>a,getStats:()=>({loads:b,saves:R}),...c,destroy:async()=>(u(N)&&(J=1,N=(async()=>{const a=pa(Wa,w),t=g(a,([,a,t])=>t!=X||(a?.(),!1)),n=A;I(a),S(a,...t),await k(()=>k(()=>k(fa,()=>n),()=>Y?.()),()=>{const a=(pa(Za,w)??1)-1;Oa(Za,w,a||void 0),na()})})()),await N,_a)};return la(_a)},tt=new l.TextEncoder,nt=(a,n,i,r,o=et,c,l,w)=>{const y=Na(),d=Na();let v=a;return[async()=>{L(y),L(d),h(await i(v,n),({tn:a,cn:t,uq:n})=>{Sa(Ta(y,a,Ia),t),n&&Sa(Ta(d,a,Ia),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:Ia(e);return((a,t)=>b(pa(y,a),t))(a,t)?ya(g(T(await v(G+aa(a)+na(a,n)),a=>{const n=a[t],e=l?Ea(da(a,t),l):da(a,t);return[n,u(i)?e:ya(g(fa(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||b(i,a))(a)))]}),a=>!u(a[0])&&!$a(a[1]))):{}},async(a,n,i,l,w,f=!1,E=s,_)=>{const $=u(_)?void 0:Ia(_),N=a=>u($)||b($,a),p=Ia();va(i??{},a=>h(g(ca(a??{}),N),a=>Sa(p,a)));const I=R(p);if(u($)&&!f&&w&&E==s&&m(I)&&b(y,a))return await v("DROP "+J+aa(a)),Oa(y,a),void Oa(d,a);const D=pa(y,a),L=Ia(g(R(D),a=>a==n||N(a)));if(!m(I))if(b(y,a)){if(await A(T([n,...I],async t=>{M(L,t)||(await v(X+aa(a)+"ADD"+aa(t)+r),Sa(D,t))})),o==et&&!b(pa(d,a),n)){const e=t+"_pk_"+(a=>{let t=2166136261;return h(tt.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(Ga([a,n]));await v("CREATE UNIQUE INDEX IF NOT EXISTS"+aa(e)+"ON"+aa(a)+`(${aa(n)})`),Sa(Ta(d,a,Ia),n)}}else await v(W+aa(a)+`(${aa(n)}${r} PRIMARY KEY${O(T(I,a=>e+aa(a)+r))});`),Oa(y,a,Ia([n,...I])),Oa(d,a,Ia([n]));if(await A([...!f&&l?T(R(L),async t=>{t!=n&&(await v(X+aa(a)+"DROP"+aa(t)),M(D,t))}):[]]),f)u(i)?u($)&&await v(z+aa(a)+na(a,E)):await A(fa(i,async(t,e)=>{if(u(t))await v(z+aa(a)+na(a,E)+`AND(${aa(n)}=$1)`,[e]);else if(!m(I)){const i=g(ca(t),N);m(i)||await o(v,a,n,i,{[e]:T(i,a=>c?c(t[a]):t[a])},D)}}));else if(m(I))u($)&&b(y,a)&&await v(z+aa(a)+na(a,E));else{const t=g(R(pa(y,a)),a=>a!=n&&N(a)),e=ya(),s=[];va(i??{},(a,n)=>{ua(e,n,T(t,t=>c?c(a?.[t]):a?.[t])),S(s,n)}),await o(v,a,n,t,e,D),await v(z+aa(a)+na(a,E)+`AND${aa(n)}NOT IN(${ta(s)})`,s)}},async t=>{if(w)return await w(async a=>{const n=v;return v=a,await k(t,()=>{v=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await F(()=>a("ROLLBACK")),t}}]},et=async(a,t,n,i,s)=>{const r=[1];await a("INSERT INTO"+aa(t)+"("+((...a)=>O(T(a,aa),e))(n,...i)+")VALUES"+O(fa(s,a=>"($"+r[0]+++","+ta(a,r)+")"),e)+"ON CONFLICT("+aa(n)+")DO UPDATE SET"+O(T(i,a=>aa(a)+"=excluded."+aa(a)),e),fa(s,(a,t)=>[t,...T(a,a=>a??null)]).flat())},it=(a,t,n,e,i,s,r,[o,c,l],w,y,d,v,f,E,_,$,m)=>{const[N,p,A,h]=nt(t,w,y,f,E,void 0,void 0,m);return at(a,()=>h(async()=>{return await N(),a=(await p(o,c))[q]?.[l]??"null",Ka(Ha(a));var a}),a=>h(async()=>{var t;await N(),await A(o,c,{[q]:{[l]:(t=a()??null,Ga(t,(a,t)=>u(t)?"":t))}},!0,!0)}),n,e,i,r,{[v]:()=>d,destroy:s},0,d)},st=(a,t,n,e,i,s,r,[o,c,[l,w,y,d,v]],f,E,_,$,m,N,p,h,O)=>{const[I,S,b,D]=nt(t,f,E,m,N,p,h,O),R=(a,t)=>A(ha(c,async([n,e,i,s,r],o)=>{var c,l;t&&(c=a,l=o,!ia.hasOwn(c,l))||await b(n,e,a[o],i,s,t,r)})),L=(a,t,n)=>ya(1==n?g(fa(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):g(T(t,t=>[t,a[t]]),([,a])=>!u(a))),C=async(a,t)=>w?await b(y,j,{[q]:u(v)?a:L(a,v,t)},!0,!0,t,void 0,v):null;return at(a,()=>D(async()=>{await I();const a=await(async()=>ya(g(await A(ha(o,async([a,t,n],e)=>[a,await S(e,t,n)])),a=>!$a(a[1]))))(),t=await(async()=>l?(await S(y,j,void 0,d))[q]:{})();return $a(a)&&u(t)?void 0:[a,t]}),(a,t)=>D(async()=>{if(await I(),u(t)){const[t,n]=a();await R(t),await C(n)}else await R(t[0],!0),await C(t[1],!0)}),n,e,i,r,{[$]:()=>_,destroy:s},0,_)},rt=(a,e,i,r,c,l,y,v,f,_,$="getDb",m,N)=>{let p,A,h;const O=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,l),[T,g,I,S]=(a=>{const n=(a=>wa(Ua,E(a)?{[La]:a}:a??{}))(a),e=n[Pa];if(n.mode==Ra){const a=n[La]??t;return[1,e,[a,n[Ca]??j,n[Ma]??Da],Ia(a)]}const{tables:{load:i={},save:r={}}={},values:o={}}=n,c=wa(Ja,o),{load:l,save:w}=c,u=[Ya(l),Ya(w),c[ka],Xa(l),Xa(w)],y=u[2],d=Ia(y),v=Ia(y),f=za(i,{[xa]:null,[Fa]:j,[Ba]:s},xa,a=>b(v,a),a=>Sa(d,a)),_=za(r,{[ka]:null,[Fa]:j,[qa]:0,[ja]:0,[Ba]:null},ka,(a,t)=>b(v,t),(a,t)=>Sa(d,t));return Aa(_,(a,t)=>t[4]??=pa(f,t[0])?.[2]??s),[0,e,[f,_,u],d]})(e);return!T&&a.isMergeable()&&P(0),(T?it:st)(a,O,a=>{let t,n,e=1,i=0,s=0;const l=async(t=!0)=>{const[{d:n,s:i,c:r}]=await O(B+` ${K} d,${V} s,TOTAL_CHANGES() c FROM ${H}${K} JOIN ${H}${V}`);if(e&&(n!=p||i!=A||r!=h)){const o=t&&!s&&!w(p);p=n,A=i,h=r,o&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const o=k(()=>x(async()=>{for(i?r&&await l():(await l(!1),i=1);e&&s;)s=0,await l(!1),e&&(await a(),await l())},y),()=>{n==o&&(n=void 0),e&&(s?v():e&&u(t)&&(t=setInterval(()=>v(!0),1e3*g)))});return n=o,o},f=r(a=>{e&&b(S,a)&&(s=1,d(),o.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,s=0,d(),await k(async()=>await n,async()=>{p=A=h=null,await c(f)})})},a=>a(),y,v,f,I,R(S),async(a,t)=>await a(B+` t.name tn,c.name cn,c.pk OR EXISTS(${B} 1 FROM ${H}index_list(t.name)i,${H}index_info(i.name)ii ${U} i."unique"=1 AND ii.name=c.name AND(${B} count(*) FROM ${H}index_info(i.name))=1)uq FROM ${Q}list()t,${Q}info(t.name)c ${U} t.schema='main'AND t.type IN('table','view')AND t.name IN(${ta(t)})ORDER BY t.name,c.name`,t),_,$,n,m,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,N)},ot=(a,t,n,e,i,s)=>rt(a,e,async(a,t=[])=>T(n.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}),a=>({...a})),a=>t.capi.sqlite3_update_hook(n,(t,n,e,i)=>a(i),0),()=>t.capi.sqlite3_update_hook(n,N,0),i,s,N,3,n);export{ot as createSqliteWasmPersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",n="",e=",",i=a(n),s="true",r=(a,t,n)=>a.replace(t,n),o=Promise,c=a=>(t,n,e)=>a(t)?e?.():n(t),l=globalThis,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=c(w),f=c(u),E=t=>a(t)==i,_=a=>Array.isArray(a),$=a=>a.length,m=a=>0==$(a),N=()=>{},p=a=>new o(a),A=async a=>o.all(a),h=(a,t)=>a.forEach(t),O=(a,t="")=>a.join(t),T=(a,t)=>a.map(t),g=(a,t)=>a.filter(t),I=(a,t=$(a))=>a.splice(0,t),S=(a,...t)=>a.push(...t),b=(a,t)=>a?.has(t)??!1,D=a=>u(a)||0==(a=>a?.size??0)(a),R=a=>[...a?.values()??[]],L=a=>a.clear(),C=(a,t)=>a?.forEach(t),M=(a,t)=>a?.delete(t),P=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},F=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},x=async(a,t)=>{try{return await a()}finally{await t()}},k="_",q="_id",j="SELECT",B="WHERE",U="TABLE",J="ALTER "+U,X="FROM",Y="DELETE "+X,z=j+"*"+X,G="pragma_",H="data_version",K="schema_version",V="pragma_table_",Q="CREATE "+U,W=/\$tableName/g,Z=a=>O(T(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),aa=(a,t=[1])=>O(T(a,()=>"$"+t[0]++),e),ta=(a,t=s)=>B+`(${na(t,Z(a))})`,na=(a,t)=>r(a,W,t),ea=Object,ia=a=>ea.getPrototypeOf(a),sa=ea.entries,ra=a=>!w(a)&&v(ia(a),a=>a==ea.prototype||w(ia(a)),()=>!0),oa=ea.keys,ca=ea.freeze,la=(...a)=>ea.assign(ea.create(null),...a),wa=(a,t,n)=>(ea.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),ua=(a=[])=>{const t=ea.create(null);return h(a,([a,n])=>wa(t,a,n)),t},ya=(a,t)=>(delete a[t],a),da=(a,t)=>h(oa(a),n=>t(a[n],n)),va=(a,t)=>T(sa(a),([a,n])=>t(n,a)),fa=(a,t)=>{const n=ua();return da(a,(a,e)=>wa(n,e,t(a,e))),n},Ea=a=>$(oa(a)),_a=a=>ra(a)&&0==Ea(a),$a=Map,ma=a=>new $a(a),Na=(a,t)=>a?.get(t),pa=(a,t)=>C(a,(a,n)=>t(n,a)),Aa=(a,t)=>{const n=[];return pa(a,(a,e)=>S(n,t(e,a))),n},ha=(a,t,n)=>u(n)?(M(a,t),a):a?.set(t,n),Oa=(a,t,n,e)=>{let i=Na(a,t);return b(a,t)?e?.(i):ha(a,t,i=n()),i},Ta=(a,t,n,e,i=0)=>f((n?Oa:Na)(a,t[i],i>$(t)-2?n:ma),s=>{if(i>$(t)-2)return e?.(s)&&ha(a,t[i]),s;const r=Ta(s,t,n,e,i+1);return D(s)&&ha(a,t[i]),r}),ga=a=>new Set(_(a)||u(a)?a:[a]),Ia=(a,t)=>a?.add(t),Sa="ColumnName",ba="store",Da="json",Ra=ba+"TableName",La=ba+"Id"+Sa,Ca=ba+Sa,Ma="autoLoadIntervalSeconds",Pa="rowId"+Sa,Fa="tableId",xa="tableName",ka="deleteEmptyColumns",qa="deleteEmptyTable",ja="condition",Ba={mode:Da,[Ma]:1},Ua={load:0,save:0,[xa]:t+"_values"},Ja=a=>_(a)?a:void 0,Xa=a=>d(a)||_(a),Ya=(a,t,n,e,i)=>{const s=ma();return da(a,(a,r)=>{const o=(w=la(t,E(a)?{[n]:a}:a),c=ea.values(w),l=Ea(t),c.slice(0,l));var c,l,w;y(o[0])||e(r,o[0])||(i(r,o[0]),ha(s,r,o))}),s},za=JSON.stringify,Ga=JSON.parse,Ha=a=>""===a?void 0:_(a)?T(a,Ha):ra(a)?fa(a,Ha):a,Ka=/^\d+$/,Va=ma(),Qa=ma(),Wa=ma(),Za=(a,t,e,i,s,r,o,c={},l=0,w=[])=>{let d,v,E,N,A,O=0,b=0,R=0,L=0,k=0,q=0,j=0,B=0,U=0;const J={},X=c.destroy;Oa(Va,w,()=>0),Oa(Qa,w,()=>[]),ha(Wa,w,(Na(Wa,w)??0)+1);const Y=ma(),[z,G,H,K,V]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!_a(a)||!_a(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!_a(a)||!_a(t),t.setContent]:P(0))(o,a,l),[Q,W,Z]=(a=>{let t;const[e,i]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{Ka.test(t)&&$(a)<1e3&&S(a,t)}]})(),s=ma(),r=(a,e,i,r)=>{let o,c=!1;if(h(((a,t=[n])=>{const e=[],i=(a,n)=>n==$(t)?S(e,a):y(t[n])?C(a,a=>i(a,n+1)):h([t[n],null],t=>i(Na(a,t),n+1));return i(a,0),e})(e,i),n=>C(n,n=>{const e=()=>Na(s,n)[0](t,...i??[],...r);a?(a=>{try{return a()}catch(a){(a=>{c||(o=a),c=!0})?.(a)}})(e):e()})),c)throw o};return[(i,r,o,c=[],l=()=>[])=>{t??=a();const w=e(1);return ha(s,w,[i,r,o,c,l]),Ia(Ta(r,o??[n],ga),w),w},(a,t,...n)=>r(!1,a,t,n),a=>f(Na(s,a),([,t,e])=>(Ta(t,e??[n],void 0,t=>(M(t,a),D(t)?1:0)),ha(s,a),i(a),e)),a=>f(Na(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const o=$(r);o==$(n)?a(t,...r,...i(r)):y(n[o])?h(e[o]?.(...r)??[],a=>s(...r,a)):s(...r,n[o])};s()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>Ea),aa=a=>{a!=O&&(O=a,W(Y,void 0,O))},ta=()=>{Na(Wa,w)||Na(Va,w)||!m(Na(Qa,w)??[])||(ha(Va,w),ha(Qa,w),ha(Wa,w))},na=t=>{(z&&_(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ea=async()=>{da()&&a.__?.[0]?.()&&await wa()},ia=a=>x(()=>v=a,()=>{v==a&&(v=void 0)}),sa=async a=>(2!=O&&(await x(async()=>{aa(1),b++,await fa(()=>F(async()=>{const n=await t();_(n)?na(n):u(n)&&a?V(a):u(n)||P(1,n)},t=>{r?.(t),a&&V(a)}))},()=>aa(0)),await ea()),Ea),ra=async()=>{const a=j;j=0,a&&a==L&&!U&&(2==O?j=a:await sa())},oa=async a=>{const t=++L;let n=!0;if(await la(!0),t==L&&!U){const e=F(async()=>{const a=await i(async(a,e)=>{if(t==L&&!U)if(e||a){const t=n||2==O||!!q;k++,t&&q++,await x(async()=>{aa(1),b++,await(t?fa(()=>na(e??a)):(()=>{try{return na(e??a)}finally{aa(0)}})())},()=>{t&&q--,--k||aa(0)}),k||await ea()}else 2==O?j=t:await sa()});t!=L||U?u(a)||await s(a):d=a},r);await ia(e),t!=L||U||await x(()=>sa(a),()=>{n=!1})}return Ea},la=async(a=!1)=>{j=0,a||L++;const t=v,n=d;return d=void 0,await ia(x(async()=>{await t},async()=>{u(n)||await F(()=>s(n),r)})),Ea},wa=async a=>(1!=O&&await x(()=>x(async()=>{aa(2),R++,await fa(()=>F(()=>e(G,a),r))},()=>aa(0)),ra),Ea),ua=async()=>{const t=++B;return await ya(!0),t!=B||U||(await wa(),t!=B||U||(E=a.addDidFinishTransactionListener(()=>{if(t==B&&!U){const a=H();K(a)&&F(()=>wa(a))}}))),Ea},ya=async(t=!1)=>{t||B++;const n=E;return E=void 0,u(n)||a.delListener(n),Ea},da=()=>!u(E),va=async(a=!1)=>{const[t,n]=a?[ya,la]:[la,ya];return await x(()=>t(),async()=>{await n()}),Ea},fa=async(...a)=>{let t,n=!1;const e=p(e=>m(a)?e():S(Na(Qa,w),...T(a,(i,s)=>{const o=s==$(a)-1;return[async()=>{let a;A=p(t=>a=t),await x(async()=>{try{await F(i,r)}catch(a){n||(n=!0,t=a)}o&&e()},()=>{A=void 0,a()})},o?e:void 0,J]})));if(await(async()=>{if(!Na(Va,w)){ha(Va,w,1);const a=Na(Qa,w);let t=0;await x(async()=>{for(;t<$(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{I(a,t),ha(Va,w,0),ta()})}})(),await e,n)throw t;return Ea},Ea={load:sa,startAutoLoad:oa,stopAutoLoad:la,isAutoLoading:()=>!u(d),save:wa,startAutoSave:ua,stopAutoSave:ya,isAutoSaving:da,startAutoPersisting:async(a,t=!1)=>{const[n,e]=t?[ua,oa]:[oa,ua];return await n(a),await e(a),Ea},stopAutoPersisting:va,getStatus:()=>O,addStatusListener:a=>Q(a,Y),delListener:t=>(Z(t),a),schedule:fa,getStore:()=>a,getStats:()=>({loads:b,saves:R}),...c,destroy:async()=>(u(N)&&(U=1,N=(async()=>{const a=Na(Qa,w),t=g(a,([,a,t])=>t!=J||(a?.(),!1)),n=A;I(a),S(a,...t),await x(()=>x(()=>x(va,()=>n),()=>X?.()),()=>{const a=(Na(Wa,w)??1)-1;ha(Wa,w,a||void 0),ta()})})()),await N,Ea)};return ca(Ea)},at=new l.TextEncoder,tt=(a,n,i,r,o=nt,c,l,w)=>{const y=ma(),d=ma();let v=a;return[async()=>{L(y),L(d),h(await i(v,n),({tn:a,cn:t,uq:n})=>{Ia(Oa(y,a,ga),t),n&&Ia(Oa(d,a,ga),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:ga(e);return((a,t)=>b(Na(y,a),t))(a,t)?ua(g(T(await v(z+Z(a)+ta(a,n)),a=>{const n=a[t],e=l?fa(ya(a,t),l):ya(a,t);return[n,u(i)?e:ua(g(va(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||b(i,a))(a)))]}),a=>!u(a[0])&&!_a(a[1]))):{}},async(a,n,i,l,w,f=!1,E=s,_)=>{const $=u(_)?void 0:ga(_),N=a=>u($)||b($,a),p=ga();da(i??{},a=>h(g(oa(a??{}),N),a=>Ia(p,a)));const I=R(p);if(u($)&&!f&&w&&E==s&&m(I)&&b(y,a))return await v("DROP "+U+Z(a)),ha(y,a),void ha(d,a);const D=Na(y,a),L=ga(g(R(D),a=>a==n||N(a)));if(!m(I))if(b(y,a)){if(await A(T([n,...I],async t=>{M(L,t)||(await v(J+Z(a)+"ADD"+Z(t)+r),Ia(D,t))})),o==nt&&!b(Na(d,a),n)){const e=t+"_pk_"+(a=>{let t=2166136261;return h(at.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(za([a,n]));await v("CREATE UNIQUE INDEX IF NOT EXISTS"+Z(e)+"ON"+Z(a)+`(${Z(n)})`),Ia(Oa(d,a,ga),n)}}else await v(Q+Z(a)+`(${Z(n)}${r} PRIMARY KEY${O(T(I,a=>e+Z(a)+r))});`),ha(y,a,ga([n,...I])),ha(d,a,ga([n]));if(await A([...!f&&l?T(R(L),async t=>{t!=n&&(await v(J+Z(a)+"DROP"+Z(t)),M(D,t))}):[]]),f)u(i)?u($)&&await v(Y+Z(a)+ta(a,E)):await A(va(i,async(t,e)=>{if(u(t))await v(Y+Z(a)+ta(a,E)+`AND(${Z(n)}=$1)`,[e]);else if(!m(I)){const i=g(oa(t),N);m(i)||await o(v,a,n,i,{[e]:T(i,a=>c?c(t[a]):t[a])},D)}}));else if(m(I))u($)&&b(y,a)&&await v(Y+Z(a)+ta(a,E));else{const t=g(R(Na(y,a)),a=>a!=n&&N(a)),e=ua(),s=[];da(i??{},(a,n)=>{wa(e,n,T(t,t=>c?c(a?.[t]):a?.[t])),S(s,n)}),await o(v,a,n,t,e,D),await v(Y+Z(a)+ta(a,E)+`AND${Z(n)}NOT IN(${aa(s)})`,s)}},async t=>{if(w)return await w(async a=>{const n=v;return v=a,await x(t,()=>{v=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await F(()=>a("ROLLBACK")),t}}]},nt=async(a,t,n,i,s)=>{const r=[1];await a("INSERT INTO"+Z(t)+"("+((...a)=>O(T(a,Z),e))(n,...i)+")VALUES"+O(va(s,a=>"($"+r[0]+++","+aa(a,r)+")"),e)+"ON CONFLICT("+Z(n)+")DO UPDATE SET"+O(T(i,a=>Z(a)+"=excluded."+Z(a)),e),va(s,(a,t)=>[t,...T(a,a=>a??null)]).flat())},et=(a,t,n,e,i,s,r,[o,c,l],w,y,d,v,f,E,_,$,m)=>{const[N,p,A,h]=tt(t,w,y,f,E,void 0,void 0,m);return Za(a,()=>h(async()=>{return await N(),a=(await p(o,c))[k]?.[l]??"null",Ha(Ga(a));var a}),a=>h(async()=>{var t;await N(),await A(o,c,{[k]:{[l]:(t=a()??null,za(t,(a,t)=>u(t)?"":t))}},!0,!0)}),n,e,i,r,{[v]:()=>d,destroy:s},0,d)},it=(a,t,n,e,i,s,r,[o,c,[l,w,y,d,v]],f,E,_,$,m,N,p,h,O)=>{const[I,S,b,D]=tt(t,f,E,m,N,p,h,O),R=(a,t)=>A(Aa(c,async([n,e,i,s,r],o)=>{var c,l;t&&(c=a,l=o,!ea.hasOwn(c,l))||await b(n,e,a[o],i,s,t,r)})),L=(a,t,n)=>ua(1==n?g(va(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):g(T(t,t=>[t,a[t]]),([,a])=>!u(a))),C=async(a,t)=>w?await b(y,q,{[k]:u(v)?a:L(a,v,t)},!0,!0,t,void 0,v):null;return Za(a,()=>D(async()=>{await I();const a=await(async()=>ua(g(await A(Aa(o,async([a,t,n],e)=>[a,await S(e,t,n)])),a=>!_a(a[1]))))(),t=await(async()=>l?(await S(y,q,void 0,d))[k]:{})();return _a(a)&&u(t)?void 0:[a,t]}),(a,t)=>D(async()=>{if(await I(),u(t)){const[t,n]=a();await R(t),await C(n)}else await R(t[0],!0),await C(t[1],!0)}),n,e,i,r,{[$]:()=>_,destroy:s},0,_)},st=(a,e,i,r,c,l,y,v,f,_,$="getDb",m,N)=>{let p,A,h;const O=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,l),[T,g,I,S]=(a=>{const n=(a=>la(Ba,E(a)?{[Ra]:a}:a??{}))(a),e=n[Ma];if(n.mode==Da){const a=n[Ra]??t;return[1,e,[a,n[La]??q,n[Ca]??ba],ga(a)]}const{tables:{load:i={},save:r={}}={},values:o={}}=n,c=la(Ua,o),{load:l,save:w}=c,u=[Xa(l),Xa(w),c[xa],Ja(l),Ja(w)],y=u[2],d=ga(y),v=ga(y),f=Ya(i,{[Fa]:null,[Pa]:q,[ja]:s},Fa,a=>b(v,a),a=>Ia(d,a)),_=Ya(r,{[xa]:null,[Pa]:q,[ka]:0,[qa]:0,[ja]:null},xa,(a,t)=>b(v,t),(a,t)=>Ia(d,t));return pa(_,(a,t)=>t[4]??=Na(f,t[0])?.[2]??s),[0,e,[f,_,u],d]})(e);return!T&&a.isMergeable()&&P(0),(T?et:it)(a,O,a=>{let t,n,e=1,i=0,s=0;const l=async(t=!0)=>{const[{d:n,s:i,c:r}]=await O(j+` ${H} d,${K} s,TOTAL_CHANGES() c FROM ${G}${H} JOIN ${G}${K}`);if(e&&(n!=p||i!=A||r!=h)){const o=t&&!s&&!w(p);p=n,A=i,h=r,o&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const o=x(()=>((t,n)=>F(async()=>{for(i?r&&await l():(await l(!1),i=1);e&&s;)s=0,await l(!1),e&&(await a(),await l())},a=>{F(()=>n?.(a))}))(0,y),()=>{n==o&&(n=void 0),e&&(s?v():e&&u(t)&&(t=setInterval(()=>v(!0),1e3*g)))});return n=o,o},f=r(a=>{e&&b(S,a)&&(s=1,d(),o.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,s=0,d(),await x(async()=>await n,async()=>{p=A=h=null,await c(f)})})},a=>a(),y,v,f,I,R(S),async(a,t)=>await a(j+` t.name tn,c.name cn,c.pk OR EXISTS(${j} 1 FROM ${G}index_list(t.name)i,${G}index_info(i.name)ii ${B} i."unique"=1 AND ii.name=c.name AND(${j} count(*) FROM ${G}index_info(i.name))=1)uq FROM ${V}list()t,${V}info(t.name)c ${B} t.schema='main'AND t.type IN('table','view')AND t.name IN(${aa(t)})ORDER BY t.name,c.name`,t),_,$,n,m,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,N)},rt=(a,t,n,e,i,s)=>st(a,e,async(a,t=[])=>T(n.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}),a=>({...a})),a=>t.capi.sqlite3_update_hook(n,(t,n,e,i)=>a(i),0),()=>t.capi.sqlite3_update_hook(n,N,0),i,s,N,3,n);export{rt as createSqliteWasmPersister};
1
+ const a=a=>typeof a,t="tinybase",n="",e=",",i=a(n),s="true",r=(a,t,n)=>a.replace(t,n),o=Promise,c=a=>(t,n,e)=>a(t)?e?.():n(t),l=globalThis,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=c(w),f=c(u),E=t=>a(t)==i,_=a=>Array.isArray(a),$=a=>a.length,m=a=>0==$(a),N=()=>{},p=a=>new o(a),A=async a=>o.all(a),h=(a,t)=>a.forEach(t),O=(a,t="")=>a.join(t),T=(a,t)=>a.map(t),g=(a,t)=>a.filter(t),I=(a,t=$(a))=>a.splice(0,t),S=(a,...t)=>a.push(...t),b=(a,t)=>a?.has(t)??!1,D=a=>u(a)||0==(a=>a?.size??0)(a),R=a=>[...a?.values()??[]],L=a=>a.clear(),C=(a,t)=>a?.forEach(t),M=(a,t)=>a?.delete(t),P=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},F=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},x=(a,t)=>F(a,a=>{F(()=>t?.(a))}),k=async(a,t)=>{try{return await a()}finally{await t()}},q="_",j="_id",B="SELECT",U="WHERE",J="TABLE",X="ALTER "+J,Y="FROM",z="DELETE "+Y,G=B+"*"+Y,H="pragma_",K="data_version",V="schema_version",Q="pragma_table_",W="CREATE "+J,Z=/\$tableName/g,aa=a=>O(T(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),ta=(a,t=[1])=>O(T(a,()=>"$"+t[0]++),e),na=(a,t=s)=>U+`(${ea(t,aa(a))})`,ea=(a,t)=>r(a,Z,t),ia=Object,sa=a=>ia.getPrototypeOf(a),ra=ia.entries,oa=a=>!w(a)&&v(sa(a),a=>a==ia.prototype||w(sa(a)),()=>!0),ca=ia.keys,la=ia.freeze,wa=(...a)=>ia.assign(ia.create(null),...a),ua=(a,t,n)=>(ia.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),ya=(a=[])=>{const t=ia.create(null);return h(a,([a,n])=>ua(t,a,n)),t},da=(a,t)=>(delete a[t],a),va=(a,t)=>h(ca(a),n=>t(a[n],n)),fa=(a,t)=>T(ra(a),([a,n])=>t(n,a)),Ea=(a,t)=>{const n=ya();return va(a,(a,e)=>ua(n,e,t(a,e))),n},_a=a=>$(ca(a)),$a=a=>oa(a)&&0==_a(a),ma=Map,Na=a=>new ma(a),pa=(a,t)=>a?.get(t),Aa=(a,t)=>C(a,(a,n)=>t(n,a)),ha=(a,t)=>{const n=[];return Aa(a,(a,e)=>S(n,t(e,a))),n},Oa=(a,t,n)=>u(n)?(M(a,t),a):a?.set(t,n),Ta=(a,t,n,e)=>{let i=pa(a,t);return b(a,t)?e?.(i):Oa(a,t,i=n()),i},ga=(a,t,n,e,i=0)=>f((n?Ta:pa)(a,t[i],i>$(t)-2?n:Na),s=>{if(i>$(t)-2)return e?.(s)&&Oa(a,t[i]),s;const r=ga(s,t,n,e,i+1);return D(s)&&Oa(a,t[i]),r}),Ia=a=>new Set(_(a)||u(a)?a:[a]),Sa=(a,t)=>a?.add(t),ba="ColumnName",Da="store",Ra="json",La=Da+"TableName",Ca=Da+"Id"+ba,Ma=Da+ba,Pa="autoLoadIntervalSeconds",Fa="rowId"+ba,xa="tableId",ka="tableName",qa="deleteEmptyColumns",ja="deleteEmptyTable",Ba="condition",Ua={mode:Ra,[Pa]:1},Ja={load:0,save:0,[ka]:t+"_values"},Xa=a=>_(a)?a:void 0,Ya=a=>d(a)||_(a),za=(a,t,n,e,i)=>{const s=Na();return va(a,(a,r)=>{const o=(w=wa(t,E(a)?{[n]:a}:a),c=ia.values(w),l=_a(t),c.slice(0,l));var c,l,w;y(o[0])||e(r,o[0])||(i(r,o[0]),Oa(s,r,o))}),s},Ga=JSON.stringify,Ha=JSON.parse,Ka=a=>""===a?void 0:_(a)?T(a,Ka):oa(a)?Ea(a,Ka):a,Va=/^\d+$/,Qa=Na(),Wa=Na(),Za=Na(),at=(a,t,e,i,s,r,o,c={},l=0,w=[])=>{let d,v,E,N,A,O=0,b=0,R=0,L=0,q=0,j=0,B=0,U=0,J=0;const X={},Y=c.destroy;Ta(Qa,w,()=>0),Ta(Wa,w,()=>[]),Oa(Za,w,(pa(Za,w)??0)+1);const z=Na(),[G,H,K,V,Q]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!$a(a)||!$a(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!$a(a)||!$a(t),t.setContent]:P(0))(o,a,l),[W,Z,aa]=(a=>{let t;const[e,i]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{Va.test(t)&&$(a)<1e3&&S(a,t)}]})(),s=Na(),r=(a,e,i,r)=>{let o,c=!1;if(h(((a,t=[n])=>{const e=[],i=(a,n)=>n==$(t)?S(e,a):y(t[n])?C(a,a=>i(a,n+1)):h([t[n],null],t=>i(pa(a,t),n+1));return i(a,0),e})(e,i),n=>C(n,n=>{const e=()=>pa(s,n)[0](t,...i??[],...r);a?(a=>{try{return a()}catch(a){(a=>{c||(o=a),c=!0})?.(a)}})(e):e()})),c)throw o};return[(i,r,o,c=[],l=()=>[])=>{t??=a();const w=e(1);return Oa(s,w,[i,r,o,c,l]),Sa(ga(r,o??[n],Ia),w),w},(a,t,...n)=>r(!1,a,t,n),a=>f(pa(s,a),([,t,e])=>(ga(t,e??[n],void 0,t=>(M(t,a),D(t)?1:0)),Oa(s,a),i(a),e)),a=>f(pa(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const o=$(r);o==$(n)?a(t,...r,...i(r)):y(n[o])?h(e[o]?.(...r)??[],a=>s(...r,a)):s(...r,n[o])};s()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>_a),ta=a=>{a!=O&&(O=a,Z(z,void 0,O))},na=()=>{pa(Za,w)||pa(Qa,w)||!m(pa(Wa,w)??[])||(Oa(Qa,w),Oa(Wa,w),Oa(Za,w))},ea=t=>{(G&&_(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ia=async()=>{va()&&a.__?.[0]?.()&&await ua()},sa=a=>k(()=>v=a,()=>{v==a&&(v=void 0)}),ra=async a=>(2!=O&&(await k(async()=>{ta(1),b++,await Ea(()=>F(async()=>{const n=await t();_(n)?ea(n):u(n)&&a?Q(a):u(n)||P(1,n)},t=>{r?.(t),a&&Q(a)}))},()=>ta(0)),await ia()),_a),oa=async()=>{const a=B;B=0,a&&a==L&&!J&&(2==O?B=a:await ra())},ca=async a=>{const t=++L;let n=!0;if(await wa(!0),t==L&&!J){const e=F(async()=>{const a=await i(async(a,e)=>{if(t==L&&!J)if(e||a){const t=n||2==O||!!j;q++,t&&j++,await k(async()=>{ta(1),b++,await(t?Ea(()=>ea(e??a)):(()=>{try{return ea(e??a)}finally{ta(0)}})())},()=>{t&&j--,--q||ta(0)}),q||await ia()}else 2==O?B=t:await ra()});t!=L||J?u(a)||await s(a):d=a},r);await sa(e),t!=L||J||await k(()=>ra(a),()=>{n=!1})}return _a},wa=async(a=!1)=>{B=0,a||L++;const t=v,n=d;return d=void 0,await sa(k(async()=>{await t},async()=>{u(n)||await F(()=>s(n),r)})),_a},ua=async a=>(1!=O&&await k(()=>k(async()=>{ta(2),R++,await Ea(()=>F(()=>e(H,a),r))},()=>ta(0)),oa),_a),ya=async()=>{const t=++U;return await da(!0),t!=U||J||(await ua(),t!=U||J||(E=a.addDidFinishTransactionListener(()=>{if(t==U&&!J){const a=K();V(a)&&F(()=>ua(a))}}))),_a},da=async(t=!1)=>{t||U++;const n=E;return E=void 0,u(n)||a.delListener(n),_a},va=()=>!u(E),fa=async(a=!1)=>{const[t,n]=a?[da,wa]:[wa,da];return await k(()=>t(),async()=>{await n()}),_a},Ea=async(...a)=>{let t,n=!1;const e=p(e=>m(a)?e():S(pa(Wa,w),...T(a,(i,s)=>{const o=s==$(a)-1;return[async()=>{let a;A=p(t=>a=t),await k(async()=>{try{await F(i,r)}catch(a){n||(n=!0,t=a)}o&&e()},()=>{A=void 0,a()})},o?e:void 0,X]})));if(await(async()=>{if(!pa(Qa,w)){Oa(Qa,w,1);const a=pa(Wa,w);let t=0;await k(async()=>{for(;t<$(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{I(a,t),Oa(Qa,w,0),na()})}})(),await e,n)throw t;return _a},_a={load:ra,startAutoLoad:ca,stopAutoLoad:wa,isAutoLoading:()=>!u(d),save:ua,startAutoSave:ya,stopAutoSave:da,isAutoSaving:va,startAutoPersisting:async(a,t=!1)=>{const[n,e,i,s]=t?[ya,ca,da,wa]:[ca,ya,wa,da],r=n(a),o=t?U:L;await r;const c=e(a),l=t?L:U;try{await c}catch(a){throw l==(t?L:U)&&await x(s),o==(t?U:L)&&await x(i),a}return _a},stopAutoPersisting:fa,getStatus:()=>O,addStatusListener:a=>W(a,z),delListener:t=>(aa(t),a),schedule:Ea,getStore:()=>a,getStats:()=>({loads:b,saves:R}),...c,destroy:async()=>(u(N)&&(J=1,N=(async()=>{const a=pa(Wa,w),t=g(a,([,a,t])=>t!=X||(a?.(),!1)),n=A;I(a),S(a,...t),await k(()=>k(()=>k(fa,()=>n),()=>Y?.()),()=>{const a=(pa(Za,w)??1)-1;Oa(Za,w,a||void 0),na()})})()),await N,_a)};return la(_a)},tt=new l.TextEncoder,nt=(a,n,i,r,o=et,c,l,w)=>{const y=Na(),d=Na();let v=a;return[async()=>{L(y),L(d),h(await i(v,n),({tn:a,cn:t,uq:n})=>{Sa(Ta(y,a,Ia),t),n&&Sa(Ta(d,a,Ia),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:Ia(e);return((a,t)=>b(pa(y,a),t))(a,t)?ya(g(T(await v(G+aa(a)+na(a,n)),a=>{const n=a[t],e=l?Ea(da(a,t),l):da(a,t);return[n,u(i)?e:ya(g(fa(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||b(i,a))(a)))]}),a=>!u(a[0])&&!$a(a[1]))):{}},async(a,n,i,l,w,f=!1,E=s,_)=>{const $=u(_)?void 0:Ia(_),N=a=>u($)||b($,a),p=Ia();va(i??{},a=>h(g(ca(a??{}),N),a=>Sa(p,a)));const I=R(p);if(u($)&&!f&&w&&E==s&&m(I)&&b(y,a))return await v("DROP "+J+aa(a)),Oa(y,a),void Oa(d,a);const D=pa(y,a),L=Ia(g(R(D),a=>a==n||N(a)));if(!m(I))if(b(y,a)){if(await A(T([n,...I],async t=>{M(L,t)||(await v(X+aa(a)+"ADD"+aa(t)+r),Sa(D,t))})),o==et&&!b(pa(d,a),n)){const e=t+"_pk_"+(a=>{let t=2166136261;return h(tt.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(Ga([a,n]));await v("CREATE UNIQUE INDEX IF NOT EXISTS"+aa(e)+"ON"+aa(a)+`(${aa(n)})`),Sa(Ta(d,a,Ia),n)}}else await v(W+aa(a)+`(${aa(n)}${r} PRIMARY KEY${O(T(I,a=>e+aa(a)+r))});`),Oa(y,a,Ia([n,...I])),Oa(d,a,Ia([n]));if(await A([...!f&&l?T(R(L),async t=>{t!=n&&(await v(X+aa(a)+"DROP"+aa(t)),M(D,t))}):[]]),f)u(i)?u($)&&await v(z+aa(a)+na(a,E)):await A(fa(i,async(t,e)=>{if(u(t))await v(z+aa(a)+na(a,E)+`AND(${aa(n)}=$1)`,[e]);else if(!m(I)){const i=g(ca(t),N);m(i)||await o(v,a,n,i,{[e]:T(i,a=>c?c(t[a]):t[a])},D)}}));else if(m(I))u($)&&b(y,a)&&await v(z+aa(a)+na(a,E));else{const t=g(R(pa(y,a)),a=>a!=n&&N(a)),e=ya(),s=[];va(i??{},(a,n)=>{ua(e,n,T(t,t=>c?c(a?.[t]):a?.[t])),S(s,n)}),await o(v,a,n,t,e,D),await v(z+aa(a)+na(a,E)+`AND${aa(n)}NOT IN(${ta(s)})`,s)}},async t=>{if(w)return await w(async a=>{const n=v;return v=a,await k(t,()=>{v=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await F(()=>a("ROLLBACK")),t}}]},et=async(a,t,n,i,s)=>{const r=[1];await a("INSERT INTO"+aa(t)+"("+((...a)=>O(T(a,aa),e))(n,...i)+")VALUES"+O(fa(s,a=>"($"+r[0]+++","+ta(a,r)+")"),e)+"ON CONFLICT("+aa(n)+")DO UPDATE SET"+O(T(i,a=>aa(a)+"=excluded."+aa(a)),e),fa(s,(a,t)=>[t,...T(a,a=>a??null)]).flat())},it=(a,t,n,e,i,s,r,[o,c,l],w,y,d,v,f,E,_,$,m)=>{const[N,p,A,h]=nt(t,w,y,f,E,void 0,void 0,m);return at(a,()=>h(async()=>{return await N(),a=(await p(o,c))[q]?.[l]??"null",Ka(Ha(a));var a}),a=>h(async()=>{var t;await N(),await A(o,c,{[q]:{[l]:(t=a()??null,Ga(t,(a,t)=>u(t)?"":t))}},!0,!0)}),n,e,i,r,{[v]:()=>d,destroy:s},0,d)},st=(a,t,n,e,i,s,r,[o,c,[l,w,y,d,v]],f,E,_,$,m,N,p,h,O)=>{const[I,S,b,D]=nt(t,f,E,m,N,p,h,O),R=(a,t)=>A(ha(c,async([n,e,i,s,r],o)=>{var c,l;t&&(c=a,l=o,!ia.hasOwn(c,l))||await b(n,e,a[o],i,s,t,r)})),L=(a,t,n)=>ya(1==n?g(fa(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):g(T(t,t=>[t,a[t]]),([,a])=>!u(a))),C=async(a,t)=>w?await b(y,j,{[q]:u(v)?a:L(a,v,t)},!0,!0,t,void 0,v):null;return at(a,()=>D(async()=>{await I();const a=await(async()=>ya(g(await A(ha(o,async([a,t,n],e)=>[a,await S(e,t,n)])),a=>!$a(a[1]))))(),t=await(async()=>l?(await S(y,j,void 0,d))[q]:{})();return $a(a)&&u(t)?void 0:[a,t]}),(a,t)=>D(async()=>{if(await I(),u(t)){const[t,n]=a();await R(t),await C(n)}else await R(t[0],!0),await C(t[1],!0)}),n,e,i,r,{[$]:()=>_,destroy:s},0,_)},rt=(a,e,i,r,c,l,y,v,f,_,$="getDb",m,N)=>{let p,A,h;const O=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,l),[T,g,I,S]=(a=>{const n=(a=>wa(Ua,E(a)?{[La]:a}:a??{}))(a),e=n[Pa];if(n.mode==Ra){const a=n[La]??t;return[1,e,[a,n[Ca]??j,n[Ma]??Da],Ia(a)]}const{tables:{load:i={},save:r={}}={},values:o={}}=n,c=wa(Ja,o),{load:l,save:w}=c,u=[Ya(l),Ya(w),c[ka],Xa(l),Xa(w)],y=u[2],d=Ia(y),v=Ia(y),f=za(i,{[xa]:null,[Fa]:j,[Ba]:s},xa,a=>b(v,a),a=>Sa(d,a)),_=za(r,{[ka]:null,[Fa]:j,[qa]:0,[ja]:0,[Ba]:null},ka,(a,t)=>b(v,t),(a,t)=>Sa(d,t));return Aa(_,(a,t)=>t[4]??=pa(f,t[0])?.[2]??s),[0,e,[f,_,u],d]})(e);return!T&&a.isMergeable()&&P(0),(T?it:st)(a,O,a=>{let t,n,e=1,i=0,s=0;const l=async(t=!0)=>{const[{d:n,s:i,c:r}]=await O(B+` ${K} d,${V} s,TOTAL_CHANGES() c FROM ${H}${K} JOIN ${H}${V}`);if(e&&(n!=p||i!=A||r!=h)){const o=t&&!s&&!w(p);p=n,A=i,h=r,o&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const o=k(()=>x(async()=>{for(i?r&&await l():(await l(!1),i=1);e&&s;)s=0,await l(!1),e&&(await a(),await l())},y),()=>{n==o&&(n=void 0),e&&(s?v():e&&u(t)&&(t=setInterval(()=>v(!0),1e3*g)))});return n=o,o},f=r(a=>{e&&b(S,a)&&(s=1,d(),o.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,s=0,d(),await k(async()=>await n,async()=>{p=A=h=null,await c(f)})})},a=>a(),y,v,f,I,R(S),async(a,t)=>await a(B+` t.name tn,c.name cn,c.pk OR EXISTS(${B} 1 FROM ${H}index_list(t.name)i,${H}index_info(i.name)ii ${U} i."unique"=1 AND ii.name=c.name AND(${B} count(*) FROM ${H}index_info(i.name))=1)uq FROM ${Q}list()t,${Q}info(t.name)c ${U} t.schema='main'AND t.type IN('table','view')AND t.name IN(${ta(t)})ORDER BY t.name,c.name`,t),_,$,n,m,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,N)},ot=(a,t,n,e,i,s)=>rt(a,e,async(a,t=[])=>T(n.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}),a=>({...a})),a=>t.capi.sqlite3_update_hook(n,(t,n,e,i)=>a(i),0),()=>t.capi.sqlite3_update_hook(n,N,0),i,s,N,3,n);export{ot as createSqliteWasmPersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",n="",e=",",i=a(n),s="true",r=(a,t,n)=>a.replace(t,n),c=Promise,o=a=>(t,n,e)=>a(t)?e?.():n(t),l=globalThis,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=o(w),f=o(u),E=t=>a(t)==i,$=a=>Array.isArray(a),m=a=>a.length,N=a=>0==m(a),_=()=>{},A=a=>new c(a),O=async a=>c.all(a),h=(a,t)=>a?.has(t)??!1,p=a=>u(a)||0==(a=>a?.size??0)(a),g=a=>[...a?.values()??[]],T=a=>a.clear(),I=(a,t)=>a?.forEach(t),S=(a,t)=>a?.delete(t),D=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},R=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},b=async(a,t)=>{try{return await a()}finally{await t()}},L=(a,t)=>a.forEach(t),C=(a,t="")=>a.join(t),M=(a,t)=>a.map(t),P=(a,t)=>a.filter(t),F=(a,t=m(a))=>a.splice(0,t),x=(a,...t)=>a.push(...t),B="_",U="_id",j="SELECT",k="WHERE",q="TABLE",J="ALTER "+q,X="FROM",Y="DELETE "+X,z=j+"*"+X,G="pragma_",H="data_version",K="schema_version",Q="pragma_table_",V="CREATE "+q,W=/\$tableName/g,Z=a=>C(M(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),aa=(a,t=[1])=>C(M(a,()=>"$"+t[0]++),e),ta=(a,t=s)=>k+`(${na(t,Z(a))})`,na=(a,t)=>r(a,W,t),ea=Object,ia=a=>ea.getPrototypeOf(a),sa=ea.entries,ra=a=>!w(a)&&v(ia(a),a=>a==ea.prototype||w(ia(a)),()=>!0),ca=ea.keys,oa=ea.freeze,la=(...a)=>ea.assign(ea.create(null),...a),wa=(a,t,n)=>(ea.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),ua=(a=[])=>{const t=ea.create(null);return L(a,([a,n])=>wa(t,a,n)),t},ya=(a,t)=>(delete a[t],a),da=(a,t)=>L(ca(a),n=>t(a[n],n)),va=(a,t)=>M(sa(a),([a,n])=>t(n,a)),fa=(a,t)=>{const n=ua();return da(a,(a,e)=>wa(n,e,t(a,e))),n},Ea=a=>m(ca(a)),$a=a=>ra(a)&&0==Ea(a),ma=Map,Na=a=>new ma(a),_a=(a,t)=>a?.get(t),Aa=(a,t)=>I(a,(a,n)=>t(n,a)),Oa=(a,t)=>{const n=[];return Aa(a,(a,e)=>x(n,t(e,a))),n},ha=(a,t,n)=>u(n)?(S(a,t),a):a?.set(t,n),pa=(a,t,n,e)=>{let i=_a(a,t);return h(a,t)?e?.(i):ha(a,t,i=n()),i},ga=(a,t,n,e,i=0)=>f((n?pa:_a)(a,t[i],i>m(t)-2?n:Na),s=>{if(i>m(t)-2)return e?.(s)&&ha(a,t[i]),s;const r=ga(s,t,n,e,i+1);return p(s)&&ha(a,t[i]),r}),Ta=a=>new Set($(a)||u(a)?a:[a]),Ia=(a,t)=>a?.add(t),Sa="ColumnName",Da="store",Ra="json",ba=Da+"TableName",La=Da+"Id"+Sa,Ca=Da+Sa,Ma="autoLoadIntervalSeconds",Pa="rowId"+Sa,Fa="tableId",xa="tableName",Ba="deleteEmptyColumns",Ua="deleteEmptyTable",ja="condition",ka={mode:Ra,[Ma]:1},qa={load:0,save:0,[xa]:t+"_values"},Ja=a=>$(a)?a:void 0,Xa=a=>d(a)||$(a),Ya=(a,t,n,e,i)=>{const s=Na();return da(a,(a,r)=>{const c=(w=la(t,E(a)?{[n]:a}:a),o=ea.values(w),l=Ea(t),o.slice(0,l));var o,l,w;y(c[0])||e(r,c[0])||(i(r,c[0]),ha(s,r,c))}),s},za=JSON.stringify,Ga=JSON.parse,Ha=a=>""===a?void 0:$(a)?M(a,Ha):ra(a)?fa(a,Ha):a,Ka=/^\d+$/,Qa=Na(),Va=Na(),Wa=Na(),Za=(a,t,e,i,s,r,c,o={},l=0,w=[])=>{let d,v,E,_,O,h=0,g=0,T=0,C=0,B=0,U=0,j=0,k=0,q=0;const J={},X=o.destroy;pa(Qa,w,()=>0),pa(Va,w,()=>[]),ha(Wa,w,(_a(Wa,w)??0)+1);const Y=Na(),[z,G,H,K,Q]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!$a(a)||!$a(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!$a(a)||!$a(t),t.setContent]:D(0))(c,a,l),[V,W,Z]=(a=>{let t;const[e,i]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{Ka.test(t)&&m(a)<1e3&&x(a,t)}]})(),s=Na(),r=(a,e,i,r)=>{let c,o=!1;if(L(((a,t=[n])=>{const e=[],i=(a,n)=>n==m(t)?x(e,a):y(t[n])?I(a,a=>i(a,n+1)):L([t[n],null],t=>i(_a(a,t),n+1));return i(a,0),e})(e,i),n=>I(n,n=>{const e=()=>_a(s,n)[0](t,...i??[],...r);a?(a=>{try{return a()}catch(a){(a=>{o||(c=a),o=!0})?.(a)}})(e):e()})),o)throw c};return[(i,r,c,o=[],l=()=>[])=>{t??=a();const w=e(1);return ha(s,w,[i,r,c,o,l]),Ia(ga(r,c??[n],Ta),w),w},(a,t,...n)=>r(!1,a,t,n),a=>f(_a(s,a),([,t,e])=>(ga(t,e??[n],void 0,t=>(S(t,a),p(t)?1:0)),ha(s,a),i(a),e)),a=>f(_a(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const c=m(r);c==m(n)?a(t,...r,...i(r)):y(n[c])?L(e[c]?.(...r)??[],a=>s(...r,a)):s(...r,n[c])};s()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>Ea),aa=a=>{a!=h&&(h=a,W(Y,void 0,h))},ta=()=>{_a(Wa,w)||_a(Qa,w)||!N(_a(Va,w)??[])||(ha(Qa,w),ha(Va,w),ha(Wa,w))},na=t=>{(z&&$(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ea=async()=>{da()&&a.__?.[0]?.()&&await wa()},ia=a=>b(()=>v=a,()=>{v==a&&(v=void 0)}),sa=async a=>(2!=h&&(await b(async()=>{aa(1),g++,await fa(()=>R(async()=>{const n=await t();$(n)?na(n):u(n)&&a?Q(a):u(n)||D(1,n)},t=>{r?.(t),a&&Q(a)}))},()=>aa(0)),await ea()),Ea),ra=async()=>{const a=j;j=0,a&&a==C&&!q&&(2==h?j=a:await sa())},ca=async a=>{const t=++C;let n=!0;if(await la(!0),t==C&&!q){const e=R(async()=>{const a=await i(async(a,e)=>{if(t==C&&!q)if(e||a){const t=n||2==h||!!U;B++,t&&U++,await b(async()=>{aa(1),g++,await(t?fa(()=>na(e??a)):(()=>{try{return na(e??a)}finally{aa(0)}})())},()=>{t&&U--,--B||aa(0)}),B||await ea()}else 2==h?j=t:await sa()});t!=C||q?u(a)||await s(a):d=a},r);await ia(e),t!=C||q||await b(()=>sa(a),()=>{n=!1})}return Ea},la=async(a=!1)=>{j=0,a||C++;const t=v,n=d;return d=void 0,await ia(b(async()=>{await t},async()=>{u(n)||await R(()=>s(n),r)})),Ea},wa=async a=>(1!=h&&await b(()=>b(async()=>{aa(2),T++,await fa(()=>R(()=>e(G,a),r))},()=>aa(0)),ra),Ea),ua=async()=>{const t=++k;return await ya(!0),t!=k||q||(await wa(),t!=k||q||(E=a.addDidFinishTransactionListener(()=>{if(t==k&&!q){const a=H();K(a)&&R(()=>wa(a))}}))),Ea},ya=async(t=!1)=>{t||k++;const n=E;return E=void 0,u(n)||a.delListener(n),Ea},da=()=>!u(E),va=async(a=!1)=>{const[t,n]=a?[ya,la]:[la,ya];return await b(()=>t(),async()=>{await n()}),Ea},fa=async(...a)=>{let t,n=!1;const e=A(e=>N(a)?e():x(_a(Va,w),...M(a,(i,s)=>{const c=s==m(a)-1;return[async()=>{let a;O=A(t=>a=t),await b(async()=>{try{await R(i,r)}catch(a){n||(n=!0,t=a)}c&&e()},()=>{O=void 0,a()})},c?e:void 0,J]})));if(await(async()=>{if(!_a(Qa,w)){ha(Qa,w,1);const a=_a(Va,w);let t=0;await b(async()=>{for(;t<m(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{F(a,t),ha(Qa,w,0),ta()})}})(),await e,n)throw t;return Ea},Ea={load:sa,startAutoLoad:ca,stopAutoLoad:la,isAutoLoading:()=>!u(d),save:wa,startAutoSave:ua,stopAutoSave:ya,isAutoSaving:da,startAutoPersisting:async(a,t=!1)=>{const[n,e]=t?[ua,ca]:[ca,ua];return await n(a),await e(a),Ea},stopAutoPersisting:va,getStatus:()=>h,addStatusListener:a=>V(a,Y),delListener:t=>(Z(t),a),schedule:fa,getStore:()=>a,getStats:()=>({loads:g,saves:T}),...o,destroy:async()=>(u(_)&&(q=1,_=(async()=>{const a=_a(Va,w),t=P(a,([,a,t])=>t!=J||(a?.(),!1)),n=O;F(a),x(a,...t),await b(()=>b(()=>b(va,()=>n),()=>X?.()),()=>{const a=(_a(Wa,w)??1)-1;ha(Wa,w,a||void 0),ta()})})()),await _,Ea)};return oa(Ea)},at=new l.TextEncoder,tt=(a,n,i,r,c=nt,o,l,w)=>{const y=Na(),d=Na();let v=a;return[async()=>{T(y),T(d),L(await i(v,n),({tn:a,cn:t,uq:n})=>{Ia(pa(y,a,Ta),t),n&&Ia(pa(d,a,Ta),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:Ta(e);return((a,t)=>h(_a(y,a),t))(a,t)?ua(P(M(await v(z+Z(a)+ta(a,n)),a=>{const n=a[t],e=l?fa(ya(a,t),l):ya(a,t);return[n,u(i)?e:ua(P(va(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||h(i,a))(a)))]}),a=>!u(a[0])&&!$a(a[1]))):{}},async(a,n,i,l,w,f=!1,E=s,$)=>{const m=u($)?void 0:Ta($),_=a=>u(m)||h(m,a),A=Ta();da(i??{},a=>L(P(ca(a??{}),_),a=>Ia(A,a)));const p=g(A);if(u(m)&&!f&&w&&E==s&&N(p)&&h(y,a))return await v("DROP "+q+Z(a)),ha(y,a),void ha(d,a);const T=_a(y,a),I=Ta(P(g(T),a=>a==n||_(a)));if(!N(p))if(h(y,a)){if(await O(M([n,...p],async t=>{S(I,t)||(await v(J+Z(a)+"ADD"+Z(t)+r),Ia(T,t))})),c==nt&&!h(_a(d,a),n)){const e=t+"_pk_"+(a=>{let t=2166136261;return L(at.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(za([a,n]));await v("CREATE UNIQUE INDEX IF NOT EXISTS"+Z(e)+"ON"+Z(a)+`(${Z(n)})`),Ia(pa(d,a,Ta),n)}}else await v(V+Z(a)+`(${Z(n)}${r} PRIMARY KEY${C(M(p,a=>e+Z(a)+r))});`),ha(y,a,Ta([n,...p])),ha(d,a,Ta([n]));if(await O([...!f&&l?M(g(I),async t=>{t!=n&&(await v(J+Z(a)+"DROP"+Z(t)),S(T,t))}):[]]),f)u(i)?u(m)&&await v(Y+Z(a)+ta(a,E)):await O(va(i,async(t,e)=>{if(u(t))await v(Y+Z(a)+ta(a,E)+`AND(${Z(n)}=$1)`,[e]);else if(!N(p)){const i=P(ca(t),_);N(i)||await c(v,a,n,i,{[e]:M(i,a=>o?o(t[a]):t[a])},T)}}));else if(N(p))u(m)&&h(y,a)&&await v(Y+Z(a)+ta(a,E));else{const t=P(g(_a(y,a)),a=>a!=n&&_(a)),e=ua(),s=[];da(i??{},(a,n)=>{wa(e,n,M(t,t=>o?o(a?.[t]):a?.[t])),x(s,n)}),await c(v,a,n,t,e,T),await v(Y+Z(a)+ta(a,E)+`AND${Z(n)}NOT IN(${aa(s)})`,s)}},async t=>{if(w)return await w(async a=>{const n=v;return v=a,await b(t,()=>{v=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await R(()=>a("ROLLBACK")),t}}]},nt=async(a,t,n,i,s)=>{const r=[1];await a("INSERT INTO"+Z(t)+"("+((...a)=>C(M(a,Z),e))(n,...i)+")VALUES"+C(va(s,a=>"($"+r[0]+++","+aa(a,r)+")"),e)+"ON CONFLICT("+Z(n)+")DO UPDATE SET"+C(M(i,a=>Z(a)+"=excluded."+Z(a)),e),va(s,(a,t)=>[t,...M(a,a=>a??null)]).flat())},et=(a,t,n,e,i,s,r,[c,o,l],w,y,d,v,f,E,$,m,N)=>{const[_,A,O,h]=tt(t,w,y,f,E,void 0,void 0,N);return Za(a,()=>h(async()=>{return await _(),a=(await A(c,o))[B]?.[l]??"null",Ha(Ga(a));var a}),a=>h(async()=>{var t;await _(),await O(c,o,{[B]:{[l]:(t=a()??null,za(t,(a,t)=>u(t)?"":t))}},!0,!0)}),n,e,i,r,{[v]:()=>d,destroy:s},0,d)},it=(a,t,n,e,i,s,r,[c,o,[l,w,y,d,v]],f,E,$,m,N,_,A,h,p)=>{const[g,T,I,S]=tt(t,f,E,N,_,A,h,p),D=(a,t)=>O(Oa(o,async([n,e,i,s,r],c)=>{var o,l;t&&(o=a,l=c,!ea.hasOwn(o,l))||await I(n,e,a[c],i,s,t,r)})),R=(a,t,n)=>ua(1==n?P(va(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):P(M(t,t=>[t,a[t]]),([,a])=>!u(a))),b=async(a,t)=>w?await I(y,U,{[B]:u(v)?a:R(a,v,t)},!0,!0,t,void 0,v):null;return Za(a,()=>S(async()=>{await g();const a=await(async()=>ua(P(await O(Oa(c,async([a,t,n],e)=>[a,await T(e,t,n)])),a=>!$a(a[1]))))(),t=await(async()=>l?(await T(y,U,void 0,d))[B]:{})();return $a(a)&&u(t)?void 0:[a,t]}),(a,t)=>S(async()=>{if(await g(),u(t)){const[t,n]=a();await D(t),await b(n)}else await D(t[0],!0),await b(t[1],!0)}),n,e,i,r,{[m]:()=>$,destroy:s},0,$)},st=(a,e,i,r,o,l,y,v,f,$,m="getDb",N,_)=>{let A,O,p;const T=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,l),[I,S,L,C]=(a=>{const n=(a=>la(ka,E(a)?{[ba]:a}:a??{}))(a),e=n[Ma];if(n.mode==Ra){const a=n[ba]??t;return[1,e,[a,n[La]??U,n[Ca]??Da],Ta(a)]}const{tables:{load:i={},save:r={}}={},values:c={}}=n,o=la(qa,c),{load:l,save:w}=o,u=[Xa(l),Xa(w),o[xa],Ja(l),Ja(w)],y=u[2],d=Ta(y),v=Ta(y),f=Ya(i,{[Fa]:null,[Pa]:U,[ja]:s},Fa,a=>h(v,a),a=>Ia(d,a)),$=Ya(r,{[xa]:null,[Pa]:U,[Ba]:0,[Ua]:0,[ja]:null},xa,(a,t)=>h(v,t),(a,t)=>Ia(d,t));return Aa($,(a,t)=>t[4]??=_a(f,t[0])?.[2]??s),[0,e,[f,$,u],d]})(e);return!I&&a.isMergeable()&&D(0),(I?et:it)(a,T,a=>{let t,n,e=1,i=0,s=0;const l=async(t=!0)=>{const[{d:n,s:i,c:r}]=await T(j+` ${H} d,${K} s,TOTAL_CHANGES() c FROM ${G}${H} JOIN ${G}${K}`);if(e&&(n!=A||i!=O||r!=p)){const c=t&&!s&&!w(A);A=n,O=i,p=r,c&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const c=b(()=>((t,n)=>R(async()=>{for(i?r&&await l():(await l(!1),i=1);e&&s;)s=0,await l(!1),e&&(await a(),await l())},a=>{R(()=>n?.(a))}))(0,y),()=>{n==c&&(n=void 0),e&&(s?v():e&&u(t)&&(t=setInterval(()=>v(!0),1e3*S)))});return n=c,c},f=r(a=>{e&&h(C,a)&&(s=1,d(),c.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,s=0,d(),await b(async()=>await n,async()=>{A=O=p=null,await o(f)})})},a=>a(),y,v,f,L,g(C),async(a,t)=>await a(j+` t.name tn,c.name cn,c.pk OR EXISTS(${j} 1 FROM ${G}index_list(t.name)i,${G}index_info(i.name)ii ${k} i."unique"=1 AND ii.name=c.name AND(${j} count(*) FROM ${G}index_info(i.name))=1)uq FROM ${Q}list()t,${Q}info(t.name)c ${k} t.schema='main'AND t.type IN('table','view')AND t.name IN(${aa(t)})ORDER BY t.name,c.name`,t),$,m,n,N,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,_)},rt=(a,t,n,e,i)=>st(a,n,async(a,n=[])=>await A((e,i)=>t.all(a,n,(a,t)=>a?i(a):e(t))),a=>((a,t,n)=>(a.on(t,n),()=>a.off(t,n)))(t,"change",(t,n,e)=>a(e)),a=>a(),e,i,_,3,t);export{rt as createSqlite3Persister};
1
+ const a=a=>typeof a,t="tinybase",n="",e=",",i=a(n),s="true",r=(a,t,n)=>a.replace(t,n),c=Promise,o=a=>(t,n,e)=>a(t)?e?.():n(t),l=globalThis,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=o(w),f=o(u),E=t=>a(t)==i,$=a=>Array.isArray(a),m=a=>a.length,N=a=>0==m(a),_=()=>{},A=a=>new c(a),h=async a=>c.all(a),O=(a,t)=>a?.has(t)??!1,p=a=>u(a)||0==(a=>a?.size??0)(a),g=a=>[...a?.values()??[]],T=a=>a.clear(),I=(a,t)=>a?.forEach(t),S=(a,t)=>a?.delete(t),D=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},R=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},b=(a,t)=>R(a,a=>{R(()=>t?.(a))}),L=async(a,t)=>{try{return await a()}finally{await t()}},C=(a,t)=>a.forEach(t),M=(a,t="")=>a.join(t),P=(a,t)=>a.map(t),F=(a,t)=>a.filter(t),x=(a,t=m(a))=>a.splice(0,t),B=(a,...t)=>a.push(...t),U="_",j="_id",k="SELECT",q="WHERE",J="TABLE",X="ALTER "+J,Y="FROM",z="DELETE "+Y,G=k+"*"+Y,H="pragma_",K="data_version",Q="schema_version",V="pragma_table_",W="CREATE "+J,Z=/\$tableName/g,aa=a=>M(P(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),ta=(a,t=[1])=>M(P(a,()=>"$"+t[0]++),e),na=(a,t=s)=>q+`(${ea(t,aa(a))})`,ea=(a,t)=>r(a,Z,t),ia=Object,sa=a=>ia.getPrototypeOf(a),ra=ia.entries,ca=a=>!w(a)&&v(sa(a),a=>a==ia.prototype||w(sa(a)),()=>!0),oa=ia.keys,la=ia.freeze,wa=(...a)=>ia.assign(ia.create(null),...a),ua=(a,t,n)=>(ia.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),ya=(a=[])=>{const t=ia.create(null);return C(a,([a,n])=>ua(t,a,n)),t},da=(a,t)=>(delete a[t],a),va=(a,t)=>C(oa(a),n=>t(a[n],n)),fa=(a,t)=>P(ra(a),([a,n])=>t(n,a)),Ea=(a,t)=>{const n=ya();return va(a,(a,e)=>ua(n,e,t(a,e))),n},$a=a=>m(oa(a)),ma=a=>ca(a)&&0==$a(a),Na=Map,_a=a=>new Na(a),Aa=(a,t)=>a?.get(t),ha=(a,t)=>I(a,(a,n)=>t(n,a)),Oa=(a,t)=>{const n=[];return ha(a,(a,e)=>B(n,t(e,a))),n},pa=(a,t,n)=>u(n)?(S(a,t),a):a?.set(t,n),ga=(a,t,n,e)=>{let i=Aa(a,t);return O(a,t)?e?.(i):pa(a,t,i=n()),i},Ta=(a,t,n,e,i=0)=>f((n?ga:Aa)(a,t[i],i>m(t)-2?n:_a),s=>{if(i>m(t)-2)return e?.(s)&&pa(a,t[i]),s;const r=Ta(s,t,n,e,i+1);return p(s)&&pa(a,t[i]),r}),Ia=a=>new Set($(a)||u(a)?a:[a]),Sa=(a,t)=>a?.add(t),Da="ColumnName",Ra="store",ba="json",La=Ra+"TableName",Ca=Ra+"Id"+Da,Ma=Ra+Da,Pa="autoLoadIntervalSeconds",Fa="rowId"+Da,xa="tableId",Ba="tableName",Ua="deleteEmptyColumns",ja="deleteEmptyTable",ka="condition",qa={mode:ba,[Pa]:1},Ja={load:0,save:0,[Ba]:t+"_values"},Xa=a=>$(a)?a:void 0,Ya=a=>d(a)||$(a),za=(a,t,n,e,i)=>{const s=_a();return va(a,(a,r)=>{const c=(w=wa(t,E(a)?{[n]:a}:a),o=ia.values(w),l=$a(t),o.slice(0,l));var o,l,w;y(c[0])||e(r,c[0])||(i(r,c[0]),pa(s,r,c))}),s},Ga=JSON.stringify,Ha=JSON.parse,Ka=a=>""===a?void 0:$(a)?P(a,Ka):ca(a)?Ea(a,Ka):a,Qa=/^\d+$/,Va=_a(),Wa=_a(),Za=_a(),at=(a,t,e,i,s,r,c,o={},l=0,w=[])=>{let d,v,E,_,h,O=0,g=0,T=0,M=0,U=0,j=0,k=0,q=0,J=0;const X={},Y=o.destroy;ga(Va,w,()=>0),ga(Wa,w,()=>[]),pa(Za,w,(Aa(Za,w)??0)+1);const z=_a(),[G,H,K,Q,V]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!ma(a)||!ma(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!ma(a)||!ma(t),t.setContent]:D(0))(c,a,l),[W,Z,aa]=(a=>{let t;const[e,i]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{Qa.test(t)&&m(a)<1e3&&B(a,t)}]})(),s=_a(),r=(a,e,i,r)=>{let c,o=!1;if(C(((a,t=[n])=>{const e=[],i=(a,n)=>n==m(t)?B(e,a):y(t[n])?I(a,a=>i(a,n+1)):C([t[n],null],t=>i(Aa(a,t),n+1));return i(a,0),e})(e,i),n=>I(n,n=>{const e=()=>Aa(s,n)[0](t,...i??[],...r);a?(a=>{try{return a()}catch(a){(a=>{o||(c=a),o=!0})?.(a)}})(e):e()})),o)throw c};return[(i,r,c,o=[],l=()=>[])=>{t??=a();const w=e(1);return pa(s,w,[i,r,c,o,l]),Sa(Ta(r,c??[n],Ia),w),w},(a,t,...n)=>r(!1,a,t,n),a=>f(Aa(s,a),([,t,e])=>(Ta(t,e??[n],void 0,t=>(S(t,a),p(t)?1:0)),pa(s,a),i(a),e)),a=>f(Aa(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const c=m(r);c==m(n)?a(t,...r,...i(r)):y(n[c])?C(e[c]?.(...r)??[],a=>s(...r,a)):s(...r,n[c])};s()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>$a),ta=a=>{a!=O&&(O=a,Z(z,void 0,O))},na=()=>{Aa(Za,w)||Aa(Va,w)||!N(Aa(Wa,w)??[])||(pa(Va,w),pa(Wa,w),pa(Za,w))},ea=t=>{(G&&$(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ia=async()=>{va()&&a.__?.[0]?.()&&await ua()},sa=a=>L(()=>v=a,()=>{v==a&&(v=void 0)}),ra=async a=>(2!=O&&(await L(async()=>{ta(1),g++,await Ea(()=>R(async()=>{const n=await t();$(n)?ea(n):u(n)&&a?V(a):u(n)||D(1,n)},t=>{r?.(t),a&&V(a)}))},()=>ta(0)),await ia()),$a),ca=async()=>{const a=k;k=0,a&&a==M&&!J&&(2==O?k=a:await ra())},oa=async a=>{const t=++M;let n=!0;if(await wa(!0),t==M&&!J){const e=R(async()=>{const a=await i(async(a,e)=>{if(t==M&&!J)if(e||a){const t=n||2==O||!!j;U++,t&&j++,await L(async()=>{ta(1),g++,await(t?Ea(()=>ea(e??a)):(()=>{try{return ea(e??a)}finally{ta(0)}})())},()=>{t&&j--,--U||ta(0)}),U||await ia()}else 2==O?k=t:await ra()});t!=M||J?u(a)||await s(a):d=a},r);await sa(e),t!=M||J||await L(()=>ra(a),()=>{n=!1})}return $a},wa=async(a=!1)=>{k=0,a||M++;const t=v,n=d;return d=void 0,await sa(L(async()=>{await t},async()=>{u(n)||await R(()=>s(n),r)})),$a},ua=async a=>(1!=O&&await L(()=>L(async()=>{ta(2),T++,await Ea(()=>R(()=>e(H,a),r))},()=>ta(0)),ca),$a),ya=async()=>{const t=++q;return await da(!0),t!=q||J||(await ua(),t!=q||J||(E=a.addDidFinishTransactionListener(()=>{if(t==q&&!J){const a=K();Q(a)&&R(()=>ua(a))}}))),$a},da=async(t=!1)=>{t||q++;const n=E;return E=void 0,u(n)||a.delListener(n),$a},va=()=>!u(E),fa=async(a=!1)=>{const[t,n]=a?[da,wa]:[wa,da];return await L(()=>t(),async()=>{await n()}),$a},Ea=async(...a)=>{let t,n=!1;const e=A(e=>N(a)?e():B(Aa(Wa,w),...P(a,(i,s)=>{const c=s==m(a)-1;return[async()=>{let a;h=A(t=>a=t),await L(async()=>{try{await R(i,r)}catch(a){n||(n=!0,t=a)}c&&e()},()=>{h=void 0,a()})},c?e:void 0,X]})));if(await(async()=>{if(!Aa(Va,w)){pa(Va,w,1);const a=Aa(Wa,w);let t=0;await L(async()=>{for(;t<m(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{x(a,t),pa(Va,w,0),na()})}})(),await e,n)throw t;return $a},$a={load:ra,startAutoLoad:oa,stopAutoLoad:wa,isAutoLoading:()=>!u(d),save:ua,startAutoSave:ya,stopAutoSave:da,isAutoSaving:va,startAutoPersisting:async(a,t=!1)=>{const[n,e,i,s]=t?[ya,oa,da,wa]:[oa,ya,wa,da],r=n(a),c=t?q:M;await r;const o=e(a),l=t?M:q;try{await o}catch(a){throw l==(t?M:q)&&await b(s),c==(t?q:M)&&await b(i),a}return $a},stopAutoPersisting:fa,getStatus:()=>O,addStatusListener:a=>W(a,z),delListener:t=>(aa(t),a),schedule:Ea,getStore:()=>a,getStats:()=>({loads:g,saves:T}),...o,destroy:async()=>(u(_)&&(J=1,_=(async()=>{const a=Aa(Wa,w),t=F(a,([,a,t])=>t!=X||(a?.(),!1)),n=h;x(a),B(a,...t),await L(()=>L(()=>L(fa,()=>n),()=>Y?.()),()=>{const a=(Aa(Za,w)??1)-1;pa(Za,w,a||void 0),na()})})()),await _,$a)};return la($a)},tt=new l.TextEncoder,nt=(a,n,i,r,c=et,o,l,w)=>{const y=_a(),d=_a();let v=a;return[async()=>{T(y),T(d),C(await i(v,n),({tn:a,cn:t,uq:n})=>{Sa(ga(y,a,Ia),t),n&&Sa(ga(d,a,Ia),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:Ia(e);return((a,t)=>O(Aa(y,a),t))(a,t)?ya(F(P(await v(G+aa(a)+na(a,n)),a=>{const n=a[t],e=l?Ea(da(a,t),l):da(a,t);return[n,u(i)?e:ya(F(fa(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||O(i,a))(a)))]}),a=>!u(a[0])&&!ma(a[1]))):{}},async(a,n,i,l,w,f=!1,E=s,$)=>{const m=u($)?void 0:Ia($),_=a=>u(m)||O(m,a),A=Ia();va(i??{},a=>C(F(oa(a??{}),_),a=>Sa(A,a)));const p=g(A);if(u(m)&&!f&&w&&E==s&&N(p)&&O(y,a))return await v("DROP "+J+aa(a)),pa(y,a),void pa(d,a);const T=Aa(y,a),I=Ia(F(g(T),a=>a==n||_(a)));if(!N(p))if(O(y,a)){if(await h(P([n,...p],async t=>{S(I,t)||(await v(X+aa(a)+"ADD"+aa(t)+r),Sa(T,t))})),c==et&&!O(Aa(d,a),n)){const e=t+"_pk_"+(a=>{let t=2166136261;return C(tt.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(Ga([a,n]));await v("CREATE UNIQUE INDEX IF NOT EXISTS"+aa(e)+"ON"+aa(a)+`(${aa(n)})`),Sa(ga(d,a,Ia),n)}}else await v(W+aa(a)+`(${aa(n)}${r} PRIMARY KEY${M(P(p,a=>e+aa(a)+r))});`),pa(y,a,Ia([n,...p])),pa(d,a,Ia([n]));if(await h([...!f&&l?P(g(I),async t=>{t!=n&&(await v(X+aa(a)+"DROP"+aa(t)),S(T,t))}):[]]),f)u(i)?u(m)&&await v(z+aa(a)+na(a,E)):await h(fa(i,async(t,e)=>{if(u(t))await v(z+aa(a)+na(a,E)+`AND(${aa(n)}=$1)`,[e]);else if(!N(p)){const i=F(oa(t),_);N(i)||await c(v,a,n,i,{[e]:P(i,a=>o?o(t[a]):t[a])},T)}}));else if(N(p))u(m)&&O(y,a)&&await v(z+aa(a)+na(a,E));else{const t=F(g(Aa(y,a)),a=>a!=n&&_(a)),e=ya(),s=[];va(i??{},(a,n)=>{ua(e,n,P(t,t=>o?o(a?.[t]):a?.[t])),B(s,n)}),await c(v,a,n,t,e,T),await v(z+aa(a)+na(a,E)+`AND${aa(n)}NOT IN(${ta(s)})`,s)}},async t=>{if(w)return await w(async a=>{const n=v;return v=a,await L(t,()=>{v=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await R(()=>a("ROLLBACK")),t}}]},et=async(a,t,n,i,s)=>{const r=[1];await a("INSERT INTO"+aa(t)+"("+((...a)=>M(P(a,aa),e))(n,...i)+")VALUES"+M(fa(s,a=>"($"+r[0]+++","+ta(a,r)+")"),e)+"ON CONFLICT("+aa(n)+")DO UPDATE SET"+M(P(i,a=>aa(a)+"=excluded."+aa(a)),e),fa(s,(a,t)=>[t,...P(a,a=>a??null)]).flat())},it=(a,t,n,e,i,s,r,[c,o,l],w,y,d,v,f,E,$,m,N)=>{const[_,A,h,O]=nt(t,w,y,f,E,void 0,void 0,N);return at(a,()=>O(async()=>{return await _(),a=(await A(c,o))[U]?.[l]??"null",Ka(Ha(a));var a}),a=>O(async()=>{var t;await _(),await h(c,o,{[U]:{[l]:(t=a()??null,Ga(t,(a,t)=>u(t)?"":t))}},!0,!0)}),n,e,i,r,{[v]:()=>d,destroy:s},0,d)},st=(a,t,n,e,i,s,r,[c,o,[l,w,y,d,v]],f,E,$,m,N,_,A,O,p)=>{const[g,T,I,S]=nt(t,f,E,N,_,A,O,p),D=(a,t)=>h(Oa(o,async([n,e,i,s,r],c)=>{var o,l;t&&(o=a,l=c,!ia.hasOwn(o,l))||await I(n,e,a[c],i,s,t,r)})),R=(a,t,n)=>ya(1==n?F(fa(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):F(P(t,t=>[t,a[t]]),([,a])=>!u(a))),b=async(a,t)=>w?await I(y,j,{[U]:u(v)?a:R(a,v,t)},!0,!0,t,void 0,v):null;return at(a,()=>S(async()=>{await g();const a=await(async()=>ya(F(await h(Oa(c,async([a,t,n],e)=>[a,await T(e,t,n)])),a=>!ma(a[1]))))(),t=await(async()=>l?(await T(y,j,void 0,d))[U]:{})();return ma(a)&&u(t)?void 0:[a,t]}),(a,t)=>S(async()=>{if(await g(),u(t)){const[t,n]=a();await D(t),await b(n)}else await D(t[0],!0),await b(t[1],!0)}),n,e,i,r,{[m]:()=>$,destroy:s},0,$)},rt=(a,e,i,r,o,l,y,v,f,$,m="getDb",N,_)=>{let A,h,p;const T=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,l),[I,S,R,C]=(a=>{const n=(a=>wa(qa,E(a)?{[La]:a}:a??{}))(a),e=n[Pa];if(n.mode==ba){const a=n[La]??t;return[1,e,[a,n[Ca]??j,n[Ma]??Ra],Ia(a)]}const{tables:{load:i={},save:r={}}={},values:c={}}=n,o=wa(Ja,c),{load:l,save:w}=o,u=[Ya(l),Ya(w),o[Ba],Xa(l),Xa(w)],y=u[2],d=Ia(y),v=Ia(y),f=za(i,{[xa]:null,[Fa]:j,[ka]:s},xa,a=>O(v,a),a=>Sa(d,a)),$=za(r,{[Ba]:null,[Fa]:j,[Ua]:0,[ja]:0,[ka]:null},Ba,(a,t)=>O(v,t),(a,t)=>Sa(d,t));return ha($,(a,t)=>t[4]??=Aa(f,t[0])?.[2]??s),[0,e,[f,$,u],d]})(e);return!I&&a.isMergeable()&&D(0),(I?it:st)(a,T,a=>{let t,n,e=1,i=0,s=0;const l=async(t=!0)=>{const[{d:n,s:i,c:r}]=await T(k+` ${K} d,${Q} s,TOTAL_CHANGES() c FROM ${H}${K} JOIN ${H}${Q}`);if(e&&(n!=A||i!=h||r!=p)){const c=t&&!s&&!w(A);A=n,h=i,p=r,c&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const c=L(()=>b(async()=>{for(i?r&&await l():(await l(!1),i=1);e&&s;)s=0,await l(!1),e&&(await a(),await l())},y),()=>{n==c&&(n=void 0),e&&(s?v():e&&u(t)&&(t=setInterval(()=>v(!0),1e3*S)))});return n=c,c},f=r(a=>{e&&O(C,a)&&(s=1,d(),c.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,s=0,d(),await L(async()=>await n,async()=>{A=h=p=null,await o(f)})})},a=>a(),y,v,f,R,g(C),async(a,t)=>await a(k+` t.name tn,c.name cn,c.pk OR EXISTS(${k} 1 FROM ${H}index_list(t.name)i,${H}index_info(i.name)ii ${q} i."unique"=1 AND ii.name=c.name AND(${k} count(*) FROM ${H}index_info(i.name))=1)uq FROM ${V}list()t,${V}info(t.name)c ${q} t.schema='main'AND t.type IN('table','view')AND t.name IN(${ta(t)})ORDER BY t.name,c.name`,t),$,m,n,N,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,_)},ct=(a,t,n,e,i)=>rt(a,n,async(a,n=[])=>await A((e,i)=>t.all(a,n,(a,t)=>a?i(a):e(t))),a=>((a,t,n)=>(a.on(t,n),()=>a.off(t,n)))(t,"change",(t,n,e)=>a(e)),a=>a(),e,i,_,3,t);export{ct as createSqlite3Persister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",n="",e=",",i=a(n),s="true",r=(a,t,n)=>a.replace(t,n),c=Promise,o=a=>(t,n,e)=>a(t)?e?.():n(t),l=globalThis,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=o(w),f=o(u),E=t=>a(t)==i,$=a=>Array.isArray(a),m=a=>a.length,N=a=>0==m(a),_=()=>{},A=a=>new c(a),O=async a=>c.all(a),h=(a,t)=>a?.has(t)??!1,p=a=>u(a)||0==(a=>a?.size??0)(a),g=a=>[...a?.values()??[]],T=a=>a.clear(),I=(a,t)=>a?.forEach(t),S=(a,t)=>a?.delete(t),D=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},R=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},b=async(a,t)=>{try{return await a()}finally{await t()}},L=(a,t)=>a.forEach(t),C=(a,t="")=>a.join(t),M=(a,t)=>a.map(t),P=(a,t)=>a.filter(t),F=(a,t=m(a))=>a.splice(0,t),x=(a,...t)=>a.push(...t),B="_",U="_id",j="SELECT",k="WHERE",q="TABLE",J="ALTER "+q,X="FROM",Y="DELETE "+X,z=j+"*"+X,G="pragma_",H="data_version",K="schema_version",Q="pragma_table_",V="CREATE "+q,W=/\$tableName/g,Z=a=>C(M(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),aa=(a,t=[1])=>C(M(a,()=>"$"+t[0]++),e),ta=(a,t=s)=>k+`(${na(t,Z(a))})`,na=(a,t)=>r(a,W,t),ea=Object,ia=a=>ea.getPrototypeOf(a),sa=ea.entries,ra=a=>!w(a)&&v(ia(a),a=>a==ea.prototype||w(ia(a)),()=>!0),ca=ea.keys,oa=ea.freeze,la=(...a)=>ea.assign(ea.create(null),...a),wa=(a,t,n)=>(ea.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),ua=(a=[])=>{const t=ea.create(null);return L(a,([a,n])=>wa(t,a,n)),t},ya=(a,t)=>(delete a[t],a),da=(a,t)=>L(ca(a),n=>t(a[n],n)),va=(a,t)=>M(sa(a),([a,n])=>t(n,a)),fa=(a,t)=>{const n=ua();return da(a,(a,e)=>wa(n,e,t(a,e))),n},Ea=a=>m(ca(a)),$a=a=>ra(a)&&0==Ea(a),ma=Map,Na=a=>new ma(a),_a=(a,t)=>a?.get(t),Aa=(a,t)=>I(a,(a,n)=>t(n,a)),Oa=(a,t)=>{const n=[];return Aa(a,(a,e)=>x(n,t(e,a))),n},ha=(a,t,n)=>u(n)?(S(a,t),a):a?.set(t,n),pa=(a,t,n,e)=>{let i=_a(a,t);return h(a,t)?e?.(i):ha(a,t,i=n()),i},ga=(a,t,n,e,i=0)=>f((n?pa:_a)(a,t[i],i>m(t)-2?n:Na),s=>{if(i>m(t)-2)return e?.(s)&&ha(a,t[i]),s;const r=ga(s,t,n,e,i+1);return p(s)&&ha(a,t[i]),r}),Ta=a=>new Set($(a)||u(a)?a:[a]),Ia=(a,t)=>a?.add(t),Sa="ColumnName",Da="store",Ra="json",ba=Da+"TableName",La=Da+"Id"+Sa,Ca=Da+Sa,Ma="autoLoadIntervalSeconds",Pa="rowId"+Sa,Fa="tableId",xa="tableName",Ba="deleteEmptyColumns",Ua="deleteEmptyTable",ja="condition",ka={mode:Ra,[Ma]:1},qa={load:0,save:0,[xa]:t+"_values"},Ja=a=>$(a)?a:void 0,Xa=a=>d(a)||$(a),Ya=(a,t,n,e,i)=>{const s=Na();return da(a,(a,r)=>{const c=(w=la(t,E(a)?{[n]:a}:a),o=ea.values(w),l=Ea(t),o.slice(0,l));var o,l,w;y(c[0])||e(r,c[0])||(i(r,c[0]),ha(s,r,c))}),s},za=JSON.stringify,Ga=JSON.parse,Ha=a=>""===a?void 0:$(a)?M(a,Ha):ra(a)?fa(a,Ha):a,Ka=/^\d+$/,Qa=Na(),Va=Na(),Wa=Na(),Za=(a,t,e,i,s,r,c,o={},l=0,w=[])=>{let d,v,E,_,O,h=0,g=0,T=0,C=0,B=0,U=0,j=0,k=0,q=0;const J={},X=o.destroy;pa(Qa,w,()=>0),pa(Va,w,()=>[]),ha(Wa,w,(_a(Wa,w)??0)+1);const Y=Na(),[z,G,H,K,Q]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!$a(a)||!$a(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!$a(a)||!$a(t),t.setContent]:D(0))(c,a,l),[V,W,Z]=(a=>{let t;const[e,i]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{Ka.test(t)&&m(a)<1e3&&x(a,t)}]})(),s=Na(),r=(a,e,i,r)=>{let c,o=!1;if(L(((a,t=[n])=>{const e=[],i=(a,n)=>n==m(t)?x(e,a):y(t[n])?I(a,a=>i(a,n+1)):L([t[n],null],t=>i(_a(a,t),n+1));return i(a,0),e})(e,i),n=>I(n,n=>{const e=()=>_a(s,n)[0](t,...i??[],...r);a?(a=>{try{return a()}catch(a){(a=>{o||(c=a),o=!0})?.(a)}})(e):e()})),o)throw c};return[(i,r,c,o=[],l=()=>[])=>{t??=a();const w=e(1);return ha(s,w,[i,r,c,o,l]),Ia(ga(r,c??[n],Ta),w),w},(a,t,...n)=>r(!1,a,t,n),a=>f(_a(s,a),([,t,e])=>(ga(t,e??[n],void 0,t=>(S(t,a),p(t)?1:0)),ha(s,a),i(a),e)),a=>f(_a(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const c=m(r);c==m(n)?a(t,...r,...i(r)):y(n[c])?L(e[c]?.(...r)??[],a=>s(...r,a)):s(...r,n[c])};s()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>Ea),aa=a=>{a!=h&&(h=a,W(Y,void 0,h))},ta=()=>{_a(Wa,w)||_a(Qa,w)||!N(_a(Va,w)??[])||(ha(Qa,w),ha(Va,w),ha(Wa,w))},na=t=>{(z&&$(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ea=async()=>{da()&&a.__?.[0]?.()&&await wa()},ia=a=>b(()=>v=a,()=>{v==a&&(v=void 0)}),sa=async a=>(2!=h&&(await b(async()=>{aa(1),g++,await fa(()=>R(async()=>{const n=await t();$(n)?na(n):u(n)&&a?Q(a):u(n)||D(1,n)},t=>{r?.(t),a&&Q(a)}))},()=>aa(0)),await ea()),Ea),ra=async()=>{const a=j;j=0,a&&a==C&&!q&&(2==h?j=a:await sa())},ca=async a=>{const t=++C;let n=!0;if(await la(!0),t==C&&!q){const e=R(async()=>{const a=await i(async(a,e)=>{if(t==C&&!q)if(e||a){const t=n||2==h||!!U;B++,t&&U++,await b(async()=>{aa(1),g++,await(t?fa(()=>na(e??a)):(()=>{try{return na(e??a)}finally{aa(0)}})())},()=>{t&&U--,--B||aa(0)}),B||await ea()}else 2==h?j=t:await sa()});t!=C||q?u(a)||await s(a):d=a},r);await ia(e),t!=C||q||await b(()=>sa(a),()=>{n=!1})}return Ea},la=async(a=!1)=>{j=0,a||C++;const t=v,n=d;return d=void 0,await ia(b(async()=>{await t},async()=>{u(n)||await R(()=>s(n),r)})),Ea},wa=async a=>(1!=h&&await b(()=>b(async()=>{aa(2),T++,await fa(()=>R(()=>e(G,a),r))},()=>aa(0)),ra),Ea),ua=async()=>{const t=++k;return await ya(!0),t!=k||q||(await wa(),t!=k||q||(E=a.addDidFinishTransactionListener(()=>{if(t==k&&!q){const a=H();K(a)&&R(()=>wa(a))}}))),Ea},ya=async(t=!1)=>{t||k++;const n=E;return E=void 0,u(n)||a.delListener(n),Ea},da=()=>!u(E),va=async(a=!1)=>{const[t,n]=a?[ya,la]:[la,ya];return await b(()=>t(),async()=>{await n()}),Ea},fa=async(...a)=>{let t,n=!1;const e=A(e=>N(a)?e():x(_a(Va,w),...M(a,(i,s)=>{const c=s==m(a)-1;return[async()=>{let a;O=A(t=>a=t),await b(async()=>{try{await R(i,r)}catch(a){n||(n=!0,t=a)}c&&e()},()=>{O=void 0,a()})},c?e:void 0,J]})));if(await(async()=>{if(!_a(Qa,w)){ha(Qa,w,1);const a=_a(Va,w);let t=0;await b(async()=>{for(;t<m(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{F(a,t),ha(Qa,w,0),ta()})}})(),await e,n)throw t;return Ea},Ea={load:sa,startAutoLoad:ca,stopAutoLoad:la,isAutoLoading:()=>!u(d),save:wa,startAutoSave:ua,stopAutoSave:ya,isAutoSaving:da,startAutoPersisting:async(a,t=!1)=>{const[n,e]=t?[ua,ca]:[ca,ua];return await n(a),await e(a),Ea},stopAutoPersisting:va,getStatus:()=>h,addStatusListener:a=>V(a,Y),delListener:t=>(Z(t),a),schedule:fa,getStore:()=>a,getStats:()=>({loads:g,saves:T}),...o,destroy:async()=>(u(_)&&(q=1,_=(async()=>{const a=_a(Va,w),t=P(a,([,a,t])=>t!=J||(a?.(),!1)),n=O;F(a),x(a,...t),await b(()=>b(()=>b(va,()=>n),()=>X?.()),()=>{const a=(_a(Wa,w)??1)-1;ha(Wa,w,a||void 0),ta()})})()),await _,Ea)};return oa(Ea)},at=new l.TextEncoder,tt=(a,n,i,r,c=nt,o,l,w)=>{const y=Na(),d=Na();let v=a;return[async()=>{T(y),T(d),L(await i(v,n),({tn:a,cn:t,uq:n})=>{Ia(pa(y,a,Ta),t),n&&Ia(pa(d,a,Ta),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:Ta(e);return((a,t)=>h(_a(y,a),t))(a,t)?ua(P(M(await v(z+Z(a)+ta(a,n)),a=>{const n=a[t],e=l?fa(ya(a,t),l):ya(a,t);return[n,u(i)?e:ua(P(va(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||h(i,a))(a)))]}),a=>!u(a[0])&&!$a(a[1]))):{}},async(a,n,i,l,w,f=!1,E=s,$)=>{const m=u($)?void 0:Ta($),_=a=>u(m)||h(m,a),A=Ta();da(i??{},a=>L(P(ca(a??{}),_),a=>Ia(A,a)));const p=g(A);if(u(m)&&!f&&w&&E==s&&N(p)&&h(y,a))return await v("DROP "+q+Z(a)),ha(y,a),void ha(d,a);const T=_a(y,a),I=Ta(P(g(T),a=>a==n||_(a)));if(!N(p))if(h(y,a)){if(await O(M([n,...p],async t=>{S(I,t)||(await v(J+Z(a)+"ADD"+Z(t)+r),Ia(T,t))})),c==nt&&!h(_a(d,a),n)){const e=t+"_pk_"+(a=>{let t=2166136261;return L(at.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(za([a,n]));await v("CREATE UNIQUE INDEX IF NOT EXISTS"+Z(e)+"ON"+Z(a)+`(${Z(n)})`),Ia(pa(d,a,Ta),n)}}else await v(V+Z(a)+`(${Z(n)}${r} PRIMARY KEY${C(M(p,a=>e+Z(a)+r))});`),ha(y,a,Ta([n,...p])),ha(d,a,Ta([n]));if(await O([...!f&&l?M(g(I),async t=>{t!=n&&(await v(J+Z(a)+"DROP"+Z(t)),S(T,t))}):[]]),f)u(i)?u(m)&&await v(Y+Z(a)+ta(a,E)):await O(va(i,async(t,e)=>{if(u(t))await v(Y+Z(a)+ta(a,E)+`AND(${Z(n)}=$1)`,[e]);else if(!N(p)){const i=P(ca(t),_);N(i)||await c(v,a,n,i,{[e]:M(i,a=>o?o(t[a]):t[a])},T)}}));else if(N(p))u(m)&&h(y,a)&&await v(Y+Z(a)+ta(a,E));else{const t=P(g(_a(y,a)),a=>a!=n&&_(a)),e=ua(),s=[];da(i??{},(a,n)=>{wa(e,n,M(t,t=>o?o(a?.[t]):a?.[t])),x(s,n)}),await c(v,a,n,t,e,T),await v(Y+Z(a)+ta(a,E)+`AND${Z(n)}NOT IN(${aa(s)})`,s)}},async t=>{if(w)return await w(async a=>{const n=v;return v=a,await b(t,()=>{v=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await R(()=>a("ROLLBACK")),t}}]},nt=async(a,t,n,i,s)=>{const r=[1];await a("INSERT INTO"+Z(t)+"("+((...a)=>C(M(a,Z),e))(n,...i)+")VALUES"+C(va(s,a=>"($"+r[0]+++","+aa(a,r)+")"),e)+"ON CONFLICT("+Z(n)+")DO UPDATE SET"+C(M(i,a=>Z(a)+"=excluded."+Z(a)),e),va(s,(a,t)=>[t,...M(a,a=>a??null)]).flat())},et=(a,t,n,e,i,s,r,[c,o,l],w,y,d,v,f,E,$,m,N)=>{const[_,A,O,h]=tt(t,w,y,f,E,void 0,void 0,N);return Za(a,()=>h(async()=>{return await _(),a=(await A(c,o))[B]?.[l]??"null",Ha(Ga(a));var a}),a=>h(async()=>{var t;await _(),await O(c,o,{[B]:{[l]:(t=a()??null,za(t,(a,t)=>u(t)?"":t))}},!0,!0)}),n,e,i,r,{[v]:()=>d,destroy:s},0,d)},it=(a,t,n,e,i,s,r,[c,o,[l,w,y,d,v]],f,E,$,m,N,_,A,h,p)=>{const[g,T,I,S]=tt(t,f,E,N,_,A,h,p),D=(a,t)=>O(Oa(o,async([n,e,i,s,r],c)=>{var o,l;t&&(o=a,l=c,!ea.hasOwn(o,l))||await I(n,e,a[c],i,s,t,r)})),R=(a,t,n)=>ua(1==n?P(va(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):P(M(t,t=>[t,a[t]]),([,a])=>!u(a))),b=async(a,t)=>w?await I(y,U,{[B]:u(v)?a:R(a,v,t)},!0,!0,t,void 0,v):null;return Za(a,()=>S(async()=>{await g();const a=await(async()=>ua(P(await O(Oa(c,async([a,t,n],e)=>[a,await T(e,t,n)])),a=>!$a(a[1]))))(),t=await(async()=>l?(await T(y,U,void 0,d))[B]:{})();return $a(a)&&u(t)?void 0:[a,t]}),(a,t)=>S(async()=>{if(await g(),u(t)){const[t,n]=a();await D(t),await b(n)}else await D(t[0],!0),await b(t[1],!0)}),n,e,i,r,{[m]:()=>$,destroy:s},0,$)},st=(a,e,i,r,o,l,y,v,f,$,m="getDb",N,_)=>{let A,O,p;const T=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,l),[I,S,L,C]=(a=>{const n=(a=>la(ka,E(a)?{[ba]:a}:a??{}))(a),e=n[Ma];if(n.mode==Ra){const a=n[ba]??t;return[1,e,[a,n[La]??U,n[Ca]??Da],Ta(a)]}const{tables:{load:i={},save:r={}}={},values:c={}}=n,o=la(qa,c),{load:l,save:w}=o,u=[Xa(l),Xa(w),o[xa],Ja(l),Ja(w)],y=u[2],d=Ta(y),v=Ta(y),f=Ya(i,{[Fa]:null,[Pa]:U,[ja]:s},Fa,a=>h(v,a),a=>Ia(d,a)),$=Ya(r,{[xa]:null,[Pa]:U,[Ba]:0,[Ua]:0,[ja]:null},xa,(a,t)=>h(v,t),(a,t)=>Ia(d,t));return Aa($,(a,t)=>t[4]??=_a(f,t[0])?.[2]??s),[0,e,[f,$,u],d]})(e);return!I&&a.isMergeable()&&D(0),(I?et:it)(a,T,a=>{let t,n,e=1,i=0,s=0;const l=async(t=!0)=>{const[{d:n,s:i,c:r}]=await T(j+` ${H} d,${K} s,TOTAL_CHANGES() c FROM ${G}${H} JOIN ${G}${K}`);if(e&&(n!=A||i!=O||r!=p)){const c=t&&!s&&!w(A);A=n,O=i,p=r,c&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const c=b(()=>((t,n)=>R(async()=>{for(i?r&&await l():(await l(!1),i=1);e&&s;)s=0,await l(!1),e&&(await a(),await l())},a=>{R(()=>n?.(a))}))(0,y),()=>{n==c&&(n=void 0),e&&(s?v():e&&u(t)&&(t=setInterval(()=>v(!0),1e3*S)))});return n=c,c},f=r(a=>{e&&h(C,a)&&(s=1,d(),c.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,s=0,d(),await b(async()=>await n,async()=>{A=O=p=null,await o(f)})})},a=>a(),y,v,f,L,g(C),async(a,t)=>await a(j+` t.name tn,c.name cn,c.pk OR EXISTS(${j} 1 FROM ${G}index_list(t.name)i,${G}index_info(i.name)ii ${k} i."unique"=1 AND ii.name=c.name AND(${j} count(*) FROM ${G}index_info(i.name))=1)uq FROM ${Q}list()t,${Q}info(t.name)c ${k} t.schema='main'AND t.type IN('table','view')AND t.name IN(${aa(t)})ORDER BY t.name,c.name`,t),$,m,n,N,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,_)},rt=(a,t,n,e,i)=>st(a,n,async(a,n=[])=>await A((e,i)=>t.all(a,n,(a,t)=>a?i(a):e(t))),a=>((a,t,n)=>(a.on(t,n),()=>a.off(t,n)))(t,"change",(t,n,e)=>a(e)),a=>a(),e,i,_,3,t);export{rt as createSqlite3Persister};
1
+ const a=a=>typeof a,t="tinybase",n="",e=",",i=a(n),s="true",r=(a,t,n)=>a.replace(t,n),c=Promise,o=a=>(t,n,e)=>a(t)?e?.():n(t),l=globalThis,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=o(w),f=o(u),E=t=>a(t)==i,$=a=>Array.isArray(a),m=a=>a.length,N=a=>0==m(a),_=()=>{},A=a=>new c(a),h=async a=>c.all(a),O=(a,t)=>a?.has(t)??!1,p=a=>u(a)||0==(a=>a?.size??0)(a),g=a=>[...a?.values()??[]],T=a=>a.clear(),I=(a,t)=>a?.forEach(t),S=(a,t)=>a?.delete(t),D=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},R=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},b=(a,t)=>R(a,a=>{R(()=>t?.(a))}),L=async(a,t)=>{try{return await a()}finally{await t()}},C=(a,t)=>a.forEach(t),M=(a,t="")=>a.join(t),P=(a,t)=>a.map(t),F=(a,t)=>a.filter(t),x=(a,t=m(a))=>a.splice(0,t),B=(a,...t)=>a.push(...t),U="_",j="_id",k="SELECT",q="WHERE",J="TABLE",X="ALTER "+J,Y="FROM",z="DELETE "+Y,G=k+"*"+Y,H="pragma_",K="data_version",Q="schema_version",V="pragma_table_",W="CREATE "+J,Z=/\$tableName/g,aa=a=>M(P(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),ta=(a,t=[1])=>M(P(a,()=>"$"+t[0]++),e),na=(a,t=s)=>q+`(${ea(t,aa(a))})`,ea=(a,t)=>r(a,Z,t),ia=Object,sa=a=>ia.getPrototypeOf(a),ra=ia.entries,ca=a=>!w(a)&&v(sa(a),a=>a==ia.prototype||w(sa(a)),()=>!0),oa=ia.keys,la=ia.freeze,wa=(...a)=>ia.assign(ia.create(null),...a),ua=(a,t,n)=>(ia.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),ya=(a=[])=>{const t=ia.create(null);return C(a,([a,n])=>ua(t,a,n)),t},da=(a,t)=>(delete a[t],a),va=(a,t)=>C(oa(a),n=>t(a[n],n)),fa=(a,t)=>P(ra(a),([a,n])=>t(n,a)),Ea=(a,t)=>{const n=ya();return va(a,(a,e)=>ua(n,e,t(a,e))),n},$a=a=>m(oa(a)),ma=a=>ca(a)&&0==$a(a),Na=Map,_a=a=>new Na(a),Aa=(a,t)=>a?.get(t),ha=(a,t)=>I(a,(a,n)=>t(n,a)),Oa=(a,t)=>{const n=[];return ha(a,(a,e)=>B(n,t(e,a))),n},pa=(a,t,n)=>u(n)?(S(a,t),a):a?.set(t,n),ga=(a,t,n,e)=>{let i=Aa(a,t);return O(a,t)?e?.(i):pa(a,t,i=n()),i},Ta=(a,t,n,e,i=0)=>f((n?ga:Aa)(a,t[i],i>m(t)-2?n:_a),s=>{if(i>m(t)-2)return e?.(s)&&pa(a,t[i]),s;const r=Ta(s,t,n,e,i+1);return p(s)&&pa(a,t[i]),r}),Ia=a=>new Set($(a)||u(a)?a:[a]),Sa=(a,t)=>a?.add(t),Da="ColumnName",Ra="store",ba="json",La=Ra+"TableName",Ca=Ra+"Id"+Da,Ma=Ra+Da,Pa="autoLoadIntervalSeconds",Fa="rowId"+Da,xa="tableId",Ba="tableName",Ua="deleteEmptyColumns",ja="deleteEmptyTable",ka="condition",qa={mode:ba,[Pa]:1},Ja={load:0,save:0,[Ba]:t+"_values"},Xa=a=>$(a)?a:void 0,Ya=a=>d(a)||$(a),za=(a,t,n,e,i)=>{const s=_a();return va(a,(a,r)=>{const c=(w=wa(t,E(a)?{[n]:a}:a),o=ia.values(w),l=$a(t),o.slice(0,l));var o,l,w;y(c[0])||e(r,c[0])||(i(r,c[0]),pa(s,r,c))}),s},Ga=JSON.stringify,Ha=JSON.parse,Ka=a=>""===a?void 0:$(a)?P(a,Ka):ca(a)?Ea(a,Ka):a,Qa=/^\d+$/,Va=_a(),Wa=_a(),Za=_a(),at=(a,t,e,i,s,r,c,o={},l=0,w=[])=>{let d,v,E,_,h,O=0,g=0,T=0,M=0,U=0,j=0,k=0,q=0,J=0;const X={},Y=o.destroy;ga(Va,w,()=>0),ga(Wa,w,()=>[]),pa(Za,w,(Aa(Za,w)??0)+1);const z=_a(),[G,H,K,Q,V]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!ma(a)||!ma(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!ma(a)||!ma(t),t.setContent]:D(0))(c,a,l),[W,Z,aa]=(a=>{let t;const[e,i]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{Qa.test(t)&&m(a)<1e3&&B(a,t)}]})(),s=_a(),r=(a,e,i,r)=>{let c,o=!1;if(C(((a,t=[n])=>{const e=[],i=(a,n)=>n==m(t)?B(e,a):y(t[n])?I(a,a=>i(a,n+1)):C([t[n],null],t=>i(Aa(a,t),n+1));return i(a,0),e})(e,i),n=>I(n,n=>{const e=()=>Aa(s,n)[0](t,...i??[],...r);a?(a=>{try{return a()}catch(a){(a=>{o||(c=a),o=!0})?.(a)}})(e):e()})),o)throw c};return[(i,r,c,o=[],l=()=>[])=>{t??=a();const w=e(1);return pa(s,w,[i,r,c,o,l]),Sa(Ta(r,c??[n],Ia),w),w},(a,t,...n)=>r(!1,a,t,n),a=>f(Aa(s,a),([,t,e])=>(Ta(t,e??[n],void 0,t=>(S(t,a),p(t)?1:0)),pa(s,a),i(a),e)),a=>f(Aa(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const c=m(r);c==m(n)?a(t,...r,...i(r)):y(n[c])?C(e[c]?.(...r)??[],a=>s(...r,a)):s(...r,n[c])};s()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>$a),ta=a=>{a!=O&&(O=a,Z(z,void 0,O))},na=()=>{Aa(Za,w)||Aa(Va,w)||!N(Aa(Wa,w)??[])||(pa(Va,w),pa(Wa,w),pa(Za,w))},ea=t=>{(G&&$(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ia=async()=>{va()&&a.__?.[0]?.()&&await ua()},sa=a=>L(()=>v=a,()=>{v==a&&(v=void 0)}),ra=async a=>(2!=O&&(await L(async()=>{ta(1),g++,await Ea(()=>R(async()=>{const n=await t();$(n)?ea(n):u(n)&&a?V(a):u(n)||D(1,n)},t=>{r?.(t),a&&V(a)}))},()=>ta(0)),await ia()),$a),ca=async()=>{const a=k;k=0,a&&a==M&&!J&&(2==O?k=a:await ra())},oa=async a=>{const t=++M;let n=!0;if(await wa(!0),t==M&&!J){const e=R(async()=>{const a=await i(async(a,e)=>{if(t==M&&!J)if(e||a){const t=n||2==O||!!j;U++,t&&j++,await L(async()=>{ta(1),g++,await(t?Ea(()=>ea(e??a)):(()=>{try{return ea(e??a)}finally{ta(0)}})())},()=>{t&&j--,--U||ta(0)}),U||await ia()}else 2==O?k=t:await ra()});t!=M||J?u(a)||await s(a):d=a},r);await sa(e),t!=M||J||await L(()=>ra(a),()=>{n=!1})}return $a},wa=async(a=!1)=>{k=0,a||M++;const t=v,n=d;return d=void 0,await sa(L(async()=>{await t},async()=>{u(n)||await R(()=>s(n),r)})),$a},ua=async a=>(1!=O&&await L(()=>L(async()=>{ta(2),T++,await Ea(()=>R(()=>e(H,a),r))},()=>ta(0)),ca),$a),ya=async()=>{const t=++q;return await da(!0),t!=q||J||(await ua(),t!=q||J||(E=a.addDidFinishTransactionListener(()=>{if(t==q&&!J){const a=K();Q(a)&&R(()=>ua(a))}}))),$a},da=async(t=!1)=>{t||q++;const n=E;return E=void 0,u(n)||a.delListener(n),$a},va=()=>!u(E),fa=async(a=!1)=>{const[t,n]=a?[da,wa]:[wa,da];return await L(()=>t(),async()=>{await n()}),$a},Ea=async(...a)=>{let t,n=!1;const e=A(e=>N(a)?e():B(Aa(Wa,w),...P(a,(i,s)=>{const c=s==m(a)-1;return[async()=>{let a;h=A(t=>a=t),await L(async()=>{try{await R(i,r)}catch(a){n||(n=!0,t=a)}c&&e()},()=>{h=void 0,a()})},c?e:void 0,X]})));if(await(async()=>{if(!Aa(Va,w)){pa(Va,w,1);const a=Aa(Wa,w);let t=0;await L(async()=>{for(;t<m(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{x(a,t),pa(Va,w,0),na()})}})(),await e,n)throw t;return $a},$a={load:ra,startAutoLoad:oa,stopAutoLoad:wa,isAutoLoading:()=>!u(d),save:ua,startAutoSave:ya,stopAutoSave:da,isAutoSaving:va,startAutoPersisting:async(a,t=!1)=>{const[n,e,i,s]=t?[ya,oa,da,wa]:[oa,ya,wa,da],r=n(a),c=t?q:M;await r;const o=e(a),l=t?M:q;try{await o}catch(a){throw l==(t?M:q)&&await b(s),c==(t?q:M)&&await b(i),a}return $a},stopAutoPersisting:fa,getStatus:()=>O,addStatusListener:a=>W(a,z),delListener:t=>(aa(t),a),schedule:Ea,getStore:()=>a,getStats:()=>({loads:g,saves:T}),...o,destroy:async()=>(u(_)&&(J=1,_=(async()=>{const a=Aa(Wa,w),t=F(a,([,a,t])=>t!=X||(a?.(),!1)),n=h;x(a),B(a,...t),await L(()=>L(()=>L(fa,()=>n),()=>Y?.()),()=>{const a=(Aa(Za,w)??1)-1;pa(Za,w,a||void 0),na()})})()),await _,$a)};return la($a)},tt=new l.TextEncoder,nt=(a,n,i,r,c=et,o,l,w)=>{const y=_a(),d=_a();let v=a;return[async()=>{T(y),T(d),C(await i(v,n),({tn:a,cn:t,uq:n})=>{Sa(ga(y,a,Ia),t),n&&Sa(ga(d,a,Ia),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:Ia(e);return((a,t)=>O(Aa(y,a),t))(a,t)?ya(F(P(await v(G+aa(a)+na(a,n)),a=>{const n=a[t],e=l?Ea(da(a,t),l):da(a,t);return[n,u(i)?e:ya(F(fa(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||O(i,a))(a)))]}),a=>!u(a[0])&&!ma(a[1]))):{}},async(a,n,i,l,w,f=!1,E=s,$)=>{const m=u($)?void 0:Ia($),_=a=>u(m)||O(m,a),A=Ia();va(i??{},a=>C(F(oa(a??{}),_),a=>Sa(A,a)));const p=g(A);if(u(m)&&!f&&w&&E==s&&N(p)&&O(y,a))return await v("DROP "+J+aa(a)),pa(y,a),void pa(d,a);const T=Aa(y,a),I=Ia(F(g(T),a=>a==n||_(a)));if(!N(p))if(O(y,a)){if(await h(P([n,...p],async t=>{S(I,t)||(await v(X+aa(a)+"ADD"+aa(t)+r),Sa(T,t))})),c==et&&!O(Aa(d,a),n)){const e=t+"_pk_"+(a=>{let t=2166136261;return C(tt.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(Ga([a,n]));await v("CREATE UNIQUE INDEX IF NOT EXISTS"+aa(e)+"ON"+aa(a)+`(${aa(n)})`),Sa(ga(d,a,Ia),n)}}else await v(W+aa(a)+`(${aa(n)}${r} PRIMARY KEY${M(P(p,a=>e+aa(a)+r))});`),pa(y,a,Ia([n,...p])),pa(d,a,Ia([n]));if(await h([...!f&&l?P(g(I),async t=>{t!=n&&(await v(X+aa(a)+"DROP"+aa(t)),S(T,t))}):[]]),f)u(i)?u(m)&&await v(z+aa(a)+na(a,E)):await h(fa(i,async(t,e)=>{if(u(t))await v(z+aa(a)+na(a,E)+`AND(${aa(n)}=$1)`,[e]);else if(!N(p)){const i=F(oa(t),_);N(i)||await c(v,a,n,i,{[e]:P(i,a=>o?o(t[a]):t[a])},T)}}));else if(N(p))u(m)&&O(y,a)&&await v(z+aa(a)+na(a,E));else{const t=F(g(Aa(y,a)),a=>a!=n&&_(a)),e=ya(),s=[];va(i??{},(a,n)=>{ua(e,n,P(t,t=>o?o(a?.[t]):a?.[t])),B(s,n)}),await c(v,a,n,t,e,T),await v(z+aa(a)+na(a,E)+`AND${aa(n)}NOT IN(${ta(s)})`,s)}},async t=>{if(w)return await w(async a=>{const n=v;return v=a,await L(t,()=>{v=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await R(()=>a("ROLLBACK")),t}}]},et=async(a,t,n,i,s)=>{const r=[1];await a("INSERT INTO"+aa(t)+"("+((...a)=>M(P(a,aa),e))(n,...i)+")VALUES"+M(fa(s,a=>"($"+r[0]+++","+ta(a,r)+")"),e)+"ON CONFLICT("+aa(n)+")DO UPDATE SET"+M(P(i,a=>aa(a)+"=excluded."+aa(a)),e),fa(s,(a,t)=>[t,...P(a,a=>a??null)]).flat())},it=(a,t,n,e,i,s,r,[c,o,l],w,y,d,v,f,E,$,m,N)=>{const[_,A,h,O]=nt(t,w,y,f,E,void 0,void 0,N);return at(a,()=>O(async()=>{return await _(),a=(await A(c,o))[U]?.[l]??"null",Ka(Ha(a));var a}),a=>O(async()=>{var t;await _(),await h(c,o,{[U]:{[l]:(t=a()??null,Ga(t,(a,t)=>u(t)?"":t))}},!0,!0)}),n,e,i,r,{[v]:()=>d,destroy:s},0,d)},st=(a,t,n,e,i,s,r,[c,o,[l,w,y,d,v]],f,E,$,m,N,_,A,O,p)=>{const[g,T,I,S]=nt(t,f,E,N,_,A,O,p),D=(a,t)=>h(Oa(o,async([n,e,i,s,r],c)=>{var o,l;t&&(o=a,l=c,!ia.hasOwn(o,l))||await I(n,e,a[c],i,s,t,r)})),R=(a,t,n)=>ya(1==n?F(fa(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):F(P(t,t=>[t,a[t]]),([,a])=>!u(a))),b=async(a,t)=>w?await I(y,j,{[U]:u(v)?a:R(a,v,t)},!0,!0,t,void 0,v):null;return at(a,()=>S(async()=>{await g();const a=await(async()=>ya(F(await h(Oa(c,async([a,t,n],e)=>[a,await T(e,t,n)])),a=>!ma(a[1]))))(),t=await(async()=>l?(await T(y,j,void 0,d))[U]:{})();return ma(a)&&u(t)?void 0:[a,t]}),(a,t)=>S(async()=>{if(await g(),u(t)){const[t,n]=a();await D(t),await b(n)}else await D(t[0],!0),await b(t[1],!0)}),n,e,i,r,{[m]:()=>$,destroy:s},0,$)},rt=(a,e,i,r,o,l,y,v,f,$,m="getDb",N,_)=>{let A,h,p;const T=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,l),[I,S,R,C]=(a=>{const n=(a=>wa(qa,E(a)?{[La]:a}:a??{}))(a),e=n[Pa];if(n.mode==ba){const a=n[La]??t;return[1,e,[a,n[Ca]??j,n[Ma]??Ra],Ia(a)]}const{tables:{load:i={},save:r={}}={},values:c={}}=n,o=wa(Ja,c),{load:l,save:w}=o,u=[Ya(l),Ya(w),o[Ba],Xa(l),Xa(w)],y=u[2],d=Ia(y),v=Ia(y),f=za(i,{[xa]:null,[Fa]:j,[ka]:s},xa,a=>O(v,a),a=>Sa(d,a)),$=za(r,{[Ba]:null,[Fa]:j,[Ua]:0,[ja]:0,[ka]:null},Ba,(a,t)=>O(v,t),(a,t)=>Sa(d,t));return ha($,(a,t)=>t[4]??=Aa(f,t[0])?.[2]??s),[0,e,[f,$,u],d]})(e);return!I&&a.isMergeable()&&D(0),(I?it:st)(a,T,a=>{let t,n,e=1,i=0,s=0;const l=async(t=!0)=>{const[{d:n,s:i,c:r}]=await T(k+` ${K} d,${Q} s,TOTAL_CHANGES() c FROM ${H}${K} JOIN ${H}${Q}`);if(e&&(n!=A||i!=h||r!=p)){const c=t&&!s&&!w(A);A=n,h=i,p=r,c&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const c=L(()=>b(async()=>{for(i?r&&await l():(await l(!1),i=1);e&&s;)s=0,await l(!1),e&&(await a(),await l())},y),()=>{n==c&&(n=void 0),e&&(s?v():e&&u(t)&&(t=setInterval(()=>v(!0),1e3*S)))});return n=c,c},f=r(a=>{e&&O(C,a)&&(s=1,d(),c.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,s=0,d(),await L(async()=>await n,async()=>{A=h=p=null,await o(f)})})},a=>a(),y,v,f,R,g(C),async(a,t)=>await a(k+` t.name tn,c.name cn,c.pk OR EXISTS(${k} 1 FROM ${H}index_list(t.name)i,${H}index_info(i.name)ii ${q} i."unique"=1 AND ii.name=c.name AND(${k} count(*) FROM ${H}index_info(i.name))=1)uq FROM ${V}list()t,${V}info(t.name)c ${q} t.schema='main'AND t.type IN('table','view')AND t.name IN(${ta(t)})ORDER BY t.name,c.name`,t),$,m,n,N,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,_)},ct=(a,t,n,e,i)=>rt(a,n,async(a,n=[])=>await A((e,i)=>t.all(a,n,(a,t)=>a?i(a):e(t))),a=>((a,t,n)=>(a.on(t,n),()=>a.off(t,n)))(t,"change",(t,n,e)=>a(e)),a=>a(),e,i,_,3,t);export{ct as createSqlite3Persister};
@@ -1 +1 @@
1
- import{Map as t}from"yjs";const e="tinybase",a=Promise,n=t=>(e,a,n)=>t(e)?n?.():a(e),s=t=>null==t,r=t=>void 0===t,o=t=>null===t,i=n(s),c=n(r),u=t=>Array.isArray(t),w=t=>t.length,y=t=>0==w(t),l=t=>new a(t),d=(t,e)=>t.forEach(e),v=(t,e=w(t))=>t.splice(0,e),f=(t,...e)=>t.push(...e),g=(t,a)=>{throw((t,a)=>Error(e+":"+t+(r(a)?"":":"+a)))(t,a)},h=async(t,e)=>{try{return await t()}catch(t){e?.(t)}},p=async(t,e)=>{try{return await t()}finally{await e()}},_=t=>r(t)||0==(t=>t?.size??0)(t),A=(t,e)=>t?.forEach(e),b=(t,e)=>t?.delete(e),S=Object,L=t=>S.getPrototypeOf(t),m=S.keys,z=S.freeze,D=(t,e)=>S.hasOwn(t,e),E=(t,e,a)=>(S.defineProperty(t,e,{configurable:!0,enumerable:!0,value:a,writable:!0}),a),P=(t=[])=>{const e=S.create(null);return d(t,([t,a])=>E(e,t,a)),e},M=(t,e)=>d(m(t),a=>e(t[a],a)),O=(t,e)=>{for(const a in t)if(D(t,a)&&!e(t[a],a))return!1;return!0},j=t=>(t=>!s(t)&&i(L(t),t=>t==S.prototype||s(L(t)),()=>!0))(t)&&0==(t=>w(m(t)))(t),k=(t,e,a)=>(D(t,e)||E(t,e,a()),t[e]),C=Map,x=t=>new C(t),F=(t,e)=>t?.get(e),T=(t,e)=>A(t,(t,a)=>e(a,t)),Y=(t,e,a)=>r(a)?(b(t,e),t):t?.set(e,a),$=(t,e,a,n)=>{let s=F(t,e);var r,o;return r=t,o=e,r?.has(o)?n?.(s):Y(t,e,s=a()),s},q=(t,e,a,n,s=0)=>c((a?$:F)(t,e[s],s>w(e)-2?a:x),r=>{if(s>w(e)-2)return n?.(r)&&Y(t,e[s]),r;const o=q(r,e,a,n,s+1);return _(r)&&Y(t,e[s]),o}),B=/^\d+$/,G=t=>new Set(u(t)||r(t)?t:[t]),H=x(),I=x(),J=x(),K=(t,e,a,n,s,i,S,L={},m=0,D=[])=>{let E,P,M,O,k,C=0,T=0,K=0,N=0,Q=0,R=0,U=0,V=0,W=0;const X={},Z=L.destroy;$(H,D,()=>0),$(I,D,()=>[]),Y(J,D,(F(J,D)??0)+1);const tt=x(),[et,at,nt,st,rt]=((t=1,e,a)=>1!=t&&e.isMergeable()?[1,e.__[1],()=>e.__[2](!a),([[t],[e]])=>!j(t)||!j(e),e.setDefaultContent]:2!=t?[0,e._[7],e._[8],([t,e])=>!j(t)||!j(e),e.setContent]:g(0))(S,t,m),[ot,it,ct]=(t=>{let e;const[a,n]=(()=>{const t=[];let e=0;return[a=>(a?t.shift():null)??""+e++,e=>{B.test(e)&&w(t)<1e3&&f(t,e)}]})(),s=x(),r=(t,a,n,r)=>{let i,c=!1;if(d(((t,e=[""])=>{const a=[],n=(t,s)=>s==w(e)?f(a,t):o(e[s])?A(t,t=>n(t,s+1)):d([e[s],null],e=>n(F(t,e),s+1));return n(t,0),a})(a,n),a=>A(a,a=>{const o=()=>F(s,a)[0](e,...n??[],...r);t?(t=>{try{return t()}catch(t){(t=>{c||(i=t),c=!0})?.(t)}})(o):o()})),c)throw i};return[(n,r,o,i=[],c=()=>[])=>{e??=t();const u=a(1);var w,y;return Y(s,u,[n,r,o,i,c]),w=q(r,o??[""],G),y=u,w?.add(y),u},(t,e,...a)=>r(!1,t,e,a),t=>c(F(s,t),([,e,a])=>(q(e,a??[""],void 0,e=>(b(e,t),_(e)?1:0)),Y(s,t),n(t),a)),t=>c(F(s,t),([t,,a=[],n,s])=>{const r=(...i)=>{const c=w(i);c==w(a)?t(e,...i,...s(i)):o(a[c])?d(n[c]?.(...i)??[],t=>r(...i,t)):r(...i,a[c])};r()}),(t,e,...a)=>r(!0,t,e,a)]})(()=>mt),ut=t=>{t!=C&&(C=t,it(tt,void 0,C))},wt=()=>{F(J,D)||F(H,D)||!y(F(I,D)??[])||(Y(H,D),Y(I,D),Y(J,D))},yt=e=>{(et&&u(e?.[0])?1===e?.[2]?t.__[4]:t.__[3]:1===e?.[2]?t._[10]:t._[9])(e)},lt=async()=>{bt()&&t.__?.[0]?.()&&await pt()},dt=t=>p(()=>P=t,()=>{P==t&&(P=void 0)}),vt=async t=>(2!=C&&(await p(async()=>{ut(1),T++,await Lt(()=>h(async()=>{const a=await e();u(a)?yt(a):r(a)&&t?rt(t):r(a)||g(1,a)},e=>{i?.(e),t&&rt(t)}))},()=>ut(0)),await lt()),mt),ft=async()=>{const t=U;U=0,t&&t==N&&!W&&(2==C?U=t:await vt())},gt=async t=>{const e=++N;let a=!0;if(await ht(!0),e==N&&!W){const o=h(async()=>{const t=await n(async(t,n)=>{if(e==N&&!W)if(n||t){const e=a||2==C||!!R;Q++,e&&R++,await p(async()=>{ut(1),T++,await(e?Lt(()=>yt(n??t)):(()=>{try{return yt(n??t)}finally{ut(0)}})())},()=>{e&&R--,--Q||ut(0)}),Q||await lt()}else 2==C?U=e:await vt()});e!=N||W?r(t)||await s(t):E=t},i);await dt(o),e!=N||W||await p(()=>vt(t),()=>{a=!1})}return mt},ht=async(t=!1)=>{U=0,t||N++;const e=P,a=E;return E=void 0,await dt(p(async()=>{await e},async()=>{r(a)||await h(()=>s(a),i)})),mt},pt=async t=>(1!=C&&await p(()=>p(async()=>{ut(2),K++,await Lt(()=>h(()=>a(at,t),i))},()=>ut(0)),ft),mt),_t=async()=>{const e=++V;return await At(!0),e!=V||W||(await pt(),e!=V||W||(M=t.addDidFinishTransactionListener(()=>{if(e==V&&!W){const t=nt();st(t)&&h(()=>pt(t))}}))),mt},At=async(e=!1)=>{e||V++;const a=M;return M=void 0,r(a)||t.delListener(a),mt},bt=()=>!r(M),St=async(t=!1)=>{const[e,a]=t?[At,ht]:[ht,At];return await p(()=>e(),async()=>{await a()}),mt},Lt=async(...t)=>{let e,a=!1;const n=l(n=>{return y(t)?n():f(F(I,D),...(s=t,r=(s,r)=>{const o=r==w(t)-1;return[async()=>{let t;k=l(e=>t=e),await p(async()=>{try{await h(s,i)}catch(t){a||(a=!0,e=t)}o&&n()},()=>{k=void 0,t()})},o?n:void 0,X]},s.map(r)));var s,r});if(await(async()=>{if(!F(H,D)){Y(H,D,1);const t=F(I,D);let e=0;await p(async()=>{for(;e<w(t);){const a=t[e++];a[2]=void 0,await a[0]()}},()=>{v(t,e),Y(H,D,0),wt()})}})(),await n,a)throw e;return mt},mt={load:vt,startAutoLoad:gt,stopAutoLoad:ht,isAutoLoading:()=>!r(E),save:pt,startAutoSave:_t,stopAutoSave:At,isAutoSaving:bt,startAutoPersisting:async(t,e=!1)=>{const[a,n]=e?[_t,gt]:[gt,_t];return await a(t),await n(t),mt},stopAutoPersisting:St,getStatus:()=>C,addStatusListener:t=>ot(t,tt),delListener:e=>(ct(e),t),schedule:Lt,getStore:()=>t,getStats:()=>({loads:T,saves:K}),...L,destroy:async()=>(r(O)&&(W=1,O=(async()=>{const t=F(I,D),e=(a=([,t,e])=>e!=X||(t?.(),!1),t.filter(a));var a;const n=k;v(t),f(t,...e),await p(()=>p(()=>p(St,()=>n),()=>Z?.()),()=>{const t=(F(J,D)??1)-1;Y(J,D,t||void 0),wt()})})()),await O,mt)};return z(mt)},N="delete",Q=e=>e instanceof t?e:g(1),R=t=>[Q(t.get("t")),Q(t.get("v"))],U=(t,e)=>{const a=P();return Q(t).forEach((t,n)=>E(a,n,e?e(t):t)),a},V=t=>U(t,t=>U(t,t=>U(t))),W=t=>{const[e,a]=R(t);return[V(e),U(a)]},X=(e,a,n,s)=>{const o=r(a)?e:e.get(a)??e.set(a,new t);let i;return M(n,(t,e)=>{s(o,e,t)&&(i=1)}),o.forEach((t,e)=>{D(n,e)||(o.delete(e),i=1)}),r(a)||o.size||e.delete(a),i},Z=(a,n,s=e,o)=>{const i=n.getMap(s);return K(a,async()=>i.size?W(i):void 0,async(e,a)=>n.transact(()=>((e,a,n)=>{e.size||(e.set("t",new t),e.set("v",new t));const[s,o]=R(e);if(!c(n,([t,e])=>O(t,(t,e)=>r(t)?(s.delete(e),!0):c(s.get(e),e=>O(t,(t,a)=>r(t)?(e.delete(a),!0):c(e.get(a),e=>(M(t,(t,a)=>r(t)?e.delete(a):e.set(a,t)),!0),()=>!1)),()=>!1))&&O(e,(t,e)=>(r(t)?o.delete(e):o.set(e,t),!0)))){const[t,e]=a();X(s,void 0,t,(t,e,a)=>X(s,e,a,(t,e,a)=>X(t,e,a,(t,e,a)=>{if(t.get(e)!==a)return t.set(e,a),1}))),X(o,void 0,e,(t,e,a)=>{o.get(e)!==a&&o.set(e,a)})}})(i,e,a)),t=>{const e=e=>{((a,n)=>{h(()=>t(void 0,((t,e)=>{if(1==w(e)&&y(e[0].path))return[...W(t),1];const[a,n]=R(t),s=P(),r=P();return d(e,({path:t,changes:{keys:e}})=>"t"==t[0]?c(t[1],n=>{const r=k(s,n,P),o=Q(a.get(n));c(t[2],t=>{const a=k(r,t,P),n=Q(o.get(t));T(e,(t,{action:e})=>E(a,t,e==N?void 0:n.get(t)))},()=>T(e,(t,{action:e})=>E(r,t,e==N?void 0:U(o.get(t)))))},()=>T(e,(t,{action:e})=>E(s,t,e==N?void 0:U(a.get(t),t=>U(t))))):T(e,(t,{action:e})=>E(r,t,e==N?void 0:n.get(t)))),[s,r,1]})(i,e)),t=>{h(()=>n?.(t))})})(0,o)};return i.observeDeep(e),e},t=>{i.unobserveDeep(t)},o,1,{getYDoc:()=>n})};export{Z as createYjsPersister};
1
+ import{Map as t}from"yjs";const e="tinybase",a=Promise,n=t=>(e,a,n)=>t(e)?n?.():a(e),s=t=>null==t,r=t=>void 0===t,o=t=>null===t,i=n(s),c=n(r),u=t=>Array.isArray(t),w=t=>t.length,y=t=>0==w(t),l=t=>new a(t),d=(t,e)=>t.forEach(e),v=(t,e=w(t))=>t.splice(0,e),f=(t,...e)=>t.push(...e),g=(t,a)=>{throw((t,a)=>Error(e+":"+t+(r(a)?"":":"+a)))(t,a)},h=async(t,e)=>{try{return await t()}catch(t){e?.(t)}},p=(t,e)=>h(t,t=>{h(()=>e?.(t))}),_=async(t,e)=>{try{return await t()}finally{await e()}},A=t=>r(t)||0==(t=>t?.size??0)(t),b=(t,e)=>t?.forEach(e),S=(t,e)=>t?.delete(e),L=Object,m=t=>L.getPrototypeOf(t),z=L.keys,D=L.freeze,E=(t,e)=>L.hasOwn(t,e),P=(t,e,a)=>(L.defineProperty(t,e,{configurable:!0,enumerable:!0,value:a,writable:!0}),a),M=(t=[])=>{const e=L.create(null);return d(t,([t,a])=>P(e,t,a)),e},O=(t,e)=>d(z(t),a=>e(t[a],a)),j=(t,e)=>{for(const a in t)if(E(t,a)&&!e(t[a],a))return!1;return!0},k=t=>(t=>!s(t)&&i(m(t),t=>t==L.prototype||s(m(t)),()=>!0))(t)&&0==(t=>w(z(t)))(t),C=(t,e,a)=>(E(t,e)||P(t,e,a()),t[e]),x=Map,F=t=>new x(t),T=(t,e)=>t?.get(e),Y=(t,e)=>b(t,(t,a)=>e(a,t)),$=(t,e,a)=>r(a)?(S(t,e),t):t?.set(e,a),q=(t,e,a,n)=>{let s=T(t,e);var r,o;return r=t,o=e,r?.has(o)?n?.(s):$(t,e,s=a()),s},B=(t,e,a,n,s=0)=>c((a?q:T)(t,e[s],s>w(e)-2?a:F),r=>{if(s>w(e)-2)return n?.(r)&&$(t,e[s]),r;const o=B(r,e,a,n,s+1);return A(r)&&$(t,e[s]),o}),G=/^\d+$/,H=t=>new Set(u(t)||r(t)?t:[t]),I=F(),J=F(),K=F(),N=(t,e,a,n,s,i,L,m={},z=0,E=[])=>{let P,M,O,j,C,x=0,Y=0,N=0,Q=0,R=0,U=0,V=0,W=0,X=0;const Z={},tt=m.destroy;q(I,E,()=>0),q(J,E,()=>[]),$(K,E,(T(K,E)??0)+1);const et=F(),[at,nt,st,rt,ot]=((t=1,e,a)=>1!=t&&e.isMergeable()?[1,e.__[1],()=>e.__[2](!a),([[t],[e]])=>!k(t)||!k(e),e.setDefaultContent]:2!=t?[0,e._[7],e._[8],([t,e])=>!k(t)||!k(e),e.setContent]:g(0))(L,t,z),[it,ct,ut]=(t=>{let e;const[a,n]=(()=>{const t=[];let e=0;return[a=>(a?t.shift():null)??""+e++,e=>{G.test(e)&&w(t)<1e3&&f(t,e)}]})(),s=F(),r=(t,a,n,r)=>{let i,c=!1;if(d(((t,e=[""])=>{const a=[],n=(t,s)=>s==w(e)?f(a,t):o(e[s])?b(t,t=>n(t,s+1)):d([e[s],null],e=>n(T(t,e),s+1));return n(t,0),a})(a,n),a=>b(a,a=>{const o=()=>T(s,a)[0](e,...n??[],...r);t?(t=>{try{return t()}catch(t){(t=>{c||(i=t),c=!0})?.(t)}})(o):o()})),c)throw i};return[(n,r,o,i=[],c=()=>[])=>{e??=t();const u=a(1);var w,y;return $(s,u,[n,r,o,i,c]),w=B(r,o??[""],H),y=u,w?.add(y),u},(t,e,...a)=>r(!1,t,e,a),t=>c(T(s,t),([,e,a])=>(B(e,a??[""],void 0,e=>(S(e,t),A(e)?1:0)),$(s,t),n(t),a)),t=>c(T(s,t),([t,,a=[],n,s])=>{const r=(...i)=>{const c=w(i);c==w(a)?t(e,...i,...s(i)):o(a[c])?d(n[c]?.(...i)??[],t=>r(...i,t)):r(...i,a[c])};r()}),(t,e,...a)=>r(!0,t,e,a)]})(()=>zt),wt=t=>{t!=x&&(x=t,ct(et,void 0,x))},yt=()=>{T(K,E)||T(I,E)||!y(T(J,E)??[])||($(I,E),$(J,E),$(K,E))},lt=e=>{(at&&u(e?.[0])?1===e?.[2]?t.__[4]:t.__[3]:1===e?.[2]?t._[10]:t._[9])(e)},dt=async()=>{St()&&t.__?.[0]?.()&&await _t()},vt=t=>_(()=>M=t,()=>{M==t&&(M=void 0)}),ft=async t=>(2!=x&&(await _(async()=>{wt(1),Y++,await mt(()=>h(async()=>{const a=await e();u(a)?lt(a):r(a)&&t?ot(t):r(a)||g(1,a)},e=>{i?.(e),t&&ot(t)}))},()=>wt(0)),await dt()),zt),gt=async()=>{const t=V;V=0,t&&t==Q&&!X&&(2==x?V=t:await ft())},ht=async t=>{const e=++Q;let a=!0;if(await pt(!0),e==Q&&!X){const o=h(async()=>{const t=await n(async(t,n)=>{if(e==Q&&!X)if(n||t){const e=a||2==x||!!U;R++,e&&U++,await _(async()=>{wt(1),Y++,await(e?mt(()=>lt(n??t)):(()=>{try{return lt(n??t)}finally{wt(0)}})())},()=>{e&&U--,--R||wt(0)}),R||await dt()}else 2==x?V=e:await ft()});e!=Q||X?r(t)||await s(t):P=t},i);await vt(o),e!=Q||X||await _(()=>ft(t),()=>{a=!1})}return zt},pt=async(t=!1)=>{V=0,t||Q++;const e=M,a=P;return P=void 0,await vt(_(async()=>{await e},async()=>{r(a)||await h(()=>s(a),i)})),zt},_t=async t=>(1!=x&&await _(()=>_(async()=>{wt(2),N++,await mt(()=>h(()=>a(nt,t),i))},()=>wt(0)),gt),zt),At=async()=>{const e=++W;return await bt(!0),e!=W||X||(await _t(),e!=W||X||(O=t.addDidFinishTransactionListener(()=>{if(e==W&&!X){const t=st();rt(t)&&h(()=>_t(t))}}))),zt},bt=async(e=!1)=>{e||W++;const a=O;return O=void 0,r(a)||t.delListener(a),zt},St=()=>!r(O),Lt=async(t=!1)=>{const[e,a]=t?[bt,pt]:[pt,bt];return await _(()=>e(),async()=>{await a()}),zt},mt=async(...t)=>{let e,a=!1;const n=l(n=>{return y(t)?n():f(T(J,E),...(s=t,r=(s,r)=>{const o=r==w(t)-1;return[async()=>{let t;C=l(e=>t=e),await _(async()=>{try{await h(s,i)}catch(t){a||(a=!0,e=t)}o&&n()},()=>{C=void 0,t()})},o?n:void 0,Z]},s.map(r)));var s,r});if(await(async()=>{if(!T(I,E)){$(I,E,1);const t=T(J,E);let e=0;await _(async()=>{for(;e<w(t);){const a=t[e++];a[2]=void 0,await a[0]()}},()=>{v(t,e),$(I,E,0),yt()})}})(),await n,a)throw e;return zt},zt={load:ft,startAutoLoad:ht,stopAutoLoad:pt,isAutoLoading:()=>!r(P),save:_t,startAutoSave:At,stopAutoSave:bt,isAutoSaving:St,startAutoPersisting:async(t,e=!1)=>{const[a,n,s,r]=e?[At,ht,bt,pt]:[ht,At,pt,bt],o=a(t),i=e?W:Q;await o;const c=n(t),u=e?Q:W;try{await c}catch(t){throw u==(e?Q:W)&&await p(r),i==(e?W:Q)&&await p(s),t}return zt},stopAutoPersisting:Lt,getStatus:()=>x,addStatusListener:t=>it(t,et),delListener:e=>(ut(e),t),schedule:mt,getStore:()=>t,getStats:()=>({loads:Y,saves:N}),...m,destroy:async()=>(r(j)&&(X=1,j=(async()=>{const t=T(J,E),e=(a=([,t,e])=>e!=Z||(t?.(),!1),t.filter(a));var a;const n=C;v(t),f(t,...e),await _(()=>_(()=>_(Lt,()=>n),()=>tt?.()),()=>{const t=(T(K,E)??1)-1;$(K,E,t||void 0),yt()})})()),await j,zt)};return D(zt)},Q="delete",R=e=>e instanceof t?e:g(1),U=t=>[R(t.get("t")),R(t.get("v"))],V=(t,e)=>{const a=M();return R(t).forEach((t,n)=>P(a,n,e?e(t):t)),a},W=t=>V(t,t=>V(t,t=>V(t))),X=t=>{const[e,a]=U(t);return[W(e),V(a)]},Z=(e,a,n,s)=>{const o=r(a)?e:e.get(a)??e.set(a,new t);let i;return O(n,(t,e)=>{s(o,e,t)&&(i=1)}),o.forEach((t,e)=>{E(n,e)||(o.delete(e),i=1)}),r(a)||o.size||e.delete(a),i},tt=(a,n,s=e,o)=>{const i=n.getMap(s);return N(a,async()=>i.size?X(i):void 0,async(e,a)=>n.transact(()=>((e,a,n)=>{e.size||(e.set("t",new t),e.set("v",new t));const[s,o]=U(e);if(!c(n,([t,e])=>j(t,(t,e)=>r(t)?(s.delete(e),!0):c(s.get(e),e=>j(t,(t,a)=>r(t)?(e.delete(a),!0):c(e.get(a),e=>(O(t,(t,a)=>r(t)?e.delete(a):e.set(a,t)),!0),()=>!1)),()=>!1))&&j(e,(t,e)=>(r(t)?o.delete(e):o.set(e,t),!0)))){const[t,e]=a();Z(s,void 0,t,(t,e,a)=>Z(s,e,a,(t,e,a)=>Z(t,e,a,(t,e,a)=>{if(t.get(e)!==a)return t.set(e,a),1}))),Z(o,void 0,e,(t,e,a)=>{o.get(e)!==a&&o.set(e,a)})}})(i,e,a)),t=>{const e=e=>{p(()=>t(void 0,((t,e)=>{if(1==w(e)&&y(e[0].path))return[...X(t),1];const[a,n]=U(t),s=M(),r=M();return d(e,({path:t,changes:{keys:e}})=>"t"==t[0]?c(t[1],n=>{const r=C(s,n,M),o=R(a.get(n));c(t[2],t=>{const a=C(r,t,M),n=R(o.get(t));Y(e,(t,{action:e})=>P(a,t,e==Q?void 0:n.get(t)))},()=>Y(e,(t,{action:e})=>P(r,t,e==Q?void 0:V(o.get(t)))))},()=>Y(e,(t,{action:e})=>P(s,t,e==Q?void 0:V(a.get(t),t=>V(t))))):Y(e,(t,{action:e})=>P(r,t,e==Q?void 0:n.get(t)))),[s,r,1]})(i,e)),o)};return i.observeDeep(e),e},t=>{i.unobserveDeep(t)},o,1,{getYDoc:()=>n})};export{tt as createYjsPersister};
@@ -1 +1 @@
1
- import{Map as t}from"yjs";const e="tinybase",a=Promise,n=t=>(e,a,n)=>t(e)?n?.():a(e),s=t=>null==t,r=t=>void 0===t,o=t=>null===t,i=n(s),c=n(r),u=t=>Array.isArray(t),w=t=>t.length,y=t=>0==w(t),l=t=>new a(t),d=(t,e)=>t.forEach(e),v=(t,e=w(t))=>t.splice(0,e),f=(t,...e)=>t.push(...e),g=(t,a)=>{throw((t,a)=>Error(e+":"+t+(r(a)?"":":"+a)))(t,a)},h=async(t,e)=>{try{return await t()}catch(t){e?.(t)}},p=async(t,e)=>{try{return await t()}finally{await e()}},_=t=>r(t)||0==(t=>t?.size??0)(t),A=(t,e)=>t?.forEach(e),b=(t,e)=>t?.delete(e),S=Object,L=t=>S.getPrototypeOf(t),m=S.keys,z=S.freeze,D=(t,e)=>S.hasOwn(t,e),E=(t,e,a)=>(S.defineProperty(t,e,{configurable:!0,enumerable:!0,value:a,writable:!0}),a),P=(t=[])=>{const e=S.create(null);return d(t,([t,a])=>E(e,t,a)),e},M=(t,e)=>d(m(t),a=>e(t[a],a)),O=(t,e)=>{for(const a in t)if(D(t,a)&&!e(t[a],a))return!1;return!0},j=t=>(t=>!s(t)&&i(L(t),t=>t==S.prototype||s(L(t)),()=>!0))(t)&&0==(t=>w(m(t)))(t),k=(t,e,a)=>(D(t,e)||E(t,e,a()),t[e]),C=Map,x=t=>new C(t),F=(t,e)=>t?.get(e),T=(t,e)=>A(t,(t,a)=>e(a,t)),Y=(t,e,a)=>r(a)?(b(t,e),t):t?.set(e,a),$=(t,e,a,n)=>{let s=F(t,e);var r,o;return r=t,o=e,r?.has(o)?n?.(s):Y(t,e,s=a()),s},q=(t,e,a,n,s=0)=>c((a?$:F)(t,e[s],s>w(e)-2?a:x),r=>{if(s>w(e)-2)return n?.(r)&&Y(t,e[s]),r;const o=q(r,e,a,n,s+1);return _(r)&&Y(t,e[s]),o}),B=/^\d+$/,G=t=>new Set(u(t)||r(t)?t:[t]),H=x(),I=x(),J=x(),K=(t,e,a,n,s,i,S,L={},m=0,D=[])=>{let E,P,M,O,k,C=0,T=0,K=0,N=0,Q=0,R=0,U=0,V=0,W=0;const X={},Z=L.destroy;$(H,D,()=>0),$(I,D,()=>[]),Y(J,D,(F(J,D)??0)+1);const tt=x(),[et,at,nt,st,rt]=((t=1,e,a)=>1!=t&&e.isMergeable()?[1,e.__[1],()=>e.__[2](!a),([[t],[e]])=>!j(t)||!j(e),e.setDefaultContent]:2!=t?[0,e._[7],e._[8],([t,e])=>!j(t)||!j(e),e.setContent]:g(0))(S,t,m),[ot,it,ct]=(t=>{let e;const[a,n]=(()=>{const t=[];let e=0;return[a=>(a?t.shift():null)??""+e++,e=>{B.test(e)&&w(t)<1e3&&f(t,e)}]})(),s=x(),r=(t,a,n,r)=>{let i,c=!1;if(d(((t,e=[""])=>{const a=[],n=(t,s)=>s==w(e)?f(a,t):o(e[s])?A(t,t=>n(t,s+1)):d([e[s],null],e=>n(F(t,e),s+1));return n(t,0),a})(a,n),a=>A(a,a=>{const o=()=>F(s,a)[0](e,...n??[],...r);t?(t=>{try{return t()}catch(t){(t=>{c||(i=t),c=!0})?.(t)}})(o):o()})),c)throw i};return[(n,r,o,i=[],c=()=>[])=>{e??=t();const u=a(1);var w,y;return Y(s,u,[n,r,o,i,c]),w=q(r,o??[""],G),y=u,w?.add(y),u},(t,e,...a)=>r(!1,t,e,a),t=>c(F(s,t),([,e,a])=>(q(e,a??[""],void 0,e=>(b(e,t),_(e)?1:0)),Y(s,t),n(t),a)),t=>c(F(s,t),([t,,a=[],n,s])=>{const r=(...i)=>{const c=w(i);c==w(a)?t(e,...i,...s(i)):o(a[c])?d(n[c]?.(...i)??[],t=>r(...i,t)):r(...i,a[c])};r()}),(t,e,...a)=>r(!0,t,e,a)]})(()=>mt),ut=t=>{t!=C&&(C=t,it(tt,void 0,C))},wt=()=>{F(J,D)||F(H,D)||!y(F(I,D)??[])||(Y(H,D),Y(I,D),Y(J,D))},yt=e=>{(et&&u(e?.[0])?1===e?.[2]?t.__[4]:t.__[3]:1===e?.[2]?t._[10]:t._[9])(e)},lt=async()=>{bt()&&t.__?.[0]?.()&&await pt()},dt=t=>p(()=>P=t,()=>{P==t&&(P=void 0)}),vt=async t=>(2!=C&&(await p(async()=>{ut(1),T++,await Lt(()=>h(async()=>{const a=await e();u(a)?yt(a):r(a)&&t?rt(t):r(a)||g(1,a)},e=>{i?.(e),t&&rt(t)}))},()=>ut(0)),await lt()),mt),ft=async()=>{const t=U;U=0,t&&t==N&&!W&&(2==C?U=t:await vt())},gt=async t=>{const e=++N;let a=!0;if(await ht(!0),e==N&&!W){const o=h(async()=>{const t=await n(async(t,n)=>{if(e==N&&!W)if(n||t){const e=a||2==C||!!R;Q++,e&&R++,await p(async()=>{ut(1),T++,await(e?Lt(()=>yt(n??t)):(()=>{try{return yt(n??t)}finally{ut(0)}})())},()=>{e&&R--,--Q||ut(0)}),Q||await lt()}else 2==C?U=e:await vt()});e!=N||W?r(t)||await s(t):E=t},i);await dt(o),e!=N||W||await p(()=>vt(t),()=>{a=!1})}return mt},ht=async(t=!1)=>{U=0,t||N++;const e=P,a=E;return E=void 0,await dt(p(async()=>{await e},async()=>{r(a)||await h(()=>s(a),i)})),mt},pt=async t=>(1!=C&&await p(()=>p(async()=>{ut(2),K++,await Lt(()=>h(()=>a(at,t),i))},()=>ut(0)),ft),mt),_t=async()=>{const e=++V;return await At(!0),e!=V||W||(await pt(),e!=V||W||(M=t.addDidFinishTransactionListener(()=>{if(e==V&&!W){const t=nt();st(t)&&h(()=>pt(t))}}))),mt},At=async(e=!1)=>{e||V++;const a=M;return M=void 0,r(a)||t.delListener(a),mt},bt=()=>!r(M),St=async(t=!1)=>{const[e,a]=t?[At,ht]:[ht,At];return await p(()=>e(),async()=>{await a()}),mt},Lt=async(...t)=>{let e,a=!1;const n=l(n=>{return y(t)?n():f(F(I,D),...(s=t,r=(s,r)=>{const o=r==w(t)-1;return[async()=>{let t;k=l(e=>t=e),await p(async()=>{try{await h(s,i)}catch(t){a||(a=!0,e=t)}o&&n()},()=>{k=void 0,t()})},o?n:void 0,X]},s.map(r)));var s,r});if(await(async()=>{if(!F(H,D)){Y(H,D,1);const t=F(I,D);let e=0;await p(async()=>{for(;e<w(t);){const a=t[e++];a[2]=void 0,await a[0]()}},()=>{v(t,e),Y(H,D,0),wt()})}})(),await n,a)throw e;return mt},mt={load:vt,startAutoLoad:gt,stopAutoLoad:ht,isAutoLoading:()=>!r(E),save:pt,startAutoSave:_t,stopAutoSave:At,isAutoSaving:bt,startAutoPersisting:async(t,e=!1)=>{const[a,n]=e?[_t,gt]:[gt,_t];return await a(t),await n(t),mt},stopAutoPersisting:St,getStatus:()=>C,addStatusListener:t=>ot(t,tt),delListener:e=>(ct(e),t),schedule:Lt,getStore:()=>t,getStats:()=>({loads:T,saves:K}),...L,destroy:async()=>(r(O)&&(W=1,O=(async()=>{const t=F(I,D),e=(a=([,t,e])=>e!=X||(t?.(),!1),t.filter(a));var a;const n=k;v(t),f(t,...e),await p(()=>p(()=>p(St,()=>n),()=>Z?.()),()=>{const t=(F(J,D)??1)-1;Y(J,D,t||void 0),wt()})})()),await O,mt)};return z(mt)},N="delete",Q=e=>e instanceof t?e:g(1),R=t=>[Q(t.get("t")),Q(t.get("v"))],U=(t,e)=>{const a=P();return Q(t).forEach((t,n)=>E(a,n,e?e(t):t)),a},V=t=>U(t,t=>U(t,t=>U(t))),W=t=>{const[e,a]=R(t);return[V(e),U(a)]},X=(e,a,n,s)=>{const o=r(a)?e:e.get(a)??e.set(a,new t);let i;return M(n,(t,e)=>{s(o,e,t)&&(i=1)}),o.forEach((t,e)=>{D(n,e)||(o.delete(e),i=1)}),r(a)||o.size||e.delete(a),i},Z=(a,n,s=e,o)=>{const i=n.getMap(s);return K(a,async()=>i.size?W(i):void 0,async(e,a)=>n.transact(()=>((e,a,n)=>{e.size||(e.set("t",new t),e.set("v",new t));const[s,o]=R(e);if(!c(n,([t,e])=>O(t,(t,e)=>r(t)?(s.delete(e),!0):c(s.get(e),e=>O(t,(t,a)=>r(t)?(e.delete(a),!0):c(e.get(a),e=>(M(t,(t,a)=>r(t)?e.delete(a):e.set(a,t)),!0),()=>!1)),()=>!1))&&O(e,(t,e)=>(r(t)?o.delete(e):o.set(e,t),!0)))){const[t,e]=a();X(s,void 0,t,(t,e,a)=>X(s,e,a,(t,e,a)=>X(t,e,a,(t,e,a)=>{if(t.get(e)!==a)return t.set(e,a),1}))),X(o,void 0,e,(t,e,a)=>{o.get(e)!==a&&o.set(e,a)})}})(i,e,a)),t=>{const e=e=>{((a,n)=>{h(()=>t(void 0,((t,e)=>{if(1==w(e)&&y(e[0].path))return[...W(t),1];const[a,n]=R(t),s=P(),r=P();return d(e,({path:t,changes:{keys:e}})=>"t"==t[0]?c(t[1],n=>{const r=k(s,n,P),o=Q(a.get(n));c(t[2],t=>{const a=k(r,t,P),n=Q(o.get(t));T(e,(t,{action:e})=>E(a,t,e==N?void 0:n.get(t)))},()=>T(e,(t,{action:e})=>E(r,t,e==N?void 0:U(o.get(t)))))},()=>T(e,(t,{action:e})=>E(s,t,e==N?void 0:U(a.get(t),t=>U(t))))):T(e,(t,{action:e})=>E(r,t,e==N?void 0:n.get(t)))),[s,r,1]})(i,e)),t=>{h(()=>n?.(t))})})(0,o)};return i.observeDeep(e),e},t=>{i.unobserveDeep(t)},o,1,{getYDoc:()=>n})};export{Z as createYjsPersister};
1
+ import{Map as t}from"yjs";const e="tinybase",a=Promise,n=t=>(e,a,n)=>t(e)?n?.():a(e),s=t=>null==t,r=t=>void 0===t,o=t=>null===t,i=n(s),c=n(r),u=t=>Array.isArray(t),w=t=>t.length,y=t=>0==w(t),l=t=>new a(t),d=(t,e)=>t.forEach(e),v=(t,e=w(t))=>t.splice(0,e),f=(t,...e)=>t.push(...e),g=(t,a)=>{throw((t,a)=>Error(e+":"+t+(r(a)?"":":"+a)))(t,a)},h=async(t,e)=>{try{return await t()}catch(t){e?.(t)}},p=(t,e)=>h(t,t=>{h(()=>e?.(t))}),_=async(t,e)=>{try{return await t()}finally{await e()}},A=t=>r(t)||0==(t=>t?.size??0)(t),b=(t,e)=>t?.forEach(e),S=(t,e)=>t?.delete(e),L=Object,m=t=>L.getPrototypeOf(t),z=L.keys,D=L.freeze,E=(t,e)=>L.hasOwn(t,e),P=(t,e,a)=>(L.defineProperty(t,e,{configurable:!0,enumerable:!0,value:a,writable:!0}),a),M=(t=[])=>{const e=L.create(null);return d(t,([t,a])=>P(e,t,a)),e},O=(t,e)=>d(z(t),a=>e(t[a],a)),j=(t,e)=>{for(const a in t)if(E(t,a)&&!e(t[a],a))return!1;return!0},k=t=>(t=>!s(t)&&i(m(t),t=>t==L.prototype||s(m(t)),()=>!0))(t)&&0==(t=>w(z(t)))(t),C=(t,e,a)=>(E(t,e)||P(t,e,a()),t[e]),x=Map,F=t=>new x(t),T=(t,e)=>t?.get(e),Y=(t,e)=>b(t,(t,a)=>e(a,t)),$=(t,e,a)=>r(a)?(S(t,e),t):t?.set(e,a),q=(t,e,a,n)=>{let s=T(t,e);var r,o;return r=t,o=e,r?.has(o)?n?.(s):$(t,e,s=a()),s},B=(t,e,a,n,s=0)=>c((a?q:T)(t,e[s],s>w(e)-2?a:F),r=>{if(s>w(e)-2)return n?.(r)&&$(t,e[s]),r;const o=B(r,e,a,n,s+1);return A(r)&&$(t,e[s]),o}),G=/^\d+$/,H=t=>new Set(u(t)||r(t)?t:[t]),I=F(),J=F(),K=F(),N=(t,e,a,n,s,i,L,m={},z=0,E=[])=>{let P,M,O,j,C,x=0,Y=0,N=0,Q=0,R=0,U=0,V=0,W=0,X=0;const Z={},tt=m.destroy;q(I,E,()=>0),q(J,E,()=>[]),$(K,E,(T(K,E)??0)+1);const et=F(),[at,nt,st,rt,ot]=((t=1,e,a)=>1!=t&&e.isMergeable()?[1,e.__[1],()=>e.__[2](!a),([[t],[e]])=>!k(t)||!k(e),e.setDefaultContent]:2!=t?[0,e._[7],e._[8],([t,e])=>!k(t)||!k(e),e.setContent]:g(0))(L,t,z),[it,ct,ut]=(t=>{let e;const[a,n]=(()=>{const t=[];let e=0;return[a=>(a?t.shift():null)??""+e++,e=>{G.test(e)&&w(t)<1e3&&f(t,e)}]})(),s=F(),r=(t,a,n,r)=>{let i,c=!1;if(d(((t,e=[""])=>{const a=[],n=(t,s)=>s==w(e)?f(a,t):o(e[s])?b(t,t=>n(t,s+1)):d([e[s],null],e=>n(T(t,e),s+1));return n(t,0),a})(a,n),a=>b(a,a=>{const o=()=>T(s,a)[0](e,...n??[],...r);t?(t=>{try{return t()}catch(t){(t=>{c||(i=t),c=!0})?.(t)}})(o):o()})),c)throw i};return[(n,r,o,i=[],c=()=>[])=>{e??=t();const u=a(1);var w,y;return $(s,u,[n,r,o,i,c]),w=B(r,o??[""],H),y=u,w?.add(y),u},(t,e,...a)=>r(!1,t,e,a),t=>c(T(s,t),([,e,a])=>(B(e,a??[""],void 0,e=>(S(e,t),A(e)?1:0)),$(s,t),n(t),a)),t=>c(T(s,t),([t,,a=[],n,s])=>{const r=(...i)=>{const c=w(i);c==w(a)?t(e,...i,...s(i)):o(a[c])?d(n[c]?.(...i)??[],t=>r(...i,t)):r(...i,a[c])};r()}),(t,e,...a)=>r(!0,t,e,a)]})(()=>zt),wt=t=>{t!=x&&(x=t,ct(et,void 0,x))},yt=()=>{T(K,E)||T(I,E)||!y(T(J,E)??[])||($(I,E),$(J,E),$(K,E))},lt=e=>{(at&&u(e?.[0])?1===e?.[2]?t.__[4]:t.__[3]:1===e?.[2]?t._[10]:t._[9])(e)},dt=async()=>{St()&&t.__?.[0]?.()&&await _t()},vt=t=>_(()=>M=t,()=>{M==t&&(M=void 0)}),ft=async t=>(2!=x&&(await _(async()=>{wt(1),Y++,await mt(()=>h(async()=>{const a=await e();u(a)?lt(a):r(a)&&t?ot(t):r(a)||g(1,a)},e=>{i?.(e),t&&ot(t)}))},()=>wt(0)),await dt()),zt),gt=async()=>{const t=V;V=0,t&&t==Q&&!X&&(2==x?V=t:await ft())},ht=async t=>{const e=++Q;let a=!0;if(await pt(!0),e==Q&&!X){const o=h(async()=>{const t=await n(async(t,n)=>{if(e==Q&&!X)if(n||t){const e=a||2==x||!!U;R++,e&&U++,await _(async()=>{wt(1),Y++,await(e?mt(()=>lt(n??t)):(()=>{try{return lt(n??t)}finally{wt(0)}})())},()=>{e&&U--,--R||wt(0)}),R||await dt()}else 2==x?V=e:await ft()});e!=Q||X?r(t)||await s(t):P=t},i);await vt(o),e!=Q||X||await _(()=>ft(t),()=>{a=!1})}return zt},pt=async(t=!1)=>{V=0,t||Q++;const e=M,a=P;return P=void 0,await vt(_(async()=>{await e},async()=>{r(a)||await h(()=>s(a),i)})),zt},_t=async t=>(1!=x&&await _(()=>_(async()=>{wt(2),N++,await mt(()=>h(()=>a(nt,t),i))},()=>wt(0)),gt),zt),At=async()=>{const e=++W;return await bt(!0),e!=W||X||(await _t(),e!=W||X||(O=t.addDidFinishTransactionListener(()=>{if(e==W&&!X){const t=st();rt(t)&&h(()=>_t(t))}}))),zt},bt=async(e=!1)=>{e||W++;const a=O;return O=void 0,r(a)||t.delListener(a),zt},St=()=>!r(O),Lt=async(t=!1)=>{const[e,a]=t?[bt,pt]:[pt,bt];return await _(()=>e(),async()=>{await a()}),zt},mt=async(...t)=>{let e,a=!1;const n=l(n=>{return y(t)?n():f(T(J,E),...(s=t,r=(s,r)=>{const o=r==w(t)-1;return[async()=>{let t;C=l(e=>t=e),await _(async()=>{try{await h(s,i)}catch(t){a||(a=!0,e=t)}o&&n()},()=>{C=void 0,t()})},o?n:void 0,Z]},s.map(r)));var s,r});if(await(async()=>{if(!T(I,E)){$(I,E,1);const t=T(J,E);let e=0;await _(async()=>{for(;e<w(t);){const a=t[e++];a[2]=void 0,await a[0]()}},()=>{v(t,e),$(I,E,0),yt()})}})(),await n,a)throw e;return zt},zt={load:ft,startAutoLoad:ht,stopAutoLoad:pt,isAutoLoading:()=>!r(P),save:_t,startAutoSave:At,stopAutoSave:bt,isAutoSaving:St,startAutoPersisting:async(t,e=!1)=>{const[a,n,s,r]=e?[At,ht,bt,pt]:[ht,At,pt,bt],o=a(t),i=e?W:Q;await o;const c=n(t),u=e?Q:W;try{await c}catch(t){throw u==(e?Q:W)&&await p(r),i==(e?W:Q)&&await p(s),t}return zt},stopAutoPersisting:Lt,getStatus:()=>x,addStatusListener:t=>it(t,et),delListener:e=>(ut(e),t),schedule:mt,getStore:()=>t,getStats:()=>({loads:Y,saves:N}),...m,destroy:async()=>(r(j)&&(X=1,j=(async()=>{const t=T(J,E),e=(a=([,t,e])=>e!=Z||(t?.(),!1),t.filter(a));var a;const n=C;v(t),f(t,...e),await _(()=>_(()=>_(Lt,()=>n),()=>tt?.()),()=>{const t=(T(K,E)??1)-1;$(K,E,t||void 0),yt()})})()),await j,zt)};return D(zt)},Q="delete",R=e=>e instanceof t?e:g(1),U=t=>[R(t.get("t")),R(t.get("v"))],V=(t,e)=>{const a=M();return R(t).forEach((t,n)=>P(a,n,e?e(t):t)),a},W=t=>V(t,t=>V(t,t=>V(t))),X=t=>{const[e,a]=U(t);return[W(e),V(a)]},Z=(e,a,n,s)=>{const o=r(a)?e:e.get(a)??e.set(a,new t);let i;return O(n,(t,e)=>{s(o,e,t)&&(i=1)}),o.forEach((t,e)=>{E(n,e)||(o.delete(e),i=1)}),r(a)||o.size||e.delete(a),i},tt=(a,n,s=e,o)=>{const i=n.getMap(s);return N(a,async()=>i.size?X(i):void 0,async(e,a)=>n.transact(()=>((e,a,n)=>{e.size||(e.set("t",new t),e.set("v",new t));const[s,o]=U(e);if(!c(n,([t,e])=>j(t,(t,e)=>r(t)?(s.delete(e),!0):c(s.get(e),e=>j(t,(t,a)=>r(t)?(e.delete(a),!0):c(e.get(a),e=>(O(t,(t,a)=>r(t)?e.delete(a):e.set(a,t)),!0),()=>!1)),()=>!1))&&j(e,(t,e)=>(r(t)?o.delete(e):o.set(e,t),!0)))){const[t,e]=a();Z(s,void 0,t,(t,e,a)=>Z(s,e,a,(t,e,a)=>Z(t,e,a,(t,e,a)=>{if(t.get(e)!==a)return t.set(e,a),1}))),Z(o,void 0,e,(t,e,a)=>{o.get(e)!==a&&o.set(e,a)})}})(i,e,a)),t=>{const e=e=>{p(()=>t(void 0,((t,e)=>{if(1==w(e)&&y(e[0].path))return[...X(t),1];const[a,n]=U(t),s=M(),r=M();return d(e,({path:t,changes:{keys:e}})=>"t"==t[0]?c(t[1],n=>{const r=C(s,n,M),o=R(a.get(n));c(t[2],t=>{const a=C(r,t,M),n=R(o.get(t));Y(e,(t,{action:e})=>P(a,t,e==Q?void 0:n.get(t)))},()=>Y(e,(t,{action:e})=>P(r,t,e==Q?void 0:V(o.get(t)))))},()=>Y(e,(t,{action:e})=>P(s,t,e==Q?void 0:V(a.get(t),t=>V(t))))):Y(e,(t,{action:e})=>P(r,t,e==Q?void 0:n.get(t)))),[s,r,1]})(i,e)),o)};return i.observeDeep(e),e},t=>{i.unobserveDeep(t)},o,1,{getYDoc:()=>n})};export{tt as createYjsPersister};