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 t=Promise,a=t=>(a,e,n)=>t(a)?n?.():e(a),e=globalThis.window,n=t=>null==t,s=t=>void 0===t,r=t=>null===t,o=a(n),c=a(s),i=t=>Array.isArray(t),l=t=>t.length,y=t=>0==l(t),w=a=>new t(a),u=async a=>t.all(a),d=(t,a)=>t.forEach(a),v=(t,a)=>t.map(a),f=(t,a=l(t))=>t.splice(0,a),g=(t,...a)=>t.push(...a),h=(t,a)=>Error("tinybase:"+t+(s(a)?"":":"+a)),p=(t,a)=>{throw h(t,a)},_=async(t,a)=>{try{return await t()}catch(t){a?.(t)}},b=(t,a)=>{try{return t()}catch(t){a?.(t)}},A=async(t,a)=>{try{return await t()}finally{await a()}},S=Object,L=t=>S.getPrototypeOf(t),k=S.entries,P=S.keys,m=S.freeze,D=t=>(t=>!n(t)&&o(L(t),t=>t==S.prototype||n(L(t)),()=>!0))(t)&&0==(t=>l(P(t)))(t),O=JSON.stringify,j=t=>O(t,(t,a)=>s(a)?"":a),x=t=>s(t)||0==(t=>t?.size??0)(t),E=(t,a)=>t?.forEach(a),z=(t,a)=>t?.delete(a),B=Map,C=t=>new B(t),I=(t,a)=>t?.get(a),M=(t,a,e)=>s(e)?(z(t,a),t):t?.set(a,e),N=(t,a,e,n)=>{let s=I(t,a);var r,o;return r=t,o=a,r?.has(o)?n?.(s):M(t,a,s=e()),s},T=(t,a,e,n,s=0)=>c((e?N:I)(t,a[s],s>l(a)-2?e:C),r=>{if(s>l(a)-2)return n?.(r)&&M(t,a[s]),r;const o=T(r,a,e,n,s+1);return x(r)&&M(t,a[s]),o}),F=/^\d+$/,J=t=>new Set(i(t)||s(t)?t:[t]),K=C(),$=C(),q=C(),G=(t,a,e,n,o,u,h,S={},L=0,k=[])=>{let P,O,j,B,G,H=0,Q=0,R=0,U=0,V=0,W=0,X=0,Y=0,Z=0;const tt={},at=S.destroy;N(K,k,()=>0),N($,k,()=>[]),M(q,k,(I(q,k)??0)+1);const et=C(),[nt,st,rt,ot,ct]=((t=1,a,e)=>1!=t&&a.isMergeable()?[1,a.__[1],()=>a.__[2](!e),([[t],[a]])=>!D(t)||!D(a),a.setDefaultContent]:2!=t?[0,a._[7],a._[8],([t,a])=>!D(t)||!D(a),a.setContent]:p(0))(h,t,L),[it,lt,yt]=(()=>{let t;const[a,e]=(()=>{const t=[];let a=0;return[e=>(e?t.shift():null)??""+a++,a=>{F.test(a)&&l(t)<1e3&&g(t,a)}]})(),n=C(),s=(a,e,s,o)=>{let c,i=!1;if(d(((t,a=[""])=>{const e=[],n=(t,s)=>s==l(a)?g(e,t):r(a[s])?E(t,t=>n(t,s+1)):d([a[s],null],a=>n(I(t,a),s+1));return n(t,0),e})(e,s),e=>E(e,e=>{const r=()=>I(n,e)[0](t,...s??[],...o);a?b(r,t=>{i||(c=t),i=!0}):r()})),i)throw c};return[(e,s,r,o=[],c=()=>[])=>{t??=mt;const i=a(1);var l,y;return M(n,i,[e,s,r,o,c]),l=T(s,r??[""],J),y=i,l?.add(y),i},(t,a,...e)=>s(!1,t,a,e),t=>c(I(n,t),([,a,s])=>(T(a,s??[""],void 0,a=>(z(a,t),x(a)?1:0)),M(n,t),e(t),s)),a=>c(I(n,a),([a,,e=[],n,s])=>{const o=(...c)=>{const i=l(c);i==l(e)?a(t,...c,...s(c)):r(e[i])?d(n[i]?.(...c)??[],t=>o(...c,t)):o(...c,e[i])};o()}),(t,a,...e)=>s(!0,t,a,e)]})(),wt=t=>{t!=H&&(H=t,lt(et,void 0,H))},ut=()=>{I(q,k)||I(K,k)||!y(I($,k)??[])||(M(K,k),M($,k),M(q,k))},dt=a=>{(nt&&i(a?.[0])?1===a?.[2]?t.__[4]:t.__[3]:1===a?.[2]?t._[10]:t._[9])(a)},vt=async()=>{Lt()&&t.__?.[0]?.()&&await bt()},ft=t=>A(()=>O=t,()=>{O==t&&(O=void 0)}),gt=async t=>(2!=H&&(await A(async()=>{wt(1),Q++,await Pt(()=>_(async()=>{const e=await a();i(e)?dt(e):s(e)&&t?ct(t):s(e)||p(1,e)},a=>{u?.(a),t&&ct(t)}))},()=>wt(0)),await vt()),mt),ht=async()=>{const t=X;X=0,t&&t==U&&!Z&&(2==H?X=t:await gt())},pt=async t=>{const a=++U;let e=!0;if(await _t(!0),a==U&&!Z){const r=_(async()=>{const t=await n(async(t,n)=>{if(a==U&&!Z)if(n||t){const a=e||2==H||!!W;V++,a&&W++,await A(async()=>{wt(1),Q++,await(a?Pt(()=>dt(n??t)):(()=>{try{return dt(n??t)}finally{wt(0)}})())},()=>{a&&W--,--V||wt(0)}),V||await vt()}else 2==H?X=a:await gt()});a!=U||Z?s(t)||await o(t):P=t},u);await ft(r),a!=U||Z||await A(()=>gt(t),()=>{e=!1})}return mt},_t=async(t=!1)=>{X=0,t||U++;const a=O,e=P;return P=void 0,await ft(A(async()=>{await a},async()=>{s(e)||await _(()=>o(e),u)})),mt},bt=async t=>(1!=H&&await A(()=>A(async()=>{wt(2),R++,await Pt(()=>_(()=>e(st,t),u))},()=>wt(0)),ht),mt),At=async()=>{const a=++Y;return await St(!0),a!=Y||Z||(await bt(),a!=Y||Z||(j=t.addDidFinishTransactionListener(()=>{if(a==Y&&!Z){const t=rt();ot(t)&&_(()=>bt(t))}}))),mt},St=async(a=!1)=>{a||Y++;const e=j;return j=void 0,s(e)||t.delListener(e),mt},Lt=()=>!s(j),kt=async(t=!1)=>{const[a,e]=t?[St,_t]:[_t,St];return await A(()=>a(),async()=>{await e()}),mt},Pt=async(...t)=>{let a,e=!1;const n=w(n=>y(t)?n():g(I($,k),...v(t,(s,r)=>{const o=r==l(t)-1;return[async()=>{let t;G=w(a=>t=a),await A(async()=>{try{await _(s,u)}catch(t){e||(e=!0,a=t)}o&&n()},()=>{G=void 0,t()})},o?n:void 0,tt]})));if(await(async()=>{if(!I(K,k)){M(K,k,1);const t=I($,k);let a=0;await A(async()=>{for(;a<l(t);){const e=t[a++];e[2]=void 0,await e[0]()}},()=>{f(t,a),M(K,k,0),ut()})}})(),await n,e)throw a;return mt},mt={load:gt,startAutoLoad:pt,stopAutoLoad:_t,isAutoLoading:()=>!s(P),save:bt,startAutoSave:At,stopAutoSave:St,isAutoSaving:Lt,startAutoPersisting:async(t,a=!1)=>{const[e,n]=a?[At,pt]:[pt,At];return await e(t),await n(t),mt},stopAutoPersisting:kt,getStatus:()=>H,addStatusListener:t=>it(t,et),delListener:a=>(yt(a),t),schedule:Pt,getStore:()=>t,getStats:()=>({loads:Q,saves:R}),...S,destroy:async()=>(s(B)&&(Z=1,B=(async()=>{const t=I($,k),a=(e=([,t,a])=>a!=tt||(t?.(),!1),t.filter(e));var e;const n=G;f(t),g(t,...a),await A(()=>A(()=>A(kt,()=>n),()=>at?.()),()=>{const t=(I(q,k)??1)-1;M(q,k,t||void 0),ut()})})()),await B,mt)};return m(mt)},H=["t","v"],Q={keyPath:"k"},R=async(t,a,e)=>w((n,s)=>{const r=t[a](e);r.onsuccess=()=>n(r.result),r.onerror=()=>s(h(11,a))}),U=(t,a,n=1,s)=>{const r=async(t,n=[],s=0,r="readonly")=>w((o,c)=>{const i=(e?e.indexedDB:indexedDB).open(a,s?2:void 0);let l=0;i.onupgradeneeded=()=>s&&d(H,t=>b(()=>i.result.createObjectStore(t,Q))),i.onblocked=()=>{l=1,c(h(12))},i.onsuccess=()=>l?i.result.close():_(async()=>{i.result.onversionchange=()=>i.result.close();const a=i.result.transaction(H,r),e=w((t,e)=>{a.oncomplete=()=>t(),a.onerror=a.onabort=()=>e(h(11))}),[s]=await u([u(v(H,(e,s)=>t(a.objectStore(e),n[s]))),e]);i.result.close(),o(s)},t=>{i.result.close(),c(t)}),i.onerror=()=>c(h(12))}),o=async()=>await r(async t=>((t=[])=>{const a=S.create(null);return d(t,([t,e])=>((t,a,e)=>(S.defineProperty(t,a,{configurable:!0,enumerable:!0,value:e,writable:!0}),e))(a,t,e)),a})(v(await R(t,"getAll"),({k:t,v:a})=>[t,a])));return G(t,o,t=>r((t,a)=>(async(t,a)=>{const e=(a=>v(k(a),([a,e])=>R(t,"put",{k:a,v:e})))(a);d(await R(t,"getAllKeys"),n=>((t,a)=>S.hasOwn(t,a))(a,n)?0:g(e,R(t,"delete",n))),await u(e)})(t,a),t(),1,"readwrite"),t=>o().then(a=>{let e,r=1,c=j(a);const i=(l=()=>{if(r&&!e){const a=A(()=>((a,e)=>_(async()=>{const a=await o();if(r){const e=j(a);e!=c&&(c=e,await t(a))}},t=>{_(()=>e?.(t))}))(0,s),()=>{e==a&&(e=void 0)});e=a}},setInterval(l,1e3*n));var l;return async()=>{r=0,(t=>{clearInterval(t)})(i),await e}}),async t=>await t(),s,1,{getDbName:()=>a})};export{U as createIndexedDbPersister};
1
+ const t=Promise,a=t=>(a,e,n)=>t(a)?n?.():e(a),e=globalThis.window,n=t=>null==t,s=t=>void 0===t,r=t=>null===t,o=a(n),c=a(s),i=t=>Array.isArray(t),l=t=>t.length,w=t=>0==l(t),y=a=>new t(a),u=async a=>t.all(a),d=(t,a)=>t.forEach(a),v=(t,a)=>t.map(a),f=(t,a=l(t))=>t.splice(0,a),h=(t,...a)=>t.push(...a),g=(t,a)=>Error("tinybase:"+t+(s(a)?"":":"+a)),p=(t,a)=>{throw g(t,a)},_=async(t,a)=>{try{return await t()}catch(t){a?.(t)}},b=(t,a)=>_(t,t=>{_(()=>a?.(t))}),A=(t,a)=>{try{return t()}catch(t){a?.(t)}},S=async(t,a)=>{try{return await t()}finally{await a()}},L=Object,k=t=>L.getPrototypeOf(t),P=L.entries,m=L.keys,D=L.freeze,O=t=>(t=>!n(t)&&o(k(t),t=>t==L.prototype||n(k(t)),()=>!0))(t)&&0==(t=>l(m(t)))(t),j=JSON.stringify,x=t=>j(t,(t,a)=>s(a)?"":a),E=t=>s(t)||0==(t=>t?.size??0)(t),z=(t,a)=>t?.forEach(a),B=(t,a)=>t?.delete(a),C=Map,I=t=>new C(t),M=(t,a)=>t?.get(a),N=(t,a,e)=>s(e)?(B(t,a),t):t?.set(a,e),T=(t,a,e,n)=>{let s=M(t,a);var r,o;return r=t,o=a,r?.has(o)?n?.(s):N(t,a,s=e()),s},F=(t,a,e,n,s=0)=>c((e?T:M)(t,a[s],s>l(a)-2?e:I),r=>{if(s>l(a)-2)return n?.(r)&&N(t,a[s]),r;const o=F(r,a,e,n,s+1);return E(r)&&N(t,a[s]),o}),J=/^\d+$/,K=t=>new Set(i(t)||s(t)?t:[t]),$=I(),q=I(),G=I(),H=(t,a,e,n,o,u,g,L={},k=0,P=[])=>{let m,j,x,C,H,Q=0,R=0,U=0,V=0,W=0,X=0,Y=0,Z=0,tt=0;const at={},et=L.destroy;T($,P,()=>0),T(q,P,()=>[]),N(G,P,(M(G,P)??0)+1);const nt=I(),[st,rt,ot,ct,it]=((t=1,a,e)=>1!=t&&a.isMergeable()?[1,a.__[1],()=>a.__[2](!e),([[t],[a]])=>!O(t)||!O(a),a.setDefaultContent]:2!=t?[0,a._[7],a._[8],([t,a])=>!O(t)||!O(a),a.setContent]:p(0))(g,t,k),[lt,wt,yt]=(()=>{let t;const[a,e]=(()=>{const t=[];let a=0;return[e=>(e?t.shift():null)??""+a++,a=>{J.test(a)&&l(t)<1e3&&h(t,a)}]})(),n=I(),s=(a,e,s,o)=>{let c,i=!1;if(d(((t,a=[""])=>{const e=[],n=(t,s)=>s==l(a)?h(e,t):r(a[s])?z(t,t=>n(t,s+1)):d([a[s],null],a=>n(M(t,a),s+1));return n(t,0),e})(e,s),e=>z(e,e=>{const r=()=>M(n,e)[0](t,...s??[],...o);a?A(r,t=>{i||(c=t),i=!0}):r()})),i)throw c};return[(e,s,r,o=[],c=()=>[])=>{t??=Dt;const i=a(1);var l,w;return N(n,i,[e,s,r,o,c]),l=F(s,r??[""],K),w=i,l?.add(w),i},(t,a,...e)=>s(!1,t,a,e),t=>c(M(n,t),([,a,s])=>(F(a,s??[""],void 0,a=>(B(a,t),E(a)?1:0)),N(n,t),e(t),s)),a=>c(M(n,a),([a,,e=[],n,s])=>{const o=(...c)=>{const i=l(c);i==l(e)?a(t,...c,...s(c)):r(e[i])?d(n[i]?.(...c)??[],t=>o(...c,t)):o(...c,e[i])};o()}),(t,a,...e)=>s(!0,t,a,e)]})(),ut=t=>{t!=Q&&(Q=t,wt(nt,void 0,Q))},dt=()=>{M(G,P)||M($,P)||!w(M(q,P)??[])||(N($,P),N(q,P),N(G,P))},vt=a=>{(st&&i(a?.[0])?1===a?.[2]?t.__[4]:t.__[3]:1===a?.[2]?t._[10]:t._[9])(a)},ft=async()=>{kt()&&t.__?.[0]?.()&&await At()},ht=t=>S(()=>j=t,()=>{j==t&&(j=void 0)}),gt=async t=>(2!=Q&&(await S(async()=>{ut(1),R++,await mt(()=>_(async()=>{const e=await a();i(e)?vt(e):s(e)&&t?it(t):s(e)||p(1,e)},a=>{u?.(a),t&&it(t)}))},()=>ut(0)),await ft()),Dt),pt=async()=>{const t=Y;Y=0,t&&t==V&&!tt&&(2==Q?Y=t:await gt())},_t=async t=>{const a=++V;let e=!0;if(await bt(!0),a==V&&!tt){const r=_(async()=>{const t=await n(async(t,n)=>{if(a==V&&!tt)if(n||t){const a=e||2==Q||!!X;W++,a&&X++,await S(async()=>{ut(1),R++,await(a?mt(()=>vt(n??t)):(()=>{try{return vt(n??t)}finally{ut(0)}})())},()=>{a&&X--,--W||ut(0)}),W||await ft()}else 2==Q?Y=a:await gt()});a!=V||tt?s(t)||await o(t):m=t},u);await ht(r),a!=V||tt||await S(()=>gt(t),()=>{e=!1})}return Dt},bt=async(t=!1)=>{Y=0,t||V++;const a=j,e=m;return m=void 0,await ht(S(async()=>{await a},async()=>{s(e)||await _(()=>o(e),u)})),Dt},At=async t=>(1!=Q&&await S(()=>S(async()=>{ut(2),U++,await mt(()=>_(()=>e(rt,t),u))},()=>ut(0)),pt),Dt),St=async()=>{const a=++Z;return await Lt(!0),a!=Z||tt||(await At(),a!=Z||tt||(x=t.addDidFinishTransactionListener(()=>{if(a==Z&&!tt){const t=ot();ct(t)&&_(()=>At(t))}}))),Dt},Lt=async(a=!1)=>{a||Z++;const e=x;return x=void 0,s(e)||t.delListener(e),Dt},kt=()=>!s(x),Pt=async(t=!1)=>{const[a,e]=t?[Lt,bt]:[bt,Lt];return await S(()=>a(),async()=>{await e()}),Dt},mt=async(...t)=>{let a,e=!1;const n=y(n=>w(t)?n():h(M(q,P),...v(t,(s,r)=>{const o=r==l(t)-1;return[async()=>{let t;H=y(a=>t=a),await S(async()=>{try{await _(s,u)}catch(t){e||(e=!0,a=t)}o&&n()},()=>{H=void 0,t()})},o?n:void 0,at]})));if(await(async()=>{if(!M($,P)){N($,P,1);const t=M(q,P);let a=0;await S(async()=>{for(;a<l(t);){const e=t[a++];e[2]=void 0,await e[0]()}},()=>{f(t,a),N($,P,0),dt()})}})(),await n,e)throw a;return Dt},Dt={load:gt,startAutoLoad:_t,stopAutoLoad:bt,isAutoLoading:()=>!s(m),save:At,startAutoSave:St,stopAutoSave:Lt,isAutoSaving:kt,startAutoPersisting:async(t,a=!1)=>{const[e,n,s,r]=a?[St,_t,Lt,bt]:[_t,St,bt,Lt],o=e(t),c=a?Z:V;await o;const i=n(t),l=a?V:Z;try{await i}catch(t){throw l==(a?V:Z)&&await b(r),c==(a?Z:V)&&await b(s),t}return Dt},stopAutoPersisting:Pt,getStatus:()=>Q,addStatusListener:t=>lt(t,nt),delListener:a=>(yt(a),t),schedule:mt,getStore:()=>t,getStats:()=>({loads:R,saves:U}),...L,destroy:async()=>(s(C)&&(tt=1,C=(async()=>{const t=M(q,P),a=(e=([,t,a])=>a!=at||(t?.(),!1),t.filter(e));var e;const n=H;f(t),h(t,...a),await S(()=>S(()=>S(Pt,()=>n),()=>et?.()),()=>{const t=(M(G,P)??1)-1;N(G,P,t||void 0),dt()})})()),await C,Dt)};return D(Dt)},Q=["t","v"],R={keyPath:"k"},U=async(t,a,e)=>y((n,s)=>{const r=t[a](e);r.onsuccess=()=>n(r.result),r.onerror=()=>s(g(11,a))}),V=(t,a,n=1,s)=>{const r=async(t,n=[],s=0,r="readonly")=>y((o,c)=>{const i=(e?e.indexedDB:indexedDB).open(a,s?2:void 0);let l=0;i.onupgradeneeded=()=>s&&d(Q,t=>A(()=>i.result.createObjectStore(t,R))),i.onblocked=()=>{l=1,c(g(12))},i.onsuccess=()=>l?i.result.close():_(async()=>{i.result.onversionchange=()=>i.result.close();const a=i.result.transaction(Q,r),e=y((t,e)=>{a.oncomplete=()=>t(),a.onerror=a.onabort=()=>e(g(11))}),[s]=await u([u(v(Q,(e,s)=>t(a.objectStore(e),n[s]))),e]);i.result.close(),o(s)},t=>{i.result.close(),c(t)}),i.onerror=()=>c(g(12))}),o=async()=>await r(async t=>((t=[])=>{const a=L.create(null);return d(t,([t,e])=>((t,a,e)=>(L.defineProperty(t,a,{configurable:!0,enumerable:!0,value:e,writable:!0}),e))(a,t,e)),a})(v(await U(t,"getAll"),({k:t,v:a})=>[t,a])));return H(t,o,t=>r((t,a)=>(async(t,a)=>{const e=(a=>v(P(a),([a,e])=>U(t,"put",{k:a,v:e})))(a);d(await U(t,"getAllKeys"),n=>((t,a)=>L.hasOwn(t,a))(a,n)?0:h(e,U(t,"delete",n))),await u(e)})(t,a),t(),1,"readwrite"),t=>o().then(a=>{let e,r=1,c=x(a);const i=setInterval(()=>{if(r&&!e){const a=S(()=>b(async()=>{const a=await o();if(r){const e=x(a);e!=c&&(c=e,await t(a))}},s),()=>{e==a&&(e=void 0)});e=a}},1e3*n);return async()=>{r=0,(t=>{clearInterval(t)})(i),await e}}),async t=>await t(),s,1,{getDbName:()=>a})};export{V as createIndexedDbPersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",n="",e=",",i=a(n),s="true",r=(a,t,n)=>a.replace(t,n),c=Promise,o=a=>(t,n,e)=>a(t)?e?.():n(t),l=globalThis,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=o(w),f=o(u),E=t=>a(t)==i,m=a=>Array.isArray(a),N=a=>a.length,$=a=>0==N(a),A=()=>{},_=a=>new c(a),O=async a=>c.all(a),g=(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)}},p=async(a,t)=>{try{return await a()}finally{await t()}},T=(a,t)=>a?.has(t)??!1,I=a=>u(a)||0==(a=>a?.size??0)(a),D=a=>[...a?.values()??[]],S=a=>a.clear(),L=(a,t)=>a?.forEach(t),R=(a,t)=>a?.delete(t),b=(a,t)=>a.forEach(t),C=(a,t="")=>a.join(t),M=(a,t)=>a.map(t),P=(a,t)=>a.filter(t),x=(a,t=N(a))=>a.splice(0,t),F=(a,...t)=>a.push(...t),B="_",q="_id",k="SELECT",U="WHERE",j="TABLE",G="ALTER "+j,J="FROM",K="DELETE "+J,X=k+"*"+J,Y="pragma_",z="data_version",H="schema_version",Q="pragma_table_",V="CREATE "+j,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)=>U+`(${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 b(a,([a,n])=>wa(t,a,n)),t},ya=(a,t)=>(delete a[t],a),da=(a,t)=>b(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=>N(ca(a)),ma=a=>ra(a)&&0==Ea(a),Na=Map,$a=a=>new Na(a),Aa=(a,t)=>a?.get(t),_a=(a,t)=>L(a,(a,n)=>t(n,a)),Oa=(a,t)=>{const n=[];return _a(a,(a,e)=>F(n,t(e,a))),n},ga=(a,t,n)=>u(n)?(R(a,t),a):a?.set(t,n),ha=(a,t,n,e)=>{let i=Aa(a,t);return T(a,t)?e?.(i):ga(a,t,i=n()),i},pa=(a,t,n,e,i=0)=>f((n?ha:Aa)(a,t[i],i>N(t)-2?n:$a),s=>{if(i>N(t)-2)return e?.(s)&&ga(a,t[i]),s;const r=pa(s,t,n,e,i+1);return I(s)&&ga(a,t[i]),r}),Ta=a=>new Set(m(a)||u(a)?a:[a]),Ia=(a,t)=>a?.add(t),Da="ColumnName",Sa="store",La="json",Ra=Sa+"TableName",ba=Sa+"Id"+Da,Ca=Sa+Da,Ma="autoLoadIntervalSeconds",Pa="rowId"+Da,xa="tableId",Fa="tableName",Ba="deleteEmptyColumns",qa="deleteEmptyTable",ka="condition",Ua={mode:La,[Ma]:1},ja={load:0,save:0,[Fa]:t+"_values"},Ga=a=>m(a)?a:void 0,Ja=a=>d(a)||m(a),Ka=(a,t,n,e,i)=>{const s=$a();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]),ga(s,r,c))}),s},Xa=JSON.stringify,Ya=JSON.parse,za=a=>""===a?void 0:m(a)?M(a,za):ra(a)?fa(a,za):a,Ha=/^\d+$/,Qa=$a(),Va=$a(),Wa=$a(),Za=(a,t,e,i,s,r,c,o={},l=0,w=[])=>{let d,v,E,A,O,T=0,D=0,S=0,C=0,B=0,q=0,k=0,U=0,j=0;const G={},J=o.destroy;ha(Qa,w,()=>0),ha(Va,w,()=>[]),ga(Wa,w,(Aa(Wa,w)??0)+1);const K=$a(),[X,Y,z,H,Q]=((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]:g(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=>{Ha.test(t)&&N(a)<1e3&&F(a,t)}]})(),s=$a(),r=(a,e,i,r)=>{let c,o=!1;if(b(((a,t=[n])=>{const e=[],i=(a,n)=>n==N(t)?F(e,a):y(t[n])?L(a,a=>i(a,n+1)):b([t[n],null],t=>i(Aa(a,t),n+1));return i(a,0),e})(e,i),n=>L(n,n=>{const e=()=>Aa(s,n)[0](t,...i??[],...r);a?(a=>{try{return a()}catch(a){(a=>{o||(c=a),o=!0})?.(a)}})(e):e()})),o)throw c};return[(i,r,c,o=[],l=()=>[])=>{t??=a();const w=e(1);return ga(s,w,[i,r,c,o,l]),Ia(pa(r,c??[n],Ta),w),w},(a,t,...n)=>r(!1,a,t,n),a=>f(Aa(s,a),([,t,e])=>(pa(t,e??[n],void 0,t=>(R(t,a),I(t)?1:0)),ga(s,a),i(a),e)),a=>f(Aa(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const c=N(r);c==N(n)?a(t,...r,...i(r)):y(n[c])?b(e[c]?.(...r)??[],a=>s(...r,a)):s(...r,n[c])};s()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>Ea),aa=a=>{a!=T&&(T=a,W(K,void 0,T))},ta=()=>{Aa(Wa,w)||Aa(Qa,w)||!$(Aa(Va,w)??[])||(ga(Qa,w),ga(Va,w),ga(Wa,w))},na=t=>{(X&&m(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=>p(()=>v=a,()=>{v==a&&(v=void 0)}),sa=async a=>(2!=T&&(await p(async()=>{aa(1),D++,await fa(()=>h(async()=>{const n=await t();m(n)?na(n):u(n)&&a?Q(a):u(n)||g(1,n)},t=>{r?.(t),a&&Q(a)}))},()=>aa(0)),await ea()),Ea),ra=async()=>{const a=k;k=0,a&&a==C&&!j&&(2==T?k=a:await sa())},ca=async a=>{const t=++C;let n=!0;if(await la(!0),t==C&&!j){const e=h(async()=>{const a=await i(async(a,e)=>{if(t==C&&!j)if(e||a){const t=n||2==T||!!q;B++,t&&q++,await p(async()=>{aa(1),D++,await(t?fa(()=>na(e??a)):(()=>{try{return na(e??a)}finally{aa(0)}})())},()=>{t&&q--,--B||aa(0)}),B||await ea()}else 2==T?k=t:await sa()});t!=C||j?u(a)||await s(a):d=a},r);await ia(e),t!=C||j||await p(()=>sa(a),()=>{n=!1})}return Ea},la=async(a=!1)=>{k=0,a||C++;const t=v,n=d;return d=void 0,await ia(p(async()=>{await t},async()=>{u(n)||await h(()=>s(n),r)})),Ea},wa=async a=>(1!=T&&await p(()=>p(async()=>{aa(2),S++,await fa(()=>h(()=>e(Y,a),r))},()=>aa(0)),ra),Ea),ua=async()=>{const t=++U;return await ya(!0),t!=U||j||(await wa(),t!=U||j||(E=a.addDidFinishTransactionListener(()=>{if(t==U&&!j){const a=z();H(a)&&h(()=>wa(a))}}))),Ea},ya=async(t=!1)=>{t||U++;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 p(()=>t(),async()=>{await n()}),Ea},fa=async(...a)=>{let t,n=!1;const e=_(e=>$(a)?e():F(Aa(Va,w),...M(a,(i,s)=>{const c=s==N(a)-1;return[async()=>{let a;O=_(t=>a=t),await p(async()=>{try{await h(i,r)}catch(a){n||(n=!0,t=a)}c&&e()},()=>{O=void 0,a()})},c?e:void 0,G]})));if(await(async()=>{if(!Aa(Qa,w)){ga(Qa,w,1);const a=Aa(Va,w);let t=0;await p(async()=>{for(;t<N(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{x(a,t),ga(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:()=>T,addStatusListener:a=>V(a,K),delListener:t=>(Z(t),a),schedule:fa,getStore:()=>a,getStats:()=>({loads:D,saves:S}),...o,destroy:async()=>(u(A)&&(j=1,A=(async()=>{const a=Aa(Va,w),t=P(a,([,a,t])=>t!=G||(a?.(),!1)),n=O;x(a),F(a,...t),await p(()=>p(()=>p(va,()=>n),()=>J?.()),()=>{const a=(Aa(Wa,w)??1)-1;ga(Wa,w,a||void 0),ta()})})()),await A,Ea)};return oa(Ea)},at=new l.TextEncoder,tt=(a,n,i,r,c=nt,o,l,w)=>{const y=$a(),d=$a();let v=a;return[async()=>{S(y),S(d),b(await i(v,n),({tn:a,cn:t,uq:n})=>{Ia(ha(y,a,Ta),t),n&&Ia(ha(d,a,Ta),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:Ta(e);return((a,t)=>T(Aa(y,a),t))(a,t)?ua(P(M(await v(X+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)||T(i,a))(a)))]}),a=>!u(a[0])&&!ma(a[1]))):{}},async(a,n,i,l,w,f=!1,E=s,m)=>{const N=u(m)?void 0:Ta(m),A=a=>u(N)||T(N,a),_=Ta();da(i??{},a=>b(P(ca(a??{}),A),a=>Ia(_,a)));const g=D(_);if(u(N)&&!f&&w&&E==s&&$(g)&&T(y,a))return await v("DROP "+j+Z(a)),ga(y,a),void ga(d,a);const h=Aa(y,a),p=Ta(P(D(h),a=>a==n||A(a)));if(!$(g))if(T(y,a)){if(await O(M([n,...g],async t=>{R(p,t)||(await v(G+Z(a)+"ADD"+Z(t)+r),Ia(h,t))})),c==nt&&!T(Aa(d,a),n)){const e=t+"_pk_"+(a=>{let t=2166136261;return b(at.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(Xa([a,n]));await v("CREATE UNIQUE INDEX IF NOT EXISTS"+Z(e)+"ON"+Z(a)+`(${Z(n)})`),Ia(ha(d,a,Ta),n)}}else await v(V+Z(a)+`(${Z(n)}${r} PRIMARY KEY${C(M(g,a=>e+Z(a)+r))});`),ga(y,a,Ta([n,...g])),ga(d,a,Ta([n]));if(await O([...!f&&l?M(D(p),async t=>{t!=n&&(await v(G+Z(a)+"DROP"+Z(t)),R(h,t))}):[]]),f)u(i)?u(N)&&await v(K+Z(a)+ta(a,E)):await O(va(i,async(t,e)=>{if(u(t))await v(K+Z(a)+ta(a,E)+`AND(${Z(n)}=$1)`,[e]);else if(!$(g)){const i=P(ca(t),A);$(i)||await c(v,a,n,i,{[e]:M(i,a=>o?o(t[a]):t[a])},h)}}));else if($(g))u(N)&&T(y,a)&&await v(K+Z(a)+ta(a,E));else{const t=P(D(Aa(y,a)),a=>a!=n&&A(a)),e=ua(),s=[];da(i??{},(a,n)=>{wa(e,n,M(t,t=>o?o(a?.[t]):a?.[t])),F(s,n)}),await c(v,a,n,t,e,h),await v(K+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 p(t,()=>{v=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await h(()=>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,g]=tt(t,w,y,f,E,void 0,void 0,$);return Za(a,()=>g(async()=>{return await A(),a=(await _(c,o))[B]?.[l]??"null",za(Ya(a));var a}),a=>g(async()=>{var t;await A(),await O(c,o,{[B]:{[l]:(t=a()??null,Xa(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,_,g,h)=>{const[p,T,I,D]=tt(t,f,E,$,A,_,g,h),S=(a,t)=>O(Oa(o,async([n,e,i,s,r],c)=>{var o,l;t&&(o=a,l=c,!ea.hasOwn(o,l))||await I(n,e,a[c],i,s,t,r)})),L=(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))),R=async(a,t)=>w?await I(y,q,{[B]:u(v)?a:L(a,v,t)},!0,!0,t,void 0,v):null;return Za(a,()=>D(async()=>{await p();const a=await(async()=>ua(P(await O(Oa(c,async([a,t,n],e)=>[a,await T(e,t,n)])),a=>!ma(a[1]))))(),t=await(async()=>l?(await T(y,q,void 0,d))[B]:{})();return ma(a)&&u(t)?void 0:[a,t]}),(a,t)=>D(async()=>{if(await p(),u(t)){const[t,n]=a();await S(t),await R(n)}else await S(t[0],!0),await R(t[1],!0)}),n,e,i,r,{[N]:()=>m,destroy:s},0,m)},st=(a,e,i,r,o,l,y,v,f,m,N="getDb",$,A)=>{let _,O,I;const S=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,l),[L,R,b,C]=(a=>{const n=(a=>la(Ua,E(a)?{[Ra]:a}:a??{}))(a),e=n[Ma];if(n.mode==La){const a=n[Ra]??t;return[1,e,[a,n[ba]??q,n[Ca]??Sa],Ta(a)]}const{tables:{load:i={},save:r={}}={},values:c={}}=n,o=la(ja,c),{load:l,save:w}=o,u=[Ja(l),Ja(w),o[Fa],Ga(l),Ga(w)],y=u[2],d=Ta(y),v=Ta(y),f=Ka(i,{[xa]:null,[Pa]:q,[ka]:s},xa,a=>T(v,a),a=>Ia(d,a)),m=Ka(r,{[Fa]:null,[Pa]:q,[Ba]:0,[qa]:0,[ka]:null},Fa,(a,t)=>T(v,t),(a,t)=>Ia(d,t));return _a(m,(a,t)=>t[4]??=Aa(f,t[0])?.[2]??s),[0,e,[f,m,u],d]})(e);return!L&&a.isMergeable()&&g(0),(L?et:it)(a,S,a=>{let t,n,e=1,i=0,s=0;const l=async(t=!0)=>{const[{d:n,s:i,c:r}]=await S(k+` ${z} d,${H} s,TOTAL_CHANGES() c FROM ${Y}${z} JOIN ${Y}${H}`);if(e&&(n!=_||i!=O||r!=I)){const c=t&&!s&&!w(_);_=n,O=i,I=r,c&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const c=p(()=>((t,n)=>h(async()=>{for(i?r&&await l():(await l(!1),i=1);e&&s;)s=0,await l(!1),e&&(await a(),await l())},a=>{h(()=>n?.(a))}))(0,y),()=>{n==c&&(n=void 0),e&&(s?v():e&&u(t)&&(t=setInterval(()=>v(!0),1e3*R)))});return n=c,c},f=r(a=>{e&&T(C,a)&&(s=1,d(),c.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,s=0,d(),await p(async()=>await n,async()=>{_=O=I=null,await o(f)})})},a=>a(),y,v,f,b,D(C),async(a,t)=>await a(k+` t.name tn,c.name cn,c.pk OR EXISTS(${k} 1 FROM ${Y}index_list(t.name)i,${Y}index_info(i.name)ii ${U} i."unique"=1 AND ii.name=c.name AND(${k} count(*) FROM ${Y}index_info(i.name))=1)uq FROM ${Q}list()t,${Q}info(t.name)c ${U} t.schema='main'AND t.type IN('table','view')AND t.name IN(${aa(t)})ORDER BY t.name,c.name`,t),m,N,n,$,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,A)},rt=(a,t,n,e,i)=>st(a,n,async(a,n=[])=>(await t.execute({sql:a,args:n})).rows,()=>A,a=>a(),e,i,A,1,t,"getClient",void 0,"file"==t.protocol?void 0:async a=>{e?.("BEGIN");const n=await t.transaction("write");return await p(async()=>{try{const t=await a(async(a,t=[])=>(e?.(a,t),(await n.execute({sql:a,args:t})).rows));return await n.commit(),e?.("END"),t}catch(a){throw await h(()=>n.rollback()),e?.("ROLLBACK"),a}},()=>n.close())});export{rt as createLibSqlPersister};
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,m=a=>Array.isArray(a),N=a=>a.length,$=a=>0==N(a),A=()=>{},_=a=>new c(a),h=async a=>c.all(a),O=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},g=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},p=(a,t)=>g(a,a=>{g(()=>t?.(a))}),T=async(a,t)=>{try{return await a()}finally{await t()}},I=(a,t)=>a?.has(t)??!1,D=a=>u(a)||0==(a=>a?.size??0)(a),S=a=>[...a?.values()??[]],L=a=>a.clear(),R=(a,t)=>a?.forEach(t),b=(a,t)=>a?.delete(t),C=(a,t)=>a.forEach(t),M=(a,t="")=>a.join(t),P=(a,t)=>a.map(t),x=(a,t)=>a.filter(t),F=(a,t=N(a))=>a.splice(0,t),B=(a,...t)=>a.push(...t),q="_",k="_id",U="SELECT",j="WHERE",G="TABLE",J="ALTER "+G,K="FROM",X="DELETE "+K,Y=U+"*"+K,z="pragma_",H="data_version",Q="schema_version",V="pragma_table_",W="CREATE "+G,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)=>j+`(${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},ma=a=>N(oa(a)),Na=a=>ca(a)&&0==ma(a),$a=Map,Aa=a=>new $a(a),_a=(a,t)=>a?.get(t),ha=(a,t)=>R(a,(a,n)=>t(n,a)),Oa=(a,t)=>{const n=[];return ha(a,(a,e)=>B(n,t(e,a))),n},ga=(a,t,n)=>u(n)?(b(a,t),a):a?.set(t,n),pa=(a,t,n,e)=>{let i=_a(a,t);return I(a,t)?e?.(i):ga(a,t,i=n()),i},Ta=(a,t,n,e,i=0)=>f((n?pa:_a)(a,t[i],i>N(t)-2?n:Aa),s=>{if(i>N(t)-2)return e?.(s)&&ga(a,t[i]),s;const r=Ta(s,t,n,e,i+1);return D(s)&&ga(a,t[i]),r}),Ia=a=>new Set(m(a)||u(a)?a:[a]),Da=(a,t)=>a?.add(t),Sa="ColumnName",La="store",Ra="json",ba=La+"TableName",Ca=La+"Id"+Sa,Ma=La+Sa,Pa="autoLoadIntervalSeconds",xa="rowId"+Sa,Fa="tableId",Ba="tableName",qa="deleteEmptyColumns",ka="deleteEmptyTable",Ua="condition",ja={mode:Ra,[Pa]:1},Ga={load:0,save:0,[Ba]:t+"_values"},Ja=a=>m(a)?a:void 0,Ka=a=>d(a)||m(a),Xa=(a,t,n,e,i)=>{const s=Aa();return va(a,(a,r)=>{const c=(l=la(t,E(a)?{[n]:a}:a),o=ia.values(l),w=ma(t),o.slice(0,w));var o,w,l;y(c[0])||e(r,c[0])||(i(r,c[0]),ga(s,r,c))}),s},Ya=JSON.stringify,za=JSON.parse,Ha=a=>""===a?void 0:m(a)?P(a,Ha):ca(a)?Ea(a,Ha):a,Qa=/^\d+$/,Va=Aa(),Wa=Aa(),Za=Aa(),at=(a,t,e,i,s,r,c,o={},w=0,l=[])=>{let d,v,E,A,h,I=0,S=0,L=0,M=0,q=0,k=0,U=0,j=0,G=0;const J={},K=o.destroy;pa(Va,l,()=>0),pa(Wa,l,()=>[]),ga(Za,l,(_a(Za,l)??0)+1);const X=Aa(),[Y,z,H,Q,V]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!Na(a)||!Na(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!Na(a)||!Na(t),t.setContent]:O(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)&&N(a)<1e3&&B(a,t)}]})(),s=Aa(),r=(a,e,i,r)=>{let c,o=!1;if(C(((a,t=[n])=>{const e=[],i=(a,n)=>n==N(t)?B(e,a):y(t[n])?R(a,a=>i(a,n+1)):C([t[n],null],t=>i(_a(a,t),n+1));return i(a,0),e})(e,i),n=>R(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=[],w=()=>[])=>{t??=a();const l=e(1);return ga(s,l,[i,r,c,o,w]),Da(Ta(r,c??[n],Ia),l),l},(a,t,...n)=>r(!1,a,t,n),a=>f(_a(s,a),([,t,e])=>(Ta(t,e??[n],void 0,t=>(b(t,a),D(t)?1:0)),ga(s,a),i(a),e)),a=>f(_a(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const c=N(r);c==N(n)?a(t,...r,...i(r)):y(n[c])?C(e[c]?.(...r)??[],a=>s(...r,a)):s(...r,n[c])};s()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>ma),ta=a=>{a!=I&&(I=a,Z(X,void 0,I))},na=()=>{_a(Za,l)||_a(Va,l)||!$(_a(Wa,l)??[])||(ga(Va,l),ga(Wa,l),ga(Za,l))},ea=t=>{(Y&&m(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ia=async()=>{va()&&a.__?.[0]?.()&&await ua()},sa=a=>T(()=>v=a,()=>{v==a&&(v=void 0)}),ra=async a=>(2!=I&&(await T(async()=>{ta(1),S++,await Ea(()=>g(async()=>{const n=await t();m(n)?ea(n):u(n)&&a?V(a):u(n)||O(1,n)},t=>{r?.(t),a&&V(a)}))},()=>ta(0)),await ia()),ma),ca=async()=>{const a=U;U=0,a&&a==M&&!G&&(2==I?U=a:await ra())},oa=async a=>{const t=++M;let n=!0;if(await la(!0),t==M&&!G){const e=g(async()=>{const a=await i(async(a,e)=>{if(t==M&&!G)if(e||a){const t=n||2==I||!!k;q++,t&&k++,await T(async()=>{ta(1),S++,await(t?Ea(()=>ea(e??a)):(()=>{try{return ea(e??a)}finally{ta(0)}})())},()=>{t&&k--,--q||ta(0)}),q||await ia()}else 2==I?U=t:await ra()});t!=M||G?u(a)||await s(a):d=a},r);await sa(e),t!=M||G||await T(()=>ra(a),()=>{n=!1})}return ma},la=async(a=!1)=>{U=0,a||M++;const t=v,n=d;return d=void 0,await sa(T(async()=>{await t},async()=>{u(n)||await g(()=>s(n),r)})),ma},ua=async a=>(1!=I&&await T(()=>T(async()=>{ta(2),L++,await Ea(()=>g(()=>e(z,a),r))},()=>ta(0)),ca),ma),ya=async()=>{const t=++j;return await da(!0),t!=j||G||(await ua(),t!=j||G||(E=a.addDidFinishTransactionListener(()=>{if(t==j&&!G){const a=H();Q(a)&&g(()=>ua(a))}}))),ma},da=async(t=!1)=>{t||j++;const n=E;return E=void 0,u(n)||a.delListener(n),ma},va=()=>!u(E),fa=async(a=!1)=>{const[t,n]=a?[da,la]:[la,da];return await T(()=>t(),async()=>{await n()}),ma},Ea=async(...a)=>{let t,n=!1;const e=_(e=>$(a)?e():B(_a(Wa,l),...P(a,(i,s)=>{const c=s==N(a)-1;return[async()=>{let a;h=_(t=>a=t),await T(async()=>{try{await g(i,r)}catch(a){n||(n=!0,t=a)}c&&e()},()=>{h=void 0,a()})},c?e:void 0,J]})));if(await(async()=>{if(!_a(Va,l)){ga(Va,l,1);const a=_a(Wa,l);let t=0;await T(async()=>{for(;t<N(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{F(a,t),ga(Va,l,0),na()})}})(),await e,n)throw t;return ma},ma={load:ra,startAutoLoad:oa,stopAutoLoad:la,isAutoLoading:()=>!u(d),save:ua,startAutoSave:ya,stopAutoSave:da,isAutoSaving:va,startAutoPersisting:async(a,t=!1)=>{const[n,e,i,s]=t?[ya,oa,da,la]:[oa,ya,la,da],r=n(a),c=t?j:M;await r;const o=e(a),w=t?M:j;try{await o}catch(a){throw w==(t?M:j)&&await p(s),c==(t?j:M)&&await p(i),a}return ma},stopAutoPersisting:fa,getStatus:()=>I,addStatusListener:a=>W(a,X),delListener:t=>(aa(t),a),schedule:Ea,getStore:()=>a,getStats:()=>({loads:S,saves:L}),...o,destroy:async()=>(u(A)&&(G=1,A=(async()=>{const a=_a(Wa,l),t=x(a,([,a,t])=>t!=J||(a?.(),!1)),n=h;F(a),B(a,...t),await T(()=>T(()=>T(fa,()=>n),()=>K?.()),()=>{const a=(_a(Za,l)??1)-1;ga(Za,l,a||void 0),na()})})()),await A,ma)};return wa(ma)},tt=new w.TextEncoder,nt=(a,n,i,r,c=et,o,w,l)=>{const y=Aa(),d=Aa();let v=a;return[async()=>{L(y),L(d),C(await i(v,n),({tn:a,cn:t,uq:n})=>{Da(pa(y,a,Ia),t),n&&Da(pa(d,a,Ia),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:Ia(e);return((a,t)=>I(_a(y,a),t))(a,t)?ya(x(P(await v(Y+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(x(fa(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||I(i,a))(a)))]}),a=>!u(a[0])&&!Na(a[1]))):{}},async(a,n,i,w,l,f=!1,E=s,m)=>{const N=u(m)?void 0:Ia(m),A=a=>u(N)||I(N,a),_=Ia();va(i??{},a=>C(x(oa(a??{}),A),a=>Da(_,a)));const O=S(_);if(u(N)&&!f&&l&&E==s&&$(O)&&I(y,a))return await v("DROP "+G+aa(a)),ga(y,a),void ga(d,a);const g=_a(y,a),p=Ia(x(S(g),a=>a==n||A(a)));if(!$(O))if(I(y,a)){if(await h(P([n,...O],async t=>{b(p,t)||(await v(J+aa(a)+"ADD"+aa(t)+r),Da(g,t))})),c==et&&!I(_a(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})(Ya([a,n]));await v("CREATE UNIQUE INDEX IF NOT EXISTS"+aa(e)+"ON"+aa(a)+`(${aa(n)})`),Da(pa(d,a,Ia),n)}}else await v(W+aa(a)+`(${aa(n)}${r} PRIMARY KEY${M(P(O,a=>e+aa(a)+r))});`),ga(y,a,Ia([n,...O])),ga(d,a,Ia([n]));if(await h([...!f&&w?P(S(p),async t=>{t!=n&&(await v(J+aa(a)+"DROP"+aa(t)),b(g,t))}):[]]),f)u(i)?u(N)&&await v(X+aa(a)+na(a,E)):await h(fa(i,async(t,e)=>{if(u(t))await v(X+aa(a)+na(a,E)+`AND(${aa(n)}=$1)`,[e]);else if(!$(O)){const i=x(oa(t),A);$(i)||await c(v,a,n,i,{[e]:P(i,a=>o?o(t[a]):t[a])},g)}}));else if($(O))u(N)&&I(y,a)&&await v(X+aa(a)+na(a,E));else{const t=x(S(_a(y,a)),a=>a!=n&&A(a)),e=ya(),s=[];va(i??{},(a,n)=>{ua(e,n,P(t,t=>o?o(a?.[t]):a?.[t])),B(s,n)}),await c(v,a,n,t,e,g),await v(X+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 T(t,()=>{v=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await g(()=>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,$);return at(a,()=>O(async()=>{return await A(),a=(await _(c,o))[q]?.[w]??"null",Ha(za(a));var a}),a=>O(async()=>{var t;await A(),await h(c,o,{[q]:{[w]:(t=a()??null,Ya(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,g)=>{const[p,T,I,D]=nt(t,f,E,$,A,_,O,g),S=(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 I(n,e,a[c],i,s,t,r)})),L=(a,t,n)=>ya(1==n?x(fa(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):x(P(t,t=>[t,a[t]]),([,a])=>!u(a))),R=async(a,t)=>l?await I(y,k,{[q]:u(v)?a:L(a,v,t)},!0,!0,t,void 0,v):null;return at(a,()=>D(async()=>{await p();const a=await(async()=>ya(x(await h(Oa(c,async([a,t,n],e)=>[a,await T(e,t,n)])),a=>!Na(a[1]))))(),t=await(async()=>w?(await T(y,k,void 0,d))[q]:{})();return Na(a)&&u(t)?void 0:[a,t]}),(a,t)=>D(async()=>{if(await p(),u(t)){const[t,n]=a();await S(t),await R(n)}else await S(t[0],!0),await R(t[1],!0)}),n,e,i,r,{[N]:()=>m,destroy:s},0,m)},rt=(a,e,i,r,o,w,y,v,f,m,N="getDb",$,A)=>{let _,h,g;const D=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,w),[L,R,b,C]=(a=>{const n=(a=>la(ja,E(a)?{[ba]:a}:a??{}))(a),e=n[Pa];if(n.mode==Ra){const a=n[ba]??t;return[1,e,[a,n[Ca]??k,n[Ma]??La],Ia(a)]}const{tables:{load:i={},save:r={}}={},values:c={}}=n,o=la(Ga,c),{load:w,save:l}=o,u=[Ka(w),Ka(l),o[Ba],Ja(w),Ja(l)],y=u[2],d=Ia(y),v=Ia(y),f=Xa(i,{[Fa]:null,[xa]:k,[Ua]:s},Fa,a=>I(v,a),a=>Da(d,a)),m=Xa(r,{[Ba]:null,[xa]:k,[qa]:0,[ka]:0,[Ua]:null},Ba,(a,t)=>I(v,t),(a,t)=>Da(d,t));return ha(m,(a,t)=>t[4]??=_a(f,t[0])?.[2]??s),[0,e,[f,m,u],d]})(e);return!L&&a.isMergeable()&&O(0),(L?it:st)(a,D,a=>{let t,n,e=1,i=0,s=0;const w=async(t=!0)=>{const[{d:n,s:i,c:r}]=await D(U+` ${H} d,${Q} s,TOTAL_CHANGES() c FROM ${z}${H} JOIN ${z}${Q}`);if(e&&(n!=_||i!=h||r!=g)){const c=t&&!s&&!l(_);_=n,h=i,g=r,c&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const c=T(()=>p(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*R)))});return n=c,c},f=r(a=>{e&&I(C,a)&&(s=1,d(),c.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,s=0,d(),await T(async()=>await n,async()=>{_=h=g=null,await o(f)})})},a=>a(),y,v,f,b,S(C),async(a,t)=>await a(U+` t.name tn,c.name cn,c.pk OR EXISTS(${U} 1 FROM ${z}index_list(t.name)i,${z}index_info(i.name)ii ${j} i."unique"=1 AND ii.name=c.name AND(${U} count(*) FROM ${z}index_info(i.name))=1)uq FROM ${V}list()t,${V}info(t.name)c ${j} 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,A)},ct=(a,t,n,e,i)=>rt(a,n,async(a,n=[])=>(await t.execute({sql:a,args:n})).rows,()=>A,a=>a(),e,i,A,1,t,"getClient",void 0,"file"==t.protocol?void 0:async a=>{e?.("BEGIN");const n=await t.transaction("write");return await T(async()=>{try{const t=await a(async(a,t=[])=>(e?.(a,t),(await n.execute({sql:a,args:t})).rows));return await n.commit(),e?.("END"),t}catch(a){throw await g(()=>n.rollback()),e?.("ROLLBACK"),a}},()=>n.close())});export{ct as createLibSqlPersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",n="",e=",",i=a(n),s="true",r=(a,t,n)=>a.replace(t,n),c=Promise,o=a=>(t,n,e)=>a(t)?e?.():n(t),l=globalThis,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=o(w),f=o(u),E=t=>a(t)==i,m=a=>Array.isArray(a),N=a=>a.length,$=a=>0==N(a),A=()=>{},_=a=>new c(a),O=async a=>c.all(a),g=(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)}},p=async(a,t)=>{try{return await a()}finally{await t()}},T=(a,t)=>a?.has(t)??!1,I=a=>u(a)||0==(a=>a?.size??0)(a),D=a=>[...a?.values()??[]],S=a=>a.clear(),L=(a,t)=>a?.forEach(t),R=(a,t)=>a?.delete(t),b=(a,t)=>a.forEach(t),C=(a,t="")=>a.join(t),M=(a,t)=>a.map(t),P=(a,t)=>a.filter(t),x=(a,t=N(a))=>a.splice(0,t),F=(a,...t)=>a.push(...t),B="_",q="_id",k="SELECT",U="WHERE",j="TABLE",G="ALTER "+j,J="FROM",K="DELETE "+J,X=k+"*"+J,Y="pragma_",z="data_version",H="schema_version",Q="pragma_table_",V="CREATE "+j,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)=>U+`(${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 b(a,([a,n])=>wa(t,a,n)),t},ya=(a,t)=>(delete a[t],a),da=(a,t)=>b(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=>N(ca(a)),ma=a=>ra(a)&&0==Ea(a),Na=Map,$a=a=>new Na(a),Aa=(a,t)=>a?.get(t),_a=(a,t)=>L(a,(a,n)=>t(n,a)),Oa=(a,t)=>{const n=[];return _a(a,(a,e)=>F(n,t(e,a))),n},ga=(a,t,n)=>u(n)?(R(a,t),a):a?.set(t,n),ha=(a,t,n,e)=>{let i=Aa(a,t);return T(a,t)?e?.(i):ga(a,t,i=n()),i},pa=(a,t,n,e,i=0)=>f((n?ha:Aa)(a,t[i],i>N(t)-2?n:$a),s=>{if(i>N(t)-2)return e?.(s)&&ga(a,t[i]),s;const r=pa(s,t,n,e,i+1);return I(s)&&ga(a,t[i]),r}),Ta=a=>new Set(m(a)||u(a)?a:[a]),Ia=(a,t)=>a?.add(t),Da="ColumnName",Sa="store",La="json",Ra=Sa+"TableName",ba=Sa+"Id"+Da,Ca=Sa+Da,Ma="autoLoadIntervalSeconds",Pa="rowId"+Da,xa="tableId",Fa="tableName",Ba="deleteEmptyColumns",qa="deleteEmptyTable",ka="condition",Ua={mode:La,[Ma]:1},ja={load:0,save:0,[Fa]:t+"_values"},Ga=a=>m(a)?a:void 0,Ja=a=>d(a)||m(a),Ka=(a,t,n,e,i)=>{const s=$a();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]),ga(s,r,c))}),s},Xa=JSON.stringify,Ya=JSON.parse,za=a=>""===a?void 0:m(a)?M(a,za):ra(a)?fa(a,za):a,Ha=/^\d+$/,Qa=$a(),Va=$a(),Wa=$a(),Za=(a,t,e,i,s,r,c,o={},l=0,w=[])=>{let d,v,E,A,O,T=0,D=0,S=0,C=0,B=0,q=0,k=0,U=0,j=0;const G={},J=o.destroy;ha(Qa,w,()=>0),ha(Va,w,()=>[]),ga(Wa,w,(Aa(Wa,w)??0)+1);const K=$a(),[X,Y,z,H,Q]=((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]:g(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=>{Ha.test(t)&&N(a)<1e3&&F(a,t)}]})(),s=$a(),r=(a,e,i,r)=>{let c,o=!1;if(b(((a,t=[n])=>{const e=[],i=(a,n)=>n==N(t)?F(e,a):y(t[n])?L(a,a=>i(a,n+1)):b([t[n],null],t=>i(Aa(a,t),n+1));return i(a,0),e})(e,i),n=>L(n,n=>{const e=()=>Aa(s,n)[0](t,...i??[],...r);a?(a=>{try{return a()}catch(a){(a=>{o||(c=a),o=!0})?.(a)}})(e):e()})),o)throw c};return[(i,r,c,o=[],l=()=>[])=>{t??=a();const w=e(1);return ga(s,w,[i,r,c,o,l]),Ia(pa(r,c??[n],Ta),w),w},(a,t,...n)=>r(!1,a,t,n),a=>f(Aa(s,a),([,t,e])=>(pa(t,e??[n],void 0,t=>(R(t,a),I(t)?1:0)),ga(s,a),i(a),e)),a=>f(Aa(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const c=N(r);c==N(n)?a(t,...r,...i(r)):y(n[c])?b(e[c]?.(...r)??[],a=>s(...r,a)):s(...r,n[c])};s()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>Ea),aa=a=>{a!=T&&(T=a,W(K,void 0,T))},ta=()=>{Aa(Wa,w)||Aa(Qa,w)||!$(Aa(Va,w)??[])||(ga(Qa,w),ga(Va,w),ga(Wa,w))},na=t=>{(X&&m(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=>p(()=>v=a,()=>{v==a&&(v=void 0)}),sa=async a=>(2!=T&&(await p(async()=>{aa(1),D++,await fa(()=>h(async()=>{const n=await t();m(n)?na(n):u(n)&&a?Q(a):u(n)||g(1,n)},t=>{r?.(t),a&&Q(a)}))},()=>aa(0)),await ea()),Ea),ra=async()=>{const a=k;k=0,a&&a==C&&!j&&(2==T?k=a:await sa())},ca=async a=>{const t=++C;let n=!0;if(await la(!0),t==C&&!j){const e=h(async()=>{const a=await i(async(a,e)=>{if(t==C&&!j)if(e||a){const t=n||2==T||!!q;B++,t&&q++,await p(async()=>{aa(1),D++,await(t?fa(()=>na(e??a)):(()=>{try{return na(e??a)}finally{aa(0)}})())},()=>{t&&q--,--B||aa(0)}),B||await ea()}else 2==T?k=t:await sa()});t!=C||j?u(a)||await s(a):d=a},r);await ia(e),t!=C||j||await p(()=>sa(a),()=>{n=!1})}return Ea},la=async(a=!1)=>{k=0,a||C++;const t=v,n=d;return d=void 0,await ia(p(async()=>{await t},async()=>{u(n)||await h(()=>s(n),r)})),Ea},wa=async a=>(1!=T&&await p(()=>p(async()=>{aa(2),S++,await fa(()=>h(()=>e(Y,a),r))},()=>aa(0)),ra),Ea),ua=async()=>{const t=++U;return await ya(!0),t!=U||j||(await wa(),t!=U||j||(E=a.addDidFinishTransactionListener(()=>{if(t==U&&!j){const a=z();H(a)&&h(()=>wa(a))}}))),Ea},ya=async(t=!1)=>{t||U++;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 p(()=>t(),async()=>{await n()}),Ea},fa=async(...a)=>{let t,n=!1;const e=_(e=>$(a)?e():F(Aa(Va,w),...M(a,(i,s)=>{const c=s==N(a)-1;return[async()=>{let a;O=_(t=>a=t),await p(async()=>{try{await h(i,r)}catch(a){n||(n=!0,t=a)}c&&e()},()=>{O=void 0,a()})},c?e:void 0,G]})));if(await(async()=>{if(!Aa(Qa,w)){ga(Qa,w,1);const a=Aa(Va,w);let t=0;await p(async()=>{for(;t<N(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{x(a,t),ga(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:()=>T,addStatusListener:a=>V(a,K),delListener:t=>(Z(t),a),schedule:fa,getStore:()=>a,getStats:()=>({loads:D,saves:S}),...o,destroy:async()=>(u(A)&&(j=1,A=(async()=>{const a=Aa(Va,w),t=P(a,([,a,t])=>t!=G||(a?.(),!1)),n=O;x(a),F(a,...t),await p(()=>p(()=>p(va,()=>n),()=>J?.()),()=>{const a=(Aa(Wa,w)??1)-1;ga(Wa,w,a||void 0),ta()})})()),await A,Ea)};return oa(Ea)},at=new l.TextEncoder,tt=(a,n,i,r,c=nt,o,l,w)=>{const y=$a(),d=$a();let v=a;return[async()=>{S(y),S(d),b(await i(v,n),({tn:a,cn:t,uq:n})=>{Ia(ha(y,a,Ta),t),n&&Ia(ha(d,a,Ta),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:Ta(e);return((a,t)=>T(Aa(y,a),t))(a,t)?ua(P(M(await v(X+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)||T(i,a))(a)))]}),a=>!u(a[0])&&!ma(a[1]))):{}},async(a,n,i,l,w,f=!1,E=s,m)=>{const N=u(m)?void 0:Ta(m),A=a=>u(N)||T(N,a),_=Ta();da(i??{},a=>b(P(ca(a??{}),A),a=>Ia(_,a)));const g=D(_);if(u(N)&&!f&&w&&E==s&&$(g)&&T(y,a))return await v("DROP "+j+Z(a)),ga(y,a),void ga(d,a);const h=Aa(y,a),p=Ta(P(D(h),a=>a==n||A(a)));if(!$(g))if(T(y,a)){if(await O(M([n,...g],async t=>{R(p,t)||(await v(G+Z(a)+"ADD"+Z(t)+r),Ia(h,t))})),c==nt&&!T(Aa(d,a),n)){const e=t+"_pk_"+(a=>{let t=2166136261;return b(at.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(Xa([a,n]));await v("CREATE UNIQUE INDEX IF NOT EXISTS"+Z(e)+"ON"+Z(a)+`(${Z(n)})`),Ia(ha(d,a,Ta),n)}}else await v(V+Z(a)+`(${Z(n)}${r} PRIMARY KEY${C(M(g,a=>e+Z(a)+r))});`),ga(y,a,Ta([n,...g])),ga(d,a,Ta([n]));if(await O([...!f&&l?M(D(p),async t=>{t!=n&&(await v(G+Z(a)+"DROP"+Z(t)),R(h,t))}):[]]),f)u(i)?u(N)&&await v(K+Z(a)+ta(a,E)):await O(va(i,async(t,e)=>{if(u(t))await v(K+Z(a)+ta(a,E)+`AND(${Z(n)}=$1)`,[e]);else if(!$(g)){const i=P(ca(t),A);$(i)||await c(v,a,n,i,{[e]:M(i,a=>o?o(t[a]):t[a])},h)}}));else if($(g))u(N)&&T(y,a)&&await v(K+Z(a)+ta(a,E));else{const t=P(D(Aa(y,a)),a=>a!=n&&A(a)),e=ua(),s=[];da(i??{},(a,n)=>{wa(e,n,M(t,t=>o?o(a?.[t]):a?.[t])),F(s,n)}),await c(v,a,n,t,e,h),await v(K+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 p(t,()=>{v=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await h(()=>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,g]=tt(t,w,y,f,E,void 0,void 0,$);return Za(a,()=>g(async()=>{return await A(),a=(await _(c,o))[B]?.[l]??"null",za(Ya(a));var a}),a=>g(async()=>{var t;await A(),await O(c,o,{[B]:{[l]:(t=a()??null,Xa(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,_,g,h)=>{const[p,T,I,D]=tt(t,f,E,$,A,_,g,h),S=(a,t)=>O(Oa(o,async([n,e,i,s,r],c)=>{var o,l;t&&(o=a,l=c,!ea.hasOwn(o,l))||await I(n,e,a[c],i,s,t,r)})),L=(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))),R=async(a,t)=>w?await I(y,q,{[B]:u(v)?a:L(a,v,t)},!0,!0,t,void 0,v):null;return Za(a,()=>D(async()=>{await p();const a=await(async()=>ua(P(await O(Oa(c,async([a,t,n],e)=>[a,await T(e,t,n)])),a=>!ma(a[1]))))(),t=await(async()=>l?(await T(y,q,void 0,d))[B]:{})();return ma(a)&&u(t)?void 0:[a,t]}),(a,t)=>D(async()=>{if(await p(),u(t)){const[t,n]=a();await S(t),await R(n)}else await S(t[0],!0),await R(t[1],!0)}),n,e,i,r,{[N]:()=>m,destroy:s},0,m)},st=(a,e,i,r,o,l,y,v,f,m,N="getDb",$,A)=>{let _,O,I;const S=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,l),[L,R,b,C]=(a=>{const n=(a=>la(Ua,E(a)?{[Ra]:a}:a??{}))(a),e=n[Ma];if(n.mode==La){const a=n[Ra]??t;return[1,e,[a,n[ba]??q,n[Ca]??Sa],Ta(a)]}const{tables:{load:i={},save:r={}}={},values:c={}}=n,o=la(ja,c),{load:l,save:w}=o,u=[Ja(l),Ja(w),o[Fa],Ga(l),Ga(w)],y=u[2],d=Ta(y),v=Ta(y),f=Ka(i,{[xa]:null,[Pa]:q,[ka]:s},xa,a=>T(v,a),a=>Ia(d,a)),m=Ka(r,{[Fa]:null,[Pa]:q,[Ba]:0,[qa]:0,[ka]:null},Fa,(a,t)=>T(v,t),(a,t)=>Ia(d,t));return _a(m,(a,t)=>t[4]??=Aa(f,t[0])?.[2]??s),[0,e,[f,m,u],d]})(e);return!L&&a.isMergeable()&&g(0),(L?et:it)(a,S,a=>{let t,n,e=1,i=0,s=0;const l=async(t=!0)=>{const[{d:n,s:i,c:r}]=await S(k+` ${z} d,${H} s,TOTAL_CHANGES() c FROM ${Y}${z} JOIN ${Y}${H}`);if(e&&(n!=_||i!=O||r!=I)){const c=t&&!s&&!w(_);_=n,O=i,I=r,c&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const c=p(()=>((t,n)=>h(async()=>{for(i?r&&await l():(await l(!1),i=1);e&&s;)s=0,await l(!1),e&&(await a(),await l())},a=>{h(()=>n?.(a))}))(0,y),()=>{n==c&&(n=void 0),e&&(s?v():e&&u(t)&&(t=setInterval(()=>v(!0),1e3*R)))});return n=c,c},f=r(a=>{e&&T(C,a)&&(s=1,d(),c.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,s=0,d(),await p(async()=>await n,async()=>{_=O=I=null,await o(f)})})},a=>a(),y,v,f,b,D(C),async(a,t)=>await a(k+` t.name tn,c.name cn,c.pk OR EXISTS(${k} 1 FROM ${Y}index_list(t.name)i,${Y}index_info(i.name)ii ${U} i."unique"=1 AND ii.name=c.name AND(${k} count(*) FROM ${Y}index_info(i.name))=1)uq FROM ${Q}list()t,${Q}info(t.name)c ${U} t.schema='main'AND t.type IN('table','view')AND t.name IN(${aa(t)})ORDER BY t.name,c.name`,t),m,N,n,$,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,A)},rt=(a,t,n,e,i)=>st(a,n,async(a,n=[])=>(await t.execute({sql:a,args:n})).rows,()=>A,a=>a(),e,i,A,1,t,"getClient",void 0,"file"==t.protocol?void 0:async a=>{e?.("BEGIN");const n=await t.transaction("write");return await p(async()=>{try{const t=await a(async(a,t=[])=>(e?.(a,t),(await n.execute({sql:a,args:t})).rows));return await n.commit(),e?.("END"),t}catch(a){throw await h(()=>n.rollback()),e?.("ROLLBACK"),a}},()=>n.close())});export{rt as createLibSqlPersister};
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,m=a=>Array.isArray(a),N=a=>a.length,$=a=>0==N(a),A=()=>{},_=a=>new c(a),h=async a=>c.all(a),O=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},g=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},p=(a,t)=>g(a,a=>{g(()=>t?.(a))}),T=async(a,t)=>{try{return await a()}finally{await t()}},I=(a,t)=>a?.has(t)??!1,D=a=>u(a)||0==(a=>a?.size??0)(a),S=a=>[...a?.values()??[]],L=a=>a.clear(),R=(a,t)=>a?.forEach(t),b=(a,t)=>a?.delete(t),C=(a,t)=>a.forEach(t),M=(a,t="")=>a.join(t),P=(a,t)=>a.map(t),x=(a,t)=>a.filter(t),F=(a,t=N(a))=>a.splice(0,t),B=(a,...t)=>a.push(...t),q="_",k="_id",U="SELECT",j="WHERE",G="TABLE",J="ALTER "+G,K="FROM",X="DELETE "+K,Y=U+"*"+K,z="pragma_",H="data_version",Q="schema_version",V="pragma_table_",W="CREATE "+G,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)=>j+`(${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},ma=a=>N(oa(a)),Na=a=>ca(a)&&0==ma(a),$a=Map,Aa=a=>new $a(a),_a=(a,t)=>a?.get(t),ha=(a,t)=>R(a,(a,n)=>t(n,a)),Oa=(a,t)=>{const n=[];return ha(a,(a,e)=>B(n,t(e,a))),n},ga=(a,t,n)=>u(n)?(b(a,t),a):a?.set(t,n),pa=(a,t,n,e)=>{let i=_a(a,t);return I(a,t)?e?.(i):ga(a,t,i=n()),i},Ta=(a,t,n,e,i=0)=>f((n?pa:_a)(a,t[i],i>N(t)-2?n:Aa),s=>{if(i>N(t)-2)return e?.(s)&&ga(a,t[i]),s;const r=Ta(s,t,n,e,i+1);return D(s)&&ga(a,t[i]),r}),Ia=a=>new Set(m(a)||u(a)?a:[a]),Da=(a,t)=>a?.add(t),Sa="ColumnName",La="store",Ra="json",ba=La+"TableName",Ca=La+"Id"+Sa,Ma=La+Sa,Pa="autoLoadIntervalSeconds",xa="rowId"+Sa,Fa="tableId",Ba="tableName",qa="deleteEmptyColumns",ka="deleteEmptyTable",Ua="condition",ja={mode:Ra,[Pa]:1},Ga={load:0,save:0,[Ba]:t+"_values"},Ja=a=>m(a)?a:void 0,Ka=a=>d(a)||m(a),Xa=(a,t,n,e,i)=>{const s=Aa();return va(a,(a,r)=>{const c=(l=la(t,E(a)?{[n]:a}:a),o=ia.values(l),w=ma(t),o.slice(0,w));var o,w,l;y(c[0])||e(r,c[0])||(i(r,c[0]),ga(s,r,c))}),s},Ya=JSON.stringify,za=JSON.parse,Ha=a=>""===a?void 0:m(a)?P(a,Ha):ca(a)?Ea(a,Ha):a,Qa=/^\d+$/,Va=Aa(),Wa=Aa(),Za=Aa(),at=(a,t,e,i,s,r,c,o={},w=0,l=[])=>{let d,v,E,A,h,I=0,S=0,L=0,M=0,q=0,k=0,U=0,j=0,G=0;const J={},K=o.destroy;pa(Va,l,()=>0),pa(Wa,l,()=>[]),ga(Za,l,(_a(Za,l)??0)+1);const X=Aa(),[Y,z,H,Q,V]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!Na(a)||!Na(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!Na(a)||!Na(t),t.setContent]:O(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)&&N(a)<1e3&&B(a,t)}]})(),s=Aa(),r=(a,e,i,r)=>{let c,o=!1;if(C(((a,t=[n])=>{const e=[],i=(a,n)=>n==N(t)?B(e,a):y(t[n])?R(a,a=>i(a,n+1)):C([t[n],null],t=>i(_a(a,t),n+1));return i(a,0),e})(e,i),n=>R(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=[],w=()=>[])=>{t??=a();const l=e(1);return ga(s,l,[i,r,c,o,w]),Da(Ta(r,c??[n],Ia),l),l},(a,t,...n)=>r(!1,a,t,n),a=>f(_a(s,a),([,t,e])=>(Ta(t,e??[n],void 0,t=>(b(t,a),D(t)?1:0)),ga(s,a),i(a),e)),a=>f(_a(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const c=N(r);c==N(n)?a(t,...r,...i(r)):y(n[c])?C(e[c]?.(...r)??[],a=>s(...r,a)):s(...r,n[c])};s()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>ma),ta=a=>{a!=I&&(I=a,Z(X,void 0,I))},na=()=>{_a(Za,l)||_a(Va,l)||!$(_a(Wa,l)??[])||(ga(Va,l),ga(Wa,l),ga(Za,l))},ea=t=>{(Y&&m(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ia=async()=>{va()&&a.__?.[0]?.()&&await ua()},sa=a=>T(()=>v=a,()=>{v==a&&(v=void 0)}),ra=async a=>(2!=I&&(await T(async()=>{ta(1),S++,await Ea(()=>g(async()=>{const n=await t();m(n)?ea(n):u(n)&&a?V(a):u(n)||O(1,n)},t=>{r?.(t),a&&V(a)}))},()=>ta(0)),await ia()),ma),ca=async()=>{const a=U;U=0,a&&a==M&&!G&&(2==I?U=a:await ra())},oa=async a=>{const t=++M;let n=!0;if(await la(!0),t==M&&!G){const e=g(async()=>{const a=await i(async(a,e)=>{if(t==M&&!G)if(e||a){const t=n||2==I||!!k;q++,t&&k++,await T(async()=>{ta(1),S++,await(t?Ea(()=>ea(e??a)):(()=>{try{return ea(e??a)}finally{ta(0)}})())},()=>{t&&k--,--q||ta(0)}),q||await ia()}else 2==I?U=t:await ra()});t!=M||G?u(a)||await s(a):d=a},r);await sa(e),t!=M||G||await T(()=>ra(a),()=>{n=!1})}return ma},la=async(a=!1)=>{U=0,a||M++;const t=v,n=d;return d=void 0,await sa(T(async()=>{await t},async()=>{u(n)||await g(()=>s(n),r)})),ma},ua=async a=>(1!=I&&await T(()=>T(async()=>{ta(2),L++,await Ea(()=>g(()=>e(z,a),r))},()=>ta(0)),ca),ma),ya=async()=>{const t=++j;return await da(!0),t!=j||G||(await ua(),t!=j||G||(E=a.addDidFinishTransactionListener(()=>{if(t==j&&!G){const a=H();Q(a)&&g(()=>ua(a))}}))),ma},da=async(t=!1)=>{t||j++;const n=E;return E=void 0,u(n)||a.delListener(n),ma},va=()=>!u(E),fa=async(a=!1)=>{const[t,n]=a?[da,la]:[la,da];return await T(()=>t(),async()=>{await n()}),ma},Ea=async(...a)=>{let t,n=!1;const e=_(e=>$(a)?e():B(_a(Wa,l),...P(a,(i,s)=>{const c=s==N(a)-1;return[async()=>{let a;h=_(t=>a=t),await T(async()=>{try{await g(i,r)}catch(a){n||(n=!0,t=a)}c&&e()},()=>{h=void 0,a()})},c?e:void 0,J]})));if(await(async()=>{if(!_a(Va,l)){ga(Va,l,1);const a=_a(Wa,l);let t=0;await T(async()=>{for(;t<N(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{F(a,t),ga(Va,l,0),na()})}})(),await e,n)throw t;return ma},ma={load:ra,startAutoLoad:oa,stopAutoLoad:la,isAutoLoading:()=>!u(d),save:ua,startAutoSave:ya,stopAutoSave:da,isAutoSaving:va,startAutoPersisting:async(a,t=!1)=>{const[n,e,i,s]=t?[ya,oa,da,la]:[oa,ya,la,da],r=n(a),c=t?j:M;await r;const o=e(a),w=t?M:j;try{await o}catch(a){throw w==(t?M:j)&&await p(s),c==(t?j:M)&&await p(i),a}return ma},stopAutoPersisting:fa,getStatus:()=>I,addStatusListener:a=>W(a,X),delListener:t=>(aa(t),a),schedule:Ea,getStore:()=>a,getStats:()=>({loads:S,saves:L}),...o,destroy:async()=>(u(A)&&(G=1,A=(async()=>{const a=_a(Wa,l),t=x(a,([,a,t])=>t!=J||(a?.(),!1)),n=h;F(a),B(a,...t),await T(()=>T(()=>T(fa,()=>n),()=>K?.()),()=>{const a=(_a(Za,l)??1)-1;ga(Za,l,a||void 0),na()})})()),await A,ma)};return wa(ma)},tt=new w.TextEncoder,nt=(a,n,i,r,c=et,o,w,l)=>{const y=Aa(),d=Aa();let v=a;return[async()=>{L(y),L(d),C(await i(v,n),({tn:a,cn:t,uq:n})=>{Da(pa(y,a,Ia),t),n&&Da(pa(d,a,Ia),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:Ia(e);return((a,t)=>I(_a(y,a),t))(a,t)?ya(x(P(await v(Y+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(x(fa(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||I(i,a))(a)))]}),a=>!u(a[0])&&!Na(a[1]))):{}},async(a,n,i,w,l,f=!1,E=s,m)=>{const N=u(m)?void 0:Ia(m),A=a=>u(N)||I(N,a),_=Ia();va(i??{},a=>C(x(oa(a??{}),A),a=>Da(_,a)));const O=S(_);if(u(N)&&!f&&l&&E==s&&$(O)&&I(y,a))return await v("DROP "+G+aa(a)),ga(y,a),void ga(d,a);const g=_a(y,a),p=Ia(x(S(g),a=>a==n||A(a)));if(!$(O))if(I(y,a)){if(await h(P([n,...O],async t=>{b(p,t)||(await v(J+aa(a)+"ADD"+aa(t)+r),Da(g,t))})),c==et&&!I(_a(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})(Ya([a,n]));await v("CREATE UNIQUE INDEX IF NOT EXISTS"+aa(e)+"ON"+aa(a)+`(${aa(n)})`),Da(pa(d,a,Ia),n)}}else await v(W+aa(a)+`(${aa(n)}${r} PRIMARY KEY${M(P(O,a=>e+aa(a)+r))});`),ga(y,a,Ia([n,...O])),ga(d,a,Ia([n]));if(await h([...!f&&w?P(S(p),async t=>{t!=n&&(await v(J+aa(a)+"DROP"+aa(t)),b(g,t))}):[]]),f)u(i)?u(N)&&await v(X+aa(a)+na(a,E)):await h(fa(i,async(t,e)=>{if(u(t))await v(X+aa(a)+na(a,E)+`AND(${aa(n)}=$1)`,[e]);else if(!$(O)){const i=x(oa(t),A);$(i)||await c(v,a,n,i,{[e]:P(i,a=>o?o(t[a]):t[a])},g)}}));else if($(O))u(N)&&I(y,a)&&await v(X+aa(a)+na(a,E));else{const t=x(S(_a(y,a)),a=>a!=n&&A(a)),e=ya(),s=[];va(i??{},(a,n)=>{ua(e,n,P(t,t=>o?o(a?.[t]):a?.[t])),B(s,n)}),await c(v,a,n,t,e,g),await v(X+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 T(t,()=>{v=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await g(()=>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,$);return at(a,()=>O(async()=>{return await A(),a=(await _(c,o))[q]?.[w]??"null",Ha(za(a));var a}),a=>O(async()=>{var t;await A(),await h(c,o,{[q]:{[w]:(t=a()??null,Ya(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,g)=>{const[p,T,I,D]=nt(t,f,E,$,A,_,O,g),S=(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 I(n,e,a[c],i,s,t,r)})),L=(a,t,n)=>ya(1==n?x(fa(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):x(P(t,t=>[t,a[t]]),([,a])=>!u(a))),R=async(a,t)=>l?await I(y,k,{[q]:u(v)?a:L(a,v,t)},!0,!0,t,void 0,v):null;return at(a,()=>D(async()=>{await p();const a=await(async()=>ya(x(await h(Oa(c,async([a,t,n],e)=>[a,await T(e,t,n)])),a=>!Na(a[1]))))(),t=await(async()=>w?(await T(y,k,void 0,d))[q]:{})();return Na(a)&&u(t)?void 0:[a,t]}),(a,t)=>D(async()=>{if(await p(),u(t)){const[t,n]=a();await S(t),await R(n)}else await S(t[0],!0),await R(t[1],!0)}),n,e,i,r,{[N]:()=>m,destroy:s},0,m)},rt=(a,e,i,r,o,w,y,v,f,m,N="getDb",$,A)=>{let _,h,g;const D=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,w),[L,R,b,C]=(a=>{const n=(a=>la(ja,E(a)?{[ba]:a}:a??{}))(a),e=n[Pa];if(n.mode==Ra){const a=n[ba]??t;return[1,e,[a,n[Ca]??k,n[Ma]??La],Ia(a)]}const{tables:{load:i={},save:r={}}={},values:c={}}=n,o=la(Ga,c),{load:w,save:l}=o,u=[Ka(w),Ka(l),o[Ba],Ja(w),Ja(l)],y=u[2],d=Ia(y),v=Ia(y),f=Xa(i,{[Fa]:null,[xa]:k,[Ua]:s},Fa,a=>I(v,a),a=>Da(d,a)),m=Xa(r,{[Ba]:null,[xa]:k,[qa]:0,[ka]:0,[Ua]:null},Ba,(a,t)=>I(v,t),(a,t)=>Da(d,t));return ha(m,(a,t)=>t[4]??=_a(f,t[0])?.[2]??s),[0,e,[f,m,u],d]})(e);return!L&&a.isMergeable()&&O(0),(L?it:st)(a,D,a=>{let t,n,e=1,i=0,s=0;const w=async(t=!0)=>{const[{d:n,s:i,c:r}]=await D(U+` ${H} d,${Q} s,TOTAL_CHANGES() c FROM ${z}${H} JOIN ${z}${Q}`);if(e&&(n!=_||i!=h||r!=g)){const c=t&&!s&&!l(_);_=n,h=i,g=r,c&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const c=T(()=>p(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*R)))});return n=c,c},f=r(a=>{e&&I(C,a)&&(s=1,d(),c.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,s=0,d(),await T(async()=>await n,async()=>{_=h=g=null,await o(f)})})},a=>a(),y,v,f,b,S(C),async(a,t)=>await a(U+` t.name tn,c.name cn,c.pk OR EXISTS(${U} 1 FROM ${z}index_list(t.name)i,${z}index_info(i.name)ii ${j} i."unique"=1 AND ii.name=c.name AND(${U} count(*) FROM ${z}index_info(i.name))=1)uq FROM ${V}list()t,${V}info(t.name)c ${j} 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,A)},ct=(a,t,n,e,i)=>rt(a,n,async(a,n=[])=>(await t.execute({sql:a,args:n})).rows,()=>A,a=>a(),e,i,A,1,t,"getClient",void 0,"file"==t.protocol?void 0:async a=>{e?.("BEGIN");const n=await t.transaction("write");return await T(async()=>{try{const t=await a(async(a,t=[])=>(e?.(a,t),(await n.execute({sql:a,args:t})).rows));return await n.commit(),e?.("END"),t}catch(a){throw await g(()=>n.rollback()),e?.("ROLLBACK"),a}},()=>n.close())});export{ct as createLibSqlPersister};
@@ -1 +1 @@
1
- const t=t=>typeof t,a="",e=t(a),n=Promise,s=t=>(a,e,n)=>t(a)?n?.():e(a),r=t=>null==t,o=t=>void 0===t,i=t=>null===t,c=s(r),y=s(o),w=a=>t(a)==e,u=t=>Array.isArray(t),l=t=>t.length,d=t=>0==l(t),v=t=>new n(t),f=(t,e)=>{throw((t,e)=>Error("tinybase:"+t+(o(e)?a:":"+e)))(t,e)},h=async(t,a)=>{try{return await t()}catch(t){a?.(t)}},p=async(t,a)=>{try{return await t()}finally{await a()}},g=(t,a)=>t.forEach(a),_=(t,a)=>t.map(a),S=(t,a=l(t))=>t.splice(0,a),m=(t,...a)=>t.push(...a),A=Object,P=t=>A.getPrototypeOf(t),L=t=>!r(t)&&c(P(t),t=>t==A.prototype||r(P(t)),()=>!0),b=A.keys,E=A.freeze,O=(t,a,e)=>(A.defineProperty(t,a,{configurable:!0,enumerable:!0,value:e,writable:!0}),e),k=(t=[])=>{const a=A.create(null);return g(t,([t,e])=>O(a,t,e)),a},x=t=>L(t)&&0==(t=>l(b(t)))(t),C=JSON.stringify,M=JSON.parse,z=t=>""===t?void 0:u(t)?_(t,z):L(t)?((t,a)=>{const e=k();return((t,a)=>{g(b(t),e=>a(t[e],e))})(t,(t,n)=>O(e,n,a(t,n))),e})(t,z):t,D=t=>o(t)||0==(t=>t?.size??0)(t),J=(t,a)=>t?.forEach(a),N=(t,a)=>t?.delete(a),T=Map,j=t=>new T(t),F=(t,a)=>t?.get(a),U=(t,a,e)=>o(e)?(N(t,a),t):t?.set(a,e),W=(t,a,e,n)=>{let s=F(t,a);var r,o;return r=t,o=a,r?.has(o)?n?.(s):U(t,a,s=e()),s},$=(t,a,e,n,s=0)=>y((e?W:F)(t,a[s],s>l(a)-2?e:j),r=>{if(s>l(a)-2)return n?.(r)&&U(t,a[s]),r;const o=$(r,a,e,n,s+1);return D(r)&&U(t,a[s]),o}),q=/^\d+$/,B=t=>new Set(u(t)||o(t)?t:[t]),G=j(),H=j(),I=j(),K=(t,e,n,s,r,c,w,A={},P=0,L=[])=>{let b,O,k,C,M,z=0,T=0,K=0,Q=0,R=0,V=0,X=0,Y=0,Z=0;const tt={},at=A.destroy;W(G,L,()=>0),W(H,L,()=>[]),U(I,L,(F(I,L)??0)+1);const et=j(),[nt,st,rt,ot,it]=((t=1,a,e)=>1!=t&&a.isMergeable()?[1,a.__[1],()=>a.__[2](!e),([[t],[a]])=>!x(t)||!x(a),a.setDefaultContent]:2!=t?[0,a._[7],a._[8],([t,a])=>!x(t)||!x(a),a.setContent]:f(0))(w,t,P),[ct,yt,wt]=(t=>{let e;const[n,s]=(()=>{const t=[];let e=0;return[n=>(n?t.shift():null)??a+e++,a=>{q.test(a)&&l(t)<1e3&&m(t,a)}]})(),r=j(),o=(t,n,s,o)=>{let c,y=!1;if(g(((t,e=[a])=>{const n=[],s=(t,a)=>a==l(e)?m(n,t):i(e[a])?J(t,t=>s(t,a+1)):g([e[a],null],e=>s(F(t,e),a+1));return s(t,0),n})(n,s),a=>J(a,a=>{const n=()=>F(r,a)[0](e,...s??[],...o);t?(t=>{try{return t()}catch(t){(t=>{y||(c=t),y=!0})?.(t)}})(n):n()})),y)throw c};return[(s,o,i,c=[],y=()=>[])=>{e??=t();const w=n(1);var u,l;return U(r,w,[s,o,i,c,y]),u=$(o,i??[a],B),l=w,u?.add(l),w},(t,a,...e)=>o(!1,t,a,e),t=>y(F(r,t),([,e,n])=>($(e,n??[a],void 0,a=>(N(a,t),D(a)?1:0)),U(r,t),s(t),n)),t=>y(F(r,t),([t,,a=[],n,s])=>{const r=(...o)=>{const c=l(o);c==l(a)?t(e,...o,...s(o)):i(a[c])?g(n[c]?.(...o)??[],t=>r(...o,t)):r(...o,a[c])};r()}),(t,a,...e)=>o(!0,t,a,e)]})(()=>Et),ut=t=>{t!=z&&(z=t,yt(et,void 0,z))},lt=()=>{F(I,L)||F(G,L)||!d(F(H,L)??[])||(U(G,L),U(H,L),U(I,L))},dt=a=>{(nt&&u(a?.[0])?1===a?.[2]?t.__[4]:t.__[3]:1===a?.[2]?t._[10]:t._[9])(a)},vt=async()=>{Pt()&&t.__?.[0]?.()&&await St()},ft=t=>p(()=>O=t,()=>{O==t&&(O=void 0)}),ht=async t=>(2!=z&&(await p(async()=>{ut(1),T++,await bt(()=>h(async()=>{const a=await e();u(a)?dt(a):o(a)&&t?it(t):o(a)||f(1,a)},a=>{c?.(a),t&&it(t)}))},()=>ut(0)),await vt()),Et),pt=async()=>{const t=X;X=0,t&&t==Q&&!Z&&(2==z?X=t:await ht())},gt=async t=>{const a=++Q;let e=!0;if(await _t(!0),a==Q&&!Z){const n=h(async()=>{const t=await s(async(t,n)=>{if(a==Q&&!Z)if(n||t){const a=e||2==z||!!V;R++,a&&V++,await p(async()=>{ut(1),T++,await(a?bt(()=>dt(n??t)):(()=>{try{return dt(n??t)}finally{ut(0)}})())},()=>{a&&V--,--R||ut(0)}),R||await vt()}else 2==z?X=a:await ht()});a!=Q||Z?o(t)||await r(t):b=t},c);await ft(n),a!=Q||Z||await p(()=>ht(t),()=>{e=!1})}return Et},_t=async(t=!1)=>{X=0,t||Q++;const a=O,e=b;return b=void 0,await ft(p(async()=>{await a},async()=>{o(e)||await h(()=>r(e),c)})),Et},St=async t=>(1!=z&&await p(()=>p(async()=>{ut(2),K++,await bt(()=>h(()=>n(st,t),c))},()=>ut(0)),pt),Et),mt=async()=>{const a=++Y;return await At(!0),a!=Y||Z||(await St(),a!=Y||Z||(k=t.addDidFinishTransactionListener(()=>{if(a==Y&&!Z){const t=rt();ot(t)&&h(()=>St(t))}}))),Et},At=async(a=!1)=>{a||Y++;const e=k;return k=void 0,o(e)||t.delListener(e),Et},Pt=()=>!o(k),Lt=async(t=!1)=>{const[a,e]=t?[At,_t]:[_t,At];return await p(()=>a(),async()=>{await e()}),Et},bt=async(...t)=>{let a,e=!1;const n=v(n=>d(t)?n():m(F(H,L),..._(t,(s,r)=>{const o=r==l(t)-1;return[async()=>{let t;M=v(a=>t=a),await p(async()=>{try{await h(s,c)}catch(t){e||(e=!0,a=t)}o&&n()},()=>{M=void 0,t()})},o?n:void 0,tt]})));if(await(async()=>{if(!F(G,L)){U(G,L,1);const t=F(H,L);let a=0;await p(async()=>{for(;a<l(t);){const e=t[a++];e[2]=void 0,await e[0]()}},()=>{S(t,a),U(G,L,0),lt()})}})(),await n,e)throw a;return Et},Et={load:ht,startAutoLoad:gt,stopAutoLoad:_t,isAutoLoading:()=>!o(b),save:St,startAutoSave:mt,stopAutoSave:At,isAutoSaving:Pt,startAutoPersisting:async(t,a=!1)=>{const[e,n]=a?[mt,gt]:[gt,mt];return await e(t),await n(t),Et},stopAutoPersisting:Lt,getStatus:()=>z,addStatusListener:t=>ct(t,et),delListener:a=>(wt(a),t),schedule:bt,getStore:()=>t,getStats:()=>({loads:T,saves:K}),...A,destroy:async()=>(o(C)&&(Z=1,C=(async()=>{const t=F(H,L),a=(e=([,t,a])=>a!=tt||(t?.(),!1),t.filter(e));var e;const n=M;S(t),m(t,...a),await p(()=>p(()=>p(Lt,()=>n),()=>at?.()),()=>{const t=(F(I,L)??1)-1;U(I,L,t||void 0),lt()})})()),await C,Et)};return E(Et)},Q="/store",R=(t,e,n,s)=>{const{host:r,room:i}=e.partySocketOptions,{storeProtocol:c="https",storePath:u=Q,messagePrefix:v=a}={...w(n)?{storeProtocol:n}:n},f=c+"://"+r+"/parties/"+e.name+"/"+i+u,p=async t=>{const a=await fetch(f,{...t?{method:"PUT",body:(e=t,C(e,(t,a)=>a instanceof Map?k([...a]):a))}:{},mode:"cors",cache:"no-store"});var e;if(!a.ok)throw a;const n=await a.text();return d(n)?void 0:M(n)};return K(t,p,async(t,a)=>{var n;a?e.send(v+"s"+(w(n=a)?n:C(n,(t,a)=>o(a)?"":a))):await p(t())},t=>((t,a,e)=>(t.addEventListener(a,e),()=>t.removeEventListener(a,e)))(e,"message",a=>{h(async()=>await y(((t,a)=>{const e=l(t);return w(a)&&l(a)>e&&((t,a)=>t.startsWith(a))(a,t)?(()=>{try{return[a[e],(t=a,n=e+1,r=t.slice(n,s),z(M(r)))]}catch{return}var t,n,s,r})():void 0})(v,a.data),async([a,e])=>{"s"==a&&await t(void 0,e)}),s)}),t=>t(),s,1,{getConnection:()=>e})};export{R as createPartyKitPersister};
1
+ const t=t=>typeof t,a="",e=t(a),n=Promise,s=t=>(a,e,n)=>t(a)?n?.():e(a),r=t=>null==t,o=t=>void 0===t,i=t=>null===t,c=s(r),y=s(o),w=a=>t(a)==e,u=t=>Array.isArray(t),l=t=>t.length,d=t=>0==l(t),v=t=>new n(t),f=(t,e)=>{throw((t,e)=>Error("tinybase:"+t+(o(e)?a:":"+e)))(t,e)},h=async(t,a)=>{try{return await t()}catch(t){a?.(t)}},p=(t,a)=>h(t,t=>{h(()=>a?.(t))}),g=async(t,a)=>{try{return await t()}finally{await a()}},_=(t,a)=>t.forEach(a),S=(t,a)=>t.map(a),m=(t,a=l(t))=>t.splice(0,a),A=(t,...a)=>t.push(...a),P=Object,L=t=>P.getPrototypeOf(t),b=t=>!r(t)&&c(L(t),t=>t==P.prototype||r(L(t)),()=>!0),E=P.keys,O=P.freeze,k=(t,a,e)=>(P.defineProperty(t,a,{configurable:!0,enumerable:!0,value:e,writable:!0}),e),x=(t=[])=>{const a=P.create(null);return _(t,([t,e])=>k(a,t,e)),a},C=t=>b(t)&&0==(t=>l(E(t)))(t),M=JSON.stringify,z=JSON.parse,D=t=>""===t?void 0:u(t)?S(t,D):b(t)?((t,a)=>{const e=x();return((t,a)=>{_(E(t),e=>a(t[e],e))})(t,(t,n)=>k(e,n,a(t,n))),e})(t,D):t,J=t=>o(t)||0==(t=>t?.size??0)(t),N=(t,a)=>t?.forEach(a),T=(t,a)=>t?.delete(a),j=Map,F=t=>new j(t),U=(t,a)=>t?.get(a),W=(t,a,e)=>o(e)?(T(t,a),t):t?.set(a,e),$=(t,a,e,n)=>{let s=U(t,a);var r,o;return r=t,o=a,r?.has(o)?n?.(s):W(t,a,s=e()),s},q=(t,a,e,n,s=0)=>y((e?$:U)(t,a[s],s>l(a)-2?e:F),r=>{if(s>l(a)-2)return n?.(r)&&W(t,a[s]),r;const o=q(r,a,e,n,s+1);return J(r)&&W(t,a[s]),o}),B=/^\d+$/,G=t=>new Set(u(t)||o(t)?t:[t]),H=F(),I=F(),K=F(),Q=(t,e,n,s,r,c,w,P={},L=0,b=[])=>{let E,k,x,M,z,D=0,j=0,Q=0,R=0,V=0,X=0,Y=0,Z=0,tt=0;const at={},et=P.destroy;$(H,b,()=>0),$(I,b,()=>[]),W(K,b,(U(K,b)??0)+1);const nt=F(),[st,rt,ot,it,ct]=((t=1,a,e)=>1!=t&&a.isMergeable()?[1,a.__[1],()=>a.__[2](!e),([[t],[a]])=>!C(t)||!C(a),a.setDefaultContent]:2!=t?[0,a._[7],a._[8],([t,a])=>!C(t)||!C(a),a.setContent]:f(0))(w,t,L),[yt,wt,ut]=(t=>{let e;const[n,s]=(()=>{const t=[];let e=0;return[n=>(n?t.shift():null)??a+e++,a=>{B.test(a)&&l(t)<1e3&&A(t,a)}]})(),r=F(),o=(t,n,s,o)=>{let c,y=!1;if(_(((t,e=[a])=>{const n=[],s=(t,a)=>a==l(e)?A(n,t):i(e[a])?N(t,t=>s(t,a+1)):_([e[a],null],e=>s(U(t,e),a+1));return s(t,0),n})(n,s),a=>N(a,a=>{const n=()=>U(r,a)[0](e,...s??[],...o);t?(t=>{try{return t()}catch(t){(t=>{y||(c=t),y=!0})?.(t)}})(n):n()})),y)throw c};return[(s,o,i,c=[],y=()=>[])=>{e??=t();const w=n(1);var u,l;return W(r,w,[s,o,i,c,y]),u=q(o,i??[a],G),l=w,u?.add(l),w},(t,a,...e)=>o(!1,t,a,e),t=>y(U(r,t),([,e,n])=>(q(e,n??[a],void 0,a=>(T(a,t),J(a)?1:0)),W(r,t),s(t),n)),t=>y(U(r,t),([t,,a=[],n,s])=>{const r=(...o)=>{const c=l(o);c==l(a)?t(e,...o,...s(o)):i(a[c])?_(n[c]?.(...o)??[],t=>r(...o,t)):r(...o,a[c])};r()}),(t,a,...e)=>o(!0,t,a,e)]})(()=>Ot),lt=t=>{t!=D&&(D=t,wt(nt,void 0,D))},dt=()=>{U(K,b)||U(H,b)||!d(U(I,b)??[])||(W(H,b),W(I,b),W(K,b))},vt=a=>{(st&&u(a?.[0])?1===a?.[2]?t.__[4]:t.__[3]:1===a?.[2]?t._[10]:t._[9])(a)},ft=async()=>{Lt()&&t.__?.[0]?.()&&await mt()},ht=t=>g(()=>k=t,()=>{k==t&&(k=void 0)}),pt=async t=>(2!=D&&(await g(async()=>{lt(1),j++,await Et(()=>h(async()=>{const a=await e();u(a)?vt(a):o(a)&&t?ct(t):o(a)||f(1,a)},a=>{c?.(a),t&&ct(t)}))},()=>lt(0)),await ft()),Ot),gt=async()=>{const t=Y;Y=0,t&&t==R&&!tt&&(2==D?Y=t:await pt())},_t=async t=>{const a=++R;let e=!0;if(await St(!0),a==R&&!tt){const n=h(async()=>{const t=await s(async(t,n)=>{if(a==R&&!tt)if(n||t){const a=e||2==D||!!X;V++,a&&X++,await g(async()=>{lt(1),j++,await(a?Et(()=>vt(n??t)):(()=>{try{return vt(n??t)}finally{lt(0)}})())},()=>{a&&X--,--V||lt(0)}),V||await ft()}else 2==D?Y=a:await pt()});a!=R||tt?o(t)||await r(t):E=t},c);await ht(n),a!=R||tt||await g(()=>pt(t),()=>{e=!1})}return Ot},St=async(t=!1)=>{Y=0,t||R++;const a=k,e=E;return E=void 0,await ht(g(async()=>{await a},async()=>{o(e)||await h(()=>r(e),c)})),Ot},mt=async t=>(1!=D&&await g(()=>g(async()=>{lt(2),Q++,await Et(()=>h(()=>n(rt,t),c))},()=>lt(0)),gt),Ot),At=async()=>{const a=++Z;return await Pt(!0),a!=Z||tt||(await mt(),a!=Z||tt||(x=t.addDidFinishTransactionListener(()=>{if(a==Z&&!tt){const t=ot();it(t)&&h(()=>mt(t))}}))),Ot},Pt=async(a=!1)=>{a||Z++;const e=x;return x=void 0,o(e)||t.delListener(e),Ot},Lt=()=>!o(x),bt=async(t=!1)=>{const[a,e]=t?[Pt,St]:[St,Pt];return await g(()=>a(),async()=>{await e()}),Ot},Et=async(...t)=>{let a,e=!1;const n=v(n=>d(t)?n():A(U(I,b),...S(t,(s,r)=>{const o=r==l(t)-1;return[async()=>{let t;z=v(a=>t=a),await g(async()=>{try{await h(s,c)}catch(t){e||(e=!0,a=t)}o&&n()},()=>{z=void 0,t()})},o?n:void 0,at]})));if(await(async()=>{if(!U(H,b)){W(H,b,1);const t=U(I,b);let a=0;await g(async()=>{for(;a<l(t);){const e=t[a++];e[2]=void 0,await e[0]()}},()=>{m(t,a),W(H,b,0),dt()})}})(),await n,e)throw a;return Ot},Ot={load:pt,startAutoLoad:_t,stopAutoLoad:St,isAutoLoading:()=>!o(E),save:mt,startAutoSave:At,stopAutoSave:Pt,isAutoSaving:Lt,startAutoPersisting:async(t,a=!1)=>{const[e,n,s,r]=a?[At,_t,Pt,St]:[_t,At,St,Pt],o=e(t),i=a?Z:R;await o;const c=n(t),y=a?R:Z;try{await c}catch(t){throw y==(a?R:Z)&&await p(r),i==(a?Z:R)&&await p(s),t}return Ot},stopAutoPersisting:bt,getStatus:()=>D,addStatusListener:t=>yt(t,nt),delListener:a=>(ut(a),t),schedule:Et,getStore:()=>t,getStats:()=>({loads:j,saves:Q}),...P,destroy:async()=>(o(M)&&(tt=1,M=(async()=>{const t=U(I,b),a=(e=([,t,a])=>a!=at||(t?.(),!1),t.filter(e));var e;const n=z;m(t),A(t,...a),await g(()=>g(()=>g(bt,()=>n),()=>et?.()),()=>{const t=(U(K,b)??1)-1;W(K,b,t||void 0),dt()})})()),await M,Ot)};return O(Ot)},R="/store",V=(t,e,n,s)=>{const{host:r,room:i}=e.partySocketOptions,{storeProtocol:c="https",storePath:u=R,messagePrefix:v=a}={...w(n)?{storeProtocol:n}:n},f=c+"://"+r+"/parties/"+e.name+"/"+i+u,p=async t=>{const a=await fetch(f,{...t?{method:"PUT",body:(e=t,M(e,(t,a)=>a instanceof Map?x([...a]):a))}:{},mode:"cors",cache:"no-store"});var e;if(!a.ok)throw a;const n=await a.text();return d(n)?void 0:z(n)};return Q(t,p,async(t,a)=>{var n;a?e.send(v+"s"+(w(n=a)?n:M(n,(t,a)=>o(a)?"":a))):await p(t())},t=>((t,a,e)=>(t.addEventListener(a,e),()=>t.removeEventListener(a,e)))(e,"message",a=>{h(async()=>await y(((t,a)=>{const e=l(t);return w(a)&&l(a)>e&&((t,a)=>t.startsWith(a))(a,t)?(()=>{try{return[a[e],(t=a,n=e+1,r=t.slice(n,s),D(z(r)))]}catch{return}var t,n,s,r})():void 0})(v,a.data),async([a,e])=>{"s"==a&&await t(void 0,e)}),s)}),t=>t(),s,1,{getConnection:()=>e})};export{V as createPartyKitPersister};
@@ -1 +1 @@
1
- const t=t=>typeof t,a="",e=t(a),n=Promise,s=t=>(a,e,n)=>t(a)?n?.():e(a),r=t=>null==t,o=t=>void 0===t,i=t=>null===t,c=s(r),y=s(o),w=a=>t(a)==e,u=t=>Array.isArray(t),l=t=>t.length,d=t=>0==l(t),v=t=>new n(t),f=(t,e)=>{throw((t,e)=>Error("tinybase:"+t+(o(e)?a:":"+e)))(t,e)},h=async(t,a)=>{try{return await t()}catch(t){a?.(t)}},p=async(t,a)=>{try{return await t()}finally{await a()}},g=(t,a)=>t.forEach(a),_=(t,a)=>t.map(a),S=(t,a=l(t))=>t.splice(0,a),m=(t,...a)=>t.push(...a),A=Object,P=t=>A.getPrototypeOf(t),L=t=>!r(t)&&c(P(t),t=>t==A.prototype||r(P(t)),()=>!0),b=A.keys,E=A.freeze,O=(t,a,e)=>(A.defineProperty(t,a,{configurable:!0,enumerable:!0,value:e,writable:!0}),e),k=(t=[])=>{const a=A.create(null);return g(t,([t,e])=>O(a,t,e)),a},x=t=>L(t)&&0==(t=>l(b(t)))(t),C=JSON.stringify,M=JSON.parse,z=t=>""===t?void 0:u(t)?_(t,z):L(t)?((t,a)=>{const e=k();return((t,a)=>{g(b(t),e=>a(t[e],e))})(t,(t,n)=>O(e,n,a(t,n))),e})(t,z):t,D=t=>o(t)||0==(t=>t?.size??0)(t),J=(t,a)=>t?.forEach(a),N=(t,a)=>t?.delete(a),T=Map,j=t=>new T(t),F=(t,a)=>t?.get(a),U=(t,a,e)=>o(e)?(N(t,a),t):t?.set(a,e),W=(t,a,e,n)=>{let s=F(t,a);var r,o;return r=t,o=a,r?.has(o)?n?.(s):U(t,a,s=e()),s},$=(t,a,e,n,s=0)=>y((e?W:F)(t,a[s],s>l(a)-2?e:j),r=>{if(s>l(a)-2)return n?.(r)&&U(t,a[s]),r;const o=$(r,a,e,n,s+1);return D(r)&&U(t,a[s]),o}),q=/^\d+$/,B=t=>new Set(u(t)||o(t)?t:[t]),G=j(),H=j(),I=j(),K=(t,e,n,s,r,c,w,A={},P=0,L=[])=>{let b,O,k,C,M,z=0,T=0,K=0,Q=0,R=0,V=0,X=0,Y=0,Z=0;const tt={},at=A.destroy;W(G,L,()=>0),W(H,L,()=>[]),U(I,L,(F(I,L)??0)+1);const et=j(),[nt,st,rt,ot,it]=((t=1,a,e)=>1!=t&&a.isMergeable()?[1,a.__[1],()=>a.__[2](!e),([[t],[a]])=>!x(t)||!x(a),a.setDefaultContent]:2!=t?[0,a._[7],a._[8],([t,a])=>!x(t)||!x(a),a.setContent]:f(0))(w,t,P),[ct,yt,wt]=(t=>{let e;const[n,s]=(()=>{const t=[];let e=0;return[n=>(n?t.shift():null)??a+e++,a=>{q.test(a)&&l(t)<1e3&&m(t,a)}]})(),r=j(),o=(t,n,s,o)=>{let c,y=!1;if(g(((t,e=[a])=>{const n=[],s=(t,a)=>a==l(e)?m(n,t):i(e[a])?J(t,t=>s(t,a+1)):g([e[a],null],e=>s(F(t,e),a+1));return s(t,0),n})(n,s),a=>J(a,a=>{const n=()=>F(r,a)[0](e,...s??[],...o);t?(t=>{try{return t()}catch(t){(t=>{y||(c=t),y=!0})?.(t)}})(n):n()})),y)throw c};return[(s,o,i,c=[],y=()=>[])=>{e??=t();const w=n(1);var u,l;return U(r,w,[s,o,i,c,y]),u=$(o,i??[a],B),l=w,u?.add(l),w},(t,a,...e)=>o(!1,t,a,e),t=>y(F(r,t),([,e,n])=>($(e,n??[a],void 0,a=>(N(a,t),D(a)?1:0)),U(r,t),s(t),n)),t=>y(F(r,t),([t,,a=[],n,s])=>{const r=(...o)=>{const c=l(o);c==l(a)?t(e,...o,...s(o)):i(a[c])?g(n[c]?.(...o)??[],t=>r(...o,t)):r(...o,a[c])};r()}),(t,a,...e)=>o(!0,t,a,e)]})(()=>Et),ut=t=>{t!=z&&(z=t,yt(et,void 0,z))},lt=()=>{F(I,L)||F(G,L)||!d(F(H,L)??[])||(U(G,L),U(H,L),U(I,L))},dt=a=>{(nt&&u(a?.[0])?1===a?.[2]?t.__[4]:t.__[3]:1===a?.[2]?t._[10]:t._[9])(a)},vt=async()=>{Pt()&&t.__?.[0]?.()&&await St()},ft=t=>p(()=>O=t,()=>{O==t&&(O=void 0)}),ht=async t=>(2!=z&&(await p(async()=>{ut(1),T++,await bt(()=>h(async()=>{const a=await e();u(a)?dt(a):o(a)&&t?it(t):o(a)||f(1,a)},a=>{c?.(a),t&&it(t)}))},()=>ut(0)),await vt()),Et),pt=async()=>{const t=X;X=0,t&&t==Q&&!Z&&(2==z?X=t:await ht())},gt=async t=>{const a=++Q;let e=!0;if(await _t(!0),a==Q&&!Z){const n=h(async()=>{const t=await s(async(t,n)=>{if(a==Q&&!Z)if(n||t){const a=e||2==z||!!V;R++,a&&V++,await p(async()=>{ut(1),T++,await(a?bt(()=>dt(n??t)):(()=>{try{return dt(n??t)}finally{ut(0)}})())},()=>{a&&V--,--R||ut(0)}),R||await vt()}else 2==z?X=a:await ht()});a!=Q||Z?o(t)||await r(t):b=t},c);await ft(n),a!=Q||Z||await p(()=>ht(t),()=>{e=!1})}return Et},_t=async(t=!1)=>{X=0,t||Q++;const a=O,e=b;return b=void 0,await ft(p(async()=>{await a},async()=>{o(e)||await h(()=>r(e),c)})),Et},St=async t=>(1!=z&&await p(()=>p(async()=>{ut(2),K++,await bt(()=>h(()=>n(st,t),c))},()=>ut(0)),pt),Et),mt=async()=>{const a=++Y;return await At(!0),a!=Y||Z||(await St(),a!=Y||Z||(k=t.addDidFinishTransactionListener(()=>{if(a==Y&&!Z){const t=rt();ot(t)&&h(()=>St(t))}}))),Et},At=async(a=!1)=>{a||Y++;const e=k;return k=void 0,o(e)||t.delListener(e),Et},Pt=()=>!o(k),Lt=async(t=!1)=>{const[a,e]=t?[At,_t]:[_t,At];return await p(()=>a(),async()=>{await e()}),Et},bt=async(...t)=>{let a,e=!1;const n=v(n=>d(t)?n():m(F(H,L),..._(t,(s,r)=>{const o=r==l(t)-1;return[async()=>{let t;M=v(a=>t=a),await p(async()=>{try{await h(s,c)}catch(t){e||(e=!0,a=t)}o&&n()},()=>{M=void 0,t()})},o?n:void 0,tt]})));if(await(async()=>{if(!F(G,L)){U(G,L,1);const t=F(H,L);let a=0;await p(async()=>{for(;a<l(t);){const e=t[a++];e[2]=void 0,await e[0]()}},()=>{S(t,a),U(G,L,0),lt()})}})(),await n,e)throw a;return Et},Et={load:ht,startAutoLoad:gt,stopAutoLoad:_t,isAutoLoading:()=>!o(b),save:St,startAutoSave:mt,stopAutoSave:At,isAutoSaving:Pt,startAutoPersisting:async(t,a=!1)=>{const[e,n]=a?[mt,gt]:[gt,mt];return await e(t),await n(t),Et},stopAutoPersisting:Lt,getStatus:()=>z,addStatusListener:t=>ct(t,et),delListener:a=>(wt(a),t),schedule:bt,getStore:()=>t,getStats:()=>({loads:T,saves:K}),...A,destroy:async()=>(o(C)&&(Z=1,C=(async()=>{const t=F(H,L),a=(e=([,t,a])=>a!=tt||(t?.(),!1),t.filter(e));var e;const n=M;S(t),m(t,...a),await p(()=>p(()=>p(Lt,()=>n),()=>at?.()),()=>{const t=(F(I,L)??1)-1;U(I,L,t||void 0),lt()})})()),await C,Et)};return E(Et)},Q="/store",R=(t,e,n,s)=>{const{host:r,room:i}=e.partySocketOptions,{storeProtocol:c="https",storePath:u=Q,messagePrefix:v=a}={...w(n)?{storeProtocol:n}:n},f=c+"://"+r+"/parties/"+e.name+"/"+i+u,p=async t=>{const a=await fetch(f,{...t?{method:"PUT",body:(e=t,C(e,(t,a)=>a instanceof Map?k([...a]):a))}:{},mode:"cors",cache:"no-store"});var e;if(!a.ok)throw a;const n=await a.text();return d(n)?void 0:M(n)};return K(t,p,async(t,a)=>{var n;a?e.send(v+"s"+(w(n=a)?n:C(n,(t,a)=>o(a)?"":a))):await p(t())},t=>((t,a,e)=>(t.addEventListener(a,e),()=>t.removeEventListener(a,e)))(e,"message",a=>{h(async()=>await y(((t,a)=>{const e=l(t);return w(a)&&l(a)>e&&((t,a)=>t.startsWith(a))(a,t)?(()=>{try{return[a[e],(t=a,n=e+1,r=t.slice(n,s),z(M(r)))]}catch{return}var t,n,s,r})():void 0})(v,a.data),async([a,e])=>{"s"==a&&await t(void 0,e)}),s)}),t=>t(),s,1,{getConnection:()=>e})};export{R as createPartyKitPersister};
1
+ const t=t=>typeof t,a="",e=t(a),n=Promise,s=t=>(a,e,n)=>t(a)?n?.():e(a),r=t=>null==t,o=t=>void 0===t,i=t=>null===t,c=s(r),y=s(o),w=a=>t(a)==e,u=t=>Array.isArray(t),l=t=>t.length,d=t=>0==l(t),v=t=>new n(t),f=(t,e)=>{throw((t,e)=>Error("tinybase:"+t+(o(e)?a:":"+e)))(t,e)},h=async(t,a)=>{try{return await t()}catch(t){a?.(t)}},p=(t,a)=>h(t,t=>{h(()=>a?.(t))}),g=async(t,a)=>{try{return await t()}finally{await a()}},_=(t,a)=>t.forEach(a),S=(t,a)=>t.map(a),m=(t,a=l(t))=>t.splice(0,a),A=(t,...a)=>t.push(...a),P=Object,L=t=>P.getPrototypeOf(t),b=t=>!r(t)&&c(L(t),t=>t==P.prototype||r(L(t)),()=>!0),E=P.keys,O=P.freeze,k=(t,a,e)=>(P.defineProperty(t,a,{configurable:!0,enumerable:!0,value:e,writable:!0}),e),x=(t=[])=>{const a=P.create(null);return _(t,([t,e])=>k(a,t,e)),a},C=t=>b(t)&&0==(t=>l(E(t)))(t),M=JSON.stringify,z=JSON.parse,D=t=>""===t?void 0:u(t)?S(t,D):b(t)?((t,a)=>{const e=x();return((t,a)=>{_(E(t),e=>a(t[e],e))})(t,(t,n)=>k(e,n,a(t,n))),e})(t,D):t,J=t=>o(t)||0==(t=>t?.size??0)(t),N=(t,a)=>t?.forEach(a),T=(t,a)=>t?.delete(a),j=Map,F=t=>new j(t),U=(t,a)=>t?.get(a),W=(t,a,e)=>o(e)?(T(t,a),t):t?.set(a,e),$=(t,a,e,n)=>{let s=U(t,a);var r,o;return r=t,o=a,r?.has(o)?n?.(s):W(t,a,s=e()),s},q=(t,a,e,n,s=0)=>y((e?$:U)(t,a[s],s>l(a)-2?e:F),r=>{if(s>l(a)-2)return n?.(r)&&W(t,a[s]),r;const o=q(r,a,e,n,s+1);return J(r)&&W(t,a[s]),o}),B=/^\d+$/,G=t=>new Set(u(t)||o(t)?t:[t]),H=F(),I=F(),K=F(),Q=(t,e,n,s,r,c,w,P={},L=0,b=[])=>{let E,k,x,M,z,D=0,j=0,Q=0,R=0,V=0,X=0,Y=0,Z=0,tt=0;const at={},et=P.destroy;$(H,b,()=>0),$(I,b,()=>[]),W(K,b,(U(K,b)??0)+1);const nt=F(),[st,rt,ot,it,ct]=((t=1,a,e)=>1!=t&&a.isMergeable()?[1,a.__[1],()=>a.__[2](!e),([[t],[a]])=>!C(t)||!C(a),a.setDefaultContent]:2!=t?[0,a._[7],a._[8],([t,a])=>!C(t)||!C(a),a.setContent]:f(0))(w,t,L),[yt,wt,ut]=(t=>{let e;const[n,s]=(()=>{const t=[];let e=0;return[n=>(n?t.shift():null)??a+e++,a=>{B.test(a)&&l(t)<1e3&&A(t,a)}]})(),r=F(),o=(t,n,s,o)=>{let c,y=!1;if(_(((t,e=[a])=>{const n=[],s=(t,a)=>a==l(e)?A(n,t):i(e[a])?N(t,t=>s(t,a+1)):_([e[a],null],e=>s(U(t,e),a+1));return s(t,0),n})(n,s),a=>N(a,a=>{const n=()=>U(r,a)[0](e,...s??[],...o);t?(t=>{try{return t()}catch(t){(t=>{y||(c=t),y=!0})?.(t)}})(n):n()})),y)throw c};return[(s,o,i,c=[],y=()=>[])=>{e??=t();const w=n(1);var u,l;return W(r,w,[s,o,i,c,y]),u=q(o,i??[a],G),l=w,u?.add(l),w},(t,a,...e)=>o(!1,t,a,e),t=>y(U(r,t),([,e,n])=>(q(e,n??[a],void 0,a=>(T(a,t),J(a)?1:0)),W(r,t),s(t),n)),t=>y(U(r,t),([t,,a=[],n,s])=>{const r=(...o)=>{const c=l(o);c==l(a)?t(e,...o,...s(o)):i(a[c])?_(n[c]?.(...o)??[],t=>r(...o,t)):r(...o,a[c])};r()}),(t,a,...e)=>o(!0,t,a,e)]})(()=>Ot),lt=t=>{t!=D&&(D=t,wt(nt,void 0,D))},dt=()=>{U(K,b)||U(H,b)||!d(U(I,b)??[])||(W(H,b),W(I,b),W(K,b))},vt=a=>{(st&&u(a?.[0])?1===a?.[2]?t.__[4]:t.__[3]:1===a?.[2]?t._[10]:t._[9])(a)},ft=async()=>{Lt()&&t.__?.[0]?.()&&await mt()},ht=t=>g(()=>k=t,()=>{k==t&&(k=void 0)}),pt=async t=>(2!=D&&(await g(async()=>{lt(1),j++,await Et(()=>h(async()=>{const a=await e();u(a)?vt(a):o(a)&&t?ct(t):o(a)||f(1,a)},a=>{c?.(a),t&&ct(t)}))},()=>lt(0)),await ft()),Ot),gt=async()=>{const t=Y;Y=0,t&&t==R&&!tt&&(2==D?Y=t:await pt())},_t=async t=>{const a=++R;let e=!0;if(await St(!0),a==R&&!tt){const n=h(async()=>{const t=await s(async(t,n)=>{if(a==R&&!tt)if(n||t){const a=e||2==D||!!X;V++,a&&X++,await g(async()=>{lt(1),j++,await(a?Et(()=>vt(n??t)):(()=>{try{return vt(n??t)}finally{lt(0)}})())},()=>{a&&X--,--V||lt(0)}),V||await ft()}else 2==D?Y=a:await pt()});a!=R||tt?o(t)||await r(t):E=t},c);await ht(n),a!=R||tt||await g(()=>pt(t),()=>{e=!1})}return Ot},St=async(t=!1)=>{Y=0,t||R++;const a=k,e=E;return E=void 0,await ht(g(async()=>{await a},async()=>{o(e)||await h(()=>r(e),c)})),Ot},mt=async t=>(1!=D&&await g(()=>g(async()=>{lt(2),Q++,await Et(()=>h(()=>n(rt,t),c))},()=>lt(0)),gt),Ot),At=async()=>{const a=++Z;return await Pt(!0),a!=Z||tt||(await mt(),a!=Z||tt||(x=t.addDidFinishTransactionListener(()=>{if(a==Z&&!tt){const t=ot();it(t)&&h(()=>mt(t))}}))),Ot},Pt=async(a=!1)=>{a||Z++;const e=x;return x=void 0,o(e)||t.delListener(e),Ot},Lt=()=>!o(x),bt=async(t=!1)=>{const[a,e]=t?[Pt,St]:[St,Pt];return await g(()=>a(),async()=>{await e()}),Ot},Et=async(...t)=>{let a,e=!1;const n=v(n=>d(t)?n():A(U(I,b),...S(t,(s,r)=>{const o=r==l(t)-1;return[async()=>{let t;z=v(a=>t=a),await g(async()=>{try{await h(s,c)}catch(t){e||(e=!0,a=t)}o&&n()},()=>{z=void 0,t()})},o?n:void 0,at]})));if(await(async()=>{if(!U(H,b)){W(H,b,1);const t=U(I,b);let a=0;await g(async()=>{for(;a<l(t);){const e=t[a++];e[2]=void 0,await e[0]()}},()=>{m(t,a),W(H,b,0),dt()})}})(),await n,e)throw a;return Ot},Ot={load:pt,startAutoLoad:_t,stopAutoLoad:St,isAutoLoading:()=>!o(E),save:mt,startAutoSave:At,stopAutoSave:Pt,isAutoSaving:Lt,startAutoPersisting:async(t,a=!1)=>{const[e,n,s,r]=a?[At,_t,Pt,St]:[_t,At,St,Pt],o=e(t),i=a?Z:R;await o;const c=n(t),y=a?R:Z;try{await c}catch(t){throw y==(a?R:Z)&&await p(r),i==(a?Z:R)&&await p(s),t}return Ot},stopAutoPersisting:bt,getStatus:()=>D,addStatusListener:t=>yt(t,nt),delListener:a=>(ut(a),t),schedule:Et,getStore:()=>t,getStats:()=>({loads:j,saves:Q}),...P,destroy:async()=>(o(M)&&(tt=1,M=(async()=>{const t=U(I,b),a=(e=([,t,a])=>a!=at||(t?.(),!1),t.filter(e));var e;const n=z;m(t),A(t,...a),await g(()=>g(()=>g(bt,()=>n),()=>et?.()),()=>{const t=(U(K,b)??1)-1;W(K,b,t||void 0),dt()})})()),await M,Ot)};return O(Ot)},R="/store",V=(t,e,n,s)=>{const{host:r,room:i}=e.partySocketOptions,{storeProtocol:c="https",storePath:u=R,messagePrefix:v=a}={...w(n)?{storeProtocol:n}:n},f=c+"://"+r+"/parties/"+e.name+"/"+i+u,p=async t=>{const a=await fetch(f,{...t?{method:"PUT",body:(e=t,M(e,(t,a)=>a instanceof Map?x([...a]):a))}:{},mode:"cors",cache:"no-store"});var e;if(!a.ok)throw a;const n=await a.text();return d(n)?void 0:z(n)};return Q(t,p,async(t,a)=>{var n;a?e.send(v+"s"+(w(n=a)?n:M(n,(t,a)=>o(a)?"":a))):await p(t())},t=>((t,a,e)=>(t.addEventListener(a,e),()=>t.removeEventListener(a,e)))(e,"message",a=>{h(async()=>await y(((t,a)=>{const e=l(t);return w(a)&&l(a)>e&&((t,a)=>t.startsWith(a))(a,t)?(()=>{try{return[a[e],(t=a,n=e+1,r=t.slice(n,s),D(z(r)))]}catch{return}var t,n,s,r})():void 0})(v,a.data),async([a,e])=>{"s"==a&&await t(void 0,e)}),s)}),t=>t(),s,1,{getConnection:()=>e})};export{V as createPartyKitPersister};
@@ -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=()=>{},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)},$=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},R=(a,t)=>$(a,a=>{$(()=>t?.(a))}),h=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",$a=Aa+" "+Ta,Ra=_a+"*"+Ta,ha="CREATE ",Ia=ha+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,_,A,O,R,g=0,p=0,P=0,F=0,M=0,G=0,H=0,W=0,Y=0;const x={},B=o.destroy;ua(nt,l,()=>0),ua(et,l,()=>[]),la(st,l,(ra(st,l)??0)+1);const X=ia(),[q,J,K,z,Q]=((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),[Z,aa,ta]=(a=>{let t;const[e,s]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{tt.test(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)]})(()=>Ta),na=a=>{a!=g&&(g=a,aa(X,void 0,g))},ea=()=>{ra(st,l)||ra(nt,l)||!v(ra(et,l)??[])||(la(nt,l),la(et,l),la(st,l))},sa=t=>{(q&&N(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ca=async()=>{Aa()&&a.__?.[0]?.()&&await Na()},oa=a=>h(()=>_=a,()=>{_==a&&(_=void 0)}),wa=async a=>(2!=g&&(await h(async()=>{na(1),p++,await Oa(()=>$(async()=>{const n=await t();N(n)?sa(n):u(n)&&a?Q(a):u(n)||T(1,n)},t=>{i?.(t),a&&Q(a)}))},()=>na(0)),await ca()),Ta),da=async()=>{const a=H;H=0,a&&a==F&&!Y&&(2==g?H=a:await wa())},Ea=async a=>{const t=++F;let n=!0;if(await _a(!0),t==F&&!Y){const e=$(async()=>{const a=await s(async(a,e)=>{if(t==F&&!Y)if(e||a){const t=n||2==g||!!G;M++,t&&G++,await h(async()=>{na(1),p++,await(t?Oa(()=>sa(e??a)):(()=>{try{return sa(e??a)}finally{na(0)}})())},()=>{t&&G--,--M||na(0)}),M||await ca()}else 2==g?H=t:await wa()});t!=F||Y?u(a)||await c(a):d=a},i);await oa(e),t!=F||Y||await h(()=>wa(a),()=>{n=!1})}return Ta},_a=async(a=!1)=>{H=0,a||F++;const t=_,n=d;return d=void 0,await oa(h(async()=>{await t},async()=>{u(n)||await $(()=>c(n),i)})),Ta},Na=async a=>(1!=g&&await h(()=>h(async()=>{na(2),P++,await Oa(()=>$(()=>e(J,a),i))},()=>na(0)),da),Ta),ma=async()=>{const t=++W;return await va(!0),t!=W||Y||(await Na(),t!=W||Y||(A=a.addDidFinishTransactionListener(()=>{if(t==W&&!Y){const a=K();z(a)&&$(()=>Na(a))}}))),Ta},va=async(t=!1)=>{t||W++;const n=A;return A=void 0,u(n)||a.delListener(n),Ta},Aa=()=>!u(A),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=f(e=>v(a)?e():b(ra(et,l),...L(a,(s,c)=>{const r=c==m(a)-1;return[async()=>{let a;R=f(t=>a=t),await h(async()=>{try{await $(s,i)}catch(a){n||(n=!0,t=a)}r&&e()},()=>{R=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 h(async()=>{for(;t<m(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{D(a,t),la(nt,l,0),ea()})}})(),await e,n)throw t;return Ta},Ta={load:wa,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:()=>g,addStatusListener:a=>Z(a,X),delListener:t=>(ta(t),a),schedule:Oa,getStore:()=>a,getStats:()=>({loads:p,saves:P}),...o,destroy:async()=>(u(O)&&(Y=1,O=(async()=>{const a=ra(et,l),t=S(a,([,a,t])=>t!=x||(a?.(),!1)),n=R;D(a),b(a,...t),await h(()=>h(()=>h(fa,()=>n),()=>B?.()),()=>{const a=(ra(st,l)??1)-1;la(st,l,a||void 0),ea()})})()),await O,Ta)};return j(Ta)},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(Ra+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 $=P(T);if(u(A)&&!_&&l&&N==c&&v($)&&p(y,a))return await E("DROP "+ma+Da(a)),la(y,a),void la(d,a);const R=ra(y,a),h=Fa(S(P(R),a=>a==n||f(a)));if(!v($))if(p(y,a)){if(await O(L([n,...$],async t=>{U(h,t)||(await E(Oa+Da(a)+"ADD"+Da(t)+i),ka(R,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($,a=>e+Da(a)+i))});`),la(y,a,Fa([n,...$])),la(d,a,Fa([n]));if(await O([...!_&&w?L(P(h),async t=>{t!=n&&(await E(Oa+Da(a)+"DROP"+Da(t)),U(R,t))}):[]]),_)u(s)?u(A)&&await E($a+Da(a)+Ca(a,N)):await O(K(s,async(t,e)=>{if(u(t))await E($a+Da(a)+Ca(a,N)+`AND(${Da(n)}=$1)`,[e]);else if(!v($)){const s=S(Y(t),f);v(s)||await r(E,a,n,s,{[e]:L(s,a=>o?o(t[a]):t[a])},R)}}));else if(v($))u(A)&&p(y,a)&&await E($a+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,R),await E($a+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 h(t,()=>{E=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await $(()=>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,$,R)=>{const[h,I,g,D]=it(t,_,N,A,f,T,$,R),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 h();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 h(),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=ia(),yt=async(a,e,s,i,r)=>((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,f]=(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);!m&&a.isMergeable()&&T(0);const I=n+sa(ta(A)),S=t+"_"+I,D=y??s,F=async(a,n,e="",s="")=>{const c=ba(t,a,I);return await N(ha+ga+La+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 "+La+e+"()"),t),U=a=>`PERFORM pg_notify('${S}',${a});`,M=(a,t)=>m?c:2===t?M(a,0)+" OR "+M(a,1):Pa(ra(A[0],a)?.[2]??c,0==t?"NEW":"OLD"),G=(a,n)=>O(L([va,Aa,fa],(e,s)=>k(ga,ba(t,"d",I,a,e),`AFTER ${e} ON${Da(a)}FOR EACH ROW WHEN(${M(a,s)})`,n))),H=async a=>{v(a)||await N(`DROP FUNCTION IF EXISTS${g(a,",")}CASCADE`)},W=(a,t)=>{ra(a,I)===t&&(la(a,I),C(a)&&ra(ut,D)===a&&la(ut,D))},Y=async()=>{const a=ua(ut,D,()=>ia()),n=ra(a,I);if(n)return await n[1],n[0]?(n[0]++,n):(await $(()=>n[4]),await Y());const e=[],s=[1,void 0,e];la(a,I,s),s[1]=(async()=>{const a=await F("c",`FOR row IN SELECT object_identity FROM pg_event_trigger_ddl_commands()${Na} command_tag='${Ia}' LOOP ${U("'c:'||SPLIT_PART(row.object_identity,'.',2)")}END LOOP;`,"event_","DECLARE row record;");b(e,a),await k("EVENT ",ba(t,"c",I),`ON ddl_command_end WHEN TAG IN('${Ia}')`,a);const n=await F("d",U("'d:'||TG_TABLE_NAME")+"RETURN NULL;");b(e,n),s[3]=n,await O(L(P(f),async a=>(await N(Ia+` IF NOT EXISTS${Da(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 $(()=>s[4]),t}return s},j=async a=>{if(0==--a[0]){const t=ra(ut,D);a[4]=h(()=>H(a[2]),()=>W(t,a)),await a[4]}};return(m?ot:wt)(a,N,async a=>{const t=await Y();try{return[await i(S,n=>{R(()=>{return E((e=n,s=lt,e?.match(s)),async([,n,e])=>{p(f,e)&&("c:"==n&&await G(e,t[3]),await a())});var e,s},w)}),t]}catch(a){throw await R(()=>j(t),w),a}},async([a,t])=>{await h(()=>r(a),()=>j(t))},w,l,u,A,P(f),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,async(a,t=[])=>(await e.query(a,t)).rows,(a,t)=>e.listen(a,t),a=>$(a,r),i,r,A,3,e,"getPglite");export{yt as createPglitePersister};
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,A=a=>0==m(a),v=(a,t)=>a.test(t),f=()=>{},O=a=>new r(a),T=async a=>r.all(a),$=(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)}},R=(a,t)=>h(a,a=>{h(()=>t?.(a))}),I=async(a,t)=>{try{return await a()}finally{await t()}},g=(a,t)=>a.forEach(t),L=(a,t="")=>a.join(t),S=(a,t)=>a.map(t),D=(a,t)=>a.filter(t),b=(a,t=m(a))=>a.splice(0,t),p=(a,...t)=>a.push(...t),C=(a,t)=>a?.has(t)??!1,P=a=>u(a)||0==(a=>a?.size??0)(a),F=a=>[...a?.values()??[]],k=a=>a.clear(),U=(a,t)=>a?.forEach(t),M=(a,t)=>a?.delete(t),G=Object,H=a=>G.getPrototypeOf(a),W=G.entries,Y=a=>!l(a)&&d(H(a),a=>a==G.prototype||l(H(a)),()=>!0),j=G.keys,x=G.freeze,B=(...a)=>G.assign(G.create(null),...a),X=(a,t,n)=>(G.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),q=(a=[])=>{const t=G.create(null);return g(a,([a,n])=>X(t,a,n)),t},J=(a,t)=>(delete a[t],a),K=(a,t)=>g(j(a),n=>t(a[n],n)),z=(a,t)=>S(W(a),([a,n])=>t(n,a)),Q=(a,t)=>{const n=q();return K(a,(a,e)=>X(n,e,t(a,e))),n},V=a=>m(j(a)),Z=a=>Y(a)&&0==V(a),aa=JSON.stringify,ta=JSON.parse,na=a=>aa(a,(a,t)=>u(t)?"":t),ea=a=>""===a?void 0:N(a)?S(a,ea):Y(a)?Q(a,ea):a,sa=new w.TextEncoder,ca=a=>{let t=2166136261;return g(sa.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0},ia=Map,ra=a=>new ia(a),oa=(a,t)=>a?.get(t),wa=(a,t)=>U(a,(a,n)=>t(n,a)),la=(a,t)=>{const n=[];return wa(a,(a,e)=>p(n,t(e,a))),n},ua=(a,t,n)=>u(n)?(M(a,t),a):a?.set(t,n),ya=(a,t,n,e)=>{let s=oa(a,t);return C(a,t)?e?.(s):ua(a,t,s=n()),s},da=(a,t,n,e,s=0)=>E((n?ya:oa)(a,t[s],s>m(t)-2?n:ra),c=>{if(s>m(t)-2)return e?.(c)&&ua(a,t[s]),c;const i=da(c,t,n,e,s+1);return P(c)&&ua(a,t[s]),i}),Ea="_",_a="_id",Na="SELECT",ma="WHERE",Aa="TABLE",va="INSERT",fa="DELETE",Oa="UPDATE",Ta="ALTER "+Aa,$a="FROM",ha=fa+" "+$a,Ra=Na+"*"+$a,Ia="CREATE ",ga=Ia+Aa,La="OR REPLACE ",Sa="FUNCTION",Da=/\$tableName/g,ba=a=>L(S(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${i(a,/"/g,'""')}"`),"."),pa=(...a)=>ba(L(a,"_")),Ca=(a,t=[1])=>L(S(a,()=>"$"+t[0]++),e),Pa=(a,t=c)=>ma+`(${Fa(t,ba(a))})`,Fa=(a,t)=>i(a,Da,t),ka=a=>new Set(N(a)||u(a)?a:[a]),Ua=(a,t)=>a?.add(t),Ma="ColumnName",Ga="store",Ha="json",Wa=Ga+"TableName",Ya=Ga+"Id"+Ma,ja=Ga+Ma,xa="autoLoadIntervalSeconds",Ba="rowId"+Ma,Xa="tableId",qa="tableName",Ja="deleteEmptyColumns",Ka="deleteEmptyTable",za="condition",Qa={mode:Ha,[xa]:1},Va={load:0,save:0,[qa]:t+"_values"},Za=a=>N(a)?a:void 0,at=a=>!0===a||N(a),tt=(a,t,n,e,s)=>{const c=ra();return K(a,(a,i)=>{const r=(l=B(t,_(a)?{[n]:a}:a),o=G.values(l),w=V(t),o.slice(0,w));var o,w,l;y(r[0])||e(i,r[0])||(s(i,r[0]),ua(c,i,r))}),c},nt=/^\d+$/,et=ra(),st=ra(),ct=ra(),it=(a,t,e,s,c,i,r,o={},w=0,l=[])=>{let d,_,f,T,L,C=0,F=0,k=0,G=0,H=0,W=0,Y=0,j=0,B=0;const X={},q=o.destroy;ya(et,l,()=>0),ya(st,l,()=>[]),ua(ct,l,(oa(ct,l)??0)+1);const J=ra(),[K,z,Q,V,aa]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!Z(a)||!Z(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!Z(a)||!Z(t),t.setContent]:$(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=>{v(nt,t)&&m(a)<1e3&&p(a,t)}]})(),c=ra(),i=(a,e,s,i)=>{let r,o=!1;if(g(((a,t=[n])=>{const e=[],s=(a,n)=>n==m(t)?p(e,a):y(t[n])?U(a,a=>s(a,n+1)):g([t[n],null],t=>s(oa(a,t),n+1));return s(a,0),e})(e,s),n=>U(n,n=>{const e=()=>oa(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 ua(c,l,[s,i,r,o,w]),Ua(da(i,r??[n],ka),l),l},(a,t,...n)=>i(!1,a,t,n),a=>E(oa(c,a),([,t,e])=>(da(t,e??[n],void 0,t=>(M(t,a),P(t)?1:0)),ua(c,a),s(a),e)),a=>E(oa(c,a),([a,,n=[],e,s])=>{const c=(...i)=>{const r=m(i);r==m(n)?a(t,...i,...s(i)):y(n[r])?g(e[r]?.(...i)??[],a=>c(...i,a)):c(...i,n[r])};c()}),(a,t,...n)=>i(!0,a,t,n)]})(()=>ha),sa=a=>{a!=C&&(C=a,na(J,void 0,C))},ca=()=>{oa(ct,l)||oa(et,l)||!A(oa(st,l)??[])||(ua(et,l),ua(st,l),ua(ct,l))},ia=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 Aa()},la=a=>I(()=>_=a,()=>{_==a&&(_=void 0)}),Ea=async a=>(2!=C&&(await I(async()=>{sa(1),F++,await $a(()=>h(async()=>{const n=await t();N(n)?ia(n):u(n)&&a?aa(a):u(n)||$(1,n)},t=>{i?.(t),a&&aa(a)}))},()=>sa(0)),await wa()),ha),_a=async()=>{const a=Y;Y=0,a&&a==G&&!B&&(2==C?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==C||!!W;H++,t&&W++,await I(async()=>{sa(1),F++,await(t?$a(()=>ia(e??a)):(()=>{try{return ia(e??a)}finally{sa(0)}})())},()=>{t&&W--,--H||sa(0)}),H||await wa()}else 2==C?Y=t:await Ea()});t!=G||B?u(a)||await c(a):d=a},i);await la(e),t!=G||B||await I(()=>Ea(a),()=>{n=!1})}return ha},ma=async(a=!1)=>{Y=0,a||G++;const t=_,n=d;return d=void 0,await la(I(async()=>{await t},async()=>{u(n)||await h(()=>c(n),i)})),ha},Aa=async a=>(1!=C&&await I(()=>I(async()=>{sa(2),k++,await $a(()=>h(()=>e(z,a),i))},()=>sa(0)),_a),ha),va=async()=>{const t=++j;return await fa(!0),t!=j||B||(await Aa(),t!=j||B||(f=a.addDidFinishTransactionListener(()=>{if(t==j&&!B){const a=Q();V(a)&&h(()=>Aa(a))}}))),ha},fa=async(t=!1)=>{t||j++;const n=f;return f=void 0,u(n)||a.delListener(n),ha},Oa=()=>!u(f),Ta=async(a=!1)=>{const[t,n]=a?[fa,ma]:[ma,fa];return await I(()=>t(),async()=>{await n()}),ha},$a=async(...a)=>{let t,n=!1;const e=O(e=>A(a)?e():p(oa(st,l),...S(a,(s,c)=>{const r=c==m(a)-1;return[async()=>{let a;L=O(t=>a=t),await I(async()=>{try{await h(s,i)}catch(a){n||(n=!0,t=a)}r&&e()},()=>{L=void 0,a()})},r?e:void 0,X]})));if(await(async()=>{if(!oa(et,l)){ua(et,l,1);const a=oa(st,l);let t=0;await I(async()=>{for(;t<m(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{b(a,t),ua(et,l,0),ca()})}})(),await e,n)throw t;return ha},ha={load:Ea,startAutoLoad:Na,stopAutoLoad:ma,isAutoLoading:()=>!u(d),save:Aa,startAutoSave:va,stopAutoSave:fa,isAutoSaving:Oa,startAutoPersisting:async(a,t=!1)=>{const[n,e,s,c]=t?[va,Na,fa,ma]:[Na,va,ma,fa],i=n(a),r=t?j:G;await i;const o=e(a),w=t?G:j;try{await o}catch(a){throw w==(t?G:j)&&await R(c),r==(t?j:G)&&await R(s),a}return ha},stopAutoPersisting:Ta,getStatus:()=>C,addStatusListener:a=>ta(a,J),delListener:t=>(ea(t),a),schedule:$a,getStore:()=>a,getStats:()=>({loads:F,saves:k}),...o,destroy:async()=>(u(T)&&(B=1,T=(async()=>{const a=oa(st,l),t=D(a,([,a,t])=>t!=X||(a?.(),!1)),n=L;b(a),p(a,...t),await I(()=>I(()=>I(Ta,()=>n),()=>q?.()),()=>{const a=(oa(ct,l)??1)-1;ua(ct,l,a||void 0),ca()})})()),await T,ha)};return x(ha)},rt=(a,n,s,i,r=ot,o,w,l)=>{const y=ra(),d=ra();let E=a;return[async()=>{k(y),k(d),g(await s(E,n),({tn:a,cn:t,uq:n})=>{Ua(ya(y,a,ka),t),n&&Ua(ya(d,a,ka),t)})},async(a,t,n,e)=>{const s=u(e)?void 0:ka(e);return((a,t)=>C(oa(y,a),t))(a,t)?q(D(S(await E(Ra+ba(a)+Pa(a,n)),a=>{const n=a[t],e=w?Q(J(a,t),w):J(a,t);return[n,u(s)?e:q(D(z(e,(a,t)=>[t,a]),([a])=>(a=>u(s)||C(s,a))(a)))]}),a=>!u(a[0])&&!Z(a[1]))):{}},async(a,n,s,w,l,_=!1,N=c,m)=>{const v=u(m)?void 0:ka(m),f=a=>u(v)||C(v,a),O=ka();K(s??{},a=>g(D(j(a??{}),f),a=>Ua(O,a)));const $=F(O);if(u(v)&&!_&&l&&N==c&&A($)&&C(y,a))return await E("DROP "+Aa+ba(a)),ua(y,a),void ua(d,a);const h=oa(y,a),R=ka(D(F(h),a=>a==n||f(a)));if(!A($))if(C(y,a)){if(await T(S([n,...$],async t=>{M(R,t)||(await E(Ta+ba(a)+"ADD"+ba(t)+i),Ua(h,t))})),r==ot&&!C(oa(d,a),n)){const e=t+"_pk_"+ca(aa([a,n]));await E("CREATE UNIQUE INDEX IF NOT EXISTS"+ba(e)+"ON"+ba(a)+`(${ba(n)})`),Ua(ya(d,a,ka),n)}}else await E(ga+ba(a)+`(${ba(n)}${i} PRIMARY KEY${L(S($,a=>e+ba(a)+i))});`),ua(y,a,ka([n,...$])),ua(d,a,ka([n]));if(await T([...!_&&w?S(F(R),async t=>{t!=n&&(await E(Ta+ba(a)+"DROP"+ba(t)),M(h,t))}):[]]),_)u(s)?u(v)&&await E(ha+ba(a)+Pa(a,N)):await T(z(s,async(t,e)=>{if(u(t))await E(ha+ba(a)+Pa(a,N)+`AND(${ba(n)}=$1)`,[e]);else if(!A($)){const s=D(j(t),f);A(s)||await r(E,a,n,s,{[e]:S(s,a=>o?o(t[a]):t[a])},h)}}));else if(A($))u(v)&&C(y,a)&&await E(ha+ba(a)+Pa(a,N));else{const t=D(F(oa(y,a)),a=>a!=n&&f(a)),e=q(),c=[];K(s??{},(a,n)=>{X(e,n,S(t,t=>o?o(a?.[t]):a?.[t])),p(c,n)}),await r(E,a,n,t,e,h),await E(ha+ba(a)+Pa(a,N)+`AND${ba(n)}NOT IN(${Ca(c)})`,c)}},async t=>{if(l)return await l(async a=>{const n=E;return E=a,await I(t,()=>{E=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await h(()=>a("ROLLBACK")),t}}]},ot=async(a,t,n,s,c)=>{const i=[1];await a(va+" INTO"+ba(t)+"("+((...a)=>L(S(a,ba),e))(n,...s)+")VALUES"+L(z(c,a=>"($"+i[0]+++","+Ca(a,i)+")"),e)+"ON CONFLICT("+ba(n)+`)DO ${Oa} SET`+L(S(s,a=>ba(a)+"=excluded."+ba(a)),e),z(c,(a,t)=>[t,...S(a,a=>a??null)]).flat())},wt=(a,t,n,e,s,c,i,[r,o,w],l,u,y,d,E,_,N,m,A)=>{const[v,f,O,T]=rt(t,l,u,E,_,void 0,void 0,A);return it(a,()=>T(async()=>{return await v(),a=(await f(r,o))[Ea]?.[w]??"null",ea(ta(a));var a}),a=>T(async()=>{await v(),await O(r,o,{[Ea]:{[w]:na(a()??null)}},!0,!0)}),n,e,s,i,{[d]:()=>y,destroy:c},0,y)},lt=(a,t,n,e,s,c,i,[r,o,[w,l,y,d,E]],_,N,m,A,v,f,O,$,h)=>{const[R,I,g,L]=rt(t,_,N,v,f,O,$,h),b=(a,t)=>T(la(o,async([n,e,s,c,i],r)=>{var o,w;t&&(o=a,w=r,!G.hasOwn(o,w))||await g(n,e,a[r],s,c,t,i)})),p=(a,t,n)=>q(1==n?D(z(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):D(S(t,t=>[t,a[t]]),([,a])=>!u(a))),C=async(a,t)=>l?await g(y,_a,{[Ea]:u(E)?a:p(a,E,t)},!0,!0,t,void 0,E):null;return it(a,()=>L(async()=>{await R();const a=await(async()=>q(D(await T(la(r,async([a,t,n],e)=>[a,await I(e,t,n)])),a=>!Z(a[1]))))(),t=await(async()=>w?(await I(y,_a,void 0,d))[Ea]:{})();return Z(a)&&u(t)?void 0:[a,t]}),(a,t)=>L(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,{[A]:()=>m,destroy:c},0,m)},ut=/^([cd]:)(.+)/,yt=/^[A-Za-z0-9_]+$/,dt=ra(),Et=async(a,e,s,i,r)=>((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,,O,g]=(a=>{const n=(a=>B(Qa,_(a)?{[Wa]:a}:a??{}))(a),e=n[xa];if(n.mode==Ha){const a=n[Wa]??t;return[1,e,[a,n[Ya]??_a,n[ja]??Ga],ka(a)]}const{tables:{load:s={},save:i={}}={},values:r={}}=n,o=B(Va,r),{load:w,save:l}=o,u=[at(w),at(l),o[qa],Za(w),Za(l)],y=u[2],d=ka(y),E=ka(y),N=tt(s,{[Xa]:null,[Ba]:_a,[za]:c},Xa,a=>C(E,a),a=>Ua(d,a)),m=tt(i,{[qa]:null,[Ba]:_a,[Ja]:0,[Ka]:0,[za]:null},qa,(a,t)=>C(E,t),(a,t)=>Ua(d,t));return wa(m,(a,t)=>t[4]??=oa(N,t[0])?.[2]??c),[0,e,[N,m,u],d]})(e);!f&&a.isMergeable()&&$(0);const D=n+ca(na(O)),b=t+"_"+D,k=y??s,U=async(a,n,e="",s="")=>{const c=pa(t,a,D);return await N(Ia+La+Sa+c+`()RETURNS ${e}trigger AS $$ ${s}BEGIN ${n}END;$$ LANGUAGE plpgsql;`),c},M=async(a,t,n,e)=>(await N(Ia+a+"TRIGGER"+t+n+"EXECUTE "+Sa+e+"()"),t),G=a=>`PERFORM pg_notify('${b}',${a});`,H=(a,t)=>f?c:2===t?H(a,0)+" OR "+H(a,1):Fa(oa(O[0],a)?.[2]??c,0==t?"NEW":"OLD"),W=(a,e)=>T(S([va,fa,Oa],(s,c)=>{const i=L([t,"d",D,a,s],"_");return M(La,v(yt,a)&&m(i)<=63?ba(i):pa(t,"d",D,s,n+ca(a)),`AFTER ${s} ON${ba(a)}FOR EACH ROW WHEN(${H(a,c)})`,e)})),Y=async a=>{A(a)||await N(`DROP FUNCTION IF EXISTS${L(a,",")}CASCADE`)},j=(a,t)=>{oa(a,D)===t&&(ua(a,D),P(a)&&oa(dt,k)===a&&ua(dt,k))},x=async()=>{const a=ya(dt,k,()=>ra()),n=oa(a,D);if(n)return await n[1],n[0]?(n[0]++,n):(await h(()=>n[4]),await x());const e=[],s=[1,void 0,e];ua(a,D,s),s[1]=(async()=>{const a=await U("c",`FOR row IN SELECT object_identity FROM pg_event_trigger_ddl_commands()${ma} command_tag='${ga}' LOOP ${G("'c:'||SPLIT_PART(row.object_identity,'.',2)")}END LOOP;`,"event_","DECLARE row record;");p(e,a),await M("EVENT ",pa(t,"c",D),`ON ddl_command_end WHEN TAG IN('${ga}')`,a);const n=await U("d",G("'d:'||TG_TABLE_NAME")+"RETURN NULL;");p(e,n),s[3]=n,await T(S(F(g),async a=>(await N(ga+` IF NOT EXISTS${ba(a)}("_id"text PRIMARY KEY)`),await W(a,n))))})();try{await s[1]}catch(t){throw s[0]=0,s[4]=I(()=>Y(e),()=>j(a,s)),await h(()=>s[4]),t}return s},X=async a=>{if(0==--a[0]){const t=oa(dt,k);a[4]=I(()=>Y(a[2]),()=>j(t,a)),await a[4]}};return(f?wt:lt)(a,N,async a=>{const t=await x();try{return[await i(b,n=>{R(()=>{return E((e=n,s=ut,e?.match(s)),async([,n,e])=>{C(g,e)&&("c:"==n&&await W(e,t[3]),await a())});var e,s},w)}),t]}catch(a){throw await R(()=>X(t),w),a}},async([a,t])=>{await I(()=>r(a),()=>X(t))},w,l,u,O,F(g),async(a,t)=>await a(Na+` c.table_name tn,c.column_name cn,CASE WHEN tc.constraint_type IN('PRIMARY KEY','UNIQUE')AND(${Na} count(*) FROM information_schema.key_column_usage kcu2 ${ma} 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 ${ma} c.table_schema='public'AND c.table_name IN(${Ca(t)})`,t),y,d,"text",void 0,a=>aa(a),a=>ta(a))})(a,s,async(a,t=[])=>(await e.query(a,t)).rows,(a,t)=>e.listen(a,t),a=>h(a,r),i,r,f,3,e,"getPglite");export{Et as createPglitePersister};
@@ -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=()=>{},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)},$=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},R=(a,t)=>$(a,a=>{$(()=>t?.(a))}),h=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",$a=Aa+" "+Ta,Ra=_a+"*"+Ta,ha="CREATE ",Ia=ha+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,_,A,O,R,g=0,p=0,P=0,F=0,M=0,G=0,H=0,W=0,Y=0;const x={},B=o.destroy;ua(nt,l,()=>0),ua(et,l,()=>[]),la(st,l,(ra(st,l)??0)+1);const X=ia(),[q,J,K,z,Q]=((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),[Z,aa,ta]=(a=>{let t;const[e,s]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{tt.test(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)]})(()=>Ta),na=a=>{a!=g&&(g=a,aa(X,void 0,g))},ea=()=>{ra(st,l)||ra(nt,l)||!v(ra(et,l)??[])||(la(nt,l),la(et,l),la(st,l))},sa=t=>{(q&&N(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ca=async()=>{Aa()&&a.__?.[0]?.()&&await Na()},oa=a=>h(()=>_=a,()=>{_==a&&(_=void 0)}),wa=async a=>(2!=g&&(await h(async()=>{na(1),p++,await Oa(()=>$(async()=>{const n=await t();N(n)?sa(n):u(n)&&a?Q(a):u(n)||T(1,n)},t=>{i?.(t),a&&Q(a)}))},()=>na(0)),await ca()),Ta),da=async()=>{const a=H;H=0,a&&a==F&&!Y&&(2==g?H=a:await wa())},Ea=async a=>{const t=++F;let n=!0;if(await _a(!0),t==F&&!Y){const e=$(async()=>{const a=await s(async(a,e)=>{if(t==F&&!Y)if(e||a){const t=n||2==g||!!G;M++,t&&G++,await h(async()=>{na(1),p++,await(t?Oa(()=>sa(e??a)):(()=>{try{return sa(e??a)}finally{na(0)}})())},()=>{t&&G--,--M||na(0)}),M||await ca()}else 2==g?H=t:await wa()});t!=F||Y?u(a)||await c(a):d=a},i);await oa(e),t!=F||Y||await h(()=>wa(a),()=>{n=!1})}return Ta},_a=async(a=!1)=>{H=0,a||F++;const t=_,n=d;return d=void 0,await oa(h(async()=>{await t},async()=>{u(n)||await $(()=>c(n),i)})),Ta},Na=async a=>(1!=g&&await h(()=>h(async()=>{na(2),P++,await Oa(()=>$(()=>e(J,a),i))},()=>na(0)),da),Ta),ma=async()=>{const t=++W;return await va(!0),t!=W||Y||(await Na(),t!=W||Y||(A=a.addDidFinishTransactionListener(()=>{if(t==W&&!Y){const a=K();z(a)&&$(()=>Na(a))}}))),Ta},va=async(t=!1)=>{t||W++;const n=A;return A=void 0,u(n)||a.delListener(n),Ta},Aa=()=>!u(A),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=f(e=>v(a)?e():b(ra(et,l),...L(a,(s,c)=>{const r=c==m(a)-1;return[async()=>{let a;R=f(t=>a=t),await h(async()=>{try{await $(s,i)}catch(a){n||(n=!0,t=a)}r&&e()},()=>{R=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 h(async()=>{for(;t<m(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{D(a,t),la(nt,l,0),ea()})}})(),await e,n)throw t;return Ta},Ta={load:wa,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:()=>g,addStatusListener:a=>Z(a,X),delListener:t=>(ta(t),a),schedule:Oa,getStore:()=>a,getStats:()=>({loads:p,saves:P}),...o,destroy:async()=>(u(O)&&(Y=1,O=(async()=>{const a=ra(et,l),t=S(a,([,a,t])=>t!=x||(a?.(),!1)),n=R;D(a),b(a,...t),await h(()=>h(()=>h(fa,()=>n),()=>B?.()),()=>{const a=(ra(st,l)??1)-1;la(st,l,a||void 0),ea()})})()),await O,Ta)};return j(Ta)},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(Ra+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 $=P(T);if(u(A)&&!_&&l&&N==c&&v($)&&p(y,a))return await E("DROP "+ma+Da(a)),la(y,a),void la(d,a);const R=ra(y,a),h=Fa(S(P(R),a=>a==n||f(a)));if(!v($))if(p(y,a)){if(await O(L([n,...$],async t=>{U(h,t)||(await E(Oa+Da(a)+"ADD"+Da(t)+i),ka(R,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($,a=>e+Da(a)+i))});`),la(y,a,Fa([n,...$])),la(d,a,Fa([n]));if(await O([...!_&&w?L(P(h),async t=>{t!=n&&(await E(Oa+Da(a)+"DROP"+Da(t)),U(R,t))}):[]]),_)u(s)?u(A)&&await E($a+Da(a)+Ca(a,N)):await O(K(s,async(t,e)=>{if(u(t))await E($a+Da(a)+Ca(a,N)+`AND(${Da(n)}=$1)`,[e]);else if(!v($)){const s=S(Y(t),f);v(s)||await r(E,a,n,s,{[e]:L(s,a=>o?o(t[a]):t[a])},R)}}));else if(v($))u(A)&&p(y,a)&&await E($a+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,R),await E($a+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 h(t,()=>{E=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await $(()=>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,$,R)=>{const[h,I,g,D]=it(t,_,N,A,f,T,$,R),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 h();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 h(),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=ia(),yt=async(a,e,s,i,r)=>((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,f]=(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);!m&&a.isMergeable()&&T(0);const I=n+sa(ta(A)),S=t+"_"+I,D=y??s,F=async(a,n,e="",s="")=>{const c=ba(t,a,I);return await N(ha+ga+La+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 "+La+e+"()"),t),U=a=>`PERFORM pg_notify('${S}',${a});`,M=(a,t)=>m?c:2===t?M(a,0)+" OR "+M(a,1):Pa(ra(A[0],a)?.[2]??c,0==t?"NEW":"OLD"),G=(a,n)=>O(L([va,Aa,fa],(e,s)=>k(ga,ba(t,"d",I,a,e),`AFTER ${e} ON${Da(a)}FOR EACH ROW WHEN(${M(a,s)})`,n))),H=async a=>{v(a)||await N(`DROP FUNCTION IF EXISTS${g(a,",")}CASCADE`)},W=(a,t)=>{ra(a,I)===t&&(la(a,I),C(a)&&ra(ut,D)===a&&la(ut,D))},Y=async()=>{const a=ua(ut,D,()=>ia()),n=ra(a,I);if(n)return await n[1],n[0]?(n[0]++,n):(await $(()=>n[4]),await Y());const e=[],s=[1,void 0,e];la(a,I,s),s[1]=(async()=>{const a=await F("c",`FOR row IN SELECT object_identity FROM pg_event_trigger_ddl_commands()${Na} command_tag='${Ia}' LOOP ${U("'c:'||SPLIT_PART(row.object_identity,'.',2)")}END LOOP;`,"event_","DECLARE row record;");b(e,a),await k("EVENT ",ba(t,"c",I),`ON ddl_command_end WHEN TAG IN('${Ia}')`,a);const n=await F("d",U("'d:'||TG_TABLE_NAME")+"RETURN NULL;");b(e,n),s[3]=n,await O(L(P(f),async a=>(await N(Ia+` IF NOT EXISTS${Da(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 $(()=>s[4]),t}return s},j=async a=>{if(0==--a[0]){const t=ra(ut,D);a[4]=h(()=>H(a[2]),()=>W(t,a)),await a[4]}};return(m?ot:wt)(a,N,async a=>{const t=await Y();try{return[await i(S,n=>{R(()=>{return E((e=n,s=lt,e?.match(s)),async([,n,e])=>{p(f,e)&&("c:"==n&&await G(e,t[3]),await a())});var e,s},w)}),t]}catch(a){throw await R(()=>j(t),w),a}},async([a,t])=>{await h(()=>r(a),()=>j(t))},w,l,u,A,P(f),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,async(a,t=[])=>(await e.query(a,t)).rows,(a,t)=>e.listen(a,t),a=>$(a,r),i,r,A,3,e,"getPglite");export{yt as createPglitePersister};
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,A=a=>0==m(a),v=(a,t)=>a.test(t),f=()=>{},O=a=>new r(a),T=async a=>r.all(a),$=(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)}},R=(a,t)=>h(a,a=>{h(()=>t?.(a))}),I=async(a,t)=>{try{return await a()}finally{await t()}},g=(a,t)=>a.forEach(t),L=(a,t="")=>a.join(t),S=(a,t)=>a.map(t),D=(a,t)=>a.filter(t),b=(a,t=m(a))=>a.splice(0,t),p=(a,...t)=>a.push(...t),C=(a,t)=>a?.has(t)??!1,P=a=>u(a)||0==(a=>a?.size??0)(a),F=a=>[...a?.values()??[]],k=a=>a.clear(),U=(a,t)=>a?.forEach(t),M=(a,t)=>a?.delete(t),G=Object,H=a=>G.getPrototypeOf(a),W=G.entries,Y=a=>!l(a)&&d(H(a),a=>a==G.prototype||l(H(a)),()=>!0),j=G.keys,x=G.freeze,B=(...a)=>G.assign(G.create(null),...a),X=(a,t,n)=>(G.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),q=(a=[])=>{const t=G.create(null);return g(a,([a,n])=>X(t,a,n)),t},J=(a,t)=>(delete a[t],a),K=(a,t)=>g(j(a),n=>t(a[n],n)),z=(a,t)=>S(W(a),([a,n])=>t(n,a)),Q=(a,t)=>{const n=q();return K(a,(a,e)=>X(n,e,t(a,e))),n},V=a=>m(j(a)),Z=a=>Y(a)&&0==V(a),aa=JSON.stringify,ta=JSON.parse,na=a=>aa(a,(a,t)=>u(t)?"":t),ea=a=>""===a?void 0:N(a)?S(a,ea):Y(a)?Q(a,ea):a,sa=new w.TextEncoder,ca=a=>{let t=2166136261;return g(sa.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0},ia=Map,ra=a=>new ia(a),oa=(a,t)=>a?.get(t),wa=(a,t)=>U(a,(a,n)=>t(n,a)),la=(a,t)=>{const n=[];return wa(a,(a,e)=>p(n,t(e,a))),n},ua=(a,t,n)=>u(n)?(M(a,t),a):a?.set(t,n),ya=(a,t,n,e)=>{let s=oa(a,t);return C(a,t)?e?.(s):ua(a,t,s=n()),s},da=(a,t,n,e,s=0)=>E((n?ya:oa)(a,t[s],s>m(t)-2?n:ra),c=>{if(s>m(t)-2)return e?.(c)&&ua(a,t[s]),c;const i=da(c,t,n,e,s+1);return P(c)&&ua(a,t[s]),i}),Ea="_",_a="_id",Na="SELECT",ma="WHERE",Aa="TABLE",va="INSERT",fa="DELETE",Oa="UPDATE",Ta="ALTER "+Aa,$a="FROM",ha=fa+" "+$a,Ra=Na+"*"+$a,Ia="CREATE ",ga=Ia+Aa,La="OR REPLACE ",Sa="FUNCTION",Da=/\$tableName/g,ba=a=>L(S(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${i(a,/"/g,'""')}"`),"."),pa=(...a)=>ba(L(a,"_")),Ca=(a,t=[1])=>L(S(a,()=>"$"+t[0]++),e),Pa=(a,t=c)=>ma+`(${Fa(t,ba(a))})`,Fa=(a,t)=>i(a,Da,t),ka=a=>new Set(N(a)||u(a)?a:[a]),Ua=(a,t)=>a?.add(t),Ma="ColumnName",Ga="store",Ha="json",Wa=Ga+"TableName",Ya=Ga+"Id"+Ma,ja=Ga+Ma,xa="autoLoadIntervalSeconds",Ba="rowId"+Ma,Xa="tableId",qa="tableName",Ja="deleteEmptyColumns",Ka="deleteEmptyTable",za="condition",Qa={mode:Ha,[xa]:1},Va={load:0,save:0,[qa]:t+"_values"},Za=a=>N(a)?a:void 0,at=a=>!0===a||N(a),tt=(a,t,n,e,s)=>{const c=ra();return K(a,(a,i)=>{const r=(l=B(t,_(a)?{[n]:a}:a),o=G.values(l),w=V(t),o.slice(0,w));var o,w,l;y(r[0])||e(i,r[0])||(s(i,r[0]),ua(c,i,r))}),c},nt=/^\d+$/,et=ra(),st=ra(),ct=ra(),it=(a,t,e,s,c,i,r,o={},w=0,l=[])=>{let d,_,f,T,L,C=0,F=0,k=0,G=0,H=0,W=0,Y=0,j=0,B=0;const X={},q=o.destroy;ya(et,l,()=>0),ya(st,l,()=>[]),ua(ct,l,(oa(ct,l)??0)+1);const J=ra(),[K,z,Q,V,aa]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!Z(a)||!Z(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!Z(a)||!Z(t),t.setContent]:$(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=>{v(nt,t)&&m(a)<1e3&&p(a,t)}]})(),c=ra(),i=(a,e,s,i)=>{let r,o=!1;if(g(((a,t=[n])=>{const e=[],s=(a,n)=>n==m(t)?p(e,a):y(t[n])?U(a,a=>s(a,n+1)):g([t[n],null],t=>s(oa(a,t),n+1));return s(a,0),e})(e,s),n=>U(n,n=>{const e=()=>oa(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 ua(c,l,[s,i,r,o,w]),Ua(da(i,r??[n],ka),l),l},(a,t,...n)=>i(!1,a,t,n),a=>E(oa(c,a),([,t,e])=>(da(t,e??[n],void 0,t=>(M(t,a),P(t)?1:0)),ua(c,a),s(a),e)),a=>E(oa(c,a),([a,,n=[],e,s])=>{const c=(...i)=>{const r=m(i);r==m(n)?a(t,...i,...s(i)):y(n[r])?g(e[r]?.(...i)??[],a=>c(...i,a)):c(...i,n[r])};c()}),(a,t,...n)=>i(!0,a,t,n)]})(()=>ha),sa=a=>{a!=C&&(C=a,na(J,void 0,C))},ca=()=>{oa(ct,l)||oa(et,l)||!A(oa(st,l)??[])||(ua(et,l),ua(st,l),ua(ct,l))},ia=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 Aa()},la=a=>I(()=>_=a,()=>{_==a&&(_=void 0)}),Ea=async a=>(2!=C&&(await I(async()=>{sa(1),F++,await $a(()=>h(async()=>{const n=await t();N(n)?ia(n):u(n)&&a?aa(a):u(n)||$(1,n)},t=>{i?.(t),a&&aa(a)}))},()=>sa(0)),await wa()),ha),_a=async()=>{const a=Y;Y=0,a&&a==G&&!B&&(2==C?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==C||!!W;H++,t&&W++,await I(async()=>{sa(1),F++,await(t?$a(()=>ia(e??a)):(()=>{try{return ia(e??a)}finally{sa(0)}})())},()=>{t&&W--,--H||sa(0)}),H||await wa()}else 2==C?Y=t:await Ea()});t!=G||B?u(a)||await c(a):d=a},i);await la(e),t!=G||B||await I(()=>Ea(a),()=>{n=!1})}return ha},ma=async(a=!1)=>{Y=0,a||G++;const t=_,n=d;return d=void 0,await la(I(async()=>{await t},async()=>{u(n)||await h(()=>c(n),i)})),ha},Aa=async a=>(1!=C&&await I(()=>I(async()=>{sa(2),k++,await $a(()=>h(()=>e(z,a),i))},()=>sa(0)),_a),ha),va=async()=>{const t=++j;return await fa(!0),t!=j||B||(await Aa(),t!=j||B||(f=a.addDidFinishTransactionListener(()=>{if(t==j&&!B){const a=Q();V(a)&&h(()=>Aa(a))}}))),ha},fa=async(t=!1)=>{t||j++;const n=f;return f=void 0,u(n)||a.delListener(n),ha},Oa=()=>!u(f),Ta=async(a=!1)=>{const[t,n]=a?[fa,ma]:[ma,fa];return await I(()=>t(),async()=>{await n()}),ha},$a=async(...a)=>{let t,n=!1;const e=O(e=>A(a)?e():p(oa(st,l),...S(a,(s,c)=>{const r=c==m(a)-1;return[async()=>{let a;L=O(t=>a=t),await I(async()=>{try{await h(s,i)}catch(a){n||(n=!0,t=a)}r&&e()},()=>{L=void 0,a()})},r?e:void 0,X]})));if(await(async()=>{if(!oa(et,l)){ua(et,l,1);const a=oa(st,l);let t=0;await I(async()=>{for(;t<m(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{b(a,t),ua(et,l,0),ca()})}})(),await e,n)throw t;return ha},ha={load:Ea,startAutoLoad:Na,stopAutoLoad:ma,isAutoLoading:()=>!u(d),save:Aa,startAutoSave:va,stopAutoSave:fa,isAutoSaving:Oa,startAutoPersisting:async(a,t=!1)=>{const[n,e,s,c]=t?[va,Na,fa,ma]:[Na,va,ma,fa],i=n(a),r=t?j:G;await i;const o=e(a),w=t?G:j;try{await o}catch(a){throw w==(t?G:j)&&await R(c),r==(t?j:G)&&await R(s),a}return ha},stopAutoPersisting:Ta,getStatus:()=>C,addStatusListener:a=>ta(a,J),delListener:t=>(ea(t),a),schedule:$a,getStore:()=>a,getStats:()=>({loads:F,saves:k}),...o,destroy:async()=>(u(T)&&(B=1,T=(async()=>{const a=oa(st,l),t=D(a,([,a,t])=>t!=X||(a?.(),!1)),n=L;b(a),p(a,...t),await I(()=>I(()=>I(Ta,()=>n),()=>q?.()),()=>{const a=(oa(ct,l)??1)-1;ua(ct,l,a||void 0),ca()})})()),await T,ha)};return x(ha)},rt=(a,n,s,i,r=ot,o,w,l)=>{const y=ra(),d=ra();let E=a;return[async()=>{k(y),k(d),g(await s(E,n),({tn:a,cn:t,uq:n})=>{Ua(ya(y,a,ka),t),n&&Ua(ya(d,a,ka),t)})},async(a,t,n,e)=>{const s=u(e)?void 0:ka(e);return((a,t)=>C(oa(y,a),t))(a,t)?q(D(S(await E(Ra+ba(a)+Pa(a,n)),a=>{const n=a[t],e=w?Q(J(a,t),w):J(a,t);return[n,u(s)?e:q(D(z(e,(a,t)=>[t,a]),([a])=>(a=>u(s)||C(s,a))(a)))]}),a=>!u(a[0])&&!Z(a[1]))):{}},async(a,n,s,w,l,_=!1,N=c,m)=>{const v=u(m)?void 0:ka(m),f=a=>u(v)||C(v,a),O=ka();K(s??{},a=>g(D(j(a??{}),f),a=>Ua(O,a)));const $=F(O);if(u(v)&&!_&&l&&N==c&&A($)&&C(y,a))return await E("DROP "+Aa+ba(a)),ua(y,a),void ua(d,a);const h=oa(y,a),R=ka(D(F(h),a=>a==n||f(a)));if(!A($))if(C(y,a)){if(await T(S([n,...$],async t=>{M(R,t)||(await E(Ta+ba(a)+"ADD"+ba(t)+i),Ua(h,t))})),r==ot&&!C(oa(d,a),n)){const e=t+"_pk_"+ca(aa([a,n]));await E("CREATE UNIQUE INDEX IF NOT EXISTS"+ba(e)+"ON"+ba(a)+`(${ba(n)})`),Ua(ya(d,a,ka),n)}}else await E(ga+ba(a)+`(${ba(n)}${i} PRIMARY KEY${L(S($,a=>e+ba(a)+i))});`),ua(y,a,ka([n,...$])),ua(d,a,ka([n]));if(await T([...!_&&w?S(F(R),async t=>{t!=n&&(await E(Ta+ba(a)+"DROP"+ba(t)),M(h,t))}):[]]),_)u(s)?u(v)&&await E(ha+ba(a)+Pa(a,N)):await T(z(s,async(t,e)=>{if(u(t))await E(ha+ba(a)+Pa(a,N)+`AND(${ba(n)}=$1)`,[e]);else if(!A($)){const s=D(j(t),f);A(s)||await r(E,a,n,s,{[e]:S(s,a=>o?o(t[a]):t[a])},h)}}));else if(A($))u(v)&&C(y,a)&&await E(ha+ba(a)+Pa(a,N));else{const t=D(F(oa(y,a)),a=>a!=n&&f(a)),e=q(),c=[];K(s??{},(a,n)=>{X(e,n,S(t,t=>o?o(a?.[t]):a?.[t])),p(c,n)}),await r(E,a,n,t,e,h),await E(ha+ba(a)+Pa(a,N)+`AND${ba(n)}NOT IN(${Ca(c)})`,c)}},async t=>{if(l)return await l(async a=>{const n=E;return E=a,await I(t,()=>{E=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await h(()=>a("ROLLBACK")),t}}]},ot=async(a,t,n,s,c)=>{const i=[1];await a(va+" INTO"+ba(t)+"("+((...a)=>L(S(a,ba),e))(n,...s)+")VALUES"+L(z(c,a=>"($"+i[0]+++","+Ca(a,i)+")"),e)+"ON CONFLICT("+ba(n)+`)DO ${Oa} SET`+L(S(s,a=>ba(a)+"=excluded."+ba(a)),e),z(c,(a,t)=>[t,...S(a,a=>a??null)]).flat())},wt=(a,t,n,e,s,c,i,[r,o,w],l,u,y,d,E,_,N,m,A)=>{const[v,f,O,T]=rt(t,l,u,E,_,void 0,void 0,A);return it(a,()=>T(async()=>{return await v(),a=(await f(r,o))[Ea]?.[w]??"null",ea(ta(a));var a}),a=>T(async()=>{await v(),await O(r,o,{[Ea]:{[w]:na(a()??null)}},!0,!0)}),n,e,s,i,{[d]:()=>y,destroy:c},0,y)},lt=(a,t,n,e,s,c,i,[r,o,[w,l,y,d,E]],_,N,m,A,v,f,O,$,h)=>{const[R,I,g,L]=rt(t,_,N,v,f,O,$,h),b=(a,t)=>T(la(o,async([n,e,s,c,i],r)=>{var o,w;t&&(o=a,w=r,!G.hasOwn(o,w))||await g(n,e,a[r],s,c,t,i)})),p=(a,t,n)=>q(1==n?D(z(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):D(S(t,t=>[t,a[t]]),([,a])=>!u(a))),C=async(a,t)=>l?await g(y,_a,{[Ea]:u(E)?a:p(a,E,t)},!0,!0,t,void 0,E):null;return it(a,()=>L(async()=>{await R();const a=await(async()=>q(D(await T(la(r,async([a,t,n],e)=>[a,await I(e,t,n)])),a=>!Z(a[1]))))(),t=await(async()=>w?(await I(y,_a,void 0,d))[Ea]:{})();return Z(a)&&u(t)?void 0:[a,t]}),(a,t)=>L(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,{[A]:()=>m,destroy:c},0,m)},ut=/^([cd]:)(.+)/,yt=/^[A-Za-z0-9_]+$/,dt=ra(),Et=async(a,e,s,i,r)=>((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,,O,g]=(a=>{const n=(a=>B(Qa,_(a)?{[Wa]:a}:a??{}))(a),e=n[xa];if(n.mode==Ha){const a=n[Wa]??t;return[1,e,[a,n[Ya]??_a,n[ja]??Ga],ka(a)]}const{tables:{load:s={},save:i={}}={},values:r={}}=n,o=B(Va,r),{load:w,save:l}=o,u=[at(w),at(l),o[qa],Za(w),Za(l)],y=u[2],d=ka(y),E=ka(y),N=tt(s,{[Xa]:null,[Ba]:_a,[za]:c},Xa,a=>C(E,a),a=>Ua(d,a)),m=tt(i,{[qa]:null,[Ba]:_a,[Ja]:0,[Ka]:0,[za]:null},qa,(a,t)=>C(E,t),(a,t)=>Ua(d,t));return wa(m,(a,t)=>t[4]??=oa(N,t[0])?.[2]??c),[0,e,[N,m,u],d]})(e);!f&&a.isMergeable()&&$(0);const D=n+ca(na(O)),b=t+"_"+D,k=y??s,U=async(a,n,e="",s="")=>{const c=pa(t,a,D);return await N(Ia+La+Sa+c+`()RETURNS ${e}trigger AS $$ ${s}BEGIN ${n}END;$$ LANGUAGE plpgsql;`),c},M=async(a,t,n,e)=>(await N(Ia+a+"TRIGGER"+t+n+"EXECUTE "+Sa+e+"()"),t),G=a=>`PERFORM pg_notify('${b}',${a});`,H=(a,t)=>f?c:2===t?H(a,0)+" OR "+H(a,1):Fa(oa(O[0],a)?.[2]??c,0==t?"NEW":"OLD"),W=(a,e)=>T(S([va,fa,Oa],(s,c)=>{const i=L([t,"d",D,a,s],"_");return M(La,v(yt,a)&&m(i)<=63?ba(i):pa(t,"d",D,s,n+ca(a)),`AFTER ${s} ON${ba(a)}FOR EACH ROW WHEN(${H(a,c)})`,e)})),Y=async a=>{A(a)||await N(`DROP FUNCTION IF EXISTS${L(a,",")}CASCADE`)},j=(a,t)=>{oa(a,D)===t&&(ua(a,D),P(a)&&oa(dt,k)===a&&ua(dt,k))},x=async()=>{const a=ya(dt,k,()=>ra()),n=oa(a,D);if(n)return await n[1],n[0]?(n[0]++,n):(await h(()=>n[4]),await x());const e=[],s=[1,void 0,e];ua(a,D,s),s[1]=(async()=>{const a=await U("c",`FOR row IN SELECT object_identity FROM pg_event_trigger_ddl_commands()${ma} command_tag='${ga}' LOOP ${G("'c:'||SPLIT_PART(row.object_identity,'.',2)")}END LOOP;`,"event_","DECLARE row record;");p(e,a),await M("EVENT ",pa(t,"c",D),`ON ddl_command_end WHEN TAG IN('${ga}')`,a);const n=await U("d",G("'d:'||TG_TABLE_NAME")+"RETURN NULL;");p(e,n),s[3]=n,await T(S(F(g),async a=>(await N(ga+` IF NOT EXISTS${ba(a)}("_id"text PRIMARY KEY)`),await W(a,n))))})();try{await s[1]}catch(t){throw s[0]=0,s[4]=I(()=>Y(e),()=>j(a,s)),await h(()=>s[4]),t}return s},X=async a=>{if(0==--a[0]){const t=oa(dt,k);a[4]=I(()=>Y(a[2]),()=>j(t,a)),await a[4]}};return(f?wt:lt)(a,N,async a=>{const t=await x();try{return[await i(b,n=>{R(()=>{return E((e=n,s=ut,e?.match(s)),async([,n,e])=>{C(g,e)&&("c:"==n&&await W(e,t[3]),await a())});var e,s},w)}),t]}catch(a){throw await R(()=>X(t),w),a}},async([a,t])=>{await I(()=>r(a),()=>X(t))},w,l,u,O,F(g),async(a,t)=>await a(Na+` c.table_name tn,c.column_name cn,CASE WHEN tc.constraint_type IN('PRIMARY KEY','UNIQUE')AND(${Na} count(*) FROM information_schema.key_column_usage kcu2 ${ma} 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 ${ma} c.table_schema='public'AND c.table_name IN(${Ca(t)})`,t),y,d,"text",void 0,a=>aa(a),a=>ta(a))})(a,s,async(a,t=[])=>(await e.query(a,t)).rows,(a,t)=>e.listen(a,t),a=>h(a,r),i,r,f,3,e,"getPglite");export{Et as createPglitePersister};
@@ -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};