tinybase 9.4.0-beta.0 → 9.4.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/@types/persisters/index.d.ts +4 -0
- package/@types/persisters/persister-durable-object-sql-storage/index.d.ts +9 -2
- package/@types/persisters/persister-durable-object-sql-storage/with-schemas/index.d.ts +9 -2
- package/@types/persisters/with-schemas/index.d.ts +4 -0
- package/@types/queries/index.d.ts +145 -7
- package/@types/queries/with-schemas/index.d.ts +157 -7
- package/@types/synchronizers/synchronizer-ws-client/index.d.ts +7 -3
- package/@types/synchronizers/synchronizer-ws-client/with-schemas/index.d.ts +7 -3
- package/@types/synchronizers/synchronizer-ws-server/index.d.ts +9 -3
- package/@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.ts +9 -3
- package/@types/synchronizers/synchronizer-ws-server-simple/index.d.ts +6 -3
- package/@types/synchronizers/synchronizer-ws-server-simple/with-schemas/index.d.ts +6 -3
- package/index.js +315 -22
- package/min/index.js +1 -1
- package/min/index.js.gz +0 -0
- package/min/omni/index.js +1 -1
- package/min/omni/index.js.gz +0 -0
- package/min/omni/with-schemas/index.js +1 -1
- package/min/omni/with-schemas/index.js.gz +0 -0
- package/min/persisters/index.js +1 -1
- package/min/persisters/index.js.gz +0 -0
- package/min/persisters/persister-automerge/index.js +1 -1
- package/min/persisters/persister-automerge/index.js.gz +0 -0
- package/min/persisters/persister-automerge/with-schemas/index.js +1 -1
- package/min/persisters/persister-automerge/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-browser/index.js +1 -1
- package/min/persisters/persister-browser/index.js.gz +0 -0
- package/min/persisters/persister-browser/with-schemas/index.js +1 -1
- package/min/persisters/persister-browser/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
- package/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
- package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
- package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-durable-object-sql-storage/index.js +1 -1
- package/min/persisters/persister-durable-object-sql-storage/index.js.gz +0 -0
- package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js +1 -1
- package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-durable-object-storage/index.js +1 -1
- package/min/persisters/persister-durable-object-storage/index.js.gz +0 -0
- package/min/persisters/persister-durable-object-storage/with-schemas/index.js +1 -1
- package/min/persisters/persister-durable-object-storage/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-electric-sql/index.js +1 -1
- package/min/persisters/persister-electric-sql/index.js.gz +0 -0
- package/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
- package/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-expo-sqlite/index.js +1 -1
- package/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
- package/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
- package/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-file/index.js +1 -1
- package/min/persisters/persister-file/index.js.gz +0 -0
- package/min/persisters/persister-file/with-schemas/index.js +1 -1
- package/min/persisters/persister-file/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-indexed-db/index.js +1 -1
- package/min/persisters/persister-indexed-db/index.js.gz +0 -0
- package/min/persisters/persister-indexed-db/with-schemas/index.js +1 -1
- package/min/persisters/persister-indexed-db/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-libsql/index.js +1 -1
- package/min/persisters/persister-libsql/index.js.gz +0 -0
- package/min/persisters/persister-libsql/with-schemas/index.js +1 -1
- package/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-partykit-client/index.js +1 -1
- package/min/persisters/persister-partykit-client/index.js.gz +0 -0
- package/min/persisters/persister-partykit-client/with-schemas/index.js +1 -1
- package/min/persisters/persister-partykit-client/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-pglite/index.js +1 -1
- package/min/persisters/persister-pglite/index.js.gz +0 -0
- package/min/persisters/persister-pglite/with-schemas/index.js +1 -1
- package/min/persisters/persister-pglite/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-postgres/index.js +1 -1
- package/min/persisters/persister-postgres/index.js.gz +0 -0
- package/min/persisters/persister-postgres/with-schemas/index.js +1 -1
- package/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-powersync/index.js +1 -1
- package/min/persisters/persister-powersync/index.js.gz +0 -0
- package/min/persisters/persister-powersync/with-schemas/index.js +1 -1
- package/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-react-native-mmkv/index.js +1 -1
- package/min/persisters/persister-react-native-mmkv/index.js.gz +0 -0
- package/min/persisters/persister-react-native-mmkv/with-schemas/index.js +1 -1
- package/min/persisters/persister-react-native-mmkv/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-react-native-sqlite/index.js +1 -1
- package/min/persisters/persister-react-native-sqlite/index.js.gz +0 -0
- package/min/persisters/persister-react-native-sqlite/with-schemas/index.js +1 -1
- package/min/persisters/persister-react-native-sqlite/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-remote/index.js +1 -1
- package/min/persisters/persister-remote/index.js.gz +0 -0
- package/min/persisters/persister-remote/with-schemas/index.js +1 -1
- package/min/persisters/persister-remote/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-bun/index.js +1 -1
- package/min/persisters/persister-sqlite-bun/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-bun/with-schemas/index.js +1 -1
- package/min/persisters/persister-sqlite-bun/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-wasm/index.js +1 -1
- package/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
- package/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-sqlite3/index.js +1 -1
- package/min/persisters/persister-sqlite3/index.js.gz +0 -0
- package/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
- package/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-yjs/index.js +1 -1
- package/min/persisters/persister-yjs/index.js.gz +0 -0
- package/min/persisters/persister-yjs/with-schemas/index.js +1 -1
- package/min/persisters/persister-yjs/with-schemas/index.js.gz +0 -0
- package/min/persisters/with-schemas/index.js +1 -1
- package/min/persisters/with-schemas/index.js.gz +0 -0
- package/min/queries/index.js +1 -1
- package/min/queries/index.js.gz +0 -0
- package/min/queries/with-schemas/index.js +1 -1
- package/min/queries/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/index.js +1 -1
- package/min/synchronizers/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-broadcast-channel/index.js +1 -1
- package/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-local/index.js +1 -1
- package/min/synchronizers/synchronizer-local/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-local/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-local/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-client/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server-durable-object/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server-durable-object/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server-simple/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server-simple/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/with-schemas/index.js +1 -1
- package/min/synchronizers/with-schemas/index.js.gz +0 -0
- package/min/ui-react-inspector/index.js +1 -1
- package/min/ui-react-inspector/index.js.gz +0 -0
- package/min/ui-react-inspector/with-schemas/index.js +1 -1
- package/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
- package/min/ui-solid-inspector/index.js +1 -1
- package/min/ui-solid-inspector/index.js.gz +0 -0
- package/min/ui-solid-inspector/with-schemas/index.js +1 -1
- package/min/ui-solid-inspector/with-schemas/index.js.gz +0 -0
- package/min/ui-svelte-inspector/index.js +1 -1
- package/min/ui-svelte-inspector/index.js.gz +0 -0
- package/min/ui-svelte-inspector/with-schemas/index.js +1 -1
- package/min/ui-svelte-inspector/with-schemas/index.js.gz +0 -0
- package/min/with-schemas/index.js +1 -1
- package/min/with-schemas/index.js.gz +0 -0
- package/omni/index.js +730 -127
- package/omni/with-schemas/index.js +730 -127
- package/package.json +8 -4
- package/persisters/index.js +49 -10
- package/persisters/persister-automerge/index.js +29 -5
- package/persisters/persister-automerge/with-schemas/index.js +29 -5
- package/persisters/persister-browser/index.js +29 -5
- package/persisters/persister-browser/with-schemas/index.js +29 -5
- package/persisters/persister-cr-sqlite-wasm/index.js +29 -5
- package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +29 -5
- package/persisters/persister-durable-object-sql-storage/index.js +44 -8
- package/persisters/persister-durable-object-sql-storage/with-schemas/index.js +44 -8
- package/persisters/persister-durable-object-storage/index.js +31 -5
- package/persisters/persister-durable-object-storage/with-schemas/index.js +31 -5
- package/persisters/persister-electric-sql/index.js +29 -5
- package/persisters/persister-electric-sql/with-schemas/index.js +29 -5
- package/persisters/persister-expo-sqlite/index.js +29 -5
- package/persisters/persister-expo-sqlite/with-schemas/index.js +29 -5
- package/persisters/persister-file/index.js +31 -5
- package/persisters/persister-file/with-schemas/index.js +31 -5
- package/persisters/persister-indexed-db/index.js +29 -5
- package/persisters/persister-indexed-db/with-schemas/index.js +29 -5
- package/persisters/persister-libsql/index.js +29 -5
- package/persisters/persister-libsql/with-schemas/index.js +29 -5
- package/persisters/persister-partykit-client/index.js +31 -5
- package/persisters/persister-partykit-client/with-schemas/index.js +31 -5
- package/persisters/persister-pglite/index.js +49 -10
- package/persisters/persister-pglite/with-schemas/index.js +49 -10
- package/persisters/persister-postgres/index.js +49 -10
- package/persisters/persister-postgres/with-schemas/index.js +49 -10
- package/persisters/persister-powersync/index.js +29 -5
- package/persisters/persister-powersync/with-schemas/index.js +29 -5
- package/persisters/persister-react-native-mmkv/index.js +31 -5
- package/persisters/persister-react-native-mmkv/with-schemas/index.js +31 -5
- package/persisters/persister-react-native-sqlite/index.js +29 -5
- package/persisters/persister-react-native-sqlite/with-schemas/index.js +29 -5
- package/persisters/persister-remote/index.js +31 -5
- package/persisters/persister-remote/with-schemas/index.js +31 -5
- package/persisters/persister-sqlite-bun/index.js +29 -5
- package/persisters/persister-sqlite-bun/with-schemas/index.js +29 -5
- package/persisters/persister-sqlite-wasm/index.js +29 -5
- package/persisters/persister-sqlite-wasm/with-schemas/index.js +29 -5
- package/persisters/persister-sqlite3/index.js +29 -5
- package/persisters/persister-sqlite3/with-schemas/index.js +29 -5
- package/persisters/persister-yjs/index.js +29 -5
- package/persisters/persister-yjs/with-schemas/index.js +29 -5
- package/persisters/with-schemas/index.js +49 -10
- package/queries/index.js +334 -22
- package/queries/with-schemas/index.js +334 -22
- package/readme.md +14 -14
- package/releases.md +84 -67
- package/synchronizers/index.js +31 -5
- package/synchronizers/synchronizer-broadcast-channel/index.js +39 -13
- package/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +39 -13
- package/synchronizers/synchronizer-local/index.js +31 -5
- package/synchronizers/synchronizer-local/with-schemas/index.js +31 -5
- package/synchronizers/synchronizer-ws-client/index.js +220 -61
- package/synchronizers/synchronizer-ws-client/with-schemas/index.js +220 -61
- package/synchronizers/synchronizer-ws-server/index.js +253 -73
- package/synchronizers/synchronizer-ws-server/with-schemas/index.js +253 -73
- package/synchronizers/synchronizer-ws-server-durable-object/index.js +88 -40
- package/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +88 -40
- package/synchronizers/synchronizer-ws-server-simple/index.js +184 -60
- package/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js +184 -60
- package/synchronizers/with-schemas/index.js +31 -5
- package/ui-react-inspector/index.js +29 -5
- package/ui-react-inspector/with-schemas/index.js +29 -5
- package/ui-solid-inspector/index.js +29 -5
- package/ui-solid-inspector/with-schemas/index.js +29 -5
- package/ui-svelte-inspector/index.js +29 -5
- package/ui-svelte-inspector/with-schemas/index.js +29 -5
- package/with-schemas/index.js +315 -22
|
@@ -1 +1 @@
|
|
|
1
|
-
const t="tinybase",a=(t,a)=>t.startsWith(a),n=Promise,e=t=>(a,n,e)=>t(a)?e?.():n(a),s=t=>null==t,r=t=>void 0===t,o=t=>null===t,i=e(s),c=e(r),u=t=>Array.isArray(t),y=t=>t.length,w=t=>0==y(t),l=t=>new n(t),d=(a,n)=>{throw((a,n)=>Error(t+":"+a+(r(n)?"":":"+n)))(a,n)},v=async(t,a)=>{try{return await t()}catch(t){a?.(t)}},f=async(t,a)=>{try{return await t()}finally{await a()}},
|
|
1
|
+
const t="tinybase",a=(t,a)=>t.startsWith(a),n=Promise,e=t=>(a,n,e)=>t(a)?e?.():n(a),s=t=>null==t,r=t=>void 0===t,o=t=>null===t,i=e(s),c=e(r),u=t=>Array.isArray(t),y=t=>t.length,w=t=>0==y(t),l=t=>new n(t),d=(a,n)=>{throw((a,n)=>Error(t+":"+a+(r(n)?"":":"+n)))(a,n)},v=async(t,a)=>{try{return await t()}catch(t){a?.(t)}},f=(t,a)=>v(t,t=>{v(()=>a?.(t))}),h=async(t,a)=>{try{return await t()}finally{await a()}},p=(t,a)=>t.forEach(a),g=(t,a=y(t))=>t.splice(0,a),_=(t,...a)=>t.push(...a),A=Object,S=t=>A.getPrototypeOf(t),b=t=>!s(t)&&i(S(t),t=>t==A.prototype||s(S(t)),()=>!0),L=A.keys,P=A.freeze,O=(t,a)=>A.hasOwn(t,a),D=(t,a,n)=>(A.defineProperty(t,a,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),m=(t,a)=>(delete t[a],t),E=(t,a)=>p(L(t),n=>a(t[n],n)),j=(t,a)=>{for(const n in t)if(O(t,n)&&!a(t[n],n))return!1;return!0},z=t=>b(t)&&0==(t=>y(L(t)))(t),C=t=>r(t)||0==(t=>t?.size??0)(t),M=(t,a)=>t?.forEach(a),k=(t,a)=>t?.delete(a),x=Map,F=t=>new x(t),H=(t,a)=>t?.get(a),T=(t,a,n)=>r(n)?(k(t,a),t):t?.set(a,n),W=(t,a,n,e)=>{let s=H(t,a);var r,o;return r=t,o=a,r?.has(o)?e?.(s):T(t,a,s=n()),s},$=(t,a,n,e,s=0)=>c((n?W:H)(t,a[s],s>y(a)-2?n:F),r=>{if(s>y(a)-2)return e?.(r)&&T(t,a[s]),r;const o=$(r,a,n,e,s+1);return C(r)&&T(t,a[s]),o}),q=/^\d+$/,B=t=>new Set(u(t)||r(t)?t:[t]),G=F(),I=F(),J=F(),K=(t,a,n,e,s,i,A,S={},b=0,L=[])=>{let O,D,m,E,j,x=0,K=0,N=0,Q=0,R=0,U=0,V=0,X=0,Y=0;const Z={},tt=S.destroy;W(G,L,()=>0),W(I,L,()=>[]),T(J,L,(H(J,L)??0)+1);const at=F(),[nt,et,st,rt,ot]=((t=1,a,n)=>1!=t&&a.isMergeable()?[1,a.__[1],()=>a.__[2](!n),([[t],[a]])=>!z(t)||!z(a),a.setDefaultContent]:2!=t?[0,a._[7],a._[8],([t,a])=>!z(t)||!z(a),a.setContent]:d(0))(A,t,b),[it,ct,ut]=(t=>{let a;const[n,e]=(()=>{const t=[];let a=0;return[n=>(n?t.shift():null)??""+a++,a=>{q.test(a)&&y(t)<1e3&&_(t,a)}]})(),s=F(),r=(t,n,e,r)=>{let i,c=!1;if(p(((t,a=[""])=>{const n=[],e=(t,s)=>s==y(a)?_(n,t):o(a[s])?M(t,t=>e(t,s+1)):p([a[s],null],a=>e(H(t,a),s+1));return e(t,0),n})(n,e),n=>M(n,n=>{const o=()=>H(s,n)[0](a,...e??[],...r);t?(t=>{try{return t()}catch(t){(t=>{c||(i=t),c=!0})?.(t)}})(o):o()})),c)throw i};return[(e,r,o,i=[],c=()=>[])=>{a??=t();const u=n(1);var y,w;return T(s,u,[e,r,o,i,c]),y=$(r,o??[""],B),w=u,y?.add(w),u},(t,a,...n)=>r(!1,t,a,n),t=>c(H(s,t),([,a,n])=>($(a,n??[""],void 0,a=>(k(a,t),C(a)?1:0)),T(s,t),e(t),n)),t=>c(H(s,t),([t,,n=[],e,s])=>{const r=(...i)=>{const c=y(i);c==y(n)?t(a,...i,...s(i)):o(n[c])?p(e[c]?.(...i)??[],t=>r(...i,t)):r(...i,n[c])};r()}),(t,a,...n)=>r(!0,t,a,n)]})(()=>Ot),yt=t=>{t!=x&&(x=t,ct(at,void 0,x))},wt=()=>{H(J,L)||H(G,L)||!w(H(I,L)??[])||(T(G,L),T(I,L),T(J,L))},lt=a=>{(nt&&u(a?.[0])?1===a?.[2]?t.__[4]:t.__[3]:1===a?.[2]?t._[10]:t._[9])(a)},dt=async()=>{bt()&&t.__?.[0]?.()&&await _t()},vt=t=>h(()=>D=t,()=>{D==t&&(D=void 0)}),ft=async t=>(2!=x&&(await h(async()=>{yt(1),K++,await Pt(()=>v(async()=>{const n=await a();u(n)?lt(n):r(n)&&t?ot(t):r(n)||d(1,n)},a=>{i?.(a),t&&ot(t)}))},()=>yt(0)),await dt()),Ot),ht=async()=>{const t=V;V=0,t&&t==Q&&!Y&&(2==x?V=t:await ft())},pt=async t=>{const a=++Q;let n=!0;if(await gt(!0),a==Q&&!Y){const o=v(async()=>{const t=await e(async(t,e)=>{if(a==Q&&!Y)if(e||t){const a=n||2==x||!!U;R++,a&&U++,await h(async()=>{yt(1),K++,await(a?Pt(()=>lt(e??t)):(()=>{try{return lt(e??t)}finally{yt(0)}})())},()=>{a&&U--,--R||yt(0)}),R||await dt()}else 2==x?V=a:await ft()});a!=Q||Y?r(t)||await s(t):O=t},i);await vt(o),a!=Q||Y||await h(()=>ft(t),()=>{n=!1})}return Ot},gt=async(t=!1)=>{V=0,t||Q++;const a=D,n=O;return O=void 0,await vt(h(async()=>{await a},async()=>{r(n)||await v(()=>s(n),i)})),Ot},_t=async t=>(1!=x&&await h(()=>h(async()=>{yt(2),N++,await Pt(()=>v(()=>n(et,t),i))},()=>yt(0)),ht),Ot),At=async()=>{const a=++X;return await St(!0),a!=X||Y||(await _t(),a!=X||Y||(m=t.addDidFinishTransactionListener(()=>{if(a==X&&!Y){const t=st();rt(t)&&v(()=>_t(t))}}))),Ot},St=async(a=!1)=>{a||X++;const n=m;return m=void 0,r(n)||t.delListener(n),Ot},bt=()=>!r(m),Lt=async(t=!1)=>{const[a,n]=t?[St,gt]:[gt,St];return await h(()=>a(),async()=>{await n()}),Ot},Pt=async(...t)=>{let a,n=!1;const e=l(e=>{return w(t)?e():_(H(I,L),...(s=t,r=(s,r)=>{const o=r==y(t)-1;return[async()=>{let t;j=l(a=>t=a),await h(async()=>{try{await v(s,i)}catch(t){n||(n=!0,a=t)}o&&e()},()=>{j=void 0,t()})},o?e:void 0,Z]},s.map(r)));var s,r});if(await(async()=>{if(!H(G,L)){T(G,L,1);const t=H(I,L);let a=0;await h(async()=>{for(;a<y(t);){const n=t[a++];n[2]=void 0,await n[0]()}},()=>{g(t,a),T(G,L,0),wt()})}})(),await e,n)throw a;return Ot},Ot={load:ft,startAutoLoad:pt,stopAutoLoad:gt,isAutoLoading:()=>!r(O),save:_t,startAutoSave:At,stopAutoSave:St,isAutoSaving:bt,startAutoPersisting:async(t,a=!1)=>{const[n,e,s,r]=a?[At,pt,St,gt]:[pt,At,gt,St],o=n(t),i=a?X:Q;await o;const c=e(t),u=a?Q:X;try{await c}catch(t){throw u==(a?Q:X)&&await f(r),i==(a?X:Q)&&await f(s),t}return Ot},stopAutoPersisting:Lt,getStatus:()=>x,addStatusListener:t=>it(t,at),delListener:a=>(ut(a),t),schedule:Pt,getStore:()=>t,getStats:()=>({loads:K,saves:N}),...S,destroy:async()=>(r(E)&&(Y=1,E=(async()=>{const t=H(I,L),a=(n=([,t,a])=>a!=Z||(t?.(),!1),t.filter(n));var n;const e=j;g(t),_(t,...a),await h(()=>h(()=>h(Lt,()=>e),()=>tt?.()),()=>{const t=(H(J,L)??1)-1;T(J,L,t||void 0),wt()})})()),await E,Ot)};return P(Ot)},N=t=>O(Object.prototype,t)||"prototype"==t||a(t,"\0")?"\0"+t:t,Q=t=>a(t,"\0")?t.slice(1,void 0):t,R=(t,a)=>((t,a)=>c(t,t=>c(A.getOwnPropertyDescriptor(t,a),()=>t[a])))(t,N(a)),U=(t,a,n)=>t[N(a)]=n,V=(t,a)=>m(t,N(a)),X=(t,a)=>{const n=R(t,a);return[n.t,n.v]},Y=(t,a=t=>t)=>{const n=((t=[])=>{const a=A.create(null);return p(t,([t,n])=>D(a,t,n)),a})();return E((t=>b(t)?t:d(1))(t),(t,e)=>D(n,Q(e),a(t))),n},Z=(t,a)=>{const n=R(t,a);return b(n?.t)&&b(n?.v)?((t,a)=>{const[n,e]=X(t,a);return[Y(n,t=>Y(t,t=>Y(t))),Y(e)]})(t,a):void 0},tt=(t,a,n)=>(r(R(t,a))&&U(t,a,n()),R(t,a)),at=(t,a,n,e)=>{const s=r(a)?t:tt(t,a,()=>({}));let o;return E(n,(t,a)=>{e(s,a,t)&&(o=1)}),E(s,(t,a)=>{const e=Q(a);O(n,e)||(m(s,a),o=1)}),!r(a)&&z(s)&&V(t,a),o},nt=(a,n,e=t,s)=>(n.change(t=>tt(t,e,()=>({}))),K(a,async()=>Z(n.doc(),e),async(t,a)=>n.change(n=>((t,a,n,e)=>{((t,a)=>{z(R(t,a))&&U(t,a,{t:{},v:{}})})(t,a);const[s,o]=X(t,a);if(!c(e,([t,a])=>j(t,(t,a)=>r(t)?(V(s,a),!0):c(R(s,a),a=>j(t,(t,n)=>r(t)?(V(a,n),!0):c(R(a,n),a=>(E(t,(t,n)=>r(t)?V(a,n):U(a,n,t)),!0),()=>!1)),()=>!1))&&j(a,(t,a)=>(r(t)?V(o,a):U(o,a,t),!0)))){const[t,a]=n();at(s,void 0,t,(t,a,n)=>at(s,a,n,(t,a,n)=>at(t,a,n,(t,a,n)=>{if(R(t,a)!==n)return U(t,a,n),1}))),at(o,void 0,a,(t,a,n)=>{R(o,a)!==n&&U(o,a,n)})}})(n,e,t,a)),t=>((t,a,n)=>(t.on(a,n),()=>t.off(a,n)))(n,"change",({doc:a})=>{f(()=>c(Z(a,e),t,()=>d(1)),s)}),t=>t(),s,1,{getDocHandle:()=>n}));export{nt as createAutomergePersister};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const t="tinybase",a=(t,a)=>t.startsWith(a),n=Promise,e=t=>(a,n,e)=>t(a)?e?.():n(a),s=t=>null==t,r=t=>void 0===t,o=t=>null===t,i=e(s),c=e(r),u=t=>Array.isArray(t),y=t=>t.length,w=t=>0==y(t),l=t=>new n(t),d=(a,n)=>{throw((a,n)=>Error(t+":"+a+(r(n)?"":":"+n)))(a,n)},v=async(t,a)=>{try{return await t()}catch(t){a?.(t)}},f=async(t,a)=>{try{return await t()}finally{await a()}},
|
|
1
|
+
const t="tinybase",a=(t,a)=>t.startsWith(a),n=Promise,e=t=>(a,n,e)=>t(a)?e?.():n(a),s=t=>null==t,r=t=>void 0===t,o=t=>null===t,i=e(s),c=e(r),u=t=>Array.isArray(t),y=t=>t.length,w=t=>0==y(t),l=t=>new n(t),d=(a,n)=>{throw((a,n)=>Error(t+":"+a+(r(n)?"":":"+n)))(a,n)},v=async(t,a)=>{try{return await t()}catch(t){a?.(t)}},f=(t,a)=>v(t,t=>{v(()=>a?.(t))}),h=async(t,a)=>{try{return await t()}finally{await a()}},p=(t,a)=>t.forEach(a),g=(t,a=y(t))=>t.splice(0,a),_=(t,...a)=>t.push(...a),A=Object,S=t=>A.getPrototypeOf(t),b=t=>!s(t)&&i(S(t),t=>t==A.prototype||s(S(t)),()=>!0),L=A.keys,P=A.freeze,O=(t,a)=>A.hasOwn(t,a),D=(t,a,n)=>(A.defineProperty(t,a,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),m=(t,a)=>(delete t[a],t),E=(t,a)=>p(L(t),n=>a(t[n],n)),j=(t,a)=>{for(const n in t)if(O(t,n)&&!a(t[n],n))return!1;return!0},z=t=>b(t)&&0==(t=>y(L(t)))(t),C=t=>r(t)||0==(t=>t?.size??0)(t),M=(t,a)=>t?.forEach(a),k=(t,a)=>t?.delete(a),x=Map,F=t=>new x(t),H=(t,a)=>t?.get(a),T=(t,a,n)=>r(n)?(k(t,a),t):t?.set(a,n),W=(t,a,n,e)=>{let s=H(t,a);var r,o;return r=t,o=a,r?.has(o)?e?.(s):T(t,a,s=n()),s},$=(t,a,n,e,s=0)=>c((n?W:H)(t,a[s],s>y(a)-2?n:F),r=>{if(s>y(a)-2)return e?.(r)&&T(t,a[s]),r;const o=$(r,a,n,e,s+1);return C(r)&&T(t,a[s]),o}),q=/^\d+$/,B=t=>new Set(u(t)||r(t)?t:[t]),G=F(),I=F(),J=F(),K=(t,a,n,e,s,i,A,S={},b=0,L=[])=>{let O,D,m,E,j,x=0,K=0,N=0,Q=0,R=0,U=0,V=0,X=0,Y=0;const Z={},tt=S.destroy;W(G,L,()=>0),W(I,L,()=>[]),T(J,L,(H(J,L)??0)+1);const at=F(),[nt,et,st,rt,ot]=((t=1,a,n)=>1!=t&&a.isMergeable()?[1,a.__[1],()=>a.__[2](!n),([[t],[a]])=>!z(t)||!z(a),a.setDefaultContent]:2!=t?[0,a._[7],a._[8],([t,a])=>!z(t)||!z(a),a.setContent]:d(0))(A,t,b),[it,ct,ut]=(t=>{let a;const[n,e]=(()=>{const t=[];let a=0;return[n=>(n?t.shift():null)??""+a++,a=>{q.test(a)&&y(t)<1e3&&_(t,a)}]})(),s=F(),r=(t,n,e,r)=>{let i,c=!1;if(p(((t,a=[""])=>{const n=[],e=(t,s)=>s==y(a)?_(n,t):o(a[s])?M(t,t=>e(t,s+1)):p([a[s],null],a=>e(H(t,a),s+1));return e(t,0),n})(n,e),n=>M(n,n=>{const o=()=>H(s,n)[0](a,...e??[],...r);t?(t=>{try{return t()}catch(t){(t=>{c||(i=t),c=!0})?.(t)}})(o):o()})),c)throw i};return[(e,r,o,i=[],c=()=>[])=>{a??=t();const u=n(1);var y,w;return T(s,u,[e,r,o,i,c]),y=$(r,o??[""],B),w=u,y?.add(w),u},(t,a,...n)=>r(!1,t,a,n),t=>c(H(s,t),([,a,n])=>($(a,n??[""],void 0,a=>(k(a,t),C(a)?1:0)),T(s,t),e(t),n)),t=>c(H(s,t),([t,,n=[],e,s])=>{const r=(...i)=>{const c=y(i);c==y(n)?t(a,...i,...s(i)):o(n[c])?p(e[c]?.(...i)??[],t=>r(...i,t)):r(...i,n[c])};r()}),(t,a,...n)=>r(!0,t,a,n)]})(()=>Ot),yt=t=>{t!=x&&(x=t,ct(at,void 0,x))},wt=()=>{H(J,L)||H(G,L)||!w(H(I,L)??[])||(T(G,L),T(I,L),T(J,L))},lt=a=>{(nt&&u(a?.[0])?1===a?.[2]?t.__[4]:t.__[3]:1===a?.[2]?t._[10]:t._[9])(a)},dt=async()=>{bt()&&t.__?.[0]?.()&&await _t()},vt=t=>h(()=>D=t,()=>{D==t&&(D=void 0)}),ft=async t=>(2!=x&&(await h(async()=>{yt(1),K++,await Pt(()=>v(async()=>{const n=await a();u(n)?lt(n):r(n)&&t?ot(t):r(n)||d(1,n)},a=>{i?.(a),t&&ot(t)}))},()=>yt(0)),await dt()),Ot),ht=async()=>{const t=V;V=0,t&&t==Q&&!Y&&(2==x?V=t:await ft())},pt=async t=>{const a=++Q;let n=!0;if(await gt(!0),a==Q&&!Y){const o=v(async()=>{const t=await e(async(t,e)=>{if(a==Q&&!Y)if(e||t){const a=n||2==x||!!U;R++,a&&U++,await h(async()=>{yt(1),K++,await(a?Pt(()=>lt(e??t)):(()=>{try{return lt(e??t)}finally{yt(0)}})())},()=>{a&&U--,--R||yt(0)}),R||await dt()}else 2==x?V=a:await ft()});a!=Q||Y?r(t)||await s(t):O=t},i);await vt(o),a!=Q||Y||await h(()=>ft(t),()=>{n=!1})}return Ot},gt=async(t=!1)=>{V=0,t||Q++;const a=D,n=O;return O=void 0,await vt(h(async()=>{await a},async()=>{r(n)||await v(()=>s(n),i)})),Ot},_t=async t=>(1!=x&&await h(()=>h(async()=>{yt(2),N++,await Pt(()=>v(()=>n(et,t),i))},()=>yt(0)),ht),Ot),At=async()=>{const a=++X;return await St(!0),a!=X||Y||(await _t(),a!=X||Y||(m=t.addDidFinishTransactionListener(()=>{if(a==X&&!Y){const t=st();rt(t)&&v(()=>_t(t))}}))),Ot},St=async(a=!1)=>{a||X++;const n=m;return m=void 0,r(n)||t.delListener(n),Ot},bt=()=>!r(m),Lt=async(t=!1)=>{const[a,n]=t?[St,gt]:[gt,St];return await h(()=>a(),async()=>{await n()}),Ot},Pt=async(...t)=>{let a,n=!1;const e=l(e=>{return w(t)?e():_(H(I,L),...(s=t,r=(s,r)=>{const o=r==y(t)-1;return[async()=>{let t;j=l(a=>t=a),await h(async()=>{try{await v(s,i)}catch(t){n||(n=!0,a=t)}o&&e()},()=>{j=void 0,t()})},o?e:void 0,Z]},s.map(r)));var s,r});if(await(async()=>{if(!H(G,L)){T(G,L,1);const t=H(I,L);let a=0;await h(async()=>{for(;a<y(t);){const n=t[a++];n[2]=void 0,await n[0]()}},()=>{g(t,a),T(G,L,0),wt()})}})(),await e,n)throw a;return Ot},Ot={load:ft,startAutoLoad:pt,stopAutoLoad:gt,isAutoLoading:()=>!r(O),save:_t,startAutoSave:At,stopAutoSave:St,isAutoSaving:bt,startAutoPersisting:async(t,a=!1)=>{const[n,e,s,r]=a?[At,pt,St,gt]:[pt,At,gt,St],o=n(t),i=a?X:Q;await o;const c=e(t),u=a?Q:X;try{await c}catch(t){throw u==(a?Q:X)&&await f(r),i==(a?X:Q)&&await f(s),t}return Ot},stopAutoPersisting:Lt,getStatus:()=>x,addStatusListener:t=>it(t,at),delListener:a=>(ut(a),t),schedule:Pt,getStore:()=>t,getStats:()=>({loads:K,saves:N}),...S,destroy:async()=>(r(E)&&(Y=1,E=(async()=>{const t=H(I,L),a=(n=([,t,a])=>a!=Z||(t?.(),!1),t.filter(n));var n;const e=j;g(t),_(t,...a),await h(()=>h(()=>h(Lt,()=>e),()=>tt?.()),()=>{const t=(H(J,L)??1)-1;T(J,L,t||void 0),wt()})})()),await E,Ot)};return P(Ot)},N=t=>O(Object.prototype,t)||"prototype"==t||a(t,"\0")?"\0"+t:t,Q=t=>a(t,"\0")?t.slice(1,void 0):t,R=(t,a)=>((t,a)=>c(t,t=>c(A.getOwnPropertyDescriptor(t,a),()=>t[a])))(t,N(a)),U=(t,a,n)=>t[N(a)]=n,V=(t,a)=>m(t,N(a)),X=(t,a)=>{const n=R(t,a);return[n.t,n.v]},Y=(t,a=t=>t)=>{const n=((t=[])=>{const a=A.create(null);return p(t,([t,n])=>D(a,t,n)),a})();return E((t=>b(t)?t:d(1))(t),(t,e)=>D(n,Q(e),a(t))),n},Z=(t,a)=>{const n=R(t,a);return b(n?.t)&&b(n?.v)?((t,a)=>{const[n,e]=X(t,a);return[Y(n,t=>Y(t,t=>Y(t))),Y(e)]})(t,a):void 0},tt=(t,a,n)=>(r(R(t,a))&&U(t,a,n()),R(t,a)),at=(t,a,n,e)=>{const s=r(a)?t:tt(t,a,()=>({}));let o;return E(n,(t,a)=>{e(s,a,t)&&(o=1)}),E(s,(t,a)=>{const e=Q(a);O(n,e)||(m(s,a),o=1)}),!r(a)&&z(s)&&V(t,a),o},nt=(a,n,e=t,s)=>(n.change(t=>tt(t,e,()=>({}))),K(a,async()=>Z(n.doc(),e),async(t,a)=>n.change(n=>((t,a,n,e)=>{((t,a)=>{z(R(t,a))&&U(t,a,{t:{},v:{}})})(t,a);const[s,o]=X(t,a);if(!c(e,([t,a])=>j(t,(t,a)=>r(t)?(V(s,a),!0):c(R(s,a),a=>j(t,(t,n)=>r(t)?(V(a,n),!0):c(R(a,n),a=>(E(t,(t,n)=>r(t)?V(a,n):U(a,n,t)),!0),()=>!1)),()=>!1))&&j(a,(t,a)=>(r(t)?V(o,a):U(o,a,t),!0)))){const[t,a]=n();at(s,void 0,t,(t,a,n)=>at(s,a,n,(t,a,n)=>at(t,a,n,(t,a,n)=>{if(R(t,a)!==n)return U(t,a,n),1}))),at(o,void 0,a,(t,a,n)=>{R(o,a)!==n&&U(o,a,n)})}})(n,e,t,a)),t=>((t,a,n)=>(t.on(a,n),()=>t.off(a,n)))(n,"change",({doc:a})=>{f(()=>c(Z(a,e),t,()=>d(1)),s)}),t=>t(),s,1,{getDocHandle:()=>n}));export{nt as createAutomergePersister};
|
|
Binary file
|
|
@@ -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,i=a(n),o=a(s),c=t=>Array.isArray(t),w=t=>t.length,y=t=>0==w(t),l=a=>new t(a),u=(t,a)=>{throw((t,a)=>Error("tinybase:"+t+(s(a)?"":":"+a)))(t,a)},d=async(t,a)=>{try{return await t()}catch(t){a?.(t)}},v=async(t,a)=>{try{return await t()}finally{await a()}},
|
|
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,i=a(n),o=a(s),c=t=>Array.isArray(t),w=t=>t.length,y=t=>0==w(t),l=a=>new t(a),u=(t,a)=>{throw((t,a)=>Error("tinybase:"+t+(s(a)?"":":"+a)))(t,a)},d=async(t,a)=>{try{return await t()}catch(t){a?.(t)}},v=(t,a)=>d(t,t=>{d(()=>a?.(t))}),g=async(t,a)=>{try{return await t()}finally{await a()}},f=(t,a)=>t.forEach(a),h=(t,a)=>t.map(a),S=(t,a=w(t))=>t.splice(0,a),_=(t,...a)=>t.push(...a),p=Object,b=t=>p.getPrototypeOf(t),A=t=>!n(t)&&i(b(t),t=>t==p.prototype||n(b(t)),()=>!0),L=p.keys,m=p.freeze,E=(t,a,e)=>(p.defineProperty(t,a,{configurable:!0,enumerable:!0,value:e,writable:!0}),e),O=t=>A(t)&&0==(t=>w(L(t)))(t),P=JSON.stringify,F=JSON.parse,N=t=>P(t,(t,a)=>s(a)?"":a),k=t=>x(F(t)),x=t=>""===t?void 0:c(t)?h(t,x):A(t)?((t,a)=>{const e=((t=[])=>{const a=p.create(null);return f(t,([t,e])=>E(a,t,e)),a})();return((t,a)=>{f(L(t),e=>a(t[e],e))})(t,(t,n)=>E(e,n,a(t,n))),e})(t,x):t,z=t=>s(t)||0==(t=>t?.size??0)(t),C=(t,a)=>t?.forEach(a),D=(t,a)=>t?.delete(a),I=Map,J=t=>new I(t),M=(t,a)=>t?.get(a),T=(t,a,e)=>s(e)?(D(t,a),t):t?.set(a,e),j=(t,a,e,n)=>{let s=M(t,a);var r,i;return r=t,i=a,r?.has(i)?n?.(s):T(t,a,s=e()),s},H=(t,a,e,n,s=0)=>o((e?j:M)(t,a[s],s>w(a)-2?e:J),r=>{if(s>w(a)-2)return n?.(r)&&T(t,a[s]),r;const i=H(r,a,e,n,s+1);return z(r)&&T(t,a[s]),i}),V=/^\d+$/,W=t=>new Set(c(t)||s(t)?t:[t]),$=J(),q=J(),B=J(),G=(t,a,e,n,i,p,b,A={},L=0,E=[])=>{let P,F,N,k,x,I=0,G=0,K=0,Q=0,R=0,U=0,X=0,Y=0,Z=0;const tt={},at=A.destroy;j($,E,()=>0),j(q,E,()=>[]),T(B,E,(M(B,E)??0)+1);const et=J(),[nt,st,rt,it,ot]=((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]:u(0))(b,t,L),[ct,wt,yt]=(t=>{let a;const[e,n]=(()=>{const t=[];let a=0;return[e=>(e?t.shift():null)??""+a++,a=>{V.test(a)&&w(t)<1e3&&_(t,a)}]})(),s=J(),i=(t,e,n,i)=>{let o,c=!1;if(f(((t,a=[""])=>{const e=[],n=(t,s)=>s==w(a)?_(e,t):r(a[s])?C(t,t=>n(t,s+1)):f([a[s],null],a=>n(M(t,a),s+1));return n(t,0),e})(e,n),e=>C(e,e=>{const r=()=>M(s,e)[0](a,...n??[],...i);t?(t=>{try{return t()}catch(t){(t=>{c||(o=t),c=!0})?.(t)}})(r):r()})),c)throw o};return[(n,r,i,o=[],c=()=>[])=>{a??=t();const w=e(1);var y,l;return T(s,w,[n,r,i,o,c]),y=H(r,i??[""],W),l=w,y?.add(l),w},(t,a,...e)=>i(!1,t,a,e),t=>o(M(s,t),([,a,e])=>(H(a,e??[""],void 0,a=>(D(a,t),z(a)?1:0)),T(s,t),n(t),e)),t=>o(M(s,t),([t,,e=[],n,s])=>{const i=(...o)=>{const c=w(o);c==w(e)?t(a,...o,...s(o)):r(e[c])?f(n[c]?.(...o)??[],t=>i(...o,t)):i(...o,e[c])};i()}),(t,a,...e)=>i(!0,t,a,e)]})(()=>Ot),lt=t=>{t!=I&&(I=t,wt(et,void 0,I))},ut=()=>{M(B,E)||M($,E)||!y(M(q,E)??[])||(T($,E),T(q,E),T(B,E))},dt=a=>{(nt&&c(a?.[0])?1===a?.[2]?t.__[4]:t.__[3]:1===a?.[2]?t._[10]:t._[9])(a)},vt=async()=>{Lt()&&t.__?.[0]?.()&&await pt()},gt=t=>g(()=>F=t,()=>{F==t&&(F=void 0)}),ft=async t=>(2!=I&&(await g(async()=>{lt(1),G++,await Et(()=>d(async()=>{const e=await a();c(e)?dt(e):s(e)&&t?ot(t):s(e)||u(1,e)},a=>{p?.(a),t&&ot(t)}))},()=>lt(0)),await vt()),Ot),ht=async()=>{const t=X;X=0,t&&t==Q&&!Z&&(2==I?X=t:await ft())},St=async t=>{const a=++Q;let e=!0;if(await _t(!0),a==Q&&!Z){const r=d(async()=>{const t=await n(async(t,n)=>{if(a==Q&&!Z)if(n||t){const a=e||2==I||!!U;R++,a&&U++,await g(async()=>{lt(1),G++,await(a?Et(()=>dt(n??t)):(()=>{try{return dt(n??t)}finally{lt(0)}})())},()=>{a&&U--,--R||lt(0)}),R||await vt()}else 2==I?X=a:await ft()});a!=Q||Z?s(t)||await i(t):P=t},p);await gt(r),a!=Q||Z||await g(()=>ft(t),()=>{e=!1})}return Ot},_t=async(t=!1)=>{X=0,t||Q++;const a=F,e=P;return P=void 0,await gt(g(async()=>{await a},async()=>{s(e)||await d(()=>i(e),p)})),Ot},pt=async t=>(1!=I&&await g(()=>g(async()=>{lt(2),K++,await Et(()=>d(()=>e(st,t),p))},()=>lt(0)),ht),Ot),bt=async()=>{const a=++Y;return await At(!0),a!=Y||Z||(await pt(),a!=Y||Z||(N=t.addDidFinishTransactionListener(()=>{if(a==Y&&!Z){const t=rt();it(t)&&d(()=>pt(t))}}))),Ot},At=async(a=!1)=>{a||Y++;const e=N;return N=void 0,s(e)||t.delListener(e),Ot},Lt=()=>!s(N),mt=async(t=!1)=>{const[a,e]=t?[At,_t]:[_t,At];return await g(()=>a(),async()=>{await e()}),Ot},Et=async(...t)=>{let a,e=!1;const n=l(n=>y(t)?n():_(M(q,E),...h(t,(s,r)=>{const i=r==w(t)-1;return[async()=>{let t;x=l(a=>t=a),await g(async()=>{try{await d(s,p)}catch(t){e||(e=!0,a=t)}i&&n()},()=>{x=void 0,t()})},i?n:void 0,tt]})));if(await(async()=>{if(!M($,E)){T($,E,1);const t=M(q,E);let a=0;await g(async()=>{for(;a<w(t);){const e=t[a++];e[2]=void 0,await e[0]()}},()=>{S(t,a),T($,E,0),ut()})}})(),await n,e)throw a;return Ot},Ot={load:ft,startAutoLoad:St,stopAutoLoad:_t,isAutoLoading:()=>!s(P),save:pt,startAutoSave:bt,stopAutoSave:At,isAutoSaving:Lt,startAutoPersisting:async(t,a=!1)=>{const[e,n,s,r]=a?[bt,St,At,_t]:[St,bt,_t,At],i=e(t),o=a?Y:Q;await i;const c=n(t),w=a?Q:Y;try{await c}catch(t){throw w==(a?Q:Y)&&await v(r),o==(a?Y:Q)&&await v(s),t}return Ot},stopAutoPersisting:mt,getStatus:()=>I,addStatusListener:t=>ct(t,et),delListener:a=>(yt(a),t),schedule:Et,getStore:()=>t,getStats:()=>({loads:G,saves:K}),...A,destroy:async()=>(s(k)&&(Z=1,k=(async()=>{const t=M(q,E),a=(e=([,t,a])=>a!=tt||(t?.(),!1),t.filter(e));var e;const n=x;S(t),_(t,...a),await g(()=>g(()=>g(mt,()=>n),()=>at?.()),()=>{const t=(M(B,E)??1)-1;T(B,E,t||void 0),ut()})})()),await k,Ot)};return m(Ot)},K=(t,a,n,s)=>G(t,async()=>k(n.getItem(a)),async t=>n.setItem(a,N(t())),t=>((t,a,e)=>(t.addEventListener(a,e),()=>t.removeEventListener(a,e)))(e,"storage",e=>{e.storageArea===n&&e.key===a&&v(()=>t(k(e.newValue)),s)}),t=>t(),s,3,{getStorageName:()=>a}),Q=(t,a,e)=>K(t,a,localStorage,e),R=(t,a,e)=>K(t,a,sessionStorage,e),U=(t,a,e)=>G(t,async()=>k(await(await a.getFile()).text()),async t=>{const e=await a.createWritable();let n=0;await g(async()=>{await e.write(N(t())),n=1},async()=>{n?await e.close():await d(()=>e.abort())})},async t=>{const e=new FileSystemObserver(()=>t());return await e.observe(a),e},t=>t?.disconnect(),e,3,{getHandle:()=>a});export{Q as createLocalPersister,U as createOpfsPersister,R as createSessionPersister};
|
|
Binary file
|
|
@@ -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,i=a(n),o=a(s),c=t=>Array.isArray(t),w=t=>t.length,y=t=>0==w(t),l=a=>new t(a),u=(t,a)=>{throw((t,a)=>Error("tinybase:"+t+(s(a)?"":":"+a)))(t,a)},d=async(t,a)=>{try{return await t()}catch(t){a?.(t)}},v=async(t,a)=>{try{return await t()}finally{await a()}},
|
|
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,i=a(n),o=a(s),c=t=>Array.isArray(t),w=t=>t.length,y=t=>0==w(t),l=a=>new t(a),u=(t,a)=>{throw((t,a)=>Error("tinybase:"+t+(s(a)?"":":"+a)))(t,a)},d=async(t,a)=>{try{return await t()}catch(t){a?.(t)}},v=(t,a)=>d(t,t=>{d(()=>a?.(t))}),g=async(t,a)=>{try{return await t()}finally{await a()}},f=(t,a)=>t.forEach(a),h=(t,a)=>t.map(a),S=(t,a=w(t))=>t.splice(0,a),_=(t,...a)=>t.push(...a),p=Object,b=t=>p.getPrototypeOf(t),A=t=>!n(t)&&i(b(t),t=>t==p.prototype||n(b(t)),()=>!0),L=p.keys,m=p.freeze,E=(t,a,e)=>(p.defineProperty(t,a,{configurable:!0,enumerable:!0,value:e,writable:!0}),e),O=t=>A(t)&&0==(t=>w(L(t)))(t),P=JSON.stringify,F=JSON.parse,N=t=>P(t,(t,a)=>s(a)?"":a),k=t=>x(F(t)),x=t=>""===t?void 0:c(t)?h(t,x):A(t)?((t,a)=>{const e=((t=[])=>{const a=p.create(null);return f(t,([t,e])=>E(a,t,e)),a})();return((t,a)=>{f(L(t),e=>a(t[e],e))})(t,(t,n)=>E(e,n,a(t,n))),e})(t,x):t,z=t=>s(t)||0==(t=>t?.size??0)(t),C=(t,a)=>t?.forEach(a),D=(t,a)=>t?.delete(a),I=Map,J=t=>new I(t),M=(t,a)=>t?.get(a),T=(t,a,e)=>s(e)?(D(t,a),t):t?.set(a,e),j=(t,a,e,n)=>{let s=M(t,a);var r,i;return r=t,i=a,r?.has(i)?n?.(s):T(t,a,s=e()),s},H=(t,a,e,n,s=0)=>o((e?j:M)(t,a[s],s>w(a)-2?e:J),r=>{if(s>w(a)-2)return n?.(r)&&T(t,a[s]),r;const i=H(r,a,e,n,s+1);return z(r)&&T(t,a[s]),i}),V=/^\d+$/,W=t=>new Set(c(t)||s(t)?t:[t]),$=J(),q=J(),B=J(),G=(t,a,e,n,i,p,b,A={},L=0,E=[])=>{let P,F,N,k,x,I=0,G=0,K=0,Q=0,R=0,U=0,X=0,Y=0,Z=0;const tt={},at=A.destroy;j($,E,()=>0),j(q,E,()=>[]),T(B,E,(M(B,E)??0)+1);const et=J(),[nt,st,rt,it,ot]=((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]:u(0))(b,t,L),[ct,wt,yt]=(t=>{let a;const[e,n]=(()=>{const t=[];let a=0;return[e=>(e?t.shift():null)??""+a++,a=>{V.test(a)&&w(t)<1e3&&_(t,a)}]})(),s=J(),i=(t,e,n,i)=>{let o,c=!1;if(f(((t,a=[""])=>{const e=[],n=(t,s)=>s==w(a)?_(e,t):r(a[s])?C(t,t=>n(t,s+1)):f([a[s],null],a=>n(M(t,a),s+1));return n(t,0),e})(e,n),e=>C(e,e=>{const r=()=>M(s,e)[0](a,...n??[],...i);t?(t=>{try{return t()}catch(t){(t=>{c||(o=t),c=!0})?.(t)}})(r):r()})),c)throw o};return[(n,r,i,o=[],c=()=>[])=>{a??=t();const w=e(1);var y,l;return T(s,w,[n,r,i,o,c]),y=H(r,i??[""],W),l=w,y?.add(l),w},(t,a,...e)=>i(!1,t,a,e),t=>o(M(s,t),([,a,e])=>(H(a,e??[""],void 0,a=>(D(a,t),z(a)?1:0)),T(s,t),n(t),e)),t=>o(M(s,t),([t,,e=[],n,s])=>{const i=(...o)=>{const c=w(o);c==w(e)?t(a,...o,...s(o)):r(e[c])?f(n[c]?.(...o)??[],t=>i(...o,t)):i(...o,e[c])};i()}),(t,a,...e)=>i(!0,t,a,e)]})(()=>Ot),lt=t=>{t!=I&&(I=t,wt(et,void 0,I))},ut=()=>{M(B,E)||M($,E)||!y(M(q,E)??[])||(T($,E),T(q,E),T(B,E))},dt=a=>{(nt&&c(a?.[0])?1===a?.[2]?t.__[4]:t.__[3]:1===a?.[2]?t._[10]:t._[9])(a)},vt=async()=>{Lt()&&t.__?.[0]?.()&&await pt()},gt=t=>g(()=>F=t,()=>{F==t&&(F=void 0)}),ft=async t=>(2!=I&&(await g(async()=>{lt(1),G++,await Et(()=>d(async()=>{const e=await a();c(e)?dt(e):s(e)&&t?ot(t):s(e)||u(1,e)},a=>{p?.(a),t&&ot(t)}))},()=>lt(0)),await vt()),Ot),ht=async()=>{const t=X;X=0,t&&t==Q&&!Z&&(2==I?X=t:await ft())},St=async t=>{const a=++Q;let e=!0;if(await _t(!0),a==Q&&!Z){const r=d(async()=>{const t=await n(async(t,n)=>{if(a==Q&&!Z)if(n||t){const a=e||2==I||!!U;R++,a&&U++,await g(async()=>{lt(1),G++,await(a?Et(()=>dt(n??t)):(()=>{try{return dt(n??t)}finally{lt(0)}})())},()=>{a&&U--,--R||lt(0)}),R||await vt()}else 2==I?X=a:await ft()});a!=Q||Z?s(t)||await i(t):P=t},p);await gt(r),a!=Q||Z||await g(()=>ft(t),()=>{e=!1})}return Ot},_t=async(t=!1)=>{X=0,t||Q++;const a=F,e=P;return P=void 0,await gt(g(async()=>{await a},async()=>{s(e)||await d(()=>i(e),p)})),Ot},pt=async t=>(1!=I&&await g(()=>g(async()=>{lt(2),K++,await Et(()=>d(()=>e(st,t),p))},()=>lt(0)),ht),Ot),bt=async()=>{const a=++Y;return await At(!0),a!=Y||Z||(await pt(),a!=Y||Z||(N=t.addDidFinishTransactionListener(()=>{if(a==Y&&!Z){const t=rt();it(t)&&d(()=>pt(t))}}))),Ot},At=async(a=!1)=>{a||Y++;const e=N;return N=void 0,s(e)||t.delListener(e),Ot},Lt=()=>!s(N),mt=async(t=!1)=>{const[a,e]=t?[At,_t]:[_t,At];return await g(()=>a(),async()=>{await e()}),Ot},Et=async(...t)=>{let a,e=!1;const n=l(n=>y(t)?n():_(M(q,E),...h(t,(s,r)=>{const i=r==w(t)-1;return[async()=>{let t;x=l(a=>t=a),await g(async()=>{try{await d(s,p)}catch(t){e||(e=!0,a=t)}i&&n()},()=>{x=void 0,t()})},i?n:void 0,tt]})));if(await(async()=>{if(!M($,E)){T($,E,1);const t=M(q,E);let a=0;await g(async()=>{for(;a<w(t);){const e=t[a++];e[2]=void 0,await e[0]()}},()=>{S(t,a),T($,E,0),ut()})}})(),await n,e)throw a;return Ot},Ot={load:ft,startAutoLoad:St,stopAutoLoad:_t,isAutoLoading:()=>!s(P),save:pt,startAutoSave:bt,stopAutoSave:At,isAutoSaving:Lt,startAutoPersisting:async(t,a=!1)=>{const[e,n,s,r]=a?[bt,St,At,_t]:[St,bt,_t,At],i=e(t),o=a?Y:Q;await i;const c=n(t),w=a?Q:Y;try{await c}catch(t){throw w==(a?Q:Y)&&await v(r),o==(a?Y:Q)&&await v(s),t}return Ot},stopAutoPersisting:mt,getStatus:()=>I,addStatusListener:t=>ct(t,et),delListener:a=>(yt(a),t),schedule:Et,getStore:()=>t,getStats:()=>({loads:G,saves:K}),...A,destroy:async()=>(s(k)&&(Z=1,k=(async()=>{const t=M(q,E),a=(e=([,t,a])=>a!=tt||(t?.(),!1),t.filter(e));var e;const n=x;S(t),_(t,...a),await g(()=>g(()=>g(mt,()=>n),()=>at?.()),()=>{const t=(M(B,E)??1)-1;T(B,E,t||void 0),ut()})})()),await k,Ot)};return m(Ot)},K=(t,a,n,s)=>G(t,async()=>k(n.getItem(a)),async t=>n.setItem(a,N(t())),t=>((t,a,e)=>(t.addEventListener(a,e),()=>t.removeEventListener(a,e)))(e,"storage",e=>{e.storageArea===n&&e.key===a&&v(()=>t(k(e.newValue)),s)}),t=>t(),s,3,{getStorageName:()=>a}),Q=(t,a,e)=>K(t,a,localStorage,e),R=(t,a,e)=>K(t,a,sessionStorage,e),U=(t,a,e)=>G(t,async()=>k(await(await a.getFile()).text()),async t=>{const e=await a.createWritable();let n=0;await g(async()=>{await e.write(N(t())),n=1},async()=>{n?await e.close():await d(()=>e.abort())})},async t=>{const e=new FileSystemObserver(()=>t());return await e.observe(a),e},t=>t?.disconnect(),e,3,{getHandle:()=>a});export{Q as createLocalPersister,U as createOpfsPersister,R as createSessionPersister};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a=a=>typeof a,t="tinybase",n="",e=",",i=a(n),s="true",r=(a,t,n)=>a.replace(t,n),c=Promise,o=a=>(t,n,e)=>a(t)?e?.():n(t),l=globalThis,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=o(w),f=o(u),E=t=>a(t)==i,$=a=>Array.isArray(a),m=a=>a.length,N=a=>0==m(a),_=()=>{},A=a=>new c(a),O=async a=>c.all(a),p=(a,t)=>a?.has(t)??!1,h=a=>u(a)||0==(a=>a?.size??0)(a),T=a=>[...a?.values()??[]],g=a=>a.clear(),I=(a,t)=>a?.forEach(t),S=(a,t)=>a?.delete(t),D=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},R=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},b=async(a,t)=>{try{return await a()}finally{await t()}},L=(a,t)=>a.forEach(t),C=(a,t="")=>a.join(t),M=(a,t)=>a.map(t),P=(a,t)=>a.filter(t),F=(a,t=m(a))=>a.splice(0,t),x=(a,...t)=>a.push(...t),U="_",B="_id",j="SELECT",k="WHERE",q="TABLE",J="ALTER "+q,X="FROM",Y="DELETE "+X,z=j+"*"+X,G="pragma_",H="data_version",K="schema_version",Q="pragma_table_",V="CREATE "+q,W=/\$tableName/g,Z=a=>C(M(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),aa=(a,t=[1])=>C(M(a,()=>"$"+t[0]++),e),ta=(a,t=s)=>k+`(${na(t,Z(a))})`,na=(a,t)=>r(a,W,t),ea=Object,ia=a=>ea.getPrototypeOf(a),sa=ea.entries,ra=a=>!w(a)&&v(ia(a),a=>a==ea.prototype||w(ia(a)),()=>!0),ca=ea.keys,oa=ea.freeze,la=(...a)=>ea.assign(ea.create(null),...a),wa=(a,t,n)=>(ea.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),ua=(a=[])=>{const t=ea.create(null);return L(a,([a,n])=>wa(t,a,n)),t},ya=(a,t)=>(delete a[t],a),da=(a,t)=>L(ca(a),n=>t(a[n],n)),va=(a,t)=>M(sa(a),([a,n])=>t(n,a)),fa=(a,t)=>{const n=ua();return da(a,(a,e)=>wa(n,e,t(a,e))),n},Ea=a=>m(ca(a)),$a=a=>ra(a)&&0==Ea(a),ma=Map,Na=a=>new ma(a),_a=(a,t)=>a?.get(t),Aa=(a,t)=>I(a,(a,n)=>t(n,a)),Oa=(a,t)=>{const n=[];return Aa(a,(a,e)=>x(n,t(e,a))),n},pa=(a,t,n)=>u(n)?(S(a,t),a):a?.set(t,n),ha=(a,t,n,e)=>{let i=_a(a,t);return p(a,t)?e?.(i):pa(a,t,i=n()),i},Ta=(a,t,n,e,i=0)=>f((n?ha:_a)(a,t[i],i>m(t)-2?n:Na),s=>{if(i>m(t)-2)return e?.(s)&&pa(a,t[i]),s;const r=Ta(s,t,n,e,i+1);return h(s)&&pa(a,t[i]),r}),ga=a=>new Set($(a)||u(a)?a:[a]),Ia=(a,t)=>a?.add(t),Sa="ColumnName",Da="store",Ra="json",ba=Da+"TableName",La=Da+"Id"+Sa,Ca=Da+Sa,Ma="autoLoadIntervalSeconds",Pa="rowId"+Sa,Fa="tableId",xa="tableName",Ua="deleteEmptyColumns",Ba="deleteEmptyTable",ja="condition",ka={mode:Ra,[Ma]:1},qa={load:0,save:0,[xa]:t+"_values"},Ja=a=>$(a)?a:void 0,Xa=a=>d(a)||$(a),Ya=(a,t,n,e,i)=>{const s=Na();return da(a,(a,r)=>{const c=(w=la(t,E(a)?{[n]:a}:a),o=ea.values(w),l=Ea(t),o.slice(0,l));var o,l,w;y(c[0])||e(r,c[0])||(i(r,c[0]),pa(s,r,c))}),s},za=JSON.stringify,Ga=JSON.parse,Ha=a=>""===a?void 0:$(a)?M(a,Ha):ra(a)?fa(a,Ha):a,Ka=/^\d+$/,Qa=Na(),Va=Na(),Wa=Na(),Za=(a,t,e,i,s,r,c,o={},l=0,w=[])=>{let d,v,E,_,O,p=0,T=0,g=0,C=0,U=0,B=0,j=0,k=0,q=0;const J={},X=o.destroy;ha(Qa,w,()=>0),ha(Va,w,()=>[]),pa(Wa,w,(_a(Wa,w)??0)+1);const Y=Na(),[z,G,H,K,Q]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!$a(a)||!$a(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!$a(a)||!$a(t),t.setContent]:D(0))(c,a,l),[V,W,Z]=(a=>{let t;const[e,i]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{Ka.test(t)&&m(a)<1e3&&x(a,t)}]})(),s=Na(),r=(a,e,i,r)=>{let c,o=!1;if(L(((a,t=[n])=>{const e=[],i=(a,n)=>n==m(t)?x(e,a):y(t[n])?I(a,a=>i(a,n+1)):L([t[n],null],t=>i(_a(a,t),n+1));return i(a,0),e})(e,i),n=>I(n,n=>{const e=()=>_a(s,n)[0](t,...i??[],...r);a?(a=>{try{return a()}catch(a){(a=>{o||(c=a),o=!0})?.(a)}})(e):e()})),o)throw c};return[(i,r,c,o=[],l=()=>[])=>{t??=a();const w=e(1);return pa(s,w,[i,r,c,o,l]),Ia(Ta(r,c??[n],ga),w),w},(a,t,...n)=>r(!1,a,t,n),a=>f(_a(s,a),([,t,e])=>(Ta(t,e??[n],void 0,t=>(S(t,a),h(t)?1:0)),pa(s,a),i(a),e)),a=>f(_a(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const c=m(r);c==m(n)?a(t,...r,...i(r)):y(n[c])?L(e[c]?.(...r)??[],a=>s(...r,a)):s(...r,n[c])};s()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>Ea),aa=a=>{a!=p&&(p=a,W(Y,void 0,p))},ta=()=>{_a(Wa,w)||_a(Qa,w)||!N(_a(Va,w)??[])||(pa(Qa,w),pa(Va,w),pa(Wa,w))},na=t=>{(z&&$(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ea=async()=>{da()&&a.__?.[0]?.()&&await wa()},ia=a=>b(()=>v=a,()=>{v==a&&(v=void 0)}),sa=async a=>(2!=p&&(await b(async()=>{aa(1),T++,await fa(()=>R(async()=>{const n=await t();$(n)?na(n):u(n)&&a?Q(a):u(n)||D(1,n)},t=>{r?.(t),a&&Q(a)}))},()=>aa(0)),await ea()),Ea),ra=async()=>{const a=j;j=0,a&&a==C&&!q&&(2==p?j=a:await sa())},ca=async a=>{const t=++C;let n=!0;if(await la(!0),t==C&&!q){const e=R(async()=>{const a=await i(async(a,e)=>{if(t==C&&!q)if(e||a){const t=n||2==p||!!B;U++,t&&B++,await b(async()=>{aa(1),T++,await(t?fa(()=>na(e??a)):(()=>{try{return na(e??a)}finally{aa(0)}})())},()=>{t&&B--,--U||aa(0)}),U||await ea()}else 2==p?j=t:await sa()});t!=C||q?u(a)||await s(a):d=a},r);await ia(e),t!=C||q||await b(()=>sa(a),()=>{n=!1})}return Ea},la=async(a=!1)=>{j=0,a||C++;const t=v,n=d;return d=void 0,await ia(b(async()=>{await t},async()=>{u(n)||await R(()=>s(n),r)})),Ea},wa=async a=>(1!=p&&await b(()=>b(async()=>{aa(2),g++,await fa(()=>R(()=>e(G,a),r))},()=>aa(0)),ra),Ea),ua=async()=>{const t=++k;return await ya(!0),t!=k||q||(await wa(),t!=k||q||(E=a.addDidFinishTransactionListener(()=>{if(t==k&&!q){const a=H();K(a)&&R(()=>wa(a))}}))),Ea},ya=async(t=!1)=>{t||k++;const n=E;return E=void 0,u(n)||a.delListener(n),Ea},da=()=>!u(E),va=async(a=!1)=>{const[t,n]=a?[ya,la]:[la,ya];return await b(()=>t(),async()=>{await n()}),Ea},fa=async(...a)=>{let t,n=!1;const e=A(e=>N(a)?e():x(_a(Va,w),...M(a,(i,s)=>{const c=s==m(a)-1;return[async()=>{let a;O=A(t=>a=t),await b(async()=>{try{await R(i,r)}catch(a){n||(n=!0,t=a)}c&&e()},()=>{O=void 0,a()})},c?e:void 0,J]})));if(await(async()=>{if(!_a(Qa,w)){pa(Qa,w,1);const a=_a(Va,w);let t=0;await b(async()=>{for(;t<m(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{F(a,t),pa(Qa,w,0),ta()})}})(),await e,n)throw t;return Ea},Ea={load:sa,startAutoLoad:ca,stopAutoLoad:la,isAutoLoading:()=>!u(d),save:wa,startAutoSave:ua,stopAutoSave:ya,isAutoSaving:da,startAutoPersisting:async(a,t=!1)=>{const[n,e]=t?[ua,ca]:[ca,ua];return await n(a),await e(a),Ea},stopAutoPersisting:va,getStatus:()=>p,addStatusListener:a=>V(a,Y),delListener:t=>(Z(t),a),schedule:fa,getStore:()=>a,getStats:()=>({loads:T,saves:g}),...o,destroy:async()=>(u(_)&&(q=1,_=(async()=>{const a=_a(Va,w),t=P(a,([,a,t])=>t!=J||(a?.(),!1)),n=O;F(a),x(a,...t),await b(()=>b(()=>b(va,()=>n),()=>X?.()),()=>{const a=(_a(Wa,w)??1)-1;pa(Wa,w,a||void 0),ta()})})()),await _,Ea)};return oa(Ea)},at=new l.TextEncoder,tt=(a,n,i,r,c=nt,o,l,w)=>{const y=Na(),d=Na();let v=a;return[async()=>{g(y),g(d),L(await i(v,n),({tn:a,cn:t,uq:n})=>{Ia(ha(y,a,ga),t),n&&Ia(ha(d,a,ga),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:ga(e);return((a,t)=>p(_a(y,a),t))(a,t)?ua(P(M(await v(z+Z(a)+ta(a,n)),a=>{const n=a[t],e=l?fa(ya(a,t),l):ya(a,t);return[n,u(i)?e:ua(P(va(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||p(i,a))(a)))]}),a=>!u(a[0])&&!$a(a[1]))):{}},async(a,n,i,l,w,f=!1,E=s,$)=>{const m=u($)?void 0:ga($),_=a=>u(m)||p(m,a),A=ga();da(i??{},a=>L(P(ca(a??{}),_),a=>Ia(A,a)));const h=T(A);if(u(m)&&!f&&w&&E==s&&N(h)&&p(y,a))return await v("DROP "+q+Z(a)),pa(y,a),void pa(d,a);const g=_a(y,a),I=ga(P(T(g),a=>a==n||_(a)));if(!N(h))if(p(y,a)){if(await O(M([n,...h],async t=>{S(I,t)||(await v(J+Z(a)+"ADD"+Z(t)+r),Ia(g,t))})),c==nt&&!p(_a(d,a),n)){const e=t+"_pk_"+(a=>{let t=2166136261;return L(at.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(za([a,n]));await v("CREATE UNIQUE INDEX IF NOT EXISTS"+Z(e)+"ON"+Z(a)+`(${Z(n)})`),Ia(ha(d,a,ga),n)}}else await v(V+Z(a)+`(${Z(n)}${r} PRIMARY KEY${C(M(h,a=>e+Z(a)+r))});`),pa(y,a,ga([n,...h])),pa(d,a,ga([n]));if(await O([...!f&&l?M(T(I),async t=>{t!=n&&(await v(J+Z(a)+"DROP"+Z(t)),S(g,t))}):[]]),f)u(i)?u(m)&&await v(Y+Z(a)+ta(a,E)):await O(va(i,async(t,e)=>{if(u(t))await v(Y+Z(a)+ta(a,E)+`AND(${Z(n)}=$1)`,[e]);else if(!N(h)){const i=P(ca(t),_);N(i)||await c(v,a,n,i,{[e]:M(i,a=>o?o(t[a]):t[a])},g)}}));else if(N(h))u(m)&&p(y,a)&&await v(Y+Z(a)+ta(a,E));else{const t=P(T(_a(y,a)),a=>a!=n&&_(a)),e=ua(),s=[];da(i??{},(a,n)=>{wa(e,n,M(t,t=>o?o(a?.[t]):a?.[t])),x(s,n)}),await c(v,a,n,t,e,g),await v(Y+Z(a)+ta(a,E)+`AND${Z(n)}NOT IN(${aa(s)})`,s)}},async t=>{if(w)return await w(async a=>{const n=v;return v=a,await b(t,()=>{v=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await R(()=>a("ROLLBACK")),t}}]},nt=async(a,t,n,i,s)=>{const r=[1];await a("INSERT INTO"+Z(t)+"("+((...a)=>C(M(a,Z),e))(n,...i)+")VALUES"+C(va(s,a=>"($"+r[0]+++","+aa(a,r)+")"),e)+"ON CONFLICT("+Z(n)+")DO UPDATE SET"+C(M(i,a=>Z(a)+"=excluded."+Z(a)),e),va(s,(a,t)=>[t,...M(a,a=>a??null)]).flat())},et=(a,t,n,e,i,s,r,[c,o,l],w,y,d,v,f,E,$,m,N)=>{const[_,A,O,p]=tt(t,w,y,f,E,void 0,void 0,N);return Za(a,()=>p(async()=>{return await _(),a=(await A(c,o))[U]?.[l]??"null",Ha(Ga(a));var a}),a=>p(async()=>{var t;await _(),await O(c,o,{[U]:{[l]:(t=a()??null,za(t,(a,t)=>u(t)?"":t))}},!0,!0)}),n,e,i,r,{[v]:()=>d,destroy:s},0,d)},it=(a,t,n,e,i,s,r,[c,o,[l,w,y,d,v]],f,E,$,m,N,_,A,p,h)=>{const[T,g,I,S]=tt(t,f,E,N,_,A,p,h),D=(a,t)=>O(Oa(o,async([n,e,i,s,r],c)=>{var o,l;t&&(o=a,l=c,!ea.hasOwn(o,l))||await I(n,e,a[c],i,s,t,r)})),R=(a,t,n)=>ua(1==n?P(va(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):P(M(t,t=>[t,a[t]]),([,a])=>!u(a))),b=async(a,t)=>w?await I(y,B,{[U]:u(v)?a:R(a,v,t)},!0,!0,t,void 0,v):null;return Za(a,()=>S(async()=>{await T();const a=await(async()=>ua(P(await O(Oa(c,async([a,t,n],e)=>[a,await g(e,t,n)])),a=>!$a(a[1]))))(),t=await(async()=>l?(await g(y,B,void 0,d))[U]:{})();return $a(a)&&u(t)?void 0:[a,t]}),(a,t)=>S(async()=>{if(await T(),u(t)){const[t,n]=a();await D(t),await b(n)}else await D(t[0],!0),await b(t[1],!0)}),n,e,i,r,{[m]:()=>$,destroy:s},0,$)},st=(a,e,i,r,o,l,y,v,f,$,m="getDb",N,_)=>{let A,O,h;const g=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,l),[I,S,L,C]=(a=>{const n=(a=>la(ka,E(a)?{[ba]:a}:a??{}))(a),e=n[Ma];if(n.mode==Ra){const a=n[ba]??t;return[1,e,[a,n[La]??B,n[Ca]??Da],ga(a)]}const{tables:{load:i={},save:r={}}={},values:c={}}=n,o=la(qa,c),{load:l,save:w}=o,u=[Xa(l),Xa(w),o[xa],Ja(l),Ja(w)],y=u[2],d=ga(y),v=ga(y),f=Ya(i,{[Fa]:null,[Pa]:B,[ja]:s},Fa,a=>p(v,a),a=>Ia(d,a)),$=Ya(r,{[xa]:null,[Pa]:B,[Ua]:0,[Ba]:0,[ja]:null},xa,(a,t)=>p(v,t),(a,t)=>Ia(d,t));return Aa($,(a,t)=>t[4]??=_a(f,t[0])?.[2]??s),[0,e,[f,$,u],d]})(e);return!I&&a.isMergeable()&&D(0),(I?et:it)(a,g,a=>{let t,n,e=1,i=0,s=0;const l=async(t=!0)=>{const[{d:n,s:i,c:r}]=await g(j+` ${H} d,${K} s,TOTAL_CHANGES() c FROM ${G}${H} JOIN ${G}${K}`);if(e&&(n!=A||i!=O||r!=h)){const c=t&&!s&&!w(A);A=n,O=i,h=r,c&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const c=b(()=>((t,n)=>R(async()=>{for(i?r&&await l():(await l(!1),i=1);e&&s;)s=0,await l(!1),e&&(await a(),await l())},a=>{R(()=>n?.(a))}))(0,y),()=>{n==c&&(n=void 0),e&&(s?v():e&&u(t)&&(t=setInterval(()=>v(!0),1e3*S)))});return n=c,c},f=r(a=>{e&&p(C,a)&&(s=1,d(),c.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,s=0,d(),await b(async()=>await n,async()=>{A=O=h=null,await o(f)})})},a=>a(),y,v,f,L,T(C),async(a,t)=>await a(j+` t.name tn,c.name cn,c.pk OR EXISTS(${j} 1 FROM ${G}index_list(t.name)i,${G}index_info(i.name)ii ${k} i."unique"=1 AND ii.name=c.name AND(${j} count(*) FROM ${G}index_info(i.name))=1)uq FROM ${Q}list()t,${Q}info(t.name)c ${k} t.schema='main'AND t.type IN('table','view')AND t.name IN(${aa(t)})ORDER BY t.name,c.name`,t),$,m,n,N,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,_)},rt=(a,t,n,e,i)=>st(a,n,async(a,n=[])=>await t.execO(a,n),a=>t.onUpdate((t,n,e)=>a(e)),a=>a(),e,i,_,1,t);export{rt as createCrSqliteWasmPersister};
|
|
1
|
+
const a=a=>typeof a,t="tinybase",n="",e=",",i=a(n),s="true",r=(a,t,n)=>a.replace(t,n),c=Promise,o=a=>(t,n,e)=>a(t)?e?.():n(t),l=globalThis,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=o(w),f=o(u),E=t=>a(t)==i,$=a=>Array.isArray(a),m=a=>a.length,N=a=>0==m(a),_=()=>{},A=a=>new c(a),O=async a=>c.all(a),h=(a,t)=>a?.has(t)??!1,p=a=>u(a)||0==(a=>a?.size??0)(a),T=a=>[...a?.values()??[]],g=a=>a.clear(),I=(a,t)=>a?.forEach(t),S=(a,t)=>a?.delete(t),D=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},R=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},b=(a,t)=>R(a,a=>{R(()=>t?.(a))}),L=async(a,t)=>{try{return await a()}finally{await t()}},C=(a,t)=>a.forEach(t),M=(a,t="")=>a.join(t),P=(a,t)=>a.map(t),F=(a,t)=>a.filter(t),x=(a,t=m(a))=>a.splice(0,t),U=(a,...t)=>a.push(...t),B="_",j="_id",k="SELECT",q="WHERE",J="TABLE",X="ALTER "+J,Y="FROM",z="DELETE "+Y,G=k+"*"+Y,H="pragma_",K="data_version",Q="schema_version",V="pragma_table_",W="CREATE "+J,Z=/\$tableName/g,aa=a=>M(P(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),ta=(a,t=[1])=>M(P(a,()=>"$"+t[0]++),e),na=(a,t=s)=>q+`(${ea(t,aa(a))})`,ea=(a,t)=>r(a,Z,t),ia=Object,sa=a=>ia.getPrototypeOf(a),ra=ia.entries,ca=a=>!w(a)&&v(sa(a),a=>a==ia.prototype||w(sa(a)),()=>!0),oa=ia.keys,la=ia.freeze,wa=(...a)=>ia.assign(ia.create(null),...a),ua=(a,t,n)=>(ia.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),ya=(a=[])=>{const t=ia.create(null);return C(a,([a,n])=>ua(t,a,n)),t},da=(a,t)=>(delete a[t],a),va=(a,t)=>C(oa(a),n=>t(a[n],n)),fa=(a,t)=>P(ra(a),([a,n])=>t(n,a)),Ea=(a,t)=>{const n=ya();return va(a,(a,e)=>ua(n,e,t(a,e))),n},$a=a=>m(oa(a)),ma=a=>ca(a)&&0==$a(a),Na=Map,_a=a=>new Na(a),Aa=(a,t)=>a?.get(t),Oa=(a,t)=>I(a,(a,n)=>t(n,a)),ha=(a,t)=>{const n=[];return Oa(a,(a,e)=>U(n,t(e,a))),n},pa=(a,t,n)=>u(n)?(S(a,t),a):a?.set(t,n),Ta=(a,t,n,e)=>{let i=Aa(a,t);return h(a,t)?e?.(i):pa(a,t,i=n()),i},ga=(a,t,n,e,i=0)=>f((n?Ta:Aa)(a,t[i],i>m(t)-2?n:_a),s=>{if(i>m(t)-2)return e?.(s)&&pa(a,t[i]),s;const r=ga(s,t,n,e,i+1);return p(s)&&pa(a,t[i]),r}),Ia=a=>new Set($(a)||u(a)?a:[a]),Sa=(a,t)=>a?.add(t),Da="ColumnName",Ra="store",ba="json",La=Ra+"TableName",Ca=Ra+"Id"+Da,Ma=Ra+Da,Pa="autoLoadIntervalSeconds",Fa="rowId"+Da,xa="tableId",Ua="tableName",Ba="deleteEmptyColumns",ja="deleteEmptyTable",ka="condition",qa={mode:ba,[Pa]:1},Ja={load:0,save:0,[Ua]:t+"_values"},Xa=a=>$(a)?a:void 0,Ya=a=>d(a)||$(a),za=(a,t,n,e,i)=>{const s=_a();return va(a,(a,r)=>{const c=(w=wa(t,E(a)?{[n]:a}:a),o=ia.values(w),l=$a(t),o.slice(0,l));var o,l,w;y(c[0])||e(r,c[0])||(i(r,c[0]),pa(s,r,c))}),s},Ga=JSON.stringify,Ha=JSON.parse,Ka=a=>""===a?void 0:$(a)?P(a,Ka):ca(a)?Ea(a,Ka):a,Qa=/^\d+$/,Va=_a(),Wa=_a(),Za=_a(),at=(a,t,e,i,s,r,c,o={},l=0,w=[])=>{let d,v,E,_,O,h=0,T=0,g=0,M=0,B=0,j=0,k=0,q=0,J=0;const X={},Y=o.destroy;Ta(Va,w,()=>0),Ta(Wa,w,()=>[]),pa(Za,w,(Aa(Za,w)??0)+1);const z=_a(),[G,H,K,Q,V]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!ma(a)||!ma(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!ma(a)||!ma(t),t.setContent]:D(0))(c,a,l),[W,Z,aa]=(a=>{let t;const[e,i]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{Qa.test(t)&&m(a)<1e3&&U(a,t)}]})(),s=_a(),r=(a,e,i,r)=>{let c,o=!1;if(C(((a,t=[n])=>{const e=[],i=(a,n)=>n==m(t)?U(e,a):y(t[n])?I(a,a=>i(a,n+1)):C([t[n],null],t=>i(Aa(a,t),n+1));return i(a,0),e})(e,i),n=>I(n,n=>{const e=()=>Aa(s,n)[0](t,...i??[],...r);a?(a=>{try{return a()}catch(a){(a=>{o||(c=a),o=!0})?.(a)}})(e):e()})),o)throw c};return[(i,r,c,o=[],l=()=>[])=>{t??=a();const w=e(1);return pa(s,w,[i,r,c,o,l]),Sa(ga(r,c??[n],Ia),w),w},(a,t,...n)=>r(!1,a,t,n),a=>f(Aa(s,a),([,t,e])=>(ga(t,e??[n],void 0,t=>(S(t,a),p(t)?1:0)),pa(s,a),i(a),e)),a=>f(Aa(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const c=m(r);c==m(n)?a(t,...r,...i(r)):y(n[c])?C(e[c]?.(...r)??[],a=>s(...r,a)):s(...r,n[c])};s()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>$a),ta=a=>{a!=h&&(h=a,Z(z,void 0,h))},na=()=>{Aa(Za,w)||Aa(Va,w)||!N(Aa(Wa,w)??[])||(pa(Va,w),pa(Wa,w),pa(Za,w))},ea=t=>{(G&&$(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ia=async()=>{va()&&a.__?.[0]?.()&&await ua()},sa=a=>L(()=>v=a,()=>{v==a&&(v=void 0)}),ra=async a=>(2!=h&&(await L(async()=>{ta(1),T++,await Ea(()=>R(async()=>{const n=await t();$(n)?ea(n):u(n)&&a?V(a):u(n)||D(1,n)},t=>{r?.(t),a&&V(a)}))},()=>ta(0)),await ia()),$a),ca=async()=>{const a=k;k=0,a&&a==M&&!J&&(2==h?k=a:await ra())},oa=async a=>{const t=++M;let n=!0;if(await wa(!0),t==M&&!J){const e=R(async()=>{const a=await i(async(a,e)=>{if(t==M&&!J)if(e||a){const t=n||2==h||!!j;B++,t&&j++,await L(async()=>{ta(1),T++,await(t?Ea(()=>ea(e??a)):(()=>{try{return ea(e??a)}finally{ta(0)}})())},()=>{t&&j--,--B||ta(0)}),B||await ia()}else 2==h?k=t:await ra()});t!=M||J?u(a)||await s(a):d=a},r);await sa(e),t!=M||J||await L(()=>ra(a),()=>{n=!1})}return $a},wa=async(a=!1)=>{k=0,a||M++;const t=v,n=d;return d=void 0,await sa(L(async()=>{await t},async()=>{u(n)||await R(()=>s(n),r)})),$a},ua=async a=>(1!=h&&await L(()=>L(async()=>{ta(2),g++,await Ea(()=>R(()=>e(H,a),r))},()=>ta(0)),ca),$a),ya=async()=>{const t=++q;return await da(!0),t!=q||J||(await ua(),t!=q||J||(E=a.addDidFinishTransactionListener(()=>{if(t==q&&!J){const a=K();Q(a)&&R(()=>ua(a))}}))),$a},da=async(t=!1)=>{t||q++;const n=E;return E=void 0,u(n)||a.delListener(n),$a},va=()=>!u(E),fa=async(a=!1)=>{const[t,n]=a?[da,wa]:[wa,da];return await L(()=>t(),async()=>{await n()}),$a},Ea=async(...a)=>{let t,n=!1;const e=A(e=>N(a)?e():U(Aa(Wa,w),...P(a,(i,s)=>{const c=s==m(a)-1;return[async()=>{let a;O=A(t=>a=t),await L(async()=>{try{await R(i,r)}catch(a){n||(n=!0,t=a)}c&&e()},()=>{O=void 0,a()})},c?e:void 0,X]})));if(await(async()=>{if(!Aa(Va,w)){pa(Va,w,1);const a=Aa(Wa,w);let t=0;await L(async()=>{for(;t<m(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{x(a,t),pa(Va,w,0),na()})}})(),await e,n)throw t;return $a},$a={load:ra,startAutoLoad:oa,stopAutoLoad:wa,isAutoLoading:()=>!u(d),save:ua,startAutoSave:ya,stopAutoSave:da,isAutoSaving:va,startAutoPersisting:async(a,t=!1)=>{const[n,e,i,s]=t?[ya,oa,da,wa]:[oa,ya,wa,da],r=n(a),c=t?q:M;await r;const o=e(a),l=t?M:q;try{await o}catch(a){throw l==(t?M:q)&&await b(s),c==(t?q:M)&&await b(i),a}return $a},stopAutoPersisting:fa,getStatus:()=>h,addStatusListener:a=>W(a,z),delListener:t=>(aa(t),a),schedule:Ea,getStore:()=>a,getStats:()=>({loads:T,saves:g}),...o,destroy:async()=>(u(_)&&(J=1,_=(async()=>{const a=Aa(Wa,w),t=F(a,([,a,t])=>t!=X||(a?.(),!1)),n=O;x(a),U(a,...t),await L(()=>L(()=>L(fa,()=>n),()=>Y?.()),()=>{const a=(Aa(Za,w)??1)-1;pa(Za,w,a||void 0),na()})})()),await _,$a)};return la($a)},tt=new l.TextEncoder,nt=(a,n,i,r,c=et,o,l,w)=>{const y=_a(),d=_a();let v=a;return[async()=>{g(y),g(d),C(await i(v,n),({tn:a,cn:t,uq:n})=>{Sa(Ta(y,a,Ia),t),n&&Sa(Ta(d,a,Ia),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:Ia(e);return((a,t)=>h(Aa(y,a),t))(a,t)?ya(F(P(await v(G+aa(a)+na(a,n)),a=>{const n=a[t],e=l?Ea(da(a,t),l):da(a,t);return[n,u(i)?e:ya(F(fa(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||h(i,a))(a)))]}),a=>!u(a[0])&&!ma(a[1]))):{}},async(a,n,i,l,w,f=!1,E=s,$)=>{const m=u($)?void 0:Ia($),_=a=>u(m)||h(m,a),A=Ia();va(i??{},a=>C(F(oa(a??{}),_),a=>Sa(A,a)));const p=T(A);if(u(m)&&!f&&w&&E==s&&N(p)&&h(y,a))return await v("DROP "+J+aa(a)),pa(y,a),void pa(d,a);const g=Aa(y,a),I=Ia(F(T(g),a=>a==n||_(a)));if(!N(p))if(h(y,a)){if(await O(P([n,...p],async t=>{S(I,t)||(await v(X+aa(a)+"ADD"+aa(t)+r),Sa(g,t))})),c==et&&!h(Aa(d,a),n)){const e=t+"_pk_"+(a=>{let t=2166136261;return C(tt.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(Ga([a,n]));await v("CREATE UNIQUE INDEX IF NOT EXISTS"+aa(e)+"ON"+aa(a)+`(${aa(n)})`),Sa(Ta(d,a,Ia),n)}}else await v(W+aa(a)+`(${aa(n)}${r} PRIMARY KEY${M(P(p,a=>e+aa(a)+r))});`),pa(y,a,Ia([n,...p])),pa(d,a,Ia([n]));if(await O([...!f&&l?P(T(I),async t=>{t!=n&&(await v(X+aa(a)+"DROP"+aa(t)),S(g,t))}):[]]),f)u(i)?u(m)&&await v(z+aa(a)+na(a,E)):await O(fa(i,async(t,e)=>{if(u(t))await v(z+aa(a)+na(a,E)+`AND(${aa(n)}=$1)`,[e]);else if(!N(p)){const i=F(oa(t),_);N(i)||await c(v,a,n,i,{[e]:P(i,a=>o?o(t[a]):t[a])},g)}}));else if(N(p))u(m)&&h(y,a)&&await v(z+aa(a)+na(a,E));else{const t=F(T(Aa(y,a)),a=>a!=n&&_(a)),e=ya(),s=[];va(i??{},(a,n)=>{ua(e,n,P(t,t=>o?o(a?.[t]):a?.[t])),U(s,n)}),await c(v,a,n,t,e,g),await v(z+aa(a)+na(a,E)+`AND${aa(n)}NOT IN(${ta(s)})`,s)}},async t=>{if(w)return await w(async a=>{const n=v;return v=a,await L(t,()=>{v=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await R(()=>a("ROLLBACK")),t}}]},et=async(a,t,n,i,s)=>{const r=[1];await a("INSERT INTO"+aa(t)+"("+((...a)=>M(P(a,aa),e))(n,...i)+")VALUES"+M(fa(s,a=>"($"+r[0]+++","+ta(a,r)+")"),e)+"ON CONFLICT("+aa(n)+")DO UPDATE SET"+M(P(i,a=>aa(a)+"=excluded."+aa(a)),e),fa(s,(a,t)=>[t,...P(a,a=>a??null)]).flat())},it=(a,t,n,e,i,s,r,[c,o,l],w,y,d,v,f,E,$,m,N)=>{const[_,A,O,h]=nt(t,w,y,f,E,void 0,void 0,N);return at(a,()=>h(async()=>{return await _(),a=(await A(c,o))[B]?.[l]??"null",Ka(Ha(a));var a}),a=>h(async()=>{var t;await _(),await O(c,o,{[B]:{[l]:(t=a()??null,Ga(t,(a,t)=>u(t)?"":t))}},!0,!0)}),n,e,i,r,{[v]:()=>d,destroy:s},0,d)},st=(a,t,n,e,i,s,r,[c,o,[l,w,y,d,v]],f,E,$,m,N,_,A,h,p)=>{const[T,g,I,S]=nt(t,f,E,N,_,A,h,p),D=(a,t)=>O(ha(o,async([n,e,i,s,r],c)=>{var o,l;t&&(o=a,l=c,!ia.hasOwn(o,l))||await I(n,e,a[c],i,s,t,r)})),R=(a,t,n)=>ya(1==n?F(fa(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):F(P(t,t=>[t,a[t]]),([,a])=>!u(a))),b=async(a,t)=>w?await I(y,j,{[B]:u(v)?a:R(a,v,t)},!0,!0,t,void 0,v):null;return at(a,()=>S(async()=>{await T();const a=await(async()=>ya(F(await O(ha(c,async([a,t,n],e)=>[a,await g(e,t,n)])),a=>!ma(a[1]))))(),t=await(async()=>l?(await g(y,j,void 0,d))[B]:{})();return ma(a)&&u(t)?void 0:[a,t]}),(a,t)=>S(async()=>{if(await T(),u(t)){const[t,n]=a();await D(t),await b(n)}else await D(t[0],!0),await b(t[1],!0)}),n,e,i,r,{[m]:()=>$,destroy:s},0,$)},rt=(a,e,i,r,o,l,y,v,f,$,m="getDb",N,_)=>{let A,O,p;const g=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,l),[I,S,R,C]=(a=>{const n=(a=>wa(qa,E(a)?{[La]:a}:a??{}))(a),e=n[Pa];if(n.mode==ba){const a=n[La]??t;return[1,e,[a,n[Ca]??j,n[Ma]??Ra],Ia(a)]}const{tables:{load:i={},save:r={}}={},values:c={}}=n,o=wa(Ja,c),{load:l,save:w}=o,u=[Ya(l),Ya(w),o[Ua],Xa(l),Xa(w)],y=u[2],d=Ia(y),v=Ia(y),f=za(i,{[xa]:null,[Fa]:j,[ka]:s},xa,a=>h(v,a),a=>Sa(d,a)),$=za(r,{[Ua]:null,[Fa]:j,[Ba]:0,[ja]:0,[ka]:null},Ua,(a,t)=>h(v,t),(a,t)=>Sa(d,t));return Oa($,(a,t)=>t[4]??=Aa(f,t[0])?.[2]??s),[0,e,[f,$,u],d]})(e);return!I&&a.isMergeable()&&D(0),(I?it:st)(a,g,a=>{let t,n,e=1,i=0,s=0;const l=async(t=!0)=>{const[{d:n,s:i,c:r}]=await g(k+` ${K} d,${Q} s,TOTAL_CHANGES() c FROM ${H}${K} JOIN ${H}${Q}`);if(e&&(n!=A||i!=O||r!=p)){const c=t&&!s&&!w(A);A=n,O=i,p=r,c&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const c=L(()=>b(async()=>{for(i?r&&await l():(await l(!1),i=1);e&&s;)s=0,await l(!1),e&&(await a(),await l())},y),()=>{n==c&&(n=void 0),e&&(s?v():e&&u(t)&&(t=setInterval(()=>v(!0),1e3*S)))});return n=c,c},f=r(a=>{e&&h(C,a)&&(s=1,d(),c.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,s=0,d(),await L(async()=>await n,async()=>{A=O=p=null,await o(f)})})},a=>a(),y,v,f,R,T(C),async(a,t)=>await a(k+` t.name tn,c.name cn,c.pk OR EXISTS(${k} 1 FROM ${H}index_list(t.name)i,${H}index_info(i.name)ii ${q} i."unique"=1 AND ii.name=c.name AND(${k} count(*) FROM ${H}index_info(i.name))=1)uq FROM ${V}list()t,${V}info(t.name)c ${q} t.schema='main'AND t.type IN('table','view')AND t.name IN(${ta(t)})ORDER BY t.name,c.name`,t),$,m,n,N,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,_)},ct=(a,t,n,e,i)=>rt(a,n,async(a,n=[])=>await t.execO(a,n),a=>t.onUpdate((t,n,e)=>a(e)),a=>a(),e,i,_,1,t);export{ct as createCrSqliteWasmPersister};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a=a=>typeof a,t="tinybase",n="",e=",",i=a(n),s="true",r=(a,t,n)=>a.replace(t,n),c=Promise,o=a=>(t,n,e)=>a(t)?e?.():n(t),l=globalThis,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=o(w),f=o(u),E=t=>a(t)==i,$=a=>Array.isArray(a),m=a=>a.length,N=a=>0==m(a),_=()=>{},A=a=>new c(a),O=async a=>c.all(a),p=(a,t)=>a?.has(t)??!1,h=a=>u(a)||0==(a=>a?.size??0)(a),T=a=>[...a?.values()??[]],g=a=>a.clear(),I=(a,t)=>a?.forEach(t),S=(a,t)=>a?.delete(t),D=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},R=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},b=async(a,t)=>{try{return await a()}finally{await t()}},L=(a,t)=>a.forEach(t),C=(a,t="")=>a.join(t),M=(a,t)=>a.map(t),P=(a,t)=>a.filter(t),F=(a,t=m(a))=>a.splice(0,t),x=(a,...t)=>a.push(...t),U="_",B="_id",j="SELECT",k="WHERE",q="TABLE",J="ALTER "+q,X="FROM",Y="DELETE "+X,z=j+"*"+X,G="pragma_",H="data_version",K="schema_version",Q="pragma_table_",V="CREATE "+q,W=/\$tableName/g,Z=a=>C(M(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),aa=(a,t=[1])=>C(M(a,()=>"$"+t[0]++),e),ta=(a,t=s)=>k+`(${na(t,Z(a))})`,na=(a,t)=>r(a,W,t),ea=Object,ia=a=>ea.getPrototypeOf(a),sa=ea.entries,ra=a=>!w(a)&&v(ia(a),a=>a==ea.prototype||w(ia(a)),()=>!0),ca=ea.keys,oa=ea.freeze,la=(...a)=>ea.assign(ea.create(null),...a),wa=(a,t,n)=>(ea.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),ua=(a=[])=>{const t=ea.create(null);return L(a,([a,n])=>wa(t,a,n)),t},ya=(a,t)=>(delete a[t],a),da=(a,t)=>L(ca(a),n=>t(a[n],n)),va=(a,t)=>M(sa(a),([a,n])=>t(n,a)),fa=(a,t)=>{const n=ua();return da(a,(a,e)=>wa(n,e,t(a,e))),n},Ea=a=>m(ca(a)),$a=a=>ra(a)&&0==Ea(a),ma=Map,Na=a=>new ma(a),_a=(a,t)=>a?.get(t),Aa=(a,t)=>I(a,(a,n)=>t(n,a)),Oa=(a,t)=>{const n=[];return Aa(a,(a,e)=>x(n,t(e,a))),n},pa=(a,t,n)=>u(n)?(S(a,t),a):a?.set(t,n),ha=(a,t,n,e)=>{let i=_a(a,t);return p(a,t)?e?.(i):pa(a,t,i=n()),i},Ta=(a,t,n,e,i=0)=>f((n?ha:_a)(a,t[i],i>m(t)-2?n:Na),s=>{if(i>m(t)-2)return e?.(s)&&pa(a,t[i]),s;const r=Ta(s,t,n,e,i+1);return h(s)&&pa(a,t[i]),r}),ga=a=>new Set($(a)||u(a)?a:[a]),Ia=(a,t)=>a?.add(t),Sa="ColumnName",Da="store",Ra="json",ba=Da+"TableName",La=Da+"Id"+Sa,Ca=Da+Sa,Ma="autoLoadIntervalSeconds",Pa="rowId"+Sa,Fa="tableId",xa="tableName",Ua="deleteEmptyColumns",Ba="deleteEmptyTable",ja="condition",ka={mode:Ra,[Ma]:1},qa={load:0,save:0,[xa]:t+"_values"},Ja=a=>$(a)?a:void 0,Xa=a=>d(a)||$(a),Ya=(a,t,n,e,i)=>{const s=Na();return da(a,(a,r)=>{const c=(w=la(t,E(a)?{[n]:a}:a),o=ea.values(w),l=Ea(t),o.slice(0,l));var o,l,w;y(c[0])||e(r,c[0])||(i(r,c[0]),pa(s,r,c))}),s},za=JSON.stringify,Ga=JSON.parse,Ha=a=>""===a?void 0:$(a)?M(a,Ha):ra(a)?fa(a,Ha):a,Ka=/^\d+$/,Qa=Na(),Va=Na(),Wa=Na(),Za=(a,t,e,i,s,r,c,o={},l=0,w=[])=>{let d,v,E,_,O,p=0,T=0,g=0,C=0,U=0,B=0,j=0,k=0,q=0;const J={},X=o.destroy;ha(Qa,w,()=>0),ha(Va,w,()=>[]),pa(Wa,w,(_a(Wa,w)??0)+1);const Y=Na(),[z,G,H,K,Q]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!$a(a)||!$a(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!$a(a)||!$a(t),t.setContent]:D(0))(c,a,l),[V,W,Z]=(a=>{let t;const[e,i]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{Ka.test(t)&&m(a)<1e3&&x(a,t)}]})(),s=Na(),r=(a,e,i,r)=>{let c,o=!1;if(L(((a,t=[n])=>{const e=[],i=(a,n)=>n==m(t)?x(e,a):y(t[n])?I(a,a=>i(a,n+1)):L([t[n],null],t=>i(_a(a,t),n+1));return i(a,0),e})(e,i),n=>I(n,n=>{const e=()=>_a(s,n)[0](t,...i??[],...r);a?(a=>{try{return a()}catch(a){(a=>{o||(c=a),o=!0})?.(a)}})(e):e()})),o)throw c};return[(i,r,c,o=[],l=()=>[])=>{t??=a();const w=e(1);return pa(s,w,[i,r,c,o,l]),Ia(Ta(r,c??[n],ga),w),w},(a,t,...n)=>r(!1,a,t,n),a=>f(_a(s,a),([,t,e])=>(Ta(t,e??[n],void 0,t=>(S(t,a),h(t)?1:0)),pa(s,a),i(a),e)),a=>f(_a(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const c=m(r);c==m(n)?a(t,...r,...i(r)):y(n[c])?L(e[c]?.(...r)??[],a=>s(...r,a)):s(...r,n[c])};s()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>Ea),aa=a=>{a!=p&&(p=a,W(Y,void 0,p))},ta=()=>{_a(Wa,w)||_a(Qa,w)||!N(_a(Va,w)??[])||(pa(Qa,w),pa(Va,w),pa(Wa,w))},na=t=>{(z&&$(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ea=async()=>{da()&&a.__?.[0]?.()&&await wa()},ia=a=>b(()=>v=a,()=>{v==a&&(v=void 0)}),sa=async a=>(2!=p&&(await b(async()=>{aa(1),T++,await fa(()=>R(async()=>{const n=await t();$(n)?na(n):u(n)&&a?Q(a):u(n)||D(1,n)},t=>{r?.(t),a&&Q(a)}))},()=>aa(0)),await ea()),Ea),ra=async()=>{const a=j;j=0,a&&a==C&&!q&&(2==p?j=a:await sa())},ca=async a=>{const t=++C;let n=!0;if(await la(!0),t==C&&!q){const e=R(async()=>{const a=await i(async(a,e)=>{if(t==C&&!q)if(e||a){const t=n||2==p||!!B;U++,t&&B++,await b(async()=>{aa(1),T++,await(t?fa(()=>na(e??a)):(()=>{try{return na(e??a)}finally{aa(0)}})())},()=>{t&&B--,--U||aa(0)}),U||await ea()}else 2==p?j=t:await sa()});t!=C||q?u(a)||await s(a):d=a},r);await ia(e),t!=C||q||await b(()=>sa(a),()=>{n=!1})}return Ea},la=async(a=!1)=>{j=0,a||C++;const t=v,n=d;return d=void 0,await ia(b(async()=>{await t},async()=>{u(n)||await R(()=>s(n),r)})),Ea},wa=async a=>(1!=p&&await b(()=>b(async()=>{aa(2),g++,await fa(()=>R(()=>e(G,a),r))},()=>aa(0)),ra),Ea),ua=async()=>{const t=++k;return await ya(!0),t!=k||q||(await wa(),t!=k||q||(E=a.addDidFinishTransactionListener(()=>{if(t==k&&!q){const a=H();K(a)&&R(()=>wa(a))}}))),Ea},ya=async(t=!1)=>{t||k++;const n=E;return E=void 0,u(n)||a.delListener(n),Ea},da=()=>!u(E),va=async(a=!1)=>{const[t,n]=a?[ya,la]:[la,ya];return await b(()=>t(),async()=>{await n()}),Ea},fa=async(...a)=>{let t,n=!1;const e=A(e=>N(a)?e():x(_a(Va,w),...M(a,(i,s)=>{const c=s==m(a)-1;return[async()=>{let a;O=A(t=>a=t),await b(async()=>{try{await R(i,r)}catch(a){n||(n=!0,t=a)}c&&e()},()=>{O=void 0,a()})},c?e:void 0,J]})));if(await(async()=>{if(!_a(Qa,w)){pa(Qa,w,1);const a=_a(Va,w);let t=0;await b(async()=>{for(;t<m(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{F(a,t),pa(Qa,w,0),ta()})}})(),await e,n)throw t;return Ea},Ea={load:sa,startAutoLoad:ca,stopAutoLoad:la,isAutoLoading:()=>!u(d),save:wa,startAutoSave:ua,stopAutoSave:ya,isAutoSaving:da,startAutoPersisting:async(a,t=!1)=>{const[n,e]=t?[ua,ca]:[ca,ua];return await n(a),await e(a),Ea},stopAutoPersisting:va,getStatus:()=>p,addStatusListener:a=>V(a,Y),delListener:t=>(Z(t),a),schedule:fa,getStore:()=>a,getStats:()=>({loads:T,saves:g}),...o,destroy:async()=>(u(_)&&(q=1,_=(async()=>{const a=_a(Va,w),t=P(a,([,a,t])=>t!=J||(a?.(),!1)),n=O;F(a),x(a,...t),await b(()=>b(()=>b(va,()=>n),()=>X?.()),()=>{const a=(_a(Wa,w)??1)-1;pa(Wa,w,a||void 0),ta()})})()),await _,Ea)};return oa(Ea)},at=new l.TextEncoder,tt=(a,n,i,r,c=nt,o,l,w)=>{const y=Na(),d=Na();let v=a;return[async()=>{g(y),g(d),L(await i(v,n),({tn:a,cn:t,uq:n})=>{Ia(ha(y,a,ga),t),n&&Ia(ha(d,a,ga),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:ga(e);return((a,t)=>p(_a(y,a),t))(a,t)?ua(P(M(await v(z+Z(a)+ta(a,n)),a=>{const n=a[t],e=l?fa(ya(a,t),l):ya(a,t);return[n,u(i)?e:ua(P(va(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||p(i,a))(a)))]}),a=>!u(a[0])&&!$a(a[1]))):{}},async(a,n,i,l,w,f=!1,E=s,$)=>{const m=u($)?void 0:ga($),_=a=>u(m)||p(m,a),A=ga();da(i??{},a=>L(P(ca(a??{}),_),a=>Ia(A,a)));const h=T(A);if(u(m)&&!f&&w&&E==s&&N(h)&&p(y,a))return await v("DROP "+q+Z(a)),pa(y,a),void pa(d,a);const g=_a(y,a),I=ga(P(T(g),a=>a==n||_(a)));if(!N(h))if(p(y,a)){if(await O(M([n,...h],async t=>{S(I,t)||(await v(J+Z(a)+"ADD"+Z(t)+r),Ia(g,t))})),c==nt&&!p(_a(d,a),n)){const e=t+"_pk_"+(a=>{let t=2166136261;return L(at.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(za([a,n]));await v("CREATE UNIQUE INDEX IF NOT EXISTS"+Z(e)+"ON"+Z(a)+`(${Z(n)})`),Ia(ha(d,a,ga),n)}}else await v(V+Z(a)+`(${Z(n)}${r} PRIMARY KEY${C(M(h,a=>e+Z(a)+r))});`),pa(y,a,ga([n,...h])),pa(d,a,ga([n]));if(await O([...!f&&l?M(T(I),async t=>{t!=n&&(await v(J+Z(a)+"DROP"+Z(t)),S(g,t))}):[]]),f)u(i)?u(m)&&await v(Y+Z(a)+ta(a,E)):await O(va(i,async(t,e)=>{if(u(t))await v(Y+Z(a)+ta(a,E)+`AND(${Z(n)}=$1)`,[e]);else if(!N(h)){const i=P(ca(t),_);N(i)||await c(v,a,n,i,{[e]:M(i,a=>o?o(t[a]):t[a])},g)}}));else if(N(h))u(m)&&p(y,a)&&await v(Y+Z(a)+ta(a,E));else{const t=P(T(_a(y,a)),a=>a!=n&&_(a)),e=ua(),s=[];da(i??{},(a,n)=>{wa(e,n,M(t,t=>o?o(a?.[t]):a?.[t])),x(s,n)}),await c(v,a,n,t,e,g),await v(Y+Z(a)+ta(a,E)+`AND${Z(n)}NOT IN(${aa(s)})`,s)}},async t=>{if(w)return await w(async a=>{const n=v;return v=a,await b(t,()=>{v=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await R(()=>a("ROLLBACK")),t}}]},nt=async(a,t,n,i,s)=>{const r=[1];await a("INSERT INTO"+Z(t)+"("+((...a)=>C(M(a,Z),e))(n,...i)+")VALUES"+C(va(s,a=>"($"+r[0]+++","+aa(a,r)+")"),e)+"ON CONFLICT("+Z(n)+")DO UPDATE SET"+C(M(i,a=>Z(a)+"=excluded."+Z(a)),e),va(s,(a,t)=>[t,...M(a,a=>a??null)]).flat())},et=(a,t,n,e,i,s,r,[c,o,l],w,y,d,v,f,E,$,m,N)=>{const[_,A,O,p]=tt(t,w,y,f,E,void 0,void 0,N);return Za(a,()=>p(async()=>{return await _(),a=(await A(c,o))[U]?.[l]??"null",Ha(Ga(a));var a}),a=>p(async()=>{var t;await _(),await O(c,o,{[U]:{[l]:(t=a()??null,za(t,(a,t)=>u(t)?"":t))}},!0,!0)}),n,e,i,r,{[v]:()=>d,destroy:s},0,d)},it=(a,t,n,e,i,s,r,[c,o,[l,w,y,d,v]],f,E,$,m,N,_,A,p,h)=>{const[T,g,I,S]=tt(t,f,E,N,_,A,p,h),D=(a,t)=>O(Oa(o,async([n,e,i,s,r],c)=>{var o,l;t&&(o=a,l=c,!ea.hasOwn(o,l))||await I(n,e,a[c],i,s,t,r)})),R=(a,t,n)=>ua(1==n?P(va(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):P(M(t,t=>[t,a[t]]),([,a])=>!u(a))),b=async(a,t)=>w?await I(y,B,{[U]:u(v)?a:R(a,v,t)},!0,!0,t,void 0,v):null;return Za(a,()=>S(async()=>{await T();const a=await(async()=>ua(P(await O(Oa(c,async([a,t,n],e)=>[a,await g(e,t,n)])),a=>!$a(a[1]))))(),t=await(async()=>l?(await g(y,B,void 0,d))[U]:{})();return $a(a)&&u(t)?void 0:[a,t]}),(a,t)=>S(async()=>{if(await T(),u(t)){const[t,n]=a();await D(t),await b(n)}else await D(t[0],!0),await b(t[1],!0)}),n,e,i,r,{[m]:()=>$,destroy:s},0,$)},st=(a,e,i,r,o,l,y,v,f,$,m="getDb",N,_)=>{let A,O,h;const g=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,l),[I,S,L,C]=(a=>{const n=(a=>la(ka,E(a)?{[ba]:a}:a??{}))(a),e=n[Ma];if(n.mode==Ra){const a=n[ba]??t;return[1,e,[a,n[La]??B,n[Ca]??Da],ga(a)]}const{tables:{load:i={},save:r={}}={},values:c={}}=n,o=la(qa,c),{load:l,save:w}=o,u=[Xa(l),Xa(w),o[xa],Ja(l),Ja(w)],y=u[2],d=ga(y),v=ga(y),f=Ya(i,{[Fa]:null,[Pa]:B,[ja]:s},Fa,a=>p(v,a),a=>Ia(d,a)),$=Ya(r,{[xa]:null,[Pa]:B,[Ua]:0,[Ba]:0,[ja]:null},xa,(a,t)=>p(v,t),(a,t)=>Ia(d,t));return Aa($,(a,t)=>t[4]??=_a(f,t[0])?.[2]??s),[0,e,[f,$,u],d]})(e);return!I&&a.isMergeable()&&D(0),(I?et:it)(a,g,a=>{let t,n,e=1,i=0,s=0;const l=async(t=!0)=>{const[{d:n,s:i,c:r}]=await g(j+` ${H} d,${K} s,TOTAL_CHANGES() c FROM ${G}${H} JOIN ${G}${K}`);if(e&&(n!=A||i!=O||r!=h)){const c=t&&!s&&!w(A);A=n,O=i,h=r,c&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const c=b(()=>((t,n)=>R(async()=>{for(i?r&&await l():(await l(!1),i=1);e&&s;)s=0,await l(!1),e&&(await a(),await l())},a=>{R(()=>n?.(a))}))(0,y),()=>{n==c&&(n=void 0),e&&(s?v():e&&u(t)&&(t=setInterval(()=>v(!0),1e3*S)))});return n=c,c},f=r(a=>{e&&p(C,a)&&(s=1,d(),c.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,s=0,d(),await b(async()=>await n,async()=>{A=O=h=null,await o(f)})})},a=>a(),y,v,f,L,T(C),async(a,t)=>await a(j+` t.name tn,c.name cn,c.pk OR EXISTS(${j} 1 FROM ${G}index_list(t.name)i,${G}index_info(i.name)ii ${k} i."unique"=1 AND ii.name=c.name AND(${j} count(*) FROM ${G}index_info(i.name))=1)uq FROM ${Q}list()t,${Q}info(t.name)c ${k} t.schema='main'AND t.type IN('table','view')AND t.name IN(${aa(t)})ORDER BY t.name,c.name`,t),$,m,n,N,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,_)},rt=(a,t,n,e,i)=>st(a,n,async(a,n=[])=>await t.execO(a,n),a=>t.onUpdate((t,n,e)=>a(e)),a=>a(),e,i,_,1,t);export{rt as createCrSqliteWasmPersister};
|
|
1
|
+
const a=a=>typeof a,t="tinybase",n="",e=",",i=a(n),s="true",r=(a,t,n)=>a.replace(t,n),c=Promise,o=a=>(t,n,e)=>a(t)?e?.():n(t),l=globalThis,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=o(w),f=o(u),E=t=>a(t)==i,$=a=>Array.isArray(a),m=a=>a.length,N=a=>0==m(a),_=()=>{},A=a=>new c(a),O=async a=>c.all(a),h=(a,t)=>a?.has(t)??!1,p=a=>u(a)||0==(a=>a?.size??0)(a),T=a=>[...a?.values()??[]],g=a=>a.clear(),I=(a,t)=>a?.forEach(t),S=(a,t)=>a?.delete(t),D=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},R=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},b=(a,t)=>R(a,a=>{R(()=>t?.(a))}),L=async(a,t)=>{try{return await a()}finally{await t()}},C=(a,t)=>a.forEach(t),M=(a,t="")=>a.join(t),P=(a,t)=>a.map(t),F=(a,t)=>a.filter(t),x=(a,t=m(a))=>a.splice(0,t),U=(a,...t)=>a.push(...t),B="_",j="_id",k="SELECT",q="WHERE",J="TABLE",X="ALTER "+J,Y="FROM",z="DELETE "+Y,G=k+"*"+Y,H="pragma_",K="data_version",Q="schema_version",V="pragma_table_",W="CREATE "+J,Z=/\$tableName/g,aa=a=>M(P(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),ta=(a,t=[1])=>M(P(a,()=>"$"+t[0]++),e),na=(a,t=s)=>q+`(${ea(t,aa(a))})`,ea=(a,t)=>r(a,Z,t),ia=Object,sa=a=>ia.getPrototypeOf(a),ra=ia.entries,ca=a=>!w(a)&&v(sa(a),a=>a==ia.prototype||w(sa(a)),()=>!0),oa=ia.keys,la=ia.freeze,wa=(...a)=>ia.assign(ia.create(null),...a),ua=(a,t,n)=>(ia.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),ya=(a=[])=>{const t=ia.create(null);return C(a,([a,n])=>ua(t,a,n)),t},da=(a,t)=>(delete a[t],a),va=(a,t)=>C(oa(a),n=>t(a[n],n)),fa=(a,t)=>P(ra(a),([a,n])=>t(n,a)),Ea=(a,t)=>{const n=ya();return va(a,(a,e)=>ua(n,e,t(a,e))),n},$a=a=>m(oa(a)),ma=a=>ca(a)&&0==$a(a),Na=Map,_a=a=>new Na(a),Aa=(a,t)=>a?.get(t),Oa=(a,t)=>I(a,(a,n)=>t(n,a)),ha=(a,t)=>{const n=[];return Oa(a,(a,e)=>U(n,t(e,a))),n},pa=(a,t,n)=>u(n)?(S(a,t),a):a?.set(t,n),Ta=(a,t,n,e)=>{let i=Aa(a,t);return h(a,t)?e?.(i):pa(a,t,i=n()),i},ga=(a,t,n,e,i=0)=>f((n?Ta:Aa)(a,t[i],i>m(t)-2?n:_a),s=>{if(i>m(t)-2)return e?.(s)&&pa(a,t[i]),s;const r=ga(s,t,n,e,i+1);return p(s)&&pa(a,t[i]),r}),Ia=a=>new Set($(a)||u(a)?a:[a]),Sa=(a,t)=>a?.add(t),Da="ColumnName",Ra="store",ba="json",La=Ra+"TableName",Ca=Ra+"Id"+Da,Ma=Ra+Da,Pa="autoLoadIntervalSeconds",Fa="rowId"+Da,xa="tableId",Ua="tableName",Ba="deleteEmptyColumns",ja="deleteEmptyTable",ka="condition",qa={mode:ba,[Pa]:1},Ja={load:0,save:0,[Ua]:t+"_values"},Xa=a=>$(a)?a:void 0,Ya=a=>d(a)||$(a),za=(a,t,n,e,i)=>{const s=_a();return va(a,(a,r)=>{const c=(w=wa(t,E(a)?{[n]:a}:a),o=ia.values(w),l=$a(t),o.slice(0,l));var o,l,w;y(c[0])||e(r,c[0])||(i(r,c[0]),pa(s,r,c))}),s},Ga=JSON.stringify,Ha=JSON.parse,Ka=a=>""===a?void 0:$(a)?P(a,Ka):ca(a)?Ea(a,Ka):a,Qa=/^\d+$/,Va=_a(),Wa=_a(),Za=_a(),at=(a,t,e,i,s,r,c,o={},l=0,w=[])=>{let d,v,E,_,O,h=0,T=0,g=0,M=0,B=0,j=0,k=0,q=0,J=0;const X={},Y=o.destroy;Ta(Va,w,()=>0),Ta(Wa,w,()=>[]),pa(Za,w,(Aa(Za,w)??0)+1);const z=_a(),[G,H,K,Q,V]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!ma(a)||!ma(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!ma(a)||!ma(t),t.setContent]:D(0))(c,a,l),[W,Z,aa]=(a=>{let t;const[e,i]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{Qa.test(t)&&m(a)<1e3&&U(a,t)}]})(),s=_a(),r=(a,e,i,r)=>{let c,o=!1;if(C(((a,t=[n])=>{const e=[],i=(a,n)=>n==m(t)?U(e,a):y(t[n])?I(a,a=>i(a,n+1)):C([t[n],null],t=>i(Aa(a,t),n+1));return i(a,0),e})(e,i),n=>I(n,n=>{const e=()=>Aa(s,n)[0](t,...i??[],...r);a?(a=>{try{return a()}catch(a){(a=>{o||(c=a),o=!0})?.(a)}})(e):e()})),o)throw c};return[(i,r,c,o=[],l=()=>[])=>{t??=a();const w=e(1);return pa(s,w,[i,r,c,o,l]),Sa(ga(r,c??[n],Ia),w),w},(a,t,...n)=>r(!1,a,t,n),a=>f(Aa(s,a),([,t,e])=>(ga(t,e??[n],void 0,t=>(S(t,a),p(t)?1:0)),pa(s,a),i(a),e)),a=>f(Aa(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const c=m(r);c==m(n)?a(t,...r,...i(r)):y(n[c])?C(e[c]?.(...r)??[],a=>s(...r,a)):s(...r,n[c])};s()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>$a),ta=a=>{a!=h&&(h=a,Z(z,void 0,h))},na=()=>{Aa(Za,w)||Aa(Va,w)||!N(Aa(Wa,w)??[])||(pa(Va,w),pa(Wa,w),pa(Za,w))},ea=t=>{(G&&$(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ia=async()=>{va()&&a.__?.[0]?.()&&await ua()},sa=a=>L(()=>v=a,()=>{v==a&&(v=void 0)}),ra=async a=>(2!=h&&(await L(async()=>{ta(1),T++,await Ea(()=>R(async()=>{const n=await t();$(n)?ea(n):u(n)&&a?V(a):u(n)||D(1,n)},t=>{r?.(t),a&&V(a)}))},()=>ta(0)),await ia()),$a),ca=async()=>{const a=k;k=0,a&&a==M&&!J&&(2==h?k=a:await ra())},oa=async a=>{const t=++M;let n=!0;if(await wa(!0),t==M&&!J){const e=R(async()=>{const a=await i(async(a,e)=>{if(t==M&&!J)if(e||a){const t=n||2==h||!!j;B++,t&&j++,await L(async()=>{ta(1),T++,await(t?Ea(()=>ea(e??a)):(()=>{try{return ea(e??a)}finally{ta(0)}})())},()=>{t&&j--,--B||ta(0)}),B||await ia()}else 2==h?k=t:await ra()});t!=M||J?u(a)||await s(a):d=a},r);await sa(e),t!=M||J||await L(()=>ra(a),()=>{n=!1})}return $a},wa=async(a=!1)=>{k=0,a||M++;const t=v,n=d;return d=void 0,await sa(L(async()=>{await t},async()=>{u(n)||await R(()=>s(n),r)})),$a},ua=async a=>(1!=h&&await L(()=>L(async()=>{ta(2),g++,await Ea(()=>R(()=>e(H,a),r))},()=>ta(0)),ca),$a),ya=async()=>{const t=++q;return await da(!0),t!=q||J||(await ua(),t!=q||J||(E=a.addDidFinishTransactionListener(()=>{if(t==q&&!J){const a=K();Q(a)&&R(()=>ua(a))}}))),$a},da=async(t=!1)=>{t||q++;const n=E;return E=void 0,u(n)||a.delListener(n),$a},va=()=>!u(E),fa=async(a=!1)=>{const[t,n]=a?[da,wa]:[wa,da];return await L(()=>t(),async()=>{await n()}),$a},Ea=async(...a)=>{let t,n=!1;const e=A(e=>N(a)?e():U(Aa(Wa,w),...P(a,(i,s)=>{const c=s==m(a)-1;return[async()=>{let a;O=A(t=>a=t),await L(async()=>{try{await R(i,r)}catch(a){n||(n=!0,t=a)}c&&e()},()=>{O=void 0,a()})},c?e:void 0,X]})));if(await(async()=>{if(!Aa(Va,w)){pa(Va,w,1);const a=Aa(Wa,w);let t=0;await L(async()=>{for(;t<m(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{x(a,t),pa(Va,w,0),na()})}})(),await e,n)throw t;return $a},$a={load:ra,startAutoLoad:oa,stopAutoLoad:wa,isAutoLoading:()=>!u(d),save:ua,startAutoSave:ya,stopAutoSave:da,isAutoSaving:va,startAutoPersisting:async(a,t=!1)=>{const[n,e,i,s]=t?[ya,oa,da,wa]:[oa,ya,wa,da],r=n(a),c=t?q:M;await r;const o=e(a),l=t?M:q;try{await o}catch(a){throw l==(t?M:q)&&await b(s),c==(t?q:M)&&await b(i),a}return $a},stopAutoPersisting:fa,getStatus:()=>h,addStatusListener:a=>W(a,z),delListener:t=>(aa(t),a),schedule:Ea,getStore:()=>a,getStats:()=>({loads:T,saves:g}),...o,destroy:async()=>(u(_)&&(J=1,_=(async()=>{const a=Aa(Wa,w),t=F(a,([,a,t])=>t!=X||(a?.(),!1)),n=O;x(a),U(a,...t),await L(()=>L(()=>L(fa,()=>n),()=>Y?.()),()=>{const a=(Aa(Za,w)??1)-1;pa(Za,w,a||void 0),na()})})()),await _,$a)};return la($a)},tt=new l.TextEncoder,nt=(a,n,i,r,c=et,o,l,w)=>{const y=_a(),d=_a();let v=a;return[async()=>{g(y),g(d),C(await i(v,n),({tn:a,cn:t,uq:n})=>{Sa(Ta(y,a,Ia),t),n&&Sa(Ta(d,a,Ia),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:Ia(e);return((a,t)=>h(Aa(y,a),t))(a,t)?ya(F(P(await v(G+aa(a)+na(a,n)),a=>{const n=a[t],e=l?Ea(da(a,t),l):da(a,t);return[n,u(i)?e:ya(F(fa(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||h(i,a))(a)))]}),a=>!u(a[0])&&!ma(a[1]))):{}},async(a,n,i,l,w,f=!1,E=s,$)=>{const m=u($)?void 0:Ia($),_=a=>u(m)||h(m,a),A=Ia();va(i??{},a=>C(F(oa(a??{}),_),a=>Sa(A,a)));const p=T(A);if(u(m)&&!f&&w&&E==s&&N(p)&&h(y,a))return await v("DROP "+J+aa(a)),pa(y,a),void pa(d,a);const g=Aa(y,a),I=Ia(F(T(g),a=>a==n||_(a)));if(!N(p))if(h(y,a)){if(await O(P([n,...p],async t=>{S(I,t)||(await v(X+aa(a)+"ADD"+aa(t)+r),Sa(g,t))})),c==et&&!h(Aa(d,a),n)){const e=t+"_pk_"+(a=>{let t=2166136261;return C(tt.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(Ga([a,n]));await v("CREATE UNIQUE INDEX IF NOT EXISTS"+aa(e)+"ON"+aa(a)+`(${aa(n)})`),Sa(Ta(d,a,Ia),n)}}else await v(W+aa(a)+`(${aa(n)}${r} PRIMARY KEY${M(P(p,a=>e+aa(a)+r))});`),pa(y,a,Ia([n,...p])),pa(d,a,Ia([n]));if(await O([...!f&&l?P(T(I),async t=>{t!=n&&(await v(X+aa(a)+"DROP"+aa(t)),S(g,t))}):[]]),f)u(i)?u(m)&&await v(z+aa(a)+na(a,E)):await O(fa(i,async(t,e)=>{if(u(t))await v(z+aa(a)+na(a,E)+`AND(${aa(n)}=$1)`,[e]);else if(!N(p)){const i=F(oa(t),_);N(i)||await c(v,a,n,i,{[e]:P(i,a=>o?o(t[a]):t[a])},g)}}));else if(N(p))u(m)&&h(y,a)&&await v(z+aa(a)+na(a,E));else{const t=F(T(Aa(y,a)),a=>a!=n&&_(a)),e=ya(),s=[];va(i??{},(a,n)=>{ua(e,n,P(t,t=>o?o(a?.[t]):a?.[t])),U(s,n)}),await c(v,a,n,t,e,g),await v(z+aa(a)+na(a,E)+`AND${aa(n)}NOT IN(${ta(s)})`,s)}},async t=>{if(w)return await w(async a=>{const n=v;return v=a,await L(t,()=>{v=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await R(()=>a("ROLLBACK")),t}}]},et=async(a,t,n,i,s)=>{const r=[1];await a("INSERT INTO"+aa(t)+"("+((...a)=>M(P(a,aa),e))(n,...i)+")VALUES"+M(fa(s,a=>"($"+r[0]+++","+ta(a,r)+")"),e)+"ON CONFLICT("+aa(n)+")DO UPDATE SET"+M(P(i,a=>aa(a)+"=excluded."+aa(a)),e),fa(s,(a,t)=>[t,...P(a,a=>a??null)]).flat())},it=(a,t,n,e,i,s,r,[c,o,l],w,y,d,v,f,E,$,m,N)=>{const[_,A,O,h]=nt(t,w,y,f,E,void 0,void 0,N);return at(a,()=>h(async()=>{return await _(),a=(await A(c,o))[B]?.[l]??"null",Ka(Ha(a));var a}),a=>h(async()=>{var t;await _(),await O(c,o,{[B]:{[l]:(t=a()??null,Ga(t,(a,t)=>u(t)?"":t))}},!0,!0)}),n,e,i,r,{[v]:()=>d,destroy:s},0,d)},st=(a,t,n,e,i,s,r,[c,o,[l,w,y,d,v]],f,E,$,m,N,_,A,h,p)=>{const[T,g,I,S]=nt(t,f,E,N,_,A,h,p),D=(a,t)=>O(ha(o,async([n,e,i,s,r],c)=>{var o,l;t&&(o=a,l=c,!ia.hasOwn(o,l))||await I(n,e,a[c],i,s,t,r)})),R=(a,t,n)=>ya(1==n?F(fa(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):F(P(t,t=>[t,a[t]]),([,a])=>!u(a))),b=async(a,t)=>w?await I(y,j,{[B]:u(v)?a:R(a,v,t)},!0,!0,t,void 0,v):null;return at(a,()=>S(async()=>{await T();const a=await(async()=>ya(F(await O(ha(c,async([a,t,n],e)=>[a,await g(e,t,n)])),a=>!ma(a[1]))))(),t=await(async()=>l?(await g(y,j,void 0,d))[B]:{})();return ma(a)&&u(t)?void 0:[a,t]}),(a,t)=>S(async()=>{if(await T(),u(t)){const[t,n]=a();await D(t),await b(n)}else await D(t[0],!0),await b(t[1],!0)}),n,e,i,r,{[m]:()=>$,destroy:s},0,$)},rt=(a,e,i,r,o,l,y,v,f,$,m="getDb",N,_)=>{let A,O,p;const g=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,l),[I,S,R,C]=(a=>{const n=(a=>wa(qa,E(a)?{[La]:a}:a??{}))(a),e=n[Pa];if(n.mode==ba){const a=n[La]??t;return[1,e,[a,n[Ca]??j,n[Ma]??Ra],Ia(a)]}const{tables:{load:i={},save:r={}}={},values:c={}}=n,o=wa(Ja,c),{load:l,save:w}=o,u=[Ya(l),Ya(w),o[Ua],Xa(l),Xa(w)],y=u[2],d=Ia(y),v=Ia(y),f=za(i,{[xa]:null,[Fa]:j,[ka]:s},xa,a=>h(v,a),a=>Sa(d,a)),$=za(r,{[Ua]:null,[Fa]:j,[Ba]:0,[ja]:0,[ka]:null},Ua,(a,t)=>h(v,t),(a,t)=>Sa(d,t));return Oa($,(a,t)=>t[4]??=Aa(f,t[0])?.[2]??s),[0,e,[f,$,u],d]})(e);return!I&&a.isMergeable()&&D(0),(I?it:st)(a,g,a=>{let t,n,e=1,i=0,s=0;const l=async(t=!0)=>{const[{d:n,s:i,c:r}]=await g(k+` ${K} d,${Q} s,TOTAL_CHANGES() c FROM ${H}${K} JOIN ${H}${Q}`);if(e&&(n!=A||i!=O||r!=p)){const c=t&&!s&&!w(A);A=n,O=i,p=r,c&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const c=L(()=>b(async()=>{for(i?r&&await l():(await l(!1),i=1);e&&s;)s=0,await l(!1),e&&(await a(),await l())},y),()=>{n==c&&(n=void 0),e&&(s?v():e&&u(t)&&(t=setInterval(()=>v(!0),1e3*S)))});return n=c,c},f=r(a=>{e&&h(C,a)&&(s=1,d(),c.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,s=0,d(),await L(async()=>await n,async()=>{A=O=p=null,await o(f)})})},a=>a(),y,v,f,R,T(C),async(a,t)=>await a(k+` t.name tn,c.name cn,c.pk OR EXISTS(${k} 1 FROM ${H}index_list(t.name)i,${H}index_info(i.name)ii ${q} i."unique"=1 AND ii.name=c.name AND(${k} count(*) FROM ${H}index_info(i.name))=1)uq FROM ${V}list()t,${V}info(t.name)c ${q} t.schema='main'AND t.type IN('table','view')AND t.name IN(${ta(t)})ORDER BY t.name,c.name`,t),$,m,n,N,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,_)},ct=(a,t,n,e,i)=>rt(a,n,async(a,n=[])=>await t.execO(a,n),a=>t.onUpdate((t,n,e)=>a(e)),a=>a(),e,i,_,1,t);export{ct as createCrSqliteWasmPersister};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a=a=>typeof a,t="tinybase",e="",n=",",i=a(e),s="true",c="t",l=(a,t,e)=>a.replace(t,e),o=Promise,r=a=>(t,e,n)=>a(t)?n?.():e(t),u=globalThis,d=Number,w=String,y=a=>null==a,E=a=>void 0===a,_=a=>null===a,T=a=>!0===a,N=r(y),v=r(E),f=t=>a(t)==i,m=a=>Array.isArray(a),A=a=>a.length,L=a=>0==A(a),O=(a,t)=>a.test(t),$=()=>{},S=a=>new o(a),h=async a=>o.all(a),p=(a,t)=>a.includes(t),I=(a,t)=>a.forEach(t),R=(a,t="")=>a.join(t),b=(a,t)=>a.map(t),g=(a,t)=>a.filter(t),D=(a,t=A(a))=>a.splice(0,t),C=(a,...t)=>a.push(...t),F=(a,t)=>a?.has(t)??!1,M=a=>E(a)||0==(a=>a?.size??0)(a),U=a=>[...a?.values()??[]],x=a=>a.clear(),X=(a,t)=>a?.forEach(t),P=(a,t)=>a?.delete(t),B=Object,q=a=>B.getPrototypeOf(a),z=B.entries,G=a=>!y(a)&&N(q(a),a=>a==B.prototype||y(q(a)),()=>!0),H=B.keys,Y=B.freeze,W=(...a)=>B.assign(B.create(null),...a),j=(a,t)=>B.hasOwn(a,t),k=(a,t,e)=>(B.defineProperty(a,t,{configurable:!0,enumerable:!0,value:e,writable:!0}),e),J=(a=[])=>{const t=B.create(null);return I(a,([a,e])=>k(t,a,e)),t},K=(a,t)=>(delete a[t],a),V=(a,t)=>I(H(a),e=>t(a[e],e)),Z=(a,t)=>b(z(a),([a,e])=>t(e,a)),Q=(a,t)=>{const e=J();return V(a,(a,n)=>k(e,n,t(a,n))),e},aa=a=>A(H(a)),ta=a=>G(a)&&0==aa(a),ea=(a,t,e)=>(j(a,t)||k(a,t,e()),a[t]),na=JSON.stringify,ia=JSON.parse,sa=a=>na(a,(a,t)=>E(t)?"":t),ca=a=>la(ia(a)),la=a=>""===a?void 0:m(a)?b(a,la):G(a)?Q(a,la):a,oa=a=>new Set(m(a)||E(a)?a:[a]),ra=(a,t)=>a?.add(t),ua=new u.TextEncoder,da=Map,wa=a=>new da(a),ya=(a,t)=>a?.get(t),Ea=(a,t)=>X(a,(a,e)=>t(e,a)),_a=(a,t)=>{const e=[];return Ea(a,(a,n)=>C(e,t(n,a))),e},Ta=(a,t,e)=>E(e)?(P(a,t),a):a?.set(t,e),Na=(a,t,e,n)=>{let i=ya(a,t);return F(a,t)?n?.(i):Ta(a,t,i=e()),i},va=(a,t,e,n,i=0)=>v((e?Na:ya)(a,t[i],i>A(t)-2?e:wa),s=>{if(i>A(t)-2)return n?.(s)&&Ta(a,t[i]),s;const c=va(s,t,e,n,i+1);return M(s)&&Ta(a,t[i]),c}),fa=(a,t,e)=>{t>a[1]&&(a[1]=t),a[2]=e>>>0},ma=(a,n)=>{throw((a,n)=>Error(t+":"+a+(E(n)?e:":"+n)))(a,n)},Aa=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},La=async(a,t)=>{try{return await a()}finally{await t()}},Oa=/^\d+$/,$a=wa(),Sa=wa(),ha=wa(),pa=(a,t,n,i,s,c,l,o={},r=0,u=[])=>{let d,w,y,T,N,f=0,$=0,h=0,p=0,R=0,F=0,U=0,x=0,B=0;const q={},z=o.destroy;Na($a,u,()=>0),Na(Sa,u,()=>[]),Ta(ha,u,(ya(ha,u)??0)+1);const G=wa(),[H,W,j,k,J]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!e),([[a],[t]])=>!ta(a)||!ta(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!ta(a)||!ta(t),t.setContent]:ma(0))(l,a,r),[K,V,Z]=(a=>{let t;const[n,i]=(()=>{const a=[];let t=0;return[n=>(n?a.shift():null)??e+t++,t=>{O(Oa,t)&&A(a)<1e3&&C(a,t)}]})(),s=wa(),c=(a,n,i,c)=>{let l,o=!1;if(I(((a,t=[e])=>{const n=[],i=(a,e)=>e==A(t)?C(n,a):_(t[e])?X(a,a=>i(a,e+1)):I([t[e],null],t=>i(ya(a,t),e+1));return i(a,0),n})(n,i),e=>X(e,e=>{const n=()=>ya(s,e)[0](t,...i??[],...c);a?(a=>{try{return a()}catch(a){(a=>{o||(l=a),o=!0})?.(a)}})(n):n()})),o)throw l};return[(i,c,l,o=[],r=()=>[])=>{t??=a();const u=n(1);return Ta(s,u,[i,c,l,o,r]),ra(va(c,l??[e],oa),u),u},(a,t,...e)=>c(!1,a,t,e),a=>v(ya(s,a),([,t,n])=>(va(t,n??[e],void 0,t=>(P(t,a),M(t)?1:0)),Ta(s,a),i(a),n)),a=>v(ya(s,a),([a,,e=[],n,i])=>{const s=(...c)=>{const l=A(c);l==A(e)?a(t,...c,...i(c)):_(e[l])?I(n[l]?.(...c)??[],a=>s(...c,a)):s(...c,e[l])};s()}),(a,t,...e)=>c(!0,a,t,e)]})(()=>Ra),Q=a=>{a!=f&&(f=a,V(G,void 0,f))},aa=()=>{ya(ha,u)||ya($a,u)||!L(ya(Sa,u)??[])||(Ta($a,u),Ta(Sa,u),Ta(ha,u))},ea=t=>{(H&&m(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},na=async()=>{fa()&&a.__?.[0]?.()&&await da()},ia=a=>La(()=>w=a,()=>{w==a&&(w=void 0)}),sa=async a=>(2!=f&&(await La(async()=>{Q(1),$++,await Ia(()=>Aa(async()=>{const e=await t();m(e)?ea(e):E(e)&&a?J(a):E(e)||ma(1,e)},t=>{c?.(t),a&&J(a)}))},()=>Q(0)),await na()),Ra),ca=async()=>{const a=U;U=0,a&&a==p&&!B&&(2==f?U=a:await sa())},la=async a=>{const t=++p;let e=!0;if(await ua(!0),t==p&&!B){const n=Aa(async()=>{const a=await i(async(a,n)=>{if(t==p&&!B)if(n||a){const t=e||2==f||!!F;R++,t&&F++,await La(async()=>{Q(1),$++,await(t?Ia(()=>ea(n??a)):(()=>{try{return ea(n??a)}finally{Q(0)}})())},()=>{t&&F--,--R||Q(0)}),R||await na()}else 2==f?U=t:await sa()});t!=p||B?E(a)||await s(a):d=a},c);await ia(n),t!=p||B||await La(()=>sa(a),()=>{e=!1})}return Ra},ua=async(a=!1)=>{U=0,a||p++;const t=w,e=d;return d=void 0,await ia(La(async()=>{await t},async()=>{E(e)||await Aa(()=>s(e),c)})),Ra},da=async a=>(1!=f&&await La(()=>La(async()=>{Q(2),h++,await Ia(()=>Aa(()=>n(W,a),c))},()=>Q(0)),ca),Ra),Ea=async()=>{const t=++x;return await _a(!0),t!=x||B||(await da(),t!=x||B||(y=a.addDidFinishTransactionListener(()=>{if(t==x&&!B){const a=j();k(a)&&Aa(()=>da(a))}}))),Ra},_a=async(t=!1)=>{t||x++;const e=y;return y=void 0,E(e)||a.delListener(e),Ra},fa=()=>!E(y),pa=async(a=!1)=>{const[t,e]=a?[_a,ua]:[ua,_a];return await La(()=>t(),async()=>{await e()}),Ra},Ia=async(...a)=>{let t,e=!1;const n=S(n=>L(a)?n():C(ya(Sa,u),...b(a,(i,s)=>{const l=s==A(a)-1;return[async()=>{let a;N=S(t=>a=t),await La(async()=>{try{await Aa(i,c)}catch(a){e||(e=!0,t=a)}l&&n()},()=>{N=void 0,a()})},l?n:void 0,q]})));if(await(async()=>{if(!ya($a,u)){Ta($a,u,1);const a=ya(Sa,u);let t=0;await La(async()=>{for(;t<A(a);){const e=a[t++];e[2]=void 0,await e[0]()}},()=>{D(a,t),Ta($a,u,0),aa()})}})(),await n,e)throw t;return Ra},Ra={load:sa,startAutoLoad:la,stopAutoLoad:ua,isAutoLoading:()=>!E(d),save:da,startAutoSave:Ea,stopAutoSave:_a,isAutoSaving:fa,startAutoPersisting:async(a,t=!1)=>{const[e,n]=t?[Ea,la]:[la,Ea];return await e(a),await n(a),Ra},stopAutoPersisting:pa,getStatus:()=>f,addStatusListener:a=>K(a,G),delListener:t=>(Z(t),a),schedule:Ia,getStore:()=>a,getStats:()=>({loads:$,saves:h}),...o,destroy:async()=>(E(T)&&(B=1,T=(async()=>{const a=ya(Sa,u),t=g(a,([,a,t])=>t!=q||(a?.(),!1)),e=N;D(a),C(a,...t),await La(()=>La(()=>La(pa,()=>e),()=>z?.()),()=>{const a=(ya(ha,u)??1)-1;Ta(ha,u,a||void 0),aa()})})()),await T,Ra)};return Y(Ra)},Ia="_",Ra="_id",ba="SELECT",ga="WHERE",Da="TABLE",Ca="ALTER "+Da,Fa="FROM",Ma="DELETE "+Fa,Ua=ba+"*"+Fa,xa="pragma_",Xa="data_version",Pa="schema_version",Ba="pragma_table_",qa="CREATE "+Da,za=/\$tableName/g,Ga=a=>R(b(((a,t="",e)=>a.split(t,e))(a,"."),a=>`"${l(a,/"/g,'""')}"`),"."),Ha=(a,t=[1])=>R(b(a,()=>"$"+t[0]++),n),Ya=(a,t=s)=>ga+`(${Wa(t,Ga(a))})`,Wa=(a,t)=>l(a,za,t),ja="ColumnName",ka="store",Ja="json",Ka=ka+"TableName",Va=ka+"Id"+ja,Za=ka+ja,Qa="autoLoadIntervalSeconds",at="rowId"+ja,tt="tableId",et="tableName",nt="deleteEmptyColumns",it="deleteEmptyTable",st="condition",ct={mode:Ja,[Qa]:1},lt={load:0,save:0,[et]:t+"_values"},ot=a=>m(a)?a:void 0,rt=a=>T(a)||m(a),ut=(a,t,e,n,i)=>{const s=wa();return V(a,(a,c)=>{const l=(u=W(t,f(a)?{[e]:a}:a),o=B.values(u),r=aa(t),o.slice(0,r));var o,r,u;_(l[0])||n(c,l[0])||(i(c,l[0]),Ta(s,c,l))}),s},dt=(a,e,i,c,l=wt,o,r,u)=>{const d=wa(),w=wa();let y=a;return[async()=>{x(d),x(w),I(await i(y,e),({tn:a,cn:t,uq:e})=>{ra(Na(d,a,oa),t),e&&ra(Na(w,a,oa),t)})},async(a,t,e,n)=>{const i=E(n)?void 0:oa(n);return((a,t)=>F(ya(d,a),t))(a,t)?J(g(b(await y(Ua+Ga(a)+Ya(a,e)),a=>{const e=a[t],n=r?Q(K(a,t),r):K(a,t);return[e,E(i)?n:J(g(Z(n,(a,t)=>[t,a]),([a])=>(a=>E(i)||F(i,a))(a)))]}),a=>!E(a[0])&&!ta(a[1]))):{}},async(a,e,i,r,u,_=!1,T=s,N)=>{const v=E(N)?void 0:oa(N),f=a=>E(v)||F(v,a),m=oa();V(i??{},a=>I(g(H(a??{}),f),a=>ra(m,a)));const A=U(m);if(E(v)&&!_&&u&&T==s&&L(A)&&F(d,a))return await y("DROP "+Da+Ga(a)),Ta(d,a),void Ta(w,a);const O=ya(d,a),$=oa(g(U(O),a=>a==e||f(a)));if(!L(A))if(F(d,a)){if(await h(b([e,...A],async t=>{P($,t)||(await y(Ca+Ga(a)+"ADD"+Ga(t)+c),ra(O,t))})),l==wt&&!F(ya(w,a),e)){const n=t+"_pk_"+(a=>{let t=2166136261;return I(ua.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(na([a,e]));await y("CREATE UNIQUE INDEX IF NOT EXISTS"+Ga(n)+"ON"+Ga(a)+`(${Ga(e)})`),ra(Na(w,a,oa),e)}}else await y(qa+Ga(a)+`(${Ga(e)}${c} PRIMARY KEY${R(b(A,a=>n+Ga(a)+c))});`),Ta(d,a,oa([e,...A])),Ta(w,a,oa([e]));if(await h([...!_&&r?b(U($),async t=>{t!=e&&(await y(Ca+Ga(a)+"DROP"+Ga(t)),P(O,t))}):[]]),_)E(i)?E(v)&&await y(Ma+Ga(a)+Ya(a,T)):await h(Z(i,async(t,n)=>{if(E(t))await y(Ma+Ga(a)+Ya(a,T)+`AND(${Ga(e)}=$1)`,[n]);else if(!L(A)){const i=g(H(t),f);L(i)||await l(y,a,e,i,{[n]:b(i,a=>o?o(t[a]):t[a])},O)}}));else if(L(A))E(v)&&F(d,a)&&await y(Ma+Ga(a)+Ya(a,T));else{const t=g(U(ya(d,a)),a=>a!=e&&f(a)),n=J(),s=[];V(i??{},(a,e)=>{k(n,e,b(t,t=>o?o(a?.[t]):a?.[t])),C(s,e)}),await l(y,a,e,t,n,O),await y(Ma+Ga(a)+Ya(a,T)+`AND${Ga(e)}NOT IN(${Ha(s)})`,s)}},async t=>{if(u)return await u(async a=>{const e=y;return y=a,await La(t,()=>{y=e})});await a("BEGIN");try{const e=await t();return await a("END"),e}catch(t){throw await Aa(()=>a("ROLLBACK")),t}}]},wt=async(a,t,e,i,s)=>{const c=[1];await a("INSERT INTO"+Ga(t)+"("+((...a)=>R(b(a,Ga),n))(e,...i)+")VALUES"+R(Z(s,a=>"($"+c[0]+++","+Ha(a,c)+")"),n)+"ON CONFLICT("+Ga(e)+")DO UPDATE SET"+R(b(i,a=>Ga(a)+"=excluded."+Ga(a)),n),Z(s,(a,t)=>[t,...b(a,a=>a??null)]).flat())},yt=(a,t,e,n,i,s,c,[l,o,r],u,d,w,y,E,_,T,N,v)=>{const[f,m,A,L]=dt(t,u,d,E,_,void 0,void 0,v);return pa(a,()=>L(async()=>(await f(),ca((await m(l,o))[Ia]?.[r]??"null"))),a=>L(async()=>{await f(),await A(l,o,{[Ia]:{[r]:sa(a()??null)}},!0,!0)}),e,n,i,c,{[y]:()=>w,destroy:s},0,w)},Et=(a,t,e,n,i,s,c,[l,o,[r,u,d,w,y]],_,T,N,v,f,m,A,L,O)=>{const[$,S,I,R]=dt(t,_,T,f,m,A,L,O),D=(a,t)=>h(_a(o,async([e,n,i,s,c],l)=>{t&&!j(a,l)||await I(e,n,a[l],i,s,t,c)})),C=(a,t,e)=>J(1==e?g(Z(a,(a,t)=>[t,a]),([a])=>p(t,a)):g(b(t,t=>[t,a[t]]),([,a])=>!E(a))),F=async(a,t)=>u?await I(d,Ra,{[Ia]:E(y)?a:C(a,y,t)},!0,!0,t,void 0,y):null;return pa(a,()=>R(async()=>{await $();const a=await(async()=>J(g(await h(_a(l,async([a,t,e],n)=>[a,await S(n,t,e)])),a=>!ta(a[1]))))(),t=await(async()=>r?(await S(d,Ra,void 0,w))[Ia]:{})();return ta(a)&&E(t)?void 0:[a,t]}),(a,t)=>R(async()=>{if(await $(),E(t)){const[t,e]=a();await D(t),await F(e)}else await D(t[0],!0),await F(t[1],!0)}),e,n,i,c,{[v]:()=>N,destroy:s},0,N)},_t=(a,n,i,c,l,r,u,d,w,_,N="getDb",v,m)=>{let A,L,O;const $=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(i,r),[S,h,p,I]=(a=>{const e=(a=>W(ct,f(a)?{[Ka]:a}:a??{}))(a),n=e[Qa];if(e.mode==Ja){const a=e[Ka]??t;return[1,n,[a,e[Va]??Ra,e[Za]??ka],oa(a)]}const{tables:{load:i={},save:c={}}={},values:l={}}=e,o=W(lt,l),{load:r,save:u}=o,d=[rt(r),rt(u),o[et],ot(r),ot(u)],w=d[2],y=oa(w),E=oa(w),_=ut(i,{[tt]:null,[at]:Ra,[st]:s},tt,a=>F(E,a),a=>ra(y,a)),T=ut(c,{[et]:null,[at]:Ra,[nt]:0,[it]:0,[st]:null},et,(a,t)=>F(E,t),(a,t)=>ra(y,t));return Ea(T,(a,t)=>t[4]??=ya(_,t[0])?.[2]??s),[0,n,[_,T,d],y]})(n);return!S&&a.isMergeable()&&ma(0),(S?yt:Et)(a,$,a=>{let t,e,n=1,i=0,s=0;const r=async(t=!0)=>{const[{d:e,s:i,c:c}]=await $(ba+` ${Xa} d,${Pa} s,TOTAL_CHANGES() c FROM ${xa}${Xa} JOIN ${xa}${Pa}`);if(n&&(e!=A||i!=L||c!=O)){const l=t&&!s&&!y(A);A=e,L=i,O=c,l&&n&&await a()}},d=()=>{E(t)||((a=>{clearInterval(a)})(t),t=void 0)},w=(c=!1)=>{if(e)return e;const l=La(()=>((t,e)=>Aa(async()=>{for(i?c&&await r():(await r(!1),i=1);n&&s;)s=0,await r(!1),n&&(await a(),await r())},a=>{Aa(()=>e?.(a))}))(0,u),()=>{e==l&&(e=void 0),n&&(s?w():n&&E(t)&&(t=setInterval(()=>w(!0),1e3*h)))});return e=l,l},_=c(a=>{n&&F(I,a)&&(s=1,d(),o.resolve().then(()=>n?void w():0))});return w().then(()=>async()=>{n=0,s=0,d(),await La(async()=>await e,async()=>{A=L=O=null,await l(_)})})},a=>a(),u,d,w,p,U(I),async(a,t)=>await a(ba+` t.name tn,c.name cn,c.pk OR EXISTS(${ba} 1 FROM ${xa}index_list(t.name)i,${xa}index_info(i.name)ii ${ga} i."unique"=1 AND ii.name=c.name AND(${ba} count(*) FROM ${xa}index_info(i.name))=1)uq FROM ${Ba}list()t,${Ba}info(t.name)c ${ga} t.schema='main'AND t.type IN('table','view')AND t.name IN(${Ha(t)})ORDER BY t.name,c.name`,t),_,N,e,v,a=>T(a)?1:(a=>!1===a)(a)?0:a,void 0,m)},Tt=(a,t,...e)=>a.exec(t,...e).toArray(),Nt=(a,t,n,i,s)=>"fragmented"==n?.mode?mt(a,t,n?.storagePrefix??e,s):_t(a,n,async(a,e=[])=>p(["BEGIN","END"],a)?[]:(a=l(a,/\$\d+/g,"?"),Tt(t,a,...e)),()=>$,a=>a(),i,s,$,2,t,"getSqlStorage"),vt=()=>[J(),e,0],ft=a=>O(/^[a-zA-Z_][a-zA-Z0-9_]*$/,a)?a:Ga(a),mt=(a,t,e="",n)=>{const i=l(e,/[^a-zA-Z0-9_]/g,"_"),s=ft(i+"tinybase_tables"),o=ft(i+"tinybase_values"),r=`INSERT INTO ${s} (type, table_id, row_id, cell_id, value_data, timestamp, hash) VALUES (?, ?, ?, ?, ?, ?, ?)`,u=`INSERT INTO ${o} (value_id, value_data, timestamp, hash) VALUES (?, ?, ?, ?)`,E=(a,t)=>na([a,t]);t.exec(`\n CREATE TABLE IF NOT EXISTS ${s} (\n type TEXT NOT NULL,\n table_id TEXT,\n row_id TEXT,\n cell_id TEXT,\n value_data TEXT NOT NULL,\n timestamp TEXT NOT NULL,\n hash INTEGER NOT NULL,\n PRIMARY KEY (type, table_id, row_id, cell_id)\n );\n \n CREATE TABLE IF NOT EXISTS ${o} (\n value_id TEXT,\n value_data TEXT NOT NULL,\n timestamp TEXT NOT NULL,\n hash INTEGER NOT NULL\n );\n `);const T=(a,t,e)=>_(e)?t+" IS NULL":(C(a,e),t+" = ?"),N=(a,e,n,i,l,o)=>{((a,e,n)=>{const i=[c];t.exec(`DELETE FROM ${s} WHERE type = ? AND `+T(i,"table_id",a)+" AND "+T(i,"row_id",e)+" AND "+T(i,"cell_id",n),...i)})(a,e,n),t.exec(r,c,a,e,n,i,l,o)},v=(a,e,n,i)=>{(a=>{const e=[];t.exec(`DELETE FROM ${o} WHERE `+T(e,"value_id",a),...e)})(a),t.exec(u,a,e,n,i)};return pa(a,async()=>{const a=vt(),e=vt(),n=oa(),i=Tt(t,"SELECT * FROM "+s);return I(i,t=>{const e=y(t.table_id)?null:w(t.table_id),i=y(t.row_id)?null:w(t.row_id),s=y(t.cell_id)?null:w(t.cell_id),c=w(t.value_data),l=w(t.timestamp),o=d(t.hash),[r]=ca(c);if(!_(e)&&!_(i)&&_(s)&&G(r)){const t=ea(a[0],e,vt);k(t[0],i,[r,l,o]),ra(n,E(e,i))}}),I(i,t=>{const e=w(t.type),i=y(t.table_id)?null:w(t.table_id),s=y(t.row_id)?null:w(t.row_id),l=y(t.cell_id)?null:w(t.cell_id),o=w(t.value_data),r=w(t.timestamp),u=d(t.hash),[T]=ca(o);if(e===c)if(_(i)||_(s)||_(l)){if(_(i)||_(s))if(_(i))fa(a,r,u);else{const t=ea(a[0],i,vt);fa(t,r,u)}else if(!G(T)){const t=ea(a[0],i,vt),e=ea(t[0],s,vt);fa(e,r,u)}}else if(!F(n,E(i,s))){const t=ea(a[0],i,vt),e=ea(t[0],s,vt);k(e[0],l,[T,r,u])}}),I(Tt(t,"SELECT * FROM "+o),a=>{const t=y(a.value_id)?null:w(a.value_id),n=w(a.value_data),i=w(a.timestamp),s=d(a.hash),[c]=ca(n);_(t)?fa(e,i,s):k(e[0],t,[c,i,s])}),[a,e]},async(a,[[e,n,i],[l,o,r]]=a())=>{const[u]=a()[0];N(null,null,null,sa([0]),n,i),V(e,([a,e,n],i)=>{N(i,null,null,sa([0]),e,n),V(a,([a,e,n],l)=>{const o=u[i]?.[0]?.[l]?.[0]??a;((a,e)=>{t.exec(`DELETE FROM ${s} WHERE type = ? AND table_id = ? AND row_id = ? AND cell_id IS NOT NULL`,c,a,e)})(i,l),N(i,l,null,sa([o]),e,n)})}),v(null,sa([0]),o,r),V(l,(a,t)=>{v(t,sa([a[0]]),a[1],a[2])})},$,$,n,2,{getSqlStorage:()=>t})};export{Nt as createDurableObjectSqlStoragePersister};
|
|
1
|
+
const a=a=>typeof a,t="tinybase",e="",n=",",i=a(e),s="true",c="t",o=(a,t="",e)=>a.split(t,e),l=(a,t,e)=>a.replace(t,e),r=Promise,u=a=>(t,e,n)=>a(t)?n?.():e(t),d=globalThis,w=Number,y=String,E=a=>null==a,_=a=>void 0===a,T=a=>null===a,N=a=>!0===a,v=u(E),f=u(_),m=t=>a(t)==i,$=a=>Array.isArray(a),A=(a,t,e)=>a.slice(t,e),L=a=>a.length,O=a=>0==L(a),h=(a,t)=>a.test(t),S=()=>{},p=a=>new r(a),I=async a=>r.all(a),R=(a,t)=>a.includes(t),b=(a,t)=>a.forEach(t),g=(a,t="")=>a.join(t),D=(a,t)=>a.map(t),C=(a,t)=>a.filter(t),F=(a,t=L(a))=>a.splice(0,t),M=(a,...t)=>a.push(...t),U=(a,t)=>a?.has(t)??!1,x=a=>_(a)||0==(a=>a?.size??0)(a),X=a=>[...a?.values()??[]],P=a=>a.clear(),B=(a,t)=>a?.forEach(t),q=(a,t)=>a?.delete(t),z=Object,G=a=>z.getPrototypeOf(a),H=z.entries,Y=a=>!E(a)&&v(G(a),a=>a==z.prototype||E(G(a)),()=>!0),W=z.keys,j=z.freeze,k=(...a)=>z.assign(z.create(null),...a),J=(a,t)=>z.hasOwn(a,t),K=(a,t,e)=>(z.defineProperty(a,t,{configurable:!0,enumerable:!0,value:e,writable:!0}),e),V=(a=[])=>{const t=z.create(null);return b(a,([a,e])=>K(t,a,e)),t},Z=(a,t)=>(delete a[t],a),Q=(a,t)=>b(W(a),e=>t(a[e],e)),aa=(a,t)=>D(H(a),([a,e])=>t(e,a)),ta=(a,t)=>{const e=V();return Q(a,(a,n)=>K(e,n,t(a,n))),e},ea=a=>L(W(a)),na=a=>Y(a)&&0==ea(a),ia=(a,t,e)=>(J(a,t)||K(a,t,e()),a[t]),sa=JSON.stringify,ca=JSON.parse,oa=a=>sa(a,(a,t)=>_(t)?"":t),la=a=>ra(ca(a)),ra=a=>""===a?void 0:$(a)?D(a,ra):Y(a)?ta(a,ra):a,ua=a=>new Set($(a)||_(a)?a:[a]),da=(a,t)=>a?.add(t),wa=new d.TextEncoder,ya=Map,Ea=a=>new ya(a),_a=(a,t)=>a?.get(t),Ta=(a,t)=>B(a,(a,e)=>t(e,a)),Na=(a,t)=>{const e=[];return Ta(a,(a,n)=>M(e,t(n,a))),e},va=(a,t,e)=>_(e)?(q(a,t),a):a?.set(t,e),fa=(a,t,e,n)=>{let i=_a(a,t);return U(a,t)?n?.(i):va(a,t,i=e()),i},ma=(a,t,e,n,i=0)=>f((e?fa:_a)(a,t[i],i>L(t)-2?e:Ea),s=>{if(i>L(t)-2)return n?.(s)&&va(a,t[i]),s;const c=ma(s,t,e,n,i+1);return x(s)&&va(a,t[i]),c}),$a=(a,t,e)=>{t>a[1]&&(a[1]=t),a[2]=e>>>0},Aa=(a,n)=>{throw((a,n)=>Error(t+":"+a+(_(n)?e:":"+n)))(a,n)},La=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},Oa=(a,t)=>La(a,a=>{La(()=>t?.(a))}),ha=async(a,t)=>{try{return await a()}finally{await t()}},Sa=/^\d+$/,pa=Ea(),Ia=Ea(),Ra=Ea(),ba=(a,t,n,i,s,c,o,l={},r=0,u=[])=>{let d,w,y,E,N,v=0,m=0,A=0,S=0,I=0,R=0,g=0,U=0,X=0;const P={},z=l.destroy;fa(pa,u,()=>0),fa(Ia,u,()=>[]),va(Ra,u,(_a(Ra,u)??0)+1);const G=Ea(),[H,Y,W,k,J]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!e),([[a],[t]])=>!na(a)||!na(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!na(a)||!na(t),t.setContent]:Aa(0))(o,a,r),[K,V,Z]=(a=>{let t;const[n,i]=(()=>{const a=[];let t=0;return[n=>(n?a.shift():null)??e+t++,t=>{h(Sa,t)&&L(a)<1e3&&M(a,t)}]})(),s=Ea(),c=(a,n,i,c)=>{let o,l=!1;if(b(((a,t=[e])=>{const n=[],i=(a,e)=>e==L(t)?M(n,a):T(t[e])?B(a,a=>i(a,e+1)):b([t[e],null],t=>i(_a(a,t),e+1));return i(a,0),n})(n,i),e=>B(e,e=>{const n=()=>_a(s,e)[0](t,...i??[],...c);a?(a=>{try{return a()}catch(a){(a=>{l||(o=a),l=!0})?.(a)}})(n):n()})),l)throw o};return[(i,c,o,l=[],r=()=>[])=>{t??=a();const u=n(1);return va(s,u,[i,c,o,l,r]),da(ma(c,o??[e],ua),u),u},(a,t,...e)=>c(!1,a,t,e),a=>f(_a(s,a),([,t,n])=>(ma(t,n??[e],void 0,t=>(q(t,a),x(t)?1:0)),va(s,a),i(a),n)),a=>f(_a(s,a),([a,,e=[],n,i])=>{const s=(...c)=>{const o=L(c);o==L(e)?a(t,...c,...i(c)):T(e[o])?b(n[o]?.(...c)??[],a=>s(...c,a)):s(...c,e[o])};s()}),(a,t,...e)=>c(!0,a,t,e)]})(()=>ba),Q=a=>{a!=v&&(v=a,V(G,void 0,v))},aa=()=>{_a(Ra,u)||_a(pa,u)||!O(_a(Ia,u)??[])||(va(pa,u),va(Ia,u),va(Ra,u))},ta=t=>{(H&&$(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ea=async()=>{Ta()&&a.__?.[0]?.()&&await ra()},ia=a=>ha(()=>w=a,()=>{w==a&&(w=void 0)}),sa=async a=>(2!=v&&(await ha(async()=>{Q(1),m++,await $a(()=>La(async()=>{const e=await t();$(e)?ta(e):_(e)&&a?J(a):_(e)||Aa(1,e)},t=>{c?.(t),a&&J(a)}))},()=>Q(0)),await ea()),ba),ca=async()=>{const a=g;g=0,a&&a==S&&!X&&(2==v?g=a:await sa())},oa=async a=>{const t=++S;let e=!0;if(await la(!0),t==S&&!X){const n=La(async()=>{const a=await i(async(a,n)=>{if(t==S&&!X)if(n||a){const t=e||2==v||!!R;I++,t&&R++,await ha(async()=>{Q(1),m++,await(t?$a(()=>ta(n??a)):(()=>{try{return ta(n??a)}finally{Q(0)}})())},()=>{t&&R--,--I||Q(0)}),I||await ea()}else 2==v?g=t:await sa()});t!=S||X?_(a)||await s(a):d=a},c);await ia(n),t!=S||X||await ha(()=>sa(a),()=>{e=!1})}return ba},la=async(a=!1)=>{g=0,a||S++;const t=w,e=d;return d=void 0,await ia(ha(async()=>{await t},async()=>{_(e)||await La(()=>s(e),c)})),ba},ra=async a=>(1!=v&&await ha(()=>ha(async()=>{Q(2),A++,await $a(()=>La(()=>n(Y,a),c))},()=>Q(0)),ca),ba),wa=async()=>{const t=++U;return await ya(!0),t!=U||X||(await ra(),t!=U||X||(y=a.addDidFinishTransactionListener(()=>{if(t==U&&!X){const a=W();k(a)&&La(()=>ra(a))}}))),ba},ya=async(t=!1)=>{t||U++;const e=y;return y=void 0,_(e)||a.delListener(e),ba},Ta=()=>!_(y),Na=async(a=!1)=>{const[t,e]=a?[ya,la]:[la,ya];return await ha(()=>t(),async()=>{await e()}),ba},$a=async(...a)=>{let t,e=!1;const n=p(n=>O(a)?n():M(_a(Ia,u),...D(a,(i,s)=>{const o=s==L(a)-1;return[async()=>{let a;N=p(t=>a=t),await ha(async()=>{try{await La(i,c)}catch(a){e||(e=!0,t=a)}o&&n()},()=>{N=void 0,a()})},o?n:void 0,P]})));if(await(async()=>{if(!_a(pa,u)){va(pa,u,1);const a=_a(Ia,u);let t=0;await ha(async()=>{for(;t<L(a);){const e=a[t++];e[2]=void 0,await e[0]()}},()=>{F(a,t),va(pa,u,0),aa()})}})(),await n,e)throw t;return ba},ba={load:sa,startAutoLoad:oa,stopAutoLoad:la,isAutoLoading:()=>!_(d),save:ra,startAutoSave:wa,stopAutoSave:ya,isAutoSaving:Ta,startAutoPersisting:async(a,t=!1)=>{const[e,n,i,s]=t?[wa,oa,ya,la]:[oa,wa,la,ya],c=e(a),o=t?U:S;await c;const l=n(a),r=t?S:U;try{await l}catch(a){throw r==(t?S:U)&&await Oa(s),o==(t?U:S)&&await Oa(i),a}return ba},stopAutoPersisting:Na,getStatus:()=>v,addStatusListener:a=>K(a,G),delListener:t=>(Z(t),a),schedule:$a,getStore:()=>a,getStats:()=>({loads:m,saves:A}),...l,destroy:async()=>(_(E)&&(X=1,E=(async()=>{const a=_a(Ia,u),t=C(a,([,a,t])=>t!=P||(a?.(),!1)),e=N;F(a),M(a,...t),await ha(()=>ha(()=>ha(Na,()=>e),()=>z?.()),()=>{const a=(_a(Ra,u)??1)-1;va(Ra,u,a||void 0),aa()})})()),await E,ba)};return j(ba)},ga="_",Da="_id",Ca="SELECT",Fa="WHERE",Ma="TABLE",Ua="ALTER "+Ma,xa="FROM",Xa="DELETE "+xa,Pa=Ca+"*"+xa,Ba="pragma_",qa="data_version",za="schema_version",Ga="pragma_table_",Ha="CREATE "+Ma,Ya=/\$tableName/g,Wa=a=>g(D(o(a,"."),a=>`"${l(a,/"/g,'""')}"`),"."),ja=(a,t=[1])=>g(D(a,()=>"$"+t[0]++),n),ka=(a,t=s)=>Fa+`(${Ja(t,Wa(a))})`,Ja=(a,t)=>l(a,Ya,t),Ka="ColumnName",Va="store",Za="json",Qa=Va+"TableName",at=Va+"Id"+Ka,tt=Va+Ka,et="autoLoadIntervalSeconds",nt="rowId"+Ka,it="tableId",st="tableName",ct="deleteEmptyColumns",ot="deleteEmptyTable",lt="condition",rt={mode:Za,[et]:1},ut={load:0,save:0,[st]:t+"_values"},dt=a=>$(a)?a:void 0,wt=a=>N(a)||$(a),yt=(a,t,e,n,i)=>{const s=Ea();return Q(a,(a,c)=>{const o=A((l=k(t,m(a)?{[e]:a}:a),z.values(l)),0,ea(t));var l;T(o[0])||n(c,o[0])||(i(c,o[0]),va(s,c,o))}),s},Et=(a,e,i,c,o=_t,l,r,u)=>{const d=Ea(),w=Ea();let y=a;return[async()=>{P(d),P(w),b(await i(y,e),({tn:a,cn:t,uq:e})=>{da(fa(d,a,ua),t),e&&da(fa(w,a,ua),t)})},async(a,t,e,n)=>{const i=_(n)?void 0:ua(n);return((a,t)=>U(_a(d,a),t))(a,t)?V(C(D(await y(Pa+Wa(a)+ka(a,e)),a=>{const e=a[t],n=r?ta(Z(a,t),r):Z(a,t);return[e,_(i)?n:V(C(aa(n,(a,t)=>[t,a]),([a])=>(a=>_(i)||U(i,a))(a)))]}),a=>!_(a[0])&&!na(a[1]))):{}},async(a,e,i,r,u,E=!1,T=s,N)=>{const v=_(N)?void 0:ua(N),f=a=>_(v)||U(v,a),m=ua();Q(i??{},a=>b(C(W(a??{}),f),a=>da(m,a)));const $=X(m);if(_(v)&&!E&&u&&T==s&&O($)&&U(d,a))return await y("DROP "+Ma+Wa(a)),va(d,a),void va(w,a);const A=_a(d,a),L=ua(C(X(A),a=>a==e||f(a)));if(!O($))if(U(d,a)){if(await I(D([e,...$],async t=>{q(L,t)||(await y(Ua+Wa(a)+"ADD"+Wa(t)+c),da(A,t))})),o==_t&&!U(_a(w,a),e)){const n=t+"_pk_"+(a=>{let t=2166136261;return b(wa.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(sa([a,e]));await y("CREATE UNIQUE INDEX IF NOT EXISTS"+Wa(n)+"ON"+Wa(a)+`(${Wa(e)})`),da(fa(w,a,ua),e)}}else await y(Ha+Wa(a)+`(${Wa(e)}${c} PRIMARY KEY${g(D($,a=>n+Wa(a)+c))});`),va(d,a,ua([e,...$])),va(w,a,ua([e]));if(await I([...!E&&r?D(X(L),async t=>{t!=e&&(await y(Ua+Wa(a)+"DROP"+Wa(t)),q(A,t))}):[]]),E)_(i)?_(v)&&await y(Xa+Wa(a)+ka(a,T)):await I(aa(i,async(t,n)=>{if(_(t))await y(Xa+Wa(a)+ka(a,T)+`AND(${Wa(e)}=$1)`,[n]);else if(!O($)){const i=C(W(t),f);O(i)||await o(y,a,e,i,{[n]:D(i,a=>l?l(t[a]):t[a])},A)}}));else if(O($))_(v)&&U(d,a)&&await y(Xa+Wa(a)+ka(a,T));else{const t=C(X(_a(d,a)),a=>a!=e&&f(a)),n=V(),s=[];Q(i??{},(a,e)=>{K(n,e,D(t,t=>l?l(a?.[t]):a?.[t])),M(s,e)}),await o(y,a,e,t,n,A),await y(Xa+Wa(a)+ka(a,T)+`AND${Wa(e)}NOT IN(${ja(s)})`,s)}},async t=>{if(u)return await u(async a=>{const e=y;return y=a,await ha(t,()=>{y=e})});await a("BEGIN");try{const e=await t();return await a("END"),e}catch(t){throw await La(()=>a("ROLLBACK")),t}}]},_t=async(a,t,e,i,s)=>{const c=[1];await a("INSERT INTO"+Wa(t)+"("+((...a)=>g(D(a,Wa),n))(e,...i)+")VALUES"+g(aa(s,a=>"($"+c[0]+++","+ja(a,c)+")"),n)+"ON CONFLICT("+Wa(e)+")DO UPDATE SET"+g(D(i,a=>Wa(a)+"=excluded."+Wa(a)),n),aa(s,(a,t)=>[t,...D(a,a=>a??null)]).flat())},Tt=(a,t,e,n,i,s,c,[o,l,r],u,d,w,y,E,_,T,N,v)=>{const[f,m,$,A]=Et(t,u,d,E,_,void 0,void 0,v);return ba(a,()=>A(async()=>(await f(),la((await m(o,l))[ga]?.[r]??"null"))),a=>A(async()=>{await f(),await $(o,l,{[ga]:{[r]:oa(a()??null)}},!0,!0)}),e,n,i,c,{[y]:()=>w,destroy:s},0,w)},Nt=(a,t,e,n,i,s,c,[o,l,[r,u,d,w,y]],E,T,N,v,f,m,$,A,L)=>{const[O,h,S,p]=Et(t,E,T,f,m,$,A,L),b=(a,t)=>I(Na(l,async([e,n,i,s,c],o)=>{t&&!J(a,o)||await S(e,n,a[o],i,s,t,c)})),g=(a,t,e)=>V(1==e?C(aa(a,(a,t)=>[t,a]),([a])=>R(t,a)):C(D(t,t=>[t,a[t]]),([,a])=>!_(a))),F=async(a,t)=>u?await S(d,Da,{[ga]:_(y)?a:g(a,y,t)},!0,!0,t,void 0,y):null;return ba(a,()=>p(async()=>{await O();const a=await(async()=>V(C(await I(Na(o,async([a,t,e],n)=>[a,await h(n,t,e)])),a=>!na(a[1]))))(),t=await(async()=>r?(await h(d,Da,void 0,w))[ga]:{})();return na(a)&&_(t)?void 0:[a,t]}),(a,t)=>p(async()=>{if(await O(),_(t)){const[t,e]=a();await b(t),await F(e)}else await b(t[0],!0),await F(t[1],!0)}),e,n,i,c,{[v]:()=>N,destroy:s},0,N)},vt=(a,n,i,c,o,l,u,d,w,y,T="getDb",v,f)=>{let $,A,L;const O=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(i,l),[h,S,p,I]=(a=>{const e=(a=>k(rt,m(a)?{[Qa]:a}:a??{}))(a),n=e[et];if(e.mode==Za){const a=e[Qa]??t;return[1,n,[a,e[at]??Da,e[tt]??Va],ua(a)]}const{tables:{load:i={},save:c={}}={},values:o={}}=e,l=k(ut,o),{load:r,save:u}=l,d=[wt(r),wt(u),l[st],dt(r),dt(u)],w=d[2],y=ua(w),E=ua(w),_=yt(i,{[it]:null,[nt]:Da,[lt]:s},it,a=>U(E,a),a=>da(y,a)),T=yt(c,{[st]:null,[nt]:Da,[ct]:0,[ot]:0,[lt]:null},st,(a,t)=>U(E,t),(a,t)=>da(y,t));return Ta(T,(a,t)=>t[4]??=_a(_,t[0])?.[2]??s),[0,n,[_,T,d],y]})(n);return!h&&a.isMergeable()&&Aa(0),(h?Tt:Nt)(a,O,a=>{let t,e,n=1,i=0,s=0;const l=async(t=!0)=>{const[{d:e,s:i,c:c}]=await O(Ca+` ${qa} d,${za} s,TOTAL_CHANGES() c FROM ${Ba}${qa} JOIN ${Ba}${za}`);if(n&&(e!=$||i!=A||c!=L)){const o=t&&!s&&!E($);$=e,A=i,L=c,o&&n&&await a()}},d=()=>{_(t)||((a=>{clearInterval(a)})(t),t=void 0)},w=(c=!1)=>{if(e)return e;const o=ha(()=>Oa(async()=>{for(i?c&&await l():(await l(!1),i=1);n&&s;)s=0,await l(!1),n&&(await a(),await l())},u),()=>{e==o&&(e=void 0),n&&(s?w():n&&_(t)&&(t=setInterval(()=>w(!0),1e3*S)))});return e=o,o},y=c(a=>{n&&U(I,a)&&(s=1,d(),r.resolve().then(()=>n?void w():0))});return w().then(()=>async()=>{n=0,s=0,d(),await ha(async()=>await e,async()=>{$=A=L=null,await o(y)})})},a=>a(),u,d,w,p,X(I),async(a,t)=>await a(Ca+` t.name tn,c.name cn,c.pk OR EXISTS(${Ca} 1 FROM ${Ba}index_list(t.name)i,${Ba}index_info(i.name)ii ${Fa} i."unique"=1 AND ii.name=c.name AND(${Ca} count(*) FROM ${Ba}index_info(i.name))=1)uq FROM ${Ga}list()t,${Ga}info(t.name)c ${Fa} t.schema='main'AND t.type IN('table','view')AND t.name IN(${ja(t)})ORDER BY t.name,c.name`,t),y,T,e,v,a=>N(a)?1:(a=>!1===a)(a)?0:a,void 0,f)},ft=(a,t,...e)=>a.exec(t,...e).toArray(),mt=(a,t,n,i,s)=>"fragmented"==n?.mode?Lt(a,t,n?.storagePrefix??e,s):vt(a,n,async(a,e=[])=>R(["BEGIN","END"],a)?[]:(a=l(a,/\$\d+/g,"?"),ft(t,a,...e)),()=>S,a=>a(),i,s,S,2,t,"getSqlStorage"),$t=()=>[V(),e,0],At=a=>h(/^[a-zA-Z_][a-zA-Z0-9_]*$/,a)?a:Wa(a),Lt=(a,t,e="",n)=>{const i=h(/^[a-z0-9_]*$/,e)?e:`$tinybase$${(a=>g(D(o(a),a=>"$"+A((65536+a.charCodeAt(0)).toString(16),1))))(e)}$`,s=i+"tinybase_values",l=At(i+"tinybase_tables"),r=At(s),u=`INSERT INTO ${l} (type, table_id, row_id, cell_id, value_data, timestamp, hash) VALUES (?, ?, ?, ?, ?, ?, ?)`,d=`INSERT INTO ${r} (value_id, value_data, timestamp, hash) VALUES (?, ?, ?, ?)`,_=(a,t)=>sa([a,t]);t.exec(`\n CREATE TABLE IF NOT EXISTS ${l} (\n type TEXT NOT NULL,\n table_id TEXT,\n row_id TEXT,\n cell_id TEXT,\n value_data TEXT NOT NULL,\n timestamp TEXT NOT NULL,\n hash INTEGER NOT NULL,\n PRIMARY KEY (type, table_id, row_id, cell_id)\n );\n \n CREATE TABLE IF NOT EXISTS ${r} (\n value_id TEXT,\n value_data TEXT NOT NULL,\n timestamp TEXT NOT NULL,\n hash INTEGER NOT NULL\n );\n `);const N=(a,t,e)=>T(e)?t+" IS NULL":(M(a,e),t+" = ?"),v=(a,e,n,i,s,o)=>{((a,e,n)=>{const i=[c];t.exec(`DELETE FROM ${l} WHERE type = ? AND `+N(i,"table_id",a)+" AND "+N(i,"row_id",e)+" AND "+N(i,"cell_id",n),...i)})(a,e,n),t.exec(u,c,a,e,n,i,s,o)},f=(a,e,n,i)=>{(a=>{const e=[];t.exec(`DELETE FROM ${r} WHERE `+N(e,"value_id",a),...e)})(a),t.exec(d,a,e,n,i)};return ba(a,async()=>{const a=$t(),e=$t(),n=ua(),i=ft(t,"SELECT * FROM "+l);return b(i,t=>{const e=E(t.table_id)?null:y(t.table_id),i=E(t.row_id)?null:y(t.row_id),s=E(t.cell_id)?null:y(t.cell_id),c=y(t.value_data),o=y(t.timestamp),l=w(t.hash),[r]=la(c);if(!T(e)&&!T(i)&&T(s)&&Y(r)){const t=ia(a[0],e,$t);K(t[0],i,[r,o,l]),da(n,_(e,i))}}),b(i,t=>{const e=y(t.type),i=E(t.table_id)?null:y(t.table_id),s=E(t.row_id)?null:y(t.row_id),o=E(t.cell_id)?null:y(t.cell_id),l=y(t.value_data),r=y(t.timestamp),u=w(t.hash),[d]=la(l);if(e===c)if(T(i)||T(s)||T(o)){if(T(i)||T(s))if(T(i))$a(a,r,u);else{const t=ia(a[0],i,$t);$a(t,r,u)}else if(!Y(d)){const t=ia(a[0],i,$t),e=ia(t[0],s,$t);$a(e,r,u)}}else if(!U(n,_(i,s))){const t=ia(a[0],i,$t),e=ia(t[0],s,$t);K(e[0],o,[d,r,u])}}),b(ft(t,"SELECT * FROM "+r),a=>{const t=E(a.value_id)?null:y(a.value_id),n=y(a.value_data),i=y(a.timestamp),s=w(a.hash),[c]=la(n);T(t)?$a(e,i,s):K(e[0],t,[c,i,s])}),[a,e]},async(a,[[e,n,i],[s,o,r]]=a())=>{const[u]=a()[0];v(null,null,null,oa([0]),n,i),Q(e,([a,e,n],i)=>{v(i,null,null,oa([0]),e,n),Q(a,([a,e,n],s)=>{const o=u[i]?.[0]?.[s]?.[0]??a;((a,e)=>{t.exec(`DELETE FROM ${l} WHERE type = ? AND table_id = ? AND row_id = ? AND cell_id IS NOT NULL`,c,a,e)})(i,s),v(i,s,null,oa([o]),e,n)})}),f(null,oa([0]),o,r),Q(s,(a,t)=>{f(t,oa([a[0]]),a[1],a[2])})},S,S,n,2,{getSqlStorage:()=>t})};export{mt as createDurableObjectSqlStoragePersister};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a=a=>typeof a,t="tinybase",e="",n=",",i=a(e),s="true",c="t",l=(a,t,e)=>a.replace(t,e),o=Promise,r=a=>(t,e,n)=>a(t)?n?.():e(t),u=globalThis,d=Number,w=String,y=a=>null==a,E=a=>void 0===a,_=a=>null===a,T=a=>!0===a,N=r(y),v=r(E),f=t=>a(t)==i,m=a=>Array.isArray(a),A=a=>a.length,L=a=>0==A(a),O=(a,t)=>a.test(t),$=()=>{},S=a=>new o(a),h=async a=>o.all(a),p=(a,t)=>a.includes(t),I=(a,t)=>a.forEach(t),R=(a,t="")=>a.join(t),b=(a,t)=>a.map(t),g=(a,t)=>a.filter(t),D=(a,t=A(a))=>a.splice(0,t),C=(a,...t)=>a.push(...t),F=(a,t)=>a?.has(t)??!1,M=a=>E(a)||0==(a=>a?.size??0)(a),U=a=>[...a?.values()??[]],x=a=>a.clear(),X=(a,t)=>a?.forEach(t),P=(a,t)=>a?.delete(t),B=Object,q=a=>B.getPrototypeOf(a),z=B.entries,G=a=>!y(a)&&N(q(a),a=>a==B.prototype||y(q(a)),()=>!0),H=B.keys,Y=B.freeze,W=(...a)=>B.assign(B.create(null),...a),j=(a,t)=>B.hasOwn(a,t),k=(a,t,e)=>(B.defineProperty(a,t,{configurable:!0,enumerable:!0,value:e,writable:!0}),e),J=(a=[])=>{const t=B.create(null);return I(a,([a,e])=>k(t,a,e)),t},K=(a,t)=>(delete a[t],a),V=(a,t)=>I(H(a),e=>t(a[e],e)),Z=(a,t)=>b(z(a),([a,e])=>t(e,a)),Q=(a,t)=>{const e=J();return V(a,(a,n)=>k(e,n,t(a,n))),e},aa=a=>A(H(a)),ta=a=>G(a)&&0==aa(a),ea=(a,t,e)=>(j(a,t)||k(a,t,e()),a[t]),na=JSON.stringify,ia=JSON.parse,sa=a=>na(a,(a,t)=>E(t)?"":t),ca=a=>la(ia(a)),la=a=>""===a?void 0:m(a)?b(a,la):G(a)?Q(a,la):a,oa=a=>new Set(m(a)||E(a)?a:[a]),ra=(a,t)=>a?.add(t),ua=new u.TextEncoder,da=Map,wa=a=>new da(a),ya=(a,t)=>a?.get(t),Ea=(a,t)=>X(a,(a,e)=>t(e,a)),_a=(a,t)=>{const e=[];return Ea(a,(a,n)=>C(e,t(n,a))),e},Ta=(a,t,e)=>E(e)?(P(a,t),a):a?.set(t,e),Na=(a,t,e,n)=>{let i=ya(a,t);return F(a,t)?n?.(i):Ta(a,t,i=e()),i},va=(a,t,e,n,i=0)=>v((e?Na:ya)(a,t[i],i>A(t)-2?e:wa),s=>{if(i>A(t)-2)return n?.(s)&&Ta(a,t[i]),s;const c=va(s,t,e,n,i+1);return M(s)&&Ta(a,t[i]),c}),fa=(a,t,e)=>{t>a[1]&&(a[1]=t),a[2]=e>>>0},ma=(a,n)=>{throw((a,n)=>Error(t+":"+a+(E(n)?e:":"+n)))(a,n)},Aa=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},La=async(a,t)=>{try{return await a()}finally{await t()}},Oa=/^\d+$/,$a=wa(),Sa=wa(),ha=wa(),pa=(a,t,n,i,s,c,l,o={},r=0,u=[])=>{let d,w,y,T,N,f=0,$=0,h=0,p=0,R=0,F=0,U=0,x=0,B=0;const q={},z=o.destroy;Na($a,u,()=>0),Na(Sa,u,()=>[]),Ta(ha,u,(ya(ha,u)??0)+1);const G=wa(),[H,W,j,k,J]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!e),([[a],[t]])=>!ta(a)||!ta(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!ta(a)||!ta(t),t.setContent]:ma(0))(l,a,r),[K,V,Z]=(a=>{let t;const[n,i]=(()=>{const a=[];let t=0;return[n=>(n?a.shift():null)??e+t++,t=>{O(Oa,t)&&A(a)<1e3&&C(a,t)}]})(),s=wa(),c=(a,n,i,c)=>{let l,o=!1;if(I(((a,t=[e])=>{const n=[],i=(a,e)=>e==A(t)?C(n,a):_(t[e])?X(a,a=>i(a,e+1)):I([t[e],null],t=>i(ya(a,t),e+1));return i(a,0),n})(n,i),e=>X(e,e=>{const n=()=>ya(s,e)[0](t,...i??[],...c);a?(a=>{try{return a()}catch(a){(a=>{o||(l=a),o=!0})?.(a)}})(n):n()})),o)throw l};return[(i,c,l,o=[],r=()=>[])=>{t??=a();const u=n(1);return Ta(s,u,[i,c,l,o,r]),ra(va(c,l??[e],oa),u),u},(a,t,...e)=>c(!1,a,t,e),a=>v(ya(s,a),([,t,n])=>(va(t,n??[e],void 0,t=>(P(t,a),M(t)?1:0)),Ta(s,a),i(a),n)),a=>v(ya(s,a),([a,,e=[],n,i])=>{const s=(...c)=>{const l=A(c);l==A(e)?a(t,...c,...i(c)):_(e[l])?I(n[l]?.(...c)??[],a=>s(...c,a)):s(...c,e[l])};s()}),(a,t,...e)=>c(!0,a,t,e)]})(()=>Ra),Q=a=>{a!=f&&(f=a,V(G,void 0,f))},aa=()=>{ya(ha,u)||ya($a,u)||!L(ya(Sa,u)??[])||(Ta($a,u),Ta(Sa,u),Ta(ha,u))},ea=t=>{(H&&m(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},na=async()=>{fa()&&a.__?.[0]?.()&&await da()},ia=a=>La(()=>w=a,()=>{w==a&&(w=void 0)}),sa=async a=>(2!=f&&(await La(async()=>{Q(1),$++,await Ia(()=>Aa(async()=>{const e=await t();m(e)?ea(e):E(e)&&a?J(a):E(e)||ma(1,e)},t=>{c?.(t),a&&J(a)}))},()=>Q(0)),await na()),Ra),ca=async()=>{const a=U;U=0,a&&a==p&&!B&&(2==f?U=a:await sa())},la=async a=>{const t=++p;let e=!0;if(await ua(!0),t==p&&!B){const n=Aa(async()=>{const a=await i(async(a,n)=>{if(t==p&&!B)if(n||a){const t=e||2==f||!!F;R++,t&&F++,await La(async()=>{Q(1),$++,await(t?Ia(()=>ea(n??a)):(()=>{try{return ea(n??a)}finally{Q(0)}})())},()=>{t&&F--,--R||Q(0)}),R||await na()}else 2==f?U=t:await sa()});t!=p||B?E(a)||await s(a):d=a},c);await ia(n),t!=p||B||await La(()=>sa(a),()=>{e=!1})}return Ra},ua=async(a=!1)=>{U=0,a||p++;const t=w,e=d;return d=void 0,await ia(La(async()=>{await t},async()=>{E(e)||await Aa(()=>s(e),c)})),Ra},da=async a=>(1!=f&&await La(()=>La(async()=>{Q(2),h++,await Ia(()=>Aa(()=>n(W,a),c))},()=>Q(0)),ca),Ra),Ea=async()=>{const t=++x;return await _a(!0),t!=x||B||(await da(),t!=x||B||(y=a.addDidFinishTransactionListener(()=>{if(t==x&&!B){const a=j();k(a)&&Aa(()=>da(a))}}))),Ra},_a=async(t=!1)=>{t||x++;const e=y;return y=void 0,E(e)||a.delListener(e),Ra},fa=()=>!E(y),pa=async(a=!1)=>{const[t,e]=a?[_a,ua]:[ua,_a];return await La(()=>t(),async()=>{await e()}),Ra},Ia=async(...a)=>{let t,e=!1;const n=S(n=>L(a)?n():C(ya(Sa,u),...b(a,(i,s)=>{const l=s==A(a)-1;return[async()=>{let a;N=S(t=>a=t),await La(async()=>{try{await Aa(i,c)}catch(a){e||(e=!0,t=a)}l&&n()},()=>{N=void 0,a()})},l?n:void 0,q]})));if(await(async()=>{if(!ya($a,u)){Ta($a,u,1);const a=ya(Sa,u);let t=0;await La(async()=>{for(;t<A(a);){const e=a[t++];e[2]=void 0,await e[0]()}},()=>{D(a,t),Ta($a,u,0),aa()})}})(),await n,e)throw t;return Ra},Ra={load:sa,startAutoLoad:la,stopAutoLoad:ua,isAutoLoading:()=>!E(d),save:da,startAutoSave:Ea,stopAutoSave:_a,isAutoSaving:fa,startAutoPersisting:async(a,t=!1)=>{const[e,n]=t?[Ea,la]:[la,Ea];return await e(a),await n(a),Ra},stopAutoPersisting:pa,getStatus:()=>f,addStatusListener:a=>K(a,G),delListener:t=>(Z(t),a),schedule:Ia,getStore:()=>a,getStats:()=>({loads:$,saves:h}),...o,destroy:async()=>(E(T)&&(B=1,T=(async()=>{const a=ya(Sa,u),t=g(a,([,a,t])=>t!=q||(a?.(),!1)),e=N;D(a),C(a,...t),await La(()=>La(()=>La(pa,()=>e),()=>z?.()),()=>{const a=(ya(ha,u)??1)-1;Ta(ha,u,a||void 0),aa()})})()),await T,Ra)};return Y(Ra)},Ia="_",Ra="_id",ba="SELECT",ga="WHERE",Da="TABLE",Ca="ALTER "+Da,Fa="FROM",Ma="DELETE "+Fa,Ua=ba+"*"+Fa,xa="pragma_",Xa="data_version",Pa="schema_version",Ba="pragma_table_",qa="CREATE "+Da,za=/\$tableName/g,Ga=a=>R(b(((a,t="",e)=>a.split(t,e))(a,"."),a=>`"${l(a,/"/g,'""')}"`),"."),Ha=(a,t=[1])=>R(b(a,()=>"$"+t[0]++),n),Ya=(a,t=s)=>ga+`(${Wa(t,Ga(a))})`,Wa=(a,t)=>l(a,za,t),ja="ColumnName",ka="store",Ja="json",Ka=ka+"TableName",Va=ka+"Id"+ja,Za=ka+ja,Qa="autoLoadIntervalSeconds",at="rowId"+ja,tt="tableId",et="tableName",nt="deleteEmptyColumns",it="deleteEmptyTable",st="condition",ct={mode:Ja,[Qa]:1},lt={load:0,save:0,[et]:t+"_values"},ot=a=>m(a)?a:void 0,rt=a=>T(a)||m(a),ut=(a,t,e,n,i)=>{const s=wa();return V(a,(a,c)=>{const l=(u=W(t,f(a)?{[e]:a}:a),o=B.values(u),r=aa(t),o.slice(0,r));var o,r,u;_(l[0])||n(c,l[0])||(i(c,l[0]),Ta(s,c,l))}),s},dt=(a,e,i,c,l=wt,o,r,u)=>{const d=wa(),w=wa();let y=a;return[async()=>{x(d),x(w),I(await i(y,e),({tn:a,cn:t,uq:e})=>{ra(Na(d,a,oa),t),e&&ra(Na(w,a,oa),t)})},async(a,t,e,n)=>{const i=E(n)?void 0:oa(n);return((a,t)=>F(ya(d,a),t))(a,t)?J(g(b(await y(Ua+Ga(a)+Ya(a,e)),a=>{const e=a[t],n=r?Q(K(a,t),r):K(a,t);return[e,E(i)?n:J(g(Z(n,(a,t)=>[t,a]),([a])=>(a=>E(i)||F(i,a))(a)))]}),a=>!E(a[0])&&!ta(a[1]))):{}},async(a,e,i,r,u,_=!1,T=s,N)=>{const v=E(N)?void 0:oa(N),f=a=>E(v)||F(v,a),m=oa();V(i??{},a=>I(g(H(a??{}),f),a=>ra(m,a)));const A=U(m);if(E(v)&&!_&&u&&T==s&&L(A)&&F(d,a))return await y("DROP "+Da+Ga(a)),Ta(d,a),void Ta(w,a);const O=ya(d,a),$=oa(g(U(O),a=>a==e||f(a)));if(!L(A))if(F(d,a)){if(await h(b([e,...A],async t=>{P($,t)||(await y(Ca+Ga(a)+"ADD"+Ga(t)+c),ra(O,t))})),l==wt&&!F(ya(w,a),e)){const n=t+"_pk_"+(a=>{let t=2166136261;return I(ua.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(na([a,e]));await y("CREATE UNIQUE INDEX IF NOT EXISTS"+Ga(n)+"ON"+Ga(a)+`(${Ga(e)})`),ra(Na(w,a,oa),e)}}else await y(qa+Ga(a)+`(${Ga(e)}${c} PRIMARY KEY${R(b(A,a=>n+Ga(a)+c))});`),Ta(d,a,oa([e,...A])),Ta(w,a,oa([e]));if(await h([...!_&&r?b(U($),async t=>{t!=e&&(await y(Ca+Ga(a)+"DROP"+Ga(t)),P(O,t))}):[]]),_)E(i)?E(v)&&await y(Ma+Ga(a)+Ya(a,T)):await h(Z(i,async(t,n)=>{if(E(t))await y(Ma+Ga(a)+Ya(a,T)+`AND(${Ga(e)}=$1)`,[n]);else if(!L(A)){const i=g(H(t),f);L(i)||await l(y,a,e,i,{[n]:b(i,a=>o?o(t[a]):t[a])},O)}}));else if(L(A))E(v)&&F(d,a)&&await y(Ma+Ga(a)+Ya(a,T));else{const t=g(U(ya(d,a)),a=>a!=e&&f(a)),n=J(),s=[];V(i??{},(a,e)=>{k(n,e,b(t,t=>o?o(a?.[t]):a?.[t])),C(s,e)}),await l(y,a,e,t,n,O),await y(Ma+Ga(a)+Ya(a,T)+`AND${Ga(e)}NOT IN(${Ha(s)})`,s)}},async t=>{if(u)return await u(async a=>{const e=y;return y=a,await La(t,()=>{y=e})});await a("BEGIN");try{const e=await t();return await a("END"),e}catch(t){throw await Aa(()=>a("ROLLBACK")),t}}]},wt=async(a,t,e,i,s)=>{const c=[1];await a("INSERT INTO"+Ga(t)+"("+((...a)=>R(b(a,Ga),n))(e,...i)+")VALUES"+R(Z(s,a=>"($"+c[0]+++","+Ha(a,c)+")"),n)+"ON CONFLICT("+Ga(e)+")DO UPDATE SET"+R(b(i,a=>Ga(a)+"=excluded."+Ga(a)),n),Z(s,(a,t)=>[t,...b(a,a=>a??null)]).flat())},yt=(a,t,e,n,i,s,c,[l,o,r],u,d,w,y,E,_,T,N,v)=>{const[f,m,A,L]=dt(t,u,d,E,_,void 0,void 0,v);return pa(a,()=>L(async()=>(await f(),ca((await m(l,o))[Ia]?.[r]??"null"))),a=>L(async()=>{await f(),await A(l,o,{[Ia]:{[r]:sa(a()??null)}},!0,!0)}),e,n,i,c,{[y]:()=>w,destroy:s},0,w)},Et=(a,t,e,n,i,s,c,[l,o,[r,u,d,w,y]],_,T,N,v,f,m,A,L,O)=>{const[$,S,I,R]=dt(t,_,T,f,m,A,L,O),D=(a,t)=>h(_a(o,async([e,n,i,s,c],l)=>{t&&!j(a,l)||await I(e,n,a[l],i,s,t,c)})),C=(a,t,e)=>J(1==e?g(Z(a,(a,t)=>[t,a]),([a])=>p(t,a)):g(b(t,t=>[t,a[t]]),([,a])=>!E(a))),F=async(a,t)=>u?await I(d,Ra,{[Ia]:E(y)?a:C(a,y,t)},!0,!0,t,void 0,y):null;return pa(a,()=>R(async()=>{await $();const a=await(async()=>J(g(await h(_a(l,async([a,t,e],n)=>[a,await S(n,t,e)])),a=>!ta(a[1]))))(),t=await(async()=>r?(await S(d,Ra,void 0,w))[Ia]:{})();return ta(a)&&E(t)?void 0:[a,t]}),(a,t)=>R(async()=>{if(await $(),E(t)){const[t,e]=a();await D(t),await F(e)}else await D(t[0],!0),await F(t[1],!0)}),e,n,i,c,{[v]:()=>N,destroy:s},0,N)},_t=(a,n,i,c,l,r,u,d,w,_,N="getDb",v,m)=>{let A,L,O;const $=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(i,r),[S,h,p,I]=(a=>{const e=(a=>W(ct,f(a)?{[Ka]:a}:a??{}))(a),n=e[Qa];if(e.mode==Ja){const a=e[Ka]??t;return[1,n,[a,e[Va]??Ra,e[Za]??ka],oa(a)]}const{tables:{load:i={},save:c={}}={},values:l={}}=e,o=W(lt,l),{load:r,save:u}=o,d=[rt(r),rt(u),o[et],ot(r),ot(u)],w=d[2],y=oa(w),E=oa(w),_=ut(i,{[tt]:null,[at]:Ra,[st]:s},tt,a=>F(E,a),a=>ra(y,a)),T=ut(c,{[et]:null,[at]:Ra,[nt]:0,[it]:0,[st]:null},et,(a,t)=>F(E,t),(a,t)=>ra(y,t));return Ea(T,(a,t)=>t[4]??=ya(_,t[0])?.[2]??s),[0,n,[_,T,d],y]})(n);return!S&&a.isMergeable()&&ma(0),(S?yt:Et)(a,$,a=>{let t,e,n=1,i=0,s=0;const r=async(t=!0)=>{const[{d:e,s:i,c:c}]=await $(ba+` ${Xa} d,${Pa} s,TOTAL_CHANGES() c FROM ${xa}${Xa} JOIN ${xa}${Pa}`);if(n&&(e!=A||i!=L||c!=O)){const l=t&&!s&&!y(A);A=e,L=i,O=c,l&&n&&await a()}},d=()=>{E(t)||((a=>{clearInterval(a)})(t),t=void 0)},w=(c=!1)=>{if(e)return e;const l=La(()=>((t,e)=>Aa(async()=>{for(i?c&&await r():(await r(!1),i=1);n&&s;)s=0,await r(!1),n&&(await a(),await r())},a=>{Aa(()=>e?.(a))}))(0,u),()=>{e==l&&(e=void 0),n&&(s?w():n&&E(t)&&(t=setInterval(()=>w(!0),1e3*h)))});return e=l,l},_=c(a=>{n&&F(I,a)&&(s=1,d(),o.resolve().then(()=>n?void w():0))});return w().then(()=>async()=>{n=0,s=0,d(),await La(async()=>await e,async()=>{A=L=O=null,await l(_)})})},a=>a(),u,d,w,p,U(I),async(a,t)=>await a(ba+` t.name tn,c.name cn,c.pk OR EXISTS(${ba} 1 FROM ${xa}index_list(t.name)i,${xa}index_info(i.name)ii ${ga} i."unique"=1 AND ii.name=c.name AND(${ba} count(*) FROM ${xa}index_info(i.name))=1)uq FROM ${Ba}list()t,${Ba}info(t.name)c ${ga} t.schema='main'AND t.type IN('table','view')AND t.name IN(${Ha(t)})ORDER BY t.name,c.name`,t),_,N,e,v,a=>T(a)?1:(a=>!1===a)(a)?0:a,void 0,m)},Tt=(a,t,...e)=>a.exec(t,...e).toArray(),Nt=(a,t,n,i,s)=>"fragmented"==n?.mode?mt(a,t,n?.storagePrefix??e,s):_t(a,n,async(a,e=[])=>p(["BEGIN","END"],a)?[]:(a=l(a,/\$\d+/g,"?"),Tt(t,a,...e)),()=>$,a=>a(),i,s,$,2,t,"getSqlStorage"),vt=()=>[J(),e,0],ft=a=>O(/^[a-zA-Z_][a-zA-Z0-9_]*$/,a)?a:Ga(a),mt=(a,t,e="",n)=>{const i=l(e,/[^a-zA-Z0-9_]/g,"_"),s=ft(i+"tinybase_tables"),o=ft(i+"tinybase_values"),r=`INSERT INTO ${s} (type, table_id, row_id, cell_id, value_data, timestamp, hash) VALUES (?, ?, ?, ?, ?, ?, ?)`,u=`INSERT INTO ${o} (value_id, value_data, timestamp, hash) VALUES (?, ?, ?, ?)`,E=(a,t)=>na([a,t]);t.exec(`\n CREATE TABLE IF NOT EXISTS ${s} (\n type TEXT NOT NULL,\n table_id TEXT,\n row_id TEXT,\n cell_id TEXT,\n value_data TEXT NOT NULL,\n timestamp TEXT NOT NULL,\n hash INTEGER NOT NULL,\n PRIMARY KEY (type, table_id, row_id, cell_id)\n );\n \n CREATE TABLE IF NOT EXISTS ${o} (\n value_id TEXT,\n value_data TEXT NOT NULL,\n timestamp TEXT NOT NULL,\n hash INTEGER NOT NULL\n );\n `);const T=(a,t,e)=>_(e)?t+" IS NULL":(C(a,e),t+" = ?"),N=(a,e,n,i,l,o)=>{((a,e,n)=>{const i=[c];t.exec(`DELETE FROM ${s} WHERE type = ? AND `+T(i,"table_id",a)+" AND "+T(i,"row_id",e)+" AND "+T(i,"cell_id",n),...i)})(a,e,n),t.exec(r,c,a,e,n,i,l,o)},v=(a,e,n,i)=>{(a=>{const e=[];t.exec(`DELETE FROM ${o} WHERE `+T(e,"value_id",a),...e)})(a),t.exec(u,a,e,n,i)};return pa(a,async()=>{const a=vt(),e=vt(),n=oa(),i=Tt(t,"SELECT * FROM "+s);return I(i,t=>{const e=y(t.table_id)?null:w(t.table_id),i=y(t.row_id)?null:w(t.row_id),s=y(t.cell_id)?null:w(t.cell_id),c=w(t.value_data),l=w(t.timestamp),o=d(t.hash),[r]=ca(c);if(!_(e)&&!_(i)&&_(s)&&G(r)){const t=ea(a[0],e,vt);k(t[0],i,[r,l,o]),ra(n,E(e,i))}}),I(i,t=>{const e=w(t.type),i=y(t.table_id)?null:w(t.table_id),s=y(t.row_id)?null:w(t.row_id),l=y(t.cell_id)?null:w(t.cell_id),o=w(t.value_data),r=w(t.timestamp),u=d(t.hash),[T]=ca(o);if(e===c)if(_(i)||_(s)||_(l)){if(_(i)||_(s))if(_(i))fa(a,r,u);else{const t=ea(a[0],i,vt);fa(t,r,u)}else if(!G(T)){const t=ea(a[0],i,vt),e=ea(t[0],s,vt);fa(e,r,u)}}else if(!F(n,E(i,s))){const t=ea(a[0],i,vt),e=ea(t[0],s,vt);k(e[0],l,[T,r,u])}}),I(Tt(t,"SELECT * FROM "+o),a=>{const t=y(a.value_id)?null:w(a.value_id),n=w(a.value_data),i=w(a.timestamp),s=d(a.hash),[c]=ca(n);_(t)?fa(e,i,s):k(e[0],t,[c,i,s])}),[a,e]},async(a,[[e,n,i],[l,o,r]]=a())=>{const[u]=a()[0];N(null,null,null,sa([0]),n,i),V(e,([a,e,n],i)=>{N(i,null,null,sa([0]),e,n),V(a,([a,e,n],l)=>{const o=u[i]?.[0]?.[l]?.[0]??a;((a,e)=>{t.exec(`DELETE FROM ${s} WHERE type = ? AND table_id = ? AND row_id = ? AND cell_id IS NOT NULL`,c,a,e)})(i,l),N(i,l,null,sa([o]),e,n)})}),v(null,sa([0]),o,r),V(l,(a,t)=>{v(t,sa([a[0]]),a[1],a[2])})},$,$,n,2,{getSqlStorage:()=>t})};export{Nt as createDurableObjectSqlStoragePersister};
|
|
1
|
+
const a=a=>typeof a,t="tinybase",e="",n=",",i=a(e),s="true",c="t",o=(a,t="",e)=>a.split(t,e),l=(a,t,e)=>a.replace(t,e),r=Promise,u=a=>(t,e,n)=>a(t)?n?.():e(t),d=globalThis,w=Number,y=String,E=a=>null==a,_=a=>void 0===a,T=a=>null===a,N=a=>!0===a,v=u(E),f=u(_),m=t=>a(t)==i,$=a=>Array.isArray(a),A=(a,t,e)=>a.slice(t,e),L=a=>a.length,O=a=>0==L(a),h=(a,t)=>a.test(t),S=()=>{},p=a=>new r(a),I=async a=>r.all(a),R=(a,t)=>a.includes(t),b=(a,t)=>a.forEach(t),g=(a,t="")=>a.join(t),D=(a,t)=>a.map(t),C=(a,t)=>a.filter(t),F=(a,t=L(a))=>a.splice(0,t),M=(a,...t)=>a.push(...t),U=(a,t)=>a?.has(t)??!1,x=a=>_(a)||0==(a=>a?.size??0)(a),X=a=>[...a?.values()??[]],P=a=>a.clear(),B=(a,t)=>a?.forEach(t),q=(a,t)=>a?.delete(t),z=Object,G=a=>z.getPrototypeOf(a),H=z.entries,Y=a=>!E(a)&&v(G(a),a=>a==z.prototype||E(G(a)),()=>!0),W=z.keys,j=z.freeze,k=(...a)=>z.assign(z.create(null),...a),J=(a,t)=>z.hasOwn(a,t),K=(a,t,e)=>(z.defineProperty(a,t,{configurable:!0,enumerable:!0,value:e,writable:!0}),e),V=(a=[])=>{const t=z.create(null);return b(a,([a,e])=>K(t,a,e)),t},Z=(a,t)=>(delete a[t],a),Q=(a,t)=>b(W(a),e=>t(a[e],e)),aa=(a,t)=>D(H(a),([a,e])=>t(e,a)),ta=(a,t)=>{const e=V();return Q(a,(a,n)=>K(e,n,t(a,n))),e},ea=a=>L(W(a)),na=a=>Y(a)&&0==ea(a),ia=(a,t,e)=>(J(a,t)||K(a,t,e()),a[t]),sa=JSON.stringify,ca=JSON.parse,oa=a=>sa(a,(a,t)=>_(t)?"":t),la=a=>ra(ca(a)),ra=a=>""===a?void 0:$(a)?D(a,ra):Y(a)?ta(a,ra):a,ua=a=>new Set($(a)||_(a)?a:[a]),da=(a,t)=>a?.add(t),wa=new d.TextEncoder,ya=Map,Ea=a=>new ya(a),_a=(a,t)=>a?.get(t),Ta=(a,t)=>B(a,(a,e)=>t(e,a)),Na=(a,t)=>{const e=[];return Ta(a,(a,n)=>M(e,t(n,a))),e},va=(a,t,e)=>_(e)?(q(a,t),a):a?.set(t,e),fa=(a,t,e,n)=>{let i=_a(a,t);return U(a,t)?n?.(i):va(a,t,i=e()),i},ma=(a,t,e,n,i=0)=>f((e?fa:_a)(a,t[i],i>L(t)-2?e:Ea),s=>{if(i>L(t)-2)return n?.(s)&&va(a,t[i]),s;const c=ma(s,t,e,n,i+1);return x(s)&&va(a,t[i]),c}),$a=(a,t,e)=>{t>a[1]&&(a[1]=t),a[2]=e>>>0},Aa=(a,n)=>{throw((a,n)=>Error(t+":"+a+(_(n)?e:":"+n)))(a,n)},La=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},Oa=(a,t)=>La(a,a=>{La(()=>t?.(a))}),ha=async(a,t)=>{try{return await a()}finally{await t()}},Sa=/^\d+$/,pa=Ea(),Ia=Ea(),Ra=Ea(),ba=(a,t,n,i,s,c,o,l={},r=0,u=[])=>{let d,w,y,E,N,v=0,m=0,A=0,S=0,I=0,R=0,g=0,U=0,X=0;const P={},z=l.destroy;fa(pa,u,()=>0),fa(Ia,u,()=>[]),va(Ra,u,(_a(Ra,u)??0)+1);const G=Ea(),[H,Y,W,k,J]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!e),([[a],[t]])=>!na(a)||!na(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!na(a)||!na(t),t.setContent]:Aa(0))(o,a,r),[K,V,Z]=(a=>{let t;const[n,i]=(()=>{const a=[];let t=0;return[n=>(n?a.shift():null)??e+t++,t=>{h(Sa,t)&&L(a)<1e3&&M(a,t)}]})(),s=Ea(),c=(a,n,i,c)=>{let o,l=!1;if(b(((a,t=[e])=>{const n=[],i=(a,e)=>e==L(t)?M(n,a):T(t[e])?B(a,a=>i(a,e+1)):b([t[e],null],t=>i(_a(a,t),e+1));return i(a,0),n})(n,i),e=>B(e,e=>{const n=()=>_a(s,e)[0](t,...i??[],...c);a?(a=>{try{return a()}catch(a){(a=>{l||(o=a),l=!0})?.(a)}})(n):n()})),l)throw o};return[(i,c,o,l=[],r=()=>[])=>{t??=a();const u=n(1);return va(s,u,[i,c,o,l,r]),da(ma(c,o??[e],ua),u),u},(a,t,...e)=>c(!1,a,t,e),a=>f(_a(s,a),([,t,n])=>(ma(t,n??[e],void 0,t=>(q(t,a),x(t)?1:0)),va(s,a),i(a),n)),a=>f(_a(s,a),([a,,e=[],n,i])=>{const s=(...c)=>{const o=L(c);o==L(e)?a(t,...c,...i(c)):T(e[o])?b(n[o]?.(...c)??[],a=>s(...c,a)):s(...c,e[o])};s()}),(a,t,...e)=>c(!0,a,t,e)]})(()=>ba),Q=a=>{a!=v&&(v=a,V(G,void 0,v))},aa=()=>{_a(Ra,u)||_a(pa,u)||!O(_a(Ia,u)??[])||(va(pa,u),va(Ia,u),va(Ra,u))},ta=t=>{(H&&$(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ea=async()=>{Ta()&&a.__?.[0]?.()&&await ra()},ia=a=>ha(()=>w=a,()=>{w==a&&(w=void 0)}),sa=async a=>(2!=v&&(await ha(async()=>{Q(1),m++,await $a(()=>La(async()=>{const e=await t();$(e)?ta(e):_(e)&&a?J(a):_(e)||Aa(1,e)},t=>{c?.(t),a&&J(a)}))},()=>Q(0)),await ea()),ba),ca=async()=>{const a=g;g=0,a&&a==S&&!X&&(2==v?g=a:await sa())},oa=async a=>{const t=++S;let e=!0;if(await la(!0),t==S&&!X){const n=La(async()=>{const a=await i(async(a,n)=>{if(t==S&&!X)if(n||a){const t=e||2==v||!!R;I++,t&&R++,await ha(async()=>{Q(1),m++,await(t?$a(()=>ta(n??a)):(()=>{try{return ta(n??a)}finally{Q(0)}})())},()=>{t&&R--,--I||Q(0)}),I||await ea()}else 2==v?g=t:await sa()});t!=S||X?_(a)||await s(a):d=a},c);await ia(n),t!=S||X||await ha(()=>sa(a),()=>{e=!1})}return ba},la=async(a=!1)=>{g=0,a||S++;const t=w,e=d;return d=void 0,await ia(ha(async()=>{await t},async()=>{_(e)||await La(()=>s(e),c)})),ba},ra=async a=>(1!=v&&await ha(()=>ha(async()=>{Q(2),A++,await $a(()=>La(()=>n(Y,a),c))},()=>Q(0)),ca),ba),wa=async()=>{const t=++U;return await ya(!0),t!=U||X||(await ra(),t!=U||X||(y=a.addDidFinishTransactionListener(()=>{if(t==U&&!X){const a=W();k(a)&&La(()=>ra(a))}}))),ba},ya=async(t=!1)=>{t||U++;const e=y;return y=void 0,_(e)||a.delListener(e),ba},Ta=()=>!_(y),Na=async(a=!1)=>{const[t,e]=a?[ya,la]:[la,ya];return await ha(()=>t(),async()=>{await e()}),ba},$a=async(...a)=>{let t,e=!1;const n=p(n=>O(a)?n():M(_a(Ia,u),...D(a,(i,s)=>{const o=s==L(a)-1;return[async()=>{let a;N=p(t=>a=t),await ha(async()=>{try{await La(i,c)}catch(a){e||(e=!0,t=a)}o&&n()},()=>{N=void 0,a()})},o?n:void 0,P]})));if(await(async()=>{if(!_a(pa,u)){va(pa,u,1);const a=_a(Ia,u);let t=0;await ha(async()=>{for(;t<L(a);){const e=a[t++];e[2]=void 0,await e[0]()}},()=>{F(a,t),va(pa,u,0),aa()})}})(),await n,e)throw t;return ba},ba={load:sa,startAutoLoad:oa,stopAutoLoad:la,isAutoLoading:()=>!_(d),save:ra,startAutoSave:wa,stopAutoSave:ya,isAutoSaving:Ta,startAutoPersisting:async(a,t=!1)=>{const[e,n,i,s]=t?[wa,oa,ya,la]:[oa,wa,la,ya],c=e(a),o=t?U:S;await c;const l=n(a),r=t?S:U;try{await l}catch(a){throw r==(t?S:U)&&await Oa(s),o==(t?U:S)&&await Oa(i),a}return ba},stopAutoPersisting:Na,getStatus:()=>v,addStatusListener:a=>K(a,G),delListener:t=>(Z(t),a),schedule:$a,getStore:()=>a,getStats:()=>({loads:m,saves:A}),...l,destroy:async()=>(_(E)&&(X=1,E=(async()=>{const a=_a(Ia,u),t=C(a,([,a,t])=>t!=P||(a?.(),!1)),e=N;F(a),M(a,...t),await ha(()=>ha(()=>ha(Na,()=>e),()=>z?.()),()=>{const a=(_a(Ra,u)??1)-1;va(Ra,u,a||void 0),aa()})})()),await E,ba)};return j(ba)},ga="_",Da="_id",Ca="SELECT",Fa="WHERE",Ma="TABLE",Ua="ALTER "+Ma,xa="FROM",Xa="DELETE "+xa,Pa=Ca+"*"+xa,Ba="pragma_",qa="data_version",za="schema_version",Ga="pragma_table_",Ha="CREATE "+Ma,Ya=/\$tableName/g,Wa=a=>g(D(o(a,"."),a=>`"${l(a,/"/g,'""')}"`),"."),ja=(a,t=[1])=>g(D(a,()=>"$"+t[0]++),n),ka=(a,t=s)=>Fa+`(${Ja(t,Wa(a))})`,Ja=(a,t)=>l(a,Ya,t),Ka="ColumnName",Va="store",Za="json",Qa=Va+"TableName",at=Va+"Id"+Ka,tt=Va+Ka,et="autoLoadIntervalSeconds",nt="rowId"+Ka,it="tableId",st="tableName",ct="deleteEmptyColumns",ot="deleteEmptyTable",lt="condition",rt={mode:Za,[et]:1},ut={load:0,save:0,[st]:t+"_values"},dt=a=>$(a)?a:void 0,wt=a=>N(a)||$(a),yt=(a,t,e,n,i)=>{const s=Ea();return Q(a,(a,c)=>{const o=A((l=k(t,m(a)?{[e]:a}:a),z.values(l)),0,ea(t));var l;T(o[0])||n(c,o[0])||(i(c,o[0]),va(s,c,o))}),s},Et=(a,e,i,c,o=_t,l,r,u)=>{const d=Ea(),w=Ea();let y=a;return[async()=>{P(d),P(w),b(await i(y,e),({tn:a,cn:t,uq:e})=>{da(fa(d,a,ua),t),e&&da(fa(w,a,ua),t)})},async(a,t,e,n)=>{const i=_(n)?void 0:ua(n);return((a,t)=>U(_a(d,a),t))(a,t)?V(C(D(await y(Pa+Wa(a)+ka(a,e)),a=>{const e=a[t],n=r?ta(Z(a,t),r):Z(a,t);return[e,_(i)?n:V(C(aa(n,(a,t)=>[t,a]),([a])=>(a=>_(i)||U(i,a))(a)))]}),a=>!_(a[0])&&!na(a[1]))):{}},async(a,e,i,r,u,E=!1,T=s,N)=>{const v=_(N)?void 0:ua(N),f=a=>_(v)||U(v,a),m=ua();Q(i??{},a=>b(C(W(a??{}),f),a=>da(m,a)));const $=X(m);if(_(v)&&!E&&u&&T==s&&O($)&&U(d,a))return await y("DROP "+Ma+Wa(a)),va(d,a),void va(w,a);const A=_a(d,a),L=ua(C(X(A),a=>a==e||f(a)));if(!O($))if(U(d,a)){if(await I(D([e,...$],async t=>{q(L,t)||(await y(Ua+Wa(a)+"ADD"+Wa(t)+c),da(A,t))})),o==_t&&!U(_a(w,a),e)){const n=t+"_pk_"+(a=>{let t=2166136261;return b(wa.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(sa([a,e]));await y("CREATE UNIQUE INDEX IF NOT EXISTS"+Wa(n)+"ON"+Wa(a)+`(${Wa(e)})`),da(fa(w,a,ua),e)}}else await y(Ha+Wa(a)+`(${Wa(e)}${c} PRIMARY KEY${g(D($,a=>n+Wa(a)+c))});`),va(d,a,ua([e,...$])),va(w,a,ua([e]));if(await I([...!E&&r?D(X(L),async t=>{t!=e&&(await y(Ua+Wa(a)+"DROP"+Wa(t)),q(A,t))}):[]]),E)_(i)?_(v)&&await y(Xa+Wa(a)+ka(a,T)):await I(aa(i,async(t,n)=>{if(_(t))await y(Xa+Wa(a)+ka(a,T)+`AND(${Wa(e)}=$1)`,[n]);else if(!O($)){const i=C(W(t),f);O(i)||await o(y,a,e,i,{[n]:D(i,a=>l?l(t[a]):t[a])},A)}}));else if(O($))_(v)&&U(d,a)&&await y(Xa+Wa(a)+ka(a,T));else{const t=C(X(_a(d,a)),a=>a!=e&&f(a)),n=V(),s=[];Q(i??{},(a,e)=>{K(n,e,D(t,t=>l?l(a?.[t]):a?.[t])),M(s,e)}),await o(y,a,e,t,n,A),await y(Xa+Wa(a)+ka(a,T)+`AND${Wa(e)}NOT IN(${ja(s)})`,s)}},async t=>{if(u)return await u(async a=>{const e=y;return y=a,await ha(t,()=>{y=e})});await a("BEGIN");try{const e=await t();return await a("END"),e}catch(t){throw await La(()=>a("ROLLBACK")),t}}]},_t=async(a,t,e,i,s)=>{const c=[1];await a("INSERT INTO"+Wa(t)+"("+((...a)=>g(D(a,Wa),n))(e,...i)+")VALUES"+g(aa(s,a=>"($"+c[0]+++","+ja(a,c)+")"),n)+"ON CONFLICT("+Wa(e)+")DO UPDATE SET"+g(D(i,a=>Wa(a)+"=excluded."+Wa(a)),n),aa(s,(a,t)=>[t,...D(a,a=>a??null)]).flat())},Tt=(a,t,e,n,i,s,c,[o,l,r],u,d,w,y,E,_,T,N,v)=>{const[f,m,$,A]=Et(t,u,d,E,_,void 0,void 0,v);return ba(a,()=>A(async()=>(await f(),la((await m(o,l))[ga]?.[r]??"null"))),a=>A(async()=>{await f(),await $(o,l,{[ga]:{[r]:oa(a()??null)}},!0,!0)}),e,n,i,c,{[y]:()=>w,destroy:s},0,w)},Nt=(a,t,e,n,i,s,c,[o,l,[r,u,d,w,y]],E,T,N,v,f,m,$,A,L)=>{const[O,h,S,p]=Et(t,E,T,f,m,$,A,L),b=(a,t)=>I(Na(l,async([e,n,i,s,c],o)=>{t&&!J(a,o)||await S(e,n,a[o],i,s,t,c)})),g=(a,t,e)=>V(1==e?C(aa(a,(a,t)=>[t,a]),([a])=>R(t,a)):C(D(t,t=>[t,a[t]]),([,a])=>!_(a))),F=async(a,t)=>u?await S(d,Da,{[ga]:_(y)?a:g(a,y,t)},!0,!0,t,void 0,y):null;return ba(a,()=>p(async()=>{await O();const a=await(async()=>V(C(await I(Na(o,async([a,t,e],n)=>[a,await h(n,t,e)])),a=>!na(a[1]))))(),t=await(async()=>r?(await h(d,Da,void 0,w))[ga]:{})();return na(a)&&_(t)?void 0:[a,t]}),(a,t)=>p(async()=>{if(await O(),_(t)){const[t,e]=a();await b(t),await F(e)}else await b(t[0],!0),await F(t[1],!0)}),e,n,i,c,{[v]:()=>N,destroy:s},0,N)},vt=(a,n,i,c,o,l,u,d,w,y,T="getDb",v,f)=>{let $,A,L;const O=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(i,l),[h,S,p,I]=(a=>{const e=(a=>k(rt,m(a)?{[Qa]:a}:a??{}))(a),n=e[et];if(e.mode==Za){const a=e[Qa]??t;return[1,n,[a,e[at]??Da,e[tt]??Va],ua(a)]}const{tables:{load:i={},save:c={}}={},values:o={}}=e,l=k(ut,o),{load:r,save:u}=l,d=[wt(r),wt(u),l[st],dt(r),dt(u)],w=d[2],y=ua(w),E=ua(w),_=yt(i,{[it]:null,[nt]:Da,[lt]:s},it,a=>U(E,a),a=>da(y,a)),T=yt(c,{[st]:null,[nt]:Da,[ct]:0,[ot]:0,[lt]:null},st,(a,t)=>U(E,t),(a,t)=>da(y,t));return Ta(T,(a,t)=>t[4]??=_a(_,t[0])?.[2]??s),[0,n,[_,T,d],y]})(n);return!h&&a.isMergeable()&&Aa(0),(h?Tt:Nt)(a,O,a=>{let t,e,n=1,i=0,s=0;const l=async(t=!0)=>{const[{d:e,s:i,c:c}]=await O(Ca+` ${qa} d,${za} s,TOTAL_CHANGES() c FROM ${Ba}${qa} JOIN ${Ba}${za}`);if(n&&(e!=$||i!=A||c!=L)){const o=t&&!s&&!E($);$=e,A=i,L=c,o&&n&&await a()}},d=()=>{_(t)||((a=>{clearInterval(a)})(t),t=void 0)},w=(c=!1)=>{if(e)return e;const o=ha(()=>Oa(async()=>{for(i?c&&await l():(await l(!1),i=1);n&&s;)s=0,await l(!1),n&&(await a(),await l())},u),()=>{e==o&&(e=void 0),n&&(s?w():n&&_(t)&&(t=setInterval(()=>w(!0),1e3*S)))});return e=o,o},y=c(a=>{n&&U(I,a)&&(s=1,d(),r.resolve().then(()=>n?void w():0))});return w().then(()=>async()=>{n=0,s=0,d(),await ha(async()=>await e,async()=>{$=A=L=null,await o(y)})})},a=>a(),u,d,w,p,X(I),async(a,t)=>await a(Ca+` t.name tn,c.name cn,c.pk OR EXISTS(${Ca} 1 FROM ${Ba}index_list(t.name)i,${Ba}index_info(i.name)ii ${Fa} i."unique"=1 AND ii.name=c.name AND(${Ca} count(*) FROM ${Ba}index_info(i.name))=1)uq FROM ${Ga}list()t,${Ga}info(t.name)c ${Fa} t.schema='main'AND t.type IN('table','view')AND t.name IN(${ja(t)})ORDER BY t.name,c.name`,t),y,T,e,v,a=>N(a)?1:(a=>!1===a)(a)?0:a,void 0,f)},ft=(a,t,...e)=>a.exec(t,...e).toArray(),mt=(a,t,n,i,s)=>"fragmented"==n?.mode?Lt(a,t,n?.storagePrefix??e,s):vt(a,n,async(a,e=[])=>R(["BEGIN","END"],a)?[]:(a=l(a,/\$\d+/g,"?"),ft(t,a,...e)),()=>S,a=>a(),i,s,S,2,t,"getSqlStorage"),$t=()=>[V(),e,0],At=a=>h(/^[a-zA-Z_][a-zA-Z0-9_]*$/,a)?a:Wa(a),Lt=(a,t,e="",n)=>{const i=h(/^[a-z0-9_]*$/,e)?e:`$tinybase$${(a=>g(D(o(a),a=>"$"+A((65536+a.charCodeAt(0)).toString(16),1))))(e)}$`,s=i+"tinybase_values",l=At(i+"tinybase_tables"),r=At(s),u=`INSERT INTO ${l} (type, table_id, row_id, cell_id, value_data, timestamp, hash) VALUES (?, ?, ?, ?, ?, ?, ?)`,d=`INSERT INTO ${r} (value_id, value_data, timestamp, hash) VALUES (?, ?, ?, ?)`,_=(a,t)=>sa([a,t]);t.exec(`\n CREATE TABLE IF NOT EXISTS ${l} (\n type TEXT NOT NULL,\n table_id TEXT,\n row_id TEXT,\n cell_id TEXT,\n value_data TEXT NOT NULL,\n timestamp TEXT NOT NULL,\n hash INTEGER NOT NULL,\n PRIMARY KEY (type, table_id, row_id, cell_id)\n );\n \n CREATE TABLE IF NOT EXISTS ${r} (\n value_id TEXT,\n value_data TEXT NOT NULL,\n timestamp TEXT NOT NULL,\n hash INTEGER NOT NULL\n );\n `);const N=(a,t,e)=>T(e)?t+" IS NULL":(M(a,e),t+" = ?"),v=(a,e,n,i,s,o)=>{((a,e,n)=>{const i=[c];t.exec(`DELETE FROM ${l} WHERE type = ? AND `+N(i,"table_id",a)+" AND "+N(i,"row_id",e)+" AND "+N(i,"cell_id",n),...i)})(a,e,n),t.exec(u,c,a,e,n,i,s,o)},f=(a,e,n,i)=>{(a=>{const e=[];t.exec(`DELETE FROM ${r} WHERE `+N(e,"value_id",a),...e)})(a),t.exec(d,a,e,n,i)};return ba(a,async()=>{const a=$t(),e=$t(),n=ua(),i=ft(t,"SELECT * FROM "+l);return b(i,t=>{const e=E(t.table_id)?null:y(t.table_id),i=E(t.row_id)?null:y(t.row_id),s=E(t.cell_id)?null:y(t.cell_id),c=y(t.value_data),o=y(t.timestamp),l=w(t.hash),[r]=la(c);if(!T(e)&&!T(i)&&T(s)&&Y(r)){const t=ia(a[0],e,$t);K(t[0],i,[r,o,l]),da(n,_(e,i))}}),b(i,t=>{const e=y(t.type),i=E(t.table_id)?null:y(t.table_id),s=E(t.row_id)?null:y(t.row_id),o=E(t.cell_id)?null:y(t.cell_id),l=y(t.value_data),r=y(t.timestamp),u=w(t.hash),[d]=la(l);if(e===c)if(T(i)||T(s)||T(o)){if(T(i)||T(s))if(T(i))$a(a,r,u);else{const t=ia(a[0],i,$t);$a(t,r,u)}else if(!Y(d)){const t=ia(a[0],i,$t),e=ia(t[0],s,$t);$a(e,r,u)}}else if(!U(n,_(i,s))){const t=ia(a[0],i,$t),e=ia(t[0],s,$t);K(e[0],o,[d,r,u])}}),b(ft(t,"SELECT * FROM "+r),a=>{const t=E(a.value_id)?null:y(a.value_id),n=y(a.value_data),i=y(a.timestamp),s=w(a.hash),[c]=la(n);T(t)?$a(e,i,s):K(e[0],t,[c,i,s])}),[a,e]},async(a,[[e,n,i],[s,o,r]]=a())=>{const[u]=a()[0];v(null,null,null,oa([0]),n,i),Q(e,([a,e,n],i)=>{v(i,null,null,oa([0]),e,n),Q(a,([a,e,n],s)=>{const o=u[i]?.[0]?.[s]?.[0]??a;((a,e)=>{t.exec(`DELETE FROM ${l} WHERE type = ? AND table_id = ? AND row_id = ? AND cell_id IS NOT NULL`,c,a,e)})(i,s),v(i,s,null,oa([o]),e,n)})}),f(null,oa([0]),o,r),Q(s,(a,t)=>{f(t,oa([a[0]]),a[1],a[2])})},S,S,n,2,{getSqlStorage:()=>t})};export{mt as createDurableObjectSqlStoragePersister};
|