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=",",s=a(n),c="true",i=(a,t,n)=>a.replace(t,n),r=Promise,o=a=>(t,n,e)=>a(t)?e?.():n(t),w=globalThis,l=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=o(l),E=o(u),_=t=>a(t)==s,N=a=>Array.isArray(a),m=a=>a.length,v=a=>0==m(a),A=a=>new r(a),f=async a=>r.all(a),O=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},T=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},$=(a,t)=>T(a,a=>{T(()=>t?.(a))}),h=async(a,t)=>{try{return await a()}finally{await t()}},R=(a,t)=>a.forEach(t),I=(a,t="")=>a.join(t),g=(a,t)=>a.map(t),L=(a,t)=>a.filter(t),S=(a,t=m(a))=>a.splice(0,t),D=(a,...t)=>a.push(...t),b=(a,t)=>a?.has(t)??!1,p=a=>u(a)||0==(a=>a?.size??0)(a),C=a=>[...a?.values()??[]],P=a=>a.clear(),F=(a,t)=>a?.forEach(t),k=(a,t)=>a?.delete(t),U=Object,M=a=>U.getPrototypeOf(a),G=U.entries,H=a=>!l(a)&&d(M(a),a=>a==U.prototype||l(M(a)),()=>!0),W=U.keys,Y=U.freeze,j=(...a)=>U.assign(U.create(null),...a),x=(a,t,n)=>(U.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),B=(a=[])=>{const t=U.create(null);return R(a,([a,n])=>x(t,a,n)),t},X=(a,t)=>(delete a[t],a),q=(a,t)=>R(W(a),n=>t(a[n],n)),J=(a,t)=>g(G(a),([a,n])=>t(n,a)),K=(a,t)=>{const n=B();return q(a,(a,e)=>x(n,e,t(a,e))),n},z=a=>m(W(a)),Q=a=>H(a)&&0==z(a),V=JSON.stringify,Z=JSON.parse,aa=a=>V(a,(a,t)=>u(t)?"":t),ta=a=>""===a?void 0:N(a)?g(a,ta):H(a)?K(a,ta):a,na=new w.TextEncoder,ea=a=>{let t=2166136261;return R(na.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0},sa=Map,ca=a=>new sa(a),ia=(a,t)=>a?.get(t),ra=(a,t)=>F(a,(a,n)=>t(n,a)),oa=(a,t)=>{const n=[];return ra(a,(a,e)=>D(n,t(e,a))),n},wa=(a,t,n)=>u(n)?(k(a,t),a):a?.set(t,n),la=(a,t,n,e)=>{let s=ia(a,t);return b(a,t)?e?.(s):wa(a,t,s=n()),s},ua=(a,t,n,e,s=0)=>E((n?la:ia)(a,t[s],s>m(t)-2?n:ca),c=>{if(s>m(t)-2)return e?.(c)&&wa(a,t[s]),c;const i=ua(c,t,n,e,s+1);return p(c)&&wa(a,t[s]),i}),ya="_",da="_id",Ea="SELECT",_a="WHERE",Na="TABLE",ma="INSERT",va="DELETE",Aa="UPDATE",fa="ALTER "+Na,Oa="FROM",Ta=va+" "+Oa,$a=Ea+"*"+Oa,ha="CREATE ",Ra=ha+Na,Ia="OR REPLACE ",ga="FUNCTION",La=/\$tableName/g,Sa=a=>I(g(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${i(a,/"/g,'""')}"`),"."),Da=(...a)=>Sa(I(a,"_")),ba=(a,t=[1])=>I(g(a,()=>"$"+t[0]++),e),pa=(a,t=c)=>_a+`(${Ca(t,Sa(a))})`,Ca=(a,t)=>i(a,La,t),Pa=a=>new Set(N(a)||u(a)?a:[a]),Fa=(a,t)=>a?.add(t),ka="ColumnName",Ua="store",Ma="json",Ga=Ua+"TableName",Ha=Ua+"Id"+ka,Wa=Ua+ka,Ya="autoLoadIntervalSeconds",ja="rowId"+ka,xa="tableId",Ba="tableName",Xa="deleteEmptyColumns",qa="deleteEmptyTable",Ja="condition",Ka={mode:Ma,[Ya]:1},za={load:0,save:0,[Ba]:t+"_values"},Qa=a=>N(a)?a:void 0,Va=a=>!0===a||N(a),Za=(a,t,n,e,s)=>{const c=ca();return q(a,(a,i)=>{const r=(l=j(t,_(a)?{[n]:a}:a),o=U.values(l),w=z(t),o.slice(0,w));var o,w,l;y(r[0])||e(i,r[0])||(s(i,r[0]),wa(c,i,r))}),c},at=/^\d+$/,tt=ca(),nt=ca(),et=ca(),st=(a,t,e,s,c,i,r,o={},w=0,l=[])=>{let d,_,f,$,I,b=0,C=0,P=0,U=0,M=0,G=0,H=0,W=0,j=0;const x={},B=o.destroy;la(tt,l,()=>0),la(nt,l,()=>[]),wa(et,l,(ia(et,l)??0)+1);const X=ca(),[q,J,K,z,V]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!Q(a)||!Q(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!Q(a)||!Q(t),t.setContent]:O(0))(r,a,w),[Z,aa,ta]=(a=>{let t;const[e,s]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{at.test(t)&&m(a)<1e3&&D(a,t)}]})(),c=ca(),i=(a,e,s,i)=>{let r,o=!1;if(R(((a,t=[n])=>{const e=[],s=(a,n)=>n==m(t)?D(e,a):y(t[n])?F(a,a=>s(a,n+1)):R([t[n],null],t=>s(ia(a,t),n+1));return s(a,0),e})(e,s),n=>F(n,n=>{const e=()=>ia(c,n)[0](t,...s??[],...i);a?(a=>{try{return a()}catch(a){(a=>{o||(r=a),o=!0})?.(a)}})(e):e()})),o)throw r};return[(s,i,r,o=[],w=()=>[])=>{t??=a();const l=e(1);return wa(c,l,[s,i,r,o,w]),Fa(ua(i,r??[n],Pa),l),l},(a,t,...n)=>i(!1,a,t,n),a=>E(ia(c,a),([,t,e])=>(ua(t,e??[n],void 0,t=>(k(t,a),p(t)?1:0)),wa(c,a),s(a),e)),a=>E(ia(c,a),([a,,n=[],e,s])=>{const c=(...i)=>{const r=m(i);r==m(n)?a(t,...i,...s(i)):y(n[r])?R(e[r]?.(...i)??[],a=>c(...i,a)):c(...i,n[r])};c()}),(a,t,...n)=>i(!0,a,t,n)]})(()=>Ta),na=a=>{a!=b&&(b=a,aa(X,void 0,b))},ea=()=>{ia(et,l)||ia(tt,l)||!v(ia(nt,l)??[])||(wa(tt,l),wa(nt,l),wa(et,l))},sa=t=>{(q&&N(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ra=async()=>{Aa()&&a.__?.[0]?.()&&await Na()},oa=a=>h(()=>_=a,()=>{_==a&&(_=void 0)}),ya=async a=>(2!=b&&(await h(async()=>{na(1),C++,await Oa(()=>T(async()=>{const n=await t();N(n)?sa(n):u(n)&&a?V(a):u(n)||O(1,n)},t=>{i?.(t),a&&V(a)}))},()=>na(0)),await ra()),Ta),da=async()=>{const a=H;H=0,a&&a==U&&!j&&(2==b?H=a:await ya())},Ea=async a=>{const t=++U;let n=!0;if(await _a(!0),t==U&&!j){const e=T(async()=>{const a=await s(async(a,e)=>{if(t==U&&!j)if(e||a){const t=n||2==b||!!G;M++,t&&G++,await h(async()=>{na(1),C++,await(t?Oa(()=>sa(e??a)):(()=>{try{return sa(e??a)}finally{na(0)}})())},()=>{t&&G--,--M||na(0)}),M||await ra()}else 2==b?H=t:await ya()});t!=U||j?u(a)||await c(a):d=a},i);await oa(e),t!=U||j||await h(()=>ya(a),()=>{n=!1})}return Ta},_a=async(a=!1)=>{H=0,a||U++;const t=_,n=d;return d=void 0,await oa(h(async()=>{await t},async()=>{u(n)||await T(()=>c(n),i)})),Ta},Na=async a=>(1!=b&&await h(()=>h(async()=>{na(2),P++,await Oa(()=>T(()=>e(J,a),i))},()=>na(0)),da),Ta),ma=async()=>{const t=++W;return await va(!0),t!=W||j||(await Na(),t!=W||j||(f=a.addDidFinishTransactionListener(()=>{if(t==W&&!j){const a=K();z(a)&&T(()=>Na(a))}}))),Ta},va=async(t=!1)=>{t||W++;const n=f;return f=void 0,u(n)||a.delListener(n),Ta},Aa=()=>!u(f),fa=async(a=!1)=>{const[t,n]=a?[va,_a]:[_a,va];return await h(()=>t(),async()=>{await n()}),Ta},Oa=async(...a)=>{let t,n=!1;const e=A(e=>v(a)?e():D(ia(nt,l),...g(a,(s,c)=>{const r=c==m(a)-1;return[async()=>{let a;I=A(t=>a=t),await h(async()=>{try{await T(s,i)}catch(a){n||(n=!0,t=a)}r&&e()},()=>{I=void 0,a()})},r?e:void 0,x]})));if(await(async()=>{if(!ia(tt,l)){wa(tt,l,1);const a=ia(nt,l);let t=0;await h(async()=>{for(;t<m(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{S(a,t),wa(tt,l,0),ea()})}})(),await e,n)throw t;return Ta},Ta={load:ya,startAutoLoad:Ea,stopAutoLoad:_a,isAutoLoading:()=>!u(d),save:Na,startAutoSave:ma,stopAutoSave:va,isAutoSaving:Aa,startAutoPersisting:async(a,t=!1)=>{const[n,e]=t?[ma,Ea]:[Ea,ma];return await n(a),await e(a),Ta},stopAutoPersisting:fa,getStatus:()=>b,addStatusListener:a=>Z(a,X),delListener:t=>(ta(t),a),schedule:Oa,getStore:()=>a,getStats:()=>({loads:C,saves:P}),...o,destroy:async()=>(u($)&&(j=1,$=(async()=>{const a=ia(nt,l),t=L(a,([,a,t])=>t!=x||(a?.(),!1)),n=I;S(a),D(a,...t),await h(()=>h(()=>h(fa,()=>n),()=>B?.()),()=>{const a=(ia(et,l)??1)-1;wa(et,l,a||void 0),ea()})})()),await $,Ta)};return Y(Ta)},ct=(a,n,s,i,r=it,o,w,l)=>{const y=ca(),d=ca();let E=a;return[async()=>{P(y),P(d),R(await s(E,n),({tn:a,cn:t,uq:n})=>{Fa(la(y,a,Pa),t),n&&Fa(la(d,a,Pa),t)})},async(a,t,n,e)=>{const s=u(e)?void 0:Pa(e);return((a,t)=>b(ia(y,a),t))(a,t)?B(L(g(await E($a+Sa(a)+pa(a,n)),a=>{const n=a[t],e=w?K(X(a,t),w):X(a,t);return[n,u(s)?e:B(L(J(e,(a,t)=>[t,a]),([a])=>(a=>u(s)||b(s,a))(a)))]}),a=>!u(a[0])&&!Q(a[1]))):{}},async(a,n,s,w,l,_=!1,N=c,m)=>{const A=u(m)?void 0:Pa(m),O=a=>u(A)||b(A,a),T=Pa();q(s??{},a=>R(L(W(a??{}),O),a=>Fa(T,a)));const $=C(T);if(u(A)&&!_&&l&&N==c&&v($)&&b(y,a))return await E("DROP "+Na+Sa(a)),wa(y,a),void wa(d,a);const h=ia(y,a),S=Pa(L(C(h),a=>a==n||O(a)));if(!v($))if(b(y,a)){if(await f(g([n,...$],async t=>{k(S,t)||(await E(fa+Sa(a)+"ADD"+Sa(t)+i),Fa(h,t))})),r==it&&!b(ia(d,a),n)){const e=t+"_pk_"+ea(V([a,n]));await E("CREATE UNIQUE INDEX IF NOT EXISTS"+Sa(e)+"ON"+Sa(a)+`(${Sa(n)})`),Fa(la(d,a,Pa),n)}}else await E(Ra+Sa(a)+`(${Sa(n)}${i} PRIMARY KEY${I(g($,a=>e+Sa(a)+i))});`),wa(y,a,Pa([n,...$])),wa(d,a,Pa([n]));if(await f([...!_&&w?g(C(S),async t=>{t!=n&&(await E(fa+Sa(a)+"DROP"+Sa(t)),k(h,t))}):[]]),_)u(s)?u(A)&&await E(Ta+Sa(a)+pa(a,N)):await f(J(s,async(t,e)=>{if(u(t))await E(Ta+Sa(a)+pa(a,N)+`AND(${Sa(n)}=$1)`,[e]);else if(!v($)){const s=L(W(t),O);v(s)||await r(E,a,n,s,{[e]:g(s,a=>o?o(t[a]):t[a])},h)}}));else if(v($))u(A)&&b(y,a)&&await E(Ta+Sa(a)+pa(a,N));else{const t=L(C(ia(y,a)),a=>a!=n&&O(a)),e=B(),c=[];q(s??{},(a,n)=>{x(e,n,g(t,t=>o?o(a?.[t]):a?.[t])),D(c,n)}),await r(E,a,n,t,e,h),await E(Ta+Sa(a)+pa(a,N)+`AND${Sa(n)}NOT IN(${ba(c)})`,c)}},async t=>{if(l)return await l(async a=>{const n=E;return E=a,await h(t,()=>{E=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await T(()=>a("ROLLBACK")),t}}]},it=async(a,t,n,s,c)=>{const i=[1];await a(ma+" INTO"+Sa(t)+"("+((...a)=>I(g(a,Sa),e))(n,...s)+")VALUES"+I(J(c,a=>"($"+i[0]+++","+ba(a,i)+")"),e)+"ON CONFLICT("+Sa(n)+`)DO ${Aa} SET`+I(g(s,a=>Sa(a)+"=excluded."+Sa(a)),e),J(c,(a,t)=>[t,...g(a,a=>a??null)]).flat())},rt=(a,t,n,e,s,c,i,[r,o,w],l,u,y,d,E,_,N,m,v)=>{const[A,f,O,T]=ct(t,l,u,E,_,void 0,void 0,v);return st(a,()=>T(async()=>{return await A(),a=(await f(r,o))[ya]?.[w]??"null",ta(Z(a));var a}),a=>T(async()=>{await A(),await O(r,o,{[ya]:{[w]:aa(a()??null)}},!0,!0)}),n,e,s,i,{[d]:()=>y,destroy:c},0,y)},ot=(a,t,n,e,s,c,i,[r,o,[w,l,y,d,E]],_,N,m,v,A,O,T,$,h)=>{const[R,I,S,D]=ct(t,_,N,A,O,T,$,h),b=(a,t)=>f(oa(o,async([n,e,s,c,i],r)=>{var o,w;t&&(o=a,w=r,!U.hasOwn(o,w))||await S(n,e,a[r],s,c,t,i)})),p=(a,t,n)=>B(1==n?L(J(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):L(g(t,t=>[t,a[t]]),([,a])=>!u(a))),C=async(a,t)=>l?await S(y,da,{[ya]:u(E)?a:p(a,E,t)},!0,!0,t,void 0,E):null;return st(a,()=>D(async()=>{await R();const a=await(async()=>B(L(await f(oa(r,async([a,t,n],e)=>[a,await I(e,t,n)])),a=>!Q(a[1]))))(),t=await(async()=>w?(await I(y,da,void 0,d))[ya]:{})();return Q(a)&&u(t)?void 0:[a,t]}),(a,t)=>D(async()=>{if(await R(),u(t)){const[t,n]=a();await b(t),await C(n)}else await b(t[0],!0),await C(t[1],!0)}),n,e,s,i,{[v]:()=>m,destroy:c},0,m)},wt=/^([cd]:)(.+)/,lt=ca(),ut=async(a,e,s,i,r)=>{const o=await(e.reserve?.());try{return((a,e,s,i,r,o,w,l,u,y,d="getDb")=>{const N=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(s,o),[m,,A,R]=(a=>{const n=(a=>j(Ka,_(a)?{[Ga]:a}:a??{}))(a),e=n[Ya];if(n.mode==Ma){const a=n[Ga]??t;return[1,e,[a,n[Ha]??da,n[Wa]??Ua],Pa(a)]}const{tables:{load:s={},save:i={}}={},values:r={}}=n,o=j(za,r),{load:w,save:l}=o,u=[Va(w),Va(l),o[Ba],Qa(w),Qa(l)],y=u[2],d=Pa(y),E=Pa(y),N=Za(s,{[xa]:null,[ja]:da,[Ja]:c},xa,a=>b(E,a),a=>Fa(d,a)),m=Za(i,{[Ba]:null,[ja]:da,[Xa]:0,[qa]:0,[Ja]:null},Ba,(a,t)=>b(E,t),(a,t)=>Fa(d,t));return ra(m,(a,t)=>t[4]??=ia(N,t[0])?.[2]??c),[0,e,[N,m,u],d]})(e);!m&&a.isMergeable()&&O(0);const L=n+ea(aa(A)),S=t+"_"+L,P=y??s,F=async(a,n,e="",s="")=>{const c=Da(t,a,L);return await N(ha+Ia+ga+c+`()RETURNS ${e}trigger AS $$ ${s}BEGIN ${n}END;$$ LANGUAGE plpgsql;`),c},k=async(a,t,n,e)=>(await N(ha+a+"TRIGGER"+t+n+"EXECUTE "+ga+e+"()"),t),U=a=>`PERFORM pg_notify('${S}',${a});`,M=(a,t)=>m?c:2===t?M(a,0)+" OR "+M(a,1):Ca(ia(A[0],a)?.[2]??c,0==t?"NEW":"OLD"),G=(a,n)=>f(g([ma,va,Aa],(e,s)=>k(Ia,Da(t,"d",L,a,e),`AFTER ${e} ON${Sa(a)}FOR EACH ROW WHEN(${M(a,s)})`,n))),H=async a=>{v(a)||await N(`DROP FUNCTION IF EXISTS${I(a,",")}CASCADE`)},W=(a,t)=>{ia(a,L)===t&&(wa(a,L),p(a)&&ia(lt,P)===a&&wa(lt,P))},Y=async()=>{const a=la(lt,P,()=>ca()),n=ia(a,L);if(n)return await n[1],n[0]?(n[0]++,n):(await T(()=>n[4]),await Y());const e=[],s=[1,void 0,e];wa(a,L,s),s[1]=(async()=>{const a=await F("c",`FOR row IN SELECT object_identity FROM pg_event_trigger_ddl_commands()${_a} command_tag='${Ra}' LOOP ${U("'c:'||SPLIT_PART(row.object_identity,'.',2)")}END LOOP;`,"event_","DECLARE row record;");D(e,a),await k("EVENT ",Da(t,"c",L),`ON ddl_command_end WHEN TAG IN('${Ra}')`,a);const n=await F("d",U("'d:'||TG_TABLE_NAME")+"RETURN NULL;");D(e,n),s[3]=n,await f(g(C(R),async a=>(await N(Ra+` IF NOT EXISTS${Sa(a)}("_id"text PRIMARY KEY)`),await G(a,n))))})();try{await s[1]}catch(t){throw s[0]=0,s[4]=h(()=>H(e),()=>W(a,s)),await T(()=>s[4]),t}return s},x=async a=>{if(0==--a[0]){const t=ia(lt,P);a[4]=h(()=>H(a[2]),()=>W(t,a)),await a[4]}};return(m?rt:ot)(a,N,async a=>{const t=await Y();try{return[await i(S,n=>{$(()=>{return E((e=n,s=wt,e?.match(s)),async([,n,e])=>{b(R,e)&&("c:"==n&&await G(e,t[3]),await a())});var e,s},w)}),t]}catch(a){throw await $(()=>x(t),w),a}},async([a,t])=>{await h(()=>r(a),()=>x(t))},w,l,u,A,C(R),async(a,t)=>await a(Ea+` c.table_name tn,c.column_name cn,CASE WHEN tc.constraint_type IN('PRIMARY KEY','UNIQUE')AND(${Ea} count(*) FROM information_schema.key_column_usage kcu2 ${_a} kcu2.constraint_schema=kcu.constraint_schema AND kcu2.constraint_name=kcu.constraint_name)=1 THEN 1 ELSE 0 END uq FROM information_schema.columns c LEFT JOIN information_schema.key_column_usage kcu ON kcu.table_schema=c.table_schema AND kcu.table_name=c.table_name AND kcu.column_name=c.column_name LEFT JOIN information_schema.table_constraints tc ON tc.constraint_schema=kcu.constraint_schema AND tc.constraint_name=kcu.constraint_name ${_a} c.table_schema='public'AND c.table_name IN(${ba(t)})`,t),y,d,"text",void 0,a=>V(a),a=>Z(a))})(a,s,o?.unsafe,async(a,t)=>e.listen(a,t),a=>T(a.unlisten,r),i,r,()=>o?.release?.(),3,e,"getSql")}catch(a){throw await(o?.release?.()),a}};export{ut as createPostgresPersister};
1
+ const a=a=>typeof a,t="tinybase",n="",e=",",s=a(n),c="true",i=(a,t,n)=>a.replace(t,n),r=Promise,o=a=>(t,n,e)=>a(t)?e?.():n(t),w=globalThis,l=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=o(l),E=o(u),_=t=>a(t)==s,N=a=>Array.isArray(a),m=a=>a.length,v=a=>0==m(a),A=(a,t)=>a.test(t),f=a=>new r(a),O=async a=>r.all(a),T=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},h=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},$=(a,t)=>h(a,a=>{h(()=>t?.(a))}),R=async(a,t)=>{try{return await a()}finally{await t()}},I=(a,t)=>a.forEach(t),g=(a,t="")=>a.join(t),L=(a,t)=>a.map(t),S=(a,t)=>a.filter(t),D=(a,t=m(a))=>a.splice(0,t),b=(a,...t)=>a.push(...t),p=(a,t)=>a?.has(t)??!1,C=a=>u(a)||0==(a=>a?.size??0)(a),P=a=>[...a?.values()??[]],F=a=>a.clear(),k=(a,t)=>a?.forEach(t),U=(a,t)=>a?.delete(t),M=Object,G=a=>M.getPrototypeOf(a),H=M.entries,W=a=>!l(a)&&d(G(a),a=>a==M.prototype||l(G(a)),()=>!0),Y=M.keys,j=M.freeze,x=(...a)=>M.assign(M.create(null),...a),B=(a,t,n)=>(M.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),X=(a=[])=>{const t=M.create(null);return I(a,([a,n])=>B(t,a,n)),t},q=(a,t)=>(delete a[t],a),J=(a,t)=>I(Y(a),n=>t(a[n],n)),K=(a,t)=>L(H(a),([a,n])=>t(n,a)),z=(a,t)=>{const n=X();return J(a,(a,e)=>B(n,e,t(a,e))),n},Q=a=>m(Y(a)),V=a=>W(a)&&0==Q(a),Z=JSON.stringify,aa=JSON.parse,ta=a=>Z(a,(a,t)=>u(t)?"":t),na=a=>""===a?void 0:N(a)?L(a,na):W(a)?z(a,na):a,ea=new w.TextEncoder,sa=a=>{let t=2166136261;return I(ea.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0},ca=Map,ia=a=>new ca(a),ra=(a,t)=>a?.get(t),oa=(a,t)=>k(a,(a,n)=>t(n,a)),wa=(a,t)=>{const n=[];return oa(a,(a,e)=>b(n,t(e,a))),n},la=(a,t,n)=>u(n)?(U(a,t),a):a?.set(t,n),ua=(a,t,n,e)=>{let s=ra(a,t);return p(a,t)?e?.(s):la(a,t,s=n()),s},ya=(a,t,n,e,s=0)=>E((n?ua:ra)(a,t[s],s>m(t)-2?n:ia),c=>{if(s>m(t)-2)return e?.(c)&&la(a,t[s]),c;const i=ya(c,t,n,e,s+1);return C(c)&&la(a,t[s]),i}),da="_",Ea="_id",_a="SELECT",Na="WHERE",ma="TABLE",va="INSERT",Aa="DELETE",fa="UPDATE",Oa="ALTER "+ma,Ta="FROM",ha=Aa+" "+Ta,$a=_a+"*"+Ta,Ra="CREATE ",Ia=Ra+ma,ga="OR REPLACE ",La="FUNCTION",Sa=/\$tableName/g,Da=a=>g(L(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${i(a,/"/g,'""')}"`),"."),ba=(...a)=>Da(g(a,"_")),pa=(a,t=[1])=>g(L(a,()=>"$"+t[0]++),e),Ca=(a,t=c)=>Na+`(${Pa(t,Da(a))})`,Pa=(a,t)=>i(a,Sa,t),Fa=a=>new Set(N(a)||u(a)?a:[a]),ka=(a,t)=>a?.add(t),Ua="ColumnName",Ma="store",Ga="json",Ha=Ma+"TableName",Wa=Ma+"Id"+Ua,Ya=Ma+Ua,ja="autoLoadIntervalSeconds",xa="rowId"+Ua,Ba="tableId",Xa="tableName",qa="deleteEmptyColumns",Ja="deleteEmptyTable",Ka="condition",za={mode:Ga,[ja]:1},Qa={load:0,save:0,[Xa]:t+"_values"},Va=a=>N(a)?a:void 0,Za=a=>!0===a||N(a),at=(a,t,n,e,s)=>{const c=ia();return J(a,(a,i)=>{const r=(l=x(t,_(a)?{[n]:a}:a),o=M.values(l),w=Q(t),o.slice(0,w));var o,w,l;y(r[0])||e(i,r[0])||(s(i,r[0]),la(c,i,r))}),c},tt=/^\d+$/,nt=ia(),et=ia(),st=ia(),ct=(a,t,e,s,c,i,r,o={},w=0,l=[])=>{let d,_,O,g,p,P=0,F=0,M=0,G=0,H=0,W=0,Y=0,x=0,B=0;const X={},q=o.destroy;ua(nt,l,()=>0),ua(et,l,()=>[]),la(st,l,(ra(st,l)??0)+1);const J=ia(),[K,z,Q,Z,aa]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!V(a)||!V(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!V(a)||!V(t),t.setContent]:T(0))(r,a,w),[ta,na,ea]=(a=>{let t;const[e,s]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{A(tt,t)&&m(a)<1e3&&b(a,t)}]})(),c=ia(),i=(a,e,s,i)=>{let r,o=!1;if(I(((a,t=[n])=>{const e=[],s=(a,n)=>n==m(t)?b(e,a):y(t[n])?k(a,a=>s(a,n+1)):I([t[n],null],t=>s(ra(a,t),n+1));return s(a,0),e})(e,s),n=>k(n,n=>{const e=()=>ra(c,n)[0](t,...s??[],...i);a?(a=>{try{return a()}catch(a){(a=>{o||(r=a),o=!0})?.(a)}})(e):e()})),o)throw r};return[(s,i,r,o=[],w=()=>[])=>{t??=a();const l=e(1);return la(c,l,[s,i,r,o,w]),ka(ya(i,r??[n],Fa),l),l},(a,t,...n)=>i(!1,a,t,n),a=>E(ra(c,a),([,t,e])=>(ya(t,e??[n],void 0,t=>(U(t,a),C(t)?1:0)),la(c,a),s(a),e)),a=>E(ra(c,a),([a,,n=[],e,s])=>{const c=(...i)=>{const r=m(i);r==m(n)?a(t,...i,...s(i)):y(n[r])?I(e[r]?.(...i)??[],a=>c(...i,a)):c(...i,n[r])};c()}),(a,t,...n)=>i(!0,a,t,n)]})(()=>$a),sa=a=>{a!=P&&(P=a,na(J,void 0,P))},ca=()=>{ra(st,l)||ra(nt,l)||!v(ra(et,l)??[])||(la(nt,l),la(et,l),la(st,l))},oa=t=>{(K&&N(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},wa=async()=>{Oa()&&a.__?.[0]?.()&&await va()},da=a=>R(()=>_=a,()=>{_==a&&(_=void 0)}),Ea=async a=>(2!=P&&(await R(async()=>{sa(1),F++,await ha(()=>h(async()=>{const n=await t();N(n)?oa(n):u(n)&&a?aa(a):u(n)||T(1,n)},t=>{i?.(t),a&&aa(a)}))},()=>sa(0)),await wa()),$a),_a=async()=>{const a=Y;Y=0,a&&a==G&&!B&&(2==P?Y=a:await Ea())},Na=async a=>{const t=++G;let n=!0;if(await ma(!0),t==G&&!B){const e=h(async()=>{const a=await s(async(a,e)=>{if(t==G&&!B)if(e||a){const t=n||2==P||!!W;H++,t&&W++,await R(async()=>{sa(1),F++,await(t?ha(()=>oa(e??a)):(()=>{try{return oa(e??a)}finally{sa(0)}})())},()=>{t&&W--,--H||sa(0)}),H||await wa()}else 2==P?Y=t:await Ea()});t!=G||B?u(a)||await c(a):d=a},i);await da(e),t!=G||B||await R(()=>Ea(a),()=>{n=!1})}return $a},ma=async(a=!1)=>{Y=0,a||G++;const t=_,n=d;return d=void 0,await da(R(async()=>{await t},async()=>{u(n)||await h(()=>c(n),i)})),$a},va=async a=>(1!=P&&await R(()=>R(async()=>{sa(2),M++,await ha(()=>h(()=>e(z,a),i))},()=>sa(0)),_a),$a),Aa=async()=>{const t=++x;return await fa(!0),t!=x||B||(await va(),t!=x||B||(O=a.addDidFinishTransactionListener(()=>{if(t==x&&!B){const a=Q();Z(a)&&h(()=>va(a))}}))),$a},fa=async(t=!1)=>{t||x++;const n=O;return O=void 0,u(n)||a.delListener(n),$a},Oa=()=>!u(O),Ta=async(a=!1)=>{const[t,n]=a?[fa,ma]:[ma,fa];return await R(()=>t(),async()=>{await n()}),$a},ha=async(...a)=>{let t,n=!1;const e=f(e=>v(a)?e():b(ra(et,l),...L(a,(s,c)=>{const r=c==m(a)-1;return[async()=>{let a;p=f(t=>a=t),await R(async()=>{try{await h(s,i)}catch(a){n||(n=!0,t=a)}r&&e()},()=>{p=void 0,a()})},r?e:void 0,X]})));if(await(async()=>{if(!ra(nt,l)){la(nt,l,1);const a=ra(et,l);let t=0;await R(async()=>{for(;t<m(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{D(a,t),la(nt,l,0),ca()})}})(),await e,n)throw t;return $a},$a={load:Ea,startAutoLoad:Na,stopAutoLoad:ma,isAutoLoading:()=>!u(d),save:va,startAutoSave:Aa,stopAutoSave:fa,isAutoSaving:Oa,startAutoPersisting:async(a,t=!1)=>{const[n,e,s,c]=t?[Aa,Na,fa,ma]:[Na,Aa,ma,fa],i=n(a),r=t?x:G;await i;const o=e(a),w=t?G:x;try{await o}catch(a){throw w==(t?G:x)&&await $(c),r==(t?x:G)&&await $(s),a}return $a},stopAutoPersisting:Ta,getStatus:()=>P,addStatusListener:a=>ta(a,J),delListener:t=>(ea(t),a),schedule:ha,getStore:()=>a,getStats:()=>({loads:F,saves:M}),...o,destroy:async()=>(u(g)&&(B=1,g=(async()=>{const a=ra(et,l),t=S(a,([,a,t])=>t!=X||(a?.(),!1)),n=p;D(a),b(a,...t),await R(()=>R(()=>R(Ta,()=>n),()=>q?.()),()=>{const a=(ra(st,l)??1)-1;la(st,l,a||void 0),ca()})})()),await g,$a)};return j($a)},it=(a,n,s,i,r=rt,o,w,l)=>{const y=ia(),d=ia();let E=a;return[async()=>{F(y),F(d),I(await s(E,n),({tn:a,cn:t,uq:n})=>{ka(ua(y,a,Fa),t),n&&ka(ua(d,a,Fa),t)})},async(a,t,n,e)=>{const s=u(e)?void 0:Fa(e);return((a,t)=>p(ra(y,a),t))(a,t)?X(S(L(await E($a+Da(a)+Ca(a,n)),a=>{const n=a[t],e=w?z(q(a,t),w):q(a,t);return[n,u(s)?e:X(S(K(e,(a,t)=>[t,a]),([a])=>(a=>u(s)||p(s,a))(a)))]}),a=>!u(a[0])&&!V(a[1]))):{}},async(a,n,s,w,l,_=!1,N=c,m)=>{const A=u(m)?void 0:Fa(m),f=a=>u(A)||p(A,a),T=Fa();J(s??{},a=>I(S(Y(a??{}),f),a=>ka(T,a)));const h=P(T);if(u(A)&&!_&&l&&N==c&&v(h)&&p(y,a))return await E("DROP "+ma+Da(a)),la(y,a),void la(d,a);const $=ra(y,a),R=Fa(S(P($),a=>a==n||f(a)));if(!v(h))if(p(y,a)){if(await O(L([n,...h],async t=>{U(R,t)||(await E(Oa+Da(a)+"ADD"+Da(t)+i),ka($,t))})),r==rt&&!p(ra(d,a),n)){const e=t+"_pk_"+sa(Z([a,n]));await E("CREATE UNIQUE INDEX IF NOT EXISTS"+Da(e)+"ON"+Da(a)+`(${Da(n)})`),ka(ua(d,a,Fa),n)}}else await E(Ia+Da(a)+`(${Da(n)}${i} PRIMARY KEY${g(L(h,a=>e+Da(a)+i))});`),la(y,a,Fa([n,...h])),la(d,a,Fa([n]));if(await O([...!_&&w?L(P(R),async t=>{t!=n&&(await E(Oa+Da(a)+"DROP"+Da(t)),U($,t))}):[]]),_)u(s)?u(A)&&await E(ha+Da(a)+Ca(a,N)):await O(K(s,async(t,e)=>{if(u(t))await E(ha+Da(a)+Ca(a,N)+`AND(${Da(n)}=$1)`,[e]);else if(!v(h)){const s=S(Y(t),f);v(s)||await r(E,a,n,s,{[e]:L(s,a=>o?o(t[a]):t[a])},$)}}));else if(v(h))u(A)&&p(y,a)&&await E(ha+Da(a)+Ca(a,N));else{const t=S(P(ra(y,a)),a=>a!=n&&f(a)),e=X(),c=[];J(s??{},(a,n)=>{B(e,n,L(t,t=>o?o(a?.[t]):a?.[t])),b(c,n)}),await r(E,a,n,t,e,$),await E(ha+Da(a)+Ca(a,N)+`AND${Da(n)}NOT IN(${pa(c)})`,c)}},async t=>{if(l)return await l(async a=>{const n=E;return E=a,await R(t,()=>{E=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await h(()=>a("ROLLBACK")),t}}]},rt=async(a,t,n,s,c)=>{const i=[1];await a(va+" INTO"+Da(t)+"("+((...a)=>g(L(a,Da),e))(n,...s)+")VALUES"+g(K(c,a=>"($"+i[0]+++","+pa(a,i)+")"),e)+"ON CONFLICT("+Da(n)+`)DO ${fa} SET`+g(L(s,a=>Da(a)+"=excluded."+Da(a)),e),K(c,(a,t)=>[t,...L(a,a=>a??null)]).flat())},ot=(a,t,n,e,s,c,i,[r,o,w],l,u,y,d,E,_,N,m,v)=>{const[A,f,O,T]=it(t,l,u,E,_,void 0,void 0,v);return ct(a,()=>T(async()=>{return await A(),a=(await f(r,o))[da]?.[w]??"null",na(aa(a));var a}),a=>T(async()=>{await A(),await O(r,o,{[da]:{[w]:ta(a()??null)}},!0,!0)}),n,e,s,i,{[d]:()=>y,destroy:c},0,y)},wt=(a,t,n,e,s,c,i,[r,o,[w,l,y,d,E]],_,N,m,v,A,f,T,h,$)=>{const[R,I,g,D]=it(t,_,N,A,f,T,h,$),b=(a,t)=>O(wa(o,async([n,e,s,c,i],r)=>{var o,w;t&&(o=a,w=r,!M.hasOwn(o,w))||await g(n,e,a[r],s,c,t,i)})),p=(a,t,n)=>X(1==n?S(K(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):S(L(t,t=>[t,a[t]]),([,a])=>!u(a))),C=async(a,t)=>l?await g(y,Ea,{[da]:u(E)?a:p(a,E,t)},!0,!0,t,void 0,E):null;return ct(a,()=>D(async()=>{await R();const a=await(async()=>X(S(await O(wa(r,async([a,t,n],e)=>[a,await I(e,t,n)])),a=>!V(a[1]))))(),t=await(async()=>w?(await I(y,Ea,void 0,d))[da]:{})();return V(a)&&u(t)?void 0:[a,t]}),(a,t)=>D(async()=>{if(await R(),u(t)){const[t,n]=a();await b(t),await C(n)}else await b(t[0],!0),await C(t[1],!0)}),n,e,s,i,{[v]:()=>m,destroy:c},0,m)},lt=/^([cd]:)(.+)/,ut=/^[A-Za-z0-9_]+$/,yt=ia(),dt=async(a,e,s,i,r)=>{const o=await(e.reserve?.());try{return((a,e,s,i,r,o,w,l,u,y,d="getDb")=>{const N=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(s,o),[f,,I,S]=(a=>{const n=(a=>x(za,_(a)?{[Ha]:a}:a??{}))(a),e=n[ja];if(n.mode==Ga){const a=n[Ha]??t;return[1,e,[a,n[Wa]??Ea,n[Ya]??Ma],Fa(a)]}const{tables:{load:s={},save:i={}}={},values:r={}}=n,o=x(Qa,r),{load:w,save:l}=o,u=[Za(w),Za(l),o[Xa],Va(w),Va(l)],y=u[2],d=Fa(y),E=Fa(y),N=at(s,{[Ba]:null,[xa]:Ea,[Ka]:c},Ba,a=>p(E,a),a=>ka(d,a)),m=at(i,{[Xa]:null,[xa]:Ea,[qa]:0,[Ja]:0,[Ka]:null},Xa,(a,t)=>p(E,t),(a,t)=>ka(d,t));return oa(m,(a,t)=>t[4]??=ra(N,t[0])?.[2]??c),[0,e,[N,m,u],d]})(e);!f&&a.isMergeable()&&T(0);const D=n+sa(ta(I)),F=t+"_"+D,k=y??s,U=async(a,n,e="",s="")=>{const c=ba(t,a,D);return await N(Ra+ga+La+c+`()RETURNS ${e}trigger AS $$ ${s}BEGIN ${n}END;$$ LANGUAGE plpgsql;`),c},M=async(a,t,n,e)=>(await N(Ra+a+"TRIGGER"+t+n+"EXECUTE "+La+e+"()"),t),G=a=>`PERFORM pg_notify('${F}',${a});`,H=(a,t)=>f?c:2===t?H(a,0)+" OR "+H(a,1):Pa(ra(I[0],a)?.[2]??c,0==t?"NEW":"OLD"),W=(a,e)=>O(L([va,Aa,fa],(s,c)=>{const i=g([t,"d",D,a,s],"_");return M(ga,A(ut,a)&&m(i)<=63?Da(i):ba(t,"d",D,s,n+sa(a)),`AFTER ${s} ON${Da(a)}FOR EACH ROW WHEN(${H(a,c)})`,e)})),Y=async a=>{v(a)||await N(`DROP FUNCTION IF EXISTS${g(a,",")}CASCADE`)},j=(a,t)=>{ra(a,D)===t&&(la(a,D),C(a)&&ra(yt,k)===a&&la(yt,k))},B=async()=>{const a=ua(yt,k,()=>ia()),n=ra(a,D);if(n)return await n[1],n[0]?(n[0]++,n):(await h(()=>n[4]),await B());const e=[],s=[1,void 0,e];la(a,D,s),s[1]=(async()=>{const a=await U("c",`FOR row IN SELECT object_identity FROM pg_event_trigger_ddl_commands()${Na} command_tag='${Ia}' LOOP ${G("'c:'||SPLIT_PART(row.object_identity,'.',2)")}END LOOP;`,"event_","DECLARE row record;");b(e,a),await M("EVENT ",ba(t,"c",D),`ON ddl_command_end WHEN TAG IN('${Ia}')`,a);const n=await U("d",G("'d:'||TG_TABLE_NAME")+"RETURN NULL;");b(e,n),s[3]=n,await O(L(P(S),async a=>(await N(Ia+` IF NOT EXISTS${Da(a)}("_id"text PRIMARY KEY)`),await W(a,n))))})();try{await s[1]}catch(t){throw s[0]=0,s[4]=R(()=>Y(e),()=>j(a,s)),await h(()=>s[4]),t}return s},X=async a=>{if(0==--a[0]){const t=ra(yt,k);a[4]=R(()=>Y(a[2]),()=>j(t,a)),await a[4]}};return(f?ot:wt)(a,N,async a=>{const t=await B();try{return[await i(F,n=>{$(()=>{return E((e=n,s=lt,e?.match(s)),async([,n,e])=>{p(S,e)&&("c:"==n&&await W(e,t[3]),await a())});var e,s},w)}),t]}catch(a){throw await $(()=>X(t),w),a}},async([a,t])=>{await R(()=>r(a),()=>X(t))},w,l,u,I,P(S),async(a,t)=>await a(_a+` c.table_name tn,c.column_name cn,CASE WHEN tc.constraint_type IN('PRIMARY KEY','UNIQUE')AND(${_a} count(*) FROM information_schema.key_column_usage kcu2 ${Na} kcu2.constraint_schema=kcu.constraint_schema AND kcu2.constraint_name=kcu.constraint_name)=1 THEN 1 ELSE 0 END uq FROM information_schema.columns c LEFT JOIN information_schema.key_column_usage kcu ON kcu.table_schema=c.table_schema AND kcu.table_name=c.table_name AND kcu.column_name=c.column_name LEFT JOIN information_schema.table_constraints tc ON tc.constraint_schema=kcu.constraint_schema AND tc.constraint_name=kcu.constraint_name ${Na} c.table_schema='public'AND c.table_name IN(${pa(t)})`,t),y,d,"text",void 0,a=>Z(a),a=>aa(a))})(a,s,o?.unsafe,async(a,t)=>e.listen(a,t),a=>h(a.unlisten,r),i,r,()=>o?.release?.(),3,e,"getSql")}catch(a){throw await(o?.release?.()),a}};export{dt as createPostgresPersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",n="",e=",",s=a(n),i="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)==s,$=a=>Array.isArray(a),N=a=>a.length,m=a=>0==N(a),A=()=>{},_=a=>new o(a),g=async a=>o.all(a),T=(a,t)=>a.forEach(t),h=(a,t="")=>a.join(t),O=(a,t)=>a.map(t),p=(a,t)=>a.filter(t),S=(a,t=N(a))=>a.splice(0,t),I=(a,...t)=>a.push(...t),b=(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)}},D=(a,t)=>R(a,a=>{R(()=>t?.(a))}),L=async(a,t)=>{try{return await a()}finally{await t()}},C=Object,P=a=>C.getPrototypeOf(a),M=C.entries,F=a=>!w(a)&&v(P(a),a=>a==C.prototype||w(P(a)),()=>!0),x=C.keys,U=C.freeze,B=(...a)=>C.assign(C.create(null),...a),j=(a,t,n)=>(C.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),k=(a=[])=>{const t=C.create(null);return T(a,([a,n])=>j(t,a,n)),t},q=(a,t)=>(delete a[t],a),G=(a,t)=>T(x(a),n=>t(a[n],n)),J=(a,t)=>O(M(a),([a,n])=>t(n,a)),X=(a,t)=>{const n=k();return G(a,(a,e)=>j(n,e,t(a,e))),n},Y=a=>N(x(a)),z=a=>F(a)&&0==Y(a),H="_",K="_id",V="SELECT",Q="WHERE",W="TABLE",Z="INSERT",aa="UPDATE",ta="ALTER "+W,na="FROM",ea="DELETE "+na,sa=V+"*"+na,ia="pragma_",ra="data_version",oa="schema_version",ca="pragma_table_",la="CREATE "+W,wa=/\$tableName/g,ua=a=>h(O(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),ya=(...a)=>h(O(a,ua),e),da=(a,t=[1])=>h(O(a,()=>"$"+t[0]++),e),va=(a,t=i)=>Q+`(${fa(t,ua(a))})`,fa=(a,t)=>r(a,wa,t),Ea=(a,t)=>a?.has(t)??!1,$a=a=>u(a)||0==(a=>a?.size??0)(a),Na=a=>[...a?.values()??[]],ma=a=>a.clear(),Aa=(a,t)=>a?.forEach(t),_a=(a,t)=>a?.delete(t),ga=Map,Ta=a=>new ga(a),ha=(a,t)=>a?.get(t),Oa=(a,t)=>Aa(a,(a,n)=>t(n,a)),pa=(a,t)=>{const n=[];return Oa(a,(a,e)=>I(n,t(e,a))),n},Sa=(a,t,n)=>u(n)?(_a(a,t),a):a?.set(t,n),Ia=(a,t,n,e)=>{let s=ha(a,t);return Ea(a,t)?e?.(s):Sa(a,t,s=n()),s},ba=(a,t,n,e,s=0)=>f((n?Ia:ha)(a,t[s],s>N(t)-2?n:Ta),i=>{if(s>N(t)-2)return e?.(i)&&Sa(a,t[s]),i;const r=ba(i,t,n,e,s+1);return $a(i)&&Sa(a,t[s]),r}),Ra=a=>new Set($(a)||u(a)?a:[a]),Da=(a,t)=>a?.add(t),La="ColumnName",Ca="store",Pa="json",Ma=Ca+"TableName",Fa=Ca+"Id"+La,xa=Ca+La,Ua="autoLoadIntervalSeconds",Ba="rowId"+La,ja="tableId",ka="tableName",qa="deleteEmptyColumns",Ga="deleteEmptyTable",Ja="condition",Xa={mode:Pa,[Ua]:1},Ya={load:0,save:0,[ka]:t+"_values"},za=a=>$(a)?a:void 0,Ha=a=>d(a)||$(a),Ka=(a,t,n,e,s)=>{const i=Ta();return G(a,(a,r)=>{const o=(w=B(t,E(a)?{[n]:a}:a),c=C.values(w),l=Y(t),c.slice(0,l));var c,l,w;y(o[0])||e(r,o[0])||(s(r,o[0]),Sa(i,r,o))}),i},Va=JSON.stringify,Qa=JSON.parse,Wa=a=>""===a?void 0:$(a)?O(a,Wa):F(a)?X(a,Wa):a,Za=/^\d+$/,at=Ta(),tt=Ta(),nt=Ta(),et=(a,t,e,s,i,r,o,c={},l=0,w=[])=>{let d,v,E,A,g,h=0,D=0,C=0,P=0,M=0,F=0,x=0,B=0,j=0;const k={},q=c.destroy;Ia(at,w,()=>0),Ia(tt,w,()=>[]),Sa(nt,w,(ha(nt,w)??0)+1);const G=Ta(),[J,X,Y,H,K]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!z(a)||!z(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!z(a)||!z(t),t.setContent]:b(0))(o,a,l),[V,Q,W]=(a=>{let t;const[e,s]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{Za.test(t)&&N(a)<1e3&&I(a,t)}]})(),i=Ta(),r=(a,e,s,r)=>{let o,c=!1;if(T(((a,t=[n])=>{const e=[],s=(a,n)=>n==N(t)?I(e,a):y(t[n])?Aa(a,a=>s(a,n+1)):T([t[n],null],t=>s(ha(a,t),n+1));return s(a,0),e})(e,s),n=>Aa(n,n=>{const e=()=>ha(i,n)[0](t,...s??[],...r);a?(a=>{try{return a()}catch(a){(a=>{c||(o=a),c=!0})?.(a)}})(e):e()})),c)throw o};return[(s,r,o,c=[],l=()=>[])=>{t??=a();const w=e(1);return Sa(i,w,[s,r,o,c,l]),Da(ba(r,o??[n],Ra),w),w},(a,t,...n)=>r(!1,a,t,n),a=>f(ha(i,a),([,t,e])=>(ba(t,e??[n],void 0,t=>(_a(t,a),$a(t)?1:0)),Sa(i,a),s(a),e)),a=>f(ha(i,a),([a,,n=[],e,s])=>{const i=(...r)=>{const o=N(r);o==N(n)?a(t,...r,...s(r)):y(n[o])?T(e[o]?.(...r)??[],a=>i(...r,a)):i(...r,n[o])};i()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>va),Z=a=>{a!=h&&(h=a,Q(G,void 0,h))},aa=()=>{ha(nt,w)||ha(at,w)||!m(ha(tt,w)??[])||(Sa(at,w),Sa(tt,w),Sa(nt,w))},ta=t=>{(J&&$(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},na=async()=>{ua()&&a.__?.[0]?.()&&await ca()},ea=a=>L(()=>v=a,()=>{v==a&&(v=void 0)}),sa=async a=>(2!=h&&(await L(async()=>{Z(1),D++,await da(()=>R(async()=>{const n=await t();$(n)?ta(n):u(n)&&a?K(a):u(n)||b(1,n)},t=>{r?.(t),a&&K(a)}))},()=>Z(0)),await na()),va),ia=async()=>{const a=x;x=0,a&&a==P&&!j&&(2==h?x=a:await sa())},ra=async a=>{const t=++P;let n=!0;if(await oa(!0),t==P&&!j){const e=R(async()=>{const a=await s(async(a,e)=>{if(t==P&&!j)if(e||a){const t=n||2==h||!!F;M++,t&&F++,await L(async()=>{Z(1),D++,await(t?da(()=>ta(e??a)):(()=>{try{return ta(e??a)}finally{Z(0)}})())},()=>{t&&F--,--M||Z(0)}),M||await na()}else 2==h?x=t:await sa()});t!=P||j?u(a)||await i(a):d=a},r);await ea(e),t!=P||j||await L(()=>sa(a),()=>{n=!1})}return va},oa=async(a=!1)=>{x=0,a||P++;const t=v,n=d;return d=void 0,await ea(L(async()=>{await t},async()=>{u(n)||await R(()=>i(n),r)})),va},ca=async a=>(1!=h&&await L(()=>L(async()=>{Z(2),C++,await da(()=>R(()=>e(X,a),r))},()=>Z(0)),ia),va),la=async()=>{const t=++B;return await wa(!0),t!=B||j||(await ca(),t!=B||j||(E=a.addDidFinishTransactionListener(()=>{if(t==B&&!j){const a=Y();H(a)&&R(()=>ca(a))}}))),va},wa=async(t=!1)=>{t||B++;const n=E;return E=void 0,u(n)||a.delListener(n),va},ua=()=>!u(E),ya=async(a=!1)=>{const[t,n]=a?[wa,oa]:[oa,wa];return await L(()=>t(),async()=>{await n()}),va},da=async(...a)=>{let t,n=!1;const e=_(e=>m(a)?e():I(ha(tt,w),...O(a,(s,i)=>{const o=i==N(a)-1;return[async()=>{let a;g=_(t=>a=t),await L(async()=>{try{await R(s,r)}catch(a){n||(n=!0,t=a)}o&&e()},()=>{g=void 0,a()})},o?e:void 0,k]})));if(await(async()=>{if(!ha(at,w)){Sa(at,w,1);const a=ha(tt,w);let t=0;await L(async()=>{for(;t<N(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{S(a,t),Sa(at,w,0),aa()})}})(),await e,n)throw t;return va},va={load:sa,startAutoLoad:ra,stopAutoLoad:oa,isAutoLoading:()=>!u(d),save:ca,startAutoSave:la,stopAutoSave:wa,isAutoSaving:ua,startAutoPersisting:async(a,t=!1)=>{const[n,e]=t?[la,ra]:[ra,la];return await n(a),await e(a),va},stopAutoPersisting:ya,getStatus:()=>h,addStatusListener:a=>V(a,G),delListener:t=>(W(t),a),schedule:da,getStore:()=>a,getStats:()=>({loads:D,saves:C}),...c,destroy:async()=>(u(A)&&(j=1,A=(async()=>{const a=ha(tt,w),t=p(a,([,a,t])=>t!=k||(a?.(),!1)),n=g;S(a),I(a,...t),await L(()=>L(()=>L(ya,()=>n),()=>q?.()),()=>{const a=(ha(nt,w)??1)-1;Sa(nt,w,a||void 0),aa()})})()),await A,va)};return U(va)},st=new l.TextEncoder,it=(a,n,s,r,o=rt,c,l,w)=>{const y=Ta(),d=Ta();let v=a;return[async()=>{ma(y),ma(d),T(await s(v,n),({tn:a,cn:t,uq:n})=>{Da(Ia(y,a,Ra),t),n&&Da(Ia(d,a,Ra),t)})},async(a,t,n,e)=>{const s=u(e)?void 0:Ra(e);return((a,t)=>Ea(ha(y,a),t))(a,t)?k(p(O(await v(sa+ua(a)+va(a,n)),a=>{const n=a[t],e=l?X(q(a,t),l):q(a,t);return[n,u(s)?e:k(p(J(e,(a,t)=>[t,a]),([a])=>(a=>u(s)||Ea(s,a))(a)))]}),a=>!u(a[0])&&!z(a[1]))):{}},async(a,n,s,l,w,f=!1,E=i,$)=>{const N=u($)?void 0:Ra($),A=a=>u(N)||Ea(N,a),_=Ra();G(s??{},a=>T(p(x(a??{}),A),a=>Da(_,a)));const S=Na(_);if(u(N)&&!f&&w&&E==i&&m(S)&&Ea(y,a))return await v("DROP "+W+ua(a)),Sa(y,a),void Sa(d,a);const b=ha(y,a),R=Ra(p(Na(b),a=>a==n||A(a)));if(!m(S))if(Ea(y,a)){if(await g(O([n,...S],async t=>{_a(R,t)||(await v(ta+ua(a)+"ADD"+ua(t)+r),Da(b,t))})),o==rt&&!Ea(ha(d,a),n)){const e=t+"_pk_"+(a=>{let t=2166136261;return T(st.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(Va([a,n]));await v("CREATE UNIQUE INDEX IF NOT EXISTS"+ua(e)+"ON"+ua(a)+`(${ua(n)})`),Da(Ia(d,a,Ra),n)}}else await v(la+ua(a)+`(${ua(n)}${r} PRIMARY KEY${h(O(S,a=>e+ua(a)+r))});`),Sa(y,a,Ra([n,...S])),Sa(d,a,Ra([n]));if(await g([...!f&&l?O(Na(R),async t=>{t!=n&&(await v(ta+ua(a)+"DROP"+ua(t)),_a(b,t))}):[]]),f)u(s)?u(N)&&await v(ea+ua(a)+va(a,E)):await g(J(s,async(t,e)=>{if(u(t))await v(ea+ua(a)+va(a,E)+`AND(${ua(n)}=$1)`,[e]);else if(!m(S)){const s=p(x(t),A);m(s)||await o(v,a,n,s,{[e]:O(s,a=>c?c(t[a]):t[a])},b)}}));else if(m(S))u(N)&&Ea(y,a)&&await v(ea+ua(a)+va(a,E));else{const t=p(Na(ha(y,a)),a=>a!=n&&A(a)),e=k(),i=[];G(s??{},(a,n)=>{j(e,n,O(t,t=>c?c(a?.[t]):a?.[t])),I(i,n)}),await o(v,a,n,t,e,b),await v(ea+ua(a)+va(a,E)+`AND${ua(n)}NOT IN(${da(i)})`,i)}},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}}]},rt=async(a,t,n,s,i)=>{const r=[1];await a(Z+" INTO"+ua(t)+"("+ya(n,...s)+")VALUES"+h(J(i,a=>"($"+r[0]+++","+da(a,r)+")"),e)+"ON CONFLICT("+ua(n)+`)DO ${aa} SET`+h(O(s,a=>ua(a)+"=excluded."+ua(a)),e),J(i,(a,t)=>[t,...O(a,a=>a??null)]).flat())},ot=(a,t,n,e,s,i,r,[o,c,l],w,y,d,v,f,E,$,N,m)=>{const[A,_,g,T]=it(t,w,y,f,E,void 0,void 0,m);return et(a,()=>T(async()=>{return await A(),a=(await _(o,c))[H]?.[l]??"null",Wa(Qa(a));var a}),a=>T(async()=>{var t;await A(),await g(o,c,{[H]:{[l]:(t=a()??null,Va(t,(a,t)=>u(t)?"":t))}},!0,!0)}),n,e,s,r,{[v]:()=>d,destroy:i},0,d)},ct=(a,t,n,e,s,i,r,[o,c,[l,w,y,d,v]],f,E,$,N,m,A,_,T,h)=>{const[S,I,b,R]=it(t,f,E,m,A,_,T,h),D=(a,t)=>g(pa(c,async([n,e,s,i,r],o)=>{var c,l;t&&(c=a,l=o,!C.hasOwn(c,l))||await b(n,e,a[o],s,i,t,r)})),L=(a,t,n)=>k(1==n?p(J(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):p(O(t,t=>[t,a[t]]),([,a])=>!u(a))),P=async(a,t)=>w?await b(y,K,{[H]:u(v)?a:L(a,v,t)},!0,!0,t,void 0,v):null;return et(a,()=>R(async()=>{await S();const a=await(async()=>k(p(await g(pa(o,async([a,t,n],e)=>[a,await I(e,t,n)])),a=>!z(a[1]))))(),t=await(async()=>l?(await I(y,K,void 0,d))[H]:{})();return z(a)&&u(t)?void 0:[a,t]}),(a,t)=>R(async()=>{if(await S(),u(t)){const[t,n]=a();await D(t),await P(n)}else await D(t[0],!0),await P(t[1],!0)}),n,e,s,r,{[N]:()=>$,destroy:i},0,$)},lt=(a,e,s,r,c,l,y,v,f,$,N="getDb",m,A)=>{let _,g,T;const h=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(s,l),[O,p,S,I]=(a=>{const n=(a=>B(Xa,E(a)?{[Ma]:a}:a??{}))(a),e=n[Ua];if(n.mode==Pa){const a=n[Ma]??t;return[1,e,[a,n[Fa]??K,n[xa]??Ca],Ra(a)]}const{tables:{load:s={},save:r={}}={},values:o={}}=n,c=B(Ya,o),{load:l,save:w}=c,u=[Ha(l),Ha(w),c[ka],za(l),za(w)],y=u[2],d=Ra(y),v=Ra(y),f=Ka(s,{[ja]:null,[Ba]:K,[Ja]:i},ja,a=>Ea(v,a),a=>Da(d,a)),$=Ka(r,{[ka]:null,[Ba]:K,[qa]:0,[Ga]:0,[Ja]:null},ka,(a,t)=>Ea(v,t),(a,t)=>Da(d,t));return Oa($,(a,t)=>t[4]??=ha(f,t[0])?.[2]??i),[0,e,[f,$,u],d]})(e);return!O&&a.isMergeable()&&b(0),(O?ot:ct)(a,h,a=>{let t,n,e=1,s=0,i=0;const l=async(t=!0)=>{const[{d:n,s:s,c:r}]=await h(V+` ${ra} d,${oa} s,TOTAL_CHANGES() c FROM ${ia}${ra} JOIN ${ia}${oa}`);if(e&&(n!=_||s!=g||r!=T)){const o=t&&!i&&!w(_);_=n,g=s,T=r,o&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const o=L(()=>D(async()=>{for(s?r&&await l():(await l(!1),s=1);e&&i;)i=0,await l(!1),e&&(await a(),await l())},y),()=>{n==o&&(n=void 0),e&&(i?v():e&&u(t)&&(t=setInterval(()=>v(!0),1e3*p)))});return n=o,o},f=r(a=>{e&&Ea(I,a)&&(i=1,d(),o.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,i=0,d(),await L(async()=>await n,async()=>{_=g=T=null,await c(f)})})},a=>a(),y,v,f,S,Na(I),async(a,t)=>await a(V+` t.name tn,c.name cn,c.pk OR EXISTS(${V} 1 FROM ${ia}index_list(t.name)i,${ia}index_info(i.name)ii ${Q} i."unique"=1 AND ii.name=c.name AND(${V} count(*) FROM ${ia}index_info(i.name))=1)uq FROM ${ca}list()t,${ca}info(t.name)c ${Q} t.schema='main'AND t.type IN('table','view')AND t.name IN(${da(t)})ORDER BY t.name,c.name`,t),$,N,n,m,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,A)},wt=(a,t,n,e,s)=>{let i;return lt(a,n,async(a,n=[])=>t.execute(a,n).then(a=>a.rows?._array??[]),a=>{const n=new AbortController,e=t.onChange({signal:n.signal});return D(async()=>{for await(const a of e)i&&T(a.changedTables,i)},s),i=a,n},a=>{i=void 0,a.abort()},e,s,A,1,t,"getPowerSync",ut)},ut=async(a,t,n,s,i)=>{const r=h(O(s,(a,t)=>ua(a)+"=$"+(t+1)),e);for(const[e,o]of J(i,(a,t)=>[t,a])){const i=O(o,a=>a??null);if(m(await a(aa+ua(t)+" SET"+r+" "+Q+ua(n)+"=$"+(N(o)+1)+" RETURNING"+ua(n),[...i,e]))){const r=[1];await a(Z+" INTO"+ua(t)+"("+ya(n,...s)+")VALUES("+da([e,...o],r)+")",[e,...i])}}};export{wt as createPowerSyncPersister};
1
+ const a=a=>typeof a,t="tinybase",n="",e=",",s=a(n),i="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)==s,$=a=>Array.isArray(a),N=a=>a.length,m=a=>0==N(a),A=()=>{},_=a=>new o(a),h=async a=>o.all(a),g=(a,t)=>a.forEach(t),T=(a,t="")=>a.join(t),O=(a,t)=>a.map(t),p=(a,t)=>a.filter(t),S=(a,t=N(a))=>a.splice(0,t),I=(a,...t)=>a.push(...t),b=(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)}},D=(a,t)=>R(a,a=>{R(()=>t?.(a))}),L=async(a,t)=>{try{return await a()}finally{await t()}},C=Object,P=a=>C.getPrototypeOf(a),M=C.entries,F=a=>!w(a)&&v(P(a),a=>a==C.prototype||w(P(a)),()=>!0),x=C.keys,U=C.freeze,B=(...a)=>C.assign(C.create(null),...a),j=(a,t,n)=>(C.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),k=(a=[])=>{const t=C.create(null);return g(a,([a,n])=>j(t,a,n)),t},q=(a,t)=>(delete a[t],a),G=(a,t)=>g(x(a),n=>t(a[n],n)),J=(a,t)=>O(M(a),([a,n])=>t(n,a)),X=(a,t)=>{const n=k();return G(a,(a,e)=>j(n,e,t(a,e))),n},Y=a=>N(x(a)),z=a=>F(a)&&0==Y(a),H="_",K="_id",V="SELECT",Q="WHERE",W="TABLE",Z="INSERT",aa="UPDATE",ta="ALTER "+W,na="FROM",ea="DELETE "+na,sa=V+"*"+na,ia="pragma_",ra="data_version",oa="schema_version",ca="pragma_table_",la="CREATE "+W,wa=/\$tableName/g,ua=a=>T(O(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),ya=(...a)=>T(O(a,ua),e),da=(a,t=[1])=>T(O(a,()=>"$"+t[0]++),e),va=(a,t=i)=>Q+`(${fa(t,ua(a))})`,fa=(a,t)=>r(a,wa,t),Ea=(a,t)=>a?.has(t)??!1,$a=a=>u(a)||0==(a=>a?.size??0)(a),Na=a=>[...a?.values()??[]],ma=a=>a.clear(),Aa=(a,t)=>a?.forEach(t),_a=(a,t)=>a?.delete(t),ha=Map,ga=a=>new ha(a),Ta=(a,t)=>a?.get(t),Oa=(a,t)=>Aa(a,(a,n)=>t(n,a)),pa=(a,t)=>{const n=[];return Oa(a,(a,e)=>I(n,t(e,a))),n},Sa=(a,t,n)=>u(n)?(_a(a,t),a):a?.set(t,n),Ia=(a,t,n,e)=>{let s=Ta(a,t);return Ea(a,t)?e?.(s):Sa(a,t,s=n()),s},ba=(a,t,n,e,s=0)=>f((n?Ia:Ta)(a,t[s],s>N(t)-2?n:ga),i=>{if(s>N(t)-2)return e?.(i)&&Sa(a,t[s]),i;const r=ba(i,t,n,e,s+1);return $a(i)&&Sa(a,t[s]),r}),Ra=a=>new Set($(a)||u(a)?a:[a]),Da=(a,t)=>a?.add(t),La="ColumnName",Ca="store",Pa="json",Ma=Ca+"TableName",Fa=Ca+"Id"+La,xa=Ca+La,Ua="autoLoadIntervalSeconds",Ba="rowId"+La,ja="tableId",ka="tableName",qa="deleteEmptyColumns",Ga="deleteEmptyTable",Ja="condition",Xa={mode:Pa,[Ua]:1},Ya={load:0,save:0,[ka]:t+"_values"},za=a=>$(a)?a:void 0,Ha=a=>d(a)||$(a),Ka=(a,t,n,e,s)=>{const i=ga();return G(a,(a,r)=>{const o=(w=B(t,E(a)?{[n]:a}:a),c=C.values(w),l=Y(t),c.slice(0,l));var c,l,w;y(o[0])||e(r,o[0])||(s(r,o[0]),Sa(i,r,o))}),i},Va=JSON.stringify,Qa=JSON.parse,Wa=a=>""===a?void 0:$(a)?O(a,Wa):F(a)?X(a,Wa):a,Za=/^\d+$/,at=ga(),tt=ga(),nt=ga(),et=(a,t,e,s,i,r,o,c={},l=0,w=[])=>{let d,v,E,A,h,T=0,C=0,P=0,M=0,F=0,x=0,B=0,j=0,k=0;const q={},G=c.destroy;Ia(at,w,()=>0),Ia(tt,w,()=>[]),Sa(nt,w,(Ta(nt,w)??0)+1);const J=ga(),[X,Y,H,K,V]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!z(a)||!z(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!z(a)||!z(t),t.setContent]:b(0))(o,a,l),[Q,W,Z]=(a=>{let t;const[e,s]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{Za.test(t)&&N(a)<1e3&&I(a,t)}]})(),i=ga(),r=(a,e,s,r)=>{let o,c=!1;if(g(((a,t=[n])=>{const e=[],s=(a,n)=>n==N(t)?I(e,a):y(t[n])?Aa(a,a=>s(a,n+1)):g([t[n],null],t=>s(Ta(a,t),n+1));return s(a,0),e})(e,s),n=>Aa(n,n=>{const e=()=>Ta(i,n)[0](t,...s??[],...r);a?(a=>{try{return a()}catch(a){(a=>{c||(o=a),c=!0})?.(a)}})(e):e()})),c)throw o};return[(s,r,o,c=[],l=()=>[])=>{t??=a();const w=e(1);return Sa(i,w,[s,r,o,c,l]),Da(ba(r,o??[n],Ra),w),w},(a,t,...n)=>r(!1,a,t,n),a=>f(Ta(i,a),([,t,e])=>(ba(t,e??[n],void 0,t=>(_a(t,a),$a(t)?1:0)),Sa(i,a),s(a),e)),a=>f(Ta(i,a),([a,,n=[],e,s])=>{const i=(...r)=>{const o=N(r);o==N(n)?a(t,...r,...s(r)):y(n[o])?g(e[o]?.(...r)??[],a=>i(...r,a)):i(...r,n[o])};i()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>fa),aa=a=>{a!=T&&(T=a,W(J,void 0,T))},ta=()=>{Ta(nt,w)||Ta(at,w)||!m(Ta(tt,w)??[])||(Sa(at,w),Sa(tt,w),Sa(nt,w))},na=t=>{(X&&$(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ea=async()=>{ya()&&a.__?.[0]?.()&&await la()},sa=a=>L(()=>v=a,()=>{v==a&&(v=void 0)}),ia=async a=>(2!=T&&(await L(async()=>{aa(1),C++,await va(()=>R(async()=>{const n=await t();$(n)?na(n):u(n)&&a?V(a):u(n)||b(1,n)},t=>{r?.(t),a&&V(a)}))},()=>aa(0)),await ea()),fa),ra=async()=>{const a=B;B=0,a&&a==M&&!k&&(2==T?B=a:await ia())},oa=async a=>{const t=++M;let n=!0;if(await ca(!0),t==M&&!k){const e=R(async()=>{const a=await s(async(a,e)=>{if(t==M&&!k)if(e||a){const t=n||2==T||!!x;F++,t&&x++,await L(async()=>{aa(1),C++,await(t?va(()=>na(e??a)):(()=>{try{return na(e??a)}finally{aa(0)}})())},()=>{t&&x--,--F||aa(0)}),F||await ea()}else 2==T?B=t:await ia()});t!=M||k?u(a)||await i(a):d=a},r);await sa(e),t!=M||k||await L(()=>ia(a),()=>{n=!1})}return fa},ca=async(a=!1)=>{B=0,a||M++;const t=v,n=d;return d=void 0,await sa(L(async()=>{await t},async()=>{u(n)||await R(()=>i(n),r)})),fa},la=async a=>(1!=T&&await L(()=>L(async()=>{aa(2),P++,await va(()=>R(()=>e(Y,a),r))},()=>aa(0)),ra),fa),wa=async()=>{const t=++j;return await ua(!0),t!=j||k||(await la(),t!=j||k||(E=a.addDidFinishTransactionListener(()=>{if(t==j&&!k){const a=H();K(a)&&R(()=>la(a))}}))),fa},ua=async(t=!1)=>{t||j++;const n=E;return E=void 0,u(n)||a.delListener(n),fa},ya=()=>!u(E),da=async(a=!1)=>{const[t,n]=a?[ua,ca]:[ca,ua];return await L(()=>t(),async()=>{await n()}),fa},va=async(...a)=>{let t,n=!1;const e=_(e=>m(a)?e():I(Ta(tt,w),...O(a,(s,i)=>{const o=i==N(a)-1;return[async()=>{let a;h=_(t=>a=t),await L(async()=>{try{await R(s,r)}catch(a){n||(n=!0,t=a)}o&&e()},()=>{h=void 0,a()})},o?e:void 0,q]})));if(await(async()=>{if(!Ta(at,w)){Sa(at,w,1);const a=Ta(tt,w);let t=0;await L(async()=>{for(;t<N(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{S(a,t),Sa(at,w,0),ta()})}})(),await e,n)throw t;return fa},fa={load:ia,startAutoLoad:oa,stopAutoLoad:ca,isAutoLoading:()=>!u(d),save:la,startAutoSave:wa,stopAutoSave:ua,isAutoSaving:ya,startAutoPersisting:async(a,t=!1)=>{const[n,e,s,i]=t?[wa,oa,ua,ca]:[oa,wa,ca,ua],r=n(a),o=t?j:M;await r;const c=e(a),l=t?M:j;try{await c}catch(a){throw l==(t?M:j)&&await D(i),o==(t?j:M)&&await D(s),a}return fa},stopAutoPersisting:da,getStatus:()=>T,addStatusListener:a=>Q(a,J),delListener:t=>(Z(t),a),schedule:va,getStore:()=>a,getStats:()=>({loads:C,saves:P}),...c,destroy:async()=>(u(A)&&(k=1,A=(async()=>{const a=Ta(tt,w),t=p(a,([,a,t])=>t!=q||(a?.(),!1)),n=h;S(a),I(a,...t),await L(()=>L(()=>L(da,()=>n),()=>G?.()),()=>{const a=(Ta(nt,w)??1)-1;Sa(nt,w,a||void 0),ta()})})()),await A,fa)};return U(fa)},st=new l.TextEncoder,it=(a,n,s,r,o=rt,c,l,w)=>{const y=ga(),d=ga();let v=a;return[async()=>{ma(y),ma(d),g(await s(v,n),({tn:a,cn:t,uq:n})=>{Da(Ia(y,a,Ra),t),n&&Da(Ia(d,a,Ra),t)})},async(a,t,n,e)=>{const s=u(e)?void 0:Ra(e);return((a,t)=>Ea(Ta(y,a),t))(a,t)?k(p(O(await v(sa+ua(a)+va(a,n)),a=>{const n=a[t],e=l?X(q(a,t),l):q(a,t);return[n,u(s)?e:k(p(J(e,(a,t)=>[t,a]),([a])=>(a=>u(s)||Ea(s,a))(a)))]}),a=>!u(a[0])&&!z(a[1]))):{}},async(a,n,s,l,w,f=!1,E=i,$)=>{const N=u($)?void 0:Ra($),A=a=>u(N)||Ea(N,a),_=Ra();G(s??{},a=>g(p(x(a??{}),A),a=>Da(_,a)));const S=Na(_);if(u(N)&&!f&&w&&E==i&&m(S)&&Ea(y,a))return await v("DROP "+W+ua(a)),Sa(y,a),void Sa(d,a);const b=Ta(y,a),R=Ra(p(Na(b),a=>a==n||A(a)));if(!m(S))if(Ea(y,a)){if(await h(O([n,...S],async t=>{_a(R,t)||(await v(ta+ua(a)+"ADD"+ua(t)+r),Da(b,t))})),o==rt&&!Ea(Ta(d,a),n)){const e=t+"_pk_"+(a=>{let t=2166136261;return g(st.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(Va([a,n]));await v("CREATE UNIQUE INDEX IF NOT EXISTS"+ua(e)+"ON"+ua(a)+`(${ua(n)})`),Da(Ia(d,a,Ra),n)}}else await v(la+ua(a)+`(${ua(n)}${r} PRIMARY KEY${T(O(S,a=>e+ua(a)+r))});`),Sa(y,a,Ra([n,...S])),Sa(d,a,Ra([n]));if(await h([...!f&&l?O(Na(R),async t=>{t!=n&&(await v(ta+ua(a)+"DROP"+ua(t)),_a(b,t))}):[]]),f)u(s)?u(N)&&await v(ea+ua(a)+va(a,E)):await h(J(s,async(t,e)=>{if(u(t))await v(ea+ua(a)+va(a,E)+`AND(${ua(n)}=$1)`,[e]);else if(!m(S)){const s=p(x(t),A);m(s)||await o(v,a,n,s,{[e]:O(s,a=>c?c(t[a]):t[a])},b)}}));else if(m(S))u(N)&&Ea(y,a)&&await v(ea+ua(a)+va(a,E));else{const t=p(Na(Ta(y,a)),a=>a!=n&&A(a)),e=k(),i=[];G(s??{},(a,n)=>{j(e,n,O(t,t=>c?c(a?.[t]):a?.[t])),I(i,n)}),await o(v,a,n,t,e,b),await v(ea+ua(a)+va(a,E)+`AND${ua(n)}NOT IN(${da(i)})`,i)}},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}}]},rt=async(a,t,n,s,i)=>{const r=[1];await a(Z+" INTO"+ua(t)+"("+ya(n,...s)+")VALUES"+T(J(i,a=>"($"+r[0]+++","+da(a,r)+")"),e)+"ON CONFLICT("+ua(n)+`)DO ${aa} SET`+T(O(s,a=>ua(a)+"=excluded."+ua(a)),e),J(i,(a,t)=>[t,...O(a,a=>a??null)]).flat())},ot=(a,t,n,e,s,i,r,[o,c,l],w,y,d,v,f,E,$,N,m)=>{const[A,_,h,g]=it(t,w,y,f,E,void 0,void 0,m);return et(a,()=>g(async()=>{return await A(),a=(await _(o,c))[H]?.[l]??"null",Wa(Qa(a));var a}),a=>g(async()=>{var t;await A(),await h(o,c,{[H]:{[l]:(t=a()??null,Va(t,(a,t)=>u(t)?"":t))}},!0,!0)}),n,e,s,r,{[v]:()=>d,destroy:i},0,d)},ct=(a,t,n,e,s,i,r,[o,c,[l,w,y,d,v]],f,E,$,N,m,A,_,g,T)=>{const[S,I,b,R]=it(t,f,E,m,A,_,g,T),D=(a,t)=>h(pa(c,async([n,e,s,i,r],o)=>{var c,l;t&&(c=a,l=o,!C.hasOwn(c,l))||await b(n,e,a[o],s,i,t,r)})),L=(a,t,n)=>k(1==n?p(J(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):p(O(t,t=>[t,a[t]]),([,a])=>!u(a))),P=async(a,t)=>w?await b(y,K,{[H]:u(v)?a:L(a,v,t)},!0,!0,t,void 0,v):null;return et(a,()=>R(async()=>{await S();const a=await(async()=>k(p(await h(pa(o,async([a,t,n],e)=>[a,await I(e,t,n)])),a=>!z(a[1]))))(),t=await(async()=>l?(await I(y,K,void 0,d))[H]:{})();return z(a)&&u(t)?void 0:[a,t]}),(a,t)=>R(async()=>{if(await S(),u(t)){const[t,n]=a();await D(t),await P(n)}else await D(t[0],!0),await P(t[1],!0)}),n,e,s,r,{[N]:()=>$,destroy:i},0,$)},lt=(a,e,s,r,c,l,y,v,f,$,N="getDb",m,A)=>{let _,h,g;const T=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(s,l),[O,p,S,I]=(a=>{const n=(a=>B(Xa,E(a)?{[Ma]:a}:a??{}))(a),e=n[Ua];if(n.mode==Pa){const a=n[Ma]??t;return[1,e,[a,n[Fa]??K,n[xa]??Ca],Ra(a)]}const{tables:{load:s={},save:r={}}={},values:o={}}=n,c=B(Ya,o),{load:l,save:w}=c,u=[Ha(l),Ha(w),c[ka],za(l),za(w)],y=u[2],d=Ra(y),v=Ra(y),f=Ka(s,{[ja]:null,[Ba]:K,[Ja]:i},ja,a=>Ea(v,a),a=>Da(d,a)),$=Ka(r,{[ka]:null,[Ba]:K,[qa]:0,[Ga]:0,[Ja]:null},ka,(a,t)=>Ea(v,t),(a,t)=>Da(d,t));return Oa($,(a,t)=>t[4]??=Ta(f,t[0])?.[2]??i),[0,e,[f,$,u],d]})(e);return!O&&a.isMergeable()&&b(0),(O?ot:ct)(a,T,a=>{let t,n,e=1,s=0,i=0;const l=async(t=!0)=>{const[{d:n,s:s,c:r}]=await T(V+` ${ra} d,${oa} s,TOTAL_CHANGES() c FROM ${ia}${ra} JOIN ${ia}${oa}`);if(e&&(n!=_||s!=h||r!=g)){const o=t&&!i&&!w(_);_=n,h=s,g=r,o&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const o=L(()=>D(async()=>{for(s?r&&await l():(await l(!1),s=1);e&&i;)i=0,await l(!1),e&&(await a(),await l())},y),()=>{n==o&&(n=void 0),e&&(i?v():e&&u(t)&&(t=setInterval(()=>v(!0),1e3*p)))});return n=o,o},f=r(a=>{e&&Ea(I,a)&&(i=1,d(),o.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,i=0,d(),await L(async()=>await n,async()=>{_=h=g=null,await c(f)})})},a=>a(),y,v,f,S,Na(I),async(a,t)=>await a(V+` t.name tn,c.name cn,c.pk OR EXISTS(${V} 1 FROM ${ia}index_list(t.name)i,${ia}index_info(i.name)ii ${Q} i."unique"=1 AND ii.name=c.name AND(${V} count(*) FROM ${ia}index_info(i.name))=1)uq FROM ${ca}list()t,${ca}info(t.name)c ${Q} t.schema='main'AND t.type IN('table','view')AND t.name IN(${da(t)})ORDER BY t.name,c.name`,t),$,N,n,m,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,A)},wt=(a,t,n,e,s)=>{let i;return lt(a,n,async(a,n=[])=>t.execute(a,n).then(a=>a.rows?._array??[]),a=>{const n=new AbortController,e=t.onChange({signal:n.signal});return D(async()=>{for await(const a of e)i&&g(a.changedTables,i)},s),i=a,n},a=>{i=void 0,a.abort()},e,s,A,1,t,"getPowerSync",ut)},ut=async(a,t,n,s,i)=>{const r=T(O(s,(a,t)=>ua(a)+"=$"+(t+1)),e);for(const[e,o]of J(i,(a,t)=>[t,a])){const i=O(o,a=>a??null);if(m(await a(aa+ua(t)+" SET"+r+" "+Q+ua(n)+"=$"+(N(o)+1)+" RETURNING"+ua(n),[...i,e]))){const r=[1];await a(Z+" INTO"+ua(t)+"("+ya(n,...s)+")VALUES("+da([e,...o],r)+")",[e,...i])}}};export{wt as createPowerSyncPersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",n="",e=",",s=a(n),i="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)==s,$=a=>Array.isArray(a),N=a=>a.length,m=a=>0==N(a),A=()=>{},_=a=>new o(a),g=async a=>o.all(a),T=(a,t)=>a.forEach(t),h=(a,t="")=>a.join(t),O=(a,t)=>a.map(t),p=(a,t)=>a.filter(t),S=(a,t=N(a))=>a.splice(0,t),I=(a,...t)=>a.push(...t),b=(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)}},D=(a,t)=>R(a,a=>{R(()=>t?.(a))}),L=async(a,t)=>{try{return await a()}finally{await t()}},C=Object,P=a=>C.getPrototypeOf(a),M=C.entries,F=a=>!w(a)&&v(P(a),a=>a==C.prototype||w(P(a)),()=>!0),x=C.keys,U=C.freeze,B=(...a)=>C.assign(C.create(null),...a),j=(a,t,n)=>(C.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),k=(a=[])=>{const t=C.create(null);return T(a,([a,n])=>j(t,a,n)),t},q=(a,t)=>(delete a[t],a),G=(a,t)=>T(x(a),n=>t(a[n],n)),J=(a,t)=>O(M(a),([a,n])=>t(n,a)),X=(a,t)=>{const n=k();return G(a,(a,e)=>j(n,e,t(a,e))),n},Y=a=>N(x(a)),z=a=>F(a)&&0==Y(a),H="_",K="_id",V="SELECT",Q="WHERE",W="TABLE",Z="INSERT",aa="UPDATE",ta="ALTER "+W,na="FROM",ea="DELETE "+na,sa=V+"*"+na,ia="pragma_",ra="data_version",oa="schema_version",ca="pragma_table_",la="CREATE "+W,wa=/\$tableName/g,ua=a=>h(O(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),ya=(...a)=>h(O(a,ua),e),da=(a,t=[1])=>h(O(a,()=>"$"+t[0]++),e),va=(a,t=i)=>Q+`(${fa(t,ua(a))})`,fa=(a,t)=>r(a,wa,t),Ea=(a,t)=>a?.has(t)??!1,$a=a=>u(a)||0==(a=>a?.size??0)(a),Na=a=>[...a?.values()??[]],ma=a=>a.clear(),Aa=(a,t)=>a?.forEach(t),_a=(a,t)=>a?.delete(t),ga=Map,Ta=a=>new ga(a),ha=(a,t)=>a?.get(t),Oa=(a,t)=>Aa(a,(a,n)=>t(n,a)),pa=(a,t)=>{const n=[];return Oa(a,(a,e)=>I(n,t(e,a))),n},Sa=(a,t,n)=>u(n)?(_a(a,t),a):a?.set(t,n),Ia=(a,t,n,e)=>{let s=ha(a,t);return Ea(a,t)?e?.(s):Sa(a,t,s=n()),s},ba=(a,t,n,e,s=0)=>f((n?Ia:ha)(a,t[s],s>N(t)-2?n:Ta),i=>{if(s>N(t)-2)return e?.(i)&&Sa(a,t[s]),i;const r=ba(i,t,n,e,s+1);return $a(i)&&Sa(a,t[s]),r}),Ra=a=>new Set($(a)||u(a)?a:[a]),Da=(a,t)=>a?.add(t),La="ColumnName",Ca="store",Pa="json",Ma=Ca+"TableName",Fa=Ca+"Id"+La,xa=Ca+La,Ua="autoLoadIntervalSeconds",Ba="rowId"+La,ja="tableId",ka="tableName",qa="deleteEmptyColumns",Ga="deleteEmptyTable",Ja="condition",Xa={mode:Pa,[Ua]:1},Ya={load:0,save:0,[ka]:t+"_values"},za=a=>$(a)?a:void 0,Ha=a=>d(a)||$(a),Ka=(a,t,n,e,s)=>{const i=Ta();return G(a,(a,r)=>{const o=(w=B(t,E(a)?{[n]:a}:a),c=C.values(w),l=Y(t),c.slice(0,l));var c,l,w;y(o[0])||e(r,o[0])||(s(r,o[0]),Sa(i,r,o))}),i},Va=JSON.stringify,Qa=JSON.parse,Wa=a=>""===a?void 0:$(a)?O(a,Wa):F(a)?X(a,Wa):a,Za=/^\d+$/,at=Ta(),tt=Ta(),nt=Ta(),et=(a,t,e,s,i,r,o,c={},l=0,w=[])=>{let d,v,E,A,g,h=0,D=0,C=0,P=0,M=0,F=0,x=0,B=0,j=0;const k={},q=c.destroy;Ia(at,w,()=>0),Ia(tt,w,()=>[]),Sa(nt,w,(ha(nt,w)??0)+1);const G=Ta(),[J,X,Y,H,K]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!z(a)||!z(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!z(a)||!z(t),t.setContent]:b(0))(o,a,l),[V,Q,W]=(a=>{let t;const[e,s]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{Za.test(t)&&N(a)<1e3&&I(a,t)}]})(),i=Ta(),r=(a,e,s,r)=>{let o,c=!1;if(T(((a,t=[n])=>{const e=[],s=(a,n)=>n==N(t)?I(e,a):y(t[n])?Aa(a,a=>s(a,n+1)):T([t[n],null],t=>s(ha(a,t),n+1));return s(a,0),e})(e,s),n=>Aa(n,n=>{const e=()=>ha(i,n)[0](t,...s??[],...r);a?(a=>{try{return a()}catch(a){(a=>{c||(o=a),c=!0})?.(a)}})(e):e()})),c)throw o};return[(s,r,o,c=[],l=()=>[])=>{t??=a();const w=e(1);return Sa(i,w,[s,r,o,c,l]),Da(ba(r,o??[n],Ra),w),w},(a,t,...n)=>r(!1,a,t,n),a=>f(ha(i,a),([,t,e])=>(ba(t,e??[n],void 0,t=>(_a(t,a),$a(t)?1:0)),Sa(i,a),s(a),e)),a=>f(ha(i,a),([a,,n=[],e,s])=>{const i=(...r)=>{const o=N(r);o==N(n)?a(t,...r,...s(r)):y(n[o])?T(e[o]?.(...r)??[],a=>i(...r,a)):i(...r,n[o])};i()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>va),Z=a=>{a!=h&&(h=a,Q(G,void 0,h))},aa=()=>{ha(nt,w)||ha(at,w)||!m(ha(tt,w)??[])||(Sa(at,w),Sa(tt,w),Sa(nt,w))},ta=t=>{(J&&$(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},na=async()=>{ua()&&a.__?.[0]?.()&&await ca()},ea=a=>L(()=>v=a,()=>{v==a&&(v=void 0)}),sa=async a=>(2!=h&&(await L(async()=>{Z(1),D++,await da(()=>R(async()=>{const n=await t();$(n)?ta(n):u(n)&&a?K(a):u(n)||b(1,n)},t=>{r?.(t),a&&K(a)}))},()=>Z(0)),await na()),va),ia=async()=>{const a=x;x=0,a&&a==P&&!j&&(2==h?x=a:await sa())},ra=async a=>{const t=++P;let n=!0;if(await oa(!0),t==P&&!j){const e=R(async()=>{const a=await s(async(a,e)=>{if(t==P&&!j)if(e||a){const t=n||2==h||!!F;M++,t&&F++,await L(async()=>{Z(1),D++,await(t?da(()=>ta(e??a)):(()=>{try{return ta(e??a)}finally{Z(0)}})())},()=>{t&&F--,--M||Z(0)}),M||await na()}else 2==h?x=t:await sa()});t!=P||j?u(a)||await i(a):d=a},r);await ea(e),t!=P||j||await L(()=>sa(a),()=>{n=!1})}return va},oa=async(a=!1)=>{x=0,a||P++;const t=v,n=d;return d=void 0,await ea(L(async()=>{await t},async()=>{u(n)||await R(()=>i(n),r)})),va},ca=async a=>(1!=h&&await L(()=>L(async()=>{Z(2),C++,await da(()=>R(()=>e(X,a),r))},()=>Z(0)),ia),va),la=async()=>{const t=++B;return await wa(!0),t!=B||j||(await ca(),t!=B||j||(E=a.addDidFinishTransactionListener(()=>{if(t==B&&!j){const a=Y();H(a)&&R(()=>ca(a))}}))),va},wa=async(t=!1)=>{t||B++;const n=E;return E=void 0,u(n)||a.delListener(n),va},ua=()=>!u(E),ya=async(a=!1)=>{const[t,n]=a?[wa,oa]:[oa,wa];return await L(()=>t(),async()=>{await n()}),va},da=async(...a)=>{let t,n=!1;const e=_(e=>m(a)?e():I(ha(tt,w),...O(a,(s,i)=>{const o=i==N(a)-1;return[async()=>{let a;g=_(t=>a=t),await L(async()=>{try{await R(s,r)}catch(a){n||(n=!0,t=a)}o&&e()},()=>{g=void 0,a()})},o?e:void 0,k]})));if(await(async()=>{if(!ha(at,w)){Sa(at,w,1);const a=ha(tt,w);let t=0;await L(async()=>{for(;t<N(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{S(a,t),Sa(at,w,0),aa()})}})(),await e,n)throw t;return va},va={load:sa,startAutoLoad:ra,stopAutoLoad:oa,isAutoLoading:()=>!u(d),save:ca,startAutoSave:la,stopAutoSave:wa,isAutoSaving:ua,startAutoPersisting:async(a,t=!1)=>{const[n,e]=t?[la,ra]:[ra,la];return await n(a),await e(a),va},stopAutoPersisting:ya,getStatus:()=>h,addStatusListener:a=>V(a,G),delListener:t=>(W(t),a),schedule:da,getStore:()=>a,getStats:()=>({loads:D,saves:C}),...c,destroy:async()=>(u(A)&&(j=1,A=(async()=>{const a=ha(tt,w),t=p(a,([,a,t])=>t!=k||(a?.(),!1)),n=g;S(a),I(a,...t),await L(()=>L(()=>L(ya,()=>n),()=>q?.()),()=>{const a=(ha(nt,w)??1)-1;Sa(nt,w,a||void 0),aa()})})()),await A,va)};return U(va)},st=new l.TextEncoder,it=(a,n,s,r,o=rt,c,l,w)=>{const y=Ta(),d=Ta();let v=a;return[async()=>{ma(y),ma(d),T(await s(v,n),({tn:a,cn:t,uq:n})=>{Da(Ia(y,a,Ra),t),n&&Da(Ia(d,a,Ra),t)})},async(a,t,n,e)=>{const s=u(e)?void 0:Ra(e);return((a,t)=>Ea(ha(y,a),t))(a,t)?k(p(O(await v(sa+ua(a)+va(a,n)),a=>{const n=a[t],e=l?X(q(a,t),l):q(a,t);return[n,u(s)?e:k(p(J(e,(a,t)=>[t,a]),([a])=>(a=>u(s)||Ea(s,a))(a)))]}),a=>!u(a[0])&&!z(a[1]))):{}},async(a,n,s,l,w,f=!1,E=i,$)=>{const N=u($)?void 0:Ra($),A=a=>u(N)||Ea(N,a),_=Ra();G(s??{},a=>T(p(x(a??{}),A),a=>Da(_,a)));const S=Na(_);if(u(N)&&!f&&w&&E==i&&m(S)&&Ea(y,a))return await v("DROP "+W+ua(a)),Sa(y,a),void Sa(d,a);const b=ha(y,a),R=Ra(p(Na(b),a=>a==n||A(a)));if(!m(S))if(Ea(y,a)){if(await g(O([n,...S],async t=>{_a(R,t)||(await v(ta+ua(a)+"ADD"+ua(t)+r),Da(b,t))})),o==rt&&!Ea(ha(d,a),n)){const e=t+"_pk_"+(a=>{let t=2166136261;return T(st.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(Va([a,n]));await v("CREATE UNIQUE INDEX IF NOT EXISTS"+ua(e)+"ON"+ua(a)+`(${ua(n)})`),Da(Ia(d,a,Ra),n)}}else await v(la+ua(a)+`(${ua(n)}${r} PRIMARY KEY${h(O(S,a=>e+ua(a)+r))});`),Sa(y,a,Ra([n,...S])),Sa(d,a,Ra([n]));if(await g([...!f&&l?O(Na(R),async t=>{t!=n&&(await v(ta+ua(a)+"DROP"+ua(t)),_a(b,t))}):[]]),f)u(s)?u(N)&&await v(ea+ua(a)+va(a,E)):await g(J(s,async(t,e)=>{if(u(t))await v(ea+ua(a)+va(a,E)+`AND(${ua(n)}=$1)`,[e]);else if(!m(S)){const s=p(x(t),A);m(s)||await o(v,a,n,s,{[e]:O(s,a=>c?c(t[a]):t[a])},b)}}));else if(m(S))u(N)&&Ea(y,a)&&await v(ea+ua(a)+va(a,E));else{const t=p(Na(ha(y,a)),a=>a!=n&&A(a)),e=k(),i=[];G(s??{},(a,n)=>{j(e,n,O(t,t=>c?c(a?.[t]):a?.[t])),I(i,n)}),await o(v,a,n,t,e,b),await v(ea+ua(a)+va(a,E)+`AND${ua(n)}NOT IN(${da(i)})`,i)}},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}}]},rt=async(a,t,n,s,i)=>{const r=[1];await a(Z+" INTO"+ua(t)+"("+ya(n,...s)+")VALUES"+h(J(i,a=>"($"+r[0]+++","+da(a,r)+")"),e)+"ON CONFLICT("+ua(n)+`)DO ${aa} SET`+h(O(s,a=>ua(a)+"=excluded."+ua(a)),e),J(i,(a,t)=>[t,...O(a,a=>a??null)]).flat())},ot=(a,t,n,e,s,i,r,[o,c,l],w,y,d,v,f,E,$,N,m)=>{const[A,_,g,T]=it(t,w,y,f,E,void 0,void 0,m);return et(a,()=>T(async()=>{return await A(),a=(await _(o,c))[H]?.[l]??"null",Wa(Qa(a));var a}),a=>T(async()=>{var t;await A(),await g(o,c,{[H]:{[l]:(t=a()??null,Va(t,(a,t)=>u(t)?"":t))}},!0,!0)}),n,e,s,r,{[v]:()=>d,destroy:i},0,d)},ct=(a,t,n,e,s,i,r,[o,c,[l,w,y,d,v]],f,E,$,N,m,A,_,T,h)=>{const[S,I,b,R]=it(t,f,E,m,A,_,T,h),D=(a,t)=>g(pa(c,async([n,e,s,i,r],o)=>{var c,l;t&&(c=a,l=o,!C.hasOwn(c,l))||await b(n,e,a[o],s,i,t,r)})),L=(a,t,n)=>k(1==n?p(J(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):p(O(t,t=>[t,a[t]]),([,a])=>!u(a))),P=async(a,t)=>w?await b(y,K,{[H]:u(v)?a:L(a,v,t)},!0,!0,t,void 0,v):null;return et(a,()=>R(async()=>{await S();const a=await(async()=>k(p(await g(pa(o,async([a,t,n],e)=>[a,await I(e,t,n)])),a=>!z(a[1]))))(),t=await(async()=>l?(await I(y,K,void 0,d))[H]:{})();return z(a)&&u(t)?void 0:[a,t]}),(a,t)=>R(async()=>{if(await S(),u(t)){const[t,n]=a();await D(t),await P(n)}else await D(t[0],!0),await P(t[1],!0)}),n,e,s,r,{[N]:()=>$,destroy:i},0,$)},lt=(a,e,s,r,c,l,y,v,f,$,N="getDb",m,A)=>{let _,g,T;const h=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(s,l),[O,p,S,I]=(a=>{const n=(a=>B(Xa,E(a)?{[Ma]:a}:a??{}))(a),e=n[Ua];if(n.mode==Pa){const a=n[Ma]??t;return[1,e,[a,n[Fa]??K,n[xa]??Ca],Ra(a)]}const{tables:{load:s={},save:r={}}={},values:o={}}=n,c=B(Ya,o),{load:l,save:w}=c,u=[Ha(l),Ha(w),c[ka],za(l),za(w)],y=u[2],d=Ra(y),v=Ra(y),f=Ka(s,{[ja]:null,[Ba]:K,[Ja]:i},ja,a=>Ea(v,a),a=>Da(d,a)),$=Ka(r,{[ka]:null,[Ba]:K,[qa]:0,[Ga]:0,[Ja]:null},ka,(a,t)=>Ea(v,t),(a,t)=>Da(d,t));return Oa($,(a,t)=>t[4]??=ha(f,t[0])?.[2]??i),[0,e,[f,$,u],d]})(e);return!O&&a.isMergeable()&&b(0),(O?ot:ct)(a,h,a=>{let t,n,e=1,s=0,i=0;const l=async(t=!0)=>{const[{d:n,s:s,c:r}]=await h(V+` ${ra} d,${oa} s,TOTAL_CHANGES() c FROM ${ia}${ra} JOIN ${ia}${oa}`);if(e&&(n!=_||s!=g||r!=T)){const o=t&&!i&&!w(_);_=n,g=s,T=r,o&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const o=L(()=>D(async()=>{for(s?r&&await l():(await l(!1),s=1);e&&i;)i=0,await l(!1),e&&(await a(),await l())},y),()=>{n==o&&(n=void 0),e&&(i?v():e&&u(t)&&(t=setInterval(()=>v(!0),1e3*p)))});return n=o,o},f=r(a=>{e&&Ea(I,a)&&(i=1,d(),o.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,i=0,d(),await L(async()=>await n,async()=>{_=g=T=null,await c(f)})})},a=>a(),y,v,f,S,Na(I),async(a,t)=>await a(V+` t.name tn,c.name cn,c.pk OR EXISTS(${V} 1 FROM ${ia}index_list(t.name)i,${ia}index_info(i.name)ii ${Q} i."unique"=1 AND ii.name=c.name AND(${V} count(*) FROM ${ia}index_info(i.name))=1)uq FROM ${ca}list()t,${ca}info(t.name)c ${Q} t.schema='main'AND t.type IN('table','view')AND t.name IN(${da(t)})ORDER BY t.name,c.name`,t),$,N,n,m,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,A)},wt=(a,t,n,e,s)=>{let i;return lt(a,n,async(a,n=[])=>t.execute(a,n).then(a=>a.rows?._array??[]),a=>{const n=new AbortController,e=t.onChange({signal:n.signal});return D(async()=>{for await(const a of e)i&&T(a.changedTables,i)},s),i=a,n},a=>{i=void 0,a.abort()},e,s,A,1,t,"getPowerSync",ut)},ut=async(a,t,n,s,i)=>{const r=h(O(s,(a,t)=>ua(a)+"=$"+(t+1)),e);for(const[e,o]of J(i,(a,t)=>[t,a])){const i=O(o,a=>a??null);if(m(await a(aa+ua(t)+" SET"+r+" "+Q+ua(n)+"=$"+(N(o)+1)+" RETURNING"+ua(n),[...i,e]))){const r=[1];await a(Z+" INTO"+ua(t)+"("+ya(n,...s)+")VALUES("+da([e,...o],r)+")",[e,...i])}}};export{wt as createPowerSyncPersister};
1
+ const a=a=>typeof a,t="tinybase",n="",e=",",s=a(n),i="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)==s,$=a=>Array.isArray(a),N=a=>a.length,m=a=>0==N(a),A=()=>{},_=a=>new o(a),h=async a=>o.all(a),g=(a,t)=>a.forEach(t),T=(a,t="")=>a.join(t),O=(a,t)=>a.map(t),p=(a,t)=>a.filter(t),S=(a,t=N(a))=>a.splice(0,t),I=(a,...t)=>a.push(...t),b=(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)}},D=(a,t)=>R(a,a=>{R(()=>t?.(a))}),L=async(a,t)=>{try{return await a()}finally{await t()}},C=Object,P=a=>C.getPrototypeOf(a),M=C.entries,F=a=>!w(a)&&v(P(a),a=>a==C.prototype||w(P(a)),()=>!0),x=C.keys,U=C.freeze,B=(...a)=>C.assign(C.create(null),...a),j=(a,t,n)=>(C.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),k=(a=[])=>{const t=C.create(null);return g(a,([a,n])=>j(t,a,n)),t},q=(a,t)=>(delete a[t],a),G=(a,t)=>g(x(a),n=>t(a[n],n)),J=(a,t)=>O(M(a),([a,n])=>t(n,a)),X=(a,t)=>{const n=k();return G(a,(a,e)=>j(n,e,t(a,e))),n},Y=a=>N(x(a)),z=a=>F(a)&&0==Y(a),H="_",K="_id",V="SELECT",Q="WHERE",W="TABLE",Z="INSERT",aa="UPDATE",ta="ALTER "+W,na="FROM",ea="DELETE "+na,sa=V+"*"+na,ia="pragma_",ra="data_version",oa="schema_version",ca="pragma_table_",la="CREATE "+W,wa=/\$tableName/g,ua=a=>T(O(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),ya=(...a)=>T(O(a,ua),e),da=(a,t=[1])=>T(O(a,()=>"$"+t[0]++),e),va=(a,t=i)=>Q+`(${fa(t,ua(a))})`,fa=(a,t)=>r(a,wa,t),Ea=(a,t)=>a?.has(t)??!1,$a=a=>u(a)||0==(a=>a?.size??0)(a),Na=a=>[...a?.values()??[]],ma=a=>a.clear(),Aa=(a,t)=>a?.forEach(t),_a=(a,t)=>a?.delete(t),ha=Map,ga=a=>new ha(a),Ta=(a,t)=>a?.get(t),Oa=(a,t)=>Aa(a,(a,n)=>t(n,a)),pa=(a,t)=>{const n=[];return Oa(a,(a,e)=>I(n,t(e,a))),n},Sa=(a,t,n)=>u(n)?(_a(a,t),a):a?.set(t,n),Ia=(a,t,n,e)=>{let s=Ta(a,t);return Ea(a,t)?e?.(s):Sa(a,t,s=n()),s},ba=(a,t,n,e,s=0)=>f((n?Ia:Ta)(a,t[s],s>N(t)-2?n:ga),i=>{if(s>N(t)-2)return e?.(i)&&Sa(a,t[s]),i;const r=ba(i,t,n,e,s+1);return $a(i)&&Sa(a,t[s]),r}),Ra=a=>new Set($(a)||u(a)?a:[a]),Da=(a,t)=>a?.add(t),La="ColumnName",Ca="store",Pa="json",Ma=Ca+"TableName",Fa=Ca+"Id"+La,xa=Ca+La,Ua="autoLoadIntervalSeconds",Ba="rowId"+La,ja="tableId",ka="tableName",qa="deleteEmptyColumns",Ga="deleteEmptyTable",Ja="condition",Xa={mode:Pa,[Ua]:1},Ya={load:0,save:0,[ka]:t+"_values"},za=a=>$(a)?a:void 0,Ha=a=>d(a)||$(a),Ka=(a,t,n,e,s)=>{const i=ga();return G(a,(a,r)=>{const o=(w=B(t,E(a)?{[n]:a}:a),c=C.values(w),l=Y(t),c.slice(0,l));var c,l,w;y(o[0])||e(r,o[0])||(s(r,o[0]),Sa(i,r,o))}),i},Va=JSON.stringify,Qa=JSON.parse,Wa=a=>""===a?void 0:$(a)?O(a,Wa):F(a)?X(a,Wa):a,Za=/^\d+$/,at=ga(),tt=ga(),nt=ga(),et=(a,t,e,s,i,r,o,c={},l=0,w=[])=>{let d,v,E,A,h,T=0,C=0,P=0,M=0,F=0,x=0,B=0,j=0,k=0;const q={},G=c.destroy;Ia(at,w,()=>0),Ia(tt,w,()=>[]),Sa(nt,w,(Ta(nt,w)??0)+1);const J=ga(),[X,Y,H,K,V]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!z(a)||!z(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!z(a)||!z(t),t.setContent]:b(0))(o,a,l),[Q,W,Z]=(a=>{let t;const[e,s]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{Za.test(t)&&N(a)<1e3&&I(a,t)}]})(),i=ga(),r=(a,e,s,r)=>{let o,c=!1;if(g(((a,t=[n])=>{const e=[],s=(a,n)=>n==N(t)?I(e,a):y(t[n])?Aa(a,a=>s(a,n+1)):g([t[n],null],t=>s(Ta(a,t),n+1));return s(a,0),e})(e,s),n=>Aa(n,n=>{const e=()=>Ta(i,n)[0](t,...s??[],...r);a?(a=>{try{return a()}catch(a){(a=>{c||(o=a),c=!0})?.(a)}})(e):e()})),c)throw o};return[(s,r,o,c=[],l=()=>[])=>{t??=a();const w=e(1);return Sa(i,w,[s,r,o,c,l]),Da(ba(r,o??[n],Ra),w),w},(a,t,...n)=>r(!1,a,t,n),a=>f(Ta(i,a),([,t,e])=>(ba(t,e??[n],void 0,t=>(_a(t,a),$a(t)?1:0)),Sa(i,a),s(a),e)),a=>f(Ta(i,a),([a,,n=[],e,s])=>{const i=(...r)=>{const o=N(r);o==N(n)?a(t,...r,...s(r)):y(n[o])?g(e[o]?.(...r)??[],a=>i(...r,a)):i(...r,n[o])};i()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>fa),aa=a=>{a!=T&&(T=a,W(J,void 0,T))},ta=()=>{Ta(nt,w)||Ta(at,w)||!m(Ta(tt,w)??[])||(Sa(at,w),Sa(tt,w),Sa(nt,w))},na=t=>{(X&&$(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ea=async()=>{ya()&&a.__?.[0]?.()&&await la()},sa=a=>L(()=>v=a,()=>{v==a&&(v=void 0)}),ia=async a=>(2!=T&&(await L(async()=>{aa(1),C++,await va(()=>R(async()=>{const n=await t();$(n)?na(n):u(n)&&a?V(a):u(n)||b(1,n)},t=>{r?.(t),a&&V(a)}))},()=>aa(0)),await ea()),fa),ra=async()=>{const a=B;B=0,a&&a==M&&!k&&(2==T?B=a:await ia())},oa=async a=>{const t=++M;let n=!0;if(await ca(!0),t==M&&!k){const e=R(async()=>{const a=await s(async(a,e)=>{if(t==M&&!k)if(e||a){const t=n||2==T||!!x;F++,t&&x++,await L(async()=>{aa(1),C++,await(t?va(()=>na(e??a)):(()=>{try{return na(e??a)}finally{aa(0)}})())},()=>{t&&x--,--F||aa(0)}),F||await ea()}else 2==T?B=t:await ia()});t!=M||k?u(a)||await i(a):d=a},r);await sa(e),t!=M||k||await L(()=>ia(a),()=>{n=!1})}return fa},ca=async(a=!1)=>{B=0,a||M++;const t=v,n=d;return d=void 0,await sa(L(async()=>{await t},async()=>{u(n)||await R(()=>i(n),r)})),fa},la=async a=>(1!=T&&await L(()=>L(async()=>{aa(2),P++,await va(()=>R(()=>e(Y,a),r))},()=>aa(0)),ra),fa),wa=async()=>{const t=++j;return await ua(!0),t!=j||k||(await la(),t!=j||k||(E=a.addDidFinishTransactionListener(()=>{if(t==j&&!k){const a=H();K(a)&&R(()=>la(a))}}))),fa},ua=async(t=!1)=>{t||j++;const n=E;return E=void 0,u(n)||a.delListener(n),fa},ya=()=>!u(E),da=async(a=!1)=>{const[t,n]=a?[ua,ca]:[ca,ua];return await L(()=>t(),async()=>{await n()}),fa},va=async(...a)=>{let t,n=!1;const e=_(e=>m(a)?e():I(Ta(tt,w),...O(a,(s,i)=>{const o=i==N(a)-1;return[async()=>{let a;h=_(t=>a=t),await L(async()=>{try{await R(s,r)}catch(a){n||(n=!0,t=a)}o&&e()},()=>{h=void 0,a()})},o?e:void 0,q]})));if(await(async()=>{if(!Ta(at,w)){Sa(at,w,1);const a=Ta(tt,w);let t=0;await L(async()=>{for(;t<N(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{S(a,t),Sa(at,w,0),ta()})}})(),await e,n)throw t;return fa},fa={load:ia,startAutoLoad:oa,stopAutoLoad:ca,isAutoLoading:()=>!u(d),save:la,startAutoSave:wa,stopAutoSave:ua,isAutoSaving:ya,startAutoPersisting:async(a,t=!1)=>{const[n,e,s,i]=t?[wa,oa,ua,ca]:[oa,wa,ca,ua],r=n(a),o=t?j:M;await r;const c=e(a),l=t?M:j;try{await c}catch(a){throw l==(t?M:j)&&await D(i),o==(t?j:M)&&await D(s),a}return fa},stopAutoPersisting:da,getStatus:()=>T,addStatusListener:a=>Q(a,J),delListener:t=>(Z(t),a),schedule:va,getStore:()=>a,getStats:()=>({loads:C,saves:P}),...c,destroy:async()=>(u(A)&&(k=1,A=(async()=>{const a=Ta(tt,w),t=p(a,([,a,t])=>t!=q||(a?.(),!1)),n=h;S(a),I(a,...t),await L(()=>L(()=>L(da,()=>n),()=>G?.()),()=>{const a=(Ta(nt,w)??1)-1;Sa(nt,w,a||void 0),ta()})})()),await A,fa)};return U(fa)},st=new l.TextEncoder,it=(a,n,s,r,o=rt,c,l,w)=>{const y=ga(),d=ga();let v=a;return[async()=>{ma(y),ma(d),g(await s(v,n),({tn:a,cn:t,uq:n})=>{Da(Ia(y,a,Ra),t),n&&Da(Ia(d,a,Ra),t)})},async(a,t,n,e)=>{const s=u(e)?void 0:Ra(e);return((a,t)=>Ea(Ta(y,a),t))(a,t)?k(p(O(await v(sa+ua(a)+va(a,n)),a=>{const n=a[t],e=l?X(q(a,t),l):q(a,t);return[n,u(s)?e:k(p(J(e,(a,t)=>[t,a]),([a])=>(a=>u(s)||Ea(s,a))(a)))]}),a=>!u(a[0])&&!z(a[1]))):{}},async(a,n,s,l,w,f=!1,E=i,$)=>{const N=u($)?void 0:Ra($),A=a=>u(N)||Ea(N,a),_=Ra();G(s??{},a=>g(p(x(a??{}),A),a=>Da(_,a)));const S=Na(_);if(u(N)&&!f&&w&&E==i&&m(S)&&Ea(y,a))return await v("DROP "+W+ua(a)),Sa(y,a),void Sa(d,a);const b=Ta(y,a),R=Ra(p(Na(b),a=>a==n||A(a)));if(!m(S))if(Ea(y,a)){if(await h(O([n,...S],async t=>{_a(R,t)||(await v(ta+ua(a)+"ADD"+ua(t)+r),Da(b,t))})),o==rt&&!Ea(Ta(d,a),n)){const e=t+"_pk_"+(a=>{let t=2166136261;return g(st.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(Va([a,n]));await v("CREATE UNIQUE INDEX IF NOT EXISTS"+ua(e)+"ON"+ua(a)+`(${ua(n)})`),Da(Ia(d,a,Ra),n)}}else await v(la+ua(a)+`(${ua(n)}${r} PRIMARY KEY${T(O(S,a=>e+ua(a)+r))});`),Sa(y,a,Ra([n,...S])),Sa(d,a,Ra([n]));if(await h([...!f&&l?O(Na(R),async t=>{t!=n&&(await v(ta+ua(a)+"DROP"+ua(t)),_a(b,t))}):[]]),f)u(s)?u(N)&&await v(ea+ua(a)+va(a,E)):await h(J(s,async(t,e)=>{if(u(t))await v(ea+ua(a)+va(a,E)+`AND(${ua(n)}=$1)`,[e]);else if(!m(S)){const s=p(x(t),A);m(s)||await o(v,a,n,s,{[e]:O(s,a=>c?c(t[a]):t[a])},b)}}));else if(m(S))u(N)&&Ea(y,a)&&await v(ea+ua(a)+va(a,E));else{const t=p(Na(Ta(y,a)),a=>a!=n&&A(a)),e=k(),i=[];G(s??{},(a,n)=>{j(e,n,O(t,t=>c?c(a?.[t]):a?.[t])),I(i,n)}),await o(v,a,n,t,e,b),await v(ea+ua(a)+va(a,E)+`AND${ua(n)}NOT IN(${da(i)})`,i)}},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}}]},rt=async(a,t,n,s,i)=>{const r=[1];await a(Z+" INTO"+ua(t)+"("+ya(n,...s)+")VALUES"+T(J(i,a=>"($"+r[0]+++","+da(a,r)+")"),e)+"ON CONFLICT("+ua(n)+`)DO ${aa} SET`+T(O(s,a=>ua(a)+"=excluded."+ua(a)),e),J(i,(a,t)=>[t,...O(a,a=>a??null)]).flat())},ot=(a,t,n,e,s,i,r,[o,c,l],w,y,d,v,f,E,$,N,m)=>{const[A,_,h,g]=it(t,w,y,f,E,void 0,void 0,m);return et(a,()=>g(async()=>{return await A(),a=(await _(o,c))[H]?.[l]??"null",Wa(Qa(a));var a}),a=>g(async()=>{var t;await A(),await h(o,c,{[H]:{[l]:(t=a()??null,Va(t,(a,t)=>u(t)?"":t))}},!0,!0)}),n,e,s,r,{[v]:()=>d,destroy:i},0,d)},ct=(a,t,n,e,s,i,r,[o,c,[l,w,y,d,v]],f,E,$,N,m,A,_,g,T)=>{const[S,I,b,R]=it(t,f,E,m,A,_,g,T),D=(a,t)=>h(pa(c,async([n,e,s,i,r],o)=>{var c,l;t&&(c=a,l=o,!C.hasOwn(c,l))||await b(n,e,a[o],s,i,t,r)})),L=(a,t,n)=>k(1==n?p(J(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):p(O(t,t=>[t,a[t]]),([,a])=>!u(a))),P=async(a,t)=>w?await b(y,K,{[H]:u(v)?a:L(a,v,t)},!0,!0,t,void 0,v):null;return et(a,()=>R(async()=>{await S();const a=await(async()=>k(p(await h(pa(o,async([a,t,n],e)=>[a,await I(e,t,n)])),a=>!z(a[1]))))(),t=await(async()=>l?(await I(y,K,void 0,d))[H]:{})();return z(a)&&u(t)?void 0:[a,t]}),(a,t)=>R(async()=>{if(await S(),u(t)){const[t,n]=a();await D(t),await P(n)}else await D(t[0],!0),await P(t[1],!0)}),n,e,s,r,{[N]:()=>$,destroy:i},0,$)},lt=(a,e,s,r,c,l,y,v,f,$,N="getDb",m,A)=>{let _,h,g;const T=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(s,l),[O,p,S,I]=(a=>{const n=(a=>B(Xa,E(a)?{[Ma]:a}:a??{}))(a),e=n[Ua];if(n.mode==Pa){const a=n[Ma]??t;return[1,e,[a,n[Fa]??K,n[xa]??Ca],Ra(a)]}const{tables:{load:s={},save:r={}}={},values:o={}}=n,c=B(Ya,o),{load:l,save:w}=c,u=[Ha(l),Ha(w),c[ka],za(l),za(w)],y=u[2],d=Ra(y),v=Ra(y),f=Ka(s,{[ja]:null,[Ba]:K,[Ja]:i},ja,a=>Ea(v,a),a=>Da(d,a)),$=Ka(r,{[ka]:null,[Ba]:K,[qa]:0,[Ga]:0,[Ja]:null},ka,(a,t)=>Ea(v,t),(a,t)=>Da(d,t));return Oa($,(a,t)=>t[4]??=Ta(f,t[0])?.[2]??i),[0,e,[f,$,u],d]})(e);return!O&&a.isMergeable()&&b(0),(O?ot:ct)(a,T,a=>{let t,n,e=1,s=0,i=0;const l=async(t=!0)=>{const[{d:n,s:s,c:r}]=await T(V+` ${ra} d,${oa} s,TOTAL_CHANGES() c FROM ${ia}${ra} JOIN ${ia}${oa}`);if(e&&(n!=_||s!=h||r!=g)){const o=t&&!i&&!w(_);_=n,h=s,g=r,o&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const o=L(()=>D(async()=>{for(s?r&&await l():(await l(!1),s=1);e&&i;)i=0,await l(!1),e&&(await a(),await l())},y),()=>{n==o&&(n=void 0),e&&(i?v():e&&u(t)&&(t=setInterval(()=>v(!0),1e3*p)))});return n=o,o},f=r(a=>{e&&Ea(I,a)&&(i=1,d(),o.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,i=0,d(),await L(async()=>await n,async()=>{_=h=g=null,await c(f)})})},a=>a(),y,v,f,S,Na(I),async(a,t)=>await a(V+` t.name tn,c.name cn,c.pk OR EXISTS(${V} 1 FROM ${ia}index_list(t.name)i,${ia}index_info(i.name)ii ${Q} i."unique"=1 AND ii.name=c.name AND(${V} count(*) FROM ${ia}index_info(i.name))=1)uq FROM ${ca}list()t,${ca}info(t.name)c ${Q} t.schema='main'AND t.type IN('table','view')AND t.name IN(${da(t)})ORDER BY t.name,c.name`,t),$,N,n,m,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,A)},wt=(a,t,n,e,s)=>{let i;return lt(a,n,async(a,n=[])=>t.execute(a,n).then(a=>a.rows?._array??[]),a=>{const n=new AbortController,e=t.onChange({signal:n.signal});return D(async()=>{for await(const a of e)i&&g(a.changedTables,i)},s),i=a,n},a=>{i=void 0,a.abort()},e,s,A,1,t,"getPowerSync",ut)},ut=async(a,t,n,s,i)=>{const r=T(O(s,(a,t)=>ua(a)+"=$"+(t+1)),e);for(const[e,o]of J(i,(a,t)=>[t,a])){const i=O(o,a=>a??null);if(m(await a(aa+ua(t)+" SET"+r+" "+Q+ua(n)+"=$"+(N(o)+1)+" RETURNING"+ua(n),[...i,e]))){const r=[1];await a(Z+" INTO"+ua(t)+"("+ya(n,...s)+")VALUES("+da([e,...o],r)+")",[e,...i])}}};export{wt as createPowerSyncPersister};
@@ -1 +1 @@
1
- const t=Promise,a=t=>(a,n,e)=>t(a)?e?.():n(a),n=t=>null==t,e=t=>void 0===t,s=t=>null===t,r=a(n),i=a(e),o=t=>Array.isArray(t),c=t=>t.length,y=t=>0==c(t),u=a=>new t(a),w=(t,a)=>{throw((t,a)=>Error("tinybase:"+t+(e(a)?"":":"+a)))(t,a)},l=async(t,a)=>{try{return await t()}catch(t){a?.(t)}},d=async(t,a)=>{try{return await t()}finally{await a()}},v=(t,a)=>t.forEach(a),f=(t,a)=>t.map(a),g=(t,a=c(t))=>t.splice(0,a),h=(t,...a)=>t.push(...a),_=Object,p=t=>_.getPrototypeOf(t),S=t=>!n(t)&&r(p(t),t=>t==_.prototype||n(p(t)),()=>!0),A=_.keys,L=_.freeze,b=(t,a,n)=>(_.defineProperty(t,a,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),m=t=>S(t)&&0==(t=>c(A(t)))(t),O=JSON.stringify,P=JSON.parse,C=t=>E(P(t)),E=t=>""===t?void 0:o(t)?f(t,E):S(t)?((t,a)=>{const n=((t=[])=>{const a=_.create(null);return v(t,([t,n])=>b(a,t,n)),a})();return((t,a)=>{v(A(t),n=>a(t[n],n))})(t,(t,e)=>b(n,e,a(t,e))),n})(t,E):t,N=t=>e(t)||0==(t=>t?.size??0)(t),z=(t,a)=>t?.forEach(a),D=(t,a)=>t?.delete(a),J=Map,M=t=>new J(t),j=(t,a)=>t?.get(a),k=(t,a,n)=>e(n)?(D(t,a),t):t?.set(a,n),x=(t,a,n,e)=>{let s=j(t,a);var r,i;return r=t,i=a,r?.has(i)?e?.(s):k(t,a,s=n()),s},F=(t,a,n,e,s=0)=>i((n?x:j)(t,a[s],s>c(a)-2?n:M),r=>{if(s>c(a)-2)return e?.(r)&&k(t,a[s]),r;const i=F(r,a,n,e,s+1);return N(r)&&k(t,a[s]),i}),T=/^\d+$/,V=t=>new Set(o(t)||e(t)?t:[t]),$=M(),q=M(),B=M(),G=(t,a,n,r,_,p,S,A={},b=0,O=[])=>{let P,C,E,J,G,H=0,I=0,K=0,Q=0,R=0,U=0,W=0,X=0,Y=0;const Z={},tt=A.destroy;x($,O,()=>0),x(q,O,()=>[]),k(B,O,(j(B,O)??0)+1);const at=M(),[nt,et,st,rt,it]=((t=1,a,n)=>1!=t&&a.isMergeable()?[1,a.__[1],()=>a.__[2](!n),([[t],[a]])=>!m(t)||!m(a),a.setDefaultContent]:2!=t?[0,a._[7],a._[8],([t,a])=>!m(t)||!m(a),a.setContent]:w(0))(S,t,b),[ot,ct,yt]=(t=>{let a;const[n,e]=(()=>{const t=[];let a=0;return[n=>(n?t.shift():null)??""+a++,a=>{T.test(a)&&c(t)<1e3&&h(t,a)}]})(),r=M(),o=(t,n,e,i)=>{let o,y=!1;if(v(((t,a=[""])=>{const n=[],e=(t,r)=>r==c(a)?h(n,t):s(a[r])?z(t,t=>e(t,r+1)):v([a[r],null],a=>e(j(t,a),r+1));return e(t,0),n})(n,e),n=>z(n,n=>{const s=()=>j(r,n)[0](a,...e??[],...i);t?(t=>{try{return t()}catch(t){(t=>{y||(o=t),y=!0})?.(t)}})(s):s()})),y)throw o};return[(e,s,i,o=[],c=()=>[])=>{a??=t();const y=n(1);var u,w;return k(r,y,[e,s,i,o,c]),u=F(s,i??[""],V),w=y,u?.add(w),y},(t,a,...n)=>o(!1,t,a,n),t=>i(j(r,t),([,a,n])=>(F(a,n??[""],void 0,a=>(D(a,t),N(a)?1:0)),k(r,t),e(t),n)),t=>i(j(r,t),([t,,n=[],e,r])=>{const i=(...o)=>{const y=c(o);y==c(n)?t(a,...o,...r(o)):s(n[y])?v(e[y]?.(...o)??[],t=>i(...o,t)):i(...o,n[y])};i()}),(t,a,...n)=>o(!0,t,a,n)]})(()=>Ot),ut=t=>{t!=H&&(H=t,ct(at,void 0,H))},wt=()=>{j(B,O)||j($,O)||!y(j(q,O)??[])||(k($,O),k(q,O),k(B,O))},lt=a=>{(nt&&o(a?.[0])?1===a?.[2]?t.__[4]:t.__[3]:1===a?.[2]?t._[10]:t._[9])(a)},dt=async()=>{Lt()&&t.__?.[0]?.()&&await pt()},vt=t=>d(()=>C=t,()=>{C==t&&(C=void 0)}),ft=async t=>(2!=H&&(await d(async()=>{ut(1),I++,await mt(()=>l(async()=>{const n=await a();o(n)?lt(n):e(n)&&t?it(t):e(n)||w(1,n)},a=>{p?.(a),t&&it(t)}))},()=>ut(0)),await dt()),Ot),gt=async()=>{const t=W;W=0,t&&t==Q&&!Y&&(2==H?W=t:await ft())},ht=async t=>{const a=++Q;let n=!0;if(await _t(!0),a==Q&&!Y){const s=l(async()=>{const t=await r(async(t,e)=>{if(a==Q&&!Y)if(e||t){const a=n||2==H||!!U;R++,a&&U++,await d(async()=>{ut(1),I++,await(a?mt(()=>lt(e??t)):(()=>{try{return lt(e??t)}finally{ut(0)}})())},()=>{a&&U--,--R||ut(0)}),R||await dt()}else 2==H?W=a:await ft()});a!=Q||Y?e(t)||await _(t):P=t},p);await vt(s),a!=Q||Y||await d(()=>ft(t),()=>{n=!1})}return Ot},_t=async(t=!1)=>{W=0,t||Q++;const a=C,n=P;return P=void 0,await vt(d(async()=>{await a},async()=>{e(n)||await l(()=>_(n),p)})),Ot},pt=async t=>(1!=H&&await d(()=>d(async()=>{ut(2),K++,await mt(()=>l(()=>n(et,t),p))},()=>ut(0)),gt),Ot),St=async()=>{const a=++X;return await At(!0),a!=X||Y||(await pt(),a!=X||Y||(E=t.addDidFinishTransactionListener(()=>{if(a==X&&!Y){const t=st();rt(t)&&l(()=>pt(t))}}))),Ot},At=async(a=!1)=>{a||X++;const n=E;return E=void 0,e(n)||t.delListener(n),Ot},Lt=()=>!e(E),bt=async(t=!1)=>{const[a,n]=t?[At,_t]:[_t,At];return await d(()=>a(),async()=>{await n()}),Ot},mt=async(...t)=>{let a,n=!1;const e=u(e=>y(t)?e():h(j(q,O),...f(t,(s,r)=>{const i=r==c(t)-1;return[async()=>{let t;G=u(a=>t=a),await d(async()=>{try{await l(s,p)}catch(t){n||(n=!0,a=t)}i&&e()},()=>{G=void 0,t()})},i?e:void 0,Z]})));if(await(async()=>{if(!j($,O)){k($,O,1);const t=j(q,O);let a=0;await d(async()=>{for(;a<c(t);){const n=t[a++];n[2]=void 0,await n[0]()}},()=>{g(t,a),k($,O,0),wt()})}})(),await e,n)throw a;return Ot},Ot={load:ft,startAutoLoad:ht,stopAutoLoad:_t,isAutoLoading:()=>!e(P),save:pt,startAutoSave:St,stopAutoSave:At,isAutoSaving:Lt,startAutoPersisting:async(t,a=!1)=>{const[n,e]=a?[St,ht]:[ht,St];return await n(t),await e(t),Ot},stopAutoPersisting:bt,getStatus:()=>H,addStatusListener:t=>ot(t,at),delListener:a=>(yt(a),t),schedule:mt,getStore:()=>t,getStats:()=>({loads:I,saves:K}),...A,destroy:async()=>(e(J)&&(Y=1,J=(async()=>{const t=j(q,O),a=(n=([,t,a])=>a!=Z||(t?.(),!1),t.filter(n));var n;const e=G;g(t),h(t,...a),await d(()=>d(()=>d(bt,()=>e),()=>tt?.()),()=>{const t=(j(B,O)??1)-1;k(B,O,t||void 0),wt()})})()),await J,Ot)};return L(Ot)},H=(t,a,n="storage",s)=>G(t,async()=>{const t=a.getString(n);return e(t)?void 0:C(t)},async t=>{const s=t();e(s)||a.set(n,O(s,(t,a)=>e(a)?"":a))},t=>a.addOnValueChangedListener(r=>{r===n&&l(async()=>{const s=a.getString(n);e(s)||await t(C(s))},t=>(()=>{try{return s?.(t)}catch{return}})())}),t=>{t.remove()},s,3,{getStorageName:()=>n});export{H as createReactNativeMmkvPersister};
1
+ const t=Promise,a=t=>(a,n,e)=>t(a)?e?.():n(a),n=t=>null==t,e=t=>void 0===t,s=t=>null===t,r=a(n),i=a(e),o=t=>Array.isArray(t),c=t=>t.length,y=t=>0==c(t),w=a=>new t(a),u=(t,a)=>{throw((t,a)=>Error("tinybase:"+t+(e(a)?"":":"+a)))(t,a)},l=async(t,a)=>{try{return await t()}catch(t){a?.(t)}},d=(t,a)=>l(t,t=>{l(()=>a?.(t))}),v=async(t,a)=>{try{return await t()}finally{await a()}},f=(t,a)=>t.forEach(a),g=(t,a)=>t.map(a),h=(t,a=c(t))=>t.splice(0,a),_=(t,...a)=>t.push(...a),p=Object,S=t=>p.getPrototypeOf(t),A=t=>!n(t)&&r(S(t),t=>t==p.prototype||n(S(t)),()=>!0),L=p.keys,b=p.freeze,m=(t,a,n)=>(p.defineProperty(t,a,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),O=t=>A(t)&&0==(t=>c(L(t)))(t),P=JSON.stringify,C=JSON.parse,E=t=>N(C(t)),N=t=>""===t?void 0:o(t)?g(t,N):A(t)?((t,a)=>{const n=((t=[])=>{const a=p.create(null);return f(t,([t,n])=>m(a,t,n)),a})();return((t,a)=>{f(L(t),n=>a(t[n],n))})(t,(t,e)=>m(n,e,a(t,e))),n})(t,N):t,z=t=>e(t)||0==(t=>t?.size??0)(t),D=(t,a)=>t?.forEach(a),J=(t,a)=>t?.delete(a),M=Map,j=t=>new M(t),k=(t,a)=>t?.get(a),x=(t,a,n)=>e(n)?(J(t,a),t):t?.set(a,n),F=(t,a,n,e)=>{let s=k(t,a);var r,i;return r=t,i=a,r?.has(i)?e?.(s):x(t,a,s=n()),s},T=(t,a,n,e,s=0)=>i((n?F:k)(t,a[s],s>c(a)-2?n:j),r=>{if(s>c(a)-2)return e?.(r)&&x(t,a[s]),r;const i=T(r,a,n,e,s+1);return z(r)&&x(t,a[s]),i}),V=/^\d+$/,$=t=>new Set(o(t)||e(t)?t:[t]),q=j(),B=j(),G=j(),H=(t,a,n,r,p,S,A,L={},m=0,P=[])=>{let C,E,N,M,H,I=0,K=0,Q=0,R=0,U=0,W=0,X=0,Y=0,Z=0;const tt={},at=L.destroy;F(q,P,()=>0),F(B,P,()=>[]),x(G,P,(k(G,P)??0)+1);const nt=j(),[et,st,rt,it,ot]=((t=1,a,n)=>1!=t&&a.isMergeable()?[1,a.__[1],()=>a.__[2](!n),([[t],[a]])=>!O(t)||!O(a),a.setDefaultContent]:2!=t?[0,a._[7],a._[8],([t,a])=>!O(t)||!O(a),a.setContent]:u(0))(A,t,m),[ct,yt,wt]=(t=>{let a;const[n,e]=(()=>{const t=[];let a=0;return[n=>(n?t.shift():null)??""+a++,a=>{V.test(a)&&c(t)<1e3&&_(t,a)}]})(),r=j(),o=(t,n,e,i)=>{let o,y=!1;if(f(((t,a=[""])=>{const n=[],e=(t,r)=>r==c(a)?_(n,t):s(a[r])?D(t,t=>e(t,r+1)):f([a[r],null],a=>e(k(t,a),r+1));return e(t,0),n})(n,e),n=>D(n,n=>{const s=()=>k(r,n)[0](a,...e??[],...i);t?(t=>{try{return t()}catch(t){(t=>{y||(o=t),y=!0})?.(t)}})(s):s()})),y)throw o};return[(e,s,i,o=[],c=()=>[])=>{a??=t();const y=n(1);var w,u;return x(r,y,[e,s,i,o,c]),w=T(s,i??[""],$),u=y,w?.add(u),y},(t,a,...n)=>o(!1,t,a,n),t=>i(k(r,t),([,a,n])=>(T(a,n??[""],void 0,a=>(J(a,t),z(a)?1:0)),x(r,t),e(t),n)),t=>i(k(r,t),([t,,n=[],e,r])=>{const i=(...o)=>{const y=c(o);y==c(n)?t(a,...o,...r(o)):s(n[y])?f(e[y]?.(...o)??[],t=>i(...o,t)):i(...o,n[y])};i()}),(t,a,...n)=>o(!0,t,a,n)]})(()=>Pt),ut=t=>{t!=I&&(I=t,yt(nt,void 0,I))},lt=()=>{k(G,P)||k(q,P)||!y(k(B,P)??[])||(x(q,P),x(B,P),x(G,P))},dt=a=>{(et&&o(a?.[0])?1===a?.[2]?t.__[4]:t.__[3]:1===a?.[2]?t._[10]:t._[9])(a)},vt=async()=>{bt()&&t.__?.[0]?.()&&await St()},ft=t=>v(()=>E=t,()=>{E==t&&(E=void 0)}),gt=async t=>(2!=I&&(await v(async()=>{ut(1),K++,await Ot(()=>l(async()=>{const n=await a();o(n)?dt(n):e(n)&&t?ot(t):e(n)||u(1,n)},a=>{S?.(a),t&&ot(t)}))},()=>ut(0)),await vt()),Pt),ht=async()=>{const t=X;X=0,t&&t==R&&!Z&&(2==I?X=t:await gt())},_t=async t=>{const a=++R;let n=!0;if(await pt(!0),a==R&&!Z){const s=l(async()=>{const t=await r(async(t,e)=>{if(a==R&&!Z)if(e||t){const a=n||2==I||!!W;U++,a&&W++,await v(async()=>{ut(1),K++,await(a?Ot(()=>dt(e??t)):(()=>{try{return dt(e??t)}finally{ut(0)}})())},()=>{a&&W--,--U||ut(0)}),U||await vt()}else 2==I?X=a:await gt()});a!=R||Z?e(t)||await p(t):C=t},S);await ft(s),a!=R||Z||await v(()=>gt(t),()=>{n=!1})}return Pt},pt=async(t=!1)=>{X=0,t||R++;const a=E,n=C;return C=void 0,await ft(v(async()=>{await a},async()=>{e(n)||await l(()=>p(n),S)})),Pt},St=async t=>(1!=I&&await v(()=>v(async()=>{ut(2),Q++,await Ot(()=>l(()=>n(st,t),S))},()=>ut(0)),ht),Pt),At=async()=>{const a=++Y;return await Lt(!0),a!=Y||Z||(await St(),a!=Y||Z||(N=t.addDidFinishTransactionListener(()=>{if(a==Y&&!Z){const t=rt();it(t)&&l(()=>St(t))}}))),Pt},Lt=async(a=!1)=>{a||Y++;const n=N;return N=void 0,e(n)||t.delListener(n),Pt},bt=()=>!e(N),mt=async(t=!1)=>{const[a,n]=t?[Lt,pt]:[pt,Lt];return await v(()=>a(),async()=>{await n()}),Pt},Ot=async(...t)=>{let a,n=!1;const e=w(e=>y(t)?e():_(k(B,P),...g(t,(s,r)=>{const i=r==c(t)-1;return[async()=>{let t;H=w(a=>t=a),await v(async()=>{try{await l(s,S)}catch(t){n||(n=!0,a=t)}i&&e()},()=>{H=void 0,t()})},i?e:void 0,tt]})));if(await(async()=>{if(!k(q,P)){x(q,P,1);const t=k(B,P);let a=0;await v(async()=>{for(;a<c(t);){const n=t[a++];n[2]=void 0,await n[0]()}},()=>{h(t,a),x(q,P,0),lt()})}})(),await e,n)throw a;return Pt},Pt={load:gt,startAutoLoad:_t,stopAutoLoad:pt,isAutoLoading:()=>!e(C),save:St,startAutoSave:At,stopAutoSave:Lt,isAutoSaving:bt,startAutoPersisting:async(t,a=!1)=>{const[n,e,s,r]=a?[At,_t,Lt,pt]:[_t,At,pt,Lt],i=n(t),o=a?Y:R;await i;const c=e(t),y=a?R:Y;try{await c}catch(t){throw y==(a?R:Y)&&await d(r),o==(a?Y:R)&&await d(s),t}return Pt},stopAutoPersisting:mt,getStatus:()=>I,addStatusListener:t=>ct(t,nt),delListener:a=>(wt(a),t),schedule:Ot,getStore:()=>t,getStats:()=>({loads:K,saves:Q}),...L,destroy:async()=>(e(M)&&(Z=1,M=(async()=>{const t=k(B,P),a=(n=([,t,a])=>a!=tt||(t?.(),!1),t.filter(n));var n;const e=H;h(t),_(t,...a),await v(()=>v(()=>v(mt,()=>e),()=>at?.()),()=>{const t=(k(G,P)??1)-1;x(G,P,t||void 0),lt()})})()),await M,Pt)};return b(Pt)},I=(t,a,n="storage",s)=>H(t,async()=>{const t=a.getString(n);return e(t)?void 0:E(t)},async t=>{const s=t();e(s)||a.set(n,P(s,(t,a)=>e(a)?"":a))},t=>a.addOnValueChangedListener(r=>{r===n&&l(async()=>{const s=a.getString(n);e(s)||await t(E(s))},t=>(()=>{try{return s?.(t)}catch{return}})())}),t=>{t.remove()},s,3,{getStorageName:()=>n});export{I as createReactNativeMmkvPersister};
@@ -1 +1 @@
1
- const t=Promise,a=t=>(a,n,e)=>t(a)?e?.():n(a),n=t=>null==t,e=t=>void 0===t,s=t=>null===t,r=a(n),i=a(e),o=t=>Array.isArray(t),c=t=>t.length,y=t=>0==c(t),u=a=>new t(a),w=(t,a)=>{throw((t,a)=>Error("tinybase:"+t+(e(a)?"":":"+a)))(t,a)},l=async(t,a)=>{try{return await t()}catch(t){a?.(t)}},d=async(t,a)=>{try{return await t()}finally{await a()}},v=(t,a)=>t.forEach(a),f=(t,a)=>t.map(a),g=(t,a=c(t))=>t.splice(0,a),h=(t,...a)=>t.push(...a),_=Object,p=t=>_.getPrototypeOf(t),S=t=>!n(t)&&r(p(t),t=>t==_.prototype||n(p(t)),()=>!0),A=_.keys,L=_.freeze,b=(t,a,n)=>(_.defineProperty(t,a,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),m=t=>S(t)&&0==(t=>c(A(t)))(t),O=JSON.stringify,P=JSON.parse,C=t=>E(P(t)),E=t=>""===t?void 0:o(t)?f(t,E):S(t)?((t,a)=>{const n=((t=[])=>{const a=_.create(null);return v(t,([t,n])=>b(a,t,n)),a})();return((t,a)=>{v(A(t),n=>a(t[n],n))})(t,(t,e)=>b(n,e,a(t,e))),n})(t,E):t,N=t=>e(t)||0==(t=>t?.size??0)(t),z=(t,a)=>t?.forEach(a),D=(t,a)=>t?.delete(a),J=Map,M=t=>new J(t),j=(t,a)=>t?.get(a),k=(t,a,n)=>e(n)?(D(t,a),t):t?.set(a,n),x=(t,a,n,e)=>{let s=j(t,a);var r,i;return r=t,i=a,r?.has(i)?e?.(s):k(t,a,s=n()),s},F=(t,a,n,e,s=0)=>i((n?x:j)(t,a[s],s>c(a)-2?n:M),r=>{if(s>c(a)-2)return e?.(r)&&k(t,a[s]),r;const i=F(r,a,n,e,s+1);return N(r)&&k(t,a[s]),i}),T=/^\d+$/,V=t=>new Set(o(t)||e(t)?t:[t]),$=M(),q=M(),B=M(),G=(t,a,n,r,_,p,S,A={},b=0,O=[])=>{let P,C,E,J,G,H=0,I=0,K=0,Q=0,R=0,U=0,W=0,X=0,Y=0;const Z={},tt=A.destroy;x($,O,()=>0),x(q,O,()=>[]),k(B,O,(j(B,O)??0)+1);const at=M(),[nt,et,st,rt,it]=((t=1,a,n)=>1!=t&&a.isMergeable()?[1,a.__[1],()=>a.__[2](!n),([[t],[a]])=>!m(t)||!m(a),a.setDefaultContent]:2!=t?[0,a._[7],a._[8],([t,a])=>!m(t)||!m(a),a.setContent]:w(0))(S,t,b),[ot,ct,yt]=(t=>{let a;const[n,e]=(()=>{const t=[];let a=0;return[n=>(n?t.shift():null)??""+a++,a=>{T.test(a)&&c(t)<1e3&&h(t,a)}]})(),r=M(),o=(t,n,e,i)=>{let o,y=!1;if(v(((t,a=[""])=>{const n=[],e=(t,r)=>r==c(a)?h(n,t):s(a[r])?z(t,t=>e(t,r+1)):v([a[r],null],a=>e(j(t,a),r+1));return e(t,0),n})(n,e),n=>z(n,n=>{const s=()=>j(r,n)[0](a,...e??[],...i);t?(t=>{try{return t()}catch(t){(t=>{y||(o=t),y=!0})?.(t)}})(s):s()})),y)throw o};return[(e,s,i,o=[],c=()=>[])=>{a??=t();const y=n(1);var u,w;return k(r,y,[e,s,i,o,c]),u=F(s,i??[""],V),w=y,u?.add(w),y},(t,a,...n)=>o(!1,t,a,n),t=>i(j(r,t),([,a,n])=>(F(a,n??[""],void 0,a=>(D(a,t),N(a)?1:0)),k(r,t),e(t),n)),t=>i(j(r,t),([t,,n=[],e,r])=>{const i=(...o)=>{const y=c(o);y==c(n)?t(a,...o,...r(o)):s(n[y])?v(e[y]?.(...o)??[],t=>i(...o,t)):i(...o,n[y])};i()}),(t,a,...n)=>o(!0,t,a,n)]})(()=>Ot),ut=t=>{t!=H&&(H=t,ct(at,void 0,H))},wt=()=>{j(B,O)||j($,O)||!y(j(q,O)??[])||(k($,O),k(q,O),k(B,O))},lt=a=>{(nt&&o(a?.[0])?1===a?.[2]?t.__[4]:t.__[3]:1===a?.[2]?t._[10]:t._[9])(a)},dt=async()=>{Lt()&&t.__?.[0]?.()&&await pt()},vt=t=>d(()=>C=t,()=>{C==t&&(C=void 0)}),ft=async t=>(2!=H&&(await d(async()=>{ut(1),I++,await mt(()=>l(async()=>{const n=await a();o(n)?lt(n):e(n)&&t?it(t):e(n)||w(1,n)},a=>{p?.(a),t&&it(t)}))},()=>ut(0)),await dt()),Ot),gt=async()=>{const t=W;W=0,t&&t==Q&&!Y&&(2==H?W=t:await ft())},ht=async t=>{const a=++Q;let n=!0;if(await _t(!0),a==Q&&!Y){const s=l(async()=>{const t=await r(async(t,e)=>{if(a==Q&&!Y)if(e||t){const a=n||2==H||!!U;R++,a&&U++,await d(async()=>{ut(1),I++,await(a?mt(()=>lt(e??t)):(()=>{try{return lt(e??t)}finally{ut(0)}})())},()=>{a&&U--,--R||ut(0)}),R||await dt()}else 2==H?W=a:await ft()});a!=Q||Y?e(t)||await _(t):P=t},p);await vt(s),a!=Q||Y||await d(()=>ft(t),()=>{n=!1})}return Ot},_t=async(t=!1)=>{W=0,t||Q++;const a=C,n=P;return P=void 0,await vt(d(async()=>{await a},async()=>{e(n)||await l(()=>_(n),p)})),Ot},pt=async t=>(1!=H&&await d(()=>d(async()=>{ut(2),K++,await mt(()=>l(()=>n(et,t),p))},()=>ut(0)),gt),Ot),St=async()=>{const a=++X;return await At(!0),a!=X||Y||(await pt(),a!=X||Y||(E=t.addDidFinishTransactionListener(()=>{if(a==X&&!Y){const t=st();rt(t)&&l(()=>pt(t))}}))),Ot},At=async(a=!1)=>{a||X++;const n=E;return E=void 0,e(n)||t.delListener(n),Ot},Lt=()=>!e(E),bt=async(t=!1)=>{const[a,n]=t?[At,_t]:[_t,At];return await d(()=>a(),async()=>{await n()}),Ot},mt=async(...t)=>{let a,n=!1;const e=u(e=>y(t)?e():h(j(q,O),...f(t,(s,r)=>{const i=r==c(t)-1;return[async()=>{let t;G=u(a=>t=a),await d(async()=>{try{await l(s,p)}catch(t){n||(n=!0,a=t)}i&&e()},()=>{G=void 0,t()})},i?e:void 0,Z]})));if(await(async()=>{if(!j($,O)){k($,O,1);const t=j(q,O);let a=0;await d(async()=>{for(;a<c(t);){const n=t[a++];n[2]=void 0,await n[0]()}},()=>{g(t,a),k($,O,0),wt()})}})(),await e,n)throw a;return Ot},Ot={load:ft,startAutoLoad:ht,stopAutoLoad:_t,isAutoLoading:()=>!e(P),save:pt,startAutoSave:St,stopAutoSave:At,isAutoSaving:Lt,startAutoPersisting:async(t,a=!1)=>{const[n,e]=a?[St,ht]:[ht,St];return await n(t),await e(t),Ot},stopAutoPersisting:bt,getStatus:()=>H,addStatusListener:t=>ot(t,at),delListener:a=>(yt(a),t),schedule:mt,getStore:()=>t,getStats:()=>({loads:I,saves:K}),...A,destroy:async()=>(e(J)&&(Y=1,J=(async()=>{const t=j(q,O),a=(n=([,t,a])=>a!=Z||(t?.(),!1),t.filter(n));var n;const e=G;g(t),h(t,...a),await d(()=>d(()=>d(bt,()=>e),()=>tt?.()),()=>{const t=(j(B,O)??1)-1;k(B,O,t||void 0),wt()})})()),await J,Ot)};return L(Ot)},H=(t,a,n="storage",s)=>G(t,async()=>{const t=a.getString(n);return e(t)?void 0:C(t)},async t=>{const s=t();e(s)||a.set(n,O(s,(t,a)=>e(a)?"":a))},t=>a.addOnValueChangedListener(r=>{r===n&&l(async()=>{const s=a.getString(n);e(s)||await t(C(s))},t=>(()=>{try{return s?.(t)}catch{return}})())}),t=>{t.remove()},s,3,{getStorageName:()=>n});export{H as createReactNativeMmkvPersister};
1
+ const t=Promise,a=t=>(a,n,e)=>t(a)?e?.():n(a),n=t=>null==t,e=t=>void 0===t,s=t=>null===t,r=a(n),i=a(e),o=t=>Array.isArray(t),c=t=>t.length,y=t=>0==c(t),w=a=>new t(a),u=(t,a)=>{throw((t,a)=>Error("tinybase:"+t+(e(a)?"":":"+a)))(t,a)},l=async(t,a)=>{try{return await t()}catch(t){a?.(t)}},d=(t,a)=>l(t,t=>{l(()=>a?.(t))}),v=async(t,a)=>{try{return await t()}finally{await a()}},f=(t,a)=>t.forEach(a),g=(t,a)=>t.map(a),h=(t,a=c(t))=>t.splice(0,a),_=(t,...a)=>t.push(...a),p=Object,S=t=>p.getPrototypeOf(t),A=t=>!n(t)&&r(S(t),t=>t==p.prototype||n(S(t)),()=>!0),L=p.keys,b=p.freeze,m=(t,a,n)=>(p.defineProperty(t,a,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),O=t=>A(t)&&0==(t=>c(L(t)))(t),P=JSON.stringify,C=JSON.parse,E=t=>N(C(t)),N=t=>""===t?void 0:o(t)?g(t,N):A(t)?((t,a)=>{const n=((t=[])=>{const a=p.create(null);return f(t,([t,n])=>m(a,t,n)),a})();return((t,a)=>{f(L(t),n=>a(t[n],n))})(t,(t,e)=>m(n,e,a(t,e))),n})(t,N):t,z=t=>e(t)||0==(t=>t?.size??0)(t),D=(t,a)=>t?.forEach(a),J=(t,a)=>t?.delete(a),M=Map,j=t=>new M(t),k=(t,a)=>t?.get(a),x=(t,a,n)=>e(n)?(J(t,a),t):t?.set(a,n),F=(t,a,n,e)=>{let s=k(t,a);var r,i;return r=t,i=a,r?.has(i)?e?.(s):x(t,a,s=n()),s},T=(t,a,n,e,s=0)=>i((n?F:k)(t,a[s],s>c(a)-2?n:j),r=>{if(s>c(a)-2)return e?.(r)&&x(t,a[s]),r;const i=T(r,a,n,e,s+1);return z(r)&&x(t,a[s]),i}),V=/^\d+$/,$=t=>new Set(o(t)||e(t)?t:[t]),q=j(),B=j(),G=j(),H=(t,a,n,r,p,S,A,L={},m=0,P=[])=>{let C,E,N,M,H,I=0,K=0,Q=0,R=0,U=0,W=0,X=0,Y=0,Z=0;const tt={},at=L.destroy;F(q,P,()=>0),F(B,P,()=>[]),x(G,P,(k(G,P)??0)+1);const nt=j(),[et,st,rt,it,ot]=((t=1,a,n)=>1!=t&&a.isMergeable()?[1,a.__[1],()=>a.__[2](!n),([[t],[a]])=>!O(t)||!O(a),a.setDefaultContent]:2!=t?[0,a._[7],a._[8],([t,a])=>!O(t)||!O(a),a.setContent]:u(0))(A,t,m),[ct,yt,wt]=(t=>{let a;const[n,e]=(()=>{const t=[];let a=0;return[n=>(n?t.shift():null)??""+a++,a=>{V.test(a)&&c(t)<1e3&&_(t,a)}]})(),r=j(),o=(t,n,e,i)=>{let o,y=!1;if(f(((t,a=[""])=>{const n=[],e=(t,r)=>r==c(a)?_(n,t):s(a[r])?D(t,t=>e(t,r+1)):f([a[r],null],a=>e(k(t,a),r+1));return e(t,0),n})(n,e),n=>D(n,n=>{const s=()=>k(r,n)[0](a,...e??[],...i);t?(t=>{try{return t()}catch(t){(t=>{y||(o=t),y=!0})?.(t)}})(s):s()})),y)throw o};return[(e,s,i,o=[],c=()=>[])=>{a??=t();const y=n(1);var w,u;return x(r,y,[e,s,i,o,c]),w=T(s,i??[""],$),u=y,w?.add(u),y},(t,a,...n)=>o(!1,t,a,n),t=>i(k(r,t),([,a,n])=>(T(a,n??[""],void 0,a=>(J(a,t),z(a)?1:0)),x(r,t),e(t),n)),t=>i(k(r,t),([t,,n=[],e,r])=>{const i=(...o)=>{const y=c(o);y==c(n)?t(a,...o,...r(o)):s(n[y])?f(e[y]?.(...o)??[],t=>i(...o,t)):i(...o,n[y])};i()}),(t,a,...n)=>o(!0,t,a,n)]})(()=>Pt),ut=t=>{t!=I&&(I=t,yt(nt,void 0,I))},lt=()=>{k(G,P)||k(q,P)||!y(k(B,P)??[])||(x(q,P),x(B,P),x(G,P))},dt=a=>{(et&&o(a?.[0])?1===a?.[2]?t.__[4]:t.__[3]:1===a?.[2]?t._[10]:t._[9])(a)},vt=async()=>{bt()&&t.__?.[0]?.()&&await St()},ft=t=>v(()=>E=t,()=>{E==t&&(E=void 0)}),gt=async t=>(2!=I&&(await v(async()=>{ut(1),K++,await Ot(()=>l(async()=>{const n=await a();o(n)?dt(n):e(n)&&t?ot(t):e(n)||u(1,n)},a=>{S?.(a),t&&ot(t)}))},()=>ut(0)),await vt()),Pt),ht=async()=>{const t=X;X=0,t&&t==R&&!Z&&(2==I?X=t:await gt())},_t=async t=>{const a=++R;let n=!0;if(await pt(!0),a==R&&!Z){const s=l(async()=>{const t=await r(async(t,e)=>{if(a==R&&!Z)if(e||t){const a=n||2==I||!!W;U++,a&&W++,await v(async()=>{ut(1),K++,await(a?Ot(()=>dt(e??t)):(()=>{try{return dt(e??t)}finally{ut(0)}})())},()=>{a&&W--,--U||ut(0)}),U||await vt()}else 2==I?X=a:await gt()});a!=R||Z?e(t)||await p(t):C=t},S);await ft(s),a!=R||Z||await v(()=>gt(t),()=>{n=!1})}return Pt},pt=async(t=!1)=>{X=0,t||R++;const a=E,n=C;return C=void 0,await ft(v(async()=>{await a},async()=>{e(n)||await l(()=>p(n),S)})),Pt},St=async t=>(1!=I&&await v(()=>v(async()=>{ut(2),Q++,await Ot(()=>l(()=>n(st,t),S))},()=>ut(0)),ht),Pt),At=async()=>{const a=++Y;return await Lt(!0),a!=Y||Z||(await St(),a!=Y||Z||(N=t.addDidFinishTransactionListener(()=>{if(a==Y&&!Z){const t=rt();it(t)&&l(()=>St(t))}}))),Pt},Lt=async(a=!1)=>{a||Y++;const n=N;return N=void 0,e(n)||t.delListener(n),Pt},bt=()=>!e(N),mt=async(t=!1)=>{const[a,n]=t?[Lt,pt]:[pt,Lt];return await v(()=>a(),async()=>{await n()}),Pt},Ot=async(...t)=>{let a,n=!1;const e=w(e=>y(t)?e():_(k(B,P),...g(t,(s,r)=>{const i=r==c(t)-1;return[async()=>{let t;H=w(a=>t=a),await v(async()=>{try{await l(s,S)}catch(t){n||(n=!0,a=t)}i&&e()},()=>{H=void 0,t()})},i?e:void 0,tt]})));if(await(async()=>{if(!k(q,P)){x(q,P,1);const t=k(B,P);let a=0;await v(async()=>{for(;a<c(t);){const n=t[a++];n[2]=void 0,await n[0]()}},()=>{h(t,a),x(q,P,0),lt()})}})(),await e,n)throw a;return Pt},Pt={load:gt,startAutoLoad:_t,stopAutoLoad:pt,isAutoLoading:()=>!e(C),save:St,startAutoSave:At,stopAutoSave:Lt,isAutoSaving:bt,startAutoPersisting:async(t,a=!1)=>{const[n,e,s,r]=a?[At,_t,Lt,pt]:[_t,At,pt,Lt],i=n(t),o=a?Y:R;await i;const c=e(t),y=a?R:Y;try{await c}catch(t){throw y==(a?R:Y)&&await d(r),o==(a?Y:R)&&await d(s),t}return Pt},stopAutoPersisting:mt,getStatus:()=>I,addStatusListener:t=>ct(t,nt),delListener:a=>(wt(a),t),schedule:Ot,getStore:()=>t,getStats:()=>({loads:K,saves:Q}),...L,destroy:async()=>(e(M)&&(Z=1,M=(async()=>{const t=k(B,P),a=(n=([,t,a])=>a!=tt||(t?.(),!1),t.filter(n));var n;const e=H;h(t),_(t,...a),await v(()=>v(()=>v(mt,()=>e),()=>at?.()),()=>{const t=(k(G,P)??1)-1;x(G,P,t||void 0),lt()})})()),await M,Pt)};return b(Pt)},I=(t,a,n="storage",s)=>H(t,async()=>{const t=a.getString(n);return e(t)?void 0:E(t)},async t=>{const s=t();e(s)||a.set(n,P(s,(t,a)=>e(a)?"":a))},t=>a.addOnValueChangedListener(r=>{r===n&&l(async()=>{const s=a.getString(n);e(s)||await t(E(s))},t=>(()=>{try{return s?.(t)}catch{return}})())}),t=>{t.remove()},s,3,{getStorageName:()=>n});export{I as createReactNativeMmkvPersister};
@@ -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(),S=(a,t)=>a?.forEach(t),I=(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)=>S(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)?(I(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]),Sa=(a,t)=>a?.add(t),Ia="ColumnName",Da="store",Ra="json",ba=Da+"TableName",La=Da+"Id"+Ia,Ca=Da+Ia,Ma="autoLoadIntervalSeconds",Pa="rowId"+Ia,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])?S(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=>S(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]),Sa(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=>(I(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})=>{Sa(ha(y,a,ga),t),n&&Sa(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=>Sa(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),S=ga(P(T(g),a=>a==n||_(a)));if(!N(h))if(p(y,a)){if(await O(M([n,...h],async t=>{I(S,t)||(await v(J+Z(a)+"ADD"+Z(t)+r),Sa(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)})`),Sa(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(S),async t=>{t!=n&&(await v(J+Z(a)+"DROP"+Z(t)),I(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,S,I]=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 S(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 S(y,B,{[q]:u(v)?a:R(a,v,t)},!0,!0,t,void 0,v):null;return Za(a,()=>I(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)=>I(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),[S,I,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=>Sa(d,a)),$=Ya(r,{[xa]:null,[Pa]:B,[qa]:0,[Ba]:0,[Ua]:null},xa,(a,t)=>p(v,t),(a,t)=>Sa(d,t));return Aa($,(a,t)=>t[4]??=_a(f,t[0])?.[2]??s),[0,e,[f,$,u],d]})(e);return!S&&a.isMergeable()&&D(0),(S?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*I)))});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=[])=>(await t.executeSql(a,n))[0].rows.raw(),_,_,e,i,_,3,t);export{rt as createReactNativeSqlitePersister};
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),w=globalThis,l=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=o(l),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(),S=(a,t)=>a?.forEach(t),I=(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=>!l(a)&&v(sa(a),a=>a==ia.prototype||l(sa(a)),()=>!0),oa=ia.keys,wa=ia.freeze,la=(...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)=>S(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)?(I(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}),Sa=a=>new Set($(a)||u(a)?a:[a]),Ia=(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=(l=la(t,E(a)?{[n]:a}:a),o=ia.values(l),w=$a(t),o.slice(0,w));var o,w,l;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={},w=0,l=[])=>{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,l,()=>0),Ta(Wa,l,()=>[]),pa(Za,l,(Aa(Za,l)??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,w),[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])?S(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=>S(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=[],w=()=>[])=>{t??=a();const l=e(1);return pa(s,l,[i,r,c,o,w]),Ia(ga(r,c??[n],Sa),l),l},(a,t,...n)=>r(!1,a,t,n),a=>f(Aa(s,a),([,t,e])=>(ga(t,e??[n],void 0,t=>(I(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,l)||Aa(Va,l)||!N(Aa(Wa,l)??[])||(pa(Va,l),pa(Wa,l),pa(Za,l))},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 la(!0),t==M&&!J){const e=R(async()=>{const a=await i(async(a,e)=>{if(t==M&&!J)if(e||a){const t=n||2==O||!!U;B++,t&&U++,await L(async()=>{ta(1),T++,await(t?Ea(()=>ea(e??a)):(()=>{try{return ea(e??a)}finally{ta(0)}})())},()=>{t&&U--,--B||ta(0)}),B||await ia()}else 2==O?j=t:await ra()});t!=M||J?u(a)||await s(a):d=a},r);await sa(e),t!=M||J||await L(()=>ra(a),()=>{n=!1})}return $a},la=async(a=!1)=>{j=0,a||M++;const t=v,n=d;return d=void 0,await sa(L(async()=>{await t},async()=>{u(n)||await R(()=>s(n),r)})),$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,la]:[la,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,l),...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,l)){pa(Va,l,1);const a=Aa(Wa,l);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,l,0),na()})}})(),await e,n)throw t;return $a},$a={load:ra,startAutoLoad:oa,stopAutoLoad:la,isAutoLoading:()=>!u(d),save:ua,startAutoSave:ya,stopAutoSave:da,isAutoSaving:va,startAutoPersisting:async(a,t=!1)=>{const[n,e,i,s]=t?[ya,oa,da,la]:[oa,ya,la,da],r=n(a),c=t?k:M;await r;const o=e(a),w=t?M:k;try{await o}catch(a){throw w==(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,l),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,l)??1)-1;pa(Za,l,a||void 0),na()})})()),await _,$a)};return wa($a)},tt=new w.TextEncoder,nt=(a,n,i,r,c=et,o,w,l)=>{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})=>{Ia(Ta(y,a,Sa),t),n&&Ia(Ta(d,a,Sa),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:Sa(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=w?Ea(da(a,t),w):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,w,l,f=!1,E=s,$)=>{const m=u($)?void 0:Sa($),_=a=>u(m)||O(m,a),A=Sa();va(i??{},a=>C(F(oa(a??{}),_),a=>Ia(A,a)));const p=T(A);if(u(m)&&!f&&l&&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),S=Sa(F(T(g),a=>a==n||_(a)));if(!N(p))if(O(y,a)){if(await h(P([n,...p],async t=>{I(S,t)||(await v(X+aa(a)+"ADD"+aa(t)+r),Ia(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)})`),Ia(Ta(d,a,Sa),n)}}else await v(W+aa(a)+`(${aa(n)}${r} PRIMARY KEY${M(P(p,a=>e+aa(a)+r))});`),pa(y,a,Sa([n,...p])),pa(d,a,Sa([n]));if(await h([...!f&&w?P(T(S),async t=>{t!=n&&(await v(X+aa(a)+"DROP"+aa(t)),I(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(l)return await l(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,w],l,y,d,v,f,E,$,m,N)=>{const[_,A,h,O]=nt(t,l,y,f,E,void 0,void 0,N);return at(a,()=>O(async()=>{return await _(),a=(await A(c,o))[B]?.[w]??"null",Ka(Ha(a));var a}),a=>O(async()=>{var t;await _(),await h(c,o,{[B]:{[w]:(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,[w,l,y,d,v]],f,E,$,m,N,_,A,O,p)=>{const[T,g,S,I]=nt(t,f,E,N,_,A,O,p),D=(a,t)=>h(Oa(o,async([n,e,i,s,r],c)=>{var o,w;t&&(o=a,w=c,!ia.hasOwn(o,w))||await S(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)=>l?await S(y,U,{[B]:u(v)?a:R(a,v,t)},!0,!0,t,void 0,v):null;return at(a,()=>I(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()=>w?(await g(y,U,void 0,d))[B]:{})();return ma(a)&&u(t)?void 0:[a,t]}),(a,t)=>I(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,w,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,w),[S,I,R,C]=(a=>{const n=(a=>la(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],Sa(a)]}const{tables:{load:i={},save:r={}}={},values:c={}}=n,o=la(Ja,c),{load:w,save:l}=o,u=[Ya(w),Ya(l),o[qa],Xa(w),Xa(l)],y=u[2],d=Sa(y),v=Sa(y),f=za(i,{[xa]:null,[Fa]:U,[ja]:s},xa,a=>O(v,a),a=>Ia(d,a)),$=za(r,{[qa]:null,[Fa]:U,[Ba]:0,[Ua]:0,[ja]:null},qa,(a,t)=>O(v,t),(a,t)=>Ia(d,t));return ha($,(a,t)=>t[4]??=Aa(f,t[0])?.[2]??s),[0,e,[f,$,u],d]})(e);return!S&&a.isMergeable()&&D(0),(S?it:st)(a,g,a=>{let t,n,e=1,i=0,s=0;const w=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&&!l(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 w():(await w(!1),i=1);e&&s;)s=0,await w(!1),e&&(await a(),await w())},y),()=>{n==c&&(n=void 0),e&&(s?v():e&&u(t)&&(t=setInterval(()=>v(!0),1e3*I)))});return n=c,c},f=r(a=>{e&&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=[])=>(await t.executeSql(a,n))[0].rows.raw(),_,_,e,i,_,3,t);export{ct as createReactNativeSqlitePersister};
@@ -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(),S=(a,t)=>a?.forEach(t),I=(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)=>S(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)?(I(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]),Sa=(a,t)=>a?.add(t),Ia="ColumnName",Da="store",Ra="json",ba=Da+"TableName",La=Da+"Id"+Ia,Ca=Da+Ia,Ma="autoLoadIntervalSeconds",Pa="rowId"+Ia,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])?S(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=>S(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]),Sa(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=>(I(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})=>{Sa(ha(y,a,ga),t),n&&Sa(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=>Sa(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),S=ga(P(T(g),a=>a==n||_(a)));if(!N(h))if(p(y,a)){if(await O(M([n,...h],async t=>{I(S,t)||(await v(J+Z(a)+"ADD"+Z(t)+r),Sa(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)})`),Sa(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(S),async t=>{t!=n&&(await v(J+Z(a)+"DROP"+Z(t)),I(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,S,I]=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 S(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 S(y,B,{[q]:u(v)?a:R(a,v,t)},!0,!0,t,void 0,v):null;return Za(a,()=>I(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)=>I(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),[S,I,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=>Sa(d,a)),$=Ya(r,{[xa]:null,[Pa]:B,[qa]:0,[Ba]:0,[Ua]:null},xa,(a,t)=>p(v,t),(a,t)=>Sa(d,t));return Aa($,(a,t)=>t[4]??=_a(f,t[0])?.[2]??s),[0,e,[f,$,u],d]})(e);return!S&&a.isMergeable()&&D(0),(S?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*I)))});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=[])=>(await t.executeSql(a,n))[0].rows.raw(),_,_,e,i,_,3,t);export{rt as createReactNativeSqlitePersister};
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),w=globalThis,l=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=o(l),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(),S=(a,t)=>a?.forEach(t),I=(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=>!l(a)&&v(sa(a),a=>a==ia.prototype||l(sa(a)),()=>!0),oa=ia.keys,wa=ia.freeze,la=(...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)=>S(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)?(I(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}),Sa=a=>new Set($(a)||u(a)?a:[a]),Ia=(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=(l=la(t,E(a)?{[n]:a}:a),o=ia.values(l),w=$a(t),o.slice(0,w));var o,w,l;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={},w=0,l=[])=>{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,l,()=>0),Ta(Wa,l,()=>[]),pa(Za,l,(Aa(Za,l)??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,w),[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])?S(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=>S(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=[],w=()=>[])=>{t??=a();const l=e(1);return pa(s,l,[i,r,c,o,w]),Ia(ga(r,c??[n],Sa),l),l},(a,t,...n)=>r(!1,a,t,n),a=>f(Aa(s,a),([,t,e])=>(ga(t,e??[n],void 0,t=>(I(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,l)||Aa(Va,l)||!N(Aa(Wa,l)??[])||(pa(Va,l),pa(Wa,l),pa(Za,l))},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 la(!0),t==M&&!J){const e=R(async()=>{const a=await i(async(a,e)=>{if(t==M&&!J)if(e||a){const t=n||2==O||!!U;B++,t&&U++,await L(async()=>{ta(1),T++,await(t?Ea(()=>ea(e??a)):(()=>{try{return ea(e??a)}finally{ta(0)}})())},()=>{t&&U--,--B||ta(0)}),B||await ia()}else 2==O?j=t:await ra()});t!=M||J?u(a)||await s(a):d=a},r);await sa(e),t!=M||J||await L(()=>ra(a),()=>{n=!1})}return $a},la=async(a=!1)=>{j=0,a||M++;const t=v,n=d;return d=void 0,await sa(L(async()=>{await t},async()=>{u(n)||await R(()=>s(n),r)})),$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,la]:[la,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,l),...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,l)){pa(Va,l,1);const a=Aa(Wa,l);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,l,0),na()})}})(),await e,n)throw t;return $a},$a={load:ra,startAutoLoad:oa,stopAutoLoad:la,isAutoLoading:()=>!u(d),save:ua,startAutoSave:ya,stopAutoSave:da,isAutoSaving:va,startAutoPersisting:async(a,t=!1)=>{const[n,e,i,s]=t?[ya,oa,da,la]:[oa,ya,la,da],r=n(a),c=t?k:M;await r;const o=e(a),w=t?M:k;try{await o}catch(a){throw w==(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,l),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,l)??1)-1;pa(Za,l,a||void 0),na()})})()),await _,$a)};return wa($a)},tt=new w.TextEncoder,nt=(a,n,i,r,c=et,o,w,l)=>{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})=>{Ia(Ta(y,a,Sa),t),n&&Ia(Ta(d,a,Sa),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:Sa(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=w?Ea(da(a,t),w):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,w,l,f=!1,E=s,$)=>{const m=u($)?void 0:Sa($),_=a=>u(m)||O(m,a),A=Sa();va(i??{},a=>C(F(oa(a??{}),_),a=>Ia(A,a)));const p=T(A);if(u(m)&&!f&&l&&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),S=Sa(F(T(g),a=>a==n||_(a)));if(!N(p))if(O(y,a)){if(await h(P([n,...p],async t=>{I(S,t)||(await v(X+aa(a)+"ADD"+aa(t)+r),Ia(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)})`),Ia(Ta(d,a,Sa),n)}}else await v(W+aa(a)+`(${aa(n)}${r} PRIMARY KEY${M(P(p,a=>e+aa(a)+r))});`),pa(y,a,Sa([n,...p])),pa(d,a,Sa([n]));if(await h([...!f&&w?P(T(S),async t=>{t!=n&&(await v(X+aa(a)+"DROP"+aa(t)),I(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(l)return await l(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,w],l,y,d,v,f,E,$,m,N)=>{const[_,A,h,O]=nt(t,l,y,f,E,void 0,void 0,N);return at(a,()=>O(async()=>{return await _(),a=(await A(c,o))[B]?.[w]??"null",Ka(Ha(a));var a}),a=>O(async()=>{var t;await _(),await h(c,o,{[B]:{[w]:(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,[w,l,y,d,v]],f,E,$,m,N,_,A,O,p)=>{const[T,g,S,I]=nt(t,f,E,N,_,A,O,p),D=(a,t)=>h(Oa(o,async([n,e,i,s,r],c)=>{var o,w;t&&(o=a,w=c,!ia.hasOwn(o,w))||await S(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)=>l?await S(y,U,{[B]:u(v)?a:R(a,v,t)},!0,!0,t,void 0,v):null;return at(a,()=>I(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()=>w?(await g(y,U,void 0,d))[B]:{})();return ma(a)&&u(t)?void 0:[a,t]}),(a,t)=>I(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,w,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,w),[S,I,R,C]=(a=>{const n=(a=>la(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],Sa(a)]}const{tables:{load:i={},save:r={}}={},values:c={}}=n,o=la(Ja,c),{load:w,save:l}=o,u=[Ya(w),Ya(l),o[qa],Xa(w),Xa(l)],y=u[2],d=Sa(y),v=Sa(y),f=za(i,{[xa]:null,[Fa]:U,[ja]:s},xa,a=>O(v,a),a=>Ia(d,a)),$=za(r,{[qa]:null,[Fa]:U,[Ba]:0,[Ua]:0,[ja]:null},qa,(a,t)=>O(v,t),(a,t)=>Ia(d,t));return ha($,(a,t)=>t[4]??=Aa(f,t[0])?.[2]??s),[0,e,[f,$,u],d]})(e);return!S&&a.isMergeable()&&D(0),(S?it:st)(a,g,a=>{let t,n,e=1,i=0,s=0;const w=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&&!l(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 w():(await w(!1),i=1);e&&s;)s=0,await w(!1),e&&(await a(),await w())},y),()=>{n==c&&(n=void 0),e&&(s?v():e&&u(t)&&(t=setInterval(()=>v(!0),1e3*I)))});return n=c,c},f=r(a=>{e&&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=[])=>(await t.executeSql(a,n))[0].rows.raw(),_,_,e,i,_,3,t);export{ct as createReactNativeSqlitePersister};
@@ -1 +1 @@
1
- const t="",a=Promise,n=t=>(a,n,e)=>t(a)?e?.():n(a),e=t=>null==t,s=t=>void 0===t,r=t=>null===t,i=n(e),o=n(s),c=t=>Array.isArray(t),y=t=>t.length,w=t=>0==y(t),l=t=>new a(t),u=(a,n)=>{throw((a,n)=>Error("tinybase:"+a+(s(n)?t:":"+n)))(a,n)},d=async(t,a)=>{try{return await t()}catch(t){a?.(t)}},v=async(t,a)=>{try{return await t()}finally{await a()}},f=(t,a)=>t.forEach(a),h=(t,a=y(t))=>t.splice(0,a),g=(t,...a)=>t.push(...a),p=Object,_=t=>p.getPrototypeOf(t),A=p.keys,S=p.freeze,b=t=>(t=>!e(t)&&i(_(t),t=>t==p.prototype||e(_(t)),()=>!0))(t)&&0==(t=>y(A(t)))(t),L=JSON.stringify,P=JSON.parse,m=t=>s(t)||0==(t=>t?.size??0)(t),E=(t,a)=>t?.forEach(a),O=(t,a)=>t?.delete(a),C=Map,M=t=>new C(t),T=(t,a)=>t?.get(a),D=(t,a,n)=>s(n)?(O(t,a),t):t?.set(a,n),I=(t,a,n,e)=>{let s=T(t,a);var r,i;return r=t,i=a,r?.has(i)?e?.(s):D(t,a,s=n()),s},N=(t,a,n,e,s=0)=>o((n?I:T)(t,a[s],s>y(a)-2?n:M),r=>{if(s>y(a)-2)return e?.(r)&&D(t,a[s]),r;const i=N(r,a,n,e,s+1);return m(r)&&D(t,a[s]),i}),j=/^\d+$/,k=t=>new Set(c(t)||s(t)?t:[t]),x=M(),z=M(),J=M(),F=(a,n,e,i,p,_,A,L={},P=0,C=[])=>{let F,H,U,$,q,B=0,G=0,K=0,Q=0,R=0,V=0,W=0,X=0,Y=0;const Z={},tt=L.destroy;I(x,C,()=>0),I(z,C,()=>[]),D(J,C,(T(J,C)??0)+1);const at=M(),[nt,et,st,rt,it]=((t=1,a,n)=>1!=t&&a.isMergeable()?[1,a.__[1],()=>a.__[2](!n),([[t],[a]])=>!b(t)||!b(a),a.setDefaultContent]:2!=t?[0,a._[7],a._[8],([t,a])=>!b(t)||!b(a),a.setContent]:u(0))(A,a,P),[ot,ct,yt]=(a=>{let n;const[e,s]=(()=>{const a=[];let n=0;return[e=>(e?a.shift():null)??t+n++,t=>{j.test(t)&&y(a)<1e3&&g(a,t)}]})(),i=M(),c=(a,e,s,o)=>{let c,w=!1;if(f(((a,n=[t])=>{const e=[],s=(t,a)=>a==y(n)?g(e,t):r(n[a])?E(t,t=>s(t,a+1)):f([n[a],null],n=>s(T(t,n),a+1));return s(a,0),e})(e,s),t=>E(t,t=>{const e=()=>T(i,t)[0](n,...s??[],...o);a?(t=>{try{return t()}catch(t){(t=>{w||(c=t),w=!0})?.(t)}})(e):e()})),w)throw c};return[(s,r,o,c=[],y=()=>[])=>{n??=a();const w=e(1);var l,u;return D(i,w,[s,r,o,c,y]),l=N(r,o??[t],k),u=w,l?.add(u),w},(t,a,...n)=>c(!1,t,a,n),a=>o(T(i,a),([,n,e])=>(N(n,e??[t],void 0,t=>(O(t,a),m(t)?1:0)),D(i,a),s(a),e)),t=>o(T(i,t),([t,,a=[],e,s])=>{const i=(...o)=>{const c=y(o);c==y(a)?t(n,...o,...s(o)):r(a[c])?f(e[c]?.(...o)??[],t=>i(...o,t)):i(...o,a[c])};i()}),(t,a,...n)=>c(!0,t,a,n)]})(()=>mt),wt=t=>{t!=B&&(B=t,ct(at,void 0,B))},lt=()=>{T(J,C)||T(x,C)||!w(T(z,C)??[])||(D(x,C),D(z,C),D(J,C))},ut=t=>{(nt&&c(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},dt=async()=>{bt()&&a.__?.[0]?.()&&await _t()},vt=t=>v(()=>H=t,()=>{H==t&&(H=void 0)}),ft=async t=>(2!=B&&(await v(async()=>{wt(1),G++,await Pt(()=>d(async()=>{const a=await n();c(a)?ut(a):s(a)&&t?it(t):s(a)||u(1,a)},a=>{_?.(a),t&&it(t)}))},()=>wt(0)),await dt()),mt),ht=async()=>{const t=W;W=0,t&&t==Q&&!Y&&(2==B?W=t:await ft())},gt=async t=>{const a=++Q;let n=!0;if(await pt(!0),a==Q&&!Y){const e=d(async()=>{const t=await i(async(t,e)=>{if(a==Q&&!Y)if(e||t){const a=n||2==B||!!V;R++,a&&V++,await v(async()=>{wt(1),G++,await(a?Pt(()=>ut(e??t)):(()=>{try{return ut(e??t)}finally{wt(0)}})())},()=>{a&&V--,--R||wt(0)}),R||await dt()}else 2==B?W=a:await ft()});a!=Q||Y?s(t)||await p(t):F=t},_);await vt(e),a!=Q||Y||await v(()=>ft(t),()=>{n=!1})}return mt},pt=async(t=!1)=>{W=0,t||Q++;const a=H,n=F;return F=void 0,await vt(v(async()=>{await a},async()=>{s(n)||await d(()=>p(n),_)})),mt},_t=async t=>(1!=B&&await v(()=>v(async()=>{wt(2),K++,await Pt(()=>d(()=>e(et,t),_))},()=>wt(0)),ht),mt),At=async()=>{const t=++X;return await St(!0),t!=X||Y||(await _t(),t!=X||Y||(U=a.addDidFinishTransactionListener(()=>{if(t==X&&!Y){const t=st();rt(t)&&d(()=>_t(t))}}))),mt},St=async(t=!1)=>{t||X++;const n=U;return U=void 0,s(n)||a.delListener(n),mt},bt=()=>!s(U),Lt=async(t=!1)=>{const[a,n]=t?[St,pt]:[pt,St];return await v(()=>a(),async()=>{await n()}),mt},Pt=async(...t)=>{let a,n=!1;const e=l(e=>{return w(t)?e():g(T(z,C),...(s=t,r=(s,r)=>{const i=r==y(t)-1;return[async()=>{let t;q=l(a=>t=a),await v(async()=>{try{await d(s,_)}catch(t){n||(n=!0,a=t)}i&&e()},()=>{q=void 0,t()})},i?e:void 0,Z]},s.map(r)));var s,r});if(await(async()=>{if(!T(x,C)){D(x,C,1);const t=T(z,C);let a=0;await v(async()=>{for(;a<y(t);){const n=t[a++];n[2]=void 0,await n[0]()}},()=>{h(t,a),D(x,C,0),lt()})}})(),await e,n)throw a;return mt},mt={load:ft,startAutoLoad:gt,stopAutoLoad:pt,isAutoLoading:()=>!s(F),save:_t,startAutoSave:At,stopAutoSave:St,isAutoSaving:bt,startAutoPersisting:async(t,a=!1)=>{const[n,e]=a?[At,gt]:[gt,At];return await n(t),await e(t),mt},stopAutoPersisting:Lt,getStatus:()=>B,addStatusListener:t=>ot(t,at),delListener:t=>(yt(t),a),schedule:Pt,getStore:()=>a,getStats:()=>({loads:G,saves:K}),...L,destroy:async()=>(s($)&&(Y=1,$=(async()=>{const t=T(z,C),a=(n=([,t,a])=>a!=Z||(t?.(),!1),t.filter(n));var n;const e=q;h(t),g(t,...a),await v(()=>v(()=>v(Lt,()=>e),()=>tt?.()),()=>{const t=(T(J,C)??1)-1;D(J,C,t||void 0),lt()})})()),await $,mt)};return S(mt)},H=a=>a.headers.get("ETag")??t,U=a=>a==t?void 0:{"If-None-Match":a},$=(t,a)=>{if(!(t.ok||a&&304==t.status))throw t},q=(a,n,e,r=5,i)=>{let o,c=t;return F(a,async()=>{const t=await fetch(n,{headers:U(c)}),a=304==t.status&&!s(o);$(t,a?1:void 0);const e=a?o:await t.text(),r=P(e);return a||(o=e,c=H(t)),r},async t=>{const a=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:(n=t(),L(n,(t,a)=>a instanceof Map?((t=[])=>{const a=p.create(null);return f(t,([t,n])=>((t,a,n)=>(p.defineProperty(t,a,{configurable:!0,enumerable:!0,value:n,writable:!0}),n))(a,t,n)),a})([...a]):a))});var n;await v(async()=>$(a),()=>a.body?.cancel())},t=>{let a,e,o=!1;return[(y=()=>{!o&&s(a)&&(e=new AbortController,a=v(()=>d(async()=>{const a=await fetch(n,{method:"HEAD",headers:U(c),signal:e?.signal});$(a,1),o||304==a.status||H(a)==c||await t()},t=>o?0:(()=>{try{return i?.(t)}catch{return}})()),()=>{a=void 0,e=void 0}))},w=r,setInterval(y,1e3*w)),async()=>{o=!0,e?.abort(),await a}];var y,w},async([t,a])=>{const n=a();(t=>{clearInterval(t)})(t),await n},i,1,{getUrls:()=>[n,e]})};export{q as createRemotePersister};
1
+ const t="",a=Promise,n=t=>(a,n,e)=>t(a)?e?.():n(a),e=t=>null==t,s=t=>void 0===t,r=t=>null===t,i=n(e),o=n(s),c=t=>Array.isArray(t),w=t=>t.length,y=t=>0==w(t),l=t=>new a(t),u=(a,n)=>{throw((a,n)=>Error("tinybase:"+a+(s(n)?t:":"+n)))(a,n)},d=async(t,a)=>{try{return await t()}catch(t){a?.(t)}},h=(t,a)=>d(t,t=>{d(()=>a?.(t))}),v=async(t,a)=>{try{return await t()}finally{await a()}},f=(t,a)=>t.forEach(a),g=(t,a=w(t))=>t.splice(0,a),p=(t,...a)=>t.push(...a),_=Object,A=t=>_.getPrototypeOf(t),S=_.keys,b=_.freeze,L=t=>(t=>!e(t)&&i(A(t),t=>t==_.prototype||e(A(t)),()=>!0))(t)&&0==(t=>w(S(t)))(t),P=JSON.stringify,m=JSON.parse,E=t=>s(t)||0==(t=>t?.size??0)(t),O=(t,a)=>t?.forEach(a),C=(t,a)=>t?.delete(a),M=Map,T=t=>new M(t),D=(t,a)=>t?.get(a),I=(t,a,n)=>s(n)?(C(t,a),t):t?.set(a,n),N=(t,a,n,e)=>{let s=D(t,a);var r,i;return r=t,i=a,r?.has(i)?e?.(s):I(t,a,s=n()),s},j=(t,a,n,e,s=0)=>o((n?N:D)(t,a[s],s>w(a)-2?n:T),r=>{if(s>w(a)-2)return e?.(r)&&I(t,a[s]),r;const i=j(r,a,n,e,s+1);return E(r)&&I(t,a[s]),i}),k=/^\d+$/,x=t=>new Set(c(t)||s(t)?t:[t]),z=T(),J=T(),F=T(),H=(a,n,e,i,_,A,S,P={},m=0,M=[])=>{let H,U,$,q,B,G=0,K=0,Q=0,R=0,V=0,W=0,X=0,Y=0,Z=0;const tt={},at=P.destroy;N(z,M,()=>0),N(J,M,()=>[]),I(F,M,(D(F,M)??0)+1);const nt=T(),[et,st,rt,it,ot]=((t=1,a,n)=>1!=t&&a.isMergeable()?[1,a.__[1],()=>a.__[2](!n),([[t],[a]])=>!L(t)||!L(a),a.setDefaultContent]:2!=t?[0,a._[7],a._[8],([t,a])=>!L(t)||!L(a),a.setContent]:u(0))(S,a,m),[ct,wt,yt]=(a=>{let n;const[e,s]=(()=>{const a=[];let n=0;return[e=>(e?a.shift():null)??t+n++,t=>{k.test(t)&&w(a)<1e3&&p(a,t)}]})(),i=T(),c=(a,e,s,o)=>{let c,y=!1;if(f(((a,n=[t])=>{const e=[],s=(t,a)=>a==w(n)?p(e,t):r(n[a])?O(t,t=>s(t,a+1)):f([n[a],null],n=>s(D(t,n),a+1));return s(a,0),e})(e,s),t=>O(t,t=>{const e=()=>D(i,t)[0](n,...s??[],...o);a?(t=>{try{return t()}catch(t){(t=>{y||(c=t),y=!0})?.(t)}})(e):e()})),y)throw c};return[(s,r,o,c=[],w=()=>[])=>{n??=a();const y=e(1);var l,u;return I(i,y,[s,r,o,c,w]),l=j(r,o??[t],x),u=y,l?.add(u),y},(t,a,...n)=>c(!1,t,a,n),a=>o(D(i,a),([,n,e])=>(j(n,e??[t],void 0,t=>(C(t,a),E(t)?1:0)),I(i,a),s(a),e)),t=>o(D(i,t),([t,,a=[],e,s])=>{const i=(...o)=>{const c=w(o);c==w(a)?t(n,...o,...s(o)):r(a[c])?f(e[c]?.(...o)??[],t=>i(...o,t)):i(...o,a[c])};i()}),(t,a,...n)=>c(!0,t,a,n)]})(()=>Et),lt=t=>{t!=G&&(G=t,wt(nt,void 0,G))},ut=()=>{D(F,M)||D(z,M)||!y(D(J,M)??[])||(I(z,M),I(J,M),I(F,M))},dt=t=>{(et&&c(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ht=async()=>{Lt()&&a.__?.[0]?.()&&await At()},vt=t=>v(()=>U=t,()=>{U==t&&(U=void 0)}),ft=async t=>(2!=G&&(await v(async()=>{lt(1),K++,await mt(()=>d(async()=>{const a=await n();c(a)?dt(a):s(a)&&t?ot(t):s(a)||u(1,a)},a=>{A?.(a),t&&ot(t)}))},()=>lt(0)),await ht()),Et),gt=async()=>{const t=X;X=0,t&&t==R&&!Z&&(2==G?X=t:await ft())},pt=async t=>{const a=++R;let n=!0;if(await _t(!0),a==R&&!Z){const e=d(async()=>{const t=await i(async(t,e)=>{if(a==R&&!Z)if(e||t){const a=n||2==G||!!W;V++,a&&W++,await v(async()=>{lt(1),K++,await(a?mt(()=>dt(e??t)):(()=>{try{return dt(e??t)}finally{lt(0)}})())},()=>{a&&W--,--V||lt(0)}),V||await ht()}else 2==G?X=a:await ft()});a!=R||Z?s(t)||await _(t):H=t},A);await vt(e),a!=R||Z||await v(()=>ft(t),()=>{n=!1})}return Et},_t=async(t=!1)=>{X=0,t||R++;const a=U,n=H;return H=void 0,await vt(v(async()=>{await a},async()=>{s(n)||await d(()=>_(n),A)})),Et},At=async t=>(1!=G&&await v(()=>v(async()=>{lt(2),Q++,await mt(()=>d(()=>e(st,t),A))},()=>lt(0)),gt),Et),St=async()=>{const t=++Y;return await bt(!0),t!=Y||Z||(await At(),t!=Y||Z||($=a.addDidFinishTransactionListener(()=>{if(t==Y&&!Z){const t=rt();it(t)&&d(()=>At(t))}}))),Et},bt=async(t=!1)=>{t||Y++;const n=$;return $=void 0,s(n)||a.delListener(n),Et},Lt=()=>!s($),Pt=async(t=!1)=>{const[a,n]=t?[bt,_t]:[_t,bt];return await v(()=>a(),async()=>{await n()}),Et},mt=async(...t)=>{let a,n=!1;const e=l(e=>{return y(t)?e():p(D(J,M),...(s=t,r=(s,r)=>{const i=r==w(t)-1;return[async()=>{let t;B=l(a=>t=a),await v(async()=>{try{await d(s,A)}catch(t){n||(n=!0,a=t)}i&&e()},()=>{B=void 0,t()})},i?e:void 0,tt]},s.map(r)));var s,r});if(await(async()=>{if(!D(z,M)){I(z,M,1);const t=D(J,M);let a=0;await v(async()=>{for(;a<w(t);){const n=t[a++];n[2]=void 0,await n[0]()}},()=>{g(t,a),I(z,M,0),ut()})}})(),await e,n)throw a;return Et},Et={load:ft,startAutoLoad:pt,stopAutoLoad:_t,isAutoLoading:()=>!s(H),save:At,startAutoSave:St,stopAutoSave:bt,isAutoSaving:Lt,startAutoPersisting:async(t,a=!1)=>{const[n,e,s,r]=a?[St,pt,bt,_t]:[pt,St,_t,bt],i=n(t),o=a?Y:R;await i;const c=e(t),w=a?R:Y;try{await c}catch(t){throw w==(a?R:Y)&&await h(r),o==(a?Y:R)&&await h(s),t}return Et},stopAutoPersisting:Pt,getStatus:()=>G,addStatusListener:t=>ct(t,nt),delListener:t=>(yt(t),a),schedule:mt,getStore:()=>a,getStats:()=>({loads:K,saves:Q}),...P,destroy:async()=>(s(q)&&(Z=1,q=(async()=>{const t=D(J,M),a=(n=([,t,a])=>a!=tt||(t?.(),!1),t.filter(n));var n;const e=B;g(t),p(t,...a),await v(()=>v(()=>v(Pt,()=>e),()=>at?.()),()=>{const t=(D(F,M)??1)-1;I(F,M,t||void 0),ut()})})()),await q,Et)};return b(Et)},U=a=>a.headers.get("ETag")??t,$=a=>a==t?void 0:{"If-None-Match":a},q=(t,a)=>{if(!(t.ok||a&&304==t.status))throw t},B=(a,n,e,r=5,i)=>{let o,c=t;return H(a,async()=>{const t=await fetch(n,{headers:$(c)}),a=304==t.status&&!s(o);q(t,a?1:void 0);const e=a?o:await t.text(),r=m(e);return a||(o=e,c=U(t)),r},async t=>{const a=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:(n=t(),P(n,(t,a)=>a instanceof Map?((t=[])=>{const a=_.create(null);return f(t,([t,n])=>((t,a,n)=>(_.defineProperty(t,a,{configurable:!0,enumerable:!0,value:n,writable:!0}),n))(a,t,n)),a})([...a]):a))});var n;await v(async()=>q(a),()=>a.body?.cancel())},t=>{let a,e,o=!1;return[(w=()=>{!o&&s(a)&&(e=new AbortController,a=v(()=>d(async()=>{const a=await fetch(n,{method:"HEAD",headers:$(c),signal:e?.signal});q(a,1),o||304==a.status||U(a)==c||await t()},t=>o?0:(()=>{try{return i?.(t)}catch{return}})()),()=>{a=void 0,e=void 0}))},y=r,setInterval(w,1e3*y)),async()=>{o=!0,e?.abort(),await a}];var w,y},async([t,a])=>{const n=a();(t=>{clearInterval(t)})(t),await n},i,1,{getUrls:()=>[n,e]})};export{B as createRemotePersister};
@@ -1 +1 @@
1
- const t="",a=Promise,n=t=>(a,n,e)=>t(a)?e?.():n(a),e=t=>null==t,s=t=>void 0===t,r=t=>null===t,i=n(e),o=n(s),c=t=>Array.isArray(t),y=t=>t.length,w=t=>0==y(t),l=t=>new a(t),u=(a,n)=>{throw((a,n)=>Error("tinybase:"+a+(s(n)?t:":"+n)))(a,n)},d=async(t,a)=>{try{return await t()}catch(t){a?.(t)}},v=async(t,a)=>{try{return await t()}finally{await a()}},f=(t,a)=>t.forEach(a),h=(t,a=y(t))=>t.splice(0,a),g=(t,...a)=>t.push(...a),p=Object,_=t=>p.getPrototypeOf(t),A=p.keys,S=p.freeze,b=t=>(t=>!e(t)&&i(_(t),t=>t==p.prototype||e(_(t)),()=>!0))(t)&&0==(t=>y(A(t)))(t),L=JSON.stringify,P=JSON.parse,m=t=>s(t)||0==(t=>t?.size??0)(t),E=(t,a)=>t?.forEach(a),O=(t,a)=>t?.delete(a),C=Map,M=t=>new C(t),T=(t,a)=>t?.get(a),D=(t,a,n)=>s(n)?(O(t,a),t):t?.set(a,n),I=(t,a,n,e)=>{let s=T(t,a);var r,i;return r=t,i=a,r?.has(i)?e?.(s):D(t,a,s=n()),s},N=(t,a,n,e,s=0)=>o((n?I:T)(t,a[s],s>y(a)-2?n:M),r=>{if(s>y(a)-2)return e?.(r)&&D(t,a[s]),r;const i=N(r,a,n,e,s+1);return m(r)&&D(t,a[s]),i}),j=/^\d+$/,k=t=>new Set(c(t)||s(t)?t:[t]),x=M(),z=M(),J=M(),F=(a,n,e,i,p,_,A,L={},P=0,C=[])=>{let F,H,U,$,q,B=0,G=0,K=0,Q=0,R=0,V=0,W=0,X=0,Y=0;const Z={},tt=L.destroy;I(x,C,()=>0),I(z,C,()=>[]),D(J,C,(T(J,C)??0)+1);const at=M(),[nt,et,st,rt,it]=((t=1,a,n)=>1!=t&&a.isMergeable()?[1,a.__[1],()=>a.__[2](!n),([[t],[a]])=>!b(t)||!b(a),a.setDefaultContent]:2!=t?[0,a._[7],a._[8],([t,a])=>!b(t)||!b(a),a.setContent]:u(0))(A,a,P),[ot,ct,yt]=(a=>{let n;const[e,s]=(()=>{const a=[];let n=0;return[e=>(e?a.shift():null)??t+n++,t=>{j.test(t)&&y(a)<1e3&&g(a,t)}]})(),i=M(),c=(a,e,s,o)=>{let c,w=!1;if(f(((a,n=[t])=>{const e=[],s=(t,a)=>a==y(n)?g(e,t):r(n[a])?E(t,t=>s(t,a+1)):f([n[a],null],n=>s(T(t,n),a+1));return s(a,0),e})(e,s),t=>E(t,t=>{const e=()=>T(i,t)[0](n,...s??[],...o);a?(t=>{try{return t()}catch(t){(t=>{w||(c=t),w=!0})?.(t)}})(e):e()})),w)throw c};return[(s,r,o,c=[],y=()=>[])=>{n??=a();const w=e(1);var l,u;return D(i,w,[s,r,o,c,y]),l=N(r,o??[t],k),u=w,l?.add(u),w},(t,a,...n)=>c(!1,t,a,n),a=>o(T(i,a),([,n,e])=>(N(n,e??[t],void 0,t=>(O(t,a),m(t)?1:0)),D(i,a),s(a),e)),t=>o(T(i,t),([t,,a=[],e,s])=>{const i=(...o)=>{const c=y(o);c==y(a)?t(n,...o,...s(o)):r(a[c])?f(e[c]?.(...o)??[],t=>i(...o,t)):i(...o,a[c])};i()}),(t,a,...n)=>c(!0,t,a,n)]})(()=>mt),wt=t=>{t!=B&&(B=t,ct(at,void 0,B))},lt=()=>{T(J,C)||T(x,C)||!w(T(z,C)??[])||(D(x,C),D(z,C),D(J,C))},ut=t=>{(nt&&c(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},dt=async()=>{bt()&&a.__?.[0]?.()&&await _t()},vt=t=>v(()=>H=t,()=>{H==t&&(H=void 0)}),ft=async t=>(2!=B&&(await v(async()=>{wt(1),G++,await Pt(()=>d(async()=>{const a=await n();c(a)?ut(a):s(a)&&t?it(t):s(a)||u(1,a)},a=>{_?.(a),t&&it(t)}))},()=>wt(0)),await dt()),mt),ht=async()=>{const t=W;W=0,t&&t==Q&&!Y&&(2==B?W=t:await ft())},gt=async t=>{const a=++Q;let n=!0;if(await pt(!0),a==Q&&!Y){const e=d(async()=>{const t=await i(async(t,e)=>{if(a==Q&&!Y)if(e||t){const a=n||2==B||!!V;R++,a&&V++,await v(async()=>{wt(1),G++,await(a?Pt(()=>ut(e??t)):(()=>{try{return ut(e??t)}finally{wt(0)}})())},()=>{a&&V--,--R||wt(0)}),R||await dt()}else 2==B?W=a:await ft()});a!=Q||Y?s(t)||await p(t):F=t},_);await vt(e),a!=Q||Y||await v(()=>ft(t),()=>{n=!1})}return mt},pt=async(t=!1)=>{W=0,t||Q++;const a=H,n=F;return F=void 0,await vt(v(async()=>{await a},async()=>{s(n)||await d(()=>p(n),_)})),mt},_t=async t=>(1!=B&&await v(()=>v(async()=>{wt(2),K++,await Pt(()=>d(()=>e(et,t),_))},()=>wt(0)),ht),mt),At=async()=>{const t=++X;return await St(!0),t!=X||Y||(await _t(),t!=X||Y||(U=a.addDidFinishTransactionListener(()=>{if(t==X&&!Y){const t=st();rt(t)&&d(()=>_t(t))}}))),mt},St=async(t=!1)=>{t||X++;const n=U;return U=void 0,s(n)||a.delListener(n),mt},bt=()=>!s(U),Lt=async(t=!1)=>{const[a,n]=t?[St,pt]:[pt,St];return await v(()=>a(),async()=>{await n()}),mt},Pt=async(...t)=>{let a,n=!1;const e=l(e=>{return w(t)?e():g(T(z,C),...(s=t,r=(s,r)=>{const i=r==y(t)-1;return[async()=>{let t;q=l(a=>t=a),await v(async()=>{try{await d(s,_)}catch(t){n||(n=!0,a=t)}i&&e()},()=>{q=void 0,t()})},i?e:void 0,Z]},s.map(r)));var s,r});if(await(async()=>{if(!T(x,C)){D(x,C,1);const t=T(z,C);let a=0;await v(async()=>{for(;a<y(t);){const n=t[a++];n[2]=void 0,await n[0]()}},()=>{h(t,a),D(x,C,0),lt()})}})(),await e,n)throw a;return mt},mt={load:ft,startAutoLoad:gt,stopAutoLoad:pt,isAutoLoading:()=>!s(F),save:_t,startAutoSave:At,stopAutoSave:St,isAutoSaving:bt,startAutoPersisting:async(t,a=!1)=>{const[n,e]=a?[At,gt]:[gt,At];return await n(t),await e(t),mt},stopAutoPersisting:Lt,getStatus:()=>B,addStatusListener:t=>ot(t,at),delListener:t=>(yt(t),a),schedule:Pt,getStore:()=>a,getStats:()=>({loads:G,saves:K}),...L,destroy:async()=>(s($)&&(Y=1,$=(async()=>{const t=T(z,C),a=(n=([,t,a])=>a!=Z||(t?.(),!1),t.filter(n));var n;const e=q;h(t),g(t,...a),await v(()=>v(()=>v(Lt,()=>e),()=>tt?.()),()=>{const t=(T(J,C)??1)-1;D(J,C,t||void 0),lt()})})()),await $,mt)};return S(mt)},H=a=>a.headers.get("ETag")??t,U=a=>a==t?void 0:{"If-None-Match":a},$=(t,a)=>{if(!(t.ok||a&&304==t.status))throw t},q=(a,n,e,r=5,i)=>{let o,c=t;return F(a,async()=>{const t=await fetch(n,{headers:U(c)}),a=304==t.status&&!s(o);$(t,a?1:void 0);const e=a?o:await t.text(),r=P(e);return a||(o=e,c=H(t)),r},async t=>{const a=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:(n=t(),L(n,(t,a)=>a instanceof Map?((t=[])=>{const a=p.create(null);return f(t,([t,n])=>((t,a,n)=>(p.defineProperty(t,a,{configurable:!0,enumerable:!0,value:n,writable:!0}),n))(a,t,n)),a})([...a]):a))});var n;await v(async()=>$(a),()=>a.body?.cancel())},t=>{let a,e,o=!1;return[(y=()=>{!o&&s(a)&&(e=new AbortController,a=v(()=>d(async()=>{const a=await fetch(n,{method:"HEAD",headers:U(c),signal:e?.signal});$(a,1),o||304==a.status||H(a)==c||await t()},t=>o?0:(()=>{try{return i?.(t)}catch{return}})()),()=>{a=void 0,e=void 0}))},w=r,setInterval(y,1e3*w)),async()=>{o=!0,e?.abort(),await a}];var y,w},async([t,a])=>{const n=a();(t=>{clearInterval(t)})(t),await n},i,1,{getUrls:()=>[n,e]})};export{q as createRemotePersister};
1
+ const t="",a=Promise,n=t=>(a,n,e)=>t(a)?e?.():n(a),e=t=>null==t,s=t=>void 0===t,r=t=>null===t,i=n(e),o=n(s),c=t=>Array.isArray(t),w=t=>t.length,y=t=>0==w(t),l=t=>new a(t),u=(a,n)=>{throw((a,n)=>Error("tinybase:"+a+(s(n)?t:":"+n)))(a,n)},d=async(t,a)=>{try{return await t()}catch(t){a?.(t)}},h=(t,a)=>d(t,t=>{d(()=>a?.(t))}),v=async(t,a)=>{try{return await t()}finally{await a()}},f=(t,a)=>t.forEach(a),g=(t,a=w(t))=>t.splice(0,a),p=(t,...a)=>t.push(...a),_=Object,A=t=>_.getPrototypeOf(t),S=_.keys,b=_.freeze,L=t=>(t=>!e(t)&&i(A(t),t=>t==_.prototype||e(A(t)),()=>!0))(t)&&0==(t=>w(S(t)))(t),P=JSON.stringify,m=JSON.parse,E=t=>s(t)||0==(t=>t?.size??0)(t),O=(t,a)=>t?.forEach(a),C=(t,a)=>t?.delete(a),M=Map,T=t=>new M(t),D=(t,a)=>t?.get(a),I=(t,a,n)=>s(n)?(C(t,a),t):t?.set(a,n),N=(t,a,n,e)=>{let s=D(t,a);var r,i;return r=t,i=a,r?.has(i)?e?.(s):I(t,a,s=n()),s},j=(t,a,n,e,s=0)=>o((n?N:D)(t,a[s],s>w(a)-2?n:T),r=>{if(s>w(a)-2)return e?.(r)&&I(t,a[s]),r;const i=j(r,a,n,e,s+1);return E(r)&&I(t,a[s]),i}),k=/^\d+$/,x=t=>new Set(c(t)||s(t)?t:[t]),z=T(),J=T(),F=T(),H=(a,n,e,i,_,A,S,P={},m=0,M=[])=>{let H,U,$,q,B,G=0,K=0,Q=0,R=0,V=0,W=0,X=0,Y=0,Z=0;const tt={},at=P.destroy;N(z,M,()=>0),N(J,M,()=>[]),I(F,M,(D(F,M)??0)+1);const nt=T(),[et,st,rt,it,ot]=((t=1,a,n)=>1!=t&&a.isMergeable()?[1,a.__[1],()=>a.__[2](!n),([[t],[a]])=>!L(t)||!L(a),a.setDefaultContent]:2!=t?[0,a._[7],a._[8],([t,a])=>!L(t)||!L(a),a.setContent]:u(0))(S,a,m),[ct,wt,yt]=(a=>{let n;const[e,s]=(()=>{const a=[];let n=0;return[e=>(e?a.shift():null)??t+n++,t=>{k.test(t)&&w(a)<1e3&&p(a,t)}]})(),i=T(),c=(a,e,s,o)=>{let c,y=!1;if(f(((a,n=[t])=>{const e=[],s=(t,a)=>a==w(n)?p(e,t):r(n[a])?O(t,t=>s(t,a+1)):f([n[a],null],n=>s(D(t,n),a+1));return s(a,0),e})(e,s),t=>O(t,t=>{const e=()=>D(i,t)[0](n,...s??[],...o);a?(t=>{try{return t()}catch(t){(t=>{y||(c=t),y=!0})?.(t)}})(e):e()})),y)throw c};return[(s,r,o,c=[],w=()=>[])=>{n??=a();const y=e(1);var l,u;return I(i,y,[s,r,o,c,w]),l=j(r,o??[t],x),u=y,l?.add(u),y},(t,a,...n)=>c(!1,t,a,n),a=>o(D(i,a),([,n,e])=>(j(n,e??[t],void 0,t=>(C(t,a),E(t)?1:0)),I(i,a),s(a),e)),t=>o(D(i,t),([t,,a=[],e,s])=>{const i=(...o)=>{const c=w(o);c==w(a)?t(n,...o,...s(o)):r(a[c])?f(e[c]?.(...o)??[],t=>i(...o,t)):i(...o,a[c])};i()}),(t,a,...n)=>c(!0,t,a,n)]})(()=>Et),lt=t=>{t!=G&&(G=t,wt(nt,void 0,G))},ut=()=>{D(F,M)||D(z,M)||!y(D(J,M)??[])||(I(z,M),I(J,M),I(F,M))},dt=t=>{(et&&c(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ht=async()=>{Lt()&&a.__?.[0]?.()&&await At()},vt=t=>v(()=>U=t,()=>{U==t&&(U=void 0)}),ft=async t=>(2!=G&&(await v(async()=>{lt(1),K++,await mt(()=>d(async()=>{const a=await n();c(a)?dt(a):s(a)&&t?ot(t):s(a)||u(1,a)},a=>{A?.(a),t&&ot(t)}))},()=>lt(0)),await ht()),Et),gt=async()=>{const t=X;X=0,t&&t==R&&!Z&&(2==G?X=t:await ft())},pt=async t=>{const a=++R;let n=!0;if(await _t(!0),a==R&&!Z){const e=d(async()=>{const t=await i(async(t,e)=>{if(a==R&&!Z)if(e||t){const a=n||2==G||!!W;V++,a&&W++,await v(async()=>{lt(1),K++,await(a?mt(()=>dt(e??t)):(()=>{try{return dt(e??t)}finally{lt(0)}})())},()=>{a&&W--,--V||lt(0)}),V||await ht()}else 2==G?X=a:await ft()});a!=R||Z?s(t)||await _(t):H=t},A);await vt(e),a!=R||Z||await v(()=>ft(t),()=>{n=!1})}return Et},_t=async(t=!1)=>{X=0,t||R++;const a=U,n=H;return H=void 0,await vt(v(async()=>{await a},async()=>{s(n)||await d(()=>_(n),A)})),Et},At=async t=>(1!=G&&await v(()=>v(async()=>{lt(2),Q++,await mt(()=>d(()=>e(st,t),A))},()=>lt(0)),gt),Et),St=async()=>{const t=++Y;return await bt(!0),t!=Y||Z||(await At(),t!=Y||Z||($=a.addDidFinishTransactionListener(()=>{if(t==Y&&!Z){const t=rt();it(t)&&d(()=>At(t))}}))),Et},bt=async(t=!1)=>{t||Y++;const n=$;return $=void 0,s(n)||a.delListener(n),Et},Lt=()=>!s($),Pt=async(t=!1)=>{const[a,n]=t?[bt,_t]:[_t,bt];return await v(()=>a(),async()=>{await n()}),Et},mt=async(...t)=>{let a,n=!1;const e=l(e=>{return y(t)?e():p(D(J,M),...(s=t,r=(s,r)=>{const i=r==w(t)-1;return[async()=>{let t;B=l(a=>t=a),await v(async()=>{try{await d(s,A)}catch(t){n||(n=!0,a=t)}i&&e()},()=>{B=void 0,t()})},i?e:void 0,tt]},s.map(r)));var s,r});if(await(async()=>{if(!D(z,M)){I(z,M,1);const t=D(J,M);let a=0;await v(async()=>{for(;a<w(t);){const n=t[a++];n[2]=void 0,await n[0]()}},()=>{g(t,a),I(z,M,0),ut()})}})(),await e,n)throw a;return Et},Et={load:ft,startAutoLoad:pt,stopAutoLoad:_t,isAutoLoading:()=>!s(H),save:At,startAutoSave:St,stopAutoSave:bt,isAutoSaving:Lt,startAutoPersisting:async(t,a=!1)=>{const[n,e,s,r]=a?[St,pt,bt,_t]:[pt,St,_t,bt],i=n(t),o=a?Y:R;await i;const c=e(t),w=a?R:Y;try{await c}catch(t){throw w==(a?R:Y)&&await h(r),o==(a?Y:R)&&await h(s),t}return Et},stopAutoPersisting:Pt,getStatus:()=>G,addStatusListener:t=>ct(t,nt),delListener:t=>(yt(t),a),schedule:mt,getStore:()=>a,getStats:()=>({loads:K,saves:Q}),...P,destroy:async()=>(s(q)&&(Z=1,q=(async()=>{const t=D(J,M),a=(n=([,t,a])=>a!=tt||(t?.(),!1),t.filter(n));var n;const e=B;g(t),p(t,...a),await v(()=>v(()=>v(Pt,()=>e),()=>at?.()),()=>{const t=(D(F,M)??1)-1;I(F,M,t||void 0),ut()})})()),await q,Et)};return b(Et)},U=a=>a.headers.get("ETag")??t,$=a=>a==t?void 0:{"If-None-Match":a},q=(t,a)=>{if(!(t.ok||a&&304==t.status))throw t},B=(a,n,e,r=5,i)=>{let o,c=t;return H(a,async()=>{const t=await fetch(n,{headers:$(c)}),a=304==t.status&&!s(o);q(t,a?1:void 0);const e=a?o:await t.text(),r=m(e);return a||(o=e,c=U(t)),r},async t=>{const a=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:(n=t(),P(n,(t,a)=>a instanceof Map?((t=[])=>{const a=_.create(null);return f(t,([t,n])=>((t,a,n)=>(_.defineProperty(t,a,{configurable:!0,enumerable:!0,value:n,writable:!0}),n))(a,t,n)),a})([...a]):a))});var n;await v(async()=>q(a),()=>a.body?.cancel())},t=>{let a,e,o=!1;return[(w=()=>{!o&&s(a)&&(e=new AbortController,a=v(()=>d(async()=>{const a=await fetch(n,{method:"HEAD",headers:$(c),signal:e?.signal});q(a,1),o||304==a.status||U(a)==c||await t()},t=>o?0:(()=>{try{return i?.(t)}catch{return}})()),()=>{a=void 0,e=void 0}))},y=r,setInterval(w,1e3*y)),async()=>{o=!0,e?.abort(),await a}];var w,y},async([t,a])=>{const n=a();(t=>{clearInterval(t)})(t),await n},i,1,{getUrls:()=>[n,e]})};export{B as createRemotePersister};